(t)
| 1 | (()=>{var t={69495:(t,e,i)=>{i(73906),i(499),i(88392),i(55977),i(53382),i(9246),i(15693),i(82110),i(80780),i(75370),i(99019),i(65991),i(65040),i(82011),i(70661),i(37007),i(33639),i(34895),i(66412),i(44157),i(38300),i(58503),i(59500),i(20791),i(22473),i(79062),i(23946),i(76973),i(65679),i(88263),i(57425),i(25699),i(81736),i(10070),i(50031),i(3930),i(72814),i(37621),i(95773),i(26485),i(34913),i(68071),i(46441),i(2506),i(9413),i(67081),i(87391),i(43664),i(83528),i(69050),i(20770),i(97307),i(44841),i(17093),i(81548),i(63327),i(93606),i(41988),i(66957),i(74410),i(55882),i(17448),i(78384),i(29578),i(50300),i(44316),i(94093),i(33453),i(72006),i(57500),i(2613),i(55495),i(41499),i(18670),i(40989),i(19569),i(23372),i(75560),i(48075),i(28828),i(45539),i(97027),i(12778),i(4350),i(12755),i(168),i(52325),i(54503),i(20075),i(19133),i(770),i(32975),i(4184),i(9613),i(99334),i(72046),i(84531),i(3573),i(26463),i(19584),i(95917),i(672),i(90982),i(60365),i(83813),i(99058),i(21413),i(31113),i(78526),i(80181),i(36672),i(84317),i(76515),i(93189),i(99042),i(31116),i(87294),i(2877),i(60242),i(75737),i(55515),i(34825),i(67401),i(3398),i(37401),i(58137),i(14107),i(79427),i(57090),i(66060),i(68176),i(19476),i(12386),i(93113),i(42376),i(41398),i(68162),i(71070),i(99476),i(3186),i(4407),i(39053),i(7083),i(58008),i(11904),i(36472),i(76536),i(37692),i(91702),i(91772),i(8378),i(80149),i(65017),i(31417),i(35075),i(98510),i(60471),i(31023),i(79368),i(54093),i(58976),i(21785),i(87731),i(12223),i(80714),i(24878),i(3140),i(68377),i(21972),i(79544),i(28006),i(67619),i(969),i(1558),i(38954),i(61264),i(6551),i(87189),i(28581),i(77923),i(44016),i(92626),i(26737),i(82361),i(77673),i(51699),i(77257),i(6171),i(68816),i(4661),i(92811),i(69535),i(5912),i(2470),i(83771),i(1789),i(27942),i(40080),i(58347),i(94022),i(53043),i(41841),i(60142),i(85529),i(41454),i(3994),i(8014);var n=i(29467);t.exports=n},81444:(t,e,i)=>{i(69495),i(72368),i(83582);var n=i(29467);t.exports=n},23775:t=>{t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},66020:(t,e,i)=>{var n=i(68580);t.exports=function(t){if(!n(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},35240:(t,e,i)=>{var n=i(10548),r=i(37602),s=i(64774),o=n("unscopables"),a=Array.prototype;null==a[o]&&s.f(a,o,{configurable:!0,value:r(null)}),t.exports=function(t){a[o][t]=!0}},64334:(t,e,i)=>{"use strict";var n=i(17933).charAt;t.exports=function(t,e,i){return e+(i?n(t,e).length:1)}},31057:t=>{t.exports=function(t,e,i){if(!(t instanceof e))throw TypeError("Incorrect "+(i?i+" ":"")+"invocation");return t}},13980:(t,e,i)=>{var n=i(68580);t.exports=function(t){if(!n(t))throw TypeError(String(t)+" is not an object");return t}},73409:t=>{t.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},81609:(t,e,i)=>{"use strict";var n,r=i(73409),s=i(56617),o=i(33386),a=i(68580),h=i(54585),u=i(16385),l=i(17182),c=i(18957),d=i(64774).f,p=i(29528),f=i(15456),m=i(10548),v=i(37645),g=o.Int8Array,y=g&&g.prototype,_=o.Uint8ClampedArray,x=_&&_.prototype,b=g&&p(g),w=y&&p(y),T=Object.prototype,M=T.isPrototypeOf,S=m("toStringTag"),E=v("TYPED_ARRAY_TAG"),L=r&&!!f&&"Opera"!==u(o.opera),A=!1,D={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},P=function(t){return a(t)&&h(D,u(t))};for(n in D)o[n]||(L=!1);if((!L||"function"!=typeof b||b===Function.prototype)&&(b=function(){throw TypeError("Incorrect invocation")},L))for(n in D)o[n]&&f(o[n],b);if((!L||!w||w===T)&&(w=b.prototype,L))for(n in D)o[n]&&f(o[n].prototype,w);if(L&&p(x)!==w&&f(x,w),s&&!h(w,S))for(n in A=!0,d(w,S,{get:function(){return a(this)?this[E]:void 0}}),D)o[n]&&l(o[n],E,n);t.exports={NATIVE_ARRAY_BUFFER_VIEWS:L,TYPED_ARRAY_TAG:A&&E,aTypedArray:function(t){if(P(t))return t;throw TypeError("Target is not a typed array")},aTypedArrayConstructor:function(t){if(f){if(M.call(b,t))return t}else for(var e in D)if(h(D,n)){var i=o[e];if(i&&(t===i||M.call(i,t)))return t}throw TypeError("Target is not a typed array constructor")},exportTypedArrayMethod:function(t,e,i){if(s){if(i)for(var n in D){var r=o[n];r&&h(r.prototype,t)&&delete r.prototype[t]}w[t]&&!i||c(w,t,i?e:L&&y[t]||e)}},exportTypedArrayStaticMethod:function(t,e,i){var n,r;if(s){if(f){if(i)for(n in D)(r=o[n])&&h(r,t)&&delete r[t];if(b[t]&&!i)return;try{return c(b,t,i?e:L&&g[t]||e)}catch(t){}}for(n in D)!(r=o[n])||r[t]&&!i||c(r,t,e)}},isView:function(t){var e=u(t);return"DataView"===e||h(D,e)},isTypedArray:P,TypedArray:b,TypedArrayPrototype:w}},50539:(t,e,i)=>{"use strict";var n=i(33386),r=i(56617),s=i(73409),o=i(17182),a=i(11432),h=i(38493),u=i(31057),l=i(1557),c=i(7933),d=i(30035),p=i(31787),f=i(29528),m=i(15456),v=i(74562).f,g=i(64774).f,y=i(53009),_=i(39893),x=i(97030),b=x.get,w=x.set,T="ArrayBuffer",M="DataView",S="Wrong index",E=n.ArrayBuffer,L=E,A=n.DataView,D=A&&A.prototype,P=Object.prototype,C=n.RangeError,O=p.pack,k=p.unpack,R=function(t){return[255&t]},I=function(t){return[255&t,t>>8&255]},Y=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},F=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},N=function(t){return O(t,23,4)},B=function(t){return O(t,52,8)},U=function(t,e){g(t.prototype,e,{get:function(){return b(this)[e]}})},j=function(t,e,i,n){var r=d(i),s=b(t);if(r+e>s.byteLength)throw C(S);var o=b(s.buffer).bytes,a=r+s.byteOffset,h=o.slice(a,a+e);return n?h:h.reverse()},H=function(t,e,i,n,r,s){var o=d(i),a=b(t);if(o+e>a.byteLength)throw C(S);for(var h=b(a.buffer).bytes,u=o+a.byteOffset,l=n(+r),c=0;c<e;c++)h[u+c]=l[s?c:e-c-1]};if(s){if(!h((function(){E(1)}))||!h((function(){new E(-1)}))||h((function(){return new E,new E(1.5),new E(NaN),E.name!=T}))){for(var z,W=(L=function(t){return u(this,L),new E(d(t))}).prototype=E.prototype,G=v(E),V=0;G.length>V;)(z=G[V++])in L||o(L,z,E[z]);W.constructor=L}m&&f(D)!==P&&m(D,P);var X=new A(new L(2)),q=D.setInt8;X.setInt8(0,2147483648),X.setInt8(1,2147483649),!X.getInt8(0)&&X.getInt8(1)||a(D,{setInt8:function(t,e){q.call(this,t,e<<24>>24)},setUint8:function(t,e){q.call(this,t,e<<24>>24)}},{unsafe:!0})}else L=function(t){u(this,L,T);var e=d(t);w(this,{bytes:y.call(new Array(e),0),byteLength:e}),r||(this.byteLength=e)},A=function(t,e,i){u(this,A,M),u(t,L,M);var n=b(t).byteLength,s=l(e);if(s<0||s>n)throw C("Wrong offset");if(s+(i=void 0===i?n-s:c(i))>n)throw C("Wrong length");w(this,{buffer:t,byteLength:i,byteOffset:s}),r||(this.buffer=t,this.byteLength=i,this.byteOffset=s)},r&&(U(L,"byteLength"),U(A,"buffer"),U(A,"byteLength"),U(A,"byteOffset")),a(A.prototype,{getInt8:function(t){return j(this,1,t)[0]<<24>>24},getUint8:function(t){return j(this,1,t)[0]},getInt16:function(t){var e=j(this,2,t,arguments.length>1?arguments[1]:void 0);return(e[1]<<8|e[0])<<16>>16},getUint16:function(t){var e=j(this,2,t,arguments.length>1?arguments[1]:void 0);return e[1]<<8|e[0]},getInt32:function(t){return F(j(this,4,t,arguments.length>1?arguments[1]:void 0))},getUint32:function(t){return F(j(this,4,t,arguments.length>1?arguments[1]:void 0))>>>0},getFloat32:function(t){return k(j(this,4,t,arguments.length>1?arguments[1]:void 0),23)},getFloat64:function(t){return k(j(this,8,t,arguments.length>1?arguments[1]:void 0),52)},setInt8:function(t,e){H(this,1,t,R,e)},setUint8:function(t,e){H(this,1,t,R,e)},setInt16:function(t,e){H(this,2,t,I,e,arguments.length>2?arguments[2]:void 0)},setUint16:function(t,e){H(this,2,t,I,e,arguments.length>2?arguments[2]:void 0)},setInt32:function(t,e){H(this,4,t,Y,e,arguments.length>2?arguments[2]:void 0)},setUint32:function(t,e){H(this,4,t,Y,e,arguments.length>2?arguments[2]:void 0)},setFloat32:function(t,e){H(this,4,t,N,e,arguments.length>2?arguments[2]:void 0)},setFloat64:function(t,e){H(this,8,t,B,e,arguments.length>2?arguments[2]:void 0)}});_(L,T),_(A,M),t.exports={ArrayBuffer:L,DataView:A}},69801:(t,e,i)=>{"use strict";var n=i(51223),r=i(11486),s=i(7933),o=Math.min;t.exports=[].copyWithin||function(t,e){var i=n(this),a=s(i.length),h=r(t,a),u=r(e,a),l=arguments.length>2?arguments[2]:void 0,c=o((void 0===l?a:r(l,a))-u,a-h),d=1;for(u<h&&h<u+c&&(d=-1,u+=c-1,h+=c-1);c-- >0;)u in i?i[h]=i[u]:delete i[h],h+=d,u+=d;return i}},53009:(t,e,i)=>{"use strict";var n=i(51223),r=i(11486),s=i(7933);t.exports=function(t){for(var e=n(this),i=s(e.length),o=arguments.length,a=r(o>1?arguments[1]:void 0,i),h=o>2?arguments[2]:void 0,u=void 0===h?i:r(h,i);u>a;)e[a++]=t;return e}},64902:(t,e,i)=>{"use strict";var n=i(7622).forEach,r=i(91649),s=i(12797),o=r("forEach"),a=s("forEach");t.exports=o&&a?[].forEach:function(t){return n(this,t,arguments.length>1?arguments[1]:void 0)}},83601:(t,e,i)=>{"use strict";var n=i(39181),r=i(51223),s=i(31404),o=i(31243),a=i(7933),h=i(73685),u=i(99683);t.exports=function(t){var e,i,l,c,d,p,f=r(t),m="function"==typeof this?this:Array,v=arguments.length,g=v>1?arguments[1]:void 0,y=void 0!==g,_=u(f),x=0;if(y&&(g=n(g,v>2?arguments[2]:void 0,2)),null==_||m==Array&&o(_))for(i=new m(e=a(f.length));e>x;x++)p=y?g(f[x],x):f[x],h(i,x,p);else for(d=(c=_.call(f)).next,i=new m;!(l=d.call(c)).done;x++)p=y?s(c,g,[l.value,x],!0):l.value,h(i,x,p);return i.length=x,i}},93289:(t,e,i)=>{var n=i(86939),r=i(7933),s=i(11486),o=function(t){return function(e,i,o){var a,h=n(e),u=r(h.length),l=s(o,u);if(t&&i!=i){for(;u>l;)if((a=h[l++])!=a)return!0}else for(;u>l;l++)if((t||l in h)&&h[l]===i)return t||l||0;return!t&&-1}};t.exports={includes:o(!0),indexOf:o(!1)}},7622:(t,e,i)=>{var n=i(39181),r=i(11749),s=i(51223),o=i(7933),a=i(44359),h=[].push,u=function(t){var e=1==t,i=2==t,u=3==t,l=4==t,c=6==t,d=5==t||c;return function(p,f,m,v){for(var g,y,_=s(p),x=r(_),b=n(f,m,3),w=o(x.length),T=0,M=v||a,S=e?M(p,w):i?M(p,0):void 0;w>T;T++)if((d||T in x)&&(y=b(g=x[T],T,_),t))if(e)S[T]=y;else if(y)switch(t){case 3:return!0;case 5:return g;case 6:return T;case 2:h.call(S,g)}else if(l)return!1;return c?-1:u||l?l:S}};t.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6)}},8287:(t,e,i)=>{"use strict";var n=i(86939),r=i(1557),s=i(7933),o=i(91649),a=i(12797),h=Math.min,u=[].lastIndexOf,l=!!u&&1/[1].lastIndexOf(1,-0)<0,c=o("lastIndexOf"),d=a("indexOf",{ACCESSORS:!0,1:0}),p=l||!c||!d;t.exports=p?function(t){if(l)return u.apply(this,arguments)||0;var e=n(this),i=s(e.length),o=i-1;for(arguments.length>1&&(o=h(o,r(arguments[1]))),o<0&&(o=i+o);o>=0;o--)if(o in e&&e[o]===t)return o||0;return-1}:u},46453:(t,e,i)=>{var n=i(38493),r=i(10548),s=i(80823),o=r("species");t.exports=function(t){return s>=51||!n((function(){var e=[];return(e.constructor={})[o]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},91649:(t,e,i)=>{"use strict";var n=i(38493);t.exports=function(t,e){var i=[][t];return!!i&&n((function(){i.call(null,e||function(){throw 1},1)}))}},12797:(t,e,i)=>{var n=i(56617),r=i(38493),s=i(54585),o=Object.defineProperty,a={},h=function(t){throw t};t.exports=function(t,e){if(s(a,t))return a[t];e||(e={});var i=[][t],u=!!s(e,"ACCESSORS")&&e.ACCESSORS,l=s(e,0)?e[0]:h,c=s(e,1)?e[1]:void 0;return a[t]=!!i&&!r((function(){if(u&&!n)return!0;var t={length:-1};u?o(t,1,{enumerable:!0,get:h}):t[1]=1,i.call(t,l,c)}))}},22164:(t,e,i)=>{var n=i(23775),r=i(51223),s=i(11749),o=i(7933),a=function(t){return function(e,i,a,h){n(i);var u=r(e),l=s(u),c=o(u.length),d=t?c-1:0,p=t?-1:1;if(a<2)for(;;){if(d in l){h=l[d],d+=p;break}if(d+=p,t?d<0:c<=d)throw TypeError("Reduce of empty array with no initial value")}for(;t?d>=0:c>d;d+=p)d in l&&(h=i(h,l[d],d,u));return h}};t.exports={left:a(!1),right:a(!0)}},44359:(t,e,i)=>{var n=i(68580),r=i(20351),s=i(10548)("species");t.exports=function(t,e){var i;return r(t)&&("function"!=typeof(i=t.constructor)||i!==Array&&!r(i.prototype)?n(i)&&null===(i=i[s])&&(i=void 0):i=void 0),new(void 0===i?Array:i)(0===e?0:e)}},25542:(t,e,i)=>{"use strict";var n=i(29467),r=i(23775),s=i(13980),o=i(37602),a=i(17182),h=i(11432),u=i(10548),l=i(97030),c=i(27623)("Promise"),d=l.set,p=l.get,f=u("toStringTag"),m=function(t){var e=p(this).iterator,i=e.return;return void 0===i?c.resolve({done:!0,value:t}):s(i.call(e,t))},v=function(t){var e=p(this).iterator,i=e.throw;return void 0===i?c.reject(t):i.call(e,t)};t.exports=function(t,e){var i=function(t){t.next=r(t.iterator.next),t.done=!1,d(this,t)};return i.prototype=h(o(n.AsyncIterator.prototype),{next:function(e){var i=p(this);if(i.done)return c.resolve({done:!0,value:void 0});try{return c.resolve(s(t.call(i,e,c)))}catch(t){return c.reject(t)}},return:m,throw:v}),e||a(i.prototype,f,"Generator"),i}},87505:(t,e,i)=>{"use strict";var n=i(23775),r=i(13980),s=i(27623)("Promise"),o=[].push,a=function(t){var e=0==t,i=1==t,a=2==t,h=3==t;return function(t,u){r(t);var l=n(t.next),c=e?[]:void 0;return e||n(u),new s((function(n,d){var p=function(){try{s.resolve(r(l.call(t))).then((function(t){try{if(r(t).done)n(e?c:!h&&(a||void 0));else{var l=t.value;e?(o.call(c,l),p()):s.resolve(u(l)).then((function(t){i?p():a?t?p():n(!1):t?n(h||l):p()}),d)}}catch(t){d(t)}}),d)}catch(t){d(t)}};p()}))}};t.exports={toArray:a(0),forEach:a(1),every:a(2),some:a(3),find:a(4)}},45535:(t,e,i)=>{var n,r,s=i(33386),o=i(50671),a=i(29528),h=i(54585),u=i(17182),l=i(10548),c=i(51104),d=l("asyncIterator"),p=s.AsyncIterator,f=o.AsyncIteratorPrototype;if(!c)if(f)n=f;else if("function"==typeof p)n=p.prototype;else if(o.USE_FUNCTION_CONSTRUCTOR||s.USE_FUNCTION_CONSTRUCTOR)try{r=a(a(a(Function("return async function*(){}()")()))),a(r)===Object.prototype&&(n=r)}catch(t){}n||(n={}),h(n,d)||u(n,d,(function(){return this})),t.exports=n},31404:(t,e,i)=>{var n=i(13980);t.exports=function(t,e,i,r){try{return r?e(n(i)[0],i[1]):e(i)}catch(e){var s=t.return;throw void 0!==s&&n(s.call(t)),e}}},92916:(t,e,i)=>{var n=i(10548)("iterator"),r=!1;try{var s=0,o={next:function(){return{done:!!s++}},return:function(){r=!0}};o[n]=function(){return this},Array.from(o,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!r)return!1;var i=!1;try{var s={};s[n]=function(){return{next:function(){return{done:i=!0}}}},t(s)}catch(t){}return i}},2178:t=>{var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},16385:(t,e,i)=>{var n=i(29100),r=i(2178),s=i(10548)("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=n?r:function(t){var e,i,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),s))?i:o?r(e):"Object"==(n=r(e))&&"function"==typeof e.callee?"Arguments":n}},31553:(t,e,i)=>{"use strict";var n=i(13980),r=i(23775);t.exports=function(){for(var t=n(this),e=r(t.add),i=0,s=arguments.length;i<s;i++)e.call(t,arguments[i]);return t}},84537:(t,e,i)=>{"use strict";var n=i(13980),r=i(23775);t.exports=function(){for(var t,e=n(this),i=r(e.delete),s=!0,o=0,a=arguments.length;o<a;o++)t=i.call(e,arguments[o]),s=s&&t;return!!s}},63842:(t,e,i)=>{"use strict";var n=i(23775),r=i(39181),s=i(76808);t.exports=function(t){var e,i,o,a,h=arguments.length,u=h>1?arguments[1]:void 0;return n(this),(e=void 0!==u)&&n(u),null==t?new this:(i=[],e?(o=0,a=r(u,h>2?arguments[2]:void 0,2),s(t,(function(t){i.push(a(t,o++))}))):s(t,i.push,i),new this(i))}},96089:t=>{"use strict";t.exports=function(){for(var t=arguments.length,e=new Array(t);t--;)e[t]=arguments[t];return new this(e)}},5749:(t,e,i)=>{"use strict";var n=i(64774).f,r=i(37602),s=i(11432),o=i(39181),a=i(31057),h=i(76808),u=i(7693),l=i(16906),c=i(56617),d=i(8080).fastKey,p=i(97030),f=p.set,m=p.getterFor;t.exports={getConstructor:function(t,e,i,u){var l=t((function(t,n){a(t,l,e),f(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),c||(t.size=0),null!=n&&h(n,t[u],t,i)})),p=m(e),v=function(t,e,i){var n,r,s=p(t),o=g(t,e);return o?o.value=i:(s.last=o={index:r=d(e,!0),key:e,value:i,previous:n=s.last,next:void 0,removed:!1},s.first||(s.first=o),n&&(n.next=o),c?s.size++:t.size++,"F"!==r&&(s.index[r]=o)),t},g=function(t,e){var i,n=p(t),r=d(e);if("F"!==r)return n.index[r];for(i=n.first;i;i=i.next)if(i.key==e)return i};return s(l.prototype,{clear:function(){for(var t=p(this),e=t.index,i=t.first;i;)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete e[i.index],i=i.next;t.first=t.last=void 0,c?t.size=0:this.size=0},delete:function(t){var e=this,i=p(e),n=g(e,t);if(n){var r=n.next,s=n.previous;delete i.index[n.index],n.removed=!0,s&&(s.next=r),r&&(r.previous=s),i.first==n&&(i.first=r),i.last==n&&(i.last=s),c?i.size--:e.size--}return!!n},forEach:function(t){for(var e,i=p(this),n=o(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.next:i.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!g(this,t)}}),s(l.prototype,i?{get:function(t){var e=g(this,t);return e&&e.value},set:function(t,e){return v(this,0===t?0:t,e)}}:{add:function(t){return v(this,t=0===t?0:t,t)}}),c&&n(l.prototype,"size",{get:function(){return p(this).size}}),l},setStrong:function(t,e,i){var n=e+" Iterator",r=m(e),s=m(n);u(t,e,(function(t,e){f(this,{type:n,target:t,state:r(t),kind:e,last:void 0})}),(function(){for(var t=s(this),e=t.kind,i=t.last;i&&i.removed;)i=i.previous;return t.target&&(t.last=i=i?i.next:t.state.first)?"keys"==e?{value:i.key,done:!1}:"values"==e?{value:i.value,done:!1}:{value:[i.key,i.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),i?"entries":"values",!i,!0),l(e)}}},8929:(t,e,i)=>{"use strict";var n=i(11432),r=i(8080).getWeakData,s=i(13980),o=i(68580),a=i(31057),h=i(76808),u=i(7622),l=i(54585),c=i(97030),d=c.set,p=c.getterFor,f=u.find,m=u.findIndex,v=0,g=function(t){return t.frozen||(t.frozen=new y)},y=function(){this.entries=[]},_=function(t,e){return f(t.entries,(function(t){return t[0]===e}))};y.prototype={get:function(t){var e=_(this,t);if(e)return e[1]},has:function(t){return!!_(this,t)},set:function(t,e){var i=_(this,t);i?i[1]=e:this.entries.push([t,e])},delete:function(t){var e=m(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,i,u){var c=t((function(t,n){a(t,c,e),d(t,{type:e,id:v++,frozen:void 0}),null!=n&&h(n,t[u],t,i)})),f=p(e),m=function(t,e,i){var n=f(t),o=r(s(e),!0);return!0===o?g(n).set(e,i):o[n.id]=i,t};return n(c.prototype,{delete:function(t){var e=f(this);if(!o(t))return!1;var i=r(t);return!0===i?g(e).delete(t):i&&l(i,e.id)&&delete i[e.id]},has:function(t){var e=f(this);if(!o(t))return!1;var i=r(t);return!0===i?g(e).has(t):i&&l(i,e.id)}}),n(c.prototype,i?{get:function(t){var e=f(this);if(o(t)){var i=r(t);return!0===i?g(e).get(t):i?i[e.id]:void 0}},set:function(t,e){return m(this,t,e)}}:{add:function(t){return m(this,t,!0)}}),c}}},93574:(t,e,i)=>{"use strict";var n=i(23889),r=i(33386),s=i(60995),o=i(18957),a=i(8080),h=i(76808),u=i(31057),l=i(68580),c=i(38493),d=i(92916),p=i(39893),f=i(27541);t.exports=function(t,e,i){var m=-1!==t.indexOf("Map"),v=-1!==t.indexOf("Weak"),g=m?"set":"add",y=r[t],_=y&&y.prototype,x=y,b={},w=function(t){var e=_[t];o(_,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(v&&!l(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return v&&!l(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(v&&!l(t))&&e.call(this,0===t?0:t)}:function(t,i){return e.call(this,0===t?0:t,i),this})};if(s(t,"function"!=typeof y||!(v||_.forEach&&!c((function(){(new y).entries().next()})))))x=i.getConstructor(e,t,m,g),a.REQUIRED=!0;else if(s(t,!0)){var T=new x,M=T[g](v?{}:-0,1)!=T,S=c((function(){T.has(1)})),E=d((function(t){new y(t)})),L=!v&&c((function(){for(var t=new y,e=5;e--;)t[g](e,e);return!t.has(-0)}));E||((x=e((function(e,i){u(e,x,t);var n=f(new y,e,x);return null!=i&&h(i,n[g],n,m),n}))).prototype=_,_.constructor=x),(S||L)&&(w("delete"),w("has"),m&&w("get")),(L||M)&&w(g),v&&_.clear&&delete _.clear}return b[t]=x,n({global:!0,forced:x!=y},b),p(x,t),v||i.setStrong(x,t,m),x}},19388:(t,e,i)=>{var n=i(65017),r=i(35075),s=i(37602),o=i(68580),a=function(){this.object=null,this.symbol=null,this.primitives=null,this.objectsByIndex=s(null)};a.prototype.get=function(t,e){return this[t]||(this[t]=e())},a.prototype.next=function(t,e,i){var s=i?this.objectsByIndex[t]||(this.objectsByIndex[t]=new r):this.primitives||(this.primitives=new n),o=s.get(e);return o||s.set(e,o=new a),o};var h=new a;t.exports=function(){var t,e,i=h,n=arguments.length;for(t=0;t<n;t++)o(e=arguments[t])&&(i=i.next(t,e,!0));if(this===Object&&i===h)throw TypeError("Composite keys must contain a non-primitive component");for(t=0;t<n;t++)o(e=arguments[t])||(i=i.next(t,e,!1));return i}},27367:(t,e,i)=>{var n=i(54585),r=i(54327),s=i(91211),o=i(64774);t.exports=function(t,e){for(var i=r(e),a=o.f,h=s.f,u=0;u<i.length;u++){var l=i[u];n(t,l)||a(t,l,h(e,l))}}},43728:(t,e,i)=>{var n=i(10548)("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(i){try{return e[n]=!1,"/./"[t](e)}catch(t){}}return!1}},5331:(t,e,i)=>{var n=i(38493);t.exports=!n((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},66421:(t,e,i)=>{var n=i(86608),r=/"/g;t.exports=function(t,e,i,s){var o=String(n(t)),a="<"+e;return""!==i&&(a+=" "+i+'="'+String(s).replace(r,""")+'"'),a+">"+o+"</"+e+">"}},2395:(t,e,i)=>{"use strict";var n=i(91706).IteratorPrototype,r=i(37602),s=i(36846),o=i(39893),a=i(15926),h=function(){return this};t.exports=function(t,e,i){var u=e+" Iterator";return t.prototype=r(n,{next:s(1,i)}),o(t,u,!1,!0),a[u]=h,t}},17182:(t,e,i)=>{var n=i(56617),r=i(64774),s=i(36846);t.exports=n?function(t,e,i){return r.f(t,e,s(1,i))}:function(t,e,i){return t[e]=i,t}},36846:t=>{t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},73685:(t,e,i)=>{"use strict";var n=i(33196),r=i(64774),s=i(36846);t.exports=function(t,e,i){var o=n(e);o in t?r.f(t,o,s(0,i)):t[o]=i}},87124:(t,e,i)=>{"use strict";var n=i(38493),r=i(76940).start,s=Math.abs,o=Date.prototype,a=o.getTime,h=o.toISOString;t.exports=n((function(){return"0385-07-25T07:06:39.999Z"!=h.call(new Date(-50000000000001))}))||!n((function(){h.call(new Date(NaN))}))?function(){if(!isFinite(a.call(this)))throw RangeError("Invalid time value");var t=this,e=t.getUTCFullYear(),i=t.getUTCMilliseconds(),n=e<0?"-":e>9999?"+":"";return n+r(s(e),n?6:4,0)+"-"+r(t.getUTCMonth()+1,2,0)+"-"+r(t.getUTCDate(),2,0)+"T"+r(t.getUTCHours(),2,0)+":"+r(t.getUTCMinutes(),2,0)+":"+r(t.getUTCSeconds(),2,0)+"."+r(i,3,0)+"Z"}:h},22853:(t,e,i)=>{"use strict";var n=i(13980),r=i(33196);t.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return r(n(this),"number"!==t)}},7693:(t,e,i)=>{"use strict";var n=i(23889),r=i(2395),s=i(29528),o=i(15456),a=i(39893),h=i(17182),u=i(18957),l=i(10548),c=i(51104),d=i(15926),p=i(91706),f=p.IteratorPrototype,m=p.BUGGY_SAFARI_ITERATORS,v=l("iterator"),g="keys",y="values",_="entries",x=function(){return this};t.exports=function(t,e,i,l,p,b,w){r(i,e,l);var T,M,S,E=function(t){if(t===p&&C)return C;if(!m&&t in D)return D[t];switch(t){case g:case y:case _:return function(){return new i(this,t)}}return function(){return new i(this)}},L=e+" Iterator",A=!1,D=t.prototype,P=D[v]||D["@@iterator"]||p&&D[p],C=!m&&P||E(p),O="Array"==e&&D.entries||P;if(O&&(T=s(O.call(new t)),f!==Object.prototype&&T.next&&(c||s(T)===f||(o?o(T,f):"function"!=typeof T[v]&&h(T,v,x)),a(T,L,!0,!0),c&&(d[L]=x))),p==y&&P&&P.name!==y&&(A=!0,C=function(){return P.call(this)}),c&&!w||D[v]===C||h(D,v,C),d[e]=C,p)if(M={values:E(y),keys:b?C:E(g),entries:E(_)},w)for(S in M)(m||A||!(S in D))&&u(D,S,M[S]);else n({target:e,proto:!0,forced:m||A},M);return M}},62646:(t,e,i)=>{var n=i(29467),r=i(54585),s=i(71317),o=i(64774).f;t.exports=function(t){var e=n.Symbol||(n.Symbol={});r(e,t)||o(e,t,{value:s.f(t)})}},56617:(t,e,i)=>{var n=i(38493);t.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},507:(t,e,i)=>{var n=i(33386),r=i(68580),s=n.document,o=r(s)&&r(s.createElement);t.exports=function(t){return o?s.createElement(t):{}}},52889:t=>{t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},4010:(t,e,i)=>{var n=i(66499);t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(n)},66499:(t,e,i)=>{var n=i(27623);t.exports=n("navigator","userAgent")||""},80823:(t,e,i)=>{var n,r,s=i(33386),o=i(66499),a=s.process,h=a&&a.versions,u=h&&h.v8;u?r=(n=u.split("."))[0]+n[1]:o&&(!(n=o.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=o.match(/Chrome\/(\d+)/))&&(r=n[1]),t.exports=r&&+r},53838:t=>{t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},23889:(t,e,i)=>{var n=i(33386),r=i(91211).f,s=i(17182),o=i(18957),a=i(29764),h=i(27367),u=i(60995);t.exports=function(t,e){var i,l,c,d,p,f=t.target,m=t.global,v=t.stat;if(i=m?n:v?n[f]||a(f,{}):(n[f]||{}).prototype)for(l in e){if(d=e[l],c=t.noTargetGet?(p=r(i,l))&&p.value:i[l],!u(m?l:f+(v?".":"#")+l,t.forced)&&void 0!==c){if(typeof d==typeof c)continue;h(d,c)}(t.sham||c&&c.sham)&&s(d,"sham",!0),o(i,l,d,t)}}},38493:t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},57937:(t,e,i)=>{"use strict";i(99058);var n=i(18957),r=i(38493),s=i(10548),o=i(83815),a=i(17182),h=s("species"),u=!r((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),l="$0"==="a".replace(/./,"$0"),c=s("replace"),d=!!/./[c]&&""===/./[c]("a","$0"),p=!r((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var i="ab".split(t);return 2!==i.length||"a"!==i[0]||"b"!==i[1]}));t.exports=function(t,e,i,c){var f=s(t),m=!r((function(){var e={};return e[f]=function(){return 7},7!=""[t](e)})),v=m&&!r((function(){var e=!1,i=/a/;return"split"===t&&((i={}).constructor={},i.constructor[h]=function(){return i},i.flags="",i[f]=/./[f]),i.exec=function(){return e=!0,null},i[f](""),!e}));if(!m||!v||"replace"===t&&(!u||!l||d)||"split"===t&&!p){var g=/./[f],y=i(f,""[t],(function(t,e,i,n,r){return e.exec===o?m&&!r?{done:!0,value:g.call(e,i,n)}:{done:!0,value:t.call(i,e,n)}:{done:!1}}),{REPLACE_KEEPS_$0:l,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:d}),_=y[0],x=y[1];n(String.prototype,t,_),n(RegExp.prototype,f,2==e?function(t,e){return x.call(t,this,e)}:function(t){return x.call(t,this)})}c&&a(RegExp.prototype[f],"sham",!0)}},70623:(t,e,i)=>{"use strict";var n=i(20351),r=i(7933),s=i(39181),o=function(t,e,i,a,h,u,l,c){for(var d,p=h,f=0,m=!!l&&s(l,c,3);f<a;){if(f in i){if(d=m?m(i[f],f,e):i[f],u>0&&n(d))p=o(t,e,d,r(d.length),p,u-1)-1;else{if(p>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[p]=d}p++}f++}return p};t.exports=o},37235:(t,e,i)=>{var n=i(38493);t.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))},39181:(t,e,i)=>{var n=i(23775);t.exports=function(t,e,i){if(n(t),void 0===e)return t;switch(i){case 0:return function(){return t.call(e)};case 1:return function(i){return t.call(e,i)};case 2:return function(i,n){return t.call(e,i,n)};case 3:return function(i,n,r){return t.call(e,i,n,r)}}return function(){return t.apply(e,arguments)}}},31078:(t,e,i)=>{"use strict";var n=i(23775),r=i(68580),s=[].slice,o={},a=function(t,e,i){if(!(e in o)){for(var n=[],r=0;r<e;r++)n[r]="a["+r+"]";o[e]=Function("C,a","return new C("+n.join(",")+")")}return o[e](t,i)};t.exports=Function.bind||function(t){var e=n(this),i=s.call(arguments,1),o=function(){var n=i.concat(s.call(arguments));return this instanceof o?a(e,n.length,n):e.apply(t,n)};return r(e.prototype)&&(o.prototype=e.prototype),o}},6178:(t,e,i)=>{var n=i(99683),r=i(10548)("asyncIterator");t.exports=function(t){var e=t[r];return void 0===e?n(t):e}},27623:(t,e,i)=>{var n=i(29467),r=i(33386),s=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?s(n[t])||s(r[t]):n[t]&&n[t][e]||r[t]&&r[t][e]}},99683:(t,e,i)=>{var n=i(16385),r=i(15926),s=i(10548)("iterator");t.exports=function(t){if(null!=t)return t[s]||t["@@iterator"]||r[n(t)]}},62389:(t,e,i)=>{var n=i(13980),r=i(99683);t.exports=function(t){var e=r(t);if("function"!=typeof e)throw TypeError(String(t)+" is not iterable");return n(e.call(t))}},81709:(t,e,i)=>{var n=i(51104),r=i(62389);t.exports=n?r:function(t){return Map.prototype.entries.call(t)}},82091:(t,e,i)=>{var n=i(51104),r=i(62389);t.exports=n?r:function(t){return Set.prototype.values.call(t)}},33386:t=>{var e=function(t){return t&&t.Math==Math&&t};t.exports=e("object"==typeof globalThis&&globalThis)||e("object"==typeof window&&window)||e("object"==typeof self&&self)||e("object"==typeof global&&global)||Function("return this")()},54585:t=>{var e={}.hasOwnProperty;t.exports=function(t,i){return e.call(t,i)}},26007:t=>{t.exports={}},98684:(t,e,i)=>{var n=i(33386);t.exports=function(t,e){var i=n.console;i&&i.error&&(1===arguments.length?i.error(t):i.error(t,e))}},21974:(t,e,i)=>{var n=i(27623);t.exports=n("document","documentElement")},80416:(t,e,i)=>{var n=i(56617),r=i(38493),s=i(507);t.exports=!n&&!r((function(){return 7!=Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a}))},31787:t=>{var e=1/0,i=Math.abs,n=Math.pow,r=Math.floor,s=Math.log,o=Math.LN2;t.exports={pack:function(t,a,h){var u,l,c,d=new Array(h),p=8*h-a-1,f=(1<<p)-1,m=f>>1,v=23===a?n(2,-24)-n(2,-77):0,g=t<0||0===t&&1/t<0?1:0,y=0;for((t=i(t))!=t||t===e?(l=t!=t?1:0,u=f):(u=r(s(t)/o),t*(c=n(2,-u))<1&&(u--,c*=2),(t+=u+m>=1?v/c:v*n(2,1-m))*c>=2&&(u++,c/=2),u+m>=f?(l=0,u=f):u+m>=1?(l=(t*c-1)*n(2,a),u+=m):(l=t*n(2,m-1)*n(2,a),u=0));a>=8;d[y++]=255&l,l/=256,a-=8);for(u=u<<a|l,p+=a;p>0;d[y++]=255&u,u/=256,p-=8);return d[--y]|=128*g,d},unpack:function(t,i){var r,s=t.length,o=8*s-i-1,a=(1<<o)-1,h=a>>1,u=o-7,l=s-1,c=t[l--],d=127&c;for(c>>=7;u>0;d=256*d+t[l],l--,u-=8);for(r=d&(1<<-u)-1,d>>=-u,u+=i;u>0;r=256*r+t[l],l--,u-=8);if(0===d)d=1-h;else{if(d===a)return r?NaN:c?-1/0:e;r+=n(2,i),d-=h}return(c?-1:1)*r*n(2,d-i)}}},11749:(t,e,i)=>{var n=i(38493),r=i(2178),s="".split;t.exports=n((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==r(t)?s.call(t,""):Object(t)}:Object},27541:(t,e,i)=>{var n=i(68580),r=i(15456);t.exports=function(t,e,i){var s,o;return r&&"function"==typeof(s=e.constructor)&&s!==i&&n(o=s.prototype)&&o!==i.prototype&&r(t,o),t}},82133:(t,e,i)=>{var n=i(50671),r=Function.toString;"function"!=typeof n.inspectSource&&(n.inspectSource=function(t){return r.call(t)}),t.exports=n.inspectSource},8080:(t,e,i)=>{var n=i(26007),r=i(68580),s=i(54585),o=i(64774).f,a=i(37645),h=i(37235),u=a("meta"),l=0,c=Object.isExtensible||function(){return!0},d=function(t){o(t,u,{value:{objectID:"O"+ ++l,weakData:{}}})},p=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!s(t,u)){if(!c(t))return"F";if(!e)return"E";d(t)}return t[u].objectID},getWeakData:function(t,e){if(!s(t,u)){if(!c(t))return!0;if(!e)return!1;d(t)}return t[u].weakData},onFreeze:function(t){return h&&p.REQUIRED&&c(t)&&!s(t,u)&&d(t),t}};n[u]=!0},97030:(t,e,i)=>{var n,r,s,o=i(85721),a=i(33386),h=i(68580),u=i(17182),l=i(54585),c=i(31059),d=i(26007),p=a.WeakMap;if(o){var f=new p,m=f.get,v=f.has,g=f.set;n=function(t,e){return g.call(f,t,e),e},r=function(t){return m.call(f,t)||{}},s=function(t){return v.call(f,t)}}else{var y=c("state");d[y]=!0,n=function(t,e){return u(t,y,e),e},r=function(t){return l(t,y)?t[y]:{}},s=function(t){return l(t,y)}}t.exports={set:n,get:r,has:s,enforce:function(t){return s(t)?r(t):n(t,{})},getterFor:function(t){return function(e){var i;if(!h(e)||(i=r(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return i}}}},31243:(t,e,i)=>{var n=i(10548),r=i(15926),s=n("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||o[s]===t)}},20351:(t,e,i)=>{var n=i(2178);t.exports=Array.isArray||function(t){return"Array"==n(t)}},60995:(t,e,i)=>{var n=i(38493),r=/#|\.prototype\./,s=function(t,e){var i=a[o(t)];return i==u||i!=h&&("function"==typeof e?n(e):!!e)},o=s.normalize=function(t){return String(t).replace(r,".").toLowerCase()},a=s.data={},h=s.NATIVE="N",u=s.POLYFILL="P";t.exports=s},33054:(t,e,i)=>{var n=i(68580),r=Math.floor;t.exports=function(t){return!n(t)&&isFinite(t)&&r(t)===t}},68580:t=>{t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},51104:t=>{t.exports=!1},39376:(t,e,i)=>{var n=i(68580),r=i(2178),s=i(10548)("match");t.exports=function(t){var e;return n(t)&&(void 0!==(e=t[s])?!!e:"RegExp"==r(t))}},76808:(t,e,i)=>{var n=i(13980),r=i(31243),s=i(7933),o=i(39181),a=i(99683),h=i(31404),u=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,i,l,c){var d,p,f,m,v,g,y,_=o(e,i,l?2:1);if(c)d=t;else{if("function"!=typeof(p=a(t)))throw TypeError("Target is not iterable");if(r(p)){for(f=0,m=s(t.length);m>f;f++)if((v=l?_(n(y=t[f])[0],y[1]):_(t[f]))&&v instanceof u)return v;return new u(!1)}d=p.call(t)}for(g=d.next;!(y=g.call(d)).done;)if("object"==typeof(v=h(d,_,y.value,l))&&v&&v instanceof u)return v;return new u(!1)}).stop=function(t){return new u(!0,t)}},79596:(t,e,i)=>{"use strict";var n=i(29467),r=i(23775),s=i(13980),o=i(37602),a=i(17182),h=i(11432),u=i(10548),l=i(97030),c=l.set,d=l.get,p=u("toStringTag"),f=function(t){var e=d(this).iterator,i=e.return;return void 0===i?{done:!0,value:t}:s(i.call(e,t))},m=function(t){var e=d(this).iterator,i=e.throw;if(void 0===i)throw t;return i.call(e,t)};t.exports=function(t,e){var i=function(t){t.next=r(t.iterator.next),t.done=!1,c(this,t)};return i.prototype=h(o(n.Iterator.prototype),{next:function(){var e=d(this),i=e.done?void 0:t.apply(e,arguments);return{done:e.done,value:i}},return:f,throw:m}),e||a(i.prototype,p,"Generator"),i}},91706:(t,e,i)=>{"use strict";var n,r,s,o=i(29528),a=i(17182),h=i(54585),u=i(10548),l=i(51104),c=u("iterator"),d=!1;[].keys&&("next"in(s=[].keys())?(r=o(o(s)))!==Object.prototype&&(n=r):d=!0),null==n&&(n={}),l||h(n,c)||a(n,c,(function(){return this})),t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:d}},15926:t=>{t.exports={}},35913:(t,e,i)=>{"use strict";var n=i(13980);t.exports=function(t,e){var i,r=n(this),s=arguments.length>2?arguments[2]:void 0;if("function"!=typeof e&&"function"!=typeof s)throw TypeError("At least one callback required");return r.has(t)?(i=r.get(t),"function"==typeof e&&(i=e(i),r.set(t,i))):"function"==typeof s&&(i=s(),r.set(t,i)),i}},12224:t=>{var e=Math.expm1,i=Math.exp;t.exports=!e||e(10)>22025.465794806718||e(10)<22025.465794806718||-2e-17!=e(-2e-17)?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:i(t)-1}:e},89492:(t,e,i)=>{var n=i(98514),r=Math.abs,s=Math.pow,o=s(2,-52),a=s(2,-23),h=s(2,127)*(2-a),u=s(2,-126);t.exports=Math.fround||function(t){var e,i,s=r(t),l=n(t);return s<u?l*(s/u/a+1/o-1/o)*u*a:(i=(e=(1+a/o)*s)-(e-s))>h||i!=i?l*(1/0):l*i}},22224:t=>{var e=Math.log;t.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:e(1+t)}},94602:t=>{t.exports=Math.scale||function(t,e,i,n,r){return 0===arguments.length||t!=t||e!=e||i!=i||n!=n||r!=r?NaN:t===1/0||t===-1/0?t:(t-e)*(r-n)/(i-e)+n}},98514:t=>{t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},65516:(t,e,i)=>{var n,r,s,o,a,h,u,l,c=i(33386),d=i(91211).f,p=i(2178),f=i(39331).set,m=i(4010),v=c.MutationObserver||c.WebKitMutationObserver,g=c.process,y=c.Promise,_="process"==p(g),x=d(c,"queueMicrotask"),b=x&&x.value;b||(n=function(){var t,e;for(_&&(t=g.domain)&&t.exit();r;){e=r.fn,r=r.next;try{e()}catch(t){throw r?o():s=void 0,t}}s=void 0,t&&t.enter()},_?o=function(){g.nextTick(n)}:v&&!m?(a=!0,h=document.createTextNode(""),new v(n).observe(h,{characterData:!0}),o=function(){h.data=a=!a}):y&&y.resolve?(u=y.resolve(void 0),l=u.then,o=function(){l.call(u,n)}):o=function(){f.call(c,n)}),t.exports=b||function(t){var e={fn:t,next:void 0};s&&(s.next=e),r||(r=e,o()),s=e}},25306:(t,e,i)=>{var n=i(33386);t.exports=n.Promise},77802:(t,e,i)=>{var n=i(38493);t.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},80781:(t,e,i)=>{var n=i(38493),r=i(10548),s=i(51104),o=r("iterator");t.exports=!n((function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,i="";return t.pathname="c%20d",e.forEach((function(t,n){e.delete("b"),i+=n+t})),s&&!t.toJSON||!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[o]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://\u0442\u0435\u0441\u0442").host||"#%D0%B1"!==new URL("http://a#\u0431").hash||"a1c3"!==i||"x"!==new URL("http://x",void 0).host}))},85721:(t,e,i)=>{var n=i(33386),r=i(82133),s=n.WeakMap;t.exports="function"==typeof s&&/native code/.test(r(s))},8168:(t,e,i)=>{"use strict";var n=i(23775),r=function(t){var e,i;this.promise=new t((function(t,n){if(void 0!==e||void 0!==i)throw TypeError("Bad Promise constructor");e=t,i=n})),this.resolve=n(e),this.reject=n(i)};t.exports.f=function(t){return new r(t)}},89109:(t,e,i)=>{var n=i(39376);t.exports=function(t){if(n(t))throw TypeError("The method doesn't accept regular expressions");return t}},48682:(t,e,i)=>{var n=i(33386).isFinite;t.exports=Number.isFinite||function(t){return"number"==typeof t&&n(t)}},2463:(t,e,i)=>{var n=i(33386),r=i(66672).trim,s=i(71388),o=n.parseFloat,a=1/o(s+"-0")!=-1/0;t.exports=a?function(t){var e=r(String(t)),i=o(e);return 0===i&&"-"==e.charAt(0)?-0:i}:o},62229:(t,e,i)=>{var n=i(33386),r=i(66672).trim,s=i(71388),o=n.parseInt,a=/^[+-]?0[Xx]/,h=8!==o(s+"08")||22!==o(s+"0x16");t.exports=h?function(t,e){var i=r(String(t));return o(i,e>>>0||(a.test(i)?16:10))}:o},98466:(t,e,i)=>{"use strict";var n=i(56617),r=i(38493),s=i(64855),o=i(50169),a=i(58399),h=i(51223),u=i(11749),l=Object.assign,c=Object.defineProperty;t.exports=!l||r((function(){if(n&&1!==l({b:1},l(c({},"a",{enumerable:!0,get:function(){c(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},i=Symbol(),r="abcdefghijklmnopqrst";return t[i]=7,r.split("").forEach((function(t){e[t]=t})),7!=l({},t)[i]||s(l({},e)).join("")!=r}))?function(t,e){for(var i=h(t),r=arguments.length,l=1,c=o.f,d=a.f;r>l;)for(var p,f=u(arguments[l++]),m=c?s(f).concat(c(f)):s(f),v=m.length,g=0;v>g;)p=m[g++],n&&!d.call(f,p)||(i[p]=f[p]);return i}:l},37602:(t,e,i)=>{var n,r=i(13980),s=i(23702),o=i(53838),a=i(26007),h=i(21974),u=i(507),l=i(31059),c=l("IE_PROTO"),d=function(){},p=function(t){return"<script>"+t+"</"+"script>"},f=function(){try{n=document.domain&&new ActiveXObject("htmlfile")}catch(t){}var t,e;f=n?function(t){t.write(p("")),t.close();var e=t.parentWindow.Object;return t=null,e}(n):((e=u("iframe")).style.display="none",h.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(p("document.F=Object")),t.close(),t.F);for(var i=o.length;i--;)delete f.prototype[o[i]];return f()};a[c]=!0,t.exports=Object.create||function(t,e){var i;return null!==t?(d.prototype=r(t),i=new d,d.prototype=null,i[c]=t):i=f(),void 0===e?i:s(i,e)}},23702:(t,e,i)=>{var n=i(56617),r=i(64774),s=i(13980),o=i(64855);t.exports=n?Object.defineProperties:function(t,e){s(t);for(var i,n=o(e),a=n.length,h=0;a>h;)r.f(t,i=n[h++],e[i]);return t}},64774:(t,e,i)=>{var n=i(56617),r=i(80416),s=i(13980),o=i(33196),a=Object.defineProperty;e.f=n?a:function(t,e,i){if(s(t),e=o(e,!0),s(i),r)try{return a(t,e,i)}catch(t){}if("get"in i||"set"in i)throw TypeError("Accessors not supported");return"value"in i&&(t[e]=i.value),t}},91211:(t,e,i)=>{var n=i(56617),r=i(58399),s=i(36846),o=i(86939),a=i(33196),h=i(54585),u=i(80416),l=Object.getOwnPropertyDescriptor;e.f=n?l:function(t,e){if(t=o(t),e=a(e,!0),u)try{return l(t,e)}catch(t){}if(h(t,e))return s(!r.f.call(t,e),t[e])}},74720:(t,e,i)=>{var n=i(86939),r=i(74562).f,s={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(t){return o&&"[object Window]"==s.call(t)?function(t){try{return r(t)}catch(t){return o.slice()}}(t):r(n(t))}},74562:(t,e,i)=>{var n=i(49372),r=i(53838).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return n(t,r)}},50169:(t,e)=>{e.f=Object.getOwnPropertySymbols},29528:(t,e,i)=>{var n=i(54585),r=i(51223),s=i(31059),o=i(5331),a=s("IE_PROTO"),h=Object.prototype;t.exports=o?Object.getPrototypeOf:function(t){return t=r(t),n(t,a)?t[a]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?h:null}},30863:(t,e,i)=>{"use strict";var n=i(97030),r=i(2395),s=i(54585),o=i(64855),a=i(51223),h="Object Iterator",u=n.set,l=n.getterFor(h);t.exports=r((function(t,e){var i=a(t);u(this,{type:h,mode:e,object:i,keys:o(i),index:0})}),"Object",(function(){for(var t=l(this),e=t.keys;;){if(null===e||t.index>=e.length)return t.object=t.keys=null,{value:void 0,done:!0};var i=e[t.index++],n=t.object;if(s(n,i)){switch(t.mode){case"keys":return{value:i,done:!1};case"values":return{value:n[i],done:!1}}return{value:[i,n[i]],done:!1}}}}))},49372:(t,e,i)=>{var n=i(54585),r=i(86939),s=i(93289).indexOf,o=i(26007);t.exports=function(t,e){var i,a=r(t),h=0,u=[];for(i in a)!n(o,i)&&n(a,i)&&u.push(i);for(;e.length>h;)n(a,i=e[h++])&&(~s(u,i)||u.push(i));return u}},64855:(t,e,i)=>{var n=i(49372),r=i(53838);t.exports=Object.keys||function(t){return n(t,r)}},58399:(t,e)=>{"use strict";var i={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,r=n&&!i.call({1:2},1);e.f=r?function(t){var e=n(this,t);return!!e&&e.enumerable}:i},36061:(t,e,i)=>{"use strict";var n=i(51104),r=i(33386),s=i(38493);t.exports=n||!s((function(){var t=Math.random();__defineSetter__.call(null,t,(function(){})),delete r[t]}))},15456:(t,e,i)=>{var n=i(13980),r=i(66020);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,i={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(i,[]),e=i instanceof Array}catch(t){}return function(i,s){return n(i),r(s),e?t.call(i,s):i.__proto__=s,i}}():void 0)},38509:(t,e,i)=>{var n=i(56617),r=i(64855),s=i(86939),o=i(58399).f,a=function(t){return function(e){for(var i,a=s(e),h=r(a),u=h.length,l=0,c=[];u>l;)i=h[l++],n&&!o.call(a,i)||c.push(t?[i,a[i]]:a[i]);return c}};t.exports={entries:a(!0),values:a(!1)}},27148:(t,e,i)=>{"use strict";var n=i(29100),r=i(16385);t.exports=n?{}.toString:function(){return"[object "+r(this)+"]"}},54327:(t,e,i)=>{var n=i(27623),r=i(74562),s=i(50169),o=i(13980);t.exports=n("Reflect","ownKeys")||function(t){var e=r.f(o(t)),i=s.f;return i?e.concat(i(t)):e}},29467:(t,e,i)=>{var n=i(33386);t.exports=n},70595:t=>{t.exports=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}}},39230:(t,e,i)=>{var n=i(13980),r=i(68580),s=i(8168);t.exports=function(t,e){if(n(t),r(e)&&e.constructor===t)return e;var i=s.f(t);return(0,i.resolve)(e),i.promise}},11432:(t,e,i)=>{var n=i(18957);t.exports=function(t,e,i){for(var r in e)n(t,r,e[r],i);return t}},18957:(t,e,i)=>{var n=i(33386),r=i(17182),s=i(54585),o=i(29764),a=i(82133),h=i(97030),u=h.get,l=h.enforce,c=String(String).split("String");(t.exports=function(t,e,i,a){var h=!!a&&!!a.unsafe,u=!!a&&!!a.enumerable,d=!!a&&!!a.noTargetGet;"function"==typeof i&&("string"!=typeof e||s(i,"name")||r(i,"name",e),l(i).source=c.join("string"==typeof e?e:"")),t!==n?(h?!d&&t[e]&&(u=!0):delete t[e],u?t[e]=i:r(t,e,i)):u?t[e]=i:o(e,i)})(Function.prototype,"toString",(function(){return"function"==typeof this&&u(this).source||a(this)}))},38758:(t,e,i)=>{var n=i(65017),r=i(35075),s=i(31416)("metadata"),o=s.store||(s.store=new r),a=function(t,e,i){var r=o.get(t);if(!r){if(!i)return;o.set(t,r=new n)}var s=r.get(e);if(!s){if(!i)return;r.set(e,s=new n)}return s};t.exports={store:o,getMap:a,has:function(t,e,i){var n=a(e,i,!1);return void 0!==n&&n.has(t)},get:function(t,e,i){var n=a(e,i,!1);return void 0===n?void 0:n.get(t)},set:function(t,e,i,n){a(i,n,!0).set(t,e)},keys:function(t,e){var i=a(t,e,!1),n=[];return i&&i.forEach((function(t,e){n.push(e)})),n},toKey:function(t){return void 0===t||"symbol"==typeof t?t:String(t)}}},30584:(t,e,i)=>{var n=i(2178),r=i(83815);t.exports=function(t,e){var i=t.exec;if("function"==typeof i){var s=i.call(t,e);if("object"!=typeof s)throw TypeError("RegExp exec method returned something other than an Object or null");return s}if("RegExp"!==n(t))throw TypeError("RegExp#exec called on incompatible receiver");return r.call(t,e)}},83815:(t,e,i)=>{"use strict";var n,r,s=i(21068),o=i(97262),a=RegExp.prototype.exec,h=String.prototype.replace,u=a,l=(n=/a/,r=/b*/g,a.call(n,"a"),a.call(r,"a"),0!==n.lastIndex||0!==r.lastIndex),c=o.UNSUPPORTED_Y||o.BROKEN_CARET,d=void 0!==/()??/.exec("")[1];(l||d||c)&&(u=function(t){var e,i,n,r,o=this,u=c&&o.sticky,p=s.call(o),f=o.source,m=0,v=t;return u&&(-1===(p=p.replace("y","")).indexOf("g")&&(p+="g"),v=String(t).slice(o.lastIndex),o.lastIndex>0&&(!o.multiline||o.multiline&&"\n"!==t[o.lastIndex-1])&&(f="(?: "+f+")",v=" "+v,m++),i=new RegExp("^(?:"+f+")",p)),d&&(i=new RegExp("^"+f+"$(?!\\s)",p)),l&&(e=o.lastIndex),n=a.call(u?i:o,v),u?n?(n.input=n.input.slice(m),n[0]=n[0].slice(m),n.index=o.lastIndex,o.lastIndex+=n[0].length):o.lastIndex=0:l&&n&&(o.lastIndex=o.global?n.index+n[0].length:e),d&&n&&n.length>1&&h.call(n[0],i,(function(){for(r=1;r<arguments.length-2;r++)void 0===arguments[r]&&(n[r]=void 0)})),n}),t.exports=u},21068:(t,e,i)=>{"use strict";var n=i(13980);t.exports=function(){var t=n(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},97262:(t,e,i)=>{"use strict";var n=i(38493);function r(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=n((function(){var t=r("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=n((function(){var t=r("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},86608:t=>{t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},68790:t=>{t.exports=function(t,e){return t===e||t!=t&&e!=e}},12195:t=>{t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},29764:(t,e,i)=>{var n=i(33386),r=i(17182);t.exports=function(t,e){try{r(n,t,e)}catch(i){n[t]=e}return e}},16906:(t,e,i)=>{"use strict";var n=i(27623),r=i(64774),s=i(10548),o=i(56617),a=s("species");t.exports=function(t){var e=n(t),i=r.f;o&&e&&!e[a]&&i(e,a,{configurable:!0,get:function(){return this}})}},39893:(t,e,i)=>{var n=i(64774).f,r=i(54585),s=i(10548)("toStringTag");t.exports=function(t,e,i){t&&!r(t=i?t:t.prototype,s)&&n(t,s,{configurable:!0,value:e})}},31059:(t,e,i)=>{var n=i(31416),r=i(37645),s=n("keys");t.exports=function(t){return s[t]||(s[t]=r(t))}},50671:(t,e,i)=>{var n=i(33386),r=i(29764),s="__core-js_shared__",o=n[s]||r(s,{});t.exports=o},31416:(t,e,i)=>{var n=i(51104),r=i(50671);(t.exports=function(t,e){return r[t]||(r[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.5",mode:n?"pure":"global",copyright:"\xa9 2020 Denis Pushkarev (zloirock.ru)"})},7350:(t,e,i)=>{var n=i(13980),r=i(23775),s=i(10548)("species");t.exports=function(t,e){var i,o=n(t).constructor;return void 0===o||null==(i=n(o)[s])?e:r(i)}},50979:(t,e,i)=>{var n=i(38493);t.exports=function(t){return n((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}))}},17933:(t,e,i)=>{var n=i(1557),r=i(86608),s=function(t){return function(e,i){var s,o,a=String(r(e)),h=n(i),u=a.length;return h<0||h>=u?t?"":void 0:(s=a.charCodeAt(h))<55296||s>56319||h+1===u||(o=a.charCodeAt(h+1))<56320||o>57343?t?a.charAt(h):s:t?a.slice(h,h+2):o-56320+(s-55296<<10)+65536}};t.exports={codeAt:s(!1),charAt:s(!0)}},60285:(t,e,i)=>{var n=i(66499);t.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(n)},76940:(t,e,i)=>{var n=i(7933),r=i(71804),s=i(86608),o=Math.ceil,a=function(t){return function(e,i,a){var h,u,l=String(s(e)),c=l.length,d=void 0===a?" ":String(a),p=n(i);return p<=c||""==d?l:(h=p-c,(u=r.call(d,o(h/d.length))).length>h&&(u=u.slice(0,h)),t?l+u:u+l)}};t.exports={start:a(!1),end:a(!0)}},32937:t=>{"use strict";var e=2147483647,i=/[^\0-\u007E]/,n=/[.\u3002\uFF0E\uFF61]/g,r="Overflow: input needs wider integers to process",s=Math.floor,o=String.fromCharCode,a=function(t){return t+22+75*(t<26)},h=function(t,e,i){var n=0;for(t=i?s(t/700):t>>1,t+=s(t/e);t>455;n+=36)t=s(t/35);return s(n+36*t/(t+38))},u=function(t){var i,n,u=[],l=(t=function(t){for(var e=[],i=0,n=t.length;i<n;){var r=t.charCodeAt(i++);if(r>=55296&&r<=56319&&i<n){var s=t.charCodeAt(i++);56320==(64512&s)?e.push(((1023&r)<<10)+(1023&s)+65536):(e.push(r),i--)}else e.push(r)}return e}(t)).length,c=128,d=0,p=72;for(i=0;i<t.length;i++)(n=t[i])<128&&u.push(o(n));var f=u.length,m=f;for(f&&u.push("-");m<l;){var v=e;for(i=0;i<t.length;i++)(n=t[i])>=c&&n<v&&(v=n);var g=m+1;if(v-c>s((e-d)/g))throw RangeError(r);for(d+=(v-c)*g,c=v,i=0;i<t.length;i++){if((n=t[i])<c&&++d>e)throw RangeError(r);if(n==c){for(var y=d,_=36;;_+=36){var x=_<=p?1:_>=p+26?26:_-p;if(y<x)break;var b=y-x,w=36-x;u.push(o(a(x+b%w))),y=s(b/w)}u.push(o(a(y))),p=h(d,g,m==f),d=0,++m}}++d,++c}return u.join("")};t.exports=function(t){var e,r,s=[],o=t.toLowerCase().replace(n,".").split(".");for(e=0;e<o.length;e++)r=o[e],s.push(i.test(r)?"xn--"+u(r):r);return s.join(".")}},71804:(t,e,i)=>{"use strict";var n=i(1557),r=i(86608);t.exports="".repeat||function(t){var e=String(r(this)),i="",s=n(t);if(s<0||s==1/0)throw RangeError("Wrong number of repetitions");for(;s>0;(s>>>=1)&&(e+=e))1&s&&(i+=e);return i}},4212:(t,e,i)=>{var n=i(38493),r=i(71388);t.exports=function(t){return n((function(){return!!r[t]()||"\u200b\x85\u180e"!="\u200b\x85\u180e"[t]()||r[t].name!==t}))}},66672:(t,e,i)=>{var n=i(86608),r="["+i(71388)+"]",s=RegExp("^"+r+r+"*"),o=RegExp(r+r+"*$"),a=function(t){return function(e){var i=String(n(e));return 1&t&&(i=i.replace(s,"")),2&t&&(i=i.replace(o,"")),i}};t.exports={start:a(1),end:a(2),trim:a(3)}},39331:(t,e,i)=>{var n,r,s,o=i(33386),a=i(38493),h=i(2178),u=i(39181),l=i(21974),c=i(507),d=i(4010),p=o.location,f=o.setImmediate,m=o.clearImmediate,v=o.process,g=o.MessageChannel,y=o.Dispatch,_=0,x={},b="onreadystatechange",w=function(t){if(x.hasOwnProperty(t)){var e=x[t];delete x[t],e()}},T=function(t){return function(){w(t)}},M=function(t){w(t.data)},S=function(t){o.postMessage(t+"",p.protocol+"//"+p.host)};f&&m||(f=function(t){for(var e=[],i=1;arguments.length>i;)e.push(arguments[i++]);return x[++_]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},n(_),_},m=function(t){delete x[t]},"process"==h(v)?n=function(t){v.nextTick(T(t))}:y&&y.now?n=function(t){y.now(T(t))}:g&&!d?(s=(r=new g).port2,r.port1.onmessage=M,n=u(s.postMessage,s,1)):!o.addEventListener||"function"!=typeof postMessage||o.importScripts||a(S)||"file:"===p.protocol?n=b in c("script")?function(t){l.appendChild(c("script")).onreadystatechange=function(){l.removeChild(this),w(t)}}:function(t){setTimeout(T(t),0)}:(n=S,o.addEventListener("message",M,!1))),t.exports={set:f,clear:m}},85550:(t,e,i)=>{var n=i(2178);t.exports=function(t){if("number"!=typeof t&&"Number"!=n(t))throw TypeError("Incorrect invocation");return+t}},11486:(t,e,i)=>{var n=i(1557),r=Math.max,s=Math.min;t.exports=function(t,e){var i=n(t);return i<0?r(i+e,0):s(i,e)}},30035:(t,e,i)=>{var n=i(1557),r=i(7933);t.exports=function(t){if(void 0===t)return 0;var e=n(t),i=r(e);if(e!==i)throw RangeError("Wrong length or index");return i}},86939:(t,e,i)=>{var n=i(11749),r=i(86608);t.exports=function(t){return n(r(t))}},1557:t=>{var e=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:e)(t)}},7933:(t,e,i)=>{var n=i(1557),r=Math.min;t.exports=function(t){return t>0?r(n(t),9007199254740991):0}},51223:(t,e,i)=>{var n=i(86608);t.exports=function(t){return Object(n(t))}},25803:(t,e,i)=>{var n=i(17138);t.exports=function(t,e){var i=n(t);if(i%e)throw RangeError("Wrong offset");return i}},17138:(t,e,i)=>{var n=i(1557);t.exports=function(t){var e=n(t);if(e<0)throw RangeError("The argument can't be less than 0");return e}},33196:(t,e,i)=>{var n=i(68580);t.exports=function(t,e){if(!n(t))return t;var i,r;if(e&&"function"==typeof(i=t.toString)&&!n(r=i.call(t)))return r;if("function"==typeof(i=t.valueOf)&&!n(r=i.call(t)))return r;if(!e&&"function"==typeof(i=t.toString)&&!n(r=i.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},29100:(t,e,i)=>{var n={};n[i(10548)("toStringTag")]="z",t.exports="[object z]"===String(n)},19497:(t,e,i)=>{"use strict";var n=i(23889),r=i(33386),s=i(56617),o=i(95329),a=i(81609),h=i(50539),u=i(31057),l=i(36846),c=i(17182),d=i(7933),p=i(30035),f=i(25803),m=i(33196),v=i(54585),g=i(16385),y=i(68580),_=i(37602),x=i(15456),b=i(74562).f,w=i(55066),T=i(7622).forEach,M=i(16906),S=i(64774),E=i(91211),L=i(97030),A=i(27541),D=L.get,P=L.set,C=S.f,O=E.f,k=Math.round,R=r.RangeError,I=h.ArrayBuffer,Y=h.DataView,F=a.NATIVE_ARRAY_BUFFER_VIEWS,N=a.TYPED_ARRAY_TAG,B=a.TypedArray,U=a.TypedArrayPrototype,j=a.aTypedArrayConstructor,H=a.isTypedArray,z="BYTES_PER_ELEMENT",W="Wrong length",G=function(t,e){for(var i=0,n=e.length,r=new(j(t))(n);n>i;)r[i]=e[i++];return r},V=function(t,e){C(t,e,{get:function(){return D(this)[e]}})},X=function(t){var e;return t instanceof I||"ArrayBuffer"==(e=g(t))||"SharedArrayBuffer"==e},q=function(t,e){return H(t)&&"symbol"!=typeof e&&e in t&&String(+e)==String(e)},J=function(t,e){return q(t,e=m(e,!0))?l(2,t[e]):O(t,e)},Z=function(t,e,i){return!(q(t,e=m(e,!0))&&y(i)&&v(i,"value"))||v(i,"get")||v(i,"set")||i.configurable||v(i,"writable")&&!i.writable||v(i,"enumerable")&&!i.enumerable?C(t,e,i):(t[e]=i.value,t)};s?(F||(E.f=J,S.f=Z,V(U,"buffer"),V(U,"byteOffset"),V(U,"byteLength"),V(U,"length")),n({target:"Object",stat:!0,forced:!F},{getOwnPropertyDescriptor:J,defineProperty:Z}),t.exports=function(t,e,i){var s=t.match(/\d+$/)[0]/8,a=t+(i?"Clamped":"")+"Array",h="get"+t,l="set"+t,m=r[a],v=m,g=v&&v.prototype,S={},E=function(t,e){C(t,e,{get:function(){return function(t,e){var i=D(t);return i.view[h](e*s+i.byteOffset,!0)}(this,e)},set:function(t){return function(t,e,n){var r=D(t);i&&(n=(n=k(n))<0?0:n>255?255:255&n),r.view[l](e*s+r.byteOffset,n,!0)}(this,e,t)},enumerable:!0})};F?o&&(v=e((function(t,e,i,n){return u(t,v,a),A(y(e)?X(e)?void 0!==n?new m(e,f(i,s),n):void 0!==i?new m(e,f(i,s)):new m(e):H(e)?G(v,e):w.call(v,e):new m(p(e)),t,v)})),x&&x(v,B),T(b(m),(function(t){t in v||c(v,t,m[t])})),v.prototype=g):(v=e((function(t,e,i,n){u(t,v,a);var r,o,h,l=0,c=0;if(y(e)){if(!X(e))return H(e)?G(v,e):w.call(v,e);r=e,c=f(i,s);var m=e.byteLength;if(void 0===n){if(m%s)throw R(W);if((o=m-c)<0)throw R(W)}else if((o=d(n)*s)+c>m)throw R(W);h=o/s}else h=p(e),r=new I(o=h*s);for(P(t,{buffer:r,byteOffset:c,byteLength:o,length:h,view:new Y(r)});l<h;)E(t,l++)})),x&&x(v,B),g=v.prototype=_(U)),g.constructor!==v&&c(g,"constructor",v),N&&c(g,N,a),S[a]=v,n({global:!0,forced:v!=m,sham:!F},S),z in v||c(v,z,s),z in g||c(g,z,s),M(a)}):t.exports=function(){}},95329:(t,e,i)=>{var n=i(33386),r=i(38493),s=i(92916),o=i(81609).NATIVE_ARRAY_BUFFER_VIEWS,a=n.ArrayBuffer,h=n.Int8Array;t.exports=!o||!r((function(){h(1)}))||!r((function(){new h(-1)}))||!s((function(t){new h,new h(null),new h(1.5),new h(t)}),!0)||r((function(){return 1!==new h(new a(2),1,void 0).length}))},55066:(t,e,i)=>{var n=i(51223),r=i(7933),s=i(99683),o=i(31243),a=i(39181),h=i(81609).aTypedArrayConstructor;t.exports=function(t){var e,i,u,l,c,d,p=n(t),f=arguments.length,m=f>1?arguments[1]:void 0,v=void 0!==m,g=s(p);if(null!=g&&!o(g))for(d=(c=g.call(p)).next,p=[];!(l=d.call(c)).done;)p.push(l.value);for(v&&f>2&&(m=a(m,arguments[2],2)),i=r(p.length),u=new(h(this))(i),e=0;i>e;e++)u[e]=v?m(p[e],e):p[e];return u}},37645:t=>{var e=0,i=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++e+i).toString(36)}},73018:(t,e,i)=>{var n=i(77802);t.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},71317:(t,e,i)=>{var n=i(10548);e.f=n},10548:(t,e,i)=>{var n=i(33386),r=i(31416),s=i(54585),o=i(37645),a=i(77802),h=i(73018),u=r("wks"),l=n.Symbol,c=h?l:l&&l.withoutSetter||o;t.exports=function(t){return s(u,t)||(a&&s(l,t)?u[t]=l[t]:u[t]=c("Symbol."+t)),u[t]}},71388:t=>{t.exports="\t\n\v\f\r \xa0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},60471:(t,e,i)=>{"use strict";var n=i(23889),r=i(33386),s=i(50539),o=i(16906),a="ArrayBuffer",h=s.ArrayBuffer;n({global:!0,forced:r.ArrayBuffer!==h},{ArrayBuffer:h}),o(a)},31023:(t,e,i)=>{var n=i(23889),r=i(81609);n({target:"ArrayBuffer",stat:!0,forced:!r.NATIVE_ARRAY_BUFFER_VIEWS},{isView:r.isView})},79368:(t,e,i)=>{"use strict";var n=i(23889),r=i(38493),s=i(50539),o=i(13980),a=i(11486),h=i(7933),u=i(7350),l=s.ArrayBuffer,c=s.DataView,d=l.prototype.slice;n({target:"ArrayBuffer",proto:!0,unsafe:!0,forced:r((function(){return!new l(2).slice(1,void 0).byteLength}))},{slice:function(t,e){if(void 0!==d&&void 0===e)return d.call(o(this),t);for(var i=o(this).byteLength,n=a(t,i),r=a(void 0===e?i:e,i),s=new(u(this,l))(h(r-n)),p=new c(this),f=new c(s),m=0;n<r;)f.setUint8(m++,p.getUint8(n++));return s}})},43664:(t,e,i)=>{"use strict";var n=i(23889),r=i(38493),s=i(20351),o=i(68580),a=i(51223),h=i(7933),u=i(73685),l=i(44359),c=i(46453),d=i(10548),p=i(80823),f=d("isConcatSpreadable"),m=9007199254740991,v="Maximum allowed index exceeded",g=p>=51||!r((function(){var t=[];return t[f]=!1,t.concat()[0]!==t})),y=c("concat"),_=function(t){if(!o(t))return!1;var e=t[f];return void 0!==e?!!e:s(t)};n({target:"Array",proto:!0,forced:!g||!y},{concat:function(t){var e,i,n,r,s,o=a(this),c=l(o,0),d=0;for(e=-1,n=arguments.length;e<n;e++)if(_(s=-1===e?o:arguments[e])){if(d+(r=h(s.length))>m)throw TypeError(v);for(i=0;i<r;i++,d++)i in s&&u(c,d,s[i])}else{if(d>=m)throw TypeError(v);u(c,d++,s)}return c.length=d,c}})},83528:(t,e,i)=>{var n=i(23889),r=i(69801),s=i(35240);n({target:"Array",proto:!0},{copyWithin:r}),s("copyWithin")},69050:(t,e,i)=>{"use strict";var n=i(23889),r=i(7622).every,s=i(91649),o=i(12797),a=s("every"),h=o("every");n({target:"Array",proto:!0,forced:!a||!h},{every:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}})},20770:(t,e,i)=>{var n=i(23889),r=i(53009),s=i(35240);n({target:"Array",proto:!0},{fill:r}),s("fill")},97307:(t,e,i)=>{"use strict";var n=i(23889),r=i(7622).filter,s=i(46453),o=i(12797),a=s("filter"),h=o("filter");n({target:"Array",proto:!0,forced:!a||!h},{filter:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}})},17093:(t,e,i)=>{"use strict";var n=i(23889),r=i(7622).findIndex,s=i(35240),o=i(12797),a="findIndex",h=!0,u=o(a);a in[]&&Array(1).findIndex((function(){h=!1})),n({target:"Array",proto:!0,forced:h||!u},{findIndex:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),s(a)},44841:(t,e,i)=>{"use strict";var n=i(23889),r=i(7622).find,s=i(35240),o=i(12797),a="find",h=!0,u=o(a);a in[]&&Array(1).find((function(){h=!1})),n({target:"Array",proto:!0,forced:h||!u},{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),s(a)},63327:(t,e,i)=>{"use strict";var n=i(23889),r=i(70623),s=i(51223),o=i(7933),a=i(23775),h=i(44359);n({target:"Array",proto:!0},{flatMap:function(t){var e,i=s(this),n=o(i.length);return a(t),(e=h(i,0)).length=r(e,i,i,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}})},81548:(t,e,i)=>{"use strict";var n=i(23889),r=i(70623),s=i(51223),o=i(7933),a=i(1557),h=i(44359);n({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=s(this),i=o(e.length),n=h(e,0);return n.length=r(n,e,e,i,0,void 0===t?1:a(t)),n}})},93606:(t,e,i)=>{"use strict";var n=i(23889),r=i(64902);n({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},9413:(t,e,i)=>{var n=i(23889),r=i(83601);n({target:"Array",stat:!0,forced:!i(92916)((function(t){Array.from(t)}))},{from:r})},41988:(t,e,i)=>{"use strict";var n=i(23889),r=i(93289).includes,s=i(35240);n({target:"Array",proto:!0,forced:!i(12797)("indexOf",{ACCESSORS:!0,1:0})},{includes:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),s("includes")},66957:(t,e,i)=>{"use strict";var n=i(23889),r=i(93289).indexOf,s=i(91649),o=i(12797),a=[].indexOf,h=!!a&&1/[1].indexOf(1,-0)<0,u=s("indexOf"),l=o("indexOf",{ACCESSORS:!0,1:0});n({target:"Array",proto:!0,forced:h||!u||!l},{indexOf:function(t){return h?a.apply(this,arguments)||0:r(this,t,arguments.length>1?arguments[1]:void 0)}})},67081:(t,e,i)=>{i(23889)({target:"Array",stat:!0},{isArray:i(20351)})},41499:(t,e,i)=>{"use strict";var n=i(86939),r=i(35240),s=i(15926),o=i(97030),a=i(7693),h="Array Iterator",u=o.set,l=o.getterFor(h);t.exports=a(Array,"Array",(function(t,e){u(this,{type:h,target:n(t),index:0,kind:e})}),(function(){var t=l(this),e=t.target,i=t.kind,n=t.index++;return!e||n>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==i?{value:n,done:!1}:"values"==i?{value:e[n],done:!1}:{value:[n,e[n]],done:!1}}),"values"),s.Arguments=s.Array,r("keys"),r("values"),r("entries")},74410:(t,e,i)=>{"use strict";var n=i(23889),r=i(11749),s=i(86939),o=i(91649),a=[].join,h=r!=Object,u=o("join",",");n({target:"Array",proto:!0,forced:h||!u},{join:function(t){return a.call(s(this),void 0===t?",":t)}})},55882:(t,e,i)=>{var n=i(23889),r=i(8287);n({target:"Array",proto:!0,forced:r!==[].lastIndexOf},{lastIndexOf:r})},17448:(t,e,i)=>{"use strict";var n=i(23889),r=i(7622).map,s=i(46453),o=i(12797),a=s("map"),h=o("map");n({target:"Array",proto:!0,forced:!a||!h},{map:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}})},87391:(t,e,i)=>{"use strict";var n=i(23889),r=i(38493),s=i(73685);n({target:"Array",stat:!0,forced:r((function(){function t(){}return!(Array.of.call(t)instanceof t)}))},{of:function(){for(var t=0,e=arguments.length,i=new("function"==typeof this?this:Array)(e);e>t;)s(i,t,arguments[t++]);return i.length=e,i}})},29578:(t,e,i)=>{"use strict";var n=i(23889),r=i(22164).right,s=i(91649),o=i(12797),a=s("reduceRight"),h=o("reduce",{1:0});n({target:"Array",proto:!0,forced:!a||!h},{reduceRight:function(t){return r(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},78384:(t,e,i)=>{"use strict";var n=i(23889),r=i(22164).left,s=i(91649),o=i(12797),a=s("reduce"),h=o("reduce",{1:0});n({target:"Array",proto:!0,forced:!a||!h},{reduce:function(t){return r(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},50300:(t,e,i)=>{"use strict";var n=i(23889),r=i(20351),s=[].reverse,o=[1,2];n({target:"Array",proto:!0,forced:String(o)===String(o.reverse())},{reverse:function(){return r(this)&&(this.length=this.length),s.call(this)}})},44316:(t,e,i)=>{"use strict";var n=i(23889),r=i(68580),s=i(20351),o=i(11486),a=i(7933),h=i(86939),u=i(73685),l=i(10548),c=i(46453),d=i(12797),p=c("slice"),f=d("slice",{ACCESSORS:!0,0:0,1:2}),m=l("species"),v=[].slice,g=Math.max;n({target:"Array",proto:!0,forced:!p||!f},{slice:function(t,e){var i,n,l,c=h(this),d=a(c.length),p=o(t,d),f=o(void 0===e?d:e,d);if(s(c)&&("function"!=typeof(i=c.constructor)||i!==Array&&!s(i.prototype)?r(i)&&null===(i=i[m])&&(i=void 0):i=void 0,i===Array||void 0===i))return v.call(c,p,f);for(n=new(void 0===i?Array:i)(g(f-p,0)),l=0;p<f;p++,l++)p in c&&u(n,l,c[p]);return n.length=l,n}})},94093:(t,e,i)=>{"use strict";var n=i(23889),r=i(7622).some,s=i(91649),o=i(12797),a=s("some"),h=o("some");n({target:"Array",proto:!0,forced:!a||!h},{some:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}})},33453:(t,e,i)=>{"use strict";var n=i(23889),r=i(23775),s=i(51223),o=i(38493),a=i(91649),h=[],u=h.sort,l=o((function(){h.sort(void 0)})),c=o((function(){h.sort(null)})),d=a("sort");n({target:"Array",proto:!0,forced:l||!c||!d},{sort:function(t){return void 0===t?u.call(s(this)):u.call(s(this),r(t))}})},57500:(t,e,i)=>{i(16906)("Array")},72006:(t,e,i)=>{"use strict";var n=i(23889),r=i(11486),s=i(1557),o=i(7933),a=i(51223),h=i(44359),u=i(73685),l=i(46453),c=i(12797),d=l("splice"),p=c("splice",{ACCESSORS:!0,0:0,1:2}),f=Math.max,m=Math.min,v=9007199254740991,g="Maximum allowed length exceeded";n({target:"Array",proto:!0,forced:!d||!p},{splice:function(t,e){var i,n,l,c,d,p,y=a(this),_=o(y.length),x=r(t,_),b=arguments.length;if(0===b?i=n=0:1===b?(i=0,n=_-x):(i=b-2,n=m(f(s(e),0),_-x)),_+i-n>v)throw TypeError(g);for(l=h(y,n),c=0;c<n;c++)(d=x+c)in y&&u(l,c,y[d]);if(l.length=n,i<n){for(c=x;c<_-n;c++)p=c+i,(d=c+n)in y?y[p]=y[d]:delete y[p];for(c=_;c>_-n+i;c--)delete y[c-1]}else if(i>n)for(c=_-n;c>x;c--)p=c+i-1,(d=c+n-1)in y?y[p]=y[d]:delete y[p];for(c=0;c<i;c++)y[c+x]=arguments[c+2];return y.length=_-n+i,l}})},55495:(t,e,i)=>{i(35240)("flatMap")},2613:(t,e,i)=>{i(35240)("flat")},54093:(t,e,i)=>{var n=i(23889),r=i(50539);n({global:!0,forced:!i(73409)},{DataView:r.DataView})},7083:(t,e,i)=>{i(23889)({target:"Date",stat:!0},{now:function(){return(new Date).getTime()}})},11904:(t,e,i)=>{var n=i(23889),r=i(87124);n({target:"Date",proto:!0,forced:Date.prototype.toISOString!==r},{toISOString:r})},58008:(t,e,i)=>{"use strict";var n=i(23889),r=i(38493),s=i(51223),o=i(33196);n({target:"Date",proto:!0,forced:r((function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}))},{toJSON:function(t){var e=s(this),i=o(e);return"number"!=typeof i||isFinite(i)?e.toISOString():null}})},76536:(t,e,i)=>{var n=i(17182),r=i(22853),s=i(10548)("toPrimitive"),o=Date.prototype;s in o||n(o,s,r)},36472:(t,e,i)=>{var n=i(18957),r=Date.prototype,s="Invalid Date",o="toString",a=r.toString,h=r.getTime;new Date(NaN)+""!=s&&n(r,o,(function(){var t=h.call(this);return t==t?a.call(this):s}))},34913:(t,e,i)=>{i(23889)({target:"Function",proto:!0},{bind:i(31078)})},46441:(t,e,i)=>{"use strict";var n=i(68580),r=i(64774),s=i(29528),o=i(10548)("hasInstance"),a=Function.prototype;o in a||r.f(a,o,{value:function(t){if("function"!=typeof this||!n(t))return!1;if(!n(this.prototype))return t instanceof this;for(;t=s(t);)if(this.prototype===t)return!0;return!1}})},68071:(t,e,i)=>{var n=i(56617),r=i(64774).f,s=Function.prototype,o=s.toString,a=/^\s*function ([^ (]*)/,h="name";n&&!(h in s)&&r(s,h,{configurable:!0,get:function(){try{return o.call(this).match(a)[1]}catch(t){return""}}})},2506:(t,e,i)=>{i(23889)({global:!0},{globalThis:i(33386)})},37692:(t,e,i)=>{var n=i(23889),r=i(27623),s=i(38493),o=r("JSON","stringify"),a=/[\uD800-\uDFFF]/g,h=/^[\uD800-\uDBFF]$/,u=/^[\uDC00-\uDFFF]$/,l=function(t,e,i){var n=i.charAt(e-1),r=i.charAt(e+1);return h.test(t)&&!u.test(r)||u.test(t)&&!h.test(n)?"\\u"+t.charCodeAt(0).toString(16):t},c=s((function(){return'"\\udf06\\ud834"'!==o("\udf06\ud834")||'"\\udead"'!==o("\udead")}));o&&n({target:"JSON",stat:!0,forced:c},{stringify:function(t,e,i){var n=o.apply(null,arguments);return"string"==typeof n?n.replace(a,l):n}})},91702:(t,e,i)=>{var n=i(33386);i(39893)(n.JSON,"JSON",!0)},65017:(t,e,i)=>{"use strict";var n=i(93574),r=i(5749);t.exports=n("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},37401:(t,e,i)=>{var n=i(23889),r=i(22224),s=Math.acosh,o=Math.log,a=Math.sqrt,h=Math.LN2;n({target:"Math",stat:!0,forced:!s||710!=Math.floor(s(Number.MAX_VALUE))||s(1/0)!=1/0},{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?o(t)+h:r(t-1+a(t-1)*a(t+1))}})},58137:(t,e,i)=>{var n=i(23889),r=Math.asinh,s=Math.log,o=Math.sqrt;n({target:"Math",stat:!0,forced:!(r&&1/r(0)>0)},{asinh:function t(e){return isFinite(e=+e)&&0!=e?e<0?-t(-e):s(e+o(e*e+1)):e}})},14107:(t,e,i)=>{var n=i(23889),r=Math.atanh,s=Math.log;n({target:"Math",stat:!0,forced:!(r&&1/r(-0)<0)},{atanh:function(t){return 0==(t=+t)?t:s((1+t)/(1-t))/2}})},79427:(t,e,i)=>{var n=i(23889),r=i(98514),s=Math.abs,o=Math.pow;n({target:"Math",stat:!0},{cbrt:function(t){return r(t=+t)*o(s(t),1/3)}})},57090:(t,e,i)=>{var n=i(23889),r=Math.floor,s=Math.log,o=Math.LOG2E;n({target:"Math",stat:!0},{clz32:function(t){return(t>>>=0)?31-r(s(t+.5)*o):32}})},66060:(t,e,i)=>{var n=i(23889),r=i(12224),s=Math.cosh,o=Math.abs,a=Math.E;n({target:"Math",stat:!0,forced:!s||s(710)===1/0},{cosh:function(t){var e=r(o(t)-1)+1;return(e+1/(e*a*a))*(a/2)}})},68176:(t,e,i)=>{var n=i(23889),r=i(12224);n({target:"Math",stat:!0,forced:r!=Math.expm1},{expm1:r})},19476:(t,e,i)=>{i(23889)({target:"Math",stat:!0},{fround:i(89492)})},12386:(t,e,i)=>{var n=i(23889),r=Math.hypot,s=Math.abs,o=Math.sqrt;n({target:"Math",stat:!0,forced:!!r&&r(1/0,NaN)!==1/0},{hypot:function(t,e){for(var i,n,r=0,a=0,h=arguments.length,u=0;a<h;)u<(i=s(arguments[a++]))?(r=r*(n=u/i)*n+1,u=i):r+=i>0?(n=i/u)*n:i;return u===1/0?1/0:u*o(r)}})},93113:(t,e,i)=>{var n=i(23889),r=i(38493),s=Math.imul;n({target:"Math",stat:!0,forced:r((function(){return-5!=s(4294967295,5)||2!=s.length}))},{imul:function(t,e){var i=65535,n=+t,r=+e,s=i&n,o=i&r;return 0|s*o+((i&n>>>16)*o+s*(i&r>>>16)<<16>>>0)}})},42376:(t,e,i)=>{var n=i(23889),r=Math.log,s=Math.LOG10E;n({target:"Math",stat:!0},{log10:function(t){return r(t)*s}})},41398:(t,e,i)=>{i(23889)({target:"Math",stat:!0},{log1p:i(22224)})},68162:(t,e,i)=>{var n=i(23889),r=Math.log,s=Math.LN2;n({target:"Math",stat:!0},{log2:function(t){return r(t)/s}})},71070:(t,e,i)=>{i(23889)({target:"Math",stat:!0},{sign:i(98514)})},99476:(t,e,i)=>{var n=i(23889),r=i(38493),s=i(12224),o=Math.abs,a=Math.exp,h=Math.E;n({target:"Math",stat:!0,forced:r((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(t){return o(t=+t)<1?(s(t)-s(-t))/2:(a(t-1)-a(-t-1))*(h/2)}})},3186:(t,e,i)=>{var n=i(23889),r=i(12224),s=Math.exp;n({target:"Math",stat:!0},{tanh:function(t){var e=r(t=+t),i=r(-t);return e==1/0?1:i==1/0?-1:(e-i)/(s(t)+s(-t))}})},4407:(t,e,i)=>{i(39893)(Math,"Math",!0)},39053:(t,e,i)=>{var n=i(23889),r=Math.ceil,s=Math.floor;n({target:"Math",stat:!0},{trunc:function(t){return(t>0?s:r)(t)}})},76515:(t,e,i)=>{"use strict";var n=i(56617),r=i(33386),s=i(60995),o=i(18957),a=i(54585),h=i(2178),u=i(27541),l=i(33196),c=i(38493),d=i(37602),p=i(74562).f,f=i(91211).f,m=i(64774).f,v=i(66672).trim,g="Number",y=r.Number,_=y.prototype,x=h(d(_))==g,b=function(t){var e,i,n,r,s,o,a,h,u=l(t,!1);if("string"==typeof u&&u.length>2)if(43===(e=(u=v(u)).charCodeAt(0))||45===e){if(88===(i=u.charCodeAt(2))||120===i)return NaN}else if(48===e){switch(u.charCodeAt(1)){case 66:case 98:n=2,r=49;break;case 79:case 111:n=8,r=55;break;default:return+u}for(o=(s=u.slice(2)).length,a=0;a<o;a++)if((h=s.charCodeAt(a))<48||h>r)return NaN;return parseInt(s,n)}return+u};if(s(g,!y(" 0o1")||!y("0b1")||y("+0x1"))){for(var w,T=function(t){var e=arguments.length<1?0:t,i=this;return i instanceof T&&(x?c((function(){_.valueOf.call(i)})):h(i)!=g)?u(new y(b(e)),i,T):b(e)},M=n?p(y):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),S=0;M.length>S;S++)a(y,w=M[S])&&!a(T,w)&&m(T,w,f(y,w));T.prototype=_,_.constructor=T,o(r,g,T)}},93189:(t,e,i)=>{i(23889)({target:"Number",stat:!0},{EPSILON:Math.pow(2,-52)})},99042:(t,e,i)=>{i(23889)({target:"Number",stat:!0},{isFinite:i(48682)})},31116:(t,e,i)=>{i(23889)({target:"Number",stat:!0},{isInteger:i(33054)})},87294:(t,e,i)=>{i(23889)({target:"Number",stat:!0},{isNaN:function(t){return t!=t}})},2877:(t,e,i)=>{var n=i(23889),r=i(33054),s=Math.abs;n({target:"Number",stat:!0},{isSafeInteger:function(t){return r(t)&&s(t)<=9007199254740991}})},60242:(t,e,i)=>{i(23889)({target:"Number",stat:!0},{MAX_SAFE_INTEGER:9007199254740991})},75737:(t,e,i)=>{i(23889)({target:"Number",stat:!0},{MIN_SAFE_INTEGER:-9007199254740991})},55515:(t,e,i)=>{var n=i(23889),r=i(2463);n({target:"Number",stat:!0,forced:Number.parseFloat!=r},{parseFloat:r})},34825:(t,e,i)=>{var n=i(23889),r=i(62229);n({target:"Number",stat:!0,forced:Number.parseInt!=r},{parseInt:r})},67401:(t,e,i)=>{"use strict";var n=i(23889),r=i(1557),s=i(85550),o=i(71804),a=i(38493),h=1..toFixed,u=Math.floor,l=function(t,e,i){return 0===e?i:e%2==1?l(t,e-1,i*t):l(t*t,e/2,i)};n({target:"Number",proto:!0,forced:h&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!a((function(){h.call({})}))},{toFixed:function(t){var e,i,n,a,h=s(this),c=r(t),d=[0,0,0,0,0,0],p="",f="0",m=function(t,e){for(var i=-1,n=e;++i<6;)n+=t*d[i],d[i]=n%1e7,n=u(n/1e7)},v=function(t){for(var e=6,i=0;--e>=0;)i+=d[e],d[e]=u(i/t),i=i%t*1e7},g=function(){for(var t=6,e="";--t>=0;)if(""!==e||0===t||0!==d[t]){var i=String(d[t]);e=""===e?i:e+o.call("0",7-i.length)+i}return e};if(c<0||c>20)throw RangeError("Incorrect fraction digits");if(h!=h)return"NaN";if(h<=-1e21||h>=1e21)return String(h);if(h<0&&(p="-",h=-h),h>1e-21)if(i=(e=function(t){for(var e=0,i=t;i>=4096;)e+=12,i/=4096;for(;i>=2;)e+=1,i/=2;return e}(h*l(2,69,1))-69)<0?h*l(2,-e,1):h/l(2,e,1),i*=4503599627370496,(e=52-e)>0){for(m(0,i),n=c;n>=7;)m(1e7,0),n-=7;for(m(l(10,n,1),0),n=e-1;n>=23;)v(1<<23),n-=23;v(1<<n),m(1,1),v(2),f=g()}else m(0,i),m(1<<-e,0),f=g()+o.call("0",c);return f=c>0?p+((a=f.length)<=c?"0."+o.call("0",c-a)+f:f.slice(0,a-c)+"."+f.slice(a-c)):p+f}})},3398:(t,e,i)=>{"use strict";var n=i(23889),r=i(38493),s=i(85550),o=1..toPrecision;n({target:"Number",proto:!0,forced:r((function(){return"1"!==o.call(1,void 0)}))||!r((function(){o.call({})}))},{toPrecision:function(t){return void 0===t?o.call(s(this)):o.call(s(this),t)}})},37007:(t,e,i)=>{var n=i(23889),r=i(98466);n({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},33639:(t,e,i)=>{i(23889)({target:"Object",stat:!0,sham:!i(56617)},{create:i(37602)})},72814:(t,e,i)=>{"use strict";var n=i(23889),r=i(56617),s=i(36061),o=i(51223),a=i(23775),h=i(64774);r&&n({target:"Object",proto:!0,forced:s},{__defineGetter__:function(t,e){h.f(o(this),t,{get:a(e),enumerable:!0,configurable:!0})}})},66412:(t,e,i)=>{var n=i(23889),r=i(56617);n({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperties:i(23702)})},34895:(t,e,i)=>{var n=i(23889),r=i(56617);n({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperty:i(64774).f})},37621:(t,e,i)=>{"use strict";var n=i(23889),r=i(56617),s=i(36061),o=i(51223),a=i(23775),h=i(64774);r&&n({target:"Object",proto:!0,forced:s},{__defineSetter__:function(t,e){h.f(o(this),t,{set:a(e),enumerable:!0,configurable:!0})}})},44157:(t,e,i)=>{var n=i(23889),r=i(38509).entries;n({target:"Object",stat:!0},{entries:function(t){return r(t)}})},38300:(t,e,i)=>{var n=i(23889),r=i(37235),s=i(38493),o=i(68580),a=i(8080).onFreeze,h=Object.freeze;n({target:"Object",stat:!0,forced:s((function(){h(1)})),sham:!r},{freeze:function(t){return h&&o(t)?h(a(t)):t}})},58503:(t,e,i)=>{var n=i(23889),r=i(76808),s=i(73685);n({target:"Object",stat:!0},{fromEntries:function(t){var e={};return r(t,(function(t,i){s(e,t,i)}),void 0,!0),e}})},59500:(t,e,i)=>{var n=i(23889),r=i(38493),s=i(86939),o=i(91211).f,a=i(56617),h=r((function(){o(1)}));n({target:"Object",stat:!0,forced:!a||h,sham:!a},{getOwnPropertyDescriptor:function(t,e){return o(s(t),e)}})},20791:(t,e,i)=>{var n=i(23889),r=i(56617),s=i(54327),o=i(86939),a=i(91211),h=i(73685);n({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(t){for(var e,i,n=o(t),r=a.f,u=s(n),l={},c=0;u.length>c;)void 0!==(i=r(n,e=u[c++]))&&h(l,e,i);return l}})},22473:(t,e,i)=>{var n=i(23889),r=i(38493),s=i(74720).f;n({target:"Object",stat:!0,forced:r((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:s})},79062:(t,e,i)=>{var n=i(23889),r=i(38493),s=i(51223),o=i(29528),a=i(5331);n({target:"Object",stat:!0,forced:r((function(){o(1)})),sham:!a},{getPrototypeOf:function(t){return o(s(t))}})},76973:(t,e,i)=>{var n=i(23889),r=i(38493),s=i(68580),o=Object.isExtensible;n({target:"Object",stat:!0,forced:r((function(){o(1)}))},{isExtensible:function(t){return!!s(t)&&(!o||o(t))}})},65679:(t,e,i)=>{var n=i(23889),r=i(38493),s=i(68580),o=Object.isFrozen;n({target:"Object",stat:!0,forced:r((function(){o(1)}))},{isFrozen:function(t){return!s(t)||!!o&&o(t)}})},88263:(t,e,i)=>{var n=i(23889),r=i(38493),s=i(68580),o=Object.isSealed;n({target:"Object",stat:!0,forced:r((function(){o(1)}))},{isSealed:function(t){return!s(t)||!!o&&o(t)}})},23946:(t,e,i)=>{i(23889)({target:"Object",stat:!0},{is:i(12195)})},57425:(t,e,i)=>{var n=i(23889),r=i(51223),s=i(64855);n({target:"Object",stat:!0,forced:i(38493)((function(){s(1)}))},{keys:function(t){return s(r(t))}})},95773:(t,e,i)=>{"use strict";var n=i(23889),r=i(56617),s=i(36061),o=i(51223),a=i(33196),h=i(29528),u=i(91211).f;r&&n({target:"Object",proto:!0,forced:s},{__lookupGetter__:function(t){var e,i=o(this),n=a(t,!0);do{if(e=u(i,n))return e.get}while(i=h(i))}})},26485:(t,e,i)=>{"use strict";var n=i(23889),r=i(56617),s=i(36061),o=i(51223),a=i(33196),h=i(29528),u=i(91211).f;r&&n({target:"Object",proto:!0,forced:s},{__lookupSetter__:function(t){var e,i=o(this),n=a(t,!0);do{if(e=u(i,n))return e.set}while(i=h(i))}})},25699:(t,e,i)=>{var n=i(23889),r=i(68580),s=i(8080).onFreeze,o=i(37235),a=i(38493),h=Object.preventExtensions;n({target:"Object",stat:!0,forced:a((function(){h(1)})),sham:!o},{preventExtensions:function(t){return h&&r(t)?h(s(t)):t}})},81736:(t,e,i)=>{var n=i(23889),r=i(68580),s=i(8080).onFreeze,o=i(37235),a=i(38493),h=Object.seal;n({target:"Object",stat:!0,forced:a((function(){h(1)})),sham:!o},{seal:function(t){return h&&r(t)?h(s(t)):t}})},10070:(t,e,i)=>{i(23889)({target:"Object",stat:!0},{setPrototypeOf:i(15456)})},3930:(t,e,i)=>{var n=i(29100),r=i(18957),s=i(27148);n||r(Object.prototype,"toString",s,{unsafe:!0})},50031:(t,e,i)=>{var n=i(23889),r=i(38509).values;n({target:"Object",stat:!0},{values:function(t){return r(t)}})},84317:(t,e,i)=>{var n=i(23889),r=i(2463);n({global:!0,forced:parseFloat!=r},{parseFloat:r})},36672:(t,e,i)=>{var n=i(23889),r=i(62229);n({global:!0,forced:parseInt!=r},{parseInt:r})},8378:(t,e,i)=>{"use strict";var n=i(23889),r=i(23775),s=i(8168),o=i(70595),a=i(76808);n({target:"Promise",stat:!0},{allSettled:function(t){var e=this,i=s.f(e),n=i.resolve,h=i.reject,u=o((function(){var i=r(e.resolve),s=[],o=0,h=1;a(t,(function(t){var r=o++,a=!1;s.push(void 0),h++,i.call(e,t).then((function(t){a||(a=!0,s[r]={status:"fulfilled",value:t},--h||n(s))}),(function(t){a||(a=!0,s[r]={status:"rejected",reason:t},--h||n(s))}))})),--h||n(s)}));return u.error&&h(u.value),i.promise}})},80149:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(25306),o=i(38493),a=i(27623),h=i(7350),u=i(39230),l=i(18957);n({target:"Promise",proto:!0,real:!0,forced:!!s&&o((function(){s.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(t){var e=h(this,a("Promise")),i="function"==typeof t;return this.then(i?function(i){return u(e,t()).then((function(){return i}))}:t,i?function(i){return u(e,t()).then((function(){throw i}))}:t)}}),r||"function"!=typeof s||s.prototype.finally||l(s.prototype,"finally",a("Promise").prototype.finally)},91772:(t,e,i)=>{"use strict";var n,r,s,o,a=i(23889),h=i(51104),u=i(33386),l=i(27623),c=i(25306),d=i(18957),p=i(11432),f=i(39893),m=i(16906),v=i(68580),g=i(23775),y=i(31057),_=i(2178),x=i(82133),b=i(76808),w=i(92916),T=i(7350),M=i(39331).set,S=i(65516),E=i(39230),L=i(98684),A=i(8168),D=i(70595),P=i(97030),C=i(60995),O=i(10548),k=i(80823),R=O("species"),I="Promise",Y=P.get,F=P.set,N=P.getterFor(I),B=c,U=u.TypeError,j=u.document,H=u.process,z=l("fetch"),W=A.f,G=W,V="process"==_(H),X=!!(j&&j.createEvent&&u.dispatchEvent),q="unhandledrejection",J=C(I,(function(){if(!(x(B)!==String(B))){if(66===k)return!0;if(!V&&"function"!=typeof PromiseRejectionEvent)return!0}if(h&&!B.prototype.finally)return!0;if(k>=51&&/native code/.test(B))return!1;var t=B.resolve(1),e=function(t){t((function(){}),(function(){}))};return(t.constructor={})[R]=e,!(t.then((function(){}))instanceof e)})),Z=J||!w((function(t){B.all(t).catch((function(){}))})),K=function(t){var e;return!(!v(t)||"function"!=typeof(e=t.then))&&e},Q=function(t,e,i){if(!e.notified){e.notified=!0;var n=e.reactions;S((function(){for(var r=e.value,s=1==e.state,o=0;n.length>o;){var a,h,u,l=n[o++],c=s?l.ok:l.fail,d=l.resolve,p=l.reject,f=l.domain;try{c?(s||(2===e.rejection&&it(t,e),e.rejection=1),!0===c?a=r:(f&&f.enter(),a=c(r),f&&(f.exit(),u=!0)),a===l.promise?p(U("Promise-chain cycle")):(h=K(a))?h.call(a,d,p):d(a)):p(r)}catch(t){f&&!u&&f.exit(),p(t)}}e.reactions=[],e.notified=!1,i&&!e.rejection&&tt(t,e)}))}},$=function(t,e,i){var n,r;X?((n=j.createEvent("Event")).promise=e,n.reason=i,n.initEvent(t,!1,!0),u.dispatchEvent(n)):n={promise:e,reason:i},(r=u["on"+t])?r(n):t===q&&L("Unhandled promise rejection",i)},tt=function(t,e){M.call(u,(function(){var i,n=e.value;if(et(e)&&(i=D((function(){V?H.emit("unhandledRejection",n,t):$(q,t,n)})),e.rejection=V||et(e)?2:1,i.error))throw i.value}))},et=function(t){return 1!==t.rejection&&!t.parent},it=function(t,e){M.call(u,(function(){V?H.emit("rejectionHandled",t):$("rejectionhandled",t,e.value)}))},nt=function(t,e,i,n){return function(r){t(e,i,r,n)}},rt=function(t,e,i,n){e.done||(e.done=!0,n&&(e=n),e.value=i,e.state=2,Q(t,e,!0))},st=function(t,e,i,n){if(!e.done){e.done=!0,n&&(e=n);try{if(t===i)throw U("Promise can't be resolved itself");var r=K(i);r?S((function(){var n={done:!1};try{r.call(i,nt(st,t,n,e),nt(rt,t,n,e))}catch(i){rt(t,n,i,e)}})):(e.value=i,e.state=1,Q(t,e,!1))}catch(i){rt(t,{done:!1},i,e)}}};J&&(B=function(t){y(this,B,I),g(t),n.call(this);var e=Y(this);try{t(nt(st,this,e),nt(rt,this,e))}catch(t){rt(this,e,t)}},(n=function(t){F(this,{type:I,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=p(B.prototype,{then:function(t,e){var i=N(this),n=W(T(this,B));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=V?H.domain:void 0,i.parent=!0,i.reactions.push(n),0!=i.state&&Q(this,i,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),r=function(){var t=new n,e=Y(t);this.promise=t,this.resolve=nt(st,t,e),this.reject=nt(rt,t,e)},A.f=W=function(t){return t===B||t===s?new r(t):G(t)},h||"function"!=typeof c||(o=c.prototype.then,d(c.prototype,"then",(function(t,e){var i=this;return new B((function(t,e){o.call(i,t,e)})).then(t,e)}),{unsafe:!0}),"function"==typeof z&&a({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return E(B,z.apply(u,arguments))}}))),a({global:!0,wrap:!0,forced:J},{Promise:B}),f(B,I,!1,!0),m(I),s=l(I),a({target:I,stat:!0,forced:J},{reject:function(t){var e=W(this);return e.reject.call(void 0,t),e.promise}}),a({target:I,stat:!0,forced:h||J},{resolve:function(t){return E(h&&this===s?B:this,t)}}),a({target:I,stat:!0,forced:Z},{all:function(t){var e=this,i=W(e),n=i.resolve,r=i.reject,s=D((function(){var i=g(e.resolve),s=[],o=0,a=1;b(t,(function(t){var h=o++,u=!1;s.push(void 0),a++,i.call(e,t).then((function(t){u||(u=!0,s[h]=t,--a||n(s))}),r)})),--a||n(s)}));return s.error&&r(s.value),i.promise},race:function(t){var e=this,i=W(e),n=i.reject,r=D((function(){var r=g(e.resolve);b(t,(function(t){r.call(e,t).then(i.resolve,n)}))}));return r.error&&n(r.value),i.promise}})},83771:(t,e,i)=>{var n=i(23889),r=i(27623),s=i(23775),o=i(13980),a=i(38493),h=r("Reflect","apply"),u=Function.apply;n({target:"Reflect",stat:!0,forced:!a((function(){h((function(){}))}))},{apply:function(t,e,i){return s(t),o(i),h?h(t,e,i):u.call(t,e,i)}})},1789:(t,e,i)=>{var n=i(23889),r=i(27623),s=i(23775),o=i(13980),a=i(68580),h=i(37602),u=i(31078),l=i(38493),c=r("Reflect","construct"),d=l((function(){function t(){}return!(c((function(){}),[],t)instanceof t)})),p=!l((function(){c((function(){}))})),f=d||p;n({target:"Reflect",stat:!0,forced:f,sham:f},{construct:function(t,e){s(t),o(e);var i=arguments.length<3?t:s(arguments[2]);if(p&&!d)return c(t,e,i);if(t==i){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var n=[null];return n.push.apply(n,e),new(u.apply(t,n))}var r=i.prototype,l=h(a(r)?r:Object.prototype),f=Function.apply.call(t,l,e);return a(f)?f:l}})},27942:(t,e,i)=>{var n=i(23889),r=i(56617),s=i(13980),o=i(33196),a=i(64774);n({target:"Reflect",stat:!0,forced:i(38493)((function(){Reflect.defineProperty(a.f({},1,{value:1}),1,{value:2})})),sham:!r},{defineProperty:function(t,e,i){s(t);var n=o(e,!0);s(i);try{return a.f(t,n,i),!0}catch(t){return!1}}})},40080:(t,e,i)=>{var n=i(23889),r=i(13980),s=i(91211).f;n({target:"Reflect",stat:!0},{deleteProperty:function(t,e){var i=s(r(t),e);return!(i&&!i.configurable)&&delete t[e]}})},94022:(t,e,i)=>{var n=i(23889),r=i(56617),s=i(13980),o=i(91211);n({target:"Reflect",stat:!0,sham:!r},{getOwnPropertyDescriptor:function(t,e){return o.f(s(t),e)}})},53043:(t,e,i)=>{var n=i(23889),r=i(13980),s=i(29528);n({target:"Reflect",stat:!0,sham:!i(5331)},{getPrototypeOf:function(t){return s(r(t))}})},58347:(t,e,i)=>{var n=i(23889),r=i(68580),s=i(13980),o=i(54585),a=i(91211),h=i(29528);n({target:"Reflect",stat:!0},{get:function t(e,i){var n,u,l=arguments.length<3?e:arguments[2];return s(e)===l?e[i]:(n=a.f(e,i))?o(n,"value")?n.value:void 0===n.get?void 0:n.get.call(l):r(u=h(e))?t(u,i,l):void 0}})},41841:(t,e,i)=>{i(23889)({target:"Reflect",stat:!0},{has:function(t,e){return e in t}})},60142:(t,e,i)=>{var n=i(23889),r=i(13980),s=Object.isExtensible;n({target:"Reflect",stat:!0},{isExtensible:function(t){return r(t),!s||s(t)}})},85529:(t,e,i)=>{i(23889)({target:"Reflect",stat:!0},{ownKeys:i(54327)})},41454:(t,e,i)=>{var n=i(23889),r=i(27623),s=i(13980);n({target:"Reflect",stat:!0,sham:!i(37235)},{preventExtensions:function(t){s(t);try{var e=r("Object","preventExtensions");return e&&e(t),!0}catch(t){return!1}}})},8014:(t,e,i)=>{var n=i(23889),r=i(13980),s=i(66020),o=i(15456);o&&n({target:"Reflect",stat:!0},{setPrototypeOf:function(t,e){r(t),s(e);try{return o(t,e),!0}catch(t){return!1}}})},3994:(t,e,i)=>{var n=i(23889),r=i(13980),s=i(68580),o=i(54585),a=i(38493),h=i(64774),u=i(91211),l=i(29528),c=i(36846);n({target:"Reflect",stat:!0,forced:a((function(){var t=h.f({},"a",{configurable:!0});return!1!==Reflect.set(l(t),"a",1,t)}))},{set:function t(e,i,n){var a,d,p=arguments.length<4?e:arguments[3],f=u.f(r(e),i);if(!f){if(s(d=l(e)))return t(d,i,n,p);f=c(0)}if(o(f,"value")){if(!1===f.writable||!s(p))return!1;if(a=u.f(p,i)){if(a.get||a.set||!1===a.writable)return!1;a.value=n,h.f(p,i,a)}else h.f(p,i,c(0,n));return!0}return void 0!==f.set&&(f.set.call(p,n),!0)}})},83813:(t,e,i)=>{var n=i(56617),r=i(33386),s=i(60995),o=i(27541),a=i(64774).f,h=i(74562).f,u=i(39376),l=i(21068),c=i(97262),d=i(18957),p=i(38493),f=i(97030).set,m=i(16906),v=i(10548)("match"),g=r.RegExp,y=g.prototype,_=/a/g,x=/a/g,b=new g(_)!==_,w=c.UNSUPPORTED_Y;if(n&&s("RegExp",!b||w||p((function(){return x[v]=!1,g(_)!=_||g(x)==x||"/a/i"!=g(_,"i")})))){for(var T=function(t,e){var i,n=this instanceof T,r=u(t),s=void 0===e;if(!n&&r&&t.constructor===T&&s)return t;b?r&&!s&&(t=t.source):t instanceof T&&(s&&(e=l.call(t)),t=t.source),w&&(i=!!e&&e.indexOf("y")>-1)&&(e=e.replace(/y/g,""));var a=o(b?new g(t,e):g(t,e),n?this:y,T);return w&&i&&f(a,{sticky:i}),a},M=function(t){t in T||a(T,t,{configurable:!0,get:function(){return g[t]},set:function(e){g[t]=e}})},S=h(g),E=0;S.length>E;)M(S[E++]);y.constructor=T,T.prototype=y,d(r,"RegExp",T)}m("RegExp")},99058:(t,e,i)=>{"use strict";var n=i(23889),r=i(83815);n({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},21413:(t,e,i)=>{var n=i(56617),r=i(64774),s=i(21068),o=i(97262).UNSUPPORTED_Y;n&&("g"!=/./g.flags||o)&&r.f(RegExp.prototype,"flags",{configurable:!0,get:s})},31113:(t,e,i)=>{var n=i(56617),r=i(97262).UNSUPPORTED_Y,s=i(64774).f,o=i(97030).get,a=RegExp.prototype;n&&r&&s(RegExp.prototype,"sticky",{configurable:!0,get:function(){if(this!==a){if(this instanceof RegExp)return!!o(this).sticky;throw TypeError("Incompatible receiver, RegExp required")}}})},78526:(t,e,i)=>{"use strict";i(99058);var n,r,s=i(23889),o=i(68580),a=(n=!1,(r=/[ac]/).exec=function(){return n=!0,/./.exec.apply(this,arguments)},!0===r.test("abc")&&n),h=/./.test;s({target:"RegExp",proto:!0,forced:!a},{test:function(t){if("function"!=typeof this.exec)return h.call(this,t);var e=this.exec(t);if(null!==e&&!o(e))throw new Error("RegExp exec method returned something other than an Object or null");return!!e}})},80181:(t,e,i)=>{"use strict";var n=i(18957),r=i(13980),s=i(38493),o=i(21068),a="toString",h=RegExp.prototype,u=h.toString,l=s((function(){return"/a/b"!=u.call({source:"a",flags:"b"})})),c=u.name!=a;(l||c)&&n(RegExp.prototype,a,(function(){var t=r(this),e=String(t.source),i=t.flags;return"/"+e+"/"+String(void 0===i&&t instanceof RegExp&&!("flags"in h)?o.call(t):i)}),{unsafe:!0})},31417:(t,e,i)=>{"use strict";var n=i(93574),r=i(5749);t.exports=n("Set",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},32975:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("anchor")},{anchor:function(t){return r(this,"a","name",t)}})},4184:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("big")},{big:function(){return r(this,"big","","")}})},9613:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("blink")},{blink:function(){return r(this,"blink","","")}})},99334:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("bold")},{bold:function(){return r(this,"b","","")}})},19569:(t,e,i)=>{"use strict";var n=i(23889),r=i(17933).codeAt;n({target:"String",proto:!0},{codePointAt:function(t){return r(this,t)}})},23372:(t,e,i)=>{"use strict";var n,r=i(23889),s=i(91211).f,o=i(7933),a=i(89109),h=i(86608),u=i(43728),l=i(51104),c="".endsWith,d=Math.min,p=u("endsWith");r({target:"String",proto:!0,forced:!!(l||p||(n=s(String.prototype,"endsWith"),!n||n.writable))&&!p},{endsWith:function(t){var e=String(h(this));a(t);var i=arguments.length>1?arguments[1]:void 0,n=o(e.length),r=void 0===i?n:d(o(i),n),s=String(t);return c?c.call(e,s,r):e.slice(r-s.length,r)===s}})},72046:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("fixed")},{fixed:function(){return r(this,"tt","","")}})},84531:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("fontcolor")},{fontcolor:function(t){return r(this,"font","color",t)}})},3573:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("fontsize")},{fontsize:function(t){return r(this,"font","size",t)}})},18670:(t,e,i)=>{var n=i(23889),r=i(11486),s=String.fromCharCode,o=String.fromCodePoint;n({target:"String",stat:!0,forced:!!o&&1!=o.length},{fromCodePoint:function(t){for(var e,i=[],n=arguments.length,o=0;n>o;){if(e=+arguments[o++],r(e,1114111)!==e)throw RangeError(e+" is not a valid code point");i.push(e<65536?s(e):s(55296+((e-=65536)>>10),e%1024+56320))}return i.join("")}})},75560:(t,e,i)=>{"use strict";var n=i(23889),r=i(89109),s=i(86608);n({target:"String",proto:!0,forced:!i(43728)("includes")},{includes:function(t){return!!~String(s(this)).indexOf(r(t),arguments.length>1?arguments[1]:void 0)}})},26463:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("italics")},{italics:function(){return r(this,"i","","")}})},770:(t,e,i)=>{"use strict";var n=i(17933).charAt,r=i(97030),s=i(7693),o="String Iterator",a=r.set,h=r.getterFor(o);s(String,"String",(function(t){a(this,{type:o,string:String(t),index:0})}),(function(){var t,e=h(this),i=e.string,r=e.index;return r>=i.length?{value:void 0,done:!0}:(t=n(i,r),e.index+=t.length,{value:t,done:!1})}))},19584:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("link")},{link:function(t){return r(this,"a","href",t)}})},28828:(t,e,i)=>{"use strict";var n=i(23889),r=i(2395),s=i(86608),o=i(7933),a=i(23775),h=i(13980),u=i(2178),l=i(39376),c=i(21068),d=i(17182),p=i(38493),f=i(10548),m=i(7350),v=i(64334),g=i(97030),y=i(51104),_=f("matchAll"),x="RegExp String",b="RegExp String Iterator",w=g.set,T=g.getterFor(b),M=RegExp.prototype,S=M.exec,E="".matchAll,L=!!E&&!p((function(){"a".matchAll(/./)})),A=r((function(t,e,i,n){w(this,{type:b,regexp:t,string:e,global:i,unicode:n,done:!1})}),x,(function(){var t=T(this);if(t.done)return{value:void 0,done:!0};var e=t.regexp,i=t.string,n=function(t,e){var i,n=t.exec;if("function"==typeof n){if("object"!=typeof(i=n.call(t,e)))throw TypeError("Incorrect exec result");return i}return S.call(t,e)}(e,i);return null===n?{value:void 0,done:t.done=!0}:t.global?(""==String(n[0])&&(e.lastIndex=v(i,o(e.lastIndex),t.unicode)),{value:n,done:!1}):(t.done=!0,{value:n,done:!1})})),D=function(t){var e,i,n,r,s,a,u=h(this),l=String(t);return e=m(u,RegExp),void 0===(i=u.flags)&&u instanceof RegExp&&!("flags"in M)&&(i=c.call(u)),n=void 0===i?"":String(i),r=new e(e===RegExp?u.source:u,n),s=!!~n.indexOf("g"),a=!!~n.indexOf("u"),r.lastIndex=o(u.lastIndex),new A(r,l,s,a)};n({target:"String",proto:!0,forced:L},{matchAll:function(t){var e,i,n,r=s(this);if(null!=t){if(l(t)&&!~String(s("flags"in M?t.flags:c.call(t))).indexOf("g"))throw TypeError("`.matchAll` does not allow non-global regexes");if(L)return E.apply(r,arguments);if(void 0===(i=t[_])&&y&&"RegExp"==u(t)&&(i=D),null!=i)return a(i).call(t,r)}else if(L)return E.apply(r,arguments);return e=String(r),n=new RegExp(t,"g"),y?D.call(n,e):n[_](e)}}),y||_ in M||d(M,_,D)},48075:(t,e,i)=>{"use strict";var n=i(57937),r=i(13980),s=i(7933),o=i(86608),a=i(64334),h=i(30584);n("match",1,(function(t,e,i){return[function(e){var i=o(this),n=null==e?void 0:e[t];return void 0!==n?n.call(e,i):new RegExp(e)[t](String(i))},function(t){var n=i(e,t,this);if(n.done)return n.value;var o=r(t),u=String(this);if(!o.global)return h(o,u);var l=o.unicode;o.lastIndex=0;for(var c,d=[],p=0;null!==(c=h(o,u));){var f=String(c[0]);d[p]=f,""===f&&(o.lastIndex=a(u,s(o.lastIndex),l)),p++}return 0===p?null:d}]}))},45539:(t,e,i)=>{"use strict";var n=i(23889),r=i(76940).end;n({target:"String",proto:!0,forced:i(60285)},{padEnd:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}})},97027:(t,e,i)=>{"use strict";var n=i(23889),r=i(76940).start;n({target:"String",proto:!0,forced:i(60285)},{padStart:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}})},40989:(t,e,i)=>{var n=i(23889),r=i(86939),s=i(7933);n({target:"String",stat:!0},{raw:function(t){for(var e=r(t.raw),i=s(e.length),n=arguments.length,o=[],a=0;i>a;)o.push(String(e[a++])),a<n&&o.push(String(arguments[a]));return o.join("")}})},12778:(t,e,i)=>{i(23889)({target:"String",proto:!0},{repeat:i(71804)})},4350:(t,e,i)=>{"use strict";var n=i(57937),r=i(13980),s=i(51223),o=i(7933),a=i(1557),h=i(86608),u=i(64334),l=i(30584),c=Math.max,d=Math.min,p=Math.floor,f=/\$([$&'`]|\d\d?|<[^>]*>)/g,m=/\$([$&'`]|\d\d?)/g;n("replace",2,(function(t,e,i,n){var v=n.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,g=n.REPLACE_KEEPS_$0,y=v?"$":"$0";return[function(i,n){var r=h(this),s=null==i?void 0:i[t];return void 0!==s?s.call(i,r,n):e.call(String(r),i,n)},function(t,n){if(!v&&g||"string"==typeof n&&-1===n.indexOf(y)){var s=i(e,t,this,n);if(s.done)return s.value}var h=r(t),p=String(this),f="function"==typeof n;f||(n=String(n));var m=h.global;if(m){var x=h.unicode;h.lastIndex=0}for(var b=[];;){var w=l(h,p);if(null===w)break;if(b.push(w),!m)break;""===String(w[0])&&(h.lastIndex=u(p,o(h.lastIndex),x))}for(var T,M="",S=0,E=0;E<b.length;E++){w=b[E];for(var L=String(w[0]),A=c(d(a(w.index),p.length),0),D=[],P=1;P<w.length;P++)D.push(void 0===(T=w[P])?T:String(T));var C=w.groups;if(f){var O=[L].concat(D,A,p);void 0!==C&&O.push(C);var k=String(n.apply(void 0,O))}else k=_(L,p,A,D,C,n);A>=S&&(M+=p.slice(S,A)+k,S=A+L.length)}return M+p.slice(S)}];function _(t,i,n,r,o,a){var h=n+t.length,u=r.length,l=m;return void 0!==o&&(o=s(o),l=f),e.call(a,l,(function(e,s){var a;switch(s.charAt(0)){case"$":return"$";case"&":return t;case"`":return i.slice(0,n);case"'":return i.slice(h);case"<":a=o[s.slice(1,-1)];break;default:var l=+s;if(0===l)return e;if(l>u){var c=p(l/10);return 0===c?e:c<=u?void 0===r[c-1]?s.charAt(1):r[c-1]+s.charAt(1):e}a=r[l-1]}return void 0===a?"":a}))}}))},12755:(t,e,i)=>{"use strict";var n=i(57937),r=i(13980),s=i(86608),o=i(12195),a=i(30584);n("search",1,(function(t,e,i){return[function(e){var i=s(this),n=null==e?void 0:e[t];return void 0!==n?n.call(e,i):new RegExp(e)[t](String(i))},function(t){var n=i(e,t,this);if(n.done)return n.value;var s=r(t),h=String(this),u=s.lastIndex;o(u,0)||(s.lastIndex=0);var l=a(s,h);return o(s.lastIndex,u)||(s.lastIndex=u),null===l?-1:l.index}]}))},95917:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("small")},{small:function(){return r(this,"small","","")}})},168:(t,e,i)=>{"use strict";var n=i(57937),r=i(39376),s=i(13980),o=i(86608),a=i(7350),h=i(64334),u=i(7933),l=i(30584),c=i(83815),d=i(38493),p=[].push,f=Math.min,m=4294967295,v=!d((function(){return!RegExp(m,"y")}));n("split",2,(function(t,e,i){var n;return n="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,i){var n=String(o(this)),s=void 0===i?m:i>>>0;if(0===s)return[];if(void 0===t)return[n];if(!r(t))return e.call(n,t,s);for(var a,h,u,l=[],d=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),f=0,v=new RegExp(t.source,d+"g");(a=c.call(v,n))&&!((h=v.lastIndex)>f&&(l.push(n.slice(f,a.index)),a.length>1&&a.index<n.length&&p.apply(l,a.slice(1)),u=a[0].length,f=h,l.length>=s));)v.lastIndex===a.index&&v.lastIndex++;return f===n.length?!u&&v.test("")||l.push(""):l.push(n.slice(f)),l.length>s?l.slice(0,s):l}:"0".split(void 0,0).length?function(t,i){return void 0===t&&0===i?[]:e.call(this,t,i)}:e,[function(e,i){var r=o(this),s=null==e?void 0:e[t];return void 0!==s?s.call(e,r,i):n.call(String(r),e,i)},function(t,r){var o=i(n,t,this,r,n!==e);if(o.done)return o.value;var c=s(t),d=String(this),p=a(c,RegExp),g=c.unicode,y=(c.ignoreCase?"i":"")+(c.multiline?"m":"")+(c.unicode?"u":"")+(v?"y":"g"),_=new p(v?c:"^(?:"+c.source+")",y),x=void 0===r?m:r>>>0;if(0===x)return[];if(0===d.length)return null===l(_,d)?[d]:[];for(var b=0,w=0,T=[];w<d.length;){_.lastIndex=v?w:0;var M,S=l(_,v?d:d.slice(w));if(null===S||(M=f(u(_.lastIndex+(v?0:w)),d.length))===b)w=h(d,w,g);else{if(T.push(d.slice(b,w)),T.length===x)return T;for(var E=1;E<=S.length-1;E++)if(T.push(S[E]),T.length===x)return T;w=b=M}}return T.push(d.slice(b)),T}]}),!v)},52325:(t,e,i)=>{"use strict";var n,r=i(23889),s=i(91211).f,o=i(7933),a=i(89109),h=i(86608),u=i(43728),l=i(51104),c="".startsWith,d=Math.min,p=u("startsWith");r({target:"String",proto:!0,forced:!!(l||p||(n=s(String.prototype,"startsWith"),!n||n.writable))&&!p},{startsWith:function(t){var e=String(h(this));a(t);var i=o(d(arguments.length>1?arguments[1]:void 0,e.length)),n=String(t);return c?c.call(e,n,i):e.slice(i,i+n.length)===n}})},672:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("strike")},{strike:function(){return r(this,"strike","","")}})},90982:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("sub")},{sub:function(){return r(this,"sub","","")}})},60365:(t,e,i)=>{"use strict";var n=i(23889),r=i(66421);n({target:"String",proto:!0,forced:i(50979)("sup")},{sup:function(){return r(this,"sup","","")}})},19133:(t,e,i)=>{"use strict";var n=i(23889),r=i(66672).end,s=i(4212)("trimEnd"),o=s?function(){return r(this)}:"".trimEnd;n({target:"String",proto:!0,forced:s},{trimEnd:o,trimRight:o})},20075:(t,e,i)=>{"use strict";var n=i(23889),r=i(66672).start,s=i(4212)("trimStart"),o=s?function(){return r(this)}:"".trimStart;n({target:"String",proto:!0,forced:s},{trimStart:o,trimLeft:o})},54503:(t,e,i)=>{"use strict";var n=i(23889),r=i(66672).trim;n({target:"String",proto:!0,forced:i(4212)("trim")},{trim:function(){return r(this)}})},499:(t,e,i)=>{i(62646)("asyncIterator")},88392:(t,e,i)=>{"use strict";var n=i(23889),r=i(56617),s=i(33386),o=i(54585),a=i(68580),h=i(64774).f,u=i(27367),l=s.Symbol;if(r&&"function"==typeof l&&(!("description"in l.prototype)||void 0!==l().description)){var c={},d=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof d?new l(t):void 0===t?l():l(t);return""===t&&(c[e]=!0),e};u(d,l);var p=d.prototype=l.prototype;p.constructor=d;var f=p.toString,m="Symbol(test)"==String(l("test")),v=/^Symbol\((.*)\)[^)]+$/;h(p,"description",{configurable:!0,get:function(){var t=a(this)?this.valueOf():this,e=f.call(t);if(o(c,t))return"";var i=m?e.slice(7,-1):e.replace(v,"$1");return""===i?void 0:i}}),n({global:!0,forced:!0},{Symbol:d})}},55977:(t,e,i)=>{i(62646)("hasInstance")},53382:(t,e,i)=>{i(62646)("isConcatSpreadable")},9246:(t,e,i)=>{i(62646)("iterator")},73906:(t,e,i)=>{"use strict";var n=i(23889),r=i(33386),s=i(27623),o=i(51104),a=i(56617),h=i(77802),u=i(73018),l=i(38493),c=i(54585),d=i(20351),p=i(68580),f=i(13980),m=i(51223),v=i(86939),g=i(33196),y=i(36846),_=i(37602),x=i(64855),b=i(74562),w=i(74720),T=i(50169),M=i(91211),S=i(64774),E=i(58399),L=i(17182),A=i(18957),D=i(31416),P=i(31059),C=i(26007),O=i(37645),k=i(10548),R=i(71317),I=i(62646),Y=i(39893),F=i(97030),N=i(7622).forEach,B=P("hidden"),U="Symbol",j=k("toPrimitive"),H=F.set,z=F.getterFor(U),W=Object.prototype,G=r.Symbol,V=s("JSON","stringify"),X=M.f,q=S.f,J=w.f,Z=E.f,K=D("symbols"),Q=D("op-symbols"),$=D("string-to-symbol-registry"),tt=D("symbol-to-string-registry"),et=D("wks"),it=r.QObject,nt=!it||!it.prototype||!it.prototype.findChild,rt=a&&l((function(){return 7!=_(q({},"a",{get:function(){return q(this,"a",{value:7}).a}})).a}))?function(t,e,i){var n=X(W,e);n&&delete W[e],q(t,e,i),n&&t!==W&&q(W,e,n)}:q,st=function(t,e){var i=K[t]=_(G.prototype);return H(i,{type:U,tag:t,description:e}),a||(i.description=e),i},ot=u?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof G},at=function(t,e,i){t===W&&at(Q,e,i),f(t);var n=g(e,!0);return f(i),c(K,n)?(i.enumerable?(c(t,B)&&t[B][n]&&(t[B][n]=!1),i=_(i,{enumerable:y(0,!1)})):(c(t,B)||q(t,B,y(1,{})),t[B][n]=!0),rt(t,n,i)):q(t,n,i)},ht=function(t,e){f(t);var i=v(e),n=x(i).concat(dt(i));return N(n,(function(e){a&&!ut.call(i,e)||at(t,e,i[e])})),t},ut=function(t){var e=g(t,!0),i=Z.call(this,e);return!(this===W&&c(K,e)&&!c(Q,e))&&(!(i||!c(this,e)||!c(K,e)||c(this,B)&&this[B][e])||i)},lt=function(t,e){var i=v(t),n=g(e,!0);if(i!==W||!c(K,n)||c(Q,n)){var r=X(i,n);return!r||!c(K,n)||c(i,B)&&i[B][n]||(r.enumerable=!0),r}},ct=function(t){var e=J(v(t)),i=[];return N(e,(function(t){c(K,t)||c(C,t)||i.push(t)})),i},dt=function(t){var e=t===W,i=J(e?Q:v(t)),n=[];return N(i,(function(t){!c(K,t)||e&&!c(W,t)||n.push(K[t])})),n};(h||(A((G=function(){if(this instanceof G)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=O(t),i=function(t){this===W&&i.call(Q,t),c(this,B)&&c(this[B],e)&&(this[B][e]=!1),rt(this,e,y(1,t))};return a&&nt&&rt(W,e,{configurable:!0,set:i}),st(e,t)}).prototype,"toString",(function(){return z(this).tag})),A(G,"withoutSetter",(function(t){return st(O(t),t)})),E.f=ut,S.f=at,M.f=lt,b.f=w.f=ct,T.f=dt,R.f=function(t){return st(k(t),t)},a&&(q(G.prototype,"description",{configurable:!0,get:function(){return z(this).description}}),o||A(W,"propertyIsEnumerable",ut,{unsafe:!0}))),n({global:!0,wrap:!0,forced:!h,sham:!h},{Symbol:G}),N(x(et),(function(t){I(t)})),n({target:U,stat:!0,forced:!h},{for:function(t){var e=String(t);if(c($,e))return $[e];var i=G(e);return $[e]=i,tt[i]=e,i},keyFor:function(t){if(!ot(t))throw TypeError(t+" is not a symbol");if(c(tt,t))return tt[t]},useSetter:function(){nt=!0},useSimple:function(){nt=!1}}),n({target:"Object",stat:!0,forced:!h,sham:!a},{create:function(t,e){return void 0===e?_(t):ht(_(t),e)},defineProperty:at,defineProperties:ht,getOwnPropertyDescriptor:lt}),n({target:"Object",stat:!0,forced:!h},{getOwnPropertyNames:ct,getOwnPropertySymbols:dt}),n({target:"Object",stat:!0,forced:l((function(){T.f(1)}))},{getOwnPropertySymbols:function(t){return T.f(m(t))}}),V)&&n({target:"JSON",stat:!0,forced:!h||l((function(){var t=G();return"[null]"!=V([t])||"{}"!=V({a:t})||"{}"!=V(Object(t))}))},{stringify:function(t,e,i){for(var n,r=[t],s=1;arguments.length>s;)r.push(arguments[s++]);if(n=e,(p(e)||void 0!==t)&&!ot(t))return d(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!ot(e))return e}),r[1]=e,V.apply(null,r)}});G.prototype[j]||L(G.prototype,j,G.prototype.valueOf),Y(G,U),C[B]=!0},82110:(t,e,i)=>{i(62646)("matchAll")},15693:(t,e,i)=>{i(62646)("match")},80780:(t,e,i)=>{i(62646)("replace")},75370:(t,e,i)=>{i(62646)("search")},99019:(t,e,i)=>{i(62646)("species")},65991:(t,e,i)=>{i(62646)("split")},65040:(t,e,i)=>{i(62646)("toPrimitive")},82011:(t,e,i)=>{i(62646)("toStringTag")},70661:(t,e,i)=>{i(62646)("unscopables")},67619:(t,e,i)=>{"use strict";var n=i(81609),r=i(69801),s=n.aTypedArray;(0,n.exportTypedArrayMethod)("copyWithin",(function(t,e){return r.call(s(this),t,e,arguments.length>2?arguments[2]:void 0)}))},969:(t,e,i)=>{"use strict";var n=i(81609),r=i(7622).every,s=n.aTypedArray;(0,n.exportTypedArrayMethod)("every",(function(t){return r(s(this),t,arguments.length>1?arguments[1]:void 0)}))},1558:(t,e,i)=>{"use strict";var n=i(81609),r=i(53009),s=n.aTypedArray;(0,n.exportTypedArrayMethod)("fill",(function(t){return r.apply(s(this),arguments)}))},38954:(t,e,i)=>{"use strict";var n=i(81609),r=i(7622).filter,s=i(7350),o=n.aTypedArray,a=n.aTypedArrayConstructor;(0,n.exportTypedArrayMethod)("filter",(function(t){for(var e=r(o(this),t,arguments.length>1?arguments[1]:void 0),i=s(this,this.constructor),n=0,h=e.length,u=new(a(i))(h);h>n;)u[n]=e[n++];return u}))},6551:(t,e,i)=>{"use strict";var n=i(81609),r=i(7622).findIndex,s=n.aTypedArray;(0,n.exportTypedArrayMethod)("findIndex",(function(t){return r(s(this),t,arguments.length>1?arguments[1]:void 0)}))},61264:(t,e,i)=>{"use strict";var n=i(81609),r=i(7622).find,s=n.aTypedArray;(0,n.exportTypedArrayMethod)("find",(function(t){return r(s(this),t,arguments.length>1?arguments[1]:void 0)}))},68377:(t,e,i)=>{i(19497)("Float32",(function(t){return function(e,i,n){return t(this,e,i,n)}}))},21972:(t,e,i)=>{i(19497)("Float64",(function(t){return function(e,i,n){return t(this,e,i,n)}}))},87189:(t,e,i)=>{"use strict";var n=i(81609),r=i(7622).forEach,s=n.aTypedArray;(0,n.exportTypedArrayMethod)("forEach",(function(t){r(s(this),t,arguments.length>1?arguments[1]:void 0)}))},79544:(t,e,i)=>{"use strict";var n=i(95329);(0,i(81609).exportTypedArrayStaticMethod)("from",i(55066),n)},28581:(t,e,i)=>{"use strict";var n=i(81609),r=i(93289).includes,s=n.aTypedArray;(0,n.exportTypedArrayMethod)("includes",(function(t){return r(s(this),t,arguments.length>1?arguments[1]:void 0)}))},77923:(t,e,i)=>{"use strict";var n=i(81609),r=i(93289).indexOf,s=n.aTypedArray;(0,n.exportTypedArrayMethod)("indexOf",(function(t){return r(s(this),t,arguments.length>1?arguments[1]:void 0)}))},12223:(t,e,i)=>{i(19497)("Int16",(function(t){return function(e,i,n){return t(this,e,i,n)}}))},24878:(t,e,i)=>{i(19497)("Int32",(function(t){return function(e,i,n){return t(this,e,i,n)}}))},58976:(t,e,i)=>{i(19497)("Int8",(function(t){return function(e,i,n){return t(this,e,i,n)}}))},44016:(t,e,i)=>{"use strict";var n=i(33386),r=i(81609),s=i(41499),o=i(10548)("iterator"),a=n.Uint8Array,h=s.values,u=s.keys,l=s.entries,c=r.aTypedArray,d=r.exportTypedArrayMethod,p=a&&a.prototype[o],f=!!p&&("values"==p.name||null==p.name),m=function(){return h.call(c(this))};d("entries",(function(){return l.call(c(this))})),d("keys",(function(){return u.call(c(this))})),d("values",m,!f),d(o,m,!f)},92626:(t,e,i)=>{"use strict";var n=i(81609),r=n.aTypedArray,s=n.exportTypedArrayMethod,o=[].join;s("join",(function(t){return o.apply(r(this),arguments)}))},26737:(t,e,i)=>{"use strict";var n=i(81609),r=i(8287),s=n.aTypedArray;(0,n.exportTypedArrayMethod)("lastIndexOf",(function(t){return r.apply(s(this),arguments)}))},82361:(t,e,i)=>{"use strict";var n=i(81609),r=i(7622).map,s=i(7350),o=n.aTypedArray,a=n.aTypedArrayConstructor;(0,n.exportTypedArrayMethod)("map",(function(t){return r(o(this),t,arguments.length>1?arguments[1]:void 0,(function(t,e){return new(a(s(t,t.constructor)))(e)}))}))},28006:(t,e,i)=>{"use strict";var n=i(81609),r=i(95329),s=n.aTypedArrayConstructor;(0,n.exportTypedArrayStaticMethod)("of",(function(){for(var t=0,e=arguments.length,i=new(s(this))(e);e>t;)i[t]=arguments[t++];return i}),r)},51699:(t,e,i)=>{"use strict";var n=i(81609),r=i(22164).right,s=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduceRight",(function(t){return r(s(this),t,arguments.length,arguments.length>1?arguments[1]:void 0)}))},77673:(t,e,i)=>{"use strict";var n=i(81609),r=i(22164).left,s=n.aTypedArray;(0,n.exportTypedArrayMethod)("reduce",(function(t){return r(s(this),t,arguments.length,arguments.length>1?arguments[1]:void 0)}))},77257:(t,e,i)=>{"use strict";var n=i(81609),r=n.aTypedArray,s=n.exportTypedArrayMethod,o=Math.floor;s("reverse",(function(){for(var t,e=this,i=r(e).length,n=o(i/2),s=0;s<n;)t=e[s],e[s++]=e[--i],e[i]=t;return e}))},6171:(t,e,i)=>{"use strict";var n=i(81609),r=i(7933),s=i(25803),o=i(51223),a=i(38493),h=n.aTypedArray;(0,n.exportTypedArrayMethod)("set",(function(t){h(this);var e=s(arguments.length>1?arguments[1]:void 0,1),i=this.length,n=o(t),a=r(n.length),u=0;if(a+e>i)throw RangeError("Wrong length");for(;u<a;)this[e+u]=n[u++]}),a((function(){new Int8Array(1).set({})})))},68816:(t,e,i)=>{"use strict";var n=i(81609),r=i(7350),s=i(38493),o=n.aTypedArray,a=n.aTypedArrayConstructor,h=n.exportTypedArrayMethod,u=[].slice;h("slice",(function(t,e){for(var i=u.call(o(this),t,e),n=r(this,this.constructor),s=0,h=i.length,l=new(a(n))(h);h>s;)l[s]=i[s++];return l}),s((function(){new Int8Array(1).slice()})))},4661:(t,e,i)=>{"use strict";var n=i(81609),r=i(7622).some,s=n.aTypedArray;(0,n.exportTypedArrayMethod)("some",(function(t){return r(s(this),t,arguments.length>1?arguments[1]:void 0)}))},92811:(t,e,i)=>{"use strict";var n=i(81609),r=n.aTypedArray,s=n.exportTypedArrayMethod,o=[].sort;s("sort",(function(t){return o.call(r(this),t)}))},69535:(t,e,i)=>{"use strict";var n=i(81609),r=i(7933),s=i(11486),o=i(7350),a=n.aTypedArray;(0,n.exportTypedArrayMethod)("subarray",(function(t,e){var i=a(this),n=i.length,h=s(t,n);return new(o(i,i.constructor))(i.buffer,i.byteOffset+h*i.BYTES_PER_ELEMENT,r((void 0===e?n:s(e,n))-h))}))},5912:(t,e,i)=>{"use strict";var n=i(33386),r=i(81609),s=i(38493),o=n.Int8Array,a=r.aTypedArray,h=r.exportTypedArrayMethod,u=[].toLocaleString,l=[].slice,c=!!o&&s((function(){u.call(new o(1))}));h("toLocaleString",(function(){return u.apply(c?l.call(a(this)):a(this),arguments)}),s((function(){return[1,2].toLocaleString()!=new o([1,2]).toLocaleString()}))||!s((function(){o.prototype.toLocaleString.call([1,2])})))},2470:(t,e,i)=>{"use strict";var n=i(81609).exportTypedArrayMethod,r=i(38493),s=i(33386).Uint8Array,o=s&&s.prototype||{},a=[].toString,h=[].join;r((function(){a.call({})}))&&(a=function(){return h.call(this)});var u=o.toString!=a;n("toString",a,u)},80714:(t,e,i)=>{i(19497)("Uint16",(function(t){return function(e,i,n){return t(this,e,i,n)}}))},3140:(t,e,i)=>{i(19497)("Uint32",(function(t){return function(e,i,n){return t(this,e,i,n)}}))},21785:(t,e,i)=>{i(19497)("Uint8",(function(t){return function(e,i,n){return t(this,e,i,n)}}))},87731:(t,e,i)=>{i(19497)("Uint8",(function(t){return function(e,i,n){return t(this,e,i,n)}}),!0)},35075:(t,e,i)=>{"use strict";var n,r=i(33386),s=i(11432),o=i(8080),a=i(93574),h=i(8929),u=i(68580),l=i(97030).enforce,c=i(85721),d=!r.ActiveXObject&&"ActiveXObject"in r,p=Object.isExtensible,f=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},m=t.exports=a("WeakMap",f,h);if(c&&d){n=h.getConstructor(f,"WeakMap",!0),o.REQUIRED=!0;var v=m.prototype,g=v.delete,y=v.has,_=v.get,x=v.set;s(v,{delete:function(t){if(u(t)&&!p(t)){var e=l(this);return e.frozen||(e.frozen=new n),g.call(this,t)||e.frozen.delete(t)}return g.call(this,t)},has:function(t){if(u(t)&&!p(t)){var e=l(this);return e.frozen||(e.frozen=new n),y.call(this,t)||e.frozen.has(t)}return y.call(this,t)},get:function(t){if(u(t)&&!p(t)){var e=l(this);return e.frozen||(e.frozen=new n),y.call(this,t)?_.call(this,t):e.frozen.get(t)}return _.call(this,t)},set:function(t,e){if(u(t)&&!p(t)){var i=l(this);i.frozen||(i.frozen=new n),y.call(this,t)?x.call(this,t,e):i.frozen.set(t,e)}else x.call(this,t,e);return this}})}},98510:(t,e,i)=>{"use strict";i(93574)("WeakSet",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),i(8929))},45633:(t,e,i)=>{"use strict";var n=i(23889),r=i(56617),s=i(29528),o=i(15456),a=i(37602),h=i(64774),u=i(36846),l=i(76808),c=i(17182),d=i(97030),p=d.set,f=d.getterFor("AggregateError"),m=function(t,e){var i=this;if(!(i instanceof m))return new m(t,e);o&&(i=o(new Error(e),s(i)));var n=[];return l(t,n.push,n),r?p(i,{errors:n,type:"AggregateError"}):i.errors=n,void 0!==e&&c(i,"message",String(e)),i};m.prototype=a(Error.prototype,{constructor:u(5,m),message:u(5,""),name:u(5,"AggregateError")}),r&&h.f(m.prototype,"errors",{get:function(){return f(this).errors},configurable:!0}),n({global:!0},{AggregateError:m})},65071:(t,e,i)=>{var n=i(23889),r=i(20351),s=Object.isFrozen,o=function(t,e){if(!s||!r(t)||!s(t))return!1;for(var i,n=0,o=t.length;n<o;)if(!("string"==typeof(i=t[n++])||e&&void 0===i))return!1;return 0!==o};n({target:"Array",stat:!0},{isTemplateObject:function(t){if(!o(t,!0))return!1;var e=t.raw;return!(e.length!==t.length||!o(e,!1))}})},78843:(t,e,i)=>{"use strict";var n=i(56617),r=i(35240),s=i(51223),o=i(7933),a=i(64774).f;n&&!("lastIndex"in[])&&(a(Array.prototype,"lastIndex",{configurable:!0,get:function(){var t=s(this),e=o(t.length);return 0==e?0:e-1}}),r("lastIndex"))},62274:(t,e,i)=>{"use strict";var n=i(56617),r=i(35240),s=i(51223),o=i(7933),a=i(64774).f;n&&!("lastItem"in[])&&(a(Array.prototype,"lastItem",{configurable:!0,get:function(){var t=s(this),e=o(t.length);return 0==e?void 0:t[e-1]},set:function(t){var e=s(this),i=o(e.length);return e[0==i?0:i-1]=t}}),r("lastItem"))},10717:(t,e,i)=>{"use strict";var n=i(23889),r=i(13980),s=i(25542)((function(t,e){var i=this,n=i.iterator;return e.resolve(r(i.next.call(n,t))).then((function(t){return r(t).done?(i.done=!0,{done:!0,value:void 0}):{done:!1,value:[i.index++,t.value]}}))}));n({target:"AsyncIterator",proto:!0,real:!0},{asIndexedPairs:function(){return new s({iterator:r(this),index:0})}})},48614:(t,e,i)=>{"use strict";var n=i(23889),r=i(31057),s=i(17182),o=i(54585),a=i(10548),h=i(45535),u=i(51104),l=a("toStringTag"),c=function(){r(this,c)};c.prototype=h,o(h,l)||s(h,l,"AsyncIterator"),o(h,"constructor")&&h.constructor!==Object||s(h,"constructor",c),n({global:!0,forced:u},{AsyncIterator:c})},6847:(t,e,i)=>{"use strict";var n=i(23889),r=i(13980),s=i(17138),o=i(25542)((function(t,e){var i=this;return new e((function(n,s){var o=function(){try{e.resolve(r(i.next.call(i.iterator,i.remaining?void 0:t))).then((function(t){try{r(t).done?(i.done=!0,n({done:!0,value:void 0})):i.remaining?(i.remaining--,o()):n({done:!1,value:t.value})}catch(t){s(t)}}),s)}catch(t){s(t)}};o()}))}));n({target:"AsyncIterator",proto:!0,real:!0},{drop:function(t){return new o({iterator:r(this),remaining:s(t)})}})},16348:(t,e,i)=>{"use strict";var n=i(23889),r=i(87505).every;n({target:"AsyncIterator",proto:!0,real:!0},{every:function(t){return r(this,t)}})},349:(t,e,i)=>{"use strict";var n=i(23889),r=i(23775),s=i(13980),o=i(25542)((function(t,e){var i=this,n=i.filterer;return new e((function(r,o){var a=function(){try{e.resolve(s(i.next.call(i.iterator,t))).then((function(t){try{if(s(t).done)i.done=!0,r({done:!0,value:void 0});else{var h=t.value;e.resolve(n(h)).then((function(t){t?r({done:!1,value:h}):a()}),o)}}catch(t){o(t)}}),o)}catch(t){o(t)}};a()}))}));n({target:"AsyncIterator",proto:!0,real:!0},{filter:function(t){return new o({iterator:s(this),filterer:r(t)})}})},96653:(t,e,i)=>{"use strict";var n=i(23889),r=i(87505).find;n({target:"AsyncIterator",proto:!0,real:!0},{find:function(t){return r(this,t)}})},27646:(t,e,i)=>{"use strict";var n=i(23889),r=i(23775),s=i(13980),o=i(25542),a=i(6178),h=o((function(t,e){var i,n,o=this,h=o.mapper;return new e((function(u,l){var c=function(){try{e.resolve(s(o.next.call(o.iterator,t))).then((function(t){try{s(t).done?(o.done=!0,u({done:!0,value:void 0})):e.resolve(h(t.value)).then((function(t){try{if(void 0!==(n=a(t)))return o.innerIterator=i=s(n.call(t)),o.innerNext=r(i.next),d();l(TypeError(".flatMap callback should return an iterable object"))}catch(t){l(t)}}),l)}catch(t){l(t)}}),l)}catch(t){l(t)}},d=function(){if(i=o.innerIterator)try{e.resolve(s(o.innerNext.call(i))).then((function(t){try{s(t).done?(o.innerIterator=o.innerNext=null,c()):u({done:!1,value:t.value})}catch(t){l(t)}}),l)}catch(t){l(t)}else c()};d()}))}));n({target:"AsyncIterator",proto:!0,real:!0},{flatMap:function(t){return new h({iterator:s(this),mapper:r(t),innerIterator:null,innerNext:null})}})},56978:(t,e,i)=>{"use strict";var n=i(23889),r=i(87505).forEach;n({target:"AsyncIterator",proto:!0,real:!0},{forEach:function(t){return r(this,t)}})},1996:(t,e,i)=>{var n=i(23889),r=i(29467),s=i(23775),o=i(13980),a=i(51223),h=i(25542),u=i(6178),l=r.AsyncIterator,c=h((function(t){return o(this.next.call(this.iterator,t))}),!0);n({target:"AsyncIterator",stat:!0},{from:function(t){var e,i=a(t),n=u(i);if(null!=n){if((e=s(n).call(i))instanceof l)return e}else e=i;return new c({iterator:e})}})},517:(t,e,i)=>{"use strict";var n=i(23889),r=i(23775),s=i(13980),o=i(25542)((function(t,e){var i=this,n=i.mapper;return e.resolve(s(i.next.call(i.iterator,t))).then((function(t){return s(t).done?(i.done=!0,{done:!0,value:void 0}):e.resolve(n(t.value)).then((function(t){return{done:!1,value:t}}))}))}));n({target:"AsyncIterator",proto:!0,real:!0},{map:function(t){return new o({iterator:s(this),mapper:r(t)})}})},51811:(t,e,i)=>{"use strict";var n=i(23889),r=i(23775),s=i(13980),o=i(27623)("Promise");n({target:"AsyncIterator",proto:!0,real:!0},{reduce:function(t){var e=s(this),i=r(e.next),n=arguments.length<2,a=n?void 0:arguments[1];return r(t),new o((function(r,h){var u=function(){try{o.resolve(s(i.call(e))).then((function(e){try{if(s(e).done)n?h(TypeError("Reduce of empty iterator with no initial value")):r(a);else{var i=e.value;n?(n=!1,a=i,u()):o.resolve(t(a,i)).then((function(t){a=t,u()}),h)}}catch(t){h(t)}}),h)}catch(t){h(t)}};u()}))}})},30580:(t,e,i)=>{"use strict";var n=i(23889),r=i(87505).some;n({target:"AsyncIterator",proto:!0,real:!0},{some:function(t){return r(this,t)}})},6839:(t,e,i)=>{"use strict";var n=i(23889),r=i(13980),s=i(17138),o=i(25542)((function(t){return this.remaining--?this.next.call(this.iterator,t):(this.done=!0,{done:!0,value:void 0})}));n({target:"AsyncIterator",proto:!0,real:!0},{take:function(t){return new o({iterator:r(this),remaining:s(t)})}})},24837:(t,e,i)=>{"use strict";var n=i(23889),r=i(87505).toArray;n({target:"AsyncIterator",proto:!0,real:!0},{toArray:function(){return r(this)}})},95327:(t,e,i)=>{var n=i(23889),r=i(19388),s=i(27623),o=i(37602),a=function(){var t=s("Object","freeze");return t?t(o(null)):o(null)};n({global:!0},{compositeKey:function(){return r.apply(Object,arguments).get("object",a)}})},22401:(t,e,i)=>{var n=i(23889),r=i(19388),s=i(27623);n({global:!0},{compositeSymbol:function(){return 1===arguments.length&&"string"==typeof arguments[0]?s("Symbol").for(arguments[0]):r.apply(null,arguments).get("symbol",s("Symbol"))}})},63101:(t,e,i)=>{i(2506)},85750:(t,e,i)=>{"use strict";var n=i(23889),r=i(13980),s=i(79596)((function(t){var e=r(this.next.call(this.iterator,t));if(!(this.done=!!e.done))return[this.index++,e.value]}));n({target:"Iterator",proto:!0,real:!0},{asIndexedPairs:function(){return new s({iterator:r(this),index:0})}})},7902:(t,e,i)=>{"use strict";var n=i(23889),r=i(33386),s=i(31057),o=i(17182),a=i(38493),h=i(54585),u=i(10548),l=i(91706).IteratorPrototype,c=i(51104),d=u("iterator"),p=u("toStringTag"),f=r.Iterator,m=c||"function"!=typeof f||f.prototype!==l||!a((function(){f({})})),v=function(){s(this,v)};c&&o(l={},d,(function(){return this})),h(l,p)||o(l,p,"Iterator"),!m&&h(l,"constructor")&&l.constructor!==Object||o(l,"constructor",v),v.prototype=l,n({global:!0,forced:m},{Iterator:v})},53866:(t,e,i)=>{"use strict";var n=i(23889),r=i(13980),s=i(17138),o=i(79596)((function(t){for(var e,i=this.iterator,n=this.next;this.remaining;)if(this.remaining--,e=r(n.call(i)),this.done=!!e.done)return;if(e=r(n.call(i,t)),!(this.done=!!e.done))return e.value}));n({target:"Iterator",proto:!0,real:!0},{drop:function(t){return new o({iterator:r(this),remaining:s(t)})}})},81192:(t,e,i)=>{"use strict";var n=i(23889),r=i(76808),s=i(23775),o=i(13980);n({target:"Iterator",proto:!0,real:!0},{every:function(t){return o(this),s(t),!r(this,(function(e){if(!t(e))return r.stop()}),void 0,!1,!0).stopped}})},13193:(t,e,i)=>{"use strict";var n=i(23889),r=i(23775),s=i(13980),o=i(79596),a=i(31404),h=o((function(t){for(var e,i,n=this.iterator,r=this.filterer,o=this.next;;){if(e=s(o.call(n,t)),this.done=!!e.done)return;if(i=e.value,a(n,r,i))return i}}));n({target:"Iterator",proto:!0,real:!0},{filter:function(t){return new h({iterator:s(this),filterer:r(t)})}})},12122:(t,e,i)=>{"use strict";var n=i(23889),r=i(76808),s=i(23775),o=i(13980);n({target:"Iterator",proto:!0,real:!0},{find:function(t){return o(this),s(t),r(this,(function(e){if(t(e))return r.stop(e)}),void 0,!1,!0).result}})},4780:(t,e,i)=>{"use strict";var n=i(23889),r=i(23775),s=i(13980),o=i(99683),a=i(79596),h=i(31404),u=a((function(t){for(var e,i,n,a,u=this.iterator;;){if(a=this.innerIterator){if(!(e=s(this.innerNext.call(a))).done)return e.value;this.innerIterator=this.innerNext=null}if(e=s(this.next.call(u,t)),this.done=!!e.done)return;if(i=h(u,this.mapper,e.value),void 0===(n=o(i)))throw TypeError(".flatMap callback should return an iterable object");this.innerIterator=a=s(n.call(i)),this.innerNext=r(a.next)}}));n({target:"Iterator",proto:!0,real:!0},{flatMap:function(t){return new u({iterator:s(this),mapper:r(t),innerIterator:null,innerNext:null})}})},78496:(t,e,i)=>{"use strict";var n=i(23889),r=i(76808),s=i(13980);n({target:"Iterator",proto:!0,real:!0},{forEach:function(t){r(s(this),t,void 0,!1,!0)}})},25420:(t,e,i)=>{var n=i(23889),r=i(29467),s=i(23775),o=i(13980),a=i(51223),h=i(79596),u=i(99683),l=r.Iterator,c=h((function(t){var e=o(this.next.call(this.iterator,t));if(!(this.done=!!e.done))return e.value}),!0);n({target:"Iterator",stat:!0},{from:function(t){var e,i=a(t),n=u(i);if(null!=n){if((e=s(n).call(i))instanceof l)return e}else e=i;return new c({iterator:e})}})},23451:(t,e,i)=>{"use strict";var n=i(23889),r=i(23775),s=i(13980),o=i(79596),a=i(31404),h=o((function(t){var e=this.iterator,i=s(this.next.call(e,t));if(!(this.done=!!i.done))return a(e,this.mapper,i.value)}));n({target:"Iterator",proto:!0,real:!0},{map:function(t){return new h({iterator:s(this),mapper:r(t)})}})},90430:(t,e,i)=>{"use strict";var n=i(23889),r=i(76808),s=i(23775),o=i(13980);n({target:"Iterator",proto:!0,real:!0},{reduce:function(t){o(this),s(t);var e=arguments.length<2,i=e?void 0:arguments[1];if(r(this,(function(n){e?(e=!1,i=n):i=t(i,n)}),void 0,!1,!0),e)throw TypeError("Reduce of empty iterator with no initial value");return i}})},7857:(t,e,i)=>{"use strict";var n=i(23889),r=i(76808),s=i(23775),o=i(13980);n({target:"Iterator",proto:!0,real:!0},{some:function(t){return o(this),s(t),r(this,(function(e){if(t(e))return r.stop()}),void 0,!1,!0).stopped}})},67942:(t,e,i)=>{"use strict";var n=i(23889),r=i(13980),s=i(17138),o=i(79596)((function(t){if(this.remaining--){var e=r(this.next.call(this.iterator,t));return(this.done=!!e.done)?void 0:e.value}this.done=!0}));n({target:"Iterator",proto:!0,real:!0},{take:function(t){return new o({iterator:r(this),remaining:s(t)})}})},65499:(t,e,i)=>{"use strict";var n=i(23889),r=i(76808),s=i(13980),o=[].push;n({target:"Iterator",proto:!0,real:!0},{toArray:function(){var t=[];return r(s(this),o,t,!1,!0),t}})},86779:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(84537);n({target:"Map",proto:!0,real:!0,forced:r},{deleteAll:function(){return s.apply(this,arguments)}})},20240:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(39181),a=i(81709),h=i(76808);n({target:"Map",proto:!0,real:!0,forced:r},{every:function(t){var e=s(this),i=a(e),n=o(t,arguments.length>1?arguments[1]:void 0,3);return!h(i,(function(t,i){if(!n(i,t,e))return h.stop()}),void 0,!0,!0).stopped}})},15201:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(27623),o=i(13980),a=i(23775),h=i(39181),u=i(7350),l=i(81709),c=i(76808);n({target:"Map",proto:!0,real:!0,forced:r},{filter:function(t){var e=o(this),i=l(e),n=h(t,arguments.length>1?arguments[1]:void 0,3),r=new(u(e,s("Map"))),d=a(r.set);return c(i,(function(t,i){n(i,t,e)&&d.call(r,t,i)}),void 0,!0,!0),r}})},20981:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(39181),a=i(81709),h=i(76808);n({target:"Map",proto:!0,real:!0,forced:r},{findKey:function(t){var e=s(this),i=a(e),n=o(t,arguments.length>1?arguments[1]:void 0,3);return h(i,(function(t,i){if(n(i,t,e))return h.stop(t)}),void 0,!0,!0).result}})},20880:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(39181),a=i(81709),h=i(76808);n({target:"Map",proto:!0,real:!0,forced:r},{find:function(t){var e=s(this),i=a(e),n=o(t,arguments.length>1?arguments[1]:void 0,3);return h(i,(function(t,i){if(n(i,t,e))return h.stop(i)}),void 0,!0,!0).result}})},98871:(t,e,i)=>{i(23889)({target:"Map",stat:!0},{from:i(63842)})},69795:(t,e,i)=>{"use strict";var n=i(23889),r=i(76808),s=i(23775);n({target:"Map",stat:!0},{groupBy:function(t,e){var i=new this;s(e);var n=s(i.has),o=s(i.get),a=s(i.set);return r(t,(function(t){var r=e(t);n.call(i,r)?o.call(i,r).push(t):a.call(i,r,[t])})),i}})},40137:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(81709),a=i(68790),h=i(76808);n({target:"Map",proto:!0,real:!0,forced:r},{includes:function(t){return h(o(s(this)),(function(e,i){if(a(i,t))return h.stop()}),void 0,!0,!0).stopped}})},53976:(t,e,i)=>{"use strict";var n=i(23889),r=i(76808),s=i(23775);n({target:"Map",stat:!0},{keyBy:function(t,e){var i=new this;s(e);var n=s(i.set);return r(t,(function(t){n.call(i,e(t),t)})),i}})},15240:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(81709),a=i(76808);n({target:"Map",proto:!0,real:!0,forced:r},{keyOf:function(t){return a(o(s(this)),(function(e,i){if(i===t)return a.stop(e)}),void 0,!0,!0).result}})},79286:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(27623),o=i(13980),a=i(23775),h=i(39181),u=i(7350),l=i(81709),c=i(76808);n({target:"Map",proto:!0,real:!0,forced:r},{mapKeys:function(t){var e=o(this),i=l(e),n=h(t,arguments.length>1?arguments[1]:void 0,3),r=new(u(e,s("Map"))),d=a(r.set);return c(i,(function(t,i){d.call(r,n(i,t,e),i)}),void 0,!0,!0),r}})},23574:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(27623),o=i(13980),a=i(23775),h=i(39181),u=i(7350),l=i(81709),c=i(76808);n({target:"Map",proto:!0,real:!0,forced:r},{mapValues:function(t){var e=o(this),i=l(e),n=h(t,arguments.length>1?arguments[1]:void 0,3),r=new(u(e,s("Map"))),d=a(r.set);return c(i,(function(t,i){d.call(r,t,n(i,t,e))}),void 0,!0,!0),r}})},32931:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(23775),a=i(76808);n({target:"Map",proto:!0,real:!0,forced:r},{merge:function(t){for(var e=s(this),i=o(e.set),n=0;n<arguments.length;)a(arguments[n++],i,e,!0);return e}})},98983:(t,e,i)=>{i(23889)({target:"Map",stat:!0},{of:i(96089)})},11924:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(23775),a=i(81709),h=i(76808);n({target:"Map",proto:!0,real:!0,forced:r},{reduce:function(t){var e=s(this),i=a(e),n=arguments.length<2,r=n?void 0:arguments[1];if(o(t),h(i,(function(i,s){n?(n=!1,r=s):r=t(r,s,i,e)}),void 0,!0,!0),n)throw TypeError("Reduce of empty map with no initial value");return r}})},10435:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(39181),a=i(81709),h=i(76808);n({target:"Map",proto:!0,real:!0,forced:r},{some:function(t){var e=s(this),i=a(e),n=o(t,arguments.length>1?arguments[1]:void 0,3);return h(i,(function(t,i){if(n(i,t,e))return h.stop()}),void 0,!0,!0).stopped}})},62469:(t,e,i)=>{"use strict";i(23889)({target:"Map",proto:!0,real:!0,forced:i(51104)},{updateOrInsert:i(35913)})},39316:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(23775);n({target:"Map",proto:!0,real:!0,forced:r},{update:function(t,e){var i=s(this),n=arguments.length;o(e);var r=i.has(t);if(!r&&n<3)throw TypeError("Updating absent value");var a=r?i.get(t):o(n>2?arguments[2]:void 0)(t,i);return i.set(t,e(a,t,i)),i}})},83830:(t,e,i)=>{"use strict";i(23889)({target:"Map",proto:!0,real:!0,forced:i(51104)},{upsert:i(35913)})},50946:(t,e,i)=>{var n=i(23889),r=Math.min,s=Math.max;n({target:"Math",stat:!0},{clamp:function(t,e,i){return r(i,s(e,t))}})},89119:(t,e,i)=>{i(23889)({target:"Math",stat:!0},{DEG_PER_RAD:Math.PI/180})},91996:(t,e,i)=>{var n=i(23889),r=180/Math.PI;n({target:"Math",stat:!0},{degrees:function(t){return t*r}})},65916:(t,e,i)=>{var n=i(23889),r=i(94602),s=i(89492);n({target:"Math",stat:!0},{fscale:function(t,e,i,n,o){return s(r(t,e,i,n,o))}})},10464:(t,e,i)=>{i(23889)({target:"Math",stat:!0},{iaddh:function(t,e,i,n){var r=t>>>0,s=i>>>0;return(e>>>0)+(n>>>0)+((r&s|(r|s)&~(r+s>>>0))>>>31)|0}})},63562:(t,e,i)=>{i(23889)({target:"Math",stat:!0},{imulh:function(t,e){var i=65535,n=+t,r=+e,s=n&i,o=r&i,a=n>>16,h=r>>16,u=(a*o>>>0)+(s*o>>>16);return a*h+(u>>16)+((s*h>>>0)+(u&i)>>16)}})},15434:(t,e,i)=>{i(23889)({target:"Math",stat:!0},{isubh:function(t,e,i,n){var r=t>>>0,s=i>>>0;return(e>>>0)-(n>>>0)-((~r&s|~(r^s)&r-s>>>0)>>>31)|0}})},98013:(t,e,i)=>{i(23889)({target:"Math",stat:!0},{RAD_PER_DEG:180/Math.PI})},3172:(t,e,i)=>{var n=i(23889),r=Math.PI/180;n({target:"Math",stat:!0},{radians:function(t){return t*r}})},63566:(t,e,i)=>{i(23889)({target:"Math",stat:!0},{scale:i(94602)})},41876:(t,e,i)=>{var n=i(23889),r=i(13980),s=i(48682),o=i(2395),a=i(97030),h="Seeded Random",u="Seeded Random Generator",l=a.set,c=a.getterFor(u),d=o((function(t){l(this,{type:u,seed:t%2147483647})}),h,(function(){var t=c(this);return{value:(1073741823&(t.seed=(1103515245*t.seed+12345)%2147483647))/1073741823,done:!1}}));n({target:"Math",stat:!0,forced:!0},{seededPRNG:function(t){var e=r(t).seed;if(!s(e))throw TypeError('Math.seededPRNG() argument should have a "seed" field with a finite value.');return new d(e)}})},37726:(t,e,i)=>{i(23889)({target:"Math",stat:!0},{signbit:function(t){return(t=+t)==t&&0==t?1/t==-1/0:t<0}})},36823:(t,e,i)=>{i(23889)({target:"Math",stat:!0},{umulh:function(t,e){var i=65535,n=+t,r=+e,s=n&i,o=r&i,a=n>>>16,h=r>>>16,u=(a*o>>>0)+(s*o>>>16);return a*h+(u>>>16)+((s*h>>>0)+(u&i)>>>16)}})},79708:(t,e,i)=>{"use strict";var n=i(23889),r=i(1557),s=i(62229),o="Invalid number representation",a=/^[\da-z]+$/;n({target:"Number",stat:!0},{fromString:function(t,e){var i,n,h=1;if("string"!=typeof t)throw TypeError(o);if(!t.length)throw SyntaxError(o);if("-"==t.charAt(0)&&(h=-1,!(t=t.slice(1)).length))throw SyntaxError(o);if((i=void 0===e?10:r(e))<2||i>36)throw RangeError("Invalid radix");if(!a.test(t)||(n=s(t,i)).toString(i)!==t)throw SyntaxError(o);return h*n}})},6884:(t,e,i)=>{"use strict";var n=i(23889),r=i(30863);n({target:"Object",stat:!0},{iterateEntries:function(t){return new r(t,"entries")}})},39682:(t,e,i)=>{"use strict";var n=i(23889),r=i(30863);n({target:"Object",stat:!0},{iterateKeys:function(t){return new r(t,"keys")}})},8069:(t,e,i)=>{"use strict";var n=i(23889),r=i(30863);n({target:"Object",stat:!0},{iterateValues:function(t){return new r(t,"values")}})},30138:(t,e,i)=>{"use strict";var n=i(23889),r=i(56617),s=i(16906),o=i(23775),a=i(13980),h=i(68580),u=i(31057),l=i(64774).f,c=i(17182),d=i(11432),p=i(62389),f=i(76808),m=i(98684),v=i(10548),g=i(97030),y=v("observable"),_=g.get,x=g.set,b=function(t){return null==t?void 0:o(t)},w=function(t){var e=t.cleanup;if(e){t.cleanup=void 0;try{e()}catch(t){m(t)}}},T=function(t){return void 0===t.observer},M=function(t,e){if(!r){t.closed=!0;var i=e.subscriptionObserver;i&&(i.closed=!0)}e.observer=void 0},S=function(t,e){var i,n=x(this,{cleanup:void 0,observer:a(t),subscriptionObserver:void 0});r||(this.closed=!1);try{(i=b(t.start))&&i.call(t,this)}catch(t){m(t)}if(!T(n)){var s=n.subscriptionObserver=new E(this);try{var h=e(s),u=h;null!=h&&(n.cleanup="function"==typeof h.unsubscribe?function(){u.unsubscribe()}:o(h))}catch(t){return void s.error(t)}T(n)&&w(n)}};S.prototype=d({},{unsubscribe:function(){var t=_(this);T(t)||(M(this,t),w(t))}}),r&&l(S.prototype,"closed",{configurable:!0,get:function(){return T(_(this))}});var E=function(t){x(this,{subscription:t}),r||(this.closed=!1)};E.prototype=d({},{next:function(t){var e=_(_(this).subscription);if(!T(e)){var i=e.observer;try{var n=b(i.next);n&&n.call(i,t)}catch(t){m(t)}}},error:function(t){var e=_(this).subscription,i=_(e);if(!T(i)){var n=i.observer;M(e,i);try{var r=b(n.error);r?r.call(n,t):m(t)}catch(t){m(t)}w(i)}},complete:function(){var t=_(this).subscription,e=_(t);if(!T(e)){var i=e.observer;M(t,e);try{var n=b(i.complete);n&&n.call(i)}catch(t){m(t)}w(e)}}}),r&&l(E.prototype,"closed",{configurable:!0,get:function(){return T(_(_(this).subscription))}});var L=function(t){u(this,L,"Observable"),x(this,{subscriber:o(t)})};d(L.prototype,{subscribe:function(t){var e=arguments.length;return new S("function"==typeof t?{next:t,error:e>1?arguments[1]:void 0,complete:e>2?arguments[2]:void 0}:h(t)?t:{},_(this).subscriber)}}),d(L,{from:function(t){var e="function"==typeof this?this:L,i=b(a(t)[y]);if(i){var n=a(i.call(t));return n.constructor===e?n:new e((function(t){return n.subscribe(t)}))}var r=p(t);return new e((function(t){f(r,(function(e){if(t.next(e),t.closed)return f.stop()}),void 0,!1,!0),t.complete()}))},of:function(){for(var t="function"==typeof this?this:L,e=arguments.length,i=new Array(e),n=0;n<e;)i[n]=arguments[n++];return new t((function(t){for(var n=0;n<e;n++)if(t.next(i[n]),t.closed)return;t.complete()}))}}),c(L.prototype,y,(function(){return this})),n({global:!0},{Observable:L}),s("Observable")},3254:(t,e,i)=>{i(8378)},87589:(t,e,i)=>{"use strict";var n=i(23889),r=i(23775),s=i(27623),o=i(8168),a=i(70595),h=i(76808),u="No one promise resolved";n({target:"Promise",stat:!0},{any:function(t){var e=this,i=o.f(e),n=i.resolve,l=i.reject,c=a((function(){var i=r(e.resolve),o=[],a=0,c=1,d=!1;h(t,(function(t){var r=a++,h=!1;o.push(void 0),c++,i.call(e,t).then((function(t){h||d||(d=!0,n(t))}),(function(t){h||d||(h=!0,o[r]=t,--c||l(new(s("AggregateError"))(o,u)))}))})),--c||l(new(s("AggregateError"))(o,u))}));return c.error&&l(c.value),i.promise}})},77304:(t,e,i)=>{"use strict";var n=i(23889),r=i(8168),s=i(70595);n({target:"Promise",stat:!0},{try:function(t){var e=r.f(this),i=s(t);return(i.error?e.reject:e.resolve)(i.value),e.promise}})},38536:(t,e,i)=>{var n=i(23889),r=i(38758),s=i(13980),o=r.toKey,a=r.set;n({target:"Reflect",stat:!0},{defineMetadata:function(t,e,i){var n=arguments.length<4?void 0:o(arguments[3]);a(t,e,s(i),n)}})},83452:(t,e,i)=>{var n=i(23889),r=i(38758),s=i(13980),o=r.toKey,a=r.getMap,h=r.store;n({target:"Reflect",stat:!0},{deleteMetadata:function(t,e){var i=arguments.length<3?void 0:o(arguments[2]),n=a(s(e),i,!1);if(void 0===n||!n.delete(t))return!1;if(n.size)return!0;var r=h.get(e);return r.delete(i),!!r.size||h.delete(e)}})},66881:(t,e,i)=>{var n=i(23889),r=i(31417),s=i(38758),o=i(13980),a=i(29528),h=i(76808),u=s.keys,l=s.toKey,c=function(t,e){var i=u(t,e),n=a(t);if(null===n)return i;var s,o,l=c(n,e);return l.length?i.length?(s=new r(i.concat(l)),h(s,(o=[]).push,o),o):l:i};n({target:"Reflect",stat:!0},{getMetadataKeys:function(t){var e=arguments.length<2?void 0:l(arguments[1]);return c(o(t),e)}})},62616:(t,e,i)=>{var n=i(23889),r=i(38758),s=i(13980),o=i(29528),a=r.has,h=r.get,u=r.toKey,l=function(t,e,i){if(a(t,e,i))return h(t,e,i);var n=o(e);return null!==n?l(t,n,i):void 0};n({target:"Reflect",stat:!0},{getMetadata:function(t,e){var i=arguments.length<3?void 0:u(arguments[2]);return l(t,s(e),i)}})},40754:(t,e,i)=>{var n=i(23889),r=i(38758),s=i(13980),o=r.keys,a=r.toKey;n({target:"Reflect",stat:!0},{getOwnMetadataKeys:function(t){var e=arguments.length<2?void 0:a(arguments[1]);return o(s(t),e)}})},58173:(t,e,i)=>{var n=i(23889),r=i(38758),s=i(13980),o=r.get,a=r.toKey;n({target:"Reflect",stat:!0},{getOwnMetadata:function(t,e){var i=arguments.length<3?void 0:a(arguments[2]);return o(t,s(e),i)}})},15100:(t,e,i)=>{var n=i(23889),r=i(38758),s=i(13980),o=i(29528),a=r.has,h=r.toKey,u=function(t,e,i){if(a(t,e,i))return!0;var n=o(e);return null!==n&&u(t,n,i)};n({target:"Reflect",stat:!0},{hasMetadata:function(t,e){var i=arguments.length<3?void 0:h(arguments[2]);return u(t,s(e),i)}})},40969:(t,e,i)=>{var n=i(23889),r=i(38758),s=i(13980),o=r.has,a=r.toKey;n({target:"Reflect",stat:!0},{hasOwnMetadata:function(t,e){var i=arguments.length<3?void 0:a(arguments[2]);return o(t,s(e),i)}})},76247:(t,e,i)=>{var n=i(23889),r=i(38758),s=i(13980),o=r.toKey,a=r.set;n({target:"Reflect",stat:!0},{metadata:function(t,e){return function(i,n){a(t,e,s(i),o(n))}}})},66169:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(31553);n({target:"Set",proto:!0,real:!0,forced:r},{addAll:function(){return s.apply(this,arguments)}})},75295:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(84537);n({target:"Set",proto:!0,real:!0,forced:r},{deleteAll:function(){return s.apply(this,arguments)}})},59070:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(27623),o=i(13980),a=i(23775),h=i(7350),u=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{difference:function(t){var e=o(this),i=new(h(e,s("Set")))(e),n=a(i.delete);return u(t,(function(t){n.call(i,t)})),i}})},77280:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(39181),a=i(82091),h=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{every:function(t){var e=s(this),i=a(e),n=o(t,arguments.length>1?arguments[1]:void 0,3);return!h(i,(function(t){if(!n(t,t,e))return h.stop()}),void 0,!1,!0).stopped}})},56409:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(27623),o=i(13980),a=i(23775),h=i(39181),u=i(7350),l=i(82091),c=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{filter:function(t){var e=o(this),i=l(e),n=h(t,arguments.length>1?arguments[1]:void 0,3),r=new(u(e,s("Set"))),d=a(r.add);return c(i,(function(t){n(t,t,e)&&d.call(r,t)}),void 0,!1,!0),r}})},33041:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(39181),a=i(82091),h=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{find:function(t){var e=s(this),i=a(e),n=o(t,arguments.length>1?arguments[1]:void 0,3);return h(i,(function(t){if(n(t,t,e))return h.stop(t)}),void 0,!1,!0).result}})},6507:(t,e,i)=>{i(23889)({target:"Set",stat:!0},{from:i(63842)})},93988:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(27623),o=i(13980),a=i(23775),h=i(7350),u=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{intersection:function(t){var e=o(this),i=new(h(e,s("Set"))),n=a(e.has),r=a(i.add);return u(t,(function(t){n.call(e,t)&&r.call(i,t)})),i}})},91755:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(23775),a=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{isDisjointFrom:function(t){var e=s(this),i=o(e.has);return!a(t,(function(t){if(!0===i.call(e,t))return a.stop()})).stopped}})},26883:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(27623),o=i(13980),a=i(23775),h=i(62389),u=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{isSubsetOf:function(t){var e=h(this),i=o(t),n=i.has;return"function"!=typeof n&&(i=new(s("Set"))(t),n=a(i.has)),!u(e,(function(t){if(!1===n.call(i,t))return u.stop()}),void 0,!1,!0).stopped}})},4999:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(23775),a=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{isSupersetOf:function(t){var e=s(this),i=o(e.has);return!a(t,(function(t){if(!1===i.call(e,t))return a.stop()})).stopped}})},4047:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(82091),a=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{join:function(t){var e=s(this),i=o(e),n=void 0===t?",":String(t),r=[];return a(i,r.push,r,!1,!0),r.join(n)}})},12407:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(27623),o=i(13980),a=i(23775),h=i(39181),u=i(7350),l=i(82091),c=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{map:function(t){var e=o(this),i=l(e),n=h(t,arguments.length>1?arguments[1]:void 0,3),r=new(u(e,s("Set"))),d=a(r.add);return c(i,(function(t){d.call(r,n(t,t,e))}),void 0,!1,!0),r}})},60201:(t,e,i)=>{i(23889)({target:"Set",stat:!0},{of:i(96089)})},73827:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(23775),a=i(82091),h=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{reduce:function(t){var e=s(this),i=a(e),n=arguments.length<2,r=n?void 0:arguments[1];if(o(t),h(i,(function(i){n?(n=!1,r=i):r=t(r,i,i,e)}),void 0,!1,!0),n)throw TypeError("Reduce of empty set with no initial value");return r}})},14424:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(13980),o=i(39181),a=i(82091),h=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{some:function(t){var e=s(this),i=a(e),n=o(t,arguments.length>1?arguments[1]:void 0,3);return h(i,(function(t){if(n(t,t,e))return h.stop()}),void 0,!1,!0).stopped}})},35456:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(27623),o=i(13980),a=i(23775),h=i(7350),u=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{symmetricDifference:function(t){var e=o(this),i=new(h(e,s("Set")))(e),n=a(i.delete),r=a(i.add);return u(t,(function(t){n.call(i,t)||r.call(i,t)})),i}})},11218:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(27623),o=i(13980),a=i(23775),h=i(7350),u=i(76808);n({target:"Set",proto:!0,real:!0,forced:r},{union:function(t){var e=o(this),i=new(h(e,s("Set")))(e);return u(t,a(i.add),i),i}})},46303:(t,e,i)=>{"use strict";var n=i(23889),r=i(17933).charAt;n({target:"String",proto:!0},{at:function(t){return r(this,t)}})},74735:(t,e,i)=>{"use strict";var n=i(23889),r=i(2395),s=i(86608),o=i(97030),a=i(17933),h=a.codeAt,u=a.charAt,l="String Iterator",c=o.set,d=o.getterFor(l),p=r((function(t){c(this,{type:l,string:t,index:0})}),"String",(function(){var t,e=d(this),i=e.string,n=e.index;return n>=i.length?{value:void 0,done:!0}:(t=u(i,n),e.index+=t.length,{value:{codePoint:h(t,0),position:n},done:!1})}));n({target:"String",proto:!0},{codePoints:function(){return new p(String(s(this)))}})},11890:(t,e,i)=>{i(28828)},19150:(t,e,i)=>{"use strict";var n=i(23889),r=i(86608),s=i(39376),o=i(21068),a=i(10548),h=i(51104),u=a("replace"),l=RegExp.prototype;n({target:"String",proto:!0},{replaceAll:function t(e,i){var n,a,c,d,p,f,m,v,g=r(this);if(null!=e){if((n=s(e))&&!~String(r("flags"in l?e.flags:o.call(e))).indexOf("g"))throw TypeError("`.replaceAll` does not allow non-global regexes");if(void 0!==(a=e[u]))return a.call(e,g,i);if(h&&n)return String(g).replace(e,i)}if(c=String(g),""===(d=String(e)))return t.call(c,/(?:)/g,i);if(p=c.split(d),"function"!=typeof i)return p.join(String(i));for(m=(f=p[0]).length,v=1;v<p.length;v++)f+=String(i(d,m,c)),m+=d.length+p[v].length,f+=p[v];return f}})},22399:(t,e,i)=>{i(62646)("asyncDispose")},55930:(t,e,i)=>{i(62646)("dispose")},57535:(t,e,i)=>{i(62646)("observable")},13177:(t,e,i)=>{i(62646)("patternMatch")},17654:(t,e,i)=>{i(62646)("replaceAll")},69663:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(84537);n({target:"WeakMap",proto:!0,real:!0,forced:r},{deleteAll:function(){return s.apply(this,arguments)}})},90331:(t,e,i)=>{i(23889)({target:"WeakMap",stat:!0},{from:i(63842)})},55093:(t,e,i)=>{i(23889)({target:"WeakMap",stat:!0},{of:i(96089)})},15517:(t,e,i)=>{"use strict";i(23889)({target:"WeakMap",proto:!0,real:!0,forced:i(51104)},{upsert:i(35913)})},6835:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(31553);n({target:"WeakSet",proto:!0,real:!0,forced:r},{addAll:function(){return s.apply(this,arguments)}})},88894:(t,e,i)=>{"use strict";var n=i(23889),r=i(51104),s=i(84537);n({target:"WeakSet",proto:!0,real:!0,forced:r},{deleteAll:function(){return s.apply(this,arguments)}})},22333:(t,e,i)=>{i(23889)({target:"WeakSet",stat:!0},{from:i(63842)})},50310:(t,e,i)=>{i(23889)({target:"WeakSet",stat:!0},{of:i(96089)})},40870:(t,e,i)=>{var n=i(33386),r=i(52889),s=i(64902),o=i(17182);for(var a in r){var h=n[a],u=h&&h.prototype;if(u&&u.forEach!==s)try{o(u,"forEach",s)}catch(t){u.forEach=s}}},21781:(t,e,i)=>{var n=i(33386),r=i(52889),s=i(41499),o=i(17182),a=i(10548),h=a("iterator"),u=a("toStringTag"),l=s.values;for(var c in r){var d=n[c],p=d&&d.prototype;if(p){if(p[h]!==l)try{o(p,h,l)}catch(t){p[h]=l}if(p[u]||o(p,u,c),r[c])for(var f in s)if(p[f]!==s[f])try{o(p,f,s[f])}catch(t){p[f]=s[f]}}}},79400:(t,e,i)=>{var n=i(23889),r=i(33386),s=i(39331);n({global:!0,bind:!0,enumerable:!0,forced:!r.setImmediate||!r.clearImmediate},{setImmediate:s.set,clearImmediate:s.clear})},62094:(t,e,i)=>{var n=i(23889),r=i(33386),s=i(65516),o=i(2178),a=r.process,h="process"==o(a);n({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function(t){var e=h&&a.domain;s(e?e.bind(t):t)}})},49473:(t,e,i)=>{var n=i(23889),r=i(33386),s=i(66499),o=[].slice,a=function(t){return function(e,i){var n=arguments.length>2,r=n?o.call(arguments,2):void 0;return t(n?function(){("function"==typeof e?e:Function(e)).apply(this,r)}:e,i)}};n({global:!0,bind:!0,forced:/MSIE .\./.test(s)},{setTimeout:a(r.setTimeout),setInterval:a(r.setInterval)})},30524:(t,e,i)=>{"use strict";i(41499);var n=i(23889),r=i(27623),s=i(80781),o=i(18957),a=i(11432),h=i(39893),u=i(2395),l=i(97030),c=i(31057),d=i(54585),p=i(39181),f=i(16385),m=i(13980),v=i(68580),g=i(37602),y=i(36846),_=i(62389),x=i(99683),b=i(10548),w=r("fetch"),T=r("Headers"),M=b("iterator"),S="URLSearchParams",E="URLSearchParamsIterator",L=l.set,A=l.getterFor(S),D=l.getterFor(E),P=/\+/g,C=Array(4),O=function(t){return C[t-1]||(C[t-1]=RegExp("((?:%[\\da-f]{2}){"+t+"})","gi"))},k=function(t){try{return decodeURIComponent(t)}catch(e){return t}},R=function(t){var e=t.replace(P," "),i=4;try{return decodeURIComponent(e)}catch(t){for(;i;)e=e.replace(O(i--),k);return e}},I=/[!'()~]|%20/g,Y={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},F=function(t){return Y[t]},N=function(t){return encodeURIComponent(t).replace(I,F)},B=function(t,e){if(e)for(var i,n,r=e.split("&"),s=0;s<r.length;)(i=r[s++]).length&&(n=i.split("="),t.push({key:R(n.shift()),value:R(n.join("="))}))},U=function(t){this.entries.length=0,B(this.entries,t)},j=function(t,e){if(t<e)throw TypeError("Not enough arguments")},H=u((function(t,e){L(this,{type:E,iterator:_(A(t).entries),kind:e})}),"Iterator",(function(){var t=D(this),e=t.kind,i=t.iterator.next(),n=i.value;return i.done||(i.value="keys"===e?n.key:"values"===e?n.value:[n.key,n.value]),i})),z=function(){c(this,z,S);var t,e,i,n,r,s,o,a,h,u=arguments.length>0?arguments[0]:void 0,l=this,p=[];if(L(l,{type:S,entries:p,updateURL:function(){},updateSearchParams:U}),void 0!==u)if(v(u))if("function"==typeof(t=x(u)))for(i=(e=t.call(u)).next;!(n=i.call(e)).done;){if((o=(s=(r=_(m(n.value))).next).call(r)).done||(a=s.call(r)).done||!s.call(r).done)throw TypeError("Expected sequence with length 2");p.push({key:o.value+"",value:a.value+""})}else for(h in u)d(u,h)&&p.push({key:h,value:u[h]+""});else B(p,"string"==typeof u?"?"===u.charAt(0)?u.slice(1):u:u+"")},W=z.prototype;a(W,{append:function(t,e){j(arguments.length,2);var i=A(this);i.entries.push({key:t+"",value:e+""}),i.updateURL()},delete:function(t){j(arguments.length,1);for(var e=A(this),i=e.entries,n=t+"",r=0;r<i.length;)i[r].key===n?i.splice(r,1):r++;e.updateURL()},get:function(t){j(arguments.length,1);for(var e=A(this).entries,i=t+"",n=0;n<e.length;n++)if(e[n].key===i)return e[n].value;return null},getAll:function(t){j(arguments.length,1);for(var e=A(this).entries,i=t+"",n=[],r=0;r<e.length;r++)e[r].key===i&&n.push(e[r].value);return n},has:function(t){j(arguments.length,1);for(var e=A(this).entries,i=t+"",n=0;n<e.length;)if(e[n++].key===i)return!0;return!1},set:function(t,e){j(arguments.length,1);for(var i,n=A(this),r=n.entries,s=!1,o=t+"",a=e+"",h=0;h<r.length;h++)(i=r[h]).key===o&&(s?r.splice(h--,1):(s=!0,i.value=a));s||r.push({key:o,value:a}),n.updateURL()},sort:function(){var t,e,i,n=A(this),r=n.entries,s=r.slice();for(r.length=0,i=0;i<s.length;i++){for(t=s[i],e=0;e<i;e++)if(r[e].key>t.key){r.splice(e,0,t);break}e===i&&r.push(t)}n.updateURL()},forEach:function(t){for(var e,i=A(this).entries,n=p(t,arguments.length>1?arguments[1]:void 0,3),r=0;r<i.length;)n((e=i[r++]).value,e.key,this)},keys:function(){return new H(this,"keys")},values:function(){return new H(this,"values")},entries:function(){return new H(this,"entries")}},{enumerable:!0}),o(W,M,W.entries),o(W,"toString",(function(){for(var t,e=A(this).entries,i=[],n=0;n<e.length;)t=e[n++],i.push(N(t.key)+"="+N(t.value));return i.join("&")}),{enumerable:!0}),h(z,S),n({global:!0,forced:!s},{URLSearchParams:z}),s||"function"!=typeof w||"function"!=typeof T||n({global:!0,enumerable:!0,forced:!0},{fetch:function(t){var e,i,n,r=[t];return arguments.length>1&&(v(e=arguments[1])&&(i=e.body,f(i)===S&&((n=e.headers?new T(e.headers):new T).has("content-type")||n.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),e=g(e,{body:y(0,String(i)),headers:y(0,n)}))),r.push(e)),w.apply(this,r)}}),t.exports={URLSearchParams:z,getState:A}},98636:(t,e,i)=>{"use strict";i(770);var n,r=i(23889),s=i(56617),o=i(80781),a=i(33386),h=i(23702),u=i(18957),l=i(31057),c=i(54585),d=i(98466),p=i(83601),f=i(17933).codeAt,m=i(32937),v=i(39893),g=i(30524),y=i(97030),_=a.URL,x=g.URLSearchParams,b=g.getState,w=y.set,T=y.getterFor("URL"),M=Math.floor,S=Math.pow,E="Invalid scheme",L="Invalid host",A="Invalid port",D=/[A-Za-z]/,P=/[\d+-.A-Za-z]/,C=/\d/,O=/^(0x|0X)/,k=/^[0-7]+$/,R=/^\d+$/,I=/^[\dA-Fa-f]+$/,Y=/[\u0000\u0009\u000A\u000D #%/:?@[\\]]/,F=/[\u0000\u0009\u000A\u000D #/:?@[\\]]/,N=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,B=/[\u0009\u000A\u000D]/g,U=function(t,e){var i,n,r;if("["==e.charAt(0)){if("]"!=e.charAt(e.length-1))return L;if(!(i=H(e.slice(1,-1))))return L;t.host=i}else if(Z(t)){if(e=m(e),Y.test(e))return L;if(null===(i=j(e)))return L;t.host=i}else{if(F.test(e))return L;for(i="",n=p(e),r=0;r<n.length;r++)i+=q(n[r],W);t.host=i}},j=function(t){var e,i,n,r,s,o,a,h=t.split(".");if(h.length&&""==h[h.length-1]&&h.pop(),(e=h.length)>4)return t;for(i=[],n=0;n<e;n++){if(""==(r=h[n]))return t;if(s=10,r.length>1&&"0"==r.charAt(0)&&(s=O.test(r)?16:8,r=r.slice(8==s?1:2)),""===r)o=0;else{if(!(10==s?R:8==s?k:I).test(r))return t;o=parseInt(r,s)}i.push(o)}for(n=0;n<e;n++)if(o=i[n],n==e-1){if(o>=S(256,5-e))return null}else if(o>255)return null;for(a=i.pop(),n=0;n<i.length;n++)a+=i[n]*S(256,3-n);return a},H=function(t){var e,i,n,r,s,o,a,h=[0,0,0,0,0,0,0,0],u=0,l=null,c=0,d=function(){return t.charAt(c)};if(":"==d()){if(":"!=t.charAt(1))return;c+=2,l=++u}for(;d();){if(8==u)return;if(":"!=d()){for(e=i=0;i<4&&I.test(d());)e=16*e+parseInt(d(),16),c++,i++;if("."==d()){if(0==i)return;if(c-=i,u>6)return;for(n=0;d();){if(r=null,n>0){if(!("."==d()&&n<4))return;c++}if(!C.test(d()))return;for(;C.test(d());){if(s=parseInt(d(),10),null===r)r=s;else{if(0==r)return;r=10*r+s}if(r>255)return;c++}h[u]=256*h[u]+r,2!=++n&&4!=n||u++}if(4!=n)return;break}if(":"==d()){if(c++,!d())return}else if(d())return;h[u++]=e}else{if(null!==l)return;c++,l=++u}}if(null!==l)for(o=u-l,u=7;0!=u&&o>0;)a=h[u],h[u--]=h[l+o-1],h[l+--o]=a;else if(8!=u)return;return h},z=function(t){var e,i,n,r;if("number"==typeof t){for(e=[],i=0;i<4;i++)e.unshift(t%256),t=M(t/256);return e.join(".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,i=1,n=null,r=0,s=0;s<8;s++)0!==t[s]?(r>i&&(e=n,i=r),n=null,r=0):(null===n&&(n=s),++r);return r>i&&(e=n,i=r),e}(t),i=0;i<8;i++)r&&0===t[i]||(r&&(r=!1),n===i?(e+=i?":":"::",r=!0):(e+=t[i].toString(16),i<7&&(e+=":")));return"["+e+"]"}return t},W={},G=d({},W,{" ":1,'"':1,"<":1,">":1,"`":1}),V=d({},G,{"#":1,"?":1,"{":1,"}":1}),X=d({},V,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),q=function(t,e){var i=f(t,0);return i>32&&i<127&&!c(e,t)?t:encodeURIComponent(t)},J={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Z=function(t){return c(J,t.scheme)},K=function(t){return""!=t.username||""!=t.password},Q=function(t){return!t.host||t.cannotBeABaseURL||"file"==t.scheme},$=function(t,e){var i;return 2==t.length&&D.test(t.charAt(0))&&(":"==(i=t.charAt(1))||!e&&"|"==i)},tt=function(t){var e;return t.length>1&&$(t.slice(0,2))&&(2==t.length||"/"===(e=t.charAt(2))||"\\"===e||"?"===e||"#"===e)},et=function(t){var e=t.path,i=e.length;!i||"file"==t.scheme&&1==i&&$(e[0],!0)||e.pop()},it=function(t){return"."===t||"%2e"===t.toLowerCase()},nt={},rt={},st={},ot={},at={},ht={},ut={},lt={},ct={},dt={},pt={},ft={},mt={},vt={},gt={},yt={},_t={},xt={},bt={},wt={},Tt={},Mt=function(t,e,i,r){var s,o,a,h,u,l=i||nt,d=0,f="",m=!1,v=!1,g=!1;for(i||(t.scheme="",t.username="",t.password="",t.host=null,t.port=null,t.path=[],t.query=null,t.fragment=null,t.cannotBeABaseURL=!1,e=e.replace(N,"")),e=e.replace(B,""),s=p(e);d<=s.length;){switch(o=s[d],l){case nt:if(!o||!D.test(o)){if(i)return E;l=st;continue}f+=o.toLowerCase(),l=rt;break;case rt:if(o&&(P.test(o)||"+"==o||"-"==o||"."==o))f+=o.toLowerCase();else{if(":"!=o){if(i)return E;f="",l=st,d=0;continue}if(i&&(Z(t)!=c(J,f)||"file"==f&&(K(t)||null!==t.port)||"file"==t.scheme&&!t.host))return;if(t.scheme=f,i)return void(Z(t)&&J[t.scheme]==t.port&&(t.port=null));f="","file"==t.scheme?l=vt:Z(t)&&r&&r.scheme==t.scheme?l=ot:Z(t)?l=lt:"/"==s[d+1]?(l=at,d++):(t.cannotBeABaseURL=!0,t.path.push(""),l=bt)}break;case st:if(!r||r.cannotBeABaseURL&&"#"!=o)return E;if(r.cannotBeABaseURL&&"#"==o){t.scheme=r.scheme,t.path=r.path.slice(),t.query=r.query,t.fragment="",t.cannotBeABaseURL=!0,l=Tt;break}l="file"==r.scheme?vt:ht;continue;case ot:if("/"!=o||"/"!=s[d+1]){l=ht;continue}l=ct,d++;break;case at:if("/"==o){l=dt;break}l=xt;continue;case ht:if(t.scheme=r.scheme,o==n)t.username=r.username,t.password=r.password,t.host=r.host,t.port=r.port,t.path=r.path.slice(),t.query=r.query;else if("/"==o||"\\"==o&&Z(t))l=ut;else if("?"==o)t.username=r.username,t.password=r.password,t.host=r.host,t.port=r.port,t.path=r.path.slice(),t.query="",l=wt;else{if("#"!=o){t.username=r.username,t.password=r.password,t.host=r.host,t.port=r.port,t.path=r.path.slice(),t.path.pop(),l=xt;continue}t.username=r.username,t.password=r.password,t.host=r.host,t.port=r.port,t.path=r.path.slice(),t.query=r.query,t.fragment="",l=Tt}break;case ut:if(!Z(t)||"/"!=o&&"\\"!=o){if("/"!=o){t.username=r.username,t.password=r.password,t.host=r.host,t.port=r.port,l=xt;continue}l=dt}else l=ct;break;case lt:if(l=ct,"/"!=o||"/"!=f.charAt(d+1))continue;d++;break;case ct:if("/"!=o&&"\\"!=o){l=dt;continue}break;case dt:if("@"==o){m&&(f="%40"+f),m=!0,a=p(f);for(var y=0;y<a.length;y++){var _=a[y];if(":"!=_||g){var x=q(_,X);g?t.password+=x:t.username+=x}else g=!0}f=""}else if(o==n||"/"==o||"?"==o||"#"==o||"\\"==o&&Z(t)){if(m&&""==f)return"Invalid authority";d-=p(f).length+1,f="",l=pt}else f+=o;break;case pt:case ft:if(i&&"file"==t.scheme){l=yt;continue}if(":"!=o||v){if(o==n||"/"==o||"?"==o||"#"==o||"\\"==o&&Z(t)){if(Z(t)&&""==f)return L;if(i&&""==f&&(K(t)||null!==t.port))return;if(h=U(t,f))return h;if(f="",l=_t,i)return;continue}"["==o?v=!0:"]"==o&&(v=!1),f+=o}else{if(""==f)return L;if(h=U(t,f))return h;if(f="",l=mt,i==ft)return}break;case mt:if(!C.test(o)){if(o==n||"/"==o||"?"==o||"#"==o||"\\"==o&&Z(t)||i){if(""!=f){var b=parseInt(f,10);if(b>65535)return A;t.port=Z(t)&&b===J[t.scheme]?null:b,f=""}if(i)return;l=_t;continue}return A}f+=o;break;case vt:if(t.scheme="file","/"==o||"\\"==o)l=gt;else{if(!r||"file"!=r.scheme){l=xt;continue}if(o==n)t.host=r.host,t.path=r.path.slice(),t.query=r.query;else if("?"==o)t.host=r.host,t.path=r.path.slice(),t.query="",l=wt;else{if("#"!=o){tt(s.slice(d).join(""))||(t.host=r.host,t.path=r.path.slice(),et(t)),l=xt;continue}t.host=r.host,t.path=r.path.slice(),t.query=r.query,t.fragment="",l=Tt}}break;case gt:if("/"==o||"\\"==o){l=yt;break}r&&"file"==r.scheme&&!tt(s.slice(d).join(""))&&($(r.path[0],!0)?t.path.push(r.path[0]):t.host=r.host),l=xt;continue;case yt:if(o==n||"/"==o||"\\"==o||"?"==o||"#"==o){if(!i&&$(f))l=xt;else if(""==f){if(t.host="",i)return;l=_t}else{if(h=U(t,f))return h;if("localhost"==t.host&&(t.host=""),i)return;f="",l=_t}continue}f+=o;break;case _t:if(Z(t)){if(l=xt,"/"!=o&&"\\"!=o)continue}else if(i||"?"!=o)if(i||"#"!=o){if(o!=n&&(l=xt,"/"!=o))continue}else t.fragment="",l=Tt;else t.query="",l=wt;break;case xt:if(o==n||"/"==o||"\\"==o&&Z(t)||!i&&("?"==o||"#"==o)){if(".."===(u=(u=f).toLowerCase())||"%2e."===u||".%2e"===u||"%2e%2e"===u?(et(t),"/"==o||"\\"==o&&Z(t)||t.path.push("")):it(f)?"/"==o||"\\"==o&&Z(t)||t.path.push(""):("file"==t.scheme&&!t.path.length&&$(f)&&(t.host&&(t.host=""),f=f.charAt(0)+":"),t.path.push(f)),f="","file"==t.scheme&&(o==n||"?"==o||"#"==o))for(;t.path.length>1&&""===t.path[0];)t.path.shift();"?"==o?(t.query="",l=wt):"#"==o&&(t.fragment="",l=Tt)}else f+=q(o,V);break;case bt:"?"==o?(t.query="",l=wt):"#"==o?(t.fragment="",l=Tt):o!=n&&(t.path[0]+=q(o,W));break;case wt:i||"#"!=o?o!=n&&("'"==o&&Z(t)?t.query+="%27":t.query+="#"==o?"%23":q(o,W)):(t.fragment="",l=Tt);break;case Tt:o!=n&&(t.fragment+=q(o,G))}d++}},St=function(t){var e,i,n=l(this,St,"URL"),r=arguments.length>1?arguments[1]:void 0,o=String(t),a=w(n,{type:"URL"});if(void 0!==r)if(r instanceof St)e=T(r);else if(i=Mt(e={},String(r)))throw TypeError(i);if(i=Mt(a,o,null,e))throw TypeError(i);var h=a.searchParams=new x,u=b(h);u.updateSearchParams(a.query),u.updateURL=function(){a.query=String(h)||null},s||(n.href=Lt.call(n),n.origin=At.call(n),n.protocol=Dt.call(n),n.username=Pt.call(n),n.password=Ct.call(n),n.host=Ot.call(n),n.hostname=kt.call(n),n.port=Rt.call(n),n.pathname=It.call(n),n.search=Yt.call(n),n.searchParams=Ft.call(n),n.hash=Nt.call(n))},Et=St.prototype,Lt=function(){var t=T(this),e=t.scheme,i=t.username,n=t.password,r=t.host,s=t.port,o=t.path,a=t.query,h=t.fragment,u=e+":";return null!==r?(u+="//",K(t)&&(u+=i+(n?":"+n:"")+"@"),u+=z(r),null!==s&&(u+=":"+s)):"file"==e&&(u+="//"),u+=t.cannotBeABaseURL?o[0]:o.length?"/"+o.join("/"):"",null!==a&&(u+="?"+a),null!==h&&(u+="#"+h),u},At=function(){var t=T(this),e=t.scheme,i=t.port;if("blob"==e)try{return new URL(e.path[0]).origin}catch(t){return"null"}return"file"!=e&&Z(t)?e+"://"+z(t.host)+(null!==i?":"+i:""):"null"},Dt=function(){return T(this).scheme+":"},Pt=function(){return T(this).username},Ct=function(){return T(this).password},Ot=function(){var t=T(this),e=t.host,i=t.port;return null===e?"":null===i?z(e):z(e)+":"+i},kt=function(){var t=T(this).host;return null===t?"":z(t)},Rt=function(){var t=T(this).port;return null===t?"":String(t)},It=function(){var t=T(this),e=t.path;return t.cannotBeABaseURL?e[0]:e.length?"/"+e.join("/"):""},Yt=function(){var t=T(this).query;return t?"?"+t:""},Ft=function(){return T(this).searchParams},Nt=function(){var t=T(this).fragment;return t?"#"+t:""},Bt=function(t,e){return{get:t,set:e,configurable:!0,enumerable:!0}};if(s&&h(Et,{href:Bt(Lt,(function(t){var e=T(this),i=String(t),n=Mt(e,i);if(n)throw TypeError(n);b(e.searchParams).updateSearchParams(e.query)})),origin:Bt(At),protocol:Bt(Dt,(function(t){var e=T(this);Mt(e,String(t)+":",nt)})),username:Bt(Pt,(function(t){var e=T(this),i=p(String(t));if(!Q(e)){e.username="";for(var n=0;n<i.length;n++)e.username+=q(i[n],X)}})),password:Bt(Ct,(function(t){var e=T(this),i=p(String(t));if(!Q(e)){e.password="";for(var n=0;n<i.length;n++)e.password+=q(i[n],X)}})),host:Bt(Ot,(function(t){var e=T(this);e.cannotBeABaseURL||Mt(e,String(t),pt)})),hostname:Bt(kt,(function(t){var e=T(this);e.cannotBeABaseURL||Mt(e,String(t),ft)})),port:Bt(Rt,(function(t){var e=T(this);Q(e)||(""==(t=String(t))?e.port=null:Mt(e,t,mt))})),pathname:Bt(It,(function(t){var e=T(this);e.cannotBeABaseURL||(e.path=[],Mt(e,t+"",_t))})),search:Bt(Yt,(function(t){var e=T(this);""==(t=String(t))?e.query=null:("?"==t.charAt(0)&&(t=t.slice(1)),e.query="",Mt(e,t,wt)),b(e.searchParams).updateSearchParams(e.query)})),searchParams:Bt(Ft),hash:Bt(Nt,(function(t){var e=T(this);""!=(t=String(t))?("#"==t.charAt(0)&&(t=t.slice(1)),e.fragment="",Mt(e,t,Tt)):e.fragment=null}))}),u(Et,"toJSON",(function(){return Lt.call(this)}),{enumerable:!0}),u(Et,"toString",(function(){return Lt.call(this)}),{enumerable:!0}),_){var Ut=_.createObjectURL,jt=_.revokeObjectURL;Ut&&u(St,"createObjectURL",(function(t){return Ut.apply(_,arguments)})),jt&&u(St,"revokeObjectURL",(function(t){return jt.apply(_,arguments)}))}v(St,"URL"),r({global:!0,forced:!o,sham:!s},{URL:St})},67652:(t,e,i)=>{"use strict";i(23889)({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return URL.prototype.toString.call(this)}})},21562:(t,e,i)=>{i(65071)},24460:(t,e,i)=>{i(78843),i(62274)},84369:(t,e,i)=>{i(69795),i(53976),i(86779),i(20240),i(15201),i(20880),i(20981),i(40137),i(15240),i(79286),i(23574),i(32931),i(11924),i(10435),i(39316),i(66169),i(75295),i(77280),i(56409),i(33041),i(4047),i(12407),i(73827),i(14424),i(69663),i(6835),i(88894)},44283:(t,e,i)=>{i(98871),i(98983),i(6507),i(60201),i(90331),i(55093),i(22333),i(50310)},19880:(t,e,i)=>{i(10464),i(15434),i(63562),i(36823)},34128:(t,e,i)=>{i(63101);var n=i(33386);t.exports=n},72368:(t,e,i)=>{i(11652)},14529:(t,e,i)=>{i(48614),i(10717),i(6847),i(16348),i(349),i(96653),i(27646),i(56978),i(1996),i(517),i(51811),i(30580),i(6839),i(24837),i(7902),i(85750),i(53866),i(81192),i(13193),i(12122),i(4780),i(78496),i(25420),i(23451),i(90430),i(7857),i(67942),i(65499)},13868:(t,e,i)=>{i(95327),i(22401)},31064:(t,e,i)=>{i(62469),i(83830),i(15517)},99526:(t,e,i)=>{i(50946),i(89119),i(91996),i(65916),i(98013),i(3172),i(63566)},33613:(t,e,i)=>{i(37726)},20385:(t,e,i)=>{i(79708)},54554:(t,e,i)=>{i(6884),i(39682),i(8069)},1202:(t,e,i)=>{i(30138),i(57535)},79586:(t,e,i)=>{i(13177)},93784:(t,e,i)=>{i(3254)},22350:(t,e,i)=>{i(45633),i(87589)},76635:(t,e,i)=>{i(77304)},7318:(t,e,i)=>{i(38536),i(83452),i(62616),i(66881),i(58173),i(40754),i(15100),i(40969),i(76247)},35360:(t,e,i)=>{i(41876)},68814:(t,e,i)=>{i(59070),i(93988),i(91755),i(26883),i(4999),i(11218),i(35456)},28603:(t,e,i)=>{i(46303)},9201:(t,e,i)=>{i(74735)},46746:(t,e,i)=>{i(11890)},83839:(t,e,i)=>{i(19150),i(17654)},2314:(t,e,i)=>{i(98636),i(67652),i(30524)},9481:(t,e,i)=>{i(22399),i(55930)},20717:(t,e,i)=>{i(19880),i(28603),i(2314);var n=i(75448);t.exports=n},75448:(t,e,i)=>{i(24460),i(84369),i(44283),i(13868),i(99526),i(33613),i(20385),i(54554),i(1202),i(79586),i(76635),i(35360),i(9201);var n=i(88550);t.exports=n},88550:(t,e,i)=>{i(21562),i(14529),i(31064),i(68814),i(9481);var n=i(60515);t.exports=n},60515:(t,e,i)=>{i(22350),i(83839);var n=i(4636);t.exports=n},4636:(t,e,i)=>{i(34128),i(93784),i(46746);var n=i(29467);t.exports=n},11652:(t,e,i)=>{var n=i(63863);t.exports=n},63863:(t,e,i)=>{i(7318);var n=i(20717);t.exports=n},83582:(t,e,i)=>{i(40870),i(21781),i(79400),i(62094),i(49473),i(98636),i(67652),i(30524);var n=i(29467);t.exports=n},8799:t=>{"use strict";function e(t,e,s){s=s||2;var o,a,h,c,d,f,m,v=e&&e.length,g=v?e[0]*s:t.length,y=i(t,0,g,s,!0),_=[];if(!y||y.next===y.prev)return _;if(v&&(y=function(t,e,r,s){var o,a,h,c=[];for(o=0,a=e.length;o<a;o++)(h=i(t,e[o]*s,o<a-1?e[o+1]*s:t.length,s,!1))===h.next&&(h.steiner=!0),c.push(p(h));for(c.sort(u),o=0;o<c.length;o++)l(c[o],r),r=n(r,r.next);return r}(t,e,y,s)),t.length>80*s){o=h=t[0],a=c=t[1];for(var x=s;x<g;x+=s)(d=t[x])<o&&(o=d),(f=t[x+1])<a&&(a=f),d>h&&(h=d),f>c&&(c=f);m=0!==(m=Math.max(h-o,c-a))?1/m:0}return r(y,_,s,o,a,m),_}function i(t,e,i,n,r){var s,o;if(r===E(t,e,i,n)>0)for(s=e;s<i;s+=n)o=T(s,t[s],t[s+1],o);else for(s=i-n;s>=e;s-=n)o=T(s,t[s],t[s+1],o);return o&&g(o,o.next)&&(M(o),o=o.next),o}function n(t,e){if(!t)return t;e||(e=t);var i,n=t;do{if(i=!1,n.steiner||!g(n,n.next)&&0!==v(n.prev,n,n.next))n=n.next;else{if(M(n),(n=e=n.prev)===n.next)break;i=!0}}while(i||n!==e);return e}function r(t,e,i,u,l,c,p){if(t){!p&&c&&function(t,e,i,n){var r=t;do{null===r.z&&(r.z=d(r.x,r.y,e,i,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){var e,i,n,r,s,o,a,h,u=1;do{for(i=t,t=null,s=null,o=0;i;){for(o++,n=i,a=0,e=0;e<u&&(a++,n=n.nextZ);e++);for(h=u;a>0||h>0&&n;)0!==a&&(0===h||!n||i.z<=n.z)?(r=i,i=i.nextZ,a--):(r=n,n=n.nextZ,h--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;i=n}s.nextZ=null,u*=2}while(o>1)}(r)}(t,u,l,c);for(var f,m,v=t;t.prev!==t.next;)if(f=t.prev,m=t.next,c?o(t,u,l,c):s(t))e.push(f.i/i),e.push(t.i/i),e.push(m.i/i),M(t),t=m.next,v=m.next;else if((t=m)===v){p?1===p?r(t=a(n(t),e,i),e,i,u,l,c,2):2===p&&h(t,e,i,u,l,c):r(n(t),e,i,u,l,c,1);break}}}function s(t){var e=t.prev,i=t,n=t.next;if(v(e,i,n)>=0)return!1;for(var r=t.next.next;r!==t.prev;){if(f(e.x,e.y,i.x,i.y,n.x,n.y,r.x,r.y)&&v(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function o(t,e,i,n){var r=t.prev,s=t,o=t.next;if(v(r,s,o)>=0)return!1;for(var a=r.x<s.x?r.x<o.x?r.x:o.x:s.x<o.x?s.x:o.x,h=r.y<s.y?r.y<o.y?r.y:o.y:s.y<o.y?s.y:o.y,u=r.x>s.x?r.x>o.x?r.x:o.x:s.x>o.x?s.x:o.x,l=r.y>s.y?r.y>o.y?r.y:o.y:s.y>o.y?s.y:o.y,c=d(a,h,e,i,n),p=d(u,l,e,i,n),m=t.prevZ,g=t.nextZ;m&&m.z>=c&&g&&g.z<=p;){if(m!==t.prev&&m!==t.next&&f(r.x,r.y,s.x,s.y,o.x,o.y,m.x,m.y)&&v(m.prev,m,m.next)>=0)return!1;if(m=m.prevZ,g!==t.prev&&g!==t.next&&f(r.x,r.y,s.x,s.y,o.x,o.y,g.x,g.y)&&v(g.prev,g,g.next)>=0)return!1;g=g.nextZ}for(;m&&m.z>=c;){if(m!==t.prev&&m!==t.next&&f(r.x,r.y,s.x,s.y,o.x,o.y,m.x,m.y)&&v(m.prev,m,m.next)>=0)return!1;m=m.prevZ}for(;g&&g.z<=p;){if(g!==t.prev&&g!==t.next&&f(r.x,r.y,s.x,s.y,o.x,o.y,g.x,g.y)&&v(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function a(t,e,i){var r=t;do{var s=r.prev,o=r.next.next;!g(s,o)&&y(s,r,r.next,o)&&b(s,o)&&b(o,s)&&(e.push(s.i/i),e.push(r.i/i),e.push(o.i/i),M(r),M(r.next),r=t=o),r=r.next}while(r!==t);return n(r)}function h(t,e,i,s,o,a){var h=t;do{for(var u=h.next.next;u!==h.prev;){if(h.i!==u.i&&m(h,u)){var l=w(h,u);return h=n(h,h.next),l=n(l,l.next),r(h,e,i,s,o,a),void r(l,e,i,s,o,a)}u=u.next}h=h.next}while(h!==t)}function u(t,e){return t.x-e.x}function l(t,e){if(e=function(t,e){var i,n=e,r=t.x,s=t.y,o=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){var a=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=r&&a>o){if(o=a,a===r){if(s===n.y)return n;if(s===n.next.y)return n.next}i=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!i)return null;if(r===o)return i;var h,u=i,l=i.x,d=i.y,p=1/0;n=i;do{r>=n.x&&n.x>=l&&r!==n.x&&f(s<d?r:o,s,l,d,s<d?o:r,s,n.x,n.y)&&(h=Math.abs(s-n.y)/(r-n.x),b(n,t)&&(h<p||h===p&&(n.x>i.x||n.x===i.x&&c(i,n)))&&(i=n,p=h)),n=n.next}while(n!==u);return i}(t,e)){var i=w(e,t);n(e,e.next),n(i,i.next)}}function c(t,e){return v(t.prev,t,e.prev)<0&&v(e.next,t,t.next)<0}function d(t,e,i,n,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-i)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function p(t){var e=t,i=t;do{(e.x<i.x||e.x===i.x&&e.y<i.y)&&(i=e),e=e.next}while(e!==t);return i}function f(t,e,i,n,r,s,o,a){return(r-o)*(e-a)-(t-o)*(s-a)>=0&&(t-o)*(n-a)-(i-o)*(e-a)>=0&&(i-o)*(s-a)-(r-o)*(n-a)>=0}function m(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&y(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}(t,e)&&(b(t,e)&&b(e,t)&&function(t,e){var i=t,n=!1,r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&r<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(n=!n),i=i.next}while(i!==t);return n}(t,e)&&(v(t.prev,t,e.prev)||v(t,e.prev,e))||g(t,e)&&v(t.prev,t,t.next)>0&&v(e.prev,e,e.next)>0)}function v(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function g(t,e){return t.x===e.x&&t.y===e.y}function y(t,e,i,n){var r=x(v(t,e,i)),s=x(v(t,e,n)),o=x(v(i,n,t)),a=x(v(i,n,e));return r!==s&&o!==a||(!(0!==r||!_(t,i,e))||(!(0!==s||!_(t,n,e))||(!(0!==o||!_(i,t,n))||!(0!==a||!_(i,e,n)))))}function _(t,e,i){return e.x<=Math.max(t.x,i.x)&&e.x>=Math.min(t.x,i.x)&&e.y<=Math.max(t.y,i.y)&&e.y>=Math.min(t.y,i.y)}function x(t){return t>0?1:t<0?-1:0}function b(t,e){return v(t.prev,t,t.next)<0?v(t,e,t.next)>=0&&v(t,t.prev,e)>=0:v(t,e,t.prev)<0||v(t,t.next,e)<0}function w(t,e){var i=new S(t.i,t.x,t.y),n=new S(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,i.next=r,r.prev=i,n.next=i,i.prev=n,s.next=n,n.prev=s,n}function T(t,e,i,n){var r=new S(t,e,i);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function M(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function S(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function E(t,e,i,n){for(var r=0,s=e,o=i-n;s<i;s+=n)r+=(t[o]-t[s])*(t[s+1]+t[o+1]),o=s;return r}t.exports=e,t.exports.default=e,e.deviation=function(t,e,i,n){var r=e&&e.length,s=r?e[0]*i:t.length,o=Math.abs(E(t,0,s,i));if(r)for(var a=0,h=e.length;a<h;a++){var u=e[a]*i,l=a<h-1?e[a+1]*i:t.length;o-=Math.abs(E(t,u,l,i))}var c=0;for(a=0;a<n.length;a+=3){var d=n[a]*i,p=n[a+1]*i,f=n[a+2]*i;c+=Math.abs((t[d]-t[f])*(t[p+1]-t[d+1])-(t[d]-t[p])*(t[f+1]-t[d+1]))}return 0===o&&0===c?0:Math.abs((c-o)/o)},e.flatten=function(t){for(var e=t[0][0].length,i={vertices:[],holes:[],dimensions:e},n=0,r=0;r<t.length;r++){for(var s=0;s<t[r].length;s++)for(var o=0;o<e;o++)i.vertices.push(t[r][s][o]);r>0&&(n+=t[r-1].length,i.holes.push(n))}return i}},17583:function(t,e,i){var n;!function(r){var s=r.Promise,o=s&&"resolve"in s&&"reject"in s&&"all"in s&&"race"in s&&function(){var t;return new s((function(e){t=e})),"function"==typeof t}();e?(e.Promise=o?s:E,e.Polyfill=E):void 0===(n=function(){return o?s:E}.call(e,i,e,t))||(t.exports=n);var a="pending",h="sealed",u="fulfilled",l="rejected",c=function(){};function d(t){return"[object Array]"===Object.prototype.toString.call(t)}var p,f="undefined"!=typeof setImmediate?setImmediate:setTimeout,m=[];function v(){for(var t=0;t<m.length;t++)m[t][0](m[t][1]);m=[],p=!1}function g(t,e){m.push([t,e]),p||(p=!0,f(v,0))}function y(t){var e=t.owner,i=e.state_,n=e.data_,r=t[i],s=t.then;if("function"==typeof r){i=u;try{n=r(n)}catch(t){w(s,t)}}_(s,n)||(i===u&&x(s,n),i===l&&w(s,n))}function _(t,e){var i;try{if(t===e)throw new TypeError("A promises callback cannot return that same promise.");if(e&&("function"==typeof e||"object"==typeof e)){var n=e.then;if("function"==typeof n)return n.call(e,(function(n){i||(i=!0,e!==n?x(t,n):b(t,n))}),(function(e){i||(i=!0,w(t,e))})),!0}}catch(e){return i||w(t,e),!0}return!1}function x(t,e){t!==e&&_(t,e)||b(t,e)}function b(t,e){t.state_===a&&(t.state_=h,t.data_=e,g(M,t))}function w(t,e){t.state_===a&&(t.state_=h,t.data_=e,g(S,t))}function T(t){var e=t.then_;t.then_=void 0;for(var i=0;i<e.length;i++)y(e[i])}function M(t){t.state_=u,T(t)}function S(t){t.state_=l,T(t)}function E(t){if("function"!=typeof t)throw new TypeError("Promise constructor takes a function argument");if(this instanceof E==!1)throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this.then_=[],function(t,e){function i(t){w(e,t)}try{t((function(t){x(e,t)}),i)}catch(t){i(t)}}(t,this)}E.prototype={constructor:E,state_:a,then_:null,data_:void 0,then:function(t,e){var i={owner:this,then:new this.constructor(c),fulfilled:t,rejected:e};return this.state_===u||this.state_===l?g(y,i):this.then_.push(i),i.then},catch:function(t){return this.then(null,t)}},E.all=function(t){if(!d(t))throw new TypeError("You must pass an array to Promise.all().");return new this((function(e,i){var n=[],r=0;function s(t){return r++,function(i){n[t]=i,--r||e(n)}}for(var o,a=0;a<t.length;a++)(o=t[a])&&"function"==typeof o.then?o.then(s(a),i):n[a]=o;r||e(n)}))},E.race=function(t){if(!d(t))throw new TypeError("You must pass an array to Promise.race().");return new this((function(e,i){for(var n,r=0;r<t.length;r++)(n=t[r])&&"function"==typeof n.then?n.then(e,i):e(n)}))},E.resolve=function(t){return t&&"object"==typeof t&&t.constructor===this?t:new this((function(e){e(t)}))},E.reject=function(t){return new this((function(e,i){i(t)}))}}("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this)},17168:t=>{"use strict";var e=Object.prototype.hasOwnProperty,i="~";function n(){}function r(t,e,i){this.fn=t,this.context=e,this.once=i||!1}function s(t,e,n,s,o){if("function"!=typeof n)throw new TypeError("The listener must be a function");var a=new r(n,s||t,o),h=i?i+e:e;return t._events[h]?t._events[h].fn?t._events[h]=[t._events[h],a]:t._events[h].push(a):(t._events[h]=a,t._eventsCount++),t}function o(t,e){0==--t._eventsCount?t._events=new n:delete t._events[e]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(i=!1)),a.prototype.eventNames=function(){var t,n,r=[];if(0===this._eventsCount)return r;for(n in t=this._events)e.call(t,n)&&r.push(i?n.slice(1):n);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(t)):r},a.prototype.listeners=function(t){var e=i?i+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var r=0,s=n.length,o=new Array(s);r<s;r++)o[r]=n[r].fn;return o},a.prototype.listenerCount=function(t){var e=i?i+t:t,n=this._events[e];return n?n.fn?1:n.length:0},a.prototype.emit=function(t,e,n,r,s,o){var a=i?i+t:t;if(!this._events[a])return!1;var h,u,l=this._events[a],c=arguments.length;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),c){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,n),!0;case 4:return l.fn.call(l.context,e,n,r),!0;case 5:return l.fn.call(l.context,e,n,r,s),!0;case 6:return l.fn.call(l.context,e,n,r,s,o),!0}for(u=1,h=new Array(c-1);u<c;u++)h[u-1]=arguments[u];l.fn.apply(l.context,h)}else{var d,p=l.length;for(u=0;u<p;u++)switch(l[u].once&&this.removeListener(t,l[u].fn,void 0,!0),c){case 1:l[u].fn.call(l[u].context);break;case 2:l[u].fn.call(l[u].context,e);break;case 3:l[u].fn.call(l[u].context,e,n);break;case 4:l[u].fn.call(l[u].context,e,n,r);break;default:if(!h)for(d=1,h=new Array(c-1);d<c;d++)h[d-1]=arguments[d];l[u].fn.apply(l[u].context,h)}}return!0},a.prototype.on=function(t,e,i){return s(this,t,e,i,!1)},a.prototype.once=function(t,e,i){return s(this,t,e,i,!0)},a.prototype.removeListener=function(t,e,n,r){var s=i?i+t:t;if(!this._events[s])return this;if(!e)return o(this,s),this;var a=this._events[s];if(a.fn)a.fn!==e||r&&!a.once||n&&a.context!==n||o(this,s);else{for(var h=0,u=[],l=a.length;h<l;h++)(a[h].fn!==e||r&&!a[h].once||n&&a[h].context!==n)&&u.push(a[h]);u.length?this._events[s]=1===u.length?u[0]:u:o(this,s)}return this},a.prototype.removeAllListeners=function(t){var e;return t?(e=i?i+t:t,this._events[e]&&o(this,e)):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=i,a.EventEmitter=a,t.exports=a},75586:function(t,e){var i;!function(e,i){"use strict";"object"==typeof t.exports?t.exports=e.document?i(e,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return i(t)}:i(e)}("undefined"!=typeof window?window:this,(function(n,r){"use strict";var s=[],o=Object.getPrototypeOf,a=s.slice,h=s.flat?function(t){return s.flat.call(t)}:function(t){return s.concat.apply([],t)},u=s.push,l=s.indexOf,c={},d=c.toString,p=c.hasOwnProperty,f=p.toString,m=f.call(Object),v={},g=function(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function(t){return null!=t&&t===t.window},_=n.document,x={type:!0,src:!0,nonce:!0,noModule:!0};function b(t,e,i){var n,r,s=(i=i||_).createElement("script");if(s.text=t,e)for(n in x)(r=e[n]||e.getAttribute&&e.getAttribute(n))&&s.setAttribute(n,r);i.head.appendChild(s).parentNode.removeChild(s)}function w(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?c[d.call(t)]||"object":typeof t}var T="3.5.0",M=function(t,e){return new M.fn.init(t,e)};function S(t){var e=!!t&&"length"in t&&t.length,i=w(t);return!g(t)&&!y(t)&&("array"===i||0===e||"number"==typeof e&&e>0&&e-1 in t)}M.fn=M.prototype={jquery:T,constructor:M,length:0,toArray:function(){return a.call(this)},get:function(t){return null==t?a.call(this):t<0?this[t+this.length]:this[t]},pushStack:function(t){var e=M.merge(this.constructor(),t);return e.prevObject=this,e},each:function(t){return M.each(this,t)},map:function(t){return this.pushStack(M.map(this,(function(e,i){return t.call(e,i,e)})))},slice:function(){return this.pushStack(a.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(M.grep(this,(function(t,e){return(e+1)%2})))},odd:function(){return this.pushStack(M.grep(this,(function(t,e){return e%2})))},eq:function(t){var e=this.length,i=+t+(t<0?e:0);return this.pushStack(i>=0&&i<e?[this[i]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:s.sort,splice:s.splice},M.extend=M.fn.extend=function(){var t,e,i,n,r,s,o=arguments[0]||{},a=1,h=arguments.length,u=!1;for("boolean"==typeof o&&(u=o,o=arguments[a]||{},a++),"object"==typeof o||g(o)||(o={}),a===h&&(o=this,a--);a<h;a++)if(null!=(t=arguments[a]))for(e in t)n=t[e],"__proto__"!==e&&o!==n&&(u&&n&&(M.isPlainObject(n)||(r=Array.isArray(n)))?(i=o[e],s=r&&!Array.isArray(i)?[]:r||M.isPlainObject(i)?i:{},r=!1,o[e]=M.extend(u,s,n)):void 0!==n&&(o[e]=n));return o},M.extend({expando:"jQuery"+(T+Math.random()).replace(/\D/g,""),isReady:!0,error:function(t){throw new Error(t)},noop:function(){},isPlainObject:function(t){var e,i;return!(!t||"[object Object]"!==d.call(t))&&(!(e=o(t))||"function"==typeof(i=p.call(e,"constructor")&&e.constructor)&&f.call(i)===m)},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},globalEval:function(t,e,i){b(t,{nonce:e&&e.nonce},i)},each:function(t,e){var i,n=0;if(S(t))for(i=t.length;n<i&&!1!==e.call(t[n],n,t[n]);n++);else for(n in t)if(!1===e.call(t[n],n,t[n]))break;return t},makeArray:function(t,e){var i=e||[];return null!=t&&(S(Object(t))?M.merge(i,"string"==typeof t?[t]:t):u.call(i,t)),i},inArray:function(t,e,i){return null==e?-1:l.call(e,t,i)},merge:function(t,e){for(var i=+e.length,n=0,r=t.length;n<i;n++)t[r++]=e[n];return t.length=r,t},grep:function(t,e,i){for(var n=[],r=0,s=t.length,o=!i;r<s;r++)!e(t[r],r)!==o&&n.push(t[r]);return n},map:function(t,e,i){var n,r,s=0,o=[];if(S(t))for(n=t.length;s<n;s++)null!=(r=e(t[s],s,i))&&o.push(r);else for(s in t)null!=(r=e(t[s],s,i))&&o.push(r);return h(o)},guid:1,support:v}),"function"==typeof Symbol&&(M.fn[Symbol.iterator]=s[Symbol.iterator]),M.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),(function(t,e){c["[object "+e+"]"]=e.toLowerCase()}));var E=function(t){var e,i,n,r,s,o,a,h,u,l,c,d,p,f,m,v,g,y,_,x="sizzle"+1*new Date,b=t.document,w=0,T=0,M=ht(),S=ht(),E=ht(),L=ht(),A=function(t,e){return t===e&&(c=!0),0},D={}.hasOwnProperty,P=[],C=P.pop,O=P.push,k=P.push,R=P.slice,I=function(t,e){for(var i=0,n=t.length;i<n;i++)if(t[i]===e)return i;return-1},Y="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",F="[\\x20\\t\\r\\n\\f]",N="(?:\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",B="\\[[\\x20\\t\\r\\n\\f]*("+N+")(?:"+F+"*([*^$|!~]?=)"+F+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+F+"*\\]",U=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+B+")*)|.*)\\)|)",j=new RegExp(F+"+","g"),H=new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$","g"),z=new RegExp("^[\\x20\\t\\r\\n\\f]*,[\\x20\\t\\r\\n\\f]*"),W=new RegExp("^[\\x20\\t\\r\\n\\f]*([>+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"),G=new RegExp(F+"|>"),V=new RegExp(U),X=new RegExp("^"+N+"$"),q={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+U),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),bool:new RegExp("^(?:"+Y+")$","i"),needsContext:new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)","i")},J=/HTML$/i,Z=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,tt=/[+~]/,et=new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])","g"),it=function(t,e){var i="0x"+t.slice(1)-65536;return e||(i<0?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320))},nt=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,rt=function(t,e){return e?"\0"===t?"\ufffd":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},st=function(){d()},ot=xt((function(t){return!0===t.disabled&&"fieldset"===t.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{k.apply(P=R.call(b.childNodes),b.childNodes),P[b.childNodes.length].nodeType}catch(t){k={apply:P.length?function(t,e){O.apply(t,R.call(e))}:function(t,e){for(var i=t.length,n=0;t[i++]=e[n++];);t.length=i-1}}}function at(t,e,n,r){var s,a,u,l,c,f,g,y=e&&e.ownerDocument,b=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==b&&9!==b&&11!==b)return n;if(!r&&(d(e),e=e||p,m)){if(11!==b&&(c=$.exec(t)))if(s=c[1]){if(9===b){if(!(u=e.getElementById(s)))return n;if(u.id===s)return n.push(u),n}else if(y&&(u=y.getElementById(s))&&_(e,u)&&u.id===s)return n.push(u),n}else{if(c[2])return k.apply(n,e.getElementsByTagName(t)),n;if((s=c[3])&&i.getElementsByClassName&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(s)),n}if(i.qsa&&!L[t+" "]&&(!v||!v.test(t))&&(1!==b||"object"!==e.nodeName.toLowerCase())){if(g=t,y=e,1===b&&(G.test(t)||W.test(t))){for((y=tt.test(t)&>(e.parentNode)||e)===e&&i.scope||((l=e.getAttribute("id"))?l=l.replace(nt,rt):e.setAttribute("id",l=x)),a=(f=o(t)).length;a--;)f[a]=(l?"#"+l:":scope")+" "+_t(f[a]);g=f.join(",")}try{return k.apply(n,y.querySelectorAll(g)),n}catch(e){L(t,!0)}finally{l===x&&e.removeAttribute("id")}}}return h(t.replace(H,"$1"),e,n,r)}function ht(){var t=[];return function e(i,r){return t.push(i+" ")>n.cacheLength&&delete e[t.shift()],e[i+" "]=r}}function ut(t){return t[x]=!0,t}function lt(t){var e=p.createElement("fieldset");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function ct(t,e){for(var i=t.split("|"),r=i.length;r--;)n.attrHandle[i[r]]=e}function dt(t,e){var i=e&&t,n=i&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(n)return n;if(i)for(;i=i.nextSibling;)if(i===e)return-1;return t?1:-1}function pt(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function ft(t){return function(e){var i=e.nodeName.toLowerCase();return("input"===i||"button"===i)&&e.type===t}}function mt(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ot(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function vt(t){return ut((function(e){return e=+e,ut((function(i,n){for(var r,s=t([],i.length,e),o=s.length;o--;)i[r=s[o]]&&(i[r]=!(n[r]=i[r]))}))}))}function gt(t){return t&&void 0!==t.getElementsByTagName&&t}for(e in i=at.support={},s=at.isXML=function(t){var e=t.namespaceURI,i=(t.ownerDocument||t).documentElement;return!J.test(e||i&&i.nodeName||"HTML")},d=at.setDocument=function(t){var e,r,o=t?t.ownerDocument||t:b;return o!=p&&9===o.nodeType&&o.documentElement?(f=(p=o).documentElement,m=!s(p),b!=p&&(r=p.defaultView)&&r.top!==r&&(r.addEventListener?r.addEventListener("unload",st,!1):r.attachEvent&&r.attachEvent("onunload",st)),i.scope=lt((function(t){return f.appendChild(t).appendChild(p.createElement("div")),void 0!==t.querySelectorAll&&!t.querySelectorAll(":scope fieldset div").length})),i.attributes=lt((function(t){return t.className="i",!t.getAttribute("className")})),i.getElementsByTagName=lt((function(t){return t.appendChild(p.createComment("")),!t.getElementsByTagName("*").length})),i.getElementsByClassName=Q.test(p.getElementsByClassName),i.getById=lt((function(t){return f.appendChild(t).id=x,!p.getElementsByName||!p.getElementsByName(x).length})),i.getById?(n.filter.ID=function(t){var e=t.replace(et,it);return function(t){return t.getAttribute("id")===e}},n.find.ID=function(t,e){if(void 0!==e.getElementById&&m){var i=e.getElementById(t);return i?[i]:[]}}):(n.filter.ID=function(t){var e=t.replace(et,it);return function(t){var i=void 0!==t.getAttributeNode&&t.getAttributeNode("id");return i&&i.value===e}},n.find.ID=function(t,e){if(void 0!==e.getElementById&&m){var i,n,r,s=e.getElementById(t);if(s){if((i=s.getAttributeNode("id"))&&i.value===t)return[s];for(r=e.getElementsByName(t),n=0;s=r[n++];)if((i=s.getAttributeNode("id"))&&i.value===t)return[s]}return[]}}),n.find.TAG=i.getElementsByTagName?function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):i.qsa?e.querySelectorAll(t):void 0}:function(t,e){var i,n=[],r=0,s=e.getElementsByTagName(t);if("*"===t){for(;i=s[r++];)1===i.nodeType&&n.push(i);return n}return s},n.find.CLASS=i.getElementsByClassName&&function(t,e){if(void 0!==e.getElementsByClassName&&m)return e.getElementsByClassName(t)},g=[],v=[],(i.qsa=Q.test(p.querySelectorAll))&&(lt((function(t){var e;f.appendChild(t).innerHTML="<a id='"+x+"'></a><select id='"+x+"-\r\\' msallowcapture=''><option selected=''></option></select>",t.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),t.querySelectorAll("[selected]").length||v.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|"+Y+")"),t.querySelectorAll("[id~="+x+"-]").length||v.push("~="),(e=p.createElement("input")).setAttribute("name",""),t.appendChild(e),t.querySelectorAll("[name='']").length||v.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),t.querySelectorAll(":checked").length||v.push(":checked"),t.querySelectorAll("a#"+x+"+*").length||v.push(".#.+[+~]"),t.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")})),lt((function(t){t.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var e=p.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&v.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),f.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),v.push(",.*:")}))),(i.matchesSelector=Q.test(y=f.matches||f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&<((function(t){i.disconnectedMatch=y.call(t,"*"),y.call(t,"[s!='']:x"),g.push("!=",U)})),v=v.length&&new RegExp(v.join("|")),g=g.length&&new RegExp(g.join("|")),e=Q.test(f.compareDocumentPosition),_=e||Q.test(f.contains)?function(t,e){var i=9===t.nodeType?t.documentElement:t,n=e&&e.parentNode;return t===n||!(!n||1!==n.nodeType||!(i.contains?i.contains(n):t.compareDocumentPosition&&16&t.compareDocumentPosition(n)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},A=e?function(t,e){if(t===e)return c=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n||(1&(n=(t.ownerDocument||t)==(e.ownerDocument||e)?t.compareDocumentPosition(e):1)||!i.sortDetached&&e.compareDocumentPosition(t)===n?t==p||t.ownerDocument==b&&_(b,t)?-1:e==p||e.ownerDocument==b&&_(b,e)?1:l?I(l,t)-I(l,e):0:4&n?-1:1)}:function(t,e){if(t===e)return c=!0,0;var i,n=0,r=t.parentNode,s=e.parentNode,o=[t],a=[e];if(!r||!s)return t==p?-1:e==p?1:r?-1:s?1:l?I(l,t)-I(l,e):0;if(r===s)return dt(t,e);for(i=t;i=i.parentNode;)o.unshift(i);for(i=e;i=i.parentNode;)a.unshift(i);for(;o[n]===a[n];)n++;return n?dt(o[n],a[n]):o[n]==b?-1:a[n]==b?1:0},p):p},at.matches=function(t,e){return at(t,null,null,e)},at.matchesSelector=function(t,e){if(d(t),i.matchesSelector&&m&&!L[e+" "]&&(!g||!g.test(e))&&(!v||!v.test(e)))try{var n=y.call(t,e);if(n||i.disconnectedMatch||t.document&&11!==t.document.nodeType)return n}catch(t){L(e,!0)}return at(e,p,null,[t]).length>0},at.contains=function(t,e){return(t.ownerDocument||t)!=p&&d(t),_(t,e)},at.attr=function(t,e){(t.ownerDocument||t)!=p&&d(t);var r=n.attrHandle[e.toLowerCase()],s=r&&D.call(n.attrHandle,e.toLowerCase())?r(t,e,!m):void 0;return void 0!==s?s:i.attributes||!m?t.getAttribute(e):(s=t.getAttributeNode(e))&&s.specified?s.value:null},at.escape=function(t){return(t+"").replace(nt,rt)},at.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},at.uniqueSort=function(t){var e,n=[],r=0,s=0;if(c=!i.detectDuplicates,l=!i.sortStable&&t.slice(0),t.sort(A),c){for(;e=t[s++];)e===t[s]&&(r=n.push(s));for(;r--;)t.splice(n[r],1)}return l=null,t},r=at.getText=function(t){var e,i="",n=0,s=t.nodeType;if(s){if(1===s||9===s||11===s){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)i+=r(t)}else if(3===s||4===s)return t.nodeValue}else for(;e=t[n++];)i+=r(e);return i},(n=at.selectors={cacheLength:50,createPseudo:ut,match:q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(et,it),t[3]=(t[3]||t[4]||t[5]||"").replace(et,it),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||at.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&at.error(t[0]),t},PSEUDO:function(t){var e,i=!t[6]&&t[2];return q.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":i&&V.test(i)&&(e=o(i,!0))&&(e=i.indexOf(")",i.length-e)-i.length)&&(t[0]=t[0].slice(0,e),t[2]=i.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(et,it).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=M[t+" "];return e||(e=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+t+"("+F+"|$)"))&&M(t,(function(t){return e.test("string"==typeof t.className&&t.className||void 0!==t.getAttribute&&t.getAttribute("class")||"")}))},ATTR:function(t,e,i){return function(n){var r=at.attr(n,t);return null==r?"!="===e:!e||(r+="","="===e?r===i:"!="===e?r!==i:"^="===e?i&&0===r.indexOf(i):"*="===e?i&&r.indexOf(i)>-1:"$="===e?i&&r.slice(-i.length)===i:"~="===e?(" "+r.replace(j," ")+" ").indexOf(i)>-1:"|="===e&&(r===i||r.slice(0,i.length+1)===i+"-"))}},CHILD:function(t,e,i,n,r){var s="nth"!==t.slice(0,3),o="last"!==t.slice(-4),a="of-type"===e;return 1===n&&0===r?function(t){return!!t.parentNode}:function(e,i,h){var u,l,c,d,p,f,m=s!==o?"nextSibling":"previousSibling",v=e.parentNode,g=a&&e.nodeName.toLowerCase(),y=!h&&!a,_=!1;if(v){if(s){for(;m;){for(d=e;d=d[m];)if(a?d.nodeName.toLowerCase()===g:1===d.nodeType)return!1;f=m="only"===t&&!f&&"nextSibling"}return!0}if(f=[o?v.firstChild:v.lastChild],o&&y){for(_=(p=(u=(l=(c=(d=v)[x]||(d[x]={}))[d.uniqueID]||(c[d.uniqueID]={}))[t]||[])[0]===w&&u[1])&&u[2],d=p&&v.childNodes[p];d=++p&&d&&d[m]||(_=p=0)||f.pop();)if(1===d.nodeType&&++_&&d===e){l[t]=[w,p,_];break}}else if(y&&(_=p=(u=(l=(c=(d=e)[x]||(d[x]={}))[d.uniqueID]||(c[d.uniqueID]={}))[t]||[])[0]===w&&u[1]),!1===_)for(;(d=++p&&d&&d[m]||(_=p=0)||f.pop())&&((a?d.nodeName.toLowerCase()!==g:1!==d.nodeType)||!++_||(y&&((l=(c=d[x]||(d[x]={}))[d.uniqueID]||(c[d.uniqueID]={}))[t]=[w,_]),d!==e)););return(_-=r)===n||_%n==0&&_/n>=0}}},PSEUDO:function(t,e){var i,r=n.pseudos[t]||n.setFilters[t.toLowerCase()]||at.error("unsupported pseudo: "+t);return r[x]?r(e):r.length>1?(i=[t,t,"",e],n.setFilters.hasOwnProperty(t.toLowerCase())?ut((function(t,i){for(var n,s=r(t,e),o=s.length;o--;)t[n=I(t,s[o])]=!(i[n]=s[o])})):function(t){return r(t,0,i)}):r}},pseudos:{not:ut((function(t){var e=[],i=[],n=a(t.replace(H,"$1"));return n[x]?ut((function(t,e,i,r){for(var s,o=n(t,null,r,[]),a=t.length;a--;)(s=o[a])&&(t[a]=!(e[a]=s))})):function(t,r,s){return e[0]=t,n(e,null,s,i),e[0]=null,!i.pop()}})),has:ut((function(t){return function(e){return at(t,e).length>0}})),contains:ut((function(t){return t=t.replace(et,it),function(e){return(e.textContent||r(e)).indexOf(t)>-1}})),lang:ut((function(t){return X.test(t||"")||at.error("unsupported lang: "+t),t=t.replace(et,it).toLowerCase(),function(e){var i;do{if(i=m?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(i=i.toLowerCase())===t||0===i.indexOf(t+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}})),target:function(e){var i=t.location&&t.location.hash;return i&&i.slice(1)===e.id},root:function(t){return t===f},focus:function(t){return t===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:mt(!1),disabled:mt(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!n.pseudos.empty(t)},header:function(t){return K.test(t.nodeName)},input:function(t){return Z.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:vt((function(){return[0]})),last:vt((function(t,e){return[e-1]})),eq:vt((function(t,e,i){return[i<0?i+e:i]})),even:vt((function(t,e){for(var i=0;i<e;i+=2)t.push(i);return t})),odd:vt((function(t,e){for(var i=1;i<e;i+=2)t.push(i);return t})),lt:vt((function(t,e,i){for(var n=i<0?i+e:i>e?e:i;--n>=0;)t.push(n);return t})),gt:vt((function(t,e,i){for(var n=i<0?i+e:i;++n<e;)t.push(n);return t}))}}).pseudos.nth=n.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})n.pseudos[e]=pt(e);for(e in{submit:!0,reset:!0})n.pseudos[e]=ft(e);function yt(){}function _t(t){for(var e=0,i=t.length,n="";e<i;e++)n+=t[e].value;return n}function xt(t,e,i){var n=e.dir,r=e.next,s=r||n,o=i&&"parentNode"===s,a=T++;return e.first?function(e,i,r){for(;e=e[n];)if(1===e.nodeType||o)return t(e,i,r);return!1}:function(e,i,h){var u,l,c,d=[w,a];if(h){for(;e=e[n];)if((1===e.nodeType||o)&&t(e,i,h))return!0}else for(;e=e[n];)if(1===e.nodeType||o)if(l=(c=e[x]||(e[x]={}))[e.uniqueID]||(c[e.uniqueID]={}),r&&r===e.nodeName.toLowerCase())e=e[n]||e;else{if((u=l[s])&&u[0]===w&&u[1]===a)return d[2]=u[2];if(l[s]=d,d[2]=t(e,i,h))return!0}return!1}}function bt(t){return t.length>1?function(e,i,n){for(var r=t.length;r--;)if(!t[r](e,i,n))return!1;return!0}:t[0]}function wt(t,e,i,n,r){for(var s,o=[],a=0,h=t.length,u=null!=e;a<h;a++)(s=t[a])&&(i&&!i(s,n,r)||(o.push(s),u&&e.push(a)));return o}function Tt(t,e,i,n,r,s){return n&&!n[x]&&(n=Tt(n)),r&&!r[x]&&(r=Tt(r,s)),ut((function(s,o,a,h){var u,l,c,d=[],p=[],f=o.length,m=s||function(t,e,i){for(var n=0,r=e.length;n<r;n++)at(t,e[n],i);return i}(e||"*",a.nodeType?[a]:a,[]),v=!t||!s&&e?m:wt(m,d,t,a,h),g=i?r||(s?t:f||n)?[]:o:v;if(i&&i(v,g,a,h),n)for(u=wt(g,p),n(u,[],a,h),l=u.length;l--;)(c=u[l])&&(g[p[l]]=!(v[p[l]]=c));if(s){if(r||t){if(r){for(u=[],l=g.length;l--;)(c=g[l])&&u.push(v[l]=c);r(null,g=[],u,h)}for(l=g.length;l--;)(c=g[l])&&(u=r?I(s,c):d[l])>-1&&(s[u]=!(o[u]=c))}}else g=wt(g===o?g.splice(f,g.length):g),r?r(null,o,g,h):k.apply(o,g)}))}function Mt(t){for(var e,i,r,s=t.length,o=n.relative[t[0].type],a=o||n.relative[" "],h=o?1:0,l=xt((function(t){return t===e}),a,!0),c=xt((function(t){return I(e,t)>-1}),a,!0),d=[function(t,i,n){var r=!o&&(n||i!==u)||((e=i).nodeType?l(t,i,n):c(t,i,n));return e=null,r}];h<s;h++)if(i=n.relative[t[h].type])d=[xt(bt(d),i)];else{if((i=n.filter[t[h].type].apply(null,t[h].matches))[x]){for(r=++h;r<s&&!n.relative[t[r].type];r++);return Tt(h>1&&bt(d),h>1&&_t(t.slice(0,h-1).concat({value:" "===t[h-2].type?"*":""})).replace(H,"$1"),i,h<r&&Mt(t.slice(h,r)),r<s&&Mt(t=t.slice(r)),r<s&&_t(t))}d.push(i)}return bt(d)}return yt.prototype=n.filters=n.pseudos,n.setFilters=new yt,o=at.tokenize=function(t,e){var i,r,s,o,a,h,u,l=S[t+" "];if(l)return e?0:l.slice(0);for(a=t,h=[],u=n.preFilter;a;){for(o in i&&!(r=z.exec(a))||(r&&(a=a.slice(r[0].length)||a),h.push(s=[])),i=!1,(r=W.exec(a))&&(i=r.shift(),s.push({value:i,type:r[0].replace(H," ")}),a=a.slice(i.length)),n.filter)!(r=q[o].exec(a))||u[o]&&!(r=u[o](r))||(i=r.shift(),s.push({value:i,type:o,matches:r}),a=a.slice(i.length));if(!i)break}return e?a.length:a?at.error(t):S(t,h).slice(0)},a=at.compile=function(t,e){var i,r=[],s=[],a=E[t+" "];if(!a){for(e||(e=o(t)),i=e.length;i--;)(a=Mt(e[i]))[x]?r.push(a):s.push(a);(a=E(t,function(t,e){var i=e.length>0,r=t.length>0,s=function(s,o,a,h,l){var c,f,v,g=0,y="0",_=s&&[],x=[],b=u,T=s||r&&n.find.TAG("*",l),M=w+=null==b?1:Math.random()||.1,S=T.length;for(l&&(u=o==p||o||l);y!==S&&null!=(c=T[y]);y++){if(r&&c){for(f=0,o||c.ownerDocument==p||(d(c),a=!m);v=t[f++];)if(v(c,o||p,a)){h.push(c);break}l&&(w=M)}i&&((c=!v&&c)&&g--,s&&_.push(c))}if(g+=y,i&&y!==g){for(f=0;v=e[f++];)v(_,x,o,a);if(s){if(g>0)for(;y--;)_[y]||x[y]||(x[y]=C.call(h));x=wt(x)}k.apply(h,x),l&&!s&&x.length>0&&g+e.length>1&&at.uniqueSort(h)}return l&&(w=M,u=b),_};return i?ut(s):s}(s,r))).selector=t}return a},h=at.select=function(t,e,i,r){var s,h,u,l,c,d="function"==typeof t&&t,p=!r&&o(t=d.selector||t);if(i=i||[],1===p.length){if((h=p[0]=p[0].slice(0)).length>2&&"ID"===(u=h[0]).type&&9===e.nodeType&&m&&n.relative[h[1].type]){if(!(e=(n.find.ID(u.matches[0].replace(et,it),e)||[])[0]))return i;d&&(e=e.parentNode),t=t.slice(h.shift().value.length)}for(s=q.needsContext.test(t)?0:h.length;s--&&(u=h[s],!n.relative[l=u.type]);)if((c=n.find[l])&&(r=c(u.matches[0].replace(et,it),tt.test(h[0].type)&>(e.parentNode)||e))){if(h.splice(s,1),!(t=r.length&&_t(h)))return k.apply(i,r),i;break}}return(d||a(t,p))(r,e,!m,i,!e||tt.test(t)&>(e.parentNode)||e),i},i.sortStable=x.split("").sort(A).join("")===x,i.detectDuplicates=!!c,d(),i.sortDetached=lt((function(t){return 1&t.compareDocumentPosition(p.createElement("fieldset"))})),lt((function(t){return t.innerHTML="<a href='#'></a>","#"===t.firstChild.getAttribute("href")}))||ct("type|href|height|width",(function(t,e,i){if(!i)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)})),i.attributes&<((function(t){return t.innerHTML="<input/>",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")}))||ct("value",(function(t,e,i){if(!i&&"input"===t.nodeName.toLowerCase())return t.defaultValue})),lt((function(t){return null==t.getAttribute("disabled")}))||ct(Y,(function(t,e,i){var n;if(!i)return!0===t[e]?e.toLowerCase():(n=t.getAttributeNode(e))&&n.specified?n.value:null})),at}(n);M.find=E,M.expr=E.selectors,M.expr[":"]=M.expr.pseudos,M.uniqueSort=M.unique=E.uniqueSort,M.text=E.getText,M.isXMLDoc=E.isXML,M.contains=E.contains,M.escapeSelector=E.escape;var L=function(t,e,i){for(var n=[],r=void 0!==i;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(r&&M(t).is(i))break;n.push(t)}return n},A=function(t,e){for(var i=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&i.push(t);return i},D=M.expr.match.needsContext;function P(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function O(t,e,i){return g(e)?M.grep(t,(function(t,n){return!!e.call(t,n,t)!==i})):e.nodeType?M.grep(t,(function(t){return t===e!==i})):"string"!=typeof e?M.grep(t,(function(t){return l.call(e,t)>-1!==i})):M.filter(e,t,i)}M.filter=function(t,e,i){var n=e[0];return i&&(t=":not("+t+")"),1===e.length&&1===n.nodeType?M.find.matchesSelector(n,t)?[n]:[]:M.find.matches(t,M.grep(e,(function(t){return 1===t.nodeType})))},M.fn.extend({find:function(t){var e,i,n=this.length,r=this;if("string"!=typeof t)return this.pushStack(M(t).filter((function(){for(e=0;e<n;e++)if(M.contains(r[e],this))return!0})));for(i=this.pushStack([]),e=0;e<n;e++)M.find(t,r[e],i);return n>1?M.uniqueSort(i):i},filter:function(t){return this.pushStack(O(this,t||[],!1))},not:function(t){return this.pushStack(O(this,t||[],!0))},is:function(t){return!!O(this,"string"==typeof t&&D.test(t)?M(t):t||[],!1).length}});var k,R=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(M.fn.init=function(t,e,i){var n,r;if(!t)return this;if(i=i||k,"string"==typeof t){if(!(n="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:R.exec(t))||!n[1]&&e)return!e||e.jquery?(e||i).find(t):this.constructor(e).find(t);if(n[1]){if(e=e instanceof M?e[0]:e,M.merge(this,M.parseHTML(n[1],e&&e.nodeType?e.ownerDocument||e:_,!0)),C.test(n[1])&&M.isPlainObject(e))for(n in e)g(this[n])?this[n](e[n]):this.attr(n,e[n]);return this}return(r=_.getElementById(n[2]))&&(this[0]=r,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):g(t)?void 0!==i.ready?i.ready(t):t(M):M.makeArray(t,this)}).prototype=M.fn,k=M(_);var I=/^(?:parents|prev(?:Until|All))/,Y={children:!0,contents:!0,next:!0,prev:!0};function F(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}M.fn.extend({has:function(t){var e=M(t,this),i=e.length;return this.filter((function(){for(var t=0;t<i;t++)if(M.contains(this,e[t]))return!0}))},closest:function(t,e){var i,n=0,r=this.length,s=[],o="string"!=typeof t&&M(t);if(!D.test(t))for(;n<r;n++)for(i=this[n];i&&i!==e;i=i.parentNode)if(i.nodeType<11&&(o?o.index(i)>-1:1===i.nodeType&&M.find.matchesSelector(i,t))){s.push(i);break}return this.pushStack(s.length>1?M.uniqueSort(s):s)},index:function(t){return t?"string"==typeof t?l.call(M(t),this[0]):l.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(M.uniqueSort(M.merge(this.get(),M(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),M.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return L(t,"parentNode")},parentsUntil:function(t,e,i){return L(t,"parentNode",i)},next:function(t){return F(t,"nextSibling")},prev:function(t){return F(t,"previousSibling")},nextAll:function(t){return L(t,"nextSibling")},prevAll:function(t){return L(t,"previousSibling")},nextUntil:function(t,e,i){return L(t,"nextSibling",i)},prevUntil:function(t,e,i){return L(t,"previousSibling",i)},siblings:function(t){return A((t.parentNode||{}).firstChild,t)},children:function(t){return A(t.firstChild)},contents:function(t){return null!=t.contentDocument&&o(t.contentDocument)?t.contentDocument:(P(t,"template")&&(t=t.content||t),M.merge([],t.childNodes))}},(function(t,e){M.fn[t]=function(i,n){var r=M.map(this,e,i);return"Until"!==t.slice(-5)&&(n=i),n&&"string"==typeof n&&(r=M.filter(n,r)),this.length>1&&(Y[t]||M.uniqueSort(r),I.test(t)&&r.reverse()),this.pushStack(r)}}));var N=/[^\x20\t\r\n\f]+/g;function B(t){return t}function U(t){throw t}function j(t,e,i,n){var r;try{t&&g(r=t.promise)?r.call(t).done(e).fail(i):t&&g(r=t.then)?r.call(t,e,i):e.apply(void 0,[t].slice(n))}catch(t){i.apply(void 0,[t])}}M.Callbacks=function(t){t="string"==typeof t?function(t){var e={};return M.each(t.match(N)||[],(function(t,i){e[i]=!0})),e}(t):M.extend({},t);var e,i,n,r,s=[],o=[],a=-1,h=function(){for(r=r||t.once,n=e=!0;o.length;a=-1)for(i=o.shift();++a<s.length;)!1===s[a].apply(i[0],i[1])&&t.stopOnFalse&&(a=s.length,i=!1);t.memory||(i=!1),e=!1,r&&(s=i?[]:"")},u={add:function(){return s&&(i&&!e&&(a=s.length-1,o.push(i)),function e(i){M.each(i,(function(i,n){g(n)?t.unique&&u.has(n)||s.push(n):n&&n.length&&"string"!==w(n)&&e(n)}))}(arguments),i&&!e&&h()),this},remove:function(){return M.each(arguments,(function(t,e){for(var i;(i=M.inArray(e,s,i))>-1;)s.splice(i,1),i<=a&&a--})),this},has:function(t){return t?M.inArray(t,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return r=o=[],s=i="",this},disabled:function(){return!s},lock:function(){return r=o=[],i||e||(s=i=""),this},locked:function(){return!!r},fireWith:function(t,i){return r||(i=[t,(i=i||[]).slice?i.slice():i],o.push(i),e||h()),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!n}};return u},M.extend({Deferred:function(t){var e=[["notify","progress",M.Callbacks("memory"),M.Callbacks("memory"),2],["resolve","done",M.Callbacks("once memory"),M.Callbacks("once memory"),0,"resolved"],["reject","fail",M.Callbacks("once memory"),M.Callbacks("once memory"),1,"rejected"]],i="pending",r={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},catch:function(t){return r.then(null,t)},pipe:function(){var t=arguments;return M.Deferred((function(i){M.each(e,(function(e,n){var r=g(t[n[4]])&&t[n[4]];s[n[1]]((function(){var t=r&&r.apply(this,arguments);t&&g(t.promise)?t.promise().progress(i.notify).done(i.resolve).fail(i.reject):i[n[0]+"With"](this,r?[t]:arguments)}))})),t=null})).promise()},then:function(t,i,r){var s=0;function o(t,e,i,r){return function(){var a=this,h=arguments,u=function(){var n,u;if(!(t<s)){if((n=i.apply(a,h))===e.promise())throw new TypeError("Thenable self-resolution");u=n&&("object"==typeof n||"function"==typeof n)&&n.then,g(u)?r?u.call(n,o(s,e,B,r),o(s,e,U,r)):(s++,u.call(n,o(s,e,B,r),o(s,e,U,r),o(s,e,B,e.notifyWith))):(i!==B&&(a=void 0,h=[n]),(r||e.resolveWith)(a,h))}},l=r?u:function(){try{u()}catch(n){M.Deferred.exceptionHook&&M.Deferred.exceptionHook(n,l.stackTrace),t+1>=s&&(i!==U&&(a=void 0,h=[n]),e.rejectWith(a,h))}};t?l():(M.Deferred.getStackHook&&(l.stackTrace=M.Deferred.getStackHook()),n.setTimeout(l))}}return M.Deferred((function(n){e[0][3].add(o(0,n,g(r)?r:B,n.notifyWith)),e[1][3].add(o(0,n,g(t)?t:B)),e[2][3].add(o(0,n,g(i)?i:U))})).promise()},promise:function(t){return null!=t?M.extend(t,r):r}},s={};return M.each(e,(function(t,n){var o=n[2],a=n[5];r[n[1]]=o.add,a&&o.add((function(){i=a}),e[3-t][2].disable,e[3-t][3].disable,e[0][2].lock,e[0][3].lock),o.add(n[3].fire),s[n[0]]=function(){return s[n[0]+"With"](this===s?void 0:this,arguments),this},s[n[0]+"With"]=o.fireWith})),r.promise(s),t&&t.call(s,s),s},when:function(t){var e=arguments.length,i=e,n=Array(i),r=a.call(arguments),s=M.Deferred(),o=function(t){return function(i){n[t]=this,r[t]=arguments.length>1?a.call(arguments):i,--e||s.resolveWith(n,r)}};if(e<=1&&(j(t,s.done(o(i)).resolve,s.reject,!e),"pending"===s.state()||g(r[i]&&r[i].then)))return s.then();for(;i--;)j(r[i],o(i),s.reject);return s.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;M.Deferred.exceptionHook=function(t,e){n.console&&n.console.warn&&t&&H.test(t.name)&&n.console.warn("jQuery.Deferred exception: "+t.message,t.stack,e)},M.readyException=function(t){n.setTimeout((function(){throw t}))};var z=M.Deferred();function W(){_.removeEventListener("DOMContentLoaded",W),n.removeEventListener("load",W),M.ready()}M.fn.ready=function(t){return z.then(t).catch((function(t){M.readyException(t)})),this},M.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--M.readyWait:M.isReady)||(M.isReady=!0,!0!==t&&--M.readyWait>0||z.resolveWith(_,[M]))}}),M.ready.then=z.then,"complete"===_.readyState||"loading"!==_.readyState&&!_.documentElement.doScroll?n.setTimeout(M.ready):(_.addEventListener("DOMContentLoaded",W),n.addEventListener("load",W));var G=function(t,e,i,n,r,s,o){var a=0,h=t.length,u=null==i;if("object"===w(i))for(a in r=!0,i)G(t,e,a,i[a],!0,s,o);else if(void 0!==n&&(r=!0,g(n)||(o=!0),u&&(o?(e.call(t,n),e=null):(u=e,e=function(t,e,i){return u.call(M(t),i)})),e))for(;a<h;a++)e(t[a],i,o?n:n.call(t[a],a,e(t[a],i)));return r?t:u?e.call(t):h?e(t[0],i):s},V=/^-ms-/,X=/-([a-z])/g;function q(t,e){return e.toUpperCase()}function J(t){return t.replace(V,"ms-").replace(X,q)}var Z=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType};function K(){this.expando=M.expando+K.uid++}K.uid=1,K.prototype={cache:function(t){var e=t[this.expando];return e||(e=Object.create(null),Z(t)&&(t.nodeType?t[this.expando]=e:Object.defineProperty(t,this.expando,{value:e,configurable:!0}))),e},set:function(t,e,i){var n,r=this.cache(t);if("string"==typeof e)r[J(e)]=i;else for(n in e)r[J(n)]=e[n];return r},get:function(t,e){return void 0===e?this.cache(t):t[this.expando]&&t[this.expando][J(e)]},access:function(t,e,i){return void 0===e||e&&"string"==typeof e&&void 0===i?this.get(t,e):(this.set(t,e,i),void 0!==i?i:e)},remove:function(t,e){var i,n=t[this.expando];if(void 0!==n){if(void 0!==e){i=(e=Array.isArray(e)?e.map(J):(e=J(e))in n?[e]:e.match(N)||[]).length;for(;i--;)delete n[e[i]]}(void 0===e||M.isEmptyObject(n))&&(t.nodeType?t[this.expando]=void 0:delete t[this.expando])}},hasData:function(t){var e=t[this.expando];return void 0!==e&&!M.isEmptyObject(e)}};var Q=new K,$=new K,tt=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,et=/[A-Z]/g;function it(t,e,i){var n;if(void 0===i&&1===t.nodeType)if(n="data-"+e.replace(et,"-$&").toLowerCase(),"string"==typeof(i=t.getAttribute(n))){try{i=function(t){return"true"===t||"false"!==t&&("null"===t?null:t===+t+""?+t:tt.test(t)?JSON.parse(t):t)}(i)}catch(t){}$.set(t,e,i)}else i=void 0;return i}M.extend({hasData:function(t){return $.hasData(t)||Q.hasData(t)},data:function(t,e,i){return $.access(t,e,i)},removeData:function(t,e){$.remove(t,e)},_data:function(t,e,i){return Q.access(t,e,i)},_removeData:function(t,e){Q.remove(t,e)}}),M.fn.extend({data:function(t,e){var i,n,r,s=this[0],o=s&&s.attributes;if(void 0===t){if(this.length&&(r=$.get(s),1===s.nodeType&&!Q.get(s,"hasDataAttrs"))){for(i=o.length;i--;)o[i]&&0===(n=o[i].name).indexOf("data-")&&(n=J(n.slice(5)),it(s,n,r[n]));Q.set(s,"hasDataAttrs",!0)}return r}return"object"==typeof t?this.each((function(){$.set(this,t)})):G(this,(function(e){var i;if(s&&void 0===e)return void 0!==(i=$.get(s,t))||void 0!==(i=it(s,t))?i:void 0;this.each((function(){$.set(this,t,e)}))}),null,e,arguments.length>1,null,!0)},removeData:function(t){return this.each((function(){$.remove(this,t)}))}}),M.extend({queue:function(t,e,i){var n;if(t)return e=(e||"fx")+"queue",n=Q.get(t,e),i&&(!n||Array.isArray(i)?n=Q.access(t,e,M.makeArray(i)):n.push(i)),n||[]},dequeue:function(t,e){e=e||"fx";var i=M.queue(t,e),n=i.length,r=i.shift(),s=M._queueHooks(t,e);"inprogress"===r&&(r=i.shift(),n--),r&&("fx"===e&&i.unshift("inprogress"),delete s.stop,r.call(t,(function(){M.dequeue(t,e)}),s)),!n&&s&&s.empty.fire()},_queueHooks:function(t,e){var i=e+"queueHooks";return Q.get(t,i)||Q.access(t,i,{empty:M.Callbacks("once memory").add((function(){Q.remove(t,[e+"queue",i])}))})}}),M.fn.extend({queue:function(t,e){var i=2;return"string"!=typeof t&&(e=t,t="fx",i--),arguments.length<i?M.queue(this[0],t):void 0===e?this:this.each((function(){var i=M.queue(this,t,e);M._queueHooks(this,t),"fx"===t&&"inprogress"!==i[0]&&M.dequeue(this,t)}))},dequeue:function(t){return this.each((function(){M.dequeue(this,t)}))},clearQueue:function(t){return this.queue(t||"fx",[])},promise:function(t,e){var i,n=1,r=M.Deferred(),s=this,o=this.length,a=function(){--n||r.resolveWith(s,[s])};for("string"!=typeof t&&(e=t,t=void 0),t=t||"fx";o--;)(i=Q.get(s[o],t+"queueHooks"))&&i.empty&&(n++,i.empty.add(a));return a(),r.promise(e)}});var nt=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,rt=new RegExp("^(?:([+-])=|)("+nt+")([a-z%]*)$","i"),st=["Top","Right","Bottom","Left"],ot=_.documentElement,at=function(t){return M.contains(t.ownerDocument,t)},ht={composed:!0};ot.getRootNode&&(at=function(t){return M.contains(t.ownerDocument,t)||t.getRootNode(ht)===t.ownerDocument});var ut=function(t,e){return"none"===(t=e||t).style.display||""===t.style.display&&at(t)&&"none"===M.css(t,"display")};function lt(t,e,i,n){var r,s,o=20,a=n?function(){return n.cur()}:function(){return M.css(t,e,"")},h=a(),u=i&&i[3]||(M.cssNumber[e]?"":"px"),l=t.nodeType&&(M.cssNumber[e]||"px"!==u&&+h)&&rt.exec(M.css(t,e));if(l&&l[3]!==u){for(h/=2,u=u||l[3],l=+h||1;o--;)M.style(t,e,l+u),(1-s)*(1-(s=a()/h||.5))<=0&&(o=0),l/=s;l*=2,M.style(t,e,l+u),i=i||[]}return i&&(l=+l||+h||0,r=i[1]?l+(i[1]+1)*i[2]:+i[2],n&&(n.unit=u,n.start=l,n.end=r)),r}var ct={};function dt(t){var e,i=t.ownerDocument,n=t.nodeName,r=ct[n];return r||(e=i.body.appendChild(i.createElement(n)),r=M.css(e,"display"),e.parentNode.removeChild(e),"none"===r&&(r="block"),ct[n]=r,r)}function pt(t,e){for(var i,n,r=[],s=0,o=t.length;s<o;s++)(n=t[s]).style&&(i=n.style.display,e?("none"===i&&(r[s]=Q.get(n,"display")||null,r[s]||(n.style.display="")),""===n.style.display&&ut(n)&&(r[s]=dt(n))):"none"!==i&&(r[s]="none",Q.set(n,"display",i)));for(s=0;s<o;s++)null!=r[s]&&(t[s].style.display=r[s]);return t}M.fn.extend({show:function(){return pt(this,!0)},hide:function(){return pt(this)},toggle:function(t){return"boolean"==typeof t?t?this.show():this.hide():this.each((function(){ut(this)?M(this).show():M(this).hide()}))}});var ft,mt,vt=/^(?:checkbox|radio)$/i,gt=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,yt=/^$|^module$|\/(?:java|ecma)script/i;ft=_.createDocumentFragment().appendChild(_.createElement("div")),(mt=_.createElement("input")).setAttribute("type","radio"),mt.setAttribute("checked","checked"),mt.setAttribute("name","t"),ft.appendChild(mt),v.checkClone=ft.cloneNode(!0).cloneNode(!0).lastChild.checked,ft.innerHTML="<textarea>x</textarea>",v.noCloneChecked=!!ft.cloneNode(!0).lastChild.defaultValue,ft.innerHTML="<option></option>",v.option=!!ft.lastChild;var _t={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function xt(t,e){var i;return i=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||"*"):void 0!==t.querySelectorAll?t.querySelectorAll(e||"*"):[],void 0===e||e&&P(t,e)?M.merge([t],i):i}function bt(t,e){for(var i=0,n=t.length;i<n;i++)Q.set(t[i],"globalEval",!e||Q.get(e[i],"globalEval"))}_t.tbody=_t.tfoot=_t.colgroup=_t.caption=_t.thead,_t.th=_t.td,v.option||(_t.optgroup=_t.option=[1,"<select multiple='multiple'>","</select>"]);var wt=/<|&#?\w+;/;function Tt(t,e,i,n,r){for(var s,o,a,h,u,l,c=e.createDocumentFragment(),d=[],p=0,f=t.length;p<f;p++)if((s=t[p])||0===s)if("object"===w(s))M.merge(d,s.nodeType?[s]:s);else if(wt.test(s)){for(o=o||c.appendChild(e.createElement("div")),a=(gt.exec(s)||["",""])[1].toLowerCase(),h=_t[a]||_t._default,o.innerHTML=h[1]+M.htmlPrefilter(s)+h[2],l=h[0];l--;)o=o.lastChild;M.merge(d,o.childNodes),(o=c.firstChild).textContent=""}else d.push(e.createTextNode(s));for(c.textContent="",p=0;s=d[p++];)if(n&&M.inArray(s,n)>-1)r&&r.push(s);else if(u=at(s),o=xt(c.appendChild(s),"script"),u&&bt(o),i)for(l=0;s=o[l++];)yt.test(s.type||"")&&i.push(s);return c}var Mt=/^key/,St=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Et=/^([^.]*)(?:\.(.+)|)/;function Lt(){return!0}function At(){return!1}function Dt(t,e){return t===function(){try{return _.activeElement}catch(t){}}()==("focus"===e)}function Pt(t,e,i,n,r,s){var o,a;if("object"==typeof e){for(a in"string"!=typeof i&&(n=n||i,i=void 0),e)Pt(t,a,i,n,e[a],s);return t}if(null==n&&null==r?(r=i,n=i=void 0):null==r&&("string"==typeof i?(r=n,n=void 0):(r=n,n=i,i=void 0)),!1===r)r=At;else if(!r)return t;return 1===s&&(o=r,(r=function(t){return M().off(t),o.apply(this,arguments)}).guid=o.guid||(o.guid=M.guid++)),t.each((function(){M.event.add(this,e,r,n,i)}))}function Ct(t,e,i){i?(Q.set(t,e,!1),M.event.add(t,e,{namespace:!1,handler:function(t){var n,r,s=Q.get(this,e);if(1&t.isTrigger&&this[e]){if(s.length)(M.event.special[e]||{}).delegateType&&t.stopPropagation();else if(s=a.call(arguments),Q.set(this,e,s),n=i(this,e),this[e](),s!==(r=Q.get(this,e))||n?Q.set(this,e,!1):r={},s!==r)return t.stopImmediatePropagation(),t.preventDefault(),r.value}else s.length&&(Q.set(this,e,{value:M.event.trigger(M.extend(s[0],M.Event.prototype),s.slice(1),this)}),t.stopImmediatePropagation())}})):void 0===Q.get(t,e)&&M.event.add(t,e,Lt)}M.event={global:{},add:function(t,e,i,n,r){var s,o,a,h,u,l,c,d,p,f,m,v=Q.get(t);if(Z(t))for(i.handler&&(i=(s=i).handler,r=s.selector),r&&M.find.matchesSelector(ot,r),i.guid||(i.guid=M.guid++),(h=v.events)||(h=v.events=Object.create(null)),(o=v.handle)||(o=v.handle=function(e){return void 0!==M&&M.event.triggered!==e.type?M.event.dispatch.apply(t,arguments):void 0}),u=(e=(e||"").match(N)||[""]).length;u--;)p=m=(a=Et.exec(e[u])||[])[1],f=(a[2]||"").split(".").sort(),p&&(c=M.event.special[p]||{},p=(r?c.delegateType:c.bindType)||p,c=M.event.special[p]||{},l=M.extend({type:p,origType:m,data:n,handler:i,guid:i.guid,selector:r,needsContext:r&&M.expr.match.needsContext.test(r),namespace:f.join(".")},s),(d=h[p])||((d=h[p]=[]).delegateCount=0,c.setup&&!1!==c.setup.call(t,n,f,o)||t.addEventListener&&t.addEventListener(p,o)),c.add&&(c.add.call(t,l),l.handler.guid||(l.handler.guid=i.guid)),r?d.splice(d.delegateCount++,0,l):d.push(l),M.event.global[p]=!0)},remove:function(t,e,i,n,r){var s,o,a,h,u,l,c,d,p,f,m,v=Q.hasData(t)&&Q.get(t);if(v&&(h=v.events)){for(u=(e=(e||"").match(N)||[""]).length;u--;)if(p=m=(a=Et.exec(e[u])||[])[1],f=(a[2]||"").split(".").sort(),p){for(c=M.event.special[p]||{},d=h[p=(n?c.delegateType:c.bindType)||p]||[],a=a[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=s=d.length;s--;)l=d[s],!r&&m!==l.origType||i&&i.guid!==l.guid||a&&!a.test(l.namespace)||n&&n!==l.selector&&("**"!==n||!l.selector)||(d.splice(s,1),l.selector&&d.delegateCount--,c.remove&&c.remove.call(t,l));o&&!d.length&&(c.teardown&&!1!==c.teardown.call(t,f,v.handle)||M.removeEvent(t,p,v.handle),delete h[p])}else for(p in h)M.event.remove(t,p+e[u],i,n,!0);M.isEmptyObject(h)&&Q.remove(t,"handle events")}},dispatch:function(t){var e,i,n,r,s,o,a=new Array(arguments.length),h=M.event.fix(t),u=(Q.get(this,"events")||Object.create(null))[h.type]||[],l=M.event.special[h.type]||{};for(a[0]=h,e=1;e<arguments.length;e++)a[e]=arguments[e];if(h.delegateTarget=this,!l.preDispatch||!1!==l.preDispatch.call(this,h)){for(o=M.event.handlers.call(this,h,u),e=0;(r=o[e++])&&!h.isPropagationStopped();)for(h.currentTarget=r.elem,i=0;(s=r.handlers[i++])&&!h.isImmediatePropagationStopped();)h.rnamespace&&!1!==s.namespace&&!h.rnamespace.test(s.namespace)||(h.handleObj=s,h.data=s.data,void 0!==(n=((M.event.special[s.origType]||{}).handle||s.handler).apply(r.elem,a))&&!1===(h.result=n)&&(h.preventDefault(),h.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,h),h.result}},handlers:function(t,e){var i,n,r,s,o,a=[],h=e.delegateCount,u=t.target;if(h&&u.nodeType&&!("click"===t.type&&t.button>=1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&("click"!==t.type||!0!==u.disabled)){for(s=[],o={},i=0;i<h;i++)void 0===o[r=(n=e[i]).selector+" "]&&(o[r]=n.needsContext?M(r,this).index(u)>-1:M.find(r,this,null,[u]).length),o[r]&&s.push(n);s.length&&a.push({elem:u,handlers:s})}return u=this,h<e.length&&a.push({elem:u,handlers:e.slice(h)}),a},addProp:function(t,e){Object.defineProperty(M.Event.prototype,t,{enumerable:!0,configurable:!0,get:g(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(t){return t[M.expando]?t:new M.Event(t)},special:{load:{noBubble:!0},click:{setup:function(t){var e=this||t;return vt.test(e.type)&&e.click&&P(e,"input")&&Ct(e,"click",Lt),!1},trigger:function(t){var e=this||t;return vt.test(e.type)&&e.click&&P(e,"input")&&Ct(e,"click"),!0},_default:function(t){var e=t.target;return vt.test(e.type)&&e.click&&P(e,"input")&&Q.get(e,"click")||P(e,"a")}},beforeunload:{postDispatch:function(t){void 0!==t.result&&t.originalEvent&&(t.originalEvent.returnValue=t.result)}}}},M.removeEvent=function(t,e,i){t.removeEventListener&&t.removeEventListener(e,i)},M.Event=function(t,e){if(!(this instanceof M.Event))return new M.Event(t,e);t&&t.type?(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented||void 0===t.defaultPrevented&&!1===t.returnValue?Lt:At,this.target=t.target&&3===t.target.nodeType?t.target.parentNode:t.target,this.currentTarget=t.currentTarget,this.relatedTarget=t.relatedTarget):this.type=t,e&&M.extend(this,e),this.timeStamp=t&&t.timeStamp||Date.now(),this[M.expando]=!0},M.Event.prototype={constructor:M.Event,isDefaultPrevented:At,isPropagationStopped:At,isImmediatePropagationStopped:At,isSimulated:!1,preventDefault:function(){var t=this.originalEvent;this.isDefaultPrevented=Lt,t&&!this.isSimulated&&t.preventDefault()},stopPropagation:function(){var t=this.originalEvent;this.isPropagationStopped=Lt,t&&!this.isSimulated&&t.stopPropagation()},stopImmediatePropagation:function(){var t=this.originalEvent;this.isImmediatePropagationStopped=Lt,t&&!this.isSimulated&&t.stopImmediatePropagation(),this.stopPropagation()}},M.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(t){var e=t.button;return null==t.which&&Mt.test(t.type)?null!=t.charCode?t.charCode:t.keyCode:!t.which&&void 0!==e&&St.test(t.type)?1&e?1:2&e?3:4&e?2:0:t.which}},M.event.addProp),M.each({focus:"focusin",blur:"focusout"},(function(t,e){M.event.special[t]={setup:function(){return Ct(this,t,Dt),!1},trigger:function(){return Ct(this,t),!0},delegateType:e}})),M.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},(function(t,e){M.event.special[t]={delegateType:e,bindType:e,handle:function(t){var i,n=this,r=t.relatedTarget,s=t.handleObj;return r&&(r===n||M.contains(n,r))||(t.type=s.origType,i=s.handler.apply(this,arguments),t.type=e),i}}})),M.fn.extend({on:function(t,e,i,n){return Pt(this,t,e,i,n)},one:function(t,e,i,n){return Pt(this,t,e,i,n,1)},off:function(t,e,i){var n,r;if(t&&t.preventDefault&&t.handleObj)return n=t.handleObj,M(t.delegateTarget).off(n.namespace?n.origType+"."+n.namespace:n.origType,n.selector,n.handler),this;if("object"==typeof t){for(r in t)this.off(r,e,t[r]);return this}return!1!==e&&"function"!=typeof e||(i=e,e=void 0),!1===i&&(i=At),this.each((function(){M.event.remove(this,t,i,e)}))}});var Ot=/<script|<style|<link/i,kt=/checked\s*(?:[^=]|=\s*.checked.)/i,Rt=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function It(t,e){return P(t,"table")&&P(11!==e.nodeType?e:e.firstChild,"tr")&&M(t).children("tbody")[0]||t}function Yt(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function Ft(t){return"true/"===(t.type||"").slice(0,5)?t.type=t.type.slice(5):t.removeAttribute("type"),t}function Nt(t,e){var i,n,r,s,o,a;if(1===e.nodeType){if(Q.hasData(t)&&(a=Q.get(t).events))for(r in Q.remove(e,"handle events"),a)for(i=0,n=a[r].length;i<n;i++)M.event.add(e,r,a[r][i]);$.hasData(t)&&(s=$.access(t),o=M.extend({},s),$.set(e,o))}}function Bt(t,e){var i=e.nodeName.toLowerCase();"input"===i&&vt.test(t.type)?e.checked=t.checked:"input"!==i&&"textarea"!==i||(e.defaultValue=t.defaultValue)}function Ut(t,e,i,n){e=h(e);var r,s,o,a,u,l,c=0,d=t.length,p=d-1,f=e[0],m=g(f);if(m||d>1&&"string"==typeof f&&!v.checkClone&&kt.test(f))return t.each((function(r){var s=t.eq(r);m&&(e[0]=f.call(this,r,s.html())),Ut(s,e,i,n)}));if(d&&(s=(r=Tt(e,t[0].ownerDocument,!1,t,n)).firstChild,1===r.childNodes.length&&(r=s),s||n)){for(a=(o=M.map(xt(r,"script"),Yt)).length;c<d;c++)u=r,c!==p&&(u=M.clone(u,!0,!0),a&&M.merge(o,xt(u,"script"))),i.call(t[c],u,c);if(a)for(l=o[o.length-1].ownerDocument,M.map(o,Ft),c=0;c<a;c++)u=o[c],yt.test(u.type||"")&&!Q.access(u,"globalEval")&&M.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?M._evalUrl&&!u.noModule&&M._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Rt,""),u,l))}return t}function jt(t,e,i){for(var n,r=e?M.filter(e,t):t,s=0;null!=(n=r[s]);s++)i||1!==n.nodeType||M.cleanData(xt(n)),n.parentNode&&(i&&at(n)&&bt(xt(n,"script")),n.parentNode.removeChild(n));return t}M.extend({htmlPrefilter:function(t){return t},clone:function(t,e,i){var n,r,s,o,a=t.cloneNode(!0),h=at(t);if(!(v.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||M.isXMLDoc(t)))for(o=xt(a),n=0,r=(s=xt(t)).length;n<r;n++)Bt(s[n],o[n]);if(e)if(i)for(s=s||xt(t),o=o||xt(a),n=0,r=s.length;n<r;n++)Nt(s[n],o[n]);else Nt(t,a);return(o=xt(a,"script")).length>0&&bt(o,!h&&xt(t,"script")),a},cleanData:function(t){for(var e,i,n,r=M.event.special,s=0;void 0!==(i=t[s]);s++)if(Z(i)){if(e=i[Q.expando]){if(e.events)for(n in e.events)r[n]?M.event.remove(i,n):M.removeEvent(i,n,e.handle);i[Q.expando]=void 0}i[$.expando]&&(i[$.expando]=void 0)}}}),M.fn.extend({detach:function(t){return jt(this,t,!0)},remove:function(t){return jt(this,t)},text:function(t){return G(this,(function(t){return void 0===t?M.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)}))}),null,t,arguments.length)},append:function(){return Ut(this,arguments,(function(t){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||It(this,t).appendChild(t)}))},prepend:function(){return Ut(this,arguments,(function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=It(this,t);e.insertBefore(t,e.firstChild)}}))},before:function(){return Ut(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this)}))},after:function(){return Ut(this,arguments,(function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)}))},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(M.cleanData(xt(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map((function(){return M.clone(this,t,e)}))},html:function(t){return G(this,(function(t){var e=this[0]||{},i=0,n=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!Ot.test(t)&&!_t[(gt.exec(t)||["",""])[1].toLowerCase()]){t=M.htmlPrefilter(t);try{for(;i<n;i++)1===(e=this[i]||{}).nodeType&&(M.cleanData(xt(e,!1)),e.innerHTML=t);e=0}catch(t){}}e&&this.empty().append(t)}),null,t,arguments.length)},replaceWith:function(){var t=[];return Ut(this,arguments,(function(e){var i=this.parentNode;M.inArray(this,t)<0&&(M.cleanData(xt(this)),i&&i.replaceChild(e,this))}),t)}}),M.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},(function(t,e){M.fn[t]=function(t){for(var i,n=[],r=M(t),s=r.length-1,o=0;o<=s;o++)i=o===s?this:this.clone(!0),M(r[o])[e](i),u.apply(n,i.get());return this.pushStack(n)}}));var Ht=new RegExp("^("+nt+")(?!px)[a-z%]+$","i"),zt=function(t){var e=t.ownerDocument.defaultView;return e&&e.opener||(e=n),e.getComputedStyle(t)},Wt=function(t,e,i){var n,r,s={};for(r in e)s[r]=t.style[r],t.style[r]=e[r];for(r in n=i.call(t),e)t.style[r]=s[r];return n},Gt=new RegExp(st.join("|"),"i");function Vt(t,e,i){var n,r,s,o,a=t.style;return(i=i||zt(t))&&(""!==(o=i.getPropertyValue(e)||i[e])||at(t)||(o=M.style(t,e)),!v.pixelBoxStyles()&&Ht.test(o)&&Gt.test(e)&&(n=a.width,r=a.minWidth,s=a.maxWidth,a.minWidth=a.maxWidth=a.width=o,o=i.width,a.width=n,a.minWidth=r,a.maxWidth=s)),void 0!==o?o+"":o}function Xt(t,e){return{get:function(){if(!t())return(this.get=e).apply(this,arguments);delete this.get}}}!function(){function t(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",ot.appendChild(u).appendChild(l);var t=n.getComputedStyle(l);i="1%"!==t.top,h=12===e(t.marginLeft),l.style.right="60%",o=36===e(t.right),r=36===e(t.width),l.style.position="absolute",s=12===e(l.offsetWidth/3),ot.removeChild(u),l=null}}function e(t){return Math.round(parseFloat(t))}var i,r,s,o,a,h,u=_.createElement("div"),l=_.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===l.style.backgroundClip,M.extend(v,{boxSizingReliable:function(){return t(),r},pixelBoxStyles:function(){return t(),o},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),h},scrollboxSize:function(){return t(),s},reliableTrDimensions:function(){var t,e,i,r;return null==a&&(t=_.createElement("table"),e=_.createElement("tr"),i=_.createElement("div"),t.style.cssText="position:absolute;left:-11111px",e.style.height="1px",i.style.height="9px",ot.appendChild(t).appendChild(e).appendChild(i),r=n.getComputedStyle(e),a=parseInt(r.height)>3,ot.removeChild(t)),a}}))}();var qt=["Webkit","Moz","ms"],Jt=_.createElement("div").style,Zt={};function Kt(t){var e=M.cssProps[t]||Zt[t];return e||(t in Jt?t:Zt[t]=function(t){for(var e=t[0].toUpperCase()+t.slice(1),i=qt.length;i--;)if((t=qt[i]+e)in Jt)return t}(t)||t)}var Qt=/^(none|table(?!-c[ea]).+)/,$t=/^--/,te={position:"absolute",visibility:"hidden",display:"block"},ee={letterSpacing:"0",fontWeight:"400"};function ie(t,e,i){var n=rt.exec(e);return n?Math.max(0,n[2]-(i||0))+(n[3]||"px"):e}function ne(t,e,i,n,r,s){var o="width"===e?1:0,a=0,h=0;if(i===(n?"border":"content"))return 0;for(;o<4;o+=2)"margin"===i&&(h+=M.css(t,i+st[o],!0,r)),n?("content"===i&&(h-=M.css(t,"padding"+st[o],!0,r)),"margin"!==i&&(h-=M.css(t,"border"+st[o]+"Width",!0,r))):(h+=M.css(t,"padding"+st[o],!0,r),"padding"!==i?h+=M.css(t,"border"+st[o]+"Width",!0,r):a+=M.css(t,"border"+st[o]+"Width",!0,r));return!n&&s>=0&&(h+=Math.max(0,Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-s-h-a-.5))||0),h}function re(t,e,i){var n=zt(t),r=(!v.boxSizingReliable()||i)&&"border-box"===M.css(t,"boxSizing",!1,n),s=r,o=Vt(t,e,n),a="offset"+e[0].toUpperCase()+e.slice(1);if(Ht.test(o)){if(!i)return o;o="auto"}return(!v.boxSizingReliable()&&r||!v.reliableTrDimensions()&&P(t,"tr")||"auto"===o||!parseFloat(o)&&"inline"===M.css(t,"display",!1,n))&&t.getClientRects().length&&(r="border-box"===M.css(t,"boxSizing",!1,n),(s=a in t)&&(o=t[a])),(o=parseFloat(o)||0)+ne(t,e,i||(r?"border":"content"),s,n,o)+"px"}function se(t,e,i,n,r){return new se.prototype.init(t,e,i,n,r)}M.extend({cssHooks:{opacity:{get:function(t,e){if(e){var i=Vt(t,"opacity");return""===i?"1":i}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(t,e,i,n){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var r,s,o,a=J(e),h=$t.test(e),u=t.style;if(h||(e=Kt(a)),o=M.cssHooks[e]||M.cssHooks[a],void 0===i)return o&&"get"in o&&void 0!==(r=o.get(t,!1,n))?r:u[e];"string"===(s=typeof i)&&(r=rt.exec(i))&&r[1]&&(i=lt(t,e,r),s="number"),null!=i&&i==i&&("number"!==s||h||(i+=r&&r[3]||(M.cssNumber[a]?"":"px")),v.clearCloneStyle||""!==i||0!==e.indexOf("background")||(u[e]="inherit"),o&&"set"in o&&void 0===(i=o.set(t,i,n))||(h?u.setProperty(e,i):u[e]=i))}},css:function(t,e,i,n){var r,s,o,a=J(e);return $t.test(e)||(e=Kt(a)),(o=M.cssHooks[e]||M.cssHooks[a])&&"get"in o&&(r=o.get(t,!0,i)),void 0===r&&(r=Vt(t,e,n)),"normal"===r&&e in ee&&(r=ee[e]),""===i||i?(s=parseFloat(r),!0===i||isFinite(s)?s||0:r):r}}),M.each(["height","width"],(function(t,e){M.cssHooks[e]={get:function(t,i,n){if(i)return!Qt.test(M.css(t,"display"))||t.getClientRects().length&&t.getBoundingClientRect().width?re(t,e,n):Wt(t,te,(function(){return re(t,e,n)}))},set:function(t,i,n){var r,s=zt(t),o=!v.scrollboxSize()&&"absolute"===s.position,a=(o||n)&&"border-box"===M.css(t,"boxSizing",!1,s),h=n?ne(t,e,n,a,s):0;return a&&o&&(h-=Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-parseFloat(s[e])-ne(t,e,"border",!1,s)-.5)),h&&(r=rt.exec(i))&&"px"!==(r[3]||"px")&&(t.style[e]=i,i=M.css(t,e)),ie(0,i,h)}}})),M.cssHooks.marginLeft=Xt(v.reliableMarginLeft,(function(t,e){if(e)return(parseFloat(Vt(t,"marginLeft"))||t.getBoundingClientRect().left-Wt(t,{marginLeft:0},(function(){return t.getBoundingClientRect().left})))+"px"})),M.each({margin:"",padding:"",border:"Width"},(function(t,e){M.cssHooks[t+e]={expand:function(i){for(var n=0,r={},s="string"==typeof i?i.split(" "):[i];n<4;n++)r[t+st[n]+e]=s[n]||s[n-2]||s[0];return r}},"margin"!==t&&(M.cssHooks[t+e].set=ie)})),M.fn.extend({css:function(t,e){return G(this,(function(t,e,i){var n,r,s={},o=0;if(Array.isArray(e)){for(n=zt(t),r=e.length;o<r;o++)s[e[o]]=M.css(t,e[o],!1,n);return s}return void 0!==i?M.style(t,e,i):M.css(t,e)}),t,e,arguments.length>1)}}),M.Tween=se,se.prototype={constructor:se,init:function(t,e,i,n,r,s){this.elem=t,this.prop=i,this.easing=r||M.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=n,this.unit=s||(M.cssNumber[i]?"":"px")},cur:function(){var t=se.propHooks[this.prop];return t&&t.get?t.get(this):se.propHooks._default.get(this)},run:function(t){var e,i=se.propHooks[this.prop];return this.options.duration?this.pos=e=M.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),i&&i.set?i.set(this):se.propHooks._default.set(this),this}},se.prototype.init.prototype=se.prototype,se.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=M.css(t.elem,t.prop,""))&&"auto"!==e?e:0},set:function(t){M.fx.step[t.prop]?M.fx.step[t.prop](t):1!==t.elem.nodeType||!M.cssHooks[t.prop]&&null==t.elem.style[Kt(t.prop)]?t.elem[t.prop]=t.now:M.style(t.elem,t.prop,t.now+t.unit)}}},se.propHooks.scrollTop=se.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},M.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},M.fx=se.prototype.init,M.fx.step={};var oe,ae,he=/^(?:toggle|show|hide)$/,ue=/queueHooks$/;function le(){ae&&(!1===_.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(le):n.setTimeout(le,M.fx.interval),M.fx.tick())}function ce(){return n.setTimeout((function(){oe=void 0})),oe=Date.now()}function de(t,e){var i,n=0,r={height:t};for(e=e?1:0;n<4;n+=2-e)r["margin"+(i=st[n])]=r["padding"+i]=t;return e&&(r.opacity=r.width=t),r}function pe(t,e,i){for(var n,r=(fe.tweeners[e]||[]).concat(fe.tweeners["*"]),s=0,o=r.length;s<o;s++)if(n=r[s].call(i,e,t))return n}function fe(t,e,i){var n,r,s=0,o=fe.prefilters.length,a=M.Deferred().always((function(){delete h.elem})),h=function(){if(r)return!1;for(var e=oe||ce(),i=Math.max(0,u.startTime+u.duration-e),n=1-(i/u.duration||0),s=0,o=u.tweens.length;s<o;s++)u.tweens[s].run(n);return a.notifyWith(t,[u,n,i]),n<1&&o?i:(o||a.notifyWith(t,[u,1,0]),a.resolveWith(t,[u]),!1)},u=a.promise({elem:t,props:M.extend({},e),opts:M.extend(!0,{specialEasing:{},easing:M.easing._default},i),originalProperties:e,originalOptions:i,startTime:oe||ce(),duration:i.duration,tweens:[],createTween:function(e,i){var n=M.Tween(t,u.opts,e,i,u.opts.specialEasing[e]||u.opts.easing);return u.tweens.push(n),n},stop:function(e){var i=0,n=e?u.tweens.length:0;if(r)return this;for(r=!0;i<n;i++)u.tweens[i].run(1);return e?(a.notifyWith(t,[u,1,0]),a.resolveWith(t,[u,e])):a.rejectWith(t,[u,e]),this}}),l=u.props;for(!function(t,e){var i,n,r,s,o;for(i in t)if(r=e[n=J(i)],s=t[i],Array.isArray(s)&&(r=s[1],s=t[i]=s[0]),i!==n&&(t[n]=s,delete t[i]),(o=M.cssHooks[n])&&"expand"in o)for(i in s=o.expand(s),delete t[n],s)i in t||(t[i]=s[i],e[i]=r);else e[n]=r}(l,u.opts.specialEasing);s<o;s++)if(n=fe.prefilters[s].call(u,t,l,u.opts))return g(n.stop)&&(M._queueHooks(u.elem,u.opts.queue).stop=n.stop.bind(n)),n;return M.map(l,pe,u),g(u.opts.start)&&u.opts.start.call(t,u),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always),M.fx.timer(M.extend(h,{elem:t,anim:u,queue:u.opts.queue})),u}M.Animation=M.extend(fe,{tweeners:{"*":[function(t,e){var i=this.createTween(t,e);return lt(i.elem,t,rt.exec(e),i),i}]},tweener:function(t,e){g(t)?(e=t,t=["*"]):t=t.match(N);for(var i,n=0,r=t.length;n<r;n++)i=t[n],fe.tweeners[i]=fe.tweeners[i]||[],fe.tweeners[i].unshift(e)},prefilters:[function(t,e,i){var n,r,s,o,a,h,u,l,c="width"in e||"height"in e,d=this,p={},f=t.style,m=t.nodeType&&ut(t),v=Q.get(t,"fxshow");for(n in i.queue||(null==(o=M._queueHooks(t,"fx")).unqueued&&(o.unqueued=0,a=o.empty.fire,o.empty.fire=function(){o.unqueued||a()}),o.unqueued++,d.always((function(){d.always((function(){o.unqueued--,M.queue(t,"fx").length||o.empty.fire()}))}))),e)if(r=e[n],he.test(r)){if(delete e[n],s=s||"toggle"===r,r===(m?"hide":"show")){if("show"!==r||!v||void 0===v[n])continue;m=!0}p[n]=v&&v[n]||M.style(t,n)}if((h=!M.isEmptyObject(e))||!M.isEmptyObject(p))for(n in c&&1===t.nodeType&&(i.overflow=[f.overflow,f.overflowX,f.overflowY],null==(u=v&&v.display)&&(u=Q.get(t,"display")),"none"===(l=M.css(t,"display"))&&(u?l=u:(pt([t],!0),u=t.style.display||u,l=M.css(t,"display"),pt([t]))),("inline"===l||"inline-block"===l&&null!=u)&&"none"===M.css(t,"float")&&(h||(d.done((function(){f.display=u})),null==u&&(l=f.display,u="none"===l?"":l)),f.display="inline-block")),i.overflow&&(f.overflow="hidden",d.always((function(){f.overflow=i.overflow[0],f.overflowX=i.overflow[1],f.overflowY=i.overflow[2]}))),h=!1,p)h||(v?"hidden"in v&&(m=v.hidden):v=Q.access(t,"fxshow",{display:u}),s&&(v.hidden=!m),m&&pt([t],!0),d.done((function(){for(n in m||pt([t]),Q.remove(t,"fxshow"),p)M.style(t,n,p[n])}))),h=pe(m?v[n]:0,n,d),n in v||(v[n]=h.start,m&&(h.end=h.start,h.start=0))}],prefilter:function(t,e){e?fe.prefilters.unshift(t):fe.prefilters.push(t)}}),M.speed=function(t,e,i){var n=t&&"object"==typeof t?M.extend({},t):{complete:i||!i&&e||g(t)&&t,duration:t,easing:i&&e||e&&!g(e)&&e};return M.fx.off?n.duration=0:"number"!=typeof n.duration&&(n.duration in M.fx.speeds?n.duration=M.fx.speeds[n.duration]:n.duration=M.fx.speeds._default),null!=n.queue&&!0!==n.queue||(n.queue="fx"),n.old=n.complete,n.complete=function(){g(n.old)&&n.old.call(this),n.queue&&M.dequeue(this,n.queue)},n},M.fn.extend({fadeTo:function(t,e,i,n){return this.filter(ut).css("opacity",0).show().end().animate({opacity:e},t,i,n)},animate:function(t,e,i,n){var r=M.isEmptyObject(t),s=M.speed(e,i,n),o=function(){var e=fe(this,M.extend({},t),s);(r||Q.get(this,"finish"))&&e.stop(!0)};return o.finish=o,r||!1===s.queue?this.each(o):this.queue(s.queue,o)},stop:function(t,e,i){var n=function(t){var e=t.stop;delete t.stop,e(i)};return"string"!=typeof t&&(i=e,e=t,t=void 0),e&&this.queue(t||"fx",[]),this.each((function(){var e=!0,r=null!=t&&t+"queueHooks",s=M.timers,o=Q.get(this);if(r)o[r]&&o[r].stop&&n(o[r]);else for(r in o)o[r]&&o[r].stop&&ue.test(r)&&n(o[r]);for(r=s.length;r--;)s[r].elem!==this||null!=t&&s[r].queue!==t||(s[r].anim.stop(i),e=!1,s.splice(r,1));!e&&i||M.dequeue(this,t)}))},finish:function(t){return!1!==t&&(t=t||"fx"),this.each((function(){var e,i=Q.get(this),n=i[t+"queue"],r=i[t+"queueHooks"],s=M.timers,o=n?n.length:0;for(i.finish=!0,M.queue(this,t,[]),r&&r.stop&&r.stop.call(this,!0),e=s.length;e--;)s[e].elem===this&&s[e].queue===t&&(s[e].anim.stop(!0),s.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete i.finish}))}}),M.each(["toggle","show","hide"],(function(t,e){var i=M.fn[e];M.fn[e]=function(t,n,r){return null==t||"boolean"==typeof t?i.apply(this,arguments):this.animate(de(e,!0),t,n,r)}})),M.each({slideDown:de("show"),slideUp:de("hide"),slideToggle:de("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},(function(t,e){M.fn[t]=function(t,i,n){return this.animate(e,t,i,n)}})),M.timers=[],M.fx.tick=function(){var t,e=0,i=M.timers;for(oe=Date.now();e<i.length;e++)(t=i[e])()||i[e]!==t||i.splice(e--,1);i.length||M.fx.stop(),oe=void 0},M.fx.timer=function(t){M.timers.push(t),M.fx.start()},M.fx.interval=13,M.fx.start=function(){ae||(ae=!0,le())},M.fx.stop=function(){ae=null},M.fx.speeds={slow:600,fast:200,_default:400},M.fn.delay=function(t,e){return t=M.fx&&M.fx.speeds[t]||t,e=e||"fx",this.queue(e,(function(e,i){var r=n.setTimeout(e,t);i.stop=function(){n.clearTimeout(r)}}))},function(){var t=_.createElement("input"),e=_.createElement("select").appendChild(_.createElement("option"));t.type="checkbox",v.checkOn=""!==t.value,v.optSelected=e.selected,(t=_.createElement("input")).value="t",t.type="radio",v.radioValue="t"===t.value}();var me,ve=M.expr.attrHandle;M.fn.extend({attr:function(t,e){return G(this,M.attr,t,e,arguments.length>1)},removeAttr:function(t){return this.each((function(){M.removeAttr(this,t)}))}}),M.extend({attr:function(t,e,i){var n,r,s=t.nodeType;if(3!==s&&8!==s&&2!==s)return void 0===t.getAttribute?M.prop(t,e,i):(1===s&&M.isXMLDoc(t)||(r=M.attrHooks[e.toLowerCase()]||(M.expr.match.bool.test(e)?me:void 0)),void 0!==i?null===i?void M.removeAttr(t,e):r&&"set"in r&&void 0!==(n=r.set(t,i,e))?n:(t.setAttribute(e,i+""),i):r&&"get"in r&&null!==(n=r.get(t,e))?n:null==(n=M.find.attr(t,e))?void 0:n)},attrHooks:{type:{set:function(t,e){if(!v.radioValue&&"radio"===e&&P(t,"input")){var i=t.value;return t.setAttribute("type",e),i&&(t.value=i),e}}}},removeAttr:function(t,e){var i,n=0,r=e&&e.match(N);if(r&&1===t.nodeType)for(;i=r[n++];)t.removeAttribute(i)}}),me={set:function(t,e,i){return!1===e?M.removeAttr(t,i):t.setAttribute(i,i),i}},M.each(M.expr.match.bool.source.match(/\w+/g),(function(t,e){var i=ve[e]||M.find.attr;ve[e]=function(t,e,n){var r,s,o=e.toLowerCase();return n||(s=ve[o],ve[o]=r,r=null!=i(t,e,n)?o:null,ve[o]=s),r}}));var ge=/^(?:input|select|textarea|button)$/i,ye=/^(?:a|area)$/i;function _e(t){return(t.match(N)||[]).join(" ")}function xe(t){return t.getAttribute&&t.getAttribute("class")||""}function be(t){return Array.isArray(t)?t:"string"==typeof t&&t.match(N)||[]}M.fn.extend({prop:function(t,e){return G(this,M.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each((function(){delete this[M.propFix[t]||t]}))}}),M.extend({prop:function(t,e,i){var n,r,s=t.nodeType;if(3!==s&&8!==s&&2!==s)return 1===s&&M.isXMLDoc(t)||(e=M.propFix[e]||e,r=M.propHooks[e]),void 0!==i?r&&"set"in r&&void 0!==(n=r.set(t,i,e))?n:t[e]=i:r&&"get"in r&&null!==(n=r.get(t,e))?n:t[e]},propHooks:{tabIndex:{get:function(t){var e=M.find.attr(t,"tabindex");return e?parseInt(e,10):ge.test(t.nodeName)||ye.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),v.optSelected||(M.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),M.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){M.propFix[this.toLowerCase()]=this})),M.fn.extend({addClass:function(t){var e,i,n,r,s,o,a,h=0;if(g(t))return this.each((function(e){M(this).addClass(t.call(this,e,xe(this)))}));if((e=be(t)).length)for(;i=this[h++];)if(r=xe(i),n=1===i.nodeType&&" "+_e(r)+" "){for(o=0;s=e[o++];)n.indexOf(" "+s+" ")<0&&(n+=s+" ");r!==(a=_e(n))&&i.setAttribute("class",a)}return this},removeClass:function(t){var e,i,n,r,s,o,a,h=0;if(g(t))return this.each((function(e){M(this).removeClass(t.call(this,e,xe(this)))}));if(!arguments.length)return this.attr("class","");if((e=be(t)).length)for(;i=this[h++];)if(r=xe(i),n=1===i.nodeType&&" "+_e(r)+" "){for(o=0;s=e[o++];)for(;n.indexOf(" "+s+" ")>-1;)n=n.replace(" "+s+" "," ");r!==(a=_e(n))&&i.setAttribute("class",a)}return this},toggleClass:function(t,e){var i=typeof t,n="string"===i||Array.isArray(t);return"boolean"==typeof e&&n?e?this.addClass(t):this.removeClass(t):g(t)?this.each((function(i){M(this).toggleClass(t.call(this,i,xe(this),e),e)})):this.each((function(){var e,r,s,o;if(n)for(r=0,s=M(this),o=be(t);e=o[r++];)s.hasClass(e)?s.removeClass(e):s.addClass(e);else void 0!==t&&"boolean"!==i||((e=xe(this))&&Q.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===t?"":Q.get(this,"__className__")||""))}))},hasClass:function(t){var e,i,n=0;for(e=" "+t+" ";i=this[n++];)if(1===i.nodeType&&(" "+_e(xe(i))+" ").indexOf(e)>-1)return!0;return!1}});var we=/\r/g;M.fn.extend({val:function(t){var e,i,n,r=this[0];return arguments.length?(n=g(t),this.each((function(i){var r;1===this.nodeType&&(null==(r=n?t.call(this,i,M(this).val()):t)?r="":"number"==typeof r?r+="":Array.isArray(r)&&(r=M.map(r,(function(t){return null==t?"":t+""}))),(e=M.valHooks[this.type]||M.valHooks[this.nodeName.toLowerCase()])&&"set"in e&&void 0!==e.set(this,r,"value")||(this.value=r))}))):r?(e=M.valHooks[r.type]||M.valHooks[r.nodeName.toLowerCase()])&&"get"in e&&void 0!==(i=e.get(r,"value"))?i:"string"==typeof(i=r.value)?i.replace(we,""):null==i?"":i:void 0}}),M.extend({valHooks:{option:{get:function(t){var e=M.find.attr(t,"value");return null!=e?e:_e(M.text(t))}},select:{get:function(t){var e,i,n,r=t.options,s=t.selectedIndex,o="select-one"===t.type,a=o?null:[],h=o?s+1:r.length;for(n=s<0?h:o?s:0;n<h;n++)if(((i=r[n]).selected||n===s)&&!i.disabled&&(!i.parentNode.disabled||!P(i.parentNode,"optgroup"))){if(e=M(i).val(),o)return e;a.push(e)}return a},set:function(t,e){for(var i,n,r=t.options,s=M.makeArray(e),o=r.length;o--;)((n=r[o]).selected=M.inArray(M.valHooks.option.get(n),s)>-1)&&(i=!0);return i||(t.selectedIndex=-1),s}}}}),M.each(["radio","checkbox"],(function(){M.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=M.inArray(M(t).val(),e)>-1}},v.checkOn||(M.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})})),v.focusin="onfocusin"in n;var Te=/^(?:focusinfocus|focusoutblur)$/,Me=function(t){t.stopPropagation()};M.extend(M.event,{trigger:function(t,e,i,r){var s,o,a,h,u,l,c,d,f=[i||_],m=p.call(t,"type")?t.type:t,v=p.call(t,"namespace")?t.namespace.split("."):[];if(o=d=a=i=i||_,3!==i.nodeType&&8!==i.nodeType&&!Te.test(m+M.event.triggered)&&(m.indexOf(".")>-1&&(v=m.split("."),m=v.shift(),v.sort()),u=m.indexOf(":")<0&&"on"+m,(t=t[M.expando]?t:new M.Event(m,"object"==typeof t&&t)).isTrigger=r?2:3,t.namespace=v.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),e=null==e?[t]:M.makeArray(e,[t]),c=M.event.special[m]||{},r||!c.trigger||!1!==c.trigger.apply(i,e))){if(!r&&!c.noBubble&&!y(i)){for(h=c.delegateType||m,Te.test(h+m)||(o=o.parentNode);o;o=o.parentNode)f.push(o),a=o;a===(i.ownerDocument||_)&&f.push(a.defaultView||a.parentWindow||n)}for(s=0;(o=f[s++])&&!t.isPropagationStopped();)d=o,t.type=s>1?h:c.bindType||m,(l=(Q.get(o,"events")||Object.create(null))[t.type]&&Q.get(o,"handle"))&&l.apply(o,e),(l=u&&o[u])&&l.apply&&Z(o)&&(t.result=l.apply(o,e),!1===t.result&&t.preventDefault());return t.type=m,r||t.isDefaultPrevented()||c._default&&!1!==c._default.apply(f.pop(),e)||!Z(i)||u&&g(i[m])&&!y(i)&&((a=i[u])&&(i[u]=null),M.event.triggered=m,t.isPropagationStopped()&&d.addEventListener(m,Me),i[m](),t.isPropagationStopped()&&d.removeEventListener(m,Me),M.event.triggered=void 0,a&&(i[u]=a)),t.result}},simulate:function(t,e,i){var n=M.extend(new M.Event,i,{type:t,isSimulated:!0});M.event.trigger(n,null,e)}}),M.fn.extend({trigger:function(t,e){return this.each((function(){M.event.trigger(t,e,this)}))},triggerHandler:function(t,e){var i=this[0];if(i)return M.event.trigger(t,e,i,!0)}}),v.focusin||M.each({focus:"focusin",blur:"focusout"},(function(t,e){var i=function(t){M.event.simulate(e,t.target,M.event.fix(t))};M.event.special[e]={setup:function(){var n=this.ownerDocument||this.document||this,r=Q.access(n,e);r||n.addEventListener(t,i,!0),Q.access(n,e,(r||0)+1)},teardown:function(){var n=this.ownerDocument||this.document||this,r=Q.access(n,e)-1;r?Q.access(n,e,r):(n.removeEventListener(t,i,!0),Q.remove(n,e))}}}));var Se=n.location,Ee={guid:Date.now()},Le=/\?/;M.parseXML=function(t){var e;if(!t||"string"!=typeof t)return null;try{e=(new n.DOMParser).parseFromString(t,"text/xml")}catch(t){e=void 0}return e&&!e.getElementsByTagName("parsererror").length||M.error("Invalid XML: "+t),e};var Ae=/\[\]$/,De=/\r?\n/g,Pe=/^(?:submit|button|image|reset|file)$/i,Ce=/^(?:input|select|textarea|keygen)/i;function Oe(t,e,i,n){var r;if(Array.isArray(e))M.each(e,(function(e,r){i||Ae.test(t)?n(t,r):Oe(t+"["+("object"==typeof r&&null!=r?e:"")+"]",r,i,n)}));else if(i||"object"!==w(e))n(t,e);else for(r in e)Oe(t+"["+r+"]",e[r],i,n)}M.param=function(t,e){var i,n=[],r=function(t,e){var i=g(e)?e():e;n[n.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==i?"":i)};if(null==t)return"";if(Array.isArray(t)||t.jquery&&!M.isPlainObject(t))M.each(t,(function(){r(this.name,this.value)}));else for(i in t)Oe(i,t[i],e,r);return n.join("&")},M.fn.extend({serialize:function(){return M.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var t=M.prop(this,"elements");return t?M.makeArray(t):this})).filter((function(){var t=this.type;return this.name&&!M(this).is(":disabled")&&Ce.test(this.nodeName)&&!Pe.test(t)&&(this.checked||!vt.test(t))})).map((function(t,e){var i=M(this).val();return null==i?null:Array.isArray(i)?M.map(i,(function(t){return{name:e.name,value:t.replace(De,"\r\n")}})):{name:e.name,value:i.replace(De,"\r\n")}})).get()}});var ke=/%20/g,Re=/#.*$/,Ie=/([?&])_=[^&]*/,Ye=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fe=/^(?:GET|HEAD)$/,Ne=/^\/\//,Be={},Ue={},je="*/".concat("*"),He=_.createElement("a");function ze(t){return function(e,i){"string"!=typeof e&&(i=e,e="*");var n,r=0,s=e.toLowerCase().match(N)||[];if(g(i))for(;n=s[r++];)"+"===n[0]?(n=n.slice(1)||"*",(t[n]=t[n]||[]).unshift(i)):(t[n]=t[n]||[]).push(i)}}function We(t,e,i,n){var r={},s=t===Ue;function o(a){var h;return r[a]=!0,M.each(t[a]||[],(function(t,a){var u=a(e,i,n);return"string"!=typeof u||s||r[u]?s?!(h=u):void 0:(e.dataTypes.unshift(u),o(u),!1)})),h}return o(e.dataTypes[0])||!r["*"]&&o("*")}function Ge(t,e){var i,n,r=M.ajaxSettings.flatOptions||{};for(i in e)void 0!==e[i]&&((r[i]?t:n||(n={}))[i]=e[i]);return n&&M.extend(!0,t,n),t}He.href=Se.href,M.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Se.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Se.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":je,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":M.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?Ge(Ge(t,M.ajaxSettings),e):Ge(M.ajaxSettings,t)},ajaxPrefilter:ze(Be),ajaxTransport:ze(Ue),ajax:function(t,e){"object"==typeof t&&(e=t,t=void 0),e=e||{};var i,r,s,o,a,h,u,l,c,d,p=M.ajaxSetup({},e),f=p.context||p,m=p.context&&(f.nodeType||f.jquery)?M(f):M.event,v=M.Deferred(),g=M.Callbacks("once memory"),y=p.statusCode||{},x={},b={},w="canceled",T={readyState:0,getResponseHeader:function(t){var e;if(u){if(!o)for(o={};e=Ye.exec(s);)o[e[1].toLowerCase()+" "]=(o[e[1].toLowerCase()+" "]||[]).concat(e[2]);e=o[t.toLowerCase()+" "]}return null==e?null:e.join(", ")},getAllResponseHeaders:function(){return u?s:null},setRequestHeader:function(t,e){return null==u&&(t=b[t.toLowerCase()]=b[t.toLowerCase()]||t,x[t]=e),this},overrideMimeType:function(t){return null==u&&(p.mimeType=t),this},statusCode:function(t){var e;if(t)if(u)T.always(t[T.status]);else for(e in t)y[e]=[y[e],t[e]];return this},abort:function(t){var e=t||w;return i&&i.abort(e),S(0,e),this}};if(v.promise(T),p.url=((t||p.url||Se.href)+"").replace(Ne,Se.protocol+"//"),p.type=e.method||e.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(N)||[""],null==p.crossDomain){h=_.createElement("a");try{h.href=p.url,h.href=h.href,p.crossDomain=He.protocol+"//"+He.host!=h.protocol+"//"+h.host}catch(t){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=M.param(p.data,p.traditional)),We(Be,p,e,T),u)return T;for(c in(l=M.event&&p.global)&&0==M.active++&&M.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Fe.test(p.type),r=p.url.replace(Re,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(ke,"+")):(d=p.url.slice(r.length),p.data&&(p.processData||"string"==typeof p.data)&&(r+=(Le.test(r)?"&":"?")+p.data,delete p.data),!1===p.cache&&(r=r.replace(Ie,"$1"),d=(Le.test(r)?"&":"?")+"_="+Ee.guid+++d),p.url=r+d),p.ifModified&&(M.lastModified[r]&&T.setRequestHeader("If-Modified-Since",M.lastModified[r]),M.etag[r]&&T.setRequestHeader("If-None-Match",M.etag[r])),(p.data&&p.hasContent&&!1!==p.contentType||e.contentType)&&T.setRequestHeader("Content-Type",p.contentType),T.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+je+"; q=0.01":""):p.accepts["*"]),p.headers)T.setRequestHeader(c,p.headers[c]);if(p.beforeSend&&(!1===p.beforeSend.call(f,T,p)||u))return T.abort();if(w="abort",g.add(p.complete),T.done(p.success),T.fail(p.error),i=We(Ue,p,e,T)){if(T.readyState=1,l&&m.trigger("ajaxSend",[T,p]),u)return T;p.async&&p.timeout>0&&(a=n.setTimeout((function(){T.abort("timeout")}),p.timeout));try{u=!1,i.send(x,S)}catch(t){if(u)throw t;S(-1,t)}}else S(-1,"No Transport");function S(t,e,o,h){var c,d,_,x,b,w=e;u||(u=!0,a&&n.clearTimeout(a),i=void 0,s=h||"",T.readyState=t>0?4:0,c=t>=200&&t<300||304===t,o&&(x=function(t,e,i){for(var n,r,s,o,a=t.contents,h=t.dataTypes;"*"===h[0];)h.shift(),void 0===n&&(n=t.mimeType||e.getResponseHeader("Content-Type"));if(n)for(r in a)if(a[r]&&a[r].test(n)){h.unshift(r);break}if(h[0]in i)s=h[0];else{for(r in i){if(!h[0]||t.converters[r+" "+h[0]]){s=r;break}o||(o=r)}s=s||o}if(s)return s!==h[0]&&h.unshift(s),i[s]}(p,T,o)),!c&&M.inArray("script",p.dataTypes)>-1&&(p.converters["text script"]=function(){}),x=function(t,e,i,n){var r,s,o,a,h,u={},l=t.dataTypes.slice();if(l[1])for(o in t.converters)u[o.toLowerCase()]=t.converters[o];for(s=l.shift();s;)if(t.responseFields[s]&&(i[t.responseFields[s]]=e),!h&&n&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),h=s,s=l.shift())if("*"===s)s=h;else if("*"!==h&&h!==s){if(!(o=u[h+" "+s]||u["* "+s]))for(r in u)if((a=r.split(" "))[1]===s&&(o=u[h+" "+a[0]]||u["* "+a[0]])){!0===o?o=u[r]:!0!==u[r]&&(s=a[0],l.unshift(a[1]));break}if(!0!==o)if(o&&t.throws)e=o(e);else try{e=o(e)}catch(t){return{state:"parsererror",error:o?t:"No conversion from "+h+" to "+s}}}return{state:"success",data:e}}(p,x,T,c),c?(p.ifModified&&((b=T.getResponseHeader("Last-Modified"))&&(M.lastModified[r]=b),(b=T.getResponseHeader("etag"))&&(M.etag[r]=b)),204===t||"HEAD"===p.type?w="nocontent":304===t?w="notmodified":(w=x.state,d=x.data,c=!(_=x.error))):(_=w,!t&&w||(w="error",t<0&&(t=0))),T.status=t,T.statusText=(e||w)+"",c?v.resolveWith(f,[d,w,T]):v.rejectWith(f,[T,w,_]),T.statusCode(y),y=void 0,l&&m.trigger(c?"ajaxSuccess":"ajaxError",[T,p,c?d:_]),g.fireWith(f,[T,w]),l&&(m.trigger("ajaxComplete",[T,p]),--M.active||M.event.trigger("ajaxStop")))}return T},getJSON:function(t,e,i){return M.get(t,e,i,"json")},getScript:function(t,e){return M.get(t,void 0,e,"script")}}),M.each(["get","post"],(function(t,e){M[e]=function(t,i,n,r){return g(i)&&(r=r||n,n=i,i=void 0),M.ajax(M.extend({url:t,type:e,dataType:r,data:i,success:n},M.isPlainObject(t)&&t))}})),M.ajaxPrefilter((function(t){var e;for(e in t.headers)"content-type"===e.toLowerCase()&&(t.contentType=t.headers[e]||"")})),M._evalUrl=function(t,e,i){return M.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(t){M.globalEval(t,e,i)}})},M.fn.extend({wrapAll:function(t){var e;return this[0]&&(g(t)&&(t=t.call(this[0])),e=M(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map((function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t})).append(this)),this},wrapInner:function(t){return g(t)?this.each((function(e){M(this).wrapInner(t.call(this,e))})):this.each((function(){var e=M(this),i=e.contents();i.length?i.wrapAll(t):e.append(t)}))},wrap:function(t){var e=g(t);return this.each((function(i){M(this).wrapAll(e?t.call(this,i):t)}))},unwrap:function(t){return this.parent(t).not("body").each((function(){M(this).replaceWith(this.childNodes)})),this}}),M.expr.pseudos.hidden=function(t){return!M.expr.pseudos.visible(t)},M.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},M.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(t){}};var Ve={0:200,1223:204},Xe=M.ajaxSettings.xhr();v.cors=!!Xe&&"withCredentials"in Xe,v.ajax=Xe=!!Xe,M.ajaxTransport((function(t){var e,i;if(v.cors||Xe&&!t.crossDomain)return{send:function(r,s){var o,a=t.xhr();if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];for(o in t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest"),r)a.setRequestHeader(o,r[o]);e=function(t){return function(){e&&(e=i=a.onload=a.onerror=a.onabort=a.ontimeout=a.onreadystatechange=null,"abort"===t?a.abort():"error"===t?"number"!=typeof a.status?s(0,"error"):s(a.status,a.statusText):s(Ve[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=e(),i=a.onerror=a.ontimeout=e("error"),void 0!==a.onabort?a.onabort=i:a.onreadystatechange=function(){4===a.readyState&&n.setTimeout((function(){e&&i()}))},e=e("abort");try{a.send(t.hasContent&&t.data||null)}catch(t){if(e)throw t}},abort:function(){e&&e()}}})),M.ajaxPrefilter((function(t){t.crossDomain&&(t.contents.script=!1)})),M.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return M.globalEval(t),t}}}),M.ajaxPrefilter("script",(function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")})),M.ajaxTransport("script",(function(t){var e,i;if(t.crossDomain||t.scriptAttrs)return{send:function(n,r){e=M("<script>").attr(t.scriptAttrs||{}).prop({charset:t.scriptCharset,src:t.url}).on("load error",i=function(t){e.remove(),i=null,t&&r("error"===t.type?404:200,t.type)}),_.head.appendChild(e[0])},abort:function(){i&&i()}}}));var qe,Je=[],Ze=/(=)\?(?=&|$)|\?\?/;M.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=Je.pop()||M.expando+"_"+Ee.guid++;return this[t]=!0,t}}),M.ajaxPrefilter("json jsonp",(function(t,e,i){var r,s,o,a=!1!==t.jsonp&&(Ze.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ze.test(t.data)&&"data");if(a||"jsonp"===t.dataTypes[0])return r=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,a?t[a]=t[a].replace(Ze,"$1"+r):!1!==t.jsonp&&(t.url+=(Le.test(t.url)?"&":"?")+t.jsonp+"="+r),t.converters["script json"]=function(){return o||M.error(r+" was not called"),o[0]},t.dataTypes[0]="json",s=n[r],n[r]=function(){o=arguments},i.always((function(){void 0===s?M(n).removeProp(r):n[r]=s,t[r]&&(t.jsonpCallback=e.jsonpCallback,Je.push(r)),o&&g(s)&&s(o[0]),o=s=void 0})),"script"})),v.createHTMLDocument=((qe=_.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===qe.childNodes.length),M.parseHTML=function(t,e,i){return"string"!=typeof t?[]:("boolean"==typeof e&&(i=e,e=!1),e||(v.createHTMLDocument?((n=(e=_.implementation.createHTMLDocument("")).createElement("base")).href=_.location.href,e.head.appendChild(n)):e=_),s=!i&&[],(r=C.exec(t))?[e.createElement(r[1])]:(r=Tt([t],e,s),s&&s.length&&M(s).remove(),M.merge([],r.childNodes)));var n,r,s},M.fn.load=function(t,e,i){var n,r,s,o=this,a=t.indexOf(" ");return a>-1&&(n=_e(t.slice(a)),t=t.slice(0,a)),g(e)?(i=e,e=void 0):e&&"object"==typeof e&&(r="POST"),o.length>0&&M.ajax({url:t,type:r||"GET",dataType:"html",data:e}).done((function(t){s=arguments,o.html(n?M("<div>").append(M.parseHTML(t)).find(n):t)})).always(i&&function(t,e){o.each((function(){i.apply(this,s||[t.responseText,e,t])}))}),this},M.expr.pseudos.animated=function(t){return M.grep(M.timers,(function(e){return t===e.elem})).length},M.offset={setOffset:function(t,e,i){var n,r,s,o,a,h,u=M.css(t,"position"),l=M(t),c={};"static"===u&&(t.style.position="relative"),a=l.offset(),s=M.css(t,"top"),h=M.css(t,"left"),("absolute"===u||"fixed"===u)&&(s+h).indexOf("auto")>-1?(o=(n=l.position()).top,r=n.left):(o=parseFloat(s)||0,r=parseFloat(h)||0),g(e)&&(e=e.call(t,i,M.extend({},a))),null!=e.top&&(c.top=e.top-a.top+o),null!=e.left&&(c.left=e.left-a.left+r),"using"in e?e.using.call(t,c):("number"==typeof c.top&&(c.top+="px"),"number"==typeof c.left&&(c.left+="px"),l.css(c))}},M.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each((function(e){M.offset.setOffset(this,t,e)}));var e,i,n=this[0];return n?n.getClientRects().length?(e=n.getBoundingClientRect(),i=n.ownerDocument.defaultView,{top:e.top+i.pageYOffset,left:e.left+i.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var t,e,i,n=this[0],r={top:0,left:0};if("fixed"===M.css(n,"position"))e=n.getBoundingClientRect();else{for(e=this.offset(),i=n.ownerDocument,t=n.offsetParent||i.documentElement;t&&(t===i.body||t===i.documentElement)&&"static"===M.css(t,"position");)t=t.parentNode;t&&t!==n&&1===t.nodeType&&((r=M(t).offset()).top+=M.css(t,"borderTopWidth",!0),r.left+=M.css(t,"borderLeftWidth",!0))}return{top:e.top-r.top-M.css(n,"marginTop",!0),left:e.left-r.left-M.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map((function(){for(var t=this.offsetParent;t&&"static"===M.css(t,"position");)t=t.offsetParent;return t||ot}))}}),M.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},(function(t,e){var i="pageYOffset"===e;M.fn[t]=function(n){return G(this,(function(t,n,r){var s;if(y(t)?s=t:9===t.nodeType&&(s=t.defaultView),void 0===r)return s?s[e]:t[n];s?s.scrollTo(i?s.pageXOffset:r,i?r:s.pageYOffset):t[n]=r}),t,n,arguments.length)}})),M.each(["top","left"],(function(t,e){M.cssHooks[e]=Xt(v.pixelPosition,(function(t,i){if(i)return i=Vt(t,e),Ht.test(i)?M(t).position()[e]+"px":i}))})),M.each({Height:"height",Width:"width"},(function(t,e){M.each({padding:"inner"+t,content:e,"":"outer"+t},(function(i,n){M.fn[n]=function(r,s){var o=arguments.length&&(i||"boolean"!=typeof r),a=i||(!0===r||!0===s?"margin":"border");return G(this,(function(e,i,r){var s;return y(e)?0===n.indexOf("outer")?e["inner"+t]:e.document.documentElement["client"+t]:9===e.nodeType?(s=e.documentElement,Math.max(e.body["scroll"+t],s["scroll"+t],e.body["offset"+t],s["offset"+t],s["client"+t])):void 0===r?M.css(e,i,a):M.style(e,i,r,a)}),e,o?r:void 0,o)}}))})),M.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],(function(t,e){M.fn[e]=function(t){return this.on(e,t)}})),M.fn.extend({bind:function(t,e,i){return this.on(t,null,e,i)},unbind:function(t,e){return this.off(t,null,e)},delegate:function(t,e,i,n){return this.on(e,t,i,n)},undelegate:function(t,e,i){return 1===arguments.length?this.off(t,"**"):this.off(e,t||"**",i)},hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)}}),M.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),(function(t,e){M.fn[e]=function(t,i){return arguments.length>0?this.on(e,null,t,i):this.trigger(e)}}));var Ke=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;M.proxy=function(t,e){var i,n,r;if("string"==typeof e&&(i=t[e],e=t,t=i),g(t))return n=a.call(arguments,2),(r=function(){return t.apply(e||this,n.concat(a.call(arguments)))}).guid=t.guid=t.guid||M.guid++,r},M.holdReady=function(t){t?M.readyWait++:M.ready(!0)},M.isArray=Array.isArray,M.parseJSON=JSON.parse,M.nodeName=P,M.isFunction=g,M.isWindow=y,M.camelCase=J,M.type=w,M.now=Date.now,M.isNumeric=function(t){var e=M.type(t);return("number"===e||"string"===e)&&!isNaN(t-parseFloat(t))},M.trim=function(t){return null==t?"":(t+"").replace(Ke,"")},void 0===(i=function(){return M}.apply(e,[]))||(t.exports=i);var Qe=n.jQuery,$e=n.$;return M.noConflict=function(t){return n.$===M&&(n.$=$e),t&&n.jQuery===M&&(n.jQuery=Qe),M},void 0===r&&(n.jQuery=n.$=M),M}))},49455:(t,e,i)=>{"use strict";i.d(e,{Z:()=>h});var n=i(19327);t=i.hmd(t);var r="object"==typeof exports&&exports&&!exports.nodeType&&exports,s=r&&t&&!t.nodeType&&t,o=s&&s.exports===r?n.Z.Buffer:void 0,a=o?o.allocUnsafe:void 0;const h=function(t,e){if(e)return t.slice();var i=t.length,n=a?a(i):new t.constructor(i);return t.copy(n),n}},17039:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});const n="object"==typeof global&&global&&global.Object===Object&&global},55580:(t,e,i)=>{"use strict";i.d(e,{Z:()=>a});var n=i(17039);t=i.hmd(t);var r="object"==typeof exports&&exports&&!exports.nodeType&&exports,s=r&&t&&!t.nodeType&&t,o=s&&s.exports===r&&n.Z.process;const a=function(){try{var t=s&&s.require&&s.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(t){}}()},19327:(t,e,i)=>{"use strict";i.d(e,{Z:()=>s});var n=i(17039),r="object"==typeof self&&self&&self.Object===Object&&self;const s=n.Z||r||Function("return this")()},9511:(t,e,i)=>{"use strict";i.d(e,{Z:()=>h});var n=i(19327),r=i(60880);t=i.hmd(t);var s="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=s&&t&&!t.nodeType&&t,a=o&&o.exports===s?n.Z.Buffer:void 0;const h=(a?a.isBuffer:void 0)||r.Z},60880:(t,e,i)=>{"use strict";i.d(e,{Z:()=>n});const n=function(){return!1}},82474:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}();function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(e,i,r){void 0===i&&(i=!1),n(this,t),this._fn=e,this._once=i,this._thisArg=r,this._next=this._prev=this._owner=null}return i(t,[{key:"detach",value:function(){return null!==this._owner&&(this._owner.detach(this),!0)}}]),t}();function s(t,e){return t._head?(t._tail._next=e,e._prev=t._tail,t._tail=e):(t._head=e,t._tail=e),e._owner=t,e}var o=function(){function t(){n(this,t),this._head=this._tail=void 0}return i(t,[{key:"handlers",value:function(){var t=!(arguments.length<=0||void 0===arguments[0])&&arguments[0],e=this._head;if(t)return!!e;for(var i=[];e;)i.push(e),e=e._next;return i}},{key:"has",value:function(t){if(!(t instanceof r))throw new Error("MiniSignal#has(): First arg must be a MiniSignalBinding object.");return t._owner===this}},{key:"dispatch",value:function(){var t=this._head;if(!t)return!1;for(;t;)t._once&&this.detach(t),t._fn.apply(t._thisArg,arguments),t=t._next;return!0}},{key:"add",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];if("function"!=typeof t)throw new Error("MiniSignal#add(): First arg must be a Function.");return s(this,new r(t,!1,e))}},{key:"once",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];if("function"!=typeof t)throw new Error("MiniSignal#once(): First arg must be a Function.");return s(this,new r(t,!0,e))}},{key:"detach",value:function(t){if(!(t instanceof r))throw new Error("MiniSignal#detach(): First arg must be a MiniSignalBinding object.");return t._owner!==this||(t._prev&&(t._prev._next=t._next),t._next&&(t._next._prev=t._prev),t===this._head?(this._head=t._next,null===t._next&&(this._tail=null)):t===this._tail&&(this._tail=t._prev,this._tail._next=null),t._owner=null),this}},{key:"detachAll",value:function(){var t=this._head;if(!t)return this;for(this._head=this._tail=null;t;)t._owner=null,t=t._next;return this}}]),t}();o.MiniSignalBinding=r,e.default=o,t.exports=e.default},90137:function(t,e,i){!function(t){"use strict";t.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(t){return/^nm$/i.test(t)},meridiem:function(t,e,i){return t<12?i?"vm":"VM":i?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[M\xf4re om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(i(76474))},88464:function(t,e,i){!function(t){"use strict";t.defineLocale("ar-dz",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u0623\u062d_\u0625\u062b_\u062b\u0644\u0627_\u0623\u0631_\u062e\u0645_\u062c\u0645_\u0633\u0628".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:4}})}(i(76474))},22477:function(t,e,i){!function(t){"use strict";t.defineLocale("ar-kw",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:0,doy:12}})}(i(76474))},79500:function(t,e,i){!function(t){"use strict";var e={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},i=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},n={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},r=function(t){return function(e,r,s,o){var a=i(e),h=n[t][i(e)];return 2===a&&(h=h[r?0:1]),h.replace(/%d/i,e)}},s=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];t.defineLocale("ar-ly",{months:s,monthsShort:s,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(t){return"\u0645"===t},meridiem:function(t,e,i){return t<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(i(76474))},49548:function(t,e,i){!function(t){"use strict";t.defineLocale("ar-ma",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648\u0632_\u063a\u0634\u062a_\u0634\u062a\u0646\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0646\u0628\u0631_\u062f\u062c\u0646\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062a\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0627\u062d\u062f_\u0627\u062a\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:6,doy:12}})}(i(76474))},45463:function(t,e,i){!function(t){"use strict";var e={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},i={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"};t.defineLocale("ar-sa",{months:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u064a\u0646\u0627\u064a\u0631_\u0641\u0628\u0631\u0627\u064a\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064a\u0644_\u0645\u0627\u064a\u0648_\u064a\u0648\u0646\u064a\u0648_\u064a\u0648\u0644\u064a\u0648_\u0623\u063a\u0633\u0637\u0633_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(t){return"\u0645"===t},meridiem:function(t,e,i){return t<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},preparse:function(t){return t.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(t){return i[t]})).replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"\u060c")},week:{dow:0,doy:6}})}(i(76474))},39066:function(t,e,i){!function(t){"use strict";t.defineLocale("ar-tn",{months:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),monthsShort:"\u062c\u0627\u0646\u0641\u064a_\u0641\u064a\u0641\u0631\u064a_\u0645\u0627\u0631\u0633_\u0623\u0641\u0631\u064a\u0644_\u0645\u0627\u064a_\u062c\u0648\u0627\u0646_\u062c\u0648\u064a\u0644\u064a\u0629_\u0623\u0648\u062a_\u0633\u0628\u062a\u0645\u0628\u0631_\u0623\u0643\u062a\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062f\u064a\u0633\u0645\u0628\u0631".split("_"),weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0644\u0649 \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0641\u064a %s",past:"\u0645\u0646\u0630 %s",s:"\u062b\u0648\u0627\u0646",ss:"%d \u062b\u0627\u0646\u064a\u0629",m:"\u062f\u0642\u064a\u0642\u0629",mm:"%d \u062f\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062a",d:"\u064a\u0648\u0645",dd:"%d \u0623\u064a\u0627\u0645",M:"\u0634\u0647\u0631",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0633\u0646\u0629",yy:"%d \u0633\u0646\u0648\u0627\u062a"},week:{dow:1,doy:4}})}(i(76474))},75378:function(t,e,i){!function(t){"use strict";var e={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},i={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},n=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},r={s:["\u0623\u0642\u0644 \u0645\u0646 \u062b\u0627\u0646\u064a\u0629","\u062b\u0627\u0646\u064a\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062b\u0627\u0646\u064a\u062a\u0627\u0646","\u062b\u0627\u0646\u064a\u062a\u064a\u0646"],"%d \u062b\u0648\u0627\u0646","%d \u062b\u0627\u0646\u064a\u0629","%d \u062b\u0627\u0646\u064a\u0629"],m:["\u0623\u0642\u0644 \u0645\u0646 \u062f\u0642\u064a\u0642\u0629","\u062f\u0642\u064a\u0642\u0629 \u0648\u0627\u062d\u062f\u0629",["\u062f\u0642\u064a\u0642\u062a\u0627\u0646","\u062f\u0642\u064a\u0642\u062a\u064a\u0646"],"%d \u062f\u0642\u0627\u0626\u0642","%d \u062f\u0642\u064a\u0642\u0629","%d \u062f\u0642\u064a\u0642\u0629"],h:["\u0623\u0642\u0644 \u0645\u0646 \u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u0629 \u0648\u0627\u062d\u062f\u0629",["\u0633\u0627\u0639\u062a\u0627\u0646","\u0633\u0627\u0639\u062a\u064a\u0646"],"%d \u0633\u0627\u0639\u0627\u062a","%d \u0633\u0627\u0639\u0629","%d \u0633\u0627\u0639\u0629"],d:["\u0623\u0642\u0644 \u0645\u0646 \u064a\u0648\u0645","\u064a\u0648\u0645 \u0648\u0627\u062d\u062f",["\u064a\u0648\u0645\u0627\u0646","\u064a\u0648\u0645\u064a\u0646"],"%d \u0623\u064a\u0627\u0645","%d \u064a\u0648\u0645\u064b\u0627","%d \u064a\u0648\u0645"],M:["\u0623\u0642\u0644 \u0645\u0646 \u0634\u0647\u0631","\u0634\u0647\u0631 \u0648\u0627\u062d\u062f",["\u0634\u0647\u0631\u0627\u0646","\u0634\u0647\u0631\u064a\u0646"],"%d \u0623\u0634\u0647\u0631","%d \u0634\u0647\u0631\u0627","%d \u0634\u0647\u0631"],y:["\u0623\u0642\u0644 \u0645\u0646 \u0639\u0627\u0645","\u0639\u0627\u0645 \u0648\u0627\u062d\u062f",["\u0639\u0627\u0645\u0627\u0646","\u0639\u0627\u0645\u064a\u0646"],"%d \u0623\u0639\u0648\u0627\u0645","%d \u0639\u0627\u0645\u064b\u0627","%d \u0639\u0627\u0645"]},s=function(t){return function(e,i,s,o){var a=n(e),h=r[t][n(e)];return 2===a&&(h=h[i?0:1]),h.replace(/%d/i,e)}},o=["\u064a\u0646\u0627\u064a\u0631","\u0641\u0628\u0631\u0627\u064a\u0631","\u0645\u0627\u0631\u0633","\u0623\u0628\u0631\u064a\u0644","\u0645\u0627\u064a\u0648","\u064a\u0648\u0646\u064a\u0648","\u064a\u0648\u0644\u064a\u0648","\u0623\u063a\u0633\u0637\u0633","\u0633\u0628\u062a\u0645\u0628\u0631","\u0623\u0643\u062a\u0648\u0628\u0631","\u0646\u0648\u0641\u0645\u0628\u0631","\u062f\u064a\u0633\u0645\u0628\u0631"];t.defineLocale("ar",{months:o,monthsShort:o,weekdays:"\u0627\u0644\u0623\u062d\u062f_\u0627\u0644\u0625\u062b\u0646\u064a\u0646_\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062e\u0645\u064a\u0633_\u0627\u0644\u062c\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062a".split("_"),weekdaysShort:"\u0623\u062d\u062f_\u0625\u062b\u0646\u064a\u0646_\u062b\u0644\u0627\u062b\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062e\u0645\u064a\u0633_\u062c\u0645\u0639\u0629_\u0633\u0628\u062a".split("_"),weekdaysMin:"\u062d_\u0646_\u062b_\u0631_\u062e_\u062c_\u0633".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200fM/\u200fYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0635|\u0645/,isPM:function(t){return"\u0645"===t},meridiem:function(t,e,i){return t<12?"\u0635":"\u0645"},calendar:{sameDay:"[\u0627\u0644\u064a\u0648\u0645 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextDay:"[\u063a\u062f\u064b\u0627 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",nextWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastDay:"[\u0623\u0645\u0633 \u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",lastWeek:"dddd [\u0639\u0646\u062f \u0627\u0644\u0633\u0627\u0639\u0629] LT",sameElse:"L"},relativeTime:{future:"\u0628\u0639\u062f %s",past:"\u0645\u0646\u0630 %s",s:s("s"),ss:s("s"),m:s("m"),mm:s("m"),h:s("h"),hh:s("h"),d:s("d"),dd:s("d"),M:s("M"),MM:s("M"),y:s("y"),yy:s("y")},preparse:function(t){return t.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(t){return i[t]})).replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(i(76474))},51636:function(t,e,i){!function(t){"use strict";var e={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-\xfcnc\xfc",4:"-\xfcnc\xfc",100:"-\xfcnc\xfc",6:"-nc\u0131",9:"-uncu",10:"-uncu",30:"-uncu",60:"-\u0131nc\u0131",90:"-\u0131nc\u0131"};t.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ert\u0259si_\xc7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131_\xc7\u0259r\u015f\u0259nb\u0259_C\xfcm\u0259 ax\u015fam\u0131_C\xfcm\u0259_\u015e\u0259nb\u0259".split("_"),weekdaysShort:"Baz_BzE_\xc7Ax_\xc7\u0259r_CAx_C\xfcm_\u015e\u0259n".split("_"),weekdaysMin:"Bz_BE_\xc7A_\xc7\u0259_CA_C\xfc_\u015e\u0259".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[g\u0259l\u0259n h\u0259ft\u0259] dddd [saat] LT",lastDay:"[d\xfcn\u0259n] LT",lastWeek:"[ke\xe7\u0259n h\u0259ft\u0259] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \u0259vv\u0259l",s:"birne\xe7\u0259 saniy\u0259",ss:"%d saniy\u0259",m:"bir d\u0259qiq\u0259",mm:"%d d\u0259qiq\u0259",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gec\u0259|s\u0259h\u0259r|g\xfcnd\xfcz|ax\u015fam/,isPM:function(t){return/^(g\xfcnd\xfcz|ax\u015fam)$/.test(t)},meridiem:function(t,e,i){return t<4?"gec\u0259":t<12?"s\u0259h\u0259r":t<17?"g\xfcnd\xfcz":"ax\u015fam"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0131nc\u0131|inci|nci|\xfcnc\xfc|nc\u0131|uncu)/,ordinal:function(t){if(0===t)return t+"-\u0131nc\u0131";var i=t%10,n=t%100-i,r=t>=100?100:null;return t+(e[i]||e[n]||e[r])},week:{dow:1,doy:7}})}(i(76474))},39609:function(t,e,i){!function(t){"use strict";function e(t,e){var i=t.split("_");return e%10==1&&e%100!=11?i[0]:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?i[1]:i[2]}function i(t,i,n){return"m"===n?i?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443":"h"===n?i?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443":t+" "+e({ss:i?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:i?"\u0445\u0432\u0456\u043b\u0456\u043d\u0430_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d":"\u0445\u0432\u0456\u043b\u0456\u043d\u0443_\u0445\u0432\u0456\u043b\u0456\u043d\u044b_\u0445\u0432\u0456\u043b\u0456\u043d",hh:i?"\u0433\u0430\u0434\u0437\u0456\u043d\u0430_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d":"\u0433\u0430\u0434\u0437\u0456\u043d\u0443_\u0433\u0430\u0434\u0437\u0456\u043d\u044b_\u0433\u0430\u0434\u0437\u0456\u043d",dd:"\u0434\u0437\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u0437\u0451\u043d",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u044b_\u043c\u0435\u0441\u044f\u0446\u0430\u045e",yy:"\u0433\u043e\u0434_\u0433\u0430\u0434\u044b_\u0433\u0430\u0434\u043e\u045e"}[n],+t)}t.defineLocale("be",{months:{format:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f_\u043b\u044e\u0442\u0430\u0433\u0430_\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430_\u0442\u0440\u0430\u045e\u043d\u044f_\u0447\u044d\u0440\u0432\u0435\u043d\u044f_\u043b\u0456\u043f\u0435\u043d\u044f_\u0436\u043d\u0456\u045e\u043d\u044f_\u0432\u0435\u0440\u0430\u0441\u043d\u044f_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434\u0430_\u0441\u043d\u0435\u0436\u043d\u044f".split("_"),standalone:"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c_\u043b\u044e\u0442\u044b_\u0441\u0430\u043a\u0430\u0432\u0456\u043a_\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u044d\u0440\u0432\u0435\u043d\u044c_\u043b\u0456\u043f\u0435\u043d\u044c_\u0436\u043d\u0456\u0432\u0435\u043d\u044c_\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c_\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a_\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434_\u0441\u043d\u0435\u0436\u0430\u043d\u044c".split("_")},monthsShort:"\u0441\u0442\u0443\u0434_\u043b\u044e\u0442_\u0441\u0430\u043a_\u043a\u0440\u0430\u0441_\u0442\u0440\u0430\u0432_\u0447\u044d\u0440\u0432_\u043b\u0456\u043f_\u0436\u043d\u0456\u0432_\u0432\u0435\u0440_\u043a\u0430\u0441\u0442_\u043b\u0456\u0441\u0442_\u0441\u043d\u0435\u0436".split("_"),weekdays:{format:"\u043d\u044f\u0434\u0437\u0435\u043b\u044e_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0443_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0443_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),standalone:"\u043d\u044f\u0434\u0437\u0435\u043b\u044f_\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a_\u0430\u045e\u0442\u043e\u0440\u0430\u043a_\u0441\u0435\u0440\u0430\u0434\u0430_\u0447\u0430\u0446\u0432\u0435\u0440_\u043f\u044f\u0442\u043d\u0456\u0446\u0430_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),isFormat:/\[ ?[\u0423\u0443\u045e] ?(?:\u043c\u0456\u043d\u0443\u043b\u0443\u044e|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0443\u044e)? ?\] ?dddd/},weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0430\u0442_\u0441\u0440_\u0447\u0446_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., HH:mm",LLLL:"dddd, D MMMM YYYY \u0433., HH:mm"},calendar:{sameDay:"[\u0421\u0451\u043d\u043d\u044f \u045e] LT",nextDay:"[\u0417\u0430\u045e\u0442\u0440\u0430 \u045e] LT",lastDay:"[\u0423\u0447\u043e\u0440\u0430 \u045e] LT",nextWeek:function(){return"[\u0423] dddd [\u045e] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u0443\u044e] dddd [\u045e] LT";case 1:case 2:case 4:return"[\u0423 \u043c\u0456\u043d\u0443\u043b\u044b] dddd [\u045e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u0440\u0430\u0437 %s",past:"%s \u0442\u0430\u043c\u0443",s:"\u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0441\u0435\u043a\u0443\u043d\u0434",m:i,mm:i,h:i,hh:i,d:"\u0434\u0437\u0435\u043d\u044c",dd:i,M:"\u043c\u0435\u0441\u044f\u0446",MM:i,y:"\u0433\u043e\u0434",yy:i},meridiemParse:/\u043d\u043e\u0447\u044b|\u0440\u0430\u043d\u0456\u0446\u044b|\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430/,isPM:function(t){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0430\u0440\u0430)$/.test(t)},meridiem:function(t,e,i){return t<4?"\u043d\u043e\u0447\u044b":t<12?"\u0440\u0430\u043d\u0456\u0446\u044b":t<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0430\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0456|\u044b|\u0433\u0430)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t%10!=2&&t%10!=3||t%100==12||t%100==13?t+"-\u044b":t+"-\u0456";case"D":return t+"-\u0433\u0430";default:return t}},week:{dow:1,doy:7}})}(i(76474))},63069:function(t,e,i){!function(t){"use strict";t.defineLocale("bg",{months:"\u044f\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u044f\u043d\u0440_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u044e\u043d\u0438_\u044e\u043b\u0438_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u044f\u0434\u0430_\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a_\u043f\u0435\u0442\u044a\u043a_\u0441\u044a\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u044f_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u044a\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u043d\u0435\u0441 \u0432] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432] LT",nextWeek:"dddd [\u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0430\u0442\u0430] dddd [\u0432] LT";case 1:case 2:case 4:case 5:return"[\u0412 \u0438\u0437\u043c\u0438\u043d\u0430\u043b\u0438\u044f] dddd [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0441\u043b\u0435\u0434 %s",past:"\u043f\u0440\u0435\u0434\u0438 %s",s:"\u043d\u044f\u043a\u043e\u043b\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u043d\u0438",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0430",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(t){var e=t%10,i=t%100;return 0===t?t+"-\u0435\u0432":0===i?t+"-\u0435\u043d":i>10&&i<20?t+"-\u0442\u0438":1===e?t+"-\u0432\u0438":2===e?t+"-\u0440\u0438":7===e||8===e?t+"-\u043c\u0438":t+"-\u0442\u0438"},week:{dow:1,doy:7}})}(i(76474))},35554:function(t,e,i){!function(t){"use strict";t.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_M\u025bkalo_Zuw\u025bnkalo_Zuluyekalo_Utikalo_S\u025btanburukalo_\u0254kut\u0254burukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_M\u025b_Zuw_Zul_Uti_S\u025bt_\u0254ku_Now_Des".split("_"),weekdays:"Kari_Nt\u025bn\u025bn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Nt\u025b_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [l\u025br\u025b] HH:mm"},calendar:{sameDay:"[Bi l\u025br\u025b] LT",nextDay:"[Sini l\u025br\u025b] LT",nextWeek:"dddd [don l\u025br\u025b] LT",lastDay:"[Kunu l\u025br\u025b] LT",lastWeek:"dddd [t\u025bm\u025bnen l\u025br\u025b] LT",sameElse:"L"},relativeTime:{future:"%s k\u0254n\u0254",past:"a b\u025b %s b\u0254",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"l\u025br\u025b kelen",hh:"l\u025br\u025b %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(i(76474))},75221:function(t,e,i){!function(t){"use strict";var e={1:"\u09e7",2:"\u09e8",3:"\u09e9",4:"\u09ea",5:"\u09eb",6:"\u09ec",7:"\u09ed",8:"\u09ee",9:"\u09ef",0:"\u09e6"},i={"\u09e7":"1","\u09e8":"2","\u09e9":"3","\u09ea":"4","\u09eb":"5","\u09ec":"6","\u09ed":"7","\u09ee":"8","\u09ef":"9","\u09e6":"0"};t.defineLocale("bn",{months:"\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0_\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09bf_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0\u09bf\u09b2_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2\u09be\u0987_\u0986\u0997\u09b8\u09cd\u099f_\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0_\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0_\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0_\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0".split("_"),monthsShort:"\u099c\u09be\u09a8\u09c1_\u09ab\u09c7\u09ac_\u09ae\u09be\u09b0\u09cd\u099a_\u098f\u09aa\u09cd\u09b0_\u09ae\u09c7_\u099c\u09c1\u09a8_\u099c\u09c1\u09b2_\u0986\u0997_\u09b8\u09c7\u09aa\u09cd\u099f_\u0985\u0995\u09cd\u099f\u09cb_\u09a8\u09ad\u09c7_\u09a1\u09bf\u09b8\u09c7".split("_"),weekdays:"\u09b0\u09ac\u09bf\u09ac\u09be\u09b0_\u09b8\u09cb\u09ae\u09ac\u09be\u09b0_\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0_\u09ac\u09c1\u09a7\u09ac\u09be\u09b0_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0_\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0_\u09b6\u09a8\u09bf\u09ac\u09be\u09b0".split("_"),weekdaysShort:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997\u09b2_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),weekdaysMin:"\u09b0\u09ac\u09bf_\u09b8\u09cb\u09ae_\u09ae\u0999\u09cd\u0997_\u09ac\u09c1\u09a7_\u09ac\u09c3\u09b9\u0983_\u09b6\u09c1\u0995\u09cd\u09b0_\u09b6\u09a8\u09bf".split("_"),longDateFormat:{LT:"A h:mm \u09b8\u09ae\u09df",LTS:"A h:mm:ss \u09b8\u09ae\u09df",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u09b8\u09ae\u09df",LLLL:"dddd, D MMMM YYYY, A h:mm \u09b8\u09ae\u09df"},calendar:{sameDay:"[\u0986\u099c] LT",nextDay:"[\u0986\u0997\u09be\u09ae\u09c0\u0995\u09be\u09b2] LT",nextWeek:"dddd, LT",lastDay:"[\u0997\u09a4\u0995\u09be\u09b2] LT",lastWeek:"[\u0997\u09a4] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u09aa\u09b0\u09c7",past:"%s \u0986\u0997\u09c7",s:"\u0995\u09df\u09c7\u0995 \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",ss:"%d \u09b8\u09c7\u0995\u09c7\u09a8\u09cd\u09a1",m:"\u098f\u0995 \u09ae\u09bf\u09a8\u09bf\u099f",mm:"%d \u09ae\u09bf\u09a8\u09bf\u099f",h:"\u098f\u0995 \u0998\u09a8\u09cd\u099f\u09be",hh:"%d \u0998\u09a8\u09cd\u099f\u09be",d:"\u098f\u0995 \u09a6\u09bf\u09a8",dd:"%d \u09a6\u09bf\u09a8",M:"\u098f\u0995 \u09ae\u09be\u09b8",MM:"%d \u09ae\u09be\u09b8",y:"\u098f\u0995 \u09ac\u099b\u09b0",yy:"%d \u09ac\u099b\u09b0"},preparse:function(t){return t.replace(/[\u09e7\u09e8\u09e9\u09ea\u09eb\u09ec\u09ed\u09ee\u09ef\u09e6]/g,(function(t){return i[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/\u09b0\u09be\u09a4|\u09b8\u0995\u09be\u09b2|\u09a6\u09c1\u09aa\u09c1\u09b0|\u09ac\u09bf\u0995\u09be\u09b2|\u09b0\u09be\u09a4/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u09b0\u09be\u09a4"===e&&t>=4||"\u09a6\u09c1\u09aa\u09c1\u09b0"===e&&t<5||"\u09ac\u09bf\u0995\u09be\u09b2"===e?t+12:t},meridiem:function(t,e,i){return t<4?"\u09b0\u09be\u09a4":t<10?"\u09b8\u0995\u09be\u09b2":t<17?"\u09a6\u09c1\u09aa\u09c1\u09b0":t<20?"\u09ac\u09bf\u0995\u09be\u09b2":"\u09b0\u09be\u09a4"},week:{dow:0,doy:6}})}(i(76474))},29832:function(t,e,i){!function(t){"use strict";var e={1:"\u0f21",2:"\u0f22",3:"\u0f23",4:"\u0f24",5:"\u0f25",6:"\u0f26",7:"\u0f27",8:"\u0f28",9:"\u0f29",0:"\u0f20"},i={"\u0f21":"1","\u0f22":"2","\u0f23":"3","\u0f24":"4","\u0f25":"5","\u0f26":"6","\u0f27":"7","\u0f28":"8","\u0f29":"9","\u0f20":"0"};t.defineLocale("bo",{months:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),monthsShort:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54".split("_"),weekdays:"\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysShort:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),weekdaysMin:"\u0f49\u0f72\u0f0b\u0f58\u0f0b_\u0f5f\u0fb3\u0f0b\u0f56\u0f0b_\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b_\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b_\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74_\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b_\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0f51\u0f72\u0f0b\u0f62\u0f72\u0f44] LT",nextDay:"[\u0f66\u0f44\u0f0b\u0f49\u0f72\u0f53] LT",nextWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f62\u0f97\u0f7a\u0f66\u0f0b\u0f58], LT",lastDay:"[\u0f41\u0f0b\u0f66\u0f44] LT",lastWeek:"[\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f55\u0fb2\u0f42\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f58] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0f63\u0f0b",past:"%s \u0f66\u0f94\u0f53\u0f0b\u0f63",s:"\u0f63\u0f58\u0f0b\u0f66\u0f44",ss:"%d \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f0d",m:"\u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b\u0f42\u0f45\u0f72\u0f42",mm:"%d \u0f66\u0f90\u0f62\u0f0b\u0f58",h:"\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b\u0f42\u0f45\u0f72\u0f42",hh:"%d \u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51",d:"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f45\u0f72\u0f42",dd:"%d \u0f49\u0f72\u0f53\u0f0b",M:"\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f45\u0f72\u0f42",MM:"%d \u0f5f\u0fb3\u0f0b\u0f56",y:"\u0f63\u0f7c\u0f0b\u0f42\u0f45\u0f72\u0f42",yy:"%d \u0f63\u0f7c"},preparse:function(t){return t.replace(/[\u0f21\u0f22\u0f23\u0f24\u0f25\u0f26\u0f27\u0f28\u0f29\u0f20]/g,(function(t){return i[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c|\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66|\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44|\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42|\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"===e&&t>=4||"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44"===e&&t<5||"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42"===e?t+12:t},meridiem:function(t,e,i){return t<4?"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c":t<10?"\u0f5e\u0f7c\u0f42\u0f66\u0f0b\u0f40\u0f66":t<17?"\u0f49\u0f72\u0f53\u0f0b\u0f42\u0f74\u0f44":t<20?"\u0f51\u0f42\u0f7c\u0f44\u0f0b\u0f51\u0f42":"\u0f58\u0f5a\u0f53\u0f0b\u0f58\u0f7c"},week:{dow:0,doy:6}})}(i(76474))},68685:function(t,e,i){!function(t){"use strict";function e(t,e,i){return t+" "+r({mm:"munutenn",MM:"miz",dd:"devezh"}[i],t)}function i(t){switch(n(t)){case 1:case 3:case 4:case 5:case 9:return t+" bloaz";default:return t+" vloaz"}}function n(t){return t>9?n(t%10):t}function r(t,e){return 2===e?s(t):t}function s(t){var e={m:"v",b:"v",d:"z"};return void 0===e[t.charAt(0)]?t:e[t.charAt(0)]+t.substring(1)}t.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondenno\xf9",ss:"%d eilenn",m:"ur vunutenn",mm:e,h:"un eur",hh:"%d eur",d:"un devezh",dd:e,M:"ur miz",MM:e,y:"ur bloaz",yy:i},dayOfMonthOrdinalParse:/\d{1,2}(a\xf1|vet)/,ordinal:function(t){return t+(1===t?"a\xf1":"vet")},week:{dow:1,doy:4}})}(i(76474))},1322:function(t,e,i){!function(t){"use strict";function e(t,e,i){var n=t+" ";switch(i){case"ss":return n+=1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi";case"m":return e?"jedna minuta":"jedne minute";case"mm":return n+=1===t?"minuta":2===t||3===t||4===t?"minute":"minuta";case"h":return e?"jedan sat":"jednog sata";case"hh":return n+=1===t?"sat":2===t||3===t||4===t?"sata":"sati";case"dd":return n+=1===t?"dan":"dana";case"MM":return n+=1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci";case"yy":return n+=1===t?"godina":2===t||3===t||4===t?"godine":"godina"}}t.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(i(76474))},21081:function(t,e,i){!function(t){"use strict";t.defineLocale("ca",{months:{standalone:"gener_febrer_mar\xe7_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de mar\xe7_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._mar\xe7_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[dem\xe0 a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aqu\xed %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|\xe8|a)/,ordinal:function(t,e){var i=1===t?"r":2===t?"n":3===t?"r":4===t?"t":"\xe8";return"w"!==e&&"W"!==e||(i="a"),t+i},week:{dow:1,doy:4}})}(i(76474))},78998:function(t,e,i){!function(t){"use strict";var e="leden_\xfanor_b\u0159ezen_duben_kv\u011bten_\u010derven_\u010dervenec_srpen_z\xe1\u0159\xed_\u0159\xedjen_listopad_prosinec".split("_"),i="led_\xfano_b\u0159e_dub_kv\u011b_\u010dvn_\u010dvc_srp_z\xe1\u0159_\u0159\xedj_lis_pro".split("_"),n=[/^led/i,/^\xfano/i,/^b\u0159e/i,/^dub/i,/^kv\u011b/i,/^(\u010dvn|\u010derven$|\u010dervna)/i,/^(\u010dvc|\u010dervenec|\u010dervence)/i,/^srp/i,/^z\xe1\u0159/i,/^\u0159\xedj/i,/^lis/i,/^pro/i],r=/^(leden|\xfanor|b\u0159ezen|duben|kv\u011bten|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|z\xe1\u0159\xed|\u0159\xedjen|listopad|prosinec|led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i;function s(t){return t>1&&t<5&&1!=~~(t/10)}function o(t,e,i,n){var r=t+" ";switch(i){case"s":return e||n?"p\xe1r sekund":"p\xe1r sekundami";case"ss":return e||n?r+(s(t)?"sekundy":"sekund"):r+"sekundami";case"m":return e?"minuta":n?"minutu":"minutou";case"mm":return e||n?r+(s(t)?"minuty":"minut"):r+"minutami";case"h":return e?"hodina":n?"hodinu":"hodinou";case"hh":return e||n?r+(s(t)?"hodiny":"hodin"):r+"hodinami";case"d":return e||n?"den":"dnem";case"dd":return e||n?r+(s(t)?"dny":"dn\xed"):r+"dny";case"M":return e||n?"m\u011bs\xedc":"m\u011bs\xedcem";case"MM":return e||n?r+(s(t)?"m\u011bs\xedce":"m\u011bs\xedc\u016f"):r+"m\u011bs\xedci";case"y":return e||n?"rok":"rokem";case"yy":return e||n?r+(s(t)?"roky":"let"):r+"lety"}}t.defineLocale("cs",{months:e,monthsShort:i,monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(leden|ledna|\xfanora|\xfanor|b\u0159ezen|b\u0159ezna|duben|dubna|kv\u011bten|kv\u011btna|\u010dervenec|\u010dervence|\u010derven|\u010dervna|srpen|srpna|z\xe1\u0159\xed|\u0159\xedjen|\u0159\xedjna|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|\xfano|b\u0159e|dub|kv\u011b|\u010dvn|\u010dvc|srp|z\xe1\u0159|\u0159\xedj|lis|pro)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"ned\u011ble_pond\u011bl\xed_\xfater\xfd_st\u0159eda_\u010dtvrtek_p\xe1tek_sobota".split("_"),weekdaysShort:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),weekdaysMin:"ne_po_\xfat_st_\u010dt_p\xe1_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[z\xedtra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v ned\u011bli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve st\u0159edu v] LT";case 4:return"[ve \u010dtvrtek v] LT";case 5:return"[v p\xe1tek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[v\u010dera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou ned\u011bli v] LT";case 1:case 2:return"[minul\xe9] dddd [v] LT";case 3:return"[minulou st\u0159edu v] LT";case 4:case 5:return"[minul\xfd] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:o,ss:o,m:o,mm:o,h:o,hh:o,d:o,dd:o,M:o,MM:o,y:o,yy:o},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},60494:function(t,e,i){!function(t){"use strict";t.defineLocale("cv",{months:"\u043a\u04d1\u0440\u043b\u0430\u0447_\u043d\u0430\u0440\u04d1\u0441_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440\u0442\u043c\u0435_\u0443\u0442\u04d1_\u04ab\u0443\u0440\u043b\u0430_\u0430\u0432\u04d1\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448\u0442\u0430\u0432".split("_"),monthsShort:"\u043a\u04d1\u0440_\u043d\u0430\u0440_\u043f\u0443\u0448_\u0430\u043a\u0430_\u043c\u0430\u0439_\u04ab\u04d7\u0440_\u0443\u0442\u04d1_\u04ab\u0443\u0440_\u0430\u0432\u043d_\u044e\u043f\u0430_\u0447\u04f3\u043a_\u0440\u0430\u0448".split("_"),weekdays:"\u0432\u044b\u0440\u0441\u0430\u0440\u043d\u0438\u043a\u0443\u043d_\u0442\u0443\u043d\u0442\u0438\u043a\u0443\u043d_\u044b\u0442\u043b\u0430\u0440\u0438\u043a\u0443\u043d_\u044e\u043d\u043a\u0443\u043d_\u043a\u04d7\u04ab\u043d\u0435\u0440\u043d\u0438\u043a\u0443\u043d_\u044d\u0440\u043d\u0435\u043a\u0443\u043d_\u0448\u04d1\u043c\u0430\u0442\u043a\u0443\u043d".split("_"),weekdaysShort:"\u0432\u044b\u0440_\u0442\u0443\u043d_\u044b\u0442\u043b_\u044e\u043d_\u043a\u04d7\u04ab_\u044d\u0440\u043d_\u0448\u04d1\u043c".split("_"),weekdaysMin:"\u0432\u0440_\u0442\u043d_\u044b\u0442_\u044e\u043d_\u043a\u04ab_\u044d\u0440_\u0448\u043c".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7]",LLL:"YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm",LLLL:"dddd, YYYY [\u04ab\u0443\u043b\u0445\u0438] MMMM [\u0443\u0439\u04d1\u0445\u04d7\u043d] D[-\u043c\u04d7\u0448\u04d7], HH:mm"},calendar:{sameDay:"[\u041f\u0430\u044f\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextDay:"[\u042b\u0440\u0430\u043d] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastDay:"[\u04d6\u043d\u0435\u0440] LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",nextWeek:"[\u04aa\u0438\u0442\u0435\u0441] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",lastWeek:"[\u0418\u0440\u0442\u043d\u04d7] dddd LT [\u0441\u0435\u0445\u0435\u0442\u0440\u0435]",sameElse:"L"},relativeTime:{future:function(t){return t+(/\u0441\u0435\u0445\u0435\u0442$/i.exec(t)?"\u0440\u0435\u043d":/\u04ab\u0443\u043b$/i.exec(t)?"\u0442\u0430\u043d":"\u0440\u0430\u043d")},past:"%s \u043a\u0430\u044f\u043b\u043b\u0430",s:"\u043f\u04d7\u0440-\u0438\u043a \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",ss:"%d \u04ab\u0435\u043a\u043a\u0443\u043d\u0442",m:"\u043f\u04d7\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u043f\u04d7\u0440 \u0441\u0435\u0445\u0435\u0442",hh:"%d \u0441\u0435\u0445\u0435\u0442",d:"\u043f\u04d7\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u043f\u04d7\u0440 \u0443\u0439\u04d1\u0445",MM:"%d \u0443\u0439\u04d1\u0445",y:"\u043f\u04d7\u0440 \u04ab\u0443\u043b",yy:"%d \u04ab\u0443\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-\u043c\u04d7\u0448/,ordinal:"%d-\u043c\u04d7\u0448",week:{dow:1,doy:7}})}(i(76474))},66035:function(t,e,i){!function(t){"use strict";t.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn \xf4l",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(t){var e="";return t>20?e=40===t||50===t||60===t||80===t||100===t?"fed":"ain":t>0&&(e=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][t]),t+e},week:{dow:1,doy:4}})}(i(76474))},26036:function(t,e,i){!function(t){"use strict";t.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8n_man_tir_ons_tor_fre_l\xf8r".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"p\xe5 dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xe5 sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"et \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},5745:function(t,e,i){!function(t){"use strict";function e(t,e,i,n){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[i][0]:r[i][1]}t.defineLocale("de-at",{months:"J\xe4nner_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"J\xe4n._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},89061:function(t,e,i){!function(t){"use strict";function e(t,e,i,n){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[i][0]:r[i][1]}t.defineLocale("de-ch",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},13039:function(t,e,i){!function(t){"use strict";function e(t,e,i,n){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[i][0]:r[i][1]}t.defineLocale("de",{months:"Januar_Februar_M\xe4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xe4rz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},57036:function(t,e,i){!function(t){"use strict";var e=["\u0796\u07ac\u0782\u07aa\u0787\u07a6\u0783\u07a9","\u078a\u07ac\u0784\u07b0\u0783\u07aa\u0787\u07a6\u0783\u07a9","\u0789\u07a7\u0783\u07a8\u0797\u07aa","\u0787\u07ad\u0795\u07b0\u0783\u07a9\u078d\u07aa","\u0789\u07ad","\u0796\u07ab\u0782\u07b0","\u0796\u07aa\u078d\u07a6\u0787\u07a8","\u0787\u07af\u078e\u07a6\u0790\u07b0\u0793\u07aa","\u0790\u07ac\u0795\u07b0\u0793\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0787\u07ae\u0786\u07b0\u0793\u07af\u0784\u07a6\u0783\u07aa","\u0782\u07ae\u0788\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa","\u0791\u07a8\u0790\u07ac\u0789\u07b0\u0784\u07a6\u0783\u07aa"],i=["\u0787\u07a7\u078b\u07a8\u0787\u07b0\u078c\u07a6","\u0780\u07af\u0789\u07a6","\u0787\u07a6\u0782\u07b0\u078e\u07a7\u0783\u07a6","\u0784\u07aa\u078b\u07a6","\u0784\u07aa\u0783\u07a7\u0790\u07b0\u078a\u07a6\u078c\u07a8","\u0780\u07aa\u0786\u07aa\u0783\u07aa","\u0780\u07ae\u0782\u07a8\u0780\u07a8\u0783\u07aa"];t.defineLocale("dv",{months:e,monthsShort:e,weekdays:i,weekdaysShort:i,weekdaysMin:"\u0787\u07a7\u078b\u07a8_\u0780\u07af\u0789\u07a6_\u0787\u07a6\u0782\u07b0_\u0784\u07aa\u078b\u07a6_\u0784\u07aa\u0783\u07a7_\u0780\u07aa\u0786\u07aa_\u0780\u07ae\u0782\u07a8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0789\u0786|\u0789\u078a/,isPM:function(t){return"\u0789\u078a"===t},meridiem:function(t,e,i){return t<12?"\u0789\u0786":"\u0789\u078a"},calendar:{sameDay:"[\u0789\u07a8\u0787\u07a6\u078b\u07aa] LT",nextDay:"[\u0789\u07a7\u078b\u07a6\u0789\u07a7] LT",nextWeek:"dddd LT",lastDay:"[\u0787\u07a8\u0787\u07b0\u0794\u07ac] LT",lastWeek:"[\u078a\u07a7\u0787\u07a8\u078c\u07aa\u0788\u07a8] dddd LT",sameElse:"L"},relativeTime:{future:"\u078c\u07ac\u0783\u07ad\u078e\u07a6\u0787\u07a8 %s",past:"\u0786\u07aa\u0783\u07a8\u0782\u07b0 %s",s:"\u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa\u0786\u07ae\u0785\u07ac\u0787\u07b0",ss:"d% \u0790\u07a8\u0786\u07aa\u0782\u07b0\u078c\u07aa",m:"\u0789\u07a8\u0782\u07a8\u0793\u07ac\u0787\u07b0",mm:"\u0789\u07a8\u0782\u07a8\u0793\u07aa %d",h:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07ac\u0787\u07b0",hh:"\u078e\u07a6\u0791\u07a8\u0787\u07a8\u0783\u07aa %d",d:"\u078b\u07aa\u0788\u07a6\u0780\u07ac\u0787\u07b0",dd:"\u078b\u07aa\u0788\u07a6\u0790\u07b0 %d",M:"\u0789\u07a6\u0780\u07ac\u0787\u07b0",MM:"\u0789\u07a6\u0790\u07b0 %d",y:"\u0787\u07a6\u0780\u07a6\u0783\u07ac\u0787\u07b0",yy:"\u0787\u07a6\u0780\u07a6\u0783\u07aa %d"},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/,/g,"\u060c")},week:{dow:7,doy:12}})}(i(76474))},55553:function(t,e,i){!function(t){"use strict";function e(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}t.defineLocale("el",{monthsNominativeEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2_\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2_\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2_\u039c\u03ac\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2_\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2_\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2_\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2_\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2_\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2".split("_"),monthsGenitiveEl:"\u0399\u03b1\u03bd\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03b1\u03c1\u03af\u03bf\u03c5_\u039c\u03b1\u03c1\u03c4\u03af\u03bf\u03c5_\u0391\u03c0\u03c1\u03b9\u03bb\u03af\u03bf\u03c5_\u039c\u03b1\u0390\u03bf\u03c5_\u0399\u03bf\u03c5\u03bd\u03af\u03bf\u03c5_\u0399\u03bf\u03c5\u03bb\u03af\u03bf\u03c5_\u0391\u03c5\u03b3\u03bf\u03cd\u03c3\u03c4\u03bf\u03c5_\u03a3\u03b5\u03c0\u03c4\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5_\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5_\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5".split("_"),months:function(t,e){return t?"string"==typeof e&&/D/.test(e.substring(0,e.indexOf("MMMM")))?this._monthsGenitiveEl[t.month()]:this._monthsNominativeEl[t.month()]:this._monthsNominativeEl},monthsShort:"\u0399\u03b1\u03bd_\u03a6\u03b5\u03b2_\u039c\u03b1\u03c1_\u0391\u03c0\u03c1_\u039c\u03b1\u03ca_\u0399\u03bf\u03c5\u03bd_\u0399\u03bf\u03c5\u03bb_\u0391\u03c5\u03b3_\u03a3\u03b5\u03c0_\u039f\u03ba\u03c4_\u039d\u03bf\u03b5_\u0394\u03b5\u03ba".split("_"),weekdays:"\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae_\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1_\u03a4\u03c1\u03af\u03c4\u03b7_\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7_\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7_\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae_\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf".split("_"),weekdaysShort:"\u039a\u03c5\u03c1_\u0394\u03b5\u03c5_\u03a4\u03c1\u03b9_\u03a4\u03b5\u03c4_\u03a0\u03b5\u03bc_\u03a0\u03b1\u03c1_\u03a3\u03b1\u03b2".split("_"),weekdaysMin:"\u039a\u03c5_\u0394\u03b5_\u03a4\u03c1_\u03a4\u03b5_\u03a0\u03b5_\u03a0\u03b1_\u03a3\u03b1".split("_"),meridiem:function(t,e,i){return t>11?i?"\u03bc\u03bc":"\u039c\u039c":i?"\u03c0\u03bc":"\u03a0\u039c"},isPM:function(t){return"\u03bc"===(t+"").toLowerCase()[0]},meridiemParse:/[\u03a0\u039c]\.?\u039c?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[\u03a3\u03ae\u03bc\u03b5\u03c1\u03b1 {}] LT",nextDay:"[\u0391\u03cd\u03c1\u03b9\u03bf {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[\u03a7\u03b8\u03b5\u03c2 {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[\u03c4\u03bf \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf] dddd [{}] LT";default:return"[\u03c4\u03b7\u03bd \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03b7] dddd [{}] LT"}},sameElse:"L"},calendar:function(t,i){var n=this._calendarEl[t],r=i&&i.hours();return e(n)&&(n=n.apply(i)),n.replace("{}",r%12==1?"\u03c3\u03c4\u03b7":"\u03c3\u03c4\u03b9\u03c2")},relativeTime:{future:"\u03c3\u03b5 %s",past:"%s \u03c0\u03c1\u03b9\u03bd",s:"\u03bb\u03af\u03b3\u03b1 \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",ss:"%d \u03b4\u03b5\u03c5\u03c4\u03b5\u03c1\u03cc\u03bb\u03b5\u03c0\u03c4\u03b1",m:"\u03ad\u03bd\u03b1 \u03bb\u03b5\u03c0\u03c4\u03cc",mm:"%d \u03bb\u03b5\u03c0\u03c4\u03ac",h:"\u03bc\u03af\u03b1 \u03ce\u03c1\u03b1",hh:"%d \u03ce\u03c1\u03b5\u03c2",d:"\u03bc\u03af\u03b1 \u03bc\u03ad\u03c1\u03b1",dd:"%d \u03bc\u03ad\u03c1\u03b5\u03c2",M:"\u03ad\u03bd\u03b1\u03c2 \u03bc\u03ae\u03bd\u03b1\u03c2",MM:"%d \u03bc\u03ae\u03bd\u03b5\u03c2",y:"\u03ad\u03bd\u03b1\u03c2 \u03c7\u03c1\u03cc\u03bd\u03bf\u03c2",yy:"%d \u03c7\u03c1\u03cc\u03bd\u03b9\u03b1"},dayOfMonthOrdinalParse:/\d{1,2}\u03b7/,ordinal:"%d\u03b7",week:{dow:1,doy:4}})}(i(76474))},85192:function(t,e,i){!function(t){"use strict";t.defineLocale("en-SG",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(i(76474))},86695:function(t,e,i){!function(t){"use strict";t.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(i(76474))},24491:function(t,e,i){!function(t){"use strict";t.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})}(i(76474))},31724:function(t,e,i){!function(t){"use strict";t.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(i(76474))},28790:function(t,e,i){!function(t){"use strict";t.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(i(76474))},14166:function(t,e,i){!function(t){"use strict";t.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})}(i(76474))},96970:function(t,e,i){!function(t){"use strict";t.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(i(76474))},18076:function(t,e,i){!function(t){"use strict";t.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_a\u016dgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_a\u016dg_sep_okt_nov_dec".split("_"),weekdays:"diman\u0109o_lundo_mardo_merkredo_\u0135a\u016ddo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_\u0135a\u016d_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_\u0135a_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(t){return"p"===t.charAt(0).toLowerCase()},meridiem:function(t,e,i){return t>11?i?"p.t.m.":"P.T.M.":i?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodia\u016d je] LT",nextDay:"[Morga\u016d je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hiera\u016d je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"anta\u016d %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(i(76474))},24902:function(t,e,i){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),i="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),n=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;t.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,n){return t?/-MMM-/.test(n)?i[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(i(76474))},92905:function(t,e,i){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),i="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),n=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;t.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,n){return t?/-MMM-/.test(n)?i[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:0,doy:6}})}(i(76474))},27777:function(t,e,i){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),i="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),n=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;t.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,n){return t?/-MMM-/.test(n)?i[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"domingo_lunes_martes_mi\xe9rcoles_jueves_viernes_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xe9._jue._vie._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[ma\xf1ana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un a\xf1o",yy:"%d a\xf1os"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(i(76474))},25309:function(t,e,i){!function(t){"use strict";function e(t,e,i,n){var r={s:["m\xf5ne sekundi","m\xf5ni sekund","paar sekundit"],ss:[t+"sekundi",t+"sekundit"],m:["\xfche minuti","\xfcks minut"],mm:[t+" minuti",t+" minutit"],h:["\xfche tunni","tund aega","\xfcks tund"],hh:[t+" tunni",t+" tundi"],d:["\xfche p\xe4eva","\xfcks p\xe4ev"],M:["kuu aja","kuu aega","\xfcks kuu"],MM:[t+" kuu",t+" kuud"],y:["\xfche aasta","aasta","\xfcks aasta"],yy:[t+" aasta",t+" aastat"]};return e?r[i][2]?r[i][2]:r[i][1]:n?r[i][0]:r[i][1]}t.defineLocale("et",{months:"jaanuar_veebruar_m\xe4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xe4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"p\xfchap\xe4ev_esmasp\xe4ev_teisip\xe4ev_kolmap\xe4ev_neljap\xe4ev_reede_laup\xe4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[T\xe4na,] LT",nextDay:"[Homme,] LT",nextWeek:"[J\xe4rgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s p\xe4rast",past:"%s tagasi",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:"%d p\xe4eva",M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},36354:function(t,e,i){!function(t){"use strict";t.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(i(76474))},28507:function(t,e,i){!function(t){"use strict";var e={1:"\u06f1",2:"\u06f2",3:"\u06f3",4:"\u06f4",5:"\u06f5",6:"\u06f6",7:"\u06f7",8:"\u06f8",9:"\u06f9",0:"\u06f0"},i={"\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9","\u06f0":"0"};t.defineLocale("fa",{months:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06cc\u0647_\u0641\u0648\u0631\u06cc\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06cc\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06cc\u0647_\u0627\u0648\u062a_\u0633\u067e\u062a\u0627\u0645\u0628\u0631_\u0627\u06a9\u062a\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062f\u0633\u0627\u0645\u0628\u0631".split("_"),weekdays:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06cc\u06a9\u200c\u0634\u0646\u0628\u0647_\u062f\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200c\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067e\u0646\u062c\u200c\u0634\u0646\u0628\u0647_\u062c\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u062c_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631|\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/,isPM:function(t){return/\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631/.test(t)},meridiem:function(t,e,i){return t<12?"\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631":"\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631"},calendar:{sameDay:"[\u0627\u0645\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",nextDay:"[\u0641\u0631\u062f\u0627 \u0633\u0627\u0639\u062a] LT",nextWeek:"dddd [\u0633\u0627\u0639\u062a] LT",lastDay:"[\u062f\u06cc\u0631\u0648\u0632 \u0633\u0627\u0639\u062a] LT",lastWeek:"dddd [\u067e\u06cc\u0634] [\u0633\u0627\u0639\u062a] LT",sameElse:"L"},relativeTime:{future:"\u062f\u0631 %s",past:"%s \u067e\u06cc\u0634",s:"\u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647",ss:"\u062b\u0627\u0646\u06cc\u0647 d%",m:"\u06cc\u06a9 \u062f\u0642\u06cc\u0642\u0647",mm:"%d \u062f\u0642\u06cc\u0642\u0647",h:"\u06cc\u06a9 \u0633\u0627\u0639\u062a",hh:"%d \u0633\u0627\u0639\u062a",d:"\u06cc\u06a9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06cc\u06a9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(t){return t.replace(/[\u06f0-\u06f9]/g,(function(t){return i[t]})).replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"\u060c")},dayOfMonthOrdinalParse:/\d{1,2}\u0645/,ordinal:"%d\u0645",week:{dow:6,doy:12}})}(i(76474))},75691:function(t,e,i){!function(t){"use strict";var e="nolla yksi kaksi kolme nelj\xe4 viisi kuusi seitsem\xe4n kahdeksan yhdeks\xe4n".split(" "),i=["nolla","yhden","kahden","kolmen","nelj\xe4n","viiden","kuuden",e[7],e[8],e[9]];function n(t,e,i,n){var s="";switch(i){case"s":return n?"muutaman sekunnin":"muutama sekunti";case"ss":return n?"sekunnin":"sekuntia";case"m":return n?"minuutin":"minuutti";case"mm":s=n?"minuutin":"minuuttia";break;case"h":return n?"tunnin":"tunti";case"hh":s=n?"tunnin":"tuntia";break;case"d":return n?"p\xe4iv\xe4n":"p\xe4iv\xe4";case"dd":s=n?"p\xe4iv\xe4n":"p\xe4iv\xe4\xe4";break;case"M":return n?"kuukauden":"kuukausi";case"MM":s=n?"kuukauden":"kuukautta";break;case"y":return n?"vuoden":"vuosi";case"yy":s=n?"vuoden":"vuotta"}return s=r(t,n)+" "+s}function r(t,n){return t<10?n?i[t]:e[t]:t}t.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xe4kuu_hein\xe4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xe4_hein\xe4_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[t\xe4n\xe4\xe4n] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s p\xe4\xe4st\xe4",past:"%s sitten",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},48155:function(t,e,i){!function(t){"use strict";t.defineLocale("fo",{months:"januar_februar_mars_apr\xedl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_m\xe1nadagur_t\xfdsdagur_mikudagur_h\xf3sdagur_fr\xedggjadagur_leygardagur".split("_"),weekdaysShort:"sun_m\xe1n_t\xfds_mik_h\xf3s_fr\xed_ley".split("_"),weekdaysMin:"su_m\xe1_t\xfd_mi_h\xf3_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[\xcd dag kl.] LT",nextDay:"[\xcd morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xcd gj\xe1r kl.] LT",lastWeek:"[s\xed\xf0stu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s s\xed\xf0ani",s:"f\xe1 sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein t\xedmi",hh:"%d t\xedmar",d:"ein dagur",dd:"%d dagar",M:"ein m\xe1na\xf0ur",MM:"%d m\xe1na\xf0ir",y:"eitt \xe1r",yy:"%d \xe1r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},93773:function(t,e,i){!function(t){"use strict";t.defineLocale("fr-ca",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}}})}(i(76474))},21333:function(t,e,i){!function(t){"use strict";t.defineLocale("fr-ch",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})}(i(76474))},83671:function(t,e,i){!function(t){"use strict";t.defineLocale("fr",{months:"janvier_f\xe9vrier_mars_avril_mai_juin_juillet_ao\xfbt_septembre_octobre_novembre_d\xe9cembre".split("_"),monthsShort:"janv._f\xe9vr._mars_avr._mai_juin_juil._ao\xfbt_sept._oct._nov._d\xe9c.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd\u2019hui \xe0] LT",nextDay:"[Demain \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[Hier \xe0] LT",lastWeek:"dddd [dernier \xe0] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(t,e){switch(e){case"D":return t+(1===t?"er":"");default:case"M":case"Q":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})}(i(76474))},44731:function(t,e,i){!function(t){"use strict";var e="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),i="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");t.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(t,n){return t?/-MMM-/.test(n)?i[t.month()]:e[t.month()]:e},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[\xf4fr\xfbne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien min\xfat",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(i(76474))},47389:function(t,e,i){!function(t){"use strict";var e=["Ean\xe1ir","Feabhra","M\xe1rta","Aibre\xe1n","Bealtaine","M\xe9itheamh","I\xfail","L\xfanasa","Me\xe1n F\xf3mhair","Deaireadh F\xf3mhair","Samhain","Nollaig"],i=["Ean\xe1","Feab","M\xe1rt","Aibr","Beal","M\xe9it","I\xfail","L\xfana","Me\xe1n","Deai","Samh","Noll"],n=["D\xe9 Domhnaigh","D\xe9 Luain","D\xe9 M\xe1irt","D\xe9 C\xe9adaoin","D\xe9ardaoin","D\xe9 hAoine","D\xe9 Satharn"],r=["Dom","Lua","M\xe1i","C\xe9a","D\xe9a","hAo","Sat"],s=["Do","Lu","M\xe1","Ce","D\xe9","hA","Sa"];t.defineLocale("ga",{months:e,monthsShort:i,monthsParseExact:!0,weekdays:n,weekdaysShort:r,weekdaysMin:s,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Am\xe1rach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inn\xe9 aig] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s \xf3 shin",s:"c\xfapla soicind",ss:"%d soicind",m:"n\xf3im\xe9ad",mm:"%d n\xf3im\xe9ad",h:"uair an chloig",hh:"%d uair an chloig",d:"l\xe1",dd:"%d l\xe1",M:"m\xed",MM:"%d m\xed",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){return t+(1===t?"d":t%10==2?"na":"mh")},week:{dow:1,doy:4}})}(i(76474))},10002:function(t,e,i){!function(t){"use strict";var e=["Am Faoilleach","An Gearran","Am M\xe0rt","An Giblean","An C\xe8itean","An t-\xd2gmhios","An t-Iuchar","An L\xf9nastal","An t-Sultain","An D\xe0mhair","An t-Samhain","An D\xf9bhlachd"],i=["Faoi","Gear","M\xe0rt","Gibl","C\xe8it","\xd2gmh","Iuch","L\xf9n","Sult","D\xe0mh","Samh","D\xf9bh"],n=["Did\xf2mhnaich","Diluain","Dim\xe0irt","Diciadain","Diardaoin","Dihaoine","Disathairne"],r=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],s=["D\xf2","Lu","M\xe0","Ci","Ar","Ha","Sa"];t.defineLocale("gd",{months:e,monthsShort:i,monthsParseExact:!0,weekdays:n,weekdaysShort:r,weekdaysMin:s,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-m\xe0ireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-d\xe8 aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"m\xecos",MM:"%d m\xecosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){return t+(1===t?"d":t%10==2?"na":"mh")},week:{dow:1,doy:4}})}(i(76474))},91812:function(t,e,i){!function(t){"use strict";t.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xu\xf1o_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xu\xf1._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_m\xe9rcores_xoves_venres_s\xe1bado".split("_"),weekdaysShort:"dom._lun._mar._m\xe9r._xov._ven._s\xe1b.".split("_"),weekdaysMin:"do_lu_ma_m\xe9_xo_ve_s\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextDay:function(){return"[ma\xf1\xe1 "+(1!==this.hours()?"\xe1s":"\xe1")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"\xe1s":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"\xe1":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"\xe1s":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(t){return 0===t.indexOf("un")?"n"+t:"en "+t},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un d\xeda",dd:"%d d\xedas",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(i(76474))},8958:function(t,e,i){!function(t){"use strict";function e(t,e,i,n){var r={s:["thodde secondanim","thodde second"],ss:[t+" secondanim",t+" second"],m:["eka mintan","ek minute"],mm:[t+" mintanim",t+" mintam"],h:["eka voran","ek vor"],hh:[t+" voranim",t+" voram"],d:["eka disan","ek dis"],dd:[t+" disanim",t+" dis"],M:["eka mhoinean","ek mhoino"],MM:[t+" mhoineanim",t+" mhoine"],y:["eka vorsan","ek voros"],yy:[t+" vorsanim",t+" vorsam"]};return e?r[i][0]:r[i][1]}t.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(t,e){switch(e){case"D":return t+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return t}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(t,e){return 12===t&&(t=0),"rati"===e?t<4?t:t+12:"sokalli"===e?t:"donparam"===e?t>12?t:t+12:"sanje"===e?t+12:void 0},meridiem:function(t,e,i){return t<4?"rati":t<12?"sokalli":t<16?"donparam":t<20?"sanje":"rati"}})}(i(76474))},80295:function(t,e,i){!function(t){"use strict";var e={1:"\u0ae7",2:"\u0ae8",3:"\u0ae9",4:"\u0aea",5:"\u0aeb",6:"\u0aec",7:"\u0aed",8:"\u0aee",9:"\u0aef",0:"\u0ae6"},i={"\u0ae7":"1","\u0ae8":"2","\u0ae9":"3","\u0aea":"4","\u0aeb":"5","\u0aec":"6","\u0aed":"7","\u0aee":"8","\u0aef":"9","\u0ae6":"0"};t.defineLocale("gu",{months:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0_\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0_\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2_\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe\u0a88_\u0a91\u0a97\u0ab8\u0acd\u0a9f_\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0_\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0_\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0".split("_"),monthsShort:"\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1._\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1._\u0aae\u0abe\u0ab0\u0acd\u0a9a_\u0a8f\u0aaa\u0acd\u0ab0\u0abf._\u0aae\u0ac7_\u0a9c\u0ac2\u0aa8_\u0a9c\u0ac1\u0ab2\u0abe._\u0a91\u0a97._\u0ab8\u0aaa\u0acd\u0a9f\u0ac7._\u0a91\u0a95\u0acd\u0a9f\u0acd._\u0aa8\u0ab5\u0ac7._\u0aa1\u0abf\u0ab8\u0ac7.".split("_"),monthsParseExact:!0,weekdays:"\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0_\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0_\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0_\u0aac\u0ac1\u0aa7\u0acd\u0ab5\u0abe\u0ab0_\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0_\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0_\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0".split("_"),weekdaysShort:"\u0ab0\u0ab5\u0abf_\u0ab8\u0acb\u0aae_\u0aae\u0a82\u0a97\u0ab3_\u0aac\u0ac1\u0aa7\u0acd_\u0a97\u0ac1\u0ab0\u0ac1_\u0ab6\u0ac1\u0a95\u0acd\u0ab0_\u0ab6\u0aa8\u0abf".split("_"),weekdaysMin:"\u0ab0_\u0ab8\u0acb_\u0aae\u0a82_\u0aac\u0ac1_\u0a97\u0ac1_\u0ab6\u0ac1_\u0ab6".split("_"),longDateFormat:{LT:"A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LTS:"A h:mm:ss \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7",LLLL:"dddd, D MMMM YYYY, A h:mm \u0ab5\u0abe\u0a97\u0acd\u0aaf\u0ac7"},calendar:{sameDay:"[\u0a86\u0a9c] LT",nextDay:"[\u0a95\u0abe\u0ab2\u0ac7] LT",nextWeek:"dddd, LT",lastDay:"[\u0a97\u0a87\u0a95\u0abe\u0ab2\u0ac7] LT",lastWeek:"[\u0aaa\u0abe\u0a9b\u0ab2\u0abe] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0aae\u0abe",past:"%s \u0aaa\u0ac7\u0ab9\u0ab2\u0abe",s:"\u0a85\u0aae\u0ac1\u0a95 \u0aaa\u0ab3\u0acb",ss:"%d \u0ab8\u0ac7\u0a95\u0a82\u0aa1",m:"\u0a8f\u0a95 \u0aae\u0abf\u0aa8\u0abf\u0a9f",mm:"%d \u0aae\u0abf\u0aa8\u0abf\u0a9f",h:"\u0a8f\u0a95 \u0a95\u0ab2\u0abe\u0a95",hh:"%d \u0a95\u0ab2\u0abe\u0a95",d:"\u0a8f\u0a95 \u0aa6\u0abf\u0ab5\u0ab8",dd:"%d \u0aa6\u0abf\u0ab5\u0ab8",M:"\u0a8f\u0a95 \u0aae\u0ab9\u0abf\u0aa8\u0acb",MM:"%d \u0aae\u0ab9\u0abf\u0aa8\u0acb",y:"\u0a8f\u0a95 \u0ab5\u0ab0\u0acd\u0ab7",yy:"%d \u0ab5\u0ab0\u0acd\u0ab7"},preparse:function(t){return t.replace(/[\u0ae7\u0ae8\u0ae9\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef\u0ae6]/g,(function(t){return i[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/\u0ab0\u0abe\u0aa4|\u0aac\u0aaa\u0acb\u0ab0|\u0ab8\u0ab5\u0abe\u0ab0|\u0ab8\u0abe\u0a82\u0a9c/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0ab0\u0abe\u0aa4"===e?t<4?t:t+12:"\u0ab8\u0ab5\u0abe\u0ab0"===e?t:"\u0aac\u0aaa\u0acb\u0ab0"===e?t>=10?t:t+12:"\u0ab8\u0abe\u0a82\u0a9c"===e?t+12:void 0},meridiem:function(t,e,i){return t<4?"\u0ab0\u0abe\u0aa4":t<10?"\u0ab8\u0ab5\u0abe\u0ab0":t<17?"\u0aac\u0aaa\u0acb\u0ab0":t<20?"\u0ab8\u0abe\u0a82\u0a9c":"\u0ab0\u0abe\u0aa4"},week:{dow:0,doy:6}})}(i(76474))},48767:function(t,e,i){!function(t){"use strict";t.defineLocale("he",{months:"\u05d9\u05e0\u05d5\u05d0\u05e8_\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05d9\u05dc_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8_\u05e1\u05e4\u05d8\u05de\u05d1\u05e8_\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8_\u05e0\u05d5\u05d1\u05de\u05d1\u05e8_\u05d3\u05e6\u05de\u05d1\u05e8".split("_"),monthsShort:"\u05d9\u05e0\u05d5\u05f3_\u05e4\u05d1\u05e8\u05f3_\u05de\u05e8\u05e5_\u05d0\u05e4\u05e8\u05f3_\u05de\u05d0\u05d9_\u05d9\u05d5\u05e0\u05d9_\u05d9\u05d5\u05dc\u05d9_\u05d0\u05d5\u05d2\u05f3_\u05e1\u05e4\u05d8\u05f3_\u05d0\u05d5\u05e7\u05f3_\u05e0\u05d5\u05d1\u05f3_\u05d3\u05e6\u05de\u05f3".split("_"),weekdays:"\u05e8\u05d0\u05e9\u05d5\u05df_\u05e9\u05e0\u05d9_\u05e9\u05dc\u05d9\u05e9\u05d9_\u05e8\u05d1\u05d9\u05e2\u05d9_\u05d7\u05de\u05d9\u05e9\u05d9_\u05e9\u05d9\u05e9\u05d9_\u05e9\u05d1\u05ea".split("_"),weekdaysShort:"\u05d0\u05f3_\u05d1\u05f3_\u05d2\u05f3_\u05d3\u05f3_\u05d4\u05f3_\u05d5\u05f3_\u05e9\u05f3".split("_"),weekdaysMin:"\u05d0_\u05d1_\u05d2_\u05d3_\u05d4_\u05d5_\u05e9".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [\u05d1]MMMM YYYY",LLL:"D [\u05d1]MMMM YYYY HH:mm",LLLL:"dddd, D [\u05d1]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[\u05d4\u05d9\u05d5\u05dd \u05d1\u05be]LT",nextDay:"[\u05de\u05d7\u05e8 \u05d1\u05be]LT",nextWeek:"dddd [\u05d1\u05e9\u05e2\u05d4] LT",lastDay:"[\u05d0\u05ea\u05de\u05d5\u05dc \u05d1\u05be]LT",lastWeek:"[\u05d1\u05d9\u05d5\u05dd] dddd [\u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05e9\u05e2\u05d4] LT",sameElse:"L"},relativeTime:{future:"\u05d1\u05e2\u05d5\u05d3 %s",past:"\u05dc\u05e4\u05e0\u05d9 %s",s:"\u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05d5\u05ea",ss:"%d \u05e9\u05e0\u05d9\u05d5\u05ea",m:"\u05d3\u05e7\u05d4",mm:"%d \u05d3\u05e7\u05d5\u05ea",h:"\u05e9\u05e2\u05d4",hh:function(t){return 2===t?"\u05e9\u05e2\u05ea\u05d9\u05d9\u05dd":t+" \u05e9\u05e2\u05d5\u05ea"},d:"\u05d9\u05d5\u05dd",dd:function(t){return 2===t?"\u05d9\u05d5\u05de\u05d9\u05d9\u05dd":t+" \u05d9\u05de\u05d9\u05dd"},M:"\u05d7\u05d5\u05d3\u05e9",MM:function(t){return 2===t?"\u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":t+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},y:"\u05e9\u05e0\u05d4",yy:function(t){return 2===t?"\u05e9\u05e0\u05ea\u05d9\u05d9\u05dd":t%10==0&&10!==t?t+" \u05e9\u05e0\u05d4":t+" \u05e9\u05e0\u05d9\u05dd"}},meridiemParse:/\u05d0\u05d7\u05d4"\u05e6|\u05dc\u05e4\u05e0\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8|\u05d1\u05d1\u05d5\u05e7\u05e8|\u05d1\u05e2\u05e8\u05d1/i,isPM:function(t){return/^(\u05d0\u05d7\u05d4"\u05e6|\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd|\u05d1\u05e2\u05e8\u05d1)$/.test(t)},meridiem:function(t,e,i){return t<5?"\u05dc\u05e4\u05e0\u05d5\u05ea \u05d1\u05d5\u05e7\u05e8":t<10?"\u05d1\u05d1\u05d5\u05e7\u05e8":t<12?i?'\u05dc\u05e4\u05e0\u05d4"\u05e6':"\u05dc\u05e4\u05e0\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":t<18?i?'\u05d0\u05d7\u05d4"\u05e6':"\u05d0\u05d7\u05e8\u05d9 \u05d4\u05e6\u05d4\u05e8\u05d9\u05d9\u05dd":"\u05d1\u05e2\u05e8\u05d1"}})}(i(76474))},95543:function(t,e,i){!function(t){"use strict";var e={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},i={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};t.defineLocale("hi",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u093c\u0930\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948\u0932_\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0938\u094d\u0924_\u0938\u093f\u0924\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u0942\u092c\u0930_\u0928\u0935\u092e\u094d\u092c\u0930_\u0926\u093f\u0938\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u093c\u0930._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u0948._\u092e\u0908_\u091c\u0942\u0928_\u091c\u0941\u0932._\u0905\u0917._\u0938\u093f\u0924._\u0905\u0915\u094d\u091f\u0942._\u0928\u0935._\u0926\u093f\u0938.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0932\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0932_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u092c\u091c\u0947",LTS:"A h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092c\u091c\u0947"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0915\u0932] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u0932] LT",lastWeek:"[\u092a\u093f\u091b\u0932\u0947] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u092e\u0947\u0902",past:"%s \u092a\u0939\u0932\u0947",s:"\u0915\u0941\u091b \u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0902\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u091f",mm:"%d \u092e\u093f\u0928\u091f",h:"\u090f\u0915 \u0918\u0902\u091f\u093e",hh:"%d \u0918\u0902\u091f\u0947",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u0940\u0928\u0947",MM:"%d \u092e\u0939\u0940\u0928\u0947",y:"\u090f\u0915 \u0935\u0930\u094d\u0937",yy:"%d \u0935\u0930\u094d\u0937"},preparse:function(t){return t.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,(function(t){return i[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/\u0930\u093e\u0924|\u0938\u0941\u092c\u0939|\u0926\u094b\u092a\u0939\u0930|\u0936\u093e\u092e/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0930\u093e\u0924"===e?t<4?t:t+12:"\u0938\u0941\u092c\u0939"===e?t:"\u0926\u094b\u092a\u0939\u0930"===e?t>=10?t:t+12:"\u0936\u093e\u092e"===e?t+12:void 0},meridiem:function(t,e,i){return t<4?"\u0930\u093e\u0924":t<10?"\u0938\u0941\u092c\u0939":t<17?"\u0926\u094b\u092a\u0939\u0930":t<20?"\u0936\u093e\u092e":"\u0930\u093e\u0924"},week:{dow:0,doy:6}})}(i(76474))},24706:function(t,e,i){!function(t){"use strict";function e(t,e,i){var n=t+" ";switch(i){case"ss":return n+=1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi";case"m":return e?"jedna minuta":"jedne minute";case"mm":return n+=1===t?"minuta":2===t||3===t||4===t?"minute":"minuta";case"h":return e?"jedan sat":"jednog sata";case"hh":return n+=1===t?"sat":2===t||3===t||4===t?"sata":"sati";case"dd":return n+=1===t?"dan":"dana";case"MM":return n+=1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci";case"yy":return n+=1===t?"godina":2===t||3===t||4===t?"godine":"godina"}}t.defineLocale("hr",{months:{format:"sije\u010dnja_velja\u010de_o\u017eujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"sije\u010danj_velja\u010da_o\u017eujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._o\u017eu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010der u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[pro\u0161lu] dddd [u] LT";case 6:return"[pro\u0161le] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[pro\u0161li] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(i(76474))},72177:function(t,e,i){!function(t){"use strict";var e="vas\xe1rnap h\xe9tf\u0151n kedden szerd\xe1n cs\xfct\xf6rt\xf6k\xf6n p\xe9nteken szombaton".split(" ");function i(t,e,i,n){var r=t;switch(i){case"s":return n||e?"n\xe9h\xe1ny m\xe1sodperc":"n\xe9h\xe1ny m\xe1sodperce";case"ss":return r+(n||e)?" m\xe1sodperc":" m\xe1sodperce";case"m":return"egy"+(n||e?" perc":" perce");case"mm":return r+(n||e?" perc":" perce");case"h":return"egy"+(n||e?" \xf3ra":" \xf3r\xe1ja");case"hh":return r+(n||e?" \xf3ra":" \xf3r\xe1ja");case"d":return"egy"+(n||e?" nap":" napja");case"dd":return r+(n||e?" nap":" napja");case"M":return"egy"+(n||e?" h\xf3nap":" h\xf3napja");case"MM":return r+(n||e?" h\xf3nap":" h\xf3napja");case"y":return"egy"+(n||e?" \xe9v":" \xe9ve");case"yy":return r+(n||e?" \xe9v":" \xe9ve")}return""}function n(t){return(t?"":"[m\xfalt] ")+"["+e[this.day()]+"] LT[-kor]"}t.defineLocale("hu",{months:"janu\xe1r_febru\xe1r_m\xe1rcius_\xe1prilis_m\xe1jus_j\xfanius_j\xfalius_augusztus_szeptember_okt\xf3ber_november_december".split("_"),monthsShort:"jan_feb_m\xe1rc_\xe1pr_m\xe1j_j\xfan_j\xfal_aug_szept_okt_nov_dec".split("_"),weekdays:"vas\xe1rnap_h\xe9tf\u0151_kedd_szerda_cs\xfct\xf6rt\xf6k_p\xe9ntek_szombat".split("_"),weekdaysShort:"vas_h\xe9t_kedd_sze_cs\xfct_p\xe9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(t){return"u"===t.charAt(1).toLowerCase()},meridiem:function(t,e,i){return t<12?!0===i?"de":"DE":!0===i?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return n.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return n.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s m\xfalva",past:"%s",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},54748:function(t,e,i){!function(t){"use strict";t.defineLocale("hy-am",{months:{format:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580\u056b_\u0583\u0565\u057f\u0580\u057e\u0561\u0580\u056b_\u0574\u0561\u0580\u057f\u056b_\u0561\u057a\u0580\u056b\u056c\u056b_\u0574\u0561\u0575\u056b\u057d\u056b_\u0570\u0578\u0582\u0576\u056b\u057d\u056b_\u0570\u0578\u0582\u056c\u056b\u057d\u056b_\u0585\u0563\u0578\u057d\u057f\u0578\u057d\u056b_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056b_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u056b".split("_"),standalone:"\u0570\u0578\u0582\u0576\u057e\u0561\u0580_\u0583\u0565\u057f\u0580\u057e\u0561\u0580_\u0574\u0561\u0580\u057f_\u0561\u057a\u0580\u056b\u056c_\u0574\u0561\u0575\u056b\u057d_\u0570\u0578\u0582\u0576\u056b\u057d_\u0570\u0578\u0582\u056c\u056b\u057d_\u0585\u0563\u0578\u057d\u057f\u0578\u057d_\u057d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580_\u0570\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580_\u0564\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580".split("_")},monthsShort:"\u0570\u0576\u057e_\u0583\u057f\u0580_\u0574\u0580\u057f_\u0561\u057a\u0580_\u0574\u0575\u057d_\u0570\u0576\u057d_\u0570\u056c\u057d_\u0585\u0563\u057d_\u057d\u057a\u057f_\u0570\u056f\u057f_\u0576\u0574\u0562_\u0564\u056f\u057f".split("_"),weekdays:"\u056f\u056b\u0580\u0561\u056f\u056b_\u0565\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b_\u0570\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),weekdaysShort:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),weekdaysMin:"\u056f\u0580\u056f_\u0565\u0580\u056f_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},calendar:{sameDay:"[\u0561\u0575\u057d\u0585\u0580] LT",nextDay:"[\u057e\u0561\u0572\u0568] LT",lastDay:"[\u0565\u0580\u0565\u056f] LT",nextWeek:function(){return"dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},lastWeek:function(){return"[\u0561\u0576\u0581\u0561\u056e] dddd [\u0585\u0580\u0568 \u056a\u0561\u0574\u0568] LT"},sameElse:"L"},relativeTime:{future:"%s \u0570\u0565\u057f\u0578",past:"%s \u0561\u057c\u0561\u057b",s:"\u0574\u056b \u0584\u0561\u0576\u056b \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",ss:"%d \u057e\u0561\u0575\u0580\u056f\u0575\u0561\u0576",m:"\u0580\u0578\u057a\u0565",mm:"%d \u0580\u0578\u057a\u0565",h:"\u056a\u0561\u0574",hh:"%d \u056a\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056b\u057d",MM:"%d \u0561\u0574\u056b\u057d",y:"\u057f\u0561\u0580\u056b",yy:"%d \u057f\u0561\u0580\u056b"},meridiemParse:/\u0563\u056b\u0577\u0565\u0580\u057e\u0561|\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561|\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576/,isPM:function(t){return/^(\u0581\u0565\u0580\u0565\u056f\u057e\u0561|\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576)$/.test(t)},meridiem:function(t){return t<4?"\u0563\u056b\u0577\u0565\u0580\u057e\u0561":t<12?"\u0561\u057c\u0561\u057e\u0578\u057f\u057e\u0561":t<17?"\u0581\u0565\u0580\u0565\u056f\u057e\u0561":"\u0565\u0580\u0565\u056f\u0578\u0575\u0561\u0576"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(\u056b\u0576|\u0580\u0564)/,ordinal:function(t,e){switch(e){case"DDD":case"w":case"W":case"DDDo":return 1===t?t+"-\u056b\u0576":t+"-\u0580\u0564";default:return t}},week:{dow:1,doy:7}})}(i(76474))},58713:function(t,e,i){!function(t){"use strict";t.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"siang"===e?t>=11?t:t+12:"sore"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,i){return t<11?"pagi":t<15?"siang":t<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(i(76474))},94336:function(t,e,i){!function(t){"use strict";function e(t){return t%100==11||t%10!=1}function i(t,i,n,r){var s=t+" ";switch(n){case"s":return i||r?"nokkrar sek\xfandur":"nokkrum sek\xfandum";case"ss":return e(t)?s+(i||r?"sek\xfandur":"sek\xfandum"):s+"sek\xfanda";case"m":return i?"m\xedn\xfata":"m\xedn\xfatu";case"mm":return e(t)?s+(i||r?"m\xedn\xfatur":"m\xedn\xfatum"):i?s+"m\xedn\xfata":s+"m\xedn\xfatu";case"hh":return e(t)?s+(i||r?"klukkustundir":"klukkustundum"):s+"klukkustund";case"d":return i?"dagur":r?"dag":"degi";case"dd":return e(t)?i?s+"dagar":s+(r?"daga":"d\xf6gum"):i?s+"dagur":s+(r?"dag":"degi");case"M":return i?"m\xe1nu\xf0ur":r?"m\xe1nu\xf0":"m\xe1nu\xf0i";case"MM":return e(t)?i?s+"m\xe1nu\xf0ir":s+(r?"m\xe1nu\xf0i":"m\xe1nu\xf0um"):i?s+"m\xe1nu\xf0ur":s+(r?"m\xe1nu\xf0":"m\xe1nu\xf0i");case"y":return i||r?"\xe1r":"\xe1ri";case"yy":return e(t)?s+(i||r?"\xe1r":"\xe1rum"):s+(i||r?"\xe1r":"\xe1ri")}}t.defineLocale("is",{months:"jan\xfaar_febr\xfaar_mars_apr\xedl_ma\xed_j\xfan\xed_j\xfal\xed_\xe1g\xfast_september_okt\xf3ber_n\xf3vember_desember".split("_"),monthsShort:"jan_feb_mar_apr_ma\xed_j\xfan_j\xfal_\xe1g\xfa_sep_okt_n\xf3v_des".split("_"),weekdays:"sunnudagur_m\xe1nudagur_\xferi\xf0judagur_mi\xf0vikudagur_fimmtudagur_f\xf6studagur_laugardagur".split("_"),weekdaysShort:"sun_m\xe1n_\xferi_mi\xf0_fim_f\xf6s_lau".split("_"),weekdaysMin:"Su_M\xe1_\xder_Mi_Fi_F\xf6_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[\xed dag kl.] LT",nextDay:"[\xe1 morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[\xed g\xe6r kl.] LT",lastWeek:"[s\xed\xf0asta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s s\xed\xf0an",s:i,ss:i,m:i,mm:i,h:"klukkustund",hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},18562:function(t,e,i){!function(t){"use strict";t.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(i(76474))},48328:function(t,e,i){!function(t){"use strict";t.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_luned\xec_marted\xec_mercoled\xec_gioved\xec_venerd\xec_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(i(76474))},31560:function(t,e,i){!function(t){"use strict";t.defineLocale("ja",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u65e5\u66dc\u65e5_\u6708\u66dc\u65e5_\u706b\u66dc\u65e5_\u6c34\u66dc\u65e5_\u6728\u66dc\u65e5_\u91d1\u66dc\u65e5_\u571f\u66dc\u65e5".split("_"),weekdaysShort:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),weekdaysMin:"\u65e5_\u6708_\u706b_\u6c34_\u6728_\u91d1_\u571f".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5(ddd) HH:mm"},meridiemParse:/\u5348\u524d|\u5348\u5f8c/i,isPM:function(t){return"\u5348\u5f8c"===t},meridiem:function(t,e,i){return t<12?"\u5348\u524d":"\u5348\u5f8c"},calendar:{sameDay:"[\u4eca\u65e5] LT",nextDay:"[\u660e\u65e5] LT",nextWeek:function(t){return t.week()<this.week()?"[\u6765\u9031]dddd LT":"dddd LT"},lastDay:"[\u6628\u65e5] LT",lastWeek:function(t){return this.week()<t.week()?"[\u5148\u9031]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}\u65e5/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\u65e5";default:return t}},relativeTime:{future:"%s\u5f8c",past:"%s\u524d",s:"\u6570\u79d2",ss:"%d\u79d2",m:"1\u5206",mm:"%d\u5206",h:"1\u6642\u9593",hh:"%d\u6642\u9593",d:"1\u65e5",dd:"%d\u65e5",M:"1\u30f6\u6708",MM:"%d\u30f6\u6708",y:"1\u5e74",yy:"%d\u5e74"}})}(i(76474))},34404:function(t,e,i){!function(t){"use strict";t.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(t,e){return 12===t&&(t=0),"enjing"===e?t:"siyang"===e?t>=11?t:t+12:"sonten"===e||"ndalu"===e?t+12:void 0},meridiem:function(t,e,i){return t<11?"enjing":t<15?"siyang":t<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(i(76474))},75989:function(t,e,i){!function(t){"use strict";t.defineLocale("ka",{months:{standalone:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8_\u10db\u10d0\u10e0\u10e2\u10d8_\u10d0\u10de\u10e0\u10d8\u10da\u10d8_\u10db\u10d0\u10d8\u10e1\u10d8_\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8_\u10d8\u10d5\u10da\u10d8\u10e1\u10d8_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8".split("_"),format:"\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10e1_\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10e1_\u10db\u10d0\u10e0\u10e2\u10e1_\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u10e1_\u10db\u10d0\u10d8\u10e1\u10e1_\u10d8\u10d5\u10dc\u10d8\u10e1\u10e1_\u10d8\u10d5\u10da\u10d8\u10e1\u10e1_\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10e1_\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10e1_\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10e1_\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10e1".split("_")},monthsShort:"\u10d8\u10d0\u10dc_\u10d7\u10d4\u10d1_\u10db\u10d0\u10e0_\u10d0\u10de\u10e0_\u10db\u10d0\u10d8_\u10d8\u10d5\u10dc_\u10d8\u10d5\u10da_\u10d0\u10d2\u10d5_\u10e1\u10d4\u10e5_\u10dd\u10e5\u10e2_\u10dc\u10dd\u10d4_\u10d3\u10d4\u10d9".split("_"),weekdays:{standalone:"\u10d9\u10d5\u10d8\u10e0\u10d0_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8_\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8".split("_"),format:"\u10d9\u10d5\u10d8\u10e0\u10d0\u10e1_\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1_\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10e1_\u10e8\u10d0\u10d1\u10d0\u10d7\u10e1".split("_"),isFormat:/(\u10ec\u10d8\u10dc\u10d0|\u10e8\u10d4\u10db\u10d3\u10d4\u10d2)/},weekdaysShort:"\u10d9\u10d5\u10d8_\u10dd\u10e0\u10e8_\u10e1\u10d0\u10db_\u10dd\u10d7\u10ee_\u10ee\u10e3\u10d7_\u10de\u10d0\u10e0_\u10e8\u10d0\u10d1".split("_"),weekdaysMin:"\u10d9\u10d5_\u10dd\u10e0_\u10e1\u10d0_\u10dd\u10d7_\u10ee\u10e3_\u10de\u10d0_\u10e8\u10d0".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[\u10d3\u10e6\u10d4\u10e1] LT[-\u10d6\u10d4]",nextDay:"[\u10ee\u10d5\u10d0\u10da] LT[-\u10d6\u10d4]",lastDay:"[\u10d2\u10e3\u10e8\u10d8\u10dc] LT[-\u10d6\u10d4]",nextWeek:"[\u10e8\u10d4\u10db\u10d3\u10d4\u10d2] dddd LT[-\u10d6\u10d4]",lastWeek:"[\u10ec\u10d8\u10dc\u10d0] dddd LT-\u10d6\u10d4",sameElse:"L"},relativeTime:{future:function(t){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10ec\u10d4\u10da\u10d8)/.test(t)?t.replace(/\u10d8$/,"\u10e8\u10d8"):t+"\u10e8\u10d8"},past:function(t){return/(\u10ec\u10d0\u10db\u10d8|\u10ec\u10e3\u10d7\u10d8|\u10e1\u10d0\u10d0\u10d7\u10d8|\u10d3\u10e6\u10d4|\u10d7\u10d5\u10d4)/.test(t)?t.replace(/(\u10d8|\u10d4)$/,"\u10d8\u10e1 \u10ec\u10d8\u10dc"):/\u10ec\u10d4\u10da\u10d8/.test(t)?t.replace(/\u10ec\u10d4\u10da\u10d8$/,"\u10ec\u10da\u10d8\u10e1 \u10ec\u10d8\u10dc"):void 0},s:"\u10e0\u10d0\u10db\u10d3\u10d4\u10dc\u10d8\u10db\u10d4 \u10ec\u10d0\u10db\u10d8",ss:"%d \u10ec\u10d0\u10db\u10d8",m:"\u10ec\u10e3\u10d7\u10d8",mm:"%d \u10ec\u10e3\u10d7\u10d8",h:"\u10e1\u10d0\u10d0\u10d7\u10d8",hh:"%d \u10e1\u10d0\u10d0\u10d7\u10d8",d:"\u10d3\u10e6\u10d4",dd:"%d \u10d3\u10e6\u10d4",M:"\u10d7\u10d5\u10d4",MM:"%d \u10d7\u10d5\u10d4",y:"\u10ec\u10d4\u10da\u10d8",yy:"%d \u10ec\u10d4\u10da\u10d8"},dayOfMonthOrdinalParse:/0|1-\u10da\u10d8|\u10db\u10d4-\d{1,2}|\d{1,2}-\u10d4/,ordinal:function(t){return 0===t?t:1===t?t+"-\u10da\u10d8":t<20||t<=100&&t%20==0||t%100==0?"\u10db\u10d4-"+t:t+"-\u10d4"},week:{dow:1,doy:7}})}(i(76474))},20747:function(t,e,i){!function(t){"use strict";var e={0:"-\u0448\u0456",1:"-\u0448\u0456",2:"-\u0448\u0456",3:"-\u0448\u0456",4:"-\u0448\u0456",5:"-\u0448\u0456",6:"-\u0448\u044b",7:"-\u0448\u0456",8:"-\u0448\u0456",9:"-\u0448\u044b",10:"-\u0448\u044b",20:"-\u0448\u044b",30:"-\u0448\u044b",40:"-\u0448\u044b",50:"-\u0448\u0456",60:"-\u0448\u044b",70:"-\u0448\u0456",80:"-\u0448\u0456",90:"-\u0448\u044b",100:"-\u0448\u0456"};t.defineLocale("kk",{months:"\u049b\u0430\u04a3\u0442\u0430\u0440_\u0430\u049b\u043f\u0430\u043d_\u043d\u0430\u0443\u0440\u044b\u0437_\u0441\u04d9\u0443\u0456\u0440_\u043c\u0430\u043c\u044b\u0440_\u043c\u0430\u0443\u0441\u044b\u043c_\u0448\u0456\u043b\u0434\u0435_\u0442\u0430\u043c\u044b\u0437_\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a_\u049b\u0430\u0437\u0430\u043d_\u049b\u0430\u0440\u0430\u0448\u0430_\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d".split("_"),monthsShort:"\u049b\u0430\u04a3_\u0430\u049b\u043f_\u043d\u0430\u0443_\u0441\u04d9\u0443_\u043c\u0430\u043c_\u043c\u0430\u0443_\u0448\u0456\u043b_\u0442\u0430\u043c_\u049b\u044b\u0440_\u049b\u0430\u0437_\u049b\u0430\u0440_\u0436\u0435\u043b".split("_"),weekdays:"\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456_\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0441\u04d9\u0440\u0441\u0435\u043d\u0431\u0456_\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456_\u0436\u04b1\u043c\u0430_\u0441\u0435\u043d\u0431\u0456".split("_"),weekdaysShort:"\u0436\u0435\u043a_\u0434\u04af\u0439_\u0441\u0435\u0439_\u0441\u04d9\u0440_\u0431\u0435\u0439_\u0436\u04b1\u043c_\u0441\u0435\u043d".split("_"),weekdaysMin:"\u0436\u043a_\u0434\u0439_\u0441\u0439_\u0441\u0440_\u0431\u0439_\u0436\u043c_\u0441\u043d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u0456\u043d \u0441\u0430\u0493\u0430\u0442] LT",nextDay:"[\u0415\u0440\u0442\u0435\u04a3 \u0441\u0430\u0493\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0493\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0448\u0435 \u0441\u0430\u0493\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u0435\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u04a3] dddd [\u0441\u0430\u0493\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0456\u0448\u0456\u043d\u0434\u0435",past:"%s \u0431\u04b1\u0440\u044b\u043d",s:"\u0431\u0456\u0440\u043d\u0435\u0448\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0456\u0440 \u043c\u0438\u043d\u0443\u0442",mm:"%d \u043c\u0438\u043d\u0443\u0442",h:"\u0431\u0456\u0440 \u0441\u0430\u0493\u0430\u0442",hh:"%d \u0441\u0430\u0493\u0430\u0442",d:"\u0431\u0456\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0456\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0456\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0448\u0456|\u0448\u044b)/,ordinal:function(t){var i=t%10,n=t>=100?100:null;return t+(e[t]||e[i]||e[n])},week:{dow:1,doy:7}})}(i(76474))},21868:function(t,e,i){!function(t){"use strict";var e={1:"\u17e1",2:"\u17e2",3:"\u17e3",4:"\u17e4",5:"\u17e5",6:"\u17e6",7:"\u17e7",8:"\u17e8",9:"\u17e9",0:"\u17e0"},i={"\u17e1":"1","\u17e2":"2","\u17e3":"3","\u17e4":"4","\u17e5":"5","\u17e6":"6","\u17e7":"7","\u17e8":"8","\u17e9":"9","\u17e0":"0"};t.defineLocale("km",{months:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),monthsShort:"\u1798\u1780\u179a\u17b6_\u1780\u17bb\u1798\u17d2\u1797\u17c8_\u1798\u17b8\u1793\u17b6_\u1798\u17c1\u179f\u17b6_\u17a7\u179f\u1797\u17b6_\u1798\u17b7\u1790\u17bb\u1793\u17b6_\u1780\u1780\u17d2\u1780\u178a\u17b6_\u179f\u17b8\u17a0\u17b6_\u1780\u1789\u17d2\u1789\u17b6_\u178f\u17bb\u179b\u17b6_\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6_\u1792\u17d2\u1793\u17bc".split("_"),weekdays:"\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799_\u1785\u17d0\u1793\u17d2\u1791_\u17a2\u1784\u17d2\u1782\u17b6\u179a_\u1796\u17bb\u1792_\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd_\u179f\u17bb\u1780\u17d2\u179a_\u179f\u17c5\u179a\u17cd".split("_"),weekdaysShort:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysMin:"\u17a2\u17b6_\u1785_\u17a2_\u1796_\u1796\u17d2\u179a_\u179f\u17bb_\u179f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u1796\u17d2\u179a\u17b9\u1780|\u179b\u17d2\u1784\u17b6\u1785/,isPM:function(t){return"\u179b\u17d2\u1784\u17b6\u1785"===t},meridiem:function(t,e,i){return t<12?"\u1796\u17d2\u179a\u17b9\u1780":"\u179b\u17d2\u1784\u17b6\u1785"},calendar:{sameDay:"[\u1790\u17d2\u1784\u17c3\u1793\u17c1\u17c7 \u1798\u17c9\u17c4\u1784] LT",nextDay:"[\u179f\u17d2\u17a2\u17c2\u1780 \u1798\u17c9\u17c4\u1784] LT",nextWeek:"dddd [\u1798\u17c9\u17c4\u1784] LT",lastDay:"[\u1798\u17d2\u179f\u17b7\u179b\u1798\u17b7\u1789 \u1798\u17c9\u17c4\u1784] LT",lastWeek:"dddd [\u179f\u1794\u17d2\u178f\u17b6\u17a0\u17cd\u1798\u17bb\u1793] [\u1798\u17c9\u17c4\u1784] LT",sameElse:"L"},relativeTime:{future:"%s\u1791\u17c0\u178f",past:"%s\u1798\u17bb\u1793",s:"\u1794\u17c9\u17bb\u1793\u17d2\u1798\u17b6\u1793\u179c\u17b7\u1793\u17b6\u1791\u17b8",ss:"%d \u179c\u17b7\u1793\u17b6\u1791\u17b8",m:"\u1798\u17bd\u1799\u1793\u17b6\u1791\u17b8",mm:"%d \u1793\u17b6\u1791\u17b8",h:"\u1798\u17bd\u1799\u1798\u17c9\u17c4\u1784",hh:"%d \u1798\u17c9\u17c4\u1784",d:"\u1798\u17bd\u1799\u1790\u17d2\u1784\u17c3",dd:"%d \u1790\u17d2\u1784\u17c3",M:"\u1798\u17bd\u1799\u1781\u17c2",MM:"%d \u1781\u17c2",y:"\u1798\u17bd\u1799\u1786\u17d2\u1793\u17b6\u17c6",yy:"%d \u1786\u17d2\u1793\u17b6\u17c6"},dayOfMonthOrdinalParse:/\u1791\u17b8\d{1,2}/,ordinal:"\u1791\u17b8%d",preparse:function(t){return t.replace(/[\u17e1\u17e2\u17e3\u17e4\u17e5\u17e6\u17e7\u17e8\u17e9\u17e0]/g,(function(t){return i[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},week:{dow:1,doy:4}})}(i(76474))},94997:function(t,e,i){!function(t){"use strict";var e={1:"\u0ce7",2:"\u0ce8",3:"\u0ce9",4:"\u0cea",5:"\u0ceb",6:"\u0cec",7:"\u0ced",8:"\u0cee",9:"\u0cef",0:"\u0ce6"},i={"\u0ce7":"1","\u0ce8":"2","\u0ce9":"3","\u0cea":"4","\u0ceb":"5","\u0cec":"6","\u0ced":"7","\u0cee":"8","\u0cef":"9","\u0ce6":"0"};t.defineLocale("kn",{months:"\u0c9c\u0ca8\u0cb5\u0cb0\u0cbf_\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cbf_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5\u0cac\u0cb0\u0ccd_\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd".split("_"),monthsShort:"\u0c9c\u0ca8_\u0cab\u0cc6\u0cac\u0ccd\u0cb0_\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd_\u0c8f\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd_\u0cae\u0cc6\u0cd5_\u0c9c\u0cc2\u0ca8\u0ccd_\u0c9c\u0cc1\u0cb2\u0cc6\u0cd6_\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd_\u0cb8\u0cc6\u0caa\u0ccd\u0c9f\u0cc6\u0c82_\u0c85\u0c95\u0ccd\u0c9f\u0cc6\u0cc2\u0cd5_\u0ca8\u0cb5\u0cc6\u0c82_\u0ca1\u0cbf\u0cb8\u0cc6\u0c82".split("_"),monthsParseExact:!0,weekdays:"\u0cad\u0cbe\u0ca8\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae\u0cb5\u0cbe\u0cb0_\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0_\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0_\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0_\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0".split("_"),weekdaysShort:"\u0cad\u0cbe\u0ca8\u0cc1_\u0cb8\u0cc6\u0cc2\u0cd5\u0cae_\u0cae\u0c82\u0c97\u0cb3_\u0cac\u0cc1\u0ca7_\u0c97\u0cc1\u0cb0\u0cc1_\u0cb6\u0cc1\u0c95\u0ccd\u0cb0_\u0cb6\u0ca8\u0cbf".split("_"),weekdaysMin:"\u0cad\u0cbe_\u0cb8\u0cc6\u0cc2\u0cd5_\u0cae\u0c82_\u0cac\u0cc1_\u0c97\u0cc1_\u0cb6\u0cc1_\u0cb6".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c87\u0c82\u0ca6\u0cc1] LT",nextDay:"[\u0ca8\u0cbe\u0cb3\u0cc6] LT",nextWeek:"dddd, LT",lastDay:"[\u0ca8\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6] LT",lastWeek:"[\u0c95\u0cc6\u0cc2\u0ca8\u0cc6\u0caf] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0ca8\u0c82\u0ca4\u0cb0",past:"%s \u0cb9\u0cbf\u0c82\u0ca6\u0cc6",s:"\u0c95\u0cc6\u0cb2\u0cb5\u0cc1 \u0c95\u0ccd\u0cb7\u0ca3\u0c97\u0cb3\u0cc1",ss:"%d \u0cb8\u0cc6\u0c95\u0cc6\u0c82\u0ca1\u0cc1\u0c97\u0cb3\u0cc1",m:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",mm:"%d \u0ca8\u0cbf\u0cae\u0cbf\u0cb7",h:"\u0c92\u0c82\u0ca6\u0cc1 \u0c97\u0c82\u0c9f\u0cc6",hh:"%d \u0c97\u0c82\u0c9f\u0cc6",d:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca6\u0cbf\u0ca8",dd:"%d \u0ca6\u0cbf\u0ca8",M:"\u0c92\u0c82\u0ca6\u0cc1 \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",MM:"%d \u0ca4\u0cbf\u0c82\u0c97\u0cb3\u0cc1",y:"\u0c92\u0c82\u0ca6\u0cc1 \u0cb5\u0cb0\u0ccd\u0cb7",yy:"%d \u0cb5\u0cb0\u0ccd\u0cb7"},preparse:function(t){return t.replace(/[\u0ce7\u0ce8\u0ce9\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0ce6]/g,(function(t){return i[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf|\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6|\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8|\u0cb8\u0c82\u0c9c\u0cc6/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"===e?t<4?t:t+12:"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6"===e?t:"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8"===e?t>=10?t:t+12:"\u0cb8\u0c82\u0c9c\u0cc6"===e?t+12:void 0},meridiem:function(t,e,i){return t<4?"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf":t<10?"\u0cac\u0cc6\u0cb3\u0cbf\u0c97\u0ccd\u0c97\u0cc6":t<17?"\u0cae\u0ca7\u0ccd\u0caf\u0cbe\u0cb9\u0ccd\u0ca8":t<20?"\u0cb8\u0c82\u0c9c\u0cc6":"\u0cb0\u0cbe\u0ca4\u0ccd\u0cb0\u0cbf"},dayOfMonthOrdinalParse:/\d{1,2}(\u0ca8\u0cc6\u0cd5)/,ordinal:function(t){return t+"\u0ca8\u0cc6\u0cd5"},week:{dow:0,doy:6}})}(i(76474))},89154:function(t,e,i){!function(t){"use strict";t.defineLocale("ko",{months:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),monthsShort:"1\uc6d4_2\uc6d4_3\uc6d4_4\uc6d4_5\uc6d4_6\uc6d4_7\uc6d4_8\uc6d4_9\uc6d4_10\uc6d4_11\uc6d4_12\uc6d4".split("_"),weekdays:"\uc77c\uc694\uc77c_\uc6d4\uc694\uc77c_\ud654\uc694\uc77c_\uc218\uc694\uc77c_\ubaa9\uc694\uc77c_\uae08\uc694\uc77c_\ud1a0\uc694\uc77c".split("_"),weekdaysShort:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),weekdaysMin:"\uc77c_\uc6d4_\ud654_\uc218_\ubaa9_\uae08_\ud1a0".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY\ub144 MMMM D\uc77c",LLL:"YYYY\ub144 MMMM D\uc77c A h:mm",LLLL:"YYYY\ub144 MMMM D\uc77c dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY\ub144 MMMM D\uc77c",lll:"YYYY\ub144 MMMM D\uc77c A h:mm",llll:"YYYY\ub144 MMMM D\uc77c dddd A h:mm"},calendar:{sameDay:"\uc624\ub298 LT",nextDay:"\ub0b4\uc77c LT",nextWeek:"dddd LT",lastDay:"\uc5b4\uc81c LT",lastWeek:"\uc9c0\ub09c\uc8fc dddd LT",sameElse:"L"},relativeTime:{future:"%s \ud6c4",past:"%s \uc804",s:"\uba87 \ucd08",ss:"%d\ucd08",m:"1\ubd84",mm:"%d\ubd84",h:"\ud55c \uc2dc\uac04",hh:"%d\uc2dc\uac04",d:"\ud558\ub8e8",dd:"%d\uc77c",M:"\ud55c \ub2ec",MM:"%d\ub2ec",y:"\uc77c \ub144",yy:"%d\ub144"},dayOfMonthOrdinalParse:/\d{1,2}(\uc77c|\uc6d4|\uc8fc)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\uc77c";case"M":return t+"\uc6d4";case"w":case"W":return t+"\uc8fc";default:return t}},meridiemParse:/\uc624\uc804|\uc624\ud6c4/,isPM:function(t){return"\uc624\ud6c4"===t},meridiem:function(t,e,i){return t<12?"\uc624\uc804":"\uc624\ud6c4"}})}(i(76474))},48220:function(t,e,i){!function(t){"use strict";var e={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},i={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},n=["\u06a9\u0627\u0646\u0648\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u0634\u0648\u0628\u0627\u062a","\u0626\u0627\u0632\u0627\u0631","\u0646\u06cc\u0633\u0627\u0646","\u0626\u0627\u06cc\u0627\u0631","\u062d\u0648\u0632\u06d5\u06cc\u0631\u0627\u0646","\u062a\u06d5\u0645\u0645\u0648\u0632","\u0626\u0627\u0628","\u0626\u06d5\u06cc\u0644\u0648\u0648\u0644","\u062a\u0634\u0631\u06cc\u0646\u06cc \u06cc\u06d5\u0643\u06d5\u0645","\u062a\u0634\u0631\u06cc\u0646\u06cc \u062f\u0648\u0648\u06d5\u0645","\u0643\u0627\u0646\u0648\u0646\u06cc \u06cc\u06d5\u06a9\u06d5\u0645"];t.defineLocale("ku",{months:n,monthsShort:n,weekdays:"\u06cc\u0647\u200c\u0643\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u062f\u0648\u0648\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0633\u06ce\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0686\u0648\u0627\u0631\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u067e\u06ce\u0646\u062c\u0634\u0647\u200c\u0645\u0645\u0647\u200c_\u0647\u0647\u200c\u06cc\u0646\u06cc_\u0634\u0647\u200c\u0645\u0645\u0647\u200c".split("_"),weekdaysShort:"\u06cc\u0647\u200c\u0643\u0634\u0647\u200c\u0645_\u062f\u0648\u0648\u0634\u0647\u200c\u0645_\u0633\u06ce\u0634\u0647\u200c\u0645_\u0686\u0648\u0627\u0631\u0634\u0647\u200c\u0645_\u067e\u06ce\u0646\u062c\u0634\u0647\u200c\u0645_\u0647\u0647\u200c\u06cc\u0646\u06cc_\u0634\u0647\u200c\u0645\u0645\u0647\u200c".split("_"),weekdaysMin:"\u06cc_\u062f_\u0633_\u0686_\u067e_\u0647_\u0634".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c|\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc/,isPM:function(t){return/\u0626\u06ce\u0648\u0627\u0631\u0647\u200c/.test(t)},meridiem:function(t,e,i){return t<12?"\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc":"\u0626\u06ce\u0648\u0627\u0631\u0647\u200c"},calendar:{sameDay:"[\u0626\u0647\u200c\u0645\u0631\u06c6 \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",nextDay:"[\u0628\u0647\u200c\u06cc\u0627\u0646\u06cc \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",nextWeek:"dddd [\u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",lastDay:"[\u062f\u0648\u06ce\u0646\u06ce \u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",lastWeek:"dddd [\u0643\u0627\u062a\u0698\u0645\u06ce\u0631] LT",sameElse:"L"},relativeTime:{future:"\u0644\u0647\u200c %s",past:"%s",s:"\u0686\u0647\u200c\u0646\u062f \u0686\u0631\u0643\u0647\u200c\u06cc\u0647\u200c\u0643",ss:"\u0686\u0631\u0643\u0647\u200c %d",m:"\u06cc\u0647\u200c\u0643 \u062e\u0648\u0644\u0647\u200c\u0643",mm:"%d \u062e\u0648\u0644\u0647\u200c\u0643",h:"\u06cc\u0647\u200c\u0643 \u0643\u0627\u062a\u0698\u0645\u06ce\u0631",hh:"%d \u0643\u0627\u062a\u0698\u0645\u06ce\u0631",d:"\u06cc\u0647\u200c\u0643 \u0695\u06c6\u0698",dd:"%d \u0695\u06c6\u0698",M:"\u06cc\u0647\u200c\u0643 \u0645\u0627\u0646\u06af",MM:"%d \u0645\u0627\u0646\u06af",y:"\u06cc\u0647\u200c\u0643 \u0633\u0627\u06b5",yy:"%d \u0633\u0627\u06b5"},preparse:function(t){return t.replace(/[\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\u0660]/g,(function(t){return i[t]})).replace(/\u060c/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"\u060c")},week:{dow:6,doy:12}})}(i(76474))},73665:function(t,e,i){!function(t){"use strict";var e={0:"-\u0447\u04af",1:"-\u0447\u0438",2:"-\u0447\u0438",3:"-\u0447\u04af",4:"-\u0447\u04af",5:"-\u0447\u0438",6:"-\u0447\u044b",7:"-\u0447\u0438",8:"-\u0447\u0438",9:"-\u0447\u0443",10:"-\u0447\u0443",20:"-\u0447\u044b",30:"-\u0447\u0443",40:"-\u0447\u044b",50:"-\u0447\u04af",60:"-\u0447\u044b",70:"-\u0447\u0438",80:"-\u0447\u0438",90:"-\u0447\u0443",100:"-\u0447\u04af"};t.defineLocale("ky",{months:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u0416\u0435\u043a\u0448\u0435\u043c\u0431\u0438_\u0414\u04af\u0439\u0448\u04e9\u043c\u0431\u04af_\u0428\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0428\u0430\u0440\u0448\u0435\u043c\u0431\u0438_\u0411\u0435\u0439\u0448\u0435\u043c\u0431\u0438_\u0416\u0443\u043c\u0430_\u0418\u0448\u0435\u043c\u0431\u0438".split("_"),weekdaysShort:"\u0416\u0435\u043a_\u0414\u04af\u0439_\u0428\u0435\u0439_\u0428\u0430\u0440_\u0411\u0435\u0439_\u0416\u0443\u043c_\u0418\u0448\u0435".split("_"),weekdaysMin:"\u0416\u043a_\u0414\u0439_\u0428\u0439_\u0428\u0440_\u0411\u0439_\u0416\u043c_\u0418\u0448".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0411\u04af\u0433\u04af\u043d \u0441\u0430\u0430\u0442] LT",nextDay:"[\u042d\u0440\u0442\u0435\u04a3 \u0441\u0430\u0430\u0442] LT",nextWeek:"dddd [\u0441\u0430\u0430\u0442] LT",lastDay:"[\u041a\u0435\u0447\u044d\u044d \u0441\u0430\u0430\u0442] LT",lastWeek:"[\u04e8\u0442\u043a\u04e9\u043d \u0430\u043f\u0442\u0430\u043d\u044b\u043d] dddd [\u043a\u04af\u043d\u04af] [\u0441\u0430\u0430\u0442] LT",sameElse:"L"},relativeTime:{future:"%s \u0438\u0447\u0438\u043d\u0434\u0435",past:"%s \u043c\u0443\u0440\u0443\u043d",s:"\u0431\u0438\u0440\u043d\u0435\u0447\u0435 \u0441\u0435\u043a\u0443\u043d\u0434",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434",m:"\u0431\u0438\u0440 \u043c\u04af\u043d\u04e9\u0442",mm:"%d \u043c\u04af\u043d\u04e9\u0442",h:"\u0431\u0438\u0440 \u0441\u0430\u0430\u0442",hh:"%d \u0441\u0430\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u04af\u043d",dd:"%d \u043a\u04af\u043d",M:"\u0431\u0438\u0440 \u0430\u0439",MM:"%d \u0430\u0439",y:"\u0431\u0438\u0440 \u0436\u044b\u043b",yy:"%d \u0436\u044b\u043b"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0447\u0438|\u0447\u044b|\u0447\u04af|\u0447\u0443)/,ordinal:function(t){var i=t%10,n=t>=100?100:null;return t+(e[t]||e[i]||e[n])},week:{dow:1,doy:7}})}(i(76474))},5358:function(t,e,i){!function(t){"use strict";function e(t,e,i,n){var r={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return e?r[i][0]:r[i][1]}function i(t){return r(t.substr(0,t.indexOf(" ")))?"a "+t:"an "+t}function n(t){return r(t.substr(0,t.indexOf(" ")))?"viru "+t:"virun "+t}function r(t){if(t=parseInt(t,10),isNaN(t))return!1;if(t<0)return!0;if(t<10)return 4<=t&&t<=7;if(t<100){var e=t%10;return r(0===e?t/10:e)}if(t<1e4){for(;t>=10;)t/=10;return r(t)}return r(t/=1e3)}t.defineLocale("lb",{months:"Januar_Februar_M\xe4erz_Abr\xebll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_M\xe9indeg_D\xebnschdeg_M\xebttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._M\xe9._D\xeb._M\xeb._Do._Fr._Sa.".split("_"),weekdaysMin:"So_M\xe9_D\xeb_M\xeb_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[G\xebschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:i,past:n,s:"e puer Sekonnen",ss:"%d Sekonnen",m:e,mm:"%d Minutten",h:e,hh:"%d Stonnen",d:e,dd:"%d Deeg",M:e,MM:"%d M\xe9int",y:e,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},5047:function(t,e,i){!function(t){"use strict";t.defineLocale("lo",{months:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),monthsShort:"\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99_\u0e81\u0eb8\u0ea1\u0e9e\u0eb2_\u0ea1\u0eb5\u0e99\u0eb2_\u0ec0\u0ea1\u0eaa\u0eb2_\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2_\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2_\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94_\u0eaa\u0eb4\u0e87\u0eab\u0eb2_\u0e81\u0eb1\u0e99\u0e8d\u0eb2_\u0e95\u0eb8\u0ea5\u0eb2_\u0e9e\u0eb0\u0e88\u0eb4\u0e81_\u0e97\u0eb1\u0e99\u0ea7\u0eb2".split("_"),weekdays:"\u0ead\u0eb2\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysShort:"\u0e97\u0eb4\u0e94_\u0e88\u0eb1\u0e99_\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99_\u0e9e\u0eb8\u0e94_\u0e9e\u0eb0\u0eab\u0eb1\u0e94_\u0eaa\u0eb8\u0e81_\u0ec0\u0eaa\u0ebb\u0eb2".split("_"),weekdaysMin:"\u0e97_\u0e88_\u0ead\u0e84_\u0e9e_\u0e9e\u0eab_\u0eaa\u0e81_\u0eaa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"\u0ea7\u0eb1\u0e99dddd D MMMM YYYY HH:mm"},meridiemParse:/\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2|\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87/,isPM:function(t){return"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"===t},meridiem:function(t,e,i){return t<12?"\u0e95\u0ead\u0e99\u0ec0\u0e8a\u0ebb\u0ec9\u0eb2":"\u0e95\u0ead\u0e99\u0ec1\u0ea5\u0e87"},calendar:{sameDay:"[\u0ea1\u0eb7\u0ec9\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextDay:"[\u0ea1\u0eb7\u0ec9\u0ead\u0eb7\u0ec8\u0e99\u0ec0\u0ea7\u0ea5\u0eb2] LT",nextWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0edc\u0ec9\u0eb2\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastDay:"[\u0ea1\u0eb7\u0ec9\u0ea7\u0eb2\u0e99\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",lastWeek:"[\u0ea7\u0eb1\u0e99]dddd[\u0ec1\u0ea5\u0ec9\u0ea7\u0e99\u0eb5\u0ec9\u0ec0\u0ea7\u0ea5\u0eb2] LT",sameElse:"L"},relativeTime:{future:"\u0ead\u0eb5\u0e81 %s",past:"%s\u0e9c\u0ec8\u0eb2\u0e99\u0ea1\u0eb2",s:"\u0e9a\u0ecd\u0ec8\u0ec0\u0e97\u0ebb\u0ec8\u0eb2\u0ec3\u0e94\u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",ss:"%d \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5",m:"1 \u0e99\u0eb2\u0e97\u0eb5",mm:"%d \u0e99\u0eb2\u0e97\u0eb5",h:"1 \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",hh:"%d \u0e8a\u0ebb\u0ec8\u0ea7\u0ec2\u0ea1\u0e87",d:"1 \u0ea1\u0eb7\u0ec9",dd:"%d \u0ea1\u0eb7\u0ec9",M:"1 \u0ec0\u0e94\u0eb7\u0ead\u0e99",MM:"%d \u0ec0\u0e94\u0eb7\u0ead\u0e99",y:"1 \u0e9b\u0eb5",yy:"%d \u0e9b\u0eb5"},dayOfMonthOrdinalParse:/(\u0e97\u0eb5\u0ec8)\d{1,2}/,ordinal:function(t){return"\u0e97\u0eb5\u0ec8"+t}})}(i(76474))},63572:function(t,e,i){!function(t){"use strict";var e={ss:"sekund\u0117_sekund\u017ei\u0173_sekundes",m:"minut\u0117_minut\u0117s_minut\u0119",mm:"minut\u0117s_minu\u010di\u0173_minutes",h:"valanda_valandos_valand\u0105",hh:"valandos_valand\u0173_valandas",d:"diena_dienos_dien\u0105",dd:"dienos_dien\u0173_dienas",M:"m\u0117nuo_m\u0117nesio_m\u0117nes\u012f",MM:"m\u0117nesiai_m\u0117nesi\u0173_m\u0117nesius",y:"metai_met\u0173_metus",yy:"metai_met\u0173_metus"};function i(t,e,i,n){return e?"kelios sekund\u0117s":n?"keli\u0173 sekund\u017ei\u0173":"kelias sekundes"}function n(t,e,i,n){return e?s(i)[0]:n?s(i)[1]:s(i)[2]}function r(t){return t%10==0||t>10&&t<20}function s(t){return e[t].split("_")}function o(t,e,i,o){var a=t+" ";return 1===t?a+n(t,e,i[0],o):e?a+(r(t)?s(i)[1]:s(i)[0]):o?a+s(i)[1]:a+(r(t)?s(i)[1]:s(i)[2])}t.defineLocale("lt",{months:{format:"sausio_vasario_kovo_baland\u017eio_gegu\u017e\u0117s_bir\u017eelio_liepos_rugpj\u016b\u010dio_rugs\u0117jo_spalio_lapkri\u010dio_gruod\u017eio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegu\u017e\u0117_bir\u017eelis_liepa_rugpj\u016btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadien\u012f_pirmadien\u012f_antradien\u012f_tre\u010diadien\u012f_ketvirtadien\u012f_penktadien\u012f_\u0161e\u0161tadien\u012f".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_tre\u010diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_\u0160e\u0161".split("_"),weekdaysMin:"S_P_A_T_K_Pn_\u0160".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[\u0160iandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Pra\u0117jus\u012f] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prie\u0161 %s",s:i,ss:o,m:n,mm:o,h:n,hh:o,d:n,dd:o,M:n,MM:o,y:n,yy:o},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(t){return t+"-oji"},week:{dow:1,doy:4}})}(i(76474))},36638:function(t,e,i){!function(t){"use strict";var e={ss:"sekundes_sekund\u0113m_sekunde_sekundes".split("_"),m:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),mm:"min\u016btes_min\u016bt\u0113m_min\u016bte_min\u016btes".split("_"),h:"stundas_stund\u0101m_stunda_stundas".split("_"),hh:"stundas_stund\u0101m_stunda_stundas".split("_"),d:"dienas_dien\u0101m_diena_dienas".split("_"),dd:"dienas_dien\u0101m_diena_dienas".split("_"),M:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),MM:"m\u0113ne\u0161a_m\u0113ne\u0161iem_m\u0113nesis_m\u0113ne\u0161i".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function i(t,e,i){return i?e%10==1&&e%100!=11?t[2]:t[3]:e%10==1&&e%100!=11?t[0]:t[1]}function n(t,n,r){return t+" "+i(e[r],t,n)}function r(t,n,r){return i(e[r],t,n)}function s(t,e){return e?"da\u017eas sekundes":"da\u017e\u0101m sekund\u0113m"}t.defineLocale("lv",{months:"janv\u0101ris_febru\u0101ris_marts_apr\u012blis_maijs_j\u016bnijs_j\u016blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016bn_j\u016bl_aug_sep_okt_nov_dec".split("_"),weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[\u0160odien pulksten] LT",nextDay:"[R\u012bt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pag\u0101ju\u0161\u0101] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s,ss:n,m:r,mm:n,h:r,hh:n,d:r,dd:n,M:r,MM:n,y:r,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},19978:function(t,e,i){!function(t){"use strict";var e={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,i,n){var r=e.words[n];return 1===n.length?i?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedjelje] [u] LT","[pro\u0161log] [ponedjeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srijede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mjesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(i(76474))},17472:function(t,e,i){!function(t){"use strict";t.defineLocale("mi",{months:"Kohi-t\u0101te_Hui-tanguru_Pout\u016b-te-rangi_Paenga-wh\u0101wh\u0101_Haratua_Pipiri_H\u014dngoingoi_Here-turi-k\u014dk\u0101_Mahuru_Whiringa-\u0101-nuku_Whiringa-\u0101-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_H\u014dngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"R\u0101tapu_Mane_T\u016brei_Wenerei_T\u0101ite_Paraire_H\u0101tarei".split("_"),weekdaysShort:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),weekdaysMin:"Ta_Ma_T\u016b_We_T\u0101i_Pa_H\u0101".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te h\u0113kona ruarua",ss:"%d h\u0113kona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(i(76474))},60968:function(t,e,i){!function(t){"use strict";t.defineLocale("mk",{months:"\u0458\u0430\u043d\u0443\u0430\u0440\u0438_\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d\u0438_\u0458\u0443\u043b\u0438_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438_\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438_\u043d\u043e\u0435\u043c\u0432\u0440\u0438_\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438".split("_"),monthsShort:"\u0458\u0430\u043d_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433_\u0441\u0435\u043f_\u043e\u043a\u0442_\u043d\u043e\u0435_\u0434\u0435\u043a".split("_"),weekdays:"\u043d\u0435\u0434\u0435\u043b\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a_\u043f\u0435\u0442\u043e\u043a_\u0441\u0430\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434_\u043f\u043e\u043d_\u0432\u0442\u043e_\u0441\u0440\u0435_\u0447\u0435\u0442_\u043f\u0435\u0442_\u0441\u0430\u0431".split("_"),weekdaysMin:"\u043de_\u043fo_\u0432\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441a".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[\u0414\u0435\u043d\u0435\u0441 \u0432\u043e] LT",nextDay:"[\u0423\u0442\u0440\u0435 \u0432\u043e] LT",nextWeek:"[\u0412\u043e] dddd [\u0432\u043e] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430 \u0432\u043e] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0430\u0442\u0430] dddd [\u0432\u043e] LT";case 1:case 2:case 4:case 5:return"[\u0418\u0437\u043c\u0438\u043d\u0430\u0442\u0438\u043e\u0442] dddd [\u0432\u043e] LT"}},sameElse:"L"},relativeTime:{future:"\u043f\u043e\u0441\u043b\u0435 %s",past:"\u043f\u0440\u0435\u0434 %s",s:"\u043d\u0435\u043a\u043e\u043b\u043a\u0443 \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:"%d \u0441\u0435\u043a\u0443\u043d\u0434\u0438",m:"\u043c\u0438\u043d\u0443\u0442\u0430",mm:"%d \u043c\u0438\u043d\u0443\u0442\u0438",h:"\u0447\u0430\u0441",hh:"%d \u0447\u0430\u0441\u0430",d:"\u0434\u0435\u043d",dd:"%d \u0434\u0435\u043d\u0430",M:"\u043c\u0435\u0441\u0435\u0446",MM:"%d \u043c\u0435\u0441\u0435\u0446\u0438",y:"\u0433\u043e\u0434\u0438\u043d\u0430",yy:"%d \u0433\u043e\u0434\u0438\u043d\u0438"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0435\u0432|\u0435\u043d|\u0442\u0438|\u0432\u0438|\u0440\u0438|\u043c\u0438)/,ordinal:function(t){var e=t%10,i=t%100;return 0===t?t+"-\u0435\u0432":0===i?t+"-\u0435\u043d":i>10&&i<20?t+"-\u0442\u0438":1===e?t+"-\u0432\u0438":2===e?t+"-\u0440\u0438":7===e||8===e?t+"-\u043c\u0438":t+"-\u0442\u0438"},week:{dow:1,doy:7}})}(i(76474))},53126:function(t,e,i){!function(t){"use strict";t.defineLocale("ml",{months:"\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f_\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f_\u0d2e\u0d3e\u0d7c\u0d1a\u0d4d\u0d1a\u0d4d_\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d7d_\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48_\u0d13\u0d17\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d_\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d02\u0d2c\u0d7c_\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d7c_\u0d28\u0d35\u0d02\u0d2c\u0d7c_\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d7c".split("_"),monthsShort:"\u0d1c\u0d28\u0d41._\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41._\u0d2e\u0d3e\u0d7c._\u0d0f\u0d2a\u0d4d\u0d30\u0d3f._\u0d2e\u0d47\u0d2f\u0d4d_\u0d1c\u0d42\u0d7a_\u0d1c\u0d42\u0d32\u0d48._\u0d13\u0d17._\u0d38\u0d46\u0d2a\u0d4d\u0d31\u0d4d\u0d31._\u0d12\u0d15\u0d4d\u0d1f\u0d4b._\u0d28\u0d35\u0d02._\u0d21\u0d3f\u0d38\u0d02.".split("_"),monthsParseExact:!0,weekdays:"\u0d1e\u0d3e\u0d2f\u0d31\u0d3e\u0d34\u0d4d\u0d1a_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a_\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u0d3e\u0d34\u0d4d\u0d1a_\u0d2c\u0d41\u0d27\u0d28\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d3e\u0d34\u0d4d\u0d1a_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a_\u0d36\u0d28\u0d3f\u0d2f\u0d3e\u0d34\u0d4d\u0d1a".split("_"),weekdaysShort:"\u0d1e\u0d3e\u0d2f\u0d7c_\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d7e_\u0d1a\u0d4a\u0d35\u0d4d\u0d35_\u0d2c\u0d41\u0d27\u0d7b_\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02_\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f_\u0d36\u0d28\u0d3f".split("_"),weekdaysMin:"\u0d1e\u0d3e_\u0d24\u0d3f_\u0d1a\u0d4a_\u0d2c\u0d41_\u0d35\u0d4d\u0d2f\u0d3e_\u0d35\u0d46_\u0d36".split("_"),longDateFormat:{LT:"A h:mm -\u0d28\u0d41",LTS:"A h:mm:ss -\u0d28\u0d41",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -\u0d28\u0d41",LLLL:"dddd, D MMMM YYYY, A h:mm -\u0d28\u0d41"},calendar:{sameDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d4d] LT",nextDay:"[\u0d28\u0d3e\u0d33\u0d46] LT",nextWeek:"dddd, LT",lastDay:"[\u0d07\u0d28\u0d4d\u0d28\u0d32\u0d46] LT",lastWeek:"[\u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d",past:"%s \u0d2e\u0d41\u0d7b\u0d2a\u0d4d",s:"\u0d05\u0d7d\u0d2a \u0d28\u0d3f\u0d2e\u0d3f\u0d37\u0d19\u0d4d\u0d19\u0d7e",ss:"%d \u0d38\u0d46\u0d15\u0d4d\u0d15\u0d7b\u0d21\u0d4d",m:"\u0d12\u0d30\u0d41 \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",mm:"%d \u0d2e\u0d3f\u0d28\u0d3f\u0d31\u0d4d\u0d31\u0d4d",h:"\u0d12\u0d30\u0d41 \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",hh:"%d \u0d2e\u0d23\u0d3f\u0d15\u0d4d\u0d15\u0d42\u0d7c",d:"\u0d12\u0d30\u0d41 \u0d26\u0d3f\u0d35\u0d38\u0d02",dd:"%d \u0d26\u0d3f\u0d35\u0d38\u0d02",M:"\u0d12\u0d30\u0d41 \u0d2e\u0d3e\u0d38\u0d02",MM:"%d \u0d2e\u0d3e\u0d38\u0d02",y:"\u0d12\u0d30\u0d41 \u0d35\u0d7c\u0d37\u0d02",yy:"%d \u0d35\u0d7c\u0d37\u0d02"},meridiemParse:/\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f|\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46|\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d|\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02|\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f/i,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"===e&&t>=4||"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d"===e||"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02"===e?t+12:t},meridiem:function(t,e,i){return t<4?"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f":t<12?"\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46":t<17?"\u0d09\u0d1a\u0d4d\u0d1a \u0d15\u0d34\u0d3f\u0d1e\u0d4d\u0d1e\u0d4d":t<20?"\u0d35\u0d48\u0d15\u0d41\u0d28\u0d4d\u0d28\u0d47\u0d30\u0d02":"\u0d30\u0d3e\u0d24\u0d4d\u0d30\u0d3f"}})}(i(76474))},74277:function(t,e,i){!function(t){"use strict";function e(t,e,i,n){switch(i){case"s":return e?"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434":"\u0445\u044d\u0434\u0445\u044d\u043d \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d";case"ss":return t+(e?" \u0441\u0435\u043a\u0443\u043d\u0434":" \u0441\u0435\u043a\u0443\u043d\u0434\u044b\u043d");case"m":case"mm":return t+(e?" \u043c\u0438\u043d\u0443\u0442":" \u043c\u0438\u043d\u0443\u0442\u044b\u043d");case"h":case"hh":return t+(e?" \u0446\u0430\u0433":" \u0446\u0430\u0433\u0438\u0439\u043d");case"d":case"dd":return t+(e?" \u04e9\u0434\u04e9\u0440":" \u04e9\u0434\u0440\u0438\u0439\u043d");case"M":case"MM":return t+(e?" \u0441\u0430\u0440":" \u0441\u0430\u0440\u044b\u043d");case"y":case"yy":return t+(e?" \u0436\u0438\u043b":" \u0436\u0438\u043b\u0438\u0439\u043d");default:return t}}t.defineLocale("mn",{months:"\u041d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0425\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0413\u0443\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u04e9\u0440\u04e9\u0432\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0422\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0417\u0443\u0440\u0433\u0430\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0414\u043e\u043b\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u041d\u0430\u0439\u043c\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0415\u0441\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0430\u0432\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u043d\u044d\u0433\u0434\u04af\u0433\u044d\u044d\u0440 \u0441\u0430\u0440_\u0410\u0440\u0432\u0430\u043d \u0445\u043e\u0451\u0440\u0434\u0443\u0433\u0430\u0430\u0440 \u0441\u0430\u0440".split("_"),monthsShort:"1 \u0441\u0430\u0440_2 \u0441\u0430\u0440_3 \u0441\u0430\u0440_4 \u0441\u0430\u0440_5 \u0441\u0430\u0440_6 \u0441\u0430\u0440_7 \u0441\u0430\u0440_8 \u0441\u0430\u0440_9 \u0441\u0430\u0440_10 \u0441\u0430\u0440_11 \u0441\u0430\u0440_12 \u0441\u0430\u0440".split("_"),monthsParseExact:!0,weekdays:"\u041d\u044f\u043c_\u0414\u0430\u0432\u0430\u0430_\u041c\u044f\u0433\u043c\u0430\u0440_\u041b\u0445\u0430\u0433\u0432\u0430_\u041f\u04af\u0440\u044d\u0432_\u0411\u0430\u0430\u0441\u0430\u043d_\u0411\u044f\u043c\u0431\u0430".split("_"),weekdaysShort:"\u041d\u044f\u043c_\u0414\u0430\u0432_\u041c\u044f\u0433_\u041b\u0445\u0430_\u041f\u04af\u0440_\u0411\u0430\u0430_\u0411\u044f\u043c".split("_"),weekdaysMin:"\u041d\u044f_\u0414\u0430_\u041c\u044f_\u041b\u0445_\u041f\u04af_\u0411\u0430_\u0411\u044f".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D",LLL:"YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm",LLLL:"dddd, YYYY \u043e\u043d\u044b MMMM\u044b\u043d D HH:mm"},meridiemParse:/\u04ae\u04e8|\u04ae\u0425/i,isPM:function(t){return"\u04ae\u0425"===t},meridiem:function(t,e,i){return t<12?"\u04ae\u04e8":"\u04ae\u0425"},calendar:{sameDay:"[\u04e8\u043d\u04e9\u04e9\u0434\u04e9\u0440] LT",nextDay:"[\u041c\u0430\u0440\u0433\u0430\u0430\u0448] LT",nextWeek:"[\u0418\u0440\u044d\u0445] dddd LT",lastDay:"[\u04e8\u0447\u0438\u0433\u0434\u04e9\u0440] LT",lastWeek:"[\u04e8\u043d\u0433\u04e9\u0440\u0441\u04e9\u043d] dddd LT",sameElse:"L"},relativeTime:{future:"%s \u0434\u0430\u0440\u0430\u0430",past:"%s \u04e9\u043c\u043d\u04e9",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2} \u04e9\u0434\u04e9\u0440/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+" \u04e9\u0434\u04e9\u0440";default:return t}}})}(i(76474))},26078:function(t,e,i){!function(t){"use strict";var e={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},i={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};function n(t,e,i,n){var r="";if(e)switch(i){case"s":r="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926";break;case"ss":r="%d \u0938\u0947\u0915\u0902\u0926";break;case"m":r="\u090f\u0915 \u092e\u093f\u0928\u093f\u091f";break;case"mm":r="%d \u092e\u093f\u0928\u093f\u091f\u0947";break;case"h":r="\u090f\u0915 \u0924\u093e\u0938";break;case"hh":r="%d \u0924\u093e\u0938";break;case"d":r="\u090f\u0915 \u0926\u093f\u0935\u0938";break;case"dd":r="%d \u0926\u093f\u0935\u0938";break;case"M":r="\u090f\u0915 \u092e\u0939\u093f\u0928\u093e";break;case"MM":r="%d \u092e\u0939\u093f\u0928\u0947";break;case"y":r="\u090f\u0915 \u0935\u0930\u094d\u0937";break;case"yy":r="%d \u0935\u0930\u094d\u0937\u0947"}else switch(i){case"s":r="\u0915\u093e\u0939\u0940 \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"ss":r="%d \u0938\u0947\u0915\u0902\u0926\u093e\u0902";break;case"m":r="\u090f\u0915\u093e \u092e\u093f\u0928\u093f\u091f\u093e";break;case"mm":r="%d \u092e\u093f\u0928\u093f\u091f\u093e\u0902";break;case"h":r="\u090f\u0915\u093e \u0924\u093e\u0938\u093e";break;case"hh":r="%d \u0924\u093e\u0938\u093e\u0902";break;case"d":r="\u090f\u0915\u093e \u0926\u093f\u0935\u0938\u093e";break;case"dd":r="%d \u0926\u093f\u0935\u0938\u093e\u0902";break;case"M":r="\u090f\u0915\u093e \u092e\u0939\u093f\u0928\u094d\u092f\u093e";break;case"MM":r="%d \u092e\u0939\u093f\u0928\u094d\u092f\u093e\u0902";break;case"y":r="\u090f\u0915\u093e \u0935\u0930\u094d\u0937\u093e";break;case"yy":r="%d \u0935\u0930\u094d\u0937\u093e\u0902"}return r.replace(/%d/i,t)}t.defineLocale("mr",{months:"\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u090f\u092a\u094d\u0930\u093f\u0932_\u092e\u0947_\u091c\u0942\u0928_\u091c\u0941\u0932\u0948_\u0911\u0917\u0938\u094d\u091f_\u0938\u092a\u094d\u091f\u0947\u0902\u092c\u0930_\u0911\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930_\u0921\u093f\u0938\u0947\u0902\u092c\u0930".split("_"),monthsShort:"\u091c\u093e\u0928\u0947._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a._\u090f\u092a\u094d\u0930\u093f._\u092e\u0947._\u091c\u0942\u0928._\u091c\u0941\u0932\u0948._\u0911\u0917._\u0938\u092a\u094d\u091f\u0947\u0902._\u0911\u0915\u094d\u091f\u094b._\u0928\u094b\u0935\u094d\u0939\u0947\u0902._\u0921\u093f\u0938\u0947\u0902.".split("_"),monthsParseExact:!0,weekdays:"\u0930\u0935\u093f\u0935\u093e\u0930_\u0938\u094b\u092e\u0935\u093e\u0930_\u092e\u0902\u0917\u0933\u0935\u093e\u0930_\u092c\u0941\u0927\u0935\u093e\u0930_\u0917\u0941\u0930\u0942\u0935\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930_\u0936\u0928\u093f\u0935\u093e\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093f_\u0938\u094b\u092e_\u092e\u0902\u0917\u0933_\u092c\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094d\u0930_\u0936\u0928\u093f".split("_"),weekdaysMin:"\u0930_\u0938\u094b_\u092e\u0902_\u092c\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),longDateFormat:{LT:"A h:mm \u0935\u093e\u091c\u0924\u093e",LTS:"A h:mm:ss \u0935\u093e\u091c\u0924\u093e",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e",LLLL:"dddd, D MMMM YYYY, A h:mm \u0935\u093e\u091c\u0924\u093e"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u0909\u0926\u094d\u092f\u093e] LT",nextWeek:"dddd, LT",lastDay:"[\u0915\u093e\u0932] LT",lastWeek:"[\u092e\u093e\u0917\u0940\u0932] dddd, LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u0927\u094d\u092f\u0947",past:"%s\u092a\u0942\u0930\u094d\u0935\u0940",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},preparse:function(t){return t.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,(function(t){return i[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/\u0930\u093e\u0924\u094d\u0930\u0940|\u0938\u0915\u093e\u0933\u0940|\u0926\u0941\u092a\u093e\u0930\u0940|\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0930\u093e\u0924\u094d\u0930\u0940"===e?t<4?t:t+12:"\u0938\u0915\u093e\u0933\u0940"===e?t:"\u0926\u0941\u092a\u093e\u0930\u0940"===e?t>=10?t:t+12:"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940"===e?t+12:void 0},meridiem:function(t,e,i){return t<4?"\u0930\u093e\u0924\u094d\u0930\u0940":t<10?"\u0938\u0915\u093e\u0933\u0940":t<17?"\u0926\u0941\u092a\u093e\u0930\u0940":t<20?"\u0938\u093e\u092f\u0902\u0915\u093e\u0933\u0940":"\u0930\u093e\u0924\u094d\u0930\u0940"},week:{dow:0,doy:6}})}(i(76474))},30141:function(t,e,i){!function(t){"use strict";t.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,i){return t<11?"pagi":t<15?"tengahari":t<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(i(76474))},52364:function(t,e,i){!function(t){"use strict";t.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,i){return t<11?"pagi":t<15?"tengahari":t<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(i(76474))},92914:function(t,e,i){!function(t){"use strict";t.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_\u0120unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Di\u010bembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_\u0120un_Lul_Aww_Set_Ott_Nov_Di\u010b".split("_"),weekdays:"Il-\u0126add_It-Tnejn_It-Tlieta_L-Erbg\u0127a_Il-\u0126amis_Il-\u0120img\u0127a_Is-Sibt".split("_"),weekdaysShort:"\u0126ad_Tne_Tli_Erb_\u0126am_\u0120im_Sib".split("_"),weekdaysMin:"\u0126a_Tn_Tl_Er_\u0126a_\u0120i_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[G\u0127ada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-biera\u0127 fil-]LT",lastWeek:"dddd [li g\u0127adda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f\u2019 %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"sieg\u0127a",hh:"%d sieg\u0127at",d:"\u0121urnata",dd:"%d \u0121ranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(i(76474))},15334:function(t,e,i){!function(t){"use strict";var e={1:"\u1041",2:"\u1042",3:"\u1043",4:"\u1044",5:"\u1045",6:"\u1046",7:"\u1047",8:"\u1048",9:"\u1049",0:"\u1040"},i={"\u1041":"1","\u1042":"2","\u1043":"3","\u1044":"4","\u1045":"5","\u1046":"6","\u1047":"7","\u1048":"8","\u1049":"9","\u1040":"0"};t.defineLocale("my",{months:"\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e_\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e_\u1019\u1010\u103a_\u1027\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u1007\u1030\u101c\u102d\u102f\u1004\u103a_\u101e\u103c\u1002\u102f\u1010\u103a_\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c_\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c_\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c_\u1012\u102e\u1007\u1004\u103a\u1018\u102c".split("_"),monthsShort:"\u1007\u1014\u103a_\u1016\u1031_\u1019\u1010\u103a_\u1015\u103c\u102e_\u1019\u1031_\u1007\u103d\u1014\u103a_\u101c\u102d\u102f\u1004\u103a_\u101e\u103c_\u1005\u1000\u103a_\u1021\u1031\u102c\u1000\u103a_\u1014\u102d\u102f_\u1012\u102e".split("_"),weekdays:"\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031_\u1010\u1014\u1004\u103a\u1039\u101c\u102c_\u1021\u1004\u103a\u1039\u1002\u102b_\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038_\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038_\u101e\u1031\u102c\u1000\u103c\u102c_\u1005\u1014\u1031".split("_"),weekdaysShort:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),weekdaysMin:"\u1014\u103d\u1031_\u101c\u102c_\u1002\u102b_\u101f\u1030\u1038_\u1000\u103c\u102c_\u101e\u1031\u102c_\u1014\u1031".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u101a\u1014\u1031.] LT [\u1019\u103e\u102c]",nextDay:"[\u1019\u1014\u1000\u103a\u1016\u103c\u1014\u103a] LT [\u1019\u103e\u102c]",nextWeek:"dddd LT [\u1019\u103e\u102c]",lastDay:"[\u1019\u1014\u1031.\u1000] LT [\u1019\u103e\u102c]",lastWeek:"[\u1015\u103c\u102e\u1038\u1001\u1032\u1037\u101e\u1031\u102c] dddd LT [\u1019\u103e\u102c]",sameElse:"L"},relativeTime:{future:"\u101c\u102c\u1019\u100a\u103a\u1037 %s \u1019\u103e\u102c",past:"\u101c\u103d\u1014\u103a\u1001\u1032\u1037\u101e\u1031\u102c %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103a.\u1021\u1014\u100a\u103a\u1038\u1004\u101a\u103a",ss:"%d \u1005\u1000\u1039\u1000\u1014\u1037\u103a",m:"\u1010\u1005\u103a\u1019\u102d\u1014\u1005\u103a",mm:"%d \u1019\u102d\u1014\u1005\u103a",h:"\u1010\u1005\u103a\u1014\u102c\u101b\u102e",hh:"%d \u1014\u102c\u101b\u102e",d:"\u1010\u1005\u103a\u101b\u1000\u103a",dd:"%d \u101b\u1000\u103a",M:"\u1010\u1005\u103a\u101c",MM:"%d \u101c",y:"\u1010\u1005\u103a\u1014\u103e\u1005\u103a",yy:"%d \u1014\u103e\u1005\u103a"},preparse:function(t){return t.replace(/[\u1041\u1042\u1043\u1044\u1045\u1046\u1047\u1048\u1049\u1040]/g,(function(t){return i[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},week:{dow:1,doy:4}})}(i(76474))},93417:function(t,e,i){!function(t){"use strict";t.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"s\xf8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xf8rdag".split("_"),weekdaysShort:"s\xf8._ma._ti._on._to._fr._l\xf8.".split("_"),weekdaysMin:"s\xf8_ma_ti_on_to_fr_l\xf8".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i g\xe5r kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xe5ned",MM:"%d m\xe5neder",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},69459:function(t,e,i){!function(t){"use strict";var e={1:"\u0967",2:"\u0968",3:"\u0969",4:"\u096a",5:"\u096b",6:"\u096c",7:"\u096d",8:"\u096e",9:"\u096f",0:"\u0966"},i={"\u0967":"1","\u0968":"2","\u0969":"3","\u096a":"4","\u096b":"5","\u096c":"6","\u096d":"7","\u096e":"8","\u096f":"9","\u0966":"0"};t.defineLocale("ne",{months:"\u091c\u0928\u0935\u0930\u0940_\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u0930\u0940_\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f\u0932_\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908_\u0905\u0917\u0937\u094d\u091f_\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930_\u0905\u0915\u094d\u091f\u094b\u092c\u0930_\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930_\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930".split("_"),monthsShort:"\u091c\u0928._\u092b\u0947\u092c\u094d\u0930\u0941._\u092e\u093e\u0930\u094d\u091a_\u0905\u092a\u094d\u0930\u093f._\u092e\u0908_\u091c\u0941\u0928_\u091c\u0941\u0932\u093e\u0908._\u0905\u0917._\u0938\u0947\u092a\u094d\u091f._\u0905\u0915\u094d\u091f\u094b._\u0928\u094b\u092d\u0947._\u0921\u093f\u0938\u0947.".split("_"),monthsParseExact:!0,weekdays:"\u0906\u0907\u0924\u092c\u093e\u0930_\u0938\u094b\u092e\u092c\u093e\u0930_\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930_\u092c\u0941\u0927\u092c\u093e\u0930_\u092c\u093f\u0939\u093f\u092c\u093e\u0930_\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930_\u0936\u0928\u093f\u092c\u093e\u0930".split("_"),weekdaysShort:"\u0906\u0907\u0924._\u0938\u094b\u092e._\u092e\u0919\u094d\u0917\u0932._\u092c\u0941\u0927._\u092c\u093f\u0939\u093f._\u0936\u0941\u0915\u094d\u0930._\u0936\u0928\u093f.".split("_"),weekdaysMin:"\u0906._\u0938\u094b._\u092e\u0902._\u092c\u0941._\u092c\u093f._\u0936\u0941._\u0936.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A\u0915\u094b h:mm \u092c\u091c\u0947",LTS:"A\u0915\u094b h:mm:ss \u092c\u091c\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947",LLLL:"dddd, D MMMM YYYY, A\u0915\u094b h:mm \u092c\u091c\u0947"},preparse:function(t){return t.replace(/[\u0967\u0968\u0969\u096a\u096b\u096c\u096d\u096e\u096f\u0966]/g,(function(t){return i[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/\u0930\u093e\u0924\u093f|\u092c\u093f\u0939\u093e\u0928|\u0926\u093f\u0909\u0901\u0938\u094b|\u0938\u093e\u0901\u091d/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0930\u093e\u0924\u093f"===e?t<4?t:t+12:"\u092c\u093f\u0939\u093e\u0928"===e?t:"\u0926\u093f\u0909\u0901\u0938\u094b"===e?t>=10?t:t+12:"\u0938\u093e\u0901\u091d"===e?t+12:void 0},meridiem:function(t,e,i){return t<3?"\u0930\u093e\u0924\u093f":t<12?"\u092c\u093f\u0939\u093e\u0928":t<16?"\u0926\u093f\u0909\u0901\u0938\u094b":t<20?"\u0938\u093e\u0901\u091d":"\u0930\u093e\u0924\u093f"},calendar:{sameDay:"[\u0906\u091c] LT",nextDay:"[\u092d\u094b\u0932\u093f] LT",nextWeek:"[\u0906\u0909\u0901\u0926\u094b] dddd[,] LT",lastDay:"[\u0939\u093f\u091c\u094b] LT",lastWeek:"[\u0917\u090f\u0915\u094b] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s\u092e\u093e",past:"%s \u0905\u0917\u093e\u0921\u093f",s:"\u0915\u0947\u0939\u0940 \u0915\u094d\u0937\u0923",ss:"%d \u0938\u0947\u0915\u0947\u0923\u094d\u0921",m:"\u090f\u0915 \u092e\u093f\u0928\u0947\u091f",mm:"%d \u092e\u093f\u0928\u0947\u091f",h:"\u090f\u0915 \u0918\u0923\u094d\u091f\u093e",hh:"%d \u0918\u0923\u094d\u091f\u093e",d:"\u090f\u0915 \u0926\u093f\u0928",dd:"%d \u0926\u093f\u0928",M:"\u090f\u0915 \u092e\u0939\u093f\u0928\u093e",MM:"%d \u092e\u0939\u093f\u0928\u093e",y:"\u090f\u0915 \u092c\u0930\u094d\u0937",yy:"%d \u092c\u0930\u094d\u0937"},week:{dow:0,doy:6}})}(i(76474))},22374:function(t,e,i){!function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),i="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),n=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;t.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,n){return t?/-MMM-/.test(n)?i[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(i(76474))},82054:function(t,e,i){!function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),i="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),n=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;t.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,n){return t?/-MMM-/.test(n)?i[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"\xe9\xe9n minuut",mm:"%d minuten",h:"\xe9\xe9n uur",hh:"%d uur",d:"\xe9\xe9n dag",dd:"%d dagen",M:"\xe9\xe9n maand",MM:"%d maanden",y:"\xe9\xe9n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(i(76474))},34295:function(t,e,i){!function(t){"use strict";t.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_m\xe5ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_m\xe5n_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_m\xe5_ty_on_to_fr_l\xf8".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I g\xe5r klokka] LT",lastWeek:"[F\xf8reg\xe5ande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein m\xe5nad",MM:"%d m\xe5nader",y:"eit \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},29074:function(t,e,i){!function(t){"use strict";var e={1:"\u0a67",2:"\u0a68",3:"\u0a69",4:"\u0a6a",5:"\u0a6b",6:"\u0a6c",7:"\u0a6d",8:"\u0a6e",9:"\u0a6f",0:"\u0a66"},i={"\u0a67":"1","\u0a68":"2","\u0a69":"3","\u0a6a":"4","\u0a6b":"5","\u0a6c":"6","\u0a6d":"7","\u0a6e":"8","\u0a6f":"9","\u0a66":"0"};t.defineLocale("pa-in",{months:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),monthsShort:"\u0a1c\u0a28\u0a35\u0a30\u0a40_\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40_\u0a2e\u0a3e\u0a30\u0a1a_\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32_\u0a2e\u0a08_\u0a1c\u0a42\u0a28_\u0a1c\u0a41\u0a32\u0a3e\u0a08_\u0a05\u0a17\u0a38\u0a24_\u0a38\u0a24\u0a70\u0a2c\u0a30_\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30_\u0a28\u0a35\u0a70\u0a2c\u0a30_\u0a26\u0a38\u0a70\u0a2c\u0a30".split("_"),weekdays:"\u0a10\u0a24\u0a35\u0a3e\u0a30_\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30_\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30_\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30_\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30_\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30".split("_"),weekdaysShort:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),weekdaysMin:"\u0a10\u0a24_\u0a38\u0a4b\u0a2e_\u0a2e\u0a70\u0a17\u0a32_\u0a2c\u0a41\u0a27_\u0a35\u0a40\u0a30_\u0a38\u0a3c\u0a41\u0a15\u0a30_\u0a38\u0a3c\u0a28\u0a40".split("_"),longDateFormat:{LT:"A h:mm \u0a35\u0a1c\u0a47",LTS:"A h:mm:ss \u0a35\u0a1c\u0a47",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47",LLLL:"dddd, D MMMM YYYY, A h:mm \u0a35\u0a1c\u0a47"},calendar:{sameDay:"[\u0a05\u0a1c] LT",nextDay:"[\u0a15\u0a32] LT",nextWeek:"[\u0a05\u0a17\u0a32\u0a3e] dddd, LT",lastDay:"[\u0a15\u0a32] LT",lastWeek:"[\u0a2a\u0a3f\u0a1b\u0a32\u0a47] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0a35\u0a3f\u0a71\u0a1a",past:"%s \u0a2a\u0a3f\u0a1b\u0a32\u0a47",s:"\u0a15\u0a41\u0a1d \u0a38\u0a15\u0a3f\u0a70\u0a1f",ss:"%d \u0a38\u0a15\u0a3f\u0a70\u0a1f",m:"\u0a07\u0a15 \u0a2e\u0a3f\u0a70\u0a1f",mm:"%d \u0a2e\u0a3f\u0a70\u0a1f",h:"\u0a07\u0a71\u0a15 \u0a18\u0a70\u0a1f\u0a3e",hh:"%d \u0a18\u0a70\u0a1f\u0a47",d:"\u0a07\u0a71\u0a15 \u0a26\u0a3f\u0a28",dd:"%d \u0a26\u0a3f\u0a28",M:"\u0a07\u0a71\u0a15 \u0a2e\u0a39\u0a40\u0a28\u0a3e",MM:"%d \u0a2e\u0a39\u0a40\u0a28\u0a47",y:"\u0a07\u0a71\u0a15 \u0a38\u0a3e\u0a32",yy:"%d \u0a38\u0a3e\u0a32"},preparse:function(t){return t.replace(/[\u0a67\u0a68\u0a69\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a66]/g,(function(t){return i[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/\u0a30\u0a3e\u0a24|\u0a38\u0a35\u0a47\u0a30|\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30|\u0a38\u0a3c\u0a3e\u0a2e/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0a30\u0a3e\u0a24"===e?t<4?t:t+12:"\u0a38\u0a35\u0a47\u0a30"===e?t:"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30"===e?t>=10?t:t+12:"\u0a38\u0a3c\u0a3e\u0a2e"===e?t+12:void 0},meridiem:function(t,e,i){return t<4?"\u0a30\u0a3e\u0a24":t<10?"\u0a38\u0a35\u0a47\u0a30":t<17?"\u0a26\u0a41\u0a2a\u0a39\u0a3f\u0a30":t<20?"\u0a38\u0a3c\u0a3e\u0a2e":"\u0a30\u0a3e\u0a24"},week:{dow:0,doy:6}})}(i(76474))},15963:function(t,e,i){!function(t){"use strict";var e="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017adziernik_listopad_grudzie\u0144".split("_"),i="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015bnia_pa\u017adziernika_listopada_grudnia".split("_");function n(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function r(t,e,i){var r=t+" ";switch(i){case"ss":return r+(n(t)?"sekundy":"sekund");case"m":return e?"minuta":"minut\u0119";case"mm":return r+(n(t)?"minuty":"minut");case"h":return e?"godzina":"godzin\u0119";case"hh":return r+(n(t)?"godziny":"godzin");case"MM":return r+(n(t)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return r+(n(t)?"lata":"lat")}}t.defineLocale("pl",{months:function(t,n){return t?""===n?"("+i[t.month()]+"|"+e[t.month()]+")":/D MMMM/.test(n)?i[t.month()]:e[t.month()]:e},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017a_lis_gru".split("_"),weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015ar_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dzi\u015b o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedziel\u0119 o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W \u015brod\u0119 o] LT";case 6:return"[W sobot\u0119 o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zesz\u0142\u0105 niedziel\u0119 o] LT";case 3:return"[W zesz\u0142\u0105 \u015brod\u0119 o] LT";case 6:return"[W zesz\u0142\u0105 sobot\u0119 o] LT";default:return"[W zesz\u0142y] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:r,m:r,mm:r,h:r,hh:r,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:r,y:"rok",yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},63344:function(t,e,i){!function(t){"use strict";t.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Mar\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xe0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xe0s] HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba"})}(i(76474))},37259:function(t,e,i){!function(t){"use strict";t.defineLocale("pt",{months:"Janeiro_Fevereiro_Mar\xe7o_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Ter\xe7a-feira_Quarta-feira_Quinta-feira_Sexta-feira_S\xe1bado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_S\xe1b".split("_"),weekdaysMin:"Do_2\xaa_3\xaa_4\xaa_5\xaa_6\xaa_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje \xe0s] LT",nextDay:"[Amanh\xe3 \xe0s] LT",nextWeek:"dddd [\xe0s] LT",lastDay:"[Ontem \xe0s] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[\xdaltimo] dddd [\xe0s] LT":"[\xdaltima] dddd [\xe0s] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"h\xe1 %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xeas",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}\xba/,ordinal:"%d\xba",week:{dow:1,doy:4}})}(i(76474))},11451:function(t,e,i){!function(t){"use strict";function e(t,e,i){var n=" ";return(t%100>=20||t>=100&&t%100==0)&&(n=" de "),t+n+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[i]}t.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminic\u0103_luni_mar\u021bi_miercuri_joi_vineri_s\xe2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xe2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xe2".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[m\xe2ine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s \xeen urm\u0103",s:"c\xe2teva secunde",ss:e,m:"un minut",mm:e,h:"o or\u0103",hh:e,d:"o zi",dd:e,M:"o lun\u0103",MM:e,y:"un an",yy:e},week:{dow:1,doy:7}})}(i(76474))},93612:function(t,e,i){!function(t){"use strict";function e(t,e){var i=t.split("_");return e%10==1&&e%100!=11?i[0]:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?i[1]:i[2]}function i(t,i,n){return"m"===n?i?"\u043c\u0438\u043d\u0443\u0442\u0430":"\u043c\u0438\u043d\u0443\u0442\u0443":t+" "+e({ss:i?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u044b_\u0441\u0435\u043a\u0443\u043d\u0434",mm:i?"\u043c\u0438\u043d\u0443\u0442\u0430_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442":"\u043c\u0438\u043d\u0443\u0442\u0443_\u043c\u0438\u043d\u0443\u0442\u044b_\u043c\u0438\u043d\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043e\u0432",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u044f_\u0434\u043d\u0435\u0439",MM:"\u043c\u0435\u0441\u044f\u0446_\u043c\u0435\u0441\u044f\u0446\u0430_\u043c\u0435\u0441\u044f\u0446\u0435\u0432",yy:"\u0433\u043e\u0434_\u0433\u043e\u0434\u0430_\u043b\u0435\u0442"}[n],+t)}var n=[/^\u044f\u043d\u0432/i,/^\u0444\u0435\u0432/i,/^\u043c\u0430\u0440/i,/^\u0430\u043f\u0440/i,/^\u043c\u0430[\u0439\u044f]/i,/^\u0438\u044e\u043d/i,/^\u0438\u044e\u043b/i,/^\u0430\u0432\u0433/i,/^\u0441\u0435\u043d/i,/^\u043e\u043a\u0442/i,/^\u043d\u043e\u044f/i,/^\u0434\u0435\u043a/i];t.defineLocale("ru",{months:{format:"\u044f\u043d\u0432\u0430\u0440\u044f_\u0444\u0435\u0432\u0440\u0430\u043b\u044f_\u043c\u0430\u0440\u0442\u0430_\u0430\u043f\u0440\u0435\u043b\u044f_\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f_\u043e\u043a\u0442\u044f\u0431\u0440\u044f_\u043d\u043e\u044f\u0431\u0440\u044f_\u0434\u0435\u043a\u0430\u0431\u0440\u044f".split("_"),standalone:"\u044f\u043d\u0432\u0430\u0440\u044c_\u0444\u0435\u0432\u0440\u0430\u043b\u044c_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b\u044c_\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c_\u043e\u043a\u0442\u044f\u0431\u0440\u044c_\u043d\u043e\u044f\u0431\u0440\u044c_\u0434\u0435\u043a\u0430\u0431\u0440\u044c".split("_")},monthsShort:{format:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u044f_\u0438\u044e\u043d\u044f_\u0438\u044e\u043b\u044f_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_"),standalone:"\u044f\u043d\u0432._\u0444\u0435\u0432\u0440._\u043c\u0430\u0440\u0442_\u0430\u043f\u0440._\u043c\u0430\u0439_\u0438\u044e\u043d\u044c_\u0438\u044e\u043b\u044c_\u0430\u0432\u0433._\u0441\u0435\u043d\u0442._\u043e\u043a\u0442._\u043d\u043e\u044f\u0431._\u0434\u0435\u043a.".split("_")},weekdays:{standalone:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043e\u0442\u0430".split("_"),format:"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435_\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a_\u0432\u0442\u043e\u0440\u043d\u0438\u043a_\u0441\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043f\u044f\u0442\u043d\u0438\u0446\u0443_\u0441\u0443\u0431\u0431\u043e\u0442\u0443".split("_"),isFormat:/\[ ?[\u0412\u0432] ?(?:\u043f\u0440\u043e\u0448\u043b\u0443\u044e|\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e|\u044d\u0442\u0443)? ?\] ?dddd/},weekdaysShort:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u0432\u0441_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsShortRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044c\u044f]|\u044f\u043d\u0432\.?|\u0444\u0435\u0432\u0440\u0430\u043b[\u044c\u044f]|\u0444\u0435\u0432\u0440?\.?|\u043c\u0430\u0440\u0442\u0430?|\u043c\u0430\u0440\.?|\u0430\u043f\u0440\u0435\u043b[\u044c\u044f]|\u0430\u043f\u0440\.?|\u043c\u0430[\u0439\u044f]|\u0438\u044e\u043d[\u044c\u044f]|\u0438\u044e\u043d\.?|\u0438\u044e\u043b[\u044c\u044f]|\u0438\u044e\u043b\.?|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0430\u0432\u0433\.?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044c\u044f]|\u0441\u0435\u043d\u0442?\.?|\u043e\u043a\u0442\u044f\u0431\u0440[\u044c\u044f]|\u043e\u043a\u0442\.?|\u043d\u043e\u044f\u0431\u0440[\u044c\u044f]|\u043d\u043e\u044f\u0431?\.?|\u0434\u0435\u043a\u0430\u0431\u0440[\u044c\u044f]|\u0434\u0435\u043a\.?)/i,monthsStrictRegex:/^(\u044f\u043d\u0432\u0430\u0440[\u044f\u044c]|\u0444\u0435\u0432\u0440\u0430\u043b[\u044f\u044c]|\u043c\u0430\u0440\u0442\u0430?|\u0430\u043f\u0440\u0435\u043b[\u044f\u044c]|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044f\u044c]|\u0438\u044e\u043b[\u044f\u044c]|\u0430\u0432\u0433\u0443\u0441\u0442\u0430?|\u0441\u0435\u043d\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043e\u043a\u0442\u044f\u0431\u0440[\u044f\u044c]|\u043d\u043e\u044f\u0431\u0440[\u044f\u044c]|\u0434\u0435\u043a\u0430\u0431\u0440[\u044f\u044c])/i,monthsShortStrictRegex:/^(\u044f\u043d\u0432\.|\u0444\u0435\u0432\u0440?\.|\u043c\u0430\u0440[\u0442.]|\u0430\u043f\u0440\.|\u043c\u0430[\u044f\u0439]|\u0438\u044e\u043d[\u044c\u044f.]|\u0438\u044e\u043b[\u044c\u044f.]|\u0430\u0432\u0433\.|\u0441\u0435\u043d\u0442?\.|\u043e\u043a\u0442\.|\u043d\u043e\u044f\u0431?\.|\u0434\u0435\u043a\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},calendar:{sameDay:"[\u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u0432] LT",nextDay:"[\u0417\u0430\u0432\u0442\u0440\u0430, \u0432] LT",lastDay:"[\u0412\u0447\u0435\u0440\u0430, \u0432] LT",nextWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e] dddd, [\u0432] LT"}},lastWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[\u0412\u043e] dddd, [\u0432] LT":"[\u0412] dddd, [\u0432] LT";switch(this.day()){case 0:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u0435] dddd, [\u0432] LT";case 1:case 2:case 4:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u044b\u0439] dddd, [\u0432] LT";case 3:case 5:case 6:return"[\u0412 \u043f\u0440\u043e\u0448\u043b\u0443\u044e] dddd, [\u0432] LT"}},sameElse:"L"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043d\u0430\u0437\u0430\u0434",s:"\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434",ss:i,m:i,mm:i,h:"\u0447\u0430\u0441",hh:i,d:"\u0434\u0435\u043d\u044c",dd:i,M:"\u043c\u0435\u0441\u044f\u0446",MM:i,y:"\u0433\u043e\u0434",yy:i},meridiemParse:/\u043d\u043e\u0447\u0438|\u0443\u0442\u0440\u0430|\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430/i,isPM:function(t){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u0435\u0440\u0430)$/.test(t)},meridiem:function(t,e,i){return t<4?"\u043d\u043e\u0447\u0438":t<12?"\u0443\u0442\u0440\u0430":t<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u0435\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e|\u044f)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":return t+"-\u0439";case"D":return t+"-\u0433\u043e";case"w":case"W":return t+"-\u044f";default:return t}},week:{dow:1,doy:4}})}(i(76474))},67958:function(t,e,i){!function(t){"use strict";var e=["\u062c\u0646\u0648\u0631\u064a","\u0641\u064a\u0628\u0631\u0648\u0631\u064a","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u064a\u0644","\u0645\u0626\u064a","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0621\u0650","\u0622\u06af\u0633\u067d","\u0633\u064a\u067e\u067d\u0645\u0628\u0631","\u0622\u06aa\u067d\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u068a\u0633\u0645\u0628\u0631"],i=["\u0622\u0686\u0631","\u0633\u0648\u0645\u0631","\u0627\u06b1\u0627\u0631\u0648","\u0627\u0631\u0628\u0639","\u062e\u0645\u064a\u0633","\u062c\u0645\u0639","\u0687\u0646\u0687\u0631"];t.defineLocale("sd",{months:e,monthsShort:e,weekdays:i,weekdaysShort:i,weekdaysMin:i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(t){return"\u0634\u0627\u0645"===t},meridiem:function(t,e,i){return t<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0627\u0684] LT",nextDay:"[\u0633\u0680\u0627\u06bb\u064a] LT",nextWeek:"dddd [\u0627\u06b3\u064a\u0646 \u0647\u0641\u062a\u064a \u062a\u064a] LT",lastDay:"[\u06aa\u0627\u0644\u0647\u0647] LT",lastWeek:"[\u06af\u0632\u0631\u064a\u0644 \u0647\u0641\u062a\u064a] dddd [\u062a\u064a] LT",sameElse:"L"},relativeTime:{future:"%s \u067e\u0648\u0621",past:"%s \u0627\u06b3",s:"\u0686\u0646\u062f \u0633\u064a\u06aa\u0646\u068a",ss:"%d \u0633\u064a\u06aa\u0646\u068a",m:"\u0647\u06aa \u0645\u0646\u067d",mm:"%d \u0645\u0646\u067d",h:"\u0647\u06aa \u06aa\u0644\u0627\u06aa",hh:"%d \u06aa\u0644\u0627\u06aa",d:"\u0647\u06aa \u068f\u064a\u0646\u0647\u0646",dd:"%d \u068f\u064a\u0646\u0647\u0646",M:"\u0647\u06aa \u0645\u0647\u064a\u0646\u0648",MM:"%d \u0645\u0647\u064a\u0646\u0627",y:"\u0647\u06aa \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(i(76474))},17652:function(t,e,i){!function(t){"use strict";t.defineLocale("se",{months:"o\u0111\u0111ajagem\xe1nnu_guovvam\xe1nnu_njuk\u010dam\xe1nnu_cuo\u014bom\xe1nnu_miessem\xe1nnu_geassem\xe1nnu_suoidnem\xe1nnu_borgem\xe1nnu_\u010dak\u010dam\xe1nnu_golggotm\xe1nnu_sk\xe1bmam\xe1nnu_juovlam\xe1nnu".split("_"),monthsShort:"o\u0111\u0111j_guov_njuk_cuo_mies_geas_suoi_borg_\u010dak\u010d_golg_sk\xe1b_juov".split("_"),weekdays:"sotnabeaivi_vuoss\xe1rga_ma\u014b\u014beb\xe1rga_gaskavahkku_duorastat_bearjadat_l\xe1vvardat".split("_"),weekdaysShort:"sotn_vuos_ma\u014b_gask_duor_bear_l\xe1v".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s gea\u017ees",past:"ma\u014bit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta m\xe1nnu",MM:"%d m\xe1nut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},10314:function(t,e,i){!function(t){"use strict";t.defineLocale("si",{months:"\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u0dd2_\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u0dd2_\u0db8\u0dcf\u0dbb\u0dca\u0dad\u0dd4_\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4_\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca_\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca_\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca".split("_"),monthsShort:"\u0da2\u0db1_\u0db4\u0dd9\u0db6_\u0db8\u0dcf\u0dbb\u0dca_\u0d85\u0db4\u0dca_\u0db8\u0dd0\u0dba\u0dd2_\u0da2\u0dd6\u0db1\u0dd2_\u0da2\u0dd6\u0dbd\u0dd2_\u0d85\u0d9c\u0ddd_\u0dc3\u0dd0\u0db4\u0dca_\u0d94\u0d9a\u0dca_\u0db1\u0ddc\u0dc0\u0dd0_\u0daf\u0dd9\u0dc3\u0dd0".split("_"),weekdays:"\u0d89\u0dbb\u0dd2\u0daf\u0dcf_\u0dc3\u0db3\u0dd4\u0daf\u0dcf_\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf_\u0db6\u0daf\u0dcf\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf_\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf_\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf".split("_"),weekdaysShort:"\u0d89\u0dbb\u0dd2_\u0dc3\u0db3\u0dd4_\u0d85\u0d9f_\u0db6\u0daf\u0dcf_\u0db6\u0dca\u200d\u0dbb\u0dc4_\u0dc3\u0dd2\u0d9a\u0dd4_\u0dc3\u0dd9\u0db1".split("_"),weekdaysMin:"\u0d89_\u0dc3_\u0d85_\u0db6_\u0db6\u0dca\u200d\u0dbb_\u0dc3\u0dd2_\u0dc3\u0dd9".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [\u0dc0\u0dd0\u0db1\u0dd2] dddd, a h:mm:ss"},calendar:{sameDay:"[\u0d85\u0daf] LT[\u0da7]",nextDay:"[\u0dc4\u0dd9\u0da7] LT[\u0da7]",nextWeek:"dddd LT[\u0da7]",lastDay:"[\u0d8a\u0dba\u0dda] LT[\u0da7]",lastWeek:"[\u0db4\u0dc3\u0dd4\u0d9c\u0dd2\u0dba] dddd LT[\u0da7]",sameElse:"L"},relativeTime:{future:"%s\u0d9a\u0dd2\u0db1\u0dca",past:"%s\u0d9a\u0da7 \u0db4\u0dd9\u0dbb",s:"\u0dad\u0dad\u0dca\u0db4\u0dbb \u0d9a\u0dd2\u0dc4\u0dd2\u0db4\u0dba",ss:"\u0dad\u0dad\u0dca\u0db4\u0dbb %d",m:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4\u0dc0",mm:"\u0db8\u0dd2\u0db1\u0dd2\u0dad\u0dca\u0dad\u0dd4 %d",h:"\u0db4\u0dd0\u0dba",hh:"\u0db4\u0dd0\u0dba %d",d:"\u0daf\u0dd2\u0db1\u0dba",dd:"\u0daf\u0dd2\u0db1 %d",M:"\u0db8\u0dcf\u0dc3\u0dba",MM:"\u0db8\u0dcf\u0dc3 %d",y:"\u0dc0\u0dc3\u0dbb",yy:"\u0dc0\u0dc3\u0dbb %d"},dayOfMonthOrdinalParse:/\d{1,2} \u0dc0\u0dd0\u0db1\u0dd2/,ordinal:function(t){return t+" \u0dc0\u0dd0\u0db1\u0dd2"},meridiemParse:/\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4|\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4|\u0db4\u0dd9.\u0dc0|\u0db4.\u0dc0./,isPM:function(t){return"\u0db4.\u0dc0."===t||"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4"===t},meridiem:function(t,e,i){return t>11?i?"\u0db4.\u0dc0.":"\u0db4\u0dc3\u0dca \u0dc0\u0dbb\u0dd4":i?"\u0db4\u0dd9.\u0dc0.":"\u0db4\u0dd9\u0dbb \u0dc0\u0dbb\u0dd4"}})}(i(76474))},55386:function(t,e,i){!function(t){"use strict";var e="janu\xe1r_febru\xe1r_marec_apr\xedl_m\xe1j_j\xfan_j\xfal_august_september_okt\xf3ber_november_december".split("_"),i="jan_feb_mar_apr_m\xe1j_j\xfan_j\xfal_aug_sep_okt_nov_dec".split("_");function n(t){return t>1&&t<5}function r(t,e,i,r){var s=t+" ";switch(i){case"s":return e||r?"p\xe1r sek\xfand":"p\xe1r sekundami";case"ss":return e||r?s+(n(t)?"sekundy":"sek\xfand"):s+"sekundami";case"m":return e?"min\xfata":r?"min\xfatu":"min\xfatou";case"mm":return e||r?s+(n(t)?"min\xfaty":"min\xfat"):s+"min\xfatami";case"h":return e?"hodina":r?"hodinu":"hodinou";case"hh":return e||r?s+(n(t)?"hodiny":"hod\xedn"):s+"hodinami";case"d":return e||r?"de\u0148":"d\u0148om";case"dd":return e||r?s+(n(t)?"dni":"dn\xed"):s+"d\u0148ami";case"M":return e||r?"mesiac":"mesiacom";case"MM":return e||r?s+(n(t)?"mesiace":"mesiacov"):s+"mesiacmi";case"y":return e||r?"rok":"rokom";case"yy":return e||r?s+(n(t)?"roky":"rokov"):s+"rokmi"}}t.defineLocale("sk",{months:e,monthsShort:i,weekdays:"nede\u013ea_pondelok_utorok_streda_\u0161tvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_\u0161t_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_\u0161t_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nede\u013eu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo \u0161tvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[v\u010dera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minul\xfa nede\u013eu o] LT";case 1:case 2:return"[minul\xfd] dddd [o] LT";case 3:return"[minul\xfa stredu o] LT";case 4:case 5:return"[minul\xfd] dddd [o] LT";case 6:return"[minul\xfa sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},48738:function(t,e,i){!function(t){"use strict";function e(t,e,i,n){var r=t+" ";switch(i){case"s":return e||n?"nekaj sekund":"nekaj sekundami";case"ss":return r+=1===t?e?"sekundo":"sekundi":2===t?e||n?"sekundi":"sekundah":t<5?e||n?"sekunde":"sekundah":"sekund";case"m":return e?"ena minuta":"eno minuto";case"mm":return r+=1===t?e?"minuta":"minuto":2===t?e||n?"minuti":"minutama":t<5?e||n?"minute":"minutami":e||n?"minut":"minutami";case"h":return e?"ena ura":"eno uro";case"hh":return r+=1===t?e?"ura":"uro":2===t?e||n?"uri":"urama":t<5?e||n?"ure":"urami":e||n?"ur":"urami";case"d":return e||n?"en dan":"enim dnem";case"dd":return r+=1===t?e||n?"dan":"dnem":2===t?e||n?"dni":"dnevoma":e||n?"dni":"dnevi";case"M":return e||n?"en mesec":"enim mesecem";case"MM":return r+=1===t?e||n?"mesec":"mesecem":2===t?e||n?"meseca":"mesecema":t<5?e||n?"mesece":"meseci":e||n?"mesecev":"meseci";case"y":return e||n?"eno leto":"enim letom";case"yy":return r+=1===t?e||n?"leto":"letom":2===t?e||n?"leti":"letoma":t<5?e||n?"leta":"leti":e||n?"let":"leti"}}t.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_\u010detrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._\u010det._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_\u010de_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(i(76474))},53343:function(t,e,i){!function(t){"use strict";t.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(t){return"M"===t.charAt(0)},meridiem:function(t,e,i){return t<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},85784:function(t,e,i){!function(t){"use strict";var e={words:{ss:["\u0441\u0435\u043a\u0443\u043d\u0434\u0430","\u0441\u0435\u043a\u0443\u043d\u0434\u0435","\u0441\u0435\u043a\u0443\u043d\u0434\u0438"],m:["\u0458\u0435\u0434\u0430\u043d \u043c\u0438\u043d\u0443\u0442","\u0458\u0435\u0434\u043d\u0435 \u043c\u0438\u043d\u0443\u0442\u0435"],mm:["\u043c\u0438\u043d\u0443\u0442","\u043c\u0438\u043d\u0443\u0442\u0435","\u043c\u0438\u043d\u0443\u0442\u0430"],h:["\u0458\u0435\u0434\u0430\u043d \u0441\u0430\u0442","\u0458\u0435\u0434\u043d\u043e\u0433 \u0441\u0430\u0442\u0430"],hh:["\u0441\u0430\u0442","\u0441\u0430\u0442\u0430","\u0441\u0430\u0442\u0438"],dd:["\u0434\u0430\u043d","\u0434\u0430\u043d\u0430","\u0434\u0430\u043d\u0430"],MM:["\u043c\u0435\u0441\u0435\u0446","\u043c\u0435\u0441\u0435\u0446\u0430","\u043c\u0435\u0441\u0435\u0446\u0438"],yy:["\u0433\u043e\u0434\u0438\u043d\u0430","\u0433\u043e\u0434\u0438\u043d\u0435","\u0433\u043e\u0434\u0438\u043d\u0430"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,i,n){var r=e.words[n];return 1===n.length?i?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.defineLocale("sr-cyrl",{months:"\u0458\u0430\u043d\u0443\u0430\u0440_\u0444\u0435\u0431\u0440\u0443\u0430\u0440_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0438\u043b_\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440_\u043e\u043a\u0442\u043e\u0431\u0430\u0440_\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440_\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440".split("_"),monthsShort:"\u0458\u0430\u043d._\u0444\u0435\u0431._\u043c\u0430\u0440._\u0430\u043f\u0440._\u043c\u0430\u0458_\u0458\u0443\u043d_\u0458\u0443\u043b_\u0430\u0432\u0433._\u0441\u0435\u043f._\u043e\u043a\u0442._\u043d\u043e\u0432._\u0434\u0435\u0446.".split("_"),monthsParseExact:!0,weekdays:"\u043d\u0435\u0434\u0435\u0459\u0430_\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a_\u0443\u0442\u043e\u0440\u0430\u043a_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a_\u043f\u0435\u0442\u0430\u043a_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),weekdaysShort:"\u043d\u0435\u0434._\u043f\u043e\u043d._\u0443\u0442\u043e._\u0441\u0440\u0435._\u0447\u0435\u0442._\u043f\u0435\u0442._\u0441\u0443\u0431.".split("_"),weekdaysMin:"\u043d\u0435_\u043f\u043e_\u0443\u0442_\u0441\u0440_\u0447\u0435_\u043f\u0435_\u0441\u0443".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[\u0434\u0430\u043d\u0430\u0441 \u0443] LT",nextDay:"[\u0441\u0443\u0442\u0440\u0430 \u0443] LT",nextWeek:function(){switch(this.day()){case 0:return"[\u0443] [\u043d\u0435\u0434\u0435\u0459\u0443] [\u0443] LT";case 3:return"[\u0443] [\u0441\u0440\u0435\u0434\u0443] [\u0443] LT";case 6:return"[\u0443] [\u0441\u0443\u0431\u043e\u0442\u0443] [\u0443] LT";case 1:case 2:case 4:case 5:return"[\u0443] dddd [\u0443] LT"}},lastDay:"[\u0458\u0443\u0447\u0435 \u0443] LT",lastWeek:function(){return["[\u043f\u0440\u043e\u0448\u043b\u0435] [\u043d\u0435\u0434\u0435\u0459\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0443\u0442\u043e\u0440\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0440\u0435\u0434\u0435] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u0447\u0435\u0442\u0432\u0440\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u043e\u0433] [\u043f\u0435\u0442\u043a\u0430] [\u0443] LT","[\u043f\u0440\u043e\u0448\u043b\u0435] [\u0441\u0443\u0431\u043e\u0442\u0435] [\u0443] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"\u043f\u0440\u0435 %s",s:"\u043d\u0435\u043a\u043e\u043b\u0438\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434\u0438",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"\u0434\u0430\u043d",dd:e.translate,M:"\u043c\u0435\u0441\u0435\u0446",MM:e.translate,y:"\u0433\u043e\u0434\u0438\u043d\u0443",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(i(76474))},19583:function(t,e,i){!function(t){"use strict";var e={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,i,n){var r=e.words[n];return 1===n.length?i?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_\u010detvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._\u010det._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010de_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[ju\u010de u] LT",lastWeek:function(){return["[pro\u0161le] [nedelje] [u] LT","[pro\u0161log] [ponedeljka] [u] LT","[pro\u0161log] [utorka] [u] LT","[pro\u0161le] [srede] [u] LT","[pro\u0161log] [\u010detvrtka] [u] LT","[pro\u0161log] [petka] [u] LT","[pro\u0161le] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(i(76474))},95148:function(t,e,i){!function(t){"use strict";t.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(t,e,i){return t<11?"ekuseni":t<15?"emini":t<19?"entsambama":"ebusuku"},meridiemHour:function(t,e){return 12===t&&(t=0),"ekuseni"===e?t:"emini"===e?t>=11?t:t+12:"entsambama"===e||"ebusuku"===e?0===t?0:t+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(i(76474))},1609:function(t,e,i){!function(t){"use strict";t.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"s\xf6ndag_m\xe5ndag_tisdag_onsdag_torsdag_fredag_l\xf6rdag".split("_"),weekdaysShort:"s\xf6n_m\xe5n_tis_ons_tor_fre_l\xf6r".split("_"),weekdaysMin:"s\xf6_m\xe5_ti_on_to_fr_l\xf6".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Ig\xe5r] LT",nextWeek:"[P\xe5] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"f\xf6r %s sedan",s:"n\xe5gra sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xe5nad",MM:"%d m\xe5nader",y:"ett \xe5r",yy:"%d \xe5r"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"e":1===e||2===e?"a":"e")},week:{dow:1,doy:4}})}(i(76474))},18785:function(t,e,i){!function(t){"use strict";t.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(i(76474))},90025:function(t,e,i){!function(t){"use strict";var e={1:"\u0be7",2:"\u0be8",3:"\u0be9",4:"\u0bea",5:"\u0beb",6:"\u0bec",7:"\u0bed",8:"\u0bee",9:"\u0bef",0:"\u0be6"},i={"\u0be7":"1","\u0be8":"2","\u0be9":"3","\u0bea":"4","\u0beb":"5","\u0bec":"6","\u0bed":"7","\u0bee":"8","\u0bef":"9","\u0be6":"0"};t.defineLocale("ta",{months:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),monthsShort:"\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf_\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf_\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd_\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd_\u0bae\u0bc7_\u0b9c\u0bc2\u0ba9\u0bcd_\u0b9c\u0bc2\u0bb2\u0bc8_\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd_\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bc6\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b85\u0b95\u0bcd\u0b9f\u0bc7\u0bbe\u0baa\u0bb0\u0bcd_\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd_\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd".split("_"),weekdays:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bcd\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0b9f\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8_\u0b9a\u0ba9\u0bbf\u0b95\u0bcd\u0b95\u0bbf\u0bb4\u0bae\u0bc8".split("_"),weekdaysShort:"\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1_\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd_\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd_\u0baa\u0bc1\u0ba4\u0ba9\u0bcd_\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd_\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf_\u0b9a\u0ba9\u0bbf".split("_"),weekdaysMin:"\u0b9e\u0bbe_\u0ba4\u0bbf_\u0b9a\u0bc6_\u0baa\u0bc1_\u0bb5\u0bbf_\u0bb5\u0bc6_\u0b9a".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[\u0b87\u0ba9\u0bcd\u0bb1\u0bc1] LT",nextDay:"[\u0ba8\u0bbe\u0bb3\u0bc8] LT",nextWeek:"dddd, LT",lastDay:"[\u0ba8\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1] LT",lastWeek:"[\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbe\u0bb0\u0bae\u0bcd] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0b87\u0bb2\u0bcd",past:"%s \u0bae\u0bc1\u0ba9\u0bcd",s:"\u0b92\u0bb0\u0bc1 \u0b9a\u0bbf\u0bb2 \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",ss:"%d \u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd",m:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0bae\u0bcd",mm:"%d \u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd",h:"\u0b92\u0bb0\u0bc1 \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",hh:"%d \u0bae\u0ba3\u0bbf \u0ba8\u0bc7\u0bb0\u0bae\u0bcd",d:"\u0b92\u0bb0\u0bc1 \u0ba8\u0bbe\u0bb3\u0bcd",dd:"%d \u0ba8\u0bbe\u0b9f\u0bcd\u0b95\u0bb3\u0bcd",M:"\u0b92\u0bb0\u0bc1 \u0bae\u0bbe\u0ba4\u0bae\u0bcd",MM:"%d \u0bae\u0bbe\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd",y:"\u0b92\u0bb0\u0bc1 \u0bb5\u0bb0\u0bc1\u0b9f\u0bae\u0bcd",yy:"%d \u0b86\u0ba3\u0bcd\u0b9f\u0bc1\u0b95\u0bb3\u0bcd"},dayOfMonthOrdinalParse:/\d{1,2}\u0bb5\u0ba4\u0bc1/,ordinal:function(t){return t+"\u0bb5\u0ba4\u0bc1"},preparse:function(t){return t.replace(/[\u0be7\u0be8\u0be9\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0be6]/g,(function(t){return i[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/\u0baf\u0bbe\u0bae\u0bae\u0bcd|\u0bb5\u0bc8\u0b95\u0bb1\u0bc8|\u0b95\u0bbe\u0bb2\u0bc8|\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd|\u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1|\u0bae\u0bbe\u0bb2\u0bc8/,meridiem:function(t,e,i){return t<2?" \u0baf\u0bbe\u0bae\u0bae\u0bcd":t<6?" \u0bb5\u0bc8\u0b95\u0bb1\u0bc8":t<10?" \u0b95\u0bbe\u0bb2\u0bc8":t<14?" \u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd":t<18?" \u0b8e\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1":t<22?" \u0bae\u0bbe\u0bb2\u0bc8":" \u0baf\u0bbe\u0bae\u0bae\u0bcd"},meridiemHour:function(t,e){return 12===t&&(t=0),"\u0baf\u0bbe\u0bae\u0bae\u0bcd"===e?t<2?t:t+12:"\u0bb5\u0bc8\u0b95\u0bb1\u0bc8"===e||"\u0b95\u0bbe\u0bb2\u0bc8"===e||"\u0ba8\u0ba3\u0bcd\u0baa\u0b95\u0bb2\u0bcd"===e&&t>=10?t:t+12},week:{dow:0,doy:6}})}(i(76474))},16228:function(t,e,i){!function(t){"use strict";t.defineLocale("te",{months:"\u0c1c\u0c28\u0c35\u0c30\u0c3f_\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f_\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d_\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41_\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d_\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d_\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d_\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d".split("_"),monthsShort:"\u0c1c\u0c28._\u0c2b\u0c3f\u0c2c\u0c4d\u0c30._\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f_\u0c0f\u0c2a\u0c4d\u0c30\u0c3f._\u0c2e\u0c47_\u0c1c\u0c42\u0c28\u0c4d_\u0c1c\u0c41\u0c32\u0c48_\u0c06\u0c17._\u0c38\u0c46\u0c2a\u0c4d._\u0c05\u0c15\u0c4d\u0c1f\u0c4b._\u0c28\u0c35._\u0c21\u0c3f\u0c38\u0c46.".split("_"),monthsParseExact:!0,weekdays:"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02_\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02_\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02_\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02_\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02_\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02".split("_"),weekdaysShort:"\u0c06\u0c26\u0c3f_\u0c38\u0c4b\u0c2e_\u0c2e\u0c02\u0c17\u0c33_\u0c2c\u0c41\u0c27_\u0c17\u0c41\u0c30\u0c41_\u0c36\u0c41\u0c15\u0c4d\u0c30_\u0c36\u0c28\u0c3f".split("_"),weekdaysMin:"\u0c06_\u0c38\u0c4b_\u0c2e\u0c02_\u0c2c\u0c41_\u0c17\u0c41_\u0c36\u0c41_\u0c36".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[\u0c28\u0c47\u0c21\u0c41] LT",nextDay:"[\u0c30\u0c47\u0c2a\u0c41] LT",nextWeek:"dddd, LT",lastDay:"[\u0c28\u0c3f\u0c28\u0c4d\u0c28] LT",lastWeek:"[\u0c17\u0c24] dddd, LT",sameElse:"L"},relativeTime:{future:"%s \u0c32\u0c4b",past:"%s \u0c15\u0c4d\u0c30\u0c3f\u0c24\u0c02",s:"\u0c15\u0c4a\u0c28\u0c4d\u0c28\u0c3f \u0c15\u0c4d\u0c37\u0c23\u0c3e\u0c32\u0c41",ss:"%d \u0c38\u0c46\u0c15\u0c28\u0c4d\u0c32\u0c41",m:"\u0c12\u0c15 \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c02",mm:"%d \u0c28\u0c3f\u0c2e\u0c3f\u0c37\u0c3e\u0c32\u0c41",h:"\u0c12\u0c15 \u0c17\u0c02\u0c1f",hh:"%d \u0c17\u0c02\u0c1f\u0c32\u0c41",d:"\u0c12\u0c15 \u0c30\u0c4b\u0c1c\u0c41",dd:"%d \u0c30\u0c4b\u0c1c\u0c41\u0c32\u0c41",M:"\u0c12\u0c15 \u0c28\u0c46\u0c32",MM:"%d \u0c28\u0c46\u0c32\u0c32\u0c41",y:"\u0c12\u0c15 \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c02",yy:"%d \u0c38\u0c02\u0c35\u0c24\u0c4d\u0c38\u0c30\u0c3e\u0c32\u0c41"},dayOfMonthOrdinalParse:/\d{1,2}\u0c35/,ordinal:"%d\u0c35",meridiemParse:/\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f|\u0c09\u0c26\u0c2f\u0c02|\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02|\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"===e?t<4?t:t+12:"\u0c09\u0c26\u0c2f\u0c02"===e?t:"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02"===e?t>=10?t:t+12:"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02"===e?t+12:void 0},meridiem:function(t,e,i){return t<4?"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f":t<10?"\u0c09\u0c26\u0c2f\u0c02":t<17?"\u0c2e\u0c27\u0c4d\u0c2f\u0c3e\u0c39\u0c4d\u0c28\u0c02":t<20?"\u0c38\u0c3e\u0c2f\u0c02\u0c24\u0c4d\u0c30\u0c02":"\u0c30\u0c3e\u0c24\u0c4d\u0c30\u0c3f"},week:{dow:0,doy:6}})}(i(76474))},26136:function(t,e,i){!function(t){"use strict";t.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Ju\xf1u_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(i(76474))},1614:function(t,e,i){!function(t){"use strict";var e={0:"-\u0443\u043c",1:"-\u0443\u043c",2:"-\u044e\u043c",3:"-\u044e\u043c",4:"-\u0443\u043c",5:"-\u0443\u043c",6:"-\u0443\u043c",7:"-\u0443\u043c",8:"-\u0443\u043c",9:"-\u0443\u043c",10:"-\u0443\u043c",12:"-\u0443\u043c",13:"-\u0443\u043c",20:"-\u0443\u043c",30:"-\u044e\u043c",40:"-\u0443\u043c",50:"-\u0443\u043c",60:"-\u0443\u043c",70:"-\u0443\u043c",80:"-\u0443\u043c",90:"-\u0443\u043c",100:"-\u0443\u043c"};t.defineLocale("tg",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u044f\u043a\u0448\u0430\u043d\u0431\u0435_\u0434\u0443\u0448\u0430\u043d\u0431\u0435_\u0441\u0435\u0448\u0430\u043d\u0431\u0435_\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0435_\u043f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435_\u04b7\u0443\u043c\u044a\u0430_\u0448\u0430\u043d\u0431\u0435".split("_"),weekdaysShort:"\u044f\u0448\u0431_\u0434\u0448\u0431_\u0441\u0448\u0431_\u0447\u0448\u0431_\u043f\u0448\u0431_\u04b7\u0443\u043c_\u0448\u043d\u0431".split("_"),weekdaysMin:"\u044f\u0448_\u0434\u0448_\u0441\u0448_\u0447\u0448_\u043f\u0448_\u04b7\u043c_\u0448\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u0418\u043c\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextDay:"[\u041f\u0430\u0433\u043e\u04b3 \u0441\u043e\u0430\u0442\u0438] LT",lastDay:"[\u0414\u0438\u0440\u04ef\u0437 \u0441\u043e\u0430\u0442\u0438] LT",nextWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u043e\u044f\u043d\u0434\u0430 \u0441\u043e\u0430\u0442\u0438] LT",lastWeek:"dddd[\u0438] [\u04b3\u0430\u0444\u0442\u0430\u0438 \u0433\u0443\u0437\u0430\u0448\u0442\u0430 \u0441\u043e\u0430\u0442\u0438] LT",sameElse:"L"},relativeTime:{future:"\u0431\u0430\u044a\u0434\u0438 %s",past:"%s \u043f\u0435\u0448",s:"\u044f\u043a\u0447\u0430\u043d\u0434 \u0441\u043e\u043d\u0438\u044f",m:"\u044f\u043a \u0434\u0430\u049b\u0438\u049b\u0430",mm:"%d \u0434\u0430\u049b\u0438\u049b\u0430",h:"\u044f\u043a \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u044f\u043a \u0440\u04ef\u0437",dd:"%d \u0440\u04ef\u0437",M:"\u044f\u043a \u043c\u043e\u04b3",MM:"%d \u043c\u043e\u04b3",y:"\u044f\u043a \u0441\u043e\u043b",yy:"%d \u0441\u043e\u043b"},meridiemParse:/\u0448\u0430\u0431|\u0441\u0443\u0431\u04b3|\u0440\u04ef\u0437|\u0431\u0435\u0433\u043e\u04b3/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u0448\u0430\u0431"===e?t<4?t:t+12:"\u0441\u0443\u0431\u04b3"===e?t:"\u0440\u04ef\u0437"===e?t>=11?t:t+12:"\u0431\u0435\u0433\u043e\u04b3"===e?t+12:void 0},meridiem:function(t,e,i){return t<4?"\u0448\u0430\u0431":t<11?"\u0441\u0443\u0431\u04b3":t<16?"\u0440\u04ef\u0437":t<19?"\u0431\u0435\u0433\u043e\u04b3":"\u0448\u0430\u0431"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0443\u043c|\u044e\u043c)/,ordinal:function(t){var i=t%10,n=t>=100?100:null;return t+(e[t]||e[i]||e[n])},week:{dow:1,doy:7}})}(i(76474))},1838:function(t,e,i){!function(t){"use strict";t.defineLocale("th",{months:"\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21_\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c_\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21_\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19_\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21_\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19_\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21_\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21_\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19_\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21_\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19_\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21".split("_"),monthsShort:"\u0e21.\u0e04._\u0e01.\u0e1e._\u0e21\u0e35.\u0e04._\u0e40\u0e21.\u0e22._\u0e1e.\u0e04._\u0e21\u0e34.\u0e22._\u0e01.\u0e04._\u0e2a.\u0e04._\u0e01.\u0e22._\u0e15.\u0e04._\u0e1e.\u0e22._\u0e18.\u0e04.".split("_"),monthsParseExact:!0,weekdays:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysShort:"\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c_\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c_\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23_\u0e1e\u0e38\u0e18_\u0e1e\u0e24\u0e2b\u0e31\u0e2a_\u0e28\u0e38\u0e01\u0e23\u0e4c_\u0e40\u0e2a\u0e32\u0e23\u0e4c".split("_"),weekdaysMin:"\u0e2d\u0e32._\u0e08._\u0e2d._\u0e1e._\u0e1e\u0e24._\u0e28._\u0e2a.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm",LLLL:"\u0e27\u0e31\u0e19dddd\u0e17\u0e35\u0e48 D MMMM YYYY \u0e40\u0e27\u0e25\u0e32 H:mm"},meridiemParse:/\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07|\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07/,isPM:function(t){return"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"===t},meridiem:function(t,e,i){return t<12?"\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07":"\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07"},calendar:{sameDay:"[\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextDay:"[\u0e1e\u0e23\u0e38\u0e48\u0e07\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",nextWeek:"dddd[\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e27\u0e25\u0e32] LT",lastDay:"[\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e27\u0e32\u0e19\u0e19\u0e35\u0e49 \u0e40\u0e27\u0e25\u0e32] LT",lastWeek:"[\u0e27\u0e31\u0e19]dddd[\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e40\u0e27\u0e25\u0e32] LT",sameElse:"L"},relativeTime:{future:"\u0e2d\u0e35\u0e01 %s",past:"%s\u0e17\u0e35\u0e48\u0e41\u0e25\u0e49\u0e27",s:"\u0e44\u0e21\u0e48\u0e01\u0e35\u0e48\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",ss:"%d \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35",m:"1 \u0e19\u0e32\u0e17\u0e35",mm:"%d \u0e19\u0e32\u0e17\u0e35",h:"1 \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",hh:"%d \u0e0a\u0e31\u0e48\u0e27\u0e42\u0e21\u0e07",d:"1 \u0e27\u0e31\u0e19",dd:"%d \u0e27\u0e31\u0e19",M:"1 \u0e40\u0e14\u0e37\u0e2d\u0e19",MM:"%d \u0e40\u0e14\u0e37\u0e2d\u0e19",y:"1 \u0e1b\u0e35",yy:"%d \u0e1b\u0e35"}})}(i(76474))},39964:function(t,e,i){!function(t){"use strict";t.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(t){return t},week:{dow:1,doy:4}})}(i(76474))},77561:function(t,e,i){!function(t){"use strict";var e="pagh_wa\u2019_cha\u2019_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function i(t){var e=t;return e=-1!==t.indexOf("jaj")?e.slice(0,-3)+"leS":-1!==t.indexOf("jar")?e.slice(0,-3)+"waQ":-1!==t.indexOf("DIS")?e.slice(0,-3)+"nem":e+" pIq"}function n(t){var e=t;return e=-1!==t.indexOf("jaj")?e.slice(0,-3)+"Hu\u2019":-1!==t.indexOf("jar")?e.slice(0,-3)+"wen":-1!==t.indexOf("DIS")?e.slice(0,-3)+"ben":e+" ret"}function r(t,e,i,n){var r=s(t);switch(i){case"ss":return r+" lup";case"mm":return r+" tup";case"hh":return r+" rep";case"dd":return r+" jaj";case"MM":return r+" jar";case"yy":return r+" DIS"}}function s(t){var i=Math.floor(t%1e3/100),n=Math.floor(t%100/10),r=t%10,s="";return i>0&&(s+=e[i]+"vatlh"),n>0&&(s+=(""!==s?" ":"")+e[n]+"maH"),r>0&&(s+=(""!==s?" ":"")+e[r]),""===s?"pagh":s}t.defineLocale("tlh",{months:"tera\u2019 jar wa\u2019_tera\u2019 jar cha\u2019_tera\u2019 jar wej_tera\u2019 jar loS_tera\u2019 jar vagh_tera\u2019 jar jav_tera\u2019 jar Soch_tera\u2019 jar chorgh_tera\u2019 jar Hut_tera\u2019 jar wa\u2019maH_tera\u2019 jar wa\u2019maH wa\u2019_tera\u2019 jar wa\u2019maH cha\u2019".split("_"),monthsShort:"jar wa\u2019_jar cha\u2019_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa\u2019maH_jar wa\u2019maH wa\u2019_jar wa\u2019maH cha\u2019".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa\u2019leS] LT",nextWeek:"LLL",lastDay:"[wa\u2019Hu\u2019] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:i,past:n,s:"puS lup",ss:r,m:"wa\u2019 tup",mm:r,h:"wa\u2019 rep",hh:r,d:"wa\u2019 jaj",dd:r,M:"wa\u2019 jar",MM:r,y:"wa\u2019 DIS",yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},28367:function(t,e,i){!function(t){"use strict";var e={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'\xfcnc\xfc",4:"'\xfcnc\xfc",100:"'\xfcnc\xfc",6:"'nc\u0131",9:"'uncu",10:"'uncu",30:"'uncu",60:"'\u0131nc\u0131",90:"'\u0131nc\u0131"};t.defineLocale("tr",{months:"Ocak_\u015eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011fustos_Eyl\xfcl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015eub_Mar_Nis_May_Haz_Tem_A\u011fu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Sal\u0131_\xc7ar\u015famba_Per\u015fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xc7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xc7a_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bug\xfcn saat] LT",nextDay:"[yar\u0131n saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[d\xfcn] LT",lastWeek:"[ge\xe7en] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s \xf6nce",s:"birka\xe7 saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xfcn",dd:"%d g\xfcn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(t,i){switch(i){case"d":case"D":case"Do":case"DD":return t;default:if(0===t)return t+"'\u0131nc\u0131";var n=t%10,r=t%100-n,s=t>=100?100:null;return t+(e[n]||e[r]||e[s])}},week:{dow:1,doy:7}})}(i(76474))},74001:function(t,e,i){!function(t){"use strict";function e(t,e,i,n){var r={s:["viensas secunds","'iensas secunds"],ss:[t+" secunds",t+" secunds"],m:["'n m\xedut","'iens m\xedut"],mm:[t+" m\xeduts",t+" m\xeduts"],h:["'n \xfeora","'iensa \xfeora"],hh:[t+" \xfeoras",t+" \xfeoras"],d:["'n ziua","'iensa ziua"],dd:[t+" ziuas",t+" ziuas"],M:["'n mes","'iens mes"],MM:[t+" mesen",t+" mesen"],y:["'n ar","'iens ar"],yy:[t+" ars",t+" ars"]};return n||e?r[i][0]:r[i][1]}t.defineLocale("tzl",{months:"Januar_Fevraglh_Mar\xe7_Avr\xefu_Mai_G\xfcn_Julia_Guscht_Setemvar_Listop\xe4ts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_G\xfcn_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"S\xfaladi_L\xfane\xe7i_Maitzi_M\xe1rcuri_Xh\xfaadi_Vi\xe9ner\xe7i_S\xe1turi".split("_"),weekdaysShort:"S\xfal_L\xfan_Mai_M\xe1r_Xh\xfa_Vi\xe9_S\xe1t".split("_"),weekdaysMin:"S\xfa_L\xfa_Ma_M\xe1_Xh_Vi_S\xe1".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(t){return"d'o"===t.toLowerCase()},meridiem:function(t,e,i){return t>11?i?"d'o":"D'O":i?"d'a":"D'A"},calendar:{sameDay:"[oxhi \xe0] LT",nextDay:"[dem\xe0 \xe0] LT",nextWeek:"dddd [\xe0] LT",lastDay:"[ieiri \xe0] LT",lastWeek:"[s\xfcr el] dddd [lasteu \xe0] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(i(76474))},19183:function(t,e,i){!function(t){"use strict";t.defineLocale("tzm-latn",{months:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_br\u02e4ayr\u02e4_mar\u02e4s\u02e4_ibrir_mayyw_ywnyw_ywlywz_\u0263w\u0161t_\u0161wtanbir_kt\u02e4wbr\u02e4_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asi\u1e0dyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minu\u1e0d",mm:"%d minu\u1e0d",h:"sa\u025ba",hh:"%d tassa\u025bin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(i(76474))},67519:function(t,e,i){!function(t){"use strict";t.defineLocale("tzm",{months:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),monthsShort:"\u2d49\u2d4f\u2d4f\u2d30\u2d62\u2d54_\u2d31\u2d55\u2d30\u2d62\u2d55_\u2d4e\u2d30\u2d55\u2d5a_\u2d49\u2d31\u2d54\u2d49\u2d54_\u2d4e\u2d30\u2d62\u2d62\u2d53_\u2d62\u2d53\u2d4f\u2d62\u2d53_\u2d62\u2d53\u2d4d\u2d62\u2d53\u2d63_\u2d56\u2d53\u2d5b\u2d5c_\u2d5b\u2d53\u2d5c\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d3d\u2d5f\u2d53\u2d31\u2d55_\u2d4f\u2d53\u2d61\u2d30\u2d4f\u2d31\u2d49\u2d54_\u2d37\u2d53\u2d4a\u2d4f\u2d31\u2d49\u2d54".split("_"),weekdays:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysShort:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),weekdaysMin:"\u2d30\u2d59\u2d30\u2d4e\u2d30\u2d59_\u2d30\u2d62\u2d4f\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4f\u2d30\u2d59_\u2d30\u2d3d\u2d54\u2d30\u2d59_\u2d30\u2d3d\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d4e\u2d61\u2d30\u2d59_\u2d30\u2d59\u2d49\u2d39\u2d62\u2d30\u2d59".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[\u2d30\u2d59\u2d37\u2d45 \u2d34] LT",nextDay:"[\u2d30\u2d59\u2d3d\u2d30 \u2d34] LT",nextWeek:"dddd [\u2d34] LT",lastDay:"[\u2d30\u2d5a\u2d30\u2d4f\u2d5c \u2d34] LT",lastWeek:"dddd [\u2d34] LT",sameElse:"L"},relativeTime:{future:"\u2d37\u2d30\u2d37\u2d45 \u2d59 \u2d62\u2d30\u2d4f %s",past:"\u2d62\u2d30\u2d4f %s",s:"\u2d49\u2d4e\u2d49\u2d3d",ss:"%d \u2d49\u2d4e\u2d49\u2d3d",m:"\u2d4e\u2d49\u2d4f\u2d53\u2d3a",mm:"%d \u2d4e\u2d49\u2d4f\u2d53\u2d3a",h:"\u2d59\u2d30\u2d44\u2d30",hh:"%d \u2d5c\u2d30\u2d59\u2d59\u2d30\u2d44\u2d49\u2d4f",d:"\u2d30\u2d59\u2d59",dd:"%d o\u2d59\u2d59\u2d30\u2d4f",M:"\u2d30\u2d62o\u2d53\u2d54",MM:"%d \u2d49\u2d62\u2d62\u2d49\u2d54\u2d4f",y:"\u2d30\u2d59\u2d33\u2d30\u2d59",yy:"%d \u2d49\u2d59\u2d33\u2d30\u2d59\u2d4f"},week:{dow:6,doy:12}})}(i(76474))},35046:function(t,e,i){!function(t){"use strict";t.defineLocale("ug-cn",{months:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),monthsShort:"\u064a\u0627\u0646\u06cb\u0627\u0631_\u0641\u06d0\u06cb\u0631\u0627\u0644_\u0645\u0627\u0631\u062a_\u0626\u0627\u067e\u0631\u06d0\u0644_\u0645\u0627\u064a_\u0626\u0649\u064a\u06c7\u0646_\u0626\u0649\u064a\u06c7\u0644_\u0626\u0627\u06cb\u063a\u06c7\u0633\u062a_\u0633\u06d0\u0646\u062a\u06d5\u0628\u0649\u0631_\u0626\u06c6\u0643\u062a\u06d5\u0628\u0649\u0631_\u0646\u0648\u064a\u0627\u0628\u0649\u0631_\u062f\u06d0\u0643\u0627\u0628\u0649\u0631".split("_"),weekdays:"\u064a\u06d5\u0643\u0634\u06d5\u0646\u0628\u06d5_\u062f\u06c8\u0634\u06d5\u0646\u0628\u06d5_\u0633\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u0686\u0627\u0631\u0634\u06d5\u0646\u0628\u06d5_\u067e\u06d5\u064a\u0634\u06d5\u0646\u0628\u06d5_\u062c\u06c8\u0645\u06d5_\u0634\u06d5\u0646\u0628\u06d5".split("_"),weekdaysShort:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),weekdaysMin:"\u064a\u06d5_\u062f\u06c8_\u0633\u06d5_\u0686\u0627_\u067e\u06d5_\u062c\u06c8_\u0634\u06d5".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649",LLL:"YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm",LLLL:"dddd\u060c YYYY-\u064a\u0649\u0644\u0649M-\u0626\u0627\u064a\u0646\u0649\u06adD-\u0643\u06c8\u0646\u0649\u060c HH:mm"},meridiemParse:/\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5|\u0633\u06d5\u06be\u06d5\u0631|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646|\u0686\u06c8\u0634|\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646|\u0643\u06d5\u0686/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5"===e||"\u0633\u06d5\u06be\u06d5\u0631"===e||"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646"===e?t:"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646"===e||"\u0643\u06d5\u0686"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,i){var n=100*t+e;return n<600?"\u064a\u06d0\u0631\u0649\u0645 \u0643\u06d0\u0686\u06d5":n<900?"\u0633\u06d5\u06be\u06d5\u0631":n<1130?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0628\u06c7\u0631\u06c7\u0646":n<1230?"\u0686\u06c8\u0634":n<1800?"\u0686\u06c8\u0634\u062a\u0649\u0646 \u0643\u06d0\u064a\u0649\u0646":"\u0643\u06d5\u0686"},calendar:{sameDay:"[\u0628\u06c8\u06af\u06c8\u0646 \u0633\u0627\u0626\u06d5\u062a] LT",nextDay:"[\u0626\u06d5\u062a\u06d5 \u0633\u0627\u0626\u06d5\u062a] LT",nextWeek:"[\u0643\u06d0\u0644\u06d5\u0631\u0643\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",lastDay:"[\u062a\u06c6\u0646\u06c8\u06af\u06c8\u0646] LT",lastWeek:"[\u0626\u0627\u0644\u062f\u0649\u0646\u0642\u0649] dddd [\u0633\u0627\u0626\u06d5\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0643\u06d0\u064a\u0649\u0646",past:"%s \u0628\u06c7\u0631\u06c7\u0646",s:"\u0646\u06d5\u0686\u0686\u06d5 \u0633\u06d0\u0643\u0648\u0646\u062a",ss:"%d \u0633\u06d0\u0643\u0648\u0646\u062a",m:"\u0628\u0649\u0631 \u0645\u0649\u0646\u06c7\u062a",mm:"%d \u0645\u0649\u0646\u06c7\u062a",h:"\u0628\u0649\u0631 \u0633\u0627\u0626\u06d5\u062a",hh:"%d \u0633\u0627\u0626\u06d5\u062a",d:"\u0628\u0649\u0631 \u0643\u06c8\u0646",dd:"%d \u0643\u06c8\u0646",M:"\u0628\u0649\u0631 \u0626\u0627\u064a",MM:"%d \u0626\u0627\u064a",y:"\u0628\u0649\u0631 \u064a\u0649\u0644",yy:"%d \u064a\u0649\u0644"},dayOfMonthOrdinalParse:/\d{1,2}(-\u0643\u06c8\u0646\u0649|-\u0626\u0627\u064a|-\u06be\u06d5\u067e\u062a\u06d5)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"-\u0643\u06c8\u0646\u0649";case"w":case"W":return t+"-\u06be\u06d5\u067e\u062a\u06d5";default:return t}},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/,/g,"\u060c")},week:{dow:1,doy:7}})}(i(76474))},19506:function(t,e,i){!function(t){"use strict";function e(t,e){var i=t.split("_");return e%10==1&&e%100!=11?i[0]:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?i[1]:i[2]}function i(t,i,n){return"m"===n?i?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443":"h"===n?i?"\u0433\u043e\u0434\u0438\u043d\u0430":"\u0433\u043e\u0434\u0438\u043d\u0443":t+" "+e({ss:i?"\u0441\u0435\u043a\u0443\u043d\u0434\u0430_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434":"\u0441\u0435\u043a\u0443\u043d\u0434\u0443_\u0441\u0435\u043a\u0443\u043d\u0434\u0438_\u0441\u0435\u043a\u0443\u043d\u0434",mm:i?"\u0445\u0432\u0438\u043b\u0438\u043d\u0430_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d":"\u0445\u0432\u0438\u043b\u0438\u043d\u0443_\u0445\u0432\u0438\u043b\u0438\u043d\u0438_\u0445\u0432\u0438\u043b\u0438\u043d",hh:i?"\u0433\u043e\u0434\u0438\u043d\u0430_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d":"\u0433\u043e\u0434\u0438\u043d\u0443_\u0433\u043e\u0434\u0438\u043d\u0438_\u0433\u043e\u0434\u0438\u043d",dd:"\u0434\u0435\u043d\u044c_\u0434\u043d\u0456_\u0434\u043d\u0456\u0432",MM:"\u043c\u0456\u0441\u044f\u0446\u044c_\u043c\u0456\u0441\u044f\u0446\u0456_\u043c\u0456\u0441\u044f\u0446\u0456\u0432",yy:"\u0440\u0456\u043a_\u0440\u043e\u043a\u0438_\u0440\u043e\u043a\u0456\u0432"}[n],+t)}function n(t,e){var i={nominative:"\u043d\u0435\u0434\u0456\u043b\u044f_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044f_\u0441\u0443\u0431\u043e\u0442\u0430".split("_"),accusative:"\u043d\u0435\u0434\u0456\u043b\u044e_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a_\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a_\u0441\u0435\u0440\u0435\u0434\u0443_\u0447\u0435\u0442\u0432\u0435\u0440_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u044e_\u0441\u0443\u0431\u043e\u0442\u0443".split("_"),genitive:"\u043d\u0435\u0434\u0456\u043b\u0456_\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043a\u0430_\u0432\u0456\u0432\u0442\u043e\u0440\u043a\u0430_\u0441\u0435\u0440\u0435\u0434\u0438_\u0447\u0435\u0442\u0432\u0435\u0440\u0433\u0430_\u043f\u2019\u044f\u0442\u043d\u0438\u0446\u0456_\u0441\u0443\u0431\u043e\u0442\u0438".split("_")};return!0===t?i.nominative.slice(1,7).concat(i.nominative.slice(0,1)):t?i[/(\[[\u0412\u0432\u0423\u0443]\]) ?dddd/.test(e)?"accusative":/\[?(?:\u043c\u0438\u043d\u0443\u043b\u043e\u0457|\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0457)? ?\] ?dddd/.test(e)?"genitive":"nominative"][t.day()]:i.nominative}function r(t){return function(){return t+"\u043e"+(11===this.hours()?"\u0431":"")+"] LT"}}t.defineLocale("uk",{months:{format:"\u0441\u0456\u0447\u043d\u044f_\u043b\u044e\u0442\u043e\u0433\u043e_\u0431\u0435\u0440\u0435\u0437\u043d\u044f_\u043a\u0432\u0456\u0442\u043d\u044f_\u0442\u0440\u0430\u0432\u043d\u044f_\u0447\u0435\u0440\u0432\u043d\u044f_\u043b\u0438\u043f\u043d\u044f_\u0441\u0435\u0440\u043f\u043d\u044f_\u0432\u0435\u0440\u0435\u0441\u043d\u044f_\u0436\u043e\u0432\u0442\u043d\u044f_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043d\u044f".split("_"),standalone:"\u0441\u0456\u0447\u0435\u043d\u044c_\u043b\u044e\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043d\u044c_\u043a\u0432\u0456\u0442\u0435\u043d\u044c_\u0442\u0440\u0430\u0432\u0435\u043d\u044c_\u0447\u0435\u0440\u0432\u0435\u043d\u044c_\u043b\u0438\u043f\u0435\u043d\u044c_\u0441\u0435\u0440\u043f\u0435\u043d\u044c_\u0432\u0435\u0440\u0435\u0441\u0435\u043d\u044c_\u0436\u043e\u0432\u0442\u0435\u043d\u044c_\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043d\u044c".split("_")},monthsShort:"\u0441\u0456\u0447_\u043b\u044e\u0442_\u0431\u0435\u0440_\u043a\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043b\u0438\u043f_\u0441\u0435\u0440\u043f_\u0432\u0435\u0440_\u0436\u043e\u0432\u0442_\u043b\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekdays:n,weekdaysShort:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),weekdaysMin:"\u043d\u0434_\u043f\u043d_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043f\u0442_\u0441\u0431".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"},calendar:{sameDay:r("[\u0421\u044c\u043e\u0433\u043e\u0434\u043d\u0456 "),nextDay:r("[\u0417\u0430\u0432\u0442\u0440\u0430 "),lastDay:r("[\u0412\u0447\u043e\u0440\u0430 "),nextWeek:r("[\u0423] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return r("[\u041c\u0438\u043d\u0443\u043b\u043e\u0457] dddd [").call(this);case 1:case 2:case 4:return r("[\u041c\u0438\u043d\u0443\u043b\u043e\u0433\u043e] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043e\u043c\u0443",s:"\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u0441\u0435\u043a\u0443\u043d\u0434",ss:i,m:i,mm:i,h:"\u0433\u043e\u0434\u0438\u043d\u0443",hh:i,d:"\u0434\u0435\u043d\u044c",dd:i,M:"\u043c\u0456\u0441\u044f\u0446\u044c",MM:i,y:"\u0440\u0456\u043a",yy:i},meridiemParse:/\u043d\u043e\u0447\u0456|\u0440\u0430\u043d\u043a\u0443|\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430/,isPM:function(t){return/^(\u0434\u043d\u044f|\u0432\u0435\u0447\u043e\u0440\u0430)$/.test(t)},meridiem:function(t,e,i){return t<4?"\u043d\u043e\u0447\u0456":t<12?"\u0440\u0430\u043d\u043a\u0443":t<17?"\u0434\u043d\u044f":"\u0432\u0435\u0447\u043e\u0440\u0430"},dayOfMonthOrdinalParse:/\d{1,2}-(\u0439|\u0433\u043e)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t+"-\u0439";case"D":return t+"-\u0433\u043e";default:return t}},week:{dow:1,doy:7}})}(i(76474))},77815:function(t,e,i){!function(t){"use strict";var e=["\u062c\u0646\u0648\u0631\u06cc","\u0641\u0631\u0648\u0631\u06cc","\u0645\u0627\u0631\u0686","\u0627\u067e\u0631\u06cc\u0644","\u0645\u0626\u06cc","\u062c\u0648\u0646","\u062c\u0648\u0644\u0627\u0626\u06cc","\u0627\u06af\u0633\u062a","\u0633\u062a\u0645\u0628\u0631","\u0627\u06a9\u062a\u0648\u0628\u0631","\u0646\u0648\u0645\u0628\u0631","\u062f\u0633\u0645\u0628\u0631"],i=["\u0627\u062a\u0648\u0627\u0631","\u067e\u06cc\u0631","\u0645\u0646\u06af\u0644","\u0628\u062f\u06be","\u062c\u0645\u0639\u0631\u0627\u062a","\u062c\u0645\u0639\u06c1","\u06c1\u0641\u062a\u06c1"];t.defineLocale("ur",{months:e,monthsShort:e,weekdays:i,weekdaysShort:i,weekdaysMin:i,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd\u060c D MMMM YYYY HH:mm"},meridiemParse:/\u0635\u0628\u062d|\u0634\u0627\u0645/,isPM:function(t){return"\u0634\u0627\u0645"===t},meridiem:function(t,e,i){return t<12?"\u0635\u0628\u062d":"\u0634\u0627\u0645"},calendar:{sameDay:"[\u0622\u062c \u0628\u0648\u0642\u062a] LT",nextDay:"[\u06a9\u0644 \u0628\u0648\u0642\u062a] LT",nextWeek:"dddd [\u0628\u0648\u0642\u062a] LT",lastDay:"[\u06af\u0630\u0634\u062a\u06c1 \u0631\u0648\u0632 \u0628\u0648\u0642\u062a] LT",lastWeek:"[\u06af\u0630\u0634\u062a\u06c1] dddd [\u0628\u0648\u0642\u062a] LT",sameElse:"L"},relativeTime:{future:"%s \u0628\u0639\u062f",past:"%s \u0642\u0628\u0644",s:"\u0686\u0646\u062f \u0633\u06cc\u06a9\u0646\u0688",ss:"%d \u0633\u06cc\u06a9\u0646\u0688",m:"\u0627\u06cc\u06a9 \u0645\u0646\u0679",mm:"%d \u0645\u0646\u0679",h:"\u0627\u06cc\u06a9 \u06af\u06be\u0646\u0679\u06c1",hh:"%d \u06af\u06be\u0646\u0679\u06d2",d:"\u0627\u06cc\u06a9 \u062f\u0646",dd:"%d \u062f\u0646",M:"\u0627\u06cc\u06a9 \u0645\u0627\u06c1",MM:"%d \u0645\u0627\u06c1",y:"\u0627\u06cc\u06a9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"},preparse:function(t){return t.replace(/\u060c/g,",")},postformat:function(t){return t.replace(/,/g,"\u060c")},week:{dow:1,doy:4}})}(i(76474))},47817:function(t,e,i){!function(t){"use strict";t.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(i(76474))},87947:function(t,e,i){!function(t){"use strict";t.defineLocale("uz",{months:"\u044f\u043d\u0432\u0430\u0440_\u0444\u0435\u0432\u0440\u0430\u043b_\u043c\u0430\u0440\u0442_\u0430\u043f\u0440\u0435\u043b_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043d\u0442\u044f\u0431\u0440_\u043e\u043a\u0442\u044f\u0431\u0440_\u043d\u043e\u044f\u0431\u0440_\u0434\u0435\u043a\u0430\u0431\u0440".split("_"),monthsShort:"\u044f\u043d\u0432_\u0444\u0435\u0432_\u043c\u0430\u0440_\u0430\u043f\u0440_\u043c\u0430\u0439_\u0438\u044e\u043d_\u0438\u044e\u043b_\u0430\u0432\u0433_\u0441\u0435\u043d_\u043e\u043a\u0442_\u043d\u043e\u044f_\u0434\u0435\u043a".split("_"),weekdays:"\u042f\u043a\u0448\u0430\u043d\u0431\u0430_\u0414\u0443\u0448\u0430\u043d\u0431\u0430_\u0421\u0435\u0448\u0430\u043d\u0431\u0430_\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430_\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430_\u0416\u0443\u043c\u0430_\u0428\u0430\u043d\u0431\u0430".split("_"),weekdaysShort:"\u042f\u043a\u0448_\u0414\u0443\u0448_\u0421\u0435\u0448_\u0427\u043e\u0440_\u041f\u0430\u0439_\u0416\u0443\u043c_\u0428\u0430\u043d".split("_"),weekdaysMin:"\u042f\u043a_\u0414\u0443_\u0421\u0435_\u0427\u043e_\u041f\u0430_\u0416\u0443_\u0428\u0430".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[\u0411\u0443\u0433\u0443\u043d \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",nextDay:"[\u042d\u0440\u0442\u0430\u0433\u0430] LT [\u0434\u0430]",nextWeek:"dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastDay:"[\u041a\u0435\u0447\u0430 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",lastWeek:"[\u0423\u0442\u0433\u0430\u043d] dddd [\u043a\u0443\u043d\u0438 \u0441\u043e\u0430\u0442] LT [\u0434\u0430]",sameElse:"L"},relativeTime:{future:"\u042f\u043a\u0438\u043d %s \u0438\u0447\u0438\u0434\u0430",past:"\u0411\u0438\u0440 \u043d\u0435\u0447\u0430 %s \u043e\u043b\u0434\u0438\u043d",s:"\u0444\u0443\u0440\u0441\u0430\u0442",ss:"%d \u0444\u0443\u0440\u0441\u0430\u0442",m:"\u0431\u0438\u0440 \u0434\u0430\u043a\u0438\u043a\u0430",mm:"%d \u0434\u0430\u043a\u0438\u043a\u0430",h:"\u0431\u0438\u0440 \u0441\u043e\u0430\u0442",hh:"%d \u0441\u043e\u0430\u0442",d:"\u0431\u0438\u0440 \u043a\u0443\u043d",dd:"%d \u043a\u0443\u043d",M:"\u0431\u0438\u0440 \u043e\u0439",MM:"%d \u043e\u0439",y:"\u0431\u0438\u0440 \u0439\u0438\u043b",yy:"%d \u0439\u0438\u043b"},week:{dow:1,doy:7}})}(i(76474))},648:function(t,e,i){!function(t){"use strict";t.defineLocale("vi",{months:"th\xe1ng 1_th\xe1ng 2_th\xe1ng 3_th\xe1ng 4_th\xe1ng 5_th\xe1ng 6_th\xe1ng 7_th\xe1ng 8_th\xe1ng 9_th\xe1ng 10_th\xe1ng 11_th\xe1ng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"ch\u1ee7 nh\u1eadt_th\u1ee9 hai_th\u1ee9 ba_th\u1ee9 t\u01b0_th\u1ee9 n\u0103m_th\u1ee9 s\xe1u_th\u1ee9 b\u1ea3y".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(t){return/^ch$/i.test(t)},meridiem:function(t,e,i){return t<12?i?"sa":"SA":i?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[H\xf4m nay l\xfac] LT",nextDay:"[Ng\xe0y mai l\xfac] LT",nextWeek:"dddd [tu\u1ea7n t\u1edbi l\xfac] LT",lastDay:"[H\xf4m qua l\xfac] LT",lastWeek:"dddd [tu\u1ea7n r\u1ed3i l\xfac] LT",sameElse:"L"},relativeTime:{future:"%s t\u1edbi",past:"%s tr\u01b0\u1edbc",s:"v\xe0i gi\xe2y",ss:"%d gi\xe2y",m:"m\u1ed9t ph\xfat",mm:"%d ph\xfat",h:"m\u1ed9t gi\u1edd",hh:"%d gi\u1edd",d:"m\u1ed9t ng\xe0y",dd:"%d ng\xe0y",M:"m\u1ed9t th\xe1ng",MM:"%d th\xe1ng",y:"m\u1ed9t n\u0103m",yy:"%d n\u0103m"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(t){return t},week:{dow:1,doy:4}})}(i(76474))},26671:function(t,e,i){!function(t){"use strict";t.defineLocale("x-pseudo",{months:"J~\xe1\xf1\xfa\xe1~r\xfd_F~\xe9br\xfa~\xe1r\xfd_~M\xe1rc~h_\xc1p~r\xedl_~M\xe1\xfd_~J\xfa\xf1\xe9~_J\xfal~\xfd_\xc1\xfa~g\xfast~_S\xe9p~t\xe9mb~\xe9r_\xd3~ct\xf3b~\xe9r_\xd1~\xf3v\xe9m~b\xe9r_~D\xe9c\xe9~mb\xe9r".split("_"),monthsShort:"J~\xe1\xf1_~F\xe9b_~M\xe1r_~\xc1pr_~M\xe1\xfd_~J\xfa\xf1_~J\xfal_~\xc1\xfag_~S\xe9p_~\xd3ct_~\xd1\xf3v_~D\xe9c".split("_"),monthsParseExact:!0,weekdays:"S~\xfa\xf1d\xe1~\xfd_M\xf3~\xf1d\xe1\xfd~_T\xfa\xe9~sd\xe1\xfd~_W\xe9d~\xf1\xe9sd~\xe1\xfd_T~h\xfars~d\xe1\xfd_~Fr\xedd~\xe1\xfd_S~\xe1t\xfar~d\xe1\xfd".split("_"),weekdaysShort:"S~\xfa\xf1_~M\xf3\xf1_~T\xfa\xe9_~W\xe9d_~Th\xfa_~Fr\xed_~S\xe1t".split("_"),weekdaysMin:"S~\xfa_M\xf3~_T\xfa_~W\xe9_T~h_Fr~_S\xe1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~\xf3d\xe1~\xfd \xe1t] LT",nextDay:"[T~\xf3m\xf3~rr\xf3~w \xe1t] LT",nextWeek:"dddd [\xe1t] LT",lastDay:"[\xdd~\xe9st~\xe9rd\xe1~\xfd \xe1t] LT",lastWeek:"[L~\xe1st] dddd [\xe1t] LT",sameElse:"L"},relativeTime:{future:"\xed~\xf1 %s",past:"%s \xe1~g\xf3",s:"\xe1 ~f\xe9w ~s\xe9c\xf3~\xf1ds",ss:"%d s~\xe9c\xf3\xf1~ds",m:"\xe1 ~m\xed\xf1~\xfat\xe9",mm:"%d m~\xed\xf1\xfa~t\xe9s",h:"\xe1~\xf1 h\xf3~\xfar",hh:"%d h~\xf3\xfars",d:"\xe1 ~d\xe1\xfd",dd:"%d d~\xe1\xfds",M:"\xe1 ~m\xf3\xf1~th",MM:"%d m~\xf3\xf1t~hs",y:"\xe1 ~\xfd\xe9\xe1r",yy:"%d \xfd~\xe9\xe1rs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(i(76474))},87858:function(t,e,i){!function(t){"use strict";t.defineLocale("yo",{months:"S\u1eb9\u0301r\u1eb9\u0301_E\u0300re\u0300le\u0300_\u1eb8r\u1eb9\u0300na\u0300_I\u0300gbe\u0301_E\u0300bibi_O\u0300ku\u0300du_Ag\u1eb9mo_O\u0300gu\u0301n_Owewe_\u1ecc\u0300wa\u0300ra\u0300_Be\u0301lu\u0301_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),monthsShort:"S\u1eb9\u0301r_E\u0300rl_\u1eb8rn_I\u0300gb_E\u0300bi_O\u0300ku\u0300_Ag\u1eb9_O\u0300gu\u0301_Owe_\u1ecc\u0300wa\u0300_Be\u0301l_\u1ecc\u0300p\u1eb9\u0300\u0300".split("_"),weekdays:"A\u0300i\u0300ku\u0301_Aje\u0301_I\u0300s\u1eb9\u0301gun_\u1eccj\u1ecd\u0301ru\u0301_\u1eccj\u1ecd\u0301b\u1ecd_\u1eb8ti\u0300_A\u0300ba\u0301m\u1eb9\u0301ta".split("_"),weekdaysShort:"A\u0300i\u0300k_Aje\u0301_I\u0300s\u1eb9\u0301_\u1eccjr_\u1eccjb_\u1eb8ti\u0300_A\u0300ba\u0301".split("_"),weekdaysMin:"A\u0300i\u0300_Aj_I\u0300s_\u1eccr_\u1eccb_\u1eb8t_A\u0300b".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[O\u0300ni\u0300 ni] LT",nextDay:"[\u1ecc\u0300la ni] LT",nextWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301n'b\u1ecd] [ni] LT",lastDay:"[A\u0300na ni] LT",lastWeek:"dddd [\u1eccs\u1eb9\u0300 to\u0301l\u1ecd\u0301] [ni] LT",sameElse:"L"},relativeTime:{future:"ni\u0301 %s",past:"%s k\u1ecdja\u0301",s:"i\u0300s\u1eb9ju\u0301 aaya\u0301 die",ss:"aaya\u0301 %d",m:"i\u0300s\u1eb9ju\u0301 kan",mm:"i\u0300s\u1eb9ju\u0301 %d",h:"wa\u0301kati kan",hh:"wa\u0301kati %d",d:"\u1ecdj\u1ecd\u0301 kan",dd:"\u1ecdj\u1ecd\u0301 %d",M:"osu\u0300 kan",MM:"osu\u0300 %d",y:"\u1ecddu\u0301n kan",yy:"\u1ecddu\u0301n %d"},dayOfMonthOrdinalParse:/\u1ecdj\u1ecd\u0301\s\d{1,2}/,ordinal:"\u1ecdj\u1ecd\u0301 %d",week:{dow:1,doy:4}})}(i(76474))},3895:function(t,e,i){!function(t){"use strict";t.defineLocale("zh-cn",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u5468\u65e5_\u5468\u4e00_\u5468\u4e8c_\u5468\u4e09_\u5468\u56db_\u5468\u4e94_\u5468\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5Ah\u70b9mm\u5206",LLLL:"YYYY\u5e74M\u6708D\u65e5ddddAh\u70b9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?t:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,i){var n=100*t+e;return n<600?"\u51cc\u6668":n<900?"\u65e9\u4e0a":n<1130?"\u4e0a\u5348":n<1230?"\u4e2d\u5348":n<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u5468)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\u65e5";case"M":return t+"\u6708";case"w":case"W":return t+"\u5468";default:return t}},relativeTime:{future:"%s\u5185",past:"%s\u524d",s:"\u51e0\u79d2",ss:"%d \u79d2",m:"1 \u5206\u949f",mm:"%d \u5206\u949f",h:"1 \u5c0f\u65f6",hh:"%d \u5c0f\u65f6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4e2a\u6708",MM:"%d \u4e2a\u6708",y:"1 \u5e74",yy:"%d \u5e74"},week:{dow:1,doy:4}})}(i(76474))},22357:function(t,e,i){!function(t){"use strict";t.defineLocale("zh-hk",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?t:"\u4e2d\u5348"===e?t>=11?t:t+12:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?t+12:void 0},meridiem:function(t,e,i){var n=100*t+e;return n<600?"\u51cc\u6668":n<900?"\u65e9\u4e0a":n<1130?"\u4e0a\u5348":n<1230?"\u4e2d\u5348":n<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929]LT",nextDay:"[\u660e\u5929]LT",nextWeek:"[\u4e0b]ddddLT",lastDay:"[\u6628\u5929]LT",lastWeek:"[\u4e0a]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\u65e5";case"M":return t+"\u6708";case"w":case"W":return t+"\u9031";default:return t}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(i(76474))},81833:function(t,e,i){!function(t){"use strict";t.defineLocale("zh-tw",{months:"\u4e00\u6708_\u4e8c\u6708_\u4e09\u6708_\u56db\u6708_\u4e94\u6708_\u516d\u6708_\u4e03\u6708_\u516b\u6708_\u4e5d\u6708_\u5341\u6708_\u5341\u4e00\u6708_\u5341\u4e8c\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),weekdays:"\u661f\u671f\u65e5_\u661f\u671f\u4e00_\u661f\u671f\u4e8c_\u661f\u671f\u4e09_\u661f\u671f\u56db_\u661f\u671f\u4e94_\u661f\u671f\u516d".split("_"),weekdaysShort:"\u9031\u65e5_\u9031\u4e00_\u9031\u4e8c_\u9031\u4e09_\u9031\u56db_\u9031\u4e94_\u9031\u516d".split("_"),weekdaysMin:"\u65e5_\u4e00_\u4e8c_\u4e09_\u56db_\u4e94_\u516d".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5e74M\u6708D\u65e5",LLL:"YYYY\u5e74M\u6708D\u65e5 HH:mm",LLLL:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5e74M\u6708D\u65e5",lll:"YYYY\u5e74M\u6708D\u65e5 HH:mm",llll:"YYYY\u5e74M\u6708D\u65e5dddd HH:mm"},meridiemParse:/\u51cc\u6668|\u65e9\u4e0a|\u4e0a\u5348|\u4e2d\u5348|\u4e0b\u5348|\u665a\u4e0a/,meridiemHour:function(t,e){return 12===t&&(t=0),"\u51cc\u6668"===e||"\u65e9\u4e0a"===e||"\u4e0a\u5348"===e?t:"\u4e2d\u5348"===e?t>=11?t:t+12:"\u4e0b\u5348"===e||"\u665a\u4e0a"===e?t+12:void 0},meridiem:function(t,e,i){var n=100*t+e;return n<600?"\u51cc\u6668":n<900?"\u65e9\u4e0a":n<1130?"\u4e0a\u5348":n<1230?"\u4e2d\u5348":n<1800?"\u4e0b\u5348":"\u665a\u4e0a"},calendar:{sameDay:"[\u4eca\u5929] LT",nextDay:"[\u660e\u5929] LT",nextWeek:"[\u4e0b]dddd LT",lastDay:"[\u6628\u5929] LT",lastWeek:"[\u4e0a]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(\u65e5|\u6708|\u9031)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"\u65e5";case"M":return t+"\u6708";case"w":case"W":return t+"\u9031";default:return t}},relativeTime:{future:"%s\u5167",past:"%s\u524d",s:"\u5e7e\u79d2",ss:"%d \u79d2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5c0f\u6642",hh:"%d \u5c0f\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500b\u6708",MM:"%d \u500b\u6708",y:"1 \u5e74",yy:"%d \u5e74"}})}(i(76474))},99459:(t,e,i)=>{var n={"./af":90137,"./af.js":90137,"./ar":75378,"./ar-dz":88464,"./ar-dz.js":88464,"./ar-kw":22477,"./ar-kw.js":22477,"./ar-ly":79500,"./ar-ly.js":79500,"./ar-ma":49548,"./ar-ma.js":49548,"./ar-sa":45463,"./ar-sa.js":45463,"./ar-tn":39066,"./ar-tn.js":39066,"./ar.js":75378,"./az":51636,"./az.js":51636,"./be":39609,"./be.js":39609,"./bg":63069,"./bg.js":63069,"./bm":35554,"./bm.js":35554,"./bn":75221,"./bn.js":75221,"./bo":29832,"./bo.js":29832,"./br":68685,"./br.js":68685,"./bs":1322,"./bs.js":1322,"./ca":21081,"./ca.js":21081,"./cs":78998,"./cs.js":78998,"./cv":60494,"./cv.js":60494,"./cy":66035,"./cy.js":66035,"./da":26036,"./da.js":26036,"./de":13039,"./de-at":5745,"./de-at.js":5745,"./de-ch":89061,"./de-ch.js":89061,"./de.js":13039,"./dv":57036,"./dv.js":57036,"./el":55553,"./el.js":55553,"./en-SG":85192,"./en-SG.js":85192,"./en-au":86695,"./en-au.js":86695,"./en-ca":24491,"./en-ca.js":24491,"./en-gb":31724,"./en-gb.js":31724,"./en-ie":28790,"./en-ie.js":28790,"./en-il":14166,"./en-il.js":14166,"./en-nz":96970,"./en-nz.js":96970,"./eo":18076,"./eo.js":18076,"./es":27777,"./es-do":24902,"./es-do.js":24902,"./es-us":92905,"./es-us.js":92905,"./es.js":27777,"./et":25309,"./et.js":25309,"./eu":36354,"./eu.js":36354,"./fa":28507,"./fa.js":28507,"./fi":75691,"./fi.js":75691,"./fo":48155,"./fo.js":48155,"./fr":83671,"./fr-ca":93773,"./fr-ca.js":93773,"./fr-ch":21333,"./fr-ch.js":21333,"./fr.js":83671,"./fy":44731,"./fy.js":44731,"./ga":47389,"./ga.js":47389,"./gd":10002,"./gd.js":10002,"./gl":91812,"./gl.js":91812,"./gom-latn":8958,"./gom-latn.js":8958,"./gu":80295,"./gu.js":80295,"./he":48767,"./he.js":48767,"./hi":95543,"./hi.js":95543,"./hr":24706,"./hr.js":24706,"./hu":72177,"./hu.js":72177,"./hy-am":54748,"./hy-am.js":54748,"./id":58713,"./id.js":58713,"./is":94336,"./is.js":94336,"./it":48328,"./it-ch":18562,"./it-ch.js":18562,"./it.js":48328,"./ja":31560,"./ja.js":31560,"./jv":34404,"./jv.js":34404,"./ka":75989,"./ka.js":75989,"./kk":20747,"./kk.js":20747,"./km":21868,"./km.js":21868,"./kn":94997,"./kn.js":94997,"./ko":89154,"./ko.js":89154,"./ku":48220,"./ku.js":48220,"./ky":73665,"./ky.js":73665,"./lb":5358,"./lb.js":5358,"./lo":5047,"./lo.js":5047,"./lt":63572,"./lt.js":63572,"./lv":36638,"./lv.js":36638,"./me":19978,"./me.js":19978,"./mi":17472,"./mi.js":17472,"./mk":60968,"./mk.js":60968,"./ml":53126,"./ml.js":53126,"./mn":74277,"./mn.js":74277,"./mr":26078,"./mr.js":26078,"./ms":52364,"./ms-my":30141,"./ms-my.js":30141,"./ms.js":52364,"./mt":92914,"./mt.js":92914,"./my":15334,"./my.js":15334,"./nb":93417,"./nb.js":93417,"./ne":69459,"./ne.js":69459,"./nl":82054,"./nl-be":22374,"./nl-be.js":22374,"./nl.js":82054,"./nn":34295,"./nn.js":34295,"./pa-in":29074,"./pa-in.js":29074,"./pl":15963,"./pl.js":15963,"./pt":37259,"./pt-br":63344,"./pt-br.js":63344,"./pt.js":37259,"./ro":11451,"./ro.js":11451,"./ru":93612,"./ru.js":93612,"./sd":67958,"./sd.js":67958,"./se":17652,"./se.js":17652,"./si":10314,"./si.js":10314,"./sk":55386,"./sk.js":55386,"./sl":48738,"./sl.js":48738,"./sq":53343,"./sq.js":53343,"./sr":19583,"./sr-cyrl":85784,"./sr-cyrl.js":85784,"./sr.js":19583,"./ss":95148,"./ss.js":95148,"./sv":1609,"./sv.js":1609,"./sw":18785,"./sw.js":18785,"./ta":90025,"./ta.js":90025,"./te":16228,"./te.js":16228,"./tet":26136,"./tet.js":26136,"./tg":1614,"./tg.js":1614,"./th":1838,"./th.js":1838,"./tl-ph":39964,"./tl-ph.js":39964,"./tlh":77561,"./tlh.js":77561,"./tr":28367,"./tr.js":28367,"./tzl":74001,"./tzl.js":74001,"./tzm":67519,"./tzm-latn":19183,"./tzm-latn.js":19183,"./tzm.js":67519,"./ug-cn":35046,"./ug-cn.js":35046,"./uk":19506,"./uk.js":19506,"./ur":77815,"./ur.js":77815,"./uz":87947,"./uz-latn":47817,"./uz-latn.js":47817,"./uz.js":87947,"./vi":648,"./vi.js":648,"./x-pseudo":26671,"./x-pseudo.js":26671,"./yo":87858,"./yo.js":87858,"./zh-cn":3895,"./zh-cn.js":3895,"./zh-hk":22357,"./zh-hk.js":22357,"./zh-tw":81833,"./zh-tw.js":81833};function r(t){var e=s(t);return i(e)}function s(t){if(!i.o(n,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return n[t]}r.keys=function(){return Object.keys(n)},r.resolve=s,t.exports=r,r.id=99459},76474:function(t,e,i){(t=i.nmd(t)).exports=function(){"use strict";var e,n;function r(){return e.apply(null,arguments)}function s(t){e=t}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function a(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function h(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function u(t){return void 0===t}function l(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function c(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function d(t,e){var i,n=[];for(i=0;i<t.length;++i)n.push(e(t[i],i));return n}function p(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function f(t,e){for(var i in e)p(e,i)&&(t[i]=e[i]);return p(e,"toString")&&(t.toString=e.toString),p(e,"valueOf")&&(t.valueOf=e.valueOf),t}function m(t,e,i,n){return Xi(t,e,i,n,!0).utc()}function v(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function g(t){return null==t._pf&&(t._pf=v()),t._pf}function y(t){if(null==t._isValid){var e=g(t),i=n.call(e.parsedDateParts,(function(t){return null!=t})),r=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&i);if(t._strict&&(r=r&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return r;t._isValid=r}return t._isValid}function _(t){var e=m(NaN);return null!=t?f(g(e),t):g(e).userInvalidated=!0,e}n=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,n=0;n<i;n++)if(n in e&&t.call(this,e[n],n,e))return!0;return!1};var x=r.momentProperties=[];function b(t,e){var i,n,r;if(u(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),u(e._i)||(t._i=e._i),u(e._f)||(t._f=e._f),u(e._l)||(t._l=e._l),u(e._strict)||(t._strict=e._strict),u(e._tzm)||(t._tzm=e._tzm),u(e._isUTC)||(t._isUTC=e._isUTC),u(e._offset)||(t._offset=e._offset),u(e._pf)||(t._pf=g(e)),u(e._locale)||(t._locale=e._locale),x.length>0)for(i=0;i<x.length;i++)u(r=e[n=x[i]])||(t[n]=r);return t}var w=!1;function T(t){b(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===w&&(w=!0,r.updateOffset(this),w=!1)}function M(t){return t instanceof T||null!=t&&null!=t._isAMomentObject}function S(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function E(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=S(e)),i}function L(t,e,i){var n,r=Math.min(t.length,e.length),s=Math.abs(t.length-e.length),o=0;for(n=0;n<r;n++)(i&&t[n]!==e[n]||!i&&E(t[n])!==E(e[n]))&&o++;return o+s}function A(t){!1===r.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function D(t,e){var i=!0;return f((function(){if(null!=r.deprecationHandler&&r.deprecationHandler(null,t),i){for(var n,s=[],o=0;o<arguments.length;o++){if(n="","object"==typeof arguments[o]){for(var a in n+="\n["+o+"] ",arguments[0])n+=a+": "+arguments[0][a]+", ";n=n.slice(0,-2)}else n=arguments[o];s.push(n)}A(t+"\nArguments: "+Array.prototype.slice.call(s).join("")+"\n"+(new Error).stack),i=!1}return e.apply(this,arguments)}),e)}var P,C={};function O(t,e){null!=r.deprecationHandler&&r.deprecationHandler(t,e),C[t]||(A(e),C[t]=!0)}function k(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function R(t){var e,i;for(i in t)k(e=t[i])?this[i]=e:this["_"+i]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function I(t,e){var i,n=f({},t);for(i in e)p(e,i)&&(a(t[i])&&a(e[i])?(n[i]={},f(n[i],t[i]),f(n[i],e[i])):null!=e[i]?n[i]=e[i]:delete n[i]);for(i in t)p(t,i)&&!p(e,i)&&a(t[i])&&(n[i]=f({},n[i]));return n}function Y(t){null!=t&&this.set(t)}r.suppressDeprecationWarnings=!1,r.deprecationHandler=null,P=Object.keys?Object.keys:function(t){var e,i=[];for(e in t)p(t,e)&&i.push(e);return i};var F={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function N(t,e,i){var n=this._calendar[t]||this._calendar.sameElse;return k(n)?n.call(e,i):n}var B={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function U(t){var e=this._longDateFormat[t],i=this._longDateFormat[t.toUpperCase()];return e||!i?e:(this._longDateFormat[t]=i.replace(/MMMM|MM|DD|dddd/g,(function(t){return t.slice(1)})),this._longDateFormat[t])}var j="Invalid date";function H(){return this._invalidDate}var z="%d",W=/\d{1,2}/;function G(t){return this._ordinal.replace("%d",t)}var V={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function X(t,e,i,n){var r=this._relativeTime[i];return k(r)?r(t,e,i,n):r.replace(/%d/i,t)}function q(t,e){var i=this._relativeTime[t>0?"future":"past"];return k(i)?i(e):i.replace(/%s/i,e)}var J={};function Z(t,e){var i=t.toLowerCase();J[i]=J[i+"s"]=J[e]=t}function K(t){return"string"==typeof t?J[t]||J[t.toLowerCase()]:void 0}function Q(t){var e,i,n={};for(i in t)p(t,i)&&(e=K(i))&&(n[e]=t[i]);return n}var $={};function tt(t,e){$[t]=e}function et(t){var e=[];for(var i in t)e.push({unit:i,priority:$[i]});return e.sort((function(t,e){return t.priority-e.priority})),e}function it(t,e,i){var n=""+Math.abs(t),r=e-n.length;return(t>=0?i?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+n}var nt=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,rt=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,st={},ot={};function at(t,e,i,n){var r=n;"string"==typeof n&&(r=function(){return this[n]()}),t&&(ot[t]=r),e&&(ot[e[0]]=function(){return it(r.apply(this,arguments),e[1],e[2])}),i&&(ot[i]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function ht(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function ut(t){var e,i,n=t.match(nt);for(e=0,i=n.length;e<i;e++)ot[n[e]]?n[e]=ot[n[e]]:n[e]=ht(n[e]);return function(e){var r,s="";for(r=0;r<i;r++)s+=k(n[r])?n[r].call(e,t):n[r];return s}}function lt(t,e){return t.isValid()?(e=ct(e,t.localeData()),st[e]=st[e]||ut(e),st[e](t)):t.localeData().invalidDate()}function ct(t,e){var i=5;function n(t){return e.longDateFormat(t)||t}for(rt.lastIndex=0;i>=0&&rt.test(t);)t=t.replace(rt,n),rt.lastIndex=0,i-=1;return t}var dt=/\d/,pt=/\d\d/,ft=/\d{3}/,mt=/\d{4}/,vt=/[+-]?\d{6}/,gt=/\d\d?/,yt=/\d\d\d\d?/,_t=/\d\d\d\d\d\d?/,xt=/\d{1,3}/,bt=/\d{1,4}/,wt=/[+-]?\d{1,6}/,Tt=/\d+/,Mt=/[+-]?\d+/,St=/Z|[+-]\d\d:?\d\d/gi,Et=/Z|[+-]\d\d(?::?\d\d)?/gi,Lt=/[+-]?\d+(\.\d{1,3})?/,At=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Dt={};function Pt(t,e,i){Dt[t]=k(e)?e:function(t,n){return t&&i?i:e}}function Ct(t,e){return p(Dt,t)?Dt[t](e._strict,e._locale):new RegExp(Ot(t))}function Ot(t){return kt(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,i,n,r){return e||i||n||r})))}function kt(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var Rt={};function It(t,e){var i,n=e;for("string"==typeof t&&(t=[t]),l(e)&&(n=function(t,i){i[e]=E(t)}),i=0;i<t.length;i++)Rt[t[i]]=n}function Yt(t,e){It(t,(function(t,i,n,r){n._w=n._w||{},e(t,n._w,n,r)}))}function Ft(t,e,i){null!=e&&p(Rt,t)&&Rt[t](e,i._a,i,t)}var Nt=0,Bt=1,Ut=2,jt=3,Ht=4,zt=5,Wt=6,Gt=7,Vt=8;function Xt(t){return qt(t)?366:365}function qt(t){return t%4==0&&t%100!=0||t%400==0}at("Y",0,0,(function(){var t=this.year();return t<=9999?""+t:"+"+t})),at(0,["YY",2],0,(function(){return this.year()%100})),at(0,["YYYY",4],0,"year"),at(0,["YYYYY",5],0,"year"),at(0,["YYYYYY",6,!0],0,"year"),Z("year","y"),tt("year",1),Pt("Y",Mt),Pt("YY",gt,pt),Pt("YYYY",bt,mt),Pt("YYYYY",wt,vt),Pt("YYYYYY",wt,vt),It(["YYYYY","YYYYYY"],Nt),It("YYYY",(function(t,e){e[Nt]=2===t.length?r.parseTwoDigitYear(t):E(t)})),It("YY",(function(t,e){e[Nt]=r.parseTwoDigitYear(t)})),It("Y",(function(t,e){e[Nt]=parseInt(t,10)})),r.parseTwoDigitYear=function(t){return E(t)+(E(t)>68?1900:2e3)};var Jt,Zt=Qt("FullYear",!0);function Kt(){return qt(this.year())}function Qt(t,e){return function(i){return null!=i?(te(this,t,i),r.updateOffset(this,e),this):$t(this,t)}}function $t(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function te(t,e,i){t.isValid()&&!isNaN(i)&&("FullYear"===e&&qt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](i,t.month(),re(i,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](i))}function ee(t){return k(this[t=K(t)])?this[t]():this}function ie(t,e){if("object"==typeof t)for(var i=et(t=Q(t)),n=0;n<i.length;n++)this[i[n].unit](t[i[n].unit]);else if(k(this[t=K(t)]))return this[t](e);return this}function ne(t,e){return(t%e+e)%e}function re(t,e){if(isNaN(t)||isNaN(e))return NaN;var i=ne(e,12);return t+=(e-i)/12,1===i?qt(t)?29:28:31-i%7%2}Jt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},at("M",["MM",2],"Mo",(function(){return this.month()+1})),at("MMM",0,0,(function(t){return this.localeData().monthsShort(this,t)})),at("MMMM",0,0,(function(t){return this.localeData().months(this,t)})),Z("month","M"),tt("month",8),Pt("M",gt),Pt("MM",gt,pt),Pt("MMM",(function(t,e){return e.monthsShortRegex(t)})),Pt("MMMM",(function(t,e){return e.monthsRegex(t)})),It(["M","MM"],(function(t,e){e[Bt]=E(t)-1})),It(["MMM","MMMM"],(function(t,e,i,n){var r=i._locale.monthsParse(t,n,i._strict);null!=r?e[Bt]=r:g(i).invalidMonth=t}));var se=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,oe="January_February_March_April_May_June_July_August_September_October_November_December".split("_");function ae(t,e){return t?o(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||se).test(e)?"format":"standalone"][t.month()]:o(this._months)?this._months:this._months.standalone}var he="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function ue(t,e){return t?o(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[se.test(e)?"format":"standalone"][t.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function le(t,e,i){var n,r,s,o=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],n=0;n<12;++n)s=m([2e3,n]),this._shortMonthsParse[n]=this.monthsShort(s,"").toLocaleLowerCase(),this._longMonthsParse[n]=this.months(s,"").toLocaleLowerCase();return i?"MMM"===e?-1!==(r=Jt.call(this._shortMonthsParse,o))?r:null:-1!==(r=Jt.call(this._longMonthsParse,o))?r:null:"MMM"===e?-1!==(r=Jt.call(this._shortMonthsParse,o))||-1!==(r=Jt.call(this._longMonthsParse,o))?r:null:-1!==(r=Jt.call(this._longMonthsParse,o))||-1!==(r=Jt.call(this._shortMonthsParse,o))?r:null}function ce(t,e,i){var n,r,s;if(this._monthsParseExact)return le.call(this,t,e,i);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),n=0;n<12;n++){if(r=m([2e3,n]),i&&!this._longMonthsParse[n]&&(this._longMonthsParse[n]=new RegExp("^"+this.months(r,"").replace(".","")+"$","i"),this._shortMonthsParse[n]=new RegExp("^"+this.monthsShort(r,"").replace(".","")+"$","i")),i||this._monthsParse[n]||(s="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[n]=new RegExp(s.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[n].test(t))return n;if(i&&"MMM"===e&&this._shortMonthsParse[n].test(t))return n;if(!i&&this._monthsParse[n].test(t))return n}}function de(t,e){var i;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=E(e);else if(!l(e=t.localeData().monthsParse(e)))return t;return i=Math.min(t.date(),re(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t}function pe(t){return null!=t?(de(this,t),r.updateOffset(this,!0),this):$t(this,"Month")}function fe(){return re(this.year(),this.month())}var me=At;function ve(t){return this._monthsParseExact?(p(this,"_monthsRegex")||_e.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(p(this,"_monthsShortRegex")||(this._monthsShortRegex=me),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)}var ge=At;function ye(t){return this._monthsParseExact?(p(this,"_monthsRegex")||_e.call(this),t?this._monthsStrictRegex:this._monthsRegex):(p(this,"_monthsRegex")||(this._monthsRegex=ge),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)}function _e(){function t(t,e){return e.length-t.length}var e,i,n=[],r=[],s=[];for(e=0;e<12;e++)i=m([2e3,e]),n.push(this.monthsShort(i,"")),r.push(this.months(i,"")),s.push(this.months(i,"")),s.push(this.monthsShort(i,""));for(n.sort(t),r.sort(t),s.sort(t),e=0;e<12;e++)n[e]=kt(n[e]),r[e]=kt(r[e]);for(e=0;e<24;e++)s[e]=kt(s[e]);this._monthsRegex=new RegExp("^("+s.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+n.join("|")+")","i")}function xe(t,e,i,n,r,s,o){var a;return t<100&&t>=0?(a=new Date(t+400,e,i,n,r,s,o),isFinite(a.getFullYear())&&a.setFullYear(t)):a=new Date(t,e,i,n,r,s,o),a}function be(t){var e;if(t<100&&t>=0){var i=Array.prototype.slice.call(arguments);i[0]=t+400,e=new Date(Date.UTC.apply(null,i)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function we(t,e,i){var n=7+e-i;return-(7+be(t,0,n).getUTCDay()-e)%7+n-1}function Te(t,e,i,n,r){var s,o,a=1+7*(e-1)+(7+i-n)%7+we(t,n,r);return a<=0?o=Xt(s=t-1)+a:a>Xt(t)?(s=t+1,o=a-Xt(t)):(s=t,o=a),{year:s,dayOfYear:o}}function Me(t,e,i){var n,r,s=we(t.year(),e,i),o=Math.floor((t.dayOfYear()-s-1)/7)+1;return o<1?n=o+Se(r=t.year()-1,e,i):o>Se(t.year(),e,i)?(n=o-Se(t.year(),e,i),r=t.year()+1):(r=t.year(),n=o),{week:n,year:r}}function Se(t,e,i){var n=we(t,e,i),r=we(t+1,e,i);return(Xt(t)-n+r)/7}function Ee(t){return Me(t,this._week.dow,this._week.doy).week}at("w",["ww",2],"wo","week"),at("W",["WW",2],"Wo","isoWeek"),Z("week","w"),Z("isoWeek","W"),tt("week",5),tt("isoWeek",5),Pt("w",gt),Pt("ww",gt,pt),Pt("W",gt),Pt("WW",gt,pt),Yt(["w","ww","W","WW"],(function(t,e,i,n){e[n.substr(0,1)]=E(t)}));var Le={dow:0,doy:6};function Ae(){return this._week.dow}function De(){return this._week.doy}function Pe(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Ce(t){var e=Me(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Oe(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}function ke(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function Re(t,e){return t.slice(e,7).concat(t.slice(0,e))}at("d",0,"do","day"),at("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),at("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),at("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),at("e",0,0,"weekday"),at("E",0,0,"isoWeekday"),Z("day","d"),Z("weekday","e"),Z("isoWeekday","E"),tt("day",11),tt("weekday",11),tt("isoWeekday",11),Pt("d",gt),Pt("e",gt),Pt("E",gt),Pt("dd",(function(t,e){return e.weekdaysMinRegex(t)})),Pt("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),Pt("dddd",(function(t,e){return e.weekdaysRegex(t)})),Yt(["dd","ddd","dddd"],(function(t,e,i,n){var r=i._locale.weekdaysParse(t,n,i._strict);null!=r?e.d=r:g(i).invalidWeekday=t})),Yt(["d","e","E"],(function(t,e,i,n){e[n]=E(t)}));var Ie="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");function Ye(t,e){var i=o(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Re(i,this._week.dow):t?i[t.day()]:i}var Fe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");function Ne(t){return!0===t?Re(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort}var Be="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function Ue(t){return!0===t?Re(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin}function je(t,e,i){var n,r,s,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],n=0;n<7;++n)s=m([2e3,1]).day(n),this._minWeekdaysParse[n]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[n]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[n]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?-1!==(r=Jt.call(this._weekdaysParse,o))?r:null:"ddd"===e?-1!==(r=Jt.call(this._shortWeekdaysParse,o))?r:null:-1!==(r=Jt.call(this._minWeekdaysParse,o))?r:null:"dddd"===e?-1!==(r=Jt.call(this._weekdaysParse,o))||-1!==(r=Jt.call(this._shortWeekdaysParse,o))||-1!==(r=Jt.call(this._minWeekdaysParse,o))?r:null:"ddd"===e?-1!==(r=Jt.call(this._shortWeekdaysParse,o))||-1!==(r=Jt.call(this._weekdaysParse,o))||-1!==(r=Jt.call(this._minWeekdaysParse,o))?r:null:-1!==(r=Jt.call(this._minWeekdaysParse,o))||-1!==(r=Jt.call(this._weekdaysParse,o))||-1!==(r=Jt.call(this._shortWeekdaysParse,o))?r:null}function He(t,e,i){var n,r,s;if(this._weekdaysParseExact)return je.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;n<7;n++){if(r=m([2e3,1]).day(n),i&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[n]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[n]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[n]||(s="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[n]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[n].test(t))return n;if(i&&"ddd"===e&&this._shortWeekdaysParse[n].test(t))return n;if(i&&"dd"===e&&this._minWeekdaysParse[n].test(t))return n;if(!i&&this._weekdaysParse[n].test(t))return n}}function ze(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Oe(t,this.localeData()),this.add(t-e,"d")):e}function We(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Ge(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=ke(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}var Ve=At;function Xe(t){return this._weekdaysParseExact?(p(this,"_weekdaysRegex")||Qe.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(p(this,"_weekdaysRegex")||(this._weekdaysRegex=Ve),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}var qe=At;function Je(t){return this._weekdaysParseExact?(p(this,"_weekdaysRegex")||Qe.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(p(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=qe),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}var Ze=At;function Ke(t){return this._weekdaysParseExact?(p(this,"_weekdaysRegex")||Qe.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(p(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ze),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qe(){function t(t,e){return e.length-t.length}var e,i,n,r,s,o=[],a=[],h=[],u=[];for(e=0;e<7;e++)i=m([2e3,1]).day(e),n=this.weekdaysMin(i,""),r=this.weekdaysShort(i,""),s=this.weekdays(i,""),o.push(n),a.push(r),h.push(s),u.push(n),u.push(r),u.push(s);for(o.sort(t),a.sort(t),h.sort(t),u.sort(t),e=0;e<7;e++)a[e]=kt(a[e]),h[e]=kt(h[e]),u[e]=kt(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function $e(){return this.hours()%12||12}function ti(){return this.hours()||24}function ei(t,e){at(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function ii(t,e){return e._meridiemParse}function ni(t){return"p"===(t+"").toLowerCase().charAt(0)}at("H",["HH",2],0,"hour"),at("h",["hh",2],0,$e),at("k",["kk",2],0,ti),at("hmm",0,0,(function(){return""+$e.apply(this)+it(this.minutes(),2)})),at("hmmss",0,0,(function(){return""+$e.apply(this)+it(this.minutes(),2)+it(this.seconds(),2)})),at("Hmm",0,0,(function(){return""+this.hours()+it(this.minutes(),2)})),at("Hmmss",0,0,(function(){return""+this.hours()+it(this.minutes(),2)+it(this.seconds(),2)})),ei("a",!0),ei("A",!1),Z("hour","h"),tt("hour",13),Pt("a",ii),Pt("A",ii),Pt("H",gt),Pt("h",gt),Pt("k",gt),Pt("HH",gt,pt),Pt("hh",gt,pt),Pt("kk",gt,pt),Pt("hmm",yt),Pt("hmmss",_t),Pt("Hmm",yt),Pt("Hmmss",_t),It(["H","HH"],jt),It(["k","kk"],(function(t,e,i){var n=E(t);e[jt]=24===n?0:n})),It(["a","A"],(function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t})),It(["h","hh"],(function(t,e,i){e[jt]=E(t),g(i).bigHour=!0})),It("hmm",(function(t,e,i){var n=t.length-2;e[jt]=E(t.substr(0,n)),e[Ht]=E(t.substr(n)),g(i).bigHour=!0})),It("hmmss",(function(t,e,i){var n=t.length-4,r=t.length-2;e[jt]=E(t.substr(0,n)),e[Ht]=E(t.substr(n,2)),e[zt]=E(t.substr(r)),g(i).bigHour=!0})),It("Hmm",(function(t,e,i){var n=t.length-2;e[jt]=E(t.substr(0,n)),e[Ht]=E(t.substr(n))})),It("Hmmss",(function(t,e,i){var n=t.length-4,r=t.length-2;e[jt]=E(t.substr(0,n)),e[Ht]=E(t.substr(n,2)),e[zt]=E(t.substr(r))}));var ri=/[ap]\.?m?\.?/i;function si(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}var oi,ai=Qt("Hours",!0),hi={calendar:F,longDateFormat:B,invalidDate:j,ordinal:z,dayOfMonthOrdinalParse:W,relativeTime:V,months:oe,monthsShort:he,week:Le,weekdays:Ie,weekdaysMin:Be,weekdaysShort:Fe,meridiemParse:ri},ui={},li={};function ci(t){return t?t.toLowerCase().replace("_","-"):t}function di(t){for(var e,i,n,r,s=0;s<t.length;){for(e=(r=ci(t[s]).split("-")).length,i=(i=ci(t[s+1]))?i.split("-"):null;e>0;){if(n=pi(r.slice(0,e).join("-")))return n;if(i&&i.length>=e&&L(r,i,!0)>=e-1)break;e--}s++}return oi}function pi(e){var n=null;if(!ui[e]&&t&&t.exports)try{n=oi._abbr,i(99459)("./"+e),fi(n)}catch(t){}return ui[e]}function fi(t,e){var i;return t&&((i=u(e)?gi(t):mi(t,e))?oi=i:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),oi._abbr}function mi(t,e){if(null!==e){var i,n=hi;if(e.abbr=t,null!=ui[t])O("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=ui[t]._config;else if(null!=e.parentLocale)if(null!=ui[e.parentLocale])n=ui[e.parentLocale]._config;else{if(null==(i=pi(e.parentLocale)))return li[e.parentLocale]||(li[e.parentLocale]=[]),li[e.parentLocale].push({name:t,config:e}),null;n=i._config}return ui[t]=new Y(I(n,e)),li[t]&&li[t].forEach((function(t){mi(t.name,t.config)})),fi(t),ui[t]}return delete ui[t],null}function vi(t,e){if(null!=e){var i,n,r=hi;null!=(n=pi(t))&&(r=n._config),(i=new Y(e=I(r,e))).parentLocale=ui[t],ui[t]=i,fi(t)}else null!=ui[t]&&(null!=ui[t].parentLocale?ui[t]=ui[t].parentLocale:null!=ui[t]&&delete ui[t]);return ui[t]}function gi(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return oi;if(!o(t)){if(e=pi(t))return e;t=[t]}return di(t)}function yi(){return P(ui)}function _i(t){var e,i=t._a;return i&&-2===g(t).overflow&&(e=i[Bt]<0||i[Bt]>11?Bt:i[Ut]<1||i[Ut]>re(i[Nt],i[Bt])?Ut:i[jt]<0||i[jt]>24||24===i[jt]&&(0!==i[Ht]||0!==i[zt]||0!==i[Wt])?jt:i[Ht]<0||i[Ht]>59?Ht:i[zt]<0||i[zt]>59?zt:i[Wt]<0||i[Wt]>999?Wt:-1,g(t)._overflowDayOfYear&&(e<Nt||e>Ut)&&(e=Ut),g(t)._overflowWeeks&&-1===e&&(e=Gt),g(t)._overflowWeekday&&-1===e&&(e=Vt),g(t).overflow=e),t}function xi(t,e,i){return null!=t?t:null!=e?e:i}function bi(t){var e=new Date(r.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function wi(t){var e,i,n,r,s,o=[];if(!t._d){for(n=bi(t),t._w&&null==t._a[Ut]&&null==t._a[Bt]&&Ti(t),null!=t._dayOfYear&&(s=xi(t._a[Nt],n[Nt]),(t._dayOfYear>Xt(s)||0===t._dayOfYear)&&(g(t)._overflowDayOfYear=!0),i=be(s,0,t._dayOfYear),t._a[Bt]=i.getUTCMonth(),t._a[Ut]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=n[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[jt]&&0===t._a[Ht]&&0===t._a[zt]&&0===t._a[Wt]&&(t._nextDay=!0,t._a[jt]=0),t._d=(t._useUTC?be:xe).apply(null,o),r=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[jt]=24),t._w&&void 0!==t._w.d&&t._w.d!==r&&(g(t).weekdayMismatch=!0)}}function Ti(t){var e,i,n,r,s,o,a,h;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)s=1,o=4,i=xi(e.GG,t._a[Nt],Me(qi(),1,4).year),n=xi(e.W,1),((r=xi(e.E,1))<1||r>7)&&(h=!0);else{s=t._locale._week.dow,o=t._locale._week.doy;var u=Me(qi(),s,o);i=xi(e.gg,t._a[Nt],u.year),n=xi(e.w,u.week),null!=e.d?((r=e.d)<0||r>6)&&(h=!0):null!=e.e?(r=e.e+s,(e.e<0||e.e>6)&&(h=!0)):r=s}n<1||n>Se(i,s,o)?g(t)._overflowWeeks=!0:null!=h?g(t)._overflowWeekday=!0:(a=Te(i,n,r,s,o),t._a[Nt]=a.year,t._dayOfYear=a.dayOfYear)}var Mi=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Si=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ei=/Z|[+-]\d\d(?::?\d\d)?/,Li=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Ai=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Di=/^\/?Date\((\-?\d+)/i;function Pi(t){var e,i,n,r,s,o,a=t._i,h=Mi.exec(a)||Si.exec(a);if(h){for(g(t).iso=!0,e=0,i=Li.length;e<i;e++)if(Li[e][1].exec(h[1])){r=Li[e][0],n=!1!==Li[e][2];break}if(null==r)return void(t._isValid=!1);if(h[3]){for(e=0,i=Ai.length;e<i;e++)if(Ai[e][1].exec(h[3])){s=(h[2]||" ")+Ai[e][0];break}if(null==s)return void(t._isValid=!1)}if(!n&&null!=s)return void(t._isValid=!1);if(h[4]){if(!Ei.exec(h[4]))return void(t._isValid=!1);o="Z"}t._f=r+(s||"")+(o||""),Ui(t)}else t._isValid=!1}var Ci=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function Oi(t,e,i,n,r,s){var o=[ki(t),he.indexOf(e),parseInt(i,10),parseInt(n,10),parseInt(r,10)];return s&&o.push(parseInt(s,10)),o}function ki(t){var e=parseInt(t,10);return e<=49?2e3+e:e<=999?1900+e:e}function Ri(t){return t.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function Ii(t,e,i){return!t||Fe.indexOf(t)===new Date(e[0],e[1],e[2]).getDay()||(g(i).weekdayMismatch=!0,i._isValid=!1,!1)}var Yi={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Fi(t,e,i){if(t)return Yi[t];if(e)return 0;var n=parseInt(i,10),r=n%100;return(n-r)/100*60+r}function Ni(t){var e=Ci.exec(Ri(t._i));if(e){var i=Oi(e[4],e[3],e[2],e[5],e[6],e[7]);if(!Ii(e[1],i,t))return;t._a=i,t._tzm=Fi(e[8],e[9],e[10]),t._d=be.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),g(t).rfc2822=!0}else t._isValid=!1}function Bi(t){var e=Di.exec(t._i);null===e?(Pi(t),!1===t._isValid&&(delete t._isValid,Ni(t),!1===t._isValid&&(delete t._isValid,r.createFromInputFallback(t)))):t._d=new Date(+e[1])}function Ui(t){if(t._f!==r.ISO_8601)if(t._f!==r.RFC_2822){t._a=[],g(t).empty=!0;var e,i,n,s,o,a=""+t._i,h=a.length,u=0;for(n=ct(t._f,t._locale).match(nt)||[],e=0;e<n.length;e++)s=n[e],(i=(a.match(Ct(s,t))||[])[0])&&((o=a.substr(0,a.indexOf(i))).length>0&&g(t).unusedInput.push(o),a=a.slice(a.indexOf(i)+i.length),u+=i.length),ot[s]?(i?g(t).empty=!1:g(t).unusedTokens.push(s),Ft(s,i,t)):t._strict&&!i&&g(t).unusedTokens.push(s);g(t).charsLeftOver=h-u,a.length>0&&g(t).unusedInput.push(a),t._a[jt]<=12&&!0===g(t).bigHour&&t._a[jt]>0&&(g(t).bigHour=void 0),g(t).parsedDateParts=t._a.slice(0),g(t).meridiem=t._meridiem,t._a[jt]=ji(t._locale,t._a[jt],t._meridiem),wi(t),_i(t)}else Ni(t);else Pi(t)}function ji(t,e,i){var n;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?((n=t.isPM(i))&&e<12&&(e+=12),n||12!==e||(e=0),e):e}function Hi(t){var e,i,n,r,s;if(0===t._f.length)return g(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;r<t._f.length;r++)s=0,e=b({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[r],Ui(e),y(e)&&(s+=g(e).charsLeftOver,s+=10*g(e).unusedTokens.length,g(e).score=s,(null==n||s<n)&&(n=s,i=e));f(t,i||e)}function zi(t){if(!t._d){var e=Q(t._i);t._a=d([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],(function(t){return t&&parseInt(t,10)})),wi(t)}}function Wi(t){var e=new T(_i(Gi(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Gi(t){var e=t._i,i=t._f;return t._locale=t._locale||gi(t._l),null===e||void 0===i&&""===e?_({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),M(e)?new T(_i(e)):(c(e)?t._d=e:o(i)?Hi(t):i?Ui(t):Vi(t),y(t)||(t._d=null),t))}function Vi(t){var e=t._i;u(e)?t._d=new Date(r.now()):c(e)?t._d=new Date(e.valueOf()):"string"==typeof e?Bi(t):o(e)?(t._a=d(e.slice(0),(function(t){return parseInt(t,10)})),wi(t)):a(e)?zi(t):l(e)?t._d=new Date(e):r.createFromInputFallback(t)}function Xi(t,e,i,n,r){var s={};return!0!==i&&!1!==i||(n=i,i=void 0),(a(t)&&h(t)||o(t)&&0===t.length)&&(t=void 0),s._isAMomentObject=!0,s._useUTC=s._isUTC=r,s._l=i,s._i=t,s._f=e,s._strict=n,Wi(s)}function qi(t,e,i,n){return Xi(t,e,i,n,!1)}r.createFromInputFallback=D("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))})),r.ISO_8601=function(){},r.RFC_2822=function(){};var Ji=D("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=qi.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:_()})),Zi=D("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=qi.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:_()}));function Ki(t,e){var i,n;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return qi();for(i=e[0],n=1;n<e.length;++n)e[n].isValid()&&!e[n][t](i)||(i=e[n]);return i}function Qi(){return Ki("isBefore",[].slice.call(arguments,0))}function $i(){return Ki("isAfter",[].slice.call(arguments,0))}var tn=function(){return Date.now?Date.now():+new Date},en=["year","quarter","month","week","day","hour","minute","second","millisecond"];function nn(t){for(var e in t)if(-1===Jt.call(en,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var i=!1,n=0;n<en.length;++n)if(t[en[n]]){if(i)return!1;parseFloat(t[en[n]])!==E(t[en[n]])&&(i=!0)}return!0}function rn(){return this._isValid}function sn(){return Ln(NaN)}function on(t){var e=Q(t),i=e.year||0,n=e.quarter||0,r=e.month||0,s=e.week||e.isoWeek||0,o=e.day||0,a=e.hour||0,h=e.minute||0,u=e.second||0,l=e.millisecond||0;this._isValid=nn(e),this._milliseconds=+l+1e3*u+6e4*h+1e3*a*60*60,this._days=+o+7*s,this._months=+r+3*n+12*i,this._data={},this._locale=gi(),this._bubble()}function an(t){return t instanceof on}function hn(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function un(t,e){at(t,0,0,(function(){var t=this.utcOffset(),i="+";return t<0&&(t=-t,i="-"),i+it(~~(t/60),2)+e+it(~~t%60,2)}))}un("Z",":"),un("ZZ",""),Pt("Z",Et),Pt("ZZ",Et),It(["Z","ZZ"],(function(t,e,i){i._useUTC=!0,i._tzm=cn(Et,t)}));var ln=/([\+\-]|\d\d)/gi;function cn(t,e){var i=(e||"").match(t);if(null===i)return null;var n=((i[i.length-1]||[])+"").match(ln)||["-",0,0],r=60*n[1]+E(n[2]);return 0===r?0:"+"===n[0]?r:-r}function dn(t,e){var i,n;return e._isUTC?(i=e.clone(),n=(M(t)||c(t)?t.valueOf():qi(t).valueOf())-i.valueOf(),i._d.setTime(i._d.valueOf()+n),r.updateOffset(i,!1),i):qi(t).local()}function pn(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function fn(t,e,i){var n,s=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=cn(Et,t)))return this}else Math.abs(t)<16&&!i&&(t*=60);return!this._isUTC&&e&&(n=pn(this)),this._offset=t,this._isUTC=!0,null!=n&&this.add(n,"m"),s!==t&&(!e||this._changeInProgress?On(this,Ln(t-s,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,r.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?s:pn(this)}function mn(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function vn(t){return this.utcOffset(0,t)}function gn(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(pn(this),"m")),this}function yn(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=cn(St,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this}function _n(t){return!!this.isValid()&&(t=t?qi(t).utcOffset():0,(this.utcOffset()-t)%60==0)}function xn(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function bn(){if(!u(this._isDSTShifted))return this._isDSTShifted;var t={};if(b(t,this),(t=Gi(t))._a){var e=t._isUTC?m(t._a):qi(t._a);this._isDSTShifted=this.isValid()&&L(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function wn(){return!!this.isValid()&&!this._isUTC}function Tn(){return!!this.isValid()&&this._isUTC}function Mn(){return!!this.isValid()&&this._isUTC&&0===this._offset}r.updateOffset=function(){};var Sn=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,En=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Ln(t,e){var i,n,r,s=t,o=null;return an(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:l(t)?(s={},e?s[e]=t:s.milliseconds=t):(o=Sn.exec(t))?(i="-"===o[1]?-1:1,s={y:0,d:E(o[Ut])*i,h:E(o[jt])*i,m:E(o[Ht])*i,s:E(o[zt])*i,ms:E(hn(1e3*o[Wt]))*i}):(o=En.exec(t))?(i="-"===o[1]?-1:1,s={y:An(o[2],i),M:An(o[3],i),w:An(o[4],i),d:An(o[5],i),h:An(o[6],i),m:An(o[7],i),s:An(o[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(r=Pn(qi(s.from),qi(s.to)),(s={}).ms=r.milliseconds,s.M=r.months),n=new on(s),an(t)&&p(t,"_locale")&&(n._locale=t._locale),n}function An(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function Dn(t,e){var i={};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function Pn(t,e){var i;return t.isValid()&&e.isValid()?(e=dn(e,t),t.isBefore(e)?i=Dn(t,e):((i=Dn(e,t)).milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function Cn(t,e){return function(i,n){var r;return null===n||isNaN(+n)||(O(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),r=i,i=n,n=r),On(this,Ln(i="string"==typeof i?+i:i,n),t),this}}function On(t,e,i,n){var s=e._milliseconds,o=hn(e._days),a=hn(e._months);t.isValid()&&(n=null==n||n,a&&de(t,$t(t,"Month")+a*i),o&&te(t,"Date",$t(t,"Date")+o*i),s&&t._d.setTime(t._d.valueOf()+s*i),n&&r.updateOffset(t,o||a))}Ln.fn=on.prototype,Ln.invalid=sn;var kn=Cn(1,"add"),Rn=Cn(-1,"subtract");function In(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function Yn(t,e){var i=t||qi(),n=dn(i,this).startOf("day"),s=r.calendarFormat(this,n)||"sameElse",o=e&&(k(e[s])?e[s].call(this,i):e[s]);return this.format(o||this.localeData().calendar(s,this,qi(i)))}function Fn(){return new T(this)}function Nn(t,e){var i=M(t)?t:qi(t);return!(!this.isValid()||!i.isValid())&&("millisecond"===(e=K(e)||"millisecond")?this.valueOf()>i.valueOf():i.valueOf()<this.clone().startOf(e).valueOf())}function Bn(t,e){var i=M(t)?t:qi(t);return!(!this.isValid()||!i.isValid())&&("millisecond"===(e=K(e)||"millisecond")?this.valueOf()<i.valueOf():this.clone().endOf(e).valueOf()<i.valueOf())}function Un(t,e,i,n){var r=M(t)?t:qi(t),s=M(e)?e:qi(e);return!!(this.isValid()&&r.isValid()&&s.isValid())&&("("===(n=n||"()")[0]?this.isAfter(r,i):!this.isBefore(r,i))&&(")"===n[1]?this.isBefore(s,i):!this.isAfter(s,i))}function jn(t,e){var i,n=M(t)?t:qi(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=K(e)||"millisecond")?this.valueOf()===n.valueOf():(i=n.valueOf(),this.clone().startOf(e).valueOf()<=i&&i<=this.clone().endOf(e).valueOf()))}function Hn(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function zn(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function Wn(t,e,i){var n,r,s;if(!this.isValid())return NaN;if(!(n=dn(t,this)).isValid())return NaN;switch(r=6e4*(n.utcOffset()-this.utcOffset()),e=K(e)){case"year":s=Gn(this,n)/12;break;case"month":s=Gn(this,n);break;case"quarter":s=Gn(this,n)/3;break;case"second":s=(this-n)/1e3;break;case"minute":s=(this-n)/6e4;break;case"hour":s=(this-n)/36e5;break;case"day":s=(this-n-r)/864e5;break;case"week":s=(this-n-r)/6048e5;break;default:s=this-n}return i?s:S(s)}function Gn(t,e){var i=12*(e.year()-t.year())+(e.month()-t.month()),n=t.clone().add(i,"months");return-(i+(e-n<0?(e-n)/(n-t.clone().add(i-1,"months")):(e-n)/(t.clone().add(i+1,"months")-n)))||0}function Vn(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function Xn(t){if(!this.isValid())return null;var e=!0!==t,i=e?this.clone().utc():this;return i.year()<0||i.year()>9999?lt(i,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):k(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",lt(i,"Z")):lt(i,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function qn(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var i="["+t+'("]',n=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r="-MM-DD[T]HH:mm:ss.SSS",s=e+'[")]';return this.format(i+n+r+s)}function Jn(t){t||(t=this.isUtc()?r.defaultFormatUtc:r.defaultFormat);var e=lt(this,t);return this.localeData().postformat(e)}function Zn(t,e){return this.isValid()&&(M(t)&&t.isValid()||qi(t).isValid())?Ln({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function Kn(t){return this.from(qi(),t)}function Qn(t,e){return this.isValid()&&(M(t)&&t.isValid()||qi(t).isValid())?Ln({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function $n(t){return this.to(qi(),t)}function tr(t){var e;return void 0===t?this._locale._abbr:(null!=(e=gi(t))&&(this._locale=e),this)}r.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",r.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var er=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(t){return void 0===t?this.localeData():this.locale(t)}));function ir(){return this._locale}var nr=1e3,rr=60*nr,sr=60*rr,or=3506328*sr;function ar(t,e){return(t%e+e)%e}function hr(t,e,i){return t<100&&t>=0?new Date(t+400,e,i)-or:new Date(t,e,i).valueOf()}function ur(t,e,i){return t<100&&t>=0?Date.UTC(t+400,e,i)-or:Date.UTC(t,e,i)}function lr(t){var e;if(void 0===(t=K(t))||"millisecond"===t||!this.isValid())return this;var i=this._isUTC?ur:hr;switch(t){case"year":e=i(this.year(),0,1);break;case"quarter":e=i(this.year(),this.month()-this.month()%3,1);break;case"month":e=i(this.year(),this.month(),1);break;case"week":e=i(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=i(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=ar(e+(this._isUTC?0:this.utcOffset()*rr),sr);break;case"minute":e=this._d.valueOf(),e-=ar(e,rr);break;case"second":e=this._d.valueOf(),e-=ar(e,nr)}return this._d.setTime(e),r.updateOffset(this,!0),this}function cr(t){var e;if(void 0===(t=K(t))||"millisecond"===t||!this.isValid())return this;var i=this._isUTC?ur:hr;switch(t){case"year":e=i(this.year()+1,0,1)-1;break;case"quarter":e=i(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=i(this.year(),this.month()+1,1)-1;break;case"week":e=i(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=i(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=sr-ar(e+(this._isUTC?0:this.utcOffset()*rr),sr)-1;break;case"minute":e=this._d.valueOf(),e+=rr-ar(e,rr)-1;break;case"second":e=this._d.valueOf(),e+=nr-ar(e,nr)-1}return this._d.setTime(e),r.updateOffset(this,!0),this}function dr(){return this._d.valueOf()-6e4*(this._offset||0)}function pr(){return Math.floor(this.valueOf()/1e3)}function fr(){return new Date(this.valueOf())}function mr(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function vr(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function gr(){return this.isValid()?this.toISOString():null}function yr(){return y(this)}function _r(){return f({},g(this))}function xr(){return g(this).overflow}function br(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function wr(t,e){at(0,[t,t.length],0,e)}function Tr(t){return Lr.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Mr(t){return Lr.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Sr(){return Se(this.year(),1,4)}function Er(){var t=this.localeData()._week;return Se(this.year(),t.dow,t.doy)}function Lr(t,e,i,n,r){var s;return null==t?Me(this,n,r).year:(e>(s=Se(t,n,r))&&(e=s),Ar.call(this,t,e,i,n,r))}function Ar(t,e,i,n,r){var s=Te(t,e,i,n,r),o=be(s.year,0,s.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}function Dr(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}at(0,["gg",2],0,(function(){return this.weekYear()%100})),at(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),wr("gggg","weekYear"),wr("ggggg","weekYear"),wr("GGGG","isoWeekYear"),wr("GGGGG","isoWeekYear"),Z("weekYear","gg"),Z("isoWeekYear","GG"),tt("weekYear",1),tt("isoWeekYear",1),Pt("G",Mt),Pt("g",Mt),Pt("GG",gt,pt),Pt("gg",gt,pt),Pt("GGGG",bt,mt),Pt("gggg",bt,mt),Pt("GGGGG",wt,vt),Pt("ggggg",wt,vt),Yt(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,i,n){e[n.substr(0,2)]=E(t)})),Yt(["gg","GG"],(function(t,e,i,n){e[n]=r.parseTwoDigitYear(t)})),at("Q",0,"Qo","quarter"),Z("quarter","Q"),tt("quarter",7),Pt("Q",dt),It("Q",(function(t,e){e[Bt]=3*(E(t)-1)})),at("D",["DD",2],"Do","date"),Z("date","D"),tt("date",9),Pt("D",gt),Pt("DD",gt,pt),Pt("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),It(["D","DD"],Ut),It("Do",(function(t,e){e[Ut]=E(t.match(gt)[0])}));var Pr=Qt("Date",!0);function Cr(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}at("DDD",["DDDD",3],"DDDo","dayOfYear"),Z("dayOfYear","DDD"),tt("dayOfYear",4),Pt("DDD",xt),Pt("DDDD",ft),It(["DDD","DDDD"],(function(t,e,i){i._dayOfYear=E(t)})),at("m",["mm",2],0,"minute"),Z("minute","m"),tt("minute",14),Pt("m",gt),Pt("mm",gt,pt),It(["m","mm"],Ht);var Or=Qt("Minutes",!1);at("s",["ss",2],0,"second"),Z("second","s"),tt("second",15),Pt("s",gt),Pt("ss",gt,pt),It(["s","ss"],zt);var kr,Rr=Qt("Seconds",!1);for(at("S",0,0,(function(){return~~(this.millisecond()/100)})),at(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),at(0,["SSS",3],0,"millisecond"),at(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),at(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),at(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),at(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),at(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),at(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),Z("millisecond","ms"),tt("millisecond",16),Pt("S",xt,dt),Pt("SS",xt,pt),Pt("SSS",xt,ft),kr="SSSS";kr.length<=9;kr+="S")Pt(kr,Tt);function Ir(t,e){e[Wt]=E(1e3*("0."+t))}for(kr="S";kr.length<=9;kr+="S")It(kr,Ir);var Yr=Qt("Milliseconds",!1);function Fr(){return this._isUTC?"UTC":""}function Nr(){return this._isUTC?"Coordinated Universal Time":""}at("z",0,0,"zoneAbbr"),at("zz",0,0,"zoneName");var Br=T.prototype;function Ur(t){return qi(1e3*t)}function jr(){return qi.apply(null,arguments).parseZone()}function Hr(t){return t}Br.add=kn,Br.calendar=Yn,Br.clone=Fn,Br.diff=Wn,Br.endOf=cr,Br.format=Jn,Br.from=Zn,Br.fromNow=Kn,Br.to=Qn,Br.toNow=$n,Br.get=ee,Br.invalidAt=xr,Br.isAfter=Nn,Br.isBefore=Bn,Br.isBetween=Un,Br.isSame=jn,Br.isSameOrAfter=Hn,Br.isSameOrBefore=zn,Br.isValid=yr,Br.lang=er,Br.locale=tr,Br.localeData=ir,Br.max=Zi,Br.min=Ji,Br.parsingFlags=_r,Br.set=ie,Br.startOf=lr,Br.subtract=Rn,Br.toArray=mr,Br.toObject=vr,Br.toDate=fr,Br.toISOString=Xn,Br.inspect=qn,Br.toJSON=gr,Br.toString=Vn,Br.unix=pr,Br.valueOf=dr,Br.creationData=br,Br.year=Zt,Br.isLeapYear=Kt,Br.weekYear=Tr,Br.isoWeekYear=Mr,Br.quarter=Br.quarters=Dr,Br.month=pe,Br.daysInMonth=fe,Br.week=Br.weeks=Pe,Br.isoWeek=Br.isoWeeks=Ce,Br.weeksInYear=Er,Br.isoWeeksInYear=Sr,Br.date=Pr,Br.day=Br.days=ze,Br.weekday=We,Br.isoWeekday=Ge,Br.dayOfYear=Cr,Br.hour=Br.hours=ai,Br.minute=Br.minutes=Or,Br.second=Br.seconds=Rr,Br.millisecond=Br.milliseconds=Yr,Br.utcOffset=fn,Br.utc=vn,Br.local=gn,Br.parseZone=yn,Br.hasAlignedHourOffset=_n,Br.isDST=xn,Br.isLocal=wn,Br.isUtcOffset=Tn,Br.isUtc=Mn,Br.isUTC=Mn,Br.zoneAbbr=Fr,Br.zoneName=Nr,Br.dates=D("dates accessor is deprecated. Use date instead.",Pr),Br.months=D("months accessor is deprecated. Use month instead",pe),Br.years=D("years accessor is deprecated. Use year instead",Zt),Br.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",mn),Br.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",bn);var zr=Y.prototype;function Wr(t,e,i,n){var r=gi(),s=m().set(n,e);return r[i](s,t)}function Gr(t,e,i){if(l(t)&&(e=t,t=void 0),t=t||"",null!=e)return Wr(t,e,i,"month");var n,r=[];for(n=0;n<12;n++)r[n]=Wr(t,n,i,"month");return r}function Vr(t,e,i,n){"boolean"==typeof t?(l(e)&&(i=e,e=void 0),e=e||""):(i=e=t,t=!1,l(e)&&(i=e,e=void 0),e=e||"");var r,s=gi(),o=t?s._week.dow:0;if(null!=i)return Wr(e,(i+o)%7,n,"day");var a=[];for(r=0;r<7;r++)a[r]=Wr(e,(r+o)%7,n,"day");return a}function Xr(t,e){return Gr(t,e,"months")}function qr(t,e){return Gr(t,e,"monthsShort")}function Jr(t,e,i){return Vr(t,e,i,"weekdays")}function Zr(t,e,i){return Vr(t,e,i,"weekdaysShort")}function Kr(t,e,i){return Vr(t,e,i,"weekdaysMin")}zr.calendar=N,zr.longDateFormat=U,zr.invalidDate=H,zr.ordinal=G,zr.preparse=Hr,zr.postformat=Hr,zr.relativeTime=X,zr.pastFuture=q,zr.set=R,zr.months=ae,zr.monthsShort=ue,zr.monthsParse=ce,zr.monthsRegex=ye,zr.monthsShortRegex=ve,zr.week=Ee,zr.firstDayOfYear=De,zr.firstDayOfWeek=Ae,zr.weekdays=Ye,zr.weekdaysMin=Ue,zr.weekdaysShort=Ne,zr.weekdaysParse=He,zr.weekdaysRegex=Xe,zr.weekdaysShortRegex=Je,zr.weekdaysMinRegex=Ke,zr.isPM=ni,zr.meridiem=si,fi("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===E(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),r.lang=D("moment.lang is deprecated. Use moment.locale instead.",fi),r.langData=D("moment.langData is deprecated. Use moment.localeData instead.",gi);var Qr=Math.abs;function $r(){var t=this._data;return this._milliseconds=Qr(this._milliseconds),this._days=Qr(this._days),this._months=Qr(this._months),t.milliseconds=Qr(t.milliseconds),t.seconds=Qr(t.seconds),t.minutes=Qr(t.minutes),t.hours=Qr(t.hours),t.months=Qr(t.months),t.years=Qr(t.years),this}function ts(t,e,i,n){var r=Ln(e,i);return t._milliseconds+=n*r._milliseconds,t._days+=n*r._days,t._months+=n*r._months,t._bubble()}function es(t,e){return ts(this,t,e,1)}function is(t,e){return ts(this,t,e,-1)}function ns(t){return t<0?Math.floor(t):Math.ceil(t)}function rs(){var t,e,i,n,r,s=this._milliseconds,o=this._days,a=this._months,h=this._data;return s>=0&&o>=0&&a>=0||s<=0&&o<=0&&a<=0||(s+=864e5*ns(os(a)+o),o=0,a=0),h.milliseconds=s%1e3,t=S(s/1e3),h.seconds=t%60,e=S(t/60),h.minutes=e%60,i=S(e/60),h.hours=i%24,o+=S(i/24),a+=r=S(ss(o)),o-=ns(os(r)),n=S(a/12),a%=12,h.days=o,h.months=a,h.years=n,this}function ss(t){return 4800*t/146097}function os(t){return 146097*t/4800}function as(t){if(!this.isValid())return NaN;var e,i,n=this._milliseconds;if("month"===(t=K(t))||"quarter"===t||"year"===t)switch(e=this._days+n/864e5,i=this._months+ss(e),t){case"month":return i;case"quarter":return i/3;case"year":return i/12}else switch(e=this._days+Math.round(os(this._months)),t){case"week":return e/7+n/6048e5;case"day":return e+n/864e5;case"hour":return 24*e+n/36e5;case"minute":return 1440*e+n/6e4;case"second":return 86400*e+n/1e3;case"millisecond":return Math.floor(864e5*e)+n;default:throw new Error("Unknown unit "+t)}}function hs(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*E(this._months/12):NaN}function us(t){return function(){return this.as(t)}}var ls=us("ms"),cs=us("s"),ds=us("m"),ps=us("h"),fs=us("d"),ms=us("w"),vs=us("M"),gs=us("Q"),ys=us("y");function _s(){return Ln(this)}function xs(t){return t=K(t),this.isValid()?this[t+"s"]():NaN}function bs(t){return function(){return this.isValid()?this._data[t]:NaN}}var ws=bs("milliseconds"),Ts=bs("seconds"),Ms=bs("minutes"),Ss=bs("hours"),Es=bs("days"),Ls=bs("months"),As=bs("years");function Ds(){return S(this.days()/7)}var Ps=Math.round,Cs={ss:44,s:45,m:45,h:22,d:26,M:11};function Os(t,e,i,n,r){return r.relativeTime(e||1,!!i,t,n)}function ks(t,e,i){var n=Ln(t).abs(),r=Ps(n.as("s")),s=Ps(n.as("m")),o=Ps(n.as("h")),a=Ps(n.as("d")),h=Ps(n.as("M")),u=Ps(n.as("y")),l=r<=Cs.ss&&["s",r]||r<Cs.s&&["ss",r]||s<=1&&["m"]||s<Cs.m&&["mm",s]||o<=1&&["h"]||o<Cs.h&&["hh",o]||a<=1&&["d"]||a<Cs.d&&["dd",a]||h<=1&&["M"]||h<Cs.M&&["MM",h]||u<=1&&["y"]||["yy",u];return l[2]=e,l[3]=+t>0,l[4]=i,Os.apply(null,l)}function Rs(t){return void 0===t?Ps:"function"==typeof t&&(Ps=t,!0)}function Is(t,e){return void 0!==Cs[t]&&(void 0===e?Cs[t]:(Cs[t]=e,"s"===t&&(Cs.ss=e-1),!0))}function Ys(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),i=ks(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}var Fs=Math.abs;function Ns(t){return(t>0)-(t<0)||+t}function Bs(){if(!this.isValid())return this.localeData().invalidDate();var t,e,i=Fs(this._milliseconds)/1e3,n=Fs(this._days),r=Fs(this._months);t=S(i/60),e=S(t/60),i%=60,t%=60;var s=S(r/12),o=r%=12,a=n,h=e,u=t,l=i?i.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var d=c<0?"-":"",p=Ns(this._months)!==Ns(c)?"-":"",f=Ns(this._days)!==Ns(c)?"-":"",m=Ns(this._milliseconds)!==Ns(c)?"-":"";return d+"P"+(s?p+s+"Y":"")+(o?p+o+"M":"")+(a?f+a+"D":"")+(h||u||l?"T":"")+(h?m+h+"H":"")+(u?m+u+"M":"")+(l?m+l+"S":"")}var Us=on.prototype;return Us.isValid=rn,Us.abs=$r,Us.add=es,Us.subtract=is,Us.as=as,Us.asMilliseconds=ls,Us.asSeconds=cs,Us.asMinutes=ds,Us.asHours=ps,Us.asDays=fs,Us.asWeeks=ms,Us.asMonths=vs,Us.asQuarters=gs,Us.asYears=ys,Us.valueOf=hs,Us._bubble=rs,Us.clone=_s,Us.get=xs,Us.milliseconds=ws,Us.seconds=Ts,Us.minutes=Ms,Us.hours=Ss,Us.days=Es,Us.weeks=Ds,Us.months=Ls,Us.years=As,Us.humanize=Ys,Us.toISOString=Bs,Us.toString=Bs,Us.toJSON=Bs,Us.locale=tr,Us.localeData=ir,Us.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Bs),Us.lang=er,at("X",0,0,"unix"),at("x",0,0,"valueOf"),Pt("x",Mt),Pt("X",Lt),It("X",(function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))})),It("x",(function(t,e,i){i._d=new Date(E(t))})),r.version="2.24.0",s(qi),r.fn=Br,r.min=Qi,r.max=$i,r.now=tn,r.utc=m,r.unix=Ur,r.months=Xr,r.isDate=c,r.locale=fi,r.invalid=_,r.duration=Ln,r.isMoment=M,r.weekdays=Jr,r.parseZone=jr,r.localeData=gi,r.isDuration=an,r.monthsShort=qr,r.weekdaysMin=Kr,r.defineLocale=mi,r.updateLocale=vi,r.locales=yi,r.weekdaysShort=Zr,r.normalizeUnits=K,r.relativeTimeRounding=Rs,r.relativeTimeThreshold=Is,r.calendarFormat=In,r.prototype=Br,r.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},r}()},33915:t=>{"use strict";var e=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;function r(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},i=0;i<10;i++)e["_"+String.fromCharCode(i)]=i;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(t){n[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,s){for(var o,a,h=r(t),u=1;u<arguments.length;u++){for(var l in o=Object(arguments[u]))i.call(o,l)&&(h[l]=o[l]);if(e){a=e(o);for(var c=0;c<a.length;c++)n.call(o,a[c])&&(h[a[c]]=o[a[c]])}}return h}},21639:t=>{"use strict";t.exports=function(t,e){e=e||{};for(var i={key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}},n=i.parser[e.strictMode?"strict":"loose"].exec(t),r={},s=14;s--;)r[i.key[s]]=n[s]||"";return r[i.q.name]={},r[i.key[12]].replace(i.q.parser,(function(t,e,n){e&&(r[i.q.name][e]=n)})),r}},2859:(t,e,i)=>{var n=i(47379),r=i(27314),s=i(60932),o=i(47708),a=i(73818),h=i(69347),u=i(56218),l=i(57148),c=i(19531),d=i(68970),p=new c,f=new d,m=new c,v=new c,g=new r,y=new n({initialize:function(t){this.scene=t,this.displayList=t.sys.displayList,this.updateList=t.sys.updateList,this.name="",this.direction=new c(0,0,-1),this.up=new c(0,1,0),this.position=new c,this.pixelScale=128,this.projection=new r,this.view=new r,this.combined=new r,this.invProjectionView=new r,this.near=1,this.far=100,this.ray={origin:new c,direction:new c},this.viewportWidth=0,this.viewportHeight=0,this.billboardMatrixDirty=!0,this.children=new h},setPosition:function(t,e,i){return this.position.set(t,e,i),this.update()},setScene:function(t){return this.scene=t,this},setPixelScale:function(t){return this.pixelScale=t,this.update()},add:function(t){return this.children.set(t),this.displayList.add(t.gameObject),this.updateList.add(t.gameObject),this.updateChildren(),t},remove:function(t){return this.displayList.remove(t.gameObject),this.updateList.remove(t.gameObject),this.children.delete(t),this},clear:function(){for(var t=this.getChildren(),e=0;e<t.length;e++)this.remove(t[e]);return this},getChildren:function(){return this.children.entries},create:function(t,e,i,n,r,s){void 0===s&&(s=!0);var o=new u(this.scene,t,e,i,n,r);return this.displayList.add(o.gameObject),this.updateList.add(o.gameObject),o.visible=s,this.children.set(o),this.updateChildren(),o},createMultiple:function(t,e,i,n){void 0===n&&(n=!0);for(var r=[],s=0;s<t;s++){var o=new u(this.scene,0,0,0,e,i);this.displayList.add(o.gameObject),this.updateList.add(o.gameObject),o.visible=n,this.children.set(o),r.push(o)}return r},createRect:function(t,e,i,n){"number"==typeof t&&(t={x:t,y:t,z:t}),"number"==typeof e&&(e={x:e,y:e,z:e});for(var r=t.x*t.y*t.z,s=this.createMultiple(r,i,n),o=0,a=.5-t.z/2;a<t.z/2;a++)for(var h=.5-t.y/2;h<t.y/2;h++)for(var u=.5-t.x/2;u<t.x/2;u++){var l=u*e.x,c=h*e.y,d=a*e.z;s[o].position.set(l,c,d),o++}return this.update(),s},randomSphere:function(t,e){void 0===e&&(e=this.getChildren());for(var i=0;i<e.length;i++)s(e[i].position,t);return this.update()},randomCube:function(t,e){void 0===e&&(e=this.getChildren());for(var i=0;i<e.length;i++)o(e[i].position,t);return this.update()},translateChildren:function(t,e){void 0===e&&(e=this.getChildren());for(var i=0;i<e.length;i++)e[i].position.add(t);return this.update()},transformChildren:function(t,e){void 0===e&&(e=this.getChildren());for(var i=0;i<e.length;i++)e[i].position.transformMat4(t);return this.update()},setViewport:function(t,e){return this.viewportWidth=t,this.viewportHeight=e,this.update()},translate:function(t,e,i){return"object"==typeof t?(this.position.x+=t.x||0,this.position.y+=t.y||0,this.position.z+=t.z||0):(this.position.x+=t||0,this.position.y+=e||0,this.position.z+=i||0),this.update()},lookAt:function(t,e,i){var n=this.direction,r=this.up;return"object"==typeof t?n.copy(t):n.set(t,e,i),n.subtract(this.position).normalize(),p.copy(n).cross(r).normalize(),r.copy(p).cross(n).normalize(),this.update()},rotate:function(t,e){return a(this.direction,e,t),a(this.up,e,t),this.update()},rotateAround:function(t,e,i){return p.copy(t).subtract(this.position),this.translate(p),this.rotate(e,i),this.translate(p.negate()),this.update()},project:function(t,e){void 0===e&&(e=new d);var i=this.viewportWidth,n=this.viewportHeight,r=y.NEAR_RANGE,s=y.FAR_RANGE;return f.set(t.x,t.y,t.z,1),f.transformMat4(this.combined),0===f.w&&(f.w=1),f.x=f.x/f.w,f.y=f.y/f.w,f.z=f.z/f.w,e.x=i/2*f.x+(0+i/2),e.y=n/2*f.y+(0+n/2),e.z=(s-r)/2*f.z+(s+r)/2,(0===e.w||e.w)&&(e.w=1/f.w),e},unproject:function(t,e){void 0===e&&(e=new c);var i=f.set(0,0,this.viewportWidth,this.viewportHeight);return e.copy(t).unproject(i,this.invProjectionView)},getPickRay:function(t,e){var i=this.ray.origin.set(t,e,0),n=this.ray.direction.set(t,e,1),r=f.set(0,0,this.viewportWidth,this.viewportHeight),s=this.invProjectionView;return i.unproject(r,s),n.unproject(r,s),n.subtract(i).normalize(),this.ray},updateChildren:function(){for(var t=this.children.entries,e=0;e<t.length;e++)t[e].project(this);return this},update:function(){return this.updateChildren()},updateBillboardMatrix:function(){var t=m.set(this.direction).negate(),e=v.set(this.up).cross(t).normalize(),i=p.set(t).cross(e).normalize(),n=g.val;n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=0,n[4]=i.x,n[5]=i.y,n[6]=i.z,n[7]=0,n[8]=t.x,n[9]=t.y,n[10]=t.z,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this.billboardMatrixDirty=!1},getPointSize:function(t,e,i){void 0===i&&(i=new l),this.billboardMatrixDirty&&this.updateBillboardMatrix();var n=p,r=e.x/this.pixelScale/2,s=e.y/this.pixelScale/2;n.set(-r,-s,0).transformMat4(g).add(t),this.project(n,n);var o=n.x,a=n.y;n.set(r,s,0).transformMat4(g).add(t),this.project(n,n);var h=n.x-o,u=n.y-a;return i.set(h,u)},destroy:function(){this.children.clear(),this.scene=void 0,this.children=void 0},setX:function(t){return this.position.x=t,this.update()},setY:function(t){return this.position.y=t,this.update()},setZ:function(t){return this.position.z=t,this.update()},x:{get:function(){return this.position.x},set:function(t){this.position.x=t,this.update()}},y:{get:function(){return this.position.y},set:function(t){this.position.y=t,this.update()}},z:{get:function(){return this.position.z},set:function(t){this.position.z=t,this.update()}}});y.FAR_RANGE=1,y.NEAR_RANGE=0,t.exports=y},22510:(t,e,i)=>{var n=i(47379),r=i(74353),s=i(42862),o=i(50354),a=new n({initialize:function(t){this.scene=t,this.systems=t.sys,this.cameras=[],t.sys.events.once("boot",this.boot,this),t.sys.events.on("start",this.start,this)},boot:function(){this.systems.events.once("destroy",this.destroy,this)},start:function(){var t=this.systems.events;t.on("update",this.update,this),t.once("shutdown",this.shutdown,this)},add:function(t,e,i){return this.addPerspectiveCamera(t,e,i)},addOrthographicCamera:function(t,e){var i=this.scene.sys.game.config;void 0===t&&(t=i.width),void 0===e&&(e=i.height);var n=new r(this.scene,t,e);return this.cameras.push(n),n},addPerspectiveCamera:function(t,e,i){var n=this.scene.sys.game.config;void 0===t&&(t=80),void 0===e&&(e=n.width),void 0===i&&(i=n.height);var r=new s(this.scene,t,e,i);return this.cameras.push(r),r},getCamera:function(t){for(var e=0;e<this.cameras.length;e++)if(this.cameras[e].name===t)return this.cameras[e];return null},removeCamera:function(t){var e=this.cameras.indexOf(t);-1!==e&&this.cameras.splice(e,1)},removeAll:function(){for(;this.cameras.length>0;){this.cameras.pop().destroy()}return this.main},update:function(t,e){for(var i=0,n=this.cameras.length;i<n;++i)this.cameras[i].update(t,e)},shutdown:function(){var t=this.systems.events;t.off("update",this.update,this),t.off("shutdown",this.shutdown,this),this.removeAll()},destroy:function(){this.shutdown(),this.scene.sys.events.off("start",this.start,this),this.scene=null,this.systems=null}});o.register("CameraManager3D",a,"cameras3d"),t.exports=a},74353:(t,e,i)=>{var n=i(2859),r=i(47379),s=new(i(19531)),o=new r({Extends:n,initialize:function(t,e,i){void 0===e&&(e=0),void 0===i&&(i=0),n.call(this,t),this.viewportWidth=e,this.viewportHeight=i,this._zoom=1,this.near=0,this.update()},setToOrtho:function(t,e,i){void 0===e&&(e=this.viewportWidth),void 0===i&&(i=this.viewportHeight);var n=this.zoom;return this.up.set(0,t?-1:1,0),this.direction.set(0,0,t?1:-1),this.position.set(n*e/2,n*i/2,0),this.viewportWidth=e,this.viewportHeight=i,this.update()},update:function(){var t=this.viewportWidth,e=this.viewportHeight,i=Math.abs(this.near),n=Math.abs(this.far),r=this.zoom;return 0===t||0===e||(this.projection.ortho(r*-t/2,r*t/2,r*-e/2,r*e/2,i,n),s.copy(this.position).add(this.direction),this.view.lookAt(this.position,s,this.up),this.combined.copy(this.projection).multiply(this.view),this.invProjectionView.copy(this.combined).invert(),this.billboardMatrixDirty=!0,this.updateChildren()),this},zoom:{get:function(){return this._zoom},set:function(t){this._zoom=t,this.update()}}});t.exports=o},42862:(t,e,i)=>{var n=i(2859),r=i(47379),s=new(i(19531)),o=new r({Extends:n,initialize:function(t,e,i,r){void 0===e&&(e=80),void 0===i&&(i=0),void 0===r&&(r=0),n.call(this,t),this.viewportWidth=i,this.viewportHeight=r,this.fieldOfView=e*Math.PI/180,this.update()},setFOV:function(t){return this.fieldOfView=t*Math.PI/180,this},update:function(){var t=this.viewportWidth/this.viewportHeight;return this.projection.perspective(this.fieldOfView,t,Math.abs(this.near),Math.abs(this.far)),s.copy(this.position).add(this.direction),this.view.lookAt(this.position,s,this.up),this.combined.copy(this.projection).multiply(this.view),this.invProjectionView.copy(this.combined).invert(),this.billboardMatrixDirty=!0,this.updateChildren(),this}});t.exports=o},66005:(t,e,i)=>{t.exports={Camera:i(2859),CameraManager:i(22510),OrthographicCamera:i(74353),PerspectiveCamera:i(42862)}},56218:(t,e,i)=>{var n=i(47379),r=i(90554),s=i(95681),o=i(57148),a=i(68970),h=new n({Extends:r,initialize:function(t,e,i,n,h,u){r.call(this,t,"Sprite3D"),this.gameObject=new s(t,0,0,h,u),this.position=new a(e,i,n),this.size=new o(this.gameObject.width,this.gameObject.height),this.scale=new o(1,1),this.adjustScaleX=!0,this.adjustScaleY=!0,this._visible=!0},project:function(t){var e=this.position,i=this.gameObject;t.project(e,i),t.getPointSize(e,this.size,this.scale),this.scale.x<=0||this.scale.y<=0?i.setVisible(!1):(i.visible||i.setVisible(!0),this.adjustScaleX&&(i.scaleX=this.scale.x),this.adjustScaleY&&(i.scaleY=this.scale.y),i.setDepth(-1*i.z))},setVisible:function(t){return this.visible=t,this},visible:{get:function(){return this._visible},set:function(t){this._visible=t,this.gameObject.visible=t}},x:{get:function(){return this.position.x},set:function(t){this.position.x=t}},y:{get:function(){return this.position.y},set:function(t){this.position.y=t}},z:{get:function(){return this.position.z},set:function(t){this.position.z=t}}});t.exports=h},47712:(t,e,i)=>{var n=i(74865),r=i(4777),s=i(17517),o=i(57687),a=i(56218);s.register("sprite3D",(function(t,e){void 0===t&&(t={});var i=o(t,"key",null),s=o(t,"frame",null),h=new a(this.scene,0,0,i,s);return void 0!==e&&(t.add=e),n(this.scene,h,t),r(h,t),h}))},79465:(t,e,i)=>{var n=i(56218);i(81342).register("sprite3D",(function(t,e,i,r,s){var o=new n(this.scene,t,e,i,r,s);return this.displayList.add(o.gameObject),this.updateList.add(o.gameObject),o}))},17108:t=>{t.exports=function(t,e,i){return{instance:e,placementID:t,shown:!1,video:i}}},75329:(t,e,i)=>{var n=i(17108),r=i(47379),s=i(3881),o=i(17168),a=i(88559),h=i(5523),u=i(14879),l=new r({Extends:o,initialize:function(t){o.call(this),this.game=t,this.data=new s(this),this.on("setdata",this.setDataHandler,this),this.on("changedata",this.changeDataHandler,this),this.hasLoaded=!1,this.dataLocked=!1,this.supportedAPIs=[],this.entryPoint="",this.entryPointData=null,this.contextID=null,this.contextType=null,this.locale=null,this.platform=null,this.version=null,this.playerID=null,this.playerName=null,this.playerPhotoURL=null,this.playerCanSubscribeBot=!1,this.paymentsReady=!1,this.catalog=[],this.purchases=[],this.leaderboards={},this.ads=[]},setDataHandler:function(t,e,i){if(!this.dataLocked){var n={};n[e]=i;var r=this;FBInstant.player.setDataAsync(n).then((function(){r.emit("savedata",n)}))}},changeDataHandler:function(t,e,i){if(!this.dataLocked){var n={};n[e]=i;var r=this;FBInstant.player.setDataAsync(n).then((function(){r.emit("savedata",n)}))}},showLoadProgress:function(t){return t.load.on("progress",(function(t){this.hasLoaded||FBInstant.setLoadingProgress(100*t)}),this),t.load.on("complete",(function(){this.hasLoaded||(this.hasLoaded=!0,FBInstant.startGameAsync().then(this.gameStartedHandler.bind(this)))}),this),this},gameStarted:function(){this.hasLoaded?this.gameStartedHandler():(this.hasLoaded=!0,FBInstant.startGameAsync().then(this.gameStartedHandler.bind(this)))},gameStartedHandler:function(){var t=FBInstant.getSupportedAPIs(),e={},i=function(t){return t[1].toUpperCase()};t.forEach((function(t){t=t.replace(/\../g,i),e[t]=!0})),this.supportedAPIs=e,this.getID(),this.getType(),this.getLocale(),this.getPlatform(),this.getSDKVersion(),this.getPlayerID(),this.getPlayerName(),this.getPlayerPhotoURL();var n=this;FBInstant.onPause((function(){n.emit("pause")})),FBInstant.getEntryPointAsync().then((function(t){n.entryPoint=t,n.entryPointData=FBInstant.getEntryPointData(),n.emit("startgame")})).catch((function(t){console.warn(t)})),this.supportedAPIs.paymentsPurchaseAsync&&FBInstant.payments.onReady((function(){n.paymentsReady=!0})).catch((function(t){console.warn(t)}))},checkAPI:function(t){return!!this.supportedAPIs[t]},getID:function(){return!this.contextID&&this.supportedAPIs.contextGetID&&(this.contextID=FBInstant.context.getID()),this.contextID},getType:function(){return!this.contextType&&this.supportedAPIs.contextGetType&&(this.contextType=FBInstant.context.getType()),this.contextType},getLocale:function(){return!this.locale&&this.supportedAPIs.getLocale&&(this.locale=FBInstant.getLocale()),this.locale},getPlatform:function(){return!this.platform&&this.supportedAPIs.getPlatform&&(this.platform=FBInstant.getPlatform()),this.platform},getSDKVersion:function(){return!this.version&&this.supportedAPIs.getSDKVersion&&(this.version=FBInstant.getSDKVersion()),this.version},getPlayerID:function(){return!this.playerID&&this.supportedAPIs.playerGetID&&(this.playerID=FBInstant.player.getID()),this.playerID},getPlayerName:function(){return!this.playerName&&this.supportedAPIs.playerGetName&&(this.playerName=FBInstant.player.getName()),this.playerName},getPlayerPhotoURL:function(){return!this.playerPhotoURL&&this.supportedAPIs.playerGetPhoto&&(this.playerPhotoURL=FBInstant.player.getPhoto()),this.playerPhotoURL},loadPlayerPhoto:function(t,e){return this.playerPhotoURL&&(t.load.setCORS("anonymous"),t.load.image(e,this.playerPhotoURL),t.load.once("filecomplete-image-"+e,(function(){this.emit("photocomplete",e)}),this),t.load.start()),this},canSubscribeBot:function(){if(this.supportedAPIs.playerCanSubscribeBotAsync){var t=this;FBInstant.player.canSubscribeBotAsync().then((function(){t.playerCanSubscribeBot=!0,t.emit("cansubscribebot")})).catch((function(e){t.emit("cansubscribebotfail",e)}))}else this.emit("cansubscribebotfail");return this},subscribeBot:function(){if(this.playerCanSubscribeBot){var t=this;FBInstant.player.subscribeBotAsync().then((function(){t.emit("subscribebot")})).catch((function(e){t.emit("subscribebotfail",e)}))}else this.emit("subscribebotfail");return this},getData:function(t){if(!this.checkAPI("playerGetDataAsync"))return this;Array.isArray(t)||(t=[t]);var e=this;return FBInstant.player.getDataAsync(t).then((function(t){for(var i in e.dataLocked=!0,t)e.data.set(i,t[i]);e.dataLocked=!1,e.emit("getdata",t)})),this},saveData:function(t){if(!this.checkAPI("playerSetDataAsync"))return this;var e=this;return FBInstant.player.setDataAsync(t).then((function(){e.emit("savedata",t)})).catch((function(t){e.emit("savedatafail",t)})),this},flushData:function(){if(!this.checkAPI("playerFlushDataAsync"))return this;var t=this;return FBInstant.player.flushDataAsync().then((function(){t.emit("flushdata")})).catch((function(e){t.emit("flushdatafail",e)})),this},getStats:function(t){if(!this.checkAPI("playerGetStatsAsync"))return this;var e=this;return FBInstant.player.getStatsAsync(t).then((function(t){e.emit("getstats",t)})).catch((function(t){e.emit("getstatsfail",t)})),this},saveStats:function(t){if(!this.checkAPI("playerSetStatsAsync"))return this;var e={};for(var i in t)"number"==typeof t[i]&&(e[i]=t[i]);var n=this;return FBInstant.player.setStatsAsync(e).then((function(){n.emit("savestats",e)})).catch((function(t){n.emit("savestatsfail",t)})),this},incStats:function(t){if(!this.checkAPI("playerIncrementStatsAsync"))return this;var e={};for(var i in t)"number"==typeof t[i]&&(e[i]=t[i]);var n=this;return FBInstant.player.incrementStatsAsync(e).then((function(t){n.emit("incstats",t)})).catch((function(t){n.emit("incstatsfail",t)})),this},saveSession:function(t){return this.checkAPI("setSessionData")?(JSON.stringify(t).length<=1e3?FBInstant.setSessionData(t):console.warn("Session data too long. Max 1000 chars."),this):this},openShare:function(t,e,i,n){return this._share("SHARE",t,e,i,n)},openInvite:function(t,e,i,n){return this._share("INVITE",t,e,i,n)},openRequest:function(t,e,i,n){return this._share("REQUEST",t,e,i,n)},openChallenge:function(t,e,i,n){return this._share("CHALLENGE",t,e,i,n)},_share:function(t,e,i,n,r){if(!this.checkAPI("shareAsync"))return this;if(void 0===r&&(r={}),i)var s=this.game.textures.getBase64(i,n);var o={intent:t,image:s,text:e,data:r},a=this;return FBInstant.shareAsync(o).then((function(){a.emit("resume")})),this},isSizeBetween:function(t,e){return this.checkAPI("contextIsSizeBetween")?FBInstant.context.isSizeBetween(t,e):this},switchContext:function(t){if(!this.checkAPI("contextSwitchAsync"))return this;if(t!==this.contextID){var e=this;FBInstant.context.switchAsync(t).then((function(){e.contextID=FBInstant.context.getID(),e.emit("switch",e.contextID)})).catch((function(t){e.emit("switchfail",t)}))}return this},chooseContext:function(t){if(!this.checkAPI("contextChooseAsync"))return this;var e=this;return FBInstant.context.chooseAsync(t).then((function(){e.contextID=FBInstant.context.getID(),e.emit("choose",e.contextID)})).catch((function(t){e.emit("choosefail",t)})),this},createContext:function(t){if(!this.checkAPI("contextCreateAsync"))return this;var e=this;return FBInstant.context.createAsync(t).then((function(){e.contextID=FBInstant.context.getID(),e.emit("create",e.contextID)})).catch((function(t){e.emit("createfail",t)})),this},getPlayers:function(){if(!this.checkAPI("playerGetConnectedPlayersAsync"))return this;var t=this;return FBInstant.player.getConnectedPlayersAsync().then((function(e){t.emit("players",e)})).catch((function(e){t.emit("playersfail",e)})),this},getCatalog:function(){if(!this.paymentsReady)return this;var t=this,e=this.catalog;return FBInstant.payments.getCatalogAsync().then((function(i){e=[],i.forEach((function(t){e.push(h(t))})),t.emit("getcatalog",e)})).catch((function(e){t.emit("getcatalogfail",e)})),this},getProduct:function(t){for(var e=0;e<this.catalog.length;e++)if(this.catalog[e].productID===t)return this.catalog[e];return null},purchase:function(t,e){if(!this.paymentsReady)return this;var i={productID:t};e&&(i.developerPayload=e);var n=this;return FBInstant.payments.purchaseAsync(i).then((function(t){var e=u(t);n.emit("purchase",e)})).catch((function(t){n.emit("purchasefail",t)})),this},getPurchases:function(){if(!this.paymentsReady)return this;var t=this,e=this.purchases;return FBInstant.payments.getPurchasesAsync().then((function(i){e=[],i.forEach((function(t){e.push(u(t))})),t.emit("getpurchases",e)})).catch((function(e){t.emit("getpurchasesfail",e)})),this},consumePurchase:function(t){if(!this.paymentsReady)return this;var e=this;return FBInstant.payments.consumePurchaseAsync(t).then((function(){e.emit("consumepurchase",t)})).catch((function(t){e.emit("consumepurchasefail",t)})),this},update:function(t,e,i,n,r,s){return this._update("CUSTOM",t,e,i,n,r,s)},updateLeaderboard:function(t,e,i,n,r,s){return this._update("LEADERBOARD",t,e,i,n,r,s)},_update:function(t,e,i,n,r,s,o){if(!this.checkAPI("shareAsync"))return this;if(void 0===e&&(e=""),"string"==typeof i&&(i={default:i}),void 0===o&&(o={}),n)var a=this.game.textures.getBase64(n,r);var h={action:t,cta:e,image:a,text:i,template:s,data:o,strategy:"IMMEDIATE",notification:"NO_PUSH"},u=this;return FBInstant.updateAsync(h).then((function(){u.emit("update")})).catch((function(t){u.emit("updatefail",t)})),this},switchGame:function(t,e){if(!this.checkAPI("switchGameAsync"))return this;if(e&&JSON.stringify(e).length>1e3)return console.warn("Switch Game data too long. Max 1000 chars."),this;var i=this;return FBInstant.switchGameAsync(t,e).then((function(){i.emit("switchgame",t)})).catch((function(t){i.emit("switchgamefail",t)})),this},createShortcut:function(){var t=this;return FBInstant.canCreateShortcutAsync().then((function(e){e&&FBInstant.createShortcutAsync().then((function(){t.emit("shortcutcreated")})).catch((function(e){t.emit("shortcutfailed",e)}))})),this},quit:function(){FBInstant.quit()},log:function(t,e,i){return this.checkAPI("logEvent")?(void 0===i&&(i={}),t.length>=2&&t.length<=40&&FBInstant.logEvent(t,parseFloat(e),i),this):this},preloadAds:function(t){if(!this.checkAPI("getInterstitialAdAsync"))return this;var e;Array.isArray(t)||(t=[t]);var i=this,r=0;for(e=0;e<this.ads.length;e++)this.ads[e].shown||r++;if(r+t.length>=3)return console.warn("Too many AdInstances. Show an ad before loading more"),this;for(e=0;e<t.length;e++){var s,o=t[e];FBInstant.getInterstitialAdAsync(o).then((function(t){return s=t,t.loadAsync()})).then((function(){var t=n(o,s,!1);i.ads.push(t),i.emit("adloaded",t)})).catch((function(t){"ADS_NO_FILL"===t.code?i.emit("adsnofill",o):"ADS_FREQUENT_LOAD"===t.code?i.emit("adsfrequentload",o):console.warn(t)}))}return this},preloadVideoAds:function(t){if(!this.checkAPI("getRewardedVideoAsync"))return this;var e;Array.isArray(t)||(t=[t]);var i=this,r=0;for(e=0;e<this.ads.length;e++)this.ads[e].shown||r++;if(r+t.length>=3)return console.warn("Too many AdInstances. Show an ad before loading more"),this;for(e=0;e<t.length;e++){var s,o=t[e];FBInstant.getRewardedVideoAsync(o).then((function(t){return s=t,t.loadAsync()})).then((function(){var t=n(o,s,!0);i.ads.push(t),i.emit("adloaded",t)})).catch((function(t){"ADS_NO_FILL"===t.code?i.emit("adsnofill",o):"ADS_FREQUENT_LOAD"===t.code?i.emit("adsfrequentload",o):console.warn(t)}))}return this},showAd:function(t){for(var e=this,i=0;i<this.ads.length;i++){var n=this.ads[i];if(n.placementID===t&&!n.shown){n.instance.showAsync().then((function(){n.shown=!0,e.emit("adfinished",n)})).catch((function(t){"ADS_NOT_LOADED"===t.code?e.emit("adsnotloaded",n):"RATE_LIMITED"===t.code&&e.emit("adratelimited",n),e.emit("adshowerror",t,n)}));break}}return this},showVideo:function(t){for(var e=this,i=0;i<this.ads.length;i++){var n=this.ads[i];if(n.placementID===t&&n.video&&!n.shown){n.instance.showAsync().then((function(){n.shown=!0,e.emit("adfinished",n)})).catch((function(t){"ADS_NOT_LOADED"===t.code?e.emit("adsnotloaded",n):"RATE_LIMITED"===t.code&&e.emit("adratelimited",n),e.emit("adshowerror",t,n)}));break}}return this},matchPlayer:function(t,e){if(void 0===t&&(t=null),void 0===e&&(e=!1),!this.checkAPI("matchPlayerAsync"))return this;var i=this;return FBInstant.matchPlayerAsync(t,e).then((function(){i.getID(),i.getType(),i.emit("matchplayer",i.contextID,i.contextType)})),this},getLeaderboard:function(t){if(!this.checkAPI("getLeaderboardAsync"))return this;var e=this;return FBInstant.getLeaderboardAsync(t).then((function(i){var n=new a(e,i);e.leaderboards[t]=n,e.emit("getleaderboard",n)})).catch((function(t){console.warn(t)})),this},destroy:function(){FBInstant.quit(),this.data.destroy(),this.removeAllListeners(),this.catalog=[],this.purchases=[],this.leaderboards=[],this.ads=[],this.game=null}});t.exports=l},88559:(t,e,i)=>{var n=i(47379),r=i(17168),s=i(1891),o=new n({Extends:r,initialize:function(t,e){r.call(this),this.plugin=t,this.ref=e,this.name=e.getName(),this.contextID=e.getContextID(),this.entryCount=0,this.playerScore=null,this.scores=[],this.getEntryCount()},getEntryCount:function(){var t=this;return this.ref.getEntryCountAsync().then((function(e){t.entryCount=e,t.emit("getentrycount",e,t.name)})).catch((function(t){console.warn(t)})),this},setScore:function(t,e){void 0===e&&(e=""),"object"==typeof e&&(e=JSON.stringify(e));var i=this;return this.ref.setScoreAsync(t,e).then((function(t){if(t){var e=s(t);i.playerScore=e,i.emit("setscore",e,i.name)}else i.emit("setscore",null,i.name)})).catch((function(t){console.warn(t)})),this},getPlayerScore:function(){var t=this;return this.ref.getPlayerEntryAsync().then((function(e){if(e){var i=s(e);t.playerScore=i,t.emit("getplayerscore",i,t.name)}else t.emit("getplayerscore",null,t.name)})).catch((function(t){console.warn(t)})),this},getScores:function(t,e){void 0===t&&(t=10),void 0===e&&(e=0);var i=this;return this.ref.getEntriesAsync(t,e).then((function(t){i.scores=[],t.forEach((function(t){i.scores.push(s(t))})),i.emit("getscores",i.scores,i.name)})).catch((function(t){console.warn(t)})),this},getConnectedScores:function(){var t=this;return this.ref.getConnectedPlayerEntriesAsync().then((function(e){t.scores=[],e.forEach((function(e){t.scores.push(s(e))})),t.emit("getconnectedscores",t.scores,t.name)})).catch((function(t){console.warn(t)})),this}});t.exports=o},1891:t=>{t.exports=function(t){return{score:t.getScore(),scoreFormatted:t.getFormattedScore(),timestamp:t.getTimestamp(),rank:t.getRank(),data:t.getExtraData(),playerName:t.getPlayer().getName(),playerPhotoURL:t.getPlayer().getPhoto(),playerID:t.getPlayer().getID()}}},5523:(t,e,i)=>{var n=i(81769);t.exports=function(t){return{title:n(t,"title",""),productID:n(t,"productID",""),description:n(t,"description",""),imageURI:n(t,"imageURI",""),price:n(t,"price",""),priceCurrencyCode:n(t,"priceCurrencyCode","")}}},14879:(t,e,i)=>{var n=i(81769);t.exports=function(t){return{developerPayload:n(t,"developerPayload",""),paymentID:n(t,"paymentID",""),productID:n(t,"productID",""),purchaseTime:n(t,"purchaseTime",""),purchaseToken:n(t,"purchaseToken",""),signedRequest:n(t,"signedRequest","")}}},75423:(t,e,i)=>{var n=i(82526);t.exports=function(t,e,i,r){for(var s=t[0],o=1;o<t.length;o++){var a=t[o];n(a,s,e,i,r),s=a}return t}},98429:(t,e,i)=>{var n=i(5334);t.exports=function(t,e,i,r,s){return n(t,"angle",e,i,r,s)}},1510:t=>{t.exports=function(t,e,i){for(var n=0;n<t.length;n++){var r=t[n];e.call(i,r)}return t}},92254:t=>{t.exports=function(t,e,i){void 0===i&&(i=0);for(var n=i;n<t.length;n++){var r=t[n],s=!0;for(var o in e)r[o]!==e[o]&&(s=!1);if(s)return r}return null}},80501:t=>{t.exports=function(t,e,i){void 0===i&&(i=0);for(var n=i;n<t.length;n++){var r=t[n],s=!0;for(var o in e)r[o]!==e[o]&&(s=!1);if(s)return r}return null}},65922:(t,e,i)=>{var n=i(4026),r=i(1174),s=i(81769),o=i(49035),a=new(i(24860))({sys:{queueDepthSort:o,events:{once:o}}},0,0,1,1);t.exports=function(t,e){void 0===e&&(e={});var i=e.hasOwnProperty("width"),o=e.hasOwnProperty("height"),h=s(e,"width",-1),u=s(e,"height",-1),l=s(e,"cellWidth",1),c=s(e,"cellHeight",l),d=s(e,"position",r.TOP_LEFT),p=s(e,"x",0),f=s(e,"y",0),m=0,v=0,g=h*l,y=u*c;a.setPosition(p,f),a.setSize(l,c);for(var _=0;_<t.length;_++)if(n(t[_],a,d),i&&-1===h)a.x+=l;else if(o&&-1===u)a.y+=c;else if(m+=l,a.x+=l,m===g&&(m=0,v+=c,a.x=p,a.y+=c,v===y))break;return t}},15085:(t,e,i)=>{var n=i(5334);t.exports=function(t,e,i,r,s){return n(t,"alpha",e,i,r,s)}},69585:(t,e,i)=>{var n=i(5334);t.exports=function(t,e,i,r,s){return n(t,"x",e,i,r,s)}},48618:(t,e,i)=>{var n=i(5334);t.exports=function(t,e,i,r,s,o,a){return null==i&&(i=e),n(t,"x",e,r,o,a),n(t,"y",i,s,o,a)}},90670:(t,e,i)=>{var n=i(5334);t.exports=function(t,e,i,r,s){return n(t,"y",e,i,r,s)}},11778:t=>{t.exports=function(t,e,i,n){void 0===i&&(i=0),void 0===n&&(n=6.28);for(var r=i,s=(n-i)/t.length,o=0;o<t.length;o++)t[o].x=e.x+e.radius*Math.cos(r),t[o].y=e.y+e.radius*Math.sin(r),r+=s;return t}},12844:t=>{t.exports=function(t,e,i,n){void 0===i&&(i=0),void 0===n&&(n=6.28);for(var r=i,s=(n-i)/t.length,o=e.width/2,a=e.height/2,h=0;h<t.length;h++)t[h].x=e.x+o*Math.cos(r),t[h].y=e.y+a*Math.sin(r),r+=s;return t}},75178:(t,e,i)=>{var n=i(63280);t.exports=function(t,e){for(var i=n(e,t.length),r=0;r<t.length;r++){var s=t[r],o=i[r];s.x=o.x,s.y=o.y}return t}},39663:(t,e,i)=>{var n=i(56080),r=i(52521),s=i(90387);t.exports=function(t,e,i){void 0===i&&(i=0);var o=n(e,!1,t.length);i>0?r(o,i):i<0&&s(o,Math.abs(i));for(var a=0;a<t.length;a++)t[a].x=o[a].x,t[a].y=o[a].y;return t}},53040:(t,e,i)=>{var n=i(25501);t.exports=function(t,e,i){var r=n({x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2},i),s=n({x1:e.x2,y1:e.y2,x2:e.x3,y2:e.y3},i),o=n({x1:e.x3,y1:e.y3,x2:e.x1,y2:e.y1},i);r.pop(),s.pop(),o.pop();for(var a=(r=r.concat(s,o)).length/t.length,h=0,u=0;u<t.length;u++){var l=t[u],c=r[Math.floor(h)];l.x=c.x,l.y=c.y,h+=a}return t}},85272:t=>{t.exports=function(t,e,i){for(var n=0;n<t.length;n++)t[n].anims.play(e,i);return t}},5334:t=>{t.exports=function(t,e,i,n,r,s){var o;void 0===n&&(n=0),void 0===r&&(r=0),void 0===s&&(s=1);var a=0,h=t.length;if(1===s)for(o=r;o<h;o++)t[o][e]+=i+a*n,a++;else for(o=r;o>=0;o--)t[o][e]+=i+a*n,a++;return t}},3224:t=>{t.exports=function(t,e,i,n,r,s){var o;void 0===n&&(n=0),void 0===r&&(r=0),void 0===s&&(s=1);var a=0,h=t.length;if(1===s)for(o=r;o<h;o++)t[o][e]=i+a*n,a++;else for(o=r;o>=0;o--)t[o][e]=i+a*n,a++;return t}},59192:(t,e,i)=>{var n=i(49642);t.exports=function(t,e){for(var i=0;i<t.length;i++)n(e,t[i]);return t}},79532:(t,e,i)=>{var n=i(6129);t.exports=function(t,e){for(var i=0;i<t.length;i++)n(e,t[i]);return t}},40971:(t,e,i)=>{var n=i(89357);t.exports=function(t,e){for(var i=0;i<t.length;i++)n(e,t[i]);return t}},88694:(t,e,i)=>{var n=i(69633);t.exports=function(t,e){for(var i=0;i<t.length;i++)n(e,t[i]);return t}},66381:(t,e,i)=>{var n=i(40471);t.exports=function(t,e){for(var i=0;i<t.length;i++)n(e,t[i]);return t}},68242:(t,e,i)=>{var n=i(5334);t.exports=function(t,e,i,r,s){return n(t,"rotation",e,i,r,s)}},86231:(t,e,i)=>{var n=i(81771),r=i(73587);t.exports=function(t,e,i){for(var s=e.x,o=e.y,a=0;a<t.length;a++){var h=t[a];n(h,s,o,i,Math.max(1,r(h.x,h.y,s,o)))}return t}},81453:(t,e,i)=>{var n=i(81771);t.exports=function(t,e,i,r){var s=e.x,o=e.y;if(0===r)return t;for(var a=0;a<t.length;a++)n(t[a],s,o,i,r);return t}},11319:(t,e,i)=>{var n=i(5334);t.exports=function(t,e,i,r,s){return n(t,"scaleX",e,i,r,s)}},31485:(t,e,i)=>{var n=i(5334);t.exports=function(t,e,i,r,s,o,a){return null==i&&(i=e),n(t,"scaleX",e,r,o,a),n(t,"scaleY",i,s,o,a)}},19366:(t,e,i)=>{var n=i(5334);t.exports=function(t,e,i,r,s){return n(t,"scaleY",e,i,r,s)}},87583:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s){return n(t,"alpha",e,i,r,s)}},18701:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r){return n(t,"blendMode",e,0,i,r)}},85288:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s){return n(t,"depth",e,i,r,s)}},91709:t=>{t.exports=function(t,e,i){for(var n=0;n<t.length;n++)t[n].setInteractive(e,i);return t}},21464:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s,o,a){return null==i&&(i=e),n(t,"originX",e,r,o,a),n(t,"originY",i,s,o,a)}},78976:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s){return n(t,"rotation",e,i,r,s)}},29437:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s,o,a){return null==i&&(i=e),n(t,"scaleX",e,r,o,a),n(t,"scaleY",i,s,o,a)}},43709:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s){return n(t,"scaleX",e,i,r,s)}},95833:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s){return n(t,"scaleY",e,i,r,s)}},43795:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s,o,a){return null==i&&(i=e),n(t,"scrollFactorX",e,r,o,a),n(t,"scrollFactorY",i,s,o,a)}},14586:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s){return n(t,"scrollFactorX",e,i,r,s)}},8186:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s){return n(t,"scrollFactorY",e,i,r,s)}},47939:t=>{t.exports=function(t,e,i,n,r){for(var s=0;s<t.length;s++)t[s].setTint(e,i,n,r);return t}},98344:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r){return n(t,"visible",e,0,i,r)}},3956:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s){return n(t,"x",e,i,r,s)}},78511:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s,o,a){return null==i&&(i=e),n(t,"x",e,r,o,a),n(t,"y",i,s,o,a)}},2758:(t,e,i)=>{var n=i(3224);t.exports=function(t,e,i,r,s){return n(t,"y",e,i,r,s)}},76740:(t,e,i)=>{var n=i(57148);t.exports=function(t,e,i,r,s){var o,a,h,u,l,c;if(void 0===r&&(r=0),void 0===s&&(s=new n),t.length>1)if(0===r){var d=t.length-1;for(o=t[d].x,a=t[d].y,h=d-1;h>=0;h--)u=(c=t[h]).x,l=c.y,c.x=o,c.y=a,o=u,a=l;t[d].x=e,t[d].y=i}else{for(o=t[0].x,a=t[0].y,h=1;h<t.length;h++)u=(c=t[h]).x,l=c.y,c.x=o,c.y=a,o=u,a=l;t[0].x=e,t[0].y=i}else o=t[0].x,a=t[0].y,t[0].x=e,t[0].y=i;return s.x=o,s.y=a,s}},94020:(t,e,i)=>{var n=i(84851);t.exports=function(t){return n(t)}},62946:(t,e,i)=>{var n=i(7695);t.exports=function(t,e,i,r,s){void 0===s&&(s=!1);var o,a=Math.abs(r-i)/t.length;if(s)for(o=0;o<t.length;o++)t[o][e]+=n(o*a,i,r);else for(o=0;o<t.length;o++)t[o][e]=n(o*a,i,r);return t}},85997:(t,e,i)=>{var n=i(83088);t.exports=function(t,e,i,r,s){void 0===s&&(s=!1);var o,a=Math.abs(r-i)/t.length;if(s)for(o=0;o<t.length;o++)t[o][e]+=n(o*a,i,r);else for(o=0;o<t.length;o++)t[o][e]=n(o*a,i,r);return t}},50312:t=>{t.exports=function(t,e,i,n,r){void 0===r&&(r=!1);var s,o=Math.abs(n-i)/t.length;if(r)for(s=0;s<t.length;s++)t[s][e]+=s*o+i;else for(s=0;s<t.length;s++)t[s][e]=s*o+i;return t}},37442:t=>{t.exports=function(t){for(var e=0;e<t.length;e++)t[e].visible=!t[e].visible;return t}},12131:(t,e,i)=>{var n=i(62951);t.exports=function(t,e,i){void 0===i&&(i=0);for(var r=0;r<t.length;r++){var s=t[r];s.x=n(s.x,e.left-i,e.right+i),s.y=n(s.y,e.top-i,e.bottom+i)}return t}},5490:(t,e,i)=>{t.exports={AlignTo:i(75423),Angle:i(98429),Call:i(1510),GetFirst:i(92254),GetLast:i(80501),GridAlign:i(65922),IncAlpha:i(15085),IncX:i(69585),IncXY:i(48618),IncY:i(90670),PlaceOnCircle:i(11778),PlaceOnEllipse:i(12844),PlaceOnLine:i(75178),PlaceOnRectangle:i(39663),PlaceOnTriangle:i(53040),PlayAnimation:i(85272),PropertyValueInc:i(5334),PropertyValueSet:i(3224),RandomCircle:i(59192),RandomEllipse:i(79532),RandomLine:i(40971),RandomRectangle:i(88694),RandomTriangle:i(66381),Rotate:i(68242),RotateAround:i(86231),RotateAroundDistance:i(81453),ScaleX:i(11319),ScaleXY:i(31485),ScaleY:i(19366),SetAlpha:i(87583),SetBlendMode:i(18701),SetDepth:i(85288),SetHitArea:i(91709),SetOrigin:i(21464),SetRotation:i(78976),SetScale:i(29437),SetScaleX:i(43709),SetScaleY:i(95833),SetScrollFactor:i(43795),SetScrollFactorX:i(14586),SetScrollFactorY:i(8186),SetTint:i(47939),SetVisible:i(98344),SetX:i(3956),SetXY:i(78511),SetY:i(2758),ShiftPosition:i(76740),Shuffle:i(94020),SmootherStep:i(85997),SmoothStep:i(62946),Spread:i(50312),ToggleVisible:i(37442),WrapInRectangle:i(12131)}},78010:(t,e,i)=>{var n=i(90487),r=i(47379),s=i(17168),o=i(31045),a=i(87559),h=i(68463),u=i(86652),l=new r({Extends:s,initialize:function(t,e,i){s.call(this),this.manager=t,this.key=e,this.type="frame",this.frames=this.getFrames(t.textureManager,u(i,"frames",[]),u(i,"defaultTextureKey",null)),this.frameRate=u(i,"frameRate",null),this.duration=u(i,"duration",null),null===this.duration&&null===this.frameRate?(this.frameRate=24,this.duration=this.frameRate/this.frames.length*1e3):this.duration&&null===this.frameRate?this.frameRate=this.frames.length/(this.duration/1e3):this.duration=this.frames.length/this.frameRate*1e3,this.msPerFrame=1e3/this.frameRate,this.skipMissedFrames=u(i,"skipMissedFrames",!0),this.delay=u(i,"delay",0),this.repeat=u(i,"repeat",0),this.repeatDelay=u(i,"repeatDelay",0),this.yoyo=u(i,"yoyo",!1),this.showOnStart=u(i,"showOnStart",!1),this.hideOnComplete=u(i,"hideOnComplete",!1),this.paused=!1,this.manager.on(o.PAUSE_ALL,this.pause,this),this.manager.on(o.RESUME_ALL,this.resume,this)},addFrame:function(t){return this.addFrameAt(this.frames.length,t)},addFrameAt:function(t,e){var i=this.getFrames(this.manager.textureManager,e);if(i.length>0){if(0===t)this.frames=i.concat(this.frames);else if(t===this.frames.length)this.frames=this.frames.concat(i);else{var n=this.frames.slice(0,t),r=this.frames.slice(t);this.frames=n.concat(i,r)}this.updateFrameSequence()}return this},checkFrame:function(t){return t>=0&&t<this.frames.length},completeAnimation:function(t){this.hideOnComplete&&(t.parent.visible=!1),t.stop()},getFirstTick:function(t,e){void 0===e&&(e=!0),t.accumulator=0,t.nextTick=t.msPerFrame+t.currentFrame.duration,e&&(t.nextTick+=t._delay)},getFrameAt:function(t){return this.frames[t]},getFrames:function(t,e,i){var n,r,s,o,a=[],l=1;if("string"==typeof e){o=e;var c=t.get(o).getFrameNames();e=[],c.forEach((function(t,i){e.push({key:o,frame:i})}))}if(!Array.isArray(e)||0===e.length)return a;for(s=0;s<e.length;s++){var d=e[s],p=u(d,"key",i);if(p){var f=u(d,"frame",0),m=t.getFrame(p,f);(r=new h(p,f,l,m)).duration=u(d,"duration",0),r.isFirst=!n,n&&(n.nextFrame=r,r.prevFrame=n),a.push(r),n=r,l++}}if(a.length>0){r.isLast=!0,r.nextFrame=a[0],a[0].prevFrame=r;var v=1/(a.length-1);for(s=0;s<a.length;s++)a[s].progress=s*v}return a},getNextTick:function(t){t.accumulator-=t.nextTick,t.nextTick=t.msPerFrame+t.currentFrame.duration},load:function(t,e){e>=this.frames.length&&(e=0),t.currentAnim!==this&&(t.currentAnim=this,t.frameRate=this.frameRate,t.duration=this.duration,t.msPerFrame=this.msPerFrame,t.skipMissedFrames=this.skipMissedFrames,t._delay=this.delay,t._repeat=this.repeat,t._repeatDelay=this.repeatDelay,t._yoyo=this.yoyo);var i=this.frames[e];0!==e||t.forward||(i=this.getLastFrame()),t.updateFrame(i)},getFrameByProgress:function(t){return t=n(t,0,1),a(t,this.frames,"progress")},nextFrame:function(t){var e=t.currentFrame;e.isLast?t._yoyo?this.handleYoyoFrame(t,!1):t.repeatCounter>0?t._reverse&&t.forward?t.forward=!1:this.repeatAnimation(t):this.completeAnimation(t):this.updateAndGetNextTick(t,e.nextFrame)},handleYoyoFrame:function(t,e){if(e||(e=!1),t._reverse===!e&&t.repeatCounter>0)return t._repeatDelay&&!t.pendingRepeat||(t.forward=e),void this.repeatAnimation(t);if(t._reverse===e||0!==t.repeatCounter){t.forward=e;var i=e?t.currentFrame.nextFrame:t.currentFrame.prevFrame;this.updateAndGetNextTick(t,i)}else this.completeAnimation(t)},getLastFrame:function(){return this.frames[this.frames.length-1]},previousFrame:function(t){var e=t.currentFrame;e.isFirst?t._yoyo?this.handleYoyoFrame(t,!0):t.repeatCounter>0?t._reverse&&!t.forward?(t.currentFrame=this.getLastFrame(),this.repeatAnimation(t)):(t.forward=!0,this.repeatAnimation(t)):this.completeAnimation(t):this.updateAndGetNextTick(t,e.prevFrame)},updateAndGetNextTick:function(t,e){t.updateFrame(e),this.getNextTick(t)},removeFrame:function(t){var e=this.frames.indexOf(t);return-1!==e&&this.removeFrameAt(e),this},removeFrameAt:function(t){return this.frames.splice(t,1),this.updateFrameSequence(),this},repeatAnimation:function(t){if(2===t._pendingStop)return this.completeAnimation(t);if(t._repeatDelay>0&&!1===t.pendingRepeat)t.pendingRepeat=!0,t.accumulator-=t.nextTick,t.nextTick+=t._repeatDelay;else if(t.repeatCounter--,t.updateFrame(t.currentFrame[t.forward?"nextFrame":"prevFrame"]),t.isPlaying){this.getNextTick(t),t.pendingRepeat=!1;var e=t.currentFrame,i=t.parent;this.emit(o.ANIMATION_REPEAT,this,e),i.emit(o.SPRITE_ANIMATION_KEY_REPEAT+this.key,this,e,t.repeatCounter,i),i.emit(o.SPRITE_ANIMATION_REPEAT,this,e,t.repeatCounter,i)}},setFrame:function(t){t.forward?this.nextFrame(t):this.previousFrame(t)},toJSON:function(){var t={key:this.key,type:this.type,frames:[],frameRate:this.frameRate,duration:this.duration,skipMissedFrames:this.skipMissedFrames,delay:this.delay,repeat:this.repeat,repeatDelay:this.repeatDelay,yoyo:this.yoyo,showOnStart:this.showOnStart,hideOnComplete:this.hideOnComplete};return this.frames.forEach((function(e){t.frames.push(e.toJSON())})),t},updateFrameSequence:function(){for(var t,e=this.frames.length,i=1/(e-1),n=0;n<e;n++)(t=this.frames[n]).index=n+1,t.isFirst=!1,t.isLast=!1,t.progress=n*i,0===n?(t.isFirst=!0,1===e?(t.isLast=!0,t.nextFrame=t,t.prevFrame=t):(t.isLast=!1,t.prevFrame=this.frames[e-1],t.nextFrame=this.frames[n+1])):n===e-1&&e>1?(t.isLast=!0,t.prevFrame=this.frames[e-2],t.nextFrame=this.frames[0]):e>1&&(t.prevFrame=this.frames[n-1],t.nextFrame=this.frames[n+1]);return this},pause:function(){return this.paused=!0,this},resume:function(){return this.paused=!1,this},destroy:function(){this.removeAllListeners(),this.manager.off(o.PAUSE_ALL,this.pause,this),this.manager.off(o.RESUME_ALL,this.resume,this),this.manager.remove(this.key);for(var t=0;t<this.frames.length;t++)this.frames[t].destroy();this.frames=[],this.manager=null}});t.exports=l},68463:(t,e,i)=>{var n=new(i(47379))({initialize:function(t,e,i,n){this.textureKey=t,this.textureFrame=e,this.index=i,this.frame=n,this.isFirst=!1,this.isLast=!1,this.prevFrame=null,this.nextFrame=null,this.duration=0,this.progress=0},toJSON:function(){return{key:this.textureKey,frame:this.textureFrame,duration:this.duration}},destroy:function(){this.frame=void 0}});t.exports=n},32472:(t,e,i)=>{var n=i(78010),r=i(47379),s=i(25094),o=i(17168),a=i(31045),h=i(80827),u=i(86652),l=i(10872),c=new r({Extends:o,initialize:function(t){o.call(this),this.game=t,this.textureManager=null,this.globalTimeScale=1,this.anims=new s,this.paused=!1,this.name="AnimationManager",t.events.once(h.BOOT,this.boot,this)},boot:function(){this.textureManager=this.game.textures,this.game.events.once(h.DESTROY,this.destroy,this)},add:function(t,e){return this.anims.has(t)?(console.warn("Animation key exists: "+t),this):(e.key=t,this.anims.set(t,e),this.emit(a.ADD_ANIMATION,t,e),this)},exists:function(t){return this.anims.has(t)},create:function(t){var e=t.key,i=!1;return e&&((i=this.get(e))||(i=new n(this,e,t),this.anims.set(e,i),this.emit(a.ADD_ANIMATION,e,i))),i},fromJSON:function(t,e){void 0===e&&(e=!1),e&&this.anims.clear(),"string"==typeof t&&(t=JSON.parse(t));var i=[];if(t.hasOwnProperty("anims")&&Array.isArray(t.anims)){for(var n=0;n<t.anims.length;n++)i.push(this.create(t.anims[n]));t.hasOwnProperty("globalTimeScale")&&(this.globalTimeScale=t.globalTimeScale)}else t.hasOwnProperty("key")&&"frame"===t.type&&i.push(this.create(t));return i},generateFrameNames:function(t,e){var i=u(e,"prefix",""),n=u(e,"start",0),r=u(e,"end",0),s=u(e,"suffix",""),o=u(e,"zeroPad",0),a=u(e,"outputArray",[]),h=u(e,"frames",!1),c=this.textureManager.get(t);if(!c)return a;var d,p,f=n<r?1:-1;if(r+=f,e)if(Array.isArray(h))for(d=0;d<h.length;d++)p=i+l(h[d],o,"0",1)+s,c.has(p)&&a.push({key:t,frame:p});else for(d=n;d!==r;d+=f)p=i+l(d,o,"0",1)+s,c.has(p)&&a.push({key:t,frame:p});else for(h=c.getFrameNames(),d=0;d<h.length;d++)a.push({key:t,frame:h[d]});return a},generateFrameNumbers:function(t,e){var i,n=u(e,"start",0),r=u(e,"end",-1),s=u(e,"first",!1),o=u(e,"outputArray",[]),a=u(e,"frames",!1),h=this.textureManager.get(t);if(!h)return o;if(s&&h.has(s)&&o.push({key:t,frame:s}),Array.isArray(a))for(i=0;i<a.length;i++)h.has(a[i])&&o.push({key:t,frame:a[i]});else{-1===r&&(r=h.frameTotal);var l=n<r?1:-1;for(r+=l,i=n;i!==r;i+=l)h.has(i)&&o.push({key:t,frame:i})}return o},get:function(t){return this.anims.get(t)},load:function(t,e,i){var n=this.get(e);return n?n.load(t,i):console.warn("Missing animation: "+e),t},pauseAll:function(){return this.paused||(this.paused=!0,this.emit(a.PAUSE_ALL)),this},play:function(t,e){if(Array.isArray(e)||(e=[e]),!this.get(t))return this;for(var i=0;i<e.length;i++)e[i].anims.play(t);return this},remove:function(t){var e=this.get(t);return e&&(this.emit(a.REMOVE_ANIMATION,t,e),this.anims.delete(t)),e},resumeAll:function(){return this.paused&&(this.paused=!1,this.emit(a.RESUME_ALL)),this},staggerPlay:function(t,e,i){if(void 0===i&&(i=0),Array.isArray(e)||(e=[e]),!this.get(t))return this;for(var n=0;n<e.length;n++)e[n].anims.delayedPlay(i*n,t);return this},toJSON:function(t){var e={anims:[],globalTimeScale:this.globalTimeScale};return void 0!==t&&""!==t?e.anims.push(this.anims.get(t).toJSON()):this.anims.each((function(t,i){e.anims.push(i.toJSON())})),e},destroy:function(){this.anims.clear(),this.textureManager=null,this.game=null}});t.exports=c},80052:t=>{t.exports="add"},19926:t=>{t.exports="complete"},3768:t=>{t.exports="repeat"},59968:t=>{t.exports="restart"},44563:t=>{t.exports="start"},99802:t=>{t.exports="pauseall"},80380:t=>{t.exports="remove"},94711:t=>{t.exports="resumeall"},96903:t=>{t.exports="animationcomplete"},82342:t=>{t.exports="animationcomplete-"},21379:t=>{t.exports="animationrepeat-"},93167:t=>{t.exports="animationrestart-"},75002:t=>{t.exports="animationstart-"},75226:t=>{t.exports="animationupdate-"},65410:t=>{t.exports="animationrepeat"},8862:t=>{t.exports="animationrestart"},26627:t=>{t.exports="animationstart"},1379:t=>{t.exports="animationupdate"},31045:(t,e,i)=>{t.exports={ADD_ANIMATION:i(80052),ANIMATION_COMPLETE:i(19926),ANIMATION_REPEAT:i(3768),ANIMATION_RESTART:i(59968),ANIMATION_START:i(44563),PAUSE_ALL:i(99802),REMOVE_ANIMATION:i(80380),RESUME_ALL:i(94711),SPRITE_ANIMATION_COMPLETE:i(96903),SPRITE_ANIMATION_KEY_COMPLETE:i(82342),SPRITE_ANIMATION_KEY_REPEAT:i(21379),SPRITE_ANIMATION_KEY_RESTART:i(93167),SPRITE_ANIMATION_KEY_START:i(75002),SPRITE_ANIMATION_KEY_UPDATE:i(75226),SPRITE_ANIMATION_REPEAT:i(65410),SPRITE_ANIMATION_RESTART:i(8862),SPRITE_ANIMATION_START:i(26627),SPRITE_ANIMATION_UPDATE:i(1379)}},53781:(t,e,i)=>{t.exports={Animation:i(78010),AnimationFrame:i(68463),AnimationManager:i(32472),Events:i(31045)}},65462:(t,e,i)=>{var n=i(47379),r=i(25094),s=i(17168),o=i(93887),a=new n({initialize:function(){this.entries=new r,this.events=new s},add:function(t,e){return this.entries.set(t,e),this.events.emit(o.ADD,this,t,e),this},has:function(t){return this.entries.has(t)},exists:function(t){return this.entries.has(t)},get:function(t){return this.entries.get(t)},remove:function(t){var e=this.get(t);return e&&(this.entries.delete(t),this.events.emit(o.REMOVE,this,t,e.data)),this},getKeys:function(){return this.entries.keys()},destroy:function(){this.entries.clear(),this.events.removeAllListeners(),this.entries=null,this.events=null}});t.exports=a},27378:(t,e,i)=>{var n=i(65462),r=i(47379),s=i(80827),o=new r({initialize:function(t){this.game=t,this.binary=new n,this.bitmapFont=new n,this.json=new n,this.physics=new n,this.shader=new n,this.audio=new n,this.video=new n,this.text=new n,this.html=new n,this.obj=new n,this.tilemap=new n,this.xml=new n,this.custom={},this.game.events.once(s.DESTROY,this.destroy,this)},addCustom:function(t){return this.custom.hasOwnProperty(t)||(this.custom[t]=new n),this.custom[t]},destroy:function(){for(var t=["binary","bitmapFont","json","physics","shader","audio","video","text","html","obj","tilemap","xml"],e=0;e<t.length;e++)this[t[e]].destroy(),this[t[e]]=null;for(var i in this.custom)this.custom[i].destroy();this.custom=null,this.game=null}});t.exports=o},28994:t=>{t.exports="add"},36030:t=>{t.exports="remove"},93887:(t,e,i)=>{t.exports={ADD:i(28994),REMOVE:i(36030)}},95865:(t,e,i)=>{t.exports={BaseCache:i(65462),CacheManager:i(27378),Events:i(93887)}},22190:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(98436),o=i(17168),a=i(25920),h=i(38092),u=i(65492),l=i(64031),c=i(57148),d=new n({Extends:o,Mixins:[r.Alpha,r.Visible],initialize:function(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),o.call(this),this.scene,this.sceneManager,this.scaleManager,this.cameraManager,this.id=0,this.name="",this.resolution=1,this.roundPixels=!1,this.useBounds=!1,this.worldView=new h,this.dirty=!0,this._x=t,this._y=e,this._cx=0,this._cy=0,this._cw=0,this._ch=0,this._width=i,this._height=n,this._bounds=new h,this._scrollX=0,this._scrollY=0,this._zoom=1,this._rotation=0,this.matrix=new u,this.transparent=!0,this.backgroundColor=l("rgba(0,0,0,0)"),this.disableCull=!1,this.culledObjects=[],this.midPoint=new c(i/2,n/2),this.originX=.5,this.originY=.5,this._customViewport=!1,this.mask=null,this._maskCamera=null},setOrigin:function(t,e){return void 0===t&&(t=.5),void 0===e&&(e=t),this.originX=t,this.originY=e,this},getScroll:function(t,e,i){void 0===i&&(i=new c);var n=.5*this.width,r=.5*this.height;return i.x=t-n,i.y=e-r,this.useBounds&&(i.x=this.clampX(i.x),i.y=this.clampY(i.y)),i},centerOnX:function(t){var e=.5*this.width;return this.midPoint.x=t,this.scrollX=t-e,this.useBounds&&(this.scrollX=this.clampX(this.scrollX)),this},centerOnY:function(t){var e=.5*this.height;return this.midPoint.y=t,this.scrollY=t-e,this.useBounds&&(this.scrollY=this.clampY(this.scrollY)),this},centerOn:function(t,e){return this.centerOnX(t),this.centerOnY(e),this},centerToBounds:function(){if(this.useBounds){var t=this._bounds,e=.5*this.width,i=.5*this.height;this.midPoint.set(t.centerX,t.centerY),this.scrollX=t.centerX-e,this.scrollY=t.centerY-i}return this},centerToSize:function(){return this.scrollX=.5*this.width,this.scrollY=.5*this.height,this},cull:function(t){if(this.disableCull)return t;var e=this.matrix.matrix,i=e[0],n=e[1],r=e[2],s=e[3],o=i*s-n*r;if(!o)return t;var a=e[4],h=e[5],u=this.scrollX,l=this.scrollY,c=this.width,d=this.height,p=this.culledObjects,f=t.length;o=1/o,p.length=0;for(var m=0;m<f;++m){var v=t[m];if(v.hasOwnProperty("width")&&!v.parentContainer){var g=v.width,y=v.height,_=v.x-u*v.scrollFactorX-g*v.originX,x=v.y-l*v.scrollFactorY-y*v.originY,b=_*i+x*r+a,w=_*n+x*s+h,T=(_+g)*i+(x+y)*r+a,M=(_+g)*n+(x+y)*s+h,S=this.y,E=S+d,L=this.x;T>L&&b<L+c&&M>S&&w<E&&p.push(v)}else p.push(v)}return p},getWorldPoint:function(t,e,i){void 0===i&&(i=new c);var n=this.matrix.matrix,r=n[0],s=n[1],o=n[2],a=n[3],h=n[4],u=n[5],l=r*a-s*o;if(!l)return i.x=t,i.y=e,i;var d=a*(l=1/l),p=-s*l,f=-o*l,m=r*l,v=(o*u-a*h)*l,g=(s*h-r*u)*l,y=Math.cos(this.rotation),_=Math.sin(this.rotation),x=this.zoom,b=this.resolution,w=this.scrollX,T=this.scrollY,M=t+(w*y-T*_)*x,S=e+(w*_+T*y)*x;return i.x=(M*d+S*f)*b+v,i.y=(M*p+S*m)*b+g,i},ignore:function(t){var e=this.id;Array.isArray(t)||(t=[t]);for(var i=0;i<t.length;i++){var n=t[i];Array.isArray(n)?this.ignore(n):n.isParent?this.ignore(n.getChildren()):n.cameraFilter|=e}return this},preRender:function(t){var e=this.width,i=this.height,n=.5*e,r=.5*i,s=this.zoom*t,o=this.matrix,a=e*this.originX,h=i*this.originY,u=this.scrollX,l=this.scrollY;this.useBounds&&(u=this.clampX(u),l=this.clampY(l)),this.roundPixels&&(a=Math.round(a),h=Math.round(h)),this.scrollX=u,this.scrollY=l;var c=u+n,d=l+r;this.midPoint.set(c,d);var p=e/s,f=i/s;this.worldView.setTo(c-p/2,d-f/2,p,f),o.applyITRS(this.x+a,this.y+h,this.rotation,s,s),o.translate(-a,-h)},clampX:function(t){var e=this._bounds,i=this.displayWidth,n=e.x+(i-this.width)/2,r=Math.max(n,n+e.width-i);return t<n?t=n:t>r&&(t=r),t},clampY:function(t){var e=this._bounds,i=this.displayHeight,n=e.y+(i-this.height)/2,r=Math.max(n,n+e.height-i);return t<n?t=n:t>r&&(t=r),t},removeBounds:function(){return this.useBounds=!1,this.dirty=!0,this._bounds.setEmpty(),this},setAngle:function(t){return void 0===t&&(t=0),this.rotation=s(t),this},setBackgroundColor:function(t){return void 0===t&&(t="rgba(0,0,0,0)"),this.backgroundColor=l(t),this.transparent=0===this.backgroundColor.alpha,this},setBounds:function(t,e,i,n,r){return void 0===r&&(r=!1),this._bounds.setTo(t,e,i,n),this.dirty=!0,this.useBounds=!0,r?this.centerToBounds():(this.scrollX=this.clampX(this.scrollX),this.scrollY=this.clampY(this.scrollY)),this},getBounds:function(t){void 0===t&&(t=new h);var e=this._bounds;return t.setTo(e.x,e.y,e.width,e.height),t},setName:function(t){return void 0===t&&(t=""),this.name=t,this},setPosition:function(t,e){return void 0===e&&(e=t),this.x=t,this.y=e,this},setRotation:function(t){return void 0===t&&(t=0),this.rotation=t,this},setRoundPixels:function(t){return this.roundPixels=t,this},setScene:function(t){this.scene&&this._customViewport&&this.sceneManager.customViewports--,this.scene=t;var e=t.sys;this.sceneManager=e.game.scene,this.scaleManager=e.scale,this.cameraManager=e.cameras;var i=this.scaleManager.resolution;return this.resolution=i,this._cx=this._x*i,this._cy=this._y*i,this._cw=this._width*i,this._ch=this._height*i,this.updateSystem(),this},setScroll:function(t,e){return void 0===e&&(e=t),this.scrollX=t,this.scrollY=e,this},setSize:function(t,e){return void 0===e&&(e=t),this.width=t,this.height=e,this},setViewport:function(t,e,i,n){return this.x=t,this.y=e,this.width=i,this.height=n,this},setZoom:function(t){return void 0===t&&(t=1),0===t&&(t=.001),this.zoom=t,this},setMask:function(t,e){return void 0===e&&(e=!0),this.mask=t,this._maskCamera=e?this.cameraManager.default:this,this},clearMask:function(t){return void 0===t&&(t=!1),t&&this.mask&&this.mask.destroy(),this.mask=null,this},toJSON:function(){var t={name:this.name,x:this.x,y:this.y,width:this.width,height:this.height,zoom:this.zoom,rotation:this.rotation,roundPixels:this.roundPixels,scrollX:this.scrollX,scrollY:this.scrollY,backgroundColor:this.backgroundColor.rgba};return this.useBounds&&(t.bounds={x:this._bounds.x,y:this._bounds.y,width:this._bounds.width,height:this._bounds.height}),t},update:function(){},updateSystem:function(){if(this.scaleManager){var t=0!==this._x||0!==this._y||this.scaleManager.width!==this._width||this.scaleManager.height!==this._height,e=this.sceneManager;t&&!this._customViewport?e.customViewports++:!t&&this._customViewport&&e.customViewports--,this.dirty=!0,this._customViewport=t}},destroy:function(){this.emit(a.DESTROY,this),this.removeAllListeners(),this.matrix.destroy(),this.culledObjects=[],this._customViewport&&this.sceneManager.customViewports--,this._bounds=null,this.scene=null,this.scaleManager=null,this.sceneManager=null,this.cameraManager=null},x:{get:function(){return this._x},set:function(t){this._x=t,this._cx=t*this.resolution,this.updateSystem()}},y:{get:function(){return this._y},set:function(t){this._y=t,this._cy=t*this.resolution,this.updateSystem()}},width:{get:function(){return this._width},set:function(t){this._width=t,this._cw=t*this.resolution,this.updateSystem()}},height:{get:function(){return this._height},set:function(t){this._height=t,this._ch=t*this.resolution,this.updateSystem()}},scrollX:{get:function(){return this._scrollX},set:function(t){this._scrollX=t,this.dirty=!0}},scrollY:{get:function(){return this._scrollY},set:function(t){this._scrollY=t,this.dirty=!0}},zoom:{get:function(){return this._zoom},set:function(t){this._zoom=t,this.dirty=!0}},rotation:{get:function(){return this._rotation},set:function(t){this._rotation=t,this.dirty=!0}},centerX:{get:function(){return this.x+.5*this.width}},centerY:{get:function(){return this.y+.5*this.height}},displayWidth:{get:function(){return this.width/this.zoom}},displayHeight:{get:function(){return this.height/this.zoom}}});t.exports=d},29854:(t,e,i)=>{var n=i(22190),r=i(89429),s=i(23389),o=i(90487),a=i(47379),h=i(23096),u=i(97061),l=i(57459),c=i(38092),d=i(57148),p=new a({Extends:n,Mixins:[h.Flip,h.Tint],initialize:function(t,e,i,r){n.call(this,t,e,i,r),this.inputEnabled=!0,this.fadeEffect=new u.Fade(this),this.flashEffect=new u.Flash(this),this.shakeEffect=new u.Shake(this),this.panEffect=new u.Pan(this),this.rotateToEffect=new u.RotateTo(this),this.zoomEffect=new u.Zoom(this),this.lerp=new d(1,1),this.followOffset=new d,this.deadzone=null,this._follow=null,this.renderToTexture=!1,this.renderToGame=!0,this.canvas=null,this.context=null,this.glTexture=null,this.framebuffer=null,this.pipeline=null},setRenderToTexture:function(t,e){void 0===e&&(e=!0);var i=this.scene.sys.game.renderer;return i.gl?(this.glTexture=i.createTextureFromSource(null,this.width,this.height,0),this.framebuffer=i.createFramebuffer(this.width,this.height,this.glTexture,!1)):(this.canvas=r.create2D(this,this.width,this.height),this.context=this.canvas.getContext("2d")),this.renderToTexture=!0,this.renderToGame=e,t&&this.setPipeline(t),this},setPipeline:function(t){if("string"==typeof t){var e=this.scene.sys.game.renderer;e.gl&&e.hasPipeline(t)&&(this.pipeline=e.getPipeline(t))}else this.pipeline=t;return this},clearRenderToTexture:function(){if(this.scene){var t=this.scene.sys.game.renderer;if(t)return t.gl?(this.framebuffer&&t.deleteFramebuffer(this.framebuffer),this.glTexture&&t.deleteTexture(this.glTexture),this.framebuffer=null,this.glTexture=null,this.pipeline=null):(r.remove(this),this.canvas=null,this.context=null),this.renderToTexture=!1,this}},setDeadzone:function(t,e){if(void 0===t)this.deadzone=null;else{if(this.deadzone?(this.deadzone.width=t,this.deadzone.height=e):this.deadzone=new c(0,0,t,e),this._follow){var i=this.width/2,n=this.height/2,r=this._follow.x-this.followOffset.x,o=this._follow.y-this.followOffset.y;this.midPoint.set(r,o),this.scrollX=r-i,this.scrollY=o-n}s(this.deadzone,this.midPoint.x,this.midPoint.y)}return this},fadeIn:function(t,e,i,n,r,s){return this.fadeEffect.start(!1,t,e,i,n,!0,r,s)},fadeOut:function(t,e,i,n,r,s){return this.fadeEffect.start(!0,t,e,i,n,!0,r,s)},fadeFrom:function(t,e,i,n,r,s,o){return this.fadeEffect.start(!1,t,e,i,n,r,s,o)},fade:function(t,e,i,n,r,s,o){return this.fadeEffect.start(!0,t,e,i,n,r,s,o)},flash:function(t,e,i,n,r,s,o){return this.flashEffect.start(t,e,i,n,r,s,o)},shake:function(t,e,i,n,r){return this.shakeEffect.start(t,e,i,n,r)},pan:function(t,e,i,n,r,s,o){return this.panEffect.start(t,e,i,n,r,s,o)},rotateTo:function(t,e,i,n,r,s,o){return this.rotateToEffect.start(t,e,i,n,r,s,o)},zoomTo:function(t,e,i,n,r,s){return this.zoomEffect.start(t,e,i,n,r,s)},preRender:function(t){var e=this.width,i=this.height,n=.5*e,r=.5*i,o=this.zoom*t,a=this.matrix,h=e*this.originX,u=i*this.originY,c=this._follow,d=this.deadzone,p=this.scrollX,f=this.scrollY;if(d&&s(d,this.midPoint.x,this.midPoint.y),c&&!this.panEffect.isRunning){var m=c.x-this.followOffset.x,v=c.y-this.followOffset.y;d?(m<d.x?p=l(p,p-(d.x-m),this.lerp.x):m>d.right&&(p=l(p,p+(m-d.right),this.lerp.x)),v<d.y?f=l(f,f-(d.y-v),this.lerp.y):v>d.bottom&&(f=l(f,f+(v-d.bottom),this.lerp.y))):(p=l(p,m-h,this.lerp.x),f=l(f,v-u,this.lerp.y))}this.useBounds&&(p=this.clampX(p),f=this.clampY(f)),this.roundPixels&&(h=Math.round(h),u=Math.round(u)),this.scrollX=p,this.scrollY=f;var g=p+n,y=f+r;this.midPoint.set(g,y);var _=e/o,x=i/o;this.worldView.setTo(g-_/2,y-x/2,_,x),a.applyITRS(this.x+h,this.y+u,this.rotation,o,o),a.translate(-h,-u),this.shakeEffect.preRender()},setLerp:function(t,e){return void 0===t&&(t=1),void 0===e&&(e=t),this.lerp.set(t,e),this},setFollowOffset:function(t,e){return void 0===t&&(t=0),void 0===e&&(e=0),this.followOffset.set(t,e),this},startFollow:function(t,e,i,n,r,s){void 0===e&&(e=!1),void 0===i&&(i=1),void 0===n&&(n=i),void 0===r&&(r=0),void 0===s&&(s=r),this._follow=t,this.roundPixels=e,i=o(i,0,1),n=o(n,0,1),this.lerp.set(i,n),this.followOffset.set(r,s);var a=this.width/2,h=this.height/2,u=t.x-r,l=t.y-s;return this.midPoint.set(u,l),this.scrollX=u-a,this.scrollY=l-h,this.useBounds&&(this.scrollX=this.clampX(this.scrollX),this.scrollY=this.clampY(this.scrollY)),this},stopFollow:function(){return this._follow=null,this},resetFX:function(){return this.rotateToEffect.reset(),this.panEffect.reset(),this.shakeEffect.reset(),this.flashEffect.reset(),this.fadeEffect.reset(),this},update:function(t,e){this.visible&&(this.rotateToEffect.update(t,e),this.panEffect.update(t,e),this.zoomEffect.update(t,e),this.shakeEffect.update(t,e),this.flashEffect.update(t,e),this.fadeEffect.update(t,e))},destroy:function(){this.clearRenderToTexture(),this.resetFX(),n.prototype.destroy.call(this),this._follow=null,this.deadzone=null}});t.exports=p},88063:(t,e,i)=>{var n=i(29854),r=i(47379),s=i(81769),o=i(50354),a=i(38593),h=i(66144),u=i(88637),l=new r({initialize:function(t){this.scene=t,this.systems=t.sys,this.roundPixels=t.sys.game.config.roundPixels,this.cameras=[],this.main,this.default,t.sys.events.once(u.BOOT,this.boot,this),t.sys.events.on(u.START,this.start,this)},boot:function(){var t=this.systems;t.settings.cameras?this.fromJSON(t.settings.cameras):this.add(),this.main=this.cameras[0],this.default=new n(0,0,t.scale.width,t.scale.height).setScene(this.scene),t.game.scale.on(h.RESIZE,this.onResize,this),this.systems.events.once(u.DESTROY,this.destroy,this)},start:function(){if(!this.main){var t=this.systems;t.settings.cameras?this.fromJSON(t.settings.cameras):this.add(),this.main=this.cameras[0]}var e=this.systems.events;e.on(u.UPDATE,this.update,this),e.once(u.SHUTDOWN,this.shutdown,this)},add:function(t,e,i,r,s,o){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=this.scene.sys.scale.width),void 0===r&&(r=this.scene.sys.scale.height),void 0===s&&(s=!1),void 0===o&&(o="");var a=new n(t,e,i,r);return a.setName(o),a.setScene(this.scene),a.setRoundPixels(this.roundPixels),a.id=this.getNextID(),this.cameras.push(a),s&&(this.main=a),a},addExisting:function(t,e){return void 0===e&&(e=!1),-1===this.cameras.indexOf(t)?(t.id=this.getNextID(),t.setRoundPixels(this.roundPixels),this.cameras.push(t),e&&(this.main=t),t):null},getNextID:function(){for(var t=this.cameras,e=1,i=0;i<32;i++){for(var n=!1,r=0;r<t.length;r++){var s=t[r];s&&s.id===e&&(n=!0)}if(!n)return e;e<<=1}return 0},getTotal:function(t){void 0===t&&(t=!1);for(var e=0,i=this.cameras,n=0;n<i.length;n++){var r=i[n];(!t||t&&r.visible)&&e++}return e},fromJSON:function(t){Array.isArray(t)||(t=[t]);for(var e=this.scene.sys.scale.width,i=this.scene.sys.scale.height,n=0;n<t.length;n++){var r=t[n],o=s(r,"x",0),a=s(r,"y",0),h=s(r,"width",e),u=s(r,"height",i),l=this.add(o,a,h,u);l.name=s(r,"name",""),l.zoom=s(r,"zoom",1),l.rotation=s(r,"rotation",0),l.scrollX=s(r,"scrollX",0),l.scrollY=s(r,"scrollY",0),l.roundPixels=s(r,"roundPixels",!1),l.visible=s(r,"visible",!0);var c=s(r,"backgroundColor",!1);c&&l.setBackgroundColor(c);var d=s(r,"bounds",null);if(d){var p=s(d,"x",0),f=s(d,"y",0),m=s(d,"width",e),v=s(d,"height",i);l.setBounds(p,f,m,v)}}return this},getCamera:function(t){for(var e=this.cameras,i=0;i<e.length;i++)if(e[i].name===t)return e[i];return null},getCamerasBelowPointer:function(t){for(var e=this.cameras,i=t.x,n=t.y,r=[],s=0;s<e.length;s++){var o=e[s];o.visible&&o.inputEnabled&&a(o,i,n)&&r.unshift(o)}return r},remove:function(t,e){void 0===e&&(e=!0),Array.isArray(t)||(t=[t]);for(var i=0,n=this.cameras,r=0;r<t.length;r++){var s=n.indexOf(t[r]);-1!==s&&(e&&n[s].destroy(),n.splice(s,1),i++)}return!this.main&&n[0]&&(this.main=n[0]),i},render:function(t,e,i){for(var n=this.scene,r=this.cameras,s=0;s<this.cameras.length;s++){var o=r[s];o.visible&&o.alpha>0&&(o.preRender(1),t.render(n,e,i,o))}},resetAll:function(){for(var t=0;t<this.cameras.length;t++)this.cameras[t].destroy();return this.cameras=[],this.main=this.add(),this.main},update:function(t,e){for(var i=0;i<this.cameras.length;i++)this.cameras[i].update(t,e)},onResize:function(t,e,i,n,r,s){for(var o=0;o<this.cameras.length;o++){var a=this.cameras[o];0===a._x&&0===a._y&&a._width===r&&a._height===s&&a.setSize(e.width,e.height)}},resize:function(t,e){for(var i=0;i<this.cameras.length;i++)this.cameras[i].setSize(t,e)},shutdown:function(){this.main=void 0;for(var t=0;t<this.cameras.length;t++)this.cameras[t].destroy();this.cameras=[];var e=this.systems.events;e.off(u.UPDATE,this.update,this),e.off(u.SHUTDOWN,this.shutdown,this)},destroy:function(){this.shutdown(),this.default.destroy(),this.scene.sys.events.off(u.START,this.start,this),this.scene=null,this.systems=null}});o.register("CameraManager",l,"cameras"),t.exports=l},89361:(t,e,i)=>{var n=i(90487),r=i(47379),s=i(25920),o=new r({initialize:function(t){this.camera=t,this.isRunning=!1,this.isComplete=!1,this.direction=!0,this.duration=0,this.red=0,this.green=0,this.blue=0,this.alpha=0,this.progress=0,this._elapsed=0,this._onUpdate,this._onUpdateScope},start:function(t,e,i,n,r,o,a,h){if(void 0===t&&(t=!0),void 0===e&&(e=1e3),void 0===i&&(i=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===o&&(o=!1),void 0===a&&(a=null),void 0===h&&(h=this.camera.scene),!o&&this.isRunning)return this.camera;this.isRunning=!0,this.isComplete=!1,this.duration=e,this.direction=t,this.progress=0,this.red=i,this.green=n,this.blue=r,this.alpha=t?Number.MIN_VALUE:1,this._elapsed=0,this._onUpdate=a,this._onUpdateScope=h;var u=t?s.FADE_OUT_START:s.FADE_IN_START;return this.camera.emit(u,this.camera,this,e,i,n,r),this.camera},update:function(t,e){this.isRunning&&(this._elapsed+=e,this.progress=n(this._elapsed/this.duration,0,1),this._onUpdate&&this._onUpdate.call(this._onUpdateScope,this.camera,this.progress),this._elapsed<this.duration?this.alpha=this.direction?this.progress:1-this.progress:(this.alpha=this.direction?1:0,this.effectComplete()))},postRenderCanvas:function(t){if(!this.isRunning&&!this.isComplete)return!1;var e=this.camera;return t.fillStyle="rgba("+this.red+","+this.green+","+this.blue+","+this.alpha+")",t.fillRect(e._cx,e._cy,e._cw,e._ch),!0},postRenderWebGL:function(t,e){if(!this.isRunning&&!this.isComplete)return!1;var i=this.camera,n=this.red/255,r=this.blue/255,s=this.green/255;return t.drawFillRect(i._cx,i._cy,i._cw,i._ch,e(n,s,r,1),this.alpha),!0},effectComplete:function(){this._onUpdate=null,this._onUpdateScope=null,this.isRunning=!1,this.isComplete=!0;var t=this.direction?s.FADE_OUT_COMPLETE:s.FADE_IN_COMPLETE;this.camera.emit(t,this.camera,this)},reset:function(){this.isRunning=!1,this.isComplete=!1,this._onUpdate=null,this._onUpdateScope=null},destroy:function(){this.reset(),this.camera=null}});t.exports=o},828:(t,e,i)=>{var n=i(90487),r=i(47379),s=i(25920),o=new r({initialize:function(t){this.camera=t,this.isRunning=!1,this.duration=0,this.red=0,this.green=0,this.blue=0,this.alpha=0,this.progress=0,this._elapsed=0,this._onUpdate,this._onUpdateScope},start:function(t,e,i,n,r,o,a){return void 0===t&&(t=250),void 0===e&&(e=255),void 0===i&&(i=255),void 0===n&&(n=255),void 0===r&&(r=!1),void 0===o&&(o=null),void 0===a&&(a=this.camera.scene),!r&&this.isRunning||(this.isRunning=!0,this.duration=t,this.progress=0,this.red=e,this.green=i,this.blue=n,this.alpha=1,this._elapsed=0,this._onUpdate=o,this._onUpdateScope=a,this.camera.emit(s.FLASH_START,this.camera,this,t,e,i,n)),this.camera},update:function(t,e){this.isRunning&&(this._elapsed+=e,this.progress=n(this._elapsed/this.duration,0,1),this._onUpdate&&this._onUpdate.call(this._onUpdateScope,this.camera,this.progress),this._elapsed<this.duration?this.alpha=1-this.progress:this.effectComplete())},postRenderCanvas:function(t){if(!this.isRunning)return!1;var e=this.camera;return t.fillStyle="rgba("+this.red+","+this.green+","+this.blue+","+this.alpha+")",t.fillRect(e._cx,e._cy,e._cw,e._ch),!0},postRenderWebGL:function(t,e){if(!this.isRunning)return!1;var i=this.camera,n=this.red/255,r=this.blue/255,s=this.green/255;return t.drawFillRect(i._cx,i._cy,i._cw,i._ch,e(n,s,r,1),this.alpha),!0},effectComplete:function(){this._onUpdate=null,this._onUpdateScope=null,this.isRunning=!1,this.camera.emit(s.FLASH_COMPLETE,this.camera,this)},reset:function(){this.isRunning=!1,this._onUpdate=null,this._onUpdateScope=null},destroy:function(){this.reset(),this.camera=null}});t.exports=o},19651:(t,e,i)=>{var n=i(90487),r=i(47379),s=i(21623),o=i(25920),a=i(57148),h=new r({initialize:function(t){this.camera=t,this.isRunning=!1,this.duration=0,this.source=new a,this.current=new a,this.destination=new a,this.ease,this.progress=0,this._elapsed=0,this._onUpdate,this._onUpdateScope},start:function(t,e,i,n,r,a,h){void 0===i&&(i=1e3),void 0===n&&(n=s.Linear),void 0===r&&(r=!1),void 0===a&&(a=null),void 0===h&&(h=this.camera.scene);var u=this.camera;return!r&&this.isRunning||(this.isRunning=!0,this.duration=i,this.progress=0,this.source.set(u.scrollX,u.scrollY),this.destination.set(t,e),u.getScroll(t,e,this.current),"string"==typeof n&&s.hasOwnProperty(n)?this.ease=s[n]:"function"==typeof n&&(this.ease=n),this._elapsed=0,this._onUpdate=a,this._onUpdateScope=h,this.camera.emit(o.PAN_START,this.camera,this,i,t,e)),u},update:function(t,e){if(this.isRunning){this._elapsed+=e;var i=n(this._elapsed/this.duration,0,1);this.progress=i;var r=this.camera;if(this._elapsed<this.duration){var s=this.ease(i);r.getScroll(this.destination.x,this.destination.y,this.current);var o=this.source.x+(this.current.x-this.source.x)*s,a=this.source.y+(this.current.y-this.source.y)*s;r.setScroll(o,a),this._onUpdate&&this._onUpdate.call(this._onUpdateScope,r,i,o,a)}else r.centerOn(this.destination.x,this.destination.y),this._onUpdate&&this._onUpdate.call(this._onUpdateScope,r,i,r.scrollX,r.scrollY),this.effectComplete()}},effectComplete:function(){this._onUpdate=null,this._onUpdateScope=null,this.isRunning=!1,this.camera.emit(o.PAN_COMPLETE,this.camera,this)},reset:function(){this.isRunning=!1,this._onUpdate=null,this._onUpdateScope=null},destroy:function(){this.reset(),this.camera=null,this.source=null,this.destination=null}});t.exports=h},97277:(t,e,i)=>{var n=i(90487),r=i(47379),s=i(25920),o=i(21623),a=new r({initialize:function(t){this.camera=t,this.isRunning=!1,this.duration=0,this.source=0,this.current=0,this.destination=0,this.ease,this.progress=0,this._elapsed=0,this._onUpdate,this._onUpdateScope,this.clockwise=!0,this.shortestPath=!1},start:function(t,e,i,n,r,a,h){void 0===i&&(i=1e3),void 0===n&&(n=o.Linear),void 0===r&&(r=!1),void 0===a&&(a=null),void 0===h&&(h=this.camera.scene),void 0===e&&(e=!1),this.shortestPath=e;var u=t;t<0?(u=-1*t,this.clockwise=!1):this.clockwise=!0;var l=360*Math.PI/180;u-=Math.floor(u/l)*l;var c=this.camera;if(!r&&this.isRunning)return c;if(this.isRunning=!0,this.duration=i,this.progress=0,this.source=c.rotation,this.destination=u,"string"==typeof n&&o.hasOwnProperty(n)?this.ease=o[n]:"function"==typeof n&&(this.ease=n),this._elapsed=0,this._onUpdate=a,this._onUpdateScope=h,this.shortestPath){var d=0,p=0;(d=this.destination>this.source?Math.abs(this.destination-this.source):Math.abs(this.destination+l)-this.source)<(p=this.source>this.destination?Math.abs(this.source-this.destination):Math.abs(this.source+l)-this.destination)?this.clockwise=!0:d>p&&(this.clockwise=!1)}return this.camera.emit(s.ROTATE_START,this.camera,this,i,u),c},update:function(t,e){if(this.isRunning){this._elapsed+=e;var i=n(this._elapsed/this.duration,0,1);this.progress=i;var r=this.camera;if(this._elapsed<this.duration){var s=this.ease(i);this.current=r.rotation;var o=0,a=360*Math.PI/180,h=this.destination,u=this.current;!1===this.clockwise&&(h=this.current,u=this.destination),o=h>=u?Math.abs(h-u):Math.abs(h+a)-u;var l=0;l=this.clockwise?r.rotation+o*s:r.rotation-o*s,r.rotation=l,this._onUpdate&&this._onUpdate.call(this._onUpdateScope,r,i,l)}else r.rotation=this.destination,this._onUpdate&&this._onUpdate.call(this._onUpdateScope,r,i,this.destination),this.effectComplete()}},effectComplete:function(){this._onUpdate=null,this._onUpdateScope=null,this.isRunning=!1,this.camera.emit(s.ROTATE_COMPLETE,this.camera,this)},reset:function(){this.isRunning=!1,this._onUpdate=null,this._onUpdateScope=null},destroy:function(){this.reset(),this.camera=null,this.source=null,this.destination=null}});t.exports=a},28350:(t,e,i)=>{var n=i(90487),r=i(47379),s=i(25920),o=i(57148),a=new r({initialize:function(t){this.camera=t,this.isRunning=!1,this.duration=0,this.intensity=new o,this.progress=0,this._elapsed=0,this._offsetX=0,this._offsetY=0,this._onUpdate,this._onUpdateScope},start:function(t,e,i,n,r){return void 0===t&&(t=100),void 0===e&&(e=.05),void 0===i&&(i=!1),void 0===n&&(n=null),void 0===r&&(r=this.camera.scene),!i&&this.isRunning||(this.isRunning=!0,this.duration=t,this.progress=0,"number"==typeof e?this.intensity.set(e):this.intensity.set(e.x,e.y),this._elapsed=0,this._offsetX=0,this._offsetY=0,this._onUpdate=n,this._onUpdateScope=r,this.camera.emit(s.SHAKE_START,this.camera,this,t,e)),this.camera},preRender:function(){this.isRunning&&this.camera.matrix.translate(this._offsetX,this._offsetY)},update:function(t,e){if(this.isRunning)if(this._elapsed+=e,this.progress=n(this._elapsed/this.duration,0,1),this._onUpdate&&this._onUpdate.call(this._onUpdateScope,this.camera,this.progress),this._elapsed<this.duration){var i=this.intensity,r=this.camera._cw,s=this.camera._ch,o=this.camera.zoom;this._offsetX=(Math.random()*i.x*r*2-i.x*r)*o,this._offsetY=(Math.random()*i.y*s*2-i.y*s)*o,this.camera.roundPixels&&(this._offsetX=Math.round(this._offsetX),this._offsetY=Math.round(this._offsetY))}else this.effectComplete()},effectComplete:function(){this._offsetX=0,this._offsetY=0,this._onUpdate=null,this._onUpdateScope=null,this.isRunning=!1,this.camera.emit(s.SHAKE_COMPLETE,this.camera,this)},reset:function(){this.isRunning=!1,this._offsetX=0,this._offsetY=0,this._onUpdate=null,this._onUpdateScope=null},destroy:function(){this.reset(),this.camera=null,this.intensity=null}});t.exports=a},34879:(t,e,i)=>{var n=i(90487),r=i(47379),s=i(21623),o=i(25920),a=new r({initialize:function(t){this.camera=t,this.isRunning=!1,this.duration=0,this.source=1,this.destination=1,this.ease,this.progress=0,this._elapsed=0,this._onUpdate,this._onUpdateScope},start:function(t,e,i,n,r,a){void 0===e&&(e=1e3),void 0===i&&(i=s.Linear),void 0===n&&(n=!1),void 0===r&&(r=null),void 0===a&&(a=this.camera.scene);var h=this.camera;return!n&&this.isRunning||(this.isRunning=!0,this.duration=e,this.progress=0,this.source=h.zoom,this.destination=t,"string"==typeof i&&s.hasOwnProperty(i)?this.ease=s[i]:"function"==typeof i&&(this.ease=i),this._elapsed=0,this._onUpdate=r,this._onUpdateScope=a,this.camera.emit(o.ZOOM_START,this.camera,this,e,t)),h},update:function(t,e){this.isRunning&&(this._elapsed+=e,this.progress=n(this._elapsed/this.duration,0,1),this._elapsed<this.duration?(this.camera.zoom=this.source+(this.destination-this.source)*this.ease(this.progress),this._onUpdate&&this._onUpdate.call(this._onUpdateScope,this.camera,this.progress,this.camera.zoom)):(this.camera.zoom=this.destination,this._onUpdate&&this._onUpdate.call(this._onUpdateScope,this.camera,this.progress,this.destination),this.effectComplete()))},effectComplete:function(){this._onUpdate=null,this._onUpdateScope=null,this.isRunning=!1,this.camera.emit(o.ZOOM_COMPLETE,this.camera,this)},reset:function(){this.isRunning=!1,this._onUpdate=null,this._onUpdateScope=null},destroy:function(){this.reset(),this.camera=null}});t.exports=a},97061:(t,e,i)=>{t.exports={Fade:i(89361),Flash:i(828),Pan:i(19651),Shake:i(28350),RotateTo:i(97277),Zoom:i(34879)}},66010:t=>{t.exports="cameradestroy"},49476:t=>{t.exports="camerafadeincomplete"},48674:t=>{t.exports="camerafadeinstart"},56369:t=>{t.exports="camerafadeoutcomplete"},74485:t=>{t.exports="camerafadeoutstart"},5195:t=>{t.exports="cameraflashcomplete"},51676:t=>{t.exports="cameraflashstart"},30223:t=>{t.exports="camerapancomplete"},37340:t=>{t.exports="camerapanstart"},14051:t=>{t.exports="postrender"},92241:t=>{t.exports="prerender"},21253:t=>{t.exports="camerarotatecomplete"},95749:t=>{t.exports="camerarotatestart"},39031:t=>{t.exports="camerashakecomplete"},43081:t=>{t.exports="camerashakestart"},10058:t=>{t.exports="camerazoomcomplete"},74685:t=>{t.exports="camerazoomstart"},25920:(t,e,i)=>{t.exports={DESTROY:i(66010),FADE_IN_COMPLETE:i(49476),FADE_IN_START:i(48674),FADE_OUT_COMPLETE:i(56369),FADE_OUT_START:i(74485),FLASH_COMPLETE:i(5195),FLASH_START:i(51676),PAN_COMPLETE:i(30223),PAN_START:i(37340),POST_RENDER:i(14051),PRE_RENDER:i(92241),ROTATE_COMPLETE:i(21253),ROTATE_START:i(95749),SHAKE_COMPLETE:i(39031),SHAKE_START:i(43081),ZOOM_COMPLETE:i(10058),ZOOM_START:i(74685)}},73013:(t,e,i)=>{t.exports={Camera:i(29854),BaseCamera:i(22190),CameraManager:i(88063),Effects:i(97061),Events:i(25920)}},87705:(t,e,i)=>{var n=i(47379),r=i(86652),s=new n({initialize:function(t){this.camera=r(t,"camera",null),this.left=r(t,"left",null),this.right=r(t,"right",null),this.up=r(t,"up",null),this.down=r(t,"down",null),this.zoomIn=r(t,"zoomIn",null),this.zoomOut=r(t,"zoomOut",null),this.zoomSpeed=r(t,"zoomSpeed",.01),this.speedX=0,this.speedY=0;var e=r(t,"speed",null);"number"==typeof e?(this.speedX=e,this.speedY=e):(this.speedX=r(t,"speed.x",0),this.speedY=r(t,"speed.y",0)),this._zoom=0,this.active=null!==this.camera},start:function(){return this.active=null!==this.camera,this},stop:function(){return this.active=!1,this},setCamera:function(t){return this.camera=t,this},update:function(t){if(this.active){void 0===t&&(t=1);var e=this.camera;this.up&&this.up.isDown?e.scrollY-=this.speedY*t|0:this.down&&this.down.isDown&&(e.scrollY+=this.speedY*t|0),this.left&&this.left.isDown?e.scrollX-=this.speedX*t|0:this.right&&this.right.isDown&&(e.scrollX+=this.speedX*t|0),this.zoomIn&&this.zoomIn.isDown?(e.zoom-=this.zoomSpeed,e.zoom<.1&&(e.zoom=.1)):this.zoomOut&&this.zoomOut.isDown&&(e.zoom+=this.zoomSpeed)}},destroy:function(){this.camera=null,this.left=null,this.right=null,this.up=null,this.down=null,this.zoomIn=null,this.zoomOut=null}});t.exports=s},40324:(t,e,i)=>{var n=i(47379),r=i(86652),s=new n({initialize:function(t){this.camera=r(t,"camera",null),this.left=r(t,"left",null),this.right=r(t,"right",null),this.up=r(t,"up",null),this.down=r(t,"down",null),this.zoomIn=r(t,"zoomIn",null),this.zoomOut=r(t,"zoomOut",null),this.zoomSpeed=r(t,"zoomSpeed",.01),this.accelX=0,this.accelY=0;var e=r(t,"acceleration",null);"number"==typeof e?(this.accelX=e,this.accelY=e):(this.accelX=r(t,"acceleration.x",0),this.accelY=r(t,"acceleration.y",0)),this.dragX=0,this.dragY=0;var i=r(t,"drag",null);"number"==typeof i?(this.dragX=i,this.dragY=i):(this.dragX=r(t,"drag.x",0),this.dragY=r(t,"drag.y",0)),this.maxSpeedX=0,this.maxSpeedY=0;var n=r(t,"maxSpeed",null);"number"==typeof n?(this.maxSpeedX=n,this.maxSpeedY=n):(this.maxSpeedX=r(t,"maxSpeed.x",0),this.maxSpeedY=r(t,"maxSpeed.y",0)),this._speedX=0,this._speedY=0,this._zoom=0,this.active=null!==this.camera},start:function(){return this.active=null!==this.camera,this},stop:function(){return this.active=!1,this},setCamera:function(t){return this.camera=t,this},update:function(t){if(this.active){void 0===t&&(t=1);var e=this.camera;this._speedX>0?(this._speedX-=this.dragX*t,this._speedX<0&&(this._speedX=0)):this._speedX<0&&(this._speedX+=this.dragX*t,this._speedX>0&&(this._speedX=0)),this._speedY>0?(this._speedY-=this.dragY*t,this._speedY<0&&(this._speedY=0)):this._speedY<0&&(this._speedY+=this.dragY*t,this._speedY>0&&(this._speedY=0)),this.up&&this.up.isDown?(this._speedY+=this.accelY,this._speedY>this.maxSpeedY&&(this._speedY=this.maxSpeedY)):this.down&&this.down.isDown&&(this._speedY-=this.accelY,this._speedY<-this.maxSpeedY&&(this._speedY=-this.maxSpeedY)),this.left&&this.left.isDown?(this._speedX+=this.accelX,this._speedX>this.maxSpeedX&&(this._speedX=this.maxSpeedX)):this.right&&this.right.isDown&&(this._speedX-=this.accelX,this._speedX<-this.maxSpeedX&&(this._speedX=-this.maxSpeedX)),this.zoomIn&&this.zoomIn.isDown?this._zoom=-this.zoomSpeed:this.zoomOut&&this.zoomOut.isDown?this._zoom=this.zoomSpeed:this._zoom=0,0!==this._speedX&&(e.scrollX-=this._speedX*t|0),0!==this._speedY&&(e.scrollY-=this._speedY*t|0),0!==this._zoom&&(e.zoom+=this._zoom,e.zoom<.001&&(e.zoom=.001))}},destroy:function(){this.camera=null,this.left=null,this.right=null,this.up=null,this.down=null,this.zoomIn=null,this.zoomOut=null}});t.exports=s},60277:(t,e,i)=>{t.exports={FixedKeyControl:i(87705),SmoothedKeyControl:i(40324)}},49357:(t,e,i)=>{t.exports={Controls:i(60277),Scene2D:i(73013)}},50460:(t,e,i)=>{var n={VERSION:"3.23.0",BlendModes:i(35869),ScaleModes:i(28425),AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,FOREVER:-1,NONE:4,UP:5,DOWN:6,LEFT:7,RIGHT:8};t.exports=n},2192:(t,e,i)=>{var n=i(47379),r=i(50460),s=i(82113),o=i(81769),a=i(86652),h=i(28621),u=i(39899),l=i(49035),c=i(97713),d=i(64031),p=new n({initialize:function(t){void 0===t&&(t={});this.width=a(t,"width",1024),this.height=a(t,"height",768),this.zoom=a(t,"zoom",1),this.resolution=a(t,"resolution",1),this.parent=a(t,"parent",void 0),this.scaleMode=a(t,"scaleMode",0),this.expandParent=a(t,"expandParent",!0),this.autoRound=a(t,"autoRound",!1),this.autoCenter=a(t,"autoCenter",0),this.resizeInterval=a(t,"resizeInterval",500),this.fullscreenTarget=a(t,"fullscreenTarget",null),this.minWidth=a(t,"minWidth",0),this.maxWidth=a(t,"maxWidth",0),this.minHeight=a(t,"minHeight",0),this.maxHeight=a(t,"maxHeight",0);var e=a(t,"scale",null);e&&(this.width=a(e,"width",this.width),this.height=a(e,"height",this.height),this.zoom=a(e,"zoom",this.zoom),this.resolution=a(e,"resolution",this.resolution),this.parent=a(e,"parent",this.parent),this.scaleMode=a(e,"mode",this.scaleMode),this.expandParent=a(e,"expandParent",this.expandParent),this.autoRound=a(e,"autoRound",this.autoRound),this.autoCenter=a(e,"autoCenter",this.autoCenter),this.resizeInterval=a(e,"resizeInterval",this.resizeInterval),this.fullscreenTarget=a(e,"fullscreenTarget",this.fullscreenTarget),this.minWidth=a(e,"min.width",this.minWidth),this.maxWidth=a(e,"max.width",this.maxWidth),this.minHeight=a(e,"min.height",this.minHeight),this.maxHeight=a(e,"max.height",this.maxHeight)),this.renderType=a(t,"type",r.AUTO),this.canvas=a(t,"canvas",null),this.context=a(t,"context",null),this.canvasStyle=a(t,"canvasStyle",null),this.customEnvironment=a(t,"customEnvironment",!1),this.sceneConfig=a(t,"scene",null),this.seed=a(t,"seed",[(Date.now()*Math.random()).toString()]),u.RND=new u.RandomDataGenerator(this.seed),this.gameTitle=a(t,"title",""),this.gameURL=a(t,"url","https://phaser.io"),this.gameVersion=a(t,"version",""),this.autoFocus=a(t,"autoFocus",!0),this.domCreateContainer=a(t,"dom.createContainer",!1),this.domBehindCanvas=a(t,"dom.behindCanvas",!1),this.inputKeyboard=a(t,"input.keyboard",!0),this.inputKeyboardEventTarget=a(t,"input.keyboard.target",window),this.inputKeyboardCapture=a(t,"input.keyboard.capture",[]),this.inputMouse=a(t,"input.mouse",!0),this.inputMouseEventTarget=a(t,"input.mouse.target",null),this.inputMouseCapture=a(t,"input.mouse.capture",!0),this.inputTouch=a(t,"input.touch",s.input.touch),this.inputTouchEventTarget=a(t,"input.touch.target",null),this.inputTouchCapture=a(t,"input.touch.capture",!0),this.inputActivePointers=a(t,"input.activePointers",1),this.inputSmoothFactor=a(t,"input.smoothFactor",0),this.inputWindowEvents=a(t,"input.windowEvents",!0),this.inputGamepad=a(t,"input.gamepad",!1),this.inputGamepadEventTarget=a(t,"input.gamepad.target",window),this.disableContextMenu=a(t,"disableContextMenu",!1),this.audio=a(t,"audio"),this.hideBanner=!1===a(t,"banner",null),this.hidePhaser=a(t,"banner.hidePhaser",!1),this.bannerTextColor=a(t,"banner.text","#ffffff"),this.bannerBackgroundColor=a(t,"banner.background",["#ff0000","#ffff00","#00ff00","#00ffff","#000000"]),""===this.gameTitle&&this.hidePhaser&&(this.hideBanner=!0),this.fps=a(t,"fps",null);var i=a(t,"render",t);this.antialias=a(i,"antialias",!0),this.antialiasGL=a(i,"antialiasGL",!0),this.mipmapFilter=a(i,"mipmapFilter","LINEAR"),this.desynchronized=a(i,"desynchronized",!1),this.roundPixels=a(i,"roundPixels",!1),this.pixelArt=a(i,"pixelArt",1!==this.zoom),this.pixelArt&&(this.antialias=!1,this.roundPixels=!0),this.transparent=a(i,"transparent",!1),this.clearBeforeRender=a(i,"clearBeforeRender",!0),this.premultipliedAlpha=a(i,"premultipliedAlpha",!0),this.failIfMajorPerformanceCaveat=a(i,"failIfMajorPerformanceCaveat",!1),this.powerPreference=a(i,"powerPreference","default"),this.batchSize=a(i,"batchSize",2e3),this.maxLights=a(i,"maxLights",10);var n=a(t,"backgroundColor",0);this.backgroundColor=d(n),0===n&&this.transparent&&(this.backgroundColor.alpha=0),this.preBoot=a(t,"callbacks.preBoot",l),this.postBoot=a(t,"callbacks.postBoot",l),this.physics=a(t,"physics",{}),this.defaultPhysicsSystem=a(this.physics,"default",!1),this.loaderBaseURL=a(t,"loader.baseURL",""),this.loaderPath=a(t,"loader.path",""),this.loaderMaxParallelDownloads=a(t,"loader.maxParallelDownloads",32),this.loaderCrossOrigin=a(t,"loader.crossOrigin",void 0),this.loaderResponseType=a(t,"loader.responseType",""),this.loaderAsync=a(t,"loader.async",!0),this.loaderUser=a(t,"loader.user",""),this.loaderPassword=a(t,"loader.password",""),this.loaderTimeout=a(t,"loader.timeout",0),this.loaderWithCredentials=a(t,"loader.withCredentials",!1),this.installGlobalPlugins=[],this.installScenePlugins=[];var p=a(t,"plugins",null),f=c.DefaultScene;p&&(Array.isArray(p)?this.defaultPlugins=p:h(p)&&(this.installGlobalPlugins=o(p,"global",[]),this.installScenePlugins=o(p,"scene",[]),Array.isArray(p.default)?f=p.default:Array.isArray(p.defaultMerge)&&(f=f.concat(p.defaultMerge)))),this.defaultPlugins=f;var m="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAg";this.defaultImage=a(t,"images.default",m+"AQMAAABJtOi3AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABVJREFUeF7NwIEAAAAAgKD9qdeocAMAoAABm3DkcAAAAABJRU5ErkJggg=="),this.missingImage=a(t,"images.missing",m+"CAIAAAD8GO2jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ9JREFUeNq01ssOwyAMRFG46v//Mt1ESmgh+DFmE2GPOBARKb2NVjo+17PXLD8a1+pl5+A+wSgFygymWYHBb0FtsKhJDdZlncG2IzJ4ayoMDv20wTmSMzClEgbWYNTAkQ0Z+OJ+A/eWnAaR9+oxCF4Os0H8htsMUp+pwcgBBiMNnAwF8GqIgL2hAzaGFFgZauDPKABmowZ4GL369/0rwACp2yA/ttmvsQAAAABJRU5ErkJggg=="),window&&(window.FORCE_WEBGL?this.renderType=r.WEBGL:window.FORCE_CANVAS&&(this.renderType=r.CANVAS))}});t.exports=p},64310:(t,e,i)=>{var n=i(13227),r=i(89429),s=i(50460),o=i(33789);t.exports=function(t){var e=t.config;if((e.customEnvironment||e.canvas)&&e.renderType===s.AUTO)throw new Error("Must set explicit renderType in custom environment");if(!e.customEnvironment&&!e.canvas&&e.renderType!==s.HEADLESS)if(e.renderType===s.CANVAS||e.renderType!==s.CANVAS&&!o.webGL){if(!o.canvas)throw new Error("Cannot create Canvas or WebGL context, aborting.");e.renderType=s.CANVAS}else e.renderType=s.WEBGL;e.antialias||r.disableSmoothing();var a,h,u=t.scale.baseSize,l=u.width,c=u.height;(e.canvas?(t.canvas=e.canvas,t.canvas.width=l,t.canvas.height=c):t.canvas=r.create(t,l,c,e.renderType),e.canvasStyle&&(t.canvas.style=e.canvasStyle),e.antialias||n.setCrisp(t.canvas),e.renderType!==s.HEADLESS)&&(a=i(308),h=i(36010),e.renderType===s.WEBGL?t.renderer=new h(t):(t.renderer=new a(t),t.context=t.renderer.gameContext))}},86274:(t,e,i)=>{var n=i(50460);t.exports=function(t){var e=t.config;if(!e.hideBanner){var i="WebGL";e.renderType===n.CANVAS?i="Canvas":e.renderType===n.HEADLESS&&(i="Headless");var r,s=e.audio,o=t.device.audio;if(r=!o.webAudio||s&&s.disableWebAudio?s&&s.noAudio||!o.webAudio&&!o.audioData?"No Audio":"HTML5 Audio":"Web Audio",t.device.browser.ie)window.console&&console.log("Phaser v"+n.VERSION+" / https://phaser.io");else{var a,h="",u=[h];if(Array.isArray(e.bannerBackgroundColor))e.bannerBackgroundColor.forEach((function(t){h=h.concat("%c "),u.push("background: "+t),a=t})),u[u.length-1]="color: "+e.bannerTextColor+"; background: "+a;else h=h.concat("%c "),u.push("color: "+e.bannerTextColor+"; background: "+e.bannerBackgroundColor);u.push("background: #fff"),e.gameTitle&&(h=h.concat(e.gameTitle),e.gameVersion&&(h=h.concat(" v"+e.gameVersion)),e.hidePhaser||(h=h.concat(" / ")));e.hidePhaser||(h=h.concat("Phaser v"+n.VERSION+"-FB ("+i+" | "+r+")")),h=h.concat(" %c "+e.gameURL),u[0]=h,console.log.apply(console,u)}}}},72937:(t,e,i)=>{var n=i(99641),r=i(32472),s=i(27378),o=i(89429),a=i(47379),h=i(2192),u=i(36141),l=i(64310),c=i(3881),d=i(86274),p=i(82113),f=i(71602),m=i(17168),v=i(80827),g=i(80771),y=i(50354),_=i(18261),x=i(92499),b=i(73091),w=i(2931),T=i(4907),M=i(86910),S=i(58320),E=i(66466),L=i(75329),A=new a({initialize:function(t){this.config=new h(t),this.renderer=null,this.domContainer=null,this.canvas=null,this.context=null,this.isBooted=!1,this.isRunning=!1,this.events=new m,this.anims=new r(this),this.textures=new T(this),this.cache=new s(this),this.registry=new c(this),this.input=new g(this,this.config),this.scene=new b(this,this.config.sceneConfig),this.device=p,this.scale=new x(this,this.config),this.sound=null,this.sound=E.create(this),this.loop=new M(this,this.config.fps),this.plugins=new _(this,this.config),this.facebook=new L(this),this.pendingDestroy=!1,this.removeCanvas=!1,this.noReturn=!1,this.hasFocus=!1,f(this.boot.bind(this))},boot:function(){y.hasCore("EventEmitter")?(this.isBooted=!0,this.config.preBoot(this),this.scale.preBoot(),l(this),u(this),d(this),n(this.canvas,this.config.parent),this.textures.once(w.READY,this.texturesReady,this),this.events.emit(v.BOOT)):console.warn("Aborting. Core Plugins missing.")},texturesReady:function(){this.events.emit(v.READY),this.start()},start:function(){this.isRunning=!0,this.config.postBoot(this),this.renderer?this.loop.start(this.step.bind(this)):this.loop.start(this.headlessStep.bind(this)),S(this);var t=this.events;t.on(v.HIDDEN,this.onHidden,this),t.on(v.VISIBLE,this.onVisible,this),t.on(v.BLUR,this.onBlur,this),t.on(v.FOCUS,this.onFocus,this)},step:function(t,e){if(this.pendingDestroy)return this.runDestroy();var i=this.events;i.emit(v.PRE_STEP,t,e),i.emit(v.STEP,t,e),this.scene.update(t,e),i.emit(v.POST_STEP,t,e);var n=this.renderer;n.preRender(),i.emit(v.PRE_RENDER,n,t,e),this.scene.render(n),n.postRender(),i.emit(v.POST_RENDER,n,t,e)},headlessStep:function(t,e){if(this.pendingDestroy)return this.runDestroy();var i=this.events;i.emit(v.PRE_STEP,t,e),i.emit(v.STEP,t,e),this.scene.update(t,e),i.emit(v.POST_STEP,t,e),i.emit(v.PRE_RENDER),i.emit(v.POST_RENDER)},onHidden:function(){this.loop.pause(),this.events.emit(v.PAUSE)},onVisible:function(){this.loop.resume(),this.events.emit(v.RESUME)},onBlur:function(){this.hasFocus=!1,this.loop.blur()},onFocus:function(){this.hasFocus=!0,this.loop.focus()},getFrame:function(){return this.loop.frame},getTime:function(){return this.loop.now},destroy:function(t,e){void 0===e&&(e=!1),this.pendingDestroy=!0,this.removeCanvas=t,this.noReturn=e},runDestroy:function(){this.scene.destroy(),this.events.emit(v.DESTROY),this.events.removeAllListeners(),this.renderer&&this.renderer.destroy(),this.removeCanvas&&this.canvas&&(o.remove(this.canvas),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas)),this.domContainer&&this.domContainer.parentNode.removeChild(this.domContainer),this.loop.destroy(),this.pendingDestroy=!1}});t.exports=A},86910:(t,e,i)=>{var n=i(47379),r=i(86652),s=i(49035),o=i(41797),a=new n({initialize:function(t,e){this.game=t,this.raf=new o,this.started=!1,this.running=!1,this.minFps=r(e,"min",5),this.targetFps=r(e,"target",60),this._min=1e3/this.minFps,this._target=1e3/this.targetFps,this.actualFps=this.targetFps,this.nextFpsUpdate=0,this.framesThisSecond=0,this.callback=s,this.forceSetTimeOut=r(e,"forceSetTimeOut",!1),this.time=0,this.startTime=0,this.lastTime=0,this.frame=0,this.inFocus=!0,this._pauseTime=0,this._coolDown=0,this.delta=0,this.deltaIndex=0,this.deltaHistory=[],this.deltaSmoothingMax=r(e,"deltaHistory",10),this.panicMax=r(e,"panicMax",120),this.rawDelta=0,this.now=0,this.smoothStep=r(e,"smoothStep",!0)},blur:function(){this.inFocus=!1},focus:function(){this.inFocus=!0,this.resetDelta()},pause:function(){this._pauseTime=window.performance.now()},resume:function(){this.resetDelta(),this.startTime+=this.time-this._pauseTime},resetDelta:function(){var t=window.performance.now();this.time=t,this.lastTime=t,this.nextFpsUpdate=t+1e3,this.framesThisSecond=0;for(var e=0;e<this.deltaSmoothingMax;e++)this.deltaHistory[e]=Math.min(this._target,this.deltaHistory[e]);this.delta=0,this.deltaIndex=0,this._coolDown=this.panicMax},start:function(t){if(this.started)return this;this.started=!0,this.running=!0;for(var e=0;e<this.deltaSmoothingMax;e++)this.deltaHistory[e]=this._target;this.resetDelta(),this.startTime=window.performance.now(),this.callback=t,this.raf.start(this.step.bind(this),this.forceSetTimeOut,this._target)},step:function(){var t=window.performance.now();this.now=t;var e=t-this.lastTime;e<0&&(e=0),this.rawDelta=e;var i=this.deltaIndex,n=this.deltaHistory,r=this.deltaSmoothingMax,s=e,o=e;if(this.smoothStep){(this._coolDown>0||!this.inFocus)&&(this._coolDown--,s=Math.min(s,this._target)),s>this._min&&(s=n[i],s=Math.min(s,this._min)),n[i]=s,this.deltaIndex++,this.deltaIndex>r&&(this.deltaIndex=0),o=0;for(var a=0;a<r;a++)o+=n[a];o/=r}this.delta=o,this.time+=this.rawDelta,t>this.nextFpsUpdate&&(this.actualFps=.25*this.framesThisSecond+.75*this.actualFps,this.nextFpsUpdate=t+1e3,this.framesThisSecond=0),this.framesThisSecond++;var h=o/this._target;this.callback(t,o,h),this.lastTime=t,this.frame++},tick:function(){this.step()},sleep:function(){this.running&&(this.raf.stop(),this.running=!1)},wake:function(t){this.running?this.sleep():t&&(this.startTime+=-this.lastTime+(this.lastTime+window.performance.now())),this.raf.start(this.step.bind(this),this.useRAF),this.running=!0,this.step()},getDuration:function(){return Math.round(this.lastTime-this.startTime)/1e3},getDurationMS:function(){return Math.round(this.lastTime-this.startTime)},stop:function(){return this.running=!1,this.started=!1,this.raf.stop(),this},destroy:function(){this.stop(),this.callback=s,this.raf=null,this.game=null}});t.exports=a},58320:(t,e,i)=>{var n=i(80827);t.exports=function(t){var e,i=t.events;if(void 0!==document.hidden)e="visibilitychange";else{["webkit","moz","ms"].forEach((function(t){void 0!==document[t+"Hidden"]&&(document.hidden=function(){return document[t+"Hidden"]},e=t+"visibilitychange")}))}e&&document.addEventListener(e,(function(t){document.hidden||"pause"===t.type?i.emit(n.HIDDEN):i.emit(n.VISIBLE)}),!1),window.onblur=function(){i.emit(n.BLUR)},window.onfocus=function(){i.emit(n.FOCUS)},window.focus&&t.config.autoFocus&&window.focus()}},23523:t=>{t.exports="blur"},74714:t=>{t.exports="boot"},36679:t=>{t.exports="contextlost"},15806:t=>{t.exports="contextrestored"},50836:t=>{t.exports="destroy"},84158:t=>{t.exports="focus"},55780:t=>{t.exports="hidden"},16134:t=>{t.exports="pause"},77451:t=>{t.exports="postrender"},77593:t=>{t.exports="poststep"},38256:t=>{t.exports="prerender"},2571:t=>{t.exports="prestep"},43943:t=>{t.exports="ready"},54040:t=>{t.exports="resume"},96897:t=>{t.exports="step"},2508:t=>{t.exports="visible"},80827:(t,e,i)=>{t.exports={BLUR:i(23523),BOOT:i(74714),CONTEXT_LOST:i(36679),CONTEXT_RESTORED:i(15806),DESTROY:i(50836),FOCUS:i(84158),HIDDEN:i(55780),PAUSE:i(16134),POST_RENDER:i(77451),POST_STEP:i(77593),PRE_RENDER:i(38256),PRE_STEP:i(2571),READY:i(43943),RESUME:i(54040),STEP:i(96897),VISIBLE:i(2508)}},81189:(t,e,i)=>{t.exports={Config:i(2192),CreateRenderer:i(64310),DebugHeader:i(86274),Events:i(80827),TimeStep:i(86910),VisibilityHandler:i(58320)}},37644:(t,e,i)=>{var n=i(40813),r=i(89429),s=i(86652);t.exports=function(t){var e=s(t,"data",[]),i=s(t,"canvas",null),o=s(t,"palette",n),a=s(t,"pixelWidth",1),h=s(t,"pixelHeight",a),u=s(t,"resizeCanvas",!0),l=s(t,"clearCanvas",!0),c=s(t,"preRender",null),d=s(t,"postRender",null),p=Math.floor(Math.abs(e[0].length*a)),f=Math.floor(Math.abs(e.length*h));i||(i=r.create2D(this,p,f),u=!1,l=!1),u&&(i.width=p,i.height=f);var m=i.getContext("2d");l&&m.clearRect(0,0,p,f),c&&c(i,m);for(var v=0;v<e.length;v++)for(var g=e[v],y=0;y<g.length;y++){var _=g[y];"."!==_&&" "!==_&&(m.fillStyle=o[_],m.fillRect(y*a,v*h,a,h))}return d&&d(i,m),i}},88165:(t,e,i)=>{t.exports={GenerateTexture:i(37644),Palettes:i(3691)}},40813:t=>{t.exports={0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"}},9101:t=>{t.exports={0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"}},94012:t=>{t.exports={0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"}},12078:t=>{t.exports={0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"}},23784:t=>{t.exports={0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}},3691:(t,e,i)=>{t.exports={ARNE16:i(40813),C64:i(9101),CGA:i(94012),JMP:i(12078),MSX:i(23784)}},79834:(t,e,i)=>{var n=i(47379),r=i(97800),s=i(70584),o=i(57148),a=new n({Extends:s,initialize:function(t,e,i,n){s.call(this,"CubicBezierCurve"),Array.isArray(t)&&(n=new o(t[6],t[7]),i=new o(t[4],t[5]),e=new o(t[2],t[3]),t=new o(t[0],t[1])),this.p0=t,this.p1=e,this.p2=i,this.p3=n},getStartPoint:function(t){return void 0===t&&(t=new o),t.copy(this.p0)},getResolution:function(t){return t},getPoint:function(t,e){void 0===e&&(e=new o);var i=this.p0,n=this.p1,s=this.p2,a=this.p3;return e.set(r(t,i.x,n.x,s.x,a.x),r(t,i.y,n.y,s.y,a.y))},draw:function(t,e){void 0===e&&(e=32);var i=this.getPoints(e);t.beginPath(),t.moveTo(this.p0.x,this.p0.y);for(var n=1;n<i.length;n++)t.lineTo(i[n].x,i[n].y);return t.strokePath(),t},toJSON:function(){return{type:this.type,points:[this.p0.x,this.p0.y,this.p1.x,this.p1.y,this.p2.x,this.p2.y,this.p3.x,this.p3.y]}}});a.fromJSON=function(t){var e=t.points,i=new o(e[0],e[1]),n=new o(e[2],e[3]),r=new o(e[4],e[5]),s=new o(e[6],e[7]);return new a(i,n,r,s)},t.exports=a},70584:(t,e,i)=>{var n=i(47379),r=i(46141),s=i(38092),o=i(57148),a=new n({initialize:function(t){this.type=t,this.defaultDivisions=5,this.arcLengthDivisions=100,this.cacheArcLengths=[],this.needsUpdate=!0,this.active=!0,this._tmpVec2A=new o,this._tmpVec2B=new o},draw:function(t,e){return void 0===e&&(e=32),t.strokePoints(this.getPoints(e))},getBounds:function(t,e){t||(t=new s),void 0===e&&(e=16);var i=this.getLength();e>i&&(e=i/2);var n=Math.max(1,Math.round(i/e));return r(this.getSpacedPoints(n),t)},getDistancePoints:function(t){var e=this.getLength(),i=Math.max(1,e/t);return this.getSpacedPoints(i)},getEndPoint:function(t){return void 0===t&&(t=new o),this.getPointAt(1,t)},getLength:function(){var t=this.getLengths();return t[t.length-1]},getLengths:function(t){if(void 0===t&&(t=this.arcLengthDivisions),this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var e,i=[],n=this.getPoint(0,this._tmpVec2A),r=0;i.push(0);for(var s=1;s<=t;s++)r+=(e=this.getPoint(s/t,this._tmpVec2B)).distance(n),i.push(r),n.copy(e);return this.cacheArcLengths=i,i},getPointAt:function(t,e){var i=this.getUtoTmapping(t);return this.getPoint(i,e)},getPoints:function(t,e,i){void 0===i&&(i=[]),t||(t=e?this.getLength()/e:this.defaultDivisions);for(var n=0;n<=t;n++)i.push(this.getPoint(n/t));return i},getRandomPoint:function(t){return void 0===t&&(t=new o),this.getPoint(Math.random(),t)},getSpacedPoints:function(t,e,i){void 0===i&&(i=[]),t||(t=e?this.getLength()/e:this.defaultDivisions);for(var n=0;n<=t;n++){var r=this.getUtoTmapping(n/t,null,t);i.push(this.getPoint(r))}return i},getStartPoint:function(t){return void 0===t&&(t=new o),this.getPointAt(0,t)},getTangent:function(t,e){void 0===e&&(e=new o);var i=1e-4,n=t-i,r=t+i;return n<0&&(n=0),r>1&&(r=1),this.getPoint(n,this._tmpVec2A),this.getPoint(r,e),e.subtract(this._tmpVec2A).normalize()},getTangentAt:function(t,e){var i=this.getUtoTmapping(t);return this.getTangent(i,e)},getTFromDistance:function(t,e){return t<=0?0:this.getUtoTmapping(0,t,e)},getUtoTmapping:function(t,e,i){var n,r=this.getLengths(i),s=0,o=r.length;n=e?Math.min(e,r[o-1]):t*r[o-1];for(var a,h=0,u=o-1;h<=u;)if((a=r[s=Math.floor(h+(u-h)/2)]-n)<0)h=s+1;else{if(!(a>0)){u=s;break}u=s-1}if(r[s=u]===n)return s/(o-1);var l=r[s];return(s+(n-l)/(r[s+1]-l))/(o-1)},updateArcLengths:function(){this.needsUpdate=!0,this.getLengths()}});t.exports=a},37567:(t,e,i)=>{var n=i(47379),r=i(70584),s=i(98436),o=i(86652),a=i(12756),h=i(57148),u=new n({Extends:r,initialize:function(t,e,i,n,a,u,l,c){if("object"==typeof t){var d=t;t=o(d,"x",0),e=o(d,"y",0),i=o(d,"xRadius",0),n=o(d,"yRadius",i),a=o(d,"startAngle",0),u=o(d,"endAngle",360),l=o(d,"clockwise",!1),c=o(d,"rotation",0)}else void 0===n&&(n=i),void 0===a&&(a=0),void 0===u&&(u=360),void 0===l&&(l=!1),void 0===c&&(c=0);r.call(this,"EllipseCurve"),this.p0=new h(t,e),this._xRadius=i,this._yRadius=n,this._startAngle=s(a),this._endAngle=s(u),this._clockwise=l,this._rotation=s(c)},getStartPoint:function(t){return void 0===t&&(t=new h),this.getPoint(0,t)},getResolution:function(t){return 2*t},getPoint:function(t,e){void 0===e&&(e=new h);for(var i=2*Math.PI,n=this._endAngle-this._startAngle,r=Math.abs(n)<Number.EPSILON;n<0;)n+=i;for(;n>i;)n-=i;n<Number.EPSILON&&(n=r?0:i),this._clockwise&&!r&&(n===i?n=-i:n-=i);var s=this._startAngle+t*n,o=this.p0.x+this._xRadius*Math.cos(s),a=this.p0.y+this._yRadius*Math.sin(s);if(0!==this._rotation){var u=Math.cos(this._rotation),l=Math.sin(this._rotation),c=o-this.p0.x,d=a-this.p0.y;o=c*u-d*l+this.p0.x,a=c*l+d*u+this.p0.y}return e.set(o,a)},setXRadius:function(t){return this.xRadius=t,this},setYRadius:function(t){return this.yRadius=t,this},setWidth:function(t){return this.xRadius=2*t,this},setHeight:function(t){return this.yRadius=2*t,this},setStartAngle:function(t){return this.startAngle=t,this},setEndAngle:function(t){return this.endAngle=t,this},setClockwise:function(t){return this.clockwise=t,this},setRotation:function(t){return this.rotation=t,this},x:{get:function(){return this.p0.x},set:function(t){this.p0.x=t}},y:{get:function(){return this.p0.y},set:function(t){this.p0.y=t}},xRadius:{get:function(){return this._xRadius},set:function(t){this._xRadius=t}},yRadius:{get:function(){return this._yRadius},set:function(t){this._yRadius=t}},startAngle:{get:function(){return a(this._startAngle)},set:function(t){this._startAngle=s(t)}},endAngle:{get:function(){return a(this._endAngle)},set:function(t){this._endAngle=s(t)}},clockwise:{get:function(){return this._clockwise},set:function(t){this._clockwise=t}},angle:{get:function(){return a(this._rotation)},set:function(t){this._rotation=s(t)}},rotation:{get:function(){return this._rotation},set:function(t){this._rotation=t}},toJSON:function(){return{type:this.type,x:this.p0.x,y:this.p0.y,xRadius:this._xRadius,yRadius:this._yRadius,startAngle:a(this._startAngle),endAngle:a(this._endAngle),clockwise:this._clockwise,rotation:a(this._rotation)}}});u.fromJSON=function(t){return new u(t)},t.exports=u},64071:(t,e,i)=>{var n=i(47379),r=i(70584),s=i(46141),o=i(38092),a=i(57148),h=new a,u=new n({Extends:r,initialize:function(t,e){r.call(this,"LineCurve"),Array.isArray(t)&&(e=new a(t[2],t[3]),t=new a(t[0],t[1])),this.p0=t,this.p1=e,this.arcLengthDivisions=1},getBounds:function(t){return void 0===t&&(t=new o),s([this.p0,this.p1],t)},getStartPoint:function(t){return void 0===t&&(t=new a),t.copy(this.p0)},getResolution:function(t){return void 0===t&&(t=1),t},getPoint:function(t,e){return void 0===e&&(e=new a),1===t?e.copy(this.p1):(e.copy(this.p1).subtract(this.p0).scale(t).add(this.p0),e)},getPointAt:function(t,e){return this.getPoint(t,e)},getTangent:function(){return h.copy(this.p1).subtract(this.p0).normalize()},getUtoTmapping:function(t,e,i){var n;if(e){var r=this.getLengths(i),s=r[r.length-1];n=Math.min(e,s)/s}else n=t;return n},draw:function(t){return t.lineBetween(this.p0.x,this.p0.y,this.p1.x,this.p1.y),t},toJSON:function(){return{type:this.type,points:[this.p0.x,this.p0.y,this.p1.x,this.p1.y]}}});u.fromJSON=function(t){var e=t.points,i=new a(e[0],e[1]),n=new a(e[2],e[3]);return new u(i,n)},t.exports=u},56401:(t,e,i)=>{var n=i(47379),r=i(70584),s=i(16585),o=i(57148),a=new n({Extends:r,initialize:function(t,e,i){r.call(this,"QuadraticBezier"),Array.isArray(t)&&(i=new o(t[4],t[5]),e=new o(t[2],t[3]),t=new o(t[0],t[1])),this.p0=t,this.p1=e,this.p2=i},getStartPoint:function(t){return void 0===t&&(t=new o),t.copy(this.p0)},getResolution:function(t){return t},getPoint:function(t,e){void 0===e&&(e=new o);var i=this.p0,n=this.p1,r=this.p2;return e.set(s(t,i.x,n.x,r.x),s(t,i.y,n.y,r.y))},draw:function(t,e){void 0===e&&(e=32);var i=this.getPoints(e);t.beginPath(),t.moveTo(this.p0.x,this.p0.y);for(var n=1;n<i.length;n++)t.lineTo(i[n].x,i[n].y);return t.strokePath(),t},toJSON:function(){return{type:this.type,points:[this.p0.x,this.p0.y,this.p1.x,this.p1.y,this.p2.x,this.p2.y]}}});a.fromJSON=function(t){var e=t.points,i=new o(e[0],e[1]),n=new o(e[2],e[3]),r=new o(e[4],e[5]);return new a(i,n,r)},t.exports=a},28666:(t,e,i)=>{var n=i(21934),r=i(47379),s=i(70584),o=i(57148),a=new r({Extends:s,initialize:function(t){void 0===t&&(t=[]),s.call(this,"SplineCurve"),this.points=[],this.addPoints(t)},addPoints:function(t){for(var e=0;e<t.length;e++){var i=new o;"number"==typeof t[e]?(i.x=t[e],i.y=t[e+1],e++):Array.isArray(t[e])?(i.x=t[e][0],i.y=t[e][1]):(i.x=t[e].x,i.y=t[e].y),this.points.push(i)}return this},addPoint:function(t,e){var i=new o(t,e);return this.points.push(i),i},getStartPoint:function(t){return void 0===t&&(t=new o),t.copy(this.points[0])},getResolution:function(t){return t*this.points.length},getPoint:function(t,e){void 0===e&&(e=new o);var i=this.points,r=(i.length-1)*t,s=Math.floor(r),a=r-s,h=i[0===s?s:s-1],u=i[s],l=i[s>i.length-2?i.length-1:s+1],c=i[s>i.length-3?i.length-1:s+2];return e.set(n(a,h.x,u.x,l.x,c.x),n(a,h.y,u.y,l.y,c.y))},toJSON:function(){for(var t=[],e=0;e<this.points.length;e++)t.push(this.points[e].x),t.push(this.points[e].y);return{type:this.type,points:t}}});a.fromJSON=function(t){return new a(t.points)},t.exports=a},95398:(t,e,i)=>{t.exports={Path:i(80566),CubicBezier:i(79834),Curve:i(70584),Ellipse:i(37567),Line:i(64071),QuadraticBezier:i(56401),Spline:i(28666)}},36640:(t,e,i)=>{var n=i(47379),r=i(57148),s=new n({initialize:function(t,e){this.active=!1,this.p0=new r(t,e)},getPoint:function(t,e){return void 0===e&&(e=new r),e.copy(this.p0)},getPointAt:function(t,e){return this.getPoint(t,e)},getResolution:function(){return 1},getLength:function(){return 0},toJSON:function(){return{type:"MoveTo",points:[this.p0.x,this.p0.y]}}});t.exports=s},80566:(t,e,i)=>{var n=i(47379),r=i(79834),s=i(37567),o=i(81342),a=i(64071),h=i(36640),u=i(56401),l=i(38092),c=i(28666),d=i(57148),p=i(14302),f=new n({initialize:function(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.name="",this.curves=[],this.cacheLengths=[],this.autoClose=!1,this.startPoint=new d,this._tmpVec2A=new d,this._tmpVec2B=new d,"object"==typeof t?this.fromJSON(t):this.startPoint.set(t,e)},add:function(t){return this.curves.push(t),this},circleTo:function(t,e,i){return void 0===e&&(e=!1),this.ellipseTo(t,t,0,360,e,i)},closePath:function(){var t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);return t.equals(e)||this.curves.push(new a(e,t)),this},cubicBezierTo:function(t,e,i,n,s,o){var a,h,u,l=this.getEndPoint();return t instanceof d?(a=t,h=e,u=i):(a=new d(i,n),h=new d(s,o),u=new d(t,e)),this.add(new r(l,a,h,u))},quadraticBezierTo:function(t,e,i,n){var r,s,o=this.getEndPoint();return t instanceof d?(r=t,s=e):(r=new d(i,n),s=new d(t,e)),this.add(new u(o,r,s))},draw:function(t,e){for(var i=0;i<this.curves.length;i++){var n=this.curves[i];n.active&&n.draw(t,e)}return t},ellipseTo:function(t,e,i,n,r,o){var a=new s(0,0,t,e,i,n,r,o),h=this.getEndPoint(this._tmpVec2A),u=a.getStartPoint(this._tmpVec2B);return h.subtract(u),a.x=h.x,a.y=h.y,this.add(a)},fromJSON:function(t){this.curves=[],this.cacheLengths=[],this.startPoint.set(t.x,t.y),this.autoClose=t.autoClose;for(var e=0;e<t.curves.length;e++){var i=t.curves[e];switch(i.type){case"LineCurve":this.add(a.fromJSON(i));break;case"EllipseCurve":this.add(s.fromJSON(i));break;case"SplineCurve":this.add(c.fromJSON(i));break;case"CubicBezierCurve":this.add(r.fromJSON(i));break;case"QuadraticBezierCurve":this.add(u.fromJSON(i))}}return this},getBounds:function(t,e){void 0===t&&(t=new l),void 0===e&&(e=16),t.x=Number.MAX_VALUE,t.y=Number.MAX_VALUE;for(var i=new l,n=p.MIN_SAFE_INTEGER,r=p.MIN_SAFE_INTEGER,s=0;s<this.curves.length;s++){var o=this.curves[s];o.active&&(o.getBounds(i,e),t.x=Math.min(t.x,i.x),t.y=Math.min(t.y,i.y),n=Math.max(n,i.right),r=Math.max(r,i.bottom))}return t.right=n,t.bottom=r,t},getCurveLengths:function(){if(this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var t=[],e=0,i=0;i<this.curves.length;i++)e+=this.curves[i].getLength(),t.push(e);return this.cacheLengths=t,t},getEndPoint:function(t){return void 0===t&&(t=new d),this.curves.length>0?this.curves[this.curves.length-1].getPoint(1,t):t.copy(this.startPoint),t},getLength:function(){var t=this.getCurveLengths();return t[t.length-1]},getPoint:function(t,e){void 0===e&&(e=new d);for(var i=t*this.getLength(),n=this.getCurveLengths(),r=0;r<n.length;){if(n[r]>=i){var s=n[r]-i,o=this.curves[r],a=o.getLength(),h=0===a?0:1-s/a;return o.getPointAt(h,e)}r++}return null},getPoints:function(t){void 0===t&&(t=12);for(var e,i=[],n=0;n<this.curves.length;n++){var r=this.curves[n];if(r.active)for(var s=r.getResolution(t),o=r.getPoints(s),a=0;a<o.length;a++){var h=o[a];e&&e.equals(h)||(i.push(h),e=h)}}return this.autoClose&&i.length>1&&!i[i.length-1].equals(i[0])&&i.push(i[0]),i},getRandomPoint:function(t){return void 0===t&&(t=new d),this.getPoint(Math.random(),t)},getSpacedPoints:function(t){void 0===t&&(t=40);for(var e=[],i=0;i<=t;i++)e.push(this.getPoint(i/t));return this.autoClose&&e.push(e[0]),e},getStartPoint:function(t){return void 0===t&&(t=new d),t.copy(this.startPoint)},getTangent:function(t,e){void 0===e&&(e=new d);for(var i=t*this.getLength(),n=this.getCurveLengths(),r=0;r<n.length;){if(n[r]>=i){var s=n[r]-i,o=this.curves[r],a=o.getLength(),h=0===a?0:1-s/a;return o.getTangentAt(h,e)}r++}return null},lineTo:function(t,e){t instanceof d?this._tmpVec2B.copy(t):this._tmpVec2B.set(t,e);var i=this.getEndPoint(this._tmpVec2A);return this.add(new a([i.x,i.y,this._tmpVec2B.x,this._tmpVec2B.y]))},splineTo:function(t){return t.unshift(this.getEndPoint()),this.add(new c(t))},moveTo:function(t,e){return t instanceof d?this.add(new h(t.x,t.y)):this.add(new h(t,e))},toJSON:function(){for(var t=[],e=0;e<this.curves.length;e++)t.push(this.curves[e].toJSON());return{type:"Path",x:this.startPoint.x,y:this.startPoint.y,autoClose:this.autoClose,curves:t}},updateArcLengths:function(){this.cacheLengths=[],this.getCurveLengths()},destroy:function(){this.curves.length=0,this.cacheLengths.length=0,this.startPoint=void 0}});o.register("path",(function(t,e){return new f(t,e)})),t.exports=f},3881:(t,e,i)=>{var n=i(47379),r=i(33930),s=new n({initialize:function(t,e){this.parent=t,this.events=e,e||(this.events=t.events?t.events:t),this.list={},this.values={},this._frozen=!1,!t.hasOwnProperty("sys")&&this.events&&this.events.once("destroy",this.destroy,this)},get:function(t){var e=this.list;if(Array.isArray(t)){for(var i=[],n=0;n<t.length;n++)i.push(e[t[n]]);return i}return e[t]},getAll:function(){var t={};for(var e in this.list)this.list.hasOwnProperty(e)&&(t[e]=this.list[e]);return t},query:function(t){var e={};for(var i in this.list)this.list.hasOwnProperty(i)&&i.match(t)&&(e[i]=this.list[i]);return e},set:function(t,e){if(this._frozen)return this;if("string"==typeof t)return this.setValue(t,e);for(var i in t)this.setValue(i,t[i]);return this},inc:function(t,e){if(this._frozen)return this;void 0===e&&(e=1);var i=this.get(t);return void 0===i&&(i=0),this.set(t,i+e),this},toggle:function(t){return this._frozen||this.set(t,!this.get(t)),this},setValue:function(t,e){if(this._frozen)return this;if(this.has(t))this.values[t]=e;else{var i=this,n=this.list,s=this.events,o=this.parent;Object.defineProperty(this.values,t,{enumerable:!0,configurable:!0,get:function(){return n[t]},set:function(e){if(!i._frozen){var a=n[t];n[t]=e,s.emit(r.CHANGE_DATA,o,t,e,a),s.emit(r.CHANGE_DATA_KEY+t,o,e,a)}}}),n[t]=e,s.emit(r.SET_DATA,o,t,e)}return this},each:function(t,e){for(var i=[this.parent,null,void 0],n=1;n<arguments.length;n++)i.push(arguments[n]);for(var r in this.list)i[1]=r,i[2]=this.list[r],t.apply(e,i);return this},merge:function(t,e){for(var i in void 0===e&&(e=!0),t)t.hasOwnProperty(i)&&(e||!e&&!this.has(i))&&this.setValue(i,t[i]);return this},remove:function(t){if(this._frozen)return this;if(!Array.isArray(t))return this.removeValue(t);for(var e=0;e<t.length;e++)this.removeValue(t[e]);return this},removeValue:function(t){if(this.has(t)){var e=this.list[t];delete this.list[t],delete this.values[t],this.events.emit(r.REMOVE_DATA,this.parent,t,e)}return this},pop:function(t){var e=void 0;return!this._frozen&&this.has(t)&&(e=this.list[t],delete this.list[t],delete this.values[t],this.events.emit(r.REMOVE_DATA,this.parent,t,e)),e},has:function(t){return this.list.hasOwnProperty(t)},setFreeze:function(t){return this._frozen=t,this},reset:function(){for(var t in this.list)delete this.list[t],delete this.values[t];return this._frozen=!1,this},destroy:function(){this.reset(),this.events.off(r.CHANGE_DATA),this.events.off(r.SET_DATA),this.events.off(r.REMOVE_DATA),this.parent=null},freeze:{get:function(){return this._frozen},set:function(t){this._frozen=!!t}},count:{get:function(){var t=0;for(var e in this.list)void 0!==this.list[e]&&t++;return t}}});t.exports=s},787:(t,e,i)=>{var n=i(47379),r=i(3881),s=i(50354),o=i(88637),a=new n({Extends:r,initialize:function(t){r.call(this,t,t.sys.events),this.scene=t,this.systems=t.sys,t.sys.events.once(o.BOOT,this.boot,this),t.sys.events.on(o.START,this.start,this)},boot:function(){this.events=this.systems.events,this.events.once(o.DESTROY,this.destroy,this)},start:function(){this.events.once(o.SHUTDOWN,this.shutdown,this)},shutdown:function(){this.systems.events.off(o.SHUTDOWN,this.shutdown,this)},destroy:function(){r.prototype.destroy.call(this),this.events.off(o.START,this.start,this),this.scene=null,this.systems=null}});s.register("DataManagerPlugin",a,"data"),t.exports=a},25962:t=>{t.exports="changedata"},25256:t=>{t.exports="changedata-"},94357:t=>{t.exports="removedata"},85366:t=>{t.exports="setdata"},33930:(t,e,i)=>{t.exports={CHANGE_DATA:i(25962),CHANGE_DATA_KEY:i(25256),REMOVE_DATA:i(94357),SET_DATA:i(85366)}},69783:(t,e,i)=>{t.exports={DataManager:i(3881),DataManagerPlugin:i(787),Events:i(33930)}},9715:(t,e,i)=>{var n=i(95653),r={audioData:!1,dolby:!1,m4a:!1,mp3:!1,ogg:!1,opus:!1,wav:!1,webAudio:!1,webm:!1};t.exports=function(){r.audioData=!!window.Audio,r.webAudio=!(!window.AudioContext&&!window.webkitAudioContext);var t=document.createElement("audio"),e=!!t.canPlayType;try{if(e&&(t.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,"")&&(r.ogg=!0),(t.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,"")||t.canPlayType("audio/opus;").replace(/^no$/,""))&&(r.opus=!0),t.canPlayType("audio/mpeg;").replace(/^no$/,"")&&(r.mp3=!0),t.canPlayType('audio/wav; codecs="1"').replace(/^no$/,"")&&(r.wav=!0),(t.canPlayType("audio/x-m4a;")||t.canPlayType("audio/aac;").replace(/^no$/,""))&&(r.m4a=!0),t.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")&&(r.webm=!0),""!==t.canPlayType('audio/mp4;codecs="ec-3"')))if(n.edge)r.dolby=!0;else if(n.safari&&n.safariVersion>=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var i=parseInt(RegExp.$1,10),s=parseInt(RegExp.$2,10);(10===i&&s>=11||i>10)&&(r.dolby=!0)}}catch(t){}return r}()},95653:(t,e,i)=>{var n,r=i(60236),s={chrome:!1,chromeVersion:0,edge:!1,firefox:!1,firefoxVersion:0,ie:!1,ieVersion:0,mobileSafari:!1,opera:!1,safari:!1,safariVersion:0,silk:!1,trident:!1,tridentVersion:0};t.exports=(n=navigator.userAgent,/Edge\/\d+/.test(n)?s.edge=!0:/Chrome\/(\d+)/.test(n)&&!r.windowsPhone?(s.chrome=!0,s.chromeVersion=parseInt(RegExp.$1,10)):/Firefox\D+(\d+)/.test(n)?(s.firefox=!0,s.firefoxVersion=parseInt(RegExp.$1,10)):/AppleWebKit/.test(n)&&r.iOS?s.mobileSafari=!0:/MSIE (\d+\.\d+);/.test(n)?(s.ie=!0,s.ieVersion=parseInt(RegExp.$1,10)):/Opera/.test(n)?s.opera=!0:/Safari/.test(n)&&!r.windowsPhone?s.safari=!0:/Trident\/(\d+\.\d+)(.*)rv:(\d+\.\d+)/.test(n)&&(s.ie=!0,s.trident=!0,s.tridentVersion=parseInt(RegExp.$1,10),s.ieVersion=parseInt(RegExp.$3,10)),/Silk/.test(n)&&(s.silk=!0),s)},86877:(t,e,i)=>{var n,r,s,o=i(89429),a={supportInverseAlpha:!1,supportNewBlendModes:!1};t.exports=(void 0!==document&&(a.supportNewBlendModes=(n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",r="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",(s=new Image).onload=function(){var t=new Image;t.onload=function(){var e=o.create(t,6,1).getContext("2d");if(e.globalCompositeOperation="multiply",e.drawImage(s,0,0),e.drawImage(t,2,0),!e.getImageData(2,0,1,1))return!1;var i=e.getImageData(2,0,1,1).data;o.remove(t),a.supportNewBlendModes=255===i[0]&&0===i[1]&&0===i[2]},t.src=n+"/wCKxvRF"+r},s.src=n+"AP804Oa6"+r,!1),a.supportInverseAlpha=function(){var t=o.create(this,2,1).getContext("2d");t.fillStyle="rgba(10, 20, 30, 0.5)",t.fillRect(0,0,1,1);var e=t.getImageData(0,0,1,1);if(null===e)return!1;t.putImageData(e,1,0);var i=t.getImageData(1,0,1,1);return i.data[0]===e.data[0]&&i.data[1]===e.data[1]&&i.data[2]===e.data[2]&&i.data[3]===e.data[3]}()),a)},33789:(t,e,i)=>{var n=i(60236),r=i(95653),s=i(89429),o={canvas:!1,canvasBitBltShift:null,file:!1,fileSystem:!1,getUserMedia:!0,littleEndian:!1,localStorage:!1,pointerLock:!1,support32bit:!1,vibration:!1,webGL:!1,worker:!1};t.exports=function(){o.canvas=!!window.CanvasRenderingContext2D;try{o.localStorage=!!localStorage.getItem}catch(t){o.localStorage=!1}o.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),o.fileSystem=!!window.requestFileSystem;var t,e,i,a=!1;return o.webGL=function(){if(window.WebGLRenderingContext)try{var t=s.createWebGL(this),e=t.getContext("webgl")||t.getContext("experimental-webgl"),i=s.create2D(this),n=i.getContext("2d").createImageData(1,1);return a=n.data instanceof Uint8ClampedArray,s.remove(t),s.remove(i),!!e}catch(t){return!1}return!1}(),o.worker=!!window.Worker,o.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia||navigator.oGetUserMedia,window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL,o.getUserMedia=o.getUserMedia&&!!navigator.getUserMedia&&!!window.URL,r.firefox&&r.firefoxVersion<21&&(o.getUserMedia=!1),!n.iOS&&(r.ie||r.firefox||r.chrome)&&(o.canvasBitBltShift=!0),(r.safari||r.mobileSafari)&&(o.canvasBitBltShift=!1),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(o.vibration=!0),"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(o.littleEndian=(t=new ArrayBuffer(4),e=new Uint8Array(t),i=new Uint32Array(t),e[0]=161,e[1]=178,e[2]=195,e[3]=212,3569595041===i[0]||2712847316!==i[0]&&null)),o.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==o.littleEndian&&a,o}()},22513:t=>{var e={available:!1,cancel:"",keyboard:!1,request:""};t.exports=function(){var t,i="Fullscreen",n="FullScreen",r=["request"+i,"request"+n,"webkitRequest"+i,"webkitRequest"+n,"msRequest"+i,"msRequest"+n,"mozRequest"+n,"mozRequest"+i];for(t=0;t<r.length;t++)if(document.documentElement[r[t]]){e.available=!0,e.request=r[t];break}var s=["cancel"+n,"exit"+i,"webkitCancel"+n,"webkitExit"+i,"msCancel"+n,"msExit"+i,"mozCancel"+n,"mozExit"+i];if(e.available)for(t=0;t<s.length;t++)if(document[s[t]]){e.cancel=s[t];break}return window.Element&&Element.ALLOW_KEYBOARD_INPUT&&!/ Version\/5\.1(?:\.\d+)? Safari\//.test(navigator.userAgent)&&(e.keyboard=!0),Object.defineProperty(e,"active",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),e}()},59188:(t,e,i)=>{var n=i(95653),r={gamepads:!1,mspointer:!1,touch:!1,wheelEvent:null};t.exports=(("ontouchstart"in document.documentElement||navigator.maxTouchPoints&&navigator.maxTouchPoints>=1)&&(r.touch=!0),(navigator.msPointerEnabled||navigator.pointerEnabled)&&(r.mspointer=!0),navigator.getGamepads&&(r.gamepads=!0),"onwheel"in window||n.ie&&"WheelEvent"in window?r.wheelEvent="wheel":"onmousewheel"in window?r.wheelEvent="mousewheel":n.firefox&&"MouseScrollEvent"in window&&(r.wheelEvent="DOMMouseScroll"),r)},60236:t=>{var e={android:!1,chromeOS:!1,cordova:!1,crosswalk:!1,desktop:!1,ejecta:!1,electron:!1,iOS:!1,iOSVersion:0,iPad:!1,iPhone:!1,kindle:!1,linux:!1,macOS:!1,node:!1,nodeWebkit:!1,pixelRatio:1,webApp:!1,windows:!1,windowsPhone:!1};t.exports=function(){var t=navigator.userAgent;/Windows/.test(t)?e.windows=!0:/Mac OS/.test(t)&&!/like Mac OS/.test(t)?e.macOS=!0:/Android/.test(t)?e.android=!0:/Linux/.test(t)?e.linux=!0:/iP[ao]d|iPhone/i.test(t)?(e.iOS=!0,navigator.appVersion.match(/OS (\d+)/),e.iOSVersion=parseInt(RegExp.$1,10),e.iPhone=-1!==t.toLowerCase().indexOf("iphone"),e.iPad=-1!==t.toLowerCase().indexOf("ipad")):/Kindle/.test(t)||/\bKF[A-Z][A-Z]+/.test(t)||/Silk.*Mobile Safari/.test(t)?e.kindle=!0:/CrOS/.test(t)&&(e.chromeOS=!0),(/Windows Phone/i.test(t)||/IEMobile/i.test(t))&&(e.android=!1,e.iOS=!1,e.macOS=!1,e.windows=!0,e.windowsPhone=!0);var i=/Silk/.test(t);return(e.windows||e.macOS||e.linux&&!i||e.chromeOS)&&(e.desktop=!0),(e.windowsPhone||/Windows NT/i.test(t)&&/Touch/i.test(t))&&(e.desktop=!1),navigator.standalone&&(e.webApp=!0),void 0!==window.cordova&&(e.cordova=!0),"undefined"!=typeof process&&process.versions&&process.versions.node&&(e.node=!0),e.node&&"object"==typeof process.versions&&(e.nodeWebkit=!!process.versions["node-webkit"],e.electron=!!process.versions.electron),void 0!==window.ejecta&&(e.ejecta=!0),/Crosswalk/.test(t)&&(e.crosswalk=!0),e.pixelRatio=window.devicePixelRatio||1,e}()},14677:t=>{var e={h264:!1,hls:!1,mp4:!1,ogg:!1,vp9:!1,webm:!1};t.exports=function(){var t=document.createElement("video"),i=!!t.canPlayType;try{i&&(t.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,"")&&(e.ogg=!0),t.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,"")&&(e.h264=!0,e.mp4=!0),t.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")&&(e.webm=!0),t.canPlayType('video/webm; codecs="vp9"').replace(/^no$/,"")&&(e.vp9=!0),t.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"').replace(/^no$/,"")&&(e.hls=!0))}catch(t){}return e}()},82113:(t,e,i)=>{t.exports={os:i(60236),browser:i(95653),features:i(33789),input:i(59188),audio:i(9715),video:i(14677),fullscreen:i(22513),canvasFeatures:i(86877)}},1174:t=>{t.exports={TOP_LEFT:0,TOP_CENTER:1,TOP_RIGHT:2,LEFT_TOP:3,LEFT_CENTER:4,LEFT_BOTTOM:5,CENTER:6,RIGHT_TOP:7,RIGHT_CENTER:8,RIGHT_BOTTOM:9,BOTTOM_LEFT:10,BOTTOM_CENTER:11,BOTTOM_RIGHT:12}},21041:(t,e,i)=>{var n=i(28589),r=i(53309),s=i(5382),o=i(29763);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),o(t,r(e)+i),s(t,n(e)+a),t}},1775:(t,e,i)=>{var n=i(28589),r=i(80891),s=i(5382),o=i(314);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),o(t,r(e)-i),s(t,n(e)+a),t}},59:(t,e,i)=>{var n=i(28589),r=i(32018),s=i(5382),o=i(73659);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),o(t,r(e)+i),s(t,n(e)+a),t}},25798:(t,e,i)=>{var n=i(47742),r=i(53309),s=i(99128);t.exports=function(t,e,i,o){return void 0===i&&(i=0),void 0===o&&(o=0),n(t,r(e)+i,s(e)+o),t}},61968:(t,e,i)=>{var n=i(99128),r=i(80891),s=i(54869),o=i(314);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),o(t,r(e)-i),s(t,n(e)+a),t}},4026:(t,e,i)=>{var n=i(1174),r=[];r[n.BOTTOM_CENTER]=i(21041),r[n.BOTTOM_LEFT]=i(1775),r[n.BOTTOM_RIGHT]=i(59),r[n.CENTER]=i(25798),r[n.LEFT_CENTER]=i(61968),r[n.RIGHT_CENTER]=i(1681),r[n.TOP_CENTER]=i(44215),r[n.TOP_LEFT]=i(44053),r[n.TOP_RIGHT]=i(9451),r[n.LEFT_BOTTOM]=r[n.BOTTOM_LEFT],r[n.LEFT_TOP]=r[n.TOP_LEFT],r[n.RIGHT_BOTTOM]=r[n.BOTTOM_RIGHT],r[n.RIGHT_TOP]=r[n.TOP_RIGHT];t.exports=function(t,e,i,n,s){return r[i](t,e,n,s)}},1681:(t,e,i)=>{var n=i(99128),r=i(32018),s=i(54869),o=i(73659);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),o(t,r(e)+i),s(t,n(e)+a),t}},44215:(t,e,i)=>{var n=i(53309),r=i(44290),s=i(29763),o=i(48703);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),s(t,n(e)+i),o(t,r(e)-a),t}},44053:(t,e,i)=>{var n=i(80891),r=i(44290),s=i(314),o=i(48703);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),s(t,n(e)-i),o(t,r(e)-a),t}},9451:(t,e,i)=>{var n=i(32018),r=i(44290),s=i(73659),o=i(48703);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),s(t,n(e)+i),o(t,r(e)-a),t}},61993:(t,e,i)=>{t.exports={BottomCenter:i(21041),BottomLeft:i(1775),BottomRight:i(59),Center:i(25798),LeftCenter:i(61968),QuickSet:i(4026),RightCenter:i(1681),TopCenter:i(44215),TopLeft:i(44053),TopRight:i(9451)}},7854:(t,e,i)=>{var n=i(1174),r=i(80933),s={In:i(61993),To:i(53361)};s=r(!1,s,n),t.exports=s},75421:(t,e,i)=>{var n=i(28589),r=i(53309),s=i(29763),o=i(48703);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),s(t,r(e)+i),o(t,n(e)+a),t}},54728:(t,e,i)=>{var n=i(28589),r=i(80891),s=i(314),o=i(48703);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),s(t,r(e)-i),o(t,n(e)+a),t}},77792:(t,e,i)=>{var n=i(28589),r=i(32018),s=i(73659),o=i(48703);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),s(t,r(e)+i),o(t,n(e)+a),t}},38726:(t,e,i)=>{var n=i(28589),r=i(80891),s=i(5382),o=i(73659);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),o(t,r(e)-i),s(t,n(e)+a),t}},85362:(t,e,i)=>{var n=i(99128),r=i(80891),s=i(54869),o=i(73659);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),o(t,r(e)-i),s(t,n(e)+a),t}},2912:(t,e,i)=>{var n=i(80891),r=i(44290),s=i(73659),o=i(48703);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),s(t,n(e)-i),o(t,r(e)-a),t}},82526:(t,e,i)=>{var n=i(1174),r=[];r[n.BOTTOM_CENTER]=i(75421),r[n.BOTTOM_LEFT]=i(54728),r[n.BOTTOM_RIGHT]=i(77792),r[n.LEFT_BOTTOM]=i(38726),r[n.LEFT_CENTER]=i(85362),r[n.LEFT_TOP]=i(2912),r[n.RIGHT_BOTTOM]=i(42418),r[n.RIGHT_CENTER]=i(97786),r[n.RIGHT_TOP]=i(39322),r[n.TOP_CENTER]=i(33677),r[n.TOP_LEFT]=i(33886),r[n.TOP_RIGHT]=i(84653);t.exports=function(t,e,i,n,s){return r[i](t,e,n,s)}},42418:(t,e,i)=>{var n=i(28589),r=i(32018),s=i(5382),o=i(314);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),o(t,r(e)+i),s(t,n(e)+a),t}},97786:(t,e,i)=>{var n=i(99128),r=i(32018),s=i(54869),o=i(314);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),o(t,r(e)+i),s(t,n(e)+a),t}},39322:(t,e,i)=>{var n=i(32018),r=i(44290),s=i(314),o=i(48703);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),s(t,n(e)+i),o(t,r(e)-a),t}},33677:(t,e,i)=>{var n=i(53309),r=i(44290),s=i(5382),o=i(29763);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),o(t,n(e)+i),s(t,r(e)-a),t}},33886:(t,e,i)=>{var n=i(80891),r=i(44290),s=i(5382),o=i(314);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),o(t,n(e)-i),s(t,r(e)-a),t}},84653:(t,e,i)=>{var n=i(32018),r=i(44290),s=i(5382),o=i(73659);t.exports=function(t,e,i,a){return void 0===i&&(i=0),void 0===a&&(a=0),o(t,n(e)+i),s(t,r(e)-a),t}},53361:(t,e,i)=>{t.exports={BottomCenter:i(75421),BottomLeft:i(54728),BottomRight:i(77792),LeftBottom:i(38726),LeftCenter:i(85362),LeftTop:i(2912),QuickSet:i(82526),RightBottom:i(42418),RightCenter:i(97786),RightTop:i(39322),TopCenter:i(33677),TopLeft:i(33886),TopRight:i(84653)}},47742:(t,e,i)=>{var n=i(29763),r=i(54869);t.exports=function(t,e,i){return n(t,e),r(t,i)}},28589:t=>{t.exports=function(t){return t.y+t.height-t.height*t.originY}},53309:t=>{t.exports=function(t){return t.x-t.width*t.originX+.5*t.width}},99128:t=>{t.exports=function(t){return t.y-t.height*t.originY+.5*t.height}},80891:t=>{t.exports=function(t){return t.x-t.width*t.originX}},73678:t=>{t.exports=function(t){return t.width*t.originX}},60199:t=>{t.exports=function(t){return t.height*t.originY}},32018:t=>{t.exports=function(t){return t.x+t.width-t.width*t.originX}},44290:t=>{t.exports=function(t){return t.y-t.height*t.originY}},5382:t=>{t.exports=function(t,e){return t.y=e-t.height+t.height*t.originY,t}},29763:t=>{t.exports=function(t,e){var i=t.width*t.originX;return t.x=e+i-.5*t.width,t}},54869:t=>{t.exports=function(t,e){var i=t.height*t.originY;return t.y=e+i-.5*t.height,t}},314:t=>{t.exports=function(t,e){return t.x=e+t.width*t.originX,t}},73659:t=>{t.exports=function(t,e){return t.x=e-t.width+t.width*t.originX,t}},48703:t=>{t.exports=function(t,e){return t.y=e+t.height*t.originY,t}},50342:(t,e,i)=>{t.exports={CenterOn:i(47742),GetBottom:i(28589),GetCenterX:i(53309),GetCenterY:i(99128),GetLeft:i(80891),GetOffsetX:i(73678),GetOffsetY:i(60199),GetRight:i(32018),GetTop:i(44290),SetBottom:i(5382),SetCenterX:i(29763),SetCenterY:i(54869),SetLeft:i(314),SetRight:i(73659),SetTop:i(48703)}},13227:t=>{t.exports={setCrisp:function(t){return["optimizeSpeed","-moz-crisp-edges","-o-crisp-edges","-webkit-optimize-contrast","optimize-contrast","crisp-edges","pixelated"].forEach((function(e){t.style["image-rendering"]=e})),t.style.msInterpolationMode="nearest-neighbor",t},setBicubic:function(t){return t.style["image-rendering"]="auto",t.style.msInterpolationMode="bicubic",t}}},89429:(t,e,i)=>{var n,r,s,o=i(50460),a=i(505),h=[],u=!1;t.exports=(s=function(){var t=0;return h.forEach((function(e){e.parent&&t++})),t},{create2D:function(t,e,i){return n(t,e,i,o.CANVAS)},create:n=function(t,e,i,n,s){var l;void 0===e&&(e=1),void 0===i&&(i=1),void 0===n&&(n=o.CANVAS),void 0===s&&(s=!1);var c=r(n);return null===c?(c={parent:t,canvas:document.createElement("canvas"),type:n},n===o.CANVAS&&h.push(c),l=c.canvas):(c.parent=t,l=c.canvas),s&&(c.parent=l),l.width=e,l.height=i,u&&n===o.CANVAS&&a.disable(l.getContext("2d")),l},createWebGL:function(t,e,i){return n(t,e,i,o.WEBGL)},disableSmoothing:function(){u=!0},enableSmoothing:function(){u=!1},first:r=function(t){if(void 0===t&&(t=o.CANVAS),t===o.WEBGL)return null;for(var e=0;e<h.length;e++){var i=h[e];if(!i.parent&&i.type===t)return i}return null},free:function(){return h.length-s()},pool:h,remove:function(t){var e=t instanceof HTMLCanvasElement;h.forEach((function(i){(e&&i.canvas===t||!e&&i.parent===t)&&(i.parent=null,i.canvas.width=1,i.canvas.height=1)}))},total:s})},505:t=>{var e,i="";t.exports={disable:function(t){return""===i&&(i=e(t)),i&&(t[i]=!1),t},enable:function(t){return""===i&&(i=e(t)),i&&(t[i]=!0),t},getPrefix:e=function(t){for(var e=["i","webkitI","msI","mozI","oI"],i=0;i<e.length;i++){var n=e[i]+"mageSmoothingEnabled";if(n in t)return n}return null},isEnabled:function(t){return null!==i?t[i]:null}}},63812:t=>{t.exports=function(t,e){return void 0===e&&(e="none"),t.style.msTouchAction=e,t.style["ms-touch-action"]=e,t.style["touch-action"]=e,t}},71748:t=>{t.exports=function(t,e){void 0===e&&(e="none");return["-webkit-","-khtml-","-moz-","-ms-",""].forEach((function(i){t.style[i+"user-select"]=e})),t.style["-webkit-touch-callout"]=e,t.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",t}},52015:(t,e,i)=>{t.exports={CanvasInterpolation:i(13227),CanvasPool:i(89429),Smoothing:i(505),TouchAction:i(63812),UserSelect:i(71748)}},81615:(t,e,i)=>{var n=i(47379),r=i(27994),s=i(30264),o=i(87198),a=i(13977),h=new n({initialize:function(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=255),this.r=0,this.g=0,this.b=0,this.a=255,this._h=0,this._s=0,this._v=0,this._locked=!1,this.gl=[0,0,0,1],this._color=0,this._color32=0,this._rgba="",this.setTo(t,e,i,n)},transparent:function(){return this._locked=!0,this.red=0,this.green=0,this.blue=0,this.alpha=0,this._locked=!1,this.update(!0)},setTo:function(t,e,i,n,r){return void 0===n&&(n=255),void 0===r&&(r=!0),this._locked=!0,this.red=t,this.green=e,this.blue=i,this.alpha=n,this._locked=!1,this.update(r)},setGLTo:function(t,e,i,n){return void 0===n&&(n=1),this._locked=!0,this.redGL=t,this.greenGL=e,this.blueGL=i,this.alphaGL=n,this._locked=!1,this.update(!0)},setFromRGB:function(t){return this._locked=!0,this.red=t.r,this.green=t.g,this.blue=t.b,t.hasOwnProperty("a")&&(this.alpha=t.a),this._locked=!1,this.update(!0)},setFromHSV:function(t,e,i){return o(t,e,i,this)},update:function(t){if(void 0===t&&(t=!1),this._locked)return this;var e=this.r,i=this.g,n=this.b,o=this.a;return this._color=r(e,i,n),this._color32=s(e,i,n,o),this._rgba="rgba("+e+","+i+","+n+","+o/255+")",t&&a(e,i,n,this),this},updateHSV:function(){var t=this.r,e=this.g,i=this.b;return a(t,e,i,this),this},clone:function(){return new h(this.r,this.g,this.b,this.a)},gray:function(t){return this.setTo(t,t,t)},random:function(t,e){void 0===t&&(t=0),void 0===e&&(e=255);var i=Math.floor(t+Math.random()*(e-t)),n=Math.floor(t+Math.random()*(e-t)),r=Math.floor(t+Math.random()*(e-t));return this.setTo(i,n,r)},randomGray:function(t,e){void 0===t&&(t=0),void 0===e&&(e=255);var i=Math.floor(t+Math.random()*(e-t));return this.setTo(i,i,i)},saturate:function(t){return this.s+=t/100,this},desaturate:function(t){return this.s-=t/100,this},lighten:function(t){return this.v+=t/100,this},darken:function(t){return this.v-=t/100,this},brighten:function(t){var e=this.r,i=this.g,n=this.b;return e=Math.max(0,Math.min(255,e-Math.round(-t/100*255))),i=Math.max(0,Math.min(255,i-Math.round(-t/100*255))),n=Math.max(0,Math.min(255,n-Math.round(-t/100*255))),this.setTo(e,i,n)},color:{get:function(){return this._color}},color32:{get:function(){return this._color32}},rgba:{get:function(){return this._rgba}},redGL:{get:function(){return this.gl[0]},set:function(t){this.gl[0]=Math.min(Math.abs(t),1),this.r=Math.floor(255*this.gl[0]),this.update(!0)}},greenGL:{get:function(){return this.gl[1]},set:function(t){this.gl[1]=Math.min(Math.abs(t),1),this.g=Math.floor(255*this.gl[1]),this.update(!0)}},blueGL:{get:function(){return this.gl[2]},set:function(t){this.gl[2]=Math.min(Math.abs(t),1),this.b=Math.floor(255*this.gl[2]),this.update(!0)}},alphaGL:{get:function(){return this.gl[3]},set:function(t){this.gl[3]=Math.min(Math.abs(t),1),this.a=Math.floor(255*this.gl[3]),this.update()}},red:{get:function(){return this.r},set:function(t){t=Math.floor(Math.abs(t)),this.r=Math.min(t,255),this.gl[0]=t/255,this.update(!0)}},green:{get:function(){return this.g},set:function(t){t=Math.floor(Math.abs(t)),this.g=Math.min(t,255),this.gl[1]=t/255,this.update(!0)}},blue:{get:function(){return this.b},set:function(t){t=Math.floor(Math.abs(t)),this.b=Math.min(t,255),this.gl[2]=t/255,this.update(!0)}},alpha:{get:function(){return this.a},set:function(t){t=Math.floor(Math.abs(t)),this.a=Math.min(t,255),this.gl[3]=t/255,this.update()}},h:{get:function(){return this._h},set:function(t){this._h=t,o(t,this._s,this._v,this)}},s:{get:function(){return this._s},set:function(t){this._s=t,o(this._h,t,this._v,this)}},v:{get:function(){return this._v},set:function(t){this._v=t,o(this._h,this._s,t,this)}}});t.exports=h},97591:t=>{t.exports=function(t){var e={r:t>>16&255,g:t>>8&255,b:255&t,a:255};return t>16777215&&(e.a=t>>>24),e}},73502:t=>{t.exports=function(t){var e=t.toString(16);return 1===e.length?"0"+e:e}},27994:t=>{t.exports=function(t,e,i){return t<<16|e<<8|i}},30264:t=>{t.exports=function(t,e,i,n){return n<<24|t<<16|e<<8|i}},14832:(t,e,i)=>{var n=i(81615),r=i(92660);t.exports=function(t,e,i){var s=i,o=i,a=i;if(0!==e){var h=i<.5?i*(1+e):i+e-i*e,u=2*i-h;s=r(u,h,t+1/3),o=r(u,h,t),a=r(u,h,t-1/3)}return(new n).setGLTo(s,o,a,1)}},15878:(t,e,i)=>{var n=i(87198);t.exports=function(t,e){void 0===t&&(t=1),void 0===e&&(e=1);for(var i=[],r=0;r<=359;r++)i.push(n(r/359,t,e));return i}},87198:(t,e,i)=>{var n=i(27994);t.exports=function(t,e,i,r){void 0===e&&(e=1),void 0===i&&(i=1);var s=Math.floor(6*t),o=6*t-s,a=Math.floor(i*(1-e)*255),h=Math.floor(i*(1-o*e)*255),u=Math.floor(i*(1-(1-o)*e)*255),l=i=Math.floor(i*=255),c=i,d=i,p=s%6;return 0===p?(c=u,d=a):1===p?(l=h,d=a):2===p?(l=a,d=u):3===p?(l=a,c=h):4===p?(l=u,c=a):5===p&&(c=a,d=h),r?r.setTo?r.setTo(l,c,d,r.alpha,!1):(r.r=l,r.g=c,r.b=d,r.color=n(l,c,d),r):{r:l,g:c,b:d,color:n(l,c,d)}}},54984:(t,e,i)=>{var n=i(81615);t.exports=function(t){var e=new n;t=t.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,(function(t,e,i,n){return e+e+i+i+n+n}));var i=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);if(i){var r=parseInt(i[1],16),s=parseInt(i[2],16),o=parseInt(i[3],16);e.setTo(r,s,o)}return e}},92660:t=>{t.exports=function(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}},55568:(t,e,i)=>{var n=i(81615),r=i(88095);t.exports=function(t){var e=r(t);return new n(e.r,e.g,e.b,e.a)}},88095:t=>{t.exports=function(t){return t>16777215?{a:t>>>24,r:t>>16&255,g:t>>8&255,b:255&t}:{a:255,r:t>>16&255,g:t>>8&255,b:255&t}}},66791:(t,e,i)=>{var n=i(57459),r=function(t,e,i,r,s,o,a,h){void 0===a&&(a=100),void 0===h&&(h=0);var u=h/a;return{r:n(t,r,u),g:n(e,s,u),b:n(i,o,u)}};t.exports={RGBWithRGB:r,ColorWithRGB:function(t,e,i,n,s,o){return void 0===s&&(s=100),void 0===o&&(o=0),r(t.r,t.g,t.b,e,i,n,s,o)},ColorWithColor:function(t,e,i,n){return void 0===i&&(i=100),void 0===n&&(n=0),r(t.r,t.g,t.b,e.r,e.g,e.b,i,n)}}},10480:(t,e,i)=>{var n=i(81615);t.exports=function(t){return new n(t.r,t.g,t.b,t.a)}},84367:(t,e,i)=>{var n=i(81615);t.exports=function(t){var e=new n,i=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(t.toLowerCase());if(i){var r=parseInt(i[1],10),s=parseInt(i[2],10),o=parseInt(i[3],10),a=void 0!==i[4]?parseFloat(i[4]):1;e.setTo(r,s,o,255*a)}return e}},13977:t=>{t.exports=function(t,e,i,n){void 0===n&&(n={h:0,s:0,v:0}),t/=255,e/=255,i/=255;var r=Math.min(t,e,i),s=Math.max(t,e,i),o=s-r,a=0,h=0===s?0:o/s,u=s;return s!==r&&(s===t?a=(e-i)/o+(e<i?6:0):s===e?a=(i-t)/o+2:s===i&&(a=(t-e)/o+4),a/=6),n.hasOwnProperty("_h")?(n._h=a,n._s=h,n._v=u):(n.h=a,n.s=h,n.v=u),n}},51923:(t,e,i)=>{var n=i(73502);t.exports=function(t,e,i,r,s){return void 0===r&&(r=255),void 0===s&&(s="#"),"#"===s?"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1):"0x"+n(r)+n(t)+n(e)+n(i)}},74697:(t,e,i)=>{var n=i(67630),r=i(81615);t.exports=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=255),new r(n(t,e),n(t,e),n(t,e))}},64031:(t,e,i)=>{var n=i(54984),r=i(55568),s=i(10480),o=i(84367);t.exports=function(t){switch(typeof t){case"string":return"rgb"===t.substr(0,3).toLowerCase()?o(t):n(t);case"number":return r(t);case"object":return s(t)}}},82532:(t,e,i)=>{var n=i(81615);n.ColorToRGBA=i(97591),n.ComponentToHex=i(73502),n.GetColor=i(27994),n.GetColor32=i(30264),n.HexStringToColor=i(54984),n.HSLToColor=i(14832),n.HSVColorWheel=i(15878),n.HSVToRGB=i(87198),n.HueToComponent=i(92660),n.IntegerToColor=i(55568),n.IntegerToRGB=i(88095),n.Interpolate=i(66791),n.ObjectToColor=i(10480),n.RandomRGB=i(74697),n.RGBStringToColor=i(84367),n.RGBToHSV=i(13977),n.RGBToString=i(51923),n.ValueToColor=i(64031),t.exports=n},33798:(t,e,i)=>{t.exports={Align:i(7854),BaseShader:i(86381),Bounds:i(50342),Canvas:i(52015),Color:i(82532),Masks:i(31289)}},35615:(t,e,i)=>{var n=i(47379),r=i(80827),s=new n({initialize:function(t,e){var i=t.sys.game.renderer;if(this.renderer=i,this.bitmapMask=e,this.maskTexture=null,this.mainTexture=null,this.dirty=!0,this.mainFramebuffer=null,this.maskFramebuffer=null,this.prevFramebuffer=null,this.invertAlpha=!1,this.isStencil=!1,i&&i.gl){var n=i.width,s=i.height,o=0==(n&n-1)&&0==(s&s-1),a=i.gl,h=o?a.REPEAT:a.CLAMP_TO_EDGE,u=a.LINEAR;this.mainTexture=i.createTexture2D(0,u,u,h,h,a.RGBA,null,n,s),this.maskTexture=i.createTexture2D(0,u,u,h,h,a.RGBA,null,n,s),this.mainFramebuffer=i.createFramebuffer(n,s,this.mainTexture,!0),this.maskFramebuffer=i.createFramebuffer(n,s,this.maskTexture,!0),t.sys.game.events.on(r.CONTEXT_RESTORED,(function(t){var e=t.width,i=t.height,n=0==(e&e-1)&&0==(i&i-1),r=t.gl,s=n?r.REPEAT:r.CLAMP_TO_EDGE,o=r.LINEAR;this.mainTexture=t.createTexture2D(0,o,o,s,s,r.RGBA,null,e,i),this.maskTexture=t.createTexture2D(0,o,o,s,s,r.RGBA,null,e,i),this.mainFramebuffer=t.createFramebuffer(e,i,this.mainTexture,!0),this.maskFramebuffer=t.createFramebuffer(e,i,this.maskTexture,!0)}),this)}},setBitmap:function(t){this.bitmapMask=t},preRenderWebGL:function(t,e,i){t.pipelines.BitmapMaskPipeline.beginMask(this,e,i)},postRenderWebGL:function(t,e){t.pipelines.BitmapMaskPipeline.endMask(this,e)},preRenderCanvas:function(){},postRenderCanvas:function(){},destroy:function(){this.bitmapMask=null;var t=this.renderer;t&&t.gl&&(t.deleteTexture(this.mainTexture),t.deleteTexture(this.maskTexture),t.deleteFramebuffer(this.mainFramebuffer),t.deleteFramebuffer(this.maskFramebuffer)),this.mainTexture=null,this.maskTexture=null,this.mainFramebuffer=null,this.maskFramebuffer=null,this.prevFramebuffer=null,this.renderer=null}});t.exports=s},48315:(t,e,i)=>{var n=new(i(47379))({initialize:function(t,e){this.geometryMask=e,this.invertAlpha=!1,this.isStencil=!0,this.level=0},setShape:function(t){return this.geometryMask=t,this},setInvertAlpha:function(t){return void 0===t&&(t=!0),this.invertAlpha=t,this},preRenderWebGL:function(t,e,i){var n=t.gl;t.flush(),0===t.maskStack.length&&(n.enable(n.STENCIL_TEST),n.clear(n.STENCIL_BUFFER_BIT),t.maskCount=0),t.currentCameraMask.mask!==this&&(t.currentMask.mask=this),t.maskStack.push({mask:this,camera:i}),this.applyStencil(t,i,!0),t.maskCount++},applyStencil:function(t,e,i){var n=t.gl,r=this.geometryMask,s=t.maskCount;n.colorMask(!1,!1,!1,!1),i?(n.stencilFunc(n.EQUAL,s,255),n.stencilOp(n.KEEP,n.KEEP,n.INCR)):(n.stencilFunc(n.EQUAL,s+1,255),n.stencilOp(n.KEEP,n.KEEP,n.DECR)),r.renderWebGL(t,r,0,e),t.flush(),n.colorMask(!0,!0,!0,!0),n.stencilOp(n.KEEP,n.KEEP,n.KEEP),i?this.invertAlpha?n.stencilFunc(n.NOTEQUAL,s+1,255):n.stencilFunc(n.EQUAL,s+1,255):this.invertAlpha?n.stencilFunc(n.NOTEQUAL,s,255):n.stencilFunc(n.EQUAL,s,255)},postRenderWebGL:function(t){var e=t.gl;if(t.maskStack.pop(),t.maskCount--,0===t.maskStack.length)t.flush(),t.currentMask.mask=null,e.disable(e.STENCIL_TEST);else{t.flush();var i=t.maskStack[t.maskStack.length-1];i.mask.applyStencil(t,i.camera,!1),t.currentCameraMask.mask!==i.mask?(t.currentMask.mask=i.mask,t.currentMask.camera=i.camera):t.currentMask.mask=null}},preRenderCanvas:function(t,e,i){var n=this.geometryMask;t.currentContext.save(),n.renderCanvas(t,n,0,i,null,null,!0),t.currentContext.clip()},postRenderCanvas:function(t){t.currentContext.restore()},destroy:function(){this.geometryMask=null}});t.exports=n},31289:(t,e,i)=>{t.exports={BitmapMask:i(35615),GeometryMask:i(48315)}},86381:(t,e,i)=>{var n=new(i(47379))({initialize:function(t,e,i,n){e&&""!==e||(e=["precision mediump float;","uniform vec2 resolution;","varying vec2 fragCoord;","void main () {"," vec2 uv = fragCoord / resolution.xy;"," gl_FragColor = vec4(uv.xyx, 1.0);","}"].join("\n")),i&&""!==i||(i=["precision mediump float;","uniform mat4 uProjectionMatrix;","uniform mat4 uViewMatrix;","uniform vec2 uResolution;","attribute vec2 inPosition;","varying vec2 fragCoord;","void main () {","gl_Position = uProjectionMatrix * uViewMatrix * vec4(inPosition, 1.0, 1.0);","fragCoord = vec2(inPosition.x, uResolution.y - inPosition.y);","}"].join("\n")),void 0===n&&(n=null),this.key=t,this.fragmentSrc=e,this.vertexSrc=i,this.uniforms=n}});t.exports=n},99641:t=>{t.exports=function(t,e){var i;if(e)"string"==typeof e?i=document.getElementById(e):"object"==typeof e&&1===e.nodeType&&(i=e);else if(t.parentElement)return t;return i||(i=document.body),i.appendChild(t),t}},36141:(t,e,i)=>{var n=i(99641);t.exports=function(t){var e=t.config;if(e.parent&&e.domCreateContainer){var i=document.createElement("div");i.style.cssText=["display: block;","width: "+t.scale.width+"px;","height: "+t.scale.height+"px;","padding: 0; margin: 0;","position: absolute;","overflow: hidden;","pointer-events: none;","transform: scale(1);","transform-origin: left top;"].join(" "),t.domContainer=i,n(i,e.parent)}}},71602:(t,e,i)=>{var n=i(60236);t.exports=function(t){if("complete"!==document.readyState&&"interactive"!==document.readyState){var e=function(){document.removeEventListener("deviceready",e,!0),document.removeEventListener("DOMContentLoaded",e,!0),window.removeEventListener("load",e,!0),t()};document.body?n.cordova?document.addEventListener("deviceready",e,!1):(document.addEventListener("DOMContentLoaded",e,!0),window.addEventListener("load",e,!0)):window.setTimeout(e,20)}else t()}},6056:t=>{t.exports=function(t){if(!t)return window.innerHeight;var e=Math.abs(window.orientation),i={w:0,h:0},n=document.createElement("div");return n.setAttribute("style","position: fixed; height: 100vh; width: 0; top: 0"),document.documentElement.appendChild(n),i.w=90===e?n.offsetHeight:window.innerWidth,i.h=90===e?window.innerWidth:n.offsetHeight,document.documentElement.removeChild(n),n=null,90!==Math.abs(window.orientation)?i.h:i.w}},16070:(t,e,i)=>{var n=i(67467);t.exports=function(t,e){var i=window.screen,r=!!i&&(i.orientation||i.mozOrientation||i.msOrientation);if(r&&"string"==typeof r.type)return r.type;if("string"==typeof r)return r;if(i)return i.height>i.width?n.ORIENTATION.PORTRAIT:n.ORIENTATION.LANDSCAPE;if("number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?n.ORIENTATION.PORTRAIT:n.ORIENTATION.LANDSCAPE;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return n.ORIENTATION.PORTRAIT;if(window.matchMedia("(orientation: landscape)").matches)return n.ORIENTATION.LANDSCAPE}return e>t?n.ORIENTATION.PORTRAIT:n.ORIENTATION.LANDSCAPE}},74537:t=>{t.exports=function(t){var e;return""!==t&&("string"==typeof t?e=document.getElementById(t):t&&1===t.nodeType&&(e=t)),e||(e=document.body),e}},78403:t=>{t.exports=function(t){var e="";try{if(window.DOMParser)e=(new DOMParser).parseFromString(t,"text/xml");else(e=new ActiveXObject("Microsoft.XMLDOM")).loadXML(t)}catch(t){e=null}return e&&e.documentElement&&!e.getElementsByTagName("parsererror").length?e:null}},68791:t=>{t.exports=function(t){t.parentNode&&t.parentNode.removeChild(t)}},41797:(t,e,i)=>{var n=i(47379),r=i(49035),s=new n({initialize:function(){this.isRunning=!1,this.callback=r,this.tick=0,this.isSetTimeOut=!1,this.timeOutID=null,this.lastTime=0,this.target=0;var t=this;this.step=function e(){var i=window.performance.now();t.lastTime=t.tick,t.tick=i,t.callback(i),t.timeOutID=window.requestAnimationFrame(e)},this.stepTimeout=function e(){var i=Date.now(),n=Math.min(Math.max(2*t.target+t.tick-i,0),t.target);t.lastTime=t.tick,t.tick=i,t.callback(i),t.timeOutID=window.setTimeout(e,n)}},start:function(t,e,i){this.isRunning||(this.callback=t,this.isSetTimeOut=e,this.target=i,this.isRunning=!0,this.timeOutID=e?window.setTimeout(this.stepTimeout,0):window.requestAnimationFrame(this.step))},stop:function(){this.isRunning=!1,this.isSetTimeOut?clearTimeout(this.timeOutID):window.cancelAnimationFrame(this.timeOutID)},destroy:function(){this.stop(),this.callback=r}});t.exports=s},69887:(t,e,i)=>{var n={AddToDOM:i(99641),DOMContentLoaded:i(71602),GetScreenOrientation:i(16070),GetTarget:i(74537),ParseXML:i(78403),RemoveFromDOM:i(68791),RequestAnimationFrame:i(41797)};t.exports=n},53912:(t,e,i)=>{var n=i(47379),r=i(17168),s=i(50354),o=new n({Extends:r,initialize:function(){r.call(this)},shutdown:function(){this.removeAllListeners()},destroy:function(){this.removeAllListeners()}});s.register("EventEmitter",o,"events"),t.exports=o},27408:(t,e,i)=>{t.exports={EventEmitter:i(53912)}},74865:(t,e,i)=>{var n=i(35869),r=i(57687);t.exports=function(t,e,i){e.x=r(i,"x",0),e.y=r(i,"y",0),e.depth=r(i,"depth",0),e.flipX=r(i,"flipX",!1),e.flipY=r(i,"flipY",!1);var s=r(i,"scale",null);"number"==typeof s?e.setScale(s):null!==s&&(e.scaleX=r(s,"x",1),e.scaleY=r(s,"y",1));var o=r(i,"scrollFactor",null);"number"==typeof o?e.setScrollFactor(o):null!==o&&(e.scrollFactorX=r(o,"x",1),e.scrollFactorY=r(o,"y",1)),e.rotation=r(i,"rotation",0);var a=r(i,"angle",null);null!==a&&(e.angle=a),e.alpha=r(i,"alpha",1);var h=r(i,"origin",null);if("number"==typeof h)e.setOrigin(h);else if(null!==h){var u=r(h,"x",.5),l=r(h,"y",.5);e.setOrigin(u,l)}return e.blendMode=r(i,"blendMode",n.NORMAL),e.visible=r(i,"visible",!0),r(i,"add",!0)&&t.sys.displayList.add(e),e.preUpdate&&t.sys.updateList.add(e),e}},4777:(t,e,i)=>{var n=i(57687);t.exports=function(t,e){var i=n(e,"anims",null);if(null===i)return t;if("string"==typeof i)t.anims.play(i);else if("object"==typeof i){var r=t.anims,s=n(i,"key",void 0),o=n(i,"startFrame",void 0),a=n(i,"delay",0),h=n(i,"repeat",0),u=n(i,"repeatDelay",0),l=n(i,"yoyo",!1),c=n(i,"play",!1),d=n(i,"delayedPlay",0);r.setDelay(a),r.setRepeat(h),r.setRepeatDelay(u),r.setYoyo(l),c?r.play(s,o):d>0?r.delayedPlay(d,s,o):r.load(s)}return t}},28983:(t,e,i)=>{var n=i(47379),r=i(29365),s=i(50354),o=i(88637),a=i(59199),h=new n({Extends:r,initialize:function(t){r.call(this,t),this.sortChildrenFlag=!1,this.scene=t,this.systems=t.sys,t.sys.events.once(o.BOOT,this.boot,this),t.sys.events.on(o.START,this.start,this)},boot:function(){this.systems.events.once(o.DESTROY,this.destroy,this)},start:function(){this.systems.events.once(o.SHUTDOWN,this.shutdown,this)},queueDepthSort:function(){this.sortChildrenFlag=!0},depthSort:function(){this.sortChildrenFlag&&(a.inplace(this.list,this.sortByDepth),this.sortChildrenFlag=!1)},sortByDepth:function(t,e){return t._depth-e._depth},getChildren:function(){return this.list},shutdown:function(){for(var t=this.list.length;t--;)this.list[t].destroy(!0);this.list.length=0,this.systems.events.off(o.SHUTDOWN,this.shutdown,this)},destroy:function(){this.shutdown(),this.scene.sys.events.off(o.START,this.start,this),this.scene=null,this.systems=null}});s.register("DisplayList",h,"displayList"),t.exports=h},90554:(t,e,i)=>{var n=i(47379),r=i(82046),s=i(3881),o=i(17168),a=i(6783),h=new n({Extends:o,initialize:function(t,e){o.call(this),this.scene=t,this.type=e,this.state=0,this.parentContainer=null,this.name="",this.active=!0,this.tabIndex=-1,this.data=null,this.renderFlags=15,this.cameraFilter=0,this.input=null,this.body=null,this.ignoreDestroy=!1,t.sys.queueDepthSort()},setActive:function(t){return this.active=t,this},setName:function(t){return this.name=t,this},setState:function(t){return this.state=t,this},setDataEnabled:function(){return this.data||(this.data=new s(this)),this},setData:function(t,e){return this.data||(this.data=new s(this)),this.data.set(t,e),this},incData:function(t,e){return this.data||(this.data=new s(this)),this.data.inc(t,e),this},toggleData:function(t){return this.data||(this.data=new s(this)),this.data.toggle(t),this},getData:function(t){return this.data||(this.data=new s(this)),this.data.get(t)},setInteractive:function(t,e,i){return this.scene.sys.input.enable(this,t,e,i),this},disableInteractive:function(){return this.input&&(this.input.enabled=!1),this},removeInteractive:function(){return this.scene.sys.input.clear(this),this.input=void 0,this},update:function(){},toJSON:function(){return r(this)},willRender:function(t){return!(h.RENDER_MASK!==this.renderFlags||0!==this.cameraFilter&&this.cameraFilter&t.id)},getIndexList:function(){for(var t=this,e=this.parentContainer,i=[];e&&(i.unshift(e.getIndex(t)),t=e,e.parentContainer);)e=e.parentContainer;return i.unshift(this.scene.sys.displayList.getIndex(t)),i},destroy:function(t){if(void 0===t&&(t=!1),this.scene&&!this.ignoreDestroy){this.preDestroy&&this.preDestroy.call(this),this.emit(a.DESTROY,this);var e=this.scene.sys;t||(e.displayList.remove(this),e.updateList.remove(this)),this.input&&(e.input.clear(this),this.input=void 0),this.data&&(this.data.destroy(),this.data=void 0),this.body&&(this.body.destroy(),this.body=void 0),t||e.queueDepthSort(),this.active=!1,this.visible=!1,this.scene=void 0,this.parentContainer=void 0,this.removeAllListeners()}}});h.RENDER_MASK=15,t.exports=h},17517:(t,e,i)=>{var n=i(47379),r=i(50354),s=i(88637),o=new n({initialize:function(t){this.scene=t,this.systems=t.sys,this.displayList,this.updateList,t.sys.events.once(s.BOOT,this.boot,this),t.sys.events.on(s.START,this.start,this)},boot:function(){this.displayList=this.systems.displayList,this.updateList=this.systems.updateList,this.systems.events.once(s.DESTROY,this.destroy,this)},start:function(){this.systems.events.once(s.SHUTDOWN,this.shutdown,this)},shutdown:function(){this.systems.events.off(s.SHUTDOWN,this.shutdown,this)},destroy:function(){this.shutdown(),this.scene.sys.events.off(s.START,this.start,this),this.scene=null,this.systems=null,this.displayList=null,this.updateList=null}});o.register=function(t,e){o.prototype.hasOwnProperty(t)||(o.prototype[t]=e)},o.remove=function(t){o.prototype.hasOwnProperty(t)&&delete o.prototype[t]},r.register("GameObjectCreator",o,"make"),t.exports=o},81342:(t,e,i)=>{var n=i(47379),r=i(50354),s=i(88637),o=new n({initialize:function(t){this.scene=t,this.systems=t.sys,this.displayList,this.updateList,t.sys.events.once(s.BOOT,this.boot,this),t.sys.events.on(s.START,this.start,this)},boot:function(){this.displayList=this.systems.displayList,this.updateList=this.systems.updateList,this.systems.events.once(s.DESTROY,this.destroy,this)},start:function(){this.systems.events.once(s.SHUTDOWN,this.shutdown,this)},existing:function(t){return(t.renderCanvas||t.renderWebGL)&&this.displayList.add(t),t.preUpdate&&this.updateList.add(t),t},shutdown:function(){this.systems.events.off(s.SHUTDOWN,this.shutdown,this)},destroy:function(){this.shutdown(),this.scene.sys.events.off(s.START,this.start,this),this.scene=null,this.systems=null,this.displayList=null,this.updateList=null}});o.register=function(t,e){o.prototype.hasOwnProperty(t)||(o.prototype[t]=e)},o.remove=function(t){o.prototype.hasOwnProperty(t)&&delete o.prototype[t]},r.register("GameObjectFactory",o,"add"),t.exports=o},61118:(t,e,i)=>{var n=i(47379),r=i(7674),s=i(50354),o=i(88637),a=new n({Extends:r,initialize:function(t){r.call(this),this.scene=t,this.systems=t.sys,t.sys.events.once(o.BOOT,this.boot,this),t.sys.events.on(o.START,this.start,this)},boot:function(){this.systems.events.once(o.DESTROY,this.destroy,this)},start:function(){var t=this.systems.events;t.on(o.PRE_UPDATE,this.update,this),t.on(o.UPDATE,this.sceneUpdate,this),t.once(o.SHUTDOWN,this.shutdown,this)},sceneUpdate:function(t,e){for(var i=this._active,n=i.length,r=0;r<n;r++){var s=i[r];s.active&&s.preUpdate.call(s,t,e)}},shutdown:function(){for(var t=this._active.length;t--;)this._active[t].destroy(!0);for(t=this._pending.length;t--;)this._pending[t].destroy(!0);for(t=this._destroy.length;t--;)this._destroy[t].destroy(!0);this._toProcess=0,this._pending=[],this._active=[],this._destroy=[],this.removeAllListeners();var e=this.systems.events;e.off(o.PRE_UPDATE,this.preUpdate,this),e.off(o.UPDATE,this.sceneUpdate,this),e.off(o.SHUTDOWN,this.shutdown,this)},destroy:function(){this.shutdown(),this.systems.events.off(o.START,this.start,this),this.scene=null,this.systems=null}});s.register("UpdateList",a,"updateList"),t.exports=a},79268:t=>{t.exports=function(t,e,i){if(void 0===i)return i={local:{x:0,y:0,width:0,height:0},global:{x:0,y:0,width:0,height:0},lines:{shortest:0,longest:0,lengths:null,height:0},wrappedText:"",words:[],scaleX:0,scaleY:0};var n,r,s,o,a=t.text,h=a.length,u=t.maxWidth,l=t.wordWrapCharCode,c=Number.MAX_VALUE,d=Number.MAX_VALUE,p=0,f=0,m=t.fontData.chars,v=t.fontData.lineHeight,g=t.letterSpacing,y=0,_=0,x=0,b=null,w=0,T=0,M=t.fontSize/t.fontData.size,S=M*t.scaleX,E=M*t.scaleY,L=null,A=0,D=[],P=Number.MAX_VALUE,C=0,O=0,k=0,R=[],I=null;if(u>0){for(n=0;n<h;n++)if(10!==(x=a.charCodeAt(n))){if(b=m[x]){if(null!==L)var Y=b.kerning[A];x===l?null!==I&&(R.push({word:I.word,i:I.i,x:I.x*S,y:I.y*E,w:I.w*S,h:I.h*E,cr:!1}),I=null):(null===I&&(I={word:"",i:n,x:y,y:_,w:0,h:v,cr:!1}),I.word=I.word.concat(a[n]),I.w+=b.xOffset+b.xAdvance+(void 0!==Y?Y:0)),y+=b.xAdvance+g,L=b,A=x}}else null!==I&&(R.push({word:I.word,i:I.i,x:I.x*S,y:I.y*E,w:I.w*S,h:I.h*E,cr:!0}),I=null),y=0,_+=v,L=null;var F;null!==I&&R.push({word:I.word,i:I.i,x:I.x*S,y:I.y*E,w:I.w*S,h:I.h*E,cr:!1}),y=0,_=0,L=null,A=0;var N=0,B=[];for(n=0;n<R.length;n++){var U=R[n],j=U.x,H=U.x+U.w;if(F)N=j-(j-(F.x+F.w)+F.w),F=null;j-N>u||H-N>u?(B.push(U.i-1),U.cr?(B.push(U.i+U.word.length),N=0,F=null):F=U):U.cr&&(B.push(U.i+U.word.length),N=0,F=null)}for(n=B.length-1;n>=0;n--)r=a,s=B[n],o="\n",a=r.substr(0,s)+o+r.substr(s+1);i.wrappedText=a,h=a.length,R=[],I=null}for(n=0;n<h;n++)if(10!==(x=a.charCodeAt(n))){if(b=m[x]){if(w=y,T=_,null!==L){var z=b.kerning[A];w+=void 0!==z?z:0}c>w&&(c=w),d>T&&(d=T);var W=w+b.xAdvance,G=T+v;p<W&&(p=W),f<G&&(f=G),x===l?null!==I&&(R.push({word:I.word,i:I.i,x:I.x*S,y:I.y*E,w:I.w*S,h:I.h*E}),I=null):(null===I&&(I={word:"",i:n,x:y,y:_,w:0,h:v}),I.word=I.word.concat(a[n]),I.w+=b.xOffset+b.xAdvance+(void 0!==z?z:0)),y+=b.xAdvance+g,L=b,A=x,k=W*M}}else null!==I&&(R.push({word:I.word,i:I.i,x:I.x*S,y:I.y*E,w:I.w*S,h:I.h*E}),I=null),y=0,_+=v,L=null,D[O]=k,k>C&&(C=k),k<P&&(P=k),O++,k=0;null!==I&&R.push({word:I.word,i:I.i,x:I.x*S,y:I.y*E,w:I.w*S,h:I.h*E}),D[O]=k,k>C&&(C=k),k<P&&(P=k);var V=i.local,X=i.global,q=i.lines;return V.x=c*M,V.y=d*M,V.width=p*M,V.height=f*M,X.x=t.x-t.displayOriginX+c*S,X.y=t.y-t.displayOriginY+d*E,X.width=p*S,X.height=f*E,q.shortest=P,q.longest=C,q.lengths=D,e&&(V.x=Math.round(V.x),V.y=Math.round(V.y),V.width=Math.round(V.width),V.height=Math.round(V.height),X.x=Math.round(X.x),X.y=Math.round(X.y),X.width=Math.round(X.width),X.height=Math.round(X.height),q.shortest=Math.round(P),q.longest=Math.round(C)),i.words=R,i.lines.height=v,i.scaleX=t.scaleX,i.scaleY=t.scaleY,i}},82849:(t,e,i)=>{var n=i(40419);t.exports=function(t,e,i,r,s,o,a){var h=t.sys.textures.getFrame(i,r),u=t.sys.cache.xml.get(s);if(h&&u){var l=n(u,o,a,h);return t.sys.cache.bitmapFont.add(e,{data:l,texture:i,frame:r}),!0}return!1}},41414:(t,e,i)=>{var n=i(86652);t.exports=function(t,e){var i=e.width,r=e.height,s=Math.floor(i/2),o=Math.floor(r/2),a=n(e,"chars","");if(""!==a){var h=n(e,"image",""),u=n(e,"offset.x",0),l=n(e,"offset.y",0),c=n(e,"spacing.x",0),d=n(e,"spacing.y",0),p=n(e,"lineSpacing",0),f=n(e,"charsPerRow",null);null===f&&(f=t.sys.textures.getFrame(h).width/i)>a.length&&(f=a.length);for(var m=u,v=l,g={retroFont:!0,font:h,size:i,lineHeight:r+p,chars:{}},y=0,_=0;_<a.length;_++){var x=a.charCodeAt(_);g.chars[x]={x:m,y:v,width:i,height:r,centerX:s,centerY:o,xOffset:0,yOffset:0,xAdvance:i,data:{},kerning:{}},++y===f?(y=0,m=u,v+=r+d):m+=i+c}return{data:g,frame:null,texture:h}}}},40419:t=>{function e(t,e){return parseInt(t.getAttribute(e),10)}t.exports=function(t,i,n,r){void 0===i&&(i=0),void 0===n&&(n=0);var s={},o=t.getElementsByTagName("info")[0],a=t.getElementsByTagName("common")[0];s.font=o.getAttribute("face"),s.size=e(o,"size"),s.lineHeight=e(a,"lineHeight")+n,s.chars={};var h=t.getElementsByTagName("char"),u=void 0!==r&&r.trimmed;if(u)var l=r.height,c=r.width;for(var d=0;d<h.length;d++){var p=h[d],f=e(p,"id"),m=e(p,"x"),v=e(p,"y"),g=e(p,"width"),y=e(p,"height");u&&(m<c&&(c=m),v<l&&(l=v)),s.chars[f]={x:m,y:v,width:g,height:y,centerX:Math.floor(g/2),centerY:Math.floor(y/2),xOffset:e(p,"xoffset"),yOffset:e(p,"yoffset"),xAdvance:e(p,"xadvance")+i,data:{},kerning:{}}}if(u&&0!==l&&0!==c)for(var _ in s.chars){var x=s.chars[_];x.x-=r.x,x.y-=r.y}var b=t.getElementsByTagName("kerning");for(d=0;d<b.length;d++){var w=b[d],T=e(w,"first"),M=e(w,"second"),S=e(w,"amount");s.chars[M].kerning[T]=S}return s}},89193:(t,e,i)=>{var n=i(44808),r=i(80933),s={Parse:i(41414)};s=r(!1,s,n),t.exports=s},44808:t=>{t.exports={TEXT_SET1:" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",TEXT_SET2:" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",TEXT_SET3:"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",TEXT_SET4:"ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",TEXT_SET5:"ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",TEXT_SET6:"ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",TEXT_SET7:"AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",TEXT_SET8:"0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",TEXT_SET9:"ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",TEXT_SET10:"ABCDEFGHIJKLMNOPQRSTUVWXYZ",TEXT_SET11:"ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789"}},16175:(t,e,i)=>{var n=i(56956),r=i(47379),s=i(37444),o=new r({Extends:n,Mixins:[s],initialize:function(t,e,i,r,s,o,a){n.call(this,t,e,i,r,s,o,a),this.type="DynamicBitmapText",this.scrollX=0,this.scrollY=0,this.cropWidth=0,this.cropHeight=0,this.displayCallback,this.callbackData={parent:this,color:0,tint:{topLeft:0,topRight:0,bottomLeft:0,bottomRight:0},index:0,charCode:0,x:0,y:0,scale:0,rotation:0,data:0}},setSize:function(t,e){return this.cropWidth=t,this.cropHeight=e,this},setDisplayCallback:function(t){return this.displayCallback=t,this},setScrollX:function(t){return this.scrollX=t,this},setScrollY:function(t){return this.scrollY=t,this}});t.exports=o},94028:(t,e,i)=>{var n=i(55468);t.exports=function(t,e,i,r,s){var o=e._text,a=o.length,h=t.currentContext;if(0!==a&&n(t,h,e,r,s)){var u=e.frame,l=e.displayCallback,c=e.callbackData,d=e.fontData.chars,p=e.fontData.lineHeight,f=e._letterSpacing,m=0,v=0,g=0,y=null,_=0,x=0,b=0,w=0,T=0,M=0,S=null,E=0,L=e.frame.source.image,A=u.cutX,D=u.cutY,P=0,C=0,O=e._fontSize/e.fontData.size,k=e._align,R=0,I=0;e.getTextBounds(!1);var Y=e._bounds.lines;1===k?I=(Y.longest-Y.lengths[0])/2:2===k&&(I=Y.longest-Y.lengths[0]),h.translate(-e.displayOriginX,-e.displayOriginY);var F=r.roundPixels;e.cropWidth>0&&e.cropHeight>0&&(h.beginPath(),h.rect(0,0,e.cropWidth,e.cropHeight),h.clip());for(var N=0;N<a;N++)if(C=O,P=0,10!==(g=o.charCodeAt(N))){if(y=d[g]){if(_=A+y.x,x=D+y.y,b=y.width,w=y.height,T=y.xOffset+m-e.scrollX,M=y.yOffset+v-e.scrollY,null!==S){var B=y.kerning[E];T+=void 0!==B?B:0}if(l){c.index=N,c.charCode=g,c.x=T,c.y=M,c.scale=C,c.rotation=P,c.data=y.data;var U=l(c);T=U.x,M=U.y,C=U.scale,P=U.rotation}T*=C,M*=C,T+=I,m+=y.xAdvance+f,S=y,E=g,0!==b&&0!==w&&32!==g&&(F&&(T=Math.round(T),M=Math.round(M)),h.save(),h.translate(T,M),h.rotate(P),h.scale(C,C),h.drawImage(L,_,x,b,w,0,0,b,w),h.restore())}}else R++,1===k?I=(Y.longest-Y.lengths[R])/2:2===k&&(I=Y.longest-Y.lengths[R]),m=0,v+=p,S=null;h.restore()}}},29036:(t,e,i)=>{var n=i(16175),r=i(74865),s=i(17517),o=i(57687);s.register("dynamicBitmapText",(function(t,e){void 0===t&&(t={});var i=o(t,"font",""),s=o(t,"text",""),a=o(t,"size",!1),h=new n(this.scene,0,0,i,s,a);return void 0!==e&&(t.add=e),r(this.scene,h,t),h}))},60094:(t,e,i)=>{var n=i(16175);i(81342).register("dynamicBitmapText",(function(t,e,i,r,s){return this.displayList.add(new n(this.scene,t,e,i,r,s))}))},37444:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(22896),r=i(94028),t.exports={renderWebGL:n,renderCanvas:r}},22896:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){var o=e.text,a=o.length;if(0!==a){var h=this.pipeline;t.setPipeline(h,e);var u=e.cropWidth>0||e.cropHeight>0;u&&(h.flush(),t.pushScissor(e.x,e.y,e.cropWidth*e.scaleX,e.cropHeight*e.scaleY));var l=h._tempMatrix1,c=h._tempMatrix2,d=h._tempMatrix3,p=h._tempMatrix4;c.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),l.copyFrom(r.matrix),s?(l.multiplyWithOffset(s,-r.scrollX*e.scrollFactorX,-r.scrollY*e.scrollFactorY),c.e=e.x,c.f=e.y,l.multiply(c,d)):(c.e-=r.scrollX*e.scrollFactorX,c.f-=r.scrollY*e.scrollFactorY,l.multiply(c,d));var f=e.frame,m=f.glTexture,v=f.cutX,g=f.cutY,y=m.width,_=m.height,x=e._isTinted&&e.tintFill,b=n.getTintAppendFloatAlpha(e._tintTL,r.alpha*e._alphaTL),w=n.getTintAppendFloatAlpha(e._tintTR,r.alpha*e._alphaTR),T=n.getTintAppendFloatAlpha(e._tintBL,r.alpha*e._alphaBL),M=n.getTintAppendFloatAlpha(e._tintBR,r.alpha*e._alphaBR);h.setTexture2D(m,0);var S,E,L=0,A=0,D=0,P=0,C=e.letterSpacing,O=0,k=0,R=0,I=0,Y=e.scrollX,F=e.scrollY,N=e.fontData,B=N.chars,U=N.lineHeight,j=e.fontSize/N.size,H=0,z=e._align,W=0,G=0;e.getTextBounds(!1);var V=e._bounds.lines;1===z?G=(V.longest-V.lengths[0])/2:2===z&&(G=V.longest-V.lengths[0]);for(var X=r.roundPixels,q=e.displayCallback,J=e.callbackData,Z=0;Z<a;Z++)if(10!==(D=o.charCodeAt(Z))){if(S=B[D]){O=v+S.x,k=g+S.y,R=S.width,I=S.height;var K=S.xOffset+L-Y,Q=S.yOffset+A-F;if(null!==E){var $=S.kerning[P];K+=void 0!==$?$:0}if(L+=S.xAdvance+C,E=S,P=D,0!==R&&0!==I&&32!==D){if(j=e.fontSize/e.fontData.size,H=0,q){J.color=0,J.tint.topLeft=b,J.tint.topRight=w,J.tint.bottomLeft=T,J.tint.bottomRight=M,J.index=Z,J.charCode=D,J.x=K,J.y=Q,J.scale=j,J.rotation=H,J.data=S.data;var tt=q(J);K=tt.x,Q=tt.y,j=tt.scale,H=tt.rotation,tt.color?(b=tt.color,w=tt.color,T=tt.color,M=tt.color):(b=tt.tint.topLeft,w=tt.tint.topRight,T=tt.tint.bottomLeft,M=tt.tint.bottomRight),b=n.getTintAppendFloatAlpha(b,r.alpha*e._alphaTL),w=n.getTintAppendFloatAlpha(w,r.alpha*e._alphaTR),T=n.getTintAppendFloatAlpha(T,r.alpha*e._alphaBL),M=n.getTintAppendFloatAlpha(M,r.alpha*e._alphaBR)}K*=j,Q*=j,K-=e.displayOriginX,Q-=e.displayOriginY,K+=G,p.applyITRS(K,Q,H,j,j),d.multiply(p,c);var et=O/y,it=k/_,nt=(O+R)/y,rt=(k+I)/_,st=R,ot=I,at=c.e,ht=c.f,ut=ot*c.c+c.e,lt=ot*c.d+c.f,ct=st*c.a+ot*c.c+c.e,dt=st*c.b+ot*c.d+c.f,pt=st*c.a+c.e,ft=st*c.b+c.f;X&&(at=Math.round(at),ht=Math.round(ht),ut=Math.round(ut),lt=Math.round(lt),ct=Math.round(ct),dt=Math.round(dt),pt=Math.round(pt),ft=Math.round(ft)),h.batchQuad(at,ht,ut,lt,ct,dt,pt,ft,et,it,nt,rt,b,w,T,M,x,m,0)}}}else W++,1===z?G=(V.longest-V.lengths[W])/2:2===z&&(G=V.longest-V.lengths[W]),L=0,A+=U,E=null;u&&(h.flush(),t.popScissor())}}},56956:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(90554),o=i(79268),a=i(82849),h=i(40419),u=i(22749),l=new n({Extends:s,Mixins:[r.Alpha,r.BlendMode,r.Depth,r.Mask,r.Origin,r.Pipeline,r.ScrollFactor,r.Texture,r.Tint,r.Transform,r.Visible,u],initialize:function(t,e,i,n,r,a,h){void 0===r&&(r=""),void 0===h&&(h=0),s.call(this,t,"BitmapText"),this.font=n;var u=this.scene.sys.cache.bitmapFont.get(n);this.fontData=u.data,this._text="",this._fontSize=a||this.fontData.size,this._letterSpacing=0,this._align=h,this._bounds=o(),this._dirty=!0,this._maxWidth=0,this.wordWrapCharCode=32,this.setTexture(u.texture,u.frame),this.setPosition(e,i),this.setOrigin(0,0),this.initPipeline(),this.setText(r)},setLeftAlign:function(){return this._align=l.ALIGN_LEFT,this._dirty=!0,this},setCenterAlign:function(){return this._align=l.ALIGN_CENTER,this._dirty=!0,this},setRightAlign:function(){return this._align=l.ALIGN_RIGHT,this._dirty=!0,this},setFontSize:function(t){return this._fontSize=t,this._dirty=!0,this},setLetterSpacing:function(t){return void 0===t&&(t=0),this._letterSpacing=t,this._dirty=!0,this},setText:function(t){return t||0===t||(t=""),Array.isArray(t)&&(t=t.join("\n")),t!==this.text&&(this._text=t.toString(),this._dirty=!0,this.updateDisplayOrigin()),this},getTextBounds:function(t){var e=this._bounds;return(this._dirty||this.scaleX!==e.scaleX||this.scaleY!==e.scaleY)&&(o(this,t,e),this._dirty=!1,this.updateDisplayOrigin()),e},setFont:function(t,e,i){if(void 0===e&&(e=this._fontSize),void 0===i&&(i=this._align),t!==this.font){var n=this.scene.sys.cache.bitmapFont.get(t);n&&(this.font=t,this.fontData=n.data,this._fontSize=e,this._align=i,this.setTexture(n.texture,n.frame),o(this,!1,this._bounds))}return this},setMaxWidth:function(t,e){return this._maxWidth=t,this._dirty=!0,void 0!==e&&(this.wordWrapCharCode=e),this},align:{set:function(t){this._align=t,this._dirty=!0},get:function(){return this._align}},text:{set:function(t){this.setText(t)},get:function(){return this._text}},fontSize:{set:function(t){this._fontSize=t,this._dirty=!0},get:function(){return this._fontSize}},letterSpacing:{set:function(t){this._letterSpacing=t,this._dirty=!0},get:function(){return this._letterSpacing}},maxWidth:{set:function(t){this._maxWidth=t,this._dirty=!0},get:function(){return this._maxWidth}},width:{get:function(){return this.getTextBounds(!1),this._bounds.global.width}},height:{get:function(){return this.getTextBounds(!1),this._bounds.global.height}},toJSON:function(){var t=r.ToJSON(this),e={font:this.font,text:this.text,fontSize:this.fontSize,letterSpacing:this.letterSpacing,align:this.align};return t.data=e,t}});l.ALIGN_LEFT=0,l.ALIGN_CENTER=1,l.ALIGN_RIGHT=2,l.ParseFromAtlas=a,l.ParseXMLBitmapFont=h,t.exports=l},5371:(t,e,i)=>{var n=i(55468);t.exports=function(t,e,i,r,s){var o=e._text,a=o.length,h=t.currentContext;if(0!==a&&n(t,h,e,r,s)){var u=e.frame,l=e.fontData.chars,c=e.fontData.lineHeight,d=e._letterSpacing,p=0,f=0,m=0,v=null,g=0,y=0,_=0,x=0,b=0,w=0,T=null,M=0,S=e.frame.source.image,E=u.cutX,L=u.cutY,A=e._fontSize/e.fontData.size,D=e._align,P=0,C=0,O=e.getTextBounds(!1);e.maxWidth>0&&(a=(o=O.wrappedText).length);var k=e._bounds.lines;1===D?C=(k.longest-k.lengths[0])/2:2===D&&(C=k.longest-k.lengths[0]),h.translate(-e.displayOriginX,-e.displayOriginY);for(var R=r.roundPixels,I=0;I<a;I++)if(10!==(m=o.charCodeAt(I))){if(v=l[m]){if(g=E+v.x,y=L+v.y,_=v.width,x=v.height,b=v.xOffset+p,w=v.yOffset+f,null!==T){var Y=v.kerning[M];b+=void 0!==Y?Y:0}b*=A,w*=A,b+=C,p+=v.xAdvance+d,T=v,M=m,0!==_&&0!==x&&32!==m&&(R&&(b=Math.round(b),w=Math.round(w)),h.save(),h.translate(b,w),h.scale(A,A),h.drawImage(S,g,y,_,x,0,0,_,x),h.restore())}}else P++,1===D?C=(k.longest-k.lengths[P])/2:2===D&&(C=k.longest-k.lengths[P]),p=0,f+=c,T=null;h.restore()}}},21296:(t,e,i)=>{var n=i(56956),r=i(74865),s=i(17517),o=i(57687),a=i(86652);s.register("bitmapText",(function(t,e){void 0===t&&(t={});var i=a(t,"font",""),s=o(t,"text",""),h=o(t,"size",!1),u=a(t,"align",0),l=new n(this.scene,0,0,i,s,h,u);return void 0!==e&&(t.add=e),r(this.scene,l,t),l}))},41547:(t,e,i)=>{var n=i(56956);i(81342).register("bitmapText",(function(t,e,i,r,s,o){return this.displayList.add(new n(this.scene,t,e,i,r,s,o))}))},22749:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(47801),r=i(5371),t.exports={renderWebGL:n,renderCanvas:r}},47801:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){var o=e._text,a=o.length;if(0!==a){var h=this.pipeline;t.setPipeline(h,e);var u=h._tempMatrix1,l=h._tempMatrix2,c=h._tempMatrix3;l.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),u.copyFrom(r.matrix),s?(u.multiplyWithOffset(s,-r.scrollX*e.scrollFactorX,-r.scrollY*e.scrollFactorY),l.e=e.x,l.f=e.y,u.multiply(l,c)):(l.e-=r.scrollX*e.scrollFactorX,l.f-=r.scrollY*e.scrollFactorY,u.multiply(l,c));var d=e.frame,p=d.glTexture,f=d.cutX,m=d.cutY,v=p.width,g=p.height,y=e._isTinted&&e.tintFill,_=n.getTintAppendFloatAlpha(e._tintTL,r.alpha*e._alphaTL),x=n.getTintAppendFloatAlpha(e._tintTR,r.alpha*e._alphaTR),b=n.getTintAppendFloatAlpha(e._tintBL,r.alpha*e._alphaBL),w=n.getTintAppendFloatAlpha(e._tintBR,r.alpha*e._alphaBR);h.setTexture2D(p,0);var T,M,S=0,E=0,L=0,A=0,D=e._letterSpacing,P=0,C=0,O=0,k=0,R=e.fontData,I=R.chars,Y=R.lineHeight,F=e._fontSize/R.size,N=e._align,B=0,U=0,j=e.getTextBounds(!1);e.maxWidth>0&&(a=(o=j.wrappedText).length);var H=e._bounds.lines;1===N?U=(H.longest-H.lengths[0])/2:2===N&&(U=H.longest-H.lengths[0]);for(var z=r.roundPixels,W=0;W<a;W++)if(10!==(L=o.charCodeAt(W))){if(T=I[L]){P=f+T.x,C=m+T.y,O=T.width,k=T.height;var G=T.xOffset+S,V=T.yOffset+E;if(null!==M){var X=T.kerning[A];G+=void 0!==X?X:0}if(S+=T.xAdvance+D,M=T,A=L,0!==O&&0!==k&&32!==L){G*=F,V*=F,G-=e.displayOriginX;var q=P/v,J=C/g,Z=(P+O)/v,K=(C+k)/g,Q=(G+=U)+O*F,$=(V-=e.displayOriginY)+k*F,tt=c.getX(G,V),et=c.getY(G,V),it=c.getX(G,$),nt=c.getY(G,$),rt=c.getX(Q,$),st=c.getY(Q,$),ot=c.getX(Q,V),at=c.getY(Q,V);z&&(tt=Math.round(tt),et=Math.round(et),it=Math.round(it),nt=Math.round(nt),rt=Math.round(rt),st=Math.round(st),ot=Math.round(ot),at=Math.round(at)),h.batchQuad(tt,et,it,nt,rt,st,ot,at,q,J,Z,K,_,x,b,w,y,p,0)}}}else B++,1===N?U=(H.longest-H.lengths[B])/2:2===N&&(U=H.longest-H.lengths[B]),S=0,E+=Y,M=null}}},92139:(t,e,i)=>{var n=i(4953),r=i(90051),s=i(47379),o=i(23096),a=i(48165),h=i(90554),u=i(29365),l=new s({Extends:h,Mixins:[o.Alpha,o.BlendMode,o.Depth,o.Mask,o.Pipeline,o.ScrollFactor,o.Size,o.Texture,o.Transform,o.Visible,n],initialize:function(t,e,i,n,r){h.call(this,t,"Blitter"),this.setTexture(n,r),this.setPosition(e,i),this.initPipeline(),this.children=new u,this.renderList=[],this.dirty=!1},create:function(t,e,i,n,s){void 0===n&&(n=!0),void 0===s&&(s=this.children.length),void 0===i?i=this.frame:i instanceof a||(i=this.texture.get(i));var o=new r(this,t,e,i,n);return this.children.addAt(o,s,!1),this.dirty=!0,o},createFromCallback:function(t,e,i,n){for(var r=this.createMultiple(e,i,n),s=0;s<r.length;s++){var o=r[s];t.call(this,o,s)}return r},createMultiple:function(t,e,i){void 0===e&&(e=this.frame.name),void 0===i&&(i=!0),Array.isArray(e)||(e=[e]);var n=[],r=this;return e.forEach((function(e){for(var s=0;s<t;s++)n.push(r.create(0,0,e,i))})),n},childCanRender:function(t){return t.visible&&t.alpha>0},getRenderList:function(){return this.dirty&&(this.renderList=this.children.list.filter(this.childCanRender,this),this.dirty=!1),this.renderList},clear:function(){this.children.removeAll(),this.dirty=!0},preDestroy:function(){this.children.destroy(),this.renderList=[]}});t.exports=l},91946:t=>{t.exports=function(t,e,i,n,r){var s=e.getRenderList();if(0!==s.length){var o=t.currentContext,a=n.alpha*e.alpha;if(0!==a){o.globalCompositeOperation=t.blendModes[e.blendMode],o.imageSmoothingEnabled=!(!t.antialias||e.frame.source.scaleMode);var h=e.x-n.scrollX*e.scrollFactorX,u=e.y-n.scrollY*e.scrollFactorY;o.save(),r&&r.copyToContext(o);for(var l=n.roundPixels,c=0;c<s.length;c++){var d=s[c],p=d.flipX||d.flipY,f=d.frame,m=f.canvasData,v=f.x,g=f.y,y=1,_=1,x=d.alpha*a;0!==x&&(o.globalAlpha=x,p?(d.flipX&&(y=-1,v-=m.width),d.flipY&&(_=-1,g-=m.height),o.save(),o.translate(d.x+h,d.y+u),o.scale(y,_),o.drawImage(f.source.image,m.x,m.y,m.width,m.height,v,g,m.width,m.height),o.restore()):(l&&(v=Math.round(v),g=Math.round(g)),o.drawImage(f.source.image,m.x,m.y,m.width,m.height,v+d.x+h,g+d.y+u,m.width,m.height)))}o.restore()}}}},53674:(t,e,i)=>{var n=i(92139),r=i(74865),s=i(17517),o=i(57687);s.register("blitter",(function(t,e){void 0===t&&(t={});var i=o(t,"key",null),s=o(t,"frame",null),a=new n(this.scene,0,0,i,s);return void 0!==e&&(t.add=e),r(this.scene,a,t),a}))},306:(t,e,i)=>{var n=i(92139);i(81342).register("blitter",(function(t,e,i,r){return this.displayList.add(new n(this.scene,t,e,i,r))}))},4953:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(87635),r=i(91946),t.exports={renderWebGL:n,renderCanvas:r}},87635:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){var o=e.getRenderList();if(0!==o.length){var a=this.pipeline;t.setPipeline(a,e);var h=r.scrollX*e.scrollFactorX,u=r.scrollY*e.scrollFactorY,l=a._tempMatrix1;l.copyFrom(r.matrix),s&&(l.multiplyWithOffset(s,-h,-u),h=0,u=0);for(var c=e.x-h,d=e.y-u,p=-1,f=r.alpha*e.alpha,m=r.roundPixels,v=0;v<o.length;v++){var g=o[v],y=g.frame,_=g.alpha*f;if(0!==_){var x=y.width,b=y.height,w=c+g.x+y.x,T=d+g.y+y.y;g.flipX&&(x*=-1,w+=y.width),g.flipY&&(b*=-1,T+=y.height);var M=w+x,S=T+b,E=l.getX(w,T),L=l.getY(w,T),A=l.getX(M,S),D=l.getY(M,S),P=n.getTintAppendFloatAlpha(g.tint,_);y.sourceIndex!==p&&(a.setTexture2D(y.glTexture,0),p=y.sourceIndex),m&&(E=Math.round(E),L=Math.round(L),A=Math.round(A),D=Math.round(D)),a.batchQuad(E,L,E,D,A,D,A,L,y.u0,y.v0,y.u1,y.v1,P,P,P,P,false,y.glTexture,0)&&(p=-1)}}}}},90051:(t,e,i)=>{var n=i(47379),r=i(48165),s=new n({initialize:function(t,e,i,n,r){this.parent=t,this.x=e,this.y=i,this.frame=n,this.data={},this.tint=16777215,this._visible=r,this._alpha=1,this.flipX=!1,this.flipY=!1},setFrame:function(t){return void 0===t?this.frame=this.parent.frame:t instanceof r&&t.texture===this.parent.texture?this.frame=t:this.frame=this.parent.texture.get(t),this},resetFlip:function(){return this.flipX=!1,this.flipY=!1,this},reset:function(t,e,i){return this.x=t,this.y=e,this.flipX=!1,this.flipY=!1,this._alpha=1,this._visible=!0,this.parent.dirty=!0,i&&this.setFrame(i),this},setPosition:function(t,e){return this.x=t,this.y=e,this},setFlipX:function(t){return this.flipX=t,this},setFlipY:function(t){return this.flipY=t,this},setFlip:function(t,e){return this.flipX=t,this.flipY=e,this},setVisible:function(t){return this.visible=t,this},setAlpha:function(t){return this.alpha=t,this},setTint:function(t){return this.tint=t,this},destroy:function(){this.parent.dirty=!0,this.parent.children.remove(this),this.parent=void 0,this.frame=void 0,this.data=void 0},visible:{get:function(){return this._visible},set:function(t){this.parent.dirty|=this._visible!==t,this._visible=t}},alpha:{get:function(){return this._alpha},set:function(t){this.parent.dirty|=this._alpha>0!=t>0,this._alpha=t}}});t.exports=s},55957:(t,e,i)=>{var n=i(90487),r={_alpha:1,_alphaTL:1,_alphaTR:1,_alphaBL:1,_alphaBR:1,clearAlpha:function(){return this.setAlpha(1)},setAlpha:function(t,e,i,r){return void 0===t&&(t=1),void 0===e?this.alpha=t:(this._alphaTL=n(t,0,1),this._alphaTR=n(e,0,1),this._alphaBL=n(i,0,1),this._alphaBR=n(r,0,1)),this},alpha:{get:function(){return this._alpha},set:function(t){var e=n(t,0,1);this._alpha=e,this._alphaTL=e,this._alphaTR=e,this._alphaBL=e,this._alphaBR=e,0===e?this.renderFlags&=-3:this.renderFlags|=2}},alphaTopLeft:{get:function(){return this._alphaTL},set:function(t){var e=n(t,0,1);this._alphaTL=e,0!==e&&(this.renderFlags|=2)}},alphaTopRight:{get:function(){return this._alphaTR},set:function(t){var e=n(t,0,1);this._alphaTR=e,0!==e&&(this.renderFlags|=2)}},alphaBottomLeft:{get:function(){return this._alphaBL},set:function(t){var e=n(t,0,1);this._alphaBL=e,0!==e&&(this.renderFlags|=2)}},alphaBottomRight:{get:function(){return this._alphaBR},set:function(t){var e=n(t,0,1);this._alphaBR=e,0!==e&&(this.renderFlags|=2)}}};t.exports=r},34613:(t,e,i)=>{var n=i(90487),r={_alpha:1,clearAlpha:function(){return this.setAlpha(1)},setAlpha:function(t){return void 0===t&&(t=1),this.alpha=t,this},alpha:{get:function(){return this._alpha},set:function(t){var e=n(t,0,1);this._alpha=e,0===e?this.renderFlags&=-3:this.renderFlags|=2}}};t.exports=r},23765:(t,e,i)=>{var n=i(78010),r=i(47379),s=i(31045),o=new r({initialize:function(t){this.parent=t,this.animationManager=t.scene.sys.anims,this.animationManager.once(s.REMOVE_ANIMATION,this.remove,this),this.isPlaying=!1,this.currentAnim=null,this.currentFrame=null,this.nextAnim=null,this._timeScale=1,this.frameRate=0,this.duration=0,this.msPerFrame=0,this.skipMissedFrames=!0,this._delay=0,this._repeat=0,this._repeatDelay=0,this._yoyo=!1,this.forward=!0,this._reverse=!1,this.accumulator=0,this.nextTick=0,this.repeatCounter=0,this.pendingRepeat=!1,this._paused=!1,this._wasPlaying=!1,this._pendingStop=0,this._pendingStopValue},chain:function(t){return t instanceof n&&(t=t.key),this.nextAnim=t,this.parent},setDelay:function(t){return void 0===t&&(t=0),this._delay=t,this.parent},getDelay:function(){return this._delay},delayedPlay:function(t,e,i){return this.play(e,!0,i),this.nextTick+=t,this.parent},getCurrentKey:function(){if(this.currentAnim)return this.currentAnim.key},load:function(t,e){return void 0===e&&(e=0),this.isPlaying&&this.stop(),this.animationManager.load(this,t,e),this.parent},pause:function(t){return this._paused||(this._paused=!0,this._wasPlaying=this.isPlaying,this.isPlaying=!1),void 0!==t&&this.updateFrame(t),this.parent},resume:function(t){return this._paused&&(this._paused=!1,this.isPlaying=this._wasPlaying),void 0!==t&&this.updateFrame(t),this.parent},isPaused:{get:function(){return this._paused}},play:function(t,e,i){return void 0===e&&(e=!1),void 0===i&&(i=0),t instanceof n&&(t=t.key),e&&this.isPlaying&&this.currentAnim.key===t?this.parent:(this.forward=!0,this._reverse=!1,this._paused=!1,this._wasPlaying=!0,this._startAnimation(t,i))},playReverse:function(t,e,i){return void 0===e&&(e=!1),void 0===i&&(i=0),t instanceof n&&(t=t.key),e&&this.isPlaying&&this.currentAnim.key===t?this.parent:(this.forward=!1,this._reverse=!0,this._startAnimation(t,i))},_startAnimation:function(t,e){this.load(t,e);var i=this.currentAnim,n=this.parent;if(!i)return n;this.repeatCounter=-1===this._repeat?Number.MAX_VALUE:this._repeat,i.getFirstTick(this),this.isPlaying=!0,this.pendingRepeat=!1,i.showOnStart&&(n.visible=!0);var r=this.currentFrame;return i.emit(s.ANIMATION_START,i,r,n),n.emit(s.SPRITE_ANIMATION_KEY_START+t,i,r,n),n.emit(s.SPRITE_ANIMATION_START,i,r,n),n},reverse:function(){return this.isPlaying&&(this._reverse=!this._reverse,this.forward=!this.forward),this.parent},getProgress:function(){var t=this.currentFrame.progress;return this.forward||(t=1-t),t},setProgress:function(t){return this.forward||(t=1-t),this.setCurrentFrame(this.currentAnim.getFrameByProgress(t)),this.parent},remove:function(t,e){void 0===e&&(e=this.currentAnim),this.isPlaying&&e.key===this.currentAnim.key&&(this.stop(),this.setCurrentFrame(this.currentAnim.frames[0]))},getRepeat:function(){return this._repeat},setRepeat:function(t){return this._repeat=t,this.repeatCounter=-1===t?Number.MAX_VALUE:t,this.parent},getRepeatDelay:function(){return this._repeatDelay},setRepeatDelay:function(t){return this._repeatDelay=t,this.parent},restart:function(t){void 0===t&&(t=!1);var e=this.currentAnim;e.getFirstTick(this,t),this.forward=!0,this.isPlaying=!0,this.pendingRepeat=!1,this._paused=!1,this.updateFrame(e.frames[0]);var i=this.parent,n=this.currentFrame;return e.emit(s.ANIMATION_RESTART,e,n,i),i.emit(s.SPRITE_ANIMATION_KEY_RESTART+e.key,e,n,i),i.emit(s.SPRITE_ANIMATION_RESTART,e,n,i),this.parent},stop:function(){this._pendingStop=0,this.isPlaying=!1;var t=this.parent,e=this.currentAnim,i=this.currentFrame;if(e&&(e.emit(s.ANIMATION_COMPLETE,e,i,t),t.emit(s.SPRITE_ANIMATION_KEY_COMPLETE+e.key,e,i,t),t.emit(s.SPRITE_ANIMATION_COMPLETE,e,i,t)),this.nextAnim){var n=this.nextAnim;this.nextAnim=null,this.play(n)}return t},stopAfterDelay:function(t){return this._pendingStop=1,this._pendingStopValue=t,this.parent},stopOnRepeat:function(){return this._pendingStop=2,this.parent},stopOnFrame:function(t){return this._pendingStop=3,this._pendingStopValue=t,this.parent},setTimeScale:function(t){return void 0===t&&(t=1),this._timeScale=t,this.parent},getTimeScale:function(){return this._timeScale},getTotalFrames:function(){return this.currentAnim.frames.length},update:function(t,e){if(this.currentAnim&&this.isPlaying&&!this.currentAnim.paused){if(this.accumulator+=e*this._timeScale,1===this._pendingStop&&(this._pendingStopValue-=e,this._pendingStopValue<=0))return this.currentAnim.completeAnimation(this);this.accumulator>=this.nextTick&&this.currentAnim.setFrame(this)}},setCurrentFrame:function(t){var e=this.parent;return this.currentFrame=t,e.texture=t.frame.texture,e.frame=t.frame,e.isCropped&&e.frame.updateCropUVs(e._crop,e.flipX,e.flipY),e.setSizeToFrame(),e._originComponent&&(t.frame.customPivot?e.setOrigin(t.frame.pivotX,t.frame.pivotY):e.updateDisplayOrigin()),e},updateFrame:function(t){var e=this.setCurrentFrame(t);if(this.isPlaying){t.setAlpha&&(e.alpha=t.alpha);var i=this.currentAnim;e.emit(s.SPRITE_ANIMATION_KEY_UPDATE+i.key,i,t,e),e.emit(s.SPRITE_ANIMATION_UPDATE,i,t,e),3===this._pendingStop&&this._pendingStopValue===t&&this.currentAnim.completeAnimation(this)}},nextFrame:function(){return this.currentAnim&&this.currentAnim.nextFrame(this),this.parent},previousFrame:function(){return this.currentAnim&&this.currentAnim.previousFrame(this),this.parent},setYoyo:function(t){return void 0===t&&(t=!1),this._yoyo=t,this.parent},getYoyo:function(){return this._yoyo},destroy:function(){this.animationManager.off(s.REMOVE_ANIMATION,this.remove,this),this.animationManager=null,this.parent=null,this.currentAnim=null,this.currentFrame=null}});t.exports=o},64379:(t,e,i)=>{var n=i(35869),r={_blendMode:n.NORMAL,blendMode:{get:function(){return this._blendMode},set:function(t){"string"==typeof t&&(t=n[t]),(t|=0)>=-1&&(this._blendMode=t)}},setBlendMode:function(t){return this.blendMode=t,this}};t.exports=r},99144:t=>{t.exports={width:0,height:0,displayWidth:{get:function(){return this.scaleX*this.width},set:function(t){this.scaleX=t/this.width}},displayHeight:{get:function(){return this.scaleY*this.height},set:function(t){this.scaleY=t/this.height}},setSize:function(t,e){return this.width=t,this.height=e,this},setDisplaySize:function(t,e){return this.displayWidth=t,this.displayHeight=e,this}}},84890:t=>{var e={texture:null,frame:null,isCropped:!1,setCrop:function(t,e,i,n){if(void 0===t)this.isCropped=!1;else if(this.frame){if("number"==typeof t)this.frame.setCropUVs(this._crop,t,e,i,n,this.flipX,this.flipY);else{var r=t;this.frame.setCropUVs(this._crop,r.x,r.y,r.width,r.height,this.flipX,this.flipY)}this.isCropped=!0}return this},resetCropObject:function(){return{u0:0,v0:0,u1:0,v1:0,width:0,height:0,x:0,y:0,flipX:!1,flipY:!1,cx:0,cy:0,cw:0,ch:0}}};t.exports=e},56011:t=>{var e={_depth:0,depth:{get:function(){return this._depth},set:function(t){this.scene.sys.queueDepthSort(),this._depth=t}},setDepth:function(t){return void 0===t&&(t=0),this.depth=t,this}};t.exports=e},34042:t=>{t.exports={flipX:!1,flipY:!1,toggleFlipX:function(){return this.flipX=!this.flipX,this},toggleFlipY:function(){return this.flipY=!this.flipY,this},setFlipX:function(t){return this.flipX=t,this},setFlipY:function(t){return this.flipY=t,this},setFlip:function(t,e){return this.flipX=t,this.flipY=e,this},resetFlip:function(){return this.flipX=!1,this.flipY=!1,this}}},24584:(t,e,i)=>{var n=i(38092),r=i(36833),s=i(57148),o={prepareBoundsOutput:function(t,e){(void 0===e&&(e=!1),0!==this.rotation&&r(t,this.x,this.y,this.rotation),e&&this.parentContainer)&&this.parentContainer.getBoundsTransformMatrix().transformPoint(t.x,t.y,t);return t},getCenter:function(t){return void 0===t&&(t=new s),t.x=this.x-this.displayWidth*this.originX+this.displayWidth/2,t.y=this.y-this.displayHeight*this.originY+this.displayHeight/2,t},getTopLeft:function(t,e){return t||(t=new s),t.x=this.x-this.displayWidth*this.originX,t.y=this.y-this.displayHeight*this.originY,this.prepareBoundsOutput(t,e)},getTopCenter:function(t,e){return t||(t=new s),t.x=this.x-this.displayWidth*this.originX+this.displayWidth/2,t.y=this.y-this.displayHeight*this.originY,this.prepareBoundsOutput(t,e)},getTopRight:function(t,e){return t||(t=new s),t.x=this.x-this.displayWidth*this.originX+this.displayWidth,t.y=this.y-this.displayHeight*this.originY,this.prepareBoundsOutput(t,e)},getLeftCenter:function(t,e){return t||(t=new s),t.x=this.x-this.displayWidth*this.originX,t.y=this.y-this.displayHeight*this.originY+this.displayHeight/2,this.prepareBoundsOutput(t,e)},getRightCenter:function(t,e){return t||(t=new s),t.x=this.x-this.displayWidth*this.originX+this.displayWidth,t.y=this.y-this.displayHeight*this.originY+this.displayHeight/2,this.prepareBoundsOutput(t,e)},getBottomLeft:function(t,e){return t||(t=new s),t.x=this.x-this.displayWidth*this.originX,t.y=this.y-this.displayHeight*this.originY+this.displayHeight,this.prepareBoundsOutput(t,e)},getBottomCenter:function(t,e){return t||(t=new s),t.x=this.x-this.displayWidth*this.originX+this.displayWidth/2,t.y=this.y-this.displayHeight*this.originY+this.displayHeight,this.prepareBoundsOutput(t,e)},getBottomRight:function(t,e){return t||(t=new s),t.x=this.x-this.displayWidth*this.originX+this.displayWidth,t.y=this.y-this.displayHeight*this.originY+this.displayHeight,this.prepareBoundsOutput(t,e)},getBounds:function(t){var e,i,r,s,o,a,h,u;if(void 0===t&&(t=new n),this.parentContainer){var l=this.parentContainer.getBoundsTransformMatrix();this.getTopLeft(t),l.transformPoint(t.x,t.y,t),e=t.x,i=t.y,this.getTopRight(t),l.transformPoint(t.x,t.y,t),r=t.x,s=t.y,this.getBottomLeft(t),l.transformPoint(t.x,t.y,t),o=t.x,a=t.y,this.getBottomRight(t),l.transformPoint(t.x,t.y,t),h=t.x,u=t.y}else this.getTopLeft(t),e=t.x,i=t.y,this.getTopRight(t),r=t.x,s=t.y,this.getBottomLeft(t),o=t.x,a=t.y,this.getBottomRight(t),h=t.x,u=t.y;return t.x=Math.min(e,r,o,h),t.y=Math.min(i,s,a,u),t.width=Math.max(e,r,o,h)-t.x,t.height=Math.max(i,s,a,u)-t.y,t}};t.exports=o},75878:(t,e,i)=>{var n=i(35615),r=i(48315),s={mask:null,setMask:function(t){return this.mask=t,this},clearMask:function(t){return void 0===t&&(t=!1),t&&this.mask&&this.mask.destroy(),this.mask=null,this},createBitmapMask:function(t){return void 0===t&&(this.texture||this.shader)&&(t=this),new n(this.scene,t)},createGeometryMask:function(t){return void 0===t&&"Graphics"===this.type&&(t=this),new r(this.scene,t)}};t.exports=s},27510:t=>{var e={_originComponent:!0,originX:.5,originY:.5,_displayOriginX:0,_displayOriginY:0,displayOriginX:{get:function(){return this._displayOriginX},set:function(t){this._displayOriginX=t,this.originX=t/this.width}},displayOriginY:{get:function(){return this._displayOriginY},set:function(t){this._displayOriginY=t,this.originY=t/this.height}},setOrigin:function(t,e){return void 0===t&&(t=.5),void 0===e&&(e=t),this.originX=t,this.originY=e,this.updateDisplayOrigin()},setOriginFromFrame:function(){return this.frame&&this.frame.customPivot?(this.originX=this.frame.pivotX,this.originY=this.frame.pivotY,this.updateDisplayOrigin()):this.setOrigin()},setDisplayOrigin:function(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this.displayOriginX=t,this.displayOriginY=e,this},updateDisplayOrigin:function(){return this._displayOriginX=this.originX*this.width,this._displayOriginY=this.originY*this.height,this}};t.exports=e},72664:(t,e,i)=>{var n=i(98436),r=i(32336),s=i(86652),o=i(3926),a=i(57148),h={path:null,rotateToPath:!1,pathRotationOffset:0,pathOffset:null,pathVector:null,pathDelta:null,pathTween:null,pathConfig:null,_prevDirection:o.PLAYING_FORWARD,setPath:function(t,e){void 0===e&&(e=this.pathConfig);var i=this.pathTween;return i&&i.isPlaying()&&i.stop(),this.path=t,e&&this.startFollow(e),this},setRotateToPath:function(t,e){return void 0===e&&(e=0),this.rotateToPath=t,this.pathRotationOffset=e,this},isFollowing:function(){var t=this.pathTween;return t&&t.isPlaying()},startFollow:function(t,e){void 0===t&&(t={}),void 0===e&&(e=0);var i=this.pathTween;i&&i.isPlaying()&&i.stop(),"number"==typeof t&&(t={duration:t}),t.from=s(t,"from",0),t.to=s(t,"to",1);var h=r(t,"positionOnPath",!1);this.rotateToPath=r(t,"rotateToPath",!1),this.pathRotationOffset=s(t,"rotationOffset",0);var u=s(t,"startAt",e);if(u&&(t.onStart=function(t){var e=t.data[0];e.progress=u,e.elapsed=e.duration*u;var i=e.ease(e.progress);e.current=e.start+(e.end-e.start)*i,e.target[e.key]=e.current}),this.pathOffset||(this.pathOffset=new a(this.x,this.y)),this.pathVector||(this.pathVector=new a),this.pathDelta||(this.pathDelta=new a),this.pathDelta.reset(),this.pathTween=this.scene.sys.tweens.addCounter(t),this.path.getStartPoint(this.pathOffset),h&&(this.x=this.pathOffset.x,this.y=this.pathOffset.y),this.pathOffset.x=this.x-this.pathOffset.x,this.pathOffset.y=this.y-this.pathOffset.y,this._prevDirection=o.PLAYING_FORWARD,this.rotateToPath){var l=this.path.getPoint(.1);this.rotation=Math.atan2(l.y-this.y,l.x-this.x)+n(this.pathRotationOffset)}return this.pathConfig=t,this},pauseFollow:function(){var t=this.pathTween;return t&&t.isPlaying()&&t.pause(),this},resumeFollow:function(){var t=this.pathTween;return t&&t.isPaused()&&t.resume(),this},stopFollow:function(){var t=this.pathTween;return t&&t.isPlaying()&&t.stop(),this},pathUpdate:function(){var t=this.pathTween;if(t){var e=t.data[0],i=this.pathDelta,r=this.pathVector;if(i.copy(r).negate(),e.state===o.COMPLETE)return this.path.getPoint(1,r),i.add(r),r.add(this.pathOffset),void this.setPosition(r.x,r.y);if(e.state!==o.PLAYING_FORWARD&&e.state!==o.PLAYING_BACKWARD)return;this.path.getPoint(t.getValue(),r),i.add(r),r.add(this.pathOffset);var s=this.x,a=this.y;this.setPosition(r.x,r.y);var h=this.x-s,u=this.y-a;if(0===h&&0===u)return;if(e.state!==this._prevDirection)return void(this._prevDirection=e.state);this.rotateToPath&&(this.rotation=Math.atan2(u,h)+n(this.pathRotationOffset))}}};t.exports=h},76923:t=>{var e={defaultPipeline:null,pipeline:null,initPipeline:function(t){void 0===t&&(t="TextureTintPipeline");var e=this.scene.sys.game.renderer;return!!(e&&e.gl&&e.hasPipeline(t))&&(this.defaultPipeline=e.getPipeline(t),this.pipeline=this.defaultPipeline,!0)},setPipeline:function(t){var e=this.scene.sys.game.renderer;return e&&e.gl&&e.hasPipeline(t)&&(this.pipeline=e.getPipeline(t)),this},resetPipeline:function(){return this.pipeline=this.defaultPipeline,null!==this.pipeline},getPipelineName:function(){return this.pipeline.name}};t.exports=e},90099:t=>{var e={scrollFactorX:1,scrollFactorY:1,setScrollFactor:function(t,e){return void 0===e&&(e=t),this.scrollFactorX=t,this.scrollFactorY=e,this}};t.exports=e},20622:t=>{var e={_sizeComponent:!0,width:0,height:0,displayWidth:{get:function(){return Math.abs(this.scaleX*this.frame.realWidth)},set:function(t){this.scaleX=t/this.frame.realWidth}},displayHeight:{get:function(){return Math.abs(this.scaleY*this.frame.realHeight)},set:function(t){this.scaleY=t/this.frame.realHeight}},setSizeToFrame:function(t){return void 0===t&&(t=this.frame),this.width=t.realWidth,this.height=t.realHeight,this},setSize:function(t,e){return this.width=t,this.height=e,this},setDisplaySize:function(t,e){return this.displayWidth=t,this.displayHeight=e,this}};t.exports=e},81822:t=>{var e={texture:null,frame:null,isCropped:!1,setTexture:function(t,e){return this.texture=this.scene.sys.textures.get(t),this.setFrame(e)},setFrame:function(t,e,i){return void 0===e&&(e=!0),void 0===i&&(i=!0),this.frame=this.texture.get(t),this.frame.cutWidth&&this.frame.cutHeight?this.renderFlags|=8:this.renderFlags&=-9,this._sizeComponent&&e&&this.setSizeToFrame(),this._originComponent&&i&&(this.frame.customPivot?this.setOrigin(this.frame.pivotX,this.frame.pivotY):this.updateDisplayOrigin()),this}};t.exports=e},24280:t=>{var e={texture:null,frame:null,isCropped:!1,setCrop:function(t,e,i,n){if(void 0===t)this.isCropped=!1;else if(this.frame){if("number"==typeof t)this.frame.setCropUVs(this._crop,t,e,i,n,this.flipX,this.flipY);else{var r=t;this.frame.setCropUVs(this._crop,r.x,r.y,r.width,r.height,this.flipX,this.flipY)}this.isCropped=!0}return this},setTexture:function(t,e){return this.texture=this.scene.sys.textures.get(t),this.setFrame(e)},setFrame:function(t,e,i){return void 0===e&&(e=!0),void 0===i&&(i=!0),this.frame=this.texture.get(t),this.frame.cutWidth&&this.frame.cutHeight?this.renderFlags|=8:this.renderFlags&=-9,this._sizeComponent&&e&&this.setSizeToFrame(),this._originComponent&&i&&(this.frame.customPivot?this.setOrigin(this.frame.pivotX,this.frame.pivotY):this.updateDisplayOrigin()),this.isCropped&&this.frame.updateCropUVs(this._crop,this.flipX,this.flipY),this},resetCropObject:function(){return{u0:0,v0:0,u1:0,v1:0,width:0,height:0,x:0,y:0,flipX:!1,flipY:!1,cx:0,cy:0,cw:0,ch:0}}};t.exports=e},97446:t=>{var e=function(t){return(t>>16)+(65280&t)+((255&t)<<16)},i={_tintTL:16777215,_tintTR:16777215,_tintBL:16777215,_tintBR:16777215,_isTinted:!1,tintFill:!1,clearTint:function(){return this.setTint(16777215),this._isTinted=!1,this},setTint:function(t,i,n,r){return void 0===t&&(t=16777215),void 0===i&&(i=t,n=t,r=t),this._tintTL=e(t),this._tintTR=e(i),this._tintBL=e(n),this._tintBR=e(r),this._isTinted=!0,this.tintFill=!1,this},setTintFill:function(t,e,i,n){return this.setTint(t,e,i,n),this.tintFill=!0,this},tintTopLeft:{get:function(){return this._tintTL},set:function(t){this._tintTL=e(t),this._isTinted=!0}},tintTopRight:{get:function(){return this._tintTR},set:function(t){this._tintTR=e(t),this._isTinted=!0}},tintBottomLeft:{get:function(){return this._tintBL},set:function(t){this._tintBL=e(t),this._isTinted=!0}},tintBottomRight:{get:function(){return this._tintBR},set:function(t){this._tintBR=e(t),this._isTinted=!0}},tint:{set:function(t){this.setTint(t,t,t,t)}},isTinted:{get:function(){return this._isTinted}}};t.exports=i},82046:t=>{t.exports=function(t){var e={name:t.name,type:t.type,x:t.x,y:t.y,depth:t.depth,scale:{x:t.scaleX,y:t.scaleY},origin:{x:t.originX,y:t.originY},flipX:t.flipX,flipY:t.flipY,rotation:t.rotation,alpha:t.alpha,visible:t.visible,blendMode:t.blendMode,textureKey:"",frameKey:"",data:{}};return t.texture&&(e.textureKey=t.texture.key,e.frameKey=t.frame.name),e}},7560:(t,e,i)=>{var n=i(14302),r=i(65492),s=i(23882),o=i(74771),a={_scaleX:1,_scaleY:1,_rotation:0,x:0,y:0,z:0,w:0,scale:{get:function(){return(this._scaleX+this._scaleY)/2},set:function(t){this._scaleX=t,this._scaleY=t,0===t?this.renderFlags&=-5:this.renderFlags|=4}},scaleX:{get:function(){return this._scaleX},set:function(t){this._scaleX=t,0===t?this.renderFlags&=-5:this.renderFlags|=4}},scaleY:{get:function(){return this._scaleY},set:function(t){this._scaleY=t,0===t?this.renderFlags&=-5:this.renderFlags|=4}},angle:{get:function(){return o(this._rotation*n.RAD_TO_DEG)},set:function(t){this.rotation=o(t)*n.DEG_TO_RAD}},rotation:{get:function(){return this._rotation},set:function(t){this._rotation=s(t)}},setPosition:function(t,e,i,n){return void 0===t&&(t=0),void 0===e&&(e=t),void 0===i&&(i=0),void 0===n&&(n=0),this.x=t,this.y=e,this.z=i,this.w=n,this},setRandomPosition:function(t,e,i,n){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=this.scene.sys.scale.width),void 0===n&&(n=this.scene.sys.scale.height),this.x=t+Math.random()*i,this.y=e+Math.random()*n,this},setRotation:function(t){return void 0===t&&(t=0),this.rotation=t,this},setAngle:function(t){return void 0===t&&(t=0),this.angle=t,this},setScale:function(t,e){return void 0===t&&(t=1),void 0===e&&(e=t),this.scaleX=t,this.scaleY=e,this},setX:function(t){return void 0===t&&(t=0),this.x=t,this},setY:function(t){return void 0===t&&(t=0),this.y=t,this},setZ:function(t){return void 0===t&&(t=0),this.z=t,this},setW:function(t){return void 0===t&&(t=0),this.w=t,this},getLocalTransformMatrix:function(t){return void 0===t&&(t=new r),t.applyITRS(this.x,this.y,this._rotation,this._scaleX,this._scaleY)},getWorldTransformMatrix:function(t,e){void 0===t&&(t=new r),void 0===e&&(e=new r);var i=this.parentContainer;if(!i)return this.getLocalTransformMatrix(t);for(t.applyITRS(this.x,this.y,this._rotation,this._scaleX,this._scaleY);i;)e.applyITRS(i.x,i.y,i._rotation,i._scaleX,i._scaleY),e.multiply(t,t),i=i.parentContainer;return t},getParentRotation:function(){for(var t=0,e=this.parentContainer;e;)t+=e.rotation,e=e.parentContainer;return t}};t.exports=a},65492:(t,e,i)=>{var n=i(47379),r=i(14302),s=i(57148),o=new n({initialize:function(t,e,i,n,r,s){void 0===t&&(t=1),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=1),void 0===r&&(r=0),void 0===s&&(s=0),this.matrix=new Float32Array([t,e,i,n,r,s,0,0,1]),this.decomposedMatrix={translateX:0,translateY:0,scaleX:1,scaleY:1,rotation:0}},a:{get:function(){return this.matrix[0]},set:function(t){this.matrix[0]=t}},b:{get:function(){return this.matrix[1]},set:function(t){this.matrix[1]=t}},c:{get:function(){return this.matrix[2]},set:function(t){this.matrix[2]=t}},d:{get:function(){return this.matrix[3]},set:function(t){this.matrix[3]=t}},e:{get:function(){return this.matrix[4]},set:function(t){this.matrix[4]=t}},f:{get:function(){return this.matrix[5]},set:function(t){this.matrix[5]=t}},tx:{get:function(){return this.matrix[4]},set:function(t){this.matrix[4]=t}},ty:{get:function(){return this.matrix[5]},set:function(t){this.matrix[5]=t}},rotation:{get:function(){return Math.acos(this.a/this.scaleX)*(Math.atan(-this.c/this.a)<0?-1:1)}},rotationNormalized:{get:function(){var t=this.matrix,e=t[0],i=t[1],n=t[2],s=t[3];return e||i?i>0?Math.acos(e/this.scaleX):-Math.acos(e/this.scaleX):n||s?r.TAU-(s>0?Math.acos(-n/this.scaleY):-Math.acos(n/this.scaleY)):0}},scaleX:{get:function(){return Math.sqrt(this.a*this.a+this.b*this.b)}},scaleY:{get:function(){return Math.sqrt(this.c*this.c+this.d*this.d)}},loadIdentity:function(){var t=this.matrix;return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,this},translate:function(t,e){var i=this.matrix;return i[4]=i[0]*t+i[2]*e+i[4],i[5]=i[1]*t+i[3]*e+i[5],this},scale:function(t,e){var i=this.matrix;return i[0]*=t,i[1]*=t,i[2]*=e,i[3]*=e,this},rotate:function(t){var e=Math.sin(t),i=Math.cos(t),n=this.matrix,r=n[0],s=n[1],o=n[2],a=n[3];return n[0]=r*i+o*e,n[1]=s*i+a*e,n[2]=r*-e+o*i,n[3]=s*-e+a*i,this},multiply:function(t,e){var i=this.matrix,n=t.matrix,r=i[0],s=i[1],o=i[2],a=i[3],h=i[4],u=i[5],l=n[0],c=n[1],d=n[2],p=n[3],f=n[4],m=n[5],v=void 0===e?this:e;return v.a=l*r+c*o,v.b=l*s+c*a,v.c=d*r+p*o,v.d=d*s+p*a,v.e=f*r+m*o+h,v.f=f*s+m*a+u,v},multiplyWithOffset:function(t,e,i){var n=this.matrix,r=t.matrix,s=n[0],o=n[1],a=n[2],h=n[3],u=e*s+i*a+n[4],l=e*o+i*h+n[5],c=r[0],d=r[1],p=r[2],f=r[3],m=r[4],v=r[5];return n[0]=c*s+d*a,n[1]=c*o+d*h,n[2]=p*s+f*a,n[3]=p*o+f*h,n[4]=m*s+v*a+u,n[5]=m*o+v*h+l,this},transform:function(t,e,i,n,r,s){var o=this.matrix,a=o[0],h=o[1],u=o[2],l=o[3],c=o[4],d=o[5];return o[0]=t*a+e*u,o[1]=t*h+e*l,o[2]=i*a+n*u,o[3]=i*h+n*l,o[4]=r*a+s*u+c,o[5]=r*h+s*l+d,this},transformPoint:function(t,e,i){void 0===i&&(i={x:0,y:0});var n=this.matrix,r=n[0],s=n[1],o=n[2],a=n[3],h=n[4],u=n[5];return i.x=t*r+e*o+h,i.y=t*s+e*a+u,i},invert:function(){var t=this.matrix,e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],o=t[5],a=e*r-i*n;return t[0]=r/a,t[1]=-i/a,t[2]=-n/a,t[3]=e/a,t[4]=(n*o-r*s)/a,t[5]=-(e*o-i*s)/a,this},copyFrom:function(t){var e=this.matrix;return e[0]=t.a,e[1]=t.b,e[2]=t.c,e[3]=t.d,e[4]=t.e,e[5]=t.f,this},copyFromArray:function(t){var e=this.matrix;return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],this},copyToContext:function(t){var e=this.matrix;return t.transform(e[0],e[1],e[2],e[3],e[4],e[5]),t},setToContext:function(t){var e=this.matrix;return t.setTransform(e[0],e[1],e[2],e[3],e[4],e[5]),t},copyToArray:function(t){var e=this.matrix;return void 0===t?t=[e[0],e[1],e[2],e[3],e[4],e[5]]:(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5]),t},setTransform:function(t,e,i,n,r,s){var o=this.matrix;return o[0]=t,o[1]=e,o[2]=i,o[3]=n,o[4]=r,o[5]=s,this},decomposeMatrix:function(){var t=this.decomposedMatrix,e=this.matrix,i=e[0],n=e[1],r=e[2],s=e[3],o=i*s-n*r;if(t.translateX=e[4],t.translateY=e[5],i||n){var a=Math.sqrt(i*i+n*n);t.rotation=n>0?Math.acos(i/a):-Math.acos(i/a),t.scaleX=a,t.scaleY=o/a}else if(r||s){var h=Math.sqrt(r*r+s*s);t.rotation=.5*Math.PI-(s>0?Math.acos(-r/h):-Math.acos(r/h)),t.scaleX=o/h,t.scaleY=h}else t.rotation=0,t.scaleX=0,t.scaleY=0;return t},applyITRS:function(t,e,i,n,r){var s=this.matrix,o=Math.sin(i),a=Math.cos(i);return s[4]=t,s[5]=e,s[0]=a*n,s[1]=o*n,s[2]=-o*r,s[3]=a*r,this},applyInverse:function(t,e,i){void 0===i&&(i=new s);var n=this.matrix,r=n[0],o=n[1],a=n[2],h=n[3],u=n[4],l=n[5],c=1/(r*h+a*-o);return i.x=h*c*t+-a*c*e+(l*a-u*h)*c,i.y=r*c*e+-o*c*t+(-l*r+u*o)*c,i},getX:function(t,e){return t*this.a+e*this.c+this.e},getY:function(t,e){return t*this.b+e*this.d+this.f},getCSSMatrix:function(){var t=this.matrix;return"matrix("+t[0]+","+t[1]+","+t[2]+","+t[3]+","+t[4]+","+t[5]+")"},destroy:function(){this.matrix=null,this.decomposedMatrix=null}});t.exports=o},17938:t=>{var e={_visible:!0,visible:{get:function(){return this._visible},set:function(t){t?(this._visible=!0,this.renderFlags|=1):(this._visible=!1,this.renderFlags&=-2)}},setVisible:function(t){return this.visible=t,this}};t.exports=e},23096:(t,e,i)=>{t.exports={Alpha:i(55957),AlphaSingle:i(34613),Animation:i(23765),BlendMode:i(64379),ComputedSize:i(99144),Crop:i(84890),Depth:i(56011),Flip:i(34042),GetBounds:i(24584),Mask:i(75878),Origin:i(27510),PathFollower:i(72664),Pipeline:i(76923),ScrollFactor:i(90099),Size:i(20622),Texture:i(81822),TextureCrop:i(24280),Tint:i(97446),ToJSON:i(82046),Transform:i(7560),TransformMatrix:i(65492),Visible:i(17938)}},8676:(t,e,i)=>{var n=i(37931),r=i(35869),s=i(47379),o=i(23096),a=i(6783),h=i(90554),u=i(38092),l=i(59614),c=i(71768),d=i(57148),p=new s({Extends:h,Mixins:[o.AlphaSingle,o.BlendMode,o.ComputedSize,o.Depth,o.Mask,o.Transform,o.Visible,l],initialize:function(t,e,i,n){h.call(this,t,"Container"),this.list=[],this.exclusive=!0,this.maxSize=-1,this.position=0,this.localTransform=new o.TransformMatrix,this.tempTransformMatrix=new o.TransformMatrix,this._displayList=t.sys.displayList,this._sortKey="",this._sysEvents=t.sys.events,this.scrollFactorX=1,this.scrollFactorY=1,this.setPosition(e,i),this.clearAlpha(),this.setBlendMode(r.SKIP_CHECK),n&&this.add(n)},originX:{get:function(){return.5}},originY:{get:function(){return.5}},displayOriginX:{get:function(){return.5*this.width}},displayOriginY:{get:function(){return.5*this.height}},setExclusive:function(t){return void 0===t&&(t=!0),this.exclusive=t,this},getBounds:function(t){if(void 0===t&&(t=new u),t.setTo(this.x,this.y,0,0),this.parentContainer){var e=this.parentContainer.getBoundsTransformMatrix().transformPoint(this.x,this.y);t.setTo(e.x,e.y,0,0)}if(this.list.length>0){var i=this.list,n=new u,r=i[0].getBounds();t.setTo(r.x,r.y,r.width,r.height);for(var s=1;s<i.length;s++){var o=i[s];o.getBounds&&(o.getBounds(n),c(n,t,t))}}return t},addHandler:function(t){t.once(a.DESTROY,this.remove,this),this.exclusive&&(this._displayList.remove(t),t.parentContainer&&t.parentContainer.remove(t),t.parentContainer=this)},removeHandler:function(t){t.off(a.DESTROY,this.remove),this.exclusive&&(t.parentContainer=null)},pointToContainer:function(t,e){void 0===e&&(e=new d),this.parentContainer?this.parentContainer.pointToContainer(t,e):e=new d(t.x,t.y);var i=this.tempTransformMatrix;return i.applyITRS(this.x,this.y,this.rotation,this.scaleX,this.scaleY),i.invert(),i.transformPoint(t.x,t.y,e),e},getBoundsTransformMatrix:function(){return this.getWorldTransformMatrix(this.tempTransformMatrix,this.localTransform)},add:function(t){return n.Add(this.list,t,this.maxSize,this.addHandler,this),this},addAt:function(t,e){return n.AddAt(this.list,t,e,this.maxSize,this.addHandler,this),this},getAt:function(t){return this.list[t]},getIndex:function(t){return this.list.indexOf(t)},sort:function(t,e){return t?(void 0===e&&(e=function(e,i){return e[t]-i[t]}),n.StableSort.inplace(this.list,e),this):this},getByName:function(t){return n.GetFirst(this.list,"name",t)},getRandom:function(t,e){return n.GetRandom(this.list,t,e)},getFirst:function(t,e,i,r){return n.GetFirst(this.list,t,e,i,r)},getAll:function(t,e,i,r){return n.GetAll(this.list,t,e,i,r)},count:function(t,e,i,r){return n.CountAllMatching(this.list,t,e,i,r)},swap:function(t,e){return n.Swap(this.list,t,e),this},moveTo:function(t,e){return n.MoveTo(this.list,t,e),this},remove:function(t,e){var i=n.Remove(this.list,t,this.removeHandler,this);if(e&&i){Array.isArray(i)||(i=[i]);for(var r=0;r<i.length;r++)i[r].destroy()}return this},removeAt:function(t,e){var i=n.RemoveAt(this.list,t,this.removeHandler,this);return e&&i&&i.destroy(),this},removeBetween:function(t,e,i){var r=n.RemoveBetween(this.list,t,e,this.removeHandler,this);if(i)for(var s=0;s<r.length;s++)r[s].destroy();return this},removeAll:function(t){var e=n.RemoveBetween(this.list,0,this.list.length,this.removeHandler,this);if(t)for(var i=0;i<e.length;i++)e[i].destroy();return this},bringToTop:function(t){return n.BringToTop(this.list,t),this},sendToBack:function(t){return n.SendToBack(this.list,t),this},moveUp:function(t){return n.MoveUp(this.list,t),this},moveDown:function(t){return n.MoveDown(this.list,t),this},reverse:function(){return this.list.reverse(),this},shuffle:function(){return n.Shuffle(this.list),this},replace:function(t,e,i){return n.Replace(this.list,t,e)&&(this.addHandler(e),this.removeHandler(t),i&&t.destroy()),this},exists:function(t){return this.list.indexOf(t)>-1},setAll:function(t,e,i,r){return n.SetAll(this.list,t,e,i,r),this},each:function(t,e){var i,n=[null],r=this.list.slice(),s=r.length;for(i=2;i<arguments.length;i++)n.push(arguments[i]);for(i=0;i<s;i++)n[0]=r[i],t.apply(e,n);return this},iterate:function(t,e){var i,n=[null];for(i=2;i<arguments.length;i++)n.push(arguments[i]);for(i=0;i<this.list.length;i++)n[0]=this.list[i],t.apply(e,n);return this},setScrollFactor:function(t,e,i){return void 0===e&&(e=t),void 0===i&&(i=!1),this.scrollFactorX=t,this.scrollFactorY=e,i&&(n.SetAll(this.list,"scrollFactorX",t),n.SetAll(this.list,"scrollFactorY",e)),this},length:{get:function(){return this.list.length}},first:{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}},last:{get:function(){return this.list.length>0?(this.position=this.list.length-1,this.list[this.position]):null}},next:{get:function(){return this.position<this.list.length?(this.position++,this.list[this.position]):null}},previous:{get:function(){return this.position>0?(this.position--,this.list[this.position]):null}},preDestroy:function(){this.removeAll(!!this.exclusive),this.localTransform.destroy(),this.tempTransformMatrix.destroy(),this.list=[],this._displayList=null}});t.exports=p},91283:t=>{t.exports=function(t,e,i,n,r){var s=e.list;if(0!==s.length){var o=e.localTransform;r?(o.loadIdentity(),o.multiply(r),o.translate(e.x,e.y),o.rotate(e.rotation),o.scale(e.scaleX,e.scaleY)):o.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY);var a=-1!==e.blendMode;a||t.setBlendMode(0);for(var h=e._alpha,u=e.scrollFactorX,l=e.scrollFactorY,c=0;c<s.length;c++){var d=s[c];if(d.willRender(n)){var p=d.alpha,f=d.scrollFactorX,m=d.scrollFactorY;a||d.blendMode===t.currentBlendMode||t.setBlendMode(d.blendMode),d.setScrollFactor(f*u,m*l),d.setAlpha(p*h),d.renderCanvas(t,d,i,n,o),d.setAlpha(p),d.setScrollFactor(f,m)}}}}},30814:(t,e,i)=>{var n=i(74865),r=i(8676),s=i(17517),o=i(57687);s.register("container",(function(t,e){void 0===t&&(t={});var i=o(t,"x",0),s=o(t,"y",0),a=new r(this.scene,i,s);return void 0!==e&&(t.add=e),n(this.scene,a,t),a}))},502:(t,e,i)=>{var n=i(8676);i(81342).register("container",(function(t,e,i){return this.displayList.add(new n(this.scene,t,e,i))}))},59614:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(89218),r=i(91283),t.exports={renderWebGL:n,renderCanvas:r}},89218:t=>{t.exports=function(t,e,i,n,r){var s=e.list;if(0!==s.length){var o=e.localTransform;r?(o.loadIdentity(),o.multiply(r),o.translate(e.x,e.y),o.rotate(e.rotation),o.scale(e.scaleX,e.scaleY)):o.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY);var a=-1!==e.blendMode;a||t.setBlendMode(0);for(var h=e.alpha,u=e.scrollFactorX,l=e.scrollFactorY,c=s,d=s.length,p=0;p<d;p++){var f=s[p];if(f.willRender(n)){var m,v,g,y;if(void 0!==f.alphaTopLeft)m=f.alphaTopLeft,v=f.alphaTopRight,g=f.alphaBottomLeft,y=f.alphaBottomRight;else{var _=f.alpha;m=_,v=_,g=_,y=_}var x=f.scrollFactorX,b=f.scrollFactorY;a||f.blendMode===t.currentBlendMode||t.setBlendMode(f.blendMode);var w=f.mask;w&&w.preRenderWebGL(t,f,n);var T=f.type;T!==t.currentType&&(t.newType=!0,t.currentType=T),t.nextTypeMatch=p<d-1&&c[p+1].type===t.currentType,f.setScrollFactor(x*u,b*l),f.setAlpha(m*h,v*h,g*h,y*h),f.renderWebGL(t,f,i,n,o),f.setAlpha(m,v,g,y),f.setScrollFactor(x,b),w&&w.postRenderWebGL(t,n),t.newType=!1}}}}},53358:t=>{t.exports=["normal","multiply","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"]},4533:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(12062),o=i(90554),a=i(28621),h=i(68791),u=i(88637),l=i(68970),c=new n({Extends:o,Mixins:[r.AlphaSingle,r.BlendMode,r.Depth,r.Origin,r.ScrollFactor,r.Transform,r.Visible,s],initialize:function(t,e,i,n,r,s){o.call(this,t,"DOMElement"),this.parent=t.sys.game.domContainer,this.cache=t.sys.cache.html,this.node,this.transformOnly=!1,this.skewX=0,this.skewY=0,this.rotate3d=new l,this.rotate3dAngle="deg",this.width=0,this.height=0,this.displayWidth=0,this.displayHeight=0,this.handler=this.dispatchNativeEvent.bind(this),this.setPosition(e,i),"string"==typeof n?"#"===n[0]?this.setElement(n.substr(1),r,s):this.createElement(n,r,s):n&&this.setElement(n,r,s),t.sys.events.on(u.SLEEP,this.handleSceneEvent,this),t.sys.events.on(u.WAKE,this.handleSceneEvent,this)},handleSceneEvent:function(t){var e=this.node,i=e.style;e&&(i.display=t.settings.visible?"block":"none")},setSkew:function(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this.skewX=t,this.skewY=e,this},setPerspective:function(t){return this.parent.style.perspective=t+"px",this},perspective:{get:function(){return parseFloat(this.parent.style.perspective)},set:function(t){this.parent.style.perspective=t+"px"}},addListener:function(t){if(this.node){t=t.split(" ");for(var e=0;e<t.length;e++)this.node.addEventListener(t[e],this.handler,!1)}return this},removeListener:function(t){if(this.node){t=t.split(" ");for(var e=0;e<t.length;e++)this.node.removeEventListener(t[e],this.handler)}return this},dispatchNativeEvent:function(t){this.emit(t.type,t)},createElement:function(t,e,i){return this.setElement(document.createElement(t),e,i)},setElement:function(t,e,i){var n;if(this.removeElement(),"string"==typeof t?("#"===t[0]&&(t=t.substr(1)),n=document.getElementById(t)):"object"==typeof t&&1===t.nodeType&&(n=t),!n)return this;if(this.node=n,e&&a(e))for(var r in e)n.style[r]=e[r];else"string"==typeof e&&(n.style=e);return n.style.zIndex="0",n.style.display="inline",n.style.position="absolute",n.phaser=this,this.parent&&this.parent.appendChild(n),i&&(n.innerText=i),this.updateSize()},createFromCache:function(t,e){var i=this.cache.get(t);return i&&this.createFromHTML(i,e),this},createFromHTML:function(t,e){void 0===e&&(e="div"),this.removeElement();var i=document.createElement(e);return this.node=i,i.style.zIndex="0",i.style.display="inline",i.style.position="absolute",i.phaser=this,this.parent&&this.parent.appendChild(i),i.innerHTML=t,this.updateSize()},removeElement:function(){return this.node&&(h(this.node),this.node=null),this},updateSize:function(){var t=this.node,e=t.getBoundingClientRect();return this.width=t.clientWidth,this.height=t.clientHeight,this.displayWidth=e.width||0,this.displayHeight=e.height||0,this},getChildByProperty:function(t,e){if(this.node)for(var i=this.node.querySelectorAll("*"),n=0;n<i.length;n++)if(i[n][t]===e)return i[n];return null},getChildByID:function(t){return this.getChildByProperty("id",t)},getChildByName:function(t){return this.getChildByProperty("name",t)},setClassName:function(t){return this.node&&(this.node.className=t,this.updateSize()),this},setText:function(t){return this.node&&(this.node.innerText=t,this.updateSize()),this},setHTML:function(t){return this.node&&(this.node.innerHTML=t,this.updateSize()),this},preUpdate:function(){var t=this.parentContainer,e=this.node;e&&t&&!t.willRender()&&(e.style.display="none")},willRender:function(){return!0},preDestroy:function(){this.removeElement(),this.scene.sys.events.off(u.SLEEP,this.handleSceneEvent,this),this.scene.sys.events.off(u.WAKE,this.handleSceneEvent,this)}});t.exports=c},72988:(t,e,i)=>{var n=i(53358),r=i(90554);t.exports=function(t,e,i,s,o){var a=e.node,h=a.style,u=e.scene.sys.settings;if(!(a&&h&&u.visible&&r.RENDER_MASK===e.renderFlags)||0!==e.cameraFilter&&e.cameraFilter&s.id||e.parentContainer&&!e.parentContainer.willRender())a&&(h.display="none");else{var l=e.parentContainer,c=s.alpha*e.alpha;l&&(c*=l.alpha);var d=t._tempMatrix1,p=t._tempMatrix2,f=t._tempMatrix3,m=0,v=0,g="0%",y="0%";o?(m=e.width*e.scaleX*e.originX,v=e.height*e.scaleY*e.originY,p.applyITRS(e.x-m,e.y-v,e.rotation,e.scaleX,e.scaleY),d.copyFrom(s.matrix),d.multiplyWithOffset(o,-s.scrollX*e.scrollFactorX,-s.scrollY*e.scrollFactorY),p.e=e.x-m,p.f=e.y-v,d.multiply(p,f)):(m=e.width*e.originX,v=e.height*e.originY,p.applyITRS(e.x-m,e.y-v,e.rotation,e.scaleX,e.scaleY),d.copyFrom(s.matrix),g=100*e.originX+"%",y=100*e.originY+"%",p.e-=s.scrollX*e.scrollFactorX,p.f-=s.scrollY*e.scrollFactorY,d.multiply(p,f)),e.transformOnly||(h.display="block",h.opacity=c,h.zIndex=e._depth,h.pointerEvents="auto",h.mixBlendMode=n[e._blendMode]),h.transform=f.getCSSMatrix()+" skew("+e.skewX+"rad, "+e.skewY+"rad) rotate3d("+e.rotate3d.x+","+e.rotate3d.y+","+e.rotate3d.z+","+e.rotate3d.w+e.rotate3dAngle+")",h.transformOrigin=g+" "+y}}},91893:(t,e,i)=>{var n=i(4533);i(81342).register("dom",(function(t,e,i,r,s){var o=new n(this.scene,t,e,i,r,s);return this.displayList.add(o),this.updateList.add(o),o}))},12062:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(72988),r=i(72988),t.exports={renderWebGL:n,renderCanvas:r}},47419:t=>{t.exports="destroy"},37704:t=>{t.exports="complete"},10589:t=>{t.exports="created"},90233:t=>{t.exports="error"},31425:t=>{t.exports="loop"},34849:t=>{t.exports="play"},64448:t=>{t.exports="seeked"},87392:t=>{t.exports="seeking"},95841:t=>{t.exports="stop"},56201:t=>{t.exports="timeout"},84651:t=>{t.exports="unlocked"},6783:(t,e,i)=>{t.exports={DESTROY:i(47419),VIDEO_COMPLETE:i(37704),VIDEO_CREATED:i(10589),VIDEO_ERROR:i(90233),VIDEO_LOOP:i(31425),VIDEO_PLAY:i(34849),VIDEO_SEEKED:i(64448),VIDEO_SEEKING:i(87392),VIDEO_STOP:i(95841),VIDEO_TIMEOUT:i(56201),VIDEO_UNLOCKED:i(84651)}},54259:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(90554),o=i(85048),a=new n({Extends:s,Mixins:[r.Alpha,r.BlendMode,r.Depth,r.Flip,r.Origin,r.ScrollFactor,r.Size,r.Texture,r.Tint,r.Transform,r.Visible,o],initialize:function(t){s.call(this,t,"Extern")},preUpdate:function(){},render:function(){}});t.exports=a},37911:()=>{},20773:(t,e,i)=>{var n=i(54259);i(81342).register("extern",(function(){var t=new n(this.scene);return this.displayList.add(t),this.updateList.add(t),t}))},85048:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(16798),r=i(37911),t.exports={renderWebGL:n,renderCanvas:r}},16798:t=>{t.exports=function(t,e,i,n,r){var s=t.currentPipeline;t.clearPipeline();var o=t._tempMatrix1,a=t._tempMatrix2,h=t._tempMatrix3;a.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),o.copyFrom(n.matrix),r?(o.multiplyWithOffset(r,-n.scrollX*e.scrollFactorX,-n.scrollY*e.scrollFactorY),a.e=e.x,a.f=e.y,o.multiply(a,h)):(a.e-=n.scrollX*e.scrollFactorX,a.f-=n.scrollY*e.scrollFactorY,o.multiply(a,h)),e.render.call(e,t,n,h),t.rebindPipeline(s)}},95832:t=>{t.exports={ARC:0,BEGIN_PATH:1,CLOSE_PATH:2,FILL_RECT:3,LINE_TO:4,MOVE_TO:5,LINE_STYLE:6,FILL_STYLE:7,FILL_PATH:8,STROKE_PATH:9,FILL_TRIANGLE:10,STROKE_TRIANGLE:11,SAVE:14,RESTORE:15,TRANSLATE:16,SCALE:17,ROTATE:18,SET_TEXTURE:19,CLEAR_TEXTURE:20,GRADIENT_FILL_STYLE:21,GRADIENT_LINE_STYLE:22}},65726:(t,e,i)=>{var n=i(22190),r=i(47379),s=i(95832),o=i(34613),a=i(64379),h=i(56011),u=i(75878),l=i(76923),c=i(7560),d=i(17938),p=i(90099),f=i(65492),m=i(38341),v=i(90554),g=i(81769),y=i(86652),_=i(14302),x=i(90909),b=new r({Extends:v,Mixins:[o,a,h,u,l,c,d,p,x],initialize:function(t,e){var i=y(e,"x",0),n=y(e,"y",0);v.call(this,t,"Graphics"),this.setPosition(i,n),this.initPipeline(),this.displayOriginX=0,this.displayOriginY=0,this.commandBuffer=[],this.defaultFillColor=-1,this.defaultFillAlpha=1,this.defaultStrokeWidth=1,this.defaultStrokeColor=-1,this.defaultStrokeAlpha=1,this._lineWidth=1,this._tempMatrix1=new f,this._tempMatrix2=new f,this._tempMatrix3=new f,this.setDefaultStyles(e)},setDefaultStyles:function(t){return y(t,"lineStyle",null)&&(this.defaultStrokeWidth=y(t,"lineStyle.width",1),this.defaultStrokeColor=y(t,"lineStyle.color",16777215),this.defaultStrokeAlpha=y(t,"lineStyle.alpha",1),this.lineStyle(this.defaultStrokeWidth,this.defaultStrokeColor,this.defaultStrokeAlpha)),y(t,"fillStyle",null)&&(this.defaultFillColor=y(t,"fillStyle.color",16777215),this.defaultFillAlpha=y(t,"fillStyle.alpha",1),this.fillStyle(this.defaultFillColor,this.defaultFillAlpha)),this},lineStyle:function(t,e,i){return void 0===i&&(i=1),this.commandBuffer.push(s.LINE_STYLE,t,e,i),this._lineWidth=t,this},fillStyle:function(t,e){return void 0===e&&(e=1),this.commandBuffer.push(s.FILL_STYLE,t,e),this},fillGradientStyle:function(t,e,i,n,r){return void 0===r&&(r=1),this.commandBuffer.push(s.GRADIENT_FILL_STYLE,r,t,e,i,n),this},lineGradientStyle:function(t,e,i,n,r,o){return void 0===o&&(o=1),this.commandBuffer.push(s.GRADIENT_LINE_STYLE,t,o,e,i,n,r),this},setTexture:function(t,e,i){if(void 0===i&&(i=0),void 0===t)this.commandBuffer.push(s.CLEAR_TEXTURE);else{var n=this.scene.sys.textures.getFrame(t,e);n&&(2===i&&(i=3),this.commandBuffer.push(s.SET_TEXTURE,n,i))}return this},beginPath:function(){return this.commandBuffer.push(s.BEGIN_PATH),this},closePath:function(){return this.commandBuffer.push(s.CLOSE_PATH),this},fillPath:function(){return this.commandBuffer.push(s.FILL_PATH),this},fill:function(){return this.commandBuffer.push(s.FILL_PATH),this},strokePath:function(){return this.commandBuffer.push(s.STROKE_PATH),this},stroke:function(){return this.commandBuffer.push(s.STROKE_PATH),this},fillCircleShape:function(t){return this.fillCircle(t.x,t.y,t.radius)},strokeCircleShape:function(t){return this.strokeCircle(t.x,t.y,t.radius)},fillCircle:function(t,e,i){return this.beginPath(),this.arc(t,e,i,0,_.PI2),this.fillPath(),this},strokeCircle:function(t,e,i){return this.beginPath(),this.arc(t,e,i,0,_.PI2),this.strokePath(),this},fillRectShape:function(t){return this.fillRect(t.x,t.y,t.width,t.height)},strokeRectShape:function(t){return this.strokeRect(t.x,t.y,t.width,t.height)},fillRect:function(t,e,i,n){return this.commandBuffer.push(s.FILL_RECT,t,e,i,n),this},strokeRect:function(t,e,i,n){var r=this._lineWidth/2,s=t-r,o=t+r;return this.beginPath(),this.moveTo(t,e),this.lineTo(t,e+n),this.strokePath(),this.beginPath(),this.moveTo(t+i,e),this.lineTo(t+i,e+n),this.strokePath(),this.beginPath(),this.moveTo(s,e),this.lineTo(o+i,e),this.strokePath(),this.beginPath(),this.moveTo(s,e+n),this.lineTo(o+i,e+n),this.strokePath(),this},fillRoundedRect:function(t,e,i,n,r){void 0===r&&(r=20);var s=r,o=r,a=r,h=r;return"number"!=typeof r&&(s=g(r,"tl",20),o=g(r,"tr",20),a=g(r,"bl",20),h=g(r,"br",20)),this.beginPath(),this.moveTo(t+s,e),this.lineTo(t+i-o,e),this.arc(t+i-o,e+o,o,-_.TAU,0),this.lineTo(t+i,e+n-h),this.arc(t+i-h,e+n-h,h,0,_.TAU),this.lineTo(t+a,e+n),this.arc(t+a,e+n-a,a,_.TAU,Math.PI),this.lineTo(t,e+s),this.arc(t+s,e+s,s,-Math.PI,-_.TAU),this.fillPath(),this},strokeRoundedRect:function(t,e,i,n,r){void 0===r&&(r=20);var s=r,o=r,a=r,h=r;return"number"!=typeof r&&(s=g(r,"tl",20),o=g(r,"tr",20),a=g(r,"bl",20),h=g(r,"br",20)),this.beginPath(),this.moveTo(t+s,e),this.lineTo(t+i-o,e),this.arc(t+i-o,e+o,o,-_.TAU,0),this.lineTo(t+i,e+n-h),this.arc(t+i-h,e+n-h,h,0,_.TAU),this.lineTo(t+a,e+n),this.arc(t+a,e+n-a,a,_.TAU,Math.PI),this.lineTo(t,e+s),this.arc(t+s,e+s,s,-Math.PI,-_.TAU),this.strokePath(),this},fillPointShape:function(t,e){return this.fillPoint(t.x,t.y,e)},fillPoint:function(t,e,i){return!i||i<1?i=1:(t-=i/2,e-=i/2),this.commandBuffer.push(s.FILL_RECT,t,e,i,i),this},fillTriangleShape:function(t){return this.fillTriangle(t.x1,t.y1,t.x2,t.y2,t.x3,t.y3)},strokeTriangleShape:function(t){return this.strokeTriangle(t.x1,t.y1,t.x2,t.y2,t.x3,t.y3)},fillTriangle:function(t,e,i,n,r,o){return this.commandBuffer.push(s.FILL_TRIANGLE,t,e,i,n,r,o),this},strokeTriangle:function(t,e,i,n,r,o){return this.commandBuffer.push(s.STROKE_TRIANGLE,t,e,i,n,r,o),this},strokeLineShape:function(t){return this.lineBetween(t.x1,t.y1,t.x2,t.y2)},lineBetween:function(t,e,i,n){return this.beginPath(),this.moveTo(t,e),this.lineTo(i,n),this.strokePath(),this},lineTo:function(t,e){return this.commandBuffer.push(s.LINE_TO,t,e),this},moveTo:function(t,e){return this.commandBuffer.push(s.MOVE_TO,t,e),this},strokePoints:function(t,e,i,n){void 0===e&&(e=!1),void 0===i&&(i=!1),void 0===n&&(n=t.length),this.beginPath(),this.moveTo(t[0].x,t[0].y);for(var r=1;r<n;r++)this.lineTo(t[r].x,t[r].y);return e&&this.lineTo(t[0].x,t[0].y),i&&this.closePath(),this.strokePath(),this},fillPoints:function(t,e,i,n){void 0===e&&(e=!1),void 0===i&&(i=!1),void 0===n&&(n=t.length),this.beginPath(),this.moveTo(t[0].x,t[0].y);for(var r=1;r<n;r++)this.lineTo(t[r].x,t[r].y);return e&&this.lineTo(t[0].x,t[0].y),i&&this.closePath(),this.fillPath(),this},strokeEllipseShape:function(t,e){void 0===e&&(e=32);var i=t.getPoints(e);return this.strokePoints(i,!0)},strokeEllipse:function(t,e,i,n,r){void 0===r&&(r=32);var s=new m(t,e,i,n).getPoints(r);return this.strokePoints(s,!0)},fillEllipseShape:function(t,e){void 0===e&&(e=32);var i=t.getPoints(e);return this.fillPoints(i,!0)},fillEllipse:function(t,e,i,n,r){void 0===r&&(r=32);var s=new m(t,e,i,n).getPoints(r);return this.fillPoints(s,!0)},arc:function(t,e,i,n,r,o,a){return void 0===o&&(o=!1),void 0===a&&(a=0),this.commandBuffer.push(s.ARC,t,e,i,n,r,o,a),this},slice:function(t,e,i,n,r,o,a){return void 0===o&&(o=!1),void 0===a&&(a=0),this.commandBuffer.push(s.BEGIN_PATH),this.commandBuffer.push(s.MOVE_TO,t,e),this.commandBuffer.push(s.ARC,t,e,i,n,r,o,a),this.commandBuffer.push(s.CLOSE_PATH),this},save:function(){return this.commandBuffer.push(s.SAVE),this},restore:function(){return this.commandBuffer.push(s.RESTORE),this},translateCanvas:function(t,e){return this.commandBuffer.push(s.TRANSLATE,t,e),this},scaleCanvas:function(t,e){return this.commandBuffer.push(s.SCALE,t,e),this},rotateCanvas:function(t){return this.commandBuffer.push(s.ROTATE,t),this},clear:function(){return this.commandBuffer.length=0,this.defaultFillColor>-1&&this.fillStyle(this.defaultFillColor,this.defaultFillAlpha),this.defaultStrokeColor>-1&&this.lineStyle(this.defaultStrokeWidth,this.defaultStrokeColor,this.defaultStrokeAlpha),this},generateTexture:function(t,e,i){var n,r,s=this.scene.sys,o=s.game.renderer;if(void 0===e&&(e=s.scale.width),void 0===i&&(i=s.scale.height),b.TargetCamera.setScene(this.scene),b.TargetCamera.setViewport(0,0,e,i),b.TargetCamera.scrollX=this.x,b.TargetCamera.scrollY=this.y,"string"==typeof t)if(s.textures.exists(t)){var a=(n=s.textures.get(t)).getSourceImage();a instanceof HTMLCanvasElement&&(r=a.getContext("2d"))}else r=(n=s.textures.createCanvas(t,e,i)).getSourceImage().getContext("2d");else t instanceof HTMLCanvasElement&&(r=t.getContext("2d"));return r&&(this.renderCanvas(o,this,0,b.TargetCamera,null,r,!1),n&&n.refresh()),this},preDestroy:function(){this.commandBuffer=[]}});b.TargetCamera=new n,t.exports=b},85068:(t,e,i)=>{var n=i(95832),r=i(55468);t.exports=function(t,e,i,s,o,a,h){var u=e.commandBuffer,l=u.length,c=a||t.currentContext;if(0!==l&&r(t,c,e,s,o)){var d=1,p=1,f=0,m=0,v=1,g=0,y=0,_=0;c.beginPath();for(var x=0;x<l;++x){switch(u[x]){case n.ARC:c.arc(u[x+1],u[x+2],u[x+3],u[x+4],u[x+5],u[x+6]),x+=7;break;case n.LINE_STYLE:v=u[x+1],f=u[x+2],d=u[x+3],g=(16711680&f)>>>16,y=(65280&f)>>>8,_=255&f,c.strokeStyle="rgba("+g+","+y+","+_+","+d+")",c.lineWidth=v,x+=3;break;case n.FILL_STYLE:m=u[x+1],p=u[x+2],g=(16711680&m)>>>16,y=(65280&m)>>>8,_=255&m,c.fillStyle="rgba("+g+","+y+","+_+","+p+")",x+=2;break;case n.BEGIN_PATH:c.beginPath();break;case n.CLOSE_PATH:c.closePath();break;case n.FILL_PATH:h||c.fill();break;case n.STROKE_PATH:h||c.stroke();break;case n.FILL_RECT:h?c.rect(u[x+1],u[x+2],u[x+3],u[x+4]):c.fillRect(u[x+1],u[x+2],u[x+3],u[x+4]),x+=4;break;case n.FILL_TRIANGLE:c.beginPath(),c.moveTo(u[x+1],u[x+2]),c.lineTo(u[x+3],u[x+4]),c.lineTo(u[x+5],u[x+6]),c.closePath(),h||c.fill(),x+=6;break;case n.STROKE_TRIANGLE:c.beginPath(),c.moveTo(u[x+1],u[x+2]),c.lineTo(u[x+3],u[x+4]),c.lineTo(u[x+5],u[x+6]),c.closePath(),h||c.stroke(),x+=6;break;case n.LINE_TO:c.lineTo(u[x+1],u[x+2]),x+=2;break;case n.MOVE_TO:c.moveTo(u[x+1],u[x+2]),x+=2;break;case n.LINE_FX_TO:c.lineTo(u[x+1],u[x+2]),x+=5;break;case n.MOVE_FX_TO:c.moveTo(u[x+1],u[x+2]),x+=5;break;case n.SAVE:c.save();break;case n.RESTORE:c.restore();break;case n.TRANSLATE:c.translate(u[x+1],u[x+2]),x+=2;break;case n.SCALE:c.scale(u[x+1],u[x+2]),x+=2;break;case n.ROTATE:c.rotate(u[x+1]),x+=1;break;case n.GRADIENT_FILL_STYLE:x+=5;break;case n.GRADIENT_LINE_STYLE:x+=6;break;case n.SET_TEXTURE:x+=2}}c.restore()}}},85389:(t,e,i)=>{var n=i(17517),r=i(65726);n.register("graphics",(function(t,e){void 0===t&&(t={}),void 0!==e&&(t.add=e);var i=new r(this.scene,t);return t.add&&this.scene.sys.displayList.add(i),i}))},97111:(t,e,i)=>{var n=i(65726);i(81342).register("graphics",(function(t){return this.displayList.add(new n(this.scene,t))}))},90909:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(41783),r=i(85068),r=i(85068),t.exports={renderWebGL:n,renderCanvas:r}},41783:(t,e,i)=>{var n=i(95832),r=i(19298),s=function(t,e,i){this.x=t,this.y=e,this.width=i},o=function(t,e,i){this.points=[],this.pointsLength=1,this.points[0]=new s(t,e,i)},a=[];t.exports=function(t,e,i,h,u){if(0!==e.commandBuffer.length){var l=this.pipeline;t.setPipeline(l,e);var c=e._tempMatrix1,d=e._tempMatrix2,p=e._tempMatrix3;p.loadIdentity(),d.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),c.copyFrom(h.matrix),u?(c.multiplyWithOffset(u,-h.scrollX*e.scrollFactorX,-h.scrollY*e.scrollFactorY),d.e=e.x,d.f=e.y,c.multiply(d)):(d.e-=h.scrollX*e.scrollFactorX,d.f-=h.scrollY*e.scrollFactorY,c.multiply(d));for(var f=e.commandBuffer,m=h.alpha*e.alpha,v=1,g=l.fillTint,y=l.strokeTint,_=0,x=0,b=0,w=2*Math.PI,T=[],M=0,S=!1,E=null,L=r.getTintAppendFloatAlphaAndSwap,A=t.blankTexture.glTexture,D=0;D<f.length;D++)switch(f[D]){case n.BEGIN_PATH:T.length=0,E=null,S=!0;break;case n.CLOSE_PATH:S=!1,E&&E.points.length&&E.points.push(E.points[0]);break;case n.FILL_PATH:for(M=0;M<T.length;M++)l.setTexture2D(A),l.batchFillPath(T[M].points,p,c);break;case n.STROKE_PATH:for(M=0;M<T.length;M++)l.setTexture2D(A),l.batchStrokePath(T[M].points,v,S,p,c);break;case n.LINE_STYLE:v=f[++D];var P=L(f[++D],f[++D]*m);y.TL=P,y.TR=P,y.BL=P,y.BR=P;break;case n.FILL_STYLE:var C=L(f[++D],f[++D]*m);g.TL=C,g.TR=C,g.BL=C,g.BR=C;break;case n.GRADIENT_FILL_STYLE:var O=f[++D]*m;g.TL=L(f[++D],O),g.TR=L(f[++D],O),g.BL=L(f[++D],O),g.BR=L(f[++D],O);break;case n.GRADIENT_LINE_STYLE:v=f[++D];var k=f[++D]*m;y.TL=L(f[++D],k),y.TR=L(f[++D],k),y.BL=L(f[++D],k),y.BR=L(f[++D],k);break;case n.ARC:var R=0,I=f[++D],Y=f[++D],F=f[++D],N=f[++D],B=f[++D],U=f[++D],j=f[++D];for(B-=N,U?B<-w?B=-w:B>0&&(B=B%w-w):B>w?B=w:B<0&&(B=w+B%w),null===E&&(E=new o(I+Math.cos(N)*F,Y+Math.sin(N)*F,v),T.push(E),R+=.01);R<1+j;)b=B*R+N,_=I+Math.cos(b)*F,x=Y+Math.sin(b)*F,E.points.push(new s(_,x,v)),R+=.01;b=B+N,_=I+Math.cos(b)*F,x=Y+Math.sin(b)*F,E.points.push(new s(_,x,v));break;case n.FILL_RECT:l.setTexture2D(A),l.batchFillRect(f[++D],f[++D],f[++D],f[++D],p,c);break;case n.FILL_TRIANGLE:l.setTexture2D(A),l.batchFillTriangle(f[++D],f[++D],f[++D],f[++D],f[++D],f[++D],p,c);break;case n.STROKE_TRIANGLE:l.setTexture2D(A),l.batchStrokeTriangle(f[++D],f[++D],f[++D],f[++D],f[++D],f[++D],v,p,c);break;case n.LINE_TO:null!==E?E.points.push(new s(f[++D],f[++D],v)):(E=new o(f[++D],f[++D],v),T.push(E));break;case n.MOVE_TO:E=new o(f[++D],f[++D],v),T.push(E);break;case n.SAVE:a.push(p.copyToArray());break;case n.RESTORE:p.copyFromArray(a.pop());break;case n.TRANSLATE:I=f[++D],Y=f[++D],p.translate(I,Y);break;case n.SCALE:I=f[++D],Y=f[++D],p.scale(I,Y);break;case n.ROTATE:p.rotate(f[++D]);break;case n.SET_TEXTURE:var H=f[++D],z=f[++D];l.currentFrame=H,l.setTexture2D(H.glTexture,0),l.tintEffect=z,A=H.glTexture;break;case n.CLEAR_TEXTURE:l.currentFrame=t.blankTexture,l.tintEffect=2,A=t.blankTexture.glTexture}}}},55815:(t,e,i)=>{var n=i(5490),r=i(47379),s=i(6783),o=i(81769),a=i(86652),h=i(28621),u=i(81903),l=i(69347),c=i(95681),d=new r({initialize:function(t,e,i){i?e&&!Array.isArray(e)&&(e=[e]):Array.isArray(e)?h(e[0])&&(i=e,e=null):h(e)&&(i=e,e=null),this.scene=t,this.children=new l(e),this.isParent=!0,this.type="Group",this.classType=o(i,"classType",c),this.name=o(i,"name",""),this.active=o(i,"active",!0),this.maxSize=o(i,"maxSize",-1),this.defaultKey=o(i,"defaultKey",null),this.defaultFrame=o(i,"defaultFrame",null),this.runChildUpdate=o(i,"runChildUpdate",!1),this.createCallback=o(i,"createCallback",null),this.removeCallback=o(i,"removeCallback",null),this.createMultipleCallback=o(i,"createMultipleCallback",null),this.internalCreateCallback=o(i,"internalCreateCallback",null),this.internalRemoveCallback=o(i,"internalRemoveCallback",null),i&&this.createMultiple(i)},create:function(t,e,i,n,r,s){if(void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=this.defaultKey),void 0===n&&(n=this.defaultFrame),void 0===r&&(r=!0),void 0===s&&(s=!0),this.isFull())return null;var o=new this.classType(this.scene,t,e,i,n);return this.scene.sys.displayList.add(o),o.preUpdate&&this.scene.sys.updateList.add(o),o.visible=r,o.setActive(s),this.add(o),o},createMultiple:function(t){if(this.isFull())return[];Array.isArray(t)||(t=[t]);var e=[];if(t[0].key)for(var i=0;i<t.length;i++){var n=this.createFromConfig(t[i]);e=e.concat(n)}return e},createFromConfig:function(t){if(this.isFull())return[];this.classType=o(t,"classType",this.classType);var e=o(t,"key",void 0),i=o(t,"frame",null),r=o(t,"visible",!0),s=o(t,"active",!0),h=[];if(void 0===e)return h;Array.isArray(e)||(e=[e]),Array.isArray(i)||(i=[i]);var l=o(t,"repeat",0),c=o(t,"randomKey",!1),d=o(t,"randomFrame",!1),p=o(t,"yoyo",!1),f=o(t,"quantity",!1),m=o(t,"frameQuantity",1),v=o(t,"max",0),g=u(e,i,{max:v,qty:f||m,random:c,randomB:d,repeat:l,yoyo:p});t.createCallback&&(this.createCallback=t.createCallback),t.removeCallback&&(this.removeCallback=t.removeCallback);for(var y=0;y<g.length;y++){var _=this.create(0,0,g[y].a,g[y].b,r,s);if(!_)break;h.push(_)}var x=a(t,"setXY.x",0),b=a(t,"setXY.y",0),w=a(t,"setXY.stepX",0),T=a(t,"setXY.stepY",0);n.SetXY(h,x,b,w,T);var M=a(t,"setRotation.value",0),S=a(t,"setRotation.step",0);n.SetRotation(h,M,S);var E=a(t,"setScale.x",1),L=a(t,"setScale.y",E),A=a(t,"setScale.stepX",0),D=a(t,"setScale.stepY",0);n.SetScale(h,E,L,A,D);var P=a(t,"setAlpha.value",1),C=a(t,"setAlpha.step",0);n.SetAlpha(h,P,C);var O=a(t,"setDepth.value",0),k=a(t,"setDepth.step",0);n.SetDepth(h,O,k);var R=a(t,"setScrollFactor.x",1),I=a(t,"setScrollFactor.y",R),Y=a(t,"setScrollFactor.stepX",0),F=a(t,"setScrollFactor.stepY",0);n.SetScrollFactor(h,R,I,Y,F);var N=o(t,"hitArea",null),B=o(t,"hitAreaCallback",null);N&&n.SetHitArea(h,N,B);var U=o(t,"gridAlign",!1);return U&&n.GridAlign(h,U),this.createMultipleCallback&&this.createMultipleCallback.call(this,h),h},preUpdate:function(t,e){if(this.runChildUpdate&&0!==this.children.size)for(var i=this.children.entries.slice(),n=0;n<i.length;n++){var r=i[n];r.active&&r.update(t,e)}},add:function(t,e){return void 0===e&&(e=!1),this.isFull()||(this.children.set(t),this.internalCreateCallback&&this.internalCreateCallback.call(this,t),this.createCallback&&this.createCallback.call(this,t),e&&(this.scene.sys.displayList.add(t),t.preUpdate&&this.scene.sys.updateList.add(t)),t.on(s.DESTROY,this.remove,this)),this},addMultiple:function(t,e){if(void 0===e&&(e=!1),Array.isArray(t))for(var i=0;i<t.length;i++)this.add(t[i],e);return this},remove:function(t,e,i){return void 0===e&&(e=!1),void 0===i&&(i=!1),this.children.contains(t)?(this.children.delete(t),this.internalRemoveCallback&&this.internalRemoveCallback.call(this,t),this.removeCallback&&this.removeCallback.call(this,t),t.off(s.DESTROY,this.remove,this),i?t.destroy():e&&(t.scene.sys.displayList.remove(t),t.preUpdate&&t.scene.sys.updateList.remove(t)),this):this},clear:function(t,e){void 0===t&&(t=!1),void 0===e&&(e=!1);for(var i=this.children,n=0;n<i.size;n++){var r=i.entries[n];r.off(s.DESTROY,this.remove,this),e?r.destroy():t&&(r.scene.sys.displayList.remove(r),r.preUpdate&&r.scene.sys.updateList.remove(r))}return this.children.clear(),this},contains:function(t){return this.children.contains(t)},getChildren:function(){return this.children.entries},getLength:function(){return this.children.size},getFirst:function(t,e,i,n,r,s,o){return this.getHandler(!0,1,t,e,i,n,r,s,o)},getFirstNth:function(t,e,i,n,r,s,o,a){return this.getHandler(!0,t,e,i,n,r,s,o,a)},getLast:function(t,e,i,n,r,s,o){return this.getHandler(!1,1,t,e,i,n,r,s,o)},getLastNth:function(t,e,i,n,r,s,o,a){return this.getHandler(!1,t,e,i,n,r,s,o,a)},getHandler:function(t,e,i,n,r,s,o,a,h){var u,l;void 0===i&&(i=!1),void 0===n&&(n=!1);var c=0,d=this.children.entries;if(t)for(l=0;l<d.length;l++)if((u=d[l]).active===i){if(++c===e)break}else u=null;else for(l=d.length-1;l>=0;l--)if((u=d[l]).active===i){if(++c===e)break}else u=null;return u?("number"==typeof r&&(u.x=r),"number"==typeof s&&(u.y=s),u):n?this.create(r,s,o,a,h):null},get:function(t,e,i,n,r){return this.getFirst(!1,!0,t,e,i,n,r)},getFirstAlive:function(t,e,i,n,r,s){return this.getFirst(!0,t,e,i,n,r,s)},getFirstDead:function(t,e,i,n,r,s){return this.getFirst(!1,t,e,i,n,r,s)},playAnimation:function(t,e){return n.PlayAnimation(this.children.entries,t,e),this},isFull:function(){return-1!==this.maxSize&&this.children.size>=this.maxSize},countActive:function(t){void 0===t&&(t=!0);for(var e=0,i=0;i<this.children.size;i++)this.children.entries[i].active===t&&e++;return e},getTotalUsed:function(){return this.countActive()},getTotalFree:function(){var t=this.getTotalUsed();return(-1===this.maxSize?999999999999:this.maxSize)-t},propertyValueSet:function(t,e,i,r,s){return n.PropertyValueSet(this.children.entries,t,e,i,r,s),this},propertyValueInc:function(t,e,i,r,s){return n.PropertyValueInc(this.children.entries,t,e,i,r,s),this},setX:function(t,e){return n.SetX(this.children.entries,t,e),this},setY:function(t,e){return n.SetY(this.children.entries,t,e),this},setXY:function(t,e,i,r){return n.SetXY(this.children.entries,t,e,i,r),this},incX:function(t,e){return n.IncX(this.children.entries,t,e),this},incY:function(t,e){return n.IncY(this.children.entries,t,e),this},incXY:function(t,e,i,r){return n.IncXY(this.children.entries,t,e,i,r),this},shiftPosition:function(t,e,i){return n.ShiftPosition(this.children.entries,t,e,i),this},angle:function(t,e){return n.Angle(this.children.entries,t,e),this},rotate:function(t,e){return n.Rotate(this.children.entries,t,e),this},rotateAround:function(t,e){return n.RotateAround(this.children.entries,t,e),this},rotateAroundDistance:function(t,e,i){return n.RotateAroundDistance(this.children.entries,t,e,i),this},setAlpha:function(t,e){return n.SetAlpha(this.children.entries,t,e),this},setTint:function(t,e,i,r){return n.SetTint(this.children.entries,t,e,i,r),this},setOrigin:function(t,e,i,r){return n.SetOrigin(this.children.entries,t,e,i,r),this},scaleX:function(t,e){return n.ScaleX(this.children.entries,t,e),this},scaleY:function(t,e){return n.ScaleY(this.children.entries,t,e),this},scaleXY:function(t,e,i,r){return n.ScaleXY(this.children.entries,t,e,i,r),this},setDepth:function(t,e){return n.SetDepth(this.children.entries,t,e),this},setBlendMode:function(t){return n.SetBlendMode(this.children.entries,t),this},setHitArea:function(t,e){return n.SetHitArea(this.children.entries,t,e),this},shuffle:function(){return n.Shuffle(this.children.entries),this},kill:function(t){this.children.contains(t)&&t.setActive(!1)},killAndHide:function(t){this.children.contains(t)&&(t.setActive(!1),t.setVisible(!1))},setVisible:function(t,e,i){return n.SetVisible(this.children.entries,t,e,i),this},toggleVisible:function(){return n.ToggleVisible(this.children.entries),this},destroy:function(t){void 0===t&&(t=!1),this.scene&&!this.ignoreDestroy&&(this.clear(!1,t),this.scene=void 0,this.children=void 0)}});t.exports=d},22168:(t,e,i)=>{var n=i(17517),r=i(55815);n.register("group",(function(t){return new r(this.scene,null,t)}))},44902:(t,e,i)=>{var n=i(55815);i(81342).register("group",(function(t,e){return this.updateList.add(new n(this.scene,t,e))}))},59525:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(90554),o=i(86171),a=new n({Extends:s,Mixins:[r.Alpha,r.BlendMode,r.Depth,r.Flip,r.GetBounds,r.Mask,r.Origin,r.Pipeline,r.ScrollFactor,r.Size,r.TextureCrop,r.Tint,r.Transform,r.Visible,o],initialize:function(t,e,i,n,r){s.call(this,t,"Image"),this._crop=this.resetCropObject(),this.setTexture(n,r),this.setPosition(e,i),this.setSizeToFrame(),this.setOriginFromFrame(),this.initPipeline()}});t.exports=a},81044:t=>{t.exports=function(t,e,i,n,r){t.batchSprite(e,e.frame,n,r)}},71241:(t,e,i)=>{var n=i(74865),r=i(17517),s=i(57687),o=i(59525);r.register("image",(function(t,e){void 0===t&&(t={});var i=s(t,"key",null),r=s(t,"frame",null),a=new o(this.scene,0,0,i,r);return void 0!==e&&(t.add=e),n(this.scene,a,t),a}))},43483:(t,e,i)=>{var n=i(59525);i(81342).register("image",(function(t,e,i,r){return this.displayList.add(new n(this.scene,t,e,i,r))}))},86171:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(18042),r=i(81044),t.exports={renderWebGL:n,renderCanvas:r}},18042:t=>{t.exports=function(t,e,i,n,r){this.pipeline.batchSprite(e,n,r)}},5837:(t,e,i)=>{var n={Events:i(6783),DisplayList:i(28983),GameObjectCreator:i(17517),GameObjectFactory:i(81342),UpdateList:i(61118),Components:i(23096),BuildGameObject:i(74865),BuildGameObjectAnimation:i(4777),GameObject:i(90554),BitmapText:i(56956),Blitter:i(92139),Container:i(8676),DOMElement:i(4533),DynamicBitmapText:i(16175),Extern:i(54259),Graphics:i(65726),Group:i(55815),Image:i(59525),Particles:i(88842),PathFollower:i(95473),RenderTexture:i(68343),RetroFont:i(89193),Rope:i(18741),Sprite:i(95681),Text:i(52986),TileSprite:i(20003),Zone:i(24860),Video:i(44336),Shape:i(31641),Arc:i(66082),Curve:i(56653),Ellipse:i(62291),Grid:i(12086),IsoBox:i(46221),IsoTriangle:i(39994),Line:i(21211),Polygon:i(32330),Rectangle:i(13056),Star:i(85864),Triangle:i(82379),Factories:{Blitter:i(306),Container:i(502),DOMElement:i(91893),DynamicBitmapText:i(60094),Extern:i(20773),Graphics:i(97111),Group:i(44902),Image:i(43483),Particles:i(262),PathFollower:i(19541),RenderTexture:i(89107),Rope:i(17100),Sprite:i(88984),StaticBitmapText:i(41547),Text:i(44229),TileSprite:i(26241),Zone:i(3242),Video:i(38020),Arc:i(44729),Curve:i(18164),Ellipse:i(70608),Grid:i(85357),IsoBox:i(37349),IsoTriangle:i(57084),Line:i(74347),Polygon:i(42275),Rectangle:i(23738),Star:i(11242),Triangle:i(80888)},Creators:{Blitter:i(53674),Container:i(30814),DynamicBitmapText:i(29036),Graphics:i(85389),Group:i(22168),Image:i(71241),Particles:i(41887),RenderTexture:i(49830),Rope:i(56546),Sprite:i(69045),StaticBitmapText:i(21296),Text:i(19086),TileSprite:i(94938),Zone:i(90932),Video:i(48200)}};n.Mesh=i(32507),n.Quad=i(34500),n.Shader=i(29274),n.Factories.Mesh=i(91336),n.Factories.Quad=i(57367),n.Factories.Shader=i(61785),n.Creators.Mesh=i(17306),n.Creators.Quad=i(70121),n.Creators.Shader=i(34386),n.Light=i(90302),i(38812),i(59484),t.exports=n},90302:(t,e,i)=>{var n=i(47379),r=i(19298),s=new n({initialize:function(t,e,i,n,r,s,o){this.x=t,this.y=e,this.radius=i,this.r=n,this.g=r,this.b=s,this.intensity=o,this.scrollFactorX=1,this.scrollFactorY=1},set:function(t,e,i,n,r,s,o){return this.x=t,this.y=e,this.radius=i,this.r=n,this.g=r,this.b=s,this.intensity=o,this.scrollFactorX=1,this.scrollFactorY=1,this},setScrollFactor:function(t,e){return void 0===t&&(t=1),void 0===e&&(e=t),this.scrollFactorX=t,this.scrollFactorY=e,this},setColor:function(t){var e=r.getFloatsFromUintRGB(t);return this.r=e[0],this.g=e[1],this.b=e[2],this},setIntensity:function(t){return this.intensity=t,this},setPosition:function(t,e){return this.x=t,this.y=e,this},setRadius:function(t){return this.radius=t,this}});t.exports=s},38812:(t,e,i)=>{var n=i(47379),r=i(90302),s=i(19298),o=new n({initialize:function(){this.lightPool=[],this.lights=[],this.culledLights=[],this.ambientColor={r:.1,g:.1,b:.1},this.active=!1,this.maxLights=-1},enable:function(){return-1===this.maxLights&&(this.maxLights=this.scene.sys.game.renderer.config.maxLights),this.active=!0,this},disable:function(){return this.active=!1,this},cull:function(t){var e=this.lights,i=this.culledLights,n=e.length,r=t.x+t.width/2,s=t.y+t.height/2,o=(t.width+t.height)/2,a={x:0,y:0},h=t.matrix,u=this.systems.game.config.height;i.length=0;for(var l=0;l<n&&i.length<this.maxLights;l++){var c=e[l];h.transformPoint(c.x,c.y,a);var d=r-(a.x-t.scrollX*c.scrollFactorX*t.zoom),p=s-(u-(a.y-t.scrollY*c.scrollFactorY*t.zoom));Math.sqrt(d*d+p*p)<c.radius+o&&i.push(e[l])}return i},forEachLight:function(t){if(t){for(var e=this.lights,i=e.length,n=0;n<i;++n)t(e[n]);return this}},setAmbientColor:function(t){var e=s.getFloatsFromUintRGB(t);return this.ambientColor.r=e[0],this.ambientColor.g=e[1],this.ambientColor.b=e[2],this},getMaxVisibleLights:function(){return 10},getLightCount:function(){return this.lights.length},addLight:function(t,e,i,n,o){var a,h=null;return t=void 0===t?0:t,e=void 0===e?0:e,n=void 0===n?16777215:n,i=void 0===i?100:i,o=void 0===o?1:o,a=s.getFloatsFromUintRGB(n),h=null,this.lightPool.length>0?(h=this.lightPool.pop()).set(t,e,i,a[0],a[1],a[2],o):h=new r(t,e,i,a[0],a[1],a[2],o),this.lights.push(h),h},removeLight:function(t){var e=this.lights.indexOf(t);return e>=0&&(this.lightPool.push(t),this.lights.splice(e,1)),this},shutdown:function(){for(;this.lights.length>0;)this.lightPool.push(this.lights.pop());this.ambientColor={r:.1,g:.1,b:.1},this.culledLights.length=0,this.lights.length=0},destroy:function(){this.shutdown()}});t.exports=o},59484:(t,e,i)=>{var n=i(47379),r=i(38812),s=i(50354),o=i(88637),a=new n({Extends:r,initialize:function(t){this.scene=t,this.systems=t.sys,t.sys.settings.isBooted||t.sys.events.once(o.BOOT,this.boot,this),r.call(this)},boot:function(){var t=this.systems.events;t.on(o.SHUTDOWN,this.shutdown,this),t.on(o.DESTROY,this.destroy,this)},destroy:function(){this.shutdown(),this.scene=void 0,this.systems=void 0}});s.register("LightsPlugin",a,"lights"),t.exports=a},32507:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(90554),o=i(36196),a=i(49035),h=new n({Extends:s,Mixins:[r.BlendMode,r.Depth,r.Mask,r.Pipeline,r.Size,r.Texture,r.Transform,r.Visible,r.ScrollFactor,o],initialize:function(t,e,i,n,r,o,a,h,u){if(s.call(this,t,"Mesh"),n.length!==r.length)throw new Error("Mesh Vertex count must match UV count");var l,c=n.length/2|0;if(o.length>0&&o.length<c)throw new Error("Mesh Color count must match Vertex count");if(a.length>0&&a.length<c)throw new Error("Mesh Alpha count must match Vertex count");if(0===o.length)for(l=0;l<c;++l)o[l]=16777215;if(0===a.length)for(l=0;l<c;++l)a[l]=1;this.vertices=new Float32Array(n),this.uv=new Float32Array(r),this.colors=new Uint32Array(o),this.alphas=new Float32Array(a),this.tintFill=!1,this.setTexture(h,u),this.setPosition(e,i),this.setSizeToFrame(),this.initPipeline()},setAlpha:a});t.exports=h},16624:t=>{t.exports=function(){}},17306:(t,e,i)=>{var n=i(74865),r=i(17517),s=i(57687),o=i(86652),a=i(32507);r.register("mesh",(function(t,e){void 0===t&&(t={});var i=s(t,"key",null),r=s(t,"frame",null),h=o(t,"vertices",[]),u=o(t,"colors",[]),l=o(t,"alphas",[]),c=o(t,"uv",[]),d=new a(this.scene,0,0,h,c,u,l,i,r);return void 0!==e&&(t.add=e),n(this.scene,d,t),d}))},91336:(t,e,i)=>{var n=i(32507);i(81342).register("mesh",(function(t,e,i,r,s,o,a,h){return this.displayList.add(new n(this.scene,t,e,i,r,s,o,a,h))}))},36196:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(11880),r=i(16624),t.exports={renderWebGL:n,renderCanvas:r}},11880:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){var o=this.pipeline;t.setPipeline(o,e);var a=o._tempMatrix1,h=o._tempMatrix2,u=o._tempMatrix3;h.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),a.copyFrom(r.matrix),s?(a.multiplyWithOffset(s,-r.scrollX*e.scrollFactorX,-r.scrollY*e.scrollFactorY),h.e=e.x,h.f=e.y,a.multiply(h,u)):(h.e-=r.scrollX*e.scrollFactorX,h.f-=r.scrollY*e.scrollFactorY,a.multiply(h,u));var l=e.frame.glTexture,c=e.vertices,d=e.uv,p=e.colors,f=e.alphas,m=c.length,v=Math.floor(.5*m);o.vertexCount+v>o.vertexCapacity&&o.flush(),o.setTexture2D(l,0);for(var g=o.vertexViewF32,y=o.vertexViewU32,_=o.vertexCount*o.vertexComponentCount-1,x=0,b=e.tintFill,w=0;w<m;w+=2){var T=c[w+0],M=c[w+1],S=T*u.a+M*u.c+u.e,E=T*u.b+M*u.d+u.f;r.roundPixels&&(S=Math.round(S),E=Math.round(E)),g[++_]=S,g[++_]=E,g[++_]=d[w+0],g[++_]=d[w+1],g[++_]=b,y[++_]=n.getTintAppendFloatAlpha(p[x],r.alpha*f[x]),x++}o.vertexCount+=v}},32497:(t,e,i)=>{var n=i(47379),r=i(31657),s=i(38852),o=i(81769),a=i(62951),h=new n({initialize:function(t,e,i,n){void 0===n&&(n=!1),this.propertyKey=e,this.propertyValue=i,this.defaultValue=i,this.steps=0,this.counter=0,this.start=0,this.end=0,this.ease,this.emitOnly=n,this.onEmit=this.defaultEmit,this.onUpdate=this.defaultUpdate,this.loadConfig(t)},loadConfig:function(t,e){void 0===t&&(t={}),e&&(this.propertyKey=e),this.propertyValue=o(t,this.propertyKey,this.defaultValue),this.setMethods(),this.emitOnly&&(this.onUpdate=this.defaultUpdate)},toJSON:function(){return this.propertyValue},onChange:function(t){return this.propertyValue=t,this.setMethods()},setMethods:function(){var t=this.propertyValue,e=typeof t;if("number"===e)this.onEmit=this.staticValueEmit,this.onUpdate=this.staticValueUpdate;else if(Array.isArray(t))this.onEmit=this.randomStaticValueEmit;else if("function"===e)this.emitOnly?this.onEmit=t:this.onUpdate=t;else if("object"===e&&(this.has(t,"random")||this.hasBoth(t,"start","end")||this.hasBoth(t,"min","max"))){this.start=this.has(t,"start")?t.start:t.min,this.end=this.has(t,"end")?t.end:t.max;var i=this.hasBoth(t,"min","max")||!!t.random;if(i){var n=t.random;Array.isArray(n)&&(this.start=n[0],this.end=n[1]),this.onEmit=this.randomRangedValueEmit}if(this.has(t,"steps"))this.steps=t.steps,this.counter=this.start,this.onEmit=this.steppedEmit;else{var r=this.has(t,"ease")?t.ease:"Linear";this.ease=s(r),i||(this.onEmit=this.easedValueEmit),this.onUpdate=this.easeValueUpdate}}else"object"===e&&this.hasEither(t,"onEmit","onUpdate")&&(this.has(t,"onEmit")&&(this.onEmit=t.onEmit),this.has(t,"onUpdate")&&(this.onUpdate=t.onUpdate));return this},has:function(t,e){return t.hasOwnProperty(e)},hasBoth:function(t,e,i){return t.hasOwnProperty(e)&&t.hasOwnProperty(i)},hasEither:function(t,e,i){return t.hasOwnProperty(e)||t.hasOwnProperty(i)},defaultEmit:function(t,e,i){return i},defaultUpdate:function(t,e,i,n){return n},staticValueEmit:function(){return this.propertyValue},staticValueUpdate:function(){return this.propertyValue},randomStaticValueEmit:function(){var t=Math.floor(Math.random()*this.propertyValue.length);return this.propertyValue[t]},randomRangedValueEmit:function(t,e){var i=r(this.start,this.end);return t&&t.data[e]&&(t.data[e].min=i),i},steppedEmit:function(){var t=this.counter,e=this.counter+(this.end-this.start)/this.steps;return this.counter=a(e,this.start,this.end),t},easedValueEmit:function(t,e){if(t&&t.data[e]){var i=t.data[e];i.min=this.start,i.max=this.end}return this.start},easeValueUpdate:function(t,e,i){var n=t.data[e];return(n.max-n.min)*this.ease(i)+n.min}});t.exports=h},50007:(t,e,i)=>{var n=i(47379),r=i(81769),s=new n({initialize:function(t,e,i,n,s){if("object"==typeof t){var o=t;t=r(o,"x",0),e=r(o,"y",0),i=r(o,"power",0),n=r(o,"epsilon",100),s=r(o,"gravity",50)}else void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=100),void 0===s&&(s=50);this.x=t,this.y=e,this.active=!0,this._gravity=s,this._power=0,this._epsilon=0,this.power=i,this.epsilon=n},update:function(t,e){var i=this.x-t.x,n=this.y-t.y,r=i*i+n*n;if(0!==r){var s=Math.sqrt(r);r<this._epsilon&&(r=this._epsilon);var o=this._power*e/(r*s)*100;t.velocityX+=i*o,t.velocityY+=n*o}},epsilon:{get:function(){return Math.sqrt(this._epsilon)},set:function(t){this._epsilon=t*t}},power:{get:function(){return this._power/this._gravity},set:function(t){this._power=t*this._gravity}},gravity:{get:function(){return this._gravity},set:function(t){var e=this.power;this._gravity=t,this.power=e}}});t.exports=s},95423:(t,e,i)=>{var n=i(47379),r=i(98436),s=i(73587),o=new n({initialize:function(t){this.emitter=t,this.frame=null,this.x=0,this.y=0,this.velocityX=0,this.velocityY=0,this.accelerationX=0,this.accelerationY=0,this.maxVelocityX=1e4,this.maxVelocityY=1e4,this.bounce=0,this.scaleX=1,this.scaleY=1,this.alpha=1,this.angle=0,this.rotation=0,this.tint=16777215,this.life=1e3,this.lifeCurrent=1e3,this.delayCurrent=0,this.lifeT=0,this.data={tint:{min:16777215,max:16777215,current:16777215},alpha:{min:1,max:1},rotate:{min:0,max:0},scaleX:{min:1,max:1},scaleY:{min:1,max:1}}},isAlive:function(){return this.lifeCurrent>0},resetPosition:function(){this.x=0,this.y=0},fire:function(t,e){var i=this.emitter;this.frame=i.getFrame(),i.emitZone&&i.emitZone.getPoint(this),void 0===t?(i.follow&&(this.x+=i.follow.x+i.followOffset.x),this.x+=i.x.onEmit(this,"x")):this.x+=t,void 0===e?(i.follow&&(this.y+=i.follow.y+i.followOffset.y),this.y+=i.y.onEmit(this,"y")):this.y+=e,this.life=i.lifespan.onEmit(this,"lifespan"),this.lifeCurrent=this.life,this.lifeT=0;var n=i.speedX.onEmit(this,"speedX"),o=i.speedY?i.speedY.onEmit(this,"speedY"):n;if(i.radial){var a=r(i.angle.onEmit(this,"angle"));this.velocityX=Math.cos(a)*Math.abs(n),this.velocityY=Math.sin(a)*Math.abs(o)}else if(i.moveTo){var h=i.moveToX.onEmit(this,"moveToX"),u=i.moveToY?i.moveToY.onEmit(this,"moveToY"):h,l=Math.atan2(u-this.y,h-this.x),c=s(this.x,this.y,h,u)/(this.life/1e3);this.velocityX=Math.cos(l)*c,this.velocityY=Math.sin(l)*c}else this.velocityX=n,this.velocityY=o;i.acceleration&&(this.accelerationX=i.accelerationX.onEmit(this,"accelerationX"),this.accelerationY=i.accelerationY.onEmit(this,"accelerationY")),this.maxVelocityX=i.maxVelocityX.onEmit(this,"maxVelocityX"),this.maxVelocityY=i.maxVelocityY.onEmit(this,"maxVelocityY"),this.delayCurrent=i.delay.onEmit(this,"delay"),this.scaleX=i.scaleX.onEmit(this,"scaleX"),this.scaleY=i.scaleY?i.scaleY.onEmit(this,"scaleY"):this.scaleX,this.angle=i.rotate.onEmit(this,"rotate"),this.rotation=r(this.angle),this.bounce=i.bounce.onEmit(this,"bounce"),this.alpha=i.alpha.onEmit(this,"alpha"),this.tint=i.tint.onEmit(this,"tint")},computeVelocity:function(t,e,i,n){var r=this.velocityX,s=this.velocityY,o=this.accelerationX,a=this.accelerationY,h=this.maxVelocityX,u=this.maxVelocityY;r+=t.gravityX*i,s+=t.gravityY*i,o&&(r+=o*i),a&&(s+=a*i),r>h?r=h:r<-h&&(r=-h),s>u?s=u:s<-u&&(s=-u),this.velocityX=r,this.velocityY=s;for(var l=0;l<n.length;l++)n[l].update(this,e,i)},checkBounds:function(t){var e=t.bounds,i=-this.bounce;this.x<e.x&&t.collideLeft?(this.x=e.x,this.velocityX*=i):this.x>e.right&&t.collideRight&&(this.x=e.right,this.velocityX*=i),this.y<e.y&&t.collideTop?(this.y=e.y,this.velocityY*=i):this.y>e.bottom&&t.collideBottom&&(this.y=e.bottom,this.velocityY*=i)},update:function(t,e,i){if(this.delayCurrent>0)return this.delayCurrent-=t,!1;var n=this.emitter,s=1-this.lifeCurrent/this.life;return this.lifeT=s,this.computeVelocity(n,t,e,i),this.x+=this.velocityX*e,this.y+=this.velocityY*e,n.bounds&&this.checkBounds(n),n.deathZone&&n.deathZone.willKill(this)?(this.lifeCurrent=0,!0):(this.scaleX=n.scaleX.onUpdate(this,"scaleX",s,this.scaleX),n.scaleY?this.scaleY=n.scaleY.onUpdate(this,"scaleY",s,this.scaleY):this.scaleY=this.scaleX,this.angle=n.rotate.onUpdate(this,"rotate",s,this.angle),this.rotation=r(this.angle),this.alpha=n.alpha.onUpdate(this,"alpha",s,this.alpha),this.tint=n.tint.onUpdate(this,"tint",s,this.tint),this.lifeCurrent-=t,this.lifeCurrent<=0)}});t.exports=o},3631:(t,e,i)=>{var n=i(35869),r=i(47379),s=i(23096),o=i(72347),a=i(71521),h=i(32497),u=i(81769),l=i(51750),c=i(97639),d=i(64036),p=i(95423),f=i(46744),m=i(38092),v=i(59199),g=i(57148),y=i(62951),_=new r({Mixins:[s.BlendMode,s.Mask,s.ScrollFactor,s.Visible],initialize:function(t,e){this.manager=t,this.texture=t.texture,this.frames=[t.defaultFrame],this.defaultFrame=t.defaultFrame,this.configFastMap=["active","blendMode","collideBottom","collideLeft","collideRight","collideTop","deathCallback","deathCallbackScope","emitCallback","emitCallbackScope","follow","frequency","gravityX","gravityY","maxParticles","name","on","particleBringToTop","particleClass","radial","timeScale","trackVisible","visible"],this.configOpMap=["accelerationX","accelerationY","angle","alpha","bounce","delay","lifespan","maxVelocityX","maxVelocityY","moveToX","moveToY","quantity","rotate","scaleX","scaleY","speedX","speedY","tint","x","y"],this.name="",this.particleClass=p,this.x=new h(e,"x",0,!0),this.y=new h(e,"y",0,!0),this.radial=!0,this.gravityX=0,this.gravityY=0,this.acceleration=!1,this.accelerationX=new h(e,"accelerationX",0,!0),this.accelerationY=new h(e,"accelerationY",0,!0),this.maxVelocityX=new h(e,"maxVelocityX",1e4,!0),this.maxVelocityY=new h(e,"maxVelocityY",1e4,!0),this.speedX=new h(e,"speedX",0,!0),this.speedY=new h(e,"speedY",0,!0),this.moveTo=!1,this.moveToX=new h(e,"moveToX",0,!0),this.moveToY=new h(e,"moveToY",0,!0),this.bounce=new h(e,"bounce",0,!0),this.scaleX=new h(e,"scaleX",1),this.scaleY=new h(e,"scaleY",1),this.tint=new h(e,"tint",4294967295),this.alpha=new h(e,"alpha",1),this.lifespan=new h(e,"lifespan",1e3,!0),this.angle=new h(e,"angle",{min:0,max:360},!0),this.rotate=new h(e,"rotate",0),this.emitCallback=null,this.emitCallbackScope=null,this.deathCallback=null,this.deathCallbackScope=null,this.maxParticles=0,this.quantity=new h(e,"quantity",1,!0),this.delay=new h(e,"delay",0,!0),this.frequency=0,this.on=!0,this.particleBringToTop=!0,this.timeScale=1,this.emitZone=null,this.deathZone=null,this.bounds=null,this.collideLeft=!0,this.collideRight=!0,this.collideTop=!0,this.collideBottom=!0,this.active=!0,this.visible=!0,this.blendMode=n.NORMAL,this.follow=null,this.followOffset=new g,this.trackVisible=!1,this.currentFrame=0,this.randomFrame=!0,this.frameQuantity=1,this.dead=[],this.alive=[],this._counter=0,this._frameCounter=0,e&&this.fromJSON(e)},fromJSON:function(t){if(!t)return this;var e=0,i="";for(e=0;e<this.configFastMap.length;e++)i=this.configFastMap[e],d(t,i)&&(this[i]=u(t,i));for(e=0;e<this.configOpMap.length;e++)i=this.configOpMap[e],d(t,i)&&this[i].loadConfig(t);if(this.acceleration=0!==this.accelerationX.propertyValue||0!==this.accelerationY.propertyValue,this.moveTo=0!==this.moveToX.propertyValue||0!==this.moveToY.propertyValue,d(t,"speed")&&(this.speedX.loadConfig(t,"speed"),this.speedY=null),(c(t,["speedX","speedY"])||this.moveTo)&&(this.radial=!1),d(t,"scale")&&(this.scaleX.loadConfig(t,"scale"),this.scaleY=null),d(t,"callbackScope")){var n=u(t,"callbackScope",null);this.emitCallbackScope=n,this.deathCallbackScope=n}return d(t,"emitZone")&&this.setEmitZone(t.emitZone),d(t,"deathZone")&&this.setDeathZone(t.deathZone),d(t,"bounds")&&this.setBounds(t.bounds),d(t,"followOffset")&&this.followOffset.setFromObject(u(t,"followOffset",0)),d(t,"frame")&&this.setFrame(t.frame),this},toJSON:function(t){void 0===t&&(t={});var e=0,i="";for(e=0;e<this.configFastMap.length;e++)t[i=this.configFastMap[e]]=this[i];for(e=0;e<this.configOpMap.length;e++)this[i=this.configOpMap[e]]&&(t[i]=this[i].toJSON());return this.speedY||(delete t.speedX,t.speed=this.speedX.toJSON()),this.scaleY||(delete t.scaleX,t.scale=this.scaleX.toJSON()),t},startFollow:function(t,e,i,n){return void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=!1),this.follow=t,this.followOffset.set(e,i),this.trackVisible=n,this},stopFollow:function(){return this.follow=null,this.followOffset.set(0,0),this.trackVisible=!1,this},getFrame:function(){if(1===this.frames.length)return this.defaultFrame;if(this.randomFrame)return l(this.frames);var t=this.frames[this.currentFrame];return this._frameCounter++,this._frameCounter===this.frameQuantity&&(this._frameCounter=0,this.currentFrame=y(this.currentFrame+1,0,this._frameLength)),t},setFrame:function(t,e,i){void 0===e&&(e=!0),void 0===i&&(i=1),this.randomFrame=e,this.frameQuantity=i,this.currentFrame=0,this._frameCounter=0;var n=typeof t;if(Array.isArray(t)||"string"===n||"number"===n)this.manager.setEmitterFrames(t,this);else if("object"===n){var r=t;(t=u(r,"frames",null))&&this.manager.setEmitterFrames(t,this);var s=u(r,"cycle",!1);this.randomFrame=!s,this.frameQuantity=u(r,"quantity",i)}return this._frameLength=this.frames.length,1===this._frameLength&&(this.frameQuantity=1,this.randomFrame=!1),this},setRadial:function(t){return void 0===t&&(t=!0),this.radial=t,this},setPosition:function(t,e){return this.x.onChange(t),this.y.onChange(e),this},setBounds:function(t,e,i,n){if("object"==typeof t){var r=t;t=r.x,e=r.y,i=d(r,"w")?r.w:r.width,n=d(r,"h")?r.h:r.height}return this.bounds?this.bounds.setTo(t,e,i,n):this.bounds=new m(t,e,i,n),this},setSpeedX:function(t){return this.speedX.onChange(t),this.radial=!1,this},setSpeedY:function(t){return this.speedY&&(this.speedY.onChange(t),this.radial=!1),this},setSpeed:function(t){return this.speedX.onChange(t),this.speedY=null,this.radial=!0,this},setScaleX:function(t){return this.scaleX.onChange(t),this},setScaleY:function(t){return this.scaleY.onChange(t),this},setScale:function(t){return this.scaleX.onChange(t),this.scaleY=null,this},setGravityX:function(t){return this.gravityX=t,this},setGravityY:function(t){return this.gravityY=t,this},setGravity:function(t,e){return this.gravityX=t,this.gravityY=e,this},setAlpha:function(t){return this.alpha.onChange(t),this},setTint:function(t){return this.tint.onChange(t),this},setEmitterAngle:function(t){return this.angle.onChange(t),this},setAngle:function(t){return this.angle.onChange(t),this},setLifespan:function(t){return this.lifespan.onChange(t),this},setQuantity:function(t){return this.quantity.onChange(t),this},setFrequency:function(t,e){return this.frequency=t,this._counter=0,e&&this.quantity.onChange(e),this},setEmitZone:function(t){if(void 0===t)this.emitZone=null;else{var e=u(t,"type","random"),i=u(t,"source",null);switch(e){case"random":this.emitZone=new f(i);break;case"edge":var n=u(t,"quantity",1),r=u(t,"stepRate",0),s=u(t,"yoyo",!1),o=u(t,"seamless",!0);this.emitZone=new a(i,n,r,s,o)}}return this},setDeathZone:function(t){if(void 0===t)this.deathZone=null;else{var e=u(t,"type","onEnter"),i=u(t,"source",null);if(i&&"function"==typeof i.contains){var n="onEnter"===e;this.deathZone=new o(i,n)}}return this},reserve:function(t){for(var e=this.dead,i=0;i<t;i++)e.push(new this.particleClass(this));return this},getAliveParticleCount:function(){return this.alive.length},getDeadParticleCount:function(){return this.dead.length},getParticleCount:function(){return this.getAliveParticleCount()+this.getDeadParticleCount()},atLimit:function(){return this.maxParticles>0&&this.getParticleCount()===this.maxParticles},onParticleEmit:function(t,e){return void 0===t?(this.emitCallback=null,this.emitCallbackScope=null):"function"==typeof t&&(this.emitCallback=t,e&&(this.emitCallbackScope=e)),this},onParticleDeath:function(t,e){return void 0===t?(this.deathCallback=null,this.deathCallbackScope=null):"function"==typeof t&&(this.deathCallback=t,e&&(this.deathCallbackScope=e)),this},killAll:function(){for(var t=this.dead,e=this.alive;e.length>0;)t.push(e.pop());return this},forEachAlive:function(t,e){for(var i=this.alive,n=i.length,r=0;r<n;++r)t.call(e,i[r],this);return this},forEachDead:function(t,e){for(var i=this.dead,n=i.length,r=0;r<n;++r)t.call(e,i[r],this);return this},start:function(){return this.on=!0,this._counter=0,this},stop:function(){return this.on=!1,this},pause:function(){return this.active=!1,this},resume:function(){return this.active=!0,this},remove:function(){return this.manager.removeEmitter(this),this},depthSort:function(){return v.inplace(this.alive,this.depthSortCallback),this},flow:function(t,e){return void 0===e&&(e=1),this.frequency=t,this.quantity.onChange(e),this.start()},explode:function(t,e,i){return this.frequency=-1,this.emitParticle(t,e,i)},emitParticleAt:function(t,e,i){return this.emitParticle(i,t,e)},emitParticle:function(t,e,i){if(!this.atLimit()){void 0===t&&(t=this.quantity.onEmit());for(var n=this.dead,r=0;r<t;r++){var s=n.pop();if(s||(s=new this.particleClass(this)),s.fire(e,i),this.particleBringToTop?this.alive.push(s):this.alive.unshift(s),this.emitCallback&&this.emitCallback.call(this.emitCallbackScope,s,this),this.atLimit())break}return s}},preUpdate:function(t,e){var i=(e*=this.timeScale)/1e3;this.trackVisible&&(this.visible=this.follow.visible);var n=this.manager.getProcessors(),r=this.alive,s=this.dead,o=0,a=[],h=r.length;for(o=0;o<h;o++){var u=r[o];u.update(e,i,n)&&a.push({index:o,particle:u})}if((h=a.length)>0){var l=this.deathCallback,c=this.deathCallbackScope;for(o=h-1;o>=0;o--){var d=a[o];r.splice(d.index,1),s.push(d.particle),l&&l.call(c,d.particle),d.particle.resetPosition()}}this.on&&(0===this.frequency?this.emitParticle():this.frequency>0&&(this._counter-=e,this._counter<=0&&(this.emitParticle(),this._counter=this.frequency-Math.abs(this._counter))))},depthSortCallback:function(t,e){return t.y-e.y}});t.exports=_},14765:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(90554),o=i(50007),a=i(29365),h=i(3631),u=i(78129),l=new n({Extends:s,Mixins:[r.Depth,r.Mask,r.Pipeline,r.Transform,r.Visible,u],initialize:function(t,e,i,n){if(s.call(this,t,"ParticleEmitterManager"),this.blendMode=-1,this.timeScale=1,this.texture=null,this.frame=null,this.frameNames=[],null===i||"object"!=typeof i&&!Array.isArray(i)||(n=i,i=null),this.setTexture(e,i),this.initPipeline(),this.emitters=new a(this),this.wells=new a(this),n){Array.isArray(n)||(n=[n]);for(var r=0;r<n.length;r++)this.createEmitter(n[r])}},setTexture:function(t,e){return this.texture=this.scene.sys.textures.get(t),this.setFrame(e)},setFrame:function(t){this.frame=this.texture.get(t);var e=this.texture.getFramesFromTextureSource(this.frame.sourceIndex),i=[];return e.forEach((function(t){i.push(t.name)})),this.frameNames=i,this.defaultFrame=this.frame,this},setEmitterFrames:function(t,e){Array.isArray(t)||(t=[t]);var i=e.frames;i.length=0;for(var n=0;n<t.length;n++){var r=t[n];-1!==this.frameNames.indexOf(r)&&i.push(this.texture.get(r))}return i.length>0?e.defaultFrame=i[0]:e.defaultFrame=this.defaultFrame,this},addEmitter:function(t){return this.emitters.add(t)},createEmitter:function(t){return this.addEmitter(new h(this,t))},removeEmitter:function(t){return this.emitters.remove(t,!0)},addGravityWell:function(t){return this.wells.add(t)},createGravityWell:function(t){return this.addGravityWell(new o(t))},emitParticle:function(t,e,i){for(var n=this.emitters.list,r=0;r<n.length;r++){var s=n[r];s.active&&s.emitParticle(t,e,i)}return this},emitParticleAt:function(t,e,i){return this.emitParticle(i,t,e)},pause:function(){return this.active=!1,this},resume:function(){return this.active=!0,this},getProcessors:function(){return this.wells.getAll("active",!0)},preUpdate:function(t,e){e*=this.timeScale;for(var i=this.emitters.list,n=0;n<i.length;n++){var r=i[n];r.active&&r.preUpdate(t,e)}},setAlpha:function(){},setScrollFactor:function(){},setBlendMode:function(){}});t.exports=l},10536:t=>{t.exports=function(t,e,i,n,r){var s=e.emitters.list,o=s.length;if(0!==o){var a=t._tempMatrix1.copyFrom(n.matrix),h=t._tempMatrix2,u=t._tempMatrix3,l=t._tempMatrix4.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY);a.multiply(l);var c=n.roundPixels,d=t.currentContext;d.save();for(var p=0;p<o;p++){var f=s[p],m=f.alive,v=m.length;if(f.visible&&0!==v){var g=n.scrollX*f.scrollFactorX,y=n.scrollY*f.scrollFactorY;r&&(a.multiplyWithOffset(r,-g,-y),g=0,y=0),d.globalCompositeOperation=t.blendModes[f.blendMode];for(var _=0;_<v;_++){var x=m[_],b=x.alpha*n.alpha;if(!(b<=0)){var w=x.frame,T=w.canvasData,M=-w.halfWidth,S=-w.halfHeight;u.applyITRS(0,0,x.rotation,x.scaleX,x.scaleY),u.e=x.x-g,u.f=x.y-y,a.multiply(u,h),d.globalAlpha=b,d.save(),h.copyToContext(d),c&&(M=Math.round(M),S=Math.round(S)),d.imageSmoothingEnabled=!(!t.antialias||w.source.scaleMode),d.drawImage(w.source.image,T.x,T.y,T.width,T.height,M,S,T.width,T.height),d.restore()}}}}d.restore()}}},41887:(t,e,i)=>{var n=i(17517),r=i(57687),s=i(81769),o=i(14765);n.register("particles",(function(t,e){void 0===t&&(t={});var i=r(t,"key",null),n=r(t,"frame",null),a=s(t,"emitters",null),h=new o(this.scene,i,n,a);return void 0!==e&&(t.add=e),s(t,"add",!1)&&this.displayList.add(h),this.updateList.add(h),h}))},262:(t,e,i)=>{var n=i(81342),r=i(14765);n.register("particles",(function(t,e,i){var n=new r(this.scene,t,e,i);return this.displayList.add(n),this.updateList.add(n),n}))},78129:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(94782),r=i(10536),t.exports={renderWebGL:n,renderCanvas:r}},94782:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){var o=e.emitters.list,a=o.length;if(0!==a){var h=this.pipeline,u=h._tempMatrix1.copyFrom(r.matrix),l=h._tempMatrix2,c=h._tempMatrix3,d=h._tempMatrix4.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY);u.multiply(d),t.setPipeline(h);var p=r.roundPixels,f=e.defaultFrame.glTexture,m=n.getTintAppendFloatAlphaAndSwap;h.setTexture2D(f,0);for(var v=0;v<a;v++){var g=o[v],y=g.alive,_=y.length;if(g.visible&&0!==_){var x=r.scrollX*g.scrollFactorX,b=r.scrollY*g.scrollFactorY;s&&(u.multiplyWithOffset(s,-x,-b),x=0,b=0),t.setBlendMode(g.blendMode)&&h.setTexture2D(f,0),g.mask&&(g.mask.preRenderWebGL(t,g,r),h.setTexture2D(f,0));for(var w=0;w<_;w++){var T=y[w],M=T.alpha*r.alpha;if(!(M<=0)){var S=T.frame,E=-S.halfWidth,L=-S.halfHeight,A=E+S.width,D=L+S.height;c.applyITRS(0,0,T.rotation,T.scaleX,T.scaleY),c.e=T.x-x,c.f=T.y-b,u.multiply(c,l);var P=l.getX(E,L),C=l.getY(E,L),O=l.getX(E,D),k=l.getY(E,D),R=l.getX(A,D),I=l.getY(A,D),Y=l.getX(A,L),F=l.getY(A,L);p&&(P=Math.round(P),C=Math.round(C),O=Math.round(O),k=Math.round(k),R=Math.round(R),I=Math.round(I),Y=Math.round(Y),F=Math.round(F));var N=m(T.tint,M);h.batchQuad(P,C,O,k,R,I,Y,F,S.u0,S.v0,S.u1,S.v1,N,N,N,N,0,f,0)}}g.mask&&(g.mask.postRenderWebGL(t,r),h.setTexture2D(f,0))}}}}},88842:(t,e,i)=>{t.exports={GravityWell:i(50007),Particle:i(95423),ParticleEmitter:i(3631),ParticleEmitterManager:i(14765),Zones:i(82767)}},72347:(t,e,i)=>{var n=new(i(47379))({initialize:function(t,e){this.source=t,this.killOnEnter=e},willKill:function(t){var e=this.source.contains(t.x,t.y);return e&&this.killOnEnter||!e&&!this.killOnEnter}});t.exports=n},71521:(t,e,i)=>{var n=new(i(47379))({initialize:function(t,e,i,n,r){void 0===n&&(n=!1),void 0===r&&(r=!0),this.source=t,this.points=[],this.quantity=e,this.stepRate=i,this.yoyo=n,this.counter=-1,this.seamless=r,this._length=0,this._direction=0,this.updateSource()},updateSource:function(){if(this.points=this.source.getPoints(this.quantity,this.stepRate),this.seamless){var t=this.points[0],e=this.points[this.points.length-1];t.x===e.x&&t.y===e.y&&this.points.pop()}var i=this._length;return this._length=this.points.length,this._length<i&&this.counter>this._length&&(this.counter=this._length-1),this},changeSource:function(t){return this.source=t,this.updateSource()},getPoint:function(t){0===this._direction?(this.counter++,this.counter>=this._length&&(this.yoyo?(this._direction=1,this.counter=this._length-1):this.counter=0)):(this.counter--,-1===this.counter&&(this.yoyo?(this._direction=0,this.counter=0):this.counter=this._length-1));var e=this.points[this.counter];e&&(t.x=e.x,t.y=e.y)}});t.exports=n},46744:(t,e,i)=>{var n=i(47379),r=i(57148),s=new n({initialize:function(t){this.source=t,this._tempVec=new r},getPoint:function(t){var e=this._tempVec;this.source.getRandomPoint(e),t.x=e.x,t.y=e.y}});t.exports=s},82767:(t,e,i)=>{t.exports={DeathZone:i(72347),EdgeZone:i(71521),RandomZone:i(46744)}},95473:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(95681),o=new n({Extends:s,Mixins:[r.PathFollower],initialize:function(t,e,i,n,r,o){s.call(this,t,i,n,r,o),this.path=e},preUpdate:function(t,e){this.anims.update(t,e),this.pathUpdate(t)}});t.exports=o},19541:(t,e,i)=>{var n=i(81342),r=i(95473);n.register("follower",(function(t,e,i,n,s){var o=new r(this.scene,t,e,i,n,s);return this.displayList.add(o),this.updateList.add(o),o}))},34500:(t,e,i)=>{var n=i(47379),r=i(32507),s=new n({Extends:r,initialize:function(t,e,i,n,s){r.call(this,t,e,i,[0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,1,1,1,0,0,1,1,1,0],[16777215,16777215,16777215,16777215,16777215,16777215],[1,1,1,1,1,1],n,s),this.resetPosition()},setFrame:function(t){return this.frame=this.texture.get(t),this.frame.cutWidth&&this.frame.cutHeight?this.renderFlags|=8:this.renderFlags&=-9,t=this.frame,this.uv[0]=t.u0,this.uv[1]=t.v0,this.uv[2]=t.u0,this.uv[3]=t.v1,this.uv[4]=t.u1,this.uv[5]=t.v1,this.uv[6]=t.u0,this.uv[7]=t.v0,this.uv[8]=t.u1,this.uv[9]=t.v1,this.uv[10]=t.u1,this.uv[11]=t.v0,this},topLeftX:{get:function(){return this.x+this.vertices[0]},set:function(t){this.vertices[0]=t-this.x,this.vertices[6]=t-this.x}},topLeftY:{get:function(){return this.y+this.vertices[1]},set:function(t){this.vertices[1]=t-this.y,this.vertices[7]=t-this.y}},topRightX:{get:function(){return this.x+this.vertices[10]},set:function(t){this.vertices[10]=t-this.x}},topRightY:{get:function(){return this.y+this.vertices[11]},set:function(t){this.vertices[11]=t-this.y}},bottomLeftX:{get:function(){return this.x+this.vertices[2]},set:function(t){this.vertices[2]=t-this.x}},bottomLeftY:{get:function(){return this.y+this.vertices[3]},set:function(t){this.vertices[3]=t-this.y}},bottomRightX:{get:function(){return this.x+this.vertices[4]},set:function(t){this.vertices[4]=t-this.x,this.vertices[8]=t-this.x}},bottomRightY:{get:function(){return this.y+this.vertices[5]},set:function(t){this.vertices[5]=t-this.y,this.vertices[9]=t-this.y}},topLeftAlpha:{get:function(){return this.alphas[0]},set:function(t){this.alphas[0]=t,this.alphas[3]=t}},topRightAlpha:{get:function(){return this.alphas[5]},set:function(t){this.alphas[5]=t}},bottomLeftAlpha:{get:function(){return this.alphas[1]},set:function(t){this.alphas[1]=t}},bottomRightAlpha:{get:function(){return this.alphas[2]},set:function(t){this.alphas[2]=t,this.alphas[4]=t}},topLeftColor:{get:function(){return this.colors[0]},set:function(t){this.colors[0]=t,this.colors[3]=t}},topRightColor:{get:function(){return this.colors[5]},set:function(t){this.colors[5]=t}},bottomLeftColor:{get:function(){return this.colors[1]},set:function(t){this.colors[1]=t}},bottomRightColor:{get:function(){return this.colors[2]},set:function(t){this.colors[2]=t,this.colors[4]=t}},setTopLeft:function(t,e){return this.topLeftX=t,this.topLeftY=e,this},setTopRight:function(t,e){return this.topRightX=t,this.topRightY=e,this},setBottomLeft:function(t,e){return this.bottomLeftX=t,this.bottomLeftY=e,this},setBottomRight:function(t,e){return this.bottomRightX=t,this.bottomRightY=e,this},resetPosition:function(){var t=this.x,e=this.y,i=Math.floor(this.width/2),n=Math.floor(this.height/2);return this.setTopLeft(t-i,e-n),this.setTopRight(t+i,e-n),this.setBottomLeft(t-i,e+n),this.setBottomRight(t+i,e+n),this},resetAlpha:function(){var t=this.alphas;return t[0]=1,t[1]=1,t[2]=1,t[3]=1,t[4]=1,t[5]=1,this},resetColors:function(){var t=this.colors;return t[0]=16777215,t[1]=16777215,t[2]=16777215,t[3]=16777215,t[4]=16777215,t[5]=16777215,this},reset:function(){return this.resetPosition(),this.resetAlpha(),this.resetColors()}});t.exports=s},70121:(t,e,i)=>{var n=i(74865),r=i(17517),s=i(57687),o=i(34500);r.register("quad",(function(t,e){void 0===t&&(t={});var i=s(t,"x",0),r=s(t,"y",0),a=s(t,"key",null),h=s(t,"frame",null),u=new o(this.scene,i,r,a,h);return void 0!==e&&(t.add=e),n(this.scene,u,t),u}))},57367:(t,e,i)=>{var n=i(34500);i(81342).register("quad",(function(t,e,i,r){return this.displayList.add(new n(this.scene,t,e,i,r))}))},68343:(t,e,i)=>{var n=i(35869),r=i(22190),s=i(89429),o=i(47379),a=i(23096),h=i(50460),u=i(48165),l=i(90554),c=i(28544),d=i(19298),p=i(31027),f=new o({Extends:l,Mixins:[a.Alpha,a.BlendMode,a.ComputedSize,a.Crop,a.Depth,a.Flip,a.GetBounds,a.Mask,a.Origin,a.Pipeline,a.ScrollFactor,a.Tint,a.Transform,a.Visible,c],initialize:function(t,e,i,n,o,a,u){void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=32),void 0===o&&(o=32),l.call(this,t,"RenderTexture"),this.renderer=t.sys.game.renderer,this.textureManager=t.sys.textures,this.globalTint=16777215,this.globalAlpha=1,this.canvas=null,this.framebuffer=null,this.dirty=!1,this._crop=this.resetCropObject(),this.texture=null,this.frame=null,this._saved=!1,void 0===a?(this.canvas=s.create2D(this,n,o),this.texture=t.sys.textures.addCanvas(p(),this.canvas),this.frame=this.texture.get()):(this.texture=t.sys.textures.get(a),this.frame=this.texture.get(u),this.canvas=this.frame.source.image,this._saved=!0,this.dirty=!0,this.width=this.frame.cutWidth,this.height=this.frame.cutHeight),this.context=this.canvas.getContext("2d"),this._eraseMode=!1,this.camera=new r(0,0,n,o),this.gl=null,this.glTexture=null;var c=this.renderer;if(c.type===h.WEBGL){var d=c.gl;this.gl=d,this.glTexture=this.frame.source.glTexture,this.drawGameObject=this.batchGameObjectWebGL,this.framebuffer=c.createFramebuffer(n,o,this.glTexture,!1)}else c.type===h.CANVAS&&(this.drawGameObject=this.batchGameObjectCanvas);this.camera.setScene(t),this.setPosition(e,i),void 0===a&&this.setSize(n,o),this.setOrigin(0,0),this.initPipeline()},setSize:function(t,e){return this.resize(t,e)},resize:function(t,e){if(void 0===e&&(e=t),t!==this.width||e!==this.height){if("__BASE"===this.frame.name){if(this.canvas.width=t,this.canvas.height=e,this.texture.width=t,this.texture.height=e,this.gl){var i=this.gl;this.renderer.deleteTexture(this.frame.source.glTexture),this.renderer.deleteFramebuffer(this.framebuffer);var n=this.renderer.createTexture2D(0,i.NEAREST,i.NEAREST,i.CLAMP_TO_EDGE,i.CLAMP_TO_EDGE,i.RGBA,null,t,e,!1);this.framebuffer=this.renderer.createFramebuffer(t,e,n,!1),this.frame.source.isRenderTexture=!0,this.frame.glTexture=n,this.glTexture=n}this.frame.source.width=t,this.frame.source.height=e,this.camera.setSize(t,e),this.frame.setSize(t,e),this.width=t,this.height=e}}else{var r=this.texture.getSourceImage();this.frame.cutX+t>r.width&&(t=r.width-this.frame.cutX),this.frame.cutY+e>r.height&&(e=r.height-this.frame.cutY),this.frame.setSize(t,e,this.frame.cutX,this.frame.cutY)}this.updateDisplayOrigin();var s=this.input;return s&&!s.customHitArea&&(s.hitArea.width=t,s.hitArea.height=e),this},setGlobalTint:function(t){return this.globalTint=t,this},setGlobalAlpha:function(t){return this.globalAlpha=t,this},saveTexture:function(t){return this.textureManager.renameTexture(this.texture.key,t),this._saved=!0,this.texture},fill:function(t,e,i,n,r,s){void 0===e&&(e=1),void 0===i&&(i=0),void 0===n&&(n=0),void 0===r&&(r=this.frame.cutWidth),void 0===s&&(s=this.frame.cutHeight);var o=255&(t>>16|0),a=255&(t>>8|0),h=255&(0|t),u=this.gl,l=this.frame;if(this.camera.preRender(1,1),u){var c=this.camera._cx,p=this.camera._cy,f=this.camera._cw,m=this.camera._ch;this.renderer.setFramebuffer(this.framebuffer,!1),this.renderer.pushScissor(c,p,f,m,m);var v=this.pipeline;v.projOrtho(0,this.texture.width,0,this.texture.height,-1e3,1e3),v.drawFillRect(i,n,r,s,d.getTintFromFloats(o/255,a/255,h/255,1),e),this.renderer.setFramebuffer(null,!1),this.renderer.popScissor(),v.projOrtho(0,v.width,v.height,0,-1e3,1e3)}else this.renderer.setContext(this.context),this.context.fillStyle="rgba("+o+","+a+","+h+","+e+")",this.context.fillRect(i+l.cutX,n+l.cutY,r,s),this.renderer.setContext();return this.dirty=!0,this},clear:function(){if(this.dirty){var t=this.gl;if(t){var e=this.renderer;e.setFramebuffer(this.framebuffer,!0),this.frame.cutWidth===this.canvas.width&&this.frame.cutHeight===this.canvas.height||t.scissor(this.frame.cutX,this.frame.cutY,this.frame.cutWidth,this.frame.cutHeight),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),e.setFramebuffer(null,!0)}else{var i=this.context;i.save(),i.setTransform(1,0,0,1,0,0),i.clearRect(this.frame.cutX,this.frame.cutY,this.frame.cutWidth,this.frame.cutHeight),i.restore()}this.dirty=!1}return this},erase:function(t,e,i){this._eraseMode=!0;var r=this.renderer.currentBlendMode;return this.renderer.setBlendMode(n.ERASE),this.draw(t,e,i,1,16777215),this.renderer.setBlendMode(r),this._eraseMode=!1,this},draw:function(t,e,i,n,r){void 0===n&&(n=this.globalAlpha),r=void 0===r?(this.globalTint>>16)+(65280&this.globalTint)+((255&this.globalTint)<<16):(r>>16)+(65280&r)+((255&r)<<16),Array.isArray(t)||(t=[t]);var s=this.gl;if(this.camera.preRender(1,1),s){var o=this.camera._cx,a=this.camera._cy,h=this.camera._cw,u=this.camera._ch;this.renderer.setFramebuffer(this.framebuffer,!1),this.renderer.pushScissor(o,a,h,u,u);var l=this.pipeline;l.projOrtho(0,this.texture.width,0,this.texture.height,-1e3,1e3),this.batchList(t,e,i,n,r),l.flush(),this.renderer.setFramebuffer(null,!1),this.renderer.popScissor(),l.projOrtho(0,l.width,l.height,0,-1e3,1e3)}else this.renderer.setContext(this.context),this.batchList(t,e,i,n,r),this.renderer.setContext();return this.dirty=!0,this},drawFrame:function(t,e,i,n,r,s){void 0===i&&(i=0),void 0===n&&(n=0),void 0===r&&(r=this.globalAlpha),s=void 0===s?(this.globalTint>>16)+(65280&this.globalTint)+((255&this.globalTint)<<16):(s>>16)+(65280&s)+((255&s)<<16);var o=this.gl,a=this.textureManager.getFrame(t,e);if(a){if(this.camera.preRender(1,1),o){var h=this.camera._cx,u=this.camera._cy,l=this.camera._cw,c=this.camera._ch;this.renderer.setFramebuffer(this.framebuffer,!1),this.renderer.pushScissor(h,u,l,c,c);var d=this.pipeline;d.projOrtho(0,this.texture.width,0,this.texture.height,-1e3,1e3),d.batchTextureFrame(a,i+this.frame.cutX,n+this.frame.cutY,s,r,this.camera.matrix,null),d.flush(),this.renderer.setFramebuffer(null,!1),this.renderer.popScissor(),d.projOrtho(0,d.width,d.height,0,-1e3,1e3)}else this.batchTextureFrame(a,i+this.frame.cutX,n+this.frame.cutY,r,s);this.dirty=!0}return this},batchList:function(t,e,i,n,r){for(var s=0;s<t.length;s++){var o=t[s];o&&o!==this&&(o.renderWebGL||o.renderCanvas?this.drawGameObject(o,e,i):o.isParent||o.list?this.batchGroup(o.getChildren(),e,i):"string"==typeof o?this.batchTextureFrameKey(o,null,e,i,n,r):o instanceof u?this.batchTextureFrame(o,e,i,n,r):Array.isArray(o)&&this.batchList(o,e,i,n,r))}},batchGroup:function(t,e,i){void 0===e&&(e=0),void 0===i&&(i=0),e+=this.frame.cutX,i+=this.frame.cutY;for(var n=0;n<t.length;n++){var r=t[n];if(r.willRender()){var s=r.x+e,o=r.y+i;this.drawGameObject(r,s,o)}}},batchGameObjectWebGL:function(t,e,i){void 0===e&&(e=t.x),void 0===i&&(i=t.y);var n=t.x,r=t.y;this._eraseMode||this.renderer.setBlendMode(t.blendMode),t.setPosition(e+this.frame.cutX,i+this.frame.cutY),t.renderWebGL(this.renderer,t,0,this.camera,null),t.setPosition(n,r)},batchGameObjectCanvas:function(t,e,i){void 0===e&&(e=t.x),void 0===i&&(i=t.y);var r=t.x,s=t.y;if(this._eraseMode){var o=t.blendMode;t.blendMode=n.ERASE}t.setPosition(e+this.frame.cutX,i+this.frame.cutY),t.renderCanvas(this.renderer,t,0,this.camera,null),t.setPosition(r,s),this._eraseMode&&(t.blendMode=o)},batchTextureFrameKey:function(t,e,i,n,r,s){var o=this.textureManager.getFrame(t,e);o&&this.batchTextureFrame(o,i,n,r,s)},batchTextureFrame:function(t,e,i,n,r){if(void 0===e&&(e=0),void 0===i&&(i=0),e+=this.frame.cutX,i+=this.frame.cutY,this.gl)this.pipeline.batchTextureFrame(t,e,i,r,n,this.camera.matrix,null);else{var s=this.context,o=t.canvasData,a=t.source.image,h=this.camera.matrix;s.globalAlpha=this.globalAlpha,s.setTransform(h[0],h[1],h[2],h[3],h[4],h[5]),s.drawImage(a,o.x,o.y,o.width,o.height,e,i,o.width,o.height)}},snapshotArea:function(t,e,i,n,r,s,o){return this.gl?this.renderer.snapshotFramebuffer(this.framebuffer,this.width,this.height,r,!1,t,e,i,n,s,o):this.renderer.snapshotCanvas(this.canvas,r,!1,t,e,i,n,s,o),this},snapshot:function(t,e,i){return this.gl?this.renderer.snapshotFramebuffer(this.framebuffer,this.width,this.height,t,!1,0,0,this.width,this.height,e,i):this.renderer.snapshotCanvas(this.canvas,t,!1,0,0,this.width,this.height,e,i),this},snapshotPixel:function(t,e,i){return this.gl?this.renderer.snapshotFramebuffer(this.framebuffer,this.width,this.height,i,!0,t,e):this.renderer.snapshotCanvas(this.canvas,i,!0,t,e),this},preDestroy:function(){this._saved||(s.remove(this.canvas),this.gl&&this.renderer.deleteFramebuffer(this.framebuffer),this.texture.destroy(),this.camera.destroy(),this.canvas=null,this.context=null,this.framebuffer=null,this.texture=null,this.glTexture=null)}});t.exports=f},26999:t=>{t.exports=function(t,e,i,n,r){t.batchSprite(e,e.frame,n,r)}},49830:(t,e,i)=>{var n=i(74865),r=i(17517),s=i(57687),o=i(68343);r.register("renderTexture",(function(t,e){void 0===t&&(t={});var i=s(t,"x",0),r=s(t,"y",0),a=s(t,"width",32),h=s(t,"height",32),u=s(t,"key",void 0),l=s(t,"frame",void 0),c=new o(this.scene,i,r,a,h,u,l);return void 0!==e&&(t.add=e),n(this.scene,c,t),c}))},89107:(t,e,i)=>{var n=i(81342),r=i(68343);n.register("renderTexture",(function(t,e,i,n,s,o){return this.displayList.add(new r(this.scene,t,e,i,n,s,o))}))},28544:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(1500),r=i(26999),t.exports={renderWebGL:n,renderCanvas:r}},1500:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){var o=e.frame,a=o.width,h=o.height,u=n.getTintAppendFloatAlpha;this.pipeline.batchTexture(e,o.glTexture,a,h,e.x,e.y,a,h,e.scaleX,e.scaleY,e.rotation,e.flipX,!e.flipY,e.scrollFactorX,e.scrollFactorY,e.displayOriginX,e.displayOriginY,0,0,a,h,u(e._tintTL,r.alpha*e._alphaTL),u(e._tintTR,r.alpha*e._alphaTR),u(e._tintBL,r.alpha*e._alphaBL),u(e._tintBR,r.alpha*e._alphaBR),e._isTinted&&e.tintFill,0,0,r,s),t.setBlankTexture(!0)}},18741:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(90554),o=i(93953),a=i(57148),h=new n({Extends:s,Mixins:[r.AlphaSingle,r.BlendMode,r.Depth,r.Flip,r.Mask,r.Pipeline,r.Size,r.Texture,r.Transform,r.Visible,r.ScrollFactor,o],initialize:function(t,e,i,n,o,h,u,l,c){void 0===n&&(n="__DEFAULT"),void 0===h&&(h=2),void 0===u&&(u=!0),s.call(this,t,"Rope"),this.anims=new r.Animation(this),this.points=h,this.vertices,this.uv,this.colors,this.alphas,this.tintFill="__DEFAULT"===n?2:0,this.dirty=!1,this.horizontal=u,this._flipX=!1,this._flipY=!1,this._perp=new a,this.debugCallback=null,this.debugGraphic=null,this.setTexture(n,o),this.setPosition(e,i),this.setSizeToFrame(),this.initPipeline("TextureTintStripPipeline"),Array.isArray(h)&&this.resizeArrays(h.length),this.setPoints(h,l,c),this.updateVertices()},preUpdate:function(t,e){var i=this.anims.currentFrame;this.anims.update(t,e),this.anims.currentFrame!==i&&(this.updateUVs(),this.updateVertices())},play:function(t,e,i){return this.anims.play(t,e,i),this},setDirty:function(){return this.dirty=!0,this},setHorizontal:function(t,e,i){return void 0===t&&(t=this.points.length),this.horizontal?this:(this.horizontal=!0,this.setPoints(t,e,i))},setVertical:function(t,e,i){return void 0===t&&(t=this.points.length),this.horizontal?(this.horizontal=!1,this.setPoints(t,e,i)):this},setTintFill:function(t){return void 0===t&&(t=0),this.tintFill=t,this},setAlphas:function(t,e){var i=this.points.length;if(i<1)return this;var n,r=this.alphas;void 0===t?t=[1]:Array.isArray(t)||void 0!==e||(t=[t]);var s=0;if(void 0!==e)for(n=0;n<i;n++)r[s=2*n]=t,r[s+1]=e;else if(t.length===i)for(n=0;n<i;n++)r[s=2*n]=t[n],r[s+1]=t[n];else{var o=t[0];for(n=0;n<i;n++)s=2*n,t.length>s&&(o=t[s]),r[s]=o,t.length>s+1&&(o=t[s+1]),r[s+1]=o}return this},setColors:function(t){var e=this.points.length;if(e<1)return this;var i,n=this.colors;void 0===t?t=[16777215]:Array.isArray(t)||(t=[t]);var r=0;if(t.length===e)for(i=0;i<e;i++)n[r=2*i]=t[i],n[r+1]=t[i];else{var s=t[0];for(i=0;i<e;i++)r=2*i,t.length>r&&(s=t[r]),n[r]=s,t.length>r+1&&(s=t[r+1]),n[r+1]=s}return this},setPoints:function(t,e,i){if(void 0===t&&(t=2),"number"==typeof t){var n,r,s,o=t;if(o<2&&(o=2),t=[],this.horizontal)for(s=-this.frame.halfWidth,r=this.frame.width/(o-1),n=0;n<o;n++)t.push({x:s+n*r,y:0});else for(s=-this.frame.halfHeight,r=this.frame.height/(o-1),n=0;n<o;n++)t.push({x:0,y:s+n*r})}var a=t.length,h=this.points.length;return a<1?(console.warn("Rope: Not enough points given"),this):(1===a&&(t.unshift({x:0,y:0}),a++),h!==a&&this.resizeArrays(a),this.points=t,this.updateUVs(),null!=e&&this.setColors(e),null!=i&&this.setAlphas(i),this)},updateUVs:function(){for(var t=this.uv,e=this.points.length,i=this.frame.u0,n=this.frame.v0,r=this.frame.u1,s=this.frame.v1,o=(r-i)/(e-1),a=(s-n)/(e-1),h=0;h<e;h++){var u,l,c,d,p=4*h;this.horizontal?(this._flipX?(u=r-h*o,c=r-h*o):(u=i+h*o,c=i+h*o),this._flipY?(l=s,d=n):(l=n,d=s)):(this._flipX?(u=i,c=r):(u=r,c=i),this._flipY?(l=s-h*a,d=s-h*a):(l=n+h*a,d=n+h*a)),t[p+0]=u,t[p+1]=l,t[p+2]=c,t[p+3]=d}return this},resizeArrays:function(t){var e=this.colors,i=this.alphas;this.vertices=new Float32Array(4*t),this.uv=new Float32Array(4*t),e=new Uint32Array(2*t),i=new Float32Array(2*t);for(var n=0;n<2*t;n++)e[n]=16777215,i[n]=1;return this.colors=e,this.alphas=i,this.dirty=!0,this},updateVertices:function(){var t=this._perp,e=this.points,i=this.vertices,n=e.length;if(this.dirty=!1,!(n<1)){for(var r,s=e[0],o=this.horizontal?this.frame.halfHeight:this.frame.halfWidth,a=0;a<n;a++){var h=e[a],u=4*a;r=a<n-1?e[a+1]:h,t.x=r.y-s.y,t.y=-(r.x-s.x);var l=t.length();t.x/=l,t.y/=l,t.x*=o,t.y*=o,i[u]=h.x+t.x,i[u+1]=h.y+t.y,i[u+2]=h.x-t.x,i[u+3]=h.y-t.y,s=h}return this}},setDebug:function(t,e){return this.debugGraphic=t,this.debugCallback=t||e?e||this.renderDebugVerts:null,this},renderDebugVerts:function(t,e,i){var n=t.debugGraphic,r=i[0],s=i[1],o=i[2],a=i[3];n.lineBetween(r,s,o,a);for(var h=4;h<e;h+=4){var u=i[h+0],l=i[h+1],c=i[h+2],d=i[h+3];n.lineBetween(r,s,u,l),n.lineBetween(o,a,c,d),n.lineBetween(o,a,u,l),n.lineBetween(u,l,c,d),r=u,s=l,o=c,a=d}},preDestroy:function(){this.anims.destroy(),this.anims=void 0,this.points=null,this.vertices=null,this.uv=null,this.colors=null,this.alphas=null,this.debugCallback=null,this.debugGraphic=null},flipX:{get:function(){return this._flipX},set:function(t){return this._flipX=t,this.updateUVs()}},flipY:{get:function(){return this._flipY},set:function(t){return this._flipY=t,this.updateUVs()}}});t.exports=h},3904:t=>{t.exports=function(){}},56546:(t,e,i)=>{var n=i(74865),r=i(17517),s=i(57687),o=i(86652),a=i(18741);r.register("rope",(function(t,e){void 0===t&&(t={});var i=s(t,"key",null),r=s(t,"frame",null),h=s(t,"horizontal",!0),u=o(t,"points",void 0),l=o(t,"colors",void 0),c=o(t,"alphas",void 0),d=new a(this.scene,0,0,i,r,u,h,l,c);return void 0!==e&&(t.add=e),n(this.scene,d,t),d}))},17100:(t,e,i)=>{var n=i(18741);i(81342).register("rope",(function(t,e,i,r,s,o,a,h){var u=new n(this.scene,t,e,i,r,s,o,a,h);return this.displayList.add(u),this.updateList.add(u)}))},93953:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(16682),r=i(3904),t.exports={renderWebGL:n,renderCanvas:r}},16682:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){var o=e.pipeline;t.setPipeline(o,e);var a=o._tempMatrix1,h=o._tempMatrix2,u=o._tempMatrix3;h.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),a.copyFrom(r.matrix),s?(a.multiplyWithOffset(s,-r.scrollX*e.scrollFactorX,-r.scrollY*e.scrollFactorY),h.e=e.x,h.f=e.y,a.multiply(h,u)):(h.e-=r.scrollX*e.scrollFactorX,h.f-=r.scrollY*e.scrollFactorY,a.multiply(h,u));var l=e.frame.glTexture,c=e.vertices,d=e.uv,p=e.colors,f=e.alphas,m=e.alpha,v=n.getTintAppendFloatAlphaAndSwap,g=r.roundPixels,y=c.length,_=Math.floor(.5*y);o.flush(),o.setTexture2D(l,0);var x=o.vertexViewF32,b=o.vertexViewU32,w=o.vertexCount*o.vertexComponentCount-1,T=0,M=e.tintFill;e.dirty&&e.updateVertices();for(var S=e.debugCallback,E=[],L=0;L<y;L+=2){var A=c[L+0],D=c[L+1],P=A*u.a+D*u.c+u.e,C=A*u.b+D*u.d+u.f;g&&(P=Math.round(P),C=Math.round(C)),x[++w]=P,x[++w]=C,x[++w]=d[L+0],x[++w]=d[L+1],x[++w]=M,b[++w]=v(p[T],r.alpha*(f[T]*m)),T++,S&&(E[L+0]=P,E[L+1]=C)}S&&S.call(e,e,y,E),o.vertexCount+=_}},29274:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(90554),o=i(81769),a=i(80933),h=i(68968),u=i(53887),l=i(65492),c=new n({Extends:s,Mixins:[r.ComputedSize,r.Depth,r.GetBounds,r.Mask,r.Origin,r.ScrollFactor,r.Transform,r.Visible,u],initialize:function(t,e,i,n,r,o,a,h){void 0===i&&(i=0),void 0===n&&(n=0),void 0===r&&(r=128),void 0===o&&(o=128),s.call(this,t,"Shader"),this.blendMode=-1,this.shader;var u=t.sys.renderer;this.renderer=u,this.gl=u.gl,this.vertexData=new ArrayBuffer(2*Float32Array.BYTES_PER_ELEMENT*6),this.vertexBuffer=u.createVertexBuffer(this.vertexData.byteLength,this.gl.STREAM_DRAW),this.program=null,this.bytes=new Uint8Array(this.vertexData),this.vertexViewF32=new Float32Array(this.vertexData),this._tempMatrix1=new l,this._tempMatrix2=new l,this._tempMatrix3=new l,this.viewMatrix=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this.projectionMatrix=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this.uniforms={},this.pointer=null,this._rendererWidth=u.width,this._rendererHeight=u.height,this._textureCount=0,this.framebuffer=null,this.glTexture=null,this.renderToTexture=!1,this.texture=null,this.setPosition(i,n),this.setSize(r,o),this.setOrigin(.5,.5),this.setShader(e,a,h)},willRender:function(t){return!!this.renderToTexture||!(s.RENDER_MASK!==this.renderFlags||0!==this.cameraFilter&&this.cameraFilter&t.id)},setRenderToTexture:function(t,e){if(void 0===e&&(e=!1),!this.renderToTexture){var i=this.width,n=this.height,r=this.renderer;this.glTexture=r.createTextureFromSource(null,i,n,0),this.glTexture.flipY=e,this.framebuffer=r.createFramebuffer(i,n,this.glTexture,!1),this._rendererWidth=i,this._rendererHeight=n,this.renderToTexture=!0,this.projOrtho(0,this.width,this.height,0),t&&(this.texture=this.scene.sys.textures.addGLTexture(t,this.glTexture,i,n))}if(this.shader){var s=r.currentPipeline;r.clearPipeline(),this.load(),this.flush(),r.rebindPipeline(s)}return this},setShader:function(t,e,i){if(void 0===e&&(e=[]),"string"==typeof t){var n=this.scene.sys.cache.shader;if(!n.has(t))return console.warn("Shader missing: "+t),this;this.shader=n.get(t)}else this.shader=t;var r=this.gl,s=this.renderer;this.program&&r.deleteProgram(this.program);var o=s.createProgram(this.shader.vertexSrc,this.shader.fragmentSrc);s.setMatrix4(o,"uViewMatrix",!1,this.viewMatrix),s.setMatrix4(o,"uProjectionMatrix",!1,this.projectionMatrix),s.setFloat2(o,"uResolution",this.width,this.height),this.program=o;var h=new Date,u={resolution:{type:"2f",value:{x:this.width,y:this.height}},time:{type:"1f",value:0},mouse:{type:"2f",value:{x:this.width/2,y:this.height/2}},date:{type:"4fv",value:[h.getFullYear(),h.getMonth(),h.getDate(),60*h.getHours()*60+60*h.getMinutes()+h.getSeconds()]},sampleRate:{type:"1f",value:44100},iChannel0:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel1:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel2:{type:"sampler2D",value:null,textureData:{repeat:!0}},iChannel3:{type:"sampler2D",value:null,textureData:{repeat:!0}}};this.shader.uniforms?this.uniforms=a(!0,{},this.shader.uniforms,u):this.uniforms=u;for(var l=0;l<4;l++)e[l]&&this.setSampler2D("iChannel"+l,e[l],l,i);return this.initUniforms(),this.projOrtho(0,this._rendererWidth,this._rendererHeight,0),this},setPointer:function(t){return this.pointer=t,this},projOrtho:function(t,e,i,n){var r=1/(t-e),s=1/(i-n),o=this.projectionMatrix;o[0]=-2*r,o[5]=-2*s,o[10]=-.001,o[12]=(t+e)*r,o[13]=(n+i)*s,o[14]=-0;var a=this.program;this.renderer.setMatrix4(a,"uProjectionMatrix",!1,this.projectionMatrix),this._rendererWidth=e,this._rendererHeight=i},initUniforms:function(){var t=this.gl,e=this.renderer.glFuncMap,i=this.program;for(var n in this._textureCount=0,this.uniforms){var r=this.uniforms[n],s=r.type,o=e[s];r.uniformLocation=t.getUniformLocation(i,n),"sampler2D"!==s&&(r.glMatrix=o.matrix,r.glValueLength=o.length,r.glFunc=o.func)}},setSampler2DBuffer:function(t,e,i,n,r,s){void 0===r&&(r=0),void 0===s&&(s={});var o=this.uniforms[t];return o.value=e,s.width=i,s.height=n,o.textureData=s,this._textureCount=r,this.initSampler2D(o),this},setSampler2D:function(t,e,i,n){void 0===i&&(i=0);var r=this.scene.sys.textures;if(r.exists(e)){var s=r.getFrame(e),o=this.uniforms[t],a=s.source;o.textureKey=e,o.source=a.image,o.value=s.glTexture,a.isGLTexture&&(n||(n={}),n.width=a.width,n.height=a.height),n&&(o.textureData=n),this._textureCount=i,this.initSampler2D(o)}return this},setUniform:function(t,e){return h(this.uniforms,t,e),this},getUniform:function(t){return o(this.uniforms,t,null)},setChannel0:function(t,e){return this.setSampler2D("iChannel0",t,0,e)},setChannel1:function(t,e){return this.setSampler2D("iChannel1",t,1,e)},setChannel2:function(t,e){return this.setSampler2D("iChannel2",t,2,e)},setChannel3:function(t,e){return this.setSampler2D("iChannel3",t,3,e)},initSampler2D:function(t){if(t.value){var e=this.gl;e.activeTexture(e.TEXTURE0+this._textureCount),e.bindTexture(e.TEXTURE_2D,t.value);var i=t.textureData;if(i){var n=e[o(i,"magFilter","linear").toUpperCase()],r=e[o(i,"minFilter","linear").toUpperCase()],s=e[o(i,"wrapS","repeat").toUpperCase()],a=e[o(i,"wrapT","repeat").toUpperCase()],h=e[o(i,"format","rgba").toUpperCase()];if(i.repeat&&(s=e.REPEAT,a=e.REPEAT),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!!i.flipY),i.width){var u=o(i,"width",512),l=o(i,"height",2),c=o(i,"border",0);e.texImage2D(e.TEXTURE_2D,0,h,u,l,c,h,e.UNSIGNED_BYTE,null)}else e.texImage2D(e.TEXTURE_2D,0,h,e.RGBA,e.UNSIGNED_BYTE,t.source);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,r),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,s),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,a)}this.renderer.setProgram(this.program),e.uniform1i(t.uniformLocation,this._textureCount),this._textureCount++}},syncUniforms:function(){var t,e,i,n,r,s=this.gl,o=this.uniforms,a=0;for(var h in o)i=(t=o[h]).glFunc,e=t.glValueLength,n=t.uniformLocation,null!==(r=t.value)&&(1===e?t.glMatrix?i.call(s,n,t.transpose,r):i.call(s,n,r):2===e?i.call(s,n,r.x,r.y):3===e?i.call(s,n,r.x,r.y,r.z):4===e?i.call(s,n,r.x,r.y,r.z,r.w):"sampler2D"===t.type&&(s.activeTexture(s["TEXTURE"+a]),s.bindTexture(s.TEXTURE_2D,r),s.uniform1i(n,a),a++))},load:function(t){var e=this.gl,i=this.width,n=this.height,r=this.renderer,s=this.program,o=this.viewMatrix;if(!this.renderToTexture){var a=-this._displayOriginX,h=-this._displayOriginY;o[0]=t[0],o[1]=t[1],o[4]=t[2],o[5]=t[3],o[8]=t[4],o[9]=t[5],o[12]=o[0]*a+o[4]*h,o[13]=o[1]*a+o[5]*h}e.useProgram(s),e.uniformMatrix4fv(e.getUniformLocation(s,"uViewMatrix"),!1,o),e.uniform2f(e.getUniformLocation(s,"uResolution"),this.width,this.height);var u=this.uniforms,l=u.resolution;l.value.x=i,l.value.y=n,u.time.value=r.game.loop.getDuration();var c=this.pointer;if(c){var d=u.mouse,p=c.x/i,f=1-c.y/n;d.value.x=p.toFixed(2),d.value.y=f.toFixed(2)}this.syncUniforms()},flush:function(){var t=this.width,e=this.height,i=this.program,n=this.gl,r=this.vertexBuffer,s=this.renderer,o=2*Float32Array.BYTES_PER_ELEMENT;this.renderToTexture&&(s.setFramebuffer(this.framebuffer),n.clearColor(0,0,0,0),n.clear(n.COLOR_BUFFER_BIT)),n.bindBuffer(n.ARRAY_BUFFER,r);var a=n.getAttribLocation(i,"inPosition");-1!==a&&(n.enableVertexAttribArray(a),n.vertexAttribPointer(a,2,n.FLOAT,!1,o,0));var h=this.vertexViewF32;h[3]=e,h[4]=t,h[5]=e,h[8]=t,h[9]=e,h[10]=t;n.bufferSubData(n.ARRAY_BUFFER,0,this.bytes.subarray(0,6*o)),n.drawArrays(n.TRIANGLES,0,6),this.renderToTexture&&s.setFramebuffer(null,!1)},setAlpha:function(){},setBlendMode:function(){},preDestroy:function(){var t=this.gl;t.deleteProgram(this.program),t.deleteBuffer(this.vertexBuffer),this.renderToTexture&&(this.renderer.deleteFramebuffer(this.framebuffer),this.texture.destroy(),this.framebuffer=null,this.glTexture=null,this.texture=null)}});t.exports=c},89752:t=>{t.exports=function(){}},34386:(t,e,i)=>{var n=i(74865),r=i(17517),s=i(57687),o=i(29274);r.register("shader",(function(t,e){void 0===t&&(t={});var i=s(t,"key",null),r=s(t,"x",0),a=s(t,"y",0),h=s(t,"width",128),u=s(t,"height",128),l=new o(this.scene,i,r,a,h,u);return void 0!==e&&(t.add=e),n(this.scene,l,t),l}))},61785:(t,e,i)=>{var n=i(29274);i(81342).register("shader",(function(t,e,i,r,s,o,a){return this.displayList.add(new n(this.scene,t,e,i,r,s,o,a))}))},53887:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(3362),r=i(89752),t.exports={renderWebGL:n,renderCanvas:r}},3362:t=>{t.exports=function(t,e,i,n,r){if(e.shader){var s=t.currentPipeline;if(t.clearPipeline(),e.renderToTexture)e.load(),e.flush();else{var o=e._tempMatrix1,a=e._tempMatrix2,h=e._tempMatrix3;a.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),o.copyFrom(n.matrix),r?(o.multiplyWithOffset(r,-n.scrollX*e.scrollFactorX,-n.scrollY*e.scrollFactorY),a.e=e.x,a.f=e.y):(a.e-=n.scrollX*e.scrollFactorX,a.f-=n.scrollY*e.scrollFactorY),o.multiply(a,h),t.width===e._rendererWidth&&t.height===e._rendererHeight||e.projOrtho(0,t.width,t.height,0),e.load(h.matrix),e.flush()}t.rebindPipeline(s)}}},94849:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s,o){for(var a=n.getTintAppendFloatAlphaAndSwap(i.fillColor,i.fillAlpha*r),h=i.pathData,u=i.pathIndexes,l=0;l<u.length;l+=3){var c=2*u[l],d=2*u[l+1],p=2*u[l+2],f=h[c+0]-s,m=h[c+1]-o,v=h[d+0]-s,g=h[d+1]-o,y=h[p+0]-s,_=h[p+1]-o,x=e.getX(f,m),b=e.getY(f,m),w=e.getX(v,g),T=e.getY(v,g),M=e.getX(y,_),S=e.getY(y,_);t.setTexture2D(),t.batchTri(x,b,w,T,M,S,0,0,1,1,a,a,a,t.tintEffect)}}},71805:t=>{t.exports=function(t,e,i,n){var r=i||e.fillColor,s=n||e.fillAlpha,o=(16711680&r)>>>16,a=(65280&r)>>>8,h=255&r;t.fillStyle="rgba("+o+","+a+","+h+","+s+")"}},84233:t=>{t.exports=function(t,e,i,n){var r=i||e.strokeColor,s=n||e.strokeAlpha,o=(16711680&r)>>>16,a=(65280&r)>>>8,h=255&r;t.strokeStyle="rgba("+o+","+a+","+h+","+s+")",t.lineWidth=e.lineWidth}},31641:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(90554),o=i(1137),a=new n({Extends:s,Mixins:[r.AlphaSingle,r.BlendMode,r.ComputedSize,r.Depth,r.GetBounds,r.Mask,r.Origin,r.Pipeline,r.ScrollFactor,r.Transform,r.Visible],initialize:function(t,e,i){void 0===e&&(e="Shape"),s.call(this,t,e),this.geom=i,this.pathData=[],this.pathIndexes=[],this.fillColor=16777215,this.fillAlpha=1,this.strokeColor=16777215,this.strokeAlpha=1,this.lineWidth=1,this.isFilled=!1,this.isStroked=!1,this.closePath=!0,this._tempLine=new o,this.initPipeline()},setFillStyle:function(t,e){return void 0===e&&(e=1),void 0===t?this.isFilled=!1:(this.fillColor=t,this.fillAlpha=e,this.isFilled=!0),this},setStrokeStyle:function(t,e,i){return void 0===i&&(i=1),void 0===t?this.isStroked=!1:(this.lineWidth=t,this.strokeColor=e,this.strokeAlpha=i,this.isStroked=!0),this},setClosePath:function(t){return this.closePath=t,this},preDestroy:function(){this.geom=null,this._tempLine=null,this.pathData=[],this.pathIndexes=[]}});t.exports=a},17331:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){var o=t.strokeTint,a=n.getTintAppendFloatAlphaAndSwap(e.strokeColor,e.strokeAlpha*i);o.TL=a,o.TR=a,o.BL=a,o.BR=a;var h=e.pathData,u=h.length-1,l=e.lineWidth,c=l/2,d=h[0]-r,p=h[1]-s;e.closePath||(u-=2);for(var f=2;f<u;f+=2){var m=h[f]-r,v=h[f+1]-s;t.setTexture2D(),t.batchLine(d,p,m,v,c,c,l,f-2,!!e.closePath&&f===u-1),d=m,p=v}}},66082:(t,e,i)=>{var n=i(86583),r=i(47379),s=i(98436),o=i(43574),a=i(78265),h=i(14302),u=i(31641),l=new r({Extends:u,Mixins:[n],initialize:function(t,e,i,n,r,s,o,h,l){void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=128),void 0===r&&(r=0),void 0===s&&(s=360),void 0===o&&(o=!1),u.call(this,t,"Arc",new a(0,0,n)),this._startAngle=r,this._endAngle=s,this._anticlockwise=o,this._iterations=.01,this.setPosition(e,i);var c=2*this.geom.radius;this.setSize(c,c),void 0!==h&&this.setFillStyle(h,l),this.updateDisplayOrigin(),this.updateData()},iterations:{get:function(){return this._iterations},set:function(t){this._iterations=t,this.updateData()}},radius:{get:function(){return this.geom.radius},set:function(t){this.geom.radius=t;var e=2*t;this.setSize(e,e),this.updateDisplayOrigin(),this.updateData()}},startAngle:{get:function(){return this._startAngle},set:function(t){this._startAngle=t,this.updateData()}},endAngle:{get:function(){return this._endAngle},set:function(t){this._endAngle=t,this.updateData()}},anticlockwise:{get:function(){return this._anticlockwise},set:function(t){this._anticlockwise=t,this.updateData()}},setRadius:function(t){return this.radius=t,this},setIterations:function(t){return void 0===t&&(t=.01),this.iterations=t,this},setStartAngle:function(t,e){return this._startAngle=t,void 0!==e&&(this._anticlockwise=e),this.updateData()},setEndAngle:function(t,e){return this._endAngle=t,void 0!==e&&(this._anticlockwise=e),this.updateData()},updateData:function(){var t=this._iterations,e=t,i=this.geom.radius,n=s(this._startAngle),r=s(this._endAngle),a=i,u=i;r-=n,this._anticlockwise?r<-h.PI2?r=-h.PI2:r>0&&(r=-h.PI2+r%h.PI2):r>h.PI2?r=h.PI2:r<0&&(r=h.PI2+r%h.PI2);for(var l,c=[a+Math.cos(n)*i,u+Math.sin(n)*i];e<1;)l=r*e+n,c.push(a+Math.cos(l)*i,u+Math.sin(l)*i),e+=t;return l=r+n,c.push(a+Math.cos(l)*i,u+Math.sin(l)*i),c.push(a+Math.cos(n)*i,u+Math.sin(n)*i),this.pathIndexes=o(c),this.pathData=c,this}});t.exports=l},21749:(t,e,i)=>{var n=i(98436),r=i(71805),s=i(84233),o=i(55468);t.exports=function(t,e,i,a,h){var u=t.currentContext;if(o(t,u,e,a,h)){var l=e.radius;u.beginPath(),u.arc(l-e.originX*(2*l),l-e.originY*(2*l),l,n(e._startAngle),n(e._endAngle),e.anticlockwise),e.closePath&&u.closePath(),e.isFilled&&(r(u,e),u.fill()),e.isStroked&&(s(u,e),u.stroke()),u.restore()}}},44729:(t,e,i)=>{var n=i(66082),r=i(81342);r.register("arc",(function(t,e,i,r,s,o,a,h){return this.displayList.add(new n(this.scene,t,e,i,r,s,o,a,h))})),r.register("circle",(function(t,e,i,r,s){return this.displayList.add(new n(this.scene,t,e,i,0,360,!1,r,s))}))},86583:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(40945),r=i(21749),t.exports={renderWebGL:n,renderCanvas:r}},40945:(t,e,i)=>{var n=i(94849),r=i(17331);t.exports=function(t,e,i,s,o){var a=this.pipeline,h=a._tempMatrix1,u=a._tempMatrix2,l=a._tempMatrix3;t.setPipeline(a),u.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),h.copyFrom(s.matrix),o?(h.multiplyWithOffset(o,-s.scrollX*e.scrollFactorX,-s.scrollY*e.scrollFactorY),u.e=e.x,u.f=e.y):(u.e-=s.scrollX*e.scrollFactorX,u.f-=s.scrollY*e.scrollFactorY),h.multiply(u,l);var c=e._displayOriginX,d=e._displayOriginY,p=s.alpha*e.alpha;e.isFilled&&n(a,l,e,p,c,d),e.isStroked&&r(a,e,p,c,d)}},56653:(t,e,i)=>{var n=i(47379),r=i(46917),s=i(43574),o=i(38092),a=i(31641),h=new n({Extends:a,Mixins:[r],initialize:function(t,e,i,n,r,s){void 0===e&&(e=0),void 0===i&&(i=0),a.call(this,t,"Curve",n),this._smoothness=32,this._curveBounds=new o,this.closePath=!1,this.setPosition(e,i),void 0!==r&&this.setFillStyle(r,s),this.updateData()},smoothness:{get:function(){return this._smoothness},set:function(t){this._smoothness=t,this.updateData()}},setSmoothness:function(t){return this._smoothness=t,this.updateData()},updateData:function(){var t=this._curveBounds,e=this._smoothness;this.geom.getBounds(t,e),this.setSize(t.width,t.height),this.updateDisplayOrigin();for(var i=[],n=this.geom.getPoints(e),r=0;r<n.length;r++)i.push(n[r].x,n[r].y);return i.push(n[0].x,n[0].y),this.pathIndexes=s(i),this.pathData=i,this}});t.exports=h},44381:(t,e,i)=>{var n=i(71805),r=i(84233),s=i(55468);t.exports=function(t,e,i,o,a){var h=t.currentContext;if(s(t,h,e,o,a)){var u=e._displayOriginX+e._curveBounds.x,l=e._displayOriginY+e._curveBounds.y,c=e.pathData,d=c.length-1,p=c[0]-u,f=c[1]-l;h.beginPath(),h.moveTo(p,f),e.closePath||(d-=2);for(var m=2;m<d;m+=2){var v=c[m]-u,g=c[m+1]-l;h.lineTo(v,g)}e.closePath&&h.closePath(),e.isFilled&&(n(h,e),h.fill()),e.isStroked&&(r(h,e),h.stroke()),h.restore()}}},18164:(t,e,i)=>{var n=i(81342),r=i(56653);n.register("curve",(function(t,e,i,n,s){return this.displayList.add(new r(this.scene,t,e,i,n,s))}))},46917:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(64700),r=i(44381),t.exports={renderWebGL:n,renderCanvas:r}},64700:(t,e,i)=>{var n=i(94849),r=i(17331);t.exports=function(t,e,i,s,o){var a=this.pipeline,h=a._tempMatrix1,u=a._tempMatrix2,l=a._tempMatrix3;t.setPipeline(a),u.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),h.copyFrom(s.matrix),o?(h.multiplyWithOffset(o,-s.scrollX*e.scrollFactorX,-s.scrollY*e.scrollFactorY),u.e=e.x,u.f=e.y):(u.e-=s.scrollX*e.scrollFactorX,u.f-=s.scrollY*e.scrollFactorY),h.multiply(u,l);var c=e._displayOriginX+e._curveBounds.x,d=e._displayOriginY+e._curveBounds.y,p=s.alpha*e.alpha;e.isFilled&&n(a,l,e,p,c,d),e.isStroked&&r(a,e,p,c,d)}},62291:(t,e,i)=>{var n=i(47379),r=i(43574),s=i(9469),o=i(38341),a=i(31641),h=new n({Extends:a,Mixins:[s],initialize:function(t,e,i,n,r,s,h){void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=128),void 0===r&&(r=128),a.call(this,t,"Ellipse",new o(n/2,r/2,n,r)),this._smoothness=64,this.setPosition(e,i),this.width=n,this.height=r,void 0!==s&&this.setFillStyle(s,h),this.updateDisplayOrigin(),this.updateData()},smoothness:{get:function(){return this._smoothness},set:function(t){this._smoothness=t,this.updateData()}},setSize:function(t,e){return this.geom.setSize(t,e),this.updateData()},setSmoothness:function(t){return this._smoothness=t,this.updateData()},updateData:function(){for(var t=[],e=this.geom.getPoints(this._smoothness),i=0;i<e.length;i++)t.push(e[i].x,e[i].y);return t.push(e[0].x,e[0].y),this.pathIndexes=r(t),this.pathData=t,this}});t.exports=h},43186:(t,e,i)=>{var n=i(71805),r=i(84233),s=i(55468);t.exports=function(t,e,i,o,a){var h=t.currentContext;if(s(t,h,e,o,a)){var u=e._displayOriginX,l=e._displayOriginY,c=e.pathData,d=c.length-1,p=c[0]-u,f=c[1]-l;h.beginPath(),h.moveTo(p,f),e.closePath||(d-=2);for(var m=2;m<d;m+=2){var v=c[m]-u,g=c[m+1]-l;h.lineTo(v,g)}h.closePath(),e.isFilled&&(n(h,e),h.fill()),e.isStroked&&(r(h,e),h.stroke()),h.restore()}}},70608:(t,e,i)=>{var n=i(62291);i(81342).register("ellipse",(function(t,e,i,r,s,o){return this.displayList.add(new n(this.scene,t,e,i,r,s,o))}))},9469:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(28484),r=i(43186),t.exports={renderWebGL:n,renderCanvas:r}},28484:(t,e,i)=>{var n=i(94849),r=i(17331);t.exports=function(t,e,i,s,o){var a=this.pipeline,h=a._tempMatrix1,u=a._tempMatrix2,l=a._tempMatrix3;t.setPipeline(a),u.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),h.copyFrom(s.matrix),o?(h.multiplyWithOffset(o,-s.scrollX*e.scrollFactorX,-s.scrollY*e.scrollFactorY),u.e=e.x,u.f=e.y):(u.e-=s.scrollX*e.scrollFactorX,u.f-=s.scrollY*e.scrollFactorY),h.multiply(u,l);var c=e._displayOriginX,d=e._displayOriginY,p=s.alpha*e.alpha;e.isFilled&&n(a,l,e,p,c,d),e.isStroked&&r(a,e,p,c,d)}},12086:(t,e,i)=>{var n=i(47379),r=i(31641),s=i(78404),o=new n({Extends:r,Mixins:[s],initialize:function(t,e,i,n,s,o,a,h,u,l,c){void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=128),void 0===s&&(s=128),void 0===o&&(o=32),void 0===a&&(a=32),r.call(this,t,"Grid",null),this.cellWidth=o,this.cellHeight=a,this.showCells=!0,this.outlineFillColor=0,this.outlineFillAlpha=0,this.showOutline=!0,this.showAltCells=!1,this.altFillColor,this.altFillAlpha,this.setPosition(e,i),this.setSize(n,s),void 0!==h&&this.setFillStyle(h,u),void 0!==l&&this.setOutlineStyle(l,c),this.updateDisplayOrigin()},setFillStyle:function(t,e){return void 0===e&&(e=1),void 0===t?this.showCells=!1:(this.fillColor=t,this.fillAlpha=e,this.showCells=!0),this},setAltFillStyle:function(t,e){return void 0===e&&(e=1),void 0===t?this.showAltCells=!1:(this.altFillColor=t,this.altFillAlpha=e,this.showAltCells=!0),this},setOutlineStyle:function(t,e){return void 0===e&&(e=1),void 0===t?this.showOutline=!1:(this.outlineFillColor=t,this.outlineFillAlpha=e,this.showOutline=!0),this}});t.exports=o},29385:(t,e,i)=>{var n=i(71805),r=i(84233),s=i(55468);t.exports=function(t,e,i,o,a){var h=t.currentContext;if(s(t,h,e,o,a)){var u=-e._displayOriginX,l=-e._displayOriginY,c=o.alpha*e.alpha,d=e.width,p=e.height,f=e.cellWidth,m=e.cellHeight,v=Math.ceil(d/f),g=Math.ceil(p/m),y=f,_=m,x=f-(v*f-d),b=m-(g*m-p),w=e.showCells,T=e.showAltCells,M=e.showOutline,S=0,E=0,L=0,A=0,D=0;if(M&&(y--,_--,x===f&&x--,b===m&&b--),w&&e.fillAlpha>0)for(n(h,e),E=0;E<g;E++)for(T&&(L=E%2),S=0;S<v;S++)T&&L?L=0:(L++,A=S<v-1?y:x,D=E<g-1?_:b,h.fillRect(u+S*f,l+E*m,A,D));if(T&&e.altFillAlpha>0)for(n(h,e,e.altFillColor,e.altFillAlpha*c),E=0;E<g;E++)for(T&&(L=E%2),S=0;S<v;S++)!T||L?(L=0,A=S<v-1?y:x,D=E<g-1?_:b,h.fillRect(u+S*f,l+E*m,A,D)):L=1;if(M&&e.outlineFillAlpha>0){for(r(h,e,e.outlineFillColor,e.outlineFillAlpha*c),S=1;S<v;S++){var P=S*f;h.beginPath(),h.moveTo(P+u,l),h.lineTo(P+u,p+l),h.stroke()}for(E=1;E<g;E++){var C=E*m;h.beginPath(),h.moveTo(u,C+l),h.lineTo(u+d,C+l),h.stroke()}}h.restore()}}},85357:(t,e,i)=>{var n=i(81342),r=i(12086);n.register("grid",(function(t,e,i,n,s,o,a,h,u,l){return this.displayList.add(new r(this.scene,t,e,i,n,s,o,a,h,u,l))}))},78404:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(82422),r=i(29385),t.exports={renderWebGL:n,renderCanvas:r}},82422:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){var o=this.pipeline,a=o._tempMatrix1,h=o._tempMatrix2,u=o._tempMatrix3;t.setPipeline(o),h.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),a.copyFrom(r.matrix),s?(a.multiplyWithOffset(s,-r.scrollX*e.scrollFactorX,-r.scrollY*e.scrollFactorY),h.e=e.x,h.f=e.y):(h.e-=r.scrollX*e.scrollFactorX,h.f-=r.scrollY*e.scrollFactorY),a.multiply(h,u),u.translate(-e._displayOriginX,-e._displayOriginY);var l,c,d=r.alpha*e.alpha,p=e.width,f=e.height,m=e.cellWidth,v=e.cellHeight,g=Math.ceil(p/m),y=Math.ceil(f/v),_=m,x=v,b=m-(g*m-p),w=v-(y*v-f),T=e.showCells,M=e.showAltCells,S=e.showOutline,E=0,L=0,A=0,D=0,P=0;if(S&&(_--,x--,b===m&&b--,w===v&&w--),T&&e.fillAlpha>0)for(l=o.fillTint,c=n.getTintAppendFloatAlphaAndSwap(e.fillColor,e.fillAlpha*d),l.TL=c,l.TR=c,l.BL=c,l.BR=c,L=0;L<y;L++)for(M&&(A=L%2),E=0;E<g;E++)M&&A?A=0:(A++,D=E<g-1?_:b,P=L<y-1?x:w,o.setTexture2D(),o.batchFillRect(E*m,L*v,D,P));if(M&&e.altFillAlpha>0)for(l=o.fillTint,c=n.getTintAppendFloatAlphaAndSwap(e.altFillColor,e.altFillAlpha*d),l.TL=c,l.TR=c,l.BL=c,l.BR=c,L=0;L<y;L++)for(M&&(A=L%2),E=0;E<g;E++)!M||A?(A=0,D=E<g-1?_:b,P=L<y-1?x:w,o.setTexture2D(),o.batchFillRect(E*m,L*v,D,P)):A=1;if(S&&e.outlineFillAlpha>0){var C=o.strokeTint,O=n.getTintAppendFloatAlphaAndSwap(e.outlineFillColor,e.outlineFillAlpha*d);for(C.TL=O,C.TR=O,C.BL=O,C.BR=O,E=1;E<g;E++){var k=E*m;o.setTexture2D(),o.batchLine(k,0,k,f,1,1,1,0,!1)}for(L=1;L<y;L++){var R=L*v;o.setTexture2D(),o.batchLine(0,R,p,R,1,1,1,0,!1)}}}},46221:(t,e,i)=>{var n=i(7822),r=i(47379),s=i(31641),o=new r({Extends:s,Mixins:[n],initialize:function(t,e,i,n,r,o,a,h){void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=48),void 0===r&&(r=32),void 0===o&&(o=15658734),void 0===a&&(a=10066329),void 0===h&&(h=13421772),s.call(this,t,"IsoBox",null),this.projection=4,this.fillTop=o,this.fillLeft=a,this.fillRight=h,this.showTop=!0,this.showLeft=!0,this.showRight=!0,this.isFilled=!0,this.setPosition(e,i),this.setSize(n,r),this.updateDisplayOrigin()},setProjection:function(t){return this.projection=t,this},setFaces:function(t,e,i){return void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===i&&(i=!0),this.showTop=t,this.showLeft=e,this.showRight=i,this},setFillStyle:function(t,e,i){return this.fillTop=t,this.fillLeft=e,this.fillRight=i,this.isFilled=!0,this}});t.exports=o},83181:(t,e,i)=>{var n=i(71805),r=i(55468);t.exports=function(t,e,i,s,o){var a=t.currentContext;if(r(t,a,e,s,o)&&e.isFilled){var h=e.width,u=e.height,l=h/2,c=h/e.projection;e.showTop&&(n(a,e,e.fillTop),a.beginPath(),a.moveTo(-l,-u),a.lineTo(0,-c-u),a.lineTo(l,-u),a.lineTo(l,-1),a.lineTo(0,c-1),a.lineTo(-l,-1),a.lineTo(-l,-u),a.fill()),e.showLeft&&(n(a,e,e.fillLeft),a.beginPath(),a.moveTo(-l,0),a.lineTo(0,c),a.lineTo(0,c-u),a.lineTo(-l,-u),a.lineTo(-l,0),a.fill()),e.showRight&&(n(a,e,e.fillRight),a.beginPath(),a.moveTo(l,0),a.lineTo(0,c),a.lineTo(0,c-u),a.lineTo(l,-u),a.lineTo(l,0),a.fill()),a.restore()}}},37349:(t,e,i)=>{var n=i(81342),r=i(46221);n.register("isobox",(function(t,e,i,n,s,o,a){return this.displayList.add(new r(this.scene,t,e,i,n,s,o,a))}))},7822:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(27612),r=i(83181),t.exports={renderWebGL:n,renderCanvas:r}},27612:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){var o=this.pipeline,a=o._tempMatrix1,h=o._tempMatrix2,u=o._tempMatrix3;t.setPipeline(o),h.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),a.copyFrom(r.matrix),s?(a.multiplyWithOffset(s,-r.scrollX*e.scrollFactorX,-r.scrollY*e.scrollFactorY),h.e=e.x,h.f=e.y):(h.e-=r.scrollX*e.scrollFactorX,h.f-=r.scrollY*e.scrollFactorY),a.multiply(h,u);var l,c,d,p,f,m,v,g,y,_=e.width,x=e.height,b=_/2,w=_/e.projection,T=r.alpha*e.alpha;e.isFilled&&(e.showTop&&(l=n.getTintAppendFloatAlphaAndSwap(e.fillTop,T),c=u.getX(-b,-x),d=u.getY(-b,-x),p=u.getX(0,-w-x),f=u.getY(0,-w-x),m=u.getX(b,-x),v=u.getY(b,-x),g=u.getX(0,w-x),y=u.getY(0,w-x),o.setTexture2D(),o.batchQuad(c,d,p,f,m,v,g,y,0,0,1,1,l,l,l,l,2)),e.showLeft&&(l=n.getTintAppendFloatAlphaAndSwap(e.fillLeft,T),c=u.getX(-b,0),d=u.getY(-b,0),p=u.getX(0,w),f=u.getY(0,w),m=u.getX(0,w-x),v=u.getY(0,w-x),g=u.getX(-b,-x),y=u.getY(-b,-x),o.setTexture2D(),o.batchQuad(c,d,p,f,m,v,g,y,0,0,1,1,l,l,l,l,2)),e.showRight&&(l=n.getTintAppendFloatAlphaAndSwap(e.fillRight,T),c=u.getX(b,0),d=u.getY(b,0),p=u.getX(0,w),f=u.getY(0,w),m=u.getX(0,w-x),v=u.getY(0,w-x),g=u.getX(b,-x),y=u.getY(b,-x),o.setTexture2D(),o.batchQuad(c,d,p,f,m,v,g,y,0,0,1,1,l,l,l,l,2)))}},39994:(t,e,i)=>{var n=i(47379),r=i(57287),s=i(31641),o=new n({Extends:s,Mixins:[r],initialize:function(t,e,i,n,r,o,a,h,u){void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=48),void 0===r&&(r=32),void 0===o&&(o=!1),void 0===a&&(a=15658734),void 0===h&&(h=10066329),void 0===u&&(u=13421772),s.call(this,t,"IsoTriangle",null),this.projection=4,this.fillTop=a,this.fillLeft=h,this.fillRight=u,this.showTop=!0,this.showLeft=!0,this.showRight=!0,this.isReversed=o,this.isFilled=!0,this.setPosition(e,i),this.setSize(n,r),this.updateDisplayOrigin()},setProjection:function(t){return this.projection=t,this},setReversed:function(t){return this.isReversed=t,this},setFaces:function(t,e,i){return void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===i&&(i=!0),this.showTop=t,this.showLeft=e,this.showRight=i,this},setFillStyle:function(t,e,i){return this.fillTop=t,this.fillLeft=e,this.fillRight=i,this.isFilled=!0,this}});t.exports=o},27017:(t,e,i)=>{var n=i(71805),r=i(55468);t.exports=function(t,e,i,s,o){var a=t.currentContext;if(r(t,a,e,s,o)&&e.isFilled){var h=e.width,u=e.height,l=h/2,c=h/e.projection,d=e.isReversed;e.showTop&&d&&(n(a,e,e.fillTop),a.beginPath(),a.moveTo(-l,-u),a.lineTo(0,-c-u),a.lineTo(l,-u),a.lineTo(0,c-u),a.fill()),e.showLeft&&(n(a,e,e.fillLeft),a.beginPath(),d?(a.moveTo(-l,-u),a.lineTo(0,c),a.lineTo(0,c-u)):(a.moveTo(-l,0),a.lineTo(0,c),a.lineTo(0,c-u)),a.fill()),e.showRight&&(n(a,e,e.fillRight),a.beginPath(),d?(a.moveTo(l,-u),a.lineTo(0,c),a.lineTo(0,c-u)):(a.moveTo(l,0),a.lineTo(0,c),a.lineTo(0,c-u)),a.fill()),a.restore()}}},57084:(t,e,i)=>{var n=i(81342),r=i(39994);n.register("isotriangle",(function(t,e,i,n,s,o,a,h){return this.displayList.add(new r(this.scene,t,e,i,n,s,o,a,h))}))},57287:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(45848),r=i(27017),t.exports={renderWebGL:n,renderCanvas:r}},45848:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){var o=this.pipeline,a=o._tempMatrix1,h=o._tempMatrix2,u=o._tempMatrix3;t.setPipeline(o),h.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),a.copyFrom(r.matrix),s?(a.multiplyWithOffset(s,-r.scrollX*e.scrollFactorX,-r.scrollY*e.scrollFactorY),h.e=e.x,h.f=e.y):(h.e-=r.scrollX*e.scrollFactorX,h.f-=r.scrollY*e.scrollFactorY),a.multiply(h,u);var l=e.width,c=e.height,d=l/2,p=l/e.projection,f=e.isReversed,m=r.alpha*e.alpha;if(e.isFilled){var v,g,y,_,x,b,w;if(e.showTop&&f){v=n.getTintAppendFloatAlphaAndSwap(e.fillTop,m),g=u.getX(-d,-c),y=u.getY(-d,-c),_=u.getX(0,-p-c),x=u.getY(0,-p-c),b=u.getX(d,-c),w=u.getY(d,-c);var T=u.getX(0,p-c),M=u.getY(0,p-c);o.setTexture2D(),o.batchQuad(g,y,_,x,b,w,T,M,0,0,1,1,v,v,v,v,2)}e.showLeft&&(v=n.getTintAppendFloatAlphaAndSwap(e.fillLeft,m),f?(g=u.getX(-d,-c),y=u.getY(-d,-c),_=u.getX(0,p),x=u.getY(0,p),b=u.getX(0,p-c),w=u.getY(0,p-c)):(g=u.getX(-d,0),y=u.getY(-d,0),_=u.getX(0,p),x=u.getY(0,p),b=u.getX(0,p-c),w=u.getY(0,p-c)),o.batchTri(g,y,_,x,b,w,0,0,1,1,v,v,v,2)),e.showRight&&(v=n.getTintAppendFloatAlphaAndSwap(e.fillRight,m),f?(g=u.getX(d,-c),y=u.getY(d,-c),_=u.getX(0,p),x=u.getY(0,p),b=u.getX(0,p-c),w=u.getY(0,p-c)):(g=u.getX(d,0),y=u.getY(d,0),_=u.getX(0,p),x=u.getY(0,p),b=u.getX(0,p-c),w=u.getY(0,p-c)),o.setTexture2D(),o.batchTri(g,y,_,x,b,w,0,0,1,1,v,v,v,2))}}},21211:(t,e,i)=>{var n=i(47379),r=i(31641),s=i(1137),o=i(51957),a=new n({Extends:r,Mixins:[o],initialize:function(t,e,i,n,o,a,h,u,l){void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),void 0===o&&(o=0),void 0===a&&(a=128),void 0===h&&(h=0),r.call(this,t,"Line",new s(n,o,a,h));var c=this.geom.right-this.geom.left,d=this.geom.bottom-this.geom.top;this.lineWidth=1,this._startWidth=1,this._endWidth=1,this.setPosition(e,i),this.setSize(c,d),void 0!==u&&this.setStrokeStyle(1,u,l),this.updateDisplayOrigin()},setLineWidth:function(t,e){return void 0===e&&(e=t),this._startWidth=t,this._endWidth=e,this.lineWidth=t,this},setTo:function(t,e,i,n){return this.geom.setTo(t,e,i,n),this}});t.exports=a},85451:(t,e,i)=>{var n=i(84233),r=i(55468);t.exports=function(t,e,i,s,o){var a=t.currentContext;if(r(t,a,e,s,o)){var h=e._displayOriginX,u=e._displayOriginY;e.isStroked&&(n(a,e),a.beginPath(),a.moveTo(e.geom.x1-h,e.geom.y1-u),a.lineTo(e.geom.x2-h,e.geom.y2-u),a.stroke()),a.restore()}}},74347:(t,e,i)=>{var n=i(81342),r=i(21211);n.register("line",(function(t,e,i,n,s,o,a,h){return this.displayList.add(new r(this.scene,t,e,i,n,s,o,a,h))}))},51957:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(60751),r=i(85451),t.exports={renderWebGL:n,renderCanvas:r}},60751:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){var o=this.pipeline,a=o._tempMatrix1,h=o._tempMatrix2;t.setPipeline(o),h.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),a.copyFrom(r.matrix),s?(a.multiplyWithOffset(s,-r.scrollX*e.scrollFactorX,-r.scrollY*e.scrollFactorY),h.e=e.x,h.f=e.y):(h.e-=r.scrollX*e.scrollFactorX,h.f-=r.scrollY*e.scrollFactorY);var u=e._displayOriginX,l=e._displayOriginY,c=r.alpha*e.alpha;if(e.isStroked){var d=o.strokeTint,p=n.getTintAppendFloatAlphaAndSwap(e.strokeColor,e.strokeAlpha*c);d.TL=p,d.TR=p,d.BL=p,d.BR=p;var f=e._startWidth,m=e._endWidth;o.setTexture2D(),o.batchLine(e.geom.x1-u,e.geom.y1-l,e.geom.x2-u,e.geom.y2-l,f,m,1,0,!1,h,a)}}},32330:(t,e,i)=>{var n=i(98586),r=i(47379),s=i(43574),o=i(9248),a=i(72064),h=i(31641),u=i(92556),l=new r({Extends:h,Mixins:[n],initialize:function(t,e,i,n,r,s){void 0===e&&(e=0),void 0===i&&(i=0),h.call(this,t,"Polygon",new a(n));var u=o(this.geom);this.setPosition(e,i),this.setSize(u.width,u.height),void 0!==r&&this.setFillStyle(r,s),this.updateDisplayOrigin(),this.updateData()},smooth:function(t){void 0===t&&(t=1);for(var e=0;e<t;e++)u(this.geom);return this.updateData()},updateData:function(){for(var t=[],e=this.geom.points,i=0;i<e.length;i++)t.push(e[i].x,e[i].y);return t.push(e[0].x,e[0].y),this.pathIndexes=s(t),this.pathData=t,this}});t.exports=l},96513:(t,e,i)=>{var n=i(71805),r=i(84233),s=i(55468);t.exports=function(t,e,i,o,a){var h=t.currentContext;if(s(t,h,e,o,a)){var u=e._displayOriginX,l=e._displayOriginY,c=e.pathData,d=c.length-1,p=c[0]-u,f=c[1]-l;h.beginPath(),h.moveTo(p,f),e.closePath||(d-=2);for(var m=2;m<d;m+=2){var v=c[m]-u,g=c[m+1]-l;h.lineTo(v,g)}h.closePath(),e.isFilled&&(n(h,e),h.fill()),e.isStroked&&(r(h,e),h.stroke()),h.restore()}}},42275:(t,e,i)=>{var n=i(81342),r=i(32330);n.register("polygon",(function(t,e,i,n,s){return this.displayList.add(new r(this.scene,t,e,i,n,s))}))},98586:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(92729),r=i(96513),t.exports={renderWebGL:n,renderCanvas:r}},92729:(t,e,i)=>{var n=i(94849),r=i(17331);t.exports=function(t,e,i,s,o){var a=this.pipeline,h=a._tempMatrix1,u=a._tempMatrix2,l=a._tempMatrix3;t.setPipeline(a),u.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),h.copyFrom(s.matrix),o?(h.multiplyWithOffset(o,-s.scrollX*e.scrollFactorX,-s.scrollY*e.scrollFactorY),u.e=e.x,u.f=e.y):(u.e-=s.scrollX*e.scrollFactorX,u.f-=s.scrollY*e.scrollFactorY),h.multiply(u,l);var c=e._displayOriginX,d=e._displayOriginY,p=s.alpha*e.alpha;e.isFilled&&n(a,l,e,p,c,d),e.isStroked&&r(a,e,p,c,d)}},13056:(t,e,i)=>{var n=i(47379),r=i(38092),s=i(31641),o=i(50901),a=new n({Extends:s,Mixins:[o],initialize:function(t,e,i,n,o,a,h){void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=128),void 0===o&&(o=128),s.call(this,t,"Rectangle",new r(0,0,n,o)),this.setPosition(e,i),this.setSize(n,o),void 0!==a&&this.setFillStyle(a,h),this.updateDisplayOrigin(),this.updateData()},updateData:function(){var t=[],e=this.geom,i=this._tempLine;return e.getLineA(i),t.push(i.x1,i.y1,i.x2,i.y2),e.getLineB(i),t.push(i.x2,i.y2),e.getLineC(i),t.push(i.x2,i.y2),e.getLineD(i),t.push(i.x2,i.y2),this.pathData=t,this}});t.exports=a},34145:(t,e,i)=>{var n=i(71805),r=i(84233),s=i(55468);t.exports=function(t,e,i,o,a){var h=t.currentContext;if(s(t,h,e,o,a)){var u=e._displayOriginX,l=e._displayOriginY;e.isFilled&&(n(h,e),h.fillRect(-u,-l,e.width,e.height)),e.isStroked&&(r(h,e),h.beginPath(),h.rect(-u,-l,e.width,e.height),h.stroke()),h.restore()}}},23738:(t,e,i)=>{var n=i(81342),r=i(13056);n.register("rectangle",(function(t,e,i,n,s,o){return this.displayList.add(new r(this.scene,t,e,i,n,s,o))}))},50901:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(7838),r=i(34145),t.exports={renderWebGL:n,renderCanvas:r}},7838:(t,e,i)=>{var n=i(17331),r=i(19298);t.exports=function(t,e,i,s,o){var a=this.pipeline,h=a._tempMatrix1,u=a._tempMatrix2,l=a._tempMatrix3;t.setPipeline(a),u.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),h.copyFrom(s.matrix),o?(h.multiplyWithOffset(o,-s.scrollX*e.scrollFactorX,-s.scrollY*e.scrollFactorY),u.e=e.x,u.f=e.y):(u.e-=s.scrollX*e.scrollFactorX,u.f-=s.scrollY*e.scrollFactorY),h.multiply(u,l);var c=e._displayOriginX,d=e._displayOriginY,p=s.alpha*e.alpha;if(e.isFilled){var f=a.fillTint,m=r.getTintAppendFloatAlphaAndSwap(e.fillColor,e.fillAlpha*p);f.TL=m,f.TR=m,f.BL=m,f.BR=m,a.setTexture2D(),a.batchFillRect(-c,-d,e.width,e.height)}e.isStroked&&n(a,e,p,c,d)}},85864:(t,e,i)=>{var n=i(68137),r=i(47379),s=i(43574),o=i(31641),a=new r({Extends:o,Mixins:[n],initialize:function(t,e,i,n,r,s,a,h){void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=5),void 0===r&&(r=32),void 0===s&&(s=64),o.call(this,t,"Star",null),this._points=n,this._innerRadius=r,this._outerRadius=s,this.setPosition(e,i),this.setSize(2*s,2*s),void 0!==a&&this.setFillStyle(a,h),this.updateDisplayOrigin(),this.updateData()},setPoints:function(t){return this._points=t,this.updateData()},setInnerRadius:function(t){return this._innerRadius=t,this.updateData()},setOuterRadius:function(t){return this._outerRadius=t,this.updateData()},points:{get:function(){return this._points},set:function(t){this._points=t,this.updateData()}},innerRadius:{get:function(){return this._innerRadius},set:function(t){this._innerRadius=t,this.updateData()}},outerRadius:{get:function(){return this._outerRadius},set:function(t){this._outerRadius=t,this.updateData()}},updateData:function(){var t=[],e=this._points,i=this._innerRadius,n=this._outerRadius,r=Math.PI/2*3,o=Math.PI/e,a=n,h=n;t.push(a,h+-n);for(var u=0;u<e;u++)t.push(a+Math.cos(r)*n,h+Math.sin(r)*n),r+=o,t.push(a+Math.cos(r)*i,h+Math.sin(r)*i),r+=o;return t.push(a,h+-n),this.pathIndexes=s(t),this.pathData=t,this}});t.exports=a},4417:(t,e,i)=>{var n=i(71805),r=i(84233),s=i(55468);t.exports=function(t,e,i,o,a){var h=t.currentContext;if(s(t,h,e,o,a)){var u=e._displayOriginX,l=e._displayOriginY,c=e.pathData,d=c.length-1,p=c[0]-u,f=c[1]-l;h.beginPath(),h.moveTo(p,f),e.closePath||(d-=2);for(var m=2;m<d;m+=2){var v=c[m]-u,g=c[m+1]-l;h.lineTo(v,g)}h.closePath(),e.isFilled&&(n(h,e),h.fill()),e.isStroked&&(r(h,e),h.stroke()),h.restore()}}},11242:(t,e,i)=>{var n=i(85864);i(81342).register("star",(function(t,e,i,r,s,o,a){return this.displayList.add(new n(this.scene,t,e,i,r,s,o,a))}))},68137:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(45610),r=i(4417),t.exports={renderWebGL:n,renderCanvas:r}},45610:(t,e,i)=>{var n=i(94849),r=i(17331);t.exports=function(t,e,i,s,o){var a=this.pipeline,h=a._tempMatrix1,u=a._tempMatrix2,l=a._tempMatrix3;t.setPipeline(a),u.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),h.copyFrom(s.matrix),o?(h.multiplyWithOffset(o,-s.scrollX*e.scrollFactorX,-s.scrollY*e.scrollFactorY),u.e=e.x,u.f=e.y):(u.e-=s.scrollX*e.scrollFactorX,u.f-=s.scrollY*e.scrollFactorY),h.multiply(u,l);var c=e._displayOriginX,d=e._displayOriginY,p=s.alpha*e.alpha;e.isFilled&&n(a,l,e,p,c,d),e.isStroked&&r(a,e,p,c,d)}},82379:(t,e,i)=>{var n=i(47379),r=i(31641),s=i(50730),o=i(28835),a=new n({Extends:r,Mixins:[o],initialize:function(t,e,i,n,o,a,h,u,l,c,d){void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),void 0===o&&(o=128),void 0===a&&(a=64),void 0===h&&(h=0),void 0===u&&(u=128),void 0===l&&(l=128),r.call(this,t,"Triangle",new s(n,o,a,h,u,l));var p=this.geom.right-this.geom.left,f=this.geom.bottom-this.geom.top;this.setPosition(e,i),this.setSize(p,f),void 0!==c&&this.setFillStyle(c,d),this.updateDisplayOrigin(),this.updateData()},setTo:function(t,e,i,n,r,s){return this.geom.setTo(t,e,i,n,r,s),this.updateData()},updateData:function(){var t=[],e=this.geom,i=this._tempLine;return e.getLineA(i),t.push(i.x1,i.y1,i.x2,i.y2),e.getLineB(i),t.push(i.x2,i.y2),e.getLineC(i),t.push(i.x2,i.y2),this.pathData=t,this}});t.exports=a},71568:(t,e,i)=>{var n=i(71805),r=i(84233),s=i(55468);t.exports=function(t,e,i,o,a){var h=t.currentContext;if(s(t,h,e,o,a)){var u=e._displayOriginX,l=e._displayOriginY,c=e.geom.x1-u,d=e.geom.y1-l,p=e.geom.x2-u,f=e.geom.y2-l,m=e.geom.x3-u,v=e.geom.y3-l;h.beginPath(),h.moveTo(c,d),h.lineTo(p,f),h.lineTo(m,v),h.closePath(),e.isFilled&&(n(h,e),h.fill()),e.isStroked&&(r(h,e),h.stroke()),h.restore()}}},80888:(t,e,i)=>{var n=i(81342),r=i(82379);n.register("triangle",(function(t,e,i,n,s,o,a,h,u,l){return this.displayList.add(new r(this.scene,t,e,i,n,s,o,a,h,u,l))}))},28835:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(58515),r=i(71568),t.exports={renderWebGL:n,renderCanvas:r}},58515:(t,e,i)=>{var n=i(17331),r=i(19298);t.exports=function(t,e,i,s,o){var a=this.pipeline,h=a._tempMatrix1,u=a._tempMatrix2,l=a._tempMatrix3;t.setPipeline(a),u.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),h.copyFrom(s.matrix),o?(h.multiplyWithOffset(o,-s.scrollX*e.scrollFactorX,-s.scrollY*e.scrollFactorY),u.e=e.x,u.f=e.y):(u.e-=s.scrollX*e.scrollFactorX,u.f-=s.scrollY*e.scrollFactorY),h.multiply(u,l);var c=e._displayOriginX,d=e._displayOriginY,p=s.alpha*e.alpha;if(e.isFilled){var f=a.fillTint,m=r.getTintAppendFloatAlphaAndSwap(e.fillColor,e.fillAlpha*p);f.TL=m,f.TR=m,f.BL=m,f.BR=m;var v=e.geom.x1-c,g=e.geom.y1-d,y=e.geom.x2-c,_=e.geom.y2-d,x=e.geom.x3-c,b=e.geom.y3-d;a.setTexture2D(),a.batchFillTriangle(v,g,y,_,x,b,u,h)}e.isStroked&&n(a,e,p,c,d)}},95681:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(90554),o=i(80244),a=new n({Extends:s,Mixins:[r.Alpha,r.BlendMode,r.Depth,r.Flip,r.GetBounds,r.Mask,r.Origin,r.Pipeline,r.ScrollFactor,r.Size,r.TextureCrop,r.Tint,r.Transform,r.Visible,o],initialize:function(t,e,i,n,o){s.call(this,t,"Sprite"),this._crop=this.resetCropObject(),this.anims=new r.Animation(this),this.setTexture(n,o),this.setPosition(e,i),this.setSizeToFrame(),this.setOriginFromFrame(),this.initPipeline()},preUpdate:function(t,e){this.anims.update(t,e)},play:function(t,e,i){return this.anims.play(t,e,i),this},toJSON:function(){return r.ToJSON(this)},preDestroy:function(){this.anims.destroy(),this.anims=void 0}});t.exports=a},29877:t=>{t.exports=function(t,e,i,n,r){t.batchSprite(e,e.frame,n,r)}},69045:(t,e,i)=>{var n=i(74865),r=i(4777),s=i(17517),o=i(57687),a=i(95681);s.register("sprite",(function(t,e){void 0===t&&(t={});var i=o(t,"key",null),s=o(t,"frame",null),h=new a(this.scene,0,0,i,s);return void 0!==e&&(t.add=e),n(this.scene,h,t),r(h,t),h}))},88984:(t,e,i)=>{var n=i(81342),r=i(95681);n.register("sprite",(function(t,e,i,n){var s=new r(this.scene,t,e,i,n);return this.displayList.add(s),this.updateList.add(s),s}))},80244:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(972),r=i(29877),t.exports={renderWebGL:n,renderCanvas:r}},972:t=>{t.exports=function(t,e,i,n,r){this.pipeline.batchSprite(e,n,r)}},2307:t=>{t.exports=function(t,e,i){var n=t.canvas,r=t.context,s=t.style,o=[],a=0,h=i.length;s.maxLines>0&&s.maxLines<i.length&&(h=s.maxLines),s.syncFont(n,r);for(var u=0;u<h;u++){var l=s.strokeThickness;l+=r.measureText(i[u]).width,s.wordWrap&&(l-=r.measureText(" ").width),o[u]=Math.ceil(l),a=Math.max(a,o[u])}var c=e.fontSize+s.strokeThickness,d=c*h,p=t.lineSpacing;return h>1&&(d+=p*(h-1)),{width:a,height:d,lines:h,lineWidths:o,lineSpacing:p,lineHeight:c}}},86300:(t,e,i)=>{var n=i(89429);t.exports=function(t){var e=n.create(this),i=e.getContext("2d");t.syncFont(e,i);var r=Math.ceil(i.measureText(t.testString).width*t.baselineX),s=r,o=2*s;s=s*t.baselineY|0,e.width=r,e.height=o,i.fillStyle="#f00",i.fillRect(0,0,r,o),i.font=t._font,i.textBaseline="alphabetic",i.fillStyle="#000",i.fillText(t.testString,0,s);var a={ascent:0,descent:0,fontSize:0};if(!i.getImageData(0,0,r,o))return a.ascent=s,a.descent=s+6,a.fontSize=a.ascent+a.descent,n.remove(e),a;var h,u,l=i.getImageData(0,0,r,o).data,c=l.length,d=4*r,p=0,f=!1;for(h=0;h<s;h++){for(u=0;u<d;u+=4)if(255!==l[p+u]){f=!0;break}if(f)break;p+=d}for(a.ascent=s-h,p=c-d,f=!1,h=o;h>s;h--){for(u=0;u<d;u+=4)if(255!==l[p+u]){f=!0;break}if(f)break;p-=d}return a.descent=h-s,a.fontSize=a.ascent+a.descent,n.remove(e),a}},68982:(t,e,i)=>{var n=i(47379),r=i(57687),s=i(86652),o=i(86300),a={fontFamily:["fontFamily","Courier"],fontSize:["fontSize","16px"],fontStyle:["fontStyle",""],backgroundColor:["backgroundColor",null],color:["color","#fff"],stroke:["stroke","#fff"],strokeThickness:["strokeThickness",0],shadowOffsetX:["shadow.offsetX",0],shadowOffsetY:["shadow.offsetY",0],shadowColor:["shadow.color","#000"],shadowBlur:["shadow.blur",0],shadowStroke:["shadow.stroke",!1],shadowFill:["shadow.fill",!1],align:["align","left"],maxLines:["maxLines",0],fixedWidth:["fixedWidth",0],fixedHeight:["fixedHeight",0],resolution:["resolution",0],rtl:["rtl",!1],testString:["testString","|M\xc3\u2030qgy"],baselineX:["baselineX",1.2],baselineY:["baselineY",1.4],wordWrapWidth:["wordWrap.width",null],wordWrapCallback:["wordWrap.callback",null],wordWrapCallbackScope:["wordWrap.callbackScope",null],wordWrapUseAdvanced:["wordWrap.useAdvancedWrap",!1]},h=new n({initialize:function(t,e){this.parent=t,this.fontFamily,this.fontSize,this.fontStyle,this.backgroundColor,this.color,this.stroke,this.strokeThickness,this.shadowOffsetX,this.shadowOffsetY,this.shadowColor,this.shadowBlur,this.shadowStroke,this.shadowFill,this.align,this.maxLines,this.fixedWidth,this.fixedHeight,this.resolution,this.rtl,this.testString,this.baselineX,this.baselineY,this._font,this.setStyle(e,!1,!0);var i=s(e,"metrics",!1);this.metrics=i?{ascent:s(i,"ascent",0),descent:s(i,"descent",0),fontSize:s(i,"fontSize",0)}:o(this)},setStyle:function(t,e,i){for(var n in void 0===e&&(e=!0),void 0===i&&(i=!1),t&&t.hasOwnProperty("fontSize")&&"number"==typeof t.fontSize&&(t.fontSize=t.fontSize.toString()+"px"),a){var o=i?a[n][1]:this[n];this[n]="wordWrapCallback"===n||"wordWrapCallbackScope"===n?s(t,a[n][0],o):r(t,a[n][0],o)}var h=s(t,"font",null);null!==h&&this.setFont(h,!1),this._font=[this.fontStyle,this.fontSize,this.fontFamily].join(" ").trim();var u=s(t,"fill",null);return null!==u&&(this.color=u),e?this.update(!0):this.parent},syncFont:function(t,e){e.font=this._font},syncStyle:function(t,e){e.textBaseline="alphabetic",e.fillStyle=this.color,e.strokeStyle=this.stroke,e.lineWidth=this.strokeThickness,e.lineCap="round",e.lineJoin="round"},syncShadow:function(t,e){e?(t.shadowOffsetX=this.shadowOffsetX,t.shadowOffsetY=this.shadowOffsetY,t.shadowColor=this.shadowColor,t.shadowBlur=this.shadowBlur):(t.shadowOffsetX=0,t.shadowOffsetY=0,t.shadowColor=0,t.shadowBlur=0)},update:function(t){return t&&(this._font=[this.fontStyle,this.fontSize,this.fontFamily].join(" ").trim(),this.metrics=o(this)),this.parent.updateText()},setFont:function(t,e){void 0===e&&(e=!0);var i=t,n="",r="";if("string"!=typeof t)i=s(t,"fontFamily","Courier"),n=s(t,"fontSize","16px"),r=s(t,"fontStyle","");else{var o=t.split(" "),a=0;r=o.length>2?o[a++]:"",n=o[a++]||"16px",i=o[a++]||"Courier"}return i===this.fontFamily&&n===this.fontSize&&r===this.fontStyle||(this.fontFamily=i,this.fontSize=n,this.fontStyle=r,e&&this.update(!0)),this.parent},setFontFamily:function(t){return this.fontFamily!==t&&(this.fontFamily=t,this.update(!0)),this.parent},setFontStyle:function(t){return this.fontStyle!==t&&(this.fontStyle=t,this.update(!0)),this.parent},setFontSize:function(t){return"number"==typeof t&&(t=t.toString()+"px"),this.fontSize!==t&&(this.fontSize=t,this.update(!0)),this.parent},setTestString:function(t){return this.testString=t,this.update(!0)},setFixedSize:function(t,e){return this.fixedWidth=t,this.fixedHeight=e,t&&(this.parent.width=t),e&&(this.parent.height=e),this.update(!1)},setBackgroundColor:function(t){return this.backgroundColor=t,this.update(!1)},setFill:function(t){return this.color=t,this.update(!1)},setColor:function(t){return this.color=t,this.update(!1)},setResolution:function(t){return this.resolution=t,this.update(!1)},setStroke:function(t,e){return void 0===e&&(e=this.strokeThickness),void 0===t&&0!==this.strokeThickness?(this.strokeThickness=0,this.update(!0)):this.stroke===t&&this.strokeThickness===e||(this.stroke=t,this.strokeThickness=e,this.update(!0)),this.parent},setShadow:function(t,e,i,n,r,s){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i="#000"),void 0===n&&(n=0),void 0===r&&(r=!1),void 0===s&&(s=!0),this.shadowOffsetX=t,this.shadowOffsetY=e,this.shadowColor=i,this.shadowBlur=n,this.shadowStroke=r,this.shadowFill=s,this.update(!1)},setShadowOffset:function(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this.shadowOffsetX=t,this.shadowOffsetY=e,this.update(!1)},setShadowColor:function(t){return void 0===t&&(t="#000"),this.shadowColor=t,this.update(!1)},setShadowBlur:function(t){return void 0===t&&(t=0),this.shadowBlur=t,this.update(!1)},setShadowStroke:function(t){return this.shadowStroke=t,this.update(!1)},setShadowFill:function(t){return this.shadowFill=t,this.update(!1)},setWordWrapWidth:function(t,e){return void 0===e&&(e=!1),this.wordWrapWidth=t,this.wordWrapUseAdvanced=e,this.update(!1)},setWordWrapCallback:function(t,e){return void 0===e&&(e=null),this.wordWrapCallback=t,this.wordWrapCallbackScope=e,this.update(!1)},setAlign:function(t){return void 0===t&&(t="left"),this.align=t,this.update(!1)},setMaxLines:function(t){return void 0===t&&(t=0),this.maxLines=t,this.update(!1)},getTextMetrics:function(){var t=this.metrics;return{ascent:t.ascent,descent:t.descent,fontSize:t.fontSize}},toJSON:function(){var t={};for(var e in a)t[e]=this[e];return t.metrics=this.getTextMetrics(),t},destroy:function(){this.parent=void 0}});t.exports=h},52986:(t,e,i)=>{var n=i(99641),r=i(89429),s=i(47379),o=i(23096),a=i(80827),h=i(90554),u=i(2307),l=i(86652),c=i(68791),d=i(98889),p=i(68982),f=new s({Extends:h,Mixins:[o.Alpha,o.BlendMode,o.ComputedSize,o.Crop,o.Depth,o.Flip,o.GetBounds,o.Mask,o.Origin,o.Pipeline,o.ScrollFactor,o.Tint,o.Transform,o.Visible,d],initialize:function(t,e,i,n,s){void 0===e&&(e=0),void 0===i&&(i=0),h.call(this,t,"Text"),this.renderer=t.sys.game.renderer,this.setPosition(e,i),this.setOrigin(0,0),this.initPipeline(),this.canvas=r.create(this),this.context=this.canvas.getContext("2d"),this.style=new p(this,s),this.autoRound=!0,this.splitRegExp=/(?:\r\n|\r|\n)/,this._text=void 0,this.padding={left:0,right:0,top:0,bottom:0},this.width=1,this.height=1,this.lineSpacing=0,this.dirty=!1,0===this.style.resolution&&(this.style.resolution=t.sys.game.config.resolution),this._crop=this.resetCropObject(),this.texture=t.sys.textures.addCanvas(null,this.canvas,!0),this.frame=this.texture.get(),this.frame.source.resolution=this.style.resolution,this.renderer&&this.renderer.gl&&(this.renderer.deleteTexture(this.frame.source.glTexture),this.frame.source.glTexture=null),this.initRTL(),this.setText(n),s&&s.padding&&this.setPadding(s.padding),s&&s.lineSpacing&&this.setLineSpacing(s.lineSpacing),t.sys.game.events.on(a.CONTEXT_RESTORED,(function(){this.dirty=!0}),this)},initRTL:function(){this.style.rtl&&(this.canvas.dir="rtl",this.context.direction="rtl",this.canvas.style.display="none",n(this.canvas,this.scene.sys.canvas),this.originX=1)},runWordWrap:function(t){var e=this.style;if(e.wordWrapCallback){var i=e.wordWrapCallback.call(e.wordWrapCallbackScope,t,this);return Array.isArray(i)&&(i=i.join("\n")),i}return e.wordWrapWidth?e.wordWrapUseAdvanced?this.advancedWordWrap(t,this.context,this.style.wordWrapWidth):this.basicWordWrap(t,this.context,this.style.wordWrapWidth):t},advancedWordWrap:function(t,e,i){for(var n="",r=t.replace(/ +/gi," ").split(this.splitRegExp),s=r.length,o=0;o<s;o++){var a=r[o],h="";if(a=a.replace(/^ *|\s*$/gi,""),e.measureText(a).width<i)n+=a+"\n";else{for(var u=i,l=a.split(" "),c=0;c<l.length;c++){var d=l[c],p=d+" ",f=e.measureText(p).width;if(f>u){if(0===c){for(var m=p;m.length&&(m=m.slice(0,-1),!((f=e.measureText(m).width)<=u)););if(!m.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var v=d.substr(m.length);l[c]=v,h+=m}var g=l[c].length?c:c+1,y=l.slice(g).join(" ").replace(/[ \n]*$/gi,"");r[o+1]=y+" "+(r[o+1]||""),s=r.length;break}h+=p,u-=f}n+=h.replace(/[ \n]*$/gi,"")+"\n"}}return n=n.replace(/[\s|\n]*$/gi,"")},basicWordWrap:function(t,e,i){for(var n="",r=t.split(this.splitRegExp),s=r.length-1,o=e.measureText(" ").width,a=0;a<=s;a++){for(var h=i,u=r[a].split(" "),l=u.length-1,c=0;c<=l;c++){var d=u[c],p=e.measureText(d).width,f=p+o;f>h&&c>0&&(n+="\n",h=i),n+=d,c<l?(n+=" ",h-=f):h-=p}a<s&&(n+="\n")}return n},getWrappedText:function(t){return void 0===t&&(t=this._text),this.style.syncFont(this.canvas,this.context),this.runWordWrap(t).split(this.splitRegExp)},setText:function(t){return t||0===t||(t=""),Array.isArray(t)&&(t=t.join("\n")),t!==this._text&&(this._text=t.toString(),this.updateText()),this},setStyle:function(t){return this.style.setStyle(t)},setFont:function(t){return this.style.setFont(t)},setFontFamily:function(t){return this.style.setFontFamily(t)},setFontSize:function(t){return this.style.setFontSize(t)},setFontStyle:function(t){return this.style.setFontStyle(t)},setFixedSize:function(t,e){return this.style.setFixedSize(t,e)},setBackgroundColor:function(t){return this.style.setBackgroundColor(t)},setFill:function(t){return this.style.setFill(t)},setColor:function(t){return this.style.setColor(t)},setStroke:function(t,e){return this.style.setStroke(t,e)},setShadow:function(t,e,i,n,r,s){return this.style.setShadow(t,e,i,n,r,s)},setShadowOffset:function(t,e){return this.style.setShadowOffset(t,e)},setShadowColor:function(t){return this.style.setShadowColor(t)},setShadowBlur:function(t){return this.style.setShadowBlur(t)},setShadowStroke:function(t){return this.style.setShadowStroke(t)},setShadowFill:function(t){return this.style.setShadowFill(t)},setWordWrapWidth:function(t,e){return this.style.setWordWrapWidth(t,e)},setWordWrapCallback:function(t,e){return this.style.setWordWrapCallback(t,e)},setAlign:function(t){return this.style.setAlign(t)},setResolution:function(t){return this.style.setResolution(t)},setLineSpacing:function(t){return this.lineSpacing=t,this.updateText()},setPadding:function(t,e,i,n){if("object"==typeof t){var r=t,s=l(r,"x",null);null!==s?(t=s,i=s):(t=l(r,"left",0),i=l(r,"right",t));var o=l(r,"y",null);null!==o?(e=o,n=o):(e=l(r,"top",0),n=l(r,"bottom",e))}else void 0===t&&(t=0),void 0===e&&(e=t),void 0===i&&(i=t),void 0===n&&(n=e);return this.padding.left=t,this.padding.top=e,this.padding.right=i,this.padding.bottom=n,this.updateText()},setMaxLines:function(t){return this.style.setMaxLines(t)},updateText:function(){var t=this.canvas,e=this.context,i=this.style,n=i.resolution,r=i.metrics;i.syncFont(t,e);var s=this._text;(i.wordWrapWidth||i.wordWrapCallback)&&(s=this.runWordWrap(this._text));var o,a=s.split(this.splitRegExp),h=u(this,r,a),l=this.padding;0===i.fixedWidth?(this.width=h.width+l.left+l.right,o=h.width):(this.width=i.fixedWidth,(o=this.width-l.left-l.right)<h.width&&(o=h.width)),0===i.fixedHeight?this.height=h.height+l.top+l.bottom:this.height=i.fixedHeight;var c,d,p=this.width,f=this.height;this.updateDisplayOrigin(),p*=n,f*=n,p=Math.max(p,1),f=Math.max(f,1),t.width!==p||t.height!==f?(t.width=p,t.height=f,this.frame.setSize(p,f),i.syncFont(t,e)):e.clearRect(0,0,p,f),e.save(),e.scale(n,n),i.backgroundColor&&(e.fillStyle=i.backgroundColor,e.fillRect(0,0,p,f)),i.syncStyle(t,e),e.textBaseline="alphabetic",e.translate(l.left,l.top);for(var m=0;m<h.lines;m++){if(c=i.strokeThickness/2,d=i.strokeThickness/2+m*h.lineHeight+r.ascent,m>0&&(d+=h.lineSpacing*m),i.rtl)c=p-c;else if("right"===i.align)c+=o-h.lineWidths[m];else if("center"===i.align)c+=(o-h.lineWidths[m])/2;else if("justify"===i.align){if(h.lineWidths[m]/h.width>=.85){var v=h.width-h.lineWidths[m],g=e.measureText(" ").width,y=a[m].trim(),_=y.split(" ");v+=(a[m].length-y.length)*g;for(var x=Math.floor(v/g),b=0;x>0;)_[b]+=" ",b=(b+1)%(_.length-1||1),--x;a[m]=_.join(" ")}}this.autoRound&&(c=Math.round(c),d=Math.round(d)),i.strokeThickness&&(this.style.syncShadow(e,i.shadowStroke),e.strokeText(a[m],c,d)),i.color&&(this.style.syncShadow(e,i.shadowFill),e.fillText(a[m],c,d))}e.restore(),this.renderer&&this.renderer.gl&&(this.frame.source.glTexture=this.renderer.canvasToTexture(t,this.frame.source.glTexture,!0),this.frame.glTexture=this.frame.source.glTexture),this.dirty=!0;var w=this.input;return w&&!w.customHitArea&&(w.hitArea.width=this.width,w.hitArea.height=this.height),this},getTextMetrics:function(){return this.style.getTextMetrics()},text:{get:function(){return this._text},set:function(t){this.setText(t)}},toJSON:function(){var t=o.ToJSON(this),e={autoRound:this.autoRound,text:this._text,style:this.style.toJSON(),padding:{left:this.padding.left,right:this.padding.right,top:this.padding.top,bottom:this.padding.bottom}};return t.data=e,t},preDestroy:function(){this.style.rtl&&c(this.canvas),r.remove(this.canvas),this.texture.destroy()}});t.exports=f},72200:t=>{t.exports=function(t,e,i,n,r){0!==e.width&&0!==e.height&&t.batchSprite(e,e.frame,n,r)}},19086:(t,e,i)=>{var n=i(74865),r=i(17517),s=i(57687),o=i(52986);r.register("text",(function(t,e){void 0===t&&(t={});var i=s(t,"text",""),r=s(t,"style",null),a=s(t,"padding",null);null!==a&&(r.padding=a);var h=new o(this.scene,0,0,i,r);return void 0!==e&&(t.add=e),n(this.scene,h,t),h.autoRound=s(t,"autoRound",!0),h.resolution=s(t,"resolution",1),h}))},44229:(t,e,i)=>{var n=i(52986);i(81342).register("text",(function(t,e,i,r){return this.displayList.add(new n(this.scene,t,e,i,r))}))},98889:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(81277),r=i(72200),t.exports={renderWebGL:n,renderCanvas:r}},81277:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){if(0!==e.width&&0!==e.height){var o=e.frame,a=o.width,h=o.height,u=n.getTintAppendFloatAlpha;this.pipeline.batchTexture(e,o.glTexture,a,h,e.x,e.y,a/e.style.resolution,h/e.style.resolution,e.scaleX,e.scaleY,e.rotation,e.flipX,e.flipY,e.scrollFactorX,e.scrollFactorY,e.displayOriginX,e.displayOriginY,0,0,a,h,u(e._tintTL,r.alpha*e._alphaTL),u(e._tintTR,r.alpha*e._alphaTR),u(e._tintBL,r.alpha*e._alphaBL),u(e._tintBR,r.alpha*e._alphaBR),e._isTinted&&e.tintFill,0,0,r,s)}}},20003:(t,e,i)=>{var n=i(89429),r=i(47379),s=i(23096),o=i(80827),a=i(90554),h=i(60712),u=i(505),l=i(8914),c=i(57148),d=new r({Extends:a,Mixins:[s.Alpha,s.BlendMode,s.ComputedSize,s.Crop,s.Depth,s.Flip,s.GetBounds,s.Mask,s.Origin,s.Pipeline,s.ScrollFactor,s.Tint,s.Transform,s.Visible,l],initialize:function(t,e,i,r,s,u,l){var d=t.sys.game.renderer;a.call(this,t,"TileSprite");var p=t.sys.textures.get(u),f=p.get(l);r&&s?(r=Math.floor(r),s=Math.floor(s)):(r=f.width,s=f.height),this._tilePosition=new c,this._tileScale=new c(1,1),this.dirty=!1,this.renderer=d,this.canvas=n.create(this,r,s),this.context=this.canvas.getContext("2d"),this.displayTexture=p,this.displayFrame=f,this._crop=this.resetCropObject(),this.texture=t.sys.textures.addCanvas(null,this.canvas,!0),this.frame=this.texture.get(),this.potWidth=h(f.width),this.potHeight=h(f.height),this.fillCanvas=n.create2D(this,this.potWidth,this.potHeight),this.fillContext=this.fillCanvas.getContext("2d"),this.fillPattern=null,this.setPosition(e,i),this.setSize(r,s),this.setFrame(l),this.setOriginFromFrame(),this.initPipeline(),t.sys.game.events.on(o.CONTEXT_RESTORED,(function(t){var e=t.gl;this.dirty=!0,this.fillPattern=null,this.fillPattern=t.createTexture2D(0,e.LINEAR,e.LINEAR,e.REPEAT,e.REPEAT,e.RGBA,this.fillCanvas,this.potWidth,this.potHeight)}),this)},setTexture:function(t,e){return this.displayTexture=this.scene.sys.textures.get(t),this.setFrame(e)},setFrame:function(t){var e=this.displayTexture.get(t);return this.potWidth=h(e.width),this.potHeight=h(e.height),this.canvas.width=0,e.cutWidth&&e.cutHeight?this.renderFlags|=8:this.renderFlags&=-9,this.displayFrame=e,this.dirty=!0,this.updateTileTexture(),this},setTilePosition:function(t,e){return void 0!==t&&(this.tilePositionX=t),void 0!==e&&(this.tilePositionY=e),this},setTileScale:function(t,e){return void 0===t&&(t=this.tileScaleX),void 0===e&&(e=t),this.tileScaleX=t,this.tileScaleY=e,this},updateTileTexture:function(){if(this.dirty&&this.renderer){var t=this.displayFrame;if(t.source.isRenderTexture||t.source.isGLTexture)return console.warn("TileSprites can only use Image or Canvas based textures"),void(this.dirty=!1);var e=this.fillContext,i=this.fillCanvas,n=this.potWidth,r=this.potHeight;this.renderer.gl||(n=t.cutWidth,r=t.cutHeight),e.clearRect(0,0,n,r),i.width=n,i.height=r,e.drawImage(t.source.image,t.cutX,t.cutY,t.cutWidth,t.cutHeight,0,0,n,r),this.renderer.gl?this.fillPattern=this.renderer.canvasToTexture(i,this.fillPattern):this.fillPattern=e.createPattern(i,"repeat"),this.updateCanvas(),this.dirty=!1}},updateCanvas:function(){var t=this.canvas;if(t.width===this.width&&t.height===this.height||(t.width=this.width,t.height=this.height,this.frame.setSize(this.width,this.height),this.updateDisplayOrigin(),this.dirty=!0),!this.dirty||this.renderer&&this.renderer.gl)this.dirty=!1;else{var e=this.context;this.scene.sys.game.config.antialias||u.disable(e);var i=this._tileScale.x,n=this._tileScale.y,r=this._tilePosition.x,s=this._tilePosition.y;e.clearRect(0,0,this.width,this.height),e.save(),e.scale(i,n),e.translate(-r,-s),e.fillStyle=this.fillPattern,e.fillRect(r,s,this.width/i,this.height/n),e.restore(),this.dirty=!1}},preDestroy:function(){this.renderer&&this.renderer.gl&&this.renderer.deleteTexture(this.fillPattern),n.remove(this.canvas),n.remove(this.fillCanvas),this.fillPattern=null,this.fillContext=null,this.fillCanvas=null,this.displayTexture=null,this.displayFrame=null,this.texture.destroy(),this.renderer=null},tilePositionX:{get:function(){return this._tilePosition.x},set:function(t){this._tilePosition.x=t,this.dirty=!0}},tilePositionY:{get:function(){return this._tilePosition.y},set:function(t){this._tilePosition.y=t,this.dirty=!0}},tileScaleX:{get:function(){return this._tileScale.x},set:function(t){this._tileScale.x=t,this.dirty=!0}},tileScaleY:{get:function(){return this._tileScale.y},set:function(t){this._tileScale.y=t,this.dirty=!0}}});t.exports=d},4019:t=>{t.exports=function(t,e,i,n,r){e.updateCanvas(),t.batchSprite(e,e.frame,n,r)}},94938:(t,e,i)=>{var n=i(74865),r=i(17517),s=i(57687),o=i(20003);r.register("tileSprite",(function(t,e){void 0===t&&(t={});var i=s(t,"x",0),r=s(t,"y",0),a=s(t,"width",512),h=s(t,"height",512),u=s(t,"key",""),l=s(t,"frame",""),c=new o(this.scene,i,r,a,h,u,l);return void 0!==e&&(t.add=e),n(this.scene,c,t),c}))},26241:(t,e,i)=>{var n=i(20003);i(81342).register("tileSprite",(function(t,e,i,r,s,o){return this.displayList.add(new n(this.scene,t,e,i,r,s,o))}))},8914:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(46661),r=i(4019),t.exports={renderWebGL:n,renderCanvas:r}},46661:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r,s){e.updateCanvas();var o=n.getTintAppendFloatAlpha;this.pipeline.batchTexture(e,e.fillPattern,e.displayFrame.width*e.tileScaleX,e.displayFrame.height*e.tileScaleY,e.x,e.y,e.width,e.height,e.scaleX,e.scaleY,e.rotation,e.flipX,e.flipY,e.scrollFactorX,e.scrollFactorY,e.originX*e.width,e.originY*e.height,0,0,e.width,e.height,o(e._tintTL,r.alpha*e._alphaTL),o(e._tintTR,r.alpha*e._alphaTR),o(e._tintBL,r.alpha*e._alphaBL),o(e._tintBR,r.alpha*e._alphaBR),e._isTinted&&e.tintFill,e.tilePositionX%e.displayFrame.width/e.displayFrame.width,e.tilePositionY%e.displayFrame.height/e.displayFrame.height,r,s)}},44336:(t,e,i)=>{var n=i(47379),r=i(90487),s=i(23096),o=i(6783),a=i(80827),h=i(90554),u=i(71700),l=i(31027),c=i(60519),d=i(14302),p=new n({Extends:h,Mixins:[s.Alpha,s.BlendMode,s.Depth,s.Flip,s.GetBounds,s.Mask,s.Origin,s.Pipeline,s.ScrollFactor,s.Size,s.TextureCrop,s.Tint,s.Transform,s.Visible,c],initialize:function(t,e,i,n){h.call(this,t,"Video"),this.video=null,this.videoTexture=null,this.videoTextureSource=null,this.snapshotTexture=null,this.flipY=!1,this._key=l(),this.touchLocked=!0,this.playWhenUnlocked=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._systemMuted=!1,this._codeMuted=!1,this._systemPaused=!1,this._codePaused=!1,this._callbacks={play:this.playHandler.bind(this),error:this.loadErrorHandler.bind(this),end:this.completeHandler.bind(this),time:this.timeUpdateHandler.bind(this),seeking:this.seekingHandler.bind(this),seeked:this.seekedHandler.bind(this)},this._crop=this.resetCropObject(),this.markers={},this._markerIn=-1,this._markerOut=d.MAX_SAFE_INTEGER,this._lastUpdate=0,this._cacheKey="",this._isSeeking=!1,this.removeVideoElementOnDestroy=!1,this.setPosition(e,i),this.initPipeline(),n&&this.changeSource(n,!1);var r=t.sys.game.events;r.on(a.PAUSE,this.globalPause,this),r.on(a.RESUME,this.globalResume,this);var s=t.sys.sound;s&&s.on(u.GLOBAL_MUTE,this.globalMute,this)},play:function(t,e,i){if(this.touchLocked&&this.playWhenUnlocked||this.isPlaying())return this;var n=this.video;if(!n)return console.warn("Video not loaded"),this;void 0===t&&(t=n.loop);var r=this.scene.sys.sound;r&&r.mute&&this.setMute(!0),isNaN(e)||(this._markerIn=e),!isNaN(i)&&i>e&&(this._markerOut=i),n.loop=t;var s=this._callbacks,o=n.play();return void 0!==o?o.then(this.playPromiseSuccessHandler.bind(this)).catch(this.playPromiseErrorHandler.bind(this)):(n.addEventListener("playing",s.play,!0),n.readyState<2&&(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval))),n.addEventListener("ended",s.end,!0),n.addEventListener("timeupdate",s.time,!0),n.addEventListener("seeking",s.seeking,!0),n.addEventListener("seeked",s.seeked,!0),this},changeSource:function(t,e,i,n,r){void 0===e&&(e=!0),this.video&&this.stop();var s=this.scene.sys.cache.video.get(t);return s?(this.video=s,this._cacheKey=t,this._codePaused=s.paused,this._codeMuted=s.muted,this.videoTexture?(this.scene.sys.textures.remove(this._key),this.videoTexture=this.scene.sys.textures.create(this._key,s,s.videoWidth,s.videoHeight),this.videoTextureSource=this.videoTexture.source[0],this.videoTexture.add("__BASE",0,0,0,s.videoWidth,s.videoHeight),this.setTexture(this.videoTexture),this.setSizeToFrame(),this.updateDisplayOrigin(),this.emit(o.VIDEO_CREATED,this,s.videoWidth,s.videoHeight)):this.updateTexture(),s.currentTime=0,this._lastUpdate=0,e&&this.play(i,n,r)):this.video=null,this},addMarker:function(t,e,i){return!isNaN(e)&&e>=0&&!isNaN(i)&&(this.markers[t]=[e,i]),this},playMarker:function(t,e){var i=this.markers[t];return i&&this.play(e,i[0],i[1]),this},removeMarker:function(t){return delete this.markers[t],this},snapshot:function(t,e){return void 0===t&&(t=this.width),void 0===e&&(e=this.height),this.snapshotArea(0,0,this.width,this.height,t,e)},snapshotArea:function(t,e,i,n,r,s){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=this.width),void 0===n&&(n=this.height),void 0===r&&(r=i),void 0===s&&(s=n);var o=this.video,a=this.snapshotTexture;return a?(a.setSize(r,s),o&&a.context.drawImage(o,t,e,i,n,0,0,r,s)):(a=this.scene.sys.textures.createCanvas(l(),r,s),this.snapshotTexture=a,o&&a.context.drawImage(o,t,e,i,n,0,0,r,s)),a.update()},saveSnapshotTexture:function(t){return this.snapshotTexture?this.scene.sys.textures.renameTexture(this.snapshotTexture.key,t):this.snapshotTexture=this.scene.sys.textures.createCanvas(t,this.width,this.height),this.snapshotTexture},loadURL:function(t,e,i){void 0===e&&(e="loadeddata"),void 0===i&&(i=!1),this.video&&this.stop(),this.videoTexture&&this.scene.sys.textures.remove(this._key);var n=document.createElement("video");return n.controls=!1,i&&(n.muted=!0,n.defaultMuted=!0,n.setAttribute("autoplay","autoplay")),n.setAttribute("playsinline","playsinline"),n.setAttribute("preload","auto"),n.addEventListener("error",this._callbacks.error,!0),n.src=t,n.load(),this.video=n,this},playPromiseSuccessHandler:function(){this.touchLocked=!1,this.emit(o.VIDEO_PLAY,this),this._markerIn>-1&&(this.video.currentTime=this._markerIn)},playPromiseErrorHandler:function(t){this.scene.sys.input.once("pointerdown",this.unlockHandler,this),this.touchLocked=!0,this.playWhenUnlocked=!0,this.emit(o.VIDEO_ERROR,this,t)},playHandler:function(){this.touchLocked=!1,this.emit(o.VIDEO_PLAY,this),this.video.removeEventListener("playing",this._callbacks.play,!0)},loadErrorHandler:function(t){this.stop(),this.emit(o.VIDEO_ERROR,this,t)},unlockHandler:function(){this.touchLocked=!1,this.playWhenUnlocked=!1,this.emit(o.VIDEO_UNLOCKED,this),this._markerIn>-1&&(this.video.currentTime=this._markerIn),this.video.play(),this.emit(o.VIDEO_PLAY,this)},completeHandler:function(){this.emit(o.VIDEO_COMPLETE,this)},timeUpdateHandler:function(){this.video&&this.video.currentTime<this._lastUpdate&&(this.emit(o.VIDEO_LOOP,this),this._lastUpdate=0)},preUpdate:function(){var t=this.video;if(t){var e=t.currentTime;e!==this._lastUpdate&&(this._lastUpdate=e,this.updateTexture(),e>=this._markerOut&&(t.loop?(t.currentTime=this._markerIn,this.updateTexture(),this._lastUpdate=e,this.emit(o.VIDEO_LOOP,this)):(this.emit(o.VIDEO_COMPLETE,this),this.stop())))}},checkVideoProgress:function(){this.video.readyState>=2?this.updateTexture():(this.retry--,this.retry>0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):this.emit(o.VIDEO_TIMEOUT,this))},updateTexture:function(){var t=this.video,e=t.videoWidth,i=t.videoHeight;if(this.videoTexture){var n=this.videoTextureSource;n.source!==t&&(n.source=t,n.width=e,n.height=i),n.update()}else this.videoTexture=this.scene.sys.textures.create(this._key,t,e,i),this.videoTextureSource=this.videoTexture.source[0],this.videoTexture.add("__BASE",0,0,0,e,i),this.setTexture(this.videoTexture),this.setSizeToFrame(),this.updateDisplayOrigin(),this.emit(o.VIDEO_CREATED,this,e,i)},getVideoKey:function(){return this._cacheKey},seekTo:function(t){var e=this.video;if(e){var i=e.duration;if(i!==1/0&&!isNaN(i)){var n=i*t;this.setCurrentTime(n)}}return this},getCurrentTime:function(){return this.video?this.video.currentTime:0},setCurrentTime:function(t){var e=this.video;if(e){if("string"==typeof t){var i=t[0],n=parseFloat(t.substr(1));"+"===i?t=e.currentTime+n:"-"===i&&(t=e.currentTime-n)}e.currentTime=t,this._lastUpdate=t}return this},isSeeking:function(){return this._isSeeking},seekingHandler:function(){this._isSeeking=!0,this.emit(o.VIDEO_SEEKING,this)},seekedHandler:function(){this._isSeeking=!1,this.emit(o.VIDEO_SEEKED,this),this.video&&this.updateTexture()},getProgress:function(){var t=this.video;if(t){var e=t.currentTime,i=t.duration;if(i!==1/0&&!isNaN(i))return e/i}return 0},getDuration:function(){return this.video?this.video.duration:0},setMute:function(t){void 0===t&&(t=!0),this._codeMuted=t;var e=this.video;return e&&(e.muted=!!this._systemMuted||t),this},isMuted:function(){return this._codeMuted},globalMute:function(t,e){this._systemMuted=e;var i=this.video;i&&(i.muted=!!this._codeMuted||e)},globalPause:function(){this._systemPaused=!0,this.video&&this.video.pause()},globalResume:function(){this._systemPaused=!1,this.video&&!this._codePaused&&this.video.play()},setPaused:function(t){void 0===t&&(t=!0);var e=this.video;return this._codePaused=t,e&&(t?e.paused||e.pause():t||e.paused&&!this._systemPaused&&e.play()),this},getVolume:function(){return this.video?this.video.volume:1},setVolume:function(t){return void 0===t&&(t=1),this.video&&(this.video.volume=r(t,0,1)),this},getPlaybackRate:function(){return this.video?this.video.playbackRate:1},setPlaybackRate:function(t){return this.video&&(this.video.playbackRate=t),this},getLoop:function(){return!!this.video&&this.video.loop},setLoop:function(t){return void 0===t&&(t=!0),this.video&&(this.video.loop=t),this},isPlaying:function(){return!!this.video&&!(this.video.paused||this.video.ended)},isPaused:function(){return this.video&&this.video.paused||this._codePaused||this._systemPaused},saveTexture:function(t,e){return void 0===e&&(e=!1),this.videoTexture&&this.scene.sys.textures.renameTexture(this._key,t),this._key=t,this.flipY=e,this.videoTextureSource&&this.videoTextureSource.setFlipY(e),this.videoTexture},stop:function(){var t=this.video;if(t){var e=this._callbacks;for(var i in e)t.removeEventListener(i,e[i],!0);t.pause()}return this._retryID&&window.clearTimeout(this._retryID),this.emit(o.VIDEO_STOP,this),this},removeVideoElement:function(){var t=this.video;if(t){for(t.parentNode&&t.parentNode.removeChild(t);t.hasChildNodes();)t.removeChild(t.firstChild);t.removeAttribute("autoplay"),t.removeAttribute("src"),this.video=null}},preDestroy:function(){this.stop(),this.removeVideoElementOnDestroy&&this.removeVideoElement();var t=this.scene.sys.game.events;t.off(a.PAUSE,this.globalPause,this),t.off(a.RESUME,this.globalResume,this);var e=this.scene.sys.sound;e&&e.off(u.GLOBAL_MUTE,this.globalMute,this),this._retryID&&window.clearTimeout(this._retryID)}});t.exports=p},45319:t=>{t.exports=function(t,e,i,n,r){e.videoTexture&&t.batchSprite(e,e.frame,n,r)}},48200:(t,e,i)=>{var n=i(74865),r=i(17517),s=i(57687),o=i(44336);r.register("video",(function(t,e){void 0===t&&(t={});var i=s(t,"key",null),r=new o(this.scene,0,0,i);return void 0!==e&&(t.add=e),n(this.scene,r,t),r}))},38020:(t,e,i)=>{var n=i(44336);i(81342).register("video",(function(t,e,i){var r=new n(this.scene,t,e,i);return this.displayList.add(r),this.updateList.add(r),r}))},60519:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(97315),r=i(45319),t.exports={renderWebGL:n,renderCanvas:r}},97315:t=>{t.exports=function(t,e,i,n,r){e.videoTexture&&this.pipeline.batchSprite(e,n,r)}},24860:(t,e,i)=>{var n=i(35869),r=i(78265),s=i(59623),o=i(47379),a=i(23096),h=i(90554),u=i(38092),l=i(38593),c=new o({Extends:h,Mixins:[a.Depth,a.GetBounds,a.Origin,a.Transform,a.ScrollFactor,a.Visible],initialize:function(t,e,i,r,s){void 0===r&&(r=1),void 0===s&&(s=r),h.call(this,t,"Zone"),this.setPosition(e,i),this.width=r,this.height=s,this.blendMode=n.NORMAL,this.updateDisplayOrigin()},displayWidth:{get:function(){return this.scaleX*this.width},set:function(t){this.scaleX=t/this.width}},displayHeight:{get:function(){return this.scaleY*this.height},set:function(t){this.scaleY=t/this.height}},setSize:function(t,e,i){void 0===i&&(i=!0),this.width=t,this.height=e,this.updateDisplayOrigin();var n=this.input;return i&&n&&!n.customHitArea&&(n.hitArea.width=t,n.hitArea.height=e),this},setDisplaySize:function(t,e){return this.displayWidth=t,this.displayHeight=e,this},setCircleDropZone:function(t){return this.setDropZone(new r(0,0,t),s)},setRectangleDropZone:function(t,e){return this.setDropZone(new u(0,0,t,e),l)},setDropZone:function(t,e){return void 0===t?this.setRectangleDropZone(this.width,this.height):this.input||this.setInteractive(t,e,!0),this},setAlpha:function(){},setBlendMode:function(){},renderCanvas:function(){},renderWebGL:function(){}});t.exports=c},90932:(t,e,i)=>{var n=i(17517),r=i(57687),s=i(24860);n.register("zone",(function(t){var e=r(t,"x",0),i=r(t,"y",0),n=r(t,"width",1),o=r(t,"height",n);return new s(this.scene,e,i,n,o)}))},3242:(t,e,i)=>{var n=i(24860);i(81342).register("zone",(function(t,e,i,r){return this.displayList.add(new n(this.scene,t,e,i,r))}))},37907:t=>{t.exports=function(t){return t.radius>0?Math.PI*t.radius*t.radius:0}},78265:(t,e,i)=>{var n=i(47379),r=i(59623),s=i(27455),o=i(16469),a=i(67155),h=i(49642),u=new n({initialize:function(t,e,i){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),this.type=a.CIRCLE,this.x=t,this.y=e,this._radius=i,this._diameter=2*i},contains:function(t,e){return r(this,t,e)},getPoint:function(t,e){return s(this,t,e)},getPoints:function(t,e,i){return o(this,t,e,i)},getRandomPoint:function(t){return h(this,t)},setTo:function(t,e,i){return this.x=t,this.y=e,this._radius=i,this._diameter=2*i,this},setEmpty:function(){return this._radius=0,this._diameter=0,this},setPosition:function(t,e){return void 0===e&&(e=t),this.x=t,this.y=e,this},isEmpty:function(){return this._radius<=0},radius:{get:function(){return this._radius},set:function(t){this._radius=t,this._diameter=2*t}},diameter:{get:function(){return this._diameter},set:function(t){this._diameter=t,this._radius=.5*t}},left:{get:function(){return this.x-this._radius},set:function(t){this.x=t+this._radius}},right:{get:function(){return this.x+this._radius},set:function(t){this.x=t-this._radius}},top:{get:function(){return this.y-this._radius},set:function(t){this.y=t+this._radius}},bottom:{get:function(){return this.y+this._radius},set:function(t){this.y=t-this._radius}}});t.exports=u},79610:t=>{t.exports=function(t){return Math.PI*t.radius*2}},91900:(t,e,i)=>{var n=i(40062);t.exports=function(t,e,i){return void 0===i&&(i=new n),i.x=t.x+t.radius*Math.cos(e),i.y=t.y+t.radius*Math.sin(e),i}},85218:(t,e,i)=>{var n=i(78265);t.exports=function(t){return new n(t.x,t.y,t.radius)}},59623:t=>{t.exports=function(t,e,i){return t.radius>0&&e>=t.left&&e<=t.right&&i>=t.top&&i<=t.bottom&&(t.x-e)*(t.x-e)+(t.y-i)*(t.y-i)<=t.radius*t.radius}},61125:(t,e,i)=>{var n=i(59623);t.exports=function(t,e){return n(t,e.x,e.y)}},93778:(t,e,i)=>{var n=i(59623);t.exports=function(t,e){return n(t,e.x,e.y)&&n(t,e.right,e.y)&&n(t,e.x,e.bottom)&&n(t,e.right,e.bottom)}},27903:t=>{t.exports=function(t,e){return e.setTo(t.x,t.y,t.radius)}},78327:t=>{t.exports=function(t,e){return t.x===e.x&&t.y===e.y&&t.radius===e.radius}},26854:(t,e,i)=>{var n=i(38092);t.exports=function(t,e){return void 0===e&&(e=new n),e.x=t.left,e.y=t.top,e.width=t.diameter,e.height=t.diameter,e}},27455:(t,e,i)=>{var n=i(91900),r=i(96210),s=i(14302),o=i(40062);t.exports=function(t,e,i){void 0===i&&(i=new o);var a=r(e,0,s.PI2);return n(t,a,i)}},16469:(t,e,i)=>{var n=i(79610),r=i(91900),s=i(96210),o=i(14302);t.exports=function(t,e,i,a){void 0===a&&(a=[]),!e&&i>0&&(e=n(t)/i);for(var h=0;h<e;h++){var u=s(h/e,0,o.PI2);a.push(r(t,u))}return a}},55195:t=>{t.exports=function(t,e,i){return t.x+=e,t.y+=i,t}},32373:t=>{t.exports=function(t,e){return t.x+=e.x,t.y+=e.y,t}},49642:(t,e,i)=>{var n=i(40062);t.exports=function(t,e){void 0===e&&(e=new n);var i=2*Math.PI*Math.random(),r=Math.random()+Math.random(),s=r>1?2-r:r,o=s*Math.cos(i),a=s*Math.sin(i);return e.x=t.x+o*t.radius,e.y=t.y+a*t.radius,e}},14102:(t,e,i)=>{var n=i(78265);n.Area=i(37907),n.Circumference=i(79610),n.CircumferencePoint=i(91900),n.Clone=i(85218),n.Contains=i(59623),n.ContainsPoint=i(61125),n.ContainsRect=i(93778),n.CopyFrom=i(27903),n.Equals=i(78327),n.GetBounds=i(26854),n.GetPoint=i(27455),n.GetPoints=i(16469),n.Offset=i(55195),n.OffsetPoint=i(32373),n.Random=i(49642),t.exports=n},67155:t=>{t.exports={CIRCLE:0,ELLIPSE:1,LINE:2,POINT:3,POLYGON:4,RECTANGLE:5,TRIANGLE:6}},3220:t=>{t.exports=function(t){return t.isEmpty()?0:t.getMajorRadius()*t.getMinorRadius()*Math.PI}},9978:t=>{t.exports=function(t){var e=t.width/2,i=t.height/2,n=Math.pow(e-i,2)/Math.pow(e+i,2);return Math.PI*(e+i)*(1+3*n/(10+Math.sqrt(4-3*n)))}},59200:(t,e,i)=>{var n=i(40062);t.exports=function(t,e,i){void 0===i&&(i=new n);var r=t.width/2,s=t.height/2;return i.x=t.x+r*Math.cos(e),i.y=t.y+s*Math.sin(e),i}},4116:(t,e,i)=>{var n=i(38341);t.exports=function(t){return new n(t.x,t.y,t.width,t.height)}},12930:t=>{t.exports=function(t,e,i){if(t.width<=0||t.height<=0)return!1;var n=(e-t.x)/t.width,r=(i-t.y)/t.height;return(n*=n)+(r*=r)<.25}},82584:(t,e,i)=>{var n=i(12930);t.exports=function(t,e){return n(t,e.x,e.y)}},81677:(t,e,i)=>{var n=i(12930);t.exports=function(t,e){return n(t,e.x,e.y)&&n(t,e.right,e.y)&&n(t,e.x,e.bottom)&&n(t,e.right,e.bottom)}},95696:t=>{t.exports=function(t,e){return e.setTo(t.x,t.y,t.width,t.height)}},38341:(t,e,i)=>{var n=i(47379),r=i(12930),s=i(68516),o=i(3389),a=i(67155),h=i(6129),u=new n({initialize:function(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),this.type=a.ELLIPSE,this.x=t,this.y=e,this.width=i,this.height=n},contains:function(t,e){return r(this,t,e)},getPoint:function(t,e){return s(this,t,e)},getPoints:function(t,e,i){return o(this,t,e,i)},getRandomPoint:function(t){return h(this,t)},setTo:function(t,e,i,n){return this.x=t,this.y=e,this.width=i,this.height=n,this},setEmpty:function(){return this.width=0,this.height=0,this},setPosition:function(t,e){return void 0===e&&(e=t),this.x=t,this.y=e,this},setSize:function(t,e){return void 0===e&&(e=t),this.width=t,this.height=e,this},isEmpty:function(){return this.width<=0||this.height<=0},getMinorRadius:function(){return Math.min(this.width,this.height)/2},getMajorRadius:function(){return Math.max(this.width,this.height)/2},left:{get:function(){return this.x-this.width/2},set:function(t){this.x=t+this.width/2}},right:{get:function(){return this.x+this.width/2},set:function(t){this.x=t-this.width/2}},top:{get:function(){return this.y-this.height/2},set:function(t){this.y=t+this.height/2}},bottom:{get:function(){return this.y+this.height/2},set:function(t){this.y=t-this.height/2}}});t.exports=u},1459:t=>{t.exports=function(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}},54445:(t,e,i)=>{var n=i(38092);t.exports=function(t,e){return void 0===e&&(e=new n),e.x=t.left,e.y=t.top,e.width=t.width,e.height=t.height,e}},68516:(t,e,i)=>{var n=i(59200),r=i(96210),s=i(14302),o=i(40062);t.exports=function(t,e,i){void 0===i&&(i=new o);var a=r(e,0,s.PI2);return n(t,a,i)}},3389:(t,e,i)=>{var n=i(9978),r=i(59200),s=i(96210),o=i(14302);t.exports=function(t,e,i,a){void 0===a&&(a=[]),!e&&i>0&&(e=n(t)/i);for(var h=0;h<e;h++){var u=s(h/e,0,o.PI2);a.push(r(t,u))}return a}},90608:t=>{t.exports=function(t,e,i){return t.x+=e,t.y+=i,t}},19219:t=>{t.exports=function(t,e){return t.x+=e.x,t.y+=e.y,t}},6129:(t,e,i)=>{var n=i(40062);t.exports=function(t,e){void 0===e&&(e=new n);var i=Math.random()*Math.PI*2,r=Math.sqrt(Math.random());return e.x=t.x+r*Math.cos(i)*t.width/2,e.y=t.y+r*Math.sin(i)*t.height/2,e}},93216:(t,e,i)=>{var n=i(38341);n.Area=i(3220),n.Circumference=i(9978),n.CircumferencePoint=i(59200),n.Clone=i(4116),n.Contains=i(12930),n.ContainsPoint=i(82584),n.ContainsRect=i(81677),n.CopyFrom=i(95696),n.Equals=i(1459),n.GetBounds=i(54445),n.GetPoint=i(68516),n.GetPoints=i(3389),n.Offset=i(90608),n.OffsetPoint=i(19219),n.Random=i(6129),t.exports=n},96285:(t,e,i)=>{var n=i(67155),r=i(80933),s={Circle:i(14102),Ellipse:i(93216),Intersects:i(60583),Line:i(87107),Point:i(38060),Polygon:i(6832),Rectangle:i(35064),Triangle:i(77791)};s=r(!1,s,n),t.exports=s},71011:(t,e,i)=>{var n=i(73587);t.exports=function(t,e){return n(t.x,t.y,e.x,e.y)<=t.radius+e.radius}},90866:t=>{t.exports=function(t,e){var i=e.width/2,n=e.height/2,r=Math.abs(t.x-e.x-i),s=Math.abs(t.y-e.y-n),o=i+t.radius,a=n+t.radius;if(r>o||s>a)return!1;if(r<=i||s<=n)return!0;var h=r-i,u=s-n;return h*h+u*u<=t.radius*t.radius}},16470:(t,e,i)=>{var n=i(40062),r=i(71011);t.exports=function(t,e,i){if(void 0===i&&(i=[]),r(t,e)){var s,o,a,h,u=t.x,l=t.y,c=t.radius,d=e.x,p=e.y,f=e.radius;if(l===p)0===(a=(o=-2*p)*o-4*(s=1)*(d*d+(h=(f*f-c*c-d*d+u*u)/(2*(u-d)))*h-2*d*h+p*p-f*f))?i.push(new n(h,-o/(2*s))):a>0&&(i.push(new n(h,(-o+Math.sqrt(a))/(2*s))),i.push(new n(h,(-o-Math.sqrt(a))/(2*s))));else{var m=(u-d)/(l-p),v=(f*f-c*c-d*d+u*u-p*p+l*l)/(2*(l-p));0===(a=(o=2*l*m-2*v*m-2*u)*o-4*(s=m*m+1)*(u*u+l*l+v*v-c*c-2*l*v))?(h=-o/(2*s),i.push(new n(h,v-h*m))):a>0&&(h=(-o+Math.sqrt(a))/(2*s),i.push(new n(h,v-h*m)),h=(-o-Math.sqrt(a))/(2*s),i.push(new n(h,v-h*m)))}}return i}},53690:(t,e,i)=>{var n=i(18559),r=i(90866);t.exports=function(t,e,i){if(void 0===i&&(i=[]),r(t,e)){var s=e.getLineA(),o=e.getLineB(),a=e.getLineC(),h=e.getLineD();n(s,t,i),n(o,t,i),n(a,t,i),n(h,t,i)}return i}},18559:(t,e,i)=>{var n=i(40062),r=i(82801);t.exports=function(t,e,i){if(void 0===i&&(i=[]),r(t,e)){var s,o,a=t.x1,h=t.y1,u=t.x2,l=t.y2,c=e.x,d=e.y,p=e.radius,f=u-a,m=l-h,v=a-c,g=h-d,y=f*f+m*m,_=2*(f*v+m*g),x=_*_-4*y*(v*v+g*g-p*p);if(0===x){var b=-_/(2*y);s=a+b*f,o=h+b*m,b>=0&&b<=1&&i.push(new n(s,o))}else if(x>0){var w=(-_-Math.sqrt(x))/(2*y);s=a+w*f,o=h+w*m,w>=0&&w<=1&&i.push(new n(s,o));var T=(-_+Math.sqrt(x))/(2*y);s=a+T*f,o=h+T*m,T>=0&&T<=1&&i.push(new n(s,o))}}return i}},49264:(t,e,i)=>{var n=i(40062),r=i(39558),s=i(93403);t.exports=function(t,e,i){if(void 0===i&&(i=[]),s(t,e))for(var o=e.getLineA(),a=e.getLineB(),h=e.getLineC(),u=e.getLineD(),l=[new n,new n,new n,new n],c=[r(o,t,l[0]),r(a,t,l[1]),r(h,t,l[2]),r(u,t,l[3])],d=0;d<4;d++)c[d]&&i.push(l[d]);return i}},1039:(t,e,i)=>{var n=i(38092),r=i(14198);t.exports=function(t,e,i){return void 0===i&&(i=new n),r(t,e)&&(i.x=Math.max(t.x,e.x),i.y=Math.max(t.y,e.y),i.width=Math.min(t.right,e.right)-i.x,i.height=Math.min(t.bottom,e.bottom)-i.y),i}},83150:(t,e,i)=>{var n=i(49264),r=i(14198);t.exports=function(t,e,i){if(void 0===i&&(i=[]),r(t,e)){var s=t.getLineA(),o=t.getLineB(),a=t.getLineC(),h=t.getLineD();n(s,e,i),n(o,e,i),n(a,e,i),n(h,e,i)}return i}},59292:(t,e,i)=>{var n=i(89134),r=i(49264);t.exports=function(t,e,i){if(void 0===i&&(i=[]),n(t,e)){var s=e.getLineA(),o=e.getLineB(),a=e.getLineC();r(s,t,i),r(o,t,i),r(a,t,i)}return i}},74649:(t,e,i)=>{var n=i(18559),r=i(24144);t.exports=function(t,e,i){if(void 0===i&&(i=[]),r(t,e)){var s=t.getLineA(),o=t.getLineB(),a=t.getLineC();n(s,e,i),n(o,e,i),n(a,e,i)}return i}},10858:(t,e,i)=>{var n=i(40062),r=i(61225),s=i(39558);t.exports=function(t,e,i){if(void 0===i&&(i=[]),r(t,e))for(var o=t.getLineA(),a=t.getLineB(),h=t.getLineC(),u=[new n,new n,new n],l=[s(o,e,u[0]),s(a,e,u[1]),s(h,e,u[2])],c=0;c<3;c++)l[c]&&i.push(u[c]);return i}},55116:(t,e,i)=>{var n=i(24888),r=i(10858);t.exports=function(t,e,i){if(void 0===i&&(i=[]),n(t,e)){var s=e.getLineA(),o=e.getLineB(),a=e.getLineC();r(t,s,i),r(t,o,i),r(t,a,i)}return i}},82801:(t,e,i)=>{var n=i(59623),r=new(i(40062));t.exports=function(t,e,i){if(void 0===i&&(i=r),n(e,t.x1,t.y1))return i.x=t.x1,i.y=t.y1,!0;if(n(e,t.x2,t.y2))return i.x=t.x2,i.y=t.y2,!0;var s=t.x2-t.x1,o=t.y2-t.y1,a=e.x-t.x1,h=e.y-t.y1,u=s*s+o*o,l=s,c=o;if(u>0){var d=(a*s+h*o)/u;l*=d,c*=d}return i.x=t.x1+l,i.y=t.y1+c,l*l+c*c<=u&&l*s+c*o>=0&&n(e,i.x,i.y)}},39558:(t,e,i)=>{var n=i(40062);t.exports=function(t,e,i){void 0===i&&(i=new n);var r=t.x1,s=t.y1,o=t.x2,a=t.y2,h=e.x1,u=e.y1,l=e.x2,c=e.y2,d=(c-u)*(o-r)-(l-h)*(a-s);if(0===d)return!1;var p=((l-h)*(s-u)-(c-u)*(r-h))/d,f=((o-r)*(s-u)-(a-s)*(r-h))/d;return p>=0&&p<=1&&f>=0&&f<=1&&(i.x=r+p*(o-r),i.y=s+p*(a-s),!0)}},93403:t=>{t.exports=function(t,e){var i=t.x1,n=t.y1,r=t.x2,s=t.y2,o=e.x,a=e.y,h=e.right,u=e.bottom,l=0;if(i>=o&&i<=h&&n>=a&&n<=u||r>=o&&r<=h&&s>=a&&s<=u)return!0;if(i<o&&r>=o){if((l=n+(s-n)*(o-i)/(r-i))>a&&l<=u)return!0}else if(i>h&&r<=h&&(l=n+(s-n)*(h-i)/(r-i))>=a&&l<=u)return!0;if(n<a&&s>=a){if((l=i+(r-i)*(a-n)/(s-n))>=o&&l<=h)return!0}else if(n>u&&s<=u&&(l=i+(r-i)*(u-n)/(s-n))>=o&&l<=h)return!0;return!1}},9535:t=>{t.exports=function(t,e,i){void 0===i&&(i=1);var n=e.x1,r=e.y1,s=e.x2,o=e.y2,a=t.x,h=t.y,u=(s-n)*(s-n)+(o-r)*(o-r);if(0===u)return!1;var l=((a-n)*(s-n)+(h-r)*(o-r))/u;if(l<0)return Math.sqrt((n-a)*(n-a)+(r-h)*(r-h))<=i;if(l>=0&&l<=1){var c=((r-h)*(s-n)-(n-a)*(o-r))/u;return Math.abs(c)*Math.sqrt(u)<=i}return Math.sqrt((s-a)*(s-a)+(o-h)*(o-h))<=i}},36213:(t,e,i)=>{var n=i(9535);t.exports=function(t,e){if(!n(t,e))return!1;var i=Math.min(e.x1,e.x2),r=Math.max(e.x1,e.x2),s=Math.min(e.y1,e.y2),o=Math.max(e.y1,e.y2);return t.x>=i&&t.x<=r&&t.y>=s&&t.y<=o}},14198:t=>{t.exports=function(t,e){return!(t.width<=0||t.height<=0||e.width<=0||e.height<=0)&&!(t.right<e.x||t.bottom<e.y||t.x>e.right||t.y>e.bottom)}},89134:(t,e,i)=>{var n=i(39558),r=i(38593),s=i(82290),o=i(45109);t.exports=function(t,e){if(e.left>t.right||e.right<t.left||e.top>t.bottom||e.bottom<t.top)return!1;var i=e.getLineA(),a=e.getLineB(),h=e.getLineC();if(r(t,i.x1,i.y1)||r(t,i.x2,i.y2))return!0;if(r(t,a.x1,a.y1)||r(t,a.x2,a.y2))return!0;if(r(t,h.x1,h.y1)||r(t,h.x2,h.y2))return!0;var u=t.getLineA(),l=t.getLineB(),c=t.getLineC(),d=t.getLineD();if(n(i,u)||n(i,l)||n(i,c)||n(i,d))return!0;if(n(a,u)||n(a,l)||n(a,c)||n(a,d))return!0;if(n(h,u)||n(h,l)||n(h,c)||n(h,d))return!0;var p=o(t);return s(e,p,!0).length>0}},61096:t=>{t.exports=function(t,e,i,n,r,s){return void 0===s&&(s=0),!(e>t.right+s||i<t.left-s||n>t.bottom+s||r<t.top-s)}},24144:(t,e,i)=>{var n=i(82801),r=i(92501);t.exports=function(t,e){return!(t.left>e.right||t.right<e.left||t.top>e.bottom||t.bottom<e.top)&&(!!r(t,e.x,e.y)||(!!n(t.getLineA(),e)||(!!n(t.getLineB(),e)||!!n(t.getLineC(),e))))}},61225:(t,e,i)=>{var n=i(92501),r=i(39558);t.exports=function(t,e){return!(!n(t,e.getPointA())&&!n(t,e.getPointB()))||(!!r(t.getLineA(),e)||(!!r(t.getLineB(),e)||!!r(t.getLineC(),e)))}},24888:(t,e,i)=>{var n=i(82290),r=i(17746),s=i(39558);t.exports=function(t,e){if(t.left>e.right||t.right<e.left||t.top>e.bottom||t.bottom<e.top)return!1;var i=t.getLineA(),o=t.getLineB(),a=t.getLineC(),h=e.getLineA(),u=e.getLineB(),l=e.getLineC();if(s(i,h)||s(i,u)||s(i,l))return!0;if(s(o,h)||s(o,u)||s(o,l))return!0;if(s(a,h)||s(a,u)||s(a,l))return!0;var c=r(t),d=n(e,c,!0);return d.length>0||(c=r(e),(d=n(t,c,!0)).length>0)}},60583:(t,e,i)=>{t.exports={CircleToCircle:i(71011),CircleToRectangle:i(90866),GetCircleToCircle:i(16470),GetCircleToRectangle:i(53690),GetLineToCircle:i(18559),GetLineToRectangle:i(49264),GetRectangleIntersection:i(1039),GetRectangleToRectangle:i(83150),GetRectangleToTriangle:i(59292),GetTriangleToCircle:i(74649),GetTriangleToLine:i(10858),GetTriangleToTriangle:i(55116),LineToCircle:i(82801),LineToLine:i(39558),LineToRectangle:i(93403),PointToLine:i(9535),PointToLineSegment:i(36213),RectangleToRectangle:i(14198),RectangleToTriangle:i(89134),RectangleToValues:i(61096),TriangleToCircle:i(24144),TriangleToLine:i(61225),TriangleToTriangle:i(24888)}},57764:t=>{t.exports=function(t){return Math.atan2(t.y2-t.y1,t.x2-t.x1)}},25501:t=>{t.exports=function(t,e,i){void 0===e&&(e=1),void 0===i&&(i=[]);var n=Math.round(t.x1),r=Math.round(t.y1),s=Math.round(t.x2),o=Math.round(t.y2),a=Math.abs(s-n),h=Math.abs(o-r),u=n<s?1:-1,l=r<o?1:-1,c=a-h;i.push({x:n,y:r});for(var d=1;n!==s||r!==o;){var p=c<<1;p>-h&&(c-=h,n+=u),p<a&&(c+=a,r+=l),d%e==0&&i.push({x:n,y:r}),d++}return i}},86724:t=>{t.exports=function(t,e,i){var n=e-(t.x1+t.x2)/2,r=i-(t.y1+t.y2)/2;return t.x1+=n,t.y1+=r,t.x2+=n,t.y2+=r,t}},38114:(t,e,i)=>{var n=i(1137);t.exports=function(t){return new n(t.x1,t.y1,t.x2,t.y2)}},51654:t=>{t.exports=function(t,e){return e.setTo(t.x1,t.y1,t.x2,t.y2)}},88728:t=>{t.exports=function(t,e){return t.x1===e.x1&&t.y1===e.y1&&t.x2===e.x2&&t.y2===e.y2}},50775:(t,e,i)=>{var n=i(53255);t.exports=function(t,e,i){void 0===i&&(i=e);var r=n(t),s=t.x2-t.x1,o=t.y2-t.y1;return e&&(t.x1=t.x1-s/r*e,t.y1=t.y1-o/r*e),i&&(t.x2=t.x2+s/r*i,t.y2=t.y2+o/r*i),t}},2591:(t,e,i)=>{var n=i(25049),r=i(38852),s=i(40062);t.exports=function(t,e,i,o,a){void 0===o&&(o=0),void 0===a&&(a=[]);var h,u,l=[],c=t.x1,d=t.y1,p=t.x2-c,f=t.y2-d,m=r(e,a),v=i-1;for(h=0;h<v;h++)u=m(h/v),l.push(new s(c+p*u,d+f*u));if(u=m(1),l.push(new s(c+p*u,d+f*u)),o>0){var g=l[0],y=[g];for(h=1;h<l.length-1;h++){var _=l[h];n(g,_)>=o&&(y.push(_),g=_)}var x=l[l.length-1];return n(g,x)<o&&y.pop(),y.push(x),y}return l}},92431:(t,e,i)=>{var n=i(40062);t.exports=function(t,e){return void 0===e&&(e=new n),e.x=(t.x1+t.x2)/2,e.y=(t.y1+t.y2)/2,e}},84029:(t,e,i)=>{var n=i(40062);t.exports=function(t,e,i){void 0===i&&(i=new n);var r=t.x1,s=t.y1,o=t.x2,a=t.y2,h=(o-r)*(o-r)+(a-s)*(a-s);if(0===h)return i;var u=((e.x-r)*(o-r)+(e.y-s)*(a-s))/h;return i.x=r+u*(o-r),i.y=s+u*(a-s),i}},11081:(t,e,i)=>{var n=i(14302),r=i(57764),s=i(40062);t.exports=function(t,e){void 0===e&&(e=new s);var i=r(t)-n.TAU;return e.x=Math.cos(i),e.y=Math.sin(i),e}},4652:(t,e,i)=>{var n=i(40062);t.exports=function(t,e,i){return void 0===i&&(i=new n),i.x=t.x1+(t.x2-t.x1)*e,i.y=t.y1+(t.y2-t.y1)*e,i}},63280:(t,e,i)=>{var n=i(53255),r=i(40062);t.exports=function(t,e,i,s){void 0===s&&(s=[]),!e&&i>0&&(e=n(t)/i);for(var o=t.x1,a=t.y1,h=t.x2,u=t.y2,l=0;l<e;l++){var c=l/e,d=o+(h-o)*c,p=a+(u-a)*c;s.push(new r(d,p))}return s}},99726:t=>{t.exports=function(t,e){var i=t.x1,n=t.y1,r=t.x2,s=t.y2,o=(r-i)*(r-i)+(s-n)*(s-n);if(0===o)return!1;var a=((n-e.y)*(r-i)-(i-e.x)*(s-n))/o;return Math.abs(a)*Math.sqrt(o)}},42961:t=>{t.exports=function(t){return Math.abs(t.y1-t.y2)}},53255:t=>{t.exports=function(t){return Math.sqrt((t.x2-t.x1)*(t.x2-t.x1)+(t.y2-t.y1)*(t.y2-t.y1))}},1137:(t,e,i)=>{var n=i(47379),r=i(4652),s=i(63280),o=i(67155),a=i(89357),h=i(57148),u=new n({initialize:function(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),this.type=o.LINE,this.x1=t,this.y1=e,this.x2=i,this.y2=n},getPoint:function(t,e){return r(this,t,e)},getPoints:function(t,e,i){return s(this,t,e,i)},getRandomPoint:function(t){return a(this,t)},setTo:function(t,e,i,n){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),this.x1=t,this.y1=e,this.x2=i,this.y2=n,this},getPointA:function(t){return void 0===t&&(t=new h),t.set(this.x1,this.y1),t},getPointB:function(t){return void 0===t&&(t=new h),t.set(this.x2,this.y2),t},left:{get:function(){return Math.min(this.x1,this.x2)},set:function(t){this.x1<=this.x2?this.x1=t:this.x2=t}},right:{get:function(){return Math.max(this.x1,this.x2)},set:function(t){this.x1>this.x2?this.x1=t:this.x2=t}},top:{get:function(){return Math.min(this.y1,this.y2)},set:function(t){this.y1<=this.y2?this.y1=t:this.y2=t}},bottom:{get:function(){return Math.max(this.y1,this.y2)},set:function(t){this.y1>this.y2?this.y1=t:this.y2=t}}});t.exports=u},69122:(t,e,i)=>{var n=i(14302),r=i(62951),s=i(57764);t.exports=function(t){var e=s(t)-n.TAU;return r(e,-Math.PI,Math.PI)}},26725:(t,e,i)=>{var n=i(14302),r=i(57764);t.exports=function(t){return Math.cos(r(t)-n.TAU)}},75130:(t,e,i)=>{var n=i(14302),r=i(57764);t.exports=function(t){return Math.sin(r(t)-n.TAU)}},97778:t=>{t.exports=function(t,e,i){return t.x1+=e,t.y1+=i,t.x2+=e,t.y2+=i,t}},63142:t=>{t.exports=function(t){return-(t.x2-t.x1)/(t.y2-t.y1)}},89357:(t,e,i)=>{var n=i(40062);t.exports=function(t,e){void 0===e&&(e=new n);var i=Math.random();return e.x=t.x1+i*(t.x2-t.x1),e.y=t.y1+i*(t.y2-t.y1),e}},60297:(t,e,i)=>{var n=i(57764),r=i(69122);t.exports=function(t,e){return 2*r(e)-Math.PI-n(t)}},41353:(t,e,i)=>{var n=i(23145);t.exports=function(t,e){var i=(t.x1+t.x2)/2,r=(t.y1+t.y2)/2;return n(t,i,r,e)}},59193:(t,e,i)=>{var n=i(23145);t.exports=function(t,e,i){return n(t,e.x,e.y,i)}},23145:t=>{t.exports=function(t,e,i,n){var r=Math.cos(n),s=Math.sin(n),o=t.x1-e,a=t.y1-i;return t.x1=o*r-a*s+e,t.y1=o*s+a*r+i,o=t.x2-e,a=t.y2-i,t.x2=o*r-a*s+e,t.y2=o*s+a*r+i,t}},96562:t=>{t.exports=function(t,e,i,n,r){return t.x1=e,t.y1=i,t.x2=e+Math.cos(n)*r,t.y2=i+Math.sin(n)*r,t}},41764:t=>{t.exports=function(t){return(t.y2-t.y1)/(t.x2-t.x1)}},32901:t=>{t.exports=function(t){return Math.abs(t.x1-t.x2)}},87107:(t,e,i)=>{var n=i(1137);n.Angle=i(57764),n.BresenhamPoints=i(25501),n.CenterOn=i(86724),n.Clone=i(38114),n.CopyFrom=i(51654),n.Equals=i(88728),n.Extend=i(50775),n.GetEasedPoints=i(2591),n.GetMidPoint=i(92431),n.GetNearestPoint=i(84029),n.GetNormal=i(11081),n.GetPoint=i(4652),n.GetPoints=i(63280),n.GetShortestDistance=i(99726),n.Height=i(42961),n.Length=i(53255),n.NormalAngle=i(69122),n.NormalX=i(26725),n.NormalY=i(75130),n.Offset=i(97778),n.PerpSlope=i(63142),n.Random=i(89357),n.ReflectAngle=i(60297),n.Rotate=i(41353),n.RotateAroundPoint=i(59193),n.RotateAroundXY=i(23145),n.SetToAngle=i(96562),n.Slope=i(41764),n.Width=i(32901),t.exports=n},43516:t=>{t.exports=function(t){return t.setTo(Math.ceil(t.x),Math.ceil(t.y))}},97105:(t,e,i)=>{var n=i(40062);t.exports=function(t){return new n(t.x,t.y)}},50272:t=>{t.exports=function(t,e){return e.setTo(t.x,t.y)}},72873:t=>{t.exports=function(t,e){return t.x===e.x&&t.y===e.y}},77702:t=>{t.exports=function(t){return t.setTo(Math.floor(t.x),Math.floor(t.y))}},80974:(t,e,i)=>{var n=i(40062);t.exports=function(t,e){if(void 0===e&&(e=new n),!Array.isArray(t))throw new Error("GetCentroid points argument must be an array");var i=t.length;if(i<1)throw new Error("GetCentroid points array must not be empty");if(1===i)e.x=t[0].x,e.y=t[0].y;else{for(var r=0;r<i;r++)e.x+=t[r].x,e.y+=t[r].y;e.x/=i,e.y/=i}return e}},68285:t=>{t.exports=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)}},13796:t=>{t.exports=function(t){return t.x*t.x+t.y*t.y}},74240:(t,e,i)=>{var n=i(38092);t.exports=function(t,e){void 0===e&&(e=new n);for(var i=Number.NEGATIVE_INFINITY,r=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY,a=0;a<t.length;a++){var h=t[a];h.x>i&&(i=h.x),h.x<r&&(r=h.x),h.y>s&&(s=h.y),h.y<o&&(o=h.y)}return e.x=r,e.y=o,e.width=i-r,e.height=s-o,e}},5987:(t,e,i)=>{var n=i(40062);t.exports=function(t,e,i,r){return void 0===i&&(i=0),void 0===r&&(r=new n),r.x=t.x+(e.x-t.x)*i,r.y=t.y+(e.y-t.y)*i,r}},958:t=>{t.exports=function(t){return t.setTo(t.y,t.x)}},13260:(t,e,i)=>{var n=i(40062);t.exports=function(t,e){return void 0===e&&(e=new n),e.setTo(-t.x,-t.y)}},40062:(t,e,i)=>{var n=i(47379),r=i(67155),s=new n({initialize:function(t,e){void 0===t&&(t=0),void 0===e&&(e=t),this.type=r.POINT,this.x=t,this.y=e},setTo:function(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this.x=t,this.y=e,this}});t.exports=s},38372:(t,e,i)=>{var n=i(40062),r=i(13796);t.exports=function(t,e,i){void 0===i&&(i=new n);var s=(t.x*e.x+t.y*e.y)/r(e);return 0!==s&&(i.x=s*e.x,i.y=s*e.y),i}},78231:(t,e,i)=>{var n=i(40062);t.exports=function(t,e,i){void 0===i&&(i=new n);var r=t.x*e.x+t.y*e.y;return 0!==r&&(i.x=r*e.x,i.y=r*e.y),i}},38736:(t,e,i)=>{var n=i(68285);t.exports=function(t,e){if(0!==t.x||0!==t.y){var i=n(t);t.x/=i,t.y/=i}return t.x*=e,t.y*=e,t}},38060:(t,e,i)=>{var n=i(40062);n.Ceil=i(43516),n.Clone=i(97105),n.CopyFrom=i(50272),n.Equals=i(72873),n.Floor=i(77702),n.GetCentroid=i(80974),n.GetMagnitude=i(68285),n.GetMagnitudeSq=i(13796),n.GetRectangleFromPoints=i(74240),n.Interpolate=i(5987),n.Invert=i(958),n.Negative=i(13260),n.Project=i(38372),n.ProjectUnit=i(78231),n.SetMagnitude=i(38736),t.exports=n},92605:(t,e,i)=>{var n=i(72064);t.exports=function(t){return new n(t.points)}},65733:t=>{t.exports=function(t,e,i){for(var n=!1,r=-1,s=t.points.length-1;++r<t.points.length;s=r){var o=t.points[r].x,a=t.points[r].y,h=t.points[s].x,u=t.points[s].y;(a<=i&&i<u||u<=i&&i<a)&&e<(h-o)*(i-a)/(u-a)+o&&(n=!n)}return n}},72386:(t,e,i)=>{var n=i(65733);t.exports=function(t,e){return n(t,e.x,e.y)}},43574:t=>{"use strict";function e(t,e,s){s=s||2;var o,a,h,c,p,f,m,v=e&&e.length,g=v?e[0]*s:t.length,y=i(t,0,g,s,!0),_=[];if(!y||y.next===y.prev)return _;if(v&&(y=function(t,e,r,s){var o,a,h,c=[];for(o=0,a=e.length;o<a;o++)(h=i(t,e[o]*s,o<a-1?e[o+1]*s:t.length,s,!1))===h.next&&(h.steiner=!0),c.push(d(h));for(c.sort(u),o=0;o<c.length;o++)l(c[o],r),r=n(r,r.next);return r}(t,e,y,s)),t.length>80*s){o=h=t[0],a=c=t[1];for(var x=s;x<g;x+=s)(p=t[x])<o&&(o=p),(f=t[x+1])<a&&(a=f),p>h&&(h=p),f>c&&(c=f);m=0!==(m=Math.max(h-o,c-a))?1/m:0}return r(y,_,s,o,a,m),_}function i(t,e,i,n,r){var s,o;if(r===T(t,e,i,n)>0)for(s=e;s<i;s+=n)o=x(s,t[s],t[s+1],o);else for(s=i-n;s>=e;s-=n)o=x(s,t[s],t[s+1],o);return o&&v(o,o.next)&&(b(o),o=o.next),o}function n(t,e){if(!t)return t;e||(e=t);var i,n=t;do{if(i=!1,n.steiner||!v(n,n.next)&&0!==m(n.prev,n,n.next))n=n.next;else{if(b(n),(n=e=n.prev)===n.next)break;i=!0}}while(i||n!==e);return e}function r(t,e,i,u,l,d,p){if(t){!p&&d&&function(t,e,i,n){var r=t;do{null===r.z&&(r.z=c(r.x,r.y,e,i,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){var e,i,n,r,s,o,a,h,u=1;do{for(i=t,t=null,s=null,o=0;i;){for(o++,n=i,a=0,e=0;e<u&&(a++,n=n.nextZ);e++);for(h=u;a>0||h>0&&n;)0!==a&&(0===h||!n||i.z<=n.z)?(r=i,i=i.nextZ,a--):(r=n,n=n.nextZ,h--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;i=n}s.nextZ=null,u*=2}while(o>1)}(r)}(t,u,l,d);for(var f,m,v=t;t.prev!==t.next;)if(f=t.prev,m=t.next,d?o(t,u,l,d):s(t))e.push(f.i/i),e.push(t.i/i),e.push(m.i/i),b(t),t=m.next,v=m.next;else if((t=m)===v){p?1===p?r(t=a(t,e,i),e,i,u,l,d,2):2===p&&h(t,e,i,u,l,d):r(n(t),e,i,u,l,d,1);break}}}function s(t){var e=t.prev,i=t,n=t.next;if(m(e,i,n)>=0)return!1;for(var r=t.next.next;r!==t.prev;){if(p(e.x,e.y,i.x,i.y,n.x,n.y,r.x,r.y)&&m(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function o(t,e,i,n){var r=t.prev,s=t,o=t.next;if(m(r,s,o)>=0)return!1;for(var a=r.x<s.x?r.x<o.x?r.x:o.x:s.x<o.x?s.x:o.x,h=r.y<s.y?r.y<o.y?r.y:o.y:s.y<o.y?s.y:o.y,u=r.x>s.x?r.x>o.x?r.x:o.x:s.x>o.x?s.x:o.x,l=r.y>s.y?r.y>o.y?r.y:o.y:s.y>o.y?s.y:o.y,d=c(a,h,e,i,n),f=c(u,l,e,i,n),v=t.prevZ,g=t.nextZ;v&&v.z>=d&&g&&g.z<=f;){if(v!==t.prev&&v!==t.next&&p(r.x,r.y,s.x,s.y,o.x,o.y,v.x,v.y)&&m(v.prev,v,v.next)>=0)return!1;if(v=v.prevZ,g!==t.prev&&g!==t.next&&p(r.x,r.y,s.x,s.y,o.x,o.y,g.x,g.y)&&m(g.prev,g,g.next)>=0)return!1;g=g.nextZ}for(;v&&v.z>=d;){if(v!==t.prev&&v!==t.next&&p(r.x,r.y,s.x,s.y,o.x,o.y,v.x,v.y)&&m(v.prev,v,v.next)>=0)return!1;v=v.prevZ}for(;g&&g.z<=f;){if(g!==t.prev&&g!==t.next&&p(r.x,r.y,s.x,s.y,o.x,o.y,g.x,g.y)&&m(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function a(t,e,i){var n=t;do{var r=n.prev,s=n.next.next;!v(r,s)&&g(r,n,n.next,s)&&y(r,s)&&y(s,r)&&(e.push(r.i/i),e.push(n.i/i),e.push(s.i/i),b(n),b(n.next),n=t=s),n=n.next}while(n!==t);return n}function h(t,e,i,s,o,a){var h=t;do{for(var u=h.next.next;u!==h.prev;){if(h.i!==u.i&&f(h,u)){var l=_(h,u);return h=n(h,h.next),l=n(l,l.next),r(h,e,i,s,o,a),void r(l,e,i,s,o,a)}u=u.next}h=h.next}while(h!==t)}function u(t,e){return t.x-e.x}function l(t,e){if(e=function(t,e){var i,n=e,r=t.x,s=t.y,o=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){var a=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=r&&a>o){if(o=a,a===r){if(s===n.y)return n;if(s===n.next.y)return n.next}i=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!i)return null;if(r===o)return i.prev;var h,u=i,l=i.x,c=i.y,d=1/0;n=i.next;for(;n!==u;)r>=n.x&&n.x>=l&&r!==n.x&&p(s<c?r:o,s,l,c,s<c?o:r,s,n.x,n.y)&&((h=Math.abs(s-n.y)/(r-n.x))<d||h===d&&n.x>i.x)&&y(n,t)&&(i=n,d=h),n=n.next;return i}(t,e)){var i=_(e,t);n(i,i.next)}}function c(t,e,i,n,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-i)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function d(t){var e=t,i=t;do{e.x<i.x&&(i=e),e=e.next}while(e!==t);return i}function p(t,e,i,n,r,s,o,a){return(r-o)*(e-a)-(t-o)*(s-a)>=0&&(t-o)*(n-a)-(i-o)*(e-a)>=0&&(i-o)*(s-a)-(r-o)*(n-a)>=0}function f(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&g(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}(t,e)&&y(t,e)&&y(e,t)&&function(t,e){var i=t,n=!1,r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&r<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(n=!n),i=i.next}while(i!==t);return n}(t,e)}function m(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function v(t,e){return t.x===e.x&&t.y===e.y}function g(t,e,i,n){return!!(v(t,e)&&v(i,n)||v(t,n)&&v(i,e))||m(t,e,i)>0!=m(t,e,n)>0&&m(i,n,t)>0!=m(i,n,e)>0}function y(t,e){return m(t.prev,t,t.next)<0?m(t,e,t.next)>=0&&m(t,t.prev,e)>=0:m(t,e,t.prev)<0||m(t,t.next,e)<0}function _(t,e){var i=new w(t.i,t.x,t.y),n=new w(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,i.next=r,r.prev=i,n.next=i,i.prev=n,s.next=n,n.prev=s,n}function x(t,e,i,n){var r=new w(t,e,i);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function b(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function w(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function T(t,e,i,n){for(var r=0,s=e,o=i-n;s<i;s+=n)r+=(t[o]-t[s])*(t[s+1]+t[o+1]),o=s;return r}t.exports=e,e.deviation=function(t,e,i,n){var r=e&&e.length,s=r?e[0]*i:t.length,o=Math.abs(T(t,0,s,i));if(r)for(var a=0,h=e.length;a<h;a++){var u=e[a]*i,l=a<h-1?e[a+1]*i:t.length;o-=Math.abs(T(t,u,l,i))}var c=0;for(a=0;a<n.length;a+=3){var d=n[a]*i,p=n[a+1]*i,f=n[a+2]*i;c+=Math.abs((t[d]-t[f])*(t[p+1]-t[d+1])-(t[d]-t[p])*(t[f+1]-t[d+1]))}return 0===o&&0===c?0:Math.abs((c-o)/o)},e.flatten=function(t){for(var e=t[0][0].length,i={vertices:[],holes:[],dimensions:e},n=0,r=0;r<t.length;r++){for(var s=0;s<t[r].length;s++)for(var o=0;o<e;o++)i.vertices.push(t[r][s][o]);r>0&&(n+=t[r-1].length,i.holes.push(n))}return i}},9248:(t,e,i)=>{var n=i(38092);t.exports=function(t,e){void 0===e&&(e=new n);for(var i,r=1/0,s=1/0,o=-r,a=-s,h=0;h<t.points.length;h++)i=t.points[h],r=Math.min(r,i.x),s=Math.min(s,i.y),o=Math.max(o,i.x),a=Math.max(a,i.y);return e.x=r,e.y=s,e.width=o-r,e.height=a-s,e}},83352:t=>{t.exports=function(t,e){void 0===e&&(e=[]);for(var i=0;i<t.points.length;i++)e.push(t.points[i].x),e.push(t.points[i].y);return e}},45583:(t,e,i)=>{var n=i(53255),r=i(1137),s=i(6818);t.exports=function(t,e,i,o){void 0===o&&(o=[]);var a=t.points,h=s(t);!e&&i>0&&(e=h/i);for(var u=0;u<e;u++)for(var l=h*(u/e),c=0,d=0;d<a.length;d++){var p=a[d],f=a[(d+1)%a.length],m=new r(p.x,p.y,f.x,f.y),v=n(m);if(!(l<c||l>c+v)){var g=m.getPoint((l-c)/v);o.push(g);break}c+=v}return o}},6818:(t,e,i)=>{var n=i(53255),r=i(1137);t.exports=function(t){for(var e=t.points,i=0,s=0;s<e.length;s++){var o=e[s],a=e[(s+1)%e.length],h=new r(o.x,o.y,a.x,a.y);i+=n(h)}return i}},72064:(t,e,i)=>{var n=i(47379),r=i(65733),s=i(45583),o=i(67155),a=new n({initialize:function(t){this.type=o.POLYGON,this.area=0,this.points=[],t&&this.setTo(t)},contains:function(t,e){return r(this,t,e)},setTo:function(t){if(this.area=0,this.points=[],"string"==typeof t&&(t=t.split(" ")),!Array.isArray(t))return this;for(var e,i=Number.MAX_VALUE,n=0;n<t.length;n++)e={x:0,y:0},"number"==typeof t[n]||"string"==typeof t[n]?(e.x=parseFloat(t[n]),e.y=parseFloat(t[n+1]),n++):Array.isArray(t[n])?(e.x=t[n][0],e.y=t[n][1]):(e.x=t[n].x,e.y=t[n].y),this.points.push(e),e.y<i&&(i=e.y);return this.calculateArea(i),this},calculateArea:function(){if(this.points.length<3)return this.area=0,this.area;for(var t,e,i=0,n=0;n<this.points.length-1;n++)t=this.points[n],i+=((e=this.points[n+1]).x-t.x)*(t.y+e.y);return t=this.points[0],e=this.points[this.points.length-1],i+=(t.x-e.x)*(e.y+t.y),this.area=.5*-i,this.area},getPoints:function(t,e,i){return s(this,t,e,i)}});t.exports=a},3780:t=>{t.exports=function(t){return t.points.reverse(),t}},92556:t=>{var e=function(t,e){return t[0]=e[0],t[1]=e[1],t};t.exports=function(t){var i,n=[],r=t.points;for(i=0;i<r.length;i++)n.push([r[i].x,r[i].y]);var s=[];for(n.length>0&&s.push(e([0,0],n[0])),i=0;i<n.length-1;i++){var o=n[i],a=n[i+1],h=o[0],u=o[1],l=a[0],c=a[1];s.push([.85*h+.15*l,.85*u+.15*c]),s.push([.15*h+.85*l,.15*u+.85*c])}return n.length>1&&s.push(e([0,0],n[n.length-1])),t.setTo(s)}},6832:(t,e,i)=>{var n=i(72064);n.Clone=i(92605),n.Contains=i(65733),n.ContainsPoint=i(72386),n.GetAABB=i(9248),n.GetNumberArray=i(83352),n.GetPoints=i(45583),n.Perimeter=i(6818),n.Reverse=i(3780),n.Smooth=i(92556),t.exports=n},79084:t=>{t.exports=function(t){return t.width*t.height}},95500:t=>{t.exports=function(t){return t.x=Math.ceil(t.x),t.y=Math.ceil(t.y),t}},3592:t=>{t.exports=function(t){return t.x=Math.ceil(t.x),t.y=Math.ceil(t.y),t.width=Math.ceil(t.width),t.height=Math.ceil(t.height),t}},23389:t=>{t.exports=function(t,e,i){return t.x=e-t.width/2,t.y=i-t.height/2,t}},3598:(t,e,i)=>{var n=i(38092);t.exports=function(t){return new n(t.x,t.y,t.width,t.height)}},38593:t=>{t.exports=function(t,e,i){return!(t.width<=0||t.height<=0)&&(t.x<=e&&t.x+t.width>=e&&t.y<=i&&t.y+t.height>=i)}},68407:(t,e,i)=>{var n=i(38593);t.exports=function(t,e){return n(t,e.x,e.y)}},19019:t=>{t.exports=function(t,e){return!(e.width*e.height>t.width*t.height)&&(e.x>t.x&&e.x<t.right&&e.right>t.x&&e.right<t.right&&e.y>t.y&&e.y<t.bottom&&e.bottom>t.y&&e.bottom<t.bottom)}},72806:t=>{t.exports=function(t,e){return e.setTo(t.x,t.y,t.width,t.height)}},45109:t=>{t.exports=function(t,e){return void 0===e&&(e=[]),e.push({x:t.x,y:t.y}),e.push({x:t.right,y:t.y}),e.push({x:t.right,y:t.bottom}),e.push({x:t.x,y:t.bottom}),e}},66907:t=>{t.exports=function(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}},18782:(t,e,i)=>{var n=i(26114);t.exports=function(t,e){var i=n(t);return i<n(e)?t.setSize(e.height*i,e.height):t.setSize(e.width,e.width/i),t.setPosition(e.centerX-t.width/2,e.centerY-t.height/2)}},91536:(t,e,i)=>{var n=i(26114);t.exports=function(t,e){var i=n(t);return i>n(e)?t.setSize(e.height*i,e.height):t.setSize(e.width,e.width/i),t.setPosition(e.centerX-t.width/2,e.centerY-t.height/2)}},4232:t=>{t.exports=function(t){return t.x=Math.floor(t.x),t.y=Math.floor(t.y),t}},13421:t=>{t.exports=function(t){return t.x=Math.floor(t.x),t.y=Math.floor(t.y),t.width=Math.floor(t.width),t.height=Math.floor(t.height),t}},46141:(t,e,i)=>{var n=i(38092),r=i(14302);t.exports=function(t,e){if(void 0===e&&(e=new n),0===t.length)return e;for(var i,s,o,a=Number.MAX_VALUE,h=Number.MAX_VALUE,u=r.MIN_SAFE_INTEGER,l=r.MIN_SAFE_INTEGER,c=0;c<t.length;c++)i=t[c],Array.isArray(i)?(s=i[0],o=i[1]):(s=i.x,o=i.y),a=Math.min(a,s),h=Math.min(h,o),u=Math.max(u,s),l=Math.max(l,o);return e.x=a,e.y=h,e.width=u-a,e.height=l-h,e}},37632:(t,e,i)=>{var n=i(38092);t.exports=function(t,e,i,r,s){return void 0===s&&(s=new n),s.setTo(Math.min(t,i),Math.min(e,r),Math.abs(t-i),Math.abs(e-r))}},26114:t=>{t.exports=function(t){return 0===t.height?NaN:t.width/t.height}},5959:(t,e,i)=>{var n=i(40062);t.exports=function(t,e){return void 0===e&&(e=new n),e.x=t.centerX,e.y=t.centerY,e}},34508:(t,e,i)=>{var n=i(31773),r=i(40062);t.exports=function(t,e,i){if(void 0===i&&(i=new r),e<=0||e>=1)return i.x=t.x,i.y=t.y,i;var s=n(t)*e;return e>.5?(s-=t.width+t.height)<=t.width?(i.x=t.right-s,i.y=t.bottom):(i.x=t.x,i.y=t.bottom-(s-t.width)):s<=t.width?(i.x=t.x+s,i.y=t.y):(i.x=t.right,i.y=t.y+(s-t.width)),i}},10824:(t,e,i)=>{var n=i(34508),r=i(31773);t.exports=function(t,e,i,s){void 0===s&&(s=[]),!e&&i>0&&(e=r(t)/i);for(var o=0;o<e;o++){var a=o/e;s.push(n(t,a))}return s}},37962:(t,e,i)=>{var n=i(40062);t.exports=function(t,e){return void 0===e&&(e=new n),e.x=t.width,e.y=t.height,e}},66310:(t,e,i)=>{var n=i(23389);t.exports=function(t,e,i){var r=t.centerX,s=t.centerY;return t.setSize(t.width+2*e,t.height+2*i),n(t,r,s)}},49916:(t,e,i)=>{var n=i(38092),r=i(14198);t.exports=function(t,e,i){return void 0===i&&(i=new n),r(t,e)?(i.x=Math.max(t.x,e.x),i.y=Math.max(t.y,e.y),i.width=Math.min(t.right,e.right)-i.x,i.height=Math.min(t.bottom,e.bottom)-i.y):i.setEmpty(),i}},56080:(t,e,i)=>{var n=i(31773),r=i(40062);t.exports=function(t,e,i,s){if(void 0===s&&(s=[]),!e&&!i)return s;e?i=Math.round(n(t)/e):e=n(t)/i;for(var o=t.x,a=t.y,h=0,u=0;u<i;u++)switch(s.push(new r(o,a)),h){case 0:(o+=e)>=t.right&&(h=1,a+=o-t.right,o=t.right);break;case 1:(a+=e)>=t.bottom&&(h=2,o-=a-t.bottom,a=t.bottom);break;case 2:(o-=e)<=t.left&&(h=3,a-=t.left-o,o=t.left);break;case 3:(a-=e)<=t.top&&(h=0,a=t.top)}return s}},62854:t=>{t.exports=function(t,e){for(var i=t.x,n=t.right,r=t.y,s=t.bottom,o=0;o<e.length;o++)i=Math.min(i,e[o].x),n=Math.max(n,e[o].x),r=Math.min(r,e[o].y),s=Math.max(s,e[o].y);return t.x=i,t.y=r,t.width=n-i,t.height=s-r,t}},78008:t=>{t.exports=function(t,e){var i=Math.min(t.x,e.x),n=Math.max(t.right,e.right);t.x=i,t.width=n-i;var r=Math.min(t.y,e.y),s=Math.max(t.bottom,e.bottom);return t.y=r,t.height=s-r,t}},91609:t=>{t.exports=function(t,e,i){var n=Math.min(t.x,e),r=Math.max(t.right,e);t.x=n,t.width=r-n;var s=Math.min(t.y,i),o=Math.max(t.bottom,i);return t.y=s,t.height=o-s,t}},16949:t=>{t.exports=function(t,e,i){return t.x+=e,t.y+=i,t}},74450:t=>{t.exports=function(t,e){return t.x+=e.x,t.y+=e.y,t}},94794:t=>{t.exports=function(t,e){return t.x<e.right&&t.right>e.x&&t.y<e.bottom&&t.bottom>e.y}},31773:t=>{t.exports=function(t){return 2*(t.width+t.height)}},50563:(t,e,i)=>{var n=i(40062),r=i(98436);t.exports=function(t,e,i){void 0===i&&(i=new n),e=r(e);var s=Math.sin(e),o=Math.cos(e),a=o>0?t.width/2:t.width/-2,h=s>0?t.height/2:t.height/-2;return Math.abs(a*s)<Math.abs(h*o)?h=a*s/o:a=h*o/s,i.x=a+t.centerX,i.y=h+t.centerY,i}},69633:(t,e,i)=>{var n=i(40062);t.exports=function(t,e){return void 0===e&&(e=new n),e.x=t.x+Math.random()*t.width,e.y=t.y+Math.random()*t.height,e}},62148:(t,e,i)=>{var n=i(67630),r=i(19019),s=i(40062);t.exports=function(t,e,i){if(void 0===i&&(i=new s),r(t,e))switch(n(0,3)){case 0:i.x=t.x+Math.random()*(e.right-t.x),i.y=t.y+Math.random()*(e.top-t.y);break;case 1:i.x=e.x+Math.random()*(t.right-e.x),i.y=e.bottom+Math.random()*(t.bottom-e.bottom);break;case 2:i.x=t.x+Math.random()*(e.x-t.x),i.y=e.y+Math.random()*(t.bottom-e.y);break;case 3:i.x=e.right+Math.random()*(t.right-e.right),i.y=t.y+Math.random()*(e.bottom-t.y)}return i}},38092:(t,e,i)=>{var n=i(47379),r=i(38593),s=i(34508),o=i(10824),a=i(67155),h=i(1137),u=i(69633),l=new n({initialize:function(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),this.type=a.RECTANGLE,this.x=t,this.y=e,this.width=i,this.height=n},contains:function(t,e){return r(this,t,e)},getPoint:function(t,e){return s(this,t,e)},getPoints:function(t,e,i){return o(this,t,e,i)},getRandomPoint:function(t){return u(this,t)},setTo:function(t,e,i,n){return this.x=t,this.y=e,this.width=i,this.height=n,this},setEmpty:function(){return this.setTo(0,0,0,0)},setPosition:function(t,e){return void 0===e&&(e=t),this.x=t,this.y=e,this},setSize:function(t,e){return void 0===e&&(e=t),this.width=t,this.height=e,this},isEmpty:function(){return this.width<=0||this.height<=0},getLineA:function(t){return void 0===t&&(t=new h),t.setTo(this.x,this.y,this.right,this.y),t},getLineB:function(t){return void 0===t&&(t=new h),t.setTo(this.right,this.y,this.right,this.bottom),t},getLineC:function(t){return void 0===t&&(t=new h),t.setTo(this.right,this.bottom,this.x,this.bottom),t},getLineD:function(t){return void 0===t&&(t=new h),t.setTo(this.x,this.bottom,this.x,this.y),t},left:{get:function(){return this.x},set:function(t){t>=this.right?this.width=0:this.width=this.right-t,this.x=t}},right:{get:function(){return this.x+this.width},set:function(t){t<=this.x?this.width=0:this.width=t-this.x}},top:{get:function(){return this.y},set:function(t){t>=this.bottom?this.height=0:this.height=this.bottom-t,this.y=t}},bottom:{get:function(){return this.y+this.height},set:function(t){t<=this.y?this.height=0:this.height=t-this.y}},centerX:{get:function(){return this.x+this.width/2},set:function(t){this.x=t-this.width/2}},centerY:{get:function(){return this.y+this.height/2},set:function(t){this.y=t-this.height/2}}});t.exports=l},2780:t=>{t.exports=function(t,e){return t.width===e.width&&t.height===e.height}},26296:t=>{t.exports=function(t,e,i){return void 0===i&&(i=e),t.width*=e,t.height*=i,t}},71768:(t,e,i)=>{var n=i(38092);t.exports=function(t,e,i){void 0===i&&(i=new n);var r=Math.min(t.x,e.x),s=Math.min(t.y,e.y),o=Math.max(t.right,e.right)-r,a=Math.max(t.bottom,e.bottom)-s;return i.setTo(r,s,o,a)}},35064:(t,e,i)=>{var n=i(38092);n.Area=i(79084),n.Ceil=i(95500),n.CeilAll=i(3592),n.CenterOn=i(23389),n.Clone=i(3598),n.Contains=i(38593),n.ContainsPoint=i(68407),n.ContainsRect=i(19019),n.CopyFrom=i(72806),n.Decompose=i(45109),n.Equals=i(66907),n.FitInside=i(18782),n.FitOutside=i(91536),n.Floor=i(4232),n.FloorAll=i(13421),n.FromPoints=i(46141),n.FromXY=i(37632),n.GetAspectRatio=i(26114),n.GetCenter=i(5959),n.GetPoint=i(34508),n.GetPoints=i(10824),n.GetSize=i(37962),n.Inflate=i(66310),n.Intersection=i(49916),n.MarchingAnts=i(56080),n.MergePoints=i(62854),n.MergeRect=i(78008),n.MergeXY=i(91609),n.Offset=i(16949),n.OffsetPoint=i(74450),n.Overlaps=i(94794),n.Perimeter=i(31773),n.PerimeterPoint=i(50563),n.Random=i(69633),n.RandomOutside=i(62148),n.SameDimensions=i(2780),n.Scale=i(26296),n.Union=i(71768),t.exports=n},29635:t=>{t.exports=function(t){var e=t.x1,i=t.y1,n=t.x2,r=t.y2,s=t.x3,o=t.y3;return Math.abs(((s-e)*(r-i)-(n-e)*(o-i))/2)}},43316:(t,e,i)=>{var n=i(50730);t.exports=function(t,e,i){var r=i*(Math.sqrt(3)/2);return new n(t,e,t+i/2,e+r,t-i/2,e+r)}},28073:(t,e,i)=>{var n=i(43574),r=i(50730);t.exports=function(t,e,i,s,o){void 0===e&&(e=null),void 0===i&&(i=1),void 0===s&&(s=1),void 0===o&&(o=[]);for(var a,h,u,l,c,d,p,f,m,v=n(t,e),g=0;g<v.length;g+=3)a=v[g],h=v[g+1],u=v[g+2],l=t[2*a]*i,c=t[2*a+1]*s,d=t[2*h]*i,p=t[2*h+1]*s,f=t[2*u]*i,m=t[2*u+1]*s,o.push(new r(l,c,d,p,f,m));return o}},22121:(t,e,i)=>{var n=i(50730);t.exports=function(t,e,i,r){return void 0===r&&(r=i),new n(t,e,t,e-r,t+i,e)}},32748:(t,e,i)=>{var n=i(78661),r=i(29725);t.exports=function(t,e,i,s){void 0===s&&(s=n);var o=s(t),a=e-o.x,h=i-o.y;return r(t,a,h)}},78661:(t,e,i)=>{var n=i(40062);t.exports=function(t,e){return void 0===e&&(e=new n),e.x=(t.x1+t.x2+t.x3)/3,e.y=(t.y1+t.y2+t.y3)/3,e}},52100:(t,e,i)=>{var n=i(57148);function r(t,e,i,n){return t*n-e*i}t.exports=function(t,e){void 0===e&&(e=new n);var i=t.x3,s=t.y3,o=t.x1-i,a=t.y1-s,h=t.x2-i,u=t.y2-s,l=2*r(o,a,h,u),c=r(a,o*o+a*a,u,h*h+u*u),d=r(o,o*o+a*a,h,h*h+u*u);return e.x=i-c/l,e.y=s+d/l,e}},76602:(t,e,i)=>{var n=i(78265);t.exports=function(t,e){void 0===e&&(e=new n);var i,r,s=t.x1,o=t.y1,a=t.x2,h=t.y2,u=t.x3,l=t.y3,c=a-s,d=h-o,p=u-s,f=l-o,m=c*(s+a)+d*(o+h),v=p*(s+u)+f*(o+l),g=2*(c*(l-h)-d*(u-a));if(Math.abs(g)<1e-6){var y=Math.min(s,a,u),_=Math.min(o,h,l);i=.5*(Math.max(s,a,u)-y),r=.5*(Math.max(o,h,l)-_),e.x=y+i,e.y=_+r,e.radius=Math.sqrt(i*i+r*r)}else e.x=(f*m-d*v)/g,e.y=(c*v-p*m)/g,i=e.x-s,r=e.y-o,e.radius=Math.sqrt(i*i+r*r);return e}},65638:(t,e,i)=>{var n=i(50730);t.exports=function(t){return new n(t.x1,t.y1,t.x2,t.y2,t.x3,t.y3)}},92501:t=>{t.exports=function(t,e,i){var n=t.x3-t.x1,r=t.y3-t.y1,s=t.x2-t.x1,o=t.y2-t.y1,a=e-t.x1,h=i-t.y1,u=n*n+r*r,l=n*s+r*o,c=n*a+r*h,d=s*s+o*o,p=s*a+o*h,f=u*d-l*l,m=0===f?0:1/f,v=(d*c-l*p)*m,g=(u*p-l*c)*m;return v>=0&&g>=0&&v+g<1}},82290:t=>{t.exports=function(t,e,i,n){void 0===i&&(i=!1),void 0===n&&(n=[]);for(var r,s,o,a,h,u,l=t.x3-t.x1,c=t.y3-t.y1,d=t.x2-t.x1,p=t.y2-t.y1,f=l*l+c*c,m=l*d+c*p,v=d*d+p*p,g=f*v-m*m,y=0===g?0:1/g,_=t.x1,x=t.y1,b=0;b<e.length&&(s=(f*(u=d*(o=e[b].x-_)+p*(a=e[b].y-x))-m*(h=l*o+c*a))*y,!((r=(v*h-m*u)*y)>=0&&s>=0&&r+s<1&&(n.push({x:e[b].x,y:e[b].y}),i)));b++);return n}},22995:(t,e,i)=>{var n=i(92501);t.exports=function(t,e){return n(t,e.x,e.y)}},36855:t=>{t.exports=function(t,e){return e.setTo(t.x1,t.y1,t.x2,t.y2,t.x3,t.y3)}},17746:t=>{t.exports=function(t,e){return void 0===e&&(e=[]),e.push({x:t.x1,y:t.y1}),e.push({x:t.x2,y:t.y2}),e.push({x:t.x3,y:t.y3}),e}},17048:t=>{t.exports=function(t,e){return t.x1===e.x1&&t.y1===e.y1&&t.x2===e.x2&&t.y2===e.y2&&t.x3===e.x3&&t.y3===e.y3}},51681:(t,e,i)=>{var n=i(40062),r=i(53255);t.exports=function(t,e,i){void 0===i&&(i=new n);var s=t.getLineA(),o=t.getLineB(),a=t.getLineC();if(e<=0||e>=1)return i.x=s.x1,i.y=s.y1,i;var h=r(s),u=r(o),l=r(a),c=(h+u+l)*e,d=0;return c<h?(d=c/h,i.x=s.x1+(s.x2-s.x1)*d,i.y=s.y1+(s.y2-s.y1)*d):c>h+u?(d=(c-=h+u)/l,i.x=a.x1+(a.x2-a.x1)*d,i.y=a.y1+(a.y2-a.y1)*d):(d=(c-=h)/u,i.x=o.x1+(o.x2-o.x1)*d,i.y=o.y1+(o.y2-o.y1)*d),i}},79485:(t,e,i)=>{var n=i(53255),r=i(40062);t.exports=function(t,e,i,s){void 0===s&&(s=[]);var o=t.getLineA(),a=t.getLineB(),h=t.getLineC(),u=n(o),l=n(a),c=n(h),d=u+l+c;!e&&i>0&&(e=d/i);for(var p=0;p<e;p++){var f=d*(p/e),m=0,v=new r;f<u?(m=f/u,v.x=o.x1+(o.x2-o.x1)*m,v.y=o.y1+(o.y2-o.y1)*m):f>u+l?(m=(f-=u+l)/c,v.x=h.x1+(h.x2-h.x1)*m,v.y=h.y1+(h.y2-h.y1)*m):(m=(f-=u)/l,v.x=a.x1+(a.x2-a.x1)*m,v.y=a.y1+(a.y2-a.y1)*m),s.push(v)}return s}},36738:(t,e,i)=>{var n=i(40062);function r(t,e,i,n){var r=t-i,s=e-n,o=r*r+s*s;return Math.sqrt(o)}t.exports=function(t,e){void 0===e&&(e=new n);var i=t.x1,s=t.y1,o=t.x2,a=t.y2,h=t.x3,u=t.y3,l=r(h,u,o,a),c=r(i,s,h,u),d=r(o,a,i,s),p=l+c+d;return e.x=(i*l+o*c+h*d)/p,e.y=(s*l+a*c+u*d)/p,e}},29725:t=>{t.exports=function(t,e,i){return t.x1+=e,t.y1+=i,t.x2+=e,t.y2+=i,t.x3+=e,t.y3+=i,t}},71019:(t,e,i)=>{var n=i(53255);t.exports=function(t){var e=t.getLineA(),i=t.getLineB(),r=t.getLineC();return n(e)+n(i)+n(r)}},40471:(t,e,i)=>{var n=i(40062);t.exports=function(t,e){void 0===e&&(e=new n);var i=t.x2-t.x1,r=t.y2-t.y1,s=t.x3-t.x1,o=t.y3-t.y1,a=Math.random(),h=Math.random();return a+h>=1&&(a=1-a,h=1-h),e.x=t.x1+(i*a+s*h),e.y=t.y1+(r*a+o*h),e}},88141:(t,e,i)=>{var n=i(19860),r=i(36738);t.exports=function(t,e){var i=r(t);return n(t,i.x,i.y,e)}},58935:(t,e,i)=>{var n=i(19860);t.exports=function(t,e,i){return n(t,e.x,e.y,i)}},19860:t=>{t.exports=function(t,e,i,n){var r=Math.cos(n),s=Math.sin(n),o=t.x1-e,a=t.y1-i;return t.x1=o*r-a*s+e,t.y1=o*s+a*r+i,o=t.x2-e,a=t.y2-i,t.x2=o*r-a*s+e,t.y2=o*s+a*r+i,o=t.x3-e,a=t.y3-i,t.x3=o*r-a*s+e,t.y3=o*s+a*r+i,t}},50730:(t,e,i)=>{var n=i(47379),r=i(92501),s=i(51681),o=i(79485),a=i(67155),h=i(1137),u=i(40471),l=new n({initialize:function(t,e,i,n,r,s){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===s&&(s=0),this.type=a.TRIANGLE,this.x1=t,this.y1=e,this.x2=i,this.y2=n,this.x3=r,this.y3=s},contains:function(t,e){return r(this,t,e)},getPoint:function(t,e){return s(this,t,e)},getPoints:function(t,e,i){return o(this,t,e,i)},getRandomPoint:function(t){return u(this,t)},setTo:function(t,e,i,n,r,s){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===s&&(s=0),this.x1=t,this.y1=e,this.x2=i,this.y2=n,this.x3=r,this.y3=s,this},getLineA:function(t){return void 0===t&&(t=new h),t.setTo(this.x1,this.y1,this.x2,this.y2),t},getLineB:function(t){return void 0===t&&(t=new h),t.setTo(this.x2,this.y2,this.x3,this.y3),t},getLineC:function(t){return void 0===t&&(t=new h),t.setTo(this.x3,this.y3,this.x1,this.y1),t},left:{get:function(){return Math.min(this.x1,this.x2,this.x3)},set:function(t){var e=0;e=this.x1<=this.x2&&this.x1<=this.x3?this.x1-t:this.x2<=this.x1&&this.x2<=this.x3?this.x2-t:this.x3-t,this.x1-=e,this.x2-=e,this.x3-=e}},right:{get:function(){return Math.max(this.x1,this.x2,this.x3)},set:function(t){var e=0;e=this.x1>=this.x2&&this.x1>=this.x3?this.x1-t:this.x2>=this.x1&&this.x2>=this.x3?this.x2-t:this.x3-t,this.x1-=e,this.x2-=e,this.x3-=e}},top:{get:function(){return Math.min(this.y1,this.y2,this.y3)},set:function(t){var e=0;e=this.y1<=this.y2&&this.y1<=this.y3?this.y1-t:this.y2<=this.y1&&this.y2<=this.y3?this.y2-t:this.y3-t,this.y1-=e,this.y2-=e,this.y3-=e}},bottom:{get:function(){return Math.max(this.y1,this.y2,this.y3)},set:function(t){var e=0;e=this.y1>=this.y2&&this.y1>=this.y3?this.y1-t:this.y2>=this.y1&&this.y2>=this.y3?this.y2-t:this.y3-t,this.y1-=e,this.y2-=e,this.y3-=e}}});t.exports=l},77791:(t,e,i)=>{var n=i(50730);n.Area=i(29635),n.BuildEquilateral=i(43316),n.BuildFromPolygon=i(28073),n.BuildRight=i(22121),n.CenterOn=i(32748),n.Centroid=i(78661),n.CircumCenter=i(52100),n.CircumCircle=i(76602),n.Clone=i(65638),n.Contains=i(92501),n.ContainsArray=i(82290),n.ContainsPoint=i(22995),n.CopyFrom=i(36855),n.Decompose=i(17746),n.Equals=i(17048),n.GetPoint=i(51681),n.GetPoints=i(79485),n.InCenter=i(36738),n.Perimeter=i(71019),n.Offset=i(29725),n.Random=i(40471),n.Rotate=i(88141),n.RotateAroundPoint=i(58935),n.RotateAroundXY=i(19860),t.exports=n},91188:t=>{t.exports=function(t,e,i){return{gameObject:t,enabled:!0,alwaysEnabled:!1,draggable:!1,dropZone:!1,cursor:!1,target:null,camera:null,hitArea:e,hitAreaCallback:i,hitAreaDebug:null,customHitArea:!1,localX:0,localY:0,dragState:0,dragStartX:0,dragStartY:0,dragStartXGlobal:0,dragStartYGlobal:0,dragX:0,dragY:0}}},76550:t=>{t.exports=function(t,e){return function(i,n,r,s){var o=t.getPixelAlpha(n,r,s.texture.key,s.frame.name);return o&&o>=e}}},80771:(t,e,i)=>{var n=i(47379),r=i(77625),s=i(17168),o=i(22620),a=i(80827),h=i(72493),u=i(43236),l=i(94661),c=i(42380),d=i(65492),p=i(16300),f=new n({initialize:function(t,e){this.game=t,this.scaleManager,this.canvas,this.config=e,this.enabled=!0,this.events=new s,this.isOver=!0,this.defaultCursor="",this.keyboard=e.inputKeyboard?new h(this):null,this.mouse=e.inputMouse?new u(this):null,this.touch=e.inputTouch?new c(this):null,this.pointers=[],this.pointersTotal=e.inputActivePointers,e.inputTouch&&1===this.pointersTotal&&(this.pointersTotal=2);for(var i=0;i<=this.pointersTotal;i++){var n=new l(this,i);n.smoothFactor=e.inputSmoothFactor,this.pointers.push(n)}this.mousePointer=e.inputMouse?this.pointers[0]:null,this.activePointer=this.pointers[0],this.globalTopOnly=!0,this.time=0,this._tempPoint={x:0,y:0},this._tempHitTest=[],this._tempMatrix=new d,this._tempMatrix2=new d,this._tempSkip=!1,this.mousePointerContainer=[this.mousePointer],t.events.once(a.BOOT,this.boot,this)},boot:function(){this.canvas=this.game.canvas,this.scaleManager=this.game.scale,this.events.emit(o.MANAGER_BOOT),this.game.events.on(a.PRE_RENDER,this.preRender,this),this.game.events.once(a.DESTROY,this.destroy,this)},setCanvasOver:function(t){this.isOver=!0,this.events.emit(o.GAME_OVER,t)},setCanvasOut:function(t){this.isOver=!1,this.events.emit(o.GAME_OUT,t)},preRender:function(){var t=this.game.loop.now,e=this.game.loop.delta,i=this.game.scene.getScenes(!0,!0);this.time=t,this.events.emit(o.MANAGER_UPDATE);for(var n=0;n<i.length;n++){var r=i[n];if(r.sys.input&&r.sys.input.updatePoll(t,e)&&this.globalTopOnly)return}},setDefaultCursor:function(t){this.defaultCursor=t,this.canvas.style.cursor!==t&&(this.canvas.style.cursor=t)},setCursor:function(t){t.cursor&&(this.canvas.style.cursor=t.cursor)},resetCursor:function(t){t.cursor&&this.canvas&&(this.canvas.style.cursor=this.defaultCursor)},addPointer:function(t){void 0===t&&(t=1);var e=[];this.pointersTotal+t>10&&(t=10-this.pointersTotal);for(var i=0;i<t;i++){var n=this.pointers.length,r=new l(this,n);r.smoothFactor=this.config.inputSmoothFactor,this.pointers.push(r),this.pointersTotal++,e.push(r)}return e},updateInputPlugins:function(t,e){var i=this.game.scene.getScenes(!0,!0);this._tempSkip=!1;for(var n=0;n<i.length;n++){var r=i[n];if(r.sys.input)if(r.sys.input.update(t,e)&&this.globalTopOnly||this._tempSkip)return}},onTouchStart:function(t){for(var e=this.pointers,i=[],n=0;n<t.changedTouches.length;n++)for(var s=t.changedTouches[n],o=1;o<this.pointersTotal;o++){var a=e[o];if(!a.active){a.touchstart(s,t),this.activePointer=a,i.push(a);break}}this.updateInputPlugins(r.TOUCH_START,i)},onTouchMove:function(t){for(var e=this.pointers,i=[],n=0;n<t.changedTouches.length;n++)for(var s=t.changedTouches[n],o=1;o<this.pointersTotal;o++){var a=e[o];if(a.active&&a.identifier===s.identifier){a.touchmove(s,t),this.activePointer=a,i.push(a);break}}this.updateInputPlugins(r.TOUCH_MOVE,i)},onTouchEnd:function(t){for(var e=this.pointers,i=[],n=0;n<t.changedTouches.length;n++)for(var s=t.changedTouches[n],o=1;o<this.pointersTotal;o++){var a=e[o];if(a.active&&a.identifier===s.identifier){a.touchend(s,t),i.push(a);break}}this.updateInputPlugins(r.TOUCH_END,i)},onTouchCancel:function(t){for(var e=this.pointers,i=[],n=0;n<t.changedTouches.length;n++)for(var s=t.changedTouches[n],o=1;o<this.pointersTotal;o++){var a=e[o];if(a.active&&a.identifier===s.identifier){a.touchcancel(s,t),i.push(a);break}}this.updateInputPlugins(r.TOUCH_CANCEL,i)},onMouseDown:function(t){this.mousePointer.down(t),this.mousePointer.updateMotion(),this.updateInputPlugins(r.MOUSE_DOWN,this.mousePointerContainer)},onMouseMove:function(t){this.mousePointer.move(t),this.mousePointer.updateMotion(),this.updateInputPlugins(r.MOUSE_MOVE,this.mousePointerContainer)},onMouseUp:function(t){this.mousePointer.up(t),this.mousePointer.updateMotion(),this.updateInputPlugins(r.MOUSE_UP,this.mousePointerContainer)},onMouseWheel:function(t){this.mousePointer.wheel(t),this.updateInputPlugins(r.MOUSE_WHEEL,this.mousePointerContainer)},onPointerLockChange:function(t){var e=this.mouse.locked;this.mousePointer.locked=e,this.events.emit(o.POINTERLOCK_CHANGE,t,e)},inputCandidate:function(t,e){var i=t.input;if(!i||!i.enabled||!i.alwaysEnabled&&!t.willRender(e))return!1;var n=!0,r=t.parentContainer;if(r)do{if(!r.willRender(e)){n=!1;break}r=r.parentContainer}while(r);return n},hitTest:function(t,e,i,n){void 0===n&&(n=this._tempHitTest);var r=this._tempPoint,s=i.scrollX,o=i.scrollY;n.length=0;var a=t.x,h=t.y;1!==i.resolution&&(a+=i._x,h+=i._y),i.getWorldPoint(a,h,r),t.worldX=r.x,t.worldY=r.y;for(var u={x:0,y:0},l=this._tempMatrix,c=this._tempMatrix2,d=0;d<e.length;d++){var f=e[d];if(this.inputCandidate(f,i)){var m=r.x+s*f.scrollFactorX-s,v=r.y+o*f.scrollFactorY-o;f.parentContainer?(f.getWorldTransformMatrix(l,c),l.applyInverse(m,v,u)):p(m,v,f.x,f.y,f.rotation,f.scaleX,f.scaleY,u),this.pointWithinHitArea(f,u.x,u.y)&&n.push(f)}}return n},pointWithinHitArea:function(t,e,i){e+=t.displayOriginX,i+=t.displayOriginY;var n=t.input;return!(!n||!n.hitAreaCallback(n.hitArea,e,i,t))&&(n.localX=e,n.localY=i,!0)},pointWithinInteractiveObject:function(t,e,i){return!!t.hitArea&&(e+=t.gameObject.displayOriginX,i+=t.gameObject.displayOriginY,t.localX=e,t.localY=i,t.hitAreaCallback(t.hitArea,e,i,t))},transformPointer:function(t,e,i,n){var r=t.position,s=t.prevPosition;s.x=r.x,s.y=r.y;var o=this.scaleManager.transformX(e),a=this.scaleManager.transformY(i),h=t.smoothFactor;n&&0!==h?(r.x=o*h+s.x*(1-h),r.y=a*h+s.y*(1-h)):(r.x=o,r.y=a)},destroy:function(){this.events.removeAllListeners(),this.game.events.off(a.PRE_RENDER),this.keyboard&&this.keyboard.destroy(),this.mouse&&this.mouse.destroy(),this.touch&&this.touch.destroy();for(var t=0;t<this.pointers.length;t++)this.pointers[t].destroy();this.pointers=[],this._tempHitTest=[],this._tempMatrix.destroy(),this.canvas=null,this.game=null}});t.exports=f},98964:(t,e,i)=>{var n=i(78265),r=i(59623),s=i(47379),o=i(77625),a=i(91188),h=i(76550),u=i(73587),l=i(38341),c=i(12930),d=i(22620),p=i(17168),f=i(81769),m=i(67155),v=i(54471),g=i(28621),y=i(50354),_=i(38092),x=i(38593),b=i(88637),w=i(50730),T=i(92501),M=new s({Extends:p,initialize:function(t){p.call(this),this.scene=t,this.systems=t.sys,this.settings=t.sys.settings,this.manager=t.sys.game.input,this.pluginEvents=new p,this.enabled=!0,this.displayList,this.cameras,v.install(this),this.mouse=this.manager.mouse,this.topOnly=!0,this.pollRate=-1,this._pollTimer=0;var e={cancelled:!1};this._eventContainer={stopPropagation:function(){e.cancelled=!0}},this._eventData=e,this.dragDistanceThreshold=0,this.dragTimeThreshold=0,this._temp=[],this._tempZones=[],this._list=[],this._pendingInsertion=[],this._pendingRemoval=[],this._draggable=[],this._drag={0:[],1:[],2:[],3:[],4:[],5:[],6:[],7:[],8:[],9:[],10:[]},this._dragState=[],this._over={0:[],1:[],2:[],3:[],4:[],5:[],6:[],7:[],8:[],9:[],10:[]},this._validTypes=["onDown","onUp","onOver","onOut","onMove","onDragStart","onDrag","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDrop"],this._updatedThisFrame=!1,t.sys.events.once(b.BOOT,this.boot,this),t.sys.events.on(b.START,this.start,this)},boot:function(){this.cameras=this.systems.cameras,this.displayList=this.systems.displayList,this.systems.events.once(b.DESTROY,this.destroy,this),this.pluginEvents.emit(d.BOOT)},start:function(){var t=this.systems.events;t.on(b.TRANSITION_START,this.transitionIn,this),t.on(b.TRANSITION_OUT,this.transitionOut,this),t.on(b.TRANSITION_COMPLETE,this.transitionComplete,this),t.on(b.PRE_UPDATE,this.preUpdate,this),t.once(b.SHUTDOWN,this.shutdown,this),this.manager.events.on(d.GAME_OUT,this.onGameOut,this),this.manager.events.on(d.GAME_OVER,this.onGameOver,this),this.enabled=!0,this._dragState=[0,0,0,0,0,0,0,0,0,0],this.pluginEvents.emit(d.START)},onGameOver:function(t){this.isActive()&&this.emit(d.GAME_OVER,t.timeStamp,t)},onGameOut:function(t){this.isActive()&&this.emit(d.GAME_OUT,t.timeStamp,t)},preUpdate:function(){this.pluginEvents.emit(d.PRE_UPDATE);var t=this._pendingRemoval,e=this._pendingInsertion,i=t.length,n=e.length;if(0!==i||0!==n){for(var r=this._list,s=0;s<i;s++){var o=t[s],a=r.indexOf(o);a>-1&&(r.splice(a,1),this.clear(o,!0))}t.length=0,this._pendingRemoval.length=0,this._list=r.concat(e.splice(0))}},isActive:function(){return this.enabled&&this.scene.sys.isActive()},updatePoll:function(t,e){if(!this.isActive())return!1;if(this.pluginEvents.emit(d.UPDATE,t,e),this._updatedThisFrame)return this._updatedThisFrame=!1,!1;var i,n=this.manager,r=n.pointers,s=n.pointersTotal;for(i=0;i<s;i++)r[i].updateMotion();if(0===this._list.length)return!1;var o=this.pollRate;if(-1===o)return!1;if(o>0){if(this._pollTimer-=e,!(this._pollTimer<0))return!1;this._pollTimer=this.pollRate}var a=!1;for(i=0;i<s;i++){var h=0,u=r[i];this._tempZones=[],this._temp=this.hitTestPointer(u),this.sortGameObjects(this._temp),this.sortGameObjects(this._tempZones),this.topOnly&&(this._temp.length&&this._temp.splice(1),this._tempZones.length&&this._tempZones.splice(1)),h+=this.processOverOutEvents(u),2===this.getDragState(u)&&this.processDragThresholdEvent(u,t),h>0&&(a=!0)}return a},update:function(t,e){if(!this.isActive())return!1;for(var i=e.length,n=!1,r=0;r<i;r++){var s=0,a=e[r];switch(this._tempZones=[],this._temp=this.hitTestPointer(a),this.sortGameObjects(this._temp),this.sortGameObjects(this._tempZones),this.topOnly&&(this._temp.length&&this._temp.splice(1),this._tempZones.length&&this._tempZones.splice(1)),t){case o.MOUSE_DOWN:s+=this.processDragDownEvent(a),s+=this.processDownEvents(a),s+=this.processOverOutEvents(a);break;case o.MOUSE_UP:s+=this.processDragUpEvent(a),s+=this.processUpEvents(a),s+=this.processOverOutEvents(a);break;case o.TOUCH_START:s+=this.processDragDownEvent(a),s+=this.processDownEvents(a),s+=this.processOverEvents(a);break;case o.TOUCH_END:case o.TOUCH_CANCEL:s+=this.processDragUpEvent(a),s+=this.processUpEvents(a),s+=this.processOutEvents(a);break;case o.MOUSE_MOVE:case o.TOUCH_MOVE:s+=this.processDragMoveEvent(a),s+=this.processMoveEvents(a),s+=this.processOverOutEvents(a);break;case o.MOUSE_WHEEL:s+=this.processWheelEvent(a)}s>0&&(n=!0)}return this._updatedThisFrame=!0,n},clear:function(t,e){void 0===e&&(e=!1);var i=t.input;if(i){e||this.queueForRemoval(t),i.gameObject=void 0,i.target=void 0,i.hitArea=void 0,i.hitAreaCallback=void 0,i.callbackContext=void 0,this.manager.resetCursor(i),t.input=null;var n=this._draggable.indexOf(t);return n>-1&&this._draggable.splice(n,1),(n=this._drag[0].indexOf(t))>-1&&this._drag[0].splice(n,1),(n=this._over[0].indexOf(t))>-1&&this._over[0].splice(n,1),t}},disable:function(t){t.input.enabled=!1},enable:function(t,e,i,n){return void 0===n&&(n=!1),t.input?t.input.enabled=!0:this.setHitArea(t,e,i),t.input&&n&&!t.input.dropZone&&(t.input.dropZone=n),this},hitTestPointer:function(t){for(var e=this.cameras.getCamerasBelowPointer(t),i=0;i<e.length;i++){for(var n=e[i],r=this.manager.hitTest(t,this._list,n),s=0;s<r.length;s++){var o=r[s];o.input.dropZone&&this._tempZones.push(o)}if(r.length>0)return t.camera=n,r}return t.camera=e[0],[]},processDownEvents:function(t){var e=0,i=this._temp,n=this._eventData,r=this._eventContainer;n.cancelled=!1;for(var s=!1,o=0;o<i.length;o++){var a=i[o];if(a.input){if(e++,a.emit(d.GAMEOBJECT_POINTER_DOWN,t,a.input.localX,a.input.localY,r),n.cancelled||!a.input){s=!0;break}if(this.emit(d.GAMEOBJECT_DOWN,t,a,r),n.cancelled||!a.input){s=!0;break}}}return!s&&this.manager&&(t.downElement===this.manager.game.canvas?this.emit(d.POINTER_DOWN,t,i):this.emit(d.POINTER_DOWN_OUTSIDE,t)),e},getDragState:function(t){return this._dragState[t.id]},setDragState:function(t,e){this._dragState[t.id]=e},processDragThresholdEvent:function(t,e){var i=!1,n=this.dragTimeThreshold,r=this.dragDistanceThreshold;if((r>0&&u(t.x,t.y,t.downX,t.downY)>=r||n>0&&e>=t.downTime+n)&&(i=!0),i)return this.setDragState(t,3),this.processDragStartList(t)},processDragStartList:function(t){if(3!==this.getDragState(t))return 0;for(var e=this._drag[t.id],i=0;i<e.length;i++){var n=e[i],r=n.input;r.dragState=2,r.dragStartX=n.x,r.dragStartY=n.y,r.dragStartXGlobal=t.x,r.dragStartYGlobal=t.y,r.dragX=r.dragStartXGlobal-r.dragStartX,r.dragY=r.dragStartYGlobal-r.dragStartY,n.emit(d.GAMEOBJECT_DRAG_START,t,r.dragX,r.dragY),this.emit(d.DRAG_START,t,n)}return this.setDragState(t,4),e.length},processDragDownEvent:function(t){var e=this._temp;if(0===this._draggable.length||0===e.length||!t.primaryDown||0!==this.getDragState(t))return 0;this.setDragState(t,1);for(var i=[],n=0;n<e.length;n++){var r=e[n];r.input.draggable&&0===r.input.dragState&&i.push(r)}return 0===i.length?(this.setDragState(t,0),0):(i.length>1&&(this.sortGameObjects(i),this.topOnly&&i.splice(1)),this._drag[t.id]=i,0===this.dragDistanceThreshold&&0===this.dragTimeThreshold?(this.setDragState(t,3),this.processDragStartList(t)):(this.setDragState(t,2),0))},processDragMoveEvent:function(t){if(2===this.getDragState(t)&&this.processDragThresholdEvent(t,this.manager.game.loop.now),4!==this.getDragState(t))return 0;for(var e=this._tempZones,i=this._drag[t.id],n=0;n<i.length;n++){var r,s,o=i[n],a=o.input,h=a.target;if(h){var u=e.indexOf(h);0===u?(o.emit(d.GAMEOBJECT_DRAG_OVER,t,h),this.emit(d.DRAG_OVER,t,o,h)):u>0?(o.emit(d.GAMEOBJECT_DRAG_LEAVE,t,h),this.emit(d.DRAG_LEAVE,t,o,h),a.target=e[0],h=a.target,o.emit(d.GAMEOBJECT_DRAG_ENTER,t,h),this.emit(d.DRAG_ENTER,t,o,h)):(o.emit(d.GAMEOBJECT_DRAG_LEAVE,t,h),this.emit(d.DRAG_LEAVE,t,o,h),e[0]?(a.target=e[0],h=a.target,o.emit(d.GAMEOBJECT_DRAG_ENTER,t,h),this.emit(d.DRAG_ENTER,t,o,h)):a.target=null)}else!h&&e[0]&&(a.target=e[0],h=a.target,o.emit(d.GAMEOBJECT_DRAG_ENTER,t,h),this.emit(d.DRAG_ENTER,t,o,h));if(o.parentContainer){var l=t.x-a.dragStartXGlobal,c=t.y-a.dragStartYGlobal,p=o.getParentRotation(),f=l*Math.cos(p)+c*Math.sin(p),m=c*Math.cos(p)-l*Math.sin(p);f*=1/o.parentContainer.scaleX,m*=1/o.parentContainer.scaleY,r=f+a.dragStartX,s=m+a.dragStartY}else r=t.x-a.dragX,s=t.y-a.dragY;o.emit(d.GAMEOBJECT_DRAG,t,r,s),this.emit(d.DRAG,t,o,r,s)}return i.length},processDragUpEvent:function(t){for(var e=this._drag[t.id],i=0;i<e.length;i++){var n=e[i],r=n.input;if(r&&2===r.dragState){r.dragState=0,r.dragX=r.localX-n.displayOriginX,r.dragY=r.localY-n.displayOriginY;var s=!1,o=r.target;o&&(n.emit(d.GAMEOBJECT_DROP,t,o),this.emit(d.DROP,t,n,o),r.target=null,s=!0),n.input&&(n.emit(d.GAMEOBJECT_DRAG_END,t,r.dragX,r.dragY,s),this.emit(d.DRAG_END,t,n,s))}}return this.setDragState(t,0),e.splice(0),0},processMoveEvents:function(t){var e=0,i=this._temp,n=this._eventData,r=this._eventContainer;n.cancelled=!1;for(var s=!1,o=0;o<i.length;o++){var a=i[o];if(a.input){if(e++,a.emit(d.GAMEOBJECT_POINTER_MOVE,t,a.input.localX,a.input.localY,r),n.cancelled||!a.input){s=!0;break}if(this.emit(d.GAMEOBJECT_MOVE,t,a,r),n.cancelled||!a.input){s=!0;break}if(this.topOnly)break}}return s||this.emit(d.POINTER_MOVE,t,i),e},processWheelEvent:function(t){var e=0,i=this._temp,n=this._eventData,r=this._eventContainer;n.cancelled=!1;for(var s=!1,o=t.deltaX,a=t.deltaY,h=t.deltaZ,u=0;u<i.length;u++){var l=i[u];if(l.input){if(e++,l.emit(d.GAMEOBJECT_POINTER_WHEEL,t,o,a,h,r),n.cancelled||!l.input){s=!0;break}if(this.emit(d.GAMEOBJECT_WHEEL,t,l,o,a,h,r),n.cancelled||!l.input){s=!0;break}}}return s||this.emit(d.POINTER_WHEEL,t,i,o,a,h),e},processOverEvents:function(t){var e=this._temp,i=0,n=e.length,r=[];if(n>0){var s=this.manager,o=this._eventData,a=this._eventContainer;o.cancelled=!1;for(var h=!1,u=0;u<n;u++){var l=e[u];if(l.input){if(r.push(l),s.setCursor(l.input),l.emit(d.GAMEOBJECT_POINTER_OVER,t,l.input.localX,l.input.localY,a),i++,o.cancelled||!l.input){h=!0;break}if(this.emit(d.GAMEOBJECT_OVER,t,l,a),o.cancelled||!l.input){h=!0;break}}}h||this.emit(d.POINTER_OVER,t,r)}return this._over[t.id]=r,i},processOutEvents:function(t){var e=this._over[t.id],i=0,n=e.length;if(n>0){var r=this.manager,s=this._eventData,o=this._eventContainer;s.cancelled=!1;var a=!1;this.sortGameObjects(e);for(var h=0;h<n;h++){var u=e[h];for(h=0;h<n;h++)if((u=e[h]).input){if(r.resetCursor(u.input),u.emit(d.GAMEOBJECT_POINTER_OUT,t,o),i++,s.cancelled||!u.input){a=!0;break}if(this.emit(d.GAMEOBJECT_OUT,t,u,o),s.cancelled||!u.input){a=!0;break}}a||this.emit(d.POINTER_OUT,t,e)}this._over[t.id]=[]}return i},processOverOutEvents:function(t){var e,i,n=this._temp,r=[],s=[],o=[],a=this._over[t.id],h=this._drag[t.id],u=this.manager;for(e=0;e<a.length;e++)i=a[e],-1===n.indexOf(i)&&-1===h.indexOf(i)?r.push(i):o.push(i);for(e=0;e<n.length;e++)i=n[e],-1===a.indexOf(i)&&s.push(i);var l=r.length,c=0,p=this._eventData,f=this._eventContainer;p.cancelled=!1;var m=!1;if(l>0){for(this.sortGameObjects(r),e=0;e<l;e++)if((i=r[e]).input){if(u.resetCursor(i.input),i.emit(d.GAMEOBJECT_POINTER_OUT,t,f),c++,p.cancelled||!i.input){m=!0;break}if(this.emit(d.GAMEOBJECT_OUT,t,i,f),p.cancelled||!i.input){m=!0;break}}m||this.emit(d.POINTER_OUT,t,r)}if(l=s.length,p.cancelled=!1,m=!1,l>0){for(this.sortGameObjects(s),e=0;e<l;e++)if((i=s[e]).input){if(u.setCursor(i.input),i.emit(d.GAMEOBJECT_POINTER_OVER,t,i.input.localX,i.input.localY,f),c++,p.cancelled||!i.input){m=!0;break}if(this.emit(d.GAMEOBJECT_OVER,t,i,f),p.cancelled||!i.input){m=!0;break}}m||this.emit(d.POINTER_OVER,t,s)}return a=o.concat(s),this._over[t.id]=this.sortGameObjects(a),c},processUpEvents:function(t){var e=this._temp,i=this._eventData,n=this._eventContainer;i.cancelled=!1;for(var r=!1,s=0;s<e.length;s++){var o=e[s];if(o.input){if(o.emit(d.GAMEOBJECT_POINTER_UP,t,o.input.localX,o.input.localY,n),i.cancelled||!o.input){r=!0;break}if(this.emit(d.GAMEOBJECT_UP,t,o,n),i.cancelled||!o.input){r=!0;break}}}return!r&&this.manager&&(t.upElement===this.manager.game.canvas?this.emit(d.POINTER_UP,t,e):this.emit(d.POINTER_UP_OUTSIDE,t)),e.length},queueForInsertion:function(t){return-1===this._pendingInsertion.indexOf(t)&&-1===this._list.indexOf(t)&&this._pendingInsertion.push(t),this},queueForRemoval:function(t){return this._pendingRemoval.push(t),this},setDraggable:function(t,e){void 0===e&&(e=!0),Array.isArray(t)||(t=[t]);for(var i=0;i<t.length;i++){var n=t[i];n.input.draggable=e;var r=this._draggable.indexOf(n);e&&-1===r?this._draggable.push(n):!e&&r>-1&&this._draggable.splice(r,1)}return this},makePixelPerfect:function(t){void 0===t&&(t=1);var e=this.systems.textures;return h(e,t)},setHitArea:function(t,e,i){if(void 0===e)return this.setHitAreaFromTexture(t);Array.isArray(t)||(t=[t]);var n=!1,r=!1,s=!1,o=!1,h=!1,u=!0;if(g(e)){var l=e;e=f(l,"hitArea",null),i=f(l,"hitAreaCallback",null),n=f(l,"draggable",!1),r=f(l,"dropZone",!1),s=f(l,"cursor",!1),o=f(l,"useHandCursor",!1),h=f(l,"pixelPerfect",!1);var c=f(l,"alphaTolerance",1);h&&(e={},i=this.makePixelPerfect(c)),e&&i||(this.setHitAreaFromTexture(t),u=!1)}else"function"!=typeof e||i||(i=e,e={});for(var d=0;d<t.length;d++){var p=t[d];if(h&&"Container"===p.type)console.warn("Cannot pixelPerfect test a Container. Use a custom callback.");else{var m=p.input?p.input:a(p,e,i);m.customHitArea=u,m.dropZone=r,m.cursor=o?"pointer":s,p.input=m,n&&this.setDraggable(p),this.queueForInsertion(p)}}return this},setHitAreaCircle:function(t,e,i,s,o){void 0===o&&(o=r);var a=new n(e,i,s);return this.setHitArea(t,a,o)},setHitAreaEllipse:function(t,e,i,n,r,s){void 0===s&&(s=c);var o=new l(e,i,n,r);return this.setHitArea(t,o,s)},setHitAreaFromTexture:function(t,e){void 0===e&&(e=x),Array.isArray(t)||(t=[t]);for(var i=0;i<t.length;i++){var n=t[i],r=n.frame,s=0,o=0;n.width?(s=n.width,o=n.height):r&&(s=r.realWidth,o=r.realHeight),"Container"!==n.type||0!==s&&0!==o?0!==s&&0!==o&&(n.input=a(n,new _(0,0,s,o),e),this.queueForInsertion(n)):console.warn("Container.setInteractive must specify a Shape or call setSize() first")}return this},setHitAreaRectangle:function(t,e,i,n,r,s){void 0===s&&(s=x);var o=new _(e,i,n,r);return this.setHitArea(t,o,s)},setHitAreaTriangle:function(t,e,i,n,r,s,o,a){void 0===a&&(a=T);var h=new w(e,i,n,r,s,o);return this.setHitArea(t,h,a)},enableDebug:function(t,e){void 0===e&&(e=65280);var i=t.input;if(!i||!i.hitArea)return this;var n=i.hitArea,r=n.type,s=i.hitAreaDebug,o=this.systems.add,a=this.systems.updateList;s&&(a.remove(s),s.destroy(),s=null);var h=0,u=0;switch(r){case m.CIRCLE:s=o.arc(0,0,n.radius),h=n.x-n.radius,u=n.y-n.radius;break;case m.ELLIPSE:s=o.ellipse(0,0,n.width,n.height),h=n.x-n.width/2,u=n.y-n.height/2;break;case m.LINE:s=o.line(0,0,n.x1,n.y1,n.x2,n.y2);break;case m.POLYGON:s=o.polygon(0,0,n.points);break;case m.RECTANGLE:s=o.rectangle(0,0,n.width,n.height),h=n.x,u=n.y;break;case m.TRIANGLE:s=o.triangle(0,0,n.x1,n.y1,n.x2,n.y2,n.x3,n.y3)}return s&&(s.isFilled=!1,s.preUpdate=function(){s.setStrokeStyle(1/t.scale,e),s.setDisplayOrigin(t.displayOriginX,t.displayOriginY);var i=t.x,n=t.y,r=t.rotation,o=t.scaleX,a=t.scaleY;if(t.parentContainer){var l=t.getWorldTransformMatrix();i=l.tx,n=l.ty,r=l.rotation,o=l.scaleX,a=l.scaleY}s.setRotation(r),s.setScale(o,a),s.setPosition(i+h,n+u),s.setScrollFactor(t.scrollFactorX,t.scrollFactorY),s.setDepth(t.depth)},a.add(s),i.hitAreaDebug=s),this},removeDebug:function(t){var e=t.input;if(e&&e.hitAreaDebug){var i=e.hitAreaDebug;this.systems.updateList.remove(i),i.destroy(),e.hitAreaDebug=null}return this},setPollAlways:function(){return this.setPollRate(0)},setPollOnMove:function(){return this.setPollRate(-1)},setPollRate:function(t){return this.pollRate=t,this._pollTimer=0,this},setGlobalTopOnly:function(t){return this.manager.globalTopOnly=t,this},setTopOnly:function(t){return this.topOnly=t,this},sortGameObjects:function(t){return t.length<2?t:(this.scene.sys.depthSort(),t.sort(this.sortHandlerGO.bind(this)))},sortHandlerGO:function(t,e){if(t.parentContainer||e.parentContainer){if(t.parentContainer===e.parentContainer)return e.parentContainer.getIndex(e)-t.parentContainer.getIndex(t);if(t.parentContainer===e)return-1;if(e.parentContainer===t)return 1;for(var i=t.getIndexList(),n=e.getIndexList(),r=Math.min(i.length,n.length),s=0;s<r;s++){var o=i[s],a=n[s];if(o!==a)return a-o}return n.length-i.length}return this.displayList.getIndex(e)-this.displayList.getIndex(t)},stopPropagation:function(){return this.manager._tempSkip=!0,this},addPointer:function(t){return this.manager.addPointer(t)},setDefaultCursor:function(t){return this.manager.setDefaultCursor(t),this},transitionIn:function(){this.enabled=this.settings.transitionAllowInput},transitionComplete:function(){this.settings.transitionAllowInput||(this.enabled=!0)},transitionOut:function(){this.enabled=this.settings.transitionAllowInput},shutdown:function(){this.pluginEvents.emit(d.SHUTDOWN),this._temp.length=0,this._list.length=0,this._draggable.length=0,this._pendingRemoval.length=0,this._pendingInsertion.length=0,this._dragState.length=0;for(var t=0;t<10;t++)this._drag[t]=[],this._over[t]=[];this.removeAllListeners();var e=this.systems.events;e.off(b.TRANSITION_START,this.transitionIn,this),e.off(b.TRANSITION_OUT,this.transitionOut,this),e.off(b.TRANSITION_COMPLETE,this.transitionComplete,this),e.off(b.PRE_UPDATE,this.preUpdate,this),this.manager.events.off(d.GAME_OUT,this.onGameOut,this),this.manager.events.off(d.GAME_OVER,this.onGameOver,this),e.off(b.SHUTDOWN,this.shutdown,this)},destroy:function(){this.shutdown(),this.pluginEvents.emit(d.DESTROY),this.pluginEvents.removeAllListeners(),this.scene.sys.events.off(b.START,this.start,this),this.scene=null,this.cameras=null,this.manager=null,this.events=null,this.mouse=null},x:{get:function(){return this.manager.activePointer.x}},y:{get:function(){return this.manager.activePointer.y}},isOver:{get:function(){return this.manager.isOver}},mousePointer:{get:function(){return this.manager.mousePointer}},activePointer:{get:function(){return this.manager.activePointer}},pointer1:{get:function(){return this.manager.pointers[1]}},pointer2:{get:function(){return this.manager.pointers[2]}},pointer3:{get:function(){return this.manager.pointers[3]}},pointer4:{get:function(){return this.manager.pointers[4]}},pointer5:{get:function(){return this.manager.pointers[5]}},pointer6:{get:function(){return this.manager.pointers[6]}},pointer7:{get:function(){return this.manager.pointers[7]}},pointer8:{get:function(){return this.manager.pointers[8]}},pointer9:{get:function(){return this.manager.pointers[9]}},pointer10:{get:function(){return this.manager.pointers[10]}}});y.register("InputPlugin",M,"input"),t.exports=M},54471:(t,e,i)=>{var n=i(86652),r={},s={register:function(t,e,i,n,s){r[t]={plugin:e,mapping:i,settingsKey:n,configKey:s}},getPlugin:function(t){return r[t]},install:function(t){var e=t.scene.sys,i=e.settings.input,s=e.game.config;for(var o in r){var a=r[o].plugin,h=r[o].mapping,u=r[o].settingsKey,l=r[o].configKey;n(i,u,s[l])&&(t[h]=new a(t))}},remove:function(t){r.hasOwnProperty(t)&&delete r[t]}};t.exports=s},94661:(t,e,i)=>{var n=i(72124),r=i(47379),s=i(73587),o=i(70077),a=i(15579),h=i(57148),u=new r({initialize:function(t,e){this.manager=t,this.id=e,this.event,this.downElement,this.upElement,this.camera=null,this.button=0,this.buttons=0,this.position=new h,this.prevPosition=new h,this.midPoint=new h(-1,-1),this.velocity=new h,this.angle=0,this.distance=0,this.smoothFactor=0,this.motionFactor=.2,this.worldX=0,this.worldY=0,this.moveTime=0,this.downX=0,this.downY=0,this.downTime=0,this.upX=0,this.upY=0,this.upTime=0,this.primaryDown=!1,this.isDown=!1,this.wasTouch=!1,this.wasCanceled=!1,this.movementX=0,this.movementY=0,this.identifier=0,this.pointerId=null,this.active=0===e,this.locked=!1,this.deltaX=0,this.deltaY=0,this.deltaZ=0},updateWorldPoint:function(t){var e=this.x,i=this.y;1!==t.resolution&&(e+=t._x,i+=t._y);var n=t.getWorldPoint(e,i);return this.worldX=n.x,this.worldY=n.y,this},positionToCamera:function(t,e){return t.getWorldPoint(this.x,this.y,e)},updateMotion:function(){var t=this.position.x,e=this.position.y,i=this.midPoint.x,r=this.midPoint.y;if(t!==i||e!==r){var s=a(this.motionFactor,i,t),h=a(this.motionFactor,r,e);o(s,t,.1)&&(s=t),o(h,e,.1)&&(h=e),this.midPoint.set(s,h);var u=t-s,l=e-h;this.velocity.set(u,l),this.angle=n(s,h,t,e),this.distance=Math.sqrt(u*u+l*l)}},up:function(t){"buttons"in t&&(this.buttons=t.buttons),this.event=t,this.button=t.button,this.upElement=t.target,this.manager.transformPointer(this,t.pageX,t.pageY,!1),0===t.button&&(this.primaryDown=!1,this.upX=this.x,this.upY=this.y,this.upTime=t.timeStamp),this.isDown=!1,this.wasTouch=!1},down:function(t){"buttons"in t&&(this.buttons=t.buttons),this.event=t,this.button=t.button,this.downElement=t.target,this.manager.transformPointer(this,t.pageX,t.pageY,!1),0===t.button&&(this.primaryDown=!0,this.downX=this.x,this.downY=this.y,this.downTime=t.timeStamp),this.isDown=!0,this.wasTouch=!1},move:function(t){"buttons"in t&&(this.buttons=t.buttons),this.event=t,this.manager.transformPointer(this,t.pageX,t.pageY,!0),this.locked&&(this.movementX=t.movementX||t.mozMovementX||t.webkitMovementX||0,this.movementY=t.movementY||t.mozMovementY||t.webkitMovementY||0),this.moveTime=t.timeStamp,this.wasTouch=!1},wheel:function(t){"buttons"in t&&(this.buttons=t.buttons),this.event=t,this.manager.transformPointer(this,t.pageX,t.pageY,!1),this.deltaX=t.deltaX,this.deltaY=t.deltaY,this.deltaZ=t.deltaZ,this.wasTouch=!1},touchstart:function(t,e){t.pointerId&&(this.pointerId=t.pointerId),this.identifier=t.identifier,this.target=t.target,this.active=!0,this.buttons=1,this.event=e,this.downElement=t.target,this.manager.transformPointer(this,t.pageX,t.pageY,!1),this.primaryDown=!0,this.downX=this.x,this.downY=this.y,this.downTime=e.timeStamp,this.isDown=!0,this.wasTouch=!0,this.wasCanceled=!1,this.updateMotion()},touchmove:function(t,e){this.event=e,this.manager.transformPointer(this,t.pageX,t.pageY,!0),this.moveTime=e.timeStamp,this.wasTouch=!0,this.updateMotion()},touchend:function(t,e){this.buttons=0,this.event=e,this.upElement=t.target,this.manager.transformPointer(this,t.pageX,t.pageY,!1),this.primaryDown=!1,this.upX=this.x,this.upY=this.y,this.upTime=e.timeStamp,this.isDown=!1,this.wasTouch=!0,this.wasCanceled=!1,this.active=!1,this.updateMotion()},touchcancel:function(t,e){this.buttons=0,this.event=e,this.upElement=t.target,this.manager.transformPointer(this,t.pageX,t.pageY,!1),this.primaryDown=!1,this.upX=this.x,this.upY=this.y,this.upTime=e.timeStamp,this.isDown=!1,this.wasTouch=!0,this.wasCanceled=!0,this.active=!1},noButtonDown:function(){return 0===this.buttons},leftButtonDown:function(){return!!(1&this.buttons)},rightButtonDown:function(){return!!(2&this.buttons)},middleButtonDown:function(){return!!(4&this.buttons)},backButtonDown:function(){return!!(8&this.buttons)},forwardButtonDown:function(){return!!(16&this.buttons)},leftButtonReleased:function(){return 0===this.button&&!this.isDown},rightButtonReleased:function(){return 2===this.button&&!this.isDown},middleButtonReleased:function(){return 1===this.button&&!this.isDown},backButtonReleased:function(){return 3===this.button&&!this.isDown},forwardButtonReleased:function(){return 4===this.button&&!this.isDown},getDistance:function(){return this.isDown?s(this.downX,this.downY,this.x,this.y):s(this.downX,this.downY,this.upX,this.upY)},getDistanceX:function(){return this.isDown?Math.abs(this.downX-this.x):Math.abs(this.downX-this.upX)},getDistanceY:function(){return this.isDown?Math.abs(this.downY-this.y):Math.abs(this.downY-this.upY)},getDuration:function(){return this.isDown?this.manager.time-this.downTime:this.upTime-this.downTime},getAngle:function(){return this.isDown?n(this.downX,this.downY,this.x,this.y):n(this.downX,this.downY,this.upX,this.upY)},getInterpolatedPosition:function(t,e){void 0===t&&(t=10),void 0===e&&(e=[]);for(var i=this.prevPosition.x,n=this.prevPosition.y,r=this.position.x,s=this.position.y,o=0;o<t;o++){var h=1/t*o;e[o]={x:a(h,i,r),y:a(h,n,s)}}return e},destroy:function(){this.camera=null,this.manager=null,this.position=null},x:{get:function(){return this.position.x},set:function(t){this.position.x=t}},y:{get:function(){return this.position.y},set:function(t){this.position.y=t}},time:{get:function(){return this.event?this.event.timeStamp:0}}});t.exports=u},77625:t=>{t.exports={MOUSE_DOWN:0,MOUSE_MOVE:1,MOUSE_UP:2,TOUCH_START:3,TOUCH_MOVE:4,TOUCH_END:5,POINTER_LOCK_CHANGE:6,TOUCH_CANCEL:7,MOUSE_WHEEL:8}},8112:t=>{t.exports="boot"},58234:t=>{t.exports="destroy"},41978:t=>{t.exports="dragend"},43587:t=>{t.exports="dragenter"},88172:t=>{t.exports="drag"},99870:t=>{t.exports="dragleave"},43861:t=>{t.exports="dragover"},88173:t=>{t.exports="dragstart"},33064:t=>{t.exports="drop"},79859:t=>{t.exports="gameobjectdown"},29170:t=>{t.exports="dragend"},83829:t=>{t.exports="dragenter"},20604:t=>{t.exports="drag"},78516:t=>{t.exports="dragleave"},35251:t=>{t.exports="dragover"},6147:t=>{t.exports="dragstart"},31175:t=>{t.exports="drop"},45439:t=>{t.exports="gameobjectmove"},60078:t=>{t.exports="gameobjectout"},23424:t=>{t.exports="gameobjectover"},50:t=>{t.exports="pointerdown"},49432:t=>{t.exports="pointermove"},82037:t=>{t.exports="pointerout"},51667:t=>{t.exports="pointerover"},63883:t=>{t.exports="pointerup"},14790:t=>{t.exports="wheel"},94745:t=>{t.exports="gameobjectup"},40390:t=>{t.exports="gameobjectwheel"},8694:t=>{t.exports="gameout"},9284:t=>{t.exports="gameover"},97430:t=>{t.exports="boot"},911:t=>{t.exports="process"},24527:t=>{t.exports="update"},43982:t=>{t.exports="pointerlockchange"},83217:t=>{t.exports="pointerdown"},52825:t=>{t.exports="pointerdownoutside"},32619:t=>{t.exports="pointermove"},89407:t=>{t.exports="pointerout"},64076:t=>{t.exports="pointerover"},66038:t=>{t.exports="pointerup"},79657:t=>{t.exports="pointerupoutside"},22553:t=>{t.exports="wheel"},1222:t=>{t.exports="preupdate"},66301:t=>{t.exports="shutdown"},33538:t=>{t.exports="start"},85279:t=>{t.exports="update"},22620:(t,e,i)=>{t.exports={BOOT:i(8112),DESTROY:i(58234),DRAG_END:i(41978),DRAG_ENTER:i(43587),DRAG:i(88172),DRAG_LEAVE:i(99870),DRAG_OVER:i(43861),DRAG_START:i(88173),DROP:i(33064),GAME_OUT:i(8694),GAME_OVER:i(9284),GAMEOBJECT_DOWN:i(79859),GAMEOBJECT_DRAG_END:i(29170),GAMEOBJECT_DRAG_ENTER:i(83829),GAMEOBJECT_DRAG:i(20604),GAMEOBJECT_DRAG_LEAVE:i(78516),GAMEOBJECT_DRAG_OVER:i(35251),GAMEOBJECT_DRAG_START:i(6147),GAMEOBJECT_DROP:i(31175),GAMEOBJECT_MOVE:i(45439),GAMEOBJECT_OUT:i(60078),GAMEOBJECT_OVER:i(23424),GAMEOBJECT_POINTER_DOWN:i(50),GAMEOBJECT_POINTER_MOVE:i(49432),GAMEOBJECT_POINTER_OUT:i(82037),GAMEOBJECT_POINTER_OVER:i(51667),GAMEOBJECT_POINTER_UP:i(63883),GAMEOBJECT_POINTER_WHEEL:i(14790),GAMEOBJECT_UP:i(94745),GAMEOBJECT_WHEEL:i(40390),MANAGER_BOOT:i(97430),MANAGER_PROCESS:i(911),MANAGER_UPDATE:i(24527),POINTER_DOWN:i(83217),POINTER_DOWN_OUTSIDE:i(52825),POINTER_MOVE:i(32619),POINTER_OUT:i(89407),POINTER_OVER:i(64076),POINTER_UP:i(66038),POINTER_UP_OUTSIDE:i(79657),POINTER_WHEEL:i(22553),POINTERLOCK_CHANGE:i(43982),PRE_UPDATE:i(1222),SHUTDOWN:i(66301),START:i(33538),UPDATE:i(85279)}},63259:(t,e,i)=>{var n=new(i(47379))({initialize:function(t,e){this.pad=t,this.events=t.events,this.index=e,this.value=0,this.threshold=.1},update:function(t){this.value=t},getValue:function(){return Math.abs(this.value)<this.threshold?0:this.value},destroy:function(){this.pad=null,this.events=null}});t.exports=n},66792:(t,e,i)=>{var n=i(47379),r=i(29916),s=new n({initialize:function(t,e){this.pad=t,this.events=t.manager,this.index=e,this.value=0,this.threshold=1,this.pressed=!1},update:function(t){this.value=t;var e=this.pad,i=this.index;t>=this.threshold?this.pressed||(this.pressed=!0,this.events.emit(r.BUTTON_DOWN,e,this,t),this.pad.emit(r.GAMEPAD_BUTTON_DOWN,i,t,this)):this.pressed&&(this.pressed=!1,this.events.emit(r.BUTTON_UP,e,this,t),this.pad.emit(r.GAMEPAD_BUTTON_UP,i,t,this))},destroy:function(){this.pad=null,this.events=null}});t.exports=s},2115:(t,e,i)=>{var n=i(63259),r=i(66792),s=i(47379),o=i(17168),a=i(57148),h=new s({Extends:o,initialize:function(t,e){o.call(this),this.manager=t,this.pad=e,this.id=e.id,this.index=e.index;for(var i=[],s=0;s<e.buttons.length;s++)i.push(new r(this,s));this.buttons=i;var h=[];for(s=0;s<e.axes.length;s++)h.push(new n(this,s));this.axes=h,this.vibration=e.vibrationActuator;var u={value:0,pressed:!1};this._LCLeft=i[14]?i[14]:u,this._LCRight=i[15]?i[15]:u,this._LCTop=i[12]?i[12]:u,this._LCBottom=i[13]?i[13]:u,this._RCLeft=i[2]?i[2]:u,this._RCRight=i[1]?i[1]:u,this._RCTop=i[3]?i[3]:u,this._RCBottom=i[0]?i[0]:u,this._FBLeftTop=i[4]?i[4]:u,this._FBLeftBottom=i[6]?i[6]:u,this._FBRightTop=i[5]?i[5]:u,this._FBRightBottom=i[7]?i[7]:u;var l={value:0};this._HAxisLeft=h[0]?h[0]:l,this._VAxisLeft=h[1]?h[1]:l,this._HAxisRight=h[2]?h[2]:l,this._VAxisRight=h[3]?h[3]:l,this.leftStick=new a,this.rightStick=new a},getAxisTotal:function(){return this.axes.length},getAxisValue:function(t){return this.axes[t].getValue()},setAxisThreshold:function(t){for(var e=0;e<this.axes.length;e++)this.axes[e].threshold=t},getButtonTotal:function(){return this.buttons.length},getButtonValue:function(t){return this.buttons[t].value},isButtonDown:function(t){return this.buttons[t].pressed},update:function(t){var e,i=this.buttons,n=t.buttons,r=i.length;for(e=0;e<r;e++)i[e].update(n[e].value);var s=this.axes,o=t.axes;for(r=s.length,e=0;e<r;e++)s[e].update(o[e]);r>=2&&(this.leftStick.set(s[0].getValue(),s[1].getValue()),r>=4&&this.rightStick.set(s[2].getValue(),s[3].getValue()))},destroy:function(){var t;for(this.removeAllListeners(),this.manager=null,this.pad=null,t=0;t<this.buttons.length;t++)this.buttons[t].destroy();for(t=0;t<this.axes.length;t++)this.axes[t].destroy();this.buttons=[],this.axes=[]},connected:{get:function(){return this.pad.connected}},timestamp:{get:function(){return this.pad.timestamp}},left:{get:function(){return this._LCLeft.pressed}},right:{get:function(){return this._LCRight.pressed}},up:{get:function(){return this._LCTop.pressed}},down:{get:function(){return this._LCBottom.pressed}},A:{get:function(){return this._RCBottom.pressed}},Y:{get:function(){return this._RCTop.pressed}},X:{get:function(){return this._RCLeft.pressed}},B:{get:function(){return this._RCRight.pressed}},L1:{get:function(){return this._FBLeftTop.value}},L2:{get:function(){return this._FBLeftBottom.value}},R1:{get:function(){return this._FBRightTop.value}},R2:{get:function(){return this._FBRightBottom.value}}});t.exports=h},96151:(t,e,i)=>{var n=i(47379),r=i(17168),s=i(29916),o=i(2115),a=i(86652),h=i(54471),u=i(22620),l=new n({Extends:r,initialize:function(t){r.call(this),this.scene=t.scene,this.settings=this.scene.sys.settings,this.sceneInputPlugin=t,this.enabled=!0,this.target,this.gamepads=[],this.queue=[],this.onGamepadHandler,this._pad1,this._pad2,this._pad3,this._pad4,t.pluginEvents.once(u.BOOT,this.boot,this),t.pluginEvents.on(u.START,this.start,this)},boot:function(){var t=this.scene.sys.game,e=this.settings.input,i=t.config;this.enabled=a(e,"gamepad",i.inputGamepad)&&t.device.input.gamepads,this.target=a(e,"gamepad.target",i.inputGamepadEventTarget),this.sceneInputPlugin.pluginEvents.once(u.DESTROY,this.destroy,this)},start:function(){this.enabled&&this.startListeners(),this.sceneInputPlugin.pluginEvents.once(u.SHUTDOWN,this.shutdown,this)},isActive:function(){return this.enabled&&this.scene.sys.isActive()},startListeners:function(){var t=this,e=this.target,i=function(e){!e.defaultPrevented&&t.isActive()&&(t.refreshPads(),t.queue.push(e))};this.onGamepadHandler=i,e.addEventListener("gamepadconnected",i,!1),e.addEventListener("gamepaddisconnected",i,!1),this.sceneInputPlugin.pluginEvents.on(u.UPDATE,this.update,this)},stopListeners:function(){this.target.removeEventListener("gamepadconnected",this.onGamepadHandler),this.target.removeEventListener("gamepaddisconnected",this.onGamepadHandler),this.sceneInputPlugin.pluginEvents.off(u.UPDATE,this.update)},disconnectAll:function(){for(var t=0;t<this.gamepads.length;t++)this.gamepads.connected=!1},refreshPads:function(){var t=navigator.getGamepads();if(t)for(var e=this.gamepads,i=0;i<t.length;i++){var n=t[i];if(n){var r=n.id,s=n.index,a=e[s];if(a)a.id!==r?(a.destroy(),e[s]=new o(this,n)):a.update(n);else{var h=new o(this,n);e[s]=h,this._pad1?this._pad2?this._pad3?this._pad4||(this._pad4=h):this._pad3=h:this._pad2=h:this._pad1=h}}}else this.disconnectAll()},getAll:function(){for(var t=[],e=this.gamepads,i=0;i<e.length;i++)e[i]&&t.push(e[i]);return t},getPad:function(t){for(var e=this.gamepads,i=0;i<e.length;i++)if(e[i]&&e[i].index===t)return e[i]},update:function(){if(this.enabled){this.refreshPads();var t=this.queue.length;if(0!==t)for(var e=this.queue.splice(0,t),i=0;i<t;i++){var n=e[i],r=this.getPad(n.gamepad.index);"gamepadconnected"===n.type?this.emit(s.CONNECTED,r,n):"gamepaddisconnected"===n.type&&this.emit(s.DISCONNECTED,r,n)}}},shutdown:function(){this.stopListeners(),this.disconnectAll(),this.removeAllListeners()},destroy:function(){this.shutdown();for(var t=0;t<this.gamepads.length;t++)this.gamepads[t]&&this.gamepads[t].destroy();this.gamepads=[],this.scene=null,this.settings=null,this.sceneInputPlugin=null,this.target=null},total:{get:function(){return this.gamepads.length}},pad1:{get:function(){return this._pad1}},pad2:{get:function(){return this._pad2}},pad3:{get:function(){return this._pad3}},pad4:{get:function(){return this._pad4}}});h.register("GamepadPlugin",l,"gamepad","gamepad","inputGamepad"),t.exports=l},53724:t=>{t.exports={UP:12,DOWN:13,LEFT:14,RIGHT:15,SELECT:8,START:9,B:0,A:1,Y:2,X:3,LEFT_SHOULDER:4,RIGHT_SHOULDER:5}},51264:t=>{t.exports={UP:12,DOWN:13,LEFT:14,RIGHT:15,SHARE:8,OPTIONS:9,PS:16,TOUCHBAR:17,X:0,CIRCLE:1,SQUARE:2,TRIANGLE:3,L1:4,R1:5,L2:6,R2:7,L3:10,R3:11,LEFT_STICK_H:0,LEFT_STICK_V:1,RIGHT_STICK_H:2,RIGHT_STICK_V:3}},2695:t=>{t.exports={UP:12,DOWN:13,LEFT:14,RIGHT:15,MENU:16,A:0,B:1,X:2,Y:3,LB:4,RB:5,LT:6,RT:7,BACK:8,START:9,LS:10,RS:11,LEFT_STICK_H:0,LEFT_STICK_V:1,RIGHT_STICK_H:2,RIGHT_STICK_V:3}},96126:(t,e,i)=>{t.exports={DUALSHOCK_4:i(51264),SNES_USB:i(53724),XBOX_360:i(2695)}},69941:t=>{t.exports="down"},35831:t=>{t.exports="up"},76402:t=>{t.exports="connected"},32880:t=>{t.exports="disconnected"},52369:t=>{t.exports="down"},60560:t=>{t.exports="up"},29916:(t,e,i)=>{t.exports={BUTTON_DOWN:i(69941),BUTTON_UP:i(35831),CONNECTED:i(76402),DISCONNECTED:i(32880),GAMEPAD_BUTTON_DOWN:i(52369),GAMEPAD_BUTTON_UP:i(60560)}},95521:(t,e,i)=>{t.exports={Axis:i(63259),Button:i(66792),Events:i(29916),Gamepad:i(2115),GamepadPlugin:i(96151),Configs:i(96126)}},26417:(t,e,i)=>{var n=i(77625),r=i(80933),s={CreateInteractiveObject:i(91188),Events:i(22620),Gamepad:i(95521),InputManager:i(80771),InputPlugin:i(98964),InputPluginCache:i(54471),Keyboard:i(87626),Mouse:i(32879),Pointer:i(94661),Touch:i(71793)};s=r(!1,s,n),t.exports=s},72493:(t,e,i)=>{var n=i(60625),r=i(47379),s=i(80827),o=i(22620),a=i(25302),h=i(47379),u=new r({initialize:function(t){this.manager=t,this.queue=[],this.preventDefault=!0,this.captures=[],this.enabled=!1,this.target,this.onKeyDown=h,this.onKeyUp=h,t.events.once(o.MANAGER_BOOT,this.boot,this)},boot:function(){var t=this.manager.config;this.enabled=t.inputKeyboard,this.target=t.inputKeyboardEventTarget,this.addCapture(t.inputKeyboardCapture),!this.target&&window&&(this.target=window),this.enabled&&this.target&&this.startListeners(),this.manager.game.events.on(s.POST_STEP,this.postUpdate,this)},startListeners:function(){var t=this;this.onKeyDown=function(e){if(!e.defaultPrevented&&t.enabled&&t.manager){t.queue.push(e),t.manager.useQueue||t.manager.events.emit(o.MANAGER_PROCESS);var i=e.altKey||e.ctrlKey||e.shiftKey||e.metaKey;t.preventDefault&&!i&&t.captures.indexOf(e.keyCode)>-1&&e.preventDefault()}},this.onKeyUp=function(e){if(!e.defaultPrevented&&t.enabled&&t.manager){t.queue.push(e),t.manager.useQueue||t.manager.events.emit(o.MANAGER_PROCESS);var i=e.altKey||e.ctrlKey||e.shiftKey||e.metaKey;t.preventDefault&&!i&&t.captures.indexOf(e.keyCode)>-1&&e.preventDefault()}};var e=this.target;e&&(e.addEventListener("keydown",this.onKeyDown,!1),e.addEventListener("keyup",this.onKeyUp,!1),this.enabled=!0)},stopListeners:function(){var t=this.target;t.removeEventListener("keydown",this.onKeyDown,!1),t.removeEventListener("keyup",this.onKeyUp,!1),this.enabled=!1},postUpdate:function(){this.queue=[]},addCapture:function(t){"string"==typeof t&&(t=t.split(",")),Array.isArray(t)||(t=[t]);for(var e=this.captures,i=0;i<t.length;i++){var n=t[i];"string"==typeof n&&(n=a[n.trim().toUpperCase()]),-1===e.indexOf(n)&&e.push(n)}this.preventDefault=e.length>0},removeCapture:function(t){"string"==typeof t&&(t=t.split(",")),Array.isArray(t)||(t=[t]);for(var e=this.captures,i=0;i<t.length;i++){var r=t[i];"string"==typeof r&&(r=a[r.toUpperCase()]),n(e,r)}this.preventDefault=e.length>0},clearCaptures:function(){this.captures=[],this.preventDefault=!1},destroy:function(){this.stopListeners(),this.clearCaptures(),this.queue=[],this.manager.game.events.off(s.POST_RENDER,this.postUpdate,this),this.target=null,this.enabled=!1,this.manager=null}});t.exports=u},54917:(t,e,i)=>{var n=i(47379),r=i(17168),s=i(33583),o=i(80827),a=i(86652),h=i(22620),u=i(54471),l=i(19577),c=i(25302),d=i(76085),p=i(59564),f=i(88168),m=new n({Extends:r,initialize:function(t){r.call(this),this.game=t.systems.game,this.scene=t.scene,this.settings=this.scene.sys.settings,this.sceneInputPlugin=t,this.manager=t.manager.keyboard,this.enabled=!0,this.keys=[],this.combos=[],t.pluginEvents.once(h.BOOT,this.boot,this),t.pluginEvents.on(h.START,this.start,this)},boot:function(){var t=this.settings.input;this.enabled=a(t,"keyboard",!0);var e=a(t,"keyboard.capture",null);e&&this.addCaptures(e),this.sceneInputPlugin.pluginEvents.once(h.DESTROY,this.destroy,this)},start:function(){this.sceneInputPlugin.manager.useQueue?this.sceneInputPlugin.pluginEvents.on(h.UPDATE,this.update,this):this.sceneInputPlugin.manager.events.on(h.MANAGER_PROCESS,this.update,this),this.sceneInputPlugin.pluginEvents.once(h.SHUTDOWN,this.shutdown,this),this.game.events.on(o.BLUR,this.resetKeys,this)},isActive:function(){return this.enabled&&this.scene.sys.isActive()},addCapture:function(t){return this.manager.addCapture(t),this},removeCapture:function(t){return this.manager.removeCapture(t),this},getCaptures:function(){return this.manager.captures},enableGlobalCapture:function(){return this.manager.preventDefault=!0,this},disableGlobalCapture:function(){return this.manager.preventDefault=!1,this},clearCaptures:function(){return this.manager.clearCaptures(),this},createCursorKeys:function(){return this.addKeys({up:c.UP,down:c.DOWN,left:c.LEFT,right:c.RIGHT,space:c.SPACE,shift:c.SHIFT})},addKeys:function(t,e,i){void 0===e&&(e=!0),void 0===i&&(i=!1);var n={};if("string"==typeof t){t=t.split(",");for(var r=0;r<t.length;r++){var s=t[r].trim();s&&(n[s]=this.addKey(s,e,i))}}else for(var o in t)n[o]=this.addKey(t[o],e,i);return n},addKey:function(t,e,i){void 0===e&&(e=!0),void 0===i&&(i=!1);var n=this.keys;if(t instanceof l){var r=n.indexOf(t);return r>-1?n[r]=t:n[t.keyCode]=t,e&&this.addCapture(t.keyCode),t.setEmitOnRepeat(i),t}return"string"==typeof t&&(t=c[t.toUpperCase()]),n[t]||(n[t]=new l(this,t),e&&this.addCapture(t),n[t].setEmitOnRepeat(i)),n[t]},removeKey:function(t,e){void 0===e&&(e=!1);var i,n=this.keys;if(t instanceof l){var r=n.indexOf(t);r>-1&&(i=this.keys[r],this.keys[r]=void 0)}else"string"==typeof t&&(t=c[t.toUpperCase()]);return n[t]&&(i=n[t],n[t]=void 0),i&&(i.plugin=null,e&&i.destroy()),this},createCombo:function(t,e){return new d(this,t,e)},checkDown:function(t,e){if(this.enabled&&t.isDown){var i=f(this.time-t.timeDown,e);if(i>t._tick)return t._tick=i,!0}return!1},update:function(){var t=this.manager.queue,e=t.length;if(this.isActive()&&0!==e)for(var i=this.keys,n=0;n<e;n++){var r=t[n],o=r.keyCode,a=i[o],h=!1;void 0===r.cancelled&&(r.cancelled=0,r.stopImmediatePropagation=function(){r.cancelled=1},r.stopPropagation=function(){r.cancelled=-1}),-1!==r.cancelled&&("keydown"===r.type?(a&&(h=a.isDown,a.onDown(r)),r.cancelled||a&&h||(p[o]&&(this.emit(s.KEY_DOWN+p[o],r),this.emit("keydown_"+p[o],r)),r.cancelled||this.emit(s.ANY_KEY_DOWN,r))):(a&&a.onUp(r),r.cancelled||(p[o]&&(this.emit(s.KEY_UP+p[o],r),this.emit("keyup_"+p[o],r)),r.cancelled||this.emit(s.ANY_KEY_UP,r))),1===r.cancelled&&(r.cancelled=0))}},resetKeys:function(){for(var t=this.keys,e=0;e<t.length;e++)t[e]&&t[e].reset();return this},shutdown:function(){this.resetKeys(),this.sceneInputPlugin.manager.useQueue?this.sceneInputPlugin.pluginEvents.off(h.UPDATE,this.update,this):this.sceneInputPlugin.manager.events.off(h.MANAGER_PROCESS,this.update,this),this.game.events.off(o.BLUR,this.resetKeys),this.removeAllListeners(),this.queue=[]},destroy:function(){this.shutdown();for(var t=this.keys,e=0;e<t.length;e++)t[e]&&t[e].destroy();this.keys=[],this.combos=[],this.queue=[],this.scene=null,this.settings=null,this.sceneInputPlugin=null,this.manager=null},time:{get:function(){return this.sceneInputPlugin.manager.time}}});u.register("KeyboardPlugin",m,"keyboard","keyboard","inputKeyboard"),t.exports=m},44893:t=>{t.exports=function(t,e){return e.timeLastMatched=t.timeStamp,e.index++,e.index===e.size||(e.current=e.keyCodes[e.index],!1)}},76085:(t,e,i)=>{var n=i(47379),r=i(33583),s=i(81769),o=i(55847),a=i(76251),h=new n({initialize:function(t,e,i){if(void 0===i&&(i={}),e.length<2)return!1;this.manager=t,this.enabled=!0,this.keyCodes=[];for(var n=0;n<e.length;n++){var h=e[n];"string"==typeof h?this.keyCodes.push(h.toUpperCase().charCodeAt(0)):"number"==typeof h?this.keyCodes.push(h):h.hasOwnProperty("keyCode")&&this.keyCodes.push(h.keyCode)}this.current=this.keyCodes[0],this.index=0,this.size=this.keyCodes.length,this.timeLastMatched=0,this.matched=!1,this.timeMatched=0,this.resetOnWrongKey=s(i,"resetOnWrongKey",!0),this.maxKeyDelay=s(i,"maxKeyDelay",0),this.resetOnMatch=s(i,"resetOnMatch",!1),this.deleteOnMatch=s(i,"deleteOnMatch",!1);var u=this;this.onKeyDown=function(t){!u.matched&&u.enabled&&(o(t,u)&&(u.manager.emit(r.COMBO_MATCH,u,t),u.resetOnMatch?a(u):u.deleteOnMatch&&u.destroy()))},this.manager.on(r.ANY_KEY_DOWN,this.onKeyDown)},progress:{get:function(){return this.index/this.size}},destroy:function(){this.enabled=!1,this.keyCodes=[],this.manager.off(r.ANY_KEY_DOWN,this.onKeyDown),this.manager=null}});t.exports=h},55847:(t,e,i)=>{var n=i(44893);t.exports=function(t,e){if(e.matched)return!0;var i=!1,r=!1;if(t.keyCode===e.current)if(e.index>0&&e.maxKeyDelay>0){var s=e.timeLastMatched+e.maxKeyDelay;t.timeStamp<=s&&(r=!0,i=n(t,e))}else r=!0,i=n(t,e);return!r&&e.resetOnWrongKey&&(e.index=0,e.current=e.keyCodes[0]),i&&(e.timeLastMatched=t.timeStamp,e.matched=!0,e.timeMatched=t.timeStamp),i}},76251:t=>{t.exports=function(t){return t.current=t.keyCodes[0],t.index=0,t.timeLastMatched=0,t.matched=!1,t.timeMatched=0,t}},37944:t=>{t.exports="keydown"},37791:t=>{t.exports="keyup"},4260:t=>{t.exports="keycombomatch"},67901:t=>{t.exports="down"},38178:t=>{t.exports="keydown-"},10900:t=>{t.exports="keyup-"},75546:t=>{t.exports="up"},33583:(t,e,i)=>{t.exports={ANY_KEY_DOWN:i(37944),ANY_KEY_UP:i(37791),COMBO_MATCH:i(4260),DOWN:i(67901),KEY_DOWN:i(38178),KEY_UP:i(10900),UP:i(75546)}},87626:(t,e,i)=>{t.exports={Events:i(33583),KeyboardManager:i(72493),KeyboardPlugin:i(54917),Key:i(19577),KeyCodes:i(25302),KeyCombo:i(76085),JustDown:i(40070),JustUp:i(86806),DownDuration:i(42637),UpDuration:i(77715)}},42637:t=>{t.exports=function(t,e){void 0===e&&(e=50);var i=t.plugin.game.loop.time-t.timeDown;return t.isDown&&i<e}},40070:t=>{t.exports=function(t){return!!t._justDown&&(t._justDown=!1,!0)}},86806:t=>{t.exports=function(t){return!!t._justUp&&(t._justUp=!1,!0)}},19577:(t,e,i)=>{var n=i(47379),r=i(17168),s=i(33583),o=new n({Extends:r,initialize:function(t,e){r.call(this),this.plugin=t,this.keyCode=e,this.originalEvent=void 0,this.enabled=!0,this.isDown=!1,this.isUp=!0,this.altKey=!1,this.ctrlKey=!1,this.shiftKey=!1,this.metaKey=!1,this.location=0,this.timeDown=0,this.duration=0,this.timeUp=0,this.emitOnRepeat=!1,this.repeats=0,this._justDown=!1,this._justUp=!1,this._tick=-1},setEmitOnRepeat:function(t){return this.emitOnRepeat=t,this},onDown:function(t){this.originalEvent=t,this.enabled&&(this.altKey=t.altKey,this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.metaKey=t.metaKey,this.location=t.location,this.repeats++,this.isDown?this.emitOnRepeat&&this.emit(s.DOWN,this,t):(this.isDown=!0,this.isUp=!1,this.timeDown=t.timeStamp,this.duration=0,this._justDown=!0,this._justUp=!1,this.emit(s.DOWN,this,t)))},onUp:function(t){this.originalEvent=t,this.enabled&&(this.isDown=!1,this.isUp=!0,this.timeUp=t.timeStamp,this.duration=this.timeUp-this.timeDown,this.repeats=0,this._justDown=!1,this._justUp=!0,this._tick=-1,this.emit(s.UP,this,t))},reset:function(){return this.preventDefault=!0,this.enabled=!0,this.isDown=!1,this.isUp=!0,this.altKey=!1,this.ctrlKey=!1,this.shiftKey=!1,this.metaKey=!1,this.timeDown=0,this.duration=0,this.timeUp=0,this.repeats=0,this._justDown=!1,this._justUp=!1,this._tick=-1,this},getDuration:function(){return this.isDown?this.plugin.game.loop.time-this.timeDown:0},destroy:function(){this.removeAllListeners(),this.originalEvent=null,this.plugin=null}});t.exports=o},25302:t=>{t.exports={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:42,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,NUMPAD_ZERO:96,NUMPAD_ONE:97,NUMPAD_TWO:98,NUMPAD_THREE:99,NUMPAD_FOUR:100,NUMPAD_FIVE:101,NUMPAD_SIX:102,NUMPAD_SEVEN:103,NUMPAD_EIGHT:104,NUMPAD_NINE:105,NUMPAD_ADD:107,NUMPAD_SUBTRACT:109,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,SEMICOLON:186,PLUS:187,COMMA:188,MINUS:189,PERIOD:190,FORWARD_SLASH:191,BACK_SLASH:220,QUOTES:222,BACKTICK:192,OPEN_BRACKET:219,CLOSED_BRACKET:221,SEMICOLON_FIREFOX:59,COLON:58,COMMA_FIREFOX_WINDOWS:60,COMMA_FIREFOX:62,BRACKET_RIGHT_FIREFOX:174,BRACKET_LEFT_FIREFOX:175}},59564:(t,e,i)=>{var n=i(25302),r={};for(var s in n)r[n[s]]=s;t.exports=r},77715:t=>{t.exports=function(t,e){void 0===e&&(e=50);var i=t.plugin.game.loop.time-t.timeUp;return t.isUp&&i<e}},43236:(t,e,i)=>{var n=i(47379),r=i(33789),s=i(22620),o=i(47379),a=new n({initialize:function(t){this.manager=t,this.capture=!0,this.enabled=!1,this.target,this.locked=!1,this.onMouseMove=o,this.onMouseDown=o,this.onMouseUp=o,this.onMouseDownWindow=o,this.onMouseUpWindow=o,this.onMouseOver=o,this.onMouseOut=o,this.onMouseWheel=o,this.pointerLockChange=o,t.events.once(s.MANAGER_BOOT,this.boot,this)},boot:function(){var t=this.manager.config;this.enabled=t.inputMouse,this.target=t.inputMouseEventTarget,this.capture=t.inputMouseCapture,this.target?"string"==typeof this.target&&(this.target=document.getElementById(this.target)):this.target=this.manager.game.canvas,t.disableContextMenu&&this.disableContextMenu(),this.enabled&&this.target&&this.startListeners()},disableContextMenu:function(){return document.body.addEventListener("contextmenu",(function(t){return t.preventDefault(),!1})),this},requestPointerLock:function(){if(r.pointerLock){var t=this.target;t.requestPointerLock=t.requestPointerLock||t.mozRequestPointerLock||t.webkitRequestPointerLock,t.requestPointerLock()}},releasePointerLock:function(){r.pointerLock&&(document.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock,document.exitPointerLock())},startListeners:function(){var t=this,e=this.manager.canvas,i=window&&window.focus&&this.manager.game.config.autoFocus;this.onMouseMove=function(e){!e.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&(t.manager.onMouseMove(e),t.capture&&e.preventDefault())},this.onMouseDown=function(n){i&&window.focus(),!n.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&(t.manager.onMouseDown(n),t.capture&&n.target===e&&n.preventDefault())},this.onMouseDownWindow=function(i){!i.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&i.target!==e&&t.manager.onMouseDown(i)},this.onMouseUp=function(i){!i.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&(t.manager.onMouseUp(i),t.capture&&i.target===e&&i.preventDefault())},this.onMouseUpWindow=function(i){!i.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&i.target!==e&&t.manager.onMouseUp(i)},this.onMouseOver=function(e){!e.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&t.manager.setCanvasOver(e)},this.onMouseOut=function(e){!e.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&t.manager.setCanvasOut(e)},this.onMouseWheel=function(e){!e.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&t.manager.onMouseWheel(e)};var n=this.target;if(n){var s={passive:!0},o={passive:!1};n.addEventListener("mousemove",this.onMouseMove,this.capture?o:s),n.addEventListener("mousedown",this.onMouseDown,this.capture?o:s),n.addEventListener("mouseup",this.onMouseUp,this.capture?o:s),n.addEventListener("mouseover",this.onMouseOver,this.capture?o:s),n.addEventListener("mouseout",this.onMouseOut,this.capture?o:s),n.addEventListener("wheel",this.onMouseWheel,this.capture?o:s),window&&this.manager.game.config.inputWindowEvents&&(window.addEventListener("mousedown",this.onMouseDownWindow,o),window.addEventListener("mouseup",this.onMouseUpWindow,o)),r.pointerLock&&(this.pointerLockChange=function(e){var i=t.target;t.locked=document.pointerLockElement===i||document.mozPointerLockElement===i||document.webkitPointerLockElement===i,t.manager.onPointerLockChange(e)},document.addEventListener("pointerlockchange",this.pointerLockChange,!0),document.addEventListener("mozpointerlockchange",this.pointerLockChange,!0),document.addEventListener("webkitpointerlockchange",this.pointerLockChange,!0)),this.enabled=!0}},stopListeners:function(){var t=this.target;t.removeEventListener("mousemove",this.onMouseMove),t.removeEventListener("mousedown",this.onMouseDown),t.removeEventListener("mouseup",this.onMouseUp),t.removeEventListener("mouseover",this.onMouseOver),t.removeEventListener("mouseout",this.onMouseOut),window&&(window.removeEventListener("mousedown",this.onMouseDownWindow),window.removeEventListener("mouseup",this.onMouseUpWindow)),r.pointerLock&&(document.removeEventListener("pointerlockchange",this.pointerLockChange,!0),document.removeEventListener("mozpointerlockchange",this.pointerLockChange,!0),document.removeEventListener("webkitpointerlockchange",this.pointerLockChange,!0))},destroy:function(){this.stopListeners(),this.target=null,this.enabled=!1,this.manager=null}});t.exports=a},32879:(t,e,i)=>{t.exports={MouseManager:i(43236)}},42380:(t,e,i)=>{var n=i(47379),r=i(22620),s=i(49035),o=new n({initialize:function(t){this.manager=t,this.capture=!0,this.enabled=!1,this.target,this.onTouchStart=s,this.onTouchStartWindow=s,this.onTouchMove=s,this.onTouchEnd=s,this.onTouchEndWindow=s,this.onTouchCancel=s,this.onTouchCancelWindow=s,this.onTouchOver=s,this.onTouchOut=s,t.events.once(r.MANAGER_BOOT,this.boot,this)},boot:function(){var t=this.manager.config;this.enabled=t.inputTouch,this.target=t.inputTouchEventTarget,this.capture=t.inputTouchCapture,this.target||(this.target=this.manager.game.canvas),t.disableContextMenu&&this.disableContextMenu(),this.enabled&&this.target&&this.startListeners()},disableContextMenu:function(){return document.body.addEventListener("contextmenu",(function(t){return t.preventDefault(),!1})),this},startListeners:function(){var t=this,e=this.manager.canvas,i=window&&window.focus&&this.manager.game.config.autoFocus;this.onTouchStart=function(n){i&&window.focus(),!n.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&(t.manager.onTouchStart(n),t.capture&&n.cancelable&&n.target===e&&n.preventDefault())},this.onTouchStartWindow=function(i){!i.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&i.target!==e&&t.manager.onTouchStart(i)},this.onTouchMove=function(e){!e.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&(t.manager.onTouchMove(e),t.capture&&e.cancelable&&e.preventDefault())},this.onTouchEnd=function(i){!i.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&(t.manager.onTouchEnd(i),t.capture&&i.cancelable&&i.target===e&&i.preventDefault())},this.onTouchEndWindow=function(i){!i.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&i.target!==e&&t.manager.onTouchEnd(i)},this.onTouchCancel=function(e){!e.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&(t.manager.onTouchCancel(e),t.capture&&e.preventDefault())},this.onTouchCancelWindow=function(e){!e.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&t.manager.onTouchCancel(e)},this.onTouchOver=function(e){!e.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&t.manager.setCanvasOver(e)},this.onTouchOut=function(e){!e.defaultPrevented&&t.enabled&&t.manager&&t.manager.enabled&&t.manager.setCanvasOut(e)};var n=this.target;if(n){var r={passive:!0},s={passive:!1};n.addEventListener("touchstart",this.onTouchStart,this.capture?s:r),n.addEventListener("touchmove",this.onTouchMove,this.capture?s:r),n.addEventListener("touchend",this.onTouchEnd,this.capture?s:r),n.addEventListener("touchcancel",this.onTouchCancel,this.capture?s:r),n.addEventListener("touchover",this.onTouchOver,this.capture?s:r),n.addEventListener("touchout",this.onTouchOut,this.capture?s:r),window&&this.manager.game.config.inputWindowEvents&&(window.addEventListener("touchstart",this.onTouchStartWindow,s),window.addEventListener("touchend",this.onTouchEndWindow,s),window.addEventListener("touchcancel",this.onTouchCancelWindow,s)),this.enabled=!0}},stopListeners:function(){var t=this.target;t.removeEventListener("touchstart",this.onTouchStart),t.removeEventListener("touchmove",this.onTouchMove),t.removeEventListener("touchend",this.onTouchEnd),t.removeEventListener("touchcancel",this.onTouchCancel),t.removeEventListener("touchover",this.onTouchOver),t.removeEventListener("touchout",this.onTouchOut),window&&(window.removeEventListener("touchstart",this.onTouchStartWindow),window.removeEventListener("touchend",this.onTouchEndWindow))},destroy:function(){this.stopListeners(),this.target=null,this.enabled=!1,this.manager=null}});t.exports=o},71793:(t,e,i)=>{t.exports={TouchManager:i(42380)}},21301:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(88275),o=i(81769),a=i(1429),h=i(36404),u=i(13872),l=i(20270),c=new n({initialize:function(t,e){this.loader=t,this.cache=o(e,"cache",!1),this.type=o(e,"type",!1),this.key=o(e,"key",!1);var i=this.key;if(t.prefix&&""!==t.prefix&&(this.key=t.prefix+i),!this.type||!this.key)throw new Error("Error calling 'Loader."+this.type+"' invalid key provided.");this.url=o(e,"url"),void 0===this.url?this.url=t.path+i+"."+o(e,"extension",""):"function"!=typeof this.url&&0!==this.url.indexOf("blob:")&&0!==this.url.indexOf("data:")&&(this.url=t.path+this.url),this.src="",this.xhrSettings=l(o(e,"responseType",void 0)),o(e,"xhrSettings",!1)&&(this.xhrSettings=h(this.xhrSettings,o(e,"xhrSettings",{}))),this.xhrLoader=null,this.state="function"==typeof this.url?r.FILE_POPULATED:r.FILE_PENDING,this.bytesTotal=0,this.bytesLoaded=-1,this.percentComplete=-1,this.crossOrigin=void 0,this.data=void 0,this.config=o(e,"config",{}),this.multiFile,this.linkFile},setLink:function(t){this.linkFile=t,t.linkFile=this},resetXHR:function(){this.xhrLoader&&(this.xhrLoader.onload=void 0,this.xhrLoader.onerror=void 0,this.xhrLoader.onprogress=void 0)},load:function(){this.state===r.FILE_POPULATED?this.loader.nextFile(this,!0):(this.src=a(this,this.loader.baseURL),0===this.src.indexOf("data:")?console.warn("Local data URIs are not supported: "+this.key):this.xhrLoader=u(this,this.loader.xhr))},onLoad:function(t,e){var i=t.responseURL&&0===t.responseURL.indexOf("file://")&&0===e.target.status,n=!(e.target&&200!==e.target.status)||i;4===t.readyState&&t.status>=400&&t.status<=599&&(n=!1),this.resetXHR(),this.loader.nextFile(this,n)},onError:function(){this.resetXHR(),this.loader.nextFile(this,!1)},onProgress:function(t){t.lengthComputable&&(this.bytesLoaded=t.loaded,this.bytesTotal=t.total,this.percentComplete=Math.min(this.bytesLoaded/this.bytesTotal,1),this.loader.emit(s.FILE_PROGRESS,this,this.percentComplete))},onProcess:function(){this.state=r.FILE_PROCESSING,this.onProcessComplete()},onProcessComplete:function(){this.state=r.FILE_COMPLETE,this.multiFile&&this.multiFile.onFileComplete(this),this.loader.fileProcessComplete(this)},onProcessError:function(){this.state=r.FILE_ERRORED,this.multiFile&&this.multiFile.onFileFailed(this),this.loader.fileProcessComplete(this)},hasCacheConflict:function(){return this.cache&&this.cache.exists(this.key)},addToCache:function(){this.cache&&this.cache.add(this.key,this.data),this.pendingDestroy()},pendingDestroy:function(t){void 0===t&&(t=this.data);var e=this.key,i=this.type;this.loader.emit(s.FILE_COMPLETE,e,i,t),this.loader.emit(s.FILE_KEY_COMPLETE+i+"-"+e,e,i,t),this.loader.flagForRemoval(this)},destroy:function(){this.loader=null,this.cache=null,this.xhrSettings=null,this.multiFile=null,this.linkFile=null,this.data=null}});c.createObjectURL=function(t,e,i){if("function"==typeof URL)t.src=URL.createObjectURL(e);else{var n=new FileReader;n.onload=function(){t.removeAttribute("crossOrigin"),t.src="data:"+(e.type||i)+";base64,"+n.result.split(",")[1]},n.onerror=t.onerror,n.readAsDataURL(e)}},c.revokeObjectURL=function(t){"function"==typeof URL&&URL.revokeObjectURL(t.src)},t.exports=c},16656:t=>{var e={},i={install:function(t){for(var i in e)t[i]=e[i]},register:function(t,i){e[t]=i},destroy:function(){e={}}};t.exports=i},1429:t=>{t.exports=function(t,e){return!!t.url&&(t.url.match(/^(?:blob:|data:|http:\/\/|https:\/\/|\/\/)/)?t.url:e+t.url)}},91315:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(69347),o=i(17168),a=i(88275),h=i(16656),u=i(81769),l=i(50354),c=i(88637),d=i(20270),p=new n({Extends:o,initialize:function(t){o.call(this);var e=t.sys.game.config,i=t.sys.settings.loader;this.scene=t,this.systems=t.sys,this.cacheManager=t.sys.cache,this.textureManager=t.sys.textures,this.sceneManager=t.sys.game.scene,h.install(this),this.prefix="",this.path="",this.baseURL="",this.setBaseURL(u(i,"baseURL",e.loaderBaseURL)),this.setPath(u(i,"path",e.loaderPath)),this.setPrefix(u(i,"prefix",e.loaderPrefix)),this.maxParallelDownloads=u(i,"maxParallelDownloads",e.loaderMaxParallelDownloads),this.xhr=d(u(i,"responseType",e.loaderResponseType),u(i,"async",e.loaderAsync),u(i,"user",e.loaderUser),u(i,"password",e.loaderPassword),u(i,"timeout",e.loaderTimeout),u(i,"withCredentials",e.loaderWithCredentials)),this.crossOrigin=u(i,"crossOrigin",e.loaderCrossOrigin),this.totalToLoad=0,this.progress=0,this.list=new s,this.inflight=new s,this.queue=new s,this._deleteQueue=new s,this.totalFailed=0,this.totalComplete=0,this.state=r.LOADER_IDLE,this.multiKeyIndex=0,t.sys.events.once(c.BOOT,this.boot,this),t.sys.events.on(c.START,this.pluginStart,this)},boot:function(){this.systems.events.once(c.DESTROY,this.destroy,this)},pluginStart:function(){this.systems.events.once(c.SHUTDOWN,this.shutdown,this)},setBaseURL:function(t){return void 0===t&&(t=""),""!==t&&"/"!==t.substr(-1)&&(t=t.concat("/")),this.baseURL=t,this},setPath:function(t){return void 0===t&&(t=""),""!==t&&"/"!==t.substr(-1)&&(t=t.concat("/")),this.path=t,this},setPrefix:function(t){return void 0===t&&(t=""),this.prefix=t,this},setCORS:function(t){return this.crossOrigin=t,this},addFile:function(t){Array.isArray(t)||(t=[t]);for(var e=0;e<t.length;e++){var i=t[e];this.keyExists(i)||(this.list.set(i),this.emit(a.ADD,i.key,i.type,this,i),this.isLoading()&&(this.totalToLoad++,this.updateProgress()))}},keyExists:function(t){var e=t.hasCacheConflict();return e||this.list.iterate((function(i){if(i.type===t.type&&i.key===t.key)return e=!0,!1})),!e&&this.isLoading()&&(this.inflight.iterate((function(i){if(i.type===t.type&&i.key===t.key)return e=!0,!1})),this.queue.iterate((function(i){if(i.type===t.type&&i.key===t.key)return e=!0,!1}))),e},addPack:function(t,e){e&&t.hasOwnProperty(e)&&(t={packKey:t[e]});var i=0,n=this.baseURL,r=this.path,s=this.prefix;for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)){var a=t[o],h=u(a,"baseURL",n),l=u(a,"path",r),c=u(a,"prefix",s),d=u(a,"files",null),p=u(a,"defaultType","void");if(Array.isArray(d)){this.setBaseURL(h),this.setPath(l),this.setPrefix(c);for(var f=0;f<d.length;f++){var m=d[f],v=m.hasOwnProperty("type")?m.type:p;this[v]&&(this[v](m),i++)}}}return this.setBaseURL(n),this.setPath(r),this.setPrefix(s),i>0},isLoading:function(){return this.state===r.LOADER_LOADING||this.state===r.LOADER_PROCESSING},isReady:function(){return this.state===r.LOADER_IDLE||this.state===r.LOADER_COMPLETE},start:function(){this.isReady()&&(this.progress=0,this.totalFailed=0,this.totalComplete=0,this.totalToLoad=this.list.size,this.emit(a.START,this),0===this.list.size?this.loadComplete():(this.state=r.LOADER_LOADING,this.inflight.clear(),this.queue.clear(),this.updateProgress(),this.checkLoadQueue(),this.systems.events.on(c.UPDATE,this.update,this)))},updateProgress:function(){this.progress=1-(this.list.size+this.inflight.size)/this.totalToLoad,this.emit(a.PROGRESS,this.progress)},update:function(){this.state===r.LOADER_LOADING&&this.list.size>0&&this.inflight.size<this.maxParallelDownloads&&this.checkLoadQueue()},checkLoadQueue:function(){this.list.each((function(t){if((t.state===r.FILE_POPULATED||t.state===r.FILE_PENDING&&this.inflight.size<this.maxParallelDownloads)&&(this.inflight.set(t),this.list.delete(t),t.crossOrigin||(t.crossOrigin=this.crossOrigin),t.load()),this.inflight.size===this.maxParallelDownloads)return!1}),this)},nextFile:function(t,e){this.inflight&&(this.inflight.delete(t),this.updateProgress(),e?(this.totalComplete++,this.queue.set(t),this.emit(a.FILE_LOAD,t),t.onProcess()):(this.totalFailed++,this._deleteQueue.set(t),this.emit(a.FILE_LOAD_ERROR,t),this.fileProcessComplete(t)))},fileProcessComplete:function(t){this.scene&&this.systems&&this.systems.game&&!this.systems.game.pendingDestroy&&(t.state===r.FILE_ERRORED?t.multiFile&&t.multiFile.onFileFailed(t):t.state===r.FILE_COMPLETE&&(t.multiFile?t.multiFile.isReadyToProcess()&&t.multiFile.addToCache():t.addToCache()),this.queue.delete(t),0===this.list.size&&0===this.inflight.size&&0===this.queue.size&&this.loadComplete())},loadComplete:function(){this.emit(a.POST_PROCESS,this),this.list.clear(),this.inflight.clear(),this.queue.clear(),this.progress=1,this.state=r.LOADER_COMPLETE,this.systems.events.off(c.UPDATE,this.update,this),this._deleteQueue.iterateLocal("destroy"),this._deleteQueue.clear(),this.emit(a.COMPLETE,this,this.totalComplete,this.totalFailed)},flagForRemoval:function(t){this._deleteQueue.set(t)},saveJSON:function(t,e){return this.save(JSON.stringify(t),e)},save:function(t,e,i){void 0===e&&(e="file.json"),void 0===i&&(i="application/json");var n=new Blob([t],{type:i}),r=URL.createObjectURL(n),s=document.createElement("a");return s.download=e,s.textContent="Download "+e,s.href=r,s.click(),this},reset:function(){this.list.clear(),this.inflight.clear(),this.queue.clear();var t=this.systems.game.config,e=this.systems.settings.loader;this.setBaseURL(u(e,"baseURL",t.loaderBaseURL)),this.setPath(u(e,"path",t.loaderPath)),this.setPrefix(u(e,"prefix",t.loaderPrefix)),this.state=r.LOADER_IDLE},shutdown:function(){this.reset(),this.state=r.LOADER_SHUTDOWN,this.systems.events.off(c.UPDATE,this.update,this),this.systems.events.off(c.SHUTDOWN,this.shutdown,this)},destroy:function(){this.shutdown(),this.state=r.LOADER_DESTROYED,this.systems.events.off(c.UPDATE,this.update,this),this.systems.events.off(c.START,this.pluginStart,this),this.list=null,this.inflight=null,this.queue=null,this.scene=null,this.systems=null,this.textureManager=null,this.cacheManager=null,this.sceneManager=null}});l.register("Loader",p,"load"),t.exports=p},36404:(t,e,i)=>{var n=i(80933),r=i(20270);t.exports=function(t,e){var i=void 0===t?r():n({},t);if(e)for(var s in e)void 0!==e[s]&&(i[s]=e[s]);return i}},11611:(t,e,i)=>{var n=new(i(47379))({initialize:function(t,e,i,n){this.loader=t,this.type=e,this.key=i,this.multiKeyIndex=t.multiKeyIndex++,this.files=n,this.complete=!1,this.pending=n.length,this.failed=0,this.config={},this.baseURL=t.baseURL,this.path=t.path,this.prefix=t.prefix;for(var r=0;r<n.length;r++)n[r].multiFile=this},isReadyToProcess:function(){return 0===this.pending&&0===this.failed&&!this.complete},addToMultiFile:function(t){return this.files.push(t),t.multiFile=this,this.pending++,this.complete=!1,this},onFileComplete:function(t){-1!==this.files.indexOf(t)&&this.pending--},onFileFailed:function(t){-1!==this.files.indexOf(t)&&this.failed++}});t.exports=n},13872:(t,e,i)=>{var n=i(36404);t.exports=function(t,e){var i=n(e,t.xhrSettings),r=new XMLHttpRequest;if(r.open("GET",t.src,i.async,i.user,i.password),r.responseType=t.xhrSettings.responseType,r.timeout=i.timeout,i.headers)for(var s in i.headers)r.setRequestHeader(s,i.headers[s]);return i.header&&i.headerValue&&r.setRequestHeader(i.header,i.headerValue),i.requestedWith&&r.setRequestHeader("X-Requested-With",i.requestedWith),i.overrideMimeType&&r.overrideMimeType(i.overrideMimeType),i.withCredentials&&(r.withCredentials=!0),r.onload=t.onLoad.bind(t,r),r.onerror=t.onError.bind(t,r),r.onprogress=t.onProgress.bind(t),r.send(),r}},20270:t=>{t.exports=function(t,e,i,n,r,s){return void 0===t&&(t=""),void 0===e&&(e=!0),void 0===i&&(i=""),void 0===n&&(n=""),void 0===r&&(r=0),void 0===s&&(s=!1),{responseType:t,async:e,user:i,password:n,timeout:r,headers:void 0,header:void 0,headerValue:void 0,requestedWith:!1,overrideMimeType:void 0,withCredentials:s}}},78146:t=>{t.exports={LOADER_IDLE:0,LOADER_LOADING:1,LOADER_PROCESSING:2,LOADER_COMPLETE:3,LOADER_SHUTDOWN:4,LOADER_DESTROYED:5,FILE_PENDING:10,FILE_LOADING:11,FILE_LOADED:12,FILE_FAILED:13,FILE_PROCESSING:14,FILE_ERRORED:16,FILE_COMPLETE:17,FILE_DESTROYED:18,FILE_POPULATED:19}},76283:t=>{t.exports="addfile"},23827:t=>{t.exports="complete"},51651:t=>{t.exports="filecomplete"},59573:t=>{t.exports="filecomplete-"},64193:t=>{t.exports="loaderror"},80809:t=>{t.exports="load"},97341:t=>{t.exports="fileprogress"},88966:t=>{t.exports="postprocess"},51904:t=>{t.exports="progress"},87803:t=>{t.exports="start"},88275:(t,e,i)=>{t.exports={ADD:i(76283),COMPLETE:i(23827),FILE_COMPLETE:i(51651),FILE_KEY_COMPLETE:i(59573),FILE_LOAD_ERROR:i(64193),FILE_LOAD:i(80809),FILE_PROGRESS:i(97341),POST_PROCESS:i(88966),PROGRESS:i(51904),START:i(87803)}},28955:(t,e,i)=>{var n=i(47379),r=i(16656),s=i(22102),o=i(88275),a=new n({Extends:s,initialize:function(t,e,i,n,r){s.call(this,t,e,i,n,r),this.type="animationJSON"},onProcess:function(){this.loader.once(o.POST_PROCESS,this.onLoadComplete,this),s.prototype.onProcess.call(this)},onLoadComplete:function(){this.loader.systems.anims.fromJSON(this.data)}});r.register("animation",(function(t,e,i,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)this.addFile(new a(this,t[r]));else this.addFile(new a(this,t,e,n,i));return this})),t.exports=a},5084:(t,e,i)=>{var n=i(47379),r=i(16656),s=i(81769),o=i(85458),a=i(28621),h=i(22102),u=i(11611),l=new n({Extends:u,initialize:function(t,e,i,n,r,l){var c,d;if(a(e)){var p=e;e=s(p,"key"),c=new o(t,{key:e,url:s(p,"textureURL"),extension:s(p,"textureExtension","png"),normalMap:s(p,"normalMap"),xhrSettings:s(p,"textureXhrSettings")}),d=new h(t,{key:e,url:s(p,"atlasURL"),extension:s(p,"atlasExtension","json"),xhrSettings:s(p,"atlasXhrSettings")})}else c=new o(t,e,i,r),d=new h(t,e,n,l);c.linkFile?u.call(this,t,"atlasjson",e,[c,d,c.linkFile]):u.call(this,t,"atlasjson",e,[c,d])},addToCache:function(){if(this.isReadyToProcess()){var t=this.files[0],e=this.files[1],i=this.files[2]?this.files[2].data:null;this.loader.textureManager.addAtlas(t.key,t.data,e.data,i),e.addToCache(),this.complete=!0}}});r.register("atlas",(function(t,e,i,n,r){var s;if(Array.isArray(t))for(var o=0;o<t.length;o++)s=new l(this,t[o]),this.addFile(s.files);else s=new l(this,t,e,i,n,r),this.addFile(s.files);return this})),t.exports=l},44468:(t,e,i)=>{var n=i(47379),r=i(16656),s=i(81769),o=i(85458),a=i(28621),h=i(11611),u=i(56126),l=new n({Extends:h,initialize:function(t,e,i,n,r,l){var c,d;if(a(e)){var p=e;e=s(p,"key"),c=new o(t,{key:e,url:s(p,"textureURL"),extension:s(p,"textureExtension","png"),normalMap:s(p,"normalMap"),xhrSettings:s(p,"textureXhrSettings")}),d=new u(t,{key:e,url:s(p,"atlasURL"),extension:s(p,"atlasExtension","xml"),xhrSettings:s(p,"atlasXhrSettings")})}else c=new o(t,e,i,r),d=new u(t,e,n,l);c.linkFile?h.call(this,t,"atlasxml",e,[c,d,c.linkFile]):h.call(this,t,"atlasxml",e,[c,d])},addToCache:function(){if(this.isReadyToProcess()){var t=this.files[0],e=this.files[1],i=this.files[2]?this.files[2].data:null;this.loader.textureManager.addAtlasXML(t.key,t.data,e.data,i),e.addToCache(),this.complete=!0}}});r.register("atlasXML",(function(t,e,i,n,r){var s;if(Array.isArray(t))for(var o=0;o<t.length;o++)s=new l(this,t[o]),this.addFile(s.files);else s=new l(this,t,e,i,n,r),this.addFile(s.files);return this})),t.exports=l},92500:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(43070),u=i(28621),l=new n({Extends:s,initialize:function(t,e,i,n,r){if(u(e)){var o=e;e=a(o,"key"),n=a(o,"xhrSettings"),r=a(o,"context",r)}var h={type:"audio",cache:t.cacheManager.audio,extension:i.type,responseType:"arraybuffer",key:e,url:i.url,xhrSettings:n,config:{context:r}};s.call(this,t,h)},onProcess:function(){this.state=r.FILE_PROCESSING;var t=this;this.config.context.decodeAudioData(this.xhrLoader.response,(function(e){t.data=e,t.onProcessComplete()}),(function(e){console.error("Error decoding audio: "+this.key+" - ",e?e.message:null),t.onProcessError()})),this.config.context=null}});l.create=function(t,e,i,n,r){var s=t.systems.game,o=s.config.audio,c=s.device.audio;u(e)&&(i=a(e,"url",[]),n=a(e,"config",{}));var d=l.getAudioURL(s,i);return d?!c.webAudio||o&&o.disableWebAudio?new h(t,e,d,n):new l(t,e,d,r,s.sound.context):null},l.getAudioURL=function(t,e){Array.isArray(e)||(e=[e]);for(var i=0;i<e.length;i++){var n=a(e[i],"url",e[i]);if(0===n.indexOf("blob:")||0===n.indexOf("data:"))return{url:n,type:""};var r=n.match(/\.([a-zA-Z0-9]+)($|\?)/);if(r=a(e[i],"type",r?r[1]:"").toLowerCase(),t.device.audio[r])return{url:n,type:r}}return null},o.register("audio",(function(t,e,i,n){var r,s=this.systems.game,o=s.config.audio,a=s.device.audio;if(o&&o.noAudio||!a.webAudio&&!a.audioData)return this;if(Array.isArray(t))for(var h=0;h<t.length;h++)(r=l.create(this,t[h]))&&this.addFile(r);else(r=l.create(this,t,e,i,n))&&this.addFile(r);return this})),t.exports=l},33714:(t,e,i)=>{var n=i(92500),r=i(47379),s=i(16656),o=i(81769),a=i(28621),h=i(22102),u=i(11611),l=new r({Extends:u,initialize:function(t,e,i,r,s,l,c){if(a(e)){var d=e;e=o(d,"key"),i=o(d,"jsonURL"),r=o(d,"audioURL"),s=o(d,"audioConfig"),l=o(d,"audioXhrSettings"),c=o(d,"jsonXhrSettings")}var p;if(r){var f=n.create(t,e,r,s,l);f&&(p=new h(t,e,i,c),u.call(this,t,"audiosprite",e,[f,p]),this.config.resourceLoad=!1)}else p=new h(t,e,i,c),u.call(this,t,"audiosprite",e,[p]),this.config.resourceLoad=!0,this.config.audioConfig=s,this.config.audioXhrSettings=l},onFileComplete:function(t){if(-1!==this.files.indexOf(t)&&(this.pending--,this.config.resourceLoad&&"json"===t.type&&t.data.hasOwnProperty("resources"))){var e=t.data.resources,i=o(this.config,"audioConfig"),r=o(this.config,"audioXhrSettings"),s=n.create(this.loader,t.key,e,i,r);s&&(this.addToMultiFile(s),this.loader.addFile(s))}},addToCache:function(){if(this.isReadyToProcess()){var t=this.files[0],e=this.files[1];t.addToCache(),e.addToCache(),this.complete=!0}}});s.register("audioSprite",(function(t,e,i,n,r,s){var o,a=this.systems.game,h=a.config.audio,u=a.device.audio;if(h&&h.noAudio||!u.webAudio&&!u.audioData)return this;if(Array.isArray(t))for(var c=0;c<t.length;c++)(o=new l(this,t[c])).files&&this.addFile(o.files);else(o=new l(this,t,e,i,n,r,s)).files&&this.addFile(o.files);return this}))},19132:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=new n({Extends:s,initialize:function(t,e,i,n,r){var o="bin";if(h(e)){var u=e;e=a(u,"key"),i=a(u,"url"),n=a(u,"xhrSettings"),o=a(u,"extension",o),r=a(u,"dataType",r)}var l={type:"binary",cache:t.cacheManager.binary,extension:o,responseType:"arraybuffer",key:e,url:i,xhrSettings:n,config:{dataType:r}};s.call(this,t,l)},onProcess:function(){this.state=r.FILE_PROCESSING;var t=this.config.dataType;this.data=t?new t(this.xhrLoader.response):this.xhrLoader.response,this.onProcessComplete()}});o.register("binary",(function(t,e,i,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)this.addFile(new u(this,t[r]));else this.addFile(new u(this,t,e,n,i));return this})),t.exports=u},70589:(t,e,i)=>{var n=i(47379),r=i(16656),s=i(81769),o=i(85458),a=i(28621),h=i(11611),u=i(40419),l=i(56126),c=new n({Extends:h,initialize:function(t,e,i,n,r,u){var c,d;if(a(e)){var p=e;e=s(p,"key"),c=new o(t,{key:e,url:s(p,"textureURL"),extension:s(p,"textureExtension","png"),normalMap:s(p,"normalMap"),xhrSettings:s(p,"textureXhrSettings")}),d=new l(t,{key:e,url:s(p,"fontDataURL"),extension:s(p,"fontDataExtension","xml"),xhrSettings:s(p,"fontDataXhrSettings")})}else c=new o(t,e,i,r),d=new l(t,e,n,u);c.linkFile?h.call(this,t,"bitmapfont",e,[c,d,c.linkFile]):h.call(this,t,"bitmapfont",e,[c,d])},addToCache:function(){if(this.isReadyToProcess()){var t=this.files[0],e=this.files[1];t.addToCache(),e.addToCache(),this.loader.cacheManager.bitmapFont.add(t.key,{data:u(e.data),texture:t.key,frame:null}),this.complete=!0}}});r.register("bitmapFont",(function(t,e,i,n,r){var s;if(Array.isArray(t))for(var o=0;o<t.length;o++)s=new c(this,t[o]),this.addFile(s.files);else s=new c(this,t,e,i,n,r),this.addFile(s.files);return this})),t.exports=c},60647:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=new n({Extends:s,initialize:function(t,e,i,n){var r="css";if(h(e)){var o=e;e=a(o,"key"),i=a(o,"url"),n=a(o,"xhrSettings"),r=a(o,"extension",r)}var u={type:"script",cache:!1,extension:r,responseType:"text",key:e,url:i,xhrSettings:n};s.call(this,t,u)},onProcess:function(){this.state=r.FILE_PROCESSING,this.data=document.createElement("style"),this.data.defer=!1,this.data.innerHTML=this.xhrLoader.responseText,document.head.appendChild(this.data),this.onProcessComplete()}});o.register("css",(function(t,e,i){if(Array.isArray(t))for(var n=0;n<t.length;n++)this.addFile(new u(this,t[n]));else this.addFile(new u(this,t,e,i));return this})),t.exports=u},29608:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=i(86381),l=new n({Extends:s,initialize:function(t,e,i,n,r){var o="glsl";if(h(e)){var u=e;e=a(u,"key"),i=a(u,"url"),n=a(u,"shaderType","fragment"),r=a(u,"xhrSettings"),o=a(u,"extension",o)}else void 0===n&&(n="fragment");var l={type:"glsl",cache:t.cacheManager.shader,extension:o,responseType:"text",key:e,url:i,config:{shaderType:n},xhrSettings:r};s.call(this,t,l)},onProcess:function(){this.state=r.FILE_PROCESSING,this.data=this.xhrLoader.responseText,this.onProcessComplete()},addToCache:function(){var t=this.data.split("\n"),e=this.extractBlock(t,0);if(e)for(;e;){var i=this.getShaderName(e.header),n=this.getShaderType(e.header),r=this.getShaderUniforms(e.header),s=e.shader;if(this.cache.has(i)){var o=this.cache.get(i);"fragment"===n?o.fragmentSrc=s:o.vertexSrc=s,o.uniforms||(o.uniforms=r)}else"fragment"===n?this.cache.add(i,new u(i,s,"",r)):this.cache.add(i,new u(i,"",s,r));e=this.extractBlock(t,e.offset)}else"fragment"===this.config.shaderType?this.cache.add(this.key,new u(this.key,this.data)):this.cache.add(this.key,new u(this.key,"",this.data));this.pendingDestroy()},getShaderName:function(t){for(var e=0;e<t.length;e++){var i=t[e].trim();if("name:"===i.substring(0,5))return i.substring(5).trim()}return this.key},getShaderType:function(t){for(var e=0;e<t.length;e++){var i=t[e].trim();if("type:"===i.substring(0,5))return i.substring(5).trim()}return this.config.shaderType},getShaderUniforms:function(t){for(var e={},i=0;i<t.length;i++){var n=t[i].trim();if("uniform."===n.substring(0,8)){var r=n.indexOf(":");if(r){var s=n.substring(8,r);try{e[s]=JSON.parse(n.substring(r+1))}catch(t){console.warn("Invalid uniform JSON: "+s)}}}}return e},extractBlock:function(t,e){for(var i=-1,n=-1,r=-1,s=!1,o=!1,a=[],h=[],u=e;u<t.length;u++){var l=t[u].trim();if("---"===l)if(-1===i)i=u,s=!0;else{if(!s){o=!1;break}n=u,s=!1,o=!0}else s?a.push(l):o&&(h.push(l),r=u)}return s||-1===n?null:{header:a,shader:h.join("\n"),offset:r}}});o.register("glsl",(function(t,e,i,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)this.addFile(new l(this,t[r]));else this.addFile(new l(this,t,e,i,n));return this})),t.exports=l},43070:(t,e,i)=>{var n=i(47379),r=i(88275),s=i(21301),o=i(81769),a=i(1429),h=i(28621),u=new n({Extends:s,initialize:function(t,e,i,n){if(h(e)){var r=e;e=o(r,"key"),n=o(r,"config",n)}var a={type:"audio",cache:t.cacheManager.audio,extension:i.type,key:e,url:i.url,config:n};s.call(this,t,a),this.locked="ontouchstart"in window,this.loaded=!1,this.filesLoaded=0,this.filesTotal=0},onLoad:function(){this.loaded||(this.loaded=!0,this.loader.nextFile(this,!0))},onError:function(){for(var t=0;t<this.data.length;t++){var e=this.data[t];e.oncanplaythrough=null,e.onerror=null}this.loader.nextFile(this,!1)},onProgress:function(t){var e=t.target;e.oncanplaythrough=null,e.onerror=null,this.filesLoaded++,this.percentComplete=Math.min(this.filesLoaded/this.filesTotal,1),this.loader.emit(r.FILE_PROGRESS,this,this.percentComplete),this.filesLoaded===this.filesTotal&&this.onLoad()},load:function(){this.data=[];var t=this.config&&this.config.instances||1;this.filesTotal=t,this.filesLoaded=0,this.percentComplete=0;for(var e=0;e<t;e++){var i=new Audio;i.dataset||(i.dataset={}),i.dataset.name=this.key+("0"+e).slice(-2),i.dataset.used="false",this.locked?i.dataset.locked="true":(i.dataset.locked="false",i.preload="auto",i.oncanplaythrough=this.onProgress.bind(this),i.onerror=this.onError.bind(this)),this.data.push(i)}for(e=0;e<this.data.length;e++)(i=this.data[e]).src=a(this,this.loader.baseURL),this.locked||i.load();this.locked&&setTimeout(this.onLoad.bind(this))}});t.exports=u},1622:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=new n({Extends:s,initialize:function(t,e,i,n){var r="html";if(h(e)){var o=e;e=a(o,"key"),i=a(o,"url"),n=a(o,"xhrSettings"),r=a(o,"extension",r)}var u={type:"text",cache:t.cacheManager.html,extension:r,responseType:"text",key:e,url:i,xhrSettings:n};s.call(this,t,u)},onProcess:function(){this.state=r.FILE_PROCESSING,this.data=this.xhrLoader.responseText,this.onProcessComplete()}});o.register("html",(function(t,e,i){if(Array.isArray(t))for(var n=0;n<t.length;n++)this.addFile(new u(this,t[n]));else this.addFile(new u(this,t,e,i));return this})),t.exports=u},14964:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=new n({Extends:s,initialize:function(t,e,i,n,r,o){void 0===n&&(n=512),void 0===r&&(r=512);var u="html";if(h(e)){var l=e;e=a(l,"key"),i=a(l,"url"),o=a(l,"xhrSettings"),u=a(l,"extension",u),n=a(l,"width",n),r=a(l,"height",r)}var c={type:"html",cache:t.textureManager,extension:u,responseType:"text",key:e,url:i,xhrSettings:o,config:{width:n,height:r}};s.call(this,t,c)},onProcess:function(){this.state=r.FILE_PROCESSING;var t=this.config.width,e=this.config.height,i=[];i.push('<svg width="'+t+'px" height="'+e+'px" viewBox="0 0 '+t+" "+e+'" xmlns="http://www.w3.org/2000/svg">'),i.push('<foreignObject width="100%" height="100%">'),i.push('<body xmlns="http://www.w3.org/1999/xhtml">'),i.push(this.xhrLoader.responseText),i.push("</body>"),i.push("</foreignObject>"),i.push("</svg>");var n=[i.join("\n")],o=this;try{var a=new window.Blob(n,{type:"image/svg+xml;charset=utf-8"})}catch(t){return o.state=r.FILE_ERRORED,void o.onProcessComplete()}this.data=new Image,this.data.crossOrigin=this.crossOrigin,this.data.onload=function(){s.revokeObjectURL(o.data),o.onProcessComplete()},this.data.onerror=function(){s.revokeObjectURL(o.data),o.onProcessError()},s.createObjectURL(this.data,a,"image/svg+xml")},addToCache:function(){var t=this.cache.addImage(this.key,this.data);this.pendingDestroy(t)}});o.register("htmlTexture",(function(t,e,i,n,r){if(Array.isArray(t))for(var s=0;s<t.length;s++)this.addFile(new u(this,t[s]));else this.addFile(new u(this,t,e,i,n,r));return this})),t.exports=u},85458:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=new n({Extends:s,initialize:function t(e,i,n,r,o){var u,l="png";if(h(i)){var c=i;i=a(c,"key"),n=a(c,"url"),u=a(c,"normalMap"),r=a(c,"xhrSettings"),l=a(c,"extension",l),o=a(c,"frameConfig")}Array.isArray(n)&&(u=n[1],n=n[0]);var d={type:"image",cache:e.textureManager,extension:l,responseType:"blob",key:i,url:n,xhrSettings:r,config:o};if(s.call(this,e,d),u){var p=new t(e,this.key,u,r,o);p.type="normalMap",this.setLink(p),e.addFile(p)}},onProcess:function(){this.state=r.FILE_PROCESSING,this.data=new Image,this.data.crossOrigin=this.crossOrigin;var t=this;this.data.onload=function(){s.revokeObjectURL(t.data),t.onProcessComplete()},this.data.onerror=function(){s.revokeObjectURL(t.data),t.onProcessError()},s.createObjectURL(this.data,this.xhrLoader.response,"image/png")},addToCache:function(){var t,e=this.linkFile;e&&e.state===r.FILE_COMPLETE?(t="image"===this.type?this.cache.addImage(this.key,this.data,e.data):this.cache.addImage(e.key,e.data,this.data),this.pendingDestroy(t),e.pendingDestroy(t)):e||(t=this.cache.addImage(this.key,this.data),this.pendingDestroy(t))}});o.register("image",(function(t,e,i){if(Array.isArray(t))for(var n=0;n<t.length;n++)this.addFile(new u(this,t[n]));else this.addFile(new u(this,t,e,i));return this})),t.exports=u},22102:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(86652),u=i(28621),l=new n({Extends:s,initialize:function(t,e,i,n,o){var l="json";if(u(e)){var c=e;e=a(c,"key"),i=a(c,"url"),n=a(c,"xhrSettings"),l=a(c,"extension",l),o=a(c,"dataKey",o)}var d={type:"json",cache:t.cacheManager.json,extension:l,responseType:"text",key:e,url:i,xhrSettings:n,config:o};s.call(this,t,d),u(i)&&(this.data=o?h(i,o):i,this.state=r.FILE_POPULATED)},onProcess:function(){if(this.state!==r.FILE_POPULATED){this.state=r.FILE_PROCESSING;var t=JSON.parse(this.xhrLoader.responseText),e=this.config;this.data="string"==typeof e?h(t,e,t):t}this.onProcessComplete()}});o.register("json",(function(t,e,i,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)this.addFile(new l(this,t[r]));else this.addFile(new l(this,t,e,n,i));return this})),t.exports=l},27467:(t,e,i)=>{var n=i(47379),r=i(16656),s=i(81769),o=i(85458),a=i(28621),h=i(22102),u=i(11611),l=new n({Extends:u,initialize:function(t,e,i,n,r,o,l){if(a(e)){var c=e;e=s(c,"key"),i=s(c,"url",!1)?s(c,"url"):s(c,"atlasURL"),o=s(c,"xhrSettings"),n=s(c,"path"),r=s(c,"baseURL"),l=s(c,"textureXhrSettings")}var d=new h(t,e,i,o);u.call(this,t,"multiatlas",e,[d]),this.config.path=n,this.config.baseURL=r,this.config.textureXhrSettings=l},onFileComplete:function(t){if(-1!==this.files.indexOf(t)&&(this.pending--,"json"===t.type&&t.data.hasOwnProperty("textures"))){var e=t.data.textures,i=this.config,n=this.loader,r=n.baseURL,a=n.path,h=n.prefix,u=s(i,"baseURL",this.baseURL),l=s(i,"path",this.path),c=s(i,"prefix",this.prefix),d=s(i,"textureXhrSettings");n.setBaseURL(u),n.setPath(l),n.setPrefix(c);for(var p=0;p<e.length;p++){var f=e[p].image,m="MA"+this.multiKeyIndex+"_"+f,v=new o(n,m,f,d);if(this.addToMultiFile(v),n.addFile(v),e[p].normalMap){var g=new o(n,m,e[p].normalMap,d);g.type="normalMap",v.setLink(g),this.addToMultiFile(g),n.addFile(g)}}n.setBaseURL(r),n.setPath(a),n.setPrefix(h)}},addToCache:function(){if(this.isReadyToProcess()){for(var t=this.files[0],e=[],i=[],n=[],r=1;r<this.files.length;r++){var s=this.files[r];if("normalMap"!==s.type)for(var o=s.key.indexOf("_"),a=s.key.substr(o+1),h=s.data,u=0;u<t.data.textures.length;u++){var l=t.data.textures[u];if(l.image===a){i.push(h),e.push(l),s.linkFile&&n.push(s.linkFile.data);break}}}for(0===n.length&&(n=void 0),this.loader.textureManager.addAtlasJSONArray(this.key,i,e,n),this.complete=!0,r=0;r<this.files.length;r++)this.files[r].pendingDestroy()}}});r.register("multiatlas",(function(t,e,i,n,r){var s;if(Array.isArray(t))for(var o=0;o<t.length;o++)s=new l(this,t[o]),this.addFile(s.files);else s=new l(this,t,e,i,n,r),this.addFile(s.files);return this})),t.exports=l},49023:(t,e,i)=>{var n=i(47379),r=i(16656),s=i(81769),o=i(28621),a=i(11611),h=i(52378),u=new n({Extends:a,initialize:function(t,e,i,n){var r="js",u=[];if(o(e)){var l=e;e=s(l,"key"),i=s(l,"url"),n=s(l,"xhrSettings"),r=s(l,"extension",r)}Array.isArray(i)||(i=[i]);for(var c=0;c<i.length;c++){var d=new h(t,{key:e+"_"+c.toString(),url:i[c],extension:r,xhrSettings:n});d.onProcess=function(){this.onProcessComplete()},u.push(d)}a.call(this,t,"scripts",e,u)},addToCache:function(){if(this.isReadyToProcess()){for(var t=0;t<this.files.length;t++){var e=this.files[t];e.data=document.createElement("script"),e.data.language="javascript",e.data.type="text/javascript",e.data.defer=!1,e.data.text=e.xhrLoader.responseText,document.head.appendChild(e.data)}this.complete=!0}}});r.register("scripts",(function(t,e,i){var n;if(Array.isArray(t))for(var r=0;r<t.length;r++)n=new u(this,t[r]),this.addFile(n.files);else n=new u(this,t,e,i),this.addFile(n.files);return this})),t.exports=u},84975:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(16656),o=i(22102),a=new n({Extends:o,initialize:function(t,e,i,n,r){o.call(this,t,e,i,n,r),this.type="packfile"},onProcess:function(){this.state!==r.FILE_POPULATED&&(this.state=r.FILE_PROCESSING,this.data=JSON.parse(this.xhrLoader.responseText)),this.loader.addPack(this.data,this.config),this.onProcessComplete()}});s.register("pack",(function(t,e,i,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)this.addFile(new a(this,t[r]));else this.addFile(new a(this,t,e,n,i));return this})),t.exports=a},34665:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=new n({Extends:s,initialize:function(t,e,i,n,o,u){var l="js";if(h(e)){var c=e;e=a(c,"key"),i=a(c,"url"),u=a(c,"xhrSettings"),l=a(c,"extension",l),n=a(c,"start"),o=a(c,"mapping")}var d={type:"plugin",cache:!1,extension:l,responseType:"text",key:e,url:i,xhrSettings:u,config:{start:n,mapping:o}};s.call(this,t,d),"function"==typeof i&&(this.data=i,this.state=r.FILE_POPULATED)},onProcess:function(){var t=this.loader.systems.plugins,e=this.config,i=a(e,"start",!1),n=a(e,"mapping",null);if(this.state===r.FILE_POPULATED)t.install(this.key,this.data,i,n);else{this.state=r.FILE_PROCESSING,this.data=document.createElement("script"),this.data.language="javascript",this.data.type="text/javascript",this.data.defer=!1,this.data.text=this.xhrLoader.responseText,document.head.appendChild(this.data);var s=t.install(this.key,window[this.key],i,n);(i||n)&&(this.loader.systems[n]=s,this.loader.scene[n]=s)}this.onProcessComplete()}});o.register("plugin",(function(t,e,i,n,r){if(Array.isArray(t))for(var s=0;s<t.length;s++)this.addFile(new u(this,t[s]));else this.addFile(new u(this,t,e,i,n,r));return this})),t.exports=u},13081:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=new n({Extends:s,initialize:function(t,e,i,n,r){var o="svg";if(h(e)){var u=e;e=a(u,"key"),i=a(u,"url"),n=a(u,"svgConfig",{}),r=a(u,"xhrSettings"),o=a(u,"extension",o)}var l={type:"svg",cache:t.textureManager,extension:o,responseType:"text",key:e,url:i,xhrSettings:r,config:{width:a(n,"width"),height:a(n,"height"),scale:a(n,"scale")}};s.call(this,t,l)},onProcess:function(){this.state=r.FILE_PROCESSING;var t=this.xhrLoader.responseText,e=[t],i=this.config.width,n=this.config.height,o=this.config.scale;t:if(i&&n||o){var a=(new DOMParser).parseFromString(t,"text/xml").getElementsByTagName("svg")[0],h=a.hasAttribute("viewBox"),u=parseFloat(a.getAttribute("width")),l=parseFloat(a.getAttribute("height"));if(!h&&u&&l)a.setAttribute("viewBox","0 0 "+u+" "+l);else if(h&&!u&&!l){var c=a.getAttribute("viewBox").split(/\s+|,/);u=c[2],l=c[3]}if(o){if(!u||!l)break t;i=u*o,n=l*o}a.setAttribute("width",i.toString()+"px"),a.setAttribute("height",n.toString()+"px"),e=[(new XMLSerializer).serializeToString(a)]}try{var d=new window.Blob(e,{type:"image/svg+xml;charset=utf-8"})}catch(t){return void this.onProcessError()}this.data=new Image,this.data.crossOrigin=this.crossOrigin;var p=this,f=!1;this.data.onload=function(){f||s.revokeObjectURL(p.data),p.onProcessComplete()},this.data.onerror=function(){f?p.onProcessError():(f=!0,s.revokeObjectURL(p.data),p.data.src="data:image/svg+xml,"+encodeURIComponent(e.join("")))},s.createObjectURL(this.data,d,"image/svg+xml")},addToCache:function(){var t=this.cache.addImage(this.key,this.data);this.pendingDestroy(t)}});o.register("svg",(function(t,e,i,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)this.addFile(new u(this,t[r]));else this.addFile(new u(this,t,e,i,n));return this})),t.exports=u},47398:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=new n({Extends:s,initialize:function(t,e,i,n){var r="js";if(h(e)){var o=e;e=a(o,"key"),i=a(o,"url"),n=a(o,"xhrSettings"),r=a(o,"extension",r)}var u={type:"text",cache:t.cacheManager.text,extension:r,responseType:"text",key:e,url:i,xhrSettings:n};s.call(this,t,u)},onProcess:function(){this.state=r.FILE_PROCESSING,this.data=this.xhrLoader.responseText,this.onProcessComplete()},addToCache:function(){var t=this.data.concat("(function(){\nreturn new "+this.key+"();\n}).call(this);"),e=eval;this.loader.sceneManager.add(this.key,e(t)),this.complete=!0}});o.register("sceneFile",(function(t,e,i){if(Array.isArray(t))for(var n=0;n<t.length;n++)this.addFile(new u(this,t[n]));else this.addFile(new u(this,t,e,i));return this})),t.exports=u},85762:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=new n({Extends:s,initialize:function(t,e,i,n,o,u){var l="js";if(h(e)){var c=e;e=a(c,"key"),i=a(c,"url"),u=a(c,"xhrSettings"),l=a(c,"extension",l),n=a(c,"systemKey"),o=a(c,"sceneKey")}var d={type:"scenePlugin",cache:!1,extension:l,responseType:"text",key:e,url:i,xhrSettings:u,config:{systemKey:n,sceneKey:o}};s.call(this,t,d),"function"==typeof i&&(this.data=i,this.state=r.FILE_POPULATED)},onProcess:function(){var t=this.loader.systems.plugins,e=this.config,i=this.key,n=a(e,"systemKey",i),s=a(e,"sceneKey",i);this.state===r.FILE_POPULATED?t.installScenePlugin(n,this.data,s,this.loader.scene,!0):(this.state=r.FILE_PROCESSING,this.data=document.createElement("script"),this.data.language="javascript",this.data.type="text/javascript",this.data.defer=!1,this.data.text=this.xhrLoader.responseText,document.head.appendChild(this.data),t.installScenePlugin(n,window[this.key],s,this.loader.scene,!0)),this.onProcessComplete()}});o.register("scenePlugin",(function(t,e,i,n,r){if(Array.isArray(t))for(var s=0;s<t.length;s++)this.addFile(new u(this,t[s]));else this.addFile(new u(this,t,e,i,n,r));return this})),t.exports=u},52378:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=new n({Extends:s,initialize:function(t,e,i,n){var r="js";if(h(e)){var o=e;e=a(o,"key"),i=a(o,"url"),n=a(o,"xhrSettings"),r=a(o,"extension",r)}var u={type:"script",cache:!1,extension:r,responseType:"text",key:e,url:i,xhrSettings:n};s.call(this,t,u)},onProcess:function(){this.state=r.FILE_PROCESSING,this.data=document.createElement("script"),this.data.language="javascript",this.data.type="text/javascript",this.data.defer=!1,this.data.text=this.xhrLoader.responseText,document.head.appendChild(this.data),this.onProcessComplete()}});o.register("script",(function(t,e,i){if(Array.isArray(t))for(var n=0;n<t.length;n++)this.addFile(new u(this,t[n]));else this.addFile(new u(this,t,e,i));return this})),t.exports=u},10108:(t,e,i)=>{var n=i(47379),r=i(16656),s=i(85458),o=new n({Extends:s,initialize:function(t,e,i,n,r){s.call(this,t,e,i,r,n),this.type="spritesheet"},addToCache:function(){var t=this.cache.addSpriteSheet(this.key,this.data,this.config);this.pendingDestroy(t)}});r.register("spritesheet",(function(t,e,i,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)this.addFile(new o(this,t[r]));else this.addFile(new o(this,t,e,i,n));return this})),t.exports=o},39517:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=new n({Extends:s,initialize:function(t,e,i,n){var r="txt";if(h(e)){var o=e;e=a(o,"key"),i=a(o,"url"),n=a(o,"xhrSettings"),r=a(o,"extension",r)}var u={type:"text",cache:t.cacheManager.text,extension:r,responseType:"text",key:e,url:i,xhrSettings:n};s.call(this,t,u)},onProcess:function(){this.state=r.FILE_PROCESSING,this.data=this.xhrLoader.responseText,this.onProcessComplete()}});o.register("text",(function(t,e,i){if(Array.isArray(t))for(var n=0;n<t.length;n++)this.addFile(new u(this,t[n]));else this.addFile(new u(this,t,e,i));return this})),t.exports=u},88553:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=i(16092),l=new n({Extends:s,initialize:function(t,e,i,n){var r="csv";if(h(e)){var o=e;e=a(o,"key"),i=a(o,"url"),n=a(o,"xhrSettings"),r=a(o,"extension",r)}var l={type:"tilemapCSV",cache:t.cacheManager.tilemap,extension:r,responseType:"text",key:e,url:i,xhrSettings:n};s.call(this,t,l),this.tilemapFormat=u.CSV},onProcess:function(){this.state=r.FILE_PROCESSING,this.data=this.xhrLoader.responseText,this.onProcessComplete()},addToCache:function(){var t={format:this.tilemapFormat,data:this.data};this.cache.add(this.key,t),this.pendingDestroy(t)}});o.register("tilemapCSV",(function(t,e,i){if(Array.isArray(t))for(var n=0;n<t.length;n++)this.addFile(new l(this,t[n]));else this.addFile(new l(this,t,e,i));return this})),t.exports=l},78704:(t,e,i)=>{var n=i(47379),r=i(16656),s=i(22102),o=i(16092),a=new n({Extends:s,initialize:function(t,e,i,n){s.call(this,t,e,i,n),this.type="tilemapJSON",this.cache=t.cacheManager.tilemap},addToCache:function(){var t={format:o.WELTMEISTER,data:this.data};this.cache.add(this.key,t),this.pendingDestroy(t)}});r.register("tilemapImpact",(function(t,e,i){if(Array.isArray(t))for(var n=0;n<t.length;n++)this.addFile(new a(this,t[n]));else this.addFile(new a(this,t,e,i));return this})),t.exports=a},9435:(t,e,i)=>{var n=i(47379),r=i(16656),s=i(22102),o=i(16092),a=new n({Extends:s,initialize:function(t,e,i,n){s.call(this,t,e,i,n),this.type="tilemapJSON",this.cache=t.cacheManager.tilemap},addToCache:function(){var t={format:o.TILED_JSON,data:this.data};this.cache.add(this.key,t),this.pendingDestroy(t)}});r.register("tilemapTiledJSON",(function(t,e,i){if(Array.isArray(t))for(var n=0;n<t.length;n++)this.addFile(new a(this,t[n]));else this.addFile(new a(this,t,e,i));return this})),t.exports=a},78221:(t,e,i)=>{var n=i(47379),r=i(16656),s=i(81769),o=i(85458),a=i(28621),h=i(11611),u=i(39517),l=new n({Extends:h,initialize:function(t,e,i,n,r,l){var c,d;if(a(e)){var p=e;e=s(p,"key"),c=new o(t,{key:e,url:s(p,"textureURL"),extension:s(p,"textureExtension","png"),normalMap:s(p,"normalMap"),xhrSettings:s(p,"textureXhrSettings")}),d=new u(t,{key:e,url:s(p,"atlasURL"),extension:s(p,"atlasExtension","txt"),xhrSettings:s(p,"atlasXhrSettings")})}else c=new o(t,e,i,r),d=new u(t,e,n,l);c.linkFile?h.call(this,t,"unityatlas",e,[c,d,c.linkFile]):h.call(this,t,"unityatlas",e,[c,d])},addToCache:function(){if(this.isReadyToProcess()){var t=this.files[0],e=this.files[1],i=this.files[2]?this.files[2].data:null;this.loader.textureManager.addUnityAtlas(t.key,t.data,e.data,i),e.addToCache(),this.complete=!0}}});r.register("unityAtlas",(function(t,e,i,n,r){var s;if(Array.isArray(t))for(var o=0;o<t.length;o++)s=new l(this,t[o]),this.addFile(s.files);else s=new l(this,t,e,i,n,r),this.addFile(s.files);return this})),t.exports=l},72845:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(1429),h=i(81769),u=i(28621),l=new n({Extends:s,initialize:function(t,e,i,n,r,o,a){void 0===n&&(n="loadeddata"),void 0===r&&(r=!1),void 0===o&&(o=!1),"loadeddata"!==n&&"canplay"!==n&&"canplaythrough"!==n&&(n="loadeddata");var h={type:"video",cache:t.cacheManager.video,extension:i.type,responseType:"blob",key:e,url:i.url,xhrSettings:a,config:{loadEvent:n,asBlob:r,noAudio:o}};this.onLoadCallback=this.onVideoLoadHandler.bind(this),this.onErrorCallback=this.onVideoErrorHandler.bind(this),s.call(this,t,h)},onProcess:function(){if(this.state=r.FILE_PROCESSING,this.config.asBlob){var t=this.createVideoElement();this.data=t;var e=this;this.data.onloadeddata=function(){e.onProcessComplete()},this.data.onerror=function(){s.revokeObjectURL(e.data),e.onProcessError()},s.createObjectURL(t,this.xhrLoader.response,""),t.load()}else this.onProcessComplete()},createVideoElement:function(){var t=document.createElement("video");return t.controls=!1,t.crossOrigin=this.loader.crossOrigin,this.config.noAudio&&(t.muted=!0,t.defaultMuted=!0,t.setAttribute("autoplay","autoplay")),t.setAttribute("playsinline","playsinline"),t.setAttribute("preload","auto"),t},onVideoLoadHandler:function(t){var e=t.target;e.removeEventListener(this.config.loadEvent,this.onLoadCallback,!0),e.removeEventListener("error",this.onErrorCallback,!0),this.data=e,this.resetXHR(),this.loader.nextFile(this,!0)},onVideoErrorHandler:function(t){var e=t.target;e&&(e.removeEventListener(this.config.loadEvent,this.onLoadCallback,!0),e.removeEventListener("error",this.onErrorCallback,!0)),this.resetXHR(),this.loader.nextFile(this,!1)},load:function(){var t=this.config.loadEvent;if(this.config.asBlob)s.prototype.load.call(this);else{this.percentComplete=0;var e=this.createVideoElement();e.addEventListener(t,this.onLoadCallback,!0),e.addEventListener("error",this.onErrorCallback,!0),e.src=a(this,this.loader.baseURL),e.load()}}});l.create=function(t,e,i,n,r,s,o){var a=t.systems.game;u(e)&&(i=h(e,"url",[]),n=h(e,"loadEvent","loadeddata"),r=h(e,"asBlob",!1),s=h(e,"noAudio",!1),o=h(e,"xhrSettings"));var c=l.getVideoURL(a,i);if(c)return new l(t,e,c,n,r,s,o)},l.getVideoURL=function(t,e){Array.isArray(e)||(e=[e]);for(var i=0;i<e.length;i++){var n,r=h(e[i],"url",e[i]);if(0===r.indexOf("blob:"))return{url:r,type:""};if(n=0===r.indexOf("data:")?r.split(",")[0].match(/\/(.*?);/):r.match(/\.([a-zA-Z0-9]+)($|\?)/),n=h(e[i],"type",n?n[1]:"").toLowerCase(),t.device.video[n])return{url:r,type:n}}return null},o.register("video",(function(t,e,i,n,r,s){var o;if(Array.isArray(t))for(var a=0;a<t.length;a++)(o=l.create(this,t[a]))&&this.addFile(o);else(o=l.create(this,t,e,i,n,r,s))&&this.addFile(o);return this})),t.exports=l},56126:(t,e,i)=>{var n=i(47379),r=i(78146),s=i(21301),o=i(16656),a=i(81769),h=i(28621),u=i(78403),l=new n({Extends:s,initialize:function(t,e,i,n){var r="xml";if(h(e)){var o=e;e=a(o,"key"),i=a(o,"url"),n=a(o,"xhrSettings"),r=a(o,"extension",r)}var u={type:"xml",cache:t.cacheManager.xml,extension:r,responseType:"text",key:e,url:i,xhrSettings:n};s.call(this,t,u)},onProcess:function(){this.state=r.FILE_PROCESSING,this.data=u(this.xhrLoader.responseText),this.data?this.onProcessComplete():(console.warn("Invalid XMLFile: "+this.key),this.onProcessError())}});o.register("xml",(function(t,e,i){if(Array.isArray(t))for(var n=0;n<t.length;n++)this.addFile(new l(this,t[n]));else this.addFile(new l(this,t,e,i));return this})),t.exports=l},91291:(t,e,i)=>{t.exports={AnimationJSONFile:i(28955),AtlasJSONFile:i(5084),AtlasXMLFile:i(44468),AudioFile:i(92500),AudioSpriteFile:i(33714),BinaryFile:i(19132),BitmapFontFile:i(70589),CSSFile:i(60647),GLSLFile:i(29608),HTML5AudioFile:i(43070),HTMLFile:i(1622),HTMLTextureFile:i(14964),ImageFile:i(85458),JSONFile:i(22102),MultiAtlasFile:i(27467),MultiScriptFile:i(49023),PackFile:i(84975),PluginFile:i(34665),SceneFile:i(47398),ScenePluginFile:i(85762),ScriptFile:i(52378),SpriteSheetFile:i(10108),SVGFile:i(13081),TextFile:i(39517),TilemapCSVFile:i(88553),TilemapImpactFile:i(78704),TilemapJSONFile:i(9435),UnityAtlasFile:i(78221),VideoFile:i(72845),XMLFile:i(56126)}},42430:(t,e,i)=>{var n=i(78146),r=i(80933),s={Events:i(88275),FileTypes:i(91291),File:i(21301),FileTypesManager:i(16656),GetURL:i(1429),LoaderPlugin:i(91315),MergeXHRSettings:i(36404),MultiFile:i(11611),XHRLoader:i(13872),XHRSettings:i(20270)};s=r(!1,s,n),t.exports=s},44962:t=>{t.exports=function(t){for(var e=0,i=0;i<t.length;i++)e+=+t[i];return e/t.length}},70890:(t,e,i)=>{var n=i(3211);t.exports=function(t,e){return n(t)/n(e)/n(t-e)}},67630:t=>{t.exports=function(t,e){return Math.floor(Math.random()*(e-t+1)+t)}},21934:t=>{t.exports=function(t,e,i,n,r){var s=.5*(n-e),o=.5*(r-i),a=t*t;return(2*i-2*n+s+o)*(t*a)+(-3*i+3*n-2*s-o)*a+s*t+i}},74018:t=>{t.exports=function(t,e,i){void 0===e&&(e=0),void 0===i&&(i=10);var n=Math.pow(i,-e);return Math.ceil(t*n)/n}},90487:t=>{t.exports=function(t,e,i){return Math.max(e,Math.min(i,t))}},98436:(t,e,i)=>{var n=i(14302);t.exports=function(t){return t*n.DEG_TO_RAD}},60669:t=>{t.exports=function(t,e){return Math.abs(t-e)}},3211:t=>{t.exports=function(t){if(0===t)return 1;for(var e=t;--t;)e*=t;return e}},31657:t=>{t.exports=function(t,e){return Math.random()*(e-t)+t}},51228:t=>{t.exports=function(t,e,i){void 0===e&&(e=0),void 0===i&&(i=10);var n=Math.pow(i,-e);return Math.floor(t*n)/n}},96210:(t,e,i)=>{var n=i(90487);t.exports=function(t,e,i){return(i-e)*(t=n(t,0,1))}},89478:t=>{t.exports=function(t,e){return t/e/1e3}},67781:t=>{t.exports=function(t){return t==parseFloat(t)?!(t%2):void 0}},60602:t=>{t.exports=function(t){return t===parseFloat(t)?!(t%2):void 0}},57459:t=>{t.exports=function(t,e,i){return(e-t)*i+t}},45201:(t,e,i)=>{var n=new(i(47379))({initialize:function(t){this.val=new Float32Array(9),t?this.copy(t):this.identity()},clone:function(){return new n(this)},set:function(t){return this.copy(t)},copy:function(t){var e=this.val,i=t.val;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],this},fromMat4:function(t){var e=t.val,i=this.val;return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[4],i[4]=e[5],i[5]=e[6],i[6]=e[8],i[7]=e[9],i[8]=e[10],this},fromArray:function(t){var e=this.val;return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],this},identity:function(){var t=this.val;return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,this},transpose:function(){var t=this.val,e=t[1],i=t[2],n=t[5];return t[1]=t[3],t[2]=t[6],t[3]=e,t[5]=t[7],t[6]=i,t[7]=n,this},invert:function(){var t=this.val,e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],o=t[5],a=t[6],h=t[7],u=t[8],l=u*s-o*h,c=-u*r+o*a,d=h*r-s*a,p=e*l+i*c+n*d;return p?(p=1/p,t[0]=l*p,t[1]=(-u*i+n*h)*p,t[2]=(o*i-n*s)*p,t[3]=c*p,t[4]=(u*e-n*a)*p,t[5]=(-o*e+n*r)*p,t[6]=d*p,t[7]=(-h*e+i*a)*p,t[8]=(s*e-i*r)*p,this):null},adjoint:function(){var t=this.val,e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],o=t[5],a=t[6],h=t[7],u=t[8];return t[0]=s*u-o*h,t[1]=n*h-i*u,t[2]=i*o-n*s,t[3]=o*a-r*u,t[4]=e*u-n*a,t[5]=n*r-e*o,t[6]=r*h-s*a,t[7]=i*a-e*h,t[8]=e*s-i*r,this},determinant:function(){var t=this.val,e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],o=t[5],a=t[6],h=t[7],u=t[8];return e*(u*s-o*h)+i*(-u*r+o*a)+n*(h*r-s*a)},multiply:function(t){var e=this.val,i=e[0],n=e[1],r=e[2],s=e[3],o=e[4],a=e[5],h=e[6],u=e[7],l=e[8],c=t.val,d=c[0],p=c[1],f=c[2],m=c[3],v=c[4],g=c[5],y=c[6],_=c[7],x=c[8];return e[0]=d*i+p*s+f*h,e[1]=d*n+p*o+f*u,e[2]=d*r+p*a+f*l,e[3]=m*i+v*s+g*h,e[4]=m*n+v*o+g*u,e[5]=m*r+v*a+g*l,e[6]=y*i+_*s+x*h,e[7]=y*n+_*o+x*u,e[8]=y*r+_*a+x*l,this},translate:function(t){var e=this.val,i=t.x,n=t.y;return e[6]=i*e[0]+n*e[3]+e[6],e[7]=i*e[1]+n*e[4]+e[7],e[8]=i*e[2]+n*e[5]+e[8],this},rotate:function(t){var e=this.val,i=e[0],n=e[1],r=e[2],s=e[3],o=e[4],a=e[5],h=Math.sin(t),u=Math.cos(t);return e[0]=u*i+h*s,e[1]=u*n+h*o,e[2]=u*r+h*a,e[3]=u*s-h*i,e[4]=u*o-h*n,e[5]=u*a-h*r,this},scale:function(t){var e=this.val,i=t.x,n=t.y;return e[0]=i*e[0],e[1]=i*e[1],e[2]=i*e[2],e[3]=n*e[3],e[4]=n*e[4],e[5]=n*e[5],this},fromQuat:function(t){var e=t.x,i=t.y,n=t.z,r=t.w,s=e+e,o=i+i,a=n+n,h=e*s,u=e*o,l=e*a,c=i*o,d=i*a,p=n*a,f=r*s,m=r*o,v=r*a,g=this.val;return g[0]=1-(c+p),g[3]=u+v,g[6]=l-m,g[1]=u-v,g[4]=1-(h+p),g[7]=d+f,g[2]=l+m,g[5]=d-f,g[8]=1-(h+c),this},normalFromMat4:function(t){var e=t.val,i=this.val,n=e[0],r=e[1],s=e[2],o=e[3],a=e[4],h=e[5],u=e[6],l=e[7],c=e[8],d=e[9],p=e[10],f=e[11],m=e[12],v=e[13],g=e[14],y=e[15],_=n*h-r*a,x=n*u-s*a,b=n*l-o*a,w=r*u-s*h,T=r*l-o*h,M=s*l-o*u,S=c*v-d*m,E=c*g-p*m,L=c*y-f*m,A=d*g-p*v,D=d*y-f*v,P=p*y-f*g,C=_*P-x*D+b*A+w*L-T*E+M*S;return C?(C=1/C,i[0]=(h*P-u*D+l*A)*C,i[1]=(u*L-a*P-l*E)*C,i[2]=(a*D-h*L+l*S)*C,i[3]=(s*D-r*P-o*A)*C,i[4]=(n*P-s*L+o*E)*C,i[5]=(r*L-n*D-o*S)*C,i[6]=(v*M-g*T+y*w)*C,i[7]=(g*b-m*M-y*x)*C,i[8]=(m*T-v*b+y*_)*C,this):null}});t.exports=n},27314:(t,e,i)=>{var n=i(47379),r=1e-6,s=new n({initialize:function(t){this.val=new Float32Array(16),t?this.copy(t):this.identity()},clone:function(){return new s(this)},set:function(t){return this.copy(t)},copy:function(t){var e=this.val,i=t.val;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this},fromArray:function(t){var e=this.val;return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],this},zero:function(){var t=this.val;return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=0,this},xyz:function(t,e,i){this.identity();var n=this.val;return n[12]=t,n[13]=e,n[14]=i,this},scaling:function(t,e,i){this.zero();var n=this.val;return n[0]=t,n[5]=e,n[10]=i,n[15]=1,this},identity:function(){var t=this.val;return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this},transpose:function(){var t=this.val,e=t[1],i=t[2],n=t[3],r=t[6],s=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=e,t[6]=t[9],t[7]=t[13],t[8]=i,t[9]=r,t[11]=t[14],t[12]=n,t[13]=s,t[14]=o,this},invert:function(){var t=this.val,e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],o=t[5],a=t[6],h=t[7],u=t[8],l=t[9],c=t[10],d=t[11],p=t[12],f=t[13],m=t[14],v=t[15],g=e*o-i*s,y=e*a-n*s,_=e*h-r*s,x=i*a-n*o,b=i*h-r*o,w=n*h-r*a,T=u*f-l*p,M=u*m-c*p,S=u*v-d*p,E=l*m-c*f,L=l*v-d*f,A=c*v-d*m,D=g*A-y*L+_*E+x*S-b*M+w*T;return D?(D=1/D,t[0]=(o*A-a*L+h*E)*D,t[1]=(n*L-i*A-r*E)*D,t[2]=(f*w-m*b+v*x)*D,t[3]=(c*b-l*w-d*x)*D,t[4]=(a*S-s*A-h*M)*D,t[5]=(e*A-n*S+r*M)*D,t[6]=(m*_-p*w-v*y)*D,t[7]=(u*w-c*_+d*y)*D,t[8]=(s*L-o*S+h*T)*D,t[9]=(i*S-e*L-r*T)*D,t[10]=(p*b-f*_+v*g)*D,t[11]=(l*_-u*b-d*g)*D,t[12]=(o*M-s*E-a*T)*D,t[13]=(e*E-i*M+n*T)*D,t[14]=(f*y-p*x-m*g)*D,t[15]=(u*x-l*y+c*g)*D,this):null},adjoint:function(){var t=this.val,e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],o=t[5],a=t[6],h=t[7],u=t[8],l=t[9],c=t[10],d=t[11],p=t[12],f=t[13],m=t[14],v=t[15];return t[0]=o*(c*v-d*m)-l*(a*v-h*m)+f*(a*d-h*c),t[1]=-(i*(c*v-d*m)-l*(n*v-r*m)+f*(n*d-r*c)),t[2]=i*(a*v-h*m)-o*(n*v-r*m)+f*(n*h-r*a),t[3]=-(i*(a*d-h*c)-o*(n*d-r*c)+l*(n*h-r*a)),t[4]=-(s*(c*v-d*m)-u*(a*v-h*m)+p*(a*d-h*c)),t[5]=e*(c*v-d*m)-u*(n*v-r*m)+p*(n*d-r*c),t[6]=-(e*(a*v-h*m)-s*(n*v-r*m)+p*(n*h-r*a)),t[7]=e*(a*d-h*c)-s*(n*d-r*c)+u*(n*h-r*a),t[8]=s*(l*v-d*f)-u*(o*v-h*f)+p*(o*d-h*l),t[9]=-(e*(l*v-d*f)-u*(i*v-r*f)+p*(i*d-r*l)),t[10]=e*(o*v-h*f)-s*(i*v-r*f)+p*(i*h-r*o),t[11]=-(e*(o*d-h*l)-s*(i*d-r*l)+u*(i*h-r*o)),t[12]=-(s*(l*m-c*f)-u*(o*m-a*f)+p*(o*c-a*l)),t[13]=e*(l*m-c*f)-u*(i*m-n*f)+p*(i*c-n*l),t[14]=-(e*(o*m-a*f)-s*(i*m-n*f)+p*(i*a-n*o)),t[15]=e*(o*c-a*l)-s*(i*c-n*l)+u*(i*a-n*o),this},determinant:function(){var t=this.val,e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],o=t[5],a=t[6],h=t[7],u=t[8],l=t[9],c=t[10],d=t[11],p=t[12],f=t[13],m=t[14],v=t[15];return(e*o-i*s)*(c*v-d*m)-(e*a-n*s)*(l*v-d*f)+(e*h-r*s)*(l*m-c*f)+(i*a-n*o)*(u*v-d*p)-(i*h-r*o)*(u*m-c*p)+(n*h-r*a)*(u*f-l*p)},multiply:function(t){var e=this.val,i=e[0],n=e[1],r=e[2],s=e[3],o=e[4],a=e[5],h=e[6],u=e[7],l=e[8],c=e[9],d=e[10],p=e[11],f=e[12],m=e[13],v=e[14],g=e[15],y=t.val,_=y[0],x=y[1],b=y[2],w=y[3];return e[0]=_*i+x*o+b*l+w*f,e[1]=_*n+x*a+b*c+w*m,e[2]=_*r+x*h+b*d+w*v,e[3]=_*s+x*u+b*p+w*g,_=y[4],x=y[5],b=y[6],w=y[7],e[4]=_*i+x*o+b*l+w*f,e[5]=_*n+x*a+b*c+w*m,e[6]=_*r+x*h+b*d+w*v,e[7]=_*s+x*u+b*p+w*g,_=y[8],x=y[9],b=y[10],w=y[11],e[8]=_*i+x*o+b*l+w*f,e[9]=_*n+x*a+b*c+w*m,e[10]=_*r+x*h+b*d+w*v,e[11]=_*s+x*u+b*p+w*g,_=y[12],x=y[13],b=y[14],w=y[15],e[12]=_*i+x*o+b*l+w*f,e[13]=_*n+x*a+b*c+w*m,e[14]=_*r+x*h+b*d+w*v,e[15]=_*s+x*u+b*p+w*g,this},multiplyLocal:function(t){var e=[],i=this.val,n=t.val;return e[0]=i[0]*n[0]+i[1]*n[4]+i[2]*n[8]+i[3]*n[12],e[1]=i[0]*n[1]+i[1]*n[5]+i[2]*n[9]+i[3]*n[13],e[2]=i[0]*n[2]+i[1]*n[6]+i[2]*n[10]+i[3]*n[14],e[3]=i[0]*n[3]+i[1]*n[7]+i[2]*n[11]+i[3]*n[15],e[4]=i[4]*n[0]+i[5]*n[4]+i[6]*n[8]+i[7]*n[12],e[5]=i[4]*n[1]+i[5]*n[5]+i[6]*n[9]+i[7]*n[13],e[6]=i[4]*n[2]+i[5]*n[6]+i[6]*n[10]+i[7]*n[14],e[7]=i[4]*n[3]+i[5]*n[7]+i[6]*n[11]+i[7]*n[15],e[8]=i[8]*n[0]+i[9]*n[4]+i[10]*n[8]+i[11]*n[12],e[9]=i[8]*n[1]+i[9]*n[5]+i[10]*n[9]+i[11]*n[13],e[10]=i[8]*n[2]+i[9]*n[6]+i[10]*n[10]+i[11]*n[14],e[11]=i[8]*n[3]+i[9]*n[7]+i[10]*n[11]+i[11]*n[15],e[12]=i[12]*n[0]+i[13]*n[4]+i[14]*n[8]+i[15]*n[12],e[13]=i[12]*n[1]+i[13]*n[5]+i[14]*n[9]+i[15]*n[13],e[14]=i[12]*n[2]+i[13]*n[6]+i[14]*n[10]+i[15]*n[14],e[15]=i[12]*n[3]+i[13]*n[7]+i[14]*n[11]+i[15]*n[15],this.fromArray(e)},translate:function(t){var e=t.x,i=t.y,n=t.z,r=this.val;return r[12]=r[0]*e+r[4]*i+r[8]*n+r[12],r[13]=r[1]*e+r[5]*i+r[9]*n+r[13],r[14]=r[2]*e+r[6]*i+r[10]*n+r[14],r[15]=r[3]*e+r[7]*i+r[11]*n+r[15],this},translateXYZ:function(t,e,i){var n=this.val;return n[12]=n[0]*t+n[4]*e+n[8]*i+n[12],n[13]=n[1]*t+n[5]*e+n[9]*i+n[13],n[14]=n[2]*t+n[6]*e+n[10]*i+n[14],n[15]=n[3]*t+n[7]*e+n[11]*i+n[15],this},scale:function(t){var e=t.x,i=t.y,n=t.z,r=this.val;return r[0]=r[0]*e,r[1]=r[1]*e,r[2]=r[2]*e,r[3]=r[3]*e,r[4]=r[4]*i,r[5]=r[5]*i,r[6]=r[6]*i,r[7]=r[7]*i,r[8]=r[8]*n,r[9]=r[9]*n,r[10]=r[10]*n,r[11]=r[11]*n,this},scaleXYZ:function(t,e,i){var n=this.val;return n[0]=n[0]*t,n[1]=n[1]*t,n[2]=n[2]*t,n[3]=n[3]*t,n[4]=n[4]*e,n[5]=n[5]*e,n[6]=n[6]*e,n[7]=n[7]*e,n[8]=n[8]*i,n[9]=n[9]*i,n[10]=n[10]*i,n[11]=n[11]*i,this},makeRotationAxis:function(t,e){var i=Math.cos(e),n=Math.sin(e),r=1-i,s=t.x,o=t.y,a=t.z,h=r*s,u=r*o;return this.fromArray([h*s+i,h*o-n*a,h*a+n*o,0,h*o+n*a,u*o+i,u*a-n*s,0,h*a-n*o,u*a+n*s,r*a*a+i,0,0,0,0,1]),this},rotate:function(t,e){var i=this.val,n=e.x,s=e.y,o=e.z,a=Math.sqrt(n*n+s*s+o*o);if(Math.abs(a)<r)return null;n*=a=1/a,s*=a,o*=a;var h=Math.sin(t),u=Math.cos(t),l=1-u,c=i[0],d=i[1],p=i[2],f=i[3],m=i[4],v=i[5],g=i[6],y=i[7],_=i[8],x=i[9],b=i[10],w=i[11],T=n*n*l+u,M=s*n*l+o*h,S=o*n*l-s*h,E=n*s*l-o*h,L=s*s*l+u,A=o*s*l+n*h,D=n*o*l+s*h,P=s*o*l-n*h,C=o*o*l+u;return i[0]=c*T+m*M+_*S,i[1]=d*T+v*M+x*S,i[2]=p*T+g*M+b*S,i[3]=f*T+y*M+w*S,i[4]=c*E+m*L+_*A,i[5]=d*E+v*L+x*A,i[6]=p*E+g*L+b*A,i[7]=f*E+y*L+w*A,i[8]=c*D+m*P+_*C,i[9]=d*D+v*P+x*C,i[10]=p*D+g*P+b*C,i[11]=f*D+y*P+w*C,this},rotateX:function(t){var e=this.val,i=Math.sin(t),n=Math.cos(t),r=e[4],s=e[5],o=e[6],a=e[7],h=e[8],u=e[9],l=e[10],c=e[11];return e[4]=r*n+h*i,e[5]=s*n+u*i,e[6]=o*n+l*i,e[7]=a*n+c*i,e[8]=h*n-r*i,e[9]=u*n-s*i,e[10]=l*n-o*i,e[11]=c*n-a*i,this},rotateY:function(t){var e=this.val,i=Math.sin(t),n=Math.cos(t),r=e[0],s=e[1],o=e[2],a=e[3],h=e[8],u=e[9],l=e[10],c=e[11];return e[0]=r*n-h*i,e[1]=s*n-u*i,e[2]=o*n-l*i,e[3]=a*n-c*i,e[8]=r*i+h*n,e[9]=s*i+u*n,e[10]=o*i+l*n,e[11]=a*i+c*n,this},rotateZ:function(t){var e=this.val,i=Math.sin(t),n=Math.cos(t),r=e[0],s=e[1],o=e[2],a=e[3],h=e[4],u=e[5],l=e[6],c=e[7];return e[0]=r*n+h*i,e[1]=s*n+u*i,e[2]=o*n+l*i,e[3]=a*n+c*i,e[4]=h*n-r*i,e[5]=u*n-s*i,e[6]=l*n-o*i,e[7]=c*n-a*i,this},fromRotationTranslation:function(t,e){var i=this.val,n=t.x,r=t.y,s=t.z,o=t.w,a=n+n,h=r+r,u=s+s,l=n*a,c=n*h,d=n*u,p=r*h,f=r*u,m=s*u,v=o*a,g=o*h,y=o*u;return i[0]=1-(p+m),i[1]=c+y,i[2]=d-g,i[3]=0,i[4]=c-y,i[5]=1-(l+m),i[6]=f+v,i[7]=0,i[8]=d+g,i[9]=f-v,i[10]=1-(l+p),i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,this},fromQuat:function(t){var e=this.val,i=t.x,n=t.y,r=t.z,s=t.w,o=i+i,a=n+n,h=r+r,u=i*o,l=i*a,c=i*h,d=n*a,p=n*h,f=r*h,m=s*o,v=s*a,g=s*h;return e[0]=1-(d+f),e[1]=l+g,e[2]=c-v,e[3]=0,e[4]=l-g,e[5]=1-(u+f),e[6]=p+m,e[7]=0,e[8]=c+v,e[9]=p-m,e[10]=1-(u+d),e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},frustum:function(t,e,i,n,r,s){var o=this.val,a=1/(e-t),h=1/(n-i),u=1/(r-s);return o[0]=2*r*a,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=2*r*h,o[6]=0,o[7]=0,o[8]=(e+t)*a,o[9]=(n+i)*h,o[10]=(s+r)*u,o[11]=-1,o[12]=0,o[13]=0,o[14]=s*r*2*u,o[15]=0,this},perspective:function(t,e,i,n){var r=this.val,s=1/Math.tan(t/2),o=1/(i-n);return r[0]=s/e,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=s,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=(n+i)*o,r[11]=-1,r[12]=0,r[13]=0,r[14]=2*n*i*o,r[15]=0,this},perspectiveLH:function(t,e,i,n){var r=this.val;return r[0]=2*i/t,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2*i/e,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=-n/(i-n),r[11]=1,r[12]=0,r[13]=0,r[14]=i*n/(i-n),r[15]=0,this},ortho:function(t,e,i,n,r,s){var o=this.val,a=t-e,h=i-n,u=r-s;return a=0===a?a:1/a,h=0===h?h:1/h,u=0===u?u:1/u,o[0]=-2*a,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=-2*h,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=2*u,o[11]=0,o[12]=(t+e)*a,o[13]=(n+i)*h,o[14]=(s+r)*u,o[15]=1,this},lookAt:function(t,e,i){var n=this.val,s=t.x,o=t.y,a=t.z,h=i.x,u=i.y,l=i.z,c=e.x,d=e.y,p=e.z;if(Math.abs(s-c)<r&&Math.abs(o-d)<r&&Math.abs(a-p)<r)return this.identity();var f=s-c,m=o-d,v=a-p,g=1/Math.sqrt(f*f+m*m+v*v),y=u*(v*=g)-l*(m*=g),_=l*(f*=g)-h*v,x=h*m-u*f;(g=Math.sqrt(y*y+_*_+x*x))?(y*=g=1/g,_*=g,x*=g):(y=0,_=0,x=0);var b=m*x-v*_,w=v*y-f*x,T=f*_-m*y;return(g=Math.sqrt(b*b+w*w+T*T))?(b*=g=1/g,w*=g,T*=g):(b=0,w=0,T=0),n[0]=y,n[1]=b,n[2]=f,n[3]=0,n[4]=_,n[5]=w,n[6]=m,n[7]=0,n[8]=x,n[9]=T,n[10]=v,n[11]=0,n[12]=-(y*s+_*o+x*a),n[13]=-(b*s+w*o+T*a),n[14]=-(f*s+m*o+v*a),n[15]=1,this},yawPitchRoll:function(t,e,i){this.zero(),o.zero(),a.zero();var n=this.val,r=o.val,s=a.val,h=Math.sin(i),u=Math.cos(i);return n[10]=1,n[15]=1,n[0]=u,n[1]=h,n[4]=-h,n[5]=u,h=Math.sin(e),u=Math.cos(e),r[0]=1,r[15]=1,r[5]=u,r[10]=u,r[9]=-h,r[6]=h,h=Math.sin(t),u=Math.cos(t),s[5]=1,s[15]=1,s[0]=u,s[2]=-h,s[8]=h,s[10]=u,this.multiplyLocal(o),this.multiplyLocal(a),this},setWorldMatrix:function(t,e,i,n,r){return this.yawPitchRoll(t.y,t.x,t.z),o.scaling(i.x,i.y,i.z),a.xyz(e.x,e.y,e.z),this.multiplyLocal(o),this.multiplyLocal(a),void 0!==n&&this.multiplyLocal(n),void 0!==r&&this.multiplyLocal(r),this}}),o=new s,a=new s;t.exports=s},20683:t=>{t.exports=function(t,e,i){return Math.min(t+e,i)}},31305:t=>{t.exports=function(t,e,i){return Math.max(t-e,i)}},36696:t=>{t.exports=function(t,e,i,n){void 0===i&&(i=e+1);var r=(t-e)/(i-e);return r>1?void 0!==n?(r=(n-t)/(n-i))<0&&(r=0):r=1:r<0&&(r=0),r}},36650:(t,e,i)=>{var n=i(47379),r=i(19531),s=i(45201),o=1e-6,a=new Int8Array([1,2,0]),h=new Float32Array([0,0,0]),u=new r(1,0,0),l=new r(0,1,0),c=new r,d=new s,p=new n({initialize:function(t,e,i,n){"object"==typeof t?(this.x=t.x||0,this.y=t.y||0,this.z=t.z||0,this.w=t.w||0):(this.x=t||0,this.y=e||0,this.z=i||0,this.w=n||0)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w,this},set:function(t,e,i,n){return"object"==typeof t?(this.x=t.x||0,this.y=t.y||0,this.z=t.z||0,this.w=t.w||0):(this.x=t||0,this.y=e||0,this.z=i||0,this.w=n||0),this},add:function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this},subtract:function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this},scale:function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},length:function(){var t=this.x,e=this.y,i=this.z,n=this.w;return Math.sqrt(t*t+e*e+i*i+n*n)},lengthSq:function(){var t=this.x,e=this.y,i=this.z,n=this.w;return t*t+e*e+i*i+n*n},normalize:function(){var t=this.x,e=this.y,i=this.z,n=this.w,r=t*t+e*e+i*i+n*n;return r>0&&(r=1/Math.sqrt(r),this.x=t*r,this.y=e*r,this.z=i*r,this.w=n*r),this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},lerp:function(t,e){void 0===e&&(e=0);var i=this.x,n=this.y,r=this.z,s=this.w;return this.x=i+e*(t.x-i),this.y=n+e*(t.y-n),this.z=r+e*(t.z-r),this.w=s+e*(t.w-s),this},rotationTo:function(t,e){var i=t.x*e.x+t.y*e.y+t.z*e.z;return i<-.999999?(c.copy(u).cross(t).length()<o&&c.copy(l).cross(t),c.normalize(),this.setAxisAngle(c,Math.PI)):i>.999999?(this.x=0,this.y=0,this.z=0,this.w=1,this):(c.copy(t).cross(e),this.x=c.x,this.y=c.y,this.z=c.z,this.w=1+i,this.normalize())},setAxes:function(t,e,i){var n=d.val;return n[0]=e.x,n[3]=e.y,n[6]=e.z,n[1]=i.x,n[4]=i.y,n[7]=i.z,n[2]=-t.x,n[5]=-t.y,n[8]=-t.z,this.fromMat3(d).normalize()},identity:function(){return this.x=0,this.y=0,this.z=0,this.w=1,this},setAxisAngle:function(t,e){e*=.5;var i=Math.sin(e);return this.x=i*t.x,this.y=i*t.y,this.z=i*t.z,this.w=Math.cos(e),this},multiply:function(t){var e=this.x,i=this.y,n=this.z,r=this.w,s=t.x,o=t.y,a=t.z,h=t.w;return this.x=e*h+r*s+i*a-n*o,this.y=i*h+r*o+n*s-e*a,this.z=n*h+r*a+e*o-i*s,this.w=r*h-e*s-i*o-n*a,this},slerp:function(t,e){var i=this.x,n=this.y,r=this.z,s=this.w,a=t.x,h=t.y,u=t.z,l=t.w,c=i*a+n*h+r*u+s*l;c<0&&(c=-c,a=-a,h=-h,u=-u,l=-l);var d=1-e,p=e;if(1-c>o){var f=Math.acos(c),m=Math.sin(f);d=Math.sin((1-e)*f)/m,p=Math.sin(e*f)/m}return this.x=d*i+p*a,this.y=d*n+p*h,this.z=d*r+p*u,this.w=d*s+p*l,this},invert:function(){var t=this.x,e=this.y,i=this.z,n=this.w,r=t*t+e*e+i*i+n*n,s=r?1/r:0;return this.x=-t*s,this.y=-e*s,this.z=-i*s,this.w=n*s,this},conjugate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},rotateX:function(t){t*=.5;var e=this.x,i=this.y,n=this.z,r=this.w,s=Math.sin(t),o=Math.cos(t);return this.x=e*o+r*s,this.y=i*o+n*s,this.z=n*o-i*s,this.w=r*o-e*s,this},rotateY:function(t){t*=.5;var e=this.x,i=this.y,n=this.z,r=this.w,s=Math.sin(t),o=Math.cos(t);return this.x=e*o-n*s,this.y=i*o+r*s,this.z=n*o+e*s,this.w=r*o-i*s,this},rotateZ:function(t){t*=.5;var e=this.x,i=this.y,n=this.z,r=this.w,s=Math.sin(t),o=Math.cos(t);return this.x=e*o+i*s,this.y=i*o-e*s,this.z=n*o+r*s,this.w=r*o-n*s,this},calculateW:function(){var t=this.x,e=this.y,i=this.z;return this.w=-Math.sqrt(1-t*t-e*e-i*i),this},fromMat3:function(t){var e,i=t.val,n=i[0]+i[4]+i[8];if(n>0)e=Math.sqrt(n+1),this.w=.5*e,e=.5/e,this.x=(i[7]-i[5])*e,this.y=(i[2]-i[6])*e,this.z=(i[3]-i[1])*e;else{var r=0;i[4]>i[0]&&(r=1),i[8]>i[3*r+r]&&(r=2);var s=a[r],o=a[s];e=Math.sqrt(i[3*r+r]-i[3*s+s]-i[3*o+o]+1),h[r]=.5*e,e=.5/e,h[s]=(i[3*s+r]+i[3*r+s])*e,h[o]=(i[3*o+r]+i[3*r+o])*e,this.x=h[0],this.y=h[1],this.z=h[2],this.w=(i[3*o+s]-i[3*s+o])*e}return this}});t.exports=p},12756:(t,e,i)=>{var n=i(14302);t.exports=function(t){return t*n.RAD_TO_DEG}},37291:t=>{t.exports=function(t,e){void 0===e&&(e=1);var i=2*Math.random()*Math.PI;return t.x=Math.cos(i)*e,t.y=Math.sin(i)*e,t}},60932:t=>{t.exports=function(t,e){void 0===e&&(e=1);var i=2*Math.random()*Math.PI,n=2*Math.random()-1,r=Math.sqrt(1-n*n)*e;return t.x=Math.cos(i)*r,t.y=Math.sin(i)*r,t.z=n*e,t}},47708:t=>{t.exports=function(t,e){return void 0===e&&(e=1),t.x=(2*Math.random()-1)*e,t.y=(2*Math.random()-1)*e,t.z=(2*Math.random()-1)*e,t.w=(2*Math.random()-1)*e,t}},10461:t=>{t.exports=function(t,e){var i=t.x,n=t.y;return t.x=i*Math.cos(e)-n*Math.sin(e),t.y=i*Math.sin(e)+n*Math.cos(e),t}},36833:t=>{t.exports=function(t,e,i,n){var r=Math.cos(n),s=Math.sin(n),o=t.x-e,a=t.y-i;return t.x=o*r-a*s+e,t.y=o*s+a*r+i,t}},81771:t=>{t.exports=function(t,e,i,n,r){var s=n+Math.atan2(t.y-i,t.x-e);return t.x=e+r*Math.cos(s),t.y=i+r*Math.sin(s),t}},73818:(t,e,i)=>{var n=i(19531),r=i(27314),s=i(36650),o=new r,a=new s,h=new n;t.exports=function(t,e,i){return a.setAxisAngle(e,i),o.fromRotationTranslation(a,h.set(0,0,0)),t.transformMat4(o)}},8682:t=>{t.exports=function(t){return t>0?Math.ceil(t):Math.floor(t)}},67264:t=>{t.exports=function(t,e,i){void 0===e&&(e=0),void 0===i&&(i=10);var n=Math.pow(i,-e);return Math.round(t*n)/n}},13747:t=>{t.exports=function(t,e,i,n){void 0===e&&(e=1),void 0===i&&(i=1),void 0===n&&(n=1),n*=Math.PI/t;for(var r=[],s=[],o=0;o<t;o++)e+=(i-=e*n)*n,r[o]=i,s[o]=e;return{sin:s,cos:r,length:t}}},7695:t=>{t.exports=function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e))*t*(3-2*t)}},83088:t=>{t.exports=function(t,e,i){return(t=Math.max(0,Math.min(1,(t-e)/(i-e))))*t*t*(t*(6*t-15)+10)}},77475:(t,e,i)=>{var n=i(57148);t.exports=function(t,e,i,r){void 0===r&&(r=new n);var s=0,o=0;return t>0&&t<=e*i&&(s=t>e-1?t-(o=Math.floor(t/e))*e:t,r.set(s,o)),r}},16300:(t,e,i)=>{var n=i(57148);t.exports=function(t,e,i,r,s,o,a,h){void 0===h&&(h=new n);var u=Math.sin(s),l=Math.cos(s),c=l*o,d=u*o,p=-u*a,f=l*a,m=1/(c*f+p*-d);return h.x=f*m*t+-p*m*e+(r*p-i*f)*m,h.y=c*m*e+-d*m*t+(-r*c+i*d)*m,h}},57148:(t,e,i)=>{var n=i(47379),r=i(70077),s=new n({initialize:function(t,e){this.x=0,this.y=0,"object"==typeof t?(this.x=t.x||0,this.y=t.y||0):(void 0===e&&(e=t),this.x=t||0,this.y=e||0)},clone:function(){return new s(this.x,this.y)},copy:function(t){return this.x=t.x||0,this.y=t.y||0,this},setFromObject:function(t){return this.x=t.x||0,this.y=t.y||0,this},set:function(t,e){return void 0===e&&(e=t),this.x=t,this.y=e,this},setTo:function(t,e){return this.set(t,e)},setToPolar:function(t,e){return null==e&&(e=1),this.x=Math.cos(t)*e,this.y=Math.sin(t)*e,this},equals:function(t){return this.x===t.x&&this.y===t.y},fuzzyEquals:function(t,e){return r(this.x,t.x,e)&&r(this.y,t.y,e)},angle:function(){var t=Math.atan2(this.y,this.x);return t<0&&(t+=2*Math.PI),t},setAngle:function(t){return this.setToPolar(t,this.length())},add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.x-=t.x,this.y-=t.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},scale:function(t){return isFinite(t)?(this.x*=t,this.y*=t):(this.x=0,this.y=0),this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},negate:function(){return this.x=-this.x,this.y=-this.y,this},distance:function(t){var e=t.x-this.x,i=t.y-this.y;return Math.sqrt(e*e+i*i)},distanceSq:function(t){var e=t.x-this.x,i=t.y-this.y;return e*e+i*i},length:function(){var t=this.x,e=this.y;return Math.sqrt(t*t+e*e)},setLength:function(t){return this.normalize().scale(t)},lengthSq:function(){var t=this.x,e=this.y;return t*t+e*e},normalize:function(){var t=this.x,e=this.y,i=t*t+e*e;return i>0&&(i=1/Math.sqrt(i),this.x=t*i,this.y=e*i),this},normalizeRightHand:function(){var t=this.x;return this.x=-1*this.y,this.y=t,this},normalizeLeftHand:function(){var t=this.x;return this.x=this.y,this.y=-1*t,this},dot:function(t){return this.x*t.x+this.y*t.y},cross:function(t){return this.x*t.y-this.y*t.x},lerp:function(t,e){void 0===e&&(e=0);var i=this.x,n=this.y;return this.x=i+e*(t.x-i),this.y=n+e*(t.y-n),this},transformMat3:function(t){var e=this.x,i=this.y,n=t.val;return this.x=n[0]*e+n[3]*i+n[6],this.y=n[1]*e+n[4]*i+n[7],this},transformMat4:function(t){var e=this.x,i=this.y,n=t.val;return this.x=n[0]*e+n[4]*i+n[12],this.y=n[1]*e+n[5]*i+n[13],this},reset:function(){return this.x=0,this.y=0,this},limit:function(t){var e=this.length();return e&&e>t&&this.scale(t/e),this},reflect:function(t){return t=t.clone().normalize(),this.subtract(t.scale(2*this.dot(t)))},mirror:function(t){return this.reflect(t).negate()},rotate:function(t){var e=Math.cos(t),i=Math.sin(t);return this.set(e*this.x-i*this.y,i*this.x+e*this.y)}});s.ZERO=new s,s.RIGHT=new s(1,0),s.LEFT=new s(-1,0),s.UP=new s(0,-1),s.DOWN=new s(0,1),s.ONE=new s(1,1),t.exports=s},19531:(t,e,i)=>{var n=new(i(47379))({initialize:function(t,e,i){this.x=0,this.y=0,this.z=0,"object"==typeof t?(this.x=t.x||0,this.y=t.y||0,this.z=t.z||0):(this.x=t||0,this.y=e||0,this.z=i||0)},up:function(){return this.x=0,this.y=1,this.z=0,this},clone:function(){return new n(this.x,this.y,this.z)},crossVectors:function(t,e){var i=t.x,n=t.y,r=t.z,s=e.x,o=e.y,a=e.z;return this.x=n*a-r*o,this.y=r*s-i*a,this.z=i*o-n*s,this},equals:function(t){return this.x===t.x&&this.y===t.y&&this.z===t.z},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z||0,this},set:function(t,e,i){return"object"==typeof t?(this.x=t.x||0,this.y=t.y||0,this.z=t.z||0):(this.x=t||0,this.y=e||0,this.z=i||0),this},add:function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z||0,this},subtract:function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z||0,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z||1,this},scale:function(t){return isFinite(t)?(this.x*=t,this.y*=t,this.z*=t):(this.x=0,this.y=0,this.z=0),this},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z||1,this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},distance:function(t){var e=t.x-this.x,i=t.y-this.y,n=t.z-this.z||0;return Math.sqrt(e*e+i*i+n*n)},distanceSq:function(t){var e=t.x-this.x,i=t.y-this.y,n=t.z-this.z||0;return e*e+i*i+n*n},length:function(){var t=this.x,e=this.y,i=this.z;return Math.sqrt(t*t+e*e+i*i)},lengthSq:function(){var t=this.x,e=this.y,i=this.z;return t*t+e*e+i*i},normalize:function(){var t=this.x,e=this.y,i=this.z,n=t*t+e*e+i*i;return n>0&&(n=1/Math.sqrt(n),this.x=t*n,this.y=e*n,this.z=i*n),this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z},cross:function(t){var e=this.x,i=this.y,n=this.z,r=t.x,s=t.y,o=t.z;return this.x=i*o-n*s,this.y=n*r-e*o,this.z=e*s-i*r,this},lerp:function(t,e){void 0===e&&(e=0);var i=this.x,n=this.y,r=this.z;return this.x=i+e*(t.x-i),this.y=n+e*(t.y-n),this.z=r+e*(t.z-r),this},transformMat3:function(t){var e=this.x,i=this.y,n=this.z,r=t.val;return this.x=e*r[0]+i*r[3]+n*r[6],this.y=e*r[1]+i*r[4]+n*r[7],this.z=e*r[2]+i*r[5]+n*r[8],this},transformMat4:function(t){var e=this.x,i=this.y,n=this.z,r=t.val;return this.x=r[0]*e+r[4]*i+r[8]*n+r[12],this.y=r[1]*e+r[5]*i+r[9]*n+r[13],this.z=r[2]*e+r[6]*i+r[10]*n+r[14],this},transformCoordinates:function(t){var e=this.x,i=this.y,n=this.z,r=t.val,s=e*r[0]+i*r[4]+n*r[8]+r[12],o=e*r[1]+i*r[5]+n*r[9]+r[13],a=e*r[2]+i*r[6]+n*r[10]+r[14],h=e*r[3]+i*r[7]+n*r[11]+r[15];return this.x=s/h,this.y=o/h,this.z=a/h,this},transformQuat:function(t){var e=this.x,i=this.y,n=this.z,r=t.x,s=t.y,o=t.z,a=t.w,h=a*e+s*n-o*i,u=a*i+o*e-r*n,l=a*n+r*i-s*e,c=-r*e-s*i-o*n;return this.x=h*a+c*-r+u*-o-l*-s,this.y=u*a+c*-s+l*-r-h*-o,this.z=l*a+c*-o+h*-s-u*-r,this},project:function(t){var e=this.x,i=this.y,n=this.z,r=t.val,s=r[0],o=r[1],a=r[2],h=r[3],u=r[4],l=r[5],c=r[6],d=r[7],p=r[8],f=r[9],m=r[10],v=r[11],g=r[12],y=r[13],_=r[14],x=1/(e*h+i*d+n*v+r[15]);return this.x=(e*s+i*u+n*p+g)*x,this.y=(e*o+i*l+n*f+y)*x,this.z=(e*a+i*c+n*m+_)*x,this},unproject:function(t,e){var i=t.x,n=t.y,r=t.z,s=t.w,o=this.x-i,a=s-this.y-1-n,h=this.z;return this.x=2*o/r-1,this.y=2*a/s-1,this.z=2*h-1,this.project(e)},reset:function(){return this.x=0,this.y=0,this.z=0,this}});n.ZERO=new n,n.RIGHT=new n(1,0,0),n.LEFT=new n(-1,0,0),n.UP=new n(0,-1,0),n.DOWN=new n(0,1,0),n.FORWARD=new n(0,0,1),n.BACK=new n(0,0,-1),n.ONE=new n(1,1,1),t.exports=n},68970:(t,e,i)=>{var n=new(i(47379))({initialize:function(t,e,i,n){this.x=0,this.y=0,this.z=0,this.w=0,"object"==typeof t?(this.x=t.x||0,this.y=t.y||0,this.z=t.z||0,this.w=t.w||0):(this.x=t||0,this.y=e||0,this.z=i||0,this.w=n||0)},clone:function(){return new n(this.x,this.y,this.z,this.w)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z||0,this.w=t.w||0,this},equals:function(t){return this.x===t.x&&this.y===t.y&&this.z===t.z&&this.w===t.w},set:function(t,e,i,n){return"object"==typeof t?(this.x=t.x||0,this.y=t.y||0,this.z=t.z||0,this.w=t.w||0):(this.x=t||0,this.y=e||0,this.z=i||0,this.w=n||0),this},add:function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z||0,this.w+=t.w||0,this},subtract:function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z||0,this.w-=t.w||0,this},scale:function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},length:function(){var t=this.x,e=this.y,i=this.z,n=this.w;return Math.sqrt(t*t+e*e+i*i+n*n)},lengthSq:function(){var t=this.x,e=this.y,i=this.z,n=this.w;return t*t+e*e+i*i+n*n},normalize:function(){var t=this.x,e=this.y,i=this.z,n=this.w,r=t*t+e*e+i*i+n*n;return r>0&&(r=1/Math.sqrt(r),this.x=t*r,this.y=e*r,this.z=i*r,this.w=n*r),this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},lerp:function(t,e){void 0===e&&(e=0);var i=this.x,n=this.y,r=this.z,s=this.w;return this.x=i+e*(t.x-i),this.y=n+e*(t.y-n),this.z=r+e*(t.z-r),this.w=s+e*(t.w-s),this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z||1,this.w*=t.w||1,this},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z||1,this.w/=t.w||1,this},distance:function(t){var e=t.x-this.x,i=t.y-this.y,n=t.z-this.z||0,r=t.w-this.w||0;return Math.sqrt(e*e+i*i+n*n+r*r)},distanceSq:function(t){var e=t.x-this.x,i=t.y-this.y,n=t.z-this.z||0,r=t.w-this.w||0;return e*e+i*i+n*n+r*r},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},transformMat4:function(t){var e=this.x,i=this.y,n=this.z,r=this.w,s=t.val;return this.x=s[0]*e+s[4]*i+s[8]*n+s[12]*r,this.y=s[1]*e+s[5]*i+s[9]*n+s[13]*r,this.z=s[2]*e+s[6]*i+s[10]*n+s[14]*r,this.w=s[3]*e+s[7]*i+s[11]*n+s[15]*r,this},transformQuat:function(t){var e=this.x,i=this.y,n=this.z,r=t.x,s=t.y,o=t.z,a=t.w,h=a*e+s*n-o*i,u=a*i+o*e-r*n,l=a*n+r*i-s*e,c=-r*e-s*i-o*n;return this.x=h*a+c*-r+u*-o-l*-s,this.y=u*a+c*-s+l*-r-h*-o,this.z=l*a+c*-o+h*-s-u*-r,this},reset:function(){return this.x=0,this.y=0,this.z=0,this.w=0,this}});n.prototype.sub=n.prototype.subtract,n.prototype.mul=n.prototype.multiply,n.prototype.div=n.prototype.divide,n.prototype.dist=n.prototype.distance,n.prototype.distSq=n.prototype.distanceSq,n.prototype.len=n.prototype.length,n.prototype.lenSq=n.prototype.lengthSq,t.exports=n},33381:t=>{t.exports=function(t,e,i){return Math.abs(t-e)<=i}},62951:t=>{t.exports=function(t,e,i){var n=i-e;return e+((t-e)%n+n)%n}},72124:t=>{t.exports=function(t,e,i,n){return Math.atan2(n-e,i-t)}},99729:t=>{t.exports=function(t,e){return Math.atan2(e.y-t.y,e.x-t.x)}},59091:t=>{t.exports=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)}},8827:t=>{t.exports=function(t,e,i,n){return Math.atan2(i-t,n-e)}},23838:(t,e,i)=>{var n=i(14302);t.exports=function(t){return t>Math.PI&&(t-=n.PI2),Math.abs(((t+n.TAU)%n.PI2-n.PI2)%n.PI2)}},59867:t=>{t.exports=function(t){return(t%=2*Math.PI)>=0?t:t+2*Math.PI}},64463:(t,e,i)=>{var n=i(31657);t.exports=function(){return n(-Math.PI,Math.PI)}},98877:(t,e,i)=>{var n=i(31657);t.exports=function(){return n(-180,180)}},76949:(t,e,i)=>{var n=i(59867);t.exports=function(t){return n(t+Math.PI)}},10616:(t,e,i)=>{var n=i(14302);t.exports=function(t,e,i){return void 0===i&&(i=.05),t===e||(Math.abs(e-t)<=i||Math.abs(e-t)>=n.PI2-i?t=e:(Math.abs(e-t)>Math.PI&&(e<t?e+=n.PI2:e-=n.PI2),e>t?t+=i:e<t&&(t-=i))),t}},86248:t=>{t.exports=function(t,e){var i=e-t;return 0===i?0:i-360*Math.floor((i- -180)/360)}},23882:(t,e,i)=>{var n=i(62951);t.exports=function(t){return n(t,-Math.PI,Math.PI)}},74771:(t,e,i)=>{var n=i(62951);t.exports=function(t){return n(t,-180,180)}},7893:(t,e,i)=>{t.exports={Between:i(72124),BetweenPoints:i(99729),BetweenPointsY:i(59091),BetweenY:i(8827),CounterClockwise:i(23838),Normalize:i(59867),Random:i(64463),RandomDegrees:i(98877),Reverse:i(76949),RotateTo:i(10616),ShortestBetween:i(86248),Wrap:i(23882),WrapDegrees:i(74771)}},14302:t=>{var e={PI2:2*Math.PI,TAU:.5*Math.PI,EPSILON:1e-6,DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI,RND:null,MIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER||-9007199254740991,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991};t.exports=e},73587:t=>{t.exports=function(t,e,i,n){var r=t-i,s=e-n;return Math.sqrt(r*r+s*s)}},25049:t=>{t.exports=function(t,e){var i=t.x-e.x,n=t.y-e.y;return Math.sqrt(i*i+n*n)}},69644:t=>{t.exports=function(t,e){var i=t.x-e.x,n=t.y-e.y;return i*i+n*n}},66216:t=>{t.exports=function(t,e,i,n){return Math.max(Math.abs(t-i),Math.abs(e-n))}},88716:t=>{t.exports=function(t,e,i,n,r){return void 0===r&&(r=2),Math.sqrt(Math.pow(i-t,r)+Math.pow(n-e,r))}},37935:t=>{t.exports=function(t,e,i,n){return Math.abs(t-i)+Math.abs(e-n)}},23601:t=>{t.exports=function(t,e,i,n){var r=t-i,s=e-n;return r*r+s*s}},13894:(t,e,i)=>{t.exports={Between:i(73587),BetweenPoints:i(25049),BetweenPointsSquared:i(69644),Chebyshev:i(66216),Power:i(88716),Snake:i(37935),Squared:i(23601)}},21623:(t,e,i)=>{var n=i(70369),r=i(73158),s=i(82219),o=i(53802),a=i(6503),h=i(79710),u=i(65507),l=i(12451),c=i(25576),d=i(27751),p=i(14699),f=i(34201);t.exports={Power0:u,Power1:l.Out,Power2:o.Out,Power3:c.Out,Power4:d.Out,Linear:u,Quad:l.Out,Cubic:o.Out,Quart:c.Out,Quint:d.Out,Sine:p.Out,Expo:h.Out,Circ:s.Out,Elastic:a.Out,Back:n.Out,Bounce:r.Out,Stepped:f,"Quad.easeIn":l.In,"Cubic.easeIn":o.In,"Quart.easeIn":c.In,"Quint.easeIn":d.In,"Sine.easeIn":p.In,"Expo.easeIn":h.In,"Circ.easeIn":s.In,"Elastic.easeIn":a.In,"Back.easeIn":n.In,"Bounce.easeIn":r.In,"Quad.easeOut":l.Out,"Cubic.easeOut":o.Out,"Quart.easeOut":c.Out,"Quint.easeOut":d.Out,"Sine.easeOut":p.Out,"Expo.easeOut":h.Out,"Circ.easeOut":s.Out,"Elastic.easeOut":a.Out,"Back.easeOut":n.Out,"Bounce.easeOut":r.Out,"Quad.easeInOut":l.InOut,"Cubic.easeInOut":o.InOut,"Quart.easeInOut":c.InOut,"Quint.easeInOut":d.InOut,"Sine.easeInOut":p.InOut,"Expo.easeInOut":h.InOut,"Circ.easeInOut":s.InOut,"Elastic.easeInOut":a.InOut,"Back.easeInOut":n.InOut,"Bounce.easeInOut":r.InOut}},17526:t=>{t.exports=function(t,e){return void 0===e&&(e=1.70158),t*t*((e+1)*t-e)}},61697:t=>{t.exports=function(t,e){void 0===e&&(e=1.70158);var i=1.525*e;return(t*=2)<1?t*t*((i+1)*t-i)*.5:.5*((t-=2)*t*((i+1)*t+i)+2)}},75881:t=>{t.exports=function(t,e){return void 0===e&&(e=1.70158),--t*t*((e+1)*t+e)+1}},70369:(t,e,i)=>{t.exports={In:i(17526),Out:i(75881),InOut:i(61697)}},4340:t=>{t.exports=function(t){return(t=1-t)<1/2.75?1-7.5625*t*t:t<2/2.75?1-(7.5625*(t-=1.5/2.75)*t+.75):t<2.5/2.75?1-(7.5625*(t-=2.25/2.75)*t+.9375):1-(7.5625*(t-=2.625/2.75)*t+.984375)}},22288:t=>{t.exports=function(t){var e=!1;return t<.5?(t=1-2*t,e=!0):t=2*t-1,t<1/2.75?t*=7.5625*t:t=t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375,e?.5*(1-t):.5*t+.5}},19314:t=>{t.exports=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}},73158:(t,e,i)=>{t.exports={In:i(4340),Out:i(19314),InOut:i(22288)}},66803:t=>{t.exports=function(t){return 1-Math.sqrt(1-t*t)}},36584:t=>{t.exports=function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}},28056:t=>{t.exports=function(t){return Math.sqrt(1- --t*t)}},82219:(t,e,i)=>{t.exports={In:i(66803),Out:i(28056),InOut:i(36584)}},10772:t=>{t.exports=function(t){return t*t*t}},21473:t=>{t.exports=function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}},85e3:t=>{t.exports=function(t){return--t*t*t+1}},53802:(t,e,i)=>{t.exports={In:i(10772),Out:i(85e3),InOut:i(21473)}},1942:t=>{t.exports=function(t,e,i){if(void 0===e&&(e=.1),void 0===i&&(i=.1),0===t)return 0;if(1===t)return 1;var n=i/4;return e<1?e=1:n=i*Math.asin(1/e)/(2*Math.PI),-e*Math.pow(2,10*(t-=1))*Math.sin((t-n)*(2*Math.PI)/i)}},63590:t=>{t.exports=function(t,e,i){if(void 0===e&&(e=.1),void 0===i&&(i=.1),0===t)return 0;if(1===t)return 1;var n=i/4;return e<1?e=1:n=i*Math.asin(1/e)/(2*Math.PI),(t*=2)<1?e*Math.pow(2,10*(t-=1))*Math.sin((t-n)*(2*Math.PI)/i)*-.5:e*Math.pow(2,-10*(t-=1))*Math.sin((t-n)*(2*Math.PI)/i)*.5+1}},48720:t=>{t.exports=function(t,e,i){if(void 0===e&&(e=.1),void 0===i&&(i=.1),0===t)return 0;if(1===t)return 1;var n=i/4;return e<1?e=1:n=i*Math.asin(1/e)/(2*Math.PI),e*Math.pow(2,-10*t)*Math.sin((t-n)*(2*Math.PI)/i)+1}},6503:(t,e,i)=>{t.exports={In:i(1942),Out:i(48720),InOut:i(63590)}},97359:t=>{t.exports=function(t){return Math.pow(2,10*(t-1))-.001}},92002:t=>{t.exports=function(t){return(t*=2)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*(t-1)))}},579:t=>{t.exports=function(t){return 1-Math.pow(2,-10*t)}},79710:(t,e,i)=>{t.exports={In:i(97359),Out:i(579),InOut:i(92002)}},59342:(t,e,i)=>{t.exports={Back:i(70369),Bounce:i(73158),Circular:i(82219),Cubic:i(53802),Elastic:i(6503),Expo:i(79710),Linear:i(65507),Quadratic:i(12451),Quartic:i(25576),Quintic:i(27751),Sine:i(14699),Stepped:i(34201)}},309:t=>{t.exports=function(t){return t}},65507:(t,e,i)=>{t.exports=i(309)},49988:t=>{t.exports=function(t){return t*t}},50494:t=>{t.exports=function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)}},39033:t=>{t.exports=function(t){return t*(2-t)}},12451:(t,e,i)=>{t.exports={In:i(49988),Out:i(39033),InOut:i(50494)}},4691:t=>{t.exports=function(t){return t*t*t*t}},51364:t=>{t.exports=function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}},52399:t=>{t.exports=function(t){return 1- --t*t*t*t}},25576:(t,e,i)=>{t.exports={In:i(4691),Out:i(52399),InOut:i(51364)}},27850:t=>{t.exports=function(t){return t*t*t*t*t}},90881:t=>{t.exports=function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}},3167:t=>{t.exports=function(t){return--t*t*t*t*t+1}},27751:(t,e,i)=>{t.exports={In:i(27850),Out:i(3167),InOut:i(90881)}},32981:t=>{t.exports=function(t){return 0===t?0:1===t?1:1-Math.cos(t*Math.PI/2)}},87652:t=>{t.exports=function(t){return 0===t?0:1===t?1:.5*(1-Math.cos(Math.PI*t))}},33022:t=>{t.exports=function(t){return 0===t?0:1===t?1:Math.sin(t*Math.PI/2)}},14699:(t,e,i)=>{t.exports={In:i(32981),Out:i(33022),InOut:i(87652)}},16740:t=>{t.exports=function(t,e){return void 0===e&&(e=1),t<=0?0:t>=1?1:1/e*(1+(e*t|0))}},34201:(t,e,i)=>{t.exports=i(16740)},66394:t=>{t.exports=function(t,e){return void 0===e&&(e=1e-4),Math.ceil(t-e)}},70077:t=>{t.exports=function(t,e,i){return void 0===i&&(i=1e-4),Math.abs(t-e)<i}},42679:t=>{t.exports=function(t,e){return void 0===e&&(e=1e-4),Math.floor(t+e)}},60710:t=>{t.exports=function(t,e,i){return void 0===i&&(i=1e-4),t>e-i}},17373:t=>{t.exports=function(t,e,i){return void 0===i&&(i=1e-4),t<e+i}},47832:(t,e,i)=>{t.exports={Ceil:i(66394),Equal:i(70077),Floor:i(42679),GreaterThan:i(60710),LessThan:i(17373)}},39899:(t,e,i)=>{var n=i(14302),r=i(80933),s={Angle:i(7893),Distance:i(13894),Easing:i(59342),Fuzzy:i(47832),Interpolation:i(92245),Pow2:i(98779),Snap:i(81414),RandomDataGenerator:i(4791),Average:i(44962),Bernstein:i(70890),Between:i(67630),CatmullRom:i(21934),CeilTo:i(74018),Clamp:i(90487),DegToRad:i(98436),Difference:i(60669),Factorial:i(3211),FloatBetween:i(31657),FloorTo:i(51228),FromPercent:i(96210),GetSpeed:i(89478),IsEven:i(67781),IsEvenStrict:i(60602),Linear:i(57459),MaxAdd:i(20683),MinSub:i(31305),Percent:i(36696),RadToDeg:i(12756),RandomXY:i(37291),RandomXYZ:i(60932),RandomXYZW:i(47708),Rotate:i(10461),RotateAround:i(36833),RotateAroundDistance:i(81771),RoundAwayFromZero:i(8682),RoundTo:i(67264),SinCosTableGenerator:i(13747),SmootherStep:i(83088),SmoothStep:i(7695),ToXY:i(77475),TransformXY:i(16300),Within:i(33381),Wrap:i(62951),Vector2:i(57148),Vector3:i(19531),Vector4:i(68970),Matrix3:i(45201),Matrix4:i(27314),Quaternion:i(36650),RotateVec3:i(73818)};s=r(!1,s,n),t.exports=s},64288:(t,e,i)=>{var n=i(70890);t.exports=function(t,e){for(var i=0,r=t.length-1,s=0;s<=r;s++)i+=Math.pow(1-e,r-s)*Math.pow(e,s)*t[s]*n(r,s);return i}},43660:(t,e,i)=>{var n=i(21934);t.exports=function(t,e){var i=t.length-1,r=i*e,s=Math.floor(r);return t[0]===t[i]?(e<0&&(s=Math.floor(r=i*(1+e))),n(r-s,t[(s-1+i)%i],t[s],t[(s+1)%i],t[(s+2)%i])):e<0?t[0]-(n(-r,t[0],t[0],t[1],t[1])-t[0]):e>1?t[i]-(n(r-i,t[i],t[i],t[i-1],t[i-1])-t[i]):n(r-s,t[s?s-1:0],t[s],t[i<s+1?i:s+1],t[i<s+2?i:s+2])}},97800:t=>{t.exports=function(t,e,i,n,r){return function(t,e){var i=1-t;return i*i*i*e}(t,e)+function(t,e){var i=1-t;return 3*i*i*t*e}(t,i)+function(t,e){return 3*(1-t)*t*t*e}(t,n)+function(t,e){return t*t*t*e}(t,r)}},24253:(t,e,i)=>{var n=i(57459);t.exports=function(t,e){var i=t.length-1,r=i*e,s=Math.floor(r);return e<0?n(t[0],t[1],r):e>1?n(t[i],t[i-1],i-r):n(t[s],t[s+1>i?i:s+1],r-s)}},16585:t=>{t.exports=function(t,e,i,n){return function(t,e){var i=1-t;return i*i*e}(t,e)+function(t,e){return 2*(1-t)*t*e}(t,i)+function(t,e){return t*t*e}(t,n)}},15579:(t,e,i)=>{var n=i(7695);t.exports=function(t,e,i){return e+(i-e)*n(t,0,1)}},17995:(t,e,i)=>{var n=i(83088);t.exports=function(t,e,i){return e+(i-e)*n(t,0,1)}},92245:(t,e,i)=>{t.exports={Bezier:i(64288),CatmullRom:i(43660),CubicBezier:i(97800),Linear:i(24253),QuadraticBezier:i(16585),SmoothStep:i(15579),SmootherStep:i(17995)}},60712:t=>{t.exports=function(t){var e=Math.log(t)/.6931471805599453;return 1<<Math.ceil(e)}},2244:t=>{t.exports=function(t,e){return t>0&&0==(t&t-1)&&e>0&&0==(e&e-1)}},37489:t=>{t.exports=function(t){return t>0&&0==(t&t-1)}},98779:(t,e,i)=>{t.exports={GetNext:i(60712),IsSize:i(2244),IsValue:i(37489)}},4791:(t,e,i)=>{var n=new(i(47379))({initialize:function(t){void 0===t&&(t=[(Date.now()*Math.random()).toString()]),this.c=1,this.s0=0,this.s1=0,this.s2=0,this.n=0,this.signs=[-1,1],t&&this.init(t)},rnd:function(){var t=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|t,this.s0=this.s1,this.s1=this.s2,this.s2=t-this.c,this.s2},hash:function(t){var e,i=this.n;t=t.toString();for(var n=0;n<t.length;n++)e=.02519603282416938*(i+=t.charCodeAt(n)),e-=i=e>>>0,i=(e*=i)>>>0,i+=4294967296*(e-=i);return this.n=i,2.3283064365386963e-10*(i>>>0)},init:function(t){"string"==typeof t?this.state(t):this.sow(t)},sow:function(t){if(this.n=4022871197,this.s0=this.hash(" "),this.s1=this.hash(" "),this.s2=this.hash(" "),this.c=1,t)for(var e=0;e<t.length&&null!=t[e];e++){var i=t[e];this.s0-=this.hash(i),this.s0+=~~(this.s0<0),this.s1-=this.hash(i),this.s1+=~~(this.s1<0),this.s2-=this.hash(i),this.s2+=~~(this.s2<0)}},integer:function(){return 4294967296*this.rnd()},frac:function(){return this.rnd()+11102230246251565e-32*(2097152*this.rnd()|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(t,e){return Math.floor(this.realInRange(0,e-t+1)+t)},between:function(t,e){return Math.floor(this.realInRange(0,e-t+1)+t)},realInRange:function(t,e){return this.frac()*(e-t)+t},normal:function(){return 1-2*this.frac()},uuid:function(){var t="",e="";for(e=t="";t++<36;e+=~t%5|3*t&4?(15^t?8^this.frac()*(20^t?16:4):4).toString(16):"-");return e},pick:function(t){return t[this.integerInRange(0,t.length-1)]},sign:function(){return this.pick(this.signs)},weightedPick:function(t){return t[~~(Math.pow(this.frac(),2)*(t.length-1)+.5)]},timestamp:function(t,e){return this.realInRange(t||9466848e5,e||1577862e6)},angle:function(){return this.integerInRange(-180,180)},rotation:function(){return this.realInRange(-3.1415926,3.1415926)},state:function(t){return"string"==typeof t&&t.match(/^!rnd/)&&(t=t.split(","),this.c=parseFloat(t[1]),this.s0=parseFloat(t[2]),this.s1=parseFloat(t[3]),this.s2=parseFloat(t[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")},shuffle:function(t){for(var e=t.length-1;e>0;e--){var i=Math.floor(this.frac()*(e+1)),n=t[i];t[i]=t[e],t[e]=n}return t}});t.exports=n},70346:t=>{t.exports=function(t,e,i,n){return void 0===i&&(i=0),0===e?t:(t-=i,t=e*Math.ceil(t/e),n?(i+t)/e:i+t)}},88168:t=>{t.exports=function(t,e,i,n){return void 0===i&&(i=0),0===e?t:(t-=i,t=e*Math.floor(t/e),n?(i+t)/e:i+t)}},56748:t=>{t.exports=function(t,e,i,n){return void 0===i&&(i=0),0===e?t:(t-=i,t=e*Math.round(t/e),n?(i+t)/e:i+t)}},81414:(t,e,i)=>{t.exports={Ceil:i(70346),Floor:i(88168),To:i(56748)}},57005:(t,e,i)=>{i(81194);var n=i(50460),r=i(80933),s={Actions:i(5490),Animations:i(53781),BlendModes:i(35869),Cache:i(95865),Cameras:i(49357),Core:i(81189),Class:i(47379),Create:i(88165),Curves:i(95398),Data:i(69783),Display:i(33798),DOM:i(69887),Events:i(27408),Game:i(72937),GameObjects:i(5837),Geom:i(96285),Input:i(26417),Loader:i(42430),Math:i(39899),Physics:i(34775),Plugins:i(65604),Renderer:i(8270),Scale:i(45192),ScaleModes:i(28425),Scene:i(5155),Scenes:i(6397),Structs:i(97548),Textures:i(1274),Tilemaps:i(81241),Time:i(46547),Tweens:i(93226),Utils:i(83484)};s.Sound=i(73125),s.Cameras.Sprite3D=i(66005),s.GameObjects.Sprite3D=i(56218),s.GameObjects.Factories.Sprite3D=i(79465),s.GameObjects.Creators.Sprite3D=i(47712),s.FacebookInstantGamesPlugin=i(75329),s=r(!1,s,n),t.exports=s,global.Phaser=s},89428:(t,e,i)=>{var n=i(47379),r=i(14682),s=i(59525),o=new n({Extends:s,Mixins:[r.Acceleration,r.Angular,r.Bounce,r.Debug,r.Drag,r.Enable,r.Friction,r.Gravity,r.Immovable,r.Mass,r.Size,r.Velocity],initialize:function(t,e,i,n,r){s.call(this,t,e,i,n,r),this.body=null}});t.exports=o},47653:(t,e,i)=>{var n=i(47379),r=i(98436),s=i(73587),o=i(23601),a=i(29548),h=i(81769),u=i(92974),l=i(79004),c=i(82124),d=i(50354),p=i(88637),f=i(57148),m=i(87573),v=new n({initialize:function(t){this.scene=t,this.systems=t.sys,this.config=this.getConfig(),this.world,this.add,t.sys.events.once(p.BOOT,this.boot,this),t.sys.events.on(p.START,this.start,this)},boot:function(){this.world=new m(this.scene,this.config),this.add=new a(this.world),this.systems.events.once(p.DESTROY,this.destroy,this)},start:function(){this.world||(this.world=new m(this.scene,this.config),this.add=new a(this.world));var t=this.systems.events;t.on(p.UPDATE,this.world.update,this.world),t.on(p.POST_UPDATE,this.world.postUpdate,this.world),t.once(p.SHUTDOWN,this.shutdown,this)},getConfig:function(){var t=this.systems.game.config.physics,e=this.systems.settings.physics;return u(h(e,"arcade",{}),h(t,"arcade",{}))},overlap:function(t,e,i,n,r){return void 0===i&&(i=null),void 0===n&&(n=null),void 0===r&&(r=i),this.world.collideObjects(t,e,i,n,r,!0)},collide:function(t,e,i,n,r){return void 0===i&&(i=null),void 0===n&&(n=null),void 0===r&&(r=i),this.world.collideObjects(t,e,i,n,r,!1)},collideTiles:function(t,e,i,n,r){return this.world.collideTiles(t,e,i,n,r)},overlapTiles:function(t,e,i,n,r){return this.world.overlapTiles(t,e,i,n,r)},pause:function(){return this.world.pause()},resume:function(){return this.world.resume()},accelerateTo:function(t,e,i,n,r,s){void 0===n&&(n=60);var o=Math.atan2(i-t.y,e-t.x);return t.body.acceleration.setToPolar(o,n),void 0!==r&&void 0!==s&&t.body.maxVelocity.set(r,s),o},accelerateToObject:function(t,e,i,n,r){return this.accelerateTo(t,e.x,e.y,i,n,r)},closest:function(t,e){e||(e=this.world.bodies.entries);for(var i=Number.MAX_VALUE,n=null,r=t.x,s=t.y,a=e.length,h=0;h<a;h++){var u=e[h],l=u.body||u;if(t!==u&&t!==l&&t!==l.gameObject&&t!==l.center){var c=o(r,s,l.center.x,l.center.y);c<i&&(n=u,i=c)}}return n},furthest:function(t,e){e||(e=this.world.bodies.entries);for(var i=-1,n=null,r=t.x,s=t.y,a=e.length,h=0;h<a;h++){var u=e[h],l=u.body||u;if(t!==u&&t!==l&&t!==l.gameObject&&t!==l.center){var c=o(r,s,l.center.x,l.center.y);c>i&&(n=u,i=c)}}return n},moveTo:function(t,e,i,n,r){void 0===n&&(n=60),void 0===r&&(r=0);var o=Math.atan2(i-t.y,e-t.x);return r>0&&(n=s(t.x,t.y,e,i)/(r/1e3)),t.body.velocity.setToPolar(o,n),o},moveToObject:function(t,e,i,n){return this.moveTo(t,e.x,e.y,i,n)},velocityFromAngle:function(t,e,i){return void 0===e&&(e=60),void 0===i&&(i=new f),i.setToPolar(r(t),e)},velocityFromRotation:function(t,e,i){return void 0===e&&(e=60),void 0===i&&(i=new f),i.setToPolar(t,e)},overlapRect:function(t,e,i,n,r,s){return c(this.world,t,e,i,n,r,s)},overlapCirc:function(t,e,i,n,r){return l(this.world,t,e,i,n,r)},shutdown:function(){if(this.world){var t=this.systems.events;t.off(p.UPDATE,this.world.update,this.world),t.off(p.POST_UPDATE,this.world.postUpdate,this.world),t.off(p.SHUTDOWN,this.shutdown,this),this.add.destroy(),this.world.destroy(),this.add=null,this.world=null}},destroy:function(){this.shutdown(),this.scene.sys.events.off(p.START,this.start,this),this.scene=null,this.systems=null}});d.register("ArcadePhysics",v,"arcadePhysics"),t.exports=v},44133:(t,e,i)=>{var n=i(47379),r=i(14682),s=i(95681),o=new n({Extends:s,Mixins:[r.Acceleration,r.Angular,r.Bounce,r.Debug,r.Drag,r.Enable,r.Friction,r.Gravity,r.Immovable,r.Mass,r.Size,r.Velocity],initialize:function(t,e,i,n,r){s.call(this,t,e,i,n,r),this.body=null}});t.exports=o},94772:(t,e,i)=>{var n=i(47379),r=i(7365),s=i(72207),o=i(12756),a=i(38092),h=i(38593),u=i(57148),l=new n({initialize:function(t,e){var i=e.displayWidth?e.displayWidth:64,n=e.displayHeight?e.displayHeight:64;this.world=t,this.gameObject=e,this.transform={x:e.x,y:e.y,rotation:e.angle,scaleX:e.scaleX,scaleY:e.scaleY,displayOriginX:e.displayOriginX,displayOriginY:e.displayOriginY},this.debugShowBody=t.defaults.debugShowBody,this.debugShowVelocity=t.defaults.debugShowVelocity,this.debugBodyColor=t.defaults.bodyDebugColor,this.enable=!0,this.isCircle=!1,this.radius=0,this.offset=new u,this.position=new u(e.x-e.scaleX*e.displayOriginX,e.y-e.scaleY*e.displayOriginY),this.prev=new u(e.x,e.y),this.prevFrame=new u(e.x,e.y),this.allowRotation=!0,this.rotation=e.angle,this.preRotation=e.angle,this.width=i,this.height=n,this.sourceWidth=i,this.sourceHeight=n,e.frame&&(this.sourceWidth=e.frame.realWidth,this.sourceHeight=e.frame.realHeight),this.halfWidth=Math.abs(i/2),this.halfHeight=Math.abs(n/2),this.center=new u(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.velocity=new u,this.newVelocity=new u,this.deltaMax=new u,this.acceleration=new u,this.allowDrag=!0,this.drag=new u,this.allowGravity=!0,this.gravity=new u,this.bounce=new u,this.worldBounce=null,this.customBoundsRectangle=t.bounds,this.onWorldBounds=!1,this.onCollide=!1,this.onOverlap=!1,this.maxVelocity=new u(1e4,1e4),this.maxSpeed=-1,this.friction=new u(1,0),this.useDamping=!1,this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=r.FACING_NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.overlapR=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={none:!0,up:!1,down:!1,left:!1,right:!1},this.syncBounds=!1,this.physicsType=r.DYNAMIC_BODY,this._sx=e.scaleX,this._sy=e.scaleY,this._dx=0,this._dy=0,this._tx=0,this._ty=0,this._bounds=new a},updateBounds:function(){var t=this.gameObject,e=this.transform;if(t.parentContainer){var i=t.getWorldTransformMatrix(this.world._tempMatrix,this.world._tempMatrix2);e.x=i.tx,e.y=i.ty,e.rotation=o(i.rotation),e.scaleX=i.scaleX,e.scaleY=i.scaleY,e.displayOriginX=t.displayOriginX,e.displayOriginY=t.displayOriginY}else e.x=t.x,e.y=t.y,e.rotation=t.angle,e.scaleX=t.scaleX,e.scaleY=t.scaleY,e.displayOriginX=t.displayOriginX,e.displayOriginY=t.displayOriginY;var n=!1;if(this.syncBounds){var r=t.getBounds(this._bounds);this.width=r.width,this.height=r.height,n=!0}else{var s=Math.abs(e.scaleX),a=Math.abs(e.scaleY);this._sx===s&&this._sy===a||(this.width=this.sourceWidth*s,this.height=this.sourceHeight*a,this._sx=s,this._sy=a,n=!0)}n&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.updateCenter())},updateCenter:function(){this.center.set(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},resetFlags:function(){var t=this.wasTouching,e=this.touching,i=this.blocked;t.none=e.none,t.up=e.up,t.down=e.down,t.left=e.left,t.right=e.right,e.none=!0,e.up=!1,e.down=!1,e.left=!1,e.right=!1,i.none=!0,i.up=!1,i.down=!1,i.left=!1,i.right=!1,this.overlapR=0,this.overlapX=0,this.overlapY=0,this.embedded=!1},preUpdate:function(t,e){t&&this.resetFlags(),this.updateBounds();var i=this.transform;this.position.x=i.x+i.scaleX*(this.offset.x-i.displayOriginX),this.position.y=i.y+i.scaleY*(this.offset.y-i.displayOriginY),this.updateCenter(),this.rotation=i.rotation,this.preRotation=this.rotation,this.moves&&(this.prev.x=this.position.x,this.prev.y=this.position.y,this.prevFrame.x=this.position.x,this.prevFrame.y=this.position.y),t&&this.update(e)},update:function(t){if(this.prev.x=this.position.x,this.prev.y=this.position.y,this.moves){this.world.updateMotion(this,t);var e=this.velocity.x,i=this.velocity.y;this.newVelocity.set(e*t,i*t),this.position.add(this.newVelocity),this.updateCenter(),this.angle=Math.atan2(i,e),this.speed=Math.sqrt(e*e+i*i),this.collideWorldBounds&&this.checkWorldBounds()&&this.onWorldBounds&&this.world.emit(s.WORLD_BOUNDS,this,this.blocked.up,this.blocked.down,this.blocked.left,this.blocked.right)}this._dx=this.position.x-this.prev.x,this._dy=this.position.y-this.prev.y},postUpdate:function(){var t=this.position.x-this.prevFrame.x,e=this.position.y-this.prevFrame.y;if(this.moves){var i=this.deltaMax.x,n=this.deltaMax.y;0!==i&&0!==t&&(t<0&&t<-i?t=-i:t>0&&t>i&&(t=i)),0!==n&&0!==e&&(e<0&&e<-n?e=-n:e>0&&e>n&&(e=n)),this.gameObject.x+=t,this.gameObject.y+=e}t<0?this.facing=r.FACING_LEFT:t>0&&(this.facing=r.FACING_RIGHT),e<0?this.facing=r.FACING_UP:e>0&&(this.facing=r.FACING_DOWN),this.allowRotation&&(this.gameObject.angle+=this.deltaZ()),this._tx=t,this._ty=e},setBoundsRectangle:function(t){return this.customBoundsRectangle=t||this.world.bounds,this},checkWorldBounds:function(){var t=this.position,e=this.customBoundsRectangle,i=this.world.checkCollision,n=this.worldBounce?-this.worldBounce.x:-this.bounce.x,r=this.worldBounce?-this.worldBounce.y:-this.bounce.y,s=!1;return t.x<e.x&&i.left?(t.x=e.x,this.velocity.x*=n,this.blocked.left=!0,s=!0):this.right>e.right&&i.right&&(t.x=e.right-this.width,this.velocity.x*=n,this.blocked.right=!0,s=!0),t.y<e.y&&i.up?(t.y=e.y,this.velocity.y*=r,this.blocked.up=!0,s=!0):this.bottom>e.bottom&&i.down&&(t.y=e.bottom-this.height,this.velocity.y*=r,this.blocked.down=!0,s=!0),s&&(this.blocked.none=!1),s},setOffset:function(t,e){return void 0===e&&(e=t),this.offset.set(t,e),this.updateCenter(),this},setSize:function(t,e,i){void 0===i&&(i=!0);var n=this.gameObject;if(!t&&n.frame&&(t=n.frame.realWidth),!e&&n.frame&&(e=n.frame.realHeight),this.sourceWidth=t,this.sourceHeight=e,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.updateCenter(),i&&n.getCenter){var r=(n.width-t)/2,s=(n.height-e)/2;this.offset.set(r,s)}return this.isCircle=!1,this.radius=0,this},setCircle:function(t,e,i){return void 0===e&&(e=this.offset.x),void 0===i&&(i=this.offset.y),t>0?(this.isCircle=!0,this.radius=t,this.sourceWidth=2*t,this.sourceHeight=2*t,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.set(e,i),this.updateCenter()):this.isCircle=!1,this},reset:function(t,e){this.stop();var i=this.gameObject;i.setPosition(t,e),i.getTopLeft?i.getTopLeft(this.position):this.position.set(t,e),this.prev.copy(this.position),this.prevFrame.copy(this.position),this.rotation=i.angle,this.preRotation=i.angle,this.updateBounds(),this.updateCenter()},stop:function(){return this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this},getBounds:function(t){return t.x=this.x,t.y=this.y,t.right=this.right,t.bottom=this.bottom,t},hitTest:function(t,e){return this.isCircle?this.radius>0&&t>=this.left&&t<=this.right&&e>=this.top&&e<=this.bottom&&(this.center.x-t)*(this.center.x-t)+(this.center.y-e)*(this.center.y-e)<=this.radius*this.radius:h(this,t,e)},onFloor:function(){return this.blocked.down},onCeiling:function(){return this.blocked.up},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this._dx>0?this._dx:-this._dx},deltaAbsY:function(){return this._dy>0?this._dy:-this._dy},deltaX:function(){return this._dx},deltaY:function(){return this._dy},deltaXFinal:function(){return this._tx},deltaYFinal:function(){return this._ty},deltaZ:function(){return this.rotation-this.preRotation},destroy:function(){this.enable=!1,this.world&&this.world.pendingDestroy.set(this)},drawDebug:function(t){var e=this.position,i=e.x+this.halfWidth,n=e.y+this.halfHeight;this.debugShowBody&&(t.lineStyle(t.defaultStrokeWidth,this.debugBodyColor),this.isCircle?t.strokeCircle(i,n,this.width/2):(this.checkCollision.up&&t.lineBetween(e.x,e.y,e.x+this.width,e.y),this.checkCollision.right&&t.lineBetween(e.x+this.width,e.y,e.x+this.width,e.y+this.height),this.checkCollision.down&&t.lineBetween(e.x,e.y+this.height,e.x+this.width,e.y+this.height),this.checkCollision.left&&t.lineBetween(e.x,e.y,e.x,e.y+this.height))),this.debugShowVelocity&&(t.lineStyle(t.defaultStrokeWidth,this.world.defaults.velocityDebugColor,1),t.lineBetween(i,n,i+this.velocity.x/2,n+this.velocity.y/2))},willDrawDebug:function(){return this.debugShowBody||this.debugShowVelocity},setCollideWorldBounds:function(t,e,i){void 0===t&&(t=!0),this.collideWorldBounds=t;var n=void 0!==e,r=void 0!==i;return(n||r)&&(this.worldBounce||(this.worldBounce=new u),n&&(this.worldBounce.x=e),r&&(this.worldBounce.y=i)),this},setVelocity:function(t,e){return this.velocity.set(t,e),t=this.velocity.x,e=this.velocity.y,this.speed=Math.sqrt(t*t+e*e),this},setVelocityX:function(t){this.velocity.x=t;var e=t,i=this.velocity.y;return this.speed=Math.sqrt(e*e+i*i),this},setVelocityY:function(t){this.velocity.y=t;var e=this.velocity.x,i=t;return this.speed=Math.sqrt(e*e+i*i),this},setMaxVelocity:function(t,e){return this.maxVelocity.set(t,e),this},setMaxSpeed:function(t){return this.maxSpeed=t,this},setBounce:function(t,e){return this.bounce.set(t,e),this},setBounceX:function(t){return this.bounce.x=t,this},setBounceY:function(t){return this.bounce.y=t,this},setAcceleration:function(t,e){return this.acceleration.set(t,e),this},setAccelerationX:function(t){return this.acceleration.x=t,this},setAccelerationY:function(t){return this.acceleration.y=t,this},setAllowDrag:function(t){return void 0===t&&(t=!0),this.allowDrag=t,this},setAllowGravity:function(t){return void 0===t&&(t=!0),this.allowGravity=t,this},setAllowRotation:function(t){return void 0===t&&(t=!0),this.allowRotation=t,this},setDrag:function(t,e){return this.drag.set(t,e),this},setDragX:function(t){return this.drag.x=t,this},setDragY:function(t){return this.drag.y=t,this},setGravity:function(t,e){return this.gravity.set(t,e),this},setGravityX:function(t){return this.gravity.x=t,this},setGravityY:function(t){return this.gravity.y=t,this},setFriction:function(t,e){return this.friction.set(t,e),this},setFrictionX:function(t){return this.friction.x=t,this},setFrictionY:function(t){return this.friction.y=t,this},setAngularVelocity:function(t){return this.angularVelocity=t,this},setAngularAcceleration:function(t){return this.angularAcceleration=t,this},setAngularDrag:function(t){return this.angularDrag=t,this},setMass:function(t){return this.mass=t,this},setImmovable:function(t){return void 0===t&&(t=!0),this.immovable=t,this},setEnable:function(t){return void 0===t&&(t=!0),this.enable=t,this},x:{get:function(){return this.position.x},set:function(t){this.position.x=t}},y:{get:function(){return this.position.y},set:function(t){this.position.y=t}},left:{get:function(){return this.position.x}},right:{get:function(){return this.position.x+this.width}},top:{get:function(){return this.position.y}},bottom:{get:function(){return this.position.y+this.height}}});t.exports=l},61990:(t,e,i)=>{var n=new(i(47379))({initialize:function(t,e,i,n,r,s,o){this.world=t,this.name="",this.active=!0,this.overlapOnly=e,this.object1=i,this.object2=n,this.collideCallback=r,this.processCallback=s,this.callbackContext=o},setName:function(t){return this.name=t,this},update:function(){this.world.collideObjects(this.object1,this.object2,this.collideCallback,this.processCallback,this.callbackContext,this.overlapOnly)},destroy:function(){this.world.removeCollider(this),this.active=!1,this.world=null,this.object1=null,this.object2=null,this.collideCallback=null,this.processCallback=null,this.callbackContext=null}});t.exports=n},29548:(t,e,i)=>{var n=i(89428),r=i(44133),s=i(47379),o=i(7365),a=i(50143),h=i(73111),u=new s({initialize:function(t){this.world=t,this.scene=t.scene,this.sys=t.scene.sys},collider:function(t,e,i,n,r){return this.world.addCollider(t,e,i,n,r)},overlap:function(t,e,i,n,r){return this.world.addOverlap(t,e,i,n,r)},existing:function(t,e){var i=e?o.STATIC_BODY:o.DYNAMIC_BODY;return this.world.enableBody(t,i),t},staticImage:function(t,e,i,r){var s=new n(this.scene,t,e,i,r);return this.sys.displayList.add(s),this.world.enableBody(s,o.STATIC_BODY),s},image:function(t,e,i,r){var s=new n(this.scene,t,e,i,r);return this.sys.displayList.add(s),this.world.enableBody(s,o.DYNAMIC_BODY),s},staticSprite:function(t,e,i,n){var s=new r(this.scene,t,e,i,n);return this.sys.displayList.add(s),this.sys.updateList.add(s),this.world.enableBody(s,o.STATIC_BODY),s},sprite:function(t,e,i,n){var s=new r(this.scene,t,e,i,n);return this.sys.displayList.add(s),this.sys.updateList.add(s),this.world.enableBody(s,o.DYNAMIC_BODY),s},staticGroup:function(t,e){return this.sys.updateList.add(new h(this.world,this.world.scene,t,e))},group:function(t,e){return this.sys.updateList.add(new a(this.world,this.world.scene,t,e))},destroy:function(){this.world=null,this.scene=null,this.sys=null}});t.exports=u},83753:(t,e,i)=>{var n=i(7365);t.exports=function(t,e,i,r){var s=0,o=t.deltaAbsX()+e.deltaAbsX()+r;return 0===t._dx&&0===e._dx?(t.embedded=!0,e.embedded=!0):t._dx>e._dx?(s=t.right-e.x)>o&&!i||!1===t.checkCollision.right||!1===e.checkCollision.left?s=0:(t.touching.none=!1,t.touching.right=!0,e.touching.none=!1,e.touching.left=!0,e.physicsType===n.STATIC_BODY&&(t.blocked.none=!1,t.blocked.right=!0),t.physicsType===n.STATIC_BODY&&(e.blocked.none=!1,e.blocked.left=!0)):t._dx<e._dx&&(-(s=t.x-e.width-e.x)>o&&!i||!1===t.checkCollision.left||!1===e.checkCollision.right?s=0:(t.touching.none=!1,t.touching.left=!0,e.touching.none=!1,e.touching.right=!0,e.physicsType===n.STATIC_BODY&&(t.blocked.none=!1,t.blocked.left=!0),t.physicsType===n.STATIC_BODY&&(e.blocked.none=!1,e.blocked.right=!0))),t.overlapX=s,e.overlapX=s,s}},82268:(t,e,i)=>{var n=i(7365);t.exports=function(t,e,i,r){var s=0,o=t.deltaAbsY()+e.deltaAbsY()+r;return 0===t._dy&&0===e._dy?(t.embedded=!0,e.embedded=!0):t._dy>e._dy?(s=t.bottom-e.y)>o&&!i||!1===t.checkCollision.down||!1===e.checkCollision.up?s=0:(t.touching.none=!1,t.touching.down=!0,e.touching.none=!1,e.touching.up=!0,e.physicsType===n.STATIC_BODY&&(t.blocked.none=!1,t.blocked.down=!0),t.physicsType===n.STATIC_BODY&&(e.blocked.none=!1,e.blocked.up=!0)):t._dy<e._dy&&(-(s=t.y-e.bottom)>o&&!i||!1===t.checkCollision.up||!1===e.checkCollision.down?s=0:(t.touching.none=!1,t.touching.up=!0,e.touching.none=!1,e.touching.down=!0,e.physicsType===n.STATIC_BODY&&(t.blocked.none=!1,t.blocked.up=!0),t.physicsType===n.STATIC_BODY&&(e.blocked.none=!1,e.blocked.down=!0))),t.overlapY=s,e.overlapY=s,s}},50143:(t,e,i)=>{var n=i(44133),r=i(47379),s=i(7365),o=i(81769),a=i(55815),h=i(28621),u=new r({Extends:a,initialize:function(t,e,i,r){if(i||r)if(h(i))r=i,i=null,r.internalCreateCallback=this.createCallbackHandler,r.internalRemoveCallback=this.removeCallbackHandler;else if(Array.isArray(i)&&h(i[0])){r=i[0];var u=this;i.forEach((function(t){t.internalCreateCallback=u.createCallbackHandler,t.internalRemoveCallback=u.removeCallbackHandler}))}else r={internalCreateCallback:this.createCallbackHandler,internalRemoveCallback:this.removeCallbackHandler};else r={internalCreateCallback:this.createCallbackHandler,internalRemoveCallback:this.removeCallbackHandler};this.world=t,r.classType=o(r,"classType",n),this.physicsType=s.DYNAMIC_BODY,this.defaults={setCollideWorldBounds:o(r,"collideWorldBounds",!1),setBoundsRectangle:o(r,"customBoundsRectangle",null),setAccelerationX:o(r,"accelerationX",0),setAccelerationY:o(r,"accelerationY",0),setAllowDrag:o(r,"allowDrag",!0),setAllowGravity:o(r,"allowGravity",!0),setAllowRotation:o(r,"allowRotation",!0),setBounceX:o(r,"bounceX",0),setBounceY:o(r,"bounceY",0),setDragX:o(r,"dragX",0),setDragY:o(r,"dragY",0),setEnable:o(r,"enable",!0),setGravityX:o(r,"gravityX",0),setGravityY:o(r,"gravityY",0),setFrictionX:o(r,"frictionX",0),setFrictionY:o(r,"frictionY",0),setVelocityX:o(r,"velocityX",0),setVelocityY:o(r,"velocityY",0),setAngularVelocity:o(r,"angularVelocity",0),setAngularAcceleration:o(r,"angularAcceleration",0),setAngularDrag:o(r,"angularDrag",0),setMass:o(r,"mass",1),setImmovable:o(r,"immovable",!1)},Array.isArray(i)&&(r=null),a.call(this,e,i,r),this.type="PhysicsGroup"},createCallbackHandler:function(t){t.body||this.world.enableBody(t,s.DYNAMIC_BODY);var e=t.body;for(var i in this.defaults)e[i](this.defaults[i])},removeCallbackHandler:function(t){t.body&&this.world.disableBody(t)},setVelocity:function(t,e,i){void 0===i&&(i=0);for(var n=this.getChildren(),r=0;r<n.length;r++)n[r].body.velocity.set(t+r*i,e+r*i);return this},setVelocityX:function(t,e){void 0===e&&(e=0);for(var i=this.getChildren(),n=0;n<i.length;n++)i[n].body.velocity.x=t+n*e;return this},setVelocityY:function(t,e){void 0===e&&(e=0);for(var i=this.getChildren(),n=0;n<i.length;n++)i[n].body.velocity.y=t+n*e;return this}});t.exports=u},30725:(t,e,i)=>{var n=i(83753);t.exports=function(t,e,i,r){var s=n(t,e,i,r);if(i||0===s||t.immovable&&e.immovable||t.customSeparateX||e.customSeparateX)return 0!==s||t.embedded&&e.embedded;var o=t.velocity.x,a=e.velocity.x;if(t.immovable||e.immovable)t.immovable?(e.x+=s,e.velocity.x=o-a*e.bounce.x,t.moves&&(e.y+=(t.y-t.prev.y)*t.friction.y)):(t.x-=s,t.velocity.x=a-o*t.bounce.x,e.moves&&(t.y+=(e.y-e.prev.y)*e.friction.y));else{s*=.5,t.x-=s,e.x+=s;var h=Math.sqrt(a*a*e.mass/t.mass)*(a>0?1:-1),u=Math.sqrt(o*o*t.mass/e.mass)*(o>0?1:-1),l=.5*(h+u);h-=l,u-=l,t.velocity.x=l+h*t.bounce.x,e.velocity.x=l+u*e.bounce.x}return!0}},42717:(t,e,i)=>{var n=i(82268);t.exports=function(t,e,i,r){var s=n(t,e,i,r);if(i||0===s||t.immovable&&e.immovable||t.customSeparateY||e.customSeparateY)return 0!==s||t.embedded&&e.embedded;var o=t.velocity.y,a=e.velocity.y;if(t.immovable||e.immovable)t.immovable?(e.y+=s,e.velocity.y=o-a*e.bounce.y,t.moves&&(e.x+=(t.x-t.prev.x)*t.friction.x)):(t.y-=s,t.velocity.y=a-o*t.bounce.y,e.moves&&(t.x+=(e.x-e.prev.x)*e.friction.x));else{s*=.5,t.y-=s,e.y+=s;var h=Math.sqrt(a*a*e.mass/t.mass)*(a>0?1:-1),u=Math.sqrt(o*o*t.mass/e.mass)*(o>0?1:-1),l=.5*(h+u);h-=l,u-=l,t.velocity.y=l+h*t.bounce.y,e.velocity.y=l+u*e.bounce.y}return!0}},18137:(t,e,i)=>{var n=i(59623),r=i(47379),s=i(7365),o=i(38593),a=i(57148),h=new r({initialize:function(t,e){var i=e.displayWidth?e.displayWidth:64,n=e.displayHeight?e.displayHeight:64;this.world=t,this.gameObject=e,this.debugShowBody=t.defaults.debugShowStaticBody,this.debugBodyColor=t.defaults.staticBodyDebugColor,this.enable=!0,this.isCircle=!1,this.radius=0,this.offset=new a,this.position=new a(e.x-e.displayOriginX,e.y-e.displayOriginY),this.width=i,this.height=n,this.halfWidth=Math.abs(this.width/2),this.halfHeight=Math.abs(this.height/2),this.center=new a(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.velocity=a.ZERO,this.allowGravity=!1,this.gravity=a.ZERO,this.bounce=a.ZERO,this.onWorldBounds=!1,this.onCollide=!1,this.onOverlap=!1,this.mass=1,this.immovable=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.overlapR=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={none:!0,up:!1,down:!1,left:!1,right:!1},this.physicsType=s.STATIC_BODY,this._dx=0,this._dy=0},setGameObject:function(t,e){return t&&t!==this.gameObject&&(this.gameObject.body=null,t.body=this,this.gameObject=t),e&&this.updateFromGameObject(),this},updateFromGameObject:function(){this.world.staticTree.remove(this);var t=this.gameObject;return t.getTopLeft(this.position),this.width=t.displayWidth,this.height=t.displayHeight,this.halfWidth=Math.abs(this.width/2),this.halfHeight=Math.abs(this.height/2),this.center.set(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.world.staticTree.insert(this),this},setOffset:function(t,e){return void 0===e&&(e=t),this.world.staticTree.remove(this),this.position.x-=this.offset.x,this.position.y-=this.offset.y,this.offset.set(t,e),this.position.x+=this.offset.x,this.position.y+=this.offset.y,this.updateCenter(),this.world.staticTree.insert(this),this},setSize:function(t,e,i){void 0===i&&(i=!0);var n=this.gameObject;if(!t&&n.frame&&(t=n.frame.realWidth),!e&&n.frame&&(e=n.frame.realHeight),this.world.staticTree.remove(this),this.width=t,this.height=e,this.halfWidth=Math.floor(t/2),this.halfHeight=Math.floor(e/2),i&&n.getCenter){var r=n.displayWidth/2,s=n.displayHeight/2;this.position.x-=this.offset.x,this.position.y-=this.offset.y,this.offset.set(r-this.halfWidth,s-this.halfHeight),this.position.x+=this.offset.x,this.position.y+=this.offset.y}return this.updateCenter(),this.isCircle=!1,this.radius=0,this.world.staticTree.insert(this),this},setCircle:function(t,e,i){return void 0===e&&(e=this.offset.x),void 0===i&&(i=this.offset.y),t>0?(this.world.staticTree.remove(this),this.isCircle=!0,this.radius=t,this.width=2*t,this.height=2*t,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.set(e,i),this.updateCenter(),this.world.staticTree.insert(this)):this.isCircle=!1,this},updateCenter:function(){this.center.set(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(t,e){var i=this.gameObject;void 0===t&&(t=i.x),void 0===e&&(e=i.y),this.world.staticTree.remove(this),i.setPosition(t,e),i.getTopLeft(this.position),this.updateCenter(),this.world.staticTree.insert(this)},stop:function(){return this},getBounds:function(t){return t.x=this.x,t.y=this.y,t.right=this.right,t.bottom=this.bottom,t},hitTest:function(t,e){return this.isCircle?n(this,t,e):o(this,t,e)},postUpdate:function(){},deltaAbsX:function(){return 0},deltaAbsY:function(){return 0},deltaX:function(){return 0},deltaY:function(){return 0},deltaZ:function(){return 0},destroy:function(){this.enable=!1,this.world.pendingDestroy.set(this)},drawDebug:function(t){var e=this.position,i=e.x+this.halfWidth,n=e.y+this.halfHeight;this.debugShowBody&&(t.lineStyle(t.defaultStrokeWidth,this.debugBodyColor,1),this.isCircle?t.strokeCircle(i,n,this.width/2):t.strokeRect(e.x,e.y,this.width,this.height))},willDrawDebug:function(){return this.debugShowBody},setMass:function(t){return t<=0&&(t=.1),this.mass=t,this},x:{get:function(){return this.position.x},set:function(t){this.world.staticTree.remove(this),this.position.x=t,this.world.staticTree.insert(this)}},y:{get:function(){return this.position.y},set:function(t){this.world.staticTree.remove(this),this.position.y=t,this.world.staticTree.insert(this)}},left:{get:function(){return this.position.x}},right:{get:function(){return this.position.x+this.width}},top:{get:function(){return this.position.y}},bottom:{get:function(){return this.position.y+this.height}}});t.exports=h},73111:(t,e,i)=>{var n=i(44133),r=i(47379),s=i(7365),o=i(81769),a=i(55815),h=i(28621),u=new r({Extends:a,initialize:function(t,e,i,r){i||r?h(i)?(r=i,i=null,r.internalCreateCallback=this.createCallbackHandler,r.internalRemoveCallback=this.removeCallbackHandler,r.createMultipleCallback=this.createMultipleCallbackHandler,r.classType=o(r,"classType",n)):Array.isArray(i)&&h(i[0])&&(r=i,i=null,r.forEach((function(t){t.internalCreateCallback=this.createCallbackHandler,t.internalRemoveCallback=this.removeCallbackHandler,t.createMultipleCallback=this.createMultipleCallbackHandler,t.classType=o(t,"classType",n)}))):r={internalCreateCallback:this.createCallbackHandler,internalRemoveCallback:this.removeCallbackHandler,createMultipleCallback:this.createMultipleCallbackHandler,classType:n},this.world=t,this.physicsType=s.STATIC_BODY,a.call(this,e,i,r),this.type="StaticPhysicsGroup"},createCallbackHandler:function(t){t.body||this.world.enableBody(t,s.STATIC_BODY)},removeCallbackHandler:function(t){t.body&&this.world.disableBody(t)},createMultipleCallbackHandler:function(){this.refresh()},refresh:function(){for(var t=this.children.entries,e=0;e<t.length;e++)t[e].body.reset();return this}});t.exports=u},87573:(t,e,i)=>{var n=i(94772),r=i(90487),s=i(47379),o=i(61990),a=i(7365),h=i(73587),u=i(17168),l=i(72207),c=i(70077),d=i(60710),p=i(17373),f=i(83753),m=i(82268),v=i(86652),g=i(7674),y=i(66290),_=i(38092),x=i(41088),b=i(68808),w=i(30725),T=i(42717),M=i(69347),S=i(18137),E=i(77865),L=i(65492),A=i(57148),D=i(62951),P=new s({Extends:u,initialize:function(t,e){u.call(this),this.scene=t,this.bodies=new M,this.staticBodies=new M,this.pendingDestroy=new M,this.colliders=new g,this.gravity=new A(v(e,"gravity.x",0),v(e,"gravity.y",0)),this.bounds=new _(v(e,"x",0),v(e,"y",0),v(e,"width",t.sys.scale.width),v(e,"height",t.sys.scale.height)),this.checkCollision={up:v(e,"checkCollision.up",!0),down:v(e,"checkCollision.down",!0),left:v(e,"checkCollision.left",!0),right:v(e,"checkCollision.right",!0)},this.fps=v(e,"fps",60),this.fixedStep=!0,this._elapsed=0,this._frameTime=1/this.fps,this._frameTimeMS=1e3*this._frameTime,this.stepsLastFrame=0,this.timeScale=v(e,"timeScale",1),this.OVERLAP_BIAS=v(e,"overlapBias",4),this.TILE_BIAS=v(e,"tileBias",16),this.forceX=v(e,"forceX",!1),this.isPaused=v(e,"isPaused",!1),this._total=0,this.drawDebug=v(e,"debug",!1),this.debugGraphic,this.defaults={debugShowBody:v(e,"debugShowBody",!0),debugShowStaticBody:v(e,"debugShowStaticBody",!0),debugShowVelocity:v(e,"debugShowVelocity",!0),bodyDebugColor:v(e,"debugBodyColor",16711935),staticBodyDebugColor:v(e,"debugStaticBodyColor",255),velocityDebugColor:v(e,"debugVelocityColor",65280)},this.maxEntries=v(e,"maxEntries",16),this.useTree=v(e,"useTree",!0),this.tree=new x(this.maxEntries),this.staticTree=new x(this.maxEntries),this.treeMinMax={minX:0,minY:0,maxX:0,maxY:0},this._tempMatrix=new L,this._tempMatrix2=new L,this.drawDebug&&this.createDebugGraphic()},enable:function(t,e){void 0===e&&(e=a.DYNAMIC_BODY),Array.isArray(t)||(t=[t]);for(var i=0;i<t.length;i++){var n=t[i];if(n.isParent)for(var r=n.getChildren(),s=0;s<r.length;s++){var o=r[s];o.isParent?this.enable(o,e):this.enableBody(o,e)}else this.enableBody(n,e)}},enableBody:function(t,e){return void 0===e&&(e=a.DYNAMIC_BODY),t.body||(e===a.DYNAMIC_BODY?t.body=new n(this,t):e===a.STATIC_BODY&&(t.body=new S(this,t))),this.add(t.body),t},add:function(t){return t.physicsType===a.DYNAMIC_BODY?this.bodies.set(t):t.physicsType===a.STATIC_BODY&&(this.staticBodies.set(t),this.staticTree.insert(t)),t.enable=!0,t},disable:function(t){Array.isArray(t)||(t=[t]);for(var e=0;e<t.length;e++){var i=t[e];if(i.isParent)for(var n=i.getChildren(),r=0;r<n.length;r++){var s=n[r];s.isParent?this.disable(s):this.disableBody(s.body)}else this.disableBody(i.body)}},disableBody:function(t){this.remove(t),t.enable=!1},remove:function(t){t.physicsType===a.DYNAMIC_BODY?(this.tree.remove(t),this.bodies.delete(t)):t.physicsType===a.STATIC_BODY&&(this.staticBodies.delete(t),this.staticTree.remove(t))},createDebugGraphic:function(){var t=this.scene.sys.add.graphics({x:0,y:0});return t.setDepth(Number.MAX_VALUE),this.debugGraphic=t,this.drawDebug=!0,t},setBounds:function(t,e,i,n,r,s,o,a){return this.bounds.setTo(t,e,i,n),void 0!==r&&this.setBoundsCollision(r,s,o,a),this},setBoundsCollision:function(t,e,i,n){return void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===i&&(i=!0),void 0===n&&(n=!0),this.checkCollision.left=t,this.checkCollision.right=e,this.checkCollision.up=i,this.checkCollision.down=n,this},pause:function(){return this.isPaused=!0,this.emit(l.PAUSE),this},resume:function(){return this.isPaused=!1,this.emit(l.RESUME),this},addCollider:function(t,e,i,n,r){void 0===i&&(i=null),void 0===n&&(n=null),void 0===r&&(r=i);var s=new o(this,!1,t,e,i,n,r);return this.colliders.add(s),s},addOverlap:function(t,e,i,n,r){void 0===i&&(i=null),void 0===n&&(n=null),void 0===r&&(r=i);var s=new o(this,!0,t,e,i,n,r);return this.colliders.add(s),s},removeCollider:function(t){return this.colliders.remove(t),this},setFPS:function(t){return this.fps=t,this._frameTime=1/this.fps,this._frameTimeMS=1e3*this._frameTime,this},update:function(t,e){if(!this.isPaused&&0!==this.bodies.size){var i,n,r=this._frameTime,s=this._frameTimeMS*this.timeScale;this._elapsed+=e;var o=this.bodies.entries,a=this._elapsed>=s;for(this.fixedStep||(r=.001*e,a=!0,this._elapsed=0),i=0;i<o.length;i++)(n=o[i]).enable&&n.preUpdate(a,r);if(a){this._elapsed-=s,this.stepsLastFrame=1,this.useTree&&(this.tree.clear(),this.tree.load(o));var h=this.colliders.update();for(i=0;i<h.length;i++){var u=h[i];u.active&&u.update()}this.emit(l.WORLD_STEP)}for(;this._elapsed>=s;)this._elapsed-=s,this.step(r)}},step:function(t){var e,i,n=this.bodies.entries,r=n.length;for(e=0;e<r;e++)(i=n[e]).enable&&i.update(t);this.useTree&&(this.tree.clear(),this.tree.load(n));var s=this.colliders.update();for(e=0;e<s.length;e++){var o=s[e];o.active&&o.update()}this.emit(l.WORLD_STEP),this.stepsLastFrame++},postUpdate:function(){var t,e,i=this.bodies.entries,n=i.length,r=this.bodies,s=this.staticBodies;if(this.stepsLastFrame)for(this.stepsLastFrame=0,t=0;t<n;t++)(e=i[t]).enable&&e.postUpdate();if(this.drawDebug){var o=this.debugGraphic;for(o.clear(),t=0;t<n;t++)(e=i[t]).willDrawDebug()&&e.drawDebug(o);for(n=(i=s.entries).length,t=0;t<n;t++)(e=i[t]).willDrawDebug()&&e.drawDebug(o)}var h=this.pendingDestroy;if(h.size>0){var u=this.tree,l=this.staticTree;for(n=(i=h.entries).length,t=0;t<n;t++)(e=i[t]).physicsType===a.DYNAMIC_BODY?(u.remove(e),r.delete(e)):e.physicsType===a.STATIC_BODY&&(l.remove(e),s.delete(e)),e.world=void 0,e.gameObject=void 0;h.clear()}},updateMotion:function(t,e){t.allowRotation&&this.computeAngularVelocity(t,e),this.computeVelocity(t,e)},computeAngularVelocity:function(t,e){var i=t.angularVelocity,n=t.angularAcceleration,s=t.angularDrag,o=t.maxAngular;n?i+=n*e:t.allowDrag&&s&&(d(i-(s*=e),0,.1)?i-=s:p(i+s,0,.1)?i+=s:i=0);var a=(i=r(i,-o,o))-t.angularVelocity;t.angularVelocity+=a,t.rotation+=t.angularVelocity*e},computeVelocity:function(t,e){var i=t.velocity.x,n=t.acceleration.x,s=t.drag.x,o=t.maxVelocity.x,a=t.velocity.y,h=t.acceleration.y,u=t.drag.y,l=t.maxVelocity.y,f=t.speed,m=t.maxSpeed,v=t.allowDrag,g=t.useDamping;t.allowGravity&&(i+=(this.gravity.x+t.gravity.x)*e,a+=(this.gravity.y+t.gravity.y)*e),n?i+=n*e:v&&s&&(g?(i*=s,f=Math.sqrt(i*i+a*a),c(f,0,.001)&&(i=0)):d(i-(s*=e),0,.01)?i-=s:p(i+s,0,.01)?i+=s:i=0),h?a+=h*e:v&&u&&(g?(a*=u,f=Math.sqrt(i*i+a*a),c(f,0,.001)&&(a=0)):d(a-(u*=e),0,.01)?a-=u:p(a+u,0,.01)?a+=u:a=0),i=r(i,-o,o),a=r(a,-l,l),t.velocity.set(i,a),m>-1&&f>m&&(t.velocity.normalize().scale(m),f=m),t.speed=f},separate:function(t,e,i,n,r){if(!t.enable||!e.enable||t.checkCollision.none||e.checkCollision.none||!this.intersects(t,e))return!1;if(i&&!1===i.call(n,t.gameObject,e.gameObject))return!1;if(t.isCircle&&e.isCircle)return this.separateCircle(t,e,r);if(t.isCircle!==e.isCircle){var s=t.isCircle?e:t,o=t.isCircle?t:e,a={x:s.x,y:s.y,right:s.right,bottom:s.bottom},h=o.center;if((h.y<a.y||h.y>a.bottom)&&(h.x<a.x||h.x>a.right))return this.separateCircle(t,e,r)}var u=!1,c=!1;this.forceX||Math.abs(this.gravity.y+t.gravity.y)<Math.abs(this.gravity.x+t.gravity.x)?(u=w(t,e,r,this.OVERLAP_BIAS),this.intersects(t,e)&&(c=T(t,e,r,this.OVERLAP_BIAS))):(c=T(t,e,r,this.OVERLAP_BIAS),this.intersects(t,e)&&(u=w(t,e,r,this.OVERLAP_BIAS)));var d=u||c;return d&&(r?(t.onOverlap||e.onOverlap)&&this.emit(l.OVERLAP,t.gameObject,e.gameObject,t,e):(t.onCollide||e.onCollide)&&this.emit(l.COLLIDE,t.gameObject,e.gameObject,t,e)),d},separateCircle:function(t,e,i,n){f(t,e,!1,n),m(t,e,!1,n);var r=0;if(t.isCircle!==e.isCircle){var s={x:e.isCircle?t.position.x:e.position.x,y:e.isCircle?t.position.y:e.position.y,right:e.isCircle?t.right:e.right,bottom:e.isCircle?t.bottom:e.bottom},o={x:t.isCircle?t.center.x:e.center.x,y:t.isCircle?t.center.y:e.center.y,radius:t.isCircle?t.halfWidth:e.halfWidth};o.y<s.y?o.x<s.x?r=h(o.x,o.y,s.x,s.y)-o.radius:o.x>s.right&&(r=h(o.x,o.y,s.right,s.y)-o.radius):o.y>s.bottom&&(o.x<s.x?r=h(o.x,o.y,s.x,s.bottom)-o.radius:o.x>s.right&&(r=h(o.x,o.y,s.right,s.bottom)-o.radius)),r*=-1}else r=t.halfWidth+e.halfWidth-h(t.center.x,t.center.y,e.center.x,e.center.y);if(i||0===r||t.immovable&&e.immovable||t.customSeparateX||e.customSeparateX)return 0!==r&&(t.onOverlap||e.onOverlap)&&this.emit(l.OVERLAP,t.gameObject,e.gameObject,t,e),0!==r;var a=t.center.x-e.center.x,u=t.center.y-e.center.y,c=Math.sqrt(Math.pow(a,2)+Math.pow(u,2)),d=(e.center.x-t.center.x)/c||0,p=(e.center.y-t.center.y)/c||0,v=2*(t.velocity.x*d+t.velocity.y*p-e.velocity.x*d-e.velocity.y*p)/(t.mass+e.mass);t.immovable||(t.velocity.x=t.velocity.x-v*t.mass*d,t.velocity.y=t.velocity.y-v*t.mass*p),e.immovable||(e.velocity.x=e.velocity.x+v*e.mass*d,e.velocity.y=e.velocity.y+v*e.mass*p);var g=e.velocity.x-t.velocity.x,y=e.velocity.y-t.velocity.y,_=Math.atan2(y,g),x=this._frameTime;return t.immovable||e.immovable||(r/=2),t.immovable||(t.x+=t.velocity.x*x-r*Math.cos(_),t.y+=t.velocity.y*x-r*Math.sin(_)),e.immovable||(e.x+=e.velocity.x*x+r*Math.cos(_),e.y+=e.velocity.y*x+r*Math.sin(_)),t.velocity.x*=t.bounce.x,t.velocity.y*=t.bounce.y,e.velocity.x*=e.bounce.x,e.velocity.y*=e.bounce.y,(t.onCollide||e.onCollide)&&this.emit(l.COLLIDE,t.gameObject,e.gameObject,t,e),!0},intersects:function(t,e){return t!==e&&(t.isCircle||e.isCircle?t.isCircle?e.isCircle?h(t.center.x,t.center.y,e.center.x,e.center.y)<=t.halfWidth+e.halfWidth:this.circleBodyIntersects(t,e):this.circleBodyIntersects(e,t):!(t.right<=e.position.x||t.bottom<=e.position.y||t.position.x>=e.right||t.position.y>=e.bottom))},circleBodyIntersects:function(t,e){var i=r(t.center.x,e.left,e.right),n=r(t.center.y,e.top,e.bottom);return(t.center.x-i)*(t.center.x-i)+(t.center.y-n)*(t.center.y-n)<=t.halfWidth*t.halfWidth},overlap:function(t,e,i,n,r){return void 0===i&&(i=null),void 0===n&&(n=null),void 0===r&&(r=i),this.collideObjects(t,e,i,n,r,!0)},collide:function(t,e,i,n,r){return void 0===i&&(i=null),void 0===n&&(n=null),void 0===r&&(r=i),this.collideObjects(t,e,i,n,r,!1)},collideObjects:function(t,e,i,n,r,s){var o,a;t.isParent&&void 0===t.physicsType&&(t=t.children.entries),e&&e.isParent&&void 0===e.physicsType&&(e=e.children.entries);var h=Array.isArray(t),u=Array.isArray(e);if(this._total=0,h||u)if(!h&&u)for(o=0;o<e.length;o++)this.collideHandler(t,e[o],i,n,r,s);else if(h&&!u)if(e)for(o=0;o<t.length;o++)this.collideHandler(t[o],e,i,n,r,s);else for(o=0;o<t.length;o++){var l=t[o];for(a=o+1;a<t.length;a++)o!==a&&this.collideHandler(l,t[a],i,n,r,s)}else for(o=0;o<t.length;o++)for(a=0;a<e.length;a++)this.collideHandler(t[o],e[a],i,n,r,s);else this.collideHandler(t,e,i,n,r,s);return this._total>0},collideHandler:function(t,e,i,n,r,s){if(void 0===e&&t.isParent)return this.collideGroupVsGroup(t,t,i,n,r,s);if(!t||!e)return!1;if(t.body){if(e.body)return this.collideSpriteVsSprite(t,e,i,n,r,s);if(e.isParent)return this.collideSpriteVsGroup(t,e,i,n,r,s);if(e.isTilemap)return this.collideSpriteVsTilemapLayer(t,e,i,n,r,s)}else if(t.isParent){if(e.body)return this.collideSpriteVsGroup(e,t,i,n,r,s);if(e.isParent)return this.collideGroupVsGroup(t,e,i,n,r,s);if(e.isTilemap)return this.collideGroupVsTilemapLayer(t,e,i,n,r,s)}else if(t.isTilemap){if(e.body)return this.collideSpriteVsTilemapLayer(e,t,i,n,r,s);if(e.isParent)return this.collideGroupVsTilemapLayer(e,t,i,n,r,s)}},collideSpriteVsSprite:function(t,e,i,n,r,s){return!(!t.body||!e.body)&&(this.separate(t.body,e.body,n,r,s)&&(i&&i.call(r,t,e),this._total++),!0)},collideSpriteVsGroup:function(t,e,i,n,r,s){var o,h,u,l=t.body;if(0!==e.length&&l&&l.enable&&!l.checkCollision.none)if(this.useTree){var c=this.treeMinMax;c.minX=l.left,c.minY=l.top,c.maxX=l.right,c.maxY=l.bottom;var d=e.physicsType===a.DYNAMIC_BODY?this.tree.search(c):this.staticTree.search(c);for(h=d.length,o=0;o<h;o++)l!==(u=d[o])&&u.enable&&!u.checkCollision.none&&e.contains(u.gameObject)&&this.separate(l,u,n,r,s)&&(i&&i.call(r,l.gameObject,u.gameObject),this._total++)}else{var p=e.getChildren(),f=e.children.entries.indexOf(t);for(h=p.length,o=0;o<h;o++)(u=p[o].body)&&o!==f&&u.enable&&this.separate(l,u,n,r,s)&&(i&&i.call(r,l.gameObject,u.gameObject),this._total++)}},collideGroupVsTilemapLayer:function(t,e,i,n,r,s){var o=t.getChildren();if(0===o.length)return!1;for(var a=!1,h=0;h<o.length;h++)o[h].body&&this.collideSpriteVsTilemapLayer(o[h],e,i,n,r,s)&&(a=!0);return a},collideTiles:function(t,e,i,n,r){return!(!t.body.enable||0===e.length)&&this.collideSpriteVsTilesHandler(t,e,i,n,r,!1,!1)},overlapTiles:function(t,e,i,n,r){return!(!t.body.enable||0===e.length)&&this.collideSpriteVsTilesHandler(t,e,i,n,r,!0,!1)},collideSpriteVsTilemapLayer:function(t,e,i,n,r,s){var o=t.body;if(!o.enable||o.checkCollision.none)return!1;var a=o.position.x,h=o.position.y,u=o.width,l=o.height,c=e.layer;if(c.tileWidth>c.baseTileWidth){var d=(c.tileWidth-c.baseTileWidth)*e.scaleX;a-=d,u+=d}c.tileHeight>c.baseTileHeight&&(l+=(c.tileHeight-c.baseTileHeight)*e.scaleY);var p=e.getTilesWithinWorldXY(a,h,u,l);return 0!==p.length&&this.collideSpriteVsTilesHandler(t,p,i,n,r,s,!0)},collideSpriteVsTilesHandler:function(t,e,i,n,r,s,o){for(var a,h,u=t.body,c={left:0,right:0,top:0,bottom:0},d=!1,p=0;p<e.length;p++)h=(a=e[p]).tilemapLayer,c.left=h.tileToWorldX(a.x),c.top=h.tileToWorldY(a.y),a.baseHeight!==a.height&&(c.top-=(a.height-a.baseHeight)*h.scaleY),c.right=c.left+a.width*h.scaleX,c.bottom=c.top+a.height*h.scaleY,E(c,u)&&(!n||n.call(r,t,a))&&y(a,t)&&(s||b(p,u,a,c,h,this.TILE_BIAS,o))&&(this._total++,d=!0,i&&i.call(r,t,a),s&&u.onOverlap?this.emit(l.TILE_OVERLAP,t,a,u):u.onCollide&&this.emit(l.TILE_COLLIDE,t,a,u));return d},collideGroupVsGroup:function(t,e,i,n,r,s){if(0!==t.length&&0!==e.length)for(var o=t.getChildren(),a=0;a<o.length;a++)this.collideSpriteVsGroup(o[a],e,i,n,r,s)},wrap:function(t,e){t.body?this.wrapObject(t,e):t.getChildren?this.wrapArray(t.getChildren(),e):Array.isArray(t)?this.wrapArray(t,e):this.wrapObject(t,e)},wrapArray:function(t,e){for(var i=0;i<t.length;i++)this.wrapObject(t[i],e)},wrapObject:function(t,e){void 0===e&&(e=0),t.x=D(t.x,this.bounds.left-e,this.bounds.right+e),t.y=D(t.y,this.bounds.top-e,this.bounds.bottom+e)},shutdown:function(){this.tree.clear(),this.staticTree.clear(),this.bodies.clear(),this.staticBodies.clear(),this.colliders.destroy(),this.removeAllListeners()},destroy:function(){this.shutdown(),this.scene=null}});t.exports=P},27243:t=>{t.exports={setAcceleration:function(t,e){return this.body.acceleration.set(t,e),this},setAccelerationX:function(t){return this.body.acceleration.x=t,this},setAccelerationY:function(t){return this.body.acceleration.y=t,this}}},30300:t=>{t.exports={setAngularVelocity:function(t){return this.body.angularVelocity=t,this},setAngularAcceleration:function(t){return this.body.angularAcceleration=t,this},setAngularDrag:function(t){return this.body.angularDrag=t,this}}},55464:t=>{t.exports={setBounce:function(t,e){return this.body.bounce.set(t,e),this},setBounceX:function(t){return this.body.bounce.x=t,this},setBounceY:function(t){return this.body.bounce.y=t,this},setCollideWorldBounds:function(t,e,i){return this.body.setCollideWorldBounds(t,e,i),this}}},4160:t=>{t.exports={setDebug:function(t,e,i){return this.debugShowBody=t,this.debugShowVelocity=e,this.debugBodyColor=i,this},setDebugBodyColor:function(t){return this.body.debugBodyColor=t,this},debugShowBody:{get:function(){return this.body.debugShowBody},set:function(t){this.body.debugShowBody=t}},debugShowVelocity:{get:function(){return this.body.debugShowVelocity},set:function(t){this.body.debugShowVelocity=t}},debugBodyColor:{get:function(){return this.body.debugBodyColor},set:function(t){this.body.debugBodyColor=t}}}},40260:t=>{t.exports={setDrag:function(t,e){return this.body.drag.set(t,e),this},setDragX:function(t){return this.body.drag.x=t,this},setDragY:function(t){return this.body.drag.y=t,this},setDamping:function(t){return this.body.useDamping=t,this}}},23638:t=>{var e={enableBody:function(t,e,i,n,r){return t&&this.body.reset(e,i),n&&(this.body.gameObject.active=!0),r&&(this.body.gameObject.visible=!0),this.body.enable=!0,this},disableBody:function(t,e){return void 0===t&&(t=!1),void 0===e&&(e=!1),this.body.stop(),this.body.enable=!1,t&&(this.body.gameObject.active=!1),e&&(this.body.gameObject.visible=!1),this},refreshBody:function(){return this.body.updateFromGameObject(),this}};t.exports=e},73490:t=>{t.exports={setFriction:function(t,e){return this.body.friction.set(t,e),this},setFrictionX:function(t){return this.body.friction.x=t,this},setFrictionY:function(t){return this.body.friction.y=t,this}}},28786:t=>{t.exports={setGravity:function(t,e){return this.body.gravity.set(t,e),this},setGravityX:function(t){return this.body.gravity.x=t,this},setGravityY:function(t){return this.body.gravity.y=t,this}}},60409:t=>{var e={setImmovable:function(t){return void 0===t&&(t=!0),this.body.immovable=t,this}};t.exports=e},19295:t=>{t.exports={setMass:function(t){return this.body.mass=t,this}}},79004:(t,e,i)=>{var n=i(82124),r=i(78265),s=i(71011),o=i(90866);t.exports=function(t,e,i,a,h,u){var l=n(t,e-a,i-a,2*a,2*a,h,u);if(0===l.length)return l;for(var c=new r(e,i,a),d=new r,p=[],f=0;f<l.length;f++){var m=l[f];m.isCircle?(d.setTo(m.center.x,m.center.y,m.halfWidth),s(c,d)&&p.push(m)):o(c,m)&&p.push(m)}return p}},82124:t=>{t.exports=function(t,e,i,n,r,s,o){void 0===s&&(s=!0),void 0===o&&(o=!1);var a=[],h=[],u=t.treeMinMax;if(u.minX=e,u.minY=i,u.maxX=e+n,u.maxY=i+r,o&&(h=t.staticTree.search(u)),s&&t.useTree)a=t.tree.search(u);else if(s){var l=t.bodies,c={position:{x:e,y:i},left:e,top:i,right:e+n,bottom:i+r,isCircle:!1},d=t.intersects;l.iterate((function(t){d(t,c)&&a.push(t)}))}return h.concat(a)}},38487:t=>{t.exports={setOffset:function(t,e){return this.body.setOffset(t,e),this},setSize:function(t,e,i){return this.body.setSize(t,e,i),this},setCircle:function(t,e,i){return this.body.setCircle(t,e,i),this}}},40799:t=>{t.exports={setVelocity:function(t,e){return this.body.setVelocity(t,e),this},setVelocityX:function(t){return this.body.setVelocityX(t),this},setVelocityY:function(t){return this.body.setVelocityY(t),this},setMaxVelocity:function(t,e){return this.body.maxVelocity.set(t,e),this}}},14682:(t,e,i)=>{t.exports={Acceleration:i(27243),Angular:i(30300),Bounce:i(55464),Debug:i(4160),Drag:i(40260),Enable:i(23638),Friction:i(73490),Gravity:i(28786),Immovable:i(60409),Mass:i(19295),Size:i(38487),Velocity:i(40799)}},7365:t=>{t.exports={DYNAMIC_BODY:0,STATIC_BODY:1,GROUP:2,TILEMAPLAYER:3,FACING_NONE:10,FACING_UP:11,FACING_DOWN:12,FACING_LEFT:13,FACING_RIGHT:14}},77826:t=>{t.exports="collide"},8044:t=>{t.exports="overlap"},37874:t=>{t.exports="pause"},14966:t=>{t.exports="resume"},24256:t=>{t.exports="tilecollide"},1620:t=>{t.exports="tileoverlap"},58641:t=>{t.exports="worldbounds"},35487:t=>{t.exports="worldstep"},72207:(t,e,i)=>{t.exports={COLLIDE:i(77826),OVERLAP:i(8044),PAUSE:i(37874),RESUME:i(14966),TILE_COLLIDE:i(24256),TILE_OVERLAP:i(1620),WORLD_BOUNDS:i(58641),WORLD_STEP:i(35487)}},88869:(t,e,i)=>{var n=i(7365),r=i(80933),s={ArcadePhysics:i(47653),Body:i(94772),Collider:i(61990),Components:i(14682),Events:i(72207),Factory:i(29548),Group:i(50143),Image:i(89428),Sprite:i(44133),StaticBody:i(18137),StaticGroup:i(73111),World:i(87573)};s=r(!1,s,n),t.exports=s},66290:t=>{t.exports=function(t,e){return t.collisionCallback?!t.collisionCallback.call(t.collisionCallbackContext,e,t):!t.layer.callbacks[t.index]||!t.layer.callbacks[t.index].callback.call(t.layer.callbacks[t.index].callbackContext,e,t)}},39264:t=>{t.exports=function(t,e){e<0?(t.blocked.none=!1,t.blocked.left=!0):e>0&&(t.blocked.none=!1,t.blocked.right=!0),t.position.x-=e,0===t.bounce.x?t.velocity.x=0:t.velocity.x=-t.velocity.x*t.bounce.x}},50301:t=>{t.exports=function(t,e){e<0?(t.blocked.none=!1,t.blocked.up=!0):e>0&&(t.blocked.none=!1,t.blocked.down=!0),t.position.y-=e,0===t.bounce.y?t.velocity.y=0:t.velocity.y=-t.velocity.y*t.bounce.y}},68808:(t,e,i)=>{var n=i(62036),r=i(40937),s=i(77865);t.exports=function(t,e,i,o,a,h,u){var l=o.left,c=o.top,d=o.right,p=o.bottom,f=i.faceLeft||i.faceRight,m=i.faceTop||i.faceBottom;if(u||(f=!0,m=!0),!f&&!m)return!1;var v=0,g=0,y=0,_=1;if(e.deltaAbsX()>e.deltaAbsY()?y=-1:e.deltaAbsX()<e.deltaAbsY()&&(_=-1),0!==e.deltaX()&&0!==e.deltaY()&&f&&m&&(y=Math.min(Math.abs(e.position.x-d),Math.abs(e.right-l)),_=Math.min(Math.abs(e.position.y-p),Math.abs(e.bottom-c))),y<_){if(f&&0!==(v=n(e,i,l,d,h,u))&&!s(o,e))return!0;m&&(g=r(e,i,c,p,h,u))}else{if(m&&0!==(g=r(e,i,c,p,h,u))&&!s(o,e))return!0;f&&(v=n(e,i,l,d,h,u))}return 0!==v||0!==g}},62036:(t,e,i)=>{var n=i(39264);t.exports=function(t,e,i,r,s,o){var a=0,h=e.faceLeft,u=e.faceRight,l=e.collideLeft,c=e.collideRight;return o||(h=!0,u=!0,l=!0,c=!0),t.deltaX()<0&&c&&t.checkCollision.left?u&&t.x<r&&(a=t.x-r)<-s&&(a=0):t.deltaX()>0&&l&&t.checkCollision.right&&h&&t.right>i&&(a=t.right-i)>s&&(a=0),0!==a&&(t.customSeparateX?t.overlapX=a:n(t,a)),a}},40937:(t,e,i)=>{var n=i(50301);t.exports=function(t,e,i,r,s,o){var a=0,h=e.faceTop,u=e.faceBottom,l=e.collideUp,c=e.collideDown;return o||(h=!0,u=!0,l=!0,c=!0),t.deltaY()<0&&c&&t.checkCollision.up?u&&t.y<r&&(a=t.y-r)<-s&&(a=0):t.deltaY()>0&&l&&t.checkCollision.down&&h&&t.bottom>i&&(a=t.bottom-i)>s&&(a=0),0!==a&&(t.customSeparateY?t.overlapY=a:n(t,a)),a}},77865:t=>{t.exports=function(t,e){return!(e.right<=t.left||e.bottom<=t.top||e.position.x>=t.right||e.position.y>=t.bottom)}},34775:(t,e,i)=>{t.exports={Arcade:i(88869),Matter:i(23903)}},34862:(t,e,i)=>{var n=i(47379),r=i(57148),s=new n({initialize:function(){this.boundsCenter=new r,this.centerDiff=new r},parseBody:function(t){if(!(t=t.hasOwnProperty("body")?t.body:t).hasOwnProperty("bounds")||!t.hasOwnProperty("centerOfMass"))return!1;var e=this.boundsCenter,i=this.centerDiff,n=t.bounds.max.x-t.bounds.min.x,r=t.bounds.max.y-t.bounds.min.y,s=n*t.centerOfMass.x,o=r*t.centerOfMass.y;return e.set(n/2,r/2),i.set(s-e.x,o-e.y),!0},getTopLeft:function(t,e,i){if(void 0===e&&(e=0),void 0===i&&(i=0),this.parseBody(t)){var n=this.boundsCenter,s=this.centerDiff;return new r(e+n.x+s.x,i+n.y+s.y)}return!1},getTopCenter:function(t,e,i){if(void 0===e&&(e=0),void 0===i&&(i=0),this.parseBody(t)){var n=this.boundsCenter,s=this.centerDiff;return new r(e+s.x,i+n.y+s.y)}return!1},getTopRight:function(t,e,i){if(void 0===e&&(e=0),void 0===i&&(i=0),this.parseBody(t)){var n=this.boundsCenter,s=this.centerDiff;return new r(e-(n.x-s.x),i+n.y+s.y)}return!1},getLeftCenter:function(t,e,i){if(void 0===e&&(e=0),void 0===i&&(i=0),this.parseBody(t)){var n=this.boundsCenter,s=this.centerDiff;return new r(e+n.x+s.x,i+s.y)}return!1},getCenter:function(t,e,i){if(void 0===e&&(e=0),void 0===i&&(i=0),this.parseBody(t)){var n=this.centerDiff;return new r(e+n.x,i+n.y)}return!1},getRightCenter:function(t,e,i){if(void 0===e&&(e=0),void 0===i&&(i=0),this.parseBody(t)){var n=this.boundsCenter,s=this.centerDiff;return new r(e-(n.x-s.x),i+s.y)}return!1},getBottomLeft:function(t,e,i){if(void 0===e&&(e=0),void 0===i&&(i=0),this.parseBody(t)){var n=this.boundsCenter,s=this.centerDiff;return new r(e+n.x+s.x,i-(n.y-s.y))}return!1},getBottomCenter:function(t,e,i){if(void 0===e&&(e=0),void 0===i&&(i=0),this.parseBody(t)){var n=this.boundsCenter,s=this.centerDiff;return new r(e+s.x,i-(n.y-s.y))}return!1},getBottomRight:function(t,e,i){if(void 0===e&&(e=0),void 0===i&&(i=0),this.parseBody(t)){var n=this.boundsCenter,s=this.centerDiff;return new r(e-(n.x-s.x),i-(n.y-s.y))}return!1}});t.exports=s},97461:(t,e,i)=>{var n=i(66995);n.Body=i(32663),n.Composite=i(69643),n.World=i(36606),n.Detector=i(17964),n.Grid=i(88424),n.Pairs=i(31796),n.Pair=i(37849),n.Query=i(44542),n.Resolver=i(28720),n.SAT=i(3946),n.Constraint=i(69436),n.Common=i(13991),n.Engine=i(10153),n.Events=i(84900),n.Sleeping=i(59114),n.Plugin=i(41880),n.Bodies=i(41422),n.Composites=i(36162),n.Axes=i(58383),n.Bounds=i(17983),n.Svg=i(34968),n.Vector=i(39646),n.Vertices=i(65714),n.World.add=n.Composite.add,n.World.remove=n.Composite.remove,n.World.addComposite=n.Composite.addComposite,n.World.addBody=n.Composite.addBody,n.World.addConstraint=n.Composite.addConstraint,n.World.clear=n.Composite.clear,t.exports=n},22718:(t,e,i)=>{var n=i(41422),r=i(47379),s=i(36162),o=i(69436),a=i(34968),h=i(20312),u=i(21372),l=i(1731),c=i(57564),d=i(49765),p=i(88470),f=i(58691),m=i(65714),v=new r({initialize:function(t){this.world=t,this.scene=t.scene,this.sys=t.scene.sys},rectangle:function(t,e,i,r,s){var o=n.rectangle(t,e,i,r,s);return this.world.add(o),o},trapezoid:function(t,e,i,r,s,o){var a=n.trapezoid(t,e,i,r,s,o);return this.world.add(a),a},circle:function(t,e,i,r,s){var o=n.circle(t,e,i,r,s);return this.world.add(o),o},polygon:function(t,e,i,r,s){var o=n.polygon(t,e,i,r,s);return this.world.add(o),o},fromVertices:function(t,e,i,r,s,o,a){"string"==typeof i&&(i=m.fromPath(i));var h=n.fromVertices(t,e,i,r,s,o,a);return this.world.add(h),h},fromPhysicsEditor:function(t,e,i,n,r){void 0===r&&(r=!0);var s=d.parseBody(t,e,i,n);return r&&!this.world.has(s)&&this.world.add(s),s},fromSVG:function(t,e,i,r,s,o){void 0===r&&(r=1),void 0===s&&(s={}),void 0===o&&(o=!0);for(var h=i.getElementsByTagName("path"),u=[],l=0;l<h.length;l++){var c=a.pathToVertices(h[l],30);1!==r&&m.scale(c,r,r),u.push(c)}var d=n.fromVertices(t,e,u,s);return o&&this.world.add(d),d},fromJSON:function(t,e,i,n,r){void 0===n&&(n={}),void 0===r&&(r=!0);var s=p.parseBody(t,e,i,n);return s&&r&&this.world.add(s),s},imageStack:function(t,e,i,n,r,o,a,h,l){void 0===a&&(a=0),void 0===h&&(h=0),void 0===l&&(l={});var c=this.world,d=this.sys.displayList;l.addToWorld=!1;var p=s.stack(i,n,r,o,a,h,(function(i,n){var r=new u(c,i,n,t,e,l);return d.add(r),r.body}));return c.add(p),p},stack:function(t,e,i,n,r,o,a){var h=s.stack(t,e,i,n,r,o,a);return this.world.add(h),h},pyramid:function(t,e,i,n,r,o,a){var h=s.pyramid(t,e,i,n,r,o,a);return this.world.add(h),h},chain:function(t,e,i,n,r,o){return s.chain(t,e,i,n,r,o)},mesh:function(t,e,i,n,r){return s.mesh(t,e,i,n,r)},newtonsCradle:function(t,e,i,n,r){var o=s.newtonsCradle(t,e,i,n,r);return this.world.add(o),o},car:function(t,e,i,n,r){var o=s.car(t,e,i,n,r);return this.world.add(o),o},softBody:function(t,e,i,n,r,o,a,h,u,l){var c=s.softBody(t,e,i,n,r,o,a,h,u,l);return this.world.add(c),c},joint:function(t,e,i,n,r){return this.constraint(t,e,i,n,r)},spring:function(t,e,i,n,r){return this.constraint(t,e,i,n,r)},constraint:function(t,e,i,n,r){void 0===n&&(n=1),void 0===r&&(r={}),r.bodyA="body"===t.type?t:t.body,r.bodyB="body"===e.type?e:e.body,isNaN(i)||(r.length=i),r.stiffness=n;var s=o.create(r);return this.world.add(s),s},worldConstraint:function(t,e,i,n){void 0===i&&(i=1),void 0===n&&(n={}),n.bodyB="body"===t.type?t:t.body,isNaN(e)||(n.length=e),n.stiffness=i;var r=o.create(n);return this.world.add(r),r},mouseSpring:function(t){return this.pointerConstraint(t)},pointerConstraint:function(t){void 0===t&&(t={}),t.hasOwnProperty("render")||(t.render={visible:!1});var e=new f(this.scene,this.world,t);return this.world.add(e.constraint),e},image:function(t,e,i,n,r){var s=new u(this.world,t,e,i,n,r);return this.sys.displayList.add(s),s},tileBody:function(t,e){return new c(this.world,t,e)},sprite:function(t,e,i,n,r){var s=new l(this.world,t,e,i,n,r);return this.sys.displayList.add(s),this.sys.updateList.add(s),s},gameObject:function(t,e,i){return h(this.world,t,e,i)},destroy:function(){this.world=null,this.scene=null,this.sys=null}});t.exports=v},20312:(t,e,i)=>{var n=i(86845),r=i(81769),s=i(57148);t.exports=function(t,e,i,o){void 0===i&&(i={}),void 0===o&&(o=!0);var a=e.x,h=e.y;if(e.body={temp:!0,position:{x:a,y:h}},[n.Bounce,n.Collision,n.Force,n.Friction,n.Gravity,n.Mass,n.Sensor,n.SetBody,n.Sleep,n.Static,n.Transform,n.Velocity].forEach((function(t){for(var i in t)(n=t[i]).get&&"function"==typeof n.get||n.set&&"function"==typeof n.set?Object.defineProperty(e,i,{get:t[i].get,set:t[i].set}):Object.defineProperty(e,i,{value:t[i]});var n})),e.world=t,e._tempVec2=new s(a,h),i.hasOwnProperty("type")&&"body"===i.type)e.setExistingBody(i,o);else{var u=r(i,"shape",null);u||(u="rectangle"),i.addToWorld=o,e.setBody(u,i)}return e}},21372:(t,e,i)=>{var n=i(47379),r=i(86845),s=i(90554),o=i(81769),a=i(59525),h=i(76923),u=i(57148),l=new n({Extends:a,Mixins:[r.Bounce,r.Collision,r.Force,r.Friction,r.Gravity,r.Mass,r.Sensor,r.SetBody,r.Sleep,r.Static,r.Transform,r.Velocity,h],initialize:function(t,e,i,n,r,a){s.call(this,t.scene,"Image"),this.setTexture(n,r),this.setSizeToFrame(),this.setOrigin(),this.world=t,this._tempVec2=new u(e,i);var h=o(a,"shape",null);h?this.setBody(h,a):this.setRectangle(this.width,this.height,a),this.setPosition(e,i),this.initPipeline("TextureTintPipeline")}});t.exports=l},96506:(t,e,i)=>{var n=i(1174),r=i(58383),s=i(41422),o=i(32663),a=i(34862),h=i(17983),u=i(47379),l=i(69643),c=i(36162),d=i(69436),p=i(17964),f=i(73587),m=i(22718),v=i(81769),g=i(86652),y=i(88424),_=i(94323),x=i(35169),b=i(66995),w=i(98439),T=i(92974),M=i(37849),S=i(31796),E=i(41880),L=i(50354),A=i(44542),D=i(28720),P=i(3946),C=i(88637),O=i(34968),k=i(39646),R=i(65714),I=i(41491),Y=new u({initialize:function(t){this.scene=t,this.systems=t.sys,this.config=this.getConfig(),this.world,this.add,this.bodyBounds,this.body=o,this.composite=l,this.detector=p,this.grid=y,this.pair=M,this.pairs=S,this.query=A,this.resolver=D,this.sat=P,this.constraint=d,this.bodies=s,this.composites=c,this.axes=r,this.bounds=h,this.svg=O,this.vector=k,this.vertices=R,this.verts=R,this._tempVec2=k.create(),g(this.config,"plugins.collisionevents",!0)&&this.enableCollisionEventsPlugin(),g(this.config,"plugins.attractors",!1)&&this.enableAttractorPlugin(),g(this.config,"plugins.wrap",!1)&&this.enableWrapPlugin(),D._restingThresh=g(this.config,"restingThresh",4),D._restingThreshTangent=g(this.config,"restingThreshTangent",6),D._positionDampen=g(this.config,"positionDampen",.9),D._positionWarming=g(this.config,"positionWarming",.8),D._frictionNormalMultiplier=g(this.config,"frictionNormalMultiplier",5),t.sys.events.once(C.BOOT,this.boot,this),t.sys.events.on(C.START,this.start,this)},boot:function(){this.world=new I(this.scene,this.config),this.add=new m(this.world),this.bodyBounds=new a,this.systems.events.once(C.DESTROY,this.destroy,this)},start:function(){this.world||(this.world=new I(this.scene,this.config),this.add=new m(this.world));var t=this.systems.events;t.on(C.UPDATE,this.world.update,this.world),t.on(C.POST_UPDATE,this.world.postUpdate,this.world),t.once(C.SHUTDOWN,this.shutdown,this)},getConfig:function(){var t=this.systems.game.config.physics,e=this.systems.settings.physics;return T(v(e,"matter",{}),v(t,"matter",{}))},enableAttractorPlugin:function(){return E.register(_),E.use(b,_),this},enableWrapPlugin:function(){return E.register(w),E.use(b,w),this},enableCollisionEventsPlugin:function(){return E.register(x),E.use(b,x),this},pause:function(){return this.world.pause()},resume:function(){return this.world.resume()},set60Hz:function(){return this.world.getDelta=this.world.update60Hz,this.world.autoUpdate=!0,this},set30Hz:function(){return this.world.getDelta=this.world.update30Hz,this.world.autoUpdate=!0,this},step:function(t,e){this.world.step(t,e)},containsPoint:function(t,e,i){t=this.getMatterBodies(t);var n=k.create(e,i);return A.point(t,n).length>0},intersectPoint:function(t,e,i){i=this.getMatterBodies(i);var n=k.create(t,e),r=[];return A.point(i,n).forEach((function(t){-1===r.indexOf(t)&&r.push(t)})),r},intersectRect:function(t,e,i,n,r,s){void 0===r&&(r=!1),s=this.getMatterBodies(s);var o={min:{x:t,y:e},max:{x:t+i,y:e+n}},a=[];return A.region(s,o,r).forEach((function(t){-1===a.indexOf(t)&&a.push(t)})),a},intersectRay:function(t,e,i,n,r,s){void 0===r&&(r=1),s=this.getMatterBodies(s);for(var o=[],a=A.ray(s,k.create(t,e),k.create(i,n),r),h=0;h<a.length;h++)o.push(a[h].body);return o},intersectBody:function(t,e){e=this.getMatterBodies(e);for(var i=[],n=A.collides(t,e),r=0;r<n.length;r++){var s=n[r];s.bodyA===t?i.push(s.bodyB):i.push(s.bodyA)}return i},overlap:function(t,e,i,n,r){void 0===i&&(i=null),void 0===n&&(n=null),void 0===r&&(r=i),Array.isArray(t)||(t=[t]),t=this.getMatterBodies(t),e=this.getMatterBodies(e);for(var s=!1,o=0;o<t.length;o++)for(var a=t[o],h=A.collides(a,e),u=0;u<h.length;u++){var l=h[u],c=l.bodyA.id===a.id?l.bodyB:l.bodyA;if(!n||n.call(r,a,c,l))if(s=!0,i)i.call(r,a,c,l);else if(!n)return!0}return s},setCollisionCategory:function(t,e){return(t=this.getMatterBodies(t)).forEach((function(t){t.collisionFilter.category=e})),this},setCollisionGroup:function(t,e){return(t=this.getMatterBodies(t)).forEach((function(t){t.collisionFilter.group=e})),this},setCollidesWith:function(t,e){t=this.getMatterBodies(t);var i=0;if(Array.isArray(e))for(var n=0;n<e.length;n++)i|=e[n];else i=e;return t.forEach((function(t){t.collisionFilter.mask=i})),this},getMatterBodies:function(t){if(!t)return this.world.getAllBodies();Array.isArray(t)||(t=[t]);for(var e=[],i=0;i<t.length;i++){var n=t[i].hasOwnProperty("body")?t[i].body:t[i];e.push(n)}return e},setVelocity:function(t,e,i){t=this.getMatterBodies(t);var n=this._tempVec2;return n.x=e,n.y=i,t.forEach((function(t){o.setVelocity(t,n)})),this},setVelocityX:function(t,e){t=this.getMatterBodies(t);var i=this._tempVec2;return i.x=e,t.forEach((function(t){i.y=t.velocity.y,o.setVelocity(t,i)})),this},setVelocityY:function(t,e){t=this.getMatterBodies(t);var i=this._tempVec2;return i.y=e,t.forEach((function(t){i.x=t.velocity.x,o.setVelocity(t,i)})),this},setAngularVelocity:function(t,e){return(t=this.getMatterBodies(t)).forEach((function(t){o.setAngularVelocity(t,e)})),this},applyForce:function(t,e){t=this.getMatterBodies(t);var i=this._tempVec2;return t.forEach((function(t){i.x=t.position.x,i.y=t.position.y,o.applyForce(t,i,e)})),this},applyForceFromPosition:function(t,e,i,n){t=this.getMatterBodies(t);var r=this._tempVec2;return t.forEach((function(t){void 0===n&&(n=t.angle),r.x=i*Math.cos(n),r.y=i*Math.sin(n),o.applyForce(t,e,r)})),this},applyForceFromAngle:function(t,e,i){t=this.getMatterBodies(t);var n=this._tempVec2;return t.forEach((function(t){void 0===i&&(i=t.angle),n.x=e*Math.cos(i),n.y=e*Math.sin(i),o.applyForce(t,{x:t.position.x,y:t.position.y},n)})),this},getConstraintLength:function(t){var e=t.pointA.x,i=t.pointA.y,n=t.pointB.x,r=t.pointB.y;return t.bodyA&&(e+=t.bodyA.position.x,i+=t.bodyA.position.y),t.bodyB&&(n+=t.bodyB.position.x,r+=t.bodyB.position.y),f(e,i,n,r)},alignBody:function(t,e,i,r){var s;switch(t=t.hasOwnProperty("body")?t.body:t,r){case n.TOP_LEFT:case n.LEFT_TOP:s=this.bodyBounds.getTopLeft(t,e,i);break;case n.TOP_CENTER:s=this.bodyBounds.getTopCenter(t,e,i);break;case n.TOP_RIGHT:case n.RIGHT_TOP:s=this.bodyBounds.getTopRight(t,e,i);break;case n.LEFT_CENTER:s=this.bodyBounds.getLeftCenter(t,e,i);break;case n.CENTER:s=this.bodyBounds.getCenter(t,e,i);break;case n.RIGHT_CENTER:s=this.bodyBounds.getRightCenter(t,e,i);break;case n.LEFT_BOTTOM:case n.BOTTOM_LEFT:s=this.bodyBounds.getBottomLeft(t,e,i);break;case n.BOTTOM_CENTER:s=this.bodyBounds.getBottomCenter(t,e,i);break;case n.BOTTOM_RIGHT:case n.RIGHT_BOTTOM:s=this.bodyBounds.getBottomRight(t,e,i)}return s&&o.setPosition(t,s),this},shutdown:function(){var t=this.systems.events;this.world&&(t.off(C.UPDATE,this.world.update,this.world),t.off(C.POST_UPDATE,this.world.postUpdate,this.world)),t.off(C.SHUTDOWN,this.shutdown,this),this.add&&this.add.destroy(),this.world&&this.world.destroy(),this.add=null,this.world=null},destroy:function(){this.shutdown(),this.scene.sys.events.off(C.START,this.start,this),this.scene=null,this.systems=null}});L.register("MatterPhysics",Y,"matterPhysics"),t.exports=Y},1731:(t,e,i)=>{var n=i(23765),r=i(47379),s=i(86845),o=i(90554),a=i(81769),h=i(76923),u=i(95681),l=i(57148),c=new r({Extends:u,Mixins:[s.Bounce,s.Collision,s.Force,s.Friction,s.Gravity,s.Mass,s.Sensor,s.SetBody,s.Sleep,s.Static,s.Transform,s.Velocity,h],initialize:function(t,e,i,r,s,h){o.call(this,t.scene,"Sprite"),this.anims=new n(this),this.setTexture(r,s),this.setSizeToFrame(),this.setOrigin(),this.world=t,this._tempVec2=new l(e,i);var u=a(h,"shape",null);u?this.setBody(u,h):this.setRectangle(this.width,this.height,h),this.setPosition(e,i),this.initPipeline("TextureTintPipeline")}});t.exports=c},57564:(t,e,i)=>{var n=i(41422),r=i(32663),s=i(47379),o=i(86845),a=i(17168),h=i(81769),u=i(64036),l=i(65714),c=new s({Extends:a,Mixins:[o.Bounce,o.Collision,o.Friction,o.Gravity,o.Mass,o.Sensor,o.Sleep,o.Static],initialize:function(t,e,i){a.call(this),this.tile=e,this.world=t,e.physics.matterBody&&e.physics.matterBody.destroy(),e.physics.matterBody=this;var n=h(i,"body",null),r=h(i,"addToWorld",!0);if(n)this.setBody(n,r);else{var s=e.getCollisionGroup();h(s,"objects",[]).length>0?this.setFromTileCollision(i):this.setFromTileRectangle(i)}},setFromTileRectangle:function(t){void 0===t&&(t={}),u(t,"isStatic")||(t.isStatic=!0),u(t,"addToWorld")||(t.addToWorld=!0);var e=this.tile.getBounds(),i=e.x+e.width/2,r=e.y+e.height/2,s=n.rectangle(i,r,e.width,e.height,t);return this.setBody(s,t.addToWorld),this},setFromTileCollision:function(t){void 0===t&&(t={}),u(t,"isStatic")||(t.isStatic=!0),u(t,"addToWorld")||(t.addToWorld=!0);for(var e=this.tile.tilemapLayer.scaleX,i=this.tile.tilemapLayer.scaleY,s=this.tile.getLeft(),o=this.tile.getTop(),a=this.tile.getCollisionGroup(),c=h(a,"objects",[]),d=[],p=0;p<c.length;p++){var f=c[p],m=s+f.x*e,v=o+f.y*i,g=f.width*e,y=f.height*i,_=null;if(f.rectangle)_=n.rectangle(m+g/2,v+y/2,g,y,t);else if(f.ellipse)_=n.circle(m+g/2,v+y/2,g/2,t);else if(f.polygon||f.polyline){var x=(f.polygon?f.polygon:f.polyline).map((function(t){return{x:t.x*e,y:t.y*i}})),b=l.create(x),w=l.centre(b);m+=w.x,v+=w.y,_=n.fromVertices(m,v,b,t)}_&&d.push(_)}return 1===d.length?this.setBody(d[0],t.addToWorld):d.length>1&&(t.parts=d,this.setBody(r.create(t),t.addToWorld)),this},setBody:function(t,e){return void 0===e&&(e=!0),this.body&&this.removeBody(),this.body=t,this.body.gameObject=this,e&&this.world.add(this.body),this},removeBody:function(){return this.body&&(this.world.remove(this.body),this.body.gameObject=void 0,this.body=void 0),this},destroy:function(){this.removeBody(),this.tile.physics.matterBody=void 0,this.removeAllListeners()}});t.exports=c},49765:(t,e,i)=>{var n=i(41422),r=i(32663),s=i(13991),o=i(81769),a=i(65714),h={parseBody:function(t,e,i,n){void 0===n&&(n={});for(var a=o(i,"fixtures",[]),h=[],u=0;u<a.length;u++)for(var l=this.parseFixture(a[u]),c=0;c<l.length;c++)h.push(l[c]);var d=s.clone(i,!0);s.extend(d,n,!0),delete d.fixtures,delete d.type;var p=r.create(d);return r.setParts(p,h),r.setPosition(p,{x:t,y:e}),p},parseFixture:function(t){var e,i=s.extend({},!1,t);if(delete i.circle,delete i.vertices,t.circle){var r=o(t.circle,"x"),a=o(t.circle,"y"),h=o(t.circle,"radius");e=[n.circle(r,a,h,i)]}else t.vertices&&(e=this.parseVertices(t.vertices,i));return e},parseVertices:function(t,e){void 0===e&&(e={});for(var i=[],o=0;o<t.length;o++)a.clockwiseSort(t[o]),i.push(r.create(s.extend({position:a.centre(t[o]),vertices:t[o]},e)));return n.flagCoincidentParts(i)}};t.exports=h},88470:(t,e,i)=>{var n=i(41422),r=i(32663),s={parseBody:function(t,e,i,s){var o;void 0===s&&(s={});var a=i.vertices;if(1===a.length)s.vertices=a[0],o=r.create(s),n.flagCoincidentParts(o.parts);else{for(var h=[],u=0;u<a.length;u++){var l=r.create({vertices:a[u]});h.push(l)}n.flagCoincidentParts(h),s.parts=h,o=r.create(s)}return o.label=i.label,r.setPosition(o,{x:t,y:e}),o}};t.exports=s},58691:(t,e,i)=>{var n=i(17983),r=i(47379),s=i(69643),o=i(69436),a=i(17964),h=i(52712),u=i(22620),l=i(92974),c=i(59114),d=i(57148),p=i(65714),f=new r({initialize:function(t,e,i){void 0===i&&(i={});this.scene=t,this.world=e,this.camera=null,this.pointer=null,this.active=!0,this.position=new d,this.body=null,this.part=null,this.constraint=o.create(l(i,{label:"Pointer Constraint",pointA:{x:0,y:0},pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,collisionFilter:{category:1,mask:4294967295,group:0}})),this.world.on(h.BEFORE_UPDATE,this.update,this),t.sys.input.on(u.POINTER_DOWN,this.onDown,this),t.sys.input.on(u.POINTER_UP,this.onUp,this)},onDown:function(t){this.pointer||(this.pointer=t,this.camera=t.camera)},onUp:function(t){t===this.pointer&&(this.pointer=null)},getBody:function(t){var e=this.position,i=this.constraint;this.camera.getWorldPoint(t.x,t.y,e);for(var r=s.allBodies(this.world.localWorld),o=0;o<r.length;o++){var u=r[o];if(!u.ignorePointer&&n.contains(u.bounds,e)&&a.canCollide(u.collisionFilter,i.collisionFilter)&&this.hitTestBody(u,e))return this.world.emit(h.DRAG_START,u,this.part,this),!0}return!1},hitTestBody:function(t,e){for(var i=this.constraint,n=t.parts.length,r=n>1?1:0;r<n;r++){var s=t.parts[r];if(p.contains(s.vertices,e))return i.pointA=e,i.pointB={x:e.x-t.position.x,y:e.y-t.position.y},i.bodyB=t,i.angleB=t.angle,c.set(t,!1),this.part=s,this.body=t,!0}return!1},update:function(){var t=this.pointer,e=this.body;if(this.active&&t)if(t.isDown||!e){if(t.isDown){if(!e&&!this.getBody(t))return;e=this.body;var i=this.position,n=this.constraint;this.camera.getWorldPoint(t.x,t.y,i),n.pointA.x=i.x,n.pointA.y=i.y,c.set(e,!1),this.world.emit(h.DRAG,e,this)}}else this.stopDrag();else e&&this.stopDrag()},stopDrag:function(){var t=this.body,e=this.constraint;e.bodyB=null,e.pointB=null,this.pointer=null,this.body=null,this.part=null,t&&this.world.emit(h.DRAG_END,t,this)},destroy:function(){this.world.removeConstraint(this.constraint),this.pointer=null,this.constraint=null,this.body=null,this.part=null,this.world.off(h.BEFORE_UPDATE,this.update),this.scene.sys.input.off(u.POINTER_DOWN,this.onDown,this),this.scene.sys.input.off(u.POINTER_UP,this.onUp,this)}});t.exports=f},41491:(t,e,i)=>{var n=i(41422),r=i(32663),s=i(47379),o=i(13991),a=i(69643),h=i(10153),u=i(17168),l=i(52712),c=i(81769),d=i(86652),p=i(32663),f=i(84900),m=i(57564),v=i(36606),g=i(39646),y=new s({Extends:u,initialize:function(t,e){u.call(this),this.scene=t,this.engine=h.create(e),this.localWorld=this.engine.world;var i=d(e,"gravity",null);i?this.setGravity(i.x,i.y,i.scale):!1===i&&this.setGravity(0,0,0),this.walls={left:null,right:null,top:null,bottom:null},this.enabled=d(e,"enabled",!0),this.correction=d(e,"correction",1),this.getDelta=d(e,"getDelta",this.update60Hz);var n=c(e,"runner",{}),r=c(n,"fps",!1),s=c(n,"fps",60),o=c(n,"delta",1e3/s),a=c(n,"deltaMin",1e3/s),l=c(n,"deltaMax",1e3/(.5*s));r||(s=1e3/o),this.runner={fps:s,correction:c(n,"correction",1),deltaSampleSize:c(n,"deltaSampleSize",60),counterTimestamp:0,frameCounter:0,deltaHistory:[],timePrev:null,timeScalePrev:1,frameRequestId:null,isFixed:c(n,"isFixed",!1),delta:o,deltaMin:a,deltaMax:l},this.autoUpdate=d(e,"autoUpdate",!0);var p=d(e,"debug",!1);if(this.drawDebug="object"==typeof p||p,this.debugGraphic,this.debugConfig={showAxes:c(p,"showAxes",!1),showAngleIndicator:c(p,"showAngleIndicator",!1),angleColor:c(p,"angleColor",15208787),showBroadphase:c(p,"showBroadphase",!1),broadphaseColor:c(p,"broadphaseColor",16757760),showBounds:c(p,"showBounds",!1),boundsColor:c(p,"boundsColor",16777215),showVelocity:c(p,"showVelocity",!1),velocityColor:c(p,"velocityColor",44783),showCollisions:c(p,"showCollisions",!1),collisionColor:c(p,"collisionColor",16094476),showSeparations:c(p,"showSeparations",!1),separationColor:c(p,"separationColor",16753920),showBody:c(p,"showBody",!0),showStaticBody:c(p,"showStaticBody",!0),showInternalEdges:c(p,"showInternalEdges",!1),renderFill:c(p,"renderFill",!1),renderLine:c(p,"renderLine",!0),fillColor:c(p,"fillColor",1075465),fillOpacity:c(p,"fillOpacity",1),lineColor:c(p,"lineColor",2678297),lineOpacity:c(p,"lineOpacity",1),lineThickness:c(p,"lineThickness",1),staticFillColor:c(p,"staticFillColor",857979),staticLineColor:c(p,"staticLineColor",1255396),showSleeping:c(p,"showSleeping",!1),staticBodySleepOpacity:c(p,"staticBodySleepOpacity",.7),sleepFillColor:c(p,"sleepFillColor",4605510),sleepLineColor:c(p,"sleepLineColor",10066585),showSensors:c(p,"showSensors",!0),sensorFillColor:c(p,"sensorFillColor",857979),sensorLineColor:c(p,"sensorLineColor",1255396),showPositions:c(p,"showPositions",!0),positionSize:c(p,"positionSize",4),positionColor:c(p,"positionColor",14697178),showJoint:c(p,"showJoint",!0),jointColor:c(p,"jointColor",14737474),jointLineOpacity:c(p,"jointLineOpacity",1),jointLineThickness:c(p,"jointLineThickness",2),pinSize:c(p,"pinSize",4),pinColor:c(p,"pinColor",4382944),springColor:c(p,"springColor",14697184),anchorColor:c(p,"anchorColor",15724527),anchorSize:c(p,"anchorSize",4),showConvexHulls:c(p,"showConvexHulls",!1),hullColor:c(p,"hullColor",14091216)},this.drawDebug&&this.createDebugGraphic(),this.setEventsProxy(),c(e,"setBounds",!1)){var f=e.setBounds;if("boolean"==typeof f)this.setBounds();else{var m=c(f,"x",0),v=c(f,"y",0),g=c(f,"width",t.sys.scale.width),y=c(f,"height",t.sys.scale.height),_=c(f,"thickness",64),x=c(f,"left",!0),b=c(f,"right",!0),w=c(f,"top",!0),T=c(f,"bottom",!0);this.setBounds(m,v,g,y,_,x,b,w,T)}}},setCompositeRenderStyle:function(t){var e,i,n,r=t.bodies,s=t.constraints,o=t.composites;for(e=0;e<r.length;e++)n=(i=r[e]).render,this.setBodyRenderStyle(i,n.lineColor,n.lineOpacity,n.lineThickness,n.fillColor,n.fillOpacity);for(e=0;e<s.length;e++)n=(i=s[e]).render,this.setConstraintRenderStyle(i,n.lineColor,n.lineOpacity,n.lineThickness,n.pinSize,n.anchorColor,n.anchorSize);for(e=0;e<o.length;e++)i=o[e],this.setCompositeRenderStyle(i);return this},setBodyRenderStyle:function(t,e,i,n,r,s){var o=t.render,a=this.debugConfig;return o?(null==e&&(e=t.isStatic?a.staticLineColor:a.lineColor),null==i&&(i=a.lineOpacity),null==n&&(n=a.lineThickness),null==r&&(r=t.isStatic?a.staticFillColor:a.fillColor),null==s&&(s=a.fillOpacity),!1!==e&&(o.lineColor=e),!1!==i&&(o.lineOpacity=i),!1!==n&&(o.lineThickness=n),!1!==r&&(o.fillColor=r),!1!==s&&(o.fillOpacity=s),this):this},setConstraintRenderStyle:function(t,e,i,n,r,s,o){var a=t.render,h=this.debugConfig;if(!a)return this;if(null==e){var u=a.type;"line"===u?e=h.jointColor:"pin"===u?e=h.pinColor:"spring"===u&&(e=h.springColor)}return null==i&&(i=h.jointLineOpacity),null==n&&(n=h.jointLineThickness),null==r&&(r=h.pinSize),null==s&&(s=h.anchorColor),null==o&&(o=h.anchorSize),!1!==e&&(a.lineColor=e),!1!==i&&(a.lineOpacity=i),!1!==n&&(a.lineThickness=n),!1!==r&&(a.pinSize=r),!1!==s&&(a.anchorColor=s),!1!==o&&(a.anchorSize=o),this},setEventsProxy:function(){var t=this,e=this.engine,i=this.localWorld;this.drawDebug&&(f.on(i,"compositeModified",(function(e){t.setCompositeRenderStyle(e)})),f.on(i,"beforeAdd",(function(e){for(var i=[].concat(e.object),n=0;n<i.length;n++){var r=i[n],s=r.render;"body"===r.type?t.setBodyRenderStyle(r,s.lineColor,s.lineOpacity,s.lineThickness,s.fillColor,s.fillOpacity):"composite"===r.type?t.setCompositeRenderStyle(r):"constraint"===r.type&&t.setConstraintRenderStyle(r,s.lineColor,s.lineOpacity,s.lineThickness,s.pinSize,s.anchorColor,s.anchorSize)}}))),f.on(i,"beforeAdd",(function(e){t.emit(l.BEFORE_ADD,e)})),f.on(i,"afterAdd",(function(e){t.emit(l.AFTER_ADD,e)})),f.on(i,"beforeRemove",(function(e){t.emit(l.BEFORE_REMOVE,e)})),f.on(i,"afterRemove",(function(e){t.emit(l.AFTER_REMOVE,e)})),f.on(e,"beforeUpdate",(function(e){t.emit(l.BEFORE_UPDATE,e)})),f.on(e,"afterUpdate",(function(e){t.emit(l.AFTER_UPDATE,e)})),f.on(e,"collisionStart",(function(e){var i,n,r=e.pairs;r.length>0&&(i=r[0].bodyA,n=r[0].bodyB),t.emit(l.COLLISION_START,e,i,n)})),f.on(e,"collisionActive",(function(e){var i,n,r=e.pairs;r.length>0&&(i=r[0].bodyA,n=r[0].bodyB),t.emit(l.COLLISION_ACTIVE,e,i,n)})),f.on(e,"collisionEnd",(function(e){var i,n,r=e.pairs;r.length>0&&(i=r[0].bodyA,n=r[0].bodyB),t.emit(l.COLLISION_END,e,i,n)}))},setBounds:function(t,e,i,n,r,s,o,a,h){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=this.scene.sys.scale.width),void 0===n&&(n=this.scene.sys.scale.height),void 0===r&&(r=64),void 0===s&&(s=!0),void 0===o&&(o=!0),void 0===a&&(a=!0),void 0===h&&(h=!0),this.updateWall(s,"left",t-r,e-r,r,n+2*r),this.updateWall(o,"right",t+i,e-r,r,n+2*r),this.updateWall(a,"top",t,e-r,i,r),this.updateWall(h,"bottom",t,e+n,i,r),this},updateWall:function(t,e,i,n,r,s){var o=this.walls[e];t?(o&&v.remove(this.localWorld,o),i+=r/2,n+=s/2,this.walls[e]=this.create(i,n,r,s,{isStatic:!0,friction:0,frictionStatic:0})):(o&&v.remove(this.localWorld,o),this.walls[e]=null)},createDebugGraphic:function(){var t=this.scene.sys.add.graphics({x:0,y:0});return t.setDepth(Number.MAX_VALUE),this.debugGraphic=t,this.drawDebug=!0,t},disableGravity:function(){return this.localWorld.gravity.x=0,this.localWorld.gravity.y=0,this.localWorld.gravity.scale=0,this},setGravity:function(t,e,i){return void 0===t&&(t=0),void 0===e&&(e=1),this.localWorld.gravity.x=t,this.localWorld.gravity.y=e,void 0!==i&&(this.localWorld.gravity.scale=i),this},create:function(t,e,i,r,s){var o=n.rectangle(t,e,i,r,s);return v.add(this.localWorld,o),o},add:function(t){return v.add(this.localWorld,t),this},remove:function(t,e){Array.isArray(t)||(t=[t]);for(var i=0;i<t.length;i++){var n=t[i],r=n.body?n.body:n;a.remove(this.localWorld,r,e)}return this},removeConstraint:function(t,e){return a.remove(this.localWorld,t,e),this},convertTilemapLayer:function(t,e){var i=t.layer,n=t.getTilesWithin(0,0,i.width,i.height,{isColliding:!0});return this.convertTiles(n,e),this},convertTiles:function(t,e){if(0===t.length)return this;for(var i=0;i<t.length;i++)new m(this,t[i],e);return this},nextGroup:function(t){return p.nextGroup(t)},nextCategory:function(){return p.nextCategory()},pause:function(){return this.enabled=!1,this.emit(l.PAUSE),this},resume:function(){return this.enabled=!0,this.emit(l.RESUME),this},update:function(t,e){if(this.enabled&&this.autoUpdate){var i=this.engine,n=this.runner,r=i.timing,s=this.correction;n.isFixed?e=this.getDelta(t,e):(e=t-n.timePrev||n.delta,n.timePrev=t,n.deltaHistory.push(e),n.deltaHistory=n.deltaHistory.slice(-n.deltaSampleSize),s=(e=(e=(e=Math.min.apply(null,n.deltaHistory))<n.deltaMin?n.deltaMin:e)>n.deltaMax?n.deltaMax:e)/n.delta,n.delta=e),0!==n.timeScalePrev&&(s*=r.timeScale/n.timeScalePrev),0===r.timeScale&&(s=0),n.timeScalePrev=r.timeScale,n.correction=s,n.frameCounter+=1,t-n.counterTimestamp>=1e3&&(n.fps=n.frameCounter*((t-n.counterTimestamp)/1e3),n.counterTimestamp=t,n.frameCounter=0),h.update(i,e,s)}},step:function(t,e){h.update(this.engine,t,e)},update60Hz:function(){return 1e3/60},update30Hz:function(){return 1e3/30},has:function(t){var e=t.hasOwnProperty("body")?t.body:t;return null!==a.get(this.localWorld,e.id,e.type)},getAllBodies:function(){return a.allBodies(this.localWorld)},getAllConstraints:function(){return a.allConstraints(this.localWorld)},getAllComposites:function(){return a.allComposites(this.localWorld)},postUpdate:function(){if(this.drawDebug){var t=this.debugConfig,e=this.engine,i=this.debugGraphic,n=a.allBodies(this.localWorld);this.debugGraphic.clear(),t.showBroadphase&&e.broadphase.controller&&this.renderGrid(e.broadphase,i,t.broadphaseColor,.5),t.showBounds&&this.renderBodyBounds(n,i,t.boundsColor,.5),(t.showBody||t.showStaticBody)&&this.renderBodies(n),t.showJoint&&this.renderJoints(),(t.showAxes||t.showAngleIndicator)&&this.renderBodyAxes(n,i,t.showAxes,t.angleColor,.5),t.showVelocity&&this.renderBodyVelocity(n,i,t.velocityColor,1,2),t.showSeparations&&this.renderSeparations(e.pairs.list,i,t.separationColor),t.showCollisions&&this.renderCollisions(e.pairs.list,i,t.collisionColor)}},renderGrid:function(t,e,i,n){e.lineStyle(1,i,n);for(var r=o.keys(t.buckets),s=0;s<r.length;s++){var a=r[s];if(!(t.buckets[a].length<2)){var h=a.split(/C|R/);e.strokeRect(parseInt(h[1],10)*t.bucketWidth,parseInt(h[2],10)*t.bucketHeight,t.bucketWidth,t.bucketHeight)}}return this},renderSeparations:function(t,e,i){e.lineStyle(1,i,1);for(var n=0;n<t.length;n++){var r=t[n];if(r.isActive){var s=r.collision,o=s.bodyA,a=s.bodyB,h=o.position,u=a.position,l=s.penetration,c=o.isStatic||a.isStatic?1:4;a.isStatic&&(c=0),e.lineBetween(u.x,u.y,u.x-l.x*c,u.y-l.y*c),c=o.isStatic||a.isStatic?1:4,o.isStatic&&(c=0),e.lineBetween(h.x,h.y,h.x-l.x*c,h.y-l.y*c)}}return this},renderCollisions:function(t,e,i){var n,r;for(e.lineStyle(1,i,.5),e.fillStyle(i,1),n=0;n<t.length;n++)if((r=t[n]).isActive)for(var s=0;s<r.activeContacts.length;s++){var o=r.activeContacts[s].vertex;e.fillRect(o.x-2,o.y-2,5,5)}for(n=0;n<t.length;n++)if((r=t[n]).isActive){var a=r.collision,h=r.activeContacts;if(h.length>0){var u=h[0].vertex.x,l=h[0].vertex.y;2===h.length&&(u=(h[0].vertex.x+h[1].vertex.x)/2,l=(h[0].vertex.y+h[1].vertex.y)/2),a.bodyB===a.supports[0].body||a.bodyA.isStatic?e.lineBetween(u-8*a.normal.x,l-8*a.normal.y,u,l):e.lineBetween(u+8*a.normal.x,l+8*a.normal.y,u,l)}}return this},renderBodyBounds:function(t,e,i,n){e.lineStyle(1,i,n);for(var r=0;r<t.length;r++){var s=t[r];if(s.render.visible){var o=s.bounds;if(o)e.strokeRect(o.min.x,o.min.y,o.max.x-o.min.x,o.max.y-o.min.y);else for(var a=s.parts,h=a.length>1?1:0;h<a.length;h++){var u=a[h];e.strokeRect(u.bounds.min.x,u.bounds.min.y,u.bounds.max.x-u.bounds.min.x,u.bounds.max.y-u.bounds.min.y)}}}return this},renderBodyAxes:function(t,e,i,n,r){e.lineStyle(1,n,r);for(var s=0;s<t.length;s++){var o,a,h,u=t[s],l=u.parts;if(u.render.visible)if(i)for(a=l.length>1?1:0;a<l.length;a++)for(o=l[a],h=0;h<o.axes.length;h++){var c=o.axes[h];e.lineBetween(o.position.x,o.position.y,o.position.x+20*c.x,o.position.y+20*c.y)}else for(a=l.length>1?1:0;a<l.length;a++)for(o=l[a],h=0;h<o.axes.length;h++)e.lineBetween(o.position.x,o.position.y,(o.vertices[0].x+o.vertices[o.vertices.length-1].x)/2,(o.vertices[0].y+o.vertices[o.vertices.length-1].y)/2)}return this},renderBodyVelocity:function(t,e,i,n,r){e.lineStyle(r,i,n);for(var s=0;s<t.length;s++){var o=t[s];o.render.visible&&e.lineBetween(o.position.x,o.position.y,o.position.x+2*(o.position.x-o.positionPrev.x),o.position.y+2*(o.position.y-o.positionPrev.y))}return this},renderBodies:function(t){for(var e=this.debugGraphic,i=this.debugConfig,n=i.showBody,r=i.showStaticBody,s=i.showSleeping,o=i.showInternalEdges,a=i.showConvexHulls,h=i.renderFill,u=i.renderLine,l=i.staticBodySleepOpacity,c=i.sleepFillColor,d=i.sleepLineColor,p=i.hullColor,f=0;f<t.length;f++){var m=t[f];if(m.render.visible&&((r||!m.isStatic)&&(n||m.isStatic))){var v=m.render.lineColor,g=m.render.lineOpacity,y=m.render.lineThickness,_=m.render.fillColor,x=m.render.fillOpacity;s&&m.isSleeping&&(m.isStatic?(g*=l,x*=l):(v=d,_=c)),h||(_=null),u||(v=null),this.renderBody(m,e,o,v,g,y,_,x);var b=m.parts.length;a&&b>1&&this.renderConvexHull(m,e,p,y)}}},renderBody:function(t,e,i,n,r,s,o,a){void 0===n&&(n=null),void 0===r&&(r=null),void 0===s&&(s=1),void 0===o&&(o=null),void 0===a&&(a=null);for(var h=this.debugConfig,u=h.sensorFillColor,l=h.sensorLineColor,c=t.parts,d=c.length,p=d>1?1:0;p<d;p++){var f=c[p],m=f.render,v=m.opacity;if(m.visible&&0!==v&&(!f.isSensor||h.showSensors)){var g=f.circleRadius;if(e.beginPath(),f.isSensor?(null!==o&&e.fillStyle(u,a*v),null!==n&&e.lineStyle(s,l,r*v)):(null!==o&&e.fillStyle(o,a*v),null!==n&&e.lineStyle(s,n,r*v)),g)e.arc(f.position.x,f.position.y,g,0,2*Math.PI);else{var y=f.vertices,_=y.length;e.moveTo(y[0].x,y[0].y);for(var x=1;x<_;x++){var b=y[x];if(!y[x-1].isInternal||i?e.lineTo(b.x,b.y):e.moveTo(b.x,b.y),x<_&&b.isInternal&&!i){var w=(x+1)%_;e.moveTo(y[w].x,y[w].y)}}e.closePath()}null!==o&&e.fillPath(),null!==n&&e.strokePath()}}if(h.showPositions&&!t.isStatic){var T=t.position.x,M=t.position.y,S=Math.ceil(h.positionSize/2);e.fillStyle(h.positionColor,1),e.fillRect(T-S,M-S,h.positionSize,h.positionSize)}return this},renderConvexHull:function(t,e,i,n){if(void 0===n&&(n=1),t.parts.length>1){var r=t.vertices;e.lineStyle(n,i),e.beginPath(),e.moveTo(r[0].x,r[0].y);for(var s=1;s<r.length;s++)e.lineTo(r[s].x,r[s].y);e.lineTo(r[0].x,r[0].y),e.strokePath()}return this},renderJoints:function(){for(var t=this.debugGraphic,e=a.allConstraints(this.localWorld),i=0;i<e.length;i++){var n=e[i].render,r=n.lineColor,s=n.lineOpacity,o=n.lineThickness,h=n.pinSize,u=n.anchorColor,l=n.anchorSize;this.renderConstraint(e[i],t,r,s,o,h,u,l)}},renderConstraint:function(t,e,i,n,r,s,a,h){var u=t.render;if(!u.visible||!t.pointA||!t.pointB)return this;e.lineStyle(r,i,n);var l,c,d=t.bodyA,p=t.bodyB;if(l=d?g.add(d.position,t.pointA):t.pointA,"pin"===u.type)e.strokeCircle(l.x,l.y,s);else{if(c=p?g.add(p.position,t.pointB):t.pointB,e.beginPath(),e.moveTo(l.x,l.y),"spring"===u.type)for(var f,m=g.sub(c,l),v=g.perp(g.normalise(m)),y=Math.ceil(o.clamp(t.length/5,12,20)),_=1;_<y;_+=1)f=_%2==0?1:-1,e.lineTo(l.x+m.x*(_/y)+v.x*f*4,l.y+m.y*(_/y)+v.y*f*4);e.lineTo(c.x,c.y)}return e.strokePath(),u.anchors&&h>0&&(e.fillStyle(a),e.fillCircle(l.x,l.y,h),e.fillCircle(c.x,c.y,h)),this},resetCollisionIDs:function(){return r._nextCollidingGroupId=1,r._nextNonCollidingGroupId=-1,r._nextCategory=1,this},shutdown:function(){f.off(this.engine),this.removeAllListeners(),v.clear(this.localWorld,!1),h.clear(this.engine),this.drawDebug&&this.debugGraphic.destroy()},destroy:function(){this.shutdown()}});t.exports=y},58048:t=>{t.exports={setBounce:function(t){return this.body.restitution=t,this}}},90852:t=>{var e={setCollisionCategory:function(t){return this.body.collisionFilter.category=t,this},setCollisionGroup:function(t){return this.body.collisionFilter.group=t,this},setCollidesWith:function(t){var e=0;if(Array.isArray(t))for(var i=0;i<t.length;i++)e|=t[i];else e=t;return this.body.collisionFilter.mask=e,this},setOnCollide:function(t){return this.body.onCollideCallback=t,this},setOnCollideEnd:function(t){return this.body.onCollideEndCallback=t,this},setOnCollideActive:function(t){return this.body.onCollideActiveCallback=t,this},setOnCollideWith:function(t,e){Array.isArray(t)||(t=[t]);for(var i=0;i<t.length;i++){var n=t[i].hasOwnProperty("body")?t[i].body:t[i];this.body.setOnCollideWith(n,e)}return this}};t.exports=e},75287:(t,e,i)=>{var n=i(32663),r={applyForce:function(t){return this._tempVec2.set(this.body.position.x,this.body.position.y),n.applyForce(this.body,this._tempVec2,t),this},applyForceFrom:function(t,e){return n.applyForce(this.body,t,e),this},thrust:function(t){var e=this.body.angle;return this._tempVec2.set(t*Math.cos(e),t*Math.sin(e)),n.applyForce(this.body,{x:this.body.position.x,y:this.body.position.y},this._tempVec2),this},thrustLeft:function(t){var e=this.body.angle-Math.PI/2;return this._tempVec2.set(t*Math.cos(e),t*Math.sin(e)),n.applyForce(this.body,{x:this.body.position.x,y:this.body.position.y},this._tempVec2),this},thrustRight:function(t){var e=this.body.angle+Math.PI/2;return this._tempVec2.set(t*Math.cos(e),t*Math.sin(e)),n.applyForce(this.body,{x:this.body.position.x,y:this.body.position.y},this._tempVec2),this},thrustBack:function(t){var e=this.body.angle-Math.PI;return this._tempVec2.set(t*Math.cos(e),t*Math.sin(e)),n.applyForce(this.body,{x:this.body.position.x,y:this.body.position.y},this._tempVec2),this}};t.exports=r},69289:t=>{var e={setFriction:function(t,e,i){return this.body.friction=t,void 0!==e&&(this.body.frictionAir=e),void 0!==i&&(this.body.frictionStatic=i),this},setFrictionAir:function(t){return this.body.frictionAir=t,this},setFrictionStatic:function(t){return this.body.frictionStatic=t,this}};t.exports=e},41568:t=>{t.exports={setIgnoreGravity:function(t){return this.body.ignoreGravity=t,this}}},16272:(t,e,i)=>{var n=i(32663),r=i(57148),s={setMass:function(t){return n.setMass(this.body,t),this},setDensity:function(t){return n.setDensity(this.body,t),this},centerOfMass:{get:function(){return new r(this.body.centerOfMass.x,this.body.centerOfMass.y)}}};t.exports=s},20602:t=>{t.exports={setSensor:function(t){return this.body.isSensor=t,this},isSensor:function(){return this.body.isSensor}}},27823:(t,e,i)=>{var n=i(41422),r=i(32663),s=i(70077),o=i(81769),a=i(49765),h=i(88470),u=i(65714),l={setRectangle:function(t,e,i){return this.setBody({type:"rectangle",width:t,height:e},i)},setCircle:function(t,e){return this.setBody({type:"circle",radius:t},e)},setPolygon:function(t,e,i){return this.setBody({type:"polygon",sides:e,radius:t},i)},setTrapezoid:function(t,e,i,n){return this.setBody({type:"trapezoid",width:t,height:e,slope:i},n)},setExistingBody:function(t,e){void 0===e&&(e=!0),this.body&&this.world.remove(this.body,!0),this.body=t;for(var i=0;i<t.parts.length;i++)t.parts[i].gameObject=this;var n=this;if(t.destroy=function(){n.world.remove(n.body,!0),n.body.gameObject=null},e&&(this.world.has(t)&&this.world.remove(t,!0),this.world.add(t)),this._originComponent){var r=t.render.sprite.xOffset,o=t.render.sprite.yOffset,a=t.centerOfMass.x,h=t.centerOfMass.y;if(s(a,.5)&&s(h,.5))this.setOrigin(r+.5,o+.5);else{var u=t.centerOffset.x,l=t.centerOffset.y;this.setOrigin(r+u/this.displayWidth,o+l/this.displayHeight)}}return this},setBody:function(t,e){if(!t)return this;var i;"string"==typeof t&&(t={type:t});var s=o(t,"type","rectangle"),l=o(t,"x",this._tempVec2.x),c=o(t,"y",this._tempVec2.y),d=o(t,"width",this.width),p=o(t,"height",this.height);switch(s){case"rectangle":i=n.rectangle(l,c,d,p,e);break;case"circle":var f=o(t,"radius",Math.max(d,p)/2),m=o(t,"maxSides",25);i=n.circle(l,c,f,e,m);break;case"trapezoid":var v=o(t,"slope",.5);i=n.trapezoid(l,c,d,p,v,e);break;case"polygon":var g=o(t,"sides",5),y=o(t,"radius",Math.max(d,p)/2);i=n.polygon(l,c,g,y,e);break;case"fromVertices":case"fromVerts":var _=o(t,"verts",null);if(_)if("string"==typeof _&&(_=u.fromPath(_)),this.body&&!this.body.hasOwnProperty("temp"))r.setVertices(this.body,_),i=this.body;else{var x=o(t,"flagInternal",!1),b=o(t,"removeCollinear",.01),w=o(t,"minimumArea",10);i=n.fromVertices(l,c,_,e,x,b,w)}break;case"fromPhysicsEditor":i=a.parseBody(l,c,t,e);break;case"fromPhysicsTracer":i=h.parseBody(l,c,t,e)}return i&&this.setExistingBody(i,t.addToWorld),this}};t.exports=l},56636:(t,e,i)=>{var n=i(52712),r=i(59114),s=i(84900),o={setToSleep:function(){r.set(this.body,!0)},setAwake:function(){r.set(this.body,!1)},setSleepThreshold:function(t){return void 0===t&&(t=60),this.body.sleepThreshold=t,this},setSleepEvents:function(t,e){return this.setSleepStartEvent(t),this.setSleepEndEvent(e),this},setSleepStartEvent:function(t){if(t){var e=this.world;s.on(this.body,"sleepStart",(function(t){e.emit(n.SLEEP_START,t,this)}))}else s.off(this.body,"sleepStart");return this},setSleepEndEvent:function(t){if(t){var e=this.world;s.on(this.body,"sleepEnd",(function(t){e.emit(n.SLEEP_END,t,this)}))}else s.off(this.body,"sleepEnd");return this}};t.exports=o},10359:(t,e,i)=>{var n=i(32663),r={setStatic:function(t){return n.setStatic(this.body,t),this},isStatic:function(){return this.body.isStatic}};t.exports=r},76875:(t,e,i)=>{var n=i(32663),r=i(14302),s=i(23882),o=i(74771),a={x:{get:function(){return this.body.position.x},set:function(t){this._tempVec2.set(t,this.y),n.setPosition(this.body,this._tempVec2)}},y:{get:function(){return this.body.position.y},set:function(t){this._tempVec2.set(this.x,t),n.setPosition(this.body,this._tempVec2)}},scaleX:{get:function(){return this._scaleX},set:function(t){var e=1/this._scaleX,i=1/this._scaleY;this._scaleX=t,0===this._scaleX?this.renderFlags&=-5:this.renderFlags|=4,n.scale(this.body,e,i),n.scale(this.body,t,this._scaleY)}},scaleY:{get:function(){return this._scaleY},set:function(t){var e=1/this._scaleX,i=1/this._scaleY;this._scaleY=t,0===this._scaleY?this.renderFlags&=-5:this.renderFlags|=4,n.scale(this.body,e,i),n.scale(this.body,this._scaleX,t)}},angle:{get:function(){return o(this.body.angle*r.RAD_TO_DEG)},set:function(t){this.rotation=o(t)*r.DEG_TO_RAD}},rotation:{get:function(){return this.body.angle},set:function(t){this._rotation=s(t),n.setAngle(this.body,this._rotation)}},setPosition:function(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this._tempVec2.set(t,e),n.setPosition(this.body,this._tempVec2),this},setRotation:function(t){return void 0===t&&(t=0),this._rotation=s(t),n.setAngle(this.body,t),this},setFixedRotation:function(){return n.setInertia(this.body,1/0),this},setAngle:function(t){return void 0===t&&(t=0),this.angle=t,n.setAngle(this.body,this.rotation),this},setScale:function(t,e,i){void 0===t&&(t=1),void 0===e&&(e=t);var r=1/this._scaleX,s=1/this._scaleY;return this._scaleX=t,this._scaleY=e,n.scale(this.body,r,s,i),n.scale(this.body,t,e,i),this}};t.exports=a},776:(t,e,i)=>{var n=i(32663),r={setAngularVelocity:function(t){return n.setAngularVelocity(this.body,t),this},setVelocityX:function(t){return this._tempVec2.set(t,this.body.velocity.y),n.setVelocity(this.body,this._tempVec2),this},setVelocityY:function(t){return this._tempVec2.set(this.body.velocity.x,t),n.setVelocity(this.body,this._tempVec2),this},setVelocity:function(t,e){return this._tempVec2.set(t,e),n.setVelocity(this.body,this._tempVec2),this}};t.exports=r},86845:(t,e,i)=>{t.exports={Bounce:i(58048),Collision:i(90852),Force:i(75287),Friction:i(69289),Gravity:i(41568),Mass:i(16272),Static:i(10359),Sensor:i(20602),SetBody:i(27823),Sleep:i(56636),Transform:i(76875),Velocity:i(776)}},18883:t=>{t.exports="afteradd"},94837:t=>{t.exports="afterremove"},54349:t=>{t.exports="afterupdate"},96325:t=>{t.exports="beforeadd"},7167:t=>{t.exports="beforeremove"},99692:t=>{t.exports="beforeupdate"},86882:t=>{t.exports="collisionactive"},8818:t=>{t.exports="collisionend"},61735:t=>{t.exports="collisionstart"},6644:t=>{t.exports="dragend"},4521:t=>{t.exports="drag"},26378:t=>{t.exports="dragstart"},44986:t=>{t.exports="pause"},95591:t=>{t.exports="resume"},48612:t=>{t.exports="sleepend"},95411:t=>{t.exports="sleepstart"},52712:(t,e,i)=>{t.exports={AFTER_ADD:i(18883),AFTER_REMOVE:i(94837),AFTER_UPDATE:i(54349),BEFORE_ADD:i(96325),BEFORE_REMOVE:i(7167),BEFORE_UPDATE:i(99692),COLLISION_ACTIVE:i(86882),COLLISION_END:i(8818),COLLISION_START:i(61735),DRAG_END:i(6644),DRAG:i(4521),DRAG_START:i(26378),PAUSE:i(44986),RESUME:i(95591),SLEEP_END:i(48612),SLEEP_START:i(95411)}},23903:(t,e,i)=>{t.exports={BodyBounds:i(34862),Factory:i(22718),Image:i(21372),Matter:i(97461),MatterPhysics:i(96506),PolyDecomp:i(6384),Sprite:i(1731),TileBody:i(57564),PhysicsEditorParser:i(49765),PhysicsJSONParser:i(88470),World:i(41491)}},32663:(t,e,i)=>{var n={};t.exports=n;var r=i(65714),s=i(39646),o=i(59114),a=i(13991),h=i(17983),u=i(58383);!function(){n._inertiaScale=4,n._nextCollidingGroupId=1,n._nextNonCollidingGroupId=-1,n._nextCategory=1,n.create=function(e){var i={id:a.nextId(),type:"body",label:"Body",parts:[],plugin:{},angle:0,vertices:null,position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},previousPositionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:!1,isStatic:!1,isSleeping:!1,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:4294967295,group:0},slop:.05,timeScale:1,events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inverseMass:0,inertia:0,inverseInertia:0,_original:null,render:{visible:!0,opacity:1,sprite:{xOffset:0,yOffset:0},fillColor:null,fillOpacity:null,lineColor:null,lineOpacity:null,lineThickness:null},gameObject:null,scale:{x:1,y:1},centerOfMass:{x:0,y:0},centerOffset:{x:0,y:0},gravityScale:{x:1,y:1},ignoreGravity:!1,ignorePointer:!1,onCollideCallback:null,onCollideEndCallback:null,onCollideActiveCallback:null,onCollideWith:{}};!e.hasOwnProperty("position")&&e.hasOwnProperty("vertices")?e.position=r.centre(e.vertices):e.hasOwnProperty("vertices")||(i.vertices=r.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"));var n=a.extend(i,e);return t(n,e),n.setOnCollideWith=function(t,e){return e?this.onCollideWith[t.id]=e:delete this.onCollideWith[t.id],this},n},n.nextGroup=function(t){return t?n._nextNonCollidingGroupId--:n._nextCollidingGroupId++},n.nextCategory=function(){return n._nextCategory=n._nextCategory<<1,n._nextCategory};var t=function(t,e){e=e||{},n.set(t,{bounds:t.bounds||h.create(t.vertices),positionPrev:t.positionPrev||s.clone(t.position),anglePrev:t.anglePrev||t.angle,vertices:t.vertices,parts:t.parts||[t],isStatic:t.isStatic,isSleeping:t.isSleeping,parent:t.parent||t});var i=t.bounds;if(r.rotate(t.vertices,t.angle,t.position),u.rotate(t.axes,t.angle),h.update(i,t.vertices,t.velocity),n.set(t,{axes:e.axes||t.axes,area:e.area||t.area,mass:e.mass||t.mass,inertia:e.inertia||t.inertia}),1===t.parts.length){var o=t.centerOfMass,a=t.centerOffset,l=i.max.x-i.min.x,c=i.max.y-i.min.y;o.x=-(i.min.x-t.position.x)/l,o.y=-(i.min.y-t.position.y)/c,a.x=l*o.x,a.y=c*o.y}};n.set=function(t,e,i){var r;for(r in"string"==typeof e&&(r=e,(e={})[r]=i),e)if(Object.prototype.hasOwnProperty.call(e,r))switch(i=e[r],r){case"isStatic":n.setStatic(t,i);break;case"isSleeping":o.set(t,i);break;case"mass":n.setMass(t,i);break;case"density":n.setDensity(t,i);break;case"inertia":n.setInertia(t,i);break;case"vertices":n.setVertices(t,i);break;case"position":n.setPosition(t,i);break;case"angle":n.setAngle(t,i);break;case"velocity":n.setVelocity(t,i);break;case"angularVelocity":n.setAngularVelocity(t,i);break;case"parts":n.setParts(t,i);break;case"centre":n.setCentre(t,i);break;default:t[r]=i}},n.setStatic=function(t,e){for(var i=0;i<t.parts.length;i++){var n=t.parts[i];n.isStatic=e,e?(n._original={restitution:n.restitution,friction:n.friction,mass:n.mass,inertia:n.inertia,density:n.density,inverseMass:n.inverseMass,inverseInertia:n.inverseInertia},n.restitution=0,n.friction=1,n.mass=n.inertia=n.density=1/0,n.inverseMass=n.inverseInertia=0,n.positionPrev.x=n.position.x,n.positionPrev.y=n.position.y,n.anglePrev=n.angle,n.angularVelocity=0,n.speed=0,n.angularSpeed=0,n.motion=0):n._original&&(n.restitution=n._original.restitution,n.friction=n._original.friction,n.mass=n._original.mass,n.inertia=n._original.inertia,n.density=n._original.density,n.inverseMass=n._original.inverseMass,n.inverseInertia=n._original.inverseInertia,n._original=null)}},n.setMass=function(t,e){var i=t.inertia/(t.mass/6);t.inertia=i*(e/6),t.inverseInertia=1/t.inertia,t.mass=e,t.inverseMass=1/t.mass,t.density=t.mass/t.area},n.setDensity=function(t,e){n.setMass(t,e*t.area),t.density=e},n.setInertia=function(t,e){t.inertia=e,t.inverseInertia=1/t.inertia},n.setVertices=function(t,e){e[0].body===t?t.vertices=e:t.vertices=r.create(e,t),t.axes=u.fromVertices(t.vertices),t.area=r.area(t.vertices),n.setMass(t,t.density*t.area);var i=r.centre(t.vertices);r.translate(t.vertices,i,-1),n.setInertia(t,n._inertiaScale*r.inertia(t.vertices,t.mass)),r.translate(t.vertices,t.position),h.update(t.bounds,t.vertices,t.velocity)},n.setParts=function(t,e,i){var s;for(e=e.slice(0),t.parts.length=0,t.parts.push(t),t.parent=t,s=0;s<e.length;s++){var o=e[s];o!==t&&(o.parent=t,t.parts.push(o))}if(1!==t.parts.length){if(i=void 0===i||i){var a=[];for(s=0;s<e.length;s++)a=a.concat(e[s].vertices);r.clockwiseSort(a);var u=r.hull(a),l=r.centre(u);n.setVertices(t,u),r.translate(t.vertices,l)}var c=n._totalProperties(t),d=c.centre.x,p=c.centre.y,f=t.bounds,m=t.centerOfMass,v=t.centerOffset;h.update(f,t.vertices,t.velocity),m.x=-(f.min.x-d)/(f.max.x-f.min.x),m.y=-(f.min.y-p)/(f.max.y-f.min.y),v.x=d,v.y=p,t.area=c.area,t.parent=t,t.position.x=d,t.position.y=p,t.positionPrev.x=d,t.positionPrev.y=p,n.setMass(t,c.mass),n.setInertia(t,c.inertia),n.setPosition(t,c.centre)}},n.setCentre=function(t,e,i){i?(t.positionPrev.x+=e.x,t.positionPrev.y+=e.y,t.position.x+=e.x,t.position.y+=e.y):(t.positionPrev.x=e.x-(t.position.x-t.positionPrev.x),t.positionPrev.y=e.y-(t.position.y-t.positionPrev.y),t.position.x=e.x,t.position.y=e.y)},n.setPosition=function(t,e){var i=s.sub(e,t.position);t.positionPrev.x+=i.x,t.positionPrev.y+=i.y;for(var n=0;n<t.parts.length;n++){var o=t.parts[n];o.position.x+=i.x,o.position.y+=i.y,r.translate(o.vertices,i),h.update(o.bounds,o.vertices,t.velocity)}},n.setAngle=function(t,e){var i=e-t.angle;t.anglePrev+=i;for(var n=0;n<t.parts.length;n++){var o=t.parts[n];o.angle+=i,r.rotate(o.vertices,i,t.position),u.rotate(o.axes,i),h.update(o.bounds,o.vertices,t.velocity),n>0&&s.rotateAbout(o.position,i,t.position,o.position)}},n.setVelocity=function(t,e){t.positionPrev.x=t.position.x-e.x,t.positionPrev.y=t.position.y-e.y,t.velocity.x=e.x,t.velocity.y=e.y,t.speed=s.magnitude(t.velocity)},n.setAngularVelocity=function(t,e){t.anglePrev=t.angle-e,t.angularVelocity=e,t.angularSpeed=Math.abs(t.angularVelocity)},n.translate=function(t,e){n.setPosition(t,s.add(t.position,e))},n.rotate=function(t,e,i){if(i){var r=Math.cos(e),s=Math.sin(e),o=t.position.x-i.x,a=t.position.y-i.y;n.setPosition(t,{x:i.x+(o*r-a*s),y:i.y+(o*s+a*r)}),n.setAngle(t,t.angle+e)}else n.setAngle(t,t.angle+e)},n.scale=function(t,e,i,s){var o=0,a=0;s=s||t.position;for(var l=0;l<t.parts.length;l++){var c=t.parts[l];c.scale.x=e,c.scale.y=i,r.scale(c.vertices,e,i,s),c.axes=u.fromVertices(c.vertices),c.area=r.area(c.vertices),n.setMass(c,t.density*c.area),r.translate(c.vertices,{x:-c.position.x,y:-c.position.y}),n.setInertia(c,n._inertiaScale*r.inertia(c.vertices,c.mass)),r.translate(c.vertices,{x:c.position.x,y:c.position.y}),l>0&&(o+=c.area,a+=c.inertia),c.position.x=s.x+(c.position.x-s.x)*e,c.position.y=s.y+(c.position.y-s.y)*i,h.update(c.bounds,c.vertices,t.velocity)}t.parts.length>1&&(t.area=o,t.isStatic||(n.setMass(t,t.density*o),n.setInertia(t,a))),t.circleRadius&&(e===i?t.circleRadius*=e:t.circleRadius=null)},n.update=function(t,e,i,n){var o=Math.pow(e*i*t.timeScale,2),a=1-t.frictionAir*i*t.timeScale,l=t.position.x-t.positionPrev.x,c=t.position.y-t.positionPrev.y;t.velocity.x=l*a*n+t.force.x/t.mass*o,t.velocity.y=c*a*n+t.force.y/t.mass*o,t.positionPrev.x=t.position.x,t.positionPrev.y=t.position.y,t.position.x+=t.velocity.x,t.position.y+=t.velocity.y,t.angularVelocity=(t.angle-t.anglePrev)*a*n+t.torque/t.inertia*o,t.anglePrev=t.angle,t.angle+=t.angularVelocity,t.speed=s.magnitude(t.velocity),t.angularSpeed=Math.abs(t.angularVelocity);for(var d=0;d<t.parts.length;d++){var p=t.parts[d];r.translate(p.vertices,t.velocity),d>0&&(p.position.x+=t.velocity.x,p.position.y+=t.velocity.y),0!==t.angularVelocity&&(r.rotate(p.vertices,t.angularVelocity,t.position),u.rotate(p.axes,t.angularVelocity),d>0&&s.rotateAbout(p.position,t.angularVelocity,t.position,p.position)),h.update(p.bounds,p.vertices,t.velocity)}},n.applyForce=function(t,e,i){t.force.x+=i.x,t.force.y+=i.y;var n=e.x-t.position.x,r=e.y-t.position.y;t.torque+=n*i.y-r*i.x},n._totalProperties=function(t){for(var e={mass:0,area:0,inertia:0,centre:{x:0,y:0}},i=1===t.parts.length?0:1;i<t.parts.length;i++){var n=t.parts[i],r=n.mass!==1/0?n.mass:1;e.mass+=r,e.area+=n.area,e.inertia+=n.inertia,e.centre=s.add(e.centre,s.mult(n.position,r))}return e.centre=s.div(e.centre,e.mass),e}}()},69643:(t,e,i)=>{var n={};t.exports=n;var r=i(84900),s=i(13991),o=i(17983),a=i(32663);n.create=function(t){return s.extend({id:s.nextId(),type:"composite",parent:null,isModified:!1,bodies:[],constraints:[],composites:[],label:"Composite",plugin:{}},t)},n.setModified=function(t,e,i,s){if(r.trigger(t,"compositeModified",t),t.isModified=e,i&&t.parent&&n.setModified(t.parent,e,i,s),s)for(var o=0;o<t.composites.length;o++){var a=t.composites[o];n.setModified(a,e,i,s)}},n.add=function(t,e){var i=[].concat(e);r.trigger(t,"beforeAdd",{object:e});for(var o=0;o<i.length;o++){var a=i[o];switch(a.type){case"body":if(a.parent!==a){s.warn("Composite.add: skipped adding a compound body part (you must add its parent instead)");break}n.addBody(t,a);break;case"constraint":n.addConstraint(t,a);break;case"composite":n.addComposite(t,a);break;case"mouseConstraint":n.addConstraint(t,a.constraint)}}return r.trigger(t,"afterAdd",{object:e}),t},n.remove=function(t,e,i){var s=[].concat(e);r.trigger(t,"beforeRemove",{object:e});for(var o=0;o<s.length;o++){var a=s[o];switch(a.type){case"body":n.removeBody(t,a,i);break;case"constraint":n.removeConstraint(t,a,i);break;case"composite":n.removeComposite(t,a,i);break;case"mouseConstraint":n.removeConstraint(t,a.constraint)}}return r.trigger(t,"afterRemove",{object:e}),t},n.addComposite=function(t,e){return t.composites.push(e),e.parent=t,n.setModified(t,!0,!0,!1),t},n.removeComposite=function(t,e,i){var r=t.composites.indexOf(e);if(-1!==r&&(n.removeCompositeAt(t,r),n.setModified(t,!0,!0,!1)),i)for(var s=0;s<t.composites.length;s++)n.removeComposite(t.composites[s],e,!0);return t},n.removeCompositeAt=function(t,e){return t.composites.splice(e,1),n.setModified(t,!0,!0,!1),t},n.addBody=function(t,e){return t.bodies.push(e),n.setModified(t,!0,!0,!1),t},n.removeBody=function(t,e,i){var r=t.bodies.indexOf(e);if(-1!==r&&(n.removeBodyAt(t,r),n.setModified(t,!0,!0,!1)),i)for(var s=0;s<t.composites.length;s++)n.removeBody(t.composites[s],e,!0);return t},n.removeBodyAt=function(t,e){return t.bodies.splice(e,1),n.setModified(t,!0,!0,!1),t},n.addConstraint=function(t,e){return t.constraints.push(e),n.setModified(t,!0,!0,!1),t},n.removeConstraint=function(t,e,i){var r=t.constraints.indexOf(e);if(-1!==r&&n.removeConstraintAt(t,r),i)for(var s=0;s<t.composites.length;s++)n.removeConstraint(t.composites[s],e,!0);return t},n.removeConstraintAt=function(t,e){return t.constraints.splice(e,1),n.setModified(t,!0,!0,!1),t},n.clear=function(t,e,i){if(i)for(var r=0;r<t.composites.length;r++)n.clear(t.composites[r],e,!0);return e?t.bodies=t.bodies.filter((function(t){return t.isStatic})):t.bodies.length=0,t.constraints.length=0,t.composites.length=0,n.setModified(t,!0,!0,!1),t},n.allBodies=function(t){for(var e=[].concat(t.bodies),i=0;i<t.composites.length;i++)e=e.concat(n.allBodies(t.composites[i]));return e},n.allConstraints=function(t){for(var e=[].concat(t.constraints),i=0;i<t.composites.length;i++)e=e.concat(n.allConstraints(t.composites[i]));return e},n.allComposites=function(t){for(var e=[].concat(t.composites),i=0;i<t.composites.length;i++)e=e.concat(n.allComposites(t.composites[i]));return e},n.get=function(t,e,i){var r,s;switch(i){case"body":r=n.allBodies(t);break;case"constraint":r=n.allConstraints(t);break;case"composite":r=n.allComposites(t).concat(t)}return r?0===(s=r.filter((function(t){return t.id.toString()===e.toString()}))).length?null:s[0]:null},n.move=function(t,e,i){return n.remove(t,e),n.add(i,e),t},n.rebase=function(t){for(var e=n.allBodies(t).concat(n.allConstraints(t)).concat(n.allComposites(t)),i=0;i<e.length;i++)e[i].id=s.nextId();return n.setModified(t,!0,!0,!1),t},n.translate=function(t,e,i){for(var r=i?n.allBodies(t):t.bodies,s=0;s<r.length;s++)a.translate(r[s],e);return n.setModified(t,!0,!0,!1),t},n.rotate=function(t,e,i,r){for(var s=Math.cos(e),o=Math.sin(e),h=r?n.allBodies(t):t.bodies,u=0;u<h.length;u++){var l=h[u],c=l.position.x-i.x,d=l.position.y-i.y;a.setPosition(l,{x:i.x+(c*s-d*o),y:i.y+(c*o+d*s)}),a.rotate(l,e)}return n.setModified(t,!0,!0,!1),t},n.scale=function(t,e,i,r,s){for(var o=s?n.allBodies(t):t.bodies,h=0;h<o.length;h++){var u=o[h],l=u.position.x-r.x,c=u.position.y-r.y;a.setPosition(u,{x:r.x+l*e,y:r.y+c*i}),a.scale(u,e,i)}return n.setModified(t,!0,!0,!1),t},n.bounds=function(t){for(var e=n.allBodies(t),i=[],r=0;r<e.length;r+=1){var s=e[r];i.push(s.bounds.min,s.bounds.max)}return o.create(i)}},36606:(t,e,i)=>{var n={};t.exports=n;var r=i(69643),s=(i(69436),i(13991));n.create=function(t){var e=r.create(),i={label:"World",gravity:{x:0,y:1,scale:.001},bounds:{min:{x:-1/0,y:-1/0},max:{x:1/0,y:1/0}}};return s.extend(e,i,t)}},17964:(t,e,i)=>{var n={};t.exports=n;var r=i(3946),s=i(37849),o=i(17983);n.collisions=function(t,e){for(var i=[],a=e.pairs.table,h=e.metrics,u=0;u<t.length;u++){var l=t[u][0],c=t[u][1];if((!l.isStatic&&!l.isSleeping||!c.isStatic&&!c.isSleeping)&&n.canCollide(l.collisionFilter,c.collisionFilter)&&(h.midphaseTests+=1,o.overlaps(l.bounds,c.bounds)))for(var d=l.parts.length>1?1:0;d<l.parts.length;d++)for(var p=l.parts[d],f=c.parts.length>1?1:0;f<c.parts.length;f++){var m=c.parts[f];if(p===l&&m===c||o.overlaps(p.bounds,m.bounds)){var v,g=a[s.id(p,m)];v=g&&g.isActive?g.collision:null;var y=r.collides(p,m,v);h.narrowphaseTests+=1,y.reused&&(h.narrowReuseCount+=1),y.collided&&(i.push(y),h.narrowDetections+=1)}}}return i},n.canCollide=function(t,e){return t.group===e.group&&0!==t.group?t.group>0:0!=(t.mask&e.category)&&0!=(e.mask&t.category)}},88424:(t,e,i)=>{var n={};t.exports=n;var r=i(37849),s=i(17964),o=i(13991);n.create=function(t){var e={controller:n,detector:s.collisions,buckets:{},pairs:{},pairsList:[],bucketWidth:48,bucketHeight:48};return o.extend(e,t)},n.update=function(t,e,i,r){var s,o,a,h,u,l=i.world,c=t.buckets,d=!1,p=i.metrics;for(p.broadphaseTests=0,s=0;s<e.length;s++){var f=e[s];if((!f.isSleeping||r)&&!(f.bounds.max.x<l.bounds.min.x||f.bounds.min.x>l.bounds.max.x||f.bounds.max.y<l.bounds.min.y||f.bounds.min.y>l.bounds.max.y)){var m=n._getRegion(t,f);if(!f.region||m.id!==f.region.id||r){p.broadphaseTests+=1,f.region&&!r||(f.region=m);var v=n._regionUnion(m,f.region);for(o=v.startCol;o<=v.endCol;o++)for(a=v.startRow;a<=v.endRow;a++){h=c[u=n._getBucketId(o,a)];var g=o>=m.startCol&&o<=m.endCol&&a>=m.startRow&&a<=m.endRow,y=o>=f.region.startCol&&o<=f.region.endCol&&a>=f.region.startRow&&a<=f.region.endRow;!g&&y&&y&&h&&n._bucketRemoveBody(t,h,f),(f.region===m||g&&!y||r)&&(h||(h=n._createBucket(c,u)),n._bucketAddBody(t,h,f))}f.region=m,d=!0}}}d&&(t.pairsList=n._createActivePairsList(t))},n.clear=function(t){t.buckets={},t.pairs={},t.pairsList=[]},n._regionUnion=function(t,e){var i=Math.min(t.startCol,e.startCol),r=Math.max(t.endCol,e.endCol),s=Math.min(t.startRow,e.startRow),o=Math.max(t.endRow,e.endRow);return n._createRegion(i,r,s,o)},n._getRegion=function(t,e){var i=e.bounds,r=Math.floor(i.min.x/t.bucketWidth),s=Math.floor(i.max.x/t.bucketWidth),o=Math.floor(i.min.y/t.bucketHeight),a=Math.floor(i.max.y/t.bucketHeight);return n._createRegion(r,s,o,a)},n._createRegion=function(t,e,i,n){return{id:t+","+e+","+i+","+n,startCol:t,endCol:e,startRow:i,endRow:n}},n._getBucketId=function(t,e){return"C"+t+"R"+e},n._createBucket=function(t,e){return t[e]=[]},n._bucketAddBody=function(t,e,i){for(var n=0;n<e.length;n++){var s=e[n];if(!(i.id===s.id||i.isStatic&&s.isStatic)){var o=r.id(i,s),a=t.pairs[o];a?a[2]+=1:t.pairs[o]=[i,s,1]}}e.push(i)},n._bucketRemoveBody=function(t,e,i){e.splice(e.indexOf(i),1);for(var n=0;n<e.length;n++){var s=e[n],o=r.id(i,s),a=t.pairs[o];a&&(a[2]-=1)}},n._createActivePairsList=function(t){var e,i,n=[];e=o.keys(t.pairs);for(var r=0;r<e.length;r++)(i=t.pairs[e[r]])[2]>0?n.push(i):delete t.pairs[e[r]];return n}},37849:t=>{var e={};t.exports=e,e.create=function(t,i){var n=t.bodyA,r=t.bodyB,s={id:e.id(n,r),bodyA:n,bodyB:r,activeContacts:[],separation:0,isActive:!0,confirmedActive:!0,isSensor:n.isSensor||r.isSensor,timeCreated:i,timeUpdated:i,collision:null,inverseMass:0,friction:0,frictionStatic:0,restitution:0,slop:0};return e.update(s,t,i),s},e.update=function(t,i,n){if(t.collision=i,i.collided){var r=i.supports,s=t.activeContacts,o=i.parentA,a=i.parentB;t.inverseMass=o.inverseMass+a.inverseMass,t.friction=Math.min(o.friction,a.friction),t.frictionStatic=Math.max(o.frictionStatic,a.frictionStatic),t.restitution=Math.max(o.restitution,a.restitution),t.slop=Math.max(o.slop,a.slop);for(var h=0;h<r.length;h++)s[h]=r[h].contact;var u=r.length;u<s.length&&(s.length=u),t.separation=i.depth,e.setActive(t,!0,n)}else!0===t.isActive&&e.setActive(t,!1,n)},e.setActive=function(t,e,i){e?(t.isActive=!0,t.timeUpdated=i):(t.isActive=!1,t.activeContacts.length=0)},e.id=function(t,e){return t.id<e.id?"A"+t.id+"B"+e.id:"A"+e.id+"B"+t.id}},31796:(t,e,i)=>{var n={};t.exports=n;var r=i(37849),s=i(13991);n._pairMaxIdleLife=1e3,n.create=function(t){return s.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},t)},n.update=function(t,e,i){var n,s,o,a,h=t.list,u=t.table,l=t.collisionStart,c=t.collisionEnd,d=t.collisionActive;for(l.length=0,c.length=0,d.length=0,a=0;a<h.length;a++)h[a].confirmedActive=!1;for(a=0;a<e.length;a++)(n=e[a]).collided&&((o=u[s=r.id(n.bodyA,n.bodyB)])?(o.isActive?d.push(o):l.push(o),r.update(o,n,i),o.confirmedActive=!0):(o=r.create(n,i),u[s]=o,l.push(o),h.push(o)));for(a=0;a<h.length;a++)(o=h[a]).isActive&&!o.confirmedActive&&(r.setActive(o,!1,i),c.push(o))},n.removeOld=function(t,e){var i,r,s,o,a=t.list,h=t.table,u=[];for(o=0;o<a.length;o++)(r=(i=a[o]).collision).bodyA.isSleeping||r.bodyB.isSleeping?i.timeUpdated=e:e-i.timeUpdated>n._pairMaxIdleLife&&u.push(o);for(o=0;o<u.length;o++)delete h[(i=a[s=u[o]-o]).id],a.splice(s,1)},n.clear=function(t){return t.table={},t.list.length=0,t.collisionStart.length=0,t.collisionActive.length=0,t.collisionEnd.length=0,t}},44542:(t,e,i)=>{var n={};t.exports=n;var r=i(39646),s=i(3946),o=i(17983),a=i(41422),h=i(65714);n.collides=function(t,e){for(var i=[],n=0;n<e.length;n++){var r=e[n];if(t!==r&&o.overlaps(r.bounds,t.bounds))for(var a=1===r.parts.length?0:1;a<r.parts.length;a++){var h=r.parts[a];if(o.overlaps(h.bounds,t.bounds)){var u=s.collides(h,t);if(u.collided){i.push(u);break}}}}return i},n.ray=function(t,e,i,s){s=s||1e-100;for(var o=r.angle(e,i),h=r.magnitude(r.sub(e,i)),u=.5*(i.x+e.x),l=.5*(i.y+e.y),c=a.rectangle(u,l,h,s,{angle:o}),d=n.collides(c,t),p=0;p<d.length;p+=1){var f=d[p];f.body=f.bodyB=f.bodyA}return d},n.region=function(t,e,i){for(var n=[],r=0;r<t.length;r++){var s=t[r],a=o.overlaps(s.bounds,e);(a&&!i||!a&&i)&&n.push(s)}return n},n.point=function(t,e){for(var i=[],n=0;n<t.length;n++){var r=t[n];if(o.contains(r.bounds,e))for(var s=1===r.parts.length?0:1;s<r.parts.length;s++){var a=r.parts[s];if(o.contains(a.bounds,e)&&h.contains(a.vertices,e)){i.push(r);break}}}return i}},28720:(t,e,i)=>{var n={};t.exports=n;var r=i(65714),s=i(39646),o=i(13991),a=i(17983);n._restingThresh=4,n._restingThreshTangent=6,n._positionDampen=.9,n._positionWarming=.8,n._frictionNormalMultiplier=5,n.preSolvePosition=function(t){var e,i,n;for(e=0;e<t.length;e++)(i=t[e]).isActive&&(n=i.activeContacts.length,i.collision.parentA.totalContacts+=n,i.collision.parentB.totalContacts+=n)},n.solvePosition=function(t,e,i){var r,s,o,a,h,u,l,c,d,p,f,m,v,g,y,_,x=i*n._positionDampen;for(r=0;r<e.length;r++){var b=e[r];b.previousPositionImpulse.x=b.positionImpulse.x,b.previousPositionImpulse.y=b.positionImpulse.y}for(r=0;r<t.length;r++)(a=t[r]).isActive&&!a.isSensor&&(u=(h=a.collision).parentA,l=h.parentB,c=h.normal,f=u.previousPositionImpulse,m=l.previousPositionImpulse,p=h.penetration,g=m.x-f.x+p.x,y=m.y-f.y+p.y,d=(s=c.x)*g+(o=c.y)*y,a.separation=d,_=(d-a.slop)*x,(u.isStatic||l.isStatic)&&(_*=2),u.isStatic||u.isSleeping||(v=_/u.totalContacts,u.positionImpulse.x+=s*v,u.positionImpulse.y+=o*v),l.isStatic||l.isSleeping||(v=_/l.totalContacts,l.positionImpulse.x-=s*v,l.positionImpulse.y-=o*v))},n.postSolvePosition=function(t){for(var e=0;e<t.length;e++){var i=t[e];if(i.totalContacts=0,0!==i.positionImpulse.x||0!==i.positionImpulse.y){for(var o=0;o<i.parts.length;o++){var h=i.parts[o];r.translate(h.vertices,i.positionImpulse),a.update(h.bounds,h.vertices,i.velocity),h.position.x+=i.positionImpulse.x,h.position.y+=i.positionImpulse.y}i.positionPrev.x+=i.positionImpulse.x,i.positionPrev.y+=i.positionImpulse.y,s.dot(i.positionImpulse,i.velocity)<0?(i.positionImpulse.x=0,i.positionImpulse.y=0):(i.positionImpulse.x*=n._positionWarming,i.positionImpulse.y*=n._positionWarming)}}},n.preSolveVelocity=function(t){var e,i,n,r,o,a,h,u,l,c,d,p,f,m,v=s._temp[0],g=s._temp[1];for(e=0;e<t.length;e++)if((n=t[e]).isActive&&!n.isSensor)for(r=n.activeContacts,a=(o=n.collision).parentA,h=o.parentB,u=o.normal,l=o.tangent,i=0;i<r.length;i++)d=(c=r[i]).vertex,p=c.normalImpulse,f=c.tangentImpulse,0===p&&0===f||(v.x=u.x*p+l.x*f,v.y=u.y*p+l.y*f,a.isStatic||a.isSleeping||(m=s.sub(d,a.position,g),a.positionPrev.x+=v.x*a.inverseMass,a.positionPrev.y+=v.y*a.inverseMass,a.anglePrev+=s.cross(m,v)*a.inverseInertia),h.isStatic||h.isSleeping||(m=s.sub(d,h.position,g),h.positionPrev.x-=v.x*h.inverseMass,h.positionPrev.y-=v.y*h.inverseMass,h.anglePrev-=s.cross(m,v)*h.inverseInertia))},n.solveVelocity=function(t,e){for(var i=e*e,r=s._temp[0],a=s._temp[1],h=s._temp[2],u=s._temp[3],l=s._temp[4],c=s._temp[5],d=0;d<t.length;d++){var p=t[d];if(p.isActive&&!p.isSensor){var f=p.collision,m=f.parentA,v=f.parentB,g=f.normal,y=f.tangent,_=p.activeContacts,x=1/_.length;m.velocity.x=m.position.x-m.positionPrev.x,m.velocity.y=m.position.y-m.positionPrev.y,v.velocity.x=v.position.x-v.positionPrev.x,v.velocity.y=v.position.y-v.positionPrev.y,m.angularVelocity=m.angle-m.anglePrev,v.angularVelocity=v.angle-v.anglePrev;for(var b=0;b<_.length;b++){var w=_[b],T=w.vertex,M=s.sub(T,m.position,a),S=s.sub(T,v.position,h),E=s.add(m.velocity,s.mult(s.perp(M),m.angularVelocity),u),L=s.add(v.velocity,s.mult(s.perp(S),v.angularVelocity),l),A=s.sub(E,L,c),D=s.dot(g,A),P=s.dot(y,A),C=Math.abs(P),O=o.sign(P),k=(1+p.restitution)*D,R=o.clamp(p.separation+D,0,1)*n._frictionNormalMultiplier,I=P,Y=1/0;C>p.friction*p.frictionStatic*R*i&&(Y=C,I=o.clamp(p.friction*O*i,-Y,Y));var F=s.cross(M,g),N=s.cross(S,g),B=x/(m.inverseMass+v.inverseMass+m.inverseInertia*F*F+v.inverseInertia*N*N);if(k*=B,I*=B,D<0&&D*D>n._restingThresh*i)w.normalImpulse=0;else{var U=w.normalImpulse;w.normalImpulse=Math.min(w.normalImpulse+k,0),k=w.normalImpulse-U}if(P*P>n._restingThreshTangent*i)w.tangentImpulse=0;else{var j=w.tangentImpulse;w.tangentImpulse=o.clamp(w.tangentImpulse+I,-Y,Y),I=w.tangentImpulse-j}r.x=g.x*k+y.x*I,r.y=g.y*k+y.y*I,m.isStatic||m.isSleeping||(m.positionPrev.x+=r.x*m.inverseMass,m.positionPrev.y+=r.y*m.inverseMass,m.anglePrev+=s.cross(M,r)*m.inverseInertia),v.isStatic||v.isSleeping||(v.positionPrev.x-=r.x*v.inverseMass,v.positionPrev.y-=r.y*v.inverseMass,v.anglePrev-=s.cross(S,r)*v.inverseInertia)}}}}},3946:(t,e,i)=>{var n={};t.exports=n;var r=i(65714),s=i(39646);n.collides=function(t,e,i){var o,a,h,u,l=!1;if(i){var c=t.parent,d=e.parent,p=c.speed*c.speed+c.angularSpeed*c.angularSpeed+d.speed*d.speed+d.angularSpeed*d.angularSpeed;l=i&&i.collided&&p<.2,u=i}else u={collided:!1,bodyA:t,bodyB:e};if(i&&l){var f=u.axisBody,m=f===t?e:t,v=[f.axes[i.axisNumber]];if(h=n._overlapAxes(f.vertices,m.vertices,v),u.reused=!0,h.overlap<=0)return u.collided=!1,u}else{if((o=n._overlapAxes(t.vertices,e.vertices,t.axes)).overlap<=0)return u.collided=!1,u;if((a=n._overlapAxes(e.vertices,t.vertices,e.axes)).overlap<=0)return u.collided=!1,u;o.overlap<a.overlap?(h=o,u.axisBody=t):(h=a,u.axisBody=e),u.axisNumber=h.axisNumber}u.bodyA=t.id<e.id?t:e,u.bodyB=t.id<e.id?e:t,u.collided=!0,u.depth=h.overlap,u.parentA=u.bodyA.parent,u.parentB=u.bodyB.parent,t=u.bodyA,e=u.bodyB,s.dot(h.axis,s.sub(e.position,t.position))<0?u.normal={x:h.axis.x,y:h.axis.y}:u.normal={x:-h.axis.x,y:-h.axis.y},u.tangent=s.perp(u.normal),u.penetration=u.penetration||{},u.penetration.x=u.normal.x*u.depth,u.penetration.y=u.normal.y*u.depth;var g=n._findSupports(t,e,u.normal),y=[];if(r.contains(t.vertices,g[0])&&y.push(g[0]),r.contains(t.vertices,g[1])&&y.push(g[1]),y.length<2){var _=n._findSupports(e,t,s.neg(u.normal));r.contains(e.vertices,_[0])&&y.push(_[0]),y.length<2&&r.contains(e.vertices,_[1])&&y.push(_[1])}return y.length<1&&(y=[g[0]]),u.supports=y,u},n._overlapAxes=function(t,e,i){for(var r,o,a=s._temp[0],h=s._temp[1],u={overlap:Number.MAX_VALUE},l=0;l<i.length;l++){if(o=i[l],n._projectToAxis(a,t,o),n._projectToAxis(h,e,o),(r=Math.min(a.max-h.min,h.max-a.min))<=0)return u.overlap=r,u;r<u.overlap&&(u.overlap=r,u.axis=o,u.axisNumber=l)}return u},n._projectToAxis=function(t,e,i){for(var n=s.dot(e[0],i),r=n,o=1;o<e.length;o+=1){var a=s.dot(e[o],i);a>r?r=a:a<n&&(n=a)}t.min=n,t.max=r},n._findSupports=function(t,e,i){for(var n,r,o,a,h=Number.MAX_VALUE,u=s._temp[0],l=e.vertices,c=t.position,d=0;d<l.length;d++)r=l[d],u.x=r.x-c.x,u.y=r.y-c.y,(n=-s.dot(i,u))<h&&(h=n,o=r);return r=l[o.index-1>=0?o.index-1:l.length-1],u.x=r.x-c.x,u.y=r.y-c.y,h=-s.dot(i,u),a=r,r=l[(o.index+1)%l.length],u.x=r.x-c.x,u.y=r.y-c.y,(n=-s.dot(i,u))<h&&(a=r),[o,a]}},69436:(t,e,i)=>{var n={};t.exports=n;var r=i(65714),s=i(39646),o=i(59114),a=i(17983),h=i(58383),u=i(13991);n._warming=.4,n._torqueDampen=1,n._minLength=1e-6,n.create=function(t){var e=t;e.bodyA&&!e.pointA&&(e.pointA={x:0,y:0}),e.bodyB&&!e.pointB&&(e.pointB={x:0,y:0});var i=e.bodyA?s.add(e.bodyA.position,e.pointA):e.pointA,n=e.bodyB?s.add(e.bodyB.position,e.pointB):e.pointB,r=s.magnitude(s.sub(i,n));e.length=void 0!==e.length?e.length:r,e.id=e.id||u.nextId(),e.label=e.label||"Constraint",e.type="constraint",e.stiffness=e.stiffness||(e.length>0?1:.7),e.damping=e.damping||0,e.angularStiffness=e.angularStiffness||0,e.angleA=e.bodyA?e.bodyA.angle:e.angleA,e.angleB=e.bodyB?e.bodyB.angle:e.angleB,e.plugin={};var o={visible:!0,type:"line",anchors:!0,lineColor:null,lineOpacity:null,lineThickness:null,pinSize:null,anchorColor:null,anchorSize:null};return 0===e.length&&e.stiffness>.1?(o.type="pin",o.anchors=!1):e.stiffness<.9&&(o.type="spring"),e.render=u.extend(o,e.render),e},n.preSolveAll=function(t){for(var e=0;e<t.length;e+=1){var i=t[e],n=i.constraintImpulse;i.isStatic||0===n.x&&0===n.y&&0===n.angle||(i.position.x+=n.x,i.position.y+=n.y,i.angle+=n.angle)}},n.solveAll=function(t,e){for(var i=0;i<t.length;i+=1){var r=t[i],s=!r.bodyA||r.bodyA&&r.bodyA.isStatic,o=!r.bodyB||r.bodyB&&r.bodyB.isStatic;(s||o)&&n.solve(t[i],e)}for(i=0;i<t.length;i+=1)s=!(r=t[i]).bodyA||r.bodyA&&r.bodyA.isStatic,o=!r.bodyB||r.bodyB&&r.bodyB.isStatic,s||o||n.solve(t[i],e)},n.solve=function(t,e){var i=t.bodyA,r=t.bodyB,o=t.pointA,a=t.pointB;if(i||r){i&&!i.isStatic&&(s.rotate(o,i.angle-t.angleA,o),t.angleA=i.angle),r&&!r.isStatic&&(s.rotate(a,r.angle-t.angleB,a),t.angleB=r.angle);var h=o,u=a;if(i&&(h=s.add(i.position,o)),r&&(u=s.add(r.position,a)),h&&u){var l=s.sub(h,u),c=s.magnitude(l);c<n._minLength&&(c=n._minLength);var d,p,f,m,v,g=(c-t.length)/c,y=t.stiffness<1?t.stiffness*e:t.stiffness,_=s.mult(l,g*y),x=(i?i.inverseMass:0)+(r?r.inverseMass:0),b=x+((i?i.inverseInertia:0)+(r?r.inverseInertia:0));if(t.damping){var w=s.create();f=s.div(l,c),v=s.sub(r&&s.sub(r.position,r.positionPrev)||w,i&&s.sub(i.position,i.positionPrev)||w),m=s.dot(f,v)}i&&!i.isStatic&&(p=i.inverseMass/x,i.constraintImpulse.x-=_.x*p,i.constraintImpulse.y-=_.y*p,i.position.x-=_.x*p,i.position.y-=_.y*p,t.damping&&(i.positionPrev.x-=t.damping*f.x*m*p,i.positionPrev.y-=t.damping*f.y*m*p),d=s.cross(o,_)/b*n._torqueDampen*i.inverseInertia*(1-t.angularStiffness),i.constraintImpulse.angle-=d,i.angle-=d),r&&!r.isStatic&&(p=r.inverseMass/x,r.constraintImpulse.x+=_.x*p,r.constraintImpulse.y+=_.y*p,r.position.x+=_.x*p,r.position.y+=_.y*p,t.damping&&(r.positionPrev.x+=t.damping*f.x*m*p,r.positionPrev.y+=t.damping*f.y*m*p),d=s.cross(a,_)/b*n._torqueDampen*r.inverseInertia*(1-t.angularStiffness),r.constraintImpulse.angle+=d,r.angle+=d)}}},n.postSolveAll=function(t){for(var e=0;e<t.length;e++){var i=t[e],u=i.constraintImpulse;if(!(i.isStatic||0===u.x&&0===u.y&&0===u.angle)){o.set(i,!1);for(var l=0;l<i.parts.length;l++){var c=i.parts[l];r.translate(c.vertices,u),l>0&&(c.position.x+=u.x,c.position.y+=u.y),0!==u.angle&&(r.rotate(c.vertices,u.angle,i.position),h.rotate(c.axes,u.angle),l>0&&s.rotateAbout(c.position,u.angle,i.position,c.position)),a.update(c.bounds,c.vertices,i.velocity)}u.angle*=n._warming,u.x*=n._warming,u.y*=n._warming}}},n.pointAWorld=function(t){return{x:(t.bodyA?t.bodyA.position.x:0)+t.pointA.x,y:(t.bodyA?t.bodyA.position.y:0)+t.pointA.y}},n.pointBWorld=function(t){return{x:(t.bodyB?t.bodyB.position.x:0)+t.pointB.x,y:(t.bodyB?t.bodyB.position.y:0)+t.pointB.y}}},13991:t=>{var e={};t.exports=e,function(){e._nextId=0,e._seed=0,e._nowStartTime=+new Date,e.extend=function(t,i){var n,r;"boolean"==typeof i?(n=2,r=i):(n=1,r=!0);for(var s=n;s<arguments.length;s++){var o=arguments[s];if(o)for(var a in o)r&&o[a]&&o[a].constructor===Object?t[a]&&t[a].constructor!==Object?t[a]=o[a]:(t[a]=t[a]||{},e.extend(t[a],r,o[a])):t[a]=o[a]}return t},e.clone=function(t,i){return e.extend({},i,t)},e.keys=function(t){if(Object.keys)return Object.keys(t);var e=[];for(var i in t)e.push(i);return e},e.values=function(t){var e=[];if(Object.keys){for(var i=Object.keys(t),n=0;n<i.length;n++)e.push(t[i[n]]);return e}for(var r in t)e.push(t[r]);return e},e.get=function(t,e,i,n){e=e.split(".").slice(i,n);for(var r=0;r<e.length;r+=1)t=t[e[r]];return t},e.set=function(t,i,n,r,s){var o=i.split(".").slice(r,s);return e.get(t,i,0,-1)[o[o.length-1]]=n,n},e.shuffle=function(t){for(var i=t.length-1;i>0;i--){var n=Math.floor(e.random()*(i+1)),r=t[i];t[i]=t[n],t[n]=r}return t},e.choose=function(t){return t[Math.floor(e.random()*t.length)]},e.isElement=function(t){return"undefined"!=typeof HTMLElement?t instanceof HTMLElement:!!(t&&t.nodeType&&t.nodeName)},e.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)},e.isFunction=function(t){return"function"==typeof t},e.isPlainObject=function(t){return"object"==typeof t&&t.constructor===Object},e.isString=function(t){return"[object String]"===Object.prototype.toString.call(t)},e.clamp=function(t,e,i){return t<e?e:t>i?i:t},e.sign=function(t){return t<0?-1:1},e.now=function(){if("undefined"!=typeof window&&window.performance){if(window.performance.now)return window.performance.now();if(window.performance.webkitNow)return window.performance.webkitNow()}return new Date-e._nowStartTime},e.random=function(e,i){return i=void 0!==i?i:1,(e=void 0!==e?e:0)+t()*(i-e)};var t=function(){return e._seed=(9301*e._seed+49297)%233280,e._seed/233280};e.colorToNumber=function(t){return 3==(t=t.replace("#","")).length&&(t=t.charAt(0)+t.charAt(0)+t.charAt(1)+t.charAt(1)+t.charAt(2)+t.charAt(2)),parseInt(t,16)},e.logLevel=1,e.log=function(){console&&e.logLevel>0&&e.logLevel<=3&&console.log.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},e.info=function(){console&&e.logLevel>0&&e.logLevel<=2&&console.info.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},e.warn=function(){console&&e.logLevel>0&&e.logLevel<=3&&console.warn.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},e.nextId=function(){return e._nextId++},e.indexOf=function(t,e){if(t.indexOf)return t.indexOf(e);for(var i=0;i<t.length;i++)if(t[i]===e)return i;return-1},e.map=function(t,e){if(t.map)return t.map(e);for(var i=[],n=0;n<t.length;n+=1)i.push(e(t[n]));return i},e.topologicalSort=function(t){var i=[],n=[],r=[];for(var s in t)n[s]||r[s]||e._topologicalSort(s,n,r,t,i);return i},e._topologicalSort=function(t,i,n,r,s){var o=r[t]||[];n[t]=!0;for(var a=0;a<o.length;a+=1){var h=o[a];n[h]||(i[h]||e._topologicalSort(h,i,n,r,s))}n[t]=!1,i[t]=!0,s.push(t)},e.chain=function(){for(var t=[],e=0;e<arguments.length;e+=1){var i=arguments[e];i._chained?t.push.apply(t,i._chained):t.push(i)}var n=function(){for(var e,i=new Array(arguments.length),n=0,r=arguments.length;n<r;n++)i[n]=arguments[n];for(n=0;n<t.length;n+=1){var s=t[n].apply(e,i);void 0!==s&&(e=s)}return e};return n._chained=t,n},e.chainPathBefore=function(t,i,n){return e.set(t,i,e.chain(n,e.get(t,i)))},e.chainPathAfter=function(t,i,n){return e.set(t,i,e.chain(e.get(t,i),n))}}()},10153:(t,e,i)=>{var n={};t.exports=n;var r=i(36606),s=i(59114),o=i(28720),a=i(31796),h=i(50284),u=i(88424),l=i(84900),c=i(69643),d=i(69436),p=i(13991),f=i(32663);n.create=function(t,e){e=(e=p.isElement(t)?e:t)||{},((t=p.isElement(t)?t:null)||e.render)&&p.warn("Engine.create: engine.render is deprecated (see docs)");var i={positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:!1,events:[],plugin:{},timing:{timestamp:0,timeScale:1},broadphase:{controller:u}},n=p.extend(i,e);return n.world=e.world||r.create(n.world),n.pairs=a.create(),n.broadphase=n.broadphase.controller.create(n.broadphase),n.metrics=n.metrics||{extended:!1},n.metrics=h.create(n.metrics),n},n.update=function(t,e,i){e=e||1e3/60,i=i||1;var r,u=t.world,p=t.timing,f=t.broadphase,m=[];p.timestamp+=e*p.timeScale;var v={timestamp:p.timestamp};l.trigger(t,"beforeUpdate",v);var g=c.allBodies(u),y=c.allConstraints(u);for(h.reset(t.metrics),t.enableSleeping&&s.update(g,p.timeScale),n._bodiesApplyGravity(g,u.gravity),n._bodiesUpdate(g,e,p.timeScale,i,u.bounds),d.preSolveAll(g),r=0;r<t.constraintIterations;r++)d.solveAll(y,p.timeScale);d.postSolveAll(g),f.controller?(u.isModified&&f.controller.clear(f),f.controller.update(f,g,t,u.isModified),m=f.pairsList):m=g,u.isModified&&c.setModified(u,!1,!1,!0);var _=f.detector(m,t),x=t.pairs,b=p.timestamp;for(a.update(x,_,b),a.removeOld(x,b),t.enableSleeping&&s.afterCollisions(x.list,p.timeScale),x.collisionStart.length>0&&l.trigger(t,"collisionStart",{pairs:x.collisionStart}),o.preSolvePosition(x.list),r=0;r<t.positionIterations;r++)o.solvePosition(x.list,g,p.timeScale);for(o.postSolvePosition(g),d.preSolveAll(g),r=0;r<t.constraintIterations;r++)d.solveAll(y,p.timeScale);for(d.postSolveAll(g),o.preSolveVelocity(x.list),r=0;r<t.velocityIterations;r++)o.solveVelocity(x.list,p.timeScale);return x.collisionActive.length>0&&l.trigger(t,"collisionActive",{pairs:x.collisionActive}),x.collisionEnd.length>0&&l.trigger(t,"collisionEnd",{pairs:x.collisionEnd}),h.update(t.metrics,t),n._bodiesClearForces(g),l.trigger(t,"afterUpdate",v),t},n.merge=function(t,e){if(p.extend(t,e),e.world){t.world=e.world,n.clear(t);for(var i=c.allBodies(t.world),r=0;r<i.length;r++){var o=i[r];s.set(o,!1),o.id=p.nextId()}}},n.clear=function(t){var e=t.world;a.clear(t.pairs);var i=t.broadphase;if(i.controller){var n=c.allBodies(e);i.controller.clear(i),i.controller.update(i,n,t,!0)}},n._bodiesClearForces=function(t){for(var e=0;e<t.length;e++){var i=t[e];i.force.x=0,i.force.y=0,i.torque=0}},n._bodiesApplyGravity=function(t,e){var i=void 0!==e.scale?e.scale:.001;if((0!==e.x||0!==e.y)&&0!==i)for(var n=0;n<t.length;n++){var r=t[n];r.ignoreGravity||r.isStatic||r.isSleeping||(r.force.x+=r.mass*e.x*i*r.gravityScale.x,r.force.y+=r.mass*e.y*i*r.gravityScale.y)}},n._bodiesUpdate=function(t,e,i,n,r){for(var s=0;s<t.length;s++){var o=t[s];o.isStatic||o.isSleeping||f.update(o,e,i,n)}}},84900:(t,e,i)=>{var n={};t.exports=n;var r=i(13991);n.on=function(t,e,i){for(var n,r=e.split(" "),s=0;s<r.length;s++)n=r[s],t.events=t.events||{},t.events[n]=t.events[n]||[],t.events[n].push(i);return i},n.off=function(t,e,i){if(e){"function"==typeof e&&(i=e,e=r.keys(t.events).join(" "));for(var n=e.split(" "),s=0;s<n.length;s++){var o=t.events[n[s]],a=[];if(i&&o)for(var h=0;h<o.length;h++)o[h]!==i&&a.push(o[h]);t.events[n[s]]=a}}else t.events={}},n.trigger=function(t,e,i){var n,s,o,a,h=t.events;if(h&&r.keys(h).length>0){i||(i={}),n=e.split(" ");for(var u=0;u<n.length;u++)if(o=h[s=n[u]]){(a=r.clone(i,!1)).name=s,a.source=t;for(var l=0;l<o.length;l++)o[l].apply(t,[a])}}}},66995:(t,e,i)=>{var n={};t.exports=n;var r=i(41880),s=i(13991);n.name="matter-js",n.version="0.14.2",n.uses=[],n.used=[],n.use=function(){r.use(n,Array.prototype.slice.call(arguments))},n.before=function(t,e){return t=t.replace(/^Matter./,""),s.chainPathBefore(n,t,e)},n.after=function(t,e){return t=t.replace(/^Matter./,""),s.chainPathAfter(n,t,e)}},50284:(t,e,i)=>{var n={};t.exports=n;var r=i(69643),s=i(13991);n.create=function(t){return s.extend({extended:!1,narrowDetections:0,narrowphaseTests:0,narrowReuse:0,narrowReuseCount:0,midphaseTests:0,broadphaseTests:0,narrowEff:1e-4,midEff:1e-4,broadEff:1e-4,collisions:0,buckets:0,bodies:0,pairs:0},!1,t)},n.reset=function(t){t.extended&&(t.narrowDetections=0,t.narrowphaseTests=0,t.narrowReuse=0,t.narrowReuseCount=0,t.midphaseTests=0,t.broadphaseTests=0,t.narrowEff=0,t.midEff=0,t.broadEff=0,t.collisions=0,t.buckets=0,t.pairs=0,t.bodies=0)},n.update=function(t,e){if(t.extended){var i=e.world,n=r.allBodies(i);t.collisions=t.narrowDetections,t.pairs=e.pairs.list.length,t.bodies=n.length,t.midEff=(t.narrowDetections/(t.midphaseTests||1)).toFixed(2),t.narrowEff=(t.narrowDetections/(t.narrowphaseTests||1)).toFixed(2),t.broadEff=(1-t.broadphaseTests/(n.length||1)).toFixed(2),t.narrowReuse=(t.narrowReuseCount/(t.narrowphaseTests||1)).toFixed(2)}}},41880:(t,e,i)=>{var n={};t.exports=n;var r=i(13991);n._registry={},n.register=function(t){if(n.isPlugin(t)||r.warn("Plugin.register:",n.toString(t),"does not implement all required fields."),t.name in n._registry){var e=n._registry[t.name],i=n.versionParse(t.version).number,s=n.versionParse(e.version).number;i>s?(r.warn("Plugin.register:",n.toString(e),"was upgraded to",n.toString(t)),n._registry[t.name]=t):i<s?r.warn("Plugin.register:",n.toString(e),"can not be downgraded to",n.toString(t)):t!==e&&r.warn("Plugin.register:",n.toString(t),"is already registered to different plugin object")}else n._registry[t.name]=t;return t},n.resolve=function(t){return n._registry[n.dependencyParse(t).name]},n.toString=function(t){return"string"==typeof t?t:(t.name||"anonymous")+"@"+(t.version||t.range||"0.0.0")},n.isPlugin=function(t){return t&&t.name&&t.version&&t.install},n.isUsed=function(t,e){return t.used.indexOf(e)>-1},n.isFor=function(t,e){var i=t.for&&n.dependencyParse(t.for);return!t.for||e.name===i.name&&n.versionSatisfies(e.version,i.range)},n.use=function(t,e){if(t.uses=(t.uses||[]).concat(e||[]),0!==t.uses.length){for(var i=n.dependencies(t),s=r.topologicalSort(i),o=[],a=0;a<s.length;a+=1)if(s[a]!==t.name){var h=n.resolve(s[a]);h?n.isUsed(t,h.name)||(n.isFor(h,t)||(r.warn("Plugin.use:",n.toString(h),"is for",h.for,"but installed on",n.toString(t)+"."),h._warned=!0),h.install?h.install(t):(r.warn("Plugin.use:",n.toString(h),"does not specify an install function."),h._warned=!0),h._warned?(o.push("\u{1f536} "+n.toString(h)),delete h._warned):o.push("\u2705 "+n.toString(h)),t.used.push(h.name)):o.push("\u274c "+s[a])}o.length>0&&!h.silent&&r.info(o.join(" "))}else r.warn("Plugin.use:",n.toString(t),"does not specify any dependencies to install.")},n.dependencies=function(t,e){var i=n.dependencyParse(t),s=i.name;if(!(s in(e=e||{}))){t=n.resolve(t)||t,e[s]=r.map(t.uses||[],(function(e){n.isPlugin(e)&&n.register(e);var s=n.dependencyParse(e),o=n.resolve(e);return o&&!n.versionSatisfies(o.version,s.range)?(r.warn("Plugin.dependencies:",n.toString(o),"does not satisfy",n.toString(s),"used by",n.toString(i)+"."),o._warned=!0,t._warned=!0):o||(r.warn("Plugin.dependencies:",n.toString(e),"used by",n.toString(i),"could not be resolved."),t._warned=!0),s.name}));for(var o=0;o<e[s].length;o+=1)n.dependencies(e[s][o],e);return e}},n.dependencyParse=function(t){return r.isString(t)?(/^[\w-]+(@(\*|[\^~]?\d+\.\d+\.\d+(-[0-9A-Za-z-]+)?))?$/.test(t)||r.warn("Plugin.dependencyParse:",t,"is not a valid dependency string."),{name:t.split("@")[0],range:t.split("@")[1]||"*"}):{name:t.name,range:t.range||t.version}},n.versionParse=function(t){/^\*|[\^~]?\d+\.\d+\.\d+(-[0-9A-Za-z-]+)?$/.test(t)||r.warn("Plugin.versionParse:",t,"is not a valid version or range.");var e=t.split("-");t=e[0];var i=isNaN(Number(t[0])),n=i?t.substr(1):t,s=r.map(n.split("."),(function(t){return Number(t)}));return{isRange:i,version:n,range:t,operator:i?t[0]:"",parts:s,prerelease:e[1],number:1e8*s[0]+1e4*s[1]+s[2]}},n.versionSatisfies=function(t,e){e=e||"*";var i=n.versionParse(e),r=i.parts,s=n.versionParse(t),o=s.parts;if(i.isRange){if("*"===i.operator||"*"===t)return!0;if("~"===i.operator)return o[0]===r[0]&&o[1]===r[1]&&o[2]>=r[2];if("^"===i.operator)return r[0]>0?o[0]===r[0]&&s.number>=i.number:r[1]>0?o[1]===r[1]&&o[2]>=r[2]:o[2]===r[2]}return t===e||"*"===t}},59114:(t,e,i)=>{var n={};t.exports=n;var r=i(84900);n._motionWakeThreshold=.18,n._motionSleepThreshold=.08,n._minBias=.9,n.update=function(t,e){for(var i=e*e*e,r=0;r<t.length;r++){var s=t[r],o=s.speed*s.speed+s.angularSpeed*s.angularSpeed;if(0===s.force.x&&0===s.force.y){var a=Math.min(s.motion,o),h=Math.max(s.motion,o);s.motion=n._minBias*a+(1-n._minBias)*h,s.sleepThreshold>0&&s.motion<n._motionSleepThreshold*i?(s.sleepCounter+=1,s.sleepCounter>=s.sleepThreshold&&n.set(s,!0)):s.sleepCounter>0&&(s.sleepCounter-=1)}else n.set(s,!1)}},n.afterCollisions=function(t,e){for(var i=e*e*e,r=0;r<t.length;r++){var s=t[r];if(s.isActive){var o=s.collision,a=o.bodyA.parent,h=o.bodyB.parent;if(!(a.isSleeping&&h.isSleeping||a.isStatic||h.isStatic)&&(a.isSleeping||h.isSleeping)){var u=a.isSleeping&&!a.isStatic?a:h,l=u===a?h:a;!u.isStatic&&l.motion>n._motionWakeThreshold*i&&n.set(u,!1)}}}},n.set=function(t,e){var i=t.isSleeping;e?(t.isSleeping=!0,t.sleepCounter=t.sleepThreshold,t.positionImpulse.x=0,t.positionImpulse.y=0,t.positionPrev.x=t.position.x,t.positionPrev.y=t.position.y,t.anglePrev=t.angle,t.speed=0,t.angularSpeed=0,t.motion=0,i||r.trigger(t,"sleepStart")):(t.isSleeping=!1,t.sleepCounter=0,i&&r.trigger(t,"sleepEnd"))}},41422:(t,e,i)=>{var n={};t.exports=n;var r=i(65714),s=i(13991),o=i(32663),a=i(17983),h=i(39646),u=i(6384);n.rectangle=function(t,e,i,n,a){a=a||{};var h={label:"Rectangle Body",position:{x:t,y:e},vertices:r.fromPath("L 0 0 L "+i+" 0 L "+i+" "+n+" L 0 "+n)};if(a.chamfer){var u=a.chamfer;h.vertices=r.chamfer(h.vertices,u.radius,u.quality,u.qualityMin,u.qualityMax),delete a.chamfer}return o.create(s.extend({},h,a))},n.trapezoid=function(t,e,i,n,a,h){h=h||{};var u,l=i*(a*=.5),c=l+(1-2*a)*i,d=c+l;u=a<.5?"L 0 0 L "+l+" "+-n+" L "+c+" "+-n+" L "+d+" 0":"L 0 0 L "+c+" "+-n+" L "+d+" 0";var p={label:"Trapezoid Body",position:{x:t,y:e},vertices:r.fromPath(u)};if(h.chamfer){var f=h.chamfer;p.vertices=r.chamfer(p.vertices,f.radius,f.quality,f.qualityMin,f.qualityMax),delete h.chamfer}return o.create(s.extend({},p,h))},n.circle=function(t,e,i,r,o){r=r||{};var a={label:"Circle Body",circleRadius:i};o=o||25;var h=Math.ceil(Math.max(10,Math.min(o,i)));return h%2==1&&(h+=1),n.polygon(t,e,h,i,s.extend({},a,r))},n.polygon=function(t,e,i,a,h){if(h=h||{},i<3)return n.circle(t,e,a,h);for(var u=2*Math.PI/i,l="",c=.5*u,d=0;d<i;d+=1){var p=c+d*u,f=Math.cos(p)*a,m=Math.sin(p)*a;l+="L "+f.toFixed(3)+" "+m.toFixed(3)+" "}var v={label:"Polygon Body",position:{x:t,y:e},vertices:r.fromPath(l)};if(h.chamfer){var g=h.chamfer;v.vertices=r.chamfer(v.vertices,g.radius,g.quality,g.qualityMin,g.qualityMax),delete h.chamfer}return o.create(s.extend({},v,h))},n.fromVertices=function(t,e,i,a,h,l,c){var d,p,f,m,v,g;for(a=a||{},p=[],h=void 0!==h&&h,l=void 0!==l?l:.01,c=void 0!==c?c:10,u||s.warn("Bodies.fromVertices: poly-decomp.js required. Could not decompose vertices. Fallback to convex hull."),s.isArray(i[0])||(i=[i]),g=0;g<i.length;g+=1)if(m=i[g],(f=r.isConvex(m))||!u)m=f?r.clockwiseSort(m):r.hull(m),p.push({position:{x:t,y:e},vertices:m});else{var y=m.map((function(t){return[t.x,t.y]}));u.makeCCW(y),!1!==l&&u.removeCollinearPoints(y,l);var _=u.quickDecomp(y);for(v=0;v<_.length;v++){var x=_[v].map((function(t){return{x:t[0],y:t[1]}}));c>0&&r.area(x)<c||p.push({position:r.centre(x),vertices:x})}}for(v=0;v<p.length;v++)p[v]=o.create(s.extend(p[v],a));return h&&n.flagCoincidentParts(p,5),p.length>1?(d=o.create(s.extend({parts:p.slice(0)},a)),o.setPosition(d,{x:t,y:e}),d):p[0]},n.flagCoincidentParts=function(t,e){void 0===e&&(e=5);for(var i=0;i<t.length;i++)for(var n=t[i],r=i+1;r<t.length;r++){var s=t[r];if(a.overlaps(n.bounds,s.bounds))for(var o=n.vertices,u=s.vertices,l=0;l<n.vertices.length;l++)for(var c=0;c<s.vertices.length;c++){var d=h.magnitudeSquared(h.sub(o[(l+1)%o.length],u[c])),p=h.magnitudeSquared(h.sub(o[l],u[(c+1)%u.length]));d<e&&p<e&&(o[l].isInternal=!0,u[c].isInternal=!0)}}return t}},36162:(t,e,i)=>{var n={};t.exports=n;var r=i(69643),s=i(69436),o=i(13991),a=i(32663),h=i(41422);n.stack=function(t,e,i,n,s,o,h){for(var u,l=r.create({label:"Stack"}),c=t,d=e,p=0,f=0;f<n;f++){for(var m=0,v=0;v<i;v++){var g=h(c,d,v,f,u,p);if(g){var y=g.bounds.max.y-g.bounds.min.y,_=g.bounds.max.x-g.bounds.min.x;y>m&&(m=y),a.translate(g,{x:.5*_,y:.5*y}),c=g.bounds.max.x+s,r.addBody(l,g),u=g,p+=1}else c+=s}d+=m+o,c=t}return l},n.chain=function(t,e,i,n,a,h){for(var u=t.bodies,l=1;l<u.length;l++){var c=u[l-1],d=u[l],p=c.bounds.max.y-c.bounds.min.y,f=c.bounds.max.x-c.bounds.min.x,m=d.bounds.max.y-d.bounds.min.y,v={bodyA:c,pointA:{x:f*e,y:p*i},bodyB:d,pointB:{x:(d.bounds.max.x-d.bounds.min.x)*n,y:m*a}},g=o.extend(v,h);r.addConstraint(t,s.create(g))}return t.label+=" Chain",t},n.mesh=function(t,e,i,n,a){var h,u,l,c,d,p=t.bodies;for(h=0;h<i;h++){for(u=1;u<e;u++)l=p[u-1+h*e],c=p[u+h*e],r.addConstraint(t,s.create(o.extend({bodyA:l,bodyB:c},a)));if(h>0)for(u=0;u<e;u++)l=p[u+(h-1)*e],c=p[u+h*e],r.addConstraint(t,s.create(o.extend({bodyA:l,bodyB:c},a))),n&&u>0&&(d=p[u-1+(h-1)*e],r.addConstraint(t,s.create(o.extend({bodyA:d,bodyB:c},a)))),n&&u<e-1&&(d=p[u+1+(h-1)*e],r.addConstraint(t,s.create(o.extend({bodyA:d,bodyB:c},a))))}return t.label+=" Mesh",t},n.pyramid=function(t,e,i,r,s,o,h){return n.stack(t,e,i,r,s,o,(function(e,n,o,u,l,c){var d=Math.min(r,Math.ceil(i/2)),p=l?l.bounds.max.x-l.bounds.min.x:0;if(!(u>d||o<(u=d-u)||o>i-1-u))return 1===c&&a.translate(l,{x:(o+(i%2==1?1:-1))*p,y:0}),h(t+(l?o*p:0)+o*s,n,o,u,l,c)}))},n.newtonsCradle=function(t,e,i,n,o){for(var a=r.create({label:"Newtons Cradle"}),u=0;u<i;u++){var l=h.circle(t+u*(1.9*n),e+o,n,{inertia:1/0,restitution:1,friction:0,frictionAir:1e-4,slop:1}),c=s.create({pointA:{x:t+u*(1.9*n),y:e},bodyB:l});r.addBody(a,l),r.addConstraint(a,c)}return a},n.car=function(t,e,i,n,o){var u=a.nextGroup(!0),l=.5*-i+20,c=.5*i-20,d=r.create({label:"Car"}),p=h.rectangle(t,e,i,n,{collisionFilter:{group:u},chamfer:{radius:.5*n},density:2e-4}),f=h.circle(t+l,e+0,o,{collisionFilter:{group:u},friction:.8}),m=h.circle(t+c,e+0,o,{collisionFilter:{group:u},friction:.8}),v=s.create({bodyB:p,pointB:{x:l,y:0},bodyA:f,stiffness:1,length:0}),g=s.create({bodyB:p,pointB:{x:c,y:0},bodyA:m,stiffness:1,length:0});return r.addBody(d,p),r.addBody(d,f),r.addBody(d,m),r.addConstraint(d,v),r.addConstraint(d,g),d},n.softBody=function(t,e,i,r,s,a,u,l,c,d){c=o.extend({inertia:1/0},c),d=o.extend({stiffness:.2,render:{type:"line",anchors:!1}},d);var p=n.stack(t,e,i,r,s,a,(function(t,e){return h.circle(t,e,l,c)}));return n.mesh(p,i,r,u,d),p.label="Soft Body",p}},58383:(t,e,i)=>{var n={};t.exports=n;var r=i(39646),s=i(13991);n.fromVertices=function(t){for(var e={},i=0;i<t.length;i++){var n=(i+1)%t.length,o=r.normalise({x:t[n].y-t[i].y,y:t[i].x-t[n].x}),a=0===o.y?1/0:o.x/o.y;e[a=a.toFixed(3).toString()]=o}return s.values(e)},n.rotate=function(t,e){if(0!==e)for(var i=Math.cos(e),n=Math.sin(e),r=0;r<t.length;r++){var s,o=t[r];s=o.x*i-o.y*n,o.y=o.x*n+o.y*i,o.x=s}}},17983:t=>{var e={};t.exports=e,e.create=function(t){var i={min:{x:0,y:0},max:{x:0,y:0}};return t&&e.update(i,t),i},e.update=function(t,e,i){t.min.x=1/0,t.max.x=-1/0,t.min.y=1/0,t.max.y=-1/0;for(var n=0;n<e.length;n++){var r=e[n];r.x>t.max.x&&(t.max.x=r.x),r.x<t.min.x&&(t.min.x=r.x),r.y>t.max.y&&(t.max.y=r.y),r.y<t.min.y&&(t.min.y=r.y)}i&&(i.x>0?t.max.x+=i.x:t.min.x+=i.x,i.y>0?t.max.y+=i.y:t.min.y+=i.y)},e.contains=function(t,e){return e.x>=t.min.x&&e.x<=t.max.x&&e.y>=t.min.y&&e.y<=t.max.y},e.overlaps=function(t,e){return t.min.x<=e.max.x&&t.max.x>=e.min.x&&t.max.y>=e.min.y&&t.min.y<=e.max.y},e.translate=function(t,e){t.min.x+=e.x,t.max.x+=e.x,t.min.y+=e.y,t.max.y+=e.y},e.shift=function(t,e){var i=t.max.x-t.min.x,n=t.max.y-t.min.y;t.min.x=e.x,t.max.x=e.x+i,t.min.y=e.y,t.max.y=e.y+n}},34968:(t,e,i)=>{var n={};t.exports=n;i(17983);var r=i(13991);n.pathToVertices=function(t,e){"undefined"==typeof window||"SVGPathSeg"in window||r.warn("Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.");var i,s,o,a,h,u,l,c,d,p,f,m=[],v=0,g=0,y=0;e=e||15;var _=function(t,e,i){var n=i%2==1&&i>1;if(!d||t!=d.x||e!=d.y){d&&n?(p=d.x,f=d.y):(p=0,f=0);var r={x:p+t,y:f+e};!n&&d||(d=r),m.push(r),g=p+t,y=f+e}},x=function(t){var e=t.pathSegTypeAsLetter.toUpperCase();if("Z"!==e){switch(e){case"M":case"L":case"T":case"C":case"S":case"Q":g=t.x,y=t.y;break;case"H":g=t.x;break;case"V":y=t.y}_(g,y,t.pathSegType)}};for(n._svgPathToAbsolute(t),o=t.getTotalLength(),u=[],i=0;i<t.pathSegList.numberOfItems;i+=1)u.push(t.pathSegList.getItem(i));for(l=u.concat();v<o;){if((h=u[t.getPathSegAtLength(v)])!=c){for(;l.length&&l[0]!=h;)x(l.shift());c=h}switch(h.pathSegTypeAsLetter.toUpperCase()){case"C":case"T":case"S":case"Q":case"A":a=t.getPointAtLength(v),_(a.x,a.y,0)}v+=e}for(i=0,s=l.length;i<s;++i)x(l[i]);return m},n._svgPathToAbsolute=function(t){for(var e,i,n,r,s,o,a=t.pathSegList,h=0,u=0,l=a.numberOfItems,c=0;c<l;++c){var d=a.getItem(c),p=d.pathSegTypeAsLetter;if(/[MLHVCSQTA]/.test(p))"x"in d&&(h=d.x),"y"in d&&(u=d.y);else switch("x1"in d&&(n=h+d.x1),"x2"in d&&(s=h+d.x2),"y1"in d&&(r=u+d.y1),"y2"in d&&(o=u+d.y2),"x"in d&&(h+=d.x),"y"in d&&(u+=d.y),p){case"m":a.replaceItem(t.createSVGPathSegMovetoAbs(h,u),c);break;case"l":a.replaceItem(t.createSVGPathSegLinetoAbs(h,u),c);break;case"h":a.replaceItem(t.createSVGPathSegLinetoHorizontalAbs(h),c);break;case"v":a.replaceItem(t.createSVGPathSegLinetoVerticalAbs(u),c);break;case"c":a.replaceItem(t.createSVGPathSegCurvetoCubicAbs(h,u,n,r,s,o),c);break;case"s":a.replaceItem(t.createSVGPathSegCurvetoCubicSmoothAbs(h,u,s,o),c);break;case"q":a.replaceItem(t.createSVGPathSegCurvetoQuadraticAbs(h,u,n,r),c);break;case"t":a.replaceItem(t.createSVGPathSegCurvetoQuadraticSmoothAbs(h,u),c);break;case"a":a.replaceItem(t.createSVGPathSegArcAbs(h,u,d.r1,d.r2,d.angle,d.largeArcFlag,d.sweepFlag),c);break;case"z":case"Z":h=e,u=i}"M"!=p&&"m"!=p||(e=h,i=u)}}},39646:t=>{var e={};t.exports=e,e.create=function(t,e){return{x:t||0,y:e||0}},e.clone=function(t){return{x:t.x,y:t.y}},e.magnitude=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.magnitudeSquared=function(t){return t.x*t.x+t.y*t.y},e.rotate=function(t,e,i){var n=Math.cos(e),r=Math.sin(e);i||(i={});var s=t.x*n-t.y*r;return i.y=t.x*r+t.y*n,i.x=s,i},e.rotateAbout=function(t,e,i,n){var r=Math.cos(e),s=Math.sin(e);n||(n={});var o=i.x+((t.x-i.x)*r-(t.y-i.y)*s);return n.y=i.y+((t.x-i.x)*s+(t.y-i.y)*r),n.x=o,n},e.normalise=function(t){var i=e.magnitude(t);return 0===i?{x:0,y:0}:{x:t.x/i,y:t.y/i}},e.dot=function(t,e){return t.x*e.x+t.y*e.y},e.cross=function(t,e){return t.x*e.y-t.y*e.x},e.cross3=function(t,e,i){return(e.x-t.x)*(i.y-t.y)-(e.y-t.y)*(i.x-t.x)},e.add=function(t,e,i){return i||(i={}),i.x=t.x+e.x,i.y=t.y+e.y,i},e.sub=function(t,e,i){return i||(i={}),i.x=t.x-e.x,i.y=t.y-e.y,i},e.mult=function(t,e){return{x:t.x*e,y:t.y*e}},e.div=function(t,e){return{x:t.x/e,y:t.y/e}},e.perp=function(t,e){return{x:(e=!0===e?-1:1)*-t.y,y:e*t.x}},e.neg=function(t){return{x:-t.x,y:-t.y}},e.angle=function(t,e){return Math.atan2(e.y-t.y,e.x-t.x)},e._temp=[e.create(),e.create(),e.create(),e.create(),e.create(),e.create()]},65714:(t,e,i)=>{var n={};t.exports=n;var r=i(39646),s=i(13991);n.create=function(t,e){for(var i=[],n=0;n<t.length;n++){var r=t[n],s={x:r.x,y:r.y,index:n,body:e,isInternal:!1,contact:null,offset:null};s.contact={vertex:s,normalImpulse:0,tangentImpulse:0},i.push(s)}return i},n.fromPath=function(t,e){var i=[];return t.replace(/L?\s*([-\d.e]+)[\s,]*([-\d.e]+)*/gi,(function(t,e,n){i.push({x:parseFloat(e),y:parseFloat(n)})})),n.create(i,e)},n.centre=function(t){for(var e,i,s,o=n.area(t,!0),a={x:0,y:0},h=0;h<t.length;h++)s=(h+1)%t.length,e=r.cross(t[h],t[s]),i=r.mult(r.add(t[h],t[s]),e),a=r.add(a,i);return r.div(a,6*o)},n.mean=function(t){for(var e={x:0,y:0},i=0;i<t.length;i++)e.x+=t[i].x,e.y+=t[i].y;return r.div(e,t.length)},n.area=function(t,e){for(var i=0,n=t.length-1,r=0;r<t.length;r++)i+=(t[n].x-t[r].x)*(t[n].y+t[r].y),n=r;return e?i/2:Math.abs(i)/2},n.inertia=function(t,e){for(var i,n,s=0,o=0,a=t,h=0;h<a.length;h++)n=(h+1)%a.length,s+=(i=Math.abs(r.cross(a[n],a[h])))*(r.dot(a[n],a[n])+r.dot(a[n],a[h])+r.dot(a[h],a[h])),o+=i;return e/6*(s/o)},n.translate=function(t,e,i){var n;if(i)for(n=0;n<t.length;n++)t[n].x+=e.x*i,t[n].y+=e.y*i;else for(n=0;n<t.length;n++)t[n].x+=e.x,t[n].y+=e.y;return t},n.rotate=function(t,e,i){if(0!==e){for(var n=Math.cos(e),r=Math.sin(e),s=0;s<t.length;s++){var o=t[s],a=o.x-i.x,h=o.y-i.y;o.x=i.x+(a*n-h*r),o.y=i.y+(a*r+h*n)}return t}},n.contains=function(t,e){for(var i=0;i<t.length;i++){var n=t[i],r=t[(i+1)%t.length];if((e.x-n.x)*(r.y-n.y)+(e.y-n.y)*(n.x-r.x)>0)return!1}return!0},n.scale=function(t,e,i,s){if(1===e&&1===i)return t;var o,a;s=s||n.centre(t);for(var h=0;h<t.length;h++)o=t[h],a=r.sub(o,s),t[h].x=s.x+a.x*e,t[h].y=s.y+a.y*i;return t},n.chamfer=function(t,e,i,n,o){e="number"==typeof e?[e]:e||[8],i=void 0!==i?i:-1,n=n||2,o=o||14;for(var a=[],h=0;h<t.length;h++){var u=t[h-1>=0?h-1:t.length-1],l=t[h],c=t[(h+1)%t.length],d=e[h<e.length?h:e.length-1];if(0!==d){var p=r.normalise({x:l.y-u.y,y:u.x-l.x}),f=r.normalise({x:c.y-l.y,y:l.x-c.x}),m=Math.sqrt(2*Math.pow(d,2)),v=r.mult(s.clone(p),d),g=r.normalise(r.mult(r.add(p,f),.5)),y=r.sub(l,r.mult(g,m)),_=i;-1===i&&(_=1.75*Math.pow(d,.32)),(_=s.clamp(_,n,o))%2==1&&(_+=1);for(var x=Math.acos(r.dot(p,f))/_,b=0;b<_;b++)a.push(r.add(r.rotate(v,x*b),y))}else a.push(l)}return a},n.clockwiseSort=function(t){var e=n.mean(t);return t.sort((function(t,i){return r.angle(e,t)-r.angle(e,i)})),t},n.isConvex=function(t){var e,i,n,r,s=0,o=t.length;if(o<3)return null;for(e=0;e<o;e++)if(n=(e+2)%o,r=(t[i=(e+1)%o].x-t[e].x)*(t[n].y-t[i].y),(r-=(t[i].y-t[e].y)*(t[n].x-t[i].x))<0?s|=1:r>0&&(s|=2),3===s)return!1;return 0!==s||null},n.hull=function(t){var e,i,n=[],s=[];for((t=t.slice(0)).sort((function(t,e){var i=t.x-e.x;return 0!==i?i:t.y-e.y})),i=0;i<t.length;i+=1){for(e=t[i];s.length>=2&&r.cross3(s[s.length-2],s[s.length-1],e)<=0;)s.pop();s.push(e)}for(i=t.length-1;i>=0;i-=1){for(e=t[i];n.length>=2&&r.cross3(n[n.length-2],n[n.length-1],e)<=0;)n.pop();n.push(e)}return n.pop(),s.pop(),n.concat(s)}},94323:(t,e,i)=>{var n=i(97461),r={name:"matter-attractors",version:"0.1.7",for:"matter-js@^0.14.2",silent:!0,install:function(t){t.after("Body.create",(function(){r.Body.init(this)})),t.before("Engine.update",(function(t){r.Engine.update(t)}))},Body:{init:function(t){t.plugin.attractors=t.plugin.attractors||[]}},Engine:{update:function(t){for(var e=t.world,i=n.Composite.allBodies(e),r=0;r<i.length;r+=1){var s=i[r],o=s.plugin.attractors;if(o&&o.length>0)for(var a=r+1;a<i.length;a+=1)for(var h=i[a],u=0;u<o.length;u+=1){var l=o[u],c=l;n.Common.isFunction(l)&&(c=l(s,h)),c&&n.Body.applyForce(h,h.position,c)}}}},Attractors:{gravityConstant:.001,gravity:function(t,e){var i=n.Vector.sub(e.position,t.position),s=n.Vector.magnitudeSquared(i)||1e-4,o=n.Vector.normalise(i),a=-r.Attractors.gravityConstant*(t.mass*e.mass/s),h=n.Vector.mult(o,a);n.Body.applyForce(t,t.position,n.Vector.neg(h)),n.Body.applyForce(e,e.position,h)}}};t.exports=r},35169:t=>{t.exports={name:"matter-collision-events",version:"0.1.6",for:"matter-js@^0.14.2",silent:!0,install:function(t){t.after("Engine.create",(function(){t.Events.on(this,"collisionStart",(function(e){e.pairs.map((function(e){var i=e.bodyA,n=e.bodyB;i.gameObject&&i.gameObject.emit("collide",i,n,e),n.gameObject&&n.gameObject.emit("collide",n,i,e),t.Events.trigger(i,"onCollide",{pair:e}),t.Events.trigger(n,"onCollide",{pair:e}),i.onCollideCallback&&i.onCollideCallback(e),n.onCollideCallback&&n.onCollideCallback(e),i.onCollideWith[n.id]&&i.onCollideWith[n.id](n,e),n.onCollideWith[i.id]&&n.onCollideWith[i.id](i,e)}))})),t.Events.on(this,"collisionActive",(function(e){e.pairs.map((function(e){var i=e.bodyA,n=e.bodyB;i.gameObject&&i.gameObject.emit("collideActive",i,n,e),n.gameObject&&n.gameObject.emit("collideActive",n,i,e),t.Events.trigger(i,"onCollideActive",{pair:e}),t.Events.trigger(n,"onCollideActive",{pair:e}),i.onCollideActiveCallback&&i.onCollideActiveCallback(e),n.onCollideActiveCallback&&n.onCollideActiveCallback(e)}))})),t.Events.on(this,"collisionEnd",(function(e){e.pairs.map((function(e){var i=e.bodyA,n=e.bodyB;i.gameObject&&i.gameObject.emit("collideEnd",i,n,e),n.gameObject&&n.gameObject.emit("collideEnd",n,i,e),t.Events.trigger(i,"onCollideEnd",{pair:e}),t.Events.trigger(n,"onCollideEnd",{pair:e}),i.onCollideEndCallback&&i.onCollideEndCallback(e),n.onCollideEndCallback&&n.onCollideEndCallback(e)}))}))}))}}},98439:(t,e,i)=>{var n=i(97461),r={name:"matter-wrap",version:"0.1.4",for:"matter-js@^0.14.2",silent:!0,install:function(t){t.after("Engine.update",(function(){r.Engine.update(this)}))},Engine:{update:function(t){for(var e=t.world,i=n.Composite.allBodies(e),s=n.Composite.allComposites(e),o=0;o<i.length;o+=1){var a=i[o];a.plugin.wrap&&r.Body.wrap(a,a.plugin.wrap)}for(o=0;o<s.length;o+=1){var h=s[o];h.plugin.wrap&&r.Composite.wrap(h,h.plugin.wrap)}}},Bounds:{wrap:function(t,e){var i=null,n=null;if(void 0!==e.min.x&&void 0!==e.max.x&&(t.min.x>e.max.x?i=e.min.x-t.max.x:t.max.x<e.min.x&&(i=e.max.x-t.min.x)),void 0!==e.min.y&&void 0!==e.max.y&&(t.min.y>e.max.y?n=e.min.y-t.max.y:t.max.y<e.min.y&&(n=e.max.y-t.min.y)),null!==i||null!==n)return{x:i||0,y:n||0}}},Body:{wrap:function(t,e){var i=r.Bounds.wrap(t.bounds,e);return i&&n.Body.translate(t,i),i}},Composite:{bounds:function(t){for(var e=n.Composite.allBodies(t),i=[],r=0;r<e.length;r+=1){var s=e[r];i.push(s.bounds.min,s.bounds.max)}return n.Bounds.create(i)},wrap:function(t,e){var i=r.Bounds.wrap(r.Composite.bounds(t),e);return i&&n.Composite.translate(t,i),i}}};t.exports=r},6384:t=>{function e(t,e,i){i=i||0;var n,r,s,o,a,h,u,l=[0,0];return n=t[1][1]-t[0][1],r=t[0][0]-t[1][0],s=n*t[0][0]+r*t[0][1],o=e[1][1]-e[0][1],a=e[0][0]-e[1][0],h=o*e[0][0]+a*e[0][1],T(u=n*a-o*r,0,i)||(l[0]=(a*s-r*h)/u,l[1]=(n*h-o*s)/u),l}function i(t,e,i,n){var r=e[0]-t[0],s=e[1]-t[1],o=n[0]-i[0],a=n[1]-i[1];if(o*s-a*r==0)return!1;var h=(r*(i[1]-t[1])+s*(t[0]-i[0]))/(o*s-a*r),u=(o*(t[1]-i[1])+a*(i[0]-t[0]))/(a*r-o*s);return h>=0&&h<=1&&u>=0&&u<=1}function n(t,e,i){return(e[0]-t[0])*(i[1]-t[1])-(i[0]-t[0])*(e[1]-t[1])}function r(t,e,i){return n(t,e,i)>0}function s(t,e,i){return n(t,e,i)>=0}function o(t,e,i){return n(t,e,i)<0}function a(t,e,i){return n(t,e,i)<=0}t.exports={decomp:function(t){var e=x(t);return e.length>0?b(t,e):[t]},quickDecomp:function t(e,i,n,h,u,l,m){l=l||100,m=m||0,u=u||25,i=void 0!==i?i:[],n=n||[],h=h||[];var v=[0,0],g=[0,0],_=[0,0],x=0,b=0,T=0,M=0,S=0,E=0,L=0,A=[],D=[],P=e,C=e;if(C.length<3)return i;if(++m>l)return console.warn("quickDecomp: max level ("+l+") reached."),i;for(var O=0;O<e.length;++O)if(f(P,O)){n.push(P[O]),x=b=Number.MAX_VALUE;for(var k=0;k<e.length;++k)r(d(P,O-1),d(P,O),d(P,k))&&a(d(P,O-1),d(P,O),d(P,k-1))&&(_=w(d(P,O-1),d(P,O),d(P,k),d(P,k-1)),o(d(P,O+1),d(P,O),_)&&(T=c(P[O],_))<b&&(b=T,g=_,E=k)),r(d(P,O+1),d(P,O),d(P,k+1))&&a(d(P,O+1),d(P,O),d(P,k))&&(_=w(d(P,O+1),d(P,O),d(P,k),d(P,k+1)),r(d(P,O-1),d(P,O),_)&&(T=c(P[O],_))<x&&(x=T,v=_,S=k));if(E===(S+1)%e.length)_[0]=(g[0]+v[0])/2,_[1]=(g[1]+v[1])/2,h.push(_),O<S?(p(A,P,O,S+1),A.push(_),D.push(_),0!==E&&p(D,P,E,P.length),p(D,P,0,O+1)):(0!==O&&p(A,P,O,P.length),p(A,P,0,S+1),A.push(_),D.push(_),p(D,P,E,O+1));else{if(E>S&&(S+=e.length),M=Number.MAX_VALUE,S<E)return i;for(k=E;k<=S;++k)s(d(P,O-1),d(P,O),d(P,k))&&a(d(P,O+1),d(P,O),d(P,k))&&(T=c(d(P,O),d(P,k)))<M&&y(P,O,k)&&(M=T,L=k%e.length);O<L?(p(A,P,O,L+1),0!==L&&p(D,P,L,C.length),p(D,P,0,O+1)):(0!==O&&p(A,P,O,C.length),p(A,P,0,L+1),p(D,P,L,O+1))}return A.length<D.length?(t(A,i,n,h,u,l,m),t(D,i,n,h,u,l,m)):(t(D,i,n,h,u,l,m),t(A,i,n,h,u,l,m)),i}return i.push(e),i},isSimple:function(t){var e,n=t;for(e=0;e<n.length-1;e++)for(var r=0;r<e-1;r++)if(i(n[e],n[e+1],n[r],n[r+1]))return!1;for(e=1;e<n.length-2;e++)if(i(n[0],n[n.length-1],n[e],n[e+1]))return!1;return!0},removeCollinearPoints:function(t,e){for(var i=0,n=t.length-1;t.length>3&&n>=0;--n)l(d(t,n-1),d(t,n),d(t,n+1),e)&&(t.splice(n%t.length,1),i++);return i},removeDuplicatePoints:function(t,e){for(var i=t.length-1;i>=1;--i)for(var n=t[i],r=i-1;r>=0;--r)M(n,t[r],e)&&t.splice(i,1)},makeCCW:function(t){for(var e=0,i=t,n=1;n<t.length;++n)(i[n][1]<i[e][1]||i[n][1]===i[e][1]&&i[n][0]>i[e][0])&&(e=n);return!r(d(t,e-1),d(t,e),d(t,e+1))&&(function(t){for(var e=[],i=t.length,n=0;n!==i;n++)e.push(t.pop());for(n=0;n!==i;n++)t[n]=e[n]}(t),!0)}};var h=[],u=[];function l(t,e,i,r){if(r){var s=h,o=u;s[0]=e[0]-t[0],s[1]=e[1]-t[1],o[0]=i[0]-e[0],o[1]=i[1]-e[1];var a=s[0]*o[0]+s[1]*o[1],l=Math.sqrt(s[0]*s[0]+s[1]*s[1]),c=Math.sqrt(o[0]*o[0]+o[1]*o[1]);return Math.acos(a/(l*c))<r}return 0===n(t,e,i)}function c(t,e){var i=e[0]-t[0],n=e[1]-t[1];return i*i+n*n}function d(t,e){var i=t.length;return t[e<0?e%i+i:e%i]}function p(t,e,i,n){for(var r=i;r<n;r++)t.push(e[r])}function f(t,e){return o(d(t,e-1),d(t,e),d(t,e+1))}var m=[],v=[];function g(t,i,n){var r,o,h=m,u=v;if(s(d(t,i+1),d(t,i),d(t,n))&&a(d(t,i-1),d(t,i),d(t,n)))return!1;o=c(d(t,i),d(t,n));for(var l=0;l!==t.length;++l)if((l+1)%t.length!==i&&l!==i&&s(d(t,i),d(t,n),d(t,l+1))&&a(d(t,i),d(t,n),d(t,l))&&(h[0]=d(t,i),h[1]=d(t,n),u[0]=d(t,l),u[1]=d(t,l+1),r=e(h,u),c(d(t,i),r)<o))return!1;return!0}function y(t,e,n){for(var r=0;r!==t.length;++r)if(r!==e&&r!==n&&(r+1)%t.length!==e&&(r+1)%t.length!==n&&i(d(t,e),d(t,n),d(t,r),d(t,r+1)))return!1;return!0}function _(t,e,i,n){var r=n||[];if(function(t){t.length=0}(r),e<i)for(var s=e;s<=i;s++)r.push(t[s]);else{for(s=0;s<=i;s++)r.push(t[s]);for(s=e;s<t.length;s++)r.push(t[s])}return r}function x(t){for(var e=[],i=[],n=[],r=[],s=Number.MAX_VALUE,o=0;o<t.length;++o)if(f(t,o))for(var a=0;a<t.length;++a)if(g(t,o,a)){i=x(_(t,o,a,r)),n=x(_(t,a,o,r));for(var h=0;h<n.length;h++)i.push(n[h]);i.length<s&&(e=i,s=i.length,e.push([d(t,o),d(t,a)]))}return e}function b(t,e){if(0===e.length)return[t];if(e instanceof Array&&e.length&&e[0]instanceof Array&&2===e[0].length&&e[0][0]instanceof Array){for(var i=[t],n=0;n<e.length;n++)for(var r=e[n],s=0;s<i.length;s++){var o=b(i[s],r);if(o){i.splice(s,1),i.push(o[0],o[1]);break}}return i}r=e,n=t.indexOf(r[0]),s=t.indexOf(r[1]);return-1!==n&&-1!==s&&[_(t,n,s),_(t,s,n)]}function w(t,e,i,n,r){r=r||0;var s=e[1]-t[1],o=t[0]-e[0],a=s*t[0]+o*t[1],h=n[1]-i[1],u=i[0]-n[0],l=h*i[0]+u*i[1],c=s*u-h*o;return T(c,0,r)?[0,0]:[(u*a-o*l)/c,(s*l-h*a)/c]}function T(t,e,i){return i=i||0,Math.abs(t-e)<=i}function M(t,e,i){return T(t[0],e[0],i)&&T(t[1],e[1],i)}},80565:(t,e,i)=>{var n=new(i(47379))({initialize:function(t){this.pluginManager=t,this.game=t.game},init:function(){},start:function(){},stop:function(){},destroy:function(){this.pluginManager=null,this.game=null,this.scene=null,this.systems=null}});t.exports=n},97713:t=>{var e={Global:["game","anims","cache","plugins","registry","scale","sound","textures"],CoreScene:["EventEmitter","CameraManager","GameObjectCreator","GameObjectFactory","ScenePlugin","DisplayList","UpdateList"],DefaultScene:["Clock","DataManagerPlugin","InputPlugin","Loader","TweenManager","LightsPlugin"]};e.DefaultScene.push("CameraManager3D"),e.Global.push("facebook"),t.exports=e},50354:t=>{var e={},i={},n={register:function(t,i,n,r){void 0===r&&(r=!1),e[t]={plugin:i,mapping:n,custom:r}},registerCustom:function(t,e,n,r){i[t]={plugin:e,mapping:n,data:r}},hasCore:function(t){return e.hasOwnProperty(t)},hasCustom:function(t){return i.hasOwnProperty(t)},getCore:function(t){return e[t]},getCustom:function(t){return i[t]},getCustomClass:function(t){return i.hasOwnProperty(t)?i[t].plugin:null},remove:function(t){e.hasOwnProperty(t)&&delete e[t]},removeCustom:function(t){i.hasOwnProperty(t)&&delete i[t]},destroyCorePlugins:function(){for(var t in e)e.hasOwnProperty(t)&&delete e[t]},destroyCustomPlugins:function(){for(var t in i)i.hasOwnProperty(t)&&delete i[t]}};t.exports=n},18261:(t,e,i)=>{var n=i(47379),r=i(80827),s=i(17168),o=i(16656),a=i(17517),h=i(81342),u=i(81769),l=i(50354),c=i(60625),d=new n({Extends:s,initialize:function(t){s.call(this),this.game=t,this.plugins=[],this.scenePlugins=[],this._pendingGlobal=[],this._pendingScene=[],t.isBooted?this.boot():t.events.once(r.BOOT,this.boot,this)},boot:function(){var t,e,i,n,s,o,a,h=this.game.config,l=h.installGlobalPlugins;for(l=l.concat(this._pendingGlobal),t=0;t<l.length;t++)e=l[t],i=u(e,"key",null),n=u(e,"plugin",null),s=u(e,"start",!1),o=u(e,"mapping",null),a=u(e,"data",null),i&&(n?this.install(i,n,s,o,a):console.warn("Missing `plugin` for key: "+i));for(l=(l=h.installScenePlugins).concat(this._pendingScene),t=0;t<l.length;t++)e=l[t],i=u(e,"key",null),n=u(e,"plugin",null),o=u(e,"mapping",null),i&&(n?this.installScenePlugin(i,n,o):console.warn("Missing `plugin` for key: "+i));this._pendingGlobal=[],this._pendingScene=[],this.game.events.once(r.DESTROY,this.destroy,this)},addToScene:function(t,e,i){var n,r,s,o=this.game,a=t.scene,h=t.settings.map,u=t.settings.isBooted;for(n=0;n<e.length;n++)o[r=e[n]]?(t[r]=o[r],h.hasOwnProperty(r)&&(a[h[r]]=t[r])):"game"===r&&h.hasOwnProperty(r)&&(a[h[r]]=o);for(var c=0;c<i.length;c++)for(s=i[c],n=0;n<s.length;n++)if(r=s[n],l.hasCore(r)){var d=l.getCore(r),p=new d.plugin(a,this);t[d.mapping]=p,d.custom?a[d.mapping]=p:h.hasOwnProperty(d.mapping)&&(a[h[d.mapping]]=p),u&&p.boot()}for(s=this.plugins,n=0;n<s.length;n++){var f=s[n];f.mapping&&(a[f.mapping]=f.plugin)}},getDefaultScenePlugins:function(){var t=this.game.config.defaultPlugins;return t=t.concat(this.scenePlugins)},installScenePlugin:function(t,e,i,n,r){if(void 0===r&&(r=!1),"function"==typeof e){if(l.hasCore(t)){if(!r&&l.hasCore(t))return void console.warn("Scene Plugin key in use: "+t)}else l.register(t,e,i,!0),this.scenePlugins.push(t);if(n){var s=new e(n,this);n.sys[t]=s,i&&""!==i&&(n[i]=s),s.boot()}}else console.warn("Invalid Scene Plugin: "+t)},install:function(t,e,i,n,r){if(void 0===i&&(i=!1),void 0===n&&(n=null),void 0===r&&(r=null),"function"!=typeof e)return console.warn("Invalid Plugin: "+t),null;if(l.hasCustom(t))return console.warn("Plugin key in use: "+t),null;if(null!==n&&(i=!0),this.game.isBooted){if(l.registerCustom(t,e,n,r),i)return this.start(t)}else this._pendingGlobal.push({key:t,plugin:e,start:i,mapping:n,data:r});return null},getIndex:function(t){for(var e=this.plugins,i=0;i<e.length;i++){if(e[i].key===t)return i}return-1},getEntry:function(t){var e=this.getIndex(t);if(-1!==e)return this.plugins[e]},isActive:function(t){var e=this.getEntry(t);return e&&e.active},start:function(t,e){void 0===e&&(e=t);var i=this.getEntry(e);return i&&!i.active?(i.active=!0,i.plugin.start()):i||(i=this.createEntry(t,e)),i?i.plugin:null},createEntry:function(t,e){var i=l.getCustom(t);if(i){var n=new i.plugin(this);i={key:e,plugin:n,active:!0,mapping:i.mapping,data:i.data},this.plugins.push(i),n.init(i.data),n.start()}return i},stop:function(t){var e=this.getEntry(t);return e&&e.active&&(e.active=!1,e.plugin.stop()),this},get:function(t,e){void 0===e&&(e=!0);var i=this.getEntry(t);if(i)return i.plugin;var n=this.getClass(t);return n&&e?(i=this.createEntry(t,t))?i.plugin:null:n||null},getClass:function(t){return l.getCustomClass(t)},removeGlobalPlugin:function(t){var e=this.getEntry(t);e&&c(this.plugins,e),l.removeCustom(t)},removeScenePlugin:function(t){c(this.scenePlugins,t),l.remove(t)},registerGameObject:function(t,e,i){return e&&h.register(t,e),i&&a.register(t,i),this},removeGameObject:function(t,e,i){return void 0===e&&(e=!0),void 0===i&&(i=!0),e&&h.remove(t),i&&a.remove(t),this},registerFileType:function(t,e,i){o.register(t,e),i&&i.sys.load&&(i.sys.load[t]=e)},destroy:function(){for(var t=0;t<this.plugins.length;t++)this.plugins[t].plugin.destroy();l.destroyCustomPlugins(),this.game.noReturn&&l.destroyCorePlugins(),this.game=null,this.plugins=[],this.scenePlugins=[]}});t.exports=d},94869:(t,e,i)=>{var n=i(80565),r=i(47379),s=i(88637),o=new r({Extends:n,initialize:function(t,e){n.call(this,e),this.scene=t,this.systems=t.sys,t.sys.events.once(s.BOOT,this.boot,this)},boot:function(){},destroy:function(){this.pluginManager=null,this.game=null,this.scene=null,this.systems=null}});t.exports=o},65604:(t,e,i)=>{t.exports={BasePlugin:i(80565),DefaultPlugins:i(97713),PluginCache:i(50354),PluginManager:i(18261),ScenePlugin:i(94869)}},76736:()=>{Array.prototype.forEach||(Array.prototype.forEach=function(t){"use strict";if(null==this)throw new TypeError;var e=Object(this),i=e.length>>>0;if("function"!=typeof t)throw new TypeError;for(var n=arguments.length>=2?arguments[1]:void 0,r=0;r<i;r++)r in e&&t.call(n,e[r],r,e)})},50083:()=>{Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)})},72618:()=>{!function(){function t(t){t&&(t.setTargetAtTime||(t.setTargetAtTime=t.setTargetValueAtTime))}window.hasOwnProperty("webkitAudioContext")&&!window.hasOwnProperty("AudioContext")&&(window.AudioContext=webkitAudioContext,AudioContext.prototype.hasOwnProperty("createGain")||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),AudioContext.prototype.hasOwnProperty("createDelay")||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),AudioContext.prototype.hasOwnProperty("createScriptProcessor")||(AudioContext.prototype.createScriptProcessor=AudioContext.prototype.createJavaScriptNode),AudioContext.prototype.hasOwnProperty("createPeriodicWave")||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),AudioContext.prototype.internal_createGain=AudioContext.prototype.createGain,AudioContext.prototype.createGain=function(){var e=this.internal_createGain();return t(e.gain),e},AudioContext.prototype.internal_createDelay=AudioContext.prototype.createDelay,AudioContext.prototype.createDelay=function(e){var i=e?this.internal_createDelay(e):this.internal_createDelay();return t(i.delayTime),i},AudioContext.prototype.internal_createBufferSource=AudioContext.prototype.createBufferSource,AudioContext.prototype.createBufferSource=function(){var e=this.internal_createBufferSource();return e.start?(e.internal_start=e.start,e.start=function(t,i,n){void 0!==n?e.internal_start(t||0,i,n):e.internal_start(t||0,i||0)}):e.start=function(t,e,i){e||i?this.noteGrainOn(t||0,e,i):this.noteOn(t||0)},e.stop?(e.internal_stop=e.stop,e.stop=function(t){e.internal_stop(t||0)}):e.stop=function(t){this.noteOff(t||0)},t(e.playbackRate),e},AudioContext.prototype.internal_createDynamicsCompressor=AudioContext.prototype.createDynamicsCompressor,AudioContext.prototype.createDynamicsCompressor=function(){var e=this.internal_createDynamicsCompressor();return t(e.threshold),t(e.knee),t(e.ratio),t(e.reduction),t(e.attack),t(e.release),e},AudioContext.prototype.internal_createBiquadFilter=AudioContext.prototype.createBiquadFilter,AudioContext.prototype.createBiquadFilter=function(){var e=this.internal_createBiquadFilter();return t(e.frequency),t(e.detune),t(e.Q),t(e.gain),e},AudioContext.prototype.hasOwnProperty("createOscillator")&&(AudioContext.prototype.internal_createOscillator=AudioContext.prototype.createOscillator,AudioContext.prototype.createOscillator=function(){var e=this.internal_createOscillator();return e.start?(e.internal_start=e.start,e.start=function(t){e.internal_start(t||0)}):e.start=function(t){this.noteOn(t||0)},e.stop?(e.internal_stop=e.stop,e.stop=function(t){e.internal_stop(t||0)}):e.stop=function(t){this.noteOff(t||0)},e.setPeriodicWave||(e.setPeriodicWave=e.setWaveTable),t(e.frequency),t(e.detune),e})),window.hasOwnProperty("webkitOfflineAudioContext")&&!window.hasOwnProperty("OfflineAudioContext")&&(window.OfflineAudioContext=webkitOfflineAudioContext)}()},31925:()=>{Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)})},37563:()=>{if("function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var t=function(t){var e=new Array;window[t]=function(t){if("number"==typeof t){Array.call(this,t),this.length=t;for(var e=0;e<this.length;e++)this[e]=0}else{Array.call(this,t.length),this.length=t.length;for(e=0;e<this.length;e++)this[e]=t[e]}},window[t].prototype=e,window[t].constructor=window[t]};t("Float32Array"),t("Uint32Array"),t("Uint16Array"),t("Int16Array"),t("ArrayBuffer")}},99625:()=>{window.console||(window.console={},window.console.log=window.console.assert=function(){},window.console.warn=window.console.assert=function(){})},81194:(t,e,i)=>{i(76736),i(50083),i(72618),i(99625),i(31925),i(8432),i(56140),i(37563)},8432:()=>{!function(){if("performance"in window==!1&&(window.performance={}),Date.now=Date.now||function(){return(new Date).getTime()},"now"in window.performance==!1){var t=Date.now();performance.timing&&performance.timing.navigationStart&&(t=performance.timing.navigationStart),window.performance.now=function(){return Date.now()-t}}}()},56140:()=>{for(var t=Date.now(),e=["ms","moz","webkit","o"],i=0;i<e.length&&!window.requestAnimationFrame;i++)window.requestAnimationFrame=window[e[i]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[i]+"CancelAnimationFrame"]||window[e[i]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e){if("function"!=typeof e)throw new TypeError(e+"is not a function");var i=Date.now(),n=16+t-i;return n<0&&(n=0),t=i,setTimeout((function(){t=Date.now(),e(performance.now())}),n)}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(t){clearTimeout(t)})},35869:t=>{t.exports={SKIP_CHECK:-1,NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16,ERASE:17,SOURCE_IN:18,SOURCE_OUT:19,SOURCE_ATOP:20,DESTINATION_OVER:21,DESTINATION_IN:22,DESTINATION_OUT:23,DESTINATION_ATOP:24,LIGHTER:25,COPY:26,XOR:27}},28425:t=>{t.exports={DEFAULT:0,LINEAR:0,NEAREST:1}},308:(t,e,i)=>{var n=i(31615),r=i(25920),s=i(47379),o=i(50460),a=i(79129),h=i(66144),u=i(65492),l=new s({initialize:function(t){this.game=t,this.type=o.CANVAS,this.drawCount=0,this.width=0,this.height=0,this.config={clearBeforeRender:t.config.clearBeforeRender,backgroundColor:t.config.backgroundColor,resolution:t.config.resolution,antialias:t.config.antialias,roundPixels:t.config.roundPixels},this.gameCanvas=t.canvas;var e={alpha:t.config.transparent,desynchronized:t.config.desynchronized};this.gameContext=this.game.config.context?this.game.config.context:this.gameCanvas.getContext("2d",e),this.currentContext=this.gameContext,this.antialias=t.config.antialias,this.blendModes=a(),this.snapshotState={x:0,y:0,width:1,height:1,getPixel:!1,callback:null,type:"image/png",encoder:.92},this._tempMatrix1=new u,this._tempMatrix2=new u,this._tempMatrix3=new u,this._tempMatrix4=new u,this.init()},init:function(){this.game.scale.on(h.RESIZE,this.onResize,this);var t=this.game.scale.baseSize;this.resize(t.width,t.height)},onResize:function(t,e){e.width===this.width&&e.height===this.height||this.resize(e.width,e.height)},resize:function(t,e){this.width=t,this.height=e},resetTransform:function(){this.currentContext.setTransform(1,0,0,1,0,0)},setBlendMode:function(t){return this.currentContext.globalCompositeOperation=t,this},setContext:function(t){return this.currentContext=t||this.gameContext,this},setAlpha:function(t){return this.currentContext.globalAlpha=t,this},preRender:function(){var t=this.gameContext,e=this.config,i=this.width,n=this.height;t.globalAlpha=1,t.globalCompositeOperation="source-over",t.setTransform(1,0,0,1,0,0),e.clearBeforeRender&&t.clearRect(0,0,i,n),e.transparent||(t.fillStyle=e.backgroundColor.rgba,t.fillRect(0,0,i,n)),t.save(),this.drawCount=0},render:function(t,e,i,n){var s=e.list,o=s.length,a=n._cx,h=n._cy,u=n._cw,l=n._ch,c=n.renderToTexture?n.context:t.sys.context;c.save(),this.game.scene.customViewports&&(c.beginPath(),c.rect(a,h,u,l),c.clip()),this.currentContext=c;var d=n.mask;d&&d.preRenderCanvas(this,null,n._maskCamera),n.transparent||(c.fillStyle=n.backgroundColor.rgba,c.fillRect(a,h,u,l)),c.globalAlpha=n.alpha,c.globalCompositeOperation="source-over",this.drawCount+=s.length,n.renderToTexture&&n.emit(r.PRE_RENDER,n),n.matrix.copyToContext(c);for(var p=0;p<o;p++){var f=s[p];f.willRender(n)&&(f.mask&&f.mask.preRenderCanvas(this,f,n),f.renderCanvas(this,f,i,n),f.mask&&f.mask.postRenderCanvas(this,f,n))}c.setTransform(1,0,0,1,0,0),c.globalCompositeOperation="source-over",c.globalAlpha=1,n.flashEffect.postRenderCanvas(c),n.fadeEffect.postRenderCanvas(c),n.dirty=!1,d&&d.postRenderCanvas(this),c.restore(),n.renderToTexture&&(n.emit(r.POST_RENDER,n),n.renderToGame&&t.sys.context.drawImage(n.canvas,a,h))},postRender:function(){this.gameContext.restore();var t=this.snapshotState;t.callback&&(n(this.gameCanvas,t),t.callback=null)},snapshotCanvas:function(t,e,i,r,s,o,a,h,u){void 0===i&&(i=!1),this.snapshotArea(r,s,o,a,e,h,u);var l=this.snapshotState;return l.getPixel=i,n(this.canvas,l),l.callback=null,this},snapshot:function(t,e,i){return this.snapshotArea(0,0,this.gameCanvas.width,this.gameCanvas.height,t,e,i)},snapshotArea:function(t,e,i,n,r,s,o){var a=this.snapshotState;return a.callback=r,a.type=s,a.encoder=o,a.getPixel=!1,a.x=t,a.y=e,a.width=Math.min(i,this.gameCanvas.width),a.height=Math.min(n,this.gameCanvas.height),this},snapshotPixel:function(t,e,i){return this.snapshotArea(t,e,1,1,i),this.snapshotState.getPixel=!0,this},batchSprite:function(t,e,i,n){var r=i.alpha*t.alpha;if(0!==r){var s=this.currentContext,o=this._tempMatrix1,a=this._tempMatrix2,h=this._tempMatrix3,u=e.canvasData,l=u.x,c=u.y,d=e.cutWidth,p=e.cutHeight,f=e.customPivot,m=e.source.resolution,v=t.displayOriginX,g=t.displayOriginY,y=-v+e.x,_=-g+e.y;if(t.isCropped){var x=t._crop;x.flipX===t.flipX&&x.flipY===t.flipY||e.updateCropUVs(x,t.flipX,t.flipY),d=x.cw,p=x.ch,l=x.cx,c=x.cy,y=-v+x.x,_=-g+x.y,t.flipX&&(y>=0?y=-(y+d):y<0&&(y=Math.abs(y)-d)),t.flipY&&(_>=0?_=-(_+p):_<0&&(_=Math.abs(_)-p))}var b=1,w=1;t.flipX&&(f||(y+=-e.realWidth+2*v),b=-1),t.flipY&&(f||(_+=-e.realHeight+2*g),w=-1),a.applyITRS(t.x,t.y,t.rotation,t.scaleX*b,t.scaleY*w),o.copyFrom(i.matrix),n?(o.multiplyWithOffset(n,-i.scrollX*t.scrollFactorX,-i.scrollY*t.scrollFactorY),a.e=t.x,a.f=t.y,o.multiply(a,h)):(a.e-=i.scrollX*t.scrollFactorX,a.f-=i.scrollY*t.scrollFactorY,o.multiply(a,h)),s.save(),h.setToContext(s),s.globalCompositeOperation=this.blendModes[t.blendMode],s.globalAlpha=r,s.imageSmoothingEnabled=!(!this.antialias||e.source.scaleMode),s.drawImage(e.source.image,l,c,d,p,y,_,d/m,p/m),s.restore()}},destroy:function(){this.gameCanvas=null,this.gameContext=null,this.game=null}});t.exports=l},78889:(t,e,i)=>{t.exports={CanvasRenderer:i(308),GetBlendModes:i(79129),SetTransform:i(55468)}},79129:(t,e,i)=>{var n=i(35869),r=i(86877);t.exports=function(){var t=[],e=r.supportNewBlendModes,i="source-over";return t[n.NORMAL]=i,t[n.ADD]="lighter",t[n.MULTIPLY]=e?"multiply":i,t[n.SCREEN]=e?"screen":i,t[n.OVERLAY]=e?"overlay":i,t[n.DARKEN]=e?"darken":i,t[n.LIGHTEN]=e?"lighten":i,t[n.COLOR_DODGE]=e?"color-dodge":i,t[n.COLOR_BURN]=e?"color-burn":i,t[n.HARD_LIGHT]=e?"hard-light":i,t[n.SOFT_LIGHT]=e?"soft-light":i,t[n.DIFFERENCE]=e?"difference":i,t[n.EXCLUSION]=e?"exclusion":i,t[n.HUE]=e?"hue":i,t[n.SATURATION]=e?"saturation":i,t[n.COLOR]=e?"color":i,t[n.LUMINOSITY]=e?"luminosity":i,t[n.ERASE]="destination-out",t[n.SOURCE_IN]="source-in",t[n.SOURCE_OUT]="source-out",t[n.SOURCE_ATOP]="source-atop",t[n.DESTINATION_OVER]="destination-over",t[n.DESTINATION_IN]="destination-in",t[n.DESTINATION_OUT]="destination-out",t[n.DESTINATION_ATOP]="destination-atop",t[n.LIGHTER]="lighter",t[n.COPY]="copy",t[n.XOR]="xor",t}},55468:t=>{t.exports=function(t,e,i,n,r){var s=n.alpha*i.alpha;if(s<=0)return!1;var o=t._tempMatrix1.copyFromArray(n.matrix.matrix),a=t._tempMatrix2.applyITRS(i.x,i.y,i.rotation,i.scaleX,i.scaleY),h=t._tempMatrix3;return r?(o.multiplyWithOffset(r,-n.scrollX*i.scrollFactorX,-n.scrollY*i.scrollFactorY),a.e=i.x,a.f=i.y,o.multiply(a,h)):(a.e-=n.scrollX*i.scrollFactorX,a.f-=n.scrollY*i.scrollFactorY,o.multiply(a,h)),e.globalCompositeOperation=t.blendModes[i.blendMode],e.globalAlpha=s,e.save(),h.setToContext(e),e.imageSmoothingEnabled=!(!t.antialias||i.frame&&i.frame.source.scaleMode),!0}},8270:(t,e,i)=>{t.exports={Canvas:i(78889),Snapshot:i(3006),WebGL:i(51087)}},31615:(t,e,i)=>{var n=i(89429),r=i(81615),s=i(81769);t.exports=function(t,e){var i=s(e,"callback"),o=s(e,"type","image/png"),a=s(e,"encoder",.92),h=Math.abs(Math.round(s(e,"x",0))),u=Math.abs(Math.round(s(e,"y",0))),l=s(e,"width",t.width),c=s(e,"height",t.height);if(s(e,"getPixel",!1)){var d=t.getContext("2d").getImageData(h,u,1,1).data;i.call(null,new r(d[0],d[1],d[2],d[3]/255))}else if(0!==h||0!==u||l!==t.width||c!==t.height){var p=n.createWebGL(this,l,c);p.getContext("2d").drawImage(t,h,u,l,c,0,0,l,c);var f=new Image;f.onerror=function(){i.call(null),n.remove(p)},f.onload=function(){i.call(null,f),n.remove(p)},f.src=p.toDataURL(o,a)}else{var m=new Image;m.onerror=function(){i.call(null)},m.onload=function(){i.call(null,m)},m.src=t.toDataURL(o,a)}}},83814:(t,e,i)=>{var n=i(89429),r=i(81615),s=i(81769);t.exports=function(t,e){var i=t.getContext("experimental-webgl"),o=s(e,"callback"),a=s(e,"type","image/png"),h=s(e,"encoder",.92),u=s(e,"x",0),l=s(e,"y",0),c=s(e,"getPixel",!1),d=s(e,"isFramebuffer",!1),p=d?s(e,"bufferWidth",1):i.drawingBufferWidth,f=d?s(e,"bufferHeight",1):i.drawingBufferHeight;if(c){var m=new Uint8Array(4),v=d?l:f-l;i.readPixels(u,v,1,1,i.RGBA,i.UNSIGNED_BYTE,m),o.call(null,new r(m[0],m[1],m[2],m[3]/255))}else{var g=s(e,"width",p),y=s(e,"height",f),_=g*y*4,x=new Uint8Array(_);i.readPixels(u,f-l-y,g,y,i.RGBA,i.UNSIGNED_BYTE,x);for(var b=n.createWebGL(this,g,y),w=b.getContext("2d"),T=w.getImageData(0,0,g,y),M=T.data,S=0;S<y;S++)for(var E=0;E<g;E++){var L=4*((y-S)*g+E),A=d?_-4*(S*g+(g-E)):4*(S*g+E);M[A+0]=x[L+0],M[A+1]=x[L+1],M[A+2]=x[L+2],M[A+3]=x[L+3]}w.putImageData(T,0,0);var D=new Image;D.onerror=function(){o.call(null),n.remove(b)},D.onload=function(){o.call(null,D),n.remove(b)},D.src=b.toDataURL(a,h)}}},3006:(t,e,i)=>{t.exports={Canvas:i(31615),WebGL:i(83814)}},19298:t=>{t.exports={getTintFromFloats:function(t,e,i,n){return((255&(255*n|0))<<24|(255&(255*t|0))<<16|(255&(255*e|0))<<8|255&(255*i|0))>>>0},getTintAppendFloatAlpha:function(t,e){return((255&(255*e|0))<<24|t)>>>0},getTintAppendFloatAlphaAndSwap:function(t,e){return((255&(255*e|0))<<24|(255&(0|t))<<16|(255&(t>>8|0))<<8|255&(t>>16|0))>>>0},getFloatsFromUintRGB:function(t){return[(255&(t>>16|0))/255,(255&(t>>8|0))/255,(255&(0|t))/255]},getComponentCount:function(t,e){for(var i=0,n=0;n<t.length;++n){var r=t[n];r.type===e.FLOAT?i+=r.size:i+=1}return i}}},69241:(t,e,i)=>{var n=i(47379),r=i(19298),s=new n({initialize:function(t){this.name="WebGLPipeline",this.game=t.game,this.view=t.game.canvas,this.resolution=1,this.width=0,this.height=0,this.gl=t.gl,this.vertexCount=0,this.vertexCapacity=t.vertexCapacity,this.renderer=t.renderer,this.vertexData=t.vertices?t.vertices:new ArrayBuffer(t.vertexCapacity*t.vertexSize),this.vertexBuffer=this.renderer.createVertexBuffer(t.vertices?t.vertices:this.vertexData.byteLength,this.gl.STREAM_DRAW),this.program=this.renderer.createProgram(t.vertShader,t.fragShader),this.attributes=t.attributes,this.vertexSize=t.vertexSize,this.topology=t.topology,this.bytes=new Uint8Array(this.vertexData),this.vertexComponentCount=r.getComponentCount(t.attributes,this.gl),this.flushLocked=!1,this.active=!1},boot:function(){},addAttribute:function(t,e,i,n,s){return this.attributes.push({name:t,size:e,type:this.renderer.glFormats[i],normalized:n,offset:s}),this.vertexComponentCount=r.getComponentCount(this.attributes,this.gl),this},shouldFlush:function(){return this.vertexCount>=this.vertexCapacity},resize:function(t,e,i){return this.width=t*i,this.height=e*i,this.resolution=i,this},bind:function(){var t=this.gl,e=this.vertexBuffer,i=this.attributes,n=this.program,r=this.renderer,s=this.vertexSize;r.setProgram(n),r.setVertexBuffer(e);for(var o=0;o<i.length;++o){var a=i[o],h=t.getAttribLocation(n,a.name);h>=0?(t.enableVertexAttribArray(h),t.vertexAttribPointer(h,a.size,a.type,a.normalized,s,a.offset)):-1!==h&&t.disableVertexAttribArray(h)}return this},onBind:function(){return this},onPreRender:function(){return this},onRender:function(){return this},onPostRender:function(){return this},flush:function(){if(this.flushLocked)return this;this.flushLocked=!0;var t=this.gl,e=this.vertexCount,i=this.topology,n=this.vertexSize;if(0!==e)return t.bufferSubData(t.ARRAY_BUFFER,0,this.bytes.subarray(0,e*n)),t.drawArrays(i,0,e),this.vertexCount=0,this.flushLocked=!1,this;this.flushLocked=!1},destroy:function(){var t=this.gl;return t.deleteProgram(this.program),t.deleteBuffer(this.vertexBuffer),delete this.program,delete this.vertexBuffer,delete this.gl,this},setFloat1:function(t,e){return this.renderer.setFloat1(this.program,t,e),this},setFloat2:function(t,e,i){return this.renderer.setFloat2(this.program,t,e,i),this},setFloat3:function(t,e,i,n){return this.renderer.setFloat3(this.program,t,e,i,n),this},setFloat4:function(t,e,i,n,r){return this.renderer.setFloat4(this.program,t,e,i,n,r),this},setFloat1v:function(t,e){return this.renderer.setFloat1v(this.program,t,e),this},setFloat2v:function(t,e){return this.renderer.setFloat2v(this.program,t,e),this},setFloat3v:function(t,e){return this.renderer.setFloat3v(this.program,t,e),this},setFloat4v:function(t,e){return this.renderer.setFloat4v(this.program,t,e),this},setInt1:function(t,e){return this.renderer.setInt1(this.program,t,e),this},setInt2:function(t,e,i){return this.renderer.setInt2(this.program,t,e,i),this},setInt3:function(t,e,i,n){return this.renderer.setInt3(this.program,t,e,i,n),this},setInt4:function(t,e,i,n,r){return this.renderer.setInt4(this.program,t,e,i,n,r),this},setMatrix2:function(t,e,i){return this.renderer.setMatrix2(this.program,t,e,i),this},setMatrix3:function(t,e,i){return this.renderer.setMatrix3(this.program,t,e,i),this},setMatrix4:function(t,e,i){return this.renderer.setMatrix4(this.program,t,e,i),this}});t.exports=s},36010:(t,e,i)=>{var n=i(22190),r=i(25920),s=i(47379),o=i(50460),a=i(80827),h=i(2244),u=i(49035),l=i(66144),c=i(75670),d=i(2931),p=i(65492),f=i(19298),m=i(83814),v=i(51043),g=i(74612),y=i(38383),_=i(14421),x=new s({initialize:function(t){var e=t.config,i={alpha:e.transparent,desynchronized:e.desynchronized,depth:!1,antialias:e.antialiasGL,premultipliedAlpha:e.premultipliedAlpha,stencil:!0,failIfMajorPerformanceCaveat:e.failIfMajorPerformanceCaveat,powerPreference:e.powerPreference};this.config={clearBeforeRender:e.clearBeforeRender,antialias:e.antialias,backgroundColor:e.backgroundColor,contextCreation:i,resolution:e.resolution,roundPixels:e.roundPixels,maxTextures:e.maxTextures,maxTextureSize:e.maxTextureSize,batchSize:e.batchSize,maxLights:e.maxLights,mipmapFilter:e.mipmapFilter},this.game=t,this.type=o.WEBGL,this.width=0,this.height=0,this.canvas=t.canvas,this.blendModes=[],this.nativeTextures=[],this.contextLost=!1,this.pipelines=null,this.snapshotState={x:0,y:0,width:1,height:1,getPixel:!1,callback:null,type:"image/png",encoder:.92,isFramebuffer:!1,bufferWidth:0,bufferHeight:0},this.currentActiveTextureUnit=0,this.currentTextures=new Array(16),this.currentFramebuffer=null,this.currentPipeline=null,this.currentProgram=null,this.currentVertexBuffer=null,this.currentIndexBuffer=null,this.currentBlendMode=1/0,this.currentScissorEnabled=!1,this.currentScissor=null,this.scissorStack=[],this.contextLostHandler=u,this.contextRestoredHandler=u,this.gl=null,this.supportedExtensions=null,this.extensions={},this.glFormats=[],this.compression={ETC1:!1,PVRTC:!1,S3TC:!1},this.drawingBufferHeight=0,this.blankTexture=null,this.defaultCamera=new n(0,0,0,0),this._tempMatrix1=new p,this._tempMatrix2=new p,this._tempMatrix3=new p,this._tempMatrix4=new p,this.maskCount=0,this.maskStack=[],this.currentMask={mask:null,camera:null},this.currentCameraMask={mask:null,camera:null},this.glFuncMap=null,this.currentType="",this.newType=!1,this.nextTypeMatch=!1,this.mipmapFilter=null,this.init(this.config)},init:function(t){var e,i=this.game,n=this.canvas,r=t.backgroundColor;if(!(e=i.config.context?i.config.context:n.getContext("webgl",t.contextCreation)||n.getContext("experimental-webgl",t.contextCreation))||e.isContextLost())throw this.contextLost=!0,new Error("WebGL unsupported");this.gl=e;var s=this;this.contextLostHandler=function(t){s.contextLost=!0,s.game.events.emit(a.CONTEXT_LOST,s),t.preventDefault()},this.contextRestoredHandler=function(){s.contextLost=!1,s.init(s.config),s.game.events.emit(a.CONTEXT_RESTORED,s)},n.addEventListener("webglcontextlost",this.contextLostHandler,!1),n.addEventListener("webglcontextrestored",this.contextRestoredHandler,!1),i.context=e;for(var h=0;h<=27;h++)this.blendModes.push({func:[e.ONE,e.ONE_MINUS_SRC_ALPHA],equation:e.FUNC_ADD});this.blendModes[1].func=[e.ONE,e.DST_ALPHA],this.blendModes[2].func=[e.DST_COLOR,e.ONE_MINUS_SRC_ALPHA],this.blendModes[3].func=[e.ONE,e.ONE_MINUS_SRC_COLOR],this.blendModes[17]={func:[e.ZERO,e.ONE_MINUS_SRC_ALPHA],equation:e.FUNC_REVERSE_SUBTRACT},this.glFormats[0]=e.BYTE,this.glFormats[1]=e.SHORT,this.glFormats[2]=e.UNSIGNED_BYTE,this.glFormats[3]=e.UNSIGNED_SHORT,this.glFormats[4]=e.FLOAT,this.glFuncMap={mat2:{func:e.uniformMatrix2fv,length:1,matrix:!0},mat3:{func:e.uniformMatrix3fv,length:1,matrix:!0},mat4:{func:e.uniformMatrix4fv,length:1,matrix:!0},"1f":{func:e.uniform1f,length:1},"1fv":{func:e.uniform1fv,length:1},"1i":{func:e.uniform1i,length:1},"1iv":{func:e.uniform1iv,length:1},"2f":{func:e.uniform2f,length:2},"2fv":{func:e.uniform2fv,length:1},"2i":{func:e.uniform2i,length:2},"2iv":{func:e.uniform2iv,length:1},"3f":{func:e.uniform3f,length:3},"3fv":{func:e.uniform3fv,length:1},"3i":{func:e.uniform3i,length:3},"3iv":{func:e.uniform3iv,length:1},"4f":{func:e.uniform4f,length:4},"4fv":{func:e.uniform4fv,length:1},"4i":{func:e.uniform4i,length:4},"4iv":{func:e.uniform4iv,length:1}};var u=e.getSupportedExtensions();t.maxTextures||(t.maxTextures=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS)),t.maxTextureSize||(t.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE));var l="WEBGL_compressed_texture_",c="WEBKIT_"+l;this.compression.ETC1=e.getExtension(l+"etc1")||e.getExtension(c+"etc1"),this.compression.PVRTC=e.getExtension(l+"pvrtc")||e.getExtension(c+"pvrtc"),this.compression.S3TC=e.getExtension(l+"s3tc")||e.getExtension(c+"s3tc"),this.supportedExtensions=u,e.disable(e.DEPTH_TEST),e.disable(e.CULL_FACE),e.enable(e.BLEND),e.clearColor(r.redGL,r.greenGL,r.blueGL,r.alphaGL),this.mipmapFilter=e[t.mipmapFilter];for(var p=0;p<this.currentTextures.length;++p)this.currentTextures[p]=null;return this.pipelines={},this.addPipeline("TextureTintPipeline",new y({game:i,renderer:this})),this.addPipeline("TextureTintStripPipeline",new _({game:i,renderer:this})),this.addPipeline("BitmapMaskPipeline",new v({game:i,renderer:this})),this.addPipeline("Light2D",new g({game:i,renderer:this,maxLights:t.maxLights})),this.setBlendMode(o.BlendModes.NORMAL),i.textures.once(d.READY,this.boot,this),this},boot:function(){for(var t in this.pipelines)this.pipelines[t].boot();var e=this.game.textures.getFrame("__DEFAULT");this.pipelines.TextureTintPipeline.currentFrame=e,this.blankTexture=e;var i=this.gl;i.bindFramebuffer(i.FRAMEBUFFER,null),i.enable(i.SCISSOR_TEST),this.setPipeline(this.pipelines.TextureTintPipeline),this.game.scale.on(l.RESIZE,this.onResize,this);var n=this.game.scale.baseSize;this.resize(n.width,n.height,this.game.scale.resolution)},onResize:function(t,e,i,n){e.width===this.width&&e.height===this.height&&n===this.resolution||this.resize(e.width,e.height,n)},resize:function(t,e,i){var n=this.gl,r=this.pipelines;for(var s in this.width=t,this.height=e,this.resolution=i,n.viewport(0,0,t,e),r)r[s].resize(t,e,i);return this.drawingBufferHeight=n.drawingBufferHeight,n.scissor(0,n.drawingBufferHeight-e,t,e),this.defaultCamera.setSize(t,e),this},hasExtension:function(t){return!!this.supportedExtensions&&this.supportedExtensions.indexOf(t)},getExtension:function(t){return this.hasExtension(t)?(t in this.extensions||(this.extensions[t]=this.gl.getExtension(t)),this.extensions[t]):null},flush:function(){this.currentPipeline&&this.currentPipeline.flush()},hasPipeline:function(t){return t in this.pipelines},getPipeline:function(t){return this.hasPipeline(t)?this.pipelines[t]:null},removePipeline:function(t){return delete this.pipelines[t],this},addPipeline:function(t,e){return this.hasPipeline(t)?console.warn("Pipeline exists: "+t):this.pipelines[t]=e,e.name=t,this.pipelines[t].resize(this.width,this.height,this.config.resolution),e},pushScissor:function(t,e,i,n,r){void 0===r&&(r=this.drawingBufferHeight);var s=[t,e,i,n];return this.scissorStack.push(s),this.setScissor(t,e,i,n,r),this.currentScissor=s,s},setScissor:function(t,e,i,n,r){void 0===r&&(r=this.drawingBufferHeight);var s=this.gl,o=this.currentScissor,a=i>0&&n>0;if(o&&a){var h=o[0],u=o[1],l=o[2],c=o[3];a=h!==t||u!==e||l!==i||c!==n}a&&(this.flush(),s.scissor(t,r-e-n,i,n))},popScissor:function(){var t=this.scissorStack;t.pop();var e=t[t.length-1];e&&this.setScissor(e[0],e[1],e[2],e[3]),this.currentScissor=e},setPipeline:function(t,e){return this.currentPipeline===t&&this.currentPipeline.vertexBuffer===this.currentVertexBuffer&&this.currentPipeline.program===this.currentProgram||(this.flush(),this.currentPipeline=t,this.currentPipeline.bind()),this.currentPipeline.onBind(e),this.currentPipeline},hasActiveStencilMask:function(){var t=this.currentMask.mask,e=this.currentCameraMask.mask;return t&&t.isStencil||e&&e.isStencil},rebindPipeline:function(t){var e=this.gl;e.disable(e.DEPTH_TEST),e.disable(e.CULL_FACE),this.hasActiveStencilMask()?e.clear(e.DEPTH_BUFFER_BIT):(e.disable(e.STENCIL_TEST),e.clear(e.DEPTH_BUFFER_BIT|e.STENCIL_BUFFER_BIT)),e.viewport(0,0,this.width,this.height),this.setBlendMode(0,!0),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.blankTexture.glTexture),this.currentActiveTextureUnit=0,this.currentTextures[0]=this.blankTexture.glTexture,this.currentPipeline=t,this.currentPipeline.bind(),this.currentPipeline.onBind()},clearPipeline:function(){this.flush(),this.currentPipeline=null,this.currentProgram=null,this.currentVertexBuffer=null,this.currentIndexBuffer=null,this.setBlendMode(0,!0)},setBlendMode:function(t,e){void 0===e&&(e=!1);var i=this.gl,n=this.blendModes[t];return!!(e||t!==o.BlendModes.SKIP_CHECK&&this.currentBlendMode!==t)&&(this.flush(),i.enable(i.BLEND),i.blendEquation(n.equation),n.func.length>2?i.blendFuncSeparate(n.func[0],n.func[1],n.func[2],n.func[3]):i.blendFunc(n.func[0],n.func[1]),this.currentBlendMode=t,!0)},addBlendMode:function(t,e){return this.blendModes.push({func:t,equation:e})-1},updateBlendMode:function(t,e,i){return this.blendModes[t]&&(this.blendModes[t].func=e,i&&(this.blendModes[t].equation=i)),this},removeBlendMode:function(t){return t>17&&this.blendModes[t]&&this.blendModes.splice(t,1),this},setBlankTexture:function(t){void 0===t&&(t=!1),!t&&0===this.currentActiveTextureUnit&&this.currentTextures[0]||this.setTexture2D(this.blankTexture.glTexture,0)},setTexture2D:function(t,e,i){void 0===i&&(i=!0);var n=this.gl;return t!==this.currentTextures[e]&&(i&&this.flush(),this.currentActiveTextureUnit!==e&&(n.activeTexture(n.TEXTURE0+e),this.currentActiveTextureUnit=e),n.bindTexture(n.TEXTURE_2D,t),this.currentTextures[e]=t),this},setFramebuffer:function(t,e){void 0===e&&(e=!1);var i=this.gl,n=this.width,r=this.height;return t!==this.currentFramebuffer&&(t&&t.renderTexture?(n=t.renderTexture.width,r=t.renderTexture.height):this.flush(),i.bindFramebuffer(i.FRAMEBUFFER,t),i.viewport(0,0,n,r),e&&(t?(this.drawingBufferHeight=r,this.pushScissor(0,0,n,r)):(this.drawingBufferHeight=this.height,this.popScissor())),this.currentFramebuffer=t),this},setProgram:function(t){var e=this.gl;return t!==this.currentProgram&&(this.flush(),e.useProgram(t),this.currentProgram=t),this},setVertexBuffer:function(t){var e=this.gl;return t!==this.currentVertexBuffer&&(this.flush(),e.bindBuffer(e.ARRAY_BUFFER,t),this.currentVertexBuffer=t),this},setIndexBuffer:function(t){var e=this.gl;return t!==this.currentIndexBuffer&&(this.flush(),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),this.currentIndexBuffer=t),this},createTextureFromSource:function(t,e,i,n){var r=this.gl,s=r.NEAREST,a=r.NEAREST,u=r.CLAMP_TO_EDGE;e=t?t.width:e,i=t?t.height:i;var l=h(e,i);return l&&(u=r.REPEAT),n===o.ScaleModes.LINEAR&&this.config.antialias&&(s=l?this.mipmapFilter:r.LINEAR,a=r.LINEAR),t||"number"!=typeof e||"number"!=typeof i?this.createTexture2D(0,s,a,u,u,r.RGBA,t):this.createTexture2D(0,s,a,u,u,r.RGBA,null,e,i)},createTexture2D:function(t,e,i,n,r,s,o,a,u,l,c,d){l=null==l||l,void 0===c&&(c=!1),void 0===d&&(d=!1);var p=this.gl,f=p.createTexture();return this.setTexture2D(f,0),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MIN_FILTER,e),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_MAG_FILTER,i),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_WRAP_S,r),p.texParameteri(p.TEXTURE_2D,p.TEXTURE_WRAP_T,n),p.pixelStorei(p.UNPACK_PREMULTIPLY_ALPHA_WEBGL,l),p.pixelStorei(p.UNPACK_FLIP_Y_WEBGL,d),null==o?p.texImage2D(p.TEXTURE_2D,t,s,a,u,0,s,p.UNSIGNED_BYTE,null):(c||(a=o.width,u=o.height),p.texImage2D(p.TEXTURE_2D,t,s,s,p.UNSIGNED_BYTE,o)),h(a,u)&&p.generateMipmap(p.TEXTURE_2D),this.setTexture2D(null,0),f.isAlphaPremultiplied=l,f.isRenderTexture=!1,f.width=a,f.height=u,this.nativeTextures.push(f),f},createFramebuffer:function(t,e,i,n){var r,s=this.gl,o=s.createFramebuffer();if(this.setFramebuffer(o),n){var a=s.createRenderbuffer();s.bindRenderbuffer(s.RENDERBUFFER,a),s.renderbufferStorage(s.RENDERBUFFER,s.DEPTH_STENCIL,t,e),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.DEPTH_STENCIL_ATTACHMENT,s.RENDERBUFFER,a)}if(i.isRenderTexture=!0,i.isAlphaPremultiplied=!1,s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,s.TEXTURE_2D,i,0),(r=s.checkFramebufferStatus(s.FRAMEBUFFER))!==s.FRAMEBUFFER_COMPLETE){throw new Error("Framebuffer incomplete. Framebuffer status: "+{36054:"Incomplete Attachment",36055:"Missing Attachment",36057:"Incomplete Dimensions",36061:"Framebuffer Unsupported"}[r])}return o.renderTexture=i,this.setFramebuffer(null),o},createProgram:function(t,e){var i=this.gl,n=i.createProgram(),r=i.createShader(i.VERTEX_SHADER),s=i.createShader(i.FRAGMENT_SHADER);if(i.shaderSource(r,t),i.shaderSource(s,e),i.compileShader(r),i.compileShader(s),!i.getShaderParameter(r,i.COMPILE_STATUS))throw new Error("Failed to compile Vertex Shader:\n"+i.getShaderInfoLog(r));if(!i.getShaderParameter(s,i.COMPILE_STATUS))throw new Error("Failed to compile Fragment Shader:\n"+i.getShaderInfoLog(s));if(i.attachShader(n,r),i.attachShader(n,s),i.linkProgram(n),!i.getProgramParameter(n,i.LINK_STATUS))throw new Error("Failed to link program:\n"+i.getProgramInfoLog(n));return n},createVertexBuffer:function(t,e){var i=this.gl,n=i.createBuffer();return this.setVertexBuffer(n),i.bufferData(i.ARRAY_BUFFER,t,e),this.setVertexBuffer(null),n},createIndexBuffer:function(t,e){var i=this.gl,n=i.createBuffer();return this.setIndexBuffer(n),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t,e),this.setIndexBuffer(null),n},deleteTexture:function(t){var e=this.nativeTextures.indexOf(t);return-1!==e&&c(this.nativeTextures,e),this.gl.deleteTexture(t),this.currentTextures[0]!==t||this.game.pendingDestroy||this.setBlankTexture(!0),this},deleteFramebuffer:function(t){return this.gl.deleteFramebuffer(t),this},deleteProgram:function(t){return this.gl.deleteProgram(t),this},deleteBuffer:function(t){return this.gl.deleteBuffer(t),this},preRenderCamera:function(t){var e=t._cx,i=t._cy,n=t._cw,s=t._ch,o=this.pipelines.TextureTintPipeline,a=t.backgroundColor;if(t.renderToTexture){this.flush(),this.pushScissor(e,i,n,-s),this.setFramebuffer(t.framebuffer);var h=this.gl;h.clearColor(0,0,0,0),h.clear(h.COLOR_BUFFER_BIT),o.projOrtho(e,n+e,i,s+i,-1e3,1e3),t.mask&&(this.currentCameraMask.mask=t.mask,this.currentCameraMask.camera=t._maskCamera,t.mask.preRenderWebGL(this,t,t._maskCamera)),a.alphaGL>0&&o.drawFillRect(e,i,n+e,s+i,f.getTintFromFloats(a.redGL,a.greenGL,a.blueGL,1),a.alphaGL),t.emit(r.PRE_RENDER,t)}else this.pushScissor(e,i,n,s),t.mask&&(this.currentCameraMask.mask=t.mask,this.currentCameraMask.camera=t._maskCamera,t.mask.preRenderWebGL(this,t,t._maskCamera)),a.alphaGL>0&&o.drawFillRect(e,i,n,s,f.getTintFromFloats(a.redGL,a.greenGL,a.blueGL,1),a.alphaGL)},getCurrentStencilMask:function(){var t=null,e=this.maskStack,i=this.currentCameraMask;return e.length>0?t=e[e.length-1]:i.mask&&i.mask.isStencil&&(t=i),t},postRenderCamera:function(t){this.setPipeline(this.pipelines.TextureTintPipeline);var e=this.pipelines.TextureTintPipeline;if(t.flashEffect.postRenderWebGL(e,f.getTintFromFloats),t.fadeEffect.postRenderWebGL(e,f.getTintFromFloats),t.dirty=!1,this.popScissor(),t.renderToTexture){if(e.flush(),this.setFramebuffer(null),t.emit(r.POST_RENDER,t),t.renderToGame){e.projOrtho(0,e.width,e.height,0,-1e3,1e3);var i=f.getTintAppendFloatAlpha;(t.pipeline?t.pipeline:e).batchTexture(t,t.glTexture,t.width,t.height,t.x,t.y,t.width,t.height,t.zoom,t.zoom,t.rotation,t.flipX,!t.flipY,1,1,0,0,0,0,t.width,t.height,i(t._tintTL,t._alphaTL),i(t._tintTR,t._alphaTR),i(t._tintBL,t._alphaBL),i(t._tintBR,t._alphaBR),t._isTinted&&t.tintFill,0,0,this.defaultCamera,null)}this.setBlankTexture(!0)}t.mask&&(this.currentCameraMask.mask=null,t.mask.postRenderWebGL(this,t._maskCamera))},preRender:function(){if(!this.contextLost){var t=this.gl,e=this.pipelines;if(t.bindFramebuffer(t.FRAMEBUFFER,null),this.config.clearBeforeRender){var i=this.config.backgroundColor;t.clearColor(i.redGL,i.greenGL,i.blueGL,i.alphaGL),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT|t.STENCIL_BUFFER_BIT)}for(var n in t.enable(t.SCISSOR_TEST),e)e[n].onPreRender();this.currentScissor=[0,0,this.width,this.height],this.scissorStack=[this.currentScissor],this.game.scene.customViewports&&t.scissor(0,this.drawingBufferHeight-this.height,this.width,this.height),this.currentMask.mask=null,this.currentCameraMask.mask=null,this.maskStack.length=0,this.setPipeline(this.pipelines.TextureTintPipeline)}},render:function(t,e,i,n){if(!this.contextLost){var r=e.list,s=r.length,a=this.pipelines;for(var h in a)a[h].onRender(t,n);if(this.preRenderCamera(n),0===s)return this.setBlendMode(o.BlendModes.NORMAL),void this.postRenderCamera(n);this.currentType="";for(var u=this.currentMask,l=0;l<s;l++){var c=r[l];if(c.willRender(n)){c.blendMode!==this.currentBlendMode&&this.setBlendMode(c.blendMode);var d=c.mask;(u=this.currentMask).mask&&u.mask!==d&&u.mask.postRenderWebGL(this,u.camera),d&&u.mask!==d&&d.preRenderWebGL(this,c,n);var p=c.type;p!==this.currentType&&(this.newType=!0,this.currentType=p),this.nextTypeMatch=l<s-1&&r[l+1].type===this.currentType,c.renderWebGL(this,c,i,n),this.newType=!1}}(u=this.currentMask).mask&&u.mask.postRenderWebGL(this,u.camera),this.setBlendMode(o.BlendModes.NORMAL),this.postRenderCamera(n)}},postRender:function(){if(!this.contextLost){this.flush();var t=this.snapshotState;t.callback&&(m(this.canvas,t),t.callback=null);var e=this.pipelines;for(var i in e)e[i].onPostRender()}},snapshot:function(t,e,i){return this.snapshotArea(0,0,this.gl.drawingBufferWidth,this.gl.drawingBufferHeight,t,e,i)},snapshotArea:function(t,e,i,n,r,s,o){var a=this.snapshotState;return a.callback=r,a.type=s,a.encoder=o,a.getPixel=!1,a.x=t,a.y=e,a.width=Math.min(i,this.gl.drawingBufferWidth),a.height=Math.min(n,this.gl.drawingBufferHeight),this},snapshotPixel:function(t,e,i){return this.snapshotArea(t,e,1,1,i),this.snapshotState.getPixel=!0,this},snapshotFramebuffer:function(t,e,i,n,r,s,o,a,h,u,l){void 0===r&&(r=!1),void 0===s&&(s=0),void 0===o&&(o=0),void 0===a&&(a=e),void 0===h&&(h=i);var c=this.currentFramebuffer;this.snapshotArea(s,o,a,h,n,u,l);var d=this.snapshotState;return d.getPixel=r,d.isFramebuffer=!0,d.bufferWidth=e,d.bufferHeight=i,this.setFramebuffer(t),m(this.canvas,d),this.setFramebuffer(c),d.callback=null,d.isFramebuffer=!1,this},canvasToTexture:function(t,e,i,n){return void 0===i&&(i=!1),void 0===n&&(n=!1),e?this.updateCanvasTexture(t,e,n):this.createCanvasTexture(t,i,n)},createCanvasTexture:function(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=this.gl,r=n.NEAREST,s=n.NEAREST,o=t.width,a=t.height,u=n.CLAMP_TO_EDGE,l=h(o,a);return!e&&l&&(u=n.REPEAT),this.config.antialias&&(r=l?this.mipmapFilter:n.LINEAR,s=n.LINEAR),this.createTexture2D(0,r,s,u,u,n.RGBA,t,o,a,!0,!1,i)},updateCanvasTexture:function(t,e,i){void 0===i&&(i=!1);var n=this.gl,r=t.width,s=t.height;return r>0&&s>0&&(this.setTexture2D(e,0),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,i),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,t),e.width=r,e.height=s,this.setTexture2D(null,0)),e},createVideoTexture:function(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=this.gl,r=n.NEAREST,s=n.NEAREST,o=t.videoWidth,a=t.videoHeight,u=n.CLAMP_TO_EDGE,l=h(o,a);return!e&&l&&(u=n.REPEAT),this.config.antialias&&(r=l?this.mipmapFilter:n.LINEAR,s=n.LINEAR),this.createTexture2D(0,r,s,u,u,n.RGBA,t,o,a,!0,!0,i)},updateVideoTexture:function(t,e,i){void 0===i&&(i=!1);var n=this.gl,r=t.videoWidth,s=t.videoHeight;return r>0&&s>0&&(this.setTexture2D(e,0),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,i),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,t),e.width=r,e.height=s,this.setTexture2D(null,0)),e},setTextureFilter:function(t,e){var i=this.gl,n=[i.LINEAR,i.NEAREST][e];return this.setTexture2D(t,0),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,n),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,n),this.setTexture2D(null,0),this},setFloat1:function(t,e,i){return this.setProgram(t),this.gl.uniform1f(this.gl.getUniformLocation(t,e),i),this},setFloat2:function(t,e,i,n){return this.setProgram(t),this.gl.uniform2f(this.gl.getUniformLocation(t,e),i,n),this},setFloat3:function(t,e,i,n,r){return this.setProgram(t),this.gl.uniform3f(this.gl.getUniformLocation(t,e),i,n,r),this},setFloat4:function(t,e,i,n,r,s){return this.setProgram(t),this.gl.uniform4f(this.gl.getUniformLocation(t,e),i,n,r,s),this},setFloat1v:function(t,e,i){return this.setProgram(t),this.gl.uniform1fv(this.gl.getUniformLocation(t,e),i),this},setFloat2v:function(t,e,i){return this.setProgram(t),this.gl.uniform2fv(this.gl.getUniformLocation(t,e),i),this},setFloat3v:function(t,e,i){return this.setProgram(t),this.gl.uniform3fv(this.gl.getUniformLocation(t,e),i),this},setFloat4v:function(t,e,i){return this.setProgram(t),this.gl.uniform4fv(this.gl.getUniformLocation(t,e),i),this},setInt1:function(t,e,i){return this.setProgram(t),this.gl.uniform1i(this.gl.getUniformLocation(t,e),i),this},setInt2:function(t,e,i,n){return this.setProgram(t),this.gl.uniform2i(this.gl.getUniformLocation(t,e),i,n),this},setInt3:function(t,e,i,n,r){return this.setProgram(t),this.gl.uniform3i(this.gl.getUniformLocation(t,e),i,n,r),this},setInt4:function(t,e,i,n,r,s){return this.setProgram(t),this.gl.uniform4i(this.gl.getUniformLocation(t,e),i,n,r,s),this},setMatrix2:function(t,e,i,n){return this.setProgram(t),this.gl.uniformMatrix2fv(this.gl.getUniformLocation(t,e),i,n),this},setMatrix3:function(t,e,i,n){return this.setProgram(t),this.gl.uniformMatrix3fv(this.gl.getUniformLocation(t,e),i,n),this},setMatrix4:function(t,e,i,n){return this.setProgram(t),this.gl.uniformMatrix4fv(this.gl.getUniformLocation(t,e),i,n),this},getMaxTextures:function(){return this.config.maxTextures},getMaxTextureSize:function(){return this.config.maxTextureSize},destroy:function(){for(var t=0;t<this.nativeTextures.length;t++)this.gl.deleteTexture(this.nativeTextures[t]);for(var e in this.nativeTextures=[],this.pipelines)this.pipelines[e].destroy(),delete this.pipelines[e];this.defaultCamera.destroy(),this.currentMask=null,this.currentCameraMask=null,this.canvas.removeEventListener("webglcontextlost",this.contextLostHandler,!1),this.canvas.removeEventListener("webglcontextrestored",this.contextRestoredHandler,!1),this.game=null,this.gl=null,this.canvas=null,this.maskStack=[],this.contextLost=!0,this.extensions={}}});t.exports=x},51087:(t,e,i)=>{t.exports={Utils:i(19298),WebGLPipeline:i(69241),WebGLRenderer:i(36010),Pipelines:i(60487),BYTE:0,SHORT:1,UNSIGNED_BYTE:2,UNSIGNED_SHORT:3,FLOAT:4}},51043:(t,e,i)=>{var n=i(47379),r=i(10042),s=i(89781),o=i(69241),a=new n({Extends:o,initialize:function(t){o.call(this,{game:t.game,renderer:t.renderer,gl:t.renderer.gl,topology:t.topology?t.topology:t.renderer.gl.TRIANGLES,vertShader:t.vertShader?t.vertShader:s,fragShader:t.fragShader?t.fragShader:r,vertexCapacity:t.vertexCapacity?t.vertexCapacity:3,vertexSize:t.vertexSize?t.vertexSize:2*Float32Array.BYTES_PER_ELEMENT,vertices:new Float32Array([-1,1,-1,-7,7,1]).buffer,attributes:[{name:"inPosition",size:2,type:t.renderer.gl.FLOAT,normalized:!1,offset:0}]}),this.vertexViewF32=new Float32Array(this.vertexData),this.maxQuads=1,this.resolutionDirty=!0},onBind:function(){o.prototype.onBind.call(this);var t=this.renderer,e=this.program;return this.resolutionDirty&&(t.setFloat2(e,"uResolution",this.width,this.height),t.setInt1(e,"uMainSampler",0),t.setInt1(e,"uMaskSampler",1),this.resolutionDirty=!1),this},resize:function(t,e,i){return o.prototype.resize.call(this,t,e,i),this.resolutionDirty=!0,this},beginMask:function(t,e,i){var n=this.renderer,r=this.gl;t.bitmapMask&&r&&(n.flush(),t.prevFramebuffer=n.currentFramebuffer,n.setFramebuffer(t.mainFramebuffer),r.disable(r.STENCIL_TEST),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT),n.currentCameraMask.mask!==t&&(n.currentMask.mask=t,n.currentMask.camera=i))},endMask:function(t,e){var i=this.gl,n=this.renderer,r=t.bitmapMask;if(r&&i){n.flush(),n.setFramebuffer(t.maskFramebuffer),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),n.setBlendMode(0,!0),r.renderWebGL(n,r,0,e),n.flush(),n.setFramebuffer(t.prevFramebuffer);var s=n.getCurrentStencilMask();s?(i.enable(i.STENCIL_TEST),s.mask.applyStencil(n,s.camera,!0)):n.currentMask.mask=null,n.setPipeline(this),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,t.maskTexture),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.mainTexture),i.uniform1i(i.getUniformLocation(this.program,"uInvertMaskAlpha"),t.invertAlpha),i.drawArrays(this.topology,0,3)}}});t.exports=a},74612:(t,e,i)=>{var n=i(47379),r=i(74934),s=i(38383),o=10,a=new n({Extends:s,initialize:function(t){o=t.maxLights,t.fragShader=r.replace("%LIGHT_COUNT%",o.toString()),s.call(this,t),this.defaultNormalMap,this.inverseRotationMatrix=new Float32Array([1,0,0,0,1,0,0,0,1])},boot:function(){this.defaultNormalMap=this.game.textures.getFrame("__DEFAULT")},onBind:function(t){s.prototype.onBind.call(this);var e=this.renderer,i=this.program;return this.mvpUpdate(),e.setInt1(i,"uNormSampler",1),e.setFloat2(i,"uResolution",this.width,this.height),t&&this.setNormalMap(t),this},onRender:function(t,e){this.active=!1;var i=t.sys.lights;if(!i||i.lights.length<=0||!i.active)return this;var n=i.cull(e),r=Math.min(n.length,o);if(0===r)return this;this.active=!0;var s,a=this.renderer,h=this.program,u=e.matrix,l={x:0,y:0},c=a.height;for(s=0;s<o;++s)a.setFloat1(h,"uLights["+s+"].radius",0);for(a.setFloat4(h,"uCamera",e.x,e.y,e.rotation,e.zoom),a.setFloat3(h,"uAmbientLightColor",i.ambientColor.r,i.ambientColor.g,i.ambientColor.b),s=0;s<r;++s){var d=n[s],p="uLights["+s+"].";u.transformPoint(d.x,d.y,l),a.setFloat2(h,p+"position",l.x-e.scrollX*d.scrollFactorX*e.zoom,c-(l.y-e.scrollY*d.scrollFactorY*e.zoom)),a.setFloat3(h,p+"color",d.r,d.g,d.b),a.setFloat1(h,p+"intensity",d.intensity),a.setFloat1(h,p+"radius",d.radius)}return this.currentNormalMapRotation=null,this},batchTexture:function(t,e,i,n,r,s,o,a,h,u,l,c,d,p,f,m,v,g,y,_,x,b,w,T,M,S,E,L,A,D){var P;if(this.active)if(this.renderer.setPipeline(this),t.displayTexture?P=t.displayTexture.dataSource[t.displayFrame.sourceIndex]:t.texture?P=t.texture.dataSource[t.frame.sourceIndex]:t.tileset&&(P=Array.isArray(t.tileset)?t.tileset[0].image.dataSource[0]:t.tileset.image.dataSource[0]),P){this.setTexture2D(P.glTexture,1),this.setNormalMapRotation(l);var C=this._tempMatrix1,O=this._tempMatrix2,k=this._tempMatrix3,R=g/i+E,I=y/n+L,Y=(g+_)/i+E,F=(y+x)/n+L,N=o,B=a,U=-m,j=-v;if(t.isCropped){var H=t._crop;N=H.width,B=H.height,o=H.width,a=H.height;var z=g=H.x,W=y=H.y;c&&(z=_-H.x-H.width),d&&!e.isRenderTexture&&(W=x-H.y-H.height),R=z/i+E,I=W/n+L,Y=(z+H.width)/i+E,F=(W+H.height)/n+L,U=-m+g,j=-v+y}c&&(N*=-1,U+=o),(d^=e.isRenderTexture?1:0)&&(B*=-1,j+=a);var G=U+N,V=j+B;O.applyITRS(r,s,l,h,u),C.copyFrom(A.matrix),D?(C.multiplyWithOffset(D,-A.scrollX*p,-A.scrollY*f),O.e=r,O.f=s,C.multiply(O,k)):(O.e-=A.scrollX*p,O.f-=A.scrollY*f,C.multiply(O,k));var X=k.getX(U,j),q=k.getY(U,j),J=k.getX(U,V),Z=k.getY(U,V),K=k.getX(G,V),Q=k.getY(G,V),$=k.getX(G,j),tt=k.getY(G,j);A.roundPixels&&(X=Math.round(X),q=Math.round(q),J=Math.round(J),Z=Math.round(Z),K=Math.round(K),Q=Math.round(Q),$=Math.round($),tt=Math.round(tt)),this.setTexture2D(e,0),this.batchQuad(X,q,J,Z,K,Q,$,tt,R,I,Y,F,b,w,T,M,S,e,0)}else console.warn("Normal map missing or invalid")},setNormalMap:function(t){var e;this.active&&t&&(t.texture&&(e=t.texture.dataSource[t.frame.sourceIndex]),e||(e=this.defaultNormalMap),this.setTexture2D(e.glTexture,1),this.renderer.setPipeline(t.defaultPipeline))},setNormalMapRotation:function(t){if(t!==this.currentNormalMapRotation||0===this.batches.length){this.batches.length>0&&this.flush();var e=this.inverseRotationMatrix;if(t){var i=-t,n=Math.cos(i),r=Math.sin(i);e[1]=r,e[3]=-r,e[0]=e[4]=n}else e[0]=e[4]=1,e[1]=e[3]=0;this.renderer.setMatrix3(this.program,"uInverseRotationMatrix",!1,e),this.currentNormalMapRotation=t}},batchSprite:function(t,e,i){if(this.active){var n=t.texture.dataSource[t.frame.sourceIndex];n&&(this.renderer.setPipeline(this),this.setTexture2D(n.glTexture,1),this.setNormalMapRotation(t.rotation),s.prototype.batchSprite.call(this,t,e,i))}}});a.LIGHT_COUNT=o,t.exports=a},38383:(t,e,i)=>{var n=i(47379),r=i(43574),s=i(81769),o=i(77266),a=i(73914),h=i(29757),u=i(65492),l=i(19298),c=i(69241),d=new n({Extends:c,Mixins:[o],initialize:function(t){var e=t.renderer.config;c.call(this,{game:t.game,renderer:t.renderer,gl:t.renderer.gl,topology:s(t,"topology",t.renderer.gl.TRIANGLES),vertShader:s(t,"vertShader",h),fragShader:s(t,"fragShader",a),vertexCapacity:s(t,"vertexCapacity",6*e.batchSize),vertexSize:s(t,"vertexSize",5*Float32Array.BYTES_PER_ELEMENT+4*Uint8Array.BYTES_PER_ELEMENT),attributes:[{name:"inPosition",size:2,type:t.renderer.gl.FLOAT,normalized:!1,offset:0},{name:"inTexCoord",size:2,type:t.renderer.gl.FLOAT,normalized:!1,offset:2*Float32Array.BYTES_PER_ELEMENT},{name:"inTintEffect",size:1,type:t.renderer.gl.FLOAT,normalized:!1,offset:4*Float32Array.BYTES_PER_ELEMENT},{name:"inTint",size:4,type:t.renderer.gl.UNSIGNED_BYTE,normalized:!0,offset:5*Float32Array.BYTES_PER_ELEMENT}]}),this.vertexViewF32=new Float32Array(this.vertexData),this.vertexViewU32=new Uint32Array(this.vertexData),this.maxQuads=e.batchSize,this.batches=[],this._tempMatrix1=new u,this._tempMatrix2=new u,this._tempMatrix3=new u,this._tempMatrix4=new u,this.tempTriangle=[{x:0,y:0,width:0},{x:0,y:0,width:0},{x:0,y:0,width:0},{x:0,y:0,width:0}],this.tintEffect=2,this.strokeTint={TL:0,TR:0,BL:0,BR:0},this.fillTint={TL:0,TR:0,BL:0,BR:0},this.currentFrame={u0:0,v0:0,u1:1,v1:1},this.firstQuad=[0,0,0,0,0],this.prevQuad=[0,0,0,0,0],this.polygonCache=[],this.mvpInit()},onBind:function(){return c.prototype.onBind.call(this),this.mvpUpdate(),this},resize:function(t,e,i){return c.prototype.resize.call(this,t,e,i),this.projOrtho(0,this.width,this.height,0,-1e3,1e3),this},setTexture2D:function(t,e){return void 0===t&&(t=this.renderer.blankTexture.glTexture),void 0===e&&(e=0),this.requireTextureBatch(t,e)&&this.pushBatch(t,e),this},requireTextureBatch:function(t,e){var i=this.batches,n=i.length;return!(n>0)||!((e>0?i[n-1].textures[e-1]:i[n-1].texture)===t)},pushBatch:function(t,e){if(0===e)this.batches.push({first:this.vertexCount,texture:t,textures:[]});else{var i=[];i[e-1]=t,this.batches.push({first:this.vertexCount,texture:null,textures:i})}},flush:function(){if(this.flushLocked)return this;this.flushLocked=!0;var t,e,i,n=this.gl,r=this.vertexCount,s=this.topology,o=this.vertexSize,a=this.renderer,h=this.batches,u=h.length,l=0,c=null;if(0===u||0===r)return this.flushLocked=!1,this;n.bufferSubData(n.ARRAY_BUFFER,0,this.bytes.subarray(0,r*o));for(var d=0;d<u-1;d++){if(c=h[d],t=h[d+1],c.textures.length>0){for(e=0;e<c.textures.length;++e)(i=c.textures[e])&&a.setTexture2D(i,1+e,!1);n.activeTexture(n.TEXTURE0)}l=t.first-c.first,null===c.texture||l<=0||(a.setTexture2D(c.texture,0,!1),n.drawArrays(s,c.first,l))}if((c=h[u-1]).textures.length>0){for(e=0;e<c.textures.length;++e)(i=c.textures[e])&&a.setTexture2D(i,1+e,!1);n.activeTexture(n.TEXTURE0)}return l=r-c.first,c.texture&&l>0&&(a.setTexture2D(c.texture,0,!1),n.drawArrays(s,c.first,l)),this.vertexCount=0,h.length=0,this.flushLocked=!1,this},batchSprite:function(t,e,i){this.renderer.setPipeline(this);var n=this._tempMatrix1,r=this._tempMatrix2,s=this._tempMatrix3,o=t.frame,a=o.glTexture,h=o.u0,u=o.v0,c=o.u1,d=o.v1,p=o.x,f=o.y,m=o.cutWidth,v=o.cutHeight,g=o.customPivot,y=t.displayOriginX,_=t.displayOriginY,x=-y+p,b=-_+f;if(t.isCropped){var w=t._crop;w.flipX===t.flipX&&w.flipY===t.flipY||o.updateCropUVs(w,t.flipX,t.flipY),h=w.u0,u=w.v0,c=w.u1,d=w.v1,m=w.width,v=w.height,x=-y+(p=w.x),b=-_+(f=w.y)}var T=1,M=1;t.flipX&&(g||(x+=-o.realWidth+2*y),T=-1),(t.flipY||o.source.isGLTexture&&!a.flipY)&&(g||(b+=-o.realHeight+2*_),M=-1),r.applyITRS(t.x,t.y,t.rotation,t.scaleX*T,t.scaleY*M),n.copyFrom(e.matrix),i?(n.multiplyWithOffset(i,-e.scrollX*t.scrollFactorX,-e.scrollY*t.scrollFactorY),r.e=t.x,r.f=t.y,n.multiply(r,s)):(r.e-=e.scrollX*t.scrollFactorX,r.f-=e.scrollY*t.scrollFactorY,n.multiply(r,s));var S=x+m,E=b+v,L=s.getX(x,b),A=s.getY(x,b),D=s.getX(x,E),P=s.getY(x,E),C=s.getX(S,E),O=s.getY(S,E),k=s.getX(S,b),R=s.getY(S,b),I=l.getTintAppendFloatAlpha(t._tintTL,e.alpha*t._alphaTL),Y=l.getTintAppendFloatAlpha(t._tintTR,e.alpha*t._alphaTR),F=l.getTintAppendFloatAlpha(t._tintBL,e.alpha*t._alphaBL),N=l.getTintAppendFloatAlpha(t._tintBR,e.alpha*t._alphaBR);e.roundPixels&&(L=Math.round(L),A=Math.round(A),D=Math.round(D),P=Math.round(P),C=Math.round(C),O=Math.round(O),k=Math.round(k),R=Math.round(R)),this.setTexture2D(a,0);var B=t._isTinted&&t.tintFill;this.batchQuad(L,A,D,P,C,O,k,R,h,u,c,d,I,Y,F,N,B,a,0)},batchQuad:function(t,e,i,n,r,s,o,a,h,u,l,c,d,p,f,m,v,g,y){var _=!1;this.vertexCount+6>this.vertexCapacity&&(this.flush(),_=!0,this.setTexture2D(g,y));var x=this.vertexViewF32,b=this.vertexViewU32,w=this.vertexCount*this.vertexComponentCount-1;return x[++w]=t,x[++w]=e,x[++w]=h,x[++w]=u,x[++w]=v,b[++w]=d,x[++w]=i,x[++w]=n,x[++w]=h,x[++w]=c,x[++w]=v,b[++w]=f,x[++w]=r,x[++w]=s,x[++w]=l,x[++w]=c,x[++w]=v,b[++w]=m,x[++w]=t,x[++w]=e,x[++w]=h,x[++w]=u,x[++w]=v,b[++w]=d,x[++w]=r,x[++w]=s,x[++w]=l,x[++w]=c,x[++w]=v,b[++w]=m,x[++w]=o,x[++w]=a,x[++w]=l,x[++w]=u,x[++w]=v,b[++w]=p,this.vertexCount+=6,_},batchTri:function(t,e,i,n,r,s,o,a,h,u,l,c,d,p,f,m){var v=!1;this.vertexCount+3>this.vertexCapacity&&(this.flush(),this.setTexture2D(f,m),v=!0);var g=this.vertexViewF32,y=this.vertexViewU32,_=this.vertexCount*this.vertexComponentCount-1;return g[++_]=t,g[++_]=e,g[++_]=o,g[++_]=a,g[++_]=p,y[++_]=l,g[++_]=i,g[++_]=n,g[++_]=o,g[++_]=u,g[++_]=p,y[++_]=c,g[++_]=r,g[++_]=s,g[++_]=h,g[++_]=u,g[++_]=p,y[++_]=d,this.vertexCount+=3,v},batchTexture:function(t,e,i,n,r,s,o,a,h,u,l,c,d,p,f,m,v,g,y,_,x,b,w,T,M,S,E,L,A,D,P){this.renderer.setPipeline(this,t);var C=this._tempMatrix1,O=this._tempMatrix2,k=this._tempMatrix3,R=g/i+E,I=y/n+L,Y=(g+_)/i+E,F=(y+x)/n+L,N=o,B=a,U=-m,j=-v;if(t.isCropped){var H=t._crop;N=H.width,B=H.height,o=H.width,a=H.height;var z=g=H.x,W=y=H.y;c&&(z=_-H.x-H.width),d&&!e.isRenderTexture&&(W=x-H.y-H.height),R=z/i+E,I=W/n+L,Y=(z+H.width)/i+E,F=(W+H.height)/n+L,U=-m+g,j=-v+y}c&&(N*=-1,U+=o),(d^=!P&&e.isRenderTexture?1:0)&&(B*=-1,j+=a);var G=U+N,V=j+B;O.applyITRS(r,s,l,h,u),C.copyFrom(A.matrix),D?(C.multiplyWithOffset(D,-A.scrollX*p,-A.scrollY*f),O.e=r,O.f=s,C.multiply(O,k)):(O.e-=A.scrollX*p,O.f-=A.scrollY*f,C.multiply(O,k));var X=k.getX(U,j),q=k.getY(U,j),J=k.getX(U,V),Z=k.getY(U,V),K=k.getX(G,V),Q=k.getY(G,V),$=k.getX(G,j),tt=k.getY(G,j);A.roundPixels&&(X=Math.round(X),q=Math.round(q),J=Math.round(J),Z=Math.round(Z),K=Math.round(K),Q=Math.round(Q),$=Math.round($),tt=Math.round(tt)),this.setTexture2D(e,0),this.batchQuad(X,q,J,Z,K,Q,$,tt,R,I,Y,F,b,w,T,M,S,e,0)},batchTextureFrame:function(t,e,i,n,r,s,o){this.renderer.setPipeline(this);var a=this._tempMatrix1.copyFrom(s),h=this._tempMatrix2,u=e+t.width,c=i+t.height;o?a.multiply(o,h):h=a;var d=h.getX(e,i),p=h.getY(e,i),f=h.getX(e,c),m=h.getY(e,c),v=h.getX(u,c),g=h.getY(u,c),y=h.getX(u,i),_=h.getY(u,i);this.setTexture2D(t.glTexture,0),n=l.getTintAppendFloatAlpha(n,r),this.batchQuad(d,p,f,m,v,g,y,_,t.u0,t.v0,t.u1,t.v1,n,n,n,n,0,t.glTexture,0)},drawFillRect:function(t,e,i,n,r,s){var o=t+i,a=e+n;this.setTexture2D();var h=l.getTintAppendFloatAlphaAndSwap(r,s);this.batchQuad(t,e,t,a,o,a,o,e,0,0,1,1,h,h,h,h,2)},batchFillRect:function(t,e,i,n,r,s){this.renderer.setPipeline(this);var o=this._tempMatrix3;s&&s.multiply(r,o);var a=t+i,h=e+n,u=o.getX(t,e),l=o.getY(t,e),c=o.getX(t,h),d=o.getY(t,h),p=o.getX(a,h),f=o.getY(a,h),m=o.getX(a,e),v=o.getY(a,e),g=this.currentFrame,y=g.u0,_=g.v0,x=g.u1,b=g.v1;this.batchQuad(u,l,c,d,p,f,m,v,y,_,x,b,this.fillTint.TL,this.fillTint.TR,this.fillTint.BL,this.fillTint.BR,this.tintEffect)},batchFillTriangle:function(t,e,i,n,r,s,o,a){this.renderer.setPipeline(this);var h=this._tempMatrix3;a&&a.multiply(o,h);var u=h.getX(t,e),l=h.getY(t,e),c=h.getX(i,n),d=h.getY(i,n),p=h.getX(r,s),f=h.getY(r,s),m=this.currentFrame,v=m.u0,g=m.v0,y=m.u1,_=m.v1;this.batchTri(u,l,c,d,p,f,v,g,y,_,this.fillTint.TL,this.fillTint.TR,this.fillTint.BL,this.tintEffect)},batchStrokeTriangle:function(t,e,i,n,r,s,o,a,h){var u=this.tempTriangle;u[0].x=t,u[0].y=e,u[0].width=o,u[1].x=i,u[1].y=n,u[1].width=o,u[2].x=r,u[2].y=s,u[2].width=o,u[3].x=t,u[3].y=e,u[3].width=o,this.batchStrokePath(u,o,!1,a,h)},batchFillPath:function(t,e,i){this.renderer.setPipeline(this);var n=this._tempMatrix3;i&&i.multiply(e,n);for(var s,o,a=t.length,h=this.polygonCache,u=this.fillTint.TL,l=this.fillTint.TR,c=this.fillTint.BL,d=this.tintEffect,p=0;p<a;++p)o=t[p],h.push(o.x,o.y);a=(s=r(h)).length;for(var f=this.currentFrame,m=0;m<a;m+=3){var v=2*s[m+0],g=2*s[m+1],y=2*s[m+2],_=h[v+0],x=h[v+1],b=h[g+0],w=h[g+1],T=h[y+0],M=h[y+1],S=n.getX(_,x),E=n.getY(_,x),L=n.getX(b,w),A=n.getY(b,w),D=n.getX(T,M),P=n.getY(T,M),C=f.u0,O=f.v0,k=f.u1,R=f.v1;this.batchTri(S,E,L,A,D,P,C,O,k,R,u,l,c,d)}h.length=0},batchStrokePath:function(t,e,i,n,r){this.renderer.setPipeline(this),this.prevQuad[4]=0,this.firstQuad[4]=0;for(var s=t.length-1,o=0;o<s;o++){var a=t[o],h=t[o+1];this.batchLine(a.x,a.y,h.x,h.y,a.width/2,h.width/2,e,o,!i&&o===s-1,n,r)}},batchLine:function(t,e,i,n,r,s,o,a,h,u,l){this.renderer.setPipeline(this);var c=this._tempMatrix3;l&&l.multiply(u,c);var d=i-t,p=n-e,f=Math.sqrt(d*d+p*p),m=r*(n-e)/f,v=r*(t-i)/f,g=s*(n-e)/f,y=s*(t-i)/f,_=i-g,x=n-y,b=t-m,w=e-v,T=i+g,M=n+y,S=t+m,E=e+v,L=c.getX(_,x),A=c.getY(_,x),D=c.getX(b,w),P=c.getY(b,w),C=c.getX(T,M),O=c.getY(T,M),k=c.getX(S,E),R=c.getY(S,E),I=this.strokeTint,Y=this.tintEffect,F=I.TL,N=I.TR,B=I.BL,U=I.BR,j=this.currentFrame,H=j.u0,z=j.v0,W=j.u1,G=j.v1;if(this.batchQuad(k,R,D,P,L,A,C,O,H,z,W,G,F,N,B,U,Y),!(o<=2)){var V=this.prevQuad,X=this.firstQuad;a>0&&V[4]?this.batchQuad(k,R,D,P,V[0],V[1],V[2],V[3],H,z,W,G,F,N,B,U,Y):(X[0]=k,X[1]=R,X[2]=D,X[3]=P,X[4]=1),h&&X[4]?this.batchQuad(L,A,C,O,X[0],X[1],X[2],X[3],H,z,W,G,F,N,B,U,Y):(V[0]=L,V[1]=A,V[2]=C,V[3]=O,V[4]=1)}}});t.exports=d},14421:(t,e,i)=>{var n=i(47379),r=i(81769),s=i(77266),o=i(73914),a=i(29757),h=i(65492),u=i(69241),l=new n({Extends:u,Mixins:[s],initialize:function(t){var e=t.renderer.config;u.call(this,{game:t.game,renderer:t.renderer,gl:t.renderer.gl,topology:t.renderer.gl.TRIANGLE_STRIP,vertShader:r(t,"vertShader",a),fragShader:r(t,"fragShader",o),vertexCapacity:r(t,"vertexCapacity",6*e.batchSize),vertexSize:r(t,"vertexSize",5*Float32Array.BYTES_PER_ELEMENT+4*Uint8Array.BYTES_PER_ELEMENT),attributes:[{name:"inPosition",size:2,type:t.renderer.gl.FLOAT,normalized:!1,offset:0},{name:"inTexCoord",size:2,type:t.renderer.gl.FLOAT,normalized:!1,offset:2*Float32Array.BYTES_PER_ELEMENT},{name:"inTintEffect",size:1,type:t.renderer.gl.FLOAT,normalized:!1,offset:4*Float32Array.BYTES_PER_ELEMENT},{name:"inTint",size:4,type:t.renderer.gl.UNSIGNED_BYTE,normalized:!0,offset:5*Float32Array.BYTES_PER_ELEMENT}]}),this.vertexViewF32=new Float32Array(this.vertexData),this.vertexViewU32=new Uint32Array(this.vertexData),this.maxQuads=e.batchSize,this.batches=[],this._tempMatrix1=new h,this._tempMatrix2=new h,this._tempMatrix3=new h,this.mvpInit()},onBind:function(){return u.prototype.onBind.call(this),this.mvpUpdate(),this},resize:function(t,e,i){return u.prototype.resize.call(this,t,e,i),this.projOrtho(0,this.width,this.height,0,-1e3,1e3),this},setTexture2D:function(t,e){return void 0===t&&(t=this.renderer.blankTexture.glTexture),void 0===e&&(e=0),this.requireTextureBatch(t,e)&&this.pushBatch(t,e),this},requireTextureBatch:function(t,e){var i=this.batches,n=i.length;return!(n>0)||!((e>0?i[n-1].textures[e-1]:i[n-1].texture)===t)},pushBatch:function(t,e){if(0===e)this.batches.push({first:this.vertexCount,texture:t,textures:[]});else{var i=[];i[e-1]=t,this.batches.push({first:this.vertexCount,texture:null,textures:i})}},flush:function(){if(this.flushLocked)return this;this.flushLocked=!0;var t,e,i,n=this.gl,r=this.vertexCount,s=this.topology,o=this.vertexSize,a=this.renderer,h=this.batches,u=h.length,l=0,c=null;if(0===u||0===r)return this.flushLocked=!1,this;n.bufferSubData(n.ARRAY_BUFFER,0,this.bytes.subarray(0,r*o));for(var d=0;d<u-1;d++){if(c=h[d],t=h[d+1],c.textures.length>0){for(e=0;e<c.textures.length;++e)(i=c.textures[e])&&a.setTexture2D(i,1+e,!1);n.activeTexture(n.TEXTURE0)}l=t.first-c.first,null===c.texture||l<=0||(a.setTexture2D(c.texture,0,!1),n.drawArrays(s,c.first,l))}if((c=h[u-1]).textures.length>0){for(e=0;e<c.textures.length;++e)(i=c.textures[e])&&a.setTexture2D(i,1+e,!1);n.activeTexture(n.TEXTURE0)}return l=r-c.first,c.texture&&l>0&&(a.setTexture2D(c.texture,0,!1),n.drawArrays(s,c.first,l)),this.vertexCount=0,h.length=0,this.flushLocked=!1,this}});t.exports=l},77266:t=>{var e={modelMatrixDirty:!1,viewMatrixDirty:!1,projectionMatrixDirty:!1,modelMatrix:null,viewMatrix:null,projectionMatrix:null,mvpInit:function(){return this.modelMatrixDirty=!0,this.viewMatrixDirty=!0,this.projectionMatrixDirty=!0,this.modelMatrix=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this.viewMatrix=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this.projectionMatrix=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this},mvpUpdate:function(){var t=this.program;return this.modelMatrixDirty&&(this.renderer.setMatrix4(t,"uModelMatrix",!1,this.modelMatrix),this.modelMatrixDirty=!1),this.viewMatrixDirty&&(this.renderer.setMatrix4(t,"uViewMatrix",!1,this.viewMatrix),this.viewMatrixDirty=!1),this.projectionMatrixDirty&&(this.renderer.setMatrix4(t,"uProjectionMatrix",!1,this.projectionMatrix),this.projectionMatrixDirty=!1),this},modelIdentity:function(){var t=this.modelMatrix;return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this.modelMatrixDirty=!0,this},modelScale:function(t,e,i){var n=this.modelMatrix;return n[0]=n[0]*t,n[1]=n[1]*t,n[2]=n[2]*t,n[3]=n[3]*t,n[4]=n[4]*e,n[5]=n[5]*e,n[6]=n[6]*e,n[7]=n[7]*e,n[8]=n[8]*i,n[9]=n[9]*i,n[10]=n[10]*i,n[11]=n[11]*i,this.modelMatrixDirty=!0,this},modelTranslate:function(t,e,i){var n=this.modelMatrix;return n[12]=n[0]*t+n[4]*e+n[8]*i+n[12],n[13]=n[1]*t+n[5]*e+n[9]*i+n[13],n[14]=n[2]*t+n[6]*e+n[10]*i+n[14],n[15]=n[3]*t+n[7]*e+n[11]*i+n[15],this.modelMatrixDirty=!0,this},modelRotateX:function(t){var e=this.modelMatrix,i=Math.sin(t),n=Math.cos(t),r=e[4],s=e[5],o=e[6],a=e[7],h=e[8],u=e[9],l=e[10],c=e[11];return e[4]=r*n+h*i,e[5]=s*n+u*i,e[6]=o*n+l*i,e[7]=a*n+c*i,e[8]=h*n-r*i,e[9]=u*n-s*i,e[10]=l*n-o*i,e[11]=c*n-a*i,this.modelMatrixDirty=!0,this},modelRotateY:function(t){var e=this.modelMatrix,i=Math.sin(t),n=Math.cos(t),r=e[0],s=e[1],o=e[2],a=e[3],h=e[8],u=e[9],l=e[10],c=e[11];return e[0]=r*n-h*i,e[1]=s*n-u*i,e[2]=o*n-l*i,e[3]=a*n-c*i,e[8]=r*i+h*n,e[9]=s*i+u*n,e[10]=o*i+l*n,e[11]=a*i+c*n,this.modelMatrixDirty=!0,this},modelRotateZ:function(t){var e=this.modelMatrix,i=Math.sin(t),n=Math.cos(t),r=e[0],s=e[1],o=e[2],a=e[3],h=e[4],u=e[5],l=e[6],c=e[7];return e[0]=r*n+h*i,e[1]=s*n+u*i,e[2]=o*n+l*i,e[3]=a*n+c*i,e[4]=h*n-r*i,e[5]=u*n-s*i,e[6]=l*n-o*i,e[7]=c*n-a*i,this.modelMatrixDirty=!0,this},viewIdentity:function(){var t=this.viewMatrix;return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this.viewMatrixDirty=!0,this},viewScale:function(t,e,i){var n=this.viewMatrix;return n[0]=n[0]*t,n[1]=n[1]*t,n[2]=n[2]*t,n[3]=n[3]*t,n[4]=n[4]*e,n[5]=n[5]*e,n[6]=n[6]*e,n[7]=n[7]*e,n[8]=n[8]*i,n[9]=n[9]*i,n[10]=n[10]*i,n[11]=n[11]*i,this.viewMatrixDirty=!0,this},viewTranslate:function(t,e,i){var n=this.viewMatrix;return n[12]=n[0]*t+n[4]*e+n[8]*i+n[12],n[13]=n[1]*t+n[5]*e+n[9]*i+n[13],n[14]=n[2]*t+n[6]*e+n[10]*i+n[14],n[15]=n[3]*t+n[7]*e+n[11]*i+n[15],this.viewMatrixDirty=!0,this},viewRotateX:function(t){var e=this.viewMatrix,i=Math.sin(t),n=Math.cos(t),r=e[4],s=e[5],o=e[6],a=e[7],h=e[8],u=e[9],l=e[10],c=e[11];return e[4]=r*n+h*i,e[5]=s*n+u*i,e[6]=o*n+l*i,e[7]=a*n+c*i,e[8]=h*n-r*i,e[9]=u*n-s*i,e[10]=l*n-o*i,e[11]=c*n-a*i,this.viewMatrixDirty=!0,this},viewRotateY:function(t){var e=this.viewMatrix,i=Math.sin(t),n=Math.cos(t),r=e[0],s=e[1],o=e[2],a=e[3],h=e[8],u=e[9],l=e[10],c=e[11];return e[0]=r*n-h*i,e[1]=s*n-u*i,e[2]=o*n-l*i,e[3]=a*n-c*i,e[8]=r*i+h*n,e[9]=s*i+u*n,e[10]=o*i+l*n,e[11]=a*i+c*n,this.viewMatrixDirty=!0,this},viewRotateZ:function(t){var e=this.viewMatrix,i=Math.sin(t),n=Math.cos(t),r=e[0],s=e[1],o=e[2],a=e[3],h=e[4],u=e[5],l=e[6],c=e[7];return e[0]=r*n+h*i,e[1]=s*n+u*i,e[2]=o*n+l*i,e[3]=a*n+c*i,e[4]=h*n-r*i,e[5]=u*n-s*i,e[6]=l*n-o*i,e[7]=c*n-a*i,this.viewMatrixDirty=!0,this},viewLoad2D:function(t){var e=this.viewMatrix;return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=0,e[4]=t[2],e[5]=t[3],e[6]=0,e[7]=0,e[8]=t[4],e[9]=t[5],e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this.viewMatrixDirty=!0,this},viewLoad:function(t){var e=this.viewMatrix;return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],this.viewMatrixDirty=!0,this},projIdentity:function(){var t=this.projectionMatrix;return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this.projectionMatrixDirty=!0,this},projOrtho:function(t,e,i,n,r,s){var o=this.projectionMatrix,a=1/(t-e),h=1/(i-n),u=1/(r-s);return o[0]=-2*a,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=-2*h,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=2*u,o[11]=0,o[12]=(t+e)*a,o[13]=(n+i)*h,o[14]=(s+r)*u,o[15]=1,this.projectionMatrixDirty=!0,this},projPersp:function(t,e,i,n){var r=this.projectionMatrix,s=1/Math.tan(t/2),o=1/(i-n);return r[0]=s/e,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=s,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=(n+i)*o,r[11]=-1,r[12]=0,r[13]=0,r[14]=2*n*i*o,r[15]=0,this.projectionMatrixDirty=!0,this}};t.exports=e},60487:(t,e,i)=>{t.exports={BitmapMaskPipeline:i(51043),ForwardDiffuseLightPipeline:i(74612),TextureTintPipeline:i(38383),TextureTintStripPipeline:i(14421),ModelViewProjection:i(77266)}},10042:t=>{t.exports=["#define SHADER_NAME PHASER_BITMAP_MASK_FS","","precision mediump float;","","uniform vec2 uResolution;","uniform sampler2D uMainSampler;","uniform sampler2D uMaskSampler;","uniform bool uInvertMaskAlpha;","","void main()","{"," vec2 uv = gl_FragCoord.xy / uResolution;"," vec4 mainColor = texture2D(uMainSampler, uv);"," vec4 maskColor = texture2D(uMaskSampler, uv);"," float alpha = mainColor.a;",""," if (!uInvertMaskAlpha)"," {"," alpha *= (maskColor.a);"," }"," else"," {"," alpha *= (1.0 - maskColor.a);"," }",""," gl_FragColor = vec4(mainColor.rgb * alpha, alpha);","}",""].join("\n")},89781:t=>{t.exports=["#define SHADER_NAME PHASER_BITMAP_MASK_VS","","precision mediump float;","","attribute vec2 inPosition;","","void main()","{"," gl_Position = vec4(inPosition, 0.0, 1.0);","}",""].join("\n")},74934:t=>{t.exports=["#define SHADER_NAME PHASER_FORWARD_DIFFUSE_FS","","precision mediump float;","","struct Light","{"," vec2 position;"," vec3 color;"," float intensity;"," float radius;","};","","const int kMaxLights = %LIGHT_COUNT%;","","uniform vec4 uCamera; /* x, y, rotation, zoom */","uniform vec2 uResolution;","uniform sampler2D uMainSampler;","uniform sampler2D uNormSampler;","uniform vec3 uAmbientLightColor;","uniform Light uLights[kMaxLights];","uniform mat3 uInverseRotationMatrix;","","varying vec2 outTexCoord;","varying vec4 outTint;","","void main()","{"," vec3 finalColor = vec3(0.0, 0.0, 0.0);"," vec4 color = texture2D(uMainSampler, outTexCoord) * vec4(outTint.rgb * outTint.a, outTint.a);"," vec3 normalMap = texture2D(uNormSampler, outTexCoord).rgb;"," vec3 normal = normalize(uInverseRotationMatrix * vec3(normalMap * 2.0 - 1.0));"," vec2 res = vec2(min(uResolution.x, uResolution.y)) * uCamera.w;",""," for (int index = 0; index < kMaxLights; ++index)"," {"," Light light = uLights[index];"," vec3 lightDir = vec3((light.position.xy / res) - (gl_FragCoord.xy / res), 0.1);"," vec3 lightNormal = normalize(lightDir);"," float distToSurf = length(lightDir) * uCamera.w;"," float diffuseFactor = max(dot(normal, lightNormal), 0.0);"," float radius = (light.radius / res.x * uCamera.w) * uCamera.w;"," float attenuation = clamp(1.0 - distToSurf * distToSurf / (radius * radius), 0.0, 1.0);"," vec3 diffuse = light.color * diffuseFactor;"," finalColor += (attenuation * diffuse) * light.intensity;"," }",""," vec4 colorOutput = vec4(uAmbientLightColor + finalColor, 1.0);"," gl_FragColor = color * vec4(colorOutput.rgb * colorOutput.a, colorOutput.a);","","}",""].join("\n")},73914:t=>{t.exports=["#define SHADER_NAME PHASER_TEXTURE_TINT_FS","","precision mediump float;","","uniform sampler2D uMainSampler;","","varying vec2 outTexCoord;","varying float outTintEffect;","varying vec4 outTint;","","void main()","{"," vec4 texture = texture2D(uMainSampler, outTexCoord);"," vec4 texel = vec4(outTint.rgb * outTint.a, outTint.a);"," vec4 color = texture;",""," if (outTintEffect == 0.0)"," {"," // Multiply texture tint"," color = texture * texel;"," }"," else if (outTintEffect == 1.0)"," {"," // Solid color + texture alpha"," color.rgb = mix(texture.rgb, outTint.rgb * outTint.a, texture.a);"," color.a = texture.a * texel.a;"," }"," else if (outTintEffect == 2.0)"," {"," // Solid color, no texture"," color = texel;"," }",""," gl_FragColor = color;","}",""].join("\n")},29757:t=>{t.exports=["#define SHADER_NAME PHASER_TEXTURE_TINT_VS","","precision mediump float;","","uniform mat4 uProjectionMatrix;","uniform mat4 uViewMatrix;","uniform mat4 uModelMatrix;","","attribute vec2 inPosition;","attribute vec2 inTexCoord;","attribute float inTintEffect;","attribute vec4 inTint;","","varying vec2 outTexCoord;","varying float outTintEffect;","varying vec4 outTint;","","void main ()","{"," gl_Position = uProjectionMatrix * uViewMatrix * uModelMatrix * vec4(inPosition, 1.0, 1.0);",""," outTexCoord = inTexCoord;"," outTint = inTint;"," outTintEffect = inTintEffect;","}","",""].join("\n")},92499:(t,e,i)=>{var n=i(67467),r=i(47379),s=i(17168),o=i(66144),a=i(80827),h=i(6056),u=i(74537),l=i(16070),c=i(49035),d=i(38092),p=i(4977),f=i(88168),m=i(57148),v=new r({Extends:s,initialize:function(t){s.call(this),this.game=t,this.canvas,this.canvasBounds=new d,this.parent=null,this.parentIsWindow=!1,this.parentSize=new p,this.gameSize=new p,this.baseSize=new p,this.displaySize=new p,this.scaleMode=n.SCALE_MODE.NONE,this.resolution=1,this.zoom=1,this._resetZoom=!1,this.displayScale=new m(1,1),this.autoRound=!1,this.autoCenter=n.CENTER.NO_CENTER,this.orientation=n.ORIENTATION.LANDSCAPE,this.fullscreen,this.fullscreenTarget=null,this._createdFullscreenTarget=!1,this.dirty=!1,this.resizeInterval=500,this._lastCheck=0,this._checkOrientation=!1,this.listeners={orientationChange:c,windowResize:c,fullScreenChange:c,fullScreenError:c}},preBoot:function(){this.parseConfig(this.game.config),this.game.events.once("boot",this.boot,this)},boot:function(){var t=this.game;this.canvas=t.canvas,this.fullscreen=t.device.fullscreen,this.scaleMode!==n.SCALE_MODE.RESIZE&&this.displaySize.setAspectMode(this.scaleMode),this.scaleMode===n.SCALE_MODE.NONE?this.resize(this.width,this.height):(this.getParentBounds(),this.parentSize.width>0&&this.parentSize.height>0&&this.displaySize.setParent(this.parentSize),this.refresh()),t.events.on(a.PRE_STEP,this.step,this),t.events.once(a.DESTROY,this.destroy,this),this.startListeners()},parseConfig:function(t){this.getParent(t),this.getParentBounds();var e=t.width,i=t.height,r=t.scaleMode,s=t.resolution,o=t.zoom,a=t.autoRound;if("string"==typeof e){var h=this.parentSize.width;0===h&&(h=window.innerWidth);var u=parseInt(e,10)/100;e=Math.floor(h*u)}if("string"==typeof i){var c=this.parentSize.height;0===c&&(c=window.innerHeight);var d=parseInt(i,10)/100;i=Math.floor(c*d)}this.resolution=1,this.scaleMode=r,this.autoRound=a,this.autoCenter=t.autoCenter,this.resizeInterval=t.resizeInterval,a&&(e=Math.floor(e),i=Math.floor(i)),this.gameSize.setSize(e,i),o===n.ZOOM.MAX_ZOOM&&(o=this.getMaxZoom()),this.zoom=o,1!==o&&(this._resetZoom=!0),this.baseSize.setSize(e*s,i*s),a&&(this.baseSize.width=Math.floor(this.baseSize.width),this.baseSize.height=Math.floor(this.baseSize.height)),t.minWidth>0&&this.displaySize.setMin(t.minWidth*o,t.minHeight*o),t.maxWidth>0&&this.displaySize.setMax(t.maxWidth*o,t.maxHeight*o),this.displaySize.setSize(e,i),this.orientation=l(e,i)},getParent:function(t){var e=t.parent;if(null!==e){if(this.parent=u(e),this.parentIsWindow=this.parent===document.body,t.expandParent&&t.scaleMode!==n.SCALE_MODE.NONE){var i=this.parent.getBoundingClientRect();(this.parentIsWindow||0===i.height)&&(document.documentElement.style.height="100%",document.body.style.height="100%",i=this.parent.getBoundingClientRect(),this.parentIsWindow||0!==i.height||(this.parent.style.overflow="hidden",this.parent.style.width="100%",this.parent.style.height="100%"))}t.fullscreenTarget&&!this.fullscreenTarget&&(this.fullscreenTarget=u(t.fullscreenTarget))}},getParentBounds:function(){if(!this.parent)return!1;var t=this.parentSize,e=this.parent.getBoundingClientRect();this.parentIsWindow&&this.game.device.os.iOS&&(e.height=h(!0));var i=this.resolution,n=e.width*i,r=e.height*i;return(t.width!==n||t.height!==r)&&(t.setSize(n,r),!0)},lockOrientation:function(t){var e=screen.lockOrientation||screen.mozLockOrientation||screen.msLockOrientation;return!!e&&e.call(screen,t)},setParentSize:function(t,e){return this.parentSize.setSize(t,e),this.refresh()},setGameSize:function(t,e){var i=this.autoRound,n=this.resolution;i&&(t=Math.floor(t),e=Math.floor(e));var r=this.width,s=this.height;return this.gameSize.resize(t,e),this.baseSize.resize(t*n,e*n),i&&(this.baseSize.width=Math.floor(this.baseSize.width),this.baseSize.height=Math.floor(this.baseSize.height)),this.displaySize.setAspectRatio(t/e),this.canvas.width=this.baseSize.width,this.canvas.height=this.baseSize.height,this.refresh(r,s)},resize:function(t,e){var i=this.zoom,n=this.resolution,r=this.autoRound;r&&(t=Math.floor(t),e=Math.floor(e));var s=this.width,o=this.height;this.gameSize.resize(t,e),this.baseSize.resize(t*n,e*n),r&&(this.baseSize.width=Math.floor(this.baseSize.width),this.baseSize.height=Math.floor(this.baseSize.height)),this.displaySize.setSize(t*i*n,e*i*n),this.canvas.width=this.baseSize.width,this.canvas.height=this.baseSize.height;var a=this.canvas.style,h=t*i,u=e*i;return r&&(h=Math.floor(h),u=Math.floor(u)),h===t&&u===e||(a.width=h+"px",a.height=u+"px"),this.refresh(s,o)},setZoom:function(t){return this.zoom=t,this._resetZoom=!0,this.refresh()},setMaxZoom:function(){return this.zoom=this.getMaxZoom(),this._resetZoom=!0,this.refresh()},refresh:function(t,e){void 0===t&&(t=this.width),void 0===e&&(e=this.height),this.updateScale(),this.updateBounds(),this.updateOrientation(),this.displayScale.set(this.baseSize.width/this.canvasBounds.width,this.baseSize.height/this.canvasBounds.height);var i=this.game.domContainer;if(i){this.baseSize.setCSS(i);var n=this.canvas.style,r=i.style;r.transform="scale("+this.displaySize.width/this.baseSize.width+","+this.displaySize.height/this.baseSize.height+")",r.marginLeft=n.marginLeft,r.marginTop=n.marginTop}return this.emit(o.RESIZE,this.gameSize,this.baseSize,this.displaySize,this.resolution,t,e),this},updateOrientation:function(){if(this._checkOrientation){this._checkOrientation=!1;var t=l(this.width,this.height);t!==this.orientation&&(this.orientation=t,this.emit(o.ORIENTATION_CHANGE,t))}},updateScale:function(){var t,e,i=this.canvas.style,r=this.gameSize.width,s=this.gameSize.height,o=this.zoom,a=this.autoRound;this.scaleMode===n.SCALE_MODE.NONE?(this.displaySize.setSize(r*o*1,s*o*1),t=this.displaySize.width/1,e=this.displaySize.height/1,a&&(t=Math.floor(t),e=Math.floor(e)),this._resetZoom&&(i.width=t+"px",i.height=e+"px",this._resetZoom=!1)):this.scaleMode===n.SCALE_MODE.RESIZE?(this.displaySize.setSize(this.parentSize.width,this.parentSize.height),this.gameSize.setSize(this.displaySize.width,this.displaySize.height),this.baseSize.setSize(1*this.displaySize.width,1*this.displaySize.height),t=this.displaySize.width/1,e=this.displaySize.height/1,a&&(t=Math.floor(t),e=Math.floor(e)),this.canvas.width=t,this.canvas.height=e):(this.displaySize.setSize(this.parentSize.width,this.parentSize.height),t=this.displaySize.width/1,e=this.displaySize.height/1,a&&(t=Math.floor(t),e=Math.floor(e)),i.width=t+"px",i.height=e+"px"),this.getParentBounds(),this.updateCenter()},getMaxZoom:function(){var t=f(this.parentSize.width,this.gameSize.width,0,!0),e=f(this.parentSize.height,this.gameSize.height,0,!0);return Math.max(Math.min(t,e),1)},updateCenter:function(){var t=this.autoCenter;if(t!==n.CENTER.NO_CENTER){var e=this.canvas,i=e.style,r=e.getBoundingClientRect(),s=r.width,o=r.height,a=Math.floor((this.parentSize.width-s)/2),h=Math.floor((this.parentSize.height-o)/2);t===n.CENTER.CENTER_HORIZONTALLY?h=0:t===n.CENTER.CENTER_VERTICALLY&&(a=0),i.marginLeft=a+"px",i.marginTop=h+"px"}},updateBounds:function(){var t=this.canvasBounds,e=this.canvas.getBoundingClientRect();t.x=e.left+(window.pageXOffset||0)-(document.documentElement.clientLeft||0),t.y=e.top+(window.pageYOffset||0)-(document.documentElement.clientTop||0),t.width=e.width,t.height=e.height},transformX:function(t){return(t-this.canvasBounds.left)*this.displayScale.x},transformY:function(t){return(t-this.canvasBounds.top)*this.displayScale.y},startFullscreen:function(t){void 0===t&&(t={navigationUI:"hide"});var e=this.fullscreen;if(e.available){if(!e.active){var i,n=this.getFullscreenTarget();(i=e.keyboard?n[e.request](Element.ALLOW_KEYBOARD_INPUT):n[e.request](t))?i.then(this.fullscreenSuccessHandler.bind(this)).catch(this.fullscreenErrorHandler.bind(this)):e.active?this.fullscreenSuccessHandler():this.fullscreenErrorHandler()}}else this.emit(o.FULLSCREEN_UNSUPPORTED)},fullscreenSuccessHandler:function(){this.getParentBounds(),this.refresh(),this.emit(o.ENTER_FULLSCREEN)},fullscreenErrorHandler:function(t){this.removeFullscreenTarget(),this.emit(o.FULLSCREEN_FAILED,t)},getFullscreenTarget:function(){if(!this.fullscreenTarget){var t=document.createElement("div");t.style.margin="0",t.style.padding="0",t.style.width="100%",t.style.height="100%",this.fullscreenTarget=t,this._createdFullscreenTarget=!0}this._createdFullscreenTarget&&(this.canvas.parentNode.insertBefore(this.fullscreenTarget,this.canvas),this.fullscreenTarget.appendChild(this.canvas));return this.fullscreenTarget},removeFullscreenTarget:function(){if(this._createdFullscreenTarget){var t=this.fullscreenTarget;if(t&&t.parentNode){var e=t.parentNode;e.insertBefore(this.canvas,t),e.removeChild(t)}}},stopFullscreen:function(){var t=this.fullscreen;if(!t.available)return this.emit(o.FULLSCREEN_UNSUPPORTED),!1;t.active&&document[t.cancel](),this.removeFullscreenTarget(),this.getParentBounds(),this.emit(o.LEAVE_FULLSCREEN),this.refresh()},toggleFullscreen:function(t){this.fullscreen.active?this.stopFullscreen():this.startFullscreen(t)},startListeners:function(){var t=this,e=this.listeners;if(e.orientationChange=function(){t._checkOrientation=!0,t.dirty=!0},e.windowResize=function(){t.dirty=!0},window.addEventListener("orientationchange",e.orientationChange,!1),window.addEventListener("resize",e.windowResize,!1),this.fullscreen.available){e.fullScreenChange=function(e){return t.onFullScreenChange(e)},e.fullScreenError=function(e){return t.onFullScreenError(e)};["webkit","moz",""].forEach((function(t){document.addEventListener(t+"fullscreenchange",e.fullScreenChange,!1),document.addEventListener(t+"fullscreenerror",e.fullScreenError,!1)})),document.addEventListener("MSFullscreenChange",e.fullScreenChange,!1),document.addEventListener("MSFullscreenError",e.fullScreenError,!1)}},onFullScreenChange:function(){document.fullscreenElement||document.webkitFullscreenElement||document.msFullscreenElement||document.mozFullScreenElement||this.stopFullscreen()},onFullScreenError:function(){this.removeFullscreenTarget()},step:function(t,e){this.parent&&(this._lastCheck+=e,(this.dirty||this._lastCheck>this.resizeInterval)&&(this.getParentBounds()&&this.refresh(),this.dirty=!1,this._lastCheck=0))},stopListeners:function(){var t=this.listeners;window.removeEventListener("orientationchange",t.orientationChange,!1),window.removeEventListener("resize",t.windowResize,!1);["webkit","moz",""].forEach((function(e){document.removeEventListener(e+"fullscreenchange",t.fullScreenChange,!1),document.removeEventListener(e+"fullscreenerror",t.fullScreenError,!1)})),document.removeEventListener("MSFullscreenChange",t.fullScreenChange,!1),document.removeEventListener("MSFullscreenError",t.fullScreenError,!1)},destroy:function(){this.removeAllListeners(),this.stopListeners(),this.game=null,this.canvas=null,this.canvasBounds=null,this.parent=null,this.fullscreenTarget=null,this.parentSize.destroy(),this.gameSize.destroy(),this.baseSize.destroy(),this.displaySize.destroy()},isFullscreen:{get:function(){return this.fullscreen.active}},width:{get:function(){return this.gameSize.width}},height:{get:function(){return this.gameSize.height}},isPortrait:{get:function(){return this.orientation===n.ORIENTATION.PORTRAIT}},isLandscape:{get:function(){return this.orientation===n.ORIENTATION.LANDSCAPE}},isGamePortrait:{get:function(){return this.height>this.width}},isGameLandscape:{get:function(){return this.width>this.height}}});t.exports=v},57345:t=>{t.exports={NO_CENTER:0,CENTER_BOTH:1,CENTER_HORIZONTALLY:2,CENTER_VERTICALLY:3}},7880:t=>{t.exports={LANDSCAPE:"landscape-primary",PORTRAIT:"portrait-primary"}},95829:t=>{t.exports={NONE:0,WIDTH_CONTROLS_HEIGHT:1,HEIGHT_CONTROLS_WIDTH:2,FIT:3,ENVELOP:4,RESIZE:5}},38518:t=>{t.exports={NO_ZOOM:1,ZOOM_2X:2,ZOOM_4X:4,MAX_ZOOM:-1}},67467:(t,e,i)=>{var n={CENTER:i(57345),ORIENTATION:i(7880),SCALE_MODE:i(95829),ZOOM:i(38518)};t.exports=n},89493:t=>{t.exports="enterfullscreen"},80170:t=>{t.exports="fullscreenfailed"},12420:t=>{t.exports="fullscreenunsupported"},58550:t=>{t.exports="leavefullscreen"},36089:t=>{t.exports="orientationchange"},231:t=>{t.exports="resize"},66144:(t,e,i)=>{t.exports={ENTER_FULLSCREEN:i(89493),FULLSCREEN_FAILED:i(80170),FULLSCREEN_UNSUPPORTED:i(12420),LEAVE_FULLSCREEN:i(58550),ORIENTATION_CHANGE:i(36089),RESIZE:i(231)}},45192:(t,e,i)=>{var n=i(80933),r=i(67467),s={Center:i(57345),Events:i(66144),Orientation:i(7880),ScaleManager:i(92499),ScaleModes:i(95829),Zoom:i(38518)};s=n(!1,s,r.CENTER),s=n(!1,s,r.ORIENTATION),s=n(!1,s,r.SCALE_MODE),s=n(!1,s,r.ZOOM),t.exports=s},14863:(t,e,i)=>{var n=i(81769),r=i(93225);t.exports=function(t){var e=t.game.config.defaultPhysicsSystem,i=n(t.settings,"physics",!1);if(e||i){var s=[];if(e&&s.push(r(e+"Physics")),i)for(var o in i)o=r(o.concat("Physics")),-1===s.indexOf(o)&&s.push(o);return s}}},55576:(t,e,i)=>{var n=i(81769);t.exports=function(t){var e=t.plugins.getDefaultScenePlugins(),i=n(t.settings,"plugins",!1);return Array.isArray(i)?i:e||[]}},57711:t=>{var e={game:"game",anims:"anims",cache:"cache",plugins:"plugins",registry:"registry",scale:"scale",sound:"sound",textures:"textures",events:"events",cameras:"cameras",add:"add",make:"make",scenePlugin:"scene",displayList:"children",lights:"lights",data:"data",input:"input",load:"load",time:"time",tweens:"tweens",arcadePhysics:"physics",impactPhysics:"impact",matterPhysics:"matter",cameras3d:"cameras3d",facebook:"facebook"};t.exports=e},5155:(t,e,i)=>{var n=i(47379),r=i(81466),s=new n({initialize:function(t){this.sys=new r(this,t),this.game,this.anims,this.cache,this.registry,this.sound,this.textures,this.events,this.cameras,this.add,this.make,this.scene,this.children,this.lights,this.data,this.input,this.load,this.time,this.tweens,this.physics,this.matter,this.facebook,this.scale,this.plugins},update:function(){}});t.exports=s},73091:(t,e,i)=>{var n=i(47379),r=i(73913),s=i(88637),o=i(80827),a=i(86652),h=i(88275),u=i(49035),l=i(5155),c=i(81466),d=new n({initialize:function(t,e){if(this.game=t,this.keys={},this.scenes=[],this._pending=[],this._start=[],this._queue=[],this._data={},this.isProcessing=!1,this.isBooted=!1,this.customViewports=0,e){Array.isArray(e)||(e=[e]);for(var i=0;i<e.length;i++)this._pending.push({key:"default",scene:e[i],autoStart:0===i,data:{}})}t.events.once(o.READY,this.bootQueue,this)},bootQueue:function(){if(!this.isBooted){var t,e,i,n;for(t=0;t<this._pending.length;t++){var r;i=(e=this._pending[t]).key,(n=e.scene)instanceof l?r=this.createSceneFromInstance(i,n):"object"==typeof n?r=this.createSceneFromObject(i,n):"function"==typeof n&&(r=this.createSceneFromFunction(i,n)),i=r.sys.settings.key,this.keys[i]=r,this.scenes.push(r),this._data[i]&&(r.sys.settings.data=this._data[i].data,this._data[i].autoStart&&(e.autoStart=!0)),(e.autoStart||r.sys.settings.active)&&this._start.push(i)}for(this._pending.length=0,this._data={},this.isBooted=!0,t=0;t<this._start.length;t++)e=this._start[t],this.start(e);this._start.length=0}},processQueue:function(){var t=this._pending.length,e=this._queue.length;if(0!==t||0!==e){var i,n;if(t){for(i=0;i<t;i++)n=this._pending[i],this.add(n.key,n.scene,n.autoStart,n.data);for(i=0;i<this._start.length;i++)n=this._start[i],this.start(n);return this._start.length=0,void(this._pending.length=0)}for(i=0;i<this._queue.length;i++)this[(n=this._queue[i]).op](n.keyA,n.keyB);this._queue.length=0}},add:function(t,e,i,n){return void 0===i&&(i=!1),void 0===n&&(n={}),this.isProcessing||!this.isBooted?(this._pending.push({key:t,scene:e,autoStart:i,data:n}),this.isBooted||(this._data[t]={data:n}),null):(t=this.getKey(t,e),e instanceof l?r=this.createSceneFromInstance(t,e):"object"==typeof e?(e.key=t,r=this.createSceneFromObject(t,e)):"function"==typeof e&&(r=this.createSceneFromFunction(t,e)),r.sys.settings.data=n,t=r.sys.settings.key,this.keys[t]=r,this.scenes.push(r),(i||r.sys.settings.active)&&(this._pending.length?this._start.push(t):this.start(t)),r);var r},remove:function(t){if(this.isProcessing)this._queue.push({op:"remove",keyA:t,keyB:null});else{var e=this.getScene(t);if(!e||e.sys.isTransitioning())return this;var i=this.scenes.indexOf(e),n=e.sys.settings.key;i>-1&&(delete this.keys[n],this.scenes.splice(i,1),this._start.indexOf(n)>-1&&(i=this._start.indexOf(n),this._start.splice(i,1)),e.sys.destroy())}return this},bootScene:function(t){var e,i=t.sys,n=i.settings;i.sceneUpdate=u,t.init&&(t.init.call(t,n.data),n.status=r.INIT,n.isTransition&&i.events.emit(s.TRANSITION_INIT,n.transitionFrom,n.transitionDuration)),i.load&&(e=i.load).reset(),e&&t.preload?(t.preload.call(t),0===e.list.size?this.create(t):(n.status=r.LOADING,e.once(h.COMPLETE,this.loadComplete,this),e.start())):this.create(t)},loadComplete:function(t){var e=t.scene;this.game.sound&&this.game.sound.onBlurPausedSounds&&this.game.sound.unlock(),this.create(e)},payloadComplete:function(t){this.bootScene(t.scene)},update:function(t,e){this.processQueue(),this.isProcessing=!0;for(var i=this.scenes.length-1;i>=0;i--){var n=this.scenes[i].sys;n.settings.status>r.START&&n.settings.status<=r.RUNNING&&n.step(t,e)}},render:function(t){for(var e=0;e<this.scenes.length;e++){var i=this.scenes[e].sys;i.settings.visible&&i.settings.status>=r.LOADING&&i.settings.status<r.SLEEPING&&i.render(t)}this.isProcessing=!1},create:function(t){var e=t.sys,i=e.settings;t.create&&(i.status=r.CREATING,t.create.call(t,i.data),i.status===r.DESTROYED)||(i.isTransition&&e.events.emit(s.TRANSITION_START,i.transitionFrom,i.transitionDuration),t.update&&(e.sceneUpdate=t.update),i.status=r.RUNNING,e.events.emit(s.CREATE,t))},createSceneFromFunction:function(t,e){var i=new e;if(i instanceof l){var n=i.sys.settings.key;if(""!==n&&(t=n),this.keys.hasOwnProperty(t))throw new Error("Cannot add a Scene with duplicate key: "+t);return this.createSceneFromInstance(t,i)}return i.sys=new c(i),i.sys.settings.key=t,i.sys.init(this.game),i},createSceneFromInstance:function(t,e){var i=e.sys.settings.key;return""!==i?t=i:e.sys.settings.key=t,e.sys.init(this.game),e},createSceneFromObject:function(t,e){var i=new l(e),n=i.sys.settings.key;""!==n?t=n:i.sys.settings.key=t,i.sys.init(this.game);for(var r=["init","preload","create","update","render"],s=0;s<r.length;s++){var o=a(e,r[s],null);o&&(i[r[s]]=o)}if(e.hasOwnProperty("extend"))for(var h in e.extend)if(e.extend.hasOwnProperty(h)){var u=e.extend[h];"data"===h&&i.hasOwnProperty("data")&&"object"==typeof u?i.data.merge(u):"sys"!==h&&(i[h]=u)}return i},getKey:function(t,e){if(t||(t="default"),"function"==typeof e)return t;if(e instanceof l?t=e.sys.settings.key:"object"==typeof e&&e.hasOwnProperty("key")&&(t=e.key),this.keys.hasOwnProperty(t))throw new Error("Cannot add a Scene with duplicate key: "+t);return t},getScenes:function(t,e){void 0===t&&(t=!0),void 0===e&&(e=!1);for(var i=[],n=this.scenes,r=0;r<n.length;r++){var s=n[r];s&&(!t||t&&s.sys.isActive())&&i.push(s)}return e?i.reverse():i},getScene:function(t){if("string"==typeof t){if(this.keys[t])return this.keys[t]}else for(var e=0;e<this.scenes.length;e++)if(t===this.scenes[e])return t;return null},isActive:function(t){var e=this.getScene(t);return e?e.sys.isActive():null},isPaused:function(t){var e=this.getScene(t);return e?e.sys.isPaused():null},isVisible:function(t){var e=this.getScene(t);return e?e.sys.isVisible():null},isSleeping:function(t){var e=this.getScene(t);return e?e.sys.isSleeping():null},pause:function(t,e){var i=this.getScene(t);return i&&i.sys.pause(e),this},resume:function(t,e){var i=this.getScene(t);return i&&i.sys.resume(e),this},sleep:function(t,e){var i=this.getScene(t);return i&&!i.sys.isTransitioning()&&i.sys.sleep(e),this},wake:function(t,e){var i=this.getScene(t);return i&&i.sys.wake(e),this},run:function(t,e){var i=this.getScene(t);if(!i){for(var n=0;n<this._pending.length;n++)if(this._pending[n].key===t){this.queueOp("start",t,e);break}return this}i.sys.isSleeping()?i.sys.wake(e):i.sys.isPaused()?i.sys.resume(e):this.start(t,e)},start:function(t,e){if(!this.isBooted)return this._data[t]={autoStart:!0,data:e},this;var i=this.getScene(t);if(i){var n;if(i.sys.isActive()||i.sys.isPaused())i.sys.shutdown(),i.sys.start(e);else if(i.sys.start(e),i.sys.load&&(n=i.sys.load),n&&i.sys.settings.hasOwnProperty("pack")&&(n.reset(),n.addPack({payload:i.sys.settings.pack})))return i.sys.settings.status=r.LOADING,n.once(h.COMPLETE,this.payloadComplete,this),n.start(),this;this.bootScene(i)}return this},stop:function(t,e){var i=this.getScene(t);return i&&!i.sys.isTransitioning()&&i.sys.shutdown(e),this},switch:function(t,e){var i=this.getScene(t),n=this.getScene(e);return i&&n&&i!==n&&(this.sleep(t),this.isSleeping(e)?this.wake(e):this.start(e)),this},getAt:function(t){return this.scenes[t]},getIndex:function(t){var e=this.getScene(t);return this.scenes.indexOf(e)},bringToTop:function(t){if(this.isProcessing)this._queue.push({op:"bringToTop",keyA:t,keyB:null});else{var e=this.getIndex(t);if(-1!==e&&e<this.scenes.length){var i=this.getScene(t);this.scenes.splice(e,1),this.scenes.push(i)}}return this},sendToBack:function(t){if(this.isProcessing)this._queue.push({op:"sendToBack",keyA:t,keyB:null});else{var e=this.getIndex(t);if(-1!==e&&e>0){var i=this.getScene(t);this.scenes.splice(e,1),this.scenes.unshift(i)}}return this},moveDown:function(t){if(this.isProcessing)this._queue.push({op:"moveDown",keyA:t,keyB:null});else{var e=this.getIndex(t);if(e>0){var i=e-1,n=this.getScene(t),r=this.getAt(i);this.scenes[e]=r,this.scenes[i]=n}}return this},moveUp:function(t){if(this.isProcessing)this._queue.push({op:"moveUp",keyA:t,keyB:null});else{var e=this.getIndex(t);if(e<this.scenes.length-1){var i=e+1,n=this.getScene(t),r=this.getAt(i);this.scenes[e]=r,this.scenes[i]=n}}return this},moveAbove:function(t,e){if(t===e)return this;if(this.isProcessing)this._queue.push({op:"moveAbove",keyA:t,keyB:e});else{var i=this.getIndex(t),n=this.getIndex(e);if(-1!==i&&-1!==n){var r=this.getAt(n);this.scenes.splice(n,1),this.scenes.splice(i+1,0,r)}}return this},moveBelow:function(t,e){if(t===e)return this;if(this.isProcessing)this._queue.push({op:"moveBelow",keyA:t,keyB:e});else{var i=this.getIndex(t),n=this.getIndex(e);if(-1!==i&&-1!==n){var r=this.getAt(n);this.scenes.splice(n,1),0===i?this.scenes.unshift(r):this.scenes.splice(i,0,r)}}return this},queueOp:function(t,e,i){return this._queue.push({op:t,keyA:e,keyB:i}),this},swapPosition:function(t,e){if(t===e)return this;if(this.isProcessing)this._queue.push({op:"swapPosition",keyA:t,keyB:e});else{var i=this.getIndex(t),n=this.getIndex(e);if(i!==n&&-1!==i&&-1!==n){var r=this.getAt(i);this.scenes[i]=this.scenes[n],this.scenes[n]=r}}return this},dump:function(){for(var t=[],e=["pending","init","start","loading","creating","running","paused","sleeping","shutdown","destroyed"],i=0;i<this.scenes.length;i++){var n=this.scenes[i].sys,s=!n.settings.visible||n.settings.status!==r.RUNNING&&n.settings.status!==r.PAUSED?"[-] ":"[*] ";s+=n.settings.key+" ("+e[n.settings.status]+")",t.push(s)}console.log(t.join("\n"))},destroy:function(){for(var t=0;t<this.scenes.length;t++){this.scenes[t].sys.destroy()}this.update=u,this.scenes=[],this._pending=[],this._start=[],this._queue=[],this.game=null}});t.exports=d},18139:(t,e,i)=>{var n=i(90487),r=i(47379),s=i(88637),o=i(81769),a=i(50354),h=new r({initialize:function(t){this.scene=t,this.systems=t.sys,this.settings=t.sys.settings,this.key=t.sys.settings.key,this.manager=t.sys.game.scene,this.transitionProgress=0,this._elapsed=0,this._target=null,this._duration=0,this._onUpdate,this._onUpdateScope,this._willSleep=!1,this._willRemove=!1,t.sys.events.once(s.BOOT,this.boot,this),t.sys.events.on(s.START,this.pluginStart,this)},boot:function(){this.systems.events.once(s.DESTROY,this.destroy,this)},pluginStart:function(){this._target=null,this.systems.events.once(s.SHUTDOWN,this.shutdown,this)},start:function(t,e){return void 0===t&&(t=this.key),this.manager.queueOp("stop",this.key),this.manager.queueOp("start",t,e),this},restart:function(t){var e=this.key;return this.manager.queueOp("stop",e),this.manager.queueOp("start",e,t),this},transition:function(t){void 0===t&&(t={});var e=o(t,"target",!1),i=this.manager.getScene(e);if(!e||!this.checkValidTransition(i))return!1;var n=o(t,"duration",1e3);this._elapsed=0,this._target=i,this._duration=n,this._willSleep=o(t,"sleep",!1),this._willRemove=o(t,"remove",!1);var r=o(t,"onUpdate",null);r&&(this._onUpdate=r,this._onUpdateScope=o(t,"onUpdateScope",this.scene));var a=o(t,"allowInput",!1);this.settings.transitionAllowInput=a;var h=i.sys.settings;return h.isTransition=!0,h.transitionFrom=this.scene,h.transitionDuration=n,h.transitionAllowInput=a,o(t,"moveAbove",!1)?this.manager.moveAbove(this.key,e):o(t,"moveBelow",!1)&&this.manager.moveBelow(this.key,e),i.sys.isSleeping()?i.sys.wake(o(t,"data")):this.manager.start(e,o(t,"data")),this.systems.events.emit(s.TRANSITION_OUT,i,n),this.systems.events.on(s.UPDATE,this.step,this),!0},checkValidTransition:function(t){return!(!t||t.sys.isActive()||t.sys.isTransitioning()||t===this.scene||this.systems.isTransitioning())},step:function(t,e){this._elapsed+=e,this.transitionProgress=n(this._elapsed/this._duration,0,1),this._onUpdate&&this._onUpdate.call(this._onUpdateScope,this.transitionProgress),this._elapsed>=this._duration&&this.transitionComplete()},transitionComplete:function(){var t=this._target.sys,e=this._target.sys.settings;this.systems.events.off(s.UPDATE,this.step,this),t.events.emit(s.TRANSITION_COMPLETE,this.scene),e.isTransition=!1,e.transitionFrom=null,this._duration=0,this._target=null,this._onUpdate=null,this._onUpdateScope=null,this._willRemove?this.manager.remove(this.key):this._willSleep?this.systems.sleep():this.manager.stop(this.key)},add:function(t,e,i,n){return this.manager.add(t,e,i,n)},launch:function(t,e){return t&&t!==this.key&&this.manager.queueOp("start",t,e),this},run:function(t,e){return t&&t!==this.key&&this.manager.queueOp("run",t,e),this},pause:function(t,e){return void 0===t&&(t=this.key),this.manager.queueOp("pause",t,e),this},resume:function(t,e){return void 0===t&&(t=this.key),this.manager.queueOp("resume",t,e),this},sleep:function(t,e){return void 0===t&&(t=this.key),this.manager.queueOp("sleep",t,e),this},wake:function(t,e){return void 0===t&&(t=this.key),this.manager.queueOp("wake",t,e),this},switch:function(t){return t!==this.key&&this.manager.queueOp("switch",this.key,t),this},stop:function(t,e){return void 0===t&&(t=this.key),this.manager.queueOp("stop",t,e),this},setActive:function(t,e,i){void 0===e&&(e=this.key);var n=this.manager.getScene(e);return n&&n.sys.setActive(t,i),this},setVisible:function(t,e){void 0===e&&(e=this.key);var i=this.manager.getScene(e);return i&&i.sys.setVisible(t),this},isSleeping:function(t){return void 0===t&&(t=this.key),this.manager.isSleeping(t)},isActive:function(t){return void 0===t&&(t=this.key),this.manager.isActive(t)},isPaused:function(t){return void 0===t&&(t=this.key),this.manager.isPaused(t)},isVisible:function(t){return void 0===t&&(t=this.key),this.manager.isVisible(t)},swapPosition:function(t,e){return void 0===e&&(e=this.key),t!==e&&this.manager.swapPosition(t,e),this},moveAbove:function(t,e){return void 0===e&&(e=this.key),t!==e&&this.manager.moveAbove(t,e),this},moveBelow:function(t,e){return void 0===e&&(e=this.key),t!==e&&this.manager.moveBelow(t,e),this},remove:function(t){return void 0===t&&(t=this.key),this.manager.remove(t),this},moveUp:function(t){return void 0===t&&(t=this.key),this.manager.moveUp(t),this},moveDown:function(t){return void 0===t&&(t=this.key),this.manager.moveDown(t),this},bringToTop:function(t){return void 0===t&&(t=this.key),this.manager.bringToTop(t),this},sendToBack:function(t){return void 0===t&&(t=this.key),this.manager.sendToBack(t),this},get:function(t){return this.manager.getScene(t)},getIndex:function(t){return void 0===t&&(t=this.key),this.manager.getIndex(t)},shutdown:function(){var t=this.systems.events;t.off(s.SHUTDOWN,this.shutdown,this),t.off(s.POST_UPDATE,this.step,this),t.off(s.TRANSITION_OUT)},destroy:function(){this.shutdown(),this.scene.sys.events.off(s.START,this.start,this),this.scene=null,this.systems=null,this.settings=null,this.manager=null}});a.register("ScenePlugin",h,"scenePlugin"),t.exports=h},81378:(t,e,i)=>{var n=i(73913),r=i(86652),s=i(92974),o=i(57711),a={create:function(t){return"string"==typeof t?t={key:t}:void 0===t&&(t={}),{status:n.PENDING,key:r(t,"key",""),active:r(t,"active",!1),visible:r(t,"visible",!0),isBooted:!1,isTransition:!1,transitionFrom:null,transitionDuration:0,transitionAllowInput:!0,data:{},pack:r(t,"pack",!1),cameras:r(t,"cameras",null),map:r(t,"map",s(o,r(t,"mapAdd",{}))),physics:r(t,"physics",{}),loader:r(t,"loader",{}),plugins:r(t,"plugins",!1),input:r(t,"input",{})}}};t.exports=a},81466:(t,e,i)=>{var n=i(47379),r=i(73913),s=i(97713),o=i(88637),a=i(14863),h=i(55576),u=i(49035),l=i(81378),c=new n({initialize:function(t,e){this.scene=t,this.game,this.renderer,this.facebook,this.config=e,this.settings=l.create(e),this.canvas,this.context,this.anims,this.cache,this.plugins,this.registry,this.scale,this.sound,this.textures,this.add,this.cameras,this.displayList,this.events,this.make,this.scenePlugin,this.updateList,this.sceneUpdate=u},init:function(t){this.settings.status=r.INIT,this.sceneUpdate=u,this.game=t,this.renderer=t.renderer,this.canvas=t.canvas,this.context=t.context;var e=t.plugins;this.plugins=e,e.addToScene(this,s.Global,[s.CoreScene,h(this),a(this)]),this.events.emit(o.BOOT,this),this.settings.isBooted=!0},install:function(t){Array.isArray(t)||(t=[t]),this.plugins.installLocal(this,t)},step:function(t,e){this.events.emit(o.PRE_UPDATE,t,e),this.events.emit(o.UPDATE,t,e),this.sceneUpdate.call(this.scene,t,e),this.events.emit(o.POST_UPDATE,t,e)},render:function(t){var e=this.displayList;e.depthSort(),this.cameras.render(t,e),this.events.emit(o.RENDER,t)},queueDepthSort:function(){this.displayList.queueDepthSort()},depthSort:function(){this.displayList.depthSort()},pause:function(t){return this.settings.active&&(this.settings.status=r.PAUSED,this.settings.active=!1,this.events.emit(o.PAUSE,this,t)),this},resume:function(t){return this.settings.active||(this.settings.status=r.RUNNING,this.settings.active=!0,this.events.emit(o.RESUME,this,t)),this},sleep:function(t){return this.settings.status=r.SLEEPING,this.settings.active=!1,this.settings.visible=!1,this.events.emit(o.SLEEP,this,t),this},wake:function(t){var e=this.settings;return e.status=r.RUNNING,e.active=!0,e.visible=!0,this.events.emit(o.WAKE,this,t),e.isTransition&&this.events.emit(o.TRANSITION_WAKE,e.transitionFrom,e.transitionDuration),this},getData:function(){return this.settings.data},isSleeping:function(){return this.settings.status===r.SLEEPING},isActive:function(){return this.settings.status===r.RUNNING},isPaused:function(){return this.settings.status===r.PAUSED},isTransitioning:function(){return this.settings.isTransition||null!==this.scenePlugin._target},isTransitionOut:function(){return null!==this.scenePlugin._target&&this.scenePlugin._duration>0},isTransitionIn:function(){return this.settings.isTransition},isVisible:function(){return this.settings.visible},setVisible:function(t){return this.settings.visible=t,this},setActive:function(t,e){return t?this.resume(e):this.pause(e)},start:function(t){t&&(this.settings.data=t),this.settings.status=r.START,this.settings.active=!0,this.settings.visible=!0,this.events.emit(o.START,this),this.events.emit(o.READY,this,t)},shutdown:function(t){this.events.off(o.TRANSITION_INIT),this.events.off(o.TRANSITION_START),this.events.off(o.TRANSITION_COMPLETE),this.events.off(o.TRANSITION_OUT),this.settings.status=r.SHUTDOWN,this.settings.active=!1,this.settings.visible=!1,this.events.emit(o.SHUTDOWN,this,t)},destroy:function(){this.settings.status=r.DESTROYED,this.settings.active=!1,this.settings.visible=!1,this.events.emit(o.DESTROY,this),this.events.removeAllListeners();for(var t=["scene","game","anims","cache","plugins","registry","sound","textures","add","camera","displayList","events","make","scenePlugin","updateList"],e=0;e<t.length;e++)this[t[e]]=null}});t.exports=c},73913:t=>{t.exports={PENDING:0,INIT:1,START:2,LOADING:3,CREATING:4,RUNNING:5,PAUSED:6,SLEEPING:7,SHUTDOWN:8,DESTROYED:9}},29671:t=>{t.exports="boot"},41795:t=>{t.exports="create"},49942:t=>{t.exports="destroy"},31557:t=>{t.exports="pause"},41843:t=>{t.exports="postupdate"},35878:t=>{t.exports="preupdate"},1487:t=>{t.exports="ready"},24454:t=>{t.exports="render"},12252:t=>{t.exports="resume"},13098:t=>{t.exports="shutdown"},85084:t=>{t.exports="sleep"},10222:t=>{t.exports="start"},94499:t=>{t.exports="transitioncomplete"},55486:t=>{t.exports="transitioninit"},5067:t=>{t.exports="transitionout"},8653:t=>{t.exports="transitionstart"},23815:t=>{t.exports="transitionwake"},50078:t=>{t.exports="update"},29829:t=>{t.exports="wake"},88637:(t,e,i)=>{t.exports={BOOT:i(29671),CREATE:i(41795),DESTROY:i(49942),PAUSE:i(31557),POST_UPDATE:i(41843),PRE_UPDATE:i(35878),READY:i(1487),RENDER:i(24454),RESUME:i(12252),SHUTDOWN:i(13098),SLEEP:i(85084),START:i(10222),TRANSITION_COMPLETE:i(94499),TRANSITION_INIT:i(55486),TRANSITION_OUT:i(5067),TRANSITION_START:i(8653),TRANSITION_WAKE:i(23815),UPDATE:i(50078),WAKE:i(29829)}},6397:(t,e,i)=>{var n=i(73913),r=i(80933),s={Events:i(88637),SceneManager:i(73091),ScenePlugin:i(18139),Settings:i(81378),Systems:i(81466)};s=r(!1,s,n),t.exports=s},95754:(t,e,i)=>{var n=i(47379),r=i(17168),s=i(71700),o=i(80933),a=i(49035),h=new n({Extends:r,initialize:function(t,e,i){r.call(this),this.manager=t,this.key=e,this.isPlaying=!1,this.isPaused=!1,this.totalRate=1,this.duration=this.duration||0,this.totalDuration=this.totalDuration||0,this.config={mute:!1,volume:1,rate:1,detune:0,seek:0,loop:!1,delay:0},this.currentConfig=this.config,this.config=o(this.config,i),this.markers={},this.currentMarker=null,this.pendingRemove=!1},addMarker:function(t){return!(!t||!t.name||"string"!=typeof t.name)&&(this.markers[t.name]?(console.error("addMarker "+t.name+" already exists in Sound"),!1):(t=o(!0,{name:"",start:0,duration:this.totalDuration-(t.start||0),config:{mute:!1,volume:1,rate:1,detune:0,seek:0,loop:!1,delay:0}},t),this.markers[t.name]=t,!0))},updateMarker:function(t){return!(!t||!t.name||"string"!=typeof t.name)&&(this.markers[t.name]?(this.markers[t.name]=o(!0,this.markers[t.name],t),!0):(console.warn("Audio Marker: "+t.name+" missing in Sound: "+this.key),!1))},removeMarker:function(t){var e=this.markers[t];return e?(this.markers[t]=null,e):null},play:function(t,e){if(void 0===t&&(t=""),"object"==typeof t&&(e=t,t=""),"string"!=typeof t)return!1;if(t){if(!this.markers[t])return console.warn("Marker: "+t+" missing in Sound: "+this.key),!1;this.currentMarker=this.markers[t],this.currentConfig=this.currentMarker.config,this.duration=this.currentMarker.duration}else this.currentMarker=null,this.currentConfig=this.config,this.duration=this.totalDuration;return this.resetConfig(),this.currentConfig=o(this.currentConfig,e),this.isPlaying=!0,this.isPaused=!1,!0},pause:function(){return!(this.isPaused||!this.isPlaying)&&(this.isPlaying=!1,this.isPaused=!0,!0)},resume:function(){return!(!this.isPaused||this.isPlaying)&&(this.isPlaying=!0,this.isPaused=!1,!0)},stop:function(){return!(!this.isPaused&&!this.isPlaying)&&(this.isPlaying=!1,this.isPaused=!1,this.resetConfig(),!0)},applyConfig:function(){this.mute=this.currentConfig.mute,this.volume=this.currentConfig.volume,this.rate=this.currentConfig.rate,this.detune=this.currentConfig.detune,this.loop=this.currentConfig.loop},resetConfig:function(){this.currentConfig.seek=0,this.currentConfig.delay=0},update:a,calculateRate:function(){var t=this.currentConfig.detune+this.manager.detune,e=Math.pow(1.0005777895065548,t);this.totalRate=this.currentConfig.rate*this.manager.rate*e},destroy:function(){this.pendingRemove||(this.emit(s.DESTROY,this),this.pendingRemove=!0,this.manager=null,this.key="",this.removeAllListeners(),this.isPlaying=!1,this.isPaused=!1,this.config=null,this.currentConfig=null,this.markers=null,this.currentMarker=null)}});t.exports=h},40750:(t,e,i)=>{var n=i(47379),r=i(18438),s=i(17168),o=i(71700),a=i(80827),h=i(49035),u=i(50774),l=i(56606),c=new n({Extends:s,initialize:function(t){s.call(this),this.game=t,this.jsonCache=t.cache.json,this.sounds=[],this.mute=!1,this.volume=1,this.pauseOnBlur=!0,this._rate=1,this._detune=0,this.locked=this.locked||!1,this.unlocked=!1,t.events.on(a.BLUR,this.onGameBlur,this),t.events.on(a.FOCUS,this.onGameFocus,this),t.events.on(a.PRE_STEP,this.update,this),t.events.once(a.DESTROY,this.destroy,this)},add:h,addAudioSprite:function(t,e){void 0===e&&(e={});var i=this.add(t,e);for(var n in i.spritemap=this.jsonCache.get(t).spritemap,i.spritemap)if(i.spritemap.hasOwnProperty(n)){var s=r(e),o=i.spritemap[n];s.loop=!!o.hasOwnProperty("loop")&&o.loop,i.addMarker({name:n,start:o.start,duration:o.end-o.start,config:s})}return i},get:function(t){return l(this.sounds,"key",t)},getAll:function(t){return u(this.sounds,"key",t)},play:function(t,e){var i=this.add(t);return i.once(o.COMPLETE,i.destroy,i),e?e.name?(i.addMarker(e),i.play(e.name)):i.play(e):i.play()},playAudioSprite:function(t,e,i){var n=this.addAudioSprite(t);return n.once(o.COMPLETE,n.destroy,n),n.play(e,i)},remove:function(t){var e=this.sounds.indexOf(t);return-1!==e&&(t.destroy(),this.sounds.splice(e,1),!0)},removeAll:function(){this.sounds.forEach((function(t){t.destroy()})),this.sounds.length=0},removeByKey:function(t){for(var e=0,i=this.sounds.length-1;i>=0;i--){var n=this.sounds[i];n.key===t&&(n.destroy(),this.sounds.splice(i,1),e++)}return e},pauseAll:function(){this.forEachActiveSound((function(t){t.pause()})),this.emit(o.PAUSE_ALL,this)},resumeAll:function(){this.forEachActiveSound((function(t){t.resume()})),this.emit(o.RESUME_ALL,this)},stopAll:function(){this.forEachActiveSound((function(t){t.stop()})),this.emit(o.STOP_ALL,this)},stopByKey:function(t){var e=0;return this.getAll(t).forEach((function(t){t.stop()&&e++})),e},unlock:h,onBlur:h,onFocus:h,onGameBlur:function(){this.pauseOnBlur&&this.onBlur()},onGameFocus:function(){this.pauseOnBlur&&this.onFocus()},update:function(t,e){this.unlocked&&(this.unlocked=!1,this.locked=!1,this.emit(o.UNLOCKED,this));for(var i=this.sounds.length-1;i>=0;i--)this.sounds[i].pendingRemove&&this.sounds.splice(i,1);this.sounds.forEach((function(i){i.update(t,e)}))},destroy:function(){this.game.events.off(a.BLUR,this.onGameBlur,this),this.game.events.off(a.FOCUS,this.onGameFocus,this),this.game.events.off(a.PRE_STEP,this.update,this),this.removeAllListeners(),this.removeAll(),this.sounds.length=0,this.sounds=null,this.game=null},forEachActiveSound:function(t,e){var i=this;this.sounds.forEach((function(n,r){n&&!n.pendingRemove&&t.call(e||i,n,r,i.sounds)}))},setRate:function(t){return this.rate=t,this},rate:{get:function(){return this._rate},set:function(t){this._rate=t,this.forEachActiveSound((function(t){t.calculateRate()})),this.emit(o.GLOBAL_RATE,this,t)}},setDetune:function(t){return this.detune=t,this},detune:{get:function(){return this._detune},set:function(t){this._detune=t,this.forEachActiveSound((function(t){t.calculateRate()})),this.emit(o.GLOBAL_DETUNE,this,t)}}});t.exports=c},66466:(t,e,i)=>{var n=i(55243),r=i(99878),s=i(6181),o={create:function(t){var e=t.config.audio,i=t.device.audio;return e&&e.noAudio||!i.webAudio&&!i.audioData?new r(t):!i.webAudio||e&&e.disableWebAudio?new n(t):new s(t)}};t.exports=o},14604:t=>{t.exports="complete"},59490:t=>{t.exports="decodedall"},12848:t=>{t.exports="decoded"},89593:t=>{t.exports="destroy"},44742:t=>{t.exports="detune"},33333:t=>{t.exports="detune"},7085:t=>{t.exports="mute"},85449:t=>{t.exports="rate"},8604:t=>{t.exports="volume"},97417:t=>{t.exports="looped"},59740:t=>{t.exports="loop"},39853:t=>{t.exports="mute"},64863:t=>{t.exports="pauseall"},18358:t=>{t.exports="pause"},90943:t=>{t.exports="play"},74197:t=>{t.exports="rate"},79029:t=>{t.exports="resumeall"},93990:t=>{t.exports="resume"},93781:t=>{t.exports="seek"},59766:t=>{t.exports="stopall"},17166:t=>{t.exports="stop"},71530:t=>{t.exports="unlocked"},90305:t=>{t.exports="volume"},71700:(t,e,i)=>{t.exports={COMPLETE:i(14604),DECODED:i(12848),DECODED_ALL:i(59490),DESTROY:i(89593),DETUNE:i(44742),GLOBAL_DETUNE:i(33333),GLOBAL_MUTE:i(7085),GLOBAL_RATE:i(85449),GLOBAL_VOLUME:i(8604),LOOP:i(59740),LOOPED:i(97417),MUTE:i(39853),PAUSE_ALL:i(64863),PAUSE:i(18358),PLAY:i(90943),RATE:i(74197),RESUME_ALL:i(79029),RESUME:i(93990),SEEK:i(93781),STOP_ALL:i(59766),STOP:i(17166),UNLOCKED:i(71530),VOLUME:i(90305)}},67472:(t,e,i)=>{var n=i(95754),r=i(47379),s=i(71700),o=i(90487),a=new r({Extends:n,initialize:function(t,e,i){if(void 0===i&&(i={}),this.tags=t.game.cache.audio.get(e),!this.tags)throw new Error('There is no audio asset with key "'+e+'" in the audio cache');this.audio=null,this.startTime=0,this.previousTime=0,this.duration=this.tags[0].duration,this.totalDuration=this.tags[0].duration,n.call(this,t,e,i)},play:function(t,e){return!this.manager.isLocked(this,"play",[t,e])&&(!!n.prototype.play.call(this,t,e)&&(!!this.pickAndPlayAudioTag()&&(this.emit(s.PLAY,this),!0)))},pause:function(){return!this.manager.isLocked(this,"pause")&&(!(this.startTime>0)&&(!!n.prototype.pause.call(this)&&(this.currentConfig.seek=this.audio.currentTime-(this.currentMarker?this.currentMarker.start:0),this.stopAndReleaseAudioTag(),this.emit(s.PAUSE,this),!0)))},resume:function(){return!this.manager.isLocked(this,"resume")&&(!(this.startTime>0)&&(!!n.prototype.resume.call(this)&&(!!this.pickAndPlayAudioTag()&&(this.emit(s.RESUME,this),!0))))},stop:function(){return!this.manager.isLocked(this,"stop")&&(!!n.prototype.stop.call(this)&&(this.stopAndReleaseAudioTag(),this.emit(s.STOP,this),!0))},pickAndPlayAudioTag:function(){if(!this.pickAudioTag())return this.reset(),!1;var t=this.currentConfig.seek,e=this.currentConfig.delay,i=(this.currentMarker?this.currentMarker.start:0)+t;return this.previousTime=i,this.audio.currentTime=i,this.applyConfig(),0===e?(this.startTime=0,this.audio.paused&&this.playCatchPromise()):(this.startTime=window.performance.now()+1e3*e,this.audio.paused||this.audio.pause()),this.resetConfig(),!0},pickAudioTag:function(){if(this.audio)return!0;for(var t=0;t<this.tags.length;t++){var e=this.tags[t];if("false"===e.dataset.used)return e.dataset.used="true",this.audio=e,!0}if(!this.manager.override)return!1;var i=[];this.manager.forEachActiveSound((function(t){t.key===this.key&&t.audio&&i.push(t)}),this),i.sort((function(t,e){return t.loop===e.loop?e.seek/e.duration-t.seek/t.duration:t.loop?1:-1}));var n=i[0];return this.audio=n.audio,n.reset(),n.audio=null,n.startTime=0,n.previousTime=0,!0},playCatchPromise:function(){var t=this.audio.play();t&&t.catch((function(t){console.warn(t)}))},stopAndReleaseAudioTag:function(){this.audio.pause(),this.audio.dataset.used="false",this.audio=null,this.startTime=0,this.previousTime=0},reset:function(){n.prototype.stop.call(this)},onBlur:function(){this.isPlaying=!1,this.isPaused=!0,this.currentConfig.seek=this.audio.currentTime-(this.currentMarker?this.currentMarker.start:0),this.currentConfig.delay=Math.max(0,(this.startTime-window.performance.now())/1e3),this.stopAndReleaseAudioTag()},onFocus:function(){this.isPlaying=!0,this.isPaused=!1,this.pickAndPlayAudioTag()},update:function(t,e){if(this.isPlaying)if(this.startTime>0)this.startTime<t-this.manager.audioPlayDelay&&(this.audio.currentTime+=Math.max(0,t-this.startTime)/1e3,this.startTime=0,this.previousTime=this.audio.currentTime,this.playCatchPromise());else{var i=this.currentMarker?this.currentMarker.start:0,n=i+this.duration,r=this.audio.currentTime;if(this.currentConfig.loop)r>=n-this.manager.loopEndOffset?(this.audio.currentTime=i+Math.max(0,r-n),r=this.audio.currentTime):r<i&&(this.audio.currentTime+=i,r=this.audio.currentTime),r<this.previousTime&&this.emit(s.LOOPED,this);else if(r>=n)return this.reset(),this.stopAndReleaseAudioTag(),void this.emit(s.COMPLETE,this);this.previousTime=r}},destroy:function(){n.prototype.destroy.call(this),this.tags=null,this.audio&&this.stopAndReleaseAudioTag()},updateMute:function(){this.audio&&(this.audio.muted=this.currentConfig.mute||this.manager.mute)},updateVolume:function(){this.audio&&(this.audio.volume=o(this.currentConfig.volume*this.manager.volume,0,1))},calculateRate:function(){n.prototype.calculateRate.call(this),this.audio&&(this.audio.playbackRate=this.totalRate)},mute:{get:function(){return this.currentConfig.mute},set:function(t){this.currentConfig.mute=t,this.manager.isLocked(this,"mute",t)||(this.updateMute(),this.emit(s.MUTE,this,t))}},setMute:function(t){return this.mute=t,this},volume:{get:function(){return this.currentConfig.volume},set:function(t){this.currentConfig.volume=t,this.manager.isLocked(this,"volume",t)||(this.updateVolume(),this.emit(s.VOLUME,this,t))}},setVolume:function(t){return this.volume=t,this},rate:{get:function(){return this.currentConfig.rate},set:function(t){this.currentConfig.rate=t,this.manager.isLocked(this,s.RATE,t)||(this.calculateRate(),this.emit(s.RATE,this,t))}},setRate:function(t){return this.rate=t,this},detune:{get:function(){return this.currentConfig.detune},set:function(t){this.currentConfig.detune=t,this.manager.isLocked(this,s.DETUNE,t)||(this.calculateRate(),this.emit(s.DETUNE,this,t))}},setDetune:function(t){return this.detune=t,this},seek:{get:function(){return this.isPlaying?this.audio.currentTime-(this.currentMarker?this.currentMarker.start:0):this.isPaused?this.currentConfig.seek:0},set:function(t){this.manager.isLocked(this,"seek",t)||this.startTime>0||(this.isPlaying||this.isPaused)&&(t=Math.min(Math.max(0,t),this.duration),this.isPlaying?(this.previousTime=t,this.audio.currentTime=t):this.isPaused&&(this.currentConfig.seek=t),this.emit(s.SEEK,this,t))}},setSeek:function(t){return this.seek=t,this},loop:{get:function(){return this.currentConfig.loop},set:function(t){this.currentConfig.loop=t,this.manager.isLocked(this,"loop",t)||(this.audio&&(this.audio.loop=t),this.emit(s.LOOP,this,t))}},setLoop:function(t){return this.loop=t,this}});t.exports=a},55243:(t,e,i)=>{var n=i(40750),r=i(47379),s=i(71700),o=i(67472),a=new r({Extends:n,initialize:function(t){this.override=!0,this.audioPlayDelay=.1,this.loopEndOffset=.05,this.onBlurPausedSounds=[],this.locked="ontouchstart"in window,this.lockedActionsQueue=this.locked?[]:null,this._mute=!1,this._volume=1,n.call(this,t)},add:function(t,e){var i=new o(this,t,e);return this.sounds.push(i),i},unlock:function(){this.locked=!1;var t=this;if(this.game.cache.audio.entries.each((function(e,i){for(var n=0;n<i.length;n++)if("true"===i[n].dataset.locked)return t.locked=!0,!1;return!0})),this.locked){var e=!1,i=function(){e=!0},n=function(){if(e)e=!1;else{document.body.removeEventListener("touchmove",i),document.body.removeEventListener("touchend",n);var r=[];if(t.game.cache.audio.entries.each((function(t,e){for(var i=0;i<e.length;i++){var n=e[i];"true"===n.dataset.locked&&r.push(n)}return!0})),0!==r.length){var s=r[r.length-1];s.oncanplaythrough=function(){s.oncanplaythrough=null,r.forEach((function(t){t.dataset.locked="false"})),t.unlocked=!0},r.forEach((function(t){t.load()}))}}};this.once(s.UNLOCKED,(function(){for(this.forEachActiveSound((function(t){null===t.currentMarker&&0===t.duration&&(t.duration=t.tags[0].duration),t.totalDuration=t.tags[0].duration}));this.lockedActionsQueue.length;){var t=this.lockedActionsQueue.shift();t.sound[t.prop].apply?t.sound[t.prop].apply(t.sound,t.value||[]):t.sound[t.prop]=t.value}}),this),document.body.addEventListener("touchmove",i,!1),document.body.addEventListener("touchend",n,!1)}},onBlur:function(){this.forEachActiveSound((function(t){t.isPlaying&&(this.onBlurPausedSounds.push(t),t.onBlur())}))},onFocus:function(){this.onBlurPausedSounds.forEach((function(t){t.onFocus()})),this.onBlurPausedSounds.length=0},destroy:function(){n.prototype.destroy.call(this),this.onBlurPausedSounds.length=0,this.onBlurPausedSounds=null},isLocked:function(t,e,i){return"true"===t.tags[0].dataset.locked&&(this.lockedActionsQueue.push({sound:t,prop:e,value:i}),!0)},setMute:function(t){return this.mute=t,this},mute:{get:function(){return this._mute},set:function(t){this._mute=t,this.forEachActiveSound((function(t){t.updateMute()})),this.emit(s.GLOBAL_MUTE,this,t)}},setVolume:function(t){return this.volume=t,this},volume:{get:function(){return this._volume},set:function(t){this._volume=t,this.forEachActiveSound((function(t){t.updateVolume()})),this.emit(s.GLOBAL_VOLUME,this,t)}}});t.exports=a},73125:(t,e,i)=>{t.exports={SoundManagerCreator:i(66466),Events:i(71700),BaseSound:i(95754),BaseSoundManager:i(40750),WebAudioSound:i(35906),WebAudioSoundManager:i(6181),HTML5AudioSound:i(67472),HTML5AudioSoundManager:i(55243),NoAudioSound:i(65703),NoAudioSoundManager:i(99878)}},65703:(t,e,i)=>{var n=i(95754),r=i(47379),s=i(17168),o=i(80933),a=function(){return!1},h=function(){return this},u=new r({Extends:s,initialize:function(t,e,i){void 0===i&&(i={}),s.call(this),this.manager=t,this.key=e,this.isPlaying=!1,this.isPaused=!1,this.totalRate=1,this.duration=0,this.totalDuration=0,this.config=o({mute:!1,volume:1,rate:1,detune:0,seek:0,loop:!1,delay:0},i),this.currentConfig=this.config,this.mute=!1,this.volume=1,this.rate=1,this.detune=0,this.seek=0,this.loop=!1,this.markers={},this.currentMarker=null,this.pendingRemove=!1},addMarker:a,updateMarker:a,removeMarker:function(){return null},play:a,pause:a,resume:a,stop:a,destroy:function(){n.prototype.destroy.call(this)},setMute:h,setVolume:h,setRate:h,setDetune:h,setSeek:h,setLoop:h});t.exports=u},99878:(t,e,i)=>{var n=i(40750),r=i(47379),s=i(17168),o=i(65703),a=i(49035),h=new r({Extends:s,initialize:function(t){s.call(this),this.game=t,this.sounds=[],this.mute=!1,this.volume=1,this.rate=1,this.detune=0,this.pauseOnBlur=!0,this.locked=!1},add:function(t,e){var i=new o(this,t,e);return this.sounds.push(i),i},addAudioSprite:function(t,e){var i=this.add(t,e);return i.spritemap={},i},play:function(t,e){return!1},playAudioSprite:function(t,e,i){return!1},remove:function(t){return n.prototype.remove.call(this,t)},removeByKey:function(t){return n.prototype.removeByKey.call(this,t)},pauseAll:a,resumeAll:a,stopAll:a,update:a,setRate:a,setDetune:a,setMute:a,setVolume:a,forEachActiveSound:function(t,e){n.prototype.forEachActiveSound.call(this,t,e)},destroy:function(){n.prototype.destroy.call(this)}});t.exports=h},35906:(t,e,i)=>{var n=i(95754),r=i(47379),s=i(71700),o=new r({Extends:n,initialize:function(t,e,i){if(void 0===i&&(i={}),this.audioBuffer=t.game.cache.audio.get(e),!this.audioBuffer)throw new Error('There is no audio asset with key "'+e+'" in the audio cache');this.source=null,this.loopSource=null,this.muteNode=t.context.createGain(),this.volumeNode=t.context.createGain(),this.playTime=0,this.startTime=0,this.loopTime=0,this.rateUpdates=[],this.hasEnded=!1,this.hasLooped=!1,this.muteNode.connect(this.volumeNode),this.volumeNode.connect(t.destination),this.duration=this.audioBuffer.duration,this.totalDuration=this.audioBuffer.duration,n.call(this,t,e,i)},play:function(t,e){return!!n.prototype.play.call(this,t,e)&&(this.stopAndRemoveBufferSource(),this.createAndStartBufferSource(),this.emit(s.PLAY,this),!0)},pause:function(){return!(this.manager.context.currentTime<this.startTime)&&(!!n.prototype.pause.call(this)&&(this.currentConfig.seek=this.getCurrentTime(),this.stopAndRemoveBufferSource(),this.emit(s.PAUSE,this),!0))},resume:function(){return!(this.manager.context.currentTime<this.startTime)&&(!!n.prototype.resume.call(this)&&(this.createAndStartBufferSource(),this.emit(s.RESUME,this),!0))},stop:function(){return!!n.prototype.stop.call(this)&&(this.stopAndRemoveBufferSource(),this.emit(s.STOP,this),!0)},createAndStartBufferSource:function(){var t=this.currentConfig.seek,e=this.currentConfig.delay,i=this.manager.context.currentTime+e,n=(this.currentMarker?this.currentMarker.start:0)+t,r=this.duration-t;this.playTime=i-t,this.startTime=i,this.source=this.createBufferSource(),this.applyConfig(),this.source.start(Math.max(0,i),Math.max(0,n),Math.max(0,r)),this.resetConfig()},createAndStartLoopBufferSource:function(){var t=this.getLoopTime(),e=this.currentMarker?this.currentMarker.start:0,i=this.duration;this.loopTime=t,this.loopSource=this.createBufferSource(),this.loopSource.playbackRate.setValueAtTime(this.totalRate,0),this.loopSource.start(Math.max(0,t),Math.max(0,e),Math.max(0,i))},createBufferSource:function(){var t=this,e=this.manager.context.createBufferSource();return e.buffer=this.audioBuffer,e.connect(this.muteNode),e.onended=function(e){e.target===t.source&&(t.currentConfig.loop?t.hasLooped=!0:t.hasEnded=!0)},e},stopAndRemoveBufferSource:function(){this.source&&(this.source.stop(),this.source.disconnect(),this.source=null),this.playTime=0,this.startTime=0,this.stopAndRemoveLoopBufferSource()},stopAndRemoveLoopBufferSource:function(){this.loopSource&&(this.loopSource.stop(),this.loopSource.disconnect(),this.loopSource=null),this.loopTime=0},applyConfig:function(){this.rateUpdates.length=0,this.rateUpdates.push({time:0,rate:1}),n.prototype.applyConfig.call(this)},update:function(t,e){this.hasEnded?(this.hasEnded=!1,n.prototype.stop.call(this),this.stopAndRemoveBufferSource(),this.emit(s.COMPLETE,this)):this.hasLooped&&(this.hasLooped=!1,this.source=this.loopSource,this.loopSource=null,this.playTime=this.startTime=this.loopTime,this.rateUpdates.length=0,this.rateUpdates.push({time:0,rate:this.totalRate}),this.createAndStartLoopBufferSource(),this.emit(s.LOOPED,this))},destroy:function(){n.prototype.destroy.call(this),this.audioBuffer=null,this.stopAndRemoveBufferSource(),this.muteNode.disconnect(),this.muteNode=null,this.volumeNode.disconnect(),this.volumeNode=null,this.rateUpdates.length=0,this.rateUpdates=null},calculateRate:function(){n.prototype.calculateRate.call(this);var t=this.manager.context.currentTime;this.source&&"number"==typeof this.totalRate&&this.source.playbackRate.setValueAtTime(this.totalRate,t),this.isPlaying&&(this.rateUpdates.push({time:Math.max(this.startTime,t)-this.playTime,rate:this.totalRate}),this.loopSource&&(this.stopAndRemoveLoopBufferSource(),this.createAndStartLoopBufferSource()))},getCurrentTime:function(){for(var t=0,e=0;e<this.rateUpdates.length;e++){t+=((e<this.rateUpdates.length-1?this.rateUpdates[e+1].time:this.manager.context.currentTime-this.playTime)-this.rateUpdates[e].time)*this.rateUpdates[e].rate}return t},getLoopTime:function(){for(var t=0,e=0;e<this.rateUpdates.length-1;e++)t+=(this.rateUpdates[e+1].time-this.rateUpdates[e].time)*this.rateUpdates[e].rate;var i=this.rateUpdates[this.rateUpdates.length-1];return this.playTime+i.time+(this.duration-t)/i.rate},rate:{get:function(){return this.currentConfig.rate},set:function(t){this.currentConfig.rate=t,this.calculateRate(),this.emit(s.RATE,this,t)}},setRate:function(t){return this.rate=t,this},detune:{get:function(){return this.currentConfig.detune},set:function(t){this.currentConfig.detune=t,this.calculateRate(),this.emit(s.DETUNE,this,t)}},setDetune:function(t){return this.detune=t,this},mute:{get:function(){return 0===this.muteNode.gain.value},set:function(t){this.currentConfig.mute=t,this.muteNode.gain.setValueAtTime(t?0:1,0),this.emit(s.MUTE,this,t)}},setMute:function(t){return this.mute=t,this},volume:{get:function(){return this.volumeNode.gain.value},set:function(t){this.currentConfig.volume=t,this.volumeNode.gain.setValueAtTime(t,0),this.emit(s.VOLUME,this,t)}},setVolume:function(t){return this.volume=t,this},seek:{get:function(){return this.isPlaying?this.manager.context.currentTime<this.startTime?this.startTime-this.playTime:this.getCurrentTime():this.isPaused?this.currentConfig.seek:0},set:function(t){this.manager.context.currentTime<this.startTime||(this.isPlaying||this.isPaused)&&(t=Math.min(Math.max(0,t),this.duration),this.currentConfig.seek=t,this.isPlaying&&(this.stopAndRemoveBufferSource(),this.createAndStartBufferSource()),this.emit(s.SEEK,this,t))}},setSeek:function(t){return this.seek=t,this},loop:{get:function(){return this.currentConfig.loop},set:function(t){this.currentConfig.loop=t,this.isPlaying&&(this.stopAndRemoveLoopBufferSource(),t&&this.createAndStartLoopBufferSource()),this.emit(s.LOOP,this,t)}},setLoop:function(t){return this.loop=t,this}});t.exports=o},6181:(t,e,i)=>{var n=i(31021),r=i(40750),s=i(47379),o=i(71700),a=i(35906),h=new s({Extends:r,initialize:function(t){this.context=this.createAudioContext(t),this.masterMuteNode=this.context.createGain(),this.masterVolumeNode=this.context.createGain(),this.masterMuteNode.connect(this.masterVolumeNode),this.masterVolumeNode.connect(this.context.destination),this.destination=this.masterMuteNode,this.locked="suspended"===this.context.state&&("ontouchstart"in window||"onclick"in window),r.call(this,t),this.locked&&this.unlock()},createAudioContext:function(t){var e=t.config.audio;return e&&e.context?(e.context.resume(),e.context):new AudioContext},setAudioContext:function(t){return this.context&&this.context.close(),this.masterMuteNode&&this.masterMuteNode.disconnect(),this.masterVolumeNode&&this.masterVolumeNode.disconnect(),this.context=t,this.masterMuteNode=t.createGain(),this.masterVolumeNode=t.createGain(),this.masterMuteNode.connect(this.masterVolumeNode),this.masterVolumeNode.connect(t.destination),this.destination=this.masterMuteNode,this},add:function(t,e){var i=new a(this,t,e);return this.sounds.push(i),i},decodeAudio:function(t,e){var i;i=Array.isArray(t)?t:[{key:t,data:e}];for(var r=this.game.cache.audio,s=i.length,a=0;a<i.length;a++){var h=i[a],u=h.key,l=h.data;"string"==typeof l&&(l=n(l));var c=function(t,e){r.add(t,e),this.emit(o.DECODED,t),0===--s&&this.emit(o.DECODED_ALL)}.bind(this,u),d=function(t,e){console.error("Error decoding audio: "+t+" - ",e?e.message:""),0===--s&&this.emit(o.DECODED_ALL)}.bind(this,u);this.context.decodeAudioData(l,c,d)}},unlock:function(){var t=this,e=document.body,i=function i(){t.context&&t.context.resume().then((function(){e.removeEventListener("touchstart",i),e.removeEventListener("touchend",i),e.removeEventListener("click",i),e.removeEventListener("keydown",i),t.unlocked=!0}),(function(){e.removeEventListener("touchstart",i),e.removeEventListener("touchend",i),e.removeEventListener("click",i),e.removeEventListener("keydown",i)}))};e&&(e.addEventListener("touchstart",i,!1),e.addEventListener("touchend",i,!1),e.addEventListener("click",i,!1),e.addEventListener("keydown",i,!1))},onBlur:function(){this.locked||this.context.suspend()},onFocus:function(){this.locked||this.context.resume()},destroy:function(){if(this.destination=null,this.masterVolumeNode.disconnect(),this.masterVolumeNode=null,this.masterMuteNode.disconnect(),this.masterMuteNode=null,this.game.config.audio&&this.game.config.audio.context)this.context.suspend();else{var t=this;this.context.close().then((function(){t.context=null}))}r.prototype.destroy.call(this)},setMute:function(t){return this.mute=t,this},mute:{get:function(){return 0===this.masterMuteNode.gain.value},set:function(t){this.masterMuteNode.gain.setValueAtTime(t?0:1,0),this.emit(o.GLOBAL_MUTE,this,t)}},setVolume:function(t){return this.volume=t,this},volume:{get:function(){return this.masterVolumeNode.gain.value},set:function(t){this.masterVolumeNode.gain.setValueAtTime(t,0),this.emit(o.GLOBAL_VOLUME,this,t)}}});t.exports=h},29365:(t,e,i)=>{var n=i(37931),r=i(47379),s=i(49035),o=i(59199),a=new r({initialize:function(t){this.parent=t,this.list=[],this.position=0,this.addCallback=s,this.removeCallback=s,this._sortKey=""},add:function(t,e){return e?n.Add(this.list,t):n.Add(this.list,t,0,this.addCallback,this)},addAt:function(t,e,i){return i?n.AddAt(this.list,t,e):n.AddAt(this.list,t,e,0,this.addCallback,this)},getAt:function(t){return this.list[t]},getIndex:function(t){return this.list.indexOf(t)},sort:function(t,e){return t?(void 0===e&&(e=function(e,i){return e[t]-i[t]}),o.inplace(this.list,e),this):this},getByName:function(t){return n.GetFirst(this.list,"name",t)},getRandom:function(t,e){return n.GetRandom(this.list,t,e)},getFirst:function(t,e,i,r){return n.GetFirst(this.list,t,e,i,r)},getAll:function(t,e,i,r){return n.GetAll(this.list,t,e,i,r)},count:function(t,e){return n.CountAllMatching(this.list,t,e)},swap:function(t,e){n.Swap(this.list,t,e)},moveTo:function(t,e){return n.MoveTo(this.list,t,e)},remove:function(t,e){return e?n.Remove(this.list,t):n.Remove(this.list,t,this.removeCallback,this)},removeAt:function(t,e){return e?n.RemoveAt(this.list,t):n.RemoveAt(this.list,t,this.removeCallback,this)},removeBetween:function(t,e,i){return i?n.RemoveBetween(this.list,t,e):n.RemoveBetween(this.list,t,e,this.removeCallback,this)},removeAll:function(t){for(var e=this.list.length;e--;)this.remove(this.list[e],t);return this},bringToTop:function(t){return n.BringToTop(this.list,t)},sendToBack:function(t){return n.SendToBack(this.list,t)},moveUp:function(t){return n.MoveUp(this.list,t),t},moveDown:function(t){return n.MoveDown(this.list,t),t},reverse:function(){return this.list.reverse(),this},shuffle:function(){return n.Shuffle(this.list),this},replace:function(t,e){return n.Replace(this.list,t,e)},exists:function(t){return this.list.indexOf(t)>-1},setAll:function(t,e,i,r){return n.SetAll(this.list,t,e,i,r),this},each:function(t,e){for(var i=[null],n=2;n<arguments.length;n++)i.push(arguments[n]);for(n=0;n<this.list.length;n++)i[0]=this.list[n],t.apply(e,i)},shutdown:function(){this.removeAll(),this.list=[]},destroy:function(){this.removeAll(),this.parent=null,this.addCallback=null,this.removeCallback=null},length:{get:function(){return this.list.length}},first:{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}},last:{get:function(){return this.list.length>0?(this.position=this.list.length-1,this.list[this.position]):null}},next:{get:function(){return this.position<this.list.length?(this.position++,this.list[this.position]):null}},previous:{get:function(){return this.position>0?(this.position--,this.list[this.position]):null}}});t.exports=a},25094:(t,e,i)=>{var n=new(i(47379))({initialize:function(t){if(this.entries={},this.size=0,Array.isArray(t))for(var e=0;e<t.length;e++)this.set(t[e][0],t[e][1])},set:function(t,e){return this.has(t)||this.size++,this.entries[t]=e,this},get:function(t){if(this.has(t))return this.entries[t]},getArray:function(){var t=[],e=this.entries;for(var i in e)t.push(e[i]);return t},has:function(t){return this.entries.hasOwnProperty(t)},delete:function(t){return this.has(t)&&(delete this.entries[t],this.size--),this},clear:function(){return Object.keys(this.entries).forEach((function(t){delete this.entries[t]}),this),this.size=0,this},keys:function(){return Object.keys(this.entries)},values:function(){var t=[],e=this.entries;for(var i in e)t.push(e[i]);return t},dump:function(){var t=this.entries;for(var e in console.group("Map"),t)console.log(e,t[e]);console.groupEnd()},each:function(t){var e=this.entries;for(var i in e)if(!1===t(i,e[i]))break;return this},contains:function(t){var e=this.entries;for(var i in e)if(e[i]===t)return!0;return!1},merge:function(t,e){void 0===e&&(e=!1);var i=this.entries,n=t.entries;for(var r in n)i.hasOwnProperty(r)&&e?i[r]=n[r]:this.set(r,n[r]);return this}});t.exports=n},7674:(t,e,i)=>{var n=i(47379),r=i(17168),s=i(92081),o=new n({Extends:r,initialize:function(){r.call(this),this._pending=[],this._active=[],this._destroy=[],this._toProcess=0},add:function(t){return this._pending.push(t),this._toProcess++,t},remove:function(t){return this._destroy.push(t),this._toProcess++,t},removeAll:function(){for(var t=this._active,e=this._destroy,i=t.length;i--;)e.push(t[i]),this._toProcess++;return this},update:function(){if(0===this._toProcess)return this._active;var t,e,i=this._destroy,n=this._active;for(t=0;t<i.length;t++){e=i[t];var r=n.indexOf(e);-1!==r&&(n.splice(r,1),this.emit(s.REMOVE,e))}for(i.length=0,i=this._pending,t=0;t<i.length;t++)e=i[t],this._active.push(e),this.emit(s.ADD,e);return i.length=0,this._toProcess=0,this._active},getActive:function(){return this._active},length:{get:function(){return this._active.length}},destroy:function(){this._toProcess=0,this._pending=[],this._active=[],this._destroy=[]}});t.exports=o},41088:(t,e,i)=>{var n=i(33366);function r(t){if(!(this instanceof r))return new r(t,[".left",".top",".right",".bottom"]);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()}function s(t,e,i){if(!i)return e.indexOf(t);for(var n=0;n<e.length;n++)if(i(t,e[n]))return n;return-1}function o(t,e){a(t,0,t.children.length,e,t)}function a(t,e,i,n,r){r||(r=m(null)),r.minX=1/0,r.minY=1/0,r.maxX=-1/0,r.maxY=-1/0;for(var s,o=e;o<i;o++)s=t.children[o],h(r,t.leaf?n(s):s);return r}function h(t,e){return t.minX=Math.min(t.minX,e.minX),t.minY=Math.min(t.minY,e.minY),t.maxX=Math.max(t.maxX,e.maxX),t.maxY=Math.max(t.maxY,e.maxY),t}function u(t,e){return t.minX-e.minX}function l(t,e){return t.minY-e.minY}function c(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function d(t){return t.maxX-t.minX+(t.maxY-t.minY)}function p(t,e){return t.minX<=e.minX&&t.minY<=e.minY&&e.maxX<=t.maxX&&e.maxY<=t.maxY}function f(t,e){return e.minX<=t.maxX&&e.minY<=t.maxY&&e.maxX>=t.minX&&e.maxY>=t.minY}function m(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function v(t,e,i,r,s){for(var o,a=[e,i];a.length;)(i=a.pop())-(e=a.pop())<=r||(o=e+Math.ceil((i-e)/r/2)*r,n(t,o,e,i,s),a.push(e,o,o,i))}r.prototype={all:function(){return this._all(this.data,[])},search:function(t){var e=this.data,i=[],n=this.toBBox;if(!f(t,e))return i;for(var r,s,o,a,h=[];e;){for(r=0,s=e.children.length;r<s;r++)o=e.children[r],f(t,a=e.leaf?n(o):o)&&(e.leaf?i.push(o):p(t,a)?this._all(o,i):h.push(o));e=h.pop()}return i},collides:function(t){var e=this.data,i=this.toBBox;if(!f(t,e))return!1;for(var n,r,s,o,a=[];e;){for(n=0,r=e.children.length;n<r;n++)if(s=e.children[n],f(t,o=e.leaf?i(s):s)){if(e.leaf||p(t,o))return!0;a.push(s)}e=a.pop()}return!1},load:function(t){if(!t||!t.length)return this;if(t.length<this._minEntries){for(var e=0,i=t.length;e<i;e++)this.insert(t[e]);return this}var n=this._build(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this._splitRoot(this.data,n);else{if(this.data.height<n.height){var r=this.data;this.data=n,n=r}this._insert(n,this.data.height-n.height-1,!0)}else this.data=n;return this},insert:function(t){return t&&this._insert(t,this.data.height-1),this},clear:function(){return this.data=m([]),this},remove:function(t,e){if(!t)return this;for(var i,n,r,o,a=this.data,h=this.toBBox(t),u=[],l=[];a||u.length;){if(a||(a=u.pop(),n=u[u.length-1],i=l.pop(),o=!0),a.leaf&&-1!==(r=s(t,a.children,e)))return a.children.splice(r,1),u.push(a),this._condense(u),this;o||a.leaf||!p(a,h)?n?(i++,a=n.children[i],o=!1):a=null:(u.push(a),l.push(i),i=0,n=a,a=a.children[0])}return this},toBBox:function(t){return t},compareMinX:u,compareMinY:l,toJSON:function(){return this.data},fromJSON:function(t){return this.data=t,this},_all:function(t,e){for(var i=[];t;)t.leaf?e.push.apply(e,t.children):i.push.apply(i,t.children),t=i.pop();return e},_build:function(t,e,i,n){var r,s=i-e+1,a=this._maxEntries;if(s<=a)return o(r=m(t.slice(e,i+1)),this.toBBox),r;n||(n=Math.ceil(Math.log(s)/Math.log(a)),a=Math.ceil(s/Math.pow(a,n-1))),(r=m([])).leaf=!1,r.height=n;var h,u,l,c,d=Math.ceil(s/a),p=d*Math.ceil(Math.sqrt(a));for(v(t,e,i,p,this.compareMinX),h=e;h<=i;h+=p)for(v(t,h,l=Math.min(h+p-1,i),d,this.compareMinY),u=h;u<=l;u+=d)c=Math.min(u+d-1,l),r.children.push(this._build(t,u,c,n-1));return o(r,this.toBBox),r},_chooseSubtree:function(t,e,i,n){for(var r,s,o,a,h,u,l,d,p,f;n.push(e),!e.leaf&&n.length-1!==i;){for(l=d=1/0,r=0,s=e.children.length;r<s;r++)h=c(o=e.children[r]),p=t,f=o,(u=(Math.max(f.maxX,p.maxX)-Math.min(f.minX,p.minX))*(Math.max(f.maxY,p.maxY)-Math.min(f.minY,p.minY))-h)<d?(d=u,l=h<l?h:l,a=o):u===d&&h<l&&(l=h,a=o);e=a||e.children[0]}return e},_insert:function(t,e,i){var n=this.toBBox,r=i?t:n(t),s=[],o=this._chooseSubtree(r,this.data,e,s);for(o.children.push(t),h(o,r);e>=0&&s[e].children.length>this._maxEntries;)this._split(s,e),e--;this._adjustParentBBoxes(r,s,e)},_split:function(t,e){var i=t[e],n=i.children.length,r=this._minEntries;this._chooseSplitAxis(i,r,n);var s=this._chooseSplitIndex(i,r,n),a=m(i.children.splice(s,i.children.length-s));a.height=i.height,a.leaf=i.leaf,o(i,this.toBBox),o(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},_splitRoot:function(t,e){this.data=m([t,e]),this.data.height=t.height+1,this.data.leaf=!1,o(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,i){var n,r,s,o,h,u,l,d,p,f,m,v,g,y;for(u=l=1/0,n=e;n<=i-e;n++)r=a(t,0,n,this.toBBox),s=a(t,n,i,this.toBBox),p=r,f=s,m=void 0,v=void 0,g=void 0,y=void 0,m=Math.max(p.minX,f.minX),v=Math.max(p.minY,f.minY),g=Math.min(p.maxX,f.maxX),y=Math.min(p.maxY,f.maxY),o=Math.max(0,g-m)*Math.max(0,y-v),h=c(r)+c(s),o<u?(u=o,d=n,l=h<l?h:l):o===u&&h<l&&(l=h,d=n);return d},_chooseSplitAxis:function(t,e,i){var n=t.leaf?this.compareMinX:u,r=t.leaf?this.compareMinY:l;this._allDistMargin(t,e,i,n)<this._allDistMargin(t,e,i,r)&&t.children.sort(n)},_allDistMargin:function(t,e,i,n){t.children.sort(n);var r,s,o=this.toBBox,u=a(t,0,e,o),l=a(t,i-e,i,o),c=d(u)+d(l);for(r=e;r<i-e;r++)s=t.children[r],h(u,t.leaf?o(s):s),c+=d(u);for(r=i-e-1;r>=e;r--)s=t.children[r],h(l,t.leaf?o(s):s),c+=d(l);return c},_adjustParentBBoxes:function(t,e,i){for(var n=i;n>=0;n--)h(e[n],t)},_condense:function(t){for(var e,i=t.length-1;i>=0;i--)0===t[i].children.length?i>0?(e=t[i-1].children).splice(e.indexOf(t[i]),1):this.clear():o(t[i],this.toBBox)},compareMinX:function(t,e){return t.left-e.left},compareMinY:function(t,e){return t.top-e.top},toBBox:function(t){return{minX:t.left,minY:t.top,maxX:t.right,maxY:t.bottom}}},t.exports=r},69347:(t,e,i)=>{var n=new(i(47379))({initialize:function(t){if(this.entries=[],Array.isArray(t))for(var e=0;e<t.length;e++)this.set(t[e])},set:function(t){return-1===this.entries.indexOf(t)&&this.entries.push(t),this},get:function(t,e){for(var i=0;i<this.entries.length;i++){var n=this.entries[i];if(n[t]===e)return n}},getArray:function(){return this.entries.slice(0)},delete:function(t){var e=this.entries.indexOf(t);return e>-1&&this.entries.splice(e,1),this},dump:function(){console.group("Set");for(var t=0;t<this.entries.length;t++){var e=this.entries[t];console.log(e)}console.groupEnd()},each:function(t,e){var i,n=this.entries.slice(),r=n.length;if(e)for(i=0;i<r&&!1!==t.call(e,n[i],i);i++);else for(i=0;i<r&&!1!==t(n[i],i);i++);return this},iterate:function(t,e){var i,n=this.entries.length;if(e)for(i=0;i<n&&!1!==t.call(e,this.entries[i],i);i++);else for(i=0;i<n&&!1!==t(this.entries[i],i);i++);return this},iterateLocal:function(t){var e,i=[];for(e=1;e<arguments.length;e++)i.push(arguments[e]);var n=this.entries.length;for(e=0;e<n;e++){var r=this.entries[e];r[t].apply(r,i)}return this},clear:function(){return this.entries.length=0,this},contains:function(t){return this.entries.indexOf(t)>-1},union:function(t){var e=new n;return t.entries.forEach((function(t){e.set(t)})),this.entries.forEach((function(t){e.set(t)})),e},intersect:function(t){var e=new n;return this.entries.forEach((function(i){t.contains(i)&&e.set(i)})),e},difference:function(t){var e=new n;return this.entries.forEach((function(i){t.contains(i)||e.set(i)})),e},size:{get:function(){return this.entries.length},set:function(t){return t<this.entries.length?this.entries.length=t:this.entries.length}}});t.exports=n},4977:(t,e,i)=>{var n=i(90487),r=i(47379),s=i(88168),o=i(57148),a=new r({initialize:function(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=t),void 0===i&&(i=0),void 0===n&&(n=null),this._width=t,this._height=e,this._parent=n,this.aspectMode=i,this.aspectRatio=0===e?1:t/e,this.minWidth=0,this.minHeight=0,this.maxWidth=Number.MAX_VALUE,this.maxHeight=Number.MAX_VALUE,this.snapTo=new o},setAspectMode:function(t){return void 0===t&&(t=0),this.aspectMode=t,this.setSize(this._width,this._height)},setSnap:function(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this.snapTo.set(t,e),this.setSize(this._width,this._height)},setParent:function(t){return this._parent=t,this.setSize(this._width,this._height)},setMin:function(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this.minWidth=n(t,0,this.maxWidth),this.minHeight=n(e,0,this.maxHeight),this.setSize(this._width,this._height)},setMax:function(t,e){return void 0===t&&(t=Number.MAX_VALUE),void 0===e&&(e=t),this.maxWidth=n(t,this.minWidth,Number.MAX_VALUE),this.maxHeight=n(e,this.minHeight,Number.MAX_VALUE),this.setSize(this._width,this._height)},setSize:function(t,e){switch(void 0===t&&(t=0),void 0===e&&(e=t),this.aspectMode){case a.NONE:this._width=this.getNewWidth(s(t,this.snapTo.x)),this._height=this.getNewHeight(s(e,this.snapTo.y)),this.aspectRatio=0===this._height?1:this._width/this._height;break;case a.WIDTH_CONTROLS_HEIGHT:this._width=this.getNewWidth(s(t,this.snapTo.x)),this._height=this.getNewHeight(this._width*(1/this.aspectRatio),!1);break;case a.HEIGHT_CONTROLS_WIDTH:this._height=this.getNewHeight(s(e,this.snapTo.y)),this._width=this.getNewWidth(this._height*this.aspectRatio,!1);break;case a.FIT:this.constrain(t,e,!0);break;case a.ENVELOP:this.constrain(t,e,!1)}return this},setAspectRatio:function(t){return this.aspectRatio=t,this.setSize(this._width,this._height)},resize:function(t,e){return this._width=this.getNewWidth(s(t,this.snapTo.x)),this._height=this.getNewHeight(s(e,this.snapTo.y)),this.aspectRatio=0===this._height?1:this._width/this._height,this},getNewWidth:function(t,e){return void 0===e&&(e=!0),t=n(t,this.minWidth,this.maxWidth),e&&this._parent&&t>this._parent.width&&(t=Math.max(this.minWidth,this._parent.width)),t},getNewHeight:function(t,e){return void 0===e&&(e=!0),t=n(t,this.minHeight,this.maxHeight),e&&this._parent&&t>this._parent.height&&(t=Math.max(this.minHeight,this._parent.height)),t},constrain:function(t,e,i){void 0===t&&(t=0),void 0===e&&(e=t),void 0===i&&(i=!0),t=this.getNewWidth(t),e=this.getNewHeight(e);var n=this.snapTo,r=0===e?1:t/e;return i&&this.aspectRatio>r||!i&&this.aspectRatio<r?(e=(t=s(t,n.x))/this.aspectRatio,n.y>0&&(t=(e=s(e,n.y))*this.aspectRatio)):(i&&this.aspectRatio<r||!i&&this.aspectRatio>r)&&(t=(e=s(e,n.y))*this.aspectRatio,n.x>0&&(e=(t=s(t,n.x))*(1/this.aspectRatio))),this._width=t,this._height=e,this},fitTo:function(t,e){return this.constrain(t,e,!0)},envelop:function(t,e){return this.constrain(t,e,!1)},setWidth:function(t){return this.setSize(t,this._height)},setHeight:function(t){return this.setSize(this._width,t)},toString:function(){return"[{ Size (width="+this._width+" height="+this._height+" aspectRatio="+this.aspectRatio+" aspectMode="+this.aspectMode+") }]"},setCSS:function(t){t&&t.style&&(t.style.width=this._width+"px",t.style.height=this._height+"px")},copy:function(t){return t.setAspectMode(this.aspectMode),t.aspectRatio=this.aspectRatio,t.setSize(this.width,this.height)},destroy:function(){this._parent=null,this.snapTo=null},width:{get:function(){return this._width},set:function(t){this.setSize(t,this._height)}},height:{get:function(){return this._height},set:function(t){this.setSize(this._width,t)}}});a.NONE=0,a.WIDTH_CONTROLS_HEIGHT=1,a.HEIGHT_CONTROLS_WIDTH=2,a.FIT=3,a.ENVELOP=4,t.exports=a},60719:t=>{t.exports="add"},92798:t=>{t.exports="remove"},92081:(t,e,i)=>{t.exports={PROCESS_QUEUE_ADD:i(60719),PROCESS_QUEUE_REMOVE:i(92798)}},97548:(t,e,i)=>{t.exports={List:i(29365),Map:i(25094),ProcessQueue:i(7674),RTree:i(41088),Set:i(69347),Size:i(4977)}},17372:(t,e,i)=>{var n=i(47379),r=i(90487),s=i(81615),o=i(50460),a=i(2244),h=i(71201),u=new n({Extends:h,initialize:function(t,e,i,n,r){h.call(this,t,e,i,n,r),this.add("__BASE",0,0,0,n,r),this._source=this.frames.__BASE.source,this.canvas=this._source.image,this.context=this.canvas.getContext("2d"),this.width=n,this.height=r,this.imageData=this.context.getImageData(0,0,n,r),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.buffer,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data)},update:function(){return this.imageData=this.context.getImageData(0,0,this.width,this.height),this.data=this.imageData.data,this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data,this.manager.game.config.renderType===o.WEBGL&&this.refresh(),this},draw:function(t,e,i){return this.context.drawImage(i,t,e),this.update()},drawFrame:function(t,e,i,n){void 0===i&&(i=0),void 0===n&&(n=0);var r=this.manager.getFrame(t,e);if(r){var s=r.canvasData,o=r.cutWidth,a=r.cutHeight,h=r.source.resolution;return this.context.drawImage(r.source.image,s.x,s.y,o,a,i,n,o/h,a/h),this.update()}return this},setPixel:function(t,e,i,n,r,s){if(void 0===s&&(s=255),t=Math.abs(Math.floor(t)),e=Math.abs(Math.floor(e)),this.getIndex(t,e)>-1){var o=this.context.getImageData(t,e,1,1);o.data[0]=i,o.data[1]=n,o.data[2]=r,o.data[3]=s,this.context.putImageData(o,t,e)}return this},putData:function(t,e,i,n,r,s,o){return void 0===n&&(n=0),void 0===r&&(r=0),void 0===s&&(s=t.width),void 0===o&&(o=t.height),this.context.putImageData(t,e,i,n,r,s,o),this},getData:function(t,e,i,n){return t=r(Math.floor(t),0,this.width-1),e=r(Math.floor(e),0,this.height-1),i=r(i,1,this.width-t),n=r(n,1,this.height-e),this.context.getImageData(t,e,i,n)},getPixel:function(t,e,i){i||(i=new s);var n=this.getIndex(t,e);if(n>-1){var r=this.data,o=r[n+0],a=r[n+1],h=r[n+2],u=r[n+3];i.setTo(o,a,h,u)}return i},getPixels:function(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=this.width),void 0===n&&(n=i),t=Math.abs(Math.round(t)),e=Math.abs(Math.round(e));for(var o=r(t,0,this.width),a=r(t+i,0,this.width),h=r(e,0,this.height),u=r(e+n,0,this.height),l=new s,c=[],d=h;d<u;d++){for(var p=[],f=o;f<a;f++)l=this.getPixel(f,d,l),p.push({x:f,y:d,color:l.color,alpha:l.alphaGL});c.push(p)}return c},getIndex:function(t,e){return t=Math.abs(Math.round(t)),e=Math.abs(Math.round(e)),t<this.width&&e<this.height?4*(t+e*this.width):-1},refresh:function(){return this._source.update(),this},getCanvas:function(){return this.canvas},getContext:function(){return this.context},clear:function(t,e,i,n){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=this.width),void 0===n&&(n=this.height),this.context.clearRect(t,e,i,n),this.update()},setSize:function(t,e){return void 0===e&&(e=t),t===this.width&&e===this.height||(this.canvas.width=t,this.canvas.height=e,this._source.width=t,this._source.height=e,this._source.isPowerOf2=a(t,e),this.frames.__BASE.setSize(t,e,0,0),this.width=t,this.height=e,this.refresh()),this},destroy:function(){h.prototype.destroy.call(this),this._source=null,this.canvas=null,this.context=null,this.imageData=null,this.data=null,this.pixels=null,this.buffer=null}});t.exports=u},48165:(t,e,i)=>{var n=i(47379),r=i(90487),s=i(80933),o=new n({initialize:function(t,e,i,n,r,s,o){this.texture=t,this.name=e,this.source=t.source[i],this.sourceIndex=i,this.glTexture=this.source.glTexture,this.cutX,this.cutY,this.cutWidth,this.cutHeight,this.x=0,this.y=0,this.width,this.height,this.halfWidth,this.halfHeight,this.centerX,this.centerY,this.pivotX=0,this.pivotY=0,this.customPivot=!1,this.rotated=!1,this.autoRound=-1,this.customData={},this.u0=0,this.v0=0,this.u1=0,this.v1=0,this.data={cut:{x:0,y:0,w:0,h:0,r:0,b:0},trim:!1,sourceSize:{w:0,h:0},spriteSourceSize:{x:0,y:0,w:0,h:0,r:0,b:0},radius:0,drawImage:{x:0,y:0,width:0,height:0}},this.setSize(s,o,n,r)},setSize:function(t,e,i,n){void 0===i&&(i=0),void 0===n&&(n=0),this.cutX=i,this.cutY=n,this.cutWidth=t,this.cutHeight=e,this.width=t,this.height=e,this.halfWidth=Math.floor(.5*t),this.halfHeight=Math.floor(.5*e),this.centerX=Math.floor(t/2),this.centerY=Math.floor(e/2);var r=this.data,s=r.cut;s.x=i,s.y=n,s.w=t,s.h=e,s.r=i+t,s.b=n+e,r.sourceSize.w=t,r.sourceSize.h=e,r.spriteSourceSize.w=t,r.spriteSourceSize.h=e,r.radius=.5*Math.sqrt(t*t+e*e);var o=r.drawImage;return o.x=i,o.y=n,o.width=t,o.height=e,this.updateUVs()},setTrim:function(t,e,i,n,r,s){var o=this.data,a=o.spriteSourceSize;return o.trim=!0,o.sourceSize.w=t,o.sourceSize.h=e,a.x=i,a.y=n,a.w=r,a.h=s,a.r=i+r,a.b=n+s,this.x=i,this.y=n,this.width=r,this.height=s,this.halfWidth=.5*r,this.halfHeight=.5*s,this.centerX=Math.floor(r/2),this.centerY=Math.floor(s/2),this.updateUVs()},setCropUVs:function(t,e,i,n,s,o,a){var h=this.cutX,u=this.cutY,l=this.cutWidth,c=this.cutHeight,d=this.realWidth,p=this.realHeight,f=h+(e=r(e,0,d)),m=u+(i=r(i,0,p)),v=n=r(n,0,d-e),g=s=r(s,0,p-i),y=this.data;if(y.trim){var _=y.spriteSourceSize,x=e+(n=r(n,0,l-e)),b=i+(s=r(s,0,c-i));if(!(_.r<e||_.b<i||_.x>x||_.y>b)){var w=Math.max(_.x,e),T=Math.max(_.y,i),M=Math.min(_.r,x)-w,S=Math.min(_.b,b)-T;v=M,g=S,f=o?h+(l-(w-_.x)-M):h+(w-_.x),m=a?u+(c-(T-_.y)-S):u+(T-_.y),e=w,i=T,n=M,s=S}else f=0,m=0,v=0,g=0}else o&&(f=h+(l-e-n)),a&&(m=u+(c-i-s));var E=this.source.width,L=this.source.height;return t.u0=Math.max(0,f/E),t.v0=Math.max(0,m/L),t.u1=Math.min(1,(f+v)/E),t.v1=Math.min(1,(m+g)/L),t.x=e,t.y=i,t.cx=f,t.cy=m,t.cw=v,t.ch=g,t.width=n,t.height=s,t.flipX=o,t.flipY=a,t},updateCropUVs:function(t,e,i){return this.setCropUVs(t,t.x,t.y,t.width,t.height,e,i)},updateUVs:function(){var t=this.cutX,e=this.cutY,i=this.cutWidth,n=this.cutHeight,r=this.data.drawImage;r.width=i,r.height=n;var s=this.source.width,o=this.source.height;return this.u0=t/s,this.v0=e/o,this.u1=(t+i)/s,this.v1=(e+n)/o,this},updateUVsInverted:function(){var t=this.source.width,e=this.source.height;return this.u0=(this.cutX+this.cutHeight)/t,this.v0=this.cutY/e,this.u1=this.cutX/t,this.v1=(this.cutY+this.cutWidth)/e,this},clone:function(){var t=new o(this.texture,this.name,this.sourceIndex);return t.cutX=this.cutX,t.cutY=this.cutY,t.cutWidth=this.cutWidth,t.cutHeight=this.cutHeight,t.x=this.x,t.y=this.y,t.width=this.width,t.height=this.height,t.halfWidth=this.halfWidth,t.halfHeight=this.halfHeight,t.centerX=this.centerX,t.centerY=this.centerY,t.rotated=this.rotated,t.data=s(!0,t.data,this.data),t.updateUVs(),t},destroy:function(){this.source=null,this.texture=null,this.glTexture=null,this.customData=null,this.data=null},realWidth:{get:function(){return this.data.sourceSize.w}},realHeight:{get:function(){return this.data.sourceSize.h}},radius:{get:function(){return this.data.radius}},trimmed:{get:function(){return this.data.trim}},canvasData:{get:function(){return this.data.drawImage}}});t.exports=o},71201:(t,e,i)=>{var n=i(47379),r=i(48165),s=i(93369),o="Texture.frame missing: ",a=new n({initialize:function(t,e,i,n,r){Array.isArray(i)||(i=[i]),this.manager=t,this.key=e,this.source=[],this.dataSource=[],this.frames={},this.customData={},this.firstFrame="__BASE",this.frameTotal=0;for(var o=0;o<i.length;o++)this.source.push(new s(this,i[o],n,r))},add:function(t,e,i,n,s,o){if(this.has(t))return null;var a=new r(this,t,e,i,n,s,o);return this.frames[t]=a,"__BASE"===this.firstFrame&&(this.firstFrame=t),this.frameTotal++,a},remove:function(t){return!!this.has(t)&&(this.get(t).destroy(),delete this.frames[t],!0)},has:function(t){return this.frames[t]},get:function(t){t||(t=this.firstFrame);var e=this.frames[t];return e||(console.warn(o+t),e=this.frames[this.firstFrame]),e},getTextureSourceIndex:function(t){for(var e=0;e<this.source.length;e++)if(this.source[e]===t)return e;return-1},getFramesFromTextureSource:function(t,e){void 0===e&&(e=!1);var i=[];for(var n in this.frames)if("__BASE"!==n||e){var r=this.frames[n];r.sourceIndex===t&&i.push(r)}return i},getFrameNames:function(t){void 0===t&&(t=!1);var e=Object.keys(this.frames);if(!t){var i=e.indexOf("__BASE");-1!==i&&e.splice(i,1)}return e},getSourceImage:function(t){null!=t&&1!==this.frameTotal||(t="__BASE");var e=this.frames[t];return e?e.source.image:(console.warn(o+t),this.frames.__BASE.source.image)},getDataSourceImage:function(t){null!=t&&1!==this.frameTotal||(t="__BASE");var e,i=this.frames[t];return i?e=i.sourceIndex:(console.warn(o+t),e=this.frames.__BASE.sourceIndex),this.dataSource[e].image},setDataSource:function(t){Array.isArray(t)||(t=[t]);for(var e=0;e<t.length;e++){var i=this.source[e];this.dataSource.push(new s(this,t[e],i.width,i.height))}},setFilter:function(t){var e;for(e=0;e<this.source.length;e++)this.source[e].setFilter(t);for(e=0;e<this.dataSource.length;e++)this.dataSource[e].setFilter(t)},destroy:function(){var t;for(t=0;t<this.source.length;t++)this.source[t].destroy();for(t=0;t<this.dataSource.length;t++)this.dataSource[t].destroy();for(var e in this.frames){this.frames[e].destroy()}this.source=[],this.dataSource=[],this.frames={},this.manager.removeKey(this.key),this.manager=null}});t.exports=a},4907:(t,e,i)=>{var n=i(89429),r=i(17372),s=i(47379),o=i(81615),a=i(50460),h=i(17168),u=i(2931),l=i(80827),c=i(37644),d=i(86652),p=i(63083),f=i(71201),m=new s({Extends:h,initialize:function(t){h.call(this),this.game=t,this.name="TextureManager",this.list={},this._tempCanvas=n.create2D(this,1,1),this._tempContext=this._tempCanvas.getContext("2d"),this._pending=0,t.events.once(l.BOOT,this.boot,this)},boot:function(){this._pending=2,this.on(u.LOAD,this.updatePending,this),this.on(u.ERROR,this.updatePending,this),this.addBase64("__DEFAULT",this.game.config.defaultImage),this.addBase64("__MISSING",this.game.config.missingImage),this.game.events.once(l.DESTROY,this.destroy,this)},updatePending:function(){this._pending--,0===this._pending&&(this.off(u.LOAD),this.off(u.ERROR),this.emit(u.READY))},checkKey:function(t){return!this.exists(t)||(console.error("Texture key already in use: "+t),!1)},remove:function(t){if("string"==typeof t){if(!this.exists(t))return console.warn("No texture found matching key: "+t),this;t=this.get(t)}return this.list.hasOwnProperty(t.key)&&(t.destroy(),this.emit(u.REMOVE,t.key)),this},removeKey:function(t){return this.list.hasOwnProperty(t)&&delete this.list[t],this},addBase64:function(t,e){if(this.checkKey(t)){var i=this,n=new Image;n.onerror=function(){i.emit(u.ERROR,t)},n.onload=function(){var e=i.create(t,n);p.Image(e,0),i.emit(u.ADD,t,e),i.emit(u.LOAD,t,e)},n.src=e}return this},getBase64:function(t,e,i,r){void 0===i&&(i="image/png"),void 0===r&&(r=.92);var s="",o=this.getFrame(t,e);if(o&&(o.source.isRenderTexture||o.source.isGLTexture))console.warn("Cannot getBase64 from WebGL Texture");else if(o){var a=o.canvasData,h=n.create2D(this,a.width,a.height);h.getContext("2d").drawImage(o.source.image,a.x,a.y,a.width,a.height,0,0,a.width,a.height),s=h.toDataURL(i,r),n.remove(h)}return s},addImage:function(t,e,i){var n=null;return this.checkKey(t)&&(n=this.create(t,e),p.Image(n,0),i&&n.setDataSource(i),this.emit(u.ADD,t,n)),n},addGLTexture:function(t,e,i,n){var r=null;return this.checkKey(t)&&((r=this.create(t,e,i,n)).add("__BASE",0,0,0,i,n),this.emit(u.ADD,t,r)),r},addRenderTexture:function(t,e){var i=null;return this.checkKey(t)&&((i=this.create(t,e)).add("__BASE",0,0,0,e.width,e.height),this.emit(u.ADD,t,i)),i},generate:function(t,e){if(this.checkKey(t)){var i=n.create(this,1,1);return e.canvas=i,c(e),this.addCanvas(t,i)}return null},createCanvas:function(t,e,i){if(void 0===e&&(e=256),void 0===i&&(i=256),this.checkKey(t)){var r=n.create(this,e,i,a.CANVAS,!0);return this.addCanvas(t,r)}return null},addCanvas:function(t,e,i){void 0===i&&(i=!1);var n=null;return i?n=new r(this,t,e,e.width,e.height):this.checkKey(t)&&(n=new r(this,t,e,e.width,e.height),this.list[t]=n,this.emit(u.ADD,t,n)),n},addAtlas:function(t,e,i,n){return Array.isArray(i.textures)||Array.isArray(i.frames)?this.addAtlasJSONArray(t,e,i,n):this.addAtlasJSONHash(t,e,i,n)},addAtlasJSONArray:function(t,e,i,n){var r=null;if(this.checkKey(t)){if(r=this.create(t,e),Array.isArray(i))for(var s=1===i.length,o=0;o<r.source.length;o++){var a=s?i[0]:i[o];p.JSONArray(r,o,a)}else p.JSONArray(r,0,i);n&&r.setDataSource(n),this.emit(u.ADD,t,r)}return r},addAtlasJSONHash:function(t,e,i,n){var r=null;if(this.checkKey(t)){if(r=this.create(t,e),Array.isArray(i))for(var s=0;s<i.length;s++)p.JSONHash(r,s,i[s]);else p.JSONHash(r,0,i);n&&r.setDataSource(n),this.emit(u.ADD,t,r)}return r},addAtlasXML:function(t,e,i,n){var r=null;return this.checkKey(t)&&(r=this.create(t,e),p.AtlasXML(r,0,i),n&&r.setDataSource(n),this.emit(u.ADD,t,r)),r},addUnityAtlas:function(t,e,i,n){var r=null;return this.checkKey(t)&&(r=this.create(t,e),p.UnityYAML(r,0,i),n&&r.setDataSource(n),this.emit(u.ADD,t,r)),r},addSpriteSheet:function(t,e,i){var n=null;if(this.checkKey(t)){var r=(n=this.create(t,e)).source[0].width,s=n.source[0].height;p.SpriteSheet(n,0,0,0,r,s,i),this.emit(u.ADD,t,n)}return n},addSpriteSheetFromAtlas:function(t,e){if(!this.checkKey(t))return null;var i=d(e,"atlas",null),n=d(e,"frame",null);if(i&&n){var r=this.get(i).get(n);if(r){var s=this.create(t,r.source.image);return r.trimmed?p.SpriteSheetFromAtlas(s,r,e):p.SpriteSheet(s,0,r.cutX,r.cutY,r.cutWidth,r.cutHeight,e),this.emit(u.ADD,t,s),s}}},create:function(t,e,i,n){var r=null;return this.checkKey(t)&&(r=new f(this,t,e,i,n),this.list[t]=r),r},exists:function(t){return this.list.hasOwnProperty(t)},get:function(t){return void 0===t&&(t="__DEFAULT"),this.list[t]?this.list[t]:t instanceof f?t:this.list.__MISSING},cloneFrame:function(t,e){if(this.list[t])return this.list[t].get(e).clone()},getFrame:function(t,e){if(this.list[t])return this.list[t].get(e)},getTextureKeys:function(){var t=[];for(var e in this.list)"__DEFAULT"!==e&&"__MISSING"!==e&&t.push(e);return t},getPixel:function(t,e,i,n){var r=this.getFrame(i,n);if(r){t-=r.x,e-=r.y;var s=r.data.cut;if(t+=s.x,e+=s.y,t>=s.x&&t<s.r&&e>=s.y&&e<s.b){var a=this._tempContext;a.clearRect(0,0,1,1),a.drawImage(r.source.image,t,e,1,1,0,0,1,1);var h=a.getImageData(0,0,1,1);return new o(h.data[0],h.data[1],h.data[2],h.data[3])}}return null},getPixelAlpha:function(t,e,i,n){var r=this.getFrame(i,n);if(r){t-=r.x,e-=r.y;var s=r.data.cut;if(t+=s.x,e+=s.y,t>=s.x&&t<s.r&&e>=s.y&&e<s.b){var o=this._tempContext;return o.clearRect(0,0,1,1),o.drawImage(r.source.image,t,e,1,1,0,0,1,1),o.getImageData(0,0,1,1).data[3]}}return null},setTexture:function(t,e,i){return this.list[e]&&(t.texture=this.list[e],t.frame=t.texture.get(i)),t},renameTexture:function(t,e){var i=this.get(t);return!(!i||t===e)&&(i.key=e,this.list[e]=i,delete this.list[t],!0)},each:function(t,e){for(var i=[null],n=1;n<arguments.length;n++)i.push(arguments[n]);for(var r in this.list)i[0]=this.list[r],t.apply(e,i)},destroy:function(){for(var t in this.list)this.list[t].destroy();this.list={},this.game=null,n.remove(this._tempCanvas)}});t.exports=m},93369:(t,e,i)=>{var n=i(89429),r=i(47379),s=i(2244),o=i(28425),a=new r({initialize:function(t,e,i,n,r){void 0===r&&(r=!1);var a=t.manager.game;this.renderer=a.renderer,this.texture=t,this.source=e,this.image=e,this.compressionAlgorithm=null,this.resolution=1,this.width=i||e.naturalWidth||e.videoWidth||e.width||0,this.height=n||e.naturalHeight||e.videoHeight||e.height||0,this.scaleMode=o.DEFAULT,this.isCanvas=e instanceof HTMLCanvasElement,this.isVideo=window.hasOwnProperty("HTMLVideoElement")&&e instanceof HTMLVideoElement,this.isRenderTexture="RenderTexture"===e.type,this.isGLTexture=window.hasOwnProperty("WebGLTexture")&&e instanceof WebGLTexture,this.isPowerOf2=s(this.width,this.height),this.glTexture=null,this.flipY=r,this.init(a)},init:function(t){this.renderer&&(this.renderer.gl?this.isCanvas?this.glTexture=this.renderer.createCanvasTexture(this.image,!1,this.flipY):this.isVideo?this.glTexture=this.renderer.createVideoTexture(this.image,!1,this.flipY):this.isRenderTexture?(this.image=this.source.canvas,this.glTexture=this.renderer.createTextureFromSource(null,this.width,this.height,this.scaleMode)):this.isGLTexture?this.glTexture=this.source:this.glTexture=this.renderer.createTextureFromSource(this.image,this.width,this.height,this.scaleMode):this.isRenderTexture&&(this.image=this.source.canvas)),t.config.antialias||this.setFilter(1)},setFilter:function(t){this.renderer.gl&&this.renderer.setTextureFilter(this.glTexture,t),this.scaleMode=t},setFlipY:function(t){return void 0===t&&(t=!0),this.flipY=t,this},update:function(){var t=this.renderer.gl;t&&this.isCanvas?this.glTexture=this.renderer.updateCanvasTexture(this.image,this.glTexture,this.flipY):t&&this.isVideo&&(this.glTexture=this.renderer.updateVideoTexture(this.image,this.glTexture,this.flipY))},destroy:function(){this.glTexture&&this.renderer.deleteTexture(this.glTexture),this.isCanvas&&n.remove(this.image),this.renderer=null,this.texture=null,this.source=null,this.image=null,this.glTexture=null}});t.exports=a},78007:t=>{t.exports={LINEAR:0,NEAREST:1}},26798:t=>{t.exports="addtexture"},47958:t=>{t.exports="onerror"},22589:t=>{t.exports="onload"},30177:t=>{t.exports="ready"},38442:t=>{t.exports="removetexture"},2931:(t,e,i)=>{t.exports={ADD:i(26798),ERROR:i(47958),LOAD:i(22589),READY:i(30177),REMOVE:i(38442)}},1274:(t,e,i)=>{var n=i(80933),r=i(78007),s={CanvasTexture:i(17372),Events:i(2931),FilterMode:r,Frame:i(48165),Parsers:i(63083),Texture:i(71201),TextureManager:i(4907),TextureSource:i(93369)};s=n(!1,s,r),t.exports=s},50321:t=>{t.exports=function(t,e,i){if(i.getElementsByTagName("TextureAtlas")){var n=t.source[e];t.add("__BASE",e,0,0,n.width,n.height);for(var r,s=i.getElementsByTagName("SubTexture"),o=0;o<s.length;o++){var a=s[o].attributes,h=a.name.value,u=parseInt(a.x.value,10),l=parseInt(a.y.value,10),c=parseInt(a.width.value,10),d=parseInt(a.height.value,10);if(r=t.add(h,e,u,l,c,d),a.frameX){var p=Math.abs(parseInt(a.frameX.value,10)),f=Math.abs(parseInt(a.frameY.value,10)),m=parseInt(a.frameWidth.value,10),v=parseInt(a.frameHeight.value,10);r.setTrim(c,d,p,f,m,v)}}return t}console.warn("Invalid Texture Atlas XML given")}},45431:t=>{t.exports=function(t,e){var i=t.source[e];return t.add("__BASE",e,0,0,i.width,i.height),t}},52692:t=>{t.exports=function(t,e){var i=t.source[e];return t.add("__BASE",e,0,0,i.width,i.height),t}},56171:(t,e,i)=>{var n=i(18438);t.exports=function(t,e,i){if(i.frames||i.textures){var r=t.source[e];t.add("__BASE",e,0,0,r.width,r.height);for(var s,o=Array.isArray(i.textures)?i.textures[e].frames:i.frames,a=0;a<o.length;a++){var h=o[a];s=t.add(h.filename,e,h.frame.x,h.frame.y,h.frame.w,h.frame.h),h.trimmed&&s.setTrim(h.sourceSize.w,h.sourceSize.h,h.spriteSourceSize.x,h.spriteSourceSize.y,h.spriteSourceSize.w,h.spriteSourceSize.h),h.rotated&&(s.rotated=!0,s.updateUVsInverted());var u=h.anchor||h.pivot;u&&(s.customPivot=!0,s.pivotX=u.x,s.pivotY=u.y),s.customData=n(h)}for(var l in i)"frames"!==l&&(Array.isArray(i[l])?t.customData[l]=i[l].slice(0):t.customData[l]=i[l]);return t}console.warn("Invalid Texture Atlas JSON Array")}},7396:(t,e,i)=>{var n=i(18438);t.exports=function(t,e,i){if(i.frames){var r=t.source[e];t.add("__BASE",e,0,0,r.width,r.height);var s,o=i.frames;for(var a in o){var h=o[a];s=t.add(a,e,h.frame.x,h.frame.y,h.frame.w,h.frame.h),h.trimmed&&s.setTrim(h.sourceSize.w,h.sourceSize.h,h.spriteSourceSize.x,h.spriteSourceSize.y,h.spriteSourceSize.w,h.spriteSourceSize.h),h.rotated&&(s.rotated=!0,s.updateUVsInverted());var u=h.anchor||h.pivot;u&&(s.customPivot=!0,s.pivotX=u.x,s.pivotY=u.y),s.customData=n(h)}for(var l in i)"frames"!==l&&(Array.isArray(i[l])?t.customData[l]=i[l].slice(0):t.customData[l]=i[l]);return t}console.warn("Invalid Texture Atlas JSON Hash given, missing 'frames' Object")}},77357:(t,e,i)=>{var n=i(81769);t.exports=function(t,e,i,r,s,o,a){var h=n(a,"frameWidth",null),u=n(a,"frameHeight",h);if(null===h)throw new Error("TextureManager.SpriteSheet: Invalid frameWidth given.");var l=t.source[e];t.add("__BASE",e,0,0,l.width,l.height);var c=n(a,"startFrame",0),d=n(a,"endFrame",-1),p=n(a,"margin",0),f=n(a,"spacing",0),m=Math.floor((s-p+f)/(h+f))*Math.floor((o-p+f)/(u+f));0===m&&console.warn("SpriteSheet frame dimensions will result in zero frames."),(c>m||c<-m)&&(c=0),c<0&&(c=m+c),-1!==d&&(m=c+(d+1));for(var v=p,g=p,y=0,_=0,x=0;x<m;x++){y=0,_=0;var b=v+h,w=g+u;b>s&&(y=b-s),w>o&&(_=w-o),t.add(x,e,i+v,r+g,h-y,u-_),(v+=h+f)+h>s&&(v=p,g+=u+f)}return t}},98384:(t,e,i)=>{var n=i(81769);t.exports=function(t,e,i){var r=n(i,"frameWidth",null),s=n(i,"frameHeight",r);if(!r)throw new Error("TextureManager.SpriteSheetFromAtlas: Invalid frameWidth given.");var o=t.source[0];t.add("__BASE",0,0,0,o.width,o.height);var a,h=n(i,"startFrame",0),u=n(i,"endFrame",-1),l=n(i,"margin",0),c=n(i,"spacing",0),d=e.cutX,p=e.cutY,f=e.cutWidth,m=e.cutHeight,v=e.realWidth,g=e.realHeight,y=Math.floor((v-l+c)/(r+c)),_=Math.floor((g-l+c)/(s+c)),x=y*_,b=e.x,w=r-b,T=r-(v-f-b),M=e.y,S=s-M,E=s-(g-m-M);(h>x||h<-x)&&(h=0),h<0&&(h=x+h),-1!==u&&(x=h+(u+1));for(var L=l,A=l,D=0,P=e.sourceIndex,C=0;C<_;C++){for(var O=0===C,k=C===_-1,R=0;R<y;R++){var I=0===R,Y=R===y-1;if(a=t.add(D,P,d+L,p+A,r,s),I||O||Y||k){var F=I?b:0,N=O?M:0,B=0,U=0;I&&(B+=r-w),Y&&(B+=r-T),O&&(U+=s-S),k&&(U+=s-E);var j=r-B,H=s-U;a.cutWidth=j,a.cutHeight=H,a.setTrim(r,s,F,N,j,H)}L+=c,L+=I?w:Y?T:r,D++}L=l,A+=c,A+=O?S:k?E:s}return t}},5519:t=>{var e=0,i=function(t,i,n,r){var s=e-r.y-r.height;t.add(n,i,r.x,s,r.width,r.height)};t.exports=function(t,n,r){var s=t.source[n];t.add("__BASE",n,0,0,s.width,s.height),e=s.height;for(var o=r.split("\n"),a=/^[ ]*(- )*(\w+)+[: ]+(.*)/,h="",u="",l={x:0,y:0,width:0,height:0},c=0;c<o.length;c++){var d=o[c].match(a);if(d){var p="- "===d[1],f=d[2],m=d[3];if(p&&(u!==h&&(i(t,n,u,l),h=u),l={x:0,y:0,width:0,height:0}),"name"!==f)switch(f){case"x":case"y":case"width":case"height":l[f]=parseInt(m,10)}else u=m}}return u!==h&&i(t,n,u,l),t}},63083:(t,e,i)=>{t.exports={AtlasXML:i(50321),Canvas:i(45431),Image:i(52692),JSONArray:i(56171),JSONHash:i(7396),SpriteSheet:i(77357),SpriteSheetFromAtlas:i(98384),UnityYAML:i(5519)}},16092:t=>{t.exports={CSV:0,TILED_JSON:1,ARRAY_2D:2,WELTMEISTER:3}},55191:(t,e,i)=>{var n=new(i(47379))({initialize:function(t,e,i,n,r,s,o){(void 0===i||i<=0)&&(i=32),(void 0===n||n<=0)&&(n=32),void 0===r&&(r=0),void 0===s&&(s=0),this.name=t,this.firstgid=0|e,this.imageWidth=0|i,this.imageHeight=0|n,this.imageMargin=0|r,this.imageSpacing=0|s,this.properties=o||{},this.images=[],this.total=0},containsImageIndex:function(t){return t>=this.firstgid&&t<this.firstgid+this.total},addImage:function(t,e){return this.images.push({gid:t,image:e}),this.total++,this}});t.exports=n},64157:(t,e,i)=>{var n=i(16092),r=i(92223),s=i(3431),o=i(38634);t.exports=function(t,e,i,a,h,u,l,c){void 0===i&&(i=32),void 0===a&&(a=32),void 0===h&&(h=10),void 0===u&&(u=10),void 0===c&&(c=!1);var d=null;if(Array.isArray(l))d=s(void 0!==e?e:"map",n.ARRAY_2D,l,i,a,c);else if(void 0!==e){var p=t.cache.tilemap.get(e);p?d=s(e,p.format,p.data,i,a,c):console.warn("No map data found for key "+e)}return null===d&&(d=new r({tileWidth:i,tileHeight:a,width:h,height:u})),new o(t,d)}},72751:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(35064),o=new n({Mixins:[r.Alpha,r.Flip,r.Visible],initialize:function(t,e,i,n,r,s,o,a){this.layer=t,this.index=e,this.x=i,this.y=n,this.width=r,this.height=s,this.baseWidth=void 0!==o?o:r,this.baseHeight=void 0!==a?a:s,this.pixelX=0,this.pixelY=0,this.updatePixelXY(),this.properties={},this.rotation=0,this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceLeft=!1,this.faceRight=!1,this.faceTop=!1,this.faceBottom=!1,this.collisionCallback=null,this.collisionCallbackContext=this,this.tint=16777215,this.physics={}},containsPoint:function(t,e){return!(t<this.pixelX||e<this.pixelY||t>this.right||e>this.bottom)},copy:function(t){return this.index=t.index,this.alpha=t.alpha,this.properties=t.properties,this.visible=t.visible,this.setFlip(t.flipX,t.flipY),this.tint=t.tint,this.rotation=t.rotation,this.collideUp=t.collideUp,this.collideDown=t.collideDown,this.collideLeft=t.collideLeft,this.collideRight=t.collideRight,this.collisionCallback=t.collisionCallback,this.collisionCallbackContext=t.collisionCallbackContext,this},getCollisionGroup:function(){return this.tileset?this.tileset.getTileCollisionGroup(this.index):null},getTileData:function(){return this.tileset?this.tileset.getTileData(this.index):null},getLeft:function(t){var e=this.tilemapLayer;return e?e.tileToWorldX(this.x,t):this.x*this.baseWidth},getRight:function(t){var e=this.tilemapLayer;return e?this.getLeft(t)+this.width*e.scaleX:this.getLeft(t)+this.width},getTop:function(t){var e=this.tilemapLayer;return e?e.tileToWorldY(this.y,t)-(this.height-this.baseHeight)*e.scaleY:this.y*this.baseHeight-(this.height-this.baseHeight)},getBottom:function(t){var e=this.tilemapLayer;return e?this.getTop(t)+this.height*e.scaleY:this.getTop(t)+this.height},getBounds:function(t,e){return void 0===e&&(e=new s),e.x=this.getLeft(),e.y=this.getTop(),e.width=this.getRight()-e.x,e.height=this.getBottom()-e.y,e},getCenterX:function(t){return(this.getLeft(t)+this.getRight(t))/2},getCenterY:function(t){return(this.getTop(t)+this.getBottom(t))/2},destroy:function(){this.collisionCallback=void 0,this.collisionCallbackContext=void 0,this.properties=void 0},intersects:function(t,e,i,n){return!(i<=this.pixelX||n<=this.pixelY||t>=this.right||e>=this.bottom)},isInteresting:function(t,e){return t&&e?this.canCollide||this.hasInterestingFace:t?this.collides:!!e&&this.hasInterestingFace},resetCollision:function(t){(void 0===t&&(t=!0),this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,t)&&(this.tilemapLayer&&this.tilemapLayer.calculateFacesAt(this.x,this.y));return this},resetFaces:function(){return this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1,this},setCollision:function(t,e,i,n,r){(void 0===e&&(e=t),void 0===i&&(i=t),void 0===n&&(n=t),void 0===r&&(r=!0),this.collideLeft=t,this.collideRight=e,this.collideUp=i,this.collideDown=n,this.faceLeft=t,this.faceRight=e,this.faceTop=i,this.faceBottom=n,r)&&(this.tilemapLayer&&this.tilemapLayer.calculateFacesAt(this.x,this.y));return this},setCollisionCallback:function(t,e){return null===t?(this.collisionCallback=void 0,this.collisionCallbackContext=void 0):(this.collisionCallback=t,this.collisionCallbackContext=e),this},setSize:function(t,e,i,n){return void 0!==t&&(this.width=t),void 0!==e&&(this.height=e),void 0!==i&&(this.baseWidth=i),void 0!==n&&(this.baseHeight=n),this.updatePixelXY(),this},updatePixelXY:function(){return this.pixelX=this.x*this.baseWidth,this.pixelY=this.y*this.baseHeight,this},canCollide:{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}},collides:{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}},hasInterestingFace:{get:function(){return this.faceTop||this.faceBottom||this.faceLeft||this.faceRight}},tileset:{get:function(){var t=this.layer.tilemapLayer;if(t){var e=t.gidMap[this.index];if(e)return e}return null}},tilemapLayer:{get:function(){return this.layer.tilemapLayer}},tilemap:{get:function(){var t=this.tilemapLayer;return t?t.tilemap:null}}});t.exports=o},38634:(t,e,i)=>{var n=i(47379),r=i(98436),s=i(54805),o=i(80933),a=i(16092),h=i(24736),u=i(10461),l=i(75670),c=i(41856),d=i(72751),p=i(66894),f=i(10929),m=new n({initialize:function(t,e){this.scene=t,this.tileWidth=e.tileWidth,this.tileHeight=e.tileHeight,this.width=e.width,this.height=e.height,this.orientation=e.orientation,this.renderOrder=e.renderOrder,this.format=e.format,this.version=e.version,this.properties=e.properties,this.widthInPixels=e.widthInPixels,this.heightInPixels=e.heightInPixels,this.imageCollections=e.imageCollections,this.images=e.images,this.layers=e.layers,this.tilesets=e.tilesets,this.objects=e.objects,this.currentLayerIndex=0},setRenderOrder:function(t){var e=["right-down","left-down","right-up","left-up"];return"number"==typeof t&&(t=e[t]),e.indexOf(t)>-1&&(this.renderOrder=t),this},addTilesetImage:function(t,e,i,n,r,s,o){if(void 0===t)return null;if(null==e&&(e=t),!this.scene.sys.textures.exists(e))return console.warn("Invalid Tileset Image: "+e),null;var h=this.scene.sys.textures.get(e),u=this.getTilesetIndex(t);if(null===u&&this.format===a.TILED_JSON)return console.warn("No data found for Tileset: "+t),null;var l=this.tilesets[u];return l?(l.setTileSize(i,n),l.setSpacing(r,s),l.setImage(h),l):(void 0===i&&(i=this.tileWidth),void 0===n&&(n=this.tileHeight),void 0===r&&(r=0),void 0===s&&(s=0),void 0===o&&(o=0),(l=new f(t,o,i,n,r,s)).setImage(h),this.tilesets.push(l),l)},convertLayerToStatic:function(t){if(null===(t=this.getLayer(t)))return null;var e=t.tilemapLayer;if(!(e&&e instanceof s))return null;var i=new c(e.scene,e.tilemap,e.layerIndex,e.tileset,e.x,e.y);return this.scene.sys.displayList.add(i),e.destroy(),i},copy:function(t,e,i,n,r,s,o,a){return a=this.getLayer(a),this._isStaticCall(a,"copy")?this:null!==a?(p.Copy(t,e,i,n,r,s,o,a),this):null},createBlankDynamicLayer:function(t,e,i,n,r,o,a,u){if(void 0===i&&(i=0),void 0===n&&(n=0),void 0===r&&(r=this.width),void 0===o&&(o=this.height),void 0===a&&(a=this.tileWidth),void 0===u&&(u=this.tileHeight),null!==this.getLayerIndex(t))return console.warn("Invalid Tilemap Layer ID: "+t),null;for(var l,c=new h({name:t,tileWidth:a,tileHeight:u,width:r,height:o}),p=0;p<o;p++){l=[];for(var f=0;f<r;f++)l.push(new d(c,-1,f,p,a,u,this.tileWidth,this.tileHeight));c.data.push(l)}this.layers.push(c),this.currentLayerIndex=this.layers.length-1;var m=new s(this.scene,this,this.currentLayerIndex,e,i,n);return m.setRenderOrder(this.renderOrder),this.scene.sys.displayList.add(m),m},createDynamicLayer:function(t,e,i,n){var r=this.getLayerIndex(t);if(null===r)return console.warn("Invalid Tilemap Layer ID: "+t),"string"==typeof t&&console.warn("Valid tilelayer names:\n\t"+this.getTileLayerNames().join(",\n\t")),null;var o=this.layers[r];if(o.tilemapLayer)return console.warn("Tilemap Layer ID already exists:"+t),null;this.currentLayerIndex=r,void 0===i&&(i=o.x),void 0===n&&(n=o.y);var a=new s(this.scene,this,r,e,i,n);return a.setRenderOrder(this.renderOrder),this.scene.sys.displayList.add(a),a},createFromObjects:function(t,e,i,n){void 0===i&&(i={}),void 0===n&&(n=this.scene);var s=this.getObjectLayer(t);if(!s)return console.warn("Cannot create from object. Invalid objectgroup name given: "+t),"string"==typeof layerID&&console.warn("Valid objectgroup names:\n\t"+this.getObjectLayerNames().join(",\n\t")),null;for(var a=s.objects,h=[],l=0;l<a.length;l++){var c=!1,d=a[l];if((void 0!==d.gid&&"number"==typeof e&&d.gid===e||void 0!==d.id&&"number"==typeof e&&d.id===e||void 0!==d.name&&"string"==typeof e&&d.name===e)&&(c=!0),c){var p=o({},i,d.properties);p.x=d.x,p.y=d.y;var f=n.make.sprite(p);f.name=d.name,d.width&&(f.displayWidth=d.width),d.height&&(f.displayHeight=d.height);var m={x:f.originX*d.width,y:(f.originY-1)*d.height};if(d.rotation){var v=r(d.rotation);u(m,v),f.rotation=v}for(var g in f.x+=m.x,f.y+=m.y,void 0===d.flippedHorizontal&&void 0===d.flippedVertical||f.setFlip(d.flippedHorizontal,d.flippedVertical),d.visible||(f.visible=!1),d.properties)f.hasOwnProperty(g)||f.setData(g,d.properties[g]);h.push(f)}}return h},createFromTiles:function(t,e,i,n,r,s){return null===(s=this.getLayer(s))?null:p.CreateFromTiles(t,e,i,n,r,s)},createStaticLayer:function(t,e,i,n){var r=this.getLayerIndex(t);if(null===r)return console.warn("Invalid Tilemap Layer ID: "+t),"string"==typeof t&&console.warn("Valid tilelayer names:\n\t"+this.getTileLayerNames().join(",\n\t")),null;if(this.layers[r].tilemapLayer)return console.warn("Tilemap Layer ID already exists:"+t),null;this.currentLayerIndex=r,void 0===i&&this.layers[r].x&&(i=this.layers[r].x),void 0===n&&this.layers[r].y&&(n=this.layers[r].y);var s=new c(this.scene,this,r,e,i,n);return s.setRenderOrder(this.renderOrder),this.scene.sys.displayList.add(s),s},destroy:function(){this.removeAllLayers(),this.tilesets.length=0,this.objects.length=0,this.scene=void 0},fill:function(t,e,i,n,r,s,o){return null===(o=this.getLayer(o))?null:(this._isStaticCall(o,"fill")||p.Fill(t,e,i,n,r,s,o),this)},filterObjects:function(t,e,i){if("string"==typeof t){var n=t;if(!(t=this.getObjectLayer(t)))return console.warn("No object layer found with the name: "+n),null}return t.objects.filter(e,i)},filterTiles:function(t,e,i,n,r,s,o,a){return null===(a=this.getLayer(a))?null:p.FilterTiles(t,e,i,n,r,s,o,a)},findByIndex:function(t,e,i,n){return null===(n=this.getLayer(n))?null:p.FindByIndex(t,e,i,n)},findObject:function(t,e,i){if("string"==typeof t){var n=t;if(!(t=this.getObjectLayer(t)))return console.warn("No object layer found with the name: "+n),null}return t.objects.find(e,i)||null},findTile:function(t,e,i,n,r,s,o,a){return null===(a=this.getLayer(a))?null:p.FindTile(t,e,i,n,r,s,o,a)},forEachTile:function(t,e,i,n,r,s,o,a){return null===(a=this.getLayer(a))?null:(p.ForEachTile(t,e,i,n,r,s,o,a),this)},getImageIndex:function(t){return this.getIndex(this.images,t)},getImageLayerNames:function(){return this.images&&Array.isArray(this.images)?this.images.map((function(t){return t.name})):[]},getIndex:function(t,e){for(var i=0;i<t.length;i++)if(t[i].name===e)return i;return null},getLayer:function(t){var e=this.getLayerIndex(t);return null!==e?this.layers[e]:null},getObjectLayer:function(t){var e=this.getIndex(this.objects,t);return null!==e?this.objects[e]:null},getObjectLayerNames:function(){return this.objects&&Array.isArray(this.objects)?this.objects.map((function(t){return t.name})):[]},getLayerIndex:function(t){return void 0===t?this.currentLayerIndex:"string"==typeof t?this.getLayerIndexByName(t):"number"==typeof t&&t<this.layers.length?t:t instanceof c||t instanceof s?t.layerIndex:null},getLayerIndexByName:function(t){return this.getIndex(this.layers,t)},getTileAt:function(t,e,i,n){return null===(n=this.getLayer(n))?null:p.GetTileAt(t,e,i,n)},getTileAtWorldXY:function(t,e,i,n,r){return null===(r=this.getLayer(r))?null:p.GetTileAtWorldXY(t,e,i,n,r)},getTileLayerNames:function(){return this.layers&&Array.isArray(this.layers)?this.layers.map((function(t){return t.name})):[]},getTilesWithin:function(t,e,i,n,r,s){return null===(s=this.getLayer(s))?null:p.GetTilesWithin(t,e,i,n,r,s)},getTilesWithinShape:function(t,e,i,n){return null===(n=this.getLayer(n))?null:p.GetTilesWithinShape(t,e,i,n)},getTilesWithinWorldXY:function(t,e,i,n,r,s,o){return null===(o=this.getLayer(o))?null:p.GetTilesWithinWorldXY(t,e,i,n,r,s,o)},getTileset:function(t){var e=this.getIndex(this.tilesets,t);return null!==e?this.tilesets[e]:null},getTilesetIndex:function(t){return this.getIndex(this.tilesets,t)},hasTileAt:function(t,e,i){return null===(i=this.getLayer(i))?null:p.HasTileAt(t,e,i)},hasTileAtWorldXY:function(t,e,i,n){return null===(n=this.getLayer(n))?null:p.HasTileAtWorldXY(t,e,i,n)},layer:{get:function(){return this.layers[this.currentLayerIndex]},set:function(t){this.setLayer(t)}},putTileAt:function(t,e,i,n,r){return r=this.getLayer(r),this._isStaticCall(r,"putTileAt")||null===r?null:p.PutTileAt(t,e,i,n,r)},putTileAtWorldXY:function(t,e,i,n,r,s){return s=this.getLayer(s),this._isStaticCall(s,"putTileAtWorldXY")||null===s?null:p.PutTileAtWorldXY(t,e,i,n,r,s)},putTilesAt:function(t,e,i,n,r){return r=this.getLayer(r),this._isStaticCall(r,"putTilesAt")?this:null===r?null:(p.PutTilesAt(t,e,i,n,r),this)},randomize:function(t,e,i,n,r,s){return s=this.getLayer(s),this._isStaticCall(s,"randomize")?this:null===s?null:(p.Randomize(t,e,i,n,r,s),this)},calculateFacesAt:function(t,e,i){return null===(i=this.getLayer(i))?null:(p.CalculateFacesAt(t,e,i),this)},calculateFacesWithin:function(t,e,i,n,r){return null===(r=this.getLayer(r))?null:(p.CalculateFacesWithin(t,e,i,n,r),this)},removeLayer:function(t){var e=this.getLayerIndex(t);if(null!==e){l(this.layers,e);for(var i=e;i<this.layers.length;i++)this.layers[i].tilemapLayer&&this.layers[i].tilemapLayer.layerIndex--;return this.currentLayerIndex===e&&(this.currentLayerIndex=0),this}return null},destroyLayer:function(t){var e=this.getLayerIndex(t);return null!==e?((t=this.layers[e]).destroy(),l(this.layers,e),this.currentLayerIndex===e&&(this.currentLayerIndex=0),this):null},removeAllLayers:function(){for(var t=this.layers,e=0;e<t.length;e++)t[e].tilemapLayer&&t[e].tilemapLayer.destroy(!1);return t.length=0,this.currentLayerIndex=0,this},removeTile:function(t,e,i){void 0===e&&(e=-1),void 0===i&&(i=!0);var n=[];Array.isArray(t)||(t=[t]);for(var r=0;r<t.length;r++){var s=t[r];n.push(this.removeTileAt(s.x,s.y,!0,i,s.tilemapLayer)),e>-1&&this.putTileAt(e,s.x,s.y,i,s.tilemapLayer)}return n},removeTileAt:function(t,e,i,n,r){return r=this.getLayer(r),this._isStaticCall(r,"removeTileAt")||null===r?null:p.RemoveTileAt(t,e,i,n,r)},removeTileAtWorldXY:function(t,e,i,n,r,s){return s=this.getLayer(s),this._isStaticCall(s,"removeTileAtWorldXY")||null===s?null:p.RemoveTileAtWorldXY(t,e,i,n,r,s)},renderDebug:function(t,e,i){return null===(i=this.getLayer(i))?null:(p.RenderDebug(t,e,i),this)},renderDebugFull:function(t,e){for(var i=this.layers,n=0;n<i.length;n++)p.RenderDebug(t,e,i[n]);return this},replaceByIndex:function(t,e,i,n,r,s,o){return o=this.getLayer(o),this._isStaticCall(o,"replaceByIndex")?this:null===o?null:(p.ReplaceByIndex(t,e,i,n,r,s,o),this)},setCollision:function(t,e,i,n,r){return null===(n=this.getLayer(n))?null:(p.SetCollision(t,e,i,n,r),this)},setCollisionBetween:function(t,e,i,n,r){return null===(r=this.getLayer(r))?null:(p.SetCollisionBetween(t,e,i,n,r),this)},setCollisionByProperty:function(t,e,i,n){return null===(n=this.getLayer(n))?null:(p.SetCollisionByProperty(t,e,i,n),this)},setCollisionByExclusion:function(t,e,i,n){return null===(n=this.getLayer(n))?null:(p.SetCollisionByExclusion(t,e,i,n),this)},setCollisionFromCollisionGroup:function(t,e,i){return null===(i=this.getLayer(i))?null:(p.SetCollisionFromCollisionGroup(t,e,i),this)},setTileIndexCallback:function(t,e,i,n){return null===(n=this.getLayer(n))?null:(p.SetTileIndexCallback(t,e,i,n),this)},setTileLocationCallback:function(t,e,i,n,r,s,o){return null===(o=this.getLayer(o))?null:(p.SetTileLocationCallback(t,e,i,n,r,s,o),this)},setLayer:function(t){var e=this.getLayerIndex(t);return null!==e&&(this.currentLayerIndex=e),this},setBaseTileSize:function(t,e){this.tileWidth=t,this.tileHeight=e,this.widthInPixels=this.width*t,this.heightInPixels=this.height*e;for(var i=0;i<this.layers.length;i++){this.layers[i].baseTileWidth=t,this.layers[i].baseTileHeight=e;for(var n=this.layers[i].data,r=this.layers[i].width,s=this.layers[i].height,o=0;o<s;o++)for(var a=0;a<r;a++){var h=n[o][a];null!==h&&h.setSize(void 0,void 0,t,e)}}return this},setLayerTileSize:function(t,e,i){if(null===(i=this.getLayer(i)))return this;i.tileWidth=t,i.tileHeight=e;for(var n=i.data,r=i.width,s=i.height,o=0;o<s;o++)for(var a=0;a<r;a++){var h=n[o][a];null!==h&&h.setSize(t,e)}return this},shuffle:function(t,e,i,n,r){return r=this.getLayer(r),this._isStaticCall(r,"shuffle")?this:null===r?null:(p.Shuffle(t,e,i,n,r),this)},swapByIndex:function(t,e,i,n,r,s,o){return o=this.getLayer(o),this._isStaticCall(o,"swapByIndex")?this:null===o?null:(p.SwapByIndex(t,e,i,n,r,s,o),this)},tileToWorldX:function(t,e,i){return null===(i=this.getLayer(i))?null:p.TileToWorldX(t,e,i)},tileToWorldY:function(t,e,i){return null===(i=this.getLayer(i))?null:p.TileToWorldY(t,e,i)},tileToWorldXY:function(t,e,i,n,r){return null===(r=this.getLayer(r))?null:p.TileToWorldXY(t,e,i,n,r)},weightedRandomize:function(t,e,i,n,r,s){return s=this.getLayer(s),this._isStaticCall(s,"weightedRandomize")?this:null===s?null:(p.WeightedRandomize(t,e,i,n,r,s),this)},worldToTileX:function(t,e,i,n){return null===(n=this.getLayer(n))?null:p.WorldToTileX(t,e,i,n)},worldToTileY:function(t,e,i,n){return null===(n=this.getLayer(n))?null:p.WorldToTileY(t,e,i,n)},worldToTileXY:function(t,e,i,n,r,s){return null===(s=this.getLayer(s))?null:p.WorldToTileXY(t,e,i,n,r,s)},_isStaticCall:function(t,e){return t.tilemapLayer instanceof c&&(console.warn(e+": You cannot change the tiles in a static tilemap layer"),!0)}});t.exports=m},72797:(t,e,i)=>{var n=i(17517),r=i(64157);n.register("tilemap",(function(t){var e=void 0!==t?t:{};return r(this.scene,e.key,e.tileWidth,e.tileHeight,e.width,e.height,e.data,e.insertNull)}))},801:(t,e,i)=>{var n=i(81342),r=i(64157);n.register("tilemap",(function(t,e,i,n,s,o,a){return null===t&&(t=void 0),null===e&&(e=void 0),null===i&&(i=void 0),null===n&&(n=void 0),null===s&&(s=void 0),r(this.scene,t,e,i,n,s,o,a)}))},10929:(t,e,i)=>{var n=new(i(47379))({initialize:function(t,e,i,n,r,s,o,a){(void 0===i||i<=0)&&(i=32),(void 0===n||n<=0)&&(n=32),void 0===r&&(r=0),void 0===s&&(s=0),void 0===o&&(o={}),void 0===a&&(a={}),this.name=t,this.firstgid=e,this.tileWidth=i,this.tileHeight=n,this.tileMargin=r,this.tileSpacing=s,this.tileProperties=o,this.tileData=a,this.image=null,this.glTexture=null,this.rows=0,this.columns=0,this.total=0,this.texCoordinates=[]},getTileProperties:function(t){return this.containsTileIndex(t)?this.tileProperties[t-this.firstgid]:null},getTileData:function(t){return this.containsTileIndex(t)?this.tileData[t-this.firstgid]:null},getTileCollisionGroup:function(t){var e=this.getTileData(t);return e&&e.objectgroup?e.objectgroup:null},containsTileIndex:function(t){return t>=this.firstgid&&t<this.firstgid+this.total},getTileTextureCoordinates:function(t){return this.containsTileIndex(t)?this.texCoordinates[t-this.firstgid]:null},setImage:function(t){return this.image=t,this.glTexture=t.get().source.glTexture,this.updateTileData(this.image.source[0].width,this.image.source[0].height),this},setTileSize:function(t,e){return void 0!==t&&(this.tileWidth=t),void 0!==e&&(this.tileHeight=e),this.image&&this.updateTileData(this.image.source[0].width,this.image.source[0].height),this},setSpacing:function(t,e){return void 0!==t&&(this.tileMargin=t),void 0!==e&&(this.tileSpacing=e),this.image&&this.updateTileData(this.image.source[0].width,this.image.source[0].height),this},updateTileData:function(t,e){var i=(e-2*this.tileMargin+this.tileSpacing)/(this.tileHeight+this.tileSpacing),n=(t-2*this.tileMargin+this.tileSpacing)/(this.tileWidth+this.tileSpacing);i%1==0&&n%1==0||console.warn("Image tile area not tile size multiple in: "+this.name),i=Math.floor(i),n=Math.floor(n),this.rows=i,this.columns=n,this.total=i*n,this.texCoordinates.length=0;for(var r=this.tileMargin,s=this.tileMargin,o=0;o<this.rows;o++){for(var a=0;a<this.columns;a++)this.texCoordinates.push({x:r,y:s}),r+=this.tileWidth+this.tileSpacing;r=this.tileMargin,s+=this.tileHeight+this.tileSpacing}return this}});t.exports=n},31304:(t,e,i)=>{var n=i(68626);t.exports=function(t,e,i){var r=n(t,e,!0,i),s=n(t,e-1,!0,i),o=n(t,e+1,!0,i),a=n(t-1,e,!0,i),h=n(t+1,e,!0,i),u=r&&r.collides;return u&&(r.faceTop=!0,r.faceBottom=!0,r.faceLeft=!0,r.faceRight=!0),s&&s.collides&&(u&&(r.faceTop=!1),s.faceBottom=!u),o&&o.collides&&(u&&(r.faceBottom=!1),o.faceTop=!u),a&&a.collides&&(u&&(r.faceLeft=!1),a.faceRight=!u),h&&h.collides&&(u&&(r.faceRight=!1),h.faceLeft=!u),r&&!r.collides&&r.resetFaces(),r}},39968:(t,e,i)=>{var n=i(68626),r=i(87405);t.exports=function(t,e,i,s,o){for(var a=null,h=null,u=null,l=null,c=r(t,e,i,s,null,o),d=0;d<c.length;d++){var p=c[d];p&&(p.collides?(a=n(p.x,p.y-1,!0,o),h=n(p.x,p.y+1,!0,o),u=n(p.x-1,p.y,!0,o),l=n(p.x+1,p.y,!0,o),p.faceTop=!a||!a.collides,p.faceBottom=!h||!h.collides,p.faceLeft=!u||!u.collides,p.faceRight=!l||!l.collides):p.resetFaces())}}},64779:(t,e,i)=>{var n=i(87405),r=i(39968);t.exports=function(t,e,i,s,o,a,h,u){t<0&&(t=0),e<0&&(e=0),void 0===h&&(h=!0);for(var l=n(t,e,i,s,null,u),c=o-t,d=a-e,p=0;p<l.length;p++){var f=l[p].x+c,m=l[p].y+d;f>=0&&f<u.width&&m>=0&&m<u.height&&u.data[m][f]&&u.data[m][f].copy(l[p])}h&&r(o-1,a-1,i+2,s+2,u)}},42752:(t,e,i)=>{var n=i(41058),r=i(76935),s=i(87405),o=i(13375);t.exports=function(t,e,i,a,h,u){void 0===i&&(i={}),Array.isArray(t)||(t=[t]);var l=u.tilemapLayer;void 0===a&&(a=l.scene),void 0===h&&(h=a.cameras.main);var c,d=s(0,0,u.width,u.height,null,u),p=[];for(c=0;c<d.length;c++){var f=d[c];if(-1!==t.indexOf(f.index)){i.x=n(f.x,h,u),i.y=r(f.y,h,u);var m=a.make.sprite(i);p.push(m)}}if("number"==typeof e)for(c=0;c<t.length;c++)o(t[c],e,0,0,u.width,u.height,u);else if(Array.isArray(e))for(c=0;c<t.length;c++)o(t[c],e[c],0,0,u.width,u.height,u);return p}},12567:(t,e,i)=>{var n=i(88168),r=i(70346);t.exports=function(t,e,i,s){void 0===i&&(i=[]),void 0===s&&(s=0),i.length=0;var o,a,h,u=t.tilemapLayer.tilemap,l=t.tilemapLayer,c=t.data,d=t.width,p=t.height,f=Math.floor(u.tileWidth*l.scaleX),m=Math.floor(u.tileHeight*l.scaleY),v=0,g=d,y=0,_=p;if(!l.skipCull&&1===l.scrollFactorX&&1===l.scrollFactorY){var x=n(e.worldView.x-l.x,f,0,!0)-l.cullPaddingX,b=r(e.worldView.right-l.x,f,0,!0)+l.cullPaddingX,w=n(e.worldView.y-l.y,m,0,!0)-l.cullPaddingY,T=r(e.worldView.bottom-l.y,m,0,!0)+l.cullPaddingY;v=Math.max(0,x),g=Math.min(d,b),y=Math.max(0,w),_=Math.min(p,T)}if(0===s)for(a=y;a<_;a++)for(o=v;c[a]&&o<g;o++)(h=c[a][o])&&-1!==h.index&&h.visible&&0!==h.alpha&&i.push(h);else if(1===s)for(a=y;a<_;a++)for(o=g;c[a]&&o>=v;o--)(h=c[a][o])&&-1!==h.index&&h.visible&&0!==h.alpha&&i.push(h);else if(2===s)for(a=_;a>=y;a--)for(o=v;c[a]&&o<g;o++)(h=c[a][o])&&-1!==h.index&&h.visible&&0!==h.alpha&&i.push(h);else if(3===s)for(a=_;a>=y;a--)for(o=g;c[a]&&o>=v;o--)(h=c[a][o])&&-1!==h.index&&h.visible&&0!==h.alpha&&i.push(h);return l.tilesDrawn=i.length,l.tilesTotal=d*p,i}},88904:(t,e,i)=>{var n=i(87405),r=i(39968),s=i(23562);t.exports=function(t,e,i,o,a,h,u){for(var l=-1!==u.collideIndexes.indexOf(t),c=n(e,i,o,a,null,u),d=0;d<c.length;d++)c[d].index=t,s(c[d],l);h&&r(e-1,i-1,o+2,a+2,u)}},65204:(t,e,i)=>{var n=i(87405);t.exports=function(t,e,i,r,s,o,a,h){return n(i,r,s,o,a,h).filter(t,e)}},87916:t=>{t.exports=function(t,e,i,n){void 0===e&&(e=0),void 0===i&&(i=!1);var r,s,o,a=0;if(i){for(s=n.height-1;s>=0;s--)for(r=n.width-1;r>=0;r--)if((o=n.data[s][r])&&o.index===t){if(a===e)return o;a+=1}}else for(s=0;s<n.height;s++)for(r=0;r<n.width;r++)if((o=n.data[s][r])&&o.index===t){if(a===e)return o;a+=1}return null}},68548:(t,e,i)=>{var n=i(87405);t.exports=function(t,e,i,r,s,o,a,h){return n(i,r,s,o,a,h).find(t,e)||null}},25400:(t,e,i)=>{var n=i(87405);t.exports=function(t,e,i,r,s,o,a,h){n(i,r,s,o,a,h).forEach(t,e)}},68626:(t,e,i)=>{var n=i(66049);t.exports=function(t,e,i,r){if(void 0===i&&(i=!1),n(t,e,r)){var s=r.data[e][t]||null;return null===s?null:-1===s.index?i?s:null:s}return null}},18177:(t,e,i)=>{var n=i(68626),r=i(48117),s=i(70079);t.exports=function(t,e,i,o,a){var h=r(t,!0,o,a),u=s(e,!0,o,a);return n(h,u,i,a)}},87405:(t,e,i)=>{var n=i(81769);t.exports=function(t,e,i,r,s,o){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=o.width),void 0===r&&(r=o.height);var a=n(s,"isNotEmpty",!1),h=n(s,"isColliding",!1),u=n(s,"hasInterestingFace",!1);t<0&&(i+=t,t=0),e<0&&(r+=e,e=0),t+i>o.width&&(i=Math.max(o.width-t,0)),e+r>o.height&&(r=Math.max(o.height-e,0));for(var l=[],c=e;c<e+r;c++)for(var d=t;d<t+i;d++){var p=o.data[c][d];if(null!==p){if(a&&-1===p.index)continue;if(h&&!p.collides)continue;if(u&&!p.hasInterestingFace)continue;l.push(p)}}return l}},6316:(t,e,i)=>{var n=i(96285),r=i(87405),s=i(60583),o=i(49035),a=i(41058),h=i(76935),u=i(48117),l=i(70079),c=function(t,e){return s.RectangleToTriangle(e,t)};t.exports=function(t,e,i,d){if(void 0===t)return[];var p=o;t instanceof n.Circle?p=s.CircleToRectangle:t instanceof n.Rectangle?p=s.RectangleToRectangle:t instanceof n.Triangle?p=c:t instanceof n.Line&&(p=s.LineToRectangle);var f=u(t.left,!0,i,d),m=l(t.top,!0,i,d),v=Math.ceil(u(t.right,!1,i,d)),g=Math.ceil(l(t.bottom,!1,i,d)),y=Math.max(v-f,1),_=Math.max(g-m,1),x=r(f,m,y,_,e,d),b=d.tileWidth,w=d.tileHeight;d.tilemapLayer&&(b*=d.tilemapLayer.scaleX,w*=d.tilemapLayer.scaleY);for(var T=[],M=new n.Rectangle(0,0,b,w),S=0;S<x.length;S++){var E=x[S];M.x=a(E.x,i,d),M.y=h(E.y,i,d),p(t,M)&&T.push(E)}return T}},6348:(t,e,i)=>{var n=i(87405),r=i(48117),s=i(70079);t.exports=function(t,e,i,o,a,h,u){var l=r(t,!0,h,u),c=s(e,!0,h,u),d=Math.ceil(r(t+i,!1,h,u)),p=Math.ceil(s(e+o,!1,h,u));return n(l,c,d-l,p-c,a,u)}},2458:(t,e,i)=>{var n=i(66049);t.exports=function(t,e,i){if(n(t,e,i)){var r=i.data[e][t];return null!==r&&r.index>-1}return!1}},81818:(t,e,i)=>{var n=i(2458),r=i(48117),s=i(70079);t.exports=function(t,e,i,o){var a=r(t,!0,i,o),h=s(e,!0,i,o);return n(a,h,o)}},66049:t=>{t.exports=function(t,e,i){return t>=0&&t<i.width&&e>=0&&e<i.height}},54022:(t,e,i)=>{var n=i(72751),r=i(66049),s=i(31304),o=i(23562);t.exports=function(t,e,i,a,h){if(!r(e,i,h))return null;void 0===a&&(a=!0);var u=h.data[i][e],l=u&&u.collides;if(t instanceof n)null===h.data[i][e]&&(h.data[i][e]=new n(h,t.index,e,i,t.width,t.height)),h.data[i][e].copy(t);else{var c=t;null===h.data[i][e]?h.data[i][e]=new n(h,c,e,i,h.tileWidth,h.tileHeight):h.data[i][e].index=c}var d=h.data[i][e],p=-1!==h.collideIndexes.indexOf(d.index);return o(d,p),a&&l!==d.collides&&s(e,i,h),d}},30912:(t,e,i)=>{var n=i(54022),r=i(48117),s=i(70079);t.exports=function(t,e,i,o,a,h){var u=r(e,!0,a,h),l=s(i,!0,a,h);return n(t,u,l,o,h)}},82541:(t,e,i)=>{var n=i(39968),r=i(54022);t.exports=function(t,e,i,s,o){if(!Array.isArray(t))return null;void 0===s&&(s=!0),Array.isArray(t[0])||(t=[t]);for(var a=t.length,h=t[0].length,u=0;u<a;u++)for(var l=0;l<h;l++){var c=t[u][l];r(c,e+l,i+u,!1,o)}s&&n(e-1,i-1,h+2,a+2,o)}},82558:(t,e,i)=>{var n=i(87405),r=i(51750);t.exports=function(t,e,i,s,o,a){var h,u=n(t,e,i,s,null,a);if(void 0===o)for(o=[],h=0;h<u.length;h++)-1===o.indexOf(u[h].index)&&o.push(u[h].index);for(h=0;h<u.length;h++)u[h].index=r(o)}},28960:(t,e,i)=>{var n=i(72751),r=i(66049),s=i(31304);t.exports=function(t,e,i,o,a){if(void 0===i&&(i=!1),void 0===o&&(o=!0),!r(t,e,a))return null;var h=a.data[e][t];return h?(a.data[e][t]=i?null:new n(a,-1,t,e,h.width,h.height),o&&h&&h.collides&&s(t,e,a),h):null}},61605:(t,e,i)=>{var n=i(28960),r=i(48117),s=i(70079);t.exports=function(t,e,i,o,a,h){var u=r(t,!0,a,h),l=s(e,!0,a,h);return n(u,l,i,o,h)}},78287:(t,e,i)=>{var n=i(87405),r=i(82532),s=new r(105,210,231,150),o=new r(243,134,48,200),a=new r(40,39,37,150);t.exports=function(t,e,i){void 0===e&&(e={});var r=void 0!==e.tileColor?e.tileColor:s,h=void 0!==e.collidingTileColor?e.collidingTileColor:o,u=void 0!==e.faceColor?e.faceColor:a,l=n(0,0,i.width,i.height,null,i);t.translateCanvas(i.tilemapLayer.x,i.tilemapLayer.y),t.scaleCanvas(i.tilemapLayer.scaleX,i.tilemapLayer.scaleY);for(var c=0;c<l.length;c++){var d=l[c],p=d.width,f=d.height,m=d.pixelX,v=d.pixelY,g=d.collides?h:r;null!==g&&(t.fillStyle(g.color,g.alpha/255),t.fillRect(m,v,p,f)),m+=1,v+=1,p-=2,f-=2,null!==u&&(t.lineStyle(1,u.color,u.alpha/255),d.faceTop&&t.lineBetween(m,v,m+p,v),d.faceRight&&t.lineBetween(m+p,v,m+p,v+f),d.faceBottom&&t.lineBetween(m,v+f,m+p,v+f),d.faceLeft&&t.lineBetween(m,v,m,v+f))}}},13375:(t,e,i)=>{var n=i(87405);t.exports=function(t,e,i,r,s,o,a){for(var h=n(i,r,s,o,null,a),u=0;u<h.length;u++)h[u]&&h[u].index===t&&(h[u].index=e)}},66244:(t,e,i)=>{var n=i(23562),r=i(39968),s=i(559);t.exports=function(t,e,i,o,a){void 0===e&&(e=!0),void 0===i&&(i=!0),Array.isArray(t)||(t=[t]),void 0===a&&(a=!0);for(var h=0;h<t.length;h++)s(t[h],e,o);if(a)for(var u=0;u<o.height;u++)for(var l=0;l<o.width;l++){var c=o.data[u][l];c&&-1!==t.indexOf(c.index)&&n(c,e)}i&&r(0,0,o.width,o.height,o)}},49823:(t,e,i)=>{var n=i(23562),r=i(39968),s=i(559);t.exports=function(t,e,i,o,a,h){if(void 0===i&&(i=!0),void 0===o&&(o=!0),void 0===h&&(h=!0),!(t>e)){for(var u=t;u<=e;u++)s(u,i,a);if(h)for(var l=0;l<a.height;l++)for(var c=0;c<a.width;c++){var d=a.data[l][c];d&&d.index>=t&&d.index<=e&&n(d,i)}o&&r(0,0,a.width,a.height,a)}}},7836:(t,e,i)=>{var n=i(23562),r=i(39968),s=i(559);t.exports=function(t,e,i,o){void 0===e&&(e=!0),void 0===i&&(i=!0),Array.isArray(t)||(t=[t]);for(var a=0;a<o.height;a++)for(var h=0;h<o.width;h++){var u=o.data[a][h];u&&-1===t.indexOf(u.index)&&(n(u,e),s(u.index,e,o))}i&&r(0,0,o.width,o.height,o)}},56705:(t,e,i)=>{var n=i(23562),r=i(39968),s=i(64036);t.exports=function(t,e,i,o){void 0===e&&(e=!0),void 0===i&&(i=!0);for(var a=0;a<o.height;a++)for(var h=0;h<o.width;h++){var u=o.data[a][h];if(u)for(var l in t)if(s(u.properties,l)){var c=t[l];Array.isArray(c)||(c=[c]);for(var d=0;d<c.length;d++)u.properties[l]===c[d]&&n(u,e)}}i&&r(0,0,o.width,o.height,o)}},4385:(t,e,i)=>{var n=i(23562),r=i(39968);t.exports=function(t,e,i){void 0===t&&(t=!0),void 0===e&&(e=!0);for(var s=0;s<i.height;s++)for(var o=0;o<i.width;o++){var a=i.data[s][o];if(a){var h=a.getCollisionGroup();h&&h.objects&&h.objects.length>0&&n(a,t)}}e&&r(0,0,i.width,i.height,i)}},559:t=>{t.exports=function(t,e,i){var n=i.collideIndexes.indexOf(t);e&&-1===n?i.collideIndexes.push(t):e||-1===n||i.collideIndexes.splice(n,1)}},23562:t=>{t.exports=function(t,e){e?t.setCollision(!0,!0,!0,!0,!1):t.resetCollision(!1)}},71658:t=>{t.exports=function(t,e,i,n){if("number"==typeof t)n.callbacks[t]=null!==e?{callback:e,callbackContext:i}:void 0;else for(var r=0,s=t.length;r<s;r++)n.callbacks[t[r]]=null!==e?{callback:e,callbackContext:i}:void 0}},25898:(t,e,i)=>{var n=i(87405);t.exports=function(t,e,i,r,s,o,a){for(var h=n(t,e,i,r,null,a),u=0;u<h.length;u++)h[u].setCollisionCallback(s,o)}},18113:(t,e,i)=>{var n=i(87405),r=i(84851);t.exports=function(t,e,i,s,o){var a=n(t,e,i,s,null,o),h=a.map((function(t){return t.index}));r(h);for(var u=0;u<a.length;u++)a[u].index=h[u]}},28325:(t,e,i)=>{var n=i(87405);t.exports=function(t,e,i,r,s,o,a){for(var h=n(i,r,s,o,null,a),u=0;u<h.length;u++)h[u]&&(h[u].index===t?h[u].index=e:h[u].index===e&&(h[u].index=t))}},41058:t=>{t.exports=function(t,e,i){var n=i.baseTileWidth,r=i.tilemapLayer,s=0;return r&&(void 0===e&&(e=r.scene.cameras.main),s=r.x+e.scrollX*(1-r.scrollFactorX),n*=r.scaleX),s+t*n}},10777:(t,e,i)=>{var n=i(41058),r=i(76935),s=i(57148);t.exports=function(t,e,i,o,a){return void 0===i&&(i=new s(0,0)),i.x=n(t,o,a),i.y=r(e,o,a),i}},76935:t=>{t.exports=function(t,e,i){var n=i.baseTileHeight,r=i.tilemapLayer,s=0;return r&&(void 0===e&&(e=r.scene.cameras.main),s=r.y+e.scrollY*(1-r.scrollFactorY),n*=r.scaleY),s+t*n}},60913:(t,e,i)=>{var n=i(87405);t.exports=function(t,e,i,r,s,o){if(void 0!==s){var a,h=n(t,e,i,r,null,o),u=0;for(a=0;a<s.length;a++)u+=s[a].weight;if(!(u<=0))for(a=0;a<h.length;a++){for(var l=Math.random()*u,c=0,d=-1,p=0;p<s.length;p++)if(l<=(c+=s[p].weight)){var f=s[p].index;d=Array.isArray(f)?f[Math.floor(Math.random()*f.length)]:f;break}h[a].index=d}}}},48117:t=>{t.exports=function(t,e,i,n){void 0===e&&(e=!0);var r=n.baseTileWidth,s=n.tilemapLayer;return s&&(void 0===i&&(i=s.scene.cameras.main),t-=s.x+i.scrollX*(1-s.scrollFactorX),r*=s.scaleX),e?Math.floor(t/r):t/r}},99566:(t,e,i)=>{var n=i(48117),r=i(70079),s=i(57148);t.exports=function(t,e,i,o,a,h){return void 0===o&&(o=new s(0,0)),o.x=n(t,i,a,h),o.y=r(e,i,a,h),o}},70079:t=>{t.exports=function(t,e,i,n){void 0===e&&(e=!0);var r=n.baseTileHeight,s=n.tilemapLayer;return s&&(void 0===i&&(i=s.scene.cameras.main),t-=s.y+i.scrollY*(1-s.scrollFactorY),r*=s.scaleY),e?Math.floor(t/r):t/r}},66894:(t,e,i)=>{t.exports={CalculateFacesAt:i(31304),CalculateFacesWithin:i(39968),Copy:i(64779),CreateFromTiles:i(42752),CullTiles:i(12567),Fill:i(88904),FilterTiles:i(65204),FindByIndex:i(87916),FindTile:i(68548),ForEachTile:i(25400),GetTileAt:i(68626),GetTileAtWorldXY:i(18177),GetTilesWithin:i(87405),GetTilesWithinShape:i(6316),GetTilesWithinWorldXY:i(6348),HasTileAt:i(2458),HasTileAtWorldXY:i(81818),IsInLayerBounds:i(66049),PutTileAt:i(54022),PutTileAtWorldXY:i(30912),PutTilesAt:i(82541),Randomize:i(82558),RemoveTileAt:i(28960),RemoveTileAtWorldXY:i(61605),RenderDebug:i(78287),ReplaceByIndex:i(13375),SetCollision:i(66244),SetCollisionBetween:i(49823),SetCollisionByExclusion:i(7836),SetCollisionByProperty:i(56705),SetCollisionFromCollisionGroup:i(4385),SetTileIndexCallback:i(71658),SetTileLocationCallback:i(25898),Shuffle:i(18113),SwapByIndex:i(28325),TileToWorldX:i(41058),TileToWorldXY:i(10777),TileToWorldY:i(76935),WeightedRandomize:i(60913),WorldToTileX:i(48117),WorldToTileXY:i(99566),WorldToTileY:i(70079)}},54805:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(99425),o=i(90554),a=i(66894),h=new n({Extends:o,Mixins:[r.Alpha,r.BlendMode,r.ComputedSize,r.Depth,r.Flip,r.GetBounds,r.Origin,r.Pipeline,r.Transform,r.Visible,r.ScrollFactor,s],initialize:function(t,e,i,n,r,s){o.call(this,t,"DynamicTilemapLayer"),this.isTilemap=!0,this.tilemap=e,this.layerIndex=i,this.layer=e.layers[i],this.layer.tilemapLayer=this,this.tileset=[],this.culledTiles=[],this.skipCull=!1,this.tilesDrawn=0,this.tilesTotal=this.layer.width*this.layer.height,this.cullPaddingX=1,this.cullPaddingY=1,this.cullCallback=a.CullTiles,this._renderOrder=0,this.gidMap=[],this.setTilesets(n),this.setAlpha(this.layer.alpha),this.setPosition(r,s),this.setOrigin(),this.setSize(e.tileWidth*this.layer.width,e.tileHeight*this.layer.height),this.initPipeline("TextureTintPipeline")},setTilesets:function(t){var e=[],i=[],n=this.tilemap;Array.isArray(t)||(t=[t]);for(var r=0;r<t.length;r++){var s=t[r];if("string"==typeof s&&(s=n.getTileset(s)),s){i.push(s);for(var o=s.firstgid,a=0;a<s.total;a++)e[o+a]=s}}this.gidMap=e,this.tileset=i},setRenderOrder:function(t){return"string"==typeof t&&(t=["right-down","left-down","right-up","left-up"].indexOf(t)),t>=0&&t<4&&(this._renderOrder=t),this},calculateFacesAt:function(t,e){return a.CalculateFacesAt(t,e,this.layer),this},calculateFacesWithin:function(t,e,i,n){return a.CalculateFacesWithin(t,e,i,n,this.layer),this},createFromTiles:function(t,e,i,n,r){return a.CreateFromTiles(t,e,i,n,r,this.layer)},cull:function(t){return this.cullCallback(this.layer,t,this.culledTiles,this._renderOrder)},copy:function(t,e,i,n,r,s,o){return a.Copy(t,e,i,n,r,s,o,this.layer),this},destroy:function(t){void 0===t&&(t=!0),this.tilemap&&(this.layer.tilemapLayer===this&&(this.layer.tilemapLayer=void 0),t&&this.tilemap.removeLayer(this),this.tilemap=void 0,this.layer=void 0,this.culledTiles.length=0,this.cullCallback=null,this.gidMap=[],this.tileset=[],o.prototype.destroy.call(this))},fill:function(t,e,i,n,r,s){return a.Fill(t,e,i,n,r,s,this.layer),this},filterTiles:function(t,e,i,n,r,s,o){return a.FilterTiles(t,e,i,n,r,s,o,this.layer)},findByIndex:function(t,e,i){return a.FindByIndex(t,e,i,this.layer)},findTile:function(t,e,i,n,r,s,o){return a.FindTile(t,e,i,n,r,s,o,this.layer)},forEachTile:function(t,e,i,n,r,s,o){return a.ForEachTile(t,e,i,n,r,s,o,this.layer),this},getTileAt:function(t,e,i){return a.GetTileAt(t,e,i,this.layer)},getTileAtWorldXY:function(t,e,i,n){return a.GetTileAtWorldXY(t,e,i,n,this.layer)},getTilesWithin:function(t,e,i,n,r){return a.GetTilesWithin(t,e,i,n,r,this.layer)},getTilesWithinShape:function(t,e,i){return a.GetTilesWithinShape(t,e,i,this.layer)},getTilesWithinWorldXY:function(t,e,i,n,r,s){return a.GetTilesWithinWorldXY(t,e,i,n,r,s,this.layer)},hasTileAt:function(t,e){return a.HasTileAt(t,e,this.layer)},hasTileAtWorldXY:function(t,e,i){return a.HasTileAtWorldXY(t,e,i,this.layer)},putTileAt:function(t,e,i,n){return a.PutTileAt(t,e,i,n,this.layer)},putTileAtWorldXY:function(t,e,i,n,r){return a.PutTileAtWorldXY(t,e,i,n,r,this.layer)},putTilesAt:function(t,e,i,n){return a.PutTilesAt(t,e,i,n,this.layer),this},randomize:function(t,e,i,n,r){return a.Randomize(t,e,i,n,r,this.layer),this},removeTileAt:function(t,e,i,n){return a.RemoveTileAt(t,e,i,n,this.layer)},removeTileAtWorldXY:function(t,e,i,n,r){return a.RemoveTileAtWorldXY(t,e,i,n,r,this.layer)},renderDebug:function(t,e){return a.RenderDebug(t,e,this.layer),this},replaceByIndex:function(t,e,i,n,r,s){return a.ReplaceByIndex(t,e,i,n,r,s,this.layer),this},setSkipCull:function(t){return void 0===t&&(t=!0),this.skipCull=t,this},setCullPadding:function(t,e){return void 0===t&&(t=1),void 0===e&&(e=1),this.cullPaddingX=t,this.cullPaddingY=e,this},setCollision:function(t,e,i,n){return a.SetCollision(t,e,i,this.layer,n),this},setCollisionBetween:function(t,e,i,n){return a.SetCollisionBetween(t,e,i,n,this.layer),this},setCollisionByProperty:function(t,e,i){return a.SetCollisionByProperty(t,e,i,this.layer),this},setCollisionByExclusion:function(t,e,i){return a.SetCollisionByExclusion(t,e,i,this.layer),this},setCollisionFromCollisionGroup:function(t,e){return a.SetCollisionFromCollisionGroup(t,e,this.layer),this},setTileIndexCallback:function(t,e,i){return a.SetTileIndexCallback(t,e,i,this.layer),this},setTileLocationCallback:function(t,e,i,n,r,s){return a.SetTileLocationCallback(t,e,i,n,r,s,this.layer),this},shuffle:function(t,e,i,n){return a.Shuffle(t,e,i,n,this.layer),this},swapByIndex:function(t,e,i,n,r,s){return a.SwapByIndex(t,e,i,n,r,s,this.layer),this},tileToWorldX:function(t,e){return a.TileToWorldX(t,e,this.layer)},tileToWorldY:function(t,e){return a.TileToWorldY(t,e,this.layer)},tileToWorldXY:function(t,e,i,n){return a.TileToWorldXY(t,e,i,n,this.layer)},weightedRandomize:function(t,e,i,n,r){return a.WeightedRandomize(t,e,i,n,r,this.layer),this},worldToTileX:function(t,e,i){return a.WorldToTileX(t,e,i,this.layer)},worldToTileY:function(t,e,i){return a.WorldToTileY(t,e,i,this.layer)},worldToTileXY:function(t,e,i,n,r){return a.WorldToTileXY(t,e,i,n,r,this.layer)}});t.exports=h},54338:t=>{t.exports=function(t,e,i,n,r){e.cull(n);var s=e.culledTiles,o=s.length;if(0!==o){var a=t._tempMatrix1,h=t._tempMatrix2,u=t._tempMatrix3;h.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),a.copyFrom(n.matrix);var l=t.currentContext,c=e.gidMap;l.save(),r?(a.multiplyWithOffset(r,-n.scrollX*e.scrollFactorX,-n.scrollY*e.scrollFactorY),h.e=e.x,h.f=e.y,a.multiply(h,u),u.copyToContext(l)):(h.e-=n.scrollX*e.scrollFactorX,h.f-=n.scrollY*e.scrollFactorY,h.copyToContext(l));var d=n.alpha*e.alpha;(!t.antialias||e.scaleX>1||e.scaleY>1)&&(l.imageSmoothingEnabled=!1);for(var p=0;p<o;p++){var f=s[p],m=c[f.index];if(m){var v=m.image.getSourceImage(),g=m.getTileTextureCoordinates(f.index);if(g){var y=f.width/2,_=f.height/2;l.save(),l.translate(f.pixelX+y,f.pixelY+_),0!==f.rotation&&l.rotate(f.rotation),(f.flipX||f.flipY)&&l.scale(f.flipX?-1:1,f.flipY?-1:1),l.globalAlpha=d*f.alpha,l.drawImage(v,g.x,g.y,f.width,f.height,-y,-_,f.width,f.height),l.restore()}}}l.restore()}}},99425:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(68047),r=i(54338),t.exports={renderWebGL:n,renderCanvas:r}},68047:(t,e,i)=>{var n=i(19298);t.exports=function(t,e,i,r){e.cull(r);var s=e.culledTiles,o=s.length,a=r.alpha*e.alpha;if(!(0===o||a<=0))for(var h=e.gidMap,u=e.pipeline,l=n.getTintAppendFloatAlphaAndSwap,c=e.scrollFactorX,d=e.scrollFactorY,p=e.x,f=e.y,m=e.scaleX,v=e.scaleY,g=e.tileset,y=0;y<g.length;y++)for(var _=g[y],x=_.glTexture,b=0;b<o;b++){var w=s[b],T=h[w.index];if(T===_){var M=T.getTileTextureCoordinates(w.index);if(null!==M){var S=w.width,E=w.height,L=M.x,A=M.y,D=.5*w.width,P=.5*w.height,C=l(w.tint,a*w.alpha);u.batchTexture(e,x,x.width,x.height,p+(D+w.pixelX)*m,f+(P+w.pixelY)*v,w.width,w.height,m,v,w.rotation,w.flipX,w.flipY,c,d,D,P,L,A,S,E,C,C,C,C,!1,0,0,r,null,!0)}}}}},81241:(t,e,i)=>{t.exports={Components:i(66894),Parsers:i(53777),Formats:i(16092),ImageCollection:i(55191),ParseToTilemap:i(64157),Tile:i(72751),Tilemap:i(38634),TilemapCreator:i(72797),TilemapFactory:i(801),Tileset:i(10929),LayerData:i(24736),MapData:i(92223),ObjectLayer:i(31460),DynamicTilemapLayer:i(54805),StaticTilemapLayer:i(41856)}},24736:(t,e,i)=>{var n=i(47379),r=i(81769),s=new n({initialize:function(t){void 0===t&&(t={}),this.name=r(t,"name","layer"),this.x=r(t,"x",0),this.y=r(t,"y",0),this.width=r(t,"width",0),this.height=r(t,"height",0),this.tileWidth=r(t,"tileWidth",0),this.tileHeight=r(t,"tileHeight",0),this.baseTileWidth=r(t,"baseTileWidth",this.tileWidth),this.baseTileHeight=r(t,"baseTileHeight",this.tileHeight),this.widthInPixels=r(t,"widthInPixels",this.width*this.baseTileWidth),this.heightInPixels=r(t,"heightInPixels",this.height*this.baseTileHeight),this.alpha=r(t,"alpha",1),this.visible=r(t,"visible",!0),this.properties=r(t,"properties",[]),this.indexes=r(t,"indexes",[]),this.collideIndexes=r(t,"collideIndexes",[]),this.callbacks=r(t,"callbacks",[]),this.bodies=r(t,"bodies",[]),this.data=r(t,"data",[]),this.tilemapLayer=r(t,"tilemapLayer",null)}});t.exports=s},92223:(t,e,i)=>{var n=i(47379),r=i(81769),s=new n({initialize:function(t){void 0===t&&(t={}),this.name=r(t,"name","map"),this.width=r(t,"width",0),this.height=r(t,"height",0),this.infinite=r(t,"infinite",!1),this.tileWidth=r(t,"tileWidth",0),this.tileHeight=r(t,"tileHeight",0),this.widthInPixels=r(t,"widthInPixels",this.width*this.tileWidth),this.heightInPixels=r(t,"heightInPixels",this.height*this.tileHeight),this.format=r(t,"format",null),this.orientation=r(t,"orientation","orthogonal"),this.renderOrder=r(t,"renderOrder","right-down"),this.version=r(t,"version","1"),this.properties=r(t,"properties",{}),this.layers=r(t,"layers",[]),this.images=r(t,"images",[]),this.objects=r(t,"objects",{}),this.collision=r(t,"collision",{}),this.tilesets=r(t,"tilesets",[]),this.imageCollections=r(t,"imageCollections",[]),this.tiles=r(t,"tiles",[])}});t.exports=s},31460:(t,e,i)=>{var n=i(47379),r=i(81769),s=new n({initialize:function(t){void 0===t&&(t={}),this.name=r(t,"name","object layer"),this.opacity=r(t,"opacity",1),this.properties=r(t,"properties",{}),this.propertyTypes=r(t,"propertytypes",{}),this.type=r(t,"type","objectgroup"),this.visible=r(t,"visible",!0),this.objects=r(t,"objects",[])}});t.exports=s},3431:(t,e,i)=>{var n=i(16092),r=i(15635),s=i(95713),o=i(38807),a=i(71351);t.exports=function(t,e,i,h,u,l){var c;switch(e){case n.ARRAY_2D:c=r(t,i,h,u,l);break;case n.CSV:c=s(t,i,h,u,l);break;case n.TILED_JSON:c=o(t,i,l);break;case n.WELTMEISTER:c=a(t,i,l);break;default:console.warn("Unrecognized tilemap data format: "+e),c=null}return c}},15635:(t,e,i)=>{var n=i(16092),r=i(24736),s=i(92223),o=i(72751);t.exports=function(t,e,i,a,h){for(var u=new r({tileWidth:i,tileHeight:a}),l=new s({name:t,tileWidth:i,tileHeight:a,format:n.ARRAY_2D,layers:[u]}),c=[],d=e.length,p=0,f=0;f<e.length;f++){c[f]=[];for(var m=e[f],v=0;v<m.length;v++){var g=parseInt(m[v],10);isNaN(g)||-1===g?c[f][v]=h?null:new o(u,-1,v,f,i,a):c[f][v]=new o(u,g,v,f,i,a)}0===p&&(p=m.length)}return l.width=u.width=p,l.height=u.height=d,l.widthInPixels=u.widthInPixels=p*i,l.heightInPixels=u.heightInPixels=d*a,u.data=c,l}},95713:(t,e,i)=>{var n=i(16092),r=i(15635);t.exports=function(t,e,i,s,o){var a=e.trim().split("\n").map((function(t){return t.split(",")})),h=r(t,a,i,s,o);return h.format=n.CSV,h}},63422:(t,e,i)=>{var n=i(24736),r=i(72751);t.exports=function(t,e){for(var i=[],s=0;s<t.layer.length;s++){for(var o=t.layer[s],a=new n({name:o.name,width:o.width,height:o.height,tileWidth:o.tilesize,tileHeight:o.tilesize,visible:1===o.visible}),h=[],u=[],l=0;l<o.data.length;l++){for(var c=0;c<o.data[l].length;c++){var d,p=o.data[l][c]-1;d=p>-1?new r(a,p,c,l,o.tilesize,o.tilesize):e?null:new r(a,-1,c,l,o.tilesize,o.tilesize),h.push(d)}u.push(h),h=[]}a.data=u,i.push(a)}return i}},40640:(t,e,i)=>{var n=i(10929);t.exports=function(t){for(var e=[],i=[],r=0;r<t.layer.length;r++){var s=t.layer[r],o=s.tilesetName;""!==o&&-1===i.indexOf(o)&&(i.push(o),e.push(new n(o,0,s.tilesize,s.tilesize,0,0)))}return e}},71351:(t,e,i)=>{var n=i(16092),r=i(92223),s=i(63422),o=i(40640);t.exports=function(t,e,i){if(0===e.layer.length)return console.warn("No layers found in the Weltmeister map: "+t),null;for(var a=0,h=0,u=0;u<e.layer.length;u++)e.layer[u].width>a&&(a=e.layer[u].width),e.layer[u].height>h&&(h=e.layer[u].height);var l=new r({width:a,height:h,name:t,tileWidth:e.layer[0].tilesize,tileHeight:e.layer[0].tilesize,format:n.WELTMEISTER});return l.layers=s(e,i),l.tilesets=o(e),l}},90298:(t,e,i)=>{t.exports={ParseTileLayers:i(63422),ParseTilesets:i(40640),ParseWeltmeister:i(71351)}},53777:(t,e,i)=>{t.exports={Parse:i(3431),Parse2DArray:i(15635),ParseCSV:i(95713),Impact:i(90298),Tiled:i(66053)}},55239:(t,e,i)=>{var n=i(80933);t.exports=function(t){for(var e,i,r,s,o,a=0;a<t.layers.length;a++){e=t.layers[a],s=null;for(var h=0;h<e.data.length;h++){o=e.data[h];for(var u=0;u<o.length;u++)null===(i=o[u])||i.index<0||(r=t.tiles[i.index][2],s=t.tilesets[r],i.width=s.tileWidth,i.height=s.tileHeight,s.tileProperties&&s.tileProperties[i.index-s.firstgid]&&(i.properties=n(i.properties,s.tileProperties[i.index-s.firstgid])))}}}},22657:t=>{t.exports=function(t){for(var e=window.atob(t),i=e.length,n=new Array(i/4),r=0;r<i;r+=4)n[r/4]=(e.charCodeAt(r)|e.charCodeAt(r+1)<<8|e.charCodeAt(r+2)<<16|e.charCodeAt(r+3)<<24)>>>0;return n}},73702:(t,e,i)=>{var n=i(10929);t.exports=function(t){var e,i,r=[];for(e=0;e<t.imageCollections.length;e++)for(var s=t.imageCollections[e],o=s.images,a=0;a<o.length;a++){var h=o[a];(i=new n(h.image,h.gid,s.imageWidth,s.imageHeight,0,0)).updateTileData(s.imageWidth,s.imageHeight),t.tilesets.push(i)}for(e=0;e<t.tilesets.length;e++)for(var u=(i=t.tilesets[e]).tileMargin,l=i.tileMargin,c=0,d=0,p=0,f=i.firstgid;f<i.firstgid+i.total&&(r[f]=[u,l,e],u+=i.tileWidth+i.tileSpacing,++c!==i.total)&&(++d!==i.columns||(u=i.tileMargin,l+=i.tileHeight+i.tileSpacing,d=0,++p!==i.rows));f++);return r}},57078:(t,e,i)=>{var n=i(81769);t.exports=function(t,e,i){if(!e)return{i:0,layers:t.layers,name:"",opacity:1,visible:!0,x:0,y:0};var r=e.x+n(e,"startx",0)*t.tilewidth+n(e,"offsetx",0),s=e.y+n(e,"starty",0)*t.tileheight+n(e,"offsety",0);return{i:0,layers:e.layers,name:i.name+e.name+"/",opacity:i.opacity*e.opacity,visible:i.visible&&e.visible,x:i.x+r,y:i.y+s}}},56485:t=>{var e=2147483648,i=1073741824,n=536870912;t.exports=function(t){var r=Boolean(t&e),s=Boolean(t&i),o=Boolean(t&n);t&=536870911;var a=0,h=!1;return r&&s&&o?(a=Math.PI/2,h=!0):r&&s&&!o?(a=Math.PI,h=!1):r&&!s&&o?(a=Math.PI/2,h=!1):!r||s||o?!r&&s&&o?(a=3*Math.PI/2,h=!1):r||!s||o?r||s||!o?r||s||o||(a=0,h=!1):(a=3*Math.PI/2,h=!0):(a=Math.PI,h=!0):(a=0,h=!0),{gid:t,flippedHorizontal:r,flippedVertical:s,flippedAntiDiagonal:o,rotation:a,flipped:h}}},49837:(t,e,i)=>{var n=i(81769),r=i(57078);t.exports=function(t){for(var e=[],i=[],s=r(t);s.i<s.layers.length||i.length>0;)if(s.i>=s.layers.length){if(i.length<1){console.warn("TilemapParser.parseTiledJSON - Invalid layer group hierarchy");break}s=i.pop()}else{var o=s.layers[s.i];if(s.i++,"imagelayer"===o.type){var a=n(o,"offsetx",0)+n(o,"startx",0),h=n(o,"offsety",0)+n(o,"starty",0);e.push({name:s.name+o.name,image:o.image,x:s.x+a+o.x,y:s.y+h+o.y,alpha:s.opacity*o.opacity,visible:s.visible&&o.visible,properties:n(o,"properties",{})})}else if("group"===o.type){var u=r(t,o,s);i.push(s),s=u}}return e}},38807:(t,e,i)=>{var n=i(16092),r=i(92223),s=i(6703),o=i(49837),a=i(75848),h=i(46417),u=i(73702),l=i(55239);t.exports=function(t,e,i){if("orthogonal"!==e.orientation)return console.warn("Only orthogonal map types are supported in this version of Phaser"),null;var c=new r({width:e.width,height:e.height,name:t,tileWidth:e.tilewidth,tileHeight:e.tileheight,orientation:e.orientation,format:n.TILED_JSON,version:e.version,properties:e.properties,renderOrder:e.renderorder,infinite:e.infinite});c.layers=s(e,i),c.images=o(e);var d=a(e);return c.tilesets=d.tilesets,c.imageCollections=d.imageCollections,c.objects=h(e),c.tiles=u(c),l(c),c}},5119:(t,e,i)=>{var n=i(49694),r=i(56485),s=function(t){return{x:t.x,y:t.y}},o=["id","name","type","rotation","properties","visible","x","y","width","height"];t.exports=function(t,e,i){void 0===e&&(e=0),void 0===i&&(i=0);var a=n(t,o);if(a.x+=e,a.y+=i,t.gid){var h=r(t.gid);a.gid=h.gid,a.flippedHorizontal=h.flippedHorizontal,a.flippedVertical=h.flippedVertical,a.flippedAntiDiagonal=h.flippedAntiDiagonal}else t.polyline?a.polyline=t.polyline.map(s):t.polygon?a.polygon=t.polygon.map(s):t.ellipse?a.ellipse=t.ellipse:t.text?a.text=t.text:t.point?a.point=!0:a.rectangle=!0;return a}},46417:(t,e,i)=>{var n=i(81769),r=i(5119),s=i(31460),o=i(57078);t.exports=function(t){for(var e=[],i=[],a=o(t);a.i<a.layers.length||i.length>0;)if(a.i>=a.layers.length){if(i.length<1){console.warn("TilemapParser.parseTiledJSON - Invalid layer group hierarchy");break}a=i.pop()}else{var h=a.layers[a.i];if(a.i++,h.opacity*=a.opacity,h.visible=a.visible&&h.visible,"objectgroup"===h.type){h.name=a.name+h.name;for(var u=a.x+n(h,"startx",0)+n(h,"offsetx",0),l=a.y+n(h,"starty",0)+n(h,"offsety",0),c=[],d=0;d<h.objects.length;d++){var p=r(h.objects[d],u,l);c.push(p)}var f=new s(h);f.objects=c,e.push(f)}else if("group"===h.type){var m=o(t,h,a);i.push(a),a=m}}return e}},6703:(t,e,i)=>{var n=i(22657),r=i(81769),s=i(24736),o=i(56485),a=i(72751),h=i(57078);t.exports=function(t,e){for(var i=r(t,"infinite",!1),u=[],l=[],c=h(t);c.i<c.layers.length||l.length>0;)if(c.i>=c.layers.length){if(l.length<1){console.warn("TilemapParser.parseTiledJSON - Invalid layer group hierarchy");break}c=l.pop()}else{var d=c.layers[c.i];if(c.i++,"tilelayer"===d.type)if(d.compression)console.warn("TilemapParser.parseTiledJSON - Layer compression is unsupported, skipping layer '"+d.name+"'");else{if(d.encoding&&"base64"===d.encoding){if(d.chunks)for(var p=0;p<d.chunks.length;p++)d.chunks[p].data=n(d.chunks[p].data);d.data&&(d.data=n(d.data)),delete d.encoding}var f,m,v,g,y=[],_=0;if(i){var x=r(d,"startx",0)+d.x,b=r(d,"starty",0)+d.y;f=new s({name:c.name+d.name,x:c.x+r(d,"offsetx",0)+x*t.tilewidth,y:c.y+r(d,"offsety",0)+b*t.tileheight,width:d.width,height:d.height,tileWidth:t.tilewidth,tileHeight:t.tileheight,alpha:c.opacity*d.opacity,visible:c.visible&&d.visible,properties:r(d,"properties",[])});for(var w=0;w<d.height;w++){y.push([null]);for(var T=0;T<d.width;T++)y[w][T]=null}for(w=0,R=d.chunks.length;w<R;w++)for(var M=d.chunks[w],S=M.x-x,E=M.y-b,L=0,A=0,D=M.data.length;A<D;A++){var P=_+S,C=L+E;(m=o(M.data[A])).gid>0?((v=new a(f,m.gid,P,C,t.tilewidth,t.tileheight)).rotation=m.rotation,v.flipX=m.flipped,y[C][P]=v):(g=e?null:new a(f,-1,P,C,t.tilewidth,t.tileheight),y[C][P]=g),++_===M.width&&(L++,_=0)}}else{f=new s({name:c.name+d.name,x:c.x+r(d,"offsetx",0)+d.x,y:c.y+r(d,"offsety",0)+d.y,width:d.width,height:d.height,tileWidth:t.tilewidth,tileHeight:t.tileheight,alpha:c.opacity*d.opacity,visible:c.visible&&d.visible,properties:r(d,"properties",[])});for(var O=[],k=0,R=d.data.length;k<R;k++)(m=o(d.data[k])).gid>0?((v=new a(f,m.gid,_,y.length,t.tilewidth,t.tileheight)).rotation=m.rotation,v.flipX=m.flipped,O.push(v)):(g=e?null:new a(f,-1,_,y.length,t.tilewidth,t.tileheight),O.push(g)),++_===d.width&&(y.push(O),_=0,O=[])}f.data=y,u.push(f)}else if("group"===d.type){var I=h(t,d,c);l.push(c),c=I}}return u}},75848:(t,e,i)=>{var n=i(10929),r=i(55191),s=i(5119);t.exports=function(t){for(var e,i=[],o=[],a=null,h=0;h<t.tilesets.length;h++){var u=t.tilesets[h];if(u.source)console.warn("Phaser can't load external tilesets. Use the Embed Tileset button and then export the map again.");else if(u.image){var l=new n(u.name,u.firstgid,u.tilewidth,u.tileheight,u.margin,u.spacing);if(t.version>1){if(Array.isArray(u.tiles)){for(var c={},d={},p=0;p<u.tiles.length;p++){var f=u.tiles[p];if(f.properties){var m={};f.properties.forEach((function(t){m[t.name]=t.value})),d[f.id]=m}if(f.objectgroup&&(c[f.id]={objectgroup:f.objectgroup},f.objectgroup.objects)){var v=f.objectgroup.objects.map((function(t){return s(t)}));c[f.id].objectgroup.objects=v}f.animation&&(c.hasOwnProperty(f.id)?c[f.id].animation=f.animation:c[f.id]={animation:f.animation})}l.tileData=c,l.tileProperties=d}}else if(u.tileproperties&&(l.tileProperties=u.tileproperties),u.tiles)for(e in l.tileData=u.tiles,l.tileData){var g=l.tileData[e].objectgroup;if(g&&g.objects){var y=g.objects.map((function(t){return s(t)}));l.tileData[e].objectgroup.objects=y}}l.updateTileData(u.imagewidth,u.imageheight),i.push(l)}else{var _=new r(u.name,u.firstgid,u.tilewidth,u.tileheight,u.margin,u.spacing,u.properties);for(e in u.tiles){var x=u.tiles[e].image,b=u.firstgid+parseInt(e,10);_.addImage(b,x)}o.push(_)}a&&(a.lastgid=u.firstgid-1),a=u}return{tilesets:i,imageCollections:o}}},66053:(t,e,i)=>{t.exports={AssignTileProperties:i(55239),Base64Decode:i(22657),BuildTilesetIndex:i(73702),ParseGID:i(56485),ParseImageLayers:i(49837),ParseJSONTiled:i(38807),ParseObject:i(5119),ParseObjectLayers:i(46417),ParseTileLayers:i(6703),ParseTilesets:i(75848)}},41856:(t,e,i)=>{var n=i(47379),r=i(23096),s=i(80827),o=i(90554),a=i(36636),h=i(66894),u=i(65492),l=i(19298),c=new n({Extends:o,Mixins:[r.Alpha,r.BlendMode,r.ComputedSize,r.Depth,r.Flip,r.GetBounds,r.Origin,r.Pipeline,r.Transform,r.Visible,r.ScrollFactor,a],initialize:function(t,e,i,n,r,a){o.call(this,t,"StaticTilemapLayer"),this.isTilemap=!0,this.tilemap=e,this.layerIndex=i,this.layer=e.layers[i],this.layer.tilemapLayer=this,this.tileset=[],this.culledTiles=[],this.skipCull=!1,this.tilesDrawn=0,this.tilesTotal=this.layer.width*this.layer.height,this.cullPaddingX=1,this.cullPaddingY=1,this.cullCallback=h.CullTiles,this.renderer=t.sys.game.renderer,this.vertexBuffer=[],this.bufferData=[],this.vertexViewF32=[],this.vertexViewU32=[],this.dirty=[],this.vertexCount=[],this._renderOrder=0,this._tempMatrix=new u,this.gidMap=[],this.setTilesets(n),this.setAlpha(this.layer.alpha),this.setPosition(r,a),this.setOrigin(),this.setSize(e.tileWidth*this.layer.width,e.tileHeight*this.layer.height),this.updateVBOData(),this.initPipeline("TextureTintPipeline"),t.sys.game.events.on(s.CONTEXT_RESTORED,(function(){this.updateVBOData()}),this)},setTilesets:function(t){var e=[],i=[],n=this.tilemap;Array.isArray(t)||(t=[t]);for(var r=0;r<t.length;r++){var s=t[r];if("string"==typeof s&&(s=n.getTileset(s)),s){i.push(s);for(var o=s.firstgid,a=0;a<s.total;a++)e[o+a]=s}}this.gidMap=e,this.tileset=i},updateVBOData:function(){for(var t=0;t<this.tileset.length;t++)this.dirty[t]=!0,this.vertexCount[t]=0,this.vertexBuffer[t]=null,this.bufferData[t]=null,this.vertexViewF32[t]=null,this.vertexViewU32[t]=null;return this},upload:function(t,e){var i=this.renderer,n=i.gl,r=i.pipelines.TextureTintPipeline;if(this.dirty[e]){var s,o,a,h=this.tileset[e],u=this.layer.width,l=this.layer.height,c=h.image.source[0].width,d=h.image.source[0].height,p=this.layer.data,f=this._renderOrder,m=h.firstgid,v=h.firstgid+h.total,g=this.vertexBuffer[e],y=this.bufferData[e],_=-1,x=u*l*r.vertexSize*6;if(this.vertexCount[e]=0,null===y&&(y=new ArrayBuffer(x),this.bufferData[e]=y,this.vertexViewF32[e]=new Float32Array(y),this.vertexViewU32[e]=new Uint32Array(y)),0===f)for(o=0;o<l;o++)for(a=0;a<u;a++)!(s=p[o][a])||s.index<m||s.index>v||!s.visible||(_=this.batchTile(_,s,h,c,d,t,e));else if(1===f)for(o=0;o<l;o++)for(a=u-1;a>=0;a--)!(s=p[o][a])||s.index<m||s.index>v||!s.visible||(_=this.batchTile(_,s,h,c,d,t,e));else if(2===f)for(o=l-1;o>=0;o--)for(a=0;a<u;a++)!(s=p[o][a])||s.index<m||s.index>v||!s.visible||(_=this.batchTile(_,s,h,c,d,t,e));else if(3===f)for(o=l-1;o>=0;o--)for(a=u-1;a>=0;a--)!(s=p[o][a])||s.index<m||s.index>v||!s.visible||(_=this.batchTile(_,s,h,c,d,t,e));this.dirty[e]=!1,null===g?(g=i.createVertexBuffer(y,n.STATIC_DRAW),this.vertexBuffer[e]=g):(i.setVertexBuffer(g),n.bufferSubData(n.ARRAY_BUFFER,0,y))}return this},batchTile:function(t,e,i,n,r,s,o){var a=i.getTileTextureCoordinates(e.index);if(!a)return t;var h=i.tileWidth,u=i.tileHeight,c=h/2,d=u/2,p=a.x/n,f=a.y/r,m=(a.x+h)/n,v=(a.y+u)/r,g=this._tempMatrix,y=-c,_=-d;e.flipX&&(h*=-1,y+=i.tileWidth),e.flipY&&(u*=-1,_+=i.tileHeight);var x=y+h,b=_+u;g.applyITRS(c+e.pixelX,d+e.pixelY,e.rotation,1,1);var w=l.getTintAppendFloatAlpha(16777215,s.alpha*this.alpha*e.alpha),T=g.getX(y,_),M=g.getY(y,_),S=g.getX(y,b),E=g.getY(y,b),L=g.getX(x,b),A=g.getY(x,b),D=g.getX(x,_),P=g.getY(x,_);s.roundPixels&&(T=Math.round(T),M=Math.round(M),S=Math.round(S),E=Math.round(E),L=Math.round(L),A=Math.round(A),D=Math.round(D),P=Math.round(P));var C=this.vertexViewF32[o],O=this.vertexViewU32[o];return C[++t]=T,C[++t]=M,C[++t]=p,C[++t]=f,C[++t]=0,O[++t]=w,C[++t]=S,C[++t]=E,C[++t]=p,C[++t]=v,C[++t]=0,O[++t]=w,C[++t]=L,C[++t]=A,C[++t]=m,C[++t]=v,C[++t]=0,O[++t]=w,C[++t]=T,C[++t]=M,C[++t]=p,C[++t]=f,C[++t]=0,O[++t]=w,C[++t]=L,C[++t]=A,C[++t]=m,C[++t]=v,C[++t]=0,O[++t]=w,C[++t]=D,C[++t]=P,C[++t]=m,C[++t]=f,C[++t]=0,O[++t]=w,this.vertexCount[o]+=6,t},setRenderOrder:function(t){if("string"==typeof t&&(t=["right-down","left-down","right-up","left-up"].indexOf(t)),t>=0&&t<4){this._renderOrder=t;for(var e=0;e<this.tileset.length;e++)this.dirty[e]=!0}return this},calculateFacesAt:function(t,e){return h.CalculateFacesAt(t,e,this.layer),this},calculateFacesWithin:function(t,e,i,n){return h.CalculateFacesWithin(t,e,i,n,this.layer),this},createFromTiles:function(t,e,i,n,r){return h.CreateFromTiles(t,e,i,n,r,this.layer)},cull:function(t){return this.cullCallback(this.layer,t,this.culledTiles)},setSkipCull:function(t){return void 0===t&&(t=!0),this.skipCull=t,this},setCullPadding:function(t,e){return void 0===t&&(t=1),void 0===e&&(e=1),this.cullPaddingX=t,this.cullPaddingY=e,this},findByIndex:function(t,e,i){return h.FindByIndex(t,e,i,this.layer)},findTile:function(t,e,i,n,r,s,o){return h.FindTile(t,e,i,n,r,s,o,this.layer)},filterTiles:function(t,e,i,n,r,s,o){return h.FilterTiles(t,e,i,n,r,s,o,this.layer)},forEachTile:function(t,e,i,n,r,s,o){return h.ForEachTile(t,e,i,n,r,s,o,this.layer),this},getTileAt:function(t,e,i){return h.GetTileAt(t,e,i,this.layer)},getTileAtWorldXY:function(t,e,i,n){return h.GetTileAtWorldXY(t,e,i,n,this.layer)},getTilesWithin:function(t,e,i,n,r){return h.GetTilesWithin(t,e,i,n,r,this.layer)},getTilesWithinWorldXY:function(t,e,i,n,r,s){return h.GetTilesWithinWorldXY(t,e,i,n,r,s,this.layer)},getTilesWithinShape:function(t,e,i){return h.GetTilesWithinShape(t,e,i,this.layer)},hasTileAt:function(t,e){return h.HasTileAt(t,e,this.layer)},hasTileAtWorldXY:function(t,e,i){return h.HasTileAtWorldXY(t,e,i,this.layer)},renderDebug:function(t,e){return h.RenderDebug(t,e,this.layer),this},setCollision:function(t,e,i,n){return h.SetCollision(t,e,i,this.layer,n),this},setCollisionBetween:function(t,e,i,n){return h.SetCollisionBetween(t,e,i,n,this.layer),this},setCollisionByProperty:function(t,e,i){return h.SetCollisionByProperty(t,e,i,this.layer),this},setCollisionByExclusion:function(t,e,i){return h.SetCollisionByExclusion(t,e,i,this.layer),this},setTileIndexCallback:function(t,e,i){return h.SetTileIndexCallback(t,e,i,this.layer),this},setCollisionFromCollisionGroup:function(t,e){return h.SetCollisionFromCollisionGroup(t,e,this.layer),this},setTileLocationCallback:function(t,e,i,n,r,s){return h.SetTileLocationCallback(t,e,i,n,r,s,this.layer),this},tileToWorldX:function(t,e){return h.TileToWorldX(t,e,this.layer)},tileToWorldY:function(t,e){return h.TileToWorldY(t,e,this.layer)},tileToWorldXY:function(t,e,i,n){return h.TileToWorldXY(t,e,i,n,this.layer)},worldToTileX:function(t,e,i){return h.WorldToTileX(t,e,i,this.layer)},worldToTileY:function(t,e,i){return h.WorldToTileY(t,e,i,this.layer)},worldToTileXY:function(t,e,i,n,r){return h.WorldToTileXY(t,e,i,n,r,this.layer)},destroy:function(t){if(void 0===t&&(t=!0),this.tilemap){this.layer.tilemapLayer===this&&(this.layer.tilemapLayer=void 0),t&&this.tilemap.removeLayer(this),this.tilemap=void 0,this.layer=void 0,this.culledTiles.length=0,this.cullCallback=null;for(var e=0;e<this.tileset.length;e++)this.dirty[e]=!0,this.vertexCount[e]=0,this.vertexBuffer[e]=null,this.bufferData[e]=null,this.vertexViewF32[e]=null,this.vertexViewU32[e]=null;this.gidMap=[],this.tileset=[],o.prototype.destroy.call(this)}}});t.exports=c},50491:t=>{t.exports=function(t,e,i,n,r){e.cull(n);var s=e.culledTiles,o=s.length;if(0!==o){var a=t._tempMatrix1,h=t._tempMatrix2,u=t._tempMatrix3;h.applyITRS(e.x,e.y,e.rotation,e.scaleX,e.scaleY),a.copyFrom(n.matrix);var l=t.currentContext,c=e.gidMap;l.save(),r?(a.multiplyWithOffset(r,-n.scrollX*e.scrollFactorX,-n.scrollY*e.scrollFactorY),h.e=e.x,h.f=e.y,a.multiply(h,u),u.copyToContext(l)):(h.e-=n.scrollX*e.scrollFactorX,h.f-=n.scrollY*e.scrollFactorY,h.copyToContext(l));var d=n.alpha*e.alpha;(!t.antialias||e.scaleX>1||e.scaleY>1)&&(l.imageSmoothingEnabled=!1);for(var p=0;p<o;p++){var f=s[p],m=c[f.index];if(m){var v=m.image.getSourceImage(),g=m.getTileTextureCoordinates(f.index);if(g){var y=m.tileWidth,_=m.tileHeight,x=y/2,b=_/2;l.save(),l.translate(f.pixelX+x,f.pixelY+b),0!==f.rotation&&l.rotate(f.rotation),(f.flipX||f.flipY)&&l.scale(f.flipX?-1:1,f.flipY?-1:1),l.globalAlpha=d*f.alpha,l.drawImage(v,g.x,g.y,y,_,-x,-b,y,_),l.restore()}}}l.restore()}}},36636:(t,e,i)=>{var n=i(49035),r=i(49035);n=i(42402),r=i(50491),t.exports={renderWebGL:n,renderCanvas:r}},42402:t=>{t.exports=function(t,e,i,n){var r=e.tileset,s=e.pipeline,o=s.vertexBuffer;t.setPipeline(s),s.modelIdentity(),s.modelTranslate(e.x-n.scrollX*e.scrollFactorX,e.y-n.scrollY*e.scrollFactorY,0),s.modelScale(e.scaleX,e.scaleY,1),s.viewLoad2D(n.matrix.matrix);for(var a=0;a<r.length;a++)e.upload(n,a),e.vertexCount[a]>0&&(t.currentPipeline&&t.currentPipeline.vertexCount>0&&t.flush(),s.vertexBuffer=e.vertexBuffer[a],t.setPipeline(s),t.setTexture2D(r[a].glTexture,0),t.gl.drawArrays(s.topology,0,e.vertexCount[a]));s.vertexBuffer=o,s.viewIdentity(),s.modelIdentity()}},75588:(t,e,i)=>{var n=i(47379),r=i(50354),s=i(88637),o=i(27826),a=new n({initialize:function(t){this.scene=t,this.systems=t.sys,this.now=0,this.timeScale=1,this.paused=!1,this._active=[],this._pendingInsertion=[],this._pendingRemoval=[],t.sys.events.once(s.BOOT,this.boot,this),t.sys.events.on(s.START,this.start,this)},boot:function(){this.now=this.systems.game.loop.time,this.systems.events.once(s.DESTROY,this.destroy,this)},start:function(){var t=this.systems.events;t.on(s.PRE_UPDATE,this.preUpdate,this),t.on(s.UPDATE,this.update,this),t.once(s.SHUTDOWN,this.shutdown,this)},addEvent:function(t){var e=new o(t);return this._pendingInsertion.push(e),e},delayedCall:function(t,e,i,n){return this.addEvent({delay:t,callback:e,args:i,callbackScope:n})},clearPendingEvents:function(){return this._pendingInsertion=[],this},removeAllEvents:function(){return this._pendingRemoval=this._pendingRemoval.concat(this._active),this},preUpdate:function(){var t=this._pendingRemoval.length,e=this._pendingInsertion.length;if(0!==t||0!==e){var i,n;for(i=0;i<t;i++){n=this._pendingRemoval[i];var r=this._active.indexOf(n);r>-1&&this._active.splice(r,1),n.destroy()}for(i=0;i<e;i++)n=this._pendingInsertion[i],this._active.push(n);this._pendingRemoval.length=0,this._pendingInsertion.length=0}},update:function(t,e){if(this.now=t,!this.paused){e*=this.timeScale;for(var i=0;i<this._active.length;i++){var n=this._active[i];if(!n.paused&&(n.elapsed+=e*n.timeScale,n.elapsed>=n.delay)){var r=n.elapsed-n.delay;n.elapsed=n.delay,!n.hasDispatched&&n.callback&&(n.hasDispatched=!0,n.callback.apply(n.callbackScope,n.args)),n.repeatCount>0?(n.repeatCount--,n.elapsed=r,n.hasDispatched=!1):this._pendingRemoval.push(n)}}}},shutdown:function(){var t;for(t=0;t<this._pendingInsertion.length;t++)this._pendingInsertion[t].destroy();for(t=0;t<this._active.length;t++)this._active[t].destroy();for(t=0;t<this._pendingRemoval.length;t++)this._pendingRemoval[t].destroy();this._active.length=0,this._pendingRemoval.length=0,this._pendingInsertion.length=0;var e=this.systems.events;e.off(s.PRE_UPDATE,this.preUpdate,this),e.off(s.UPDATE,this.update,this),e.off(s.SHUTDOWN,this.shutdown,this)},destroy:function(){this.shutdown(),this.scene.sys.events.off(s.START,this.start,this),this.scene=null,this.systems=null}});r.register("Clock",a,"time"),t.exports=a},27826:(t,e,i)=>{var n=i(47379),r=i(81769),s=new n({initialize:function(t){this.delay=0,this.repeat=0,this.repeatCount=0,this.loop=!1,this.callback,this.callbackScope,this.args,this.timeScale=1,this.startAt=0,this.elapsed=0,this.paused=!1,this.hasDispatched=!1,this.reset(t)},reset:function(t){return this.delay=r(t,"delay",0),this.repeat=r(t,"repeat",0),this.loop=r(t,"loop",!1),this.callback=r(t,"callback",void 0),this.callbackScope=r(t,"callbackScope",this.callback),this.args=r(t,"args",[]),this.timeScale=r(t,"timeScale",1),this.startAt=r(t,"startAt",0),this.paused=r(t,"paused",!1),this.elapsed=this.startAt,this.hasDispatched=!1,this.repeatCount=-1===this.repeat||this.loop?999999999999:this.repeat,this},getProgress:function(){return this.elapsed/this.delay},getOverallProgress:function(){if(this.repeat>0){var t=this.delay+this.delay*this.repeat;return(this.elapsed+this.delay*(this.repeat-this.repeatCount))/t}return this.getProgress()},getRepeatCount:function(){return this.repeatCount},getElapsed:function(){return this.elapsed},getElapsedSeconds:function(){return.001*this.elapsed},remove:function(t){void 0===t&&(t=!1),this.elapsed=this.delay,this.hasDispatched=!t,this.repeatCount=0},destroy:function(){this.callback=void 0,this.callbackScope=void 0,this.args=[]}});t.exports=s},46547:(t,e,i)=>{t.exports={Clock:i(75588),TimerEvent:i(27826)}},11913:(t,e,i)=>{var n=i(47379),r=i(17168),s=i(91209),o=i(7480),a=i(3926),h=new n({Extends:r,initialize:function(t){r.call(this),this.manager=t,this.isTimeline=!0,this.data=[],this.totalData=0,this.useFrames=!1,this.timeScale=1,this.loop=0,this.loopDelay=0,this.loopCounter=0,this.completeDelay=0,this.countdown=0,this.state=a.PENDING_ADD,this._pausedState=a.PENDING_ADD,this.paused=!1,this.elapsed=0,this.totalElapsed=0,this.duration=0,this.progress=0,this.totalDuration=0,this.totalProgress=0,this.callbacks={onComplete:null,onLoop:null,onStart:null,onUpdate:null,onYoyo:null},this.callbackScope},dispatchTimelineEvent:function(t,e){this.emit(t,this),e&&e.func.apply(e.scope,e.params)},setTimeScale:function(t){return this.timeScale=t,this},getTimeScale:function(){return this.timeScale},isPlaying:function(){return this.state===a.ACTIVE},add:function(t){return this.queue(o(this,t))},queue:function(t){return this.isPlaying()||(t.parent=this,t.parentIsTimeline=!0,this.data.push(t),this.totalData=this.data.length),this},hasOffset:function(t){return null!==t.offset},isOffsetAbsolute:function(t){return"number"==typeof t},isOffsetRelative:function(t){if("string"===typeof t){var e=t[0];if("-"===e||"+"===e)return!0}return!1},getRelativeOffset:function(t,e){var i=t[0],n=parseFloat(t.substr(2)),r=e;switch(i){case"+":r+=n;break;case"-":r-=n}return Math.max(0,r)},calcDuration:function(){for(var t=0,e=0,i=0,n=0;n<this.totalData;n++){var r=this.data[n];r.init(),this.hasOffset(r)?this.isOffsetAbsolute(r.offset)?(r.calculatedOffset=r.offset,0===r.offset&&(i=0)):this.isOffsetRelative(r.offset)&&(r.calculatedOffset=this.getRelativeOffset(r.offset,t)):r.calculatedOffset=i,t=r.totalDuration+r.calculatedOffset,e+=r.totalDuration,i+=r.totalDuration}this.duration=e,this.loopCounter=-1===this.loop?999999999999:this.loop,this.loopCounter>0?this.totalDuration=this.duration+this.completeDelay+(this.duration+this.loopDelay)*this.loopCounter:this.totalDuration=this.duration+this.completeDelay},init:function(){return this.calcDuration(),this.progress=0,this.totalProgress=0,!this.paused||(this.state=a.PAUSED,!1)},resetTweens:function(t){for(var e=0;e<this.totalData;e++){this.data[e].play(t)}},setCallback:function(t,e,i,n){return-1!==h.TYPES.indexOf(t)&&(this.callbacks[t]={func:e,scope:n,params:i}),this},makeActive:function(t){return this.manager.makeActive(t)},play:function(){if(this.state!==a.ACTIVE){if(this.paused)return this.paused=!1,void this.manager.makeActive(this);this.resetTweens(!1),this.state=a.ACTIVE,this.dispatchTimelineEvent(s.TIMELINE_START,this.callbacks.onStart)}},nextState:function(){this.loopCounter>0?(this.elapsed=0,this.progress=0,this.loopCounter--,this.resetTweens(!0),this.loopDelay>0?(this.countdown=this.loopDelay,this.state=a.LOOP_DELAY):(this.state=a.ACTIVE,this.dispatchTimelineEvent(s.TIMELINE_LOOP,this.callbacks.onLoop))):this.completeDelay>0?(this.state=a.COMPLETE_DELAY,this.countdown=this.completeDelay):(this.state=a.PENDING_REMOVE,this.dispatchTimelineEvent(s.TIMELINE_COMPLETE,this.callbacks.onComplete))},update:function(t,e){if(this.state!==a.PAUSED){switch(this.useFrames&&(e=1*this.manager.timeScale),e*=this.timeScale,this.elapsed+=e,this.progress=Math.min(this.elapsed/this.duration,1),this.totalElapsed+=e,this.totalProgress=Math.min(this.totalElapsed/this.totalDuration,1),this.state){case a.ACTIVE:for(var i=this.totalData,n=0;n<this.totalData;n++){this.data[n].update(t,e)&&i--}this.dispatchTimelineEvent(s.TIMELINE_UPDATE,this.callbacks.onUpdate),0===i&&this.nextState();break;case a.LOOP_DELAY:this.countdown-=e,this.countdown<=0&&(this.state=a.ACTIVE,this.dispatchTimelineEvent(s.TIMELINE_LOOP,this.callbacks.onLoop));break;case a.COMPLETE_DELAY:this.countdown-=e,this.countdown<=0&&(this.state=a.PENDING_REMOVE,this.dispatchTimelineEvent(s.TIMELINE_COMPLETE,this.callbacks.onComplete))}return this.state===a.PENDING_REMOVE}},stop:function(){this.state=a.PENDING_REMOVE},pause:function(){if(this.state!==a.PAUSED)return this.paused=!0,this._pausedState=this.state,this.state=a.PAUSED,this.emit(s.TIMELINE_PAUSE,this),this},resume:function(){return this.state===a.PAUSED&&(this.paused=!1,this.state=this._pausedState,this.emit(s.TIMELINE_RESUME,this)),this},hasTarget:function(t){for(var e=0;e<this.data.length;e++)if(this.data[e].hasTarget(t))return!0;return!1},destroy:function(){for(var t=0;t<this.data.length;t++)this.data[t].stop()}});h.TYPES=["onStart","onUpdate","onLoop","onComplete","onYoyo"],t.exports=h},57294:(t,e,i)=>{var n=i(60625),r=i(47379),s=i(53063),o=i(50354),a=i(88637),h=i(34906),u=i(61690),l=i(3926),c=i(7480),d=new r({initialize:function(t){this.scene=t,this.systems=t.sys,this.timeScale=1,this._add=[],this._pending=[],this._active=[],this._destroy=[],this._toProcess=0,t.sys.events.once(a.BOOT,this.boot,this),t.sys.events.on(a.START,this.start,this)},boot:function(){this.systems.events.once(a.DESTROY,this.destroy,this)},start:function(){var t=this.systems.events;t.on(a.PRE_UPDATE,this.preUpdate,this),t.on(a.UPDATE,this.update,this),t.once(a.SHUTDOWN,this.shutdown,this),this.timeScale=1},createTimeline:function(t){return u(this,t)},timeline:function(t){var e=u(this,t);return e.paused||(this._add.push(e),this._toProcess++),e},create:function(t){return c(this,t)},add:function(t){var e=c(this,t);return this._add.push(e),this._toProcess++,e},existing:function(t){return this._add.push(t),this._toProcess++,this},addCounter:function(t){var e=s(this,t);return this._add.push(e),this._toProcess++,e},stagger:function(t,e){return h(t,e)},preUpdate:function(){if(0!==this._toProcess){var t,e,i=this._destroy,n=this._active,r=this._pending;for(t=0;t<i.length;t++){e=i[t];var s=n.indexOf(e);-1===s?(s=r.indexOf(e))>-1&&(e.state=l.REMOVED,r.splice(s,1)):(e.state=l.REMOVED,n.splice(s,1))}for(i.length=0,i=this._add,t=0;t<i.length;t++)(e=i[t]).state===l.PENDING_ADD&&(e.init()?(e.play(),this._active.push(e)):this._pending.push(e));i.length=0,this._toProcess=0}},update:function(t,e){var i,n=this._active;e*=this.timeScale;for(var r=0;r<n.length;r++)(i=n[r]).update(t,e)&&(this._destroy.push(i),this._toProcess++)},remove:function(t){return n(this._add,t),n(this._pending,t),n(this._active,t),n(this._destroy,t),t.state=l.REMOVED,this},makeActive:function(t){if(-1!==this._add.indexOf(t)||-1!==this._active.indexOf(t))return this;var e=this._pending.indexOf(t);return-1!==e&&this._pending.splice(e,1),this._add.push(t),t.state=l.PENDING_ADD,this._toProcess++,this},each:function(t,e){for(var i=[null],n=1;n<arguments.length;n++)i.push(arguments[n]);for(var r in this.list)i[0]=this.list[r],t.apply(e,i)},getAllTweens:function(){for(var t=this._active,e=[],i=0;i<t.length;i++)e.push(t[i]);return e},getGlobalTimeScale:function(){return this.timeScale},getTweensOf:function(t){var e,i,n=this._active,r=[];if(Array.isArray(t))for(i=0;i<n.length;i++){e=n[i];for(var s=0;s<t.length;s++)e.hasTarget(t[s])&&r.push(e)}else for(i=0;i<n.length;i++)(e=n[i]).hasTarget(t)&&r.push(e);return r},isTweening:function(t){for(var e,i=this._active,n=0;n<i.length;n++)if((e=i[n]).hasTarget(t)&&e.isPlaying())return!0;return!1},killAll:function(){for(var t=this.getAllTweens(),e=0;e<t.length;e++)t[e].stop();return this},killTweensOf:function(t){for(var e=this.getTweensOf(t),i=0;i<e.length;i++)e[i].stop();return this},pauseAll:function(){for(var t=this._active,e=0;e<t.length;e++)t[e].pause();return this},resumeAll:function(){for(var t=this._active,e=0;e<t.length;e++)t[e].resume();return this},setGlobalTimeScale:function(t){return this.timeScale=t,this},shutdown:function(){this.killAll(),this._add=[],this._pending=[],this._active=[],this._destroy=[],this._toProcess=0;var t=this.systems.events;t.off(a.PRE_UPDATE,this.preUpdate,this),t.off(a.UPDATE,this.update,this),t.off(a.SHUTDOWN,this.shutdown,this)},destroy:function(){this.shutdown(),this.scene.sys.events.off(a.START,this.start,this),this.scene=null,this.systems=null}});o.register("TweenManager",d,"tweens"),t.exports=d},32336:t=>{t.exports=function(t,e,i){return t&&t.hasOwnProperty(e)?t[e]:i}},38852:(t,e,i)=>{var n=i(21623),r=i(93225);t.exports=function(t,e){var i=n.Power0;if("string"==typeof t)if(n.hasOwnProperty(t))i=n[t];else{var s="";t.indexOf(".")&&("in"===(s=t.substr(t.indexOf(".")+1)).toLowerCase()?s="easeIn":"out"===s.toLowerCase()?s="easeOut":"inout"===s.toLowerCase()&&(s="easeInOut")),t=r(t.substr(0,t.indexOf(".")+1)+s),n.hasOwnProperty(t)&&(i=n[t])}else"function"==typeof t?i=t:Array.isArray(t)&&t.length;if(!e)return i;var o=e.slice(0);return o.unshift(0),function(t){return o[0]=t,i.apply(this,o)}}},57777:t=>{t.exports=function(t,e,i){var n;t.hasOwnProperty(e)?n="function"===typeof t[e]?function(i,n,r,s,o,a){return t[e](i,n,r,s,o,a)}:function(){return t[e]}:n="function"==typeof i?i:function(){return i};return n}},57373:(t,e,i)=>{var n=i(36084);t.exports=function(t){var e,i=[];if(t.hasOwnProperty("props"))for(e in t.props)"_"!==e.substr(0,1)&&i.push({key:e,value:t.props[e]});else for(e in t)-1===n.indexOf(e)&&"_"!==e.substr(0,1)&&i.push({key:e,value:t[e]});return i}},64699:(t,e,i)=>{var n=i(86652);t.exports=function(t){var e=n(t,"targets",null);return null===e||("function"==typeof e&&(e=e.call()),Array.isArray(e)||(e=[e])),e}},99744:(t,e,i)=>{var n=i(86652);t.exports=function(t){var e=n(t,"tweens",null);return null===e?[]:("function"==typeof e&&(e=e.call()),Array.isArray(e)||(e=[e]),e)}},96910:t=>{function e(t){return!!t.getActive&&"function"==typeof t.getActive}function i(t){return!!t.getStart&&"function"==typeof t.getStart}function n(t){return!!t.getEnd&&"function"==typeof t.getEnd}var r=function(t,s){var o,a,h=function(t,e,i){return i},u=function(t,e,i){return i},l=null,c=typeof s;if("number"===c)h=function(){return s};else if("string"===c){var d=s[0],p=parseFloat(s.substr(2));switch(d){case"+":h=function(t,e,i){return i+p};break;case"-":h=function(t,e,i){return i-p};break;case"*":h=function(t,e,i){return i*p};break;case"/":h=function(t,e,i){return i/p};break;default:h=function(){return parseFloat(s)}}}else if("function"===c)h=s;else if("object"===c)if(i(a=s)||n(a)||e(a))e(s)&&(l=s.getActive),n(s)&&(h=s.getEnd),i(s)&&(u=s.getStart);else if(s.hasOwnProperty("value"))o=r(t,s.value);else{var f=s.hasOwnProperty("to"),m=s.hasOwnProperty("from"),v=s.hasOwnProperty("start");if(f&&(m||v)){if(o=r(t,s.to),v){var g=r(t,s.start);o.getActive=g.getEnd}if(m){var y=r(t,s.from);o.getStart=y.getEnd}}}return o||(o={getActive:l,getEnd:h,getStart:u}),o};t.exports=r},53063:(t,e,i)=>{var n=i(21635),r=i(57687),s=i(32336),o=i(38852),a=i(57777),h=i(86652),u=i(96910),l=i(68323),c=i(72721);t.exports=function(t,e,i){void 0===i&&(i=n);var d=h(e,"from",0),p=h(e,"to",1),f=[{value:d}],m=a(e,"delay",i.delay),v=a(e,"duration",i.duration),g=h(e,"easeParams",i.easeParams),y=o(h(e,"ease",i.ease),g),_=a(e,"hold",i.hold),x=a(e,"repeat",i.repeat),b=a(e,"repeatDelay",i.repeatDelay),w=s(e,"yoyo",i.yoyo),T=[],M=u("value",p),S=c(f[0],0,"value",M.getEnd,M.getStart,M.getActive,y,m,v,w,_,x,b,!1,!1);S.start=d,S.current=d,S.to=p,T.push(S);var E=new l(t,T,f);E.offset=r(e,"offset",null),E.completeDelay=r(e,"completeDelay",0),E.loop=Math.round(r(e,"loop",0)),E.loopDelay=Math.round(r(e,"loopDelay",0)),E.paused=s(e,"paused",!1),E.useFrames=s(e,"useFrames",!1);for(var L=h(e,"callbackScope",E),A=[E,null],D=l.TYPES,P=0;P<D.length;P++){var C=D[P],O=h(e,C,!1);if(O){var k=h(e,C+"Scope",L),R=h(e,C+"Params",[]);E.setCallback(C,O,A.concat(R),k)}}return E}},34906:(t,e,i)=>{var n=i(38852),r=i(86652),s=i(14302);t.exports=function(t,e){void 0===e&&(e={});var i=r(e,"start",0),o=r(e,"ease",null),a=r(e,"grid",null),h=r(e,"from",0),u="first"===h,l="center"===h,c="last"===h,d="number"==typeof h,p=Array.isArray(t),f=p?parseFloat(t[0]):parseFloat(t),m=p?parseFloat(t[1]):0,v=Math.max(f,m);if(p&&(i+=f),a){var g=a[0],y=a[1],_=0,x=0,b=0,w=0,T=[];c?(_=g-1,x=y-1):d?(_=h%g,x=Math.floor(h/g)):l&&(_=(g-1)/2,x=(y-1)/2);for(var M=s.MIN_SAFE_INTEGER,S=0;S<y;S++){T[S]=[];for(var E=0;E<g;E++){b=_-E,w=x-S;var L=Math.sqrt(b*b+w*w);L>M&&(M=L),T[S][E]=L}}}var A=o?n(o):null;return a?function(t,e,n,r){var s,o=0,a=r%g,h=Math.floor(r/g);if(a>=0&&a<g&&h>=0&&h<y&&(o=T[h][a]),p){var u=m-f;s=A?o/M*u*A(o/M):o/M*u}else s=A?o*f*A(o/M):o*f;return s+i}:function(t,e,n,r,s){var o,a,g;(s--,u?o=r:l?o=Math.abs(s/2-r):c?o=s-r:d&&(o=Math.abs(h-r)),p)?(g=l?(m-f)/s*(2*o):(m-f)/s*o,a=A?g*A(o/s):g):a=A?s*v*A(o/s):o*f;return a+i}}},61690:(t,e,i)=>{var n=i(18438),r=i(21635),s=i(57687),o=i(32336),a=i(38852),h=i(57777),u=i(64699),l=i(99744),c=i(86652),d=i(11913),p=i(7480);t.exports=function(t,e){var i=new d(t),f=l(e);if(0===f.length)return i.paused=!0,i;var m=n(r);m.targets=u(e);var v=s(e,"totalDuration",0);m.duration=v>0?Math.floor(v/f.length):h(e,"duration",m.duration),m.delay=h(e,"delay",m.delay),m.easeParams=c(e,"easeParams",m.easeParams),m.ease=a(c(e,"ease",m.ease),m.easeParams),m.hold=h(e,"hold",m.hold),m.repeat=h(e,"repeat",m.repeat),m.repeatDelay=h(e,"repeatDelay",m.repeatDelay),m.yoyo=o(e,"yoyo",m.yoyo),m.flipX=o(e,"flipX",m.flipX),m.flipY=o(e,"flipY",m.flipY);for(var g=0;g<f.length;g++)i.queue(p(i,f[g],m));i.completeDelay=s(e,"completeDelay",0),i.loop=Math.round(s(e,"loop",0)),i.loopDelay=Math.round(s(e,"loopDelay",0)),i.paused=o(e,"paused",!1),i.useFrames=o(e,"useFrames",!1);var y=c(e,"callbackScope",i),_=[i],x=c(e,"onStart",!1);if(x){var b=c(e,"onStartScope",y),w=c(e,"onStartParams",[]);i.setCallback("onStart",x,_.concat(w),b)}var T=c(e,"onUpdate",!1);if(T){var M=c(e,"onUpdateScope",y),S=c(e,"onUpdateParams",[]);i.setCallback("onUpdate",T,_.concat(S),M)}var E=c(e,"onLoop",!1);if(E){var L=c(e,"onLoopScope",y),A=c(e,"onLoopParams",[]);i.setCallback("onLoop",E,_.concat(A),L)}var D=c(e,"onYoyo",!1);if(D){var P=c(e,"onYoyoScope",y),C=c(e,"onYoyoParams",[]);i.setCallback("onYoyo",D,_.concat(null,C),P)}var O=c(e,"onComplete",!1);if(O){var k=c(e,"onCompleteScope",y),R=c(e,"onCompleteParams",[]);i.setCallback("onComplete",O,_.concat(R),k)}return i}},7480:(t,e,i)=>{var n=i(21635),r=i(57687),s=i(32336),o=i(38852),a=i(57777),h=i(57373),u=i(64699),l=i(86652),c=i(96910),d=i(68323),p=i(72721);t.exports=function(t,e,i){void 0===i&&(i=n);for(var f=i.targets?i.targets:u(e),m=h(e),v=a(e,"delay",i.delay),g=a(e,"duration",i.duration),y=l(e,"easeParams",i.easeParams),_=o(l(e,"ease",i.ease),y),x=a(e,"hold",i.hold),b=a(e,"repeat",i.repeat),w=a(e,"repeatDelay",i.repeatDelay),T=s(e,"yoyo",i.yoyo),M=s(e,"flipX",i.flipX),S=s(e,"flipY",i.flipY),E=[],L=0;L<m.length;L++)for(var A=m[L].key,D=m[L].value,P=0;P<f.length;P++){var C=c(A,D),O=p(f[P],P,A,C.getEnd,C.getStart,C.getActive,o(l(D,"ease",_),y),a(D,"delay",v),a(D,"duration",g),s(D,"yoyo",T),a(D,"hold",x),a(D,"repeat",b),a(D,"repeatDelay",w),s(D,"flipX",M),s(D,"flipY",S));E.push(O)}var k=new d(t,E,f);k.offset=r(e,"offset",null),k.completeDelay=r(e,"completeDelay",0),k.loop=Math.round(r(e,"loop",0)),k.loopDelay=Math.round(r(e,"loopDelay",0)),k.paused=s(e,"paused",!1),k.useFrames=s(e,"useFrames",!1);for(var R=l(e,"callbackScope",k),I=[k,null],Y=d.TYPES,F=0;F<Y.length;F++){var N=Y[F],B=l(e,N,!1);if(B){var U=l(e,N+"Scope",R),j=l(e,N+"Params",[]);k.setCallback(N,B,I.concat(j),U)}}return k}},77626:(t,e,i)=>{t.exports={GetBoolean:i(32336),GetEaseFunction:i(38852),GetNewValue:i(57777),GetProps:i(57373),GetTargets:i(64699),GetTweens:i(99744),GetValueOp:i(96910),NumberTweenBuilder:i(53063),StaggerBuilder:i(34906),TimelineBuilder:i(61690),TweenBuilder:i(7480)}},50711:t=>{t.exports="complete"},63802:t=>{t.exports="loop"},99942:t=>{t.exports="pause"},40742:t=>{t.exports="resume"},15038:t=>{t.exports="start"},85015:t=>{t.exports="update"},56788:t=>{t.exports="active"},54461:t=>{t.exports="complete"},10004:t=>{t.exports="loop"},64121:t=>{t.exports="repeat"},51680:t=>{t.exports="start"},76568:t=>{t.exports="update"},55204:t=>{t.exports="yoyo"},91209:(t,e,i)=>{t.exports={TIMELINE_COMPLETE:i(50711),TIMELINE_LOOP:i(63802),TIMELINE_PAUSE:i(99942),TIMELINE_RESUME:i(40742),TIMELINE_START:i(15038),TIMELINE_UPDATE:i(85015),TWEEN_ACTIVE:i(56788),TWEEN_COMPLETE:i(54461),TWEEN_LOOP:i(10004),TWEEN_REPEAT:i(64121),TWEEN_START:i(51680),TWEEN_UPDATE:i(76568),TWEEN_YOYO:i(55204)}},93226:(t,e,i)=>{var n=i(3926),r=i(80933),s={Builders:i(77626),Events:i(91209),TweenManager:i(57294),Tween:i(68323),TweenData:i(72721),Timeline:i(11913)};s=r(!1,s,n),t.exports=s},21635:t=>{t.exports={targets:null,delay:0,duration:1e3,ease:"Power0",easeParams:null,hold:0,repeat:0,repeatDelay:0,yoyo:!1,flipX:!1,flipY:!1}},36084:t=>{t.exports=["callbackScope","completeDelay","delay","duration","ease","easeParams","flipX","flipY","hold","loop","loopDelay","offset","onActive","onActiveParams","onActiveScope","onComplete","onCompleteParams","onCompleteScope","onLoop","onLoopParams","onLoopScope","onRepeat","onRepeatParams","onRepeatScope","onStart","onStartParams","onStartScope","onUpdate","onUpdateParams","onUpdateScope","onYoyo","onYoyoParams","onYoyoScope","paused","props","repeat","repeatDelay","targets","useFrames","yoyo"]},68323:(t,e,i)=>{var n=i(47379),r=i(17168),s=i(91209),o=i(17517),a=i(81342),h=i(3926),u=i(14302),l=new n({Extends:r,initialize:function(t,e,i){r.call(this),this.parent=t,this.parentIsTimeline=t.hasOwnProperty("isTimeline"),this.data=e,this.totalData=e.length,this.targets=i,this.totalTargets=i.length,this.useFrames=!1,this.timeScale=1,this.loop=0,this.loopDelay=0,this.loopCounter=0,this.startDelay=0,this.hasStarted=!1,this.isSeeking=!1,this.completeDelay=0,this.countdown=0,this.offset=0,this.calculatedOffset=0,this.state=h.PENDING_ADD,this._pausedState=h.INIT,this.paused=!1,this.elapsed=0,this.totalElapsed=0,this.duration=0,this.progress=0,this.totalDuration=0,this.totalProgress=0,this.callbacks={onActive:null,onComplete:null,onLoop:null,onRepeat:null,onStart:null,onUpdate:null,onYoyo:null},this.callbackScope},getValue:function(t){return void 0===t&&(t=0),this.data[t].current},setTimeScale:function(t){return this.timeScale=t,this},getTimeScale:function(){return this.timeScale},isPlaying:function(){return this.state===h.ACTIVE},isPaused:function(){return this.state===h.PAUSED},hasTarget:function(t){return-1!==this.targets.indexOf(t)},updateTo:function(t,e,i){void 0===i&&(i=!1);for(var n=0;n<this.totalData;n++){var r=this.data[n];r.key===t&&(r.end=e,i&&(r.start=r.current))}return this},restart:function(){return this.elapsed=0,this.progress=0,this.totalElapsed=0,this.totalProgress=0,this.state===h.ACTIVE?this.seek(0):this.state===h.REMOVED?(this.seek(0),this.parent.makeActive(this),this):this.state===h.PENDING_ADD?this:this.play()},calcDuration:function(){for(var t=0,e=u.MAX_SAFE_INTEGER,i=this.data,n=0;n<this.totalData;n++){var r=i[n];r.t1=r.duration+r.hold,r.yoyo&&(r.t1+=r.duration),r.t2=r.t1+r.repeatDelay,r.totalDuration=r.delay+r.t1,-1===r.repeat?r.totalDuration+=999999999999*r.t2:r.repeat>0&&(r.totalDuration+=r.t2*r.repeat),r.totalDuration>t&&(t=r.totalDuration),r.delay<e&&(e=r.delay)}this.duration=Math.max(t,.001),this.loopCounter=-1===this.loop?999999999999:this.loop,this.loopCounter>0?this.totalDuration=this.duration+this.completeDelay+(this.duration+this.loopDelay)*this.loopCounter:this.totalDuration=this.duration+this.completeDelay,this.startDelay=e},init:function(){if(this.paused&&!this.parentIsTimeline)return this.state=h.PENDING_ADD,this._pausedState=h.INIT,!1;for(var t=this.data,e=this.totalTargets,i=0;i<this.totalData;i++){var n=t[i],r=n.target,s=n.gen,o=n.key,a=n.index;n.delay=s.delay(r,o,0,a,e,this),n.duration=Math.max(s.duration(r,o,0,a,e,this),.001),n.hold=s.hold(r,o,0,a,e,this),n.repeat=s.repeat(r,o,0,a,e,this),n.repeatDelay=s.repeatDelay(r,o,0,a,e,this)}return this.calcDuration(),this.progress=0,this.totalProgress=0,this.elapsed=0,this.totalElapsed=0,this.state=h.INIT,!0},makeActive:function(){this.parent.makeActive(this),this.dispatchTweenEvent(s.TWEEN_ACTIVE,this.callbacks.onActive)},nextState:function(){this.loopCounter>0?(this.elapsed=0,this.progress=0,this.loopCounter--,this.resetTweenData(!0),this.loopDelay>0?(this.countdown=this.loopDelay,this.state=h.LOOP_DELAY):(this.state=h.ACTIVE,this.dispatchTweenEvent(s.TWEEN_LOOP,this.callbacks.onLoop))):this.completeDelay>0?(this.state=h.COMPLETE_DELAY,this.countdown=this.completeDelay):(this.state=h.PENDING_REMOVE,this.dispatchTweenEvent(s.TWEEN_COMPLETE,this.callbacks.onComplete))},pause:function(){return this.state===h.PAUSED||(this.paused=!0,this._pausedState=this.state,this.state=h.PAUSED),this},play:function(t){void 0===t&&(t=!1);var e=this.state;return e!==h.INIT||this.parentIsTimeline?e===h.ACTIVE||e===h.PENDING_ADD&&this._pausedState===h.PENDING_ADD?this:this.parentIsTimeline||e!==h.PENDING_REMOVE&&e!==h.REMOVED?(this.parentIsTimeline?(this.resetTweenData(t),0===this.calculatedOffset?this.state=h.ACTIVE:(this.countdown=this.calculatedOffset,this.state=h.OFFSET_DELAY)):this.paused?(this.paused=!1,this.makeActive()):(this.resetTweenData(t),this.state=h.ACTIVE,this.makeActive()),this):(this.seek(0),this.parent.makeActive(this),this):(this.resetTweenData(!1),this.state=h.ACTIVE,this)},resetTweenData:function(t){for(var e=this.data,i=this.totalData,n=this.totalTargets,r=0;r<i;r++){var s=e[r],o=s.target,a=s.key,u=s.index;s.progress=0,s.elapsed=0,s.repeatCounter=-1===s.repeat?999999999999:s.repeat,t?(s.start=s.getStartValue(o,a,s.start,u,n,this),s.end=s.getEndValue(o,a,s.end,u,n,this),s.current=s.start,s.state=h.PLAYING_FORWARD):s.state=h.PENDING_RENDER,s.delay>0&&(s.elapsed=s.delay,s.state=h.DELAY),s.getActiveValue&&(o[a]=s.getActiveValue(s.target,s.key,s.start))}},resume:function(){return this.state===h.PAUSED?(this.paused=!1,this.state=this._pausedState):this.play(),this},seek:function(t,e){if(void 0===e&&(e=16.6),this.totalDuration>=36e5)return console.warn("Tween.seek duration too long"),this;this.state===h.REMOVED&&this.makeActive(),this.elapsed=0,this.progress=0,this.totalElapsed=0,this.totalProgress=0;for(var i=this.data,n=this.totalTargets,r=0;r<this.totalData;r++){var s=i[r],o=s.target,a=s.gen,u=s.key,l=s.index;s.progress=0,s.elapsed=0,s.repeatCounter=-1===s.repeat?999999999999:s.repeat,s.delay=a.delay(o,u,0,l,n,this),s.duration=Math.max(a.duration(o,u,0,l,n,this),.001),s.hold=a.hold(o,u,0,l,n,this),s.repeat=a.repeat(o,u,0,l,n,this),s.repeatDelay=a.repeatDelay(o,u,0,l,n,this),s.current=s.start,s.state=h.PLAYING_FORWARD,this.updateTweenData(this,s,0,l,n),s.delay>0&&(s.elapsed=s.delay,s.state=h.DELAY)}this.calcDuration();var c=!1;this.state===h.PAUSED&&(c=!0,this.state=h.ACTIVE),this.isSeeking=!0;do{this.update(0,e)}while(this.totalProgress<t);return this.isSeeking=!1,c&&(this.state=h.PAUSED),this},setCallback:function(t,e,i,n){return this.callbacks[t]={func:e,scope:n,params:i},this},complete:function(t){return void 0===t&&(t=0),t?(this.state=h.COMPLETE_DELAY,this.countdown=t):(this.state=h.PENDING_REMOVE,this.dispatchTweenEvent(s.TWEEN_COMPLETE,this.callbacks.onComplete)),this},remove:function(){return this.parent.remove(this),this},stop:function(t){return this.state===h.ACTIVE&&void 0!==t&&this.seek(t),this.state!==h.REMOVED&&(this.state!==h.PAUSED&&this.state!==h.PENDING_ADD||(this.parentIsTimeline?(this.parent.manager._destroy.push(this),this.parent.manager._toProcess++):(this.parent._destroy.push(this),this.parent._toProcess++)),this.removeAllListeners(),this.state=h.PENDING_REMOVE),this},update:function(t,e){if(this.state===h.PAUSED)return!1;switch(this.useFrames&&(e=1*this.parent.timeScale),e*=this.timeScale,this.elapsed+=e,this.progress=Math.min(this.elapsed/this.duration,1),this.totalElapsed+=e,this.totalProgress=Math.min(this.totalElapsed/this.totalDuration,1),this.state){case h.ACTIVE:this.hasStarted||this.isSeeking||(this.startDelay-=e,this.startDelay<=0&&(this.hasStarted=!0,this.dispatchTweenEvent(s.TWEEN_START,this.callbacks.onStart)));for(var i=!1,n=0;n<this.totalData;n++){var r=this.data[n];this.updateTweenData(this,r,e)&&(i=!0)}i||this.nextState();break;case h.LOOP_DELAY:this.countdown-=e,this.countdown<=0&&(this.state=h.ACTIVE,this.dispatchTweenEvent(s.TWEEN_LOOP,this.callbacks.onLoop));break;case h.OFFSET_DELAY:this.countdown-=e,this.countdown<=0&&(this.state=h.ACTIVE);break;case h.COMPLETE_DELAY:this.countdown-=e,this.countdown<=0&&(this.state=h.PENDING_REMOVE,this.dispatchTweenEvent(s.TWEEN_COMPLETE,this.callbacks.onComplete))}return this.state===h.PENDING_REMOVE},dispatchTweenDataEvent:function(t,e,i){this.isSeeking||(this.emit(t,this,i.key,i.target,i.current,i.previous),e&&(e.params[1]=i.target,e.func.apply(e.scope,e.params)))},dispatchTweenEvent:function(t,e){this.isSeeking||(this.emit(t,this,this.targets),e&&(e.params[1]=this.targets,e.func.apply(e.scope,e.params)))},setStateFromEnd:function(t,e,i){return e.yoyo?(e.elapsed=i,e.progress=i/e.duration,e.flipX&&e.target.toggleFlipX(),e.flipY&&e.target.toggleFlipY(),this.dispatchTweenDataEvent(s.TWEEN_YOYO,t.callbacks.onYoyo,e),e.start=e.getStartValue(e.target,e.key,e.start,e.index,t.totalTargets,t),h.PLAYING_BACKWARD):e.repeatCounter>0?(e.repeatCounter--,e.elapsed=i,e.progress=i/e.duration,e.flipX&&e.target.toggleFlipX(),e.flipY&&e.target.toggleFlipY(),e.start=e.getStartValue(e.target,e.key,e.start,e.index,t.totalTargets,t),e.end=e.getEndValue(e.target,e.key,e.start,e.index,t.totalTargets,t),e.repeatDelay>0?(e.elapsed=e.repeatDelay-i,e.current=e.start,e.target[e.key]=e.current,h.REPEAT_DELAY):(this.dispatchTweenDataEvent(s.TWEEN_REPEAT,t.callbacks.onRepeat,e),h.PLAYING_FORWARD)):h.COMPLETE},setStateFromStart:function(t,e,i){return e.repeatCounter>0?(e.repeatCounter--,e.elapsed=i,e.progress=i/e.duration,e.flipX&&e.target.toggleFlipX(),e.flipY&&e.target.toggleFlipY(),e.end=e.getEndValue(e.target,e.key,e.start,e.index,t.totalTargets,t),e.repeatDelay>0?(e.elapsed=e.repeatDelay-i,e.current=e.start,e.target[e.key]=e.current,h.REPEAT_DELAY):(this.dispatchTweenDataEvent(s.TWEEN_REPEAT,t.callbacks.onRepeat,e),h.PLAYING_FORWARD)):h.COMPLETE},updateTweenData:function(t,e,i){var n=e.target;switch(e.state){case h.PLAYING_FORWARD:case h.PLAYING_BACKWARD:if(!n){e.state=h.COMPLETE;break}var r=e.elapsed,o=e.duration,a=0;(r+=i)>o&&(a=r-o,r=o);var u=e.state===h.PLAYING_FORWARD,l=r/o;if(e.elapsed=r,e.progress=l,e.previous=e.current,1===l)u?(e.current=e.end,n[e.key]=e.end,e.hold>0?(e.elapsed=e.hold-a,e.state=h.HOLD_DELAY):e.state=this.setStateFromEnd(t,e,a)):(e.current=e.start,n[e.key]=e.start,e.state=this.setStateFromStart(t,e,a));else{var c=u?e.ease(l):e.ease(1-l);e.current=e.start+(e.end-e.start)*c,n[e.key]=e.current}this.dispatchTweenDataEvent(s.TWEEN_UPDATE,t.callbacks.onUpdate,e);break;case h.DELAY:e.elapsed-=i,e.elapsed<=0&&(e.elapsed=Math.abs(e.elapsed),e.state=h.PENDING_RENDER);break;case h.REPEAT_DELAY:e.elapsed-=i,e.elapsed<=0&&(e.elapsed=Math.abs(e.elapsed),e.state=h.PLAYING_FORWARD,this.dispatchTweenDataEvent(s.TWEEN_REPEAT,t.callbacks.onRepeat,e));break;case h.HOLD_DELAY:e.elapsed-=i,e.elapsed<=0&&(e.state=this.setStateFromEnd(t,e,Math.abs(e.elapsed)));break;case h.PENDING_RENDER:n?(e.start=e.getStartValue(n,e.key,n[e.key],e.index,t.totalTargets,t),e.end=e.getEndValue(n,e.key,e.start,e.index,t.totalTargets,t),e.current=e.start,n[e.key]=e.start,e.state=h.PLAYING_FORWARD):e.state=h.COMPLETE}return e.state!==h.COMPLETE}});l.TYPES=["onActive","onComplete","onLoop","onRepeat","onStart","onUpdate","onYoyo"],a.register("tween",(function(t){return this.scene.sys.tweens.add(t)})),o.register("tween",(function(t){return this.scene.sys.tweens.create(t)})),t.exports=l},72721:t=>{t.exports=function(t,e,i,n,r,s,o,a,h,u,l,c,d,p,f){return{target:t,index:e,key:i,getActiveValue:s,getEndValue:n,getStartValue:r,ease:o,duration:0,totalDuration:0,delay:0,yoyo:u,hold:0,repeat:0,repeatDelay:0,flipX:p,flipY:f,progress:0,elapsed:0,repeatCounter:0,start:0,previous:0,current:0,end:0,t1:0,t2:0,gen:{delay:a,duration:h,hold:l,repeat:c,repeatDelay:d},state:0}}},3926:t=>{t.exports={CREATED:0,INIT:1,DELAY:2,OFFSET_DELAY:3,PENDING_RENDER:4,PLAYING_FORWARD:5,PLAYING_BACKWARD:6,HOLD_DELAY:7,REPEAT_DELAY:8,COMPLETE:9,PENDING_ADD:20,PAUSED:21,LOOP_DELAY:22,ACTIVE:23,COMPLETE_DELAY:24,PENDING_REMOVE:25,REMOVED:26}},47379:t=>{function e(t,e,i){var n=i?t[e]:Object.getOwnPropertyDescriptor(t,e);return!i&&n.value&&"object"==typeof n.value&&(n=n.value),!(!n||!function(t){return!!t.get&&"function"==typeof t.get||!!t.set&&"function"==typeof t.set}(n))&&(void 0===n.enumerable&&(n.enumerable=!0),void 0===n.configurable&&(n.configurable=!0),n)}function i(t,e){var i=Object.getOwnPropertyDescriptor(t,e);return!!i&&(i.value&&"object"==typeof i.value&&(i=i.value),!1===i.configurable)}function n(t,n,r,o){for(var a in n)if(n.hasOwnProperty(a)){var h=e(n,a,r);if(!1!==h){if(i((o||t).prototype,a)){if(s.ignoreFinals)continue;throw new Error("cannot override final property '"+a+"', set Class.ignoreFinals = true to skip")}Object.defineProperty(t.prototype,a,h)}else t.prototype[a]=n[a]}}function r(t,e){if(e){Array.isArray(e)||(e=[e]);for(var i=0;i<e.length;i++)n(t,e[i].prototype||e[i])}}function s(t){var e,i;if(t||(t={}),t.initialize){if("function"!=typeof t.initialize)throw new Error("initialize must be a function");e=t.initialize,delete t.initialize}else if(t.Extends){var s=t.Extends;e=function(){s.apply(this,arguments)}}else e=function(){};t.Extends?(e.prototype=Object.create(t.Extends.prototype),e.prototype.constructor=e,i=t.Extends,delete t.Extends):e.prototype.constructor=e;var o=null;return t.Mixins&&(o=t.Mixins,delete t.Mixins),r(e,o),n(e,t,!0,i),e}s.extend=n,s.mixin=r,s.ignoreFinals=!1,t.exports=s},49035:t=>{t.exports=function(){}},35486:t=>{t.exports=function(t,e,i,n,r){if(void 0===r&&(r=t),i>0){var s=i-t.length;if(s<=0)return null}if(!Array.isArray(e))return-1===t.indexOf(e)?(t.push(e),n&&n.call(r,e),e):null;for(var o=e.length-1;o>=0;)-1!==t.indexOf(e[o])&&e.splice(o,1),o--;if(0===(o=e.length))return null;i>0&&o>s&&(e.splice(s),o=s);for(var a=0;a<o;a++){var h=e[a];t.push(h),n&&n.call(r,h)}return e}},63493:t=>{t.exports=function(t,e,i,n,r,s){if(void 0===i&&(i=0),void 0===s&&(s=t),n>0){var o=n-t.length;if(o<=0)return null}if(!Array.isArray(e))return-1===t.indexOf(e)?(t.splice(i,0,e),r&&r.call(s,e),e):null;for(var a=e.length-1;a>=0;)-1!==t.indexOf(e[a])&&e.pop(),a--;if(0===(a=e.length))return null;n>0&&a>o&&(e.splice(o),a=o);for(var h=a-1;h>=0;h--){var u=e[h];t.splice(i,0,u),r&&r.call(s,u)}return e}},74928:t=>{t.exports=function(t,e){var i=t.indexOf(e);return-1!==i&&i<t.length&&(t.splice(i,1),t.push(e)),e}},87674:(t,e,i)=>{var n=i(3680);t.exports=function(t,e,i,r,s){void 0===r&&(r=0),void 0===s&&(s=t.length);var o=0;if(n(t,r,s))for(var a=r;a<s;a++){t[a][e]===i&&o++}return o}},574:t=>{t.exports=function(t,e,i){var n,r=[null];for(n=3;n<arguments.length;n++)r.push(arguments[n]);for(n=0;n<t.length;n++)r[0]=t[n],e.apply(i,r);return t}},33923:(t,e,i)=>{var n=i(3680);t.exports=function(t,e,i,r,s){if(void 0===r&&(r=0),void 0===s&&(s=t.length),n(t,r,s)){var o,a=[null];for(o=5;o<arguments.length;o++)a.push(arguments[o]);for(o=r;o<s;o++)a[0]=t[o],e.apply(i,a)}return t}},87559:t=>{t.exports=function(t,e,i){if(!e.length)return NaN;if(1===e.length)return e[0];var n,r,s=1;if(i){if(t<e[0][i])return e[0];for(;e[s][i]<t;)s++}else for(;e[s]<t;)s++;return s>e.length&&(s=e.length),i?(n=e[s-1][i],(r=e[s][i])-t<=t-n?e[s]:e[s-1]):(n=e[s-1],(r=e[s])-t<=t-n?r:n)}},50774:(t,e,i)=>{var n=i(3680);t.exports=function(t,e,i,r,s){void 0===r&&(r=0),void 0===s&&(s=t.length);var o=[];if(n(t,r,s))for(var a=r;a<s;a++){var h=t[a];(!e||e&&void 0===i&&h.hasOwnProperty(e)||e&&void 0!==i&&h[e]===i)&&o.push(h)}return o}},56606:(t,e,i)=>{var n=i(3680);t.exports=function(t,e,i,r,s){if(void 0===r&&(r=0),void 0===s&&(s=t.length),n(t,r,s))for(var o=r;o<s;o++){var a=t[o];if(!e||e&&void 0===i&&a.hasOwnProperty(e)||e&&void 0!==i&&a[e]===i)return a}return null}},51750:t=>{t.exports=function(t,e,i){void 0===e&&(e=0),void 0===i&&(i=t.length);var n=e+Math.floor(Math.random()*i);return void 0===t[n]?null:t[n]}},87332:t=>{t.exports=function(t,e){var i=t.indexOf(e);if(i>0){var n=t[i-1],r=t.indexOf(n);t[i]=n,t[r]=e}return t}},49556:t=>{t.exports=function(t,e,i){var n=t.indexOf(e);if(-1===n||i<0||i>=t.length)throw new Error("Supplied index out of bounds");return n!==i&&(t.splice(n,1),t.splice(i,0,e)),e}},21834:t=>{t.exports=function(t,e){var i=t.indexOf(e);if(-1!==i&&i<t.length-1){var n=t[i+1],r=t.indexOf(n);t[i]=n,t[r]=e}return t}},42570:t=>{t.exports=function(t,e,i,n){for(var r=[],s=t;s<=e;s++)if(i||n){var o=i?i+s.toString():s.toString();n&&(o=o.concat(n)),r.push(o)}else r.push(s);return r}},18821:(t,e,i)=>{var n=i(8682);t.exports=function(t,e,i){void 0===t&&(t=0),void 0===e&&(e=null),void 0===i&&(i=1),null===e&&(e=t,t=0);for(var r=[],s=Math.max(n((e-t)/(i||1)),0),o=0;o<s;o++)r.push(t),t+=i;return r}},33366:t=>{function e(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function i(t,e){return t<e?-1:t>e?1:0}var n=function(t,r,s,o,a){for(void 0===s&&(s=0),void 0===o&&(o=t.length-1),void 0===a&&(a=i);o>s;){if(o-s>600){var h=o-s+1,u=r-s+1,l=Math.log(h),c=.5*Math.exp(2*l/3),d=.5*Math.sqrt(l*c*(h-c)/h)*(u-h/2<0?-1:1),p=Math.max(s,Math.floor(r-u*c/h+d)),f=Math.min(o,Math.floor(r+(h-u)*c/h+d));n(t,r,p,f,a)}var m=t[r],v=s,g=o;for(e(t,s,r),a(t[o],m)>0&&e(t,s,o);v<g;){for(e(t,v,g),v++,g--;a(t[v],m)<0;)v++;for(;a(t[g],m)>0;)g--}0===a(t[s],m)?e(t,s,g):e(t,++g,o),g<=r&&(s=g+1),r<=g&&(o=g-1)}};t.exports=n},81903:(t,e,i)=>{var n=i(86652),r=i(84851),s=function(t,e,i){for(var n=[],r=0;r<t.length;r++)for(var s=0;s<e.length;s++)for(var o=0;o<i;o++)n.push({a:t[r],b:e[s]});return n};t.exports=function(t,e,i){var o=n(i,"max",0),a=n(i,"qty",1),h=n(i,"random",!1),u=n(i,"randomB",!1),l=n(i,"repeat",0),c=n(i,"yoyo",!1),d=[];if(u&&r(e),-1===l)if(0===o)l=0;else{var p=t.length*e.length*a;c&&(p*=2),l=Math.ceil(o/p)}for(var f=0;f<=l;f++){var m=s(t,e,a);h&&r(m),d=d.concat(m),c&&(m.reverse(),d=d.concat(m))}return o&&d.splice(o),d}},60625:(t,e,i)=>{var n=i(75670);t.exports=function(t,e,i,r){var s;if(void 0===r&&(r=t),!Array.isArray(e))return-1!==(s=t.indexOf(e))?(n(t,s),i&&i.call(r,e),e):null;for(var o=e.length-1;o>=0;){var a=e[o];-1!==(s=t.indexOf(a))?(n(t,s),i&&i.call(r,a)):e.pop(),o--}return e}},62114:(t,e,i)=>{var n=i(75670);t.exports=function(t,e,i,r){if(void 0===r&&(r=t),e<0||e>t.length-1)throw new Error("Index out of bounds");var s=n(t,e);return i&&i.call(r,s),s}},97782:(t,e,i)=>{var n=i(3680);t.exports=function(t,e,i,r,s){if(void 0===e&&(e=0),void 0===i&&(i=t.length),void 0===s&&(s=t),n(t,e,i)){var o=i-e,a=t.splice(e,o);if(r)for(var h=0;h<a.length;h++){var u=a[h];r.call(s,u)}return a}return[]}},32716:(t,e,i)=>{var n=i(75670);t.exports=function(t,e,i){void 0===e&&(e=0),void 0===i&&(i=t.length);var r=e+Math.floor(Math.random()*i);return n(t,r)}},17704:t=>{t.exports=function(t,e,i){var n=t.indexOf(e),r=t.indexOf(i);return-1!==n&&-1===r&&(t[n]=i,!0)}},52521:t=>{t.exports=function(t,e){void 0===e&&(e=1);for(var i=null,n=0;n<e;n++)i=t.shift(),t.push(i);return i}},90387:t=>{t.exports=function(t,e){void 0===e&&(e=1);for(var i=null,n=0;n<e;n++)i=t.pop(),t.unshift(i);return i}},3680:t=>{t.exports=function(t,e,i,n){var r=t.length;if(e<0||e>r||e>=i||i>r||e+i>r){if(n)throw new Error("Range Error: Values outside acceptable range");return!1}return!0}},91740:t=>{t.exports=function(t,e){var i=t.indexOf(e);return-1!==i&&i>0&&(t.splice(i,1),t.unshift(e)),e}},78480:(t,e,i)=>{var n=i(3680);t.exports=function(t,e,i,r,s){if(void 0===r&&(r=0),void 0===s&&(s=t.length),n(t,r,s))for(var o=r;o<s;o++){var a=t[o];a.hasOwnProperty(e)&&(a[e]=i)}return t}},84851:t=>{t.exports=function(t){for(var e=t.length-1;e>0;e--){var i=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[i],t[i]=n}return t}},75670:t=>{t.exports=function(t,e){if(!(e>=t.length)){for(var i=t.length-1,n=t[e],r=e;r<i;r++)t[r]=t[r+1];return t.length=i,n}}},59199:t=>{!function(){var e=function(t,e){return i(t.slice(),e)};function i(t,e){"function"!=typeof e&&(e=function(t,e){return String(t).localeCompare(e)});var i=t.length;if(i<=1)return t;for(var r=new Array(i),s=1;s<i;s*=2){n(t,e,s,r);var o=t;t=r,r=o}return t}e.inplace=function(t,e){var r=i(t,e);return r!==t&&n(r,null,t.length,t),t};var n=function(t,e,i,n){var r,s,o,a,h,u=t.length,l=0,c=2*i;for(r=0;r<u;r+=c)for(o=(s=r+i)+i,s>u&&(s=u),o>u&&(o=u),a=r,h=s;;)if(a<s&&h<o)e(t[a],t[h])<=0?n[l++]=t[a++]:n[l++]=t[h++];else if(a<s)n[l++]=t[a++];else{if(!(h<o))break;n[l++]=t[h++]}};t.exports=e}()},59760:t=>{t.exports=function(t,e,i){if(e!==i){var n=t.indexOf(e),r=t.indexOf(i);if(n<0||r<0)throw new Error("Supplied items must be elements of the same array");return t[n]=i,t[r]=e,t}}},37931:(t,e,i)=>{t.exports={Matrix:i(15306),Add:i(35486),AddAt:i(63493),BringToTop:i(74928),CountAllMatching:i(87674),Each:i(574),EachInRange:i(33923),FindClosestInSorted:i(87559),GetAll:i(50774),GetFirst:i(56606),GetRandom:i(51750),MoveDown:i(87332),MoveTo:i(49556),MoveUp:i(21834),NumberArray:i(42570),NumberArrayStep:i(18821),QuickSelect:i(33366),Range:i(81903),Remove:i(60625),RemoveAt:i(62114),RemoveBetween:i(97782),RemoveRandomElement:i(32716),Replace:i(17704),RotateLeft:i(52521),RotateRight:i(90387),SafeRange:i(3680),SendToBack:i(91740),SetAll:i(78480),Shuffle:i(84851),SpliceOne:i(75670),StableSort:i(59199),Swap:i(59760)}},29613:t=>{t.exports=function(t){if(!Array.isArray(t)||t.length<2||!Array.isArray(t[0]))return!1;for(var e=t[0].length,i=1;i<t.length;i++)if(t[i].length!==e)return!1;return!0}},75101:(t,e,i)=>{var n=i(10872),r=i(29613);t.exports=function(t){var e="";if(!r(t))return e;for(var i=0;i<t.length;i++){for(var s=0;s<t[i].length;s++){var o=t[i][s].toString();e+="undefined"!==o?n(o,2):"?",s<t[i].length-1&&(e+=" |")}if(i<t.length-1){e+="\n";for(var a=0;a<t[i].length;a++)e+="---",a<t[i].length-1&&(e+="+");e+="\n"}}return e}},78147:t=>{t.exports=function(t){return t.reverse()}},84782:t=>{t.exports=function(t){for(var e=0;e<t.length;e++)t[e].reverse();return t}},63353:(t,e,i)=>{var n=i(50573);t.exports=function(t){return n(t,180)}},2822:(t,e,i)=>{var n=i(50573);t.exports=function(t){return n(t,90)}},50573:(t,e,i)=>{var n=i(29613),r=i(3169);t.exports=function(t,e){if(void 0===e&&(e=90),!n(t))return null;if("string"!=typeof e&&(e=(e%360+360)%360),90===e||-270===e||"rotateLeft"===e)(t=r(t)).reverse();else if(-90===e||270===e||"rotateRight"===e)t.reverse(),t=r(t);else if(180===Math.abs(e)||"rotate180"===e){for(var i=0;i<t.length;i++)t[i].reverse();t.reverse()}return t}},68755:(t,e,i)=>{var n=i(50573);t.exports=function(t){return n(t,-90)}},3169:t=>{t.exports=function(t){for(var e=t.length,i=t[0].length,n=new Array(i),r=0;r<i;r++){n[r]=new Array(e);for(var s=e-1;s>-1;s--)n[r][s]=t[s][r]}return n}},15306:(t,e,i)=>{t.exports={CheckMatrix:i(29613),MatrixToString:i(75101),ReverseColumns:i(78147),ReverseRows:i(84782),Rotate180:i(63353),RotateLeft:i(2822),RotateMatrix:i(50573),RotateRight:i(68755),TransposeMatrix:i(3169)}},93705:t=>{var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";t.exports=function(t,i){for(var n=new Uint8Array(t),r=n.length,s=i?"data:"+i+";base64,":"",o=0;o<r;o+=3)s+=e[n[o]>>2],s+=e[(3&n[o])<<4|n[o+1]>>4],s+=e[(15&n[o+1])<<2|n[o+2]>>6],s+=e[63&n[o+2]];return r%3==2?s=s.substring(0,s.length-1)+"=":r%3==1&&(s=s.substring(0,s.length-2)+"=="),s}},31021:t=>{for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=new Uint8Array(256),n=0;n<e.length;n++)i[e.charCodeAt(n)]=n;t.exports=function(t){var e,n,r,s,o=(t=t.substr(t.indexOf(",")+1)).length,a=.75*o,h=0;"="===t[o-1]&&(a--,"="===t[o-2]&&a--);for(var u=new ArrayBuffer(a),l=new Uint8Array(u),c=0;c<o;c+=4)e=i[t.charCodeAt(c)],n=i[t.charCodeAt(c+1)],r=i[t.charCodeAt(c+2)],s=i[t.charCodeAt(c+3)],l[h++]=e<<2|n>>4,l[h++]=(15&n)<<4|r>>2,l[h++]=(3&r)<<6|63&s;return u}},3491:(t,e,i)=>{t.exports={ArrayBufferToBase64:i(93705),Base64ToArrayBuffer:i(31021)}},83484:(t,e,i)=>{t.exports={Array:i(37931),Base64:i(3491),Objects:i(14548),String:i(5246)}},18438:t=>{t.exports=function(t){var e={};for(var i in t)Array.isArray(t[i])?e[i]=t[i].slice(0):e[i]=t[i];return e}},80933:(t,e,i)=>{var n=i(28621),r=function(){var t,e,i,s,o,a,h=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof h&&(c=h,h=arguments[1]||{},u=2),l===u&&(h=this,--u);u<l;u++)if(null!=(t=arguments[u]))for(e in t)i=h[e],h!==(s=t[e])&&(c&&s&&(n(s)||(o=Array.isArray(s)))?(o?(o=!1,a=i&&Array.isArray(i)?i:[]):a=i&&n(i)?i:{},h[e]=r(c,a,s)):void 0!==s&&(h[e]=s));return h};t.exports=r},57687:(t,e,i)=>{var n=i(39899),r=i(86652);t.exports=function(t,e,i){var s=r(t,e,null);if(null===s)return i;if(Array.isArray(s))return n.RND.pick(s);if("object"==typeof s){if(s.hasOwnProperty("randInt"))return n.RND.integerInRange(s.randInt[0],s.randInt[1]);if(s.hasOwnProperty("randFloat"))return n.RND.realInRange(s.randFloat[0],s.randFloat[1])}else if("function"==typeof s)return s(e);return s}},81769:t=>{t.exports=function(t,e,i){var n=typeof t;return t&&"number"!==n&&"string"!==n&&t.hasOwnProperty(e)&&void 0!==t[e]?t[e]:i}},86535:(t,e,i)=>{var n=i(86652),r=i(90487);t.exports=function(t,e,i,s,o){void 0===o&&(o=i);var a=n(t,e,o);return r(a,i,s)}},86652:t=>{t.exports=function(t,e,i){if(t&&"number"!=typeof t){if(t.hasOwnProperty(e))return t[e];if(-1!==e.indexOf(".")){for(var n=e.split("."),r=t,s=i,o=0;o<n.length;o++){if(!r.hasOwnProperty(n[o])){s=i;break}s=r[n[o]],r=r[n[o]]}return s}return i}return i}},38403:t=>{t.exports=function(t,e){for(var i=0;i<e.length;i++)if(!t.hasOwnProperty(e[i]))return!1;return!0}},97639:t=>{t.exports=function(t,e){for(var i=0;i<e.length;i++)if(t.hasOwnProperty(e[i]))return!0;return!1}},64036:t=>{t.exports=function(t,e){return t.hasOwnProperty(e)}},28621:t=>{t.exports=function(t){if("object"!=typeof t||t.nodeType||t===t.window)return!1;try{if(t.constructor&&!{}.hasOwnProperty.call(t.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0}},92974:(t,e,i)=>{var n=i(18438);t.exports=function(t,e){var i=n(t);for(var r in e)i.hasOwnProperty(r)||(i[r]=e[r]);return i}},94422:(t,e,i)=>{var n=i(18438);t.exports=function(t,e){var i=n(t);for(var r in e)i.hasOwnProperty(r)&&(i[r]=e[r]);return i}},49694:(t,e,i)=>{var n=i(64036);t.exports=function(t,e){for(var i={},r=0;r<e.length;r++){var s=e[r];n(t,s)&&(i[s]=t[s])}return i}},68968:t=>{t.exports=function(t,e,i){if(!t||"number"==typeof t)return!1;if(t.hasOwnProperty(e))return t[e]=i,!0;if(-1!==e.indexOf(".")){for(var n=e.split("."),r=t,s=t,o=0;o<n.length;o++){if(!r.hasOwnProperty(n[o]))return!1;s=r,r=r[n[o]]}return s[n[n.length-1]]=i,!0}return!1}},14548:(t,e,i)=>{t.exports={Clone:i(18438),Extend:i(80933),GetAdvancedValue:i(57687),GetFastValue:i(81769),GetMinMaxValue:i(86535),GetValue:i(86652),HasAll:i(38403),HasAny:i(97639),HasValue:i(64036),IsPlainObject:i(28621),Merge:i(92974),MergeRight:i(94422),Pick:i(49694),SetValue:i(68968)}},46985:t=>{t.exports=function(t,e){return t.replace(/%([0-9]+)/g,(function(t,i){return e[Number(i)-1]}))}},10872:t=>{t.exports=function(t,e,i,n){void 0===e&&(e=0),void 0===i&&(i=" "),void 0===n&&(n=3);var r=0;if(e+1>=(t=t.toString()).length)switch(n){case 1:t=new Array(e+1-t.length).join(i)+t;break;case 3:var s=Math.ceil((r=e-t.length)/2);t=new Array(r-s+1).join(i)+t+new Array(s+1).join(i);break;default:t+=new Array(e+1-t.length).join(i)}return t}},97707:t=>{t.exports=function(t){return t.split("").reverse().join("")}},31027:t=>{t.exports=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var e=16*Math.random()|0;return("x"===t?e:3&e|8).toString(16)}))}},93225:t=>{t.exports=function(t){return t&&t[0].toUpperCase()+t.slice(1)}},5246:(t,e,i)=>{t.exports={Format:i(46985),Pad:i(10872),Reverse:i(97707),UppercaseFirst:i(93225),UUID:i(31027)}}},e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={id:n,loaded:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.hmd=t=>((t=Object.create(t)).children||(t.children=[]),Object.defineProperty(t,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+t.id)}}),t),i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),(()=>{"use strict";i(81444);var t=i(76474),e=i.n(t);const n=function(t,e,i){var n=-1,r=t.length;e<0&&(e=-e>r?0:r+e),(i=i>r?r:i)<0&&(i+=r),r=e>i?0:i-e>>>0,e>>>=0;for(var s=Array(r);++n<r;)s[n]=t[n+e];return s};const r=function(t,e){return t===e||t!=t&&e!=e};var s=i(19327);const o=s.Z.Symbol;var a=Object.prototype,h=a.hasOwnProperty,u=a.toString,l=o?o.toStringTag:void 0;const c=function(t){var e=h.call(t,l),i=t[l];try{t[l]=void 0;var n=!0}catch(t){}var r=u.call(t);return n&&(e?t[l]=i:delete t[l]),r};var d=Object.prototype.toString;const p=function(t){return d.call(t)};var f=o?o.toStringTag:void 0;const m=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":f&&f in Object(t)?c(t):p(t)};const v=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)};const g=function(t){if(!v(t))return!1;var e=m(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e};const y=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991};const _=function(t){return null!=t&&y(t.length)&&!g(t)};var x=/^(?:0|[1-9]\d*)$/;const b=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==i||"symbol"!=i&&x.test(t))&&t>-1&&t%1==0&&t<e};const w=function(t,e,i){if(!v(i))return!1;var n=typeof e;return!!("number"==n?_(i)&&b(e,i.length):"string"==n&&e in i)&&r(i[e],t)};const T=function(t){return null!=t&&"object"==typeof t};const M=function(t){return"symbol"==typeof t||T(t)&&"[object Symbol]"==m(t)};var S=/^\s+|\s+$/g,E=/^[-+]0x[0-9a-f]+$/i,L=/^0b[01]+$/i,A=/^0o[0-7]+$/i,D=parseInt;const P=function(t){if("number"==typeof t)return t;if(M(t))return NaN;if(v(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=v(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(S,"");var i=L.test(t);return i||A.test(t)?D(t.slice(2),i?2:8):E.test(t)?NaN:+t};var C=1/0;const O=function(t){return t?(t=P(t))===C||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0};const k=function(t){var e=O(t),i=e%1;return e==e?i?e-i:e:0};var R=Math.ceil,I=Math.max;const Y=function(t,e,i){e=(i?w(t,e,i):void 0===e)?1:I(k(e),0);var r=null==t?0:t.length;if(!r||e<1)return[];for(var s=0,o=0,a=Array(R(r/e));s<r;)a[o++]=n(t,s,s+=e);return a};const F=function(t){for(var e=-1,i=null==t?0:t.length,n=0,r=[];++e<i;){var s=t[e];s&&(r[n++]=s)}return r};const N=function(t,e){for(var i=-1,n=e.length,r=t.length;++i<n;)t[r+i]=e[i];return t};const B=function(t){return T(t)&&"[object Arguments]"==m(t)};var U=Object.prototype,j=U.hasOwnProperty,H=U.propertyIsEnumerable;const z=B(function(){return arguments}())?B:function(t){return T(t)&&j.call(t,"callee")&&!H.call(t,"callee")};const W=Array.isArray;var G=o?o.isConcatSpreadable:void 0;const V=function(t){return W(t)||z(t)||!!(G&&t&&t[G])};const X=function t(e,i,n,r,s){var o=-1,a=e.length;for(n||(n=V),s||(s=[]);++o<a;){var h=e[o];i>0&&n(h)?i>1?t(h,i-1,n,r,s):N(s,h):r||(s[s.length]=h)}return s};const q=function(t,e){var i=-1,n=t.length;for(e||(e=Array(n));++i<n;)e[i]=t[i];return e};const J=function(){var t=arguments.length;if(!t)return[];for(var e=Array(t-1),i=arguments[0],n=t;n--;)e[n-1]=arguments[n];return N(W(i)?q(i):[i],X(e,1))};const Z=s.Z["__core-js_shared__"];var K=function(){var t=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();const Q=function(t){return!!K&&K in t};var $=Function.prototype.toString;const tt=function(t){if(null!=t){try{return $.call(t)}catch(t){}try{return t+""}catch(t){}}return""};var et=/^\[object .+?Constructor\]$/,it=Function.prototype,nt=Object.prototype,rt=it.toString,st=nt.hasOwnProperty,ot=RegExp("^"+rt.call(st).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const at=function(t){return!(!v(t)||Q(t))&&(g(t)?ot:et).test(tt(t))};const ht=function(t,e){return null==t?void 0:t[e]};const ut=function(t,e){var i=ht(t,e);return at(i)?i:void 0};const lt=ut(Object,"create");const ct=function(){this.__data__=lt?lt(null):{},this.size=0};const dt=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e};var pt=Object.prototype.hasOwnProperty;const ft=function(t){var e=this.__data__;if(lt){var i=e[t];return"__lodash_hash_undefined__"===i?void 0:i}return pt.call(e,t)?e[t]:void 0};var mt=Object.prototype.hasOwnProperty;const vt=function(t){var e=this.__data__;return lt?void 0!==e[t]:mt.call(e,t)};const gt=function(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=lt&&void 0===e?"__lodash_hash_undefined__":e,this};function yt(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var n=t[e];this.set(n[0],n[1])}}yt.prototype.clear=ct,yt.prototype.delete=dt,yt.prototype.get=ft,yt.prototype.has=vt,yt.prototype.set=gt;const _t=yt;const xt=function(){this.__data__=[],this.size=0};const bt=function(t,e){for(var i=t.length;i--;)if(r(t[i][0],e))return i;return-1};var wt=Array.prototype.splice;const Tt=function(t){var e=this.__data__,i=bt(e,t);return!(i<0)&&(i==e.length-1?e.pop():wt.call(e,i,1),--this.size,!0)};const Mt=function(t){var e=this.__data__,i=bt(e,t);return i<0?void 0:e[i][1]};const St=function(t){return bt(this.__data__,t)>-1};const Et=function(t,e){var i=this.__data__,n=bt(i,t);return n<0?(++this.size,i.push([t,e])):i[n][1]=e,this};function Lt(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var n=t[e];this.set(n[0],n[1])}}Lt.prototype.clear=xt,Lt.prototype.delete=Tt,Lt.prototype.get=Mt,Lt.prototype.has=St,Lt.prototype.set=Et;const At=Lt;const Dt=ut(s.Z,"Map");const Pt=function(){this.size=0,this.__data__={hash:new _t,map:new(Dt||At),string:new _t}};const Ct=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};const Ot=function(t,e){var i=t.__data__;return Ct(e)?i["string"==typeof e?"string":"hash"]:i.map};const kt=function(t){var e=Ot(this,t).delete(t);return this.size-=e?1:0,e};const Rt=function(t){return Ot(this,t).get(t)};const It=function(t){return Ot(this,t).has(t)};const Yt=function(t,e){var i=Ot(this,t),n=i.size;return i.set(t,e),this.size+=i.size==n?0:1,this};function Ft(t){var e=-1,i=null==t?0:t.length;for(this.clear();++e<i;){var n=t[e];this.set(n[0],n[1])}}Ft.prototype.clear=Pt,Ft.prototype.delete=kt,Ft.prototype.get=Rt,Ft.prototype.has=It,Ft.prototype.set=Yt;const Nt=Ft;const Bt=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};const Ut=function(t){return this.__data__.has(t)};function jt(t){var e=-1,i=null==t?0:t.length;for(this.__data__=new Nt;++e<i;)this.add(t[e])}jt.prototype.add=jt.prototype.push=Bt,jt.prototype.has=Ut;const Ht=jt;const zt=function(t,e,i,n){for(var r=t.length,s=i+(n?1:-1);n?s--:++s<r;)if(e(t[s],s,t))return s;return-1};const Wt=function(t){return t!=t};const Gt=function(t,e,i){for(var n=i-1,r=t.length;++n<r;)if(t[n]===e)return n;return-1};const Vt=function(t,e,i){return e==e?Gt(t,e,i):zt(t,Wt,i)};const Xt=function(t,e){return!!(null==t?0:t.length)&&Vt(t,e,0)>-1};const qt=function(t,e,i){for(var n=-1,r=null==t?0:t.length;++n<r;)if(i(e,t[n]))return!0;return!1};const Jt=function(t,e){for(var i=-1,n=null==t?0:t.length,r=Array(n);++i<n;)r[i]=e(t[i],i,t);return r};const Zt=function(t){return function(e){return t(e)}};const Kt=function(t,e){return t.has(e)};const Qt=function(t,e,i,n){var r=-1,s=Xt,o=!0,a=t.length,h=[],u=e.length;if(!a)return h;i&&(e=Jt(e,Zt(i))),n?(s=qt,o=!1):e.length>=200&&(s=Kt,o=!1,e=new Ht(e));t:for(;++r<a;){var l=t[r],c=null==i?l:i(l);if(l=n||0!==l?l:0,o&&c==c){for(var d=u;d--;)if(e[d]===c)continue t;h.push(l)}else s(e,c,n)||h.push(l)}return h};const $t=function(t){return t};const te=function(t,e,i){switch(i.length){case 0:return t.call(e);case 1:return t.call(e,i[0]);case 2:return t.call(e,i[0],i[1]);case 3:return t.call(e,i[0],i[1],i[2])}return t.apply(e,i)};var ee=Math.max;const ie=function(t,e,i){return e=ee(void 0===e?t.length-1:e,0),function(){for(var n=arguments,r=-1,s=ee(n.length-e,0),o=Array(s);++r<s;)o[r]=n[e+r];r=-1;for(var a=Array(e+1);++r<e;)a[r]=n[r];return a[e]=i(o),te(t,this,a)}};const ne=function(t){return function(){return t}};const re=function(){try{var t=ut(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();const se=re?function(t,e){return re(t,"toString",{configurable:!0,enumerable:!1,value:ne(e),writable:!0})}:$t;var oe=Date.now;const ae=function(t){var e=0,i=0;return function(){var n=oe(),r=16-(n-i);if(i=n,r>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}};const he=ae(se);const ue=function(t,e){return he(ie(t,e,$t),t+"")};const le=function(t){return T(t)&&_(t)};const ce=ue((function(t,e){return le(t)?Qt(t,X(e,1,le,!0)):[]}));const de=function(){this.__data__=new At,this.size=0};const pe=function(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i};const fe=function(t){return this.__data__.get(t)};const me=function(t){return this.__data__.has(t)};const ve=function(t,e){var i=this.__data__;if(i instanceof At){var n=i.__data__;if(!Dt||n.length<199)return n.push([t,e]),this.size=++i.size,this;i=this.__data__=new Nt(n)}return i.set(t,e),this.size=i.size,this};function ge(t){var e=this.__data__=new At(t);this.size=e.size}ge.prototype.clear=de,ge.prototype.delete=pe,ge.prototype.get=fe,ge.prototype.has=me,ge.prototype.set=ve;const ye=ge;const _e=function(t,e){for(var i=-1,n=null==t?0:t.length;++i<n;)if(e(t[i],i,t))return!0;return!1};const xe=function(t,e,i,n,r,s){var o=1&i,a=t.length,h=e.length;if(a!=h&&!(o&&h>a))return!1;var u=s.get(t);if(u&&s.get(e))return u==e;var l=-1,c=!0,d=2&i?new Ht:void 0;for(s.set(t,e),s.set(e,t);++l<a;){var p=t[l],f=e[l];if(n)var m=o?n(f,p,l,e,t,s):n(p,f,l,t,e,s);if(void 0!==m){if(m)continue;c=!1;break}if(d){if(!_e(e,(function(t,e){if(!Kt(d,e)&&(p===t||r(p,t,i,n,s)))return d.push(e)}))){c=!1;break}}else if(p!==f&&!r(p,f,i,n,s)){c=!1;break}}return s.delete(t),s.delete(e),c};const be=s.Z.Uint8Array;const we=function(t){var e=-1,i=Array(t.size);return t.forEach((function(t,n){i[++e]=[n,t]})),i};const Te=function(t){var e=-1,i=Array(t.size);return t.forEach((function(t){i[++e]=t})),i};var Me=o?o.prototype:void 0,Se=Me?Me.valueOf:void 0;const Ee=function(t,e,i,n,s,o,a){switch(i){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!o(new be(t),new be(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return r(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var h=we;case"[object Set]":var u=1&n;if(h||(h=Te),t.size!=e.size&&!u)return!1;var l=a.get(t);if(l)return l==e;n|=2,a.set(t,e);var c=xe(h(t),h(e),n,s,o,a);return a.delete(t),c;case"[object Symbol]":if(Se)return Se.call(t)==Se.call(e)}return!1};const Le=function(t,e,i){var n=e(t);return W(t)?n:N(n,i(t))};const Ae=function(t,e){for(var i=-1,n=null==t?0:t.length,r=0,s=[];++i<n;){var o=t[i];e(o,i,t)&&(s[r++]=o)}return s};const De=function(){return[]};var Pe=Object.prototype.propertyIsEnumerable,Ce=Object.getOwnPropertySymbols;const Oe=Ce?function(t){return null==t?[]:(t=Object(t),Ae(Ce(t),(function(e){return Pe.call(t,e)})))}:De;const ke=function(t,e){for(var i=-1,n=Array(t);++i<t;)n[i]=e(i);return n};var Re=i(9511),Ie={};Ie["[object Float32Array]"]=Ie["[object Float64Array]"]=Ie["[object Int8Array]"]=Ie["[object Int16Array]"]=Ie["[object Int32Array]"]=Ie["[object Uint8Array]"]=Ie["[object Uint8ClampedArray]"]=Ie["[object Uint16Array]"]=Ie["[object Uint32Array]"]=!0,Ie["[object Arguments]"]=Ie["[object Array]"]=Ie["[object ArrayBuffer]"]=Ie["[object Boolean]"]=Ie["[object DataView]"]=Ie["[object Date]"]=Ie["[object Error]"]=Ie["[object Function]"]=Ie["[object Map]"]=Ie["[object Number]"]=Ie["[object Object]"]=Ie["[object RegExp]"]=Ie["[object Set]"]=Ie["[object String]"]=Ie["[object WeakMap]"]=!1;const Ye=function(t){return T(t)&&y(t.length)&&!!Ie[m(t)]};var Fe=i(55580),Ne=Fe.Z&&Fe.Z.isTypedArray;const Be=Ne?Zt(Ne):Ye;var Ue=Object.prototype.hasOwnProperty;const je=function(t,e){var i=W(t),n=!i&&z(t),r=!i&&!n&&(0,Re.Z)(t),s=!i&&!n&&!r&&Be(t),o=i||n||r||s,a=o?ke(t.length,String):[],h=a.length;for(var u in t)!e&&!Ue.call(t,u)||o&&("length"==u||r&&("offset"==u||"parent"==u)||s&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||b(u,h))||a.push(u);return a};var He=Object.prototype;const ze=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||He)};const We=function(t,e){return function(i){return t(e(i))}};const Ge=We(Object.keys,Object);var Ve=Object.prototype.hasOwnProperty;const Xe=function(t){if(!ze(t))return Ge(t);var e=[];for(var i in Object(t))Ve.call(t,i)&&"constructor"!=i&&e.push(i);return e};const qe=function(t){return _(t)?je(t):Xe(t)};const Je=function(t){return Le(t,qe,Oe)};var Ze=Object.prototype.hasOwnProperty;const Ke=function(t,e,i,n,r,s){var o=1&i,a=Je(t),h=a.length;if(h!=Je(e).length&&!o)return!1;for(var u=h;u--;){var l=a[u];if(!(o?l in e:Ze.call(e,l)))return!1}var c=s.get(t);if(c&&s.get(e))return c==e;var d=!0;s.set(t,e),s.set(e,t);for(var p=o;++u<h;){var f=t[l=a[u]],m=e[l];if(n)var v=o?n(m,f,l,e,t,s):n(f,m,l,t,e,s);if(!(void 0===v?f===m||r(f,m,i,n,s):v)){d=!1;break}p||(p="constructor"==l)}if(d&&!p){var g=t.constructor,y=e.constructor;g==y||!("constructor"in t)||!("constructor"in e)||"function"==typeof g&&g instanceof g&&"function"==typeof y&&y instanceof y||(d=!1)}return s.delete(t),s.delete(e),d};const Qe=ut(s.Z,"DataView");const $e=ut(s.Z,"Promise");const ti=ut(s.Z,"Set");const ei=ut(s.Z,"WeakMap");var ii="[object Map]",ni="[object Promise]",ri="[object Set]",si="[object WeakMap]",oi="[object DataView]",ai=tt(Qe),hi=tt(Dt),ui=tt($e),li=tt(ti),ci=tt(ei),di=m;(Qe&&di(new Qe(new ArrayBuffer(1)))!=oi||Dt&&di(new Dt)!=ii||$e&&di($e.resolve())!=ni||ti&&di(new ti)!=ri||ei&&di(new ei)!=si)&&(di=function(t){var e=m(t),i="[object Object]"==e?t.constructor:void 0,n=i?tt(i):"";if(n)switch(n){case ai:return oi;case hi:return ii;case ui:return ni;case li:return ri;case ci:return si}return e});const pi=di;var fi="[object Arguments]",mi="[object Array]",vi="[object Object]",gi=Object.prototype.hasOwnProperty;const yi=function(t,e,i,n,r,s){var o=W(t),a=W(e),h=o?mi:pi(t),u=a?mi:pi(e),l=(h=h==fi?vi:h)==vi,c=(u=u==fi?vi:u)==vi,d=h==u;if(d&&(0,Re.Z)(t)){if(!(0,Re.Z)(e))return!1;o=!0,l=!1}if(d&&!l)return s||(s=new ye),o||Be(t)?xe(t,e,i,n,r,s):Ee(t,e,h,i,n,r,s);if(!(1&i)){var p=l&&gi.call(t,"__wrapped__"),f=c&&gi.call(e,"__wrapped__");if(p||f){var m=p?t.value():t,v=f?e.value():e;return s||(s=new ye),r(m,v,i,n,s)}}return!!d&&(s||(s=new ye),Ke(t,e,i,n,r,s))};const _i=function t(e,i,n,r,s){return e===i||(null==e||null==i||!T(e)&&!T(i)?e!=e&&i!=i:yi(e,i,n,r,t,s))};const xi=function(t,e,i,n){var r=i.length,s=r,o=!n;if(null==t)return!s;for(t=Object(t);r--;){var a=i[r];if(o&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++r<s;){var h=(a=i[r])[0],u=t[h],l=a[1];if(o&&a[2]){if(void 0===u&&!(h in t))return!1}else{var c=new ye;if(n)var d=n(u,l,h,t,e,c);if(!(void 0===d?_i(l,u,3,n,c):d))return!1}}return!0};const bi=function(t){return t==t&&!v(t)};const wi=function(t){for(var e=qe(t),i=e.length;i--;){var n=e[i],r=t[n];e[i]=[n,r,bi(r)]}return e};const Ti=function(t,e){return function(i){return null!=i&&(i[t]===e&&(void 0!==e||t in Object(i)))}};const Mi=function(t){var e=wi(t);return 1==e.length&&e[0][2]?Ti(e[0][0],e[0][1]):function(i){return i===t||xi(i,t,e)}};var Si=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ei=/^\w*$/;const Li=function(t,e){if(W(t))return!1;var i=typeof t;return!("number"!=i&&"symbol"!=i&&"boolean"!=i&&null!=t&&!M(t))||(Ei.test(t)||!Si.test(t)||null!=e&&t in Object(e))};function Ai(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var i=function(){var n=arguments,r=e?e.apply(this,n):n[0],s=i.cache;if(s.has(r))return s.get(r);var o=t.apply(this,n);return i.cache=s.set(r,o)||s,o};return i.cache=new(Ai.Cache||Nt),i}Ai.Cache=Nt;const Di=Ai;var Pi=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ci=/\\(\\)?/g;const Oi=function(t){var e=Di(t,(function(t){return 500===i.size&&i.clear(),t})),i=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Pi,(function(t,i,n,r){e.push(n?r.replace(Ci,"$1"):i||t)})),e}));var ki=o?o.prototype:void 0,Ri=ki?ki.toString:void 0;const Ii=function t(e){if("string"==typeof e)return e;if(W(e))return Jt(e,t)+"";if(M(e))return Ri?Ri.call(e):"";var i=e+"";return"0"==i&&1/e==-Infinity?"-0":i};const Yi=function(t){return null==t?"":Ii(t)};const Fi=function(t,e){return W(t)?t:Li(t,e)?[t]:Oi(Yi(t))};const Ni=function(t){if("string"==typeof t||M(t))return t;var e=t+"";return"0"==e&&1/t==-Infinity?"-0":e};const Bi=function(t,e){for(var i=0,n=(e=Fi(e,t)).length;null!=t&&i<n;)t=t[Ni(e[i++])];return i&&i==n?t:void 0};const Ui=function(t,e,i){var n=null==t?void 0:Bi(t,e);return void 0===n?i:n};const ji=function(t,e){return null!=t&&e in Object(t)};const Hi=function(t,e,i){for(var n=-1,r=(e=Fi(e,t)).length,s=!1;++n<r;){var o=Ni(e[n]);if(!(s=null!=t&&i(t,o)))break;t=t[o]}return s||++n!=r?s:!!(r=null==t?0:t.length)&&y(r)&&b(o,r)&&(W(t)||z(t))};const zi=function(t,e){return null!=t&&Hi(t,e,ji)};const Wi=function(t,e){return Li(t)&&bi(e)?Ti(Ni(t),e):function(i){var n=Ui(i,t);return void 0===n&&n===e?zi(i,t):_i(e,n,3)}};const Gi=function(t){return function(e){return null==e?void 0:e[t]}};const Vi=function(t){return function(e){return Bi(e,t)}};const Xi=function(t){return Li(t)?Gi(Ni(t)):Vi(t)};const qi=function(t){return"function"==typeof t?t:null==t?$t:"object"==typeof t?W(t)?Wi(t[0],t[1]):Mi(t):Xi(t)};const Ji=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0};const Zi=ue((function(t,e){var i=Ji(e);return le(i)&&(i=void 0),le(t)?Qt(t,X(e,1,le,!0),qi(i,2)):[]}));const Ki=ue((function(t,e){var i=Ji(e);return le(i)&&(i=void 0),le(t)?Qt(t,X(e,1,le,!0),void 0,i):[]}));const Qi=function(t,e,i){var r=null==t?0:t.length;return r?(e=i||void 0===e?1:k(e),n(t,e<0?0:e,r)):[]};const $i=function(t,e,i){var r=null==t?0:t.length;return r?(e=i||void 0===e?1:k(e),n(t,0,(e=r-e)<0?0:e)):[]};const tn=function(t,e,i,r){for(var s=t.length,o=r?s:-1;(r?o--:++o<s)&&e(t[o],o,t););return i?n(t,r?0:o,r?o+1:s):n(t,r?o+1:0,r?s:o)};const en=function(t,e){return t&&t.length?tn(t,qi(e,3),!0,!0):[]};const nn=function(t,e){return t&&t.length?tn(t,qi(e,3),!0):[]};const rn=function(t,e,i){return t==t&&(void 0!==i&&(t=t<=i?t:i),void 0!==e&&(t=t>=e?t:e)),t};const sn=function(t){return t?rn(k(t),0,4294967295):0};const on=function(t,e,i,n){var r=t.length;for((i=k(i))<0&&(i=-i>r?0:r+i),(n=void 0===n||n>r?r:k(n))<0&&(n+=r),n=i>n?0:sn(n);i<n;)t[i++]=e;return t};const an=function(t,e,i,n){var r=null==t?0:t.length;return r?(i&&"number"!=typeof i&&w(t,e,i)&&(i=0,n=r),on(t,e,i,n)):[]};var hn=Math.max;const un=function(t,e,i){var n=null==t?0:t.length;if(!n)return-1;var r=null==i?0:k(i);return r<0&&(r=hn(n+r,0)),zt(t,qi(e,3),r)};var ln=Math.max,cn=Math.min;const dn=function(t,e,i){var n=null==t?0:t.length;if(!n)return-1;var r=n-1;return void 0!==i&&(r=k(i),r=i<0?ln(n+r,0):cn(r,n-1)),zt(t,qi(e,3),r,!0)};const pn=function(t){return t&&t.length?t[0]:void 0};const fn=function(t){return(null==t?0:t.length)?X(t,1):[]};const mn=function(t){return(null==t?0:t.length)?X(t,Infinity):[]};const vn=function(t,e){return(null==t?0:t.length)?(e=void 0===e?1:k(e),X(t,e)):[]};const gn=function(t){for(var e=-1,i=null==t?0:t.length,n={};++e<i;){var r=t[e];n[r[0]]=r[1]}return n};var yn=Math.max;const _n=function(t,e,i){var n=null==t?0:t.length;if(!n)return-1;var r=null==i?0:k(i);return r<0&&(r=yn(n+r,0)),Vt(t,e,r)};const xn=function(t){return(null==t?0:t.length)?n(t,0,-1):[]};var bn=Math.min;const wn=function(t,e,i){for(var n=i?qt:Xt,r=t[0].length,s=t.length,o=s,a=Array(s),h=1/0,u=[];o--;){var l=t[o];o&&e&&(l=Jt(l,Zt(e))),h=bn(l.length,h),a[o]=!i&&(e||r>=120&&l.length>=120)?new Ht(o&&l):void 0}l=t[0];var c=-1,d=a[0];t:for(;++c<r&&u.length<h;){var p=l[c],f=e?e(p):p;if(p=i||0!==p?p:0,!(d?Kt(d,f):n(u,f,i))){for(o=s;--o;){var m=a[o];if(!(m?Kt(m,f):n(t[o],f,i)))continue t}d&&d.push(f),u.push(p)}}return u};const Tn=function(t){return le(t)?t:[]};const Mn=ue((function(t){var e=Jt(t,Tn);return e.length&&e[0]===t[0]?wn(e):[]}));const Sn=ue((function(t){var e=Ji(t),i=Jt(t,Tn);return e===Ji(i)?e=void 0:i.pop(),i.length&&i[0]===t[0]?wn(i,qi(e,2)):[]}));const En=ue((function(t){var e=Ji(t),i=Jt(t,Tn);return(e="function"==typeof e?e:void 0)&&i.pop(),i.length&&i[0]===t[0]?wn(i,void 0,e):[]}));var Ln=Array.prototype.join;const An=function(t,e){return null==t?"":Ln.call(t,e)};const Dn=function(t,e,i){for(var n=i+1;n--;)if(t[n]===e)return n;return n};var Pn=Math.max,Cn=Math.min;const On=function(t,e,i){var n=null==t?0:t.length;if(!n)return-1;var r=n;return void 0!==i&&(r=(r=k(i))<0?Pn(n+r,0):Cn(r,n-1)),e==e?Dn(t,e,r):zt(t,Wt,r,!0)};const kn=function(t,e){var i=t.length;if(i)return b(e+=e<0?i:0,i)?t[e]:void 0};const Rn=function(t,e){return t&&t.length?kn(t,k(e)):void 0};const In=function(t,e,i,n){for(var r=i-1,s=t.length;++r<s;)if(n(t[r],e))return r;return-1};var Yn=Array.prototype.splice;const Fn=function(t,e,i,n){var r=n?In:Vt,s=-1,o=e.length,a=t;for(t===e&&(e=q(e)),i&&(a=Jt(t,Zt(i)));++s<o;)for(var h=0,u=e[s],l=i?i(u):u;(h=r(a,l,h,n))>-1;)a!==t&&Yn.call(a,h,1),Yn.call(t,h,1);return t};const Nn=function(t,e){return t&&t.length&&e&&e.length?Fn(t,e):t};const Bn=ue(Nn);const Un=function(t,e,i){return t&&t.length&&e&&e.length?Fn(t,e,qi(i,2)):t};const jn=function(t,e,i){return t&&t.length&&e&&e.length?Fn(t,e,void 0,i):t};const Hn=function(t,e){for(var i=-1,n=e.length,r=Array(n),s=null==t;++i<n;)r[i]=s?void 0:Ui(t,e[i]);return r};const zn=function(t,e){return e.length<2?t:Bi(t,n(e,0,-1))};const Wn=function(t,e){return e=Fi(e,t),null==(t=zn(t,e))||delete t[Ni(Ji(e))]};var Gn=Array.prototype.splice;const Vn=function(t,e){for(var i=t?e.length:0,n=i-1;i--;){var r=e[i];if(i==n||r!==s){var s=r;b(r)?Gn.call(t,r,1):Wn(t,r)}}return t};const Xn=function(t,e){if(t!==e){var i=void 0!==t,n=null===t,r=t==t,s=M(t),o=void 0!==e,a=null===e,h=e==e,u=M(e);if(!a&&!u&&!s&&t>e||s&&o&&h&&!a&&!u||n&&o&&h||!i&&h||!r)return 1;if(!n&&!s&&!u&&t<e||u&&i&&r&&!n&&!s||a&&i&&r||!o&&r||!h)return-1}return 0};const qn=function(t){return he(ie(t,void 0,fn),t+"")};const Jn=qn((function(t,e){var i=null==t?0:t.length,n=Hn(t,e);return Vn(t,Jt(e,(function(t){return b(t,i)?+t:t})).sort(Xn)),n}));const Zn=function(t,e){var i=[];if(!t||!t.length)return i;var n=-1,r=[],s=t.length;for(e=qi(e,3);++n<s;){var o=t[n];e(o,n,t)&&(i.push(o),r.push(n))}return Vn(t,r),i};var Kn=Array.prototype.reverse;const Qn=function(t){return null==t?t:Kn.call(t)};const $n=function(t,e,i){var r=null==t?0:t.length;return r?(i&&"number"!=typeof i&&w(t,e,i)?(e=0,i=r):(e=null==e?0:k(e),i=void 0===i?r:k(i)),n(t,e,i)):[]};var tr=Math.floor,er=Math.min;const ir=function(t,e,i,n){e=i(e);for(var r=0,s=null==t?0:t.length,o=e!=e,a=null===e,h=M(e),u=void 0===e;r<s;){var l=tr((r+s)/2),c=i(t[l]),d=void 0!==c,p=null===c,f=c==c,m=M(c);if(o)var v=n||f;else v=u?f&&(n||d):a?f&&d&&(n||!p):h?f&&d&&!p&&(n||!m):!p&&!m&&(n?c<=e:c<e);v?r=l+1:s=l}return er(s,4294967294)};const nr=function(t,e,i){var n=0,r=null==t?n:t.length;if("number"==typeof e&&e==e&&r<=2147483647){for(;n<r;){var s=n+r>>>1,o=t[s];null!==o&&!M(o)&&(i?o<=e:o<e)?n=s+1:r=s}return r}return ir(t,e,$t,i)};const rr=function(t,e){return nr(t,e)};const sr=function(t,e,i){return ir(t,e,qi(i,2))};const or=function(t,e){var i=null==t?0:t.length;if(i){var n=nr(t,e);if(n<i&&r(t[n],e))return n}return-1};const ar=function(t,e){return nr(t,e,!0)};const hr=function(t,e,i){return ir(t,e,qi(i,2),!0)};const ur=function(t,e){if(null==t?0:t.length){var i=nr(t,e,!0)-1;if(r(t[i],e))return i}return-1};const lr=function(t,e){for(var i=-1,n=t.length,s=0,o=[];++i<n;){var a=t[i],h=e?e(a):a;if(!i||!r(h,u)){var u=h;o[s++]=0===a?0:a}}return o};const cr=function(t){return t&&t.length?lr(t):[]};const dr=function(t,e){return t&&t.length?lr(t,qi(e,2)):[]};const pr=function(t){var e=null==t?0:t.length;return e?n(t,1,e):[]};const fr=function(t,e,i){return t&&t.length?(e=i||void 0===e?1:k(e),n(t,0,e<0?0:e)):[]};const mr=function(t,e,i){var r=null==t?0:t.length;return r?(e=i||void 0===e?1:k(e),n(t,(e=r-e)<0?0:e,r)):[]};const vr=function(t,e){return t&&t.length?tn(t,qi(e,3),!1,!0):[]};const gr=function(t,e){return t&&t.length?tn(t,qi(e,3)):[]};const yr=function(){};const _r=ti&&1/Te(new ti([,-0]))[1]==1/0?function(t){return new ti(t)}:yr;const xr=function(t,e,i){var n=-1,r=Xt,s=t.length,o=!0,a=[],h=a;if(i)o=!1,r=qt;else if(s>=200){var u=e?null:_r(t);if(u)return Te(u);o=!1,r=Kt,h=new Ht}else h=e?[]:a;t:for(;++n<s;){var l=t[n],c=e?e(l):l;if(l=i||0!==l?l:0,o&&c==c){for(var d=h.length;d--;)if(h[d]===c)continue t;e&&h.push(c),a.push(l)}else r(h,c,i)||(h!==a&&h.push(c),a.push(l))}return a};const br=ue((function(t){return xr(X(t,1,le,!0))}));const wr=ue((function(t){var e=Ji(t);return le(e)&&(e=void 0),xr(X(t,1,le,!0),qi(e,2))}));const Tr=ue((function(t){var e=Ji(t);return e="function"==typeof e?e:void 0,xr(X(t,1,le,!0),void 0,e)}));const Mr=function(t){return t&&t.length?xr(t):[]};const Sr=function(t,e){return t&&t.length?xr(t,qi(e,2)):[]};const Er=function(t,e){return e="function"==typeof e?e:void 0,t&&t.length?xr(t,void 0,e):[]};var Lr=Math.max;const Ar=function(t){if(!t||!t.length)return[];var e=0;return t=Ae(t,(function(t){if(le(t))return e=Lr(t.length,e),!0})),ke(e,(function(e){return Jt(t,Gi(e))}))};const Dr=function(t,e){if(!t||!t.length)return[];var i=Ar(t);return null==e?i:Jt(i,(function(t){return te(e,void 0,t)}))};const Pr=ue((function(t,e){return le(t)?Qt(t,e):[]}));const Cr=function(t,e,i){var n=t.length;if(n<2)return n?xr(t[0]):[];for(var r=-1,s=Array(n);++r<n;)for(var o=t[r],a=-1;++a<n;)a!=r&&(s[r]=Qt(s[r]||o,t[a],e,i));return xr(X(s,1),e,i)};const Or=ue((function(t){return Cr(Ae(t,le))}));const kr=ue((function(t){var e=Ji(t);return le(e)&&(e=void 0),Cr(Ae(t,le),qi(e,2))}));const Rr=ue((function(t){var e=Ji(t);return e="function"==typeof e?e:void 0,Cr(Ae(t,le),void 0,e)}));const Ir=ue(Ar);const Yr=function(t,e,i){"__proto__"==e&&re?re(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i};var Fr=Object.prototype.hasOwnProperty;const Nr=function(t,e,i){var n=t[e];Fr.call(t,e)&&r(n,i)&&(void 0!==i||e in t)||Yr(t,e,i)};const Br=function(t,e,i){for(var n=-1,r=t.length,s=e.length,o={};++n<r;){var a=n<s?e[n]:void 0;i(o,t[n],a)}return o};const Ur=function(t,e){return Br(t||[],e||[],Nr)};const jr=function(t,e,i,n){if(!v(t))return t;for(var r=-1,s=(e=Fi(e,t)).length,o=s-1,a=t;null!=a&&++r<s;){var h=Ni(e[r]),u=i;if(r!=o){var l=a[h];void 0===(u=n?n(l,h,a):void 0)&&(u=v(l)?l:b(e[r+1])?[]:{})}Nr(a,h,u),a=a[h]}return t};const Hr=function(t,e){return Br(t||[],e||[],jr)};var zr=ue((function(t){var e=t.length,i=e>1?t[e-1]:void 0;return i="function"==typeof i?(t.pop(),i):void 0,Dr(t,i)}));const Wr={chunk:Y,compact:F,concat:J,difference:ce,differenceBy:Zi,differenceWith:Ki,drop:Qi,dropRight:$i,dropRightWhile:en,dropWhile:nn,fill:an,findIndex:un,findLastIndex:dn,first:pn,flatten:fn,flattenDeep:mn,flattenDepth:vn,fromPairs:gn,head:pn,indexOf:_n,initial:xn,intersection:Mn,intersectionBy:Sn,intersectionWith:En,join:An,last:Ji,lastIndexOf:On,nth:Rn,pull:Bn,pullAll:Nn,pullAllBy:Un,pullAllWith:jn,pullAt:Jn,remove:Zn,reverse:Qn,slice:$n,sortedIndex:rr,sortedIndexBy:sr,sortedIndexOf:or,sortedLastIndex:ar,sortedLastIndexBy:hr,sortedLastIndexOf:ur,sortedUniq:cr,sortedUniqBy:dr,tail:pr,take:fr,takeRight:mr,takeRightWhile:vr,takeWhile:gr,union:br,unionBy:wr,unionWith:Tr,uniq:Mr,uniqBy:Sr,uniqWith:Er,unzip:Ar,unzipWith:Dr,without:Pr,xor:Or,xorBy:kr,xorWith:Rr,zip:Ir,zipObject:Ur,zipObjectDeep:Hr,zipWith:zr};const Gr=function(t,e,i,n){for(var r=-1,s=null==t?0:t.length;++r<s;){var o=t[r];e(n,o,i(o),t)}return n};const Vr=function(t){return function(e,i,n){for(var r=-1,s=Object(e),o=n(e),a=o.length;a--;){var h=o[t?a:++r];if(!1===i(s[h],h,s))break}return e}};const Xr=Vr();const qr=function(t,e){return t&&Xr(t,e,qe)};const Jr=function(t,e){return function(i,n){if(null==i)return i;if(!_(i))return t(i,n);for(var r=i.length,s=e?r:-1,o=Object(i);(e?s--:++s<r)&&!1!==n(o[s],s,o););return i}};const Zr=Jr(qr);const Kr=function(t,e,i,n){return Zr(t,(function(t,r,s){e(n,t,i(t),s)})),n};const Qr=function(t,e){return function(i,n){var r=W(i)?Gr:Kr,s=e?e():{};return r(i,t,qi(n,2),s)}};var $r=Object.prototype.hasOwnProperty;const ts=Qr((function(t,e,i){$r.call(t,i)?++t[i]:Yr(t,i,1)}));const es=function(t,e){for(var i=-1,n=null==t?0:t.length;++i<n&&!1!==e(t[i],i,t););return t};const is=function(t){return"function"==typeof t?t:$t};const ns=function(t,e){return(W(t)?es:Zr)(t,is(e))};const rs=function(t,e){for(var i=null==t?0:t.length;i--&&!1!==e(t[i],i,t););return t};const ss=Vr(!0);const os=function(t,e){return t&&ss(t,e,qe)};const as=Jr(os,!0);const hs=function(t,e){return(W(t)?rs:as)(t,is(e))};const us=function(t,e){for(var i=-1,n=null==t?0:t.length;++i<n;)if(!e(t[i],i,t))return!1;return!0};const ls=function(t,e){var i=!0;return Zr(t,(function(t,n,r){return i=!!e(t,n,r)})),i};const cs=function(t,e,i){var n=W(t)?us:ls;return i&&w(t,e,i)&&(e=void 0),n(t,qi(e,3))};const ds=function(t,e){var i=[];return Zr(t,(function(t,n,r){e(t,n,r)&&i.push(t)})),i};const ps=function(t,e){return(W(t)?Ae:ds)(t,qi(e,3))};const fs=function(t){return function(e,i,n){var r=Object(e);if(!_(e)){var s=qi(i,3);e=qe(e),i=function(t){return s(r[t],t,r)}}var o=t(e,i,n);return o>-1?r[s?e[o]:o]:void 0}};const ms=fs(un);const vs=fs(dn);const gs=function(t,e){var i=-1,n=_(t)?Array(t.length):[];return Zr(t,(function(t,r,s){n[++i]=e(t,r,s)})),n};const ys=function(t,e){return(W(t)?Jt:gs)(t,qi(e,3))};const _s=function(t,e){return X(ys(t,e),1)};const xs=function(t,e){return X(ys(t,e),Infinity)};const bs=function(t,e,i){return i=void 0===i?1:k(i),X(ys(t,e),i)};var ws=Object.prototype.hasOwnProperty;const Ts=Qr((function(t,e,i){ws.call(t,i)?t[i].push(e):Yr(t,i,[e])}));const Ms=function(t){return"string"==typeof t||!W(t)&&T(t)&&"[object String]"==m(t)};const Ss=function(t,e){return Jt(e,(function(e){return t[e]}))};const Es=function(t){return null==t?[]:Ss(t,qe(t))};var Ls=Math.max;const As=function(t,e,i,n){t=_(t)?t:Es(t),i=i&&!n?k(i):0;var r=t.length;return i<0&&(i=Ls(r+i,0)),Ms(t)?i<=r&&t.indexOf(e,i)>-1:!!r&&Vt(t,e,i)>-1};const Ds=function(t,e,i){e=Fi(e,t);var n=null==(t=zn(t,e))?t:t[Ni(Ji(e))];return null==n?void 0:te(n,t,i)};const Ps=ue((function(t,e,i){var n=-1,r="function"==typeof e,s=_(t)?Array(t.length):[];return Zr(t,(function(t){s[++n]=r?te(e,t,i):Ds(t,e,i)})),s}));const Cs=Qr((function(t,e,i){Yr(t,i,e)}));const Os=function(t,e){var i=t.length;for(t.sort(e);i--;)t[i]=t[i].value;return t};const ks=function(t,e,i){for(var n=-1,r=t.criteria,s=e.criteria,o=r.length,a=i.length;++n<o;){var h=Xn(r[n],s[n]);if(h)return n>=a?h:h*("desc"==i[n]?-1:1)}return t.index-e.index};const Rs=function(t,e,i){var n=-1;e=Jt(e.length?e:[$t],Zt(qi));var r=gs(t,(function(t,i,r){return{criteria:Jt(e,(function(e){return e(t)})),index:++n,value:t}}));return Os(r,(function(t,e){return ks(t,e,i)}))};const Is=function(t,e,i,n){return null==t?[]:(W(e)||(e=null==e?[]:[e]),W(i=n?void 0:i)||(i=null==i?[]:[i]),Rs(t,e,i))};const Ys=Qr((function(t,e,i){t[i?0:1].push(e)}),(function(){return[[],[]]}));const Fs=function(t,e,i,n){var r=-1,s=null==t?0:t.length;for(n&&s&&(i=t[++r]);++r<s;)i=e(i,t[r],r,t);return i};const Ns=function(t,e,i,n,r){return r(t,(function(t,r,s){i=n?(n=!1,t):e(i,t,r,s)})),i};const Bs=function(t,e,i){var n=W(t)?Fs:Ns,r=arguments.length<3;return n(t,qi(e,4),i,r,Zr)};const Us=function(t,e,i,n){var r=null==t?0:t.length;for(n&&r&&(i=t[--r]);r--;)i=e(i,t[r],r,t);return i};const js=function(t,e,i){var n=W(t)?Us:Ns,r=arguments.length<3;return n(t,qi(e,4),i,r,as)};const Hs=function(t){if("function"!=typeof t)throw new TypeError("Expected a function");return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}};const zs=function(t,e){return(W(t)?Ae:ds)(t,Hs(qi(e,3)))};var Ws=Math.floor,Gs=Math.random;const Vs=function(t,e){return t+Ws(Gs()*(e-t+1))};const Xs=function(t){var e=t.length;return e?t[Vs(0,e-1)]:void 0};const qs=function(t){return Xs(Es(t))};const Js=function(t){return(W(t)?Xs:qs)(t)};const Zs=function(t,e){var i=-1,n=t.length,r=n-1;for(e=void 0===e?n:e;++i<e;){var s=Vs(i,r),o=t[s];t[s]=t[i],t[i]=o}return t.length=e,t};const Ks=function(t,e){return Zs(q(t),rn(e,0,t.length))};const Qs=function(t,e){var i=Es(t);return Zs(i,rn(e,0,i.length))};const $s=function(t,e,i){return e=(i?w(t,e,i):void 0===e)?1:k(e),(W(t)?Ks:Qs)(t,e)};const to=function(t){return Zs(q(t))};const eo=function(t){return Zs(Es(t))};const io=function(t){return(W(t)?to:eo)(t)};const no=Gi("length");var ro=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");const so=function(t){return ro.test(t)};var oo="[\\ud800-\\udfff]",ao="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",ho="\\ud83c[\\udffb-\\udfff]",uo="[^\\ud800-\\udfff]",lo="(?:\\ud83c[\\udde6-\\uddff]){2}",co="[\\ud800-\\udbff][\\udc00-\\udfff]",po="(?:"+ao+"|"+ho+")"+"?",fo="[\\ufe0e\\ufe0f]?",mo=fo+po+("(?:\\u200d(?:"+[uo,lo,co].join("|")+")"+fo+po+")*"),vo="(?:"+[uo+ao+"?",ao,lo,co,oo].join("|")+")",go=RegExp(ho+"(?="+ho+")|"+vo+mo,"g");const yo=function(t){for(var e=go.lastIndex=0;go.test(t);)++e;return e};const _o=function(t){return so(t)?yo(t):no(t)};const xo=function(t){if(null==t)return 0;if(_(t))return Ms(t)?_o(t):t.length;var e=pi(t);return"[object Map]"==e||"[object Set]"==e?t.size:Xe(t).length};const bo=function(t,e){var i;return Zr(t,(function(t,n,r){return!(i=e(t,n,r))})),!!i};const wo=function(t,e,i){var n=W(t)?_e:bo;return i&&w(t,e,i)&&(e=void 0),n(t,qi(e,3))};var To=ue((function(t,e){if(null==t)return[];var i=e.length;return i>1&&w(t,e[0],e[1])?e=[]:i>2&&w(e[0],e[1],e[2])&&(e=[e[0]]),Rs(t,X(e,1),[])}));const Mo={countBy:ts,each:ns,eachRight:hs,every:cs,filter:ps,find:ms,findLast:vs,flatMap:_s,flatMapDeep:xs,flatMapDepth:bs,forEach:ns,forEachRight:hs,groupBy:Ts,includes:As,invokeMap:Ps,keyBy:Cs,map:ys,orderBy:Is,partition:Ys,reduce:Bs,reduceRight:js,reject:zs,sample:Js,sampleSize:$s,shuffle:io,size:xo,some:wo,sortBy:To};const So=function(){return s.Z.Date.now()},Eo={now:So};const Lo=function(t,e){if("function"!=typeof e)throw new TypeError("Expected a function");return t=k(t),function(){if(--t<1)return e.apply(this,arguments)}};const Ao=ei&&new ei;const Do=Ao?function(t,e){return Ao.set(t,e),t}:$t;var Po=Object.create;const Co=function(){function t(){}return function(e){if(!v(e))return{};if(Po)return Po(e);t.prototype=e;var i=new t;return t.prototype=void 0,i}}();const Oo=function(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var i=Co(t.prototype),n=t.apply(i,e);return v(n)?n:i}};const ko=function(t,e,i){var n=1&e,r=Oo(t);return function e(){var o=this&&this!==s.Z&&this instanceof e?r:t;return o.apply(n?i:this,arguments)}};var Ro=Math.max;const Io=function(t,e,i,n){for(var r=-1,s=t.length,o=i.length,a=-1,h=e.length,u=Ro(s-o,0),l=Array(h+u),c=!n;++a<h;)l[a]=e[a];for(;++r<o;)(c||r<s)&&(l[i[r]]=t[r]);for(;u--;)l[a++]=t[r++];return l};var Yo=Math.max;const Fo=function(t,e,i,n){for(var r=-1,s=t.length,o=-1,a=i.length,h=-1,u=e.length,l=Yo(s-a,0),c=Array(l+u),d=!n;++r<l;)c[r]=t[r];for(var p=r;++h<u;)c[p+h]=e[h];for(;++o<a;)(d||r<s)&&(c[p+i[o]]=t[r++]);return c};const No=function(t,e){for(var i=t.length,n=0;i--;)t[i]===e&&++n;return n};const Bo=function(){};function Uo(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}Uo.prototype=Co(Bo.prototype),Uo.prototype.constructor=Uo;const jo=Uo;const Ho=Ao?function(t){return Ao.get(t)}:yr;const zo={};var Wo=Object.prototype.hasOwnProperty;const Go=function(t){for(var e=t.name+"",i=zo[e],n=Wo.call(zo,e)?i.length:0;n--;){var r=i[n],s=r.func;if(null==s||s==t)return r.name}return e};function Vo(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}Vo.prototype=Co(Bo.prototype),Vo.prototype.constructor=Vo;const Xo=Vo;const qo=function(t){if(t instanceof jo)return t.clone();var e=new Xo(t.__wrapped__,t.__chain__);return e.__actions__=q(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e};var Jo=Object.prototype.hasOwnProperty;function Zo(t){if(T(t)&&!W(t)&&!(t instanceof jo)){if(t instanceof Xo)return t;if(Jo.call(t,"__wrapped__"))return qo(t)}return new Xo(t)}Zo.prototype=Bo.prototype,Zo.prototype.constructor=Zo;const Ko=Zo;const Qo=function(t){var e=Go(t),i=Ko[e];if("function"!=typeof i||!(e in jo.prototype))return!1;if(t===i)return!0;var n=Ho(i);return!!n&&t===n[0]};const $o=ae(Do);var ta=/\{\n\/\* \[wrapped with (.+)\] \*/,ea=/,? & /;const ia=function(t){var e=t.match(ta);return e?e[1].split(ea):[]};var na=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;const ra=function(t,e){var i=e.length;if(!i)return t;var n=i-1;return e[n]=(i>1?"& ":"")+e[n],e=e.join(i>2?", ":" "),t.replace(na,"{\n/* [wrapped with "+e+"] */\n")};var sa=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]];const oa=function(t,e){return es(sa,(function(i){var n="_."+i[0];e&i[1]&&!Xt(t,n)&&t.push(n)})),t.sort()};const aa=function(t,e,i){var n=e+"";return he(t,ra(n,oa(ia(n),i)))};const ha=function(t,e,i,n,r,s,o,a,h,u){var l=8&e;e|=l?32:64,4&(e&=~(l?64:32))||(e&=-4);var c=[t,e,r,l?s:void 0,l?o:void 0,l?void 0:s,l?void 0:o,a,h,u],d=i.apply(void 0,c);return Qo(t)&&$o(d,c),d.placeholder=n,aa(d,t,e)};const ua=function(t){return t.placeholder};var la=Math.min;const ca=function(t,e){for(var i=t.length,n=la(e.length,i),r=q(t);n--;){var s=e[n];t[n]=b(s,i)?r[s]:void 0}return t};var da="__lodash_placeholder__";const pa=function(t,e){for(var i=-1,n=t.length,r=0,s=[];++i<n;){var o=t[i];o!==e&&o!==da||(t[i]=da,s[r++]=i)}return s};const fa=function t(e,i,n,r,o,a,h,u,l,c){var d=128&i,p=1&i,f=2&i,m=24&i,v=512&i,g=f?void 0:Oo(e);return function y(){for(var _=arguments.length,x=Array(_),b=_;b--;)x[b]=arguments[b];if(m)var w=ua(y),T=No(x,w);if(r&&(x=Io(x,r,o,m)),a&&(x=Fo(x,a,h,m)),_-=T,m&&_<c){var M=pa(x,w);return ha(e,i,t,y.placeholder,n,x,M,u,l,c-_)}var S=p?n:this,E=f?S[e]:e;return _=x.length,u?x=ca(x,u):v&&_>1&&x.reverse(),d&&l<_&&(x.length=l),this&&this!==s.Z&&this instanceof y&&(E=g||Oo(E)),E.apply(S,x)}};const ma=function(t,e,i){var n=Oo(t);return function r(){for(var o=arguments.length,a=Array(o),h=o,u=ua(r);h--;)a[h]=arguments[h];var l=o<3&&a[0]!==u&&a[o-1]!==u?[]:pa(a,u);if((o-=l.length)<i)return ha(t,e,fa,r.placeholder,void 0,a,l,void 0,void 0,i-o);var c=this&&this!==s.Z&&this instanceof r?n:t;return te(c,this,a)}};const va=function(t,e,i,n){var r=1&e,o=Oo(t);return function e(){for(var a=-1,h=arguments.length,u=-1,l=n.length,c=Array(l+h),d=this&&this!==s.Z&&this instanceof e?o:t;++u<l;)c[u]=n[u];for(;h--;)c[u++]=arguments[++a];return te(d,r?i:this,c)}};var ga="__lodash_placeholder__",ya=128,_a=Math.min;const xa=function(t,e){var i=t[1],n=e[1],r=i|n,s=r<131,o=n==ya&&8==i||n==ya&&256==i&&t[7].length<=e[8]||384==n&&e[7].length<=e[8]&&8==i;if(!s&&!o)return t;1&n&&(t[2]=e[2],r|=1&i?0:4);var a=e[3];if(a){var h=t[3];t[3]=h?Io(h,a,e[4]):a,t[4]=h?pa(t[3],ga):e[4]}return(a=e[5])&&(h=t[5],t[5]=h?Fo(h,a,e[6]):a,t[6]=h?pa(t[5],ga):e[6]),(a=e[7])&&(t[7]=a),n&ya&&(t[8]=null==t[8]?e[8]:_a(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=r,t};var ba=Math.max;const wa=function(t,e,i,n,r,s,o,a){var h=2&e;if(!h&&"function"!=typeof t)throw new TypeError("Expected a function");var u=n?n.length:0;if(u||(e&=-97,n=r=void 0),o=void 0===o?o:ba(k(o),0),a=void 0===a?a:k(a),u-=r?r.length:0,64&e){var l=n,c=r;n=r=void 0}var d=h?void 0:Ho(t),p=[t,e,i,n,r,l,c,s,o,a];if(d&&xa(p,d),t=p[0],e=p[1],i=p[2],n=p[3],r=p[4],!(a=p[9]=void 0===p[9]?h?0:t.length:ba(p[9]-u,0))&&24&e&&(e&=-25),e&&1!=e)f=8==e||16==e?ma(t,e,a):32!=e&&33!=e||r.length?fa.apply(void 0,p):va(t,e,i,n);else var f=ko(t,e,i);return aa((d?Do:$o)(f,p),t,e)};const Ta=function(t,e,i){return e=i?void 0:e,e=t&&null==e?t.length:e,wa(t,128,void 0,void 0,void 0,void 0,e)};const Ma=function(t,e){var i;if("function"!=typeof e)throw new TypeError("Expected a function");return t=k(t),function(){return--t>0&&(i=e.apply(this,arguments)),t<=1&&(e=void 0),i}};var Sa=ue((function(t,e,i){var n=1;if(i.length){var r=pa(i,ua(Sa));n|=32}return wa(t,n,e,i,r)}));Sa.placeholder={};const Ea=Sa;var La=ue((function(t,e,i){var n=3;if(i.length){var r=pa(i,ua(La));n|=32}return wa(e,n,t,i,r)}));La.placeholder={};const Aa=La;function Da(t,e,i){var n=wa(t,8,void 0,void 0,void 0,void 0,void 0,e=i?void 0:e);return n.placeholder=Da.placeholder,n}Da.placeholder={};const Pa=Da;function Ca(t,e,i){var n=wa(t,16,void 0,void 0,void 0,void 0,void 0,e=i?void 0:e);return n.placeholder=Ca.placeholder,n}Ca.placeholder={};const Oa=Ca;var ka=Math.max,Ra=Math.min;const Ia=function(t,e,i){var n,r,s,o,a,h,u=0,l=!1,c=!1,d=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function p(e){var i=n,s=r;return n=r=void 0,u=e,o=t.apply(s,i)}function f(t){return u=t,a=setTimeout(g,e),l?p(t):o}function m(t){var i=t-h;return void 0===h||i>=e||i<0||c&&t-u>=s}function g(){var t=So();if(m(t))return y(t);a=setTimeout(g,function(t){var i=e-(t-h);return c?Ra(i,s-(t-u)):i}(t))}function y(t){return a=void 0,d&&n?p(t):(n=r=void 0,o)}function _(){var t=So(),i=m(t);if(n=arguments,r=this,h=t,i){if(void 0===a)return f(h);if(c)return clearTimeout(a),a=setTimeout(g,e),p(h)}return void 0===a&&(a=setTimeout(g,e)),o}return e=P(e)||0,v(i)&&(l=!!i.leading,s=(c="maxWait"in i)?ka(P(i.maxWait)||0,e):s,d="trailing"in i?!!i.trailing:d),_.cancel=function(){void 0!==a&&clearTimeout(a),u=0,n=h=r=a=void 0},_.flush=function(){return void 0===a?o:y(So())},_};const Ya=function(t,e,i){if("function"!=typeof t)throw new TypeError("Expected a function");return setTimeout((function(){t.apply(void 0,i)}),e)};const Fa=ue((function(t,e){return Ya(t,1,e)}));const Na=ue((function(t,e,i){return Ya(t,P(e)||0,i)}));const Ba=function(t){return wa(t,512)};const Ua=function(t){return Ma(2,t)};const ja=ue;var Ha=Math.min;const za=ja((function(t,e){var i=(e=1==e.length&&W(e[0])?Jt(e[0],Zt(qi)):Jt(X(e,1),Zt(qi))).length;return ue((function(n){for(var r=-1,s=Ha(n.length,i);++r<s;)n[r]=e[r].call(this,n[r]);return te(t,this,n)}))}));var Wa=ue((function(t,e){var i=pa(e,ua(Wa));return wa(t,32,void 0,e,i)}));Wa.placeholder={};const Ga=Wa;var Va=ue((function(t,e){var i=pa(e,ua(Va));return wa(t,64,void 0,e,i)}));Va.placeholder={};const Xa=Va;const qa=qn((function(t,e){return wa(t,256,void 0,void 0,void 0,e)}));const Ja=function(t,e){if("function"!=typeof t)throw new TypeError("Expected a function");return e=void 0===e?e:k(e),ue(t,e)};const Za=function(t,e,i){var r=t.length;return i=void 0===i?r:i,!e&&i>=r?t:n(t,e,i)};var Ka=Math.max;const Qa=function(t,e,i){var n=!0,r=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return v(i)&&(n="leading"in i?!!i.leading:n,r="trailing"in i?!!i.trailing:r),Ia(t,e,{leading:n,maxWait:e,trailing:r})};const $a=function(t){return Ta(t,1)};const th=function(t,e){return Ga(is(e),t)},eh={after:Lo,ary:Ta,before:Ma,bind:Ea,bindKey:Aa,curry:Pa,curryRight:Oa,debounce:Ia,defer:Fa,delay:Na,flip:Ba,memoize:Di,negate:Hs,once:Ua,overArgs:za,partial:Ga,partialRight:Xa,rearg:qa,rest:Ja,spread:function(t,e){if("function"!=typeof t)throw new TypeError("Expected a function");return e=null==e?0:Ka(k(e),0),ue((function(i){var n=i[e],r=Za(i,0,e);return n&&N(r,n),te(t,this,r)}))},throttle:Qa,unary:$a,wrap:th};const ih=function(){if(!arguments.length)return[];var t=arguments[0];return W(t)?t:[t]};const nh=function(t,e,i,n){var r=!i;i||(i={});for(var s=-1,o=e.length;++s<o;){var a=e[s],h=n?n(i[a],t[a],a,i,t):void 0;void 0===h&&(h=t[a]),r?Yr(i,a,h):Nr(i,a,h)}return i};const rh=function(t,e){return t&&nh(e,qe(e),t)};const sh=function(t){var e=[];if(null!=t)for(var i in Object(t))e.push(i);return e};var oh=Object.prototype.hasOwnProperty;const ah=function(t){if(!v(t))return sh(t);var e=ze(t),i=[];for(var n in t)("constructor"!=n||!e&&oh.call(t,n))&&i.push(n);return i};const hh=function(t){return _(t)?je(t,!0):ah(t)};const uh=function(t,e){return t&&nh(e,hh(e),t)};var lh=i(49455);const ch=function(t,e){return nh(t,Oe(t),e)};const dh=We(Object.getPrototypeOf,Object);const ph=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)N(e,Oe(t)),t=dh(t);return e}:De;const fh=function(t,e){return nh(t,ph(t),e)};const mh=function(t){return Le(t,hh,ph)};var vh=Object.prototype.hasOwnProperty;const gh=function(t){var e=t.length,i=new t.constructor(e);return e&&"string"==typeof t[0]&&vh.call(t,"index")&&(i.index=t.index,i.input=t.input),i};const yh=function(t){var e=new t.constructor(t.byteLength);return new be(e).set(new be(t)),e};const _h=function(t,e){var i=e?yh(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)};var xh=/\w*$/;const bh=function(t){var e=new t.constructor(t.source,xh.exec(t));return e.lastIndex=t.lastIndex,e};var wh=o?o.prototype:void 0,Th=wh?wh.valueOf:void 0;const Mh=function(t){return Th?Object(Th.call(t)):{}};const Sh=function(t,e){var i=e?yh(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)};const Eh=function(t,e,i){var n=t.constructor;switch(e){case"[object ArrayBuffer]":return yh(t);case"[object Boolean]":case"[object Date]":return new n(+t);case"[object DataView]":return _h(t,i);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return Sh(t,i);case"[object Map]":return new n;case"[object Number]":case"[object String]":return new n(t);case"[object RegExp]":return bh(t);case"[object Set]":return new n;case"[object Symbol]":return Mh(t)}};const Lh=function(t){return"function"!=typeof t.constructor||ze(t)?{}:Co(dh(t))};const Ah=function(t){return T(t)&&"[object Map]"==pi(t)};var Dh=Fe.Z&&Fe.Z.isMap;const Ph=Dh?Zt(Dh):Ah;const Ch=function(t){return T(t)&&"[object Set]"==pi(t)};var Oh=Fe.Z&&Fe.Z.isSet;const kh=Oh?Zt(Oh):Ch;var Rh="[object Arguments]",Ih="[object Function]",Yh="[object Object]",Fh={};Fh[Rh]=Fh["[object Array]"]=Fh["[object ArrayBuffer]"]=Fh["[object DataView]"]=Fh["[object Boolean]"]=Fh["[object Date]"]=Fh["[object Float32Array]"]=Fh["[object Float64Array]"]=Fh["[object Int8Array]"]=Fh["[object Int16Array]"]=Fh["[object Int32Array]"]=Fh["[object Map]"]=Fh["[object Number]"]=Fh["[object Object]"]=Fh["[object RegExp]"]=Fh["[object Set]"]=Fh["[object String]"]=Fh["[object Symbol]"]=Fh["[object Uint8Array]"]=Fh["[object Uint8ClampedArray]"]=Fh["[object Uint16Array]"]=Fh["[object Uint32Array]"]=!0,Fh["[object Error]"]=Fh[Ih]=Fh["[object WeakMap]"]=!1;const Nh=function t(e,i,n,r,s,o){var a,h=1&i,u=2&i,l=4&i;if(n&&(a=s?n(e,r,s,o):n(e)),void 0!==a)return a;if(!v(e))return e;var c=W(e);if(c){if(a=gh(e),!h)return q(e,a)}else{var d=pi(e),p=d==Ih||"[object GeneratorFunction]"==d;if((0,Re.Z)(e))return(0,lh.Z)(e,h);if(d==Yh||d==Rh||p&&!s){if(a=u||p?{}:Lh(e),!h)return u?fh(e,uh(a,e)):ch(e,rh(a,e))}else{if(!Fh[d])return s?e:{};a=Eh(e,d,h)}}o||(o=new ye);var f=o.get(e);if(f)return f;o.set(e,a),kh(e)?e.forEach((function(r){a.add(t(r,i,n,r,e,o))})):Ph(e)&&e.forEach((function(r,s){a.set(s,t(r,i,n,s,e,o))}));var m=l?u?mh:Je:u?keysIn:qe,g=c?void 0:m(e);return es(g||e,(function(r,s){g&&(r=e[s=r]),Nr(a,s,t(r,i,n,s,e,o))})),a};const Bh=function(t){return Nh(t,4)};const Uh=function(t){return Nh(t,5)};const jh=function(t,e){return Nh(t,5,e="function"==typeof e?e:void 0)};const Hh=function(t,e){return Nh(t,4,e="function"==typeof e?e:void 0)};const zh=function(t,e,i){var n=i.length;if(null==t)return!n;for(t=Object(t);n--;){var r=i[n],s=e[r],o=t[r];if(void 0===o&&!(r in t)||!s(o))return!1}return!0};const Wh=function(t,e){return null==e||zh(t,e,qe(e))};const Gh=function(t,e){return t>e};const Vh=function(t){return function(e,i){return"string"==typeof e&&"string"==typeof i||(e=P(e),i=P(i)),t(e,i)}};const Xh=Vh(Gh);const qh=Vh((function(t,e){return t>=e}));const Jh=function(t){return T(t)&&"[object ArrayBuffer]"==m(t)};var Zh=Fe.Z&&Fe.Z.isArrayBuffer;const Kh=Zh?Zt(Zh):Jh;const Qh=function(t){return!0===t||!1===t||T(t)&&"[object Boolean]"==m(t)};const $h=function(t){return T(t)&&"[object Date]"==m(t)};var tu=Fe.Z&&Fe.Z.isDate;const eu=tu?Zt(tu):$h;var iu=Function.prototype,nu=Object.prototype,ru=iu.toString,su=nu.hasOwnProperty,ou=ru.call(Object);const au=function(t){if(!T(t)||"[object Object]"!=m(t))return!1;var e=dh(t);if(null===e)return!0;var i=su.call(e,"constructor")&&e.constructor;return"function"==typeof i&&i instanceof i&&ru.call(i)==ou};const hu=function(t){return T(t)&&1===t.nodeType&&!au(t)};var uu=Object.prototype.hasOwnProperty;const lu=function(t){if(null==t)return!0;if(_(t)&&(W(t)||"string"==typeof t||"function"==typeof t.splice||(0,Re.Z)(t)||Be(t)||z(t)))return!t.length;var e=pi(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if(ze(t))return!Xe(t).length;for(var i in t)if(uu.call(t,i))return!1;return!0};const cu=function(t,e){return _i(t,e)};const du=function(t,e,i){var n=(i="function"==typeof i?i:void 0)?i(t,e):void 0;return void 0===n?_i(t,e,void 0,i):!!n};const pu=function(t){if(!T(t))return!1;var e=m(t);return"[object Error]"==e||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!au(t)};var fu=s.Z.isFinite;const mu=function(t){return"number"==typeof t&&fu(t)};const vu=function(t){return"number"==typeof t&&t==k(t)};const gu=function(t,e){return t===e||xi(t,e,wi(e))};const yu=function(t,e,i){return i="function"==typeof i?i:void 0,xi(t,e,wi(e),i)};const _u=function(t){return"number"==typeof t||T(t)&&"[object Number]"==m(t)};const xu=function(t){return _u(t)&&t!=+t};var bu=i(60880);const wu=Z?g:bu.Z;const Tu=function(t){if(wu(t))throw new Error("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return at(t)};const Mu=function(t){return null==t};const Su=function(t){return null===t};const Eu=function(t){return T(t)&&"[object RegExp]"==m(t)};var Lu=Fe.Z&&Fe.Z.isRegExp;const Au=Lu?Zt(Lu):Eu;var Du=9007199254740991;const Pu=function(t){return vu(t)&&t>=-9007199254740991&&t<=Du};const Cu=function(t){return void 0===t};const Ou=function(t){return T(t)&&"[object WeakMap]"==pi(t)};const ku=function(t){return T(t)&&"[object WeakSet]"==m(t)};const Ru=function(t,e){return t<e};const Iu=Vh(Ru);const Yu=Vh((function(t,e){return t<=e}));const Fu=function(t){for(var e,i=[];!(e=t.next()).done;)i.push(e.value);return i};const Nu=function(t){return t.split("")};var Bu="[\\ud800-\\udfff]",Uu="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",ju="[^\\ud800-\\udfff]",Hu="(?:\\ud83c[\\udde6-\\uddff]){2}",zu="[\\ud800-\\udbff][\\udc00-\\udfff]",Wu="(?:"+Uu+"|"+"\\ud83c[\\udffb-\\udfff])"+"?",Gu="[\\ufe0e\\ufe0f]?",Vu=Gu+Wu+("(?:\\u200d(?:"+[ju,Hu,zu].join("|")+")"+Gu+Wu+")*"),Xu="(?:"+[ju+Uu+"?",Uu,Hu,zu,Bu].join("|")+")",qu=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+Xu+Vu,"g");const Ju=function(t){return t.match(qu)||[]};const Zu=function(t){return so(t)?Ju(t):Nu(t)};var Ku=o?o.iterator:void 0;const Qu=function(t){if(!t)return[];if(_(t))return Ms(t)?Zu(t):q(t);if(Ku&&t[Ku])return Fu(t[Ku]());var e=pi(t);return("[object Map]"==e?we:"[object Set]"==e?Te:Es)(t)};const $u=function(t){return nh(t,hh(t))};var tl=9007199254740991;const el=function(t){return t?rn(k(t),-9007199254740991,tl):0===t?t:0},il={castArray:ih,clone:Bh,cloneDeep:Uh,cloneDeepWith:jh,cloneWith:Hh,conformsTo:Wh,eq:r,gt:Xh,gte:qh,isArguments:z,isArray:W,isArrayBuffer:Kh,isArrayLike:_,isArrayLikeObject:le,isBoolean:Qh,isBuffer:Re.Z,isDate:eu,isElement:hu,isEmpty:lu,isEqual:cu,isEqualWith:du,isError:pu,isFinite:mu,isFunction:g,isInteger:vu,isLength:y,isMap:Ph,isMatch:gu,isMatchWith:yu,isNaN:xu,isNative:Tu,isNil:Mu,isNull:Su,isNumber:_u,isObject:v,isObjectLike:T,isPlainObject:au,isRegExp:Au,isSafeInteger:Pu,isSet:kh,isString:Ms,isSymbol:M,isTypedArray:Be,isUndefined:Cu,isWeakMap:Ou,isWeakSet:ku,lt:Iu,lte:Yu,toArray:Qu,toFinite:O,toInteger:k,toLength:sn,toNumber:P,toPlainObject:$u,toSafeInteger:el,toString:Yi};const nl=function(t){return"number"==typeof t?t:M(t)?NaN:+t};const rl=function(t,e){return function(i,n){var r;if(void 0===i&&void 0===n)return e;if(void 0!==i&&(r=i),void 0!==n){if(void 0===r)return n;"string"==typeof i||"string"==typeof n?(i=Ii(i),n=Ii(n)):(i=nl(i),n=nl(n)),r=t(i,n)}return r}};const sl=rl((function(t,e){return t+e}),0);var ol=s.Z.isFinite,al=Math.min;const hl=function(t){var e=Math[t];return function(t,i){if(t=P(t),(i=null==i?0:al(k(i),292))&&ol(t)){var n=(Yi(t)+"e").split("e"),r=e(n[0]+"e"+(+n[1]+i));return+((n=(Yi(r)+"e").split("e"))[0]+"e"+(+n[1]-i))}return e(t)}};const ul=hl("ceil");const ll=rl((function(t,e){return t/e}),1);var cl=hl("floor");const dl=function(t,e,i){for(var n=-1,r=t.length;++n<r;){var s=t[n],o=e(s);if(null!=o&&(void 0===a?o==o&&!M(o):i(o,a)))var a=o,h=s}return h};const pl=function(t,e){for(var i,n=-1,r=t.length;++n<r;){var s=e(t[n]);void 0!==s&&(i=void 0===i?s:i+s)}return i};const fl=function(t,e){var i=null==t?0:t.length;return i?pl(t,e)/i:NaN};const ml={add:sl,ceil:ul,divide:ll,floor:cl,max:function(t){return t&&t.length?dl(t,$t,Gh):void 0},maxBy:function(t,e){return t&&t.length?dl(t,qi(e,2),Gh):void 0},mean:function(t){return fl(t,$t)},meanBy:function(t,e){return fl(t,qi(e,2))},min:function(t){return t&&t.length?dl(t,$t,Ru):void 0},minBy:function(t,e){return t&&t.length?dl(t,qi(e,2),Ru):void 0},multiply:rl((function(t,e){return t*e}),1),round:hl("round"),subtract:rl((function(t,e){return t-e}),0),sum:function(t){return t&&t.length?pl(t,$t):0},sumBy:function(t,e){return t&&t.length?pl(t,qi(e,2)):0}};const vl=function(t,e,i){return void 0===i&&(i=e,e=void 0),void 0!==i&&(i=(i=P(i))==i?i:0),void 0!==e&&(e=(e=P(e))==e?e:0),rn(P(t),e,i)};var gl=Math.max,yl=Math.min;const _l=function(t,e,i){return t>=yl(e,i)&&t<gl(e,i)};const xl=function(t,e,i){return e=O(e),void 0===i?(i=e,e=0):i=O(i),t=P(t),_l(t,e,i)};var bl=parseFloat,wl=Math.min,Tl=Math.random;const Ml={clamp:vl,inRange:xl,random:function(t,e,i){if(i&&"boolean"!=typeof i&&w(t,e,i)&&(e=i=void 0),void 0===i&&("boolean"==typeof e?(i=e,e=void 0):"boolean"==typeof t&&(i=t,t=void 0)),void 0===t&&void 0===e?(t=0,e=1):(t=O(t),void 0===e?(e=t,t=0):e=O(e)),t>e){var n=t;t=e,e=n}if(i||t%1||e%1){var r=Tl();return wl(t+r*(e-t+bl("1e-"+((r+"").length-1))),e)}return Vs(t,e)}};const Sl=function(t){return ue((function(e,i){var n=-1,r=i.length,s=r>1?i[r-1]:void 0,o=r>2?i[2]:void 0;for(s=t.length>3&&"function"==typeof s?(r--,s):void 0,o&&w(i[0],i[1],o)&&(s=r<3?void 0:s,r=1),e=Object(e);++n<r;){var a=i[n];a&&t(e,a,n,s)}return e}))};var El=Object.prototype.hasOwnProperty;const Ll=Sl((function(t,e){if(ze(e)||_(e))nh(e,qe(e),t);else for(var i in e)El.call(e,i)&&Nr(t,i,e[i])}));const Al=Sl((function(t,e){nh(e,hh(e),t)}));const Dl=Sl((function(t,e,i,n){nh(e,hh(e),t,n)}));const Pl=Sl((function(t,e,i,n){nh(e,qe(e),t,n)}));const Cl=qn(Hn);const Ol=function(t,e){var i=Co(t);return null==e?i:rh(i,e)};var kl=Object.prototype,Rl=kl.hasOwnProperty;const Il=ue((function(t,e){t=Object(t);var i=-1,n=e.length,s=n>2?e[2]:void 0;for(s&&w(e[0],e[1],s)&&(n=1);++i<n;)for(var o=e[i],a=hh(o),h=-1,u=a.length;++h<u;){var l=a[h],c=t[l];(void 0===c||r(c,kl[l])&&!Rl.call(t,l))&&(t[l]=o[l])}return t}));const Yl=function(t,e,i){(void 0!==i&&!r(t[e],i)||void 0===i&&!(e in t))&&Yr(t,e,i)};const Fl=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]};const Nl=function(t,e,i,n,r,s,o){var a=Fl(t,i),h=Fl(e,i),u=o.get(h);if(u)Yl(t,i,u);else{var l=s?s(a,h,i+"",t,e,o):void 0,c=void 0===l;if(c){var d=W(h),p=!d&&(0,Re.Z)(h),f=!d&&!p&&Be(h);l=h,d||p||f?W(a)?l=a:le(a)?l=q(a):p?(c=!1,l=(0,lh.Z)(h,!0)):f?(c=!1,l=Sh(h,!0)):l=[]:au(h)||z(h)?(l=a,z(a)?l=$u(a):v(a)&&!g(a)||(l=Lh(h))):c=!1}c&&(o.set(h,l),r(l,h,n,s,o),o.delete(h)),Yl(t,i,l)}};const Bl=function t(e,i,n,r,s){e!==i&&Xr(i,(function(o,a){if(s||(s=new ye),v(o))Nl(e,i,a,n,t,r,s);else{var h=r?r(Fl(e,a),o,a+"",e,i,s):void 0;void 0===h&&(h=o),Yl(e,a,h)}}),hh)};const Ul=function t(e,i,n,r,s,o){return v(e)&&v(i)&&(o.set(i,e),Bl(e,i,void 0,t,o),o.delete(i)),e};const jl=Sl((function(t,e,i,n){Bl(t,e,i,n)}));const Hl=ue((function(t){return t.push(void 0,Ul),te(jl,void 0,t)}));const zl=function(t,e){return Jt(e,(function(e){return[e,t[e]]}))};const Wl=function(t){var e=-1,i=Array(t.size);return t.forEach((function(t){i[++e]=[t,t]})),i};const Gl=function(t){return function(e){var i=pi(e);return"[object Map]"==i?we(e):"[object Set]"==i?Wl(e):zl(e,t(e))}};const Vl=Gl(qe);const Xl=Gl(hh);const ql=function(t,e,i){var n;return i(t,(function(t,i,r){if(e(t,i,r))return n=i,!1})),n};const Jl=function(t,e){return ql(t,qi(e,3),qr)};const Zl=function(t,e){return ql(t,qi(e,3),os)};const Kl=function(t,e){return null==t?t:Xr(t,is(e),hh)};const Ql=function(t,e){return null==t?t:ss(t,is(e),hh)};const $l=function(t,e){return t&&qr(t,is(e))};const tc=function(t,e){return t&&os(t,is(e))};const ec=function(t,e){return Ae(e,(function(e){return g(t[e])}))};const ic=function(t){return null==t?[]:ec(t,qe(t))};const nc=function(t){return null==t?[]:ec(t,hh(t))};var rc=Object.prototype.hasOwnProperty;const sc=function(t,e){return null!=t&&rc.call(t,e)};const oc=function(t,e){return null!=t&&Hi(t,e,sc)};const ac=function(t,e,i,n){return qr(t,(function(t,r,s){e(n,i(t),r,s)})),n};const hc=function(t,e){return function(i,n){return ac(i,t,e(n),{})}};var uc=Object.prototype.toString;const lc=hc((function(t,e,i){null!=e&&"function"!=typeof e.toString&&(e=uc.call(e)),t[e]=i}),ne($t));var cc=Object.prototype,dc=cc.hasOwnProperty,pc=cc.toString;const fc=hc((function(t,e,i){null!=e&&"function"!=typeof e.toString&&(e=pc.call(e)),dc.call(t,e)?t[e].push(i):t[e]=[i]}),qi);const mc=ue(Ds);const vc=function(t,e){var i={};return e=qi(e,3),qr(t,(function(t,n,r){Yr(i,e(t,n,r),t)})),i};const gc=function(t,e){var i={};return e=qi(e,3),qr(t,(function(t,n,r){Yr(i,n,e(t,n,r))})),i};const yc=Sl((function(t,e,i){Bl(t,e,i)}));const _c=function(t){return au(t)?void 0:t};const xc=qn((function(t,e){var i={};if(null==t)return i;var n=!1;e=Jt(e,(function(e){return e=Fi(e,t),n||(n=e.length>1),e})),nh(t,mh(t),i),n&&(i=Nh(i,7,_c));for(var r=e.length;r--;)Wn(i,e[r]);return i}));const bc=function(t,e,i){for(var n=-1,r=e.length,s={};++n<r;){var o=e[n],a=Bi(t,o);i(a,o)&&jr(s,Fi(o,t),a)}return s};const wc=function(t,e){if(null==t)return{};var i=Jt(mh(t),(function(t){return[t]}));return e=qi(e),bc(t,i,(function(t,i){return e(t,i[0])}))};const Tc=function(t,e){return wc(t,Hs(qi(e)))};const Mc=function(t,e){return bc(t,e,(function(e,i){return zi(t,i)}))};var Sc=qn((function(t,e){return null==t?{}:Mc(t,e)}));const Ec=function(t,e,i,n){return jr(t,e,i(Bi(t,e)),n)};const Lc=function(t){return null==t?[]:Ss(t,hh(t))},Ac={assign:Ll,assignIn:Al,assignInWith:Dl,assignWith:Pl,at:Cl,create:Ol,defaults:Il,defaultsDeep:Hl,entries:Vl,entriesIn:Xl,extend:Al,extendWith:Dl,findKey:Jl,findLastKey:Zl,forIn:Kl,forInRight:Ql,forOwn:$l,forOwnRight:tc,functions:ic,functionsIn:nc,get:Ui,has:oc,hasIn:zi,invert:lc,invertBy:fc,invoke:mc,keys:qe,keysIn:hh,mapKeys:vc,mapValues:gc,merge:yc,mergeWith:jl,omit:xc,omitBy:Tc,pick:Sc,pickBy:wc,result:function(t,e,i){var n=-1,r=(e=Fi(e,t)).length;for(r||(r=1,t=void 0);++n<r;){var s=null==t?void 0:t[Ni(e[n])];void 0===s&&(n=r,s=i),t=g(s)?s.call(t):s}return t},set:function(t,e,i){return null==t?t:jr(t,e,i)},setWith:function(t,e,i,n){return n="function"==typeof n?n:void 0,null==t?t:jr(t,e,i,n)},toPairs:Vl,toPairsIn:Xl,transform:function(t,e,i){var n=W(t),r=n||(0,Re.Z)(t)||Be(t);if(e=qi(e,4),null==i){var s=t&&t.constructor;i=r?n?new s:[]:v(t)&&g(s)?Co(dh(t)):{}}return(r?es:qr)(t,(function(t,n,r){return e(i,t,n,r)})),i},unset:function(t,e){return null==t||Wn(t,e)},update:function(t,e,i){return null==t?t:Ec(t,e,is(i))},updateWith:function(t,e,i,n){return n="function"==typeof n?n:void 0,null==t?t:Ec(t,e,is(i),n)},values:Es,valuesIn:Lc};const Dc=function(t,e){return e(t)};var Pc=qn((function(t){var e=t.length,i=e?t[0]:0,n=this.__wrapped__,r=function(e){return Hn(e,t)};return!(e>1||this.__actions__.length)&&n instanceof jo&&b(i)?((n=n.slice(i,+i+(e?1:0))).__actions__.push({func:Dc,args:[r],thisArg:void 0}),new Xo(n,this.__chain__).thru((function(t){return e&&!t.length&&t.push(void 0),t}))):this.thru(r)}));const Cc=function(t){var e=Ko(t);return e.__chain__=!0,e};const Oc=function(t,e){var i=t;return i instanceof jo&&(i=i.value()),Fs(e,(function(t,e){return e.func.apply(e.thisArg,N([t],e.args))}),i)};const kc=function(){return Oc(this.__wrapped__,this.__actions__)};const Rc=function(){return Cc(this)},Ic={at:Pc,chain:Cc,commit:function(){return new Xo(this.value(),this.__chain__)},lodash:Ko,next:function(){void 0===this.__values__&&(this.__values__=Qu(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?void 0:this.__values__[this.__index__++]}},plant:function(t){for(var e,i=this;i instanceof Bo;){var n=qo(i);n.__index__=0,n.__values__=void 0,e?r.__wrapped__=n:e=n;var r=n;i=i.__wrapped__}return r.__wrapped__=t,e},reverse:function(){var t=this.__wrapped__;if(t instanceof jo){var e=t;return this.__actions__.length&&(e=new jo(this)),(e=e.reverse()).__actions__.push({func:Dc,args:[Qn],thisArg:void 0}),new Xo(e,this.__chain__)}return this.thru(Qn)},tap:function(t,e){return e(t),t},thru:Dc,toIterator:function(){return this},toJSON:kc,value:kc,valueOf:kc,wrapperChain:Rc};const Yc=function(t){return function(e){e=Yi(e);var i=so(e)?Zu(e):void 0,n=i?i[0]:e.charAt(0),r=i?Za(i,1).join(""):e.slice(1);return n[t]()+r}};const Fc=Yc("toUpperCase");const Nc=function(t){return Fc(Yi(t).toLowerCase())};const Bc=function(t){return function(e){return null==t?void 0:t[e]}};const Uc=Bc({\u00c0:"A",\u00c1:"A",\u00c2:"A",\u00c3:"A",\u00c4:"A",\u00c5:"A",\u00e0:"a",\u00e1:"a",\u00e2:"a",\u00e3:"a",\u00e4:"a",\u00e5:"a",\u00c7:"C",\u00e7:"c",\u00d0:"D",\u00f0:"d",\u00c8:"E",\u00c9:"E",\u00ca:"E",\u00cb:"E",\u00e8:"e",\u00e9:"e",\u00ea:"e",\u00eb:"e",\u00cc:"I",\u00cd:"I",\u00ce:"I",\u00cf:"I",\u00ec:"i",\u00ed:"i",\u00ee:"i",\u00ef:"i",\u00d1:"N",\u00f1:"n",\u00d2:"O",\u00d3:"O",\u00d4:"O",\u00d5:"O",\u00d6:"O",\u00d8:"O",\u00f2:"o",\u00f3:"o",\u00f4:"o",\u00f5:"o",\u00f6:"o",\u00f8:"o",\u00d9:"U",\u00da:"U",\u00db:"U",\u00dc:"U",\u00f9:"u",\u00fa:"u",\u00fb:"u",\u00fc:"u",\u00dd:"Y",\u00fd:"y",\u00ff:"y",\u00c6:"Ae",\u00e6:"ae",\u00de:"Th",\u00fe:"th",\u00df:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010a:"C",\u010c:"C",\u0107:"c",\u0109:"c",\u010b:"c",\u010d:"c",\u010e:"D",\u0110:"D",\u010f:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011a:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011b:"e",\u011c:"G",\u011e:"G",\u0120:"G",\u0122:"G",\u011d:"g",\u011f:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012a:"I",\u012c:"I",\u012e:"I",\u0130:"I",\u0129:"i",\u012b:"i",\u012d:"i",\u012f:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013b:"L",\u013d:"L",\u013f:"L",\u0141:"L",\u013a:"l",\u013c:"l",\u013e:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014a:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014b:"n",\u014c:"O",\u014e:"O",\u0150:"O",\u014d:"o",\u014f:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015a:"S",\u015c:"S",\u015e:"S",\u0160:"S",\u015b:"s",\u015d:"s",\u015f:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016a:"U",\u016c:"U",\u016e:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016b:"u",\u016d:"u",\u016f:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017b:"Z",\u017d:"Z",\u017a:"z",\u017c:"z",\u017e:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017f:"s"});var jc=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Hc=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");const zc=function(t){return(t=Yi(t))&&t.replace(jc,Uc).replace(Hc,"")};var Wc=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;const Gc=function(t){return t.match(Wc)||[]};var Vc=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;const Xc=function(t){return Vc.test(t)};var qc="\\u2700-\\u27bf",Jc="a-z\\xdf-\\xf6\\xf8-\\xff",Zc="A-Z\\xc0-\\xd6\\xd8-\\xde",Kc="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Qc="["+Kc+"]",$c="\\d+",td="[\\u2700-\\u27bf]",ed="["+Jc+"]",id="[^\\ud800-\\udfff"+Kc+$c+qc+Jc+Zc+"]",nd="(?:\\ud83c[\\udde6-\\uddff]){2}",rd="[\\ud800-\\udbff][\\udc00-\\udfff]",sd="["+Zc+"]",od="(?:"+ed+"|"+id+")",ad="(?:"+sd+"|"+id+")",hd="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",ud="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",ld="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",cd="[\\ufe0e\\ufe0f]?",dd=cd+ld+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",nd,rd].join("|")+")"+cd+ld+")*"),pd="(?:"+[td,nd,rd].join("|")+")"+dd,fd=RegExp([sd+"?"+ed+"+"+hd+"(?="+[Qc,sd,"$"].join("|")+")",ad+"+"+ud+"(?="+[Qc,sd+od,"$"].join("|")+")",sd+"?"+od+"+"+hd,sd+"+"+ud,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",$c,pd].join("|"),"g");const md=function(t){return t.match(fd)||[]};const vd=function(t,e,i){return t=Yi(t),void 0===(e=i?void 0:e)?Xc(t)?md(t):Gc(t):t.match(e)||[]};var gd=RegExp("['\u2019]","g");const yd=function(t){return function(e){return Fs(vd(zc(e).replace(gd,"")),t,"")}};const _d=yd((function(t,e,i){return e=e.toLowerCase(),t+(i?Nc(e):e)}));const xd=function(t,e,i){t=Yi(t),e=Ii(e);var n=t.length,r=i=void 0===i?n:rn(k(i),0,n);return(i-=e.length)>=0&&t.slice(i,r)==e};const bd=Bc({"&":"&","<":"<",">":">",'"':""","'":"'"});var wd=/[&<>"']/g,Td=RegExp(wd.source);const Md=function(t){return(t=Yi(t))&&Td.test(t)?t.replace(wd,bd):t};var Sd=/[\\^$.*+?()[\]{}|]/g,Ed=RegExp(Sd.source);const Ld=function(t){return(t=Yi(t))&&Ed.test(t)?t.replace(Sd,"\\$&"):t};const Ad=yd((function(t,e,i){return t+(i?"-":"")+e.toLowerCase()}));const Dd=yd((function(t,e,i){return t+(i?" ":"")+e.toLowerCase()}));const Pd=Yc("toLowerCase");var Cd=Math.floor;const Od=function(t,e){var i="";if(!t||e<1||e>9007199254740991)return i;do{e%2&&(i+=t),(e=Cd(e/2))&&(t+=t)}while(e);return i};var kd=Math.ceil;const Rd=function(t,e){var i=(e=void 0===e?" ":Ii(e)).length;if(i<2)return i?Od(e,t):e;var n=Od(e,kd(t/_o(e)));return so(e)?Za(Zu(n),0,t).join(""):n.slice(0,t)};var Id=Math.ceil,Yd=Math.floor;const Fd=function(t,e,i){t=Yi(t);var n=(e=k(e))?_o(t):0;if(!e||n>=e)return t;var r=(e-n)/2;return Rd(Yd(r),i)+t+Rd(Id(r),i)};const Nd=function(t,e,i){t=Yi(t);var n=(e=k(e))?_o(t):0;return e&&n<e?t+Rd(e-n,i):t};const Bd=function(t,e,i){t=Yi(t);var n=(e=k(e))?_o(t):0;return e&&n<e?Rd(e-n,i)+t:t};var Ud=/^\s+/,jd=s.Z.parseInt;const Hd=function(t,e,i){return i||null==e?e=0:e&&(e=+e),jd(Yi(t).replace(Ud,""),e||0)};const zd=function(t,e,i){return e=(i?w(t,e,i):void 0===e)?1:k(e),Od(Yi(t),e)};const Wd=function(){var t=arguments,e=Yi(t[0]);return t.length<3?e:e.replace(t[1],t[2])};const Gd=yd((function(t,e,i){return t+(i?"_":"")+e.toLowerCase()}));const Vd=function(t,e,i){return i&&"number"!=typeof i&&w(t,e,i)&&(e=i=void 0),(i=void 0===i?4294967295:i>>>0)?(t=Yi(t))&&("string"==typeof e||null!=e&&!Au(e))&&!(e=Ii(e))&&so(t)?Za(Zu(t),0,i):t.split(e,i):[]};const Xd=yd((function(t,e,i){return t+(i?" ":"")+Fc(e)}));const qd=function(t,e,i){return t=Yi(t),i=null==i?0:rn(k(i),0,t.length),e=Ii(e),t.slice(i,i+e.length)==e};const Jd=ue((function(t,e){try{return te(t,void 0,e)}catch(t){return pu(t)?t:new Error(t)}}));var Zd=Object.prototype,Kd=Zd.hasOwnProperty;const Qd=function(t,e,i,n){return void 0===t||r(t,Zd[i])&&!Kd.call(n,i)?e:t};var $d={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};const tp=function(t){return"\\"+$d[t]};const ep=/<%=([\s\S]+?)%>/g;const ip={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:ep,variable:"",imports:{_:{escape:Md}}};var np=/\b__p \+= '';/g,rp=/\b(__p \+=) '' \+/g,sp=/(__e\(.*?\)|\b__t\)) \+\n'';/g,op=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ap=/($^)/,hp=/['\n\r\u2028\u2029\\]/g,up=Object.prototype.hasOwnProperty;const lp=function(t,e,i){var n=ip.imports._.templateSettings||ip;i&&w(t,e,i)&&(e=void 0),t=Yi(t),e=Dl({},e,n,Qd);var r,s,o=Dl({},e.imports,n.imports,Qd),a=qe(o),h=Ss(o,a),u=0,l=e.interpolate||ap,c="__p += '",d=RegExp((e.escape||ap).source+"|"+l.source+"|"+(l===ep?op:ap).source+"|"+(e.evaluate||ap).source+"|$","g"),p=up.call(e,"sourceURL")?"//# sourceURL="+(e.sourceURL+"").replace(/[\r\n]/g," ")+"\n":"";t.replace(d,(function(e,i,n,o,a,h){return n||(n=o),c+=t.slice(u,h).replace(hp,tp),i&&(r=!0,c+="' +\n__e("+i+") +\n'"),a&&(s=!0,c+="';\n"+a+";\n__p += '"),n&&(c+="' +\n((__t = ("+n+")) == null ? '' : __t) +\n'"),u=h+e.length,e})),c+="';\n";var f=up.call(e,"variable")&&e.variable;f||(c="with (obj) {\n"+c+"\n}\n"),c=(s?c.replace(np,""):c).replace(rp,"$1").replace(sp,"$1;"),c="function("+(f||"obj")+") {\n"+(f?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(r?", __e = _.escape":"")+(s?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+c+"return __p\n}";var m=Jd((function(){return Function(a,p+"return "+c).apply(void 0,h)}));if(m.source=c,pu(m))throw m;return m};const cp=function(t){return Yi(t).toLowerCase()};const dp=function(t){return Yi(t).toUpperCase()};const pp=function(t,e){for(var i=t.length;i--&&Vt(e,t[i],0)>-1;);return i};const fp=function(t,e){for(var i=-1,n=t.length;++i<n&&Vt(e,t[i],0)>-1;);return i};var mp=/^\s+|\s+$/g;const vp=function(t,e,i){if((t=Yi(t))&&(i||void 0===e))return t.replace(mp,"");if(!t||!(e=Ii(e)))return t;var n=Zu(t),r=Zu(e),s=fp(n,r),o=pp(n,r)+1;return Za(n,s,o).join("")};var gp=/\s+$/;const yp=function(t,e,i){if((t=Yi(t))&&(i||void 0===e))return t.replace(gp,"");if(!t||!(e=Ii(e)))return t;var n=Zu(t),r=pp(n,Zu(e))+1;return Za(n,0,r).join("")};var _p=/^\s+/;const xp=function(t,e,i){if((t=Yi(t))&&(i||void 0===e))return t.replace(_p,"");if(!t||!(e=Ii(e)))return t;var n=Zu(t),r=fp(n,Zu(e));return Za(n,r).join("")};var bp=/\w*$/;const wp=function(t,e){var i=30,n="...";if(v(e)){var r="separator"in e?e.separator:r;i="length"in e?k(e.length):i,n="omission"in e?Ii(e.omission):n}var s=(t=Yi(t)).length;if(so(t)){var o=Zu(t);s=o.length}if(i>=s)return t;var a=i-_o(n);if(a<1)return n;var h=o?Za(o,0,a).join(""):t.slice(0,a);if(void 0===r)return h+n;if(o&&(a+=h.length-a),Au(r)){if(t.slice(a).search(r)){var u,l=h;for(r.global||(r=RegExp(r.source,Yi(bp.exec(r))+"g")),r.lastIndex=0;u=r.exec(l);)var c=u.index;h=h.slice(0,void 0===c?a:c)}}else if(t.indexOf(Ii(r),a)!=a){var d=h.lastIndexOf(r);d>-1&&(h=h.slice(0,d))}return h+n};const Tp=Bc({"&":"&","<":"<",">":">",""":'"',"'":"'"});var Mp=/&(?:amp|lt|gt|quot|#39);/g,Sp=RegExp(Mp.source);const Ep=function(t){return(t=Yi(t))&&Sp.test(t)?t.replace(Mp,Tp):t};var Lp=yd((function(t,e,i){return t+(i?" ":"")+e.toUpperCase()}));const Ap={camelCase:_d,capitalize:Nc,deburr:zc,endsWith:xd,escape:Md,escapeRegExp:Ld,kebabCase:Ad,lowerCase:Dd,lowerFirst:Pd,pad:Fd,padEnd:Nd,padStart:Bd,parseInt:Hd,repeat:zd,replace:Wd,snakeCase:Gd,split:Vd,startCase:Xd,startsWith:qd,template:lp,templateSettings:ip,toLower:cp,toUpper:dp,trim:vp,trimEnd:yp,trimStart:xp,truncate:wp,unescape:Ep,upperCase:Lp,upperFirst:Fc,words:vd};const Dp=qn((function(t,e){return es(e,(function(e){e=Ni(e),Yr(t,e,Ea(t[e],t))})),t}));const Pp=function(t){var e=null==t?0:t.length,i=qi;return t=e?Jt(t,(function(t){if("function"!=typeof t[1])throw new TypeError("Expected a function");return[i(t[0]),t[1]]})):[],ue((function(i){for(var n=-1;++n<e;){var r=t[n];if(te(r[0],this,i))return te(r[1],this,i)}}))};const Cp=function(t){var e=qe(t);return function(i){return zh(i,t,e)}};const Op=function(t){return Cp(Nh(t,1))};const kp=function(t,e){return null==t||t!=t?e:t};const Rp=function(t){return qn((function(e){var i=e.length,n=i,r=Xo.prototype.thru;for(t&&e.reverse();n--;){var s=e[n];if("function"!=typeof s)throw new TypeError("Expected a function");if(r&&!o&&"wrapper"==Go(s))var o=new Xo([],!0)}for(n=o?n:i;++n<i;){s=e[n];var a=Go(s),h="wrapper"==a?Ho(s):void 0;o=h&&Qo(h[0])&&424==h[1]&&!h[4].length&&1==h[9]?o[Go(h[0])].apply(o,h[3]):1==s.length&&Qo(s)?o[a]():o.thru(s)}return function(){var t=arguments,n=t[0];if(o&&1==t.length&&W(n))return o.plant(n).value();for(var r=0,s=i?e[r].apply(this,t):n;++r<i;)s=e[r].call(this,s);return s}}))};const Ip=Rp();const Yp=Rp(!0);const Fp=function(t){return qi("function"==typeof t?t:Nh(t,1))};const Np=function(t){return Mi(Nh(t,1))};const Bp=function(t,e){return Wi(t,Nh(e,1))};const Up=ue((function(t,e){return function(i){return Ds(i,t,e)}}));const jp=ue((function(t,e){return function(i){return Ds(t,i,e)}}));const Hp=function(t,e,i){var n=qe(e),r=ec(e,n),s=!(v(i)&&"chain"in i&&!i.chain),o=g(t);return es(r,(function(i){var n=e[i];t[i]=n,o&&(t.prototype[i]=function(){var e=this.__chain__;if(s||e){var i=t(this.__wrapped__),r=i.__actions__=q(this.__actions__);return r.push({func:n,args:arguments,thisArg:t}),i.__chain__=e,i}return n.apply(t,N([this.value()],arguments))})})),t};const zp=function(t){return t=k(t),ue((function(e){return kn(e,t)}))};const Wp=function(t){return qn((function(e){return e=Jt(e,Zt(qi)),ue((function(i){var n=this;return t(e,(function(t){return te(t,n,i)}))}))}))};const Gp=Wp(Jt);const Vp=Wp(us);const Xp=Wp(_e);const qp=function(t){return function(e){return null==t?void 0:Bi(t,e)}};var Jp=Math.ceil,Zp=Math.max;const Kp=function(t,e,i,n){for(var r=-1,s=Zp(Jp((e-t)/(i||1)),0),o=Array(s);s--;)o[n?s:++r]=t,t+=i;return o};const Qp=function(t){return function(e,i,n){return n&&"number"!=typeof n&&w(e,i,n)&&(i=n=void 0),e=O(e),void 0===i?(i=e,e=0):i=O(i),n=void 0===n?e<i?1:-1:O(n),Kp(e,i,n,t)}};const $p=Qp();const tf=Qp(!0);const ef=function(){return{}};const nf=function(){return""};const rf=function(){return!0};var sf=4294967295,of=Math.min;const af=function(t,e){if((t=k(t))<1||t>9007199254740991)return[];var i=sf,n=of(t,sf);e=is(e),t-=sf;for(var r=ke(n,e);++i<t;)e(i);return r};const hf=function(t){return W(t)?Jt(t,Ni):M(t)?[t]:q(Oi(Yi(t)))};var uf=0;const lf=function(t){var e=++uf;return Yi(t)+e},cf={attempt:Jd,bindAll:Dp,cond:Pp,conforms:Op,constant:ne,defaultTo:kp,flow:Ip,flowRight:Yp,identity:$t,iteratee:Fp,matches:Np,matchesProperty:Bp,method:Up,methodOf:jp,mixin:Hp,noop:yr,nthArg:zp,over:Gp,overEvery:Vp,overSome:Xp,property:Xi,propertyOf:qp,range:$p,rangeRight:tf,stubArray:De,stubFalse:bu.Z,stubObject:ef,stubString:nf,stubTrue:rf,times:af,toPath:hf,uniqueId:lf};const df=function(){var t=new jo(this.__wrapped__);return t.__actions__=q(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=q(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=q(this.__views__),t};const pf=function(){if(this.__filtered__){var t=new jo(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t};var ff=Math.max,mf=Math.min;const vf=function(t,e,i){for(var n=-1,r=i.length;++n<r;){var s=i[n],o=s.size;switch(s.type){case"drop":t+=o;break;case"dropRight":e-=o;break;case"take":e=mf(e,t+o);break;case"takeRight":t=ff(t,e-o)}}return{start:t,end:e}};var gf=Math.min;const yf=function(){var t=this.__wrapped__.value(),e=this.__dir__,i=W(t),n=e<0,r=i?t.length:0,s=vf(0,r,this.__views__),o=s.start,a=s.end,h=a-o,u=n?a:o-1,l=this.__iteratees__,c=l.length,d=0,p=gf(h,this.__takeCount__);if(!i||!n&&r==h&&p==h)return Oc(t,this.__actions__);var f=[];t:for(;h--&&d<p;){for(var m=-1,v=t[u+=e];++m<c;){var g=l[m],y=g.iteratee,_=g.type,x=y(v);if(2==_)v=x;else if(!x){if(1==_)continue t;break t}}f[d++]=v}return f};var _f,xf,bf=4294967295,wf=Array.prototype,Tf=Object.prototype.hasOwnProperty,Mf=o?o.iterator:void 0,Sf=Math.max,Ef=Math.min,Lf=(_f=Hp,function(t,e,i){if(null==i){var n=v(e),r=n&&qe(e),s=r&&r.length&&ec(e,r);(s?s.length:n)||(i=e,e=t,t=this)}return _f(t,e,i)});Ko.after=eh.after,Ko.ary=eh.ary,Ko.assign=Ac.assign,Ko.assignIn=Ac.assignIn,Ko.assignInWith=Ac.assignInWith,Ko.assignWith=Ac.assignWith,Ko.at=Ac.at,Ko.before=eh.before,Ko.bind=eh.bind,Ko.bindAll=cf.bindAll,Ko.bindKey=eh.bindKey,Ko.castArray=il.castArray,Ko.chain=Ic.chain,Ko.chunk=Wr.chunk,Ko.compact=Wr.compact,Ko.concat=Wr.concat,Ko.cond=cf.cond,Ko.conforms=cf.conforms,Ko.constant=cf.constant,Ko.countBy=Mo.countBy,Ko.create=Ac.create,Ko.curry=eh.curry,Ko.curryRight=eh.curryRight,Ko.debounce=eh.debounce,Ko.defaults=Ac.defaults,Ko.defaultsDeep=Ac.defaultsDeep,Ko.defer=eh.defer,Ko.delay=eh.delay,Ko.difference=Wr.difference,Ko.differenceBy=Wr.differenceBy,Ko.differenceWith=Wr.differenceWith,Ko.drop=Wr.drop,Ko.dropRight=Wr.dropRight,Ko.dropRightWhile=Wr.dropRightWhile,Ko.dropWhile=Wr.dropWhile,Ko.fill=Wr.fill,Ko.filter=Mo.filter,Ko.flatMap=Mo.flatMap,Ko.flatMapDeep=Mo.flatMapDeep,Ko.flatMapDepth=Mo.flatMapDepth,Ko.flatten=Wr.flatten,Ko.flattenDeep=Wr.flattenDeep,Ko.flattenDepth=Wr.flattenDepth,Ko.flip=eh.flip,Ko.flow=cf.flow,Ko.flowRight=cf.flowRight,Ko.fromPairs=Wr.fromPairs,Ko.functions=Ac.functions,Ko.functionsIn=Ac.functionsIn,Ko.groupBy=Mo.groupBy,Ko.initial=Wr.initial,Ko.intersection=Wr.intersection,Ko.intersectionBy=Wr.intersectionBy,Ko.intersectionWith=Wr.intersectionWith,Ko.invert=Ac.invert,Ko.invertBy=Ac.invertBy,Ko.invokeMap=Mo.invokeMap,Ko.iteratee=cf.iteratee,Ko.keyBy=Mo.keyBy,Ko.keys=qe,Ko.keysIn=Ac.keysIn,Ko.map=Mo.map,Ko.mapKeys=Ac.mapKeys,Ko.mapValues=Ac.mapValues,Ko.matches=cf.matches,Ko.matchesProperty=cf.matchesProperty,Ko.memoize=eh.memoize,Ko.merge=Ac.merge,Ko.mergeWith=Ac.mergeWith,Ko.method=cf.method,Ko.methodOf=cf.methodOf,Ko.mixin=Lf,Ko.negate=Hs,Ko.nthArg=cf.nthArg,Ko.omit=Ac.omit,Ko.omitBy=Ac.omitBy,Ko.once=eh.once,Ko.orderBy=Mo.orderBy,Ko.over=cf.over,Ko.overArgs=eh.overArgs,Ko.overEvery=cf.overEvery,Ko.overSome=cf.overSome,Ko.partial=eh.partial,Ko.partialRight=eh.partialRight,Ko.partition=Mo.partition,Ko.pick=Ac.pick,Ko.pickBy=Ac.pickBy,Ko.property=cf.property,Ko.propertyOf=cf.propertyOf,Ko.pull=Wr.pull,Ko.pullAll=Wr.pullAll,Ko.pullAllBy=Wr.pullAllBy,Ko.pullAllWith=Wr.pullAllWith,Ko.pullAt=Wr.pullAt,Ko.range=cf.range,Ko.rangeRight=cf.rangeRight,Ko.rearg=eh.rearg,Ko.reject=Mo.reject,Ko.remove=Wr.remove,Ko.rest=eh.rest,Ko.reverse=Wr.reverse,Ko.sampleSize=Mo.sampleSize,Ko.set=Ac.set,Ko.setWith=Ac.setWith,Ko.shuffle=Mo.shuffle,Ko.slice=Wr.slice,Ko.sortBy=Mo.sortBy,Ko.sortedUniq=Wr.sortedUniq,Ko.sortedUniqBy=Wr.sortedUniqBy,Ko.split=Ap.split,Ko.spread=eh.spread,Ko.tail=Wr.tail,Ko.take=Wr.take,Ko.takeRight=Wr.takeRight,Ko.takeRightWhile=Wr.takeRightWhile,Ko.takeWhile=Wr.takeWhile,Ko.tap=Ic.tap,Ko.throttle=eh.throttle,Ko.thru=Dc,Ko.toArray=il.toArray,Ko.toPairs=Ac.toPairs,Ko.toPairsIn=Ac.toPairsIn,Ko.toPath=cf.toPath,Ko.toPlainObject=il.toPlainObject,Ko.transform=Ac.transform,Ko.unary=eh.unary,Ko.union=Wr.union,Ko.unionBy=Wr.unionBy,Ko.unionWith=Wr.unionWith,Ko.uniq=Wr.uniq,Ko.uniqBy=Wr.uniqBy,Ko.uniqWith=Wr.uniqWith,Ko.unset=Ac.unset,Ko.unzip=Wr.unzip,Ko.unzipWith=Wr.unzipWith,Ko.update=Ac.update,Ko.updateWith=Ac.updateWith,Ko.values=Ac.values,Ko.valuesIn=Ac.valuesIn,Ko.without=Wr.without,Ko.words=Ap.words,Ko.wrap=eh.wrap,Ko.xor=Wr.xor,Ko.xorBy=Wr.xorBy,Ko.xorWith=Wr.xorWith,Ko.zip=Wr.zip,Ko.zipObject=Wr.zipObject,Ko.zipObjectDeep=Wr.zipObjectDeep,Ko.zipWith=Wr.zipWith,Ko.entries=Ac.toPairs,Ko.entriesIn=Ac.toPairsIn,Ko.extend=Ac.assignIn,Ko.extendWith=Ac.assignInWith,Lf(Ko,Ko),Ko.add=ml.add,Ko.attempt=cf.attempt,Ko.camelCase=Ap.camelCase,Ko.capitalize=Ap.capitalize,Ko.ceil=ml.ceil,Ko.clamp=Ml.clamp,Ko.clone=il.clone,Ko.cloneDeep=il.cloneDeep,Ko.cloneDeepWith=il.cloneDeepWith,Ko.cloneWith=il.cloneWith,Ko.conformsTo=il.conformsTo,Ko.deburr=Ap.deburr,Ko.defaultTo=cf.defaultTo,Ko.divide=ml.divide,Ko.endsWith=Ap.endsWith,Ko.eq=il.eq,Ko.escape=Ap.escape,Ko.escapeRegExp=Ap.escapeRegExp,Ko.every=Mo.every,Ko.find=Mo.find,Ko.findIndex=Wr.findIndex,Ko.findKey=Ac.findKey,Ko.findLast=Mo.findLast,Ko.findLastIndex=Wr.findLastIndex,Ko.findLastKey=Ac.findLastKey,Ko.floor=ml.floor,Ko.forEach=Mo.forEach,Ko.forEachRight=Mo.forEachRight,Ko.forIn=Ac.forIn,Ko.forInRight=Ac.forInRight,Ko.forOwn=Ac.forOwn,Ko.forOwnRight=Ac.forOwnRight,Ko.get=Ac.get,Ko.gt=il.gt,Ko.gte=il.gte,Ko.has=Ac.has,Ko.hasIn=Ac.hasIn,Ko.head=Wr.head,Ko.identity=$t,Ko.includes=Mo.includes,Ko.indexOf=Wr.indexOf,Ko.inRange=Ml.inRange,Ko.invoke=Ac.invoke,Ko.isArguments=il.isArguments,Ko.isArray=W,Ko.isArrayBuffer=il.isArrayBuffer,Ko.isArrayLike=il.isArrayLike,Ko.isArrayLikeObject=il.isArrayLikeObject,Ko.isBoolean=il.isBoolean,Ko.isBuffer=il.isBuffer,Ko.isDate=il.isDate,Ko.isElement=il.isElement,Ko.isEmpty=il.isEmpty,Ko.isEqual=il.isEqual,Ko.isEqualWith=il.isEqualWith,Ko.isError=il.isError,Ko.isFinite=il.isFinite,Ko.isFunction=il.isFunction,Ko.isInteger=il.isInteger,Ko.isLength=il.isLength,Ko.isMap=il.isMap,Ko.isMatch=il.isMatch,Ko.isMatchWith=il.isMatchWith,Ko.isNaN=il.isNaN,Ko.isNative=il.isNative,Ko.isNil=il.isNil,Ko.isNull=il.isNull,Ko.isNumber=il.isNumber,Ko.isObject=v,Ko.isObjectLike=il.isObjectLike,Ko.isPlainObject=il.isPlainObject,Ko.isRegExp=il.isRegExp,Ko.isSafeInteger=il.isSafeInteger,Ko.isSet=il.isSet,Ko.isString=il.isString,Ko.isSymbol=il.isSymbol,Ko.isTypedArray=il.isTypedArray,Ko.isUndefined=il.isUndefined,Ko.isWeakMap=il.isWeakMap,Ko.isWeakSet=il.isWeakSet,Ko.join=Wr.join,Ko.kebabCase=Ap.kebabCase,Ko.last=Ji,Ko.lastIndexOf=Wr.lastIndexOf,Ko.lowerCase=Ap.lowerCase,Ko.lowerFirst=Ap.lowerFirst,Ko.lt=il.lt,Ko.lte=il.lte,Ko.max=ml.max,Ko.maxBy=ml.maxBy,Ko.mean=ml.mean,Ko.meanBy=ml.meanBy,Ko.min=ml.min,Ko.minBy=ml.minBy,Ko.stubArray=cf.stubArray,Ko.stubFalse=cf.stubFalse,Ko.stubObject=cf.stubObject,Ko.stubString=cf.stubString,Ko.stubTrue=cf.stubTrue,Ko.multiply=ml.multiply,Ko.nth=Wr.nth,Ko.noop=cf.noop,Ko.now=Eo.now,Ko.pad=Ap.pad,Ko.padEnd=Ap.padEnd,Ko.padStart=Ap.padStart,Ko.parseInt=Ap.parseInt,Ko.random=Ml.random,Ko.reduce=Mo.reduce,Ko.reduceRight=Mo.reduceRight,Ko.repeat=Ap.repeat,Ko.replace=Ap.replace,Ko.result=Ac.result,Ko.round=ml.round,Ko.sample=Mo.sample,Ko.size=Mo.size,Ko.snakeCase=Ap.snakeCase,Ko.some=Mo.some,Ko.sortedIndex=Wr.sortedIndex,Ko.sortedIndexBy=Wr.sortedIndexBy,Ko.sortedIndexOf=Wr.sortedIndexOf,Ko.sortedLastIndex=Wr.sortedLastIndex,Ko.sortedLastIndexBy=Wr.sortedLastIndexBy,Ko.sortedLastIndexOf=Wr.sortedLastIndexOf,Ko.startCase=Ap.startCase,Ko.startsWith=Ap.startsWith,Ko.subtract=ml.subtract,Ko.sum=ml.sum,Ko.sumBy=ml.sumBy,Ko.template=Ap.template,Ko.times=cf.times,Ko.toFinite=il.toFinite,Ko.toInteger=k,Ko.toLength=il.toLength,Ko.toLower=Ap.toLower,Ko.toNumber=il.toNumber,Ko.toSafeInteger=il.toSafeInteger,Ko.toString=il.toString,Ko.toUpper=Ap.toUpper,Ko.trim=Ap.trim,Ko.trimEnd=Ap.trimEnd,Ko.trimStart=Ap.trimStart,Ko.truncate=Ap.truncate,Ko.unescape=Ap.unescape,Ko.uniqueId=cf.uniqueId,Ko.upperCase=Ap.upperCase,Ko.upperFirst=Ap.upperFirst,Ko.each=Mo.forEach,Ko.eachRight=Mo.forEachRight,Ko.first=Wr.head,Lf(Ko,(xf={},qr(Ko,(function(t,e){Tf.call(Ko.prototype,e)||(xf[e]=t)})),xf),{chain:!1}),Ko.VERSION="4.17.15",(Ko.templateSettings=Ap.templateSettings).imports._=Ko,es(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Ko[t].placeholder=Ko})),es(["drop","take"],(function(t,e){jo.prototype[t]=function(i){i=void 0===i?1:Sf(k(i),0);var n=this.__filtered__&&!e?new jo(this):this.clone();return n.__filtered__?n.__takeCount__=Ef(i,n.__takeCount__):n.__views__.push({size:Ef(i,bf),type:t+(n.__dir__<0?"Right":"")}),n},jo.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),es(["filter","map","takeWhile"],(function(t,e){var i=e+1,n=1==i||3==i;jo.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:qi(t,3),type:i}),e.__filtered__=e.__filtered__||n,e}})),es(["head","last"],(function(t,e){var i="take"+(e?"Right":"");jo.prototype[t]=function(){return this[i](1).value()[0]}})),es(["initial","tail"],(function(t,e){var i="drop"+(e?"":"Right");jo.prototype[t]=function(){return this.__filtered__?new jo(this):this[i](1)}})),jo.prototype.compact=function(){return this.filter($t)},jo.prototype.find=function(t){return this.filter(t).head()},jo.prototype.findLast=function(t){return this.reverse().find(t)},jo.prototype.invokeMap=ue((function(t,e){return"function"==typeof t?new jo(this):this.map((function(i){return Ds(i,t,e)}))})),jo.prototype.reject=function(t){return this.filter(Hs(qi(t)))},jo.prototype.slice=function(t,e){t=k(t);var i=this;return i.__filtered__&&(t>0||e<0)?new jo(i):(t<0?i=i.takeRight(-t):t&&(i=i.drop(t)),void 0!==e&&(i=(e=k(e))<0?i.dropRight(-e):i.take(e-t)),i)},jo.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},jo.prototype.toArray=function(){return this.take(bf)},qr(jo.prototype,(function(t,e){var i=/^(?:filter|find|map|reject)|While$/.test(e),n=/^(?:head|last)$/.test(e),r=Ko[n?"take"+("last"==e?"Right":""):e],s=n||/^find/.test(e);r&&(Ko.prototype[e]=function(){var e=this.__wrapped__,o=n?[1]:arguments,a=e instanceof jo,h=o[0],u=a||W(e),l=function(t){var e=r.apply(Ko,N([t],o));return n&&c?e[0]:e};u&&i&&"function"==typeof h&&1!=h.length&&(a=u=!1);var c=this.__chain__,d=!!this.__actions__.length,p=s&&!c,f=a&&!d;if(!s&&u){e=f?e:new jo(this);var m=t.apply(e,o);return m.__actions__.push({func:Dc,args:[l],thisArg:void 0}),new Xo(m,c)}return p&&f?t.apply(this,o):(m=this.thru(l),p?n?m.value()[0]:m.value():m)})})),es(["pop","push","shift","sort","splice","unshift"],(function(t){var e=wf[t],i=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",n=/^(?:pop|shift)$/.test(t);Ko.prototype[t]=function(){var t=arguments;if(n&&!this.__chain__){var r=this.value();return e.apply(W(r)?r:[],t)}return this[i]((function(i){return e.apply(W(i)?i:[],t)}))}})),qr(jo.prototype,(function(t,e){var i=Ko[e];if(i){var n=i.name+"";Tf.call(zo,n)||(zo[n]=[]),zo[n].push({name:e,func:i})}})),zo[fa(void 0,2).name]=[{name:"wrapper",func:void 0}],jo.prototype.clone=df,jo.prototype.reverse=pf,jo.prototype.value=yf,Ko.prototype.at=Ic.at,Ko.prototype.chain=Ic.wrapperChain,Ko.prototype.commit=Ic.commit,Ko.prototype.next=Ic.next,Ko.prototype.plant=Ic.plant,Ko.prototype.reverse=Ic.reverse,Ko.prototype.toJSON=Ko.prototype.valueOf=Ko.prototype.value=Ic.value,Ko.prototype.first=Ko.prototype.head,Mf&&(Ko.prototype[Mf]=Ic.toIterator);const Af=Ko;var Df=i(75586),Pf=i.n(Df),Cf=i(57005),Of=i.n(Cf);void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52)),void 0===Number.isInteger&&(Number.isInteger=function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t}),void 0===Math.sign&&(Math.sign=function(t){return t<0?-1:t>0?1:+t}),"name"in Function.prototype==!1&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}}),void 0===Object.assign&&(Object.assign=function(t){if(null==t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),i=1;i<arguments.length;i++){var n=arguments[i];if(null!=n)for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e});var kf=100,Rf=306,If=1e3,Yf=1001,Ff=1002,Nf=1003,Bf=1004,Uf=1005,jf=1006,Hf=1008,zf=1009,Wf=1012,Gf=1014,Vf=1015,Xf=1016,qf=1020,Jf=1022,Zf=1023,Kf=1026,Qf=1027,$f=2300,tm=2301,em=2302,im=2400,nm=2401,rm=2402,sm=3e3,om=3001,am=3002,hm=7680,um=35044,lm=35048;function cm(){}Object.assign(cm.prototype,{addEventListener:function(t,e){void 0===this._listeners&&(this._listeners={});var i=this._listeners;void 0===i[t]&&(i[t]=[]),-1===i[t].indexOf(e)&&i[t].push(e)},hasEventListener:function(t,e){if(void 0===this._listeners)return!1;var i=this._listeners;return void 0!==i[t]&&-1!==i[t].indexOf(e)},removeEventListener:function(t,e){if(void 0!==this._listeners){var i=this._listeners[t];if(void 0!==i){var n=i.indexOf(e);-1!==n&&i.splice(n,1)}}},dispatchEvent:function(t){if(void 0!==this._listeners){var e=this._listeners[t.type];if(void 0!==e){t.target=this;for(var i=e.slice(0),n=0,r=i.length;n<r;n++)i[n].call(this,t)}}}});for(var dm=[],pm=0;pm<256;pm++)dm[pm]=(pm<16?"0":"")+pm.toString(16);var fm,mm={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var t=4294967295*Math.random()|0,e=4294967295*Math.random()|0,i=4294967295*Math.random()|0,n=4294967295*Math.random()|0;return(dm[255&t]+dm[t>>8&255]+dm[t>>16&255]+dm[t>>24&255]+"-"+dm[255&e]+dm[e>>8&255]+"-"+dm[e>>16&15|64]+dm[e>>24&255]+"-"+dm[63&i|128]+dm[i>>8&255]+"-"+dm[i>>16&255]+dm[i>>24&255]+dm[255&n]+dm[n>>8&255]+dm[n>>16&255]+dm[n>>24&255]).toUpperCase()},clamp:function(t,e,i){return Math.max(e,Math.min(i,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,i,n,r){return n+(t-e)*(r-n)/(i-e)},lerp:function(t,e,i){return(1-i)*t+i*e},smoothstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e))*t*(3-2*t)},smootherstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},degToRad:function(t){return t*mm.DEG2RAD},radToDeg:function(t){return t*mm.RAD2DEG},isPowerOfTwo:function(t){return 0==(t&t-1)&&0!==t},ceilPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},floorPowerOfTwo:function(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))},setQuaternionFromProperEuler:function(t,e,i,n,r){var s=Math.cos,o=Math.sin,a=s(i/2),h=o(i/2),u=s((e+n)/2),l=o((e+n)/2),c=s((e-n)/2),d=o((e-n)/2),p=s((n-e)/2),f=o((n-e)/2);"XYX"===r?t.set(a*l,h*c,h*d,a*u):"YZY"===r?t.set(h*d,a*l,h*c,a*u):"ZXZ"===r?t.set(h*c,h*d,a*l,a*u):"XZX"===r?t.set(a*l,h*f,h*p,a*u):"YXY"===r?t.set(h*p,a*l,h*f,a*u):"ZYZ"===r?t.set(h*f,h*p,a*l,a*u):console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order.")}};function vm(t,e){this.x=t||0,this.y=e||0}function gm(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}Object.defineProperties(vm.prototype,{width:{get:function(){return this.x},set:function(t){this.x=t}},height:{get:function(){return this.y},set:function(t){this.y=t}}}),Object.assign(vm.prototype,{isVector2:!0,set:function(t,e){return this.x=t,this.y=e,this},setScalar:function(t){return this.x=t,this.y=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(t){return this.x=t.x,this.y=t.y,this},add:function(t,e){return void 0!==e?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)},addScalar:function(t){return this.x+=t,this.y+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this},sub:function(t,e){return void 0!==e?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)},subScalar:function(t){return this.x-=t,this.y-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},divideScalar:function(t){return this.multiplyScalar(1/t)},applyMatrix3:function(t){var e=this.x,i=this.y,n=t.elements;return this.x=n[0]*e+n[3]*i+n[6],this.y=n[1]*e+n[4]*i+n[7],this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this},clampScalar:function(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this},clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(t){return this.x*t.x+this.y*t.y},cross:function(t){return this.x*t.y-this.y*t.x},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){return Math.atan2(-this.y,-this.x)+Math.PI},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y;return e*e+i*i},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t},fromBufferAttribute:function(t,e,i){return void 0!==i&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this},rotateAround:function(t,e){var i=Math.cos(e),n=Math.sin(e),r=this.x-t.x,s=this.y-t.y;return this.x=r*i-s*n+t.x,this.y=r*n+s*i+t.y,this}}),Object.assign(gm.prototype,{isMatrix3:!0,set:function(t,e,i,n,r,s,o,a,h){var u=this.elements;return u[0]=t,u[1]=n,u[2]=o,u[3]=e,u[4]=r,u[5]=a,u[6]=i,u[7]=s,u[8]=h,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(t){var e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],this},extractBasis:function(t,e,i){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this},setFromMatrix4:function(t){var e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this},multiply:function(t){return this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var i=t.elements,n=e.elements,r=this.elements,s=i[0],o=i[3],a=i[6],h=i[1],u=i[4],l=i[7],c=i[2],d=i[5],p=i[8],f=n[0],m=n[3],v=n[6],g=n[1],y=n[4],_=n[7],x=n[2],b=n[5],w=n[8];return r[0]=s*f+o*g+a*x,r[3]=s*m+o*y+a*b,r[6]=s*v+o*_+a*w,r[1]=h*f+u*g+l*x,r[4]=h*m+u*y+l*b,r[7]=h*v+u*_+l*w,r[2]=c*f+d*g+p*x,r[5]=c*m+d*y+p*b,r[8]=c*v+d*_+p*w,this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this},determinant:function(){var t=this.elements,e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],o=t[5],a=t[6],h=t[7],u=t[8];return e*s*u-e*o*h-i*r*u+i*o*a+n*r*h-n*s*a},getInverse:function(t,e){void 0!==e&&console.warn("THREE.Matrix3: .getInverse() can no longer be configured to throw on degenerate.");var i=t.elements,n=this.elements,r=i[0],s=i[1],o=i[2],a=i[3],h=i[4],u=i[5],l=i[6],c=i[7],d=i[8],p=d*h-u*c,f=u*l-d*a,m=c*a-h*l,v=r*p+s*f+o*m;if(0===v)return this.set(0,0,0,0,0,0,0,0,0);var g=1/v;return n[0]=p*g,n[1]=(o*c-d*s)*g,n[2]=(u*s-o*h)*g,n[3]=f*g,n[4]=(d*r-o*l)*g,n[5]=(o*a-u*r)*g,n[6]=m*g,n[7]=(s*l-c*r)*g,n[8]=(h*r-s*a)*g,this},transpose:function(){var t,e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this},getNormalMatrix:function(t){return this.setFromMatrix4(t).getInverse(this).transpose()},transposeIntoArray:function(t){var e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this},setUvTransform:function(t,e,i,n,r,s,o){var a=Math.cos(r),h=Math.sin(r);this.set(i*a,i*h,-i*(a*s+h*o)+s+t,-n*h,n*a,-n*(-h*s+a*o)+o+e,0,0,1)},scale:function(t,e){var i=this.elements;return i[0]*=t,i[3]*=t,i[6]*=t,i[1]*=e,i[4]*=e,i[7]*=e,this},rotate:function(t){var e=Math.cos(t),i=Math.sin(t),n=this.elements,r=n[0],s=n[3],o=n[6],a=n[1],h=n[4],u=n[7];return n[0]=e*r+i*a,n[3]=e*s+i*h,n[6]=e*o+i*u,n[1]=-i*r+e*a,n[4]=-i*s+e*h,n[7]=-i*o+e*u,this},translate:function(t,e){var i=this.elements;return i[0]+=t*i[2],i[3]+=t*i[5],i[6]+=t*i[8],i[1]+=e*i[2],i[4]+=e*i[5],i[7]+=e*i[8],this},equals:function(t){for(var e=this.elements,i=t.elements,n=0;n<9;n++)if(e[n]!==i[n])return!1;return!0},fromArray:function(t,e){void 0===e&&(e=0);for(var i=0;i<9;i++)this.elements[i]=t[i+e];return this},toArray:function(t,e){void 0===t&&(t=[]),void 0===e&&(e=0);var i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t}});var ym={getDataURL:function(t){var e;if("undefined"==typeof HTMLCanvasElement)return t.src;if(t instanceof HTMLCanvasElement)e=t;else{void 0===fm&&(fm=document.createElementNS("http://www.w3.org/1999/xhtml","canvas")),fm.width=t.width,fm.height=t.height;var i=fm.getContext("2d");t instanceof ImageData?i.putImageData(t,0,0):i.drawImage(t,0,0,t.width,t.height),e=fm}return e.width>2048||e.height>2048?e.toDataURL("image/jpeg",.6):e.toDataURL("image/png")}},_m=0;function xm(t,e,i,n,r,s,o,a,h,u){Object.defineProperty(this,"id",{value:_m++}),this.uuid=mm.generateUUID(),this.name="",this.image=void 0!==t?t:xm.DEFAULT_IMAGE,this.mipmaps=[],this.mapping=void 0!==e?e:xm.DEFAULT_MAPPING,this.wrapS=void 0!==i?i:Yf,this.wrapT=void 0!==n?n:Yf,this.magFilter=void 0!==r?r:jf,this.minFilter=void 0!==s?s:Hf,this.anisotropy=void 0!==h?h:1,this.format=void 0!==o?o:Zf,this.internalFormat=null,this.type=void 0!==a?a:zf,this.offset=new vm(0,0),this.repeat=new vm(1,1),this.center=new vm(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new gm,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=void 0!==u?u:sm,this.version=0,this.onUpdate=null}function bm(t,e,i,n){this.x=t||0,this.y=e||0,this.z=i||0,this.w=void 0!==n?n:1}function wm(t,e,i){this.width=t,this.height=e,this.scissor=new bm(0,0,t,e),this.scissorTest=!1,this.viewport=new bm(0,0,t,e),i=i||{},this.texture=new xm(void 0,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.encoding),this.texture.image={},this.texture.image.width=t,this.texture.image.height=e,this.texture.generateMipmaps=void 0!==i.generateMipmaps&&i.generateMipmaps,this.texture.minFilter=void 0!==i.minFilter?i.minFilter:jf,this.depthBuffer=void 0===i.depthBuffer||i.depthBuffer,this.stencilBuffer=void 0===i.stencilBuffer||i.stencilBuffer,this.depthTexture=void 0!==i.depthTexture?i.depthTexture:null}function Tm(t,e,i){wm.call(this,t,e,i),this.samples=4}function Mm(t,e,i,n){this._x=t||0,this._y=e||0,this._z=i||0,this._w=void 0!==n?n:1}xm.DEFAULT_IMAGE=void 0,xm.DEFAULT_MAPPING=300,xm.prototype=Object.assign(Object.create(cm.prototype),{constructor:xm,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this},toJSON:function(t){var e=void 0===t||"string"==typeof t;if(!e&&void 0!==t.textures[this.uuid])return t.textures[this.uuid];var i={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){var n=this.image;if(void 0===n.uuid&&(n.uuid=mm.generateUUID()),!e&&void 0===t.images[n.uuid]){var r;if(Array.isArray(n)){r=[];for(var s=0,o=n.length;s<o;s++)r.push(ym.getDataURL(n[s]))}else r=ym.getDataURL(n);t.images[n.uuid]={uuid:n.uuid,url:r}}i.image=n.uuid}return e||(t.textures[this.uuid]=i),i},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(t){if(300!==this.mapping)return t;if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case If:t.x=t.x-Math.floor(t.x);break;case Yf:t.x=t.x<0?0:1;break;case Ff:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case If:t.y=t.y-Math.floor(t.y);break;case Yf:t.y=t.y<0?0:1;break;case Ff:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}}),Object.defineProperty(xm.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.defineProperties(bm.prototype,{width:{get:function(){return this.z},set:function(t){this.z=t}},height:{get:function(){return this.w},set:function(t){this.w=t}}}),Object.assign(bm.prototype,{isVector4:!0,set:function(t,e,i,n){return this.x=t,this.y=e,this.z=i,this.w=n,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this.w=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setW:function(t){return this.w=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this},add:function(t,e){return void 0!==e?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this},sub:function(t,e){return void 0!==e?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},applyMatrix4:function(t){var e=this.x,i=this.y,n=this.z,r=this.w,s=t.elements;return this.x=s[0]*e+s[4]*i+s[8]*n+s[12]*r,this.y=s[1]*e+s[5]*i+s[9]*n+s[13]*r,this.z=s[2]*e+s[6]*i+s[10]*n+s[14]*r,this.w=s[3]*e+s[7]*i+s[11]*n+s[15]*r,this},divideScalar:function(t){return this.multiplyScalar(1/t)},setAxisAngleFromQuaternion:function(t){this.w=2*Math.acos(t.w);var e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this},setAxisAngleFromRotationMatrix:function(t){var e,i,n,r,s=.01,o=.1,a=t.elements,h=a[0],u=a[4],l=a[8],c=a[1],d=a[5],p=a[9],f=a[2],m=a[6],v=a[10];if(Math.abs(u-c)<s&&Math.abs(l-f)<s&&Math.abs(p-m)<s){if(Math.abs(u+c)<o&&Math.abs(l+f)<o&&Math.abs(p+m)<o&&Math.abs(h+d+v-3)<o)return this.set(1,0,0,0),this;e=Math.PI;var g=(h+1)/2,y=(d+1)/2,_=(v+1)/2,x=(u+c)/4,b=(l+f)/4,w=(p+m)/4;return g>y&&g>_?g<s?(i=0,n=.707106781,r=.707106781):(n=x/(i=Math.sqrt(g)),r=b/i):y>_?y<s?(i=.707106781,n=0,r=.707106781):(i=x/(n=Math.sqrt(y)),r=w/n):_<s?(i=.707106781,n=.707106781,r=0):(i=b/(r=Math.sqrt(_)),n=w/r),this.set(i,n,r,e),this}var T=Math.sqrt((m-p)*(m-p)+(l-f)*(l-f)+(c-u)*(c-u));return Math.abs(T)<.001&&(T=1),this.x=(m-p)/T,this.y=(l-f)/T,this.z=(c-u)/T,this.w=Math.acos((h+d+v-1)/2),this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this},clampScalar:function(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this.w=Math.max(t,Math.min(e,this.w)),this},clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t},fromBufferAttribute:function(t,e,i){return void 0!==i&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}}),wm.prototype=Object.assign(Object.create(cm.prototype),{constructor:wm,isWebGLRenderTarget:!0,setSize:function(t,e){this.width===t&&this.height===e||(this.width=t,this.height=e,this.texture.image.width=t,this.texture.image.height=e,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.width=t.width,this.height=t.height,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Tm.prototype=Object.assign(Object.create(wm.prototype),{constructor:Tm,isWebGLMultisampleRenderTarget:!0,copy:function(t){return wm.prototype.copy.call(this,t),this.samples=t.samples,this}}),Object.assign(Mm,{slerp:function(t,e,i,n){return i.copy(t).slerp(e,n)},slerpFlat:function(t,e,i,n,r,s,o){var a=i[n+0],h=i[n+1],u=i[n+2],l=i[n+3],c=r[s+0],d=r[s+1],p=r[s+2],f=r[s+3];if(l!==f||a!==c||h!==d||u!==p){var m=1-o,v=a*c+h*d+u*p+l*f,g=v>=0?1:-1,y=1-v*v;if(y>Number.EPSILON){var _=Math.sqrt(y),x=Math.atan2(_,v*g);m=Math.sin(m*x)/_,o=Math.sin(o*x)/_}var b=o*g;if(a=a*m+c*b,h=h*m+d*b,u=u*m+p*b,l=l*m+f*b,m===1-o){var w=1/Math.sqrt(a*a+h*h+u*u+l*l);a*=w,h*=w,u*=w,l*=w}}t[e]=a,t[e+1]=h,t[e+2]=u,t[e+3]=l}}),Object.defineProperties(Mm.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this._onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this._onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this._onChangeCallback()}},w:{get:function(){return this._w},set:function(t){this._w=t,this._onChangeCallback()}}}),Object.assign(Mm.prototype,{isQuaternion:!0,set:function(t,e,i,n){return this._x=t,this._y=e,this._z=i,this._w=n,this._onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this},setFromEuler:function(t,e){if(!t||!t.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var i=t._x,n=t._y,r=t._z,s=t.order,o=Math.cos,a=Math.sin,h=o(i/2),u=o(n/2),l=o(r/2),c=a(i/2),d=a(n/2),p=a(r/2);return"XYZ"===s?(this._x=c*u*l+h*d*p,this._y=h*d*l-c*u*p,this._z=h*u*p+c*d*l,this._w=h*u*l-c*d*p):"YXZ"===s?(this._x=c*u*l+h*d*p,this._y=h*d*l-c*u*p,this._z=h*u*p-c*d*l,this._w=h*u*l+c*d*p):"ZXY"===s?(this._x=c*u*l-h*d*p,this._y=h*d*l+c*u*p,this._z=h*u*p+c*d*l,this._w=h*u*l-c*d*p):"ZYX"===s?(this._x=c*u*l-h*d*p,this._y=h*d*l+c*u*p,this._z=h*u*p-c*d*l,this._w=h*u*l+c*d*p):"YZX"===s?(this._x=c*u*l+h*d*p,this._y=h*d*l+c*u*p,this._z=h*u*p-c*d*l,this._w=h*u*l-c*d*p):"XZY"===s&&(this._x=c*u*l-h*d*p,this._y=h*d*l-c*u*p,this._z=h*u*p+c*d*l,this._w=h*u*l+c*d*p),!1!==e&&this._onChangeCallback(),this},setFromAxisAngle:function(t,e){var i=e/2,n=Math.sin(i);return this._x=t.x*n,this._y=t.y*n,this._z=t.z*n,this._w=Math.cos(i),this._onChangeCallback(),this},setFromRotationMatrix:function(t){var e,i=t.elements,n=i[0],r=i[4],s=i[8],o=i[1],a=i[5],h=i[9],u=i[2],l=i[6],c=i[10],d=n+a+c;return d>0?(e=.5/Math.sqrt(d+1),this._w=.25/e,this._x=(l-h)*e,this._y=(s-u)*e,this._z=(o-r)*e):n>a&&n>c?(e=2*Math.sqrt(1+n-a-c),this._w=(l-h)/e,this._x=.25*e,this._y=(r+o)/e,this._z=(s+u)/e):a>c?(e=2*Math.sqrt(1+a-n-c),this._w=(s-u)/e,this._x=(r+o)/e,this._y=.25*e,this._z=(h+l)/e):(e=2*Math.sqrt(1+c-n-a),this._w=(o-r)/e,this._x=(s+u)/e,this._y=(h+l)/e,this._z=.25*e),this._onChangeCallback(),this},setFromUnitVectors:function(t,e){var i=t.dot(e)+1;return i<1e-6?(i=0,Math.abs(t.x)>Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=i):(this._x=0,this._y=-t.z,this._z=t.y,this._w=i)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=i),this.normalize()},angleTo:function(t){return 2*Math.acos(Math.abs(mm.clamp(this.dot(t),-1,1)))},rotateTowards:function(t,e){var i=this.angleTo(t);if(0===i)return this;var n=Math.min(1,e/i);return this.slerp(t,n),this},inverse:function(){return this.conjugate()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this},dot:function(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this},multiply:function(t,e){return void 0!==e?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)},premultiply:function(t){return this.multiplyQuaternions(t,this)},multiplyQuaternions:function(t,e){var i=t._x,n=t._y,r=t._z,s=t._w,o=e._x,a=e._y,h=e._z,u=e._w;return this._x=i*u+s*o+n*h-r*a,this._y=n*u+s*a+r*o-i*h,this._z=r*u+s*h+i*a-n*o,this._w=s*u-i*o-n*a-r*h,this._onChangeCallback(),this},slerp:function(t,e){if(0===e)return this;if(1===e)return this.copy(t);var i=this._x,n=this._y,r=this._z,s=this._w,o=s*t._w+i*t._x+n*t._y+r*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=s,this._x=i,this._y=n,this._z=r,this;var a=1-o*o;if(a<=Number.EPSILON){var h=1-e;return this._w=h*s+e*this._w,this._x=h*i+e*this._x,this._y=h*n+e*this._y,this._z=h*r+e*this._z,this.normalize(),this._onChangeCallback(),this}var u=Math.sqrt(a),l=Math.atan2(u,o),c=Math.sin((1-e)*l)/u,d=Math.sin(e*l)/u;return this._w=s*c+this._w*d,this._x=i*c+this._x*d,this._y=n*c+this._y*d,this._z=r*c+this._z*d,this._onChangeCallback(),this},equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w},fromArray:function(t,e){return void 0===e&&(e=0),this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t},fromBufferAttribute:function(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this},_onChange:function(t){return this._onChangeCallback=t,this},_onChangeCallback:function(){}});var Sm=new Lm,Em=new Mm;function Lm(t,e,i){this.x=t||0,this.y=e||0,this.z=i||0}Object.assign(Lm.prototype,{isVector3:!0,set:function(t,e,i){return this.x=t,this.y=e,this.z=i,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},add:function(t,e){return void 0!==e?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},sub:function(t,e){return void 0!==e?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},multiply:function(t,e){return void 0!==e?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this},multiplyVectors:function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this},applyEuler:function(t){return t&&t.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(Em.setFromEuler(t))},applyAxisAngle:function(t,e){return this.applyQuaternion(Em.setFromAxisAngle(t,e))},applyMatrix3:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;return this.x=r[0]*e+r[3]*i+r[6]*n,this.y=r[1]*e+r[4]*i+r[7]*n,this.z=r[2]*e+r[5]*i+r[8]*n,this},applyNormalMatrix:function(t){return this.applyMatrix3(t).normalize()},applyMatrix4:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements,s=1/(r[3]*e+r[7]*i+r[11]*n+r[15]);return this.x=(r[0]*e+r[4]*i+r[8]*n+r[12])*s,this.y=(r[1]*e+r[5]*i+r[9]*n+r[13])*s,this.z=(r[2]*e+r[6]*i+r[10]*n+r[14])*s,this},applyQuaternion:function(t){var e=this.x,i=this.y,n=this.z,r=t.x,s=t.y,o=t.z,a=t.w,h=a*e+s*n-o*i,u=a*i+o*e-r*n,l=a*n+r*i-s*e,c=-r*e-s*i-o*n;return this.x=h*a+c*-r+u*-o-l*-s,this.y=u*a+c*-s+l*-r-h*-o,this.z=l*a+c*-o+h*-s-u*-r,this},project:function(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)},unproject:function(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)},transformDirection:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;return this.x=r[0]*e+r[4]*i+r[8]*n,this.y=r[1]*e+r[5]*i+r[9]*n,this.z=r[2]*e+r[6]*i+r[10]*n,this.normalize()},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this},clampScalar:function(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this},clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},cross:function(t,e){return void 0!==e?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,e)):this.crossVectors(this,t)},crossVectors:function(t,e){var i=t.x,n=t.y,r=t.z,s=e.x,o=e.y,a=e.z;return this.x=n*a-r*o,this.y=r*s-i*a,this.z=i*o-n*s,this},projectOnVector:function(t){var e=t.lengthSq();if(0===e)return this.set(0,0,0);var i=t.dot(this)/e;return this.copy(t).multiplyScalar(i)},projectOnPlane:function(t){return Sm.copy(this).projectOnVector(t),this.sub(Sm)},reflect:function(t){return this.sub(Sm.copy(t).multiplyScalar(2*this.dot(t)))},angleTo:function(t){var e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;var i=this.dot(t)/e;return Math.acos(mm.clamp(i,-1,1))},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y,n=this.z-t.z;return e*e+i*i+n*n},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},setFromSpherical:function(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)},setFromSphericalCoords:function(t,e,i){var n=Math.sin(e)*t;return this.x=n*Math.sin(i),this.y=Math.cos(e)*t,this.z=n*Math.cos(i),this},setFromCylindrical:function(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)},setFromCylindricalCoords:function(t,e,i){return this.x=t*Math.sin(e),this.y=i,this.z=t*Math.cos(e),this},setFromMatrixPosition:function(t){var e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this},setFromMatrixScale:function(t){var e=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length(),n=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=i,this.z=n,this},setFromMatrixColumn:function(t,e){return this.fromArray(t.elements,4*e)},setFromMatrix3Column:function(t,e){return this.fromArray(t.elements,3*e)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},fromBufferAttribute:function(t,e,i){return void 0!==i&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}});var Am=new Lm,Dm=new Im,Pm=new Lm(0,0,0),Cm=new Lm(1,1,1),Om=new Lm,km=new Lm,Rm=new Lm;function Im(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}Object.assign(Im.prototype,{isMatrix4:!0,set:function(t,e,i,n,r,s,o,a,h,u,l,c,d,p,f,m){var v=this.elements;return v[0]=t,v[4]=e,v[8]=i,v[12]=n,v[1]=r,v[5]=s,v[9]=o,v[13]=a,v[2]=h,v[6]=u,v[10]=l,v[14]=c,v[3]=d,v[7]=p,v[11]=f,v[15]=m,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return(new Im).fromArray(this.elements)},copy:function(t){var e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this},copyPosition:function(t){var e=this.elements,i=t.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this},extractBasis:function(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this},makeBasis:function(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this},extractRotation:function(t){var e=this.elements,i=t.elements,n=1/Am.setFromMatrixColumn(t,0).length(),r=1/Am.setFromMatrixColumn(t,1).length(),s=1/Am.setFromMatrixColumn(t,2).length();return e[0]=i[0]*n,e[1]=i[1]*n,e[2]=i[2]*n,e[3]=0,e[4]=i[4]*r,e[5]=i[5]*r,e[6]=i[6]*r,e[7]=0,e[8]=i[8]*s,e[9]=i[9]*s,e[10]=i[10]*s,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},makeRotationFromEuler:function(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var e=this.elements,i=t.x,n=t.y,r=t.z,s=Math.cos(i),o=Math.sin(i),a=Math.cos(n),h=Math.sin(n),u=Math.cos(r),l=Math.sin(r);if("XYZ"===t.order){var c=s*u,d=s*l,p=o*u,f=o*l;e[0]=a*u,e[4]=-a*l,e[8]=h,e[1]=d+p*h,e[5]=c-f*h,e[9]=-o*a,e[2]=f-c*h,e[6]=p+d*h,e[10]=s*a}else if("YXZ"===t.order){var m=a*u,v=a*l,g=h*u,y=h*l;e[0]=m+y*o,e[4]=g*o-v,e[8]=s*h,e[1]=s*l,e[5]=s*u,e[9]=-o,e[2]=v*o-g,e[6]=y+m*o,e[10]=s*a}else if("ZXY"===t.order){m=a*u,v=a*l,g=h*u,y=h*l;e[0]=m-y*o,e[4]=-s*l,e[8]=g+v*o,e[1]=v+g*o,e[5]=s*u,e[9]=y-m*o,e[2]=-s*h,e[6]=o,e[10]=s*a}else if("ZYX"===t.order){c=s*u,d=s*l,p=o*u,f=o*l;e[0]=a*u,e[4]=p*h-d,e[8]=c*h+f,e[1]=a*l,e[5]=f*h+c,e[9]=d*h-p,e[2]=-h,e[6]=o*a,e[10]=s*a}else if("YZX"===t.order){var _=s*a,x=s*h,b=o*a,w=o*h;e[0]=a*u,e[4]=w-_*l,e[8]=b*l+x,e[1]=l,e[5]=s*u,e[9]=-o*u,e[2]=-h*u,e[6]=x*l+b,e[10]=_-w*l}else if("XZY"===t.order){_=s*a,x=s*h,b=o*a,w=o*h;e[0]=a*u,e[4]=-l,e[8]=h*u,e[1]=_*l+w,e[5]=s*u,e[9]=x*l-b,e[2]=b*l-x,e[6]=o*u,e[10]=w*l+_}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},makeRotationFromQuaternion:function(t){return this.compose(Pm,t,Cm)},lookAt:function(t,e,i){var n=this.elements;return Rm.subVectors(t,e),0===Rm.lengthSq()&&(Rm.z=1),Rm.normalize(),Om.crossVectors(i,Rm),0===Om.lengthSq()&&(1===Math.abs(i.z)?Rm.x+=1e-4:Rm.z+=1e-4,Rm.normalize(),Om.crossVectors(i,Rm)),Om.normalize(),km.crossVectors(Rm,Om),n[0]=Om.x,n[4]=km.x,n[8]=Rm.x,n[1]=Om.y,n[5]=km.y,n[9]=Rm.y,n[2]=Om.z,n[6]=km.z,n[10]=Rm.z,this},multiply:function(t,e){return void 0!==e?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var i=t.elements,n=e.elements,r=this.elements,s=i[0],o=i[4],a=i[8],h=i[12],u=i[1],l=i[5],c=i[9],d=i[13],p=i[2],f=i[6],m=i[10],v=i[14],g=i[3],y=i[7],_=i[11],x=i[15],b=n[0],w=n[4],T=n[8],M=n[12],S=n[1],E=n[5],L=n[9],A=n[13],D=n[2],P=n[6],C=n[10],O=n[14],k=n[3],R=n[7],I=n[11],Y=n[15];return r[0]=s*b+o*S+a*D+h*k,r[4]=s*w+o*E+a*P+h*R,r[8]=s*T+o*L+a*C+h*I,r[12]=s*M+o*A+a*O+h*Y,r[1]=u*b+l*S+c*D+d*k,r[5]=u*w+l*E+c*P+d*R,r[9]=u*T+l*L+c*C+d*I,r[13]=u*M+l*A+c*O+d*Y,r[2]=p*b+f*S+m*D+v*k,r[6]=p*w+f*E+m*P+v*R,r[10]=p*T+f*L+m*C+v*I,r[14]=p*M+f*A+m*O+v*Y,r[3]=g*b+y*S+_*D+x*k,r[7]=g*w+y*E+_*P+x*R,r[11]=g*T+y*L+_*C+x*I,r[15]=g*M+y*A+_*O+x*Y,this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this},determinant:function(){var t=this.elements,e=t[0],i=t[4],n=t[8],r=t[12],s=t[1],o=t[5],a=t[9],h=t[13],u=t[2],l=t[6],c=t[10],d=t[14];return t[3]*(+r*a*l-n*h*l-r*o*c+i*h*c+n*o*d-i*a*d)+t[7]*(+e*a*d-e*h*c+r*s*c-n*s*d+n*h*u-r*a*u)+t[11]*(+e*h*l-e*o*d-r*s*l+i*s*d+r*o*u-i*h*u)+t[15]*(-n*o*u-e*a*l+e*o*c+n*s*l-i*s*c+i*a*u)},transpose:function(){var t,e=this.elements;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this},setPosition:function(t,e,i){var n=this.elements;return t.isVector3?(n[12]=t.x,n[13]=t.y,n[14]=t.z):(n[12]=t,n[13]=e,n[14]=i),this},getInverse:function(t,e){void 0!==e&&console.warn("THREE.Matrix4: .getInverse() can no longer be configured to throw on degenerate.");var i=this.elements,n=t.elements,r=n[0],s=n[1],o=n[2],a=n[3],h=n[4],u=n[5],l=n[6],c=n[7],d=n[8],p=n[9],f=n[10],m=n[11],v=n[12],g=n[13],y=n[14],_=n[15],x=p*y*c-g*f*c+g*l*m-u*y*m-p*l*_+u*f*_,b=v*f*c-d*y*c-v*l*m+h*y*m+d*l*_-h*f*_,w=d*g*c-v*p*c+v*u*m-h*g*m-d*u*_+h*p*_,T=v*p*l-d*g*l-v*u*f+h*g*f+d*u*y-h*p*y,M=r*x+s*b+o*w+a*T;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);var S=1/M;return i[0]=x*S,i[1]=(g*f*a-p*y*a-g*o*m+s*y*m+p*o*_-s*f*_)*S,i[2]=(u*y*a-g*l*a+g*o*c-s*y*c-u*o*_+s*l*_)*S,i[3]=(p*l*a-u*f*a-p*o*c+s*f*c+u*o*m-s*l*m)*S,i[4]=b*S,i[5]=(d*y*a-v*f*a+v*o*m-r*y*m-d*o*_+r*f*_)*S,i[6]=(v*l*a-h*y*a-v*o*c+r*y*c+h*o*_-r*l*_)*S,i[7]=(h*f*a-d*l*a+d*o*c-r*f*c-h*o*m+r*l*m)*S,i[8]=w*S,i[9]=(v*p*a-d*g*a-v*s*m+r*g*m+d*s*_-r*p*_)*S,i[10]=(h*g*a-v*u*a+v*s*c-r*g*c-h*s*_+r*u*_)*S,i[11]=(d*u*a-h*p*a-d*s*c+r*p*c+h*s*m-r*u*m)*S,i[12]=T*S,i[13]=(d*g*o-v*p*o+v*s*f-r*g*f-d*s*y+r*p*y)*S,i[14]=(v*u*o-h*g*o-v*s*l+r*g*l+h*s*y-r*u*y)*S,i[15]=(h*p*o-d*u*o+d*s*l-r*p*l-h*s*f+r*u*f)*S,this},scale:function(t){var e=this.elements,i=t.x,n=t.y,r=t.z;return e[0]*=i,e[4]*=n,e[8]*=r,e[1]*=i,e[5]*=n,e[9]*=r,e[2]*=i,e[6]*=n,e[10]*=r,e[3]*=i,e[7]*=n,e[11]*=r,this},getMaxScaleOnAxis:function(){var t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],i=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],n=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,i,n))},makeTranslation:function(t,e,i){return this.set(1,0,0,t,0,1,0,e,0,0,1,i,0,0,0,1),this},makeRotationX:function(t){var e=Math.cos(t),i=Math.sin(t);return this.set(1,0,0,0,0,e,-i,0,0,i,e,0,0,0,0,1),this},makeRotationY:function(t){var e=Math.cos(t),i=Math.sin(t);return this.set(e,0,i,0,0,1,0,0,-i,0,e,0,0,0,0,1),this},makeRotationZ:function(t){var e=Math.cos(t),i=Math.sin(t);return this.set(e,-i,0,0,i,e,0,0,0,0,1,0,0,0,0,1),this},makeRotationAxis:function(t,e){var i=Math.cos(e),n=Math.sin(e),r=1-i,s=t.x,o=t.y,a=t.z,h=r*s,u=r*o;return this.set(h*s+i,h*o-n*a,h*a+n*o,0,h*o+n*a,u*o+i,u*a-n*s,0,h*a-n*o,u*a+n*s,r*a*a+i,0,0,0,0,1),this},makeScale:function(t,e,i){return this.set(t,0,0,0,0,e,0,0,0,0,i,0,0,0,0,1),this},makeShear:function(t,e,i){return this.set(1,e,i,0,t,1,i,0,t,e,1,0,0,0,0,1),this},compose:function(t,e,i){var n=this.elements,r=e._x,s=e._y,o=e._z,a=e._w,h=r+r,u=s+s,l=o+o,c=r*h,d=r*u,p=r*l,f=s*u,m=s*l,v=o*l,g=a*h,y=a*u,_=a*l,x=i.x,b=i.y,w=i.z;return n[0]=(1-(f+v))*x,n[1]=(d+_)*x,n[2]=(p-y)*x,n[3]=0,n[4]=(d-_)*b,n[5]=(1-(c+v))*b,n[6]=(m+g)*b,n[7]=0,n[8]=(p+y)*w,n[9]=(m-g)*w,n[10]=(1-(c+f))*w,n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,this},decompose:function(t,e,i){var n=this.elements,r=Am.set(n[0],n[1],n[2]).length(),s=Am.set(n[4],n[5],n[6]).length(),o=Am.set(n[8],n[9],n[10]).length();this.determinant()<0&&(r=-r),t.x=n[12],t.y=n[13],t.z=n[14],Dm.copy(this);var a=1/r,h=1/s,u=1/o;return Dm.elements[0]*=a,Dm.elements[1]*=a,Dm.elements[2]*=a,Dm.elements[4]*=h,Dm.elements[5]*=h,Dm.elements[6]*=h,Dm.elements[8]*=u,Dm.elements[9]*=u,Dm.elements[10]*=u,e.setFromRotationMatrix(Dm),i.x=r,i.y=s,i.z=o,this},makePerspective:function(t,e,i,n,r,s){void 0===s&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var o=this.elements,a=2*r/(e-t),h=2*r/(i-n),u=(e+t)/(e-t),l=(i+n)/(i-n),c=-(s+r)/(s-r),d=-2*s*r/(s-r);return o[0]=a,o[4]=0,o[8]=u,o[12]=0,o[1]=0,o[5]=h,o[9]=l,o[13]=0,o[2]=0,o[6]=0,o[10]=c,o[14]=d,o[3]=0,o[7]=0,o[11]=-1,o[15]=0,this},makeOrthographic:function(t,e,i,n,r,s){var o=this.elements,a=1/(e-t),h=1/(i-n),u=1/(s-r),l=(e+t)*a,c=(i+n)*h,d=(s+r)*u;return o[0]=2*a,o[4]=0,o[8]=0,o[12]=-l,o[1]=0,o[5]=2*h,o[9]=0,o[13]=-c,o[2]=0,o[6]=0,o[10]=-2*u,o[14]=-d,o[3]=0,o[7]=0,o[11]=0,o[15]=1,this},equals:function(t){for(var e=this.elements,i=t.elements,n=0;n<16;n++)if(e[n]!==i[n])return!1;return!0},fromArray:function(t,e){void 0===e&&(e=0);for(var i=0;i<16;i++)this.elements[i]=t[i+e];return this},toArray:function(t,e){void 0===t&&(t=[]),void 0===e&&(e=0);var i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t[e+9]=i[9],t[e+10]=i[10],t[e+11]=i[11],t[e+12]=i[12],t[e+13]=i[13],t[e+14]=i[14],t[e+15]=i[15],t}});var Ym=new Im,Fm=new Mm;function Nm(t,e,i,n){this._x=t||0,this._y=e||0,this._z=i||0,this._order=n||Nm.DefaultOrder}function Bm(){this.mask=1}Nm.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"],Nm.DefaultOrder="XYZ",Object.defineProperties(Nm.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this._onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this._onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this._onChangeCallback()}},order:{get:function(){return this._order},set:function(t){this._order=t,this._onChangeCallback()}}}),Object.assign(Nm.prototype,{isEuler:!0,set:function(t,e,i,n){return this._x=t,this._y=e,this._z=i,this._order=n||this._order,this._onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this},setFromRotationMatrix:function(t,e,i){var n=mm.clamp,r=t.elements,s=r[0],o=r[4],a=r[8],h=r[1],u=r[5],l=r[9],c=r[2],d=r[6],p=r[10];return"XYZ"===(e=e||this._order)?(this._y=Math.asin(n(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-l,p),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(d,u),this._z=0)):"YXZ"===e?(this._x=Math.asin(-n(l,-1,1)),Math.abs(l)<.9999999?(this._y=Math.atan2(a,p),this._z=Math.atan2(h,u)):(this._y=Math.atan2(-c,s),this._z=0)):"ZXY"===e?(this._x=Math.asin(n(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(-c,p),this._z=Math.atan2(-o,u)):(this._y=0,this._z=Math.atan2(h,s))):"ZYX"===e?(this._y=Math.asin(-n(c,-1,1)),Math.abs(c)<.9999999?(this._x=Math.atan2(d,p),this._z=Math.atan2(h,s)):(this._x=0,this._z=Math.atan2(-o,u))):"YZX"===e?(this._z=Math.asin(n(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(-l,u),this._y=Math.atan2(-c,s)):(this._x=0,this._y=Math.atan2(a,p))):"XZY"===e?(this._z=Math.asin(-n(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(d,u),this._y=Math.atan2(a,s)):(this._x=Math.atan2(-l,p),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+e),this._order=e,!1!==i&&this._onChangeCallback(),this},setFromQuaternion:function(t,e,i){return Ym.makeRotationFromQuaternion(t),this.setFromRotationMatrix(Ym,e,i)},setFromVector3:function(t,e){return this.set(t.x,t.y,t.z,e||this._order)},reorder:function(t){return Fm.setFromEuler(this),this.setFromQuaternion(Fm,t)},equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order},fromArray:function(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t},toVector3:function(t){return t?t.set(this._x,this._y,this._z):new Lm(this._x,this._y,this._z)},_onChange:function(t){return this._onChangeCallback=t,this},_onChangeCallback:function(){}}),Object.assign(Bm.prototype,{set:function(t){this.mask=1<<t|0},enable:function(t){this.mask|=1<<t|0},enableAll:function(){this.mask=-1},toggle:function(t){this.mask^=1<<t|0},disable:function(t){this.mask&=~(1<<t|0)},disableAll:function(){this.mask=0},test:function(t){return 0!=(this.mask&t.mask)}});var Um=0,jm=new Lm,Hm=new Mm,zm=new Im,Wm=new Lm,Gm=new Lm,Vm=new Lm,Xm=new Mm,qm=new Lm(1,0,0),Jm=new Lm(0,1,0),Zm=new Lm(0,0,1),Km={type:"added"},Qm={type:"removed"};function $m(){Object.defineProperty(this,"id",{value:Um++}),this.uuid=mm.generateUUID(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=$m.DefaultUp.clone();var t=new Lm,e=new Nm,i=new Mm,n=new Lm(1,1,1);e._onChange((function(){i.setFromEuler(e,!1)})),i._onChange((function(){e.setFromQuaternion(i,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:i},scale:{configurable:!0,enumerable:!0,value:n},modelViewMatrix:{value:new Im},normalMatrix:{value:new gm}}),this.matrix=new Im,this.matrixWorld=new Im,this.matrixAutoUpdate=$m.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new Bm,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.userData={}}function tv(){$m.call(this),this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}$m.DefaultUp=new Lm(0,1,0),$m.DefaultMatrixAutoUpdate=!0,$m.prototype=Object.assign(Object.create(cm.prototype),{constructor:$m,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix4:function(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(t){return this.quaternion.premultiply(t),this},setRotationFromAxisAngle:function(t,e){this.quaternion.setFromAxisAngle(t,e)},setRotationFromEuler:function(t){this.quaternion.setFromEuler(t,!0)},setRotationFromMatrix:function(t){this.quaternion.setFromRotationMatrix(t)},setRotationFromQuaternion:function(t){this.quaternion.copy(t)},rotateOnAxis:function(t,e){return Hm.setFromAxisAngle(t,e),this.quaternion.multiply(Hm),this},rotateOnWorldAxis:function(t,e){return Hm.setFromAxisAngle(t,e),this.quaternion.premultiply(Hm),this},rotateX:function(t){return this.rotateOnAxis(qm,t)},rotateY:function(t){return this.rotateOnAxis(Jm,t)},rotateZ:function(t){return this.rotateOnAxis(Zm,t)},translateOnAxis:function(t,e){return jm.copy(t).applyQuaternion(this.quaternion),this.position.add(jm.multiplyScalar(e)),this},translateX:function(t){return this.translateOnAxis(qm,t)},translateY:function(t){return this.translateOnAxis(Jm,t)},translateZ:function(t){return this.translateOnAxis(Zm,t)},localToWorld:function(t){return t.applyMatrix4(this.matrixWorld)},worldToLocal:function(t){return t.applyMatrix4(zm.getInverse(this.matrixWorld))},lookAt:function(t,e,i){t.isVector3?Wm.copy(t):Wm.set(t,e,i);var n=this.parent;this.updateWorldMatrix(!0,!1),Gm.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?zm.lookAt(Gm,Wm,this.up):zm.lookAt(Wm,Gm,this.up),this.quaternion.setFromRotationMatrix(zm),n&&(zm.extractRotation(n.matrixWorld),Hm.setFromRotationMatrix(zm),this.quaternion.premultiply(Hm.inverse()))},add:function(t){if(arguments.length>1){for(var e=0;e<arguments.length;e++)this.add(arguments[e]);return this}return t===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",t),this):(t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(Km)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",t),this)},remove:function(t){if(arguments.length>1){for(var e=0;e<arguments.length;e++)this.remove(arguments[e]);return this}var i=this.children.indexOf(t);return-1!==i&&(t.parent=null,this.children.splice(i,1),t.dispatchEvent(Qm)),this},attach:function(t){return this.updateWorldMatrix(!0,!1),zm.getInverse(this.matrixWorld),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),zm.multiply(t.parent.matrixWorld)),t.applyMatrix4(zm),t.updateWorldMatrix(!1,!1),this.add(t),this},getObjectById:function(t){return this.getObjectByProperty("id",t)},getObjectByName:function(t){return this.getObjectByProperty("name",t)},getObjectByProperty:function(t,e){if(this[t]===e)return this;for(var i=0,n=this.children.length;i<n;i++){var r=this.children[i].getObjectByProperty(t,e);if(void 0!==r)return r}},getWorldPosition:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldPosition() target is now required"),t=new Lm),this.updateMatrixWorld(!0),t.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"),t=new Mm),this.updateMatrixWorld(!0),this.matrixWorld.decompose(Gm,t,Vm),t},getWorldScale:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldScale() target is now required"),t=new Lm),this.updateMatrixWorld(!0),this.matrixWorld.decompose(Gm,Xm,t),t},getWorldDirection:function(t){void 0===t&&(console.warn("THREE.Object3D: .getWorldDirection() target is now required"),t=new Lm),this.updateMatrixWorld(!0);var e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()},raycast:function(){},traverse:function(t){t(this);for(var e=this.children,i=0,n=e.length;i<n;i++)e[i].traverse(t)},traverseVisible:function(t){if(!1!==this.visible){t(this);for(var e=this.children,i=0,n=e.length;i<n;i++)e[i].traverseVisible(t)}},traverseAncestors:function(t){var e=this.parent;null!==e&&(t(e),e.traverseAncestors(t))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);for(var e=this.children,i=0,n=e.length;i<n;i++)e[i].updateMatrixWorld(t)},updateWorldMatrix:function(t,e){var i=this.parent;if(!0===t&&null!==i&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===e)for(var n=this.children,r=0,s=n.length;r<s;r++)n[r].updateWorldMatrix(!1,!0)},toJSON:function(t){var e=void 0===t||"string"==typeof t,i={};e&&(t={geometries:{},materials:{},textures:{},images:{},shapes:{}},i.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});var n={};function r(e,i){return void 0===e[i.uuid]&&(e[i.uuid]=i.toJSON(t)),i.uuid}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),!0===this.castShadow&&(n.castShadow=!0),!0===this.receiveShadow&&(n.receiveShadow=!0),!1===this.visible&&(n.visible=!1),!1===this.frustumCulled&&(n.frustumCulled=!1),0!==this.renderOrder&&(n.renderOrder=this.renderOrder),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),n.layers=this.layers.mask,n.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(n.matrixAutoUpdate=!1),this.isInstancedMesh&&(n.type="InstancedMesh",n.count=this.count,n.instanceMatrix=this.instanceMatrix.toJSON()),this.isMesh||this.isLine||this.isPoints){n.geometry=r(t.geometries,this.geometry);var s=this.geometry.parameters;if(void 0!==s&&void 0!==s.shapes){var o=s.shapes;if(Array.isArray(o))for(var a=0,h=o.length;a<h;a++){var u=o[a];r(t.shapes,u)}else r(t.shapes,o)}}if(void 0!==this.material)if(Array.isArray(this.material)){var l=[];for(a=0,h=this.material.length;a<h;a++)l.push(r(t.materials,this.material[a]));n.material=l}else n.material=r(t.materials,this.material);if(this.children.length>0){n.children=[];for(a=0;a<this.children.length;a++)n.children.push(this.children[a].toJSON(t).object)}if(e){var c=m(t.geometries),d=m(t.materials),p=m(t.textures),f=m(t.images);o=m(t.shapes);c.length>0&&(i.geometries=c),d.length>0&&(i.materials=d),p.length>0&&(i.textures=p),f.length>0&&(i.images=f),o.length>0&&(i.shapes=o)}return i.object=n,i;function m(t){var e=[];for(var i in t){var n=t[i];delete n.metadata,e.push(n)}return e}},clone:function(t){return(new this.constructor).copy(this,t)},copy:function(t,e){if(void 0===e&&(e=!0),this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(var i=0;i<t.children.length;i++){var n=t.children[i];this.add(n.clone())}return this}}),tv.prototype=Object.assign(Object.create($m.prototype),{constructor:tv,isScene:!0,copy:function(t,e){return $m.prototype.copy.call(this,t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.autoUpdate=t.autoUpdate,this.matrixAutoUpdate=t.matrixAutoUpdate,this},toJSON:function(t){var e=$m.prototype.toJSON.call(this,t);return null!==this.background&&(e.object.background=this.background.toJSON(t)),null!==this.environment&&(e.object.environment=this.environment.toJSON(t)),null!==this.fog&&(e.object.fog=this.fog.toJSON()),e},dispose:function(){this.dispatchEvent({type:"dispose"})}});var ev=[new Lm,new Lm,new Lm,new Lm,new Lm,new Lm,new Lm,new Lm],iv=new Lm,nv=new fv,rv=new Lm,sv=new Lm,ov=new Lm,av=new Lm,hv=new Lm,uv=new Lm,lv=new Lm,cv=new Lm,dv=new Lm,pv=new Lm;function fv(t,e){this.min=void 0!==t?t:new Lm(1/0,1/0,1/0),this.max=void 0!==e?e:new Lm(-1/0,-1/0,-1/0)}function mv(t,e,i,n,r){var s,o;for(s=0,o=t.length-3;s<=o;s+=3){pv.fromArray(t,s);var a=r.x*Math.abs(pv.x)+r.y*Math.abs(pv.y)+r.z*Math.abs(pv.z),h=e.dot(pv),u=i.dot(pv),l=n.dot(pv);if(Math.max(-Math.max(h,u,l),Math.min(h,u,l))>a)return!1}return!0}Object.assign(fv.prototype,{isBox3:!0,set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromArray:function(t){for(var e=1/0,i=1/0,n=1/0,r=-1/0,s=-1/0,o=-1/0,a=0,h=t.length;a<h;a+=3){var u=t[a],l=t[a+1],c=t[a+2];u<e&&(e=u),l<i&&(i=l),c<n&&(n=c),u>r&&(r=u),l>s&&(s=l),c>o&&(o=c)}return this.min.set(e,i,n),this.max.set(r,s,o),this},setFromBufferAttribute:function(t){for(var e=1/0,i=1/0,n=1/0,r=-1/0,s=-1/0,o=-1/0,a=0,h=t.count;a<h;a++){var u=t.getX(a),l=t.getY(a),c=t.getZ(a);u<e&&(e=u),l<i&&(i=l),c<n&&(n=c),u>r&&(r=u),l>s&&(s=l),c>o&&(o=c)}return this.min.set(e,i,n),this.max.set(r,s,o),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;e<i;e++)this.expandByPoint(t[e]);return this},setFromCenterAndSize:function(t,e){var i=iv.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(i),this.max.copy(t).add(i),this},setFromObject:function(t){return this.makeEmpty(),this.expandByObject(t)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.min.copy(t.min),this.max.copy(t.max),this},makeEmpty:function(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(t){return void 0===t&&(console.warn("THREE.Box3: .getCenter() target is now required"),t=new Lm),this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(t){return void 0===t&&(console.warn("THREE.Box3: .getSize() target is now required"),t=new Lm),this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)},expandByPoint:function(t){return this.min.min(t),this.max.max(t),this},expandByVector:function(t){return this.min.sub(t),this.max.add(t),this},expandByScalar:function(t){return this.min.addScalar(-t),this.max.addScalar(t),this},expandByObject:function(t){t.updateWorldMatrix(!1,!1);var e=t.geometry;void 0!==e&&(null===e.boundingBox&&e.computeBoundingBox(),nv.copy(e.boundingBox),nv.applyMatrix4(t.matrixWorld),this.union(nv));for(var i=t.children,n=0,r=i.length;n<r;n++)this.expandByObject(i[n]);return this},containsPoint:function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z},getParameter:function(t,e){return void 0===e&&(console.warn("THREE.Box3: .getParameter() target is now required"),e=new Lm),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)},intersectsSphere:function(t){return this.clampPoint(t.center,iv),iv.distanceToSquared(t.center)<=t.radius*t.radius},intersectsPlane:function(t){var e,i;return t.normal.x>0?(e=t.normal.x*this.min.x,i=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,i=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),e<=-t.constant&&i>=-t.constant},intersectsTriangle:function(t){if(this.isEmpty())return!1;this.getCenter(lv),cv.subVectors(this.max,lv),rv.subVectors(t.a,lv),sv.subVectors(t.b,lv),ov.subVectors(t.c,lv),av.subVectors(sv,rv),hv.subVectors(ov,sv),uv.subVectors(rv,ov);var e=[0,-av.z,av.y,0,-hv.z,hv.y,0,-uv.z,uv.y,av.z,0,-av.x,hv.z,0,-hv.x,uv.z,0,-uv.x,-av.y,av.x,0,-hv.y,hv.x,0,-uv.y,uv.x,0];return!!mv(e,rv,sv,ov,cv)&&(!!mv(e=[1,0,0,0,1,0,0,0,1],rv,sv,ov,cv)&&(dv.crossVectors(av,hv),mv(e=[dv.x,dv.y,dv.z],rv,sv,ov,cv)))},clampPoint:function(t,e){return void 0===e&&(console.warn("THREE.Box3: .clampPoint() target is now required"),e=new Lm),e.copy(t).clamp(this.min,this.max)},distanceToPoint:function(t){return iv.copy(t).clamp(this.min,this.max).sub(t).length()},getBoundingSphere:function(t){return void 0===t&&console.error("THREE.Box3: .getBoundingSphere() target is now required"),this.getCenter(t.center),t.radius=.5*this.getSize(iv).length(),t},intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},applyMatrix4:function(t){return this.isEmpty()||(ev[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),ev[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),ev[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),ev[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),ev[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),ev[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),ev[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),ev[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(ev)),this},translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}});var vv=new fv;function gv(t,e){this.center=void 0!==t?t:new Lm,this.radius=void 0!==e?e:0}Object.assign(gv.prototype,{set:function(t,e){return this.center.copy(t),this.radius=e,this},setFromPoints:function(t,e){var i=this.center;void 0!==e?i.copy(e):vv.setFromPoints(t).getCenter(i);for(var n=0,r=0,s=t.length;r<s;r++)n=Math.max(n,i.distanceToSquared(t[r]));return this.radius=Math.sqrt(n),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.center.copy(t.center),this.radius=t.radius,this},empty:function(){return this.radius<=0},containsPoint:function(t){return t.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(t){return t.distanceTo(this.center)-this.radius},intersectsSphere:function(t){var e=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=e*e},intersectsBox:function(t){return t.intersectsSphere(this)},intersectsPlane:function(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius},clampPoint:function(t,e){var i=this.center.distanceToSquared(t);return void 0===e&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),e=new Lm),e.copy(t),i>this.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e},getBoundingBox:function(t){return void 0===t&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),t=new fv),t.set(this.center,this.center),t.expandByScalar(this.radius),t},applyMatrix4:function(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this},translate:function(t){return this.center.add(t),this},equals:function(t){return t.center.equals(this.center)&&t.radius===this.radius}});var yv=new Lm,_v=new Lm,xv=new Lm,bv=new Lm,wv=new Lm,Tv=new Lm,Mv=new Lm;function Sv(t,e){this.origin=void 0!==t?t:new Lm,this.direction=void 0!==e?e:new Lm(0,0,-1)}Object.assign(Sv.prototype,{set:function(t,e){return this.origin.copy(t),this.direction.copy(e),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this},at:function(t,e){return void 0===e&&(console.warn("THREE.Ray: .at() target is now required"),e=new Lm),e.copy(this.direction).multiplyScalar(t).add(this.origin)},lookAt:function(t){return this.direction.copy(t).sub(this.origin).normalize(),this},recast:function(t){return this.origin.copy(this.at(t,yv)),this},closestPointToPoint:function(t,e){void 0===e&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),e=new Lm),e.subVectors(t,this.origin);var i=e.dot(this.direction);return i<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(i).add(this.origin)},distanceToPoint:function(t){return Math.sqrt(this.distanceSqToPoint(t))},distanceSqToPoint:function(t){var e=yv.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(yv.copy(this.direction).multiplyScalar(e).add(this.origin),yv.distanceToSquared(t))},distanceSqToSegment:function(t,e,i,n){_v.copy(t).add(e).multiplyScalar(.5),xv.copy(e).sub(t).normalize(),bv.copy(this.origin).sub(_v);var r,s,o,a,h=.5*t.distanceTo(e),u=-this.direction.dot(xv),l=bv.dot(this.direction),c=-bv.dot(xv),d=bv.lengthSq(),p=Math.abs(1-u*u);if(p>0)if(s=u*l-c,a=h*p,(r=u*c-l)>=0)if(s>=-a)if(s<=a){var f=1/p;o=(r*=f)*(r+u*(s*=f)+2*l)+s*(u*r+s+2*c)+d}else s=h,o=-(r=Math.max(0,-(u*s+l)))*r+s*(s+2*c)+d;else s=-h,o=-(r=Math.max(0,-(u*s+l)))*r+s*(s+2*c)+d;else s<=-a?o=-(r=Math.max(0,-(-u*h+l)))*r+(s=r>0?-h:Math.min(Math.max(-h,-c),h))*(s+2*c)+d:s<=a?(r=0,o=(s=Math.min(Math.max(-h,-c),h))*(s+2*c)+d):o=-(r=Math.max(0,-(u*h+l)))*r+(s=r>0?h:Math.min(Math.max(-h,-c),h))*(s+2*c)+d;else s=u>0?-h:h,o=-(r=Math.max(0,-(u*s+l)))*r+s*(s+2*c)+d;return i&&i.copy(this.direction).multiplyScalar(r).add(this.origin),n&&n.copy(xv).multiplyScalar(s).add(_v),o},intersectSphere:function(t,e){yv.subVectors(t.center,this.origin);var i=yv.dot(this.direction),n=yv.dot(yv)-i*i,r=t.radius*t.radius;if(n>r)return null;var s=Math.sqrt(r-n),o=i-s,a=i+s;return o<0&&a<0?null:o<0?this.at(a,e):this.at(o,e)},intersectsSphere:function(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius},distanceToPlane:function(t){var e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;var i=-(this.origin.dot(t.normal)+t.constant)/e;return i>=0?i:null},intersectPlane:function(t,e){var i=this.distanceToPlane(t);return null===i?null:this.at(i,e)},intersectsPlane:function(t){var e=t.distanceToPoint(this.origin);return 0===e||t.normal.dot(this.direction)*e<0},intersectBox:function(t,e){var i,n,r,s,o,a,h=1/this.direction.x,u=1/this.direction.y,l=1/this.direction.z,c=this.origin;return h>=0?(i=(t.min.x-c.x)*h,n=(t.max.x-c.x)*h):(i=(t.max.x-c.x)*h,n=(t.min.x-c.x)*h),u>=0?(r=(t.min.y-c.y)*u,s=(t.max.y-c.y)*u):(r=(t.max.y-c.y)*u,s=(t.min.y-c.y)*u),i>s||r>n?null:((r>i||i!=i)&&(i=r),(s<n||n!=n)&&(n=s),l>=0?(o=(t.min.z-c.z)*l,a=(t.max.z-c.z)*l):(o=(t.max.z-c.z)*l,a=(t.min.z-c.z)*l),i>a||o>n?null:((o>i||i!=i)&&(i=o),(a<n||n!=n)&&(n=a),n<0?null:this.at(i>=0?i:n,e)))},intersectsBox:function(t){return null!==this.intersectBox(t,yv)},intersectTriangle:function(t,e,i,n,r){wv.subVectors(e,t),Tv.subVectors(i,t),Mv.crossVectors(wv,Tv);var s,o=this.direction.dot(Mv);if(o>0){if(n)return null;s=1}else{if(!(o<0))return null;s=-1,o=-o}bv.subVectors(this.origin,t);var a=s*this.direction.dot(Tv.crossVectors(bv,Tv));if(a<0)return null;var h=s*this.direction.dot(wv.cross(bv));if(h<0)return null;if(a+h>o)return null;var u=-s*bv.dot(Mv);return u<0?null:this.at(u/o,r)},applyMatrix4:function(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this},equals:function(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}});var Ev=new Lm,Lv=new Lm,Av=new gm;function Dv(t,e){this.normal=void 0!==t?t:new Lm(1,0,0),this.constant=void 0!==e?e:0}Object.assign(Dv.prototype,{isPlane:!0,set:function(t,e){return this.normal.copy(t),this.constant=e,this},setComponents:function(t,e,i,n){return this.normal.set(t,e,i),this.constant=n,this},setFromNormalAndCoplanarPoint:function(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this},setFromCoplanarPoints:function(t,e,i){var n=Ev.subVectors(i,e).cross(Lv.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(n,t),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.normal.copy(t.normal),this.constant=t.constant,this},normalize:function(){var t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this},negate:function(){return this.constant*=-1,this.normal.negate(),this},distanceToPoint:function(t){return this.normal.dot(t)+this.constant},distanceToSphere:function(t){return this.distanceToPoint(t.center)-t.radius},projectPoint:function(t,e){return void 0===e&&(console.warn("THREE.Plane: .projectPoint() target is now required"),e=new Lm),e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)},intersectLine:function(t,e){void 0===e&&(console.warn("THREE.Plane: .intersectLine() target is now required"),e=new Lm);var i=t.delta(Ev),n=this.normal.dot(i);if(0===n)return 0===this.distanceToPoint(t.start)?e.copy(t.start):void 0;var r=-(t.start.dot(this.normal)+this.constant)/n;return r<0||r>1?void 0:e.copy(i).multiplyScalar(r).add(t.start)},intersectsLine:function(t){var e=this.distanceToPoint(t.start),i=this.distanceToPoint(t.end);return e<0&&i>0||i<0&&e>0},intersectsBox:function(t){return t.intersectsPlane(this)},intersectsSphere:function(t){return t.intersectsPlane(this)},coplanarPoint:function(t){return void 0===t&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),t=new Lm),t.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(t,e){var i=e||Av.getNormalMatrix(t),n=this.coplanarPoint(Ev).applyMatrix4(t),r=this.normal.applyMatrix3(i).normalize();return this.constant=-n.dot(r),this},translate:function(t){return this.constant-=t.dot(this.normal),this},equals:function(t){return t.normal.equals(this.normal)&&t.constant===this.constant}});var Pv=new Lm,Cv=new Lm,Ov=new Lm,kv=new Lm,Rv=new Lm,Iv=new Lm,Yv=new Lm,Fv=new Lm,Nv=new Lm,Bv=new Lm;function Uv(t,e,i){this.a=void 0!==t?t:new Lm,this.b=void 0!==e?e:new Lm,this.c=void 0!==i?i:new Lm}Object.assign(Uv,{getNormal:function(t,e,i,n){void 0===n&&(console.warn("THREE.Triangle: .getNormal() target is now required"),n=new Lm),n.subVectors(i,e),Pv.subVectors(t,e),n.cross(Pv);var r=n.lengthSq();return r>0?n.multiplyScalar(1/Math.sqrt(r)):n.set(0,0,0)},getBarycoord:function(t,e,i,n,r){Pv.subVectors(n,e),Cv.subVectors(i,e),Ov.subVectors(t,e);var s=Pv.dot(Pv),o=Pv.dot(Cv),a=Pv.dot(Ov),h=Cv.dot(Cv),u=Cv.dot(Ov),l=s*h-o*o;if(void 0===r&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),r=new Lm),0===l)return r.set(-2,-1,-1);var c=1/l,d=(h*a-o*u)*c,p=(s*u-o*a)*c;return r.set(1-d-p,p,d)},containsPoint:function(t,e,i,n){return Uv.getBarycoord(t,e,i,n,kv),kv.x>=0&&kv.y>=0&&kv.x+kv.y<=1},getUV:function(t,e,i,n,r,s,o,a){return this.getBarycoord(t,e,i,n,kv),a.set(0,0),a.addScaledVector(r,kv.x),a.addScaledVector(s,kv.y),a.addScaledVector(o,kv.z),a},isFrontFacing:function(t,e,i,n){return Pv.subVectors(i,e),Cv.subVectors(t,e),Pv.cross(Cv).dot(n)<0}}),Object.assign(Uv.prototype,{set:function(t,e,i){return this.a.copy(t),this.b.copy(e),this.c.copy(i),this},setFromPointsAndIndices:function(t,e,i,n){return this.a.copy(t[e]),this.b.copy(t[i]),this.c.copy(t[n]),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this},getArea:function(){return Pv.subVectors(this.c,this.b),Cv.subVectors(this.a,this.b),.5*Pv.cross(Cv).length()},getMidpoint:function(t){return void 0===t&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),t=new Lm),t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(t){return Uv.getNormal(this.a,this.b,this.c,t)},getPlane:function(t){return void 0===t&&(console.warn("THREE.Triangle: .getPlane() target is now required"),t=new Dv),t.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(t,e){return Uv.getBarycoord(t,this.a,this.b,this.c,e)},getUV:function(t,e,i,n,r){return Uv.getUV(t,this.a,this.b,this.c,e,i,n,r)},containsPoint:function(t){return Uv.containsPoint(t,this.a,this.b,this.c)},isFrontFacing:function(t){return Uv.isFrontFacing(this.a,this.b,this.c,t)},intersectsBox:function(t){return t.intersectsTriangle(this)},closestPointToPoint:function(t,e){void 0===e&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),e=new Lm);var i,n,r=this.a,s=this.b,o=this.c;Rv.subVectors(s,r),Iv.subVectors(o,r),Fv.subVectors(t,r);var a=Rv.dot(Fv),h=Iv.dot(Fv);if(a<=0&&h<=0)return e.copy(r);Nv.subVectors(t,s);var u=Rv.dot(Nv),l=Iv.dot(Nv);if(u>=0&&l<=u)return e.copy(s);var c=a*l-u*h;if(c<=0&&a>=0&&u<=0)return i=a/(a-u),e.copy(r).addScaledVector(Rv,i);Bv.subVectors(t,o);var d=Rv.dot(Bv),p=Iv.dot(Bv);if(p>=0&&d<=p)return e.copy(o);var f=d*h-a*p;if(f<=0&&h>=0&&p<=0)return n=h/(h-p),e.copy(r).addScaledVector(Iv,n);var m=u*p-d*l;if(m<=0&&l-u>=0&&d-p>=0)return Yv.subVectors(o,s),n=(l-u)/(l-u+(d-p)),e.copy(s).addScaledVector(Yv,n);var v=1/(m+f+c);return i=f*v,n=c*v,e.copy(r).addScaledVector(Rv,i).addScaledVector(Iv,n)},equals:function(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}});var jv={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Hv={h:0,s:0,l:0},zv={h:0,s:0,l:0};function Wv(t,e,i){return void 0===e&&void 0===i?this.set(t):this.setRGB(t,e,i)}function Gv(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+6*(e-t)*(2/3-i):t}function Vv(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Xv(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}function qv(t,e,i,n,r,s){this.a=t,this.b=e,this.c=i,this.normal=n&&n.isVector3?n:new Lm,this.vertexNormals=Array.isArray(n)?n:[],this.color=r&&r.isColor?r:new Wv,this.vertexColors=Array.isArray(r)?r:[],this.materialIndex=void 0!==s?s:0}Object.assign(Wv.prototype,{isColor:!0,r:1,g:1,b:1,set:function(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this},setScalar:function(t){return this.r=t,this.g=t,this.b=t,this},setHex:function(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this},setRGB:function(t,e,i){return this.r=t,this.g=e,this.b=i,this},setHSL:function(t,e,i){if(t=mm.euclideanModulo(t,1),e=mm.clamp(e,0,1),i=mm.clamp(i,0,1),0===e)this.r=this.g=this.b=i;else{var n=i<=.5?i*(1+e):i+e-i*e,r=2*i-n;this.r=Gv(r,n,t+1/3),this.g=Gv(r,n,t),this.b=Gv(r,n,t-1/3)}return this},setStyle:function(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}var i;if(i=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(t)){var n,r=i[1],s=i[2];switch(r){case"rgb":case"rgba":if(n=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(s))return this.r=Math.min(255,parseInt(n[1],10))/255,this.g=Math.min(255,parseInt(n[2],10))/255,this.b=Math.min(255,parseInt(n[3],10))/255,e(n[5]),this;if(n=/^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(s))return this.r=Math.min(100,parseInt(n[1],10))/100,this.g=Math.min(100,parseInt(n[2],10))/100,this.b=Math.min(100,parseInt(n[3],10))/100,e(n[5]),this;break;case"hsl":case"hsla":if(n=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(s)){var o=parseFloat(n[1])/360,a=parseInt(n[2],10)/100,h=parseInt(n[3],10)/100;return e(n[5]),this.setHSL(o,a,h)}}}else if(i=/^\#([A-Fa-f0-9]+)$/.exec(t)){var u=i[1],l=u.length;if(3===l)return this.r=parseInt(u.charAt(0)+u.charAt(0),16)/255,this.g=parseInt(u.charAt(1)+u.charAt(1),16)/255,this.b=parseInt(u.charAt(2)+u.charAt(2),16)/255,this;if(6===l)return this.r=parseInt(u.charAt(0)+u.charAt(1),16)/255,this.g=parseInt(u.charAt(2)+u.charAt(3),16)/255,this.b=parseInt(u.charAt(4)+u.charAt(5),16)/255,this}return t&&t.length>0?this.setColorName(t):this},setColorName:function(t){var e=jv[t];return void 0!==e?this.setHex(e):console.warn("THREE.Color: Unknown color "+t),this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(t){return this.r=t.r,this.g=t.g,this.b=t.b,this},copyGammaToLinear:function(t,e){return void 0===e&&(e=2),this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this},copyLinearToGamma:function(t,e){void 0===e&&(e=2);var i=e>0?1/e:1;return this.r=Math.pow(t.r,i),this.g=Math.pow(t.g,i),this.b=Math.pow(t.b,i),this},convertGammaToLinear:function(t){return this.copyGammaToLinear(this,t),this},convertLinearToGamma:function(t){return this.copyLinearToGamma(this,t),this},copySRGBToLinear:function(t){return this.r=Vv(t.r),this.g=Vv(t.g),this.b=Vv(t.b),this},copyLinearToSRGB:function(t){return this.r=Xv(t.r),this.g=Xv(t.g),this.b=Xv(t.b),this},convertSRGBToLinear:function(){return this.copySRGBToLinear(this),this},convertLinearToSRGB:function(){return this.copyLinearToSRGB(this),this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(t){void 0===t&&(console.warn("THREE.Color: .getHSL() target is now required"),t={h:0,s:0,l:0});var e,i,n=this.r,r=this.g,s=this.b,o=Math.max(n,r,s),a=Math.min(n,r,s),h=(a+o)/2;if(a===o)e=0,i=0;else{var u=o-a;switch(i=h<=.5?u/(o+a):u/(2-o-a),o){case n:e=(r-s)/u+(r<s?6:0);break;case r:e=(s-n)/u+2;break;case s:e=(n-r)/u+4}e/=6}return t.h=e,t.s=i,t.l=h,t},getStyle:function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(t,e,i){return this.getHSL(Hv),Hv.h+=t,Hv.s+=e,Hv.l+=i,this.setHSL(Hv.h,Hv.s,Hv.l),this},add:function(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this},addColors:function(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this},addScalar:function(t){return this.r+=t,this.g+=t,this.b+=t,this},sub:function(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this},multiply:function(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this},multiplyScalar:function(t){return this.r*=t,this.g*=t,this.b*=t,this},lerp:function(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this},lerpHSL:function(t,e){this.getHSL(Hv),t.getHSL(zv);var i=mm.lerp(Hv.h,zv.h,e),n=mm.lerp(Hv.s,zv.s,e),r=mm.lerp(Hv.l,zv.l,e);return this.setHSL(i,n,r),this},equals:function(t){return t.r===this.r&&t.g===this.g&&t.b===this.b},fromArray:function(t,e){return void 0===e&&(e=0),this.r=t[e],this.g=t[e+1],this.b=t[e+2],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t},toJSON:function(){return this.getHex()}}),Wv.NAMES=jv,Object.assign(qv.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(var e=0,i=t.vertexNormals.length;e<i;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(e=0,i=t.vertexColors.length;e<i;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}});var Jv=0;function Zv(){Object.defineProperty(this,"id",{value:Jv++}),this.uuid=mm.generateUUID(),this.name="",this.type="Material",this.fog=!0,this.blending=1,this.side=0,this.flatShading=!1,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=kf,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=hm,this.stencilZFail=hm,this.stencilZPass=hm,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}function Kv(t){Zv.call(this),this.type="MeshBasicMaterial",this.color=new Wv(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.setValues(t)}Zv.prototype=Object.assign(Object.create(cm.prototype),{constructor:Zv,isMaterial:!0,onBeforeCompile:function(){},setValues:function(t){if(void 0!==t)for(var e in t){var i=t[e];if(void 0!==i)if("shading"!==e){var n=this[e];void 0!==n?n&&n.isColor?n.set(i):n&&n.isVector3&&i&&i.isVector3?n.copy(i):this[e]=i:console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.")}else console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===i;else console.warn("THREE.Material: '"+e+"' parameter is undefined.")}},toJSON:function(t){var e=void 0===t||"string"==typeof t;e&&(t={textures:{},images:{}});var i={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function n(t){var e=[];for(var i in t){var n=t[i];delete n.metadata,e.push(n)}return e}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),void 0!==this.roughness&&(i.roughness=this.roughness),void 0!==this.metalness&&(i.metalness=this.metalness),this.sheen&&this.sheen.isColor&&(i.sheen=this.sheen.getHex()),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),void 0!==this.shininess&&(i.shininess=this.shininess),void 0!==this.clearcoat&&(i.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(t).uuid),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(t).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(t).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(t).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(t).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(t).uuid,i.reflectivity=this.reflectivity,i.refractionRatio=this.refractionRatio,void 0!==this.combine&&(i.combine=this.combine),void 0!==this.envMapIntensity&&(i.envMapIntensity=this.envMapIntensity)),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.size&&(i.size=this.size),void 0!==this.sizeAttenuation&&(i.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(i.blending=this.blending),!0===this.flatShading&&(i.flatShading=this.flatShading),0!==this.side&&(i.side=this.side),this.vertexColors&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),!0===this.transparent&&(i.transparent=this.transparent),i.depthFunc=this.depthFunc,i.depthTest=this.depthTest,i.depthWrite=this.depthWrite,i.stencilWrite=this.stencilWrite,i.stencilWriteMask=this.stencilWriteMask,i.stencilFunc=this.stencilFunc,i.stencilRef=this.stencilRef,i.stencilFuncMask=this.stencilFuncMask,i.stencilFail=this.stencilFail,i.stencilZFail=this.stencilZFail,i.stencilZPass=this.stencilZPass,this.rotation&&0!==this.rotation&&(i.rotation=this.rotation),!0===this.polygonOffset&&(i.polygonOffset=!0),0!==this.polygonOffsetFactor&&(i.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth&&1!==this.linewidth&&(i.linewidth=this.linewidth),void 0!==this.dashSize&&(i.dashSize=this.dashSize),void 0!==this.gapSize&&(i.gapSize=this.gapSize),void 0!==this.scale&&(i.scale=this.scale),!0===this.dithering&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(i.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(i.wireframe=this.wireframe),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(i.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(i.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(i.morphTargets=!0),!0===this.morphNormals&&(i.morphNormals=!0),!0===this.skinning&&(i.skinning=!0),!1===this.visible&&(i.visible=!1),!1===this.toneMapped&&(i.toneMapped=!1),"{}"!==JSON.stringify(this.userData)&&(i.userData=this.userData),e){var r=n(t.textures),s=n(t.images);r.length>0&&(i.textures=r),s.length>0&&(i.images=s)}return i},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.flatShading=t.flatShading,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;var e=t.clippingPlanes,i=null;if(null!==e){var n=e.length;i=new Array(n);for(var r=0;r!==n;++r)i[r]=e[r].clone()}return this.clippingPlanes=i,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Object.defineProperty(Zv.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Kv.prototype=Object.create(Zv.prototype),Kv.prototype.constructor=Kv,Kv.prototype.isMeshBasicMaterial=!0,Kv.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this};var Qv=new Lm;function $v(t,e,i){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===i,this.usage=um,this.updateRange={offset:0,count:-1},this.version=0}function tg(t,e,i){$v.call(this,new Int8Array(t),e,i)}function eg(t,e,i){$v.call(this,new Uint8Array(t),e,i)}function ig(t,e,i){$v.call(this,new Uint8ClampedArray(t),e,i)}function ng(t,e,i){$v.call(this,new Int16Array(t),e,i)}function rg(t,e,i){$v.call(this,new Uint16Array(t),e,i)}function sg(t,e,i){$v.call(this,new Int32Array(t),e,i)}function og(t,e,i){$v.call(this,new Uint32Array(t),e,i)}function ag(t,e,i){$v.call(this,new Float32Array(t),e,i)}function hg(t,e,i){$v.call(this,new Float64Array(t),e,i)}function ug(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}function lg(t){if(0===t.length)return-1/0;for(var e=t[0],i=1,n=t.length;i<n;++i)t[i]>e&&(e=t[i]);return e}Object.defineProperty($v.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign($v.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setUsage:function(t){return this.usage=t,this},copy:function(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this},copyAt:function(t,e,i){t*=this.itemSize,i*=e.itemSize;for(var n=0,r=this.itemSize;n<r;n++)this.array[t+n]=e.array[i+n];return this},copyArray:function(t){return this.array.set(t),this},copyColorsArray:function(t){for(var e=this.array,i=0,n=0,r=t.length;n<r;n++){var s=t[n];void 0===s&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",n),s=new Wv),e[i++]=s.r,e[i++]=s.g,e[i++]=s.b}return this},copyVector2sArray:function(t){for(var e=this.array,i=0,n=0,r=t.length;n<r;n++){var s=t[n];void 0===s&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",n),s=new vm),e[i++]=s.x,e[i++]=s.y}return this},copyVector3sArray:function(t){for(var e=this.array,i=0,n=0,r=t.length;n<r;n++){var s=t[n];void 0===s&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",n),s=new Lm),e[i++]=s.x,e[i++]=s.y,e[i++]=s.z}return this},copyVector4sArray:function(t){for(var e=this.array,i=0,n=0,r=t.length;n<r;n++){var s=t[n];void 0===s&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",n),s=new bm),e[i++]=s.x,e[i++]=s.y,e[i++]=s.z,e[i++]=s.w}return this},applyMatrix3:function(t){for(var e=0,i=this.count;e<i;e++)Qv.x=this.getX(e),Qv.y=this.getY(e),Qv.z=this.getZ(e),Qv.applyMatrix3(t),this.setXYZ(e,Qv.x,Qv.y,Qv.z);return this},applyMatrix4:function(t){for(var e=0,i=this.count;e<i;e++)Qv.x=this.getX(e),Qv.y=this.getY(e),Qv.z=this.getZ(e),Qv.applyMatrix4(t),this.setXYZ(e,Qv.x,Qv.y,Qv.z);return this},applyNormalMatrix:function(t){for(var e=0,i=this.count;e<i;e++)Qv.x=this.getX(e),Qv.y=this.getY(e),Qv.z=this.getZ(e),Qv.applyNormalMatrix(t),this.setXYZ(e,Qv.x,Qv.y,Qv.z);return this},transformDirection:function(t){for(var e=0,i=this.count;e<i;e++)Qv.x=this.getX(e),Qv.y=this.getY(e),Qv.z=this.getZ(e),Qv.transformDirection(t),this.setXYZ(e,Qv.x,Qv.y,Qv.z);return this},set:function(t,e){return void 0===e&&(e=0),this.array.set(t,e),this},getX:function(t){return this.array[t*this.itemSize]},setX:function(t,e){return this.array[t*this.itemSize]=e,this},getY:function(t){return this.array[t*this.itemSize+1]},setY:function(t,e){return this.array[t*this.itemSize+1]=e,this},getZ:function(t){return this.array[t*this.itemSize+2]},setZ:function(t,e){return this.array[t*this.itemSize+2]=e,this},getW:function(t){return this.array[t*this.itemSize+3]},setW:function(t,e){return this.array[t*this.itemSize+3]=e,this},setXY:function(t,e,i){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=i,this},setXYZ:function(t,e,i,n){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=i,this.array[t+2]=n,this},setXYZW:function(t,e,i,n,r){return t*=this.itemSize,this.array[t+0]=e,this.array[t+1]=i,this.array[t+2]=n,this.array[t+3]=r,this},onUpload:function(t){return this.onUploadCallback=t,this},clone:function(){return new this.constructor(this.array,this.itemSize).copy(this)},toJSON:function(){return{itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized}}}),tg.prototype=Object.create($v.prototype),tg.prototype.constructor=tg,eg.prototype=Object.create($v.prototype),eg.prototype.constructor=eg,ig.prototype=Object.create($v.prototype),ig.prototype.constructor=ig,ng.prototype=Object.create($v.prototype),ng.prototype.constructor=ng,rg.prototype=Object.create($v.prototype),rg.prototype.constructor=rg,sg.prototype=Object.create($v.prototype),sg.prototype.constructor=sg,og.prototype=Object.create($v.prototype),og.prototype.constructor=og,ag.prototype=Object.create($v.prototype),ag.prototype.constructor=ag,hg.prototype=Object.create($v.prototype),hg.prototype.constructor=hg,Object.assign(ug.prototype,{computeGroups:function(t){for(var e,i=[],n=void 0,r=t.faces,s=0;s<r.length;s++){var o=r[s];o.materialIndex!==n&&(n=o.materialIndex,void 0!==e&&(e.count=3*s-e.start,i.push(e)),e={start:3*s,materialIndex:n})}void 0!==e&&(e.count=3*s-e.start,i.push(e)),this.groups=i},fromGeometry:function(t){var e,i=t.faces,n=t.vertices,r=t.faceVertexUvs,s=r[0]&&r[0].length>0,o=r[1]&&r[1].length>0,a=t.morphTargets,h=a.length;if(h>0){e=[];for(var u=0;u<h;u++)e[u]={name:a[u].name,data:[]};this.morphTargets.position=e}var l,c=t.morphNormals,d=c.length;if(d>0){l=[];for(u=0;u<d;u++)l[u]={name:c[u].name,data:[]};this.morphTargets.normal=l}var p=t.skinIndices,f=t.skinWeights,m=p.length===n.length,v=f.length===n.length;n.length>0&&0===i.length&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(u=0;u<i.length;u++){var g=i[u];this.vertices.push(n[g.a],n[g.b],n[g.c]);var y=g.vertexNormals;if(3===y.length)this.normals.push(y[0],y[1],y[2]);else{var _=g.normal;this.normals.push(_,_,_)}var x,b=g.vertexColors;if(3===b.length)this.colors.push(b[0],b[1],b[2]);else{var w=g.color;this.colors.push(w,w,w)}if(!0===s)void 0!==(x=r[0][u])?this.uvs.push(x[0],x[1],x[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",u),this.uvs.push(new vm,new vm,new vm));if(!0===o)void 0!==(x=r[1][u])?this.uvs2.push(x[0],x[1],x[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",u),this.uvs2.push(new vm,new vm,new vm));for(var T=0;T<h;T++){var M=a[T].vertices;e[T].data.push(M[g.a],M[g.b],M[g.c])}for(T=0;T<d;T++){var S=c[T].vertexNormals[u];l[T].data.push(S.a,S.b,S.c)}m&&this.skinIndices.push(p[g.a],p[g.b],p[g.c]),v&&this.skinWeights.push(f[g.a],f[g.b],f[g.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),this}});var cg=1,dg=new Im,pg=new $m,fg=new Lm,mg=new fv,vg=new fv,gg=new Lm;function yg(){Object.defineProperty(this,"id",{value:cg+=2}),this.uuid=mm.generateUUID(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}yg.prototype=Object.assign(Object.create(cm.prototype),{constructor:yg,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(t){Array.isArray(t)?this.index=new(lg(t)>65535?og:rg)(t,1):this.index=t},getAttribute:function(t){return this.attributes[t]},setAttribute:function(t,e){return this.attributes[t]=e,this},deleteAttribute:function(t){return delete this.attributes[t],this},addGroup:function(t,e,i){this.groups.push({start:t,count:e,materialIndex:void 0!==i?i:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(t,e){this.drawRange.start=t,this.drawRange.count=e},applyMatrix4:function(t){var e=this.attributes.position;void 0!==e&&(e.applyMatrix4(t),e.needsUpdate=!0);var i=this.attributes.normal;if(void 0!==i){var n=(new gm).getNormalMatrix(t);i.applyNormalMatrix(n),i.needsUpdate=!0}var r=this.attributes.tangent;return void 0!==r&&(r.transformDirection(t),r.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(t){return dg.makeRotationX(t),this.applyMatrix4(dg),this},rotateY:function(t){return dg.makeRotationY(t),this.applyMatrix4(dg),this},rotateZ:function(t){return dg.makeRotationZ(t),this.applyMatrix4(dg),this},translate:function(t,e,i){return dg.makeTranslation(t,e,i),this.applyMatrix4(dg),this},scale:function(t,e,i){return dg.makeScale(t,e,i),this.applyMatrix4(dg),this},lookAt:function(t){return pg.lookAt(t),pg.updateMatrix(),this.applyMatrix4(pg.matrix),this},center:function(){return this.computeBoundingBox(),this.boundingBox.getCenter(fg).negate(),this.translate(fg.x,fg.y,fg.z),this},setFromObject:function(t){var e=t.geometry;if(t.isPoints||t.isLine){var i=new ag(3*e.vertices.length,3),n=new ag(3*e.colors.length,3);if(this.setAttribute("position",i.copyVector3sArray(e.vertices)),this.setAttribute("color",n.copyColorsArray(e.colors)),e.lineDistances&&e.lineDistances.length===e.vertices.length){var r=new ag(e.lineDistances.length,1);this.setAttribute("lineDistance",r.copyArray(e.lineDistances))}null!==e.boundingSphere&&(this.boundingSphere=e.boundingSphere.clone()),null!==e.boundingBox&&(this.boundingBox=e.boundingBox.clone())}else t.isMesh&&e&&e.isGeometry&&this.fromGeometry(e);return this},setFromPoints:function(t){for(var e=[],i=0,n=t.length;i<n;i++){var r=t[i];e.push(r.x,r.y,r.z||0)}return this.setAttribute("position",new ag(e,3)),this},updateFromObject:function(t){var e,i=t.geometry;if(t.isMesh){var n=i.__directGeometry;if(!0===i.elementsNeedUpdate&&(n=void 0,i.elementsNeedUpdate=!1),void 0===n)return this.fromGeometry(i);n.verticesNeedUpdate=i.verticesNeedUpdate,n.normalsNeedUpdate=i.normalsNeedUpdate,n.colorsNeedUpdate=i.colorsNeedUpdate,n.uvsNeedUpdate=i.uvsNeedUpdate,n.groupsNeedUpdate=i.groupsNeedUpdate,i.verticesNeedUpdate=!1,i.normalsNeedUpdate=!1,i.colorsNeedUpdate=!1,i.uvsNeedUpdate=!1,i.groupsNeedUpdate=!1,i=n}return!0===i.verticesNeedUpdate&&(void 0!==(e=this.attributes.position)&&(e.copyVector3sArray(i.vertices),e.needsUpdate=!0),i.verticesNeedUpdate=!1),!0===i.normalsNeedUpdate&&(void 0!==(e=this.attributes.normal)&&(e.copyVector3sArray(i.normals),e.needsUpdate=!0),i.normalsNeedUpdate=!1),!0===i.colorsNeedUpdate&&(void 0!==(e=this.attributes.color)&&(e.copyColorsArray(i.colors),e.needsUpdate=!0),i.colorsNeedUpdate=!1),i.uvsNeedUpdate&&(void 0!==(e=this.attributes.uv)&&(e.copyVector2sArray(i.uvs),e.needsUpdate=!0),i.uvsNeedUpdate=!1),i.lineDistancesNeedUpdate&&(void 0!==(e=this.attributes.lineDistance)&&(e.copyArray(i.lineDistances),e.needsUpdate=!0),i.lineDistancesNeedUpdate=!1),i.groupsNeedUpdate&&(i.computeGroups(t.geometry),this.groups=i.groups,i.groupsNeedUpdate=!1),this},fromGeometry:function(t){return t.__directGeometry=(new ug).fromGeometry(t),this.fromDirectGeometry(t.__directGeometry)},fromDirectGeometry:function(t){var e=new Float32Array(3*t.vertices.length);if(this.setAttribute("position",new $v(e,3).copyVector3sArray(t.vertices)),t.normals.length>0){var i=new Float32Array(3*t.normals.length);this.setAttribute("normal",new $v(i,3).copyVector3sArray(t.normals))}if(t.colors.length>0){var n=new Float32Array(3*t.colors.length);this.setAttribute("color",new $v(n,3).copyColorsArray(t.colors))}if(t.uvs.length>0){var r=new Float32Array(2*t.uvs.length);this.setAttribute("uv",new $v(r,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){var s=new Float32Array(2*t.uvs2.length);this.setAttribute("uv2",new $v(s,2).copyVector2sArray(t.uvs2))}for(var o in this.groups=t.groups,t.morphTargets){for(var a=[],h=t.morphTargets[o],u=0,l=h.length;u<l;u++){var c=h[u],d=new ag(3*c.data.length,3);d.name=c.name,a.push(d.copyVector3sArray(c.data))}this.morphAttributes[o]=a}if(t.skinIndices.length>0){var p=new ag(4*t.skinIndices.length,4);this.setAttribute("skinIndex",p.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){var f=new ag(4*t.skinWeights.length,4);this.setAttribute("skinWeight",f.copyVector4sArray(t.skinWeights))}return null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new fv);var t=this.attributes.position,e=this.morphAttributes.position;if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),e)for(var i=0,n=e.length;i<n;i++){var r=e[i];mg.setFromBufferAttribute(r),this.morphTargetsRelative?(gg.addVectors(this.boundingBox.min,mg.min),this.boundingBox.expandByPoint(gg),gg.addVectors(this.boundingBox.max,mg.max),this.boundingBox.expandByPoint(gg)):(this.boundingBox.expandByPoint(mg.min),this.boundingBox.expandByPoint(mg.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new gv);var t=this.attributes.position,e=this.morphAttributes.position;if(t){var i=this.boundingSphere.center;if(mg.setFromBufferAttribute(t),e)for(var n=0,r=e.length;n<r;n++){var s=e[n];vg.setFromBufferAttribute(s),this.morphTargetsRelative?(gg.addVectors(mg.min,vg.min),mg.expandByPoint(gg),gg.addVectors(mg.max,vg.max),mg.expandByPoint(gg)):(mg.expandByPoint(vg.min),mg.expandByPoint(vg.max))}mg.getCenter(i);var o=0;for(n=0,r=t.count;n<r;n++)gg.fromBufferAttribute(t,n),o=Math.max(o,i.distanceToSquared(gg));if(e)for(n=0,r=e.length;n<r;n++){s=e[n];for(var a=this.morphTargetsRelative,h=0,u=s.count;h<u;h++)gg.fromBufferAttribute(s,h),a&&(fg.fromBufferAttribute(t,h),gg.add(fg)),o=Math.max(o,i.distanceToSquared(gg))}this.boundingSphere.radius=Math.sqrt(o),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}},computeFaceNormals:function(){},computeVertexNormals:function(){var t=this.index,e=this.attributes;if(e.position){var i=e.position.array;if(void 0===e.normal)this.setAttribute("normal",new $v(new Float32Array(i.length),3));else for(var n=e.normal.array,r=0,s=n.length;r<s;r++)n[r]=0;var o,a,h,u=e.normal.array,l=new Lm,c=new Lm,d=new Lm,p=new Lm,f=new Lm;if(t){var m=t.array;for(r=0,s=t.count;r<s;r+=3)o=3*m[r+0],a=3*m[r+1],h=3*m[r+2],l.fromArray(i,o),c.fromArray(i,a),d.fromArray(i,h),p.subVectors(d,c),f.subVectors(l,c),p.cross(f),u[o]+=p.x,u[o+1]+=p.y,u[o+2]+=p.z,u[a]+=p.x,u[a+1]+=p.y,u[a+2]+=p.z,u[h]+=p.x,u[h+1]+=p.y,u[h+2]+=p.z}else for(r=0,s=i.length;r<s;r+=9)l.fromArray(i,r),c.fromArray(i,r+3),d.fromArray(i,r+6),p.subVectors(d,c),f.subVectors(l,c),p.cross(f),u[r]=p.x,u[r+1]=p.y,u[r+2]=p.z,u[r+3]=p.x,u[r+4]=p.y,u[r+5]=p.z,u[r+6]=p.x,u[r+7]=p.y,u[r+8]=p.z;this.normalizeNormals(),e.normal.needsUpdate=!0}},merge:function(t,e){if(t&&t.isBufferGeometry){void 0===e&&(e=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));var i=this.attributes;for(var n in i)if(void 0!==t.attributes[n])for(var r=i[n].array,s=t.attributes[n],o=s.array,a=s.itemSize*e,h=Math.min(o.length,r.length-a),u=0,l=a;u<h;u++,l++)r[l]=o[u];return this}console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",t)},normalizeNormals:function(){for(var t=this.attributes.normal,e=0,i=t.count;e<i;e++)gg.x=t.getX(e),gg.y=t.getY(e),gg.z=t.getZ(e),gg.normalize(),t.setXYZ(e,gg.x,gg.y,gg.z)},toNonIndexed:function(){function t(t,e){for(var i=t.array,n=t.itemSize,r=new i.constructor(e.length*n),s=0,o=0,a=0,h=e.length;a<h;a++){s=e[a]*n;for(var u=0;u<n;u++)r[o++]=i[s++]}return new $v(r,n)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."),this;var e=new yg,i=this.index.array,n=this.attributes;for(var r in n){var s=t(n[r],i);e.setAttribute(r,s)}var o=this.morphAttributes;for(r in o){for(var a=[],h=o[r],u=0,l=h.length;u<l;u++){s=t(h[u],i);a.push(s)}e.morphAttributes[r]=a}e.morphTargetsRelative=this.morphTargetsRelative;for(var c=this.groups,d=(u=0,c.length);u<d;u++){var p=c[u];e.addGroup(p.start,p.count,p.materialIndex)}return e},toJSON:function(){var t={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,""!==this.name&&(t.name=this.name),Object.keys(this.userData).length>0&&(t.userData=this.userData),void 0!==this.parameters){var e=this.parameters;for(var i in e)void 0!==e[i]&&(t[i]=e[i]);return t}t.data={attributes:{}};var n=this.index;null!==n&&(t.data.index={type:n.array.constructor.name,array:Array.prototype.slice.call(n.array)});var r=this.attributes;for(var i in r){var s=(d=r[i]).toJSON();""!==d.name&&(s.name=d.name),t.data.attributes[i]=s}var o={},a=!1;for(var i in this.morphAttributes){for(var h=this.morphAttributes[i],u=[],l=0,c=h.length;l<c;l++){var d;s=(d=h[l]).toJSON();""!==d.name&&(s.name=d.name),u.push(s)}u.length>0&&(o[i]=u,a=!0)}a&&(t.data.morphAttributes=o,t.data.morphTargetsRelative=this.morphTargetsRelative);var p=this.groups;p.length>0&&(t.data.groups=JSON.parse(JSON.stringify(p)));var f=this.boundingSphere;return null!==f&&(t.data.boundingSphere={center:f.center.toArray(),radius:f.radius}),t},clone:function(){return(new yg).copy(this)},copy:function(t){var e,i,n;this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;var r=t.index;null!==r&&this.setIndex(r.clone());var s=t.attributes;for(e in s){var o=s[e];this.setAttribute(e,o.clone())}var a=t.morphAttributes;for(e in a){var h=[],u=a[e];for(i=0,n=u.length;i<n;i++)h.push(u[i].clone());this.morphAttributes[e]=h}this.morphTargetsRelative=t.morphTargetsRelative;var l=t.groups;for(i=0,n=l.length;i<n;i++){var c=l[i];this.addGroup(c.start,c.count,c.materialIndex)}var d=t.boundingBox;null!==d&&(this.boundingBox=d.clone());var p=t.boundingSphere;return null!==p&&(this.boundingSphere=p.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this},dispose:function(){this.dispatchEvent({type:"dispose"})}});var _g=new Im,xg=new Sv,bg=new gv,wg=new Lm,Tg=new Lm,Mg=new Lm,Sg=new Lm,Eg=new Lm,Lg=new Lm,Ag=new Lm,Dg=new Lm,Pg=new Lm,Cg=new vm,Og=new vm,kg=new vm,Rg=new Lm,Ig=new Lm;function Yg(t,e){$m.call(this),this.type="Mesh",this.geometry=void 0!==t?t:new yg,this.material=void 0!==e?e:new Kv,this.updateMorphTargets()}function Fg(t,e,i,n,r,s,o,a){if(null===(1===e.side?n.intersectTriangle(o,s,r,!0,a):n.intersectTriangle(r,s,o,2!==e.side,a)))return null;Ig.copy(a),Ig.applyMatrix4(t.matrixWorld);var h=i.ray.origin.distanceTo(Ig);return h<i.near||h>i.far?null:{distance:h,point:Ig.clone(),object:t}}function Ng(t,e,i,n,r,s,o,a,h,u,l,c){wg.fromBufferAttribute(r,u),Tg.fromBufferAttribute(r,l),Mg.fromBufferAttribute(r,c);var d=t.morphTargetInfluences;if(e.morphTargets&&s&&d){Ag.set(0,0,0),Dg.set(0,0,0),Pg.set(0,0,0);for(var p=0,f=s.length;p<f;p++){var m=d[p],v=s[p];0!==m&&(Sg.fromBufferAttribute(v,u),Eg.fromBufferAttribute(v,l),Lg.fromBufferAttribute(v,c),o?(Ag.addScaledVector(Sg,m),Dg.addScaledVector(Eg,m),Pg.addScaledVector(Lg,m)):(Ag.addScaledVector(Sg.sub(wg),m),Dg.addScaledVector(Eg.sub(Tg),m),Pg.addScaledVector(Lg.sub(Mg),m)))}wg.add(Ag),Tg.add(Dg),Mg.add(Pg)}var g=Fg(t,e,i,n,wg,Tg,Mg,Rg);if(g){a&&(Cg.fromBufferAttribute(a,u),Og.fromBufferAttribute(a,l),kg.fromBufferAttribute(a,c),g.uv=Uv.getUV(Rg,wg,Tg,Mg,Cg,Og,kg,new vm)),h&&(Cg.fromBufferAttribute(h,u),Og.fromBufferAttribute(h,l),kg.fromBufferAttribute(h,c),g.uv2=Uv.getUV(Rg,wg,Tg,Mg,Cg,Og,kg,new vm));var y=new qv(u,l,c);Uv.getNormal(wg,Tg,Mg,y.normal),g.face=y}return g}Yg.prototype=Object.assign(Object.create($m.prototype),{constructor:Yg,isMesh:!0,copy:function(t){return $m.prototype.copy.call(this,t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this},updateMorphTargets:function(){var t,e,i,n=this.geometry;if(n.isBufferGeometry){var r=n.morphAttributes,s=Object.keys(r);if(s.length>0){var o=r[s[0]];if(void 0!==o)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},t=0,e=o.length;t<e;t++)i=o[t].name||String(t),this.morphTargetInfluences.push(0),this.morphTargetDictionary[i]=t}}else{var a=n.morphTargets;void 0!==a&&a.length>0&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}},raycast:function(t,e){var i,n=this.geometry,r=this.material,s=this.matrixWorld;if(void 0!==r&&(null===n.boundingSphere&&n.computeBoundingSphere(),bg.copy(n.boundingSphere),bg.applyMatrix4(s),!1!==t.ray.intersectsSphere(bg)&&(_g.getInverse(s),xg.copy(t.ray).applyMatrix4(_g),null===n.boundingBox||!1!==xg.intersectsBox(n.boundingBox))))if(n.isBufferGeometry){var o,a,h,u,l,c,d,p,f,m=n.index,v=n.attributes.position,g=n.morphAttributes.position,y=n.morphTargetsRelative,_=n.attributes.uv,x=n.attributes.uv2,b=n.groups,w=n.drawRange;if(null!==m)if(Array.isArray(r))for(u=0,c=b.length;u<c;u++)for(f=r[(p=b[u]).materialIndex],l=Math.max(p.start,w.start),d=Math.min(p.start+p.count,w.start+w.count);l<d;l+=3)o=m.getX(l),a=m.getX(l+1),h=m.getX(l+2),(i=Ng(this,f,t,xg,v,g,y,_,x,o,a,h))&&(i.faceIndex=Math.floor(l/3),i.face.materialIndex=p.materialIndex,e.push(i));else for(u=Math.max(0,w.start),c=Math.min(m.count,w.start+w.count);u<c;u+=3)o=m.getX(u),a=m.getX(u+1),h=m.getX(u+2),(i=Ng(this,r,t,xg,v,g,y,_,x,o,a,h))&&(i.faceIndex=Math.floor(u/3),e.push(i));else if(void 0!==v)if(Array.isArray(r))for(u=0,c=b.length;u<c;u++)for(f=r[(p=b[u]).materialIndex],l=Math.max(p.start,w.start),d=Math.min(p.start+p.count,w.start+w.count);l<d;l+=3)(i=Ng(this,f,t,xg,v,g,y,_,x,o=l,a=l+1,h=l+2))&&(i.faceIndex=Math.floor(l/3),i.face.materialIndex=p.materialIndex,e.push(i));else for(u=Math.max(0,w.start),c=Math.min(v.count,w.start+w.count);u<c;u+=3)(i=Ng(this,r,t,xg,v,g,y,_,x,o=u,a=u+1,h=u+2))&&(i.faceIndex=Math.floor(u/3),e.push(i))}else if(n.isGeometry){var T,M,S,E,L=Array.isArray(r),A=n.vertices,D=n.faces,P=n.faceVertexUvs[0];P.length>0&&(E=P);for(var C=0,O=D.length;C<O;C++){var k=D[C],R=L?r[k.materialIndex]:r;if(void 0!==R&&(T=A[k.a],M=A[k.b],S=A[k.c],i=Fg(this,R,t,xg,T,M,S,Rg))){if(E&&E[C]){var I=E[C];Cg.copy(I[0]),Og.copy(I[1]),kg.copy(I[2]),i.uv=Uv.getUV(Rg,T,M,S,Cg,Og,kg,new vm)}i.face=k,i.faceIndex=C,e.push(i)}}}},clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}});var Bg=0,Ug=new Im,jg=new $m,Hg=new Lm;function zg(){Object.defineProperty(this,"id",{value:Bg+=2}),this.uuid=mm.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}zg.prototype=Object.assign(Object.create(cm.prototype),{constructor:zg,isGeometry:!0,applyMatrix4:function(t){for(var e=(new gm).getNormalMatrix(t),i=0,n=this.vertices.length;i<n;i++){this.vertices[i].applyMatrix4(t)}for(i=0,n=this.faces.length;i<n;i++){var r=this.faces[i];r.normal.applyMatrix3(e).normalize();for(var s=0,o=r.vertexNormals.length;s<o;s++)r.vertexNormals[s].applyMatrix3(e).normalize()}return null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this},rotateX:function(t){return Ug.makeRotationX(t),this.applyMatrix4(Ug),this},rotateY:function(t){return Ug.makeRotationY(t),this.applyMatrix4(Ug),this},rotateZ:function(t){return Ug.makeRotationZ(t),this.applyMatrix4(Ug),this},translate:function(t,e,i){return Ug.makeTranslation(t,e,i),this.applyMatrix4(Ug),this},scale:function(t,e,i){return Ug.makeScale(t,e,i),this.applyMatrix4(Ug),this},lookAt:function(t){return jg.lookAt(t),jg.updateMatrix(),this.applyMatrix4(jg.matrix),this},fromBufferGeometry:function(t){var e=this,i=null!==t.index?t.index.array:void 0,n=t.attributes;if(void 0===n.position)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;var r=n.position.array,s=void 0!==n.normal?n.normal.array:void 0,o=void 0!==n.color?n.color.array:void 0,a=void 0!==n.uv?n.uv.array:void 0,h=void 0!==n.uv2?n.uv2.array:void 0;void 0!==h&&(this.faceVertexUvs[1]=[]);for(var u=0;u<r.length;u+=3)e.vertices.push((new Lm).fromArray(r,u)),void 0!==o&&e.colors.push((new Wv).fromArray(o,u));function l(t,i,n,r){var u=void 0===o?[]:[e.colors[t].clone(),e.colors[i].clone(),e.colors[n].clone()],l=new qv(t,i,n,void 0===s?[]:[(new Lm).fromArray(s,3*t),(new Lm).fromArray(s,3*i),(new Lm).fromArray(s,3*n)],u,r);e.faces.push(l),void 0!==a&&e.faceVertexUvs[0].push([(new vm).fromArray(a,2*t),(new vm).fromArray(a,2*i),(new vm).fromArray(a,2*n)]),void 0!==h&&e.faceVertexUvs[1].push([(new vm).fromArray(h,2*t),(new vm).fromArray(h,2*i),(new vm).fromArray(h,2*n)])}var c=t.groups;if(c.length>0)for(u=0;u<c.length;u++)for(var d=c[u],p=d.start,f=p,m=p+d.count;f<m;f+=3)void 0!==i?l(i[f],i[f+1],i[f+2],d.materialIndex):l(f,f+1,f+2,d.materialIndex);else if(void 0!==i)for(u=0;u<i.length;u+=3)l(i[u],i[u+1],i[u+2]);else for(u=0;u<r.length/3;u+=3)l(u,u+1,u+2);return this.computeFaceNormals(),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),this},center:function(){return this.computeBoundingBox(),this.boundingBox.getCenter(Hg).negate(),this.translate(Hg.x,Hg.y,Hg.z),this},normalize:function(){this.computeBoundingSphere();var t=this.boundingSphere.center,e=this.boundingSphere.radius,i=0===e?1:1/e,n=new Im;return n.set(i,0,0,-i*t.x,0,i,0,-i*t.y,0,0,i,-i*t.z,0,0,0,1),this.applyMatrix4(n),this},computeFaceNormals:function(){for(var t=new Lm,e=new Lm,i=0,n=this.faces.length;i<n;i++){var r=this.faces[i],s=this.vertices[r.a],o=this.vertices[r.b],a=this.vertices[r.c];t.subVectors(a,o),e.subVectors(s,o),t.cross(e),t.normalize(),r.normal.copy(t)}},computeVertexNormals:function(t){var e,i,n,r,s,o;for(void 0===t&&(t=!0),o=new Array(this.vertices.length),e=0,i=this.vertices.length;e<i;e++)o[e]=new Lm;if(t){var a,h,u,l=new Lm,c=new Lm;for(n=0,r=this.faces.length;n<r;n++)s=this.faces[n],a=this.vertices[s.a],h=this.vertices[s.b],u=this.vertices[s.c],l.subVectors(u,h),c.subVectors(a,h),l.cross(c),o[s.a].add(l),o[s.b].add(l),o[s.c].add(l)}else for(this.computeFaceNormals(),n=0,r=this.faces.length;n<r;n++)o[(s=this.faces[n]).a].add(s.normal),o[s.b].add(s.normal),o[s.c].add(s.normal);for(e=0,i=this.vertices.length;e<i;e++)o[e].normalize();for(n=0,r=this.faces.length;n<r;n++){var d=(s=this.faces[n]).vertexNormals;3===d.length?(d[0].copy(o[s.a]),d[1].copy(o[s.b]),d[2].copy(o[s.c])):(d[0]=o[s.a].clone(),d[1]=o[s.b].clone(),d[2]=o[s.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){var t,e,i;for(this.computeFaceNormals(),t=0,e=this.faces.length;t<e;t++){var n=(i=this.faces[t]).vertexNormals;3===n.length?(n[0].copy(i.normal),n[1].copy(i.normal),n[2].copy(i.normal)):(n[0]=i.normal.clone(),n[1]=i.normal.clone(),n[2]=i.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var t,e,i,n,r;for(i=0,n=this.faces.length;i<n;i++)for((r=this.faces[i]).__originalFaceNormal?r.__originalFaceNormal.copy(r.normal):r.__originalFaceNormal=r.normal.clone(),r.__originalVertexNormals||(r.__originalVertexNormals=[]),t=0,e=r.vertexNormals.length;t<e;t++)r.__originalVertexNormals[t]?r.__originalVertexNormals[t].copy(r.vertexNormals[t]):r.__originalVertexNormals[t]=r.vertexNormals[t].clone();var s=new zg;for(s.faces=this.faces,t=0,e=this.morphTargets.length;t<e;t++){if(!this.morphNormals[t]){this.morphNormals[t]={},this.morphNormals[t].faceNormals=[],this.morphNormals[t].vertexNormals=[];var o=this.morphNormals[t].faceNormals,a=this.morphNormals[t].vertexNormals;for(i=0,n=this.faces.length;i<n;i++)h=new Lm,u={a:new Lm,b:new Lm,c:new Lm},o.push(h),a.push(u)}var h,u,l=this.morphNormals[t];for(s.vertices=this.morphTargets[t].vertices,s.computeFaceNormals(),s.computeVertexNormals(),i=0,n=this.faces.length;i<n;i++)r=this.faces[i],h=l.faceNormals[i],u=l.vertexNormals[i],h.copy(r.normal),u.a.copy(r.vertexNormals[0]),u.b.copy(r.vertexNormals[1]),u.c.copy(r.vertexNormals[2])}for(i=0,n=this.faces.length;i<n;i++)(r=this.faces[i]).normal=r.__originalFaceNormal,r.vertexNormals=r.__originalVertexNormals},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new fv),this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new gv),this.boundingSphere.setFromPoints(this.vertices)},merge:function(t,e,i){if(t&&t.isGeometry){var n,r=this.vertices.length,s=this.vertices,o=t.vertices,a=this.faces,h=t.faces,u=this.colors,l=t.colors;void 0===i&&(i=0),void 0!==e&&(n=(new gm).getNormalMatrix(e));for(var c=0,d=o.length;c<d;c++){var p=o[c].clone();void 0!==e&&p.applyMatrix4(e),s.push(p)}for(c=0,d=l.length;c<d;c++)u.push(l[c].clone());for(c=0,d=h.length;c<d;c++){var f,m,v,g=h[c],y=g.vertexNormals,_=g.vertexColors;(f=new qv(g.a+r,g.b+r,g.c+r)).normal.copy(g.normal),void 0!==n&&f.normal.applyMatrix3(n).normalize();for(var x=0,b=y.length;x<b;x++)m=y[x].clone(),void 0!==n&&m.applyMatrix3(n).normalize(),f.vertexNormals.push(m);f.color.copy(g.color);for(x=0,b=_.length;x<b;x++)v=_[x],f.vertexColors.push(v.clone());f.materialIndex=g.materialIndex+i,a.push(f)}for(c=0,d=t.faceVertexUvs.length;c<d;c++){var w=t.faceVertexUvs[c];void 0===this.faceVertexUvs[c]&&(this.faceVertexUvs[c]=[]);for(x=0,b=w.length;x<b;x++){for(var T=w[x],M=[],S=0,E=T.length;S<E;S++)M.push(T[S].clone());this.faceVertexUvs[c].push(M)}}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t)},mergeMesh:function(t){t&&t.isMesh?(t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t)},mergeVertices:function(){var t,e,i,n,r,s,o,a,h={},u=[],l=[],c=Math.pow(10,4);for(i=0,n=this.vertices.length;i<n;i++)t=this.vertices[i],void 0===h[e=Math.round(t.x*c)+"_"+Math.round(t.y*c)+"_"+Math.round(t.z*c)]?(h[e]=i,u.push(this.vertices[i]),l[i]=u.length-1):l[i]=l[h[e]];var d=[];for(i=0,n=this.faces.length;i<n;i++){(r=this.faces[i]).a=l[r.a],r.b=l[r.b],r.c=l[r.c],s=[r.a,r.b,r.c];for(var p=0;p<3;p++)if(s[p]===s[(p+1)%3]){d.push(i);break}}for(i=d.length-1;i>=0;i--){var f=d[i];for(this.faces.splice(f,1),o=0,a=this.faceVertexUvs.length;o<a;o++)this.faceVertexUvs[o].splice(f,1)}var m=this.vertices.length-u.length;return this.vertices=u,m},setFromPoints:function(t){this.vertices=[];for(var e=0,i=t.length;e<i;e++){var n=t[e];this.vertices.push(new Lm(n.x,n.y,n.z||0))}return this},sortFacesByMaterialIndex:function(){for(var t=this.faces,e=t.length,i=0;i<e;i++)t[i]._id=i;t.sort((function(t,e){return t.materialIndex-e.materialIndex}));var n,r,s=this.faceVertexUvs[0],o=this.faceVertexUvs[1];s&&s.length===e&&(n=[]),o&&o.length===e&&(r=[]);for(i=0;i<e;i++){var a=t[i]._id;n&&n.push(s[a]),r&&r.push(o[a])}n&&(this.faceVertexUvs[0]=n),r&&(this.faceVertexUvs[1]=r)},toJSON:function(){var t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,""!==this.name&&(t.name=this.name),void 0!==this.parameters){var e=this.parameters;for(var i in e)void 0!==e[i]&&(t[i]=e[i]);return t}for(var n=[],r=0;r<this.vertices.length;r++){var s=this.vertices[r];n.push(s.x,s.y,s.z)}var o=[],a=[],h={},u=[],l={},c=[],d={};for(r=0;r<this.faces.length;r++){var p=this.faces[r],f=void 0!==this.faceVertexUvs[0][r],m=p.normal.length()>0,v=p.vertexNormals.length>0,g=1!==p.color.r||1!==p.color.g||1!==p.color.b,y=p.vertexColors.length>0,_=0;if(_=T(_,0,0),_=T(_,1,!0),_=T(_,2,!1),_=T(_,3,f),_=T(_,4,m),_=T(_,5,v),_=T(_,6,g),_=T(_,7,y),o.push(_),o.push(p.a,p.b,p.c),o.push(p.materialIndex),f){var x=this.faceVertexUvs[0][r];o.push(E(x[0]),E(x[1]),E(x[2]))}if(m&&o.push(M(p.normal)),v){var b=p.vertexNormals;o.push(M(b[0]),M(b[1]),M(b[2]))}if(g&&o.push(S(p.color)),y){var w=p.vertexColors;o.push(S(w[0]),S(w[1]),S(w[2]))}}function T(t,e,i){return i?t|1<<e:t&~(1<<e)}function M(t){var e=t.x.toString()+t.y.toString()+t.z.toString();return void 0!==h[e]||(h[e]=a.length/3,a.push(t.x,t.y,t.z)),h[e]}function S(t){var e=t.r.toString()+t.g.toString()+t.b.toString();return void 0!==l[e]||(l[e]=u.length,u.push(t.getHex())),l[e]}function E(t){var e=t.x.toString()+t.y.toString();return void 0!==d[e]||(d[e]=c.length/2,c.push(t.x,t.y)),d[e]}return t.data={},t.data.vertices=n,t.data.normals=a,u.length>0&&(t.data.colors=u),c.length>0&&(t.data.uvs=[c]),t.data.faces=o,t},clone:function(){return(new zg).copy(this)},copy:function(t){var e,i,n,r,s,o;this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;var a=t.vertices;for(e=0,i=a.length;e<i;e++)this.vertices.push(a[e].clone());var h=t.colors;for(e=0,i=h.length;e<i;e++)this.colors.push(h[e].clone());var u=t.faces;for(e=0,i=u.length;e<i;e++)this.faces.push(u[e].clone());for(e=0,i=t.faceVertexUvs.length;e<i;e++){var l=t.faceVertexUvs[e];for(void 0===this.faceVertexUvs[e]&&(this.faceVertexUvs[e]=[]),n=0,r=l.length;n<r;n++){var c=l[n],d=[];for(s=0,o=c.length;s<o;s++){var p=c[s];d.push(p.clone())}this.faceVertexUvs[e].push(d)}}var f=t.morphTargets;for(e=0,i=f.length;e<i;e++){var m={};if(m.name=f[e].name,void 0!==f[e].vertices)for(m.vertices=[],n=0,r=f[e].vertices.length;n<r;n++)m.vertices.push(f[e].vertices[n].clone());if(void 0!==f[e].normals)for(m.normals=[],n=0,r=f[e].normals.length;n<r;n++)m.normals.push(f[e].normals[n].clone());this.morphTargets.push(m)}var v=t.morphNormals;for(e=0,i=v.length;e<i;e++){var g={};if(void 0!==v[e].vertexNormals)for(g.vertexNormals=[],n=0,r=v[e].vertexNormals.length;n<r;n++){var y=v[e].vertexNormals[n],_={};_.a=y.a.clone(),_.b=y.b.clone(),_.c=y.c.clone(),g.vertexNormals.push(_)}if(void 0!==v[e].faceNormals)for(g.faceNormals=[],n=0,r=v[e].faceNormals.length;n<r;n++)g.faceNormals.push(v[e].faceNormals[n].clone());this.morphNormals.push(g)}var x=t.skinWeights;for(e=0,i=x.length;e<i;e++)this.skinWeights.push(x[e].clone());var b=t.skinIndices;for(e=0,i=b.length;e<i;e++)this.skinIndices.push(b[e].clone());var w=t.lineDistances;for(e=0,i=w.length;e<i;e++)this.lineDistances.push(w[e]);var T=t.boundingBox;null!==T&&(this.boundingBox=T.clone());var M=t.boundingSphere;return null!==M&&(this.boundingSphere=M.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this},dispose:function(){this.dispatchEvent({type:"dispose"})}});class Wg extends yg{constructor(t,e,i,n,r,s){super(),this.type="BoxBufferGeometry",this.parameters={width:t,height:e,depth:i,widthSegments:n,heightSegments:r,depthSegments:s};var o=this;t=t||1,e=e||1,i=i||1,n=Math.floor(n)||1,r=Math.floor(r)||1,s=Math.floor(s)||1;var a=[],h=[],u=[],l=[],c=0,d=0;function p(t,e,i,n,r,s,p,f,m,v,g){var y,_,x=s/m,b=p/v,w=s/2,T=p/2,M=f/2,S=m+1,E=v+1,L=0,A=0,D=new Lm;for(_=0;_<E;_++){var P=_*b-T;for(y=0;y<S;y++){var C=y*x-w;D[t]=C*n,D[e]=P*r,D[i]=M,h.push(D.x,D.y,D.z),D[t]=0,D[e]=0,D[i]=f>0?1:-1,u.push(D.x,D.y,D.z),l.push(y/m),l.push(1-_/v),L+=1}}for(_=0;_<v;_++)for(y=0;y<m;y++){var O=c+y+S*_,k=c+y+S*(_+1),R=c+(y+1)+S*(_+1),I=c+(y+1)+S*_;a.push(O,k,I),a.push(k,R,I),A+=6}o.addGroup(d,A,g),d+=A,c+=L}p("z","y","x",-1,-1,i,e,t,s,r,0),p("z","y","x",1,-1,i,e,-t,s,r,1),p("x","z","y",1,1,t,i,e,n,s,2),p("x","z","y",1,-1,t,i,-e,n,s,3),p("x","y","z",1,-1,t,e,i,n,r,4),p("x","y","z",-1,-1,t,e,-i,n,r,5),this.setIndex(a),this.setAttribute("position",new ag(h,3)),this.setAttribute("normal",new ag(u,3)),this.setAttribute("uv",new ag(l,2))}}function Gg(t){var e={};for(var i in t)for(var n in e[i]={},t[i]){var r=t[i][n];r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture)?e[i][n]=r.clone():Array.isArray(r)?e[i][n]=r.slice():e[i][n]=r}return e}function Vg(t){for(var e={},i=0;i<t.length;i++){var n=Gg(t[i]);for(var r in n)e[r]=n[r]}return e}var Xg={clone:Gg,merge:Vg};function qg(t){Zv.call(this),this.type="ShaderMaterial",this.defines={},this.uniforms={},this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,void 0!==t&&(void 0!==t.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(t))}function Jg(){$m.call(this),this.type="Camera",this.matrixWorldInverse=new Im,this.projectionMatrix=new Im,this.projectionMatrixInverse=new Im}function Zg(t,e,i,n){Jg.call(this),this.type="PerspectiveCamera",this.fov=void 0!==t?t:50,this.zoom=1,this.near=void 0!==i?i:.1,this.far=void 0!==n?n:2e3,this.focus=10,this.aspect=void 0!==e?e:1,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}qg.prototype=Object.create(Zv.prototype),qg.prototype.constructor=qg,qg.prototype.isShaderMaterial=!0,qg.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=Gg(t.uniforms),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.lights=t.lights,this.clipping=t.clipping,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.extensions=t.extensions,this},qg.prototype.toJSON=function(t){var e=Zv.prototype.toJSON.call(this,t);for(var i in e.uniforms={},this.uniforms){var n=this.uniforms[i].value;n&&n.isTexture?e.uniforms[i]={type:"t",value:n.toJSON(t).uuid}:n&&n.isColor?e.uniforms[i]={type:"c",value:n.getHex()}:n&&n.isVector2?e.uniforms[i]={type:"v2",value:n.toArray()}:n&&n.isVector3?e.uniforms[i]={type:"v3",value:n.toArray()}:n&&n.isVector4?e.uniforms[i]={type:"v4",value:n.toArray()}:n&&n.isMatrix3?e.uniforms[i]={type:"m3",value:n.toArray()}:n&&n.isMatrix4?e.uniforms[i]={type:"m4",value:n.toArray()}:e.uniforms[i]={value:n}}Object.keys(this.defines).length>0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;var r={};for(var s in this.extensions)!0===this.extensions[s]&&(r[s]=!0);return Object.keys(r).length>0&&(e.extensions=r),e},Jg.prototype=Object.assign(Object.create($m.prototype),{constructor:Jg,isCamera:!0,copy:function(t,e){return $m.prototype.copy.call(this,t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this},getWorldDirection:function(t){void 0===t&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),t=new Lm),this.updateMatrixWorld(!0);var e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()},updateMatrixWorld:function(t){$m.prototype.updateMatrixWorld.call(this,t),this.matrixWorldInverse.getInverse(this.matrixWorld)},updateWorldMatrix:function(t,e){$m.prototype.updateWorldMatrix.call(this,t,e),this.matrixWorldInverse.getInverse(this.matrixWorld)},clone:function(){return(new this.constructor).copy(this)}}),Zg.prototype=Object.assign(Object.create(Jg.prototype),{constructor:Zg,isPerspectiveCamera:!0,copy:function(t,e){return Jg.prototype.copy.call(this,t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this},setFocalLength:function(t){var e=.5*this.getFilmHeight()/t;this.fov=2*mm.RAD2DEG*Math.atan(e),this.updateProjectionMatrix()},getFocalLength:function(){var t=Math.tan(.5*mm.DEG2RAD*this.fov);return.5*this.getFilmHeight()/t},getEffectiveFOV:function(){return 2*mm.RAD2DEG*Math.atan(Math.tan(.5*mm.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(t,e,i,n,r,s){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=n,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var t=this.near,e=t*Math.tan(.5*mm.DEG2RAD*this.fov)/this.zoom,i=2*e,n=this.aspect*i,r=-.5*n,s=this.view;if(null!==this.view&&this.view.enabled){var o=s.fullWidth,a=s.fullHeight;r+=s.offsetX*n/o,e-=s.offsetY*i/a,n*=s.width/o,i*=s.height/a}var h=this.filmOffset;0!==h&&(r+=t*h/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+n,e,e-i,t,this.far),this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(t){var e=$m.prototype.toJSON.call(this,t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}});var Kg=90;function Qg(t,e,i,n){$m.call(this),this.type="CubeCamera";var r=new Zg(Kg,1,t,e);r.up.set(0,-1,0),r.lookAt(new Lm(1,0,0)),this.add(r);var s=new Zg(Kg,1,t,e);s.up.set(0,-1,0),s.lookAt(new Lm(-1,0,0)),this.add(s);var o=new Zg(Kg,1,t,e);o.up.set(0,0,1),o.lookAt(new Lm(0,1,0)),this.add(o);var a=new Zg(Kg,1,t,e);a.up.set(0,0,-1),a.lookAt(new Lm(0,-1,0)),this.add(a);var h=new Zg(Kg,1,t,e);h.up.set(0,-1,0),h.lookAt(new Lm(0,0,1)),this.add(h);var u=new Zg(Kg,1,t,e);u.up.set(0,-1,0),u.lookAt(new Lm(0,0,-1)),this.add(u),n=n||{format:Jf,magFilter:jf,minFilter:jf},this.renderTarget=new $g(i,n),this.renderTarget.texture.name="CubeCamera",this.update=function(t,e){null===this.parent&&this.updateMatrixWorld();var i=t.getRenderTarget(),n=this.renderTarget,l=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,r),t.setRenderTarget(n,1),t.render(e,s),t.setRenderTarget(n,2),t.render(e,o),t.setRenderTarget(n,3),t.render(e,a),t.setRenderTarget(n,4),t.render(e,h),n.texture.generateMipmaps=l,t.setRenderTarget(n,5),t.render(e,u),t.setRenderTarget(i)},this.clear=function(t,e,i,n){for(var r=t.getRenderTarget(),s=this.renderTarget,o=0;o<6;o++)t.setRenderTarget(s,o),t.clear(e,i,n);t.setRenderTarget(r)}}function $g(t,e,i){Number.isInteger(e)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),e=i),wm.call(this,t,t,e)}function ty(t,e,i,n,r,s,o,a,h,u,l,c){xm.call(this,null,s,o,a,h,u,n,r,l,c),this.image={data:t||null,width:e||1,height:i||1},this.magFilter=void 0!==h?h:Nf,this.minFilter=void 0!==u?u:Nf,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.needsUpdate=!0}Qg.prototype=Object.create($m.prototype),Qg.prototype.constructor=Qg,$g.prototype=Object.create(wm.prototype),$g.prototype.constructor=$g,$g.prototype.isWebGLCubeRenderTarget=!0,$g.prototype.fromEquirectangularTexture=function(t,e){this.texture.type=e.type,this.texture.format=e.format,this.texture.encoding=e.encoding;var i=new tv,n={uniforms:{tEquirect:{value:null}},vertexShader:["varying vec3 vWorldDirection;","vec3 transformDirection( in vec3 dir, in mat4 matrix ) {","\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );","}","void main() {","\tvWorldDirection = transformDirection( position, modelMatrix );","\t#include <begin_vertex>","\t#include <project_vertex>","}"].join("\n"),fragmentShader:["uniform sampler2D tEquirect;","varying vec3 vWorldDirection;","#define RECIPROCAL_PI 0.31830988618","#define RECIPROCAL_PI2 0.15915494","void main() {","\tvec3 direction = normalize( vWorldDirection );","\tvec2 sampleUV;","\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;","\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;","\tgl_FragColor = texture2D( tEquirect, sampleUV );","}"].join("\n")},r=new qg({type:"CubemapFromEquirect",uniforms:Gg(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:1,blending:0});r.uniforms.tEquirect.value=e;var s=new Yg(new Wg(5,5,5),r);i.add(s);var o=new Qg(1,10,1);return o.renderTarget=this,o.renderTarget.texture.name="CubeCameraTexture",o.update(t,i),s.geometry.dispose(),s.material.dispose(),this},ty.prototype=Object.create(xm.prototype),ty.prototype.constructor=ty,ty.prototype.isDataTexture=!0;var ey=new gv,iy=new Lm;function ny(t,e,i,n,r,s){this.planes=[void 0!==t?t:new Dv,void 0!==e?e:new Dv,void 0!==i?i:new Dv,void 0!==n?n:new Dv,void 0!==r?r:new Dv,void 0!==s?s:new Dv]}Object.assign(ny.prototype,{set:function(t,e,i,n,r,s){var o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(i),o[3].copy(n),o[4].copy(r),o[5].copy(s),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){for(var e=this.planes,i=0;i<6;i++)e[i].copy(t.planes[i]);return this},setFromProjectionMatrix:function(t){var e=this.planes,i=t.elements,n=i[0],r=i[1],s=i[2],o=i[3],a=i[4],h=i[5],u=i[6],l=i[7],c=i[8],d=i[9],p=i[10],f=i[11],m=i[12],v=i[13],g=i[14],y=i[15];return e[0].setComponents(o-n,l-a,f-c,y-m).normalize(),e[1].setComponents(o+n,l+a,f+c,y+m).normalize(),e[2].setComponents(o+r,l+h,f+d,y+v).normalize(),e[3].setComponents(o-r,l-h,f-d,y-v).normalize(),e[4].setComponents(o-s,l-u,f-p,y-g).normalize(),e[5].setComponents(o+s,l+u,f+p,y+g).normalize(),this},intersectsObject:function(t){var e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),ey.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(ey)},intersectsSprite:function(t){return ey.center.set(0,0,0),ey.radius=.7071067811865476,ey.applyMatrix4(t.matrixWorld),this.intersectsSphere(ey)},intersectsSphere:function(t){for(var e=this.planes,i=t.center,n=-t.radius,r=0;r<6;r++){if(e[r].distanceToPoint(i)<n)return!1}return!0},intersectsBox:function(t){for(var e=this.planes,i=0;i<6;i++){var n=e[i];if(iy.x=n.normal.x>0?t.max.x:t.min.x,iy.y=n.normal.y>0?t.max.y:t.min.y,iy.z=n.normal.z>0?t.max.z:t.min.z,n.distanceToPoint(iy)<0)return!1}return!0},containsPoint:function(t){for(var e=this.planes,i=0;i<6;i++)if(e[i].distanceToPoint(t)<0)return!1;return!0}});var ry={common:{diffuse:{value:new Wv(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new gm},uv2Transform:{value:new gm},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new vm(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Wv(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}}},points:{diffuse:{value:new Wv(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new gm}},sprite:{diffuse:{value:new Wv(15658734)},opacity:{value:1},center:{value:new vm(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new gm}}};function sy(){var t=null,e=!1,i=null;function n(r,s){!1!==e&&(i(r,s),t.requestAnimationFrame(n))}return{start:function(){!0!==e&&null!==i&&(t.requestAnimationFrame(n),e=!0)},stop:function(){e=!1},setAnimationLoop:function(t){i=t},setContext:function(e){t=e}}}function oy(t,e){var i=e.isWebGL2,n=new WeakMap;return{get:function(t){return t.isInterleavedBufferAttribute&&(t=t.data),n.get(t)},remove:function(e){e.isInterleavedBufferAttribute&&(e=e.data);var i=n.get(e);i&&(t.deleteBuffer(i.buffer),n.delete(e))},update:function(e,r){e.isInterleavedBufferAttribute&&(e=e.data);var s=n.get(e);void 0===s?n.set(e,function(e,i){var n=e.array,r=e.usage,s=t.createBuffer();t.bindBuffer(i,s),t.bufferData(i,n,r),e.onUploadCallback();var o=5126;return n instanceof Float32Array?o=5126:n instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):n instanceof Uint16Array?o=5123:n instanceof Int16Array?o=5122:n instanceof Uint32Array?o=5125:n instanceof Int32Array?o=5124:n instanceof Int8Array?o=5120:n instanceof Uint8Array&&(o=5121),{buffer:s,type:o,bytesPerElement:n.BYTES_PER_ELEMENT,version:e.version}}(e,r)):s.version<e.version&&(!function(e,n,r){var s=n.array,o=n.updateRange;t.bindBuffer(r,e),-1===o.count?t.bufferSubData(r,0,s):(i?t.bufferSubData(r,o.offset*s.BYTES_PER_ELEMENT,s,o.offset,o.count):t.bufferSubData(r,o.offset*s.BYTES_PER_ELEMENT,s.subarray(o.offset,o.offset+o.count)),o.count=-1)}(s.buffer,e,r),s.version=e.version)}}}function ay(t,e,i,n){zg.call(this),this.type="PlaneGeometry",this.parameters={width:t,height:e,widthSegments:i,heightSegments:n},this.fromBufferGeometry(new hy(t,e,i,n)),this.mergeVertices()}function hy(t,e,i,n){yg.call(this),this.type="PlaneBufferGeometry",this.parameters={width:t,height:e,widthSegments:i,heightSegments:n};var r,s,o=(t=t||1)/2,a=(e=e||1)/2,h=Math.floor(i)||1,u=Math.floor(n)||1,l=h+1,c=u+1,d=t/h,p=e/u,f=[],m=[],v=[],g=[];for(s=0;s<c;s++){var y=s*p-a;for(r=0;r<l;r++){var _=r*d-o;m.push(_,-y,0),v.push(0,0,1),g.push(r/h),g.push(1-s/u)}}for(s=0;s<u;s++)for(r=0;r<h;r++){var x=r+l*s,b=r+l*(s+1),w=r+1+l*(s+1),T=r+1+l*s;f.push(x,b,T),f.push(b,w,T)}this.setIndex(f),this.setAttribute("position",new ag(m,3)),this.setAttribute("normal",new ag(v,3)),this.setAttribute("uv",new ag(g,2))}ay.prototype=Object.create(zg.prototype),ay.prototype.constructor=ay,hy.prototype=Object.create(yg.prototype),hy.prototype.constructor=hy;var uy={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef ALPHATEST\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\n\t#endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"vec3 transformed = vec3( position );",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\n}\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\tif( cutoffDistance > 0.0 ) {\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t}\n\treturn distanceFalloff;\n#else\n\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t}\n\treturn 1.0;\n#endif\n}\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\n\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\n}\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\n\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\n\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\n\treturn Fr * fresnel + F0;\n}\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\treturn 1.0 / ( gl * gv );\n}\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\n\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( G * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\treturn specularColor * brdf.x + brdf.y;\n}\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\n\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\n\tvec3 FssEss = F * brdf.x + brdf.y;\n\tfloat Ess = brdf.x + brdf.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\n\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\n\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, dotLH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\n\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\n}\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\n\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie(float roughness, float NoH) {\n\tfloat invAlpha = 1.0 / roughness;\n\tfloat cos2h = NoH * NoH;\n\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\n}\nfloat V_Neubelt(float NoV, float NoL) {\n\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\n}\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\n\tvec3 N = geometry.normal;\n\tvec3 V = geometry.viewDir;\n\tvec3 H = normalize( V + L );\n\tfloat dotNH = saturate( dot( N, H ) );\n\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\n}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\t\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\n\t\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\t\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#ifdef USE_COLOR\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#ifdef USE_COLOR\n\tvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\n\tvColor.xyz = color.xyz;\n#endif",common:"#define PI 3.14159265359\n#define PI2 6.28318530718\n#define PI_HALF 1.5707963267949\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract(sin(sn) * c);\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\tfloat distance = dot( planeNormal, point - pointOnPlane );\n\treturn - distance * planeNormal + point;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat linearToRelativeLuminance( const in vec3 color ) {\n\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\n\treturn dot( weights, color.rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == - 1.0;\n}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_maxMipLevel 8.0\n#define cubeUV_minMipLevel 4.0\n#define cubeUV_maxTileSize 256.0\n#define cubeUV_minTileSize 16.0\nfloat getFace(vec3 direction) {\n vec3 absDirection = abs(direction);\n float face = -1.0;\n if (absDirection.x > absDirection.z) {\n if (absDirection.x > absDirection.y)\n face = direction.x > 0.0 ? 0.0 : 3.0;\n else\n face = direction.y > 0.0 ? 1.0 : 4.0;\n } else {\n if (absDirection.z > absDirection.y)\n face = direction.z > 0.0 ? 2.0 : 5.0;\n else\n face = direction.y > 0.0 ? 1.0 : 4.0;\n }\n return face;\n}\nvec2 getUV(vec3 direction, float face) {\n vec2 uv;\n if (face == 0.0) {\n uv = vec2(-direction.z, direction.y) / abs(direction.x);\n } else if (face == 1.0) {\n uv = vec2(direction.x, -direction.z) / abs(direction.y);\n } else if (face == 2.0) {\n uv = direction.xy / abs(direction.z);\n } else if (face == 3.0) {\n uv = vec2(direction.z, direction.y) / abs(direction.x);\n } else if (face == 4.0) {\n uv = direction.xz / abs(direction.y);\n } else {\n uv = vec2(-direction.x, direction.y) / abs(direction.z);\n }\n return 0.5 * (uv + 1.0);\n}\nvec3 bilinearCubeUV(sampler2D envMap, vec3 direction, float mipInt) {\n float face = getFace(direction);\n float filterInt = max(cubeUV_minMipLevel - mipInt, 0.0);\n mipInt = max(mipInt, cubeUV_minMipLevel);\n float faceSize = exp2(mipInt);\n float texelSize = 1.0 / (3.0 * cubeUV_maxTileSize);\n vec2 uv = getUV(direction, face) * (faceSize - 1.0);\n vec2 f = fract(uv);\n uv += 0.5 - f;\n if (face > 2.0) {\n uv.y += faceSize;\n face -= 3.0;\n }\n uv.x += face * faceSize;\n if(mipInt < cubeUV_maxMipLevel){\n uv.y += 2.0 * cubeUV_maxTileSize;\n }\n uv.y += filterInt * 2.0 * cubeUV_minTileSize;\n uv.x += 3.0 * max(0.0, cubeUV_maxTileSize - 2.0 * faceSize);\n uv *= texelSize;\n vec3 tl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n uv.x += texelSize;\n vec3 tr = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n uv.y += texelSize;\n vec3 br = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n uv.x -= texelSize;\n vec3 bl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n vec3 tm = mix(tl, tr, f.x);\n vec3 bm = mix(bl, br, f.x);\n return mix(tm, bm, f.y);\n}\n#define r0 1.0\n#define v0 0.339\n#define m0 -2.0\n#define r1 0.8\n#define v1 0.276\n#define m1 -1.0\n#define r4 0.4\n#define v4 0.046\n#define m4 2.0\n#define r5 0.305\n#define v5 0.016\n#define m5 3.0\n#define r6 0.21\n#define v6 0.0038\n#define m6 4.0\nfloat roughnessToMip(float roughness) {\n float mip = 0.0;\n if (roughness >= r1) {\n mip = (r0 - roughness) * (m1 - m0) / (r0 - r1) + m0;\n } else if (roughness >= r4) {\n mip = (r1 - roughness) * (m4 - m1) / (r1 - r4) + m1;\n } else if (roughness >= r5) {\n mip = (r4 - roughness) * (m5 - m4) / (r4 - r5) + m4;\n } else if (roughness >= r6) {\n mip = (r5 - roughness) * (m6 - m5) / (r5 - r6) + m5;\n } else {\n mip = -2.0 * log2(1.16 * roughness); }\n return mip;\n}\nvec4 textureCubeUV(sampler2D envMap, vec3 sampleDir, float roughness) {\n float mip = clamp(roughnessToMip(roughness), m0, cubeUV_maxMipLevel);\n float mipF = fract(mip);\n float mipInt = floor(mip);\n vec3 color0 = bilinearCubeUV(envMap, sampleDir, mipInt);\n if (mipF == 0.0) {\n return vec4(color0, 1.0);\n } else {\n vec3 color1 = bilinearCubeUV(envMap, sampleDir, mipInt + 1.0);\n return vec4(mix(color0, color1, mipF), 1.0);\n }\n}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"\nvec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\n}\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\n\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\n}\nvec4 sRGBToLinear( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}\nvec4 RGBEToLinear( in vec4 value ) {\n\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\n}\nvec4 LinearToRGBE( in vec4 value ) {\n\tfloat maxComponent = max( max( value.r, value.g ), value.b );\n\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\n\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\n}\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\n}\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\n\tM = ceil( M * 255.0 ) / 255.0;\n\treturn vec4( value.rgb / ( M * maxRange ), M );\n}\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\n\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\n}\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\n\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\n\tfloat D = max( maxRange / maxRGB, 1.0 );\n\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\n\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\n}\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\nvec4 LinearToLogLuv( in vec4 value ) {\n\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\n\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\n\tvec4 vResult;\n\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\n\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\n\tvResult.w = fract( Le );\n\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\n\treturn vResult;\n}\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\nvec4 LogLuvToLinear( in vec4 value ) {\n\tfloat Le = value.z * 255.0 + value.w;\n\tvec3 Xp_Y_XYZp;\n\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\n\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\n\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\n\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\n\treturn vec4( max( vRGB, 0.0 ), 1.0 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\t\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\treflectVec = normalize( reflectVec );\n\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\treflectVec = normalize( reflectVec );\n\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifndef ENVMAP_TYPE_CUBE_UV\n\t\tenvColor = envMapTexelToLinear( envColor );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\tuniform int maxMipLevel;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\t#ifdef ENVMAP_MODE_REFRACTION\n\t\tuniform float refractionRatio;\n\t#endif\n\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\n\t\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t#else\n\t\t\tvec4 envMapColor = vec4( 0.0 );\n\t\t#endif\n\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t}\n\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\n\t\tfloat maxMIPLevelScalar = float( maxMIPLevel );\n\t\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\n\t\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\n\t\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\n\t}\n\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t vec3 reflectVec = reflect( -viewDir, normal );\n\t\t reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t#else\n\t\t vec3 reflectVec = refract( -viewDir, normal, refractionRatio );\n\t\t#endif\n\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\n\t\t#ifdef ENVMAP_TYPE_CUBE\n\t\t\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\t\tvec2 sampleUV;\n\t\t\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\t\t\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\t\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\n\t\t\t#ifdef TEXTURE_LOD_EXT\n\t\t\t\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#else\n\t\t\t\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\n\t\t\t#endif\n\t\t\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\n\t\t#endif\n\t\treturn envMapColor.rgb * envMapIntensity;\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) { \n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tfogDepth = -mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float fogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float fogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn texture2D( gradientMap, coord ).rgb;\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = PI * directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\n\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treturn irradiance;\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tdirectLight.color = directionalLight.color;\n\t\tdirectLight.direction = directionalLight.direction;\n\t\tdirectLight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tdirectLight.color = pointLight.color;\n\t\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\n\t\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tdirectLight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tfloat angleCos = dot( directLight.direction, spotLight.direction );\n\t\tif ( angleCos > spotLight.coneCos ) {\n\t\t\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\t\tdirectLight.color = spotLight.color;\n\t\t\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tdirectLight.visible = true;\n\t\t} else {\n\t\t\tdirectLight.color = vec3( 0.0 );\n\t\t\tdirectLight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\n\t\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tirradiance *= PI;\n\t\t#endif\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct ToonMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\nstruct BlinnPhongMaterial {\n\tvec3\tdiffuseColor;\n\tvec3\tspecularColor;\n\tfloat\tspecularShininess;\n\tfloat\tspecularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\n#ifdef REFLECTIVITY\n\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\n#endif\n#ifdef CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheen;\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3\tdiffuseColor;\n\tfloat\tspecularRoughness;\n\tvec3\tspecularColor;\n#ifdef CLEARCOAT\n\tfloat clearcoat;\n\tfloat clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tvec3 sheenColor;\n#endif\n};\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\n\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.specularRoughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\tirradiance *= PI;\n\t#endif\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = ccDotNL * directLight.color;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tccIrradiance *= PI;\n\t\t#endif\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\n\t\t\tmaterial.specularRoughness,\n\t\t\tdirectLight.direction,\n\t\t\tgeometry,\n\t\t\tmaterial.sheenColor\n\t\t);\n\t#else\n\t\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\n\t#endif\n\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef CLEARCOAT\n\t\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\n\t\tfloat ccDotNL = ccDotNV;\n\t\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\n\t#else\n\t\tfloat clearcoatDHR = 0.0;\n\t#endif\n\tfloat clearcoatInv = 1.0 - clearcoatDHR;\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\n\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\n\t#ifdef CLEARCOAT\n\t\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifndef USE_MORPHNORMALS\n\tuniform float morphTargetInfluences[ 8 ];\n\t#else\n\tuniform float morphTargetInfluences[ 4 ];\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t#ifndef USE_MORPHNORMALS\n\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t#endif\n#endif",normal_fragment_begin:"#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t\tbitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN ) {\n\t\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\n\t\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\n\t\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\n\t\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\n\t\tvec3 N = normalize( surf_norm );\n\t\tmat3 tsn = mat3( S, T, N );\n\t\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\n\t\treturn normalize( tsn * mapN );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN );\n\t#endif\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\t#ifdef BONE_TEXTURE\n\t\tuniform highp sampler2D boneTexture;\n\t\tuniform int boneTextureSize;\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\t\ty = dy * ( y + 0.5 );\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\t\treturn bone;\n\t\t}\n\t#else\n\t\tuniform mat4 boneMatrices[ MAX_BONES ];\n\t\tmat4 getBoneMatrix( const in float i ) {\n\t\t\tmat4 bone = boneMatrices[ int(i) ];\n\t\t\treturn bone;\n\t\t}\n\t#endif\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate(a) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nuniform float toneMappingWhitePoint;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\nvec3 Uncharted2ToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( ( color * ( 2.51 * color + 0.03 ) ) / ( color * ( 2.43 * color + 0.59 ) + 0.14 ) );\n}",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",cube_frag:"#include <envmap_common_pars_fragment>\nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include <envmap_fragment>\n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",cube_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",depth_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV;\n\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tvec4 texColor = texture2D( tEquirect, sampleUV );\n\tgl_FragColor = mapTexelToLinear( texColor );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\n\t\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t\tmatcapColor = matcapTexelToLinear( matcapColor );\n\t#else\n\t\tvec4 matcapColor = vec4( 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#ifndef FLAT_SHADED\n\t\tvNormal = normalize( transformedNormal );\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define REFLECTIVITY\n\t#define CLEARCOAT\n\t#define TRANSPARENCY\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef TRANSPARENCY\n\tuniform float transparency;\n#endif\n#ifdef REFLECTIVITY\n\tuniform float reflectivity;\n#endif\n#ifdef CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheen;\n#endif\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <lights_physical_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#ifdef TRANSPARENCY\n\t\tdiffuseColor.a *= saturate( 1. - transparency + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) );\n\t#endif\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",normal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n}",normal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",points_vert:"uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",shadow_vert:"#include <fog_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}"},ly={basic:{uniforms:Vg([ry.common,ry.specularmap,ry.envmap,ry.aomap,ry.lightmap,ry.fog]),vertexShader:uy.meshbasic_vert,fragmentShader:uy.meshbasic_frag},lambert:{uniforms:Vg([ry.common,ry.specularmap,ry.envmap,ry.aomap,ry.lightmap,ry.emissivemap,ry.fog,ry.lights,{emissive:{value:new Wv(0)}}]),vertexShader:uy.meshlambert_vert,fragmentShader:uy.meshlambert_frag},phong:{uniforms:Vg([ry.common,ry.specularmap,ry.envmap,ry.aomap,ry.lightmap,ry.emissivemap,ry.bumpmap,ry.normalmap,ry.displacementmap,ry.fog,ry.lights,{emissive:{value:new Wv(0)},specular:{value:new Wv(1118481)},shininess:{value:30}}]),vertexShader:uy.meshphong_vert,fragmentShader:uy.meshphong_frag},standard:{uniforms:Vg([ry.common,ry.envmap,ry.aomap,ry.lightmap,ry.emissivemap,ry.bumpmap,ry.normalmap,ry.displacementmap,ry.roughnessmap,ry.metalnessmap,ry.fog,ry.lights,{emissive:{value:new Wv(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:uy.meshphysical_vert,fragmentShader:uy.meshphysical_frag},toon:{uniforms:Vg([ry.common,ry.specularmap,ry.aomap,ry.lightmap,ry.emissivemap,ry.bumpmap,ry.normalmap,ry.displacementmap,ry.gradientmap,ry.fog,ry.lights,{emissive:{value:new Wv(0)},specular:{value:new Wv(1118481)},shininess:{value:30}}]),vertexShader:uy.meshtoon_vert,fragmentShader:uy.meshtoon_frag},matcap:{uniforms:Vg([ry.common,ry.bumpmap,ry.normalmap,ry.displacementmap,ry.fog,{matcap:{value:null}}]),vertexShader:uy.meshmatcap_vert,fragmentShader:uy.meshmatcap_frag},points:{uniforms:Vg([ry.points,ry.fog]),vertexShader:uy.points_vert,fragmentShader:uy.points_frag},dashed:{uniforms:Vg([ry.common,ry.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:uy.linedashed_vert,fragmentShader:uy.linedashed_frag},depth:{uniforms:Vg([ry.common,ry.displacementmap]),vertexShader:uy.depth_vert,fragmentShader:uy.depth_frag},normal:{uniforms:Vg([ry.common,ry.bumpmap,ry.normalmap,ry.displacementmap,{opacity:{value:1}}]),vertexShader:uy.normal_vert,fragmentShader:uy.normal_frag},sprite:{uniforms:Vg([ry.sprite,ry.fog]),vertexShader:uy.sprite_vert,fragmentShader:uy.sprite_frag},background:{uniforms:{uvTransform:{value:new gm},t2D:{value:null}},vertexShader:uy.background_vert,fragmentShader:uy.background_frag},cube:{uniforms:Vg([ry.envmap,{opacity:{value:1}}]),vertexShader:uy.cube_vert,fragmentShader:uy.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:uy.equirect_vert,fragmentShader:uy.equirect_frag},distanceRGBA:{uniforms:Vg([ry.common,ry.displacementmap,{referencePosition:{value:new Lm},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:uy.distanceRGBA_vert,fragmentShader:uy.distanceRGBA_frag},shadow:{uniforms:Vg([ry.lights,ry.fog,{color:{value:new Wv(0)},opacity:{value:1}}]),vertexShader:uy.shadow_vert,fragmentShader:uy.shadow_frag}};function cy(t,e,i,n){var r,s,o=new Wv(0),a=0,h=null,u=0,l=null;function c(t,i){e.buffers.color.setClear(t.r,t.g,t.b,i,n)}return{getClearColor:function(){return o},setClearColor:function(t,e){o.set(t),c(o,a=void 0!==e?e:1)},getClearAlpha:function(){return a},setClearAlpha:function(t){c(o,a=t)},render:function(e,n,d,p){var f=n.background,m=t.xr,v=m.getSession&&m.getSession();if(v&&"additive"===v.environmentBlendMode&&(f=null),null===f?c(o,a):f&&f.isColor&&(c(f,1),p=!0),(t.autoClear||p)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),f&&(f.isCubeTexture||f.isWebGLCubeRenderTarget||f.mapping===Rf)){void 0===s&&((s=new Yg(new Wg(1,1,1),new qg({type:"BackgroundCubeMaterial",uniforms:Gg(ly.cube.uniforms),vertexShader:ly.cube.vertexShader,fragmentShader:ly.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1}))).geometry.deleteAttribute("normal"),s.geometry.deleteAttribute("uv"),s.onBeforeRender=function(t,e,i){this.matrixWorld.copyPosition(i.matrixWorld)},Object.defineProperty(s.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(s));var g=f.isWebGLCubeRenderTarget?f.texture:f;s.material.uniforms.envMap.value=g,s.material.uniforms.flipEnvMap.value=g.isCubeTexture?-1:1,h===f&&u===g.version&&l===t.toneMapping||(s.material.needsUpdate=!0,h=f,u=g.version,l=t.toneMapping),e.unshift(s,s.geometry,s.material,0,0,null)}else f&&f.isTexture&&(void 0===r&&((r=new Yg(new hy(2,2),new qg({type:"BackgroundMaterial",uniforms:Gg(ly.background.uniforms),vertexShader:ly.background.vertexShader,fragmentShader:ly.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1}))).geometry.deleteAttribute("normal"),Object.defineProperty(r.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(r)),r.material.uniforms.t2D.value=f,!0===f.matrixAutoUpdate&&f.updateMatrix(),r.material.uniforms.uvTransform.value.copy(f.matrix),h===f&&u===f.version&&l===t.toneMapping||(r.material.needsUpdate=!0,h=f,u=f.version,l=t.toneMapping),e.unshift(r,r.geometry,r.material,0,0,null))}}}function dy(t,e,i,n){var r,s=n.isWebGL2;this.setMode=function(t){r=t},this.render=function(e,n){t.drawArrays(r,e,n),i.update(n,r)},this.renderInstances=function(n,o,a,h){if(0!==h){var u,l;if(s)u=t,l="drawArraysInstanced";else if(l="drawArraysInstancedANGLE",null===(u=e.get("ANGLE_instanced_arrays")))return void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");u[l](r,o,a,h),i.update(a,r,h)}}}function py(t,e,i){var n;function r(e){if("highp"===e){if(t.getShaderPrecisionFormat(35633,36338).precision>0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}var s="undefined"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||"undefined"!=typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext,o=void 0!==i.precision?i.precision:"highp",a=r(o);a!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",a,"instead."),o=a);var h=!0===i.logarithmicDepthBuffer,u=t.getParameter(34930),l=t.getParameter(35660),c=t.getParameter(3379),d=t.getParameter(34076),p=t.getParameter(34921),f=t.getParameter(36347),m=t.getParameter(36348),v=t.getParameter(36349),g=l>0,y=s||!!e.get("OES_texture_float");return{isWebGL2:s,getMaxAnisotropy:function(){if(void 0!==n)return n;var i=e.get("EXT_texture_filter_anisotropic");return n=null!==i?t.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0},getMaxPrecision:r,precision:o,logarithmicDepthBuffer:h,maxTextures:u,maxVertexTextures:l,maxTextureSize:c,maxCubemapSize:d,maxAttributes:p,maxVertexUniforms:f,maxVaryings:m,maxFragmentUniforms:v,vertexTextures:g,floatFragmentTextures:y,floatVertexTextures:g&&y,maxSamples:s?t.getParameter(36183):0}}function fy(){var t=this,e=null,i=0,n=!1,r=!1,s=new Dv,o=new gm,a={value:null,needsUpdate:!1};function h(){a.value!==e&&(a.value=e,a.needsUpdate=i>0),t.numPlanes=i,t.numIntersection=0}function u(e,i,n,r){var h=null!==e?e.length:0,u=null;if(0!==h){if(u=a.value,!0!==r||null===u){var l=n+4*h,c=i.matrixWorldInverse;o.getNormalMatrix(c),(null===u||u.length<l)&&(u=new Float32Array(l));for(var d=0,p=n;d!==h;++d,p+=4)s.copy(e[d]).applyMatrix4(c,o),s.normal.toArray(u,p),u[p+3]=s.constant}a.value=u,a.needsUpdate=!0}return t.numPlanes=h,t.numIntersection=0,u}this.uniform=a,this.numPlanes=0,this.numIntersection=0,this.init=function(t,r,s){var o=0!==t.length||r||0!==i||n;return n=r,e=u(t,s,0),i=t.length,o},this.beginShadows=function(){r=!0,u(null)},this.endShadows=function(){r=!1,h()},this.setState=function(t,s,o,l,c,d){if(!n||null===t||0===t.length||r&&!o)r?u(null):h();else{var p=r?0:i,f=4*p,m=c.clippingState||null;a.value=m,m=u(t,l,f,d);for(var v=0;v!==f;++v)m[v]=e[v];c.clippingState=m,this.numIntersection=s?this.numPlanes:0,this.numPlanes+=p}}}function my(t){var e={};return{get:function(i){if(void 0!==e[i])return e[i];var n;switch(i){case"WEBGL_depth_texture":n=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":n=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":n=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":n=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:n=t.getExtension(i)}return null===n&&console.warn("THREE.WebGLRenderer: "+i+" extension not supported."),e[i]=n,n}}}function vy(t,e,i){var n=new WeakMap,r=new WeakMap;function s(t){var o=t.target,a=n.get(o);for(var h in null!==a.index&&e.remove(a.index),a.attributes)e.remove(a.attributes[h]);o.removeEventListener("dispose",s),n.delete(o);var u=r.get(a);u&&(e.remove(u),r.delete(a)),i.memory.geometries--}function o(t){var i=[],n=t.index,s=t.attributes.position,o=0;if(null!==n){var a=n.array;o=n.version;for(var h=0,u=a.length;h<u;h+=3){var l=a[h+0],c=a[h+1],d=a[h+2];i.push(l,c,c,d,d,l)}}else{a=s.array;o=s.version;for(h=0,u=a.length/3-1;h<u;h+=3){l=h+0,c=h+1,d=h+2;i.push(l,c,c,d,d,l)}}var p=new(lg(i)>65535?og:rg)(i,1);p.version=o,e.update(p,34963);var f=r.get(t);f&&e.remove(f),r.set(t,p)}return{get:function(t,e){var r=n.get(e);return r||(e.addEventListener("dispose",s),e.isBufferGeometry?r=e:e.isGeometry&&(void 0===e._bufferGeometry&&(e._bufferGeometry=(new yg).setFromObject(t)),r=e._bufferGeometry),n.set(e,r),i.memory.geometries++,r)},update:function(t){var i=t.index,n=t.attributes;for(var r in null!==i&&e.update(i,34963),n)e.update(n[r],34962);var s=t.morphAttributes;for(var r in s)for(var o=s[r],a=0,h=o.length;a<h;a++)e.update(o[a],34962)},getWireframeAttribute:function(t){var e=r.get(t);if(e){var i=t.index;null!==i&&e.version<i.version&&o(t)}else o(t);return r.get(t)}}}function gy(t,e,i,n){var r,s,o,a=n.isWebGL2;this.setMode=function(t){r=t},this.setIndex=function(t){s=t.type,o=t.bytesPerElement},this.render=function(e,n){t.drawElements(r,n,s,e*o),i.update(n,r)},this.renderInstances=function(n,h,u,l){if(0!==l){var c,d;if(a)c=t,d="drawElementsInstanced";else if(d="drawElementsInstancedANGLE",null===(c=e.get("ANGLE_instanced_arrays")))return void console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");c[d](r,u,s,h*o,l),i.update(u,r,l)}}}function yy(t){var e={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:e,programs:null,autoReset:!0,reset:function(){e.frame++,e.calls=0,e.triangles=0,e.points=0,e.lines=0},update:function(t,i,n){switch(n=n||1,e.calls++,i){case 4:e.triangles+=n*(t/3);break;case 1:e.lines+=n*(t/2);break;case 3:e.lines+=n*(t-1);break;case 2:e.lines+=n*t;break;case 0:e.points+=n*t;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",i)}}}}function _y(t,e){return Math.abs(e[1])-Math.abs(t[1])}function xy(t){var e={},i=new Float32Array(8);return{update:function(n,r,s,o){var a=n.morphTargetInfluences,h=void 0===a?0:a.length,u=e[r.id];if(void 0===u){u=[];for(var l=0;l<h;l++)u[l]=[l,0];e[r.id]=u}var c=s.morphTargets&&r.morphAttributes.position,d=s.morphNormals&&r.morphAttributes.normal;for(l=0;l<h;l++){0!==(f=u[l])[1]&&(c&&r.deleteAttribute("morphTarget"+l),d&&r.deleteAttribute("morphNormal"+l))}for(l=0;l<h;l++){(f=u[l])[0]=l,f[1]=a[l]}u.sort(_y);var p=0;for(l=0;l<8;l++){var f;if(f=u[l]){var m=f[0],v=f[1];if(v){c&&r.setAttribute("morphTarget"+l,c[m]),d&&r.setAttribute("morphNormal"+l,d[m]),i[l]=v,p+=v;continue}}i[l]=0}var g=r.morphTargetsRelative?1:1-p;o.getUniforms().setValue(t,"morphTargetBaseInfluence",g),o.getUniforms().setValue(t,"morphTargetInfluences",i)}}}function by(t,e,i,n){var r=new WeakMap;return{update:function(t){var s=n.render.frame,o=t.geometry,a=e.get(t,o);return r.get(a)!==s&&(o.isGeometry&&a.updateFromObject(t),e.update(a),r.set(a,s)),t.isInstancedMesh&&i.update(t.instanceMatrix,34962),a},dispose:function(){r=new WeakMap}}}function wy(t,e,i,n,r,s,o,a,h,u){t=void 0!==t?t:[],e=void 0!==e?e:301,o=void 0!==o?o:Jf,xm.call(this,t,e,i,n,r,s,o,a,h,u),this.flipY=!1}function Ty(t,e,i,n){xm.call(this,null),this.image={data:t||null,width:e||1,height:i||1,depth:n||1},this.magFilter=Nf,this.minFilter=Nf,this.wrapR=Yf,this.generateMipmaps=!1,this.flipY=!1,this.needsUpdate=!0}function My(t,e,i,n){xm.call(this,null),this.image={data:t||null,width:e||1,height:i||1,depth:n||1},this.magFilter=Nf,this.minFilter=Nf,this.wrapR=Yf,this.generateMipmaps=!1,this.flipY=!1,this.needsUpdate=!0}ly.physical={uniforms:Vg([ly.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new vm(1,1)},clearcoatNormalMap:{value:null},sheen:{value:new Wv(0)},transparency:{value:0}}]),vertexShader:uy.meshphysical_vert,fragmentShader:uy.meshphysical_frag},wy.prototype=Object.create(xm.prototype),wy.prototype.constructor=wy,wy.prototype.isCubeTexture=!0,Object.defineProperty(wy.prototype,"images",{get:function(){return this.image},set:function(t){this.image=t}}),Ty.prototype=Object.create(xm.prototype),Ty.prototype.constructor=Ty,Ty.prototype.isDataTexture2DArray=!0,My.prototype=Object.create(xm.prototype),My.prototype.constructor=My,My.prototype.isDataTexture3D=!0;var Sy=new xm,Ey=new Ty,Ly=new My,Ay=new wy,Dy=[],Py=[],Cy=new Float32Array(16),Oy=new Float32Array(9),ky=new Float32Array(4);function Ry(t,e,i){var n=t[0];if(n<=0||n>0)return t;var r=e*i,s=Dy[r];if(void 0===s&&(s=new Float32Array(r),Dy[r]=s),0!==e){n.toArray(s,0);for(var o=1,a=0;o!==e;++o)a+=i,t[o].toArray(s,a)}return s}function Iy(t,e){if(t.length!==e.length)return!1;for(var i=0,n=t.length;i<n;i++)if(t[i]!==e[i])return!1;return!0}function Yy(t,e){for(var i=0,n=e.length;i<n;i++)t[i]=e[i]}function Fy(t,e){var i=Py[e];void 0===i&&(i=new Int32Array(e),Py[e]=i);for(var n=0;n!==e;++n)i[n]=t.allocateTextureUnit();return i}function Ny(t,e){var i=this.cache;i[0]!==e&&(t.uniform1f(this.addr,e),i[0]=e)}function By(t,e){var i=this.cache;if(void 0!==e.x)i[0]===e.x&&i[1]===e.y||(t.uniform2f(this.addr,e.x,e.y),i[0]=e.x,i[1]=e.y);else{if(Iy(i,e))return;t.uniform2fv(this.addr,e),Yy(i,e)}}function Uy(t,e){var i=this.cache;if(void 0!==e.x)i[0]===e.x&&i[1]===e.y&&i[2]===e.z||(t.uniform3f(this.addr,e.x,e.y,e.z),i[0]=e.x,i[1]=e.y,i[2]=e.z);else if(void 0!==e.r)i[0]===e.r&&i[1]===e.g&&i[2]===e.b||(t.uniform3f(this.addr,e.r,e.g,e.b),i[0]=e.r,i[1]=e.g,i[2]=e.b);else{if(Iy(i,e))return;t.uniform3fv(this.addr,e),Yy(i,e)}}function jy(t,e){var i=this.cache;if(void 0!==e.x)i[0]===e.x&&i[1]===e.y&&i[2]===e.z&&i[3]===e.w||(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),i[0]=e.x,i[1]=e.y,i[2]=e.z,i[3]=e.w);else{if(Iy(i,e))return;t.uniform4fv(this.addr,e),Yy(i,e)}}function Hy(t,e){var i=this.cache,n=e.elements;if(void 0===n){if(Iy(i,e))return;t.uniformMatrix2fv(this.addr,!1,e),Yy(i,e)}else{if(Iy(i,n))return;ky.set(n),t.uniformMatrix2fv(this.addr,!1,ky),Yy(i,n)}}function zy(t,e){var i=this.cache,n=e.elements;if(void 0===n){if(Iy(i,e))return;t.uniformMatrix3fv(this.addr,!1,e),Yy(i,e)}else{if(Iy(i,n))return;Oy.set(n),t.uniformMatrix3fv(this.addr,!1,Oy),Yy(i,n)}}function Wy(t,e){var i=this.cache,n=e.elements;if(void 0===n){if(Iy(i,e))return;t.uniformMatrix4fv(this.addr,!1,e),Yy(i,e)}else{if(Iy(i,n))return;Cy.set(n),t.uniformMatrix4fv(this.addr,!1,Cy),Yy(i,n)}}function Gy(t,e,i){var n=this.cache,r=i.allocateTextureUnit();n[0]!==r&&(t.uniform1i(this.addr,r),n[0]=r),i.safeSetTexture2D(e||Sy,r)}function Vy(t,e,i){var n=this.cache,r=i.allocateTextureUnit();n[0]!==r&&(t.uniform1i(this.addr,r),n[0]=r),i.setTexture2DArray(e||Ey,r)}function Xy(t,e,i){var n=this.cache,r=i.allocateTextureUnit();n[0]!==r&&(t.uniform1i(this.addr,r),n[0]=r),i.setTexture3D(e||Ly,r)}function qy(t,e,i){var n=this.cache,r=i.allocateTextureUnit();n[0]!==r&&(t.uniform1i(this.addr,r),n[0]=r),i.safeSetTextureCube(e||Ay,r)}function Jy(t,e){var i=this.cache;i[0]!==e&&(t.uniform1i(this.addr,e),i[0]=e)}function Zy(t,e){var i=this.cache;Iy(i,e)||(t.uniform2iv(this.addr,e),Yy(i,e))}function Ky(t,e){var i=this.cache;Iy(i,e)||(t.uniform3iv(this.addr,e),Yy(i,e))}function Qy(t,e){var i=this.cache;Iy(i,e)||(t.uniform4iv(this.addr,e),Yy(i,e))}function $y(t,e){var i=this.cache;i[0]!==e&&(t.uniform1ui(this.addr,e),i[0]=e)}function t_(t,e){t.uniform1fv(this.addr,e)}function e_(t,e){t.uniform1iv(this.addr,e)}function i_(t,e){t.uniform2iv(this.addr,e)}function n_(t,e){t.uniform3iv(this.addr,e)}function r_(t,e){t.uniform4iv(this.addr,e)}function s_(t,e){var i=Ry(e,this.size,2);t.uniform2fv(this.addr,i)}function o_(t,e){var i=Ry(e,this.size,3);t.uniform3fv(this.addr,i)}function a_(t,e){var i=Ry(e,this.size,4);t.uniform4fv(this.addr,i)}function h_(t,e){var i=Ry(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,i)}function u_(t,e){var i=Ry(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,i)}function l_(t,e){var i=Ry(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,i)}function c_(t,e,i){var n=e.length,r=Fy(i,n);t.uniform1iv(this.addr,r);for(var s=0;s!==n;++s)i.safeSetTexture2D(e[s]||Sy,r[s])}function d_(t,e,i){var n=e.length,r=Fy(i,n);t.uniform1iv(this.addr,r);for(var s=0;s!==n;++s)i.safeSetTextureCube(e[s]||Ay,r[s])}function p_(t,e,i){this.id=t,this.addr=i,this.cache=[],this.setValue=function(t){switch(t){case 5126:return Ny;case 35664:return By;case 35665:return Uy;case 35666:return jy;case 35674:return Hy;case 35675:return zy;case 35676:return Wy;case 5124:case 35670:return Jy;case 35667:case 35671:return Zy;case 35668:case 35672:return Ky;case 35669:case 35673:return Qy;case 5125:return $y;case 35678:case 36198:case 36298:case 36306:case 35682:return Gy;case 35679:case 36299:case 36307:return Xy;case 35680:case 36300:case 36308:case 36293:return qy;case 36289:case 36303:case 36311:case 36292:return Vy}}(e.type)}function f_(t,e,i){this.id=t,this.addr=i,this.cache=[],this.size=e.size,this.setValue=function(t){switch(t){case 5126:return t_;case 35664:return s_;case 35665:return o_;case 35666:return a_;case 35674:return h_;case 35675:return u_;case 35676:return l_;case 5124:case 35670:return e_;case 35667:case 35671:return i_;case 35668:case 35672:return n_;case 35669:case 35673:return r_;case 35678:case 36198:case 36298:case 36306:case 35682:return c_;case 35680:case 36300:case 36308:case 36293:return d_}}(e.type)}function m_(t){this.id=t,this.seq=[],this.map={}}f_.prototype.updateCache=function(t){var e=this.cache;t instanceof Float32Array&&e.length!==t.length&&(this.cache=new Float32Array(t.length)),Yy(e,t)},m_.prototype.setValue=function(t,e,i){for(var n=this.seq,r=0,s=n.length;r!==s;++r){var o=n[r];o.setValue(t,e[o.id],i)}};var v_=/([\w\d_]+)(\])?(\[|\.)?/g;function g_(t,e){t.seq.push(e),t.map[e.id]=e}function y_(t,e,i){var n=t.name,r=n.length;for(v_.lastIndex=0;;){var s=v_.exec(n),o=v_.lastIndex,a=s[1],h="]"===s[2],u=s[3];if(h&&(a|=0),void 0===u||"["===u&&o+2===r){g_(i,void 0===u?new p_(a,t,e):new f_(a,t,e));break}var l=i.map[a];void 0===l&&g_(i,l=new m_(a)),i=l}}function __(t,e){this.seq=[],this.map={};for(var i=t.getProgramParameter(e,35718),n=0;n<i;++n){var r=t.getActiveUniform(e,n);y_(r,t.getUniformLocation(e,r.name),this)}}function x_(t,e,i){var n=t.createShader(e);return t.shaderSource(n,i),t.compileShader(n),n}__.prototype.setValue=function(t,e,i,n){var r=this.map[e];void 0!==r&&r.setValue(t,i,n)},__.prototype.setOptional=function(t,e,i){var n=e[i];void 0!==n&&this.setValue(t,i,n)},__.upload=function(t,e,i,n){for(var r=0,s=e.length;r!==s;++r){var o=e[r],a=i[o.id];!1!==a.needsUpdate&&o.setValue(t,a.value,n)}},__.seqWithValue=function(t,e){for(var i=[],n=0,r=t.length;n!==r;++n){var s=t[n];s.id in e&&i.push(s)}return i};var b_=0;function w_(t){switch(t){case sm:return["Linear","( value )"];case om:return["sRGB","( value )"];case am:return["RGBE","( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD","( value, 256.0 )"];case 3007:return["Gamma","( value, float( GAMMA_FACTOR ) )"];case 3003:return["LogLuv","( value )"];default:throw new Error("unsupported encoding: "+t)}}function T_(t,e,i){var n=t.getShaderParameter(e,35713),r=t.getShaderInfoLog(e).trim();return n&&""===r?"":"THREE.WebGLShader: gl.getShaderInfoLog() "+i+"\n"+r+function(t){for(var e=t.split("\n"),i=0;i<e.length;i++)e[i]=i+1+": "+e[i];return e.join("\n")}(t.getShaderSource(e))}function M_(t,e){var i=w_(e);return"vec4 "+t+"( vec4 value ) { return "+i[0]+"ToLinear"+i[1]+"; }"}function S_(t,e){var i;switch(e){case 1:i="Linear";break;case 2:i="Reinhard";break;case 3:i="Uncharted2";break;case 4:i="OptimizedCineon";break;case 5:i="ACESFilmic";break;default:throw new Error("unsupported toneMapping: "+e)}return"vec3 "+t+"( vec3 color ) { return "+i+"ToneMapping( color ); }"}function E_(t){return""!==t}function L_(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function A_(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}var D_=/^[ \t]*#include +<([\w\d./]+)>/gm;function P_(t){return t.replace(D_,C_)}function C_(t,e){var i=uy[e];if(void 0===i)throw new Error("Can not resolve #include <"+e+">");return P_(i)}var O_=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,k_=/#pragma unroll_loop_start[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}[\s]+?#pragma unroll_loop_end/g;function R_(t){return t.replace(k_,Y_).replace(O_,I_)}function I_(t,e,i,n){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),Y_(t,e,i,n)}function Y_(t,e,i,n){for(var r="",s=parseInt(e);s<parseInt(i);s++)r+=n.replace(/\[ i \]/g,"[ "+s+" ]").replace(/UNROLLED_LOOP_INDEX/g,s);return r}function F_(t){var e="precision "+t.precision+" float;\nprecision "+t.precision+" int;";return"highp"===t.precision?e+="\n#define HIGH_PRECISION":"mediump"===t.precision?e+="\n#define MEDIUM_PRECISION":"lowp"===t.precision&&(e+="\n#define LOW_PRECISION"),e}function N_(t,e,i){var n,r,s,o,a,h=t.getContext(),u=i.defines,l=i.vertexShader,c=i.fragmentShader,d=function(t){var e="SHADOWMAP_TYPE_BASIC";return 1===t.shadowMapType?e="SHADOWMAP_TYPE_PCF":2===t.shadowMapType?e="SHADOWMAP_TYPE_PCF_SOFT":3===t.shadowMapType&&(e="SHADOWMAP_TYPE_VSM"),e}(i),p=function(t){var e="ENVMAP_TYPE_CUBE";if(t.envMap)switch(t.envMapMode){case 301:case 302:e="ENVMAP_TYPE_CUBE";break;case Rf:case 307:e="ENVMAP_TYPE_CUBE_UV";break;case 303:case 304:e="ENVMAP_TYPE_EQUIREC";break;case 305:e="ENVMAP_TYPE_SPHERE"}return e}(i),f=function(t){var e="ENVMAP_MODE_REFLECTION";if(t.envMap)switch(t.envMapMode){case 302:case 304:e="ENVMAP_MODE_REFRACTION"}return e}(i),m=function(t){var e="ENVMAP_BLENDING_NONE";if(t.envMap)switch(t.combine){case 0:e="ENVMAP_BLENDING_MULTIPLY";break;case 1:e="ENVMAP_BLENDING_MIX";break;case 2:e="ENVMAP_BLENDING_ADD"}return e}(i),v=t.gammaFactor>0?t.gammaFactor:1,g=i.isWebGL2?"":function(t){return[t.extensionDerivatives||t.envMapCubeUV||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||"physical"===t.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(E_).join("\n")}(i),y=function(t){var e=[];for(var i in t){var n=t[i];!1!==n&&e.push("#define "+i+" "+n)}return e.join("\n")}(u),_=h.createProgram();if(i.isRawShaderMaterial?((n=[y].filter(E_).join("\n")).length>0&&(n+="\n"),(r=[g,y].filter(E_).join("\n")).length>0&&(r+="\n")):(n=[F_(i),"#define SHADER_NAME "+i.shaderName,y,i.instancing?"#define USE_INSTANCING":"",i.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+v,"#define MAX_BONES "+i.maxBones,i.useFog&&i.fog?"#define USE_FOG":"",i.useFog&&i.fogExp2?"#define FOG_EXP2":"",i.map?"#define USE_MAP":"",i.envMap?"#define USE_ENVMAP":"",i.envMap?"#define "+f:"",i.lightMap?"#define USE_LIGHTMAP":"",i.aoMap?"#define USE_AOMAP":"",i.emissiveMap?"#define USE_EMISSIVEMAP":"",i.bumpMap?"#define USE_BUMPMAP":"",i.normalMap?"#define USE_NORMALMAP":"",i.normalMap&&i.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",i.normalMap&&i.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",i.clearcoatMap?"#define USE_CLEARCOATMAP":"",i.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",i.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",i.displacementMap&&i.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",i.specularMap?"#define USE_SPECULARMAP":"",i.roughnessMap?"#define USE_ROUGHNESSMAP":"",i.metalnessMap?"#define USE_METALNESSMAP":"",i.alphaMap?"#define USE_ALPHAMAP":"",i.vertexTangents?"#define USE_TANGENT":"",i.vertexColors?"#define USE_COLOR":"",i.vertexUvs?"#define USE_UV":"",i.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",i.flatShading?"#define FLAT_SHADED":"",i.skinning?"#define USE_SKINNING":"",i.useVertexTexture?"#define BONE_TEXTURE":"",i.morphTargets?"#define USE_MORPHTARGETS":"",i.morphNormals&&!1===i.flatShading?"#define USE_MORPHNORMALS":"",i.doubleSided?"#define DOUBLE_SIDED":"",i.flipSided?"#define FLIP_SIDED":"",i.shadowMapEnabled?"#define USE_SHADOWMAP":"",i.shadowMapEnabled?"#define "+d:"",i.sizeAttenuation?"#define USE_SIZEATTENUATION":"",i.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",i.logarithmicDepthBuffer&&i.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#ifdef USE_COLOR","\tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(E_).join("\n"),r=[g,F_(i),"#define SHADER_NAME "+i.shaderName,y,i.alphaTest?"#define ALPHATEST "+i.alphaTest+(i.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+v,i.useFog&&i.fog?"#define USE_FOG":"",i.useFog&&i.fogExp2?"#define FOG_EXP2":"",i.map?"#define USE_MAP":"",i.matcap?"#define USE_MATCAP":"",i.envMap?"#define USE_ENVMAP":"",i.envMap?"#define "+p:"",i.envMap?"#define "+f:"",i.envMap?"#define "+m:"",i.lightMap?"#define USE_LIGHTMAP":"",i.aoMap?"#define USE_AOMAP":"",i.emissiveMap?"#define USE_EMISSIVEMAP":"",i.bumpMap?"#define USE_BUMPMAP":"",i.normalMap?"#define USE_NORMALMAP":"",i.normalMap&&i.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",i.normalMap&&i.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",i.clearcoatMap?"#define USE_CLEARCOATMAP":"",i.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",i.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",i.specularMap?"#define USE_SPECULARMAP":"",i.roughnessMap?"#define USE_ROUGHNESSMAP":"",i.metalnessMap?"#define USE_METALNESSMAP":"",i.alphaMap?"#define USE_ALPHAMAP":"",i.sheen?"#define USE_SHEEN":"",i.vertexTangents?"#define USE_TANGENT":"",i.vertexColors?"#define USE_COLOR":"",i.vertexUvs?"#define USE_UV":"",i.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",i.gradientMap?"#define USE_GRADIENTMAP":"",i.flatShading?"#define FLAT_SHADED":"",i.doubleSided?"#define DOUBLE_SIDED":"",i.flipSided?"#define FLIP_SIDED":"",i.shadowMapEnabled?"#define USE_SHADOWMAP":"",i.shadowMapEnabled?"#define "+d:"",i.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",i.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",i.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",i.logarithmicDepthBuffer&&i.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"",(i.extensionShaderTextureLOD||i.envMap)&&i.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==i.toneMapping?"#define TONE_MAPPING":"",0!==i.toneMapping?uy.tonemapping_pars_fragment:"",0!==i.toneMapping?S_("toneMapping",i.toneMapping):"",i.dithering?"#define DITHERING":"",i.outputEncoding||i.mapEncoding||i.matcapEncoding||i.envMapEncoding||i.emissiveMapEncoding||i.lightMapEncoding?uy.encodings_pars_fragment:"",i.mapEncoding?M_("mapTexelToLinear",i.mapEncoding):"",i.matcapEncoding?M_("matcapTexelToLinear",i.matcapEncoding):"",i.envMapEncoding?M_("envMapTexelToLinear",i.envMapEncoding):"",i.emissiveMapEncoding?M_("emissiveMapTexelToLinear",i.emissiveMapEncoding):"",i.lightMapEncoding?M_("lightMapTexelToLinear",i.lightMapEncoding):"",i.outputEncoding?(s="linearToOutputTexel",o=i.outputEncoding,a=w_(o),"vec4 "+s+"( vec4 value ) { return LinearTo"+a[0]+a[1]+"; }"):"",i.depthPacking?"#define DEPTH_PACKING "+i.depthPacking:"","\n"].filter(E_).join("\n")),l=A_(l=L_(l=P_(l),i),i),c=A_(c=L_(c=P_(c),i),i),l=R_(l),c=R_(c),i.isWebGL2&&!i.isRawShaderMaterial){var x=!1,b=/^\s*#version\s+300\s+es\s*\n/;i.isShaderMaterial&&null!==l.match(b)&&null!==c.match(b)&&(x=!0,l=l.replace(b,""),c=c.replace(b,"")),n=["#version 300 es\n","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+n,r=["#version 300 es\n","#define varying in",x?"":"out highp vec4 pc_fragColor;",x?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+r}var w,T,M=r+c,S=x_(h,35633,n+l),E=x_(h,35632,M);if(h.attachShader(_,S),h.attachShader(_,E),void 0!==i.index0AttributeName?h.bindAttribLocation(_,0,i.index0AttributeName):!0===i.morphTargets&&h.bindAttribLocation(_,0,"position"),h.linkProgram(_),t.debug.checkShaderErrors){var L=h.getProgramInfoLog(_).trim(),A=h.getShaderInfoLog(S).trim(),D=h.getShaderInfoLog(E).trim(),P=!0,C=!0;if(!1===h.getProgramParameter(_,35714)){P=!1;var O=T_(h,S,"vertex"),k=T_(h,E,"fragment");console.error("THREE.WebGLProgram: shader error: ",h.getError(),"35715",h.getProgramParameter(_,35715),"gl.getProgramInfoLog",L,O,k)}else""!==L?console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",L):""!==A&&""!==D||(C=!1);C&&(this.diagnostics={runnable:P,programLog:L,vertexShader:{log:A,prefix:n},fragmentShader:{log:D,prefix:r}})}return h.detachShader(_,S),h.detachShader(_,E),h.deleteShader(S),h.deleteShader(E),this.getUniforms=function(){return void 0===w&&(w=new __(h,_)),w},this.getAttributes=function(){return void 0===T&&(T=function(t,e){for(var i={},n=t.getProgramParameter(e,35721),r=0;r<n;r++){var s=t.getActiveAttrib(e,r).name;i[s]=t.getAttribLocation(e,s)}return i}(h,_)),T},this.destroy=function(){h.deleteProgram(_),this.program=void 0},this.name=i.shaderName,this.id=b_++,this.cacheKey=e,this.usedTimes=1,this.program=_,this.vertexShader=S,this.fragmentShader=E,this}function B_(t,e,i){var n=[],r=i.isWebGL2,s=i.logarithmicDepthBuffer,o=i.floatVertexTextures,a=i.precision,h=i.maxVertexUniforms,u=i.vertexTextures,l={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},c=["precision","isWebGL2","supportsVertexTextures","outputEncoding","instancing","map","mapEncoding","matcap","matcapEncoding","envMap","envMapMode","envMapEncoding","envMapCubeUV","lightMap","lightMapEncoding","aoMap","emissiveMap","emissiveMapEncoding","bumpMap","normalMap","objectSpaceNormalMap","tangentSpaceNormalMap","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","displacementMap","specularMap","roughnessMap","metalnessMap","gradientMap","alphaMap","combine","vertexColors","vertexTangents","vertexUvs","uvsVertexOnly","fog","useFog","fogExp2","flatShading","sizeAttenuation","logarithmicDepthBuffer","skinning","maxBones","useVertexTexture","morphTargets","morphNormals","maxMorphTargets","maxMorphNormals","premultipliedAlpha","numDirLights","numPointLights","numSpotLights","numHemiLights","numRectAreaLights","numDirLightShadows","numPointLightShadows","numSpotLightShadows","shadowMapEnabled","shadowMapType","toneMapping","physicallyCorrectLights","alphaTest","doubleSided","flipSided","numClippingPlanes","numClipIntersection","depthPacking","dithering","sheen"];function d(t){var e;return t?t.isTexture?e=t.encoding:t.isWebGLRenderTarget&&(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),e=t.texture.encoding):e=sm,e}this.getParameters=function(n,c,p,f,m,v,g){var y=f.fog,_=n.isMeshStandardMaterial?f.environment:null,x=n.envMap||_,b=l[n.type],w=g.isSkinnedMesh?function(t){var e=t.skeleton.bones;if(o)return 1024;var i=h,n=Math.floor((i-20)/4),r=Math.min(n,e.length);return r<e.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+e.length+" bones. This GPU supports "+r+"."),0):r}(g):0;null!==n.precision&&(a=i.getMaxPrecision(n.precision))!==n.precision&&console.warn("THREE.WebGLProgram.getParameters:",n.precision,"not supported, using",a,"instead.");var T=function(t,e){var i;if(e){var n=ly[e];i={name:t.type,uniforms:Xg.clone(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader}}else i={name:t.type,uniforms:t.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader};return i}(n,b);n.onBeforeCompile(T,t);var M=t.getRenderTarget();return{isWebGL2:r,shaderID:b,shaderName:T.name,uniforms:T.uniforms,vertexShader:T.vertexShader,fragmentShader:T.fragmentShader,defines:n.defines,isRawShaderMaterial:n.isRawShaderMaterial,isShaderMaterial:n.isShaderMaterial,precision:a,instancing:!0===g.isInstancedMesh,supportsVertexTextures:u,outputEncoding:null!==M?d(M.texture):t.outputEncoding,map:!!n.map,mapEncoding:d(n.map),matcap:!!n.matcap,matcapEncoding:d(n.matcap),envMap:!!x,envMapMode:x&&x.mapping,envMapEncoding:d(x),envMapCubeUV:!!x&&(x.mapping===Rf||307===x.mapping),lightMap:!!n.lightMap,lightMapEncoding:d(n.lightMap),aoMap:!!n.aoMap,emissiveMap:!!n.emissiveMap,emissiveMapEncoding:d(n.emissiveMap),bumpMap:!!n.bumpMap,normalMap:!!n.normalMap,objectSpaceNormalMap:1===n.normalMapType,tangentSpaceNormalMap:0===n.normalMapType,clearcoatMap:!!n.clearcoatMap,clearcoatRoughnessMap:!!n.clearcoatRoughnessMap,clearcoatNormalMap:!!n.clearcoatNormalMap,displacementMap:!!n.displacementMap,roughnessMap:!!n.roughnessMap,metalnessMap:!!n.metalnessMap,specularMap:!!n.specularMap,alphaMap:!!n.alphaMap,gradientMap:!!n.gradientMap,sheen:!!n.sheen,combine:n.combine,vertexTangents:n.normalMap&&n.vertexTangents,vertexColors:n.vertexColors,vertexUvs:!!(n.map||n.bumpMap||n.normalMap||n.specularMap||n.alphaMap||n.emissiveMap||n.roughnessMap||n.metalnessMap||n.clearcoatMap||n.clearcoatRoughnessMap||n.clearcoatNormalMap||n.displacementMap),uvsVertexOnly:!(n.map||n.bumpMap||n.normalMap||n.specularMap||n.alphaMap||n.emissiveMap||n.roughnessMap||n.metalnessMap||n.clearcoatNormalMap||!n.displacementMap),fog:!!y,useFog:n.fog,fogExp2:y&&y.isFogExp2,flatShading:n.flatShading,sizeAttenuation:n.sizeAttenuation,logarithmicDepthBuffer:s,skinning:n.skinning&&w>0,maxBones:w,useVertexTexture:o,morphTargets:n.morphTargets,morphNormals:n.morphNormals,maxMorphTargets:t.maxMorphTargets,maxMorphNormals:t.maxMorphNormals,numDirLights:c.directional.length,numPointLights:c.point.length,numSpotLights:c.spot.length,numRectAreaLights:c.rectArea.length,numHemiLights:c.hemi.length,numDirLightShadows:c.directionalShadowMap.length,numPointLightShadows:c.pointShadowMap.length,numSpotLightShadows:c.spotShadowMap.length,numClippingPlanes:m,numClipIntersection:v,dithering:n.dithering,shadowMapEnabled:t.shadowMap.enabled&&p.length>0,shadowMapType:t.shadowMap.type,toneMapping:n.toneMapped?t.toneMapping:0,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:n.premultipliedAlpha,alphaTest:n.alphaTest,doubleSided:2===n.side,flipSided:1===n.side,depthPacking:void 0!==n.depthPacking&&n.depthPacking,index0AttributeName:n.index0AttributeName,extensionDerivatives:n.extensions&&n.extensions.derivatives,extensionFragDepth:n.extensions&&n.extensions.fragDepth,extensionDrawBuffers:n.extensions&&n.extensions.drawBuffers,extensionShaderTextureLOD:n.extensions&&n.extensions.shaderTextureLOD,rendererExtensionFragDepth:r||null!==e.get("EXT_frag_depth"),rendererExtensionDrawBuffers:r||null!==e.get("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:r||null!==e.get("EXT_shader_texture_lod"),onBeforeCompile:n.onBeforeCompile}},this.getProgramCacheKey=function(e){var i=[];if(e.shaderID?i.push(e.shaderID):(i.push(e.fragmentShader),i.push(e.vertexShader)),void 0!==e.defines)for(var n in e.defines)i.push(n),i.push(e.defines[n]);if(void 0===e.isRawShaderMaterial){for(var r=0;r<c.length;r++)i.push(e[c[r]]);i.push(t.outputEncoding),i.push(t.gammaFactor)}return i.push(e.onBeforeCompile.toString()),i.join()},this.acquireProgram=function(e,i){for(var r,s=0,o=n.length;s<o;s++){var a=n[s];if(a.cacheKey===i){++(r=a).usedTimes;break}}return void 0===r&&(r=new N_(t,i,e),n.push(r)),r},this.releaseProgram=function(t){if(0==--t.usedTimes){var e=n.indexOf(t);n[e]=n[n.length-1],n.pop(),t.destroy()}},this.programs=n}function U_(){var t=new WeakMap;return{get:function(e){var i=t.get(e);return void 0===i&&(i={},t.set(e,i)),i},remove:function(e){t.delete(e)},update:function(e,i,n){t.get(e)[i]=n},dispose:function(){t=new WeakMap}}}function j_(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.program!==e.program?t.program.id-e.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function H_(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function z_(){var t=[],e=0,i=[],n=[],r={id:-1};function s(i,n,s,o,a,h){var u=t[e];return void 0===u?(u={id:i.id,object:i,geometry:n,material:s,program:s.program||r,groupOrder:o,renderOrder:i.renderOrder,z:a,group:h},t[e]=u):(u.id=i.id,u.object=i,u.geometry=n,u.material=s,u.program=s.program||r,u.groupOrder=o,u.renderOrder=i.renderOrder,u.z=a,u.group=h),e++,u}return{opaque:i,transparent:n,init:function(){e=0,i.length=0,n.length=0},push:function(t,e,r,o,a,h){var u=s(t,e,r,o,a,h);(!0===r.transparent?n:i).push(u)},unshift:function(t,e,r,o,a,h){var u=s(t,e,r,o,a,h);(!0===r.transparent?n:i).unshift(u)},finish:function(){for(var i=e,n=t.length;i<n;i++){var r=t[i];if(null===r.id)break;r.id=null,r.object=null,r.geometry=null,r.material=null,r.program=null,r.group=null}},sort:function(t,e){i.length>1&&i.sort(t||j_),n.length>1&&n.sort(e||H_)}}}function W_(){var t=new WeakMap;function e(i){var n=i.target;n.removeEventListener("dispose",e),t.delete(n)}return{get:function(i,n){var r,s=t.get(i);return void 0===s?(r=new z_,t.set(i,new WeakMap),t.get(i).set(n,r),i.addEventListener("dispose",e)):void 0===(r=s.get(n))&&(r=new z_,s.set(n,r)),r},dispose:function(){t=new WeakMap}}}function G_(){var t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];var i;switch(e.type){case"DirectionalLight":i={direction:new Lm,color:new Wv};break;case"SpotLight":i={position:new Lm,direction:new Lm,color:new Wv,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":i={position:new Lm,color:new Wv,distance:0,decay:0};break;case"HemisphereLight":i={direction:new Lm,skyColor:new Wv,groundColor:new Wv};break;case"RectAreaLight":i={color:new Wv,position:new Lm,halfWidth:new Lm,halfHeight:new Lm}}return t[e.id]=i,i}}}var V_=0;function X_(t,e){return(e.castShadow?1:0)-(t.castShadow?1:0)}function q_(){for(var t,e=new G_,i=(t={},{get:function(e){if(void 0!==t[e.id])return t[e.id];var i;switch(e.type){case"DirectionalLight":case"SpotLight":i={shadowBias:0,shadowRadius:1,shadowMapSize:new vm};break;case"PointLight":i={shadowBias:0,shadowRadius:1,shadowMapSize:new vm,shadowCameraNear:1,shadowCameraFar:1e3}}return t[e.id]=i,i}}),n={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},r=0;r<9;r++)n.probe.push(new Lm);var s=new Lm,o=new Im,a=new Im;return{setup:function(t,r,h){for(var u=0,l=0,c=0,d=0;d<9;d++)n.probe[d].set(0,0,0);var p=0,f=0,m=0,v=0,g=0,y=0,_=0,x=0,b=h.matrixWorldInverse;t.sort(X_),d=0;for(var w=t.length;d<w;d++){var T=t[d],M=T.color,S=T.intensity,E=T.distance,L=T.shadow&&T.shadow.map?T.shadow.map.texture:null;if(T.isAmbientLight)u+=M.r*S,l+=M.g*S,c+=M.b*S;else if(T.isLightProbe)for(var A=0;A<9;A++)n.probe[A].addScaledVector(T.sh.coefficients[A],S);else if(T.isDirectionalLight){if((C=e.get(T)).color.copy(T.color).multiplyScalar(T.intensity),C.direction.setFromMatrixPosition(T.matrixWorld),s.setFromMatrixPosition(T.target.matrixWorld),C.direction.sub(s),C.direction.transformDirection(b),T.castShadow){var D=T.shadow;(P=i.get(T)).shadowBias=D.bias,P.shadowRadius=D.radius,P.shadowMapSize=D.mapSize,n.directionalShadow[p]=P,n.directionalShadowMap[p]=L,n.directionalShadowMatrix[p]=T.shadow.matrix,y++}n.directional[p]=C,p++}else if(T.isSpotLight){if((C=e.get(T)).position.setFromMatrixPosition(T.matrixWorld),C.position.applyMatrix4(b),C.color.copy(M).multiplyScalar(S),C.distance=E,C.direction.setFromMatrixPosition(T.matrixWorld),s.setFromMatrixPosition(T.target.matrixWorld),C.direction.sub(s),C.direction.transformDirection(b),C.coneCos=Math.cos(T.angle),C.penumbraCos=Math.cos(T.angle*(1-T.penumbra)),C.decay=T.decay,T.castShadow){D=T.shadow;(P=i.get(T)).shadowBias=D.bias,P.shadowRadius=D.radius,P.shadowMapSize=D.mapSize,n.spotShadow[m]=P,n.spotShadowMap[m]=L,n.spotShadowMatrix[m]=T.shadow.matrix,x++}n.spot[m]=C,m++}else if(T.isRectAreaLight){(C=e.get(T)).color.copy(M).multiplyScalar(S),C.position.setFromMatrixPosition(T.matrixWorld),C.position.applyMatrix4(b),a.identity(),o.copy(T.matrixWorld),o.premultiply(b),a.extractRotation(o),C.halfWidth.set(.5*T.width,0,0),C.halfHeight.set(0,.5*T.height,0),C.halfWidth.applyMatrix4(a),C.halfHeight.applyMatrix4(a),n.rectArea[v]=C,v++}else if(T.isPointLight){if((C=e.get(T)).position.setFromMatrixPosition(T.matrixWorld),C.position.applyMatrix4(b),C.color.copy(T.color).multiplyScalar(T.intensity),C.distance=T.distance,C.decay=T.decay,T.castShadow){var P;D=T.shadow;(P=i.get(T)).shadowBias=D.bias,P.shadowRadius=D.radius,P.shadowMapSize=D.mapSize,P.shadowCameraNear=D.camera.near,P.shadowCameraFar=D.camera.far,n.pointShadow[f]=P,n.pointShadowMap[f]=L,n.pointShadowMatrix[f]=T.shadow.matrix,_++}n.point[f]=C,f++}else if(T.isHemisphereLight){var C;(C=e.get(T)).direction.setFromMatrixPosition(T.matrixWorld),C.direction.transformDirection(b),C.direction.normalize(),C.skyColor.copy(T.color).multiplyScalar(S),C.groundColor.copy(T.groundColor).multiplyScalar(S),n.hemi[g]=C,g++}}n.ambient[0]=u,n.ambient[1]=l,n.ambient[2]=c;var O=n.hash;O.directionalLength===p&&O.pointLength===f&&O.spotLength===m&&O.rectAreaLength===v&&O.hemiLength===g&&O.numDirectionalShadows===y&&O.numPointShadows===_&&O.numSpotShadows===x||(n.directional.length=p,n.spot.length=m,n.rectArea.length=v,n.point.length=f,n.hemi.length=g,n.directionalShadow.length=y,n.directionalShadowMap.length=y,n.pointShadow.length=_,n.pointShadowMap.length=_,n.spotShadow.length=x,n.spotShadowMap.length=x,n.directionalShadowMatrix.length=y,n.pointShadowMatrix.length=_,n.spotShadowMatrix.length=x,O.directionalLength=p,O.pointLength=f,O.spotLength=m,O.rectAreaLength=v,O.hemiLength=g,O.numDirectionalShadows=y,O.numPointShadows=_,O.numSpotShadows=x,n.version=V_++)},state:n}}function J_(){var t=new q_,e=[],i=[];return{init:function(){e.length=0,i.length=0},state:{lightsArray:e,shadowsArray:i,lights:t},setupLights:function(n){t.setup(e,i,n)},pushLight:function(t){e.push(t)},pushShadow:function(t){i.push(t)}}}function Z_(){var t=new WeakMap;function e(i){var n=i.target;n.removeEventListener("dispose",e),t.delete(n)}return{get:function(i,n){var r;return!1===t.has(i)?(r=new J_,t.set(i,new WeakMap),t.get(i).set(n,r),i.addEventListener("dispose",e)):!1===t.get(i).has(n)?(r=new J_,t.get(i).set(n,r)):r=t.get(i).get(n),r},dispose:function(){t=new WeakMap}}}function K_(t){Zv.call(this),this.type="MeshDepthMaterial",this.depthPacking=3200,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.setValues(t)}function Q_(t){Zv.call(this),this.type="MeshDistanceMaterial",this.referencePosition=new Lm,this.nearDistance=1,this.farDistance=1e3,this.skinning=!1,this.morphTargets=!1,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.fog=!1,this.setValues(t)}K_.prototype=Object.create(Zv.prototype),K_.prototype.constructor=K_,K_.prototype.isMeshDepthMaterial=!0,K_.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.depthPacking=t.depthPacking,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this},Q_.prototype=Object.create(Zv.prototype),Q_.prototype.constructor=Q_,Q_.prototype.isMeshDistanceMaterial=!0,Q_.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this};function $_(t,e,i){var n=new ny,r=new vm,s=new vm,o=new bm,a=[],h=[],u={},l={0:1,1:0,2:2},c=new qg({defines:{SAMPLE_RATE:2/8,HALF_SAMPLE_RATE:1/8},uniforms:{shadow_pass:{value:null},resolution:{value:new vm},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n float mean = 0.0;\n float squared_mean = 0.0;\n\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy ) / resolution ) );\n for ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {\n #ifdef HORIZONAL_PASS\n vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );\n mean += distribution.x;\n squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n #else\n float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, i ) * radius ) / resolution ) );\n mean += depth;\n squared_mean += depth * depth;\n #endif\n }\n mean = mean * HALF_SAMPLE_RATE;\n squared_mean = squared_mean * HALF_SAMPLE_RATE;\n float std_dev = sqrt( squared_mean - mean * mean );\n gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),d=c.clone();d.defines.HORIZONAL_PASS=1;var p=new yg;p.setAttribute("position",new $v(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));var f=new Yg(p,c),m=this;function v(i,n){var r=e.update(f);c.uniforms.shadow_pass.value=i.map.texture,c.uniforms.resolution.value=i.mapSize,c.uniforms.radius.value=i.radius,t.setRenderTarget(i.mapPass),t.clear(),t.renderBufferDirect(n,null,r,c,f,null),d.uniforms.shadow_pass.value=i.mapPass.texture,d.uniforms.resolution.value=i.mapSize,d.uniforms.radius.value=i.radius,t.setRenderTarget(i.map),t.clear(),t.renderBufferDirect(n,null,r,d,f,null)}function g(t,e,i){var n=t<<0|e<<1|i<<2,r=a[n];return void 0===r&&(r=new K_({depthPacking:3201,morphTargets:t,skinning:e}),a[n]=r),r}function y(t,e,i){var n=t<<0|e<<1|i<<2,r=h[n];return void 0===r&&(r=new Q_({morphTargets:t,skinning:e}),h[n]=r),r}function _(e,i,n,r,s,o){var a=e.geometry,h=null,c=g,d=e.customDepthMaterial;if(!0===n.isPointLight&&(c=y,d=e.customDistanceMaterial),void 0===d){var p=!1;!0===i.morphTargets&&(!0===a.isBufferGeometry?p=a.morphAttributes&&a.morphAttributes.position&&a.morphAttributes.position.length>0:!0===a.isGeometry&&(p=a.morphTargets&&a.morphTargets.length>0));var f=!1;!0===e.isSkinnedMesh&&(!0===i.skinning?f=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",e)),h=c(p,f,!0===e.isInstancedMesh)}else h=d;if(t.localClippingEnabled&&!0===i.clipShadows&&0!==i.clippingPlanes.length){var m=h.uuid,v=i.uuid,_=u[m];void 0===_&&(_={},u[m]=_);var x=_[v];void 0===x&&(x=h.clone(),_[v]=x),h=x}return h.visible=i.visible,h.wireframe=i.wireframe,h.side=3===o?null!==i.shadowSide?i.shadowSide:i.side:null!==i.shadowSide?i.shadowSide:l[i.side],h.clipShadows=i.clipShadows,h.clippingPlanes=i.clippingPlanes,h.clipIntersection=i.clipIntersection,h.wireframeLinewidth=i.wireframeLinewidth,h.linewidth=i.linewidth,!0===n.isPointLight&&!0===h.isMeshDistanceMaterial&&(h.referencePosition.setFromMatrixPosition(n.matrixWorld),h.nearDistance=r,h.farDistance=s),h}function x(i,r,s,o,a){if(!1!==i.visible){if(i.layers.test(r.layers)&&(i.isMesh||i.isLine||i.isPoints)&&(i.castShadow||i.receiveShadow&&3===a)&&(!i.frustumCulled||n.intersectsObject(i))){i.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,i.matrixWorld);var h=e.update(i),u=i.material;if(Array.isArray(u))for(var l=h.groups,c=0,d=l.length;c<d;c++){var p=l[c],f=u[p.materialIndex];if(f&&f.visible){var m=_(i,f,o,s.near,s.far,a);t.renderBufferDirect(s,null,h,m,i,p)}}else if(u.visible){m=_(i,u,o,s.near,s.far,a);t.renderBufferDirect(s,null,h,m,i,null)}}for(var v=i.children,g=0,y=v.length;g<y;g++)x(v[g],r,s,o,a)}}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=1,this.render=function(e,a,h){if(!1!==m.enabled&&(!1!==m.autoUpdate||!1!==m.needsUpdate)&&0!==e.length){var u=t.getRenderTarget(),l=t.getActiveCubeFace(),c=t.getActiveMipmapLevel(),d=t.state;d.setBlending(0),d.buffers.color.setClear(1,1,1,1),d.buffers.depth.setTest(!0),d.setScissorTest(!1);for(var p=0,f=e.length;p<f;p++){var g=e[p],y=g.shadow;if(void 0!==y){r.copy(y.mapSize);var _=y.getFrameExtents();if(r.multiply(_),s.copy(y.mapSize),(r.x>i||r.y>i)&&(console.warn("THREE.WebGLShadowMap:",g,"has shadow exceeding max texture size, reducing"),r.x>i&&(s.x=Math.floor(i/_.x),r.x=s.x*_.x,y.mapSize.x=s.x),r.y>i&&(s.y=Math.floor(i/_.y),r.y=s.y*_.y,y.mapSize.y=s.y)),null===y.map&&!y.isPointLightShadow&&3===this.type){var b={minFilter:jf,magFilter:jf,format:Zf};y.map=new wm(r.x,r.y,b),y.map.texture.name=g.name+".shadowMap",y.mapPass=new wm(r.x,r.y,b),y.camera.updateProjectionMatrix()}if(null===y.map){b={minFilter:Nf,magFilter:Nf,format:Zf};y.map=new wm(r.x,r.y,b),y.map.texture.name=g.name+".shadowMap",y.camera.updateProjectionMatrix()}t.setRenderTarget(y.map),t.clear();for(var w=y.getViewportCount(),T=0;T<w;T++){var M=y.getViewport(T);o.set(s.x*M.x,s.y*M.y,s.x*M.z,s.y*M.w),d.viewport(o),y.updateMatrices(g,T),n=y.getFrustum(),x(a,h,y.camera,g,this.type)}y.isPointLightShadow||3!==this.type||v(y,h)}else console.warn("THREE.WebGLShadowMap:",g,"has no shadow.")}m.needsUpdate=!1,t.setRenderTarget(u,l,c)}}}function tx(t,e,i){var n=i.isWebGL2;var r=new function(){var e=!1,i=new bm,n=null,r=new bm(0,0,0,0);return{setMask:function(i){n===i||e||(t.colorMask(i,i,i,i),n=i)},setLocked:function(t){e=t},setClear:function(e,n,s,o,a){!0===a&&(e*=o,n*=o,s*=o),i.set(e,n,s,o),!1===r.equals(i)&&(t.clearColor(e,n,s,o),r.copy(i))},reset:function(){e=!1,n=null,r.set(-1,0,0,0)}}},s=new function(){var e=!1,i=null,n=null,r=null;return{setTest:function(t){t?N(2929):B(2929)},setMask:function(n){i===n||e||(t.depthMask(n),i=n)},setFunc:function(e){if(n!==e){if(e)switch(e){case 0:t.depthFunc(512);break;case 1:t.depthFunc(519);break;case 2:t.depthFunc(513);break;case 3:t.depthFunc(515);break;case 4:t.depthFunc(514);break;case 5:t.depthFunc(518);break;case 6:t.depthFunc(516);break;case 7:t.depthFunc(517);break;default:t.depthFunc(515)}else t.depthFunc(515);n=e}},setLocked:function(t){e=t},setClear:function(e){r!==e&&(t.clearDepth(e),r=e)},reset:function(){e=!1,i=null,n=null,r=null}}},o=new function(){var e=!1,i=null,n=null,r=null,s=null,o=null,a=null,h=null,u=null;return{setTest:function(t){e||(t?N(2960):B(2960))},setMask:function(n){i===n||e||(t.stencilMask(n),i=n)},setFunc:function(e,i,o){n===e&&r===i&&s===o||(t.stencilFunc(e,i,o),n=e,r=i,s=o)},setOp:function(e,i,n){o===e&&a===i&&h===n||(t.stencilOp(e,i,n),o=e,a=i,h=n)},setLocked:function(t){e=t},setClear:function(e){u!==e&&(t.clearStencil(e),u=e)},reset:function(){e=!1,i=null,n=null,r=null,s=null,o=null,a=null,h=null,u=null}}},a=t.getParameter(34921),h=new Uint8Array(a),u=new Uint8Array(a),l=new Uint8Array(a),c={},d=null,p=null,f=null,m=null,v=null,g=null,y=null,_=null,x=null,b=!1,w=null,T=null,M=null,S=null,E=null,L=t.getParameter(35661),A=!1,D=0,P=t.getParameter(7938);-1!==P.indexOf("WebGL")?(D=parseFloat(/^WebGL\ ([0-9])/.exec(P)[1]),A=D>=1):-1!==P.indexOf("OpenGL ES")&&(D=parseFloat(/^OpenGL\ ES\ ([0-9])/.exec(P)[1]),A=D>=2);var C=null,O={},k=new bm,R=new bm;function I(e,i,n){var r=new Uint8Array(4),s=t.createTexture();t.bindTexture(e,s),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(var o=0;o<n;o++)t.texImage2D(i+o,0,6408,1,1,0,6408,5121,r);return s}var Y={};function F(i,r){(h[i]=1,0===u[i]&&(t.enableVertexAttribArray(i),u[i]=1),l[i]!==r)&&((n?t:e.get("ANGLE_instanced_arrays"))[n?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](i,r),l[i]=r)}function N(e){!0!==c[e]&&(t.enable(e),c[e]=!0)}function B(e){!1!==c[e]&&(t.disable(e),c[e]=!1)}Y[3553]=I(3553,3553,1),Y[34067]=I(34067,34069,6),r.setClear(0,0,0,1),s.setClear(1),o.setClear(0),N(2929),s.setFunc(3),W(!1),G(1),N(2884),z(0);var U={[kf]:32774,101:32778,102:32779};if(n)U[103]=32775,U[104]=32776;else{var j=e.get("EXT_blend_minmax");null!==j&&(U[103]=j.MIN_EXT,U[104]=j.MAX_EXT)}var H={200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};function z(e,i,n,r,s,o,a,h){if(0!==e){if(p||(N(3042),p=!0),5===e)s=s||i,o=o||n,a=a||r,i===m&&s===y||(t.blendEquationSeparate(U[i],U[s]),m=i,y=s),n===v&&r===g&&o===_&&a===x||(t.blendFuncSeparate(H[n],H[r],H[o],H[a]),v=n,g=r,_=o,x=a),f=e,b=null;else if(e!==f||h!==b){if(m===kf&&y===kf||(t.blendEquation(32774),m=kf,y=kf),h)switch(e){case 1:t.blendFuncSeparate(1,771,1,771);break;case 2:t.blendFunc(1,1);break;case 3:t.blendFuncSeparate(0,0,769,771);break;case 4:t.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",e)}else switch(e){case 1:t.blendFuncSeparate(770,771,1,771);break;case 2:t.blendFunc(770,1);break;case 3:t.blendFunc(0,769);break;case 4:t.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",e)}v=null,g=null,_=null,x=null,f=e,b=h}}else p&&(B(3042),p=!1)}function W(e){w!==e&&(e?t.frontFace(2304):t.frontFace(2305),w=e)}function G(e){0!==e?(N(2884),e!==T&&(1===e?t.cullFace(1029):2===e?t.cullFace(1028):t.cullFace(1032))):B(2884),T=e}function V(e,i,n){e?(N(32823),S===i&&E===n||(t.polygonOffset(i,n),S=i,E=n)):B(32823)}function X(e){void 0===e&&(e=33984+L-1),C!==e&&(t.activeTexture(e),C=e)}return{buffers:{color:r,depth:s,stencil:o},initAttributes:function(){for(var t=0,e=h.length;t<e;t++)h[t]=0},enableAttribute:function(t){F(t,0)},enableAttributeAndDivisor:F,disableUnusedAttributes:function(){for(var e=0,i=u.length;e!==i;++e)u[e]!==h[e]&&(t.disableVertexAttribArray(e),u[e]=0)},enable:N,disable:B,useProgram:function(e){return d!==e&&(t.useProgram(e),d=e,!0)},setBlending:z,setMaterial:function(t,e){2===t.side?B(2884):N(2884);var i=1===t.side;e&&(i=!i),W(i),1===t.blending&&!1===t.transparent?z(0):z(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha),s.setFunc(t.depthFunc),s.setTest(t.depthTest),s.setMask(t.depthWrite),r.setMask(t.colorWrite);var n=t.stencilWrite;o.setTest(n),n&&(o.setMask(t.stencilWriteMask),o.setFunc(t.stencilFunc,t.stencilRef,t.stencilFuncMask),o.setOp(t.stencilFail,t.stencilZFail,t.stencilZPass)),V(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits)},setFlipSided:W,setCullFace:G,setLineWidth:function(e){e!==M&&(A&&t.lineWidth(e),M=e)},setPolygonOffset:V,setScissorTest:function(t){t?N(3089):B(3089)},activeTexture:X,bindTexture:function(e,i){null===C&&X();var n=O[C];void 0===n&&(n={type:void 0,texture:void 0},O[C]=n),n.type===e&&n.texture===i||(t.bindTexture(e,i||Y[e]),n.type=e,n.texture=i)},unbindTexture:function(){var e=O[C];void 0!==e&&void 0!==e.type&&(t.bindTexture(e.type,null),e.type=void 0,e.texture=void 0)},compressedTexImage2D:function(){try{t.compressedTexImage2D.apply(t,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},texImage2D:function(){try{t.texImage2D.apply(t,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},texImage3D:function(){try{t.texImage3D.apply(t,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},scissor:function(e){!1===k.equals(e)&&(t.scissor(e.x,e.y,e.z,e.w),k.copy(e))},viewport:function(e){!1===R.equals(e)&&(t.viewport(e.x,e.y,e.z,e.w),R.copy(e))},reset:function(){for(var e=0;e<u.length;e++)1===u[e]&&(t.disableVertexAttribArray(e),u[e]=0);c={},C=null,O={},d=null,f=null,w=null,T=null,r.reset(),s.reset(),o.reset()}}}function ex(t,e,i,n,r,s,o){var a,h=r.isWebGL2,u=r.maxTextures,l=r.maxCubemapSize,c=r.maxTextureSize,d=r.maxSamples,p=new WeakMap,f=!1;try{f="undefined"!=typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(t){}function m(t,e){return f?new OffscreenCanvas(t,e):document.createElementNS("http://www.w3.org/1999/xhtml","canvas")}function v(t,e,i,n){var r=1;if((t.width>n||t.height>n)&&(r=n/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&t instanceof ImageBitmap){var s=e?mm.floorPowerOfTwo:Math.floor,o=s(r*t.width),h=s(r*t.height);void 0===a&&(a=m(o,h));var u=i?m(o,h):a;return u.width=o,u.height=h,u.getContext("2d").drawImage(t,0,0,o,h),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+o+"x"+h+")."),u}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function g(t){return mm.isPowerOfTwo(t.width)&&mm.isPowerOfTwo(t.height)}function y(t,e){return t.generateMipmaps&&e&&t.minFilter!==Nf&&t.minFilter!==jf}function _(e,i,r,s){t.generateMipmap(e),n.get(i).__maxMipLevel=Math.log(Math.max(r,s))*Math.LOG2E}function x(i,n,r){if(!1===h)return n;if(null!==i){if(void 0!==t[i])return t[i];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+i+"'")}var s=n;return 6403===n&&(5126===r&&(s=33326),5131===r&&(s=33325),5121===r&&(s=33321)),6407===n&&(5126===r&&(s=34837),5131===r&&(s=34843),5121===r&&(s=32849)),6408===n&&(5126===r&&(s=34836),5131===r&&(s=34842),5121===r&&(s=32856)),33325!==s&&33326!==s&&34842!==s&&34836!==s||e.get("EXT_color_buffer_float"),s}function b(t){return t===Nf||t===Bf||t===Uf?9728:9729}function w(e){var i=e.target;i.removeEventListener("dispose",w),function(e){var i=n.get(e);if(void 0===i.__webglInit)return;t.deleteTexture(i.__webglTexture),n.remove(e)}(i),i.isVideoTexture&&p.delete(i),o.memory.textures--}function T(e){var i=e.target;i.removeEventListener("dispose",T),function(e){var i=n.get(e),r=n.get(e.texture);if(!e)return;void 0!==r.__webglTexture&&t.deleteTexture(r.__webglTexture);e.depthTexture&&e.depthTexture.dispose();if(e.isWebGLCubeRenderTarget)for(var s=0;s<6;s++)t.deleteFramebuffer(i.__webglFramebuffer[s]),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer[s]);else t.deleteFramebuffer(i.__webglFramebuffer),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer),i.__webglMultisampledFramebuffer&&t.deleteFramebuffer(i.__webglMultisampledFramebuffer),i.__webglColorRenderbuffer&&t.deleteRenderbuffer(i.__webglColorRenderbuffer),i.__webglDepthRenderbuffer&&t.deleteRenderbuffer(i.__webglDepthRenderbuffer);n.remove(e.texture),n.remove(e)}(i),o.memory.textures--}var M=0;function S(t,e){var r=n.get(t);if(t.isVideoTexture&&function(t){var e=o.render.frame;p.get(t)!==e&&(p.set(t,e),t.update())}(t),t.version>0&&r.__version!==t.version){var s=t.image;if(void 0===s)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");else{if(!1!==s.complete)return void O(r,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}i.activeTexture(33984+e),i.bindTexture(3553,r.__webglTexture)}function E(e,r){if(6===e.image.length){var o=n.get(e);if(e.version>0&&o.__version!==e.version){C(o,e),i.activeTexture(33984+r),i.bindTexture(34067,o.__webglTexture),t.pixelStorei(37440,e.flipY);for(var a=e&&(e.isCompressedTexture||e.image[0].isCompressedTexture),u=e.image[0]&&e.image[0].isDataTexture,c=[],d=0;d<6;d++)c[d]=a||u?u?e.image[d].image:e.image[d]:v(e.image[d],!1,!0,l);var p,f=c[0],m=g(f)||h,b=s.convert(e.format),w=s.convert(e.type),T=x(e.internalFormat,b,w);if(P(34067,e,m),a){for(d=0;d<6;d++){p=c[d].mipmaps;for(var M=0;M<p.length;M++){var S=p[M];e.format!==Zf&&e.format!==Jf?null!==b?i.compressedTexImage2D(34069+d,M,T,S.width,S.height,0,S.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):i.texImage2D(34069+d,M,T,S.width,S.height,0,b,w,S.data)}}o.__maxMipLevel=p.length-1}else{p=e.mipmaps;for(d=0;d<6;d++)if(u){i.texImage2D(34069+d,0,T,c[d].width,c[d].height,0,b,w,c[d].data);for(M=0;M<p.length;M++){var E=(S=p[M]).image[d].image;i.texImage2D(34069+d,M+1,T,E.width,E.height,0,b,w,E.data)}}else{i.texImage2D(34069+d,0,T,b,w,c[d]);for(M=0;M<p.length;M++){S=p[M];i.texImage2D(34069+d,M+1,T,b,w,S.image[d])}}o.__maxMipLevel=p.length}y(e,m)&&_(34067,e,f.width,f.height),o.__version=e.version,e.onUpdate&&e.onUpdate(e)}else i.activeTexture(33984+r),i.bindTexture(34067,o.__webglTexture)}}function L(t,e){i.activeTexture(33984+e),i.bindTexture(34067,n.get(t).__webglTexture)}var A={[If]:10497,[Yf]:33071,[Ff]:33648},D={[Nf]:9728,[Bf]:9984,[Uf]:9986,[jf]:9729,1007:9985,[Hf]:9987};function P(i,s,o){o?(t.texParameteri(i,10242,A[s.wrapS]),t.texParameteri(i,10243,A[s.wrapT]),32879!==i&&35866!==i||t.texParameteri(i,32882,A[s.wrapR]),t.texParameteri(i,10240,D[s.magFilter]),t.texParameteri(i,10241,D[s.minFilter])):(t.texParameteri(i,10242,33071),t.texParameteri(i,10243,33071),32879!==i&&35866!==i||t.texParameteri(i,32882,33071),s.wrapS===Yf&&s.wrapT===Yf||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(i,10240,b(s.magFilter)),t.texParameteri(i,10241,b(s.minFilter)),s.minFilter!==Nf&&s.minFilter!==jf&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));var a=e.get("EXT_texture_filter_anisotropic");if(a){if(s.type===Vf&&null===e.get("OES_texture_float_linear"))return;if(s.type===Xf&&null===(h||e.get("OES_texture_half_float_linear")))return;(s.anisotropy>1||n.get(s).__currentAnisotropy)&&(t.texParameterf(i,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,r.getMaxAnisotropy())),n.get(s).__currentAnisotropy=s.anisotropy)}}function C(e,i){void 0===e.__webglInit&&(e.__webglInit=!0,i.addEventListener("dispose",w),e.__webglTexture=t.createTexture(),o.memory.textures++)}function O(e,n,r){var o=3553;n.isDataTexture2DArray&&(o=35866),n.isDataTexture3D&&(o=32879),C(e,n),i.activeTexture(33984+r),i.bindTexture(o,e.__webglTexture),t.pixelStorei(37440,n.flipY),t.pixelStorei(37441,n.premultiplyAlpha),t.pixelStorei(3317,n.unpackAlignment);var a=function(t){return!h&&(t.wrapS!==Yf||t.wrapT!==Yf||t.minFilter!==Nf&&t.minFilter!==jf)}(n)&&!1===g(n.image),u=v(n.image,a,!1,c),l=g(u)||h,d=s.convert(n.format),p=s.convert(n.type),f=x(n.internalFormat,d,p);P(o,n,l);var m,b=n.mipmaps;if(n.isDepthTexture)f=6402,h?f=n.type===Vf?36012:n.type===Gf?33190:n.type===qf?35056:33189:n.type===Vf&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),n.format===Kf&&6402===f&&n.type!==Wf&&n.type!==Gf&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),n.type=Wf,p=s.convert(n.type)),n.format===Qf&&6402===f&&(f=34041,n.type!==qf&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),n.type=qf,p=s.convert(n.type))),i.texImage2D(3553,0,f,u.width,u.height,0,d,p,null);else if(n.isDataTexture)if(b.length>0&&l){for(var w=0,T=b.length;w<T;w++)m=b[w],i.texImage2D(3553,w,f,m.width,m.height,0,d,p,m.data);n.generateMipmaps=!1,e.__maxMipLevel=b.length-1}else i.texImage2D(3553,0,f,u.width,u.height,0,d,p,u.data),e.__maxMipLevel=0;else if(n.isCompressedTexture){for(w=0,T=b.length;w<T;w++)m=b[w],n.format!==Zf&&n.format!==Jf?null!==d?i.compressedTexImage2D(3553,w,f,m.width,m.height,0,m.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):i.texImage2D(3553,w,f,m.width,m.height,0,d,p,m.data);e.__maxMipLevel=b.length-1}else if(n.isDataTexture2DArray)i.texImage3D(35866,0,f,u.width,u.height,u.depth,0,d,p,u.data),e.__maxMipLevel=0;else if(n.isDataTexture3D)i.texImage3D(32879,0,f,u.width,u.height,u.depth,0,d,p,u.data),e.__maxMipLevel=0;else if(b.length>0&&l){for(w=0,T=b.length;w<T;w++)m=b[w],i.texImage2D(3553,w,f,d,p,m);n.generateMipmaps=!1,e.__maxMipLevel=b.length-1}else i.texImage2D(3553,0,f,d,p,u),e.__maxMipLevel=0;y(n,l)&&_(o,n,u.width,u.height),e.__version=n.version,n.onUpdate&&n.onUpdate(n)}function k(e,r,o,a){var h=s.convert(r.texture.format),u=s.convert(r.texture.type),l=x(r.texture.internalFormat,h,u);i.texImage2D(a,0,l,r.width,r.height,0,h,u,null),t.bindFramebuffer(36160,e),t.framebufferTexture2D(36160,o,a,n.get(r.texture).__webglTexture,0),t.bindFramebuffer(36160,null)}function R(e,i,n){if(t.bindRenderbuffer(36161,e),i.depthBuffer&&!i.stencilBuffer){var r=33189;if(n){var o=i.depthTexture;o&&o.isDepthTexture&&(o.type===Vf?r=36012:o.type===Gf&&(r=33190));var a=Y(i);t.renderbufferStorageMultisample(36161,a,r,i.width,i.height)}else t.renderbufferStorage(36161,r,i.width,i.height);t.framebufferRenderbuffer(36160,36096,36161,e)}else if(i.depthBuffer&&i.stencilBuffer){if(n){a=Y(i);t.renderbufferStorageMultisample(36161,a,35056,i.width,i.height)}else t.renderbufferStorage(36161,34041,i.width,i.height);t.framebufferRenderbuffer(36160,33306,36161,e)}else{var h=s.convert(i.texture.format),u=s.convert(i.texture.type);r=x(i.texture.internalFormat,h,u);if(n){a=Y(i);t.renderbufferStorageMultisample(36161,a,r,i.width,i.height)}else t.renderbufferStorage(36161,r,i.width,i.height)}t.bindRenderbuffer(36161,null)}function I(e){var i=n.get(e),r=!0===e.isWebGLCubeRenderTarget;if(e.depthTexture){if(r)throw new Error("target.depthTexture not supported in Cube render targets");!function(e,i){if(i&&i.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(36160,e),!i.depthTexture||!i.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");n.get(i.depthTexture).__webglTexture&&i.depthTexture.image.width===i.width&&i.depthTexture.image.height===i.height||(i.depthTexture.image.width=i.width,i.depthTexture.image.height=i.height,i.depthTexture.needsUpdate=!0),S(i.depthTexture,0);var r=n.get(i.depthTexture).__webglTexture;if(i.depthTexture.format===Kf)t.framebufferTexture2D(36160,36096,3553,r,0);else{if(i.depthTexture.format!==Qf)throw new Error("Unknown depthTexture format");t.framebufferTexture2D(36160,33306,3553,r,0)}}(i.__webglFramebuffer,e)}else if(r){i.__webglDepthbuffer=[];for(var s=0;s<6;s++)t.bindFramebuffer(36160,i.__webglFramebuffer[s]),i.__webglDepthbuffer[s]=t.createRenderbuffer(),R(i.__webglDepthbuffer[s],e,!1)}else t.bindFramebuffer(36160,i.__webglFramebuffer),i.__webglDepthbuffer=t.createRenderbuffer(),R(i.__webglDepthbuffer,e,!1);t.bindFramebuffer(36160,null)}function Y(t){return h&&t.isWebGLMultisampleRenderTarget?Math.min(d,t.samples):0}var F=!1,N=!1;this.allocateTextureUnit=function(){var t=M;return t>=u&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+u),M+=1,t},this.resetTextureUnits=function(){M=0},this.setTexture2D=S,this.setTexture2DArray=function(t,e){var r=n.get(t);t.version>0&&r.__version!==t.version?O(r,t,e):(i.activeTexture(33984+e),i.bindTexture(35866,r.__webglTexture))},this.setTexture3D=function(t,e){var r=n.get(t);t.version>0&&r.__version!==t.version?O(r,t,e):(i.activeTexture(33984+e),i.bindTexture(32879,r.__webglTexture))},this.setTextureCube=E,this.setTextureCubeDynamic=L,this.setupRenderTarget=function(e){var r=n.get(e),a=n.get(e.texture);e.addEventListener("dispose",T),a.__webglTexture=t.createTexture(),o.memory.textures++;var u=!0===e.isWebGLCubeRenderTarget,l=!0===e.isWebGLMultisampleRenderTarget,c=g(e)||h;if(!h||e.texture.format!==Jf||e.texture.type!==Vf&&e.texture.type!==Xf||(e.texture.format=Zf,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.")),u){r.__webglFramebuffer=[];for(var d=0;d<6;d++)r.__webglFramebuffer[d]=t.createFramebuffer()}else if(r.__webglFramebuffer=t.createFramebuffer(),l)if(h){r.__webglMultisampledFramebuffer=t.createFramebuffer(),r.__webglColorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,r.__webglColorRenderbuffer);var p=s.convert(e.texture.format),f=s.convert(e.texture.type),m=x(e.texture.internalFormat,p,f),v=Y(e);t.renderbufferStorageMultisample(36161,v,m,e.width,e.height),t.bindFramebuffer(36160,r.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(36160,36064,36161,r.__webglColorRenderbuffer),t.bindRenderbuffer(36161,null),e.depthBuffer&&(r.__webglDepthRenderbuffer=t.createRenderbuffer(),R(r.__webglDepthRenderbuffer,e,!0)),t.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(u){i.bindTexture(34067,a.__webglTexture),P(34067,e.texture,c);for(d=0;d<6;d++)k(r.__webglFramebuffer[d],e,36064,34069+d);y(e.texture,c)&&_(34067,e.texture,e.width,e.height),i.bindTexture(34067,null)}else i.bindTexture(3553,a.__webglTexture),P(3553,e.texture,c),k(r.__webglFramebuffer,e,36064,3553),y(e.texture,c)&&_(3553,e.texture,e.width,e.height),i.bindTexture(3553,null);e.depthBuffer&&I(e)},this.updateRenderTargetMipmap=function(t){var e=t.texture;if(y(e,g(t)||h)){var r=t.isWebGLCubeRenderTarget?34067:3553,s=n.get(e).__webglTexture;i.bindTexture(r,s),_(r,e,t.width,t.height),i.bindTexture(r,null)}},this.updateMultisampleRenderTarget=function(e){if(e.isWebGLMultisampleRenderTarget)if(h){var i=n.get(e);t.bindFramebuffer(36008,i.__webglMultisampledFramebuffer),t.bindFramebuffer(36009,i.__webglFramebuffer);var r=e.width,s=e.height,o=16384;e.depthBuffer&&(o|=256),e.stencilBuffer&&(o|=1024),t.blitFramebuffer(0,0,r,s,0,0,r,s,o,9728),t.bindFramebuffer(36160,i.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")},this.safeSetTexture2D=function(t,e){t&&t.isWebGLRenderTarget&&(!1===F&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),F=!0),t=t.texture),S(t,e)},this.safeSetTextureCube=function(t,e){t&&t.isWebGLCubeRenderTarget&&(!1===N&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),N=!0),t=t.texture),t&&t.isCubeTexture||Array.isArray(t.image)&&6===t.image.length?E(t,e):L(t,e)}}function ix(t,e,i){var n=i.isWebGL2;return{convert:function(t){var i;if(t===zf)return 5121;if(1017===t)return 32819;if(1018===t)return 32820;if(1019===t)return 33635;if(1010===t)return 5120;if(1011===t)return 5122;if(t===Wf)return 5123;if(1013===t)return 5124;if(t===Gf)return 5125;if(t===Vf)return 5126;if(t===Xf)return n?5131:null!==(i=e.get("OES_texture_half_float"))?i.HALF_FLOAT_OES:null;if(1021===t)return 6406;if(t===Jf)return 6407;if(t===Zf)return 6408;if(1024===t)return 6409;if(1025===t)return 6410;if(t===Kf)return 6402;if(t===Qf)return 34041;if(1028===t)return 6403;if(1029===t)return 36244;if(1030===t)return 33319;if(1031===t)return 33320;if(1032===t)return 36248;if(1033===t)return 36249;if(33776===t||33777===t||33778===t||33779===t){if(null===(i=e.get("WEBGL_compressed_texture_s3tc")))return null;if(33776===t)return i.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===t)return i.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(33778===t)return i.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===t)return i.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(35840===t||35841===t||35842===t||35843===t){if(null===(i=e.get("WEBGL_compressed_texture_pvrtc")))return null;if(35840===t)return i.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===t)return i.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===t)return i.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===t)return i.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===t)return null!==(i=e.get("WEBGL_compressed_texture_etc1"))?i.COMPRESSED_RGB_ETC1_WEBGL:null;if((37492===t||37496===t)&&null!==(i=e.get("WEBGL_compressed_texture_etc"))){if(37492===t)return i.COMPRESSED_RGB8_ETC2;if(37496===t)return i.COMPRESSED_RGBA8_ETC2_EAC}return 37808===t||37809===t||37810===t||37811===t||37812===t||37813===t||37814===t||37815===t||37816===t||37817===t||37818===t||37819===t||37820===t||37821===t||37840===t||37841===t||37842===t||37843===t||37844===t||37845===t||37846===t||37847===t||37848===t||37849===t||37850===t||37851===t||37852===t||37853===t?null!==(i=e.get("WEBGL_compressed_texture_astc"))?t:null:36492===t?null!==(i=e.get("EXT_texture_compression_bptc"))?t:null:t===qf?n?34042:null!==(i=e.get("WEBGL_depth_texture"))?i.UNSIGNED_INT_24_8_WEBGL:null:void 0}}}function nx(t){Zg.call(this),this.cameras=t||[]}function rx(){$m.call(this),this.type="Group"}function sx(t,e){var i=this,n=null,r=1,s=null,o="local-floor",a=null,h=[],u=new Map,l=new Zg;l.layers.enable(1),l.viewport=new bm;var c=new Zg;c.layers.enable(2),c.viewport=new bm;var d=new nx([l,c]);d.layers.enable(1),d.layers.enable(2);var p=null,f=null;function m(t){var e=u.get(t.inputSource);e&&(e.targetRay&&e.targetRay.dispatchEvent({type:t.type}),e.grip&&e.grip.dispatchEvent({type:t.type}))}function v(){u.forEach((function(t,e){t.targetRay&&(t.targetRay.dispatchEvent({type:"disconnected",data:e}),t.targetRay.visible=!1),t.grip&&(t.grip.dispatchEvent({type:"disconnected",data:e}),t.grip.visible=!1)})),u.clear(),t.setFramebuffer(null),t.setRenderTarget(t.getRenderTarget()),T.stop(),i.isPresenting=!1,i.dispatchEvent({type:"sessionend"})}function g(t){s=t,T.setContext(n),T.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}function y(t){for(var e=n.inputSources,i=0;i<h.length;i++)u.set(e[i],h[i]);for(i=0;i<t.removed.length;i++){var r=t.removed[i];(s=u.get(r))&&(s.targetRay&&s.targetRay.dispatchEvent({type:"disconnected",data:r}),s.grip&&s.grip.dispatchEvent({type:"disconnected",data:r}),u.delete(r))}for(i=0;i<t.added.length;i++){var s;r=t.added[i];(s=u.get(r))&&(s.targetRay&&s.targetRay.dispatchEvent({type:"connected",data:r}),s.grip&&s.grip.dispatchEvent({type:"connected",data:r}))}}this.enabled=!1,this.isPresenting=!1,this.getController=function(t){var e=h[t];return void 0===e&&(e={},h[t]=e),void 0===e.targetRay&&(e.targetRay=new rx,e.targetRay.matrixAutoUpdate=!1,e.targetRay.visible=!1),e.targetRay},this.getControllerGrip=function(t){var e=h[t];return void 0===e&&(e={},h[t]=e),void 0===e.grip&&(e.grip=new rx,e.grip.matrixAutoUpdate=!1,e.grip.visible=!1),e.grip},this.setFramebufferScaleFactor=function(t){r=t,1==i.isPresenting&&console.warn("WebXRManager: Cannot change framebuffer scale while presenting VR content")},this.setReferenceSpaceType=function(t){o=t},this.getReferenceSpace=function(){return s},this.getSession=function(){return n},this.setSession=function(t){if(null!==(n=t)){n.addEventListener("select",m),n.addEventListener("selectstart",m),n.addEventListener("selectend",m),n.addEventListener("squeeze",m),n.addEventListener("squeezestart",m),n.addEventListener("squeezeend",m),n.addEventListener("end",v);var i=e.getContextAttributes(),s={antialias:i.antialias,alpha:i.alpha,depth:i.depth,stencil:i.stencil,framebufferScaleFactor:r},a=new XRWebGLLayer(n,e,s);n.updateRenderState({baseLayer:a}),n.requestReferenceSpace(o).then(g),n.addEventListener("inputsourceschange",y)}};var _=new Lm,x=new Lm;function b(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.getInverse(t.matrixWorld)}this.getCamera=function(t){d.near=c.near=l.near=t.near,d.far=c.far=l.far=t.far,p===d.near&&f===d.far||(n.updateRenderState({depthNear:d.near,depthFar:d.far}),p=d.near,f=d.far);var e=t.parent,i=d.cameras;b(d,e);for(var r=0;r<i.length;r++)b(i[r],e);t.matrixWorld.copy(d.matrixWorld);for(var s=t.children,o=(r=0,s.length);r<o;r++)s[r].updateMatrixWorld(!0);return function(t,e,i){_.setFromMatrixPosition(e.matrixWorld),x.setFromMatrixPosition(i.matrixWorld);var n=_.distanceTo(x),r=e.projectionMatrix.elements,s=i.projectionMatrix.elements,o=r[14]/(r[10]-1),a=r[14]/(r[10]+1),h=(r[9]+1)/r[5],u=(r[9]-1)/r[5],l=(r[8]-1)/r[0],c=(s[8]+1)/s[0],d=o*l,p=o*c,f=n/(-l+c),m=f*-l;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(m),t.translateZ(f),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.getInverse(t.matrixWorld);var v=o+f,g=a+f,y=d-m,b=p+(n-m),w=h*a/g*v,T=u*a/g*v;t.projectionMatrix.makePerspective(y,b,w,T,v,g)}(d,l,c),d};var w=null;var T=new sy;T.setAnimationLoop((function(e,i){if(null!==(a=i.getViewerPose(s))){var r=a.views,o=n.renderState.baseLayer;t.setFramebuffer(o.framebuffer);for(var u=0;u<r.length;u++){var l=r[u],c=o.getViewport(l),p=d.cameras[u];p.matrix.fromArray(l.transform.matrix),p.projectionMatrix.fromArray(l.projectionMatrix),p.viewport.set(c.x,c.y,c.width,c.height),0===u&&d.matrix.copy(p.matrix)}}var f=n.inputSources;for(u=0;u<h.length;u++){var m=h[u],v=f[u],g=null,y=null;v&&(m.targetRay&&null!==(g=i.getPose(v.targetRaySpace,s))&&(m.targetRay.matrix.fromArray(g.transform.matrix),m.targetRay.matrix.decompose(m.targetRay.position,m.targetRay.rotation,m.targetRay.scale)),m.grip&&v.gripSpace&&null!==(y=i.getPose(v.gripSpace,s))&&(m.grip.matrix.fromArray(y.transform.matrix),m.grip.matrix.decompose(m.grip.position,m.grip.rotation,m.grip.scale))),m.targetRay&&(m.targetRay.visible=null!==g),m.grip&&(m.grip.visible=null!==y)}w&&w(e,i)})),this.setAnimationLoop=function(t){w=t},this.dispose=function(){}}function ox(t){var e=void 0!==(t=t||{}).canvas?t.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),i=void 0!==t.context?t.context:null,n=void 0!==t.alpha&&t.alpha,r=void 0===t.depth||t.depth,s=void 0===t.stencil||t.stencil,o=void 0!==t.antialias&&t.antialias,a=void 0===t.premultipliedAlpha||t.premultipliedAlpha,h=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,u=void 0!==t.powerPreference?t.powerPreference:"default",l=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat,c=null,d=null;this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.outputEncoding=sm,this.physicallyCorrectLights=!1,this.toneMapping=1,this.toneMappingExposure=1,this.toneMappingWhitePoint=1,this.maxMorphTargets=8,this.maxMorphNormals=4;var p,f,m,v,g,y,_,x,b,w,T,M,S,E,L,A,D,P,C=this,O=!1,k=null,R=0,I=0,Y=null,F=null,N=-1,B={geometry:null,program:null,wireframe:!1},U=null,j=null,H=new bm,z=new bm,W=null,G=e.width,V=e.height,X=1,q=null,J=null,Z=new bm(0,0,G,V),K=new bm(0,0,G,V),Q=!1,$=new ny,tt=new fy,et=!1,it=!1,nt=new Im,rt=new Lm;function st(){return null===Y?X:1}try{var ot={alpha:n,depth:r,stencil:s,antialias:o,premultipliedAlpha:a,preserveDrawingBuffer:h,powerPreference:u,failIfMajorPerformanceCaveat:l,xrCompatible:!0};if(e.addEventListener("webglcontextlost",lt,!1),e.addEventListener("webglcontextrestored",ct,!1),null===(p=i||e.getContext("webgl",ot)||e.getContext("experimental-webgl",ot)))throw null!==e.getContext("webgl")?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.");void 0===p.getShaderPrecisionFormat&&(p.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(t){throw console.error("THREE.WebGLRenderer: "+t.message),t}function at(){f=new my(p),!1===(m=new py(p,f,t)).isWebGL2&&(f.get("WEBGL_depth_texture"),f.get("OES_texture_float"),f.get("OES_texture_half_float"),f.get("OES_texture_half_float_linear"),f.get("OES_standard_derivatives"),f.get("OES_element_index_uint"),f.get("ANGLE_instanced_arrays")),f.get("OES_texture_float_linear"),P=new ix(p,f,m),(v=new tx(p,f,m)).scissor(z.copy(K).multiplyScalar(X).floor()),v.viewport(H.copy(Z).multiplyScalar(X).floor()),g=new yy(p),y=new U_,_=new ex(p,f,v,y,m,P,g),x=new oy(p,m),b=new vy(p,x,g),w=new by(p,b,x,g),L=new xy(p),T=new B_(C,f,m),M=new W_,S=new Z_,E=new cy(C,v,w,a),A=new dy(p,f,g,m),D=new gy(p,f,g,m),g.programs=T.programs,C.capabilities=m,C.extensions=f,C.properties=y,C.renderLists=M,C.state=v,C.info=g}at();var ht=new sx(C,p);this.xr=ht;var ut=new $_(C,w,m.maxTextureSize);function lt(t){t.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),O=!0}function ct(){console.log("THREE.WebGLRenderer: Context Restored."),O=!1,at()}function dt(t){var e=t.target;e.removeEventListener("dispose",dt),function(t){pt(t),y.remove(t)}(e)}function pt(t){var e=y.get(t).program;t.program=void 0,void 0!==e&&T.releaseProgram(e)}this.shadowMap=ut,this.getContext=function(){return p},this.getContextAttributes=function(){return p.getContextAttributes()},this.forceContextLoss=function(){var t=f.get("WEBGL_lose_context");t&&t.loseContext()},this.forceContextRestore=function(){var t=f.get("WEBGL_lose_context");t&&t.restoreContext()},this.getPixelRatio=function(){return X},this.setPixelRatio=function(t){void 0!==t&&(X=t,this.setSize(G,V,!1))},this.getSize=function(t){return void 0===t&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),t=new vm),t.set(G,V)},this.setSize=function(t,i,n){ht.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(G=t,V=i,e.width=Math.floor(t*X),e.height=Math.floor(i*X),!1!==n&&(e.style.width=t+"px",e.style.height=i+"px"),this.setViewport(0,0,t,i))},this.getDrawingBufferSize=function(t){return void 0===t&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),t=new vm),t.set(G*X,V*X).floor()},this.setDrawingBufferSize=function(t,i,n){G=t,V=i,X=n,e.width=Math.floor(t*n),e.height=Math.floor(i*n),this.setViewport(0,0,t,i)},this.getCurrentViewport=function(t){return void 0===t&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),t=new bm),t.copy(H)},this.getViewport=function(t){return t.copy(Z)},this.setViewport=function(t,e,i,n){t.isVector4?Z.set(t.x,t.y,t.z,t.w):Z.set(t,e,i,n),v.viewport(H.copy(Z).multiplyScalar(X).floor())},this.getScissor=function(t){return t.copy(K)},this.setScissor=function(t,e,i,n){t.isVector4?K.set(t.x,t.y,t.z,t.w):K.set(t,e,i,n),v.scissor(z.copy(K).multiplyScalar(X).floor())},this.getScissorTest=function(){return Q},this.setScissorTest=function(t){v.setScissorTest(Q=t)},this.setOpaqueSort=function(t){q=t},this.setTransparentSort=function(t){J=t},this.getClearColor=function(){return E.getClearColor()},this.setClearColor=function(){E.setClearColor.apply(E,arguments)},this.getClearAlpha=function(){return E.getClearAlpha()},this.setClearAlpha=function(){E.setClearAlpha.apply(E,arguments)},this.clear=function(t,e,i){var n=0;(void 0===t||t)&&(n|=16384),(void 0===e||e)&&(n|=256),(void 0===i||i)&&(n|=1024),p.clear(n)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener("webglcontextlost",lt,!1),e.removeEventListener("webglcontextrestored",ct,!1),M.dispose(),S.dispose(),y.dispose(),w.dispose(),ht.dispose(),vt.stop(),this.forceContextLoss()},this.renderBufferImmediate=function(t,e){v.initAttributes();var i=y.get(t);t.hasPositions&&!i.position&&(i.position=p.createBuffer()),t.hasNormals&&!i.normal&&(i.normal=p.createBuffer()),t.hasUvs&&!i.uv&&(i.uv=p.createBuffer()),t.hasColors&&!i.color&&(i.color=p.createBuffer());var n=e.getAttributes();t.hasPositions&&(p.bindBuffer(34962,i.position),p.bufferData(34962,t.positionArray,35048),v.enableAttribute(n.position),p.vertexAttribPointer(n.position,3,5126,!1,0,0)),t.hasNormals&&(p.bindBuffer(34962,i.normal),p.bufferData(34962,t.normalArray,35048),v.enableAttribute(n.normal),p.vertexAttribPointer(n.normal,3,5126,!1,0,0)),t.hasUvs&&(p.bindBuffer(34962,i.uv),p.bufferData(34962,t.uvArray,35048),v.enableAttribute(n.uv),p.vertexAttribPointer(n.uv,2,5126,!1,0,0)),t.hasColors&&(p.bindBuffer(34962,i.color),p.bufferData(34962,t.colorArray,35048),v.enableAttribute(n.color),p.vertexAttribPointer(n.color,3,5126,!1,0,0)),v.disableUnusedAttributes(),p.drawArrays(4,0,t.count),t.count=0};var ft=new tv;this.renderBufferDirect=function(t,e,i,n,r,s){null===e&&(e=ft);var o=r.isMesh&&r.matrixWorld.determinant()<0,a=bt(t,e,n,r);v.setMaterial(n,o);var h=!1;B.geometry===i.id&&B.program===a.id&&B.wireframe===(!0===n.wireframe)||(B.geometry=i.id,B.program=a.id,B.wireframe=!0===n.wireframe,h=!0),(n.morphTargets||n.morphNormals)&&(L.update(r,i,n,a),h=!0);var u=i.index,l=i.attributes.position;if(null===u){if(void 0===l||0===l.count)return}else if(0===u.count)return;var c,d=1;!0===n.wireframe&&(u=b.getWireframeAttribute(i),d=2);var g=A;null!==u&&(c=x.get(u),(g=D).setIndex(c)),h&&(!function(t,e,i,n){if(!1===m.isWebGL2&&(t.isInstancedMesh||e.isInstancedBufferGeometry)&&null===f.get("ANGLE_instanced_arrays"))return;v.initAttributes();var r=e.attributes,s=n.getAttributes(),o=i.defaultAttributeValues;for(var a in s){var h=s[a];if(h>=0){var u=r[a];if(void 0!==u){var l=u.normalized,c=u.itemSize;if(void 0===(T=x.get(u)))continue;var d=T.buffer,g=T.type,y=T.bytesPerElement;if(u.isInterleavedBufferAttribute){var _=u.data,b=_.stride,w=u.offset;_&&_.isInstancedInterleavedBuffer?(v.enableAttributeAndDivisor(h,_.meshPerAttribute),void 0===e.maxInstancedCount&&(e.maxInstancedCount=_.meshPerAttribute*_.count)):v.enableAttribute(h),p.bindBuffer(34962,d),p.vertexAttribPointer(h,c,g,l,b*y,w*y)}else u.isInstancedBufferAttribute?(v.enableAttributeAndDivisor(h,u.meshPerAttribute),void 0===e.maxInstancedCount&&(e.maxInstancedCount=u.meshPerAttribute*u.count)):v.enableAttribute(h),p.bindBuffer(34962,d),p.vertexAttribPointer(h,c,g,l,0,0)}else if("instanceMatrix"===a){var T;if(void 0===(T=x.get(t.instanceMatrix)))continue;d=T.buffer,g=T.type;v.enableAttributeAndDivisor(h+0,1),v.enableAttributeAndDivisor(h+1,1),v.enableAttributeAndDivisor(h+2,1),v.enableAttributeAndDivisor(h+3,1),p.bindBuffer(34962,d),p.vertexAttribPointer(h+0,4,g,!1,64,0),p.vertexAttribPointer(h+1,4,g,!1,64,16),p.vertexAttribPointer(h+2,4,g,!1,64,32),p.vertexAttribPointer(h+3,4,g,!1,64,48)}else if(void 0!==o){var M=o[a];if(void 0!==M)switch(M.length){case 2:p.vertexAttrib2fv(h,M);break;case 3:p.vertexAttrib3fv(h,M);break;case 4:p.vertexAttrib4fv(h,M);break;default:p.vertexAttrib1fv(h,M)}}}}v.disableUnusedAttributes()}(r,i,n,a),null!==u&&p.bindBuffer(34963,c.buffer));var y=null!==u?u.count:l.count,_=i.drawRange.start*d,w=i.drawRange.count*d,T=null!==s?s.start*d:0,M=null!==s?s.count*d:1/0,S=Math.max(_,T),E=Math.min(y,_+w,T+M)-1,P=Math.max(0,E-S+1);if(0!==P){if(r.isMesh)!0===n.wireframe?(v.setLineWidth(n.wireframeLinewidth*st()),g.setMode(1)):g.setMode(4);else if(r.isLine){var C=n.linewidth;void 0===C&&(C=1),v.setLineWidth(C*st()),r.isLineSegments?g.setMode(1):r.isLineLoop?g.setMode(2):g.setMode(3)}else r.isPoints?g.setMode(0):r.isSprite&&g.setMode(4);r.isInstancedMesh?g.renderInstances(i,S,P,r.count):i.isInstancedBufferGeometry?g.renderInstances(i,S,P,i.maxInstancedCount):g.render(S,P)}},this.compile=function(t,e){(d=S.get(t,e)).init(),t.traverse((function(t){t.isLight&&(d.pushLight(t),t.castShadow&&d.pushShadow(t))})),d.setupLights(e);var i={};t.traverse((function(e){if(e.material)if(Array.isArray(e.material))for(var n=0;n<e.material.length;n++)e.material[n].uuid in i==!1&&(xt(e.material[n],t,e),i[e.material[n].uuid]=!0);else e.material.uuid in i==!1&&(xt(e.material,t,e),i[e.material.uuid]=!0)}))};var mt=null;var vt=new sy;function gt(t,e,i,n){if(!1!==t.visible){if(t.layers.test(e.layers))if(t.isGroup)i=t.renderOrder;else if(t.isLOD)!0===t.autoUpdate&&t.update(e);else if(t.isLight)d.pushLight(t),t.castShadow&&d.pushShadow(t);else if(t.isSprite){if(!t.frustumCulled||$.intersectsSprite(t)){n&&rt.setFromMatrixPosition(t.matrixWorld).applyMatrix4(nt);var r=w.update(t);(s=t.material).visible&&c.push(t,r,s,i,rt.z,null)}}else if(t.isImmediateRenderObject)n&&rt.setFromMatrixPosition(t.matrixWorld).applyMatrix4(nt),c.push(t,null,t.material,i,rt.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.frame!==g.render.frame&&(t.skeleton.update(),t.skeleton.frame=g.render.frame),!t.frustumCulled||$.intersectsObject(t))){n&&rt.setFromMatrixPosition(t.matrixWorld).applyMatrix4(nt);r=w.update(t);var s=t.material;if(Array.isArray(s))for(var o=r.groups,a=0,h=o.length;a<h;a++){var u=o[a],l=s[u.materialIndex];l&&l.visible&&c.push(t,r,l,i,rt.z,u)}else s.visible&&c.push(t,r,s,i,rt.z,null)}var p=t.children;for(a=0,h=p.length;a<h;a++)gt(p[a],e,i,n)}}function yt(t,e,i,n){for(var r=0,s=t.length;r<s;r++){var o=t[r],a=o.object,h=o.geometry,u=void 0===n?o.material:n,l=o.group;if(i.isArrayCamera){j=i;for(var c=i.cameras,p=0,f=c.length;p<f;p++){var m=c[p];a.layers.test(m.layers)&&(v.viewport(H.copy(m.viewport)),d.setupLights(m),_t(a,e,m,h,u,l))}}else j=null,_t(a,e,i,h,u,l)}}function _t(t,e,i,n,r,s){if(t.onBeforeRender(C,e,i,n,r,s),d=S.get(e,j||i),t.modelViewMatrix.multiplyMatrices(i.matrixWorldInverse,t.matrixWorld),t.normalMatrix.getNormalMatrix(t.modelViewMatrix),t.isImmediateRenderObject){var o=bt(i,e,r,t);v.setMaterial(r),B.geometry=null,B.program=null,B.wireframe=!1,function(t,e){t.render((function(t){C.renderBufferImmediate(t,e)}))}(t,o)}else C.renderBufferDirect(i,e,n,r,t,s);t.onAfterRender(C,e,i,n,r,s),d=S.get(e,j||i)}function xt(t,e,i){var n=y.get(t),r=d.state.lights,s=d.state.shadowsArray,o=r.state.version,a=T.getParameters(t,r.state,s,e,tt.numPlanes,tt.numIntersection,i),h=T.getProgramCacheKey(a),u=n.program,l=!0;if(void 0===u)t.addEventListener("dispose",dt);else if(u.cacheKey!==h)pt(t);else if(n.lightsStateVersion!==o)n.lightsStateVersion=o,l=!1;else{if(void 0!==a.shaderID)return;l=!1}l&&(u=T.acquireProgram(a,h),n.program=u,n.uniforms=a.uniforms,n.environment=t.isMeshStandardMaterial?e.environment:null,n.outputEncoding=C.outputEncoding,t.program=u);var c=u.getAttributes();if(t.morphTargets){t.numSupportedMorphTargets=0;for(var p=0;p<C.maxMorphTargets;p++)c["morphTarget"+p]>=0&&t.numSupportedMorphTargets++}if(t.morphNormals){t.numSupportedMorphNormals=0;for(p=0;p<C.maxMorphNormals;p++)c["morphNormal"+p]>=0&&t.numSupportedMorphNormals++}var f=n.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(n.numClippingPlanes=tt.numPlanes,n.numIntersection=tt.numIntersection,f.clippingPlanes=tt.uniform),n.fog=e.fog,n.needsLights=function(t){return t.isMeshLambertMaterial||t.isMeshToonMaterial||t.isMeshPhongMaterial||t.isMeshStandardMaterial||t.isShadowMaterial||t.isShaderMaterial&&!0===t.lights}(t),n.lightsStateVersion=o,n.needsLights&&(f.ambientLightColor.value=r.state.ambient,f.lightProbe.value=r.state.probe,f.directionalLights.value=r.state.directional,f.directionalLightShadows.value=r.state.directionalShadow,f.spotLights.value=r.state.spot,f.spotLightShadows.value=r.state.spotShadow,f.rectAreaLights.value=r.state.rectArea,f.pointLights.value=r.state.point,f.pointLightShadows.value=r.state.pointShadow,f.hemisphereLights.value=r.state.hemi,f.directionalShadowMap.value=r.state.directionalShadowMap,f.directionalShadowMatrix.value=r.state.directionalShadowMatrix,f.spotShadowMap.value=r.state.spotShadowMap,f.spotShadowMatrix.value=r.state.spotShadowMatrix,f.pointShadowMap.value=r.state.pointShadowMap,f.pointShadowMatrix.value=r.state.pointShadowMatrix);var m=n.program.getUniforms(),v=__.seqWithValue(m.seq,f);n.uniformsList=v}function bt(t,e,i,n){_.resetTextureUnits();var r=e.fog,s=i.isMeshStandardMaterial?e.environment:null,o=y.get(i),a=d.state.lights;if(et&&(it||t!==U)){var h=t===U&&i.id===N;tt.setState(i.clippingPlanes,i.clipIntersection,i.clipShadows,t,o,h)}i.version===o.__version?void 0===o.program||i.fog&&o.fog!==r||o.environment!==s||o.needsLights&&o.lightsStateVersion!==a.state.version?xt(i,e,n):void 0===o.numClippingPlanes||o.numClippingPlanes===tt.numPlanes&&o.numIntersection===tt.numIntersection?o.outputEncoding!==C.outputEncoding&&xt(i,e,n):xt(i,e,n):(xt(i,e,n),o.__version=i.version);var u,l,c=!1,f=!1,g=!1,x=o.program,b=x.getUniforms(),w=o.uniforms;if(v.useProgram(x.program)&&(c=!0,f=!0,g=!0),i.id!==N&&(N=i.id,f=!0),c||U!==t){if(b.setValue(p,"projectionMatrix",t.projectionMatrix),m.logarithmicDepthBuffer&&b.setValue(p,"logDepthBufFC",2/(Math.log(t.far+1)/Math.LN2)),U!==t&&(U=t,f=!0,g=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshStandardMaterial||i.envMap){var T=b.map.cameraPosition;void 0!==T&&T.setValue(p,rt.setFromMatrixPosition(t.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial)&&b.setValue(p,"isOrthographic",!0===t.isOrthographicCamera),(i.isMeshPhongMaterial||i.isMeshToonMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.skinning)&&b.setValue(p,"viewMatrix",t.matrixWorldInverse)}if(i.skinning){b.setOptional(p,n,"bindMatrix"),b.setOptional(p,n,"bindMatrixInverse");var M=n.skeleton;if(M){var S=M.bones;if(m.floatVertexTextures){if(void 0===M.boneTexture){var E=Math.sqrt(4*S.length);E=mm.ceilPowerOfTwo(E),E=Math.max(E,4);var L=new Float32Array(E*E*4);L.set(M.boneMatrices);var A=new ty(L,E,E,Zf,Vf);M.boneMatrices=L,M.boneTexture=A,M.boneTextureSize=E}b.setValue(p,"boneTexture",M.boneTexture,_),b.setValue(p,"boneTextureSize",M.boneTextureSize)}else b.setOptional(p,M,"boneMatrices")}}return(f||o.receiveShadow!==n.receiveShadow)&&(o.receiveShadow=n.receiveShadow,b.setValue(p,"receiveShadow",n.receiveShadow)),f&&(b.setValue(p,"toneMappingExposure",C.toneMappingExposure),b.setValue(p,"toneMappingWhitePoint",C.toneMappingWhitePoint),o.needsLights&&(l=g,(u=w).ambientLightColor.needsUpdate=l,u.lightProbe.needsUpdate=l,u.directionalLights.needsUpdate=l,u.directionalLightShadows.needsUpdate=l,u.pointLights.needsUpdate=l,u.pointLightShadows.needsUpdate=l,u.spotLights.needsUpdate=l,u.spotLightShadows.needsUpdate=l,u.rectAreaLights.needsUpdate=l,u.hemisphereLights.needsUpdate=l),r&&i.fog&&function(t,e){t.fogColor.value.copy(e.color),e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)}(w,r),i.isMeshBasicMaterial?wt(w,i):i.isMeshLambertMaterial?(wt(w,i),function(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}(w,i)):i.isMeshToonMaterial?(wt(w,i),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.gradientMap&&(t.gradientMap.value=e.gradientMap);e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(w,i)):i.isMeshPhongMaterial?(wt(w,i),function(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(w,i)):i.isMeshStandardMaterial?(wt(w,i,s),i.isMeshPhysicalMaterial?function(t,e,i){Tt(t,e,i),t.reflectivity.value=e.reflectivity,t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.sheen&&t.sheen.value.copy(e.sheen);e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap);e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap);e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&t.clearcoatNormalScale.value.negate());t.transparency.value=e.transparency}(w,i,s):Tt(w,i,s)):i.isMeshMatcapMaterial?(wt(w,i),function(t,e){e.matcap&&(t.matcap.value=e.matcap);e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(w,i)):i.isMeshDepthMaterial?(wt(w,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(w,i)):i.isMeshDistanceMaterial?(wt(w,i),function(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias);t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}(w,i)):i.isMeshNormalMaterial?(wt(w,i),function(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1));e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate());e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}(w,i)):i.isLineBasicMaterial?(function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}(w,i),i.isLineDashedMaterial&&function(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}(w,i)):i.isPointsMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*X,t.scale.value=.5*V,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);var i;e.map?i=e.map:e.alphaMap&&(i=e.alphaMap);void 0!==i&&(!0===i.matrixAutoUpdate&&i.updateMatrix(),t.uvTransform.value.copy(i.matrix))}(w,i):i.isSpriteMaterial?function(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map);e.alphaMap&&(t.alphaMap.value=e.alphaMap);var i;e.map?i=e.map:e.alphaMap&&(i=e.alphaMap);void 0!==i&&(!0===i.matrixAutoUpdate&&i.updateMatrix(),t.uvTransform.value.copy(i.matrix))}(w,i):i.isShadowMaterial&&(w.color.value.copy(i.color),w.opacity.value=i.opacity),void 0!==w.ltc_1&&(w.ltc_1.value=ry.LTC_1),void 0!==w.ltc_2&&(w.ltc_2.value=ry.LTC_2),__.upload(p,o.uniformsList,w,_),i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)),i.isShaderMaterial&&!0===i.uniformsNeedUpdate&&(__.upload(p,o.uniformsList,w,_),i.uniformsNeedUpdate=!1),i.isSpriteMaterial&&b.setValue(p,"center",n.center),b.setValue(p,"modelViewMatrix",n.modelViewMatrix),b.setValue(p,"normalMatrix",n.normalMatrix),b.setValue(p,"modelMatrix",n.matrixWorld),x}function wt(t,e,i){t.opacity.value=e.opacity,e.color&&t.diffuse.value.copy(e.color),e.emissive&&t.emissive.value.copy(e.emissive).multiplyScalar(e.emissiveIntensity),e.map&&(t.map.value=e.map),e.alphaMap&&(t.alphaMap.value=e.alphaMap),e.specularMap&&(t.specularMap.value=e.specularMap);var n,r,s=e.envMap||i;s&&(t.envMap.value=s,t.flipEnvMap.value=s.isCubeTexture?-1:1,t.reflectivity.value=e.reflectivity,t.refractionRatio.value=e.refractionRatio,t.maxMipLevel.value=y.get(s).__maxMipLevel),e.lightMap&&(t.lightMap.value=e.lightMap,t.lightMapIntensity.value=e.lightMapIntensity),e.aoMap&&(t.aoMap.value=e.aoMap,t.aoMapIntensity.value=e.aoMapIntensity),e.map?n=e.map:e.specularMap?n=e.specularMap:e.displacementMap?n=e.displacementMap:e.normalMap?n=e.normalMap:e.bumpMap?n=e.bumpMap:e.roughnessMap?n=e.roughnessMap:e.metalnessMap?n=e.metalnessMap:e.alphaMap?n=e.alphaMap:e.emissiveMap&&(n=e.emissiveMap),void 0!==n&&(n.isWebGLRenderTarget&&(n=n.texture),!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix)),e.aoMap?r=e.aoMap:e.lightMap&&(r=e.lightMap),void 0!==r&&(r.isWebGLRenderTarget&&(r=r.texture),!0===r.matrixAutoUpdate&&r.updateMatrix(),t.uv2Transform.value.copy(r.matrix))}function Tt(t,e,i){t.roughness.value=e.roughness,t.metalness.value=e.metalness,e.roughnessMap&&(t.roughnessMap.value=e.roughnessMap),e.metalnessMap&&(t.metalnessMap.value=e.metalnessMap),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale,1===e.side&&(t.bumpScale.value*=-1)),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale),1===e.side&&t.normalScale.value.negate()),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias),(e.envMap||i)&&(t.envMapIntensity.value=e.envMapIntensity)}vt.setAnimationLoop((function(t){ht.isPresenting||mt&&mt(t)})),"undefined"!=typeof window&&vt.setContext(window),this.setAnimationLoop=function(t){mt=t,ht.setAnimationLoop(t),vt.start()},this.render=function(t,e){var i,n;if(void 0!==arguments[2]&&(console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead."),i=arguments[2]),void 0!==arguments[3]&&(console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead."),n=arguments[3]),e&&e.isCamera){if(!O){B.geometry=null,B.program=null,B.wireframe=!1,N=-1,U=null,!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),ht.enabled&&ht.isPresenting&&(e=ht.getCamera(e)),(d=S.get(t,e)).init(),t.onBeforeRender(C,t,e,i||Y),nt.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),$.setFromProjectionMatrix(nt),it=this.localClippingEnabled,et=tt.init(this.clippingPlanes,it,e),(c=M.get(t,e)).init(),gt(t,e,0,C.sortObjects),c.finish(),!0===C.sortObjects&&c.sort(q,J),et&&tt.beginShadows();var r=d.state.shadowsArray;ut.render(r,t,e),d.setupLights(e),et&&tt.endShadows(),this.info.autoReset&&this.info.reset(),void 0!==i&&this.setRenderTarget(i),E.render(c,t,e,n);var s=c.opaque,o=c.transparent;if(t.overrideMaterial){var a=t.overrideMaterial;s.length&&yt(s,t,e,a),o.length&&yt(o,t,e,a)}else s.length&&yt(s,t,e),o.length&&yt(o,t,e);t.onAfterRender(C,t,e),null!==Y&&(_.updateRenderTargetMipmap(Y),_.updateMultisampleRenderTarget(Y)),v.buffers.depth.setTest(!0),v.buffers.depth.setMask(!0),v.buffers.color.setMask(!0),v.setPolygonOffset(!1),c=null,d=null}}else console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.")},this.setFramebuffer=function(t){k!==t&&null===Y&&p.bindFramebuffer(36160,t),k=t},this.getActiveCubeFace=function(){return R},this.getActiveMipmapLevel=function(){return I},this.getRenderTarget=function(){return Y},this.setRenderTarget=function(t,e,i){Y=t,R=e,I=i,t&&void 0===y.get(t).__webglFramebuffer&&_.setupRenderTarget(t);var n=k,r=!1;if(t){var s=y.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(n=s[e||0],r=!0):n=t.isWebGLMultisampleRenderTarget?y.get(t).__webglMultisampledFramebuffer:s,H.copy(t.viewport),z.copy(t.scissor),W=t.scissorTest}else H.copy(Z).multiplyScalar(X).floor(),z.copy(K).multiplyScalar(X).floor(),W=Q;if(F!==n&&(p.bindFramebuffer(36160,n),F=n),v.viewport(H),v.scissor(z),v.setScissorTest(W),r){var o=y.get(t.texture);p.framebufferTexture2D(36160,36064,34069+(e||0),o.__webglTexture,i||0)}},this.readRenderTargetPixels=function(t,e,i,n,r,s,o){if(t&&t.isWebGLRenderTarget){var a=y.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==o&&(a=a[o]),a){var h=!1;a!==F&&(p.bindFramebuffer(36160,a),h=!0);try{var u=t.texture,l=u.format,c=u.type;if(l!==Zf&&P.convert(l)!==p.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!(c===zf||P.convert(c)===p.getParameter(35738)||c===Vf&&(m.isWebGL2||f.get("OES_texture_float")||f.get("WEBGL_color_buffer_float"))||c===Xf&&(m.isWebGL2?f.get("EXT_color_buffer_float"):f.get("EXT_color_buffer_half_float"))))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");36053===p.checkFramebufferStatus(36160)?e>=0&&e<=t.width-n&&i>=0&&i<=t.height-r&&p.readPixels(e,i,n,r,P.convert(l),P.convert(c),s):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{h&&p.bindFramebuffer(36160,F)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")},this.copyFramebufferToTexture=function(t,e,i){void 0===i&&(i=0);var n=Math.pow(2,-i),r=Math.floor(e.image.width*n),s=Math.floor(e.image.height*n),o=P.convert(e.format);_.setTexture2D(e,0),p.copyTexImage2D(3553,i,o,t.x,t.y,r,s,0),v.unbindTexture()},this.copyTextureToTexture=function(t,e,i,n){var r=e.image.width,s=e.image.height,o=P.convert(i.format),a=P.convert(i.type);_.setTexture2D(i,0),e.isDataTexture?p.texSubImage2D(3553,n||0,t.x,t.y,r,s,o,a,e.image.data):p.texSubImage2D(3553,n||0,t.x,t.y,o,a,e.image),v.unbindTexture()},this.initTexture=function(t){_.setTexture2D(t,0),v.unbindTexture()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function ax(t,e){this.name="",this.color=new Wv(t),this.density=void 0!==e?e:25e-5}function hx(t,e,i){this.name="",this.color=new Wv(t),this.near=void 0!==e?e:1,this.far=void 0!==i?i:1e3}function ux(t,e){this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=um,this.updateRange={offset:0,count:-1},this.version=0}nx.prototype=Object.assign(Object.create(Zg.prototype),{constructor:nx,isArrayCamera:!0}),rx.prototype=Object.assign(Object.create($m.prototype),{constructor:rx,isGroup:!0}),Object.assign(sx.prototype,cm.prototype),Object.assign(ax.prototype,{isFogExp2:!0,clone:function(){return new ax(this.color,this.density)},toJSON:function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}),Object.assign(hx.prototype,{isFog:!0,clone:function(){return new hx(this.color,this.near,this.far)},toJSON:function(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}),Object.defineProperty(ux.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(ux.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setUsage:function(t){return this.usage=t,this},copy:function(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this},copyAt:function(t,e,i){t*=this.stride,i*=e.stride;for(var n=0,r=this.stride;n<r;n++)this.array[t+n]=e.array[i+n];return this},set:function(t,e){return void 0===e&&(e=0),this.array.set(t,e),this},clone:function(){return(new this.constructor).copy(this)},onUpload:function(t){return this.onUploadCallback=t,this}});var lx,cx=new Lm;function dx(t,e,i,n){this.data=t,this.itemSize=e,this.offset=i,this.normalized=!0===n}function px(t){Zv.call(this),this.type="SpriteMaterial",this.color=new Wv(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(t)}Object.defineProperties(dx.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}}),Object.assign(dx.prototype,{isInterleavedBufferAttribute:!0,applyMatrix4:function(t){for(var e=0,i=this.data.count;e<i;e++)cx.x=this.getX(e),cx.y=this.getY(e),cx.z=this.getZ(e),cx.applyMatrix4(t),this.setXYZ(e,cx.x,cx.y,cx.z);return this},setX:function(t,e){return this.data.array[t*this.data.stride+this.offset]=e,this},setY:function(t,e){return this.data.array[t*this.data.stride+this.offset+1]=e,this},setZ:function(t,e){return this.data.array[t*this.data.stride+this.offset+2]=e,this},setW:function(t,e){return this.data.array[t*this.data.stride+this.offset+3]=e,this},getX:function(t){return this.data.array[t*this.data.stride+this.offset]},getY:function(t){return this.data.array[t*this.data.stride+this.offset+1]},getZ:function(t){return this.data.array[t*this.data.stride+this.offset+2]},getW:function(t){return this.data.array[t*this.data.stride+this.offset+3]},setXY:function(t,e,i){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=i,this},setXYZ:function(t,e,i,n){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=i,this.data.array[t+2]=n,this},setXYZW:function(t,e,i,n,r){return t=t*this.data.stride+this.offset,this.data.array[t+0]=e,this.data.array[t+1]=i,this.data.array[t+2]=n,this.data.array[t+3]=r,this}}),px.prototype=Object.create(Zv.prototype),px.prototype.constructor=px,px.prototype.isSpriteMaterial=!0,px.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this};var fx=new Lm,mx=new Lm,vx=new Lm,gx=new vm,yx=new vm,_x=new Im,xx=new Lm,bx=new Lm,wx=new Lm,Tx=new vm,Mx=new vm,Sx=new vm;function Ex(t){if($m.call(this),this.type="Sprite",void 0===lx){lx=new yg;var e=new ux(new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),5);lx.setIndex([0,1,2,0,2,3]),lx.setAttribute("position",new dx(e,3,0,!1)),lx.setAttribute("uv",new dx(e,2,3,!1))}this.geometry=lx,this.material=void 0!==t?t:new px,this.center=new vm(.5,.5)}function Lx(t,e,i,n,r,s){gx.subVectors(t,i).addScalar(.5).multiply(n),void 0!==r?(yx.x=s*gx.x-r*gx.y,yx.y=r*gx.x+s*gx.y):yx.copy(gx),t.copy(e),t.x+=yx.x,t.y+=yx.y,t.applyMatrix4(_x)}Ex.prototype=Object.assign(Object.create($m.prototype),{constructor:Ex,isSprite:!0,raycast:function(t,e){null===t.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),mx.setFromMatrixScale(this.matrixWorld),_x.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),vx.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&mx.multiplyScalar(-vx.z);var i,n,r=this.material.rotation;0!==r&&(n=Math.cos(r),i=Math.sin(r));var s=this.center;Lx(xx.set(-.5,-.5,0),vx,s,mx,i,n),Lx(bx.set(.5,-.5,0),vx,s,mx,i,n),Lx(wx.set(.5,.5,0),vx,s,mx,i,n),Tx.set(0,0),Mx.set(1,0),Sx.set(1,1);var o=t.ray.intersectTriangle(xx,bx,wx,!1,fx);if(null!==o||(Lx(bx.set(-.5,.5,0),vx,s,mx,i,n),Mx.set(0,1),null!==(o=t.ray.intersectTriangle(xx,wx,bx,!1,fx)))){var a=t.ray.origin.distanceTo(fx);a<t.near||a>t.far||e.push({distance:a,point:fx.clone(),uv:Uv.getUV(fx,xx,bx,wx,Tx,Mx,Sx,new vm),face:null,object:this})}},clone:function(){return new this.constructor(this.material).copy(this)},copy:function(t){return $m.prototype.copy.call(this,t),void 0!==t.center&&this.center.copy(t.center),this}});var Ax=new Lm,Dx=new Lm;function Px(){$m.call(this),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}function Cx(t,e){t&&t.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead."),Yg.call(this,t,e),this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new Im,this.bindMatrixInverse=new Im}Px.prototype=Object.assign(Object.create($m.prototype),{constructor:Px,isLOD:!0,copy:function(t){$m.prototype.copy.call(this,t,!1);for(var e=t.levels,i=0,n=e.length;i<n;i++){var r=e[i];this.addLevel(r.object.clone(),r.distance)}return this.autoUpdate=t.autoUpdate,this},addLevel:function(t,e){void 0===e&&(e=0),e=Math.abs(e);for(var i=this.levels,n=0;n<i.length&&!(e<i[n].distance);n++);return i.splice(n,0,{distance:e,object:t}),this.add(t),this},getCurrentLevel:function(){return this._currentLevel},getObjectForDistance:function(t){var e=this.levels;if(e.length>0){for(var i=1,n=e.length;i<n&&!(t<e[i].distance);i++);return e[i-1].object}return null},raycast:function(t,e){if(this.levels.length>0){Ax.setFromMatrixPosition(this.matrixWorld);var i=t.ray.origin.distanceTo(Ax);this.getObjectForDistance(i).raycast(t,e)}},update:function(t){var e=this.levels;if(e.length>1){Ax.setFromMatrixPosition(t.matrixWorld),Dx.setFromMatrixPosition(this.matrixWorld);var i=Ax.distanceTo(Dx)/t.zoom;e[0].object.visible=!0;for(var n=1,r=e.length;n<r&&i>=e[n].distance;n++)e[n-1].object.visible=!1,e[n].object.visible=!0;for(this._currentLevel=n-1;n<r;n++)e[n].object.visible=!1}},toJSON:function(t){var e=$m.prototype.toJSON.call(this,t);!1===this.autoUpdate&&(e.object.autoUpdate=!1),e.object.levels=[];for(var i=this.levels,n=0,r=i.length;n<r;n++){var s=i[n];e.object.levels.push({object:s.object.uuid,distance:s.distance})}return e}}),Cx.prototype=Object.assign(Object.create(Yg.prototype),{constructor:Cx,isSkinnedMesh:!0,bind:function(t,e){this.skeleton=t,void 0===e&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.getInverse(e)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){for(var t=new bm,e=this.geometry.attributes.skinWeight,i=0,n=e.count;i<n;i++){t.x=e.getX(i),t.y=e.getY(i),t.z=e.getZ(i),t.w=e.getW(i);var r=1/t.manhattanLength();r!==1/0?t.multiplyScalar(r):t.set(1,0,0,0),e.setXYZW(i,t.x,t.y,t.z,t.w)}},updateMatrixWorld:function(t){Yg.prototype.updateMatrixWorld.call(this,t),"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)},clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}});var Ox=new Im,kx=new Im;function Rx(t,e){if(t=t||[],this.bones=t.slice(0),this.boneMatrices=new Float32Array(16*this.bones.length),this.frame=-1,void 0===e)this.calculateInverses();else if(this.bones.length===e.length)this.boneInverses=e.slice(0);else{console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[];for(var i=0,n=this.bones.length;i<n;i++)this.boneInverses.push(new Im)}}function Ix(){$m.call(this),this.type="Bone"}Object.assign(Rx.prototype,{calculateInverses:function(){this.boneInverses=[];for(var t=0,e=this.bones.length;t<e;t++){var i=new Im;this.bones[t]&&i.getInverse(this.bones[t].matrixWorld),this.boneInverses.push(i)}},pose:function(){var t,e,i;for(e=0,i=this.bones.length;e<i;e++)(t=this.bones[e])&&t.matrixWorld.getInverse(this.boneInverses[e]);for(e=0,i=this.bones.length;e<i;e++)(t=this.bones[e])&&(t.parent&&t.parent.isBone?(t.matrix.getInverse(t.parent.matrixWorld),t.matrix.multiply(t.matrixWorld)):t.matrix.copy(t.matrixWorld),t.matrix.decompose(t.position,t.quaternion,t.scale))},update:function(){for(var t=this.bones,e=this.boneInverses,i=this.boneMatrices,n=this.boneTexture,r=0,s=t.length;r<s;r++){var o=t[r]?t[r].matrixWorld:kx;Ox.multiplyMatrices(o,e[r]),Ox.toArray(i,16*r)}void 0!==n&&(n.needsUpdate=!0)},clone:function(){return new Rx(this.bones,this.boneInverses)},getBoneByName:function(t){for(var e=0,i=this.bones.length;e<i;e++){var n=this.bones[e];if(n.name===t)return n}},dispose:function(){this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=void 0)}}),Ix.prototype=Object.assign(Object.create($m.prototype),{constructor:Ix,isBone:!0});var Yx=new Im,Fx=new Im,Nx=[],Bx=new Yg;function Ux(t,e,i){Yg.call(this,t,e),this.instanceMatrix=new $v(new Float32Array(16*i),16),this.count=i,this.frustumCulled=!1}function jx(t){Zv.call(this),this.type="LineBasicMaterial",this.color=new Wv(16777215),this.linewidth=1,this.linecap="round",this.linejoin="round",this.setValues(t)}Ux.prototype=Object.assign(Object.create(Yg.prototype),{constructor:Ux,isInstancedMesh:!0,getMatrixAt:function(t,e){e.fromArray(this.instanceMatrix.array,16*t)},raycast:function(t,e){var i=this.matrixWorld,n=this.count;if(Bx.geometry=this.geometry,Bx.material=this.material,void 0!==Bx.material)for(var r=0;r<n;r++)this.getMatrixAt(r,Yx),Fx.multiplyMatrices(i,Yx),Bx.matrixWorld=Fx,Bx.raycast(t,Nx),Nx.length>0&&(Nx[0].instanceId=r,Nx[0].object=this,e.push(Nx[0]),Nx.length=0)},setMatrixAt:function(t,e){e.toArray(this.instanceMatrix.array,16*t)},updateMorphTargets:function(){}}),jx.prototype=Object.create(Zv.prototype),jx.prototype.constructor=jx,jx.prototype.isLineBasicMaterial=!0,jx.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.color.copy(t.color),this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this};var Hx=new Lm,zx=new Lm,Wx=new Im,Gx=new Sv,Vx=new gv;function Xx(t,e,i){1===i&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead."),$m.call(this),this.type="Line",this.geometry=void 0!==t?t:new yg,this.material=void 0!==e?e:new jx}Xx.prototype=Object.assign(Object.create($m.prototype),{constructor:Xx,isLine:!0,computeLineDistances:function(){var t=this.geometry;if(t.isBufferGeometry)if(null===t.index){for(var e=t.attributes.position,i=[0],n=1,r=e.count;n<r;n++)Hx.fromBufferAttribute(e,n-1),zx.fromBufferAttribute(e,n),i[n]=i[n-1],i[n]+=Hx.distanceTo(zx);t.setAttribute("lineDistance",new ag(i,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(t.isGeometry){var s=t.vertices;(i=t.lineDistances)[0]=0;for(n=1,r=s.length;n<r;n++)i[n]=i[n-1],i[n]+=s[n-1].distanceTo(s[n])}return this},raycast:function(t,e){var i=this.geometry,n=this.matrixWorld,r=t.params.Line.threshold;if(null===i.boundingSphere&&i.computeBoundingSphere(),Vx.copy(i.boundingSphere),Vx.applyMatrix4(n),Vx.radius+=r,!1!==t.ray.intersectsSphere(Vx)){Wx.getInverse(n),Gx.copy(t.ray).applyMatrix4(Wx);var s=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=s*s,a=new Lm,h=new Lm,u=new Lm,l=new Lm,c=this&&this.isLineSegments?2:1;if(i.isBufferGeometry){var d=i.index,p=i.attributes.position.array;if(null!==d)for(var f=d.array,m=0,v=f.length-1;m<v;m+=c){var g=f[m],y=f[m+1];if(a.fromArray(p,3*g),h.fromArray(p,3*y),!(Gx.distanceSqToSegment(a,h,l,u)>o))l.applyMatrix4(this.matrixWorld),(b=t.ray.origin.distanceTo(l))<t.near||b>t.far||e.push({distance:b,point:u.clone().applyMatrix4(this.matrixWorld),index:m,face:null,faceIndex:null,object:this})}else for(m=0,v=p.length/3-1;m<v;m+=c){if(a.fromArray(p,3*m),h.fromArray(p,3*m+3),!(Gx.distanceSqToSegment(a,h,l,u)>o))l.applyMatrix4(this.matrixWorld),(b=t.ray.origin.distanceTo(l))<t.near||b>t.far||e.push({distance:b,point:u.clone().applyMatrix4(this.matrixWorld),index:m,face:null,faceIndex:null,object:this})}}else if(i.isGeometry){var _=i.vertices,x=_.length;for(m=0;m<x-1;m+=c){var b;if(!(Gx.distanceSqToSegment(_[m],_[m+1],l,u)>o))l.applyMatrix4(this.matrixWorld),(b=t.ray.origin.distanceTo(l))<t.near||b>t.far||e.push({distance:b,point:u.clone().applyMatrix4(this.matrixWorld),index:m,face:null,faceIndex:null,object:this})}}}},clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}});var qx=new Lm,Jx=new Lm;function Zx(t,e){Xx.call(this,t,e),this.type="LineSegments"}function Kx(t,e){Xx.call(this,t,e),this.type="LineLoop"}function Qx(t){Zv.call(this),this.type="PointsMaterial",this.color=new Wv(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.morphTargets=!1,this.setValues(t)}Zx.prototype=Object.assign(Object.create(Xx.prototype),{constructor:Zx,isLineSegments:!0,computeLineDistances:function(){var t=this.geometry;if(t.isBufferGeometry)if(null===t.index){for(var e=t.attributes.position,i=[],n=0,r=e.count;n<r;n+=2)qx.fromBufferAttribute(e,n),Jx.fromBufferAttribute(e,n+1),i[n]=0===n?0:i[n-1],i[n+1]=i[n]+qx.distanceTo(Jx);t.setAttribute("lineDistance",new ag(i,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(t.isGeometry){var s=t.vertices;for(i=t.lineDistances,n=0,r=s.length;n<r;n+=2)qx.copy(s[n]),Jx.copy(s[n+1]),i[n]=0===n?0:i[n-1],i[n+1]=i[n]+qx.distanceTo(Jx)}return this}}),Kx.prototype=Object.assign(Object.create(Xx.prototype),{constructor:Kx,isLineLoop:!0}),Qx.prototype=Object.create(Zv.prototype),Qx.prototype.constructor=Qx,Qx.prototype.isPointsMaterial=!0,Qx.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.morphTargets=t.morphTargets,this};var $x=new Im,tb=new Sv,eb=new gv,ib=new Lm;function nb(t,e){$m.call(this),this.type="Points",this.geometry=void 0!==t?t:new yg,this.material=void 0!==e?e:new Qx,this.updateMorphTargets()}function rb(t,e,i,n,r,s,o){var a=tb.distanceSqToPoint(t);if(a<i){var h=new Lm;tb.closestPointToPoint(t,h),h.applyMatrix4(n);var u=r.ray.origin.distanceTo(h);if(u<r.near||u>r.far)return;s.push({distance:u,distanceToRay:Math.sqrt(a),point:h,index:e,face:null,object:o})}}function sb(t,e,i,n,r,s,o,a,h){xm.call(this,t,e,i,n,r,s,o,a,h),this.format=void 0!==o?o:Jf,this.minFilter=void 0!==s?s:jf,this.magFilter=void 0!==r?r:jf,this.generateMipmaps=!1}function ob(t,e,i,n,r,s,o,a,h,u,l,c){xm.call(this,null,s,o,a,h,u,n,r,l,c),this.image={width:e,height:i},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}function ab(t,e,i,n,r,s,o,a,h){xm.call(this,t,e,i,n,r,s,o,a,h),this.needsUpdate=!0}function hb(t,e,i,n,r,s,o,a,h,u){if((u=void 0!==u?u:Kf)!==Kf&&u!==Qf)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===i&&u===Kf&&(i=Wf),void 0===i&&u===Qf&&(i=qf),xm.call(this,null,n,r,s,o,a,u,i,h),this.image={width:t,height:e},this.magFilter=void 0!==o?o:Nf,this.minFilter=void 0!==a?a:Nf,this.flipY=!1,this.generateMipmaps=!1}function ub(t){yg.call(this),this.type="WireframeGeometry";var e,i,n,r,s,o,a,h,u,l,c=[],d=[0,0],p={},f=["a","b","c"];if(t&&t.isGeometry){var m=t.faces;for(e=0,n=m.length;e<n;e++){var v=m[e];for(i=0;i<3;i++)a=v[f[i]],h=v[f[(i+1)%3]],d[0]=Math.min(a,h),d[1]=Math.max(a,h),void 0===p[u=d[0]+","+d[1]]&&(p[u]={index1:d[0],index2:d[1]})}for(u in p)o=p[u],l=t.vertices[o.index1],c.push(l.x,l.y,l.z),l=t.vertices[o.index2],c.push(l.x,l.y,l.z)}else if(t&&t.isBufferGeometry){var g,y,_,x,b,w,T;if(l=new Lm,null!==t.index){for(g=t.attributes.position,y=t.index,0===(_=t.groups).length&&(_=[{start:0,count:y.count,materialIndex:0}]),r=0,s=_.length;r<s;++r)for(e=b=(x=_[r]).start,n=b+x.count;e<n;e+=3)for(i=0;i<3;i++)a=y.getX(e+i),h=y.getX(e+(i+1)%3),d[0]=Math.min(a,h),d[1]=Math.max(a,h),void 0===p[u=d[0]+","+d[1]]&&(p[u]={index1:d[0],index2:d[1]});for(u in p)o=p[u],l.fromBufferAttribute(g,o.index1),c.push(l.x,l.y,l.z),l.fromBufferAttribute(g,o.index2),c.push(l.x,l.y,l.z)}else for(e=0,n=(g=t.attributes.position).count/3;e<n;e++)for(i=0;i<3;i++)w=3*e+i,l.fromBufferAttribute(g,w),c.push(l.x,l.y,l.z),T=3*e+(i+1)%3,l.fromBufferAttribute(g,T),c.push(l.x,l.y,l.z)}this.setAttribute("position",new ag(c,3))}function lb(t,e,i){zg.call(this),this.type="ParametricGeometry",this.parameters={func:t,slices:e,stacks:i},this.fromBufferGeometry(new cb(t,e,i)),this.mergeVertices()}function cb(t,e,i){yg.call(this),this.type="ParametricBufferGeometry",this.parameters={func:t,slices:e,stacks:i};var n,r,s=[],o=[],a=[],h=[],u=1e-5,l=new Lm,c=new Lm,d=new Lm,p=new Lm,f=new Lm;t.length<3&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");var m=e+1;for(n=0;n<=i;n++){var v=n/i;for(r=0;r<=e;r++){var g=r/e;t(g,v,c),o.push(c.x,c.y,c.z),g-u>=0?(t(g-u,v,d),p.subVectors(c,d)):(t(g+u,v,d),p.subVectors(d,c)),v-u>=0?(t(g,v-u,d),f.subVectors(c,d)):(t(g,v+u,d),f.subVectors(d,c)),l.crossVectors(p,f).normalize(),a.push(l.x,l.y,l.z),h.push(g,v)}}for(n=0;n<i;n++)for(r=0;r<e;r++){var y=n*m+r,_=n*m+r+1,x=(n+1)*m+r+1,b=(n+1)*m+r;s.push(y,_,b),s.push(_,x,b)}this.setIndex(s),this.setAttribute("position",new ag(o,3)),this.setAttribute("normal",new ag(a,3)),this.setAttribute("uv",new ag(h,2))}function db(t,e,i,n){zg.call(this),this.type="PolyhedronGeometry",this.parameters={vertices:t,indices:e,radius:i,detail:n},this.fromBufferGeometry(new pb(t,e,i,n)),this.mergeVertices()}function pb(t,e,i,n){yg.call(this),this.type="PolyhedronBufferGeometry",this.parameters={vertices:t,indices:e,radius:i,detail:n},i=i||1;var r=[],s=[];function o(t,e,i,n){var r,s,o=Math.pow(2,n),h=[];for(r=0;r<=o;r++){h[r]=[];var u=t.clone().lerp(i,r/o),l=e.clone().lerp(i,r/o),c=o-r;for(s=0;s<=c;s++)h[r][s]=0===s&&r===o?u:u.clone().lerp(l,s/c)}for(r=0;r<o;r++)for(s=0;s<2*(o-r)-1;s++){var d=Math.floor(s/2);s%2==0?(a(h[r][d+1]),a(h[r+1][d]),a(h[r][d])):(a(h[r][d+1]),a(h[r+1][d+1]),a(h[r+1][d]))}}function a(t){r.push(t.x,t.y,t.z)}function h(e,i){var n=3*e;i.x=t[n+0],i.y=t[n+1],i.z=t[n+2]}function u(t,e,i,n){n<0&&1===t.x&&(s[e]=t.x-1),0===i.x&&0===i.z&&(s[e]=n/2/Math.PI+.5)}function l(t){return Math.atan2(t.z,-t.x)}!function(t){for(var i=new Lm,n=new Lm,r=new Lm,s=0;s<e.length;s+=3)h(e[s+0],i),h(e[s+1],n),h(e[s+2],r),o(i,n,r,t)}(n=n||0),function(t){for(var e=new Lm,i=0;i<r.length;i+=3)e.x=r[i+0],e.y=r[i+1],e.z=r[i+2],e.normalize().multiplyScalar(t),r[i+0]=e.x,r[i+1]=e.y,r[i+2]=e.z}(i),function(){for(var t=new Lm,e=0;e<r.length;e+=3){t.x=r[e+0],t.y=r[e+1],t.z=r[e+2];var i=l(t)/2/Math.PI+.5,n=(o=t,Math.atan2(-o.y,Math.sqrt(o.x*o.x+o.z*o.z))/Math.PI+.5);s.push(i,1-n)}var o;(function(){for(var t=new Lm,e=new Lm,i=new Lm,n=new Lm,o=new vm,a=new vm,h=new vm,c=0,d=0;c<r.length;c+=9,d+=6){t.set(r[c+0],r[c+1],r[c+2]),e.set(r[c+3],r[c+4],r[c+5]),i.set(r[c+6],r[c+7],r[c+8]),o.set(s[d+0],s[d+1]),a.set(s[d+2],s[d+3]),h.set(s[d+4],s[d+5]),n.copy(t).add(e).add(i).divideScalar(3);var p=l(n);u(o,d+0,t,p),u(a,d+2,e,p),u(h,d+4,i,p)}})(),function(){for(var t=0;t<s.length;t+=6){var e=s[t+0],i=s[t+2],n=s[t+4],r=Math.max(e,i,n),o=Math.min(e,i,n);r>.9&&o<.1&&(e<.2&&(s[t+0]+=1),i<.2&&(s[t+2]+=1),n<.2&&(s[t+4]+=1))}}()}(),this.setAttribute("position",new ag(r,3)),this.setAttribute("normal",new ag(r.slice(),3)),this.setAttribute("uv",new ag(s,2)),0===n?this.computeVertexNormals():this.normalizeNormals()}function fb(t,e){zg.call(this),this.type="TetrahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new mb(t,e)),this.mergeVertices()}function mb(t,e){pb.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],t,e),this.type="TetrahedronBufferGeometry",this.parameters={radius:t,detail:e}}function vb(t,e){zg.call(this),this.type="OctahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new gb(t,e)),this.mergeVertices()}function gb(t,e){pb.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],t,e),this.type="OctahedronBufferGeometry",this.parameters={radius:t,detail:e}}function yb(t,e){zg.call(this),this.type="IcosahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new _b(t,e)),this.mergeVertices()}function _b(t,e){var i=(1+Math.sqrt(5))/2,n=[-1,i,0,1,i,0,-1,-i,0,1,-i,0,0,-1,i,0,1,i,0,-1,-i,0,1,-i,i,0,-1,i,0,1,-i,0,-1,-i,0,1];pb.call(this,n,[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],t,e),this.type="IcosahedronBufferGeometry",this.parameters={radius:t,detail:e}}function xb(t,e){zg.call(this),this.type="DodecahedronGeometry",this.parameters={radius:t,detail:e},this.fromBufferGeometry(new bb(t,e)),this.mergeVertices()}function bb(t,e){var i=(1+Math.sqrt(5))/2,n=1/i,r=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-n,-i,0,-n,i,0,n,-i,0,n,i,-n,-i,0,-n,i,0,n,-i,0,n,i,0,-i,0,-n,i,0,-n,-i,0,n,i,0,n];pb.call(this,r,[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],t,e),this.type="DodecahedronBufferGeometry",this.parameters={radius:t,detail:e}}function wb(t,e,i,n,r,s){zg.call(this),this.type="TubeGeometry",this.parameters={path:t,tubularSegments:e,radius:i,radialSegments:n,closed:r},void 0!==s&&console.warn("THREE.TubeGeometry: taper has been removed.");var o=new Tb(t,e,i,n,r);this.tangents=o.tangents,this.normals=o.normals,this.binormals=o.binormals,this.fromBufferGeometry(o),this.mergeVertices()}function Tb(t,e,i,n,r){yg.call(this),this.type="TubeBufferGeometry",this.parameters={path:t,tubularSegments:e,radius:i,radialSegments:n,closed:r},e=e||64,i=i||1,n=n||8,r=r||!1;var s=t.computeFrenetFrames(e,r);this.tangents=s.tangents,this.normals=s.normals,this.binormals=s.binormals;var o,a,h=new Lm,u=new Lm,l=new vm,c=new Lm,d=[],p=[],f=[],m=[];function v(r){c=t.getPointAt(r/e,c);var o=s.normals[r],l=s.binormals[r];for(a=0;a<=n;a++){var f=a/n*Math.PI*2,m=Math.sin(f),v=-Math.cos(f);u.x=v*o.x+m*l.x,u.y=v*o.y+m*l.y,u.z=v*o.z+m*l.z,u.normalize(),p.push(u.x,u.y,u.z),h.x=c.x+i*u.x,h.y=c.y+i*u.y,h.z=c.z+i*u.z,d.push(h.x,h.y,h.z)}}!function(){for(o=0;o<e;o++)v(o);v(!1===r?e:0),function(){for(o=0;o<=e;o++)for(a=0;a<=n;a++)l.x=o/e,l.y=a/n,f.push(l.x,l.y)}(),function(){for(a=1;a<=e;a++)for(o=1;o<=n;o++){var t=(n+1)*(a-1)+(o-1),i=(n+1)*a+(o-1),r=(n+1)*a+o,s=(n+1)*(a-1)+o;m.push(t,i,s),m.push(i,r,s)}}()}(),this.setIndex(m),this.setAttribute("position",new ag(d,3)),this.setAttribute("normal",new ag(p,3)),this.setAttribute("uv",new ag(f,2))}function Mb(t,e,i,n,r,s,o){zg.call(this),this.type="TorusKnotGeometry",this.parameters={radius:t,tube:e,tubularSegments:i,radialSegments:n,p:r,q:s},void 0!==o&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead."),this.fromBufferGeometry(new Sb(t,e,i,n,r,s)),this.mergeVertices()}function Sb(t,e,i,n,r,s){yg.call(this),this.type="TorusKnotBufferGeometry",this.parameters={radius:t,tube:e,tubularSegments:i,radialSegments:n,p:r,q:s},t=t||1,e=e||.4,i=Math.floor(i)||64,n=Math.floor(n)||8,r=r||2,s=s||3;var o,a,h=[],u=[],l=[],c=[],d=new Lm,p=new Lm,f=new Lm,m=new Lm,v=new Lm,g=new Lm,y=new Lm;for(o=0;o<=i;++o){var _=o/i*r*Math.PI*2;for(L(_,r,s,t,f),L(_+.01,r,s,t,m),g.subVectors(m,f),y.addVectors(m,f),v.crossVectors(g,y),y.crossVectors(v,g),v.normalize(),y.normalize(),a=0;a<=n;++a){var x=a/n*Math.PI*2,b=-e*Math.cos(x),w=e*Math.sin(x);d.x=f.x+(b*y.x+w*v.x),d.y=f.y+(b*y.y+w*v.y),d.z=f.z+(b*y.z+w*v.z),u.push(d.x,d.y,d.z),p.subVectors(d,f).normalize(),l.push(p.x,p.y,p.z),c.push(o/i),c.push(a/n)}}for(a=1;a<=i;a++)for(o=1;o<=n;o++){var T=(n+1)*(a-1)+(o-1),M=(n+1)*a+(o-1),S=(n+1)*a+o,E=(n+1)*(a-1)+o;h.push(T,M,E),h.push(M,S,E)}function L(t,e,i,n,r){var s=Math.cos(t),o=Math.sin(t),a=i/e*t,h=Math.cos(a);r.x=n*(2+h)*.5*s,r.y=n*(2+h)*o*.5,r.z=n*Math.sin(a)*.5}this.setIndex(h),this.setAttribute("position",new ag(u,3)),this.setAttribute("normal",new ag(l,3)),this.setAttribute("uv",new ag(c,2))}function Eb(t,e,i,n,r){zg.call(this),this.type="TorusGeometry",this.parameters={radius:t,tube:e,radialSegments:i,tubularSegments:n,arc:r},this.fromBufferGeometry(new Lb(t,e,i,n,r)),this.mergeVertices()}function Lb(t,e,i,n,r){yg.call(this),this.type="TorusBufferGeometry",this.parameters={radius:t,tube:e,radialSegments:i,tubularSegments:n,arc:r},t=t||1,e=e||.4,i=Math.floor(i)||8,n=Math.floor(n)||6,r=r||2*Math.PI;var s,o,a=[],h=[],u=[],l=[],c=new Lm,d=new Lm,p=new Lm;for(s=0;s<=i;s++)for(o=0;o<=n;o++){var f=o/n*r,m=s/i*Math.PI*2;d.x=(t+e*Math.cos(m))*Math.cos(f),d.y=(t+e*Math.cos(m))*Math.sin(f),d.z=e*Math.sin(m),h.push(d.x,d.y,d.z),c.x=t*Math.cos(f),c.y=t*Math.sin(f),p.subVectors(d,c).normalize(),u.push(p.x,p.y,p.z),l.push(o/n),l.push(s/i)}for(s=1;s<=i;s++)for(o=1;o<=n;o++){var v=(n+1)*s+o-1,g=(n+1)*(s-1)+o-1,y=(n+1)*(s-1)+o,_=(n+1)*s+o;a.push(v,g,_),a.push(g,y,_)}this.setIndex(a),this.setAttribute("position",new ag(h,3)),this.setAttribute("normal",new ag(u,3)),this.setAttribute("uv",new ag(l,2))}nb.prototype=Object.assign(Object.create($m.prototype),{constructor:nb,isPoints:!0,raycast:function(t,e){var i=this.geometry,n=this.matrixWorld,r=t.params.Points.threshold;if(null===i.boundingSphere&&i.computeBoundingSphere(),eb.copy(i.boundingSphere),eb.applyMatrix4(n),eb.radius+=r,!1!==t.ray.intersectsSphere(eb)){$x.getInverse(n),tb.copy(t.ray).applyMatrix4($x);var s=r/((this.scale.x+this.scale.y+this.scale.z)/3),o=s*s;if(i.isBufferGeometry){var a=i.index,h=i.attributes.position.array;if(null!==a)for(var u=a.array,l=0,c=u.length;l<c;l++){var d=u[l];ib.fromArray(h,3*d),rb(ib,d,o,n,t,e,this)}else{l=0;for(var p=h.length/3;l<p;l++)ib.fromArray(h,3*l),rb(ib,l,o,n,t,e,this)}}else{var f=i.vertices;for(l=0,p=f.length;l<p;l++)rb(f[l],l,o,n,t,e,this)}}},updateMorphTargets:function(){var t,e,i,n=this.geometry;if(n.isBufferGeometry){var r=n.morphAttributes,s=Object.keys(r);if(s.length>0){var o=r[s[0]];if(void 0!==o)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},t=0,e=o.length;t<e;t++)i=o[t].name||String(t),this.morphTargetInfluences.push(0),this.morphTargetDictionary[i]=t}}else{var a=n.morphTargets;void 0!==a&&a.length>0&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}},clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),sb.prototype=Object.assign(Object.create(xm.prototype),{constructor:sb,isVideoTexture:!0,update:function(){var t=this.image;t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}),ob.prototype=Object.create(xm.prototype),ob.prototype.constructor=ob,ob.prototype.isCompressedTexture=!0,ab.prototype=Object.create(xm.prototype),ab.prototype.constructor=ab,ab.prototype.isCanvasTexture=!0,hb.prototype=Object.create(xm.prototype),hb.prototype.constructor=hb,hb.prototype.isDepthTexture=!0,ub.prototype=Object.create(yg.prototype),ub.prototype.constructor=ub,lb.prototype=Object.create(zg.prototype),lb.prototype.constructor=lb,cb.prototype=Object.create(yg.prototype),cb.prototype.constructor=cb,db.prototype=Object.create(zg.prototype),db.prototype.constructor=db,pb.prototype=Object.create(yg.prototype),pb.prototype.constructor=pb,fb.prototype=Object.create(zg.prototype),fb.prototype.constructor=fb,mb.prototype=Object.create(pb.prototype),mb.prototype.constructor=mb,vb.prototype=Object.create(zg.prototype),vb.prototype.constructor=vb,gb.prototype=Object.create(pb.prototype),gb.prototype.constructor=gb,yb.prototype=Object.create(zg.prototype),yb.prototype.constructor=yb,_b.prototype=Object.create(pb.prototype),_b.prototype.constructor=_b,xb.prototype=Object.create(zg.prototype),xb.prototype.constructor=xb,bb.prototype=Object.create(pb.prototype),bb.prototype.constructor=bb,wb.prototype=Object.create(zg.prototype),wb.prototype.constructor=wb,Tb.prototype=Object.create(yg.prototype),Tb.prototype.constructor=Tb,Tb.prototype.toJSON=function(){var t=yg.prototype.toJSON.call(this);return t.path=this.parameters.path.toJSON(),t},Mb.prototype=Object.create(zg.prototype),Mb.prototype.constructor=Mb,Sb.prototype=Object.create(yg.prototype),Sb.prototype.constructor=Sb,Eb.prototype=Object.create(zg.prototype),Eb.prototype.constructor=Eb,Lb.prototype=Object.create(yg.prototype),Lb.prototype.constructor=Lb;var Ab=function(t,e,i){i=i||2;var n,r,s,o,a,h,u,l=e&&e.length,c=l?e[0]*i:t.length,d=Db(t,0,c,i,!0),p=[];if(!d||d.next===d.prev)return p;if(l&&(d=function(t,e,i,n){var r,s,o,a=[];for(r=0,s=e.length;r<s;r++)(o=Db(t,e[r]*n,r<s-1?e[r+1]*n:t.length,n,!1))===o.next&&(o.steiner=!0),a.push(Bb(o));for(a.sort(Yb),r=0;r<a.length;r++)Fb(a[r],i),i=Pb(i,i.next);return i}(t,e,d,i)),t.length>80*i){n=s=t[0],r=o=t[1];for(var f=i;f<c;f+=i)(a=t[f])<n&&(n=a),(h=t[f+1])<r&&(r=h),a>s&&(s=a),h>o&&(o=h);u=0!==(u=Math.max(s-n,o-r))?1/u:0}return Cb(d,p,i,n,r,u),p};function Db(t,e,i,n,r){var s,o;if(r===function(t,e,i,n){for(var r=0,s=e,o=i-n;s<i;s+=n)r+=(t[o]-t[s])*(t[s+1]+t[o+1]),o=s;return r}(t,e,i,n)>0)for(s=e;s<i;s+=n)o=Xb(s,t[s],t[s+1],o);else for(s=i-n;s>=e;s-=n)o=Xb(s,t[s],t[s+1],o);return o&&zb(o,o.next)&&(qb(o),o=o.next),o}function Pb(t,e){if(!t)return t;e||(e=t);var i,n=t;do{if(i=!1,n.steiner||!zb(n,n.next)&&0!==Hb(n.prev,n,n.next))n=n.next;else{if(qb(n),(n=e=n.prev)===n.next)break;i=!0}}while(i||n!==e);return e}function Cb(t,e,i,n,r,s,o){if(t){!o&&s&&function(t,e,i,n){var r=t;do{null===r.z&&(r.z=Nb(r.x,r.y,e,i,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,function(t){var e,i,n,r,s,o,a,h,u=1;do{for(i=t,t=null,s=null,o=0;i;){for(o++,n=i,a=0,e=0;e<u&&(a++,n=n.nextZ);e++);for(h=u;a>0||h>0&&n;)0!==a&&(0===h||!n||i.z<=n.z)?(r=i,i=i.nextZ,a--):(r=n,n=n.nextZ,h--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;i=n}s.nextZ=null,u*=2}while(o>1)}(r)}(t,n,r,s);for(var a,h,u=t;t.prev!==t.next;)if(a=t.prev,h=t.next,s?kb(t,n,r,s):Ob(t))e.push(a.i/i),e.push(t.i/i),e.push(h.i/i),qb(t),t=h.next,u=h.next;else if((t=h)===u){o?1===o?Cb(t=Rb(t,e,i),e,i,n,r,s,2):2===o&&Ib(t,e,i,n,r,s):Cb(Pb(t),e,i,n,r,s,1);break}}}function Ob(t){var e=t.prev,i=t,n=t.next;if(Hb(e,i,n)>=0)return!1;for(var r=t.next.next;r!==t.prev;){if(Ub(e.x,e.y,i.x,i.y,n.x,n.y,r.x,r.y)&&Hb(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function kb(t,e,i,n){var r=t.prev,s=t,o=t.next;if(Hb(r,s,o)>=0)return!1;for(var a=r.x<s.x?r.x<o.x?r.x:o.x:s.x<o.x?s.x:o.x,h=r.y<s.y?r.y<o.y?r.y:o.y:s.y<o.y?s.y:o.y,u=r.x>s.x?r.x>o.x?r.x:o.x:s.x>o.x?s.x:o.x,l=r.y>s.y?r.y>o.y?r.y:o.y:s.y>o.y?s.y:o.y,c=Nb(a,h,e,i,n),d=Nb(u,l,e,i,n),p=t.prevZ,f=t.nextZ;p&&p.z>=c&&f&&f.z<=d;){if(p!==t.prev&&p!==t.next&&Ub(r.x,r.y,s.x,s.y,o.x,o.y,p.x,p.y)&&Hb(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,f!==t.prev&&f!==t.next&&Ub(r.x,r.y,s.x,s.y,o.x,o.y,f.x,f.y)&&Hb(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(;p&&p.z>=c;){if(p!==t.prev&&p!==t.next&&Ub(r.x,r.y,s.x,s.y,o.x,o.y,p.x,p.y)&&Hb(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;f&&f.z<=d;){if(f!==t.prev&&f!==t.next&&Ub(r.x,r.y,s.x,s.y,o.x,o.y,f.x,f.y)&&Hb(f.prev,f,f.next)>=0)return!1;f=f.nextZ}return!0}function Rb(t,e,i){var n=t;do{var r=n.prev,s=n.next.next;!zb(r,s)&&Wb(r,n,n.next,s)&&Gb(r,s)&&Gb(s,r)&&(e.push(r.i/i),e.push(n.i/i),e.push(s.i/i),qb(n),qb(n.next),n=t=s),n=n.next}while(n!==t);return n}function Ib(t,e,i,n,r,s){var o=t;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&jb(o,a)){var h=Vb(o,a);return o=Pb(o,o.next),h=Pb(h,h.next),Cb(o,e,i,n,r,s),void Cb(h,e,i,n,r,s)}a=a.next}o=o.next}while(o!==t)}function Yb(t,e){return t.x-e.x}function Fb(t,e){if(e=function(t,e){var i,n=e,r=t.x,s=t.y,o=-1/0;do{if(s<=n.y&&s>=n.next.y&&n.next.y!==n.y){var a=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=r&&a>o){if(o=a,a===r){if(s===n.y)return n;if(s===n.next.y)return n.next}i=n.x<n.next.x?n:n.next}}n=n.next}while(n!==e);if(!i)return null;if(r===o)return i.prev;var h,u=i,l=i.x,c=i.y,d=1/0;n=i.next;for(;n!==u;)r>=n.x&&n.x>=l&&r!==n.x&&Ub(s<c?r:o,s,l,c,s<c?o:r,s,n.x,n.y)&&((h=Math.abs(s-n.y)/(r-n.x))<d||h===d&&n.x>i.x)&&Gb(n,t)&&(i=n,d=h),n=n.next;return i}(t,e)){var i=Vb(e,t);Pb(i,i.next)}}function Nb(t,e,i,n,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-i)*r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Bb(t){var e=t,i=t;do{(e.x<i.x||e.x===i.x&&e.y<i.y)&&(i=e),e=e.next}while(e!==t);return i}function Ub(t,e,i,n,r,s,o,a){return(r-o)*(e-a)-(t-o)*(s-a)>=0&&(t-o)*(n-a)-(i-o)*(e-a)>=0&&(i-o)*(s-a)-(r-o)*(n-a)>=0}function jb(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&Wb(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}(t,e)&&Gb(t,e)&&Gb(e,t)&&function(t,e){var i=t,n=!1,r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&r<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(n=!n),i=i.next}while(i!==t);return n}(t,e)}function Hb(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function zb(t,e){return t.x===e.x&&t.y===e.y}function Wb(t,e,i,n){return!!(zb(t,i)&&zb(e,n)||zb(t,n)&&zb(i,e))||Hb(t,e,i)>0!=Hb(t,e,n)>0&&Hb(i,n,t)>0!=Hb(i,n,e)>0}function Gb(t,e){return Hb(t.prev,t,t.next)<0?Hb(t,e,t.next)>=0&&Hb(t,t.prev,e)>=0:Hb(t,e,t.prev)<0||Hb(t,t.next,e)<0}function Vb(t,e){var i=new Jb(t.i,t.x,t.y),n=new Jb(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,i.next=r,r.prev=i,n.next=i,i.prev=n,s.next=n,n.prev=s,n}function Xb(t,e,i,n){var r=new Jb(t,e,i);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function qb(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Jb(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}var Zb={area:function(t){for(var e=t.length,i=0,n=e-1,r=0;r<e;n=r++)i+=t[n].x*t[r].y-t[r].x*t[n].y;return.5*i},isClockWise:function(t){return Zb.area(t)<0},triangulateShape:function(t,e){var i=[],n=[],r=[];Kb(t),Qb(i,t);var s=t.length;e.forEach(Kb);for(var o=0;o<e.length;o++)n.push(s),s+=e[o].length,Qb(i,e[o]);var a=Ab(i,n);for(o=0;o<a.length;o+=3)r.push(a.slice(o,o+3));return r}};function Kb(t){var e=t.length;e>2&&t[e-1].equals(t[0])&&t.pop()}function Qb(t,e){for(var i=0;i<e.length;i++)t.push(e[i].x),t.push(e[i].y)}function $b(t,e){zg.call(this),this.type="ExtrudeGeometry",this.parameters={shapes:t,options:e},this.fromBufferGeometry(new tw(t,e)),this.mergeVertices()}function tw(t,e){yg.call(this),this.type="ExtrudeBufferGeometry",this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];for(var i=this,n=[],r=[],s=0,o=t.length;s<o;s++){a(t[s])}function a(t){var s=[],o=void 0!==e.curveSegments?e.curveSegments:12,a=void 0!==e.steps?e.steps:1,h=void 0!==e.depth?e.depth:100,u=void 0===e.bevelEnabled||e.bevelEnabled,l=void 0!==e.bevelThickness?e.bevelThickness:6,c=void 0!==e.bevelSize?e.bevelSize:l-2,d=void 0!==e.bevelOffset?e.bevelOffset:0,p=void 0!==e.bevelSegments?e.bevelSegments:3,f=e.extrudePath,m=void 0!==e.UVGenerator?e.UVGenerator:ew;void 0!==e.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),h=e.amount);var v,g,y,_,x,b,w,T,M=!1;f&&(v=f.getSpacedPoints(a),M=!0,u=!1,g=f.computeFrenetFrames(a,!1),y=new Lm,_=new Lm,x=new Lm),u||(p=0,l=0,c=0,d=0);var S=t.extractPoints(o),E=S.shape,L=S.holes;if(!Zb.isClockWise(E))for(E=E.reverse(),w=0,T=L.length;w<T;w++)b=L[w],Zb.isClockWise(b)&&(L[w]=b.reverse());var A=Zb.triangulateShape(E,L),D=E;for(w=0,T=L.length;w<T;w++)b=L[w],E=E.concat(b);function P(t,e,i){return e||console.error("THREE.ExtrudeGeometry: vec does not exist"),e.clone().multiplyScalar(i).add(t)}var C,O,k,R,I,Y,F=E.length,N=A.length;function B(t,e,i){var n,r,s,o=t.x-e.x,a=t.y-e.y,h=i.x-t.x,u=i.y-t.y,l=o*o+a*a,c=o*u-a*h;if(Math.abs(c)>Number.EPSILON){var d=Math.sqrt(l),p=Math.sqrt(h*h+u*u),f=e.x-a/d,m=e.y+o/d,v=((i.x-u/p-f)*u-(i.y+h/p-m)*h)/(o*u-a*h),g=(n=f+o*v-t.x)*n+(r=m+a*v-t.y)*r;if(g<=2)return new vm(n,r);s=Math.sqrt(g/2)}else{var y=!1;o>Number.EPSILON?h>Number.EPSILON&&(y=!0):o<-Number.EPSILON?h<-Number.EPSILON&&(y=!0):Math.sign(a)===Math.sign(u)&&(y=!0),y?(n=-a,r=o,s=Math.sqrt(l)):(n=o,r=a,s=Math.sqrt(l/2))}return new vm(n/s,r/s)}for(var U=[],j=0,H=D.length,z=H-1,W=j+1;j<H;j++,z++,W++)z===H&&(z=0),W===H&&(W=0),U[j]=B(D[j],D[z],D[W]);var G,V,X=[],q=U.concat();for(w=0,T=L.length;w<T;w++){for(b=L[w],G=[],j=0,z=(H=b.length)-1,W=j+1;j<H;j++,z++,W++)z===H&&(z=0),W===H&&(W=0),G[j]=B(b[j],b[z],b[W]);X.push(G),q=q.concat(G)}for(C=0;C<p;C++){for(k=C/p,R=l*Math.cos(k*Math.PI/2),O=c*Math.sin(k*Math.PI/2)+d,j=0,H=D.length;j<H;j++)Z((I=P(D[j],U[j],O)).x,I.y,-R);for(w=0,T=L.length;w<T;w++)for(b=L[w],G=X[w],j=0,H=b.length;j<H;j++)Z((I=P(b[j],G[j],O)).x,I.y,-R)}for(O=c+d,j=0;j<F;j++)I=u?P(E[j],q[j],O):E[j],M?(_.copy(g.normals[0]).multiplyScalar(I.x),y.copy(g.binormals[0]).multiplyScalar(I.y),x.copy(v[0]).add(_).add(y),Z(x.x,x.y,x.z)):Z(I.x,I.y,0);for(V=1;V<=a;V++)for(j=0;j<F;j++)I=u?P(E[j],q[j],O):E[j],M?(_.copy(g.normals[V]).multiplyScalar(I.x),y.copy(g.binormals[V]).multiplyScalar(I.y),x.copy(v[V]).add(_).add(y),Z(x.x,x.y,x.z)):Z(I.x,I.y,h/a*V);for(C=p-1;C>=0;C--){for(k=C/p,R=l*Math.cos(k*Math.PI/2),O=c*Math.sin(k*Math.PI/2)+d,j=0,H=D.length;j<H;j++)Z((I=P(D[j],U[j],O)).x,I.y,h+R);for(w=0,T=L.length;w<T;w++)for(b=L[w],G=X[w],j=0,H=b.length;j<H;j++)I=P(b[j],G[j],O),M?Z(I.x,I.y+v[a-1].y,v[a-1].x+R):Z(I.x,I.y,h+R)}function J(t,e){var i,n;for(j=t.length;--j>=0;){i=j,(n=j-1)<0&&(n=t.length-1);var r=0,s=a+2*p;for(r=0;r<s;r++){var o=F*r,h=F*(r+1);Q(e+i+o,e+n+o,e+n+h,e+i+h)}}}function Z(t,e,i){s.push(t),s.push(e),s.push(i)}function K(t,e,r){$(t),$(e),$(r);var s=n.length/3,o=m.generateTopUV(i,n,s-3,s-2,s-1);tt(o[0]),tt(o[1]),tt(o[2])}function Q(t,e,r,s){$(t),$(e),$(s),$(e),$(r),$(s);var o=n.length/3,a=m.generateSideWallUV(i,n,o-6,o-3,o-2,o-1);tt(a[0]),tt(a[1]),tt(a[3]),tt(a[1]),tt(a[2]),tt(a[3])}function $(t){n.push(s[3*t+0]),n.push(s[3*t+1]),n.push(s[3*t+2])}function tt(t){r.push(t.x),r.push(t.y)}!function(){var t=n.length/3;if(u){var e=0,r=F*e;for(j=0;j<N;j++)K((Y=A[j])[2]+r,Y[1]+r,Y[0]+r);for(r=F*(e=a+2*p),j=0;j<N;j++)K((Y=A[j])[0]+r,Y[1]+r,Y[2]+r)}else{for(j=0;j<N;j++)K((Y=A[j])[2],Y[1],Y[0]);for(j=0;j<N;j++)K((Y=A[j])[0]+F*a,Y[1]+F*a,Y[2]+F*a)}i.addGroup(t,n.length/3-t,0)}(),function(){var t=n.length/3,e=0;for(J(D,e),e+=D.length,w=0,T=L.length;w<T;w++)J(b=L[w],e),e+=b.length;i.addGroup(t,n.length/3-t,1)}()}this.setAttribute("position",new ag(n,3)),this.setAttribute("uv",new ag(r,2)),this.computeVertexNormals()}$b.prototype=Object.create(zg.prototype),$b.prototype.constructor=$b,$b.prototype.toJSON=function(){var t=zg.prototype.toJSON.call(this);return iw(this.parameters.shapes,this.parameters.options,t)},tw.prototype=Object.create(yg.prototype),tw.prototype.constructor=tw,tw.prototype.toJSON=function(){var t=yg.prototype.toJSON.call(this);return iw(this.parameters.shapes,this.parameters.options,t)};var ew={generateTopUV:function(t,e,i,n,r){var s=e[3*i],o=e[3*i+1],a=e[3*n],h=e[3*n+1],u=e[3*r],l=e[3*r+1];return[new vm(s,o),new vm(a,h),new vm(u,l)]},generateSideWallUV:function(t,e,i,n,r,s){var o=e[3*i],a=e[3*i+1],h=e[3*i+2],u=e[3*n],l=e[3*n+1],c=e[3*n+2],d=e[3*r],p=e[3*r+1],f=e[3*r+2],m=e[3*s],v=e[3*s+1],g=e[3*s+2];return Math.abs(a-l)<.01?[new vm(o,1-h),new vm(u,1-c),new vm(d,1-f),new vm(m,1-g)]:[new vm(a,1-h),new vm(l,1-c),new vm(p,1-f),new vm(v,1-g)]}};function iw(t,e,i){if(i.shapes=[],Array.isArray(t))for(var n=0,r=t.length;n<r;n++){var s=t[n];i.shapes.push(s.uuid)}else i.shapes.push(t.uuid);return void 0!==e.extrudePath&&(i.options.extrudePath=e.extrudePath.toJSON()),i}function nw(t,e){zg.call(this),this.type="TextGeometry",this.parameters={text:t,parameters:e},this.fromBufferGeometry(new rw(t,e)),this.mergeVertices()}function rw(t,e){var i=(e=e||{}).font;if(!i||!i.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),new zg;var n=i.generateShapes(t,e.size);e.depth=void 0!==e.height?e.height:50,void 0===e.bevelThickness&&(e.bevelThickness=10),void 0===e.bevelSize&&(e.bevelSize=8),void 0===e.bevelEnabled&&(e.bevelEnabled=!1),tw.call(this,n,e),this.type="TextBufferGeometry"}function sw(t,e,i,n,r,s,o){zg.call(this),this.type="SphereGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:i,phiStart:n,phiLength:r,thetaStart:s,thetaLength:o},this.fromBufferGeometry(new ow(t,e,i,n,r,s,o)),this.mergeVertices()}function ow(t,e,i,n,r,s,o){yg.call(this),this.type="SphereBufferGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:i,phiStart:n,phiLength:r,thetaStart:s,thetaLength:o},t=t||1,e=Math.max(3,Math.floor(e)||8),i=Math.max(2,Math.floor(i)||6),n=void 0!==n?n:0,r=void 0!==r?r:2*Math.PI,s=void 0!==s?s:0,o=void 0!==o?o:Math.PI;var a,h,u=Math.min(s+o,Math.PI),l=0,c=[],d=new Lm,p=new Lm,f=[],m=[],v=[],g=[];for(h=0;h<=i;h++){var y=[],_=h/i,x=0;for(0==h&&0==s?x=.5/e:h==i&&u==Math.PI&&(x=-.5/e),a=0;a<=e;a++){var b=a/e;d.x=-t*Math.cos(n+b*r)*Math.sin(s+_*o),d.y=t*Math.cos(s+_*o),d.z=t*Math.sin(n+b*r)*Math.sin(s+_*o),m.push(d.x,d.y,d.z),p.copy(d).normalize(),v.push(p.x,p.y,p.z),g.push(b+x,1-_),y.push(l++)}c.push(y)}for(h=0;h<i;h++)for(a=0;a<e;a++){var w=c[h][a+1],T=c[h][a],M=c[h+1][a],S=c[h+1][a+1];(0!==h||s>0)&&f.push(w,T,S),(h!==i-1||u<Math.PI)&&f.push(T,M,S)}this.setIndex(f),this.setAttribute("position",new ag(m,3)),this.setAttribute("normal",new ag(v,3)),this.setAttribute("uv",new ag(g,2))}function aw(t,e,i,n,r,s){zg.call(this),this.type="RingGeometry",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:i,phiSegments:n,thetaStart:r,thetaLength:s},this.fromBufferGeometry(new hw(t,e,i,n,r,s)),this.mergeVertices()}function hw(t,e,i,n,r,s){yg.call(this),this.type="RingBufferGeometry",this.parameters={innerRadius:t,outerRadius:e,thetaSegments:i,phiSegments:n,thetaStart:r,thetaLength:s},t=t||.5,e=e||1,r=void 0!==r?r:0,s=void 0!==s?s:2*Math.PI,i=void 0!==i?Math.max(3,i):8;var o,a,h,u=[],l=[],c=[],d=[],p=t,f=(e-t)/(n=void 0!==n?Math.max(1,n):1),m=new Lm,v=new vm;for(a=0;a<=n;a++){for(h=0;h<=i;h++)o=r+h/i*s,m.x=p*Math.cos(o),m.y=p*Math.sin(o),l.push(m.x,m.y,m.z),c.push(0,0,1),v.x=(m.x/e+1)/2,v.y=(m.y/e+1)/2,d.push(v.x,v.y);p+=f}for(a=0;a<n;a++){var g=a*(i+1);for(h=0;h<i;h++){var y=o=h+g,_=o+i+1,x=o+i+2,b=o+1;u.push(y,_,b),u.push(_,x,b)}}this.setIndex(u),this.setAttribute("position",new ag(l,3)),this.setAttribute("normal",new ag(c,3)),this.setAttribute("uv",new ag(d,2))}function uw(t,e,i,n){zg.call(this),this.type="LatheGeometry",this.parameters={points:t,segments:e,phiStart:i,phiLength:n},this.fromBufferGeometry(new lw(t,e,i,n)),this.mergeVertices()}function lw(t,e,i,n){yg.call(this),this.type="LatheBufferGeometry",this.parameters={points:t,segments:e,phiStart:i,phiLength:n},e=Math.floor(e)||12,i=i||0,n=n||2*Math.PI,n=mm.clamp(n,0,2*Math.PI);var r,s,o,a=[],h=[],u=[],l=1/e,c=new Lm,d=new vm;for(s=0;s<=e;s++){var p=i+s*l*n,f=Math.sin(p),m=Math.cos(p);for(o=0;o<=t.length-1;o++)c.x=t[o].x*f,c.y=t[o].y,c.z=t[o].x*m,h.push(c.x,c.y,c.z),d.x=s/e,d.y=o/(t.length-1),u.push(d.x,d.y)}for(s=0;s<e;s++)for(o=0;o<t.length-1;o++){var v=r=o+s*t.length,g=r+t.length,y=r+t.length+1,_=r+1;a.push(v,g,_),a.push(g,y,_)}if(this.setIndex(a),this.setAttribute("position",new ag(h,3)),this.setAttribute("uv",new ag(u,2)),this.computeVertexNormals(),n===2*Math.PI){var x=this.attributes.normal.array,b=new Lm,w=new Lm,T=new Lm;for(r=e*t.length*3,s=0,o=0;s<t.length;s++,o+=3)b.x=x[o+0],b.y=x[o+1],b.z=x[o+2],w.x=x[r+o+0],w.y=x[r+o+1],w.z=x[r+o+2],T.addVectors(b,w).normalize(),x[o+0]=x[r+o+0]=T.x,x[o+1]=x[r+o+1]=T.y,x[o+2]=x[r+o+2]=T.z}}function cw(t,e){zg.call(this),this.type="ShapeGeometry","object"==typeof e&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),e=e.curveSegments),this.parameters={shapes:t,curveSegments:e},this.fromBufferGeometry(new dw(t,e)),this.mergeVertices()}function dw(t,e){yg.call(this),this.type="ShapeBufferGeometry",this.parameters={shapes:t,curveSegments:e},e=e||12;var i=[],n=[],r=[],s=[],o=0,a=0;if(!1===Array.isArray(t))u(t);else for(var h=0;h<t.length;h++)u(t[h]),this.addGroup(o,a,h),o+=a,a=0;function u(t){var o,h,u,l=n.length/3,c=t.extractPoints(e),d=c.shape,p=c.holes;for(!1===Zb.isClockWise(d)&&(d=d.reverse()),o=0,h=p.length;o<h;o++)u=p[o],!0===Zb.isClockWise(u)&&(p[o]=u.reverse());var f=Zb.triangulateShape(d,p);for(o=0,h=p.length;o<h;o++)u=p[o],d=d.concat(u);for(o=0,h=d.length;o<h;o++){var m=d[o];n.push(m.x,m.y,0),r.push(0,0,1),s.push(m.x,m.y)}for(o=0,h=f.length;o<h;o++){var v=f[o],g=v[0]+l,y=v[1]+l,_=v[2]+l;i.push(g,y,_),a+=3}}this.setIndex(i),this.setAttribute("position",new ag(n,3)),this.setAttribute("normal",new ag(r,3)),this.setAttribute("uv",new ag(s,2))}function pw(t,e){if(e.shapes=[],Array.isArray(t))for(var i=0,n=t.length;i<n;i++){var r=t[i];e.shapes.push(r.uuid)}else e.shapes.push(t.uuid);return e}function fw(t,e){yg.call(this),this.type="EdgesGeometry",this.parameters={thresholdAngle:e},e=void 0!==e?e:1;var i,n,r,s,o=[],a=Math.cos(mm.DEG2RAD*e),h=[0,0],u={},l=["a","b","c"];t.isBufferGeometry?(s=new zg).fromBufferGeometry(t):s=t.clone(),s.mergeVertices(),s.computeFaceNormals();for(var c=s.vertices,d=s.faces,p=0,f=d.length;p<f;p++)for(var m=d[p],v=0;v<3;v++)i=m[l[v]],n=m[l[(v+1)%3]],h[0]=Math.min(i,n),h[1]=Math.max(i,n),void 0===u[r=h[0]+","+h[1]]?u[r]={index1:h[0],index2:h[1],face1:p,face2:void 0}:u[r].face2=p;for(r in u){var g=u[r];if(void 0===g.face2||d[g.face1].normal.dot(d[g.face2].normal)<=a){var y=c[g.index1];o.push(y.x,y.y,y.z),y=c[g.index2],o.push(y.x,y.y,y.z)}}this.setAttribute("position",new ag(o,3))}function mw(t,e,i,n,r,s,o,a){zg.call(this),this.type="CylinderGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:i,radialSegments:n,heightSegments:r,openEnded:s,thetaStart:o,thetaLength:a},this.fromBufferGeometry(new vw(t,e,i,n,r,s,o,a)),this.mergeVertices()}function vw(t,e,i,n,r,s,o,a){yg.call(this),this.type="CylinderBufferGeometry",this.parameters={radiusTop:t,radiusBottom:e,height:i,radialSegments:n,heightSegments:r,openEnded:s,thetaStart:o,thetaLength:a};var h=this;t=void 0!==t?t:1,e=void 0!==e?e:1,i=i||1,n=Math.floor(n)||8,r=Math.floor(r)||1,s=void 0!==s&&s,o=void 0!==o?o:0,a=void 0!==a?a:2*Math.PI;var u=[],l=[],c=[],d=[],p=0,f=[],m=i/2,v=0;function g(i){var r,s,f,g=new vm,y=new Lm,_=0,x=!0===i?t:e,b=!0===i?1:-1;for(s=p,r=1;r<=n;r++)l.push(0,m*b,0),c.push(0,b,0),d.push(.5,.5),p++;for(f=p,r=0;r<=n;r++){var w=r/n*a+o,T=Math.cos(w),M=Math.sin(w);y.x=x*M,y.y=m*b,y.z=x*T,l.push(y.x,y.y,y.z),c.push(0,b,0),g.x=.5*T+.5,g.y=.5*M*b+.5,d.push(g.x,g.y),p++}for(r=0;r<n;r++){var S=s+r,E=f+r;!0===i?u.push(E,E+1,S):u.push(E+1,E,S),_+=3}h.addGroup(v,_,!0===i?1:2),v+=_}!function(){var s,g,y=new Lm,_=new Lm,x=0,b=(e-t)/i;for(g=0;g<=r;g++){var w=[],T=g/r,M=T*(e-t)+t;for(s=0;s<=n;s++){var S=s/n,E=S*a+o,L=Math.sin(E),A=Math.cos(E);_.x=M*L,_.y=-T*i+m,_.z=M*A,l.push(_.x,_.y,_.z),y.set(L,b,A).normalize(),c.push(y.x,y.y,y.z),d.push(S,1-T),w.push(p++)}f.push(w)}for(s=0;s<n;s++)for(g=0;g<r;g++){var D=f[g][s],P=f[g+1][s],C=f[g+1][s+1],O=f[g][s+1];u.push(D,P,O),u.push(P,C,O),x+=6}h.addGroup(v,x,0),v+=x}(),!1===s&&(t>0&&g(!0),e>0&&g(!1)),this.setIndex(u),this.setAttribute("position",new ag(l,3)),this.setAttribute("normal",new ag(c,3)),this.setAttribute("uv",new ag(d,2))}function gw(t,e,i,n,r,s,o){mw.call(this,0,t,e,i,n,r,s,o),this.type="ConeGeometry",this.parameters={radius:t,height:e,radialSegments:i,heightSegments:n,openEnded:r,thetaStart:s,thetaLength:o}}function yw(t,e,i,n,r,s,o){vw.call(this,0,t,e,i,n,r,s,o),this.type="ConeBufferGeometry",this.parameters={radius:t,height:e,radialSegments:i,heightSegments:n,openEnded:r,thetaStart:s,thetaLength:o}}function _w(t,e,i,n){zg.call(this),this.type="CircleGeometry",this.parameters={radius:t,segments:e,thetaStart:i,thetaLength:n},this.fromBufferGeometry(new xw(t,e,i,n)),this.mergeVertices()}function xw(t,e,i,n){yg.call(this),this.type="CircleBufferGeometry",this.parameters={radius:t,segments:e,thetaStart:i,thetaLength:n},t=t||1,e=void 0!==e?Math.max(3,e):8,i=void 0!==i?i:0,n=void 0!==n?n:2*Math.PI;var r,s,o=[],a=[],h=[],u=[],l=new Lm,c=new vm;for(a.push(0,0,0),h.push(0,0,1),u.push(.5,.5),s=0,r=3;s<=e;s++,r+=3){var d=i+s/e*n;l.x=t*Math.cos(d),l.y=t*Math.sin(d),a.push(l.x,l.y,l.z),h.push(0,0,1),c.x=(a[r]/t+1)/2,c.y=(a[r+1]/t+1)/2,u.push(c.x,c.y)}for(r=1;r<=e;r++)o.push(r,r+1,0);this.setIndex(o),this.setAttribute("position",new ag(a,3)),this.setAttribute("normal",new ag(h,3)),this.setAttribute("uv",new ag(u,2))}nw.prototype=Object.create(zg.prototype),nw.prototype.constructor=nw,rw.prototype=Object.create(tw.prototype),rw.prototype.constructor=rw,sw.prototype=Object.create(zg.prototype),sw.prototype.constructor=sw,ow.prototype=Object.create(yg.prototype),ow.prototype.constructor=ow,aw.prototype=Object.create(zg.prototype),aw.prototype.constructor=aw,hw.prototype=Object.create(yg.prototype),hw.prototype.constructor=hw,uw.prototype=Object.create(zg.prototype),uw.prototype.constructor=uw,lw.prototype=Object.create(yg.prototype),lw.prototype.constructor=lw,cw.prototype=Object.create(zg.prototype),cw.prototype.constructor=cw,cw.prototype.toJSON=function(){var t=zg.prototype.toJSON.call(this);return pw(this.parameters.shapes,t)},dw.prototype=Object.create(yg.prototype),dw.prototype.constructor=dw,dw.prototype.toJSON=function(){var t=yg.prototype.toJSON.call(this);return pw(this.parameters.shapes,t)},fw.prototype=Object.create(yg.prototype),fw.prototype.constructor=fw,mw.prototype=Object.create(zg.prototype),mw.prototype.constructor=mw,vw.prototype=Object.create(yg.prototype),vw.prototype.constructor=vw,gw.prototype=Object.create(mw.prototype),gw.prototype.constructor=gw,yw.prototype=Object.create(vw.prototype),yw.prototype.constructor=yw,_w.prototype=Object.create(zg.prototype),_w.prototype.constructor=_w,xw.prototype=Object.create(yg.prototype),xw.prototype.constructor=xw;var bw=Object.freeze({__proto__:null,WireframeGeometry:ub,ParametricGeometry:lb,ParametricBufferGeometry:cb,TetrahedronGeometry:fb,TetrahedronBufferGeometry:mb,OctahedronGeometry:vb,OctahedronBufferGeometry:gb,IcosahedronGeometry:yb,IcosahedronBufferGeometry:_b,DodecahedronGeometry:xb,DodecahedronBufferGeometry:bb,PolyhedronGeometry:db,PolyhedronBufferGeometry:pb,TubeGeometry:wb,TubeBufferGeometry:Tb,TorusKnotGeometry:Mb,TorusKnotBufferGeometry:Sb,TorusGeometry:Eb,TorusBufferGeometry:Lb,TextGeometry:nw,TextBufferGeometry:rw,SphereGeometry:sw,SphereBufferGeometry:ow,RingGeometry:aw,RingBufferGeometry:hw,PlaneGeometry:ay,PlaneBufferGeometry:hy,LatheGeometry:uw,LatheBufferGeometry:lw,ShapeGeometry:cw,ShapeBufferGeometry:dw,ExtrudeGeometry:$b,ExtrudeBufferGeometry:tw,EdgesGeometry:fw,ConeGeometry:gw,ConeBufferGeometry:yw,CylinderGeometry:mw,CylinderBufferGeometry:vw,CircleGeometry:_w,CircleBufferGeometry:xw,BoxGeometry:class extends zg{constructor(t,e,i,n,r,s){super(),this.type="BoxGeometry",this.parameters={width:t,height:e,depth:i,widthSegments:n,heightSegments:r,depthSegments:s},this.fromBufferGeometry(new Wg(t,e,i,n,r,s)),this.mergeVertices()}},BoxBufferGeometry:Wg});function ww(t){Zv.call(this),this.type="ShadowMaterial",this.color=new Wv(0),this.transparent=!0,this.setValues(t)}function Tw(t){qg.call(this,t),this.type="RawShaderMaterial"}function Mw(t){Zv.call(this),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new Wv(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Wv(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vm(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.vertexTangents=!1,this.setValues(t)}function Sw(t){Mw.call(this),this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.clearcoat=0,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new vm(1,1),this.clearcoatNormalMap=null,this.reflectivity=.5,this.sheen=null,this.transparency=0,this.setValues(t)}function Ew(t){Zv.call(this),this.type="MeshPhongMaterial",this.color=new Wv(16777215),this.specular=new Wv(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Wv(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vm(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function Lw(t){Zv.call(this),this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Wv(16777215),this.specular=new Wv(1118481),this.shininess=30,this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Wv(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vm(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function Aw(t){Zv.call(this),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vm(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function Dw(t){Zv.call(this),this.type="MeshLambertMaterial",this.color=new Wv(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Wv(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function Pw(t){Zv.call(this),this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Wv(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new vm(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function Cw(t){jx.call(this),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}ww.prototype=Object.create(Zv.prototype),ww.prototype.constructor=ww,ww.prototype.isShadowMaterial=!0,ww.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.color.copy(t.color),this},Tw.prototype=Object.create(qg.prototype),Tw.prototype.constructor=Tw,Tw.prototype.isRawShaderMaterial=!0,Mw.prototype=Object.create(Zv.prototype),Mw.prototype.constructor=Mw,Mw.prototype.isMeshStandardMaterial=!0,Mw.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.defines={STANDARD:""},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapIntensity=t.envMapIntensity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this.vertexTangents=t.vertexTangents,this},Sw.prototype=Object.create(Mw.prototype),Sw.prototype.constructor=Sw,Sw.prototype.isMeshPhysicalMaterial=!0,Sw.prototype.copy=function(t){return Mw.prototype.copy.call(this,t),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.reflectivity=t.reflectivity,t.sheen?this.sheen=(this.sheen||new Wv).copy(t.sheen):this.sheen=null,this.transparency=t.transparency,this},Ew.prototype=Object.create(Zv.prototype),Ew.prototype.constructor=Ew,Ew.prototype.isMeshPhongMaterial=!0,Ew.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},Lw.prototype=Object.create(Zv.prototype),Lw.prototype.constructor=Lw,Lw.prototype.isMeshToonMaterial=!0,Lw.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},Aw.prototype=Object.create(Zv.prototype),Aw.prototype.constructor=Aw,Aw.prototype.isMeshNormalMaterial=!0,Aw.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},Dw.prototype=Object.create(Zv.prototype),Dw.prototype.constructor=Dw,Dw.prototype.isMeshLambertMaterial=!0,Dw.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},Pw.prototype=Object.create(Zv.prototype),Pw.prototype.constructor=Pw,Pw.prototype.isMeshMatcapMaterial=!0,Pw.prototype.copy=function(t){return Zv.prototype.copy.call(this,t),this.defines={MATCAP:""},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.morphNormals=t.morphNormals,this},Cw.prototype=Object.create(jx.prototype),Cw.prototype.constructor=Cw,Cw.prototype.isLineDashedMaterial=!0,Cw.prototype.copy=function(t){return jx.prototype.copy.call(this,t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this};var Ow=Object.freeze({__proto__:null,ShadowMaterial:ww,SpriteMaterial:px,RawShaderMaterial:Tw,ShaderMaterial:qg,PointsMaterial:Qx,MeshPhysicalMaterial:Sw,MeshStandardMaterial:Mw,MeshPhongMaterial:Ew,MeshToonMaterial:Lw,MeshNormalMaterial:Aw,MeshLambertMaterial:Dw,MeshDepthMaterial:K_,MeshDistanceMaterial:Q_,MeshBasicMaterial:Kv,MeshMatcapMaterial:Pw,LineDashedMaterial:Cw,LineBasicMaterial:jx,Material:Zv}),kw={arraySlice:function(t,e,i){return kw.isTypedArray(t)?new t.constructor(t.subarray(e,void 0!==i?i:t.length)):t.slice(e,i)},convertArray:function(t,e,i){return!t||!i&&t.constructor===e?t:"number"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){for(var e=t.length,i=new Array(e),n=0;n!==e;++n)i[n]=n;return i.sort((function(e,i){return t[e]-t[i]})),i},sortedArray:function(t,e,i){for(var n=t.length,r=new t.constructor(n),s=0,o=0;o!==n;++s)for(var a=i[s]*e,h=0;h!==e;++h)r[o++]=t[a+h];return r},flattenJSON:function(t,e,i,n){for(var r=1,s=t[0];void 0!==s&&void 0===s[n];)s=t[r++];if(void 0!==s){var o=s[n];if(void 0!==o)if(Array.isArray(o))do{void 0!==(o=s[n])&&(e.push(s.time),i.push.apply(i,o)),s=t[r++]}while(void 0!==s);else if(void 0!==o.toArray)do{void 0!==(o=s[n])&&(e.push(s.time),o.toArray(i,i.length)),s=t[r++]}while(void 0!==s);else do{void 0!==(o=s[n])&&(e.push(s.time),i.push(o)),s=t[r++]}while(void 0!==s)}},subclip:function(t,e,i,n,r){r=r||30;var s=t.clone();s.name=e;for(var o=[],a=0;a<s.tracks.length;++a){for(var h=s.tracks[a],u=h.getValueSize(),l=[],c=[],d=0;d<h.times.length;++d){var p=h.times[d]*r;if(!(p<i||p>=n)){l.push(h.times[d]);for(var f=0;f<u;++f)c.push(h.values[d*u+f])}}0!==l.length&&(h.times=kw.convertArray(l,h.times.constructor),h.values=kw.convertArray(c,h.values.constructor),o.push(h))}s.tracks=o;var m=1/0;for(a=0;a<s.tracks.length;++a)m>s.tracks[a].times[0]&&(m=s.tracks[a].times[0]);for(a=0;a<s.tracks.length;++a)s.tracks[a].shift(-1*m);return s.resetDuration(),s}};function Rw(t,e,i,n){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==n?n:new e.constructor(i),this.sampleValues=e,this.valueSize=i}function Iw(t,e,i,n){Rw.call(this,t,e,i,n),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0}function Yw(t,e,i,n){Rw.call(this,t,e,i,n)}function Fw(t,e,i,n){Rw.call(this,t,e,i,n)}function Nw(t,e,i,n){if(void 0===t)throw new Error("THREE.KeyframeTrack: track name is undefined");if(void 0===e||0===e.length)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+t);this.name=t,this.times=kw.convertArray(e,this.TimeBufferType),this.values=kw.convertArray(i,this.ValueBufferType),this.setInterpolation(n||this.DefaultInterpolation)}function Bw(t,e,i){Nw.call(this,t,e,i)}function Uw(t,e,i,n){Nw.call(this,t,e,i,n)}function jw(t,e,i,n){Nw.call(this,t,e,i,n)}function Hw(t,e,i,n){Rw.call(this,t,e,i,n)}function zw(t,e,i,n){Nw.call(this,t,e,i,n)}function Ww(t,e,i,n){Nw.call(this,t,e,i,n)}function Gw(t,e,i,n){Nw.call(this,t,e,i,n)}function Vw(t,e,i){this.name=t,this.tracks=i,this.duration=void 0!==e?e:-1,this.uuid=mm.generateUUID(),this.duration<0&&this.resetDuration()}function Xw(t){if(void 0===t.type)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");var e=function(t){switch(t.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return jw;case"vector":case"vector2":case"vector3":case"vector4":return Gw;case"color":return Uw;case"quaternion":return zw;case"bool":case"boolean":return Bw;case"string":return Ww}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+t)}(t.type);if(void 0===t.times){var i=[],n=[];kw.flattenJSON(t.keys,i,n,"value"),t.times=i,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)}Object.assign(Rw.prototype,{evaluate:function(t){var e=this.parameterPositions,i=this._cachedIndex,n=e[i],r=e[i-1];t:{e:{var s;i:{n:if(!(t<n)){for(var o=i+2;;){if(void 0===n){if(t<r)break n;return i=e.length,this._cachedIndex=i,this.afterEnd_(i-1,t,r)}if(i===o)break;if(r=n,t<(n=e[++i]))break e}s=e.length;break i}if(t>=r)break t;var a=e[1];t<a&&(i=2,r=a);for(o=i-2;;){if(void 0===r)return this._cachedIndex=0,this.beforeStart_(0,t,n);if(i===o)break;if(n=r,t>=(r=e[--i-1]))break e}s=i,i=0}for(;i<s;){var h=i+s>>>1;t<e[h]?s=h:i=h+1}if(n=e[i],void 0===(r=e[i-1]))return this._cachedIndex=0,this.beforeStart_(0,t,n);if(void 0===n)return i=e.length,this._cachedIndex=i,this.afterEnd_(i-1,r,t)}this._cachedIndex=i,this.intervalChanged_(i,r,n)}return this.interpolate_(i,r,t,n)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(t){for(var e=this.resultBuffer,i=this.sampleValues,n=this.valueSize,r=t*n,s=0;s!==n;++s)e[s]=i[r+s];return e},interpolate_:function(){throw new Error("call to abstract method")},intervalChanged_:function(){}}),Object.assign(Rw.prototype,{beforeStart_:Rw.prototype.copySampleValue_,afterEnd_:Rw.prototype.copySampleValue_}),Iw.prototype=Object.assign(Object.create(Rw.prototype),{constructor:Iw,DefaultSettings_:{endingStart:im,endingEnd:im},intervalChanged_:function(t,e,i){var n=this.parameterPositions,r=t-2,s=t+1,o=n[r],a=n[s];if(void 0===o)switch(this.getSettings_().endingStart){case nm:r=t,o=2*e-i;break;case rm:o=e+n[r=n.length-2]-n[r+1];break;default:r=t,o=i}if(void 0===a)switch(this.getSettings_().endingEnd){case nm:s=t,a=2*i-e;break;case rm:s=1,a=i+n[1]-n[0];break;default:s=t-1,a=e}var h=.5*(i-e),u=this.valueSize;this._weightPrev=h/(e-o),this._weightNext=h/(a-i),this._offsetPrev=r*u,this._offsetNext=s*u},interpolate_:function(t,e,i,n){for(var r=this.resultBuffer,s=this.sampleValues,o=this.valueSize,a=t*o,h=a-o,u=this._offsetPrev,l=this._offsetNext,c=this._weightPrev,d=this._weightNext,p=(i-e)/(n-e),f=p*p,m=f*p,v=-c*m+2*c*f-c*p,g=(1+c)*m+(-1.5-2*c)*f+(-.5+c)*p+1,y=(-1-d)*m+(1.5+d)*f+.5*p,_=d*m-d*f,x=0;x!==o;++x)r[x]=v*s[u+x]+g*s[h+x]+y*s[a+x]+_*s[l+x];return r}}),Yw.prototype=Object.assign(Object.create(Rw.prototype),{constructor:Yw,interpolate_:function(t,e,i,n){for(var r=this.resultBuffer,s=this.sampleValues,o=this.valueSize,a=t*o,h=a-o,u=(i-e)/(n-e),l=1-u,c=0;c!==o;++c)r[c]=s[h+c]*l+s[a+c]*u;return r}}),Fw.prototype=Object.assign(Object.create(Rw.prototype),{constructor:Fw,interpolate_:function(t){return this.copySampleValue_(t-1)}}),Object.assign(Nw,{toJSON:function(t){var e,i=t.constructor;if(void 0!==i.toJSON)e=i.toJSON(t);else{e={name:t.name,times:kw.convertArray(t.times,Array),values:kw.convertArray(t.values,Array)};var n=t.getInterpolation();n!==t.DefaultInterpolation&&(e.interpolation=n)}return e.type=t.ValueTypeName,e}}),Object.assign(Nw.prototype,{constructor:Nw,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:tm,InterpolantFactoryMethodDiscrete:function(t){return new Fw(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodLinear:function(t){return new Yw(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:function(t){return new Iw(this.times,this.values,this.getValueSize(),t)},setInterpolation:function(t){var e;switch(t){case $f:e=this.InterpolantFactoryMethodDiscrete;break;case tm:e=this.InterpolantFactoryMethodLinear;break;case em:e=this.InterpolantFactoryMethodSmooth}if(void 0===e){var i="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant){if(t===this.DefaultInterpolation)throw new Error(i);this.setInterpolation(this.DefaultInterpolation)}return console.warn("THREE.KeyframeTrack:",i),this}return this.createInterpolant=e,this},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return $f;case this.InterpolantFactoryMethodLinear:return tm;case this.InterpolantFactoryMethodSmooth:return em}},getValueSize:function(){return this.values.length/this.times.length},shift:function(t){if(0!==t)for(var e=this.times,i=0,n=e.length;i!==n;++i)e[i]+=t;return this},scale:function(t){if(1!==t)for(var e=this.times,i=0,n=e.length;i!==n;++i)e[i]*=t;return this},trim:function(t,e){for(var i=this.times,n=i.length,r=0,s=n-1;r!==n&&i[r]<t;)++r;for(;-1!==s&&i[s]>e;)--s;if(++s,0!==r||s!==n){r>=s&&(r=(s=Math.max(s,1))-1);var o=this.getValueSize();this.times=kw.arraySlice(i,r,s),this.values=kw.arraySlice(this.values,r*o,s*o)}return this},validate:function(){var t=!0,e=this.getValueSize();e-Math.floor(e)!=0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);var i=this.times,n=this.values,r=i.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);for(var s=null,o=0;o!==r;o++){var a=i[o];if("number"==typeof a&&isNaN(a)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,o,a),t=!1;break}if(null!==s&&s>a){console.error("THREE.KeyframeTrack: Out of order keys.",this,o,a,s),t=!1;break}s=a}if(void 0!==n&&kw.isTypedArray(n)){o=0;for(var h=n.length;o!==h;++o){var u=n[o];if(isNaN(u)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,o,u),t=!1;break}}}return t},optimize:function(){for(var t=kw.arraySlice(this.times),e=kw.arraySlice(this.values),i=this.getValueSize(),n=this.getInterpolation()===em,r=1,s=t.length-1,o=1;o<s;++o){var a=!1,h=t[o];if(h!==t[o+1]&&(1!==o||h!==h[0]))if(n)a=!0;else for(var u=o*i,l=u-i,c=u+i,d=0;d!==i;++d){var p=e[u+d];if(p!==e[l+d]||p!==e[c+d]){a=!0;break}}if(a){if(o!==r){t[r]=t[o];var f=o*i,m=r*i;for(d=0;d!==i;++d)e[m+d]=e[f+d]}++r}}if(s>0){t[r]=t[s];for(f=s*i,m=r*i,d=0;d!==i;++d)e[m+d]=e[f+d];++r}return r!==t.length?(this.times=kw.arraySlice(t,0,r),this.values=kw.arraySlice(e,0,r*i)):(this.times=t,this.values=e),this},clone:function(){var t=kw.arraySlice(this.times,0),e=kw.arraySlice(this.values,0),i=new(0,this.constructor)(this.name,t,e);return i.createInterpolant=this.createInterpolant,i}}),Bw.prototype=Object.assign(Object.create(Nw.prototype),{constructor:Bw,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:$f,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Uw.prototype=Object.assign(Object.create(Nw.prototype),{constructor:Uw,ValueTypeName:"color"}),jw.prototype=Object.assign(Object.create(Nw.prototype),{constructor:jw,ValueTypeName:"number"}),Hw.prototype=Object.assign(Object.create(Rw.prototype),{constructor:Hw,interpolate_:function(t,e,i,n){for(var r=this.resultBuffer,s=this.sampleValues,o=this.valueSize,a=t*o,h=(i-e)/(n-e),u=a+o;a!==u;a+=4)Mm.slerpFlat(r,0,s,a-o,s,a,h);return r}}),zw.prototype=Object.assign(Object.create(Nw.prototype),{constructor:zw,ValueTypeName:"quaternion",DefaultInterpolation:tm,InterpolantFactoryMethodLinear:function(t){return new Hw(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:void 0}),Ww.prototype=Object.assign(Object.create(Nw.prototype),{constructor:Ww,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:$f,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Gw.prototype=Object.assign(Object.create(Nw.prototype),{constructor:Gw,ValueTypeName:"vector"}),Object.assign(Vw,{parse:function(t){for(var e=[],i=t.tracks,n=1/(t.fps||1),r=0,s=i.length;r!==s;++r)e.push(Xw(i[r]).scale(n));return new Vw(t.name,t.duration,e)},toJSON:function(t){for(var e=[],i=t.tracks,n={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid},r=0,s=i.length;r!==s;++r)e.push(Nw.toJSON(i[r]));return n},CreateFromMorphTargetSequence:function(t,e,i,n){for(var r=e.length,s=[],o=0;o<r;o++){var a=[],h=[];a.push((o+r-1)%r,o,(o+1)%r),h.push(0,1,0);var u=kw.getKeyframeOrder(a);a=kw.sortedArray(a,1,u),h=kw.sortedArray(h,1,u),n||0!==a[0]||(a.push(r),h.push(h[0])),s.push(new jw(".morphTargetInfluences["+e[o].name+"]",a,h).scale(1/i))}return new Vw(t,-1,s)},findByName:function(t,e){var i=t;if(!Array.isArray(t)){var n=t;i=n.geometry&&n.geometry.animations||n.animations}for(var r=0;r<i.length;r++)if(i[r].name===e)return i[r];return null},CreateClipsFromMorphTargetSequences:function(t,e,i){for(var n={},r=/^([\w-]*?)([\d]+)$/,s=0,o=t.length;s<o;s++){var a=t[s],h=a.name.match(r);if(h&&h.length>1){var u=n[c=h[1]];u||(n[c]=u=[]),u.push(a)}}var l=[];for(var c in n)l.push(Vw.CreateFromMorphTargetSequence(c,n[c],e,i));return l},parseAnimation:function(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;for(var i=function(t,e,i,n,r){if(0!==i.length){var s=[],o=[];kw.flattenJSON(i,s,o,n),0!==s.length&&r.push(new t(e,s,o))}},n=[],r=t.name||"default",s=t.length||-1,o=t.fps||30,a=t.hierarchy||[],h=0;h<a.length;h++){var u=a[h].keys;if(u&&0!==u.length)if(u[0].morphTargets){for(var l={},c=0;c<u.length;c++)if(u[c].morphTargets)for(var d=0;d<u[c].morphTargets.length;d++)l[u[c].morphTargets[d]]=-1;for(var p in l){var f=[],m=[];for(d=0;d!==u[c].morphTargets.length;++d){var v=u[c];f.push(v.time),m.push(v.morphTarget===p?1:0)}n.push(new jw(".morphTargetInfluence["+p+"]",f,m))}s=l.length*(o||1)}else{var g=".bones["+e[h].name+"]";i(Gw,g+".position",u,"pos",n),i(zw,g+".quaternion",u,"rot",n),i(Gw,g+".scale",u,"scl",n)}}return 0===n.length?null:new Vw(r,s,n)}}),Object.assign(Vw.prototype,{resetDuration:function(){for(var t=0,e=0,i=this.tracks.length;e!==i;++e){var n=this.tracks[e];t=Math.max(t,n.times[n.times.length-1])}return this.duration=t,this},trim:function(){for(var t=0;t<this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this},validate:function(){for(var t=!0,e=0;e<this.tracks.length;e++)t=t&&this.tracks[e].validate();return t},optimize:function(){for(var t=0;t<this.tracks.length;t++)this.tracks[t].optimize();return this},clone:function(){for(var t=[],e=0;e<this.tracks.length;e++)t.push(this.tracks[e].clone());return new Vw(this.name,this.duration,t)}});var qw={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};function Jw(t,e,i){var n=this,r=!1,s=0,o=0,a=void 0,h=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.itemStart=function(t){o++,!1===r&&void 0!==n.onStart&&n.onStart(t,s,o),r=!0},this.itemEnd=function(t){s++,void 0!==n.onProgress&&n.onProgress(t,s,o),s===o&&(r=!1,void 0!==n.onLoad&&n.onLoad())},this.itemError=function(t){void 0!==n.onError&&n.onError(t)},this.resolveURL=function(t){return a?a(t):t},this.setURLModifier=function(t){return a=t,this},this.addHandler=function(t,e){return h.push(t,e),this},this.removeHandler=function(t){var e=h.indexOf(t);return-1!==e&&h.splice(e,2),this},this.getHandler=function(t){for(var e=0,i=h.length;e<i;e+=2){var n=h[e],r=h[e+1];if(n.global&&(n.lastIndex=0),n.test(t))return r}return null}}var Zw=new Jw;function Kw(t){this.manager=void 0!==t?t:Zw,this.crossOrigin="anonymous",this.path="",this.resourcePath=""}Object.assign(Kw.prototype,{load:function(){},parse:function(){},setCrossOrigin:function(t){return this.crossOrigin=t,this},setPath:function(t){return this.path=t,this},setResourcePath:function(t){return this.resourcePath=t,this}});var Qw={};function $w(t){Kw.call(this,t)}function tT(t){Kw.call(this,t)}function eT(t){Kw.call(this,t)}function iT(t){Kw.call(this,t)}function nT(t){Kw.call(this,t)}function rT(t){Kw.call(this,t)}function sT(t){Kw.call(this,t)}function oT(){this.type="Curve",this.arcLengthDivisions=200}function aT(t,e,i,n,r,s,o,a){oT.call(this),this.type="EllipseCurve",this.aX=t||0,this.aY=e||0,this.xRadius=i||1,this.yRadius=n||1,this.aStartAngle=r||0,this.aEndAngle=s||2*Math.PI,this.aClockwise=o||!1,this.aRotation=a||0}function hT(t,e,i,n,r,s){aT.call(this,t,e,i,i,n,r,s),this.type="ArcCurve"}function uT(){var t=0,e=0,i=0,n=0;function r(r,s,o,a){t=r,e=o,i=-3*r+3*s-2*o-a,n=2*r-2*s+o+a}return{initCatmullRom:function(t,e,i,n,s){r(e,i,s*(i-t),s*(n-e))},initNonuniformCatmullRom:function(t,e,i,n,s,o,a){var h=(e-t)/s-(i-t)/(s+o)+(i-e)/o,u=(i-e)/o-(n-e)/(o+a)+(n-i)/a;r(e,i,h*=o,u*=o)},calc:function(r){var s=r*r;return t+e*r+i*s+n*(s*r)}}}$w.prototype=Object.assign(Object.create(Kw.prototype),{constructor:$w,load:function(t,e,i,n){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);var r=this,s=qw.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;if(void 0===Qw[t]){var o=t.match(/^data:(.*?)(;base64)?,(.*)$/);if(o){var a=o[1],h=!!o[2],u=o[3];u=decodeURIComponent(u),h&&(u=atob(u));try{var l,c=(this.responseType||"").toLowerCase();switch(c){case"arraybuffer":case"blob":for(var d=new Uint8Array(u.length),p=0;p<u.length;p++)d[p]=u.charCodeAt(p);l="blob"===c?new Blob([d.buffer],{type:a}):d.buffer;break;case"document":var f=new DOMParser;l=f.parseFromString(u,a);break;case"json":l=JSON.parse(u);break;default:l=u}setTimeout((function(){e&&e(l),r.manager.itemEnd(t)}),0)}catch(e){setTimeout((function(){n&&n(e),r.manager.itemError(t),r.manager.itemEnd(t)}),0)}}else{Qw[t]=[],Qw[t].push({onLoad:e,onProgress:i,onError:n});var m=new XMLHttpRequest;for(var v in m.open("GET",t,!0),m.addEventListener("load",(function(e){var i=this.response,n=Qw[t];if(delete Qw[t],200===this.status||0===this.status){0===this.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),qw.add(t,i);for(var s=0,o=n.length;s<o;s++){(a=n[s]).onLoad&&a.onLoad(i)}r.manager.itemEnd(t)}else{for(s=0,o=n.length;s<o;s++){var a;(a=n[s]).onError&&a.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}}),!1),m.addEventListener("progress",(function(e){for(var i=Qw[t],n=0,r=i.length;n<r;n++){var s=i[n];s.onProgress&&s.onProgress(e)}}),!1),m.addEventListener("error",(function(e){var i=Qw[t];delete Qw[t];for(var n=0,s=i.length;n<s;n++){var o=i[n];o.onError&&o.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}),!1),m.addEventListener("abort",(function(e){var i=Qw[t];delete Qw[t];for(var n=0,s=i.length;n<s;n++){var o=i[n];o.onError&&o.onError(e)}r.manager.itemError(t),r.manager.itemEnd(t)}),!1),void 0!==this.responseType&&(m.responseType=this.responseType),void 0!==this.withCredentials&&(m.withCredentials=this.withCredentials),m.overrideMimeType&&m.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain"),this.requestHeader)m.setRequestHeader(v,this.requestHeader[v]);m.send(null)}return r.manager.itemStart(t),m}Qw[t].push({onLoad:e,onProgress:i,onError:n})},setResponseType:function(t){return this.responseType=t,this},setWithCredentials:function(t){return this.withCredentials=t,this},setMimeType:function(t){return this.mimeType=t,this},setRequestHeader:function(t){return this.requestHeader=t,this}}),tT.prototype=Object.assign(Object.create(Kw.prototype),{constructor:tT,load:function(t,e,i,n){var r=this,s=new $w(r.manager);s.setPath(r.path),s.load(t,(function(t){e(r.parse(JSON.parse(t)))}),i,n)},parse:function(t){for(var e=[],i=0;i<t.length;i++){var n=Vw.parse(t[i]);e.push(n)}return e}}),eT.prototype=Object.assign(Object.create(Kw.prototype),{constructor:eT,load:function(t,e,i,n){var r=this,s=[],o=new ob;o.image=s;var a=new $w(this.manager);function h(h){a.load(t[h],(function(t){var i=r.parse(t,!0);s[h]={width:i.width,height:i.height,format:i.format,mipmaps:i.mipmaps},6===(u+=1)&&(1===i.mipmapCount&&(o.minFilter=jf),o.format=i.format,o.needsUpdate=!0,e&&e(o))}),i,n)}if(a.setPath(this.path),a.setResponseType("arraybuffer"),Array.isArray(t))for(var u=0,l=0,c=t.length;l<c;++l)h(l);else a.load(t,(function(t){var i=r.parse(t,!0);if(i.isCubemap)for(var n=i.mipmaps.length/i.mipmapCount,a=0;a<n;a++){s[a]={mipmaps:[]};for(var h=0;h<i.mipmapCount;h++)s[a].mipmaps.push(i.mipmaps[a*i.mipmapCount+h]),s[a].format=i.format,s[a].width=i.width,s[a].height=i.height}else o.image.width=i.width,o.image.height=i.height,o.mipmaps=i.mipmaps;1===i.mipmapCount&&(o.minFilter=jf),o.format=i.format,o.needsUpdate=!0,e&&e(o)}),i,n);return o}}),iT.prototype=Object.assign(Object.create(Kw.prototype),{constructor:iT,load:function(t,e,i,n){var r=this,s=new ty,o=new $w(this.manager);return o.setResponseType("arraybuffer"),o.setPath(this.path),o.load(t,(function(t){var i=r.parse(t);i&&(void 0!==i.image?s.image=i.image:void 0!==i.data&&(s.image.width=i.width,s.image.height=i.height,s.image.data=i.data),s.wrapS=void 0!==i.wrapS?i.wrapS:Yf,s.wrapT=void 0!==i.wrapT?i.wrapT:Yf,s.magFilter=void 0!==i.magFilter?i.magFilter:jf,s.minFilter=void 0!==i.minFilter?i.minFilter:jf,s.anisotropy=void 0!==i.anisotropy?i.anisotropy:1,void 0!==i.format&&(s.format=i.format),void 0!==i.type&&(s.type=i.type),void 0!==i.mipmaps&&(s.mipmaps=i.mipmaps,s.minFilter=Hf),1===i.mipmapCount&&(s.minFilter=jf),s.needsUpdate=!0,e&&e(s,i))}),i,n),s}}),nT.prototype=Object.assign(Object.create(Kw.prototype),{constructor:nT,load:function(t,e,i,n){void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);var r=this,s=qw.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;var o=document.createElementNS("http://www.w3.org/1999/xhtml","img");function a(){o.removeEventListener("load",a,!1),o.removeEventListener("error",h,!1),qw.add(t,this),e&&e(this),r.manager.itemEnd(t)}function h(e){o.removeEventListener("load",a,!1),o.removeEventListener("error",h,!1),n&&n(e),r.manager.itemError(t),r.manager.itemEnd(t)}return o.addEventListener("load",a,!1),o.addEventListener("error",h,!1),"data:"!==t.substr(0,5)&&void 0!==this.crossOrigin&&(o.crossOrigin=this.crossOrigin),r.manager.itemStart(t),o.src=t,o}}),rT.prototype=Object.assign(Object.create(Kw.prototype),{constructor:rT,load:function(t,e,i,n){var r=new wy,s=new nT(this.manager);s.setCrossOrigin(this.crossOrigin),s.setPath(this.path);var o=0;function a(i){s.load(t[i],(function(t){r.images[i]=t,6===++o&&(r.needsUpdate=!0,e&&e(r))}),void 0,n)}for(var h=0;h<t.length;++h)a(h);return r}}),sT.prototype=Object.assign(Object.create(Kw.prototype),{constructor:sT,load:function(t,e,i,n){var r=new xm,s=new nT(this.manager);return s.setCrossOrigin(this.crossOrigin),s.setPath(this.path),s.load(t,(function(i){r.image=i;var n=t.search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/);r.format=n?Jf:Zf,r.needsUpdate=!0,void 0!==e&&e(r)}),i,n),r}}),Object.assign(oT.prototype,{getPoint:function(){return console.warn("THREE.Curve: .getPoint() not implemented."),null},getPointAt:function(t,e){var i=this.getUtoTmapping(t);return this.getPoint(i,e)},getPoints:function(t){void 0===t&&(t=5);for(var e=[],i=0;i<=t;i++)e.push(this.getPoint(i/t));return e},getSpacedPoints:function(t){void 0===t&&(t=5);for(var e=[],i=0;i<=t;i++)e.push(this.getPointAt(i/t));return e},getLength:function(){var t=this.getLengths();return t[t.length-1]},getLengths:function(t){if(void 0===t&&(t=this.arcLengthDivisions),this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;var e,i,n=[],r=this.getPoint(0),s=0;for(n.push(0),i=1;i<=t;i++)s+=(e=this.getPoint(i/t)).distanceTo(r),n.push(s),r=e;return this.cacheArcLengths=n,n},updateArcLengths:function(){this.needsUpdate=!0,this.getLengths()},getUtoTmapping:function(t,e){var i,n=this.getLengths(),r=0,s=n.length;i=e||t*n[s-1];for(var o,a=0,h=s-1;a<=h;)if((o=n[r=Math.floor(a+(h-a)/2)]-i)<0)a=r+1;else{if(!(o>0)){h=r;break}h=r-1}if(n[r=h]===i)return r/(s-1);var u=n[r];return(r+(i-u)/(n[r+1]-u))/(s-1)},getTangent:function(t){var e=1e-4,i=t-e,n=t+e;i<0&&(i=0),n>1&&(n=1);var r=this.getPoint(i);return this.getPoint(n).clone().sub(r).normalize()},getTangentAt:function(t){var e=this.getUtoTmapping(t);return this.getTangent(e)},computeFrenetFrames:function(t,e){var i,n,r,s=new Lm,o=[],a=[],h=[],u=new Lm,l=new Im;for(i=0;i<=t;i++)n=i/t,o[i]=this.getTangentAt(n),o[i].normalize();a[0]=new Lm,h[0]=new Lm;var c=Number.MAX_VALUE,d=Math.abs(o[0].x),p=Math.abs(o[0].y),f=Math.abs(o[0].z);for(d<=c&&(c=d,s.set(1,0,0)),p<=c&&(c=p,s.set(0,1,0)),f<=c&&s.set(0,0,1),u.crossVectors(o[0],s).normalize(),a[0].crossVectors(o[0],u),h[0].crossVectors(o[0],a[0]),i=1;i<=t;i++)a[i]=a[i-1].clone(),h[i]=h[i-1].clone(),u.crossVectors(o[i-1],o[i]),u.length()>Number.EPSILON&&(u.normalize(),r=Math.acos(mm.clamp(o[i-1].dot(o[i]),-1,1)),a[i].applyMatrix4(l.makeRotationAxis(u,r))),h[i].crossVectors(o[i],a[i]);if(!0===e)for(r=Math.acos(mm.clamp(a[0].dot(a[t]),-1,1)),r/=t,o[0].dot(u.crossVectors(a[0],a[t]))>0&&(r=-r),i=1;i<=t;i++)a[i].applyMatrix4(l.makeRotationAxis(o[i],r*i)),h[i].crossVectors(o[i],a[i]);return{tangents:o,normals:a,binormals:h}},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this},toJSON:function(){var t={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t},fromJSON:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}),aT.prototype=Object.create(oT.prototype),aT.prototype.constructor=aT,aT.prototype.isEllipseCurve=!0,aT.prototype.getPoint=function(t,e){for(var i=e||new vm,n=2*Math.PI,r=this.aEndAngle-this.aStartAngle,s=Math.abs(r)<Number.EPSILON;r<0;)r+=n;for(;r>n;)r-=n;r<Number.EPSILON&&(r=s?0:n),!0!==this.aClockwise||s||(r===n?r=-n:r-=n);var o=this.aStartAngle+t*r,a=this.aX+this.xRadius*Math.cos(o),h=this.aY+this.yRadius*Math.sin(o);if(0!==this.aRotation){var u=Math.cos(this.aRotation),l=Math.sin(this.aRotation),c=a-this.aX,d=h-this.aY;a=c*u-d*l+this.aX,h=c*l+d*u+this.aY}return i.set(a,h)},aT.prototype.copy=function(t){return oT.prototype.copy.call(this,t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this},aT.prototype.toJSON=function(){var t=oT.prototype.toJSON.call(this);return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t},aT.prototype.fromJSON=function(t){return oT.prototype.fromJSON.call(this,t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this},hT.prototype=Object.create(aT.prototype),hT.prototype.constructor=hT,hT.prototype.isArcCurve=!0;var lT=new Lm,cT=new uT,dT=new uT,pT=new uT;function fT(t,e,i,n){oT.call(this),this.type="CatmullRomCurve3",this.points=t||[],this.closed=e||!1,this.curveType=i||"centripetal",this.tension=n||.5}function mT(t,e,i,n,r){var s=.5*(n-e),o=.5*(r-i),a=t*t;return(2*i-2*n+s+o)*(t*a)+(-3*i+3*n-2*s-o)*a+s*t+i}function vT(t,e,i,n){return function(t,e){var i=1-t;return i*i*e}(t,e)+function(t,e){return 2*(1-t)*t*e}(t,i)+function(t,e){return t*t*e}(t,n)}function gT(t,e,i,n,r){return function(t,e){var i=1-t;return i*i*i*e}(t,e)+function(t,e){var i=1-t;return 3*i*i*t*e}(t,i)+function(t,e){return 3*(1-t)*t*t*e}(t,n)+function(t,e){return t*t*t*e}(t,r)}function yT(t,e,i,n){oT.call(this),this.type="CubicBezierCurve",this.v0=t||new vm,this.v1=e||new vm,this.v2=i||new vm,this.v3=n||new vm}function _T(t,e,i,n){oT.call(this),this.type="CubicBezierCurve3",this.v0=t||new Lm,this.v1=e||new Lm,this.v2=i||new Lm,this.v3=n||new Lm}function xT(t,e){oT.call(this),this.type="LineCurve",this.v1=t||new vm,this.v2=e||new vm}function bT(t,e){oT.call(this),this.type="LineCurve3",this.v1=t||new Lm,this.v2=e||new Lm}function wT(t,e,i){oT.call(this),this.type="QuadraticBezierCurve",this.v0=t||new vm,this.v1=e||new vm,this.v2=i||new vm}function TT(t,e,i){oT.call(this),this.type="QuadraticBezierCurve3",this.v0=t||new Lm,this.v1=e||new Lm,this.v2=i||new Lm}function MT(t){oT.call(this),this.type="SplineCurve",this.points=t||[]}fT.prototype=Object.create(oT.prototype),fT.prototype.constructor=fT,fT.prototype.isCatmullRomCurve3=!0,fT.prototype.getPoint=function(t,e){var i,n,r,s,o=e||new Lm,a=this.points,h=a.length,u=(h-(this.closed?0:1))*t,l=Math.floor(u),c=u-l;if(this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/h)+1)*h:0===c&&l===h-1&&(l=h-2,c=1),this.closed||l>0?i=a[(l-1)%h]:(lT.subVectors(a[0],a[1]).add(a[0]),i=lT),n=a[l%h],r=a[(l+1)%h],this.closed||l+2<h?s=a[(l+2)%h]:(lT.subVectors(a[h-1],a[h-2]).add(a[h-1]),s=lT),"centripetal"===this.curveType||"chordal"===this.curveType){var d="chordal"===this.curveType?.5:.25,p=Math.pow(i.distanceToSquared(n),d),f=Math.pow(n.distanceToSquared(r),d),m=Math.pow(r.distanceToSquared(s),d);f<1e-4&&(f=1),p<1e-4&&(p=f),m<1e-4&&(m=f),cT.initNonuniformCatmullRom(i.x,n.x,r.x,s.x,p,f,m),dT.initNonuniformCatmullRom(i.y,n.y,r.y,s.y,p,f,m),pT.initNonuniformCatmullRom(i.z,n.z,r.z,s.z,p,f,m)}else"catmullrom"===this.curveType&&(cT.initCatmullRom(i.x,n.x,r.x,s.x,this.tension),dT.initCatmullRom(i.y,n.y,r.y,s.y,this.tension),pT.initCatmullRom(i.z,n.z,r.z,s.z,this.tension));return o.set(cT.calc(c),dT.calc(c),pT.calc(c)),o},fT.prototype.copy=function(t){oT.prototype.copy.call(this,t),this.points=[];for(var e=0,i=t.points.length;e<i;e++){var n=t.points[e];this.points.push(n.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this},fT.prototype.toJSON=function(){var t=oT.prototype.toJSON.call(this);t.points=[];for(var e=0,i=this.points.length;e<i;e++){var n=this.points[e];t.points.push(n.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t},fT.prototype.fromJSON=function(t){oT.prototype.fromJSON.call(this,t),this.points=[];for(var e=0,i=t.points.length;e<i;e++){var n=t.points[e];this.points.push((new Lm).fromArray(n))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this},yT.prototype=Object.create(oT.prototype),yT.prototype.constructor=yT,yT.prototype.isCubicBezierCurve=!0,yT.prototype.getPoint=function(t,e){var i=e||new vm,n=this.v0,r=this.v1,s=this.v2,o=this.v3;return i.set(gT(t,n.x,r.x,s.x,o.x),gT(t,n.y,r.y,s.y,o.y)),i},yT.prototype.copy=function(t){return oT.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this},yT.prototype.toJSON=function(){var t=oT.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t},yT.prototype.fromJSON=function(t){return oT.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this},_T.prototype=Object.create(oT.prototype),_T.prototype.constructor=_T,_T.prototype.isCubicBezierCurve3=!0,_T.prototype.getPoint=function(t,e){var i=e||new Lm,n=this.v0,r=this.v1,s=this.v2,o=this.v3;return i.set(gT(t,n.x,r.x,s.x,o.x),gT(t,n.y,r.y,s.y,o.y),gT(t,n.z,r.z,s.z,o.z)),i},_T.prototype.copy=function(t){return oT.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this},_T.prototype.toJSON=function(){var t=oT.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t},_T.prototype.fromJSON=function(t){return oT.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this},xT.prototype=Object.create(oT.prototype),xT.prototype.constructor=xT,xT.prototype.isLineCurve=!0,xT.prototype.getPoint=function(t,e){var i=e||new vm;return 1===t?i.copy(this.v2):(i.copy(this.v2).sub(this.v1),i.multiplyScalar(t).add(this.v1)),i},xT.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},xT.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()},xT.prototype.copy=function(t){return oT.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},xT.prototype.toJSON=function(){var t=oT.prototype.toJSON.call(this);return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},xT.prototype.fromJSON=function(t){return oT.prototype.fromJSON.call(this,t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},bT.prototype=Object.create(oT.prototype),bT.prototype.constructor=bT,bT.prototype.isLineCurve3=!0,bT.prototype.getPoint=function(t,e){var i=e||new Lm;return 1===t?i.copy(this.v2):(i.copy(this.v2).sub(this.v1),i.multiplyScalar(t).add(this.v1)),i},bT.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},bT.prototype.copy=function(t){return oT.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},bT.prototype.toJSON=function(){var t=oT.prototype.toJSON.call(this);return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},bT.prototype.fromJSON=function(t){return oT.prototype.fromJSON.call(this,t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},wT.prototype=Object.create(oT.prototype),wT.prototype.constructor=wT,wT.prototype.isQuadraticBezierCurve=!0,wT.prototype.getPoint=function(t,e){var i=e||new vm,n=this.v0,r=this.v1,s=this.v2;return i.set(vT(t,n.x,r.x,s.x),vT(t,n.y,r.y,s.y)),i},wT.prototype.copy=function(t){return oT.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this},wT.prototype.toJSON=function(){var t=oT.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},wT.prototype.fromJSON=function(t){return oT.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},TT.prototype=Object.create(oT.prototype),TT.prototype.constructor=TT,TT.prototype.isQuadraticBezierCurve3=!0,TT.prototype.getPoint=function(t,e){var i=e||new Lm,n=this.v0,r=this.v1,s=this.v2;return i.set(vT(t,n.x,r.x,s.x),vT(t,n.y,r.y,s.y),vT(t,n.z,r.z,s.z)),i},TT.prototype.copy=function(t){return oT.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this},TT.prototype.toJSON=function(){var t=oT.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},TT.prototype.fromJSON=function(t){return oT.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},MT.prototype=Object.create(oT.prototype),MT.prototype.constructor=MT,MT.prototype.isSplineCurve=!0,MT.prototype.getPoint=function(t,e){var i=e||new vm,n=this.points,r=(n.length-1)*t,s=Math.floor(r),o=r-s,a=n[0===s?s:s-1],h=n[s],u=n[s>n.length-2?n.length-1:s+1],l=n[s>n.length-3?n.length-1:s+2];return i.set(mT(o,a.x,h.x,u.x,l.x),mT(o,a.y,h.y,u.y,l.y)),i},MT.prototype.copy=function(t){oT.prototype.copy.call(this,t),this.points=[];for(var e=0,i=t.points.length;e<i;e++){var n=t.points[e];this.points.push(n.clone())}return this},MT.prototype.toJSON=function(){var t=oT.prototype.toJSON.call(this);t.points=[];for(var e=0,i=this.points.length;e<i;e++){var n=this.points[e];t.points.push(n.toArray())}return t},MT.prototype.fromJSON=function(t){oT.prototype.fromJSON.call(this,t),this.points=[];for(var e=0,i=t.points.length;e<i;e++){var n=t.points[e];this.points.push((new vm).fromArray(n))}return this};var ST=Object.freeze({__proto__:null,ArcCurve:hT,CatmullRomCurve3:fT,CubicBezierCurve:yT,CubicBezierCurve3:_T,EllipseCurve:aT,LineCurve:xT,LineCurve3:bT,QuadraticBezierCurve:wT,QuadraticBezierCurve3:TT,SplineCurve:MT});function ET(){oT.call(this),this.type="CurvePath",this.curves=[],this.autoClose=!1}function LT(t){ET.call(this),this.type="Path",this.currentPoint=new vm,t&&this.setFromPoints(t)}function AT(t){LT.call(this,t),this.uuid=mm.generateUUID(),this.type="Shape",this.holes=[]}function DT(t,e){$m.call(this),this.type="Light",this.color=new Wv(t),this.intensity=void 0!==e?e:1,this.receiveShadow=void 0}function PT(t,e,i){DT.call(this,t,i),this.type="HemisphereLight",this.castShadow=void 0,this.position.copy($m.DefaultUp),this.updateMatrix(),this.groundColor=new Wv(e)}function CT(t){this.camera=t,this.bias=0,this.radius=1,this.mapSize=new vm(512,512),this.map=null,this.mapPass=null,this.matrix=new Im,this._frustum=new ny,this._frameExtents=new vm(1,1),this._viewportCount=1,this._viewports=[new bm(0,0,1,1)]}function OT(){CT.call(this,new Zg(50,1,.5,500))}function kT(t,e,i,n,r,s){DT.call(this,t,e),this.type="SpotLight",this.position.copy($m.DefaultUp),this.updateMatrix(),this.target=new $m,Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(t){this.intensity=t/Math.PI}}),this.distance=void 0!==i?i:0,this.angle=void 0!==n?n:Math.PI/3,this.penumbra=void 0!==r?r:0,this.decay=void 0!==s?s:1,this.shadow=new OT}function RT(){CT.call(this,new Zg(90,1,.5,500)),this._frameExtents=new vm(4,2),this._viewportCount=6,this._viewports=[new bm(2,1,1,1),new bm(0,1,1,1),new bm(3,1,1,1),new bm(1,1,1,1),new bm(3,0,1,1),new bm(1,0,1,1)],this._cubeDirections=[new Lm(1,0,0),new Lm(-1,0,0),new Lm(0,0,1),new Lm(0,0,-1),new Lm(0,1,0),new Lm(0,-1,0)],this._cubeUps=[new Lm(0,1,0),new Lm(0,1,0),new Lm(0,1,0),new Lm(0,1,0),new Lm(0,0,1),new Lm(0,0,-1)]}function IT(t,e,i,n){DT.call(this,t,e),this.type="PointLight",Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(t){this.intensity=t/(4*Math.PI)}}),this.distance=void 0!==i?i:0,this.decay=void 0!==n?n:1,this.shadow=new RT}function YT(t,e,i,n,r,s){Jg.call(this),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=void 0!==t?t:-1,this.right=void 0!==e?e:1,this.top=void 0!==i?i:1,this.bottom=void 0!==n?n:-1,this.near=void 0!==r?r:.1,this.far=void 0!==s?s:2e3,this.updateProjectionMatrix()}function FT(){CT.call(this,new YT(-5,5,5,-5,.5,500))}function NT(t,e){DT.call(this,t,e),this.type="DirectionalLight",this.position.copy($m.DefaultUp),this.updateMatrix(),this.target=new $m,this.shadow=new FT}function BT(t,e){DT.call(this,t,e),this.type="AmbientLight",this.castShadow=void 0}function UT(t,e,i,n){DT.call(this,t,e),this.type="RectAreaLight",this.width=void 0!==i?i:10,this.height=void 0!==n?n:10}function jT(t){Kw.call(this,t),this.textures={}}ET.prototype=Object.assign(Object.create(oT.prototype),{constructor:ET,add:function(t){this.curves.push(t)},closePath:function(){var t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new xT(e,t))},getPoint:function(t){for(var e=t*this.getLength(),i=this.getCurveLengths(),n=0;n<i.length;){if(i[n]>=e){var r=i[n]-e,s=this.curves[n],o=s.getLength(),a=0===o?0:1-r/o;return s.getPointAt(a)}n++}return null},getLength:function(){var t=this.getCurveLengths();return t[t.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var t=[],e=0,i=0,n=this.curves.length;i<n;i++)e+=this.curves[i].getLength(),t.push(e);return this.cacheLengths=t,t},getSpacedPoints:function(t){void 0===t&&(t=40);for(var e=[],i=0;i<=t;i++)e.push(this.getPoint(i/t));return this.autoClose&&e.push(e[0]),e},getPoints:function(t){t=t||12;for(var e,i=[],n=0,r=this.curves;n<r.length;n++)for(var s=r[n],o=s&&s.isEllipseCurve?2*t:s&&(s.isLineCurve||s.isLineCurve3)?1:s&&s.isSplineCurve?t*s.points.length:t,a=s.getPoints(o),h=0;h<a.length;h++){var u=a[h];e&&e.equals(u)||(i.push(u),e=u)}return this.autoClose&&i.length>1&&!i[i.length-1].equals(i[0])&&i.push(i[0]),i},copy:function(t){oT.prototype.copy.call(this,t),this.curves=[];for(var e=0,i=t.curves.length;e<i;e++){var n=t.curves[e];this.curves.push(n.clone())}return this.autoClose=t.autoClose,this},toJSON:function(){var t=oT.prototype.toJSON.call(this);t.autoClose=this.autoClose,t.curves=[];for(var e=0,i=this.curves.length;e<i;e++){var n=this.curves[e];t.curves.push(n.toJSON())}return t},fromJSON:function(t){oT.prototype.fromJSON.call(this,t),this.autoClose=t.autoClose,this.curves=[];for(var e=0,i=t.curves.length;e<i;e++){var n=t.curves[e];this.curves.push((new ST[n.type]).fromJSON(n))}return this}}),LT.prototype=Object.assign(Object.create(ET.prototype),{constructor:LT,setFromPoints:function(t){this.moveTo(t[0].x,t[0].y);for(var e=1,i=t.length;e<i;e++)this.lineTo(t[e].x,t[e].y);return this},moveTo:function(t,e){return this.currentPoint.set(t,e),this},lineTo:function(t,e){var i=new xT(this.currentPoint.clone(),new vm(t,e));return this.curves.push(i),this.currentPoint.set(t,e),this},quadraticCurveTo:function(t,e,i,n){var r=new wT(this.currentPoint.clone(),new vm(t,e),new vm(i,n));return this.curves.push(r),this.currentPoint.set(i,n),this},bezierCurveTo:function(t,e,i,n,r,s){var o=new yT(this.currentPoint.clone(),new vm(t,e),new vm(i,n),new vm(r,s));return this.curves.push(o),this.currentPoint.set(r,s),this},splineThru:function(t){var e=new MT([this.currentPoint.clone()].concat(t));return this.curves.push(e),this.currentPoint.copy(t[t.length-1]),this},arc:function(t,e,i,n,r,s){var o=this.currentPoint.x,a=this.currentPoint.y;return this.absarc(t+o,e+a,i,n,r,s),this},absarc:function(t,e,i,n,r,s){return this.absellipse(t,e,i,i,n,r,s),this},ellipse:function(t,e,i,n,r,s,o,a){var h=this.currentPoint.x,u=this.currentPoint.y;return this.absellipse(t+h,e+u,i,n,r,s,o,a),this},absellipse:function(t,e,i,n,r,s,o,a){var h=new aT(t,e,i,n,r,s,o,a);if(this.curves.length>0){var u=h.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(h);var l=h.getPoint(1);return this.currentPoint.copy(l),this},copy:function(t){return ET.prototype.copy.call(this,t),this.currentPoint.copy(t.currentPoint),this},toJSON:function(){var t=ET.prototype.toJSON.call(this);return t.currentPoint=this.currentPoint.toArray(),t},fromJSON:function(t){return ET.prototype.fromJSON.call(this,t),this.currentPoint.fromArray(t.currentPoint),this}}),AT.prototype=Object.assign(Object.create(LT.prototype),{constructor:AT,getPointsHoles:function(t){for(var e=[],i=0,n=this.holes.length;i<n;i++)e[i]=this.holes[i].getPoints(t);return e},extractPoints:function(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}},copy:function(t){LT.prototype.copy.call(this,t),this.holes=[];for(var e=0,i=t.holes.length;e<i;e++){var n=t.holes[e];this.holes.push(n.clone())}return this},toJSON:function(){var t=LT.prototype.toJSON.call(this);t.uuid=this.uuid,t.holes=[];for(var e=0,i=this.holes.length;e<i;e++){var n=this.holes[e];t.holes.push(n.toJSON())}return t},fromJSON:function(t){LT.prototype.fromJSON.call(this,t),this.uuid=t.uuid,this.holes=[];for(var e=0,i=t.holes.length;e<i;e++){var n=t.holes[e];this.holes.push((new LT).fromJSON(n))}return this}}),DT.prototype=Object.assign(Object.create($m.prototype),{constructor:DT,isLight:!0,copy:function(t){return $m.prototype.copy.call(this,t),this.color.copy(t.color),this.intensity=t.intensity,this},toJSON:function(t){var e=$m.prototype.toJSON.call(this,t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}),PT.prototype=Object.assign(Object.create(DT.prototype),{constructor:PT,isHemisphereLight:!0,copy:function(t){return DT.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}),Object.assign(CT.prototype,{_projScreenMatrix:new Im,_lightPositionWorld:new Lm,_lookTarget:new Lm,getViewportCount:function(){return this._viewportCount},getFrustum:function(){return this._frustum},updateMatrices:function(t){var e=this.camera,i=this.matrix,n=this._projScreenMatrix,r=this._lookTarget,s=this._lightPositionWorld;s.setFromMatrixPosition(t.matrixWorld),e.position.copy(s),r.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(r),e.updateMatrixWorld(),n.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(n),i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(e.projectionMatrix),i.multiply(e.matrixWorldInverse)},getViewport:function(t){return this._viewports[t]},getFrameExtents:function(){return this._frameExtents},copy:function(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var t={};return 0!==this.bias&&(t.bias=this.bias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}),OT.prototype=Object.assign(Object.create(CT.prototype),{constructor:OT,isSpotLightShadow:!0,updateMatrices:function(t){var e=this.camera,i=2*mm.RAD2DEG*t.angle,n=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;i===e.fov&&n===e.aspect&&r===e.far||(e.fov=i,e.aspect=n,e.far=r,e.updateProjectionMatrix()),CT.prototype.updateMatrices.call(this,t)}}),kT.prototype=Object.assign(Object.create(DT.prototype),{constructor:kT,isSpotLight:!0,copy:function(t){return DT.prototype.copy.call(this,t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),RT.prototype=Object.assign(Object.create(CT.prototype),{constructor:RT,isPointLightShadow:!0,updateMatrices:function(t,e){void 0===e&&(e=0);var i=this.camera,n=this.matrix,r=this._lightPositionWorld,s=this._lookTarget,o=this._projScreenMatrix;r.setFromMatrixPosition(t.matrixWorld),i.position.copy(r),s.copy(i.position),s.add(this._cubeDirections[e]),i.up.copy(this._cubeUps[e]),i.lookAt(s),i.updateMatrixWorld(),n.makeTranslation(-r.x,-r.y,-r.z),o.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse),this._frustum.setFromProjectionMatrix(o)}}),IT.prototype=Object.assign(Object.create(DT.prototype),{constructor:IT,isPointLight:!0,copy:function(t){return DT.prototype.copy.call(this,t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}),YT.prototype=Object.assign(Object.create(Jg.prototype),{constructor:YT,isOrthographicCamera:!0,copy:function(t,e){return Jg.prototype.copy.call(this,t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this},setViewOffset:function(t,e,i,n,r,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=n,this.view.width=r,this.view.height=s,this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()},updateProjectionMatrix:function(){var t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,n=(this.top+this.bottom)/2,r=i-t,s=i+t,o=n+e,a=n-e;if(null!==this.view&&this.view.enabled){var h=(this.right-this.left)/this.view.fullWidth/this.zoom,u=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s=(r+=h*this.view.offsetX)+h*this.view.width,a=(o-=u*this.view.offsetY)-u*this.view.height}this.projectionMatrix.makeOrthographic(r,s,o,a,this.near,this.far),this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(t){var e=$m.prototype.toJSON.call(this,t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}),FT.prototype=Object.assign(Object.create(CT.prototype),{constructor:FT,isDirectionalLightShadow:!0,updateMatrices:function(t){CT.prototype.updateMatrices.call(this,t)}}),NT.prototype=Object.assign(Object.create(DT.prototype),{constructor:NT,isDirectionalLight:!0,copy:function(t){return DT.prototype.copy.call(this,t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),BT.prototype=Object.assign(Object.create(DT.prototype),{constructor:BT,isAmbientLight:!0}),UT.prototype=Object.assign(Object.create(DT.prototype),{constructor:UT,isRectAreaLight:!0,copy:function(t){return DT.prototype.copy.call(this,t),this.width=t.width,this.height=t.height,this},toJSON:function(t){var e=DT.prototype.toJSON.call(this,t);return e.object.width=this.width,e.object.height=this.height,e}}),jT.prototype=Object.assign(Object.create(Kw.prototype),{constructor:jT,load:function(t,e,i,n){var r=this,s=new $w(r.manager);s.setPath(r.path),s.load(t,(function(t){e(r.parse(JSON.parse(t)))}),i,n)},parse:function(t){var e=this.textures;function i(t){return void 0===e[t]&&console.warn("THREE.MaterialLoader: Undefined texture",t),e[t]}var n=new Ow[t.type];if(void 0!==t.uuid&&(n.uuid=t.uuid),void 0!==t.name&&(n.name=t.name),void 0!==t.color&&n.color.setHex(t.color),void 0!==t.roughness&&(n.roughness=t.roughness),void 0!==t.metalness&&(n.metalness=t.metalness),void 0!==t.sheen&&(n.sheen=(new Wv).setHex(t.sheen)),void 0!==t.emissive&&n.emissive.setHex(t.emissive),void 0!==t.specular&&n.specular.setHex(t.specular),void 0!==t.shininess&&(n.shininess=t.shininess),void 0!==t.clearcoat&&(n.clearcoat=t.clearcoat),void 0!==t.clearcoatRoughness&&(n.clearcoatRoughness=t.clearcoatRoughness),void 0!==t.fog&&(n.fog=t.fog),void 0!==t.flatShading&&(n.flatShading=t.flatShading),void 0!==t.blending&&(n.blending=t.blending),void 0!==t.combine&&(n.combine=t.combine),void 0!==t.side&&(n.side=t.side),void 0!==t.opacity&&(n.opacity=t.opacity),void 0!==t.transparent&&(n.transparent=t.transparent),void 0!==t.alphaTest&&(n.alphaTest=t.alphaTest),void 0!==t.depthTest&&(n.depthTest=t.depthTest),void 0!==t.depthWrite&&(n.depthWrite=t.depthWrite),void 0!==t.colorWrite&&(n.colorWrite=t.colorWrite),void 0!==t.stencilWrite&&(n.stencilWrite=t.stencilWrite),void 0!==t.stencilWriteMask&&(n.stencilWriteMask=t.stencilWriteMask),void 0!==t.stencilFunc&&(n.stencilFunc=t.stencilFunc),void 0!==t.stencilRef&&(n.stencilRef=t.stencilRef),void 0!==t.stencilFuncMask&&(n.stencilFuncMask=t.stencilFuncMask),void 0!==t.stencilFail&&(n.stencilFail=t.stencilFail),void 0!==t.stencilZFail&&(n.stencilZFail=t.stencilZFail),void 0!==t.stencilZPass&&(n.stencilZPass=t.stencilZPass),void 0!==t.wireframe&&(n.wireframe=t.wireframe),void 0!==t.wireframeLinewidth&&(n.wireframeLinewidth=t.wireframeLinewidth),void 0!==t.wireframeLinecap&&(n.wireframeLinecap=t.wireframeLinecap),void 0!==t.wireframeLinejoin&&(n.wireframeLinejoin=t.wireframeLinejoin),void 0!==t.rotation&&(n.rotation=t.rotation),1!==t.linewidth&&(n.linewidth=t.linewidth),void 0!==t.dashSize&&(n.dashSize=t.dashSize),void 0!==t.gapSize&&(n.gapSize=t.gapSize),void 0!==t.scale&&(n.scale=t.scale),void 0!==t.polygonOffset&&(n.polygonOffset=t.polygonOffset),void 0!==t.polygonOffsetFactor&&(n.polygonOffsetFactor=t.polygonOffsetFactor),void 0!==t.polygonOffsetUnits&&(n.polygonOffsetUnits=t.polygonOffsetUnits),void 0!==t.skinning&&(n.skinning=t.skinning),void 0!==t.morphTargets&&(n.morphTargets=t.morphTargets),void 0!==t.morphNormals&&(n.morphNormals=t.morphNormals),void 0!==t.dithering&&(n.dithering=t.dithering),void 0!==t.vertexTangents&&(n.vertexTangents=t.vertexTangents),void 0!==t.visible&&(n.visible=t.visible),void 0!==t.toneMapped&&(n.toneMapped=t.toneMapped),void 0!==t.userData&&(n.userData=t.userData),void 0!==t.vertexColors&&("number"==typeof t.vertexColors?n.vertexColors=t.vertexColors>0:n.vertexColors=t.vertexColors),void 0!==t.uniforms)for(var r in t.uniforms){var s=t.uniforms[r];switch(n.uniforms[r]={},s.type){case"t":n.uniforms[r].value=i(s.value);break;case"c":n.uniforms[r].value=(new Wv).setHex(s.value);break;case"v2":n.uniforms[r].value=(new vm).fromArray(s.value);break;case"v3":n.uniforms[r].value=(new Lm).fromArray(s.value);break;case"v4":n.uniforms[r].value=(new bm).fromArray(s.value);break;case"m3":n.uniforms[r].value=(new gm).fromArray(s.value);case"m4":n.uniforms[r].value=(new Im).fromArray(s.value);break;default:n.uniforms[r].value=s.value}}if(void 0!==t.defines&&(n.defines=t.defines),void 0!==t.vertexShader&&(n.vertexShader=t.vertexShader),void 0!==t.fragmentShader&&(n.fragmentShader=t.fragmentShader),void 0!==t.extensions)for(var o in t.extensions)n.extensions[o]=t.extensions[o];if(void 0!==t.shading&&(n.flatShading=1===t.shading),void 0!==t.size&&(n.size=t.size),void 0!==t.sizeAttenuation&&(n.sizeAttenuation=t.sizeAttenuation),void 0!==t.map&&(n.map=i(t.map)),void 0!==t.matcap&&(n.matcap=i(t.matcap)),void 0!==t.alphaMap&&(n.alphaMap=i(t.alphaMap)),void 0!==t.bumpMap&&(n.bumpMap=i(t.bumpMap)),void 0!==t.bumpScale&&(n.bumpScale=t.bumpScale),void 0!==t.normalMap&&(n.normalMap=i(t.normalMap)),void 0!==t.normalMapType&&(n.normalMapType=t.normalMapType),void 0!==t.normalScale){var a=t.normalScale;!1===Array.isArray(a)&&(a=[a,a]),n.normalScale=(new vm).fromArray(a)}return void 0!==t.displacementMap&&(n.displacementMap=i(t.displacementMap)),void 0!==t.displacementScale&&(n.displacementScale=t.displacementScale),void 0!==t.displacementBias&&(n.displacementBias=t.displacementBias),void 0!==t.roughnessMap&&(n.roughnessMap=i(t.roughnessMap)),void 0!==t.metalnessMap&&(n.metalnessMap=i(t.metalnessMap)),void 0!==t.emissiveMap&&(n.emissiveMap=i(t.emissiveMap)),void 0!==t.emissiveIntensity&&(n.emissiveIntensity=t.emissiveIntensity),void 0!==t.specularMap&&(n.specularMap=i(t.specularMap)),void 0!==t.envMap&&(n.envMap=i(t.envMap)),void 0!==t.envMapIntensity&&(n.envMapIntensity=t.envMapIntensity),void 0!==t.reflectivity&&(n.reflectivity=t.reflectivity),void 0!==t.refractionRatio&&(n.refractionRatio=t.refractionRatio),void 0!==t.lightMap&&(n.lightMap=i(t.lightMap)),void 0!==t.lightMapIntensity&&(n.lightMapIntensity=t.lightMapIntensity),void 0!==t.aoMap&&(n.aoMap=i(t.aoMap)),void 0!==t.aoMapIntensity&&(n.aoMapIntensity=t.aoMapIntensity),void 0!==t.gradientMap&&(n.gradientMap=i(t.gradientMap)),void 0!==t.clearcoatMap&&(n.clearcoatMap=i(t.clearcoatMap)),void 0!==t.clearcoatRoughnessMap&&(n.clearcoatRoughnessMap=i(t.clearcoatRoughnessMap)),void 0!==t.clearcoatNormalMap&&(n.clearcoatNormalMap=i(t.clearcoatNormalMap)),void 0!==t.clearcoatNormalScale&&(n.clearcoatNormalScale=(new vm).fromArray(t.clearcoatNormalScale)),n},setTextures:function(t){return this.textures=t,this}});var HT=function(t){var e=t.lastIndexOf("/");return-1===e?"./":t.substr(0,e+1)};function zT(){yg.call(this),this.type="InstancedBufferGeometry",this.maxInstancedCount=void 0}function WT(t,e,i,n){"number"==typeof i&&(n=i,i=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.")),$v.call(this,t,e,i),this.meshPerAttribute=n||1}function GT(t){Kw.call(this,t)}zT.prototype=Object.assign(Object.create(yg.prototype),{constructor:zT,isInstancedBufferGeometry:!0,copy:function(t){return yg.prototype.copy.call(this,t),this.maxInstancedCount=t.maxInstancedCount,this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var t=yg.prototype.toJSON.call(this);return t.maxInstancedCount=this.maxInstancedCount,t.isInstancedBufferGeometry=!0,t}}),WT.prototype=Object.assign(Object.create($v.prototype),{constructor:WT,isInstancedBufferAttribute:!0,copy:function(t){return $v.prototype.copy.call(this,t),this.meshPerAttribute=t.meshPerAttribute,this},toJSON:function(){var t=$v.prototype.toJSON.call(this);return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}),GT.prototype=Object.assign(Object.create(Kw.prototype),{constructor:GT,load:function(t,e,i,n){var r=this,s=new $w(r.manager);s.setPath(r.path),s.load(t,(function(t){e(r.parse(JSON.parse(t)))}),i,n)},parse:function(t){var e=t.isInstancedBufferGeometry?new zT:new yg,i=t.data.index;if(void 0!==i){var n=new VT[i.type](i.array);e.setIndex(new $v(n,1))}var r=t.data.attributes;for(var s in r){var o=r[s],a=(n=new VT[o.type](o.array),new(o.isInstancedBufferAttribute?WT:$v)(n,o.itemSize,o.normalized));void 0!==o.name&&(a.name=o.name),e.setAttribute(s,a)}var h=t.data.morphAttributes;if(h)for(var s in h){for(var u=h[s],l=[],c=0,d=u.length;c<d;c++){o=u[c],a=new $v(n=new VT[o.type](o.array),o.itemSize,o.normalized);void 0!==o.name&&(a.name=o.name),l.push(a)}e.morphAttributes[s]=l}t.data.morphTargetsRelative&&(e.morphTargetsRelative=!0);var p=t.data.groups||t.data.drawcalls||t.data.offsets;if(void 0!==p){c=0;for(var f=p.length;c!==f;++c){var m=p[c];e.addGroup(m.start,m.count,m.materialIndex)}}var v=t.data.boundingSphere;if(void 0!==v){var g=new Lm;void 0!==v.center&&g.fromArray(v.center),e.boundingSphere=new gv(g,v.radius)}return t.name&&(e.name=t.name),t.userData&&(e.userData=t.userData),e}});var VT={Int8Array,Uint8Array,Uint8ClampedArray:"undefined"!=typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function XT(t){Kw.call(this,t)}XT.prototype=Object.assign(Object.create(Kw.prototype),{constructor:XT,load:function(t,e,i,n){var r=this,s=""===this.path?HT(t):this.path;this.resourcePath=this.resourcePath||s;var o=new $w(r.manager);o.setPath(this.path),o.load(t,(function(i){var s=null;try{s=JSON.parse(i)}catch(e){return void 0!==n&&n(e),void console.error("THREE:ObjectLoader: Can't parse "+t+".",e.message)}var o=s.metadata;void 0!==o&&void 0!==o.type&&"geometry"!==o.type.toLowerCase()?r.parse(s,e):console.error("THREE.ObjectLoader: Can't load "+t)}),i,n)},parse:function(t,e){var i=this.parseShape(t.shapes),n=this.parseGeometries(t.geometries,i),r=this.parseImages(t.images,(function(){void 0!==e&&e(a)})),s=this.parseTextures(t.textures,r),o=this.parseMaterials(t.materials,s),a=this.parseObject(t.object,n,o);return t.animations&&(a.animations=this.parseAnimations(t.animations)),void 0!==t.images&&0!==t.images.length||void 0!==e&&e(a),a},parseShape:function(t){var e={};if(void 0!==t)for(var i=0,n=t.length;i<n;i++){var r=(new AT).fromJSON(t[i]);e[r.uuid]=r}return e},parseGeometries:function(t,e){var i={};if(void 0!==t)for(var n=new GT,r=0,s=t.length;r<s;r++){var o,a=t[r];switch(a.type){case"PlaneGeometry":case"PlaneBufferGeometry":o=new bw[a.type](a.width,a.height,a.widthSegments,a.heightSegments);break;case"BoxGeometry":case"BoxBufferGeometry":case"CubeGeometry":o=new bw[a.type](a.width,a.height,a.depth,a.widthSegments,a.heightSegments,a.depthSegments);break;case"CircleGeometry":case"CircleBufferGeometry":o=new bw[a.type](a.radius,a.segments,a.thetaStart,a.thetaLength);break;case"CylinderGeometry":case"CylinderBufferGeometry":o=new bw[a.type](a.radiusTop,a.radiusBottom,a.height,a.radialSegments,a.heightSegments,a.openEnded,a.thetaStart,a.thetaLength);break;case"ConeGeometry":case"ConeBufferGeometry":o=new bw[a.type](a.radius,a.height,a.radialSegments,a.heightSegments,a.openEnded,a.thetaStart,a.thetaLength);break;case"SphereGeometry":case"SphereBufferGeometry":o=new bw[a.type](a.radius,a.widthSegments,a.heightSegments,a.phiStart,a.phiLength,a.thetaStart,a.thetaLength);break;case"DodecahedronGeometry":case"DodecahedronBufferGeometry":case"IcosahedronGeometry":case"IcosahedronBufferGeometry":case"OctahedronGeometry":case"OctahedronBufferGeometry":case"TetrahedronGeometry":case"TetrahedronBufferGeometry":o=new bw[a.type](a.radius,a.detail);break;case"RingGeometry":case"RingBufferGeometry":o=new bw[a.type](a.innerRadius,a.outerRadius,a.thetaSegments,a.phiSegments,a.thetaStart,a.thetaLength);break;case"TorusGeometry":case"TorusBufferGeometry":o=new bw[a.type](a.radius,a.tube,a.radialSegments,a.tubularSegments,a.arc);break;case"TorusKnotGeometry":case"TorusKnotBufferGeometry":o=new bw[a.type](a.radius,a.tube,a.tubularSegments,a.radialSegments,a.p,a.q);break;case"TubeGeometry":case"TubeBufferGeometry":o=new bw[a.type]((new ST[a.path.type]).fromJSON(a.path),a.tubularSegments,a.radius,a.radialSegments,a.closed);break;case"LatheGeometry":case"LatheBufferGeometry":o=new bw[a.type](a.points,a.segments,a.phiStart,a.phiLength);break;case"PolyhedronGeometry":case"PolyhedronBufferGeometry":o=new bw[a.type](a.vertices,a.indices,a.radius,a.details);break;case"ShapeGeometry":case"ShapeBufferGeometry":for(var h=[],u=0,l=a.shapes.length;u<l;u++){var c=e[a.shapes[u]];h.push(c)}o=new bw[a.type](h,a.curveSegments);break;case"ExtrudeGeometry":case"ExtrudeBufferGeometry":for(h=[],u=0,l=a.shapes.length;u<l;u++){c=e[a.shapes[u]];h.push(c)}var d=a.options.extrudePath;void 0!==d&&(a.options.extrudePath=(new ST[d.type]).fromJSON(d)),o=new bw[a.type](h,a.options);break;case"BufferGeometry":case"InstancedBufferGeometry":o=n.parse(a);break;case"Geometry":console.error('THREE.ObjectLoader: Loading "Geometry" is not supported anymore.');break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+a.type+'"');continue}o.uuid=a.uuid,void 0!==a.name&&(o.name=a.name),!0===o.isBufferGeometry&&void 0!==a.userData&&(o.userData=a.userData),i[a.uuid]=o}return i},parseMaterials:function(t,e){var i={},n={};if(void 0!==t){var r=new jT;r.setTextures(e);for(var s=0,o=t.length;s<o;s++){var a=t[s];if("MultiMaterial"===a.type){for(var h=[],u=0;u<a.materials.length;u++){var l=a.materials[u];void 0===i[l.uuid]&&(i[l.uuid]=r.parse(l)),h.push(i[l.uuid])}n[a.uuid]=h}else void 0===i[a.uuid]&&(i[a.uuid]=r.parse(a)),n[a.uuid]=i[a.uuid]}}return n},parseAnimations:function(t){for(var e=[],i=0;i<t.length;i++){var n=t[i],r=Vw.parse(n);void 0!==n.uuid&&(r.uuid=n.uuid),e.push(r)}return e},parseImages:function(t,e){var i=this,n={};function r(t){return i.manager.itemStart(t),s.load(t,(function(){i.manager.itemEnd(t)}),void 0,(function(){i.manager.itemError(t),i.manager.itemEnd(t)}))}if(void 0!==t&&t.length>0){var s=new nT(new Jw(e));s.setCrossOrigin(this.crossOrigin);for(var o=0,a=t.length;o<a;o++){var h=t[o],u=h.url;if(Array.isArray(u)){n[h.uuid]=[];for(var l=0,c=u.length;l<c;l++){var d=u[l],p=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(d)?d:i.resourcePath+d;n[h.uuid].push(r(p))}}else{p=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(h.url)?h.url:i.resourcePath+h.url;n[h.uuid]=r(p)}}}return n},parseTextures:function(t,e){function i(t,e){return"number"==typeof t?t:(console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",t),e[t])}var n={};if(void 0!==t)for(var r=0,s=t.length;r<s;r++){var o,a=t[r];void 0===a.image&&console.warn('THREE.ObjectLoader: No "image" specified for',a.uuid),void 0===e[a.image]&&console.warn("THREE.ObjectLoader: Undefined image",a.image),(o=Array.isArray(e[a.image])?new wy(e[a.image]):new xm(e[a.image])).needsUpdate=!0,o.uuid=a.uuid,void 0!==a.name&&(o.name=a.name),void 0!==a.mapping&&(o.mapping=i(a.mapping,JT)),void 0!==a.offset&&o.offset.fromArray(a.offset),void 0!==a.repeat&&o.repeat.fromArray(a.repeat),void 0!==a.center&&o.center.fromArray(a.center),void 0!==a.rotation&&(o.rotation=a.rotation),void 0!==a.wrap&&(o.wrapS=i(a.wrap[0],ZT),o.wrapT=i(a.wrap[1],ZT)),void 0!==a.format&&(o.format=a.format),void 0!==a.type&&(o.type=a.type),void 0!==a.encoding&&(o.encoding=a.encoding),void 0!==a.minFilter&&(o.minFilter=i(a.minFilter,KT)),void 0!==a.magFilter&&(o.magFilter=i(a.magFilter,KT)),void 0!==a.anisotropy&&(o.anisotropy=a.anisotropy),void 0!==a.flipY&&(o.flipY=a.flipY),void 0!==a.premultiplyAlpha&&(o.premultiplyAlpha=a.premultiplyAlpha),void 0!==a.unpackAlignment&&(o.unpackAlignment=a.unpackAlignment),n[a.uuid]=o}return n},parseObject:function(t,e,i){var n;function r(t){return void 0===e[t]&&console.warn("THREE.ObjectLoader: Undefined geometry",t),e[t]}function s(t){if(void 0!==t){if(Array.isArray(t)){for(var e=[],n=0,r=t.length;n<r;n++){var s=t[n];void 0===i[s]&&console.warn("THREE.ObjectLoader: Undefined material",s),e.push(i[s])}return e}return void 0===i[t]&&console.warn("THREE.ObjectLoader: Undefined material",t),i[t]}}switch(t.type){case"Scene":n=new tv,void 0!==t.background&&Number.isInteger(t.background)&&(n.background=new Wv(t.background)),void 0!==t.fog&&("Fog"===t.fog.type?n.fog=new hx(t.fog.color,t.fog.near,t.fog.far):"FogExp2"===t.fog.type&&(n.fog=new ax(t.fog.color,t.fog.density)));break;case"PerspectiveCamera":n=new Zg(t.fov,t.aspect,t.near,t.far),void 0!==t.focus&&(n.focus=t.focus),void 0!==t.zoom&&(n.zoom=t.zoom),void 0!==t.filmGauge&&(n.filmGauge=t.filmGauge),void 0!==t.filmOffset&&(n.filmOffset=t.filmOffset),void 0!==t.view&&(n.view=Object.assign({},t.view));break;case"OrthographicCamera":n=new YT(t.left,t.right,t.top,t.bottom,t.near,t.far),void 0!==t.zoom&&(n.zoom=t.zoom),void 0!==t.view&&(n.view=Object.assign({},t.view));break;case"AmbientLight":n=new BT(t.color,t.intensity);break;case"DirectionalLight":n=new NT(t.color,t.intensity);break;case"PointLight":n=new IT(t.color,t.intensity,t.distance,t.decay);break;case"RectAreaLight":n=new UT(t.color,t.intensity,t.width,t.height);break;case"SpotLight":n=new kT(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay);break;case"HemisphereLight":n=new PT(t.color,t.groundColor,t.intensity);break;case"SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case"Mesh":n=new Yg(o=r(t.geometry),a=s(t.material));break;case"InstancedMesh":var o=r(t.geometry),a=s(t.material),h=t.count,u=t.instanceMatrix;(n=new Ux(o,a,h)).instanceMatrix=new $v(new Float32Array(u.array),16);break;case"LOD":n=new Px;break;case"Line":n=new Xx(r(t.geometry),s(t.material),t.mode);break;case"LineLoop":n=new Kx(r(t.geometry),s(t.material));break;case"LineSegments":n=new Zx(r(t.geometry),s(t.material));break;case"PointCloud":case"Points":n=new nb(r(t.geometry),s(t.material));break;case"Sprite":n=new Ex(s(t.material));break;case"Group":n=new rx;break;default:n=new $m}if(n.uuid=t.uuid,void 0!==t.name&&(n.name=t.name),void 0!==t.matrix?(n.matrix.fromArray(t.matrix),void 0!==t.matrixAutoUpdate&&(n.matrixAutoUpdate=t.matrixAutoUpdate),n.matrixAutoUpdate&&n.matrix.decompose(n.position,n.quaternion,n.scale)):(void 0!==t.position&&n.position.fromArray(t.position),void 0!==t.rotation&&n.rotation.fromArray(t.rotation),void 0!==t.quaternion&&n.quaternion.fromArray(t.quaternion),void 0!==t.scale&&n.scale.fromArray(t.scale)),void 0!==t.castShadow&&(n.castShadow=t.castShadow),void 0!==t.receiveShadow&&(n.receiveShadow=t.receiveShadow),t.shadow&&(void 0!==t.shadow.bias&&(n.shadow.bias=t.shadow.bias),void 0!==t.shadow.radius&&(n.shadow.radius=t.shadow.radius),void 0!==t.shadow.mapSize&&n.shadow.mapSize.fromArray(t.shadow.mapSize),void 0!==t.shadow.camera&&(n.shadow.camera=this.parseObject(t.shadow.camera))),void 0!==t.visible&&(n.visible=t.visible),void 0!==t.frustumCulled&&(n.frustumCulled=t.frustumCulled),void 0!==t.renderOrder&&(n.renderOrder=t.renderOrder),void 0!==t.userData&&(n.userData=t.userData),void 0!==t.layers&&(n.layers.mask=t.layers),void 0!==t.children)for(var l=t.children,c=0;c<l.length;c++)n.add(this.parseObject(l[c],e,i));if("LOD"===t.type){void 0!==t.autoUpdate&&(n.autoUpdate=t.autoUpdate);for(var d=t.levels,p=0;p<d.length;p++){var f=d[p],m=n.getObjectByProperty("uuid",f.object);void 0!==m&&n.addLevel(m,f.distance)}}return n}});var qT,JT={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:Rf,CubeUVRefractionMapping:307},ZT={RepeatWrapping:If,ClampToEdgeWrapping:Yf,MirroredRepeatWrapping:Ff},KT={NearestFilter:Nf,NearestMipmapNearestFilter:Bf,NearestMipmapLinearFilter:Uf,LinearFilter:jf,LinearMipmapNearestFilter:1007,LinearMipmapLinearFilter:Hf};function QT(t){"undefined"==typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),"undefined"==typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),Kw.call(this,t),this.options=void 0}function $T(){this.type="ShapePath",this.color=new Wv,this.subPaths=[],this.currentPath=null}function tM(t){this.type="Font",this.data=t}function eM(t,e,i,n,r){var s=r.glyphs[t]||r.glyphs["?"];if(s){var o,a,h,u,l,c,d,p,f=new $T;if(s.o)for(var m=s._cachedOutline||(s._cachedOutline=s.o.split(" ")),v=0,g=m.length;v<g;){switch(m[v++]){case"m":o=m[v++]*e+i,a=m[v++]*e+n,f.moveTo(o,a);break;case"l":o=m[v++]*e+i,a=m[v++]*e+n,f.lineTo(o,a);break;case"q":h=m[v++]*e+i,u=m[v++]*e+n,l=m[v++]*e+i,c=m[v++]*e+n,f.quadraticCurveTo(l,c,h,u);break;case"b":h=m[v++]*e+i,u=m[v++]*e+n,l=m[v++]*e+i,c=m[v++]*e+n,d=m[v++]*e+i,p=m[v++]*e+n,f.bezierCurveTo(l,c,d,p,h,u)}}return{offsetX:s.ha*e,path:f}}console.error('THREE.Font: character "'+t+'" does not exists in font family '+r.familyName+".")}function iM(t){Kw.call(this,t)}QT.prototype=Object.assign(Object.create(Kw.prototype),{constructor:QT,setOptions:function(t){return this.options=t,this},load:function(t,e,i,n){void 0===t&&(t=""),void 0!==this.path&&(t=this.path+t),t=this.manager.resolveURL(t);var r=this,s=qw.get(t);if(void 0!==s)return r.manager.itemStart(t),setTimeout((function(){e&&e(s),r.manager.itemEnd(t)}),0),s;fetch(t).then((function(t){return t.blob()})).then((function(t){return void 0===r.options?createImageBitmap(t):createImageBitmap(t,r.options)})).then((function(i){qw.add(t,i),e&&e(i),r.manager.itemEnd(t)})).catch((function(e){n&&n(e),r.manager.itemError(t),r.manager.itemEnd(t)})),r.manager.itemStart(t)}}),Object.assign($T.prototype,{moveTo:function(t,e){return this.currentPath=new LT,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this},lineTo:function(t,e){return this.currentPath.lineTo(t,e),this},quadraticCurveTo:function(t,e,i,n){return this.currentPath.quadraticCurveTo(t,e,i,n),this},bezierCurveTo:function(t,e,i,n,r,s){return this.currentPath.bezierCurveTo(t,e,i,n,r,s),this},splineThru:function(t){return this.currentPath.splineThru(t),this},toShapes:function(t,e){function i(t){for(var e=[],i=0,n=t.length;i<n;i++){var r=t[i],s=new AT;s.curves=r.curves,e.push(s)}return e}function n(t,e){for(var i=e.length,n=!1,r=i-1,s=0;s<i;r=s++){var o=e[r],a=e[s],h=a.x-o.x,u=a.y-o.y;if(Math.abs(u)>Number.EPSILON){if(u<0&&(o=e[s],h=-h,a=e[r],u=-u),t.y<o.y||t.y>a.y)continue;if(t.y===o.y){if(t.x===o.x)return!0}else{var l=u*(t.x-o.x)-h*(t.y-o.y);if(0===l)return!0;if(l<0)continue;n=!n}}else{if(t.y!==o.y)continue;if(a.x<=t.x&&t.x<=o.x||o.x<=t.x&&t.x<=a.x)return!0}}return n}var r=Zb.isClockWise,s=this.subPaths;if(0===s.length)return[];if(!0===e)return i(s);var o,a,h,u=[];if(1===s.length)return a=s[0],(h=new AT).curves=a.curves,u.push(h),u;var l=!r(s[0].getPoints());l=t?!l:l;var c,d,p=[],f=[],m=[],v=0;f[v]=void 0,m[v]=[];for(var g=0,y=s.length;g<y;g++)o=r(c=(a=s[g]).getPoints()),(o=t?!o:o)?(!l&&f[v]&&v++,f[v]={s:new AT,p:c},f[v].s.curves=a.curves,l&&v++,m[v]=[]):m[v].push({h:a,p:c[0]});if(!f[0])return i(s);if(f.length>1){for(var _=!1,x=[],b=0,w=f.length;b<w;b++)p[b]=[];for(b=0,w=f.length;b<w;b++)for(var T=m[b],M=0;M<T.length;M++){for(var S=T[M],E=!0,L=0;L<f.length;L++)n(S.p,f[L].p)&&(b!==L&&x.push({froms:b,tos:L,hole:M}),E?(E=!1,p[L].push(S)):_=!0);E&&p[b].push(S)}x.length>0&&(_||(m=p))}g=0;for(var A=f.length;g<A;g++){h=f[g].s,u.push(h);for(var D=0,P=(d=m[g]).length;D<P;D++)h.holes.push(d[D].h)}return u}}),Object.assign(tM.prototype,{isFont:!0,generateShapes:function(t,e){void 0===e&&(e=100);for(var i=[],n=function(t,e,i){for(var n=Array.from?Array.from(t):String(t).split(""),r=e/i.resolution,s=(i.boundingBox.yMax-i.boundingBox.yMin+i.underlineThickness)*r,o=[],a=0,h=0,u=0;u<n.length;u++){var l=n[u];if("\n"===l)a=0,h-=s;else{var c=eM(l,r,a,h,i);a+=c.offsetX,o.push(c.path)}}return o}(t,e,this.data),r=0,s=n.length;r<s;r++)Array.prototype.push.apply(i,n[r].toShapes());return i}}),iM.prototype=Object.assign(Object.create(Kw.prototype),{constructor:iM,load:function(t,e,i,n){var r=this,s=new $w(this.manager);s.setPath(this.path),s.load(t,(function(t){var i;try{i=JSON.parse(t)}catch(e){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),i=JSON.parse(t.substring(65,t.length-2))}var n=r.parse(i);e&&e(n)}),i,n)},parse:function(t){return new tM(t)}});var nM=function(){return void 0===qT&&(qT=new(window.AudioContext||window.webkitAudioContext)),qT};function rM(t){Kw.call(this,t)}function sM(){this.coefficients=[];for(var t=0;t<9;t++)this.coefficients.push(new Lm)}function oM(t,e){DT.call(this,void 0,e),this.sh=void 0!==t?t:new sM}function aM(t,e,i){oM.call(this,void 0,i);var n=(new Wv).set(t),r=(new Wv).set(e),s=new Lm(n.r,n.g,n.b),o=new Lm(r.r,r.g,r.b),a=Math.sqrt(Math.PI),h=a*Math.sqrt(.75);this.sh.coefficients[0].copy(s).add(o).multiplyScalar(a),this.sh.coefficients[1].copy(s).sub(o).multiplyScalar(h)}function hM(t,e){oM.call(this,void 0,e);var i=(new Wv).set(t);this.sh.coefficients[0].set(i.r,i.g,i.b).multiplyScalar(2*Math.sqrt(Math.PI))}rM.prototype=Object.assign(Object.create(Kw.prototype),{constructor:rM,load:function(t,e,i,n){var r=new $w(this.manager);r.setResponseType("arraybuffer"),r.setPath(this.path),r.load(t,(function(t){var i=t.slice(0);nM().decodeAudioData(i,(function(t){e(t)}))}),i,n)}}),Object.assign(sM.prototype,{isSphericalHarmonics3:!0,set:function(t){for(var e=0;e<9;e++)this.coefficients[e].copy(t[e]);return this},zero:function(){for(var t=0;t<9;t++)this.coefficients[t].set(0,0,0);return this},getAt:function(t,e){var i=t.x,n=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.282095),e.addScaledVector(s[1],.488603*n),e.addScaledVector(s[2],.488603*r),e.addScaledVector(s[3],.488603*i),e.addScaledVector(s[4],i*n*1.092548),e.addScaledVector(s[5],n*r*1.092548),e.addScaledVector(s[6],.315392*(3*r*r-1)),e.addScaledVector(s[7],i*r*1.092548),e.addScaledVector(s[8],.546274*(i*i-n*n)),e},getIrradianceAt:function(t,e){var i=t.x,n=t.y,r=t.z,s=this.coefficients;return e.copy(s[0]).multiplyScalar(.886227),e.addScaledVector(s[1],1.023328*n),e.addScaledVector(s[2],1.023328*r),e.addScaledVector(s[3],1.023328*i),e.addScaledVector(s[4],.858086*i*n),e.addScaledVector(s[5],.858086*n*r),e.addScaledVector(s[6],.743125*r*r-.247708),e.addScaledVector(s[7],.858086*i*r),e.addScaledVector(s[8],.429043*(i*i-n*n)),e},add:function(t){for(var e=0;e<9;e++)this.coefficients[e].add(t.coefficients[e]);return this},addScaledSH:function(t,e){for(var i=0;i<9;i++)this.coefficients[i].addScaledVector(t.coefficients[i],e);return this},scale:function(t){for(var e=0;e<9;e++)this.coefficients[e].multiplyScalar(t);return this},lerp:function(t,e){for(var i=0;i<9;i++)this.coefficients[i].lerp(t.coefficients[i],e);return this},equals:function(t){for(var e=0;e<9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0},copy:function(t){return this.set(t.coefficients)},clone:function(){return(new this.constructor).copy(this)},fromArray:function(t,e){void 0===e&&(e=0);for(var i=this.coefficients,n=0;n<9;n++)i[n].fromArray(t,e+3*n);return this},toArray:function(t,e){void 0===t&&(t=[]),void 0===e&&(e=0);for(var i=this.coefficients,n=0;n<9;n++)i[n].toArray(t,e+3*n);return t}}),Object.assign(sM,{getBasisAt:function(t,e){var i=t.x,n=t.y,r=t.z;e[0]=.282095,e[1]=.488603*n,e[2]=.488603*r,e[3]=.488603*i,e[4]=1.092548*i*n,e[5]=1.092548*n*r,e[6]=.315392*(3*r*r-1),e[7]=1.092548*i*r,e[8]=.546274*(i*i-n*n)}}),oM.prototype=Object.assign(Object.create(DT.prototype),{constructor:oM,isLightProbe:!0,copy:function(t){return DT.prototype.copy.call(this,t),this.sh.copy(t.sh),this.intensity=t.intensity,this},toJSON:function(t){return DT.prototype.toJSON.call(this,t)}}),aM.prototype=Object.assign(Object.create(oM.prototype),{constructor:aM,isHemisphereLightProbe:!0,copy:function(t){return oM.prototype.copy.call(this,t),this},toJSON:function(t){return oM.prototype.toJSON.call(this,t)}}),hM.prototype=Object.assign(Object.create(oM.prototype),{constructor:hM,isAmbientLightProbe:!0,copy:function(t){return oM.prototype.copy.call(this,t),this},toJSON:function(t){return oM.prototype.toJSON.call(this,t)}});var uM=new Im,lM=new Im;function cM(t){this.autoStart=void 0===t||t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}Object.assign(function(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new Zg,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Zg,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}.prototype,{update:function(t){var e=this._cache;if(e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep){e.focus=t.focus,e.fov=t.fov,e.aspect=t.aspect*this.aspect,e.near=t.near,e.far=t.far,e.zoom=t.zoom,e.eyeSep=this.eyeSep;var i,n,r=t.projectionMatrix.clone(),s=e.eyeSep/2,o=s*e.near/e.focus,a=e.near*Math.tan(mm.DEG2RAD*e.fov*.5)/e.zoom;lM.elements[12]=-s,uM.elements[12]=s,i=-a*e.aspect+o,n=a*e.aspect+o,r.elements[0]=2*e.near/(n-i),r.elements[8]=(n+i)/(n-i),this.cameraL.projectionMatrix.copy(r),i=-a*e.aspect-o,n=a*e.aspect-o,r.elements[0]=2*e.near/(n-i),r.elements[8]=(n+i)/(n-i),this.cameraR.projectionMatrix.copy(r)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(lM),this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(uM)}}),Object.assign(cM.prototype,{start:function(){this.startTime=("undefined"==typeof performance?Date:performance).now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0},stop:function(){this.getElapsedTime(),this.running=!1,this.autoStart=!1},getElapsedTime:function(){return this.getDelta(),this.elapsedTime},getDelta:function(){var t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var e=("undefined"==typeof performance?Date:performance).now();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}});var dM=new Lm,pM=new Mm,fM=new Lm,mM=new Lm;function vM(){$m.call(this),this.type="AudioListener",this.context=nM(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new cM}function gM(t){$m.call(this),this.type="Audio",this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.sourceType="empty",this._startedAt=0,this._pausedAt=0,this.filters=[]}vM.prototype=Object.assign(Object.create($m.prototype),{constructor:vM,getInput:function(){return this.gain},removeFilter:function(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this},getFilter:function(){return this.filter},setFilter:function(t){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this},updateMatrixWorld:function(t){$m.prototype.updateMatrixWorld.call(this,t);var e=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(dM,pM,fM),mM.set(0,0,-1).applyQuaternion(pM),e.positionX){var n=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(dM.x,n),e.positionY.linearRampToValueAtTime(dM.y,n),e.positionZ.linearRampToValueAtTime(dM.z,n),e.forwardX.linearRampToValueAtTime(mM.x,n),e.forwardY.linearRampToValueAtTime(mM.y,n),e.forwardZ.linearRampToValueAtTime(mM.z,n),e.upX.linearRampToValueAtTime(i.x,n),e.upY.linearRampToValueAtTime(i.y,n),e.upZ.linearRampToValueAtTime(i.z,n)}else e.setPosition(dM.x,dM.y,dM.z),e.setOrientation(mM.x,mM.y,mM.z,i.x,i.y,i.z)}}),gM.prototype=Object.assign(Object.create($m.prototype),{constructor:gM,getOutput:function(){return this.gain},setNodeSource:function(t){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=t,this.connect(),this},setMediaElementSource:function(t){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(t),this.connect(),this},setMediaStreamSource:function(t){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(t),this.connect(),this},setBuffer:function(t){return this.buffer=t,this.sourceType="buffer",this.autoplay&&this.play(),this},play:function(t){if(void 0===t&&(t=0),!0!==this.isPlaying){if(!1!==this.hasPlaybackControl){this._startedAt=this.context.currentTime+t;var e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._pausedAt+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}console.warn("THREE.Audio: this Audio has no playback control.")}else console.warn("THREE.Audio: Audio is already playing.")},pause:function(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._pausedAt+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")},stop:function(){if(!1!==this.hasPlaybackControl)return this._pausedAt=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")},connect:function(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(var t=1,e=this.filters.length;t<e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(var t=1,e=this.filters.length;t<e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},getFilters:function(){return this.filters},setFilters:function(t){return t||(t=[]),!0===this.isPlaying?(this.disconnect(),this.filters=t,this.connect()):this.filters=t,this},setDetune:function(t){if(this.detune=t,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this},getDetune:function(){return this.detune},getFilter:function(){return this.getFilters()[0]},setFilter:function(t){return this.setFilters(t?[t]:[])},setPlaybackRate:function(t){if(!1!==this.hasPlaybackControl)return this.playbackRate=t,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn("THREE.Audio: this Audio has no playback control.")},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(t){if(!1!==this.hasPlaybackControl)return this.loop=t,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn("THREE.Audio: this Audio has no playback control.")},setLoopStart:function(t){return this.loopStart=t,this},setLoopEnd:function(t){return this.loopEnd=t,this},getVolume:function(){return this.gain.gain.value},setVolume:function(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}});var yM=new Lm,_M=new Mm,xM=new Lm,bM=new Lm;function wM(t){gM.call(this,t),this.panner=this.context.createPanner(),this.panner.panningModel="HRTF",this.panner.connect(this.gain)}function TM(t,e){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=void 0!==e?e:2048,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}function MM(t,e,i){this.binding=t,this.valueSize=i;var n,r=Float64Array;switch(e){case"quaternion":n=this._slerp;break;case"string":case"bool":r=Array,n=this._select;break;default:n=this._lerp}this.buffer=new r(4*i),this._mixBufferRegion=n,this.cumulativeWeight=0,this.useCount=0,this.referenceCount=0}wM.prototype=Object.assign(Object.create(gM.prototype),{constructor:wM,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},setRefDistance:function(t){return this.panner.refDistance=t,this},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(t){return this.panner.rolloffFactor=t,this},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(t){return this.panner.distanceModel=t,this},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(t){return this.panner.maxDistance=t,this},setDirectionalCone:function(t,e,i){return this.panner.coneInnerAngle=t,this.panner.coneOuterAngle=e,this.panner.coneOuterGain=i,this},updateMatrixWorld:function(t){if($m.prototype.updateMatrixWorld.call(this,t),!0!==this.hasPlaybackControl||!1!==this.isPlaying){this.matrixWorld.decompose(yM,_M,xM),bM.set(0,0,1).applyQuaternion(_M);var e=this.panner;if(e.positionX){var i=this.context.currentTime+this.listener.timeDelta;e.positionX.linearRampToValueAtTime(yM.x,i),e.positionY.linearRampToValueAtTime(yM.y,i),e.positionZ.linearRampToValueAtTime(yM.z,i),e.orientationX.linearRampToValueAtTime(bM.x,i),e.orientationY.linearRampToValueAtTime(bM.y,i),e.orientationZ.linearRampToValueAtTime(bM.z,i)}else e.setPosition(yM.x,yM.y,yM.z),e.setOrientation(bM.x,bM.y,bM.z)}}}),Object.assign(TM.prototype,{getFrequencyData:function(){return this.analyser.getByteFrequencyData(this.data),this.data},getAverageFrequency:function(){for(var t=0,e=this.getFrequencyData(),i=0;i<e.length;i++)t+=e[i];return t/e.length}}),Object.assign(MM.prototype,{accumulate:function(t,e){var i=this.buffer,n=this.valueSize,r=t*n+n,s=this.cumulativeWeight;if(0===s){for(var o=0;o!==n;++o)i[r+o]=i[o];s=e}else{var a=e/(s+=e);this._mixBufferRegion(i,r,0,a,n)}this.cumulativeWeight=s},apply:function(t){var e=this.valueSize,i=this.buffer,n=t*e+e,r=this.cumulativeWeight,s=this.binding;if(this.cumulativeWeight=0,r<1){var o=3*e;this._mixBufferRegion(i,n,o,1-r,e)}for(var a=e,h=e+e;a!==h;++a)if(i[a]!==i[a+e]){s.setValue(i,n);break}},saveOriginalState:function(){var t=this.binding,e=this.buffer,i=this.valueSize,n=3*i;t.getValue(e,n);for(var r=i,s=n;r!==s;++r)e[r]=e[n+r%i];this.cumulativeWeight=0},restoreOriginalState:function(){var t=3*this.valueSize;this.binding.setValue(this.buffer,t)},_select:function(t,e,i,n,r){if(n>=.5)for(var s=0;s!==r;++s)t[e+s]=t[i+s]},_slerp:function(t,e,i,n){Mm.slerpFlat(t,e,t,e,t,i,n)},_lerp:function(t,e,i,n,r){for(var s=1-n,o=0;o!==r;++o){var a=e+o;t[a]=t[a]*s+t[i+o]*n}}});var SM="\\[\\]\\.:\\/",EM=new RegExp("[\\[\\]\\.:\\/]","g"),LM="[^\\[\\]\\.:\\/]",AM="[^"+SM.replace("\\.","")+"]",DM=/((?:WC+[\/:])*)/.source.replace("WC",LM),PM=/(WCOD+)?/.source.replace("WCOD",AM),CM=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",LM),OM=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",LM),kM=new RegExp("^"+DM+PM+CM+OM+"$"),RM=["material","materials","bones"];function IM(t,e,i){var n=i||YM.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,n)}function YM(t,e,i){this.path=e,this.parsedPath=i||YM.parseTrackName(e),this.node=YM.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t}function FM(t,e,i){this._mixer=t,this._clip=e,this._localRoot=i||null;for(var n=e.tracks,r=n.length,s=new Array(r),o={endingStart:im,endingEnd:im},a=0;a!==r;++a){var h=n[a].createInterpolant(null);s[a]=h,h.settings=o}this._interpolantSettings=o,this._interpolants=s,this._propertyBindings=new Array(r),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}function NM(t){this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}function BM(t){"string"==typeof t&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),t=arguments[1]),this.value=t}function UM(t,e,i){ux.call(this,t,e),this.meshPerAttribute=i||1}function jM(t,e,i,n){this.ray=new Sv(t,e),this.near=i||0,this.far=n||1/0,this.camera=null,this.layers=new Bm,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}},Object.defineProperties(this.params,{PointCloud:{get:function(){return console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points."),this.Points}}})}function HM(t,e){return t.distance-e.distance}function zM(t,e,i,n){if(t.layers.test(e.layers)&&t.raycast(e,i),!0===n)for(var r=t.children,s=0,o=r.length;s<o;s++)zM(r[s],e,i,!0)}Object.assign(IM.prototype,{getValue:function(t,e){this.bind();var i=this._targetGroup.nCachedObjects_,n=this._bindings[i];void 0!==n&&n.getValue(t,e)},setValue:function(t,e){for(var i=this._bindings,n=this._targetGroup.nCachedObjects_,r=i.length;n!==r;++n)i[n].setValue(t,e)},bind:function(){for(var t=this._bindings,e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].bind()},unbind:function(){for(var t=this._bindings,e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].unbind()}}),Object.assign(YM,{Composite:IM,create:function(t,e,i){return t&&t.isAnimationObjectGroup?new YM.Composite(t,e,i):new YM(t,e,i)},sanitizeNodeName:function(t){return t.replace(/\s/g,"_").replace(EM,"")},parseTrackName:function(t){var e=kM.exec(t);if(!e)throw new Error("PropertyBinding: Cannot parse trackName: "+t);var i={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},n=i.nodeName&&i.nodeName.lastIndexOf(".");if(void 0!==n&&-1!==n){var r=i.nodeName.substring(n+1);-1!==RM.indexOf(r)&&(i.nodeName=i.nodeName.substring(0,n),i.objectName=r)}if(null===i.propertyName||0===i.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return i},findNode:function(t,e){if(!e||""===e||"."===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){var i=t.skeleton.getBoneByName(e);if(void 0!==i)return i}if(t.children){var n=function(t){for(var i=0;i<t.length;i++){var r=t[i];if(r.name===e||r.uuid===e)return r;var s=n(r.children);if(s)return s}return null},r=n(t.children);if(r)return r}return null}}),Object.assign(YM.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function(t,e){t[e]=this.node[this.propertyName]},function(t,e){for(var i=this.resolvedProperty,n=0,r=i.length;n!==r;++n)t[e++]=i[n]},function(t,e){t[e]=this.resolvedProperty[this.propertyIndex]},function(t,e){this.resolvedProperty.toArray(t,e)}],SetterByBindingTypeAndVersioning:[[function(t,e){this.targetObject[this.propertyName]=t[e]},function(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0},function(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}],[function(t,e){for(var i=this.resolvedProperty,n=0,r=i.length;n!==r;++n)i[n]=t[e++]},function(t,e){for(var i=this.resolvedProperty,n=0,r=i.length;n!==r;++n)i[n]=t[e++];this.targetObject.needsUpdate=!0},function(t,e){for(var i=this.resolvedProperty,n=0,r=i.length;n!==r;++n)i[n]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(t,e){this.resolvedProperty[this.propertyIndex]=t[e]},function(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0},function(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}],[function(t,e){this.resolvedProperty.fromArray(t,e)},function(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0},function(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function(t,e){this.bind(),this.getValue(t,e)},setValue:function(t,e){this.bind(),this.setValue(t,e)},bind:function(){var t=this.node,e=this.parsedPath,i=e.objectName,n=e.propertyName,r=e.propertyIndex;if(t||(t=YM.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,t){if(i){var s=e.objectIndex;switch(i){case"materials":if(!t.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!t.material.materials)return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);t=t.material.materials;break;case"bones":if(!t.skeleton)return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);t=t.skeleton.bones;for(var o=0;o<t.length;o++)if(t[o].name===s){s=o;break}break;default:if(void 0===t[i])return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);t=t[i]}if(void 0!==s){if(void 0===t[s])return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,t);t=t[s]}}var a=t[n];if(void 0!==a){var h=this.Versioning.None;this.targetObject=t,void 0!==t.needsUpdate?h=this.Versioning.NeedsUpdate:void 0!==t.matrixWorldNeedsUpdate&&(h=this.Versioning.MatrixWorldNeedsUpdate);var u=this.BindingType.Direct;if(void 0!==r){if("morphTargetInfluences"===n){if(!t.geometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(t.geometry.isBufferGeometry){if(!t.geometry.morphAttributes)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);for(o=0;o<this.node.geometry.morphAttributes.position.length;o++)if(t.geometry.morphAttributes.position[o].name===r){r=o;break}}else{if(!t.geometry.morphTargets)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphTargets.",this);for(o=0;o<this.node.geometry.morphTargets.length;o++)if(t.geometry.morphTargets[o].name===r){r=o;break}}}u=this.BindingType.ArrayElement,this.resolvedProperty=a,this.propertyIndex=r}else void 0!==a.fromArray&&void 0!==a.toArray?(u=this.BindingType.HasFromToArray,this.resolvedProperty=a):Array.isArray(a)?(u=this.BindingType.EntireArray,this.resolvedProperty=a):this.propertyName=n;this.getValue=this.GetterByBindingType[u],this.setValue=this.SetterByBindingTypeAndVersioning[u][h]}else{var l=e.nodeName;console.error("THREE.PropertyBinding: Trying to update property for track: "+l+"."+n+" but it wasn't found.",t)}}else console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.")},unbind:function(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}),Object.assign(YM.prototype,{_getValue_unbound:YM.prototype.getValue,_setValue_unbound:YM.prototype.setValue}),Object.assign(function(){this.uuid=mm.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;var t={};this._indicesByUUID=t;for(var e=0,i=arguments.length;e!==i;++e)t[arguments[e].uuid]=e;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};var n=this;this.stats={objects:{get total(){return n._objects.length},get inUse(){return this.total-n.nCachedObjects_}},get bindingsPerObject(){return n._bindings.length}}}.prototype,{isAnimationObjectGroup:!0,add:function(){for(var t=this._objects,e=t.length,i=this.nCachedObjects_,n=this._indicesByUUID,r=this._paths,s=this._parsedPaths,o=this._bindings,a=o.length,h=void 0,u=0,l=arguments.length;u!==l;++u){var c=arguments[u],d=c.uuid,p=n[d];if(void 0===p){p=e++,n[d]=p,t.push(c);for(var f=0,m=a;f!==m;++f)o[f].push(new YM(c,r[f],s[f]))}else if(p<i){h=t[p];var v=--i,g=t[v];n[g.uuid]=p,t[p]=g,n[d]=v,t[v]=c;for(f=0,m=a;f!==m;++f){var y=o[f],_=y[v],x=y[p];y[p]=_,void 0===x&&(x=new YM(c,r[f],s[f])),y[v]=x}}else t[p]!==h&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=i},remove:function(){for(var t=this._objects,e=this.nCachedObjects_,i=this._indicesByUUID,n=this._bindings,r=n.length,s=0,o=arguments.length;s!==o;++s){var a=arguments[s],h=a.uuid,u=i[h];if(void 0!==u&&u>=e){var l=e++,c=t[l];i[c.uuid]=u,t[u]=c,i[h]=l,t[l]=a;for(var d=0,p=r;d!==p;++d){var f=n[d],m=f[l],v=f[u];f[u]=m,f[l]=v}}}this.nCachedObjects_=e},uncache:function(){for(var t=this._objects,e=t.length,i=this.nCachedObjects_,n=this._indicesByUUID,r=this._bindings,s=r.length,o=0,a=arguments.length;o!==a;++o){var h=arguments[o],u=h.uuid,l=n[u];if(void 0!==l)if(delete n[u],l<i){var c=--i,d=t[c],p=t[y=--e];n[d.uuid]=l,t[l]=d,n[p.uuid]=c,t[c]=p,t.pop();for(var f=0,m=s;f!==m;++f){var v=(_=r[f])[c],g=_[y];_[l]=v,_[c]=g,_.pop()}}else{var y;n[(p=t[y=--e]).uuid]=l,t[l]=p,t.pop();for(f=0,m=s;f!==m;++f){var _;(_=r[f])[l]=_[y],_.pop()}}}this.nCachedObjects_=i},subscribe_:function(t,e){var i=this._bindingsIndicesByPath,n=i[t],r=this._bindings;if(void 0!==n)return r[n];var s=this._paths,o=this._parsedPaths,a=this._objects,h=a.length,u=this.nCachedObjects_,l=new Array(h);n=r.length,i[t]=n,s.push(t),o.push(e),r.push(l);for(var c=u,d=a.length;c!==d;++c){var p=a[c];l[c]=new YM(p,t,e)}return l},unsubscribe_:function(t){var e=this._bindingsIndicesByPath,i=e[t];if(void 0!==i){var n=this._paths,r=this._parsedPaths,s=this._bindings,o=s.length-1,a=s[o];e[t[o]]=i,s[i]=a,s.pop(),r[i]=r[o],r.pop(),n[i]=n[o],n.pop()}}}),Object.assign(FM.prototype,{play:function(){return this._mixer._activateAction(this),this},stop:function(){return this._mixer._deactivateAction(this),this.reset()},reset:function(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()},isRunning:function(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(t){return this._startTime=t,this},setLoop:function(t,e){return this.loop=t,this.repetitions=e,this},setEffectiveWeight:function(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(t){return this._scheduleFading(t,0,1)},fadeOut:function(t){return this._scheduleFading(t,1,0)},crossFadeFrom:function(t,e,i){if(t.fadeOut(e),this.fadeIn(e),i){var n=this._clip.duration,r=t._clip.duration,s=r/n,o=n/r;t.warp(1,s,e),this.warp(o,1,e)}return this},crossFadeTo:function(t,e,i){return t.crossFadeFrom(this,e,i)},stopFading:function(){var t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this},setEffectiveTimeScale:function(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()},getEffectiveTimeScale:function(){return this._effectiveTimeScale},setDuration:function(t){return this.timeScale=this._clip.duration/t,this.stopWarping()},syncWith:function(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()},halt:function(t){return this.warp(this._effectiveTimeScale,0,t)},warp:function(t,e,i){var n=this._mixer,r=n.time,s=this._timeScaleInterpolant,o=this.timeScale;null===s&&(s=n._lendControlInterpolant(),this._timeScaleInterpolant=s);var a=s.parameterPositions,h=s.sampleValues;return a[0]=r,a[1]=r+i,h[0]=t/o,h[1]=e/o,this},stopWarping:function(){var t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this},getMixer:function(){return this._mixer},getClip:function(){return this._clip},getRoot:function(){return this._localRoot||this._mixer._root},_update:function(t,e,i,n){if(this.enabled){var r=this._startTime;if(null!==r){var s=(t-r)*i;if(s<0||0===i)return;this._startTime=null,e=i*s}e*=this._updateTimeScale(t);var o=this._updateTime(e),a=this._updateWeight(t);if(a>0)for(var h=this._interpolants,u=this._propertyBindings,l=0,c=h.length;l!==c;++l)h[l].evaluate(o),u[l].accumulate(n,a)}else this._updateWeight(t)},_updateWeight:function(t){var e=0;if(this.enabled){e=this.weight;var i=this._weightInterpolant;if(null!==i){var n=i.evaluate(t)[0];e*=n,t>i.parameterPositions[1]&&(this.stopFading(),0===n&&(this.enabled=!1))}}return this._effectiveWeight=e,e},_updateTimeScale:function(t){var e=0;if(!this.paused){e=this.timeScale;var i=this._timeScaleInterpolant;if(null!==i)e*=i.evaluate(t)[0],t>i.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}return this._effectiveTimeScale=e,e},_updateTime:function(t){var e=this.time+t,i=this._clip.duration,n=this.loop,r=this._loopCount,s=2202===n;if(0===t)return-1===r?e:s&&1==(1&r)?i-e:e;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(e>=i)e=i;else{if(!(e<0)){this.time=e;break t}e=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=e,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),e>=i||e<0){var o=Math.floor(e/i);e-=i*o,r+=Math.abs(o);var a=this.repetitions-r;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,e=t>0?i:0,this.time=e,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(1===a){var h=t<0;this._setEndings(h,!h,s)}else this._setEndings(!1,!1,s);this._loopCount=r,this.time=e,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:o})}}else this.time=e;if(s&&1==(1&r))return i-e}return e},_setEndings:function(t,e,i){var n=this._interpolantSettings;i?(n.endingStart=nm,n.endingEnd=nm):(n.endingStart=t?this.zeroSlopeAtStart?nm:im:rm,n.endingEnd=e?this.zeroSlopeAtEnd?nm:im:rm)},_scheduleFading:function(t,e,i){var n=this._mixer,r=n.time,s=this._weightInterpolant;null===s&&(s=n._lendControlInterpolant(),this._weightInterpolant=s);var o=s.parameterPositions,a=s.sampleValues;return o[0]=r,a[0]=e,o[1]=r+t,a[1]=i,this}}),NM.prototype=Object.assign(Object.create(cm.prototype),{constructor:NM,_bindAction:function(t,e){var i=t._localRoot||this._root,n=t._clip.tracks,r=n.length,s=t._propertyBindings,o=t._interpolants,a=i.uuid,h=this._bindingsByRootAndName,u=h[a];void 0===u&&(u={},h[a]=u);for(var l=0;l!==r;++l){var c=n[l],d=c.name,p=u[d];if(void 0!==p)s[l]=p;else{if(void 0!==(p=s[l])){null===p._cacheIndex&&(++p.referenceCount,this._addInactiveBinding(p,a,d));continue}var f=e&&e._propertyBindings[l].binding.parsedPath;++(p=new MM(YM.create(i,d,f),c.ValueTypeName,c.getValueSize())).referenceCount,this._addInactiveBinding(p,a,d),s[l]=p}o[l].resultBuffer=p.buffer}},_activateAction:function(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){var e=(t._localRoot||this._root).uuid,i=t._clip.uuid,n=this._actionsByClip[i];this._bindAction(t,n&&n.knownActions[0]),this._addInactiveAction(t,i,e)}for(var r=t._propertyBindings,s=0,o=r.length;s!==o;++s){var a=r[s];0==a.useCount++&&(this._lendBinding(a),a.saveOriginalState())}this._lendAction(t)}},_deactivateAction:function(t){if(this._isActiveAction(t)){for(var e=t._propertyBindings,i=0,n=e.length;i!==n;++i){var r=e[i];0==--r.useCount&&(r.restoreOriginalState(),this._takeBackBinding(r))}this._takeBackAction(t)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;var t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}},_isActiveAction:function(t){var e=t._cacheIndex;return null!==e&&e<this._nActiveActions},_addInactiveAction:function(t,e,i){var n=this._actions,r=this._actionsByClip,s=r[e];if(void 0===s)s={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,r[e]=s;else{var o=s.knownActions;t._byClipCacheIndex=o.length,o.push(t)}t._cacheIndex=n.length,n.push(t),s.actionByRoot[i]=t},_removeInactiveAction:function(t){var e=this._actions,i=e[e.length-1],n=t._cacheIndex;i._cacheIndex=n,e[n]=i,e.pop(),t._cacheIndex=null;var r=t._clip.uuid,s=this._actionsByClip,o=s[r],a=o.knownActions,h=a[a.length-1],u=t._byClipCacheIndex;h._byClipCacheIndex=u,a[u]=h,a.pop(),t._byClipCacheIndex=null,delete o.actionByRoot[(t._localRoot||this._root).uuid],0===a.length&&delete s[r],this._removeInactiveBindingsForAction(t)},_removeInactiveBindingsForAction:function(t){for(var e=t._propertyBindings,i=0,n=e.length;i!==n;++i){var r=e[i];0==--r.referenceCount&&this._removeInactiveBinding(r)}},_lendAction:function(t){var e=this._actions,i=t._cacheIndex,n=this._nActiveActions++,r=e[n];t._cacheIndex=n,e[n]=t,r._cacheIndex=i,e[i]=r},_takeBackAction:function(t){var e=this._actions,i=t._cacheIndex,n=--this._nActiveActions,r=e[n];t._cacheIndex=n,e[n]=t,r._cacheIndex=i,e[i]=r},_addInactiveBinding:function(t,e,i){var n=this._bindingsByRootAndName,r=n[e],s=this._bindings;void 0===r&&(r={},n[e]=r),r[i]=t,t._cacheIndex=s.length,s.push(t)},_removeInactiveBinding:function(t){var e=this._bindings,i=t.binding,n=i.rootNode.uuid,r=i.path,s=this._bindingsByRootAndName,o=s[n],a=e[e.length-1],h=t._cacheIndex;a._cacheIndex=h,e[h]=a,e.pop(),delete o[r],0===Object.keys(o).length&&delete s[n]},_lendBinding:function(t){var e=this._bindings,i=t._cacheIndex,n=this._nActiveBindings++,r=e[n];t._cacheIndex=n,e[n]=t,r._cacheIndex=i,e[i]=r},_takeBackBinding:function(t){var e=this._bindings,i=t._cacheIndex,n=--this._nActiveBindings,r=e[n];t._cacheIndex=n,e[n]=t,r._cacheIndex=i,e[i]=r},_lendControlInterpolant:function(){var t=this._controlInterpolants,e=this._nActiveControlInterpolants++,i=t[e];return void 0===i&&((i=new Yw(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer)).__cacheIndex=e,t[e]=i),i},_takeBackControlInterpolant:function(t){var e=this._controlInterpolants,i=t.__cacheIndex,n=--this._nActiveControlInterpolants,r=e[n];t.__cacheIndex=n,e[n]=t,r.__cacheIndex=i,e[i]=r},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(t,e){var i=e||this._root,n=i.uuid,r="string"==typeof t?Vw.findByName(i,t):t,s=null!==r?r.uuid:t,o=this._actionsByClip[s],a=null;if(void 0!==o){var h=o.actionByRoot[n];if(void 0!==h)return h;a=o.knownActions[0],null===r&&(r=a._clip)}if(null===r)return null;var u=new FM(this,r,e);return this._bindAction(u,a),this._addInactiveAction(u,s,n),u},existingAction:function(t,e){var i=e||this._root,n=i.uuid,r="string"==typeof t?Vw.findByName(i,t):t,s=r?r.uuid:t,o=this._actionsByClip[s];return void 0!==o&&o.actionByRoot[n]||null},stopAllAction:function(){var t=this._actions,e=this._nActiveActions,i=this._bindings,n=this._nActiveBindings;this._nActiveActions=0,this._nActiveBindings=0;for(var r=0;r!==e;++r)t[r].reset();for(r=0;r!==n;++r)i[r].useCount=0;return this},update:function(t){t*=this.timeScale;for(var e=this._actions,i=this._nActiveActions,n=this.time+=t,r=Math.sign(t),s=this._accuIndex^=1,o=0;o!==i;++o){e[o]._update(n,t,r,s)}var a=this._bindings,h=this._nActiveBindings;for(o=0;o!==h;++o)a[o].apply(s);return this},setTime:function(t){this.time=0;for(var e=0;e<this._actions.length;e++)this._actions[e].time=0;return this.update(t)},getRoot:function(){return this._root},uncacheClip:function(t){var e=this._actions,i=t.uuid,n=this._actionsByClip,r=n[i];if(void 0!==r){for(var s=r.knownActions,o=0,a=s.length;o!==a;++o){var h=s[o];this._deactivateAction(h);var u=h._cacheIndex,l=e[e.length-1];h._cacheIndex=null,h._byClipCacheIndex=null,l._cacheIndex=u,e[u]=l,e.pop(),this._removeInactiveBindingsForAction(h)}delete n[i]}},uncacheRoot:function(t){var e=t.uuid,i=this._actionsByClip;for(var n in i){var r=i[n].actionByRoot[e];void 0!==r&&(this._deactivateAction(r),this._removeInactiveAction(r))}var s=this._bindingsByRootAndName[e];if(void 0!==s)for(var o in s){var a=s[o];a.restoreOriginalState(),this._removeInactiveBinding(a)}},uncacheAction:function(t,e){var i=this.existingAction(t,e);null!==i&&(this._deactivateAction(i),this._removeInactiveAction(i))}}),BM.prototype.clone=function(){return new BM(void 0===this.value.clone?this.value:this.value.clone())},UM.prototype=Object.assign(Object.create(ux.prototype),{constructor:UM,isInstancedInterleavedBuffer:!0,copy:function(t){return ux.prototype.copy.call(this,t),this.meshPerAttribute=t.meshPerAttribute,this}}),Object.assign(jM.prototype,{set:function(t,e){this.ray.set(t,e)},setFromCamera:function(t,e){e&&e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e&&e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):console.error("THREE.Raycaster: Unsupported camera type.")},intersectObject:function(t,e,i){var n=i||[];return zM(t,this,n,e),n.sort(HM),n},intersectObjects:function(t,e,i){var n=i||[];if(!1===Array.isArray(t))return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),n;for(var r=0,s=t.length;r<s;r++)zM(t[r],this,n,e);return n.sort(HM),n}}),Object.assign(function(t,e,i){return this.radius=void 0!==t?t:1,this.phi=void 0!==e?e:0,this.theta=void 0!==i?i:0,this}.prototype,{set:function(t,e,i){return this.radius=t,this.phi=e,this.theta=i,this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this},makeSafe:function(){var t=1e-6;return this.phi=Math.max(t,Math.min(Math.PI-t,this.phi)),this},setFromVector3:function(t){return this.setFromCartesianCoords(t.x,t.y,t.z)},setFromCartesianCoords:function(t,e,i){return this.radius=Math.sqrt(t*t+e*e+i*i),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,i),this.phi=Math.acos(mm.clamp(e/this.radius,-1,1))),this}}),Object.assign(function(t,e,i){return this.radius=void 0!==t?t:1,this.theta=void 0!==e?e:0,this.y=void 0!==i?i:0,this}.prototype,{set:function(t,e,i){return this.radius=t,this.theta=e,this.y=i,this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.radius=t.radius,this.theta=t.theta,this.y=t.y,this},setFromVector3:function(t){return this.setFromCartesianCoords(t.x,t.y,t.z)},setFromCartesianCoords:function(t,e,i){return this.radius=Math.sqrt(t*t+i*i),this.theta=Math.atan2(t,i),this.y=e,this}});var WM=new vm;function GM(t,e){this.min=void 0!==t?t:new vm(1/0,1/0),this.max=void 0!==e?e:new vm(-1/0,-1/0)}Object.assign(GM.prototype,{set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;e<i;e++)this.expandByPoint(t[e]);return this},setFromCenterAndSize:function(t,e){var i=WM.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(i),this.max.copy(t).add(i),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.min.copy(t.min),this.max.copy(t.max),this},makeEmpty:function(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y},getCenter:function(t){return void 0===t&&(console.warn("THREE.Box2: .getCenter() target is now required"),t=new vm),this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(t){return void 0===t&&(console.warn("THREE.Box2: .getSize() target is now required"),t=new vm),this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)},expandByPoint:function(t){return this.min.min(t),this.max.max(t),this},expandByVector:function(t){return this.min.sub(t),this.max.add(t),this},expandByScalar:function(t){return this.min.addScalar(-t),this.max.addScalar(t),this},containsPoint:function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},getParameter:function(t,e){return void 0===e&&(console.warn("THREE.Box2: .getParameter() target is now required"),e=new vm),e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y)},clampPoint:function(t,e){return void 0===e&&(console.warn("THREE.Box2: .clampPoint() target is now required"),e=new vm),e.copy(t).clamp(this.min,this.max)},distanceToPoint:function(t){return WM.copy(t).clamp(this.min,this.max).sub(t).length()},intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}});var VM=new Lm,XM=new Lm;function qM(t,e){this.start=void 0!==t?t:new Lm,this.end=void 0!==e?e:new Lm}function JM(t){$m.call(this),this.material=t,this.render=function(){}}Object.assign(qM.prototype,{set:function(t,e){return this.start.copy(t),this.end.copy(e),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.start.copy(t.start),this.end.copy(t.end),this},getCenter:function(t){return void 0===t&&(console.warn("THREE.Line3: .getCenter() target is now required"),t=new Lm),t.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(t){return void 0===t&&(console.warn("THREE.Line3: .delta() target is now required"),t=new Lm),t.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(t,e){return void 0===e&&(console.warn("THREE.Line3: .at() target is now required"),e=new Lm),this.delta(e).multiplyScalar(t).add(this.start)},closestPointToPointParameter:function(t,e){VM.subVectors(t,this.start),XM.subVectors(this.end,this.start);var i=XM.dot(XM),n=XM.dot(VM)/i;return e&&(n=mm.clamp(n,0,1)),n},closestPointToPoint:function(t,e,i){var n=this.closestPointToPointParameter(t,e);return void 0===i&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),i=new Lm),this.delta(i).multiplyScalar(n).add(this.start)},applyMatrix4:function(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this},equals:function(t){return t.start.equals(this.start)&&t.end.equals(this.end)}}),JM.prototype=Object.create($m.prototype),JM.prototype.constructor=JM,JM.prototype.isImmediateRenderObject=!0;var ZM=new Lm;function KM(t,e){$m.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=e;for(var i=new yg,n=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1],r=0,s=1;r<32;r++,s++){var o=r/32*Math.PI*2,a=s/32*Math.PI*2;n.push(Math.cos(o),Math.sin(o),1,Math.cos(a),Math.sin(a),1)}i.setAttribute("position",new ag(n,3));var h=new jx({fog:!1,toneMapped:!1});this.cone=new Zx(i,h),this.add(this.cone),this.update()}KM.prototype=Object.create($m.prototype),KM.prototype.constructor=KM,KM.prototype.dispose=function(){this.cone.geometry.dispose(),this.cone.material.dispose()},KM.prototype.update=function(){this.light.updateMatrixWorld();var t=this.light.distance?this.light.distance:1e3,e=t*Math.tan(this.light.angle);this.cone.scale.set(e,e,t),ZM.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(ZM),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)};var QM=new Lm,$M=new Im,tS=new Im;function eS(t){var e=[];t&&t.isBone&&e.push(t);for(var i=0;i<t.children.length;i++)e.push.apply(e,eS(t.children[i]));return e}function iS(t){for(var e=eS(t),i=new yg,n=[],r=[],s=new Wv(0,0,1),o=new Wv(0,1,0),a=0;a<e.length;a++){var h=e[a];h.parent&&h.parent.isBone&&(n.push(0,0,0),n.push(0,0,0),r.push(s.r,s.g,s.b),r.push(o.r,o.g,o.b))}i.setAttribute("position",new ag(n,3)),i.setAttribute("color",new ag(r,3));var u=new jx({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0});Zx.call(this,i,u),this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1}function nS(t,e,i){this.light=t,this.light.updateMatrixWorld(),this.color=i;var n=new ow(e,4,2),r=new Kv({wireframe:!0,fog:!1,toneMapped:!1});Yg.call(this,n,r),this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}iS.prototype=Object.create(Zx.prototype),iS.prototype.constructor=iS,iS.prototype.isSkeletonHelper=!0,iS.prototype.updateMatrixWorld=function(t){var e=this.bones,i=this.geometry,n=i.getAttribute("position");tS.getInverse(this.root.matrixWorld);for(var r=0,s=0;r<e.length;r++){var o=e[r];o.parent&&o.parent.isBone&&($M.multiplyMatrices(tS,o.matrixWorld),QM.setFromMatrixPosition($M),n.setXYZ(s,QM.x,QM.y,QM.z),$M.multiplyMatrices(tS,o.parent.matrixWorld),QM.setFromMatrixPosition($M),n.setXYZ(s+1,QM.x,QM.y,QM.z),s+=2)}i.getAttribute("position").needsUpdate=!0,$m.prototype.updateMatrixWorld.call(this,t)},nS.prototype=Object.create(Yg.prototype),nS.prototype.constructor=nS,nS.prototype.dispose=function(){this.geometry.dispose(),this.material.dispose()},nS.prototype.update=function(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)};var rS=new Lm,sS=new Wv,oS=new Wv;function aS(t,e,i){$m.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=i;var n=new gb(e);n.rotateY(.5*Math.PI),this.material=new Kv({wireframe:!0,fog:!1,toneMapped:!1}),void 0===this.color&&(this.material.vertexColors=!0);var r=n.getAttribute("position"),s=new Float32Array(3*r.count);n.setAttribute("color",new $v(s,3)),this.add(new Yg(n,this.material)),this.update()}function hS(t,e,i,n){t=t||10,e=e||10,i=new Wv(void 0!==i?i:4473924),n=new Wv(void 0!==n?n:8947848);for(var r=e/2,s=t/e,o=t/2,a=[],h=[],u=0,l=0,c=-o;u<=e;u++,c+=s){a.push(-o,0,c,o,0,c),a.push(c,0,-o,c,0,o);var d=u===r?i:n;d.toArray(h,l),l+=3,d.toArray(h,l),l+=3,d.toArray(h,l),l+=3,d.toArray(h,l),l+=3}var p=new yg;p.setAttribute("position",new ag(a,3)),p.setAttribute("color",new ag(h,3));var f=new jx({vertexColors:!0,toneMapped:!1});Zx.call(this,p,f)}function uS(t,e,i,n,r,s){t=t||10,e=e||16,i=i||8,n=n||64,r=new Wv(void 0!==r?r:4473924),s=new Wv(void 0!==s?s:8947848);var o,a,h,u,l,c,d,p=[],f=[];for(u=0;u<=e;u++)h=u/e*(2*Math.PI),o=Math.sin(h)*t,a=Math.cos(h)*t,p.push(0,0,0),p.push(o,0,a),d=1&u?r:s,f.push(d.r,d.g,d.b),f.push(d.r,d.g,d.b);for(u=0;u<=i;u++)for(d=1&u?r:s,c=t-t/i*u,l=0;l<n;l++)h=l/n*(2*Math.PI),o=Math.sin(h)*c,a=Math.cos(h)*c,p.push(o,0,a),f.push(d.r,d.g,d.b),h=(l+1)/n*(2*Math.PI),o=Math.sin(h)*c,a=Math.cos(h)*c,p.push(o,0,a),f.push(d.r,d.g,d.b);var m=new yg;m.setAttribute("position",new ag(p,3)),m.setAttribute("color",new ag(f,3));var v=new jx({vertexColors:!0,toneMapped:!1});Zx.call(this,m,v)}aS.prototype=Object.create($m.prototype),aS.prototype.constructor=aS,aS.prototype.dispose=function(){this.children[0].geometry.dispose(),this.children[0].material.dispose()},aS.prototype.update=function(){var t=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{var e=t.geometry.getAttribute("color");sS.copy(this.light.color),oS.copy(this.light.groundColor);for(var i=0,n=e.count;i<n;i++){var r=i<n/2?sS:oS;e.setXYZ(i,r.r,r.g,r.b)}e.needsUpdate=!0}t.lookAt(rS.setFromMatrixPosition(this.light.matrixWorld).negate())},hS.prototype=Object.assign(Object.create(Zx.prototype),{constructor:hS,copy:function(t){return Zx.prototype.copy.call(this,t),this.geometry.copy(t.geometry),this.material.copy(t.material),this},clone:function(){return(new this.constructor).copy(this)}}),uS.prototype=Object.create(Zx.prototype),uS.prototype.constructor=uS;var lS=new Lm,cS=new Lm,dS=new Lm;function pS(t,e,i){$m.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=i,void 0===e&&(e=1);var n=new yg;n.setAttribute("position",new ag([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));var r=new jx({fog:!1,toneMapped:!1});this.lightPlane=new Xx(n,r),this.add(this.lightPlane),(n=new yg).setAttribute("position",new ag([0,0,0,0,0,1],3)),this.targetLine=new Xx(n,r),this.add(this.targetLine),this.update()}pS.prototype=Object.create($m.prototype),pS.prototype.constructor=pS,pS.prototype.dispose=function(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()},pS.prototype.update=function(){lS.setFromMatrixPosition(this.light.matrixWorld),cS.setFromMatrixPosition(this.light.target.matrixWorld),dS.subVectors(cS,lS),this.lightPlane.lookAt(cS),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(cS),this.targetLine.scale.z=dS.length()};var fS=new Lm,mS=new Jg;function vS(t){var e=new yg,i=new jx({color:16777215,vertexColors:!0,toneMapped:!1}),n=[],r=[],s={},o=new Wv(16755200),a=new Wv(16711680),h=new Wv(43775),u=new Wv(16777215),l=new Wv(3355443);function c(t,e,i){d(t,i),d(e,i)}function d(t,e){n.push(0,0,0),r.push(e.r,e.g,e.b),void 0===s[t]&&(s[t]=[]),s[t].push(n.length/3-1)}c("n1","n2",o),c("n2","n4",o),c("n4","n3",o),c("n3","n1",o),c("f1","f2",o),c("f2","f4",o),c("f4","f3",o),c("f3","f1",o),c("n1","f1",o),c("n2","f2",o),c("n3","f3",o),c("n4","f4",o),c("p","n1",a),c("p","n2",a),c("p","n3",a),c("p","n4",a),c("u1","u2",h),c("u2","u3",h),c("u3","u1",h),c("c","t",u),c("p","c",l),c("cn1","cn2",l),c("cn3","cn4",l),c("cf1","cf2",l),c("cf3","cf4",l),e.setAttribute("position",new ag(n,3)),e.setAttribute("color",new ag(r,3)),Zx.call(this,e,i),this.camera=t,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}function gS(t,e,i,n,r,s,o){fS.set(r,s,o).unproject(n);var a=e[t];if(void 0!==a)for(var h=i.getAttribute("position"),u=0,l=a.length;u<l;u++)h.setXYZ(a[u],fS.x,fS.y,fS.z)}vS.prototype=Object.create(Zx.prototype),vS.prototype.constructor=vS,vS.prototype.update=function(){var t=this.geometry,e=this.pointMap;mS.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),gS("c",e,t,mS,0,0,-1),gS("t",e,t,mS,0,0,1),gS("n1",e,t,mS,-1,-1,-1),gS("n2",e,t,mS,1,-1,-1),gS("n3",e,t,mS,-1,1,-1),gS("n4",e,t,mS,1,1,-1),gS("f1",e,t,mS,-1,-1,1),gS("f2",e,t,mS,1,-1,1),gS("f3",e,t,mS,-1,1,1),gS("f4",e,t,mS,1,1,1),gS("u1",e,t,mS,.7,1.1,-1),gS("u2",e,t,mS,-.7,1.1,-1),gS("u3",e,t,mS,0,2,-1),gS("cf1",e,t,mS,-1,0,1),gS("cf2",e,t,mS,1,0,1),gS("cf3",e,t,mS,0,-1,1),gS("cf4",e,t,mS,0,1,1),gS("cn1",e,t,mS,-1,0,-1),gS("cn2",e,t,mS,1,0,-1),gS("cn3",e,t,mS,0,-1,-1),gS("cn4",e,t,mS,0,1,-1),t.getAttribute("position").needsUpdate=!0};var yS=new fv;function _S(t,e){this.object=t,void 0===e&&(e=16776960);var i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),n=new Float32Array(24),r=new yg;r.setIndex(new $v(i,1)),r.setAttribute("position",new $v(n,3)),Zx.call(this,r,new jx({color:e,toneMapped:!1})),this.matrixAutoUpdate=!1,this.update()}function xS(t,e){this.type="Box3Helper",this.box=t,e=e||16776960;var i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),n=new yg;n.setIndex(new $v(i,1)),n.setAttribute("position",new ag([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),Zx.call(this,n,new jx({color:e,toneMapped:!1})),this.geometry.computeBoundingSphere()}function bS(t,e,i){this.type="PlaneHelper",this.plane=t,this.size=void 0===e?1:e;var n=void 0!==i?i:16776960,r=new yg;r.setAttribute("position",new ag([1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0],3)),r.computeBoundingSphere(),Xx.call(this,r,new jx({color:n,toneMapped:!1}));var s=new yg;s.setAttribute("position",new ag([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3)),s.computeBoundingSphere(),this.add(new Yg(s,new Kv({color:n,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}_S.prototype=Object.create(Zx.prototype),_S.prototype.constructor=_S,_S.prototype.update=function(t){if(void 0!==t&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&yS.setFromObject(this.object),!yS.isEmpty()){var e=yS.min,i=yS.max,n=this.geometry.attributes.position,r=n.array;r[0]=i.x,r[1]=i.y,r[2]=i.z,r[3]=e.x,r[4]=i.y,r[5]=i.z,r[6]=e.x,r[7]=e.y,r[8]=i.z,r[9]=i.x,r[10]=e.y,r[11]=i.z,r[12]=i.x,r[13]=i.y,r[14]=e.z,r[15]=e.x,r[16]=i.y,r[17]=e.z,r[18]=e.x,r[19]=e.y,r[20]=e.z,r[21]=i.x,r[22]=e.y,r[23]=e.z,n.needsUpdate=!0,this.geometry.computeBoundingSphere()}},_S.prototype.setFromObject=function(t){return this.object=t,this.update(),this},_S.prototype.copy=function(t){return Zx.prototype.copy.call(this,t),this.object=t.object,this},_S.prototype.clone=function(){return(new this.constructor).copy(this)},xS.prototype=Object.create(Zx.prototype),xS.prototype.constructor=xS,xS.prototype.updateMatrixWorld=function(t){var e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),$m.prototype.updateMatrixWorld.call(this,t))},bS.prototype=Object.create(Xx.prototype),bS.prototype.constructor=bS,bS.prototype.updateMatrixWorld=function(t){var e=-this.plane.constant;Math.abs(e)<1e-8&&(e=1e-8),this.scale.set(.5*this.size,.5*this.size,e),this.children[0].material.side=e<0?1:0,this.lookAt(this.plane.normal),$m.prototype.updateMatrixWorld.call(this,t)};var wS,TS,MS=new Lm;function SS(t,e,i,n,r,s){$m.call(this),void 0===t&&(t=new Lm(0,0,1)),void 0===e&&(e=new Lm(0,0,0)),void 0===i&&(i=1),void 0===n&&(n=16776960),void 0===r&&(r=.2*i),void 0===s&&(s=.2*r),void 0===wS&&((wS=new yg).setAttribute("position",new ag([0,0,0,0,1,0],3)),(TS=new vw(0,.5,1,5,1)).translate(0,-.5,0)),this.position.copy(e),this.line=new Xx(wS,new jx({color:n,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Yg(TS,new Kv({color:n,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(i,r,s)}function ES(t){var e=[0,0,0,t=t||1,0,0,0,0,0,0,t,0,0,0,0,0,0,t],i=new yg;i.setAttribute("position",new ag(e,3)),i.setAttribute("color",new ag([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));var n=new jx({vertexColors:!0,toneMapped:!1});Zx.call(this,i,n)}SS.prototype=Object.create($m.prototype),SS.prototype.constructor=SS,SS.prototype.setDirection=function(t){if(t.y>.99999)this.quaternion.set(0,0,0,1);else if(t.y<-.99999)this.quaternion.set(1,0,0,0);else{MS.set(t.z,0,-t.x).normalize();var e=Math.acos(t.y);this.quaternion.setFromAxisAngle(MS,e)}},SS.prototype.setLength=function(t,e,i){void 0===e&&(e=.2*t),void 0===i&&(i=.2*e),this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(i,e,i),this.cone.position.y=t,this.cone.updateMatrix()},SS.prototype.setColor=function(t){this.line.material.color.set(t),this.cone.material.color.set(t)},SS.prototype.copy=function(t){return $m.prototype.copy.call(this,t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this},SS.prototype.clone=function(){return(new this.constructor).copy(this)},ES.prototype=Object.create(Zx.prototype),ES.prototype.constructor=ES;var LS,AS,DS,PS,CS=Math.pow(2,8),OS=[.125,.215,.35,.446,.526,.582],kS=5+OS.length,RS=20,IS={[sm]:0,[om]:1,[am]:2,3004:3,3005:4,3006:5,3007:6},YS=new YT,FS=(LS=RS,AS=new Float32Array(LS),DS=new Lm(0,1,0),(PS=new Tw({defines:{n:LS},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:AS},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:DS},inputEncoding:{value:IS[3e3]},outputEncoding:{value:IS[3e3]}},vertexShader:oE(),fragmentShader:`\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform sampler2D envMap;\nuniform int samples;\nuniform float weights[n];\nuniform bool latitudinal;\nuniform float dTheta;\nuniform float mipInt;\nuniform vec3 poleAxis;\n\n${aE()}\n\n#define ENVMAP_TYPE_CUBE_UV\n#include <cube_uv_reflection_fragment>\n\nvec3 getSample(float theta, vec3 axis) {\n\tfloat cosTheta = cos(theta);\n\t// Rodrigues' axis-angle rotation\n\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t+ cross(axis, vOutputDirection) * sin(theta)\n\t\t+ axis * dot(axis, vOutputDirection) * (1.0 - cosTheta);\n\treturn bilinearCubeUV(envMap, sampleDirection, mipInt);\n}\n\nvoid main() {\n\tvec3 axis = latitudinal ? poleAxis : cross(poleAxis, vOutputDirection);\n\tif (all(equal(axis, vec3(0.0))))\n\t\taxis = vec3(vOutputDirection.z, 0.0, - vOutputDirection.x);\n\taxis = normalize(axis);\n\tgl_FragColor = vec4(0.0);\n\tgl_FragColor.rgb += weights[0] * getSample(0.0, axis);\n\tfor (int i = 1; i < n; i++) {\n\t\tif (i >= samples)\n\t\t\tbreak;\n\t\tfloat theta = dTheta * float(i);\n\t\tgl_FragColor.rgb += weights[i] * getSample(-1.0 * theta, axis);\n\t\tgl_FragColor.rgb += weights[i] * getSample(theta, axis);\n\t}\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t`,blending:0,depthTest:!1,depthWrite:!1})).type="SphericalGaussianBlur",PS),NS=null,BS=null,{_lodPlanes:US,_sizeLods:jS,_sigmas:HS}=function(){for(var t=[],e=[],i=[],n=8,r=0;r<kS;r++){var s=Math.pow(2,n);e.push(s);var o=1/s;r>4?o=OS[r-8+4-1]:0==r&&(o=0),i.push(o);for(var a=1/(s-1),h=-a/2,u=1+a/2,l=[h,h,u,h,u,u,h,h,u,u,h,u],c=new Float32Array(108),d=new Float32Array(72),p=new Float32Array(36),f=0;f<6;f++){var m=f%3*2/3-1,v=f>2?0:-1,g=[m,v,0,m+2/3,v,0,m+2/3,v+1,0,m,v,0,m+2/3,v+1,0,m,v+1,0];c.set(g,18*f),d.set(l,12*f);var y=[f,f,f,f,f,f];p.set(y,6*f)}var _=new yg;_.setAttribute("position",new $v(c,3)),_.setAttribute("uv",new $v(d,2)),_.setAttribute("faceIndex",new $v(p,1)),t.push(_),n>4&&n--}return{_lodPlanes:t,_sizeLods:e,_sigmas:i}}(),zS=null,WS=null,GS=null,VS=(1+Math.sqrt(5))/2,XS=1/VS,qS=[new Lm(1,1,1),new Lm(-1,1,1),new Lm(1,1,-1),new Lm(-1,1,-1),new Lm(0,VS,XS),new Lm(0,VS,-XS),new Lm(XS,0,VS),new Lm(-XS,0,VS),new Lm(VS,XS,0),new Lm(-VS,XS,0)];function JS(t){WS=t,QS(FS)}function ZS(t){var e={magFilter:Nf,minFilter:Nf,generateMipmaps:!1,type:t?t.type:zf,format:t?t.format:1023,encoding:t?t.encoding:am,depthBuffer:!1,stencilBuffer:!1},i=$S(e);return i.depthBuffer=!t,zS=$S(e),i}function KS(t){zS.dispose(),WS.setRenderTarget(GS),t.scissorTest=!1,t.setSize(t.width,t.height)}function QS(t){var e=new tv;e.add(new Yg(US[0],t)),WS.compile(e,YS)}function $S(t){var e=new wm(3*CS,3*CS,t);return e.texture.mapping=Rf,e.texture.name="PMREM.cubeUv",e.scissorTest=!0,e}function tE(t,e,i,n,r){t.viewport.set(e,i,n,r),t.scissor.set(e,i,n,r)}function eE(t){var e=WS.autoClear;WS.autoClear=!1;for(var i=1;i<kS;i++){iE(t,i-1,i,Math.sqrt(HS[i]*HS[i]-HS[i-1]*HS[i-1]),qS[(i-1)%qS.length])}WS.autoClear=e}function iE(t,e,i,n,r){nE(t,zS,e,i,n,"latitudinal",r),nE(zS,t,i,i,n,"longitudinal",r)}function nE(t,e,i,n,r,s,o){"latitudinal"!==s&&"longitudinal"!==s&&console.error("blur direction must be either latitudinal or longitudinal!");var a=new tv;a.add(new Yg(US[n],FS));var h=FS.uniforms,u=jS[i]-1,l=isFinite(r)?Math.PI/(2*u):2*Math.PI/39,c=r/l,d=isFinite(r)?1+Math.floor(3*c):RS;d>RS&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${d} samples when the maximum is set to 20`);for(var p=[],f=0,m=0;m<RS;++m){var v=m/c,g=Math.exp(-v*v/2);p.push(g),0==m?f+=g:m<d&&(f+=2*g)}for(m=0;m<p.length;m++)p[m]=p[m]/f;h.envMap.value=t.texture,h.samples.value=d,h.weights.value=p,h.latitudinal.value="latitudinal"===s,o&&(h.poleAxis.value=o),h.dTheta.value=l,h.mipInt.value=8-i,h.inputEncoding.value=IS[t.texture.encoding],h.outputEncoding.value=IS[t.texture.encoding];var y=jS[n];tE(e,v=3*Math.max(0,CS-2*y),(0===n?0:2*CS)+2*y*(n>4?n-8+4:0),3*y,2*y),WS.setRenderTarget(e),WS.render(a,YS)}function rE(){var t=new Tw({uniforms:{envMap:{value:null},texelSize:{value:new vm(1,1)},inputEncoding:{value:IS[3e3]},outputEncoding:{value:IS[3e3]}},vertexShader:oE(),fragmentShader:`\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform sampler2D envMap;\nuniform vec2 texelSize;\n\n${aE()}\n\n#define RECIPROCAL_PI 0.31830988618\n#define RECIPROCAL_PI2 0.15915494\n\nvoid main() {\n\tgl_FragColor = vec4(0.0);\n\tvec3 outputDirection = normalize(vOutputDirection);\n\tvec2 uv;\n\tuv.y = asin(clamp(outputDirection.y, -1.0, 1.0)) * RECIPROCAL_PI + 0.5;\n\tuv.x = atan(outputDirection.z, outputDirection.x) * RECIPROCAL_PI2 + 0.5;\n\tvec2 f = fract(uv / texelSize - 0.5);\n\tuv -= f * texelSize;\n\tvec3 tl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tuv.x += texelSize.x;\n\tvec3 tr = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tuv.y += texelSize.y;\n\tvec3 br = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tuv.x -= texelSize.x;\n\tvec3 bl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;\n\tvec3 tm = mix(tl, tr, f.x);\n\tvec3 bm = mix(bl, br, f.x);\n\tgl_FragColor.rgb = mix(tm, bm, f.y);\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t`,blending:0,depthTest:!1,depthWrite:!1});return t.type="EquirectangularToCubeUV",t}function sE(){var t=new Tw({uniforms:{envMap:{value:null},inputEncoding:{value:IS[3e3]},outputEncoding:{value:IS[3e3]}},vertexShader:oE(),fragmentShader:`\nprecision mediump float;\nprecision mediump int;\nvarying vec3 vOutputDirection;\nuniform samplerCube envMap;\n\n${aE()}\n\nvoid main() {\n\tgl_FragColor = vec4(0.0);\n\tgl_FragColor.rgb = envMapTexelToLinear(textureCube(envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ))).rgb;\n\tgl_FragColor = linearToOutputTexel(gl_FragColor);\n}\n\t\t`,blending:0,depthTest:!1,depthWrite:!1});return t.type="CubemapToCubeUV",t}function oE(){return"\nprecision mediump float;\nprecision mediump int;\nattribute vec3 position;\nattribute vec2 uv;\nattribute float faceIndex;\nvarying vec3 vOutputDirection;\nvec3 getDirection(vec2 uv, float face) {\n\tuv = 2.0 * uv - 1.0;\n\tvec3 direction = vec3(uv, 1.0);\n\tif (face == 0.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.z *= -1.0;\n\t} else if (face == 1.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.z *= -1.0;\n\t} else if (face == 3.0) {\n\t\tdirection = direction.zyx;\n\t\tdirection.x *= -1.0;\n\t} else if (face == 4.0) {\n\t\tdirection = direction.xzy;\n\t\tdirection.y *= -1.0;\n\t} else if (face == 5.0) {\n\t\tdirection.xz *= -1.0;\n\t}\n\treturn direction;\n}\nvoid main() {\n\tvOutputDirection = getDirection(uv, faceIndex);\n\tgl_Position = vec4( position, 1.0 );\n}\n\t"}function aE(){return"\nuniform int inputEncoding;\nuniform int outputEncoding;\n\n#include <encodings_pars_fragment>\n\nvec4 inputTexelToLinear(vec4 value){\n\tif(inputEncoding == 0){\n\t\treturn value;\n\t}else if(inputEncoding == 1){\n\t\treturn sRGBToLinear(value);\n\t}else if(inputEncoding == 2){\n\t\treturn RGBEToLinear(value);\n\t}else if(inputEncoding == 3){\n\t\treturn RGBMToLinear(value, 7.0);\n\t}else if(inputEncoding == 4){\n\t\treturn RGBMToLinear(value, 16.0);\n\t}else if(inputEncoding == 5){\n\t\treturn RGBDToLinear(value, 256.0);\n\t}else{\n\t\treturn GammaToLinear(value, 2.2);\n\t}\n}\n\nvec4 linearToOutputTexel(vec4 value){\n\tif(outputEncoding == 0){\n\t\treturn value;\n\t}else if(outputEncoding == 1){\n\t\treturn LinearTosRGB(value);\n\t}else if(outputEncoding == 2){\n\t\treturn LinearToRGBE(value);\n\t}else if(outputEncoding == 3){\n\t\treturn LinearToRGBM(value, 7.0);\n\t}else if(outputEncoding == 4){\n\t\treturn LinearToRGBM(value, 16.0);\n\t}else if(outputEncoding == 5){\n\t\treturn LinearToRGBD(value, 256.0);\n\t}else{\n\t\treturn LinearToGamma(value, 2.2);\n\t}\n}\n\nvec4 envMapTexelToLinear(vec4 color) {\n\treturn inputTexelToLinear(color);\n}\n\t"}JS.prototype={constructor:JS,fromScene:function(t,e=0,i=.1,n=100){GS=WS.getRenderTarget();var r=ZS();return function(t,e,i,n){var r=new Zg(90,1,e,i),s=[1,1,1,1,-1,1],o=[1,1,-1,-1,-1,1],a=WS.outputEncoding,h=WS.toneMapping,u=WS.toneMappingExposure,l=WS.getClearColor(),c=WS.getClearAlpha();WS.toneMapping=1,WS.toneMappingExposure=1,WS.outputEncoding=sm,t.scale.z*=-1;var d=t.background;if(d&&d.isColor){d.convertSRGBToLinear();var p=Math.max(d.r,d.g,d.b),f=Math.min(Math.max(Math.ceil(Math.log2(p)),-128),127);d=d.multiplyScalar(Math.pow(2,-f));var m=(f+128)/255;WS.setClearColor(d,m),t.background=null}for(var v=0;v<6;v++){var g=v%3;0==g?(r.up.set(0,s[v],0),r.lookAt(o[v],0,0)):1==g?(r.up.set(0,0,s[v]),r.lookAt(0,o[v],0)):(r.up.set(0,s[v],0),r.lookAt(0,0,o[v])),tE(n,g*CS,v>2?CS:0,CS,CS),WS.setRenderTarget(n),WS.render(t,r)}WS.toneMapping=h,WS.toneMappingExposure=u,WS.outputEncoding=a,WS.setClearColor(l,c),t.scale.z*=-1}(t,i,n,r),e>0&&iE(r,0,0,e),eE(r),KS(r),r},fromEquirectangular:function(t){return t.magFilter=Nf,t.minFilter=Nf,t.generateMipmaps=!1,this.fromCubemap(t)},fromCubemap:function(t){GS=WS.getRenderTarget();var e=ZS(t);return function(t,e){var i=new tv;t.isCubeTexture?null==BS&&(BS=sE()):null==NS&&(NS=rE());var n=t.isCubeTexture?BS:NS;i.add(new Yg(US[0],n));var r=n.uniforms;r.envMap.value=t,t.isCubeTexture||r.texelSize.value.set(1/t.image.width,1/t.image.height);r.inputEncoding.value=IS[t.encoding],r.outputEncoding.value=IS[t.encoding],tE(e,0,0,3*CS,2*CS),WS.setRenderTarget(e),WS.render(i,YS)}(t,e),eE(e),KS(e),e},compileCubemapShader:function(){null==BS&&QS(BS=sE())},compileEquirectangularShader:function(){null==NS&&QS(NS=rE())},dispose:function(){FS.dispose(),null!=BS&&BS.dispose(),null!=NS&&NS.dispose();for(var t=0;t<US.length;t++)US[t].dispose()}};function hE(t){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead."),fT.call(this,t),this.type="catmullrom"}oT.create=function(t,e){return console.log("THREE.Curve.create() has been deprecated"),t.prototype=Object.create(oT.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},Object.assign(ET.prototype,{createPointsGeometry:function(t){console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");var e=this.getPoints(t);return this.createGeometry(e)},createSpacedPointsGeometry:function(t){console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");var e=this.getSpacedPoints(t);return this.createGeometry(e)},createGeometry:function(t){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var e=new zg,i=0,n=t.length;i<n;i++){var r=t[i];e.vertices.push(new Lm(r.x,r.y,r.z||0))}return e}}),Object.assign(LT.prototype,{fromPoints:function(t){return console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints()."),this.setFromPoints(t)}}),Object.create(fT.prototype),Object.create(fT.prototype),hE.prototype=Object.create(fT.prototype),Object.assign(hE.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}}),hS.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")},iS.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")},Object.assign(Kw.prototype,{extractUrlBase:function(t){return console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead."),HT(t)}}),Kw.Handlers={add:function(){console.error("THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.")},get:function(){console.error("THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.")}},Object.assign(XT.prototype,{setTexturePath:function(t){return console.warn("THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath()."),this.setResourcePath(t)}}),Object.assign(GM.prototype,{center:function(t){return console.warn("THREE.Box2: .center() has been renamed to .getCenter()."),this.getCenter(t)},empty:function(){return console.warn("THREE.Box2: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(t){return console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},size:function(t){return console.warn("THREE.Box2: .size() has been renamed to .getSize()."),this.getSize(t)}}),Object.assign(fv.prototype,{center:function(t){return console.warn("THREE.Box3: .center() has been renamed to .getCenter()."),this.getCenter(t)},empty:function(){return console.warn("THREE.Box3: .empty() has been renamed to .isEmpty()."),this.isEmpty()},isIntersectionBox:function(t){return console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionSphere:function(t){return console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)},size:function(t){return console.warn("THREE.Box3: .size() has been renamed to .getSize()."),this.getSize(t)}}),ny.prototype.setFromMatrix=function(t){return console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix()."),this.setFromProjectionMatrix(t)},qM.prototype.center=function(t){return console.warn("THREE.Line3: .center() has been renamed to .getCenter()."),this.getCenter(t)},Object.assign(mm,{random16:function(){return console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead."),Math.random()},nearestPowerOfTwo:function(t){return console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo()."),mm.floorPowerOfTwo(t)},nextPowerOfTwo:function(t){return console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo()."),mm.ceilPowerOfTwo(t)}}),Object.assign(gm.prototype,{flattenToArrayOffset:function(t,e){return console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},multiplyVector3:function(t){return console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBufferAttribute:function(t){return console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead."),t.applyMatrix3(this)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}}),Object.assign(Im.prototype,{extractPosition:function(t){return console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition()."),this.copyPosition(t)},flattenToArrayOffset:function(t,e){return console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead."),this.toArray(t,e)},getPosition:function(){return console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead."),(new Lm).setFromMatrixColumn(this,3)},setRotationFromQuaternion:function(t){return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(t)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(t){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector4:function(t){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(t){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),t.transformDirection(this)},crossVector:function(t){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBufferAttribute:function(t){return console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(t,e,i,n,r,s){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(t,e,n,i,r,s)}}),Dv.prototype.isIntersectionLine=function(t){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(t)},Mm.prototype.multiplyVector3=function(t){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),t.applyQuaternion(this)},Object.assign(Sv.prototype,{isIntersectionBox:function(t){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionPlane:function(t){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(t)},isIntersectionSphere:function(t){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)}}),Object.assign(Uv.prototype,{area:function(){return console.warn("THREE.Triangle: .area() has been renamed to .getArea()."),this.getArea()},barycoordFromPoint:function(t,e){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),this.getBarycoord(t,e)},midpoint:function(t){return console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint()."),this.getMidpoint(t)},normal:function(t){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),this.getNormal(t)},plane:function(t){return console.warn("THREE.Triangle: .plane() has been renamed to .getPlane()."),this.getPlane(t)}}),Object.assign(Uv,{barycoordFromPoint:function(t,e,i,n,r){return console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord()."),Uv.getBarycoord(t,e,i,n,r)},normal:function(t,e,i,n){return console.warn("THREE.Triangle: .normal() has been renamed to .getNormal()."),Uv.getNormal(t,e,i,n)}}),Object.assign(AT.prototype,{extractAllPoints:function(t){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(t)},extrude:function(t){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new $b(this,t)},makeGeometry:function(t){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new cw(this,t)}}),Object.assign(vm.prototype,{fromAttribute:function(t,e,i){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,i)},distanceToManhattan:function(t){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},lengthManhattan:function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(Lm.prototype,{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(t){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(t)},getScaleFromMatrix:function(t){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(t)},getColumnFromMatrix:function(t,e){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(e,t)},applyProjection:function(t){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(t)},fromAttribute:function(t,e,i){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,i)},distanceToManhattan:function(t){return console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},lengthManhattan:function(){return console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(bm.prototype,{fromAttribute:function(t,e,i){return console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,i)},lengthManhattan:function(){return console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(zg.prototype,{computeTangents:function(){console.error("THREE.Geometry: .computeTangents() has been removed.")},computeLineDistances:function(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")},applyMatrix:function(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}}),Object.assign($m.prototype,{getChildByName:function(t){return console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName()."),this.getObjectByName(t)},renderDepth:function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(t,e){return console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead."),this.translateOnAxis(e,t)},getWorldRotation:function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")},applyMatrix:function(t){return console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}}),Object.defineProperties($m.prototype,{eulerOrder:{get:function(){return console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order},set:function(t){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order."),this.rotation.order=t}},useQuaternion:{get:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")},set:function(){console.warn("THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.")}}}),Object.assign(Yg.prototype,{setDrawMode:function(){console.error("THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}),Object.defineProperties(Yg.prototype,{drawMode:{get:function(){return console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode."),0},set:function(){console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.")}}}),Object.defineProperties(Px.prototype,{objects:{get:function(){return console.warn("THREE.LOD: .objects has been renamed to .levels."),this.levels}}}),Object.defineProperty(Rx.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}}),Cx.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")},Object.defineProperty(oT.prototype,"__arcLengthDivisions",{get:function(){return console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions},set:function(t){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions."),this.arcLengthDivisions=t}}),Zg.prototype.setLens=function(t,e){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup."),void 0!==e&&(this.filmGauge=e),this.setFocalLength(t)},Object.defineProperties(DT.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(t){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov."),this.shadow.camera.fov=t}},shadowCameraLeft:{set:function(t){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left."),this.shadow.camera.left=t}},shadowCameraRight:{set:function(t){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right."),this.shadow.camera.right=t}},shadowCameraTop:{set:function(t){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top."),this.shadow.camera.top=t}},shadowCameraBottom:{set:function(t){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom."),this.shadow.camera.bottom=t}},shadowCameraNear:{set:function(t){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near."),this.shadow.camera.near=t}},shadowCameraFar:{set:function(t){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far."),this.shadow.camera.far=t}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(t){console.warn("THREE.Light: .shadowBias is now .shadow.bias."),this.shadow.bias=t}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(t){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width."),this.shadow.mapSize.width=t}},shadowMapHeight:{set:function(t){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height."),this.shadow.mapSize.height=t}}}),Object.defineProperties($v.prototype,{length:{get:function(){return console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead."),this.array.length}},dynamic:{get:function(){return console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.usage===lm},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead."),this.setUsage(lm)}}}),Object.assign($v.prototype,{setDynamic:function(t){return console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?lm:um),this},copyIndicesArray:function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},setArray:function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")}}),Object.assign(yg.prototype,{addIndex:function(t){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex()."),this.setIndex(t)},addAttribute:function(t,e){return console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute()."),e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?"index"===t?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(e),this):this.setAttribute(t,e):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(t,new $v(arguments[1],arguments[2])))},addDrawCall:function(t,e,i){void 0!==i&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset."),console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup()."),this.addGroup(t,e)},clearDrawCalls:function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups()."),this.clearGroups()},computeTangents:function(){console.warn("THREE.BufferGeometry: .computeTangents() has been removed.")},computeOffsets:function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")},removeAttribute:function(t){return console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute()."),this.deleteAttribute(t)},applyMatrix:function(t){return console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}}),Object.defineProperties(yg.prototype,{drawcalls:{get:function(){return console.error("THREE.BufferGeometry: .drawcalls has been renamed to .groups."),this.groups}},offsets:{get:function(){return console.warn("THREE.BufferGeometry: .offsets has been renamed to .groups."),this.groups}}}),Object.defineProperties(jM.prototype,{linePrecision:{get:function(){return console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead."),this.params.Line.threshold},set:function(t){console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead."),this.params.Line.threshold=t}}}),Object.defineProperties(ux.prototype,{dynamic:{get:function(){return console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead."),this.usage===lm},set:function(t){console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead."),this.setUsage(t)}}}),Object.assign(ux.prototype,{setDynamic:function(t){return console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead."),this.setUsage(!0===t?lm:um),this},setArray:function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")}}),Object.assign(tw.prototype,{getArrays:function(){console.error("THREE.ExtrudeBufferGeometry: .getArrays() has been removed.")},addShapeList:function(){console.error("THREE.ExtrudeBufferGeometry: .addShapeList() has been removed.")},addShape:function(){console.error("THREE.ExtrudeBufferGeometry: .addShape() has been removed.")}}),Object.defineProperties(BM.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){return console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead."),this}}}),Object.defineProperties(Zv.prototype,{wrapAround:{get:function(){console.warn("THREE.Material: .wrapAround has been removed.")},set:function(){console.warn("THREE.Material: .wrapAround has been removed.")}},overdraw:{get:function(){console.warn("THREE.Material: .overdraw has been removed.")},set:function(){console.warn("THREE.Material: .overdraw has been removed.")}},wrapRGB:{get:function(){return console.warn("THREE.Material: .wrapRGB has been removed."),new Wv}},shading:{get:function(){console.error("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(t){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===t}},stencilMask:{get:function(){return console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask},set:function(t){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead."),this.stencilFuncMask=t}}}),Object.defineProperties(Ew.prototype,{metal:{get:function(){return console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead."),!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}}),Object.defineProperties(qg.prototype,{derivatives:{get:function(){return console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives},set:function(t){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives."),this.extensions.derivatives=t}}}),Object.assign(ox.prototype,{clearTarget:function(t,e,i,n){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead."),this.setRenderTarget(t),this.clear(e,i,n)},animate:function(t){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop()."),this.setAnimationLoop(t)},getCurrentRenderTarget:function(){return console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget()."),this.getRenderTarget()},getMaxAnisotropy:function(){return console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy()."),this.capabilities.getMaxAnisotropy()},getPrecision:function(){return console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision."),this.capabilities.precision},resetGLState:function(){return console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset()."),this.state.reset()},supportsFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' )."),this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' )."),this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){return console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' )."),this.extensions.get("OES_standard_derivatives")},supportsCompressedTextureS3TC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' )."),this.extensions.get("WEBGL_compressed_texture_s3tc")},supportsCompressedTexturePVRTC:function(){return console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' )."),this.extensions.get("WEBGL_compressed_texture_pvrtc")},supportsBlendMinMax:function(){return console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' )."),this.extensions.get("EXT_blend_minmax")},supportsVertexTextures:function(){return console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures."),this.capabilities.vertexTextures},supportsInstancedArrays:function(){return console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' )."),this.extensions.get("ANGLE_instanced_arrays")},enableScissorTest:function(t){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest()."),this.setScissorTest(t)},initMaterial:function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},addPrePlugin:function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},addPostPlugin:function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},updateShadowMap:function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},setFaceCulling:function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")},allocTextureUnit:function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")},setTexture:function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")},setTexture2D:function(){console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.")},setTextureCube:function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")},getActiveMipMapLevel:function(){return console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel()."),this.getActiveMipmapLevel()}}),Object.defineProperties(ox.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled."),this.shadowMap.enabled=t}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(t){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type."),this.shadowMap.type=t}},shadowMapCullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.")}},context:{get:function(){return console.warn("THREE.WebGLRenderer: .context has been removed. Use .getContext() instead."),this.getContext()}},vr:{get:function(){return console.warn("THREE.WebGLRenderer: .vr has been renamed to .xr"),this.xr}},gammaInput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead."),!1},set:function(){console.warn("THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.")}},gammaOutput:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),!1},set:function(t){console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead."),this.outputEncoding=!0===t?om:sm}}}),Object.defineProperties($_.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")}},renderReverseSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.")}},renderSingleSided:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")},set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}}),Object.defineProperties(wm.prototype,{wrapS:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS."),this.texture.wrapS=t}},wrapT:{get:function(){return console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT},set:function(t){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT."),this.texture.wrapT=t}},magFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter."),this.texture.magFilter=t}},minFilter:{get:function(){return console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter},set:function(t){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter."),this.texture.minFilter=t}},anisotropy:{get:function(){return console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy},set:function(t){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy."),this.texture.anisotropy=t}},offset:{get:function(){return console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset},set:function(t){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset."),this.texture.offset=t}},repeat:{get:function(){return console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat},set:function(t){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat."),this.texture.repeat=t}},format:{get:function(){return console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format},set:function(t){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format."),this.texture.format=t}},type:{get:function(){return console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type},set:function(t){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type."),this.texture.type=t}},generateMipmaps:{get:function(){return console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps},set:function(t){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps."),this.texture.generateMipmaps=t}}}),Object.defineProperties(gM.prototype,{load:{value:function(t){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var e=this;return(new rM).load(t,(function(t){e.setBuffer(t)})),this}},startTime:{set:function(){console.warn("THREE.Audio: .startTime is now .play( delay ).")}}}),TM.prototype.getData=function(){return console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData()."),this.getFrequencyData()},Qg.prototype.updateCubeMap=function(t,e){return console.warn("THREE.CubeCamera: .updateCubeMap() is now .update()."),this.update(t,e)};ym.crossOrigin=void 0,ym.loadTexture=function(t,e,i,n){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");var r=new sT;r.setCrossOrigin(this.crossOrigin);var s=r.load(t,i,void 0,n);return e&&(s.mapping=e),s},ym.loadTextureCube=function(t,e,i,n){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");var r=new rT;r.setCrossOrigin(this.crossOrigin);var s=r.load(t,i,void 0,n);return e&&(s.mapping=e),s},ym.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")},ym.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"115"}}));var uE=i(17583),lE=i(33915),cE=i.n(lE);window.Promise||(window.Promise=uE.Polyfill),Object.assign||(Object.assign=cE());var dE="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};if(Date.now&&Date.prototype.getTime||(Date.now=function(){return(new Date).getTime()}),!dE.performance||!dE.performance.now){var pE=Date.now();dE.performance||(dE.performance={}),dE.performance.now=function(){return Date.now()-pE}}for(var fE=Date.now(),mE=["ms","moz","webkit","o"],vE=0;vE<mE.length&&!dE.requestAnimationFrame;++vE){var gE=mE[vE];dE.requestAnimationFrame=dE[gE+"RequestAnimationFrame"],dE.cancelAnimationFrame=dE[gE+"CancelAnimationFrame"]||dE[gE+"CancelRequestAnimationFrame"]}dE.requestAnimationFrame||(dE.requestAnimationFrame=function(t){if("function"!=typeof t)throw new TypeError(t+"is not a function");var e=Date.now(),i=16+fE-e;return i<0&&(i=0),fE=e,setTimeout((function(){fE=Date.now(),t(performance.now())}),i)}),dE.cancelAnimationFrame||(dE.cancelAnimationFrame=function(t){return clearTimeout(t)}),Math.sign||(Math.sign=function(t){return 0===(t=Number(t))||isNaN(t)?t:t>0?1:-1}),Number.isInteger||(Number.isInteger=function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t}),window.ArrayBuffer||(window.ArrayBuffer=Array),window.Float32Array||(window.Float32Array=Array),window.Uint32Array||(window.Uint32Array=Array),window.Uint16Array||(window.Uint16Array=Array),window.Uint8Array||(window.Uint8Array=Array),window.Int32Array||(window.Int32Array=Array);var yE=/iPhone/i,_E=/iPod/i,xE=/iPad/i,bE=/\biOS-universal(?:.+)Mac\b/i,wE=/\bAndroid(?:.+)Mobile\b/i,TE=/Android/i,ME=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,SE=/Silk/i,EE=/Windows Phone/i,LE=/\bWindows(?:.+)ARM\b/i,AE=/BlackBerry/i,DE=/BB10/i,PE=/Opera Mini/i,CE=/\b(CriOS|Chrome)(?:.+)Mobile/i,OE=/Mobile(?:.+)Firefox\b/i,kE=function(t){return void 0!==t&&"MacIntel"===t.platform&&"number"==typeof t.maxTouchPoints&&t.maxTouchPoints>1&&"undefined"==typeof MSStream};var RE=function(t){var e={userAgent:"",platform:"",maxTouchPoints:0};t||"undefined"==typeof navigator?"string"==typeof t?e.userAgent=t:t&&t.userAgent&&(e={userAgent:t.userAgent,platform:t.platform,maxTouchPoints:t.maxTouchPoints||0}):e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0};var i=e.userAgent,n=i.split("[FBAN");void 0!==n[1]&&(i=n[0]),void 0!==(n=i.split("Twitter"))[1]&&(i=n[0]);var r=function(t){return function(e){return e.test(t)}}(i),s={apple:{phone:r(yE)&&!r(EE),ipod:r(_E),tablet:!r(yE)&&(r(xE)||kE(e))&&!r(EE),universal:r(bE),device:(r(yE)||r(_E)||r(xE)||r(bE)||kE(e))&&!r(EE)},amazon:{phone:r(ME),tablet:!r(ME)&&r(SE),device:r(ME)||r(SE)},android:{phone:!r(EE)&&r(ME)||!r(EE)&&r(wE),tablet:!r(EE)&&!r(ME)&&!r(wE)&&(r(SE)||r(TE)),device:!r(EE)&&(r(ME)||r(SE)||r(wE)||r(TE))||r(/\bokhttp\b/i)},windows:{phone:r(EE),tablet:r(LE),device:r(EE)||r(LE)},other:{blackberry:r(AE),blackberry10:r(DE),opera:r(PE),firefox:r(OE),chrome:r(CE),device:r(AE)||r(DE)||r(PE)||r(OE)||r(CE)},any:!1,phone:!1,tablet:!1};return s.any=s.apple.device||s.android.device||s.windows.device||s.other.device,s.phone=s.apple.phone||s.android.phone||s.windows.phone,s.tablet=s.apple.tablet||s.android.tablet||s.windows.tablet,s}(window.navigator);var IE={MIPMAP_TEXTURES:1,ANISOTROPIC_LEVEL:0,RESOLUTION:1,FILTER_RESOLUTION:1,SPRITE_MAX_TEXTURES:function(t){var e=!0;if(RE.tablet||RE.phone){if(e=!1,RE.apple.device){var i=navigator.userAgent.match(/OS (\d+)_(\d+)?/);if(i)parseInt(i[1],10)>=11&&(e=!0)}if(RE.android.device){var n=navigator.userAgent.match(/Android\s([0-9.]*)/);if(n)parseInt(n[1],10)>=7&&(e=!0)}}return e?t:4}(32),SPRITE_BATCH_SIZE:4096,RENDER_OPTIONS:{view:null,antialias:!1,forceFXAA:!1,autoDensity:!1,transparent:!1,backgroundColor:0,clearBeforeRender:!0,preserveDrawingBuffer:!1,width:800,height:600,legacy:!1},GC_MODE:0,GC_MAX_IDLE:3600,GC_MAX_CHECK_COUNT:600,WRAP_MODE:33071,SCALE_MODE:1,PRECISION_VERTEX:"highp",PRECISION_FRAGMENT:RE.apple.device?"highp":"mediump",CAN_UPLOAD_SAME_BUFFER:!RE.apple.device,CREATE_IMAGE_BITMAP:!1,ROUND_PIXELS:!1},YE=i(17168),FE=i.n(YE),NE=i(8799),BE=i.n(NE);const UE=require("url");var jE,HE,zE,WE,GE,VE,XE,qE,JE,ZE,KE,QE,$E,tL,eL=i.n(UE);!function(t){t[t.WEBGL_LEGACY=0]="WEBGL_LEGACY",t[t.WEBGL=1]="WEBGL",t[t.WEBGL2=2]="WEBGL2"}(jE||(jE={})),function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.WEBGL=1]="WEBGL",t[t.CANVAS=2]="CANVAS"}(HE||(HE={})),function(t){t[t.NORMAL=0]="NORMAL",t[t.ADD=1]="ADD",t[t.MULTIPLY=2]="MULTIPLY",t[t.SCREEN=3]="SCREEN",t[t.OVERLAY=4]="OVERLAY",t[t.DARKEN=5]="DARKEN",t[t.LIGHTEN=6]="LIGHTEN",t[t.COLOR_DODGE=7]="COLOR_DODGE",t[t.COLOR_BURN=8]="COLOR_BURN",t[t.HARD_LIGHT=9]="HARD_LIGHT",t[t.SOFT_LIGHT=10]="SOFT_LIGHT",t[t.DIFFERENCE=11]="DIFFERENCE",t[t.EXCLUSION=12]="EXCLUSION",t[t.HUE=13]="HUE",t[t.SATURATION=14]="SATURATION",t[t.COLOR=15]="COLOR",t[t.LUMINOSITY=16]="LUMINOSITY",t[t.NORMAL_NPM=17]="NORMAL_NPM",t[t.ADD_NPM=18]="ADD_NPM",t[t.SCREEN_NPM=19]="SCREEN_NPM",t[t.NONE=20]="NONE",t[t.SRC_OVER=0]="SRC_OVER",t[t.SRC_IN=21]="SRC_IN",t[t.SRC_OUT=22]="SRC_OUT",t[t.SRC_ATOP=23]="SRC_ATOP",t[t.DST_OVER=24]="DST_OVER",t[t.DST_IN=25]="DST_IN",t[t.DST_OUT=26]="DST_OUT",t[t.DST_ATOP=27]="DST_ATOP",t[t.ERASE=26]="ERASE",t[t.SUBTRACT=28]="SUBTRACT",t[t.XOR=29]="XOR"}(zE||(zE={})),function(t){t[t.POINTS=0]="POINTS",t[t.LINES=1]="LINES",t[t.LINE_LOOP=2]="LINE_LOOP",t[t.LINE_STRIP=3]="LINE_STRIP",t[t.TRIANGLES=4]="TRIANGLES",t[t.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",t[t.TRIANGLE_FAN=6]="TRIANGLE_FAN"}(WE||(WE={})),function(t){t[t.RGBA=6408]="RGBA",t[t.RGB=6407]="RGB",t[t.ALPHA=6406]="ALPHA",t[t.LUMINANCE=6409]="LUMINANCE",t[t.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",t[t.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",t[t.DEPTH_STENCIL=34041]="DEPTH_STENCIL"}(GE||(GE={})),function(t){t[t.TEXTURE_2D=3553]="TEXTURE_2D",t[t.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",t[t.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",t[t.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",t[t.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",t[t.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",t[t.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",t[t.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",t[t.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z"}(VE||(VE={})),function(t){t[t.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",t[t.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",t[t.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",t[t.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",t[t.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",t[t.FLOAT=5126]="FLOAT",t[t.HALF_FLOAT=36193]="HALF_FLOAT"}(XE||(XE={})),function(t){t[t.NEAREST=0]="NEAREST",t[t.LINEAR=1]="LINEAR"}(qE||(qE={})),function(t){t[t.CLAMP=33071]="CLAMP",t[t.REPEAT=10497]="REPEAT",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT"}(JE||(JE={})),function(t){t[t.OFF=0]="OFF",t[t.POW2=1]="POW2",t[t.ON=2]="ON"}(ZE||(ZE={})),function(t){t[t.NPM=0]="NPM",t[t.UNPACK=1]="UNPACK",t[t.PMA=2]="PMA",t[t.NO_PREMULTIPLIED_ALPHA=0]="NO_PREMULTIPLIED_ALPHA",t[t.PREMULTIPLY_ON_UPLOAD=1]="PREMULTIPLY_ON_UPLOAD",t[t.PREMULTIPLY_ALPHA=2]="PREMULTIPLY_ALPHA"}(KE||(KE={})),function(t){t[t.AUTO=0]="AUTO",t[t.MANUAL=1]="MANUAL"}(QE||(QE={})),function(t){t.LOW="lowp",t.MEDIUM="mediump",t.HIGH="highp"}($E||($E={})),function(t){t[t.NONE=0]="NONE",t[t.SCISSOR=1]="SCISSOR",t[t.STENCIL=2]="STENCIL",t[t.SPRITE=3]="SPRITE"}(tL||(tL={})),IE.RETINA_PREFIX=/@([0-9\.]+)x/,IE.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT=!0;var iL,nL=!1;function rL(t,e){return(e=e||[])[0]=(t>>16&255)/255,e[1]=(t>>8&255)/255,e[2]=(255&t)/255,e}function sL(t){var e=t.toString(16);return"#"+(e="000000".substr(0,6-e.length)+e)}var oL=function(){for(var t=[],e=[],i=0;i<32;i++)t[i]=i,e[i]=i;t[zE.NORMAL_NPM]=zE.NORMAL,t[zE.ADD_NPM]=zE.ADD,t[zE.SCREEN_NPM]=zE.SCREEN,e[zE.NORMAL]=zE.NORMAL_NPM,e[zE.ADD]=zE.ADD_NPM,e[zE.SCREEN]=zE.SCREEN_NPM;var n=[];return n.push(e),n.push(t),n}();function aL(t,e){return oL[e?1:0][t]}function hL(t,e){if(1===e)return(255*e<<24)+t;if(0===e)return 0;var i=t>>16&255,n=t>>8&255,r=255&t;return(255*e<<24)+((i=i*e+.5|0)<<16)+((n=n*e+.5|0)<<8)+(r=r*e+.5|0)}function uL(t,e,i,n){return(i=i||new Float32Array(4))[0]=(t>>16&255)/255,i[1]=(t>>8&255)/255,i[2]=(255&t)/255,(n||void 0===n)&&(i[0]*=e,i[1]*=e,i[2]*=e),i[3]=e,i}Float32Array,Uint32Array,Int32Array,Uint8Array;function lL(t){return t+=0===t?1:0,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)+1}function cL(t){return!(t&t-1||!t)}function dL(t){var e=(t>65535?1:0)<<4,i=((t>>>=e)>255?1:0)<<3;return e|=i,e|=i=((t>>>=i)>15?1:0)<<2,(e|=i=((t>>>=i)>3?1:0)<<1)|(t>>>=i)>>1}function pL(t,e,i){var n,r=t.length;if(!(e>=r||0===i)){var s=r-(i=e+i>r?r-e:i);for(n=e;n<s;++n)t[n]=t[n+i];t.length=s}}function fL(t){return 0===t?0:t<0?-1:1}var mL=0;function vL(){return++mL}var gL={};function yL(t,e,i){if(void 0===i&&(i=3),!gL[e]){var n=(new Error).stack;void 0===n?console.warn("PixiJS Deprecation Warning: ",e+"\nDeprecated since v"+t):(n=n.split("\n").splice(i).join("\n"),console.groupCollapsed?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",e+"\nDeprecated since v"+t),console.warn(n),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",e+"\nDeprecated since v"+t),console.warn(n))),gL[e]=!0}}var _L={},xL=Object.create(null),bL=Object.create(null);var wL=function(){function t(t,e,i){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.resolution=i||IE.RESOLUTION,this.resize(t,e)}return t.prototype.clear=function(){this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.canvas.width,this.canvas.height)},t.prototype.resize=function(t,e){this.canvas.width=t*this.resolution,this.canvas.height=e*this.resolution},t.prototype.destroy=function(){this.context=null,this.canvas=null},Object.defineProperty(t.prototype,"width",{get:function(){return this.canvas.width},set:function(t){this.canvas.width=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"height",{get:function(){return this.canvas.height},set:function(t){this.canvas.height=t},enumerable:!0,configurable:!0}),t}();var TL;function ML(t,e){var i=IE.RETINA_PREFIX.exec(t);return i?parseFloat(i[1]):void 0!==e?e:1}var SL,EL=function(){function t(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.x=t,this.y=e}return t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.copyFrom=function(t){return this.set(t.x,t.y),this},t.prototype.copyTo=function(t){return t.set(this.x,this.y),t},t.prototype.equals=function(t){return t.x===this.x&&t.y===this.y},t.prototype.set=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this.x=t,this.y=e,this},t}(),LL=function(){function t(t,e,i,n){void 0===i&&(i=0),void 0===n&&(n=0),this._x=i,this._y=n,this.cb=t,this.scope=e}return t.prototype.clone=function(e,i){return void 0===e&&(e=this.cb),void 0===i&&(i=this.scope),new t(e,i,this._x,this._y)},t.prototype.set=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this._x===t&&this._y===e||(this._x=t,this._y=e,this.cb.call(this.scope)),this},t.prototype.copyFrom=function(t){return this._x===t.x&&this._y===t.y||(this._x=t.x,this._y=t.y,this.cb.call(this.scope)),this},t.prototype.copyTo=function(t){return t.set(this._x,this._y),t},t.prototype.equals=function(t){return t.x===this._x&&t.y===this._y},Object.defineProperty(t.prototype,"x",{get:function(){return this._x},set:function(t){this._x!==t&&(this._x=t,this.cb.call(this.scope))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"y",{get:function(){return this._y},set:function(t){this._y!==t&&(this._y=t,this.cb.call(this.scope))},enumerable:!0,configurable:!0}),t}(),AL=2*Math.PI,DL=180/Math.PI,PL=Math.PI/180;!function(t){t[t.POLY=0]="POLY",t[t.RECT=1]="RECT",t[t.CIRC=2]="CIRC",t[t.ELIP=3]="ELIP",t[t.RREC=4]="RREC"}(SL||(SL={}));var CL=function(){function t(t,e,i,n,r,s){void 0===t&&(t=1),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=1),void 0===r&&(r=0),void 0===s&&(s=0),this.array=null,this.a=t,this.b=e,this.c=i,this.d=n,this.tx=r,this.ty=s}return t.prototype.fromArray=function(t){this.a=t[0],this.b=t[1],this.c=t[3],this.d=t[4],this.tx=t[2],this.ty=t[5]},t.prototype.set=function(t,e,i,n,r,s){return this.a=t,this.b=e,this.c=i,this.d=n,this.tx=r,this.ty=s,this},t.prototype.toArray=function(t,e){this.array||(this.array=new Float32Array(9));var i=e||this.array;return t?(i[0]=this.a,i[1]=this.b,i[2]=0,i[3]=this.c,i[4]=this.d,i[5]=0,i[6]=this.tx,i[7]=this.ty,i[8]=1):(i[0]=this.a,i[1]=this.c,i[2]=this.tx,i[3]=this.b,i[4]=this.d,i[5]=this.ty,i[6]=0,i[7]=0,i[8]=1),i},t.prototype.apply=function(t,e){e=e||new EL;var i=t.x,n=t.y;return e.x=this.a*i+this.c*n+this.tx,e.y=this.b*i+this.d*n+this.ty,e},t.prototype.applyInverse=function(t,e){e=e||new EL;var i=1/(this.a*this.d+this.c*-this.b),n=t.x,r=t.y;return e.x=this.d*i*n+-this.c*i*r+(this.ty*this.c-this.tx*this.d)*i,e.y=this.a*i*r+-this.b*i*n+(-this.ty*this.a+this.tx*this.b)*i,e},t.prototype.translate=function(t,e){return this.tx+=t,this.ty+=e,this},t.prototype.scale=function(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this},t.prototype.rotate=function(t){var e=Math.cos(t),i=Math.sin(t),n=this.a,r=this.c,s=this.tx;return this.a=n*e-this.b*i,this.b=n*i+this.b*e,this.c=r*e-this.d*i,this.d=r*i+this.d*e,this.tx=s*e-this.ty*i,this.ty=s*i+this.ty*e,this},t.prototype.append=function(t){var e=this.a,i=this.b,n=this.c,r=this.d;return this.a=t.a*e+t.b*n,this.b=t.a*i+t.b*r,this.c=t.c*e+t.d*n,this.d=t.c*i+t.d*r,this.tx=t.tx*e+t.ty*n+this.tx,this.ty=t.tx*i+t.ty*r+this.ty,this},t.prototype.setTransform=function(t,e,i,n,r,s,o,a,h){return this.a=Math.cos(o+h)*r,this.b=Math.sin(o+h)*r,this.c=-Math.sin(o-a)*s,this.d=Math.cos(o-a)*s,this.tx=t-(i*this.a+n*this.c),this.ty=e-(i*this.b+n*this.d),this},t.prototype.prepend=function(t){var e=this.tx;if(1!==t.a||0!==t.b||0!==t.c||1!==t.d){var i=this.a,n=this.c;this.a=i*t.a+this.b*t.c,this.b=i*t.b+this.b*t.d,this.c=n*t.a+this.d*t.c,this.d=n*t.b+this.d*t.d}return this.tx=e*t.a+this.ty*t.c+t.tx,this.ty=e*t.b+this.ty*t.d+t.ty,this},t.prototype.decompose=function(t){var e=this.a,i=this.b,n=this.c,r=this.d,s=-Math.atan2(-n,r),o=Math.atan2(i,e),a=Math.abs(s+o);return a<1e-5||Math.abs(AL-a)<1e-5?(t.rotation=o,t.skew.x=t.skew.y=0):(t.rotation=0,t.skew.x=s,t.skew.y=o),t.scale.x=Math.sqrt(e*e+i*i),t.scale.y=Math.sqrt(n*n+r*r),t.position.x=this.tx,t.position.y=this.ty,t},t.prototype.invert=function(){var t=this.a,e=this.b,i=this.c,n=this.d,r=this.tx,s=t*n-e*i;return this.a=n/s,this.b=-e/s,this.c=-i/s,this.d=t/s,this.tx=(i*this.ty-n*r)/s,this.ty=-(t*this.ty-e*r)/s,this},t.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this},t.prototype.clone=function(){var e=new t;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e},t.prototype.copyTo=function(t){return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t},t.prototype.copyFrom=function(t){return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.tx=t.tx,this.ty=t.ty,this},Object.defineProperty(t,"IDENTITY",{get:function(){return new t},enumerable:!0,configurable:!0}),Object.defineProperty(t,"TEMP_MATRIX",{get:function(){return new t},enumerable:!0,configurable:!0}),t}(),OL=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],kL=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],RL=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],IL=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],YL=[],FL=[],NL=Math.sign;!function(){for(var t=0;t<16;t++){var e=[];YL.push(e);for(var i=0;i<16;i++)for(var n=NL(OL[t]*OL[i]+RL[t]*kL[i]),r=NL(kL[t]*OL[i]+IL[t]*kL[i]),s=NL(OL[t]*RL[i]+RL[t]*IL[i]),o=NL(kL[t]*RL[i]+IL[t]*IL[i]),a=0;a<16;a++)if(OL[a]===n&&kL[a]===r&&RL[a]===s&&IL[a]===o){e.push(a);break}}for(t=0;t<16;t++){var h=new CL;h.set(OL[t],kL[t],RL[t],IL[t],0,0),FL.push(h)}}();var BL={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:function(t){return OL[t]},uY:function(t){return kL[t]},vX:function(t){return RL[t]},vY:function(t){return IL[t]},inv:function(t){return 8&t?15&t:7&-t},add:function(t,e){return YL[t][e]},sub:function(t,e){return YL[t][BL.inv(e)]},rotate180:function(t){return 4^t},isVertical:function(t){return 2==(3&t)},byDirection:function(t,e){return 2*Math.abs(t)<=Math.abs(e)?e>=0?BL.S:BL.N:2*Math.abs(e)<=Math.abs(t)?t>0?BL.E:BL.W:e>0?t>0?BL.SE:BL.SW:t>0?BL.NE:BL.NW},matrixAppendRotationInv:function(t,e,i,n){void 0===i&&(i=0),void 0===n&&(n=0);var r=FL[BL.inv(e)];r.tx=i,r.ty=n,t.append(r)}},UL=function(){function t(){this.worldTransform=new CL,this.localTransform=new CL,this.position=new LL(this.onChange,this,0,0),this.scale=new LL(this.onChange,this,1,1),this.pivot=new LL(this.onChange,this,0,0),this.skew=new LL(this.updateSkew,this,0,0),this._rotation=0,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._localID=0,this._currentLocalID=0,this._worldID=0,this._parentID=0}return t.prototype.onChange=function(){this._localID++},t.prototype.updateSkew=function(){this._cx=Math.cos(this._rotation+this.skew.y),this._sx=Math.sin(this._rotation+this.skew.y),this._cy=-Math.sin(this._rotation-this.skew.x),this._sy=Math.cos(this._rotation-this.skew.x),this._localID++},t.prototype.updateLocalTransform=function(){var t=this.localTransform;this._localID!==this._currentLocalID&&(t.a=this._cx*this.scale.x,t.b=this._sx*this.scale.x,t.c=this._cy*this.scale.y,t.d=this._sy*this.scale.y,t.tx=this.position.x-(this.pivot.x*t.a+this.pivot.y*t.c),t.ty=this.position.y-(this.pivot.x*t.b+this.pivot.y*t.d),this._currentLocalID=this._localID,this._parentID=-1)},t.prototype.updateTransform=function(t){var e=this.localTransform;if(this._localID!==this._currentLocalID&&(e.a=this._cx*this.scale.x,e.b=this._sx*this.scale.x,e.c=this._cy*this.scale.y,e.d=this._sy*this.scale.y,e.tx=this.position.x-(this.pivot.x*e.a+this.pivot.y*e.c),e.ty=this.position.y-(this.pivot.x*e.b+this.pivot.y*e.d),this._currentLocalID=this._localID,this._parentID=-1),this._parentID!==t._worldID){var i=t.worldTransform,n=this.worldTransform;n.a=e.a*i.a+e.b*i.c,n.b=e.a*i.b+e.b*i.d,n.c=e.c*i.a+e.d*i.c,n.d=e.c*i.b+e.d*i.d,n.tx=e.tx*i.a+e.ty*i.c+i.tx,n.ty=e.tx*i.b+e.ty*i.d+i.ty,this._parentID=t._worldID,this._worldID++}},t.prototype.setFromMatrix=function(t){t.decompose(this),this._localID++},Object.defineProperty(t.prototype,"rotation",{get:function(){return this._rotation},set:function(t){this._rotation!==t&&(this._rotation=t,this.updateSkew())},enumerable:!0,configurable:!0}),t.IDENTITY=new t,t}(),jL=function(){function t(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),this.x=Number(t),this.y=Number(e),this.width=Number(i),this.height=Number(n),this.type=SL.RECT}return Object.defineProperty(t.prototype,"left",{get:function(){return this.x},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"right",{get:function(){return this.x+this.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"top",{get:function(){return this.y},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bottom",{get:function(){return this.y+this.height},enumerable:!0,configurable:!0}),Object.defineProperty(t,"EMPTY",{get:function(){return new t(0,0,0,0)},enumerable:!0,configurable:!0}),t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copyFrom=function(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this},t.prototype.copyTo=function(t){return t.x=this.x,t.y=this.y,t.width=this.width,t.height=this.height,t},t.prototype.contains=function(t,e){return!(this.width<=0||this.height<=0)&&(t>=this.x&&t<this.x+this.width&&e>=this.y&&e<this.y+this.height)},t.prototype.pad=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this.x-=t,this.y-=e,this.width+=2*t,this.height+=2*e,this},t.prototype.fit=function(t){var e=Math.max(this.x,t.x),i=Math.min(this.x+this.width,t.x+t.width),n=Math.max(this.y,t.y),r=Math.min(this.y+this.height,t.y+t.height);return this.x=e,this.width=Math.max(i-e,0),this.y=n,this.height=Math.max(r-n,0),this},t.prototype.ceil=function(t,e){void 0===t&&(t=1),void 0===e&&(e=.001);var i=Math.ceil((this.x+this.width-e)*t)/t,n=Math.ceil((this.y+this.height-e)*t)/t;return this.x=Math.floor((this.x+e)*t)/t,this.y=Math.floor((this.y+e)*t)/t,this.width=i-this.x,this.height=n-this.y,this},t.prototype.enlarge=function(t){var e=Math.min(this.x,t.x),i=Math.max(this.x+this.width,t.x+t.width),n=Math.min(this.y,t.y),r=Math.max(this.y+this.height,t.y+t.height);return this.x=e,this.width=i-e,this.y=n,this.height=r-n,this},t}(),HL=function(){function t(t,e,i){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),this.x=t,this.y=e,this.radius=i,this.type=SL.CIRC}return t.prototype.clone=function(){return new t(this.x,this.y,this.radius)},t.prototype.contains=function(t,e){if(this.radius<=0)return!1;var i=this.radius*this.radius,n=this.x-t,r=this.y-e;return(n*=n)+(r*=r)<=i},t.prototype.getBounds=function(){return new jL(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)},t}(),zL=function(){function t(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),this.x=t,this.y=e,this.width=i,this.height=n,this.type=SL.ELIP}return t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.contains=function(t,e){if(this.width<=0||this.height<=0)return!1;var i=(t-this.x)/this.width,n=(e-this.y)/this.height;return(i*=i)+(n*=n)<=1},t.prototype.getBounds=function(){return new jL(this.x-this.width,this.y-this.height,this.width,this.height)},t}(),WL=function(){function t(){for(var t=arguments,e=[],i=0;i<arguments.length;i++)e[i]=t[i];if(Array.isArray(e[0])&&(e=e[0]),e[0]instanceof EL){for(var n=[],r=0,s=(e=e).length;r<s;r++)n.push(e[r].x,e[r].y);e=n}this.points=e,this.type=SL.POLY,this.closeStroke=!0}return t.prototype.clone=function(){var e=new t(this.points.slice());return e.closeStroke=this.closeStroke,e},t.prototype.contains=function(t,e){for(var i=!1,n=this.points.length/2,r=0,s=n-1;r<n;s=r++){var o=this.points[2*r],a=this.points[2*r+1],h=this.points[2*s],u=this.points[2*s+1];a>e!=u>e&&t<(e-a)/(u-a)*(h-o)+o&&(i=!i)}return i},t}(),GL=function(){function t(t,e,i,n,r){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),void 0===r&&(r=20),this.x=t,this.y=e,this.width=i,this.height=n,this.radius=r,this.type=SL.RREC}return t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height,this.radius)},t.prototype.contains=function(t,e){if(this.width<=0||this.height<=0)return!1;if(t>=this.x&&t<=this.x+this.width&&e>=this.y&&e<=this.y+this.height){if(e>=this.y+this.radius&&e<=this.y+this.height-this.radius||t>=this.x+this.radius&&t<=this.x+this.width-this.radius)return!0;var i=t-(this.x+this.radius),n=e-(this.y+this.radius),r=this.radius*this.radius;if(i*i+n*n<=r)return!0;if((i=t-(this.x+this.width-this.radius))*i+n*n<=r)return!0;if(i*i+(n=e-(this.y+this.height-this.radius))*n<=r)return!0;if((i=t-(this.x+this.radius))*i+n*n<=r)return!0}return!1},t}();IE.SORTABLE_CHILDREN=!1;var VL=function(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.rect=null};VL.prototype.isEmpty=function(){return this.minX>this.maxX||this.minY>this.maxY},VL.prototype.clear=function(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0},VL.prototype.getRectangle=function(t){return this.minX>this.maxX||this.minY>this.maxY?jL.EMPTY:((t=t||new jL(0,0,1,1)).x=this.minX,t.y=this.minY,t.width=this.maxX-this.minX,t.height=this.maxY-this.minY,t)},VL.prototype.addPoint=function(t){this.minX=Math.min(this.minX,t.x),this.maxX=Math.max(this.maxX,t.x),this.minY=Math.min(this.minY,t.y),this.maxY=Math.max(this.maxY,t.y)},VL.prototype.addQuad=function(t){var e=this.minX,i=this.minY,n=this.maxX,r=this.maxY,s=t[0],o=t[1];e=s<e?s:e,i=o<i?o:i,n=s>n?s:n,r=o>r?o:r,e=(s=t[2])<e?s:e,i=(o=t[3])<i?o:i,n=s>n?s:n,r=o>r?o:r,e=(s=t[4])<e?s:e,i=(o=t[5])<i?o:i,n=s>n?s:n,r=o>r?o:r,e=(s=t[6])<e?s:e,i=(o=t[7])<i?o:i,n=s>n?s:n,r=o>r?o:r,this.minX=e,this.minY=i,this.maxX=n,this.maxY=r},VL.prototype.addFrame=function(t,e,i,n,r){this.addFrameMatrix(t.worldTransform,e,i,n,r)},VL.prototype.addFrameMatrix=function(t,e,i,n,r){var s=t.a,o=t.b,a=t.c,h=t.d,u=t.tx,l=t.ty,c=this.minX,d=this.minY,p=this.maxX,f=this.maxY,m=s*e+a*i+u,v=o*e+h*i+l;c=m<c?m:c,d=v<d?v:d,p=m>p?m:p,f=v>f?v:f,c=(m=s*n+a*i+u)<c?m:c,d=(v=o*n+h*i+l)<d?v:d,p=m>p?m:p,f=v>f?v:f,c=(m=s*e+a*r+u)<c?m:c,d=(v=o*e+h*r+l)<d?v:d,p=m>p?m:p,f=v>f?v:f,c=(m=s*n+a*r+u)<c?m:c,d=(v=o*n+h*r+l)<d?v:d,p=m>p?m:p,f=v>f?v:f,this.minX=c,this.minY=d,this.maxX=p,this.maxY=f},VL.prototype.addVertexData=function(t,e,i){for(var n=this.minX,r=this.minY,s=this.maxX,o=this.maxY,a=e;a<i;a+=2){var h=t[a],u=t[a+1];n=h<n?h:n,r=u<r?u:r,s=h>s?h:s,o=u>o?u:o}this.minX=n,this.minY=r,this.maxX=s,this.maxY=o},VL.prototype.addVertices=function(t,e,i,n){this.addVerticesMatrix(t.worldTransform,e,i,n)},VL.prototype.addVerticesMatrix=function(t,e,i,n,r,s){var o=t.a,a=t.b,h=t.c,u=t.d,l=t.tx,c=t.ty;r=r||0,s=s||0;for(var d=this.minX,p=this.minY,f=this.maxX,m=this.maxY,v=i;v<n;v+=2){var g=e[v],y=e[v+1],_=o*g+h*y+l,x=u*y+a*g+c;d=Math.min(d,_-r),f=Math.max(f,_+r),p=Math.min(p,x-s),m=Math.max(m,x+s)}this.minX=d,this.minY=p,this.maxX=f,this.maxY=m},VL.prototype.addBounds=function(t){var e=this.minX,i=this.minY,n=this.maxX,r=this.maxY;this.minX=t.minX<e?t.minX:e,this.minY=t.minY<i?t.minY:i,this.maxX=t.maxX>n?t.maxX:n,this.maxY=t.maxY>r?t.maxY:r},VL.prototype.addBoundsMask=function(t,e){var i=t.minX>e.minX?t.minX:e.minX,n=t.minY>e.minY?t.minY:e.minY,r=t.maxX<e.maxX?t.maxX:e.maxX,s=t.maxY<e.maxY?t.maxY:e.maxY;if(i<=r&&n<=s){var o=this.minX,a=this.minY,h=this.maxX,u=this.maxY;this.minX=i<o?i:o,this.minY=n<a?n:a,this.maxX=r>h?r:h,this.maxY=s>u?s:u}},VL.prototype.addBoundsMatrix=function(t,e){this.addFrameMatrix(e,t.minX,t.minY,t.maxX,t.maxY)},VL.prototype.addBoundsArea=function(t,e){var i=t.minX>e.x?t.minX:e.x,n=t.minY>e.y?t.minY:e.y,r=t.maxX<e.x+e.width?t.maxX:e.x+e.width,s=t.maxY<e.y+e.height?t.maxY:e.y+e.height;if(i<=r&&n<=s){var o=this.minX,a=this.minY,h=this.maxX,u=this.maxY;this.minX=i<o?i:o,this.minY=n<a?n:a,this.maxX=r>h?r:h,this.maxY=s>u?s:u}},VL.prototype.pad=function(t,e){t=t||0,e=e||(0!==e?t:0),this.isEmpty()||(this.minX-=t,this.maxX+=t,this.minY-=e,this.maxY+=e)},VL.prototype.addFramePad=function(t,e,i,n,r,s){t-=r,e-=s,i+=r,n+=s,this.minX=this.minX<t?this.minX:t,this.maxX=this.maxX>i?this.maxX:i,this.minY=this.minY<e?this.minY:e,this.maxY=this.maxY>n?this.maxY:n};var XL=function(t){function e(){t.call(this),this.tempDisplayObjectParent=null,this.transform=new UL,this.alpha=1,this.visible=!0,this.renderable=!0,this.parent=null,this.worldAlpha=1,this._lastSortedIndex=0,this._zIndex=0,this.filterArea=null,this.filters=null,this._enabledFilters=null,this._bounds=new VL,this._boundsID=0,this._lastBoundsID=-1,this._boundsRect=null,this._localBoundsRect=null,this._mask=null,this._destroyed=!1,this.isSprite=!1,this.isMask=!1}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={_tempDisplayObjectParent:{configurable:!0},x:{configurable:!0},y:{configurable:!0},worldTransform:{configurable:!0},localTransform:{configurable:!0},position:{configurable:!0},scale:{configurable:!0},pivot:{configurable:!0},skew:{configurable:!0},rotation:{configurable:!0},angle:{configurable:!0},zIndex:{configurable:!0},worldVisible:{configurable:!0},mask:{configurable:!0}};return e.mixin=function(t){for(var i=Object.keys(t),n=0;n<i.length;++n){var r=i[n];Object.defineProperty(e.prototype,r,Object.getOwnPropertyDescriptor(t,r))}},i._tempDisplayObjectParent.get=function(){return null===this.tempDisplayObjectParent&&(this.tempDisplayObjectParent=new e),this.tempDisplayObjectParent},e.prototype.updateTransform=function(){this._boundsID++,this.transform.updateTransform(this.parent.transform),this.worldAlpha=this.alpha*this.parent.worldAlpha},e.prototype.calculateBounds=function(){},e.prototype._recursivePostUpdateTransform=function(){this.parent?(this.parent._recursivePostUpdateTransform(),this.transform.updateTransform(this.parent.transform)):this.transform.updateTransform(this._tempDisplayObjectParent.transform)},e.prototype.getBounds=function(t,e){return t||(this.parent?(this._recursivePostUpdateTransform(),this.updateTransform()):(this.parent=this._tempDisplayObjectParent,this.updateTransform(),this.parent=null)),this._boundsID!==this._lastBoundsID&&(this.calculateBounds(),this._lastBoundsID=this._boundsID),e||(this._boundsRect||(this._boundsRect=new jL),e=this._boundsRect),this._bounds.getRectangle(e)},e.prototype.getLocalBounds=function(t){var e=this.transform,i=this.parent;this.parent=null,this.transform=this._tempDisplayObjectParent.transform,t||(this._localBoundsRect||(this._localBoundsRect=new jL),t=this._localBoundsRect);var n=this.getBounds(!1,t);return this.parent=i,this.transform=e,n},e.prototype.toGlobal=function(t,e,i){return void 0===i&&(i=!1),i||(this._recursivePostUpdateTransform(),this.parent?this.displayObjectUpdateTransform():(this.parent=this._tempDisplayObjectParent,this.displayObjectUpdateTransform(),this.parent=null)),this.worldTransform.apply(t,e)},e.prototype.toLocal=function(t,e,i,n){return e&&(t=e.toGlobal(t,i,n)),n||(this._recursivePostUpdateTransform(),this.parent?this.displayObjectUpdateTransform():(this.parent=this._tempDisplayObjectParent,this.displayObjectUpdateTransform(),this.parent=null)),this.worldTransform.applyInverse(t,i)},e.prototype.render=function(t){},e.prototype.setParent=function(t){if(!t||!t.addChild)throw new Error("setParent: Argument must be a Container");return t.addChild(this),t},e.prototype.setTransform=function(t,e,i,n,r,s,o,a,h){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=1),void 0===n&&(n=1),void 0===r&&(r=0),void 0===s&&(s=0),void 0===o&&(o=0),void 0===a&&(a=0),void 0===h&&(h=0),this.position.x=t,this.position.y=e,this.scale.x=i||1,this.scale.y=n||1,this.rotation=r,this.skew.x=s,this.skew.y=o,this.pivot.x=a,this.pivot.y=h,this},e.prototype.destroy=function(){this.parent&&this.parent.removeChild(this),this.removeAllListeners(),this.transform=null,this.parent=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.filters=null,this.filterArea=null,this.hitArea=null,this.interactive=!1,this.interactiveChildren=!1,this._destroyed=!0},i.x.get=function(){return this.position.x},i.x.set=function(t){this.transform.position.x=t},i.y.get=function(){return this.position.y},i.y.set=function(t){this.transform.position.y=t},i.worldTransform.get=function(){return this.transform.worldTransform},i.localTransform.get=function(){return this.transform.localTransform},i.position.get=function(){return this.transform.position},i.position.set=function(t){this.transform.position.copyFrom(t)},i.scale.get=function(){return this.transform.scale},i.scale.set=function(t){this.transform.scale.copyFrom(t)},i.pivot.get=function(){return this.transform.pivot},i.pivot.set=function(t){this.transform.pivot.copyFrom(t)},i.skew.get=function(){return this.transform.skew},i.skew.set=function(t){this.transform.skew.copyFrom(t)},i.rotation.get=function(){return this.transform.rotation},i.rotation.set=function(t){this.transform.rotation=t},i.angle.get=function(){return this.transform.rotation*DL},i.angle.set=function(t){this.transform.rotation=t*PL},i.zIndex.get=function(){return this._zIndex},i.zIndex.set=function(t){this._zIndex=t,this.parent&&(this.parent.sortDirty=!0)},i.worldVisible.get=function(){var t=this;do{if(!t.visible)return!1;t=t.parent}while(t);return!0},i.mask.get=function(){return this._mask},i.mask.set=function(t){if(this._mask){var e=this._mask.maskObject||this._mask;e.renderable=!0,e.isMask=!1}if(this._mask=t,this._mask){var i=this._mask.maskObject||this._mask;i.renderable=!1,i.isMask=!0}},Object.defineProperties(e.prototype,i),e}(FE());function qL(t,e){return t.zIndex===e.zIndex?t._lastSortedIndex-e._lastSortedIndex:t.zIndex-e.zIndex}XL.prototype.displayObjectUpdateTransform=XL.prototype.updateTransform;var JL=function(t){function e(){t.call(this),this.children=[],this.sortableChildren=IE.SORTABLE_CHILDREN,this.sortDirty=!1}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={width:{configurable:!0},height:{configurable:!0}};return e.prototype.onChildrenChange=function(){},e.prototype.addChild=function(t){var e=arguments,i=arguments.length;if(i>1)for(var n=0;n<i;n++)this.addChild(e[n]);else t.parent&&t.parent.removeChild(t),t.parent=this,this.sortDirty=!0,t.transform._parentID=-1,this.children.push(t),this._boundsID++,this.onChildrenChange(this.children.length-1),this.emit("childAdded",t,this,this.children.length-1),t.emit("added",this);return t},e.prototype.addChildAt=function(t,e){if(e<0||e>this.children.length)throw new Error(t+"addChildAt: The index "+e+" supplied is out of bounds "+this.children.length);return t.parent&&t.parent.removeChild(t),t.parent=this,this.sortDirty=!0,t.transform._parentID=-1,this.children.splice(e,0,t),this._boundsID++,this.onChildrenChange(e),t.emit("added",this),this.emit("childAdded",t,this,e),t},e.prototype.swapChildren=function(t,e){if(t!==e){var i=this.getChildIndex(t),n=this.getChildIndex(e);this.children[i]=e,this.children[n]=t,this.onChildrenChange(i<n?i:n)}},e.prototype.getChildIndex=function(t){var e=this.children.indexOf(t);if(-1===e)throw new Error("The supplied DisplayObject must be a child of the caller");return e},e.prototype.setChildIndex=function(t,e){if(e<0||e>=this.children.length)throw new Error("The index "+e+" supplied is out of bounds "+this.children.length);var i=this.getChildIndex(t);pL(this.children,i,1),this.children.splice(e,0,t),this.onChildrenChange(e)},e.prototype.getChildAt=function(t){if(t<0||t>=this.children.length)throw new Error("getChildAt: Index ("+t+") does not exist.");return this.children[t]},e.prototype.removeChild=function(t){var e=arguments,i=arguments.length;if(i>1)for(var n=0;n<i;n++)this.removeChild(e[n]);else{var r=this.children.indexOf(t);if(-1===r)return null;t.parent=null,t.transform._parentID=-1,pL(this.children,r,1),this._boundsID++,this.onChildrenChange(r),t.emit("removed",this),this.emit("childRemoved",t,this,r)}return t},e.prototype.removeChildAt=function(t){var e=this.getChildAt(t);return e.parent=null,e.transform._parentID=-1,pL(this.children,t,1),this._boundsID++,this.onChildrenChange(t),e.emit("removed",this),this.emit("childRemoved",e,this,t),e},e.prototype.removeChildren=function(t,e){void 0===t&&(t=0);var i,n=t,r="number"==typeof e?e:this.children.length,s=r-n;if(s>0&&s<=r){i=this.children.splice(n,s);for(var o=0;o<i.length;++o)i[o].parent=null,i[o].transform&&(i[o].transform._parentID=-1);this._boundsID++,this.onChildrenChange(t);for(var a=0;a<i.length;++a)i[a].emit("removed",this),this.emit("childRemoved",i[a],this,a);return i}if(0===s&&0===this.children.length)return[];throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},e.prototype.sortChildren=function(){for(var t=!1,e=0,i=this.children.length;e<i;++e){var n=this.children[e];n._lastSortedIndex=e,t||0===n.zIndex||(t=!0)}t&&this.children.length>1&&this.children.sort(qL),this.sortDirty=!1},e.prototype.updateTransform=function(){this.sortableChildren&&this.sortDirty&&this.sortChildren(),this._boundsID++,this.transform.updateTransform(this.parent.transform),this.worldAlpha=this.alpha*this.parent.worldAlpha;for(var t=0,e=this.children.length;t<e;++t){var i=this.children[t];i.visible&&i.updateTransform()}},e.prototype.calculateBounds=function(){this._bounds.clear(),this._calculateBounds();for(var t=0;t<this.children.length;t++){var e=this.children[t];if(e.visible&&e.renderable)if(e.calculateBounds(),e._mask){var i=e._mask.maskObject||e._mask;i.calculateBounds(),this._bounds.addBoundsMask(e._bounds,i._bounds)}else e.filterArea?this._bounds.addBoundsArea(e._bounds,e.filterArea):this._bounds.addBounds(e._bounds)}this._lastBoundsID=this._boundsID},e.prototype._calculateBounds=function(){},e.prototype.render=function(t){if(this.visible&&!(this.worldAlpha<=0)&&this.renderable)if(this._mask||this.filters&&this.filters.length)this.renderAdvanced(t);else{this._render(t);for(var e=0,i=this.children.length;e<i;++e)this.children[e].render(t)}},e.prototype.renderAdvanced=function(t){t.batch.flush();var e=this.filters,i=this._mask;if(e){this._enabledFilters||(this._enabledFilters=[]),this._enabledFilters.length=0;for(var n=0;n<e.length;n++)e[n].enabled&&this._enabledFilters.push(e[n]);this._enabledFilters.length&&t.filter.push(this,this._enabledFilters)}i&&t.mask.push(this,this._mask),this._render(t);for(var r=0,s=this.children.length;r<s;r++)this.children[r].render(t);t.batch.flush(),i&&t.mask.pop(this,this._mask),e&&this._enabledFilters&&this._enabledFilters.length&&t.filter.pop()},e.prototype._render=function(t){},e.prototype.destroy=function(e){t.prototype.destroy.call(this),this.sortDirty=!1;var i="boolean"==typeof e?e:e&&e.children,n=this.removeChildren(0,this.children.length);if(i)for(var r=0;r<n.length;++r)n[r].destroy(e)},i.width.get=function(){return this.scale.x*this.getLocalBounds().width},i.width.set=function(t){var e=this.getLocalBounds().width;this.scale.x=0!==e?t/e:1,this._width=t},i.height.get=function(){return this.scale.y*this.getLocalBounds().height},i.height.set=function(t){var e=this.getLocalBounds().height;this.scale.y=0!==e?t/e:1,this._height=t},Object.defineProperties(e.prototype,i),e}(XL);JL.prototype.containerUpdateTransform=JL.prototype.updateTransform;XL.mixin({accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,_accessibleActive:!1,_accessibleDiv:!1,accessibleType:"button",accessiblePointerEvents:"auto",accessibleChildren:!0});var ZL,KL=function(t){this._hookDiv=null,(RE.tablet||RE.phone)&&this.createTouchHook();var e=document.createElement("div");e.style.width="100px",e.style.height="100px",e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.zIndex=2,this.div=e,this.pool=[],this.renderId=0,this.debug=!1,this.renderer=t,this.children=[],this._onKeyDown=this._onKeyDown.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this.isActive=!1,this.isMobileAccessibility=!1,this.androidUpdateCount=0,this.androidUpdateFrequency=500,window.addEventListener("keydown",this._onKeyDown,!1)};KL.prototype.createTouchHook=function(){var t=this,e=document.createElement("button");e.style.width="1px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.left="-1000px",e.style.zIndex=2,e.style.backgroundColor="#FF0000",e.title="select to enable accessability for this content",e.addEventListener("focus",(function(){t.isMobileAccessibility=!0,t.activate(),t.destroyTouchHook()})),document.body.appendChild(e),this._hookDiv=e},KL.prototype.destroyTouchHook=function(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)},KL.prototype.activate=function(){this.isActive||(this.isActive=!0,window.document.addEventListener("mousemove",this._onMouseMove,!0),window.removeEventListener("keydown",this._onKeyDown,!1),this.renderer.on("postrender",this.update,this),this.renderer.view.parentNode&&this.renderer.view.parentNode.appendChild(this.div))},KL.prototype.deactivate=function(){this.isActive&&!this.isMobileAccessibility&&(this.isActive=!1,window.document.removeEventListener("mousemove",this._onMouseMove,!0),window.addEventListener("keydown",this._onKeyDown,!1),this.renderer.off("postrender",this.update),this.div.parentNode&&this.div.parentNode.removeChild(this.div))},KL.prototype.updateAccessibleObjects=function(t){if(t.visible&&t.accessibleChildren){t.accessible&&t.interactive&&(t._accessibleActive||this.addChild(t),t.renderId=this.renderId);for(var e=t.children,i=0;i<e.length;i++)this.updateAccessibleObjects(e[i])}},KL.prototype.update=function(){var t=performance.now();if(!(RE.android.device&&t<this.androidUpdateCount)&&(this.androidUpdateCount=t+this.androidUpdateFrequency,this.renderer.renderingToScreen)){this.updateAccessibleObjects(this.renderer._lastObjectRendered);var e=this.renderer.view.getBoundingClientRect(),i=this.renderer.resolution,n=e.width/this.renderer.width*i,r=e.height/this.renderer.height*i,s=this.div;s.style.left=e.left+"px",s.style.top=e.top+"px",s.style.width=this.renderer.width+"px",s.style.height=this.renderer.height+"px";for(var o=0;o<this.children.length;o++){var a=this.children[o];if(a.renderId!==this.renderId)a._accessibleActive=!1,pL(this.children,o,1),this.div.removeChild(a._accessibleDiv),this.pool.push(a._accessibleDiv),a._accessibleDiv=null,o--;else{s=a._accessibleDiv;var h=a.hitArea,u=a.worldTransform;a.hitArea?(s.style.left=(u.tx+h.x*u.a)*n+"px",s.style.top=(u.ty+h.y*u.d)*r+"px",s.style.width=h.width*u.a*n+"px",s.style.height=h.height*u.d*r+"px"):(h=a.getBounds(),this.capHitArea(h),s.style.left=h.x*n+"px",s.style.top=h.y*r+"px",s.style.width=h.width*n+"px",s.style.height=h.height*r+"px",s.title!==a.accessibleTitle&&null!==a.accessibleTitle&&(s.title=a.accessibleTitle),s.getAttribute("aria-label")!==a.accessibleHint&&null!==a.accessibleHint&&s.setAttribute("aria-label",a.accessibleHint)),a.accessibleTitle===s.title&&a.tabIndex===s.tabIndex||(s.title=a.accessibleTitle,s.tabIndex=a.tabIndex,this.debug&&this.updateDebugHTML(s))}}this.renderId++}},KL.prototype.updateDebugHTML=function(t){t.innerHTML="type: "+t.type+"</br> title : "+t.title+"</br> tabIndex: "+t.tabIndex},KL.prototype.capHitArea=function(t){t.x<0&&(t.width+=t.x,t.x=0),t.y<0&&(t.height+=t.y,t.y=0),t.x+t.width>this.renderer.width&&(t.width=this.renderer.width-t.x),t.y+t.height>this.renderer.height&&(t.height=this.renderer.height-t.y)},KL.prototype.addChild=function(t){var e=this.pool.pop();e||((e=document.createElement("button")).style.width="100px",e.style.height="100px",e.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",e.style.position="absolute",e.style.zIndex=2,e.style.borderStyle="none",navigator.userAgent.toLowerCase().indexOf("chrome")>-1?e.setAttribute("aria-live","off"):e.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?e.setAttribute("aria-relevant","additions"):e.setAttribute("aria-relevant","text"),e.addEventListener("click",this._onClick.bind(this)),e.addEventListener("focus",this._onFocus.bind(this)),e.addEventListener("focusout",this._onFocusOut.bind(this))),e.style.pointerEvents=t.accessiblePointerEvents,e.type=t.accessibleType,t.accessibleTitle&&null!==t.accessibleTitle?e.title=t.accessibleTitle:t.accessibleHint&&null!==t.accessibleHint||(e.title="displayObject "+t.tabIndex),t.accessibleHint&&null!==t.accessibleHint&&e.setAttribute("aria-label",t.accessibleHint),this.debug&&this.updateDebugHTML(e),t._accessibleActive=!0,t._accessibleDiv=e,e.displayObject=t,this.children.push(t),this.div.appendChild(t._accessibleDiv),t._accessibleDiv.tabIndex=t.tabIndex},KL.prototype._onClick=function(t){var e=this.renderer.plugins.interaction;e.dispatchEvent(t.target.displayObject,"click",e.eventData),e.dispatchEvent(t.target.displayObject,"pointertap",e.eventData),e.dispatchEvent(t.target.displayObject,"tap",e.eventData)},KL.prototype._onFocus=function(t){t.target.getAttribute("aria-live","off")||t.target.setAttribute("aria-live","assertive");var e=this.renderer.plugins.interaction;e.dispatchEvent(t.target.displayObject,"mouseover",e.eventData)},KL.prototype._onFocusOut=function(t){t.target.getAttribute("aria-live","off")||t.target.setAttribute("aria-live","polite");var e=this.renderer.plugins.interaction;e.dispatchEvent(t.target.displayObject,"mouseout",e.eventData)},KL.prototype._onKeyDown=function(t){9===t.keyCode&&this.activate()},KL.prototype._onMouseMove=function(t){0===t.movementX&&0===t.movementY||this.deactivate()},KL.prototype.destroy=function(){this.destroyTouchHook(),this.div=null;for(var t=0;t<this.children.length;t++)this.children[t].div=null;window.document.removeEventListener("mousemove",this._onMouseMove,!0),window.removeEventListener("keydown",this._onKeyDown),this.pool=null,this.children=null,this.renderer=null},IE.TARGET_FPMS=.06,function(t){t[t.INTERACTION=50]="INTERACTION",t[t.HIGH=25]="HIGH",t[t.NORMAL=0]="NORMAL",t[t.LOW=-25]="LOW",t[t.UTILITY=-50]="UTILITY"}(ZL||(ZL={}));var QL=function(){function t(t,e,i,n){void 0===e&&(e=null),void 0===i&&(i=0),void 0===n&&(n=!1),this.fn=t,this.context=e,this.priority=i,this.once=n,this.next=null,this.previous=null,this._destroyed=!1}return t.prototype.match=function(t,e){return void 0===e&&(e=null),this.fn===t&&this.context===e},t.prototype.emit=function(t){this.fn&&(this.context?this.fn.call(this.context,t):this.fn(t));var e=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),e},t.prototype.connect=function(t){this.previous=t,t.next&&(t.next.previous=this),this.next=t.next,t.next=this},t.prototype.destroy=function(t){void 0===t&&(t=!1),this._destroyed=!0,this.fn=null,this.context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);var e=this.next;return this.next=t?null:e,this.previous=null,e},t}(),$L=function(){function t(){var t=this;this._head=new QL(null,null,1/0),this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this.autoStart=!1,this.deltaTime=1,this.deltaMS=1/IE.TARGET_FPMS,this.elapsedMS=1/IE.TARGET_FPMS,this.lastTime=-1,this.speed=1,this.started=!1,this._protected=!1,this._lastFrame=-1,this._tick=function(e){t._requestId=null,t.started&&(t.update(e),t.started&&null===t._requestId&&t._head.next&&(t._requestId=requestAnimationFrame(t._tick)))}}return t.prototype._requestIfNeeded=function(){null===this._requestId&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))},t.prototype._cancelIfNeeded=function(){null!==this._requestId&&(cancelAnimationFrame(this._requestId),this._requestId=null)},t.prototype._startIfPossible=function(){this.started?this._requestIfNeeded():this.autoStart&&this.start()},t.prototype.add=function(t,e,i){return void 0===i&&(i=ZL.NORMAL),this._addListener(new QL(t,e,i))},t.prototype.addOnce=function(t,e,i){return void 0===i&&(i=ZL.NORMAL),this._addListener(new QL(t,e,i,!0))},t.prototype._addListener=function(t){var e=this._head.next,i=this._head;if(e){for(;e;){if(t.priority>e.priority){t.connect(i);break}i=e,e=e.next}t.previous||t.connect(i)}else t.connect(i);return this._startIfPossible(),this},t.prototype.remove=function(t,e){for(var i=this._head.next;i;)i=i.match(t,e)?i.destroy():i.next;return this._head.next||this._cancelIfNeeded(),this},Object.defineProperty(t.prototype,"count",{get:function(){if(!this._head)return 0;for(var t=0,e=this._head;e=e.next;)t++;return t},enumerable:!0,configurable:!0}),t.prototype.start=function(){this.started||(this.started=!0,this._requestIfNeeded())},t.prototype.stop=function(){this.started&&(this.started=!1,this._cancelIfNeeded())},t.prototype.destroy=function(){if(!this._protected){this.stop();for(var t=this._head.next;t;)t=t.destroy(!0);this._head.destroy(),this._head=null}},t.prototype.update=function(t){var e;if(void 0===t&&(t=performance.now()),t>this.lastTime){if((e=this.elapsedMS=t-this.lastTime)>this._maxElapsedMS&&(e=this._maxElapsedMS),e*=this.speed,this._minElapsedMS){var i=t-this._lastFrame|0;if(i<this._minElapsedMS)return;this._lastFrame=t-i%this._minElapsedMS}this.deltaMS=e,this.deltaTime=this.deltaMS*IE.TARGET_FPMS;for(var n=this._head,r=n.next;r;)r=r.emit(this.deltaTime);n.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=t},Object.defineProperty(t.prototype,"FPS",{get:function(){return 1e3/this.elapsedMS},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"minFPS",{get:function(){return 1e3/this._maxElapsedMS},set:function(t){var e=Math.min(this.maxFPS,t),i=Math.min(Math.max(0,e)/1e3,IE.TARGET_FPMS);this._maxElapsedMS=1/i},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"maxFPS",{get:function(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0},set:function(t){if(0===t)this._minElapsedMS=0;else{var e=Math.max(this.minFPS,t);this._minElapsedMS=1/(e/1e3)}},enumerable:!0,configurable:!0}),Object.defineProperty(t,"shared",{get:function(){if(!t._shared){var e=t._shared=new t;e.autoStart=!0,e._protected=!0}return t._shared},enumerable:!0,configurable:!0}),Object.defineProperty(t,"system",{get:function(){if(!t._system){var e=t._system=new t;e.autoStart=!0,e._protected=!0}return t._system},enumerable:!0,configurable:!0}),t}(),tA=function(){function t(){}return t.init=function(t){var e=this;t=Object.assign({autoStart:!0,sharedTicker:!1},t),Object.defineProperty(this,"ticker",{set:function(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,ZL.LOW)},get:function(){return this._ticker}}),this.stop=function(){e._ticker.stop()},this.start=function(){e._ticker.start()},this._ticker=null,this.ticker=t.sharedTicker?$L.shared:new $L,t.autoStart&&this.start()},t.destroy=function(){if(this._ticker){var t=this._ticker;this.ticker=null,t.destroy()}},t}(),eA=function(){this.global=new EL,this.target=null,this.originalEvent=null,this.identifier=null,this.isPrimary=!1,this.button=0,this.buttons=0,this.width=0,this.height=0,this.tiltX=0,this.tiltY=0,this.pointerType=null,this.pressure=0,this.rotationAngle=0,this.twist=0,this.tangentialPressure=0},iA={pointerId:{configurable:!0}};iA.pointerId.get=function(){return this.identifier},eA.prototype.getLocalPosition=function(t,e,i){return t.worldTransform.applyInverse(i||this.global,e)},eA.prototype.copyEvent=function(t){t.isPrimary&&(this.isPrimary=!0),this.button=t.button,this.buttons=Number.isInteger(t.buttons)?t.buttons:t.which,this.width=t.width,this.height=t.height,this.tiltX=t.tiltX,this.tiltY=t.tiltY,this.pointerType=t.pointerType,this.pressure=t.pressure,this.rotationAngle=t.rotationAngle,this.twist=t.twist||0,this.tangentialPressure=t.tangentialPressure||0},eA.prototype.reset=function(){this.isPrimary=!1},Object.defineProperties(eA.prototype,iA);var nA=function(){this.stopped=!1,this.stopsPropagatingAt=null,this.stopPropagationHint=!1,this.target=null,this.currentTarget=null,this.type=null,this.data=null};nA.prototype.stopPropagation=function(){this.stopped=!0,this.stopPropagationHint=!0,this.stopsPropagatingAt=this.currentTarget},nA.prototype.reset=function(){this.stopped=!1,this.stopsPropagatingAt=null,this.stopPropagationHint=!1,this.currentTarget=null,this.target=null};var rA=function t(e){this._pointerId=e,this._flags=t.FLAGS.NONE},sA={pointerId:{configurable:!0},flags:{configurable:!0},none:{configurable:!0},over:{configurable:!0},rightDown:{configurable:!0},leftDown:{configurable:!0}};rA.prototype._doSet=function(t,e){this._flags=e?this._flags|t:this._flags&~t},sA.pointerId.get=function(){return this._pointerId},sA.flags.get=function(){return this._flags},sA.flags.set=function(t){this._flags=t},sA.none.get=function(){return this._flags===this.constructor.FLAGS.NONE},sA.over.get=function(){return 0!=(this._flags&this.constructor.FLAGS.OVER)},sA.over.set=function(t){this._doSet(this.constructor.FLAGS.OVER,t)},sA.rightDown.get=function(){return 0!=(this._flags&this.constructor.FLAGS.RIGHT_DOWN)},sA.rightDown.set=function(t){this._doSet(this.constructor.FLAGS.RIGHT_DOWN,t)},sA.leftDown.get=function(){return 0!=(this._flags&this.constructor.FLAGS.LEFT_DOWN)},sA.leftDown.set=function(t){this._doSet(this.constructor.FLAGS.LEFT_DOWN,t)},Object.defineProperties(rA.prototype,sA),rA.FLAGS=Object.freeze({NONE:0,OVER:1,LEFT_DOWN:2,RIGHT_DOWN:4});var oA=function(){this._tempPoint=new EL};oA.prototype.recursiveFindHit=function(t,e,i,n,r){if(!e||!e.visible)return!1;var s=t.data.global,o=!1,a=r=e.interactive||r,h=!0;if(e.hitArea?(n&&(e.worldTransform.applyInverse(s,this._tempPoint),e.hitArea.contains(this._tempPoint.x,this._tempPoint.y)?o=!0:(n=!1,h=!1)),a=!1):e._mask&&n&&(e._mask.containsPoint&&e._mask.containsPoint(s)||(n=!1)),h&&e.interactiveChildren&&e.children)for(var u=e.children,l=u.length-1;l>=0;l--){var c=u[l],d=this.recursiveFindHit(t,c,i,n,a);if(d){if(!c.parent)continue;a=!1,d&&(t.target&&(n=!1),o=!0)}}return r&&(n&&!t.target&&!e.hitArea&&e.containsPoint&&e.containsPoint(s)&&(o=!0),e.interactive&&(o&&!t.target&&(t.target=e),i&&i(t,e,!!o))),o},oA.prototype.findHit=function(t,e,i,n){this.recursiveFindHit(t,e,i,n,!1)};var aA={interactive:!1,interactiveChildren:!0,hitArea:null,get buttonMode(){return"pointer"===this.cursor},set buttonMode(t){t?this.cursor="pointer":"pointer"===this.cursor&&(this.cursor=null)},cursor:null,get trackedPointers(){return void 0===this._trackedPointers&&(this._trackedPointers={}),this._trackedPointers},_trackedPointers:void 0};XL.mixin(aA);var hA={target:null,data:{global:null}},uA=function(t){function e(e,i){t.call(this),i=i||{},this.renderer=e,this.autoPreventDefault=void 0===i.autoPreventDefault||i.autoPreventDefault,this.interactionFrequency=i.interactionFrequency||10,this.mouse=new eA,this.mouse.identifier=1,this.mouse.global.set(-999999),this.activeInteractionData={},this.activeInteractionData[1]=this.mouse,this.interactionDataPool=[],this.eventData=new nA,this.interactionDOMElement=null,this.moveWhenInside=!1,this.eventsAdded=!1,this.tickerAdded=!1,this.mouseOverRenderer=!1,this.supportsTouchEvents="ontouchstart"in window,this.supportsPointerEvents=!!window.PointerEvent,this.onPointerUp=this.onPointerUp.bind(this),this.processPointerUp=this.processPointerUp.bind(this),this.onPointerCancel=this.onPointerCancel.bind(this),this.processPointerCancel=this.processPointerCancel.bind(this),this.onPointerDown=this.onPointerDown.bind(this),this.processPointerDown=this.processPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.processPointerMove=this.processPointerMove.bind(this),this.onPointerOut=this.onPointerOut.bind(this),this.processPointerOverOut=this.processPointerOverOut.bind(this),this.onPointerOver=this.onPointerOver.bind(this),this.cursorStyles={default:"inherit",pointer:"pointer"},this.currentCursorMode=null,this.cursor=null,this.resolution=1,this.delayedEvents=[],this.search=new oA,this._useSystemTicker=void 0===i.useSystemTicker||i.useSystemTicker,this.setTargetElement(this.renderer.view,this.renderer.resolution)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={useSystemTicker:{configurable:!0}};return i.useSystemTicker.get=function(){return this._useSystemTicker},i.useSystemTicker.set=function(t){this._useSystemTicker=t,t?this.addTickerListener():this.removeTickerListener()},e.prototype.hitTest=function(t,e){return hA.target=null,hA.data.global=t,e||(e=this.renderer._lastObjectRendered),this.processInteractive(hA,e,null,!0),hA.target},e.prototype.setTargetElement=function(t,e){void 0===e&&(e=1),this.removeTickerListener(),this.removeEvents(),this.interactionDOMElement=t,this.resolution=e,this.addEvents(),this.addTickerListener()},e.prototype.addTickerListener=function(){!this.tickerAdded&&this.interactionDOMElement&&this._useSystemTicker&&($L.system.add(this.tickerUpdate,this,ZL.INTERACTION),this.tickerAdded=!0)},e.prototype.removeTickerListener=function(){this.tickerAdded&&($L.system.remove(this.tickerUpdate,this),this.tickerAdded=!1)},e.prototype.addEvents=function(){!this.eventsAdded&&this.interactionDOMElement&&(window.navigator.msPointerEnabled?(this.interactionDOMElement.style["-ms-content-zooming"]="none",this.interactionDOMElement.style["-ms-touch-action"]="none"):this.supportsPointerEvents&&(this.interactionDOMElement.style["touch-action"]="none"),this.supportsPointerEvents?(window.document.addEventListener("pointermove",this.onPointerMove,!0),this.interactionDOMElement.addEventListener("pointerdown",this.onPointerDown,!0),this.interactionDOMElement.addEventListener("pointerleave",this.onPointerOut,!0),this.interactionDOMElement.addEventListener("pointerover",this.onPointerOver,!0),window.addEventListener("pointercancel",this.onPointerCancel,!0),window.addEventListener("pointerup",this.onPointerUp,!0)):(window.document.addEventListener("mousemove",this.onPointerMove,!0),this.interactionDOMElement.addEventListener("mousedown",this.onPointerDown,!0),this.interactionDOMElement.addEventListener("mouseout",this.onPointerOut,!0),this.interactionDOMElement.addEventListener("mouseover",this.onPointerOver,!0),window.addEventListener("mouseup",this.onPointerUp,!0)),this.supportsTouchEvents&&(this.interactionDOMElement.addEventListener("touchstart",this.onPointerDown,!0),this.interactionDOMElement.addEventListener("touchcancel",this.onPointerCancel,!0),this.interactionDOMElement.addEventListener("touchend",this.onPointerUp,!0),this.interactionDOMElement.addEventListener("touchmove",this.onPointerMove,!0)),this.eventsAdded=!0)},e.prototype.removeEvents=function(){this.eventsAdded&&this.interactionDOMElement&&(window.navigator.msPointerEnabled?(this.interactionDOMElement.style["-ms-content-zooming"]="",this.interactionDOMElement.style["-ms-touch-action"]=""):this.supportsPointerEvents&&(this.interactionDOMElement.style["touch-action"]=""),this.supportsPointerEvents?(window.document.removeEventListener("pointermove",this.onPointerMove,!0),this.interactionDOMElement.removeEventListener("pointerdown",this.onPointerDown,!0),this.interactionDOMElement.removeEventListener("pointerleave",this.onPointerOut,!0),this.interactionDOMElement.removeEventListener("pointerover",this.onPointerOver,!0),window.removeEventListener("pointercancel",this.onPointerCancel,!0),window.removeEventListener("pointerup",this.onPointerUp,!0)):(window.document.removeEventListener("mousemove",this.onPointerMove,!0),this.interactionDOMElement.removeEventListener("mousedown",this.onPointerDown,!0),this.interactionDOMElement.removeEventListener("mouseout",this.onPointerOut,!0),this.interactionDOMElement.removeEventListener("mouseover",this.onPointerOver,!0),window.removeEventListener("mouseup",this.onPointerUp,!0)),this.supportsTouchEvents&&(this.interactionDOMElement.removeEventListener("touchstart",this.onPointerDown,!0),this.interactionDOMElement.removeEventListener("touchcancel",this.onPointerCancel,!0),this.interactionDOMElement.removeEventListener("touchend",this.onPointerUp,!0),this.interactionDOMElement.removeEventListener("touchmove",this.onPointerMove,!0)),this.interactionDOMElement=null,this.eventsAdded=!1)},e.prototype.tickerUpdate=function(t){this._deltaTime+=t,this._deltaTime<this.interactionFrequency||(this._deltaTime=0,this.update())},e.prototype.update=function(){if(this.interactionDOMElement)if(this.didMove)this.didMove=!1;else{for(var t in this.cursor=null,this.activeInteractionData)if(this.activeInteractionData.hasOwnProperty(t)){var e=this.activeInteractionData[t];if(e.originalEvent&&"touch"!==e.pointerType){var i=this.configureInteractionEventForDOMEvent(this.eventData,e.originalEvent,e);this.processInteractive(i,this.renderer._lastObjectRendered,this.processPointerOverOut,!0)}}this.setCursorMode(this.cursor)}},e.prototype.setCursorMode=function(t){if(t=t||"default",this.currentCursorMode!==t){this.currentCursorMode=t;var e=this.cursorStyles[t];if(e)switch(typeof e){case"string":this.interactionDOMElement.style.cursor=e;break;case"function":e(t);break;case"object":Object.assign(this.interactionDOMElement.style,e)}else"string"!=typeof t||Object.prototype.hasOwnProperty.call(this.cursorStyles,t)||(this.interactionDOMElement.style.cursor=t)}},e.prototype.dispatchEvent=function(t,e,i){i.stopPropagationHint&&t!==i.stopsPropagatingAt||(i.currentTarget=t,i.type=e,t.emit(e,i),t[e]&&t[e](i))},e.prototype.delayDispatchEvent=function(t,e,i){this.delayedEvents.push({displayObject:t,eventString:e,eventData:i})},e.prototype.mapPositionToPoint=function(t,e,i){var n;n=this.interactionDOMElement.parentElement?this.interactionDOMElement.getBoundingClientRect():{x:0,y:0,width:0,height:0};var r=1/this.resolution;t.x=(e-n.left)*(this.interactionDOMElement.width/n.width)*r,t.y=(i-n.top)*(this.interactionDOMElement.height/n.height)*r},e.prototype.processInteractive=function(t,e,i,n){var r=this.search.findHit(t,e,i,n),s=this.delayedEvents;if(!s.length)return r;t.stopPropagationHint=!1;var o=s.length;this.delayedEvents=[];for(var a=0;a<o;a++){var h=s[a],u=h.displayObject,l=h.eventString,c=h.eventData;c.stopsPropagatingAt===u&&(c.stopPropagationHint=!0),this.dispatchEvent(u,l,c)}return r},e.prototype.onPointerDown=function(t){if(!this.supportsTouchEvents||"touch"!==t.pointerType){var e=this.normalizeToPointerData(t);if(this.autoPreventDefault&&e[0].isNormalized)(t.cancelable||!("cancelable"in t))&&t.preventDefault();for(var i=e.length,n=0;n<i;n++){var r=e[n],s=this.getInteractionDataForPointerId(r),o=this.configureInteractionEventForDOMEvent(this.eventData,r,s);if(o.data.originalEvent=t,this.processInteractive(o,this.renderer._lastObjectRendered,this.processPointerDown,!0),this.emit("pointerdown",o),"touch"===r.pointerType)this.emit("touchstart",o);else if("mouse"===r.pointerType||"pen"===r.pointerType){var a=2===r.button;this.emit(a?"rightdown":"mousedown",this.eventData)}}}},e.prototype.processPointerDown=function(t,e,i){var n=t.data,r=t.data.identifier;if(i)if(e.trackedPointers[r]||(e.trackedPointers[r]=new rA(r)),this.dispatchEvent(e,"pointerdown",t),"touch"===n.pointerType)this.dispatchEvent(e,"touchstart",t);else if("mouse"===n.pointerType||"pen"===n.pointerType){var s=2===n.button;s?e.trackedPointers[r].rightDown=!0:e.trackedPointers[r].leftDown=!0,this.dispatchEvent(e,s?"rightdown":"mousedown",t)}},e.prototype.onPointerComplete=function(t,e,i){for(var n=this.normalizeToPointerData(t),r=n.length,s=t.target!==this.interactionDOMElement?"outside":"",o=0;o<r;o++){var a=n[o],h=this.getInteractionDataForPointerId(a),u=this.configureInteractionEventForDOMEvent(this.eventData,a,h);if(u.data.originalEvent=t,this.processInteractive(u,this.renderer._lastObjectRendered,i,e||!s),this.emit(e?"pointercancel":"pointerup"+s,u),"mouse"===a.pointerType||"pen"===a.pointerType){var l=2===a.button;this.emit(l?"rightup"+s:"mouseup"+s,u)}else"touch"===a.pointerType&&(this.emit(e?"touchcancel":"touchend"+s,u),this.releaseInteractionDataForPointerId(a.pointerId,h))}},e.prototype.onPointerCancel=function(t){this.supportsTouchEvents&&"touch"===t.pointerType||this.onPointerComplete(t,!0,this.processPointerCancel)},e.prototype.processPointerCancel=function(t,e){var i=t.data,n=t.data.identifier;void 0!==e.trackedPointers[n]&&(delete e.trackedPointers[n],this.dispatchEvent(e,"pointercancel",t),"touch"===i.pointerType&&this.dispatchEvent(e,"touchcancel",t))},e.prototype.onPointerUp=function(t){this.supportsTouchEvents&&"touch"===t.pointerType||this.onPointerComplete(t,!1,this.processPointerUp)},e.prototype.processPointerUp=function(t,e,i){var n=t.data,r=t.data.identifier,s=e.trackedPointers[r],o="touch"===n.pointerType,a="mouse"===n.pointerType||"pen"===n.pointerType,h=!1;if(a){var u=2===n.button,l=rA.FLAGS,c=u?l.RIGHT_DOWN:l.LEFT_DOWN,d=void 0!==s&&s.flags&c;i?(this.dispatchEvent(e,u?"rightup":"mouseup",t),d&&(this.dispatchEvent(e,u?"rightclick":"click",t),h=!0)):d&&this.dispatchEvent(e,u?"rightupoutside":"mouseupoutside",t),s&&(u?s.rightDown=!1:s.leftDown=!1)}i?(this.dispatchEvent(e,"pointerup",t),o&&this.dispatchEvent(e,"touchend",t),s&&(a&&!h||this.dispatchEvent(e,"pointertap",t),o&&(this.dispatchEvent(e,"tap",t),s.over=!1))):s&&(this.dispatchEvent(e,"pointerupoutside",t),o&&this.dispatchEvent(e,"touchendoutside",t)),s&&s.none&&delete e.trackedPointers[r]},e.prototype.onPointerMove=function(t){if(!this.supportsTouchEvents||"touch"!==t.pointerType){var e=this.normalizeToPointerData(t);"mouse"!==e[0].pointerType&&"pen"!==e[0].pointerType||(this.didMove=!0,this.cursor=null);for(var i=e.length,n=0;n<i;n++){var r=e[n],s=this.getInteractionDataForPointerId(r),o=this.configureInteractionEventForDOMEvent(this.eventData,r,s);o.data.originalEvent=t,this.processInteractive(o,this.renderer._lastObjectRendered,this.processPointerMove,!0),this.emit("pointermove",o),"touch"===r.pointerType&&this.emit("touchmove",o),"mouse"!==r.pointerType&&"pen"!==r.pointerType||this.emit("mousemove",o)}"mouse"===e[0].pointerType&&this.setCursorMode(this.cursor)}},e.prototype.processPointerMove=function(t,e,i){var n=t.data,r="touch"===n.pointerType,s="mouse"===n.pointerType||"pen"===n.pointerType;s&&this.processPointerOverOut(t,e,i),this.moveWhenInside&&!i||(this.dispatchEvent(e,"pointermove",t),r&&this.dispatchEvent(e,"touchmove",t),s&&this.dispatchEvent(e,"mousemove",t))},e.prototype.onPointerOut=function(t){if(!this.supportsTouchEvents||"touch"!==t.pointerType){var e=this.normalizeToPointerData(t)[0];"mouse"===e.pointerType&&(this.mouseOverRenderer=!1,this.setCursorMode(null));var i=this.getInteractionDataForPointerId(e),n=this.configureInteractionEventForDOMEvent(this.eventData,e,i);n.data.originalEvent=e,this.processInteractive(n,this.renderer._lastObjectRendered,this.processPointerOverOut,!1),this.emit("pointerout",n),"mouse"===e.pointerType||"pen"===e.pointerType?this.emit("mouseout",n):this.releaseInteractionDataForPointerId(i.identifier)}},e.prototype.processPointerOverOut=function(t,e,i){var n=t.data,r=t.data.identifier,s="mouse"===n.pointerType||"pen"===n.pointerType,o=e.trackedPointers[r];i&&!o&&(o=e.trackedPointers[r]=new rA(r)),void 0!==o&&(i&&this.mouseOverRenderer?(o.over||(o.over=!0,this.delayDispatchEvent(e,"pointerover",t),s&&this.delayDispatchEvent(e,"mouseover",t)),s&&null===this.cursor&&(this.cursor=e.cursor)):o.over&&(o.over=!1,this.dispatchEvent(e,"pointerout",this.eventData),s&&this.dispatchEvent(e,"mouseout",t),o.none&&delete e.trackedPointers[r]))},e.prototype.onPointerOver=function(t){var e=this.normalizeToPointerData(t)[0],i=this.getInteractionDataForPointerId(e),n=this.configureInteractionEventForDOMEvent(this.eventData,e,i);n.data.originalEvent=e,"mouse"===e.pointerType&&(this.mouseOverRenderer=!0),this.emit("pointerover",n),"mouse"!==e.pointerType&&"pen"!==e.pointerType||this.emit("mouseover",n)},e.prototype.getInteractionDataForPointerId=function(t){var e,i=t.pointerId;return 1===i||"mouse"===t.pointerType?e=this.mouse:this.activeInteractionData[i]?e=this.activeInteractionData[i]:((e=this.interactionDataPool.pop()||new eA).identifier=i,this.activeInteractionData[i]=e),e.copyEvent(t),e},e.prototype.releaseInteractionDataForPointerId=function(t){var e=this.activeInteractionData[t];e&&(delete this.activeInteractionData[t],e.reset(),this.interactionDataPool.push(e))},e.prototype.configureInteractionEventForDOMEvent=function(t,e,i){return t.data=i,this.mapPositionToPoint(i.global,e.clientX,e.clientY),"touch"===e.pointerType&&(e.globalX=i.global.x,e.globalY=i.global.y),i.originalEvent=e,t.reset(),t},e.prototype.normalizeToPointerData=function(t){var e=[];if(this.supportsTouchEvents&&t instanceof TouchEvent)for(var i=0,n=t.changedTouches.length;i<n;i++){var r=t.changedTouches[i];void 0===r.button&&(r.button=t.touches.length?1:0),void 0===r.buttons&&(r.buttons=t.touches.length?1:0),void 0===r.isPrimary&&(r.isPrimary=1===t.touches.length&&"touchstart"===t.type),void 0===r.width&&(r.width=r.radiusX||1),void 0===r.height&&(r.height=r.radiusY||1),void 0===r.tiltX&&(r.tiltX=0),void 0===r.tiltY&&(r.tiltY=0),void 0===r.pointerType&&(r.pointerType="touch"),void 0===r.pointerId&&(r.pointerId=r.identifier||0),void 0===r.pressure&&(r.pressure=r.force||.5),void 0===r.twist&&(r.twist=0),void 0===r.tangentialPressure&&(r.tangentialPressure=0),void 0===r.layerX&&(r.layerX=r.offsetX=r.clientX),void 0===r.layerY&&(r.layerY=r.offsetY=r.clientY),r.isNormalized=!0,e.push(r)}else!(t instanceof MouseEvent)||this.supportsPointerEvents&&t instanceof window.PointerEvent||(void 0===t.isPrimary&&(t.isPrimary=!0),void 0===t.width&&(t.width=1),void 0===t.height&&(t.height=1),void 0===t.tiltX&&(t.tiltX=0),void 0===t.tiltY&&(t.tiltY=0),void 0===t.pointerType&&(t.pointerType="mouse"),void 0===t.pointerId&&(t.pointerId=1),void 0===t.pressure&&(t.pressure=.5),void 0===t.twist&&(t.twist=0),void 0===t.tangentialPressure&&(t.tangentialPressure=0),t.isNormalized=!0),e.push(t);return e},e.prototype.destroy=function(){this.removeEvents(),this.removeTickerListener(),this.removeAllListeners(),this.renderer=null,this.mouse=null,this.eventData=null,this.interactionDOMElement=null,this.onPointerDown=null,this.processPointerDown=null,this.onPointerUp=null,this.processPointerUp=null,this.onPointerCancel=null,this.processPointerCancel=null,this.onPointerMove=null,this.processPointerMove=null,this.onPointerOut=null,this.processPointerOverOut=null,this.onPointerOver=null,this.search=null},Object.defineProperties(e.prototype,i),e}(FE()),lA=function(){function t(t){this.items=[],this._name=t,this._aliasCount=0}return t.prototype.emit=function(t,e,i,n,r,s,o,a){if(arguments.length>8)throw new Error("max arguments reached");var h=this,u=h.name,l=h.items;this._aliasCount++;for(var c=0,d=l.length;c<d;c++)l[c][u](t,e,i,n,r,s,o,a);return l===this.items&&this._aliasCount--,this},t.prototype.ensureNonAliasedItems=function(){this._aliasCount>0&&this.items.length>1&&(this._aliasCount=0,this.items=this.items.slice(0))},t.prototype.add=function(t){return t[this._name]&&(this.ensureNonAliasedItems(),this.remove(t),this.items.push(t)),this},t.prototype.remove=function(t){var e=this.items.indexOf(t);return-1!==e&&(this.ensureNonAliasedItems(),this.items.splice(e,1)),this},t.prototype.contains=function(t){return-1!==this.items.indexOf(t)},t.prototype.removeAll=function(){return this.ensureNonAliasedItems(),this.items.length=0,this},t.prototype.destroy=function(){this.removeAll(),this.items=null,this._name=null},Object.defineProperty(t.prototype,"empty",{get:function(){return 0===this.items.length},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),t}();Object.defineProperties(lA.prototype,{dispatch:{value:lA.prototype.emit},run:{value:lA.prototype.emit}});var cA=function(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this._width=t,this._height=e,this.destroyed=!1,this.internal=!1,this.onResize=new lA("setRealSize",2),this.onUpdate=new lA("update"),this.onError=new lA("onError",1)},dA={valid:{configurable:!0},width:{configurable:!0},height:{configurable:!0}};cA.prototype.bind=function(t){this.onResize.add(t),this.onUpdate.add(t),this.onError.add(t),(this._width||this._height)&&this.onResize.run(this._width,this._height)},cA.prototype.unbind=function(t){this.onResize.remove(t),this.onUpdate.remove(t),this.onError.remove(t)},cA.prototype.resize=function(t,e){t===this._width&&e===this._height||(this._width=t,this._height=e,this.onResize.run(t,e))},dA.valid.get=function(){return!!this._width&&!!this._height},cA.prototype.update=function(){this.destroyed||this.onUpdate.run()},cA.prototype.load=function(){return Promise.resolve()},dA.width.get=function(){return this._width},dA.height.get=function(){return this._height},cA.prototype.upload=function(t,e,i){return!1},cA.prototype.style=function(t,e,i){return!1},cA.prototype.dispose=function(){},cA.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.dispose(),this.onError.removeAll(),this.onError=null,this.onResize.removeAll(),this.onResize=null,this.onUpdate.removeAll(),this.onUpdate=null)},Object.defineProperties(cA.prototype,dA);var pA=function(t){function e(e){var i=e.naturalWidth||e.videoWidth||e.width,n=e.naturalHeight||e.videoHeight||e.height;t.call(this,i,n),this.source=e,this.noSubImage=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.crossOrigin=function(t,e,i){void 0===i&&0!==e.indexOf("data:")?t.crossOrigin=function(t,e){if(void 0===e&&(e=window.location),0===t.indexOf("data:"))return"";e=e||window.location,TL||(TL=document.createElement("a")),TL.href=t;var i=(0,UE.parse)(TL.href),n=!i.port&&""===e.port||i.port===e.port;return i.hostname===e.hostname&&n&&i.protocol===e.protocol?"":"anonymous"}(e):!1!==i&&(t.crossOrigin="string"==typeof i?i:"anonymous")},e.prototype.upload=function(t,e,i,n){var r=t.gl,s=e.realWidth,o=e.realHeight;return n=n||this.source,r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.alphaMode===KE.UNPACK),this.noSubImage||e.target!==r.TEXTURE_2D||i.width!==s||i.height!==o?(i.width=s,i.height=o,r.texImage2D(e.target,0,e.format,e.format,e.type,n)):r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.format,e.type,n),!0},e.prototype.update=function(){if(!this.destroyed){var e=this.source.naturalWidth||this.source.videoWidth||this.source.width,i=this.source.naturalHeight||this.source.videoHeight||this.source.height;this.resize(e,i),t.prototype.update.call(this)}},e.prototype.dispose=function(){this.source=null},e}(cA),fA=function(t){function e(e,i){if(i=i||{},!(e instanceof HTMLImageElement)){var n=new Image;t.crossOrigin(n,e,i.crossorigin),n.src=e,e=n}t.call(this,e),!e.complete&&this._width&&this._height&&(this._width=0,this._height=0),this.url=e.src,this._process=null,this.preserveBitmap=!1,this.createBitmap=(void 0!==i.createBitmap?i.createBitmap:IE.CREATE_IMAGE_BITMAP)&&!!window.createImageBitmap,this.alphaMode="number"==typeof i.alphaMode?i.alphaMode:null,void 0!==i.premultiplyAlpha&&(this.premultiplyAlpha=i.premultiplyAlpha),this.bitmap=null,this._load=null,!1!==i.autoLoad&&this.load()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.load=function(t){var e=this;return this._load||(void 0!==t&&(this.createBitmap=t),this._load=new Promise((function(t,i){e.url=e.source.src;var n=e.source,r=function(){e.destroyed||(n.onload=null,n.onerror=null,e.resize(n.width,n.height),e._load=null,e.createBitmap?t(e.process()):t(e))};n.complete&&n.src?r():(n.onload=r,n.onerror=function(t){i(t),e.onError.emit(t)})}))),this._load},e.prototype.process=function(){var t=this;return null!==this._process?this._process:null===this.bitmap&&window.createImageBitmap?(this._process=window.createImageBitmap(this.source,0,0,this.source.width,this.source.height,{premultiplyAlpha:this.premultiplyAlpha===KE.UNPACK?"premultiply":"none"}).then((function(e){return t.destroyed?Promise.reject():(t.bitmap=e,t.update(),t._process=null,Promise.resolve(t))})),this._process):Promise.resolve(this)},e.prototype.upload=function(e,i,n){if("number"==typeof this.alphaMode&&(i.alphaMode=this.alphaMode),!this.createBitmap)return t.prototype.upload.call(this,e,i,n);if(!this.bitmap&&(this.process(),!this.bitmap))return!1;if(t.prototype.upload.call(this,e,i,n,this.bitmap),!this.preserveBitmap){var r=!0;for(var s in i._glTextures){var o=i._glTextures[s];if(o!==n&&o.dirtyId!==i.dirtyId){r=!1;break}}r&&(this.bitmap.close&&this.bitmap.close(),this.bitmap=null)}return!0},e.prototype.dispose=function(){this.source.onload=null,this.source.onerror=null,t.prototype.dispose.call(this),this.bitmap&&(this.bitmap.close(),this.bitmap=null),this._process=null,this._load=null},e}(pA),mA=[];function vA(t,e){if(!t)return null;var i="";if("string"==typeof t){var n=/\.(\w{3,4})(?:$|\?|#)/i.exec(t);n&&(i=n[1].toLowerCase())}for(var r=mA.length-1;r>=0;--r){var s=mA[r];if(s.test&&s.test(t,i))return new s(t,e)}return new fA(t,e)}var gA=function(t){function e(e,i){var n=i||{},r=n.width,s=n.height;if(!r||!s)throw new Error("BufferResource width or height invalid");t.call(this,r,s),this.data=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.upload=function(t,e,i){var n=t.gl;return n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.alphaMode===KE.UNPACK),i.width===e.width&&i.height===e.height?n.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.type,this.data):(i.width=e.width,i.height=e.height,n.texImage2D(e.target,0,i.internalFormat,e.width,e.height,0,e.format,i.type,this.data)),!0},e.prototype.dispose=function(){this.data=null},e.test=function(t){return t instanceof Float32Array||t instanceof Uint8Array||t instanceof Uint32Array},e}(cA),yA={scaleMode:qE.NEAREST,format:GE.RGBA,alphaMode:KE.NPM},_A=function(t){function e(e,i){void 0===e&&(e=null),void 0===i&&(i=null),t.call(this);var n=(i=i||{}).alphaMode,r=i.mipmap,s=i.anisotropicLevel,o=i.scaleMode,a=i.width,h=i.height,u=i.wrapMode,l=i.format,c=i.type,d=i.target,p=i.resolution,f=i.resourceOptions;!e||e instanceof cA||((e=vA(e,f)).internal=!0),this.width=a||0,this.height=h||0,this.resolution=p||IE.RESOLUTION,this.mipmap=void 0!==r?r:IE.MIPMAP_TEXTURES,this.anisotropicLevel=void 0!==s?s:IE.ANISOTROPIC_LEVEL,this.wrapMode=u||IE.WRAP_MODE,this.scaleMode=void 0!==o?o:IE.SCALE_MODE,this.format=l||GE.RGBA,this.type=c||XE.UNSIGNED_BYTE,this.target=d||VE.TEXTURE_2D,this.alphaMode=void 0!==n?n:KE.UNPACK,void 0!==i.premultiplyAlpha&&(this.premultiplyAlpha=i.premultiplyAlpha),this.uid=vL(),this.touched=0,this.isPowerOfTwo=!1,this._refreshPOT(),this._glTextures={},this.dirtyId=0,this.dirtyStyleId=0,this.cacheId=null,this.valid=a>0&&h>0,this.textureCacheIds=[],this.destroyed=!1,this.resource=null,this._batchEnabled=0,this._batchLocation=0,this.setResource(e)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={realWidth:{configurable:!0},realHeight:{configurable:!0}};return i.realWidth.get=function(){return Math.ceil(this.width*this.resolution-1e-4)},i.realHeight.get=function(){return Math.ceil(this.height*this.resolution-1e-4)},e.prototype.setStyle=function(t,e){var i;return void 0!==t&&t!==this.scaleMode&&(this.scaleMode=t,i=!0),void 0!==e&&e!==this.mipmap&&(this.mipmap=e,i=!0),i&&this.dirtyStyleId++,this},e.prototype.setSize=function(t,e,i){return this.resolution=i||this.resolution,this.width=t,this.height=e,this._refreshPOT(),this.update(),this},e.prototype.setRealSize=function(t,e,i){return this.resolution=i||this.resolution,this.width=t/this.resolution,this.height=e/this.resolution,this._refreshPOT(),this.update(),this},e.prototype._refreshPOT=function(){this.isPowerOfTwo=cL(this.realWidth)&&cL(this.realHeight)},e.prototype.setResolution=function(t){var e=this.resolution;return e===t||(this.resolution=t,this.valid&&(this.width=this.width*e/t,this.height=this.height*e/t,this.emit("update",this)),this._refreshPOT()),this},e.prototype.setResource=function(t){if(this.resource===t)return this;if(this.resource)throw new Error("Resource can be set only once");return t.bind(this),this.resource=t,this},e.prototype.update=function(){this.valid?(this.dirtyId++,this.dirtyStyleId++,this.emit("update",this)):this.width>0&&this.height>0&&(this.valid=!0,this.emit("loaded",this),this.emit("update",this))},e.prototype.onError=function(t){this.emit("error",this,t)},e.prototype.destroy=function(){this.resource&&(this.resource.unbind(this),this.resource.internal&&this.resource.destroy(),this.resource=null),this.cacheId&&(delete bL[this.cacheId],delete xL[this.cacheId],this.cacheId=null),this.dispose(),e.removeFromCache(this),this.textureCacheIds=null,this.destroyed=!0},e.prototype.dispose=function(){this.emit("dispose",this)},e.from=function(t,i,n){void 0===n&&(n=IE.STRICT_TEXTURE_CACHE);var r="string"==typeof t,s=null;r?s=t:(t._pixiId||(t._pixiId="pixiid_"+vL()),s=t._pixiId);var o=bL[s];if(r&&n&&!o)throw new Error('The cacheId "'+s+'" does not exist in BaseTextureCache.');return o||((o=new e(t,i)).cacheId=s,e.addToCache(o,s)),o},e.fromBuffer=function(t,i,n,r){t=t||new Float32Array(i*n*4);var s=new gA(t,{width:i,height:n}),o=t instanceof Float32Array?XE.FLOAT:XE.UNSIGNED_BYTE;return new e(s,Object.assign(yA,r||{width:i,height:n,type:o}))},e.addToCache=function(t,e){e&&(-1===t.textureCacheIds.indexOf(e)&&t.textureCacheIds.push(e),bL[e]&&console.warn("BaseTexture added to the cache with an id ["+e+"] that already had an entry"),bL[e]=t)},e.removeFromCache=function(t){if("string"==typeof t){var e=bL[t];if(e){var i=e.textureCacheIds.indexOf(t);return i>-1&&e.textureCacheIds.splice(i,1),delete bL[t],e}}else if(t&&t.textureCacheIds){for(var n=0;n<t.textureCacheIds.length;++n)delete bL[t.textureCacheIds[n]];return t.textureCacheIds.length=0,t}return null},Object.defineProperties(e.prototype,i),e}(FE());_A._globalBatch=0;var xA=function(t){function e(e,i){var n;i=i||{};var r=e;Array.isArray(e)&&(n=e,r=e.length),t.call(this,i.width,i.height),this.items=[],this.itemDirtyIds=[];for(var s=0;s<r;s++){var o=new _A;this.items.push(o),this.itemDirtyIds.push(-1)}if(this.length=r,this._load=null,n)for(var a=0;a<r;a++)this.addResourceAt(vA(n[a],i),a)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.dispose=function(){for(var t=0,e=this.length;t<e;t++)this.items[t].destroy();this.items=null,this.itemDirtyIds=null,this._load=null},e.prototype.addResourceAt=function(t,e){if(!this.items[e])throw new Error("Index "+e+" is out of bounds");return t.valid&&!this.valid&&this.resize(t.width,t.height),this.items[e].setResource(t),this},e.prototype.bind=function(e){t.prototype.bind.call(this,e),e.target=VE.TEXTURE_2D_ARRAY;for(var i=0;i<this.length;i++)this.items[i].on("update",e.update,e)},e.prototype.unbind=function(e){t.prototype.unbind.call(this,e);for(var i=0;i<this.length;i++)this.items[i].off("update",e.update,e)},e.prototype.load=function(){var t=this;if(this._load)return this._load;var e=this.items.map((function(t){return t.resource})),i=e.map((function(t){return t.load()}));return this._load=Promise.all(i).then((function(){var i=e[0],n=i.width,r=i.height;return t.resize(n,r),Promise.resolve(t)})),this._load},e.prototype.upload=function(t,e,i){var n=this,r=n.length,s=n.itemDirtyIds,o=n.items,a=t.gl;i.dirtyId<0&&a.texImage3D(a.TEXTURE_2D_ARRAY,0,e.format,this._width,this._height,r,0,e.format,e.type,null);for(var h=0;h<r;h++){var u=o[h];s[h]<u.dirtyId&&(s[h]=u.dirtyId,u.valid&&a.texSubImage3D(a.TEXTURE_2D_ARRAY,0,0,0,h,u.resource.width,u.resource.height,1,e.format,e.type,u.resource.source))}return!0},e}(cA),bA=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.test=function(t){var e=window.OffscreenCanvas;return!!(e&&t instanceof e)||t instanceof HTMLCanvasElement},e}(pA),wA=function(t){function e(i,n){if(n=n||{},t.call(this,i,n),this.length!==e.SIDES)throw new Error("Invalid length. Got "+this.length+", expected 6");for(var r=0;r<e.SIDES;r++)this.items[r].target=VE.TEXTURE_CUBE_MAP_POSITIVE_X+r;!1!==n.autoLoad&&this.load()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(e){t.prototype.bind.call(this,e),e.target=VE.TEXTURE_CUBE_MAP},e.prototype.upload=function(t,i,n){for(var r=this.itemDirtyIds,s=0;s<e.SIDES;s++){var o=this.items[s];r[s]<o.dirtyId&&(r[s]=o.dirtyId,o.valid&&o.resource.upload(t,o,n))}return!0},e}(xA);wA.SIDES=6;var TA=function(t){function e(e,i){i=i||{},t.call(this,document.createElement("canvas")),this._width=0,this._height=0,this.svg=e,this.scale=i.scale||1,this._overrideWidth=i.width,this._overrideHeight=i.height,this._resolve=null,this._crossorigin=i.crossorigin,this._load=null,!1!==i.autoLoad&&this.load()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.load=function(){var t=this;return this._load||(this._load=new Promise((function(e){if(t._resolve=function(){t.resize(t.source.width,t.source.height),e(t)},/^\<svg/.test(t.svg.trim())){if(!btoa)throw new Error("Your browser doesn't support base64 conversions.");t.svg="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(t.svg)))}t._loadSvg()}))),this._load},e.prototype._loadSvg=function(){var e=this,i=new Image;t.crossOrigin(i,this.svg,this._crossorigin),i.src=this.svg,i.onerror=function(t){e._resolve&&(i.onerror=null,e.onError.run(t))},i.onload=function(){if(e._resolve){var t=i.width,n=i.height;if(!t||!n)throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");var r=t*e.scale,s=n*e.scale;(e._overrideWidth||e._overrideHeight)&&(r=e._overrideWidth||e._overrideHeight/n*t,s=e._overrideHeight||e._overrideWidth/t*n),r=Math.round(r),s=Math.round(s);var o=e.source;o.width=r,o.height=s,o._pixiId="canvas_"+vL(),o.getContext("2d").drawImage(i,0,0,t,n,0,0,r,s),e._resolve(),e._resolve=null}}},e.getSize=function(t){var i=e.SVG_SIZE.exec(t),n={};return i&&(n[i[1]]=Math.round(parseFloat(i[3])),n[i[5]]=Math.round(parseFloat(i[7]))),n},e.prototype.dispose=function(){t.prototype.dispose.call(this),this._resolve=null,this._crossorigin=null},e.test=function(t,e){return"svg"===e||"string"==typeof t&&0===t.indexOf("data:image/svg+xml;base64")||"string"==typeof t&&0===t.indexOf("<svg")},e}(pA);TA.SVG_SIZE=/<svg[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i;var MA=function(t){function e(e,i){if(i=i||{},!(e instanceof HTMLVideoElement)){var n=document.createElement("video");n.setAttribute("preload","auto"),n.setAttribute("webkit-playsinline",""),n.setAttribute("playsinline",""),"string"==typeof e&&(e=[e]),t.crossOrigin(n,e[0].src||e[0],i.crossorigin);for(var r=0;r<e.length;++r){var s=document.createElement("source"),o=e[r],a=o.src,h=o.mime,u=(a=a||e[r]).split("?").shift().toLowerCase(),l=u.substr(u.lastIndexOf(".")+1);h=h||"video/"+l,s.src=a,s.type=h,n.appendChild(s)}e=n}t.call(this,e),this.noSubImage=!0,this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=i.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=!1!==i.autoPlay,this._load=null,this._resolve=null,this._onCanPlay=this._onCanPlay.bind(this),this._onError=this._onError.bind(this),!1!==i.autoLoad&&this.load()}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={autoUpdate:{configurable:!0},updateFPS:{configurable:!0}};return e.prototype.update=function(e){if(void 0===e&&(e=0),!this.destroyed){var i=$L.shared.elapsedMS*this.source.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-i),(!this._updateFPS||this._msToNextUpdate<=0)&&(t.prototype.update.call(this,e),this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0)}},e.prototype.load=function(){var t=this;if(this._load)return this._load;var e=this.source;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart.bind(this)),e.addEventListener("pause",this._onPlayStop.bind(this)),this._isSourceReady()?this._onCanPlay():(e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlay),e.addEventListener("error",this._onError,!0)),this._load=new Promise((function(i){t.valid?i(t):(t._resolve=i,e.load())})),this._load},e.prototype._onError=function(){this.source.removeEventListener("error",this._onError,!0),this.onError.run(event)},e.prototype._isSourcePlaying=function(){var t=this.source;return t.currentTime>0&&!1===t.paused&&!1===t.ended&&t.readyState>2},e.prototype._isSourceReady=function(){return 3===this.source.readyState||4===this.source.readyState},e.prototype._onPlayStart=function(){this.valid||this._onCanPlay(),this.autoUpdate&&!this._isConnectedToTicker&&($L.shared.add(this.update,this),this._isConnectedToTicker=!0)},e.prototype._onPlayStop=function(){this._isConnectedToTicker&&($L.shared.remove(this.update,this),this._isConnectedToTicker=!1)},e.prototype._onCanPlay=function(){var t=this.source;t.removeEventListener("canplay",this._onCanPlay),t.removeEventListener("canplaythrough",this._onCanPlay);var e=this.valid;this.resize(t.videoWidth,t.videoHeight),!e&&this._resolve&&(this._resolve(this),this._resolve=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&t.play()},e.prototype.dispose=function(){this._isConnectedToTicker&&$L.shared.remove(this.update,this),this.source&&(this.source.removeEventListener("error",this._onError,!0),this.source.pause(),this.source.src="",this.source.load()),t.prototype.dispose.call(this)},i.autoUpdate.get=function(){return this._autoUpdate},i.autoUpdate.set=function(t){t!==this._autoUpdate&&(this._autoUpdate=t,!this._autoUpdate&&this._isConnectedToTicker?($L.shared.remove(this.update,this),this._isConnectedToTicker=!1):this._autoUpdate&&!this._isConnectedToTicker&&this._isSourcePlaying()&&($L.shared.add(this.update,this),this._isConnectedToTicker=!0))},i.updateFPS.get=function(){return this._updateFPS},i.updateFPS.set=function(t){t!==this._updateFPS&&(this._updateFPS=t)},e.test=function(t,i){return t instanceof HTMLVideoElement||e.TYPES.indexOf(i)>-1},Object.defineProperties(e.prototype,i),e}(pA);MA.TYPES=["mp4","m4v","webm","ogg","ogv","h264","avi","mov"];var SA=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.test=function(t){return!!window.createImageBitmap&&t instanceof ImageBitmap},e}(pA);mA.push(fA,SA,bA,MA,TA,gA,wA,xA);var EA=function(t){this.renderer=t};EA.prototype.destroy=function(){this.renderer=null};var LA=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.upload=function(t,e,i){var n=t.gl;return n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.alphaMode===KE.UNPACK),i.width===e.width&&i.height===e.height?n.texSubImage2D(e.target,0,0,0,e.width,e.height,e.format,e.type,this.data):(i.width=e.width,i.height=e.height,n.texImage2D(e.target,0,1===t.context.webGLVersion?n.DEPTH_COMPONENT:n.DEPTH_COMPONENT16,e.width,e.height,0,e.format,e.type,this.data)),!0},e}(gA),AA=function(t,e){this.width=Math.ceil(t||100),this.height=Math.ceil(e||100),this.stencil=!1,this.depth=!1,this.dirtyId=0,this.dirtyFormat=0,this.dirtySize=0,this.depthTexture=null,this.colorTextures=[],this.glFramebuffers={},this.disposeRunner=new lA("disposeFramebuffer",2)},DA={colorTexture:{configurable:!0}};DA.colorTexture.get=function(){return this.colorTextures[0]},AA.prototype.addColorTexture=function(t,e){return void 0===t&&(t=0),this.colorTextures[t]=e||new _A(null,{scaleMode:qE.NEAREST,resolution:1,mipmap:!1,width:this.width,height:this.height}),this.dirtyId++,this.dirtyFormat++,this},AA.prototype.addDepthTexture=function(t){return this.depthTexture=t||new _A(new LA(null,{width:this.width,height:this.height}),{scaleMode:qE.NEAREST,resolution:1,width:this.width,height:this.height,mipmap:!1,format:GE.DEPTH_COMPONENT,type:XE.UNSIGNED_SHORT}),this.dirtyId++,this.dirtyFormat++,this},AA.prototype.enableDepth=function(){return this.depth=!0,this.dirtyId++,this.dirtyFormat++,this},AA.prototype.enableStencil=function(){return this.stencil=!0,this.dirtyId++,this.dirtyFormat++,this},AA.prototype.resize=function(t,e){if(t=Math.ceil(t),e=Math.ceil(e),t!==this.width||e!==this.height){this.width=t,this.height=e,this.dirtyId++,this.dirtySize++;for(var i=0;i<this.colorTextures.length;i++){var n=this.colorTextures[i],r=n.resolution;n.setSize(t/r,e/r)}if(this.depthTexture){var s=this.depthTexture.resolution;this.depthTexture.setSize(t/s,e/s)}}},AA.prototype.dispose=function(){this.disposeRunner.run(this,!1)},Object.defineProperties(AA.prototype,DA);var PA=function(t){function e(e){if("number"==typeof e){var i=arguments[0],n=arguments[1],r=arguments[2],s=arguments[3];e={width:i,height:n,scaleMode:r,resolution:s}}t.call(this,null,e);var o=e||{},a=o.width,h=o.height;this.mipmap=!1,this.width=Math.ceil(a)||100,this.height=Math.ceil(h)||100,this.valid=!0,this._canvasRenderTarget=null,this.clearColor=[0,0,0,0],this.framebuffer=new AA(this.width*this.resolution,this.height*this.resolution).addColorTexture(0,this),this.maskStack=[],this.filterStack=[{}]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.resize=function(t,e){t=Math.ceil(t),e=Math.ceil(e),this.framebuffer.resize(t*this.resolution,e*this.resolution)},e.prototype.dispose=function(){this.framebuffer.dispose(),t.prototype.dispose.call(this)},e.prototype.destroy=function(){t.prototype.destroy.call(this,!0),this.framebuffer=null},e}(_A),CA=function(){this.x0=0,this.y0=0,this.x1=1,this.y1=0,this.x2=1,this.y2=1,this.x3=0,this.y3=1,this.uvsFloat32=new Float32Array(8)};CA.prototype.set=function(t,e,i){var n=e.width,r=e.height;if(i){var s=t.width/2/n,o=t.height/2/r,a=t.x/n+s,h=t.y/r+o;i=BL.add(i,BL.NW),this.x0=a+s*BL.uX(i),this.y0=h+o*BL.uY(i),i=BL.add(i,2),this.x1=a+s*BL.uX(i),this.y1=h+o*BL.uY(i),i=BL.add(i,2),this.x2=a+s*BL.uX(i),this.y2=h+o*BL.uY(i),i=BL.add(i,2),this.x3=a+s*BL.uX(i),this.y3=h+o*BL.uY(i)}else this.x0=t.x/n,this.y0=t.y/r,this.x1=(t.x+t.width)/n,this.y1=t.y/r,this.x2=(t.x+t.width)/n,this.y2=(t.y+t.height)/r,this.x3=t.x/n,this.y3=(t.y+t.height)/r;this.uvsFloat32[0]=this.x0,this.uvsFloat32[1]=this.y0,this.uvsFloat32[2]=this.x1,this.uvsFloat32[3]=this.y1,this.uvsFloat32[4]=this.x2,this.uvsFloat32[5]=this.y2,this.uvsFloat32[6]=this.x3,this.uvsFloat32[7]=this.y3};var OA=new CA,kA=function(t){function e(i,n,r,s,o,a){if(t.call(this),this.noFrame=!1,n||(this.noFrame=!0,n=new jL(0,0,1,1)),i instanceof e&&(i=i.baseTexture),this.baseTexture=i,this._frame=n,this.trim=s,this.valid=!1,this.requiresUpdate=!1,this._uvs=OA,this.uvMatrix=null,this.orig=r||n,this._rotate=Number(o||0),!0===o)this._rotate=2;else if(this._rotate%2!=0)throw new Error("attempt to use diamond-shaped UVs. If you are sure, set rotation manually");this.defaultAnchor=a?new EL(a.x,a.y):new EL(0,0),this._updateID=0,this.textureCacheIds=[],i.valid?this.noFrame?i.valid&&this.onBaseTextureUpdated(i):this.frame=n:i.once("loaded",this.onBaseTextureUpdated,this),this.noFrame&&i.on("update",this.onBaseTextureUpdated,this)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={resolution:{configurable:!0},frame:{configurable:!0},rotate:{configurable:!0},width:{configurable:!0},height:{configurable:!0}};return e.prototype.update=function(){this.baseTexture.resource&&this.baseTexture.resource.update()},e.prototype.onBaseTextureUpdated=function(t){if(this.noFrame){if(!this.baseTexture.valid)return;this._frame.width=t.width,this._frame.height=t.height,this.valid=!0,this.updateUvs()}else this.frame=this._frame;this.emit("update",this)},e.prototype.destroy=function(t){if(this.baseTexture){if(t){var i=this.baseTexture.resource;i&&xL[i.url]&&e.removeFromCache(i.url),this.baseTexture.destroy()}this.baseTexture.off("loaded",this.onBaseTextureUpdated,this),this.baseTexture.off("update",this.onBaseTextureUpdated,this),this.baseTexture=null}this._frame=null,this._uvs=null,this.trim=null,this.orig=null,this.valid=!1,e.removeFromCache(this),this.textureCacheIds=null},e.prototype.clone=function(){return new e(this.baseTexture,this.frame.clone(),this.orig.clone(),this.trim&&this.trim.clone(),this.rotate,this.defaultAnchor)},e.prototype.updateUvs=function(){this._uvs===OA&&(this._uvs=new CA),this._uvs.set(this._frame,this.baseTexture,this.rotate),this._updateID++},e.from=function(t,i,n){void 0===i&&(i={}),void 0===n&&(n=IE.STRICT_TEXTURE_CACHE);var r="string"==typeof t,s=null;r?s=t:(t._pixiId||(t._pixiId="pixiid_"+vL()),s=t._pixiId);var o=xL[s];if(r&&n&&!o)throw new Error('The cacheId "'+s+'" does not exist in TextureCache.');return o||(i.resolution||(i.resolution=ML(t)),(o=new e(new _A(t,i))).baseTexture.cacheId=s,_A.addToCache(o.baseTexture,s),e.addToCache(o,s)),o},e.fromBuffer=function(t,i,n,r){return new e(_A.fromBuffer(t,i,n,r))},e.fromLoader=function(t,i,n){var r=new fA(t);r.url=i;var s=new e(new _A(r,{scaleMode:IE.SCALE_MODE,resolution:ML(i)}));return n||(n=i),_A.addToCache(s.baseTexture,n),e.addToCache(s,n),n!==i&&(_A.addToCache(s.baseTexture,i),e.addToCache(s,i)),s},e.addToCache=function(t,e){e&&(-1===t.textureCacheIds.indexOf(e)&&t.textureCacheIds.push(e),xL[e]&&console.warn("Texture added to the cache with an id ["+e+"] that already had an entry"),xL[e]=t)},e.removeFromCache=function(t){if("string"==typeof t){var e=xL[t];if(e){var i=e.textureCacheIds.indexOf(t);return i>-1&&e.textureCacheIds.splice(i,1),delete xL[t],e}}else if(t&&t.textureCacheIds){for(var n=0;n<t.textureCacheIds.length;++n)xL[t.textureCacheIds[n]]===t&&delete xL[t.textureCacheIds[n]];return t.textureCacheIds.length=0,t}return null},i.resolution.get=function(){return this.baseTexture.resolution},i.frame.get=function(){return this._frame},i.frame.set=function(t){this._frame=t,this.noFrame=!1;var e=t.x,i=t.y,n=t.width,r=t.height,s=e+n>this.baseTexture.width,o=i+r>this.baseTexture.height;if(s||o){var a=s&&o?"and":"or",h="X: "+e+" + "+n+" = "+(e+n)+" > "+this.baseTexture.width,u="Y: "+i+" + "+r+" = "+(i+r)+" > "+this.baseTexture.height;throw new Error("Texture Error: frame does not fit inside the base Texture dimensions: "+h+" "+a+" "+u)}this.valid=n&&r&&this.baseTexture.valid,this.trim||this.rotate||(this.orig=t),this.valid&&this.updateUvs()},i.rotate.get=function(){return this._rotate},i.rotate.set=function(t){this._rotate=t,this.valid&&this.updateUvs()},i.width.get=function(){return this.orig.width},i.height.get=function(){return this.orig.height},Object.defineProperties(e.prototype,i),e}(FE());function RA(t){t.destroy=function(){},t.on=function(){},t.once=function(){},t.emit=function(){}}kA.EMPTY=new kA(new _A),RA(kA.EMPTY),RA(kA.EMPTY.baseTexture),kA.WHITE=function(){var t=document.createElement("canvas");t.width=16,t.height=16;var e=t.getContext("2d");return e.fillStyle="white",e.fillRect(0,0,16,16),new kA(new _A(new bA(t)))}(),RA(kA.WHITE),RA(kA.WHITE.baseTexture);var IA=function(t){function e(e,i){var n=null;if(!(e instanceof PA)){var r=arguments[1],s=arguments[2],o=arguments[3],a=arguments[4];console.warn("Please use RenderTexture.create("+r+", "+s+") instead of the ctor directly."),n=arguments[0],i=null,e=new PA({width:r,height:s,scaleMode:o,resolution:a})}t.call(this,e,i),this.legacyRenderer=n,this.valid=!0,this.filterFrame=null,this.filterPoolKey=null,this.updateUvs()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.resize=function(t,e,i){void 0===i&&(i=!0),t=Math.ceil(t),e=Math.ceil(e),this.valid=t>0&&e>0,this._frame.width=this.orig.width=t,this._frame.height=this.orig.height=e,i&&this.baseTexture.resize(t,e),this.updateUvs()},e.prototype.setResolution=function(t){var e=this.baseTexture;e.resolution!==t&&(e.setResolution(t),this.resize(e.width,e.height,!1))},e.create=function(t){return"number"==typeof t&&(t={width:t,height:arguments[1],scaleMode:arguments[2],resolution:arguments[3]}),new e(new PA(t))},e}(kA),YA=function(t){this.texturePool={},this.textureOptions=t||{},this.enableFullScreen=!1,this._pixelsWidth=0,this._pixelsHeight=0};YA.prototype.createTexture=function(t,e){var i=new PA(Object.assign({width:t,height:e,resolution:1},this.textureOptions));return new IA(i)},YA.prototype.getOptimalTexture=function(t,e,i){void 0===i&&(i=1);var n=YA.SCREEN_KEY;t*=i,e*=i,this.enableFullScreen&&t===this._pixelsWidth&&e===this._pixelsHeight||(n=(65535&(t=lL(t)))<<16|65535&(e=lL(e))),this.texturePool[n]||(this.texturePool[n]=[]);var r=this.texturePool[n].pop();return r||(r=this.createTexture(t,e)),r.filterPoolKey=n,r.setResolution(i),r},YA.prototype.getFilterTexture=function(t,e){var i=this.getOptimalTexture(t.width,t.height,e||t.resolution);return i.filterFrame=t.filterFrame,i},YA.prototype.returnTexture=function(t){var e=t.filterPoolKey;t.filterFrame=null,this.texturePool[e].push(t)},YA.prototype.returnFilterTexture=function(t){this.returnTexture(t)},YA.prototype.clear=function(t){if(t=!1!==t)for(var e in this.texturePool){var i=this.texturePool[e];if(i)for(var n=0;n<i.length;n++)i[n].destroy(!0)}this.texturePool={}},YA.prototype.setScreenSize=function(t){if(t.width!==this._pixelsWidth||t.height!==this._pixelsHeight){var e=YA.SCREEN_KEY,i=this.texturePool[e];if(this.enableFullScreen=t.width>0&&t.height>0,i)for(var n=0;n<i.length;n++)i[n].destroy(!0);this.texturePool[e]=[],this._pixelsWidth=t.width,this._pixelsHeight=t.height}},YA.SCREEN_KEY="screen";var FA=function(t,e,i,n,r,s,o){void 0===i&&(i=!1),void 0===n&&(n=5126),this.buffer=t,this.size=e,this.normalized=i,this.type=n,this.stride=r,this.start=s,this.instance=o};FA.prototype.destroy=function(){this.buffer=null},FA.from=function(t,e,i,n,r){return new FA(t,e,i,n,r)};var NA=0,BA=function(t,e,i){void 0===e&&(e=!0),void 0===i&&(i=!1),this.data=t||new Float32Array(1),this._glBuffers={},this._updateID=0,this.index=i,this.static=e,this.id=NA++,this.disposeRunner=new lA("disposeBuffer",2)};function UA(t){if(4===t.BYTES_PER_ELEMENT)return t instanceof Float32Array?"Float32Array":t instanceof Uint32Array?"Uint32Array":"Int32Array";if(2===t.BYTES_PER_ELEMENT){if(t instanceof Uint16Array)return"Uint16Array"}else if(1===t.BYTES_PER_ELEMENT&&t instanceof Uint8Array)return"Uint8Array";return null}BA.prototype.update=function(t){this.data=t||this.data,this._updateID++},BA.prototype.dispose=function(){this.disposeRunner.run(this,!1)},BA.prototype.destroy=function(){this.dispose(),this.data=null},BA.from=function(t){return t instanceof Array&&(t=new Float32Array(t)),new BA(t)};var jA={Float32Array,Uint32Array,Int32Array,Uint8Array};var HA={5126:4,5123:2,5121:1},zA=0,WA={Float32Array,Uint32Array,Int32Array,Uint8Array,Uint16Array},GA=function(t,e){void 0===t&&(t=[]),void 0===e&&(e={}),this.buffers=t,this.indexBuffer=null,this.attributes=e,this.glVertexArrayObjects={},this.id=zA++,this.instanced=!1,this.instanceCount=1,this.disposeRunner=new lA("disposeGeometry",2),this.refCount=0};GA.prototype.addAttribute=function(t,e,i,n,r,s,o,a){if(void 0===n&&(n=!1),void 0===a&&(a=!1),!e)throw new Error("You must pass a buffer when creating an attribute");e.data||(e instanceof Array&&(e=new Float32Array(e)),e=new BA(e));var h=t.split("|");if(h.length>1){for(var u=0;u<h.length;u++)this.addAttribute(h[u],e,i,n,r);return this}var l=this.buffers.indexOf(e);return-1===l&&(this.buffers.push(e),l=this.buffers.length-1),this.attributes[t]=new FA(l,i,n,r,s,o,a),this.instanced=this.instanced||a,this},GA.prototype.getAttribute=function(t){return this.attributes[t]},GA.prototype.getBuffer=function(t){return this.buffers[this.getAttribute(t).buffer]},GA.prototype.addIndex=function(t){return t.data||(t instanceof Array&&(t=new Uint16Array(t)),t=new BA(t)),t.index=!0,this.indexBuffer=t,-1===this.buffers.indexOf(t)&&this.buffers.push(t),this},GA.prototype.getIndex=function(){return this.indexBuffer},GA.prototype.interleave=function(){if(1===this.buffers.length||2===this.buffers.length&&this.indexBuffer)return this;var t,e=[],i=[],n=new BA;for(t in this.attributes){var r=this.attributes[t],s=this.buffers[r.buffer];e.push(s.data),i.push(r.size*HA[r.type]/4),r.buffer=0}for(n.data=function(t,e){for(var i=0,n=0,r={},s=0;s<t.length;s++)n+=e[s],i+=t[s].length;for(var o=new ArrayBuffer(4*i),a=null,h=0,u=0;u<t.length;u++){var l=e[u],c=t[u],d=UA(c);r[d]||(r[d]=new jA[d](o)),a=r[d];for(var p=0;p<c.length;p++)a[(p/l|0)*n+h+p%l]=c[p];h+=l}return new Float32Array(o)}(e,i),t=0;t<this.buffers.length;t++)this.buffers[t]!==this.indexBuffer&&this.buffers[t].destroy();return this.buffers=[n],this.indexBuffer&&this.buffers.push(this.indexBuffer),this},GA.prototype.getSize=function(){for(var t in this.attributes){var e=this.attributes[t];return this.buffers[e.buffer].data.length/(e.stride/4||e.size)}return 0},GA.prototype.dispose=function(){this.disposeRunner.run(this,!1)},GA.prototype.destroy=function(){this.dispose(),this.buffers=null,this.indexBuffer=null,this.attributes=null},GA.prototype.clone=function(){for(var t=new GA,e=0;e<this.buffers.length;e++)t.buffers[e]=new BA(this.buffers[e].data.slice());for(var i in this.attributes){var n=this.attributes[i];t.attributes[i]=new FA(n.buffer,n.size,n.normalized,n.type,n.stride,n.start,n.instance)}return this.indexBuffer&&(t.indexBuffer=t.buffers[this.buffers.indexOf(this.indexBuffer)],t.indexBuffer.index=!0),t},GA.merge=function(t){for(var e,i=new GA,n=[],r=[],s=[],o=0;o<t.length;o++){e=t[o];for(var a=0;a<e.buffers.length;a++)r[a]=r[a]||0,r[a]+=e.buffers[a].data.length,s[a]=0}for(var h=0;h<e.buffers.length;h++)n[h]=new(WA[UA(e.buffers[h].data)])(r[h]),i.buffers[h]=new BA(n[h]);for(var u=0;u<t.length;u++){e=t[u];for(var l=0;l<e.buffers.length;l++)n[l].set(e.buffers[l].data,s[l]),s[l]+=e.buffers[l].data.length}if(i.attributes=e.attributes,e.indexBuffer){i.indexBuffer=i.buffers[e.buffers.indexOf(e.indexBuffer)],i.indexBuffer.index=!0;for(var c=0,d=0,p=0,f=0,m=0;m<e.buffers.length;m++)if(e.buffers[m]!==e.indexBuffer){f=m;break}for(var v in e.attributes){var g=e.attributes[v];(0|g.buffer)===f&&(d+=g.size*HA[g.type]/4)}for(var y=0;y<t.length;y++){for(var _=t[y].indexBuffer.data,x=0;x<_.length;x++)i.indexBuffer.data[x+p]+=c;c+=e.buffers[f].data.length/d,p+=_.length}}return i};var VA=function(t){function e(){t.call(this),this.addAttribute("aVertexPosition",[0,0,1,0,1,1,0,1]).addIndex([0,1,3,2])}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(GA),XA=function(t){function e(){t.call(this),this.vertices=new Float32Array([-1,-1,1,-1,1,1,-1,1]),this.uvs=new Float32Array([0,0,1,0,1,1,0,1]),this.vertexBuffer=new BA(this.vertices),this.uvBuffer=new BA(this.uvs),this.addAttribute("aVertexPosition",this.vertexBuffer).addAttribute("aTextureCoord",this.uvBuffer).addIndex([0,1,2,0,2,3])}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.map=function(t,e){var i=0,n=0;return this.uvs[0]=i,this.uvs[1]=n,this.uvs[2]=i+e.width/t.width,this.uvs[3]=n,this.uvs[4]=i+e.width/t.width,this.uvs[5]=n+e.height/t.height,this.uvs[6]=i,this.uvs[7]=n+e.height/t.height,i=e.x,n=e.y,this.vertices[0]=i,this.vertices[1]=n,this.vertices[2]=i+e.width,this.vertices[3]=n,this.vertices[4]=i+e.width,this.vertices[5]=n+e.height,this.vertices[6]=i,this.vertices[7]=n+e.height,this.invalidate(),this},e.prototype.invalidate=function(){return this.vertexBuffer._updateID++,this.uvBuffer._updateID++,this},e}(GA),qA=0,JA=function(t,e){this.uniforms=t,this.group=!0,this.syncUniforms={},this.dirtyId=0,this.id=qA++,this.static=!!e};JA.prototype.update=function(){this.dirtyId++},JA.prototype.add=function(t,e,i){this.uniforms[t]=new JA(e,i)},JA.from=function(t,e){return new JA(t,e)};var ZA=function(){this.renderTexture=null,this.target=null,this.legacy=!1,this.resolution=1,this.sourceFrame=new jL,this.destinationFrame=new jL,this.filters=[]};ZA.prototype.clear=function(){this.target=null,this.filters=null,this.renderTexture=null};var KA=function(t){function e(e){t.call(this,e),this.defaultFilterStack=[{}],this.texturePool=new YA,this.texturePool.setScreenSize(e.view),this.statePool=[],this.quad=new VA,this.quadUv=new XA,this.tempRect=new jL,this.activeState={},this.globalUniforms=new JA({outputFrame:this.tempRect,inputSize:new Float32Array(4),inputPixel:new Float32Array(4),inputClamp:new Float32Array(4),resolution:1,filterArea:new Float32Array(4),filterClamp:new Float32Array(4)},!0),this.forceClear=!1,this.useMaxPadding=!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e){for(var i=this.renderer,n=this.defaultFilterStack,r=this.statePool.pop()||new ZA,s=e[0].resolution,o=e[0].padding,a=e[0].autoFit,h=e[0].legacy,u=1;u<e.length;u++){var l=e[u];s=Math.min(s,l.resolution),o=this.useMaxPadding?Math.max(o,l.padding):o+l.padding,a=a||l.autoFit,h=h||l.legacy}1===n.length&&(this.defaultFilterStack[0].renderTexture=i.renderTexture.current),n.push(r),r.resolution=s,r.legacy=h,r.target=t,r.sourceFrame.copyFrom(t.filterArea||t.getBounds(!0)),r.sourceFrame.pad(o),a&&r.sourceFrame.fit(this.renderer.renderTexture.sourceFrame),r.sourceFrame.ceil(s),r.renderTexture=this.getOptimalFilterTexture(r.sourceFrame.width,r.sourceFrame.height,s),r.filters=e,r.destinationFrame.width=r.renderTexture.width,r.destinationFrame.height=r.renderTexture.height,r.renderTexture.filterFrame=r.sourceFrame,i.renderTexture.bind(r.renderTexture,r.sourceFrame),i.renderTexture.clear()},e.prototype.pop=function(){var t=this.defaultFilterStack,e=t.pop(),i=e.filters;this.activeState=e;var n=this.globalUniforms.uniforms;n.outputFrame=e.sourceFrame,n.resolution=e.resolution;var r=n.inputSize,s=n.inputPixel,o=n.inputClamp;if(r[0]=e.destinationFrame.width,r[1]=e.destinationFrame.height,r[2]=1/r[0],r[3]=1/r[1],s[0]=r[0]*e.resolution,s[1]=r[1]*e.resolution,s[2]=1/s[0],s[3]=1/s[1],o[0]=.5*s[2],o[1]=.5*s[3],o[2]=e.sourceFrame.width*r[2]-.5*s[2],o[3]=e.sourceFrame.height*r[3]-.5*s[3],e.legacy){var a=n.filterArea;a[0]=e.destinationFrame.width,a[1]=e.destinationFrame.height,a[2]=e.sourceFrame.x,a[3]=e.sourceFrame.y,n.filterClamp=n.inputClamp}this.globalUniforms.update();var h=t[t.length-1];if(1===i.length)i[0].apply(this,e.renderTexture,h.renderTexture,!1,e),this.returnFilterTexture(e.renderTexture);else{var u=e.renderTexture,l=this.getOptimalFilterTexture(u.width,u.height,e.resolution);l.filterFrame=u.filterFrame;var c=0;for(c=0;c<i.length-1;++c){i[c].apply(this,u,l,!0,e);var d=u;u=l,l=d}i[c].apply(this,u,h.renderTexture,!1,e),this.returnFilterTexture(u),this.returnFilterTexture(l)}e.clear(),this.statePool.push(e)},e.prototype.applyFilter=function(t,e,i,n){var r=this.renderer;r.renderTexture.bind(i,i?i.filterFrame:null),n&&r.renderTexture.clear(),t.uniforms.uSampler=e,t.uniforms.filterGlobals=this.globalUniforms,r.state.set(t.state),r.shader.bind(t),t.legacy?(this.quadUv.map(e._frame,e.filterFrame),r.geometry.bind(this.quadUv),r.geometry.draw(WE.TRIANGLES)):(r.geometry.bind(this.quad),r.geometry.draw(WE.TRIANGLE_STRIP))},e.prototype.calculateSpriteMatrix=function(t,e){var i=this.activeState,n=i.sourceFrame,r=i.destinationFrame,s=e._texture.orig,o=t.set(r.width,0,0,r.height,n.x,n.y),a=e.worldTransform.copyTo(CL.TEMP_MATRIX);return a.invert(),o.prepend(a),o.scale(1/s.width,1/s.height),o.translate(e.anchor.x,e.anchor.y),o},e.prototype.destroy=function(){this.texturePool.clear(!1)},e.prototype.getOptimalFilterTexture=function(t,e,i){return void 0===i&&(i=1),this.texturePool.getOptimalTexture(t,e,i)},e.prototype.getFilterTexture=function(t,e){if("number"==typeof t){var i=t;t=e,e=i}t=t||this.activeState.renderTexture;var n=this.texturePool.getOptimalTexture(t.width,t.height,e||t.resolution);return n.filterFrame=t.filterFrame,n},e.prototype.returnFilterTexture=function(t){this.texturePool.returnTexture(t)},e.prototype.emptyPool=function(){this.texturePool.clear(!0)},e.prototype.resize=function(){this.texturePool.setScreenSize(this.renderer.view)},e}(EA),QA=function(t){this.renderer=t};QA.prototype.flush=function(){},QA.prototype.destroy=function(){this.renderer=null},QA.prototype.start=function(){},QA.prototype.stop=function(){this.flush()},QA.prototype.render=function(t){};var $A=function(t){function e(e){t.call(this,e),this.emptyRenderer=new QA(e),this.currentRenderer=this.emptyRenderer}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setObjectRenderer=function(t){this.currentRenderer!==t&&(this.currentRenderer.stop(),this.currentRenderer=t,this.currentRenderer.start())},e.prototype.flush=function(){this.setObjectRenderer(this.emptyRenderer)},e.prototype.reset=function(){this.setObjectRenderer(this.emptyRenderer)},e.prototype.copyBoundTextures=function(t,e){for(var i=this.renderer.texture.boundTextures,n=e-1;n>=0;--n)t[n]=i[n]||null,t[n]&&(t[n]._batchLocation=n)},e.prototype.boundArray=function(t,e,i,n){for(var r=t.elements,s=t.ids,o=t.count,a=0,h=0;h<o;h++){var u=r[h],l=u._batchLocation;if(l>=0&&l<n&&e[l]===u)s[h]=l;else for(;a<n;){var c=e[a];if(!c||c._batchEnabled!==i||c._batchLocation!==a){s[h]=a,u._batchLocation=a,e[a]=u;break}a++}}},e}(EA);IE.PREFER_ENV=RE.any?jE.WEBGL:jE.WEBGL2,IE.STRICT_TEXTURE_CACHE=!1;var tD=0,eD=function(t){function e(e){t.call(this,e),this.webGLVersion=1,this.extensions={},this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this),e.view.addEventListener("webglcontextlost",this.handleContextLost,!1),e.view.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={isLost:{configurable:!0}};return i.isLost.get=function(){return!this.gl||this.gl.isContextLost()},e.prototype.contextChange=function(t){this.gl=t,this.renderer.gl=t,this.renderer.CONTEXT_UID=tD++,t.isContextLost()&&t.getExtension("WEBGL_lose_context")&&t.getExtension("WEBGL_lose_context").restoreContext()},e.prototype.initFromContext=function(t){this.gl=t,this.validateContext(t),this.renderer.gl=t,this.renderer.CONTEXT_UID=tD++,this.renderer.runners.contextChange.run(t)},e.prototype.initFromOptions=function(t){var e=this.createContext(this.renderer.view,t);this.initFromContext(e)},e.prototype.createContext=function(t,e){var i;if(IE.PREFER_ENV>=jE.WEBGL2&&(i=t.getContext("webgl2",e)),i)this.webGLVersion=2;else if(this.webGLVersion=1,!(i=t.getContext("webgl",e)||t.getContext("experimental-webgl",e)))throw new Error("This browser does not support WebGL. Try using the canvas renderer");return this.gl=i,this.getExtensions(),i},e.prototype.getExtensions=function(){var t=this.gl;1===this.webGLVersion?Object.assign(this.extensions,{drawBuffers:t.getExtension("WEBGL_draw_buffers"),depthTexture:t.getExtension("WEBGL_depth_texture"),loseContext:t.getExtension("WEBGL_lose_context"),vertexArrayObject:t.getExtension("OES_vertex_array_object")||t.getExtension("MOZ_OES_vertex_array_object")||t.getExtension("WEBKIT_OES_vertex_array_object"),anisotropicFiltering:t.getExtension("EXT_texture_filter_anisotropic"),uint32ElementIndex:t.getExtension("OES_element_index_uint"),floatTexture:t.getExtension("OES_texture_float"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),textureHalfFloat:t.getExtension("OES_texture_half_float"),textureHalfFloatLinear:t.getExtension("OES_texture_half_float_linear")}):2===this.webGLVersion&&Object.assign(this.extensions,{anisotropicFiltering:t.getExtension("EXT_texture_filter_anisotropic"),colorBufferFloat:t.getExtension("EXT_color_buffer_float"),floatTextureLinear:t.getExtension("OES_texture_float_linear")})},e.prototype.handleContextLost=function(t){t.preventDefault()},e.prototype.handleContextRestored=function(){this.renderer.runners.contextChange.run(this.gl)},e.prototype.destroy=function(){var t=this.renderer.view;t.removeEventListener("webglcontextlost",this.handleContextLost),t.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext&&this.extensions.loseContext.loseContext()},e.prototype.postrender=function(){this.renderer.renderingToScreen&&this.gl.flush()},e.prototype.validateContext=function(t){t.getContextAttributes().stencil||console.warn("Provided WebGL context does not have a stencil buffer, masks may not render correctly")},Object.defineProperties(e.prototype,i),e}(EA),iD=function(t){function e(e){t.call(this,e),this.managedFramebuffers=[],this.unknownFramebuffer=new AA(10,10)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={size:{configurable:!0}};return e.prototype.contextChange=function(){var t=this.gl=this.renderer.gl;if(this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.current=this.unknownFramebuffer,this.viewport=new jL,this.hasMRT=!0,this.writeDepthTexture=!0,this.disposeAll(!0),1===this.renderer.context.webGLVersion){var e=this.renderer.context.extensions.drawBuffers,i=this.renderer.context.extensions.depthTexture;IE.PREFER_ENV===jE.WEBGL_LEGACY&&(e=null,i=null),e?t.drawBuffers=function(t){return e.drawBuffersWEBGL(t)}:(this.hasMRT=!1,t.drawBuffers=function(){}),i||(this.writeDepthTexture=!1)}},e.prototype.bind=function(t,e){var i=this.gl;if(t){var n=t.glFramebuffers[this.CONTEXT_UID]||this.initFramebuffer(t);this.current!==t&&(this.current=t,i.bindFramebuffer(i.FRAMEBUFFER,n.framebuffer)),n.dirtyId!==t.dirtyId&&(n.dirtyId=t.dirtyId,n.dirtyFormat!==t.dirtyFormat?(n.dirtyFormat=t.dirtyFormat,this.updateFramebuffer(t)):n.dirtySize!==t.dirtySize&&(n.dirtySize=t.dirtySize,this.resizeFramebuffer(t)));for(var r=0;r<t.colorTextures.length;r++)t.colorTextures[r].texturePart?this.renderer.texture.unbind(t.colorTextures[r].texture):this.renderer.texture.unbind(t.colorTextures[r]);t.depthTexture&&this.renderer.texture.unbind(t.depthTexture),e?this.setViewport(e.x,e.y,e.width,e.height):this.setViewport(0,0,t.width,t.height)}else this.current&&(this.current=null,i.bindFramebuffer(i.FRAMEBUFFER,null)),e?this.setViewport(e.x,e.y,e.width,e.height):this.setViewport(0,0,this.renderer.width,this.renderer.height)},e.prototype.setViewport=function(t,e,i,n){var r=this.viewport;r.width===i&&r.height===n&&r.x===t&&r.y===e||(r.x=t,r.y=e,r.width=i,r.height=n,this.gl.viewport(t,e,i,n))},i.size.get=function(){return this.current?{x:0,y:0,width:this.current.width,height:this.current.height}:{x:0,y:0,width:this.renderer.width,height:this.renderer.height}},e.prototype.clear=function(t,e,i,n){var r=this.gl;r.clearColor(t,e,i,n),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT)},e.prototype.initFramebuffer=function(t){var e={framebuffer:this.gl.createFramebuffer(),stencil:null,dirtyId:0,dirtyFormat:0,dirtySize:0};return t.glFramebuffers[this.CONTEXT_UID]=e,this.managedFramebuffers.push(t),t.disposeRunner.add(this),e},e.prototype.resizeFramebuffer=function(t){var e=this.gl,i=t.glFramebuffers[this.CONTEXT_UID];i.stencil&&(e.bindRenderbuffer(e.RENDERBUFFER,i.stencil),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,t.width,t.height));for(var n=t.colorTextures,r=0;r<n.length;r++)this.renderer.texture.bind(n[r],0);t.depthTexture&&this.renderer.texture.bind(t.depthTexture,0)},e.prototype.updateFramebuffer=function(t){var e=this.gl,i=t.glFramebuffers[this.CONTEXT_UID],n=t.colorTextures.length;e.drawBuffers||(n=Math.min(n,1));for(var r=[],s=0;s<n;s++){var o=t.colorTextures[s];o.texturePart?(this.renderer.texture.bind(o.texture,0),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0+s,e.TEXTURE_CUBE_MAP_NEGATIVE_X+o.side,o.texture._glTextures[this.CONTEXT_UID].texture,0)):(this.renderer.texture.bind(o,0),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0+s,e.TEXTURE_2D,o._glTextures[this.CONTEXT_UID].texture,0)),r.push(e.COLOR_ATTACHMENT0+s)}if((r.length>1&&e.drawBuffers(r),t.depthTexture)&&this.writeDepthTexture){var a=t.depthTexture;this.renderer.texture.bind(a,0),e.framebufferTexture2D(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.TEXTURE_2D,a._glTextures[this.CONTEXT_UID].texture,0)}i.stencil||!t.stencil&&!t.depth||(i.stencil=e.createRenderbuffer(),e.bindRenderbuffer(e.RENDERBUFFER,i.stencil),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,t.width,t.height),t.depthTexture||e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,i.stencil))},e.prototype.disposeFramebuffer=function(t,e){var i=t.glFramebuffers[this.CONTEXT_UID],n=this.gl;if(i){delete t.glFramebuffers[this.CONTEXT_UID];var r=this.managedFramebuffers.indexOf(t);r>=0&&this.managedFramebuffers.splice(r,1),t.disposeRunner.remove(this),e||(n.deleteFramebuffer(i.framebuffer),i.stencil&&n.deleteRenderbuffer(i.stencil))}},e.prototype.disposeAll=function(t){var e=this.managedFramebuffers;this.managedFramebuffers=[];for(var i=0;i<e.length;i++)this.disposeFramebuffer(e[i],t)},e.prototype.forceStencil=function(){var t=this.current;if(t){var e=t.glFramebuffers[this.CONTEXT_UID];if(e&&!e.stencil){t.enableStencil();var i=t.width,n=t.height,r=this.gl,s=r.createRenderbuffer();r.bindRenderbuffer(r.RENDERBUFFER,s),r.renderbufferStorage(r.RENDERBUFFER,r.DEPTH_STENCIL,i,n),e.stencil=s,r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_STENCIL_ATTACHMENT,r.RENDERBUFFER,s)}}},e.prototype.reset=function(){this.current=this.unknownFramebuffer,this.viewport=new jL},Object.defineProperties(e.prototype,i),e}(EA),nD=function(t){this.buffer=t,this.updateID=-1,this.byteLength=-1,this.refCount=0},rD={5126:4,5123:2,5121:1},sD=function(t){function e(e){t.call(this,e),this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this.canUseUInt32ElementIndex=!1,this.boundBuffers={},this.managedGeometries={},this.managedBuffers={}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.contextChange=function(){this.disposeAll(!0);var t=this.gl=this.renderer.gl,e=this.renderer.context;if(this.CONTEXT_UID=this.renderer.CONTEXT_UID,!t.createVertexArray){var i=this.renderer.context.extensions.vertexArrayObject;IE.PREFER_ENV===jE.WEBGL_LEGACY&&(i=null),i?(t.createVertexArray=function(){return i.createVertexArrayOES()},t.bindVertexArray=function(t){return i.bindVertexArrayOES(t)},t.deleteVertexArray=function(t){return i.deleteVertexArrayOES(t)}):(this.hasVao=!1,t.createVertexArray=function(){},t.bindVertexArray=function(){},t.deleteVertexArray=function(){})}if(!t.vertexAttribDivisor){var n=t.getExtension("ANGLE_instanced_arrays");n?(t.vertexAttribDivisor=function(t,e){return n.vertexAttribDivisorANGLE(t,e)},t.drawElementsInstanced=function(t,e,i,r,s){return n.drawElementsInstancedANGLE(t,e,i,r,s)},t.drawArraysInstanced=function(t,e,i,r){return n.drawArraysInstancedANGLE(t,e,i,r)}):this.hasInstance=!1}this.canUseUInt32ElementIndex=2===e.webGLVersion||!!e.extensions.uint32ElementIndex},e.prototype.bind=function(t,e){e=e||this.renderer.shader.shader;var i=this.gl,n=t.glVertexArrayObjects[this.CONTEXT_UID];n||(this.managedGeometries[t.id]=t,t.disposeRunner.add(this),t.glVertexArrayObjects[this.CONTEXT_UID]=n={});var r=n[e.program.id]||this.initGeometryVao(t,e.program);this._activeGeometry=t,this._activeVao!==r&&(this._activeVao=r,this.hasVao?i.bindVertexArray(r):this.activateVao(t,e.program)),this.updateBuffers()},e.prototype.reset=function(){this.unbind()},e.prototype.updateBuffers=function(){for(var t=this._activeGeometry,e=this.gl,i=0;i<t.buffers.length;i++){var n=t.buffers[i],r=n._glBuffers[this.CONTEXT_UID];if(n._updateID!==r.updateID){r.updateID=n._updateID;var s=n.index?e.ELEMENT_ARRAY_BUFFER:e.ARRAY_BUFFER;if(e.bindBuffer(s,r.buffer),this._boundBuffer=r,r.byteLength>=n.data.byteLength)e.bufferSubData(s,0,n.data);else{var o=n.static?e.STATIC_DRAW:e.DYNAMIC_DRAW;r.byteLength=n.data.byteLength,e.bufferData(s,n.data,o)}}}},e.prototype.checkCompatibility=function(t,e){var i=t.attributes,n=e.attributeData;for(var r in n)if(!i[r])throw new Error('shader and geometry incompatible, geometry missing the "'+r+'" attribute')},e.prototype.getSignature=function(t,e){var i=t.attributes,n=e.attributeData,r=["g",t.id];for(var s in i)n[s]&&r.push(s);return r.join("-")},e.prototype.initGeometryVao=function(t,e){this.checkCompatibility(t,e);var i=this.gl,n=this.CONTEXT_UID,r=this.getSignature(t,e),s=t.glVertexArrayObjects[this.CONTEXT_UID],o=s[r];if(o)return s[e.id]=o,o;var a=t.buffers,h=t.attributes,u={},l={};for(var c in a)u[c]=0,l[c]=0;for(var d in h)!h[d].size&&e.attributeData[d]?h[d].size=e.attributeData[d].size:h[d].size||console.warn("PIXI Geometry attribute '"+d+"' size cannot be determined (likely the bound shader does not have the attribute)"),u[h[d].buffer]+=h[d].size*rD[h[d].type];for(var p in h){var f=h[p],m=f.size;void 0===f.stride&&(u[f.buffer]===m*rD[f.type]?f.stride=0:f.stride=u[f.buffer]),void 0===f.start&&(f.start=l[f.buffer],l[f.buffer]+=m*rD[f.type])}o=i.createVertexArray(),i.bindVertexArray(o);for(var v=0;v<a.length;v++){var g=a[v];g._glBuffers[n]||(g._glBuffers[n]=new nD(i.createBuffer()),this.managedBuffers[g.id]=g,g.disposeRunner.add(this)),g._glBuffers[n].refCount++}return this.activateVao(t,e),this._activeVao=o,s[e.id]=o,s[r]=o,o},e.prototype.disposeBuffer=function(t,e){if(this.managedBuffers[t.id]){delete this.managedBuffers[t.id];var i=t._glBuffers[this.CONTEXT_UID],n=this.gl;t.disposeRunner.remove(this),i&&(e||n.deleteBuffer(i.buffer),delete t._glBuffers[this.CONTEXT_UID])}},e.prototype.disposeGeometry=function(t,e){if(this.managedGeometries[t.id]){delete this.managedGeometries[t.id];var i=t.glVertexArrayObjects[this.CONTEXT_UID],n=this.gl,r=t.buffers;if(t.disposeRunner.remove(this),i){for(var s=0;s<r.length;s++){var o=r[s]._glBuffers[this.CONTEXT_UID];o.refCount--,0!==o.refCount||e||this.disposeBuffer(r[s],e)}if(!e)for(var a in i)if("g"===a[0]){var h=i[a];this._activeVao===h&&this.unbind(),n.deleteVertexArray(h)}delete t.glVertexArrayObjects[this.CONTEXT_UID]}}},e.prototype.disposeAll=function(t){for(var e=Object.keys(this.managedGeometries),i=0;i<e.length;i++)this.disposeGeometry(this.managedGeometries[e[i]],t);e=Object.keys(this.managedBuffers);for(var n=0;n<e.length;n++)this.disposeBuffer(this.managedBuffers[e[n]],t)},e.prototype.activateVao=function(t,e){var i=this.gl,n=this.CONTEXT_UID,r=t.buffers,s=t.attributes;t.indexBuffer&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t.indexBuffer._glBuffers[n].buffer);var o=null;for(var a in s){var h=s[a],u=r[h.buffer]._glBuffers[n];if(e.attributeData[a]){o!==u&&(i.bindBuffer(i.ARRAY_BUFFER,u.buffer),o=u);var l=e.attributeData[a].location;if(i.enableVertexAttribArray(l),i.vertexAttribPointer(l,h.size,h.type||i.FLOAT,h.normalized,h.stride,h.start),h.instance){if(!this.hasInstance)throw new Error("geometry error, GPU Instancing is not supported on this device");i.vertexAttribDivisor(l,1)}}}},e.prototype.draw=function(t,e,i,n){var r=this.gl,s=this._activeGeometry;if(s.indexBuffer){var o=s.indexBuffer.data.BYTES_PER_ELEMENT,a=2===o?r.UNSIGNED_SHORT:r.UNSIGNED_INT;2===o||4===o&&this.canUseUInt32ElementIndex?s.instanced?r.drawElementsInstanced(t,e||s.indexBuffer.data.length,a,(i||0)*o,n||1):r.drawElements(t,e||s.indexBuffer.data.length,a,(i||0)*o):console.warn("unsupported index buffer type: uint32")}else s.instanced?r.drawArraysInstanced(t,i,e||s.getSize(),n||1):r.drawArrays(t,i,e||s.getSize());return this},e.prototype.unbind=function(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null},e}(EA),oD=function(t){this.type=tL.NONE,this.autoDetect=!0,this.maskObject=t||null,this.pooled=!1,this.isMaskData=!0,this._stencilCounter=0,this._scissorCounter=0,this._scissorRect=null,this._target=null};function aD(t,e,i,n){var r=hD(t,t.VERTEX_SHADER,e),s=hD(t,t.FRAGMENT_SHADER,i),o=t.createProgram();if(t.attachShader(o,r),t.attachShader(o,s),n)for(var a in n)t.bindAttribLocation(o,n[a],a);return t.linkProgram(o),t.getProgramParameter(o,t.LINK_STATUS)||(t.getShaderParameter(r,t.COMPILE_STATUS)||(console.warn(e),console.error(t.getShaderInfoLog(r))),t.getShaderParameter(s,t.COMPILE_STATUS)||(console.warn(i),console.error(t.getShaderInfoLog(s))),console.error("Pixi.js Error: Could not initialize shader."),console.error("gl.VALIDATE_STATUS",t.getProgramParameter(o,t.VALIDATE_STATUS)),console.error("gl.getError()",t.getError()),""!==t.getProgramInfoLog(o)&&console.warn("Pixi.js Warning: gl.getProgramInfoLog()",t.getProgramInfoLog(o)),t.deleteProgram(o),o=null),t.deleteShader(r),t.deleteShader(s),o}function hD(t,e,i){var n=t.createShader(e);return t.shaderSource(n,i),t.compileShader(n),n}function uD(t,e){switch(t){case"float":return 0;case"vec2":return new Float32Array(2*e);case"vec3":return new Float32Array(3*e);case"vec4":return new Float32Array(4*e);case"int":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*e);case"ivec3":return new Int32Array(3*e);case"ivec4":return new Int32Array(4*e);case"bool":return!1;case"bvec2":return lD(2*e);case"bvec3":return lD(3*e);case"bvec4":return lD(4*e);case"mat2":return new Float32Array([1,0,0,1]);case"mat3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}function lD(t){for(var e=new Array(t),i=0;i<e.length;i++)e[i]=!1;return e}oD.prototype.reset=function(){this.pooled&&(this.maskObject=null,this.type=tL.NONE,this.autoDetect=!0),this._target=null},oD.prototype.copyCountersOrReset=function(t){t?(this._stencilCounter=t._stencilCounter,this._scissorCounter=t._scissorCounter,this._scissorRect=t._scissorRect):(this._stencilCounter=0,this._scissorCounter=0,this._scissorRect=null)};var cD,dD={},pD=dD;function fD(){if(pD===dD||pD&&pD.isContextLost()){var t,e=document.createElement("canvas");IE.PREFER_ENV>=jE.WEBGL2&&(t=e.getContext("webgl2",{})),t||((t=e.getContext("webgl",{})||e.getContext("experimental-webgl",{}))?t.getExtension("WEBGL_draw_buffers"):t=null),pD=t}return pD}function mD(t,e,i){if("precision"!==t.substring(0,9)){var n=e;return e===$E.HIGH&&i!==$E.HIGH&&(n=$E.MEDIUM),"precision "+n+" float;\n"+t}return i!==$E.HIGH&&"precision highp"===t.substring(0,15)?t.replace("precision highp","precision mediump"):t}var vD={float:1,vec2:2,vec3:3,vec4:4,int:1,ivec2:2,ivec3:3,ivec4:4,bool:1,bvec2:2,bvec3:3,bvec4:4,mat2:4,mat3:9,mat4:16,sampler2D:1};function gD(t){return vD[t]}var yD=null,_D={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube",SAMPLER_2D_ARRAY:"sampler2DArray"};function xD(t,e){if(!yD){var i=Object.keys(_D);yD={};for(var n=0;n<i.length;++n){var r=i[n];yD[t[r]]=_D[r]}}return yD[e]}var bD={float:"\n if(cv !== v)\n {\n cv.v = v;\n gl.uniform1f(location, v)\n }",vec2:"\n if(cv[0] !== v[0] || cv[1] !== v[1])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2f(location, v[0], v[1])\n }",vec3:"\n if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n\n gl.uniform3f(location, v[0], v[1], v[2])\n }",vec4:"gl.uniform4f(location, v[0], v[1], v[2], v[3])",int:"gl.uniform1i(location, v)",ivec2:"gl.uniform2i(location, v[0], v[1])",ivec3:"gl.uniform3i(location, v[0], v[1], v[2])",ivec4:"gl.uniform4i(location, v[0], v[1], v[2], v[3])",bool:"gl.uniform1i(location, v)",bvec2:"gl.uniform2i(location, v[0], v[1])",bvec3:"gl.uniform3i(location, v[0], v[1], v[2])",bvec4:"gl.uniform4i(location, v[0], v[1], v[2], v[3])",mat2:"gl.uniformMatrix2fv(location, false, v)",mat3:"gl.uniformMatrix3fv(location, false, v)",mat4:"gl.uniformMatrix4fv(location, false, v)",sampler2D:"gl.uniform1i(location, v)",samplerCube:"gl.uniform1i(location, v)",sampler2DArray:"gl.uniform1i(location, v)"},wD={float:"gl.uniform1fv(location, v)",vec2:"gl.uniform2fv(location, v)",vec3:"gl.uniform3fv(location, v)",vec4:"gl.uniform4fv(location, v)",mat4:"gl.uniformMatrix4fv(location, false, v)",mat3:"gl.uniformMatrix3fv(location, false, v)",mat2:"gl.uniformMatrix2fv(location, false, v)",int:"gl.uniform1iv(location, v)",ivec2:"gl.uniform2iv(location, v)",ivec3:"gl.uniform3iv(location, v)",ivec4:"gl.uniform4iv(location, v)",bool:"gl.uniform1iv(location, v)",bvec2:"gl.uniform2iv(location, v)",bvec3:"gl.uniform3iv(location, v)",bvec4:"gl.uniform4iv(location, v)",sampler2D:"gl.uniform1iv(location, v)",samplerCube:"gl.uniform1iv(location, v)",sampler2DArray:"gl.uniform1iv(location, v)"};var TD,MD=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join("\n");function SD(t){for(var e="",i=0;i<t;++i)i>0&&(e+="\nelse "),i<t-1&&(e+="if(test == "+i+".0){}");return e}var ED=0,LD={},AD=function t(e,i,n){void 0===n&&(n="pixi-shader"),this.id=ED++,this.vertexSrc=e||t.defaultVertexSrc,this.fragmentSrc=i||t.defaultFragmentSrc,this.vertexSrc=this.vertexSrc.trim(),this.fragmentSrc=this.fragmentSrc.trim(),"#version"!==this.vertexSrc.substring(0,8)&&(n=n.replace(/\s+/g,"-"),LD[n]?(LD[n]++,n+="-"+LD[n]):LD[n]=1,this.vertexSrc="#define SHADER_NAME "+n+"\n"+this.vertexSrc,this.fragmentSrc="#define SHADER_NAME "+n+"\n"+this.fragmentSrc,this.vertexSrc=mD(this.vertexSrc,IE.PRECISION_VERTEX,$E.HIGH),this.fragmentSrc=mD(this.fragmentSrc,IE.PRECISION_FRAGMENT,function(){if(!cD){cD=$E.MEDIUM;var t=fD();if(t&&t.getShaderPrecisionFormat){var e=t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT);cD=e.precision?$E.HIGH:$E.MEDIUM}}return cD}())),this.extractData(this.vertexSrc,this.fragmentSrc),this.glPrograms={},this.syncUniforms=null},DD={defaultVertexSrc:{configurable:!0},defaultFragmentSrc:{configurable:!0}};AD.prototype.extractData=function(t,e){var i=fD();if(i){var n=aD(i,t,e);this.attributeData=this.getAttributeData(n,i),this.uniformData=this.getUniformData(n,i),i.deleteProgram(n)}else this.uniformData={},this.attributeData={}},AD.prototype.getAttributeData=function(t,e){for(var i={},n=[],r=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES),s=0;s<r;s++){var o=e.getActiveAttrib(t,s),a=xD(e,o.type),h={type:a,name:o.name,size:gD(a),location:0};i[o.name]=h,n.push(h)}n.sort((function(t,e){return t.name>e.name?1:-1}));for(var u=0;u<n.length;u++)n[u].location=u;return i},AD.prototype.getUniformData=function(t,e){for(var i={},n=e.getProgramParameter(t,e.ACTIVE_UNIFORMS),r=0;r<n;r++){var s=e.getActiveUniform(t,r),o=s.name.replace(/\[.*?\]/,""),a=s.name.match(/\[.*?\]/,""),h=xD(e,s.type);i[o]={type:h,size:s.size,isArray:a,value:uD(h,s.size)}}return i},DD.defaultVertexSrc.get=function(){return"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}\n"},DD.defaultFragmentSrc.get=function(){return"varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n gl_FragColor *= texture2D(uSampler, vTextureCoord);\n}"},AD.from=function(t,e,i){var n=t+e,r=_L[n];return r||(_L[n]=r=new AD(t,e,i)),r},Object.defineProperties(AD,DD);var PD=function(t,e){for(var i in this.program=t,this.uniformGroup=e?e instanceof JA?e:new JA(e):new JA({}),t.uniformData)this.uniformGroup.uniforms[i]instanceof Array&&(this.uniformGroup.uniforms[i]=new Float32Array(this.uniformGroup.uniforms[i]))},CD={uniforms:{configurable:!0}};PD.prototype.checkUniformExists=function(t,e){if(e.uniforms[t])return!0;for(var i in e.uniforms){var n=e.uniforms[i];if(n.group&&this.checkUniformExists(t,n))return!0}return!1},PD.prototype.destroy=function(){this.uniformGroup=null},CD.uniforms.get=function(){return this.uniformGroup.uniforms},PD.from=function(t,e,i){var n=AD.from(t,e);return new PD(n,i)},Object.defineProperties(PD.prototype,CD);var OD=function(){this.data=0,this.blendMode=zE.NORMAL,this.polygonOffset=0,this.blend=!0},kD={blend:{configurable:!0},offsets:{configurable:!0},culling:{configurable:!0},depthTest:{configurable:!0},clockwiseFrontFace:{configurable:!0},blendMode:{configurable:!0},polygonOffset:{configurable:!0}};kD.blend.get=function(){return!!(1&this.data)},kD.blend.set=function(t){!!(1&this.data)!==t&&(this.data^=1)},kD.offsets.get=function(){return!!(2&this.data)},kD.offsets.set=function(t){!!(2&this.data)!==t&&(this.data^=2)},kD.culling.get=function(){return!!(4&this.data)},kD.culling.set=function(t){!!(4&this.data)!==t&&(this.data^=4)},kD.depthTest.get=function(){return!!(8&this.data)},kD.depthTest.set=function(t){!!(8&this.data)!==t&&(this.data^=8)},kD.clockwiseFrontFace.get=function(){return!!(16&this.data)},kD.clockwiseFrontFace.set=function(t){!!(16&this.data)!==t&&(this.data^=16)},kD.blendMode.get=function(){return this._blendMode},kD.blendMode.set=function(t){this.blend=t!==zE.NONE,this._blendMode=t},kD.polygonOffset.get=function(){return this._polygonOffset},kD.polygonOffset.set=function(t){this.offsets=!!t,this._polygonOffset=t},OD.for2d=function(){var t=new OD;return t.depthTest=!1,t.blend=!0,t},Object.defineProperties(OD.prototype,kD);var RD=function(t){function e(i,n,r){var s=AD.from(i||e.defaultVertexSrc,n||e.defaultFragmentSrc);t.call(this,s,r),this.padding=0,this.resolution=IE.FILTER_RESOLUTION,this.enabled=!0,this.autoFit=!0,this.legacy=!!this.program.attributeData.aTextureCoord,this.state=new OD}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={blendMode:{configurable:!0}},n={defaultVertexSrc:{configurable:!0},defaultFragmentSrc:{configurable:!0}};return e.prototype.apply=function(t,e,i,n,r){t.applyFilter(this,e,i,n,r)},i.blendMode.get=function(){return this.state.blendMode},i.blendMode.set=function(t){this.state.blendMode=t},n.defaultVertexSrc.get=function(){return"attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n gl_Position = filterVertexPosition();\n vTextureCoord = filterTextureCoord();\n}\n"},n.defaultFragmentSrc.get=function(){return"varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n}\n"},Object.defineProperties(e.prototype,i),Object.defineProperties(e,n),e}(PD);RD.SOURCE_KEY_MAP={};var ID=new CL,YD=function(t,e){this._texture=t,this.mapCoord=new CL,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._updateID=-1,this.clampOffset=0,this.clampMargin=void 0===e?.5:e,this.isSimple=!1},FD={texture:{configurable:!0}};FD.texture.get=function(){return this._texture},FD.texture.set=function(t){this._texture=t,this._updateID=-1},YD.prototype.multiplyUvs=function(t,e){void 0===e&&(e=t);for(var i=this.mapCoord,n=0;n<t.length;n+=2){var r=t[n],s=t[n+1];e[n]=r*i.a+s*i.c+i.tx,e[n+1]=r*i.b+s*i.d+i.ty}return e},YD.prototype.update=function(t){var e=this._texture;if(!e||!e.valid)return!1;if(!t&&this._updateID===e._updateID)return!1;this._updateID=e._updateID;var i=e._uvs;this.mapCoord.set(i.x1-i.x0,i.y1-i.y0,i.x3-i.x0,i.y3-i.y0,i.x0,i.y0);var n=e.orig,r=e.trim;r&&(ID.set(n.width/r.width,0,0,n.height/r.height,-r.x/r.width,-r.y/r.height),this.mapCoord.append(ID));var s=e.baseTexture,o=this.uClampFrame,a=this.clampMargin/s.resolution,h=this.clampOffset;return o[0]=(e._frame.x+a+h)/s.width,o[1]=(e._frame.y+a+h)/s.height,o[2]=(e._frame.x+e._frame.width-a+h)/s.width,o[3]=(e._frame.y+e._frame.height-a+h)/s.height,this.uClampOffset[0]=h/s.realWidth,this.uClampOffset[1]=h/s.realHeight,this.isSimple=e._frame.width===s.width&&e._frame.height===s.height&&0===e.rotate,!0},Object.defineProperties(YD.prototype,FD);var ND=function(t){function e(e){var i=new CL;t.call(this,"attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 otherMatrix;\n\nvarying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0) ).xy;\n}\n","varying vec2 vMaskCoord;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform sampler2D mask;\nuniform float alpha;\nuniform float npmAlpha;\nuniform vec4 maskClamp;\n\nvoid main(void)\n{\n float clip = step(3.5,\n step(maskClamp.x, vMaskCoord.x) +\n step(maskClamp.y, vMaskCoord.y) +\n step(vMaskCoord.x, maskClamp.z) +\n step(vMaskCoord.y, maskClamp.w));\n\n vec4 original = texture2D(uSampler, vTextureCoord);\n vec4 masky = texture2D(mask, vMaskCoord);\n float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);\n\n original *= (alphaMul * masky.r * alpha * clip);\n\n gl_FragColor = original;\n}\n"),e.renderable=!1,this.maskSprite=e,this.maskMatrix=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.apply=function(t,e,i,n){var r=this.maskSprite,s=this.maskSprite.texture;s.valid&&(s.transform||(s.transform=new YD(s,0)),s.transform.update(),this.uniforms.npmAlpha=s.baseTexture.alphaMode?0:1,this.uniforms.mask=s,this.uniforms.otherMatrix=t.calculateSpriteMatrix(this.maskMatrix,r).prepend(s.transform.mapCoord),this.uniforms.alpha=r.worldAlpha,this.uniforms.maskClamp=s.transform.uClampFrame,t.applyFilter(this,e,i,n))},e}(RD),BD=function(t){function e(e){t.call(this,e),this.scissorRenderTarget=null,this.enableScissor=!1,this.alphaMaskPool=[],this.maskDataPool=[],this.maskStack=[],this.alphaMaskIndex=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setMaskStack=function(t){this.maskStack=t,this.renderer.scissor.setMaskStack(t),this.renderer.stencil.setMaskStack(t)},e.prototype.push=function(t,e){if(!e.isMaskData){var i=this.maskDataPool.pop()||new oD;i.pooled=!0,i.maskObject=e,e=i}switch(e.autoDetect&&this.detect(e),e.copyCountersOrReset(this.maskStack[this.maskStack.length-1]),e._target=t,e.type){case tL.SCISSOR:this.maskStack.push(e),this.renderer.scissor.push(e);break;case tL.STENCIL:this.maskStack.push(e),this.renderer.stencil.push(e);break;case tL.SPRITE:e.copyCountersOrReset(null),this.pushSpriteMask(e),this.maskStack.push(e)}},e.prototype.pop=function(t){var e=this.maskStack.pop();if(e&&e._target===t){switch(e.type){case tL.SCISSOR:this.renderer.scissor.pop();break;case tL.STENCIL:this.renderer.stencil.pop(e.maskObject);break;case tL.SPRITE:this.popSpriteMask()}e.reset(),e.pooled&&this.maskDataPool.push(e)}},e.prototype.detect=function(t){var e=t.maskObject;if(e.isSprite)t.type=tL.SPRITE;else if(t.type=tL.STENCIL,this.enableScissor&&e.isFastRect&&e.isFastRect()){var i=e.worldTransform,n=Math.atan2(i.b,i.a),r=Math.atan2(i.d,i.c);n=Math.round(n*(180/Math.PI)*100),r=((r=Math.round(r*(180/Math.PI)*100)-n)%18e3+18e3)%18e3,0===(n=(n%9e3+9e3)%9e3)&&9e3===r&&(t.type=tL.SCISSOR)}},e.prototype.pushSpriteMask=function(t){var e=t.maskObject,i=t._target,n=this.alphaMaskPool[this.alphaMaskIndex];n||(n=this.alphaMaskPool[this.alphaMaskIndex]=[new ND(e)]),n[0].resolution=this.renderer.resolution,n[0].maskSprite=e;var r=i.filterArea;i.filterArea=e.getBounds(!0),this.renderer.filter.push(i,n),i.filterArea=r,this.alphaMaskIndex++},e.prototype.popSpriteMask=function(){this.renderer.filter.pop(),this.alphaMaskIndex--},e}(EA),UD=function(t){function e(e){t.call(this,e),this.maskStack=[],this.glConst=0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getStackLength=function(){return this.maskStack.length},e.prototype.setMaskStack=function(t){var e=this.renderer.gl,i=this.getStackLength();this.maskStack=t;var n=this.getStackLength();n!==i&&(0===n?e.disable(this.glConst):(e.enable(this.glConst),this._useCurrent()))},e.prototype._useCurrent=function(){},e.prototype.destroy=function(){t.prototype.destroy.call(this,this),this.maskStack=null},e}(EA),jD=function(t){function e(e){t.call(this,e),this.glConst=WebGLRenderingContext.SCISSOR_TEST}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getStackLength=function(){var t=this.maskStack[this.maskStack.length-1];return t?t._scissorCounter:0},e.prototype.push=function(t){var e=t.maskObject;e.renderable=!0;var i=t._scissorRect,n=e.getBounds(!0),r=this.renderer.gl;e.renderable=!1,i?n.fit(i):r.enable(r.SCISSOR_TEST),t._scissorCounter++,t._scissorRect=n,this._useCurrent()},e.prototype.pop=function(){var t=this.renderer.gl;this.getStackLength()>0?this._useCurrent():t.disable(t.SCISSOR_TEST)},e.prototype._useCurrent=function(){var t=this.maskStack[this.maskStack.length-1]._scissorRect,e=this.renderer.renderTexture.current,i=this.renderer.projection,n=i.transform,r=i.sourceFrame,s=i.destinationFrame,o=e?e.resolution:this.renderer.resolution,a=(t.x-r.x)*o+s.x,h=(t.y-r.y)*o+s.y,u=t.width*o,l=t.height*o;n&&(a+=n.tx*o,h+=n.ty*o),e||(h=this.renderer.height-l-h),this.renderer.gl.scissor(a,h,u,l)},e}(UD),HD=function(t){function e(e){t.call(this,e),this.glConst=WebGLRenderingContext.STENCIL_TEST}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getStackLength=function(){var t=this.maskStack[this.maskStack.length-1];return t?t._stencilCounter:0},e.prototype.push=function(t){var e=t.maskObject,i=this.renderer.gl,n=t._stencilCounter;0===n&&(this.renderer.framebuffer.forceStencil(),i.enable(i.STENCIL_TEST)),t._stencilCounter++,i.colorMask(!1,!1,!1,!1),i.stencilFunc(i.EQUAL,n,this._getBitwiseMask()),i.stencilOp(i.KEEP,i.KEEP,i.INCR),e.renderable=!0,e.render(this.renderer),this.renderer.batch.flush(),e.renderable=!1,this._useCurrent()},e.prototype.pop=function(t){var e=this.renderer.gl;0===this.getStackLength()?(e.disable(e.STENCIL_TEST),e.clear(e.STENCIL_BUFFER_BIT),e.clearStencil(0)):(e.colorMask(!1,!1,!1,!1),e.stencilOp(e.KEEP,e.KEEP,e.DECR),t.renderable=!0,t.render(this.renderer),this.renderer.batch.flush(),t.renderable=!1,this._useCurrent())},e.prototype._useCurrent=function(){var t=this.renderer.gl;t.colorMask(!0,!0,!0,!0),t.stencilFunc(t.EQUAL,this.getStackLength(),this._getBitwiseMask()),t.stencilOp(t.KEEP,t.KEEP,t.KEEP)},e.prototype._getBitwiseMask=function(){return(1<<this.getStackLength())-1},e}(UD),zD=function(t){function e(e){t.call(this,e),this.destinationFrame=null,this.sourceFrame=null,this.defaultFrame=null,this.projectionMatrix=new CL,this.transform=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.update=function(t,e,i,n){this.destinationFrame=t||this.destinationFrame||this.defaultFrame,this.sourceFrame=e||this.sourceFrame||t,this.calculateProjection(this.destinationFrame,this.sourceFrame,i,n),this.transform&&this.projectionMatrix.append(this.transform);var r=this.renderer;r.globalUniforms.uniforms.projectionMatrix=this.projectionMatrix,r.globalUniforms.update(),r.shader.shader&&r.shader.syncUniformGroup(r.shader.shader.uniforms.globals)},e.prototype.calculateProjection=function(t,e,i,n){var r=this.projectionMatrix;n?(r.a=1/t.width*2*i,r.d=-1/t.height*2*i,r.tx=-1-e.x*r.a,r.ty=1-e.y*r.d):(r.a=1/t.width*2*i,r.d=1/t.height*2*i,r.tx=-1-e.x*r.a,r.ty=-1-e.y*r.d)},e.prototype.setTransform=function(){},e}(EA),WD=new jL,GD=function(t){function e(e){t.call(this,e),this.clearColor=e._backgroundColorRgba,this.defaultMaskStack=[],this.current=null,this.sourceFrame=new jL,this.destinationFrame=new jL}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(t,e,i){void 0===t&&(t=null),this.current=t;var n,r=this.renderer;if(t){var s=t.baseTexture;n=s.resolution,i||(WD.width=s.realWidth,WD.height=s.realHeight,i=WD),e||(e=i),this.renderer.framebuffer.bind(s.framebuffer,i),this.renderer.projection.update(i,e,n,!1),this.renderer.mask.setMaskStack(s.maskStack)}else n=this.renderer.resolution,i||(WD.width=r.width,WD.height=r.height,i=WD),e||(e=i),r.framebuffer.bind(null,i),this.renderer.projection.update(i,e,n,!0),this.renderer.mask.setMaskStack(this.defaultMaskStack);this.sourceFrame.copyFrom(e),this.destinationFrame.x=i.x/n,this.destinationFrame.y=i.y/n,this.destinationFrame.width=i.width/n,this.destinationFrame.height=i.height/n,e===i&&this.sourceFrame.copyFrom(this.destinationFrame)},e.prototype.clear=function(t){t=this.current?t||this.current.baseTexture.clearColor:t||this.clearColor,this.renderer.framebuffer.clear(t[0],t[1],t[2],t[3])},e.prototype.resize=function(){this.bind(null)},e.prototype.reset=function(){this.bind(null)},e}(EA),VD=function(t,e){this.program=t,this.uniformData=e,this.uniformGroups={}};VD.prototype.destroy=function(){this.uniformData=null,this.uniformGroups=null,this.program=null};var XD=0,qD={textureCount:0},JD=function(t){function e(e){t.call(this,e),this.systemCheck(),this.gl=null,this.shader=null,this.program=null,this.cache={},this.id=XD++}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.systemCheck=function(){if(!function(){if("boolean"==typeof TD)return TD;try{var t=new Function("param1","param2","param3","return param1[param2] === param3;");TD=!0===t({a:"b"},"a","b")}catch(t){TD=!1}return TD}())throw new Error("Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.")},e.prototype.contextChange=function(t){this.gl=t,this.reset()},e.prototype.bind=function(t,e){t.uniforms.globals=this.renderer.globalUniforms;var i=t.program,n=i.glPrograms[this.renderer.CONTEXT_UID]||this.generateShader(t);return this.shader=t,this.program!==i&&(this.program=i,this.gl.useProgram(n.program)),e||(qD.textureCount=0,this.syncUniformGroup(t.uniformGroup,qD)),n},e.prototype.setUniforms=function(t){var e=this.shader.program,i=e.glPrograms[this.renderer.CONTEXT_UID];e.syncUniforms(i.uniformData,t,this.renderer)},e.prototype.syncUniformGroup=function(t,e){var i=this.getglProgram();t.static&&t.dirtyId===i.uniformGroups[t.id]||(i.uniformGroups[t.id]=t.dirtyId,this.syncUniforms(t,i,e))},e.prototype.syncUniforms=function(t,e,i){(t.syncUniforms[this.shader.program.id]||this.createSyncGroups(t))(e.uniformData,t.uniforms,this.renderer,i)},e.prototype.createSyncGroups=function(t){var e=this.getSignature(t,this.shader.program.uniformData);return this.cache[e]||(this.cache[e]=function(t,e){var i="var v = null;\n var cv = null\n var t = 0;\n var gl = renderer.gl\n ";for(var n in t.uniforms){var r=e[n];r?"float"===r.type&&1===r.size?i+="\n if(uv."+n+" !== ud."+n+".value)\n {\n ud."+n+".value = uv."+n+"\n gl.uniform1f(ud."+n+".location, uv."+n+")\n }\n":"sampler2D"!==r.type&&"samplerCube"!==r.type&&"sampler2DArray"!==r.type||1!==r.size||r.isArray?"mat3"===r.type&&1===r.size?void 0!==t.uniforms[n].a?i+="\n gl.uniformMatrix3fv(ud."+n+".location, false, uv."+n+".toArray(true));\n \n":i+="\n gl.uniformMatrix3fv(ud."+n+".location, false, uv."+n+");\n \n":"vec2"===r.type&&1===r.size?void 0!==t.uniforms[n].x?i+="\n cv = ud."+n+".value;\n v = uv."+n+";\n\n if(cv[0] !== v.x || cv[1] !== v.y)\n {\n cv[0] = v.x;\n cv[1] = v.y;\n gl.uniform2f(ud."+n+".location, v.x, v.y);\n }\n":i+="\n cv = ud."+n+".value;\n v = uv."+n+";\n\n if(cv[0] !== v[0] || cv[1] !== v[1])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2f(ud."+n+".location, v[0], v[1]);\n }\n \n":"vec4"===r.type&&1===r.size?void 0!==t.uniforms[n].width?i+="\n cv = ud."+n+".value;\n v = uv."+n+";\n\n if(cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height)\n {\n cv[0] = v.x;\n cv[1] = v.y;\n cv[2] = v.width;\n cv[3] = v.height;\n gl.uniform4f(ud."+n+".location, v.x, v.y, v.width, v.height)\n }\n":i+="\n cv = ud."+n+".value;\n v = uv."+n+";\n\n if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])\n {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n\n gl.uniform4f(ud."+n+".location, v[0], v[1], v[2], v[3])\n }\n \n":i+="\n cv = ud."+n+".value;\n v = uv."+n+";\n "+(1===r.size?bD:wD)[r.type].replace("location","ud."+n+".location")+";\n":i+="\n\n t = syncData.textureCount++;\n\n renderer.texture.bind(uv."+n+", t);\n \n if(ud."+n+".value !== t)\n {\n ud."+n+".value = t;\n gl.uniform1i(ud."+n+".location, t);\n; // eslint-disable-line max-len\n }\n":t.uniforms[n].group&&(i+="\n renderer.shader.syncUniformGroup(uv."+n+", syncData);\n ")}return new Function("ud","uv","renderer","syncData",i)}(t,this.shader.program.uniformData)),t.syncUniforms[this.shader.program.id]=this.cache[e],t.syncUniforms[this.shader.program.id]},e.prototype.getSignature=function(t,e){var i=t.uniforms,n=[];for(var r in i)n.push(r),e[r]&&n.push(e[r].type);return n.join("-")},e.prototype.getglProgram=function(){return this.shader?this.shader.program.glPrograms[this.renderer.CONTEXT_UID]:null},e.prototype.generateShader=function(t){var e=this.gl,i=t.program,n={};for(var r in i.attributeData)n[r]=i.attributeData[r].location;var s=aD(e,i.vertexSrc,i.fragmentSrc,n),o={};for(var a in i.uniformData){var h=i.uniformData[a];o[a]={location:e.getUniformLocation(s,a),value:uD(h.type,h.size)}}var u=new VD(s,o);return i.glPrograms[this.renderer.CONTEXT_UID]=u,u},e.prototype.reset=function(){this.program=null,this.shader=null},e.prototype.destroy=function(){this.destroyed=!0},e}(EA);var ZD=function(t){function e(e){t.call(this,e),this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode=zE.NONE,this._blendEq=!1,this.map=[],this.map[0]=this.setBlend,this.map[1]=this.setOffset,this.map[2]=this.setCullFace,this.map[3]=this.setDepthTest,this.map[4]=this.setFrontFace,this.checks=[],this.defaultState=new OD,this.defaultState.blend=!0,this.defaultState.depth=!0}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.contextChange=function(t){this.gl=t,this.blendModes=function(t,e){return void 0===e&&(e=[]),e[zE.NORMAL]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.ADD]=[t.ONE,t.ONE],e[zE.MULTIPLY]=[t.DST_COLOR,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.SCREEN]=[t.ONE,t.ONE_MINUS_SRC_COLOR,t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.OVERLAY]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.DARKEN]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.LIGHTEN]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.COLOR_DODGE]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.COLOR_BURN]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.HARD_LIGHT]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.SOFT_LIGHT]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.DIFFERENCE]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.EXCLUSION]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.HUE]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.SATURATION]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.COLOR]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.LUMINOSITY]=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.NONE]=[0,0],e[zE.NORMAL_NPM]=[t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.ADD_NPM]=[t.SRC_ALPHA,t.ONE,t.ONE,t.ONE],e[zE.SCREEN_NPM]=[t.SRC_ALPHA,t.ONE_MINUS_SRC_COLOR,t.ONE,t.ONE_MINUS_SRC_ALPHA],e[zE.SRC_IN]=[t.DST_ALPHA,t.ZERO],e[zE.SRC_OUT]=[t.ONE_MINUS_DST_ALPHA,t.ZERO],e[zE.SRC_ATOP]=[t.DST_ALPHA,t.ONE_MINUS_SRC_ALPHA],e[zE.DST_OVER]=[t.ONE_MINUS_DST_ALPHA,t.ONE],e[zE.DST_IN]=[t.ZERO,t.SRC_ALPHA],e[zE.DST_OUT]=[t.ZERO,t.ONE_MINUS_SRC_ALPHA],e[zE.DST_ATOP]=[t.ONE_MINUS_DST_ALPHA,t.SRC_ALPHA],e[zE.XOR]=[t.ONE_MINUS_DST_ALPHA,t.ONE_MINUS_SRC_ALPHA],e[zE.SUBTRACT]=[t.ONE,t.ONE,t.ONE,t.ONE,t.FUNC_REVERSE_SUBTRACT,t.FUNC_ADD],e}(t),this.set(this.defaultState),this.reset()},e.prototype.set=function(t){if(t=t||this.defaultState,this.stateId!==t.data){for(var e=this.stateId^t.data,i=0;e;)1&e&&this.map[i].call(this,!!(t.data&1<<i)),e>>=1,i++;this.stateId=t.data}for(var n=0;n<this.checks.length;n++)this.checks[n](this,t)},e.prototype.forceState=function(t){t=t||this.defaultState;for(var e=0;e<this.map.length;e++)this.map[e].call(this,!!(t.data&1<<e));for(var i=0;i<this.checks.length;i++)this.checks[i](this,t);this.stateId=t.data},e.prototype.setBlend=function(t){this.updateCheck(e.checkBlendMode,t),this.gl[t?"enable":"disable"](this.gl.BLEND)},e.prototype.setOffset=function(t){this.updateCheck(e.checkPolygonOffset,t),this.gl[t?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)},e.prototype.setDepthTest=function(t){this.gl[t?"enable":"disable"](this.gl.DEPTH_TEST)},e.prototype.setCullFace=function(t){this.gl[t?"enable":"disable"](this.gl.CULL_FACE)},e.prototype.setFrontFace=function(t){this.gl.frontFace(this.gl[t?"CW":"CCW"])},e.prototype.setBlendMode=function(t){if(t!==this.blendMode){this.blendMode=t;var e=this.blendModes[t],i=this.gl;2===e.length?i.blendFunc(e[0],e[1]):i.blendFuncSeparate(e[0],e[1],e[2],e[3]),6===e.length?(this._blendEq=!0,i.blendEquationSeparate(e[4],e[5])):this._blendEq&&(this._blendEq=!1,i.blendEquationSeparate(i.FUNC_ADD,i.FUNC_ADD))}},e.prototype.setPolygonOffset=function(t,e){this.gl.polygonOffset(t,e)},e.prototype.reset=function(){this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(0),this._blendEq=!0,this.blendMode=-1,this.setBlendMode(0)},e.prototype.updateCheck=function(t,e){var i=this.checks.indexOf(t);e&&-1===i?this.checks.push(t):e||-1===i||this.checks.splice(i,1)},e.checkBlendMode=function(t,e){t.setBlendMode(e.blendMode)},e.checkPolygonOffset=function(t,e){t.setPolygonOffset(e.polygonOffset,0)},e}(EA),KD=function(t){function e(e){t.call(this,e),this.count=0,this.checkCount=0,this.maxIdle=IE.GC_MAX_IDLE,this.checkCountMax=IE.GC_MAX_CHECK_COUNT,this.mode=IE.GC_MODE}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.postrender=function(){this.renderer.renderingToScreen&&(this.count++,this.mode!==QE.MANUAL&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))},e.prototype.run=function(){for(var t=this.renderer.texture,e=t.managedTextures,i=!1,n=0;n<e.length;n++){var r=e[n];!r.framebuffer&&this.count-r.touched>this.maxIdle&&(t.destroyTexture(r,!0),e[n]=null,i=!0)}if(i){for(var s=0,o=0;o<e.length;o++)null!==e[o]&&(e[s++]=e[o]);e.length=s}},e.prototype.unload=function(t){var e=this.renderer.textureSystem;t._texture&&t._texture._glRenderTargets&&e.destroyTexture(t._texture);for(var i=t.children.length-1;i>=0;i--)this.unload(t.children[i])},e}(EA),QD=function(t){this.texture=t,this.width=-1,this.height=-1,this.dirtyId=-1,this.dirtyStyleId=-1,this.mipmap=!1,this.wrapMode=33071,this.type=6408,this.internalFormat=5121},$D=function(t){function e(e){t.call(this,e),this.boundTextures=[],this.currentLocation=-1,this.managedTextures=[],this._unknownBoundTextures=!1,this.unknownTexture=new _A}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.contextChange=function(){var t=this.gl=this.renderer.gl;this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.webGLVersion=this.renderer.context.webGLVersion;var e=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS);this.boundTextures.length=e;for(var i=0;i<e;i++)this.boundTextures[i]=null;this.emptyTextures={};var n=new QD(t.createTexture());t.bindTexture(t.TEXTURE_2D,n.texture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,new Uint8Array(4)),this.emptyTextures[t.TEXTURE_2D]=n,this.emptyTextures[t.TEXTURE_CUBE_MAP]=new QD(t.createTexture()),t.bindTexture(t.TEXTURE_CUBE_MAP,this.emptyTextures[t.TEXTURE_CUBE_MAP].texture);for(var r=0;r<6;r++)t.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+r,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,null);t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_MIN_FILTER,t.LINEAR);for(var s=0;s<this.boundTextures.length;s++)this.bind(null,s)},e.prototype.bind=function(t,e){void 0===e&&(e=0);var i=this.gl;if(t){if((t=t.baseTexture||t).valid){t.touched=this.renderer.textureGC.count;var n=t._glTextures[this.CONTEXT_UID]||this.initTexture(t);this.boundTextures[e]!==t&&(this.currentLocation!==e&&(this.currentLocation=e,i.activeTexture(i.TEXTURE0+e)),i.bindTexture(t.target,n.texture)),n.dirtyId!==t.dirtyId&&(this.currentLocation!==e&&(this.currentLocation=e,i.activeTexture(i.TEXTURE0+e)),this.updateTexture(t)),this.boundTextures[e]=t}}else this.currentLocation!==e&&(this.currentLocation=e,i.activeTexture(i.TEXTURE0+e)),i.bindTexture(i.TEXTURE_2D,this.emptyTextures[i.TEXTURE_2D].texture),this.boundTextures[e]=null},e.prototype.reset=function(){this._unknownBoundTextures=!0,this.currentLocation=-1;for(var t=0;t<this.boundTextures.length;t++)this.boundTextures[t]=this.unknownTexture},e.prototype.unbind=function(t){var e=this.gl,i=this.boundTextures;if(this._unknownBoundTextures){this._unknownBoundTextures=!1;for(var n=0;n<i.length;n++)i[n]===this.unknownTexture&&this.bind(null,n)}for(var r=0;r<i.length;r++)i[r]===t&&(this.currentLocation!==r&&(e.activeTexture(e.TEXTURE0+r),this.currentLocation=r),e.bindTexture(e.TEXTURE_2D,this.emptyTextures[t.target].texture),i[r]=null)},e.prototype.initTexture=function(t){var e=new QD(this.gl.createTexture());return e.dirtyId=-1,t._glTextures[this.CONTEXT_UID]=e,this.managedTextures.push(t),t.on("dispose",this.destroyTexture,this),e},e.prototype.initTextureType=function(t,e){if(e.internalFormat=t.format,e.type=t.type,2===this.webGLVersion){var i=this.renderer.gl;t.type===i.FLOAT&&t.format===i.RGBA&&(e.internalFormat=i.RGBA32F),t.type===XE.HALF_FLOAT&&(e.type=i.HALF_FLOAT),e.type===i.HALF_FLOAT&&t.format===i.RGBA&&(e.internalFormat=i.RGBA16F)}},e.prototype.updateTexture=function(t){var e=t._glTextures[this.CONTEXT_UID];if(e){var i=this.renderer;if(this.initTextureType(t,e),t.resource&&t.resource.upload(i,t,e));else{var n=t.realWidth,r=t.realHeight,s=i.gl;(e.width!==n||e.height!==r||e.dirtyId<0)&&(e.width=n,e.height=r,s.texImage2D(t.target,0,e.internalFormat,n,r,0,t.format,e.type,null))}t.dirtyStyleId!==e.dirtyStyleId&&this.updateTextureStyle(t),e.dirtyId=t.dirtyId}},e.prototype.destroyTexture=function(t,e){var i=this.gl;if((t=t.baseTexture||t)._glTextures[this.CONTEXT_UID]&&(this.unbind(t),i.deleteTexture(t._glTextures[this.CONTEXT_UID].texture),t.off("dispose",this.destroyTexture,this),delete t._glTextures[this.CONTEXT_UID],!e)){var n=this.managedTextures.indexOf(t);-1!==n&&pL(this.managedTextures,n,1)}},e.prototype.updateTextureStyle=function(t){var e=t._glTextures[this.CONTEXT_UID];e&&(t.mipmap!==ZE.POW2&&2===this.webGLVersion||t.isPowerOfTwo?e.mipmap=t.mipmap>=1:e.mipmap=0,2===this.webGLVersion||t.isPowerOfTwo?e.wrapMode=t.wrapMode:e.wrapMode=JE.CLAMP,t.resource&&t.resource.style(this.renderer,t,e)||this.setStyle(t,e),e.dirtyStyleId=t.dirtyStyleId)},e.prototype.setStyle=function(t,e){var i=this.gl;if(e.mipmap&&i.generateMipmap(t.target),i.texParameteri(t.target,i.TEXTURE_WRAP_S,e.wrapMode),i.texParameteri(t.target,i.TEXTURE_WRAP_T,e.wrapMode),e.mipmap){i.texParameteri(t.target,i.TEXTURE_MIN_FILTER,t.scaleMode===qE.LINEAR?i.LINEAR_MIPMAP_LINEAR:i.NEAREST_MIPMAP_NEAREST);var n=this.renderer.context.extensions.anisotropicFiltering;if(n&&t.anisotropicLevel>0&&t.scaleMode===qE.LINEAR){var r=Math.min(t.anisotropicLevel,i.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT));i.texParameterf(t.target,n.TEXTURE_MAX_ANISOTROPY_EXT,r)}}else i.texParameteri(t.target,i.TEXTURE_MIN_FILTER,t.scaleMode===qE.LINEAR?i.LINEAR:i.NEAREST);i.texParameteri(t.target,i.TEXTURE_MAG_FILTER,t.scaleMode===qE.LINEAR?i.LINEAR:i.NEAREST)},e}(EA),tP=new CL,eP=function(t){function e(i){void 0===i&&(i={}),t.call(this,"WebGL",i),i=this.options,this.type=HE.WEBGL,this.gl=null,this.CONTEXT_UID=0,this.runners={destroy:new lA("destroy"),contextChange:new lA("contextChange",1),reset:new lA("reset"),update:new lA("update"),postrender:new lA("postrender"),prerender:new lA("prerender"),resize:new lA("resize",2)},this.globalUniforms=new JA({projectionMatrix:new CL},!0),this.addSystem(BD,"mask").addSystem(eD,"context").addSystem(ZD,"state").addSystem(JD,"shader").addSystem($D,"texture").addSystem(sD,"geometry").addSystem(iD,"framebuffer").addSystem(jD,"scissor").addSystem(HD,"stencil").addSystem(zD,"projection").addSystem(KD,"textureGC").addSystem(KA,"filter").addSystem(GD,"renderTexture").addSystem($A,"batch"),this.initPlugins(e.__plugins),i.context?this.context.initFromContext(i.context):this.context.initFromOptions({alpha:this.transparent,antialias:i.antialias,premultipliedAlpha:this.transparent&&"notMultiplied"!==this.transparent,stencil:!0,preserveDrawingBuffer:i.preserveDrawingBuffer,powerPreference:this.options.powerPreference}),this.renderingToScreen=!0,function(t){var e;if(!nL){if(navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var i=["\n %c %c %c PixiJS 5.2.3 - \u2730 "+t+" \u2730 %c %c http://www.pixijs.com/ %c %c \u2665%c\u2665%c\u2665 \n\n","background: #ff66a5; padding:5px 0;","background: #ff66a5; padding:5px 0;","color: #ff66a5; background: #030307; padding:5px 0;","background: #ff66a5; padding:5px 0;","background: #ffc3dc; padding:5px 0;","background: #ff66a5; padding:5px 0;","color: #ff2424; background: #fff; padding:5px 0;","color: #ff2424; background: #fff; padding:5px 0;","color: #ff2424; background: #fff; padding:5px 0;"];(e=window.console).log.apply(e,i)}else window.console&&window.console.log("PixiJS 5.2.3 - "+t+" - http://www.pixijs.com/");nL=!0}}(2===this.context.webGLVersion?"WebGL 2":"WebGL 1"),this.resize(this.options.width,this.options.height)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.create=function(t){if(void 0===iL&&(iL=function(){var t={stencil:!0,failIfMajorPerformanceCaveat:IE.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT};try{if(!window.WebGLRenderingContext)return!1;var e=document.createElement("canvas"),i=e.getContext("webgl",t)||e.getContext("experimental-webgl",t),n=!(!i||!i.getContextAttributes().stencil);if(i){var r=i.getExtension("WEBGL_lose_context");r&&r.loseContext()}return i=null,n}catch(t){return!1}}()),iL)return new e(t);throw new Error('WebGL unsupported in this browser, use "pixi.js-legacy" for fallback canvas2d support.')},e.prototype.addSystem=function(t,e){e||(e=t.name);var i=new t(this);if(this[e])throw new Error('Whoops! The name "'+e+'" is already in use');for(var n in this[e]=i,this.runners)this.runners[n].add(i);return this},e.prototype.render=function(t,e,i,n,r){if(this.renderingToScreen=!e,this.runners.prerender.run(),this.emit("prerender"),this.projection.transform=n,!this.context.isLost){if(e||(this._lastObjectRendered=t),!r){var s=t.parent;t.parent=this._tempDisplayObjectParent,t.updateTransform(),t.parent=s}this.renderTexture.bind(e),this.batch.currentRenderer.start(),(void 0!==i?i:this.clearBeforeRender)&&this.renderTexture.clear(),t.render(this),this.batch.currentRenderer.flush(),e&&e.baseTexture.update(),this.runners.postrender.run(),this.projection.transform=null,this.emit("postrender")}},e.prototype.resize=function(e,i){t.prototype.resize.call(this,e,i),this.runners.resize.run(e,i)},e.prototype.reset=function(){return this.runners.reset.run(),this},e.prototype.clear=function(){this.framebuffer.bind(),this.framebuffer.clear()},e.prototype.destroy=function(e){for(var i in this.runners.destroy.run(),this.runners)this.runners[i].destroy();t.prototype.destroy.call(this,e),this.gl=null},e.registerPlugin=function(t,i){e.__plugins=e.__plugins||{},e.__plugins[t]=i},e}(function(t){function e(e,i){t.call(this),(i=Object.assign({},IE.RENDER_OPTIONS,i)).roundPixels&&(IE.ROUND_PIXELS=i.roundPixels,yL("5.0.0","Renderer roundPixels option is deprecated, please use PIXI.settings.ROUND_PIXELS",2)),this.options=i,this.type=HE.UNKNOWN,this.screen=new jL(0,0,i.width,i.height),this.view=i.view||document.createElement("canvas"),this.resolution=i.resolution||IE.RESOLUTION,this.transparent=i.transparent,this.autoDensity=i.autoDensity||i.autoResize||!1,this.preserveDrawingBuffer=i.preserveDrawingBuffer,this.clearBeforeRender=i.clearBeforeRender,this._backgroundColor=0,this._backgroundColorRgba=[0,0,0,0],this._backgroundColorString="#000000",this.backgroundColor=i.backgroundColor||this._backgroundColor,this._tempDisplayObjectParent=new JL,this._lastObjectRendered=this._tempDisplayObjectParent,this.plugins={}}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={width:{configurable:!0},height:{configurable:!0},backgroundColor:{configurable:!0}};return e.prototype.initPlugins=function(t){for(var e in t)this.plugins[e]=new t[e](this)},i.width.get=function(){return this.view.width},i.height.get=function(){return this.view.height},e.prototype.resize=function(t,e){this.screen.width=t,this.screen.height=e,this.view.width=t*this.resolution,this.view.height=e*this.resolution,this.autoDensity&&(this.view.style.width=t+"px",this.view.style.height=e+"px")},e.prototype.generateTexture=function(t,e,i,n){0===(n=n||t.getLocalBounds()).width&&(n.width=1),0===n.height&&(n.height=1);var r=IA.create({width:0|n.width,height:0|n.height,scaleMode:e,resolution:i});return tP.tx=-n.x,tP.ty=-n.y,this.render(t,r,!1,tP,!!t.parent),r},e.prototype.destroy=function(t){for(var e in this.plugins)this.plugins[e].destroy(),this.plugins[e]=null;t&&this.view.parentNode&&this.view.parentNode.removeChild(this.view),this.plugins=null,this.type=HE.UNKNOWN,this.view=null,this.screen=null,this.resolution=0,this.transparent=!1,this.autoDensity=!1,this.blendModes=null,this.options=null,this.preserveDrawingBuffer=!1,this.clearBeforeRender=!1,this._backgroundColor=0,this._backgroundColorRgba=null,this._backgroundColorString=null,this._tempDisplayObjectParent=null,this._lastObjectRendered=null},i.backgroundColor.get=function(){return this._backgroundColor},i.backgroundColor.set=function(t){this._backgroundColor=t,this._backgroundColorString=sL(t),rL(t,this._backgroundColorRgba)},Object.defineProperties(e.prototype,i),e}(FE()));var iP="attribute vec2 aVertexPosition;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nuniform vec4 inputSize;\nuniform vec4 outputFrame;\n\nvec4 filterVertexPosition( void )\n{\n vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;\n\n return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);\n}\n\nvec2 filterTextureCoord( void )\n{\n return aVertexPosition * (outputFrame.zw * inputSize.zw);\n}\n\nvoid main(void)\n{\n gl_Position = filterVertexPosition();\n vTextureCoord = filterTextureCoord();\n}\n",nP=function(){this.texArray=null,this.blend=0,this.type=WE.TRIANGLES,this.start=0,this.size=0,this.data=null},rP=function(){this.elements=[],this.ids=[],this.count=0};rP.prototype.clear=function(){for(var t=0;t<this.count;t++)this.elements[t]=null;this.count=0};var sP=function(t){this.rawBinaryData=new ArrayBuffer(t),this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData)},oP={int8View:{configurable:!0},uint8View:{configurable:!0},int16View:{configurable:!0},uint16View:{configurable:!0},int32View:{configurable:!0}};oP.int8View.get=function(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View},oP.uint8View.get=function(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View},oP.int16View.get=function(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View},oP.uint16View.get=function(){return this._uint16View||(this._uint16View=new Uint16Array(this.rawBinaryData)),this._uint16View},oP.int32View.get=function(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View},sP.prototype.view=function(t){return this[t+"View"]},sP.prototype.destroy=function(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this._uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null},sP.sizeOf=function(t){switch(t){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(t+" isn't a valid view type")}},Object.defineProperties(sP.prototype,oP);var aP=function(t){function e(e){t.call(this,e),this.shaderGenerator=null,this.geometryClass=null,this.vertexSize=null,this.state=OD.for2d(),this.size=4*IE.SPRITE_BATCH_SIZE,this._vertexCount=0,this._indexCount=0,this._bufferedElements=[],this._bufferedTextures=[],this._bufferSize=0,this._shader=null,this._packedGeometries=[],this._packedGeometryPoolSize=2,this._flushId=0,this._aBuffers={},this._iBuffers={},this.MAX_TEXTURES=1,this.renderer.on("prerender",this.onPrerender,this),e.runners.contextChange.add(this),this._dcIndex=0,this._aIndex=0,this._iIndex=0,this._attributeBuffer=null,this._indexBuffer=null,this._tempBoundTextures=[]}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.contextChange=function(){var t=this.renderer.gl;IE.PREFER_ENV===jE.WEBGL_LEGACY?this.MAX_TEXTURES=1:(this.MAX_TEXTURES=Math.min(t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),IE.SPRITE_MAX_TEXTURES),this.MAX_TEXTURES=function(t,e){if(0===t)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");for(var i=e.createShader(e.FRAGMENT_SHADER);;){var n=MD.replace(/%forloop%/gi,SD(t));if(e.shaderSource(i,n),e.compileShader(i),e.getShaderParameter(i,e.COMPILE_STATUS))break;t=t/2|0}return t}(this.MAX_TEXTURES,t)),this._shader=this.shaderGenerator.generateShader(this.MAX_TEXTURES);for(var e=0;e<this._packedGeometryPoolSize;e++)this._packedGeometries[e]=new this.geometryClass;this.initFlushBuffers()},e.prototype.initFlushBuffers=function(){for(var t=e._drawCallPool,i=e._textureArrayPool,n=this.size/4,r=Math.floor(n/this.MAX_TEXTURES)+1;t.length<n;)t.push(new nP);for(;i.length<r;)i.push(new rP);for(var s=0;s<this.MAX_TEXTURES;s++)this._tempBoundTextures[s]=null},e.prototype.onPrerender=function(){this._flushId=0},e.prototype.render=function(t){t._texture.valid&&(this._vertexCount+t.vertexData.length/2>this.size&&this.flush(),this._vertexCount+=t.vertexData.length/2,this._indexCount+=t.indices.length,this._bufferedTextures[this._bufferSize]=t._texture.baseTexture,this._bufferedElements[this._bufferSize++]=t)},e.prototype.buildTexturesAndDrawCalls=function(){var t=this._bufferedTextures,i=this.MAX_TEXTURES,n=e._textureArrayPool,r=this.renderer.batch,s=this._tempBoundTextures,o=this.renderer.textureGC.count,a=++_A._globalBatch,h=0,u=n[0],l=0;r.copyBoundTextures(s,i);for(var c=0;c<this._bufferSize;++c){var d=t[c];t[c]=null,d._batchEnabled!==a&&(u.count>=i&&(r.boundArray(u,s,a,i),this.buildDrawCalls(u,l,c),l=c,u=n[++h],++a),d._batchEnabled=a,d.touched=o,u.elements[u.count++]=d)}u.count>0&&(r.boundArray(u,s,a,i),this.buildDrawCalls(u,l,this._bufferSize),++h,++a);for(var p=0;p<s.length;p++)s[p]=null;_A._globalBatch=a},e.prototype.buildDrawCalls=function(t,i,n){var r=this,s=r._bufferedElements,o=r._attributeBuffer,a=r._indexBuffer,h=r.vertexSize,u=e._drawCallPool,l=this._dcIndex,c=this._aIndex,d=this._iIndex,p=u[l];p.start=this._iIndex,p.texArray=t;for(var f=i;f<n;++f){var m=s[f],v=m._texture.baseTexture,g=oL[v.alphaMode?1:0][m.blendMode];s[f]=null,i<f&&p.blend!==g&&(p.size=d-p.start,i=f,(p=u[++l]).texArray=t,p.start=d),this.packInterleavedGeometry(m,o,a,c,d),c+=m.vertexData.length/2*h,d+=m.indices.length,p.blend=g}i<n&&(p.size=d-p.start,++l),this._dcIndex=l,this._aIndex=c,this._iIndex=d},e.prototype.bindAndClearTexArray=function(t){for(var e=this.renderer.texture,i=0;i<t.count;i++)e.bind(t.elements[i],t.ids[i]),t.elements[i]=null;t.count=0},e.prototype.updateGeometry=function(){var t=this,e=t._packedGeometries,i=t._attributeBuffer,n=t._indexBuffer;IE.CAN_UPLOAD_SAME_BUFFER?(e[this._flushId]._buffer.update(i.rawBinaryData),e[this._flushId]._indexBuffer.update(n),this.renderer.geometry.updateBuffers()):(this._packedGeometryPoolSize<=this._flushId&&(this._packedGeometryPoolSize++,e[this._flushId]=new this.geometryClass),e[this._flushId]._buffer.update(i.rawBinaryData),e[this._flushId]._indexBuffer.update(n),this.renderer.geometry.bind(e[this._flushId]),this.renderer.geometry.updateBuffers(),this._flushId++)},e.prototype.drawBatches=function(){for(var t=this._dcIndex,i=this.renderer,n=i.gl,r=i.state,s=e._drawCallPool,o=null,a=0;a<t;a++){var h=s[a],u=h.texArray,l=h.type,c=h.size,d=h.start,p=h.blend;o!==u&&(o=u,this.bindAndClearTexArray(u)),this.state.blendMode=p,r.set(this.state),n.drawElements(l,c,n.UNSIGNED_SHORT,2*d)}},e.prototype.flush=function(){0!==this._vertexCount&&(this._attributeBuffer=this.getAttributeBuffer(this._vertexCount),this._indexBuffer=this.getIndexBuffer(this._indexCount),this._aIndex=0,this._iIndex=0,this._dcIndex=0,this.buildTexturesAndDrawCalls(),this.updateGeometry(),this.drawBatches(),this._bufferSize=0,this._vertexCount=0,this._indexCount=0)},e.prototype.start=function(){this.renderer.state.set(this.state),this.renderer.shader.bind(this._shader),IE.CAN_UPLOAD_SAME_BUFFER&&this.renderer.geometry.bind(this._packedGeometries[this._flushId])},e.prototype.stop=function(){this.flush()},e.prototype.destroy=function(){for(var e=0;e<this._packedGeometryPoolSize;e++)this._packedGeometries[e]&&this._packedGeometries[e].destroy();this.renderer.off("prerender",this.onPrerender,this),this._aBuffers=null,this._iBuffers=null,this._packedGeometries=null,this._attributeBuffer=null,this._indexBuffer=null,this._shader&&(this._shader.destroy(),this._shader=null),t.prototype.destroy.call(this)},e.prototype.getAttributeBuffer=function(t){var e=lL(Math.ceil(t/8)),i=dL(e),n=8*e;this._aBuffers.length<=i&&(this._iBuffers.length=i+1);var r=this._aBuffers[n];return r||(this._aBuffers[n]=r=new sP(n*this.vertexSize*4)),r},e.prototype.getIndexBuffer=function(t){var e=lL(Math.ceil(t/12)),i=dL(e),n=12*e;this._iBuffers.length<=i&&(this._iBuffers.length=i+1);var r=this._iBuffers[i];return r||(this._iBuffers[i]=r=new Uint16Array(n)),r},e.prototype.packInterleavedGeometry=function(t,e,i,n,r){for(var s=e.uint32View,o=e.float32View,a=n/this.vertexSize,h=t.uvs,u=t.indices,l=t.vertexData,c=t._texture.baseTexture._batchLocation,d=Math.min(t.worldAlpha,1),p=d<1&&t._texture.baseTexture.alphaMode?hL(t._tintRGB,d):t._tintRGB+(255*d<<24),f=0;f<l.length;f+=2)o[n++]=l[f],o[n++]=l[f+1],o[n++]=h[f],o[n++]=h[f+1],s[n++]=p,o[n++]=c;for(var m=0;m<u.length;m++)i[r++]=a+u[m]},e}(QA);aP._drawCallPool=[],aP._textureArrayPool=[];var hP=function(t,e){if(this.vertexSrc=t,this.fragTemplate=e,this.programCache={},this.defaultGroupCache={},e.indexOf("%count%")<0)throw new Error('Fragment template must contain "%count%".');if(e.indexOf("%forloop%")<0)throw new Error('Fragment template must contain "%forloop%".')};hP.prototype.generateShader=function(t){if(!this.programCache[t]){for(var e=new Int32Array(t),i=0;i<t;i++)e[i]=i;this.defaultGroupCache[t]=JA.from({uSamplers:e},!0);var n=this.fragTemplate;n=(n=n.replace(/%count%/gi,""+t)).replace(/%forloop%/gi,this.generateSampleSrc(t)),this.programCache[t]=new AD(this.vertexSrc,n)}var r={tint:new Float32Array([1,1,1,1]),translationMatrix:new CL,default:this.defaultGroupCache[t]};return new PD(this.programCache[t],r)},hP.prototype.generateSampleSrc=function(t){var e="";e+="\n",e+="\n";for(var i=0;i<t;i++)i>0&&(e+="\nelse "),i<t-1&&(e+="if(vTextureId < "+i+".5)"),e+="\n{",e+="\n\tcolor = texture2D(uSamplers["+i+"], vTextureCoord);",e+="\n}";return e+="\n",e+="\n"};var uP=function(t){function e(e){void 0===e&&(e=!1),t.call(this),this._buffer=new BA(null,e,!1),this._indexBuffer=new BA(null,e,!0),this.addAttribute("aVertexPosition",this._buffer,2,!1,XE.FLOAT).addAttribute("aTextureCoord",this._buffer,2,!1,XE.FLOAT).addAttribute("aColor",this._buffer,4,!0,XE.UNSIGNED_BYTE).addAttribute("aTextureId",this._buffer,1,!0,XE.FLOAT).addIndex(this._indexBuffer)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(GA),lP="precision highp float;\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\nattribute float aTextureId;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform vec4 tint;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying float vTextureId;\n\nvoid main(void){\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vTextureId = aTextureId;\n vColor = aColor * tint;\n}\n",cP="varying vec2 vTextureCoord;\nvarying vec4 vColor;\nvarying float vTextureId;\nuniform sampler2D uSamplers[%count%];\n\nvoid main(void){\n vec4 color;\n %forloop%\n gl_FragColor = color * vColor;\n}\n",dP=function(){},pP={defaultVertexSrc:{configurable:!0},defaultFragmentTemplate:{configurable:!0}};dP.create=function(t){var e=Object.assign({vertex:lP,fragment:cP,geometryClass:uP,vertexSize:6},t),i=e.vertex,n=e.fragment,r=e.vertexSize,s=e.geometryClass;return function(t){function e(e){t.call(this,e),this.shaderGenerator=new hP(i,n),this.geometryClass=s,this.vertexSize=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(aP)},pP.defaultVertexSrc.get=function(){return lP},pP.defaultFragmentTemplate.get=function(){return cP},Object.defineProperties(dP,pP);var fP=dP.create(),mP=function t(e){var i=this;e=Object.assign({forceCanvas:!1},e),this.renderer=function(t){return eP.create(t)}(e),this.stage=new JL,t._plugins.forEach((function(t){t.init.call(i,e)}))},vP={view:{configurable:!0},screen:{configurable:!0}};mP.registerPlugin=function(t){mP._plugins.push(t)},mP.prototype.render=function(){this.renderer.render(this.stage)},vP.view.get=function(){return this.renderer.view},vP.screen.get=function(){return this.renderer.screen},mP.prototype.destroy=function(t,e){var i=this,n=mP._plugins.slice(0);n.reverse(),n.forEach((function(t){t.destroy.call(i)})),this.stage.destroy(e),this.stage=null,this.renderer.destroy(t),this.renderer=null,this._options=null},Object.defineProperties(mP.prototype,vP),mP._plugins=[];var gP=function(){};gP.init=function(t){var e=this;Object.defineProperty(this,"resizeTo",{set:function(t){window.removeEventListener("resize",this.resize),this._resizeTo=t,t&&(window.addEventListener("resize",this.resize),this.resize())},get:function(){return this._resizeTo}}),this.resize=function(){e._resizeTo&&(e._resizeTo===window?e.renderer.resize(window.innerWidth,window.innerHeight):e.renderer.resize(e._resizeTo.clientWidth,e._resizeTo.clientHeight))},this._resizeTo=null,this.resizeTo=t.resizeTo||null},gP.destroy=function(){this.resizeTo=null,this.resize=null},mP.registerPlugin(gP);var yP=new jL,_P=function(t){this.renderer=t,t.extract=this};_P.prototype.image=function(t,e,i){var n=new Image;return n.src=this.base64(t,e,i),n},_P.prototype.base64=function(t,e,i){return this.canvas(t).toDataURL(e,i)},_P.prototype.canvas=function(t){var e,i,n,r=this.renderer,s=!1,o=!1;t&&(t instanceof IA?n=t:(n=this.renderer.generateTexture(t),o=!0)),n?(e=n.baseTexture.resolution,i=n.frame,s=!1,r.renderTexture.bind(n)):(e=this.renderer.resolution,s=!0,(i=yP).width=this.renderer.width,i.height=this.renderer.height,r.renderTexture.bind(null));var a=Math.floor(i.width*e+1e-4),h=Math.floor(i.height*e+1e-4),u=new wL(a,h,1),l=new Uint8Array(4*a*h),c=r.gl;c.readPixels(i.x*e,i.y*e,a,h,c.RGBA,c.UNSIGNED_BYTE,l);var d=u.context.getImageData(0,0,a,h);if(_P.arrayPostDivide(l,d.data),u.context.putImageData(d,0,0),s){var p=new wL(u.width,u.height,1);p.context.scale(1,-1),p.context.drawImage(u.canvas,0,-h),u.destroy(),u=p}return o&&n.destroy(!0),u.canvas},_P.prototype.pixels=function(t){var e,i,n,r=this.renderer,s=!1;t&&(t instanceof IA?n=t:(n=this.renderer.generateTexture(t),s=!0)),n?(e=n.baseTexture.resolution,i=n.frame,r.renderTexture.bind(n)):(e=r.resolution,(i=yP).width=r.width,i.height=r.height,r.renderTexture.bind(null));var o=i.width*e,a=i.height*e,h=new Uint8Array(4*o*a),u=r.gl;return u.readPixels(i.x*e,i.y*e,o,a,u.RGBA,u.UNSIGNED_BYTE,h),s&&n.destroy(!0),_P.arrayPostDivide(h,h),h},_P.prototype.destroy=function(){this.renderer.extract=null,this.renderer=null},_P.arrayPostDivide=function(t,e){for(var i=0;i<t.length;i+=4){var n=e[i+3]=t[i+3];0!==n?(e[i]=Math.round(Math.min(255*t[i]/n,255)),e[i+1]=Math.round(Math.min(255*t[i+1]/n,255)),e[i+2]=Math.round(Math.min(255*t[i+2]/n,255))):(e[i]=t[i],e[i+1]=t[i+1],e[i+2]=t[i+2])}};var xP=i(21639),bP=i.n(xP),wP=i(82474),TP=i.n(wP);function MP(){}function SP(t,e,i,n){var r=0,s=t.length;!function o(a){a||r===s?i&&i(a):n?setTimeout((function(){e(t[r++],o)}),1):e(t[r++],o)}()}function EP(t){return function(){if(null===t)throw new Error("Callback was already called.");var e=t;t=null,e.apply(this,arguments)}}function LP(t,e){if(null==e)e=1;else if(0===e)throw new Error("Concurrency must not be zero");var i=0,n={_tasks:[],concurrency:e,saturated:MP,unsaturated:MP,buffer:e/4,empty:MP,drain:MP,error:MP,started:!1,paused:!1,push:function(t,e){r(t,!1,e)},kill:function(){i=0,n.drain=MP,n.started=!1,n._tasks=[]},unshift:function(t,e){r(t,!0,e)},process:function(){for(;!n.paused&&i<n.concurrency&&n._tasks.length;){var e=n._tasks.shift();0===n._tasks.length&&n.empty(),(i+=1)===n.concurrency&&n.saturated(),t(e.data,EP(s(e)))}},length:function(){return n._tasks.length},running:function(){return i},idle:function(){return n._tasks.length+i===0},pause:function(){!0!==n.paused&&(n.paused=!0)},resume:function(){if(!1!==n.paused){n.paused=!1;for(var t=1;t<=n.concurrency;t++)n.process()}}};function r(t,e,i){if(null!=i&&"function"!=typeof i)throw new Error("task callback must be a function");if(n.started=!0,null==t&&n.idle())setTimeout((function(){return n.drain()}),1);else{var r={data:t,callback:"function"==typeof i?i:MP};e?n._tasks.unshift(r):n._tasks.push(r),setTimeout((function(){return n.process()}),1)}}function s(t){return function(){i-=1,t.callback.apply(t,arguments),null!=arguments[0]&&n.error(arguments[0],t.data),i<=n.concurrency-n.buffer&&n.unsaturated(),n.idle()&&n.drain(),n.process()}}return n}var AP={};function DP(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function PP(t,e,i){return e&&DP(t.prototype,e),i&&DP(t,i),t}var CP=!(!window.XDomainRequest||"withCredentials"in new XMLHttpRequest),OP=null;function kP(){}var RP=function(){function t(e,i,n){if("string"!=typeof e||"string"!=typeof i)throw new Error("Both name and url are required for constructing a resource.");n=n||{},this._flags=0,this._setFlag(t.STATUS_FLAGS.DATA_URL,0===i.indexOf("data:")),this.name=e,this.url=i,this.extension=this._getExtension(),this.data=null,this.crossOrigin=!0===n.crossOrigin?"anonymous":n.crossOrigin,this.timeout=n.timeout||0,this.loadType=n.loadType||this._determineLoadType(),this.xhrType=n.xhrType,this.metadata=n.metadata||{},this.error=null,this.xhr=null,this.children=[],this.type=t.TYPE.UNKNOWN,this.progressChunk=0,this._dequeue=kP,this._onLoadBinding=null,this._elementTimer=0,this._boundComplete=this.complete.bind(this),this._boundOnError=this._onError.bind(this),this._boundOnProgress=this._onProgress.bind(this),this._boundOnTimeout=this._onTimeout.bind(this),this._boundXhrOnError=this._xhrOnError.bind(this),this._boundXhrOnTimeout=this._xhrOnTimeout.bind(this),this._boundXhrOnAbort=this._xhrOnAbort.bind(this),this._boundXhrOnLoad=this._xhrOnLoad.bind(this),this.onStart=new(TP()),this.onProgress=new(TP()),this.onComplete=new(TP()),this.onAfterMiddleware=new(TP())}t.setExtensionLoadType=function(e,i){IP(t._loadTypeMap,e,i)},t.setExtensionXhrType=function(e,i){IP(t._xhrTypeMap,e,i)};var e=t.prototype;return e.complete=function(){this._clearEvents(),this._finish()},e.abort=function(e){if(!this.error){if(this.error=new Error(e),this._clearEvents(),this.xhr)this.xhr.abort();else if(this.xdr)this.xdr.abort();else if(this.data)if(this.data.src)this.data.src=t.EMPTY_GIF;else for(;this.data.firstChild;)this.data.removeChild(this.data.firstChild);this._finish()}},e.load=function(e){var i=this;if(!this.isLoading)if(this.isComplete)e&&setTimeout((function(){return e(i)}),1);else switch(e&&this.onComplete.once(e),this._setFlag(t.STATUS_FLAGS.LOADING,!0),this.onStart.dispatch(this),!1!==this.crossOrigin&&"string"==typeof this.crossOrigin||(this.crossOrigin=this._determineCrossOrigin(this.url)),this.loadType){case t.LOAD_TYPE.IMAGE:this.type=t.TYPE.IMAGE,this._loadElement("image");break;case t.LOAD_TYPE.AUDIO:this.type=t.TYPE.AUDIO,this._loadSourceElement("audio");break;case t.LOAD_TYPE.VIDEO:this.type=t.TYPE.VIDEO,this._loadSourceElement("video");break;case t.LOAD_TYPE.XHR:default:CP&&this.crossOrigin?this._loadXdr():this._loadXhr()}},e._hasFlag=function(t){return 0!=(this._flags&t)},e._setFlag=function(t,e){this._flags=e?this._flags|t:this._flags&~t},e._clearEvents=function(){clearTimeout(this._elementTimer),this.data&&this.data.removeEventListener&&(this.data.removeEventListener("error",this._boundOnError,!1),this.data.removeEventListener("load",this._boundComplete,!1),this.data.removeEventListener("progress",this._boundOnProgress,!1),this.data.removeEventListener("canplaythrough",this._boundComplete,!1)),this.xhr&&(this.xhr.removeEventListener?(this.xhr.removeEventListener("error",this._boundXhrOnError,!1),this.xhr.removeEventListener("timeout",this._boundXhrOnTimeout,!1),this.xhr.removeEventListener("abort",this._boundXhrOnAbort,!1),this.xhr.removeEventListener("progress",this._boundOnProgress,!1),this.xhr.removeEventListener("load",this._boundXhrOnLoad,!1)):(this.xhr.onerror=null,this.xhr.ontimeout=null,this.xhr.onprogress=null,this.xhr.onload=null))},e._finish=function(){if(this.isComplete)throw new Error("Complete called again for an already completed resource.");this._setFlag(t.STATUS_FLAGS.COMPLETE,!0),this._setFlag(t.STATUS_FLAGS.LOADING,!1),this.onComplete.dispatch(this)},e._loadElement=function(t){this.metadata.loadElement?this.data=this.metadata.loadElement:"image"===t&&void 0!==window.Image?this.data=new Image:this.data=document.createElement(t),this.crossOrigin&&(this.data.crossOrigin=this.crossOrigin),this.metadata.skipSource||(this.data.src=this.url),this.data.addEventListener("error",this._boundOnError,!1),this.data.addEventListener("load",this._boundComplete,!1),this.data.addEventListener("progress",this._boundOnProgress,!1),this.timeout&&(this._elementTimer=setTimeout(this._boundOnTimeout,this.timeout))},e._loadSourceElement=function(t){if(this.metadata.loadElement?this.data=this.metadata.loadElement:"audio"===t&&void 0!==window.Audio?this.data=new Audio:this.data=document.createElement(t),null!==this.data){if(this.crossOrigin&&(this.data.crossOrigin=this.crossOrigin),!this.metadata.skipSource)if(navigator.isCocoonJS)this.data.src=Array.isArray(this.url)?this.url[0]:this.url;else if(Array.isArray(this.url))for(var e=this.metadata.mimeType,i=0;i<this.url.length;++i)this.data.appendChild(this._createSource(t,this.url[i],Array.isArray(e)?e[i]:e));else{var n=this.metadata.mimeType;this.data.appendChild(this._createSource(t,this.url,Array.isArray(n)?n[0]:n))}this.data.addEventListener("error",this._boundOnError,!1),this.data.addEventListener("load",this._boundComplete,!1),this.data.addEventListener("progress",this._boundOnProgress,!1),this.data.addEventListener("canplaythrough",this._boundComplete,!1),this.data.load(),this.timeout&&(this._elementTimer=setTimeout(this._boundOnTimeout,this.timeout))}else this.abort("Unsupported element: "+t)},e._loadXhr=function(){"string"!=typeof this.xhrType&&(this.xhrType=this._determineXhrType());var e=this.xhr=new XMLHttpRequest;e.open("GET",this.url,!0),e.timeout=this.timeout,this.xhrType===t.XHR_RESPONSE_TYPE.JSON||this.xhrType===t.XHR_RESPONSE_TYPE.DOCUMENT?e.responseType=t.XHR_RESPONSE_TYPE.TEXT:e.responseType=this.xhrType,e.addEventListener("error",this._boundXhrOnError,!1),e.addEventListener("timeout",this._boundXhrOnTimeout,!1),e.addEventListener("abort",this._boundXhrOnAbort,!1),e.addEventListener("progress",this._boundOnProgress,!1),e.addEventListener("load",this._boundXhrOnLoad,!1),e.send()},e._loadXdr=function(){"string"!=typeof this.xhrType&&(this.xhrType=this._determineXhrType());var t=this.xhr=new XDomainRequest;t.timeout=this.timeout||5e3,t.onerror=this._boundXhrOnError,t.ontimeout=this._boundXhrOnTimeout,t.onprogress=this._boundOnProgress,t.onload=this._boundXhrOnLoad,t.open("GET",this.url,!0),setTimeout((function(){return t.send()}),1)},e._createSource=function(t,e,i){i||(i=t+"/"+this._getExtension(e));var n=document.createElement("source");return n.src=e,n.type=i,n},e._onError=function(t){this.abort("Failed to load element using: "+t.target.nodeName)},e._onProgress=function(t){t&&t.lengthComputable&&this.onProgress.dispatch(this,t.loaded/t.total)},e._onTimeout=function(){this.abort("Load timed out.")},e._xhrOnError=function(){var t=this.xhr;this.abort(YP(t)+" Request failed. Status: "+t.status+', text: "'+t.statusText+'"')},e._xhrOnTimeout=function(){var t=this.xhr;this.abort(YP(t)+" Request timed out.")},e._xhrOnAbort=function(){var t=this.xhr;this.abort(YP(t)+" Request was aborted by the user.")},e._xhrOnLoad=function(){var e=this.xhr,i="",n=void 0===e.status?200:e.status;if(""!==e.responseType&&"text"!==e.responseType&&void 0!==e.responseType||(i=e.responseText),0===n&&(i.length>0||e.responseType===t.XHR_RESPONSE_TYPE.BUFFER)?n=200:1223===n&&(n=204),2===(n/100|0)){if(this.xhrType===t.XHR_RESPONSE_TYPE.TEXT)this.data=i,this.type=t.TYPE.TEXT;else if(this.xhrType===t.XHR_RESPONSE_TYPE.JSON)try{this.data=JSON.parse(i),this.type=t.TYPE.JSON}catch(t){return void this.abort("Error trying to parse loaded json: "+t)}else if(this.xhrType===t.XHR_RESPONSE_TYPE.DOCUMENT)try{if(window.DOMParser){var r=new DOMParser;this.data=r.parseFromString(i,"text/xml")}else{var s=document.createElement("div");s.innerHTML=i,this.data=s}this.type=t.TYPE.XML}catch(t){return void this.abort("Error trying to parse loaded xml: "+t)}else this.data=e.response||i;this.complete()}else this.abort("["+e.status+"] "+e.statusText+": "+e.responseURL)},e._determineCrossOrigin=function(t,e){if(0===t.indexOf("data:"))return"";if(window.origin!==window.location.origin)return"anonymous";e=e||window.location,OP||(OP=document.createElement("a")),OP.href=t;var i=!(t=bP()(OP.href,{strictMode:!0})).port&&""===e.port||t.port===e.port,n=t.protocol?t.protocol+":":"";return t.host===e.hostname&&i&&n===e.protocol?"":"anonymous"},e._determineXhrType=function(){return t._xhrTypeMap[this.extension]||t.XHR_RESPONSE_TYPE.TEXT},e._determineLoadType=function(){return t._loadTypeMap[this.extension]||t.LOAD_TYPE.XHR},e._getExtension=function(){var t=this.url,e="";if(this.isDataUrl){var i=t.indexOf("/");e=t.substring(i+1,t.indexOf(";",i))}else{var n=t.indexOf("?"),r=t.indexOf("#"),s=Math.min(n>-1?n:t.length,r>-1?r:t.length);e=(t=t.substring(0,s)).substring(t.lastIndexOf(".")+1)}return e.toLowerCase()},e._getMimeFromXhrType=function(e){switch(e){case t.XHR_RESPONSE_TYPE.BUFFER:return"application/octet-binary";case t.XHR_RESPONSE_TYPE.BLOB:return"application/blob";case t.XHR_RESPONSE_TYPE.DOCUMENT:return"application/xml";case t.XHR_RESPONSE_TYPE.JSON:return"application/json";case t.XHR_RESPONSE_TYPE.DEFAULT:case t.XHR_RESPONSE_TYPE.TEXT:default:return"text/plain"}},PP(t,[{key:"isDataUrl",get:function(){return this._hasFlag(t.STATUS_FLAGS.DATA_URL)}},{key:"isComplete",get:function(){return this._hasFlag(t.STATUS_FLAGS.COMPLETE)}},{key:"isLoading",get:function(){return this._hasFlag(t.STATUS_FLAGS.LOADING)}}]),t}();function IP(t,e,i){e&&0===e.indexOf(".")&&(e=e.substring(1)),e&&(t[e]=i)}function YP(t){return t.toString().replace("object ","")}RP.STATUS_FLAGS={NONE:0,DATA_URL:1,COMPLETE:2,LOADING:4},RP.TYPE={UNKNOWN:0,JSON:1,XML:2,IMAGE:3,AUDIO:4,VIDEO:5,TEXT:6},RP.LOAD_TYPE={XHR:1,IMAGE:2,AUDIO:3,VIDEO:4},RP.XHR_RESPONSE_TYPE={DEFAULT:"text",BUFFER:"arraybuffer",BLOB:"blob",DOCUMENT:"document",JSON:"json",TEXT:"text"},RP._loadTypeMap={gif:RP.LOAD_TYPE.IMAGE,png:RP.LOAD_TYPE.IMAGE,bmp:RP.LOAD_TYPE.IMAGE,jpg:RP.LOAD_TYPE.IMAGE,jpeg:RP.LOAD_TYPE.IMAGE,tif:RP.LOAD_TYPE.IMAGE,tiff:RP.LOAD_TYPE.IMAGE,webp:RP.LOAD_TYPE.IMAGE,tga:RP.LOAD_TYPE.IMAGE,svg:RP.LOAD_TYPE.IMAGE,"svg+xml":RP.LOAD_TYPE.IMAGE,mp3:RP.LOAD_TYPE.AUDIO,ogg:RP.LOAD_TYPE.AUDIO,wav:RP.LOAD_TYPE.AUDIO,mp4:RP.LOAD_TYPE.VIDEO,webm:RP.LOAD_TYPE.VIDEO},RP._xhrTypeMap={xhtml:RP.XHR_RESPONSE_TYPE.DOCUMENT,html:RP.XHR_RESPONSE_TYPE.DOCUMENT,htm:RP.XHR_RESPONSE_TYPE.DOCUMENT,xml:RP.XHR_RESPONSE_TYPE.DOCUMENT,tmx:RP.XHR_RESPONSE_TYPE.DOCUMENT,svg:RP.XHR_RESPONSE_TYPE.DOCUMENT,tsx:RP.XHR_RESPONSE_TYPE.DOCUMENT,gif:RP.XHR_RESPONSE_TYPE.BLOB,png:RP.XHR_RESPONSE_TYPE.BLOB,bmp:RP.XHR_RESPONSE_TYPE.BLOB,jpg:RP.XHR_RESPONSE_TYPE.BLOB,jpeg:RP.XHR_RESPONSE_TYPE.BLOB,tif:RP.XHR_RESPONSE_TYPE.BLOB,tiff:RP.XHR_RESPONSE_TYPE.BLOB,webp:RP.XHR_RESPONSE_TYPE.BLOB,tga:RP.XHR_RESPONSE_TYPE.BLOB,json:RP.XHR_RESPONSE_TYPE.JSON,text:RP.XHR_RESPONSE_TYPE.TEXT,txt:RP.XHR_RESPONSE_TYPE.TEXT,ttf:RP.XHR_RESPONSE_TYPE.BUFFER,otf:RP.XHR_RESPONSE_TYPE.BUFFER},RP.EMPTY_GIF="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==";var FP=window.URL||window.webkitURL;var NP={caching:function(t,e){var i=this;AP[t.url]?(t.data=AP[t.url],t.complete()):t.onComplete.once((function(){return AP[i.url]=i.data})),e()},parsing:function(t,e){if(t.data){if(t.xhr&&t.xhrType===RP.XHR_RESPONSE_TYPE.BLOB)if(window.Blob&&"string"!=typeof t.data){if(0===t.data.type.indexOf("image")){var i=FP.createObjectURL(t.data);return t.blob=t.data,t.data=new Image,t.data.src=i,t.type=RP.TYPE.IMAGE,void(t.data.onload=function(){FP.revokeObjectURL(i),t.data.onload=null,e()})}}else{var n=t.xhr.getResponseHeader("content-type");if(n&&0===n.indexOf("image"))return t.data=new Image,t.data.src="data:"+n+";base64,"+function(t){for(var e="",i=0;i<t.length;){for(var n=[0,0,0],r=[0,0,0,0],s=0;s<n.length;++s)i<t.length?n[s]=255&t.charCodeAt(i++):n[s]=0;switch(r[0]=n[0]>>2,r[1]=(3&n[0])<<4|n[1]>>4,r[2]=(15&n[1])<<2|n[2]>>6,r[3]=63&n[2],i-(t.length-1)){case 2:r[3]=64,r[2]=64;break;case 1:r[3]=64}for(var o=0;o<r.length;++o)e+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(r[o])}return e}(t.xhr.responseText),t.type=RP.TYPE.IMAGE,void(t.data.onload=function(){t.data.onload=null,e()})}e()}else e()}},BP=/(#[\w-]+)?$/,UP=function(){function t(e,i){var n=this;void 0===e&&(e=""),void 0===i&&(i=10),this.baseUrl=e,this.progress=0,this.loading=!1,this.defaultQueryString="",this._beforeMiddleware=[],this._afterMiddleware=[],this._resourcesParsing=[],this._boundLoadResource=function(t,e){return n._loadResource(t,e)},this._queue=LP(this._boundLoadResource,i),this._queue.pause(),this.resources={},this.onProgress=new(TP()),this.onError=new(TP()),this.onLoad=new(TP()),this.onStart=new(TP()),this.onComplete=new(TP());for(var r=0;r<t._defaultBeforeMiddleware.length;++r)this.pre(t._defaultBeforeMiddleware[r]);for(var s=0;s<t._defaultAfterMiddleware.length;++s)this.use(t._defaultAfterMiddleware[s])}var e=t.prototype;return e.add=function(t,e,i,n){if(Array.isArray(t)){for(var r=0;r<t.length;++r)this.add(t[r]);return this}if("object"==typeof t&&(n=e||t.callback||t.onComplete,i=t,e=t.url,t=t.name||t.key||t.url),"string"!=typeof e&&(n=i,i=e,e=t),"string"!=typeof e)throw new Error("No url passed to add resource to loader.");if("function"==typeof i&&(n=i,i=null),this.loading&&(!i||!i.parentResource))throw new Error("Cannot add resources while the loader is running.");if(this.resources[t])throw new Error('Resource named "'+t+'" already exists.');if(e=this._prepareUrl(e),this.resources[t]=new RP(t,e,i),"function"==typeof n&&this.resources[t].onAfterMiddleware.once(n),this.loading){for(var s=i.parentResource,o=[],a=0;a<s.children.length;++a)s.children[a].isComplete||o.push(s.children[a]);var h=s.progressChunk*(o.length+1)/(o.length+2);s.children.push(this.resources[t]),s.progressChunk=h;for(var u=0;u<o.length;++u)o[u].progressChunk=h;this.resources[t].progressChunk=h}return this._queue.push(this.resources[t]),this},e.pre=function(t){return this._beforeMiddleware.push(t),this},e.use=function(t){return this._afterMiddleware.push(t),this},e.reset=function(){for(var t in this.progress=0,this.loading=!1,this._queue.kill(),this._queue.pause(),this.resources){var e=this.resources[t];e._onLoadBinding&&e._onLoadBinding.detach(),e.isLoading&&e.abort()}return this.resources={},this},e.load=function(t){if("function"==typeof t&&this.onComplete.once(t),this.loading)return this;if(this._queue.idle())this._onStart(),this._onComplete();else{for(var e=100/this._queue._tasks.length,i=0;i<this._queue._tasks.length;++i)this._queue._tasks[i].data.progressChunk=e;this._onStart(),this._queue.resume()}return this},e._prepareUrl=function(t){var e,i=bP()(t,{strictMode:!0});if(e=i.protocol||!i.path||0===t.indexOf("//")?t:this.baseUrl.length&&this.baseUrl.lastIndexOf("/")!==this.baseUrl.length-1&&"/"!==t.charAt(0)?this.baseUrl+"/"+t:this.baseUrl+t,this.defaultQueryString){var n=BP.exec(e)[0];-1!==(e=e.substr(0,e.length-n.length)).indexOf("?")?e+="&"+this.defaultQueryString:e+="?"+this.defaultQueryString,e+=n}return e},e._loadResource=function(t,e){var i=this;t._dequeue=e,SP(this._beforeMiddleware,(function(e,n){e.call(i,t,(function(){n(t.isComplete?{}:null)}))}),(function(){t.isComplete?i._onLoad(t):(t._onLoadBinding=t.onComplete.once(i._onLoad,i),t.load())}),!0)},e._onStart=function(){this.progress=0,this.loading=!0,this.onStart.dispatch(this)},e._onComplete=function(){this.progress=100,this.loading=!1,this.onComplete.dispatch(this,this.resources)},e._onLoad=function(t){var e=this;t._onLoadBinding=null,this._resourcesParsing.push(t),t._dequeue(),SP(this._afterMiddleware,(function(i,n){i.call(e,t,n)}),(function(){t.onAfterMiddleware.dispatch(t),e.progress=Math.min(100,e.progress+t.progressChunk),e.onProgress.dispatch(e,t),t.error?e.onError.dispatch(t.error,e,t):e.onLoad.dispatch(e,t),e._resourcesParsing.splice(e._resourcesParsing.indexOf(t),1),e._queue.idle()&&0===e._resourcesParsing.length&&e._onComplete()}),!0)},PP(t,[{key:"concurrency",get:function(){return this._queue.concurrency},set:function(t){this._queue.concurrency=t}}]),t}();UP._defaultBeforeMiddleware=[],UP._defaultAfterMiddleware=[],UP.pre=function(t){return UP._defaultBeforeMiddleware.push(t),UP},UP.use=function(t){return UP._defaultAfterMiddleware.push(t),UP};var jP=function(){};jP.use=function(t,e){t.data&&t.type===RP.TYPE.IMAGE&&(t.texture=kA.fromLoader(t.data,t.url,t.name)),e()};var HP=function(t){function e(i,n){var r=this;t.call(this,i,n),FE().call(this);for(var s=0;s<e._plugins.length;++s){var o=e._plugins[s],a=o.pre,h=o.use;a&&this.pre(a),h&&this.use(h)}this.onStart.add((function(t){return r.emit("start",t)})),this.onProgress.add((function(t,e){return r.emit("progress",t,e)})),this.onError.add((function(t,e,i){return r.emit("error",t,e,i)})),this.onLoad.add((function(t,e){return r.emit("load",t,e)})),this.onComplete.add((function(t,e){return r.emit("complete",t,e)})),this._protected=!1}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={shared:{configurable:!0}};return e.prototype.destroy=function(){this._protected||(this.removeAllListeners(),this.reset())},i.shared.get=function(){var t=e._shared;return t||((t=new e)._protected=!0,e._shared=t),t},Object.defineProperties(e,i),e}(UP);Object.assign(HP.prototype,FE().prototype),HP._plugins=[],HP.registerPlugin=function(t){return HP._plugins.push(t),t.add&&t.add(),HP},HP.registerPlugin({use:NP.parsing}),HP.registerPlugin(jP);var zP=function(){};zP.init=function(t){t=Object.assign({sharedLoader:!1},t),this.loader=t.sharedLoader?HP.shared:new HP},zP.destroy=function(){this.loader&&(this.loader.destroy(),this.loader=null)};var WP=RP,GP=function(t,e,i){this.geometry=new GA,this.indexBuffer=null,this.size=i,this.dynamicProperties=[],this.staticProperties=[];for(var n=0;n<t.length;++n){var r=t[n];r={attributeName:r.attributeName,size:r.size,uploadFunction:r.uploadFunction,type:r.type||XE.FLOAT,offset:r.offset},e[n]?this.dynamicProperties.push(r):this.staticProperties.push(r)}this.staticStride=0,this.staticBuffer=null,this.staticData=null,this.staticDataUint32=null,this.dynamicStride=0,this.dynamicBuffer=null,this.dynamicData=null,this.dynamicDataUint32=null,this._updateID=0,this.initBuffers()};GP.prototype.initBuffers=function(){var t=this.geometry,e=0;this.indexBuffer=new BA(function(t,e){void 0===e&&(e=null);var i=6*t;if((e=e||new Uint16Array(i)).length!==i)throw new Error("Out buffer length is incorrect, got "+e.length+" and expected "+i);for(var n=0,r=0;n<i;n+=6,r+=4)e[n+0]=r+0,e[n+1]=r+1,e[n+2]=r+2,e[n+3]=r+0,e[n+4]=r+2,e[n+5]=r+3;return e}(this.size),!0,!0),t.addIndex(this.indexBuffer),this.dynamicStride=0;for(var i=0;i<this.dynamicProperties.length;++i){var n=this.dynamicProperties[i];n.offset=e,e+=n.size,this.dynamicStride+=n.size}var r=new ArrayBuffer(this.size*this.dynamicStride*4*4);this.dynamicData=new Float32Array(r),this.dynamicDataUint32=new Uint32Array(r),this.dynamicBuffer=new BA(this.dynamicData,!1,!1);var s=0;this.staticStride=0;for(var o=0;o<this.staticProperties.length;++o){var a=this.staticProperties[o];a.offset=s,s+=a.size,this.staticStride+=a.size}var h=new ArrayBuffer(this.size*this.staticStride*4*4);this.staticData=new Float32Array(h),this.staticDataUint32=new Uint32Array(h),this.staticBuffer=new BA(this.staticData,!0,!1);for(var u=0;u<this.dynamicProperties.length;++u){var l=this.dynamicProperties[u];t.addAttribute(l.attributeName,this.dynamicBuffer,0,l.type===XE.UNSIGNED_BYTE,l.type,4*this.dynamicStride,4*l.offset)}for(var c=0;c<this.staticProperties.length;++c){var d=this.staticProperties[c];t.addAttribute(d.attributeName,this.staticBuffer,0,d.type===XE.UNSIGNED_BYTE,d.type,4*this.staticStride,4*d.offset)}},GP.prototype.uploadDynamic=function(t,e,i){for(var n=0;n<this.dynamicProperties.length;n++){var r=this.dynamicProperties[n];r.uploadFunction(t,e,i,r.type===XE.UNSIGNED_BYTE?this.dynamicDataUint32:this.dynamicData,this.dynamicStride,r.offset)}this.dynamicBuffer._updateID++},GP.prototype.uploadStatic=function(t,e,i){for(var n=0;n<this.staticProperties.length;n++){var r=this.staticProperties[n];r.uploadFunction(t,e,i,r.type===XE.UNSIGNED_BYTE?this.staticDataUint32:this.staticData,this.staticStride,r.offset)}this.staticBuffer._updateID++},GP.prototype.destroy=function(){this.indexBuffer=null,this.dynamicProperties=null,this.dynamicBuffer=null,this.dynamicData=null,this.dynamicDataUint32=null,this.staticProperties=null,this.staticBuffer=null,this.staticData=null,this.staticDataUint32=null,this.geometry.destroy()};var VP=function(t){function e(e){t.call(this,e),this.shader=null,this.properties=null,this.tempMatrix=new CL,this.properties=[{attributeName:"aVertexPosition",size:2,uploadFunction:this.uploadVertices,offset:0},{attributeName:"aPositionCoord",size:2,uploadFunction:this.uploadPosition,offset:0},{attributeName:"aRotation",size:1,uploadFunction:this.uploadRotation,offset:0},{attributeName:"aTextureCoord",size:2,uploadFunction:this.uploadUvs,offset:0},{attributeName:"aColor",size:1,type:XE.UNSIGNED_BYTE,uploadFunction:this.uploadTint,offset:0}],this.shader=PD.from("attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\nattribute vec4 aColor;\n\nattribute vec2 aPositionCoord;\nattribute float aRotation;\n\nuniform mat3 translationMatrix;\nuniform vec4 uColor;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nvoid main(void){\n float x = (aVertexPosition.x) * cos(aRotation) - (aVertexPosition.y) * sin(aRotation);\n float y = (aVertexPosition.x) * sin(aRotation) + (aVertexPosition.y) * cos(aRotation);\n\n vec2 v = vec2(x, y);\n v = v + aPositionCoord;\n\n gl_Position = vec4((translationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = aTextureCoord;\n vColor = aColor * uColor;\n}\n","varying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler;\n\nvoid main(void){\n vec4 color = texture2D(uSampler, vTextureCoord) * vColor;\n gl_FragColor = color;\n}",{}),this.state=OD.for2d()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.render=function(t){var e=t.children,i=t._maxSize,n=t._batchSize,r=this.renderer,s=e.length;if(0!==s){s>i&&!t.autoResize&&(s=i);var o=t._buffers;o||(o=t._buffers=this.generateBuffers(t));var a=e[0]._texture.baseTexture;this.state.blendMode=aL(t.blendMode,a.alphaMode),r.state.set(this.state);var h,u,l,c,d=r.gl,p=t.worldTransform.copyTo(this.tempMatrix);p.prepend(r.globalUniforms.uniforms.projectionMatrix),this.shader.uniforms.translationMatrix=p.toArray(!0),this.shader.uniforms.uColor=(h=t.tintRgb,u=t.worldAlpha,l=this.shader.uniforms.uColor,c=a.alphaMode,l=l||new Float32Array(4),c||void 0===c?(l[0]=h[0]*u,l[1]=h[1]*u,l[2]=h[2]*u):(l[0]=h[0],l[1]=h[1],l[2]=h[2]),l[3]=u,l),this.shader.uniforms.uSampler=a,this.renderer.shader.bind(this.shader);for(var f=!1,m=0,v=0;m<s;m+=n,v+=1){var g=s-m;g>n&&(g=n),v>=o.length&&o.push(this._generateOneMoreBuffer(t));var y=o[v];y.uploadDynamic(e,m,g);var _=t._bufferUpdateIDs[v]||0;(f=f||y._updateID<_)&&(y._updateID=t._updateID,y.uploadStatic(e,m,g)),r.geometry.bind(y.geometry),d.drawElements(d.TRIANGLES,6*g,d.UNSIGNED_SHORT,0)}}},e.prototype.generateBuffers=function(t){for(var e=[],i=t._maxSize,n=t._batchSize,r=t._properties,s=0;s<i;s+=n)e.push(new GP(this.properties,r,n));return e},e.prototype._generateOneMoreBuffer=function(t){var e=t._batchSize,i=t._properties;return new GP(this.properties,i,e)},e.prototype.uploadVertices=function(t,e,i,n,r,s){for(var o=0,a=0,h=0,u=0,l=0;l<i;++l){var c=t[e+l],d=c._texture,p=c.scale.x,f=c.scale.y,m=d.trim,v=d.orig;m?(o=(a=m.x-c.anchor.x*v.width)+m.width,h=(u=m.y-c.anchor.y*v.height)+m.height):(o=v.width*(1-c.anchor.x),a=v.width*-c.anchor.x,h=v.height*(1-c.anchor.y),u=v.height*-c.anchor.y),n[s]=a*p,n[s+1]=u*f,n[s+r]=o*p,n[s+r+1]=u*f,n[s+2*r]=o*p,n[s+2*r+1]=h*f,n[s+3*r]=a*p,n[s+3*r+1]=h*f,s+=4*r}},e.prototype.uploadPosition=function(t,e,i,n,r,s){for(var o=0;o<i;o++){var a=t[e+o].position;n[s]=a.x,n[s+1]=a.y,n[s+r]=a.x,n[s+r+1]=a.y,n[s+2*r]=a.x,n[s+2*r+1]=a.y,n[s+3*r]=a.x,n[s+3*r+1]=a.y,s+=4*r}},e.prototype.uploadRotation=function(t,e,i,n,r,s){for(var o=0;o<i;o++){var a=t[e+o].rotation;n[s]=a,n[s+r]=a,n[s+2*r]=a,n[s+3*r]=a,s+=4*r}},e.prototype.uploadUvs=function(t,e,i,n,r,s){for(var o=0;o<i;++o){var a=t[e+o]._texture._uvs;a?(n[s]=a.x0,n[s+1]=a.y0,n[s+r]=a.x1,n[s+r+1]=a.y1,n[s+2*r]=a.x2,n[s+2*r+1]=a.y2,n[s+3*r]=a.x3,n[s+3*r+1]=a.y3,s+=4*r):(n[s]=0,n[s+1]=0,n[s+r]=0,n[s+r+1]=0,n[s+2*r]=0,n[s+2*r+1]=0,n[s+3*r]=0,n[s+3*r+1]=0,s+=4*r)}},e.prototype.uploadTint=function(t,e,i,n,r,s){for(var o=0;o<i;++o){var a=t[e+o],h=a._texture.baseTexture.alphaMode>0,u=a.alpha,l=u<1&&h?hL(a._tintRGB,u):a._tintRGB+(255*u<<24);n[s]=l,n[s+r]=l,n[s+2*r]=l,n[s+3*r]=l,s+=4*r}},e.prototype.destroy=function(){t.prototype.destroy.call(this),this.shader&&(this.shader.destroy(),this.shader=null),this.tempMatrix=null},e}(QA),XP={adaptive:!0,maxLength:10,minSegments:8,maxSegments:2048,_segmentsCount:function(t,e){if(void 0===e&&(e=20),!this.adaptive||!t||isNaN(t))return e;var i=Math.ceil(t/this.maxLength);return i<this.minSegments?i=this.minSegments:i>this.maxSegments&&(i=this.maxSegments),i}},qP=function(){this.reset()};qP.prototype.clone=function(){var t=new qP;return t.color=this.color,t.alpha=this.alpha,t.texture=this.texture,t.matrix=this.matrix,t.visible=this.visible,t},qP.prototype.reset=function(){this.color=16777215,this.alpha=1,this.texture=kA.WHITE,this.matrix=null,this.visible=!1},qP.prototype.destroy=function(){this.texture=null,this.matrix=null};var JP={build:function(t){t.points=t.shape.points.slice()},triangulate:function(t,e){var i=t.points,n=t.holes,r=e.points,s=e.indices;if(i.length>=6){for(var o=[],a=0;a<n.length;a++){var h=n[a];o.push(i.length/2),i=i.concat(h.points)}var u=BE()(i,o,2);if(!u)return;for(var l=r.length/2,c=0;c<u.length;c+=3)s.push(u[c]+l),s.push(u[c+1]+l),s.push(u[c+2]+l);for(var d=0;d<i.length;d++)r.push(i[d])}}},ZP={build:function(t){var e,i,n=t.shape,r=t.points,s=n.x,o=n.y;if(r.length=0,t.type===SL.CIRC?(e=n.radius,i=n.radius):(e=n.width,i=n.height),0!==e&&0!==i){var a=Math.floor(30*Math.sqrt(n.radius))||Math.floor(15*Math.sqrt(n.width+n.height));a/=2.3;for(var h=2*Math.PI/a,u=0;u<a-.5;u++)r.push(s+Math.sin(-h*u)*e,o+Math.cos(-h*u)*i);r.push(r[0],r[1])}},triangulate:function(t,e){var i=t.points,n=e.points,r=e.indices,s=n.length/2,o=s,a=t.shape,h=t.matrix,u=a.x,l=a.y;n.push(t.matrix?h.a*u+h.c*l+h.tx:u,t.matrix?h.b*u+h.d*l+h.ty:l);for(var c=0;c<i.length;c+=2)n.push(i[c],i[c+1]),r.push(s++,o,s)}},KP={build:function(t){var e=t.shape,i=e.x,n=e.y,r=e.width,s=e.height,o=t.points;o.length=0,o.push(i,n,i+r,n,i+r,n+s,i,n+s)},triangulate:function(t,e){var i=t.points,n=e.points,r=n.length/2;n.push(i[0],i[1],i[2],i[3],i[6],i[7],i[4],i[5]),e.indices.push(r,r+1,r+2,r+1,r+2,r+3)}},QP={build:function(t){var e=t.shape,i=t.points,n=e.x,r=e.y,s=e.width,o=e.height,a=Math.max(0,Math.min(e.radius,Math.min(s,o)/2));i.length=0,a?(tC(n,r+a,n,r,n+a,r,i),tC(n+s-a,r,n+s,r,n+s,r+a,i),tC(n+s,r+o-a,n+s,r+o,n+s-a,r+o,i),tC(n+a,r+o,n,r+o,n,r+o-a,i)):i.push(n,r,n+s,r,n+s,r+o,n,r+o)},triangulate:function(t,e){for(var i=t.points,n=e.points,r=e.indices,s=n.length/2,o=BE()(i,null,2),a=0,h=o.length;a<h;a+=3)r.push(o[a]+s),r.push(o[a+1]+s),r.push(o[a+2]+s);for(var u=0,l=i.length;u<l;u++)n.push(i[u],i[++u])}};function $P(t,e,i){return t+(e-t)*i}function tC(t,e,i,n,r,s,o){void 0===o&&(o=[]);for(var a=o,h=0,u=0,l=0,c=0,d=0,p=0,f=0,m=0;f<=20;++f)h=$P(t,i,m=f/20),u=$P(e,n,m),l=$P(i,r,m),c=$P(n,s,m),d=$P(h,l,m),p=$P(u,c,m),a.push(d,p);return a}function eC(t,e){t.lineStyle.native?function(t,e){var i=0,n=t.shape,r=t.points||n.points,s=n.type!==SL.POLY||n.closeStroke;if(0===r.length)return;var o=e.points,a=e.indices,h=r.length/2,u=o.length/2,l=u;for(o.push(r[0],r[1]),i=1;i<h;i++)o.push(r[2*i],r[2*i+1]),a.push(l,l+1),l++;s&&a.push(l,u)}(t,e):function(t,e){var i=t.shape,n=t.points||i.points.slice(),r=e.closePointEps;if(0===n.length)return;var s=t.lineStyle,o=new EL(n[0],n[1]),a=new EL(n[n.length-2],n[n.length-1]),h=i.type!==SL.POLY||i.closeStroke,u=Math.abs(o.x-a.x)<r&&Math.abs(o.y-a.y)<r;if(h){n=n.slice(),u&&(n.pop(),n.pop(),a.set(n[n.length-2],n[n.length-1]));var l=a.x+.5*(o.x-a.x),c=a.y+.5*(o.y-a.y);n.unshift(l,c),n.push(l,c)}var d=e.points,p=n.length/2,f=n.length,m=d.length/2,v=s.width/2,g=n[0],y=n[1],_=n[2],x=n[3],b=0,w=0,T=-(y-x),M=g-_,S=0,E=0,L=0,A=0,D=Math.sqrt(T*T+M*M);T/=D,M/=D,T*=v,M*=v;var P=s.alignment,C=2*(1-P),O=2*P;d.push(g-T*C,y-M*C),d.push(g+T*O,y+M*O);for(var k=1;k<p-1;++k){g=n[2*(k-1)],y=n[2*(k-1)+1],_=n[2*k],x=n[2*k+1],b=n[2*(k+1)],w=n[2*(k+1)+1],T=-(y-x),M=g-_,T/=D=Math.sqrt(T*T+M*M),M/=D,T*=v,M*=v,S=-(x-w),E=_-b,S/=D=Math.sqrt(S*S+E*E),E/=D;var R=-M+y-(-M+x),I=-T+_-(-T+g),Y=(-T+g)*(-M+x)-(-T+_)*(-M+y),F=-(E*=v)+w-(-E+x),N=-(S*=v)+_-(-S+b),B=(-S+b)*(-E+x)-(-S+_)*(-E+w),U=R*N-F*I;if(Math.abs(U)<.1)U+=10.1,d.push(_-T*C,x-M*C),d.push(_+T*O,x+M*O);else{var j=(I*B-N*Y)/U,H=(F*Y-R*B)/U;(j-_)*(j-_)+(H-x)*(H-x)>196*v*v?(L=T-S,A=M-E,L/=D=Math.sqrt(L*L+A*A),A/=D,L*=v,A*=v,d.push(_-L*C,x-A*C),d.push(_+L*O,x+A*O),d.push(_-L*O*C,x-A*C),f++):(d.push(_+(j-_)*C,x+(H-x)*C),d.push(_-(j-_)*O,x-(H-x)*O))}}g=n[2*(p-2)],y=n[2*(p-2)+1],_=n[2*(p-1)],x=n[2*(p-1)+1],T=-(y-x),M=g-_,D=Math.sqrt(T*T+M*M),T/=D,M/=D,T*=v,M*=v,d.push(_-T*C,x-M*C),d.push(_+T*O,x+M*O);for(var z=e.indices,W=0;W<f-2;++W)z.push(m,m+1,m+2),m++}(t,e)}var iC=function(t){function e(e,i,n,r,s,o){s=s||r/2;for(var a=-1*Math.PI/2+o,h=2*n,u=AL/h,l=[],c=0;c<h;c++){var d=c%2?s:r,p=c*u+a;l.push(e+d*Math.cos(p),i+d*Math.sin(p))}t.call(this,l)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(WL),nC=function(){};nC.curveTo=function(t,e,i,n,r,s){var o=s[s.length-2],a=s[s.length-1]-e,h=o-t,u=n-e,l=i-t,c=Math.abs(a*l-h*u);if(c<1e-8||0===r)return s[s.length-2]===t&&s[s.length-1]===e||s.push(t,e),null;var d=a*a+h*h,p=u*u+l*l,f=a*u+h*l,m=r*Math.sqrt(d)/c,v=r*Math.sqrt(p)/c,g=m*f/d,y=v*f/p,_=m*l+v*h,x=m*u+v*a,b=h*(v+g),w=a*(v+g),T=l*(m+y),M=u*(m+y);return{cx:_+t,cy:x+e,radius:r,startAngle:Math.atan2(w-x,b-_),endAngle:Math.atan2(M-x,T-_),anticlockwise:h*u>l*a}},nC.arc=function(t,e,i,n,r,s,o,a,h){for(var u=o-s,l=XP._segmentsCount(Math.abs(u)*r,40*Math.ceil(Math.abs(u)/AL)),c=u/(2*l),d=2*c,p=Math.cos(c),f=Math.sin(c),m=l-1,v=m%1/m,g=0;g<=m;++g){var y=c+s+d*(g+v*g),_=Math.cos(y),x=-Math.sin(y);h.push((p*_+f*x)*r+i,(p*-x+f*_)*r+n)}};var rC=function(){};rC.curveLength=function(t,e,i,n,r,s,o,a){for(var h=0,u=0,l=0,c=0,d=0,p=0,f=0,m=0,v=0,g=0,y=0,_=t,x=e,b=1;b<=10;++b)g=_-(m=(f=(p=(d=1-(u=b/10))*d)*d)*t+3*p*u*i+3*d*(l=u*u)*r+(c=l*u)*o),y=x-(v=f*e+3*p*u*n+3*d*l*s+c*a),_=m,x=v,h+=Math.sqrt(g*g+y*y);return h},rC.curveTo=function(t,e,i,n,r,s,o){var a=o[o.length-2],h=o[o.length-1];o.length-=2;var u=XP._segmentsCount(rC.curveLength(a,h,t,e,i,n,r,s)),l=0,c=0,d=0,p=0,f=0;o.push(a,h);for(var m=1,v=0;m<=u;++m)d=(c=(l=1-(v=m/u))*l)*l,f=(p=v*v)*v,o.push(d*a+3*c*v*t+3*l*p*i+f*r,d*h+3*c*v*e+3*l*p*n+f*s)};var sC=function(){};sC.curveLength=function(t,e,i,n,r,s){var o=t-2*i+r,a=e-2*n+s,h=2*i-2*t,u=2*n-2*e,l=4*(o*o+a*a),c=4*(o*h+a*u),d=h*h+u*u,p=2*Math.sqrt(l+c+d),f=Math.sqrt(l),m=2*l*f,v=2*Math.sqrt(d),g=c/f;return(m*p+f*c*(p-v)+(4*d*l-c*c)*Math.log((2*f+g+p)/(g+v)))/(4*m)},sC.curveTo=function(t,e,i,n,r){for(var s=r[r.length-2],o=r[r.length-1],a=XP._segmentsCount(sC.curveLength(s,o,t,e,i,n)),h=0,u=0,l=1;l<=a;++l){var c=l/a;h=s+(t-s)*c,u=o+(e-o)*c,r.push(h+(t+(i-t)*c-h)*c,u+(e+(n-e)*c-u)*c)}};var oC=function(){this.reset()};oC.prototype.begin=function(t,e,i){this.reset(),this.style=t,this.start=e,this.attribStart=i},oC.prototype.end=function(t,e){this.attribSize=e-this.attribStart,this.size=t-this.start},oC.prototype.reset=function(){this.style=null,this.size=0,this.start=0,this.attribStart=0,this.attribSize=0};var aC={};aC[SL.POLY]=JP,aC[SL.CIRC]=ZP,aC[SL.ELIP]=ZP,aC[SL.RECT]=KP,aC[SL.RREC]=QP;var hC=[],uC=[],lC=function(t,e,i,n){void 0===e&&(e=null),void 0===i&&(i=null),void 0===n&&(n=null),this.shape=t,this.lineStyle=i,this.fillStyle=e,this.matrix=n,this.type=t.type,this.points=[],this.holes=[]};lC.prototype.clone=function(){return new lC(this.shape,this.fillStyle,this.lineStyle,this.matrix)},lC.prototype.destroy=function(){this.shape=null,this.holes.length=0,this.holes=null,this.points.length=0,this.points=null,this.lineStyle=null,this.fillStyle=null};var cC=new EL,dC=new VL,pC=function(t){function e(){t.call(this),this.points=[],this.colors=[],this.uvs=[],this.indices=[],this.textureIds=[],this.graphicsData=[],this.dirty=0,this.batchDirty=-1,this.cacheDirty=-1,this.clearDirty=0,this.drawCalls=[],this.batches=[],this.shapeIndex=0,this._bounds=new VL,this.boundsDirty=-1,this.boundsPadding=0,this.batchable=!1,this.indicesUint16=null,this.uvsFloat32=null,this.closePointEps=1e-4}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={bounds:{configurable:!0}};return i.bounds.get=function(){return this.boundsDirty!==this.dirty&&(this.boundsDirty=this.dirty,this.calculateBounds()),this._bounds},e.prototype.invalidate=function(){this.boundsDirty=-1,this.dirty++,this.batchDirty++,this.shapeIndex=0,this.points.length=0,this.colors.length=0,this.uvs.length=0,this.indices.length=0,this.textureIds.length=0;for(var t=0;t<this.drawCalls.length;t++)this.drawCalls[t].textures.length=0,uC.push(this.drawCalls[t]);this.drawCalls.length=0;for(var e=0;e<this.batches.length;e++){var i=this.batches[e];i.reset(),hC.push(i)}this.batches.length=0},e.prototype.clear=function(){return this.graphicsData.length>0&&(this.invalidate(),this.clearDirty++,this.graphicsData.length=0),this},e.prototype.drawShape=function(t,e,i,n){var r=new lC(t,e,i,n);return this.graphicsData.push(r),this.dirty++,this},e.prototype.drawHole=function(t,e){if(!this.graphicsData.length)return null;var i=new lC(t,null,null,e),n=this.graphicsData[this.graphicsData.length-1];return i.lineStyle=n.lineStyle,n.holes.push(i),this.dirty++,this},e.prototype.destroy=function(e){t.prototype.destroy.call(this,e);for(var i=0;i<this.graphicsData.length;++i)this.graphicsData[i].destroy();this.points.length=0,this.points=null,this.colors.length=0,this.colors=null,this.uvs.length=0,this.uvs=null,this.indices.length=0,this.indices=null,this.indexBuffer.destroy(),this.indexBuffer=null,this.graphicsData.length=0,this.graphicsData=null,this.drawCalls.length=0,this.drawCalls=null,this.batches.length=0,this.batches=null,this._bounds=null},e.prototype.containsPoint=function(t){for(var e=this.graphicsData,i=0;i<e.length;++i){var n=e[i];if(n.fillStyle.visible&&(n.shape&&(n.matrix?n.matrix.applyInverse(t,cC):cC.copyFrom(t),n.shape.contains(cC.x,cC.y)))){var r=!1;if(n.holes)for(var s=0;s<n.holes.length;s++){if(n.holes[s].shape.contains(cC.x,cC.y)){r=!0;break}}if(!r)return!0}}return!1},e.prototype.updateBatches=function(){if(this.graphicsData.length){if(this.validateBatching()){this.cacheDirty=this.dirty;var t=this.uvs,e=this.graphicsData,i=null,n=null;this.batches.length>0&&(n=(i=this.batches[this.batches.length-1]).style);for(var r=this.shapeIndex;r<e.length;r++){this.shapeIndex++;var s=e[r],o=s.fillStyle,a=s.lineStyle;aC[s.type].build(s),s.matrix&&this.transformPoints(s.points,s.matrix);for(var h=0;h<2;h++){var u=0===h?o:a;if(u.visible){var l=u.texture.baseTexture,c=this.indices.length,d=this.points.length/2;l.wrapMode=JE.REPEAT,0===h?this.processFill(s):this.processLine(s);var p=this.points.length/2-d;0!==p&&(i&&!this._compareStyles(n,u)&&(i.end(c,d),i=null),i||((i=hC.pop()||new oC).begin(u,c,d),this.batches.push(i),n=u),this.addUvs(this.points,t,u.texture,d,p,u.matrix))}}}if(i){var f=this.indices.length,m=this.points.length/2;i.end(f,m)}0!==this.batches.length?(this.indicesUint16=new Uint16Array(this.indices),this.batchable=this.isBatchable(),this.batchable?this.packBatches():this.buildDrawCalls()):this.batchable=!0}}else this.batchable=!0},e.prototype._compareStyles=function(t,e){return!(!t||!e)&&(t.texture.baseTexture===e.texture.baseTexture&&(t.color+t.alpha===e.color+e.alpha&&!!t.native==!!e.native))},e.prototype.validateBatching=function(){if(this.dirty===this.cacheDirty||!this.graphicsData.length)return!1;for(var t=0,e=this.graphicsData.length;t<e;t++){var i=this.graphicsData[t],n=i.fillStyle,r=i.lineStyle;if(n&&!n.texture.baseTexture.valid)return!1;if(r&&!r.texture.baseTexture.valid)return!1}return!0},e.prototype.packBatches=function(){this.batchDirty++,this.uvsFloat32=new Float32Array(this.uvs);for(var t=this.batches,e=0,i=t.length;e<i;e++)for(var n=t[e],r=0;r<n.size;r++){var s=n.start+r;this.indicesUint16[s]=this.indicesUint16[s]-n.attribStart}},e.prototype.isBatchable=function(){for(var t=this.batches,i=0;i<t.length;i++)if(t[i].style.native)return!1;return this.points.length<2*e.BATCHABLE_SIZE},e.prototype.buildDrawCalls=function(){for(var t=++_A._globalBatch,e=0;e<this.drawCalls.length;e++)this.drawCalls[e].textures.length=0,uC.push(this.drawCalls[e]);this.drawCalls.length=0;var i=this.colors,n=this.textureIds,r=uC.pop();r||((r=new nP).textures=new rP),r.textures.count=0,r.start=0,r.size=0,r.type=WE.TRIANGLES;var s=0,o=null,a=0,h=!1,u=WE.TRIANGLES,l=0;this.drawCalls.push(r);for(var c=0;c<this.batches.length;c++){var d=this.batches[c],p=d.style,f=p.texture.baseTexture;h!==!!p.native&&(u=(h=!!p.native)?WE.LINES:WE.TRIANGLES,o=null,s=8,t++),o!==f&&(o=f,f._batchEnabled!==t&&(8===s&&(t++,s=0,r.size>0&&((r=uC.pop())||((r=new nP).textures=new rP),this.drawCalls.push(r)),r.start=l,r.size=0,r.textures.count=0,r.type=u),f.touched=1,f._batchEnabled=t,f._batchLocation=s,f.wrapMode=10497,r.textures.elements[r.textures.count++]=f,s++)),r.size+=d.size,l+=d.size,a=f._batchLocation,this.addColors(i,p.color,p.alpha,d.attribSize),this.addTextureIds(n,a,d.attribSize)}_A._globalBatch=t,this.packAttributes()},e.prototype.packAttributes=function(){for(var t=this.points,e=this.uvs,i=this.colors,n=this.textureIds,r=new ArrayBuffer(3*t.length*4),s=new Float32Array(r),o=new Uint32Array(r),a=0,h=0;h<t.length/2;h++)s[a++]=t[2*h],s[a++]=t[2*h+1],s[a++]=e[2*h],s[a++]=e[2*h+1],o[a++]=i[h],s[a++]=n[h];this._buffer.update(r),this._indexBuffer.update(this.indicesUint16)},e.prototype.processFill=function(t){t.holes.length?(this.processHoles(t.holes),JP.triangulate(t,this)):aC[t.type].triangulate(t,this)},e.prototype.processLine=function(t){eC(t,this);for(var e=0;e<t.holes.length;e++)eC(t.holes[e],this)},e.prototype.processHoles=function(t){for(var e=0;e<t.length;e++){var i=t[e];aC[i.type].build(i),i.matrix&&this.transformPoints(i.points,i.matrix)}},e.prototype.calculateBounds=function(){var t=this._bounds,e=dC,i=CL.IDENTITY;this._bounds.clear(),e.clear();for(var n=0;n<this.graphicsData.length;n++){var r=this.graphicsData[n],s=r.shape,o=r.type,a=r.lineStyle,h=r.matrix||CL.IDENTITY,u=0;if(a&&a.visible){var l=a.alignment;u=a.width,o===SL.POLY?u*=.5+Math.abs(.5-l):u*=Math.max(0,l)}i!==h&&(e.isEmpty()||(t.addBoundsMatrix(e,i),e.clear()),i=h),o===SL.RECT||o===SL.RREC?e.addFramePad(s.x,s.y,s.x+s.width,s.y+s.height,u,u):o===SL.CIRC?e.addFramePad(s.x,s.y,s.x,s.y,s.radius+u,s.radius+u):o===SL.ELIP?e.addFramePad(s.x,s.y,s.x,s.y,s.width+u,s.height+u):t.addVerticesMatrix(i,s.points,0,s.points.length,u,u)}e.isEmpty()||t.addBoundsMatrix(e,i),t.pad(this.boundsPadding,this.boundsPadding)},e.prototype.transformPoints=function(t,e){for(var i=0;i<t.length/2;i++){var n=t[2*i],r=t[2*i+1];t[2*i]=e.a*n+e.c*r+e.tx,t[2*i+1]=e.b*n+e.d*r+e.ty}},e.prototype.addColors=function(t,e,i,n){for(var r=hL((e>>16)+(65280&e)+((255&e)<<16),i);n-- >0;)t.push(r)},e.prototype.addTextureIds=function(t,e,i){for(;i-- >0;)t.push(e)},e.prototype.addUvs=function(t,e,i,n,r,s){for(var o=0,a=e.length,h=i.frame;o<r;){var u=t[2*(n+o)],l=t[2*(n+o)+1];if(s){var c=s.a*u+s.c*l+s.tx;l=s.b*u+s.d*l+s.ty,u=c}o++,e.push(u/h.width,l/h.height)}var d=i.baseTexture;(h.width<d.width||h.height<d.height)&&this.adjustUvs(e,i,a,r)},e.prototype.adjustUvs=function(t,e,i,n){for(var r=e.baseTexture,s=1e-6,o=i+2*n,a=e.frame,h=a.width/r.width,u=a.height/r.height,l=a.x/a.width,c=a.y/a.height,d=Math.floor(t[i]+s),p=Math.floor(t[i+1]+s),f=i+2;f<o;f+=2)d=Math.min(d,Math.floor(t[f]+s)),p=Math.min(p,Math.floor(t[f+1]+s));l-=d,c-=p;for(var m=i;m<o;m+=2)t[m]=(t[m]+l)*h,t[m+1]=(t[m+1]+c)*u},Object.defineProperties(e.prototype,i),e}(uP);pC.BATCHABLE_SIZE=100;var fC=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.clone=function(){var t=new e;return t.color=this.color,t.alpha=this.alpha,t.texture=this.texture,t.matrix=this.matrix,t.visible=this.visible,t.width=this.width,t.alignment=this.alignment,t.native=this.native,t},e.prototype.reset=function(){t.prototype.reset.call(this),this.color=0,this.width=0,this.alignment=.5,this.native=!1},e}(qP),mC=new Float32Array(3),vC={},gC=function(t){function e(e){void 0===e&&(e=null),t.call(this),this.geometry=e||new pC,this.geometry.refCount++,this.shader=null,this.state=OD.for2d(),this._fillStyle=new qP,this._lineStyle=new fC,this._matrix=null,this._holeMode=!1,this.currentPath=null,this.batches=[],this.batchTint=-1,this.vertexData=null,this._transformID=-1,this.batchDirty=-1,this.pluginName="batch",this.tint=16777215,this.blendMode=zE.NORMAL}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={blendMode:{configurable:!0},tint:{configurable:!0},fill:{configurable:!0},line:{configurable:!0}};return e.prototype.clone=function(){return this.finishPoly(),new e(this.geometry)},i.blendMode.set=function(t){this.state.blendMode=t},i.blendMode.get=function(){return this.state.blendMode},i.tint.get=function(){return this._tint},i.tint.set=function(t){this._tint=t},i.fill.get=function(){return this._fillStyle},i.line.get=function(){return this._lineStyle},e.prototype.lineStyle=function(t){if("number"==typeof t){var e=arguments;t={width:e[0]||0,color:e[1]||0,alpha:void 0!==e[2]?e[2]:1,alignment:void 0!==e[3]?e[3]:.5,native:!!e[4]}}return this.lineTextureStyle(t)},e.prototype.lineTextureStyle=function(t){if("number"==typeof t){yL("v5.2.0","Please use object-based options for Graphics#lineTextureStyle");var e=arguments[0],i=arguments[1],n=arguments[2],r=arguments[3],s=arguments[4],o=arguments[5],a=arguments[6];t={width:e,texture:i,color:n,alpha:r,matrix:s,alignment:o,native:a},Object.keys(t).forEach((function(e){return void 0===t[e]&&delete t[e]}))}t=Object.assign({width:0,texture:kA.WHITE,color:t&&t.texture?16777215:0,alpha:1,matrix:null,alignment:.5,native:!1},t),this.currentPath&&this.startPoly();var h=t.width>0&&t.alpha>0;return h?(t.matrix&&(t.matrix=t.matrix.clone(),t.matrix.invert()),Object.assign(this._lineStyle,{visible:h},t)):this._lineStyle.reset(),this},e.prototype.startPoly=function(){if(this.currentPath){var t=this.currentPath.points,e=this.currentPath.points.length;e>2&&(this.drawShape(this.currentPath),this.currentPath=new WL,this.currentPath.closeStroke=!1,this.currentPath.points.push(t[e-2],t[e-1]))}else this.currentPath=new WL,this.currentPath.closeStroke=!1},e.prototype.finishPoly=function(){this.currentPath&&(this.currentPath.points.length>2?(this.drawShape(this.currentPath),this.currentPath=null):this.currentPath.points.length=0)},e.prototype.moveTo=function(t,e){return this.startPoly(),this.currentPath.points[0]=t,this.currentPath.points[1]=e,this},e.prototype.lineTo=function(t,e){this.currentPath||this.moveTo(0,0);var i=this.currentPath.points,n=i[i.length-2],r=i[i.length-1];return n===t&&r===e||i.push(t,e),this},e.prototype._initCurve=function(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.currentPath?0===this.currentPath.points.length&&(this.currentPath.points=[t,e]):this.moveTo(t,e)},e.prototype.quadraticCurveTo=function(t,e,i,n){this._initCurve();var r=this.currentPath.points;return 0===r.length&&this.moveTo(0,0),sC.curveTo(t,e,i,n,r),this},e.prototype.bezierCurveTo=function(t,e,i,n,r,s){return this._initCurve(),rC.curveTo(t,e,i,n,r,s,this.currentPath.points),this},e.prototype.arcTo=function(t,e,i,n,r){this._initCurve(t,e);var s=this.currentPath.points,o=nC.curveTo(t,e,i,n,r,s);if(o){var a=o.cx,h=o.cy,u=o.radius,l=o.startAngle,c=o.endAngle,d=o.anticlockwise;this.arc(a,h,u,l,c,d)}return this},e.prototype.arc=function(t,e,i,n,r,s){if(void 0===s&&(s=!1),n===r)return this;if(!s&&r<=n?r+=AL:s&&n<=r&&(n+=AL),0===r-n)return this;var o=t+Math.cos(n)*i,a=e+Math.sin(n)*i,h=this.geometry.closePointEps,u=this.currentPath?this.currentPath.points:null;if(u){var l=Math.abs(u[u.length-2]-o),c=Math.abs(u[u.length-1]-a);l<h&&c<h||u.push(o,a)}else this.moveTo(o,a),u=this.currentPath.points;return nC.arc(o,a,t,e,i,n,r,s,u),this},e.prototype.beginFill=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=1),this.beginTextureFill({texture:kA.WHITE,color:t,alpha:e})},e.prototype.beginTextureFill=function(t){if(t instanceof kA){yL("v5.2.0","Please use object-based options for Graphics#beginTextureFill");var e=arguments[0],i=arguments[1],n=arguments[2],r=arguments[3];t={texture:e,color:i,alpha:n,matrix:r},Object.keys(t).forEach((function(e){return void 0===t[e]&&delete t[e]}))}t=Object.assign({texture:kA.WHITE,color:16777215,alpha:1,matrix:null},t),this.currentPath&&this.startPoly();var s=t.alpha>0;return s?(t.matrix&&(t.matrix=t.matrix.clone(),t.matrix.invert()),Object.assign(this._fillStyle,{visible:s},t)):this._fillStyle.reset(),this},e.prototype.endFill=function(){return this.finishPoly(),this._fillStyle.reset(),this},e.prototype.drawRect=function(t,e,i,n){return this.drawShape(new jL(t,e,i,n))},e.prototype.drawRoundedRect=function(t,e,i,n,r){return this.drawShape(new GL(t,e,i,n,r))},e.prototype.drawCircle=function(t,e,i){return this.drawShape(new HL(t,e,i))},e.prototype.drawEllipse=function(t,e,i,n){return this.drawShape(new zL(t,e,i,n))},e.prototype.drawPolygon=function(t){var e=arguments,i=t,n=!0;if(i.points&&(n=i.closeStroke,i=i.points),!Array.isArray(i)){i=new Array(arguments.length);for(var r=0;r<i.length;++r)i[r]=e[r]}var s=new WL(i);return s.closeStroke=n,this.drawShape(s),this},e.prototype.drawShape=function(t){return this._holeMode?this.geometry.drawHole(t,this._matrix):this.geometry.drawShape(t,this._fillStyle.clone(),this._lineStyle.clone(),this._matrix),this},e.prototype.drawStar=function(t,e,i,n,r,s){return void 0===s&&(s=0),this.drawPolygon(new iC(t,e,i,n,r,s))},e.prototype.clear=function(){return this.geometry.clear(),this._lineStyle.reset(),this._fillStyle.reset(),this._matrix=null,this._holeMode=!1,this.currentPath=null,this},e.prototype.isFastRect=function(){return 1===this.geometry.graphicsData.length&&this.geometry.graphicsData[0].shape.type===SL.RECT&&!this.geometry.graphicsData[0].lineWidth},e.prototype._render=function(t){this.finishPoly();var e=this.geometry;e.updateBatches(),e.batchable?(this.batchDirty!==e.batchDirty&&this._populateBatches(),this._renderBatched(t)):(t.batch.flush(),this._renderDirect(t))},e.prototype._populateBatches=function(){var t=this.geometry,e=this.blendMode;this.batches=[],this.batchTint=-1,this._transformID=-1,this.batchDirty=t.batchDirty,this.vertexData=new Float32Array(t.points);for(var i=0,n=t.batches.length;i<n;i++){var r=t.batches[i],s=r.style.color,o=new Float32Array(this.vertexData.buffer,4*r.attribStart*2,2*r.attribSize),a=new Float32Array(t.uvsFloat32.buffer,4*r.attribStart*2,2*r.attribSize),h={vertexData:o,blendMode:e,indices:new Uint16Array(t.indicesUint16.buffer,2*r.start,r.size),uvs:a,_batchRGB:rL(s),_tintRGB:s,_texture:r.style.texture,alpha:r.style.alpha,worldAlpha:1};this.batches[i]=h}},e.prototype._renderBatched=function(t){if(this.batches.length){t.batch.setObjectRenderer(t.plugins[this.pluginName]),this.calculateVertices(),this.calculateTints();for(var e=0,i=this.batches.length;e<i;e++){var n=this.batches[e];n.worldAlpha=this.worldAlpha*n.alpha,t.plugins[this.pluginName].render(n)}}},e.prototype._renderDirect=function(t){var e=this._resolveDirectShader(t),i=this.geometry,n=this.tint,r=this.worldAlpha,s=e.uniforms,o=i.drawCalls;s.translationMatrix=this.transform.worldTransform,s.tint[0]=(n>>16&255)/255*r,s.tint[1]=(n>>8&255)/255*r,s.tint[2]=(255&n)/255*r,s.tint[3]=r,t.shader.bind(e),t.geometry.bind(i,e),t.state.set(this.state);for(var a=0,h=o.length;a<h;a++)this._renderDrawCallDirect(t,i.drawCalls[a])},e.prototype._renderDrawCallDirect=function(t,e){for(var i=e.textures,n=e.type,r=e.size,s=e.start,o=i.count,a=0;a<o;a++)t.texture.bind(i.elements[a],a);t.geometry.draw(n,r,s)},e.prototype._resolveDirectShader=function(t){var e=this.shader,i=this.pluginName;if(!e){if(!vC[i]){for(var n=new Int32Array(16),r=0;r<16;r++)n[r]=r;var s={tint:new Float32Array([1,1,1,1]),translationMatrix:new CL,default:JA.from({uSamplers:n},!0)},o=t.plugins[i]._shader.program;vC[i]=new PD(o,s)}e=vC[i]}return e},e.prototype._calculateBounds=function(){this.finishPoly();var t=this.geometry;if(t.graphicsData.length){var e=t.bounds,i=e.minX,n=e.minY,r=e.maxX,s=e.maxY;this._bounds.addFrame(this.transform,i,n,r,s)}},e.prototype.containsPoint=function(t){return this.worldTransform.applyInverse(t,e._TEMP_POINT),this.geometry.containsPoint(e._TEMP_POINT)},e.prototype.calculateTints=function(){if(this.batchTint!==this.tint){this.batchTint=this.tint;for(var t=rL(this.tint,mC),e=0;e<this.batches.length;e++){var i=this.batches[e],n=i._batchRGB,r=(t[0]*n[0]*255<<16)+(t[1]*n[1]*255<<8)+(0|t[2]*n[2]*255);i._tintRGB=(r>>16)+(65280&r)+((255&r)<<16)}}},e.prototype.calculateVertices=function(){if(this._transformID!==this.transform._worldID){this._transformID=this.transform._worldID;for(var t=this.transform.worldTransform,e=t.a,i=t.b,n=t.c,r=t.d,s=t.tx,o=t.ty,a=this.geometry.points,h=this.vertexData,u=0,l=0;l<a.length;l+=2){var c=a[l],d=a[l+1];h[u++]=e*c+n*d+s,h[u++]=r*d+i*c+o}}},e.prototype.closePath=function(){var t=this.currentPath;return t&&(t.closeStroke=!0),this},e.prototype.setMatrix=function(t){return this._matrix=t,this},e.prototype.beginHole=function(){return this.finishPoly(),this._holeMode=!0,this},e.prototype.endHole=function(){return this.finishPoly(),this._holeMode=!1,this},e.prototype.destroy=function(e){t.prototype.destroy.call(this,e),this.geometry.refCount--,0===this.geometry.refCount&&this.geometry.dispose(),this._matrix=null,this.currentPath=null,this._lineStyle.destroy(),this._lineStyle=null,this._fillStyle.destroy(),this._fillStyle=null,this.geometry=null,this.shader=null,this.vertexData=null,this.batches.length=0,this.batches=null,t.prototype.destroy.call(this,e)},Object.defineProperties(e.prototype,i),e}(JL);gC._TEMP_POINT=new EL;var yC=new EL,_C=new Uint16Array([0,1,2,0,2,3]),xC=function(t){function e(e){t.call(this),this._anchor=new LL(this._onAnchorUpdate,this,e?e.defaultAnchor.x:0,e?e.defaultAnchor.y:0),this._texture=null,this._width=0,this._height=0,this._tint=null,this._tintRGB=null,this.tint=16777215,this.blendMode=zE.NORMAL,this.shader=null,this._cachedTint=16777215,this.uvs=null,this.texture=e||kA.EMPTY,this.vertexData=new Float32Array(8),this.vertexTrimmedData=null,this._transformID=-1,this._textureID=-1,this._transformTrimmedID=-1,this._textureTrimmedID=-1,this.indices=_C,this.pluginName="batch",this.isSprite=!0,this._roundPixels=IE.ROUND_PIXELS}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={roundPixels:{configurable:!0},width:{configurable:!0},height:{configurable:!0},anchor:{configurable:!0},tint:{configurable:!0},texture:{configurable:!0}};return e.prototype._onTextureUpdate=function(){this._textureID=-1,this._textureTrimmedID=-1,this._cachedTint=16777215,this._width&&(this.scale.x=fL(this.scale.x)*this._width/this._texture.orig.width),this._height&&(this.scale.y=fL(this.scale.y)*this._height/this._texture.orig.height)},e.prototype._onAnchorUpdate=function(){this._transformID=-1,this._transformTrimmedID=-1},e.prototype.calculateVertices=function(){var t=this._texture;if(this._transformID!==this.transform._worldID||this._textureID!==t._updateID){this._textureID!==t._updateID&&(this.uvs=this._texture._uvs.uvsFloat32),this._transformID=this.transform._worldID,this._textureID=t._updateID;var e=this.transform.worldTransform,i=e.a,n=e.b,r=e.c,s=e.d,o=e.tx,a=e.ty,h=this.vertexData,u=t.trim,l=t.orig,c=this._anchor,d=0,p=0,f=0,m=0;if(u?(d=(p=u.x-c._x*l.width)+u.width,f=(m=u.y-c._y*l.height)+u.height):(d=(p=-c._x*l.width)+l.width,f=(m=-c._y*l.height)+l.height),h[0]=i*p+r*m+o,h[1]=s*m+n*p+a,h[2]=i*d+r*m+o,h[3]=s*m+n*d+a,h[4]=i*d+r*f+o,h[5]=s*f+n*d+a,h[6]=i*p+r*f+o,h[7]=s*f+n*p+a,this._roundPixels)for(var v=IE.RESOLUTION,g=0;g<h.length;++g)h[g]=Math.round((h[g]*v|0)/v)}},e.prototype.calculateTrimmedVertices=function(){if(this.vertexTrimmedData){if(this._transformTrimmedID===this.transform._worldID&&this._textureTrimmedID===this._texture._updateID)return}else this.vertexTrimmedData=new Float32Array(8);this._transformTrimmedID=this.transform._worldID,this._textureTrimmedID=this._texture._updateID;var t=this._texture,e=this.vertexTrimmedData,i=t.orig,n=this._anchor,r=this.transform.worldTransform,s=r.a,o=r.b,a=r.c,h=r.d,u=r.tx,l=r.ty,c=-n._x*i.width,d=c+i.width,p=-n._y*i.height,f=p+i.height;e[0]=s*c+a*p+u,e[1]=h*p+o*c+l,e[2]=s*d+a*p+u,e[3]=h*p+o*d+l,e[4]=s*d+a*f+u,e[5]=h*f+o*d+l,e[6]=s*c+a*f+u,e[7]=h*f+o*c+l},e.prototype._render=function(t){this.calculateVertices(),t.batch.setObjectRenderer(t.plugins[this.pluginName]),t.plugins[this.pluginName].render(this)},e.prototype._calculateBounds=function(){var t=this._texture.trim,e=this._texture.orig;!t||t.width===e.width&&t.height===e.height?(this.calculateVertices(),this._bounds.addQuad(this.vertexData)):(this.calculateTrimmedVertices(),this._bounds.addQuad(this.vertexTrimmedData))},e.prototype.getLocalBounds=function(e){return 0===this.children.length?(this._bounds.minX=this._texture.orig.width*-this._anchor._x,this._bounds.minY=this._texture.orig.height*-this._anchor._y,this._bounds.maxX=this._texture.orig.width*(1-this._anchor._x),this._bounds.maxY=this._texture.orig.height*(1-this._anchor._y),e||(this._localBoundsRect||(this._localBoundsRect=new jL),e=this._localBoundsRect),this._bounds.getRectangle(e)):t.prototype.getLocalBounds.call(this,e)},e.prototype.containsPoint=function(t){this.worldTransform.applyInverse(t,yC);var e=this._texture.orig.width,i=this._texture.orig.height,n=-e*this.anchor.x,r=0;return yC.x>=n&&yC.x<n+e&&(r=-i*this.anchor.y,yC.y>=r&&yC.y<r+i)},e.prototype.destroy=function(e){if(t.prototype.destroy.call(this,e),this._texture.off("update",this._onTextureUpdate,this),this._anchor=null,"boolean"==typeof e?e:e&&e.texture){var i="boolean"==typeof e?e:e&&e.baseTexture;this._texture.destroy(!!i)}this._texture=null,this.shader=null},e.from=function(t,i){return new e(t instanceof kA?t:kA.from(t,i))},i.roundPixels.set=function(t){this._roundPixels!==t&&(this._transformID=-1),this._roundPixels=t},i.roundPixels.get=function(){return this._roundPixels},i.width.get=function(){return Math.abs(this.scale.x)*this._texture.orig.width},i.width.set=function(t){var e=fL(this.scale.x)||1;this.scale.x=e*t/this._texture.orig.width,this._width=t},i.height.get=function(){return Math.abs(this.scale.y)*this._texture.orig.height},i.height.set=function(t){var e=fL(this.scale.y)||1;this.scale.y=e*t/this._texture.orig.height,this._height=t},i.anchor.get=function(){return this._anchor},i.anchor.set=function(t){this._anchor.copyFrom(t)},i.tint.get=function(){return this._tint},i.tint.set=function(t){this._tint=t,this._tintRGB=(t>>16)+(65280&t)+((255&t)<<16)},i.texture.get=function(){return this._texture},i.texture.set=function(t){this._texture!==t&&(this._texture&&this._texture.off("update",this._onTextureUpdate,this),this._texture=t||kA.EMPTY,this._cachedTint=16777215,this._textureID=-1,this._textureTrimmedID=-1,t&&(t.baseTexture.valid?this._onTextureUpdate():t.once("update",this._onTextureUpdate,this)))},Object.defineProperties(e.prototype,i),e}(JL),bC=0,wC={align:"left",breakWords:!1,dropShadow:!1,dropShadowAlpha:1,dropShadowAngle:Math.PI/6,dropShadowBlur:0,dropShadowColor:"black",dropShadowDistance:5,fill:"black",fillGradientType:bC,fillGradientStops:[],fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",letterSpacing:0,lineHeight:0,lineJoin:"miter",miterLimit:10,padding:0,stroke:"black",strokeThickness:0,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100,leading:0},TC=["serif","sans-serif","monospace","cursive","fantasy","system-ui"],MC=function(t){this.styleID=0,this.reset(),AC(this,t,t)},SC={align:{configurable:!0},breakWords:{configurable:!0},dropShadow:{configurable:!0},dropShadowAlpha:{configurable:!0},dropShadowAngle:{configurable:!0},dropShadowBlur:{configurable:!0},dropShadowColor:{configurable:!0},dropShadowDistance:{configurable:!0},fill:{configurable:!0},fillGradientType:{configurable:!0},fillGradientStops:{configurable:!0},fontFamily:{configurable:!0},fontSize:{configurable:!0},fontStyle:{configurable:!0},fontVariant:{configurable:!0},fontWeight:{configurable:!0},letterSpacing:{configurable:!0},lineHeight:{configurable:!0},leading:{configurable:!0},lineJoin:{configurable:!0},miterLimit:{configurable:!0},padding:{configurable:!0},stroke:{configurable:!0},strokeThickness:{configurable:!0},textBaseline:{configurable:!0},trim:{configurable:!0},whiteSpace:{configurable:!0},wordWrap:{configurable:!0},wordWrapWidth:{configurable:!0}};function EC(t){return"number"==typeof t?sL(t):("string"==typeof t&&0===t.indexOf("0x")&&(t=t.replace("0x","#")),t)}function LC(t){if(Array.isArray(t)){for(var e=0;e<t.length;++e)t[e]=EC(t[e]);return t}return EC(t)}function AC(t,e,i){for(var n in i)Array.isArray(e[n])?t[n]=e[n].slice():t[n]=e[n]}MC.prototype.clone=function(){var t={};return AC(t,this,wC),new MC(t)},MC.prototype.reset=function(){AC(this,wC,wC)},SC.align.get=function(){return this._align},SC.align.set=function(t){this._align!==t&&(this._align=t,this.styleID++)},SC.breakWords.get=function(){return this._breakWords},SC.breakWords.set=function(t){this._breakWords!==t&&(this._breakWords=t,this.styleID++)},SC.dropShadow.get=function(){return this._dropShadow},SC.dropShadow.set=function(t){this._dropShadow!==t&&(this._dropShadow=t,this.styleID++)},SC.dropShadowAlpha.get=function(){return this._dropShadowAlpha},SC.dropShadowAlpha.set=function(t){this._dropShadowAlpha!==t&&(this._dropShadowAlpha=t,this.styleID++)},SC.dropShadowAngle.get=function(){return this._dropShadowAngle},SC.dropShadowAngle.set=function(t){this._dropShadowAngle!==t&&(this._dropShadowAngle=t,this.styleID++)},SC.dropShadowBlur.get=function(){return this._dropShadowBlur},SC.dropShadowBlur.set=function(t){this._dropShadowBlur!==t&&(this._dropShadowBlur=t,this.styleID++)},SC.dropShadowColor.get=function(){return this._dropShadowColor},SC.dropShadowColor.set=function(t){var e=LC(t);this._dropShadowColor!==e&&(this._dropShadowColor=e,this.styleID++)},SC.dropShadowDistance.get=function(){return this._dropShadowDistance},SC.dropShadowDistance.set=function(t){this._dropShadowDistance!==t&&(this._dropShadowDistance=t,this.styleID++)},SC.fill.get=function(){return this._fill},SC.fill.set=function(t){var e=LC(t);this._fill!==e&&(this._fill=e,this.styleID++)},SC.fillGradientType.get=function(){return this._fillGradientType},SC.fillGradientType.set=function(t){this._fillGradientType!==t&&(this._fillGradientType=t,this.styleID++)},SC.fillGradientStops.get=function(){return this._fillGradientStops},SC.fillGradientStops.set=function(t){(function(t,e){if(!Array.isArray(t)||!Array.isArray(e))return!1;if(t.length!==e.length)return!1;for(var i=0;i<t.length;++i)if(t[i]!==e[i])return!1;return!0})(this._fillGradientStops,t)||(this._fillGradientStops=t,this.styleID++)},SC.fontFamily.get=function(){return this._fontFamily},SC.fontFamily.set=function(t){this.fontFamily!==t&&(this._fontFamily=t,this.styleID++)},SC.fontSize.get=function(){return this._fontSize},SC.fontSize.set=function(t){this._fontSize!==t&&(this._fontSize=t,this.styleID++)},SC.fontStyle.get=function(){return this._fontStyle},SC.fontStyle.set=function(t){this._fontStyle!==t&&(this._fontStyle=t,this.styleID++)},SC.fontVariant.get=function(){return this._fontVariant},SC.fontVariant.set=function(t){this._fontVariant!==t&&(this._fontVariant=t,this.styleID++)},SC.fontWeight.get=function(){return this._fontWeight},SC.fontWeight.set=function(t){this._fontWeight!==t&&(this._fontWeight=t,this.styleID++)},SC.letterSpacing.get=function(){return this._letterSpacing},SC.letterSpacing.set=function(t){this._letterSpacing!==t&&(this._letterSpacing=t,this.styleID++)},SC.lineHeight.get=function(){return this._lineHeight},SC.lineHeight.set=function(t){this._lineHeight!==t&&(this._lineHeight=t,this.styleID++)},SC.leading.get=function(){return this._leading},SC.leading.set=function(t){this._leading!==t&&(this._leading=t,this.styleID++)},SC.lineJoin.get=function(){return this._lineJoin},SC.lineJoin.set=function(t){this._lineJoin!==t&&(this._lineJoin=t,this.styleID++)},SC.miterLimit.get=function(){return this._miterLimit},SC.miterLimit.set=function(t){this._miterLimit!==t&&(this._miterLimit=t,this.styleID++)},SC.padding.get=function(){return this._padding},SC.padding.set=function(t){this._padding!==t&&(this._padding=t,this.styleID++)},SC.stroke.get=function(){return this._stroke},SC.stroke.set=function(t){var e=LC(t);this._stroke!==e&&(this._stroke=e,this.styleID++)},SC.strokeThickness.get=function(){return this._strokeThickness},SC.strokeThickness.set=function(t){this._strokeThickness!==t&&(this._strokeThickness=t,this.styleID++)},SC.textBaseline.get=function(){return this._textBaseline},SC.textBaseline.set=function(t){this._textBaseline!==t&&(this._textBaseline=t,this.styleID++)},SC.trim.get=function(){return this._trim},SC.trim.set=function(t){this._trim!==t&&(this._trim=t,this.styleID++)},SC.whiteSpace.get=function(){return this._whiteSpace},SC.whiteSpace.set=function(t){this._whiteSpace!==t&&(this._whiteSpace=t,this.styleID++)},SC.wordWrap.get=function(){return this._wordWrap},SC.wordWrap.set=function(t){this._wordWrap!==t&&(this._wordWrap=t,this.styleID++)},SC.wordWrapWidth.get=function(){return this._wordWrapWidth},SC.wordWrapWidth.set=function(t){this._wordWrapWidth!==t&&(this._wordWrapWidth=t,this.styleID++)},MC.prototype.toFontString=function(){var t="number"==typeof this.fontSize?this.fontSize+"px":this.fontSize,e=this.fontFamily;Array.isArray(this.fontFamily)||(e=this.fontFamily.split(","));for(var i=e.length-1;i>=0;i--){var n=e[i].trim();!/([\"\'])[^\'\"]+\1/.test(n)&&TC.indexOf(n)<0&&(n='"'+n+'"'),e[i]=n}return this.fontStyle+" "+this.fontVariant+" "+this.fontWeight+" "+t+" "+e.join(",")},Object.defineProperties(MC.prototype,SC);var DC=function(t,e,i,n,r,s,o,a,h){this.text=t,this.style=e,this.width=i,this.height=n,this.lines=r,this.lineWidths=s,this.lineHeight=o,this.maxLineWidth=a,this.fontProperties=h};DC.measureText=function(t,e,i,n){void 0===n&&(n=DC._canvas),i=null==i?e.wordWrap:i;var r=e.toFontString(),s=DC.measureFont(r);0===s.fontSize&&(s.fontSize=e.fontSize,s.ascent=e.fontSize);var o=n.getContext("2d");o.font=r;for(var a=(i?DC.wordWrap(t,e,n):t).split(/(?:\r\n|\r|\n)/),h=new Array(a.length),u=0,l=0;l<a.length;l++){var c=o.measureText(a[l]).width+(a[l].length-1)*e.letterSpacing;h[l]=c,u=Math.max(u,c)}var d=u+e.strokeThickness;e.dropShadow&&(d+=e.dropShadowDistance);var p=e.lineHeight||s.fontSize+e.strokeThickness,f=Math.max(p,s.fontSize+e.strokeThickness)+(a.length-1)*(p+e.leading);return e.dropShadow&&(f+=e.dropShadowDistance),new DC(t,e,d,f,a,h,p+e.leading,u,s)},DC.wordWrap=function(t,e,i){void 0===i&&(i=DC._canvas);for(var n=i.getContext("2d"),r=0,s="",o="",a={},h=e.letterSpacing,u=e.whiteSpace,l=DC.collapseSpaces(u),c=DC.collapseNewlines(u),d=!l,p=e.wordWrapWidth+h,f=DC.tokenize(t),m=0;m<f.length;m++){var v=f[m];if(DC.isNewline(v)){if(!c){o+=DC.addLine(s),d=!l,s="",r=0;continue}v=" "}if(l){var g=DC.isBreakingSpace(v),y=DC.isBreakingSpace(s[s.length-1]);if(g&&y)continue}var _=DC.getFromCache(v,h,a,n);if(_>p)if(""!==s&&(o+=DC.addLine(s),s="",r=0),DC.canBreakWords(v,e.breakWords))for(var x=DC.wordWrapSplit(v),b=0;b<x.length;b++){for(var w=x[b],T=1;x[b+T];){var M=x[b+T],S=w[w.length-1];if(DC.canBreakChars(S,M,v,b,e.breakWords))break;w+=M,T++}b+=w.length-1;var E=DC.getFromCache(w,h,a,n);E+r>p&&(o+=DC.addLine(s),d=!1,s="",r=0),s+=w,r+=E}else{s.length>0&&(o+=DC.addLine(s),s="",r=0);var L=m===f.length-1;o+=DC.addLine(v,!L),d=!1,s="",r=0}else _+r>p&&(d=!1,o+=DC.addLine(s),s="",r=0),(s.length>0||!DC.isBreakingSpace(v)||d)&&(s+=v,r+=_)}return o+=DC.addLine(s,!1)},DC.addLine=function(t,e){return void 0===e&&(e=!0),t=DC.trimRight(t),t=e?t+"\n":t},DC.getFromCache=function(t,e,i,n){var r=i[t];if(void 0===r){var s=t.length*e;r=n.measureText(t).width+s,i[t]=r}return r},DC.collapseSpaces=function(t){return"normal"===t||"pre-line"===t},DC.collapseNewlines=function(t){return"normal"===t},DC.trimRight=function(t){if("string"!=typeof t)return"";for(var e=t.length-1;e>=0;e--){var i=t[e];if(!DC.isBreakingSpace(i))break;t=t.slice(0,-1)}return t},DC.isNewline=function(t){return"string"==typeof t&&DC._newlines.indexOf(t.charCodeAt(0))>=0},DC.isBreakingSpace=function(t){return"string"==typeof t&&DC._breakingSpaces.indexOf(t.charCodeAt(0))>=0},DC.tokenize=function(t){var e=[],i="";if("string"!=typeof t)return e;for(var n=0;n<t.length;n++){var r=t[n];DC.isBreakingSpace(r)||DC.isNewline(r)?(""!==i&&(e.push(i),i=""),e.push(r)):i+=r}return""!==i&&e.push(i),e},DC.canBreakWords=function(t,e){return e},DC.canBreakChars=function(t,e,i,n,r){return!0},DC.wordWrapSplit=function(t){return t.split("")},DC.measureFont=function(t){if(DC._fonts[t])return DC._fonts[t];var e={},i=DC._canvas,n=DC._context;n.font=t;var r=DC.METRICS_STRING+DC.BASELINE_SYMBOL,s=Math.ceil(n.measureText(r).width),o=Math.ceil(n.measureText(DC.BASELINE_SYMBOL).width),a=2*o;o=o*DC.BASELINE_MULTIPLIER|0,i.width=s,i.height=a,n.fillStyle="#f00",n.fillRect(0,0,s,a),n.font=t,n.textBaseline="alphabetic",n.fillStyle="#000",n.fillText(r,0,o);var h=n.getImageData(0,0,s,a).data,u=h.length,l=4*s,c=0,d=0,p=!1;for(c=0;c<o;++c){for(var f=0;f<l;f+=4)if(255!==h[d+f]){p=!0;break}if(p)break;d+=l}for(e.ascent=o-c,d=u-l,p=!1,c=a;c>o;--c){for(var m=0;m<l;m+=4)if(255!==h[d+m]){p=!0;break}if(p)break;d-=l}return e.descent=c-o,e.fontSize=e.ascent+e.descent,DC._fonts[t]=e,e},DC.clearMetrics=function(t){void 0===t&&(t=""),t?delete DC._fonts[t]:DC._fonts={}};var PC=function(){try{var t=new OffscreenCanvas(0,0),e=t.getContext("2d");return e&&e.measureText?t:document.createElement("canvas")}catch(t){return document.createElement("canvas")}}();PC.width=PC.height=10,DC._canvas=PC,DC._context=PC.getContext("2d"),DC._fonts={},DC.METRICS_STRING="|\xc9q\xc5",DC.BASELINE_SYMBOL="M",DC.BASELINE_MULTIPLIER=1.4,DC._newlines=[10,13],DC._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];var CC={texture:!0,children:!1,baseTexture:!0},OC=function(t){function e(e,i,n){var r=!1;n||(n=document.createElement("canvas"),r=!0),n.width=3,n.height=3;var s=kA.from(n);s.orig=new jL,s.trim=new jL,t.call(this,s),this._ownCanvas=r,this.canvas=n,this.context=this.canvas.getContext("2d"),this._resolution=IE.RESOLUTION,this._autoResolution=!0,this._text=null,this._style=null,this._styleListener=null,this._font="",this.text=e,this.style=i,this.localStyleID=-1}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={width:{configurable:!0},height:{configurable:!0},style:{configurable:!0},text:{configurable:!0},resolution:{configurable:!0}};return e.prototype.updateText=function(t){var e=this._style;if(this.localStyleID!==e.styleID&&(this.dirty=!0,this.localStyleID=e.styleID),this.dirty||!t){this._font=this._style.toFontString();var i,n,r=this.context,s=DC.measureText(this._text||" ",this._style,this._style.wordWrap,this.canvas),o=s.width,a=s.height,h=s.lines,u=s.lineHeight,l=s.lineWidths,c=s.maxLineWidth,d=s.fontProperties;this.canvas.width=Math.ceil((Math.max(1,o)+2*e.padding)*this._resolution),this.canvas.height=Math.ceil((Math.max(1,a)+2*e.padding)*this._resolution),r.scale(this._resolution,this._resolution),r.clearRect(0,0,this.canvas.width,this.canvas.height),r.font=this._font,r.lineWidth=e.strokeThickness,r.textBaseline=e.textBaseline,r.lineJoin=e.lineJoin,r.miterLimit=e.miterLimit;for(var p,f=e.dropShadow?2:1,m=0;m<f;++m){var v=e.dropShadow&&0===m,g=v?2*a:0,y=g*this.resolution;if(v){r.fillStyle="black",r.strokeStyle="black";var _=e.dropShadowColor,x=rL("number"==typeof _?_:("string"==typeof(p=_)&&"#"===p[0]&&(p=p.substr(1)),parseInt(p,16)));r.shadowColor="rgba("+255*x[0]+","+255*x[1]+","+255*x[2]+","+e.dropShadowAlpha+")",r.shadowBlur=e.dropShadowBlur,r.shadowOffsetX=Math.cos(e.dropShadowAngle)*e.dropShadowDistance,r.shadowOffsetY=Math.sin(e.dropShadowAngle)*e.dropShadowDistance+y}else r.fillStyle=this._generateFillStyle(e,h,s),r.strokeStyle=e.stroke,r.shadowColor=0,r.shadowBlur=0,r.shadowOffsetX=0,r.shadowOffsetY=0;for(var b=0;b<h.length;b++)i=e.strokeThickness/2,n=e.strokeThickness/2+b*u+d.ascent,"right"===e.align?i+=c-l[b]:"center"===e.align&&(i+=(c-l[b])/2),e.stroke&&e.strokeThickness&&this.drawLetterSpacing(h[b],i+e.padding,n+e.padding-g,!0),e.fill&&this.drawLetterSpacing(h[b],i+e.padding,n+e.padding-g)}this.updateTexture()}},e.prototype.drawLetterSpacing=function(t,e,i,n){void 0===n&&(n=!1);var r=this._style.letterSpacing;if(0!==r)for(var s=e,o=Array.from?Array.from(t):t.split(""),a=this.context.measureText(t).width,h=0,u=0;u<o.length;++u){var l=o[u];n?this.context.strokeText(l,s,i):this.context.fillText(l,s,i),s+=a-(h=this.context.measureText(t.substring(u+1)).width)+r,a=h}else n?this.context.strokeText(t,e,i):this.context.fillText(t,e,i)},e.prototype.updateTexture=function(){var t=this.canvas;if(this._style.trim){var e=function(t){var e,i,n,r=t.width,s=t.height,o=t.getContext("2d"),a=o.getImageData(0,0,r,s).data,h=a.length,u={top:null,left:null,right:null,bottom:null},l=null;for(e=0;e<h;e+=4)0!==a[e+3]&&(i=e/4%r,n=~~(e/4/r),null===u.top&&(u.top=n),(null===u.left||i<u.left)&&(u.left=i),(null===u.right||u.right<i)&&(u.right=i+1),(null===u.bottom||u.bottom<n)&&(u.bottom=n));return null!==u.top&&(r=u.right-u.left,s=u.bottom-u.top+1,l=o.getImageData(u.left,u.top,r,s)),{height:s,width:r,data:l}}(t);e.data&&(t.width=e.width,t.height=e.height,this.context.putImageData(e.data,0,0))}var i=this._texture,n=this._style,r=n.trim?0:n.padding,s=i.baseTexture;i.trim.width=i._frame.width=Math.ceil(t.width/this._resolution),i.trim.height=i._frame.height=Math.ceil(t.height/this._resolution),i.trim.x=-r,i.trim.y=-r,i.orig.width=i._frame.width-2*r,i.orig.height=i._frame.height-2*r,this._onTextureUpdate(),s.setRealSize(t.width,t.height,this._resolution),this.dirty=!1},e.prototype._render=function(e){this._autoResolution&&this._resolution!==e.resolution&&(this._resolution=e.resolution,this.dirty=!0),this.updateText(!0),t.prototype._render.call(this,e)},e.prototype.getLocalBounds=function(e){return this.updateText(!0),t.prototype.getLocalBounds.call(this,e)},e.prototype._calculateBounds=function(){this.updateText(!0),this.calculateVertices(),this._bounds.addQuad(this.vertexData)},e.prototype._onStyleChange=function(){this.dirty=!0},e.prototype._generateFillStyle=function(t,e,i){if(!Array.isArray(t.fill))return t.fill;if(1===t.fill.length)return t.fill[0];var n,r=t.dropShadow?t.dropShadowDistance:0,s=t.padding||0,o=Math.ceil(this.canvas.width/this._resolution)-r-2*s,a=Math.ceil(this.canvas.height/this._resolution)-r-2*s,h=t.fill.slice(),u=t.fillGradientStops.slice();if(!u.length)for(var l=h.length+1,c=1;c<l;++c)u.push(c/l);if(h.unshift(t.fill[0]),u.unshift(0),h.push(t.fill[t.fill.length-1]),u.push(1),t.fillGradientType===bC){n=this.context.createLinearGradient(o/2,s,o/2,a+s);for(var d=0,p=(i.fontProperties.fontSize+t.strokeThickness)/a,f=0;f<e.length;f++)for(var m=i.lineHeight*f,v=0;v<h.length;v++){var g=m/a+("number"==typeof u[v]?u[v]:v/h.length)*p,y=Math.max(d,g);y=Math.min(y,1),n.addColorStop(y,h[v]),d=y}}else{n=this.context.createLinearGradient(s,a/2,o+s,a/2);for(var _=h.length+1,x=1,b=0;b<h.length;b++){var w=void 0;w="number"==typeof u[b]?u[b]:x/_,n.addColorStop(w,h[b]),x++}}return n},e.prototype.destroy=function(e){"boolean"==typeof e&&(e={children:e}),e=Object.assign({},CC,e),t.prototype.destroy.call(this,e),this._ownCanvas&&(this.canvas.height=this.canvas.width=0),this.context=null,this.canvas=null,this._style=null},i.width.get=function(){return this.updateText(!0),Math.abs(this.scale.x)*this._texture.orig.width},i.width.set=function(t){this.updateText(!0);var e=fL(this.scale.x)||1;this.scale.x=e*t/this._texture.orig.width,this._width=t},i.height.get=function(){return this.updateText(!0),Math.abs(this.scale.y)*this._texture.orig.height},i.height.set=function(t){this.updateText(!0);var e=fL(this.scale.y)||1;this.scale.y=e*t/this._texture.orig.height,this._height=t},i.style.get=function(){return this._style},i.style.set=function(t){t=t||{},this._style=t instanceof MC?t:new MC(t),this.localStyleID=-1,this.dirty=!0},i.text.get=function(){return this._text},i.text.set=function(t){t=String(null==t?"":t),this._text!==t&&(this._text=t,this.dirty=!0)},i.resolution.get=function(){return this._resolution},i.resolution.set=function(t){this._autoResolution=!1,this._resolution!==t&&(this._resolution=t,this.dirty=!0)},Object.defineProperties(e.prototype,i),e}(xC);IE.UPLOADS_PER_FRAME=4;var kC=function(t){this.maxItemsPerFrame=t,this.itemsLeft=0};kC.prototype.beginFrame=function(){this.itemsLeft=this.maxItemsPerFrame},kC.prototype.allowedToUpload=function(){return this.itemsLeft-- >0};var RC=function(t){var e=this;this.limiter=new kC(IE.UPLOADS_PER_FRAME),this.renderer=t,this.uploadHookHelper=null,this.queue=[],this.addHooks=[],this.uploadHooks=[],this.completes=[],this.ticking=!1,this.delayedTick=function(){e.queue&&e.prepareItems()},this.registerFindHook(UC),this.registerFindHook(jC),this.registerFindHook(IC),this.registerFindHook(YC),this.registerFindHook(FC),this.registerUploadHook(NC),this.registerUploadHook(BC)};function IC(t,e){var i=!1;if(t&&t._textures&&t._textures.length)for(var n=0;n<t._textures.length;n++)if(t._textures[n]instanceof kA){var r=t._textures[n].baseTexture;-1===e.indexOf(r)&&(e.push(r),i=!0)}return i}function YC(t,e){if(t.baseTexture instanceof _A){var i=t.baseTexture;return-1===e.indexOf(i)&&e.push(i),!0}return!1}function FC(t,e){if(t._texture&&t._texture instanceof kA){var i=t._texture.baseTexture;return-1===e.indexOf(i)&&e.push(i),!0}return!1}function NC(t,e){return e instanceof OC&&(e.updateText(!0),!0)}function BC(t,e){if(e instanceof MC){var i=e.toFontString();return DC.measureFont(i),!0}return!1}function UC(t,e){if(t instanceof OC){-1===e.indexOf(t.style)&&e.push(t.style),-1===e.indexOf(t)&&e.push(t);var i=t._texture.baseTexture;return-1===e.indexOf(i)&&e.push(i),!0}return!1}function jC(t,e){return t instanceof MC&&(-1===e.indexOf(t)&&e.push(t),!0)}RC.prototype.upload=function(t,e){"function"==typeof t&&(e=t,t=null),t&&this.add(t),this.queue.length?(e&&this.completes.push(e),this.ticking||(this.ticking=!0,$L.system.addOnce(this.tick,this,ZL.UTILITY))):e&&e()},RC.prototype.tick=function(){setTimeout(this.delayedTick,0)},RC.prototype.prepareItems=function(){for(this.limiter.beginFrame();this.queue.length&&this.limiter.allowedToUpload();){var t=this.queue[0],e=!1;if(t&&!t._destroyed)for(var i=0,n=this.uploadHooks.length;i<n;i++)if(this.uploadHooks[i](this.uploadHookHelper,t)){this.queue.shift(),e=!0;break}e||this.queue.shift()}if(this.queue.length)$L.system.addOnce(this.tick,this,ZL.UTILITY);else{this.ticking=!1;var r=this.completes.slice(0);this.completes.length=0;for(var s=0,o=r.length;s<o;s++)r[s]()}},RC.prototype.registerFindHook=function(t){return t&&this.addHooks.push(t),this},RC.prototype.registerUploadHook=function(t){return t&&this.uploadHooks.push(t),this},RC.prototype.add=function(t){for(var e=0,i=this.addHooks.length;e<i&&!this.addHooks[e](t,this.queue);e++);if(t instanceof JL)for(var n=t.children.length-1;n>=0;n--)this.add(t.children[n]);return this},RC.prototype.destroy=function(){this.ticking&&$L.system.remove(this.tick,this),this.ticking=!1,this.addHooks=null,this.uploadHooks=null,this.renderer=null,this.completes=null,this.queue=null,this.limiter=null,this.uploadHookHelper=null};var HC=function(t){function e(e){t.call(this,e),this.uploadHookHelper=this.renderer,this.registerFindHook(GC),this.registerUploadHook(zC),this.registerUploadHook(WC)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(RC);function zC(t,e){return e instanceof _A&&(e._glTextures[t.CONTEXT_UID]||t.texture.bind(e),!0)}function WC(t,e){if(!(e instanceof gC))return!1;var i=e.geometry;e.finishPoly(),i.updateBatches();for(var n=i.batches,r=0;r<n.length;r++){var s=n[r].style.texture;s&&zC(t,s.baseTexture)}return i.batchable||t.geometry.bind(i,e._resolveDirectShader(t)),!0}function GC(t,e){return t instanceof gC&&(e.push(t),!0)}var VC=function(t){this.maxMilliseconds=t,this.frameStart=0};VC.prototype.beginFrame=function(){this.frameStart=Date.now()},VC.prototype.allowedToUpload=function(){return Date.now()-this.frameStart<this.maxMilliseconds};var XC=function(t,e,i){void 0===i&&(i=null),this._texture=t instanceof kA?t:null,this.baseTexture=t instanceof _A?t:this._texture.baseTexture,this.textures={},this.animations={},this.data=e,this.resolution=this._updateResolution(i||(this.baseTexture.resource?this.baseTexture.resource.url:null)),this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null},qC={BATCH_SIZE:{configurable:!0}};qC.BATCH_SIZE.get=function(){return 1e3},XC.prototype._updateResolution=function(t){var e=this.data.meta.scale,i=ML(t,null);return null===i&&(i=void 0!==e?parseFloat(e):1),1!==i&&this.baseTexture.setResolution(i),i},XC.prototype.parse=function(t){this._batchIndex=0,this._callback=t,this._frameKeys.length<=XC.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()},XC.prototype._processFrames=function(t){for(var e=t,i=XC.BATCH_SIZE;e-t<i&&e<this._frameKeys.length;){var n=this._frameKeys[e],r=this._frames[n],s=r.frame;if(s){var o=null,a=null,h=!1!==r.trimmed&&r.sourceSize?r.sourceSize:r.frame,u=new jL(0,0,Math.floor(h.w)/this.resolution,Math.floor(h.h)/this.resolution);o=r.rotated?new jL(Math.floor(s.x)/this.resolution,Math.floor(s.y)/this.resolution,Math.floor(s.h)/this.resolution,Math.floor(s.w)/this.resolution):new jL(Math.floor(s.x)/this.resolution,Math.floor(s.y)/this.resolution,Math.floor(s.w)/this.resolution,Math.floor(s.h)/this.resolution),!1!==r.trimmed&&r.spriteSourceSize&&(a=new jL(Math.floor(r.spriteSourceSize.x)/this.resolution,Math.floor(r.spriteSourceSize.y)/this.resolution,Math.floor(s.w)/this.resolution,Math.floor(s.h)/this.resolution)),this.textures[n]=new kA(this.baseTexture,o,u,a,r.rotated?2:0,r.anchor),kA.addToCache(this.textures[n],n)}e++}},XC.prototype._processAnimations=function(){var t=this.data.animations||{};for(var e in t){this.animations[e]=[];for(var i=0;i<t[e].length;i++){var n=t[e][i];this.animations[e].push(this.textures[n])}}},XC.prototype._parseComplete=function(){var t=this._callback;this._callback=null,this._batchIndex=0,t.call(this,this.textures)},XC.prototype._nextBatch=function(){var t=this;this._processFrames(this._batchIndex*XC.BATCH_SIZE),this._batchIndex++,setTimeout((function(){t._batchIndex*XC.BATCH_SIZE<t._frameKeys.length?t._nextBatch():(t._processAnimations(),t._parseComplete())}),0)},XC.prototype.destroy=function(t){for(var e in void 0===t&&(t=!1),this.textures)this.textures[e].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,t&&(this._texture&&this._texture.destroy(),this.baseTexture.destroy()),this._texture=null,this.baseTexture=null},Object.defineProperties(XC,qC);var JC=function(){};JC.use=function(t,e){var i=t.name+"_image";if(t.data&&t.type===WP.TYPE.JSON&&t.data.frames&&!this.resources[i]){var n={crossOrigin:t.crossOrigin,metadata:t.metadata.imageMetadata,parentResource:t},r=JC.getResourcePath(t,this.baseUrl);this.add(i,r,n,(function(i){if(i.error)e(i.error);else{var n=new XC(i.texture,t.data,t.url);n.parse((function(){t.spritesheet=n,t.textures=n.textures,e()}))}}))}else e()},JC.getResourcePath=function(t,e){return t.isDataUrl?t.data.meta.image:eL().resolve(t.url.replace(e,""),t.data.meta.image)};new EL;var ZC="attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\nuniform mat3 translationMatrix;\nuniform mat3 uTransform;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n\n vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;\n}\n",KC=new CL,QC=function(t){function e(e){t.call(this,e);var i={globals:this.renderer.globalUniforms};this.shader=PD.from(ZC,"varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\nuniform mat3 uMapCoord;\nuniform vec4 uClampFrame;\nuniform vec2 uClampOffset;\n\nvoid main(void)\n{\n vec2 coord = vTextureCoord - floor(vTextureCoord - uClampOffset);\n coord = (uMapCoord * vec3(coord, 1.0)).xy;\n coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);\n\n vec4 texSample = texture2D(uSampler, coord);\n gl_FragColor = texSample * uColor;\n}\n",i),this.simpleShader=PD.from(ZC,"varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 uColor;\n\nvoid main(void)\n{\n vec4 sample = texture2D(uSampler, vTextureCoord);\n gl_FragColor = sample * uColor;\n}\n",i),this.quad=new XA,this.state=OD.for2d()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.render=function(t){var e=this.renderer,i=this.quad,n=i.vertices;n[0]=n[6]=t._width*-t.anchor.x,n[1]=n[3]=t._height*-t.anchor.y,n[2]=n[4]=t._width*(1-t.anchor.x),n[5]=n[7]=t._height*(1-t.anchor.y),t.uvRespectAnchor&&((n=i.uvs)[0]=n[6]=-t.anchor.x,n[1]=n[3]=-t.anchor.y,n[2]=n[4]=1-t.anchor.x,n[5]=n[7]=1-t.anchor.y),i.invalidate();var r=t._texture,s=r.baseTexture,o=t.tileTransform.localTransform,a=t.uvMatrix,h=s.isPowerOfTwo&&r.frame.width===s.width&&r.frame.height===s.height;h&&(s._glTextures[e.CONTEXT_UID]?h=s.wrapMode!==JE.CLAMP:s.wrapMode===JE.CLAMP&&(s.wrapMode=JE.REPEAT));var u=h?this.simpleShader:this.shader,l=r.width,c=r.height,d=t._width,p=t._height;KC.set(o.a*l/d,o.b*l/p,o.c*c/d,o.d*c/p,o.tx/d,o.ty/p),KC.invert(),h?KC.prepend(a.mapCoord):(u.uniforms.uMapCoord=a.mapCoord.toArray(!0),u.uniforms.uClampFrame=a.uClampFrame,u.uniforms.uClampOffset=a.uClampOffset),u.uniforms.uTransform=KC.toArray(!0),u.uniforms.uColor=uL(t.tint,t.worldAlpha,u.uniforms.uColor,s.alphaMode),u.uniforms.translationMatrix=t.transform.worldTransform.toArray(!0),u.uniforms.uSampler=r,e.shader.bind(u),e.geometry.bind(i),this.state.blendMode=aL(t.blendMode,s.alphaMode),e.state.set(this.state),e.geometry.draw(this.renderer.gl.TRIANGLES,6,0)},e}(QA),$C=function(t){function e(e,i){var n=this;void 0===i&&(i={}),t.call(this),this._textWidth=0,this._textHeight=0,this._glyphs=[],this._font={tint:void 0!==i.tint?i.tint:16777215,align:i.align||"left",name:null,size:0},this.font=i.font,this._text=e,this._maxWidth=0,this._maxLineHeight=0,this._letterSpacing=0,this._anchor=new LL((function(){n.dirty=!0}),this,0,0),this.dirty=!1,this.roundPixels=IE.ROUND_PIXELS,this.updateText()}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={tint:{configurable:!0},align:{configurable:!0},anchor:{configurable:!0},font:{configurable:!0},text:{configurable:!0},maxWidth:{configurable:!0},maxLineHeight:{configurable:!0},textWidth:{configurable:!0},letterSpacing:{configurable:!0},textHeight:{configurable:!0}};return e.prototype.updateText=function(){for(var t=e.fonts[this._font.name],i=this._font.size/t.size,n=new EL,r=[],s=[],o=this._text.replace(/(?:\r\n|\r)/g,"\n")||" ",a=o.length,h=this._maxWidth*t.size/this._font.size,u=null,l=0,c=0,d=0,p=-1,f=0,m=0,v=0,g=0;g<a;g++){var y=o.charCodeAt(g),_=o.charAt(g);if(/(?:\s)/.test(_)&&(p=g,f=l),"\r"!==_&&"\n"!==_){var x=t.chars[y];x&&(u&&x.kerning[u]&&(n.x+=x.kerning[u]),r.push({texture:x.texture,line:d,charCode:y,position:new EL(n.x+x.xOffset+this._letterSpacing/2,n.y+x.yOffset)}),n.x+=x.xAdvance+this._letterSpacing,l=n.x,v=Math.max(v,x.yOffset+x.texture.height),u=y,-1!==p&&h>0&&n.x>h&&(pL(r,1+p-++m,1+g-p),g=p,p=-1,s.push(f),c=Math.max(c,f),d++,n.x=0,n.y+=t.lineHeight,u=null))}else s.push(l),c=Math.max(c,l),++d,++m,n.x=0,n.y+=t.lineHeight,u=null}var b=o.charAt(o.length-1);"\r"!==b&&"\n"!==b&&(/(?:\s)/.test(b)&&(l=f),s.push(l),c=Math.max(c,l));for(var w=[],T=0;T<=d;T++){var M=0;"right"===this._font.align?M=c-s[T]:"center"===this._font.align&&(M=(c-s[T])/2),w.push(M)}for(var S=r.length,E=this.tint,L=0;L<S;L++){var A=this._glyphs[L];A?A.texture=r[L].texture:((A=new xC(r[L].texture)).roundPixels=this.roundPixels,this._glyphs.push(A)),A.position.x=(r[L].position.x+w[r[L].line])*i,A.position.y=r[L].position.y*i,A.scale.x=A.scale.y=i,A.tint=E,A.parent||this.addChild(A)}for(var D=S;D<this._glyphs.length;++D)this.removeChild(this._glyphs[D]);if(this._textWidth=c*i,this._textHeight=(n.y+t.lineHeight)*i,0!==this.anchor.x||0!==this.anchor.y)for(var P=0;P<S;P++)this._glyphs[P].x-=this._textWidth*this.anchor.x,this._glyphs[P].y-=this._textHeight*this.anchor.y;this._maxLineHeight=v*i},e.prototype.updateTransform=function(){this.validate(),this.containerUpdateTransform()},e.prototype.getLocalBounds=function(){return this.validate(),t.prototype.getLocalBounds.call(this)},e.prototype.validate=function(){this.dirty&&(this.updateText(),this.dirty=!1)},i.tint.get=function(){return this._font.tint},i.tint.set=function(t){this._font.tint="number"==typeof t&&t>=0?t:16777215,this.dirty=!0},i.align.get=function(){return this._font.align},i.align.set=function(t){this._font.align=t||"left",this.dirty=!0},i.anchor.get=function(){return this._anchor},i.anchor.set=function(t){"number"==typeof t?this._anchor.set(t):this._anchor.copyFrom(t)},i.font.get=function(){return this._font},i.font.set=function(t){t&&("string"==typeof t?(t=t.split(" "),this._font.name=1===t.length?t[0]:t.slice(1).join(" "),this._font.size=t.length>=2?parseInt(t[0],10):e.fonts[this._font.name].size):(this._font.name=t.name,this._font.size="number"==typeof t.size?t.size:parseInt(t.size,10)),this.dirty=!0)},i.text.get=function(){return this._text},i.text.set=function(t){t=String(null==t?"":t),this._text!==t&&(this._text=t,this.dirty=!0)},i.maxWidth.get=function(){return this._maxWidth},i.maxWidth.set=function(t){this._maxWidth!==t&&(this._maxWidth=t,this.dirty=!0)},i.maxLineHeight.get=function(){return this.validate(),this._maxLineHeight},i.textWidth.get=function(){return this.validate(),this._textWidth},i.letterSpacing.get=function(){return this._letterSpacing},i.letterSpacing.set=function(t){this._letterSpacing!==t&&(this._letterSpacing=t,this.dirty=!0)},i.textHeight.get=function(){return this.validate(),this._textHeight},e.registerFont=function(t,i){var n={},r=t.getElementsByTagName("info")[0],s=t.getElementsByTagName("common")[0],o=t.getElementsByTagName("page"),a=ML(o[0].getAttribute("file")),h={};n.font=r.getAttribute("face"),n.size=parseInt(r.getAttribute("size"),10),n.lineHeight=parseInt(s.getAttribute("lineHeight"),10)/a,n.chars={},i instanceof kA&&(i=[i]);for(var u=0;u<o.length;u++){var l=o[u].getAttribute("id"),c=o[u].getAttribute("file");h[l]=i instanceof Array?i[u]:i[c]}for(var d=t.getElementsByTagName("char"),p=0;p<d.length;p++){var f=d[p],m=parseInt(f.getAttribute("id"),10),v=f.getAttribute("page")||0,g=new jL(parseInt(f.getAttribute("x"),10)/a+h[v].frame.x/a,parseInt(f.getAttribute("y"),10)/a+h[v].frame.y/a,parseInt(f.getAttribute("width"),10)/a,parseInt(f.getAttribute("height"),10)/a);n.chars[m]={xOffset:parseInt(f.getAttribute("xoffset"),10)/a,yOffset:parseInt(f.getAttribute("yoffset"),10)/a,xAdvance:parseInt(f.getAttribute("xadvance"),10)/a,kerning:{},texture:new kA(h[v].baseTexture,g),page:v}}for(var y=t.getElementsByTagName("kerning"),_=0;_<y.length;_++){var x=y[_],b=parseInt(x.getAttribute("first"),10)/a,w=parseInt(x.getAttribute("second"),10)/a,T=parseInt(x.getAttribute("amount"),10)/a;n.chars[w]&&(n.chars[w].kerning[b]=T)}return e.fonts[n.font]=n,n},Object.defineProperties(e.prototype,i),e}(JL);$C.fonts={};var tO=function(){};tO.parse=function(t,e){t.bitmapFont=$C.registerFont(t.data,e)},tO.add=function(){WP.setExtensionXhrType("fnt",WP.XHR_RESPONSE_TYPE.DOCUMENT)},tO.dirname=function(t){var e=t.replace(/\\/g,"/").replace(/\/$/,"").replace(/\/[^\/]*$/,"");return e===t?".":""===e?"/":e},tO.use=function(t,e){if(t.data&&t.type===WP.TYPE.XML)if(0!==t.data.getElementsByTagName("page").length&&0!==t.data.getElementsByTagName("info").length&&null!==t.data.getElementsByTagName("info")[0].getAttribute("face")){var i=t.isDataUrl?"":tO.dirname(t.url);t.isDataUrl&&("."===i&&(i=""),this.baseUrl&&i&&"/"===this.baseUrl.charAt(this.baseUrl.length-1)&&(i+="/")),(i=i.replace(this.baseUrl,""))&&"/"!==i.charAt(i.length-1)&&(i+="/");for(var n=t.data.getElementsByTagName("page"),r={},s=function(i){r[i.metadata.pageFile]=i.texture,Object.keys(r).length===n.length&&(tO.parse(t,r),e())},o=0;o<n.length;++o){var a=n[o].getAttribute("file"),h=i+a,u=!1;for(var l in this.resources){var c=this.resources[l];if(c.url===h){c.metadata.pageFile=a,c.texture?s(c):c.onAfterMiddleware.add(s),u=!0;break}}if(!u){var d={crossOrigin:t.crossOrigin,loadType:WP.LOAD_TYPE.IMAGE,metadata:Object.assign({pageFile:a},t.metadata.imageMetadata),parentResource:t};this.add(h,d,s)}}}else e();else e()};["varying vec2 vBlurTexCoords[%size%];","uniform sampler2D uSampler;","void main(void)","{"," gl_FragColor = vec4(0.0);"," %blur%","}"].join("\n");var eO=function(t){function e(){var e={m:new Float32Array([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]),uAlpha:1};t.call(this,iP,"varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform float m[20];\nuniform float uAlpha;\n\nvoid main(void)\n{\n vec4 c = texture2D(uSampler, vTextureCoord);\n\n if (uAlpha == 0.0) {\n gl_FragColor = c;\n return;\n }\n\n // Un-premultiply alpha before applying the color matrix. See issue #3539.\n if (c.a > 0.0) {\n c.rgb /= c.a;\n }\n\n vec4 result;\n\n result.r = (m[0] * c.r);\n result.r += (m[1] * c.g);\n result.r += (m[2] * c.b);\n result.r += (m[3] * c.a);\n result.r += m[4];\n\n result.g = (m[5] * c.r);\n result.g += (m[6] * c.g);\n result.g += (m[7] * c.b);\n result.g += (m[8] * c.a);\n result.g += m[9];\n\n result.b = (m[10] * c.r);\n result.b += (m[11] * c.g);\n result.b += (m[12] * c.b);\n result.b += (m[13] * c.a);\n result.b += m[14];\n\n result.a = (m[15] * c.r);\n result.a += (m[16] * c.g);\n result.a += (m[17] * c.b);\n result.a += (m[18] * c.a);\n result.a += m[19];\n\n vec3 rgb = mix(c.rgb, result.rgb, uAlpha);\n\n // Premultiply alpha again.\n rgb *= result.a;\n\n gl_FragColor = vec4(rgb, result.a);\n}\n",e),this.alpha=1}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={matrix:{configurable:!0},alpha:{configurable:!0}};return e.prototype._loadMatrix=function(t,e){void 0===e&&(e=!1);var i=t;e&&(this._multiply(i,this.uniforms.m,t),i=this._colorMatrix(i)),this.uniforms.m=i},e.prototype._multiply=function(t,e,i){return t[0]=e[0]*i[0]+e[1]*i[5]+e[2]*i[10]+e[3]*i[15],t[1]=e[0]*i[1]+e[1]*i[6]+e[2]*i[11]+e[3]*i[16],t[2]=e[0]*i[2]+e[1]*i[7]+e[2]*i[12]+e[3]*i[17],t[3]=e[0]*i[3]+e[1]*i[8]+e[2]*i[13]+e[3]*i[18],t[4]=e[0]*i[4]+e[1]*i[9]+e[2]*i[14]+e[3]*i[19]+e[4],t[5]=e[5]*i[0]+e[6]*i[5]+e[7]*i[10]+e[8]*i[15],t[6]=e[5]*i[1]+e[6]*i[6]+e[7]*i[11]+e[8]*i[16],t[7]=e[5]*i[2]+e[6]*i[7]+e[7]*i[12]+e[8]*i[17],t[8]=e[5]*i[3]+e[6]*i[8]+e[7]*i[13]+e[8]*i[18],t[9]=e[5]*i[4]+e[6]*i[9]+e[7]*i[14]+e[8]*i[19]+e[9],t[10]=e[10]*i[0]+e[11]*i[5]+e[12]*i[10]+e[13]*i[15],t[11]=e[10]*i[1]+e[11]*i[6]+e[12]*i[11]+e[13]*i[16],t[12]=e[10]*i[2]+e[11]*i[7]+e[12]*i[12]+e[13]*i[17],t[13]=e[10]*i[3]+e[11]*i[8]+e[12]*i[13]+e[13]*i[18],t[14]=e[10]*i[4]+e[11]*i[9]+e[12]*i[14]+e[13]*i[19]+e[14],t[15]=e[15]*i[0]+e[16]*i[5]+e[17]*i[10]+e[18]*i[15],t[16]=e[15]*i[1]+e[16]*i[6]+e[17]*i[11]+e[18]*i[16],t[17]=e[15]*i[2]+e[16]*i[7]+e[17]*i[12]+e[18]*i[17],t[18]=e[15]*i[3]+e[16]*i[8]+e[17]*i[13]+e[18]*i[18],t[19]=e[15]*i[4]+e[16]*i[9]+e[17]*i[14]+e[18]*i[19]+e[19],t},e.prototype._colorMatrix=function(t){var e=new Float32Array(t);return e[4]/=255,e[9]/=255,e[14]/=255,e[19]/=255,e},e.prototype.brightness=function(t,e){var i=[t,0,0,0,0,0,t,0,0,0,0,0,t,0,0,0,0,0,1,0];this._loadMatrix(i,e)},e.prototype.greyscale=function(t,e){var i=[t,t,t,0,0,t,t,t,0,0,t,t,t,0,0,0,0,0,1,0];this._loadMatrix(i,e)},e.prototype.blackAndWhite=function(t){this._loadMatrix([.3,.6,.1,0,0,.3,.6,.1,0,0,.3,.6,.1,0,0,0,0,0,1,0],t)},e.prototype.hue=function(t,e){t=(t||0)/180*Math.PI;var i=Math.cos(t),n=Math.sin(t),r=1/3,s=(0,Math.sqrt)(r),o=[i+(1-i)*r,r*(1-i)-s*n,r*(1-i)+s*n,0,0,r*(1-i)+s*n,i+r*(1-i),r*(1-i)-s*n,0,0,r*(1-i)-s*n,r*(1-i)+s*n,i+r*(1-i),0,0,0,0,0,1,0];this._loadMatrix(o,e)},e.prototype.contrast=function(t,e){var i=(t||0)+1,n=-.5*(i-1),r=[i,0,0,0,n,0,i,0,0,n,0,0,i,0,n,0,0,0,1,0];this._loadMatrix(r,e)},e.prototype.saturate=function(t,e){void 0===t&&(t=0);var i=2*t/3+1,n=-.5*(i-1),r=[i,n,n,0,0,n,i,n,0,0,n,n,i,0,0,0,0,0,1,0];this._loadMatrix(r,e)},e.prototype.desaturate=function(){this.saturate(-1)},e.prototype.negative=function(t){this._loadMatrix([-1,0,0,1,0,0,-1,0,1,0,0,0,-1,1,0,0,0,0,1,0],t)},e.prototype.sepia=function(t){this._loadMatrix([.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0],t)},e.prototype.technicolor=function(t){this._loadMatrix([1.9125277891456083,-.8545344976951645,-.09155508482755585,0,11.793603434377337,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-70.35205161461398,-.231103377548616,-.7501899197440212,1.847597816108189,0,30.950940869491138,0,0,0,1,0],t)},e.prototype.polaroid=function(t){this._loadMatrix([1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0],t)},e.prototype.toBGR=function(t){this._loadMatrix([0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0],t)},e.prototype.kodachrome=function(t){this._loadMatrix([1.1285582396593525,-.3967382283601348,-.03992559172921793,0,63.72958762196502,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,24.732407896706203,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,35.62982807460946,0,0,0,1,0],t)},e.prototype.browni=function(t){this._loadMatrix([.5997023498159715,.34553243048391263,-.2708298674538042,0,47.43192855600873,-.037703249837783157,.8609577587992641,.15059552388459913,0,-36.96841498319127,.24113635128153335,-.07441037908422492,.44972182064877153,0,-7.562075277591283,0,0,0,1,0],t)},e.prototype.vintage=function(t){this._loadMatrix([.6279345635605994,.3202183420819367,-.03965408211312453,0,9.651285835294123,.02578397704808868,.6441188644374771,.03259127616149294,0,7.462829176470591,.0466055556782719,-.0851232987247891,.5241648018700465,0,5.159190588235296,0,0,0,1,0],t)},e.prototype.colorTone=function(t,e,i,n,r){var s=((i=i||16770432)>>16&255)/255,o=(i>>8&255)/255,a=(255&i)/255,h=((n=n||3375104)>>16&255)/255,u=(n>>8&255)/255,l=(255&n)/255,c=[.3,.59,.11,0,0,s,o,a,t=t||.2,0,h,u,l,e=e||.15,0,s-h,o-u,a-l,0,0];this._loadMatrix(c,r)},e.prototype.night=function(t,e){var i=[-2*(t=t||.1),-t,0,0,0,-t,0,t,0,0,0,t,2*t,0,0,0,0,0,1,0];this._loadMatrix(i,e)},e.prototype.predator=function(t,e){var i=[11.224130630493164*t,-4.794486999511719*t,-2.8746118545532227*t,0*t,.40342438220977783*t,-3.6330697536468506*t,9.193157196044922*t,-2.951810836791992*t,0*t,-1.316135048866272*t,-3.2184197902679443*t,-4.2375030517578125*t,7.476448059082031*t,0*t,.8044459223747253*t,0,0,0,1,0];this._loadMatrix(i,e)},e.prototype.lsd=function(t){this._loadMatrix([2,-.4,.5,0,0,-.5,2,-.4,0,0,-.4,-.5,3,0,0,0,0,0,1,0],t)},e.prototype.reset=function(){this._loadMatrix([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],!1)},i.matrix.get=function(){return this.uniforms.m},i.matrix.set=function(t){this.uniforms.m=t},i.alpha.get=function(){return this.uniforms.uAlpha},i.alpha.set=function(t){this.uniforms.uAlpha=t},Object.defineProperties(e.prototype,i),e}(RD);eO.prototype.grayscale=eO.prototype.greyscale;var iO=new CL;XL.prototype._cacheAsBitmap=!1,XL.prototype._cacheData=!1;var nO=function(){this.textureCacheId=null,this.originalRender=null,this.originalRenderCanvas=null,this.originalCalculateBounds=null,this.originalGetLocalBounds=null,this.originalUpdateTransform=null,this.originalHitTest=null,this.originalDestroy=null,this.originalMask=null,this.originalFilterArea=null,this.sprite=null};Object.defineProperties(XL.prototype,{cacheAsBitmap:{get:function(){return this._cacheAsBitmap},set:function(t){var e;this._cacheAsBitmap!==t&&(this._cacheAsBitmap=t,t?(this._cacheData||(this._cacheData=new nO),(e=this._cacheData).originalRender=this.render,e.originalRenderCanvas=this.renderCanvas,e.originalUpdateTransform=this.updateTransform,e.originalCalculateBounds=this.calculateBounds,e.originalGetLocalBounds=this.getLocalBounds,e.originalDestroy=this.destroy,e.originalContainsPoint=this.containsPoint,e.originalMask=this._mask,e.originalFilterArea=this.filterArea,this.render=this._renderCached,this.renderCanvas=this._renderCachedCanvas,this.destroy=this._cacheAsBitmapDestroy):((e=this._cacheData).sprite&&this._destroyCachedDisplayObject(),this.render=e.originalRender,this.renderCanvas=e.originalRenderCanvas,this.calculateBounds=e.originalCalculateBounds,this.getLocalBounds=e.originalGetLocalBounds,this.destroy=e.originalDestroy,this.updateTransform=e.originalUpdateTransform,this.containsPoint=e.originalContainsPoint,this._mask=e.originalMask,this.filterArea=e.originalFilterArea))}}}),XL.prototype._renderCached=function(t){!this.visible||this.worldAlpha<=0||!this.renderable||(this._initCachedDisplayObject(t),this._cacheData.sprite.transform._worldID=this.transform._worldID,this._cacheData.sprite.worldAlpha=this.worldAlpha,this._cacheData.sprite._render(t))},XL.prototype._initCachedDisplayObject=function(t){if(!this._cacheData||!this._cacheData.sprite){var e=this.alpha;this.alpha=1,t.batch.flush();var i=this.getLocalBounds().clone();if(this.filters){var n=this.filters[0].padding;i.pad(n)}i.ceil(IE.RESOLUTION);var r=t.renderTexture.current,s=t.renderTexture.sourceFrame.clone(),o=t.projection.transform,a=IA.create(i.width,i.height),h="cacheAsBitmap_"+vL();this._cacheData.textureCacheId=h,_A.addToCache(a.baseTexture,h),kA.addToCache(a,h);var u=iO;u.tx=-i.x,u.ty=-i.y,this.transform.worldTransform.identity(),this.render=this._cacheData.originalRender,t.render(this,a,!0,u,!0),t.projection.transform=o,t.renderTexture.bind(r,s),this.render=this._renderCached,this.updateTransform=this.displayObjectUpdateTransform,this.calculateBounds=this._calculateCachedBounds,this.getLocalBounds=this._getCachedLocalBounds,this._mask=null,this.filterArea=null;var l=new xC(a);l.transform.worldTransform=this.transform.worldTransform,l.anchor.x=-i.x/i.width,l.anchor.y=-i.y/i.height,l.alpha=e,l._bounds=this._bounds,this._cacheData.sprite=l,this.transform._parentID=-1,this.parent?this.updateTransform():(this.parent=t._tempDisplayObjectParent,this.updateTransform(),this.parent=null),this.containsPoint=l.containsPoint.bind(l)}},XL.prototype._renderCachedCanvas=function(t){!this.visible||this.worldAlpha<=0||!this.renderable||(this._initCachedDisplayObjectCanvas(t),this._cacheData.sprite.worldAlpha=this.worldAlpha,this._cacheData.sprite._renderCanvas(t))},XL.prototype._initCachedDisplayObjectCanvas=function(t){if(!this._cacheData||!this._cacheData.sprite){var e=this.getLocalBounds(),i=this.alpha;this.alpha=1;var n=t.context,r=t._projTransform;e.ceil(IE.RESOLUTION);var s=IA.create(e.width,e.height),o="cacheAsBitmap_"+vL();this._cacheData.textureCacheId=o,_A.addToCache(s.baseTexture,o),kA.addToCache(s,o);var a=iO;this.transform.localTransform.copyTo(a),a.invert(),a.tx-=e.x,a.ty-=e.y,this.renderCanvas=this._cacheData.originalRenderCanvas,t.render(this,s,!0,a,!1),t.context=n,t._projTransform=r,this.renderCanvas=this._renderCachedCanvas,this.updateTransform=this.displayObjectUpdateTransform,this.calculateBounds=this._calculateCachedBounds,this.getLocalBounds=this._getCachedLocalBounds,this._mask=null,this.filterArea=null;var h=new xC(s);h.transform.worldTransform=this.transform.worldTransform,h.anchor.x=-e.x/e.width,h.anchor.y=-e.y/e.height,h.alpha=i,h._bounds=this._bounds,this._cacheData.sprite=h,this.transform._parentID=-1,this.parent?this.updateTransform():(this.parent=t._tempDisplayObjectParent,this.updateTransform(),this.parent=null),this.containsPoint=h.containsPoint.bind(h)}},XL.prototype._calculateCachedBounds=function(){this._bounds.clear(),this._cacheData.sprite.transform._worldID=this.transform._worldID,this._cacheData.sprite._calculateBounds(),this._lastBoundsID=this._boundsID},XL.prototype._getCachedLocalBounds=function(){return this._cacheData.sprite.getLocalBounds()},XL.prototype._destroyCachedDisplayObject=function(){this._cacheData.sprite._texture.destroy(!0),this._cacheData.sprite=null,_A.removeFromCache(this._cacheData.textureCacheId),kA.removeFromCache(this._cacheData.textureCacheId),this._cacheData.textureCacheId=null},XL.prototype._cacheAsBitmapDestroy=function(t){this.cacheAsBitmap=!1,this.destroy(t)},XL.prototype.name=null,JL.prototype.getChildByName=function(t){for(var e=0;e<this.children.length;e++)if(this.children[e].name===t)return this.children[e];return null},XL.prototype.getGlobalPosition=function(t,e){return void 0===t&&(t=new EL),void 0===e&&(e=!1),this.parent?this.parent.toGlobal(this.position,t,e):(t.x=this.position.x,t.y=this.position.y),t};var rO=function(t,e){this.uvBuffer=t,this.uvMatrix=e,this.data=null,this._bufferUpdateId=-1,this._textureUpdateId=-1,this._updateID=0};rO.prototype.update=function(t){if(t||this._bufferUpdateId!==this.uvBuffer._updateID||this._textureUpdateId!==this.uvMatrix._updateID){this._bufferUpdateId=this.uvBuffer._updateID,this._textureUpdateId=this.uvMatrix._updateID;var e=this.uvBuffer.data;this.data&&this.data.length===e.length||(this.data=new Float32Array(e.length)),this.uvMatrix.multiplyUvs(e,this.data),this._updateID++}};var sO=new EL,oO=new WL,aO=function(t){function e(e,i,n,r){void 0===r&&(r=WE.TRIANGLES),t.call(this),this.geometry=e,e.refCount++,this.shader=i,this.state=n||OD.for2d(),this.drawMode=r,this.start=0,this.size=0,this.uvs=null,this.indices=null,this.vertexData=new Float32Array(1),this.vertexDirty=0,this._transformID=-1,this.tint=16777215,this.blendMode=zE.NORMAL,this._roundPixels=IE.ROUND_PIXELS,this.batchUvs=null}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var i={uvBuffer:{configurable:!0},verticesBuffer:{configurable:!0},material:{configurable:!0},blendMode:{configurable:!0},roundPixels:{configurable:!0},tint:{configurable:!0},texture:{configurable:!0}};return i.uvBuffer.get=function(){return this.geometry.buffers[1]},i.verticesBuffer.get=function(){return this.geometry.buffers[0]},i.material.set=function(t){this.shader=t},i.material.get=function(){return this.shader},i.blendMode.set=function(t){this.state.blendMode=t},i.blendMode.get=function(){return this.state.blendMode},i.roundPixels.set=function(t){this._roundPixels!==t&&(this._transformID=-1),this._roundPixels=t},i.roundPixels.get=function(){return this._roundPixels},i.tint.get=function(){return this.shader.tint},i.tint.set=function(t){this.shader.tint=t},i.texture.get=function(){return this.shader.texture},i.texture.set=function(t){this.shader.texture=t},e.prototype._render=function(t){var i=this.geometry.buffers[0].data;this.shader.batchable&&this.drawMode===WE.TRIANGLES&&i.length<2*e.BATCHABLE_SIZE?this._renderToBatch(t):this._renderDefault(t)},e.prototype._renderDefault=function(t){var e=this.shader;e.alpha=this.worldAlpha,e.update&&e.update(),t.batch.flush(),e.program.uniformData.translationMatrix&&(e.uniforms.translationMatrix=this.transform.worldTransform.toArray(!0)),t.shader.bind(e),t.state.set(this.state),t.geometry.bind(this.geometry,e),t.geometry.draw(this.drawMode,this.size,this.start,this.geometry.instanceCount)},e.prototype._renderToBatch=function(t){var e=this.geometry;this.shader.uvMatrix&&(this.shader.uvMatrix.update(),this.calculateUvs()),this.calculateVertices(),this.indices=e.indexBuffer.data,this._tintRGB=this.shader._tintRGB,this._texture=this.shader.texture;var i=this.material.pluginName;t.batch.setObjectRenderer(t.plugins[i]),t.plugins[i].render(this)},e.prototype.calculateVertices=function(){var t=this.geometry,e=t.buffers[0].data;if(t.vertexDirtyId!==this.vertexDirty||this._transformID!==this.transform._worldID){this._transformID=this.transform._worldID,this.vertexData.length!==e.length&&(this.vertexData=new Float32Array(e.length));for(var i=this.transform.worldTransform,n=i.a,r=i.b,s=i.c,o=i.d,a=i.tx,h=i.ty,u=this.vertexData,l=0;l<u.length/2;l++){var c=e[2*l],d=e[2*l+1];u[2*l]=n*c+s*d+a,u[2*l+1]=r*c+o*d+h}if(this._roundPixels)for(var p=IE.RESOLUTION,f=0;f<u.length;++f)u[f]=Math.round((u[f]*p|0)/p);this.vertexDirty=t.vertexDirtyId}},e.prototype.calculateUvs=function(){var t=this.geometry.buffers[1];this.shader.uvMatrix.isSimple?this.uvs=t.data:(this.batchUvs||(this.batchUvs=new rO(t,this.shader.uvMatrix)),this.batchUvs.update(),this.uvs=this.batchUvs.data)},e.prototype._calculateBounds=function(){this.calculateVertices(),this._bounds.addVertexData(this.vertexData,0,this.vertexData.length)},e.prototype.containsPoint=function(t){if(!this.getBounds().contains(t.x,t.y))return!1;this.worldTransform.applyInverse(t,sO);for(var e=this.geometry.getBuffer("aVertexPosition").data,i=oO.points,n=this.geometry.getIndex().data,r=n.length,s=4===this.drawMode?3:1,o=0;o+2<r;o+=s){var a=2*n[o],h=2*n[o+1],u=2*n[o+2];if(i[0]=e[a],i[1]=e[a+1],i[2]=e[h],i[3]=e[h+1],i[4]=e[u],i[5]=e[u+1],oO.contains(sO.x,sO.y))return!0}return!1},e.prototype.destroy=function(e){t.prototype.destroy.call(this,e),this.geometry.refCount--,0===this.geometry.refCount&&this.geometry.dispose(),this.geometry=null,this.shader=null,this.state=null,this.uvs=null,this.indices=null,this.vertexData=null},Object.defineProperties(e.prototype,i),e}(JL);aO.BATCHABLE_SIZE=100;eP.registerPlugin("accessibility",KL),eP.registerPlugin("extract",_P),eP.registerPlugin("interaction",uA),eP.registerPlugin("particle",VP),eP.registerPlugin("prepare",HC),eP.registerPlugin("batch",fP),eP.registerPlugin("tilingSprite",QC),HP.registerPlugin(tO),HP.registerPlugin(JC),mP.registerPlugin(tA),mP.registerPlugin(zP);["af.js","ar-dz.js","ar-kw.js","ar-ly.js","ar-ma.js","ar-sa.js","ar-tn.js","ar.js","az.js","be.js","bg.js","bm.js","bn.js","bo.js","br.js","bs.js","ca.js","cs.js","cv.js","cy.js","da.js","de-at.js","de-ch.js","de.js","dv.js","el.js","en-au.js","en-ca.js","en-gb.js","en-ie.js","en-il.js","en-nz.js","en-SG.js","eo.js","es-do.js","es-us.js","es.js","et.js","eu.js","fa.js","fi.js","fo.js","fr-ca.js","fr-ch.js","fr.js","fy.js","ga.js","gd.js","gl.js","gom-latn.js","gu.js","he.js","hi.js","hr.js","hu.js","hy-am.js","id.js","is.js","it-ch.js","it.js","ja.js","jv.js","ka.js","kk.js","km.js","kn.js","ko.js","ku.js","ky.js","lb.js","lo.js","lt.js","lv.js","me.js","mi.js","mk.js","ml.js","mn.js","mr.js","ms-my.js","ms.js","mt.js","my.js","nb.js","ne.js","nl-be.js","nl.js","nn.js","pa-in.js","pl.js","pt-br.js","pt.js","ro.js","ru.js","sd.js","se.js","si.js","sk.js","sl.js","sq.js","sr-cyrl.js","sr.js","ss.js","sv.js","sw.js","ta.js","te.js","tet.js","tg.js","th.js","tl-ph.js","tlh.js","tr.js","tzl.js","tzm-latn.js","tzm.js","ug-cn.js","uk.js","ur.js","uz-latn.js","uz.js","vi.js","x-pseudo.js","yo.js","zh-cn.js","zh-hk.js","zh-tw.js"].forEach((t=>{i(99459)(`./${t}`)})),e()().format("MMMM Do YYYY, h:mm:ss a"),Af.capitalize("hello \u{1f30d}"),Pf().trim(" \u{1f62e} "),new(Of().Game),new tv,new mP})()})(); |
| 2 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2VzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYS1mdW5jdGlvbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hLXBvc3NpYmxlLXByb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hZGQtdG8tdW5zY29wYWJsZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYWR2YW5jZS1zdHJpbmctaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYW4taW5zdGFuY2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYW4tb2JqZWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci1uYXRpdmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1idWZmZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktY29weS13aXRoaW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktZmlsbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1mcm9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1sYXN0LWluZGV4LW9mLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1oYXMtc3BlY2llcy1zdXBwb3J0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLXVzZXMtdG8tbGVuZ3RoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXJlZHVjZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNyZWF0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hc3luYy1pdGVyYXRvci1jcmVhdGUtcHJveHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXN5bmMtaXRlcmF0b3ItaXRlcmF0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FzeW5jLWl0ZXJhdG9yLXByb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jYWxsLXdpdGgtc2FmZS1pdGVyYXRpb24tY2xvc2luZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jaGVjay1jb3JyZWN0bmVzcy1vZi1pdGVyYXRpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2xhc3NvZi1yYXcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2xhc3NvZi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jb2xsZWN0aW9uLWFkZC1hbGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY29sbGVjdGlvbi1kZWxldGUtYWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvbGxlY3Rpb24tZnJvbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jb2xsZWN0aW9uLW9mLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvbGxlY3Rpb24tc3Ryb25nLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvbGxlY3Rpb24td2Vhay5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jb2xsZWN0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvbXBvc2l0ZS1rZXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY29weS1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcnJlY3QtaXMtcmVnZXhwLWxvZ2ljLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NvcnJlY3QtcHJvdG90eXBlLWdldHRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jcmVhdGUtaHRtbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kYXRlLXRvLWlzby1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGF0ZS10by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVmaW5lLWl0ZXJhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS13ZWxsLWtub3duLXN5bWJvbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kZXNjcmlwdG9ycy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kb20taXRlcmFibGVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2VuZ2luZS1pcy1pb3MuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW5naW5lLXVzZXItYWdlbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW5naW5lLXY4LXZlcnNpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW51bS1idWcta2V5cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9leHBvcnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZmFpbHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZml4LXJlZ2V4cC13ZWxsLWtub3duLXN5bWJvbC1sb2dpYy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mbGF0dGVuLWludG8tYXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnJlZXppbmcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LWFzeW5jLWl0ZXJhdG9yLW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nZXQtYnVpbHQtaW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nZXQtaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LW1hcC1pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nZXQtc2V0LWl0ZXJhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dsb2JhbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9oYXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaG9zdC1yZXBvcnQtZXJyb3JzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2h0bWwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaWU4LWRvbS1kZWZpbmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaWVlZTc1NC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbmhlcml0LWlmLXJlcXVpcmVkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2ludGVybmFsLW1ldGFkYXRhLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLWFycmF5LWl0ZXJhdG9yLW1ldGhvZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtaW50ZWdlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtcHVyZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1yZWdleHAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pdGVyYXRvci1jcmVhdGUtcHJveHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3JzLWNvcmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3JzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL21hcC11cHNlcnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbWF0aC1leHBtMS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9tYXRoLWZyb3VuZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9tYXRoLWxvZzFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL21hdGgtc2NhbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbWF0aC1zaWduLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL21pY3JvdGFzay5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9uYXRpdmUtcHJvbWlzZS1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9uYXRpdmUtc3ltYm9sLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL25hdGl2ZS11cmwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbmF0aXZlLXdlYWstbWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL25ldy1wcm9taXNlLWNhcGFiaWxpdHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbm90LWEtcmVnZXhwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL251bWJlci1pcy1maW5pdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbnVtYmVyLXBhcnNlLWZsb2F0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL251bWJlci1wYXJzZS1pbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWFzc2lnbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtY3JlYXRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMtZXh0ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMtaW50ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWtleXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LXByb3BlcnR5LWlzLWVudW1lcmFibGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LXByb3RvdHlwZS1hY2Nlc3NvcnMtZm9yY2VkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC10by1hcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtdG8tc3RyaW5nLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL293bi1rZXlzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3BhdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcGVyZm9ybS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9wcm9taXNlLXJlc29sdmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVkZWZpbmUtYWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZGVmaW5lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZmxlY3QtbWV0YWRhdGEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMtYWJzdHJhY3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLWZsYWdzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC1zdGlja3ktaGVscGVycy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2FtZS12YWx1ZS16ZXJvLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NhbWUtdmFsdWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2V0LWdsb2JhbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zZXQtc3BlY2llcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQta2V5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NoYXJlZC1zdG9yZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zaGFyZWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc3BlY2llcy1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctaHRtbC1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc3RyaW5nLW11bHRpYnl0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctcGFkLXdlYmtpdC1idWcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc3RyaW5nLXBhZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctcHVueWNvZGUtdG8tYXNjaWkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc3RyaW5nLXJlcGVhdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctdHJpbS1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc3RyaW5nLXRyaW0uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdGFzay5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90aGlzLW51bWJlci12YWx1ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1pbnRlZ2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWxlbmd0aC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tb2Zmc2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXBvc2l0aXZlLWludGVnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90eXBlZC1hcnJheS1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90eXBlZC1hcnJheS1jb25zdHJ1Y3RvcnMtcmVxdWlyZS13cmFwcGVycy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90eXBlZC1hcnJheS1mcm9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3VpZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy91c2Utc3ltYm9sLWFzLXVpZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC13cmFwcGVkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3doaXRlc3BhY2VzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS1idWZmZXIuY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LWJ1ZmZlci5pcy12aWV3LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS1idWZmZXIuc2xpY2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29weS13aXRoaW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmV2ZXJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbmQtaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbmQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZsYXQtbWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5mbGF0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZnJvbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmluZGV4LW9mLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmpvaW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lmxhc3QtaW5kZXgtb2YuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkub2YuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnJlZHVjZS1yaWdodC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucmVkdWNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5yZXZlcnNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc29tZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc29ydC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BlY2llcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS51bnNjb3BhYmxlcy5mbGF0LW1hcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkudW5zY29wYWJsZXMuZmxhdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuZGF0YS12aWV3LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5kYXRlLm5vdy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuZGF0ZS50by1pc28tc3RyaW5nLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5kYXRlLnRvLWpzb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmRhdGUudG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5kYXRlLnRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24uYmluZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24uaGFzLWluc3RhbmNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5nbG9iYWwtdGhpcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmpzb24udG8tc3RyaW5nLXRhZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5tYXRoLmFjb3NoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5tYXRoLmFzaW5oLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5tYXRoLmF0YW5oLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5tYXRoLmNicnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm1hdGguY2x6MzIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm1hdGguY29zaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubWF0aC5leHBtMS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubWF0aC5mcm91bmQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm1hdGguaHlwb3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm1hdGguaW11bC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubWF0aC5sb2cxMC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubWF0aC5sb2cxcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubWF0aC5sb2cyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5tYXRoLnNpZ24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm1hdGguc2luaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubWF0aC50YW5oLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5tYXRoLnRvLXN0cmluZy10YWcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm1hdGgudHJ1bmMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmVwc2lsb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5pcy1maW5pdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5pcy1pbnRlZ2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuaXMtbmFuLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuaXMtc2FmZS1pbnRlZ2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIubWF4LXNhZmUtaW50ZWdlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLm1pbi1zYWZlLWludGVnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5wYXJzZS1mbG9hdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLnBhcnNlLWludC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLnRvLWZpeGVkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIudG8tcHJlY2lzaW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuYXNzaWduLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuY3JlYXRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuZGVmaW5lLWdldHRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmRlZmluZS1wcm9wZXJ0aWVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuZGVmaW5lLXByb3BlcnR5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuZGVmaW5lLXNldHRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmVudHJpZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5mcmVlemUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5mcm9tLWVudHJpZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmdldC1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5pcy1leHRlbnNpYmxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuaXMtZnJvemVuLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuaXMtc2VhbGVkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuaXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QubG9va3VwLWdldHRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0Lmxvb2t1cC1zZXR0ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5wcmV2ZW50LWV4dGVuc2lvbnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5zZWFsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Quc2V0LXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnZhbHVlcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucGFyc2UtZmxvYXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnBhcnNlLWludC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucHJvbWlzZS5hbGwtc2V0dGxlZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucHJvbWlzZS5maW5hbGx5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5wcm9taXNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5yZWZsZWN0LmFwcGx5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5yZWZsZWN0LmNvbnN0cnVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVmbGVjdC5kZWZpbmUtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZmxlY3QuZGVsZXRlLXByb3BlcnR5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5yZWZsZWN0LmdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVmbGVjdC5nZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5yZWZsZWN0LmdldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVmbGVjdC5oYXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZmxlY3QuaXMtZXh0ZW5zaWJsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVmbGVjdC5vd24ta2V5cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVmbGVjdC5wcmV2ZW50LWV4dGVuc2lvbnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZmxlY3Quc2V0LXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVmbGVjdC5zZXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5mbGFncy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnN0aWNreS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRlc3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnNldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLmFuY2hvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLmJpZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLmJsaW5rLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuYm9sZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLmNvZGUtcG9pbnQtYXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5lbmRzLXdpdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5maXhlZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLmZvbnRjb2xvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLmZvbnRzaXplLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuZnJvbS1jb2RlLXBvaW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pdGFsaWNzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5saW5rLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcubWF0Y2gtYWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcubWF0Y2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5wYWQtZW5kLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucGFkLXN0YXJ0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmF3LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwZWF0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnNlYXJjaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnNtYWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuc3BsaXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zdGFydHMtd2l0aC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnN0cmlrZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnN1Yi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnN1cC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnRyaW0tZW5kLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcudHJpbS1zdGFydC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnRyaW0uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5hc3luYy1pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmRlc2NyaXB0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wuaGFzLWluc3RhbmNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wuaXMtY29uY2F0LXNwcmVhZGFibGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wubWF0Y2gtYWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wubWF0Y2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5yZXBsYWNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wuc2VhcmNoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wuc3BlY2llcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLnNwbGl0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wudG8tcHJpbWl0aXZlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zeW1ib2wudG8tc3RyaW5nLXRhZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLnVuc2NvcGFibGVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5jb3B5LXdpdGhpbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZXZlcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZpbGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZpbHRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmluZC1pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmluZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmxvYXQzMi1hcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmxvYXQ2NC1hcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZyb20uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmluY2x1ZGVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5pbmRleC1vZi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuaW50MTYtYXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmludDMyLWFycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5pbnQ4LWFycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuam9pbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkubGFzdC1pbmRleC1vZi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkubWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5vZi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkucmVkdWNlLXJpZ2h0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS5yZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnJldmVyc2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnNldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuc2xpY2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnNvbWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnNvcnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnN1YmFycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS50by1sb2NhbGUtc3RyaW5nLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnVpbnQxNi1hcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkudWludDMyLWFycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy50eXBlZC1hcnJheS51aW50OC1hcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMudHlwZWQtYXJyYXkudWludDgtY2xhbXBlZC1hcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMud2Vhay1tYXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLndlYWstc2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuYWdncmVnYXRlLWVycm9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuYXJyYXkuaXMtdGVtcGxhdGUtb2JqZWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuYXJyYXkubGFzdC1pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LmFycmF5Lmxhc3QtaXRlbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LmFzeW5jLWl0ZXJhdG9yLmFzLWluZGV4ZWQtcGFpcnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5hc3luYy1pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LmFzeW5jLWl0ZXJhdG9yLmRyb3AuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5hc3luYy1pdGVyYXRvci5ldmVyeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LmFzeW5jLWl0ZXJhdG9yLmZpbHRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LmFzeW5jLWl0ZXJhdG9yLmZpbmQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5hc3luYy1pdGVyYXRvci5mbGF0LW1hcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LmFzeW5jLWl0ZXJhdG9yLmZvci1lYWNoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuYXN5bmMtaXRlcmF0b3IuZnJvbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LmFzeW5jLWl0ZXJhdG9yLm1hcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LmFzeW5jLWl0ZXJhdG9yLnJlZHVjZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LmFzeW5jLWl0ZXJhdG9yLnNvbWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5hc3luYy1pdGVyYXRvci50YWtlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuYXN5bmMtaXRlcmF0b3IudG8tYXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5jb21wb3NpdGUta2V5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuY29tcG9zaXRlLXN5bWJvbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lmdsb2JhbC10aGlzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuYXMtaW5kZXhlZC1wYWlycy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuZHJvcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmV2ZXJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuZmlsdGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuZmluZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmZsYXQtbWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5mcm9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IubWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IucmVkdWNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3Iuc29tZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLnRha2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci50by1hcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lm1hcC5kZWxldGUtYWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWFwLmV2ZXJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWFwLmZpbHRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lm1hcC5maW5kLWtleS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lm1hcC5maW5kLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWFwLmZyb20uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5tYXAuZ3JvdXAtYnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5tYXAuaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5tYXAua2V5LWJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWFwLmtleS1vZi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lm1hcC5tYXAta2V5cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lm1hcC5tYXAtdmFsdWVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWFwLm1lcmdlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWFwLm9mLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWFwLnJlZHVjZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lm1hcC5zb21lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWFwLnVwZGF0ZS1vci1pbnNlcnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5tYXAudXBkYXRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWFwLnVwc2VydC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lm1hdGguY2xhbXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5tYXRoLmRlZy1wZXItcmFkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWF0aC5kZWdyZWVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWF0aC5mc2NhbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5tYXRoLmlhZGRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWF0aC5pbXVsaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lm1hdGguaXN1YmguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5tYXRoLnJhZC1wZXItZGVnLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWF0aC5yYWRpYW5zLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubWF0aC5zY2FsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lm1hdGguc2VlZGVkLXBybmcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5tYXRoLnNpZ25iaXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5tYXRoLnVtdWxoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQubnVtYmVyLmZyb20tc3RyaW5nLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQub2JqZWN0Lml0ZXJhdGUtZW50cmllcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0Lm9iamVjdC5pdGVyYXRlLWtleXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5vYmplY3QuaXRlcmF0ZS12YWx1ZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5vYnNlcnZhYmxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQucHJvbWlzZS5hbGwtc2V0dGxlZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LnByb21pc2UuYW55LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQucHJvbWlzZS50cnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5yZWZsZWN0LmRlZmluZS1tZXRhZGF0YS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LnJlZmxlY3QuZGVsZXRlLW1ldGFkYXRhLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQucmVmbGVjdC5nZXQtbWV0YWRhdGEta2V5cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LnJlZmxlY3QuZ2V0LW1ldGFkYXRhLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQucmVmbGVjdC5nZXQtb3duLW1ldGFkYXRhLWtleXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5yZWZsZWN0LmdldC1vd24tbWV0YWRhdGEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5yZWZsZWN0Lmhhcy1tZXRhZGF0YS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LnJlZmxlY3QuaGFzLW93bi1tZXRhZGF0YS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LnJlZmxlY3QubWV0YWRhdGEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zZXQuYWRkLWFsbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LnNldC5kZWxldGUtYWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuc2V0LmRpZmZlcmVuY2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zZXQuZXZlcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zZXQuZmlsdGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuc2V0LmZpbmQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zZXQuZnJvbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LnNldC5pbnRlcnNlY3Rpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zZXQuaXMtZGlzam9pbnQtZnJvbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LnNldC5pcy1zdWJzZXQtb2YuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zZXQuaXMtc3VwZXJzZXQtb2YuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zZXQuam9pbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LnNldC5tYXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zZXQub2YuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zZXQucmVkdWNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuc2V0LnNvbWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zZXQuc3ltbWV0cmljLWRpZmZlcmVuY2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zZXQudW5pb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zdHJpbmcuYXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zdHJpbmcuY29kZS1wb2ludHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zdHJpbmcubWF0Y2gtYWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuc3RyaW5nLnJlcGxhY2UtYWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuc3ltYm9sLmFzeW5jLWRpc3Bvc2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zeW1ib2wuZGlzcG9zZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LnN5bWJvbC5vYnNlcnZhYmxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQuc3ltYm9sLnBhdHRlcm4tbWF0Y2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5zeW1ib2wucmVwbGFjZS1hbGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC53ZWFrLW1hcC5kZWxldGUtYWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQud2Vhay1tYXAuZnJvbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LndlYWstbWFwLm9mLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQud2Vhay1tYXAudXBzZXJ0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQud2Vhay1zZXQuYWRkLWFsbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXNuZXh0LndlYWstc2V0LmRlbGV0ZS1hbGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzbmV4dC53ZWFrLXNldC5mcm9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lc25leHQud2Vhay1zZXQub2YuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi5pbW1lZGlhdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi5xdWV1ZS1taWNyb3Rhc2suanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi50aW1lcnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLnVybC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLnVybC50by1qc29uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvcHJvcG9zYWxzL2FycmF5LWlzLXRlbXBsYXRlLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL3Byb3Bvc2Fscy9hcnJheS1sYXN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvcHJvcG9zYWxzL2NvbGxlY3Rpb24tbWV0aG9kcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL3Byb3Bvc2Fscy9jb2xsZWN0aW9uLW9mLWZyb20uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9wcm9wb3NhbHMvZWZmaWNpZW50LTY0LWJpdC1hcml0aG1ldGljLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvcHJvcG9zYWxzL2dsb2JhbC10aGlzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvcHJvcG9zYWxzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvcHJvcG9zYWxzL2l0ZXJhdG9yLWhlbHBlcnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9wcm9wb3NhbHMva2V5cy1jb21wb3NpdGlvbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL3Byb3Bvc2Fscy9tYXAtdXBzZXJ0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvcHJvcG9zYWxzL21hdGgtZXh0ZW5zaW9ucy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL3Byb3Bvc2Fscy9tYXRoLXNpZ25iaXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9wcm9wb3NhbHMvbnVtYmVyLWZyb20tc3RyaW5nLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvcHJvcG9zYWxzL29iamVjdC1pdGVyYXRpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9wcm9wb3NhbHMvb2JzZXJ2YWJsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL3Byb3Bvc2Fscy9wYXR0ZXJuLW1hdGNoaW5nLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvcHJvcG9zYWxzL3Byb21pc2UtYWxsLXNldHRsZWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9wcm9wb3NhbHMvcHJvbWlzZS1hbnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9wcm9wb3NhbHMvcHJvbWlzZS10cnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9wcm9wb3NhbHMvcmVmbGVjdC1tZXRhZGF0YS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL3Byb3Bvc2Fscy9zZWVkZWQtcmFuZG9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvcHJvcG9zYWxzL3NldC1tZXRob2RzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvcHJvcG9zYWxzL3N0cmluZy1hdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL3Byb3Bvc2Fscy9zdHJpbmctY29kZS1wb2ludHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9wcm9wb3NhbHMvc3RyaW5nLW1hdGNoLWFsbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL3Byb3Bvc2Fscy9zdHJpbmctcmVwbGFjZS1hbGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9wcm9wb3NhbHMvdXJsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvcHJvcG9zYWxzL3VzaW5nLXN0YXRlbWVudC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL3N0YWdlLzAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9zdGFnZS8xLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvc3RhZ2UvMi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9jb3JlLWpzL3N0YWdlLzMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9zdGFnZS80LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2NvcmUtanMvc3RhZ2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy9zdGFnZS9wcmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvY29yZS1qcy93ZWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvZWFyY3V0L3NyYy9lYXJjdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvZXM2LXByb21pc2UtcG9seWZpbGwvcHJvbWlzZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9ldmVudGVtaXR0ZXIzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2pxdWVyeS9kaXN0L2pxdWVyeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nsb25lQnVmZmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZnJlZUdsb2JhbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25vZGVVdGlsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fcm9vdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNCdWZmZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3N0dWJGYWxzZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9taW5pLXNpZ25hbHMvbGliL21pbmktc2lnbmFscy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FmLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItZHouanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1rdy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLWx5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXItbWEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hci1zYS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2FyLXRuLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9hei5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYmcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ibS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JuLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvYm8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ici5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2JzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY2EuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9jcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2N2LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvY3kuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9kYS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2RlLWF0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZGUtY2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9kZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2R2LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZWwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1TRy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWF1LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4tY2EuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1nYi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VuLWllLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZW4taWwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lbi1uei5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VvLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXMtZG8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9lcy11cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2VzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ldS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZhLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZmkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mby5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2ZyLWNhLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZnItY2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9mci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2Z5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ2EuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9nZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2dsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvZ29tLWxhdG4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ndS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2hlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaGkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9oci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2h1LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaHktYW0uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2lzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvaXQtY2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9pdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2phLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvanYuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rYS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2trLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva20uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9rbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2tvLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUva3UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9reS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2xiLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbG8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9sdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL2x2LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9taS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21rLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbWwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL21yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbXMtbXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9tcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL210LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9uYi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvbmwtYmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9ubC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL25uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcGEtaW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9wbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3B0LWJyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvcHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9yby5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3J1LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NpLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc2suanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NxLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3ItY3lybC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3NyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvc3MuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS9zdi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3N3LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RnLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90bC1waC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RsaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3RyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHpsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdHptLWxhdG4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS90em0uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91Zy1jbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3VrLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS91ei1sYXRuLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvdXouanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS92aS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3gtcHNldWRvLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUveW8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZS96aC1jbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbG9jYWxlL3poLWhrLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL21vbWVudC9sb2NhbGUvemgtdHcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbW9tZW50L2xvY2FsZXxzeW5jfC9eLy4qJCIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9tb21lbnQvbW9tZW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL29iamVjdC1hc3NpZ24vaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGFyc2UtdXJpL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9wbHVnaW5zL2NhbWVyYTNkL3NyYy9DYW1lcmEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3BsdWdpbnMvY2FtZXJhM2Qvc3JjL0NhbWVyYU1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3BsdWdpbnMvY2FtZXJhM2Qvc3JjL09ydGhvZ3JhcGhpY0NhbWVyYS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvcGx1Z2lucy9jYW1lcmEzZC9zcmMvUGVyc3BlY3RpdmVDYW1lcmEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3BsdWdpbnMvY2FtZXJhM2Qvc3JjL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9wbHVnaW5zL2NhbWVyYTNkL3NyYy9zcHJpdGUzZC9TcHJpdGUzRC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvcGx1Z2lucy9jYW1lcmEzZC9zcmMvc3ByaXRlM2QvU3ByaXRlM0RDcmVhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9wbHVnaW5zL2NhbWVyYTNkL3NyYy9zcHJpdGUzZC9TcHJpdGUzREZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3BsdWdpbnMvZmJpbnN0YW50L3NyYy9BZEluc3RhbmNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9wbHVnaW5zL2ZiaW5zdGFudC9zcmMvRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3BsdWdpbnMvZmJpbnN0YW50L3NyYy9MZWFkZXJib2FyZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvcGx1Z2lucy9mYmluc3RhbnQvc3JjL0xlYWRlcmJvYXJkU2NvcmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3BsdWdpbnMvZmJpbnN0YW50L3NyYy9Qcm9kdWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9wbHVnaW5zL2ZiaW5zdGFudC9zcmMvUHVyY2hhc2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL0FsaWduVG8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL0FuZ2xlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9DYWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9HZXRGaXJzdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvR2V0TGFzdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvR3JpZEFsaWduLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9JbmNBbHBoYS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvSW5jWC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvSW5jWFkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL0luY1kuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1BsYWNlT25DaXJjbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1BsYWNlT25FbGxpcHNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9QbGFjZU9uTGluZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvUGxhY2VPblJlY3RhbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvUGxhY2VPblRyaWFuZ2xlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9QbGF5QW5pbWF0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9Qcm9wZXJ0eVZhbHVlSW5jLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9Qcm9wZXJ0eVZhbHVlU2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9SYW5kb21DaXJjbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1JhbmRvbUVsbGlwc2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1JhbmRvbUxpbmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1JhbmRvbVJlY3RhbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvUmFuZG9tVHJpYW5nbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1JvdGF0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvUm90YXRlQXJvdW5kLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9Sb3RhdGVBcm91bmREaXN0YW5jZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvU2NhbGVYLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9TY2FsZVhZLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9TY2FsZVkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1NldEFscGhhLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9TZXRCbGVuZE1vZGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1NldERlcHRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9TZXRIaXRBcmVhLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9TZXRPcmlnaW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1NldFJvdGF0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9TZXRTY2FsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvU2V0U2NhbGVYLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9TZXRTY2FsZVkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1NldFNjcm9sbEZhY3Rvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvU2V0U2Nyb2xsRmFjdG9yWC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvU2V0U2Nyb2xsRmFjdG9yWS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvU2V0VGludC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvU2V0VmlzaWJsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvU2V0WC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvU2V0WFkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1NldFkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1NoaWZ0UG9zaXRpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1NodWZmbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1Ntb290aFN0ZXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL1Ntb290aGVyU3RlcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FjdGlvbnMvU3ByZWFkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9Ub2dnbGVWaXNpYmxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYWN0aW9ucy9XcmFwSW5SZWN0YW5nbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hY3Rpb25zL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYW5pbWF0aW9ucy9BbmltYXRpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hbmltYXRpb25zL0FuaW1hdGlvbkZyYW1lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYW5pbWF0aW9ucy9BbmltYXRpb25NYW5hZ2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYW5pbWF0aW9ucy9ldmVudHMvQUREX0FOSU1BVElPTl9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FuaW1hdGlvbnMvZXZlbnRzL0FOSU1BVElPTl9DT01QTEVURV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FuaW1hdGlvbnMvZXZlbnRzL0FOSU1BVElPTl9SRVBFQVRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hbmltYXRpb25zL2V2ZW50cy9BTklNQVRJT05fUkVTVEFSVF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FuaW1hdGlvbnMvZXZlbnRzL0FOSU1BVElPTl9TVEFSVF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FuaW1hdGlvbnMvZXZlbnRzL1BBVVNFX0FMTF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FuaW1hdGlvbnMvZXZlbnRzL1JFTU9WRV9BTklNQVRJT05fRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hbmltYXRpb25zL2V2ZW50cy9SRVNVTUVfQUxMX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYW5pbWF0aW9ucy9ldmVudHMvU1BSSVRFX0FOSU1BVElPTl9DT01QTEVURV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FuaW1hdGlvbnMvZXZlbnRzL1NQUklURV9BTklNQVRJT05fS0VZX0NPTVBMRVRFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYW5pbWF0aW9ucy9ldmVudHMvU1BSSVRFX0FOSU1BVElPTl9LRVlfUkVQRUFUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYW5pbWF0aW9ucy9ldmVudHMvU1BSSVRFX0FOSU1BVElPTl9LRVlfUkVTVEFSVF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FuaW1hdGlvbnMvZXZlbnRzL1NQUklURV9BTklNQVRJT05fS0VZX1NUQVJUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYW5pbWF0aW9ucy9ldmVudHMvU1BSSVRFX0FOSU1BVElPTl9LRVlfVVBEQVRFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYW5pbWF0aW9ucy9ldmVudHMvU1BSSVRFX0FOSU1BVElPTl9SRVBFQVRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hbmltYXRpb25zL2V2ZW50cy9TUFJJVEVfQU5JTUFUSU9OX1JFU1RBUlRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hbmltYXRpb25zL2V2ZW50cy9TUFJJVEVfQU5JTUFUSU9OX1NUQVJUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvYW5pbWF0aW9ucy9ldmVudHMvU1BSSVRFX0FOSU1BVElPTl9VUERBVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9hbmltYXRpb25zL2V2ZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2FuaW1hdGlvbnMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYWNoZS9CYXNlQ2FjaGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYWNoZS9DYWNoZU1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYWNoZS9ldmVudHMvQUREX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FjaGUvZXZlbnRzL1JFTU9WRV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NhY2hlL2V2ZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NhY2hlL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FtZXJhcy8yZC9CYXNlQ2FtZXJhLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FtZXJhcy8yZC9DYW1lcmEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzLzJkL0NhbWVyYU1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzLzJkL2VmZmVjdHMvRmFkZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NhbWVyYXMvMmQvZWZmZWN0cy9GbGFzaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NhbWVyYXMvMmQvZWZmZWN0cy9QYW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzLzJkL2VmZmVjdHMvUm90YXRlVG8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzLzJkL2VmZmVjdHMvU2hha2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzLzJkL2VmZmVjdHMvWm9vbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NhbWVyYXMvMmQvZWZmZWN0cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NhbWVyYXMvMmQvZXZlbnRzL0RFU1RST1lfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzLzJkL2V2ZW50cy9GQURFX0lOX0NPTVBMRVRFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FtZXJhcy8yZC9ldmVudHMvRkFERV9JTl9TVEFSVF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NhbWVyYXMvMmQvZXZlbnRzL0ZBREVfT1VUX0NPTVBMRVRFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FtZXJhcy8yZC9ldmVudHMvRkFERV9PVVRfU1RBUlRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzLzJkL2V2ZW50cy9GTEFTSF9DT01QTEVURV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NhbWVyYXMvMmQvZXZlbnRzL0ZMQVNIX1NUQVJUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FtZXJhcy8yZC9ldmVudHMvUEFOX0NPTVBMRVRFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FtZXJhcy8yZC9ldmVudHMvUEFOX1NUQVJUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FtZXJhcy8yZC9ldmVudHMvUE9TVF9SRU5ERVJfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzLzJkL2V2ZW50cy9QUkVfUkVOREVSX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FtZXJhcy8yZC9ldmVudHMvUk9UQVRFX0NPTVBMRVRFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FtZXJhcy8yZC9ldmVudHMvUk9UQVRFX1NUQVJUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FtZXJhcy8yZC9ldmVudHMvU0hBS0VfQ09NUExFVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzLzJkL2V2ZW50cy9TSEFLRV9TVEFSVF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NhbWVyYXMvMmQvZXZlbnRzL1pPT01fQ09NUExFVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzLzJkL2V2ZW50cy9aT09NX1NUQVJUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FtZXJhcy8yZC9ldmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzLzJkL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY2FtZXJhcy9jb250cm9scy9GaXhlZEtleUNvbnRyb2wuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzL2NvbnRyb2xzL1Ntb290aGVkS2V5Q29udHJvbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NhbWVyYXMvY29udHJvbHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jYW1lcmFzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY29uc3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jb3JlL0NvbmZpZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NvcmUvQ3JlYXRlUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jb3JlL0RlYnVnSGVhZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY29yZS9HYW1lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY29yZS9UaW1lU3RlcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NvcmUvVmlzaWJpbGl0eUhhbmRsZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jb3JlL2V2ZW50cy9CTFVSX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY29yZS9ldmVudHMvQk9PVF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NvcmUvZXZlbnRzL0NPTlRFWFRfTE9TVF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NvcmUvZXZlbnRzL0NPTlRFWFRfUkVTVE9SRURfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jb3JlL2V2ZW50cy9ERVNUUk9ZX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY29yZS9ldmVudHMvRk9DVVNfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jb3JlL2V2ZW50cy9ISURERU5fRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jb3JlL2V2ZW50cy9QQVVTRV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NvcmUvZXZlbnRzL1BPU1RfUkVOREVSX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY29yZS9ldmVudHMvUE9TVF9TVEVQX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY29yZS9ldmVudHMvUFJFX1JFTkRFUl9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NvcmUvZXZlbnRzL1BSRV9TVEVQX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY29yZS9ldmVudHMvUkVBRFlfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jb3JlL2V2ZW50cy9SRVNVTUVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jb3JlL2V2ZW50cy9TVEVQX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY29yZS9ldmVudHMvVklTSUJMRV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NvcmUvZXZlbnRzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY29yZS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NyZWF0ZS9HZW5lcmF0ZVRleHR1cmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jcmVhdGUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jcmVhdGUvcGFsZXR0ZXMvQXJuZTE2LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY3JlYXRlL3BhbGV0dGVzL0M2NC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NyZWF0ZS9wYWxldHRlcy9DR0EuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jcmVhdGUvcGFsZXR0ZXMvSk1QLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY3JlYXRlL3BhbGV0dGVzL01TWC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2NyZWF0ZS9wYWxldHRlcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2N1cnZlcy9DdWJpY0JlemllckN1cnZlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY3VydmVzL0N1cnZlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvY3VydmVzL0VsbGlwc2VDdXJ2ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2N1cnZlcy9MaW5lQ3VydmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jdXJ2ZXMvUXVhZHJhdGljQmV6aWVyQ3VydmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jdXJ2ZXMvU3BsaW5lQ3VydmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jdXJ2ZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jdXJ2ZXMvcGF0aC9Nb3ZlVG8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9jdXJ2ZXMvcGF0aC9QYXRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGF0YS9EYXRhTWFuYWdlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2RhdGEvRGF0YU1hbmFnZXJQbHVnaW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kYXRhL2V2ZW50cy9DSEFOR0VfREFUQV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2RhdGEvZXZlbnRzL0NIQU5HRV9EQVRBX0tFWV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2RhdGEvZXZlbnRzL1JFTU9WRV9EQVRBX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGF0YS9ldmVudHMvU0VUX0RBVEFfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kYXRhL2V2ZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2RhdGEvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kZXZpY2UvQXVkaW8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kZXZpY2UvQnJvd3Nlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2RldmljZS9DYW52YXNGZWF0dXJlcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2RldmljZS9GZWF0dXJlcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2RldmljZS9GdWxsc2NyZWVuLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGV2aWNlL0lucHV0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGV2aWNlL09TLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGV2aWNlL1ZpZGVvLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGV2aWNlL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9hbGlnbi9jb25zdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vaW4vQm90dG9tQ2VudGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9hbGlnbi9pbi9Cb3R0b21MZWZ0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9hbGlnbi9pbi9Cb3R0b21SaWdodC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vaW4vQ2VudGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9hbGlnbi9pbi9MZWZ0Q2VudGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9hbGlnbi9pbi9RdWlja1NldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vaW4vUmlnaHRDZW50ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2FsaWduL2luL1RvcENlbnRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vaW4vVG9wTGVmdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vaW4vVG9wUmlnaHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2FsaWduL2luL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9hbGlnbi9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vdG8vQm90dG9tQ2VudGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9hbGlnbi90by9Cb3R0b21MZWZ0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9hbGlnbi90by9Cb3R0b21SaWdodC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vdG8vTGVmdEJvdHRvbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vdG8vTGVmdENlbnRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vdG8vTGVmdFRvcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vdG8vUXVpY2tTZXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2FsaWduL3RvL1JpZ2h0Qm90dG9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9hbGlnbi90by9SaWdodENlbnRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vdG8vUmlnaHRUb3AuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2FsaWduL3RvL1RvcENlbnRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vdG8vVG9wTGVmdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYWxpZ24vdG8vVG9wUmlnaHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2FsaWduL3RvL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9ib3VuZHMvQ2VudGVyT24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2JvdW5kcy9HZXRCb3R0b20uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2JvdW5kcy9HZXRDZW50ZXJYLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9ib3VuZHMvR2V0Q2VudGVyWS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYm91bmRzL0dldExlZnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2JvdW5kcy9HZXRPZmZzZXRYLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9ib3VuZHMvR2V0T2Zmc2V0WS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYm91bmRzL0dldFJpZ2h0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9ib3VuZHMvR2V0VG9wLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9ib3VuZHMvU2V0Qm90dG9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9ib3VuZHMvU2V0Q2VudGVyWC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvYm91bmRzL1NldENlbnRlclkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2JvdW5kcy9TZXRMZWZ0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9ib3VuZHMvU2V0UmlnaHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2JvdW5kcy9TZXRUb3AuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2JvdW5kcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvY2FudmFzL0NhbnZhc0ludGVycG9sYXRpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2NhbnZhcy9DYW52YXNQb29sLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jYW52YXMvU21vb3RoaW5nLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jYW52YXMvVG91Y2hBY3Rpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2NhbnZhcy9Vc2VyU2VsZWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jYW52YXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2NvbG9yL0NvbG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jb2xvci9Db2xvclRvUkdCQS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvY29sb3IvQ29tcG9uZW50VG9IZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2NvbG9yL0dldENvbG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jb2xvci9HZXRDb2xvcjMyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jb2xvci9IU0xUb0NvbG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jb2xvci9IU1ZDb2xvcldoZWVsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jb2xvci9IU1ZUb1JHQi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvY29sb3IvSGV4U3RyaW5nVG9Db2xvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvY29sb3IvSHVlVG9Db21wb25lbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2NvbG9yL0ludGVnZXJUb0NvbG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jb2xvci9JbnRlZ2VyVG9SR0IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2NvbG9yL0ludGVycG9sYXRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jb2xvci9PYmplY3RUb0NvbG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jb2xvci9SR0JTdHJpbmdUb0NvbG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jb2xvci9SR0JUb0hTVi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvY29sb3IvUkdCVG9TdHJpbmcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L2NvbG9yL1JhbmRvbVJHQi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvY29sb3IvVmFsdWVUb0NvbG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZGlzcGxheS9jb2xvci9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L21hc2svQml0bWFwTWFzay5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2Rpc3BsYXkvbWFzay9HZW9tZXRyeU1hc2suanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L21hc2svaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9kaXNwbGF5L3NoYWRlci9CYXNlU2hhZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZG9tL0FkZFRvRE9NLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZG9tL0NyZWF0ZURPTUNvbnRhaW5lci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2RvbS9ET01Db250ZW50TG9hZGVkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZG9tL0dldElubmVySGVpZ2h0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZG9tL0dldFNjcmVlbk9yaWVudGF0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZG9tL0dldFRhcmdldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2RvbS9QYXJzZVhNTC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2RvbS9SZW1vdmVGcm9tRE9NLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2RvbS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2V2ZW50cy9FdmVudEVtaXR0ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9ldmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9CdWlsZEdhbWVPYmplY3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9CdWlsZEdhbWVPYmplY3RBbmltYXRpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9EaXNwbGF5TGlzdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL0dhbWVPYmplY3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9HYW1lT2JqZWN0Q3JlYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL0dhbWVPYmplY3RGYWN0b3J5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvVXBkYXRlTGlzdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2JpdG1hcHRleHQvR2V0Qml0bWFwVGV4dFNpemUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9iaXRtYXB0ZXh0L1BhcnNlRnJvbUF0bGFzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvYml0bWFwdGV4dC9QYXJzZVJldHJvRm9udC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2JpdG1hcHRleHQvUGFyc2VYTUxCaXRtYXBGb250LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvYml0bWFwdGV4dC9SZXRyb0ZvbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9iaXRtYXB0ZXh0L2NvbnN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvYml0bWFwdGV4dC9keW5hbWljL0R5bmFtaWNCaXRtYXBUZXh0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvYml0bWFwdGV4dC9keW5hbWljL0R5bmFtaWNCaXRtYXBUZXh0Q2FudmFzUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9iaXRtYXB0ZXh0L2R5bmFtaWMvRHluYW1pY0JpdG1hcFRleHRDcmVhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvYml0bWFwdGV4dC9keW5hbWljL0R5bmFtaWNCaXRtYXBUZXh0RmFjdG9yeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2JpdG1hcHRleHQvZHluYW1pYy9EeW5hbWljQml0bWFwVGV4dFJlbmRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2JpdG1hcHRleHQvZHluYW1pYy9EeW5hbWljQml0bWFwVGV4dFdlYkdMUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9iaXRtYXB0ZXh0L3N0YXRpYy9CaXRtYXBUZXh0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvYml0bWFwdGV4dC9zdGF0aWMvQml0bWFwVGV4dENhbnZhc1JlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvYml0bWFwdGV4dC9zdGF0aWMvQml0bWFwVGV4dENyZWF0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9iaXRtYXB0ZXh0L3N0YXRpYy9CaXRtYXBUZXh0RmFjdG9yeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2JpdG1hcHRleHQvc3RhdGljL0JpdG1hcFRleHRSZW5kZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9iaXRtYXB0ZXh0L3N0YXRpYy9CaXRtYXBUZXh0V2ViR0xSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2JsaXR0ZXIvQmxpdHRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2JsaXR0ZXIvQmxpdHRlckNhbnZhc1JlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvYmxpdHRlci9CbGl0dGVyQ3JlYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2JsaXR0ZXIvQmxpdHRlckZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9ibGl0dGVyL0JsaXR0ZXJSZW5kZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9ibGl0dGVyL0JsaXR0ZXJXZWJHTFJlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvYmxpdHRlci9Cb2IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9jb21wb25lbnRzL0FscGhhLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvY29tcG9uZW50cy9BbHBoYVNpbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2NvbXBvbmVudHMvQW5pbWF0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvY29tcG9uZW50cy9CbGVuZE1vZGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9jb21wb25lbnRzL0NvbXB1dGVkU2l6ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2NvbXBvbmVudHMvQ3JvcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2NvbXBvbmVudHMvRGVwdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9jb21wb25lbnRzL0ZsaXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9jb21wb25lbnRzL0dldEJvdW5kcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2NvbXBvbmVudHMvTWFzay5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2NvbXBvbmVudHMvT3JpZ2luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvY29tcG9uZW50cy9QYXRoRm9sbG93ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9jb21wb25lbnRzL1BpcGVsaW5lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvY29tcG9uZW50cy9TY3JvbGxGYWN0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9jb21wb25lbnRzL1NpemUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9jb21wb25lbnRzL1RleHR1cmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9jb21wb25lbnRzL1RleHR1cmVDcm9wLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvY29tcG9uZW50cy9UaW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvY29tcG9uZW50cy9Ub0pTT04uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9jb21wb25lbnRzL1RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2NvbXBvbmVudHMvVHJhbnNmb3JtTWF0cml4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvY29tcG9uZW50cy9WaXNpYmxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvY29tcG9uZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2NvbnRhaW5lci9Db250YWluZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9jb250YWluZXIvQ29udGFpbmVyQ2FudmFzUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9jb250YWluZXIvQ29udGFpbmVyQ3JlYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2NvbnRhaW5lci9Db250YWluZXJGYWN0b3J5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvY29udGFpbmVyL0NvbnRhaW5lclJlbmRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2NvbnRhaW5lci9Db250YWluZXJXZWJHTFJlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZG9tZWxlbWVudC9DU1NCbGVuZE1vZGVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZG9tZWxlbWVudC9ET01FbGVtZW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZG9tZWxlbWVudC9ET01FbGVtZW50Q1NTUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9kb21lbGVtZW50L0RPTUVsZW1lbnRGYWN0b3J5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZG9tZWxlbWVudC9ET01FbGVtZW50UmVuZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZXZlbnRzL0RFU1RST1lfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9ldmVudHMvVklERU9fQ09NUExFVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9ldmVudHMvVklERU9fQ1JFQVRFRF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2V2ZW50cy9WSURFT19FUlJPUl9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2V2ZW50cy9WSURFT19MT09QX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZXZlbnRzL1ZJREVPX1BMQVlfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9ldmVudHMvVklERU9fU0VFS0VEX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZXZlbnRzL1ZJREVPX1NFRUtJTkdfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9ldmVudHMvVklERU9fU1RPUF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2V2ZW50cy9WSURFT19USU1FT1VUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZXZlbnRzL1ZJREVPX1VOTE9DS0VEX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZXZlbnRzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZXh0ZXJuL0V4dGVybi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2V4dGVybi9FeHRlcm5GYWN0b3J5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZXh0ZXJuL0V4dGVyblJlbmRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2V4dGVybi9FeHRlcm5XZWJHTFJlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZ3JhcGhpY3MvQ29tbWFuZHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9ncmFwaGljcy9HcmFwaGljcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2dyYXBoaWNzL0dyYXBoaWNzQ2FudmFzUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9ncmFwaGljcy9HcmFwaGljc0NyZWF0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9ncmFwaGljcy9HcmFwaGljc0ZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9ncmFwaGljcy9HcmFwaGljc1JlbmRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2dyYXBoaWNzL0dyYXBoaWNzV2ViR0xSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2dyb3VwL0dyb3VwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZ3JvdXAvR3JvdXBDcmVhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvZ3JvdXAvR3JvdXBGYWN0b3J5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvaW1hZ2UvSW1hZ2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9pbWFnZS9JbWFnZUNhbnZhc1JlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvaW1hZ2UvSW1hZ2VDcmVhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvaW1hZ2UvSW1hZ2VGYWN0b3J5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvaW1hZ2UvSW1hZ2VSZW5kZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9pbWFnZS9JbWFnZVdlYkdMUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2xpZ2h0cy9MaWdodC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL2xpZ2h0cy9MaWdodHNNYW5hZ2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvbGlnaHRzL0xpZ2h0c1BsdWdpbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL21lc2gvTWVzaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL21lc2gvTWVzaENhbnZhc1JlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvbWVzaC9NZXNoQ3JlYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL21lc2gvTWVzaEZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9tZXNoL01lc2hSZW5kZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9tZXNoL01lc2hXZWJHTFJlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvcGFydGljbGVzL0VtaXR0ZXJPcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3BhcnRpY2xlcy9HcmF2aXR5V2VsbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3BhcnRpY2xlcy9QYXJ0aWNsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3BhcnRpY2xlcy9QYXJ0aWNsZUVtaXR0ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9wYXJ0aWNsZXMvUGFydGljbGVFbWl0dGVyTWFuYWdlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3BhcnRpY2xlcy9QYXJ0aWNsZU1hbmFnZXJDYW52YXNSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3BhcnRpY2xlcy9QYXJ0aWNsZU1hbmFnZXJDcmVhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvcGFydGljbGVzL1BhcnRpY2xlTWFuYWdlckZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9wYXJ0aWNsZXMvUGFydGljbGVNYW5hZ2VyUmVuZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvcGFydGljbGVzL1BhcnRpY2xlTWFuYWdlcldlYkdMUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9wYXJ0aWNsZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9wYXJ0aWNsZXMvem9uZXMvRGVhdGhab25lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvcGFydGljbGVzL3pvbmVzL0VkZ2Vab25lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvcGFydGljbGVzL3pvbmVzL1JhbmRvbVpvbmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9wYXJ0aWNsZXMvem9uZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9wYXRoZm9sbG93ZXIvUGF0aEZvbGxvd2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvcGF0aGZvbGxvd2VyL1BhdGhGb2xsb3dlckZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9xdWFkL1F1YWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9xdWFkL1F1YWRDcmVhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvcXVhZC9RdWFkRmFjdG9yeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3JlbmRlcnRleHR1cmUvUmVuZGVyVGV4dHVyZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3JlbmRlcnRleHR1cmUvUmVuZGVyVGV4dHVyZUNhbnZhc1JlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvcmVuZGVydGV4dHVyZS9SZW5kZXJUZXh0dXJlQ3JlYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3JlbmRlcnRleHR1cmUvUmVuZGVyVGV4dHVyZUZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9yZW5kZXJ0ZXh0dXJlL1JlbmRlclRleHR1cmVSZW5kZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9yZW5kZXJ0ZXh0dXJlL1JlbmRlclRleHR1cmVXZWJHTFJlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvcm9wZS9Sb3BlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvcm9wZS9Sb3BlQ2FudmFzUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9yb3BlL1JvcGVDcmVhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvcm9wZS9Sb3BlRmFjdG9yeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3JvcGUvUm9wZVJlbmRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3JvcGUvUm9wZVdlYkdMUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFkZXIvU2hhZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhZGVyL1NoYWRlckNhbnZhc1JlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhZGVyL1NoYWRlckNyZWF0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFkZXIvU2hhZGVyRmFjdG9yeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYWRlci9TaGFkZXJSZW5kZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFkZXIvU2hhZGVyV2ViR0xSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL0ZpbGxQYXRoV2ViR0wuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9GaWxsU3R5bGVDYW52YXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9MaW5lU3R5bGVDYW52YXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9TaGFwZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL1N0cm9rZVBhdGhXZWJHTC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2FyYy9BcmMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9hcmMvQXJjQ2FudmFzUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9hcmMvQXJjRmFjdG9yeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2FyYy9BcmNSZW5kZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9hcmMvQXJjV2ViR0xSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2N1cnZlL0N1cnZlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvY3VydmUvQ3VydmVDYW52YXNSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2N1cnZlL0N1cnZlRmFjdG9yeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2N1cnZlL0N1cnZlUmVuZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvY3VydmUvQ3VydmVXZWJHTFJlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvZWxsaXBzZS9FbGxpcHNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvZWxsaXBzZS9FbGxpcHNlQ2FudmFzUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9lbGxpcHNlL0VsbGlwc2VGYWN0b3J5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvZWxsaXBzZS9FbGxpcHNlUmVuZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvZWxsaXBzZS9FbGxpcHNlV2ViR0xSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2dyaWQvR3JpZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2dyaWQvR3JpZENhbnZhc1JlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvZ3JpZC9HcmlkRmFjdG9yeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2dyaWQvR3JpZFJlbmRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2dyaWQvR3JpZFdlYkdMUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9pc29ib3gvSXNvQm94LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvaXNvYm94L0lzb0JveENhbnZhc1JlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvaXNvYm94L0lzb0JveEZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9pc29ib3gvSXNvQm94UmVuZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvaXNvYm94L0lzb0JveFdlYkdMUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9pc290cmlhbmdsZS9Jc29UcmlhbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2lzb3RyaWFuZ2xlL0lzb1RyaWFuZ2xlQ2FudmFzUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9pc290cmlhbmdsZS9Jc29UcmlhbmdsZUZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9pc290cmlhbmdsZS9Jc29UcmlhbmdsZVJlbmRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2lzb3RyaWFuZ2xlL0lzb1RyaWFuZ2xlV2ViR0xSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2xpbmUvTGluZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2xpbmUvTGluZUNhbnZhc1JlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvbGluZS9MaW5lRmFjdG9yeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2xpbmUvTGluZVJlbmRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL2xpbmUvTGluZVdlYkdMUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9wb2x5Z29uL1BvbHlnb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9wb2x5Z29uL1BvbHlnb25DYW52YXNSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL3BvbHlnb24vUG9seWdvbkZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9wb2x5Z29uL1BvbHlnb25SZW5kZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9wb2x5Z29uL1BvbHlnb25XZWJHTFJlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvcmVjdGFuZ2xlL1JlY3RhbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL3JlY3RhbmdsZS9SZWN0YW5nbGVDYW52YXNSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL3JlY3RhbmdsZS9SZWN0YW5nbGVGYWN0b3J5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvcmVjdGFuZ2xlL1JlY3RhbmdsZVJlbmRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL3JlY3RhbmdsZS9SZWN0YW5nbGVXZWJHTFJlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvc3Rhci9TdGFyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvc3Rhci9TdGFyQ2FudmFzUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zaGFwZS9zdGFyL1N0YXJGYWN0b3J5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvc3Rhci9TdGFyUmVuZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvc3Rhci9TdGFyV2ViR0xSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL3RyaWFuZ2xlL1RyaWFuZ2xlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvdHJpYW5nbGUvVHJpYW5nbGVDYW52YXNSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL3RyaWFuZ2xlL1RyaWFuZ2xlRmFjdG9yeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3NoYXBlL3RyaWFuZ2xlL1RyaWFuZ2xlUmVuZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc2hhcGUvdHJpYW5nbGUvVHJpYW5nbGVXZWJHTFJlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc3ByaXRlL1Nwcml0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3Nwcml0ZS9TcHJpdGVDYW52YXNSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3Nwcml0ZS9TcHJpdGVDcmVhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc3ByaXRlL1Nwcml0ZUZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy9zcHJpdGUvU3ByaXRlUmVuZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvc3ByaXRlL1Nwcml0ZVdlYkdMUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy90ZXh0L0dldFRleHRTaXplLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvdGV4dC9NZWFzdXJlVGV4dC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3RleHQvVGV4dFN0eWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvdGV4dC9zdGF0aWMvVGV4dC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3RleHQvc3RhdGljL1RleHRDYW52YXNSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3RleHQvc3RhdGljL1RleHRDcmVhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvdGV4dC9zdGF0aWMvVGV4dEZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy90ZXh0L3N0YXRpYy9UZXh0UmVuZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvdGV4dC9zdGF0aWMvVGV4dFdlYkdMUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy90aWxlc3ByaXRlL1RpbGVTcHJpdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy90aWxlc3ByaXRlL1RpbGVTcHJpdGVDYW52YXNSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3RpbGVzcHJpdGUvVGlsZVNwcml0ZUNyZWF0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nYW1lb2JqZWN0cy90aWxlc3ByaXRlL1RpbGVTcHJpdGVGYWN0b3J5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvdGlsZXNwcml0ZS9UaWxlU3ByaXRlUmVuZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvdGlsZXNwcml0ZS9UaWxlU3ByaXRlV2ViR0xSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3ZpZGVvL1ZpZGVvLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvdmlkZW8vVmlkZW9DYW52YXNSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3ZpZGVvL1ZpZGVvQ3JlYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3ZpZGVvL1ZpZGVvRmFjdG9yeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3ZpZGVvL1ZpZGVvUmVuZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvdmlkZW8vVmlkZW9XZWJHTFJlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvem9uZS9ab25lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2FtZW9iamVjdHMvem9uZS9ab25lQ3JlYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dhbWVvYmplY3RzL3pvbmUvWm9uZUZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2NpcmNsZS9BcmVhLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9jaXJjbGUvQ2lyY2xlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9jaXJjbGUvQ2lyY3VtZmVyZW5jZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vY2lyY2xlL0NpcmN1bWZlcmVuY2VQb2ludC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vY2lyY2xlL0Nsb25lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9jaXJjbGUvQ29udGFpbnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2NpcmNsZS9Db250YWluc1BvaW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9jaXJjbGUvQ29udGFpbnNSZWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9jaXJjbGUvQ29weUZyb20uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2NpcmNsZS9FcXVhbHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2NpcmNsZS9HZXRCb3VuZHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2NpcmNsZS9HZXRQb2ludC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vY2lyY2xlL0dldFBvaW50cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vY2lyY2xlL09mZnNldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vY2lyY2xlL09mZnNldFBvaW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9jaXJjbGUvUmFuZG9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9jaXJjbGUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2NvbnN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9lbGxpcHNlL0FyZWEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2VsbGlwc2UvQ2lyY3VtZmVyZW5jZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vZWxsaXBzZS9DaXJjdW1mZXJlbmNlUG9pbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2VsbGlwc2UvQ2xvbmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2VsbGlwc2UvQ29udGFpbnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2VsbGlwc2UvQ29udGFpbnNQb2ludC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vZWxsaXBzZS9Db250YWluc1JlY3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2VsbGlwc2UvQ29weUZyb20uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2VsbGlwc2UvRWxsaXBzZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vZWxsaXBzZS9FcXVhbHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2VsbGlwc2UvR2V0Qm91bmRzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9lbGxpcHNlL0dldFBvaW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9lbGxpcHNlL0dldFBvaW50cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vZWxsaXBzZS9PZmZzZXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2VsbGlwc2UvT2Zmc2V0UG9pbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2VsbGlwc2UvUmFuZG9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9lbGxpcHNlL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9DaXJjbGVUb0NpcmNsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9DaXJjbGVUb1JlY3RhbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9HZXRDaXJjbGVUb0NpcmNsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9HZXRDaXJjbGVUb1JlY3RhbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9HZXRMaW5lVG9DaXJjbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2ludGVyc2VjdHMvR2V0TGluZVRvUmVjdGFuZ2xlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9pbnRlcnNlY3RzL0dldFJlY3RhbmdsZUludGVyc2VjdGlvbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9HZXRSZWN0YW5nbGVUb1JlY3RhbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9HZXRSZWN0YW5nbGVUb1RyaWFuZ2xlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9pbnRlcnNlY3RzL0dldFRyaWFuZ2xlVG9DaXJjbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2ludGVyc2VjdHMvR2V0VHJpYW5nbGVUb0xpbmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2ludGVyc2VjdHMvR2V0VHJpYW5nbGVUb1RyaWFuZ2xlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9pbnRlcnNlY3RzL0xpbmVUb0NpcmNsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9MaW5lVG9MaW5lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9pbnRlcnNlY3RzL0xpbmVUb1JlY3RhbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9Qb2ludFRvTGluZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9Qb2ludFRvTGluZVNlZ21lbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2ludGVyc2VjdHMvUmVjdGFuZ2xlVG9SZWN0YW5nbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2ludGVyc2VjdHMvUmVjdGFuZ2xlVG9UcmlhbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9SZWN0YW5nbGVUb1ZhbHVlcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9UcmlhbmdsZVRvQ2lyY2xlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9pbnRlcnNlY3RzL1RyaWFuZ2xlVG9MaW5lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9pbnRlcnNlY3RzL1RyaWFuZ2xlVG9UcmlhbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vaW50ZXJzZWN0cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9BbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9CcmVzZW5oYW1Qb2ludHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2xpbmUvQ2VudGVyT24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2xpbmUvQ2xvbmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2xpbmUvQ29weUZyb20uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2xpbmUvRXF1YWxzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9saW5lL0V4dGVuZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9HZXRFYXNlZFBvaW50cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9HZXRNaWRQb2ludC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9HZXROZWFyZXN0UG9pbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2xpbmUvR2V0Tm9ybWFsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9saW5lL0dldFBvaW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9saW5lL0dldFBvaW50cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9HZXRTaG9ydGVzdERpc3RhbmNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9saW5lL0hlaWdodC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9MZW5ndGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2xpbmUvTGluZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9Ob3JtYWxBbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9Ob3JtYWxYLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9saW5lL05vcm1hbFkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2xpbmUvT2Zmc2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9saW5lL1BlcnBTbG9wZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9SYW5kb20uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL2xpbmUvUmVmbGVjdEFuZ2xlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9saW5lL1JvdGF0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9Sb3RhdGVBcm91bmRQb2ludC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9Sb3RhdGVBcm91bmRYWS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vbGluZS9TZXRUb0FuZ2xlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9saW5lL1Nsb3BlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9saW5lL1dpZHRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9saW5lL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2ludC9DZWlsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2ludC9DbG9uZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcG9pbnQvQ29weUZyb20uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3BvaW50L0VxdWFscy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcG9pbnQvRmxvb3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3BvaW50L0dldENlbnRyb2lkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2ludC9HZXRNYWduaXR1ZGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3BvaW50L0dldE1hZ25pdHVkZVNxLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2ludC9HZXRSZWN0YW5nbGVGcm9tUG9pbnRzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2ludC9JbnRlcnBvbGF0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcG9pbnQvSW52ZXJ0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2ludC9OZWdhdGl2ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcG9pbnQvUG9pbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3BvaW50L1Byb2plY3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3BvaW50L1Byb2plY3RVbml0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2ludC9TZXRNYWduaXR1ZGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3BvaW50L2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2x5Z29uL0Nsb25lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2x5Z29uL0NvbnRhaW5zLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2x5Z29uL0NvbnRhaW5zUG9pbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3BvbHlnb24vRWFyY3V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2x5Z29uL0dldEFBQkIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3BvbHlnb24vR2V0TnVtYmVyQXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3BvbHlnb24vR2V0UG9pbnRzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2x5Z29uL1BlcmltZXRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcG9seWdvbi9Qb2x5Z29uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2x5Z29uL1JldmVyc2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3BvbHlnb24vU21vb3RoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9wb2x5Z29uL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvQXJlYS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcmVjdGFuZ2xlL0NlaWwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3JlY3RhbmdsZS9DZWlsQWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvQ2VudGVyT24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3JlY3RhbmdsZS9DbG9uZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcmVjdGFuZ2xlL0NvbnRhaW5zLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvQ29udGFpbnNQb2ludC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcmVjdGFuZ2xlL0NvbnRhaW5zUmVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcmVjdGFuZ2xlL0NvcHlGcm9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvRGVjb21wb3NlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvRXF1YWxzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvRml0SW5zaWRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvRml0T3V0c2lkZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcmVjdGFuZ2xlL0Zsb29yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvRmxvb3JBbGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3JlY3RhbmdsZS9Gcm9tUG9pbnRzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvRnJvbVhZLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvR2V0QXNwZWN0UmF0aW8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3JlY3RhbmdsZS9HZXRDZW50ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3JlY3RhbmdsZS9HZXRQb2ludC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcmVjdGFuZ2xlL0dldFBvaW50cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcmVjdGFuZ2xlL0dldFNpemUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3JlY3RhbmdsZS9JbmZsYXRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvSW50ZXJzZWN0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvTWFyY2hpbmdBbnRzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvTWVyZ2VQb2ludHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3JlY3RhbmdsZS9NZXJnZVJlY3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3JlY3RhbmdsZS9NZXJnZVhZLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvT2Zmc2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvT2Zmc2V0UG9pbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3JlY3RhbmdsZS9PdmVybGFwcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcmVjdGFuZ2xlL1BlcmltZXRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcmVjdGFuZ2xlL1BlcmltZXRlclBvaW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvUmFuZG9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvUmFuZG9tT3V0c2lkZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcmVjdGFuZ2xlL1JlY3RhbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcmVjdGFuZ2xlL1NhbWVEaW1lbnNpb25zLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS9yZWN0YW5nbGUvU2NhbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3JlY3RhbmdsZS9Vbmlvbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vcmVjdGFuZ2xlL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS90cmlhbmdsZS9BcmVhLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS90cmlhbmdsZS9CdWlsZEVxdWlsYXRlcmFsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS90cmlhbmdsZS9CdWlsZEZyb21Qb2x5Z29uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS90cmlhbmdsZS9CdWlsZFJpZ2h0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS90cmlhbmdsZS9DZW50ZXJPbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vdHJpYW5nbGUvQ2VudHJvaWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3RyaWFuZ2xlL0NpcmN1bUNlbnRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vdHJpYW5nbGUvQ2lyY3VtQ2lyY2xlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS90cmlhbmdsZS9DbG9uZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vdHJpYW5nbGUvQ29udGFpbnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3RyaWFuZ2xlL0NvbnRhaW5zQXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3RyaWFuZ2xlL0NvbnRhaW5zUG9pbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3RyaWFuZ2xlL0NvcHlGcm9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS90cmlhbmdsZS9EZWNvbXBvc2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3RyaWFuZ2xlL0VxdWFscy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vdHJpYW5nbGUvR2V0UG9pbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3RyaWFuZ2xlL0dldFBvaW50cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vdHJpYW5nbGUvSW5DZW50ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3RyaWFuZ2xlL09mZnNldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vdHJpYW5nbGUvUGVyaW1ldGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS90cmlhbmdsZS9SYW5kb20uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3RyaWFuZ2xlL1JvdGF0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vdHJpYW5nbGUvUm90YXRlQXJvdW5kUG9pbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9nZW9tL3RyaWFuZ2xlL1JvdGF0ZUFyb3VuZFhZLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvZ2VvbS90cmlhbmdsZS9UcmlhbmdsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2dlb20vdHJpYW5nbGUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9DcmVhdGVJbnRlcmFjdGl2ZU9iamVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L0NyZWF0ZVBpeGVsUGVyZmVjdEhhbmRsZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9JbnB1dE1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9JbnB1dFBsdWdpbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L0lucHV0UGx1Z2luQ2FjaGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9Qb2ludGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvY29uc3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvQk9PVF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2V2ZW50cy9ERVNUUk9ZX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL0RSQUdfRU5EX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL0RSQUdfRU5URVJfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvRFJBR19FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2V2ZW50cy9EUkFHX0xFQVZFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL0RSQUdfT1ZFUl9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2V2ZW50cy9EUkFHX1NUQVJUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL0RST1BfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvR0FNRU9CSkVDVF9ET1dOX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL0dBTUVPQkpFQ1RfRFJBR19FTkRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvR0FNRU9CSkVDVF9EUkFHX0VOVEVSX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL0dBTUVPQkpFQ1RfRFJBR19FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2V2ZW50cy9HQU1FT0JKRUNUX0RSQUdfTEVBVkVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvR0FNRU9CSkVDVF9EUkFHX09WRVJfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvR0FNRU9CSkVDVF9EUkFHX1NUQVJUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL0dBTUVPQkpFQ1RfRFJPUF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2V2ZW50cy9HQU1FT0JKRUNUX01PVkVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvR0FNRU9CSkVDVF9PVVRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvR0FNRU9CSkVDVF9PVkVSX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL0dBTUVPQkpFQ1RfUE9JTlRFUl9ET1dOX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL0dBTUVPQkpFQ1RfUE9JTlRFUl9NT1ZFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL0dBTUVPQkpFQ1RfUE9JTlRFUl9PVVRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvR0FNRU9CSkVDVF9QT0lOVEVSX09WRVJfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvR0FNRU9CSkVDVF9QT0lOVEVSX1VQX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL0dBTUVPQkpFQ1RfUE9JTlRFUl9XSEVFTF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2V2ZW50cy9HQU1FT0JKRUNUX1VQX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL0dBTUVPQkpFQ1RfV0hFRUxfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvR0FNRV9PVVRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvR0FNRV9PVkVSX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL01BTkFHRVJfQk9PVF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2V2ZW50cy9NQU5BR0VSX1BST0NFU1NfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvTUFOQUdFUl9VUERBVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvUE9JTlRFUkxPQ0tfQ0hBTkdFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL1BPSU5URVJfRE9XTl9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2V2ZW50cy9QT0lOVEVSX0RPV05fT1VUU0lERV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2V2ZW50cy9QT0lOVEVSX01PVkVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvUE9JTlRFUl9PVVRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvUE9JTlRFUl9PVkVSX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL1BPSU5URVJfVVBfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvUE9JTlRFUl9VUF9PVVRTSURFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZXZlbnRzL1BPSU5URVJfV0hFRUxfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvUFJFX1VQREFURV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2V2ZW50cy9TSFVURE9XTl9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2V2ZW50cy9TVEFSVF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2V2ZW50cy9VUERBVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9ldmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9nYW1lcGFkL0F4aXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9nYW1lcGFkL0J1dHRvbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2dhbWVwYWQvR2FtZXBhZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2dhbWVwYWQvR2FtZXBhZFBsdWdpbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2dhbWVwYWQvY29uZmlncy9TTkVTX1VTQl9Db250cm9sbGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZ2FtZXBhZC9jb25maWdzL1NvbnlfUGxheVN0YXRpb25fRHVhbFNob2NrXzQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9nYW1lcGFkL2NvbmZpZ3MvWEJveDM2MF9Db250cm9sbGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZ2FtZXBhZC9jb25maWdzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZ2FtZXBhZC9ldmVudHMvQlVUVE9OX0RPV05fRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9nYW1lcGFkL2V2ZW50cy9CVVRUT05fVVBfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9nYW1lcGFkL2V2ZW50cy9DT05ORUNURURfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9nYW1lcGFkL2V2ZW50cy9ESVNDT05ORUNURURfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9nYW1lcGFkL2V2ZW50cy9HQU1FUEFEX0JVVFRPTl9ET1dOX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvZ2FtZXBhZC9ldmVudHMvR0FNRVBBRF9CVVRUT05fVVBfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9nYW1lcGFkL2V2ZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2dhbWVwYWQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2tleWJvYXJkL0tleWJvYXJkTWFuYWdlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2tleWJvYXJkL0tleWJvYXJkUGx1Z2luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQva2V5Ym9hcmQvY29tYm8vQWR2YW5jZUtleUNvbWJvLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQva2V5Ym9hcmQvY29tYm8vS2V5Q29tYm8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9rZXlib2FyZC9jb21iby9Qcm9jZXNzS2V5Q29tYm8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9rZXlib2FyZC9jb21iby9SZXNldEtleUNvbWJvLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQva2V5Ym9hcmQvZXZlbnRzL0FOWV9LRVlfRE9XTl9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2tleWJvYXJkL2V2ZW50cy9BTllfS0VZX1VQX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQva2V5Ym9hcmQvZXZlbnRzL0NPTUJPX01BVENIX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQva2V5Ym9hcmQvZXZlbnRzL0RPV05fRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9rZXlib2FyZC9ldmVudHMvS0VZX0RPV05fRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9rZXlib2FyZC9ldmVudHMvS0VZX1VQX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQva2V5Ym9hcmQvZXZlbnRzL1VQX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQva2V5Ym9hcmQvZXZlbnRzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQva2V5Ym9hcmQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9rZXlib2FyZC9rZXlzL0Rvd25EdXJhdGlvbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2tleWJvYXJkL2tleXMvSnVzdERvd24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC9rZXlib2FyZC9rZXlzL0p1c3RVcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2tleWJvYXJkL2tleXMvS2V5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQva2V5Ym9hcmQva2V5cy9LZXlDb2Rlcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2lucHV0L2tleWJvYXJkL2tleXMvS2V5TWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQva2V5Ym9hcmQva2V5cy9VcER1cmF0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvbW91c2UvTW91c2VNYW5hZ2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvaW5wdXQvbW91c2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC90b3VjaC9Ub3VjaE1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9pbnB1dC90b3VjaC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9GaWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbG9hZGVyL0ZpbGVUeXBlc01hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvR2V0VVJMLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbG9hZGVyL0xvYWRlclBsdWdpbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9NZXJnZVhIUlNldHRpbmdzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbG9hZGVyL011bHRpRmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9YSFJMb2FkZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvWEhSU2V0dGluZ3MuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvY29uc3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZXZlbnRzL0FERF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9ldmVudHMvQ09NUExFVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZXZlbnRzL0ZJTEVfQ09NUExFVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZXZlbnRzL0ZJTEVfS0VZX0NPTVBMRVRFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbG9hZGVyL2V2ZW50cy9GSUxFX0xPQURfRVJST1JfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZXZlbnRzL0ZJTEVfTE9BRF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9ldmVudHMvRklMRV9QUk9HUkVTU19FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9ldmVudHMvUE9TVF9QUk9DRVNTX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbG9hZGVyL2V2ZW50cy9QUk9HUkVTU19FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9ldmVudHMvU1RBUlRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZXZlbnRzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbG9hZGVyL2ZpbGV0eXBlcy9BbmltYXRpb25KU09ORmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvQXRsYXNKU09ORmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvQXRsYXNYTUxGaWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbG9hZGVyL2ZpbGV0eXBlcy9BdWRpb0ZpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZmlsZXR5cGVzL0F1ZGlvU3ByaXRlRmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvQmluYXJ5RmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvQml0bWFwRm9udEZpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZmlsZXR5cGVzL0NTU0ZpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZmlsZXR5cGVzL0dMU0xGaWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbG9hZGVyL2ZpbGV0eXBlcy9IVE1MNUF1ZGlvRmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvSFRNTEZpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZmlsZXR5cGVzL0hUTUxUZXh0dXJlRmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvSW1hZ2VGaWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbG9hZGVyL2ZpbGV0eXBlcy9KU09ORmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvTXVsdGlBdGxhc0ZpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZmlsZXR5cGVzL011bHRpU2NyaXB0RmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvUGFja0ZpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZmlsZXR5cGVzL1BsdWdpbkZpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZmlsZXR5cGVzL1NWR0ZpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZmlsZXR5cGVzL1NjZW5lRmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvU2NlbmVQbHVnaW5GaWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbG9hZGVyL2ZpbGV0eXBlcy9TY3JpcHRGaWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbG9hZGVyL2ZpbGV0eXBlcy9TcHJpdGVTaGVldEZpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZmlsZXR5cGVzL1RleHRGaWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbG9hZGVyL2ZpbGV0eXBlcy9UaWxlbWFwQ1NWRmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvVGlsZW1hcEltcGFjdEZpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZmlsZXR5cGVzL1RpbGVtYXBKU09ORmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvVW5pdHlBdGxhc0ZpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvZmlsZXR5cGVzL1ZpZGVvRmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvWE1MRmlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL2xvYWRlci9maWxldHlwZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9sb2FkZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL0F2ZXJhZ2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL0Jlcm5zdGVpbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvQmV0d2Vlbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvQ2F0bXVsbFJvbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvQ2VpbFRvLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9DbGFtcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvRGVnVG9SYWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL0RpZmZlcmVuY2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL0ZhY3RvcmlhbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvRmxvYXRCZXR3ZWVuLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9GbG9vclRvLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9Gcm9tUGVyY2VudC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvR2V0U3BlZWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL0lzRXZlbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvSXNFdmVuU3RyaWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9MaW5lYXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL01hdHJpeDMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL01hdHJpeDQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL01heEFkZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvTWluU3ViLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9QZXJjZW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9RdWF0ZXJuaW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9SYWRUb0RlZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvUmFuZG9tWFkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL1JhbmRvbVhZWi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvUmFuZG9tWFlaVy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvUm90YXRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9Sb3RhdGVBcm91bmQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL1JvdGF0ZUFyb3VuZERpc3RhbmNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9Sb3RhdGVWZWMzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9Sb3VuZEF3YXlGcm9tWmVyby5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvUm91bmRUby5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvU2luQ29zVGFibGVHZW5lcmF0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL1Ntb290aFN0ZXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL1Ntb290aGVyU3RlcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvVG9YWS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvVHJhbnNmb3JtWFkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL1ZlY3RvcjIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL1ZlY3RvcjMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL1ZlY3RvcjQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL1dpdGhpbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvV3JhcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvYW5nbGUvQmV0d2Vlbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvYW5nbGUvQmV0d2VlblBvaW50cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvYW5nbGUvQmV0d2VlblBvaW50c1kuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2FuZ2xlL0JldHdlZW5ZLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9hbmdsZS9Db3VudGVyQ2xvY2t3aXNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9hbmdsZS9Ob3JtYWxpemUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2FuZ2xlL1JhbmRvbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvYW5nbGUvUmFuZG9tRGVncmVlcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvYW5nbGUvUmV2ZXJzZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvYW5nbGUvUm90YXRlVG8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2FuZ2xlL1Nob3J0ZXN0QmV0d2Vlbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvYW5nbGUvV3JhcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvYW5nbGUvV3JhcERlZ3JlZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2FuZ2xlL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9jb25zdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZGlzdGFuY2UvRGlzdGFuY2VCZXR3ZWVuLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9kaXN0YW5jZS9EaXN0YW5jZUJldHdlZW5Qb2ludHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Rpc3RhbmNlL0Rpc3RhbmNlQmV0d2VlblBvaW50c1NxdWFyZWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Rpc3RhbmNlL0Rpc3RhbmNlQ2hlYnlzaGV2LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9kaXN0YW5jZS9EaXN0YW5jZVBvd2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9kaXN0YW5jZS9EaXN0YW5jZVNuYWtlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9kaXN0YW5jZS9EaXN0YW5jZVNxdWFyZWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Rpc3RhbmNlL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvRWFzZU1hcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZWFzaW5nL2JhY2svSW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9iYWNrL0luT3V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvYmFjay9PdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9iYWNrL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvYm91bmNlL0luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvYm91bmNlL0luT3V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvYm91bmNlL091dC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZWFzaW5nL2JvdW5jZS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZWFzaW5nL2NpcmN1bGFyL0luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvY2lyY3VsYXIvSW5PdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9jaXJjdWxhci9PdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9jaXJjdWxhci9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZWFzaW5nL2N1YmljL0luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvY3ViaWMvSW5PdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9jdWJpYy9PdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9jdWJpYy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZWFzaW5nL2VsYXN0aWMvSW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9lbGFzdGljL0luT3V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvZWxhc3RpYy9PdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9lbGFzdGljL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvZXhwby9Jbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZWFzaW5nL2V4cG8vSW5PdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9leHBvL091dC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZWFzaW5nL2V4cG8vaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZWFzaW5nL2xpbmVhci9MaW5lYXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9saW5lYXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9xdWFkcmF0aWMvSW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9xdWFkcmF0aWMvSW5PdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9xdWFkcmF0aWMvT3V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvcXVhZHJhdGljL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvcXVhcnRpYy9Jbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZWFzaW5nL3F1YXJ0aWMvSW5PdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9xdWFydGljL091dC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZWFzaW5nL3F1YXJ0aWMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9xdWludGljL0luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvcXVpbnRpYy9Jbk91dC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZWFzaW5nL3F1aW50aWMvT3V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvcXVpbnRpYy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZWFzaW5nL3NpbmUvSW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9zaW5lL0luT3V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvc2luZS9PdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Vhc2luZy9zaW5lL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvc3RlcHBlZC9TdGVwcGVkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9lYXNpbmcvc3RlcHBlZC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZnV6enkvQ2VpbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZnV6enkvRXF1YWwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Z1enp5L0Zsb29yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9mdXp6eS9HcmVhdGVyVGhhbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvZnV6enkvTGVzc1RoYW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2Z1enp5L2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvaW50ZXJwb2xhdGlvbi9CZXppZXJJbnRlcnBvbGF0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9pbnRlcnBvbGF0aW9uL0NhdG11bGxSb21JbnRlcnBvbGF0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9pbnRlcnBvbGF0aW9uL0N1YmljQmV6aWVySW50ZXJwb2xhdGlvbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvaW50ZXJwb2xhdGlvbi9MaW5lYXJJbnRlcnBvbGF0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9pbnRlcnBvbGF0aW9uL1F1YWRyYXRpY0JlemllckludGVycG9sYXRpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2ludGVycG9sYXRpb24vU21vb3RoU3RlcEludGVycG9sYXRpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL2ludGVycG9sYXRpb24vU21vb3RoZXJTdGVwSW50ZXJwb2xhdGlvbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvaW50ZXJwb2xhdGlvbi9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvcG93Mi9HZXRQb3dlck9mVHdvLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9wb3cyL0lzU2l6ZVBvd2VyT2ZUd28uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL3BvdzIvSXNWYWx1ZVBvd2VyT2ZUd28uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL3BvdzIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL3JhbmRvbS1kYXRhLWdlbmVyYXRvci9SYW5kb21EYXRhR2VuZXJhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9zbmFwL1NuYXBDZWlsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvbWF0aC9zbmFwL1NuYXBGbG9vci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL21hdGgvc25hcC9TbmFwVG8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9tYXRoL3NuYXAvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waGFzZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9BcmNhZGVJbWFnZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvYXJjYWRlL0FyY2FkZVBoeXNpY3MuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9BcmNhZGVTcHJpdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9Cb2R5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvQ29sbGlkZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9GYWN0b3J5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvR2V0T3ZlcmxhcFguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9HZXRPdmVybGFwWS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvYXJjYWRlL1BoeXNpY3NHcm91cC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvYXJjYWRlL1NlcGFyYXRlWC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvYXJjYWRlL1NlcGFyYXRlWS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvYXJjYWRlL1N0YXRpY0JvZHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9TdGF0aWNQaHlzaWNzR3JvdXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9Xb3JsZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvYXJjYWRlL2NvbXBvbmVudHMvQWNjZWxlcmF0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvY29tcG9uZW50cy9Bbmd1bGFyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvY29tcG9uZW50cy9Cb3VuY2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9jb21wb25lbnRzL0RlYnVnLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvY29tcG9uZW50cy9EcmFnLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvY29tcG9uZW50cy9FbmFibGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9jb21wb25lbnRzL0ZyaWN0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvY29tcG9uZW50cy9HcmF2aXR5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvY29tcG9uZW50cy9JbW1vdmFibGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9jb21wb25lbnRzL01hc3MuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9jb21wb25lbnRzL092ZXJsYXBDaXJjLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvY29tcG9uZW50cy9PdmVybGFwUmVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvYXJjYWRlL2NvbXBvbmVudHMvU2l6ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvYXJjYWRlL2NvbXBvbmVudHMvVmVsb2NpdHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9jb21wb25lbnRzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvY29uc3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9ldmVudHMvQ09MTElERV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvYXJjYWRlL2V2ZW50cy9PVkVSTEFQX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvZXZlbnRzL1BBVVNFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvZXZlbnRzL1JFU1VNRV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvYXJjYWRlL2V2ZW50cy9USUxFX0NPTExJREVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS9ldmVudHMvVElMRV9PVkVSTEFQX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvZXZlbnRzL1dPUkxEX0JPVU5EU19FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvYXJjYWRlL2V2ZW50cy9XT1JMRF9TVEVQX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvZXZlbnRzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS90aWxlbWFwL1Byb2Nlc3NUaWxlQ2FsbGJhY2tzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvdGlsZW1hcC9Qcm9jZXNzVGlsZVNlcGFyYXRpb25YLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvdGlsZW1hcC9Qcm9jZXNzVGlsZVNlcGFyYXRpb25ZLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9hcmNhZGUvdGlsZW1hcC9TZXBhcmF0ZVRpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS90aWxlbWFwL1RpbGVDaGVja1guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS90aWxlbWFwL1RpbGVDaGVja1kuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL2FyY2FkZS90aWxlbWFwL1RpbGVJbnRlcnNlY3RzQm9keS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9Cb2R5Qm91bmRzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvQ3VzdG9tTWFpbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL0ZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9NYXR0ZXJHYW1lT2JqZWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvTWF0dGVySW1hZ2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9NYXR0ZXJQaHlzaWNzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvTWF0dGVyU3ByaXRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvTWF0dGVyVGlsZUJvZHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9QaHlzaWNzRWRpdG9yUGFyc2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvUGh5c2ljc0pTT05QYXJzZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9Qb2ludGVyQ29uc3RyYWludC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL1dvcmxkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvY29tcG9uZW50cy9Cb3VuY2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9jb21wb25lbnRzL0NvbGxpc2lvbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL2NvbXBvbmVudHMvRm9yY2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9jb21wb25lbnRzL0ZyaWN0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvY29tcG9uZW50cy9HcmF2aXR5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvY29tcG9uZW50cy9NYXNzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvY29tcG9uZW50cy9TZW5zb3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9jb21wb25lbnRzL1NldEJvZHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9jb21wb25lbnRzL1NsZWVwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvY29tcG9uZW50cy9TdGF0aWMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9jb21wb25lbnRzL1RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL2NvbXBvbmVudHMvVmVsb2NpdHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9jb21wb25lbnRzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvZXZlbnRzL0FGVEVSX0FERF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL2V2ZW50cy9BRlRFUl9SRU1PVkVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9ldmVudHMvQUZURVJfVVBEQVRFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvZXZlbnRzL0JFRk9SRV9BRERfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9ldmVudHMvQkVGT1JFX1JFTU9WRV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL2V2ZW50cy9CRUZPUkVfVVBEQVRFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvZXZlbnRzL0NPTExJU0lPTl9BQ1RJVkVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9ldmVudHMvQ09MTElTSU9OX0VORF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL2V2ZW50cy9DT0xMSVNJT05fU1RBUlRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9ldmVudHMvRFJBR19FTkRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9ldmVudHMvRFJBR19FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL2V2ZW50cy9EUkFHX1NUQVJUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvZXZlbnRzL1BBVVNFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvZXZlbnRzL1JFU1VNRV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL2V2ZW50cy9TTEVFUF9FTkRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9ldmVudHMvU0xFRVBfU1RBUlRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9ldmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL2xpYi9ib2R5L0JvZHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvYm9keS9Db21wb3NpdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvYm9keS9Xb3JsZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL2xpYi9jb2xsaXNpb24vRGV0ZWN0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvY29sbGlzaW9uL0dyaWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvY29sbGlzaW9uL1BhaXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvY29sbGlzaW9uL1BhaXJzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvbGliL2NvbGxpc2lvbi9RdWVyeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL2xpYi9jb2xsaXNpb24vUmVzb2x2ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvY29sbGlzaW9uL1NBVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL2xpYi9jb25zdHJhaW50L0NvbnN0cmFpbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvY29yZS9Db21tb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvY29yZS9FbmdpbmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvY29yZS9FdmVudHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvY29yZS9NYXR0ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvY29yZS9NZXRyaWNzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvbGliL2NvcmUvUGx1Z2luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvbGliL2NvcmUvU2xlZXBpbmcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvZmFjdG9yeS9Cb2RpZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvZmFjdG9yeS9Db21wb3NpdGVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvbGliL2dlb21ldHJ5L0F4ZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvZ2VvbWV0cnkvQm91bmRzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvbGliL2dlb21ldHJ5L1N2Zy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL2xpYi9nZW9tZXRyeS9WZWN0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvZ2VvbWV0cnkvVmVydGljZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9waHlzaWNzL21hdHRlci1qcy9saWIvcGx1Z2lucy9NYXR0ZXJBdHRyYWN0b3JzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvbGliL3BsdWdpbnMvTWF0dGVyQ29sbGlzaW9uRXZlbnRzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGh5c2ljcy9tYXR0ZXItanMvbGliL3BsdWdpbnMvTWF0dGVyV3JhcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BoeXNpY3MvbWF0dGVyLWpzL3BvbHktZGVjb21wL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGx1Z2lucy9CYXNlUGx1Z2luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGx1Z2lucy9EZWZhdWx0UGx1Z2lucy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BsdWdpbnMvUGx1Z2luQ2FjaGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9wbHVnaW5zL1BsdWdpbk1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9wbHVnaW5zL1NjZW5lUGx1Z2luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcGx1Z2lucy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BvbHlmaWxscy9BcnJheS5mb3JFYWNoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcG9seWZpbGxzL0FycmF5LmlzQXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9wb2x5ZmlsbHMvQXVkaW9Db250ZXh0TW9ua2V5UGF0Y2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9wb2x5ZmlsbHMvTWF0aC50cnVuYy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BvbHlmaWxscy9VaW50MzJBcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BvbHlmaWxscy9jb25zb2xlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcG9seWZpbGxzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcG9seWZpbGxzL3BlcmZvcm1hbmNlLm5vdy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3BvbHlmaWxscy9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9yZW5kZXJlci9CbGVuZE1vZGVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcmVuZGVyZXIvU2NhbGVNb2Rlcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3JlbmRlcmVyL2NhbnZhcy9DYW52YXNSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3JlbmRlcmVyL2NhbnZhcy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3JlbmRlcmVyL2NhbnZhcy91dGlscy9HZXRCbGVuZE1vZGVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcmVuZGVyZXIvY2FudmFzL3V0aWxzL1NldFRyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3JlbmRlcmVyL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcmVuZGVyZXIvc25hcHNob3QvQ2FudmFzU25hcHNob3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9yZW5kZXJlci9zbmFwc2hvdC9XZWJHTFNuYXBzaG90LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcmVuZGVyZXIvc25hcHNob3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9yZW5kZXJlci93ZWJnbC9VdGlscy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3JlbmRlcmVyL3dlYmdsL1dlYkdMUGlwZWxpbmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9yZW5kZXJlci93ZWJnbC9XZWJHTFJlbmRlcmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcmVuZGVyZXIvd2ViZ2wvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9yZW5kZXJlci93ZWJnbC9waXBlbGluZXMvQml0bWFwTWFza1BpcGVsaW5lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcmVuZGVyZXIvd2ViZ2wvcGlwZWxpbmVzL0ZvcndhcmREaWZmdXNlTGlnaHRQaXBlbGluZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3JlbmRlcmVyL3dlYmdsL3BpcGVsaW5lcy9UZXh0dXJlVGludFBpcGVsaW5lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcmVuZGVyZXIvd2ViZ2wvcGlwZWxpbmVzL1RleHR1cmVUaW50U3RyaXBQaXBlbGluZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3JlbmRlcmVyL3dlYmdsL3BpcGVsaW5lcy9jb21wb25lbnRzL01vZGVsVmlld1Byb2plY3Rpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9yZW5kZXJlci93ZWJnbC9waXBlbGluZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9yZW5kZXJlci93ZWJnbC9zaGFkZXJzL0JpdG1hcE1hc2stZnJhZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3JlbmRlcmVyL3dlYmdsL3NoYWRlcnMvQml0bWFwTWFzay12ZXJ0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcmVuZGVyZXIvd2ViZ2wvc2hhZGVycy9Gb3J3YXJkRGlmZnVzZS1mcmFnLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcmVuZGVyZXIvd2ViZ2wvc2hhZGVycy9UZXh0dXJlVGludC1mcmFnLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvcmVuZGVyZXIvd2ViZ2wvc2hhZGVycy9UZXh0dXJlVGludC12ZXJ0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NhbGUvU2NhbGVNYW5hZ2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NhbGUvY29uc3QvQ0VOVEVSX0NPTlNULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NhbGUvY29uc3QvT1JJRU5UQVRJT05fQ09OU1QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2FsZS9jb25zdC9TQ0FMRV9NT0RFX0NPTlNULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NhbGUvY29uc3QvWk9PTV9DT05TVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NjYWxlL2NvbnN0L2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NhbGUvZXZlbnRzL0VOVEVSX0ZVTExTQ1JFRU5fRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2FsZS9ldmVudHMvRlVMTFNDUkVFTl9GQUlMRURfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2FsZS9ldmVudHMvRlVMTFNDUkVFTl9VTlNVUFBPUlRFRF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NjYWxlL2V2ZW50cy9MRUFWRV9GVUxMU0NSRUVOX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NhbGUvZXZlbnRzL09SSUVOVEFUSU9OX0NIQU5HRV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NjYWxlL2V2ZW50cy9SRVNJWkVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2FsZS9ldmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2FsZS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NjZW5lL0dldFBoeXNpY3NQbHVnaW5zLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvR2V0U2NlbmVQbHVnaW5zLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvSW5qZWN0aW9uTWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvU2NlbmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2VuZS9TY2VuZU1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2VuZS9TY2VuZVBsdWdpbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NjZW5lL1NldHRpbmdzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvU3lzdGVtcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NjZW5lL2NvbnN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvZXZlbnRzL0JPT1RfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2VuZS9ldmVudHMvQ1JFQVRFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvZXZlbnRzL0RFU1RST1lfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2VuZS9ldmVudHMvUEFVU0VfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2VuZS9ldmVudHMvUE9TVF9VUERBVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2VuZS9ldmVudHMvUFJFX1VQREFURV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NjZW5lL2V2ZW50cy9SRUFEWV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NjZW5lL2V2ZW50cy9SRU5ERVJfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2VuZS9ldmVudHMvUkVTVU1FX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvZXZlbnRzL1NIVVRET1dOX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvZXZlbnRzL1NMRUVQX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvZXZlbnRzL1NUQVJUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvZXZlbnRzL1RSQU5TSVRJT05fQ09NUExFVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2VuZS9ldmVudHMvVFJBTlNJVElPTl9JTklUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvZXZlbnRzL1RSQU5TSVRJT05fT1VUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvZXZlbnRzL1RSQU5TSVRJT05fU1RBUlRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zY2VuZS9ldmVudHMvVFJBTlNJVElPTl9XQUtFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvZXZlbnRzL1VQREFURV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NjZW5lL2V2ZW50cy9XQUtFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvZXZlbnRzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc2NlbmUvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zb3VuZC9CYXNlU291bmQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zb3VuZC9CYXNlU291bmRNYW5hZ2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc291bmQvU291bmRNYW5hZ2VyQ3JlYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2V2ZW50cy9DT01QTEVURV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2V2ZW50cy9ERUNPREVEX0FMTF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2V2ZW50cy9ERUNPREVEX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc291bmQvZXZlbnRzL0RFU1RST1lfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zb3VuZC9ldmVudHMvREVUVU5FX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc291bmQvZXZlbnRzL0dMT0JBTF9ERVRVTkVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zb3VuZC9ldmVudHMvR0xPQkFMX01VVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zb3VuZC9ldmVudHMvR0xPQkFMX1JBVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zb3VuZC9ldmVudHMvR0xPQkFMX1ZPTFVNRV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2V2ZW50cy9MT09QRURfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zb3VuZC9ldmVudHMvTE9PUF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2V2ZW50cy9NVVRFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc291bmQvZXZlbnRzL1BBVVNFX0FMTF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2V2ZW50cy9QQVVTRV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2V2ZW50cy9QTEFZX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc291bmQvZXZlbnRzL1JBVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zb3VuZC9ldmVudHMvUkVTVU1FX0FMTF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2V2ZW50cy9SRVNVTUVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zb3VuZC9ldmVudHMvU0VFS19FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2V2ZW50cy9TVE9QX0FMTF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2V2ZW50cy9TVE9QX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc291bmQvZXZlbnRzL1VOTE9DS0VEX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc291bmQvZXZlbnRzL1ZPTFVNRV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2V2ZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2h0bWw1L0hUTUw1QXVkaW9Tb3VuZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL2h0bWw1L0hUTUw1QXVkaW9Tb3VuZE1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zb3VuZC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL25vYXVkaW8vTm9BdWRpb1NvdW5kLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc291bmQvbm9hdWRpby9Ob0F1ZGlvU291bmRNYW5hZ2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc291bmQvd2ViYXVkaW8vV2ViQXVkaW9Tb3VuZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3NvdW5kL3dlYmF1ZGlvL1dlYkF1ZGlvU291bmRNYW5hZ2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc3RydWN0cy9MaXN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc3RydWN0cy9NYXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zdHJ1Y3RzL1Byb2Nlc3NRdWV1ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3N0cnVjdHMvUlRyZWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zdHJ1Y3RzL1NldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3N0cnVjdHMvU2l6ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3N0cnVjdHMvZXZlbnRzL1BST0NFU1NfUVVFVUVfQUREX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvc3RydWN0cy9ldmVudHMvUFJPQ0VTU19RVUVVRV9SRU1PVkVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy9zdHJ1Y3RzL2V2ZW50cy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3N0cnVjdHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90ZXh0dXJlcy9DYW52YXNUZXh0dXJlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGV4dHVyZXMvRnJhbWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90ZXh0dXJlcy9UZXh0dXJlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGV4dHVyZXMvVGV4dHVyZU1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90ZXh0dXJlcy9UZXh0dXJlU291cmNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGV4dHVyZXMvY29uc3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90ZXh0dXJlcy9ldmVudHMvQUREX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGV4dHVyZXMvZXZlbnRzL0VSUk9SX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGV4dHVyZXMvZXZlbnRzL0xPQURfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90ZXh0dXJlcy9ldmVudHMvUkVBRFlfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90ZXh0dXJlcy9ldmVudHMvUkVNT1ZFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGV4dHVyZXMvZXZlbnRzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGV4dHVyZXMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90ZXh0dXJlcy9wYXJzZXJzL0F0bGFzWE1MLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGV4dHVyZXMvcGFyc2Vycy9DYW52YXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90ZXh0dXJlcy9wYXJzZXJzL0ltYWdlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGV4dHVyZXMvcGFyc2Vycy9KU09OQXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90ZXh0dXJlcy9wYXJzZXJzL0pTT05IYXNoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGV4dHVyZXMvcGFyc2Vycy9TcHJpdGVTaGVldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RleHR1cmVzL3BhcnNlcnMvU3ByaXRlU2hlZXRGcm9tQXRsYXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90ZXh0dXJlcy9wYXJzZXJzL1VuaXR5WUFNTC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RleHR1cmVzL3BhcnNlcnMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9Gb3JtYXRzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvSW1hZ2VDb2xsZWN0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvUGFyc2VUb1RpbGVtYXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9UaWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvVGlsZW1hcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL1RpbGVtYXBDcmVhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvVGlsZW1hcEZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9UaWxlc2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9DYWxjdWxhdGVGYWNlc0F0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9DYWxjdWxhdGVGYWNlc1dpdGhpbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvQ29weS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvQ3JlYXRlRnJvbVRpbGVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9DdWxsVGlsZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL0ZpbGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL0ZpbHRlclRpbGVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9GaW5kQnlJbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvRmluZFRpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL0ZvckVhY2hUaWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9HZXRUaWxlQXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL0dldFRpbGVBdFdvcmxkWFkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL0dldFRpbGVzV2l0aGluLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9HZXRUaWxlc1dpdGhpblNoYXBlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9HZXRUaWxlc1dpdGhpbldvcmxkWFkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL0hhc1RpbGVBdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvSGFzVGlsZUF0V29ybGRYWS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvSXNJbkxheWVyQm91bmRzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9QdXRUaWxlQXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL1B1dFRpbGVBdFdvcmxkWFkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL1B1dFRpbGVzQXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL1JhbmRvbWl6ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvUmVtb3ZlVGlsZUF0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9SZW1vdmVUaWxlQXRXb3JsZFhZLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9SZW5kZXJEZWJ1Zy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvUmVwbGFjZUJ5SW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL1NldENvbGxpc2lvbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvU2V0Q29sbGlzaW9uQmV0d2Vlbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvU2V0Q29sbGlzaW9uQnlFeGNsdXNpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL1NldENvbGxpc2lvbkJ5UHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL1NldENvbGxpc2lvbkZyb21Db2xsaXNpb25Hcm91cC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvU2V0TGF5ZXJDb2xsaXNpb25JbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvU2V0VGlsZUNvbGxpc2lvbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvU2V0VGlsZUluZGV4Q2FsbGJhY2suanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL1NldFRpbGVMb2NhdGlvbkNhbGxiYWNrLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9TaHVmZmxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9Td2FwQnlJbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvVGlsZVRvV29ybGRYLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9UaWxlVG9Xb3JsZFhZLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9UaWxlVG9Xb3JsZFkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL1dlaWdodGVkUmFuZG9taXplLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvY29tcG9uZW50cy9Xb3JsZFRvVGlsZVguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL1dvcmxkVG9UaWxlWFkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9jb21wb25lbnRzL1dvcmxkVG9UaWxlWS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2NvbXBvbmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9keW5hbWljbGF5ZXIvRHluYW1pY1RpbGVtYXBMYXllci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2R5bmFtaWNsYXllci9EeW5hbWljVGlsZW1hcExheWVyQ2FudmFzUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9keW5hbWljbGF5ZXIvRHluYW1pY1RpbGVtYXBMYXllclJlbmRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2R5bmFtaWNsYXllci9EeW5hbWljVGlsZW1hcExheWVyV2ViR0xSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvbWFwZGF0YS9MYXllckRhdGEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9tYXBkYXRhL01hcERhdGEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9tYXBkYXRhL09iamVjdExheWVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvcGFyc2Vycy9QYXJzZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL3BhcnNlcnMvUGFyc2UyREFycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvcGFyc2Vycy9QYXJzZUNTVi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL3BhcnNlcnMvaW1wYWN0L1BhcnNlVGlsZUxheWVycy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL3BhcnNlcnMvaW1wYWN0L1BhcnNlVGlsZXNldHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9wYXJzZXJzL2ltcGFjdC9QYXJzZVdlbHRtZWlzdGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvcGFyc2Vycy9pbXBhY3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9wYXJzZXJzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvcGFyc2Vycy90aWxlZC9Bc3NpZ25UaWxlUHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL3BhcnNlcnMvdGlsZWQvQmFzZTY0RGVjb2RlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvcGFyc2Vycy90aWxlZC9CdWlsZFRpbGVzZXRJbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL3BhcnNlcnMvdGlsZWQvQ3JlYXRlR3JvdXBMYXllci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL3BhcnNlcnMvdGlsZWQvUGFyc2VHSUQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9wYXJzZXJzL3RpbGVkL1BhcnNlSW1hZ2VMYXllcnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9wYXJzZXJzL3RpbGVkL1BhcnNlSlNPTlRpbGVkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGlsZW1hcHMvcGFyc2Vycy90aWxlZC9QYXJzZU9iamVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL3BhcnNlcnMvdGlsZWQvUGFyc2VPYmplY3RMYXllcnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9wYXJzZXJzL3RpbGVkL1BhcnNlVGlsZUxheWVycy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL3BhcnNlcnMvdGlsZWQvUGFyc2VUaWxlc2V0cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL3BhcnNlcnMvdGlsZWQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9zdGF0aWNsYXllci9TdGF0aWNUaWxlbWFwTGF5ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aWxlbWFwcy9zdGF0aWNsYXllci9TdGF0aWNUaWxlbWFwTGF5ZXJDYW52YXNSZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL3N0YXRpY2xheWVyL1N0YXRpY1RpbGVtYXBMYXllclJlbmRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3RpbGVtYXBzL3N0YXRpY2xheWVyL1N0YXRpY1RpbGVtYXBMYXllcldlYkdMUmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90aW1lL0Nsb2NrLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGltZS9UaW1lckV2ZW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdGltZS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy9UaW1lbGluZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy9Ud2Vlbk1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvYnVpbGRlcnMvR2V0Qm9vbGVhbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy9idWlsZGVycy9HZXRFYXNlRnVuY3Rpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvYnVpbGRlcnMvR2V0TmV3VmFsdWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvYnVpbGRlcnMvR2V0UHJvcHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvYnVpbGRlcnMvR2V0VGFyZ2V0cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy9idWlsZGVycy9HZXRUd2VlbnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvYnVpbGRlcnMvR2V0VmFsdWVPcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy9idWlsZGVycy9OdW1iZXJUd2VlbkJ1aWxkZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvYnVpbGRlcnMvU3RhZ2dlckJ1aWxkZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvYnVpbGRlcnMvVGltZWxpbmVCdWlsZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdHdlZW5zL2J1aWxkZXJzL1R3ZWVuQnVpbGRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy9idWlsZGVycy9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy9ldmVudHMvVElNRUxJTkVfQ09NUExFVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvZXZlbnRzL1RJTUVMSU5FX0xPT1BfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvZXZlbnRzL1RJTUVMSU5FX1BBVVNFX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdHdlZW5zL2V2ZW50cy9USU1FTElORV9SRVNVTUVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvZXZlbnRzL1RJTUVMSU5FX1NUQVJUX0VWRU5ULmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdHdlZW5zL2V2ZW50cy9USU1FTElORV9VUERBVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvZXZlbnRzL1RXRUVOX0FDVElWRV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy9ldmVudHMvVFdFRU5fQ09NUExFVEVfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvZXZlbnRzL1RXRUVOX0xPT1BfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvZXZlbnRzL1RXRUVOX1JFUEVBVF9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy9ldmVudHMvVFdFRU5fU1RBUlRfRVZFTlQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvZXZlbnRzL1RXRUVOX1VQREFURV9FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy9ldmVudHMvVFdFRU5fWU9ZT19FVkVOVC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy9ldmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvdHdlZW4vRGVmYXVsdHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvdHdlZW4vUmVzZXJ2ZWRQcm9wcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy90d2Vlbi9Ud2Vlbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3R3ZWVucy90d2Vlbi9Ud2VlbkRhdGEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy90d2VlbnMvdHdlZW4vY29uc3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9DbGFzcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL05PT1AuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9BZGQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9BZGRBdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L0JyaW5nVG9Ub3AuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9Db3VudEFsbE1hdGNoaW5nLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvYXJyYXkvRWFjaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L0VhY2hJblJhbmdlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvYXJyYXkvRmluZENsb3Nlc3RJblNvcnRlZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L0dldEFsbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L0dldEZpcnN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvYXJyYXkvR2V0UmFuZG9tLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvYXJyYXkvTW92ZURvd24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9Nb3ZlVG8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9Nb3ZlVXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9OdW1iZXJBcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L051bWJlckFycmF5U3RlcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L1F1aWNrU2VsZWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvYXJyYXkvUmFuZ2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9SZW1vdmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9SZW1vdmVBdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L1JlbW92ZUJldHdlZW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9SZW1vdmVSYW5kb21FbGVtZW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvYXJyYXkvUmVwbGFjZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L1JvdGF0ZUxlZnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9Sb3RhdGVSaWdodC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L1NhZmVSYW5nZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L1NlbmRUb0JhY2suanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9TZXRBbGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9TaHVmZmxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvYXJyYXkvU3BsaWNlT25lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvYXJyYXkvU3RhYmxlU29ydC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L1N3YXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L21hdHJpeC9DaGVja01hdHJpeC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L21hdHJpeC9NYXRyaXhUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L21hdHJpeC9SZXZlcnNlQ29sdW1ucy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L21hdHJpeC9SZXZlcnNlUm93cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L21hdHJpeC9Sb3RhdGUxODAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9tYXRyaXgvUm90YXRlTGVmdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2FycmF5L21hdHJpeC9Sb3RhdGVNYXRyaXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9tYXRyaXgvUm90YXRlUmlnaHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9hcnJheS9tYXRyaXgvVHJhbnNwb3NlTWF0cml4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvYXJyYXkvbWF0cml4L2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvYmFzZTY0L0FycmF5QnVmZmVyVG9CYXNlNjQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9iYXNlNjQvQmFzZTY0VG9BcnJheUJ1ZmZlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2Jhc2U2NC9pbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvb2JqZWN0L0Nsb25lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvb2JqZWN0L0V4dGVuZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL29iamVjdC9HZXRBZHZhbmNlZFZhbHVlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvb2JqZWN0L0dldEZhc3RWYWx1ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL29iamVjdC9HZXRNaW5NYXhWYWx1ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL29iamVjdC9HZXRWYWx1ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL29iamVjdC9IYXNBbGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9vYmplY3QvSGFzQW55LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvb2JqZWN0L0hhc1ZhbHVlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvb2JqZWN0L0lzUGxhaW5PYmplY3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9vYmplY3QvTWVyZ2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9vYmplY3QvTWVyZ2VSaWdodC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL29iamVjdC9QaWNrLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvb2JqZWN0L1NldFZhbHVlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvb2JqZWN0L2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvc3RyaW5nL0Zvcm1hdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL3N0cmluZy9QYWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvcGhhc2VyL3NyYy91dGlscy9zdHJpbmcvUmV2ZXJzZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9waGFzZXIvc3JjL3V0aWxzL3N0cmluZy9VVUlELmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvc3RyaW5nL1VwcGVyY2FzZUZpcnN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BoYXNlci9zcmMvdXRpbHMvc3RyaW5nL2luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyL3dlYnBhY2svcnVudGltZS9oYXJtb255IG1vZHVsZSBkZWNvcmF0b3IiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvd2VicGFjay9ydW50aW1lL25vZGUgbW9kdWxlIGRlY29yYXRvciIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VTbGljZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZXEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19TeW1ib2wuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRSYXdUYWcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19vYmplY3RUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VHZXRUYWcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzT2JqZWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0Z1bmN0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0xlbmd0aC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNBcnJheUxpa2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0luZGV4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXNJdGVyYXRlZUNhbGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzT2JqZWN0TGlrZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNTeW1ib2wuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RvTnVtYmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b0Zpbml0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdG9JbnRlZ2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jaHVuay5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvY29tcGFjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5UHVzaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc0FyZ3VtZW50cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNBcmd1bWVudHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0ZsYXR0ZW5hYmxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUZsYXR0ZW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5QXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2NvbmNhdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvcmVKc0RhdGEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc01hc2tlZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3RvU291cmNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzTmF0aXZlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0VmFsdWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXROYXRpdmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVDcmVhdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoQ2xlYXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoRGVsZXRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faGFzaEdldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2hhc2hIYXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNoU2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fSGFzaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2xpc3RDYWNoZUNsZWFyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXNzb2NJbmRleE9mLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbGlzdENhY2hlRGVsZXRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbGlzdENhY2hlR2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbGlzdENhY2hlSGFzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbGlzdENhY2hlU2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fTGlzdENhY2hlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fTWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVDbGVhci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzS2V5YWJsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldE1hcERhdGEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZURlbGV0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX21hcENhY2hlR2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwQ2FjaGVIYXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXBDYWNoZVNldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX01hcENhY2hlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc2V0Q2FjaGVBZGQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zZXRDYWNoZUhhcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1NldENhY2hlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUZpbmRJbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc05hTi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0cmljdEluZGV4T2YuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSW5kZXhPZi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5SW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUluY2x1ZGVzV2l0aC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVVuYXJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY2FjaGVIYXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlRGlmZmVyZW5jZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaWRlbnRpdHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcHBseS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX292ZXJSZXN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jb25zdGFudC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2RlZmluZVByb3BlcnR5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVNldFRvU3RyaW5nLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc2hvcnRPdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zZXRUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VSZXN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0FycmF5TGlrZU9iamVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZGlmZmVyZW5jZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0YWNrQ2xlYXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja0RlbGV0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0YWNrR2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc3RhY2tIYXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdGFja1NldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX1N0YWNrLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlTb21lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZXF1YWxBcnJheXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19VaW50OEFycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fbWFwVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3NldFRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19lcXVhbEJ5VGFnLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUdldEFsbEtleXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUZpbHRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc3R1YkFycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0U3ltYm9scy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VUaW1lcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc1R5cGVkQXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzVHlwZWRBcnJheS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5TGlrZUtleXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc1Byb3RvdHlwZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX292ZXJBcmcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19uYXRpdmVLZXlzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUtleXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRBbGxLZXlzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZXF1YWxPYmplY3RzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fRGF0YVZpZXcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19Qcm9taXNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fU2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fV2Vha01hcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFRhZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc0VxdWFsRGVlcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc0VxdWFsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzTWF0Y2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc1N0cmljdENvbXBhcmFibGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRNYXRjaERhdGEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tYXRjaGVzU3RyaWN0Q29tcGFyYWJsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VNYXRjaGVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXNLZXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL21lbW9pemUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdHJpbmdUb1BhdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tZW1vaXplQ2FwcGVkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVRvU3RyaW5nLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1N0cmluZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nhc3RQYXRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fdG9LZXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9nZXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSGFzSW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19oYXNQYXRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9oYXNJbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VNYXRjaGVzUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUHJvcGVydHlEZWVwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJdGVyYXRlZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbGFzdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZGlmZmVyZW5jZUJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9kaWZmZXJlbmNlV2l0aC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZHJvcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZHJvcFJpZ2h0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVdoaWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9kcm9wUmlnaHRXaGlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZHJvcFdoaWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUNsYW1wLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b0xlbmd0aC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VGaWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9maWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9maW5kSW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2ZpbmRMYXN0SW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2hlYWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2ZsYXR0ZW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2ZsYXR0ZW5EZWVwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9mbGF0dGVuRGVwdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Zyb21QYWlycy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaW5kZXhPZi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaW5pdGlhbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJbnRlcnNlY3Rpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jYXN0QXJyYXlMaWtlT2JqZWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pbnRlcnNlY3Rpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2ludGVyc2VjdGlvbkJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pbnRlcnNlY3Rpb25XaXRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9qb2luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc3RyaWN0TGFzdEluZGV4T2YuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2xhc3RJbmRleE9mLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZU50aC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbnRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUluZGV4T2ZXaXRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVB1bGxBbGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3B1bGxBbGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3B1bGwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3B1bGxBbGxCeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcHVsbEFsbFdpdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19wYXJlbnQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVW5zZXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUHVsbEF0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY29tcGFyZUFzY2VuZGluZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2ZsYXRSZXN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9wdWxsQXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3JlbW92ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcmV2ZXJzZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc2xpY2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlU29ydGVkSW5kZXhCeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VTb3J0ZWRJbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc29ydGVkSW5kZXguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NvcnRlZEluZGV4QnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NvcnRlZEluZGV4T2YuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NvcnRlZExhc3RJbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc29ydGVkTGFzdEluZGV4QnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NvcnRlZExhc3RJbmRleE9mLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVNvcnRlZFVuaXEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NvcnRlZFVuaXEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NvcnRlZFVuaXFCeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdGFpbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdGFrZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdGFrZVJpZ2h0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90YWtlUmlnaHRXaGlsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdGFrZVdoaWxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9ub29wLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlU2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVVuaXEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3VuaW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy91bmlvbkJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy91bmlvbldpdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3VuaXEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3VuaXFCeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdW5pcVdpdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3VuemlwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy91bnppcFdpdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3dpdGhvdXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlWG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy94b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3hvckJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy94b3JXaXRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy96aXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlQXNzaWduVmFsdWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc3NpZ25WYWx1ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VaaXBPYmplY3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3ppcE9iamVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VTZXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3ppcE9iamVjdERlZXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3ppcFdpdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2FycmF5LmRlZmF1bHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUFnZ3JlZ2F0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVCYXNlRm9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUZvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VGb3JPd24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVCYXNlRWFjaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VFYWNoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUFnZ3JlZ2F0b3IuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVBZ2dyZWdhdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jb3VudEJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlFYWNoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY2FzdEZ1bmN0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9mb3JFYWNoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlFYWNoUmlnaHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlRm9yUmlnaHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlRm9yT3duUmlnaHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlRWFjaFJpZ2h0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9mb3JFYWNoUmlnaHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheUV2ZXJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUV2ZXJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9ldmVyeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VGaWx0ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2ZpbHRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NyZWF0ZUZpbmQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2ZpbmQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2ZpbmRMYXN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZU1hcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9mbGF0TWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9mbGF0TWFwRGVlcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZmxhdE1hcERlcHRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9ncm91cEJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1N0cmluZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VWYWx1ZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3ZhbHVlcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSW52b2tlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pbnZva2VNYXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleUJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVNvcnRCeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvbXBhcmVNdWx0aXBsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VPcmRlckJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9vcmRlckJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9wYXJ0aXRpb24uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheVJlZHVjZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VSZWR1Y2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3JlZHVjZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FycmF5UmVkdWNlUmlnaHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3JlZHVjZVJpZ2h0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9uZWdhdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3JlamVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VSYW5kb20uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheVNhbXBsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VTYW1wbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NhbXBsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3NodWZmbGVTZWxmLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXJyYXlTYW1wbGVTaXplLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVNhbXBsZVNpemUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NhbXBsZVNpemUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hcnJheVNodWZmbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlU2h1ZmZsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc2h1ZmZsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2FzY2lpU2l6ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2hhc1VuaWNvZGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL191bmljb2RlU2l6ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3N0cmluZ1NpemUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NpemUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlU29tZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc29tZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc29ydEJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jb2xsZWN0aW9uLmRlZmF1bHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL25vdy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZGF0ZS5kZWZhdWx0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9hZnRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX21ldGFNYXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlU2V0RGF0YS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VDcmVhdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVDdG9yLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlQmluZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvbXBvc2VBcmdzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY29tcG9zZUFyZ3NSaWdodC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvdW50SG9sZGVycy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VMb2Rhc2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19MYXp5V3JhcHBlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldERhdGEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19yZWFsTmFtZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRGdW5jTmFtZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX0xvZGFzaFdyYXBwZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL193cmFwcGVyQ2xvbmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3dyYXBwZXJMb2Rhc2guanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pc0xhemlhYmxlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fc2V0RGF0YS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFdyYXBEZXRhaWxzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faW5zZXJ0V3JhcERldGFpbHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL191cGRhdGVXcmFwRGV0YWlscy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3NldFdyYXBUb1N0cmluZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NyZWF0ZVJlY3VycnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19nZXRIb2xkZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19yZW9yZGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fcmVwbGFjZUhvbGRlcnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVIeWJyaWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVDdXJyeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NyZWF0ZVBhcnRpYWwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19tZXJnZURhdGEuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVXcmFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9hcnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2JlZm9yZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvYmluZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvYmluZEtleS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvY3VycnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2N1cnJ5UmlnaHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2RlYm91bmNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZURlbGF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9kZWZlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZGVsYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2ZsaXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL29uY2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jYXN0UmVzdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvb3ZlckFyZ3MuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3BhcnRpYWwuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3BhcnRpYWxSaWdodC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcmVhcmcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3Jlc3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jYXN0U2xpY2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NwcmVhZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdGhyb3R0bGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3VuYXJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy93cmFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9mdW5jdGlvbi5kZWZhdWx0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jYXN0QXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jb3B5T2JqZWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUFzc2lnbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX25hdGl2ZUtleXNJbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VLZXlzSW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2tleXNJbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VBc3NpZ25Jbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NvcHlTeW1ib2xzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0UHJvdG90eXBlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZ2V0U3ltYm9sc0luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY29weVN5bWJvbHNJbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldEFsbEtleXNJbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2luaXRDbG9uZUFycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY2xvbmVBcnJheUJ1ZmZlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nsb25lRGF0YVZpZXcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jbG9uZVJlZ0V4cC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Nsb25lU3ltYm9sLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY2xvbmVUeXBlZEFycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faW5pdENsb25lQnlUYWcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19pbml0Q2xvbmVPYmplY3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSXNNYXAuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTWFwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzU2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1NldC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VDbG9uZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvY2xvbmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Nsb25lRGVlcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvY2xvbmVEZWVwV2l0aC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvY2xvbmVXaXRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUNvbmZvcm1zVG8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2NvbmZvcm1zVG8uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlR3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVSZWxhdGlvbmFsT3BlcmF0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9ndC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZ3RlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzQXJyYXlCdWZmZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQXJyYXlCdWZmZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzQm9vbGVhbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VJc0RhdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzRGF0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNQbGFpbk9iamVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNFbGVtZW50LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0VtcHR5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0VxdWFsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc0VxdWFsV2l0aC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNFcnJvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNGaW5pdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzSW50ZWdlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNNYXRjaC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNNYXRjaFdpdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTnVtYmVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc05hTi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2lzTWFza2FibGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzTmF0aXZlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc05pbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNOdWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUlzUmVnRXhwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pc1JlZ0V4cC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNTYWZlSW50ZWdlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNVbmRlZmluZWQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2lzV2Vha01hcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaXNXZWFrU2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUx0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9sdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbHRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faXRlcmF0b3JUb0FycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYXNjaWlUb0FycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fdW5pY29kZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zdHJpbmdUb0FycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b0FycmF5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1BsYWluT2JqZWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1NhZmVJbnRlZ2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9sYW5nLmRlZmF1bHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlVG9OdW1iZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVNYXRoT3BlcmF0aW9uLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9hZGQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVSb3VuZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvY2VpbC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZGl2aWRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9mbG9vci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VFeHRyZW11bS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VTdW0uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlTWVhbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc3VtQnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL21hdGguZGVmYXVsdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbWF4LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9tYXhCeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbWVhbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbWVhbkJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9taW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL21pbkJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9tdWx0aXBseS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcm91bmQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3N1YnRyYWN0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9zdW0uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2NsYW1wLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUluUmFuZ2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2luUmFuZ2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3JhbmRvbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbnVtYmVyLmRlZmF1bHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVBc3NpZ25lci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvYXNzaWduLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9hc3NpZ25Jbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvYXNzaWduSW5XaXRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9hc3NpZ25XaXRoLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9hdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvY3JlYXRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9kZWZhdWx0cy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Fzc2lnbk1lcmdlVmFsdWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zYWZlR2V0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZU1lcmdlRGVlcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VNZXJnZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2N1c3RvbURlZmF1bHRzTWVyZ2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL21lcmdlV2l0aC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZGVmYXVsdHNEZWVwLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVRvUGFpcnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19zZXRUb1BhaXJzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlVG9QYWlycy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdG9QYWlycy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdG9QYWlyc0luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUZpbmRLZXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2ZpbmRLZXkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2ZpbmRMYXN0S2V5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9mb3JJbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZm9ySW5SaWdodC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZm9yT3duLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9mb3JPd25SaWdodC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VGdW5jdGlvbnMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2Z1bmN0aW9ucy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZnVuY3Rpb25zSW4uanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSGFzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9oYXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlSW52ZXJ0ZXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jcmVhdGVJbnZlcnRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaW52ZXJ0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pbnZlcnRCeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvaW52b2tlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9tYXBLZXlzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9tYXBWYWx1ZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL21lcmdlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3VzdG9tT21pdENsb25lLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9vbWl0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZVBpY2tCeS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcGlja0J5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9vbWl0QnkuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUGljay5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcGljay5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VVcGRhdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3ZhbHVlc0luLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9vYmplY3QuZGVmYXVsdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcmVzdWx0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9zZXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NldFdpdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdW5zZXQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3VwZGF0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdXBkYXRlV2l0aC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdGhydS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvd3JhcHBlckF0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jaGFpbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VXcmFwcGVyVmFsdWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3dyYXBwZXJWYWx1ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvd3JhcHBlckNoYWluLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9zZXEuZGVmYXVsdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvY29tbWl0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9uZXh0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9wbGFudC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvd3JhcHBlclJldmVyc2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RhcC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdG9JdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NyZWF0ZUNhc2VGaXJzdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdXBwZXJGaXJzdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvY2FwaXRhbGl6ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VQcm9wZXJ0eU9mLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZGVidXJyTGV0dGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9kZWJ1cnIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19hc2NpaVdvcmRzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9faGFzVW5pY29kZVdvcmQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL191bmljb2RlV29yZHMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3dvcmRzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlQ29tcG91bmRlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvY2FtZWxDYXNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9lbmRzV2l0aC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2VzY2FwZUh0bWxDaGFyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9lc2NhcGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2VzY2FwZVJlZ0V4cC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMva2ViYWJDYXNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9sb3dlckNhc2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2xvd2VyRmlyc3QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19iYXNlUmVwZWF0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlUGFkZGluZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcGFkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9wYWRFbmQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3BhZFN0YXJ0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9wYXJzZUludC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcmVwZWF0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9yZXBsYWNlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9zbmFrZUNhc2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3NwbGl0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9zdGFydENhc2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3N0YXJ0c1dpdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2F0dGVtcHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19jdXN0b21EZWZhdWx0c0Fzc2lnbkluLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fZXNjYXBlU3RyaW5nQ2hhci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3JlSW50ZXJwb2xhdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RlbXBsYXRlU2V0dGluZ3MuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19yZUVzY2FwZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3JlRXZhbHVhdGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RlbXBsYXRlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b0xvd2VyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1VwcGVyLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY2hhcnNFbmRJbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NoYXJzU3RhcnRJbmRleC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdHJpbS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdHJpbUVuZC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvdHJpbVN0YXJ0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90cnVuY2F0ZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX3VuZXNjYXBlSHRtbENoYXIuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3VuZXNjYXBlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy91cHBlckNhc2UuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3N0cmluZy5kZWZhdWx0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9iaW5kQWxsLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jb25kLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fYmFzZUNvbmZvcm1zLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9jb25mb3Jtcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZGVmYXVsdFRvLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlRmxvdy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZmxvdy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvZmxvd1JpZ2h0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9pdGVyYXRlZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbWF0Y2hlcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbWF0Y2hlc1Byb3BlcnR5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9tZXRob2QuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL21ldGhvZE9mLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9taXhpbi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvbnRoQXJnLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9fY3JlYXRlT3Zlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvb3Zlci5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvb3ZlckV2ZXJ5LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9vdmVyU29tZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcHJvcGVydHlPZi5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2Jhc2VSYW5nZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2NyZWF0ZVJhbmdlLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy9yYW5nZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvcmFuZ2VSaWdodC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc3R1Yk9iamVjdC5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc3R1YlN0cmluZy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvc3R1YlRydWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3RpbWVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy90b1BhdGguanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL3VuaXF1ZUlkLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL2xvZGFzaC1lcy91dGlsLmRlZmF1bHQuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19sYXp5Q2xvbmUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19sYXp5UmV2ZXJzZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9sb2Rhc2gtZXMvX2dldFZpZXcuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL19sYXp5VmFsdWUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvbG9kYXNoLWVzL2xvZGFzaC5kZWZhdWx0LmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3RocmVlL2J1aWxkL3RocmVlLm1vZHVsZS5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9AcGl4aS9wb2x5ZmlsbC9saWIvcG9seWZpbGwuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvaXNtb2JpbGVqcy9lc20vaXNNb2JpbGUuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvc2V0dGluZ3MvbGliL3NldHRpbmdzLmVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvZXh0ZXJuYWwgXCJ1cmxcIiIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9AcGl4aS9jb25zdGFudHMvbGliL2NvbnN0YW50cy5lcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9AcGl4aS91dGlscy9saWIvdXRpbHMuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvbWF0aC9saWIvbWF0aC5lcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9AcGl4aS9kaXNwbGF5L2xpYi9kaXNwbGF5LmVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL0BwaXhpL2FjY2Vzc2liaWxpdHkvbGliL2FjY2Vzc2liaWxpdHkuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvdGlja2VyL2xpYi90aWNrZXIuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvaW50ZXJhY3Rpb24vbGliL2ludGVyYWN0aW9uLmVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL0BwaXhpL3J1bm5lci9saWIvcnVubmVyLmVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL0BwaXhpL2NvcmUvbGliL2NvcmUuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvYXBwL2xpYi9hcHAuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvZXh0cmFjdC9saWIvZXh0cmFjdC5lcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9yZXNvdXJjZS1sb2FkZXIvZGlzdC9yZXNvdXJjZS1sb2FkZXIuZXNtLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL0BwaXhpL2xvYWRlcnMvbGliL2xvYWRlcnMuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvcGFydGljbGVzL2xpYi9wYXJ0aWNsZXMuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvZ3JhcGhpY3MvbGliL2dyYXBoaWNzLmVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL0BwaXhpL3Nwcml0ZS9saWIvc3ByaXRlLmVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL0BwaXhpL3RleHQvbGliL3RleHQuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvcHJlcGFyZS9saWIvcHJlcGFyZS5lcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9AcGl4aS9zcHJpdGVzaGVldC9saWIvc3ByaXRlc2hlZXQuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvc3ByaXRlLXRpbGluZy9saWIvc3ByaXRlLXRpbGluZy5lcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9AcGl4aS90ZXh0LWJpdG1hcC9saWIvdGV4dC1iaXRtYXAuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvZmlsdGVyLWJsdXIvbGliL2ZpbHRlci1ibHVyLmVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL0BwaXhpL2ZpbHRlci1jb2xvci1tYXRyaXgvbGliL2ZpbHRlci1jb2xvci1tYXRyaXguZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvZmlsdGVyLWRpc3BsYWNlbWVudC9saWIvZmlsdGVyLWRpc3BsYWNlbWVudC5lcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9AcGl4aS9taXhpbi1jYWNoZS1hcy1iaXRtYXAvbGliL21peGluLWNhY2hlLWFzLWJpdG1hcC5lcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9AcGl4aS9taXhpbi1nZXQtY2hpbGQtYnktbmFtZS9saWIvbWl4aW4tZ2V0LWNoaWxkLWJ5LW5hbWUuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9ub2RlX21vZHVsZXMvQHBpeGkvbWl4aW4tZ2V0LWdsb2JhbC1wb3NpdGlvbi9saWIvbWl4aW4tZ2V0LWdsb2JhbC1wb3NpdGlvbi5lcy5qcyIsIndlYnBhY2s6Ly9zb3VyY2UtbWFwLWV4cGxvcmVyLy4vdGVzdHMvZ2VuZXJhdGUtZGF0YS9zcmMvYmlnL25vZGVfbW9kdWxlcy9AcGl4aS9tZXNoL2xpYi9tZXNoLmVzLmpzIiwid2VicGFjazovL3NvdXJjZS1tYXAtZXhwbG9yZXIvLi90ZXN0cy9nZW5lcmF0ZS1kYXRhL3NyYy9iaWcvbm9kZV9tb2R1bGVzL3BpeGkuanMvbGliL3BpeGkuZXMuanMiLCJ3ZWJwYWNrOi8vc291cmNlLW1hcC1leHBsb3Jlci8uL3Rlc3RzL2dlbmVyYXRlLWRhdGEvc3JjL2JpZy9pbmRleC5qcyJdLCJuYW1lcyI6WyJwYXRoIiwibW9kdWxlIiwiZXhwb3J0cyIsIml0IiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiaXNPYmplY3QiLCJ3ZWxsS25vd25TeW1ib2wiLCJjcmVhdGUiLCJkZWZpbmVQcm9wZXJ0eU1vZHVsZSIsIlVOU0NPUEFCTEVTIiwiQXJyYXlQcm90b3R5cGUiLCJBcnJheSIsInByb3RvdHlwZSIsInVuZGVmaW5lZCIsImYiLCJjb25maWd1cmFibGUiLCJ2YWx1ZSIsImtleSIsImNoYXJBdCIsIlMiLCJpbmRleCIsInVuaWNvZGUiLCJsZW5ndGgiLCJDb25zdHJ1Y3RvciIsIm5hbWUiLCJBcnJheUJ1ZmZlciIsIkRhdGFWaWV3IiwiTkFNRSIsIk5BVElWRV9BUlJBWV9CVUZGRVIiLCJERVNDUklQVE9SUyIsImdsb2JhbCIsImhhcyIsImNsYXNzb2YiLCJjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkiLCJyZWRlZmluZSIsImRlZmluZVByb3BlcnR5IiwiZ2V0UHJvdG90eXBlT2YiLCJzZXRQcm90b3R5cGVPZiIsInVpZCIsIkludDhBcnJheSIsIkludDhBcnJheVByb3RvdHlwZSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiVWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGUiLCJUeXBlZEFycmF5IiwiVHlwZWRBcnJheVByb3RvdHlwZSIsIk9iamVjdFByb3RvdHlwZSIsIk9iamVjdCIsImlzUHJvdG90eXBlT2YiLCJUT19TVFJJTkdfVEFHIiwiVFlQRURfQVJSQVlfVEFHIiwiTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyIsIm9wZXJhIiwiVFlQRURfQVJSQVlfVEFHX1JFUUlSRUQiLCJUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCIsIlVpbnQ4QXJyYXkiLCJJbnQxNkFycmF5IiwiVWludDE2QXJyYXkiLCJJbnQzMkFycmF5IiwiVWludDMyQXJyYXkiLCJGbG9hdDMyQXJyYXkiLCJGbG9hdDY0QXJyYXkiLCJpc1R5cGVkQXJyYXkiLCJGdW5jdGlvbiIsImdldCIsInRoaXMiLCJhVHlwZWRBcnJheSIsImFUeXBlZEFycmF5Q29uc3RydWN0b3IiLCJDIiwiY2FsbCIsIkFSUkFZIiwiVHlwZWRBcnJheUNvbnN0cnVjdG9yIiwiZXhwb3J0VHlwZWRBcnJheU1ldGhvZCIsIktFWSIsInByb3BlcnR5IiwiZm9yY2VkIiwiZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZCIsImVycm9yIiwiaXNWaWV3Iiwia2xhc3MiLCJyZWRlZmluZUFsbCIsImZhaWxzIiwiYW5JbnN0YW5jZSIsInRvSW50ZWdlciIsInRvTGVuZ3RoIiwidG9JbmRleCIsIklFRUU3NTQiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiYXJyYXlGaWxsIiwic2V0VG9TdHJpbmdUYWciLCJJbnRlcm5hbFN0YXRlTW9kdWxlIiwiZ2V0SW50ZXJuYWxTdGF0ZSIsInNldEludGVybmFsU3RhdGUiLCJzZXQiLCJBUlJBWV9CVUZGRVIiLCJEQVRBX1ZJRVciLCJXUk9OR19JTkRFWCIsIk5hdGl2ZUFycmF5QnVmZmVyIiwiJEFycmF5QnVmZmVyIiwiJERhdGFWaWV3IiwiJERhdGFWaWV3UHJvdG90eXBlIiwiUmFuZ2VFcnJvciIsInBhY2tJRUVFNzU0IiwicGFjayIsInVucGFja0lFRUU3NTQiLCJ1bnBhY2siLCJwYWNrSW50OCIsIm51bWJlciIsInBhY2tJbnQxNiIsInBhY2tJbnQzMiIsInVucGFja0ludDMyIiwiYnVmZmVyIiwicGFja0Zsb2F0MzIiLCJwYWNrRmxvYXQ2NCIsImFkZEdldHRlciIsInZpZXciLCJjb3VudCIsImlzTGl0dGxlRW5kaWFuIiwiaW50SW5kZXgiLCJzdG9yZSIsImJ5dGVMZW5ndGgiLCJieXRlcyIsInN0YXJ0IiwiYnl0ZU9mZnNldCIsInNsaWNlIiwicmV2ZXJzZSIsImNvbnZlcnNpb24iLCJpIiwiTmFOIiwiQXJyYXlCdWZmZXJQcm90b3R5cGUiLCJrZXlzIiwiaiIsImNvbnN0cnVjdG9yIiwidGVzdFZpZXciLCJuYXRpdmVTZXRJbnQ4Iiwic2V0SW50OCIsImdldEludDgiLCJzZXRVaW50OCIsInVuc2FmZSIsImJ1ZmZlckxlbmd0aCIsIm9mZnNldCIsImdldFVpbnQ4IiwiZ2V0SW50MTYiLCJhcmd1bWVudHMiLCJnZXRVaW50MTYiLCJnZXRJbnQzMiIsImdldFVpbnQzMiIsImdldEZsb2F0MzIiLCJnZXRGbG9hdDY0Iiwic2V0SW50MTYiLCJzZXRVaW50MTYiLCJzZXRJbnQzMiIsInNldFVpbnQzMiIsInNldEZsb2F0MzIiLCJzZXRGbG9hdDY0IiwidG9PYmplY3QiLCJ0b0Fic29sdXRlSW5kZXgiLCJtaW4iLCJNYXRoIiwiY29weVdpdGhpbiIsInRhcmdldCIsIk8iLCJsZW4iLCJ0byIsImZyb20iLCJlbmQiLCJpbmMiLCJhcmd1bWVudHNMZW5ndGgiLCJlbmRQb3MiLCIkZm9yRWFjaCIsImFycmF5TWV0aG9kSXNTdHJpY3QiLCJhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCIsIlNUUklDVF9NRVRIT0QiLCJVU0VTX1RPX0xFTkdUSCIsImZvckVhY2giLCJjYWxsYmFja2ZuIiwiYmluZCIsImNhbGxXaXRoU2FmZUl0ZXJhdGlvbkNsb3NpbmciLCJpc0FycmF5SXRlcmF0b3JNZXRob2QiLCJjcmVhdGVQcm9wZXJ0eSIsImdldEl0ZXJhdG9yTWV0aG9kIiwiYXJyYXlMaWtlIiwicmVzdWx0Iiwic3RlcCIsIml0ZXJhdG9yIiwibmV4dCIsIm1hcGZuIiwibWFwcGluZyIsIml0ZXJhdG9yTWV0aG9kIiwiZG9uZSIsInRvSW5kZXhlZE9iamVjdCIsImNyZWF0ZU1ldGhvZCIsIklTX0lOQ0xVREVTIiwiJHRoaXMiLCJlbCIsImZyb21JbmRleCIsImluY2x1ZGVzIiwiaW5kZXhPZiIsIkluZGV4ZWRPYmplY3QiLCJhcnJheVNwZWNpZXNDcmVhdGUiLCJwdXNoIiwiVFlQRSIsIklTX01BUCIsIklTX0ZJTFRFUiIsIklTX1NPTUUiLCJJU19FVkVSWSIsIklTX0ZJTkRfSU5ERVgiLCJOT19IT0xFUyIsInRoYXQiLCJzcGVjaWZpY0NyZWF0ZSIsInNlbGYiLCJib3VuZEZ1bmN0aW9uIiwibWFwIiwiZmlsdGVyIiwic29tZSIsImV2ZXJ5IiwiZmluZCIsImZpbmRJbmRleCIsIm5hdGl2ZUxhc3RJbmRleE9mIiwibGFzdEluZGV4T2YiLCJORUdBVElWRV9aRVJPIiwiQUNDRVNTT1JTIiwiMSIsIkZPUkNFRCIsInNlYXJjaEVsZW1lbnQiLCJhcHBseSIsIlY4X1ZFUlNJT04iLCJTUEVDSUVTIiwiTUVUSE9EX05BTUUiLCJhcnJheSIsImZvbyIsIkJvb2xlYW4iLCJhcmd1bWVudCIsIm1ldGhvZCIsImNhY2hlIiwidGhyb3dlciIsIm9wdGlvbnMiLCJhcmd1bWVudDAiLCJhcmd1bWVudDEiLCJlbnVtZXJhYmxlIiwiYUZ1bmN0aW9uIiwiSVNfUklHSFQiLCJtZW1vIiwibGVmdCIsInJpZ2h0IiwiaXNBcnJheSIsIm9yaWdpbmFsQXJyYXkiLCJhbk9iamVjdCIsIlByb21pc2UiLCJnZXRCdWlsdEluIiwiJHJldHVybiIsIiQkcmV0dXJuIiwicmVzb2x2ZSIsIiR0aHJvdyIsIiQkdGhyb3ciLCJyZWplY3QiLCJuZXh0SGFuZGxlciIsIklTX0lURVJBVE9SIiwiQXN5bmNJdGVyYXRvclByb3h5Iiwic3RhdGUiLCJBc3luY0l0ZXJhdG9yIiwiYXJnIiwiSVNfVE9fQVJSQVkiLCJJU19GT1JfRUFDSCIsImZuIiwibG9vcCIsInRoZW4iLCJlcnIiLCJ0b0FycmF5IiwiQXN5bmNJdGVyYXRvclByb3RvdHlwZSIsInNoYXJlZCIsIklTX1BVUkUiLCJBU1lOQ19JVEVSQVRPUiIsIlBhc3NlZEFzeW5jSXRlcmF0b3JQcm90b3R5cGUiLCJFTlRSSUVTIiwicmV0dXJuTWV0aG9kIiwiSVRFUkFUT1IiLCJTQUZFX0NMT1NJTkciLCJjYWxsZWQiLCJpdGVyYXRvcldpdGhSZXR1cm4iLCJleGVjIiwiU0tJUF9DTE9TSU5HIiwiSVRFUkFUSU9OX1NVUFBPUlQiLCJvYmplY3QiLCJ0b1N0cmluZyIsIlRPX1NUUklOR19UQUdfU1VQUE9SVCIsImNsYXNzb2ZSYXciLCJDT1JSRUNUX0FSR1VNRU5UUyIsInRhZyIsInRyeUdldCIsImNhbGxlZSIsImFkZGVyIiwiYWRkIiwiayIsIndhc0RlbGV0ZWQiLCJjb2xsZWN0aW9uIiwicmVtb3ZlciIsImFsbERlbGV0ZWQiLCJpdGVyYXRlIiwic291cmNlIiwiQSIsIm4iLCJtYXBGbiIsIm5leHRJdGVtIiwiZGVmaW5lSXRlcmF0b3IiLCJzZXRTcGVjaWVzIiwiZmFzdEtleSIsImludGVybmFsU3RhdGVHZXR0ZXJGb3IiLCJnZXR0ZXJGb3IiLCJnZXRDb25zdHJ1Y3RvciIsIndyYXBwZXIiLCJDT05TVFJVQ1RPUl9OQU1FIiwiQURERVIiLCJpdGVyYWJsZSIsInR5cGUiLCJmaXJzdCIsImxhc3QiLCJzaXplIiwiZGVmaW5lIiwicHJldmlvdXMiLCJlbnRyeSIsImdldEVudHJ5IiwicmVtb3ZlZCIsImNsZWFyIiwiZGF0YSIsInByZXYiLCJzZXRTdHJvbmciLCJJVEVSQVRPUl9OQU1FIiwiZ2V0SW50ZXJuYWxDb2xsZWN0aW9uU3RhdGUiLCJnZXRJbnRlcm5hbEl0ZXJhdG9yU3RhdGUiLCJpdGVyYXRlZCIsImtpbmQiLCJnZXRXZWFrRGF0YSIsIkFycmF5SXRlcmF0aW9uTW9kdWxlIiwiJGhhcyIsImlkIiwidW5jYXVnaHRGcm96ZW5TdG9yZSIsImZyb3plbiIsIlVuY2F1Z2h0RnJvemVuU3RvcmUiLCJlbnRyaWVzIiwiZmluZFVuY2F1Z2h0RnJvemVuIiwic3BsaWNlIiwiJCIsImlzRm9yY2VkIiwiSW50ZXJuYWxNZXRhZGF0YU1vZHVsZSIsImNoZWNrQ29ycmVjdG5lc3NPZkl0ZXJhdGlvbiIsImluaGVyaXRJZlJlcXVpcmVkIiwiY29tbW9uIiwiSVNfV0VBSyIsIk5hdGl2ZUNvbnN0cnVjdG9yIiwiTmF0aXZlUHJvdG90eXBlIiwiZXhwb3J0ZWQiLCJmaXhNZXRob2QiLCJuYXRpdmVNZXRob2QiLCJSRVFVSVJFRCIsImluc3RhbmNlIiwiSEFTTlRfQ0hBSU5JTkciLCJUSFJPV1NfT05fUFJJTUlUSVZFUyIsIkFDQ0VQVF9JVEVSQUJMRVMiLCJCVUdHWV9aRVJPIiwiJGluc3RhbmNlIiwiZHVtbXkiLCJNYXAiLCJXZWFrTWFwIiwiTm9kZSIsInN5bWJvbCIsInByaW1pdGl2ZXMiLCJvYmplY3RzQnlJbmRleCIsImluaXRpYWxpemVyIiwiSVNfT0JKRUNUIiwicm9vdCIsImFjdGl2ZSIsIm93bktleXMiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJNQVRDSCIsInJlZ2V4cCIsImUiLCJGIiwicmVxdWlyZU9iamVjdENvZXJjaWJsZSIsInF1b3QiLCJzdHJpbmciLCJhdHRyaWJ1dGUiLCJwMSIsInJlcGxhY2UiLCJJdGVyYXRvclByb3RvdHlwZSIsImNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciIsIkl0ZXJhdG9ycyIsInJldHVyblRoaXMiLCJJdGVyYXRvckNvbnN0cnVjdG9yIiwiYml0bWFwIiwid3JpdGFibGUiLCJ0b1ByaW1pdGl2ZSIsInByb3BlcnR5S2V5IiwicGFkU3RhcnQiLCJhYnMiLCJEYXRlUHJvdG90eXBlIiwiRGF0ZSIsImdldFRpbWUiLCJuYXRpdmVEYXRlVG9JU09TdHJpbmciLCJ0b0lTT1N0cmluZyIsImlzRmluaXRlIiwiZGF0ZSIsInllYXIiLCJnZXRVVENGdWxsWWVhciIsIm1pbGxpc2Vjb25kcyIsImdldFVUQ01pbGxpc2Vjb25kcyIsInNpZ24iLCJnZXRVVENNb250aCIsImdldFVUQ0RhdGUiLCJnZXRVVENIb3VycyIsImdldFVUQ01pbnV0ZXMiLCJnZXRVVENTZWNvbmRzIiwiaGludCIsImNyZWF0ZUl0ZXJhdG9yQ29uc3RydWN0b3IiLCJJdGVyYXRvcnNDb3JlIiwiQlVHR1lfU0FGQVJJX0lURVJBVE9SUyIsIktFWVMiLCJWQUxVRVMiLCJJdGVyYWJsZSIsIkRFRkFVTFQiLCJJU19TRVQiLCJDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUiLCJtZXRob2RzIiwiZ2V0SXRlcmF0aW9uTWV0aG9kIiwiS0lORCIsImRlZmF1bHRJdGVyYXRvciIsIkl0ZXJhYmxlUHJvdG90eXBlIiwiSU5DT1JSRUNUX1ZBTFVFU19OQU1FIiwibmF0aXZlSXRlcmF0b3IiLCJhbnlOYXRpdmVJdGVyYXRvciIsInZhbHVlcyIsInByb3RvIiwid3JhcHBlZFdlbGxLbm93blN5bWJvbE1vZHVsZSIsIlN5bWJvbCIsImRvY3VtZW50IiwiRVhJU1RTIiwiY3JlYXRlRWxlbWVudCIsIkNTU1J1bGVMaXN0IiwiQ1NTU3R5bGVEZWNsYXJhdGlvbiIsIkNTU1ZhbHVlTGlzdCIsIkNsaWVudFJlY3RMaXN0IiwiRE9NUmVjdExpc3QiLCJET01TdHJpbmdMaXN0IiwiRE9NVG9rZW5MaXN0IiwiRGF0YVRyYW5zZmVySXRlbUxpc3QiLCJGaWxlTGlzdCIsIkhUTUxBbGxDb2xsZWN0aW9uIiwiSFRNTENvbGxlY3Rpb24iLCJIVE1MRm9ybUVsZW1lbnQiLCJIVE1MU2VsZWN0RWxlbWVudCIsIk1lZGlhTGlzdCIsIk1pbWVUeXBlQXJyYXkiLCJOYW1lZE5vZGVNYXAiLCJOb2RlTGlzdCIsIlBhaW50UmVxdWVzdExpc3QiLCJQbHVnaW4iLCJQbHVnaW5BcnJheSIsIlNWR0xlbmd0aExpc3QiLCJTVkdOdW1iZXJMaXN0IiwiU1ZHUGF0aFNlZ0xpc3QiLCJTVkdQb2ludExpc3QiLCJTVkdTdHJpbmdMaXN0IiwiU1ZHVHJhbnNmb3JtTGlzdCIsIlNvdXJjZUJ1ZmZlckxpc3QiLCJTdHlsZVNoZWV0TGlzdCIsIlRleHRUcmFja0N1ZUxpc3QiLCJUZXh0VHJhY2tMaXN0IiwiVG91Y2hMaXN0IiwidXNlckFnZW50IiwidGVzdCIsIm1hdGNoIiwidmVyc2lvbiIsInByb2Nlc3MiLCJ2ZXJzaW9ucyIsInY4Iiwic3BsaXQiLCJzZXRHbG9iYWwiLCJjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzIiwidGFyZ2V0UHJvcGVydHkiLCJzb3VyY2VQcm9wZXJ0eSIsImRlc2NyaXB0b3IiLCJUQVJHRVQiLCJHTE9CQUwiLCJTVEFUSUMiLCJzdGF0Iiwibm9UYXJnZXRHZXQiLCJzaGFtIiwicmVnZXhwRXhlYyIsIlJFUExBQ0VfU1VQUE9SVFNfTkFNRURfR1JPVVBTIiwicmUiLCJncm91cHMiLCJhIiwiUkVQTEFDRV9LRUVQU18kMCIsIlJFUExBQ0UiLCJSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSIsIlNQTElUX1dPUktTX1dJVEhfT1ZFUldSSVRURU5fRVhFQyIsIm9yaWdpbmFsRXhlYyIsIlNZTUJPTCIsIkRFTEVHQVRFU19UT19TWU1CT0wiLCJERUxFR0FURVNfVE9fRVhFQyIsImV4ZWNDYWxsZWQiLCJmbGFncyIsIm5hdGl2ZVJlZ0V4cE1ldGhvZCIsInN0ciIsImFyZzIiLCJmb3JjZVN0cmluZ01ldGhvZCIsInN0cmluZ01ldGhvZCIsInJlZ2V4TWV0aG9kIiwiUmVnRXhwIiwiZmxhdHRlbkludG9BcnJheSIsIm9yaWdpbmFsIiwic291cmNlTGVuIiwiZGVwdGgiLCJtYXBwZXIiLCJ0aGlzQXJnIiwiZWxlbWVudCIsInRhcmdldEluZGV4Iiwic291cmNlSW5kZXgiLCJpc0V4dGVuc2libGUiLCJwcmV2ZW50RXh0ZW5zaW9ucyIsImIiLCJjIiwiZmFjdG9yaWVzIiwiY29uc3RydWN0IiwiYXJnc0xlbmd0aCIsImFyZ3MiLCJsaXN0Iiwiam9pbiIsInBhcnRBcmdzIiwiY29uY2F0IiwidmFyaWFibGUiLCJuYW1lc3BhY2UiLCJnZXRJdGVyYXRvciIsIlNldCIsImNoZWNrIiwiZ2xvYmFsVGhpcyIsIndpbmRvdyIsImhhc093blByb3BlcnR5IiwiY29uc29sZSIsIkluZmluaXR5IiwicG93IiwiZmxvb3IiLCJsb2ciLCJMTjIiLCJtYW50aXNzYUxlbmd0aCIsImV4cG9uZW50IiwibWFudGlzc2EiLCJleHBvbmVudExlbmd0aCIsImVNYXgiLCJlQmlhcyIsInJ0IiwibkJpdHMiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIldyYXBwZXIiLCJOZXdUYXJnZXQiLCJOZXdUYXJnZXRQcm90b3R5cGUiLCJmdW5jdGlvblRvU3RyaW5nIiwiaW5zcGVjdFNvdXJjZSIsImhpZGRlbktleXMiLCJGUkVFWklORyIsIk1FVEFEQVRBIiwic2V0TWV0YWRhdGEiLCJvYmplY3RJRCIsIndlYWtEYXRhIiwibWV0YSIsIm9uRnJlZXplIiwiTkFUSVZFX1dFQUtfTUFQIiwib2JqZWN0SGFzIiwic2hhcmVkS2V5Iiwid21nZXQiLCJ3bWhhcyIsIndtc2V0IiwibWV0YWRhdGEiLCJTVEFURSIsImVuZm9yY2UiLCJyZXBsYWNlbWVudCIsImZlYXR1cmUiLCJkZXRlY3Rpb24iLCJub3JtYWxpemUiLCJQT0xZRklMTCIsIk5BVElWRSIsInRvTG93ZXJDYXNlIiwiaXNSZWdFeHAiLCJSZXN1bHQiLCJzdG9wcGVkIiwiQVNfRU5UUklFUyIsIml0ZXJGbiIsInN0b3AiLCJJdGVyYXRvclByb3h5IiwiSXRlcmF0b3IiLCJQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUiLCJhcnJheUl0ZXJhdG9yIiwidXBkYXRlRm4iLCJpbnNlcnRGbiIsIm5hdGl2ZUV4cG0xIiwiZXhwbTEiLCJleHAiLCJ4IiwiRVBTSUxPTiIsIkVQU0lMT04zMiIsIk1BWDMyIiwiTUlOMzIiLCJmcm91bmQiLCIkYWJzIiwiJHNpZ24iLCJsb2cxcCIsInNjYWxlIiwiaW5Mb3ciLCJpbkhpZ2giLCJvdXRMb3ciLCJvdXRIaWdoIiwiZmx1c2giLCJoZWFkIiwibm90aWZ5IiwidG9nZ2xlIiwibm9kZSIsInByb21pc2UiLCJtYWNyb3Rhc2siLCJJU19JT1MiLCJNdXRhdGlvbk9ic2VydmVyIiwiV2ViS2l0TXV0YXRpb25PYnNlcnZlciIsIklTX05PREUiLCJxdWV1ZU1pY3JvdGFza0Rlc2NyaXB0b3IiLCJxdWV1ZU1pY3JvdGFzayIsInBhcmVudCIsImRvbWFpbiIsImV4aXQiLCJlbnRlciIsIm5leHRUaWNrIiwiY3JlYXRlVGV4dE5vZGUiLCJvYnNlcnZlIiwiY2hhcmFjdGVyRGF0YSIsInRhc2siLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJ1cmwiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJwYXRobmFtZSIsInRvSlNPTiIsInNvcnQiLCJocmVmIiwiVVJMU2VhcmNoUGFyYW1zIiwidXNlcm5hbWUiLCJob3N0IiwiaGFzaCIsIlByb21pc2VDYXBhYmlsaXR5IiwiJCRyZXNvbHZlIiwiJCRyZWplY3QiLCJnbG9iYWxJc0Zpbml0ZSIsIk51bWJlciIsInRyaW0iLCJ3aGl0ZXNwYWNlcyIsIiRwYXJzZUZsb2F0IiwicGFyc2VGbG9hdCIsInRyaW1tZWRTdHJpbmciLCIkcGFyc2VJbnQiLCJwYXJzZUludCIsImhleCIsInJhZGl4Iiwib2JqZWN0S2V5cyIsImdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZSIsInByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlIiwibmF0aXZlQXNzaWduIiwiYXNzaWduIiwiQiIsImFscGhhYmV0IiwiY2hyIiwiVCIsImFjdGl2ZVhEb2N1bWVudCIsImRlZmluZVByb3BlcnRpZXMiLCJlbnVtQnVnS2V5cyIsImh0bWwiLCJkb2N1bWVudENyZWF0ZUVsZW1lbnQiLCJJRV9QUk9UTyIsIkVtcHR5Q29uc3RydWN0b3IiLCJzY3JpcHRUYWciLCJjb250ZW50IiwiTFQiLCJOdWxsUHJvdG9PYmplY3QiLCJBY3RpdmVYT2JqZWN0IiwiaWZyYW1lRG9jdW1lbnQiLCJpZnJhbWUiLCJ3cml0ZSIsImNsb3NlIiwidGVtcCIsInBhcmVudFdpbmRvdyIsIk51bGxQcm90b09iamVjdFZpYUFjdGl2ZVgiLCJzdHlsZSIsImRpc3BsYXkiLCJhcHBlbmRDaGlsZCIsInNyYyIsImNvbnRlbnRXaW5kb3ciLCJvcGVuIiwiUHJvcGVydGllcyIsIklFOF9ET01fREVGSU5FIiwibmF0aXZlRGVmaW5lUHJvcGVydHkiLCJQIiwiQXR0cmlidXRlcyIsIm5hdGl2ZUdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm5hdGl2ZUdldE93blByb3BlcnR5TmFtZXMiLCJ3aW5kb3dOYW1lcyIsImdldFdpbmRvd05hbWVzIiwiaW50ZXJuYWxPYmplY3RLZXlzIiwiQ09SUkVDVF9QUk9UT1RZUEVfR0VUVEVSIiwiT0JKRUNUX0lURVJBVE9SIiwibW9kZSIsIm5hbWVzIiwibmF0aXZlUHJvcGVydHlJc0VudW1lcmFibGUiLCJOQVNIT1JOX0JVRyIsIlYiLCJyYW5kb20iLCJfX2RlZmluZVNldHRlcl9fIiwiYVBvc3NpYmxlUHJvdG90eXBlIiwic2V0dGVyIiwiQ09SUkVDVF9TRVRURVIiLCJfX3Byb3RvX18iLCJUT19FTlRSSUVTIiwiZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZSIsIm5ld1Byb21pc2VDYXBhYmlsaXR5IiwicHJvbWlzZUNhcGFiaWxpdHkiLCJlbmZvcmNlSW50ZXJuYWxTdGF0ZSIsIlRFTVBMQVRFIiwic2ltcGxlIiwiZ2V0T3JDcmVhdGVNZXRhZGF0YU1hcCIsInRhcmdldEtleSIsInRhcmdldE1ldGFkYXRhIiwia2V5TWV0YWRhdGEiLCJnZXRNYXAiLCJNZXRhZGF0YUtleSIsIm1ldGFkYXRhTWFwIiwiTWV0YWRhdGFWYWx1ZSIsIl8iLCJ0b0tleSIsIlIiLCJyZTEiLCJyZTIiLCJyZWdleHBGbGFncyIsInN0aWNreUhlbHBlcnMiLCJuYXRpdmVFeGVjIiwibmF0aXZlUmVwbGFjZSIsInBhdGNoZWRFeGVjIiwiVVBEQVRFU19MQVNUX0lOREVYX1dST05HIiwibGFzdEluZGV4IiwiVU5TVVBQT1JURURfWSIsIkJST0tFTl9DQVJFVCIsIk5QQ0dfSU5DTFVERUQiLCJyZUNvcHkiLCJzdGlja3kiLCJjaGFyc0FkZGVkIiwic3RyQ29weSIsIm11bHRpbGluZSIsImlucHV0IiwiaWdub3JlQ2FzZSIsImRvdEFsbCIsIlJFIiwicyIsInkiLCJpcyIsIlRBRyIsIlNIQVJFRCIsImNvcHlyaWdodCIsImRlZmF1bHRDb25zdHJ1Y3RvciIsIkNPTlZFUlRfVE9fU1RSSU5HIiwicG9zIiwic2Vjb25kIiwicG9zaXRpb24iLCJjaGFyQ29kZUF0IiwiY29kZUF0IiwicmVwZWF0IiwiY2VpbCIsIklTX0VORCIsIm1heExlbmd0aCIsImZpbGxTdHJpbmciLCJmaWxsTGVuIiwic3RyaW5nRmlsbGVyIiwic3RyaW5nTGVuZ3RoIiwiZmlsbFN0ciIsImludE1heExlbmd0aCIsIm1heEludCIsInJlZ2V4Tm9uQVNDSUkiLCJyZWdleFNlcGFyYXRvcnMiLCJPVkVSRkxPV19FUlJPUiIsInN0cmluZ0Zyb21DaGFyQ29kZSIsImZyb21DaGFyQ29kZSIsImRpZ2l0VG9CYXNpYyIsImRpZ2l0IiwiYWRhcHQiLCJkZWx0YSIsIm51bVBvaW50cyIsImZpcnN0VGltZSIsImJhc2VNaW51c1RNaW4iLCJiYXNlIiwiZW5jb2RlIiwiY3VycmVudFZhbHVlIiwib3V0cHV0IiwiaW5wdXRMZW5ndGgiLCJjb3VudGVyIiwiZXh0cmEiLCJ1Y3MyZGVjb2RlIiwiYmlhcyIsImJhc2ljTGVuZ3RoIiwiaGFuZGxlZENQQ291bnQiLCJtIiwiaGFuZGxlZENQQ291bnRQbHVzT25lIiwicSIsInQiLCJxTWludXNUIiwiYmFzZU1pbnVzVCIsImxhYmVsIiwiZW5jb2RlZCIsImxhYmVscyIsIndoaXRlc3BhY2UiLCJsdHJpbSIsInJ0cmltIiwiZGVmZXIiLCJjaGFubmVsIiwicG9ydCIsImxvY2F0aW9uIiwic2V0SW1tZWRpYXRlIiwiY2xlYXJJbW1lZGlhdGUiLCJNZXNzYWdlQ2hhbm5lbCIsIkRpc3BhdGNoIiwicXVldWUiLCJPTlJFQURZU1RBVEVDSEFOR0UiLCJydW4iLCJydW5uZXIiLCJsaXN0ZW5lciIsImV2ZW50IiwicG9zdCIsInBvc3RNZXNzYWdlIiwicHJvdG9jb2wiLCJub3ciLCJwb3J0MiIsInBvcnQxIiwib25tZXNzYWdlIiwiYWRkRXZlbnRMaXN0ZW5lciIsImltcG9ydFNjcmlwdHMiLCJyZW1vdmVDaGlsZCIsInNldFRpbWVvdXQiLCJtYXgiLCJpbnRlZ2VyIiwiaXNOYU4iLCJ0b1Bvc2l0aXZlSW50ZWdlciIsIkJZVEVTIiwiUFJFRkVSUkVEX1NUUklORyIsInZhbCIsInZhbHVlT2YiLCJUWVBFRF9BUlJBWVNfQ09OU1RSVUNUT1JTX1JFUVVJUkVTX1dSQVBQRVJTIiwiQXJyYXlCdWZmZXJWaWV3Q29yZSIsIkFycmF5QnVmZmVyTW9kdWxlIiwidG9PZmZzZXQiLCJ0eXBlZEFycmF5RnJvbSIsInJvdW5kIiwiQllURVNfUEVSX0VMRU1FTlQiLCJXUk9OR19MRU5HVEgiLCJmcm9tTGlzdCIsImlzQXJyYXlCdWZmZXIiLCJpc1R5cGVkQXJyYXlJbmRleCIsIndyYXBwZWRHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ3cmFwcGVkRGVmaW5lUHJvcGVydHkiLCJDTEFNUEVEIiwiR0VUVEVSIiwiU0VUVEVSIiwiTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yIiwiVHlwZWRBcnJheUNvbnN0cnVjdG9yUHJvdG90eXBlIiwiYWRkRWxlbWVudCIsImdldHRlciIsInR5cGVkQXJyYXlPZmZzZXQiLCIkbGVuZ3RoIiwiJGxlbiIsInBvc3RmaXgiLCJOQVRJVkVfU1lNQk9MIiwiVVNFX1NZTUJPTF9BU19VSUQiLCJXZWxsS25vd25TeW1ib2xzU3RvcmUiLCJjcmVhdGVXZWxsS25vd25TeW1ib2wiLCJ3aXRob3V0U2V0dGVyIiwiYXJyYXlCdWZmZXJNb2R1bGUiLCJzcGVjaWVzQ29uc3RydWN0b3IiLCJuYXRpdmVBcnJheUJ1ZmZlclNsaWNlIiwiZmluIiwidmlld1NvdXJjZSIsInZpZXdUYXJnZXQiLCJhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0IiwiSVNfQ09OQ0FUX1NQUkVBREFCTEUiLCJNQVhfU0FGRV9JTlRFR0VSIiwiTUFYSU1VTV9BTExPV0VEX0lOREVYX0VYQ0VFREVEIiwiSVNfQ09OQ0FUX1NQUkVBREFCTEVfU1VQUE9SVCIsIlNQRUNJRVNfU1VQUE9SVCIsImlzQ29uY2F0U3ByZWFkYWJsZSIsInNwcmVhZGFibGUiLCJFIiwiYWRkVG9VbnNjb3BhYmxlcyIsIiRldmVyeSIsImZpbGwiLCIkZmlsdGVyIiwiSEFTX1NQRUNJRVNfU1VQUE9SVCIsIiRmaW5kSW5kZXgiLCJGSU5EX0lOREVYIiwiU0tJUFNfSE9MRVMiLCIkZmluZCIsIkZJTkQiLCJmbGF0TWFwIiwiZmxhdCIsImRlcHRoQXJnIiwiJGluY2x1ZGVzIiwiJGluZGV4T2YiLCJuYXRpdmVJbmRleE9mIiwiQVJSQVlfSVRFUkFUT1IiLCJBcmd1bWVudHMiLCJuYXRpdmVKb2luIiwiRVMzX1NUUklOR1MiLCJzZXBhcmF0b3IiLCIkbWFwIiwib2YiLCIkcmVkdWNlUmlnaHQiLCJyZWR1Y2VSaWdodCIsIiRyZWR1Y2UiLCJyZWR1Y2UiLCJuYXRpdmVSZXZlcnNlIiwiMCIsIm5hdGl2ZVNsaWNlIiwiJHNvbWUiLCJuYXRpdmVTb3J0IiwiRkFJTFNfT05fVU5ERUZJTkVEIiwiRkFJTFNfT05fTlVMTCIsImNvbXBhcmVmbiIsIk1BWElNVU1fQUxMT1dFRF9MRU5HVEhfRVhDRUVERUQiLCJkZWxldGVDb3VudCIsImluc2VydENvdW50IiwiYWN0dWFsRGVsZXRlQ291bnQiLCJhY3R1YWxTdGFydCIsInB2IiwiZGF0ZVRvUHJpbWl0aXZlIiwiVE9fUFJJTUlUSVZFIiwiSU5WQUxJRF9EQVRFIiwiVE9fU1RSSU5HIiwibmF0aXZlRGF0ZVRvU3RyaW5nIiwiSEFTX0lOU1RBTkNFIiwiRnVuY3Rpb25Qcm90b3R5cGUiLCJGdW5jdGlvblByb3RvdHlwZVRvU3RyaW5nIiwibmFtZVJFIiwiJHN0cmluZ2lmeSIsImxvdyIsImhpIiwiZml4Iiwic3RyaW5naWZ5IiwicmVwbGFjZXIiLCJzcGFjZSIsIkpTT04iLCJjb2xsZWN0aW9uU3Ryb25nIiwiaW5pdCIsIm5hdGl2ZUFjb3NoIiwiYWNvc2giLCJzcXJ0IiwiTUFYX1ZBTFVFIiwibmF0aXZlQXNpbmgiLCJhc2luaCIsIm5hdGl2ZUF0YW5oIiwiYXRhbmgiLCJjYnJ0IiwiTE9HMkUiLCJjbHozMiIsIm5hdGl2ZUNvc2giLCJjb3NoIiwiJGh5cG90IiwiaHlwb3QiLCJ2YWx1ZTEiLCJ2YWx1ZTIiLCJkaXYiLCJzdW0iLCJhTGVuIiwibGFyZyIsIm5hdGl2ZUltdWwiLCJpbXVsIiwiVUlOVDE2IiwieG4iLCJ5biIsInhsIiwieWwiLCJMT0cxMEUiLCJsb2cxMCIsImxvZzIiLCJzaW5oIiwidGFuaCIsInRydW5jIiwiTlVNQkVSIiwiTmF0aXZlTnVtYmVyIiwiTnVtYmVyUHJvdG90eXBlIiwiQlJPS0VOX0NMQVNTT0YiLCJ0b051bWJlciIsInRoaXJkIiwibWF4Q29kZSIsImRpZ2l0cyIsImNvZGUiLCJOdW1iZXJXcmFwcGVyIiwiaXNJbnRlZ2VyIiwiaXNTYWZlSW50ZWdlciIsIk1JTl9TQUZFX0lOVEVHRVIiLCJ0aGlzTnVtYmVyVmFsdWUiLCJuYXRpdmVUb0ZpeGVkIiwidG9GaXhlZCIsImFjYyIsImZyYWN0aW9uRGlnaXRzIiwieiIsImZyYWN0RGlnaXRzIiwibXVsdGlwbHkiLCJjMiIsImRpdmlkZSIsImRhdGFUb1N0cmluZyIsIngyIiwibmF0aXZlVG9QcmVjaXNpb24iLCJ0b1ByZWNpc2lvbiIsInByZWNpc2lvbiIsIl9fZGVmaW5lR2V0dGVyX18iLCIkZW50cmllcyIsIm5hdGl2ZUZyZWV6ZSIsImZyZWV6ZSIsImZyb21FbnRyaWVzIiwib2JqIiwidiIsIkZBSUxTX09OX1BSSU1JVElWRVMiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwibmF0aXZlR2V0UHJvdG90eXBlT2YiLCJuYXRpdmVJc0V4dGVuc2libGUiLCJuYXRpdmVJc0Zyb3plbiIsImlzRnJvemVuIiwibmF0aXZlSXNTZWFsZWQiLCJpc1NlYWxlZCIsIm5hdGl2ZUtleXMiLCJfX2xvb2t1cEdldHRlcl9fIiwiZGVzYyIsIl9fbG9va3VwU2V0dGVyX18iLCJuYXRpdmVQcmV2ZW50RXh0ZW5zaW9ucyIsIm5hdGl2ZVNlYWwiLCJzZWFsIiwiJHZhbHVlcyIsInBhcnNlRmxvYXRJbXBsZW1lbnRhdGlvbiIsInBhcnNlSW50SW1wbGVtZW50YXRpb24iLCJuZXdQcm9taXNlQ2FwYWJpbGl0eU1vZHVsZSIsInBlcmZvcm0iLCJhbGxTZXR0bGVkIiwiY2FwYWJpbGl0eSIsInByb21pc2VSZXNvbHZlIiwicmVtYWluaW5nIiwiYWxyZWFkeUNhbGxlZCIsInN0YXR1cyIsInJlYXNvbiIsIk5hdGl2ZVByb21pc2UiLCJyZWFsIiwib25GaW5hbGx5IiwiaXNGdW5jdGlvbiIsIkludGVybmFsIiwiT3duUHJvbWlzZUNhcGFiaWxpdHkiLCJQcm9taXNlV3JhcHBlciIsIm5hdGl2ZVRoZW4iLCJtaWNyb3Rhc2siLCJob3N0UmVwb3J0RXJyb3JzIiwiUFJPTUlTRSIsImdldEludGVybmFsUHJvbWlzZVN0YXRlIiwiUHJvbWlzZUNvbnN0cnVjdG9yIiwiJGZldGNoIiwibmV3R2VuZXJpY1Byb21pc2VDYXBhYmlsaXR5IiwiRElTUEFUQ0hfRVZFTlQiLCJjcmVhdGVFdmVudCIsImRpc3BhdGNoRXZlbnQiLCJVTkhBTkRMRURfUkVKRUNUSU9OIiwiUHJvbWlzZVJlamVjdGlvbkV2ZW50IiwiRmFrZVByb21pc2UiLCJJTkNPUlJFQ1RfSVRFUkFUSU9OIiwiYWxsIiwiaXNUaGVuYWJsZSIsImlzUmVqZWN0Iiwibm90aWZpZWQiLCJjaGFpbiIsInJlYWN0aW9ucyIsIm9rIiwiZXhpdGVkIiwicmVhY3Rpb24iLCJoYW5kbGVyIiwiZmFpbCIsInJlamVjdGlvbiIsIm9uSGFuZGxlVW5oYW5kbGVkIiwib25VbmhhbmRsZWQiLCJpbml0RXZlbnQiLCJpc1VuaGFuZGxlZCIsImVtaXQiLCJ1bndyYXAiLCJpbnRlcm5hbFJlamVjdCIsImludGVybmFsUmVzb2x2ZSIsImV4ZWN1dG9yIiwib25GdWxmaWxsZWQiLCJvblJlamVjdGVkIiwiZmV0Y2giLCJ3cmFwIiwiciIsIiRwcm9taXNlUmVzb2x2ZSIsInJhY2UiLCJuYXRpdmVBcHBseSIsImZ1bmN0aW9uQXBwbHkiLCJ0aGlzQXJndW1lbnQiLCJhcmd1bWVudHNMaXN0IiwibmF0aXZlQ29uc3RydWN0IiwiTkVXX1RBUkdFVF9CVUciLCJBUkdTX0JVRyIsIlRhcmdldCIsIm5ld1RhcmdldCIsIiRhcmdzIiwiUmVmbGVjdCIsImF0dHJpYnV0ZXMiLCJkZWxldGVQcm9wZXJ0eSIsIm9iamVjdEdldFByb3RvdHlwZU9mIiwicmVjZWl2ZXIiLCJvYmplY3RJc0V4dGVuc2libGUiLCJvYmplY3RQcmV2ZW50RXh0ZW5zaW9ucyIsIm9iamVjdFNldFByb3RvdHlwZU9mIiwiZXhpc3RpbmdEZXNjcmlwdG9yIiwib3duRGVzY3JpcHRvciIsImdldEZsYWdzIiwiTmF0aXZlUmVnRXhwIiwiUmVnRXhwUHJvdG90eXBlIiwiQ09SUkVDVF9ORVciLCJSZWdFeHBXcmFwcGVyIiwicGF0dGVybiIsInRoaXNJc1JlZ0V4cCIsInBhdHRlcm5Jc1JlZ0V4cCIsImZsYWdzQXJlVW5kZWZpbmVkIiwicHJveHkiLCJvYmplY3REZWZpbmVQcm9wZXJ0eU1vZHVsZSIsInJlZ0V4cEZsYWdzIiwibmF0aXZlVGVzdCIsIkVycm9yIiwibmF0aXZlVG9TdHJpbmciLCJOT1RfR0VORVJJQyIsIklOQ09SUkVDVF9OQU1FIiwicCIsInJmIiwiY3JlYXRlSFRNTCIsImZvcmNlZFN0cmluZ0hUTUxNZXRob2QiLCJhbmNob3IiLCJiaWciLCJibGluayIsImJvbGQiLCJjb2RlUG9pbnRBdCIsIm5vdEFSZWdFeHAiLCJjb3JyZWN0SXNSZWdFeHBMb2dpYyIsIm5hdGl2ZUVuZHNXaXRoIiwiZW5kc1dpdGgiLCJDT1JSRUNUX0lTX1JFR0VYUF9MT0dJQyIsInNlYXJjaFN0cmluZyIsImVuZFBvc2l0aW9uIiwic2VhcmNoIiwiZml4ZWQiLCJmb250Y29sb3IiLCJjb2xvciIsImZvbnRzaXplIiwibmF0aXZlRnJvbUNvZGVQb2ludCIsImZyb21Db2RlUG9pbnQiLCJlbGVtZW50cyIsIml0YWxpY3MiLCJTVFJJTkdfSVRFUkFUT1IiLCJwb2ludCIsImxpbmsiLCJnZXRSZWdFeHBGbGFncyIsImFkdmFuY2VTdHJpbmdJbmRleCIsIk1BVENIX0FMTCIsIlJFR0VYUF9TVFJJTkciLCJSRUdFWFBfU1RSSU5HX0lURVJBVE9SIiwicmVnRXhwQnVpbHRpbkV4ZWMiLCJuYXRpdmVNYXRjaEFsbCIsIm1hdGNoQWxsIiwiV09SS1NfV0lUSF9OT05fR0xPQkFMX1JFR0VYIiwiJFJlZ0V4cFN0cmluZ0l0ZXJhdG9yIiwiZnVsbFVuaWNvZGUiLCJyZWdFeHBFeGVjIiwiJG1hdGNoQWxsIiwiZmxhZ3NWYWx1ZSIsIm1hdGNoZXIiLCJyeCIsImZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljIiwibmF0aXZlTWF0Y2giLCJtYXliZUNhbGxOYXRpdmUiLCJyZXMiLCJtYXRjaFN0ciIsIiRwYWRFbmQiLCJwYWRFbmQiLCIkcGFkU3RhcnQiLCJyYXciLCJ0ZW1wbGF0ZSIsInJhd1RlbXBsYXRlIiwibGl0ZXJhbFNlZ21lbnRzIiwiU1VCU1RJVFVUSU9OX1NZTUJPTFMiLCJTVUJTVElUVVRJT05fU1lNQk9MU19OT19OQU1FRCIsIlVOU0FGRV9TVUJTVElUVVRFIiwic2VhcmNoVmFsdWUiLCJyZXBsYWNlVmFsdWUiLCJmdW5jdGlvbmFsUmVwbGFjZSIsInJlc3VsdHMiLCJhY2N1bXVsYXRlZFJlc3VsdCIsIm5leHRTb3VyY2VQb3NpdGlvbiIsIm1hdGNoZWQiLCJjYXB0dXJlcyIsIm5hbWVkQ2FwdHVyZXMiLCJyZXBsYWNlckFyZ3MiLCJnZXRTdWJzdGl0dXRpb24iLCJ0YWlsUG9zIiwic3ltYm9scyIsImNoIiwiY2FwdHVyZSIsInNhbWVWYWx1ZSIsIlNFQVJDSCIsIm5hdGl2ZVNlYXJjaCIsInNlYXJjaGVyIiwicHJldmlvdXNMYXN0SW5kZXgiLCJzbWFsbCIsImNhbGxSZWdFeHBFeGVjIiwiYXJyYXlQdXNoIiwiTUFYX1VJTlQzMiIsIlNVUFBPUlRTX1kiLCJTUExJVCIsIm5hdGl2ZVNwbGl0IiwiaW50ZXJuYWxTcGxpdCIsImxpbWl0IiwibGltIiwibGFzdExlbmd0aCIsImxhc3RMYXN0SW5kZXgiLCJzZXBhcmF0b3JDb3B5Iiwic3BsaXR0ZXIiLCJ1bmljb2RlTWF0Y2hpbmciLCJuYXRpdmVTdGFydHNXaXRoIiwic3RhcnRzV2l0aCIsInN0cmlrZSIsInN1YiIsInN1cCIsIiR0cmltRW5kIiwiZm9yY2VkU3RyaW5nVHJpbU1ldGhvZCIsInRyaW1FbmQiLCJ0cmltUmlnaHQiLCIkdHJpbVN0YXJ0IiwidHJpbVN0YXJ0IiwidHJpbUxlZnQiLCIkdHJpbSIsImRlZmluZVdlbGxLbm93blN5bWJvbCIsIk5hdGl2ZVN5bWJvbCIsImRlc2NyaXB0aW9uIiwiRW1wdHlTdHJpbmdEZXNjcmlwdGlvblN0b3JlIiwiU3ltYm9sV3JhcHBlciIsInN5bWJvbFByb3RvdHlwZSIsInN5bWJvbFRvU3RyaW5nIiwibmF0aXZlIiwibmF0aXZlT2JqZWN0Q3JlYXRlIiwiZ2V0T3duUHJvcGVydHlOYW1lc0V4dGVybmFsIiwiSElEREVOIiwiJFN5bWJvbCIsIkFsbFN5bWJvbHMiLCJPYmplY3RQcm90b3R5cGVTeW1ib2xzIiwiU3RyaW5nVG9TeW1ib2xSZWdpc3RyeSIsIlN5bWJvbFRvU3RyaW5nUmVnaXN0cnkiLCJRT2JqZWN0IiwiVVNFX1NFVFRFUiIsImZpbmRDaGlsZCIsInNldFN5bWJvbERlc2NyaXB0b3IiLCJPYmplY3RQcm90b3R5cGVEZXNjcmlwdG9yIiwiaXNTeW1ib2wiLCIkZGVmaW5lUHJvcGVydHkiLCIkZGVmaW5lUHJvcGVydGllcyIsInByb3BlcnRpZXMiLCIkZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiJHByb3BlcnR5SXNFbnVtZXJhYmxlIiwiJGdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIiRnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiSVNfT0JKRUNUX1BST1RPVFlQRSIsImtleUZvciIsInN5bSIsInVzZVNldHRlciIsInVzZVNpbXBsZSIsIiRyZXBsYWNlciIsIiRjb3B5V2l0aGluIiwiJGZpbGwiLCJwcmVkaWNhdGUiLCJjcmVhdGVUeXBlZEFycmF5Q29uc3RydWN0b3IiLCJBcnJheUl0ZXJhdG9ycyIsImFycmF5VmFsdWVzIiwiYXJyYXlLZXlzIiwiYXJyYXlFbnRyaWVzIiwibmF0aXZlVHlwZWRBcnJheUl0ZXJhdG9yIiwiQ09SUkVDVF9JVEVSX05BTUUiLCJ0eXBlZEFycmF5VmFsdWVzIiwiJGpvaW4iLCIkbGFzdEluZGV4T2YiLCJtaWRkbGUiLCIkc2xpY2UiLCIkc29ydCIsImJlZ2luIiwiYmVnaW5JbmRleCIsIiR0b0xvY2FsZVN0cmluZyIsInRvTG9jYWxlU3RyaW5nIiwiVE9fTE9DQUxFX1NUUklOR19CVUciLCJVaW50OEFycmF5UHJvdG90eXBlIiwiYXJyYXlUb1N0cmluZyIsImFycmF5Sm9pbiIsIklTX05PVF9BUlJBWV9NRVRIT0QiLCJJbnRlcm5hbFdlYWtNYXAiLCJjb2xsZWN0aW9uV2VhayIsImVuZm9yY2VJdGVybmFsU3RhdGUiLCJJU19JRTExIiwiJFdlYWtNYXAiLCJXZWFrTWFwUHJvdG90eXBlIiwibmF0aXZlRGVsZXRlIiwibmF0aXZlSGFzIiwibmF0aXZlR2V0IiwibmF0aXZlU2V0IiwiZ2V0SW50ZXJuYWxBZ2dyZWdhdGVFcnJvclN0YXRlIiwiJEFnZ3JlZ2F0ZUVycm9yIiwiZXJyb3JzIiwibWVzc2FnZSIsImVycm9yc0FycmF5IiwiQWdncmVnYXRlRXJyb3IiLCJpc0Zyb3plblN0cmluZ0FycmF5IiwiYWxsb3dVbmRlZmluZWQiLCJpc1RlbXBsYXRlT2JqZWN0IiwiY3JlYXRlQXN5bmNJdGVyYXRvclByb3h5IiwiYXNJbmRleGVkUGFpcnMiLCJBc3luY0l0ZXJhdG9yQ29uc3RydWN0b3IiLCJkcm9wIiwiZmlsdGVyZXIiLCJzZWxlY3RlZCIsImdldEFzeW5jSXRlcmF0b3JNZXRob2QiLCJpbm5lckl0ZXJhdG9yIiwib3V0ZXJMb29wIiwibWFwcGVkIiwiaW5uZXJOZXh0IiwiaW5uZXJMb29wIiwiZXJyb3IyIiwiZXJyb3IxIiwidXNpbmdJdGVyYXRvciIsInJlZHVjZXIiLCJub0luaXRpYWwiLCJhY2N1bXVsYXRvciIsInRha2UiLCIkdG9BcnJheSIsImdldENvbXBvc2l0ZUtleU5vZGUiLCJjb21wb3NpdGVLZXkiLCJjb21wb3NpdGVTeW1ib2wiLCJjcmVhdGVJdGVyYXRvclByb3h5IiwiTmF0aXZlSXRlcmF0b3IiLCJjb2xsZWN0aW9uRGVsZXRlQWxsIiwiZGVsZXRlQWxsIiwiZ2V0TWFwSXRlcmF0b3IiLCJuZXdNYXAiLCJmaW5kS2V5IiwiZ3JvdXBCeSIsImtleURlcml2YXRpdmUiLCJkZXJpdmVkS2V5Iiwic2FtZVZhbHVlWmVybyIsImtleUJ5Iiwia2V5T2YiLCJtYXBLZXlzIiwibWFwVmFsdWVzIiwibWVyZ2UiLCJ1cGRhdGVPckluc2VydCIsInVwZGF0ZSIsImNhbGxiYWNrIiwiaXNQcmVzZW50SW5NYXAiLCJ1cHNlcnQiLCJjbGFtcCIsImxvd2VyIiwidXBwZXIiLCJERUdfUEVSX1JBRCIsIlBJIiwiUkFEX1BFUl9ERUciLCJkZWdyZWVzIiwicmFkaWFucyIsImZzY2FsZSIsImlhZGRoIiwieDAiLCJ4MSIsInkwIiwieTEiLCIkeDAiLCIkeTAiLCJpbXVsaCIsInUiLCIkdSIsIiR2IiwidTAiLCJ2MCIsInUxIiwidjEiLCJpc3ViaCIsIm51bWJlcklzRmluaXRlIiwiU0VFREVEX1JBTkRPTSIsIlNFRURFRF9SQU5ET01fR0VORVJBVE9SIiwiJFNlZWRlZFJhbmRvbUdlbmVyYXRvciIsInNlZWQiLCJzZWVkZWRQUk5HIiwic2lnbmJpdCIsInVtdWxoIiwiSU5WQUxJRF9OVU1CRVJfUkVQUkVTRU5UQVRJT04iLCJ2YWxpZCIsImZyb21TdHJpbmciLCJtYXRoTnVtIiwiU3ludGF4RXJyb3IiLCJPYmplY3RJdGVyYXRvciIsIml0ZXJhdGVFbnRyaWVzIiwiaXRlcmF0ZUtleXMiLCJpdGVyYXRlVmFsdWVzIiwiT0JTRVJWQUJMRSIsImdldE1ldGhvZCIsImNsZWFudXBTdWJzY3JpcHRpb24iLCJzdWJzY3JpcHRpb25TdGF0ZSIsImNsZWFudXAiLCJzdWJzY3JpcHRpb25DbG9zZWQiLCJvYnNlcnZlciIsInN1YnNjcmlwdGlvbiIsImNsb3NlZCIsInN1YnNjcmlwdGlvbk9ic2VydmVyIiwiU3Vic2NyaXB0aW9uIiwic3Vic2NyaWJlciIsIlN1YnNjcmlwdGlvbk9ic2VydmVyIiwidW5zdWJzY3JpYmUiLCJuZXh0TWV0aG9kIiwiZXJyb3JNZXRob2QiLCJjb21wbGV0ZSIsImNvbXBsZXRlTWV0aG9kIiwiJE9ic2VydmFibGUiLCJzdWJzY3JpYmUiLCJvYnNlcnZhYmxlTWV0aG9kIiwib2JzZXJ2YWJsZSIsIml0ZW1zIiwiT2JzZXJ2YWJsZSIsIlBST01JU0VfQU5ZX0VSUk9SIiwiYW55IiwiYWxyZWFkeVJlc29sdmVkIiwiYWxyZWFkeVJlamVjdGVkIiwiUmVmbGVjdE1ldGFkYXRhTW9kdWxlIiwidG9NZXRhZGF0YUtleSIsIm9yZGluYXJ5RGVmaW5lT3duTWV0YWRhdGEiLCJkZWZpbmVNZXRhZGF0YSIsIm1ldGFkYXRhS2V5IiwibWV0YWRhdGFWYWx1ZSIsImRlbGV0ZU1ldGFkYXRhIiwib3JkaW5hcnlPd25NZXRhZGF0YUtleXMiLCJvcmRpbmFyeU1ldGFkYXRhS2V5cyIsIm9LZXlzIiwiaXRlciIsInBLZXlzIiwiZ2V0TWV0YWRhdGFLZXlzIiwib3JkaW5hcnlIYXNPd25NZXRhZGF0YSIsIm9yZGluYXJ5R2V0T3duTWV0YWRhdGEiLCJvcmRpbmFyeUdldE1ldGFkYXRhIiwiZ2V0TWV0YWRhdGEiLCJnZXRPd25NZXRhZGF0YUtleXMiLCJnZXRPd25NZXRhZGF0YSIsIm9yZGluYXJ5SGFzTWV0YWRhdGEiLCJoYXNNZXRhZGF0YSIsImhhc093bk1ldGFkYXRhIiwiY29sbGVjdGlvbkFkZEFsbCIsImFkZEFsbCIsImRpZmZlcmVuY2UiLCJuZXdTZXQiLCJnZXRTZXRJdGVyYXRvciIsImludGVyc2VjdGlvbiIsImhhc0NoZWNrIiwiaXNEaXNqb2ludEZyb20iLCJpc1N1YnNldE9mIiwib3RoZXJTZXQiLCJpc1N1cGVyc2V0T2YiLCJzZXAiLCJzeW1tZXRyaWNEaWZmZXJlbmNlIiwidW5pb24iLCJhdCIsIlN0cmluZ011bHRpYnl0ZU1vZHVsZSIsIiRTdHJpbmdJdGVyYXRvciIsImNvZGVQb2ludCIsImNvZGVQb2ludHMiLCJyZXBsYWNlQWxsIiwiSVNfUkVHX0VYUCIsIkRPTUl0ZXJhYmxlcyIsIkNPTExFQ1RJT05fTkFNRSIsIkNvbGxlY3Rpb24iLCJDb2xsZWN0aW9uUHJvdG90eXBlIiwiQXJyYXlJdGVyYXRvck1ldGhvZHMiLCJBcnJheVZhbHVlcyIsImlzTm9kZSIsInNjaGVkdWxlciIsInRpbWVvdXQiLCJib3VuZEFyZ3MiLCJzZXRJbnRlcnZhbCIsIlVTRV9OQVRJVkVfVVJMIiwiaGFzT3duIiwiSGVhZGVycyIsIlVSTF9TRUFSQ0hfUEFSQU1TIiwiVVJMX1NFQVJDSF9QQVJBTVNfSVRFUkFUT1IiLCJnZXRJbnRlcm5hbFBhcmFtc1N0YXRlIiwicGx1cyIsInNlcXVlbmNlcyIsInBlcmNlbnRTZXF1ZW5jZSIsInBlcmNlbnREZWNvZGUiLCJzZXF1ZW5jZSIsImRlY29kZVVSSUNvbXBvbmVudCIsImRlc2VyaWFsaXplIiwic2VyaWFsaXplIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicGFyc2VTZWFyY2hQYXJhbXMiLCJxdWVyeSIsInNoaWZ0IiwidXBkYXRlU2VhcmNoUGFyYW1zIiwidmFsaWRhdGVBcmd1bWVudHNMZW5ndGgiLCJwYXNzZWQiLCJyZXF1aXJlZCIsIlVSTFNlYXJjaFBhcmFtc0l0ZXJhdG9yIiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zQ29uc3RydWN0b3IiLCJlbnRyeUl0ZXJhdG9yIiwiZW50cnlOZXh0IiwidXBkYXRlVVJMIiwiVVJMU2VhcmNoUGFyYW1zUHJvdG90eXBlIiwiYXBwZW5kIiwiZ2V0QWxsIiwiZm91bmQiLCJlbnRyaWVzSW5kZXgiLCJzbGljZUluZGV4IiwiYm9keSIsImhlYWRlcnMiLCJnZXRTdGF0ZSIsIkVPRiIsImFycmF5RnJvbSIsInRvQVNDSUkiLCJVUkxTZWFyY2hQYXJhbXNNb2R1bGUiLCJOYXRpdmVVUkwiLCJnZXRJbnRlcm5hbFNlYXJjaFBhcmFtc1N0YXRlIiwiZ2V0SW50ZXJuYWxVUkxTdGF0ZSIsIklOVkFMSURfU0NIRU1FIiwiSU5WQUxJRF9IT1NUIiwiSU5WQUxJRF9QT1JUIiwiQUxQSEEiLCJBTFBIQU5VTUVSSUMiLCJESUdJVCIsIkhFWF9TVEFSVCIsIk9DVCIsIkRFQyIsIkhFWCIsIkZPUkJJRERFTl9IT1NUX0NPREVfUE9JTlQiLCJGT1JCSURERU5fSE9TVF9DT0RFX1BPSU5UX0VYQ0xVRElOR19QRVJDRU5UIiwiTEVBRElOR19BTkRfVFJBSUxJTkdfQzBfQ09OVFJPTF9PUl9TUEFDRSIsIlRBQl9BTkRfTkVXX0xJTkUiLCJwYXJzZUhvc3QiLCJwYXJzZUlQdjYiLCJpc1NwZWNpYWwiLCJwYXJzZUlQdjQiLCJwZXJjZW50RW5jb2RlIiwiQzBDb250cm9sUGVyY2VudEVuY29kZVNldCIsInBhcnRzTGVuZ3RoIiwibnVtYmVycyIsInBhcnQiLCJpcHY0IiwicGFydHMiLCJwb3AiLCJudW1iZXJzU2VlbiIsImlwdjRQaWVjZSIsInN3YXBzIiwic3dhcCIsImFkZHJlc3MiLCJwaWVjZUluZGV4IiwiY29tcHJlc3MiLCJwb2ludGVyIiwiY2hhciIsInNlcmlhbGl6ZUhvc3QiLCJpZ25vcmUwIiwidW5zaGlmdCIsImlwdjYiLCJtYXhJbmRleCIsImN1cnJTdGFydCIsImN1cnJMZW5ndGgiLCJmaW5kTG9uZ2VzdFplcm9TZXF1ZW5jZSIsImZyYWdtZW50UGVyY2VudEVuY29kZVNldCIsInBhdGhQZXJjZW50RW5jb2RlU2V0IiwidXNlcmluZm9QZXJjZW50RW5jb2RlU2V0Iiwic3BlY2lhbFNjaGVtZXMiLCJmdHAiLCJmaWxlIiwiaHR0cCIsImh0dHBzIiwid3MiLCJ3c3MiLCJzY2hlbWUiLCJpbmNsdWRlc0NyZWRlbnRpYWxzIiwicGFzc3dvcmQiLCJjYW5ub3RIYXZlVXNlcm5hbWVQYXNzd29yZFBvcnQiLCJjYW5ub3RCZUFCYXNlVVJMIiwiaXNXaW5kb3dzRHJpdmVMZXR0ZXIiLCJub3JtYWxpemVkIiwic3RhcnRzV2l0aFdpbmRvd3NEcml2ZUxldHRlciIsInNob3J0ZW5VUkxzUGF0aCIsInBhdGhTaXplIiwiaXNTaW5nbGVEb3QiLCJzZWdtZW50IiwiU0NIRU1FX1NUQVJUIiwiU0NIRU1FIiwiTk9fU0NIRU1FIiwiU1BFQ0lBTF9SRUxBVElWRV9PUl9BVVRIT1JJVFkiLCJQQVRIX09SX0FVVEhPUklUWSIsIlJFTEFUSVZFIiwiUkVMQVRJVkVfU0xBU0giLCJTUEVDSUFMX0FVVEhPUklUWV9TTEFTSEVTIiwiU1BFQ0lBTF9BVVRIT1JJVFlfSUdOT1JFX1NMQVNIRVMiLCJBVVRIT1JJVFkiLCJIT1NUIiwiSE9TVE5BTUUiLCJQT1JUIiwiRklMRSIsIkZJTEVfU0xBU0giLCJGSUxFX0hPU1QiLCJQQVRIX1NUQVJUIiwiUEFUSCIsIkNBTk5PVF9CRV9BX0JBU0VfVVJMX1BBVEgiLCJRVUVSWSIsIkZSQUdNRU5UIiwicGFyc2VVUkwiLCJzdGF0ZU92ZXJyaWRlIiwiYnVmZmVyQ29kZVBvaW50cyIsImZhaWx1cmUiLCJzZWVuQXQiLCJzZWVuQnJhY2tldCIsInNlZW5QYXNzd29yZFRva2VuIiwiZnJhZ21lbnQiLCJlbmNvZGVkQ29kZVBvaW50cyIsIlVSTENvbnN0cnVjdG9yIiwiYmFzZVN0YXRlIiwidXJsU3RyaW5nIiwic2VhcmNoUGFyYW1zU3RhdGUiLCJzZXJpYWxpemVVUkwiLCJvcmlnaW4iLCJnZXRPcmlnaW4iLCJnZXRQcm90b2NvbCIsImdldFVzZXJuYW1lIiwiZ2V0UGFzc3dvcmQiLCJnZXRIb3N0IiwiaG9zdG5hbWUiLCJnZXRIb3N0bmFtZSIsImdldFBvcnQiLCJnZXRQYXRobmFtZSIsImdldFNlYXJjaCIsImdldFNlYXJjaFBhcmFtcyIsImdldEhhc2giLCJVUkxQcm90b3R5cGUiLCJhY2Nlc3NvckRlc2NyaXB0b3IiLCJuYXRpdmVDcmVhdGVPYmplY3RVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJuYXRpdmVSZXZva2VPYmplY3RVUkwiLCJyZXZva2VPYmplY3RVUkwiLCJibG9iIiwicHJvcG9zYWxzIiwiZWFyY3V0IiwiaG9sZUluZGljZXMiLCJkaW0iLCJtaW5YIiwibWluWSIsIm1heFgiLCJtYXhZIiwiaW52U2l6ZSIsImhhc0hvbGVzIiwib3V0ZXJMZW4iLCJvdXRlck5vZGUiLCJsaW5rZWRMaXN0IiwidHJpYW5nbGVzIiwic3RlaW5lciIsImdldExlZnRtb3N0IiwiY29tcGFyZVgiLCJlbGltaW5hdGVIb2xlIiwiZmlsdGVyUG9pbnRzIiwiZWxpbWluYXRlSG9sZXMiLCJlYXJjdXRMaW5rZWQiLCJjbG9ja3dpc2UiLCJzaWduZWRBcmVhIiwiaW5zZXJ0Tm9kZSIsImVxdWFscyIsInJlbW92ZU5vZGUiLCJhZ2FpbiIsImFyZWEiLCJlYXIiLCJwYXNzIiwiek9yZGVyIiwicHJldloiLCJuZXh0WiIsInRhaWwiLCJudW1NZXJnZXMiLCJwU2l6ZSIsInFTaXplIiwiaW5TaXplIiwic29ydExpbmtlZCIsImluZGV4Q3VydmUiLCJpc0Vhckhhc2hlZCIsImlzRWFyIiwiY3VyZUxvY2FsSW50ZXJzZWN0aW9ucyIsInNwbGl0RWFyY3V0IiwicG9pbnRJblRyaWFuZ2xlIiwibWluVFgiLCJtaW5UWSIsIm1heFRYIiwibWF4VFkiLCJtaW5aIiwibWF4WiIsImludGVyc2VjdHMiLCJsb2NhbGx5SW5zaWRlIiwiaXNWYWxpZERpYWdvbmFsIiwic3BsaXRQb2x5Z29uIiwiaG9sZSIsImh4IiwiaHkiLCJxeCIsInRhbiIsIm14IiwibXkiLCJ0YW5NaW4iLCJzZWN0b3JDb250YWluc1NlY3RvciIsImZpbmRIb2xlQnJpZGdlIiwibGVmdG1vc3QiLCJheCIsImF5IiwiYngiLCJieSIsImN4IiwiY3kiLCJweCIsInB5IiwiaW50ZXJzZWN0c1BvbHlnb24iLCJpbnNpZGUiLCJtaWRkbGVJbnNpZGUiLCJwMiIsInExIiwicTIiLCJvMSIsIm8yIiwibzMiLCJvNCIsIm9uU2VnbWVudCIsIm51bSIsImEyIiwiYjIiLCJhbiIsImJwIiwiZGVmYXVsdCIsImRldmlhdGlvbiIsInBvbHlnb25BcmVhIiwidHJpYW5nbGVzQXJlYSIsImZsYXR0ZW4iLCJ2ZXJ0aWNlcyIsImhvbGVzIiwiZGltZW5zaW9ucyIsImhvbGVJbmRleCIsImQiLCJuYXRpdmVQcm9taXNlU3VwcG9ydGVkIiwiUG9seWZpbGwiLCJQRU5ESU5HIiwiU0VBTEVEIiwiRlVMRklMTEVEIiwiUkVKRUNURUQiLCJOT09QIiwiYXN5bmNUaW1lciIsImFzeW5jU2V0VGltZXIiLCJhc3luY1F1ZXVlIiwiYXN5bmNGbHVzaCIsImFzeW5jQ2FsbCIsImludm9rZUNhbGxiYWNrIiwib3duZXIiLCJzZXR0bGVkIiwic3RhdGVfIiwiZGF0YV8iLCJoYW5kbGVUaGVuYWJsZSIsInJlc29sdmVkIiwiZnVsZmlsbCIsInB1Ymxpc2hGdWxmaWxsbWVudCIsInB1Ymxpc2hSZWplY3Rpb24iLCJwdWJsaXNoIiwiY2FsbGJhY2tzIiwidGhlbl8iLCJyZXNvbHZlciIsInJlamVjdFByb21pc2UiLCJpbnZva2VSZXNvbHZlciIsIm9uRnVsZmlsbG1lbnQiLCJvblJlamVjdGlvbiIsImZ1bGZpbGxlZCIsInJlamVjdGVkIiwicHJvbWlzZXMiLCJwcmVmaXgiLCJFdmVudHMiLCJFRSIsImNvbnRleHQiLCJvbmNlIiwiYWRkTGlzdGVuZXIiLCJlbWl0dGVyIiwiZXZ0IiwiX2V2ZW50cyIsIl9ldmVudHNDb3VudCIsImNsZWFyRXZlbnQiLCJFdmVudEVtaXR0ZXIiLCJldmVudE5hbWVzIiwiZXZlbnRzIiwibGlzdGVuZXJzIiwiaGFuZGxlcnMiLCJsIiwiZWUiLCJsaXN0ZW5lckNvdW50IiwiYTEiLCJhMyIsImE0IiwiYTUiLCJyZW1vdmVMaXN0ZW5lciIsIm9uIiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwib2ZmIiwicHJlZml4ZWQiLCJmYWN0b3J5IiwidyIsIm5vR2xvYmFsIiwiYXJyIiwiZ2V0UHJvdG8iLCJjbGFzczJ0eXBlIiwiZm5Ub1N0cmluZyIsIk9iamVjdEZ1bmN0aW9uU3RyaW5nIiwic3VwcG9ydCIsIm5vZGVUeXBlIiwiaXNXaW5kb3ciLCJwcmVzZXJ2ZWRTY3JpcHRBdHRyaWJ1dGVzIiwibm9uY2UiLCJub01vZHVsZSIsIkRPTUV2YWwiLCJkb2MiLCJzY3JpcHQiLCJ0ZXh0IiwiZ2V0QXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwicGFyZW50Tm9kZSIsInRvVHlwZSIsImpRdWVyeSIsInNlbGVjdG9yIiwiaXNBcnJheUxpa2UiLCJqcXVlcnkiLCJwdXNoU3RhY2siLCJlbGVtcyIsInJldCIsInByZXZPYmplY3QiLCJlYWNoIiwiZWxlbSIsImVxIiwiZXZlbiIsImdyZXAiLCJfZWxlbSIsIm9kZCIsImV4dGVuZCIsImNvcHkiLCJjb3B5SXNBcnJheSIsImNsb25lIiwiZGVlcCIsImlzUGxhaW5PYmplY3QiLCJleHBhbmRvIiwiaXNSZWFkeSIsIm1zZyIsIm5vb3AiLCJDdG9yIiwiaXNFbXB0eU9iamVjdCIsImdsb2JhbEV2YWwiLCJtYWtlQXJyYXkiLCJpbkFycmF5IiwiaW52ZXJ0IiwibWF0Y2hlcyIsImNhbGxiYWNrRXhwZWN0IiwiZ3VpZCIsIl9pIiwiU2l6emxlIiwiRXhwciIsImdldFRleHQiLCJpc1hNTCIsInRva2VuaXplIiwiY29tcGlsZSIsInNlbGVjdCIsIm91dGVybW9zdENvbnRleHQiLCJzb3J0SW5wdXQiLCJoYXNEdXBsaWNhdGUiLCJzZXREb2N1bWVudCIsImRvY0VsZW0iLCJkb2N1bWVudElzSFRNTCIsInJidWdneVFTQSIsInJidWdneU1hdGNoZXMiLCJjb250YWlucyIsInByZWZlcnJlZERvYyIsImRpcnJ1bnMiLCJjbGFzc0NhY2hlIiwiY3JlYXRlQ2FjaGUiLCJ0b2tlbkNhY2hlIiwiY29tcGlsZXJDYWNoZSIsIm5vbm5hdGl2ZVNlbGVjdG9yQ2FjaGUiLCJzb3J0T3JkZXIiLCJwdXNoTmF0aXZlIiwiYm9vbGVhbnMiLCJpZGVudGlmaWVyIiwicHNldWRvcyIsInJ3aGl0ZXNwYWNlIiwicmNvbW1hIiwicmNvbWJpbmF0b3JzIiwicmRlc2NlbmQiLCJycHNldWRvIiwicmlkZW50aWZpZXIiLCJtYXRjaEV4cHIiLCJyaHRtbCIsInJpbnB1dHMiLCJyaGVhZGVyIiwicm5hdGl2ZSIsInJxdWlja0V4cHIiLCJyc2libGluZyIsInJ1bmVzY2FwZSIsImZ1bmVzY2FwZSIsImVzY2FwZSIsIm5vbkhleCIsImhpZ2giLCJyY3NzZXNjYXBlIiwiZmNzc2VzY2FwZSIsImFzQ29kZVBvaW50IiwidW5sb2FkSGFuZGxlciIsImluRGlzYWJsZWRGaWVsZHNldCIsImFkZENvbWJpbmF0b3IiLCJkaXNhYmxlZCIsIm5vZGVOYW1lIiwiZGlyIiwiY2hpbGROb2RlcyIsImVscyIsIm5pZCIsIm5ld1NlbGVjdG9yIiwibmV3Q29udGV4dCIsIm93bmVyRG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsInFzYSIsInRlc3RDb250ZXh0Iiwic2NvcGUiLCJ0b1NlbGVjdG9yIiwicXVlcnlTZWxlY3RvckFsbCIsInFzYUVycm9yIiwicmVtb3ZlQXR0cmlidXRlIiwiY2FjaGVMZW5ndGgiLCJtYXJrRnVuY3Rpb24iLCJhc3NlcnQiLCJhZGRIYW5kbGUiLCJhdHRycyIsImF0dHJIYW5kbGUiLCJzaWJsaW5nQ2hlY2siLCJjdXIiLCJkaWZmIiwibmV4dFNpYmxpbmciLCJjcmVhdGVJbnB1dFBzZXVkbyIsImNyZWF0ZUJ1dHRvblBzZXVkbyIsImNyZWF0ZURpc2FibGVkUHNldWRvIiwiaXNEaXNhYmxlZCIsImNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8iLCJtYXRjaEluZGV4ZXMiLCJuYW1lc3BhY2VVUkkiLCJkb2N1bWVudEVsZW1lbnQiLCJoYXNDb21wYXJlIiwic3ViV2luZG93IiwiZGVmYXVsdFZpZXciLCJ0b3AiLCJhdHRhY2hFdmVudCIsImNsYXNzTmFtZSIsImNyZWF0ZUNvbW1lbnQiLCJnZXRCeUlkIiwiZ2V0RWxlbWVudHNCeU5hbWUiLCJhdHRySWQiLCJnZXRBdHRyaWJ1dGVOb2RlIiwidG1wIiwiaW5uZXJIVE1MIiwibWF0Y2hlc1NlbGVjdG9yIiwid2Via2l0TWF0Y2hlc1NlbGVjdG9yIiwibW96TWF0Y2hlc1NlbGVjdG9yIiwib01hdGNoZXNTZWxlY3RvciIsIm1zTWF0Y2hlc1NlbGVjdG9yIiwiZGlzY29ubmVjdGVkTWF0Y2giLCJjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiIsImFkb3duIiwiYnVwIiwiY29tcGFyZSIsInNvcnREZXRhY2hlZCIsImF1cCIsImFwIiwiZXhwciIsImF0dHIiLCJzcGVjaWZpZWQiLCJzZWwiLCJ1bmlxdWVTb3J0IiwiZHVwbGljYXRlcyIsImRldGVjdER1cGxpY2F0ZXMiLCJzb3J0U3RhYmxlIiwidGV4dENvbnRlbnQiLCJmaXJzdENoaWxkIiwibm9kZVZhbHVlIiwic2VsZWN0b3JzIiwiY3JlYXRlUHNldWRvIiwicmVsYXRpdmUiLCJwcmVGaWx0ZXIiLCJleGNlc3MiLCJ1bnF1b3RlZCIsIm5vZGVOYW1lU2VsZWN0b3IiLCJvcGVyYXRvciIsIndoYXQiLCJfYXJndW1lbnQiLCJmb3J3YXJkIiwib2ZUeXBlIiwiX2NvbnRleHQiLCJ4bWwiLCJ1bmlxdWVDYWNoZSIsIm91dGVyQ2FjaGUiLCJub2RlSW5kZXgiLCJ1c2VDYWNoZSIsImxhc3RDaGlsZCIsInVuaXF1ZUlEIiwicHNldWRvIiwic2V0RmlsdGVycyIsImlkeCIsInVubWF0Y2hlZCIsImxhbmciLCJlbGVtTGFuZyIsImFjdGl2ZUVsZW1lbnQiLCJoYXNGb2N1cyIsInRhYkluZGV4IiwiY2hlY2tlZCIsInNlbGVjdGVkSW5kZXgiLCJfbWF0Y2hJbmRleGVzIiwicmFkaW8iLCJjaGVja2JveCIsImltYWdlIiwic3VibWl0IiwicmVzZXQiLCJ0b2tlbnMiLCJjb21iaW5hdG9yIiwic2tpcCIsImNoZWNrTm9uRWxlbWVudHMiLCJkb25lTmFtZSIsIm9sZENhY2hlIiwibmV3Q2FjaGUiLCJlbGVtZW50TWF0Y2hlciIsIm1hdGNoZXJzIiwiY29uZGVuc2UiLCJuZXdVbm1hdGNoZWQiLCJzZXRNYXRjaGVyIiwicG9zdEZpbHRlciIsInBvc3RGaW5kZXIiLCJwb3N0U2VsZWN0b3IiLCJwcmVNYXAiLCJwb3N0TWFwIiwicHJlZXhpc3RpbmciLCJjb250ZXh0cyIsIm11bHRpcGxlQ29udGV4dHMiLCJtYXRjaGVySW4iLCJtYXRjaGVyT3V0IiwibWF0Y2hlckZyb21Ub2tlbnMiLCJjaGVja0NvbnRleHQiLCJsZWFkaW5nUmVsYXRpdmUiLCJpbXBsaWNpdFJlbGF0aXZlIiwibWF0Y2hDb250ZXh0IiwibWF0Y2hBbnlDb250ZXh0IiwiZmlsdGVycyIsInBhcnNlT25seSIsInNvRmFyIiwicHJlRmlsdGVycyIsImNhY2hlZCIsInNldE1hdGNoZXJzIiwiZWxlbWVudE1hdGNoZXJzIiwiYnlTZXQiLCJieUVsZW1lbnQiLCJzdXBlck1hdGNoZXIiLCJvdXRlcm1vc3QiLCJtYXRjaGVkQ291bnQiLCJzZXRNYXRjaGVkIiwiY29udGV4dEJhY2t1cCIsImRpcnJ1bnNVbmlxdWUiLCJtYXRjaGVyRnJvbUdyb3VwTWF0Y2hlcnMiLCJ0b2tlbiIsImNvbXBpbGVkIiwiX25hbWUiLCJkZWZhdWx0VmFsdWUiLCJ1bmlxdWUiLCJpc1hNTERvYyIsImVzY2FwZVNlbGVjdG9yIiwidW50aWwiLCJ0cnVuY2F0ZSIsInNpYmxpbmdzIiwicm5lZWRzQ29udGV4dCIsIm5lZWRzQ29udGV4dCIsInJzaW5nbGVUYWciLCJ3aW5ub3ciLCJxdWFsaWZpZXIiLCJub3QiLCJyb290alF1ZXJ5IiwicGFyc2VIVE1MIiwicmVhZHkiLCJycGFyZW50c3ByZXYiLCJndWFyYW50ZWVkVW5pcXVlIiwiY2hpbGRyZW4iLCJjb250ZW50cyIsInNpYmxpbmciLCJ0YXJnZXRzIiwiY2xvc2VzdCIsInByZXZBbGwiLCJhZGRCYWNrIiwicGFyZW50cyIsInBhcmVudHNVbnRpbCIsIm5leHRBbGwiLCJuZXh0VW50aWwiLCJwcmV2VW50aWwiLCJjb250ZW50RG9jdW1lbnQiLCJybm90aHRtbHdoaXRlIiwiSWRlbnRpdHkiLCJUaHJvd2VyIiwiZXgiLCJhZG9wdFZhbHVlIiwibm9WYWx1ZSIsIkNhbGxiYWNrcyIsImZsYWciLCJjcmVhdGVPcHRpb25zIiwiZmlyaW5nIiwibWVtb3J5IiwiZmlyZWQiLCJsb2NrZWQiLCJmaXJpbmdJbmRleCIsImZpcmUiLCJzdG9wT25GYWxzZSIsInJlbW92ZSIsImVtcHR5IiwiZGlzYWJsZSIsImxvY2siLCJmaXJlV2l0aCIsIkRlZmVycmVkIiwiZnVuYyIsInR1cGxlcyIsImFsd2F5cyIsImRlZmVycmVkIiwicGlwZSIsImZucyIsIm5ld0RlZmVyIiwidHVwbGUiLCJyZXR1cm5lZCIsInByb2dyZXNzIiwib25Qcm9ncmVzcyIsIm1heERlcHRoIiwic3BlY2lhbCIsIm1pZ2h0VGhyb3ciLCJub3RpZnlXaXRoIiwicmVzb2x2ZVdpdGgiLCJleGNlcHRpb25Ib29rIiwic3RhY2tUcmFjZSIsInJlamVjdFdpdGgiLCJnZXRTdGFja0hvb2siLCJzdGF0ZVN0cmluZyIsIndoZW4iLCJzaW5nbGVWYWx1ZSIsInJlc29sdmVDb250ZXh0cyIsInJlc29sdmVWYWx1ZXMiLCJtYXN0ZXIiLCJ1cGRhdGVGdW5jIiwicmVycm9yTmFtZXMiLCJzdGFjayIsIndhcm4iLCJyZWFkeUV4Y2VwdGlvbiIsInJlYWR5TGlzdCIsImNvbXBsZXRlZCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJjYXRjaCIsInJlYWR5V2FpdCIsIndhaXQiLCJyZWFkeVN0YXRlIiwiZG9TY3JvbGwiLCJhY2Nlc3MiLCJjaGFpbmFibGUiLCJlbXB0eUdldCIsImJ1bGsiLCJfa2V5Iiwicm1zUHJlZml4IiwicmRhc2hBbHBoYSIsImZjYW1lbENhc2UiLCJfYWxsIiwibGV0dGVyIiwidG9VcHBlckNhc2UiLCJjYW1lbENhc2UiLCJhY2NlcHREYXRhIiwiRGF0YSIsInByb3AiLCJoYXNEYXRhIiwiZGF0YVByaXYiLCJkYXRhVXNlciIsInJicmFjZSIsInJtdWx0aURhc2giLCJkYXRhQXR0ciIsInBhcnNlIiwiZ2V0RGF0YSIsInJlbW92ZURhdGEiLCJfZGF0YSIsIl9yZW1vdmVEYXRhIiwiZGVxdWV1ZSIsInN0YXJ0TGVuZ3RoIiwiaG9va3MiLCJfcXVldWVIb29rcyIsImNsZWFyUXVldWUiLCJwbnVtIiwicmNzc051bSIsImNzc0V4cGFuZCIsImlzQXR0YWNoZWQiLCJjb21wb3NlZCIsImdldFJvb3ROb2RlIiwiaXNIaWRkZW5XaXRoaW5UcmVlIiwiY3NzIiwiYWRqdXN0Q1NTIiwidmFsdWVQYXJ0cyIsInR3ZWVuIiwiYWRqdXN0ZWQiLCJtYXhJdGVyYXRpb25zIiwiaW5pdGlhbCIsInVuaXQiLCJjc3NOdW1iZXIiLCJpbml0aWFsSW5Vbml0IiwiZGVmYXVsdERpc3BsYXlNYXAiLCJnZXREZWZhdWx0RGlzcGxheSIsInNob3dIaWRlIiwic2hvdyIsImhpZGUiLCJyY2hlY2thYmxlVHlwZSIsInJ0YWdOYW1lIiwicnNjcmlwdFR5cGUiLCJjcmVhdGVEb2N1bWVudEZyYWdtZW50IiwiY2hlY2tDbG9uZSIsImNsb25lTm9kZSIsIm5vQ2xvbmVDaGVja2VkIiwib3B0aW9uIiwid3JhcE1hcCIsInRoZWFkIiwiY29sIiwidHIiLCJ0ZCIsIl9kZWZhdWx0Iiwic2V0R2xvYmFsRXZhbCIsInJlZkVsZW1lbnRzIiwidGJvZHkiLCJ0Zm9vdCIsImNvbGdyb3VwIiwiY2FwdGlvbiIsInRoIiwib3B0Z3JvdXAiLCJidWlsZEZyYWdtZW50Iiwic2NyaXB0cyIsInNlbGVjdGlvbiIsImlnbm9yZWQiLCJhdHRhY2hlZCIsIm5vZGVzIiwiaHRtbFByZWZpbHRlciIsInJrZXlFdmVudCIsInJtb3VzZUV2ZW50IiwicnR5cGVuYW1lc3BhY2UiLCJyZXR1cm5UcnVlIiwicmV0dXJuRmFsc2UiLCJleHBlY3RTeW5jIiwic2FmZUFjdGl2ZUVsZW1lbnQiLCJ0eXBlcyIsIm9uZSIsIm9yaWdGbiIsImxldmVyYWdlTmF0aXZlIiwibm90QXN5bmMiLCJzYXZlZCIsImlzVHJpZ2dlciIsImRlbGVnYXRlVHlwZSIsInN0b3BQcm9wYWdhdGlvbiIsInN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0IiwidHJpZ2dlciIsIkV2ZW50IiwiaGFuZGxlT2JqSW4iLCJldmVudEhhbmRsZSIsImhhbmRsZU9iaiIsIm5hbWVzcGFjZXMiLCJvcmlnVHlwZSIsImVsZW1EYXRhIiwiaGFuZGxlIiwidHJpZ2dlcmVkIiwiZGlzcGF0Y2giLCJiaW5kVHlwZSIsImRlbGVnYXRlQ291bnQiLCJzZXR1cCIsIm1hcHBlZFR5cGVzIiwib3JpZ0NvdW50IiwidGVhcmRvd24iLCJyZW1vdmVFdmVudCIsIm5hdGl2ZUV2ZW50IiwiaGFuZGxlclF1ZXVlIiwiZGVsZWdhdGVUYXJnZXQiLCJwcmVEaXNwYXRjaCIsImlzUHJvcGFnYXRpb25TdG9wcGVkIiwiY3VycmVudFRhcmdldCIsImlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkIiwicm5hbWVzcGFjZSIsInBvc3REaXNwYXRjaCIsIm1hdGNoZWRIYW5kbGVycyIsIm1hdGNoZWRTZWxlY3RvcnMiLCJidXR0b24iLCJhZGRQcm9wIiwiaG9vayIsIm9yaWdpbmFsRXZlbnQiLCJsb2FkIiwibm9CdWJibGUiLCJjbGljayIsImJlZm9yZXVubG9hZCIsInJldHVyblZhbHVlIiwicHJvcHMiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJkZWZhdWx0UHJldmVudGVkIiwicmVsYXRlZFRhcmdldCIsInRpbWVTdGFtcCIsImlzU2ltdWxhdGVkIiwiYWx0S2V5IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJjaGFuZ2VkVG91Y2hlcyIsImN0cmxLZXkiLCJkZXRhaWwiLCJldmVudFBoYXNlIiwibWV0YUtleSIsInBhZ2VYIiwicGFnZVkiLCJzaGlmdEtleSIsImNoYXJDb2RlIiwia2V5Q29kZSIsImJ1dHRvbnMiLCJjbGllbnRYIiwiY2xpZW50WSIsIm9mZnNldFgiLCJvZmZzZXRZIiwicG9pbnRlcklkIiwicG9pbnRlclR5cGUiLCJzY3JlZW5YIiwic2NyZWVuWSIsInRhcmdldFRvdWNoZXMiLCJ0b0VsZW1lbnQiLCJ0b3VjaGVzIiwid2hpY2giLCJmb2N1cyIsImJsdXIiLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsInBvaW50ZXJlbnRlciIsInBvaW50ZXJsZWF2ZSIsIm9yaWciLCJyZWxhdGVkIiwicm5vSW5uZXJodG1sIiwicmNoZWNrZWQiLCJyY2xlYW5TY3JpcHQiLCJtYW5pcHVsYXRpb25UYXJnZXQiLCJkaXNhYmxlU2NyaXB0IiwicmVzdG9yZVNjcmlwdCIsImNsb25lQ29weUV2ZW50IiwiZGVzdCIsInVkYXRhT2xkIiwidWRhdGFDdXIiLCJmaXhJbnB1dCIsImRvbU1hbmlwIiwiaGFzU2NyaXB0cyIsImlOb0Nsb25lIiwidmFsdWVJc0Z1bmN0aW9uIiwiX2V2YWxVcmwiLCJrZWVwRGF0YSIsImNsZWFuRGF0YSIsImRhdGFBbmRFdmVudHMiLCJkZWVwRGF0YUFuZEV2ZW50cyIsInNyY0VsZW1lbnRzIiwiZGVzdEVsZW1lbnRzIiwiaW5QYWdlIiwiZGV0YWNoIiwicHJlcGVuZCIsImluc2VydEJlZm9yZSIsImJlZm9yZSIsImFmdGVyIiwicmVwbGFjZVdpdGgiLCJyZXBsYWNlQ2hpbGQiLCJhcHBlbmRUbyIsInByZXBlbmRUbyIsImluc2VydEFmdGVyIiwiaW5zZXJ0Iiwicm51bW5vbnB4IiwiZ2V0U3R5bGVzIiwib3BlbmVyIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsIm9sZCIsInJib3hTdHlsZSIsImN1ckNTUyIsImNvbXB1dGVkIiwid2lkdGgiLCJtaW5XaWR0aCIsIm1heFdpZHRoIiwiZ2V0UHJvcGVydHlWYWx1ZSIsInBpeGVsQm94U3R5bGVzIiwiYWRkR2V0SG9va0lmIiwiY29uZGl0aW9uRm4iLCJob29rRm4iLCJjb21wdXRlU3R5bGVUZXN0cyIsImNvbnRhaW5lciIsImNzc1RleHQiLCJkaXZTdHlsZSIsInBpeGVsUG9zaXRpb25WYWwiLCJyZWxpYWJsZU1hcmdpbkxlZnRWYWwiLCJyb3VuZFBpeGVsTWVhc3VyZXMiLCJtYXJnaW5MZWZ0IiwicGl4ZWxCb3hTdHlsZXNWYWwiLCJib3hTaXppbmdSZWxpYWJsZVZhbCIsInNjcm9sbGJveFNpemVWYWwiLCJvZmZzZXRXaWR0aCIsIm1lYXN1cmUiLCJyZWxpYWJsZVRyRGltZW5zaW9uc1ZhbCIsImJhY2tncm91bmRDbGlwIiwiY2xlYXJDbG9uZVN0eWxlIiwiYm94U2l6aW5nUmVsaWFibGUiLCJwaXhlbFBvc2l0aW9uIiwicmVsaWFibGVNYXJnaW5MZWZ0Iiwic2Nyb2xsYm94U2l6ZSIsInJlbGlhYmxlVHJEaW1lbnNpb25zIiwidGFibGUiLCJ0ckNoaWxkIiwidHJTdHlsZSIsImhlaWdodCIsImNzc1ByZWZpeGVzIiwiZW1wdHlTdHlsZSIsInZlbmRvclByb3BzIiwiZmluYWxQcm9wTmFtZSIsImZpbmFsIiwiY3NzUHJvcHMiLCJjYXBOYW1lIiwidmVuZG9yUHJvcE5hbWUiLCJyZGlzcGxheXN3YXAiLCJyY3VzdG9tUHJvcCIsImNzc1Nob3ciLCJ2aXNpYmlsaXR5IiwiY3NzTm9ybWFsVHJhbnNmb3JtIiwibGV0dGVyU3BhY2luZyIsImZvbnRXZWlnaHQiLCJzZXRQb3NpdGl2ZU51bWJlciIsInN1YnRyYWN0IiwiYm94TW9kZWxBZGp1c3RtZW50IiwiZGltZW5zaW9uIiwiYm94IiwiaXNCb3JkZXJCb3giLCJzdHlsZXMiLCJjb21wdXRlZFZhbCIsImdldFdpZHRoT3JIZWlnaHQiLCJ2YWx1ZUlzQm9yZGVyQm94Iiwib2Zmc2V0UHJvcCIsImdldENsaWVudFJlY3RzIiwiVHdlZW4iLCJlYXNpbmciLCJjc3NIb29rcyIsIm9wYWNpdHkiLCJvcmlnTmFtZSIsImlzQ3VzdG9tUHJvcCIsInNldFByb3BlcnR5IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwic2Nyb2xsYm94U2l6ZUJ1Z2d5IiwibWFyZ2luIiwicGFkZGluZyIsImJvcmRlciIsInN1ZmZpeCIsImV4cGFuZCIsImV4cGFuZGVkIiwicHJvcEhvb2tzIiwicGVyY2VudCIsImVhc2VkIiwiZHVyYXRpb24iLCJmeCIsInNjcm9sbFRvcCIsInNjcm9sbExlZnQiLCJsaW5lYXIiLCJzd2luZyIsImNvcyIsImZ4Tm93IiwiaW5Qcm9ncmVzcyIsInJmeHR5cGVzIiwicnJ1biIsInNjaGVkdWxlIiwiaGlkZGVuIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiaW50ZXJ2YWwiLCJ0aWNrIiwiY3JlYXRlRnhOb3ciLCJnZW5GeCIsImluY2x1ZGVXaWR0aCIsImNyZWF0ZVR3ZWVuIiwiYW5pbWF0aW9uIiwiQW5pbWF0aW9uIiwidHdlZW5lcnMiLCJwcmVmaWx0ZXJzIiwiY3VycmVudFRpbWUiLCJzdGFydFRpbWUiLCJ0d2VlbnMiLCJvcHRzIiwic3BlY2lhbEVhc2luZyIsIm9yaWdpbmFsUHJvcGVydGllcyIsIm9yaWdpbmFsT3B0aW9ucyIsImdvdG9FbmQiLCJwcm9wRmlsdGVyIiwidGltZXIiLCJhbmltIiwidHdlZW5lciIsIm9sZGZpcmUiLCJwcm9wVHdlZW4iLCJyZXN0b3JlRGlzcGxheSIsImlzQm94IiwiZGF0YVNob3ciLCJ1bnF1ZXVlZCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dYIiwib3ZlcmZsb3dZIiwicHJlZmlsdGVyIiwic3BlZWQiLCJvcHQiLCJzcGVlZHMiLCJmYWRlVG8iLCJhbmltYXRlIiwib3B0YWxsIiwiZG9BbmltYXRpb24iLCJmaW5pc2giLCJzdG9wUXVldWUiLCJ0aW1lcnMiLCJjc3NGbiIsInNsaWRlRG93biIsInNsaWRlVXAiLCJzbGlkZVRvZ2dsZSIsImZhZGVJbiIsImZhZGVPdXQiLCJmYWRlVG9nZ2xlIiwic2xvdyIsImZhc3QiLCJkZWxheSIsInRpbWUiLCJjbGVhclRpbWVvdXQiLCJjaGVja09uIiwib3B0U2VsZWN0ZWQiLCJyYWRpb1ZhbHVlIiwiYm9vbEhvb2siLCJyZW1vdmVBdHRyIiwiblR5cGUiLCJhdHRySG9va3MiLCJib29sIiwiYXR0ck5hbWVzIiwibG93ZXJjYXNlTmFtZSIsInJmb2N1c2FibGUiLCJyY2xpY2thYmxlIiwic3RyaXBBbmRDb2xsYXBzZSIsImdldENsYXNzIiwiY2xhc3Nlc1RvQXJyYXkiLCJyZW1vdmVQcm9wIiwicHJvcEZpeCIsInRhYmluZGV4IiwiYWRkQ2xhc3MiLCJjbGFzc2VzIiwiY3VyVmFsdWUiLCJjbGF6eiIsImZpbmFsVmFsdWUiLCJyZW1vdmVDbGFzcyIsInRvZ2dsZUNsYXNzIiwic3RhdGVWYWwiLCJpc1ZhbGlkVmFsdWUiLCJjbGFzc05hbWVzIiwiaGFzQ2xhc3MiLCJycmV0dXJuIiwidmFsSG9va3MiLCJvcHRpb25TZXQiLCJmb2N1c2luIiwicmZvY3VzTW9ycGgiLCJzdG9wUHJvcGFnYXRpb25DYWxsYmFjayIsIm9ubHlIYW5kbGVycyIsImJ1YmJsZVR5cGUiLCJvbnR5cGUiLCJsYXN0RWxlbWVudCIsImV2ZW50UGF0aCIsInNpbXVsYXRlIiwidHJpZ2dlckhhbmRsZXIiLCJhdHRhY2hlcyIsInJxdWVyeSIsInBhcnNlWE1MIiwiRE9NUGFyc2VyIiwicGFyc2VGcm9tU3RyaW5nIiwicmJyYWNrZXQiLCJyQ1JMRiIsInJzdWJtaXR0ZXJUeXBlcyIsInJzdWJtaXR0YWJsZSIsImJ1aWxkUGFyYW1zIiwidHJhZGl0aW9uYWwiLCJwYXJhbSIsInZhbHVlT3JGdW5jdGlvbiIsInNlcmlhbGl6ZUFycmF5IiwicjIwIiwicmhhc2giLCJyYW50aUNhY2hlIiwicmhlYWRlcnMiLCJybm9Db250ZW50IiwicnByb3RvY29sIiwidHJhbnNwb3J0cyIsImFsbFR5cGVzIiwib3JpZ2luQW5jaG9yIiwiYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzIiwic3RydWN0dXJlIiwiZGF0YVR5cGVFeHByZXNzaW9uIiwiZGF0YVR5cGUiLCJkYXRhVHlwZXMiLCJpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyIsImpxWEhSIiwiaW5zcGVjdGVkIiwic2Vla2luZ1RyYW5zcG9ydCIsImluc3BlY3QiLCJwcmVmaWx0ZXJPckZhY3RvcnkiLCJkYXRhVHlwZU9yVHJhbnNwb3J0IiwiYWpheEV4dGVuZCIsImZsYXRPcHRpb25zIiwiYWpheFNldHRpbmdzIiwibGFzdE1vZGlmaWVkIiwiZXRhZyIsImlzTG9jYWwiLCJwcm9jZXNzRGF0YSIsImFzeW5jIiwiY29udGVudFR5cGUiLCJhY2NlcHRzIiwianNvbiIsInJlc3BvbnNlRmllbGRzIiwiY29udmVydGVycyIsImFqYXhTZXR1cCIsInNldHRpbmdzIiwiYWpheFByZWZpbHRlciIsImFqYXhUcmFuc3BvcnQiLCJhamF4IiwidHJhbnNwb3J0IiwiY2FjaGVVUkwiLCJyZXNwb25zZUhlYWRlcnNTdHJpbmciLCJyZXNwb25zZUhlYWRlcnMiLCJ0aW1lb3V0VGltZXIiLCJ1cmxBbmNob3IiLCJmaXJlR2xvYmFscyIsInVuY2FjaGVkIiwiY2FsbGJhY2tDb250ZXh0IiwiZ2xvYmFsRXZlbnRDb250ZXh0IiwiY29tcGxldGVEZWZlcnJlZCIsInN0YXR1c0NvZGUiLCJyZXF1ZXN0SGVhZGVycyIsInJlcXVlc3RIZWFkZXJzTmFtZXMiLCJzdHJBYm9ydCIsImdldFJlc3BvbnNlSGVhZGVyIiwiZ2V0QWxsUmVzcG9uc2VIZWFkZXJzIiwic2V0UmVxdWVzdEhlYWRlciIsIm92ZXJyaWRlTWltZVR5cGUiLCJtaW1lVHlwZSIsImFib3J0Iiwic3RhdHVzVGV4dCIsImZpbmFsVGV4dCIsImNyb3NzRG9tYWluIiwiaGFzQ29udGVudCIsImlmTW9kaWZpZWQiLCJiZWZvcmVTZW5kIiwic3VjY2VzcyIsInNlbmQiLCJuYXRpdmVTdGF0dXNUZXh0IiwicmVzcG9uc2VzIiwiaXNTdWNjZXNzIiwicmVzcG9uc2UiLCJtb2RpZmllZCIsImN0IiwiZmluYWxEYXRhVHlwZSIsImZpcnN0RGF0YVR5cGUiLCJhamF4SGFuZGxlUmVzcG9uc2VzIiwiY29udjIiLCJjdXJyZW50IiwiY29udiIsImRhdGFGaWx0ZXIiLCJ0aHJvd3MiLCJhamF4Q29udmVydCIsImdldEpTT04iLCJnZXRTY3JpcHQiLCJ3cmFwQWxsIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJ3cmFwSW5uZXIiLCJodG1sSXNGdW5jdGlvbiIsInZpc2libGUiLCJvZmZzZXRIZWlnaHQiLCJ4aHIiLCJYTUxIdHRwUmVxdWVzdCIsInhoclN1Y2Nlc3NTdGF0dXMiLCIxMjIzIiwieGhyU3VwcG9ydGVkIiwiY29ycyIsImVycm9yQ2FsbGJhY2siLCJ4aHJGaWVsZHMiLCJvbmxvYWQiLCJvbmVycm9yIiwib25hYm9ydCIsIm9udGltZW91dCIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsInJlc3BvbnNlVHlwZSIsInJlc3BvbnNlVGV4dCIsImJpbmFyeSIsInNjcmlwdEF0dHJzIiwiY2hhcnNldCIsInNjcmlwdENoYXJzZXQiLCJvbGRDYWxsYmFja3MiLCJyanNvbnAiLCJqc29ucCIsImpzb25wQ2FsbGJhY2siLCJvcmlnaW5hbFNldHRpbmdzIiwiY2FsbGJhY2tOYW1lIiwib3ZlcndyaXR0ZW4iLCJyZXNwb25zZUNvbnRhaW5lciIsImpzb25Qcm9wIiwiY3JlYXRlSFRNTERvY3VtZW50IiwiaW1wbGVtZW50YXRpb24iLCJrZWVwU2NyaXB0cyIsInBhcnNlZCIsImFuaW1hdGVkIiwic2V0T2Zmc2V0IiwiY3VyUG9zaXRpb24iLCJjdXJMZWZ0IiwiY3VyQ1NTVG9wIiwiY3VyVG9wIiwiY3VyT2Zmc2V0IiwiY3VyQ1NTTGVmdCIsImN1ckVsZW0iLCJ1c2luZyIsInJlY3QiLCJ3aW4iLCJwYWdlWU9mZnNldCIsInBhZ2VYT2Zmc2V0Iiwib2Zmc2V0UGFyZW50IiwicGFyZW50T2Zmc2V0Iiwic2Nyb2xsVG8iLCJIZWlnaHQiLCJXaWR0aCIsImRlZmF1bHRFeHRyYSIsImZ1bmNOYW1lIiwidW5iaW5kIiwiZGVsZWdhdGUiLCJ1bmRlbGVnYXRlIiwiaG92ZXIiLCJmbk92ZXIiLCJmbk91dCIsImhvbGRSZWFkeSIsImhvbGQiLCJwYXJzZUpTT04iLCJpc051bWVyaWMiLCJfalF1ZXJ5IiwiXyQiLCJub0NvbmZsaWN0IiwiZnJlZUV4cG9ydHMiLCJmcmVlTW9kdWxlIiwiQnVmZmVyIiwiYWxsb2NVbnNhZmUiLCJpc0RlZXAiLCJmcmVlUHJvY2VzcyIsInJlcXVpcmUiLCJiaW5kaW5nIiwiZnJlZVNlbGYiLCJpc0J1ZmZlciIsIl9jcmVhdGVDbGFzcyIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsIl9jbGFzc0NhbGxDaGVjayIsIk1pbmlTaWduYWxCaW5kaW5nIiwiX2ZuIiwiX29uY2UiLCJfdGhpc0FyZyIsIl9uZXh0IiwiX3ByZXYiLCJfb3duZXIiLCJfYWRkTWluaVNpZ25hbEJpbmRpbmciLCJfaGVhZCIsIl90YWlsIiwiTWluaVNpZ25hbCIsImV4aXN0cyIsIm1vbWVudCIsImRlZmluZUxvY2FsZSIsIm1vbnRocyIsIm1vbnRoc1Nob3J0Iiwid2Vla2RheXMiLCJ3ZWVrZGF5c1Nob3J0Iiwid2Vla2RheXNNaW4iLCJtZXJpZGllbVBhcnNlIiwiaXNQTSIsIm1lcmlkaWVtIiwiaG91cnMiLCJtaW51dGVzIiwiaXNMb3dlciIsImxvbmdEYXRlRm9ybWF0IiwiTFRTIiwiTCIsIkxMIiwiTExMIiwiTExMTCIsImNhbGVuZGFyIiwic2FtZURheSIsIm5leHREYXkiLCJuZXh0V2VlayIsImxhc3REYXkiLCJsYXN0V2VlayIsInNhbWVFbHNlIiwicmVsYXRpdmVUaW1lIiwiZnV0dXJlIiwicGFzdCIsInNzIiwibW0iLCJoIiwiaGgiLCJkZCIsIk0iLCJNTSIsInl5IiwiZGF5T2ZNb250aE9yZGluYWxQYXJzZSIsIm9yZGluYWwiLCJ3ZWVrIiwiZG93IiwiZG95Iiwid2Vla2RheXNQYXJzZUV4YWN0Iiwic3ltYm9sTWFwIiwicGx1cmFsRm9ybSIsInBsdXJhbHMiLCJwbHVyYWxpemUiLCJ3aXRob3V0U3VmZml4IiwiaXNGdXR1cmUiLCJob3VyIiwibWludXRlIiwicHJlcGFyc2UiLCJwb3N0Zm9ybWF0IiwibnVtYmVyTWFwIiwic3VmZml4ZXMiLCI1IiwiOCIsIjcwIiwiODAiLCIyIiwiNyIsIjIwIiwiNTAiLCIzIiwiNCIsIjEwMCIsIjYiLCI5IiwiMTAiLCIzMCIsIjYwIiwiOTAiLCJwbHVyYWwiLCJ3b3JkIiwiZm9ybXMiLCJyZWxhdGl2ZVRpbWVXaXRoUGx1cmFsIiwiZm9ybWF0Iiwic3RhbmRhbG9uZSIsImlzRm9ybWF0IiwiZGF5IiwicGVyaW9kIiwibGFzdERpZ2l0IiwibGFzdDJEaWdpdHMiLCJtZXJpZGllbUhvdXIiLCJyZWxhdGl2ZVRpbWVXaXRoTXV0YXRpb24iLCJtdXRhdGlvbiIsInNwZWNpYWxNdXRhdGlvbkZvclllYXJzIiwibGFzdE51bWJlciIsInNvZnRNdXRhdGlvbiIsIm11dGF0aW9uVGFibGUiLCJzdWJzdHJpbmciLCJ0cmFuc2xhdGUiLCJtb250aHNQYXJzZUV4YWN0IiwibGwiLCJsbGwiLCJsbGxsIiwibW9udGhzUGFyc2UiLCJtb250aHNSZWdleCIsIm1vbnRoc1Nob3J0UmVnZXgiLCJtb250aHNTdHJpY3RSZWdleCIsIm1vbnRoc1Nob3J0U3RyaWN0UmVnZXgiLCJsb25nTW9udGhzUGFyc2UiLCJzaG9ydE1vbnRoc1BhcnNlIiwicHJvY2Vzc1JlbGF0aXZlVGltZSIsIm1vbnRoc05vbWluYXRpdmVFbCIsIm1vbnRoc0dlbml0aXZlRWwiLCJtb21lbnRUb0Zvcm1hdCIsIl9tb250aHNHZW5pdGl2ZUVsIiwibW9udGgiLCJfbW9udGhzTm9taW5hdGl2ZUVsIiwiY2FsZW5kYXJFbCIsIm1vbSIsIl9jYWxlbmRhckVsIiwibW9udGhzU2hvcnREb3QiLCJudW1iZXJzUGFzdCIsIm51bWJlcnNGdXR1cmUiLCJ2ZXJiYWxOdW1iZXIiLCJtb250aHNTaG9ydFdpdGhEb3RzIiwibW9udGhzU2hvcnRXaXRob3V0RG90cyIsIndlZWtFbmRpbmdzIiwiNDAiLCJpc1VwcGVyIiwicHJvY2Vzc0Z1dHVyZVRpbWUiLCJlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIiLCJzdWJzdHIiLCJwcm9jZXNzUGFzdFRpbWUiLCJ1bml0cyIsInRyYW5zbGF0ZVNlY29uZHMiLCJ0cmFuc2xhdGVTaW5ndWxhciIsInJlbGF0aXZlVGltZVdpdGhTaW5ndWxhciIsInJlbGF0aXZlU2Vjb25kcyIsInRyYW5zbGF0b3IiLCJ3b3JkcyIsImNvcnJlY3RHcmFtbWF0aWNhbENhc2UiLCJ3b3JkS2V5IiwicmVsYXRpdmVUaW1lTXIiLCJtb250aHNOb21pbmF0aXZlIiwibW9udGhzU3ViamVjdGl2ZSIsImRheXMiLCIxMiIsIjEzIiwibnVtYmVyc05vdW5zIiwidHJhbnNsYXRlRnV0dXJlIiwidHJhbnNsYXRlUGFzdCIsIm51bWJlck5vdW4iLCJudW1iZXJBc05vdW4iLCJodW5kcmVkIiwidGVuIiwiaG0iLCJ3ZWVrZGF5c0Nhc2VSZXBsYWNlIiwicHJvY2Vzc0hvdXJzRnVuY3Rpb24iLCJ3ZWJwYWNrQ29udGV4dCIsInJlcSIsIndlYnBhY2tDb250ZXh0UmVzb2x2ZSIsIl9fd2VicGFja19yZXF1aXJlX18iLCJvIiwiaG9va0NhbGxiYWNrIiwic2V0SG9va0NhbGxiYWNrIiwiaXNPYmplY3RFbXB0eSIsImlzVW5kZWZpbmVkIiwiaXNOdW1iZXIiLCJpc0RhdGUiLCJoYXNPd25Qcm9wIiwiY3JlYXRlVVRDIiwibG9jYWxlIiwic3RyaWN0IiwiY3JlYXRlTG9jYWxPclVUQyIsInV0YyIsImRlZmF1bHRQYXJzaW5nRmxhZ3MiLCJ1bnVzZWRUb2tlbnMiLCJ1bnVzZWRJbnB1dCIsImNoYXJzTGVmdE92ZXIiLCJudWxsSW5wdXQiLCJpbnZhbGlkTW9udGgiLCJpbnZhbGlkRm9ybWF0IiwidXNlckludmFsaWRhdGVkIiwiaXNvIiwicGFyc2VkRGF0ZVBhcnRzIiwicmZjMjgyMiIsIndlZWtkYXlNaXNtYXRjaCIsImdldFBhcnNpbmdGbGFncyIsIl9wZiIsImlzVmFsaWQiLCJfaXNWYWxpZCIsInBhcnNlZFBhcnRzIiwiaXNOb3dWYWxpZCIsIl9kIiwiaW52YWxpZFdlZWtkYXkiLCJfc3RyaWN0IiwiYmlnSG91ciIsImNyZWF0ZUludmFsaWQiLCJmdW4iLCJtb21lbnRQcm9wZXJ0aWVzIiwiY29weUNvbmZpZyIsIl9pc0FNb21lbnRPYmplY3QiLCJfZiIsIl9sIiwiX3R6bSIsIl9pc1VUQyIsIl9vZmZzZXQiLCJfbG9jYWxlIiwidXBkYXRlSW5Qcm9ncmVzcyIsIk1vbWVudCIsImNvbmZpZyIsInVwZGF0ZU9mZnNldCIsImlzTW9tZW50IiwiYWJzRmxvb3IiLCJ0b0ludCIsImFyZ3VtZW50Rm9yQ29lcmNpb24iLCJjb2VyY2VkTnVtYmVyIiwiY29tcGFyZUFycmF5cyIsImFycmF5MSIsImFycmF5MiIsImRvbnRDb252ZXJ0IiwibGVuZ3RoRGlmZiIsImRpZmZzIiwic3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmdzIiwiZGVwcmVjYXRlIiwiZGVwcmVjYXRpb25IYW5kbGVyIiwiZGVwcmVjYXRpb25zIiwiZGVwcmVjYXRlU2ltcGxlIiwiX2NvbmZpZyIsIl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlTGVuaWVudCIsIl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlIiwiX29yZGluYWxQYXJzZSIsIm1lcmdlQ29uZmlncyIsInBhcmVudENvbmZpZyIsImNoaWxkQ29uZmlnIiwiTG9jYWxlIiwiZGVmYXVsdENhbGVuZGFyIiwiX2NhbGVuZGFyIiwiZGVmYXVsdExvbmdEYXRlRm9ybWF0IiwiX2xvbmdEYXRlRm9ybWF0IiwiZm9ybWF0VXBwZXIiLCJkZWZhdWx0SW52YWxpZERhdGUiLCJpbnZhbGlkRGF0ZSIsIl9pbnZhbGlkRGF0ZSIsImRlZmF1bHRPcmRpbmFsIiwiZGVmYXVsdERheU9mTW9udGhPcmRpbmFsUGFyc2UiLCJfb3JkaW5hbCIsImRlZmF1bHRSZWxhdGl2ZVRpbWUiLCJfcmVsYXRpdmVUaW1lIiwicGFzdEZ1dHVyZSIsImFsaWFzZXMiLCJhZGRVbml0QWxpYXMiLCJzaG9ydGhhbmQiLCJsb3dlckNhc2UiLCJub3JtYWxpemVVbml0cyIsIm5vcm1hbGl6ZU9iamVjdFVuaXRzIiwiaW5wdXRPYmplY3QiLCJub3JtYWxpemVkUHJvcCIsIm5vcm1hbGl6ZWRJbnB1dCIsInByaW9yaXRpZXMiLCJhZGRVbml0UHJpb3JpdHkiLCJwcmlvcml0eSIsImdldFByaW9yaXRpemVkVW5pdHMiLCJ1bml0c09iaiIsInplcm9GaWxsIiwidGFyZ2V0TGVuZ3RoIiwiZm9yY2VTaWduIiwiYWJzTnVtYmVyIiwiemVyb3NUb0ZpbGwiLCJmb3JtYXR0aW5nVG9rZW5zIiwibG9jYWxGb3JtYXR0aW5nVG9rZW5zIiwiZm9ybWF0RnVuY3Rpb25zIiwiZm9ybWF0VG9rZW5GdW5jdGlvbnMiLCJhZGRGb3JtYXRUb2tlbiIsInBhZGRlZCIsImxvY2FsZURhdGEiLCJyZW1vdmVGb3JtYXR0aW5nVG9rZW5zIiwibWFrZUZvcm1hdEZ1bmN0aW9uIiwiZm9ybWF0TW9tZW50IiwiZXhwYW5kRm9ybWF0IiwicmVwbGFjZUxvbmdEYXRlRm9ybWF0VG9rZW5zIiwibWF0Y2gxIiwibWF0Y2gyIiwibWF0Y2gzIiwibWF0Y2g0IiwibWF0Y2g2IiwibWF0Y2gxdG8yIiwibWF0Y2gzdG80IiwibWF0Y2g1dG82IiwibWF0Y2gxdG8zIiwibWF0Y2gxdG80IiwibWF0Y2gxdG82IiwibWF0Y2hVbnNpZ25lZCIsIm1hdGNoU2lnbmVkIiwibWF0Y2hPZmZzZXQiLCJtYXRjaFNob3J0T2Zmc2V0IiwibWF0Y2hUaW1lc3RhbXAiLCJtYXRjaFdvcmQiLCJyZWdleGVzIiwiYWRkUmVnZXhUb2tlbiIsInJlZ2V4Iiwic3RyaWN0UmVnZXgiLCJpc1N0cmljdCIsImdldFBhcnNlUmVnZXhGb3JUb2tlbiIsInVuZXNjYXBlRm9ybWF0IiwicmVnZXhFc2NhcGUiLCJwMyIsInA0IiwiYWRkUGFyc2VUb2tlbiIsImFkZFdlZWtQYXJzZVRva2VuIiwiX3ciLCJhZGRUaW1lVG9BcnJheUZyb21Ub2tlbiIsIl9hIiwiWUVBUiIsIk1PTlRIIiwiREFURSIsIkhPVVIiLCJNSU5VVEUiLCJTRUNPTkQiLCJNSUxMSVNFQ09ORCIsIldFRUsiLCJXRUVLREFZIiwiZGF5c0luWWVhciIsImlzTGVhcFllYXIiLCJwYXJzZVR3b0RpZ2l0WWVhciIsImdldFNldFllYXIiLCJtYWtlR2V0U2V0IiwiZ2V0SXNMZWFwWWVhciIsImtlZXBUaW1lIiwic2V0JDEiLCJkYXlzSW5Nb250aCIsInN0cmluZ0dldCIsInN0cmluZ1NldCIsInByaW9yaXRpemVkIiwibW9kIiwibW9kTW9udGgiLCJNT05USFNfSU5fRk9STUFUIiwiZGVmYXVsdExvY2FsZU1vbnRocyIsImxvY2FsZU1vbnRocyIsIl9tb250aHMiLCJkZWZhdWx0TG9jYWxlTW9udGhzU2hvcnQiLCJsb2NhbGVNb250aHNTaG9ydCIsIl9tb250aHNTaG9ydCIsImhhbmRsZVN0cmljdFBhcnNlIiwibW9udGhOYW1lIiwiaWkiLCJsbGMiLCJ0b0xvY2FsZUxvd2VyQ2FzZSIsIl9tb250aHNQYXJzZSIsIl9sb25nTW9udGhzUGFyc2UiLCJfc2hvcnRNb250aHNQYXJzZSIsImxvY2FsZU1vbnRoc1BhcnNlIiwiX21vbnRoc1BhcnNlRXhhY3QiLCJzZXRNb250aCIsImRheU9mTW9udGgiLCJnZXRTZXRNb250aCIsImdldERheXNJbk1vbnRoIiwiZGVmYXVsdE1vbnRoc1Nob3J0UmVnZXgiLCJjb21wdXRlTW9udGhzUGFyc2UiLCJfbW9udGhzU2hvcnRTdHJpY3RSZWdleCIsIl9tb250aHNTaG9ydFJlZ2V4IiwiZGVmYXVsdE1vbnRoc1JlZ2V4IiwiX21vbnRoc1N0cmljdFJlZ2V4IiwiX21vbnRoc1JlZ2V4IiwiY21wTGVuUmV2Iiwic2hvcnRQaWVjZXMiLCJsb25nUGllY2VzIiwibWl4ZWRQaWVjZXMiLCJjcmVhdGVEYXRlIiwibXMiLCJnZXRGdWxsWWVhciIsInNldEZ1bGxZZWFyIiwiY3JlYXRlVVRDRGF0ZSIsIlVUQyIsInNldFVUQ0Z1bGxZZWFyIiwiZmlyc3RXZWVrT2Zmc2V0IiwiZndkIiwiZ2V0VVRDRGF5IiwiZGF5T2ZZZWFyRnJvbVdlZWtzIiwid2Vla2RheSIsInJlc1llYXIiLCJyZXNEYXlPZlllYXIiLCJkYXlPZlllYXIiLCJ3ZWVrT2ZZZWFyIiwicmVzV2VlayIsIndlZWtPZmZzZXQiLCJ3ZWVrc0luWWVhciIsIndlZWtPZmZzZXROZXh0IiwibG9jYWxlV2VlayIsIl93ZWVrIiwiZGVmYXVsdExvY2FsZVdlZWsiLCJsb2NhbGVGaXJzdERheU9mV2VlayIsImxvY2FsZUZpcnN0RGF5T2ZZZWFyIiwiZ2V0U2V0V2VlayIsImdldFNldElTT1dlZWsiLCJwYXJzZVdlZWtkYXkiLCJ3ZWVrZGF5c1BhcnNlIiwicGFyc2VJc29XZWVrZGF5Iiwic2hpZnRXZWVrZGF5cyIsIndlZWtkYXlzTWluUmVnZXgiLCJ3ZWVrZGF5c1Nob3J0UmVnZXgiLCJ3ZWVrZGF5c1JlZ2V4IiwiZGVmYXVsdExvY2FsZVdlZWtkYXlzIiwibG9jYWxlV2Vla2RheXMiLCJfd2Vla2RheXMiLCJkZWZhdWx0TG9jYWxlV2Vla2RheXNTaG9ydCIsImxvY2FsZVdlZWtkYXlzU2hvcnQiLCJfd2Vla2RheXNTaG9ydCIsImRlZmF1bHRMb2NhbGVXZWVrZGF5c01pbiIsImxvY2FsZVdlZWtkYXlzTWluIiwiX3dlZWtkYXlzTWluIiwiaGFuZGxlU3RyaWN0UGFyc2UkMSIsIndlZWtkYXlOYW1lIiwiX3dlZWtkYXlzUGFyc2UiLCJfc2hvcnRXZWVrZGF5c1BhcnNlIiwiX21pbldlZWtkYXlzUGFyc2UiLCJsb2NhbGVXZWVrZGF5c1BhcnNlIiwiX3dlZWtkYXlzUGFyc2VFeGFjdCIsIl9mdWxsV2Vla2RheXNQYXJzZSIsImdldFNldERheU9mV2VlayIsImdldERheSIsImdldFNldExvY2FsZURheU9mV2VlayIsImdldFNldElTT0RheU9mV2VlayIsImRlZmF1bHRXZWVrZGF5c1JlZ2V4IiwiY29tcHV0ZVdlZWtkYXlzUGFyc2UiLCJfd2Vla2RheXNTdHJpY3RSZWdleCIsIl93ZWVrZGF5c1JlZ2V4IiwiZGVmYXVsdFdlZWtkYXlzU2hvcnRSZWdleCIsIl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXgiLCJfd2Vla2RheXNTaG9ydFJlZ2V4IiwiZGVmYXVsdFdlZWtkYXlzTWluUmVnZXgiLCJfd2Vla2RheXNNaW5TdHJpY3RSZWdleCIsIl93ZWVrZGF5c01pblJlZ2V4IiwibWlucCIsInNob3J0cCIsImxvbmdwIiwibWluUGllY2VzIiwiaEZvcm1hdCIsImtGb3JtYXQiLCJsb3dlcmNhc2UiLCJtYXRjaE1lcmlkaWVtIiwiX21lcmlkaWVtUGFyc2UiLCJsb2NhbGVJc1BNIiwic2Vjb25kcyIsImtJbnB1dCIsIl9pc1BtIiwiX21lcmlkaWVtIiwicG9zMSIsInBvczIiLCJkZWZhdWx0TG9jYWxlTWVyaWRpZW1QYXJzZSIsImxvY2FsZU1lcmlkaWVtIiwiZ2xvYmFsTG9jYWxlIiwiZ2V0U2V0SG91ciIsImJhc2VDb25maWciLCJsb2NhbGVzIiwibG9jYWxlRmFtaWxpZXMiLCJub3JtYWxpemVMb2NhbGUiLCJjaG9vc2VMb2NhbGUiLCJsb2FkTG9jYWxlIiwib2xkTG9jYWxlIiwiX2FiYnIiLCJnZXRTZXRHbG9iYWxMb2NhbGUiLCJnZXRMb2NhbGUiLCJhYmJyIiwicGFyZW50TG9jYWxlIiwidXBkYXRlTG9jYWxlIiwidG1wTG9jYWxlIiwibGlzdExvY2FsZXMiLCJjaGVja092ZXJmbG93IiwiX292ZXJmbG93RGF5T2ZZZWFyIiwiX292ZXJmbG93V2Vla3MiLCJfb3ZlcmZsb3dXZWVrZGF5IiwiZGVmYXVsdHMiLCJjdXJyZW50RGF0ZUFycmF5Iiwibm93VmFsdWUiLCJfdXNlVVRDIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiY29uZmlnRnJvbUFycmF5IiwiY3VycmVudERhdGUiLCJleHBlY3RlZFdlZWtkYXkiLCJ5ZWFyVG9Vc2UiLCJkYXlPZlllYXJGcm9tV2Vla0luZm8iLCJfZGF5T2ZZZWFyIiwiX25leHREYXkiLCJzZXRVVENNaW51dGVzIiwid2Vla1llYXIiLCJ3ZWVrZGF5T3ZlcmZsb3ciLCJHRyIsIlciLCJjcmVhdGVMb2NhbCIsImN1cldlZWsiLCJnZyIsImV4dGVuZGVkSXNvUmVnZXgiLCJiYXNpY0lzb1JlZ2V4IiwidHpSZWdleCIsImlzb0RhdGVzIiwiaXNvVGltZXMiLCJhc3BOZXRKc29uUmVnZXgiLCJjb25maWdGcm9tSVNPIiwiYWxsb3dUaW1lIiwiZGF0ZUZvcm1hdCIsInRpbWVGb3JtYXQiLCJ0ekZvcm1hdCIsImNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQiLCJleHRyYWN0RnJvbVJGQzI4MjJTdHJpbmdzIiwieWVhclN0ciIsIm1vbnRoU3RyIiwiZGF5U3RyIiwiaG91clN0ciIsIm1pbnV0ZVN0ciIsInNlY29uZFN0ciIsInVudHJ1bmNhdGVZZWFyIiwicHJlcHJvY2Vzc1JGQzI4MjIiLCJjaGVja1dlZWtkYXkiLCJ3ZWVrZGF5U3RyIiwicGFyc2VkSW5wdXQiLCJvYnNPZmZzZXRzIiwiVVQiLCJHTVQiLCJFRFQiLCJFU1QiLCJDRFQiLCJDU1QiLCJNRFQiLCJNU1QiLCJQRFQiLCJQU1QiLCJjYWxjdWxhdGVPZmZzZXQiLCJvYnNPZmZzZXQiLCJtaWxpdGFyeU9mZnNldCIsIm51bU9mZnNldCIsImNvbmZpZ0Zyb21SRkMyODIyIiwicGFyc2VkQXJyYXkiLCJjb25maWdGcm9tU3RyaW5nIiwiY3JlYXRlRnJvbUlucHV0RmFsbGJhY2siLCJJU09fODYwMSIsIlJGQ18yODIyIiwic2tpcHBlZCIsInRvdGFsUGFyc2VkSW5wdXRMZW5ndGgiLCJtZXJpZGllbUZpeFdyYXAiLCJpc1BtIiwiY29uZmlnRnJvbVN0cmluZ0FuZEFycmF5IiwidGVtcENvbmZpZyIsImJlc3RNb21lbnQiLCJzY29yZVRvQmVhdCIsImN1cnJlbnRTY29yZSIsInNjb3JlIiwiY29uZmlnRnJvbU9iamVjdCIsIm1pbGxpc2Vjb25kIiwiY3JlYXRlRnJvbUNvbmZpZyIsInByZXBhcmVDb25maWciLCJjb25maWdGcm9tSW5wdXQiLCJpc1VUQyIsInByb3RvdHlwZU1pbiIsIm90aGVyIiwicHJvdG90eXBlTWF4IiwicGlja0J5IiwibW9tZW50cyIsIm9yZGVyaW5nIiwiaXNEdXJhdGlvblZhbGlkIiwidW5pdEhhc0RlY2ltYWwiLCJpc1ZhbGlkJDEiLCJjcmVhdGVJbnZhbGlkJDEiLCJjcmVhdGVEdXJhdGlvbiIsIkR1cmF0aW9uIiwieWVhcnMiLCJxdWFydGVycyIsInF1YXJ0ZXIiLCJ3ZWVrcyIsImlzb1dlZWsiLCJfbWlsbGlzZWNvbmRzIiwiX2RheXMiLCJfYnViYmxlIiwiaXNEdXJhdGlvbiIsImFic1JvdW5kIiwidXRjT2Zmc2V0Iiwib2Zmc2V0RnJvbVN0cmluZyIsImNodW5rT2Zmc2V0IiwiY2xvbmVXaXRoT2Zmc2V0IiwibW9kZWwiLCJzZXRUaW1lIiwibG9jYWwiLCJnZXREYXRlT2Zmc2V0IiwiZ2V0VGltZXpvbmVPZmZzZXQiLCJnZXRTZXRPZmZzZXQiLCJrZWVwTG9jYWxUaW1lIiwia2VlcE1pbnV0ZXMiLCJsb2NhbEFkanVzdCIsIl9jaGFuZ2VJblByb2dyZXNzIiwiYWRkU3VidHJhY3QiLCJnZXRTZXRab25lIiwic2V0T2Zmc2V0VG9VVEMiLCJzZXRPZmZzZXRUb0xvY2FsIiwic2V0T2Zmc2V0VG9QYXJzZWRPZmZzZXQiLCJ0Wm9uZSIsImhhc0FsaWduZWRIb3VyT2Zmc2V0IiwiaXNEYXlsaWdodFNhdmluZ1RpbWUiLCJpc0RheWxpZ2h0U2F2aW5nVGltZVNoaWZ0ZWQiLCJfaXNEU1RTaGlmdGVkIiwiaXNVdGNPZmZzZXQiLCJpc1V0YyIsImFzcE5ldFJlZ2V4IiwiaXNvUmVnZXgiLCJkaWZmUmVzIiwicGFyc2VJc28iLCJtb21lbnRzRGlmZmVyZW5jZSIsImlucCIsInBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2UiLCJpc0FmdGVyIiwiaXNCZWZvcmUiLCJjcmVhdGVBZGRlciIsImRpcmVjdGlvbiIsImlzQWRkaW5nIiwiaW52YWxpZCIsImdldENhbGVuZGFyRm9ybWF0IiwibXlNb21lbnQiLCJjYWxlbmRhciQxIiwiZm9ybWF0cyIsInNvZCIsInN0YXJ0T2YiLCJjYWxlbmRhckZvcm1hdCIsImxvY2FsSW5wdXQiLCJlbmRPZiIsImlzQmV0d2VlbiIsImluY2x1c2l2aXR5IiwibG9jYWxGcm9tIiwibG9jYWxUbyIsImlzU2FtZSIsImlucHV0TXMiLCJpc1NhbWVPckFmdGVyIiwiaXNTYW1lT3JCZWZvcmUiLCJhc0Zsb2F0Iiwiem9uZURlbHRhIiwibW9udGhEaWZmIiwid2hvbGVNb250aERpZmYiLCJrZWVwT2Zmc2V0IiwidG9EYXRlIiwiem9uZSIsImRhdGV0aW1lIiwiaW5wdXRTdHJpbmciLCJkZWZhdWx0Rm9ybWF0VXRjIiwiZGVmYXVsdEZvcm1hdCIsImh1bWFuaXplIiwiZnJvbU5vdyIsInRvTm93IiwibmV3TG9jYWxlRGF0YSIsIk1TX1BFUl9TRUNPTkQiLCJNU19QRVJfTUlOVVRFIiwiTVNfUEVSX0hPVVIiLCJNU19QRVJfNDAwX1lFQVJTIiwibW9kJDEiLCJkaXZpZGVuZCIsImRpdmlzb3IiLCJsb2NhbFN0YXJ0T2ZEYXRlIiwidXRjU3RhcnRPZkRhdGUiLCJzdGFydE9mRGF0ZSIsImlzb1dlZWtkYXkiLCJ1bml4IiwiaXNWYWxpZCQyIiwicGFyc2luZ0ZsYWdzIiwiaW52YWxpZEF0IiwiY3JlYXRpb25EYXRhIiwiYWRkV2Vla1llYXJGb3JtYXRUb2tlbiIsImdldFNldFdlZWtZZWFyIiwiZ2V0U2V0V2Vla1llYXJIZWxwZXIiLCJnZXRTZXRJU09XZWVrWWVhciIsImdldElTT1dlZWtzSW5ZZWFyIiwiZ2V0V2Vla3NJblllYXIiLCJ3ZWVrSW5mbyIsIndlZWtzVGFyZ2V0Iiwic2V0V2Vla0FsbCIsImRheU9mWWVhckRhdGEiLCJnZXRTZXRRdWFydGVyIiwiaXNvV2Vla1llYXIiLCJnZXRTZXREYXlPZk1vbnRoIiwiZ2V0U2V0RGF5T2ZZZWFyIiwiZ2V0U2V0TWludXRlIiwiZ2V0U2V0U2Vjb25kIiwicGFyc2VNcyIsImdldFNldE1pbGxpc2Vjb25kIiwiZ2V0Wm9uZUFiYnIiLCJnZXRab25lTmFtZSIsImNyZWF0ZVVuaXgiLCJjcmVhdGVJblpvbmUiLCJwYXJzZVpvbmUiLCJwcmVQYXJzZVBvc3RGb3JtYXQiLCJpc29XZWVrcyIsImlzb1dlZWtzSW5ZZWFyIiwiaXNEU1QiLCJ6b25lQWJiciIsInpvbmVOYW1lIiwiZGF0ZXMiLCJpc0RTVFNoaWZ0ZWQiLCJwcm90byQxIiwiZ2V0JDEiLCJmaWVsZCIsImxpc3RNb250aHNJbXBsIiwib3V0IiwibGlzdFdlZWtkYXlzSW1wbCIsImxvY2FsZVNvcnRlZCIsImxpc3RNb250aHMiLCJsaXN0TW9udGhzU2hvcnQiLCJsaXN0V2Vla2RheXMiLCJsaXN0V2Vla2RheXNTaG9ydCIsImxpc3RXZWVrZGF5c01pbiIsImZpcnN0RGF5T2ZZZWFyIiwiZmlyc3REYXlPZldlZWsiLCJsYW5nRGF0YSIsIm1hdGhBYnMiLCJhZGRTdWJ0cmFjdCQxIiwiYWRkJDEiLCJzdWJ0cmFjdCQxIiwiYWJzQ2VpbCIsImJ1YmJsZSIsIm1vbnRoc0Zyb21EYXlzIiwibW9udGhzVG9EYXlzIiwiZGF5c1RvTW9udGhzIiwiYXMiLCJ2YWx1ZU9mJDEiLCJtYWtlQXMiLCJhbGlhcyIsImFzTWlsbGlzZWNvbmRzIiwiYXNTZWNvbmRzIiwiYXNNaW51dGVzIiwiYXNIb3VycyIsImFzRGF5cyIsImFzV2Vla3MiLCJhc01vbnRocyIsImFzUXVhcnRlcnMiLCJhc1llYXJzIiwiY2xvbmUkMSIsImdldCQyIiwibWFrZUdldHRlciIsInRocmVzaG9sZHMiLCJzdWJzdGl0dXRlVGltZUFnbyIsInJlbGF0aXZlVGltZSQxIiwicG9zTmVnRHVyYXRpb24iLCJnZXRTZXRSZWxhdGl2ZVRpbWVSb3VuZGluZyIsInJvdW5kaW5nRnVuY3Rpb24iLCJnZXRTZXRSZWxhdGl2ZVRpbWVUaHJlc2hvbGQiLCJ0aHJlc2hvbGQiLCJ3aXRoU3VmZml4IiwiYWJzJDEiLCJ0b0lTT1N0cmluZyQxIiwiWSIsIkQiLCJ0b3RhbCIsInRvdGFsU2lnbiIsInltU2lnbiIsImRheXNTaWduIiwiaG1zU2lnbiIsInByb3RvJDIiLCJ0b0lzb1N0cmluZyIsInJlbGF0aXZlVGltZVJvdW5kaW5nIiwicmVsYXRpdmVUaW1lVGhyZXNob2xkIiwiSFRNTDVfRk1UIiwiREFURVRJTUVfTE9DQUwiLCJEQVRFVElNRV9MT0NBTF9TRUNPTkRTIiwiREFURVRJTUVfTE9DQUxfTVMiLCJUSU1FIiwiVElNRV9TRUNPTkRTIiwiVElNRV9NUyIsInByb3BJc0VudW1lcmFibGUiLCJ0ZXN0MSIsInRlc3QyIiwidGVzdDMiLCJzaG91bGRVc2VOYXRpdmUiLCJwYXJzZXIiLCJsb29zZSIsInN0cmljdE1vZGUiLCJ1cmkiLCIkMCIsIiQxIiwiJDIiLCJDbGFzcyIsIk1hdHJpeDQiLCJSYW5kb21YWVoiLCJSYW5kb21YWVpXIiwiUm90YXRlVmVjMyIsIlNwcml0ZTNEIiwiVmVjdG9yMiIsIlZlY3RvcjMiLCJWZWN0b3I0IiwidG1wVmVjMyIsInRtcFZlYzQiLCJkaXJ2ZWMiLCJyaWdodHZlYyIsImJpbGxib2FyZE1hdHJpeCIsIkNhbWVyYSIsImluaXRpYWxpemUiLCJzY2VuZSIsImRpc3BsYXlMaXN0Iiwic3lzIiwidXBkYXRlTGlzdCIsInVwIiwicGl4ZWxTY2FsZSIsInByb2plY3Rpb24iLCJjb21iaW5lZCIsImludlByb2plY3Rpb25WaWV3IiwibmVhciIsImZhciIsInJheSIsInZpZXdwb3J0V2lkdGgiLCJ2aWV3cG9ydEhlaWdodCIsImJpbGxib2FyZE1hdHJpeERpcnR5Iiwic2V0UG9zaXRpb24iLCJzZXRTY2VuZSIsInNldFBpeGVsU2NhbGUiLCJzcHJpdGUzRCIsImdhbWVPYmplY3QiLCJ1cGRhdGVDaGlsZHJlbiIsImNoaWxkIiwiZGVsZXRlIiwiZ2V0Q2hpbGRyZW4iLCJmcmFtZSIsImNyZWF0ZU11bHRpcGxlIiwicXVhbnRpdHkiLCJjcmVhdGVSZWN0Iiwic3BhY2luZyIsInNwcml0ZXMiLCJieiIsInJhbmRvbVNwaGVyZSIsInJhZGl1cyIsInJhbmRvbUN1YmUiLCJ0cmFuc2xhdGVDaGlsZHJlbiIsInZlYzMiLCJ0cmFuc2Zvcm1DaGlsZHJlbiIsIm1hdDQiLCJ0cmFuc2Zvcm1NYXQ0Iiwic2V0Vmlld3BvcnQiLCJsb29rQXQiLCJjcm9zcyIsInJvdGF0ZSIsImF4aXMiLCJyb3RhdGVBcm91bmQiLCJuZWdhdGUiLCJwcm9qZWN0IiwidmVjIiwiTkVBUl9SQU5HRSIsIkZBUl9SQU5HRSIsInVucHJvamVjdCIsInZpZXdwb3J0IiwiZ2V0UGlja1JheSIsIm10eCIsInVwZGF0ZUJpbGxib2FyZE1hdHJpeCIsImdldFBvaW50U2l6ZSIsImR4IiwiZHkiLCJ0bHgiLCJ0bHkiLCJkZXN0cm95Iiwic2V0WCIsInNldFkiLCJzZXRaIiwiT3J0aG9ncmFwaGljQ2FtZXJhIiwiUGVyc3BlY3RpdmVDYW1lcmEiLCJQbHVnaW5DYWNoZSIsIkNhbWVyYU1hbmFnZXIiLCJzeXN0ZW1zIiwiY2FtZXJhcyIsImJvb3QiLCJldmVudEVtaXR0ZXIiLCJzaHV0ZG93biIsImZpZWxkT2ZWaWV3IiwiYWRkUGVyc3BlY3RpdmVDYW1lcmEiLCJhZGRPcnRob2dyYXBoaWNDYW1lcmEiLCJnYW1lIiwiY2FtZXJhIiwiZ2V0Q2FtZXJhIiwicmVtb3ZlQ2FtZXJhIiwiY2FtZXJhSW5kZXgiLCJyZW1vdmVBbGwiLCJtYWluIiwidGltZXN0ZXAiLCJyZWdpc3RlciIsIkV4dGVuZHMiLCJfem9vbSIsInNldFRvT3J0aG8iLCJ5RG93biIsInpvb20iLCJvcnRobyIsInNldEZPViIsImFzcGVjdCIsInBlcnNwZWN0aXZlIiwiR2FtZU9iamVjdCIsIlNwcml0ZSIsInRleHR1cmUiLCJhZGp1c3RTY2FsZVgiLCJhZGp1c3RTY2FsZVkiLCJfdmlzaWJsZSIsInNldFZpc2libGUiLCJzY2FsZVgiLCJzY2FsZVkiLCJzZXREZXB0aCIsIkJ1aWxkR2FtZU9iamVjdCIsIkJ1aWxkR2FtZU9iamVjdEFuaW1hdGlvbiIsIkdhbWVPYmplY3RDcmVhdG9yIiwiR2V0QWR2YW5jZWRWYWx1ZSIsImFkZFRvU2NlbmUiLCJzcHJpdGUiLCJwbGFjZW1lbnRJRCIsInZpZGVvIiwic2hvd24iLCJBZEluc3RhbmNlIiwiRGF0YU1hbmFnZXIiLCJMZWFkZXJib2FyZCIsIlByb2R1Y3QiLCJQdXJjaGFzZSIsIkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luIiwic2V0RGF0YUhhbmRsZXIiLCJjaGFuZ2VEYXRhSGFuZGxlciIsImhhc0xvYWRlZCIsImRhdGFMb2NrZWQiLCJzdXBwb3J0ZWRBUElzIiwiZW50cnlQb2ludCIsImVudHJ5UG9pbnREYXRhIiwiY29udGV4dElEIiwiY29udGV4dFR5cGUiLCJwbGF0Zm9ybSIsInBsYXllcklEIiwicGxheWVyTmFtZSIsInBsYXllclBob3RvVVJMIiwicGxheWVyQ2FuU3Vic2NyaWJlQm90IiwicGF5bWVudHNSZWFkeSIsImNhdGFsb2ciLCJwdXJjaGFzZXMiLCJsZWFkZXJib2FyZHMiLCJhZHMiLCJfdGhpcyIsIkZCSW5zdGFudCIsInBsYXllciIsInNldERhdGFBc3luYyIsInNob3dMb2FkUHJvZ3Jlc3MiLCJzZXRMb2FkaW5nUHJvZ3Jlc3MiLCJzdGFydEdhbWVBc3luYyIsImdhbWVTdGFydGVkSGFuZGxlciIsImdhbWVTdGFydGVkIiwiQVBJcyIsImdldFN1cHBvcnRlZEFQSXMiLCJzdXBwb3J0ZWQiLCJkb3RUb1VwcGVyIiwiYXBpIiwiZ2V0SUQiLCJnZXRUeXBlIiwiZ2V0UGxhdGZvcm0iLCJnZXRTREtWZXJzaW9uIiwiZ2V0UGxheWVySUQiLCJnZXRQbGF5ZXJOYW1lIiwiZ2V0UGxheWVyUGhvdG9VUkwiLCJvblBhdXNlIiwiZ2V0RW50cnlQb2ludEFzeW5jIiwiZW50cnlwb2ludCIsImdldEVudHJ5UG9pbnREYXRhIiwicGF5bWVudHNQdXJjaGFzZUFzeW5jIiwicGF5bWVudHMiLCJvblJlYWR5IiwiY2hlY2tBUEkiLCJjb250ZXh0R2V0SUQiLCJjb250ZXh0R2V0VHlwZSIsInBsYXllckdldElEIiwicGxheWVyR2V0TmFtZSIsImdldE5hbWUiLCJwbGF5ZXJHZXRQaG90byIsImdldFBob3RvIiwibG9hZFBsYXllclBob3RvIiwic2V0Q09SUyIsImNhblN1YnNjcmliZUJvdCIsInBsYXllckNhblN1YnNjcmliZUJvdEFzeW5jIiwiY2FuU3Vic2NyaWJlQm90QXN5bmMiLCJzdWJzY3JpYmVCb3QiLCJzdWJzY3JpYmVCb3RBc3luYyIsImdldERhdGFBc3luYyIsInNhdmVEYXRhIiwiZmx1c2hEYXRhIiwiZmx1c2hEYXRhQXN5bmMiLCJnZXRTdGF0cyIsImdldFN0YXRzQXN5bmMiLCJzYXZlU3RhdHMiLCJzZXRTdGF0c0FzeW5jIiwiaW5jU3RhdHMiLCJpbmNyZW1lbnRTdGF0c0FzeW5jIiwic3RhdHMiLCJzYXZlU2Vzc2lvbiIsInNldFNlc3Npb25EYXRhIiwib3BlblNoYXJlIiwic2Vzc2lvbkRhdGEiLCJfc2hhcmUiLCJvcGVuSW52aXRlIiwib3BlblJlcXVlc3QiLCJvcGVuQ2hhbGxlbmdlIiwiaW50ZW50IiwiaW1hZ2VEYXRhIiwidGV4dHVyZXMiLCJnZXRCYXNlNjQiLCJwYXlsb2FkIiwic2hhcmVBc3luYyIsImlzU2l6ZUJldHdlZW4iLCJzd2l0Y2hDb250ZXh0Iiwic3dpdGNoQXN5bmMiLCJjaG9vc2VDb250ZXh0IiwiY2hvb3NlQXN5bmMiLCJjcmVhdGVDb250ZXh0IiwiY3JlYXRlQXN5bmMiLCJnZXRQbGF5ZXJzIiwiZ2V0Q29ubmVjdGVkUGxheWVyc0FzeW5jIiwicGxheWVycyIsImdldENhdGFsb2ciLCJnZXRDYXRhbG9nQXN5bmMiLCJpdGVtIiwiZ2V0UHJvZHVjdCIsInByb2R1Y3RJRCIsInB1cmNoYXNlIiwiZGV2ZWxvcGVyUGF5bG9hZCIsInB1cmNoYXNlQXN5bmMiLCJnZXRQdXJjaGFzZXMiLCJnZXRQdXJjaGFzZXNBc3luYyIsImNvbnN1bWVQdXJjaGFzZSIsInB1cmNoYXNlVG9rZW4iLCJjb25zdW1lUHVyY2hhc2VBc3luYyIsImN0YSIsInVwZGF0ZURhdGEiLCJfdXBkYXRlIiwidXBkYXRlTGVhZGVyYm9hcmQiLCJhY3Rpb24iLCJzdHJhdGVneSIsIm5vdGlmaWNhdGlvbiIsInVwZGF0ZUFzeW5jIiwic3dpdGNoR2FtZSIsImFwcElEIiwic3dpdGNoR2FtZUFzeW5jIiwiY3JlYXRlU2hvcnRjdXQiLCJjYW5DcmVhdGVTaG9ydGN1dEFzeW5jIiwiY2FuQ3JlYXRlU2hvcnRjdXQiLCJjcmVhdGVTaG9ydGN1dEFzeW5jIiwicXVpdCIsImxvZ0V2ZW50IiwicHJlbG9hZEFkcyIsImdldEludGVyc3RpdGlhbEFkQXN5bmMiLCJpbnRlcnN0aXRpYWwiLCJsb2FkQXN5bmMiLCJhZCIsInByZWxvYWRWaWRlb0FkcyIsImdldFJld2FyZGVkVmlkZW9Bc3luYyIsInJld2FyZCIsInNob3dBZCIsInNob3dBc3luYyIsInNob3dWaWRlbyIsIm1hdGNoUGxheWVyIiwibWF0Y2hUYWciLCJzd2l0Y2hJbW1lZGlhdGVseSIsIm1hdGNoUGxheWVyQXN5bmMiLCJnZXRMZWFkZXJib2FyZCIsImdldExlYWRlcmJvYXJkQXN5bmMiLCJsZWFkZXJib2FyZCIsIkxlYWRlcmJvYXJkU2NvcmUiLCJwbHVnaW4iLCJyZWYiLCJnZXRDb250ZXh0SUQiLCJlbnRyeUNvdW50IiwicGxheWVyU2NvcmUiLCJzY29yZXMiLCJnZXRFbnRyeUNvdW50IiwiZ2V0RW50cnlDb3VudEFzeW5jIiwic2V0U2NvcmUiLCJzZXRTY29yZUFzeW5jIiwiZ2V0UGxheWVyU2NvcmUiLCJnZXRQbGF5ZXJFbnRyeUFzeW5jIiwiZ2V0U2NvcmVzIiwiZ2V0RW50cmllc0FzeW5jIiwiZ2V0Q29ubmVjdGVkU2NvcmVzIiwiZ2V0Q29ubmVjdGVkUGxheWVyRW50cmllc0FzeW5jIiwiZ2V0U2NvcmUiLCJzY29yZUZvcm1hdHRlZCIsImdldEZvcm1hdHRlZFNjb3JlIiwidGltZXN0YW1wIiwiZ2V0VGltZXN0YW1wIiwicmFuayIsImdldFJhbmsiLCJnZXRFeHRyYURhdGEiLCJnZXRQbGF5ZXIiLCJHZXRGYXN0VmFsdWUiLCJ0aXRsZSIsImltYWdlVVJJIiwicHJpY2UiLCJwcmljZUN1cnJlbmN5Q29kZSIsInBheW1lbnRJRCIsInB1cmNoYXNlVGltZSIsInNpZ25lZFJlcXVlc3QiLCJRdWlja1NldCIsIlByb3BlcnR5VmFsdWVJbmMiLCJBbGlnbkluIiwiQ09OU1QiLCJ0ZW1wWm9uZSIsInF1ZXVlRGVwdGhTb3J0Iiwid2lkdGhTZXQiLCJoZWlnaHRTZXQiLCJjZWxsV2lkdGgiLCJjZWxsSGVpZ2h0IiwiVE9QX0xFRlQiLCJzZXRTaXplIiwic3RlcFgiLCJzdGVwWSIsImNpcmNsZSIsInN0YXJ0QW5nbGUiLCJlbmRBbmdsZSIsImFuZ2xlIiwiYW5nbGVTdGVwIiwic2luIiwiZWxsaXBzZSIsIkdldFBvaW50cyIsImxpbmUiLCJwb2ludHMiLCJNYXJjaGluZ0FudHMiLCJSb3RhdGVMZWZ0IiwiUm90YXRlUmlnaHQiLCJCcmVzZW5oYW1Qb2ludHMiLCJ0cmlhbmdsZSIsInN0ZXBSYXRlIiwieTIiLCJ4MyIsInkzIiwic3RhcnRGcmFtZSIsImFuaW1zIiwicGxheSIsIlJhbmRvbSIsIlJvdGF0ZUFyb3VuZERpc3RhbmNlIiwiRGlzdGFuY2VCZXR3ZWVuIiwiTWF0aFJvdGF0ZUFyb3VuZERpc3RhbmNlIiwiZGlzdGFuY2UiLCJQcm9wZXJ0eVZhbHVlU2V0IiwiaGl0QXJlYSIsImhpdEFyZWFDYWxsYmFjayIsInNldEludGVyYWN0aXZlIiwib3JpZ2luWCIsIm9yaWdpblkiLCJzY3JvbGxGYWN0b3JYIiwic2Nyb2xsRmFjdG9yWSIsInRvcExlZnQiLCJ0b3BSaWdodCIsImJvdHRvbUxlZnQiLCJib3R0b21SaWdodCIsInNldFRpbnQiLCJBcnJheVNodWZmbGUiLCJNYXRoU21vb3RoU3RlcCIsIk1hdGhTbW9vdGhlclN0ZXAiLCJXcmFwIiwiYm90dG9tIiwiQWxpZ25UbyIsIkFuZ2xlIiwiQ2FsbCIsIkdldEZpcnN0IiwiR2V0TGFzdCIsIkdyaWRBbGlnbiIsIkluY0FscGhhIiwiSW5jWCIsIkluY1hZIiwiSW5jWSIsIlBsYWNlT25DaXJjbGUiLCJQbGFjZU9uRWxsaXBzZSIsIlBsYWNlT25MaW5lIiwiUGxhY2VPblJlY3RhbmdsZSIsIlBsYWNlT25UcmlhbmdsZSIsIlBsYXlBbmltYXRpb24iLCJSYW5kb21DaXJjbGUiLCJSYW5kb21FbGxpcHNlIiwiUmFuZG9tTGluZSIsIlJhbmRvbVJlY3RhbmdsZSIsIlJhbmRvbVRyaWFuZ2xlIiwiUm90YXRlIiwiUm90YXRlQXJvdW5kIiwiU2NhbGVYIiwiU2NhbGVYWSIsIlNjYWxlWSIsIlNldEFscGhhIiwiU2V0QmxlbmRNb2RlIiwiU2V0RGVwdGgiLCJTZXRIaXRBcmVhIiwiU2V0T3JpZ2luIiwiU2V0Um90YXRpb24iLCJTZXRTY2FsZSIsIlNldFNjYWxlWCIsIlNldFNjYWxlWSIsIlNldFNjcm9sbEZhY3RvciIsIlNldFNjcm9sbEZhY3RvclgiLCJTZXRTY3JvbGxGYWN0b3JZIiwiU2V0VGludCIsIlNldFZpc2libGUiLCJTZXRYIiwiU2V0WFkiLCJTZXRZIiwiU2hpZnRQb3NpdGlvbiIsIlNodWZmbGUiLCJTbW9vdGhlclN0ZXAiLCJTbW9vdGhTdGVwIiwiU3ByZWFkIiwiVG9nZ2xlVmlzaWJsZSIsIldyYXBJblJlY3RhbmdsZSIsIkNsYW1wIiwiRmluZENsb3Nlc3RJblNvcnRlZCIsIkZyYW1lIiwiR2V0VmFsdWUiLCJtYW5hZ2VyIiwiZnJhbWVzIiwiZ2V0RnJhbWVzIiwidGV4dHVyZU1hbmFnZXIiLCJmcmFtZVJhdGUiLCJtc1BlckZyYW1lIiwic2tpcE1pc3NlZEZyYW1lcyIsInJlcGVhdERlbGF5IiwieW95byIsInNob3dPblN0YXJ0IiwiaGlkZU9uQ29tcGxldGUiLCJwYXVzZWQiLCJQQVVTRV9BTEwiLCJwYXVzZSIsIlJFU1VNRV9BTEwiLCJyZXN1bWUiLCJhZGRGcmFtZSIsImFkZEZyYW1lQXQiLCJuZXdGcmFtZXMiLCJwcmUiLCJ1cGRhdGVGcmFtZVNlcXVlbmNlIiwiY2hlY2tGcmFtZSIsImNvbXBsZXRlQW5pbWF0aW9uIiwiY29tcG9uZW50IiwiZ2V0Rmlyc3RUaWNrIiwiaW5jbHVkZURlbGF5IiwiY3VycmVudEZyYW1lIiwiX2RlbGF5IiwiZ2V0RnJhbWVBdCIsImRlZmF1bHRUZXh0dXJlS2V5IiwiYW5pbWF0aW9uRnJhbWUiLCJ0ZXh0dXJlS2V5IiwiZnJhbWVLZXlzIiwiZ2V0RnJhbWVOYW1lcyIsInRleHR1cmVGcmFtZSIsImdldEZyYW1lIiwiaXNGaXJzdCIsIm5leHRGcmFtZSIsInByZXZGcmFtZSIsImlzTGFzdCIsImdldE5leHRUaWNrIiwiY3VycmVudEFuaW0iLCJfcmVwZWF0IiwiX3JlcGVhdERlbGF5IiwiX3lveW8iLCJnZXRMYXN0RnJhbWUiLCJ1cGRhdGVGcmFtZSIsImdldEZyYW1lQnlQcm9ncmVzcyIsImhhbmRsZVlveW9GcmFtZSIsInJlcGVhdENvdW50ZXIiLCJfcmV2ZXJzZSIsInJlcGVhdEFuaW1hdGlvbiIsInVwZGF0ZUFuZEdldE5leHRUaWNrIiwiaXNSZXZlcnNlIiwicGVuZGluZ1JlcGVhdCIsInByZXZpb3VzRnJhbWUiLCJyZW1vdmVGcmFtZSIsInJlbW92ZUZyYW1lQXQiLCJfcGVuZGluZ1N0b3AiLCJpc1BsYXlpbmciLCJBTklNQVRJT05fUkVQRUFUIiwiU1BSSVRFX0FOSU1BVElPTl9LRVlfUkVQRUFUIiwiU1BSSVRFX0FOSU1BVElPTl9SRVBFQVQiLCJzZXRGcmFtZSIsIkFuaW1hdGlvbkZyYW1lIiwiQ3VzdG9tTWFwIiwiR2FtZUV2ZW50cyIsIlBhZCIsIkFuaW1hdGlvbk1hbmFnZXIiLCJnbG9iYWxUaW1lU2NhbGUiLCJCT09UIiwiREVTVFJPWSIsIkFERF9BTklNQVRJT04iLCJmcm9tSlNPTiIsImNsZWFyQ3VycmVudEFuaW1hdGlvbnMiLCJnZW5lcmF0ZUZyYW1lTmFtZXMiLCJ6ZXJvUGFkIiwiZ2VuZXJhdGVGcmFtZU51bWJlcnMiLCJlbmRGcmFtZSIsImZpcnN0RnJhbWUiLCJmcmFtZVRvdGFsIiwicGF1c2VBbGwiLCJSRU1PVkVfQU5JTUFUSU9OIiwicmVzdW1lQWxsIiwic3RhZ2dlclBsYXkiLCJzdGFnZ2VyIiwiZGVsYXllZFBsYXkiLCJhbmltYXRpb25LZXkiLCJBTklNQVRJT05fQ09NUExFVEUiLCJBTklNQVRJT05fUkVTVEFSVCIsIkFOSU1BVElPTl9TVEFSVCIsIlNQUklURV9BTklNQVRJT05fQ09NUExFVEUiLCJTUFJJVEVfQU5JTUFUSU9OX0tFWV9DT01QTEVURSIsIlNQUklURV9BTklNQVRJT05fS0VZX1JFU1RBUlQiLCJTUFJJVEVfQU5JTUFUSU9OX0tFWV9TVEFSVCIsIlNQUklURV9BTklNQVRJT05fS0VZX1VQREFURSIsIlNQUklURV9BTklNQVRJT05fUkVTVEFSVCIsIlNQUklURV9BTklNQVRJT05fU1RBUlQiLCJTUFJJVEVfQU5JTUFUSU9OX1VQREFURSIsIkJhc2VDYWNoZSIsIkFERCIsIlJFTU9WRSIsImdldEtleXMiLCJDYWNoZU1hbmFnZXIiLCJiaXRtYXBGb250IiwicGh5c2ljcyIsInNoYWRlciIsImF1ZGlvIiwidGlsZW1hcCIsImN1c3RvbSIsImFkZEN1c3RvbSIsIkNvbXBvbmVudHMiLCJEZWdUb1JhZCIsIlJlY3RhbmdsZSIsIlRyYW5zZm9ybU1hdHJpeCIsIlZhbHVlVG9Db2xvciIsIkJhc2VDYW1lcmEiLCJNaXhpbnMiLCJBbHBoYSIsIlZpc2libGUiLCJzY2VuZU1hbmFnZXIiLCJzY2FsZU1hbmFnZXIiLCJjYW1lcmFNYW5hZ2VyIiwicmVzb2x1dGlvbiIsInJvdW5kUGl4ZWxzIiwidXNlQm91bmRzIiwid29ybGRWaWV3IiwiZGlydHkiLCJfeCIsIl95IiwiX2N4IiwiX2N5IiwiX2N3IiwiX2NoIiwiX3dpZHRoIiwiX2hlaWdodCIsIl9ib3VuZHMiLCJfc2Nyb2xsWCIsIl9zY3JvbGxZIiwiX3JvdGF0aW9uIiwibWF0cml4IiwidHJhbnNwYXJlbnQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJkaXNhYmxlQ3VsbCIsImN1bGxlZE9iamVjdHMiLCJtaWRQb2ludCIsIl9jdXN0b21WaWV3cG9ydCIsIm1hc2siLCJfbWFza0NhbWVyYSIsInNldE9yaWdpbiIsImdldFNjcm9sbCIsImNsYW1wWCIsImNsYW1wWSIsImNlbnRlck9uWCIsInNjcm9sbFgiLCJjZW50ZXJPblkiLCJzY3JvbGxZIiwiY2VudGVyT24iLCJjZW50ZXJUb0JvdW5kcyIsImJvdW5kcyIsImNlbnRlclgiLCJjZW50ZXJZIiwiY2VudGVyVG9TaXplIiwiY3VsbCIsInJlbmRlcmFibGVPYmplY3RzIiwiY2FtZXJhTWF0cml4IiwibXZhIiwibXZiIiwibXZjIiwibXZkIiwiZGV0ZXJtaW5hbnQiLCJtdmUiLCJtdmYiLCJjYW1lcmFXIiwiY2FtZXJhSCIsInBhcmVudENvbnRhaW5lciIsIm9iamVjdFciLCJvYmplY3RIIiwib2JqZWN0WCIsIm9iamVjdFkiLCJ0eCIsInR5IiwidHciLCJjdWxsVG9wIiwiY3VsbEJvdHRvbSIsImN1bGxMZWZ0IiwiZ2V0V29ybGRQb2ludCIsImltYSIsImltYiIsImltYyIsImltZCIsImltZSIsImltZiIsInJvdGF0aW9uIiwic3giLCJzeSIsImlnbm9yZSIsImlzUGFyZW50IiwiY2FtZXJhRmlsdGVyIiwicHJlUmVuZGVyIiwiaGFsZldpZHRoIiwiaGFsZkhlaWdodCIsIm1pZFgiLCJtaWRZIiwiZGlzcGxheVdpZHRoIiwiZGlzcGxheUhlaWdodCIsInNldFRvIiwiYXBwbHlJVFJTIiwiZHciLCJidyIsImRoIiwiYmgiLCJyZW1vdmVCb3VuZHMiLCJzZXRFbXB0eSIsInNldEFuZ2xlIiwic2V0QmFja2dyb3VuZENvbG9yIiwiYWxwaGEiLCJzZXRCb3VuZHMiLCJnZXRCb3VuZHMiLCJzZXROYW1lIiwic2V0Um90YXRpb24iLCJzZXRSb3VuZFBpeGVscyIsImN1c3RvbVZpZXdwb3J0cyIsInVwZGF0ZVN5c3RlbSIsInNldFNjcm9sbCIsInNldFpvb20iLCJzZXRNYXNrIiwiZml4ZWRQb3NpdGlvbiIsImNsZWFyTWFzayIsImRlc3Ryb3lNYXNrIiwicmdiYSIsIkNhbnZhc1Bvb2wiLCJDZW50ZXJPbiIsIkVmZmVjdHMiLCJMaW5lYXIiLCJGbGlwIiwiVGludCIsImlucHV0RW5hYmxlZCIsImZhZGVFZmZlY3QiLCJGYWRlIiwiZmxhc2hFZmZlY3QiLCJGbGFzaCIsInNoYWtlRWZmZWN0IiwiU2hha2UiLCJwYW5FZmZlY3QiLCJQYW4iLCJyb3RhdGVUb0VmZmVjdCIsIlJvdGF0ZVRvIiwiem9vbUVmZmVjdCIsIlpvb20iLCJsZXJwIiwiZm9sbG93T2Zmc2V0IiwiZGVhZHpvbmUiLCJfZm9sbG93IiwicmVuZGVyVG9UZXh0dXJlIiwicmVuZGVyVG9HYW1lIiwiY2FudmFzIiwiZ2xUZXh0dXJlIiwiZnJhbWVidWZmZXIiLCJwaXBlbGluZSIsInNldFJlbmRlclRvVGV4dHVyZSIsInJlbmRlcmVyIiwiZ2wiLCJjcmVhdGVUZXh0dXJlRnJvbVNvdXJjZSIsImNyZWF0ZUZyYW1lYnVmZmVyIiwiY3JlYXRlMkQiLCJnZXRDb250ZXh0Iiwic2V0UGlwZWxpbmUiLCJoYXNQaXBlbGluZSIsImdldFBpcGVsaW5lIiwiY2xlYXJSZW5kZXJUb1RleHR1cmUiLCJkZWxldGVGcmFtZWJ1ZmZlciIsImRlbGV0ZVRleHR1cmUiLCJzZXREZWFkem9uZSIsImZ5IiwicmVkIiwiZ3JlZW4iLCJibHVlIiwiZmFkZUZyb20iLCJmb3JjZSIsImZhZGUiLCJmbGFzaCIsInNoYWtlIiwiaW50ZW5zaXR5IiwicGFuIiwiZWFzZSIsInJvdGF0ZVRvIiwic2hvcnRlc3RQYXRoIiwiem9vbVRvIiwiZm9sbG93IiwiaXNSdW5uaW5nIiwic2V0TGVycCIsInNldEZvbGxvd09mZnNldCIsInN0YXJ0Rm9sbG93IiwibGVycFgiLCJsZXJwWSIsInN0b3BGb2xsb3ciLCJyZXNldEZYIiwiUmVjdGFuZ2xlQ29udGFpbnMiLCJTY2FsZUV2ZW50cyIsIlNjZW5lRXZlbnRzIiwiU1RBUlQiLCJSRVNJWkUiLCJvblJlc2l6ZSIsIlVQREFURSIsIlNIVVRET1dOIiwibWFrZU1haW4iLCJnZXROZXh0SUQiLCJhZGRFeGlzdGluZyIsInRlc3RJRCIsImdldFRvdGFsIiwiaXNWaXNpYmxlIiwiZ2FtZVdpZHRoIiwiZ2FtZUhlaWdodCIsImNhbWVyYUNvbmZpZyIsImJvdW5kc0NvbmZpZyIsImJ3aWR0aCIsImJoZWlnaHQiLCJnZXRDYW1lcmFzQmVsb3dQb2ludGVyIiwicnVuRGVzdHJveSIsInJlbmRlciIsImludGVycG9sYXRpb24iLCJyZXNldEFsbCIsImdhbWVTaXplIiwiYmFzZVNpemUiLCJkaXNwbGF5U2l6ZSIsInByZXZpb3VzV2lkdGgiLCJwcmV2aW91c0hlaWdodCIsImNhbSIsInJlc2l6ZSIsImlzQ29tcGxldGUiLCJfZWxhcHNlZCIsIl9vblVwZGF0ZSIsIl9vblVwZGF0ZVNjb3BlIiwiTUlOX1ZBTFVFIiwiZXZlbnROYW1lIiwiRkFERV9PVVRfU1RBUlQiLCJGQURFX0lOX1NUQVJUIiwiZWZmZWN0Q29tcGxldGUiLCJwb3N0UmVuZGVyQ2FudmFzIiwiY3R4IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJwb3N0UmVuZGVyV2ViR0wiLCJnZXRUaW50RnVuY3Rpb24iLCJkcmF3RmlsbFJlY3QiLCJGQURFX09VVF9DT01QTEVURSIsIkZBREVfSU5fQ09NUExFVEUiLCJGTEFTSF9TVEFSVCIsIkZMQVNIX0NPTVBMRVRFIiwiRWFzZU1hcCIsImRlc3RpbmF0aW9uIiwiUEFOX1NUQVJUIiwiUEFOX0NPTVBMRVRFIiwidG1wRGVzdGluYXRpb24iLCJtYXhSYWQiLCJjd0Rpc3QiLCJhY3dEaXN0IiwiUk9UQVRFX1NUQVJUIiwiUk9UQVRFX0NPTVBMRVRFIiwiX29mZnNldFgiLCJfb2Zmc2V0WSIsIlNIQUtFX1NUQVJUIiwiU0hBS0VfQ09NUExFVEUiLCJaT09NX1NUQVJUIiwiWk9PTV9DT01QTEVURSIsIlBPU1RfUkVOREVSIiwiUFJFX1JFTkRFUiIsIkZpeGVkS2V5Q29udHJvbCIsImRvd24iLCJ6b29tSW4iLCJ6b29tT3V0Iiwiem9vbVNwZWVkIiwic3BlZWRYIiwic3BlZWRZIiwic2V0Q2FtZXJhIiwiaXNEb3duIiwiU21vb3RoZWRLZXlDb250cm9sIiwiYWNjZWxYIiwiYWNjZWxZIiwiYWNjZWwiLCJkcmFnWCIsImRyYWdZIiwiZHJhZyIsIm1heFNwZWVkWCIsIm1heFNwZWVkWSIsIm1heFNwZWVkIiwiX3NwZWVkWCIsIl9zcGVlZFkiLCJDb250cm9scyIsIlNjZW5lMkQiLCJWRVJTSU9OIiwiQmxlbmRNb2RlcyIsIlNjYWxlTW9kZXMiLCJBVVRPIiwiQ0FOVkFTIiwiV0VCR0wiLCJIRUFETEVTUyIsIkZPUkVWRVIiLCJOT05FIiwiVVAiLCJET1dOIiwiTEVGVCIsIlJJR0hUIiwiRGV2aWNlIiwiSXNQbGFpbk9iamVjdCIsIlBoYXNlck1hdGgiLCJEZWZhdWx0UGx1Z2lucyIsIkNvbmZpZyIsInNjYWxlTW9kZSIsImV4cGFuZFBhcmVudCIsImF1dG9Sb3VuZCIsImF1dG9DZW50ZXIiLCJyZXNpemVJbnRlcnZhbCIsImZ1bGxzY3JlZW5UYXJnZXQiLCJtaW5IZWlnaHQiLCJtYXhIZWlnaHQiLCJzY2FsZUNvbmZpZyIsInJlbmRlclR5cGUiLCJjYW52YXNTdHlsZSIsImN1c3RvbUVudmlyb25tZW50Iiwic2NlbmVDb25maWciLCJSTkQiLCJSYW5kb21EYXRhR2VuZXJhdG9yIiwiZ2FtZVRpdGxlIiwiZ2FtZVVSTCIsImdhbWVWZXJzaW9uIiwiYXV0b0ZvY3VzIiwiZG9tQ3JlYXRlQ29udGFpbmVyIiwiZG9tQmVoaW5kQ2FudmFzIiwiaW5wdXRLZXlib2FyZCIsImlucHV0S2V5Ym9hcmRFdmVudFRhcmdldCIsImlucHV0S2V5Ym9hcmRDYXB0dXJlIiwiaW5wdXRNb3VzZSIsImlucHV0TW91c2VFdmVudFRhcmdldCIsImlucHV0TW91c2VDYXB0dXJlIiwiaW5wdXRUb3VjaCIsInRvdWNoIiwiaW5wdXRUb3VjaEV2ZW50VGFyZ2V0IiwiaW5wdXRUb3VjaENhcHR1cmUiLCJpbnB1dEFjdGl2ZVBvaW50ZXJzIiwiaW5wdXRTbW9vdGhGYWN0b3IiLCJpbnB1dFdpbmRvd0V2ZW50cyIsImlucHV0R2FtZXBhZCIsImlucHV0R2FtZXBhZEV2ZW50VGFyZ2V0IiwiZGlzYWJsZUNvbnRleHRNZW51IiwiaGlkZUJhbm5lciIsImhpZGVQaGFzZXIiLCJiYW5uZXJUZXh0Q29sb3IiLCJiYW5uZXJCYWNrZ3JvdW5kQ29sb3IiLCJmcHMiLCJyZW5kZXJDb25maWciLCJhbnRpYWxpYXMiLCJhbnRpYWxpYXNHTCIsIm1pcG1hcEZpbHRlciIsImRlc3luY2hyb25pemVkIiwicGl4ZWxBcnQiLCJjbGVhckJlZm9yZVJlbmRlciIsInByZW11bHRpcGxpZWRBbHBoYSIsImZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQiLCJwb3dlclByZWZlcmVuY2UiLCJiYXRjaFNpemUiLCJtYXhMaWdodHMiLCJiZ2MiLCJwcmVCb290IiwicG9zdEJvb3QiLCJkZWZhdWx0UGh5c2ljc1N5c3RlbSIsImxvYWRlckJhc2VVUkwiLCJsb2FkZXJQYXRoIiwibG9hZGVyTWF4UGFyYWxsZWxEb3dubG9hZHMiLCJsb2FkZXJDcm9zc09yaWdpbiIsImxvYWRlclJlc3BvbnNlVHlwZSIsImxvYWRlckFzeW5jIiwibG9hZGVyVXNlciIsImxvYWRlclBhc3N3b3JkIiwibG9hZGVyVGltZW91dCIsImxvYWRlcldpdGhDcmVkZW50aWFscyIsImluc3RhbGxHbG9iYWxQbHVnaW5zIiwiaW5zdGFsbFNjZW5lUGx1Z2lucyIsInBsdWdpbnMiLCJkZWZhdWx0UGx1Z2lucyIsIkRlZmF1bHRTY2VuZSIsImRlZmF1bHRNZXJnZSIsInBuZ1ByZWZpeCIsImRlZmF1bHRJbWFnZSIsIm1pc3NpbmdJbWFnZSIsIkZPUkNFX1dFQkdMIiwiRk9SQ0VfQ0FOVkFTIiwiQ2FudmFzSW50ZXJwb2xhdGlvbiIsIkZlYXR1cmVzIiwid2ViR0wiLCJkaXNhYmxlU21vb3RoaW5nIiwiQ2FudmFzUmVuZGVyZXIiLCJXZWJHTFJlbmRlcmVyIiwic2V0Q3Jpc3AiLCJnYW1lQ29udGV4dCIsImF1ZGlvVHlwZSIsImF1ZGlvQ29uZmlnIiwiZGV2aWNlQXVkaW8iLCJkZXZpY2UiLCJ3ZWJBdWRpbyIsImRpc2FibGVXZWJBdWRpbyIsIm5vQXVkaW8iLCJhdWRpb0RhdGEiLCJicm93c2VyIiwiaWUiLCJsYXN0Q29sb3IiLCJBZGRUb0RPTSIsIkNyZWF0ZURPTUNvbnRhaW5lciIsIkNyZWF0ZVJlbmRlcmVyIiwiRGVidWdIZWFkZXIiLCJET01Db250ZW50TG9hZGVkIiwiSW5wdXRNYW5hZ2VyIiwiUGx1Z2luTWFuYWdlciIsIlNjYWxlTWFuYWdlciIsIlNjZW5lTWFuYWdlciIsIlRleHR1cmVFdmVudHMiLCJUZXh0dXJlTWFuYWdlciIsIlRpbWVTdGVwIiwiVmlzaWJpbGl0eUhhbmRsZXIiLCJTb3VuZE1hbmFnZXJDcmVhdG9yIiwiR2FtZSIsImRvbUNvbnRhaW5lciIsImlzQm9vdGVkIiwicmVnaXN0cnkiLCJzb3VuZCIsImZhY2Vib29rIiwicGVuZGluZ0Rlc3Ryb3kiLCJyZW1vdmVDYW52YXMiLCJub1JldHVybiIsImhhc0NvcmUiLCJSRUFEWSIsInRleHR1cmVzUmVhZHkiLCJoZWFkbGVzc1N0ZXAiLCJvbkhpZGRlbiIsIlZJU0lCTEUiLCJvblZpc2libGUiLCJCTFVSIiwib25CbHVyIiwiRk9DVVMiLCJvbkZvY3VzIiwiUFJFX1NURVAiLCJTVEVQIiwiUE9TVF9TVEVQIiwicG9zdFJlbmRlciIsIlBBVVNFIiwiUkVTVU1FIiwiUmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwicmFmIiwic3RhcnRlZCIsInJ1bm5pbmciLCJtaW5GcHMiLCJ0YXJnZXRGcHMiLCJfbWluIiwiX3RhcmdldCIsImFjdHVhbEZwcyIsIm5leHRGcHNVcGRhdGUiLCJmcmFtZXNUaGlzU2Vjb25kIiwiZm9yY2VTZXRUaW1lT3V0IiwibGFzdFRpbWUiLCJpbkZvY3VzIiwiX3BhdXNlVGltZSIsIl9jb29sRG93biIsImRlbHRhSW5kZXgiLCJkZWx0YUhpc3RvcnkiLCJkZWx0YVNtb290aGluZ01heCIsInBhbmljTWF4IiwicmF3RGVsdGEiLCJzbW9vdGhTdGVwIiwicmVzZXREZWx0YSIsInBlcmZvcm1hbmNlIiwiaGlzdG9yeSIsImR0IiwiYXZnIiwic2xlZXAiLCJ3YWtlIiwic2VhbWxlc3MiLCJ1c2VSQUYiLCJnZXREdXJhdGlvbiIsImdldER1cmF0aW9uTVMiLCJoaWRkZW5WYXIiLCJvbmJsdXIiLCJvbmZvY3VzIiwiQ09OVEVYVF9MT1NUIiwiQ09OVEVYVF9SRVNUT1JFRCIsIkFybmUxNiIsInBhbGV0dGUiLCJwaXhlbFdpZHRoIiwicGl4ZWxIZWlnaHQiLCJyZXNpemVDYW52YXMiLCJjbGVhckNhbnZhcyIsImNsZWFyUmVjdCIsInJvdyIsIkdlbmVyYXRlVGV4dHVyZSIsIlBhbGV0dGVzIiwiQVJORTE2IiwiQzY0IiwiQ0dBIiwiSk1QIiwiTVNYIiwiQ3ViaWNCZXppZXIiLCJDdXJ2ZSIsIkN1YmljQmV6aWVyQ3VydmUiLCJwMCIsImdldFN0YXJ0UG9pbnQiLCJnZXRSZXNvbHV0aW9uIiwiZGl2aXNpb25zIiwiZ2V0UG9pbnQiLCJkcmF3IiwiZ3JhcGhpY3MiLCJwb2ludHNUb3RhbCIsImdldFBvaW50cyIsImJlZ2luUGF0aCIsIm1vdmVUbyIsImxpbmVUbyIsInN0cm9rZVBhdGgiLCJGcm9tUG9pbnRzIiwiZGVmYXVsdERpdmlzaW9ucyIsImFyY0xlbmd0aERpdmlzaW9ucyIsImNhY2hlQXJjTGVuZ3RocyIsIm5lZWRzVXBkYXRlIiwiX3RtcFZlYzJBIiwiX3RtcFZlYzJCIiwic3Ryb2tlUG9pbnRzIiwiYWNjdXJhY3kiLCJnZXRMZW5ndGgiLCJzcGFjZWQiLCJnZXRTcGFjZWRQb2ludHMiLCJnZXREaXN0YW5jZVBvaW50cyIsImdldEVuZFBvaW50IiwiZ2V0UG9pbnRBdCIsImxlbmd0aHMiLCJnZXRMZW5ndGhzIiwiZ2V0VXRvVG1hcHBpbmciLCJnZXRSYW5kb21Qb2ludCIsImdldFRhbmdlbnQiLCJ0MSIsInQyIiwiZ2V0VGFuZ2VudEF0IiwiZ2V0VEZyb21EaXN0YW5jZSIsInRhcmdldEFyY0xlbmd0aCIsImFyY0xlbmd0aHMiLCJpbCIsImNvbXBhcmlzb24iLCJsZW5ndGhCZWZvcmUiLCJ1cGRhdGVBcmNMZW5ndGhzIiwiUmFkVG9EZWciLCJFbGxpcHNlQ3VydmUiLCJ4UmFkaXVzIiwieVJhZGl1cyIsIl94UmFkaXVzIiwiX3lSYWRpdXMiLCJfc3RhcnRBbmdsZSIsIl9lbmRBbmdsZSIsIl9jbG9ja3dpc2UiLCJ0d29QaSIsImRlbHRhQW5nbGUiLCJzYW1lUG9pbnRzIiwic2V0WFJhZGl1cyIsInNldFlSYWRpdXMiLCJzZXRXaWR0aCIsInNldEhlaWdodCIsInNldFN0YXJ0QW5nbGUiLCJzZXRFbmRBbmdsZSIsInNldENsb2Nrd2lzZSIsInRtcFZlYzIiLCJMaW5lQ3VydmUiLCJsaW5lTGVuZ3RoIiwibGluZUJldHdlZW4iLCJRdWFkcmF0aWNCZXppZXJJbnRlcnBvbGF0aW9uIiwiUXVhZHJhdGljQmV6aWVyIiwiQ2F0bXVsbFJvbSIsIlNwbGluZUN1cnZlIiwiYWRkUG9pbnRzIiwiYWRkUG9pbnQiLCJpbnRQb2ludCIsIndlaWdodCIsIlBhdGgiLCJFbGxpcHNlIiwiTGluZSIsIlNwbGluZSIsIk1vdmVUbyIsIkdhbWVPYmplY3RGYWN0b3J5IiwiTW92ZVBhdGhUbyIsIlF1YWRyYXRpY0JlemllckN1cnZlIiwiTUFUSF9DT05TVCIsImN1cnZlcyIsImNhY2hlTGVuZ3RocyIsImF1dG9DbG9zZSIsInN0YXJ0UG9pbnQiLCJjdXJ2ZSIsImNpcmNsZVRvIiwiZWxsaXBzZVRvIiwiY2xvc2VQYXRoIiwiZW5kUG9pbnQiLCJjdWJpY0JlemllclRvIiwiY29udHJvbDFYIiwiY29udHJvbDFZIiwiY29udHJvbDJYIiwiY29udHJvbDJZIiwicXVhZHJhdGljQmV6aWVyVG8iLCJjb250cm9sWCIsImNvbnRyb2xZIiwibWF4UmlnaHQiLCJtYXhCb3R0b20iLCJnZXRDdXJ2ZUxlbmd0aHMiLCJzdW1zIiwibGVucyIsImN1cnZlTGVuZ3RocyIsInNlZ21lbnRMZW5ndGgiLCJwdHMiLCJzcGxpbmVUbyIsIl9mcm96ZW4iLCJzZXRWYWx1ZSIsInByZXZpb3VzVmFsdWUiLCJDSEFOR0VfREFUQSIsIkNIQU5HRV9EQVRBX0tFWSIsIlNFVF9EQVRBIiwib3ZlcndyaXRlIiwicmVtb3ZlVmFsdWUiLCJSRU1PVkVfREFUQSIsInNldEZyZWV6ZSIsIkRhdGFNYW5hZ2VyUGx1Z2luIiwiQnJvd3NlciIsIkF1ZGlvIiwiZG9sYnkiLCJtNGEiLCJtcDMiLCJvZ2ciLCJvcHVzIiwid2F2Iiwid2VibSIsImF1ZGlvRWxlbWVudCIsImNhblBsYXlUeXBlIiwiZWRnZSIsInNhZmFyaSIsInNhZmFyaVZlcnNpb24iLCJuYXZpZ2F0b3IiLCJtYWpvciIsIm1pbm9yIiwidWEiLCJPUyIsImNocm9tZSIsImNocm9tZVZlcnNpb24iLCJmaXJlZm94IiwiZmlyZWZveFZlcnNpb24iLCJpZVZlcnNpb24iLCJtb2JpbGVTYWZhcmkiLCJzaWxrIiwidHJpZGVudCIsInRyaWRlbnRWZXJzaW9uIiwid2luZG93c1Bob25lIiwiaU9TIiwiJDMiLCJwbmdIZWFkIiwicG5nRW5kIiwibWFnZW50YSIsIkNhbnZhc0ZlYXR1cmVzIiwic3VwcG9ydEludmVyc2VBbHBoYSIsInN1cHBvcnROZXdCbGVuZE1vZGVzIiwiSW1hZ2UiLCJ5ZWxsb3ciLCJnbG9iYWxDb21wb3NpdGVPcGVyYXRpb24iLCJkcmF3SW1hZ2UiLCJnZXRJbWFnZURhdGEiLCJzMSIsInB1dEltYWdlRGF0YSIsInMyIiwiY2hlY2tJbnZlcnNlQWxwaGEiLCJjYW52YXNCaXRCbHRTaGlmdCIsImZpbGVTeXN0ZW0iLCJnZXRVc2VyTWVkaWEiLCJsaXR0bGVFbmRpYW4iLCJsb2NhbFN0b3JhZ2UiLCJwb2ludGVyTG9jayIsInN1cHBvcnQzMmJpdCIsInZpYnJhdGlvbiIsIndvcmtlciIsImdldEl0ZW0iLCJpc1VpbnQ4IiwiY3JlYXRlV2ViR0wiLCJjYW52YXMyRCIsImNyZWF0ZUltYWdlRGF0YSIsInRlc3RXZWJHTCIsIndlYmtpdEdldFVzZXJNZWRpYSIsIm1vekdldFVzZXJNZWRpYSIsIm1zR2V0VXNlck1lZGlhIiwib0dldFVzZXJNZWRpYSIsIndlYmtpdFVSTCIsIm1velVSTCIsIm1zVVJMIiwidmlicmF0ZSIsIndlYmtpdFZpYnJhdGUiLCJtb3pWaWJyYXRlIiwibXNWaWJyYXRlIiwiRnVsbHNjcmVlbiIsImF2YWlsYWJsZSIsImNhbmNlbCIsImtleWJvYXJkIiwicmVxdWVzdCIsInN1ZmZpeDEiLCJzdWZmaXgyIiwiZnMiLCJjZnMiLCJFbGVtZW50IiwiZnVsbHNjcmVlbkVsZW1lbnQiLCJ3ZWJraXRGdWxsc2NyZWVuRWxlbWVudCIsIm1vekZ1bGxTY3JlZW5FbGVtZW50IiwibXNGdWxsc2NyZWVuRWxlbWVudCIsIklucHV0IiwiZ2FtZXBhZHMiLCJtc3BvaW50ZXIiLCJ3aGVlbEV2ZW50IiwibWF4VG91Y2hQb2ludHMiLCJtc1BvaW50ZXJFbmFibGVkIiwicG9pbnRlckVuYWJsZWQiLCJnZXRHYW1lcGFkcyIsImFuZHJvaWQiLCJjaHJvbWVPUyIsImNvcmRvdmEiLCJjcm9zc3dhbGsiLCJkZXNrdG9wIiwiZWplY3RhIiwiZWxlY3Ryb24iLCJpT1NWZXJzaW9uIiwiaVBhZCIsImlQaG9uZSIsImtpbmRsZSIsImxpbnV4IiwibWFjT1MiLCJub2RlV2Via2l0IiwicGl4ZWxSYXRpbyIsIndlYkFwcCIsIndpbmRvd3MiLCJWaWRlbyIsImgyNjQiLCJobHMiLCJtcDQiLCJ2cDkiLCJ2aWRlb0VsZW1lbnQiLCJvcyIsImZlYXR1cmVzIiwiZnVsbHNjcmVlbiIsImNhbnZhc0ZlYXR1cmVzIiwiVE9QX0NFTlRFUiIsIlRPUF9SSUdIVCIsIkxFRlRfVE9QIiwiTEVGVF9DRU5URVIiLCJMRUZUX0JPVFRPTSIsIkNFTlRFUiIsIlJJR0hUX1RPUCIsIlJJR0hUX0NFTlRFUiIsIlJJR0hUX0JPVFRPTSIsIkJPVFRPTV9MRUZUIiwiQk9UVE9NX0NFTlRFUiIsIkJPVFRPTV9SSUdIVCIsIkdldEJvdHRvbSIsIkdldENlbnRlclgiLCJTZXRCb3R0b20iLCJTZXRDZW50ZXJYIiwiYWxpZ25JbiIsIkdldExlZnQiLCJTZXRMZWZ0IiwiR2V0UmlnaHQiLCJTZXRSaWdodCIsIkdldENlbnRlclkiLCJTZXRDZW50ZXJZIiwiQUxJR05fQ09OU1QiLCJBbGlnbkluTWFwIiwiR2V0VG9wIiwiU2V0VG9wIiwiQm90dG9tQ2VudGVyIiwiQm90dG9tTGVmdCIsIkJvdHRvbVJpZ2h0IiwiQ2VudGVyIiwiTGVmdENlbnRlciIsIlJpZ2h0Q2VudGVyIiwiVG9wQ2VudGVyIiwiVG9wTGVmdCIsIlRvcFJpZ2h0IiwiRXh0ZW5kIiwiQWxpZ24iLCJJbiIsIlRvIiwiYWxpZ25UbyIsIkFsaWduVG9NYXAiLCJMZWZ0Qm90dG9tIiwiTGVmdFRvcCIsIlJpZ2h0Qm90dG9tIiwiUmlnaHRUb3AiLCJHZXRPZmZzZXRYIiwiR2V0T2Zmc2V0WSIsIm1zSW50ZXJwb2xhdGlvbk1vZGUiLCJzZXRCaWN1YmljIiwiU21vb3RoaW5nIiwicG9vbCIsIl9kaXNhYmxlQ29udGV4dFNtb290aGluZyIsImNhbnZhc1R5cGUiLCJzZWxmUGFyZW50IiwiZW5hYmxlU21vb3RoaW5nIiwiZnJlZSIsImlzQ2FudmFzIiwiSFRNTENhbnZhc0VsZW1lbnQiLCJnZXRQcmVmaXgiLCJlbmFibGUiLCJ2ZW5kb3JzIiwiaXNFbmFibGVkIiwidmVuZG9yIiwiVG91Y2hBY3Rpb24iLCJVc2VyU2VsZWN0IiwiR2V0Q29sb3IiLCJHZXRDb2xvcjMyIiwiSFNWVG9SR0IiLCJSR0JUb0hTViIsIkNvbG9yIiwiZyIsIl9oIiwiX3MiLCJfdiIsIl9sb2NrZWQiLCJfY29sb3IiLCJfY29sb3IzMiIsIl9yZ2JhIiwidXBkYXRlSFNWIiwic2V0R0xUbyIsInJlZEdMIiwiZ3JlZW5HTCIsImJsdWVHTCIsImFscGhhR0wiLCJzZXRGcm9tUkdCIiwic2V0RnJvbUhTViIsImdyYXkiLCJzaGFkZSIsInJhbmRvbUdyYXkiLCJzYXR1cmF0ZSIsImFtb3VudCIsImRlc2F0dXJhdGUiLCJsaWdodGVuIiwiZGFya2VuIiwiYnJpZ2h0ZW4iLCJjb2xvcjMyIiwiSHVlVG9Db21wb25lbnQiLCJjb2xvcnMiLCJJbnRlZ2VyVG9SR0IiLCJyZ2IiLCJSR0JXaXRoUkdCIiwicjEiLCJnMSIsImIxIiwicjIiLCJnMiIsIkNvbG9yV2l0aFJHQiIsIkNvbG9yV2l0aENvbG9yIiwiY29sb3IxIiwiY29sb3IyIiwiQ29tcG9uZW50VG9IZXgiLCJCZXR3ZWVuIiwiSGV4U3RyaW5nVG9Db2xvciIsIkludGVnZXJUb0NvbG9yIiwiT2JqZWN0VG9Db2xvciIsIlJHQlN0cmluZ1RvQ29sb3IiLCJDb2xvclRvUkdCQSIsIkhTTFRvQ29sb3IiLCJIU1ZDb2xvcldoZWVsIiwiSW50ZXJwb2xhdGUiLCJSYW5kb21SR0IiLCJSR0JUb1N0cmluZyIsIkJhc2VTaGFkZXIiLCJCb3VuZHMiLCJDYW52YXMiLCJNYXNrcyIsIkJpdG1hcE1hc2siLCJyZW5kZXJhYmxlIiwiYml0bWFwTWFzayIsIm1hc2tUZXh0dXJlIiwibWFpblRleHR1cmUiLCJtYWluRnJhbWVidWZmZXIiLCJtYXNrRnJhbWVidWZmZXIiLCJwcmV2RnJhbWVidWZmZXIiLCJpbnZlcnRBbHBoYSIsImlzU3RlbmNpbCIsInBvdCIsIlJFUEVBVCIsIkNMQU1QX1RPX0VER0UiLCJMSU5FQVIiLCJjcmVhdGVUZXh0dXJlMkQiLCJSR0JBIiwic2V0Qml0bWFwIiwicHJlUmVuZGVyV2ViR0wiLCJtYXNrZWRPYmplY3QiLCJwaXBlbGluZXMiLCJCaXRtYXBNYXNrUGlwZWxpbmUiLCJiZWdpbk1hc2siLCJlbmRNYXNrIiwicHJlUmVuZGVyQ2FudmFzIiwiR2VvbWV0cnlNYXNrIiwiZ3JhcGhpY3NHZW9tZXRyeSIsImdlb21ldHJ5TWFzayIsImxldmVsIiwic2V0U2hhcGUiLCJzZXRJbnZlcnRBbHBoYSIsIm1hc2tTdGFjayIsIlNURU5DSUxfVEVTVCIsIlNURU5DSUxfQlVGRkVSX0JJVCIsIm1hc2tDb3VudCIsImN1cnJlbnRDYW1lcmFNYXNrIiwiY3VycmVudE1hc2siLCJhcHBseVN0ZW5jaWwiLCJjb2xvck1hc2siLCJzdGVuY2lsRnVuYyIsIkVRVUFMIiwic3RlbmNpbE9wIiwiS0VFUCIsIklOQ1IiLCJERUNSIiwicmVuZGVyV2ViR0wiLCJOT1RFUVVBTCIsImN1cnJlbnRDb250ZXh0Iiwic2F2ZSIsInJlbmRlckNhbnZhcyIsImNsaXAiLCJyZXN0b3JlIiwiZnJhZ21lbnRTcmMiLCJ2ZXJ0ZXhTcmMiLCJ1bmlmb3JtcyIsInBhcmVudEVsZW1lbnQiLCJpbm5lckhlaWdodCIsIm9yaWVudGF0aW9uIiwicnVsZXIiLCJpbm5lcldpZHRoIiwic2NyZWVuIiwibW96T3JpZW50YXRpb24iLCJtc09yaWVudGF0aW9uIiwiT1JJRU5UQVRJT04iLCJQT1JUUkFJVCIsIkxBTkRTQ0FQRSIsIm1hdGNoTWVkaWEiLCJsb2FkWE1MIiwiaXNTZXRUaW1lT3V0IiwidGltZU91dElEIiwic3RlcFRpbWVvdXQiLCJ0YXJnZXRGUFMiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIkRvbSIsIkdldFNjcmVlbk9yaWVudGF0aW9uIiwiR2V0VGFyZ2V0IiwiUGFyc2VYTUwiLCJSZW1vdmVGcm9tRE9NIiwiZmxpcFgiLCJmbGlwWSIsInNldFNjYWxlIiwic2Nyb2xsRmFjdG9yIiwic2V0U2Nyb2xsRmFjdG9yIiwib3giLCJveSIsImJsZW5kTW9kZSIsIk5PUk1BTCIsInByZVVwZGF0ZSIsImFuaW1Db25maWciLCJzZXREZWxheSIsInNldFJlcGVhdCIsInNldFJlcGVhdERlbGF5Iiwic2V0WW95byIsIkxpc3QiLCJTdGFibGVTb3J0IiwiRGlzcGxheUxpc3QiLCJzb3J0Q2hpbGRyZW5GbGFnIiwiZGVwdGhTb3J0IiwiaW5wbGFjZSIsInNvcnRCeURlcHRoIiwiY2hpbGRBIiwiY2hpbGRCIiwiX2RlcHRoIiwiQ29tcG9uZW50c1RvSlNPTiIsInJlbmRlckZsYWdzIiwiaWdub3JlRGVzdHJveSIsInNldEFjdGl2ZSIsInNldFN0YXRlIiwic2V0RGF0YUVuYWJsZWQiLCJzZXREYXRhIiwiaW5jRGF0YSIsInRvZ2dsZURhdGEiLCJzaGFwZSIsImRyb3Bab25lIiwiZGlzYWJsZUludGVyYWN0aXZlIiwiZW5hYmxlZCIsInJlbW92ZUludGVyYWN0aXZlIiwid2lsbFJlbmRlciIsIlJFTkRFUl9NQVNLIiwiZ2V0SW5kZXhMaXN0IiwiaW5kZXhlcyIsImdldEluZGV4IiwiZnJvbVNjZW5lIiwicHJlRGVzdHJveSIsImZhY3RvcnlUeXBlIiwiZmFjdG9yeUZ1bmN0aW9uIiwiZXhpc3RpbmciLCJQcm9jZXNzUXVldWUiLCJVcGRhdGVMaXN0IiwiUFJFX1VQREFURSIsInNjZW5lVXBkYXRlIiwiX2FjdGl2ZSIsIl9wZW5kaW5nIiwiX2Rlc3Ryb3kiLCJfdG9Qcm9jZXNzIiwibGluZXMiLCJzaG9ydGVzdCIsImxvbmdlc3QiLCJ3cmFwcGVkVGV4dCIsInRleHRMZW5ndGgiLCJ3b3JkV3JhcENoYXJDb2RlIiwiY2hhcnMiLCJmb250RGF0YSIsImxpbmVIZWlnaHQiLCJ4QWR2YW5jZSIsInlBZHZhbmNlIiwiZ2x5cGgiLCJmb250U2l6ZSIsImxhc3RHbHlwaCIsImxhc3RDaGFyQ29kZSIsImxpbmVXaWR0aHMiLCJzaG9ydGVzdExpbmUiLCJsb25nZXN0TGluZSIsImN1cnJlbnRMaW5lIiwiY3VycmVudExpbmVXaWR0aCIsImdseXBoS2VybmluZ09mZnNldCIsImtlcm5pbmciLCJjciIsInhPZmZzZXQiLCJjcnMiLCJrZXJuaW5nT2Zmc2V0IiwiZ3ciLCJnaCIsImRpc3BsYXlPcmlnaW5YIiwiZGlzcGxheU9yaWdpblkiLCJQYXJzZVhNTEJpdG1hcEZvbnQiLCJmb250TmFtZSIsImZyYW1lS2V5IiwieG1sS2V5IiwieFNwYWNpbmciLCJ5U3BhY2luZyIsImxldHRlcnMiLCJzcGFjaW5nWCIsInNwYWNpbmdZIiwibGluZVNwYWNpbmciLCJjaGFyc1BlclJvdyIsInJldHJvRm9udCIsImZvbnQiLCJ5T2Zmc2V0IiwiZ2V0VmFsdWUiLCJpbmZvIiwiYWRqdXN0Rm9yVHJpbSIsInRyaW1tZWQiLCJneCIsImd5Iiwia2VybmluZ3MiLCJrZXJuIiwiUkVUUk9fRk9OVF9DT05TVCIsIlJldHJvRm9udCIsIlBhcnNlIiwiVEVYVF9TRVQxIiwiVEVYVF9TRVQyIiwiVEVYVF9TRVQzIiwiVEVYVF9TRVQ0IiwiVEVYVF9TRVQ1IiwiVEVYVF9TRVQ2IiwiVEVYVF9TRVQ3IiwiVEVYVF9TRVQ4IiwiVEVYVF9TRVQ5IiwiVEVYVF9TRVQxMCIsIlRFWFRfU0VUMTEiLCJCaXRtYXBUZXh0IiwiUmVuZGVyIiwiRHluYW1pY0JpdG1hcFRleHQiLCJhbGlnbiIsImNyb3BXaWR0aCIsImNyb3BIZWlnaHQiLCJkaXNwbGF5Q2FsbGJhY2siLCJjYWxsYmFja0RhdGEiLCJ0aW50Iiwic2V0RGlzcGxheUNhbGxiYWNrIiwic2V0U2Nyb2xsWCIsInNldFNjcm9sbFkiLCJTZXRUcmFuc2Zvcm0iLCJpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSIsInBhcmVudE1hdHJpeCIsIl90ZXh0IiwiX2xldHRlclNwYWNpbmciLCJnbHlwaFgiLCJnbHlwaFkiLCJnbHlwaFciLCJnbHlwaEgiLCJ0ZXh0dXJlWCIsImN1dFgiLCJ0ZXh0dXJlWSIsImN1dFkiLCJiYXNlU2NhbGUiLCJfZm9udFNpemUiLCJfYWxpZ24iLCJsaW5lT2Zmc2V0WCIsImdldFRleHRCb3VuZHMiLCJsaW5lRGF0YSIsImJpdG1hcFRleHQiLCJVdGlscyIsImNyb3AiLCJwdXNoU2Npc3NvciIsImNhbU1hdHJpeCIsIl90ZW1wTWF0cml4MSIsInNwcml0ZU1hdHJpeCIsIl90ZW1wTWF0cml4MiIsImNhbGNNYXRyaXgiLCJfdGVtcE1hdHJpeDMiLCJmb250TWF0cml4IiwiX3RlbXBNYXRyaXg0IiwiY29weUZyb20iLCJtdWx0aXBseVdpdGhPZmZzZXQiLCJ0ZXh0dXJlV2lkdGgiLCJ0ZXh0dXJlSGVpZ2h0IiwidGludEVmZmVjdCIsIl9pc1RpbnRlZCIsInRpbnRGaWxsIiwidGludFRMIiwiZ2V0VGludEFwcGVuZEZsb2F0QWxwaGEiLCJfdGludFRMIiwiX2FscGhhVEwiLCJ0aW50VFIiLCJfdGludFRSIiwiX2FscGhhVFIiLCJ0aW50QkwiLCJfdGludEJMIiwiX2FscGhhQkwiLCJ0aW50QlIiLCJfdGludEJSIiwiX2FscGhhQlIiLCJzZXRUZXh0dXJlMkQiLCJ4dyIsInloIiwidHgwIiwidHkwIiwidHgxIiwidHkxIiwidHgyIiwidHkyIiwidHgzIiwidHkzIiwiYmF0Y2hRdWFkIiwicG9wU2Npc3NvciIsIkdldEJpdG1hcFRleHRTaXplIiwiUGFyc2VGcm9tQXRsYXMiLCJCbGVuZE1vZGUiLCJEZXB0aCIsIk1hc2siLCJPcmlnaW4iLCJQaXBlbGluZSIsIlNjcm9sbEZhY3RvciIsIlRleHR1cmUiLCJUcmFuc2Zvcm0iLCJfZGlydHkiLCJfbWF4V2lkdGgiLCJzZXRUZXh0dXJlIiwiaW5pdFBpcGVsaW5lIiwic2V0VGV4dCIsInNldExlZnRBbGlnbiIsIkFMSUdOX0xFRlQiLCJzZXRDZW50ZXJBbGlnbiIsIkFMSUdOX0NFTlRFUiIsInNldFJpZ2h0QWxpZ24iLCJBTElHTl9SSUdIVCIsInNldEZvbnRTaXplIiwic2V0TGV0dGVyU3BhY2luZyIsInVwZGF0ZURpc3BsYXlPcmlnaW4iLCJzZXRGb250Iiwic2V0TWF4V2lkdGgiLCJUb0pTT04iLCJnZXRYIiwiZ2V0WSIsIkJsaXR0ZXJSZW5kZXIiLCJCb2IiLCJCbGl0dGVyIiwiU2l6ZSIsInJlbmRlckxpc3QiLCJib2IiLCJhZGRBdCIsImNyZWF0ZUZyb21DYWxsYmFjayIsImJvYnMiLCJzaW5nbGVGcmFtZSIsImNoaWxkQ2FuUmVuZGVyIiwiZ2V0UmVuZGVyTGlzdCIsImJsZW5kTW9kZXMiLCJpbWFnZVNtb290aGluZ0VuYWJsZWQiLCJjYW1lcmFTY3JvbGxYIiwiY2FtZXJhU2Nyb2xsWSIsImNvcHlUb0NvbnRleHQiLCJmbGlwIiwiY2QiLCJjYW52YXNEYXRhIiwiYm9iQWxwaGEiLCJnbG9iYWxBbHBoYSIsImJsaXR0ZXIiLCJibGl0dGVyWCIsImJsaXR0ZXJZIiwicHJldlRleHR1cmVTb3VyY2VJbmRleCIsIl9hbHBoYSIsInJlc2V0RmxpcCIsInNldEZsaXBYIiwic2V0RmxpcFkiLCJzZXRGbGlwIiwic2V0QWxwaGEiLCJjbGVhckFscGhhIiwiYWxwaGFUb3BMZWZ0IiwiYWxwaGFUb3BSaWdodCIsImFscGhhQm90dG9tTGVmdCIsImFscGhhQm90dG9tUmlnaHQiLCJBbHBoYVNpbmdsZSIsIkJhc2VBbmltYXRpb24iLCJhbmltYXRpb25NYW5hZ2VyIiwibmV4dEFuaW0iLCJfdGltZVNjYWxlIiwiX3BhdXNlZCIsIl93YXNQbGF5aW5nIiwiX3BlbmRpbmdTdG9wVmFsdWUiLCJnZXREZWxheSIsImdldEN1cnJlbnRLZXkiLCJhdEZyYW1lIiwiZnJvbUZyYW1lIiwiaXNQYXVzZWQiLCJpZ25vcmVJZlBsYXlpbmciLCJfc3RhcnRBbmltYXRpb24iLCJwbGF5UmV2ZXJzZSIsImdldFByb2dyZXNzIiwic2V0UHJvZ3Jlc3MiLCJzZXRDdXJyZW50RnJhbWUiLCJnZXRSZXBlYXQiLCJnZXRSZXBlYXREZWxheSIsInJlc3RhcnQiLCJzdG9wQWZ0ZXJEZWxheSIsInN0b3BPblJlcGVhdCIsInN0b3BPbkZyYW1lIiwic2V0VGltZVNjYWxlIiwiZ2V0VGltZVNjYWxlIiwiZ2V0VG90YWxGcmFtZXMiLCJpc0Nyb3BwZWQiLCJ1cGRhdGVDcm9wVVZzIiwiX2Nyb3AiLCJzZXRTaXplVG9GcmFtZSIsIl9vcmlnaW5Db21wb25lbnQiLCJjdXN0b21QaXZvdCIsInBpdm90WCIsInBpdm90WSIsImdldFlveW8iLCJfYmxlbmRNb2RlIiwic2V0QmxlbmRNb2RlIiwic2V0RGlzcGxheVNpemUiLCJDcm9wIiwic2V0Q3JvcCIsInNldENyb3BVVnMiLCJyZXNldENyb3BPYmplY3QiLCJjdyIsInRvZ2dsZUZsaXBYIiwidG9nZ2xlRmxpcFkiLCJHZXRCb3VuZHMiLCJwcmVwYXJlQm91bmRzT3V0cHV0IiwiaW5jbHVkZVBhcmVudCIsImdldEJvdW5kc1RyYW5zZm9ybU1hdHJpeCIsInRyYW5zZm9ybVBvaW50IiwiZ2V0Q2VudGVyIiwiZ2V0VG9wTGVmdCIsImdldFRvcENlbnRlciIsImdldFRvcFJpZ2h0IiwiZ2V0TGVmdENlbnRlciIsImdldFJpZ2h0Q2VudGVyIiwiZ2V0Qm90dG9tTGVmdCIsImdldEJvdHRvbUNlbnRlciIsImdldEJvdHRvbVJpZ2h0IiwiVEx4IiwiVEx5IiwiVFJ4IiwiVFJ5IiwiQkx4IiwiQkx5IiwiQlJ4IiwiQlJ5IiwiY3JlYXRlQml0bWFwTWFzayIsImNyZWF0ZUdlb21ldHJ5TWFzayIsIl9kaXNwbGF5T3JpZ2luWCIsIl9kaXNwbGF5T3JpZ2luWSIsInNldE9yaWdpbkZyb21GcmFtZSIsInNldERpc3BsYXlPcmlnaW4iLCJHZXRCb29sZWFuIiwiVFdFRU5fQ09OU1QiLCJQYXRoRm9sbG93ZXIiLCJyb3RhdGVUb1BhdGgiLCJwYXRoUm90YXRpb25PZmZzZXQiLCJwYXRoT2Zmc2V0IiwicGF0aFZlY3RvciIsInBhdGhEZWx0YSIsInBhdGhUd2VlbiIsInBhdGhDb25maWciLCJfcHJldkRpcmVjdGlvbiIsIlBMQVlJTkdfRk9SV0FSRCIsInNldFBhdGgiLCJzZXRSb3RhdGVUb1BhdGgiLCJpc0ZvbGxvd2luZyIsInN0YXJ0QXQiLCJwb3NpdGlvbk9uUGF0aCIsInNlZWsiLCJvblN0YXJ0IiwidHdlZW5EYXRhIiwiZWxhcHNlZCIsImFkZENvdW50ZXIiLCJuZXh0UG9pbnQiLCJhdGFuMiIsInBhdXNlRm9sbG93IiwicmVzdW1lRm9sbG93IiwicGF0aFVwZGF0ZSIsIkNPTVBMRVRFIiwiUExBWUlOR19CQUNLV0FSRCIsIm9sZFgiLCJvbGRZIiwiZGVmYXVsdFBpcGVsaW5lIiwicGlwZWxpbmVOYW1lIiwicmVzZXRQaXBlbGluZSIsImdldFBpcGVsaW5lTmFtZSIsIl9zaXplQ29tcG9uZW50IiwicmVhbFdpZHRoIiwicmVhbEhlaWdodCIsInVwZGF0ZVNpemUiLCJ1cGRhdGVPcmlnaW4iLCJjdXRXaWR0aCIsImN1dEhlaWdodCIsIlRleHR1cmVDcm9wIiwiY2xlYXJUaW50Iiwic2V0VGludEZpbGwiLCJ0aW50VG9wTGVmdCIsInRpbnRUb3BSaWdodCIsInRpbnRCb3R0b21MZWZ0IiwidGludEJvdHRvbVJpZ2h0IiwiaXNUaW50ZWQiLCJXcmFwQW5nbGUiLCJXcmFwQW5nbGVEZWdyZWVzIiwiX3NjYWxlWCIsIl9zY2FsZVkiLCJSQURfVE9fREVHIiwiREVHX1RPX1JBRCIsInNldFJhbmRvbVBvc2l0aW9uIiwic2V0VyIsImdldExvY2FsVHJhbnNmb3JtTWF0cml4IiwidGVtcE1hdHJpeCIsImdldFdvcmxkVHJhbnNmb3JtTWF0cml4IiwiZ2V0UGFyZW50Um90YXRpb24iLCJkZWNvbXBvc2VkTWF0cml4IiwidHJhbnNsYXRlWCIsInRyYW5zbGF0ZVkiLCJhY29zIiwiYXRhbiIsInJvdGF0aW9uTm9ybWFsaXplZCIsIlRBVSIsImxvYWRJZGVudGl0eSIsInJocyIsImxvY2FsQSIsImxvY2FsQiIsImxvY2FsQyIsImxvY2FsRCIsImxvY2FsRSIsImxvY2FsRiIsInNvdXJjZUEiLCJzb3VyY2VCIiwic291cmNlQyIsInNvdXJjZUQiLCJzb3VyY2VFIiwic291cmNlRiIsImRlc3RpbmF0aW9uTWF0cml4Iiwib3RoZXJNYXRyaXgiLCJhMCIsImIwIiwiYzAiLCJkMCIsInBzZSIsInBzZiIsImMxIiwiZDEiLCJ0cmFuc2Zvcm0iLCJjb3B5RnJvbUFycmF5Iiwic2V0VG9Db250ZXh0Iiwic2V0VHJhbnNmb3JtIiwiY29weVRvQXJyYXkiLCJkZWNvbXBvc2VNYXRyaXgiLCJkZXRlcm0iLCJyYWRpYW5TaW4iLCJyYWRpYW5Db3MiLCJhcHBseUludmVyc2UiLCJnZXRDU1NNYXRyaXgiLCJDb21wdXRlZFNpemUiLCJBcnJheVV0aWxzIiwiVW5pb24iLCJDb250YWluZXIiLCJleGNsdXNpdmUiLCJtYXhTaXplIiwibG9jYWxUcmFuc2Zvcm0iLCJ0ZW1wVHJhbnNmb3JtTWF0cml4IiwiX2Rpc3BsYXlMaXN0IiwiX3NvcnRLZXkiLCJfc3lzRXZlbnRzIiwiU0tJUF9DSEVDSyIsInNldEV4Y2x1c2l2ZSIsInRyYW5zZm9ybWVkUG9zaXRpb24iLCJ0ZW1wUmVjdCIsImZpcnN0Q2hpbGRCb3VuZHMiLCJhZGRIYW5kbGVyIiwicmVtb3ZlSGFuZGxlciIsInBvaW50VG9Db250YWluZXIiLCJBZGQiLCJBZGRBdCIsImdldEF0IiwiZ2V0QnlOYW1lIiwiZ2V0UmFuZG9tIiwic3RhcnRJbmRleCIsIkdldFJhbmRvbSIsImdldEZpcnN0IiwiZW5kSW5kZXgiLCJHZXRBbGwiLCJDb3VudEFsbE1hdGNoaW5nIiwiY2hpbGQxIiwiY2hpbGQyIiwiU3dhcCIsImRlc3Ryb3lDaGlsZCIsIlJlbW92ZSIsInJlbW92ZUF0IiwiUmVtb3ZlQXQiLCJyZW1vdmVCZXR3ZWVuIiwiUmVtb3ZlQmV0d2VlbiIsImJyaW5nVG9Ub3AiLCJCcmluZ1RvVG9wIiwic2VuZFRvQmFjayIsIlNlbmRUb0JhY2siLCJtb3ZlVXAiLCJNb3ZlVXAiLCJtb3ZlRG93biIsIk1vdmVEb3duIiwic2h1ZmZsZSIsIm9sZENoaWxkIiwibmV3Q2hpbGQiLCJSZXBsYWNlIiwic2V0QWxsIiwiU2V0QWxsIiwidHJhbnNmb3JtTWF0cml4IiwiY29udGFpbmVySGFzQmxlbmRNb2RlIiwiY2hpbGRBbHBoYSIsImNoaWxkU2Nyb2xsRmFjdG9yWCIsImNoaWxkU2Nyb2xsRmFjdG9yWSIsImN1cnJlbnRCbGVuZE1vZGUiLCJjaGlsZENvdW50IiwiY2hpbGRBbHBoYVRvcExlZnQiLCJjaGlsZEFscGhhVG9wUmlnaHQiLCJjaGlsZEFscGhhQm90dG9tTGVmdCIsImNoaWxkQWxwaGFCb3R0b21SaWdodCIsImN1cnJlbnRUeXBlIiwibmV3VHlwZSIsIm5leHRUeXBlTWF0Y2giLCJET01FbGVtZW50UmVuZGVyIiwiU0NFTkVfRVZFTlRTIiwiRE9NRWxlbWVudCIsImlubmVyVGV4dCIsInRyYW5zZm9ybU9ubHkiLCJza2V3WCIsInNrZXdZIiwicm90YXRlM2QiLCJyb3RhdGUzZEFuZ2xlIiwiZGlzcGF0Y2hOYXRpdmVFdmVudCIsInNldEVsZW1lbnQiLCJTTEVFUCIsImhhbmRsZVNjZW5lRXZlbnQiLCJXQUtFIiwic2V0U2tldyIsInNldFBlcnNwZWN0aXZlIiwidGFnTmFtZSIsInJlbW92ZUVsZW1lbnQiLCJ6SW5kZXgiLCJwaGFzZXIiLCJjcmVhdGVGcm9tQ2FjaGUiLCJjcmVhdGVGcm9tSFRNTCIsIm5vZGVCb3VuZHMiLCJjbGllbnRXaWR0aCIsImNsaWVudEhlaWdodCIsImdldENoaWxkQnlQcm9wZXJ0eSIsImdldENoaWxkQnlJRCIsImdldENoaWxkQnlOYW1lIiwic2V0Q2xhc3NOYW1lIiwic2V0SFRNTCIsIkNTU0JsZW5kTW9kZXMiLCJzcmNNYXRyaXgiLCJwb2ludGVyRXZlbnRzIiwibWl4QmxlbmRNb2RlIiwidHJhbnNmb3JtT3JpZ2luIiwiVklERU9fQ09NUExFVEUiLCJWSURFT19DUkVBVEVEIiwiVklERU9fRVJST1IiLCJWSURFT19MT09QIiwiVklERU9fUExBWSIsIlZJREVPX1NFRUtFRCIsIlZJREVPX1NFRUtJTkciLCJWSURFT19TVE9QIiwiVklERU9fVElNRU9VVCIsIlZJREVPX1VOTE9DS0VEIiwiRXh0ZXJuUmVuZGVyIiwiRXh0ZXJuIiwiZXh0ZXJuIiwiY3VycmVudFBpcGVsaW5lIiwiY2xlYXJQaXBlbGluZSIsInJlYmluZFBpcGVsaW5lIiwiQVJDIiwiQkVHSU5fUEFUSCIsIkNMT1NFX1BBVEgiLCJGSUxMX1JFQ1QiLCJMSU5FX1RPIiwiTU9WRV9UTyIsIkxJTkVfU1RZTEUiLCJGSUxMX1NUWUxFIiwiRklMTF9QQVRIIiwiU1RST0tFX1BBVEgiLCJGSUxMX1RSSUFOR0xFIiwiU1RST0tFX1RSSUFOR0xFIiwiU0FWRSIsIlJFU1RPUkUiLCJUUkFOU0xBVEUiLCJTQ0FMRSIsIlJPVEFURSIsIlNFVF9URVhUVVJFIiwiQ0xFQVJfVEVYVFVSRSIsIkdSQURJRU5UX0ZJTExfU1RZTEUiLCJHUkFESUVOVF9MSU5FX1NUWUxFIiwiQ29tbWFuZHMiLCJDb21wb25lbnRzQWxwaGEiLCJDb21wb25lbnRzQmxlbmRNb2RlIiwiQ29tcG9uZW50c0RlcHRoIiwiQ29tcG9uZW50c01hc2siLCJDb21wb25lbnRzUGlwZWxpbmUiLCJDb21wb25lbnRzVHJhbnNmb3JtIiwiQ29tcG9uZW50c1Zpc2libGUiLCJDb21wb25lbnRzU2Nyb2xsRmFjdG9yIiwiR3JhcGhpY3MiLCJjb21tYW5kQnVmZmVyIiwiZGVmYXVsdEZpbGxDb2xvciIsImRlZmF1bHRGaWxsQWxwaGEiLCJkZWZhdWx0U3Ryb2tlV2lkdGgiLCJkZWZhdWx0U3Ryb2tlQ29sb3IiLCJkZWZhdWx0U3Ryb2tlQWxwaGEiLCJfbGluZVdpZHRoIiwic2V0RGVmYXVsdFN0eWxlcyIsImxpbmVTdHlsZSIsImxpbmVXaWR0aCIsImZpbGxHcmFkaWVudFN0eWxlIiwibGluZUdyYWRpZW50U3R5bGUiLCJmaWxsUGF0aCIsInN0cm9rZSIsImZpbGxDaXJjbGVTaGFwZSIsImZpbGxDaXJjbGUiLCJzdHJva2VDaXJjbGVTaGFwZSIsInN0cm9rZUNpcmNsZSIsImFyYyIsIlBJMiIsImZpbGxSZWN0U2hhcGUiLCJzdHJva2VSZWN0U2hhcGUiLCJzdHJva2VSZWN0IiwibGluZVdpZHRoSGFsZiIsIm1pbngiLCJtYXh4IiwiZmlsbFJvdW5kZWRSZWN0IiwidGwiLCJibCIsImJyIiwic3Ryb2tlUm91bmRlZFJlY3QiLCJmaWxsUG9pbnRTaGFwZSIsImZpbGxQb2ludCIsImZpbGxUcmlhbmdsZVNoYXBlIiwiZmlsbFRyaWFuZ2xlIiwic3Ryb2tlVHJpYW5nbGVTaGFwZSIsInN0cm9rZVRyaWFuZ2xlIiwic3Ryb2tlTGluZVNoYXBlIiwiY2xvc2VTaGFwZSIsImZpbGxQb2ludHMiLCJzdHJva2VFbGxpcHNlU2hhcGUiLCJzbW9vdGhuZXNzIiwic3Ryb2tlRWxsaXBzZSIsImZpbGxFbGxpcHNlU2hhcGUiLCJmaWxsRWxsaXBzZSIsImFudGljbG9ja3dpc2UiLCJvdmVyc2hvb3QiLCJ0cmFuc2xhdGVDYW52YXMiLCJzY2FsZUNhbnZhcyIsInJvdGF0ZUNhbnZhcyIsImdlbmVyYXRlVGV4dHVyZSIsIlRhcmdldENhbWVyYSIsImdldFNvdXJjZUltYWdlIiwiY3JlYXRlQ2FudmFzIiwicmVmcmVzaCIsInJlbmRlclRhcmdldEN0eCIsImFsbG93Q2xpcCIsImNvbW1hbmRCdWZmZXJMZW5ndGgiLCJsaW5lQWxwaGEiLCJmaWxsQWxwaGEiLCJsaW5lQ29sb3IiLCJmaWxsQ29sb3IiLCJzdHJva2VTdHlsZSIsIkxJTkVfRlhfVE8iLCJNT1ZFX0ZYX1RPIiwiUG9pbnQiLCJwb2ludHNMZW5ndGgiLCJtYXRyaXhTdGFjayIsImdyYXBoaWNzTWF0cml4IiwiY3VycmVudE1hdHJpeCIsImNvbW1hbmRzIiwiZmlsbFRpbnQiLCJzdHJva2VUaW50IiwidGEiLCJwYXRoSW5kZXgiLCJwYXRoT3BlbiIsImxhc3RQYXRoIiwiZ2V0VGludCIsImdldFRpbnRBcHBlbmRGbG9hdEFscGhhQW5kU3dhcCIsImN1cnJlbnRUZXh0dXJlIiwiYmxhbmtUZXh0dXJlIiwiY21kSW5kZXgiLCJiYXRjaEZpbGxQYXRoIiwiYmF0Y2hTdHJva2VQYXRoIiwic3Ryb2tlVGludENvbG9yIiwiVEwiLCJUUiIsIkJMIiwiQlIiLCJmaWxsVGludENvbG9yIiwiZ3JhZGllbnRGaWxsQWxwaGEiLCJncmFkaWVudExpbmVBbHBoYSIsIml0ZXJhdGlvbiIsImJhdGNoRmlsbFJlY3QiLCJiYXRjaEZpbGxUcmlhbmdsZSIsImJhdGNoU3Ryb2tlVHJpYW5nbGUiLCJBY3Rpb25zIiwiUmFuZ2UiLCJHcm91cCIsImNsYXNzVHlwZSIsImRlZmF1bHRLZXkiLCJkZWZhdWx0RnJhbWUiLCJydW5DaGlsZFVwZGF0ZSIsImNyZWF0ZUNhbGxiYWNrIiwicmVtb3ZlQ2FsbGJhY2siLCJjcmVhdGVNdWx0aXBsZUNhbGxiYWNrIiwiaW50ZXJuYWxDcmVhdGVDYWxsYmFjayIsImludGVybmFsUmVtb3ZlQ2FsbGJhY2siLCJpc0Z1bGwiLCJyYW5kb21LZXkiLCJyYW5kb21GcmFtZSIsImZyYW1lUXVhbnRpdHkiLCJyYW5nZSIsInF0eSIsInJhbmRvbUIiLCJjcmVhdGVkIiwic3RlcFJvdGF0aW9uIiwic3RlcFNjYWxlWCIsInN0ZXBTY2FsZVkiLCJzdGVwQWxwaGEiLCJzdGVwRGVwdGgiLCJzdGVwU2Nyb2xsRmFjdG9yWCIsInN0ZXBTY3JvbGxGYWN0b3JZIiwiZ3JpZCIsImFkZE11bHRpcGxlIiwicmVtb3ZlRnJvbVNjZW5lIiwiY3JlYXRlSWZOdWxsIiwiZ2V0SGFuZGxlciIsImdldEZpcnN0TnRoIiwibnRoIiwiZ2V0TGFzdCIsImdldExhc3ROdGgiLCJmb3J3YXJkcyIsImdldEZpcnN0QWxpdmUiLCJnZXRGaXJzdERlYWQiLCJwbGF5QW5pbWF0aW9uIiwiY291bnRBY3RpdmUiLCJnZXRUb3RhbFVzZWQiLCJnZXRUb3RhbEZyZWUiLCJ1c2VkIiwicHJvcGVydHlWYWx1ZVNldCIsInByb3BlcnR5VmFsdWVJbmMiLCJzZXRYWSIsImluY1giLCJpbmNZIiwiaW5jWFkiLCJzaGlmdFBvc2l0aW9uIiwicm90YXRlQXJvdW5kRGlzdGFuY2UiLCJzY2FsZVhZIiwic2V0SGl0QXJlYSIsImtpbGwiLCJraWxsQW5kSGlkZSIsInRvZ2dsZVZpc2libGUiLCJkZXN0cm95Q2hpbGRyZW4iLCJJbWFnZVJlbmRlciIsImJhdGNoU3ByaXRlIiwiR2FtZU9iamVjdHMiLCJQYXJ0aWNsZXMiLCJSZW5kZXJUZXh0dXJlIiwiUm9wZSIsIlRleHQiLCJUaWxlU3ByaXRlIiwiWm9uZSIsIlNoYXBlIiwiQXJjIiwiR3JpZCIsIklzb0JveCIsIklzb1RyaWFuZ2xlIiwiUG9seWdvbiIsIlN0YXIiLCJUcmlhbmdsZSIsIkZhY3RvcmllcyIsIlN0YXRpY0JpdG1hcFRleHQiLCJDcmVhdG9ycyIsIk1lc2giLCJRdWFkIiwiU2hhZGVyIiwiTGlnaHQiLCJzZXRDb2xvciIsImdldEZsb2F0c0Zyb21VaW50UkdCIiwic2V0SW50ZW5zaXR5Iiwic2V0UmFkaXVzIiwiTGlnaHRzTWFuYWdlciIsImxpZ2h0UG9vbCIsImxpZ2h0cyIsImN1bGxlZExpZ2h0cyIsImFtYmllbnRDb2xvciIsImNhbWVyYUNlbnRlclgiLCJjYW1lcmFDZW50ZXJZIiwiY2FtZXJhUmFkaXVzIiwibGlnaHQiLCJmb3JFYWNoTGlnaHQiLCJzZXRBbWJpZW50Q29sb3IiLCJnZXRNYXhWaXNpYmxlTGlnaHRzIiwiZ2V0TGlnaHRDb3VudCIsImFkZExpZ2h0IiwicmVtb3ZlTGlnaHQiLCJMaWdodHNQbHVnaW4iLCJNZXNoUmVuZGVyIiwidXYiLCJhbHBoYXMiLCJ2ZXJ0aWNlc1VCIiwibWVzaCIsInV2cyIsIm1lc2hWZXJ0aWNlc0xlbmd0aCIsInZlcnRleENvdW50IiwidmVydGV4Q2FwYWNpdHkiLCJ2ZXJ0ZXhWaWV3RjMyIiwidmVydGV4Vmlld1UzMiIsInZlcnRleE9mZnNldCIsInZlcnRleENvbXBvbmVudENvdW50IiwiY29sb3JJbmRleCIsIkZsb2F0QmV0d2VlbiIsIkdldEVhc2VGdW5jdGlvbiIsIkVtaXR0ZXJPcCIsImVtaXRPbmx5IiwicHJvcGVydHlWYWx1ZSIsInN0ZXBzIiwib25FbWl0IiwiZGVmYXVsdEVtaXQiLCJvblVwZGF0ZSIsImRlZmF1bHRVcGRhdGUiLCJsb2FkQ29uZmlnIiwibmV3S2V5Iiwic2V0TWV0aG9kcyIsIm9uQ2hhbmdlIiwic3RhdGljVmFsdWVFbWl0Iiwic3RhdGljVmFsdWVVcGRhdGUiLCJyYW5kb21TdGF0aWNWYWx1ZUVtaXQiLCJoYXNCb3RoIiwiaXNSYW5kb20iLCJybmQiLCJyYW5kb21SYW5nZWRWYWx1ZUVtaXQiLCJzdGVwcGVkRW1pdCIsImVhc2VUeXBlIiwiZWFzZWRWYWx1ZUVtaXQiLCJlYXNlVmFsdWVVcGRhdGUiLCJoYXNFaXRoZXIiLCJrZXkxIiwia2V5MiIsInBhcnRpY2xlIiwicmFuZG9tSW5kZXgiLCJHcmF2aXR5V2VsbCIsInBvd2VyIiwiZXBzaWxvbiIsImdyYXZpdHkiLCJfZ3Jhdml0eSIsIl9wb3dlciIsIl9lcHNpbG9uIiwiZFNxIiwiZmFjdG9yIiwidmVsb2NpdHlYIiwidmVsb2NpdHlZIiwicHdyIiwiUGFydGljbGUiLCJhY2NlbGVyYXRpb25YIiwiYWNjZWxlcmF0aW9uWSIsIm1heFZlbG9jaXR5WCIsIm1heFZlbG9jaXR5WSIsImJvdW5jZSIsImxpZmUiLCJsaWZlQ3VycmVudCIsImRlbGF5Q3VycmVudCIsImxpZmVUIiwiaXNBbGl2ZSIsInJlc2V0UG9zaXRpb24iLCJlbWl0Wm9uZSIsImxpZmVzcGFuIiwicmFkaWFsIiwicmFkIiwibW92ZVRvWCIsIm1vdmVUb1kiLCJhY2NlbGVyYXRpb24iLCJjb21wdXRlVmVsb2NpdHkiLCJwcm9jZXNzb3JzIiwidngiLCJ2eSIsImdyYXZpdHlYIiwiZ3Jhdml0eVkiLCJjaGVja0JvdW5kcyIsImNvbGxpZGVMZWZ0IiwiY29sbGlkZVJpZ2h0IiwiY29sbGlkZVRvcCIsImNvbGxpZGVCb3R0b20iLCJkZWF0aFpvbmUiLCJ3aWxsS2lsbCIsIkRlYXRoWm9uZSIsIkVkZ2Vab25lIiwiSGFzQW55IiwiSGFzVmFsdWUiLCJSYW5kb21ab25lIiwiUGFydGljbGVFbWl0dGVyIiwiY29uZmlnRmFzdE1hcCIsImNvbmZpZ09wTWFwIiwicGFydGljbGVDbGFzcyIsImVtaXRDYWxsYmFjayIsImVtaXRDYWxsYmFja1Njb3BlIiwiZGVhdGhDYWxsYmFjayIsImRlYXRoQ2FsbGJhY2tTY29wZSIsIm1heFBhcnRpY2xlcyIsImZyZXF1ZW5jeSIsInBhcnRpY2xlQnJpbmdUb1RvcCIsInRpbWVTY2FsZSIsInRyYWNrVmlzaWJsZSIsImRlYWQiLCJhbGl2ZSIsIl9jb3VudGVyIiwiX2ZyYW1lQ291bnRlciIsImNhbGxiYWNrU2NvcGUiLCJzZXRFbWl0Wm9uZSIsInNldERlYXRoWm9uZSIsInNldEZyb21PYmplY3QiLCJfZnJhbWVMZW5ndGgiLCJwaWNrUmFuZG9tIiwic2V0RW1pdHRlckZyYW1lcyIsImZyYW1lQ29uZmlnIiwiaXNDeWNsZSIsInNldFJhZGlhbCIsInNldFNwZWVkWCIsInNldFNwZWVkWSIsInNldFNwZWVkIiwic2V0U2NhbGVYIiwic2V0U2NhbGVZIiwic2V0R3Jhdml0eVgiLCJzZXRHcmF2aXR5WSIsInNldEdyYXZpdHkiLCJzZXRFbWl0dGVyQW5nbGUiLCJzZXRMaWZlc3BhbiIsInNldFF1YW50aXR5Iiwic2V0RnJlcXVlbmN5Iiwiem9uZUNvbmZpZyIsImtpbGxPbkVudGVyIiwicmVzZXJ2ZSIsInBhcnRpY2xlQ291bnQiLCJnZXRBbGl2ZVBhcnRpY2xlQ291bnQiLCJnZXREZWFkUGFydGljbGVDb3VudCIsImdldFBhcnRpY2xlQ291bnQiLCJhdExpbWl0Iiwib25QYXJ0aWNsZUVtaXQiLCJvblBhcnRpY2xlRGVhdGgiLCJraWxsQWxsIiwiZm9yRWFjaEFsaXZlIiwiZm9yRWFjaERlYWQiLCJyZW1vdmVFbWl0dGVyIiwiZGVwdGhTb3J0Q2FsbGJhY2siLCJmbG93IiwiZXhwbG9kZSIsImVtaXRQYXJ0aWNsZSIsImVtaXRQYXJ0aWNsZUF0IiwiZ2V0UHJvY2Vzc29ycyIsInBhcnRpY2xlcyIsInJpcCIsIlBhcnRpY2xlRW1pdHRlck1hbmFnZXIiLCJlbWl0dGVycyIsImZyYW1lTmFtZXMiLCJ3ZWxscyIsImNyZWF0ZUVtaXR0ZXIiLCJnZXRGcmFtZXNGcm9tVGV4dHVyZVNvdXJjZSIsInNvdXJjZUZyYW1lIiwiYWRkRW1pdHRlciIsImFkZEdyYXZpdHlXZWxsIiwid2VsbCIsImNyZWF0ZUdyYXZpdHlXZWxsIiwiZW1pdHRlck1hbmFnZXIiLCJlbWl0dGVyc0xlbmd0aCIsInBhcnRpY2xlTWF0cml4IiwibWFuYWdlck1hdHJpeCIsIlpvbmVzIiwid2l0aGluWm9uZSIsIl9sZW5ndGgiLCJfZGlyZWN0aW9uIiwidXBkYXRlU291cmNlIiwib2xkTGVuZ3RoIiwiY2hhbmdlU291cmNlIiwiX3RlbXBWZWMiLCJ0b3BMZWZ0WCIsInRvcExlZnRZIiwidG9wUmlnaHRYIiwidG9wUmlnaHRZIiwiYm90dG9tTGVmdFgiLCJib3R0b21MZWZ0WSIsImJvdHRvbVJpZ2h0WCIsImJvdHRvbVJpZ2h0WSIsInRvcExlZnRBbHBoYSIsInRvcFJpZ2h0QWxwaGEiLCJib3R0b21MZWZ0QWxwaGEiLCJib3R0b21SaWdodEFscGhhIiwidG9wTGVmdENvbG9yIiwidG9wUmlnaHRDb2xvciIsImJvdHRvbUxlZnRDb2xvciIsImJvdHRvbVJpZ2h0Q29sb3IiLCJzZXRUb3BMZWZ0Iiwic2V0VG9wUmlnaHQiLCJzZXRCb3R0b21MZWZ0Iiwic2V0Qm90dG9tUmlnaHQiLCJyZXNldEFscGhhIiwicmVzZXRDb2xvcnMiLCJxdWFkIiwiVVVJRCIsImdsb2JhbFRpbnQiLCJfc2F2ZWQiLCJhZGRDYW52YXMiLCJfZXJhc2VNb2RlIiwiZHJhd0dhbWVPYmplY3QiLCJiYXRjaEdhbWVPYmplY3RXZWJHTCIsImJhdGNoR2FtZU9iamVjdENhbnZhcyIsIk5FQVJFU1QiLCJpc1JlbmRlclRleHR1cmUiLCJiYXNlRnJhbWUiLCJjdXN0b21IaXRBcmVhIiwic2V0R2xvYmFsVGludCIsInNldEdsb2JhbEFscGhhIiwic2F2ZVRleHR1cmUiLCJyZW5hbWVUZXh0dXJlIiwic2V0RnJhbWVidWZmZXIiLCJwcm9qT3J0aG8iLCJnZXRUaW50RnJvbUZsb2F0cyIsInNldENvbnRleHQiLCJzY2lzc29yIiwiY2xlYXJDb2xvciIsIkNPTE9SX0JVRkZFUl9CSVQiLCJlcmFzZSIsIkVSQVNFIiwiYmF0Y2hMaXN0IiwiZHJhd0ZyYW1lIiwiYmF0Y2hUZXh0dXJlRnJhbWUiLCJiYXRjaEdyb3VwIiwiYmF0Y2hUZXh0dXJlRnJhbWVLZXkiLCJwcmV2WCIsInByZXZZIiwic25hcHNob3RBcmVhIiwiZW5jb2Rlck9wdGlvbnMiLCJzbmFwc2hvdEZyYW1lYnVmZmVyIiwic25hcHNob3RDYW52YXMiLCJzbmFwc2hvdCIsInNuYXBzaG90UGl4ZWwiLCJyZW5kZXJUZXh0dXJlIiwiYmF0Y2hUZXh0dXJlIiwic2V0QmxhbmtUZXh0dXJlIiwiUm9wZVJlbmRlciIsImhvcml6b250YWwiLCJfZmxpcFgiLCJfZmxpcFkiLCJfcGVycCIsImRlYnVnQ2FsbGJhY2siLCJkZWJ1Z0dyYXBoaWMiLCJyZXNpemVBcnJheXMiLCJzZXRQb2ludHMiLCJ1cGRhdGVWZXJ0aWNlcyIsInVwZGF0ZVVWcyIsInNldERpcnR5Iiwic2V0SG9yaXpvbnRhbCIsInNldFZlcnRpY2FsIiwic2V0QWxwaGFzIiwiYm90dG9tQWxwaGEiLCJjdXJyZW50QWxwaGFzIiwicHJldkFscGhhIiwic2V0Q29sb3JzIiwiY3VycmVudENvbG9ycyIsInByZXZDb2xvciIsImZyYW1lU2VnbWVudCIsInNlZ21lbnRzIiwiY3VycmVudFRvdGFsIiwiY3VycmVudFVWcyIsInBhcnRIIiwicGFydFYiLCJ1djAiLCJ1djEiLCJ1djIiLCJ1djMiLCJuZXdTaXplIiwicGVycCIsImxhc3RQb2ludCIsImZyYW1lU2l6ZSIsInBlcnBMZW5ndGgiLCJzZXREZWJ1ZyIsImdyYXBoaWMiLCJyZW5kZXJEZWJ1Z1ZlcnRzIiwibWVzaExlbmd0aCIsInZlcnRzIiwicHgwIiwicHkwIiwicHgxIiwicHkxIiwicm9wZSIsImRlYnVnVmVydHMiLCJTZXRWYWx1ZSIsIlNoYWRlclJlbmRlciIsInRleHR1cmVEYXRhIiwidmVydGV4RGF0YSIsInZlcnRleEJ1ZmZlciIsImNyZWF0ZVZlcnRleEJ1ZmZlciIsIlNUUkVBTV9EUkFXIiwicHJvZ3JhbSIsInZpZXdNYXRyaXgiLCJwcm9qZWN0aW9uTWF0cml4IiwiX3JlbmRlcmVyV2lkdGgiLCJfcmVuZGVyZXJIZWlnaHQiLCJfdGV4dHVyZUNvdW50Iiwic2V0U2hhZGVyIiwiYWRkR0xUZXh0dXJlIiwiZGVsZXRlUHJvZ3JhbSIsImNyZWF0ZVByb2dyYW0iLCJzZXRNYXRyaXg0Iiwic2V0RmxvYXQyIiwiZGVmYXVsdFVuaWZvcm1zIiwibW91c2UiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJnZXRTZWNvbmRzIiwic2FtcGxlUmF0ZSIsImlDaGFubmVsMCIsImlDaGFubmVsMSIsImlDaGFubmVsMiIsImlDaGFubmVsMyIsInNldFNhbXBsZXIyRCIsImluaXRVbmlmb3JtcyIsInNldFBvaW50ZXIiLCJsZWZ0UmlnaHQiLCJib3R0b21Ub3AiLCJwbSIsImdsRnVuY01hcCIsInVuaWZvcm0iLCJ1bmlmb3JtTG9jYXRpb24iLCJnZXRVbmlmb3JtTG9jYXRpb24iLCJnbE1hdHJpeCIsImdsVmFsdWVMZW5ndGgiLCJnbEZ1bmMiLCJzZXRTYW1wbGVyMkRCdWZmZXIiLCJ1bmlmb3JtS2V5IiwidGV4dHVyZUluZGV4IiwiaW5pdFNhbXBsZXIyRCIsImlzR0xUZXh0dXJlIiwic2V0VW5pZm9ybSIsImdldFVuaWZvcm0iLCJzZXRDaGFubmVsMCIsInNldENoYW5uZWwxIiwic2V0Q2hhbm5lbDIiLCJzZXRDaGFubmVsMyIsImFjdGl2ZVRleHR1cmUiLCJURVhUVVJFMCIsImJpbmRUZXh0dXJlIiwiVEVYVFVSRV8yRCIsIm1hZ0ZpbHRlciIsIm1pbkZpbHRlciIsIndyYXBTIiwid3JhcFQiLCJwaXhlbFN0b3JlaSIsIlVOUEFDS19GTElQX1lfV0VCR0wiLCJ0ZXhJbWFnZTJEIiwiVU5TSUdORURfQllURSIsInRleFBhcmFtZXRlcmkiLCJURVhUVVJFX01BR19GSUxURVIiLCJURVhUVVJFX01JTl9GSUxURVIiLCJURVhUVVJFX1dSQVBfUyIsIlRFWFRVUkVfV1JBUF9UIiwic2V0UHJvZ3JhbSIsInVuaWZvcm0xaSIsInN5bmNVbmlmb3JtcyIsInRleHR1cmVDb3VudCIsInRyYW5zcG9zZSIsIm1hdHJpeDJEIiwidm0iLCJ1c2VQcm9ncmFtIiwidW5pZm9ybU1hdHJpeDRmdiIsInVuaWZvcm0yZiIsInZlcnRleFNpemUiLCJiaW5kQnVmZmVyIiwiZ2V0QXR0cmliTG9jYXRpb24iLCJlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSIsInZlcnRleEF0dHJpYlBvaW50ZXIiLCJGTE9BVCIsInZmIiwiYnVmZmVyU3ViRGF0YSIsInN1YmFycmF5IiwiZHJhd0FycmF5cyIsIlRSSUFOR0xFUyIsImRlbGV0ZUJ1ZmZlciIsInNoYXBlTWF0cml4IiwicGF0aERhdGEiLCJwYXRoSW5kZXhlcyIsImJhdGNoVHJpIiwiYWx0Q29sb3IiLCJhbHRBbHBoYSIsInN0cm9rZUNvbG9yIiwic3Ryb2tlQWxwaGEiLCJnZW9tIiwiaXNGaWxsZWQiLCJpc1N0cm9rZWQiLCJfdGVtcExpbmUiLCJzZXRGaWxsU3R5bGUiLCJzZXRTdHJva2VTdHlsZSIsInNldENsb3NlUGF0aCIsInBhdGhMZW5ndGgiLCJoYWxmTGluZVdpZHRoIiwicHgyIiwicHkyIiwiYmF0Y2hMaW5lIiwiQXJjUmVuZGVyIiwiRWFyY3V0IiwiR2VvbUNpcmNsZSIsIl9hbnRpY2xvY2t3aXNlIiwiX2l0ZXJhdGlvbnMiLCJkaWFtZXRlciIsIml0ZXJhdGlvbnMiLCJzZXRJdGVyYXRpb25zIiwiRmlsbFN0eWxlQ2FudmFzIiwiTGluZVN0eWxlQ2FudmFzIiwiRmlsbFBhdGhXZWJHTCIsIlN0cm9rZVBhdGhXZWJHTCIsIkN1cnZlUmVuZGVyIiwiX3Ntb290aG5lc3MiLCJfY3VydmVCb3VuZHMiLCJzZXRTbW9vdGhuZXNzIiwiRWxsaXBzZVJlbmRlciIsIkdlb21FbGxpcHNlIiwiR3JpZFJlbmRlciIsIm91dGxpbmVGaWxsQ29sb3IiLCJvdXRsaW5lRmlsbEFscGhhIiwic2hvd0NlbGxzIiwic2hvd091dGxpbmUiLCJzaG93QWx0Q2VsbHMiLCJhbHRGaWxsQ29sb3IiLCJhbHRGaWxsQWxwaGEiLCJzZXRPdXRsaW5lU3R5bGUiLCJzZXRBbHRGaWxsU3R5bGUiLCJncmlkV2lkdGgiLCJncmlkSGVpZ2h0IiwiY2VsbFdpZHRoQSIsImNlbGxIZWlnaHRBIiwiY2VsbFdpZHRoQiIsImNlbGxIZWlnaHRCIiwiSXNvQm94UmVuZGVyIiwiZmlsbFRvcCIsImZpbGxMZWZ0IiwiZmlsbFJpZ2h0Iiwic2hvd1RvcCIsInNob3dMZWZ0Iiwic2hvd1JpZ2h0Iiwic2V0UHJvamVjdGlvbiIsInNldEZhY2VzIiwic2l6ZUEiLCJzaXplQiIsIklzb1RyaWFuZ2xlUmVuZGVyIiwicmV2ZXJzZWQiLCJpc1JldmVyc2VkIiwic2V0UmV2ZXJzZWQiLCJHZW9tTGluZSIsIkxpbmVSZW5kZXIiLCJfc3RhcnRXaWR0aCIsIl9lbmRXaWR0aCIsInNldExpbmVXaWR0aCIsInN0YXJ0V2lkdGgiLCJlbmRXaWR0aCIsIlBvbHlnb25SZW5kZXIiLCJHZXRBQUJCIiwiR2VvbVBvbHlnb24iLCJTbW9vdGgiLCJzbW9vdGgiLCJHZW9tUmVjdGFuZ2xlIiwiUmVjdGFuZ2xlUmVuZGVyIiwiZ2V0TGluZUEiLCJnZXRMaW5lQiIsImdldExpbmVDIiwiZ2V0TGluZUQiLCJTdGFyUmVuZGVyIiwiaW5uZXJSYWRpdXMiLCJvdXRlclJhZGl1cyIsIl9wb2ludHMiLCJfaW5uZXJSYWRpdXMiLCJfb3V0ZXJSYWRpdXMiLCJzZXRJbm5lclJhZGl1cyIsInNldE91dGVyUmFkaXVzIiwicm90IiwiR2VvbVRyaWFuZ2xlIiwiVHJpYW5nbGVSZW5kZXIiLCJ0cmkiLCJTcHJpdGVSZW5kZXIiLCJtYXhMaW5lV2lkdGgiLCJkcmF3bkxpbmVzIiwibWF4TGluZXMiLCJzeW5jRm9udCIsInN0cm9rZVRoaWNrbmVzcyIsIm1lYXN1cmVUZXh0Iiwid29yZFdyYXAiLCJ0ZXh0U3R5bGUiLCJ0ZXN0U3RyaW5nIiwiYmFzZWxpbmVYIiwiYmFzZWxpbmUiLCJiYXNlbGluZVkiLCJfZm9udCIsInRleHRCYXNlbGluZSIsImZpbGxUZXh0IiwiYXNjZW50IiwiZGVzY2VudCIsImltYWdlZGF0YSIsInBpeGVscyIsIk1lYXN1cmVUZXh0IiwicHJvcGVydHlNYXAiLCJmb250RmFtaWx5IiwiZm9udFN0eWxlIiwic2hhZG93T2Zmc2V0WCIsInNoYWRvd09mZnNldFkiLCJzaGFkb3dDb2xvciIsInNoYWRvd0JsdXIiLCJzaGFkb3dTdHJva2UiLCJzaGFkb3dGaWxsIiwiZml4ZWRXaWR0aCIsImZpeGVkSGVpZ2h0IiwicnRsIiwid29yZFdyYXBXaWR0aCIsIndvcmRXcmFwQ2FsbGJhY2siLCJ3b3JkV3JhcENhbGxiYWNrU2NvcGUiLCJ3b3JkV3JhcFVzZUFkdmFuY2VkIiwiVGV4dFN0eWxlIiwic2V0U3R5bGUiLCJtZXRyaWNzIiwidXBkYXRlVGV4dCIsInNldERlZmF1bHRzIiwic3luY1N0eWxlIiwibGluZUNhcCIsImxpbmVKb2luIiwic3luY1NoYWRvdyIsInJlY2FsY3VsYXRlTWV0cmljcyIsImZvbnRTcGxpdCIsInNldEZvbnRGYW1pbHkiLCJmYW1pbHkiLCJzZXRGb250U3R5bGUiLCJzZXRUZXN0U3RyaW5nIiwic2V0Rml4ZWRTaXplIiwic2V0RmlsbCIsInNldFJlc29sdXRpb24iLCJzZXRTdHJva2UiLCJ0aGlja25lc3MiLCJzZXRTaGFkb3ciLCJzZXRTaGFkb3dPZmZzZXQiLCJzZXRTaGFkb3dDb2xvciIsInNldFNoYWRvd0JsdXIiLCJzZXRTaGFkb3dTdHJva2UiLCJzZXRTaGFkb3dGaWxsIiwic2V0V29yZFdyYXBXaWR0aCIsInVzZUFkdmFuY2VkV3JhcCIsInNldFdvcmRXcmFwQ2FsbGJhY2siLCJzZXRBbGlnbiIsInNldE1heExpbmVzIiwiZ2V0VGV4dE1ldHJpY3MiLCJHZXRUZXh0U2l6ZSIsIlRleHRSZW5kZXIiLCJzcGxpdFJlZ0V4cCIsImluaXRSVEwiLCJzZXRQYWRkaW5nIiwic2V0TGluZVNwYWNpbmciLCJydW5Xb3JkV3JhcCIsIndyYXBwZWRMaW5lcyIsImFkdmFuY2VkV29yZFdyYXAiLCJiYXNpY1dvcmRXcmFwIiwibGluZXNDb3VudCIsIndvcmRXaXRoU3BhY2UiLCJ3b3JkV2lkdGgiLCJuZXdXb3JkIiwic2Vjb25kUGFydCIsInJlbWFpbmRlciIsImxhc3RMaW5lSW5kZXgiLCJ3aGl0ZVNwYWNlV2lkdGgiLCJzcGFjZUxlZnQiLCJsYXN0V29yZEluZGV4Iiwid29yZFdpZHRoV2l0aFNwYWNlIiwiZ2V0V3JhcHBlZFRleHQiLCJvdXRwdXRUZXh0IiwidGV4dFdpZHRoIiwidGV4dFNpemUiLCJsaW5lUG9zaXRpb25YIiwibGluZVBvc2l0aW9uWSIsImV4dHJhU3BhY2UiLCJzcGFjZVNpemUiLCJ0cmltbWVkTGluZSIsImV4dHJhU3BhY2VDaGFyYWN0ZXJzIiwic3Ryb2tlVGV4dCIsImNhbnZhc1RvVGV4dHVyZSIsIkdldFBvd2VyT2ZUd28iLCJUaWxlU3ByaXRlUmVuZGVyIiwiZGlzcGxheVRleHR1cmUiLCJkaXNwbGF5RnJhbWUiLCJfdGlsZVBvc2l0aW9uIiwiX3RpbGVTY2FsZSIsInBvdFdpZHRoIiwicG90SGVpZ2h0IiwiZmlsbENhbnZhcyIsImZpbGxDb250ZXh0IiwiZmlsbFBhdHRlcm4iLCJuZXdGcmFtZSIsInVwZGF0ZVRpbGVUZXh0dXJlIiwic2V0VGlsZVBvc2l0aW9uIiwidGlsZVBvc2l0aW9uWCIsInRpbGVQb3NpdGlvblkiLCJzZXRUaWxlU2NhbGUiLCJ0aWxlU2NhbGVYIiwidGlsZVNjYWxlWSIsImZ3IiwiZmgiLCJjcmVhdGVQYXR0ZXJuIiwidXBkYXRlQ2FudmFzIiwicG9zaXRpb25YIiwicG9zaXRpb25ZIiwidGlsZSIsIlNvdW5kRXZlbnRzIiwiVmlkZW9SZW5kZXIiLCJ2aWRlb1RleHR1cmUiLCJ2aWRlb1RleHR1cmVTb3VyY2UiLCJzbmFwc2hvdFRleHR1cmUiLCJ0b3VjaExvY2tlZCIsInBsYXlXaGVuVW5sb2NrZWQiLCJyZXRyeUxpbWl0IiwicmV0cnkiLCJyZXRyeUludGVydmFsIiwiX3JldHJ5SUQiLCJfc3lzdGVtTXV0ZWQiLCJfY29kZU11dGVkIiwiX3N5c3RlbVBhdXNlZCIsIl9jb2RlUGF1c2VkIiwiX2NhbGxiYWNrcyIsInBsYXlIYW5kbGVyIiwibG9hZEVycm9ySGFuZGxlciIsImNvbXBsZXRlSGFuZGxlciIsInRpbWVVcGRhdGVIYW5kbGVyIiwic2Vla2luZyIsInNlZWtpbmdIYW5kbGVyIiwic2Vla2VkIiwic2Vla2VkSGFuZGxlciIsIm1hcmtlcnMiLCJfbWFya2VySW4iLCJfbWFya2VyT3V0IiwiX2xhc3RVcGRhdGUiLCJfY2FjaGVLZXkiLCJfaXNTZWVraW5nIiwicmVtb3ZlVmlkZW9FbGVtZW50T25EZXN0cm95IiwiZ2xvYmFsUGF1c2UiLCJnbG9iYWxSZXN1bWUiLCJHTE9CQUxfTVVURSIsImdsb2JhbE11dGUiLCJtYXJrZXJJbiIsIm1hcmtlck91dCIsIm11dGUiLCJzZXRNdXRlIiwicGxheVByb21pc2UiLCJwbGF5UHJvbWlzZVN1Y2Nlc3NIYW5kbGVyIiwicGxheVByb21pc2VFcnJvckhhbmRsZXIiLCJjaGVja1ZpZGVvUHJvZ3Jlc3MiLCJhdXRvcGxheSIsIm5ld1ZpZGVvIiwibXV0ZWQiLCJ2aWRlb1dpZHRoIiwidmlkZW9IZWlnaHQiLCJ1cGRhdGVUZXh0dXJlIiwiYWRkTWFya2VyIiwicGxheU1hcmtlciIsIm1hcmtlciIsInJlbW92ZU1hcmtlciIsInNyY1dpZHRoIiwic3JjSGVpZ2h0IiwiZGVzdFdpZHRoIiwiZGVzdEhlaWdodCIsInNuYXAiLCJzYXZlU25hcHNob3RUZXh0dXJlIiwibG9hZFVSTCIsImxvYWRFdmVudCIsImNvbnRyb2xzIiwiZGVmYXVsdE11dGVkIiwidW5sb2NrSGFuZGxlciIsInRleHR1cmVTb3VyY2UiLCJnZXRWaWRlb0tleSIsInNlZWtUbyIsInNlZWtUaW1lIiwic2V0Q3VycmVudFRpbWUiLCJnZXRDdXJyZW50VGltZSIsIm9wIiwiaXNTZWVraW5nIiwiaXNNdXRlZCIsInNvdW5kTWFuYWdlciIsInNldFBhdXNlZCIsImdldFZvbHVtZSIsInZvbHVtZSIsInNldFZvbHVtZSIsImdldFBsYXliYWNrUmF0ZSIsInBsYXliYWNrUmF0ZSIsInNldFBsYXliYWNrUmF0ZSIsInJhdGUiLCJnZXRMb29wIiwic2V0TG9vcCIsImVuZGVkIiwicmVtb3ZlVmlkZW9FbGVtZW50IiwiaGFzQ2hpbGROb2RlcyIsIkNpcmNsZSIsIkNpcmNsZUNvbnRhaW5zIiwicmVzaXplSW5wdXQiLCJzZXRDaXJjbGVEcm9wWm9uZSIsInNldERyb3Bab25lIiwic2V0UmVjdGFuZ2xlRHJvcFpvbmUiLCJDb250YWlucyIsIkdldFBvaW50IiwiR0VPTV9DT05TVCIsIkNJUkNMRSIsIl9yYWRpdXMiLCJfZGlhbWV0ZXIiLCJpc0VtcHR5IiwidG9Db21wYXJlIiwiQ2lyY3VtZmVyZW5jZVBvaW50IiwiRnJvbVBlcmNlbnQiLCJDaXJjdW1mZXJlbmNlIiwiQXJlYSIsIkNsb25lIiwiQ29udGFpbnNQb2ludCIsIkNvbnRhaW5zUmVjdCIsIkNvcHlGcm9tIiwiRXF1YWxzIiwiT2Zmc2V0IiwiT2Zmc2V0UG9pbnQiLCJFTExJUFNFIiwiTElORSIsIlBPSU5UIiwiUE9MWUdPTiIsIlJFQ1RBTkdMRSIsIlRSSUFOR0xFIiwiZ2V0TWFqb3JSYWRpdXMiLCJnZXRNaW5vclJhZGl1cyIsInJ5Iiwibm9ybXgiLCJub3JteSIsIkdlb20iLCJJbnRlcnNlY3RzIiwiY2lyY2xlQSIsImNpcmNsZUIiLCJ4RGlzdCIsInlEaXN0IiwieENvcm5lckRpc3QiLCJ5Q29ybmVyRGlzdCIsIkNpcmNsZVRvQ2lyY2xlIiwiY29lZmZpY2llbnRBIiwiY29lZmZpY2llbnRCIiwibGFtYmRhIiwicjAiLCJHZXRMaW5lVG9DaXJjbGUiLCJDaXJjbGVUb1JlY3RhbmdsZSIsImxpbmVBIiwibGluZUIiLCJsaW5lQyIsImxpbmVEIiwiTGluZVRvQ2lyY2xlIiwibHgxIiwibHkxIiwibHgyIiwibHkyIiwibERpclgiLCJsRGlyWSIsIm9EaXJYIiwib0RpclkiLCJyb290MSIsInJvb3QyIiwiTGluZVRvTGluZSIsIkxpbmVUb1JlY3RhbmdsZSIsIlJlY3RhbmdsZVRvUmVjdGFuZ2xlIiwicmVjdEEiLCJyZWN0QiIsIkdldExpbmVUb1JlY3RhbmdsZSIsIlJlY3RhbmdsZVRvVHJpYW5nbGUiLCJUcmlhbmdsZVRvQ2lyY2xlIiwiVHJpYW5nbGVUb0xpbmUiLCJUcmlhbmdsZVRvVHJpYW5nbGUiLCJHZXRUcmlhbmdsZVRvTGluZSIsInRyaWFuZ2xlQSIsInRyaWFuZ2xlQiIsIm5lYXJlc3QiLCJsY3giLCJsY3kiLCJkTGVuMiIsImRwIiwibGluZTEiLCJsaW5lMiIsIng0IiwieTQiLCJkZU5vbSIsInVBIiwidUIiLCJieDEiLCJieTEiLCJieDIiLCJieTIiLCJsaW5lVGhpY2tuZXNzIiwiTDIiLCJQb2ludFRvTGluZSIsInhNaW4iLCJ4TWF4IiwieU1pbiIsInlNYXgiLCJDb250YWluc0FycmF5IiwiRGVjb21wb3NlIiwidHJpQSIsInRyaUIiLCJ0cmlDIiwicmVjdEMiLCJyZWN0RCIsInRvbGVyYW5jZSIsImdldFBvaW50QSIsImdldFBvaW50QiIsImxpbmVBQSIsImxpbmVBQiIsImxpbmVBQyIsImxpbmVCQSIsImxpbmVCQiIsImxpbmVCQyIsIndpdGhpbiIsIkdldENpcmNsZVRvQ2lyY2xlIiwiR2V0Q2lyY2xlVG9SZWN0YW5nbGUiLCJHZXRSZWN0YW5nbGVJbnRlcnNlY3Rpb24iLCJHZXRSZWN0YW5nbGVUb1JlY3RhbmdsZSIsIkdldFJlY3RhbmdsZVRvVHJpYW5nbGUiLCJHZXRUcmlhbmdsZVRvQ2lyY2xlIiwiR2V0VHJpYW5nbGVUb1RyaWFuZ2xlIiwiUG9pbnRUb0xpbmVTZWdtZW50IiwiUmVjdGFuZ2xlVG9WYWx1ZXMiLCJlMiIsIkxlbmd0aCIsInNsb3BYIiwic2xvcFkiLCJEaXN0YW5jZUJldHdlZW5Qb2ludHMiLCJjb2xsaW5lYXJUaHJlc2hvbGQiLCJlYXNlUGFyYW1zIiwic3BhY2VYIiwic3BhY2VZIiwiZWFzZUZ1bmMiLCJwcmV2UG9pbnQiLCJzb3J0ZWRSZXN1bHRzIiwidmVjMiIsIk5vcm1hbEFuZ2xlIiwiUm90YXRlQXJvdW5kWFkiLCJHZXRFYXNlZFBvaW50cyIsIkdldE1pZFBvaW50IiwiR2V0TmVhcmVzdFBvaW50IiwiR2V0Tm9ybWFsIiwiR2V0U2hvcnRlc3REaXN0YW5jZSIsIk5vcm1hbFgiLCJOb3JtYWxZIiwiUGVycFNsb3BlIiwiUmVmbGVjdEFuZ2xlIiwiUm90YXRlQXJvdW5kUG9pbnQiLCJTZXRUb0FuZ2xlIiwiU2xvcGUiLCJORUdBVElWRV9JTkZJTklUWSIsIlBPU0lUSVZFX0lORklOSVRZIiwicG9pbnRBIiwicG9pbnRCIiwiR2V0TWFnbml0dWRlU3EiLCJhbXQiLCJHZXRNYWduaXR1ZGUiLCJtYWduaXR1ZGUiLCJDZWlsIiwiRmxvb3IiLCJHZXRDZW50cm9pZCIsIkdldFJlY3RhbmdsZUZyb21Qb2ludHMiLCJJbnZlcnQiLCJOZWdhdGl2ZSIsIlByb2plY3QiLCJQcm9qZWN0VW5pdCIsIlNldE1hZ25pdHVkZSIsInBvbHlnb24iLCJpeCIsIml5IiwiangiLCJqeSIsIlBlcmltZXRlciIsInBlcmltZXRlciIsImFjY3VtdWxhdGVkUGVyaW1ldGVyIiwiY2FsY3VsYXRlQXJlYSIsInAweCIsInAweSIsInAxeCIsInAxeSIsIkdldE51bWJlckFycmF5IiwiUmV2ZXJzZSIsIkdldEFzcGVjdFJhdGlvIiwicmF0aW8iLCJyZWN0YW5nbGUiLCJmYWNlIiwib3V0ZXIiLCJpbm5lciIsIkNlaWxBbGwiLCJGaXRJbnNpZGUiLCJGaXRPdXRzaWRlIiwiRmxvb3JBbGwiLCJGcm9tWFkiLCJHZXRDZW50ZXIiLCJHZXRTaXplIiwiSW5mbGF0ZSIsIkludGVyc2VjdGlvbiIsIk1lcmdlUG9pbnRzIiwiTWVyZ2VSZWN0IiwiTWVyZ2VYWSIsIk92ZXJsYXBzIiwiUGVyaW1ldGVyUG9pbnQiLCJSYW5kb21PdXRzaWRlIiwiU2FtZURpbWVuc2lvbnMiLCJTY2FsZSIsIkVhckN1dCIsInRyaXMiLCJDZW50cm9pZCIsImNlbnRlckZ1bmMiLCJjZW50ZXIiLCJkaWZmWCIsImRpZmZZIiwiZGV0IiwibTAwIiwibTAxIiwibTEwIiwibTExIiwiZGVub20iLCJudW14IiwibnVteSIsIkciLCJ2MHgiLCJ2MHkiLCJ2MXgiLCJ2MXkiLCJ2MngiLCJ2MnkiLCJkb3QwMCIsImRvdDAxIiwiZG90MDIiLCJkb3QxMSIsImRvdDEyIiwiaW52IiwicmV0dXJuRmlyc3QiLCJsaW5lMyIsImxlbmd0aDEiLCJsZW5ndGgyIiwibGVuZ3RoMyIsImxvY2FsUG9zaXRpb24iLCJkMiIsImQzIiwidXgiLCJ1eSIsIkluQ2VudGVyIiwiQnVpbGRFcXVpbGF0ZXJhbCIsIkJ1aWxkRnJvbVBvbHlnb24iLCJCdWlsZFJpZ2h0IiwiQ2lyY3VtQ2VudGVyIiwiQ2lyY3VtQ2lyY2xlIiwiYWx3YXlzRW5hYmxlZCIsImRyYWdnYWJsZSIsImN1cnNvciIsImhpdEFyZWFEZWJ1ZyIsImxvY2FsWCIsImxvY2FsWSIsImRyYWdTdGF0ZSIsImRyYWdTdGFydFgiLCJkcmFnU3RhcnRZIiwiZHJhZ1N0YXJ0WEdsb2JhbCIsImRyYWdTdGFydFlHbG9iYWwiLCJhbHBoYVRvbGVyYW5jZSIsImdldFBpeGVsQWxwaGEiLCJLZXlib2FyZCIsIk1vdXNlIiwiUG9pbnRlciIsIlRvdWNoIiwiVHJhbnNmb3JtWFkiLCJpc092ZXIiLCJkZWZhdWx0Q3Vyc29yIiwicG9pbnRlcnMiLCJwb2ludGVyc1RvdGFsIiwic21vb3RoRmFjdG9yIiwibW91c2VQb2ludGVyIiwiYWN0aXZlUG9pbnRlciIsImdsb2JhbFRvcE9ubHkiLCJfdGVtcFBvaW50IiwiX3RlbXBIaXRUZXN0IiwiX3RlbXBNYXRyaXgiLCJfdGVtcFNraXAiLCJtb3VzZVBvaW50ZXJDb250YWluZXIiLCJNQU5BR0VSX0JPT1QiLCJzZXRDYW52YXNPdmVyIiwiR0FNRV9PVkVSIiwic2V0Q2FudmFzT3V0IiwiR0FNRV9PVVQiLCJzY2VuZXMiLCJnZXRTY2VuZXMiLCJNQU5BR0VSX1VQREFURSIsInVwZGF0ZVBvbGwiLCJzZXREZWZhdWx0Q3Vyc29yIiwic2V0Q3Vyc29yIiwiaW50ZXJhY3RpdmVPYmplY3QiLCJyZXNldEN1cnNvciIsImFkZFBvaW50ZXIiLCJ1cGRhdGVJbnB1dFBsdWdpbnMiLCJvblRvdWNoU3RhcnQiLCJjaGFuZ2VkIiwiY2hhbmdlZFRvdWNoIiwidG91Y2hzdGFydCIsIlRPVUNIX1NUQVJUIiwib25Ub3VjaE1vdmUiLCJ0b3VjaG1vdmUiLCJUT1VDSF9NT1ZFIiwib25Ub3VjaEVuZCIsInRvdWNoZW5kIiwiVE9VQ0hfRU5EIiwib25Ub3VjaENhbmNlbCIsInRvdWNoY2FuY2VsIiwiVE9VQ0hfQ0FOQ0VMIiwib25Nb3VzZURvd24iLCJ1cGRhdGVNb3Rpb24iLCJNT1VTRV9ET1dOIiwib25Nb3VzZU1vdmUiLCJtb3ZlIiwiTU9VU0VfTU9WRSIsIm9uTW91c2VVcCIsIk1PVVNFX1VQIiwib25Nb3VzZVdoZWVsIiwid2hlZWwiLCJNT1VTRV9XSEVFTCIsIm9uUG9pbnRlckxvY2tDaGFuZ2UiLCJpc0xvY2tlZCIsIlBPSU5URVJMT0NLX0NIQU5HRSIsImlucHV0Q2FuZGlkYXRlIiwiaGl0VGVzdCIsImdhbWVPYmplY3RzIiwidGVtcFBvaW50IiwiY3N4IiwiY3N5Iiwid29ybGRYIiwid29ybGRZIiwicG9pbnRXaXRoaW5IaXRBcmVhIiwicG9pbnRXaXRoaW5JbnRlcmFjdGl2ZU9iamVjdCIsInRyYW5zZm9ybVBvaW50ZXIiLCJ3YXNNb3ZlIiwicHJldlBvc2l0aW9uIiwidHJhbnNmb3JtWCIsInRyYW5zZm9ybVkiLCJDcmVhdGVJbnRlcmFjdGl2ZU9iamVjdCIsIkNyZWF0ZVBpeGVsUGVyZmVjdEhhbmRsZXIiLCJFbGxpcHNlQ29udGFpbnMiLCJJbnB1dFBsdWdpbkNhY2hlIiwiVHJpYW5nbGVDb250YWlucyIsIklucHV0UGx1Z2luIiwicGx1Z2luRXZlbnRzIiwiaW5zdGFsbCIsInRvcE9ubHkiLCJwb2xsUmF0ZSIsIl9wb2xsVGltZXIiLCJfZXZlbnREYXRhIiwiY2FuY2VsbGVkIiwiX2V2ZW50Q29udGFpbmVyIiwiZHJhZ0Rpc3RhbmNlVGhyZXNob2xkIiwiZHJhZ1RpbWVUaHJlc2hvbGQiLCJfdGVtcCIsIl90ZW1wWm9uZXMiLCJfbGlzdCIsIl9wZW5kaW5nSW5zZXJ0aW9uIiwiX3BlbmRpbmdSZW1vdmFsIiwiX2RyYWdnYWJsZSIsIl9kcmFnIiwiX2RyYWdTdGF0ZSIsIl9vdmVyIiwiX3ZhbGlkVHlwZXMiLCJfdXBkYXRlZFRoaXNGcmFtZSIsIlRSQU5TSVRJT05fU1RBUlQiLCJ0cmFuc2l0aW9uSW4iLCJUUkFOU0lUSU9OX09VVCIsInRyYW5zaXRpb25PdXQiLCJUUkFOU0lUSU9OX0NPTVBMRVRFIiwidHJhbnNpdGlvbkNvbXBsZXRlIiwib25HYW1lT3V0Iiwib25HYW1lT3ZlciIsImlzQWN0aXZlIiwicmVtb3ZlTGlzdCIsImluc2VydExpc3QiLCJ0b1JlbW92ZSIsInRvSW5zZXJ0IiwiY2FwdHVyZWQiLCJoaXRUZXN0UG9pbnRlciIsInNvcnRHYW1lT2JqZWN0cyIsInByb2Nlc3NPdmVyT3V0RXZlbnRzIiwiZ2V0RHJhZ1N0YXRlIiwicHJvY2Vzc0RyYWdUaHJlc2hvbGRFdmVudCIsInByb2Nlc3NEcmFnRG93bkV2ZW50IiwicHJvY2Vzc0Rvd25FdmVudHMiLCJwcm9jZXNzRHJhZ1VwRXZlbnQiLCJwcm9jZXNzVXBFdmVudHMiLCJwcm9jZXNzT3ZlckV2ZW50cyIsInByb2Nlc3NPdXRFdmVudHMiLCJwcm9jZXNzRHJhZ01vdmVFdmVudCIsInByb2Nlc3NNb3ZlRXZlbnRzIiwicHJvY2Vzc1doZWVsRXZlbnQiLCJza2lwUXVldWUiLCJxdWV1ZUZvclJlbW92YWwiLCJvdmVyIiwiY3VycmVudGx5T3ZlciIsImFib3J0ZWQiLCJHQU1FT0JKRUNUX1BPSU5URVJfRE9XTiIsIkdBTUVPQkpFQ1RfRE9XTiIsImRvd25FbGVtZW50IiwiUE9JTlRFUl9ET1dOIiwiUE9JTlRFUl9ET1dOX09VVFNJREUiLCJzZXREcmFnU3RhdGUiLCJ0aW1lVGhyZXNob2xkIiwiZGlzdGFuY2VUaHJlc2hvbGQiLCJkb3duWCIsImRvd25ZIiwiZG93blRpbWUiLCJwcm9jZXNzRHJhZ1N0YXJ0TGlzdCIsIkdBTUVPQkpFQ1RfRFJBR19TVEFSVCIsIkRSQUdfU1RBUlQiLCJwcmltYXJ5RG93biIsImRyYWdsaXN0IiwiZHJvcFpvbmVzIiwiR0FNRU9CSkVDVF9EUkFHX09WRVIiLCJEUkFHX09WRVIiLCJHQU1FT0JKRUNUX0RSQUdfTEVBVkUiLCJEUkFHX0xFQVZFIiwiR0FNRU9CSkVDVF9EUkFHX0VOVEVSIiwiRFJBR19FTlRFUiIsImR4Um90YXRlZCIsImR5Um90YXRlZCIsIkdBTUVPQkpFQ1RfRFJBRyIsIkRSQUciLCJkcm9wcGVkIiwiR0FNRU9CSkVDVF9EUk9QIiwiRFJPUCIsIkdBTUVPQkpFQ1RfRFJBR19FTkQiLCJEUkFHX0VORCIsIkdBTUVPQkpFQ1RfUE9JTlRFUl9NT1ZFIiwiR0FNRU9CSkVDVF9NT1ZFIiwiUE9JTlRFUl9NT1ZFIiwiZGVsdGFYIiwiZGVsdGFZIiwiZHoiLCJkZWx0YVoiLCJHQU1FT0JKRUNUX1BPSU5URVJfV0hFRUwiLCJHQU1FT0JKRUNUX1dIRUVMIiwiUE9JTlRFUl9XSEVFTCIsInRvdGFsSW50ZXJhY3RlZCIsImp1c3RPdmVyIiwiR0FNRU9CSkVDVF9QT0lOVEVSX09WRVIiLCJHQU1FT0JKRUNUX09WRVIiLCJQT0lOVEVSX09WRVIiLCJwcmV2aW91c2x5T3ZlciIsIkdBTUVPQkpFQ1RfUE9JTlRFUl9PVVQiLCJHQU1FT0JKRUNUX09VVCIsIlBPSU5URVJfT1VUIiwianVzdE91dCIsInN0aWxsT3ZlciIsImN1cnJlbnRseURyYWdnaW5nIiwiR0FNRU9CSkVDVF9QT0lOVEVSX1VQIiwiR0FNRU9CSkVDVF9VUCIsInVwRWxlbWVudCIsIlBPSU5URVJfVVAiLCJQT0lOVEVSX1VQX09VVFNJREUiLCJxdWV1ZUZvckluc2VydGlvbiIsInNldERyYWdnYWJsZSIsIm1ha2VQaXhlbFBlcmZlY3QiLCJzZXRIaXRBcmVhRnJvbVRleHR1cmUiLCJ1c2VIYW5kQ3Vyc29yIiwicGl4ZWxQZXJmZWN0IiwiaW8iLCJzZXRIaXRBcmVhQ2lyY2xlIiwic2V0SGl0QXJlYUVsbGlwc2UiLCJzZXRIaXRBcmVhUmVjdGFuZ2xlIiwic2V0SGl0QXJlYVRyaWFuZ2xlIiwiZW5hYmxlRGVidWciLCJzaGFwZVR5cGUiLCJkZWJ1ZyIsIm9mZnNldHgiLCJvZmZzZXR5IiwicmVtb3ZlRGVidWciLCJzZXRQb2xsQWx3YXlzIiwic2V0UG9sbFJhdGUiLCJzZXRQb2xsT25Nb3ZlIiwic2V0R2xvYmFsVG9wT25seSIsInNldFRvcE9ubHkiLCJzb3J0SGFuZGxlckdPIiwibGlzdEEiLCJsaXN0QiIsImluZGV4QSIsImluZGV4QiIsInRyYW5zaXRpb25BbGxvd0lucHV0IiwicG9pbnRlcjEiLCJwb2ludGVyMiIsInBvaW50ZXIzIiwicG9pbnRlcjQiLCJwb2ludGVyNSIsInBvaW50ZXI2IiwicG9pbnRlcjciLCJwb2ludGVyOCIsInBvaW50ZXI5IiwicG9pbnRlcjEwIiwiaW5wdXRQbHVnaW5zIiwic2V0dGluZ3NLZXkiLCJjb25maWdLZXkiLCJEaXN0YW5jZSIsIkZ1enp5RXF1YWwiLCJTbW9vdGhTdGVwSW50ZXJwb2xhdGlvbiIsInZlbG9jaXR5IiwibW90aW9uRmFjdG9yIiwibW92ZVRpbWUiLCJ1cFgiLCJ1cFkiLCJ1cFRpbWUiLCJ3YXNUb3VjaCIsIndhc0NhbmNlbGVkIiwibW92ZW1lbnRYIiwibW92ZW1lbnRZIiwidXBkYXRlV29ybGRQb2ludCIsInBvc2l0aW9uVG9DYW1lcmEiLCJtb3pNb3ZlbWVudFgiLCJ3ZWJraXRNb3ZlbWVudFgiLCJtb3pNb3ZlbWVudFkiLCJ3ZWJraXRNb3ZlbWVudFkiLCJub0J1dHRvbkRvd24iLCJsZWZ0QnV0dG9uRG93biIsInJpZ2h0QnV0dG9uRG93biIsIm1pZGRsZUJ1dHRvbkRvd24iLCJiYWNrQnV0dG9uRG93biIsImZvcndhcmRCdXR0b25Eb3duIiwibGVmdEJ1dHRvblJlbGVhc2VkIiwicmlnaHRCdXR0b25SZWxlYXNlZCIsIm1pZGRsZUJ1dHRvblJlbGVhc2VkIiwiYmFja0J1dHRvblJlbGVhc2VkIiwiZm9yd2FyZEJ1dHRvblJlbGVhc2VkIiwiZ2V0RGlzdGFuY2UiLCJnZXREaXN0YW5jZVgiLCJnZXREaXN0YW5jZVkiLCJnZXRBbmdsZSIsImdldEludGVycG9sYXRlZFBvc2l0aW9uIiwiY3VyWCIsImN1clkiLCJQT0lOVEVSX0xPQ0tfQ0hBTkdFIiwiTUFOQUdFUl9QUk9DRVNTIiwiQXhpcyIsInBhZCIsIkJ1dHRvbiIsInByZXNzZWQiLCJCVVRUT05fRE9XTiIsIkdBTUVQQURfQlVUVE9OX0RPV04iLCJCVVRUT05fVVAiLCJHQU1FUEFEX0JVVFRPTl9VUCIsIkdhbWVwYWQiLCJheGVzIiwidmlicmF0aW9uQWN0dWF0b3IiLCJfbm9CdXR0b24iLCJfTENMZWZ0IiwiX0xDUmlnaHQiLCJfTENUb3AiLCJfTENCb3R0b20iLCJfUkNMZWZ0IiwiX1JDUmlnaHQiLCJfUkNUb3AiLCJfUkNCb3R0b20iLCJfRkJMZWZ0VG9wIiwiX0ZCTGVmdEJvdHRvbSIsIl9GQlJpZ2h0VG9wIiwiX0ZCUmlnaHRCb3R0b20iLCJfbm9BeGlzIiwiX0hBeGlzTGVmdCIsIl9WQXhpc0xlZnQiLCJfSEF4aXNSaWdodCIsIl9WQXhpc1JpZ2h0IiwibGVmdFN0aWNrIiwicmlnaHRTdGljayIsImdldEF4aXNUb3RhbCIsImdldEF4aXNWYWx1ZSIsInNldEF4aXNUaHJlc2hvbGQiLCJnZXRCdXR0b25Ub3RhbCIsImdldEJ1dHRvblZhbHVlIiwiaXNCdXR0b25Eb3duIiwibG9jYWxCdXR0b25zIiwiZ2FtZXBhZEJ1dHRvbnMiLCJsb2NhbEF4ZXMiLCJnYW1lcGFkQXhlcyIsImNvbm5lY3RlZCIsIlgiLCJMMSIsIlIxIiwiUjIiLCJJbnB1dEV2ZW50cyIsIkdhbWVwYWRQbHVnaW4iLCJzY2VuZUlucHV0UGx1Z2luIiwib25HYW1lcGFkSGFuZGxlciIsIl9wYWQxIiwiX3BhZDIiLCJfcGFkMyIsIl9wYWQ0Iiwic3RhcnRMaXN0ZW5lcnMiLCJyZWZyZXNoUGFkcyIsInN0b3BMaXN0ZW5lcnMiLCJkaXNjb25uZWN0QWxsIiwiY29ubmVjdGVkUGFkcyIsImN1cnJlbnRQYWRzIiwibGl2ZVBhZCIsImN1cnJlbnRQYWQiLCJuZXdQYWQiLCJwYWRzIiwiZ2V0UGFkIiwiZ2FtZXBhZCIsIkNPTk5FQ1RFRCIsIkRJU0NPTk5FQ1RFRCIsInBhZDEiLCJwYWQyIiwicGFkMyIsInBhZDQiLCJTRUxFQ1QiLCJMRUZUX1NIT1VMREVSIiwiUklHSFRfU0hPVUxERVIiLCJTSEFSRSIsIk9QVElPTlMiLCJQUyIsIlRPVUNIQkFSIiwiU1FVQVJFIiwiTDMiLCJSMyIsIkxFRlRfU1RJQ0tfSCIsIkxFRlRfU1RJQ0tfViIsIlJJR0hUX1NUSUNLX0giLCJSSUdIVF9TVElDS19WIiwiTUVOVSIsIkxCIiwiUkIiLCJSVCIsIkJBQ0siLCJMUyIsIlJTIiwiRFVBTFNIT0NLXzQiLCJTTkVTX1VTQiIsIlhCT1hfMzYwIiwiQ29uZmlncyIsIkFycmF5UmVtb3ZlIiwiS2V5Q29kZXMiLCJLZXlib2FyZE1hbmFnZXIiLCJpbnB1dE1hbmFnZXIiLCJvbktleURvd24iLCJvbktleVVwIiwiYWRkQ2FwdHVyZSIsInBvc3RVcGRhdGUiLCJ1c2VRdWV1ZSIsImtleWNvZGUiLCJyZW1vdmVDYXB0dXJlIiwiY2xlYXJDYXB0dXJlcyIsIktleSIsIktleUNvbWJvIiwiS2V5TWFwIiwiU25hcEZsb29yIiwiS2V5Ym9hcmRQbHVnaW4iLCJjb21ib3MiLCJhZGRDYXB0dXJlcyIsInJlc2V0S2V5cyIsImdldENhcHR1cmVzIiwiZW5hYmxlR2xvYmFsQ2FwdHVyZSIsImRpc2FibGVHbG9iYWxDYXB0dXJlIiwiY3JlYXRlQ3Vyc29yS2V5cyIsImFkZEtleXMiLCJTUEFDRSIsIlNISUZUIiwiZW5hYmxlQ2FwdHVyZSIsImVtaXRPblJlcGVhdCIsImN1cnJlbnRLZXkiLCJhZGRLZXkiLCJzZXRFbWl0T25SZXBlYXQiLCJyZW1vdmVLZXkiLCJjcmVhdGVDb21ibyIsImNoZWNrRG93biIsInRpbWVEb3duIiwiX3RpY2siLCJvbkRvd24iLCJLRVlfRE9XTiIsIkFOWV9LRVlfRE9XTiIsIm9uVXAiLCJLRVlfVVAiLCJBTllfS0VZX1VQIiwiY29tYm8iLCJ0aW1lTGFzdE1hdGNoZWQiLCJrZXlDb2RlcyIsIlByb2Nlc3NLZXlDb21ibyIsIlJlc2V0S2V5Q29tYm8iLCJrZXlib2FyZFBsdWdpbiIsInRpbWVNYXRjaGVkIiwicmVzZXRPbldyb25nS2V5IiwibWF4S2V5RGVsYXkiLCJyZXNldE9uTWF0Y2giLCJkZWxldGVPbk1hdGNoIiwiQ09NQk9fTUFUQ0giLCJBZHZhbmNlS2V5Q29tYm8iLCJjb21ib01hdGNoZWQiLCJrZXlNYXRjaGVkIiwidGltZUxpbWl0IiwiSnVzdERvd24iLCJKdXN0VXAiLCJEb3duRHVyYXRpb24iLCJVcER1cmF0aW9uIiwiX2p1c3REb3duIiwiX2p1c3RVcCIsImlzVXAiLCJ0aW1lVXAiLCJyZXBlYXRzIiwiQkFDS1NQQUNFIiwiVEFCIiwiRU5URVIiLCJDVFJMIiwiQUxUIiwiQ0FQU19MT0NLIiwiRVNDIiwiUEFHRV9VUCIsIlBBR0VfRE9XTiIsIkVORCIsIkhPTUUiLCJQUklOVF9TQ1JFRU4iLCJJTlNFUlQiLCJERUxFVEUiLCJaRVJPIiwiT05FIiwiVFdPIiwiVEhSRUUiLCJGT1VSIiwiRklWRSIsIlNJWCIsIlNFVkVOIiwiRUlHSFQiLCJOSU5FIiwiTlVNUEFEX1pFUk8iLCJOVU1QQURfT05FIiwiTlVNUEFEX1RXTyIsIk5VTVBBRF9USFJFRSIsIk5VTVBBRF9GT1VSIiwiTlVNUEFEX0ZJVkUiLCJOVU1QQURfU0lYIiwiTlVNUEFEX1NFVkVOIiwiTlVNUEFEX0VJR0hUIiwiTlVNUEFEX05JTkUiLCJOVU1QQURfQUREIiwiTlVNUEFEX1NVQlRSQUNUIiwiSCIsIkkiLCJKIiwiSyIsIk4iLCJRIiwiVSIsIloiLCJGMSIsIkYyIiwiRjMiLCJGNCIsIkY1IiwiRjYiLCJGNyIsIkY4IiwiRjkiLCJGMTAiLCJGMTEiLCJGMTIiLCJTRU1JQ09MT04iLCJQTFVTIiwiQ09NTUEiLCJNSU5VUyIsIlBFUklPRCIsIkZPUldBUkRfU0xBU0giLCJCQUNLX1NMQVNIIiwiUVVPVEVTIiwiQkFDS1RJQ0siLCJPUEVOX0JSQUNLRVQiLCJDTE9TRURfQlJBQ0tFVCIsIlNFTUlDT0xPTl9GSVJFRk9YIiwiQ09MT04iLCJDT01NQV9GSVJFRk9YX1dJTkRPV1MiLCJDT01NQV9GSVJFRk9YIiwiQlJBQ0tFVF9SSUdIVF9GSVJFRk9YIiwiQlJBQ0tFVF9MRUZUX0ZJUkVGT1giLCJNb3VzZU1hbmFnZXIiLCJvbk1vdXNlRG93bldpbmRvdyIsIm9uTW91c2VVcFdpbmRvdyIsIm9uTW91c2VPdmVyIiwib25Nb3VzZU91dCIsInBvaW50ZXJMb2NrQ2hhbmdlIiwicmVxdWVzdFBvaW50ZXJMb2NrIiwibW96UmVxdWVzdFBvaW50ZXJMb2NrIiwid2Via2l0UmVxdWVzdFBvaW50ZXJMb2NrIiwicmVsZWFzZVBvaW50ZXJMb2NrIiwiZXhpdFBvaW50ZXJMb2NrIiwibW96RXhpdFBvaW50ZXJMb2NrIiwid2Via2l0RXhpdFBvaW50ZXJMb2NrIiwicGFzc2l2ZSIsIm5vblBhc3NpdmUiLCJwb2ludGVyTG9ja0VsZW1lbnQiLCJtb3pQb2ludGVyTG9ja0VsZW1lbnQiLCJ3ZWJraXRQb2ludGVyTG9ja0VsZW1lbnQiLCJUb3VjaE1hbmFnZXIiLCJvblRvdWNoU3RhcnRXaW5kb3ciLCJvblRvdWNoRW5kV2luZG93Iiwib25Ub3VjaENhbmNlbFdpbmRvdyIsIm9uVG91Y2hPdmVyIiwib25Ub3VjaE91dCIsIkdldFVSTCIsIk1lcmdlWEhSU2V0dGluZ3MiLCJYSFJMb2FkZXIiLCJYSFJTZXR0aW5ncyIsIkZpbGUiLCJsb2FkZXIiLCJmaWxlQ29uZmlnIiwibG9hZEtleSIsInhoclNldHRpbmdzIiwieGhyTG9hZGVyIiwiRklMRV9QT1BVTEFURUQiLCJGSUxFX1BFTkRJTkciLCJieXRlc1RvdGFsIiwiYnl0ZXNMb2FkZWQiLCJwZXJjZW50Q29tcGxldGUiLCJjcm9zc09yaWdpbiIsIm11bHRpRmlsZSIsImxpbmtGaWxlIiwic2V0TGluayIsImZpbGVCIiwicmVzZXRYSFIiLCJvbnByb2dyZXNzIiwibmV4dEZpbGUiLCJiYXNlVVJMIiwib25Mb2FkIiwibG9jYWxGaWxlT2siLCJyZXNwb25zZVVSTCIsIm9uRXJyb3IiLCJsZW5ndGhDb21wdXRhYmxlIiwibG9hZGVkIiwiRklMRV9QUk9HUkVTUyIsIm9uUHJvY2VzcyIsIkZJTEVfUFJPQ0VTU0lORyIsIm9uUHJvY2Vzc0NvbXBsZXRlIiwiRklMRV9DT01QTEVURSIsIm9uRmlsZUNvbXBsZXRlIiwiZmlsZVByb2Nlc3NDb21wbGV0ZSIsIm9uUHJvY2Vzc0Vycm9yIiwiRklMRV9FUlJPUkVEIiwib25GaWxlRmFpbGVkIiwiaGFzQ2FjaGVDb25mbGljdCIsImFkZFRvQ2FjaGUiLCJGSUxFX0tFWV9DT01QTEVURSIsImZsYWdGb3JSZW1vdmFsIiwiZGVmYXVsdFR5cGUiLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwicmVhZEFzRGF0YVVSTCIsIkZpbGVUeXBlc01hbmFnZXIiLCJDdXN0b21TZXQiLCJMb2FkZXJQbHVnaW4iLCJnYW1lQ29uZmlnIiwiY2FjaGVNYW5hZ2VyIiwic2V0QmFzZVVSTCIsInNldFByZWZpeCIsImxvYWRlclByZWZpeCIsIm1heFBhcmFsbGVsRG93bmxvYWRzIiwidG90YWxUb0xvYWQiLCJpbmZsaWdodCIsIl9kZWxldGVRdWV1ZSIsInRvdGFsRmFpbGVkIiwidG90YWxDb21wbGV0ZSIsIkxPQURFUl9JRExFIiwibXVsdGlLZXlJbmRleCIsInBsdWdpblN0YXJ0IiwiYWRkRmlsZSIsImtleUV4aXN0cyIsImlzTG9hZGluZyIsInVwZGF0ZVByb2dyZXNzIiwia2V5Q29uZmxpY3QiLCJhZGRQYWNrIiwicGFja0tleSIsImN1cnJlbnRCYXNlVVJMIiwiY3VycmVudFBhdGgiLCJjdXJyZW50UHJlZml4IiwiZmlsZXMiLCJMT0FERVJfTE9BRElORyIsIkxPQURFUl9QUk9DRVNTSU5HIiwiTE9BREVSX0NPTVBMRVRFIiwibG9hZENvbXBsZXRlIiwiY2hlY2tMb2FkUXVldWUiLCJQUk9HUkVTUyIsIkZJTEVfTE9BRCIsIkZJTEVfTE9BRF9FUlJPUiIsImlzUmVhZHlUb1Byb2Nlc3MiLCJQT1NUX1BST0NFU1MiLCJpdGVyYXRlTG9jYWwiLCJzYXZlSlNPTiIsImZpbGVuYW1lIiwiZmlsZXR5cGUiLCJCbG9iIiwiZG93bmxvYWQiLCJMT0FERVJfU0hVVERPV04iLCJMT0FERVJfREVTVFJPWUVEIiwic2V0dGluZyIsIk11bHRpRmlsZSIsInBlbmRpbmciLCJmYWlsZWQiLCJhZGRUb011bHRpRmlsZSIsImdsb2JhbFhIUlNldHRpbmdzIiwidXNlciIsImhlYWRlciIsImhlYWRlclZhbHVlIiwicmVxdWVzdGVkV2l0aCIsIndpdGhDcmVkZW50aWFscyIsIkZJTEVfTE9BRElORyIsIkZJTEVfTE9BREVEIiwiRklMRV9GQUlMRUQiLCJGSUxFX0RFU1RST1lFRCIsIkpTT05GaWxlIiwiTG9hZGVyRXZlbnRzIiwiQW5pbWF0aW9uSlNPTkZpbGUiLCJkYXRhS2V5Iiwib25Mb2FkQ29tcGxldGUiLCJJbWFnZUZpbGUiLCJBdGxhc0pTT05GaWxlIiwidGV4dHVyZVVSTCIsImF0bGFzVVJMIiwidGV4dHVyZVhoclNldHRpbmdzIiwiYXRsYXNYaHJTZXR0aW5ncyIsImV4dGVuc2lvbiIsIm5vcm1hbE1hcCIsImFkZEF0bGFzIiwibXVsdGlmaWxlIiwiWE1MRmlsZSIsIkF0bGFzWE1MRmlsZSIsImFkZEF0bGFzWE1MIiwiSFRNTDVBdWRpb0ZpbGUiLCJBdWRpb0ZpbGUiLCJ1cmxDb25maWciLCJhdWRpb0NvbnRleHQiLCJkZWNvZGVBdWRpb0RhdGEiLCJhdWRpb0J1ZmZlciIsInVybHMiLCJnZXRBdWRpb1VSTCIsImF1ZGlvRmlsZSIsIkF1ZGlvU3ByaXRlRmlsZSIsImpzb25VUkwiLCJhdWRpb1VSTCIsImF1ZGlvWGhyU2V0dGluZ3MiLCJqc29uWGhyU2V0dGluZ3MiLCJyZXNvdXJjZUxvYWQiLCJyZXNvdXJjZXMiLCJmaWxlQSIsImdhbWVBdWRpb0NvbmZpZyIsIkJpbmFyeUZpbGUiLCJjdG9yIiwiQml0bWFwRm9udEZpbGUiLCJmb250RGF0YVVSTCIsImZvbnREYXRhWGhyU2V0dGluZ3MiLCJDU1NGaWxlIiwiR0xTTEZpbGUiLCJzaGFkZXJUeXBlIiwiYmxvY2siLCJleHRyYWN0QmxvY2siLCJnZXRTaGFkZXJOYW1lIiwiZ2V0U2hhZGVyVHlwZSIsImdldFNoYWRlclVuaWZvcm1zIiwic2hhZGVyU3JjIiwiaGVhZGVyU291cmNlIiwiaGVhZGVyU3RhcnQiLCJoZWFkZXJFbmQiLCJibG9ja0VuZCIsImhlYWRlck9wZW4iLCJjYXB0dXJlU291cmNlIiwic2hhZGVyU291cmNlIiwiZmlsZXNMb2FkZWQiLCJmaWxlc1RvdGFsIiwib25jYW5wbGF5dGhyb3VnaCIsImluc3RhbmNlcyIsImRhdGFzZXQiLCJwcmVsb2FkIiwiSFRNTEZpbGUiLCJIVE1MVGV4dHVyZUZpbGUiLCJzdmciLCJhZGRJbWFnZSIsIm5vcm1hbE1hcFVSTCIsIk11bHRpQXRsYXNGaWxlIiwiZmlsZUpTT04iLCJpbWFnZXMiLCJub3JtYWxNYXBzIiwiYWRkQXRsYXNKU09OQXJyYXkiLCJTY3JpcHRGaWxlIiwiTXVsdGlTY3JpcHRGaWxlIiwic2NyaXB0RmlsZSIsImxhbmd1YWdlIiwiUGFja0ZpbGUiLCJQbHVnaW5GaWxlIiwicGx1Z2luTWFuYWdlciIsIlNWR0ZpbGUiLCJzdmdDb25maWciLCJzdmdYTUwiLCJoYXNWaWV3Qm94IiwiaGFzQXR0cmlidXRlIiwic3ZnV2lkdGgiLCJzdmdIZWlnaHQiLCJ2aWV3Qm94IiwiWE1MU2VyaWFsaXplciIsInNlcmlhbGl6ZVRvU3RyaW5nIiwiU2NlbmVGaWxlIiwiZXZhbDIiLCJldmFsIiwiU2NlbmVQbHVnaW5GaWxlIiwic3lzdGVtS2V5Iiwic2NlbmVLZXkiLCJpbnN0YWxsU2NlbmVQbHVnaW4iLCJTcHJpdGVTaGVldEZpbGUiLCJhZGRTcHJpdGVTaGVldCIsIlRleHRGaWxlIiwiVElMRU1BUF9GT1JNQVRTIiwiVGlsZW1hcENTVkZpbGUiLCJ0aWxlbWFwRm9ybWF0IiwiQ1NWIiwidGlsZWRhdGEiLCJUaWxlbWFwSW1wYWN0RmlsZSIsIldFTFRNRUlTVEVSIiwiVGlsZW1hcEpTT05GaWxlIiwiVElMRURfSlNPTiIsIlVuaXR5QXRsYXNGaWxlIiwiYWRkVW5pdHlBdGxhcyIsIlZpZGVvRmlsZSIsImFzQmxvYiIsIm9uTG9hZENhbGxiYWNrIiwib25WaWRlb0xvYWRIYW5kbGVyIiwib25FcnJvckNhbGxiYWNrIiwib25WaWRlb0Vycm9ySGFuZGxlciIsImNyZWF0ZVZpZGVvRWxlbWVudCIsIm9ubG9hZGVkZGF0YSIsImdldFZpZGVvVVJMIiwidmlkZW9UeXBlIiwidmlkZW9GaWxlIiwiTG9hZGVyIiwiRmlsZVR5cGVzIiwiRmFjdG9yaWFsIiwicGxhY2UiLCJNYXRyaXgzIiwiaWRlbnRpdHkiLCJmcm9tTWF0NCIsImZyb21BcnJheSIsImEwMSIsImEwMiIsImExMiIsImEwMCIsImExMCIsImExMSIsImEyMCIsImEyMSIsImEyMiIsImIwMSIsImIxMSIsImIyMSIsImFkam9pbnQiLCJiMDAiLCJiMDIiLCJiMTAiLCJiMTIiLCJiMjAiLCJiMjIiLCJmcm9tUXVhdCIsInoyIiwieHgiLCJ4eSIsInh6IiwieXoiLCJ6eiIsInd4Iiwid3kiLCJ3eiIsIm5vcm1hbEZyb21NYXQ0IiwiYTAzIiwiYTEzIiwiYTIzIiwiYTMwIiwiYTMxIiwiYTMyIiwiYTMzIiwiYjAzIiwiYjA0IiwiYjA1IiwiYjA2IiwiYjA3IiwiYjA4IiwiYjA5IiwiemVybyIsInh5eiIsInNjYWxpbmciLCJiMyIsIm11bHRpcGx5TG9jYWwiLCJtMSIsIm0yIiwidHJhbnNsYXRlWFlaIiwic2NhbGVYWVoiLCJtYWtlUm90YXRpb25BeGlzIiwicm90YXRlWCIsInJvdGF0ZVkiLCJyb3RhdGVaIiwiZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24iLCJmcnVzdHVtIiwicmwiLCJ0YiIsIm5mIiwiZm92eSIsInBlcnNwZWN0aXZlTEgiLCJsciIsImJ0IiwiZXllIiwiZXlleCIsImV5ZXkiLCJleWV6IiwidXB4IiwidXB5IiwidXB6IiwiY2VudGVyeCIsImNlbnRlcnkiLCJjZW50ZXJ6IiwiejAiLCJ6MSIsInlhd1BpdGNoUm9sbCIsInlhdyIsInBpdGNoIiwicm9sbCIsIl90ZW1wTWF0MSIsIl90ZW1wTWF0MiIsIm0wIiwic2V0V29ybGRNYXRyaXgiLCJ1cHBlck1heCIsInBlcmNlbnRhZ2UiLCJzaU5leHQiLCJ4VW5pdFZlYzMiLCJ5VW5pdFZlYzMiLCJ0bXB2ZWMiLCJ0bXBNYXQzIiwiUXVhdGVybmlvbiIsImxlbmd0aFNxIiwiZG90IiwiYXoiLCJhdyIsInJvdGF0aW9uVG8iLCJzZXRBeGlzQW5nbGUiLCJzZXRBeGVzIiwiZnJvbU1hdDMiLCJzbGVycCIsImNvc29tIiwic2NhbGUwIiwic2NhbGUxIiwib21lZ2EiLCJzaW5vbSIsImludkRvdCIsImNvbmp1Z2F0ZSIsImNhbGN1bGF0ZVciLCJtYXQiLCJmUm9vdCIsImZUcmFjZSIsInZlY3RvciIsInpTY2FsZSIsInZlYzQiLCJ0bXBNYXQ0IiwidG1wUXVhdCIsInNpbkFtcCIsImNvc0FtcCIsInNldFRvUG9sYXIiLCJhemltdXRoIiwiZnV6enlFcXVhbHMiLCJkaXN0YW5jZVNxIiwic2V0TGVuZ3RoIiwibm9ybWFsaXplUmlnaHRIYW5kIiwibm9ybWFsaXplTGVmdEhhbmQiLCJ0cmFuc2Zvcm1NYXQzIiwicmVmbGVjdCIsIm5vcm1hbCIsIm1pcnJvciIsImNyb3NzVmVjdG9ycyIsInRyYW5zZm9ybUNvb3JkaW5hdGVzIiwidHoiLCJ0cmFuc2Zvcm1RdWF0IiwicXkiLCJxeiIsInF3IiwiaXoiLCJpdyIsImx3Iiwidmlld1giLCJ2aWV3WSIsInZpZXdXaWR0aCIsInZpZXdIZWlnaHQiLCJGT1JXQVJEIiwibXVsIiwiZGlzdCIsImRpc3RTcSIsImxlblNxIiwicG9pbnQxIiwicG9pbnQyIiwiTm9ybWFsaXplIiwiY3VycmVudEFuZ2xlIiwidGFyZ2V0QW5nbGUiLCJhbmdsZTEiLCJhbmdsZTIiLCJNYXRoV3JhcCIsIkJldHdlZW5Qb2ludHMiLCJCZXR3ZWVuUG9pbnRzWSIsIkJldHdlZW5ZIiwiQ291bnRlckNsb2Nrd2lzZSIsIlJhbmRvbURlZ3JlZXMiLCJTaG9ydGVzdEJldHdlZW4iLCJXcmFwRGVncmVlcyIsIkJldHdlZW5Qb2ludHNTcXVhcmVkIiwiQ2hlYnlzaGV2IiwiUG93ZXIiLCJTbmFrZSIsIlNxdWFyZWQiLCJCYWNrIiwiQm91bmNlIiwiQ2lyY3VsYXIiLCJDdWJpYyIsIkVsYXN0aWMiLCJFeHBvIiwiUXVhZHJhdGljIiwiUXVhcnRpYyIsIlF1aW50aWMiLCJTaW5lIiwiU3RlcHBlZCIsIlBvd2VyMCIsIlBvd2VyMSIsIk91dCIsIlBvd2VyMiIsIlBvd2VyMyIsIlBvd2VyNCIsIlF1YXJ0IiwiUXVpbnQiLCJDaXJjIiwiSW5PdXQiLCJhbXBsaXR1ZGUiLCJhc2luIiwiRXF1YWwiLCJHcmVhdGVyVGhhbiIsIkxlc3NUaGFuIiwiRWFzaW5nIiwiRnV6enkiLCJJbnRlcnBvbGF0aW9uIiwiUG93MiIsIlNuYXAiLCJBdmVyYWdlIiwiQmVybnN0ZWluIiwiQ2VpbFRvIiwiRGlmZmVyZW5jZSIsIkZsb29yVG8iLCJHZXRTcGVlZCIsIklzRXZlbiIsIklzRXZlblN0cmljdCIsIk1heEFkZCIsIk1pblN1YiIsIlBlcmNlbnQiLCJSYW5kb21YWSIsIlJvdW5kQXdheUZyb21aZXJvIiwiUm91bmRUbyIsIlNpbkNvc1RhYmxlR2VuZXJhdG9yIiwiVG9YWSIsIldpdGhpbiIsIlAwIiwiUDEiLCJQMiIsIlAzIiwiQmV6aWVyIiwiR2V0TmV4dCIsIklzU2l6ZSIsIklzVmFsdWUiLCJzZWVkcyIsInMwIiwic2lnbnMiLCJzb3ciLCJmcmFjIiwiaW50ZWdlckluUmFuZ2UiLCJyZWFsSW5SYW5nZSIsImJldHdlZW4iLCJ1dWlkIiwicGljayIsIndlaWdodGVkUGljayIsIml0ZW1BdEluZGV4IiwiZ2FwIiwiUGhhc2VyIiwiQW5pbWF0aW9ucyIsIkNhY2hlIiwiQ2FtZXJhcyIsIkNvcmUiLCJDcmVhdGUiLCJDdXJ2ZXMiLCJEaXNwbGF5IiwiRE9NIiwiUGh5c2ljcyIsIlBsdWdpbnMiLCJSZW5kZXJlciIsIlNjZW5lIiwiU2NlbmVzIiwiU3RydWN0cyIsIlRleHR1cmVzIiwiVGlsZW1hcHMiLCJUaW1lIiwiVHdlZW5zIiwiU291bmQiLCJBcmNhZGVJbWFnZSIsIkFjY2VsZXJhdGlvbiIsIkFuZ3VsYXIiLCJEZWJ1ZyIsIkRyYWciLCJFbmFibGUiLCJGcmljdGlvbiIsIkdyYXZpdHkiLCJJbW1vdmFibGUiLCJNYXNzIiwiVmVsb2NpdHkiLCJEaXN0YW5jZVNxdWFyZWQiLCJGYWN0b3J5IiwiTWVyZ2UiLCJPdmVybGFwQ2lyYyIsIk92ZXJsYXBSZWN0IiwiV29ybGQiLCJBcmNhZGVQaHlzaWNzIiwiZ2V0Q29uZmlnIiwid29ybGQiLCJQT1NUX1VQREFURSIsIm92ZXJsYXAiLCJvYmplY3QxIiwib2JqZWN0MiIsIm92ZXJsYXBDYWxsYmFjayIsInByb2Nlc3NDYWxsYmFjayIsImNvbGxpZGVPYmplY3RzIiwiY29sbGlkZSIsImNvbGxpZGVDYWxsYmFjayIsImNvbGxpZGVUaWxlcyIsInRpbGVzIiwib3ZlcmxhcFRpbGVzIiwiYWNjZWxlcmF0ZVRvIiwieFNwZWVkTWF4IiwieVNwZWVkTWF4IiwibWF4VmVsb2NpdHkiLCJhY2NlbGVyYXRlVG9PYmplY3QiLCJib2RpZXMiLCJmdXJ0aGVzdCIsImZhcnRoZXN0IiwibWF4VGltZSIsIm1vdmVUb09iamVjdCIsInZlbG9jaXR5RnJvbUFuZ2xlIiwidmVsb2NpdHlGcm9tUm90YXRpb24iLCJvdmVybGFwUmVjdCIsImluY2x1ZGVEeW5hbWljIiwiaW5jbHVkZVN0YXRpYyIsIm92ZXJsYXBDaXJjIiwiQXJjYWRlU3ByaXRlIiwiQm9keSIsImRlYnVnU2hvd0JvZHkiLCJkZWJ1Z1Nob3dWZWxvY2l0eSIsImRlYnVnQm9keUNvbG9yIiwiYm9keURlYnVnQ29sb3IiLCJpc0NpcmNsZSIsImFsbG93Um90YXRpb24iLCJwcmVSb3RhdGlvbiIsInNvdXJjZVdpZHRoIiwic291cmNlSGVpZ2h0IiwibmV3VmVsb2NpdHkiLCJkZWx0YU1heCIsImFsbG93RHJhZyIsImFsbG93R3Jhdml0eSIsIndvcmxkQm91bmNlIiwiY3VzdG9tQm91bmRzUmVjdGFuZ2xlIiwib25Xb3JsZEJvdW5kcyIsIm9uQ29sbGlkZSIsIm9uT3ZlcmxhcCIsImZyaWN0aW9uIiwidXNlRGFtcGluZyIsImFuZ3VsYXJWZWxvY2l0eSIsImFuZ3VsYXJBY2NlbGVyYXRpb24iLCJhbmd1bGFyRHJhZyIsIm1heEFuZ3VsYXIiLCJtYXNzIiwiZmFjaW5nIiwiRkFDSU5HX05PTkUiLCJpbW1vdmFibGUiLCJtb3ZlcyIsImN1c3RvbVNlcGFyYXRlWCIsImN1c3RvbVNlcGFyYXRlWSIsIm92ZXJsYXBYIiwib3ZlcmxhcFkiLCJvdmVybGFwUiIsImVtYmVkZGVkIiwiY29sbGlkZVdvcmxkQm91bmRzIiwiY2hlY2tDb2xsaXNpb24iLCJub25lIiwidG91Y2hpbmciLCJ3YXNUb3VjaGluZyIsImJsb2NrZWQiLCJzeW5jQm91bmRzIiwicGh5c2ljc1R5cGUiLCJEWU5BTUlDX0JPRFkiLCJfc3giLCJfc3kiLCJfZHgiLCJfZHkiLCJfdHgiLCJfdHkiLCJ1cGRhdGVCb3VuZHMiLCJyZWNhbGMiLCJhc3giLCJhc3kiLCJ1cGRhdGVDZW50ZXIiLCJyZXNldEZsYWdzIiwid2lsbFN0ZXAiLCJjaGVja1dvcmxkQm91bmRzIiwiV09STERfQk9VTkRTIiwiRkFDSU5HX0xFRlQiLCJGQUNJTkdfUklHSFQiLCJGQUNJTkdfVVAiLCJGQUNJTkdfRE9XTiIsInNldEJvdW5kc1JlY3RhbmdsZSIsIndhc1NldCIsInNldENpcmNsZSIsIm9uRmxvb3IiLCJvbkNlaWxpbmciLCJvbldhbGwiLCJkZWx0YUFic1giLCJkZWx0YUFic1kiLCJkZWx0YVhGaW5hbCIsImRlbHRhWUZpbmFsIiwiZHJhd0RlYnVnIiwidmVsb2NpdHlEZWJ1Z0NvbG9yIiwid2lsbERyYXdEZWJ1ZyIsInNldENvbGxpZGVXb3JsZEJvdW5kcyIsImJvdW5jZVgiLCJib3VuY2VZIiwic2V0Qm91bmNlWCIsInNldEJvdW5jZVkiLCJzZXRWZWxvY2l0eSIsInNldFZlbG9jaXR5WCIsInNldFZlbG9jaXR5WSIsInNldE1heFZlbG9jaXR5Iiwic2V0TWF4U3BlZWQiLCJzZXRCb3VuY2UiLCJzZXRBY2NlbGVyYXRpb24iLCJzZXRBY2NlbGVyYXRpb25YIiwic2V0QWNjZWxlcmF0aW9uWSIsInNldEFsbG93RHJhZyIsInNldEFsbG93R3Jhdml0eSIsInNldEFsbG93Um90YXRpb24iLCJzZXREcmFnIiwic2V0RHJhZ1giLCJzZXREcmFnWSIsInNldEZyaWN0aW9uIiwic2V0RnJpY3Rpb25YIiwic2V0RnJpY3Rpb25ZIiwic2V0QW5ndWxhclZlbG9jaXR5Iiwic2V0QW5ndWxhckFjY2VsZXJhdGlvbiIsInNldEFuZ3VsYXJEcmFnIiwic2V0TWFzcyIsInNldEltbW92YWJsZSIsInNldEVuYWJsZSIsIkNvbGxpZGVyIiwib3ZlcmxhcE9ubHkiLCJyZW1vdmVDb2xsaWRlciIsIlBoeXNpY3NHcm91cCIsIlN0YXRpY1BoeXNpY3NHcm91cCIsImNvbGxpZGVyIiwiYWRkQ29sbGlkZXIiLCJhZGRPdmVybGFwIiwiaXNTdGF0aWMiLCJTVEFUSUNfQk9EWSIsImVuYWJsZUJvZHkiLCJzdGF0aWNJbWFnZSIsInN0YXRpY1Nwcml0ZSIsInN0YXRpY0dyb3VwIiwiZ3JvdXAiLCJib2R5MSIsImJvZHkyIiwibWF4T3ZlcmxhcCIsImNyZWF0ZUNhbGxiYWNrSGFuZGxlciIsInJlbW92ZUNhbGxiYWNrSGFuZGxlciIsInNpbmdsZUNvbmZpZyIsImRpc2FibGVCb2R5IiwiR2V0T3ZlcmxhcFgiLCJ2MiIsIm52MSIsIm52MiIsIkdldE92ZXJsYXBZIiwiU3RhdGljQm9keSIsImRlYnVnU2hvd1N0YXRpY0JvZHkiLCJzdGF0aWNCb2R5RGVidWdDb2xvciIsInNldEdhbWVPYmplY3QiLCJ1cGRhdGVGcm9tR2FtZU9iamVjdCIsInN0YXRpY1RyZWUiLCJjcmVhdGVNdWx0aXBsZUNhbGxiYWNrSGFuZGxlciIsIkZ1enp5R3JlYXRlclRoYW4iLCJGdXp6eUxlc3NUaGFuIiwiUHJvY2Vzc1RpbGVDYWxsYmFja3MiLCJSVHJlZSIsIlNlcGFyYXRlVGlsZSIsIlNlcGFyYXRlWCIsIlNlcGFyYXRlWSIsIlRpbGVJbnRlcnNlY3RzQm9keSIsInN0YXRpY0JvZGllcyIsImNvbGxpZGVycyIsImZpeGVkU3RlcCIsIl9mcmFtZVRpbWUiLCJfZnJhbWVUaW1lTVMiLCJzdGVwc0xhc3RGcmFtZSIsIk9WRVJMQVBfQklBUyIsIlRJTEVfQklBUyIsImZvcmNlWCIsIl90b3RhbCIsIm1heEVudHJpZXMiLCJ1c2VUcmVlIiwidHJlZSIsInRyZWVNaW5NYXgiLCJjcmVhdGVEZWJ1Z0dyYXBoaWMiLCJib2R5VHlwZSIsImNoZWNrTGVmdCIsImNoZWNrUmlnaHQiLCJjaGVja1VwIiwic2V0Qm91bmRzQ29sbGlzaW9uIiwic2V0RlBTIiwiZnJhbWVyYXRlIiwiZml4ZWREZWx0YSIsIldPUkxEX1NURVAiLCJkeW5hbWljIiwiZHluYW1pY1RyZWUiLCJjb21wdXRlQW5ndWxhclZlbG9jaXR5IiwidmVsb2NpdHlEZWx0YSIsInNlcGFyYXRlIiwic2VwYXJhdGVDaXJjbGUiLCJib2R5UmVjdCIsImJvZHlDaXJjbGUiLCJyZXN1bHRYIiwicmVzdWx0WSIsIk9WRVJMQVAiLCJDT0xMSURFIiwibngiLCJueSIsImR2eCIsImR2eSIsImFuZ2xlQ29sbGlzaW9uIiwiY2lyY2xlQm9keUludGVyc2VjdHMiLCJvYmplY3QxaXNBcnJheSIsIm9iamVjdDJpc0FycmF5IiwiY29sbGlkZUhhbmRsZXIiLCJjb2xsaWRlR3JvdXBWc0dyb3VwIiwiY29sbGlkZVNwcml0ZVZzU3ByaXRlIiwiY29sbGlkZVNwcml0ZVZzR3JvdXAiLCJpc1RpbGVtYXAiLCJjb2xsaWRlU3ByaXRlVnNUaWxlbWFwTGF5ZXIiLCJjb2xsaWRlR3JvdXBWc1RpbGVtYXBMYXllciIsInNwcml0ZTEiLCJzcHJpdGUyIiwiYm9keUIiLCJib2R5QSIsIm1pbk1heCIsInNraXBJbmRleCIsInRpbGVtYXBMYXllciIsImRpZENvbGxpZGUiLCJjb2xsaWRlU3ByaXRlVnNUaWxlc0hhbmRsZXIiLCJsYXllckRhdGEiLCJsYXllciIsInRpbGVXaWR0aCIsImJhc2VUaWxlV2lkdGgiLCJ4RGlmZiIsInRpbGVIZWlnaHQiLCJiYXNlVGlsZUhlaWdodCIsIm1hcERhdGEiLCJnZXRUaWxlc1dpdGhpbldvcmxkWFkiLCJpc0xheWVyIiwidGlsZVdvcmxkUmVjdCIsImNvbGxpc2lvbiIsInRpbGVUb1dvcmxkWCIsInRpbGVUb1dvcmxkWSIsImJhc2VIZWlnaHQiLCJUSUxFX09WRVJMQVAiLCJUSUxFX0NPTExJREUiLCJncm91cDEiLCJncm91cDIiLCJ3cmFwT2JqZWN0Iiwid3JhcEFycmF5Iiwib2JqZWN0cyIsInNob3dCb2R5Iiwic2hvd1ZlbG9jaXR5IiwiYm9keUNvbG9yIiwic2V0RGVidWdCb2R5Q29sb3IiLCJzZXREYW1waW5nIiwiZW5hYmxlR2FtZU9iamVjdCIsInNob3dHYW1lT2JqZWN0IiwiZGlzYWJsZUdhbWVPYmplY3QiLCJoaWRlR2FtZU9iamVjdCIsInJlZnJlc2hCb2R5IiwiYm9kaWVzSW5SZWN0IiwiY2lyY0Zyb21Cb2R5IiwiYm9kaWVzSW5BcmVhIiwiZHluYW1pY0JvZGllcyIsImZha2VCb2R5IiwiR1JPVVAiLCJUSUxFTUFQTEFZRVIiLCJBcmNhZGUiLCJTdGF0aWNHcm91cCIsImNvbGxpc2lvbkNhbGxiYWNrIiwiY29sbGlzaW9uQ2FsbGJhY2tDb250ZXh0IiwiVGlsZUNoZWNrWCIsIlRpbGVDaGVja1kiLCJ0aWxlQmlhcyIsInRpbGVMZWZ0IiwidGlsZVRvcCIsInRpbGVSaWdodCIsInRpbGVCb3R0b20iLCJmYWNlSG9yaXpvbnRhbCIsImZhY2VMZWZ0IiwiZmFjZVJpZ2h0IiwiZmFjZVZlcnRpY2FsIiwiZmFjZVRvcCIsImZhY2VCb3R0b20iLCJQcm9jZXNzVGlsZVNlcGFyYXRpb25YIiwiUHJvY2Vzc1RpbGVTZXBhcmF0aW9uWSIsImNvbGxpZGVVcCIsImNvbGxpZGVEb3duIiwiTWF0dGVyIiwiQm9keUJvdW5kcyIsImJvdW5kc0NlbnRlciIsImNlbnRlckRpZmYiLCJwYXJzZUJvZHkiLCJib3VuZHNXaWR0aCIsImJvdW5kc0hlaWdodCIsImJvZHlDZW50ZXJYIiwiY2VudGVyT2ZNYXNzIiwiYm9keUNlbnRlclkiLCJDb21wb3NpdGUiLCJEZXRlY3RvciIsIlBhaXJzIiwiUGFpciIsIlF1ZXJ5IiwiUmVzb2x2ZXIiLCJTQVQiLCJDb25zdHJhaW50IiwiQ29tbW9uIiwiRW5naW5lIiwiU2xlZXBpbmciLCJCb2RpZXMiLCJDb21wb3NpdGVzIiwiQXhlcyIsIlN2ZyIsIlZlY3RvciIsIlZlcnRpY2VzIiwiYWRkQ29tcG9zaXRlIiwiYWRkQm9keSIsImFkZENvbnN0cmFpbnQiLCJNYXR0ZXJHYW1lT2JqZWN0IiwiTWF0dGVySW1hZ2UiLCJNYXR0ZXJTcHJpdGUiLCJNYXR0ZXJUaWxlQm9keSIsIlBoeXNpY3NFZGl0b3JQYXJzZXIiLCJQaHlzaWNzSlNPTlBhcnNlciIsIlBvaW50ZXJDb25zdHJhaW50IiwidHJhcGV6b2lkIiwic2xvcGUiLCJtYXhTaWRlcyIsInNpZGVzIiwiZnJvbVZlcnRpY2VzIiwidmVydGV4U2V0cyIsImZsYWdJbnRlcm5hbCIsInJlbW92ZUNvbGxpbmVhciIsIm1pbmltdW1BcmVhIiwiZnJvbVBhdGgiLCJmcm9tUGh5c2ljc0VkaXRvciIsImFkZFRvV29ybGQiLCJmcm9tU1ZHIiwicGF0aFRvVmVydGljZXMiLCJpbWFnZVN0YWNrIiwiY29sdW1ucyIsInJvd3MiLCJjb2x1bW5HYXAiLCJyb3dHYXAiLCJweXJhbWlkIiwiY29tcG9zaXRlIiwieE9mZnNldEEiLCJ5T2Zmc2V0QSIsInhPZmZzZXRCIiwieU9mZnNldEIiLCJjcm9zc0JyYWNlIiwibmV3dG9uc0NyYWRsZSIsImNhciIsIndoZWVsU2l6ZSIsInNvZnRCb2R5IiwicGFydGljbGVSYWRpdXMiLCJwYXJ0aWNsZU9wdGlvbnMiLCJjb25zdHJhaW50T3B0aW9ucyIsImpvaW50Iiwic3RpZmZuZXNzIiwiY29uc3RyYWludCIsInNwcmluZyIsIndvcmxkQ29uc3RyYWludCIsIm1vdXNlU3ByaW5nIiwicG9pbnRlckNvbnN0cmFpbnQiLCJ0aWxlQm9keSIsIkNvbGxpc2lvbiIsIkZvcmNlIiwiU2Vuc29yIiwiU2V0Qm9keSIsIlNsZWVwIiwiU3RhdGljIiwibWl4aW4iLCJkZWYiLCJfdGVtcFZlYzIiLCJzZXRFeGlzdGluZ0JvZHkiLCJzZXRCb2R5Iiwic2V0UmVjdGFuZ2xlIiwiTWF0dGVyQXR0cmFjdG9ycyIsIk1hdHRlckNvbGxpc2lvbkV2ZW50cyIsIk1hdHRlckxpYiIsIk1hdHRlcldyYXAiLCJNYXR0ZXJQaHlzaWNzIiwiYm9keUJvdW5kcyIsImRldGVjdG9yIiwicGFpciIsInBhaXJzIiwic2F0IiwiY29tcG9zaXRlcyIsImVuYWJsZUNvbGxpc2lvbkV2ZW50c1BsdWdpbiIsImVuYWJsZUF0dHJhY3RvclBsdWdpbiIsImVuYWJsZVdyYXBQbHVnaW4iLCJfcmVzdGluZ1RocmVzaCIsIl9yZXN0aW5nVGhyZXNoVGFuZ2VudCIsIl9wb3NpdGlvbkRhbXBlbiIsIl9wb3NpdGlvbldhcm1pbmciLCJfZnJpY3Rpb25Ob3JtYWxNdWx0aXBsaWVyIiwidXNlIiwic2V0NjBIeiIsImdldERlbHRhIiwidXBkYXRlNjBIeiIsImF1dG9VcGRhdGUiLCJzZXQzMEh6IiwidXBkYXRlMzBIeiIsImNvcnJlY3Rpb24iLCJjb250YWluc1BvaW50IiwiZ2V0TWF0dGVyQm9kaWVzIiwiaW50ZXJzZWN0UG9pbnQiLCJpbnRlcnNlY3RSZWN0Iiwib3V0c2lkZSIsInJlZ2lvbiIsImludGVyc2VjdFJheSIsInJheVdpZHRoIiwiY29sbGlzaW9ucyIsImludGVyc2VjdEJvZHkiLCJjb2xsaWRlcyIsInNldENvbGxpc2lvbkNhdGVnb3J5IiwiY29sbGlzaW9uRmlsdGVyIiwiY2F0ZWdvcnkiLCJzZXRDb2xsaXNpb25Hcm91cCIsInNldENvbGxpZGVzV2l0aCIsImNhdGVnb3JpZXMiLCJnZXRBbGxCb2RpZXMiLCJhcHBseUZvcmNlIiwiYXBwbHlGb3JjZUZyb21Qb3NpdGlvbiIsImFwcGx5Rm9yY2VGcm9tQW5nbGUiLCJnZXRDb25zdHJhaW50TGVuZ3RoIiwiYVgiLCJhWSIsImJYIiwiYlkiLCJhbGlnbkJvZHkiLCJBbmltYXRpb25Db21wb25lbnQiLCJtYXR0ZXJCb2R5IiwiY29sbGlzaW9uR3JvdXAiLCJnZXRDb2xsaXNpb25Hcm91cCIsInNldEZyb21UaWxlQ29sbGlzaW9uIiwic2V0RnJvbVRpbGVSZWN0YW5nbGUiLCJ0aWxlWCIsImdldExlZnQiLCJ0aWxlWSIsImdldFRvcCIsImNvbGxpc2lvbk9iamVjdHMiLCJvdyIsIm9oIiwicG9seWxpbmUiLCJjZW50cmUiLCJyZW1vdmVCb2R5IiwiZml4dHVyZUNvbmZpZ3MiLCJmaXh0dXJlcyIsImZjIiwiZml4dHVyZVBhcnRzIiwicGFyc2VGaXh0dXJlIiwibWF0dGVyQ29uZmlnIiwic2V0UGFydHMiLCJmaXh0dXJlQ29uZmlnIiwicGFyc2VWZXJ0aWNlcyIsImNsb2Nrd2lzZVNvcnQiLCJmbGFnQ29pbmNpZGVudFBhcnRzIiwiYW5ndWxhclN0aWZmbmVzcyIsIkJFRk9SRV9VUERBVEUiLCJnZXRCb2R5IiwiYWxsQm9kaWVzIiwibG9jYWxXb3JsZCIsImlnbm9yZVBvaW50ZXIiLCJjYW5Db2xsaWRlIiwiaGl0VGVzdEJvZHkiLCJhbmdsZUIiLCJzdG9wRHJhZyIsInJlbW92ZUNvbnN0cmFpbnQiLCJNYXR0ZXJCb2R5IiwiTWF0dGVyRXZlbnRzIiwiTWF0dGVyV29ybGQiLCJlbmdpbmUiLCJ3YWxscyIsInJ1bm5lckNvbmZpZyIsImhhc0ZQUyIsImRlbHRhTWluIiwiZGVsdGFTYW1wbGVTaXplIiwiY291bnRlclRpbWVzdGFtcCIsImZyYW1lQ291bnRlciIsInRpbWVQcmV2IiwidGltZVNjYWxlUHJldiIsImZyYW1lUmVxdWVzdElkIiwiaXNGaXhlZCIsImRlYnVnQ29uZmlnIiwic2hvd0F4ZXMiLCJzaG93QW5nbGVJbmRpY2F0b3IiLCJhbmdsZUNvbG9yIiwic2hvd0Jyb2FkcGhhc2UiLCJicm9hZHBoYXNlQ29sb3IiLCJzaG93Qm91bmRzIiwiYm91bmRzQ29sb3IiLCJ2ZWxvY2l0eUNvbG9yIiwic2hvd0NvbGxpc2lvbnMiLCJjb2xsaXNpb25Db2xvciIsInNob3dTZXBhcmF0aW9ucyIsInNlcGFyYXRpb25Db2xvciIsInNob3dTdGF0aWNCb2R5Iiwic2hvd0ludGVybmFsRWRnZXMiLCJyZW5kZXJGaWxsIiwicmVuZGVyTGluZSIsImZpbGxPcGFjaXR5IiwibGluZU9wYWNpdHkiLCJzdGF0aWNGaWxsQ29sb3IiLCJzdGF0aWNMaW5lQ29sb3IiLCJzaG93U2xlZXBpbmciLCJzdGF0aWNCb2R5U2xlZXBPcGFjaXR5Iiwic2xlZXBGaWxsQ29sb3IiLCJzbGVlcExpbmVDb2xvciIsInNob3dTZW5zb3JzIiwic2Vuc29yRmlsbENvbG9yIiwic2Vuc29yTGluZUNvbG9yIiwic2hvd1Bvc2l0aW9ucyIsInBvc2l0aW9uU2l6ZSIsInBvc2l0aW9uQ29sb3IiLCJzaG93Sm9pbnQiLCJqb2ludENvbG9yIiwiam9pbnRMaW5lT3BhY2l0eSIsImpvaW50TGluZVRoaWNrbmVzcyIsInBpblNpemUiLCJwaW5Db2xvciIsInNwcmluZ0NvbG9yIiwiYW5jaG9yQ29sb3IiLCJhbmNob3JTaXplIiwic2hvd0NvbnZleEh1bGxzIiwiaHVsbENvbG9yIiwic2V0RXZlbnRzUHJveHkiLCJzZXRDb21wb3NpdGVSZW5kZXJTdHlsZSIsImNvbnN0cmFpbnRzIiwic2V0Qm9keVJlbmRlclN0eWxlIiwic2V0Q29uc3RyYWludFJlbmRlclN0eWxlIiwiQkVGT1JFX0FERCIsIkFGVEVSX0FERCIsIkJFRk9SRV9SRU1PVkUiLCJBRlRFUl9SRU1PVkUiLCJBRlRFUl9VUERBVEUiLCJDT0xMSVNJT05fU1RBUlQiLCJDT0xMSVNJT05fQUNUSVZFIiwiQ09MTElTSU9OX0VORCIsInVwZGF0ZVdhbGwiLCJ3YWxsIiwiZnJpY3Rpb25TdGF0aWMiLCJkaXNhYmxlR3Jhdml0eSIsImVudGl0eSIsImNvbnZlcnRUaWxlbWFwTGF5ZXIiLCJnZXRUaWxlc1dpdGhpbiIsImlzQ29sbGlkaW5nIiwiY29udmVydFRpbGVzIiwibmV4dEdyb3VwIiwiaXNOb25Db2xsaWRpbmciLCJuZXh0Q2F0ZWdvcnkiLCJ0aW1pbmciLCJnZXRBbGxDb25zdHJhaW50cyIsImFsbENvbnN0cmFpbnRzIiwiZ2V0QWxsQ29tcG9zaXRlcyIsImFsbENvbXBvc2l0ZXMiLCJicm9hZHBoYXNlIiwiY29udHJvbGxlciIsInJlbmRlckdyaWQiLCJyZW5kZXJCb2R5Qm91bmRzIiwicmVuZGVyQm9kaWVzIiwicmVuZGVySm9pbnRzIiwicmVuZGVyQm9keUF4ZXMiLCJyZW5kZXJCb2R5VmVsb2NpdHkiLCJyZW5kZXJTZXBhcmF0aW9ucyIsInJlbmRlckNvbGxpc2lvbnMiLCJidWNrZXRLZXlzIiwiYnVja2V0cyIsImJ1Y2tldElkIiwiYnVja2V0V2lkdGgiLCJidWNrZXRIZWlnaHQiLCJwb3NBIiwicG9zQiIsInBlbmV0cmF0aW9uIiwiYWN0aXZlQ29udGFjdHMiLCJ2ZXJ0ZXgiLCJjb250YWN0cyIsIm5vcm1hbFBvc1giLCJub3JtYWxQb3NZIiwic3VwcG9ydHMiLCJwb3NpdGlvblByZXYiLCJpc1NsZWVwaW5nIiwicmVuZGVyQm9keSIsInJlbmRlckNvbnZleEh1bGwiLCJpc1NlbnNvciIsImNpcmNsZVJhZGl1cyIsInZlcnRMZW5ndGgiLCJ2ZXJ0IiwiaXNJbnRlcm5hbCIsIm5leHRJbmRleCIsImhzIiwicmVuZGVyQ29uc3RyYWludCIsIm5vcm1hbGlzZSIsImNvaWxzIiwiYW5jaG9ycyIsInJlc2V0Q29sbGlzaW9uSURzIiwiX25leHRDb2xsaWRpbmdHcm91cElkIiwiX25leHROb25Db2xsaWRpbmdHcm91cElkIiwiX25leHRDYXRlZ29yeSIsInJlc3RpdHV0aW9uIiwic2V0T25Db2xsaWRlIiwib25Db2xsaWRlQ2FsbGJhY2siLCJzZXRPbkNvbGxpZGVFbmQiLCJvbkNvbGxpZGVFbmRDYWxsYmFjayIsInNldE9uQ29sbGlkZUFjdGl2ZSIsIm9uQ29sbGlkZUFjdGl2ZUNhbGxiYWNrIiwic2V0T25Db2xsaWRlV2l0aCIsImFwcGx5Rm9yY2VGcm9tIiwidGhydXN0IiwidGhydXN0TGVmdCIsInRocnVzdFJpZ2h0IiwidGhydXN0QmFjayIsImFpciIsImZzdGF0aWMiLCJmcmljdGlvbkFpciIsInNldEZyaWN0aW9uQWlyIiwic2V0RnJpY3Rpb25TdGF0aWMiLCJzZXRJZ25vcmVHcmF2aXR5IiwiaWdub3JlR3Jhdml0eSIsInNldERlbnNpdHkiLCJzZXRTZW5zb3IiLCJGdXp6eUVxdWFscyIsInNldFBvbHlnb24iLCJzZXRUcmFwZXpvaWQiLCJjb214IiwiY29teSIsImNlbnRlck9mZnNldCIsImJvZHlYIiwiYm9keVkiLCJib2R5V2lkdGgiLCJib2R5SGVpZ2h0IiwicFJhZGl1cyIsInNldFZlcnRpY2VzIiwic2V0VG9TbGVlcCIsInNldEF3YWtlIiwic2V0U2xlZXBUaHJlc2hvbGQiLCJzbGVlcFRocmVzaG9sZCIsInNldFNsZWVwRXZlbnRzIiwic2V0U2xlZXBTdGFydEV2ZW50Iiwic2V0U2xlZXBFbmRFdmVudCIsIlNMRUVQX1NUQVJUIiwiU0xFRVBfRU5EIiwic2V0U3RhdGljIiwiZmFjdG9yWCIsImZhY3RvclkiLCJzZXRGaXhlZFJvdGF0aW9uIiwic2V0SW5lcnRpYSIsIlBvbHlEZWNvbXAiLCJUaWxlQm9keSIsIl9pbmVydGlhU2NhbGUiLCJuZXh0SWQiLCJ0b3JxdWUiLCJwb3NpdGlvbkltcHVsc2UiLCJwcmV2aW91c1Bvc2l0aW9uSW1wdWxzZSIsImNvbnN0cmFpbnRJbXB1bHNlIiwidG90YWxDb250YWN0cyIsImFuZ3VsYXJTcGVlZCIsIm1vdGlvbiIsImRlbnNpdHkiLCJzbG9wIiwiY2hhbWZlciIsImFuZ2xlUHJldiIsImludmVyc2VNYXNzIiwiaW5lcnRpYSIsImludmVyc2VJbmVydGlhIiwiX29yaWdpbmFsIiwiZ3Jhdml0eVNjYWxlIiwib25Db2xsaWRlV2l0aCIsIl9pbml0UHJvcGVydGllcyIsInNldENlbnRyZSIsImF1dG9IdWxsIiwiaHVsbCIsImh1bGxDZW50cmUiLCJfdG90YWxQcm9wZXJ0aWVzIiwicm90YXRlQWJvdXQiLCJ0cmFuc2xhdGlvbiIsInRvdGFsQXJlYSIsInRvdGFsSW5lcnRpYSIsImRlbHRhVGltZSIsImRlbHRhVGltZVNxdWFyZWQiLCJ2ZWxvY2l0eVByZXZYIiwidmVsb2NpdHlQcmV2WSIsIm11bHQiLCJpc01vZGlmaWVkIiwic2V0TW9kaWZpZWQiLCJ1cGRhdGVQYXJlbnRzIiwiY2hpbGRDb21wb3NpdGUiLCJyZW1vdmVDb21wb3NpdGUiLCJjb21wb3NpdGVBIiwiY29tcG9zaXRlQiIsInJlbW92ZUNvbXBvc2l0ZUF0IiwicmVtb3ZlQm9keUF0IiwicmVtb3ZlQ29uc3RyYWludEF0Iiwia2VlcFN0YXRpYyIsInJlYmFzZSIsInJlY3Vyc2l2ZSIsImJyb2FkcGhhc2VQYWlycyIsInBhaXJzVGFibGUiLCJtaWRwaGFzZVRlc3RzIiwib3ZlcmxhcHMiLCJwYXJ0QSIsInBhcnRCIiwicHJldmlvdXNDb2xsaXNpb24iLCJuYXJyb3dwaGFzZVRlc3RzIiwicmV1c2VkIiwibmFycm93UmV1c2VDb3VudCIsImNvbGxpZGVkIiwibmFycm93RGV0ZWN0aW9ucyIsImZpbHRlckEiLCJmaWx0ZXJCIiwicGFpcnNMaXN0IiwiZm9yY2VVcGRhdGUiLCJidWNrZXQiLCJncmlkQ2hhbmdlZCIsImJyb2FkcGhhc2VUZXN0cyIsIm5ld1JlZ2lvbiIsIl9nZXRSZWdpb24iLCJfcmVnaW9uVW5pb24iLCJzdGFydENvbCIsImVuZENvbCIsInN0YXJ0Um93IiwiZW5kUm93IiwiX2dldEJ1Y2tldElkIiwiaXNJbnNpZGVOZXdSZWdpb24iLCJpc0luc2lkZU9sZFJlZ2lvbiIsIl9idWNrZXRSZW1vdmVCb2R5IiwiX2NyZWF0ZUJ1Y2tldCIsIl9idWNrZXRBZGRCb2R5IiwiX2NyZWF0ZUFjdGl2ZVBhaXJzTGlzdCIsInJlZ2lvbkEiLCJyZWdpb25CIiwiX2NyZWF0ZVJlZ2lvbiIsImNvbHVtbiIsInBhaXJJZCIsInBhaXJLZXlzIiwic2VwYXJhdGlvbiIsImNvbmZpcm1lZEFjdGl2ZSIsInRpbWVDcmVhdGVkIiwidGltZVVwZGF0ZWQiLCJwYXJlbnRBIiwicGFyZW50QiIsImNvbnRhY3QiLCJzdXBwb3J0Q291bnQiLCJfcGFpck1heElkbGVMaWZlIiwiY29sbGlzaW9uU3RhcnQiLCJjb2xsaXNpb25BY3RpdmUiLCJjb2xsaXNpb25FbmQiLCJyZW1vdmVPbGQiLCJwYWlySW5kZXgiLCJpbmRleGVzVG9SZW1vdmUiLCJyYXlBbmdsZSIsInJheUxlbmd0aCIsInJheVgiLCJyYXlZIiwicHJlU29sdmVQb3NpdGlvbiIsImFjdGl2ZUNvdW50Iiwic29sdmVQb3NpdGlvbiIsIm5vcm1hbFgiLCJub3JtYWxZIiwicG9zaXRpb25JbXB1bHNlQSIsInBvc2l0aW9uSW1wdWxzZUIiLCJjb250YWN0U2hhcmUiLCJib2R5QnRvQVgiLCJib2R5QnRvQVkiLCJpbXB1bHNlQ29lZmZpY2llbnQiLCJwb3N0U29sdmVQb3NpdGlvbiIsInByZVNvbHZlVmVsb2NpdHkiLCJ0YW5nZW50IiwiY29udGFjdFZlcnRleCIsIm5vcm1hbEltcHVsc2UiLCJ0YW5nZW50SW1wdWxzZSIsImltcHVsc2UiLCJ0ZW1wQSIsInNvbHZlVmVsb2NpdHkiLCJ0aW1lU2NhbGVTcXVhcmVkIiwidGVtcEIiLCJ0ZW1wQyIsInRlbXBEIiwidGVtcEUiLCJvZmZzZXRBIiwib2Zmc2V0QiIsInZlbG9jaXR5UG9pbnRBIiwidmVsb2NpdHlQb2ludEIiLCJyZWxhdGl2ZVZlbG9jaXR5Iiwibm9ybWFsVmVsb2NpdHkiLCJ0YW5nZW50VmVsb2NpdHkiLCJ0YW5nZW50U3BlZWQiLCJ0YW5nZW50VmVsb2NpdHlEaXJlY3Rpb24iLCJub3JtYWxGb3JjZSIsIm1heEZyaWN0aW9uIiwib0FjTiIsIm9CY04iLCJzaGFyZSIsImNvbnRhY3ROb3JtYWxJbXB1bHNlIiwiY29udGFjdFRhbmdlbnRJbXB1bHNlIiwib3ZlcmxhcEFCIiwib3ZlcmxhcEJBIiwibWluT3ZlcmxhcCIsImNhblJldXNlUHJldkNvbCIsImF4aXNCb2R5QSIsImF4aXNCb2R5IiwiYXhpc0JvZHlCIiwiYXhpc051bWJlciIsIl9vdmVybGFwQXhlcyIsInZlcnRpY2VzQiIsIl9maW5kU3VwcG9ydHMiLCJ2ZXJ0aWNlc0EiLCJuZWciLCJwcm9qZWN0aW9uQSIsInByb2plY3Rpb25CIiwiX3Byb2plY3RUb0F4aXMiLCJ2ZXJ0ZXhBIiwidmVydGV4QiIsIm5lYXJlc3REaXN0YW5jZSIsInZlcnRleFRvQm9keSIsImJvZHlBUG9zaXRpb24iLCJfd2FybWluZyIsIl90b3JxdWVEYW1wZW4iLCJfbWluTGVuZ3RoIiwiaW5pdGlhbFBvaW50QSIsImluaXRpYWxQb2ludEIiLCJkYW1waW5nIiwiYW5nbGVBIiwicHJlU29sdmVBbGwiLCJzb2x2ZUFsbCIsImZpeGVkQSIsImZpeGVkQiIsInNvbHZlIiwicG9pbnRBV29ybGQiLCJwb2ludEJXb3JsZCIsImN1cnJlbnRMZW5ndGgiLCJtYXNzVG90YWwiLCJyZXNpc3RhbmNlVG90YWwiLCJwb3N0U29sdmVBbGwiLCJfbmV4dElkIiwiX3NlZWQiLCJfbm93U3RhcnRUaW1lIiwiYXJnc1N0YXJ0IiwiZGVlcENsb25lIiwiY2hvb3NlIiwiY2hvaWNlcyIsImlzRWxlbWVudCIsIkhUTUxFbGVtZW50IiwiaXNTdHJpbmciLCJ3ZWJraXROb3ciLCJfc2VlZGVkUmFuZG9tIiwiY29sb3JUb051bWJlciIsImNvbG9yU3RyaW5nIiwibG9nTGV2ZWwiLCJoYXlzdGFjayIsIm5lZWRsZSIsInRvcG9sb2dpY2FsU29ydCIsImdyYXBoIiwidmlzaXRlZCIsIl90b3BvbG9naWNhbFNvcnQiLCJuZWlnaGJvcnMiLCJuZWlnaGJvciIsImZ1bmNzIiwiX2NoYWluZWQiLCJsYXN0UmVzdWx0IiwiY2hhaW5QYXRoQmVmb3JlIiwiY2hhaW5QYXRoQWZ0ZXIiLCJNZXRyaWNzIiwicG9zaXRpb25JdGVyYXRpb25zIiwidmVsb2NpdHlJdGVyYXRpb25zIiwiY29uc3RyYWludEl0ZXJhdGlvbnMiLCJlbmFibGVTbGVlcGluZyIsImV4dGVuZGVkIiwiX2JvZGllc0FwcGx5R3Jhdml0eSIsIl9ib2RpZXNVcGRhdGUiLCJhZnRlckNvbGxpc2lvbnMiLCJfYm9kaWVzQ2xlYXJGb3JjZXMiLCJlbmdpbmVBIiwiZW5naW5lQiIsIndvcmxkQm91bmRzIiwibmV3Q2FsbGJhY2tzIiwiZXZlbnRDbG9uZSIsInVzZXMiLCJuYXJyb3dSZXVzZSIsIm5hcnJvd0VmZiIsIm1pZEVmZiIsImJyb2FkRWZmIiwiX3JlZ2lzdHJ5IiwiaXNQbHVnaW4iLCJyZWdpc3RlcmVkIiwicGx1Z2luVmVyc2lvbiIsInZlcnNpb25QYXJzZSIsInJlZ2lzdGVyZWRWZXJzaW9uIiwiZGVwZW5kZW5jeSIsImRlcGVuZGVuY3lQYXJzZSIsImlzVXNlZCIsImlzRm9yIiwiZm9yIiwidmVyc2lvblNhdGlzZmllcyIsImRlcGVuZGVuY2llcyIsInNvcnRlZERlcGVuZGVuY2llcyIsIl93YXJuZWQiLCJzaWxlbnQiLCJ0cmFja2VkIiwicGFyc2VkQmFzZSIsImlkZW50aWZpZXJzIiwiaXNSYW5nZSIsInByZXJlbGVhc2UiLCJyYW5nZVBhcnNlZCIsInJhbmdlUGFydHMiLCJ2ZXJzaW9uUGFyc2VkIiwidmVyc2lvblBhcnRzIiwiX21vdGlvbldha2VUaHJlc2hvbGQiLCJfbW90aW9uU2xlZXBUaHJlc2hvbGQiLCJfbWluQmlhcyIsInRpbWVGYWN0b3IiLCJtaW5Nb3Rpb24iLCJtYXhNb3Rpb24iLCJzbGVlcENvdW50ZXIiLCJzbGVlcGluZ0JvZHkiLCJtb3ZpbmdCb2R5Iiwid2FzU2xlZXBpbmciLCJkZWNvbXAiLCJxdWFsaXR5IiwicXVhbGl0eU1pbiIsInF1YWxpdHlNYXgiLCJ2ZXJ0aWNlc1BhdGgiLCJ0aGV0YSIsImlzQ29udmV4IiwiY29uY2F2ZSIsIm1ha2VDQ1ciLCJyZW1vdmVDb2xsaW5lYXJQb2ludHMiLCJkZWNvbXBvc2VkIiwicXVpY2tEZWNvbXAiLCJjaHVua1ZlcnRpY2VzIiwibWF4RGlzdGFuY2UiLCJwYXYiLCJwYnYiLCJkYSIsIm1hZ25pdHVkZVNxdWFyZWQiLCJkYiIsImxhc3RCb2R5IiwiYm9keUFIZWlnaHQiLCJib2R5QVdpZHRoIiwiYm9keUJIZWlnaHQiLCJib2R5QyIsImFjdHVhbFJvd3MiLCJsYXN0Qm9keVdpZHRoIiwid2hlZWxBT2Zmc2V0Iiwid2hlZWxCT2Zmc2V0Iiwid2hlZWxBIiwid2hlZWxCIiwiYXhlbEEiLCJheGVsQiIsImdyYWRpZW50IiwiYm91bmRzQSIsImJvdW5kc0IiLCJzYW1wbGVMZW5ndGgiLCJzZWdtZW50c1F1ZXVlIiwibGFzdFNlZ21lbnQiLCJseCIsImx5IiwicGF0aFNlZ1R5cGUiLCJpc1JlbGF0aXZlIiwiYWRkU2VnbWVudFBvaW50Iiwic2VnVHlwZSIsInBhdGhTZWdUeXBlQXNMZXR0ZXIiLCJfc3ZnUGF0aFRvQWJzb2x1dGUiLCJnZXRUb3RhbExlbmd0aCIsInBhdGhTZWdMaXN0IiwibnVtYmVyT2ZJdGVtcyIsImdldFBhdGhTZWdBdExlbmd0aCIsImdldFBvaW50QXRMZW5ndGgiLCJzZWdzIiwic2VnIiwicmVwbGFjZUl0ZW0iLCJjcmVhdGVTVkdQYXRoU2VnTW92ZXRvQWJzIiwiY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0FicyIsImNyZWF0ZVNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzIiwiY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzIiwiY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0FicyIsImNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMiLCJjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0FicyIsImNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzIiwiY3JlYXRlU1ZHUGF0aFNlZ0FyY0FicyIsImxhcmdlQXJjRmxhZyIsInN3ZWVwRmxhZyIsInZlY3RvckEiLCJ2ZWN0b3JCIiwiY3Jvc3MzIiwidmVjdG9yQyIsInNjYWxhciIsIm1lYW4iLCJhdmVyYWdlIiwic2lnbmVkIiwibnVtZXJhdG9yIiwiZGVub21pbmF0b3IiLCJ2ZXJ0aWNlIiwibmV4dFZlcnRpY2UiLCJuZXdWZXJ0aWNlcyIsInByZXZWZXJ0ZXgiLCJuZXh0VmVydGV4IiwiY3VycmVudFJhZGl1cyIsInByZXZOb3JtYWwiLCJuZXh0Tm9ybWFsIiwiZGlhZ29uYWxSYWRpdXMiLCJyYWRpdXNWZWN0b3IiLCJtaWROb3JtYWwiLCJzY2FsZWRWZXJ0ZXgiLCJhdHRyYWN0b3JzIiwiYXR0cmFjdG9yIiwiZm9yY2VWZWN0b3IiLCJBdHRyYWN0b3JzIiwiZ3Jhdml0eUNvbnN0YW50IiwiYlRvQSIsIm1hdHRlciIsIm9iamVjdEJvdW5kcyIsImxpbmVJbnQiLCJsMSIsImwyIiwic2NhbGFyX2VxIiwibGluZVNlZ21lbnRzSW50ZXJzZWN0IiwidHJpYW5nbGVBcmVhIiwiaXNMZWZ0IiwiaXNMZWZ0T24iLCJpc1JpZ2h0IiwiaXNSaWdodE9uIiwiZWRnZXMiLCJwb2x5Z29uR2V0Q3V0RWRnZXMiLCJwb2x5Z29uU2xpY2UiLCJwb2x5Z29uUXVpY2tEZWNvbXAiLCJyZWZsZXhWZXJ0aWNlcyIsInN0ZWluZXJQb2ludHMiLCJtYXhsZXZlbCIsInVwcGVySW50IiwibG93ZXJJbnQiLCJ1cHBlckRpc3QiLCJsb3dlckRpc3QiLCJjbG9zZXN0RGlzdCIsInVwcGVySW5kZXgiLCJsb3dlckluZGV4IiwiY2xvc2VzdEluZGV4IiwibG93ZXJQb2x5IiwidXBwZXJQb2x5IiwicG9seSIsInBvbHlnb25Jc1JlZmxleCIsInBvbHlnb25BdCIsImdldEludGVyc2VjdGlvblBvaW50Iiwic3FkaXN0IiwicG9seWdvbkFwcGVuZCIsInBvbHlnb25DYW5TZWUyIiwiaXNTaW1wbGUiLCJjb2xsaW5lYXIiLCJyZW1vdmVEdXBsaWNhdGVQb2ludHMiLCJwaSIsInBvaW50c19lcSIsInBvbHlnb25SZXZlcnNlIiwidG1wUG9pbnQxIiwidG1wUG9pbnQyIiwidGhyZXNob2xkQW5nbGUiLCJhYiIsImJjIiwibWFnQSIsIm1hZ0IiLCJ0bXBMaW5lMSIsInRtcExpbmUyIiwicG9seWdvbkNhblNlZSIsInBvbHlnb25Db3B5IiwidGFyZ2V0UG9seSIsInBvbHlnb25DbGVhciIsInRtcDEiLCJ0bXAyIiwidG1wUG9seSIsIm5EaWFncyIsImN1dEVkZ2VzIiwicG9seXMiLCJjdXRFZGdlIiwiQmFzZVBsdWdpbiIsIkdsb2JhbCIsIkNvcmVTY2VuZSIsImNvcmVQbHVnaW5zIiwiY3VzdG9tUGx1Z2lucyIsInNjZW5lUGx1Z2lucyIsIl9wZW5kaW5nR2xvYmFsIiwiX3BlbmRpbmdTY2VuZSIsImdsb2JhbFBsdWdpbnMiLCJwbHVnaW5LZXkiLCJwbHVnaW5MaXN0IiwiZ2V0Q29yZSIsImdldERlZmF1bHRTY2VuZVBsdWdpbnMiLCJmcm9tTG9hZGVyIiwiaGFzQ3VzdG9tIiwicmVnaXN0ZXJDdXN0b20iLCJydW5BcyIsImNyZWF0ZUVudHJ5IiwiZ2V0Q3VzdG9tIiwiYXV0b1N0YXJ0IiwiZ2V0Q3VzdG9tQ2xhc3MiLCJyZW1vdmVHbG9iYWxQbHVnaW4iLCJyZW1vdmVDdXN0b20iLCJyZW1vdmVTY2VuZVBsdWdpbiIsInJlZ2lzdGVyR2FtZU9iamVjdCIsImZhY3RvcnlDYWxsYmFjayIsImNyZWF0b3JDYWxsYmFjayIsInJlbW92ZUdhbWVPYmplY3QiLCJyZW1vdmVGcm9tRmFjdG9yeSIsInJlbW92ZUZyb21DcmVhdG9yIiwicmVnaXN0ZXJGaWxlVHlwZSIsImRlc3Ryb3lDdXN0b21QbHVnaW5zIiwiZGVzdHJveUNvcmVQbHVnaW5zIiwiU2NlbmVQbHVnaW4iLCJmaXhTZXRUYXJnZXQiLCJzZXRUYXJnZXRBdFRpbWUiLCJzZXRUYXJnZXRWYWx1ZUF0VGltZSIsIkF1ZGlvQ29udGV4dCIsIndlYmtpdEF1ZGlvQ29udGV4dCIsImNyZWF0ZUdhaW4iLCJjcmVhdGVHYWluTm9kZSIsImNyZWF0ZURlbGF5IiwiY3JlYXRlRGVsYXlOb2RlIiwiY3JlYXRlU2NyaXB0UHJvY2Vzc29yIiwiY3JlYXRlSmF2YVNjcmlwdE5vZGUiLCJjcmVhdGVQZXJpb2RpY1dhdmUiLCJjcmVhdGVXYXZlVGFibGUiLCJpbnRlcm5hbF9jcmVhdGVHYWluIiwiZ2FpbiIsImludGVybmFsX2NyZWF0ZURlbGF5IiwibWF4RGVsYXlUaW1lIiwiZGVsYXlUaW1lIiwiaW50ZXJuYWxfY3JlYXRlQnVmZmVyU291cmNlIiwiY3JlYXRlQnVmZmVyU291cmNlIiwiaW50ZXJuYWxfc3RhcnQiLCJub3RlR3JhaW5PbiIsIm5vdGVPbiIsImludGVybmFsX3N0b3AiLCJub3RlT2ZmIiwiaW50ZXJuYWxfY3JlYXRlRHluYW1pY3NDb21wcmVzc29yIiwiY3JlYXRlRHluYW1pY3NDb21wcmVzc29yIiwia25lZSIsInJlZHVjdGlvbiIsImF0dGFjayIsInJlbGVhc2UiLCJpbnRlcm5hbF9jcmVhdGVCaXF1YWRGaWx0ZXIiLCJjcmVhdGVCaXF1YWRGaWx0ZXIiLCJkZXR1bmUiLCJpbnRlcm5hbF9jcmVhdGVPc2NpbGxhdG9yIiwiY3JlYXRlT3NjaWxsYXRvciIsInNldFBlcmlvZGljV2F2ZSIsInNldFdhdmVUYWJsZSIsIk9mZmxpbmVBdWRpb0NvbnRleHQiLCJ3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0IiwiQ2hlYXBBcnJheSIsImZha2VUeXBlIiwibm93T2Zmc2V0IiwibmF2aWdhdGlvblN0YXJ0IiwiTVVMVElQTFkiLCJTQ1JFRU4iLCJPVkVSTEFZIiwiREFSS0VOIiwiTElHSFRFTiIsIkNPTE9SX0RPREdFIiwiQ09MT1JfQlVSTiIsIkhBUkRfTElHSFQiLCJTT0ZUX0xJR0hUIiwiRElGRkVSRU5DRSIsIkVYQ0xVU0lPTiIsIkhVRSIsIlNBVFVSQVRJT04iLCJDT0xPUiIsIkxVTUlOT1NJVFkiLCJTT1VSQ0VfSU4iLCJTT1VSQ0VfT1VUIiwiU09VUkNFX0FUT1AiLCJERVNUSU5BVElPTl9PVkVSIiwiREVTVElOQVRJT05fSU4iLCJERVNUSU5BVElPTl9PVVQiLCJERVNUSU5BVElPTl9BVE9QIiwiTElHSFRFUiIsIkNPUFkiLCJYT1IiLCJDYW52YXNTbmFwc2hvdCIsIkNhbWVyYUV2ZW50cyIsIkdldEJsZW5kTW9kZXMiLCJkcmF3Q291bnQiLCJnYW1lQ2FudmFzIiwiY29udGV4dE9wdGlvbnMiLCJzbmFwc2hvdFN0YXRlIiwiZ2V0UGl4ZWwiLCJlbmNvZGVyIiwicmVzZXRUcmFuc2Zvcm0iLCJwYXJlbnRUcmFuc2Zvcm1NYXRyaXgiLCJmcmFtZVgiLCJmcmFtZVkiLCJmcmFtZVdpZHRoIiwiZnJhbWVIZWlnaHQiLCJtb2RlcyIsInVzZU5ldyIsInNvIiwiZ2FtZU9iamVjdE1hdHJpeCIsIlNuYXBzaG90IiwiV2ViR0wiLCJjb3B5Q2FudmFzIiwiaW1hZ2UxIiwidG9EYXRhVVJMIiwiaW1hZ2UyIiwic291cmNlQ2FudmFzIiwiaXNGcmFtZWJ1ZmZlciIsImJ1ZmZlcldpZHRoIiwiZHJhd2luZ0J1ZmZlcldpZHRoIiwiYnVmZmVySGVpZ2h0IiwiZHJhd2luZ0J1ZmZlckhlaWdodCIsInBpeGVsIiwiZGVzdFkiLCJyZWFkUGl4ZWxzIiwiZGVzdEluZGV4IiwiZ2V0Q29tcG9uZW50Q291bnQiLCJnbENvbnRleHQiLCJXZWJHTFBpcGVsaW5lIiwidmVydFNoYWRlciIsImZyYWdTaGFkZXIiLCJ0b3BvbG9neSIsImZsdXNoTG9ja2VkIiwiYWRkQXR0cmlidXRlIiwiZ2xGb3JtYXRzIiwic2hvdWxkRmx1c2giLCJzZXRWZXJ0ZXhCdWZmZXIiLCJkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkiLCJvbkJpbmQiLCJvblByZVJlbmRlciIsIm9uUmVuZGVyIiwib25Qb3N0UmVuZGVyIiwic2V0RmxvYXQxIiwic2V0RmxvYXQzIiwic2V0RmxvYXQ0Iiwic2V0RmxvYXQxdiIsInNldEZsb2F0MnYiLCJzZXRGbG9hdDN2Iiwic2V0RmxvYXQ0diIsInNldEludDEiLCJzZXRJbnQyIiwic2V0SW50MyIsInNldEludDQiLCJzZXRNYXRyaXgyIiwic2V0TWF0cml4MyIsIklzU2l6ZVBvd2VyT2ZUd28iLCJTcGxpY2VPbmUiLCJXZWJHTFNuYXBzaG90IiwiRm9yd2FyZERpZmZ1c2VMaWdodFBpcGVsaW5lIiwiVGV4dHVyZVRpbnRQaXBlbGluZSIsIlRleHR1cmVUaW50U3RyaXBQaXBlbGluZSIsImNvbnRleHRDcmVhdGlvbkNvbmZpZyIsInN0ZW5jaWwiLCJjb250ZXh0Q3JlYXRpb24iLCJtYXhUZXh0dXJlcyIsIm1heFRleHR1cmVTaXplIiwibmF0aXZlVGV4dHVyZXMiLCJjb250ZXh0TG9zdCIsImN1cnJlbnRBY3RpdmVUZXh0dXJlVW5pdCIsImN1cnJlbnRUZXh0dXJlcyIsImN1cnJlbnRGcmFtZWJ1ZmZlciIsImN1cnJlbnRQcm9ncmFtIiwiY3VycmVudFZlcnRleEJ1ZmZlciIsImN1cnJlbnRJbmRleEJ1ZmZlciIsImN1cnJlbnRTY2lzc29yRW5hYmxlZCIsImN1cnJlbnRTY2lzc29yIiwic2Npc3NvclN0YWNrIiwiY29udGV4dExvc3RIYW5kbGVyIiwiY29udGV4dFJlc3RvcmVkSGFuZGxlciIsInN1cHBvcnRlZEV4dGVuc2lvbnMiLCJleHRlbnNpb25zIiwiY29tcHJlc3Npb24iLCJFVEMxIiwiUFZSVEMiLCJTM1RDIiwiZGVmYXVsdENhbWVyYSIsImlzQ29udGV4dExvc3QiLCJPTkVfTUlOVVNfU1JDX0FMUEhBIiwiZXF1YXRpb24iLCJGVU5DX0FERCIsIkRTVF9BTFBIQSIsIkRTVF9DT0xPUiIsIk9ORV9NSU5VU19TUkNfQ09MT1IiLCJGVU5DX1JFVkVSU0VfU1VCVFJBQ1QiLCJCWVRFIiwiU0hPUlQiLCJVTlNJR05FRF9TSE9SVCIsIm1hdDIiLCJ1bmlmb3JtTWF0cml4MmZ2IiwibWF0MyIsInVuaWZvcm1NYXRyaXgzZnYiLCJ1bmlmb3JtMWYiLCJ1bmlmb3JtMWZ2IiwidW5pZm9ybTFpdiIsInVuaWZvcm0yZnYiLCJ1bmlmb3JtMmkiLCJ1bmlmb3JtMml2IiwidW5pZm9ybTNmIiwidW5pZm9ybTNmdiIsInVuaWZvcm0zaSIsInVuaWZvcm0zaXYiLCJ1bmlmb3JtNGYiLCJ1bmlmb3JtNGZ2IiwidW5pZm9ybTRpIiwidW5pZm9ybTRpdiIsImV4dHMiLCJnZXRTdXBwb3J0ZWRFeHRlbnNpb25zIiwiZ2V0UGFyYW1ldGVyIiwiTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFMiLCJNQVhfVEVYVFVSRV9TSVpFIiwiZXh0U3RyaW5nIiwid2tFeHRTdHJpbmciLCJnZXRFeHRlbnNpb24iLCJERVBUSF9URVNUIiwiQ1VMTF9GQUNFIiwiQkxFTkQiLCJhZGRQaXBlbGluZSIsImJsYW5rIiwiYmluZEZyYW1lYnVmZmVyIiwiRlJBTUVCVUZGRVIiLCJTQ0lTU09SX1RFU1QiLCJoYXNFeHRlbnNpb24iLCJleHRlbnNpb25OYW1lIiwicmVtb3ZlUGlwZWxpbmUiLCJwaXBlbGluZUluc3RhbmNlIiwic2V0U2Npc3NvciIsImhhc0FjdGl2ZVN0ZW5jaWxNYXNrIiwiY2FtTWFzayIsIkRFUFRIX0JVRkZFUl9CSVQiLCJibGVuZE1vZGVJZCIsImJsZW5kRXF1YXRpb24iLCJibGVuZEZ1bmNTZXBhcmF0ZSIsImJsZW5kRnVuYyIsImFkZEJsZW5kTW9kZSIsInVwZGF0ZUJsZW5kTW9kZSIsInJlbW92ZUJsZW5kTW9kZSIsInRleHR1cmVVbml0IiwidXBkYXRlU2Npc3NvciIsInNldEluZGV4QnVmZmVyIiwiaW5kZXhCdWZmZXIiLCJFTEVNRU5UX0FSUkFZX0JVRkZFUiIsIm1pcExldmVsIiwicG1hIiwiZm9yY2VTaXplIiwiY3JlYXRlVGV4dHVyZSIsIlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCIsImdlbmVyYXRlTWlwbWFwIiwiaXNBbHBoYVByZW11bHRpcGxpZWQiLCJhZGREZXB0aFN0ZW5jaWxCdWZmZXIiLCJkZXB0aFN0ZW5jaWxCdWZmZXIiLCJjcmVhdGVSZW5kZXJidWZmZXIiLCJiaW5kUmVuZGVyYnVmZmVyIiwiUkVOREVSQlVGRkVSIiwicmVuZGVyYnVmZmVyU3RvcmFnZSIsIkRFUFRIX1NURU5DSUwiLCJmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlciIsIkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCIsImZyYW1lYnVmZmVyVGV4dHVyZTJEIiwiQ09MT1JfQVRUQUNITUVOVDAiLCJjaGVja0ZyYW1lYnVmZmVyU3RhdHVzIiwiRlJBTUVCVUZGRVJfQ09NUExFVEUiLCIzNjA1NCIsIjM2MDU1IiwiMzYwNTciLCIzNjA2MSIsInZlcnRleFNoYWRlciIsImZyYWdtZW50U2hhZGVyIiwidnMiLCJjcmVhdGVTaGFkZXIiLCJWRVJURVhfU0hBREVSIiwiRlJBR01FTlRfU0hBREVSIiwiY29tcGlsZVNoYWRlciIsImdldFNoYWRlclBhcmFtZXRlciIsIkNPTVBJTEVfU1RBVFVTIiwiZ2V0U2hhZGVySW5mb0xvZyIsImF0dGFjaFNoYWRlciIsImxpbmtQcm9ncmFtIiwiZ2V0UHJvZ3JhbVBhcmFtZXRlciIsIkxJTktfU1RBVFVTIiwiZ2V0UHJvZ3JhbUluZm9Mb2ciLCJpbml0aWFsRGF0YU9yU2l6ZSIsImJ1ZmZlclVzYWdlIiwiY3JlYXRlQnVmZmVyIiwiYnVmZmVyRGF0YSIsImNyZWF0ZUluZGV4QnVmZmVyIiwicHJlUmVuZGVyQ2FtZXJhIiwiZ2V0Q3VycmVudFN0ZW5jaWxNYXNrIiwiY2FtZXJhTWFzayIsInBvc3RSZW5kZXJDYW1lcmEiLCJzcmNDYW52YXMiLCJkc3RUZXh0dXJlIiwibm9SZXBlYXQiLCJ1cGRhdGVDYW52YXNUZXh0dXJlIiwiY3JlYXRlQ2FudmFzVGV4dHVyZSIsIndyYXBwaW5nIiwiY3JlYXRlVmlkZW9UZXh0dXJlIiwic3JjVmlkZW8iLCJ1cGRhdGVWaWRlb1RleHR1cmUiLCJzZXRUZXh0dXJlRmlsdGVyIiwiZ2xGaWx0ZXIiLCJnZXRNYXhUZXh0dXJlcyIsImdldE1heFRleHR1cmVTaXplIiwiUGlwZWxpbmVzIiwiU2hhZGVyU291cmNlRlMiLCJTaGFkZXJTb3VyY2VWUyIsIm1heFF1YWRzIiwicmVzb2x1dGlvbkRpcnR5IiwiVEVYVFVSRTEiLCJMSUdIVF9DT1VOVCIsImRlZmF1bHROb3JtYWxNYXAiLCJpbnZlcnNlUm90YXRpb25NYXRyaXgiLCJtdnBVcGRhdGUiLCJzZXROb3JtYWxNYXAiLCJsaWdodE1hbmFnZXIiLCJsaWdodENvdW50IiwibGlnaHROYW1lIiwiY3VycmVudE5vcm1hbE1hcFJvdGF0aW9uIiwic3JjWCIsInNyY1kiLCJ1T2Zmc2V0Iiwidk9mZnNldCIsIm5vcm1hbFRleHR1cmUiLCJkYXRhU291cmNlIiwidGlsZXNldCIsInNldE5vcm1hbE1hcFJvdGF0aW9uIiwiYmF0Y2hlcyIsIk1vZGVsVmlld1Byb2plY3Rpb24iLCJyZW5kZXJlckNvbmZpZyIsInRlbXBUcmlhbmdsZSIsImZpcnN0UXVhZCIsInByZXZRdWFkIiwicG9seWdvbkNhY2hlIiwibXZwSW5pdCIsInJlcXVpcmVUZXh0dXJlQmF0Y2giLCJwdXNoQmF0Y2giLCJiYXRjaExlbmd0aCIsImJhdGNoTmV4dCIsIm5UZXh0dXJlIiwiYmF0Y2hDb3VudCIsImJhdGNoVmVydGV4Q291bnQiLCJiYXRjaCIsImhhc0ZsdXNoZWQiLCJza2lwRmxpcCIsInBvbHlnb25JbmRleEFycmF5IiwicG9pbnQwIiwiYUxpbmVXaWR0aCIsImJMaW5lV2lkdGgiLCJhbDAiLCJhbDEiLCJibDAiLCJibDEiLCJseDAiLCJseTAiLCJseDMiLCJseTMiLCJiclgiLCJiclkiLCJibFgiLCJibFkiLCJ0clgiLCJ0clkiLCJ0bFgiLCJ0bFkiLCJUUklBTkdMRV9TVFJJUCIsIm1vZGVsTWF0cml4RGlydHkiLCJ2aWV3TWF0cml4RGlydHkiLCJwcm9qZWN0aW9uTWF0cml4RGlydHkiLCJtb2RlbE1hdHJpeCIsIm1vZGVsSWRlbnRpdHkiLCJtb2RlbFNjYWxlIiwibW9kZWxUcmFuc2xhdGUiLCJtb2RlbFJvdGF0ZVgiLCJtb2RlbFJvdGF0ZVkiLCJtb2RlbFJvdGF0ZVoiLCJ2aWV3SWRlbnRpdHkiLCJ2aWV3U2NhbGUiLCJ2aWV3VHJhbnNsYXRlIiwidmlld1JvdGF0ZVgiLCJ2aWV3Um90YXRlWSIsInZpZXdSb3RhdGVaIiwidmlld0xvYWQyRCIsInZpZXdMb2FkIiwicHJvaklkZW50aXR5IiwibmVhckZhciIsInByb2pQZXJzcCIsImZvdlkiLCJhc3BlY3RSYXRpbyIsImZvdiIsIkdldElubmVySGVpZ2h0IiwiY2FudmFzQm91bmRzIiwicGFyZW50SXNXaW5kb3ciLCJwYXJlbnRTaXplIiwiU0NBTEVfTU9ERSIsIl9yZXNldFpvb20iLCJkaXNwbGF5U2NhbGUiLCJOT19DRU5URVIiLCJfY3JlYXRlZEZ1bGxzY3JlZW5UYXJnZXQiLCJfbGFzdENoZWNrIiwiX2NoZWNrT3JpZW50YXRpb24iLCJvcmllbnRhdGlvbkNoYW5nZSIsIndpbmRvd1Jlc2l6ZSIsImZ1bGxTY3JlZW5DaGFuZ2UiLCJmdWxsU2NyZWVuRXJyb3IiLCJwYXJzZUNvbmZpZyIsInNldEFzcGVjdE1vZGUiLCJnZXRQYXJlbnRCb3VuZHMiLCJzZXRQYXJlbnQiLCJnZXRQYXJlbnQiLCJwYXJlbnRXaWR0aCIsInBhcmVudFNjYWxlWCIsInBhcmVudEhlaWdodCIsInBhcmVudFNjYWxlWSIsIlpPT00iLCJNQVhfWk9PTSIsImdldE1heFpvb20iLCJzZXRNaW4iLCJzZXRNYXgiLCJET01SZWN0IiwibmV3V2lkdGgiLCJuZXdIZWlnaHQiLCJsb2NrT3JpZW50YXRpb24iLCJtb3pMb2NrT3JpZW50YXRpb24iLCJtc0xvY2tPcmllbnRhdGlvbiIsInNldFBhcmVudFNpemUiLCJzZXRHYW1lU2l6ZSIsInNldEFzcGVjdFJhdGlvIiwic3R5bGVXaWR0aCIsInN0eWxlSGVpZ2h0Iiwic2V0TWF4Wm9vbSIsInVwZGF0ZVNjYWxlIiwidXBkYXRlT3JpZW50YXRpb24iLCJzZXRDU1MiLCJkb21TdHlsZSIsIm1hcmdpblRvcCIsIm5ld09yaWVudGF0aW9uIiwiT1JJRU5UQVRJT05fQ0hBTkdFIiwiem9vbUgiLCJ6b29tViIsIkNFTlRFUl9IT1JJWk9OVEFMTFkiLCJDRU5URVJfVkVSVElDQUxMWSIsImNsaWVudFJlY3QiLCJjbGllbnRMZWZ0IiwiY2xpZW50VG9wIiwic3RhcnRGdWxsc2NyZWVuIiwiZnVsbHNjcmVlbk9wdGlvbnMiLCJuYXZpZ2F0aW9uVUkiLCJmc1Byb21pc2UiLCJmc1RhcmdldCIsImdldEZ1bGxzY3JlZW5UYXJnZXQiLCJBTExPV19LRVlCT0FSRF9JTlBVVCIsImZ1bGxzY3JlZW5TdWNjZXNzSGFuZGxlciIsImZ1bGxzY3JlZW5FcnJvckhhbmRsZXIiLCJGVUxMU0NSRUVOX1VOU1VQUE9SVEVEIiwiRU5URVJfRlVMTFNDUkVFTiIsInJlbW92ZUZ1bGxzY3JlZW5UYXJnZXQiLCJGVUxMU0NSRUVOX0ZBSUxFRCIsInN0b3BGdWxsc2NyZWVuIiwiTEVBVkVfRlVMTFNDUkVFTiIsInRvZ2dsZUZ1bGxzY3JlZW4iLCJvbkZ1bGxTY3JlZW5DaGFuZ2UiLCJvbkZ1bGxTY3JlZW5FcnJvciIsImlzRnVsbHNjcmVlbiIsImlzUG9ydHJhaXQiLCJpc0xhbmRzY2FwZSIsImlzR2FtZVBvcnRyYWl0IiwiaXNHYW1lTGFuZHNjYXBlIiwiQ0VOVEVSX0JPVEgiLCJXSURUSF9DT05UUk9MU19IRUlHSFQiLCJIRUlHSFRfQ09OVFJPTFNfV0lEVEgiLCJGSVQiLCJFTlZFTE9QIiwiTk9fWk9PTSIsIlpPT01fMlgiLCJaT09NXzRYIiwiT3JpZW50YXRpb24iLCJVcHBlcmNhc2VGaXJzdCIsImRlZmF1bHRTeXN0ZW0iLCJzY2VuZVN5c3RlbXMiLCJJbmplY3Rpb25NYXAiLCJtYWtlIiwic2NlbmVQbHVnaW4iLCJhcmNhZGVQaHlzaWNzIiwiaW1wYWN0UGh5c2ljcyIsIm1hdHRlclBoeXNpY3MiLCJTeXN0ZW1zIiwiX3N0YXJ0IiwiX3F1ZXVlIiwiaXNQcm9jZXNzaW5nIiwiYm9vdFF1ZXVlIiwibmV3U2NlbmUiLCJjcmVhdGVTY2VuZUZyb21JbnN0YW5jZSIsImNyZWF0ZVNjZW5lRnJvbU9iamVjdCIsImNyZWF0ZVNjZW5lRnJvbUZ1bmN0aW9uIiwicHJvY2Vzc1F1ZXVlIiwicGVuZGluZ0xlbmd0aCIsInF1ZXVlTGVuZ3RoIiwia2V5QSIsImtleUIiLCJnZXRLZXkiLCJzY2VuZVRvUmVtb3ZlIiwiZ2V0U2NlbmUiLCJpc1RyYW5zaXRpb25pbmciLCJib290U2NlbmUiLCJJTklUIiwiaXNUcmFuc2l0aW9uIiwiVFJBTlNJVElPTl9JTklUIiwidHJhbnNpdGlvbkZyb20iLCJ0cmFuc2l0aW9uRHVyYXRpb24iLCJMT0FESU5HIiwib25CbHVyUGF1c2VkU291bmRzIiwidW5sb2NrIiwicGF5bG9hZENvbXBsZXRlIiwiUlVOTklORyIsIlNMRUVQSU5HIiwiQ1JFQVRJTkciLCJERVNUUk9ZRUQiLCJDUkVBVEUiLCJzY2VuZUNhbGxiYWNrIiwiaW5SZXZlcnNlIiwicXVldWVPcCIsInN3aXRjaCIsInNjZW5lQSIsInNjZW5lQiIsIm1vdmVBYm92ZSIsInRlbXBTY2VuZSIsIm1vdmVCZWxvdyIsInN3YXBQb3NpdGlvbiIsImR1bXAiLCJQQVVTRUQiLCJ0cmFuc2l0aW9uUHJvZ3Jlc3MiLCJfZHVyYXRpb24iLCJfd2lsbFNsZWVwIiwiX3dpbGxSZW1vdmUiLCJ0cmFuc2l0aW9uIiwiY2hlY2tWYWxpZFRyYW5zaXRpb24iLCJhbGxvd0lucHV0IiwidGFyZ2V0U2V0dGluZ3MiLCJ0YXJnZXRTeXMiLCJsYXVuY2giLCJTZXR0aW5ncyIsIkdldFBoeXNpY3NQbHVnaW5zIiwiR2V0U2NlbmVQbHVnaW5zIiwiaW5zdGFsbExvY2FsIiwiUkVOREVSIiwiVFJBTlNJVElPTl9XQUtFIiwiaXNUcmFuc2l0aW9uT3V0IiwiaXNUcmFuc2l0aW9uSW4iLCJCYXNlU291bmQiLCJ0b3RhbFJhdGUiLCJ0b3RhbER1cmF0aW9uIiwiY3VycmVudENvbmZpZyIsImN1cnJlbnRNYXJrZXIiLCJwZW5kaW5nUmVtb3ZlIiwidXBkYXRlTWFya2VyIiwibWFya2VyTmFtZSIsInJlc2V0Q29uZmlnIiwiYXBwbHlDb25maWciLCJjYWxjdWxhdGVSYXRlIiwidG90YWxEZXR1bmUiLCJkZXR1bmVSYXRlIiwiQmFzZVNvdW5kTWFuYWdlciIsImpzb25DYWNoZSIsInNvdW5kcyIsInBhdXNlT25CbHVyIiwiX3JhdGUiLCJfZGV0dW5lIiwidW5sb2NrZWQiLCJvbkdhbWVCbHVyIiwib25HYW1lRm9jdXMiLCJhZGRBdWRpb1Nwcml0ZSIsInNwcml0ZW1hcCIsIm1hcmtlckNvbmZpZyIsInBsYXlBdWRpb1Nwcml0ZSIsInNwcml0ZU5hbWUiLCJyZW1vdmVCeUtleSIsImZvckVhY2hBY3RpdmVTb3VuZCIsInN0b3BBbGwiLCJTVE9QX0FMTCIsInN0b3BCeUtleSIsIlVOTE9DS0VEIiwic2V0UmF0ZSIsIkdMT0JBTF9SQVRFIiwic2V0RGV0dW5lIiwiR0xPQkFMX0RFVFVORSIsIkhUTUw1QXVkaW9Tb3VuZE1hbmFnZXIiLCJOb0F1ZGlvU291bmRNYW5hZ2VyIiwiV2ViQXVkaW9Tb3VuZE1hbmFnZXIiLCJERUNPREVEIiwiREVDT0RFRF9BTEwiLCJERVRVTkUiLCJHTE9CQUxfVk9MVU1FIiwiTE9PUCIsIkxPT1BFRCIsIk1VVEUiLCJQTEFZIiwiUkFURSIsIlNFRUsiLCJTVE9QIiwiVk9MVU1FIiwiSFRNTDVBdWRpb1NvdW5kIiwidGFncyIsInByZXZpb3VzVGltZSIsInBpY2tBbmRQbGF5QXVkaW9UYWciLCJzdG9wQW5kUmVsZWFzZUF1ZGlvVGFnIiwicGlja0F1ZGlvVGFnIiwicGxheUNhdGNoUHJvbWlzZSIsIm92ZXJyaWRlIiwib3RoZXJTb3VuZHMiLCJzZWxlY3RlZFNvdW5kIiwiYXVkaW9QbGF5RGVsYXkiLCJlbmRUaW1lIiwibG9vcEVuZE9mZnNldCIsInVwZGF0ZU11dGUiLCJ1cGRhdGVWb2x1bWUiLCJzZXRTZWVrIiwibG9ja2VkQWN0aW9uc1F1ZXVlIiwiX211dGUiLCJfdm9sdW1lIiwibW92ZWQiLCJkZXRlY3RNb3ZlIiwibG9ja2VkVGFncyIsImxhc3RUYWciLCJsb2NrZWRBY3Rpb24iLCJXZWJBdWRpb1NvdW5kIiwiTm9BdWRpb1NvdW5kIiwibG9vcFNvdXJjZSIsIm11dGVOb2RlIiwidm9sdW1lTm9kZSIsInBsYXlUaW1lIiwibG9vcFRpbWUiLCJyYXRlVXBkYXRlcyIsImhhc0VuZGVkIiwiaGFzTG9vcGVkIiwiY29ubmVjdCIsInN0b3BBbmRSZW1vdmVCdWZmZXJTb3VyY2UiLCJjcmVhdGVBbmRTdGFydEJ1ZmZlclNvdXJjZSIsImNyZWF0ZUFuZFN0YXJ0TG9vcEJ1ZmZlclNvdXJjZSIsImdldExvb3BUaW1lIiwic2V0VmFsdWVBdFRpbWUiLCJvbmVuZGVkIiwiZXYiLCJkaXNjb25uZWN0Iiwic3RvcEFuZFJlbW92ZUxvb3BCdWZmZXJTb3VyY2UiLCJsYXN0UmF0ZVVwZGF0ZUN1cnJlbnRUaW1lIiwibGFzdFJhdGVVcGRhdGUiLCJCYXNlNjRUb0FycmF5QnVmZmVyIiwiY3JlYXRlQXVkaW9Db250ZXh0IiwibWFzdGVyTXV0ZU5vZGUiLCJtYXN0ZXJWb2x1bWVOb2RlIiwic2V0QXVkaW9Db250ZXh0IiwiZGVjb2RlQXVkaW8iLCJhdWRpb0tleSIsImF1ZGlvRmlsZXMiLCJzdXNwZW5kIiwiYWRkQ2FsbGJhY2siLCJza2lwQ2FsbGJhY2siLCJnZXRBcnJheSIsImdyb3VwRW5kIiwiZ2V0QWN0aXZlIiwicXVpY2tzZWxlY3QiLCJyYnVzaCIsIl9tYXhFbnRyaWVzIiwiX21pbkVudHJpZXMiLCJmaW5kSXRlbSIsImVxdWFsc0ZuIiwiY2FsY0JCb3giLCJ0b0JCb3giLCJkaXN0QkJveCIsImRlc3ROb2RlIiwiY3JlYXRlTm9kZSIsImxlYWYiLCJjb21wYXJlTm9kZU1pblgiLCJjb21wYXJlTm9kZU1pblkiLCJiYm94QXJlYSIsImJib3hNYXJnaW4iLCJtdWx0aVNlbGVjdCIsIm1pZCIsImJib3giLCJjaGlsZEJCb3giLCJub2Rlc1RvU2VhcmNoIiwiX2J1aWxkIiwiX3NwbGl0Um9vdCIsInRtcE5vZGUiLCJfaW5zZXJ0IiwiZ29pbmdVcCIsIl9jb25kZW5zZSIsImNvbXBhcmVNaW5YIiwiY29tcGFyZU1pblkiLCJyaWdodDIiLCJyaWdodDMiLCJOMiIsIk4xIiwiX2Nob29zZVN1YnRyZWUiLCJ0YXJnZXROb2RlIiwiZW5sYXJnZW1lbnQiLCJtaW5BcmVhIiwibWluRW5sYXJnZW1lbnQiLCJpbnNlcnRQYXRoIiwiX3NwbGl0IiwiX2FkanVzdFBhcmVudEJCb3hlcyIsIl9jaG9vc2VTcGxpdEF4aXMiLCJzcGxpdEluZGV4IiwiX2Nob29zZVNwbGl0SW5kZXgiLCJuZXdOb2RlIiwiYmJveDEiLCJiYm94MiIsIl9hbGxEaXN0TWFyZ2luIiwibGVmdEJCb3giLCJyaWdodEJCb3giLCJjYWxsYmFja0tleSIsImludGVyc2VjdCIsImFzcGVjdE1vZGUiLCJfcGFyZW50Iiwic25hcFRvIiwic2V0U25hcCIsInNuYXBXaWR0aCIsInNuYXBIZWlnaHQiLCJnZXROZXdXaWR0aCIsImdldE5ld0hlaWdodCIsImNvbnN0cmFpbiIsImNoZWNrUGFyZW50IiwiZml0IiwibmV3UmF0aW8iLCJmaXRUbyIsImVudmVsb3AiLCJQUk9DRVNTX1FVRVVFX0FERCIsIlBST0NFU1NfUVVFVUVfUkVNT1ZFIiwiQ2FudmFzVGV4dHVyZSIsIl9zb3VyY2UiLCJzZXRQaXhlbCIsInB1dERhdGEiLCJkaXJ0eVgiLCJkaXJ0eVkiLCJkaXJ0eVdpZHRoIiwiZGlydHlIZWlnaHQiLCJnZXRQaXhlbHMiLCJnZXRDYW52YXMiLCJpc1Bvd2VyT2YyIiwicm90YXRlZCIsImN1c3RvbURhdGEiLCJjdXQiLCJzb3VyY2VTaXplIiwic3ByaXRlU291cmNlU2l6ZSIsInNldFRyaW0iLCJhY3R1YWxXaWR0aCIsImFjdHVhbEhlaWdodCIsImRlc3RYIiwicnciLCJyaCIsImNyb3BSaWdodCIsImNyb3BCb3R0b20iLCJpaCIsInVwZGF0ZVVWc0ludmVydGVkIiwiVGV4dHVyZVNvdXJjZSIsIlRFWFRVUkVfTUlTU0lOR19FUlJPUiIsImdldFRleHR1cmVTb3VyY2VJbmRleCIsImluY2x1ZGVCYXNlIiwiZnJhbWVOYW1lIiwiZ2V0RGF0YVNvdXJjZUltYWdlIiwic2V0RGF0YVNvdXJjZSIsInNldEZpbHRlciIsImZpbHRlck1vZGUiLCJQYXJzZXIiLCJfdGVtcENhbnZhcyIsIl90ZW1wQ29udGV4dCIsIkxPQUQiLCJ1cGRhdGVQZW5kaW5nIiwiRVJST1IiLCJhZGRCYXNlNjQiLCJjaGVja0tleSIsImFkZFJlbmRlclRleHR1cmUiLCJnZW5lcmF0ZSIsInNraXBDYWNoZSIsImFkZEF0bGFzSlNPTkhhc2giLCJzaW5nbGVBdGxhc0ZpbGUiLCJhdGxhc0RhdGEiLCJKU09OQXJyYXkiLCJKU09OSGFzaCIsIkF0bGFzWE1MIiwiVW5pdHlZQU1MIiwiU3ByaXRlU2hlZXQiLCJhZGRTcHJpdGVTaGVldEZyb21BdGxhcyIsImF0bGFzS2V5IiwiYXRsYXNGcmFtZSIsInNoZWV0IiwiU3ByaXRlU2hlZXRGcm9tQXRsYXMiLCJjbG9uZUZyYW1lIiwiZ2V0VGV4dHVyZUtleXMiLCJjb21wcmVzc2lvbkFsZ29yaXRobSIsIm5hdHVyYWxXaWR0aCIsIm5hdHVyYWxIZWlnaHQiLCJpc1ZpZGVvIiwiSFRNTFZpZGVvRWxlbWVudCIsIldlYkdMVGV4dHVyZSIsIkZpbHRlck1vZGUiLCJQYXJzZXJzIiwicGl2b3QiLCJzaGVldEZyYW1lIiwic2hlZXRXaWR0aCIsInNoZWV0SGVpZ2h0IiwibGVmdFBhZCIsImxlZnRXaWR0aCIsInJpZ2h0V2lkdGgiLCJ0b3BQYWQiLCJ0b3BIZWlnaHQiLCJib3R0b21IZWlnaHQiLCJmcmFtZUluZGV4Iiwic2hlZXRZIiwidG9wUm93IiwiYm90dG9tUm93Iiwic2hlZXRYIiwibGVmdFJvdyIsInJpZ2h0Um93IiwidHJpbVdpZHRoIiwidHJpbUhlaWdodCIsImltYWdlSGVpZ2h0IiwieWFtbCIsImxpbmVSZWdFeHAiLCJwcmV2U3ByaXRlIiwiY3VycmVudFNwcml0ZSIsImlzTGlzdCIsIkFSUkFZXzJEIiwiSW1hZ2VDb2xsZWN0aW9uIiwiZmlyc3RnaWQiLCJpbWFnZVdpZHRoIiwiaW1hZ2VNYXJnaW4iLCJpbWFnZVNwYWNpbmciLCJjb250YWluc0ltYWdlSW5kZXgiLCJpbWFnZUluZGV4IiwiZ2lkIiwiRm9ybWF0cyIsIk1hcERhdGEiLCJUaWxlbWFwIiwiaW5zZXJ0TnVsbCIsInRpbGVtYXBEYXRhIiwiVGlsZSIsImJhc2VXaWR0aCIsInBpeGVsWCIsInBpeGVsWSIsInVwZGF0ZVBpeGVsWFkiLCJnZXRUaWxlQ29sbGlzaW9uR3JvdXAiLCJnZXRUaWxlRGF0YSIsImdldFJpZ2h0IiwiZ2V0Qm90dG9tIiwiZ2V0Q2VudGVyWCIsImdldENlbnRlclkiLCJpc0ludGVyZXN0aW5nIiwiZmFjZXMiLCJoYXNJbnRlcmVzdGluZ0ZhY2UiLCJyZXNldENvbGxpc2lvbiIsInJlY2FsY3VsYXRlRmFjZXMiLCJjYWxjdWxhdGVGYWNlc0F0IiwicmVzZXRGYWNlcyIsInNldENvbGxpc2lvbiIsInNldENvbGxpc2lvbkNhbGxiYWNrIiwiZ2lkTWFwIiwiRHluYW1pY1RpbGVtYXBMYXllciIsIkxheWVyRGF0YSIsIlN0YXRpY1RpbGVtYXBMYXllciIsIlRpbGVtYXBDb21wb25lbnRzIiwiVGlsZXNldCIsInJlbmRlck9yZGVyIiwid2lkdGhJblBpeGVscyIsImhlaWdodEluUGl4ZWxzIiwiaW1hZ2VDb2xsZWN0aW9ucyIsImxheWVycyIsInRpbGVzZXRzIiwiY3VycmVudExheWVySW5kZXgiLCJzZXRSZW5kZXJPcmRlciIsIm9yZGVycyIsImFkZFRpbGVzZXRJbWFnZSIsInRpbGVzZXROYW1lIiwidGlsZU1hcmdpbiIsInRpbGVTcGFjaW5nIiwiZ2V0VGlsZXNldEluZGV4Iiwic2V0VGlsZVNpemUiLCJzZXRTcGFjaW5nIiwic2V0SW1hZ2UiLCJjb252ZXJ0TGF5ZXJUb1N0YXRpYyIsImdldExheWVyIiwiZHluYW1pY0xheWVyIiwic3RhdGljTGF5ZXIiLCJsYXllckluZGV4Iiwic3JjVGlsZVgiLCJzcmNUaWxlWSIsImRlc3RUaWxlWCIsImRlc3RUaWxlWSIsIl9pc1N0YXRpY0NhbGwiLCJDb3B5IiwiY3JlYXRlQmxhbmtEeW5hbWljTGF5ZXIiLCJnZXRMYXllckluZGV4IiwiY3JlYXRlRHluYW1pY0xheWVyIiwibGF5ZXJJRCIsImdldFRpbGVMYXllck5hbWVzIiwiY3JlYXRlRnJvbU9iamVjdHMiLCJzcHJpdGVDb25maWciLCJvYmplY3RMYXllciIsImdldE9iamVjdExheWVyIiwiZ2V0T2JqZWN0TGF5ZXJOYW1lcyIsImZsaXBwZWRIb3Jpem9udGFsIiwiZmxpcHBlZFZlcnRpY2FsIiwiY3JlYXRlRnJvbVRpbGVzIiwicmVwbGFjZW1lbnRzIiwiQ3JlYXRlRnJvbVRpbGVzIiwiY3JlYXRlU3RhdGljTGF5ZXIiLCJyZW1vdmVBbGxMYXllcnMiLCJGaWxsIiwiZmlsdGVyT2JqZWN0cyIsImZpbHRlclRpbGVzIiwiZmlsdGVyaW5nT3B0aW9ucyIsIkZpbHRlclRpbGVzIiwiZmluZEJ5SW5kZXgiLCJGaW5kQnlJbmRleCIsImZpbmRPYmplY3QiLCJmaW5kVGlsZSIsIkZpbmRUaWxlIiwiZm9yRWFjaFRpbGUiLCJGb3JFYWNoVGlsZSIsImdldEltYWdlSW5kZXgiLCJnZXRJbWFnZUxheWVyTmFtZXMiLCJnZXRMYXllckluZGV4QnlOYW1lIiwiZ2V0VGlsZUF0Iiwibm9uTnVsbCIsIkdldFRpbGVBdCIsImdldFRpbGVBdFdvcmxkWFkiLCJHZXRUaWxlQXRXb3JsZFhZIiwiR2V0VGlsZXNXaXRoaW4iLCJnZXRUaWxlc1dpdGhpblNoYXBlIiwiR2V0VGlsZXNXaXRoaW5TaGFwZSIsIkdldFRpbGVzV2l0aGluV29ybGRYWSIsImdldFRpbGVzZXQiLCJoYXNUaWxlQXQiLCJIYXNUaWxlQXQiLCJoYXNUaWxlQXRXb3JsZFhZIiwiSGFzVGlsZUF0V29ybGRYWSIsInNldExheWVyIiwicHV0VGlsZUF0IiwiUHV0VGlsZUF0IiwicHV0VGlsZUF0V29ybGRYWSIsIlB1dFRpbGVBdFdvcmxkWFkiLCJwdXRUaWxlc0F0IiwidGlsZXNBcnJheSIsIlB1dFRpbGVzQXQiLCJyYW5kb21pemUiLCJSYW5kb21pemUiLCJDYWxjdWxhdGVGYWNlc0F0IiwiY2FsY3VsYXRlRmFjZXNXaXRoaW4iLCJDYWxjdWxhdGVGYWNlc1dpdGhpbiIsInJlbW92ZUxheWVyIiwiZGVzdHJveUxheWVyIiwicmVtb3ZlVGlsZSIsInJlcGxhY2VJbmRleCIsInJlbW92ZVRpbGVBdCIsInJlcGxhY2VXaXRoTnVsbCIsIlJlbW92ZVRpbGVBdCIsInJlbW92ZVRpbGVBdFdvcmxkWFkiLCJSZW1vdmVUaWxlQXRXb3JsZFhZIiwicmVuZGVyRGVidWciLCJzdHlsZUNvbmZpZyIsIlJlbmRlckRlYnVnIiwicmVuZGVyRGVidWdGdWxsIiwicmVwbGFjZUJ5SW5kZXgiLCJuZXdJbmRleCIsIlJlcGxhY2VCeUluZGV4IiwidXBkYXRlTGF5ZXIiLCJTZXRDb2xsaXNpb24iLCJzZXRDb2xsaXNpb25CZXR3ZWVuIiwiU2V0Q29sbGlzaW9uQmV0d2VlbiIsInNldENvbGxpc2lvbkJ5UHJvcGVydHkiLCJTZXRDb2xsaXNpb25CeVByb3BlcnR5Iiwic2V0Q29sbGlzaW9uQnlFeGNsdXNpb24iLCJTZXRDb2xsaXNpb25CeUV4Y2x1c2lvbiIsInNldENvbGxpc2lvbkZyb21Db2xsaXNpb25Hcm91cCIsIlNldENvbGxpc2lvbkZyb21Db2xsaXNpb25Hcm91cCIsInNldFRpbGVJbmRleENhbGxiYWNrIiwiU2V0VGlsZUluZGV4Q2FsbGJhY2siLCJzZXRUaWxlTG9jYXRpb25DYWxsYmFjayIsIlNldFRpbGVMb2NhdGlvbkNhbGxiYWNrIiwic2V0QmFzZVRpbGVTaXplIiwibWFwV2lkdGgiLCJtYXBIZWlnaHQiLCJzZXRMYXllclRpbGVTaXplIiwic3dhcEJ5SW5kZXgiLCJTd2FwQnlJbmRleCIsIlRpbGVUb1dvcmxkWCIsIlRpbGVUb1dvcmxkWSIsInRpbGVUb1dvcmxkWFkiLCJUaWxlVG9Xb3JsZFhZIiwid2VpZ2h0ZWRSYW5kb21pemUiLCJ3ZWlnaHRlZEluZGV4ZXMiLCJXZWlnaHRlZFJhbmRvbWl6ZSIsIndvcmxkVG9UaWxlWCIsInNuYXBUb0Zsb29yIiwiV29ybGRUb1RpbGVYIiwid29ybGRUb1RpbGVZIiwiV29ybGRUb1RpbGVZIiwid29ybGRUb1RpbGVYWSIsIldvcmxkVG9UaWxlWFkiLCJmdW5jdGlvbk5hbWUiLCJQYXJzZVRvVGlsZW1hcCIsInRpbGVQcm9wZXJ0aWVzIiwidGlsZURhdGEiLCJ0ZXhDb29yZGluYXRlcyIsImdldFRpbGVQcm9wZXJ0aWVzIiwidGlsZUluZGV4IiwiY29udGFpbnNUaWxlSW5kZXgiLCJvYmplY3Rncm91cCIsImdldFRpbGVUZXh0dXJlQ29vcmRpbmF0ZXMiLCJ1cGRhdGVUaWxlRGF0YSIsInJvd0NvdW50IiwiY29sQ291bnQiLCJhYm92ZSIsImJlbG93IiwidGlsZUNvbGxpZGVzIiwic3JjVGlsZXMiLCJTbmFwQ2VpbCIsIm91dHB1dEFycmF5IiwidGlsZVciLCJ0aWxlSCIsImRyYXdMZWZ0IiwiZHJhd1JpZ2h0IiwiZHJhd1RvcCIsImRyYXdCb3R0b20iLCJza2lwQ3VsbCIsImJvdW5kc0xlZnQiLCJjdWxsUGFkZGluZ1giLCJib3VuZHNSaWdodCIsImJvdW5kc1RvcCIsImN1bGxQYWRkaW5nWSIsImJvdW5kc0JvdHRvbSIsInRpbGVzRHJhd24iLCJ0aWxlc1RvdGFsIiwiU2V0VGlsZUNvbGxpc2lvbiIsImRvZXNJbmRleENvbGxpZGUiLCJjb2xsaWRlSW5kZXhlcyIsIklzSW5MYXllckJvdW5kcyIsImlzTm90RW1wdHkiLCJUcmlhbmdsZVRvUmVjdGFuZ2xlIiwiaW50ZXJzZWN0VGVzdCIsInhTdGFydCIsInlTdGFydCIsInhFbmQiLCJ5RW5kIiwidGlsZVJlY3QiLCJvbGRUaWxlIiwib2xkVGlsZUNvbGxpZGVzIiwibmV3VGlsZSIsImRlZmF1bHRUaWxlQ29sb3IiLCJkZWZhdWx0Q29sbGlkaW5nVGlsZUNvbG9yIiwiZGVmYXVsdEZhY2VDb2xvciIsInRpbGVDb2xvciIsImNvbGxpZGluZ1RpbGVDb2xvciIsImZhY2VDb2xvciIsIlNldExheWVyQ29sbGlzaW9uSW5kZXgiLCJsb2MiLCJTaHVmZmxlQXJyYXkiLCJsYXllcldvcmxkWCIsImxheWVyV29ybGRZIiwid2VpZ2h0VG90YWwiLCJyYW5kIiwiY2hvc2VuIiwiQ3VsbFRpbGVzIiwiRHluYW1pY1RpbGVtYXBMYXllclJlbmRlciIsImN1bGxlZFRpbGVzIiwiY3VsbENhbGxiYWNrIiwiX3JlbmRlck9yZGVyIiwic2V0VGlsZXNldHMiLCJzZXRMaXN0IiwicmVtb3ZlRnJvbVRpbGVtYXAiLCJzZXRTa2lwQ3VsbCIsInNldEN1bGxQYWRkaW5nIiwicGFkZGluZ1giLCJwYWRkaW5nWSIsInJlbmRlclRpbGVzIiwidGlsZUNvdW50IiwibGF5ZXJNYXRyaXgiLCJ0aWxlVGV4Q29vcmRzIiwiY3VycmVudFNldCIsIlRpbGVtYXBDcmVhdG9yIiwiVGlsZW1hcEZhY3RvcnkiLCJPYmplY3RMYXllciIsImluZmluaXRlIiwicHJvcGVydHlUeXBlcyIsIlBhcnNlMkRBcnJheSIsIlBhcnNlQ1NWIiwiUGFyc2VKU09OVGlsZWQiLCJQYXJzZVdlbHRtZWlzdGVyIiwibWFwRm9ybWF0IiwiYXJyYXkyRCIsInRpbGVMYXllcnMiLCJ0aWxlc2l6ZSIsInRpbGVHcmlkIiwidGlsZXNldHNOYW1lcyIsIlBhcnNlVGlsZUxheWVycyIsIlBhcnNlVGlsZXNldHMiLCJJbXBhY3QiLCJUaWxlZCIsInNpZCIsImJpbmFyeVN0cmluZyIsImF0b2IiLCJjb3VudFgiLCJjb3VudFkiLCJncm91cGwiLCJwYXJlbnRzdGF0ZSIsImxheWVyWCIsInRpbGV3aWR0aCIsImxheWVyWSIsInRpbGVoZWlnaHQiLCJGTElQUEVEX0hPUklaT05UQUwiLCJGTElQUEVEX1ZFUlRJQ0FMIiwiRkxJUFBFRF9BTlRJX0RJQUdPTkFMIiwiZmxpcHBlZEFudGlEaWFnb25hbCIsImZsaXBwZWQiLCJDcmVhdGVHcm91cExheWVyIiwiZ3JvdXBTdGFjayIsImN1ckdyb3VwU3RhdGUiLCJjdXJpIiwibGF5ZXJPZmZzZXRYIiwibGF5ZXJPZmZzZXRZIiwibmV4dEdyb3VwU3RhdGUiLCJQYXJzZUltYWdlTGF5ZXJzIiwiUGFyc2VPYmplY3RMYXllcnMiLCJCdWlsZFRpbGVzZXRJbmRleCIsIkFzc2lnblRpbGVQcm9wZXJ0aWVzIiwicmVuZGVyb3JkZXIiLCJzZXRzIiwiUGljayIsIlBhcnNlR0lEIiwiY29weVBvaW50cyIsImNvbW1vbk9iamVjdFByb3BzIiwidGlsZWRPYmplY3QiLCJwYXJzZWRPYmplY3QiLCJnaWRJbmZvIiwiUGFyc2VPYmplY3QiLCJvYmplY3RMYXllcnMiLCJjdXJvIiwiQmFzZTY0RGVjb2RlIiwiaW5maW5pdGVNYXAiLCJjdXJsIiwiZW5jb2RpbmciLCJjaHVua3MiLCJibGFua1RpbGUiLCJjaHVuayIsImxlbjIiLCJuZXdPZmZzZXRYIiwibmV3T2Zmc2V0WSIsInN0cmluZ0lEIiwibGFzdFNldCIsIm5ld1Byb3BEYXRhIiwicHJvcERhdGEiLCJwYXJzZWRPYmplY3RzMiIsInRpbGVwcm9wZXJ0aWVzIiwib2JqZWN0R3JvdXAiLCJwYXJzZWRPYmplY3RzMSIsImltYWdld2lkdGgiLCJpbWFnZWhlaWdodCIsIm5ld0NvbGxlY3Rpb24iLCJsYXN0Z2lkIiwiU3RhdGljVGlsZW1hcExheWVyUmVuZGVyIiwidXBkYXRlVkJPRGF0YSIsInVwbG9hZCIsInRpbGVzZXRJbmRleCIsIm1pblRpbGVJbmRleCIsIm1heFRpbGVJbmRleCIsImJ1ZmZlclNpemUiLCJiYXRjaFRpbGUiLCJTVEFUSUNfRFJBVyIsInRleENvb3JkcyIsImhhbGZUaWxlV2lkdGgiLCJoYWxmVGlsZUhlaWdodCIsInBpcGVsaW5lVmVydGV4QnVmZmVyIiwiVGltZXJFdmVudCIsIkNsb2NrIiwiYWRkRXZlbnQiLCJkZWxheWVkQ2FsbCIsImNsZWFyUGVuZGluZ0V2ZW50cyIsInJlbW92ZUFsbEV2ZW50cyIsImhhc0Rpc3BhdGNoZWQiLCJyZXBlYXRDb3VudCIsImdldE92ZXJhbGxQcm9ncmVzcyIsImdldFJlcGVhdENvdW50IiwiZ2V0RWxhcHNlZCIsImdldEVsYXBzZWRTZWNvbmRzIiwiZGlzcGF0Y2hDYWxsYmFjayIsIlR3ZWVuQnVpbGRlciIsIlRpbWVsaW5lIiwiaXNUaW1lbGluZSIsInRvdGFsRGF0YSIsInVzZUZyYW1lcyIsImxvb3BEZWxheSIsImxvb3BDb3VudGVyIiwiY29tcGxldGVEZWxheSIsImNvdW50ZG93biIsIlBFTkRJTkdfQUREIiwiX3BhdXNlZFN0YXRlIiwidG90YWxFbGFwc2VkIiwidG90YWxQcm9ncmVzcyIsIm9uQ29tcGxldGUiLCJvbkxvb3AiLCJvbllveW8iLCJkaXNwYXRjaFRpbWVsaW5lRXZlbnQiLCJBQ1RJVkUiLCJwYXJlbnRJc1RpbWVsaW5lIiwiaGFzT2Zmc2V0IiwiaXNPZmZzZXRBYnNvbHV0ZSIsImlzT2Zmc2V0UmVsYXRpdmUiLCJnZXRSZWxhdGl2ZU9mZnNldCIsImNhbGNEdXJhdGlvbiIsInByZXZFbmQiLCJvZmZzZXREdXJhdGlvbiIsImNhbGN1bGF0ZWRPZmZzZXQiLCJyZXNldFR3ZWVucyIsInJlc2V0RnJvbUxvb3AiLCJzZXRDYWxsYmFjayIsIlRZUEVTIiwibWFrZUFjdGl2ZSIsIlRJTUVMSU5FX1NUQVJUIiwibmV4dFN0YXRlIiwiTE9PUF9ERUxBWSIsIlRJTUVMSU5FX0xPT1AiLCJDT01QTEVURV9ERUxBWSIsIlBFTkRJTkdfUkVNT1ZFIiwiVElNRUxJTkVfQ09NUExFVEUiLCJzdGlsbFJ1bm5pbmciLCJUSU1FTElORV9VUERBVEUiLCJUSU1FTElORV9QQVVTRSIsIlRJTUVMSU5FX1JFU1VNRSIsImhhc1RhcmdldCIsIk51bWJlclR3ZWVuQnVpbGRlciIsIlN0YWdnZXJCdWlsZGVyIiwiVGltZWxpbmVCdWlsZGVyIiwiVHdlZW5NYW5hZ2VyIiwiX2FkZCIsImNyZWF0ZVRpbWVsaW5lIiwidGltZWxpbmUiLCJSRU1PVkVEIiwiZ2V0QWxsVHdlZW5zIiwiZ2V0R2xvYmFsVGltZVNjYWxlIiwiZ2V0VHdlZW5zT2YiLCJpc1R3ZWVuaW5nIiwia2lsbFR3ZWVuc09mIiwic2V0R2xvYmFsVGltZVNjYWxlIiwiZWFzZUZ1bmN0aW9uIiwiY2xvbmVQYXJhbXMiLCJ2YWx1ZUNhbGxiYWNrIiwidG90YWxUYXJnZXRzIiwiUkVTRVJWRUQiLCJoYXNHZXRBY3RpdmUiLCJoYXNHZXRTdGFydCIsImdldFN0YXJ0IiwiaGFzR2V0RW5kIiwiZ2V0RW5kIiwiR2V0VmFsdWVPcCIsImhhc1RvIiwiaGFzRnJvbSIsImhhc1N0YXJ0Iiwic3RhcnRDYWxsYmFja3MiLCJmcm9tQ2FsbGJhY2tzIiwiRGVmYXVsdHMiLCJHZXROZXdWYWx1ZSIsIlR3ZWVuRGF0YSIsIm9wcyIsInR3ZWVuQXJyYXkiLCJjYWxsYmFja1BhcmFtcyIsImZyb21GaXJzdCIsImZyb21DZW50ZXIiLCJmcm9tTGFzdCIsImZyb21WYWx1ZSIsIm1heFZhbHVlIiwiZnJvbVgiLCJmcm9tWSIsImRpc3RhbmNlWCIsImRpc3RhbmNlWSIsImdyaWRWYWx1ZXMiLCJncmlkTWF4IiwidG9ZIiwidG9YIiwiZ3JpZFNwYWNlIiwiR2V0VGFyZ2V0cyIsIkdldFR3ZWVucyIsInRpbWVsaW5lQXJyYXkiLCJvblN0YXJ0U2NvcGUiLCJvblN0YXJ0UGFyYW1zIiwib25VcGRhdGVTY29wZSIsIm9uVXBkYXRlUGFyYW1zIiwib25Mb29wU2NvcGUiLCJvbkxvb3BQYXJhbXMiLCJvbllveW9TY29wZSIsIm9uWW95b1BhcmFtcyIsIm9uQ29tcGxldGVTY29wZSIsIm9uQ29tcGxldGVQYXJhbXMiLCJHZXRQcm9wcyIsIlRXRUVOX0FDVElWRSIsIlRXRUVOX0NPTVBMRVRFIiwiVFdFRU5fTE9PUCIsIlRXRUVOX1JFUEVBVCIsIlRXRUVOX1NUQVJUIiwiVFdFRU5fVVBEQVRFIiwiVFdFRU5fWU9ZTyIsIkJ1aWxkZXJzIiwic3RhcnREZWxheSIsImhhc1N0YXJ0ZWQiLCJvbkFjdGl2ZSIsIm9uUmVwZWF0IiwidXBkYXRlVG8iLCJzdGFydFRvQ3VycmVudCIsIm1heER1cmF0aW9uIiwibWluRGVsYXkiLCJnZW4iLCJkaXNwYXRjaFR3ZWVuRXZlbnQiLCJyZXNldFR3ZWVuRGF0YSIsInJlc2V0RnJvbVRpbWVsaW5lIiwiT0ZGU0VUX0RFTEFZIiwiZ2V0U3RhcnRWYWx1ZSIsImdldEVuZFZhbHVlIiwiUEVORElOR19SRU5ERVIiLCJERUxBWSIsImdldEFjdGl2ZVZhbHVlIiwidG9Qb3NpdGlvbiIsInVwZGF0ZVR3ZWVuRGF0YSIsIndhc1BhdXNlZCIsInJlc2V0VG8iLCJkaXNwYXRjaFR3ZWVuRGF0YUV2ZW50Iiwic2V0U3RhdGVGcm9tRW5kIiwiUkVQRUFUX0RFTEFZIiwic2V0U3RhdGVGcm9tU3RhcnQiLCJIT0xEX0RFTEFZIiwiQ1JFQVRFRCIsImdldFByb3BlcnR5IiwiZGVmaW5pdGlvbiIsImlzQ2xhc3NEZXNjcmlwdG9yIiwiaGFzR2V0dGVyT3JTZXR0ZXIiLCJoYXNOb25Db25maWd1cmFibGUiLCJpZ25vcmVGaW5hbHMiLCJteUNsYXNzIiwibWl4aW5zIiwiaXRlbUxlbmd0aCIsImN1cnJlbnRJbmRleCIsIlNhZmVSYW5nZSIsIml0ZW0yIiwiaW5kZXgyIiwiZGVmYXVsdENvbXBhcmUiLCJRdWlja1NlbGVjdCIsInNkIiwibmV3TGVmdCIsIm5ld1JpZ2h0IiwiQnVpbGRDaHVuayIsImFJbmRleCIsImJJbmRleCIsImluZGV4MSIsInRocm93RXJyb3IiLCJzdGFibGUiLCJjb21wIiwibG9jYWxlQ29tcGFyZSIsImNoayIsImxpIiwicmkiLCJkYmwiLCJpdGVtMSIsIk1hdHJpeCIsIkVhY2giLCJFYWNoSW5SYW5nZSIsIk51bWJlckFycmF5IiwiTnVtYmVyQXJyYXlTdGVwIiwiUmVtb3ZlUmFuZG9tRWxlbWVudCIsIkNoZWNrTWF0cml4IiwiY2VsbCIsIlJvdGF0ZU1hdHJpeCIsIlRyYW5zcG9zZU1hdHJpeCIsInNvdXJjZVJvd0NvdW50Iiwic291cmNlQ29sQ291bnQiLCJNYXRyaXhUb1N0cmluZyIsIlJldmVyc2VDb2x1bW5zIiwiUmV2ZXJzZVJvd3MiLCJSb3RhdGUxODAiLCJhcnJheUJ1ZmZlciIsIm1lZGlhVHlwZSIsImJhc2U2NCIsImxvb2t1cCIsImVuY29kZWQxIiwiZW5jb2RlZDIiLCJlbmNvZGVkMyIsImVuY29kZWQ0IiwiQXJyYXlCdWZmZXJUb0Jhc2U2NCIsIkJhc2U2NCIsIk9iamVjdHMiLCJNQVRIIiwicmFuZEludCIsInJhbmRGbG9hdCIsIm9iajEiLCJvYmoyIiwiR2V0TWluTWF4VmFsdWUiLCJIYXNBbGwiLCJNZXJnZVJpZ2h0IiwicGFkbGVuIiwiRm9ybWF0IiwiX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fIiwibW9kdWxlSWQiLCJfX3dlYnBhY2tfbW9kdWxlc19fIiwiX19lc01vZHVsZSIsImhtZCIsIm5tZCIsInBhdGhzIiwib2JqZWN0UHJvdG8iLCJuYXRpdmVPYmplY3RUb1N0cmluZyIsInN5bVRvU3RyaW5nVGFnIiwiaXNPd24iLCJ1bm1hc2tlZCIsInJlSXNVaW50IiwicmVUcmltIiwicmVJc0JhZEhleCIsInJlSXNCaW5hcnkiLCJyZUlzT2N0YWwiLCJmcmVlUGFyc2VJbnQiLCJpc0JpbmFyeSIsIklORklOSVRZIiwibmF0aXZlQ2VpbCIsIm5hdGl2ZU1heCIsImd1YXJkIiwicmVzSW5kZXgiLCJzcHJlYWRhYmxlU3ltYm9sIiwiYmFzZUZsYXR0ZW4iLCJtYXNrU3JjS2V5IiwiZnVuY1RvU3RyaW5nIiwicmVJc0hvc3RDdG9yIiwicmVJc05hdGl2ZSIsIl9fZGF0YV9fIiwiSGFzaCIsIkxpc3RDYWNoZSIsIk1hcENhY2hlIiwiU2V0Q2FjaGUiLCJmcm9tUmlnaHQiLCJjb21wYXJhdG9yIiwiaXRlcmF0ZWUiLCJpc0NvbW1vbiIsInZhbHVlc0xlbmd0aCIsInZhbHVlc0luZGV4Iiwib3RoZXJBcmdzIiwibmF0aXZlTm93IiwibGFzdENhbGxlZCIsInN0YW1wIiwiU3RhY2siLCJiaXRtYXNrIiwiY3VzdG9taXplciIsImVxdWFsRnVuYyIsImlzUGFydGlhbCIsImFyckxlbmd0aCIsIm90aExlbmd0aCIsInN0YWNrZWQiLCJzZWVuIiwiYXJyVmFsdWUiLCJvdGhWYWx1ZSIsImNvbXBhcmVkIiwib3RoSW5kZXgiLCJzeW1ib2xQcm90byIsInN5bWJvbFZhbHVlT2YiLCJjb252ZXJ0Iiwia2V5c0Z1bmMiLCJzeW1ib2xzRnVuYyIsIm5hdGl2ZUdldFN5bWJvbHMiLCJ0eXBlZEFycmF5VGFncyIsIm5vZGVJc1R5cGVkQXJyYXkiLCJpbmhlcml0ZWQiLCJpc0FyciIsImlzQXJnIiwiaXNCdWZmIiwiaXNUeXBlIiwic2tpcEluZGV4ZXMiLCJvYmpQcm9wcyIsIm9iakxlbmd0aCIsInNraXBDdG9yIiwib2JqVmFsdWUiLCJvYmpDdG9yIiwib3RoQ3RvciIsInByb21pc2VUYWciLCJkYXRhVmlld0N0b3JTdHJpbmciLCJtYXBDdG9yU3RyaW5nIiwicHJvbWlzZUN0b3JTdHJpbmciLCJzZXRDdG9yU3RyaW5nIiwid2Vha01hcEN0b3JTdHJpbmciLCJnZXRUYWciLCJjdG9yU3RyaW5nIiwib2JqSXNBcnIiLCJvdGhJc0FyciIsIm9ialRhZyIsIm90aFRhZyIsIm9iaklzT2JqIiwib3RoSXNPYmoiLCJpc1NhbWVUYWciLCJvYmpJc1dyYXBwZWQiLCJvdGhJc1dyYXBwZWQiLCJvYmpVbndyYXBwZWQiLCJvdGhVbndyYXBwZWQiLCJiYXNlSXNFcXVhbCIsIm1hdGNoRGF0YSIsIm5vQ3VzdG9taXplciIsInNyY1ZhbHVlIiwicmVJc0RlZXBQcm9wIiwicmVJc1BsYWluUHJvcCIsIm1lbW9pemUiLCJtZW1vaXplZCIsInJlUHJvcE5hbWUiLCJyZUVzY2FwZUNoYXIiLCJxdW90ZSIsInN1YlN0cmluZyIsImJhc2VUb1N0cmluZyIsImhhc0Z1bmMiLCJpc0Ryb3AiLCJuYXRpdmVNaW4iLCJhcnJheXMiLCJjYWNoZXMiLCJ2YWxJc0RlZmluZWQiLCJ2YWxJc051bGwiLCJ2YWxJc1JlZmxleGl2ZSIsInZhbElzU3ltYm9sIiwib3RoSXNEZWZpbmVkIiwib3RoSXNOdWxsIiwib3RoSXNSZWZsZXhpdmUiLCJvdGhJc1N5bWJvbCIsIm5hdGl2ZUZsb29yIiwicmV0SGlnaGVzdCIsInZhbElzTmFOIiwidmFsSXNVbmRlZmluZWQiLCJzZXRMb3ciLCJzZWVuSW5kZXgiLCJhc3NpZ25GdW5jIiwidmFsc0xlbmd0aCIsIm5lc3RlZCIsIm5ld1ZhbHVlIiwiemlwV2l0aCIsImRpZmZlcmVuY2VXaXRoIiwiZmxhdHRlbkRlZXAiLCJwdWxsQWxsQnkiLCJzb3J0ZWRMYXN0SW5kZXhCeSIsInVuaW9uQnkiLCJ1bnppcCIsInhvcldpdGgiLCJlYWNoRnVuYyIsImZpbmRJbmRleEZ1bmMiLCJpc0Z1bmMiLCJjb21wYXJlciIsIm9iakNyaXRlcmlhIiwiY3JpdGVyaWEiLCJvdGhDcml0ZXJpYSIsIm9yZGVyc0xlbmd0aCIsIml0ZXJhdGVlcyIsImluaXRBY2N1bSIsIm5hdGl2ZVJhbmRvbSIsInJlSGFzVW5pY29kZSIsInJzQXN0cmFsIiwicnNDb21ibyIsInJzRml0eiIsInJzTm9uQXN0cmFsIiwicnNSZWdpb25hbCIsInJzU3VyclBhaXIiLCJyZU9wdE1vZCIsInJzT3B0VmFyIiwicnNTZXEiLCJyc1N5bWJvbCIsInJlVW5pY29kZSIsInNvcnRCeSIsImNvdW50QnkiLCJvYmplY3RDcmVhdGUiLCJ0aGlzQmluZGluZyIsImlzQmluZCIsInBhcnRpYWxzIiwiaG9sZGVycyIsImlzQ3VycmllZCIsImFyZ3NJbmRleCIsImhvbGRlcnNMZW5ndGgiLCJsZWZ0SW5kZXgiLCJsZWZ0TGVuZ3RoIiwicmFuZ2VMZW5ndGgiLCJpc1VuY3VycmllZCIsImhvbGRlcnNJbmRleCIsInJpZ2h0SW5kZXgiLCJyaWdodExlbmd0aCIsInBsYWNlaG9sZGVyIiwiTGF6eVdyYXBwZXIiLCJfX3dyYXBwZWRfXyIsIl9fYWN0aW9uc19fIiwiX19kaXJfXyIsIl9fZmlsdGVyZWRfXyIsIl9faXRlcmF0ZWVzX18iLCJfX3Rha2VDb3VudF9fIiwiX192aWV3c19fIiwib3RoZXJGdW5jIiwiTG9kYXNoV3JhcHBlciIsImNoYWluQWxsIiwiX19jaGFpbl9fIiwiX19pbmRleF9fIiwiX192YWx1ZXNfXyIsImxvZGFzaCIsInJlV3JhcERldGFpbHMiLCJyZVNwbGl0RGV0YWlscyIsInJlV3JhcENvbW1lbnQiLCJkZXRhaWxzIiwid3JhcEZsYWdzIiwicmVmZXJlbmNlIiwid3JhcEZ1bmMiLCJhcmdQb3MiLCJhcnkiLCJhcml0eSIsImlzQ3VycnkiLCJuZXdEYXRhIiwib2xkQXJyYXkiLCJQTEFDRUhPTERFUiIsImNyZWF0ZUh5YnJpZCIsInBhcnRpYWxzUmlnaHQiLCJob2xkZXJzUmlnaHQiLCJpc0FyeSIsImlzQmluZEtleSIsImlzRmxpcCIsImhvbGRlcnNDb3VudCIsIm5ld0hvbGRlcnMiLCJzcmNCaXRtYXNrIiwibmV3Qml0bWFzayIsImlzQ29tYm8iLCJiaW5kS2V5IiwiY3VycnkiLCJjdXJyeVJpZ2h0IiwibGFzdEFyZ3MiLCJsYXN0VGhpcyIsIm1heFdhaXQiLCJ0aW1lcklkIiwibGFzdENhbGxUaW1lIiwibGFzdEludm9rZVRpbWUiLCJsZWFkaW5nIiwibWF4aW5nIiwidHJhaWxpbmciLCJpbnZva2VGdW5jIiwibGVhZGluZ0VkZ2UiLCJ0aW1lckV4cGlyZWQiLCJzaG91bGRJbnZva2UiLCJ0aW1lU2luY2VMYXN0Q2FsbCIsInRyYWlsaW5nRWRnZSIsInRpbWVXYWl0aW5nIiwicmVtYWluaW5nV2FpdCIsImRlYm91bmNlZCIsImlzSW52b2tpbmciLCJ0cmFuc2Zvcm1zIiwiZnVuY3NMZW5ndGgiLCJwYXJ0aWFsIiwicGFydGlhbFJpZ2h0IiwidGhyb3R0bGUiLCJpc05ldyIsImlzUHJvdG8iLCJkYXRhVmlldyIsInJlRmxhZ3MiLCJ0eXBlZEFycmF5Iiwibm9kZUlzTWFwIiwibm9kZUlzU2V0IiwiY2xvbmVhYmxlVGFncyIsImJhc2VDbG9uZSIsImlzRmxhdCIsInN1YlZhbHVlIiwia2V5c0luIiwibm9kZUlzQXJyYXlCdWZmZXIiLCJub2RlSXNEYXRlIiwib2JqZWN0Q3RvclN0cmluZyIsIm5hdGl2ZUlzRmluaXRlIiwic3R1YkZhbHNlIiwibm9kZUlzUmVnRXhwIiwic3ltSXRlcmF0b3IiLCJjYXN0QXJyYXkiLCJjb25mb3Jtc1RvIiwiaXNFcXVhbFdpdGgiLCJpc0xlbmd0aCIsImlzTmF0aXZlIiwiaXNPYmplY3RMaWtlIiwiaXNXZWFrU2V0IiwiYXVnZW5kIiwiYWRkZW5kIiwibWV0aG9kTmFtZSIsIm1heEJ5IiwibXVsdGlwbGllciIsIm11bHRpcGxpY2FuZCIsIm1pbnVlbmQiLCJzdWJ0cmFoZW5kIiwiZnJlZVBhcnNlRmxvYXQiLCJmbG9hdGluZyIsImFzc2lnbmVyIiwic291cmNlcyIsInNyY0luZGV4IiwicHJvcHNJbmRleCIsInByb3BzTGVuZ3RoIiwibWVyZ2VGdW5jIiwiaXNUeXBlZCIsImJhc2VNZXJnZSIsImN1c3RvbURlZmF1bHRzTWVyZ2UiLCJ0b0l0ZXJhdGVlIiwidXBkYXRlciIsImZvckluUmlnaHQiLCJpbnZva2UiLCJ0b1BhaXJzSW4iLCJpc0Fyckxpa2UiLCJpbnRlcmNlcHRvciIsIndyYXBwZXJBdCIsInRocnUiLCJhY3Rpb25zIiwicGxhbnQiLCJ3cmFwcGVkIiwic3RyU3ltYm9scyIsInJlTGF0aW4iLCJyZUNvbWJvTWFyayIsInJlQXNjaWlXb3JkIiwicmVIYXNVbmljb2RlV29yZCIsInJzRGluZ2JhdFJhbmdlIiwicnNMb3dlclJhbmdlIiwicnNVcHBlclJhbmdlIiwicnNCcmVha1JhbmdlIiwicnNNYXRoT3BSYW5nZSIsInJzQnJlYWsiLCJyc0RpZ2l0cyIsInJzRGluZ2JhdCIsInJzTG93ZXIiLCJyc01pc2MiLCJyc1VwcGVyIiwicnNNaXNjTG93ZXIiLCJyc01pc2NVcHBlciIsInJzT3B0Q29udHJMb3dlciIsInJzT3B0Q29udHJVcHBlciIsInJzRW1vamkiLCJyZVVuaWNvZGVXb3JkIiwicmVBcG9zIiwicmVVbmVzY2FwZWRIdG1sIiwicmVIYXNVbmVzY2FwZWRIdG1sIiwicmVIYXNSZWdFeHBDaGFyIiwiY2hhcnNMZW5ndGgiLCJzdHJMZW5ndGgiLCJyZVRyaW1TdGFydCIsIm5hdGl2ZVBhcnNlSW50Iiwic3RyaW5nRXNjYXBlcyIsInJlRW1wdHlTdHJpbmdMZWFkaW5nIiwicmVFbXB0eVN0cmluZ01pZGRsZSIsInJlRW1wdHlTdHJpbmdUcmFpbGluZyIsInJlRXNUZW1wbGF0ZSIsInJlTm9NYXRjaCIsInJlVW5lc2NhcGVkU3RyaW5nIiwidGVtcGxhdGVTZXR0aW5ncyIsImlzRXNjYXBpbmciLCJpc0V2YWx1YXRpbmciLCJpbXBvcnRzIiwiaW1wb3J0c0tleXMiLCJpbXBvcnRzVmFsdWVzIiwiaW50ZXJwb2xhdGUiLCJyZURlbGltaXRlcnMiLCJldmFsdWF0ZSIsInNvdXJjZVVSTCIsImVzY2FwZVZhbHVlIiwiaW50ZXJwb2xhdGVWYWx1ZSIsImVzVGVtcGxhdGVWYWx1ZSIsImV2YWx1YXRlVmFsdWUiLCJjaHJTeW1ib2xzIiwicmVUcmltRW5kIiwib21pc3Npb24iLCJuZXdFbmQiLCJyZUVzY2FwZWRIdG1sIiwicmVIYXNFc2NhcGVkSHRtbCIsInVwcGVyQ2FzZSIsImVzY2FwZVJlZ0V4cCIsInNuYWtlQ2FzZSIsIm1ldGhvZE5hbWVzIiwicHJlcmVxIiwiYXJyYXlGdW5jIiwiaWRDb3VudGVyIiwiYXR0ZW1wdCIsImRlZmF1bHRUbyIsInRvUGF0aCIsIml0ZXJMZW5ndGgiLCJ0YWtlQ291bnQiLCJpdGVySW5kZXgiLCJpc09iaiIsImlzRmlsdGVyIiwidGFrZU5hbWUiLCJkcm9wTmFtZSIsInRha2VSaWdodCIsImRyb3BSaWdodCIsInRha2VXaGlsZSIsImNoZWNrSXRlcmF0ZWUiLCJpc1Rha2VyIiwibG9kYXNoRnVuYyIsInJldFVud3JhcHBlZCIsImlzTGF6eSIsInVzZUxhenkiLCJpc0h5YnJpZCIsImlzVW53cmFwcGVkIiwib25seUxhenkiLCJjaGFpbk5hbWUiLCJuZXh0S2V5IiwiQWRkRXF1YXRpb24iLCJDdWJlVVZSZWZsZWN0aW9uTWFwcGluZyIsIlJlcGVhdFdyYXBwaW5nIiwiQ2xhbXBUb0VkZ2VXcmFwcGluZyIsIk1pcnJvcmVkUmVwZWF0V3JhcHBpbmciLCJOZWFyZXN0RmlsdGVyIiwiTmVhcmVzdE1pcG1hcE5lYXJlc3RGaWx0ZXIiLCJOZWFyZXN0TWlwbWFwTGluZWFyRmlsdGVyIiwiTGluZWFyRmlsdGVyIiwiTGluZWFyTWlwbWFwTGluZWFyRmlsdGVyIiwiVW5zaWduZWRCeXRlVHlwZSIsIlVuc2lnbmVkU2hvcnRUeXBlIiwiVW5zaWduZWRJbnRUeXBlIiwiRmxvYXRUeXBlIiwiSGFsZkZsb2F0VHlwZSIsIlVuc2lnbmVkSW50MjQ4VHlwZSIsIlJHQkZvcm1hdCIsIlJHQkFGb3JtYXQiLCJEZXB0aEZvcm1hdCIsIkRlcHRoU3RlbmNpbEZvcm1hdCIsIkludGVycG9sYXRlRGlzY3JldGUiLCJJbnRlcnBvbGF0ZUxpbmVhciIsIkludGVycG9sYXRlU21vb3RoIiwiWmVyb0N1cnZhdHVyZUVuZGluZyIsIlplcm9TbG9wZUVuZGluZyIsIldyYXBBcm91bmRFbmRpbmciLCJMaW5lYXJFbmNvZGluZyIsInNSR0JFbmNvZGluZyIsIlJHQkVFbmNvZGluZyIsIktlZXBTdGVuY2lsT3AiLCJTdGF0aWNEcmF3VXNhZ2UiLCJEeW5hbWljRHJhd1VzYWdlIiwiRXZlbnREaXNwYXRjaGVyIiwiX2xpc3RlbmVycyIsImhhc0V2ZW50TGlzdGVuZXIiLCJsaXN0ZW5lckFycmF5IiwiX2x1dCIsIl9jYW52YXMiLCJNYXRoVXRpbHMiLCJERUcyUkFEIiwiUkFEMkRFRyIsImdlbmVyYXRlVVVJRCIsImV1Y2xpZGVhbk1vZHVsbyIsIm1hcExpbmVhciIsInNtb290aHN0ZXAiLCJzbW9vdGhlcnN0ZXAiLCJyYW5kRmxvYXRTcHJlYWQiLCJkZWdUb1JhZCIsInJhZFRvRGVnIiwiaXNQb3dlck9mVHdvIiwiY2VpbFBvd2VyT2ZUd28iLCJmbG9vclBvd2VyT2ZUd28iLCJzZXRRdWF0ZXJuaW9uRnJvbVByb3BlckV1bGVyIiwib3JkZXIiLCJjMTMiLCJzMTMiLCJjMV8zIiwiczFfMyIsImMzXzEiLCJzM18xIiwiaXNWZWN0b3IyIiwic2V0U2NhbGFyIiwic2V0Q29tcG9uZW50IiwiZ2V0Q29tcG9uZW50IiwiYWRkVmVjdG9ycyIsImFkZFNjYWxhciIsImFkZFNjYWxlZFZlY3RvciIsInN1YlZlY3RvcnMiLCJzdWJTY2FsYXIiLCJtdWx0aXBseVNjYWxhciIsImRpdmlkZVNjYWxhciIsImFwcGx5TWF0cml4MyIsImNsYW1wU2NhbGFyIiwibWluVmFsIiwibWF4VmFsIiwiY2xhbXBMZW5ndGgiLCJyb3VuZFRvWmVybyIsIm1hbmhhdHRhbkxlbmd0aCIsImRpc3RhbmNlVG8iLCJkaXN0YW5jZVRvU3F1YXJlZCIsIm1hbmhhdHRhbkRpc3RhbmNlVG8iLCJsZXJwVmVjdG9ycyIsImZyb21CdWZmZXJBdHRyaWJ1dGUiLCJpc01hdHJpeDMiLCJuMTEiLCJuMTIiLCJuMTMiLCJuMjEiLCJuMjIiLCJuMjMiLCJuMzEiLCJuMzIiLCJuMzMiLCJ0ZSIsIm1lIiwiZXh0cmFjdEJhc2lzIiwieEF4aXMiLCJ5QXhpcyIsInpBeGlzIiwic2V0RnJvbU1hdHJpeDNDb2x1bW4iLCJzZXRGcm9tTWF0cml4NCIsIm11bHRpcGx5TWF0cmljZXMiLCJwcmVtdWx0aXBseSIsImFlIiwiYmUiLCJiMTMiLCJiMjMiLCJiMzEiLCJiMzIiLCJiMzMiLCJnZXRJbnZlcnNlIiwidGhyb3dPbkRlZ2VuZXJhdGUiLCJ0MTEiLCJ0MTIiLCJ0MTMiLCJkZXRJbnYiLCJnZXROb3JtYWxNYXRyaXgiLCJtYXRyaXg0IiwidHJhbnNwb3NlSW50b0FycmF5Iiwic2V0VXZUcmFuc2Zvcm0iLCJJbWFnZVV0aWxzIiwiZ2V0RGF0YVVSTCIsImNyZWF0ZUVsZW1lbnROUyIsIkltYWdlRGF0YSIsInRleHR1cmVJZCIsImFuaXNvdHJvcHkiLCJERUZBVUxUX0lNQUdFIiwibWlwbWFwcyIsIkRFRkFVTFRfTUFQUElORyIsImludGVybmFsRm9ybWF0IiwibWF0cml4QXV0b1VwZGF0ZSIsImdlbmVyYXRlTWlwbWFwcyIsInByZW11bHRpcGx5QWxwaGEiLCJ1bnBhY2tBbGlnbm1lbnQiLCJXZWJHTFJlbmRlclRhcmdldCIsInNjaXNzb3JUZXN0IiwiZGVwdGhCdWZmZXIiLCJzdGVuY2lsQnVmZmVyIiwiZGVwdGhUZXh0dXJlIiwiV2ViR0xNdWx0aXNhbXBsZVJlbmRlclRhcmdldCIsInNhbXBsZXMiLCJfeiIsImlzVGV4dHVyZSIsInVwZGF0ZU1hdHJpeCIsImlzUm9vdE9iamVjdCIsImdlbmVyYXRvciIsImRpc3Bvc2UiLCJ0cmFuc2Zvcm1VdiIsImlzVmVjdG9yNCIsImFwcGx5TWF0cml4NCIsInNldEF4aXNBbmdsZUZyb21RdWF0ZXJuaW9uIiwic2V0QXhpc0FuZ2xlRnJvbVJvdGF0aW9uTWF0cml4IiwiZXBzaWxvbjIiLCJtMTIiLCJtMTMiLCJtMjEiLCJtMjIiLCJtMjMiLCJtMzEiLCJtMzIiLCJtMzMiLCJnZXRaIiwiZ2V0VyIsImlzV2ViR0xSZW5kZXJUYXJnZXQiLCJpc1dlYkdMTXVsdGlzYW1wbGVSZW5kZXJUYXJnZXQiLCJxYSIsInFiIiwicW0iLCJzbGVycEZsYXQiLCJkc3QiLCJkc3RPZmZzZXQiLCJzcmMwIiwic3JjT2Zmc2V0MCIsInNyYzEiLCJzcmNPZmZzZXQxIiwidzAiLCJ3MSIsInNxclNpbiIsInREaXIiLCJfb25DaGFuZ2VDYWxsYmFjayIsImlzUXVhdGVybmlvbiIsInF1YXRlcm5pb24iLCJzZXRGcm9tRXVsZXIiLCJldWxlciIsImlzRXVsZXIiLCJjMyIsInMzIiwic2V0RnJvbUF4aXNBbmdsZSIsImhhbGZBbmdsZSIsInNldEZyb21Sb3RhdGlvbk1hdHJpeCIsInRyYWNlIiwic2V0RnJvbVVuaXRWZWN0b3JzIiwidkZyb20iLCJ2VG8iLCJhbmdsZVRvIiwicm90YXRlVG93YXJkcyIsImludmVyc2UiLCJtdWx0aXBseVF1YXRlcm5pb25zIiwicWF4IiwicWF5IiwicWF6IiwicWF3IiwicWJ4IiwicWJ5IiwicWJ6IiwicWJ3IiwiY29zSGFsZlRoZXRhIiwic3FyU2luSGFsZlRoZXRhIiwic2luSGFsZlRoZXRhIiwiaGFsZlRoZXRhIiwicmF0aW9BIiwicmF0aW9CIiwiX29uQ2hhbmdlIiwiX3ZlY3RvciIsIl9xdWF0ZXJuaW9uIiwiaXNWZWN0b3IzIiwibXVsdGlwbHlWZWN0b3JzIiwiYXBwbHlFdWxlciIsImFwcGx5UXVhdGVybmlvbiIsImFwcGx5QXhpc0FuZ2xlIiwiYXBwbHlOb3JtYWxNYXRyaXgiLCJtYXRyaXhXb3JsZEludmVyc2UiLCJwcm9qZWN0aW9uTWF0cml4SW52ZXJzZSIsIm1hdHJpeFdvcmxkIiwidHJhbnNmb3JtRGlyZWN0aW9uIiwicHJvamVjdE9uVmVjdG9yIiwicHJvamVjdE9uUGxhbmUiLCJwbGFuZU5vcm1hbCIsInNldEZyb21TcGhlcmljYWwiLCJzZXRGcm9tU3BoZXJpY2FsQ29vcmRzIiwicGhpIiwic2luUGhpUmFkaXVzIiwic2V0RnJvbUN5bGluZHJpY2FsIiwic2V0RnJvbUN5bGluZHJpY2FsQ29vcmRzIiwic2V0RnJvbU1hdHJpeFBvc2l0aW9uIiwic2V0RnJvbU1hdHJpeFNjYWxlIiwic2V0RnJvbU1hdHJpeENvbHVtbiIsInN6IiwiX3YxIiwiX20xIiwiX3plcm8iLCJfb25lIiwiaXNNYXRyaXg0IiwibjE0IiwibjI0IiwibjM0IiwibjQxIiwibjQyIiwibjQzIiwibjQ0IiwiY29weVBvc2l0aW9uIiwibWFrZUJhc2lzIiwiZXh0cmFjdFJvdGF0aW9uIiwic2NhbGVaIiwibWFrZVJvdGF0aW9uRnJvbUV1bGVyIiwiYWYiLCJiZiIsImNlIiwiY2YiLCJkZSIsImRmIiwiYWMiLCJiZCIsIm1ha2VSb3RhdGlvbkZyb21RdWF0ZXJuaW9uIiwiY29tcG9zZSIsImExNCIsImEyNCIsImEzNCIsImE0MSIsImE0MiIsImE0MyIsImE0NCIsImIxNCIsImIyNCIsImIzNCIsImI0MSIsImI0MiIsImI0MyIsImI0NCIsInQxNCIsImdldE1heFNjYWxlT25BeGlzIiwic2NhbGVYU3EiLCJzY2FsZVlTcSIsInNjYWxlWlNxIiwibWFrZVRyYW5zbGF0aW9uIiwibWFrZVJvdGF0aW9uWCIsIm1ha2VSb3RhdGlvblkiLCJtYWtlUm90YXRpb25aIiwibWFrZVNjYWxlIiwibWFrZVNoZWFyIiwiZGVjb21wb3NlIiwiaW52U1giLCJpbnZTWSIsImludlNaIiwibWFrZVBlcnNwZWN0aXZlIiwibWFrZU9ydGhvZ3JhcGhpYyIsIl9tYXRyaXgiLCJfcXVhdGVybmlvbiQxIiwiRXVsZXIiLCJfb3JkZXIiLCJEZWZhdWx0T3JkZXIiLCJMYXllcnMiLCJSb3RhdGlvbk9yZGVycyIsInNldEZyb21RdWF0ZXJuaW9uIiwic2V0RnJvbVZlY3RvcjMiLCJyZW9yZGVyIiwibmV3T3JkZXIiLCJ0b1ZlY3RvcjMiLCJvcHRpb25hbFJlc3VsdCIsImVuYWJsZUFsbCIsImRpc2FibGVBbGwiLCJfb2JqZWN0M0RJZCIsIl92MSQxIiwiX3ExIiwiX20xJDEiLCJfcG9zaXRpb24iLCJfc2NhbGUiLCJfcXVhdGVybmlvbiQyIiwiX3hBeGlzIiwiX3lBeGlzIiwiX3pBeGlzIiwiX2FkZGVkRXZlbnQiLCJfcmVtb3ZlZEV2ZW50IiwiT2JqZWN0M0QiLCJEZWZhdWx0VXAiLCJtb2RlbFZpZXdNYXRyaXgiLCJub3JtYWxNYXRyaXgiLCJEZWZhdWx0TWF0cml4QXV0b1VwZGF0ZSIsIm1hdHJpeFdvcmxkTmVlZHNVcGRhdGUiLCJjYXN0U2hhZG93IiwicmVjZWl2ZVNoYWRvdyIsImZydXN0dW1DdWxsZWQiLCJ1c2VyRGF0YSIsImJhY2tncm91bmQiLCJlbnZpcm9ubWVudCIsImZvZyIsIm92ZXJyaWRlTWF0ZXJpYWwiLCJfX1RIUkVFX0RFVlRPT0xTX18iLCJDdXN0b21FdmVudCIsImlzT2JqZWN0M0QiLCJvbkJlZm9yZVJlbmRlciIsIm9uQWZ0ZXJSZW5kZXIiLCJzZXRSb3RhdGlvbkZyb21BeGlzQW5nbGUiLCJzZXRSb3RhdGlvbkZyb21FdWxlciIsInNldFJvdGF0aW9uRnJvbU1hdHJpeCIsInNldFJvdGF0aW9uRnJvbVF1YXRlcm5pb24iLCJyb3RhdGVPbkF4aXMiLCJyb3RhdGVPbldvcmxkQXhpcyIsInRyYW5zbGF0ZU9uQXhpcyIsInRyYW5zbGF0ZVoiLCJsb2NhbFRvV29ybGQiLCJ3b3JsZFRvTG9jYWwiLCJ1cGRhdGVXb3JsZE1hdHJpeCIsImlzQ2FtZXJhIiwiaXNMaWdodCIsImF0dGFjaCIsImdldE9iamVjdEJ5SWQiLCJnZXRPYmplY3RCeVByb3BlcnR5IiwiZ2V0T2JqZWN0QnlOYW1lIiwiZ2V0V29ybGRQb3NpdGlvbiIsInVwZGF0ZU1hdHJpeFdvcmxkIiwiZ2V0V29ybGRRdWF0ZXJuaW9uIiwiZ2V0V29ybGRTY2FsZSIsImdldFdvcmxkRGlyZWN0aW9uIiwicmF5Y2FzdCIsInRyYXZlcnNlIiwidHJhdmVyc2VWaXNpYmxlIiwidHJhdmVyc2VBbmNlc3RvcnMiLCJnZW9tZXRyaWVzIiwibWF0ZXJpYWxzIiwic2hhcGVzIiwibGlicmFyeSIsImlzSW5zdGFuY2VkTWVzaCIsImluc3RhbmNlTWF0cml4IiwiaXNNZXNoIiwiaXNMaW5lIiwiaXNQb2ludHMiLCJnZW9tZXRyeSIsInBhcmFtZXRlcnMiLCJtYXRlcmlhbCIsInV1aWRzIiwiZXh0cmFjdEZyb21DYWNoZSIsImlzU2NlbmUiLCJfdmVjdG9yJDEiLCJfYm94IiwiQm94MyIsIl92MCIsIl92MSQyIiwiX3YyIiwiX2YwIiwiX2YxIiwiX2YyIiwiX2NlbnRlciIsIl9leHRlbnRzIiwiX3RyaWFuZ2xlTm9ybWFsIiwiX3Rlc3RBeGlzIiwic2F0Rm9yQXhlcyIsImV4dGVudHMiLCJpc0JveDMiLCJzZXRGcm9tQXJyYXkiLCJzZXRGcm9tQnVmZmVyQXR0cmlidXRlIiwic2V0RnJvbVBvaW50cyIsIm1ha2VFbXB0eSIsImV4cGFuZEJ5UG9pbnQiLCJzZXRGcm9tQ2VudGVyQW5kU2l6ZSIsImhhbGZTaXplIiwiZXhwYW5kQnlPYmplY3QiLCJnZXRTaXplIiwiZXhwYW5kQnlWZWN0b3IiLCJleHBhbmRCeVNjYWxhciIsImJvdW5kaW5nQm94IiwiY29tcHV0ZUJvdW5kaW5nQm94IiwiY29udGFpbnNCb3giLCJpbnRlcnNlY3RzQm94IiwiaW50ZXJzZWN0c1NwaGVyZSIsInNwaGVyZSIsImNsYW1wUG9pbnQiLCJpbnRlcnNlY3RzUGxhbmUiLCJwbGFuZSIsImNvbnN0YW50IiwiaW50ZXJzZWN0c1RyaWFuZ2xlIiwiZGlzdGFuY2VUb1BvaW50IiwiZ2V0Qm91bmRpbmdTcGhlcmUiLCJfYm94JDEiLCJTcGhlcmUiLCJvcHRpb25hbENlbnRlciIsIm1heFJhZGl1c1NxIiwicmFkaXVzU3VtIiwiZGVsdGFMZW5ndGhTcSIsImdldEJvdW5kaW5nQm94IiwiX3ZlY3RvciQyIiwiX3NlZ0NlbnRlciIsIl9zZWdEaXIiLCJfZGlmZiIsIl9lZGdlMSIsIl9lZGdlMiIsIl9ub3JtYWwiLCJSYXkiLCJyZWNhc3QiLCJjbG9zZXN0UG9pbnRUb1BvaW50IiwiZGlyZWN0aW9uRGlzdGFuY2UiLCJkaXN0YW5jZVNxVG9Qb2ludCIsImRpc3RhbmNlU3FUb1NlZ21lbnQiLCJvcHRpb25hbFBvaW50T25SYXkiLCJvcHRpb25hbFBvaW50T25TZWdtZW50Iiwic3FyRGlzdCIsImV4dERldCIsInNlZ0V4dGVudCIsImludkRldCIsImludGVyc2VjdFNwaGVyZSIsInRjYSIsInJhZGl1czIiLCJ0aGMiLCJ0MCIsImRpc3RhbmNlVG9QbGFuZSIsImludGVyc2VjdFBsYW5lIiwiZGlzdFRvUG9pbnQiLCJpbnRlcnNlY3RCb3giLCJ0bWluIiwidG1heCIsInR5bWluIiwidHltYXgiLCJ0em1pbiIsInR6bWF4IiwiaW52ZGlyeCIsImludmRpcnkiLCJpbnZkaXJ6IiwiaW50ZXJzZWN0VHJpYW5nbGUiLCJiYWNrZmFjZUN1bGxpbmciLCJEZE4iLCJEZFF4RTIiLCJEZEUxeFEiLCJRZE4iLCJfdmVjdG9yMSIsIl92ZWN0b3IyIiwiX25vcm1hbE1hdHJpeCIsIlBsYW5lIiwiaXNQbGFuZSIsInNldENvbXBvbmVudHMiLCJzZXRGcm9tTm9ybWFsQW5kQ29wbGFuYXJQb2ludCIsInNldEZyb21Db3BsYW5hclBvaW50cyIsImludmVyc2VOb3JtYWxMZW5ndGgiLCJkaXN0YW5jZVRvU3BoZXJlIiwicHJvamVjdFBvaW50IiwiaW50ZXJzZWN0TGluZSIsImludGVyc2VjdHNMaW5lIiwic3RhcnRTaWduIiwiZW5kU2lnbiIsImNvcGxhbmFyUG9pbnQiLCJvcHRpb25hbE5vcm1hbE1hdHJpeCIsInJlZmVyZW5jZVBvaW50IiwiX3YwJDEiLCJfdjEkMyIsIl92MiQxIiwiX3YzIiwiX3ZhYiIsIl92YWMiLCJfdmJjIiwiX3ZhcCIsIl92YnAiLCJfdmNwIiwiZ2V0Tm9ybWFsIiwidGFyZ2V0TGVuZ3RoU3EiLCJnZXRCYXJ5Y29vcmQiLCJpbnZEZW5vbSIsImdldFVWIiwiaXNGcm9udEZhY2luZyIsInNldEZyb21Qb2ludHNBbmRJbmRpY2VzIiwiaTAiLCJpMSIsImkyIiwiZ2V0QXJlYSIsImdldE1pZHBvaW50IiwiZ2V0UGxhbmUiLCJkNCIsInZjIiwiZDUiLCJkNiIsInZiIiwidmEiLCJfY29sb3JLZXl3b3JkcyIsIl9oc2xBIiwiX2hzbEIiLCJzZXRSR0IiLCJodWUycmdiIiwiU1JHQlRvTGluZWFyIiwiTGluZWFyVG9TUkdCIiwiRmFjZTMiLCJtYXRlcmlhbEluZGV4IiwidmVydGV4Tm9ybWFscyIsImlzQ29sb3IiLCJ2ZXJ0ZXhDb2xvcnMiLCJzZXRIZXgiLCJzZXRIU0wiLCJoYW5kbGVBbHBoYSIsImNvbXBvbmVudHMiLCJzZXRDb2xvck5hbWUiLCJjb3B5R2FtbWFUb0xpbmVhciIsImdhbW1hRmFjdG9yIiwiY29weUxpbmVhclRvR2FtbWEiLCJzYWZlSW52ZXJzZSIsImNvbnZlcnRHYW1tYVRvTGluZWFyIiwiY29udmVydExpbmVhclRvR2FtbWEiLCJjb3B5U1JHQlRvTGluZWFyIiwiY29weUxpbmVhclRvU1JHQiIsImNvbnZlcnRTUkdCVG9MaW5lYXIiLCJjb252ZXJ0TGluZWFyVG9TUkdCIiwiZ2V0SGV4IiwiZ2V0SGV4U3RyaW5nIiwiZ2V0SFNMIiwiaHVlIiwic2F0dXJhdGlvbiIsImxpZ2h0bmVzcyIsImdldFN0eWxlIiwib2Zmc2V0SFNMIiwiYWRkQ29sb3JzIiwibGVycEhTTCIsIk5BTUVTIiwibWF0ZXJpYWxJZCIsIk1hdGVyaWFsIiwiYmxlbmRpbmciLCJzaWRlIiwiZmxhdFNoYWRpbmciLCJibGVuZFNyYyIsImJsZW5kRHN0IiwiYmxlbmRTcmNBbHBoYSIsImJsZW5kRHN0QWxwaGEiLCJibGVuZEVxdWF0aW9uQWxwaGEiLCJkZXB0aEZ1bmMiLCJkZXB0aFRlc3QiLCJkZXB0aFdyaXRlIiwic3RlbmNpbFdyaXRlTWFzayIsInN0ZW5jaWxSZWYiLCJzdGVuY2lsRnVuY01hc2siLCJzdGVuY2lsRmFpbCIsInN0ZW5jaWxaRmFpbCIsInN0ZW5jaWxaUGFzcyIsInN0ZW5jaWxXcml0ZSIsImNsaXBwaW5nUGxhbmVzIiwiY2xpcEludGVyc2VjdGlvbiIsImNsaXBTaGFkb3dzIiwic2hhZG93U2lkZSIsImNvbG9yV3JpdGUiLCJwb2x5Z29uT2Zmc2V0IiwicG9seWdvbk9mZnNldEZhY3RvciIsInBvbHlnb25PZmZzZXRVbml0cyIsImRpdGhlcmluZyIsImFscGhhVGVzdCIsInRvbmVNYXBwZWQiLCJNZXNoQmFzaWNNYXRlcmlhbCIsImxpZ2h0TWFwIiwibGlnaHRNYXBJbnRlbnNpdHkiLCJhb01hcCIsImFvTWFwSW50ZW5zaXR5Iiwic3BlY3VsYXJNYXAiLCJhbHBoYU1hcCIsImVudk1hcCIsImNvbWJpbmUiLCJyZWZsZWN0aXZpdHkiLCJyZWZyYWN0aW9uUmF0aW8iLCJ3aXJlZnJhbWUiLCJ3aXJlZnJhbWVMaW5ld2lkdGgiLCJ3aXJlZnJhbWVMaW5lY2FwIiwid2lyZWZyYW1lTGluZWpvaW4iLCJza2lubmluZyIsIm1vcnBoVGFyZ2V0cyIsInNldFZhbHVlcyIsImlzTWF0ZXJpYWwiLCJvbkJlZm9yZUNvbXBpbGUiLCJpc1Jvb3QiLCJyb3VnaG5lc3MiLCJtZXRhbG5lc3MiLCJzaGVlbiIsImVtaXNzaXZlIiwiZW1pc3NpdmVJbnRlbnNpdHkiLCJzcGVjdWxhciIsInNoaW5pbmVzcyIsImNsZWFyY29hdCIsImNsZWFyY29hdFJvdWdobmVzcyIsImNsZWFyY29hdE1hcCIsImNsZWFyY29hdFJvdWdobmVzc01hcCIsImNsZWFyY29hdE5vcm1hbE1hcCIsImNsZWFyY29hdE5vcm1hbFNjYWxlIiwibWF0Y2FwIiwiYnVtcE1hcCIsImJ1bXBTY2FsZSIsIm5vcm1hbE1hcFR5cGUiLCJub3JtYWxTY2FsZSIsImRpc3BsYWNlbWVudE1hcCIsImRpc3BsYWNlbWVudFNjYWxlIiwiZGlzcGxhY2VtZW50QmlhcyIsInJvdWdobmVzc01hcCIsIm1ldGFsbmVzc01hcCIsImVtaXNzaXZlTWFwIiwiZW52TWFwSW50ZW5zaXR5IiwiZ3JhZGllbnRNYXAiLCJzaXplQXR0ZW51YXRpb24iLCJsaW5ld2lkdGgiLCJkYXNoU2l6ZSIsImdhcFNpemUiLCJtb3JwaE5vcm1hbHMiLCJzcmNQbGFuZXMiLCJkc3RQbGFuZXMiLCJpc01lc2hCYXNpY01hdGVyaWFsIiwiX3ZlY3RvciQzIiwiQnVmZmVyQXR0cmlidXRlIiwiaXRlbVNpemUiLCJ1c2FnZSIsInVwZGF0ZVJhbmdlIiwiSW50OEJ1ZmZlckF0dHJpYnV0ZSIsIlVpbnQ4QnVmZmVyQXR0cmlidXRlIiwiVWludDhDbGFtcGVkQnVmZmVyQXR0cmlidXRlIiwiSW50MTZCdWZmZXJBdHRyaWJ1dGUiLCJVaW50MTZCdWZmZXJBdHRyaWJ1dGUiLCJJbnQzMkJ1ZmZlckF0dHJpYnV0ZSIsIlVpbnQzMkJ1ZmZlckF0dHJpYnV0ZSIsIkZsb2F0MzJCdWZmZXJBdHRyaWJ1dGUiLCJGbG9hdDY0QnVmZmVyQXR0cmlidXRlIiwiRGlyZWN0R2VvbWV0cnkiLCJub3JtYWxzIiwidXZzMiIsInNraW5XZWlnaHRzIiwic2tpbkluZGljZXMiLCJib3VuZGluZ1NwaGVyZSIsInZlcnRpY2VzTmVlZFVwZGF0ZSIsIm5vcm1hbHNOZWVkVXBkYXRlIiwiY29sb3JzTmVlZFVwZGF0ZSIsInV2c05lZWRVcGRhdGUiLCJncm91cHNOZWVkVXBkYXRlIiwiYXJyYXlNYXgiLCJpc0J1ZmZlckF0dHJpYnV0ZSIsIm9uVXBsb2FkQ2FsbGJhY2siLCJzZXRVc2FnZSIsImNvcHlBdCIsImNvcHlBcnJheSIsImNvcHlDb2xvcnNBcnJheSIsImNvcHlWZWN0b3Iyc0FycmF5IiwidmVjdG9ycyIsImNvcHlWZWN0b3Izc0FycmF5IiwiY29weVZlY3RvcjRzQXJyYXkiLCJzZXRYWVoiLCJzZXRYWVpXIiwib25VcGxvYWQiLCJjb21wdXRlR3JvdXBzIiwiZnJvbUdlb21ldHJ5IiwibW9ycGhUYXJnZXRzUG9zaXRpb24iLCJmYWNlVmVydGV4VXZzIiwiaGFzRmFjZVZlcnRleFV2IiwiaGFzRmFjZVZlcnRleFV2MiIsIm1vcnBoVGFyZ2V0c0xlbmd0aCIsIm1vcnBoVGFyZ2V0c05vcm1hbCIsIm1vcnBoTm9ybWFsc0xlbmd0aCIsImhhc1NraW5JbmRpY2VzIiwiaGFzU2tpbldlaWdodHMiLCJ2ZXJ0ZXhVdnMiLCJtb3JwaFRhcmdldCIsIm1vcnBoTm9ybWFsIiwiX2J1ZmZlckdlb21ldHJ5SWQiLCJfbTEkMiIsIl9vYmoiLCJfYm94JDIiLCJfYm94TW9ycGhUYXJnZXRzIiwiX3ZlY3RvciQ0IiwiQnVmZmVyR2VvbWV0cnkiLCJtb3JwaEF0dHJpYnV0ZXMiLCJtb3JwaFRhcmdldHNSZWxhdGl2ZSIsImRyYXdSYW5nZSIsImlzQnVmZmVyR2VvbWV0cnkiLCJzZXRJbmRleCIsImRlbGV0ZUF0dHJpYnV0ZSIsImFkZEdyb3VwIiwiY2xlYXJHcm91cHMiLCJzZXREcmF3UmFuZ2UiLCJjb21wdXRlQm91bmRpbmdTcGhlcmUiLCJwb3NpdGlvbnMiLCJsaW5lRGlzdGFuY2VzIiwiaXNHZW9tZXRyeSIsInVwZGF0ZUZyb21PYmplY3QiLCJkaXJlY3QiLCJfX2RpcmVjdEdlb21ldHJ5IiwiZWxlbWVudHNOZWVkVXBkYXRlIiwibGluZURpc3RhbmNlc05lZWRVcGRhdGUiLCJsaW5lRGlzdGFuY2UiLCJmcm9tRGlyZWN0R2VvbWV0cnkiLCJtb3JwaEF0dHJpYnV0ZXNQb3NpdGlvbiIsIm1vcnBoQXR0cmlidXRlIiwiamwiLCJjb21wdXRlRmFjZU5vcm1hbHMiLCJjb21wdXRlVmVydGV4Tm9ybWFscyIsInZBIiwidkIiLCJ2QyIsInBBIiwicEIiLCJwQyIsImNiIiwiaW5kaWNlcyIsIm5vcm1hbGl6ZU5vcm1hbHMiLCJhdHRyaWJ1dGVBcnJheTEiLCJhdHRyaWJ1dGUyIiwiYXR0cmlidXRlQXJyYXkyIiwiYXR0cmlidXRlT2Zmc2V0IiwidG9Ob25JbmRleGVkIiwiY29udmVydEJ1ZmZlckF0dHJpYnV0ZSIsImdlb21ldHJ5MiIsIm5ld0F0dHJpYnV0ZSIsIm1vcnBoQXJyYXkiLCJhdHRyaWJ1dGVEYXRhIiwiaGFzTW9ycGhBdHRyaWJ1dGVzIiwiYXR0cmlidXRlQXJyYXkiLCJfaW52ZXJzZU1hdHJpeCIsIl9yYXkiLCJfc3BoZXJlIiwiX3ZBIiwiX3ZCIiwiX3ZDIiwiX3RlbXBBIiwiX3RlbXBCIiwiX3RlbXBDIiwiX21vcnBoQSIsIl9tb3JwaEIiLCJfbW9ycGhDIiwiX3V2QSIsIl91dkIiLCJfdXZDIiwiX2ludGVyc2VjdGlvblBvaW50IiwiX2ludGVyc2VjdGlvblBvaW50V29ybGQiLCJ1cGRhdGVNb3JwaFRhcmdldHMiLCJjaGVja0ludGVyc2VjdGlvbiIsInJheWNhc3RlciIsImNoZWNrQnVmZmVyR2VvbWV0cnlJbnRlcnNlY3Rpb24iLCJtb3JwaFBvc2l0aW9uIiwibW9ycGhJbmZsdWVuY2VzIiwibW9ycGhUYXJnZXRJbmZsdWVuY2VzIiwiaW5mbHVlbmNlIiwibW9ycGhUYXJnZXREaWN0aW9uYXJ5IiwibWwiLCJncm91cE1hdGVyaWFsIiwiZmFjZUluZGV4IiwiZnZBIiwiZnZCIiwiZnZDIiwiaXNNdWx0aU1hdGVyaWFsIiwiZmwiLCJmYWNlTWF0ZXJpYWwiLCJ1dnNfZiIsIl9nZW9tZXRyeUlkIiwiX20xJDMiLCJfb2JqJDEiLCJfb2Zmc2V0JDEiLCJHZW9tZXRyeSIsImZyb21CdWZmZXJHZW9tZXRyeSIsImFkZEZhY2UiLCJhcmVhV2VpZ2h0ZWQiLCJ2bCIsImNvbXB1dGVGbGF0VmVydGV4Tm9ybWFscyIsImNvbXB1dGVNb3JwaE5vcm1hbHMiLCJfX29yaWdpbmFsRmFjZU5vcm1hbCIsIl9fb3JpZ2luYWxWZXJ0ZXhOb3JtYWxzIiwidG1wR2VvIiwiZmFjZU5vcm1hbHMiLCJkc3ROb3JtYWxzRmFjZSIsImRzdE5vcm1hbHNWZXJ0ZXgiLCJmYWNlTm9ybWFsIiwibWF0ZXJpYWxJbmRleE9mZnNldCIsInZlcnRpY2VzMSIsInZlcnRpY2VzMiIsImZhY2VzMSIsImZhY2VzMiIsImNvbG9yczEiLCJjb2xvcnMyIiwidmVydGV4Q29weSIsImZhY2VDb3B5IiwiZmFjZVZlcnRleE5vcm1hbHMiLCJmYWNlVmVydGV4Q29sb3JzIiwiZmFjZVZlcnRleFV2czIiLCJ1dnNDb3B5Iiwia2wiLCJtZXJnZU1lc2giLCJtZXJnZVZlcnRpY2VzIiwidmVydGljZXNNYXAiLCJjaGFuZ2VzIiwiZmFjZUluZGljZXNUb1JlbW92ZSIsInNvcnRGYWNlc0J5TWF0ZXJpYWxJbmRleCIsIl9pZCIsIm5ld1V2czEiLCJuZXdVdnMyIiwidXZzMSIsIm5vcm1hbHNIYXNoIiwiY29sb3JzSGFzaCIsInV2c0hhc2giLCJoYXNGYWNlTm9ybWFsIiwiaGFzRmFjZVZlcnRleE5vcm1hbCIsImhhc0ZhY2VDb2xvciIsImhhc0ZhY2VWZXJ0ZXhDb2xvciIsImZhY2VUeXBlIiwic2V0Qml0IiwiZ2V0VXZJbmRleCIsImdldE5vcm1hbEluZGV4IiwiZ2V0Q29sb3JJbmRleCIsInNyY1ZlcnRleE5vcm1hbCIsImRlc3RWZXJ0ZXhOb3JtYWwiLCJCb3hCdWZmZXJHZW9tZXRyeSIsIndpZHRoU2VnbWVudHMiLCJoZWlnaHRTZWdtZW50cyIsImRlcHRoU2VnbWVudHMiLCJzdXBlciIsIm51bWJlck9mVmVydGljZXMiLCJncm91cFN0YXJ0IiwiYnVpbGRQbGFuZSIsInVkaXIiLCJ2ZGlyIiwiZ3JpZFgiLCJncmlkWSIsInNlZ21lbnRXaWR0aCIsInNlZ21lbnRIZWlnaHQiLCJ3aWR0aEhhbGYiLCJoZWlnaHRIYWxmIiwiZGVwdGhIYWxmIiwiZ3JpZFgxIiwiZ3JpZFkxIiwidmVydGV4Q291bnRlciIsImdyb3VwQ291bnQiLCJjbG9uZVVuaWZvcm1zIiwibWVyZ2VVbmlmb3JtcyIsIm1lcmdlZCIsIlVuaWZvcm1zVXRpbHMiLCJTaGFkZXJNYXRlcmlhbCIsImRlZmluZXMiLCJjbGlwcGluZyIsImRlcml2YXRpdmVzIiwiZnJhZ0RlcHRoIiwiZHJhd0J1ZmZlcnMiLCJzaGFkZXJUZXh0dXJlTE9EIiwiZGVmYXVsdEF0dHJpYnV0ZVZhbHVlcyIsImluZGV4MEF0dHJpYnV0ZU5hbWUiLCJ1bmlmb3Jtc05lZWRVcGRhdGUiLCJmaWxtR2F1Z2UiLCJmaWxtT2Zmc2V0IiwidXBkYXRlUHJvamVjdGlvbk1hdHJpeCIsImlzU2hhZGVyTWF0ZXJpYWwiLCJpc1BlcnNwZWN0aXZlQ2FtZXJhIiwic2V0Rm9jYWxMZW5ndGgiLCJmb2NhbExlbmd0aCIsInZFeHRlbnRTbG9wZSIsImdldEZpbG1IZWlnaHQiLCJnZXRGb2NhbExlbmd0aCIsImdldEVmZmVjdGl2ZUZPViIsImdldEZpbG1XaWR0aCIsInNldFZpZXdPZmZzZXQiLCJmdWxsV2lkdGgiLCJmdWxsSGVpZ2h0IiwiY2xlYXJWaWV3T2Zmc2V0Iiwic2tldyIsIkN1YmVDYW1lcmEiLCJjdWJlUmVzb2x1dGlvbiIsImNhbWVyYVBYIiwiY2FtZXJhTlgiLCJjYW1lcmFQWSIsImNhbWVyYU5ZIiwiY2FtZXJhUFoiLCJjYW1lcmFOWiIsInJlbmRlclRhcmdldCIsIldlYkdMQ3ViZVJlbmRlclRhcmdldCIsImN1cnJlbnRSZW5kZXJUYXJnZXQiLCJnZXRSZW5kZXJUYXJnZXQiLCJzZXRSZW5kZXJUYXJnZXQiLCJEYXRhVGV4dHVyZSIsImlzV2ViR0xDdWJlUmVuZGVyVGFyZ2V0IiwiZnJvbUVxdWlyZWN0YW5ndWxhclRleHR1cmUiLCJ0RXF1aXJlY3QiLCJpc0RhdGFUZXh0dXJlIiwiX3NwaGVyZSQxIiwiX3ZlY3RvciQ1IiwiRnJ1c3R1bSIsInA1IiwicGxhbmVzIiwic2V0RnJvbVByb2plY3Rpb25NYXRyaXgiLCJtZTAiLCJtZTEiLCJtZTIiLCJtZTMiLCJtZTQiLCJtZTUiLCJtZTYiLCJtZTciLCJtZTgiLCJtZTkiLCJtZTEwIiwibWUxMSIsIm1lMTIiLCJtZTEzIiwibWUxNCIsIm1lMTUiLCJpbnRlcnNlY3RzT2JqZWN0IiwiaW50ZXJzZWN0c1Nwcml0ZSIsIm5lZ1JhZGl1cyIsIlVuaWZvcm1zTGliIiwiZGlmZnVzZSIsInV2VHJhbnNmb3JtIiwidXYyVHJhbnNmb3JtIiwic3BlY3VsYXJtYXAiLCJlbnZtYXAiLCJmbGlwRW52TWFwIiwibWF4TWlwTGV2ZWwiLCJhb21hcCIsImxpZ2h0bWFwIiwiZW1pc3NpdmVtYXAiLCJidW1wbWFwIiwibm9ybWFsbWFwIiwiZGlzcGxhY2VtZW50bWFwIiwicm91Z2huZXNzbWFwIiwibWV0YWxuZXNzbWFwIiwiZ3JhZGllbnRtYXAiLCJmb2dEZW5zaXR5IiwiZm9nTmVhciIsImZvZ0ZhciIsImZvZ0NvbG9yIiwiYW1iaWVudExpZ2h0Q29sb3IiLCJsaWdodFByb2JlIiwiZGlyZWN0aW9uYWxMaWdodHMiLCJkaXJlY3Rpb25hbExpZ2h0U2hhZG93cyIsInNoYWRvd0JpYXMiLCJzaGFkb3dSYWRpdXMiLCJzaGFkb3dNYXBTaXplIiwiZGlyZWN0aW9uYWxTaGFkb3dNYXAiLCJkaXJlY3Rpb25hbFNoYWRvd01hdHJpeCIsInNwb3RMaWdodHMiLCJjb25lQ29zIiwicGVudW1icmFDb3MiLCJkZWNheSIsInNwb3RMaWdodFNoYWRvd3MiLCJzcG90U2hhZG93TWFwIiwic3BvdFNoYWRvd01hdHJpeCIsInBvaW50TGlnaHRzIiwicG9pbnRMaWdodFNoYWRvd3MiLCJzaGFkb3dDYW1lcmFOZWFyIiwic2hhZG93Q2FtZXJhRmFyIiwicG9pbnRTaGFkb3dNYXAiLCJwb2ludFNoYWRvd01hdHJpeCIsImhlbWlzcGhlcmVMaWdodHMiLCJza3lDb2xvciIsImdyb3VuZENvbG9yIiwicmVjdEFyZWFMaWdodHMiLCJXZWJHTEFuaW1hdGlvbiIsImlzQW5pbWF0aW5nIiwiYW5pbWF0aW9uTG9vcCIsIm9uQW5pbWF0aW9uRnJhbWUiLCJzZXRBbmltYXRpb25Mb29wIiwiV2ViR0xBdHRyaWJ1dGVzIiwiY2FwYWJpbGl0aWVzIiwiaXNXZWJHTDIiLCJidWZmZXJzIiwiaXNJbnRlcmxlYXZlZEJ1ZmZlckF0dHJpYnV0ZSIsImJ1ZmZlclR5cGUiLCJieXRlc1BlckVsZW1lbnQiLCJ1cGRhdGVCdWZmZXIiLCJQbGFuZUdlb21ldHJ5IiwiUGxhbmVCdWZmZXJHZW9tZXRyeSIsIndpZHRoX2hhbGYiLCJoZWlnaHRfaGFsZiIsInNlZ21lbnRfd2lkdGgiLCJzZWdtZW50X2hlaWdodCIsIlNoYWRlckNodW5rIiwiYWxwaGFtYXBfZnJhZ21lbnQiLCJhbHBoYW1hcF9wYXJzX2ZyYWdtZW50IiwiYWxwaGF0ZXN0X2ZyYWdtZW50IiwiYW9tYXBfZnJhZ21lbnQiLCJhb21hcF9wYXJzX2ZyYWdtZW50IiwiYmVnaW5fdmVydGV4IiwiYmVnaW5ub3JtYWxfdmVydGV4IiwiYnNkZnMiLCJidW1wbWFwX3BhcnNfZnJhZ21lbnQiLCJjbGlwcGluZ19wbGFuZXNfZnJhZ21lbnQiLCJjbGlwcGluZ19wbGFuZXNfcGFyc19mcmFnbWVudCIsImNsaXBwaW5nX3BsYW5lc19wYXJzX3ZlcnRleCIsImNsaXBwaW5nX3BsYW5lc192ZXJ0ZXgiLCJjb2xvcl9mcmFnbWVudCIsImNvbG9yX3BhcnNfZnJhZ21lbnQiLCJjb2xvcl9wYXJzX3ZlcnRleCIsImNvbG9yX3ZlcnRleCIsImN1YmVfdXZfcmVmbGVjdGlvbl9mcmFnbWVudCIsImRlZmF1bHRub3JtYWxfdmVydGV4IiwiZGlzcGxhY2VtZW50bWFwX3BhcnNfdmVydGV4IiwiZGlzcGxhY2VtZW50bWFwX3ZlcnRleCIsImVtaXNzaXZlbWFwX2ZyYWdtZW50IiwiZW1pc3NpdmVtYXBfcGFyc19mcmFnbWVudCIsImVuY29kaW5nc19mcmFnbWVudCIsImVuY29kaW5nc19wYXJzX2ZyYWdtZW50IiwiZW52bWFwX2ZyYWdtZW50IiwiZW52bWFwX2NvbW1vbl9wYXJzX2ZyYWdtZW50IiwiZW52bWFwX3BhcnNfZnJhZ21lbnQiLCJlbnZtYXBfcGFyc192ZXJ0ZXgiLCJlbnZtYXBfcGh5c2ljYWxfcGFyc19mcmFnbWVudCIsImVudm1hcF92ZXJ0ZXgiLCJmb2dfdmVydGV4IiwiZm9nX3BhcnNfdmVydGV4IiwiZm9nX2ZyYWdtZW50IiwiZm9nX3BhcnNfZnJhZ21lbnQiLCJncmFkaWVudG1hcF9wYXJzX2ZyYWdtZW50IiwibGlnaHRtYXBfZnJhZ21lbnQiLCJsaWdodG1hcF9wYXJzX2ZyYWdtZW50IiwibGlnaHRzX2xhbWJlcnRfdmVydGV4IiwibGlnaHRzX3BhcnNfYmVnaW4iLCJsaWdodHNfdG9vbl9mcmFnbWVudCIsImxpZ2h0c190b29uX3BhcnNfZnJhZ21lbnQiLCJsaWdodHNfcGhvbmdfZnJhZ21lbnQiLCJsaWdodHNfcGhvbmdfcGFyc19mcmFnbWVudCIsImxpZ2h0c19waHlzaWNhbF9mcmFnbWVudCIsImxpZ2h0c19waHlzaWNhbF9wYXJzX2ZyYWdtZW50IiwibGlnaHRzX2ZyYWdtZW50X2JlZ2luIiwibGlnaHRzX2ZyYWdtZW50X21hcHMiLCJsaWdodHNfZnJhZ21lbnRfZW5kIiwibG9nZGVwdGhidWZfZnJhZ21lbnQiLCJsb2dkZXB0aGJ1Zl9wYXJzX2ZyYWdtZW50IiwibG9nZGVwdGhidWZfcGFyc192ZXJ0ZXgiLCJsb2dkZXB0aGJ1Zl92ZXJ0ZXgiLCJtYXBfZnJhZ21lbnQiLCJtYXBfcGFyc19mcmFnbWVudCIsIm1hcF9wYXJ0aWNsZV9mcmFnbWVudCIsIm1hcF9wYXJ0aWNsZV9wYXJzX2ZyYWdtZW50IiwibWV0YWxuZXNzbWFwX2ZyYWdtZW50IiwibWV0YWxuZXNzbWFwX3BhcnNfZnJhZ21lbnQiLCJtb3JwaG5vcm1hbF92ZXJ0ZXgiLCJtb3JwaHRhcmdldF9wYXJzX3ZlcnRleCIsIm1vcnBodGFyZ2V0X3ZlcnRleCIsIm5vcm1hbF9mcmFnbWVudF9iZWdpbiIsIm5vcm1hbF9mcmFnbWVudF9tYXBzIiwibm9ybWFsbWFwX3BhcnNfZnJhZ21lbnQiLCJjbGVhcmNvYXRfbm9ybWFsX2ZyYWdtZW50X2JlZ2luIiwiY2xlYXJjb2F0X25vcm1hbF9mcmFnbWVudF9tYXBzIiwiY2xlYXJjb2F0X3BhcnNfZnJhZ21lbnQiLCJwYWNraW5nIiwicHJlbXVsdGlwbGllZF9hbHBoYV9mcmFnbWVudCIsInByb2plY3RfdmVydGV4IiwiZGl0aGVyaW5nX2ZyYWdtZW50IiwiZGl0aGVyaW5nX3BhcnNfZnJhZ21lbnQiLCJyb3VnaG5lc3NtYXBfZnJhZ21lbnQiLCJyb3VnaG5lc3NtYXBfcGFyc19mcmFnbWVudCIsInNoYWRvd21hcF9wYXJzX2ZyYWdtZW50Iiwic2hhZG93bWFwX3BhcnNfdmVydGV4Iiwic2hhZG93bWFwX3ZlcnRleCIsInNoYWRvd21hc2tfcGFyc19mcmFnbWVudCIsInNraW5iYXNlX3ZlcnRleCIsInNraW5uaW5nX3BhcnNfdmVydGV4Iiwic2tpbm5pbmdfdmVydGV4Iiwic2tpbm5vcm1hbF92ZXJ0ZXgiLCJzcGVjdWxhcm1hcF9mcmFnbWVudCIsInNwZWN1bGFybWFwX3BhcnNfZnJhZ21lbnQiLCJ0b25lbWFwcGluZ19mcmFnbWVudCIsInRvbmVtYXBwaW5nX3BhcnNfZnJhZ21lbnQiLCJ1dl9wYXJzX2ZyYWdtZW50IiwidXZfcGFyc192ZXJ0ZXgiLCJ1dl92ZXJ0ZXgiLCJ1djJfcGFyc19mcmFnbWVudCIsInV2Ml9wYXJzX3ZlcnRleCIsInV2Ml92ZXJ0ZXgiLCJ3b3JsZHBvc192ZXJ0ZXgiLCJiYWNrZ3JvdW5kX2ZyYWciLCJiYWNrZ3JvdW5kX3ZlcnQiLCJjdWJlX2ZyYWciLCJjdWJlX3ZlcnQiLCJkZXB0aF9mcmFnIiwiZGVwdGhfdmVydCIsImRpc3RhbmNlUkdCQV9mcmFnIiwiZGlzdGFuY2VSR0JBX3ZlcnQiLCJlcXVpcmVjdF9mcmFnIiwiZXF1aXJlY3RfdmVydCIsImxpbmVkYXNoZWRfZnJhZyIsImxpbmVkYXNoZWRfdmVydCIsIm1lc2hiYXNpY19mcmFnIiwibWVzaGJhc2ljX3ZlcnQiLCJtZXNobGFtYmVydF9mcmFnIiwibWVzaGxhbWJlcnRfdmVydCIsIm1lc2htYXRjYXBfZnJhZyIsIm1lc2htYXRjYXBfdmVydCIsIm1lc2h0b29uX2ZyYWciLCJtZXNodG9vbl92ZXJ0IiwibWVzaHBob25nX2ZyYWciLCJtZXNocGhvbmdfdmVydCIsIm1lc2hwaHlzaWNhbF9mcmFnIiwibWVzaHBoeXNpY2FsX3ZlcnQiLCJub3JtYWxfZnJhZyIsIm5vcm1hbF92ZXJ0IiwicG9pbnRzX2ZyYWciLCJwb2ludHNfdmVydCIsInNoYWRvd19mcmFnIiwic2hhZG93X3ZlcnQiLCJzcHJpdGVfZnJhZyIsInNwcml0ZV92ZXJ0IiwiU2hhZGVyTGliIiwiYmFzaWMiLCJsYW1iZXJ0IiwicGhvbmciLCJzdGFuZGFyZCIsInRvb24iLCJkYXNoZWQiLCJ0b3RhbFNpemUiLCJ0MkQiLCJjdWJlIiwiZXF1aXJlY3QiLCJkaXN0YW5jZVJHQkEiLCJyZWZlcmVuY2VQb3NpdGlvbiIsIm5lYXJEaXN0YW5jZSIsImZhckRpc3RhbmNlIiwic2hhZG93IiwiV2ViR0xCYWNrZ3JvdW5kIiwicGxhbmVNZXNoIiwiYm94TWVzaCIsImN1cnJlbnRCYWNrZ3JvdW5kIiwiY3VycmVudEJhY2tncm91bmRWZXJzaW9uIiwiY3VycmVudFRvbmVtYXBwaW5nIiwic2V0Q2xlYXIiLCJnZXRDbGVhckNvbG9yIiwic2V0Q2xlYXJDb2xvciIsImdldENsZWFyQWxwaGEiLCJzZXRDbGVhckFscGhhIiwiZm9yY2VDbGVhciIsInhyIiwic2Vzc2lvbiIsImdldFNlc3Npb24iLCJlbnZpcm9ubWVudEJsZW5kTW9kZSIsImF1dG9DbGVhciIsImF1dG9DbGVhckNvbG9yIiwiYXV0b0NsZWFyRGVwdGgiLCJhdXRvQ2xlYXJTdGVuY2lsIiwiaXNDdWJlVGV4dHVyZSIsInRvbmVNYXBwaW5nIiwiV2ViR0xCdWZmZXJSZW5kZXJlciIsInNldE1vZGUiLCJyZW5kZXJJbnN0YW5jZXMiLCJwcmltY291bnQiLCJXZWJHTENhcGFiaWxpdGllcyIsIm1heEFuaXNvdHJvcHkiLCJnZXRNYXhQcmVjaXNpb24iLCJnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQiLCJXZWJHTDJSZW5kZXJpbmdDb250ZXh0IiwiV2ViR0wyQ29tcHV0ZVJlbmRlcmluZ0NvbnRleHQiLCJtYXhQcmVjaXNpb24iLCJsb2dhcml0aG1pY0RlcHRoQnVmZmVyIiwibWF4VmVydGV4VGV4dHVyZXMiLCJtYXhDdWJlbWFwU2l6ZSIsIm1heEF0dHJpYnV0ZXMiLCJtYXhWZXJ0ZXhVbmlmb3JtcyIsIm1heFZhcnlpbmdzIiwibWF4RnJhZ21lbnRVbmlmb3JtcyIsInZlcnRleFRleHR1cmVzIiwiZmxvYXRGcmFnbWVudFRleHR1cmVzIiwiZ2V0TWF4QW5pc290cm9weSIsIk1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCIsImZsb2F0VmVydGV4VGV4dHVyZXMiLCJtYXhTYW1wbGVzIiwiV2ViR0xDbGlwcGluZyIsImdsb2JhbFN0YXRlIiwibnVtR2xvYmFsUGxhbmVzIiwibG9jYWxDbGlwcGluZ0VuYWJsZWQiLCJyZW5kZXJpbmdTaGFkb3dzIiwidmlld05vcm1hbE1hdHJpeCIsInJlc2V0R2xvYmFsU3RhdGUiLCJudW1QbGFuZXMiLCJudW1JbnRlcnNlY3Rpb24iLCJwcm9qZWN0UGxhbmVzIiwic2tpcFRyYW5zZm9ybSIsIm5QbGFuZXMiLCJkc3RBcnJheSIsImZsYXRTaXplIiwiaTQiLCJlbmFibGVMb2NhbENsaXBwaW5nIiwiYmVnaW5TaGFkb3dzIiwiZW5kU2hhZG93cyIsImZyb21DYWNoZSIsIm5HbG9iYWwiLCJsR2xvYmFsIiwiY2xpcHBpbmdTdGF0ZSIsIldlYkdMRXh0ZW5zaW9ucyIsIldlYkdMR2VvbWV0cmllcyIsIndpcmVmcmFtZUF0dHJpYnV0ZXMiLCJvbkdlb21ldHJ5RGlzcG9zZSIsImJ1ZmZlcmdlb21ldHJ5IiwidXBkYXRlV2lyZWZyYW1lQXR0cmlidXRlIiwiZ2VvbWV0cnlJbmRleCIsImdlb21ldHJ5UG9zaXRpb24iLCJwcmV2aW91c0F0dHJpYnV0ZSIsIl9idWZmZXJHZW9tZXRyeSIsImdlb21ldHJ5QXR0cmlidXRlcyIsImdldFdpcmVmcmFtZUF0dHJpYnV0ZSIsImN1cnJlbnRBdHRyaWJ1dGUiLCJXZWJHTEluZGV4ZWRCdWZmZXJSZW5kZXJlciIsImRyYXdFbGVtZW50cyIsIldlYkdMSW5mbyIsImNhbGxzIiwicHJvZ3JhbXMiLCJhdXRvUmVzZXQiLCJpbnN0YW5jZUNvdW50IiwiYWJzTnVtZXJpY2FsU29ydCIsIldlYkdMTW9ycGh0YXJnZXRzIiwiaW5mbHVlbmNlc0xpc3QiLCJvYmplY3RJbmZsdWVuY2VzIiwiaW5mbHVlbmNlcyIsIm1vcnBoSW5mbHVlbmNlc1N1bSIsIm1vcnBoQmFzZUluZmx1ZW5jZSIsImdldFVuaWZvcm1zIiwiV2ViR0xPYmplY3RzIiwidXBkYXRlTWFwIiwiQ3ViZVRleHR1cmUiLCJEYXRhVGV4dHVyZTJEQXJyYXkiLCJ3cmFwUiIsIkRhdGFUZXh0dXJlM0QiLCJwaHlzaWNhbCIsInRyYW5zcGFyZW5jeSIsImlzRGF0YVRleHR1cmUyREFycmF5IiwiaXNEYXRhVGV4dHVyZTNEIiwiZW1wdHlUZXh0dXJlIiwiZW1wdHlUZXh0dXJlMmRBcnJheSIsImVtcHR5VGV4dHVyZTNkIiwiZW1wdHlDdWJlVGV4dHVyZSIsImFycmF5Q2FjaGVGMzIiLCJhcnJheUNhY2hlSTMyIiwibWF0NGFycmF5IiwibWF0M2FycmF5IiwibWF0MmFycmF5IiwibkJsb2NrcyIsImJsb2NrU2l6ZSIsImZpcnN0RWxlbSIsImFycmF5c0VxdWFsIiwiYWxsb2NUZXhVbml0cyIsImFsbG9jYXRlVGV4dHVyZVVuaXQiLCJzZXRWYWx1ZVYxZiIsImFkZHIiLCJzZXRWYWx1ZVYyZiIsInNldFZhbHVlVjNmIiwic2V0VmFsdWVWNGYiLCJzZXRWYWx1ZU0yIiwic2V0VmFsdWVNMyIsInNldFZhbHVlTTQiLCJzZXRWYWx1ZVQxIiwic2FmZVNldFRleHR1cmUyRCIsInNldFZhbHVlVDJEQXJyYXkxIiwic2V0VGV4dHVyZTJEQXJyYXkiLCJzZXRWYWx1ZVQzRDEiLCJzZXRUZXh0dXJlM0QiLCJzZXRWYWx1ZVQ2Iiwic2FmZVNldFRleHR1cmVDdWJlIiwic2V0VmFsdWVWMWkiLCJzZXRWYWx1ZVYyaSIsInNldFZhbHVlVjNpIiwic2V0VmFsdWVWNGkiLCJzZXRWYWx1ZVYxdWkiLCJ1bmlmb3JtMXVpIiwic2V0VmFsdWVWMWZBcnJheSIsInNldFZhbHVlVjFpQXJyYXkiLCJzZXRWYWx1ZVYyaUFycmF5Iiwic2V0VmFsdWVWM2lBcnJheSIsInNldFZhbHVlVjRpQXJyYXkiLCJzZXRWYWx1ZVYyZkFycmF5Iiwic2V0VmFsdWVWM2ZBcnJheSIsInNldFZhbHVlVjRmQXJyYXkiLCJzZXRWYWx1ZU0yQXJyYXkiLCJzZXRWYWx1ZU0zQXJyYXkiLCJzZXRWYWx1ZU00QXJyYXkiLCJzZXRWYWx1ZVQxQXJyYXkiLCJzZXRWYWx1ZVQ2QXJyYXkiLCJTaW5nbGVVbmlmb3JtIiwiYWN0aXZlSW5mbyIsImdldFNpbmd1bGFyU2V0dGVyIiwiUHVyZUFycmF5VW5pZm9ybSIsImdldFB1cmVBcnJheVNldHRlciIsIlN0cnVjdHVyZWRVbmlmb3JtIiwic2VxIiwidXBkYXRlQ2FjaGUiLCJSZVBhdGhQYXJ0IiwiYWRkVW5pZm9ybSIsInVuaWZvcm1PYmplY3QiLCJwYXJzZVVuaWZvcm0iLCJtYXRjaEVuZCIsImlkSXNJbmRleCIsInN1YnNjcmlwdCIsIldlYkdMVW5pZm9ybXMiLCJnZXRBY3RpdmVVbmlmb3JtIiwiV2ViR0xTaGFkZXIiLCJzZXRPcHRpb25hbCIsInNlcVdpdGhWYWx1ZSIsInByb2dyYW1JZENvdW50IiwiZ2V0RW5jb2RpbmdDb21wb25lbnRzIiwiZ2V0U2hhZGVyRXJyb3JzIiwiYWRkTGluZU51bWJlcnMiLCJnZXRTaGFkZXJTb3VyY2UiLCJnZXRUZXhlbERlY29kaW5nRnVuY3Rpb24iLCJnZXRUb25lTWFwcGluZ0Z1bmN0aW9uIiwidG9uZU1hcHBpbmdOYW1lIiwiZmlsdGVyRW1wdHlMaW5lIiwicmVwbGFjZUxpZ2h0TnVtcyIsIm51bURpckxpZ2h0cyIsIm51bVNwb3RMaWdodHMiLCJudW1SZWN0QXJlYUxpZ2h0cyIsIm51bVBvaW50TGlnaHRzIiwibnVtSGVtaUxpZ2h0cyIsIm51bURpckxpZ2h0U2hhZG93cyIsIm51bVNwb3RMaWdodFNoYWRvd3MiLCJudW1Qb2ludExpZ2h0U2hhZG93cyIsInJlcGxhY2VDbGlwcGluZ1BsYW5lTnVtcyIsIm51bUNsaXBwaW5nUGxhbmVzIiwibnVtQ2xpcEludGVyc2VjdGlvbiIsImluY2x1ZGVQYXR0ZXJuIiwicmVzb2x2ZUluY2x1ZGVzIiwiaW5jbHVkZVJlcGxhY2VyIiwiaW5jbHVkZSIsImRlcHJlY2F0ZWRVbnJvbGxMb29wUGF0dGVybiIsInVucm9sbExvb3BQYXR0ZXJuIiwidW5yb2xsTG9vcHMiLCJsb29wUmVwbGFjZXIiLCJkZXByZWNhdGVkTG9vcFJlcGxhY2VyIiwic25pcHBldCIsImdlbmVyYXRlUHJlY2lzaW9uIiwicHJlY2lzaW9uc3RyaW5nIiwiV2ViR0xQcm9ncmFtIiwiY2FjaGVLZXkiLCJwcmVmaXhWZXJ0ZXgiLCJwcmVmaXhGcmFnbWVudCIsInNoYWRvd01hcFR5cGVEZWZpbmUiLCJzaGFkb3dNYXBUeXBlIiwiZ2VuZXJhdGVTaGFkb3dNYXBUeXBlRGVmaW5lIiwiZW52TWFwVHlwZURlZmluZSIsImVudk1hcE1vZGUiLCJnZW5lcmF0ZUVudk1hcFR5cGVEZWZpbmUiLCJlbnZNYXBNb2RlRGVmaW5lIiwiZ2VuZXJhdGVFbnZNYXBNb2RlRGVmaW5lIiwiZW52TWFwQmxlbmRpbmdEZWZpbmUiLCJnZW5lcmF0ZUVudk1hcEJsZW5kaW5nRGVmaW5lIiwiZ2FtbWFGYWN0b3JEZWZpbmUiLCJjdXN0b21FeHRlbnNpb25zIiwiZXh0ZW5zaW9uRGVyaXZhdGl2ZXMiLCJlbnZNYXBDdWJlVVYiLCJ0YW5nZW50U3BhY2VOb3JtYWxNYXAiLCJzaGFkZXJJRCIsImV4dGVuc2lvbkZyYWdEZXB0aCIsInJlbmRlcmVyRXh0ZW5zaW9uRnJhZ0RlcHRoIiwiZXh0ZW5zaW9uRHJhd0J1ZmZlcnMiLCJyZW5kZXJlckV4dGVuc2lvbkRyYXdCdWZmZXJzIiwiZXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxPRCIsInJlbmRlcmVyRXh0ZW5zaW9uU2hhZGVyVGV4dHVyZUxvZCIsImdlbmVyYXRlRXh0ZW5zaW9ucyIsImN1c3RvbURlZmluZXMiLCJnZW5lcmF0ZURlZmluZXMiLCJpc1Jhd1NoYWRlck1hdGVyaWFsIiwic2hhZGVyTmFtZSIsImluc3RhbmNpbmciLCJzdXBwb3J0c1ZlcnRleFRleHR1cmVzIiwibWF4Qm9uZXMiLCJ1c2VGb2ciLCJmb2dFeHAyIiwib2JqZWN0U3BhY2VOb3JtYWxNYXAiLCJ2ZXJ0ZXhUYW5nZW50cyIsInV2c1ZlcnRleE9ubHkiLCJ1c2VWZXJ0ZXhUZXh0dXJlIiwiZG91YmxlU2lkZWQiLCJmbGlwU2lkZWQiLCJzaGFkb3dNYXBFbmFibGVkIiwicGh5c2ljYWxseUNvcnJlY3RMaWdodHMiLCJvdXRwdXRFbmNvZGluZyIsIm1hcEVuY29kaW5nIiwibWF0Y2FwRW5jb2RpbmciLCJlbnZNYXBFbmNvZGluZyIsImVtaXNzaXZlTWFwRW5jb2RpbmciLCJsaWdodE1hcEVuY29kaW5nIiwiZGVwdGhQYWNraW5nIiwiaXNHTFNMM1NoYWRlck1hdGVyaWFsIiwidmVyc2lvblJlZ2V4IiwiY2FjaGVkVW5pZm9ybXMiLCJjYWNoZWRBdHRyaWJ1dGVzIiwiZnJhZ21lbnRHbHNsIiwiZ2xWZXJ0ZXhTaGFkZXIiLCJnbEZyYWdtZW50U2hhZGVyIiwiYmluZEF0dHJpYkxvY2F0aW9uIiwiY2hlY2tTaGFkZXJFcnJvcnMiLCJwcm9ncmFtTG9nIiwidmVydGV4TG9nIiwiZnJhZ21lbnRMb2ciLCJydW5uYWJsZSIsImhhdmVEaWFnbm9zdGljcyIsInZlcnRleEVycm9ycyIsImZyYWdtZW50RXJyb3JzIiwiZ2V0RXJyb3IiLCJkaWFnbm9zdGljcyIsImRldGFjaFNoYWRlciIsImRlbGV0ZVNoYWRlciIsImdldEF0dHJpYnV0ZXMiLCJnZXRBY3RpdmVBdHRyaWIiLCJmZXRjaEF0dHJpYnV0ZUxvY2F0aW9ucyIsInVzZWRUaW1lcyIsIldlYkdMUHJvZ3JhbXMiLCJzaGFkZXJJRHMiLCJNZXNoRGVwdGhNYXRlcmlhbCIsIk1lc2hEaXN0YW5jZU1hdGVyaWFsIiwiTWVzaE5vcm1hbE1hdGVyaWFsIiwiTWVzaExhbWJlcnRNYXRlcmlhbCIsIk1lc2hQaG9uZ01hdGVyaWFsIiwiTWVzaFRvb25NYXRlcmlhbCIsIk1lc2hTdGFuZGFyZE1hdGVyaWFsIiwiTWVzaFBoeXNpY2FsTWF0ZXJpYWwiLCJNZXNoTWF0Y2FwTWF0ZXJpYWwiLCJMaW5lQmFzaWNNYXRlcmlhbCIsIkxpbmVEYXNoZWRNYXRlcmlhbCIsIlBvaW50c01hdGVyaWFsIiwiU2hhZG93TWF0ZXJpYWwiLCJTcHJpdGVNYXRlcmlhbCIsInBhcmFtZXRlck5hbWVzIiwiZ2V0VGV4dHVyZUVuY29kaW5nRnJvbU1hcCIsImdldFBhcmFtZXRlcnMiLCJzaGFkb3dzIiwibkNsaXBQbGFuZXMiLCJuQ2xpcEludGVyc2VjdGlvbiIsImlzTWVzaFN0YW5kYXJkTWF0ZXJpYWwiLCJpc1NraW5uZWRNZXNoIiwiYm9uZXMiLCJza2VsZXRvbiIsIm5WZXJ0ZXhVbmlmb3JtcyIsIm5WZXJ0ZXhNYXRyaWNlcyIsImFsbG9jYXRlQm9uZXMiLCJzaGFkZXJvYmplY3QiLCJnZXRTaGFkZXJPYmplY3QiLCJpc0ZvZ0V4cDIiLCJtYXhNb3JwaFRhcmdldHMiLCJtYXhNb3JwaE5vcm1hbHMiLCJkaXJlY3Rpb25hbCIsInNwb3QiLCJyZWN0QXJlYSIsImhlbWkiLCJzaGFkb3dNYXAiLCJnZXRQcm9ncmFtQ2FjaGVLZXkiLCJhY3F1aXJlUHJvZ3JhbSIsInBsIiwicHJlZXhpc3RpbmdQcm9ncmFtIiwicmVsZWFzZVByb2dyYW0iLCJXZWJHTFByb3BlcnRpZXMiLCJwYWludGVyU29ydFN0YWJsZSIsImdyb3VwT3JkZXIiLCJyZXZlcnNlUGFpbnRlclNvcnRTdGFibGUiLCJXZWJHTFJlbmRlckxpc3QiLCJyZW5kZXJJdGVtcyIsInJlbmRlckl0ZW1zSW5kZXgiLCJvcGFxdWUiLCJkZWZhdWx0UHJvZ3JhbSIsImdldE5leHRSZW5kZXJJdGVtIiwicmVuZGVySXRlbSIsImN1c3RvbU9wYXF1ZVNvcnQiLCJjdXN0b21UcmFuc3BhcmVudFNvcnQiLCJXZWJHTFJlbmRlckxpc3RzIiwibGlzdHMiLCJvblNjZW5lRGlzcG9zZSIsIlVuaWZvcm1zQ2FjaGUiLCJuZXh0VmVyc2lvbiIsInNoYWRvd0Nhc3RpbmdMaWdodHNGaXJzdCIsImxpZ2h0QSIsImxpZ2h0QiIsIldlYkdMTGlnaHRzIiwic2hhZG93Q2FjaGUiLCJkaXJlY3Rpb25hbExlbmd0aCIsInBvaW50TGVuZ3RoIiwic3BvdExlbmd0aCIsInJlY3RBcmVhTGVuZ3RoIiwiaGVtaUxlbmd0aCIsIm51bURpcmVjdGlvbmFsU2hhZG93cyIsIm51bVBvaW50U2hhZG93cyIsIm51bVNwb3RTaGFkb3dzIiwiYW1iaWVudCIsInByb2JlIiwiZGlyZWN0aW9uYWxTaGFkb3ciLCJzcG90U2hhZG93IiwicG9pbnRTaGFkb3ciLCJ2ZWN0b3IzIiwibWF0cml4NDIiLCJpc0FtYmllbnRMaWdodCIsImlzTGlnaHRQcm9iZSIsInNoIiwiY29lZmZpY2llbnRzIiwiaXNEaXJlY3Rpb25hbExpZ2h0Iiwic2hhZG93VW5pZm9ybXMiLCJtYXBTaXplIiwiaXNTcG90TGlnaHQiLCJwZW51bWJyYSIsImlzUmVjdEFyZWFMaWdodCIsImlzUG9pbnRMaWdodCIsImlzSGVtaXNwaGVyZUxpZ2h0IiwiV2ViR0xSZW5kZXJTdGF0ZSIsImxpZ2h0c0FycmF5Iiwic2hhZG93c0FycmF5Iiwic2V0dXBMaWdodHMiLCJwdXNoTGlnaHQiLCJwdXNoU2hhZG93Iiwic2hhZG93TGlnaHQiLCJXZWJHTFJlbmRlclN0YXRlcyIsInJlbmRlclN0YXRlcyIsInJlbmRlclN0YXRlIiwiaXNNZXNoRGVwdGhNYXRlcmlhbCIsImlzTWVzaERpc3RhbmNlTWF0ZXJpYWwiLCJXZWJHTFNoYWRvd01hcCIsIl9yZW5kZXJlciIsIl9vYmplY3RzIiwiX2ZydXN0dW0iLCJfc2hhZG93TWFwU2l6ZSIsIl92aWV3cG9ydFNpemUiLCJfdmlld3BvcnQiLCJfZGVwdGhNYXRlcmlhbHMiLCJfZGlzdGFuY2VNYXRlcmlhbHMiLCJfbWF0ZXJpYWxDYWNoZSIsInNoYWRvd01hdGVyaWFsVmVydGljYWwiLCJTQU1QTEVfUkFURSIsIkhBTEZfU0FNUExFX1JBVEUiLCJzaGFkb3dfcGFzcyIsInNoYWRvd01hdGVyaWFsSG9yaXpvbmFsIiwiSE9SSVpPTkFMX1BBU1MiLCJmdWxsU2NyZWVuVHJpIiwiZnVsbFNjcmVlbk1lc2giLCJWU01QYXNzIiwibWFwUGFzcyIsInJlbmRlckJ1ZmZlckRpcmVjdCIsImdldERlcHRoTWF0ZXJpYWxWYXJpYW50IiwidXNlTW9ycGhpbmciLCJ1c2VTa2lubmluZyIsInVzZUluc3RhbmNpbmciLCJnZXREaXN0YW5jZU1hdGVyaWFsVmFyaWFudCIsImdldERlcHRoTWF0ZXJpYWwiLCJnZXRNYXRlcmlhbFZhcmlhbnQiLCJjdXN0b21NYXRlcmlhbCIsImN1c3RvbURlcHRoTWF0ZXJpYWwiLCJjdXN0b21EaXN0YW5jZU1hdGVyaWFsIiwibWF0ZXJpYWxzRm9yVmFyaWFudCIsImNhY2hlZE1hdGVyaWFsIiwicmVuZGVyT2JqZWN0Iiwic2hhZG93Q2FtZXJhIiwiZGVwdGhNYXRlcmlhbCIsImFjdGl2ZUN1YmVGYWNlIiwiZ2V0QWN0aXZlQ3ViZUZhY2UiLCJhY3RpdmVNaXBtYXBMZXZlbCIsImdldEFjdGl2ZU1pcG1hcExldmVsIiwiX3N0YXRlIiwic2V0QmxlbmRpbmciLCJzZXRUZXN0Iiwic2V0U2Npc3NvclRlc3QiLCJzaGFkb3dGcmFtZUV4dGVudHMiLCJnZXRGcmFtZUV4dGVudHMiLCJpc1BvaW50TGlnaHRTaGFkb3ciLCJwYXJzIiwidmlld3BvcnRDb3VudCIsImdldFZpZXdwb3J0Q291bnQiLCJ2cCIsImdldFZpZXdwb3J0IiwidXBkYXRlTWF0cmljZXMiLCJnZXRGcnVzdHVtIiwiV2ViR0xTdGF0ZSIsImNvbG9yQnVmZmVyIiwiY3VycmVudENvbG9yTWFzayIsImN1cnJlbnRDb2xvckNsZWFyIiwic2V0TG9ja2VkIiwiY3VycmVudERlcHRoTWFzayIsImN1cnJlbnREZXB0aEZ1bmMiLCJjdXJyZW50RGVwdGhDbGVhciIsImRlcHRoTWFzayIsInNldEZ1bmMiLCJjbGVhckRlcHRoIiwiY3VycmVudFN0ZW5jaWxNYXNrIiwiY3VycmVudFN0ZW5jaWxGdW5jIiwiY3VycmVudFN0ZW5jaWxSZWYiLCJjdXJyZW50U3RlbmNpbEZ1bmNNYXNrIiwiY3VycmVudFN0ZW5jaWxGYWlsIiwiY3VycmVudFN0ZW5jaWxaRmFpbCIsImN1cnJlbnRTdGVuY2lsWlBhc3MiLCJjdXJyZW50U3RlbmNpbENsZWFyIiwic3RlbmNpbFRlc3QiLCJzdGVuY2lsTWFzayIsInNldE9wIiwiY2xlYXJTdGVuY2lsIiwibWF4VmVydGV4QXR0cmlidXRlcyIsIm5ld0F0dHJpYnV0ZXMiLCJlbmFibGVkQXR0cmlidXRlcyIsImF0dHJpYnV0ZURpdmlzb3JzIiwiZW5hYmxlZENhcGFiaWxpdGllcyIsImN1cnJlbnRCbGVuZGluZ0VuYWJsZWQiLCJjdXJyZW50QmxlbmRpbmciLCJjdXJyZW50QmxlbmRFcXVhdGlvbiIsImN1cnJlbnRCbGVuZFNyYyIsImN1cnJlbnRCbGVuZERzdCIsImN1cnJlbnRCbGVuZEVxdWF0aW9uQWxwaGEiLCJjdXJyZW50QmxlbmRTcmNBbHBoYSIsImN1cnJlbnRCbGVuZERzdEFscGhhIiwiY3VycmVudFByZW11bHRpcGxlZEFscGhhIiwiY3VycmVudEZsaXBTaWRlZCIsImN1cnJlbnRDdWxsRmFjZSIsImN1cnJlbnRQb2x5Z29uT2Zmc2V0RmFjdG9yIiwiY3VycmVudFBvbHlnb25PZmZzZXRVbml0cyIsImxpbmVXaWR0aEF2YWlsYWJsZSIsImdsVmVyc2lvbiIsImN1cnJlbnRUZXh0dXJlU2xvdCIsImN1cnJlbnRCb3VuZFRleHR1cmVzIiwiY3VycmVudFZpZXdwb3J0IiwiZW1wdHlUZXh0dXJlcyIsImVuYWJsZUF0dHJpYnV0ZUFuZERpdmlzb3IiLCJtZXNoUGVyQXR0cmlidXRlIiwic2V0RmxpcFNpZGVkIiwic2V0Q3VsbEZhY2UiLCJlcXVhdGlvblRvR0wiLCJNSU5fRVhUIiwiTUFYX0VYVCIsImZhY3RvclRvR0wiLCJibGVuZEVxdWF0aW9uU2VwYXJhdGUiLCJmcm9udEZhY2UiLCJjdWxsRmFjZSIsInNldFBvbHlnb25PZmZzZXQiLCJ3ZWJnbFNsb3QiLCJpbml0QXR0cmlidXRlcyIsImVuYWJsZUF0dHJpYnV0ZSIsImRpc2FibGVVbnVzZWRBdHRyaWJ1dGVzIiwic2V0TWF0ZXJpYWwiLCJmcm9udEZhY2VDVyIsIndlYmdsVHlwZSIsIndlYmdsVGV4dHVyZSIsImJvdW5kVGV4dHVyZSIsInVuYmluZFRleHR1cmUiLCJjb21wcmVzc2VkVGV4SW1hZ2UyRCIsInRleEltYWdlM0QiLCJXZWJHTFRleHR1cmVzIiwiX2dsIiwidXRpbHMiLCJfdmlkZW9UZXh0dXJlcyIsInVzZU9mZnNjcmVlbkNhbnZhcyIsIk9mZnNjcmVlbkNhbnZhcyIsInJlc2l6ZUltYWdlIiwibmVlZHNQb3dlck9mVHdvIiwibmVlZHNOZXdDYW52YXMiLCJIVE1MSW1hZ2VFbGVtZW50IiwiSW1hZ2VCaXRtYXAiLCJ0ZXh0dXJlTmVlZHNHZW5lcmF0ZU1pcG1hcHMiLCJzdXBwb3J0c01pcHMiLCJfX21heE1pcExldmVsIiwiZ2V0SW50ZXJuYWxGb3JtYXQiLCJpbnRlcm5hbEZvcm1hdE5hbWUiLCJnbEZvcm1hdCIsImdsVHlwZSIsImZpbHRlckZhbGxiYWNrIiwib25UZXh0dXJlRGlzcG9zZSIsInRleHR1cmVQcm9wZXJ0aWVzIiwiX193ZWJnbEluaXQiLCJfX3dlYmdsVGV4dHVyZSIsImRlYWxsb2NhdGVUZXh0dXJlIiwiaXNWaWRlb1RleHR1cmUiLCJvblJlbmRlclRhcmdldERpc3Bvc2UiLCJyZW5kZXJUYXJnZXRQcm9wZXJ0aWVzIiwiX193ZWJnbEZyYW1lYnVmZmVyIiwiX193ZWJnbERlcHRoYnVmZmVyIiwiZGVsZXRlUmVuZGVyYnVmZmVyIiwiX193ZWJnbE11bHRpc2FtcGxlZEZyYW1lYnVmZmVyIiwiX193ZWJnbENvbG9yUmVuZGVyYnVmZmVyIiwiX193ZWJnbERlcHRoUmVuZGVyYnVmZmVyIiwiZGVhbGxvY2F0ZVJlbmRlclRhcmdldCIsInRleHR1cmVVbml0cyIsInNsb3QiLCJfX3ZlcnNpb24iLCJ1cGxvYWRUZXh0dXJlIiwic2V0VGV4dHVyZUN1YmUiLCJpbml0VGV4dHVyZSIsImlzQ29tcHJlc3NlZCIsImlzQ29tcHJlc3NlZFRleHR1cmUiLCJjdWJlSW1hZ2UiLCJnbEludGVybmFsRm9ybWF0Iiwic2V0VGV4dHVyZVBhcmFtZXRlcnMiLCJtaXBtYXAiLCJtaXBtYXBJbWFnZSIsInNldFRleHR1cmVDdWJlRHluYW1pYyIsIndyYXBwaW5nVG9HTCIsImZpbHRlclRvR0wiLCJ0ZXh0dXJlVHlwZSIsIl9fY3VycmVudEFuaXNvdHJvcHkiLCJ0ZXhQYXJhbWV0ZXJmIiwiVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQiLCJ0ZXh0dXJlTmVlZHNQb3dlck9mVHdvIiwiaXNEZXB0aFRleHR1cmUiLCJzZXR1cEZyYW1lQnVmZmVyVGV4dHVyZSIsImF0dGFjaG1lbnQiLCJ0ZXh0dXJlVGFyZ2V0Iiwic2V0dXBSZW5kZXJCdWZmZXJTdG9yYWdlIiwicmVuZGVyYnVmZmVyIiwiaXNNdWx0aXNhbXBsZSIsImdldFJlbmRlclRhcmdldFNhbXBsZXMiLCJyZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUiLCJzZXR1cERlcHRoUmVuZGVyYnVmZmVyIiwiaXNDdWJlIiwid2ViZ2xEZXB0aFRleHR1cmUiLCJzZXR1cERlcHRoVGV4dHVyZSIsIndhcm5lZFRleHR1cmUyRCIsIndhcm5lZFRleHR1cmVDdWJlIiwicmVzZXRUZXh0dXJlVW5pdHMiLCJzZXR1cFJlbmRlclRhcmdldCIsInVwZGF0ZVJlbmRlclRhcmdldE1pcG1hcCIsInVwZGF0ZU11bHRpc2FtcGxlUmVuZGVyVGFyZ2V0IiwiYmxpdEZyYW1lYnVmZmVyIiwiV2ViR0xVdGlscyIsIkhBTEZfRkxPQVRfT0VTIiwiQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVCIsIkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDFfRVhUIiwiQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUM19FWFQiLCJDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQ1X0VYVCIsIkNPTVBSRVNTRURfUkdCX1BWUlRDXzRCUFBWMV9JTUciLCJDT01QUkVTU0VEX1JHQl9QVlJUQ18yQlBQVjFfSU1HIiwiQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzRCUFBWMV9JTUciLCJDT01QUkVTU0VEX1JHQkFfUFZSVENfMkJQUFYxX0lNRyIsIkNPTVBSRVNTRURfUkdCX0VUQzFfV0VCR0wiLCJDT01QUkVTU0VEX1JHQjhfRVRDMiIsIkNPTVBSRVNTRURfUkdCQThfRVRDMl9FQUMiLCJVTlNJR05FRF9JTlRfMjRfOF9XRUJHTCIsIkFycmF5Q2FtZXJhIiwiV2ViWFJNYW5hZ2VyIiwiZnJhbWVidWZmZXJTY2FsZUZhY3RvciIsInJlZmVyZW5jZVNwYWNlIiwicmVmZXJlbmNlU3BhY2VUeXBlIiwicG9zZSIsImNvbnRyb2xsZXJzIiwiaW5wdXRTb3VyY2VzTWFwIiwiY2FtZXJhTCIsImNhbWVyYVIiLCJjYW1lcmFWUiIsIl9jdXJyZW50RGVwdGhOZWFyIiwiX2N1cnJlbnREZXB0aEZhciIsIm9uU2Vzc2lvbkV2ZW50IiwiaW5wdXRTb3VyY2UiLCJ0YXJnZXRSYXkiLCJncmlwIiwib25TZXNzaW9uRW5kIiwiaXNQcmVzZW50aW5nIiwib25SZXF1ZXN0UmVmZXJlbmNlU3BhY2UiLCJ1cGRhdGVJbnB1dFNvdXJjZXMiLCJpbnB1dFNvdXJjZXMiLCJhZGRlZCIsImdldENvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyR3JpcCIsInNldEZyYW1lYnVmZmVyU2NhbGVGYWN0b3IiLCJzZXRSZWZlcmVuY2VTcGFjZVR5cGUiLCJnZXRSZWZlcmVuY2VTcGFjZSIsInNldFNlc3Npb24iLCJnZXRDb250ZXh0QXR0cmlidXRlcyIsImxheWVySW5pdCIsImJhc2VMYXllciIsIlhSV2ViR0xMYXllciIsInVwZGF0ZVJlbmRlclN0YXRlIiwicmVxdWVzdFJlZmVyZW5jZVNwYWNlIiwiY2FtZXJhTFBvcyIsImNhbWVyYVJQb3MiLCJ1cGRhdGVDYW1lcmEiLCJkZXB0aE5lYXIiLCJkZXB0aEZhciIsImlwZCIsInByb2pMIiwicHJvalIiLCJ0b3BGb3YiLCJib3R0b21Gb3YiLCJsZWZ0Rm92IiwicmlnaHRGb3YiLCJ6T2Zmc2V0IiwibmVhcjIiLCJmYXIyIiwibGVmdDIiLCJ0b3AyIiwiYm90dG9tMiIsInNldFByb2plY3Rpb25Gcm9tVW5pb24iLCJvbkFuaW1hdGlvbkZyYW1lQ2FsbGJhY2siLCJnZXRWaWV3ZXJQb3NlIiwidmlld3MiLCJpbnB1dFBvc2UiLCJncmlwUG9zZSIsImdldFBvc2UiLCJ0YXJnZXRSYXlTcGFjZSIsImdyaXBTcGFjZSIsIl9zdGVuY2lsIiwiX2FudGlhbGlhcyIsIl9wcmVtdWx0aXBsaWVkQWxwaGEiLCJfcHJlc2VydmVEcmF3aW5nQnVmZmVyIiwicHJlc2VydmVEcmF3aW5nQnVmZmVyIiwiX3Bvd2VyUHJlZmVyZW5jZSIsIl9mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0IiwiY3VycmVudFJlbmRlckxpc3QiLCJjdXJyZW50UmVuZGVyU3RhdGUiLCJkb21FbGVtZW50Iiwic29ydE9iamVjdHMiLCJ0b25lTWFwcGluZ0V4cG9zdXJlIiwidG9uZU1hcHBpbmdXaGl0ZVBvaW50IiwicHJvZ3JhbUNhY2hlIiwicmVuZGVyTGlzdHMiLCJtb3JwaHRhcmdldHMiLCJidWZmZXJSZW5kZXJlciIsImluZGV4ZWRCdWZmZXJSZW5kZXJlciIsIl9pc0NvbnRleHRMb3N0IiwiX2ZyYW1lYnVmZmVyIiwiX2N1cnJlbnRBY3RpdmVDdWJlRmFjZSIsIl9jdXJyZW50QWN0aXZlTWlwbWFwTGV2ZWwiLCJfY3VycmVudFJlbmRlclRhcmdldCIsIl9jdXJyZW50RnJhbWVidWZmZXIiLCJfY3VycmVudE1hdGVyaWFsSWQiLCJfY3VycmVudEdlb21ldHJ5UHJvZ3JhbSIsIl9jdXJyZW50Q2FtZXJhIiwiX2N1cnJlbnRBcnJheUNhbWVyYSIsIl9jdXJyZW50Vmlld3BvcnQiLCJfY3VycmVudFNjaXNzb3IiLCJfY3VycmVudFNjaXNzb3JUZXN0IiwiX3BpeGVsUmF0aW8iLCJfb3BhcXVlU29ydCIsIl90cmFuc3BhcmVudFNvcnQiLCJfc2Npc3NvciIsIl9zY2lzc29yVGVzdCIsIl9jbGlwcGluZyIsIl9jbGlwcGluZ0VuYWJsZWQiLCJfbG9jYWxDbGlwcGluZ0VuYWJsZWQiLCJfcHJvalNjcmVlbk1hdHJpeCIsIl92ZWN0b3IzIiwiZ2V0VGFyZ2V0UGl4ZWxSYXRpbyIsImNvbnRleHRBdHRyaWJ1dGVzIiwieHJDb21wYXRpYmxlIiwib25Db250ZXh0TG9zdCIsIm9uQ29udGV4dFJlc3RvcmUiLCJpbml0R0xDb250ZXh0Iiwib25NYXRlcmlhbERpc3Bvc2UiLCJyZWxlYXNlTWF0ZXJpYWxQcm9ncmFtUmVmZXJlbmNlIiwiZGVhbGxvY2F0ZU1hdGVyaWFsIiwicHJvZ3JhbUluZm8iLCJmb3JjZUNvbnRleHRMb3NzIiwibG9zZUNvbnRleHQiLCJmb3JjZUNvbnRleHRSZXN0b3JlIiwicmVzdG9yZUNvbnRleHQiLCJnZXRQaXhlbFJhdGlvIiwic2V0UGl4ZWxSYXRpbyIsInVwZGF0ZVN0eWxlIiwiZ2V0RHJhd2luZ0J1ZmZlclNpemUiLCJzZXREcmF3aW5nQnVmZmVyU2l6ZSIsImdldEN1cnJlbnRWaWV3cG9ydCIsImdldFNjaXNzb3IiLCJnZXRTY2lzc29yVGVzdCIsImJvb2xlYW4iLCJzZXRPcGFxdWVTb3J0Iiwic2V0VHJhbnNwYXJlbnRTb3J0IiwiYml0cyIsInJlbmRlckJ1ZmZlckltbWVkaWF0ZSIsImhhc1Bvc2l0aW9ucyIsImhhc05vcm1hbHMiLCJoYXNVdnMiLCJoYXNDb2xvcnMiLCJwcm9ncmFtQXR0cmlidXRlcyIsInBvc2l0aW9uQXJyYXkiLCJub3JtYWxBcnJheSIsInV2QXJyYXkiLCJjb2xvckFycmF5IiwidXBkYXRlQnVmZmVycyIsInJhbmdlRmFjdG9yIiwiaXNJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSIsIm1hdGVyaWFsRGVmYXVsdEF0dHJpYnV0ZVZhbHVlcyIsInByb2dyYW1BdHRyaWJ1dGUiLCJnZW9tZXRyeUF0dHJpYnV0ZSIsInN0cmlkZSIsImlzSW5zdGFuY2VkSW50ZXJsZWF2ZWRCdWZmZXIiLCJtYXhJbnN0YW5jZWRDb3VudCIsImlzSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlIiwidmVydGV4QXR0cmliMmZ2IiwidmVydGV4QXR0cmliM2Z2IiwidmVydGV4QXR0cmliNGZ2IiwidmVydGV4QXR0cmliMWZ2Iiwic2V0dXBWZXJ0ZXhBdHRyaWJ1dGVzIiwiZGF0YUNvdW50IiwicmFuZ2VTdGFydCIsInJhbmdlQ291bnQiLCJkcmF3U3RhcnQiLCJkcmF3RW5kIiwiaXNMaW5lU2VnbWVudHMiLCJpc0xpbmVMb29wIiwiaXNTcHJpdGUiLCJpbml0TWF0ZXJpYWwiLCJwcm9qZWN0T2JqZWN0IiwiaXNHcm91cCIsImlzTE9EIiwiaXNJbW1lZGlhdGVSZW5kZXJPYmplY3QiLCJyZW5kZXJPYmplY3RzIiwiaXNBcnJheUNhbWVyYSIsImNhbWVyYTIiLCJyZW5kZXJPYmplY3RJbW1lZGlhdGUiLCJtYXRlcmlhbFByb3BlcnRpZXMiLCJsaWdodHNTdGF0ZVZlcnNpb24iLCJwcm9ncmFtQ2FjaGVLZXkiLCJwcm9ncmFtQ2hhbmdlIiwibnVtU3VwcG9ydGVkTW9ycGhUYXJnZXRzIiwibnVtU3VwcG9ydGVkTW9ycGhOb3JtYWxzIiwibmVlZHNMaWdodHMiLCJpc01lc2hMYW1iZXJ0TWF0ZXJpYWwiLCJpc01lc2hUb29uTWF0ZXJpYWwiLCJpc01lc2hQaG9uZ01hdGVyaWFsIiwiaXNTaGFkb3dNYXRlcmlhbCIsIm1hdGVyaWFsTmVlZHNMaWdodHMiLCJwcm9nVW5pZm9ybXMiLCJ1bmlmb3Jtc0xpc3QiLCJyZWZyZXNoUHJvZ3JhbSIsInJlZnJlc2hNYXRlcmlhbCIsInJlZnJlc2hMaWdodHMiLCJwX3VuaWZvcm1zIiwibV91bmlmb3JtcyIsInVDYW1Qb3MiLCJjYW1lcmFQb3NpdGlvbiIsImlzT3J0aG9ncmFwaGljQ2FtZXJhIiwiYm9uZVRleHR1cmUiLCJib25lTWF0cmljZXMiLCJib25lVGV4dHVyZVNpemUiLCJpc0ZvZyIsInJlZnJlc2hVbmlmb3Jtc0ZvZyIsInJlZnJlc2hVbmlmb3Jtc0NvbW1vbiIsInJlZnJlc2hVbmlmb3Jtc0xhbWJlcnQiLCJyZWZyZXNoVW5pZm9ybXNUb29uIiwicmVmcmVzaFVuaWZvcm1zUGhvbmciLCJpc01lc2hQaHlzaWNhbE1hdGVyaWFsIiwicmVmcmVzaFVuaWZvcm1zU3RhbmRhcmQiLCJyZWZyZXNoVW5pZm9ybXNQaHlzaWNhbCIsImlzTWVzaE1hdGNhcE1hdGVyaWFsIiwicmVmcmVzaFVuaWZvcm1zTWF0Y2FwIiwicmVmcmVzaFVuaWZvcm1zRGVwdGgiLCJyZWZyZXNoVW5pZm9ybXNEaXN0YW5jZSIsImlzTWVzaE5vcm1hbE1hdGVyaWFsIiwicmVmcmVzaFVuaWZvcm1zTm9ybWFsIiwiaXNMaW5lQmFzaWNNYXRlcmlhbCIsInJlZnJlc2hVbmlmb3Jtc0xpbmUiLCJpc0xpbmVEYXNoZWRNYXRlcmlhbCIsInJlZnJlc2hVbmlmb3Jtc0Rhc2giLCJpc1BvaW50c01hdGVyaWFsIiwidXZTY2FsZU1hcCIsInJlZnJlc2hVbmlmb3Jtc1BvaW50cyIsImlzU3ByaXRlTWF0ZXJpYWwiLCJyZWZyZXNoVW5pZm9ybXNTcHJpdGVzIiwibHRjXzEiLCJMVENfMSIsImx0Y18yIiwiTFRDXzIiLCJ1djJTY2FsZU1hcCIsIm9wYXF1ZU9iamVjdHMiLCJ0cmFuc3BhcmVudE9iamVjdHMiLCJyZWFkUmVuZGVyVGFyZ2V0UGl4ZWxzIiwiYWN0aXZlQ3ViZUZhY2VJbmRleCIsInRleHR1cmVGb3JtYXQiLCJjb3B5RnJhbWVidWZmZXJUb1RleHR1cmUiLCJsZXZlbFNjYWxlIiwiY29weVRleEltYWdlMkQiLCJjb3B5VGV4dHVyZVRvVGV4dHVyZSIsInNyY1RleHR1cmUiLCJ0ZXhTdWJJbWFnZTJEIiwiRm9nRXhwMiIsIkZvZyIsIkludGVybGVhdmVkQnVmZmVyIiwiaXNJbnRlcmxlYXZlZEJ1ZmZlciIsIl9nZW9tZXRyeSIsIl92ZWN0b3IkNiIsIkludGVybGVhdmVkQnVmZmVyQXR0cmlidXRlIiwiaW50ZXJsZWF2ZWRCdWZmZXIiLCJfaW50ZXJzZWN0UG9pbnQiLCJfd29ybGRTY2FsZSIsIl9tdlBvc2l0aW9uIiwiX2FsaWduZWRQb3NpdGlvbiIsIl9yb3RhdGVkUG9zaXRpb24iLCJfdmlld1dvcmxkTWF0cml4IiwiX3ZBJDEiLCJfdkIkMSIsIl92QyQxIiwiX3V2QSQxIiwiX3V2QiQxIiwiX3V2QyQxIiwidHJhbnNmb3JtVmVydGV4IiwidmVydGV4UG9zaXRpb24iLCJtdlBvc2l0aW9uIiwiX3YxJDQiLCJfdjIkMiIsIkxPRCIsIl9jdXJyZW50TGV2ZWwiLCJsZXZlbHMiLCJTa2lubmVkTWVzaCIsImJpbmRNb2RlIiwiYmluZE1hdHJpeCIsImJpbmRNYXRyaXhJbnZlcnNlIiwiYWRkTGV2ZWwiLCJnZXRDdXJyZW50TGV2ZWwiLCJnZXRPYmplY3RGb3JEaXN0YW5jZSIsImNhbGN1bGF0ZUludmVyc2VzIiwibm9ybWFsaXplU2tpbldlaWdodHMiLCJza2luV2VpZ2h0IiwiX29mZnNldE1hdHJpeCIsIl9pZGVudGl0eU1hdHJpeCIsIlNrZWxldG9uIiwiYm9uZUludmVyc2VzIiwiQm9uZSIsImJvbmUiLCJpc0JvbmUiLCJnZXRCb25lQnlOYW1lIiwiX2luc3RhbmNlTG9jYWxNYXRyaXgiLCJfaW5zdGFuY2VXb3JsZE1hdHJpeCIsIl9pbnN0YW5jZUludGVyc2VjdHMiLCJfbWVzaCIsIkluc3RhbmNlZE1lc2giLCJsaW5lY2FwIiwibGluZWpvaW4iLCJnZXRNYXRyaXhBdCIsInJheWNhc3RUaW1lcyIsImluc3RhbmNlSWQiLCJzZXRNYXRyaXhBdCIsIl9lbmQiLCJfaW52ZXJzZU1hdHJpeCQxIiwiX3JheSQxIiwiX3NwaGVyZSQyIiwiY29tcHV0ZUxpbmVEaXN0YW5jZXMiLCJwb3NpdGlvbkF0dHJpYnV0ZSIsImxvY2FsVGhyZXNob2xkIiwibG9jYWxUaHJlc2hvbGRTcSIsInZTdGFydCIsInZFbmQiLCJpbnRlclNlZ21lbnQiLCJpbnRlclJheSIsIm5iVmVydGljZXMiLCJfc3RhcnQkMSIsIl9lbmQkMSIsIkxpbmVTZWdtZW50cyIsIkxpbmVMb29wIiwiX2ludmVyc2VNYXRyaXgkMiIsIl9yYXkkMiIsIl9zcGhlcmUkMyIsIl9wb3NpdGlvbiQxIiwiUG9pbnRzIiwidGVzdFBvaW50IiwicmF5UG9pbnREaXN0YW5jZVNxIiwiZGlzdGFuY2VUb1JheSIsIlZpZGVvVGV4dHVyZSIsIkNvbXByZXNzZWRUZXh0dXJlIiwiRGVwdGhUZXh0dXJlIiwiV2lyZWZyYW1lR2VvbWV0cnkiLCJvbCIsImVkZ2UxIiwiZWRnZTIiLCJQYXJhbWV0cmljR2VvbWV0cnkiLCJzbGljZXMiLCJzdGFja3MiLCJQYXJhbWV0cmljQnVmZmVyR2VvbWV0cnkiLCJFUFMiLCJwdSIsInNsaWNlQ291bnQiLCJQb2x5aGVkcm9uR2VvbWV0cnkiLCJQb2x5aGVkcm9uQnVmZmVyR2VvbWV0cnkiLCJ1dkJ1ZmZlciIsInN1YmRpdmlkZUZhY2UiLCJjb2xzIiwiYWoiLCJiaiIsInB1c2hWZXJ0ZXgiLCJnZXRWZXJ0ZXhCeUluZGV4IiwiY29ycmVjdFVWIiwic3ViZGl2aWRlIiwiYXBwbHlSYWRpdXMiLCJjZW50cm9pZCIsInV2QSIsInV2QiIsInV2QyIsImF6aSIsImNvcnJlY3RVVnMiLCJjb3JyZWN0U2VhbSIsImdlbmVyYXRlVVZzIiwiVGV0cmFoZWRyb25HZW9tZXRyeSIsIlRldHJhaGVkcm9uQnVmZmVyR2VvbWV0cnkiLCJPY3RhaGVkcm9uR2VvbWV0cnkiLCJPY3RhaGVkcm9uQnVmZmVyR2VvbWV0cnkiLCJJY29zYWhlZHJvbkdlb21ldHJ5IiwiSWNvc2FoZWRyb25CdWZmZXJHZW9tZXRyeSIsIkRvZGVjYWhlZHJvbkdlb21ldHJ5IiwiRG9kZWNhaGVkcm9uQnVmZmVyR2VvbWV0cnkiLCJUdWJlR2VvbWV0cnkiLCJ0dWJ1bGFyU2VnbWVudHMiLCJyYWRpYWxTZWdtZW50cyIsInRhcGVyIiwiYnVmZmVyR2VvbWV0cnkiLCJUdWJlQnVmZmVyR2VvbWV0cnkiLCJ0YW5nZW50cyIsImJpbm9ybWFscyIsImNvbXB1dGVGcmVuZXRGcmFtZXMiLCJnZW5lcmF0ZVNlZ21lbnQiLCJnZW5lcmF0ZUluZGljZXMiLCJnZW5lcmF0ZUJ1ZmZlckRhdGEiLCJUb3J1c0tub3RHZW9tZXRyeSIsInR1YmUiLCJoZWlnaHRTY2FsZSIsIlRvcnVzS25vdEJ1ZmZlckdlb21ldHJ5IiwiY2FsY3VsYXRlUG9zaXRpb25PbkN1cnZlIiwiY3UiLCJzdSIsInF1T3ZlclAiLCJjcyIsIlRvcnVzR2VvbWV0cnkiLCJUb3J1c0J1ZmZlckdlb21ldHJ5IiwiSEFWRV9DVVJSRU5UX0RBVEEiLCJpc0NhbnZhc1RleHR1cmUiLCJTaGFwZVV0aWxzIiwiY29udG91ciIsImlzQ2xvY2tXaXNlIiwidHJpYW5ndWxhdGVTaGFwZSIsInJlbW92ZUR1cEVuZFB0cyIsImFkZENvbnRvdXIiLCJFeHRydWRlR2VvbWV0cnkiLCJFeHRydWRlQnVmZmVyR2VvbWV0cnkiLCJ2ZXJ0aWNlc0FycmF5IiwiYWRkU2hhcGUiLCJjdXJ2ZVNlZ21lbnRzIiwiYmV2ZWxFbmFibGVkIiwiYmV2ZWxUaGlja25lc3MiLCJiZXZlbFNpemUiLCJiZXZlbE9mZnNldCIsImJldmVsU2VnbWVudHMiLCJleHRydWRlUGF0aCIsInV2Z2VuIiwiVVZHZW5lcmF0b3IiLCJXb3JsZFVWR2VuZXJhdG9yIiwiZXh0cnVkZVB0cyIsInNwbGluZVR1YmUiLCJiaW5vcm1hbCIsInBvc2l0aW9uMiIsImFob2xlIiwiaGwiLCJleHRydWRlQnlQYXRoIiwic2hhcGVQb2ludHMiLCJleHRyYWN0UG9pbnRzIiwic2NhbGVQdDIiLCJwdCIsImJzIiwidmxlbiIsImZsZW4iLCJnZXRCZXZlbFZlYyIsImluUHQiLCJpblByZXYiLCJpbk5leHQiLCJ2X3RyYW5zX3giLCJ2X3RyYW5zX3kiLCJzaHJpbmtfYnkiLCJ2X3ByZXZfeCIsInZfcHJldl95Iiwidl9uZXh0X3giLCJ2X25leHRfeSIsInZfcHJldl9sZW5zcSIsImNvbGxpbmVhcjAiLCJ2X3ByZXZfbGVuIiwidl9uZXh0X2xlbiIsInB0UHJldlNoaWZ0X3giLCJwdFByZXZTaGlmdF95Iiwic2YiLCJ2X3RyYW5zX2xlbnNxIiwiZGlyZWN0aW9uX2VxIiwiY29udG91ck1vdmVtZW50cyIsIm9uZUhvbGVNb3ZlbWVudHMiLCJob2xlc01vdmVtZW50cyIsInZlcnRpY2VzTW92ZW1lbnRzIiwic2lkZXdhbGxzIiwibGF5ZXJvZmZzZXQiLCJzbCIsInNsZW4xIiwic2xlbjIiLCJmNCIsImYzIiwiYWRkVmVydGV4IiwiZ2VuZXJhdGVUb3BVViIsImFkZFVWIiwiZ2VuZXJhdGVTaWRlV2FsbFVWIiwidmVjdG9yMiIsImJ1aWxkTGlkRmFjZXMiLCJidWlsZFNpZGVGYWNlcyIsImluZGV4QyIsImFfeCIsImFfeSIsImJfeCIsImJfeSIsImNfeCIsImNfeSIsImluZGV4RCIsImFfeiIsImJfeiIsImNfeiIsImRfeCIsImRfeSIsImRfeiIsIlRleHRHZW9tZXRyeSIsIlRleHRCdWZmZXJHZW9tZXRyeSIsImlzRm9udCIsImdlbmVyYXRlU2hhcGVzIiwiU3BoZXJlR2VvbWV0cnkiLCJwaGlTdGFydCIsInBoaUxlbmd0aCIsInRoZXRhU3RhcnQiLCJ0aGV0YUxlbmd0aCIsIlNwaGVyZUJ1ZmZlckdlb21ldHJ5IiwidGhldGFFbmQiLCJ2ZXJ0aWNlc1JvdyIsIlJpbmdHZW9tZXRyeSIsInRoZXRhU2VnbWVudHMiLCJwaGlTZWdtZW50cyIsIlJpbmdCdWZmZXJHZW9tZXRyeSIsInJhZGl1c1N0ZXAiLCJ0aGV0YVNlZ21lbnRMZXZlbCIsIkxhdGhlR2VvbWV0cnkiLCJMYXRoZUJ1ZmZlckdlb21ldHJ5IiwiaW52ZXJzZVNlZ21lbnRzIiwibjEiLCJuMiIsIlNoYXBlR2VvbWV0cnkiLCJTaGFwZUJ1ZmZlckdlb21ldHJ5Iiwic2hhcGVIb2xlIiwiaW5kZXhPZmZzZXQiLCJzaGFwZVZlcnRpY2VzIiwic2hhcGVIb2xlcyIsInRvSlNPTiQxIiwiRWRnZXNHZW9tZXRyeSIsInRocmVzaG9sZERvdCIsInNvdXJjZVZlcnRpY2VzIiwiZmFjZTEiLCJmYWNlMiIsIkN5bGluZGVyR2VvbWV0cnkiLCJyYWRpdXNUb3AiLCJyYWRpdXNCb3R0b20iLCJvcGVuRW5kZWQiLCJDeWxpbmRlckJ1ZmZlckdlb21ldHJ5IiwiaW5kZXhBcnJheSIsImdlbmVyYXRlQ2FwIiwiY2VudGVySW5kZXhTdGFydCIsImNlbnRlckluZGV4RW5kIiwiY29zVGhldGEiLCJzaW5UaGV0YSIsImluZGV4Um93IiwiZ2VuZXJhdGVUb3JzbyIsIkNvbmVHZW9tZXRyeSIsIkNvbmVCdWZmZXJHZW9tZXRyeSIsIkNpcmNsZUdlb21ldHJ5IiwiQ2lyY2xlQnVmZmVyR2VvbWV0cnkiLCJHZW9tZXRyaWVzIiwiQm94R2VvbWV0cnkiLCJSYXdTaGFkZXJNYXRlcmlhbCIsIk1hdGVyaWFscyIsIkFuaW1hdGlvblV0aWxzIiwiYXJyYXlTbGljZSIsImNvbnZlcnRBcnJheSIsImZvcmNlQ2xvbmUiLCJnZXRLZXlmcmFtZU9yZGVyIiwidGltZXMiLCJzb3J0ZWRBcnJheSIsIm5WYWx1ZXMiLCJzcmNPZmZzZXQiLCJmbGF0dGVuSlNPTiIsImpzb25LZXlzIiwidmFsdWVQcm9wZXJ0eU5hbWUiLCJzdWJjbGlwIiwic291cmNlQ2xpcCIsInRyYWNrcyIsInRyYWNrIiwidmFsdWVTaXplIiwiZ2V0VmFsdWVTaXplIiwibWluU3RhcnRUaW1lIiwicmVzZXREdXJhdGlvbiIsIkludGVycG9sYW50IiwicGFyYW1ldGVyUG9zaXRpb25zIiwic2FtcGxlVmFsdWVzIiwic2FtcGxlU2l6ZSIsInJlc3VsdEJ1ZmZlciIsIl9jYWNoZWRJbmRleCIsIkN1YmljSW50ZXJwb2xhbnQiLCJfd2VpZ2h0UHJldiIsIl9vZmZzZXRQcmV2IiwiX3dlaWdodE5leHQiLCJfb2Zmc2V0TmV4dCIsIkxpbmVhckludGVycG9sYW50IiwiRGlzY3JldGVJbnRlcnBvbGFudCIsIktleWZyYW1lVHJhY2siLCJUaW1lQnVmZmVyVHlwZSIsIlZhbHVlQnVmZmVyVHlwZSIsInNldEludGVycG9sYXRpb24iLCJEZWZhdWx0SW50ZXJwb2xhdGlvbiIsIkJvb2xlYW5LZXlmcmFtZVRyYWNrIiwiQ29sb3JLZXlmcmFtZVRyYWNrIiwiTnVtYmVyS2V5ZnJhbWVUcmFjayIsIlF1YXRlcm5pb25MaW5lYXJJbnRlcnBvbGFudCIsIlF1YXRlcm5pb25LZXlmcmFtZVRyYWNrIiwiU3RyaW5nS2V5ZnJhbWVUcmFjayIsIlZlY3RvcktleWZyYW1lVHJhY2siLCJBbmltYXRpb25DbGlwIiwicGFyc2VLZXlmcmFtZVRyYWNrIiwidHJhY2tUeXBlIiwidHlwZU5hbWUiLCJnZXRUcmFja1R5cGVGb3JWYWx1ZVR5cGVOYW1lIiwicHAiLCJ2YWxpZGF0ZV9pbnRlcnZhbCIsImxpbmVhcl9zY2FuIiwiZm9yd2FyZF9zY2FuIiwiZ2l2ZVVwQXQiLCJhZnRlckVuZF8iLCJ0MWdsb2JhbCIsImJlZm9yZVN0YXJ0XyIsImludGVydmFsQ2hhbmdlZF8iLCJpbnRlcnBvbGF0ZV8iLCJEZWZhdWx0U2V0dGluZ3NfIiwiZ2V0U2V0dGluZ3NfIiwiY29weVNhbXBsZVZhbHVlXyIsImVuZGluZ1N0YXJ0IiwiZW5kaW5nRW5kIiwiaVByZXYiLCJpTmV4dCIsInRQcmV2IiwidE5leHQiLCJoYWxmRHQiLCJvMCIsIm9QIiwib04iLCJ3UCIsIndOIiwicHBwIiwic1AiLCJzTiIsIm9mZnNldDEiLCJvZmZzZXQwIiwid2VpZ2h0MSIsIndlaWdodDAiLCJnZXRJbnRlcnBvbGF0aW9uIiwiVmFsdWVUeXBlTmFtZSIsIkludGVycG9sYW50RmFjdG9yeU1ldGhvZERpc2NyZXRlIiwiSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kTGluZWFyIiwiSW50ZXJwb2xhbnRGYWN0b3J5TWV0aG9kU21vb3RoIiwiZmFjdG9yeU1ldGhvZCIsImNyZWF0ZUludGVycG9sYW50IiwidGltZU9mZnNldCIsIm5LZXlzIiwidmFsaWRhdGUiLCJwcmV2VGltZSIsImN1cnJUaW1lIiwib3B0aW1pemUiLCJzbW9vdGhJbnRlcnBvbGF0aW9uIiwid3JpdGVJbmRleCIsImtlZXAiLCJvZmZzZXRQIiwib2Zmc2V0TiIsInJlYWRPZmZzZXQiLCJ3cml0ZU9mZnNldCIsIlR5cGVkS2V5ZnJhbWVUcmFjayIsImpzb25UcmFja3MiLCJmcmFtZVRpbWUiLCJjbGlwVHJhY2tzIiwiQ3JlYXRlRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2UiLCJtb3JwaFRhcmdldFNlcXVlbmNlIiwibm9Mb29wIiwibnVtTW9ycGhUYXJnZXRzIiwiZmluZEJ5TmFtZSIsIm9iamVjdE9yQ2xpcEFycmF5IiwiY2xpcEFycmF5IiwiYW5pbWF0aW9ucyIsIkNyZWF0ZUNsaXBzRnJvbU1vcnBoVGFyZ2V0U2VxdWVuY2VzIiwiYW5pbWF0aW9uVG9Nb3JwaFRhcmdldHMiLCJhbmltYXRpb25Nb3JwaFRhcmdldHMiLCJjbGlwcyIsInBhcnNlQW5pbWF0aW9uIiwiYWRkTm9uZW1wdHlUcmFjayIsInRyYWNrTmFtZSIsImFuaW1hdGlvbktleXMiLCJwcm9wZXJ0eU5hbWUiLCJkZXN0VHJhY2tzIiwiY2xpcE5hbWUiLCJoaWVyYXJjaHlUcmFja3MiLCJoaWVyYXJjaHkiLCJtb3JwaFRhcmdldE5hbWVzIiwibW9ycGhUYXJnZXROYW1lIiwiYm9uZU5hbWUiLCJMb2FkaW5nTWFuYWdlciIsIml0ZW1zTG9hZGVkIiwiaXRlbXNUb3RhbCIsInVybE1vZGlmaWVyIiwiaXRlbVN0YXJ0IiwiaXRlbUVuZCIsIml0ZW1FcnJvciIsInJlc29sdmVVUkwiLCJzZXRVUkxNb2RpZmllciIsIkRlZmF1bHRMb2FkaW5nTWFuYWdlciIsInJlc291cmNlUGF0aCIsInNldENyb3NzT3JpZ2luIiwic2V0UmVzb3VyY2VQYXRoIiwibG9hZGluZyIsIkZpbGVMb2FkZXIiLCJBbmltYXRpb25Mb2FkZXIiLCJDb21wcmVzc2VkVGV4dHVyZUxvYWRlciIsIkRhdGFUZXh0dXJlTG9hZGVyIiwiSW1hZ2VMb2FkZXIiLCJDdWJlVGV4dHVyZUxvYWRlciIsIlRleHR1cmVMb2FkZXIiLCJhU3RhcnRBbmdsZSIsImFFbmRBbmdsZSIsImFDbG9ja3dpc2UiLCJhUm90YXRpb24iLCJBcmNDdXJ2ZSIsImFSYWRpdXMiLCJDdWJpY1BvbHkiLCJpbml0Q2F0bXVsbFJvbSIsInRlbnNpb24iLCJpbml0Tm9udW5pZm9ybUNhdG11bGxSb20iLCJkdDAiLCJkdDEiLCJkdDIiLCJjYWxjIiwiZGF0YVVyaVJlZ2V4UmVzdWx0IiwiaXNCYXNlNjQiLCJyZXF1ZXN0SGVhZGVyIiwic2V0UmVzcG9uc2VUeXBlIiwic2V0V2l0aENyZWRlbnRpYWxzIiwic2V0TWltZVR5cGUiLCJsb2FkVGV4dHVyZSIsInRleERhdGFzIiwibWlwbWFwQ291bnQiLCJpc0N1YmVtYXAiLCJ0ZXhEYXRhIiwib25JbWFnZUxvYWQiLCJvbkltYWdlRXJyb3IiLCJpc0pQRUciLCJvcHRpb25hbFRhcmdldCIsInB0MSIsImlzRWxsaXBzZUN1cnZlIiwiaXNBcmNDdXJ2ZSIsInB6IiwiQ2F0bXVsbFJvbUN1cnZlMyIsImN1cnZlVHlwZSIsIlF1YWRyYXRpY0JlemllclAwIiwiUXVhZHJhdGljQmV6aWVyUDEiLCJRdWFkcmF0aWNCZXppZXJQMiIsIkN1YmljQmV6aWVyUDAiLCJDdWJpY0JlemllclAxIiwiQ3ViaWNCZXppZXJQMiIsIkN1YmljQmV6aWVyUDMiLCJ2MyIsIkN1YmljQmV6aWVyQ3VydmUzIiwiTGluZUN1cnZlMyIsIlF1YWRyYXRpY0JlemllckN1cnZlMyIsImlzQ2F0bXVsbFJvbUN1cnZlMyIsImlzQ3ViaWNCZXppZXJDdXJ2ZSIsImlzQ3ViaWNCZXppZXJDdXJ2ZTMiLCJpc0xpbmVDdXJ2ZSIsImlzTGluZUN1cnZlMyIsImlzUXVhZHJhdGljQmV6aWVyQ3VydmUiLCJpc1F1YWRyYXRpY0JlemllckN1cnZlMyIsImlzU3BsaW5lQ3VydmUiLCJDdXJ2ZVBhdGgiLCJjdXJyZW50UG9pbnQiLCJIZW1pc3BoZXJlTGlnaHQiLCJMaWdodFNoYWRvdyIsIl9mcmFtZUV4dGVudHMiLCJfdmlld3BvcnRDb3VudCIsIl92aWV3cG9ydHMiLCJTcG90TGlnaHRTaGFkb3ciLCJTcG90TGlnaHQiLCJQb2ludExpZ2h0U2hhZG93IiwiX2N1YmVEaXJlY3Rpb25zIiwiX2N1YmVVcHMiLCJQb2ludExpZ2h0IiwiRGlyZWN0aW9uYWxMaWdodFNoYWRvdyIsIkRpcmVjdGlvbmFsTGlnaHQiLCJBbWJpZW50TGlnaHQiLCJSZWN0QXJlYUxpZ2h0IiwiTWF0ZXJpYWxMb2FkZXIiLCJxdWFkcmF0aWNDdXJ2ZVRvIiwiYUNQeCIsImFDUHkiLCJiZXppZXJDdXJ2ZVRvIiwiYUNQMXgiLCJhQ1AxeSIsImFDUDJ4IiwiYUNQMnkiLCJzcGxpbmVUaHJ1IiwiYWJzYXJjIiwiYWJzZWxsaXBzZSIsImZpcnN0UG9pbnQiLCJnZXRQb2ludHNIb2xlcyIsImhvbGVzUHRzIiwiX2xpZ2h0UG9zaXRpb25Xb3JsZCIsIl9sb29rVGFyZ2V0Iiwic2hhZG93TWF0cml4IiwicHJvalNjcmVlbk1hdHJpeCIsImxvb2tUYXJnZXQiLCJsaWdodFBvc2l0aW9uV29ybGQiLCJ2aWV3cG9ydEluZGV4IiwiaXNTcG90TGlnaHRTaGFkb3ciLCJzY2FsZVciLCJzY2FsZUgiLCJpc0RpcmVjdGlvbmFsTGlnaHRTaGFkb3ciLCJnZXRUZXh0dXJlIiwic2hhZGluZyIsInNldFRleHR1cmVzIiwiTG9hZGVyVXRpbHMiLCJJbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSIsIkluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZSIsIkJ1ZmZlckdlb21ldHJ5TG9hZGVyIiwiVFlQRURfQVJSQVlTIiwiYnVmZmVyQXR0cmlidXRlIiwiZHJhd2NhbGxzIiwib2Zmc2V0cyIsIk9iamVjdExvYWRlciIsInBhcnNlU2hhcGUiLCJwYXJzZUdlb21ldHJpZXMiLCJwYXJzZUltYWdlcyIsInBhcnNlVGV4dHVyZXMiLCJwYXJzZU1hdGVyaWFscyIsInBhcnNlT2JqZWN0IiwicGFyc2VBbmltYXRpb25zIiwiYnVmZmVyR2VvbWV0cnlMb2FkZXIiLCJnZW9tZXRyeVNoYXBlcyIsImxvYWRJbWFnZSIsImN1cnJlbnRVcmwiLCJwYXJzZUNvbnN0YW50IiwiVEVYVFVSRV9NQVBQSU5HIiwiVEVYVFVSRV9XUkFQUElORyIsIlRFWFRVUkVfRklMVEVSIiwiZ2V0R2VvbWV0cnkiLCJnZXRNYXRlcmlhbCIsIlVWTWFwcGluZyIsIkN1YmVSZWZsZWN0aW9uTWFwcGluZyIsIkN1YmVSZWZyYWN0aW9uTWFwcGluZyIsIkVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nIiwiRXF1aXJlY3Rhbmd1bGFyUmVmcmFjdGlvbk1hcHBpbmciLCJTcGhlcmljYWxSZWZsZWN0aW9uTWFwcGluZyIsIkN1YmVVVlJlZnJhY3Rpb25NYXBwaW5nIiwiTGluZWFyTWlwbWFwTmVhcmVzdEZpbHRlciIsIkltYWdlQml0bWFwTG9hZGVyIiwiY3JlYXRlSW1hZ2VCaXRtYXAiLCJTaGFwZVBhdGgiLCJzdWJQYXRocyIsIkZvbnQiLCJjcmVhdGVQYXRoIiwiZ2x5cGhzIiwiY3B4IiwiY3B5IiwiY3B4MSIsImNweTEiLCJjcHgyIiwiY3B5MiIsIm91dGxpbmUiLCJfY2FjaGVkT3V0bGluZSIsImhhIiwiZmFtaWx5TmFtZSIsIkZvbnRMb2FkZXIiLCJzZXRPcHRpb25zIiwiaW1hZ2VCaXRtYXAiLCJ0b1NoYXBlcyIsImlzQ0NXIiwibm9Ib2xlcyIsInRvU2hhcGVzTm9Ib2xlcyIsImluU3VicGF0aHMiLCJ0bXBQYXRoIiwidG1wU2hhcGUiLCJpc1BvaW50SW5zaWRlUG9seWdvbiIsImluUG9seWdvbiIsInBvbHlMZW4iLCJlZGdlTG93UHQiLCJlZGdlSGlnaFB0IiwiZWRnZUR4IiwiZWRnZUR5IiwicGVycEVkZ2UiLCJzb2xpZCIsImhvbGVzRmlyc3QiLCJ0bXBQb2ludHMiLCJ0bXBIb2xlcyIsImJldHRlclNoYXBlSG9sZXMiLCJuZXdTaGFwZXMiLCJuZXdTaGFwZUhvbGVzIiwibWFpbklkeCIsImFtYmlndW91cyIsInRvQ2hhbmdlIiwic0lkeCIsInNMZW4iLCJzaG8iLCJoSWR4IiwiaG8iLCJob2xlX3VuYXNzaWduZWQiLCJzMklkeCIsImZyb21zIiwidG9zIiwibGluZV9oZWlnaHQiLCJ1bmRlcmxpbmVUaGlja25lc3MiLCJjcmVhdGVQYXRocyIsIkF1ZGlvTG9hZGVyIiwiU3BoZXJpY2FsSGFybW9uaWNzMyIsIkxpZ2h0UHJvYmUiLCJIZW1pc3BoZXJlTGlnaHRQcm9iZSIsInNreSIsImdyb3VuZCIsIkFtYmllbnRMaWdodFByb2JlIiwiYnVmZmVyQ29weSIsImlzU3BoZXJpY2FsSGFybW9uaWNzMyIsImNvZWZmIiwiZ2V0SXJyYWRpYW5jZUF0IiwiYWRkU2NhbGVkU0giLCJnZXRCYXNpc0F0Iiwic2hCYXNpcyIsImlzSGVtaXNwaGVyZUxpZ2h0UHJvYmUiLCJpc0FtYmllbnRMaWdodFByb2JlIiwiX2V5ZVJpZ2h0IiwiX2V5ZUxlZnQiLCJvbGRUaW1lIiwiZWxhcHNlZFRpbWUiLCJleWVTZXAiLCJfY2FjaGUiLCJ4bWluIiwieG1heCIsImV5ZVNlcEhhbGYiLCJleWVTZXBPblByb2plY3Rpb24iLCJ5bWF4IiwiZ2V0RWxhcHNlZFRpbWUiLCJuZXdUaW1lIiwiX3Bvc2l0aW9uJDIiLCJfcXVhdGVybmlvbiQzIiwiX3NjYWxlJDEiLCJfb3JpZW50YXRpb24iLCJBdWRpb0xpc3RlbmVyIiwidGltZURlbHRhIiwiX2Nsb2NrIiwiZ2V0SW5wdXQiLCJsb29wU3RhcnQiLCJsb29wRW5kIiwiaGFzUGxheWJhY2tDb250cm9sIiwic291cmNlVHlwZSIsIl9zdGFydGVkQXQiLCJfcGF1c2VkQXQiLCJyZW1vdmVGaWx0ZXIiLCJnZXRGaWx0ZXIiLCJnZXRNYXN0ZXJWb2x1bWUiLCJzZXRNYXN0ZXJWb2x1bWUiLCJsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZSIsInBvc2l0aW9uWiIsImZvcndhcmRYIiwiZm9yd2FyZFkiLCJmb3J3YXJkWiIsInVwWiIsInNldE9yaWVudGF0aW9uIiwiZ2V0T3V0cHV0Iiwic2V0Tm9kZVNvdXJjZSIsImF1ZGlvTm9kZSIsInNldE1lZGlhRWxlbWVudFNvdXJjZSIsIm1lZGlhRWxlbWVudCIsImNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZSIsInNldE1lZGlhU3RyZWFtU291cmNlIiwibWVkaWFTdHJlYW0iLCJjcmVhdGVNZWRpYVN0cmVhbVNvdXJjZSIsInNldEJ1ZmZlciIsIm9uRW5kZWQiLCJnZXRGaWx0ZXJzIiwiZ2V0RGV0dW5lIiwic2V0TG9vcFN0YXJ0Iiwic2V0TG9vcEVuZCIsIl9wb3NpdGlvbiQzIiwiX3F1YXRlcm5pb24kNCIsIl9zY2FsZSQyIiwiX29yaWVudGF0aW9uJDEiLCJQb3NpdGlvbmFsQXVkaW8iLCJwYW5uZXIiLCJjcmVhdGVQYW5uZXIiLCJwYW5uaW5nTW9kZWwiLCJBdWRpb0FuYWx5c2VyIiwiZmZ0U2l6ZSIsImFuYWx5c2VyIiwiY3JlYXRlQW5hbHlzZXIiLCJmcmVxdWVuY3lCaW5Db3VudCIsIlByb3BlcnR5TWl4ZXIiLCJtaXhGdW5jdGlvbiIsIl9zbGVycCIsIl9zZWxlY3QiLCJfbGVycCIsIl9taXhCdWZmZXJSZWdpb24iLCJjdW11bGF0aXZlV2VpZ2h0IiwidXNlQ291bnQiLCJyZWZlcmVuY2VDb3VudCIsImdldFJlZkRpc3RhbmNlIiwicmVmRGlzdGFuY2UiLCJzZXRSZWZEaXN0YW5jZSIsImdldFJvbGxvZmZGYWN0b3IiLCJyb2xsb2ZmRmFjdG9yIiwic2V0Um9sbG9mZkZhY3RvciIsImdldERpc3RhbmNlTW9kZWwiLCJkaXN0YW5jZU1vZGVsIiwic2V0RGlzdGFuY2VNb2RlbCIsImdldE1heERpc3RhbmNlIiwic2V0TWF4RGlzdGFuY2UiLCJzZXREaXJlY3Rpb25hbENvbmUiLCJjb25lSW5uZXJBbmdsZSIsImNvbmVPdXRlckFuZ2xlIiwiY29uZU91dGVyR2FpbiIsIm9yaWVudGF0aW9uWCIsIm9yaWVudGF0aW9uWSIsIm9yaWVudGF0aW9uWiIsImdldEZyZXF1ZW5jeURhdGEiLCJnZXRCeXRlRnJlcXVlbmN5RGF0YSIsImdldEF2ZXJhZ2VGcmVxdWVuY3kiLCJhY2N1bXVsYXRlIiwiYWNjdUluZGV4IiwiY3VycmVudFdlaWdodCIsIm1peCIsIm9yaWdpbmFsVmFsdWVPZmZzZXQiLCJzYXZlT3JpZ2luYWxTdGF0ZSIsInJlc3RvcmVPcmlnaW5hbFN0YXRlIiwiX1JFU0VSVkVEX0NIQVJTX1JFIiwiX3Jlc2VydmVkUmUiLCJfd29yZENoYXIiLCJfd29yZENoYXJPckRvdCIsIl9kaXJlY3RvcnlSZSIsIl9ub2RlUmUiLCJfb2JqZWN0UmUiLCJfcHJvcGVydHlSZSIsIl90cmFja1JlIiwiX3N1cHBvcnRlZE9iamVjdE5hbWVzIiwidGFyZ2V0R3JvdXAiLCJvcHRpb25hbFBhcnNlZFBhdGgiLCJwYXJzZWRQYXRoIiwiUHJvcGVydHlCaW5kaW5nIiwicGFyc2VUcmFja05hbWUiLCJfdGFyZ2V0R3JvdXAiLCJfYmluZGluZ3MiLCJzdWJzY3JpYmVfIiwicm9vdE5vZGUiLCJmaW5kTm9kZSIsIkFuaW1hdGlvbkFjdGlvbiIsIm1peGVyIiwibG9jYWxSb290IiwiX21peGVyIiwiX2NsaXAiLCJfbG9jYWxSb290IiwiblRyYWNrcyIsImludGVycG9sYW50cyIsImludGVycG9sYW50U2V0dGluZ3MiLCJpbnRlcnBvbGFudCIsIl9pbnRlcnBvbGFudFNldHRpbmdzIiwiX2ludGVycG9sYW50cyIsIl9wcm9wZXJ0eUJpbmRpbmdzIiwiX2NhY2hlSW5kZXgiLCJfYnlDbGlwQ2FjaGVJbmRleCIsIl90aW1lU2NhbGVJbnRlcnBvbGFudCIsIl93ZWlnaHRJbnRlcnBvbGFudCIsIl9sb29wQ291bnQiLCJfc3RhcnRUaW1lIiwiX2VmZmVjdGl2ZVRpbWVTY2FsZSIsIl9lZmZlY3RpdmVXZWlnaHQiLCJyZXBldGl0aW9ucyIsImNsYW1wV2hlbkZpbmlzaGVkIiwiemVyb1Nsb3BlQXRTdGFydCIsInplcm9TbG9wZUF0RW5kIiwiQW5pbWF0aW9uTWl4ZXIiLCJfcm9vdCIsIl9pbml0TWVtb3J5TWFuYWdlciIsIl9hY2N1SW5kZXgiLCJVbmlmb3JtIiwiSW5zdGFuY2VkSW50ZXJsZWF2ZWRCdWZmZXIiLCJSYXljYXN0ZXIiLCJQb2ludENsb3VkIiwiYXNjU29ydCIsImludGVyc2VjdE9iamVjdCIsImZpcnN0VmFsaWRJbmRleCIsIm5DYWNoZWRPYmplY3RzXyIsImJpbmRpbmdzIiwiaXNBbmltYXRpb25PYmplY3RHcm91cCIsInNhbml0aXplTm9kZU5hbWUiLCJvYmplY3ROYW1lIiwib2JqZWN0SW5kZXgiLCJwcm9wZXJ0eUluZGV4IiwibGFzdERvdCIsInNlYXJjaE5vZGVTdWJ0cmVlIiwiY2hpbGROb2RlIiwic3ViVHJlZU5vZGUiLCJfZ2V0VmFsdWVfdW5hdmFpbGFibGUiLCJfc2V0VmFsdWVfdW5hdmFpbGFibGUiLCJCaW5kaW5nVHlwZSIsIkRpcmVjdCIsIkVudGlyZUFycmF5IiwiQXJyYXlFbGVtZW50IiwiSGFzRnJvbVRvQXJyYXkiLCJWZXJzaW9uaW5nIiwiTm9uZSIsIk5lZWRzVXBkYXRlIiwiTWF0cml4V29ybGROZWVkc1VwZGF0ZSIsIkdldHRlckJ5QmluZGluZ1R5cGUiLCJyZXNvbHZlZFByb3BlcnR5IiwiU2V0dGVyQnlCaW5kaW5nVHlwZUFuZFZlcnNpb25pbmciLCJ0YXJnZXRPYmplY3QiLCJ0YXJnZXRBcnJheSIsInNvdXJjZUFycmF5Iiwibm9kZVByb3BlcnR5IiwidmVyc2lvbmluZyIsImJpbmRpbmdUeXBlIiwiX2dldFZhbHVlX3VuYm91bmQiLCJfc2V0VmFsdWVfdW5ib3VuZCIsIl9pbmRpY2VzQnlVVUlEIiwiX3BhdGhzIiwiX3BhcnNlZFBhdGhzIiwiX2JpbmRpbmdzSW5kaWNlc0J5UGF0aCIsIm5PYmplY3RzIiwibkNhY2hlZE9iamVjdHMiLCJpbmRpY2VzQnlVVUlEIiwicGFyc2VkUGF0aHMiLCJuQmluZGluZ3MiLCJrbm93bk9iamVjdCIsImZpcnN0QWN0aXZlSW5kZXgiLCJsYXN0Q2FjaGVkT2JqZWN0IiwiYmluZGluZ3NGb3JQYXRoIiwibGFzdENhY2hlZCIsImxhc3RDYWNoZWRJbmRleCIsImZpcnN0QWN0aXZlT2JqZWN0IiwiZmlyc3RBY3RpdmUiLCJ1bmNhY2hlIiwibGFzdE9iamVjdCIsImluZGljZXNCeVBhdGgiLCJ1bnN1YnNjcmliZV8iLCJsYXN0QmluZGluZ3NJbmRleCIsImxhc3RCaW5kaW5ncyIsIl9hY3RpdmF0ZUFjdGlvbiIsIl9kZWFjdGl2YXRlQWN0aW9uIiwic3RvcEZhZGluZyIsInN0b3BXYXJwaW5nIiwiX2lzQWN0aXZlQWN0aW9uIiwiaXNTY2hlZHVsZWQiLCJzZXRFZmZlY3RpdmVXZWlnaHQiLCJnZXRFZmZlY3RpdmVXZWlnaHQiLCJfc2NoZWR1bGVGYWRpbmciLCJjcm9zc0ZhZGVGcm9tIiwiZmFkZU91dEFjdGlvbiIsIndhcnAiLCJmYWRlSW5EdXJhdGlvbiIsImZhZGVPdXREdXJhdGlvbiIsInN0YXJ0RW5kUmF0aW8iLCJlbmRTdGFydFJhdGlvIiwiY3Jvc3NGYWRlVG8iLCJmYWRlSW5BY3Rpb24iLCJ3ZWlnaHRJbnRlcnBvbGFudCIsIl90YWtlQmFja0NvbnRyb2xJbnRlcnBvbGFudCIsInNldEVmZmVjdGl2ZVRpbWVTY2FsZSIsImdldEVmZmVjdGl2ZVRpbWVTY2FsZSIsInNldER1cmF0aW9uIiwic3luY1dpdGgiLCJoYWx0Iiwic3RhcnRUaW1lU2NhbGUiLCJlbmRUaW1lU2NhbGUiLCJfbGVuZENvbnRyb2xJbnRlcnBvbGFudCIsInRpbWVTY2FsZUludGVycG9sYW50IiwiZ2V0TWl4ZXIiLCJnZXRDbGlwIiwiZ2V0Um9vdCIsInRpbWVEaXJlY3Rpb24iLCJ0aW1lUnVubmluZyIsIl91cGRhdGVUaW1lU2NhbGUiLCJjbGlwVGltZSIsIl91cGRhdGVUaW1lIiwiX3VwZGF0ZVdlaWdodCIsInByb3BlcnR5TWl4ZXJzIiwiaW50ZXJwb2xhbnRWYWx1ZSIsImxvb3BDb3VudCIsInBpbmdQb25nIiwiX3NldEVuZGluZ3MiLCJoYW5kbGVfc3RvcCIsImxvb3BEZWx0YSIsImF0U3RhcnQiLCJhdEVuZCIsIndlaWdodE5vdyIsIndlaWdodFRoZW4iLCJfYmluZEFjdGlvbiIsInByb3RvdHlwZUFjdGlvbiIsInJvb3RVdWlkIiwiYmluZGluZ3NCeVJvb3QiLCJfYmluZGluZ3NCeVJvb3RBbmROYW1lIiwiYmluZGluZ3NCeU5hbWUiLCJfYWRkSW5hY3RpdmVCaW5kaW5nIiwiY2xpcFV1aWQiLCJhY3Rpb25zRm9yQ2xpcCIsIl9hY3Rpb25zQnlDbGlwIiwia25vd25BY3Rpb25zIiwiX2FkZEluYWN0aXZlQWN0aW9uIiwiX2xlbmRCaW5kaW5nIiwiX2xlbmRBY3Rpb24iLCJfdGFrZUJhY2tCaW5kaW5nIiwiX3Rha2VCYWNrQWN0aW9uIiwiX2FjdGlvbnMiLCJfbkFjdGl2ZUFjdGlvbnMiLCJfbkFjdGl2ZUJpbmRpbmdzIiwiX2NvbnRyb2xJbnRlcnBvbGFudHMiLCJfbkFjdGl2ZUNvbnRyb2xJbnRlcnBvbGFudHMiLCJjb250cm9sSW50ZXJwb2xhbnRzIiwiYWN0aW9uc0J5Q2xpcCIsImFjdGlvbkJ5Um9vdCIsIl9yZW1vdmVJbmFjdGl2ZUFjdGlvbiIsImxhc3RJbmFjdGl2ZUFjdGlvbiIsImNhY2hlSW5kZXgiLCJrbm93bkFjdGlvbnNGb3JDbGlwIiwibGFzdEtub3duQWN0aW9uIiwiYnlDbGlwQ2FjaGVJbmRleCIsIl9yZW1vdmVJbmFjdGl2ZUJpbmRpbmdzRm9yQWN0aW9uIiwiX3JlbW92ZUluYWN0aXZlQmluZGluZyIsInByZXZJbmRleCIsImxhc3RBY3RpdmVJbmRleCIsImZpcnN0SW5hY3RpdmVBY3Rpb24iLCJmaXJzdEluYWN0aXZlSW5kZXgiLCJsYXN0QWN0aXZlQWN0aW9uIiwiYmluZGluZ0J5TmFtZSIsInByb3BCaW5kaW5nIiwibGFzdEluYWN0aXZlQmluZGluZyIsImZpcnN0SW5hY3RpdmVCaW5kaW5nIiwibGFzdEFjdGl2ZUJpbmRpbmciLCJfY29udHJvbEludGVycG9sYW50c1Jlc3VsdEJ1ZmZlciIsIl9fY2FjaGVJbmRleCIsImxhc3RBY3RpdmVJbnRlcnBvbGFudCIsImNsaXBBY3Rpb24iLCJvcHRpb25hbFJvb3QiLCJjbGlwT2JqZWN0IiwiZXhpc3RpbmdBY3Rpb24iLCJuZXdBY3Rpb24iLCJzdG9wQWxsQWN0aW9uIiwibkFjdGlvbnMiLCJ0aW1lSW5TZWNvbmRzIiwidW5jYWNoZUNsaXAiLCJhY3Rpb25zVG9SZW1vdmUiLCJ1bmNhY2hlUm9vdCIsInVuY2FjaGVBY3Rpb24iLCJzZXRGcm9tQ2FtZXJhIiwiY29vcmRzIiwiaW50ZXJzZWN0T2JqZWN0cyIsIm1ha2VTYWZlIiwic2V0RnJvbUNhcnRlc2lhbkNvb3JkcyIsIl92ZWN0b3IkNyIsIkJveDIiLCJfc3RhcnRQIiwiX3N0YXJ0RW5kIiwiTGluZTMiLCJJbW1lZGlhdGVSZW5kZXJPYmplY3QiLCJjbG9zZXN0UG9pbnRUb1BvaW50UGFyYW1ldGVyIiwiY2xhbXBUb0xpbmUiLCJzdGFydEVuZDIiLCJfdmVjdG9yJDgiLCJTcG90TGlnaHRIZWxwZXIiLCJjb25lIiwiY29uZUxlbmd0aCIsImNvbmVXaWR0aCIsIl92ZWN0b3IkOSIsIl9ib25lTWF0cml4IiwiX21hdHJpeFdvcmxkSW52IiwiZ2V0Qm9uZUxpc3QiLCJib25lTGlzdCIsIlNrZWxldG9uSGVscGVyIiwiUG9pbnRMaWdodEhlbHBlciIsInNwaGVyZVNpemUiLCJpc1NrZWxldG9uSGVscGVyIiwiX3ZlY3RvciRhIiwiX2NvbG9yMSIsIl9jb2xvcjIiLCJIZW1pc3BoZXJlTGlnaHRIZWxwZXIiLCJHcmlkSGVscGVyIiwiUG9sYXJHcmlkSGVscGVyIiwicmFkaWFscyIsImNpcmNsZXMiLCJfdjEkNSIsIl92MiQzIiwiX3YzJDEiLCJEaXJlY3Rpb25hbExpZ2h0SGVscGVyIiwibGlnaHRQbGFuZSIsInRhcmdldExpbmUiLCJfdmVjdG9yJGIiLCJfY2FtZXJhIiwiQ2FtZXJhSGVscGVyIiwicG9pbnRNYXAiLCJjb2xvckZydXN0dW0iLCJjb2xvckNvbmUiLCJjb2xvclVwIiwiY29sb3JUYXJnZXQiLCJjb2xvckNyb3NzIiwiYWRkTGluZSIsInNldFBvaW50IiwiX2JveCQzIiwiQm94SGVscGVyIiwiQm94M0hlbHBlciIsIlBsYW5lSGVscGVyIiwiX2xpbmVHZW9tZXRyeSIsIl9jb25lR2VvbWV0cnkiLCJfYXhpcyIsIkFycm93SGVscGVyIiwiaGVhZExlbmd0aCIsImhlYWRXaWR0aCIsInNldERpcmVjdGlvbiIsIkF4ZXNIZWxwZXIiLCJ3ZWlnaHRzIiwicG9sZUF4aXMiLCJzaGFkZXJNYXRlcmlhbCIsIlNJWkVfTUFYIiwiRVhUUkFfTE9EX1NJR01BIiwiVE9UQUxfTE9EUyIsIkxPRF9NQVgiLCJNQVhfU0FNUExFUyIsIkVOQ09ESU5HUyIsIl9mbGF0Q2FtZXJhIiwiX2JsdXJNYXRlcmlhbCIsIl9nZXRDb21tb25WZXJ0ZXhTaGFkZXIiLCJfZ2V0RW5jb2RpbmdzIiwiX2VxdWlyZWN0U2hhZGVyIiwiX2N1YmVtYXBTaGFkZXIiLCJfbG9kUGxhbmVzIiwiX3NpemVMb2RzIiwiX3NpZ21hcyIsImxvZCIsInNpemVMb2QiLCJzaWdtYSIsInRleGVsU2l6ZSIsInV2U2l6ZSIsImZhY2VJbmRleFNpemUiLCJjb29yZGluYXRlcyIsIl9jcmVhdGVQbGFuZXMiLCJfcGluZ1BvbmdSZW5kZXJUYXJnZXQiLCJfb2xkVGFyZ2V0IiwiUEhJIiwiSU5WX1BISSIsIl9heGlzRGlyZWN0aW9ucyIsIlBNUkVNR2VuZXJhdG9yIiwiX2NvbXBpbGVNYXRlcmlhbCIsIl9hbGxvY2F0ZVRhcmdldHMiLCJlcXVpcmVjdGFuZ3VsYXIiLCJjdWJlVVZSZW5kZXJUYXJnZXQiLCJfY3JlYXRlUmVuZGVyVGFyZ2V0IiwiX2NsZWFudXAiLCJvdXRwdXRUYXJnZXQiLCJ0bXBTY2VuZSIsIl9zZXRWaWV3cG9ydCIsIl9hcHBseVBNUkVNIiwiX2JsdXIiLCJsb2RJbiIsImxvZE91dCIsIl9oYWxmQmx1ciIsInRhcmdldEluIiwidGFyZ2V0T3V0Iiwic2lnbWFSYWRpYW5zIiwiYmx1clNjZW5lIiwiYmx1clVuaWZvcm1zIiwicmFkaWFuc1BlclBpeGVsIiwic2lnbWFQaXhlbHMiLCJvdXRwdXRTaXplIiwiX2dldEVxdWlyZWN0U2hhZGVyIiwiX2dldEN1YmVtYXBTaGFkZXIiLCJjdWJlQ2FtZXJhIiwidXBTaWduIiwiZm9yd2FyZFNpZ24iLCJtYXhDb21wb25lbnQiLCJmRXhwIiwiX3NjZW5lVG9DdWJlVVYiLCJmcm9tRXF1aXJlY3Rhbmd1bGFyIiwiZnJvbUN1YmVtYXAiLCJjdWJlbWFwIiwiX3RleHR1cmVUb0N1YmVVViIsImNvbXBpbGVDdWJlbWFwU2hhZGVyIiwiY29tcGlsZUVxdWlyZWN0YW5ndWxhclNoYWRlciIsImNyZWF0ZVBvaW50c0dlb21ldHJ5IiwiY3JlYXRlR2VvbWV0cnkiLCJjcmVhdGVTcGFjZWRQb2ludHNHZW9tZXRyeSIsImZyb21Qb2ludHMiLCJpbml0RnJvbUFycmF5IiwiZ2V0Q29udHJvbFBvaW50c0FycmF5IiwicmVwYXJhbWV0cml6ZUJ5QXJjTGVuZ3RoIiwiZXh0cmFjdFVybEJhc2UiLCJIYW5kbGVycyIsInNldFRleHR1cmVQYXRoIiwiaXNJbnRlcnNlY3Rpb25Cb3giLCJpc0ludGVyc2VjdGlvblNwaGVyZSIsInNldEZyb21NYXRyaXgiLCJyYW5kb20xNiIsIm5lYXJlc3RQb3dlck9mVHdvIiwibmV4dFBvd2VyT2ZUd28iLCJmbGF0dGVuVG9BcnJheU9mZnNldCIsIm11bHRpcGx5VmVjdG9yMyIsIm11bHRpcGx5VmVjdG9yM0FycmF5IiwiYXBwbHlUb0J1ZmZlckF0dHJpYnV0ZSIsImFwcGx5VG9WZWN0b3IzQXJyYXkiLCJleHRyYWN0UG9zaXRpb24iLCJnZXRQb3NpdGlvbiIsIm11bHRpcGx5VG9BcnJheSIsIm11bHRpcGx5VmVjdG9yNCIsInJvdGF0ZUF4aXMiLCJjcm9zc1ZlY3RvciIsInJvdGF0ZUJ5QXhpcyIsIm1ha2VGcnVzdHVtIiwiaXNJbnRlcnNlY3Rpb25MaW5lIiwiaXNJbnRlcnNlY3Rpb25QbGFuZSIsImJhcnljb29yZEZyb21Qb2ludCIsIm1pZHBvaW50IiwiZXh0cmFjdEFsbFBvaW50cyIsImV4dHJ1ZGUiLCJtYWtlR2VvbWV0cnkiLCJmcm9tQXR0cmlidXRlIiwiZGlzdGFuY2VUb01hbmhhdHRhbiIsImxlbmd0aE1hbmhhdHRhbiIsInNldEV1bGVyRnJvbVJvdGF0aW9uTWF0cml4Iiwic2V0RXVsZXJGcm9tUXVhdGVybmlvbiIsImdldFBvc2l0aW9uRnJvbU1hdHJpeCIsImdldFNjYWxlRnJvbU1hdHJpeCIsImdldENvbHVtbkZyb21NYXRyaXgiLCJhcHBseVByb2plY3Rpb24iLCJjb21wdXRlVGFuZ2VudHMiLCJhcHBseU1hdHJpeCIsInJlbmRlckRlcHRoIiwiZ2V0V29ybGRSb3RhdGlvbiIsImV1bGVyT3JkZXIiLCJ1c2VRdWF0ZXJuaW9uIiwic2V0RHJhd01vZGUiLCJkcmF3TW9kZSIsImluaXRCb25lcyIsInNldExlbnMiLCJvbmx5U2hhZG93Iiwic2hhZG93Q2FtZXJhRm92Iiwic2hhZG93Q2FtZXJhTGVmdCIsInNoYWRvd0NhbWVyYVJpZ2h0Iiwic2hhZG93Q2FtZXJhVG9wIiwic2hhZG93Q2FtZXJhQm90dG9tIiwic2hhZG93Q2FtZXJhVmlzaWJsZSIsInNoYWRvd0RhcmtuZXNzIiwic2hhZG93TWFwV2lkdGgiLCJzaGFkb3dNYXBIZWlnaHQiLCJzZXREeW5hbWljIiwiY29weUluZGljZXNBcnJheSIsInNldEFycmF5IiwiYWRkSW5kZXgiLCJhZGREcmF3Q2FsbCIsImNsZWFyRHJhd0NhbGxzIiwiY29tcHV0ZU9mZnNldHMiLCJsaW5lUHJlY2lzaW9uIiwiZ2V0QXJyYXlzIiwiYWRkU2hhcGVMaXN0Iiwid3JhcEFyb3VuZCIsIm92ZXJkcmF3Iiwid3JhcFJHQiIsIm1ldGFsIiwiY2xlYXJUYXJnZXQiLCJnZXRDdXJyZW50UmVuZGVyVGFyZ2V0IiwiZ2V0UHJlY2lzaW9uIiwicmVzZXRHTFN0YXRlIiwic3VwcG9ydHNGbG9hdFRleHR1cmVzIiwic3VwcG9ydHNIYWxmRmxvYXRUZXh0dXJlcyIsInN1cHBvcnRzU3RhbmRhcmREZXJpdmF0aXZlcyIsInN1cHBvcnRzQ29tcHJlc3NlZFRleHR1cmVTM1RDIiwic3VwcG9ydHNDb21wcmVzc2VkVGV4dHVyZVBWUlRDIiwic3VwcG9ydHNCbGVuZE1pbk1heCIsInN1cHBvcnRzSW5zdGFuY2VkQXJyYXlzIiwiZW5hYmxlU2Npc3NvclRlc3QiLCJhZGRQcmVQbHVnaW4iLCJhZGRQb3N0UGx1Z2luIiwidXBkYXRlU2hhZG93TWFwIiwic2V0RmFjZUN1bGxpbmciLCJhbGxvY1RleHR1cmVVbml0IiwiZ2V0QWN0aXZlTWlwTWFwTGV2ZWwiLCJzaGFkb3dNYXBDdWxsRmFjZSIsInZyIiwiZ2FtbWFJbnB1dCIsImdhbW1hT3V0cHV0IiwicmVuZGVyUmV2ZXJzZVNpZGVkIiwicmVuZGVyU2luZ2xlU2lkZWQiLCJ1cGRhdGVDdWJlTWFwIiwibG9hZFRleHR1cmVDdWJlIiwibG9hZENvbXByZXNzZWRUZXh0dXJlIiwibG9hZENvbXByZXNzZWRUZXh0dXJlQ3ViZSIsInJldmlzaW9uIiwiY29tbW9uanNHbG9iYWwiLCJhcHBsZUlwaG9uZSIsImFwcGxlSXBvZCIsImFwcGxlVGFibGV0IiwiYXBwbGVVbml2ZXJzYWwiLCJhbmRyb2lkUGhvbmUiLCJhbmRyb2lkVGFibGV0IiwiYW1hem9uUGhvbmUiLCJhbWF6b25UYWJsZXQiLCJ3aW5kb3dzVGFibGV0Iiwib3RoZXJCbGFja0JlcnJ5Iiwib3RoZXJCbGFja0JlcnJ5MTAiLCJvdGhlck9wZXJhIiwib3RoZXJDaHJvbWUiLCJvdGhlckZpcmVmb3giLCJpc0FwcGxlVGFibGV0T25Jb3MxMyIsIk1TU3RyZWFtIiwibmF2IiwiY3JlYXRlTWF0Y2giLCJhcHBsZSIsInBob25lIiwiaXBvZCIsInRhYmxldCIsInVuaXZlcnNhbCIsImFtYXpvbiIsImJsYWNrYmVycnkiLCJibGFja2JlcnJ5MTAiLCJpc01vYmlsZSIsIk1JUE1BUF9URVhUVVJFUyIsIkFOSVNPVFJPUElDX0xFVkVMIiwiUkVTT0xVVElPTiIsIkZJTFRFUl9SRVNPTFVUSU9OIiwiU1BSSVRFX01BWF9URVhUVVJFUyIsImFsbG93TWF4IiwibWF0Y2gkMSIsIm1heFJlY29tbWVuZGVkVGV4dHVyZXMiLCJTUFJJVEVfQkFUQ0hfU0laRSIsIlJFTkRFUl9PUFRJT05TIiwiZm9yY2VGWEFBIiwiYXV0b0RlbnNpdHkiLCJsZWdhY3kiLCJHQ19NT0RFIiwiR0NfTUFYX0lETEUiLCJHQ19NQVhfQ0hFQ0tfQ09VTlQiLCJXUkFQX01PREUiLCJQUkVDSVNJT05fVkVSVEVYIiwiUFJFQ0lTSU9OX0ZSQUdNRU5UIiwiQ0FOX1VQTE9BRF9TQU1FX0JVRkZFUiIsIkNSRUFURV9JTUFHRV9CSVRNQVAiLCJST1VORF9QSVhFTFMiLCJFTlYiLCJSRU5ERVJFUl9UWVBFIiwiQkxFTkRfTU9ERVMiLCJEUkFXX01PREVTIiwiRk9STUFUUyIsIlRBUkdFVFMiLCJTQ0FMRV9NT0RFUyIsIldSQVBfTU9ERVMiLCJNSVBNQVBfTU9ERVMiLCJBTFBIQV9NT0RFUyIsIkdDX01PREVTIiwiUFJFQ0lTSU9OIiwiTUFTS19UWVBFUyIsIlJFVElOQV9QUkVGSVgiLCJGQUlMX0lGX01BSk9SX1BFUkZPUk1BTkNFX0NBVkVBVCIsInNhaWRIZWxsbyIsImhleDJyZ2IiLCJoZXgyc3RyaW5nIiwiaGV4U3RyaW5nIiwicHJlbXVsdGlwbHlCbGVuZE1vZGUiLCJucG0iLCJOT1JNQUxfTlBNIiwiQUREX05QTSIsIlNDUkVFTl9OUE0iLCJtYXBQcmVtdWx0aXBsaWVkQmxlbmRNb2RlcyIsImNvcnJlY3RCbGVuZE1vZGUiLCJwcmVtdWx0aXBsaWVkIiwicHJlbXVsdGlwbHlUaW50IiwicHJlbXVsdGlwbHlUaW50VG9SZ2JhIiwibmV4dFBvdzIiLCJpc1BvdzIiLCJyZW1vdmVJdGVtcyIsInN0YXJ0SWR4IiwicmVtb3ZlQ291bnQiLCJuZXh0VWlkIiwid2FybmluZ3MiLCJpZ25vcmVEZXB0aCIsImdyb3VwQ29sbGFwc2VkIiwiUHJvZ3JhbUNhY2hlIiwiVGV4dHVyZUNhY2hlIiwiQmFzZVRleHR1cmVDYWNoZSIsIkNhbnZhc1JlbmRlclRhcmdldCIsInRlbXBBbmNob3IiLCJnZXRSZXNvbHV0aW9uT2ZVcmwiLCJTSEFQRVMiLCJjb3B5VG8iLCJPYnNlcnZhYmxlUG9pbnQiLCJQSV8yIiwibmV3UG9zIiwicm90YXRpb25DYXlsZXkiLCJyb3RhdGlvbk1hdHJpY2VzIiwic2lnbnVtIiwiX3V4IiwiX3V5IiwiX3Z4IiwiX3Z5IiwiZ3JvdXBEOCIsIlNFIiwiU1ciLCJOVyIsIk5FIiwiTUlSUk9SX1ZFUlRJQ0FMIiwiTUFJTl9ESUFHT05BTCIsIk1JUlJPUl9IT1JJWk9OVEFMIiwiUkVWRVJTRV9ESUFHT05BTCIsInVYIiwiaW5kIiwidVkiLCJ2WCIsInZZIiwicm90YXRpb25TZWNvbmQiLCJyb3RhdGlvbkZpcnN0Iiwicm90YXRlMTgwIiwiaXNWZXJ0aWNhbCIsImJ5RGlyZWN0aW9uIiwibWF0cml4QXBwZW5kUm90YXRpb25JbnYiLCJ3b3JsZFRyYW5zZm9ybSIsInVwZGF0ZVNrZXciLCJfbG9jYWxJRCIsIl9jdXJyZW50TG9jYWxJRCIsIl93b3JsZElEIiwiX3BhcmVudElEIiwidXBkYXRlTG9jYWxUcmFuc2Zvcm0iLCJsdCIsInVwZGF0ZVRyYW5zZm9ybSIsInBhcmVudFRyYW5zZm9ybSIsInd0IiwiSURFTlRJVFkiLCJSRUNUIiwiZXBzIiwiZW5sYXJnZSIsIkNJUkMiLCJFTElQIiwiYXJndW1lbnRzJDEiLCJQT0xZIiwiY2xvc2VTdHJva2UiLCJ4aSIsInlpIiwieGoiLCJ5aiIsIlJvdW5kZWRSZWN0YW5nbGUiLCJSUkVDIiwiU09SVEFCTEVfQ0hJTERSRU4iLCJnZXRSZWN0YW5nbGUiLCJFTVBUWSIsImFkZFF1YWQiLCJhZGRGcmFtZU1hdHJpeCIsImFkZFZlcnRleERhdGEiLCJiZWdpbk9mZnNldCIsImVuZE9mZnNldCIsImFkZFZlcnRpY2VzIiwiYWRkVmVydGljZXNNYXRyaXgiLCJwYWRYIiwicGFkWSIsInJhd1giLCJyYXdZIiwiYWRkQm91bmRzIiwiYWRkQm91bmRzTWFzayIsIl9taW5YIiwiX21pblkiLCJfbWF4WCIsIl9tYXhZIiwiYWRkQm91bmRzTWF0cml4IiwiYWRkQm91bmRzQXJlYSIsImFkZEZyYW1lUGFkIiwiRGlzcGxheU9iamVjdCIsInRlbXBEaXNwbGF5T2JqZWN0UGFyZW50Iiwid29ybGRBbHBoYSIsIl9sYXN0U29ydGVkSW5kZXgiLCJfekluZGV4IiwiZmlsdGVyQXJlYSIsIl9lbmFibGVkRmlsdGVycyIsIl9ib3VuZHNJRCIsIl9sYXN0Qm91bmRzSUQiLCJfYm91bmRzUmVjdCIsIl9sb2NhbEJvdW5kc1JlY3QiLCJfbWFzayIsIl9kZXN0cm95ZWQiLCJpc01hc2siLCJwcm90b3R5cGVBY2Nlc3NvcnMiLCJfdGVtcERpc3BsYXlPYmplY3RQYXJlbnQiLCJ3b3JsZFZpc2libGUiLCJjYWxjdWxhdGVCb3VuZHMiLCJfcmVjdXJzaXZlUG9zdFVwZGF0ZVRyYW5zZm9ybSIsInNraXBVcGRhdGUiLCJnZXRMb2NhbEJvdW5kcyIsInRyYW5zZm9ybVJlZiIsInBhcmVudFJlZiIsInRvR2xvYmFsIiwiZGlzcGxheU9iamVjdFVwZGF0ZVRyYW5zZm9ybSIsInRvTG9jYWwiLCJhZGRDaGlsZCIsIl9jdXJyZW50Qm91bmRzIiwiaW50ZXJhY3RpdmUiLCJpbnRlcmFjdGl2ZUNoaWxkcmVuIiwic29ydERpcnR5IiwibWFza09iamVjdCIsIm1hc2tPYmplY3QkMSIsInNvcnRDaGlsZHJlbiIsInNvcnRhYmxlQ2hpbGRyZW4iLCJvbkNoaWxkcmVuQ2hhbmdlIiwiYWRkQ2hpbGRBdCIsInN3YXBDaGlsZHJlbiIsImdldENoaWxkSW5kZXgiLCJzZXRDaGlsZEluZGV4IiwiZ2V0Q2hpbGRBdCIsInJlbW92ZUNoaWxkQXQiLCJyZW1vdmVDaGlsZHJlbiIsImkkMSIsInNvcnRSZXF1aXJlZCIsIl9jYWxjdWxhdGVCb3VuZHMiLCJyZW5kZXJBZHZhbmNlZCIsIl9yZW5kZXIiLCJvbGRDaGlsZHJlbiIsImNvbnRhaW5lclVwZGF0ZVRyYW5zZm9ybSIsImFjY2Vzc2libGUiLCJhY2Nlc3NpYmxlVGl0bGUiLCJhY2Nlc3NpYmxlSGludCIsIl9hY2Nlc3NpYmxlQWN0aXZlIiwiX2FjY2Vzc2libGVEaXYiLCJhY2Nlc3NpYmxlVHlwZSIsImFjY2Vzc2libGVQb2ludGVyRXZlbnRzIiwiYWNjZXNzaWJsZUNoaWxkcmVuIiwiVVBEQVRFX1BSSU9SSVRZIiwiQWNjZXNzaWJpbGl0eU1hbmFnZXIiLCJfaG9va0RpdiIsImNyZWF0ZVRvdWNoSG9vayIsIkRJVl9UT1VDSF9TSVpFIiwiRElWX1RPVUNIX1BPU19YIiwiRElWX1RPVUNIX1BPU19ZIiwicmVuZGVySWQiLCJfb25LZXlEb3duIiwiX29uTW91c2VNb3ZlIiwiaXNNb2JpbGVBY2Nlc3NpYmlsaXR5IiwiYW5kcm9pZFVwZGF0ZUNvdW50IiwiYW5kcm9pZFVwZGF0ZUZyZXF1ZW5jeSIsInRoaXMkMSIsImhvb2tEaXYiLCJESVZfSE9PS19TSVpFIiwiRElWX0hPT0tfUE9TX1giLCJESVZfSE9PS19QT1NfWSIsImFjdGl2YXRlIiwiZGVzdHJveVRvdWNoSG9vayIsImRlYWN0aXZhdGUiLCJ1cGRhdGVBY2Nlc3NpYmxlT2JqZWN0cyIsImRpc3BsYXlPYmplY3QiLCJyZW5kZXJpbmdUb1NjcmVlbiIsIl9sYXN0T2JqZWN0UmVuZGVyZWQiLCJjYXBIaXRBcmVhIiwidXBkYXRlRGVidWdIVE1MIiwiYm9yZGVyU3R5bGUiLCJfb25DbGljayIsIl9vbkZvY3VzIiwiX29uRm9jdXNPdXQiLCJpbnRlcmFjdGlvbk1hbmFnZXIiLCJpbnRlcmFjdGlvbiIsImV2ZW50RGF0YSIsIlRBUkdFVF9GUE1TIiwiVGlja2VyTGlzdGVuZXIiLCJyZWRpcmVjdCIsImhhcmQiLCJUaWNrZXIiLCJfcmVxdWVzdElkIiwiX21heEVsYXBzZWRNUyIsIl9taW5FbGFwc2VkTVMiLCJkZWx0YU1TIiwiZWxhcHNlZE1TIiwiX3Byb3RlY3RlZCIsIl9sYXN0RnJhbWUiLCJfcmVxdWVzdElmTmVlZGVkIiwiX2NhbmNlbElmTmVlZGVkIiwiX3N0YXJ0SWZQb3NzaWJsZSIsIl9hZGRMaXN0ZW5lciIsImFkZE9uY2UiLCJtaW5GUFMiLCJtYXhGUFMiLCJtaW5GUE1TIiwiX3NoYXJlZCIsIl9zeXN0ZW0iLCJzeXN0ZW0iLCJUaWNrZXJQbHVnaW4iLCJzaGFyZWRUaWNrZXIiLCJ0aWNrZXIiLCJfdGlja2VyIiwiTE9XIiwib2xkVGlja2VyIiwiSW50ZXJhY3Rpb25EYXRhIiwiaXNQcmltYXJ5IiwidGlsdFgiLCJ0aWx0WSIsInByZXNzdXJlIiwicm90YXRpb25BbmdsZSIsInR3aXN0IiwidGFuZ2VudGlhbFByZXNzdXJlIiwiZ2V0TG9jYWxQb3NpdGlvbiIsImdsb2JhbFBvcyIsImNvcHlFdmVudCIsIkludGVyYWN0aW9uRXZlbnQiLCJzdG9wc1Byb3BhZ2F0aW5nQXQiLCJzdG9wUHJvcGFnYXRpb25IaW50IiwiSW50ZXJhY3Rpb25UcmFja2luZ0RhdGEiLCJfcG9pbnRlcklkIiwiX2ZsYWdzIiwiRkxBR1MiLCJwcm90b3R5cGVBY2Nlc3NvcnMkMSIsInJpZ2h0RG93biIsImxlZnREb3duIiwiX2RvU2V0IiwiT1ZFUiIsIlJJR0hUX0RPV04iLCJMRUZUX0RPV04iLCJUcmVlU2VhcmNoIiwicmVjdXJzaXZlRmluZEhpdCIsImludGVyYWN0aW9uRXZlbnQiLCJoaXQiLCJpbnRlcmFjdGl2ZVBhcmVudCIsImhpdFRlc3RDaGlsZHJlbiIsImNoaWxkSGl0IiwiZmluZEhpdCIsImludGVyYWN0aXZlVGFyZ2V0IiwiX3RyYWNrZWRQb2ludGVycyIsImhpdFRlc3RFdmVudCIsIkludGVyYWN0aW9uTWFuYWdlciIsImF1dG9QcmV2ZW50RGVmYXVsdCIsImludGVyYWN0aW9uRnJlcXVlbmN5IiwiYWN0aXZlSW50ZXJhY3Rpb25EYXRhIiwiaW50ZXJhY3Rpb25EYXRhUG9vbCIsImludGVyYWN0aW9uRE9NRWxlbWVudCIsIm1vdmVXaGVuSW5zaWRlIiwiZXZlbnRzQWRkZWQiLCJ0aWNrZXJBZGRlZCIsIm1vdXNlT3ZlclJlbmRlcmVyIiwic3VwcG9ydHNUb3VjaEV2ZW50cyIsInN1cHBvcnRzUG9pbnRlckV2ZW50cyIsIlBvaW50ZXJFdmVudCIsIm9uUG9pbnRlclVwIiwicHJvY2Vzc1BvaW50ZXJVcCIsIm9uUG9pbnRlckNhbmNlbCIsInByb2Nlc3NQb2ludGVyQ2FuY2VsIiwib25Qb2ludGVyRG93biIsInByb2Nlc3NQb2ludGVyRG93biIsIm9uUG9pbnRlck1vdmUiLCJwcm9jZXNzUG9pbnRlck1vdmUiLCJvblBvaW50ZXJPdXQiLCJwcm9jZXNzUG9pbnRlck92ZXJPdXQiLCJvblBvaW50ZXJPdmVyIiwiY3Vyc29yU3R5bGVzIiwiY3VycmVudEN1cnNvck1vZGUiLCJkZWxheWVkRXZlbnRzIiwiX3VzZVN5c3RlbVRpY2tlciIsInVzZVN5c3RlbVRpY2tlciIsInNldFRhcmdldEVsZW1lbnQiLCJhZGRUaWNrZXJMaXN0ZW5lciIsInJlbW92ZVRpY2tlckxpc3RlbmVyIiwiZ2xvYmFsUG9pbnQiLCJwcm9jZXNzSW50ZXJhY3RpdmUiLCJyZW1vdmVFdmVudHMiLCJhZGRFdmVudHMiLCJ0aWNrZXJVcGRhdGUiLCJJTlRFUkFDVElPTiIsIl9kZWx0YVRpbWUiLCJkaWRNb3ZlIiwiaW50ZXJhY3Rpb25EYXRhIiwiY29uZmlndXJlSW50ZXJhY3Rpb25FdmVudEZvckRPTUV2ZW50Iiwic2V0Q3Vyc29yTW9kZSIsImV2ZW50U3RyaW5nIiwiZGVsYXlEaXNwYXRjaEV2ZW50IiwibWFwUG9zaXRpb25Ub1BvaW50IiwicmVzb2x1dGlvbk11bHRpcGxpZXIiLCJkZWxheWVkTGVuIiwiZGlzcGxheU9iamVjdCQxIiwibm9ybWFsaXplVG9Qb2ludGVyRGF0YSIsImlzTm9ybWFsaXplZCIsImV2ZW50TGVuIiwiZ2V0SW50ZXJhY3Rpb25EYXRhRm9yUG9pbnRlcklkIiwiaXNSaWdodEJ1dHRvbiIsInRyYWNrZWRQb2ludGVycyIsIm9uUG9pbnRlckNvbXBsZXRlIiwiZXZlbnRBcHBlbmQiLCJyZWxlYXNlSW50ZXJhY3Rpb25EYXRhRm9yUG9pbnRlcklkIiwidHJhY2tpbmdEYXRhIiwiaXNUb3VjaCIsImlzTW91c2UiLCJpc01vdXNlVGFwIiwicG9pbnRlckV2ZW50IiwiZ2xvYmFsWCIsImdsb2JhbFkiLCJub3JtYWxpemVkRXZlbnRzIiwiVG91Y2hFdmVudCIsInJhZGl1c1giLCJyYWRpdXNZIiwiTW91c2VFdmVudCIsIlJ1bm5lciIsIl9hbGlhc0NvdW50IiwiYTYiLCJhNyIsImVuc3VyZU5vbkFsaWFzZWRJdGVtcyIsIlJlc291cmNlIiwiZGVzdHJveWVkIiwiaW50ZXJuYWwiLCJiYXNlVGV4dHVyZSIsIkJhc2VJbWFnZVJlc291cmNlIiwibm9TdWJJbWFnZSIsImNyb3Nzb3JpZ2luIiwicGFyc2VkVXJsIiwic2FtZVBvcnQiLCJkZXRlcm1pbmVDcm9zc09yaWdpbiIsImFscGhhTW9kZSIsIlVOUEFDSyIsIkltYWdlUmVzb3VyY2UiLCJpbWFnZUVsZW1lbnQiLCJfcHJvY2VzcyIsInByZXNlcnZlQml0bWFwIiwiY3JlYXRlQml0bWFwIiwiX2xvYWQiLCJhdXRvTG9hZCIsIl9nbFRleHR1cmVzIiwib3RoZXJUZXgiLCJkaXJ0eUlkIiwiSU5TVEFMTEVEIiwiYXV0b0RldGVjdFJlc291cmNlIiwiUmVzb3VyY2VQbHVnaW4iLCJCdWZmZXJSZXNvdXJjZSIsImRlZmF1bHRCdWZmZXJPcHRpb25zIiwiTlBNIiwiQmFzZVRleHR1cmUiLCJyZXNvdXJjZSIsImFuaXNvdHJvcGljTGV2ZWwiLCJ3cmFwTW9kZSIsInJlc291cmNlT3B0aW9ucyIsInRvdWNoZWQiLCJfcmVmcmVzaFBPVCIsImRpcnR5U3R5bGVJZCIsImNhY2hlSWQiLCJ0ZXh0dXJlQ2FjaGVJZHMiLCJfYmF0Y2hFbmFibGVkIiwiX2JhdGNoTG9jYXRpb24iLCJzZXRSZXNvdXJjZSIsInNldFJlYWxTaXplIiwib2xkUmVzb2x1dGlvbiIsInJlbW92ZUZyb21DYWNoZSIsIlNUUklDVF9URVhUVVJFX0NBQ0hFIiwiaXNGcmFtZSIsIl9waXhpSWQiLCJmcm9tQnVmZmVyIiwiYmFzZVRleHR1cmVGcm9tQ2FjaGUiLCJfZ2xvYmFsQmF0Y2giLCJBcnJheVJlc291cmNlIiwiaXRlbURpcnR5SWRzIiwicGFydFRleHR1cmUiLCJhZGRSZXNvdXJjZUF0IiwiVEVYVFVSRV8yRF9BUlJBWSIsInRleFN1YkltYWdlM0QiLCJDYW52YXNSZXNvdXJjZSIsIkN1YmVSZXNvdXJjZSIsIlNJREVTIiwiVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YIiwiVEVYVFVSRV9DVUJFX01BUCIsIlNWR1Jlc291cmNlIiwiX292ZXJyaWRlV2lkdGgiLCJfb3ZlcnJpZGVIZWlnaHQiLCJfcmVzb2x2ZSIsIl9jcm9zc29yaWdpbiIsImJ0b2EiLCJ1bmVzY2FwZSIsIl9sb2FkU3ZnIiwidGVtcEltYWdlIiwic3ZnU3RyaW5nIiwic2l6ZU1hdGNoIiwiU1ZHX1NJWkUiLCJWaWRlb1Jlc291cmNlIiwic291cmNlRWxlbWVudCIsIm1pbWUiLCJiYXNlU3JjIiwiZXh0IiwiX2F1dG9VcGRhdGUiLCJfaXNDb25uZWN0ZWRUb1RpY2tlciIsIl91cGRhdGVGUFMiLCJ1cGRhdGVGUFMiLCJfbXNUb05leHRVcGRhdGUiLCJhdXRvUGxheSIsIl9vbkNhblBsYXkiLCJfb25FcnJvciIsIkhBVkVfRU5PVUdIX0RBVEEiLCJIQVZFX0ZVVFVSRV9EQVRBIiwiX29uUGxheVN0YXJ0IiwiX29uUGxheVN0b3AiLCJfaXNTb3VyY2VSZWFkeSIsIl9pc1NvdXJjZVBsYXlpbmciLCJJbWFnZUJpdG1hcFJlc291cmNlIiwiU3lzdGVtIiwiRGVwdGhSZXNvdXJjZSIsIndlYkdMVmVyc2lvbiIsIkRFUFRIX0NPTVBPTkVOVCIsIkRFUFRIX0NPTVBPTkVOVDE2IiwiRnJhbWVidWZmZXIiLCJkaXJ0eUZvcm1hdCIsImRpcnR5U2l6ZSIsImNvbG9yVGV4dHVyZXMiLCJnbEZyYW1lYnVmZmVycyIsImRpc3Bvc2VSdW5uZXIiLCJjb2xvclRleHR1cmUiLCJhZGRDb2xvclRleHR1cmUiLCJhZGREZXB0aFRleHR1cmUiLCJlbmFibGVEZXB0aCIsImVuYWJsZVN0ZW5jaWwiLCJyZXNvbHV0aW9uJDEiLCJCYXNlUmVuZGVyVGV4dHVyZSIsIndpZHRoJDEiLCJoZWlnaHQkMSIsIl9jYW52YXNSZW5kZXJUYXJnZXQiLCJmaWx0ZXJTdGFjayIsIlRleHR1cmVVdnMiLCJ1dnNGbG9hdDMyIiwidzIiLCJoMiIsImNYIiwiY1kiLCJERUZBVUxUX1VWUyIsIm5vRnJhbWUiLCJfZnJhbWUiLCJyZXF1aXJlc1VwZGF0ZSIsIl91dnMiLCJ1dk1hdHJpeCIsIl9yb3RhdGUiLCJkZWZhdWx0QW5jaG9yIiwiX3VwZGF0ZUlEIiwib25CYXNlVGV4dHVyZVVwZGF0ZWQiLCJ1cGRhdGVVdnMiLCJkZXN0cm95QmFzZSIsImltYWdlVXJsIiwidGV4dHVyZUZyb21DYWNoZSIsInhOb3RGaXQiLCJ5Tm90Rml0IiwicmVsYXRpb25zaGlwIiwiZXJyb3JYIiwiZXJyb3JZIiwicmVtb3ZlQWxsSGFuZGxlcnMiLCJ0ZXgiLCJXSElURSIsImNyZWF0ZVdoaXRlVGV4dHVyZSIsImJhc2VSZW5kZXJUZXh0dXJlIiwiX2xlZ2FjeVJlbmRlcmVyIiwibGVnYWN5UmVuZGVyZXIiLCJmaWx0ZXJGcmFtZSIsImZpbHRlclBvb2xLZXkiLCJyZXNpemVCYXNlVGV4dHVyZSIsIlJlbmRlclRleHR1cmVQb29sIiwidGV4dHVyZU9wdGlvbnMiLCJ0ZXh0dXJlUG9vbCIsImVuYWJsZUZ1bGxTY3JlZW4iLCJfcGl4ZWxzV2lkdGgiLCJfcGl4ZWxzSGVpZ2h0IiwiZ2V0T3B0aW1hbFRleHR1cmUiLCJTQ1JFRU5fS0VZIiwiZ2V0RmlsdGVyVGV4dHVyZSIsImZpbHRlclRleHR1cmUiLCJyZXR1cm5UZXh0dXJlIiwicmV0dXJuRmlsdGVyVGV4dHVyZSIsImRlc3Ryb3lUZXh0dXJlcyIsInNldFNjcmVlblNpemUiLCJzY3JlZW5LZXkiLCJBdHRyaWJ1dGUiLCJVSUQiLCJfc3RhdGljIiwiX2dsQnVmZmVycyIsInN0YXRpYyIsImJ5dGVTaXplTWFwIiwiNTEyNiIsIjUxMjMiLCI1MTIxIiwiVUlEJDEiLCJtYXAkMSIsImdsVmVydGV4QXJyYXlPYmplY3RzIiwiaW5zdGFuY2VkIiwicmVmQ291bnQiLCJpZHMiLCJidWZmZXJJbmRleCIsImdldEJ1ZmZlciIsImludGVybGVhdmUiLCJzaXplcyIsIm91dFNpemUiLCJsaXR0bGVPZmZzZXQiLCJhdHRyaWIiLCJnZW9tZXRyeU91dCIsImkkMiIsImokMSIsIm9mZnNldDIiLCJidWZmZXJJbmRleFRvQ291bnQiLCJpJDMiLCJpJDQiLCJpJDUiLCJpbmRleEJ1ZmZlckRhdGEiLCJqJDIiLCJRdWFkVXYiLCJ0YXJnZXRUZXh0dXJlRnJhbWUiLCJkZXN0aW5hdGlvbkZyYW1lIiwiaW52YWxpZGF0ZSIsIlVJRCQyIiwiVW5pZm9ybUdyb3VwIiwiRmlsdGVyU3RhdGUiLCJGaWx0ZXJTeXN0ZW0iLCJkZWZhdWx0RmlsdGVyU3RhY2siLCJzdGF0ZVBvb2wiLCJxdWFkVXYiLCJhY3RpdmVTdGF0ZSIsImdsb2JhbFVuaWZvcm1zIiwib3V0cHV0RnJhbWUiLCJpbnB1dFNpemUiLCJpbnB1dFBpeGVsIiwiaW5wdXRDbGFtcCIsImZpbHRlckNsYW1wIiwidXNlTWF4UGFkZGluZyIsImF1dG9GaXQiLCJnZXRPcHRpbWFsRmlsdGVyVGV4dHVyZSIsImxhc3RTdGF0ZSIsImZsb3AiLCJhcHBseUZpbHRlciIsInVTYW1wbGVyIiwiZmlsdGVyR2xvYmFscyIsImNhbGN1bGF0ZVNwcml0ZU1hdHJpeCIsIm91dHB1dE1hdHJpeCIsIl90ZXh0dXJlIiwibWFwcGVkTWF0cml4IiwiVEVNUF9NQVRSSVgiLCJlbXB0eVBvb2wiLCJPYmplY3RSZW5kZXJlciIsIkJhdGNoU3lzdGVtIiwiZW1wdHlSZW5kZXJlciIsImN1cnJlbnRSZW5kZXJlciIsInNldE9iamVjdFJlbmRlcmVyIiwib2JqZWN0UmVuZGVyZXIiLCJjb3B5Qm91bmRUZXh0dXJlcyIsImJvdW5kVGV4dHVyZXMiLCJib3VuZEFycmF5IiwidGV4QXJyYXkiLCJiYXRjaElkIiwiYm91bmQiLCJQUkVGRVJfRU5WIiwiV0VCR0wyIiwiQ09OVEVYVF9VSUQiLCJDb250ZXh0U3lzdGVtIiwiaGFuZGxlQ29udGV4dExvc3QiLCJoYW5kbGVDb250ZXh0UmVzdG9yZWQiLCJpc0xvc3QiLCJjb250ZXh0Q2hhbmdlIiwiaW5pdEZyb21Db250ZXh0IiwidmFsaWRhdGVDb250ZXh0IiwicnVubmVycyIsImluaXRGcm9tT3B0aW9ucyIsImdldEV4dGVuc2lvbnMiLCJ2ZXJ0ZXhBcnJheU9iamVjdCIsImFuaXNvdHJvcGljRmlsdGVyaW5nIiwidWludDMyRWxlbWVudEluZGV4IiwiZmxvYXRUZXh0dXJlIiwiZmxvYXRUZXh0dXJlTGluZWFyIiwidGV4dHVyZUhhbGZGbG9hdCIsInRleHR1cmVIYWxmRmxvYXRMaW5lYXIiLCJjb2xvckJ1ZmZlckZsb2F0IiwicG9zdHJlbmRlciIsIkZyYW1lYnVmZmVyU3lzdGVtIiwibWFuYWdlZEZyYW1lYnVmZmVycyIsInVua25vd25GcmFtZWJ1ZmZlciIsImhhc01SVCIsIndyaXRlRGVwdGhUZXh0dXJlIiwiZGlzcG9zZUFsbCIsIm5hdGl2ZURyYXdCdWZmZXJzRXh0ZW5zaW9uIiwibmF0aXZlRGVwdGhUZXh0dXJlRXh0ZW5zaW9uIiwiV0VCR0xfTEVHQUNZIiwiYWN0aXZlVGV4dHVyZXMiLCJkcmF3QnVmZmVyc1dFQkdMIiwiZmJvIiwiaW5pdEZyYW1lYnVmZmVyIiwidXBkYXRlRnJhbWVidWZmZXIiLCJyZXNpemVGcmFtZWJ1ZmZlciIsInRleHR1cmVQYXJ0IiwiVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YIiwiREVQVEhfQVRUQUNITUVOVCIsImRpc3Bvc2VGcmFtZWJ1ZmZlciIsImZvcmNlU3RlbmNpbCIsIkdMQnVmZmVyIiwidXBkYXRlSUQiLCJieXRlU2l6ZU1hcCQxIiwiR2VvbWV0cnlTeXN0ZW0iLCJfYWN0aXZlR2VvbWV0cnkiLCJfYWN0aXZlVmFvIiwiaGFzVmFvIiwiaGFzSW5zdGFuY2UiLCJjYW5Vc2VVSW50MzJFbGVtZW50SW5kZXgiLCJib3VuZEJ1ZmZlcnMiLCJtYW5hZ2VkR2VvbWV0cmllcyIsIm1hbmFnZWRCdWZmZXJzIiwiY3JlYXRlVmVydGV4QXJyYXkiLCJuYXRpdmVWYW9FeHRlbnNpb24iLCJjcmVhdGVWZXJ0ZXhBcnJheU9FUyIsImJpbmRWZXJ0ZXhBcnJheSIsInZhbyIsImJpbmRWZXJ0ZXhBcnJheU9FUyIsImRlbGV0ZVZlcnRleEFycmF5IiwiZGVsZXRlVmVydGV4QXJyYXlPRVMiLCJ2ZXJ0ZXhBdHRyaWJEaXZpc29yIiwiaW5zdGFuY2VFeHQiLCJ2ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUiLCJkcmF3RWxlbWVudHNJbnN0YW5jZWQiLCJkcmF3RWxlbWVudHNJbnN0YW5jZWRBTkdMRSIsImRyYXdBcnJheXNJbnN0YW5jZWQiLCJkcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUiLCJ2YW9zIiwiaW5pdEdlb21ldHJ5VmFvIiwiYWN0aXZhdGVWYW8iLCJnbEJ1ZmZlciIsIl9ib3VuZEJ1ZmZlciIsImRyYXdUeXBlIiwiRFlOQU1JQ19EUkFXIiwiY2hlY2tDb21wYXRpYmlsaXR5Iiwic2hhZGVyQXR0cmlidXRlcyIsImdldFNpZ25hdHVyZSIsImF0dHJpYnMiLCJzdHJpbmdzIiwic2lnbmF0dXJlIiwidmFvT2JqZWN0SGFzaCIsInRlbXBTdHJpZGUiLCJ0ZW1wU3RhcnQiLCJhdHRyaWJTaXplIiwiZGlzcG9zZUJ1ZmZlciIsImRpc3Bvc2VHZW9tZXRyeSIsImJ1ZiIsInZhb0lkIiwibGFzdEJ1ZmZlciIsImJ5dGVTaXplIiwiVU5TSUdORURfSU5UIiwiTWFza0RhdGEiLCJhdXRvRGV0ZWN0IiwicG9vbGVkIiwiaXNNYXNrRGF0YSIsIl9zdGVuY2lsQ291bnRlciIsIl9zY2lzc29yQ291bnRlciIsIl9zY2lzc29yUmVjdCIsImNvbXBpbGVQcm9ncmFtIiwiYXR0cmlidXRlTG9jYXRpb25zIiwiZ2xWZXJ0U2hhZGVyIiwiZ2xGcmFnU2hhZGVyIiwiVkFMSURBVEVfU1RBVFVTIiwiYm9vbGVhbkFycmF5IiwiY29weUNvdW50ZXJzT3JSZXNldCIsIm1hc2tBYm92ZSIsIm1heEZyYWdtZW50UHJlY2lzaW9uIiwidW5rbm93bkNvbnRleHQiLCJnZXRUZXN0Q29udGV4dCIsInNldFByZWNpc2lvbiIsInJlcXVlc3RlZFByZWNpc2lvbiIsIm1heFN1cHBvcnRlZFByZWNpc2lvbiIsIkhJR0giLCJNRURJVU0iLCJHTFNMX1RPX1NJWkUiLCJmbG9hdCIsImludCIsIml2ZWMyIiwiaXZlYzMiLCJpdmVjNCIsImJ2ZWMyIiwiYnZlYzMiLCJidmVjNCIsInNhbXBsZXIyRCIsIkdMX1RBQkxFIiwiR0xfVE9fR0xTTF9UWVBFUyIsIkZMT0FUX1ZFQzIiLCJGTE9BVF9WRUMzIiwiRkxPQVRfVkVDNCIsIklOVCIsIklOVF9WRUMyIiwiSU5UX1ZFQzMiLCJJTlRfVkVDNCIsIkJPT0wiLCJCT09MX1ZFQzIiLCJCT09MX1ZFQzMiLCJCT09MX1ZFQzQiLCJGTE9BVF9NQVQyIiwiRkxPQVRfTUFUMyIsIkZMT0FUX01BVDQiLCJTQU1QTEVSXzJEIiwiU0FNUExFUl9DVUJFIiwiU0FNUExFUl8yRF9BUlJBWSIsIm1hcFR5cGUiLCJ0eXBlTmFtZXMiLCJ0biIsIkdMU0xfVE9fU0lOR0xFX1NFVFRFUlNfQ0FDSEVEIiwic2FtcGxlckN1YmUiLCJzYW1wbGVyMkRBcnJheSIsIkdMU0xfVE9fQVJSQVlfU0VUVEVSUyIsInVuc2FmZUV2YWwiLCJmcmFnVGVtcGxhdGUiLCJnZW5lcmF0ZUlmVGVzdFNyYyIsIm1heElmcyIsIlVJRCQzIiwibmFtZUNhY2hlIiwiUHJvZ3JhbSIsImRlZmF1bHRWZXJ0ZXhTcmMiLCJkZWZhdWx0RnJhZ21lbnRTcmMiLCJzaGFkZXJGcmFnbWVudCIsIkhJR0hfRkxPQVQiLCJnZXRNYXhGcmFnbWVudFByZWNpc2lvbiIsImV4dHJhY3REYXRhIiwiZ2xQcm9ncmFtcyIsInN0YXRpY0FjY2Vzc29ycyIsImdldEF0dHJpYnV0ZURhdGEiLCJ1bmlmb3JtRGF0YSIsImdldFVuaWZvcm1EYXRhIiwiYXR0cmlidXRlc0FycmF5IiwidG90YWxBdHRyaWJ1dGVzIiwiQUNUSVZFX0FUVFJJQlVURVMiLCJhdHRyaWJEYXRhIiwidG90YWxVbmlmb3JtcyIsIkFDVElWRV9VTklGT1JNUyIsInVuaWZvcm1Hcm91cCIsInByb3RvdHlwZUFjY2Vzc29ycyQyIiwiY2hlY2tVbmlmb3JtRXhpc3RzIiwiU3RhdGUiLCJibGVuZCIsInByb3RvdHlwZUFjY2Vzc29ycyQzIiwiY3VsbGluZyIsImNsb2Nrd2lzZUZyb250RmFjZSIsIl9wb2x5Z29uT2Zmc2V0IiwiZm9yMmQiLCJGaWx0ZXIiLCJhVGV4dHVyZUNvb3JkIiwiZmlsdGVyTWFuYWdlciIsImN1cnJlbnRTdGF0ZSIsIlNPVVJDRV9LRVlfTUFQIiwidGVtcE1hdCIsIlRleHR1cmVNYXRyaXgiLCJjbGFtcE1hcmdpbiIsIm1hcENvb3JkIiwidUNsYW1wRnJhbWUiLCJ1Q2xhbXBPZmZzZXQiLCJjbGFtcE9mZnNldCIsInByb3RvdHlwZUFjY2Vzc29ycyQ0IiwibXVsdGlwbHlVdnMiLCJ0ZXhCYXNlIiwiU3ByaXRlTWFza0ZpbHRlciIsIm1hc2tNYXRyaXgiLCJtYXNrU3ByaXRlIiwibnBtQWxwaGEiLCJtYXNrQ2xhbXAiLCJNYXNrU3lzdGVtIiwic2Npc3NvclJlbmRlclRhcmdldCIsImVuYWJsZVNjaXNzb3IiLCJhbHBoYU1hc2tQb29sIiwibWFza0RhdGFQb29sIiwiYWxwaGFNYXNrSW5kZXgiLCJzZXRNYXNrU3RhY2siLCJtYXNrRGF0YSIsImRldGVjdCIsIlNDSVNTT1IiLCJTVEVOQ0lMIiwiU1BSSVRFIiwicHVzaFNwcml0ZU1hc2siLCJwb3BTcHJpdGVNYXNrIiwiaXNGYXN0UmVjdCIsInJvdFgiLCJyb3RYWSIsImFscGhhTWFza0ZpbHRlciIsInN0YXNoRmlsdGVyQXJlYSIsIkFic3RyYWN0TWFza1N5c3RlbSIsImdsQ29uc3QiLCJnZXRTdGFja0xlbmd0aCIsImN1clN0YWNrTGVuIiwibmV3U3RhY2tMZW4iLCJfdXNlQ3VycmVudCIsIlNjaXNzb3JTeXN0ZW0iLCJXZWJHTFJlbmRlcmluZ0NvbnRleHQiLCJwcmV2RGF0YSIsIlN0ZW5jaWxTeXN0ZW0iLCJwcmV2TWFza0NvdW50IiwiX2dldEJpdHdpc2VNYXNrIiwiUHJvamVjdGlvblN5c3RlbSIsImNhbGN1bGF0ZVByb2plY3Rpb24iLCJzeW5jVW5pZm9ybUdyb3VwIiwiZ2xvYmFscyIsIlJlbmRlclRleHR1cmVTeXN0ZW0iLCJfYmFja2dyb3VuZENvbG9yUmdiYSIsImRlZmF1bHRNYXNrU3RhY2siLCJHTFByb2dyYW0iLCJ1bmlmb3JtR3JvdXBzIiwiVUlEJDQiLCJkZWZhdWx0U3luY0RhdGEiLCJTaGFkZXJTeXN0ZW0iLCJzeXN0ZW1DaGVjayIsInVuc2FmZUV2YWxTdXBwb3J0ZWQiLCJkb250U3luYyIsImdsUHJvZ3JhbSIsImdlbmVyYXRlU2hhZGVyIiwic2V0VW5pZm9ybXMiLCJzeW5jRGF0YSIsImdldGdsUHJvZ3JhbSIsImNyZWF0ZVN5bmNHcm91cHMiLCJnZW5lcmF0ZVVuaWZvcm1zU3luYyIsImF0dHJpYk1hcCIsInNoYWRlclByb2dyYW0iLCJTdGF0ZVN5c3RlbSIsInN0YXRlSWQiLCJfYmxlbmRFcSIsInNldEJsZW5kIiwic2V0RGVwdGhUZXN0Iiwic2V0RnJvbnRGYWNlIiwiY2hlY2tzIiwiZGVmYXVsdFN0YXRlIiwiU1JDX0FMUEhBIiwiU1JDX0lOIiwiU1JDX09VVCIsIk9ORV9NSU5VU19EU1RfQUxQSEEiLCJTUkNfQVRPUCIsIkRTVF9PVkVSIiwiRFNUX0lOIiwiRFNUX09VVCIsIkRTVF9BVE9QIiwiU1VCVFJBQ1QiLCJtYXBXZWJHTEJsZW5kTW9kZXNUb1BpeGkiLCJmb3JjZVN0YXRlIiwidXBkYXRlQ2hlY2siLCJjaGVja0JsZW5kTW9kZSIsImNoZWNrUG9seWdvbk9mZnNldCIsIlBPTFlHT05fT0ZGU0VUX0ZJTEwiLCJUZXh0dXJlR0NTeXN0ZW0iLCJjaGVja0NvdW50IiwibWF4SWRsZSIsImNoZWNrQ291bnRNYXgiLCJNQU5VQUwiLCJ0bSIsIm1hbmFnZWRUZXh0dXJlcyIsIndhc1JlbW92ZWQiLCJkZXN0cm95VGV4dHVyZSIsInVubG9hZCIsInRleHR1cmVTeXN0ZW0iLCJfZ2xSZW5kZXJUYXJnZXRzIiwiR0xUZXh0dXJlIiwiVGV4dHVyZVN5c3RlbSIsImN1cnJlbnRMb2NhdGlvbiIsIl91bmtub3duQm91bmRUZXh0dXJlcyIsInVua25vd25UZXh0dXJlIiwiZW1wdHlUZXh0dXJlMkQiLCJ0ZXh0dXJlR0MiLCJpbml0VGV4dHVyZVR5cGUiLCJSR0JBMzJGIiwiSEFMRl9GTE9BVCIsIlJHQkExNkYiLCJ1cGRhdGVUZXh0dXJlU3R5bGUiLCJza2lwUmVtb3ZlIiwiUE9XMiIsIkNMQU1QIiwiTElORUFSX01JUE1BUF9MSU5FQVIiLCJORUFSRVNUX01JUE1BUF9ORUFSRVNUIiwiYW5pc290cm9waWNFeHQiLCJBYnN0cmFjdFJlbmRlcmVyIiwicHJlcmVuZGVyIiwiYWRkU3lzdGVtIiwiaW5pdFBsdWdpbnMiLCJfX3BsdWdpbnMiLCJzYXlIZWxsbyIsIkNsYXNzUmVmIiwic2tpcFVwZGF0ZVRyYW5zZm9ybSIsImNhY2hlUGFyZW50Iiwic2NyZWVuV2lkdGgiLCJzY3JlZW5IZWlnaHQiLCJyZW1vdmVWaWV3IiwicmVnaXN0ZXJQbHVnaW4iLCJwbHVnaW5OYW1lIiwiVU5LTk9XTiIsImF1dG9SZXNpemUiLCJfYmFja2dyb3VuZENvbG9yIiwiX2JhY2tncm91bmRDb2xvclN0cmluZyIsInN0YXRpY01hcCIsImRlZmF1bHRGaWx0ZXIiLCJCYXRjaERyYXdDYWxsIiwiQmF0Y2hUZXh0dXJlQXJyYXkiLCJWaWV3YWJsZUJ1ZmZlciIsInJhd0JpbmFyeURhdGEiLCJ1aW50MzJWaWV3IiwiZmxvYXQzMlZpZXciLCJwcm90b3R5cGVBY2Nlc3NvcnMkNSIsImludDhWaWV3IiwidWludDhWaWV3IiwiaW50MTZWaWV3IiwidWludDE2VmlldyIsImludDMyVmlldyIsIl9pbnQ4VmlldyIsIl91aW50OFZpZXciLCJfaW50MTZWaWV3IiwiX3VpbnQxNlZpZXciLCJfaW50MzJWaWV3Iiwic2l6ZU9mIiwiQWJzdHJhY3RCYXRjaFJlbmRlcmVyIiwic2hhZGVyR2VuZXJhdG9yIiwiZ2VvbWV0cnlDbGFzcyIsIl92ZXJ0ZXhDb3VudCIsIl9pbmRleENvdW50IiwiX2J1ZmZlcmVkRWxlbWVudHMiLCJfYnVmZmVyZWRUZXh0dXJlcyIsIl9idWZmZXJTaXplIiwiX3NoYWRlciIsIl9wYWNrZWRHZW9tZXRyaWVzIiwiX3BhY2tlZEdlb21ldHJ5UG9vbFNpemUiLCJfZmx1c2hJZCIsIl9hQnVmZmVycyIsIl9pQnVmZmVycyIsIk1BWF9URVhUVVJFUyIsIm9uUHJlcmVuZGVyIiwiX2RjSW5kZXgiLCJfYUluZGV4IiwiX2lJbmRleCIsIl9hdHRyaWJ1dGVCdWZmZXIiLCJfaW5kZXhCdWZmZXIiLCJfdGVtcEJvdW5kVGV4dHVyZXMiLCJjaGVja01heElmU3RhdGVtZW50c0luU2hhZGVyIiwiaW5pdEZsdXNoQnVmZmVycyIsIl9kcmF3Q2FsbFBvb2wiLCJfdGV4dHVyZUFycmF5UG9vbCIsIk1BWF9TUFJJVEVTIiwiTUFYX1RBIiwiYnVpbGRUZXh0dXJlc0FuZERyYXdDYWxscyIsInRleHR1cmVBcnJheXMiLCJUSUNLIiwiY291bnRUZXhBcnJheXMiLCJidWlsZERyYXdDYWxscyIsImRyYXdDYWxscyIsImRjSW5kZXgiLCJpSW5kZXgiLCJkcmF3Q2FsbCIsInNwcml0ZUJsZW5kTW9kZSIsInBhY2tJbnRlcmxlYXZlZEdlb21ldHJ5IiwiYmluZEFuZENsZWFyVGV4QXJyYXkiLCJ1cGRhdGVHZW9tZXRyeSIsInBhY2tlZEdlb21ldHJpZXMiLCJhdHRyaWJ1dGVCdWZmZXIiLCJfYnVmZmVyIiwiZHJhd0JhdGNoZXMiLCJkY0NvdW50Iiwic3RhdGVTeXN0ZW0iLCJjdXJUZXhBcnJheSIsInJlZiQxIiwiZ2V0QXR0cmlidXRlQnVmZmVyIiwiZ2V0SW5kZXhCdWZmZXIiLCJyb3VuZGVkUDIiLCJyb3VuZGVkU2l6ZUluZGV4Iiwicm91bmRlZFNpemUiLCJwYWNrZWRWZXJ0aWNlcyIsImluZGljaWVzIiwiYXJnYiIsIl90aW50UkdCIiwiQmF0Y2hTaGFkZXJHZW5lcmF0b3IiLCJkZWZhdWx0R3JvdXBDYWNoZSIsInVTYW1wbGVycyIsImdlbmVyYXRlU2FtcGxlU3JjIiwidHJhbnNsYXRpb25NYXRyaXgiLCJCYXRjaEdlb21ldHJ5IiwiZGVmYXVsdFZlcnRleCQyIiwiZGVmYXVsdEZyYWdtZW50JDIiLCJCYXRjaFBsdWdpbkZhY3RvcnkiLCJzdGF0aWNBY2Nlc3NvcnMkMSIsImRlZmF1bHRGcmFnbWVudFRlbXBsYXRlIiwiQmF0Y2hQbHVnaW4iLCJCYXRjaFJlbmRlcmVyIiwiQXBwbGljYXRpb24iLCJmb3JjZUNhbnZhcyIsImF1dG9EZXRlY3RSZW5kZXJlciIsInN0YWdlIiwiX3BsdWdpbnMiLCJzdGFnZU9wdGlvbnMiLCJfb3B0aW9ucyIsIlJlc2l6ZVBsdWdpbiIsImRvbSIsIl9yZXNpemVUbyIsInJlc2l6ZVRvIiwiVEVNUF9SRUNUIiwiRXh0cmFjdCIsImV4dHJhY3QiLCJnZW5lcmF0ZWQiLCJjYW52YXNCdWZmZXIiLCJ3ZWJnbFBpeGVscyIsImFycmF5UG9zdERpdmlkZSIsInRhcmdldCQxIiwiX25vb3AiLCJlYWNoU2VyaWVzIiwiZGVmZXJOZXh0Iiwib25seU9uY2UiLCJjYWxsRm4iLCJjb25jdXJyZW5jeSIsIndvcmtlcnMiLCJfdGFza3MiLCJzYXR1cmF0ZWQiLCJ1bnNhdHVyYXRlZCIsImRyYWluIiwiaWRsZSIsImluc2VydEF0RnJvbnQiLCJfZGVmaW5lUHJvcGVydGllcyIsInVzZVhkciIsIlhEb21haW5SZXF1ZXN0IiwiX25vb3AkMSIsIl9zZXRGbGFnIiwiU1RBVFVTX0ZMQUdTIiwiREFUQV9VUkwiLCJfZ2V0RXh0ZW5zaW9uIiwibG9hZFR5cGUiLCJfZGV0ZXJtaW5lTG9hZFR5cGUiLCJ4aHJUeXBlIiwicHJvZ3Jlc3NDaHVuayIsIl9kZXF1ZXVlIiwiX29uTG9hZEJpbmRpbmciLCJfZWxlbWVudFRpbWVyIiwiX2JvdW5kQ29tcGxldGUiLCJfYm91bmRPbkVycm9yIiwiX2JvdW5kT25Qcm9ncmVzcyIsIl9vblByb2dyZXNzIiwiX2JvdW5kT25UaW1lb3V0IiwiX29uVGltZW91dCIsIl9ib3VuZFhock9uRXJyb3IiLCJfeGhyT25FcnJvciIsIl9ib3VuZFhock9uVGltZW91dCIsIl94aHJPblRpbWVvdXQiLCJfYm91bmRYaHJPbkFib3J0IiwiX3hock9uQWJvcnQiLCJfYm91bmRYaHJPbkxvYWQiLCJfeGhyT25Mb2FkIiwib25BZnRlck1pZGRsZXdhcmUiLCJzZXRFeHRlbnNpb25Mb2FkVHlwZSIsImV4dG5hbWUiLCJzZXRFeHRNYXAiLCJfbG9hZFR5cGVNYXAiLCJzZXRFeHRlbnNpb25YaHJUeXBlIiwiX3hoclR5cGVNYXAiLCJfcHJvdG8iLCJfY2xlYXJFdmVudHMiLCJfZmluaXNoIiwieGRyIiwiRU1QVFlfR0lGIiwiX2RldGVybWluZUNyb3NzT3JpZ2luIiwiTE9BRF9UWVBFIiwiSU1BR0UiLCJfbG9hZEVsZW1lbnQiLCJBVURJTyIsIl9sb2FkU291cmNlRWxlbWVudCIsIlZJREVPIiwiWEhSIiwiX2xvYWRYZHIiLCJfbG9hZFhociIsIl9oYXNGbGFnIiwibG9hZEVsZW1lbnQiLCJza2lwU291cmNlIiwiaXNDb2Nvb25KUyIsIm1pbWVUeXBlcyIsIl9jcmVhdGVTb3VyY2UiLCJfbWltZVR5cGVzIiwiX2RldGVybWluZVhoclR5cGUiLCJYSFJfUkVTUE9OU0VfVFlQRSIsIkRPQ1VNRU5UIiwiVEVYVCIsInJlcVR5cGUiLCJCVUZGRVIiLCJkb21wYXJzZXIiLCJYTUwiLCJpc0RhdGFVcmwiLCJzbGFzaEluZGV4IiwicXVlcnlTdGFydCIsImhhc2hTdGFydCIsIl9nZXRNaW1lRnJvbVhoclR5cGUiLCJCTE9CIiwiZ2lmIiwicG5nIiwiYm1wIiwianBnIiwianBlZyIsInRpZiIsInRpZmYiLCJ3ZWJwIiwidGdhIiwieGh0bWwiLCJodG0iLCJ0bXgiLCJ0c3giLCJ0eHQiLCJ0dGYiLCJvdGYiLCJVcmwiLCJjYWNoaW5nIiwicGFyc2luZyIsImlueCIsImJ5dGVidWZmZXIiLCJlbmNvZGVkQ2hhckluZGV4ZXMiLCJqbngiLCJfam54IiwiZW5jb2RlQmluYXJ5Iiwicmd4RXh0cmFjdFVybEhhc2giLCJiYXNlVXJsIiwiZGVmYXVsdFF1ZXJ5U3RyaW5nIiwiX2JlZm9yZU1pZGRsZXdhcmUiLCJfYWZ0ZXJNaWRkbGV3YXJlIiwiX3Jlc291cmNlc1BhcnNpbmciLCJfYm91bmRMb2FkUmVzb3VyY2UiLCJfbG9hZFJlc291cmNlIiwiX2RlZmF1bHRCZWZvcmVNaWRkbGV3YXJlIiwiX2RlZmF1bHRBZnRlck1pZGRsZXdhcmUiLCJwYXJlbnRSZXNvdXJjZSIsIl9wcmVwYXJlVXJsIiwiaW5jb21wbGV0ZUNoaWxkcmVuIiwiX2kyIiwiZWFjaENodW5rIiwiX2kzIiwiX29uU3RhcnQiLCJfb25Db21wbGV0ZSIsIl90aGlzMiIsIl9vbkxvYWQiLCJfdGhpczMiLCJSZXNvdXJjZUxvYWRlciIsIkFwcExvYWRlclBsdWdpbiIsInNoYXJlZExvYWRlciIsIkxvYWRlclJlc291cmNlIiwiUGFydGljbGVCdWZmZXIiLCJkeW5hbWljUHJvcGVydHlGbGFncyIsImR5bmFtaWNQcm9wZXJ0aWVzIiwic3RhdGljUHJvcGVydGllcyIsImF0dHJpYnV0ZU5hbWUiLCJ1cGxvYWRGdW5jdGlvbiIsInN0YXRpY1N0cmlkZSIsInN0YXRpY0J1ZmZlciIsInN0YXRpY0RhdGEiLCJzdGF0aWNEYXRhVWludDMyIiwiZHluYW1pY1N0cmlkZSIsImR5bmFtaWNCdWZmZXIiLCJkeW5hbWljRGF0YSIsImR5bmFtaWNEYXRhVWludDMyIiwiaW5pdEJ1ZmZlcnMiLCJkeW5hbWljT2Zmc2V0Iiwib3V0QnVmZmVyIiwidG90YWxJbmRpY2VzIiwiY3JlYXRlSW5kaWNlc0ZvclF1YWRzIiwiZHluQnVmZmVyIiwic3RhdGljT2Zmc2V0IiwicHJvcGVydHkkMSIsInN0YXRCdWZmZXIiLCJwcm9wZXJ0eSQyIiwicHJvcGVydHkkMyIsInVwbG9hZER5bmFtaWMiLCJ1cGxvYWRTdGF0aWMiLCJQYXJ0aWNsZVJlbmRlcmVyIiwidXBsb2FkVmVydGljZXMiLCJ1cGxvYWRQb3NpdGlvbiIsInVwbG9hZFJvdGF0aW9uIiwidXBsb2FkVXZzIiwidXBsb2FkVGludCIsIl9tYXhTaXplIiwiX2JhdGNoU2l6ZSIsInRvdGFsQ2hpbGRyZW4iLCJfYnVmZmVycyIsImdlbmVyYXRlQnVmZmVycyIsInVDb2xvciIsInRpbnRSZ2IiLCJ1cGRhdGVTdGF0aWMiLCJfZ2VuZXJhdGVPbmVNb3JlQnVmZmVyIiwiYmlkIiwiX2J1ZmZlclVwZGF0ZUlEcyIsIl9wcm9wZXJ0aWVzIiwiaDAiLCJoMSIsInNwcml0ZVBvc2l0aW9uIiwic3ByaXRlUm90YXRpb24iLCJ0ZXh0dXJlVXZzIiwiR1JBUEhJQ1NfQ1VSVkVTIiwiYWRhcHRpdmUiLCJtaW5TZWdtZW50cyIsIm1heFNlZ21lbnRzIiwiX3NlZ21lbnRzQ291bnQiLCJkZWZhdWx0U2VnbWVudHMiLCJGaWxsU3R5bGUiLCJidWlsZFBvbHkiLCJidWlsZCIsImdyYXBoaWNzRGF0YSIsInRyaWFuZ3VsYXRlIiwiaG9sZUFycmF5IiwidmVydFBvcyIsImJ1aWxkQ2lyY2xlIiwiY2lyY2xlRGF0YSIsInRvdGFsU2VncyIsImJ1aWxkUmVjdGFuZ2xlIiwicmVjdERhdGEiLCJidWlsZFJvdW5kZWRSZWN0YW5nbGUiLCJycmVjdERhdGEiLCJxdWFkcmF0aWNCZXppZXJDdXJ2ZSIsInZlY1BvcyIsImdldFB0IiwicGVyYyIsImNwWCIsImNwWSIsInhhIiwieWEiLCJ4YiIsInliIiwiYnVpbGRMaW5lIiwiY2xvc2VkU2hhcGUiLCJidWlsZE5hdGl2ZUxpbmUiLCJjbG9zZVBvaW50RXBzIiwiY2xvc2VkUGF0aCIsIm1pZFBvaW50WCIsIm1pZFBvaW50WSIsImluZGV4Q291bnQiLCJpbmRleFN0YXJ0IiwicDJ4IiwicDJ5IiwicDN4IiwicDN5IiwicGVycHgiLCJwZXJweSIsInBlcnAyeCIsInBlcnAyeSIsInBlcnAzeCIsInBlcnAzeSIsImFsaWdubWVudCIsImJ1aWxkTm9uTmF0aXZlTGluZSIsIkFyY1V0aWxzIiwiY3VydmVUbyIsImNjIiwidHQiLCJrMSIsImsyIiwiajEiLCJqMiIsInN0YXJ0WCIsInN0YXJ0WSIsInN3ZWVwIiwidGhldGEyIiwiY1RoZXRhIiwic1RoZXRhIiwic2VnTWludXMiLCJCZXppZXJVdGlscyIsImN1cnZlTGVuZ3RoIiwiY3BYMiIsImNwWTIiLCJ0MyIsIm50IiwibnQyIiwibnQzIiwiZHQzIiwiUXVhZHJhdGljVXRpbHMiLCJiYSIsIkJhdGNoUGFydCIsImF0dHJpYlN0YXJ0IiwiZW5kQXR0cmliIiwiRklMTF9DT01NQU5EUyIsIkJBVENIX1BPT0wiLCJEUkFXX0NBTExfUE9PTCIsIkdyYXBoaWNzRGF0YSIsInRtcFBvaW50IiwidG1wQm91bmRzIiwiR3JhcGhpY3NHZW9tZXRyeSIsInRleHR1cmVJZHMiLCJiYXRjaERpcnR5IiwiY2FjaGVEaXJ0eSIsImNsZWFyRGlydHkiLCJzaGFwZUluZGV4IiwiYm91bmRzRGlydHkiLCJib3VuZHNQYWRkaW5nIiwiYmF0Y2hhYmxlIiwiaW5kaWNlc1VpbnQxNiIsImJhdGNoUGFydCIsImRyYXdTaGFwZSIsImRyYXdIb2xlIiwibGFzdFNoYXBlIiwiaGl0SG9sZSIsInVwZGF0ZUJhdGNoZXMiLCJ2YWxpZGF0ZUJhdGNoaW5nIiwiY3VycmVudFN0eWxlIiwidHJhbnNmb3JtUG9pbnRzIiwibmV4dFRleHR1cmUiLCJhdHRyaWJJbmRleCIsInByb2Nlc3NGaWxsIiwicHJvY2Vzc0xpbmUiLCJfY29tcGFyZVN0eWxlcyIsImFkZFV2cyIsImluZGV4JDEiLCJpc0JhdGNoYWJsZSIsInBhY2tCYXRjaGVzIiwic3R5bGVBIiwic3R5bGVCIiwiQkFUQ0hBQkxFX1NJWkUiLCJjdXJyZW50R3JvdXAiLCJMSU5FUyIsImFkZFRleHR1cmVJZHMiLCJwYWNrQXR0cmlidXRlcyIsImdsUG9pbnRzIiwiZjMyIiwidTMyIiwicHJvY2Vzc0hvbGVzIiwic2VxdWVuY2VCb3VuZHMiLCJjdXJNYXRyaXgiLCJuZXh0TWF0cml4IiwidXZzU3RhcnQiLCJhZGp1c3RVdnMiLCJMaW5lU3R5bGUiLCJERUZBVUxUX1NIQURFUlMiLCJfZmlsbFN0eWxlIiwiX2xpbmVTdHlsZSIsIl9ob2xlTW9kZSIsImJhdGNoVGludCIsIl90cmFuc2Zvcm1JRCIsImZpbmlzaFBvbHkiLCJfdGludCIsImxpbmVUZXh0dXJlU3R5bGUiLCJzdGFydFBvbHkiLCJfaW5pdEN1cnZlIiwiYXJjVG8iLCJyYWRpdXMkMSIsInlEaWZmIiwiYmVnaW5GaWxsIiwiYmVnaW5UZXh0dXJlRmlsbCIsImVuZEZpbGwiLCJkcmF3UmVjdCIsImRyYXdSb3VuZGVkUmVjdCIsImRyYXdDaXJjbGUiLCJkcmF3RWxsaXBzZSIsImRyYXdQb2x5Z29uIiwiZHJhd1N0YXIiLCJfcG9wdWxhdGVCYXRjaGVzIiwiX3JlbmRlckJhdGNoZWQiLCJfcmVuZGVyRGlyZWN0IiwiZ0kiLCJfYmF0Y2hSR0IiLCJjYWxjdWxhdGVWZXJ0aWNlcyIsImNhbGN1bGF0ZVRpbnRzIiwiX3Jlc29sdmVEaXJlY3RTaGFkZXIiLCJfcmVuZGVyRHJhd0NhbGxEaXJlY3QiLCJncm91cFRleHR1cmVDb3VudCIsIl9URU1QX1BPSU5UIiwidGludFJHQiIsInNldE1hdHJpeCIsImJlZ2luSG9sZSIsImVuZEhvbGUiLCJfYW5jaG9yIiwiX29uQW5jaG9yVXBkYXRlIiwiX2NhY2hlZFRpbnQiLCJ2ZXJ0ZXhUcmltbWVkRGF0YSIsIl90ZXh0dXJlSUQiLCJfdHJhbnNmb3JtVHJpbW1lZElEIiwiX3RleHR1cmVUcmltbWVkSUQiLCJfcm91bmRQaXhlbHMiLCJfb25UZXh0dXJlVXBkYXRlIiwiY2FsY3VsYXRlVHJpbW1lZFZlcnRpY2VzIiwiZGVzdHJveUJhc2VUZXh0dXJlIiwiVEVYVF9HUkFESUVOVCIsImRlZmF1bHRTdHlsZSIsImJyZWFrV29yZHMiLCJkcm9wU2hhZG93IiwiZHJvcFNoYWRvd0FscGhhIiwiZHJvcFNoYWRvd0FuZ2xlIiwiZHJvcFNoYWRvd0JsdXIiLCJkcm9wU2hhZG93Q29sb3IiLCJkcm9wU2hhZG93RGlzdGFuY2UiLCJmaWxsR3JhZGllbnRUeXBlIiwiZmlsbEdyYWRpZW50U3RvcHMiLCJmb250VmFyaWFudCIsIm1pdGVyTGltaXQiLCJ3aGl0ZVNwYWNlIiwiZ2VuZXJpY0ZvbnRGYW1pbGllcyIsInN0eWxlSUQiLCJkZWVwQ29weVByb3BlcnRpZXMiLCJnZXRTaW5nbGVDb2xvciIsImdldENvbG9yIiwicHJvcGVydHlPYmoiLCJjbG9uZWRQcm9wZXJ0aWVzIiwiX2JyZWFrV29yZHMiLCJfZHJvcFNoYWRvdyIsIl9kcm9wU2hhZG93QWxwaGEiLCJfZHJvcFNoYWRvd0FuZ2xlIiwiX2Ryb3BTaGFkb3dCbHVyIiwiX2Ryb3BTaGFkb3dDb2xvciIsIm91dHB1dENvbG9yIiwiX2Ryb3BTaGFkb3dEaXN0YW5jZSIsIl9maWxsIiwiX2ZpbGxHcmFkaWVudFR5cGUiLCJfZmlsbEdyYWRpZW50U3RvcHMiLCJhcmVBcnJheXNFcXVhbCIsIl9mb250RmFtaWx5IiwiX2ZvbnRTdHlsZSIsIl9mb250VmFyaWFudCIsIl9mb250V2VpZ2h0IiwiX2xpbmVIZWlnaHQiLCJfbGVhZGluZyIsIl9saW5lSm9pbiIsIl9taXRlckxpbWl0IiwiX3BhZGRpbmciLCJfc3Ryb2tlIiwiX3N0cm9rZVRoaWNrbmVzcyIsIl90ZXh0QmFzZWxpbmUiLCJfdHJpbSIsIl93aGl0ZVNwYWNlIiwiX3dvcmRXcmFwIiwiX3dvcmRXcmFwV2lkdGgiLCJ0b0ZvbnRTdHJpbmciLCJmb250U2l6ZVN0cmluZyIsImZvbnRGYW1pbGllcyIsIlRleHRNZXRyaWNzIiwiZm9udFByb3BlcnRpZXMiLCJtZWFzdXJlRm9udCIsImNvbGxhcHNlU3BhY2VzIiwiY29sbGFwc2VOZXdsaW5lcyIsImNhblByZXBlbmRTcGFjZXMiLCJpc05ld2xpbmUiLCJjdXJySXNCcmVha2luZ1NwYWNlIiwiaXNCcmVha2luZ1NwYWNlIiwibGFzdElzQnJlYWtpbmdTcGFjZSIsInRva2VuV2lkdGgiLCJnZXRGcm9tQ2FjaGUiLCJjYW5CcmVha1dvcmRzIiwiY2hhcmFjdGVycyIsIndvcmRXcmFwU3BsaXQiLCJuZXh0Q2hhciIsImxhc3RDaGFyIiwiY2FuQnJlYWtDaGFycyIsImNoYXJhY3RlcldpZHRoIiwiaXNMYXN0VG9rZW4iLCJuZXdMaW5lIiwiX25ld2xpbmVzIiwiX2JyZWFraW5nU3BhY2VzIiwiX2ZvbnRzIiwibWV0cmljc1N0cmluZyIsIk1FVFJJQ1NfU1RSSU5HIiwiQkFTRUxJTkVfU1lNQk9MIiwiQkFTRUxJTkVfTVVMVElQTElFUiIsImNsZWFyTWV0cmljcyIsImRlZmF1bHREZXN0cm95T3B0aW9ucyIsIm93bkNhbnZhcyIsIl9vd25DYW52YXMiLCJfcmVzb2x1dGlvbiIsIl9hdXRvUmVzb2x1dGlvbiIsIl9zdHlsZSIsIl9zdHlsZUxpc3RlbmVyIiwibG9jYWxTdHlsZUlEIiwicmVzcGVjdERpcnR5IiwibWVhc3VyZWQiLCJwYXNzZXNDb3VudCIsImlzU2hhZG93UGFzcyIsImRzT2Zmc2V0VGV4dCIsImRzT2Zmc2V0U2hhZG93IiwiX2dlbmVyYXRlRmlsbFN0eWxlIiwiZHJhd0xldHRlclNwYWNpbmciLCJpc1N0cm9rZSIsImN1cnJlbnRQb3NpdGlvbiIsInN0cmluZ0FycmF5IiwiY3VycmVudFdpZHRoIiwiY3VycmVudENoYXIiLCJ0cmltQ2FudmFzIiwiX29uU3R5bGVDaGFuZ2UiLCJkcm9wU2hhZG93Q29ycmVjdGlvbiIsImxlbmd0aFBsdXMxIiwiY3JlYXRlTGluZWFyR3JhZGllbnQiLCJsYXN0SXRlcmF0aW9uU3RvcCIsImdyYWRTdG9wTGluZUhlaWdodCIsInRoaXNMaW5lVG9wIiwiZ2xvYmFsU3RvcCIsImNsYW1wZWRTdG9wIiwiYWRkQ29sb3JTdG9wIiwidG90YWxJdGVyYXRpb25zIiwiY3VycmVudEl0ZXJhdGlvbiIsIlVQTE9BRFNfUEVSX0ZSQU1FIiwiQ291bnRMaW1pdGVyIiwibWF4SXRlbXNQZXJGcmFtZSIsIml0ZW1zTGVmdCIsImJlZ2luRnJhbWUiLCJhbGxvd2VkVG9VcGxvYWQiLCJCYXNlUHJlcGFyZSIsImxpbWl0ZXIiLCJ1cGxvYWRIb29rSGVscGVyIiwiYWRkSG9va3MiLCJ1cGxvYWRIb29rcyIsImNvbXBsZXRlcyIsInRpY2tpbmciLCJkZWxheWVkVGljayIsInByZXBhcmVJdGVtcyIsInJlZ2lzdGVyRmluZEhvb2siLCJmaW5kVGV4dCIsImZpbmRUZXh0U3R5bGUiLCJmaW5kTXVsdGlwbGVCYXNlVGV4dHVyZXMiLCJmaW5kQmFzZVRleHR1cmUiLCJmaW5kVGV4dHVyZSIsInJlZ2lzdGVyVXBsb2FkSG9vayIsImRyYXdUZXh0IiwiY2FsY3VsYXRlVGV4dFN0eWxlIiwiX3RleHR1cmVzIiwiaGVscGVyIiwiVVRJTElUWSIsInVwbG9hZGVkIiwibGVuJDEiLCJhZGRIb29rIiwidXBsb2FkSG9vayIsIlByZXBhcmUiLCJmaW5kR3JhcGhpY3MiLCJ1cGxvYWRCYXNlVGV4dHVyZXMiLCJ1cGxvYWRHcmFwaGljcyIsIlRpbWVMaW1pdGVyIiwibWF4TWlsbGlzZWNvbmRzIiwiZnJhbWVTdGFydCIsIlNwcml0ZXNoZWV0IiwicmVzb2x1dGlvbkZpbGVuYW1lIiwiX3VwZGF0ZVJlc29sdXRpb24iLCJfZnJhbWVzIiwiX2ZyYW1lS2V5cyIsIl9iYXRjaEluZGV4IiwiX2NhbGxiYWNrIiwiQkFUQ0hfU0laRSIsIl9wcm9jZXNzRnJhbWVzIiwiX3Byb2Nlc3NBbmltYXRpb25zIiwiX3BhcnNlQ29tcGxldGUiLCJfbmV4dEJhdGNoIiwiaW5pdGlhbEZyYW1lSW5kZXgiLCJtYXhGcmFtZXMiLCJhbmltTmFtZSIsIlNwcml0ZXNoZWV0TG9hZGVyIiwiaW1hZ2VSZXNvdXJjZU5hbWUiLCJsb2FkT3B0aW9ucyIsImltYWdlTWV0YWRhdGEiLCJnZXRSZXNvdXJjZVBhdGgiLCJzcHJpdGVzaGVldCIsIlRpbGluZ1Nwcml0ZVJlbmRlcmVyIiwic2ltcGxlU2hhZGVyIiwidHMiLCJ1dlJlc3BlY3RBbmNob3IiLCJiYXNlVGV4IiwidGlsZVRyYW5zZm9ybSIsInVNYXBDb29yZCIsInVUcmFuc2Zvcm0iLCJfdGV4dFdpZHRoIiwiX3RleHRIZWlnaHQiLCJfZ2x5cGhzIiwiX21heExpbmVIZWlnaHQiLCJtYXhMaW5lSGVpZ2h0IiwidGV4dEhlaWdodCIsImZvbnRzIiwicHJldkNoYXJDb2RlIiwibGFzdExpbmVXaWR0aCIsImxhc3RCcmVha1BvcyIsImxhc3RCcmVha1dpZHRoIiwic3BhY2VzUmVtb3ZlZCIsImNoYXJEYXRhIiwibGluZUFsaWduT2Zmc2V0cyIsImFsaWduT2Zmc2V0IiwibGVuQ2hhcnMiLCJyZWdpc3RlckZvbnQiLCJwYWdlcyIsInBhZ2VzVGV4dHVyZXMiLCJwYWdlIiwidGV4dHVyZVJlY3QiLCJCaXRtYXBGb250TG9hZGVyIiwiZGlybmFtZSIsInhtbFVybCIsInBhZ2VGaWxlIiwiYml0bWFwUmVzb3VyY2UiLCJDb2xvck1hdHJpeEZpbHRlciIsInVBbHBoYSIsIl9sb2FkTWF0cml4IiwibmV3TWF0cml4IiwiX211bHRpcGx5IiwiX2NvbG9yTWF0cml4IiwiYnJpZ2h0bmVzcyIsImdyZXlzY2FsZSIsImJsYWNrQW5kV2hpdGUiLCJjb3NSIiwic2luUiIsInNxclciLCJjb250cmFzdCIsIm5lZ2F0aXZlIiwic2VwaWEiLCJ0ZWNobmljb2xvciIsInBvbGFyb2lkIiwidG9CR1IiLCJrb2RhY2hyb21lIiwiYnJvd25pIiwidmludGFnZSIsImNvbG9yVG9uZSIsImRlc2F0dXJhdGlvbiIsInRvbmVkIiwibGlnaHRDb2xvciIsImRhcmtDb2xvciIsImxSIiwibEciLCJsQiIsImRSIiwiZEciLCJkQiIsIm5pZ2h0IiwicHJlZGF0b3IiLCJsc2QiLCJncmF5c2NhbGUiLCJfY2FjaGVBc0JpdG1hcCIsIl9jYWNoZURhdGEiLCJDYWNoZURhdGEiLCJ0ZXh0dXJlQ2FjaGVJZCIsIm9yaWdpbmFsUmVuZGVyIiwib3JpZ2luYWxSZW5kZXJDYW52YXMiLCJvcmlnaW5hbENhbGN1bGF0ZUJvdW5kcyIsIm9yaWdpbmFsR2V0TG9jYWxCb3VuZHMiLCJvcmlnaW5hbFVwZGF0ZVRyYW5zZm9ybSIsIm9yaWdpbmFsSGl0VGVzdCIsIm9yaWdpbmFsRGVzdHJveSIsIm9yaWdpbmFsTWFzayIsIm9yaWdpbmFsRmlsdGVyQXJlYSIsImNhY2hlQXNCaXRtYXAiLCJvcmlnaW5hbENvbnRhaW5zUG9pbnQiLCJfcmVuZGVyQ2FjaGVkIiwiX3JlbmRlckNhY2hlZENhbnZhcyIsIl9jYWNoZUFzQml0bWFwRGVzdHJveSIsIl9kZXN0cm95Q2FjaGVkRGlzcGxheU9iamVjdCIsIl9pbml0Q2FjaGVkRGlzcGxheU9iamVjdCIsImNhY2hlQWxwaGEiLCJjYWNoZWRSZW5kZXJUZXh0dXJlIiwiY2FjaGVkU291cmNlRnJhbWUiLCJjYWNoZWRQcm9qZWN0aW9uVHJhbnNmb3JtIiwiX2NhbGN1bGF0ZUNhY2hlZEJvdW5kcyIsIl9nZXRDYWNoZWRMb2NhbEJvdW5kcyIsImNhY2hlZFNwcml0ZSIsIl9pbml0Q2FjaGVkRGlzcGxheU9iamVjdENhbnZhcyIsIl9yZW5kZXJDYW52YXMiLCJjYWNoZWRSZW5kZXJUYXJnZXQiLCJfcHJvalRyYW5zZm9ybSIsImdldEdsb2JhbFBvc2l0aW9uIiwiTWVzaEJhdGNoVXZzIiwiX2J1ZmZlclVwZGF0ZUlkIiwiX3RleHR1cmVVcGRhdGVJZCIsInRlbXBQb2x5Z29uIiwidmVydGV4RGlydHkiLCJiYXRjaFV2cyIsInZlcnRpY2VzQnVmZmVyIiwiX3JlbmRlclRvQmF0Y2giLCJfcmVuZGVyRGVmYXVsdCIsImNhbGN1bGF0ZVV2cyIsInZlcnRleERpcnR5SWQiLCJnZW9tVXZzIiwiaW5kMCIsImluZDEiLCJpbmQyIl0sIm1hcHBpbmdzIjoiNkJBQUEsRUFBUSxPQUNSLEVBQVEsS0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE1BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE1BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLE1BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE1BQ1IsRUFBUSxPQUNSLEVBQVEsS0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxLQUNSLEVBQVEsT0FDUixFQUFRLE1BQ1IsRUFBUSxNQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLEtBQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxNQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxNQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLE1BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxNQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsS0FDUixFQUFRLE1BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE1BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLE9BQ1IsRUFBUSxNQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxNQUNSLEVBQVEsTUFDUixFQUFRLE9BQ1IsRUFBUSxNQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLE1BQ1IsSUFBSUEsRUFBTyxFQUFRLE9BRW5CQyxFQUFPQyxRQUFVRixHLGdCQ2pOakIsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsSUFBSUEsRUFBTyxFQUFRLE9BRW5CQyxFQUFPQyxRQUFVRixHLFVDTGpCQyxFQUFPQyxRQUFVLFNBQVVDLEdBQ3pCLEdBQWlCLG1C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LE1BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLFEsZ0JDMUJSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxNQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLFEsZ0JDUFIsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxRLGdCQ0hSLEVBQVEsT0FDUixJQUFJbEMsRUFBUyxFQUFRLE9BRXJCOUIsRUFBT0MsUUFBVTZCLEcsZ0JDSGpCLEVBQVEsUSxnQkNBUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLE9BQ1IsRUFBUSxLQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLEtBQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE1BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsTUFDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxNQUNSLEVBQVEsT0FDUixFQUFRLFEsZ0JDM0JSLEVBQVEsT0FDUixFQUFRLFEsZ0JDQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLFEsZ0JDSlIsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE1BQ1IsRUFBUSxRLGdCQ05SLEVBQVEsUSxnQkNBUixFQUFRLFEsZ0JDQVIsRUFBUSxNQUNSLEVBQVEsT0FDUixFQUFRLE8sZUNGUixFQUFRLE9BQ1IsRUFBUSxRLGdCQ0RSLEVBQVEsUSxnQkNDUixFQUFRLE8sZ0JDRFIsRUFBUSxPQUNSLEVBQVEsUSxnQkNEUixFQUFRLFEsZUNBUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNSLEVBQVEsT0FDUixFQUFRLE9BQ1IsRUFBUSxPQUNS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LE1BQ1IsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsT0FBUSxNQUNSLFVBQVcsTUFDWCxPQUFRLE1BQ1IsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsYUFBYyxNQUNkLFVBQVcsTUFDWCxhQUFjLE1BQ2QsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsT0FBUSxNQUNSLFVBQVcsTUFDWCxPQUFRLE1BQ1IsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsYUFBYyxLQUNkLGdCQUFpQixLQUNqQixPQUFRLE1BQ1IsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsT0FBUSxNQUNSLFVBQVcsTUFDWCxPQUFRLE1BQ1IsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsVUFBVyxNQUNYLGFBQWMsTUFDZCxPQUFRLE1BQ1IsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsT0FBUSxNQUNSLFVBQVcsTUFDWCxhQUFjLE1BQ2QsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsT0FBUSxNQUNSLFVBQVcsTUFDWCxPQUFRLE1BQ1IsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsT0FBUSxNQUNSLFVBQVcsTUFDWCxPQUFRLE1BQ1IsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsT0FBUSxNQUNSLFVBQVcsTUFDWCxPQUFRLE1BQ1IsVUFBVyxNQUNYLE9BQVEsS0FDUixVQUFXLEtBQ1gsT0FBUSxLQUNSLFVBQVcsS0FDWCxPQUFRLE1BQ1IsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsT0FBUSxNQUNSLFVBQVcsTUFDWCxPQUFRLE1BQ1IsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsT0FBUSxNQUNSLFVBQVcsTUFDWCxPQUFRLE1BQ1IsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsT0FBUSxNQUNSLFVBQVcsTUFDWCxhQUFjLE1BQ2QsVUFBVyxNQUNYLE9BQVEsTUFDUixVQUFXLE1BQ1gsT0FBUSxNQUNSLFVBQVcsTUFDWCxP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LElBQzFFLE9BQVEsSUFBTSxPQUFRLElBQUssT0FBUSxJQUFLLE9BQVEsSUFDaEQsT0FBUSxJQUFNLE9BQVEsSUFBSyxPQUFRLElBQUssT0FBUSxJQUNoRCxPQUFRLElBQU0sT0FBUSxJQUFLLE9BQVEsSUFDbkMsT0FBUSxLQUFNLE9BQVEsS0FDdEIsT0FBUSxLQUFNLE9BQVEsS0FDdEIsT0FBUSxLQUVSLE9BQVUsSUFBTSxPQUFVLElBQUssT0FBVSxJQUN6QyxPQUFVLElBQU0sT0FBVSxJQUFLLE9BQVUsSUFDekMsT0FBVSxJQUFNLE9BQVUsSUFBSyxPQUFVLElBQUssT0FBVSxJQUN4RCxPQUFVLElBQU0sT0FBVSxJQUFLLE9BQVUsSUFBSyxPQUFVLElBQ3hELE9BQVUsSUFBTSxPQUFVLElBQUssT0FBVSxJQUFLLE9BQVUsSUFDeEQsT0FBVSxJQUFNLE9BQVUsSUFBSyxPQUFVLElBQUssT0FBVSxJQUFLLE9BQVUsSUFDdkUsT0FBVSxJQUFNLE9BQVUsSUFBSyxPQUFVLElBQUssT0FBVSxJQUFLLE9BQVUsSUFDdkUsT0FBVSxJQUFNLE9BQVUsSUFBSyxPQUFVLElBQUssT0FBVSxJQUN4RCxPQUFVLElBQU0sT0FBVSxJQUFLLE9BQVUsSUFBSyxPQUFVLElBQ3hELE9BQVUsSUFBTSxPQUFVLElBQUssT0FBVSxJQUFLLE9BQVUsSUFDeEQsT0FBVSxJQUFNLE9BQVUsSUFBSyxPQUFVLElBQUssT0FBVSxJQUFLLE9BQVUsSUFDdkUsT0FBVSxJQUFNLE9BQVUsSUFBSyxPQUFVLElBQUssT0FBVSxJQUFLLE9BQVUsSUFDdkUsT0FBVSxJQUFNLE9BQVUsSUFDMUIsT0FBVSxJQUFNLE9BQVUsSUFBSyxPQUFVLElBQ3pDLE9BQVUsSUFBTSxPQUFVLElBQUssT0FBVSxJQUFLLE9BQVUsSUFBSyxPQUFVLElBQ3ZFLE9BQVUsSUFBTSxPQUFVLElBQUssT0FBVSxJQUFLLE9BQVUsSUFBSyxPQUFVLElBQ3ZFLE9BQVUsSUFBTSxPQUFVLElBQUssT0FBVSxJQUFLLE9BQVUsSUFDeEQsT0FBVSxJQUFNLE9BQVUsSUFBSyxP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SzZCLEVBQUUsR0FBTzdCLEVBQUUsR0FBSzZCLEVBQUUsSUFBUTdCLEVBQUUsR0FBSzZCLEVBQUUsSUFDcEVvNEYsRUFBSSxHQUFNajZGLEVBQUUsR0FBSzZCLEVBQUUsR0FBTzdCLEVBQUUsR0FBSzZCLEVBQUUsR0FBTzdCLEVBQUUsR0FBSzZCLEVBQUUsSUFBUTdCLEVBQUUsR0FBSzZCLEVBQUUsSUFDcEVvNEYsRUFBSSxHQUFNajZGLEVBQUUsR0FBSzZCLEVBQUUsR0FBTzdCLEVBQUUsR0FBSzZCLEVBQUUsR0FBTzdCLEVBQUUsR0FBSzZCLEVBQUUsSUFBUTdCLEVBQUUsR0FBSzZCLEVBQUUsSUFDcEVvNEYsRUFBSSxHQUFNajZGLEVBQUUsR0FBSzZCLEVBQUUsR0FBTzdCLEVBQUUsR0FBSzZCLEVBQUUsR0FBTzdCLEVBQUUsR0FBSzZCLEVBQUUsSUFBUTdCLEVBQUUsR0FBSzZCLEVBQUUsSUFBTzdCLEVBQUUsR0FHN0VpNkYsRUFBSSxJQUFPajZGLEVBQUUsSUFBTTZCLEVBQUUsR0FBTzdCLEVBQUUsSUFBTTZCLEVBQUUsR0FBTzdCLEVBQUUsSUFBTTZCLEVBQUUsSUFBUTdCLEVBQUUsSUFBTTZCLEVBQUUsSUFDekVvNEYsRUFBSSxJQUFPajZGLEVBQUUsSUFBTTZCLEVBQUUsR0FBTzdCLEVBQUUsSUFBTTZCLEVBQUUsR0FBTzdCLEVBQUUsSUFBTTZCLEVBQUUsSUFBUTdCLEVBQUUsSUFBTTZCLEVBQUUsSUFDekVvNEYsRUFBSSxJQUFPajZGLEVBQUUsSUFBTTZCLEVBQUUsR0FBTzdCLEVBQUUsSUFBTTZCLEVBQUUsR0FBTzdCLEVBQUUsSUFBTTZCLEVBQUUsSUFBUTdCLEVBQUUsSUFBTTZCLEVBQUUsSUFDekVvNEYsRUFBSSxJQUFPajZGLEVBQUUsSUFBTTZCLEVBQUUsR0FBTzdCLEVBQUUsSUFBTTZCLEVBQUUsR0FBTzdCLEVBQUUsSUFBTTZCLEVBQUUsSUFBUTdCLEVBQUUsSUFBTTZCLEVBQUUsSUFDekVvNEYsRUFBSSxJQUFPajZGLEVBQUUsSUFBTTZCLEVBQUUsR0FBTzdCLEVBQUUsSUFB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Y0FBZSxRQUFTLFFBQVMsUUFDOUUsUUFBUyxRQUFTLFdBQVksUUFBUyxRQUFTLFdBQVksUUFBUyxRQUFTLFFBQzlFLFFBQVMsUUFBUyxRQUFTLFFBQVMsUUFBUyxRQUFTLFFBQVMsUUFBUyxRQUFTLFFBQ2pGLFFBQVMsUUFBUyxRQUFTLFFBQVMsUUFBUyxRQUFTLFFBQVMsV0FBWSxRQUFTLFFBQ3BGLFFBQVMsUUFBUyxRQUFTLFdBQVksUUFBUyxRQUFRLFdBQVksUUFBUyxXQUM3RSxRQUFTLFFBQVMsUUFBUyxRQUFTLFFBQVMsUUFBUyxRQUFTLFFBQVMsUUFDeEUsYUFBYyxRQUFTLFFBQVMsUUFBUyxRQUFTLFFBQVMsUUFBUyxTQUFVLFFBQzlFLFFBQVMsV0FBWSxTQUFVLFFBQVMsU0FBVSxjQUFlLFNBQVUsV0FDM0UsUUFBUyxRQUFTLGFBQWMsUUFBUyxRQUFTLGNBQWUsUUFBUyxXQUMxRSxXQUFZLFlBQVl6bmQsU0FBUWd0RixJQUM3QixTQUFRLEtBQWlCQSxRQUc3QixNQUFTeEYsT0FBTywyQkFFaEIsY0FBYSxtQkFFYixVQUFPLGVBRVAsSUFBSSxXQUVKLElBQUksR0FFSixJQUFJLEkiLCJmaWxlIjoiYmlnLmpzIiwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zeW1ib2wnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3ltYm9sLmFzeW5jLWl0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN5bWJvbC5kZXNjcmlwdGlvbicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zeW1ib2wuaGFzLWluc3RhbmNlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN5bWJvbC5pcy1jb25jYXQtc3ByZWFkYWJsZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zeW1ib2wuaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3ltYm9sLm1hdGNoJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN5bWJvbC5tYXRjaC1hbGwnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3ltYm9sLnJlcGxhY2UnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3ltYm9sLnNlYXJjaCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zeW1ib2wuc3BlY2llcycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zeW1ib2wuc3BsaXQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3ltYm9sLnRvLXByaW1pdGl2ZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zeW1ib2wudG8tc3RyaW5nLXRhZycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zeW1ib2wudW5zY29wYWJsZXMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMub2JqZWN0LmFzc2lnbicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5vYmplY3QuY3JlYXRlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm9iamVjdC5kZWZpbmUtcHJvcGVydHknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMub2JqZWN0LmRlZmluZS1wcm9wZXJ0aWVzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm9iamVjdC5lbnRyaWVzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm9iamVjdC5mcmVlemUnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMub2JqZWN0LmZyb20tZW50cmllcycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3JzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LW5hbWVzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm9iamVjdC5nZXQtcHJvdG90eXBlLW9mJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm9iamVjdC5pcycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5vYmplY3QuaXMtZXh0ZW5zaWJsZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5vYmplY3QuaXMtZnJvemVuJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm9iamVjdC5pcy1zZWFsZWQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMub2JqZWN0LmtleXMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMub2JqZWN0LnByZXZlbnQtZXh0ZW5zaW9ucycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5vYmplY3Quc2VhbCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5vYmplY3Quc2V0LXByb3RvdHlwZS1vZicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5vYmplY3QudmFsdWVzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMub2JqZWN0LmRlZmluZS1nZXR0ZXInKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMub2JqZWN0LmRlZmluZS1zZXR0ZXInKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMub2JqZWN0Lmxvb2t1cC1nZXR0ZXInKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMub2JqZWN0Lmxvb2t1cC1zZXR0ZXInKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuZnVuY3Rpb24uYmluZCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmZ1bmN0aW9uLmhhcy1pbnN0YW5jZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5nbG9iYWwtdGhpcycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5mcm9tJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmFycmF5LmlzLWFycmF5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmFycmF5Lm9mJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5jb3B5LXdpdGhpbicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5ldmVyeScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5maWxsJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmFycmF5LmZpbHRlcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5maW5kJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmFycmF5LmZpbmQtaW5kZXgnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuYXJyYXkuZmxhdCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5mbGF0LW1hcCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5mb3ItZWFjaCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5pbmNsdWRlcycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5pbmRleC1vZicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5qb2luJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmFycmF5Lmxhc3QtaW5kZXgtb2YnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuYXJyYXkubWFwJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmFycmF5LnJlZHVjZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5yZWR1Y2UtcmlnaHQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuYXJyYXkucmV2ZXJzZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5zbGljZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5zb21lJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmFycmF5LnNvcnQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmFycmF5LnNwZWNpZXMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuYXJyYXkudW5zY29wYWJsZXMuZmxhdCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS51bnNjb3BhYmxlcy5mbGF0LW1hcCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5pdGVyYXRvcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zdHJpbmcuZnJvbS1jb2RlLXBvaW50Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN0cmluZy5yYXcnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3RyaW5nLmNvZGUtcG9pbnQtYXQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3RyaW5nLmVuZHMtd2l0aCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zdHJpbmcuaW5jbHVkZXMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3RyaW5nLm1hdGNoJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN0cmluZy5tYXRjaC1hbGwnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3RyaW5nLnBhZC1lbmQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3RyaW5nLnBhZC1zdGFydCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zdHJpbmcucmVwZWF0Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN0cmluZy5zZWFyY2gnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3RyaW5nLnNwbGl0Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN0cmluZy5zdGFydHMtd2l0aCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zdHJpbmcudHJpbScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zdHJpbmcudHJpbS1zdGFydCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zdHJpbmcudHJpbS1lbmQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3RyaW5nLml0ZXJhdG9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN0cmluZy5hbmNob3InKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3RyaW5nLmJpZycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zdHJpbmcuYmxpbmsnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3RyaW5nLmJvbGQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3RyaW5nLmZpeGVkJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN0cmluZy5mb250Y29sb3InKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3RyaW5nLmZvbnRzaXplJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN0cmluZy5pdGFsaWNzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN0cmluZy5saW5rJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN0cmluZy5zbWFsbCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zdHJpbmcuc3RyaWtlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN0cmluZy5zdWInKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc3RyaW5nLnN1cCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5yZWdleHAuY29uc3RydWN0b3InKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucmVnZXhwLmZsYWdzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnJlZ2V4cC5zdGlja3knKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucmVnZXhwLnRlc3QnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucmVnZXhwLnRvLXN0cmluZycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5wYXJzZS1pbnQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucGFyc2UtZmxvYXQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm51bWJlci5lcHNpbG9uJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm51bWJlci5pcy1maW5pdGUnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMubnVtYmVyLmlzLWludGVnZXInKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMubnVtYmVyLmlzLW5hbicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5udW1iZXIuaXMtc2FmZS1pbnRlZ2VyJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm51bWJlci5tYXgtc2FmZS1pbnRlZ2VyJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm51bWJlci5taW4tc2FmZS1pbnRlZ2VyJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm51bWJlci5wYXJzZS1mbG9hdCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5udW1iZXIucGFyc2UtaW50Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm51bWJlci50by1maXhlZCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5udW1iZXIudG8tcHJlY2lzaW9uJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm1hdGguYWNvc2gnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMubWF0aC5hc2luaCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5tYXRoLmF0YW5oJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm1hdGguY2JydCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5tYXRoLmNsejMyJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm1hdGguY29zaCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5tYXRoLmV4cG0xJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm1hdGguZnJvdW5kJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm1hdGguaHlwb3QnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMubWF0aC5pbXVsJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm1hdGgubG9nMTAnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMubWF0aC5sb2cxcCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5tYXRoLmxvZzInKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMubWF0aC5zaWduJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm1hdGguc2luaCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5tYXRoLnRhbmgnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMubWF0aC50by1zdHJpbmctdGFnJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm1hdGgudHJ1bmMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuZGF0ZS5ub3cnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuZGF0ZS50by1qc29uJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmRhdGUudG8taXNvLXN0cmluZycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5kYXRlLnRvLXN0cmluZycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5kYXRlLnRvLXByaW1pdGl2ZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5qc29uLnN0cmluZ2lmeScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5qc29uLnRvLXN0cmluZy10YWcnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucHJvbWlzZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5wcm9taXNlLmFsbC1zZXR0bGVkJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnByb21pc2UuZmluYWxseScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5tYXAnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc2V0Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLndlYWstbWFwJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLndlYWstc2V0Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmFycmF5LWJ1ZmZlci5jb25zdHJ1Y3RvcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS1idWZmZXIuaXMtdmlldycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS1idWZmZXIuc2xpY2UnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMuZGF0YS12aWV3Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmludDgtYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMudHlwZWQtYXJyYXkudWludDgtYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMudHlwZWQtYXJyYXkudWludDgtY2xhbXBlZC1hcnJheScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy50eXBlZC1hcnJheS5pbnQxNi1hcnJheScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy50eXBlZC1hcnJheS51aW50MTYtYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuaW50MzItYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMudHlwZWQtYXJyYXkudWludDMyLWFycmF5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZsb2F0MzItYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmxvYXQ2NC1hcnJheScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy50eXBlZC1hcnJheS5mcm9tJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnR5cGVkLWFycmF5Lm9mJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmNvcHktd2l0aGluJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmV2ZXJ5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZpbGwnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmlsdGVyJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LmZpbmQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuZmluZC1pbmRleCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy50eXBlZC1hcnJheS5mb3ItZWFjaCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy50eXBlZC1hcnJheS5pbmNsdWRlcycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy50eXBlZC1hcnJheS5pbmRleC1vZicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy50eXBlZC1hcnJheS5pdGVyYXRvcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy50eXBlZC1hcnJheS5qb2luJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnR5cGVkLWFycmF5Lmxhc3QtaW5kZXgtb2YnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMudHlwZWQtYXJyYXkubWFwJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnJlZHVjZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy50eXBlZC1hcnJheS5yZWR1Y2UtcmlnaHQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMudHlwZWQtYXJyYXkucmV2ZXJzZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy50eXBlZC1hcnJheS5zZXQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuc2xpY2UnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMudHlwZWQtYXJyYXkuc29tZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy50eXBlZC1hcnJheS5zb3J0Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnN1YmFycmF5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnR5cGVkLWFycmF5LnRvLWxvY2FsZS1zdHJpbmcnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMudHlwZWQtYXJyYXkudG8tc3RyaW5nJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnJlZmxlY3QuYXBwbHknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucmVmbGVjdC5jb25zdHJ1Y3QnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucmVmbGVjdC5kZWZpbmUtcHJvcGVydHknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucmVmbGVjdC5kZWxldGUtcHJvcGVydHknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucmVmbGVjdC5nZXQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucmVmbGVjdC5nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucmVmbGVjdC5nZXQtcHJvdG90eXBlLW9mJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnJlZmxlY3QuaGFzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnJlZmxlY3QuaXMtZXh0ZW5zaWJsZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5yZWZsZWN0Lm93bi1rZXlzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnJlZmxlY3QucHJldmVudC1leHRlbnNpb25zJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnJlZmxlY3Quc2V0Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnJlZmxlY3Quc2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGg7XG4iLCJyZXF1aXJlKCcuL2VzJyk7XG5yZXF1aXJlKCcuL3Byb3Bvc2FscycpO1xucmVxdWlyZSgnLi93ZWInKTtcbnZhciBwYXRoID0gcmVxdWlyZSgnLi9pbnRlcm5hbHMvcGF0aCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGg7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAodHlwZW9mIGl0ICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoU3RyaW5nKGl0KSArICcgaXMgbm90IGEgZnVuY3Rpb24nKTtcbiAgfSByZXR1cm4gaXQ7XG59O1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSAmJiBpdCAhPT0gbnVsbCkge1xuICAgIHRocm93IFR5cGVFcnJvcihcIkNhbid0IHNldCBcIiArIFN0cmluZyhpdCkgKyAnIGFzIGEgcHJvdG90eXBlJyk7XG4gIH0gcmV0dXJuIGl0O1xufTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcblxudmFyIFVOU0NPUEFCTEVTID0gd2VsbEtub3duU3ltYm9sKCd1bnNjb3BhYmxlcycpO1xudmFyIEFycmF5UHJvdG90eXBlID0gQXJyYXkucHJvdG90eXBlO1xuXG4vLyBBcnJheS5wcm90b3R5cGVbQEB1bnNjb3BhYmxlc11cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5pZiAoQXJyYXlQcm90b3R5cGVbVU5TQ09QQUJMRVNdID09IHVuZGVmaW5lZCkge1xuICBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKEFycmF5UHJvdG90eXBlLCBVTlNDT1BBQkxFUywge1xuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICB2YWx1ZTogY3JlYXRlKG51bGwpXG4gIH0pO1xufVxuXG4vLyBhZGQgYSBrZXkgdG8gQXJyYXkucHJvdG90eXBlW0BAdW5zY29wYWJsZXNdXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgQXJyYXlQcm90b3R5cGVbVU5TQ09QQUJMRVNdW2tleV0gPSB0cnVlO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjaGFyQXQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLW11bHRpYnl0ZScpLmNoYXJBdDtcblxuLy8gYEFkdmFuY2VTdHJpbmdJbmRleGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hZHZhbmNlc3RyaW5naW5kZXhcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKFMsIGluZGV4LCB1bmljb2RlKSB7XG4gIHJldHVybiBpbmRleCArICh1bmljb2RlID8gY2hhckF0KFMsIGluZGV4KS5sZW5ndGggOiAxKTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwgQ29uc3RydWN0b3IsIG5hbWUpIHtcbiAgaWYgKCEoaXQgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ0luY29ycmVjdCAnICsgKG5hbWUgPyBuYW1lICsgJyAnIDogJycpICsgJ2ludm9jYXRpb24nKTtcbiAgfSByZXR1cm4gaXQ7XG59O1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkge1xuICAgIHRocm93IFR5cGVFcnJvcihTdHJpbmcoaXQpICsgJyBpcyBub3QgYW4gb2JqZWN0Jyk7XG4gIH0gcmV0dXJuIGl0O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gdHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgRGF0YVZpZXcgIT09ICd1bmRlZmluZWQnO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIE5BVElWRV9BUlJBWV9CVUZGRVIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLW5hdGl2ZScpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xuXG52YXIgSW50OEFycmF5ID0gZ2xvYmFsLkludDhBcnJheTtcbnZhciBJbnQ4QXJyYXlQcm90b3R5cGUgPSBJbnQ4QXJyYXkgJiYgSW50OEFycmF5LnByb3RvdHlwZTtcbnZhciBVaW50OENsYW1wZWRBcnJheSA9IGdsb2JhbC5VaW50OENsYW1wZWRBcnJheTtcbnZhciBVaW50OENsYW1wZWRBcnJheVByb3RvdHlwZSA9IFVpbnQ4Q2xhbXBlZEFycmF5ICYmIFVpbnQ4Q2xhbXBlZEFycmF5LnByb3RvdHlwZTtcbnZhciBUeXBlZEFycmF5ID0gSW50OEFycmF5ICYmIGdldFByb3RvdHlwZU9mKEludDhBcnJheSk7XG52YXIgVHlwZWRBcnJheVByb3RvdHlwZSA9IEludDhBcnJheVByb3RvdHlwZSAmJiBnZXRQcm90b3R5cGVPZihJbnQ4QXJyYXlQcm90b3R5cGUpO1xudmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG52YXIgaXNQcm90b3R5cGVPZiA9IE9iamVjdFByb3RvdHlwZS5pc1Byb3RvdHlwZU9mO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcbnZhciBUWVBFRF9BUlJBWV9UQUcgPSB1aWQoJ1RZUEVEX0FSUkFZX1RBRycpO1xuLy8gRml4aW5nIG5hdGl2ZSB0eXBlZCBhcnJheXMgaW4gT3BlcmEgUHJlc3RvIGNyYXNoZXMgdGhlIGJyb3dzZXIsIHNlZSAjNTk1XG52YXIgTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyA9IE5BVElWRV9BUlJBWV9CVUZGRVIgJiYgISFzZXRQcm90b3R5cGVPZiAmJiBjbGFzc29mKGdsb2JhbC5vcGVyYSkgIT09ICdPcGVyYSc7XG52YXIgVFlQRURfQVJSQVlfVEFHX1JFUUlSRUQgPSBmYWxzZTtcbnZhciBOQU1FO1xuXG52YXIgVHlwZWRBcnJheUNvbnN0cnVjdG9yc0xpc3QgPSB7XG4gIEludDhBcnJheTogMSxcbiAgVWludDhBcnJheTogMSxcbiAgVWludDhDbGFtcGVkQXJyYXk6IDEsXG4gIEludDE2QXJyYXk6IDIsXG4gIFVpbnQxNkFycmF5OiAyLFxuICBJbnQzMkFycmF5OiA0LFxuICBVaW50MzJBcnJheTogNCxcbiAgRmxvYXQzMkFycmF5OiA0LFxuICBGbG9hdDY0QXJyYXk6IDhcbn07XG5cbnZhciBpc1ZpZXcgPSBmdW5jdGlvbiBpc1ZpZXcoaXQpIHtcbiAgdmFyIGtsYXNzID0gY2xhc3NvZihpdCk7XG4gIHJldHVybiBrbGFzcyA9PT0gJ0RhdGFWaWV3JyB8fCBoYXMoVHlwZWRBcnJheUNvbnN0cnVjdG9yc0xpc3QsIGtsYXNzKTtcbn07XG5cbnZhciBpc1R5cGVkQXJyYXkgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGlzT2JqZWN0KGl0KSAmJiBoYXMoVHlwZWRBcnJheUNvbnN0cnVjdG9yc0xpc3QsIGNsYXNzb2YoaXQpKTtcbn07XG5cbnZhciBhVHlwZWRBcnJheSA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXNUeXBlZEFycmF5KGl0KSkgcmV0dXJuIGl0O1xuICB0aHJvdyBUeXBlRXJyb3IoJ1RhcmdldCBpcyBub3QgYSB0eXBlZCBhcnJheScpO1xufTtcblxudmFyIGFUeXBlZEFycmF5Q29uc3RydWN0b3IgPSBmdW5jdGlvbiAoQykge1xuICBpZiAoc2V0UHJvdG90eXBlT2YpIHtcbiAgICBpZiAoaXNQcm90b3R5cGVPZi5jYWxsKFR5cGVkQXJyYXksIEMpKSByZXR1cm4gQztcbiAgfSBlbHNlIGZvciAodmFyIEFSUkFZIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0KSBpZiAoaGFzKFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0LCBOQU1FKSkge1xuICAgIHZhciBUeXBlZEFycmF5Q29uc3RydWN0b3IgPSBnbG9iYWxbQVJSQVldO1xuICAgIGlmIChUeXBlZEFycmF5Q29uc3RydWN0b3IgJiYgKEMgPT09IFR5cGVkQXJyYXlDb25zdHJ1Y3RvciB8fCBpc1Byb3RvdHlwZU9mLmNhbGwoVHlwZWRBcnJheUNvbnN0cnVjdG9yLCBDKSkpIHtcbiAgICAgIHJldHVybiBDO1xuICAgIH1cbiAgfSB0aHJvdyBUeXBlRXJyb3IoJ1RhcmdldCBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvcicpO1xufTtcblxudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBmdW5jdGlvbiAoS0VZLCBwcm9wZXJ0eSwgZm9yY2VkKSB7XG4gIGlmICghREVTQ1JJUFRPUlMpIHJldHVybjtcbiAgaWYgKGZvcmNlZCkgZm9yICh2YXIgQVJSQVkgaW4gVHlwZWRBcnJheUNvbnN0cnVjdG9yc0xpc3QpIHtcbiAgICB2YXIgVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gZ2xvYmFsW0FSUkFZXTtcbiAgICBpZiAoVHlwZWRBcnJheUNvbnN0cnVjdG9yICYmIGhhcyhUeXBlZEFycmF5Q29uc3RydWN0b3IucHJvdG90eXBlLCBLRVkpKSB7XG4gICAgICBkZWxldGUgVHlwZWRBcnJheUNvbnN0cnVjdG9yLnByb3RvdHlwZVtLRVldO1xuICAgIH1cbiAgfVxuICBpZiAoIVR5cGVkQXJyYXlQcm90b3R5cGVbS0VZXSB8fCBmb3JjZWQpIHtcbiAgICByZWRlZmluZShUeXBlZEFycmF5UHJvdG90eXBlLCBLRVksIGZvcmNlZCA/IHByb3BlcnR5XG4gICAgICA6IE5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgJiYgSW50OEFycmF5UHJvdG90eXBlW0tFWV0gfHwgcHJvcGVydHkpO1xuICB9XG59O1xuXG52YXIgZXhwb3J0VHlwZWRBcnJheVN0YXRpY01ldGhvZCA9IGZ1bmN0aW9uIChLRVksIHByb3BlcnR5LCBmb3JjZWQpIHtcbiAgdmFyIEFSUkFZLCBUeXBlZEFycmF5Q29uc3RydWN0b3I7XG4gIGlmICghREVTQ1JJUFRPUlMpIHJldHVybjtcbiAgaWYgKHNldFByb3RvdHlwZU9mKSB7XG4gICAgaWYgKGZvcmNlZCkgZm9yIChBUlJBWSBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCkge1xuICAgICAgVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gZ2xvYmFsW0FSUkFZXTtcbiAgICAgIGlmIChUeXBlZEFycmF5Q29uc3RydWN0b3IgJiYgaGFzKFR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgS0VZKSkge1xuICAgICAgICBkZWxldGUgVHlwZWRBcnJheUNvbnN0cnVjdG9yW0tFWV07XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghVHlwZWRBcnJheVtLRVldIHx8IGZvcmNlZCkge1xuICAgICAgLy8gVjggfiBDaHJvbWUgNDktNTAgYCVUeXBlZEFycmF5JWAgbWV0aG9kcyBhcmUgbm9uLXdyaXRhYmxlIG5vbi1jb25maWd1cmFibGVcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiByZWRlZmluZShUeXBlZEFycmF5LCBLRVksIGZvcmNlZCA/IHByb3BlcnR5IDogTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyAmJiBJbnQ4QXJyYXlbS0VZXSB8fCBwcm9wZXJ0eSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gICAgfSBlbHNlIHJldHVybjtcbiAgfVxuICBmb3IgKEFSUkFZIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0KSB7XG4gICAgVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gZ2xvYmFsW0FSUkFZXTtcbiAgICBpZiAoVHlwZWRBcnJheUNvbnN0cnVjdG9yICYmICghVHlwZWRBcnJheUNvbnN0cnVjdG9yW0tFWV0gfHwgZm9yY2VkKSkge1xuICAgICAgcmVkZWZpbmUoVHlwZWRBcnJheUNvbnN0cnVjdG9yLCBLRVksIHByb3BlcnR5KTtcbiAgICB9XG4gIH1cbn07XG5cbmZvciAoTkFNRSBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCkge1xuICBpZiAoIWdsb2JhbFtOQU1FXSkgTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyA9IGZhbHNlO1xufVxuXG4vLyBXZWJLaXQgYnVnIC0gdHlwZWQgYXJyYXlzIGNvbnN0cnVjdG9ycyBwcm90b3R5cGUgaXMgT2JqZWN0LnByb3RvdHlwZVxuaWYgKCFOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTIHx8IHR5cGVvZiBUeXBlZEFycmF5ICE9ICdmdW5jdGlvbicgfHwgVHlwZWRBcnJheSA9PT0gRnVuY3Rpb24ucHJvdG90eXBlKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zaGFkb3dcbiAgVHlwZWRBcnJheSA9IGZ1bmN0aW9uIFR5cGVkQXJyYXkoKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKCdJbmNvcnJlY3QgaW52b2NhdGlvbicpO1xuICB9O1xuICBpZiAoTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUykgZm9yIChOQU1FIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcnNMaXN0KSB7XG4gICAgaWYgKGdsb2JhbFtOQU1FXSkgc2V0UHJvdG90eXBlT2YoZ2xvYmFsW05BTUVdLCBUeXBlZEFycmF5KTtcbiAgfVxufVxuXG5pZiAoIU5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgfHwgIVR5cGVkQXJyYXlQcm90b3R5cGUgfHwgVHlwZWRBcnJheVByb3RvdHlwZSA9PT0gT2JqZWN0UHJvdG90eXBlKSB7XG4gIFR5cGVkQXJyYXlQcm90b3R5cGUgPSBUeXBlZEFycmF5LnByb3RvdHlwZTtcbiAgaWYgKE5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MpIGZvciAoTkFNRSBpbiBUeXBlZEFycmF5Q29uc3RydWN0b3JzTGlzdCkge1xuICAgIGlmIChnbG9iYWxbTkFNRV0pIHNldFByb3RvdHlwZU9mKGdsb2JhbFtOQU1FXS5wcm90b3R5cGUsIFR5cGVkQXJyYXlQcm90b3R5cGUpO1xuICB9XG59XG5cbi8vIFdlYktpdCBidWcgLSBvbmUgbW9yZSBvYmplY3QgaW4gVWludDhDbGFtcGVkQXJyYXkgcHJvdG90eXBlIGNoYWluXG5pZiAoTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyAmJiBnZXRQcm90b3R5cGVPZihVaW50OENsYW1wZWRBcnJheVByb3RvdHlwZSkgIT09IFR5cGVkQXJyYXlQcm90b3R5cGUpIHtcbiAgc2V0UHJvdG90eXBlT2YoVWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGUsIFR5cGVkQXJyYXlQcm90b3R5cGUpO1xufVxuXG5pZiAoREVTQ1JJUFRPUlMgJiYgIWhhcyhUeXBlZEFycmF5UHJvdG90eXBlLCBUT19TVFJJTkdfVEFHKSkge1xuICBUWVBFRF9BUlJBWV9UQUdfUkVRSVJFRCA9IHRydWU7XG4gIGRlZmluZVByb3BlcnR5KFR5cGVkQXJyYXlQcm90b3R5cGUsIFRPX1NUUklOR19UQUcsIHsgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGlzT2JqZWN0KHRoaXMpID8gdGhpc1tUWVBFRF9BUlJBWV9UQUddIDogdW5kZWZpbmVkO1xuICB9IH0pO1xuICBmb3IgKE5BTUUgaW4gVHlwZWRBcnJheUNvbnN0cnVjdG9yc0xpc3QpIGlmIChnbG9iYWxbTkFNRV0pIHtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoZ2xvYmFsW05BTUVdLCBUWVBFRF9BUlJBWV9UQUcsIE5BTUUpO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTOiBOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTLFxuICBUWVBFRF9BUlJBWV9UQUc6IFRZUEVEX0FSUkFZX1RBR19SRVFJUkVEICYmIFRZUEVEX0FSUkFZX1RBRyxcbiAgYVR5cGVkQXJyYXk6IGFUeXBlZEFycmF5LFxuICBhVHlwZWRBcnJheUNvbnN0cnVjdG9yOiBhVHlwZWRBcnJheUNvbnN0cnVjdG9yLFxuICBleHBvcnRUeXBlZEFycmF5TWV0aG9kOiBleHBvcnRUeXBlZEFycmF5TWV0aG9kLFxuICBleHBvcnRUeXBlZEFycmF5U3RhdGljTWV0aG9kOiBleHBvcnRUeXBlZEFycmF5U3RhdGljTWV0aG9kLFxuICBpc1ZpZXc6IGlzVmlldyxcbiAgaXNUeXBlZEFycmF5OiBpc1R5cGVkQXJyYXksXG4gIFR5cGVkQXJyYXk6IFR5cGVkQXJyYXksXG4gIFR5cGVkQXJyYXlQcm90b3R5cGU6IFR5cGVkQXJyYXlQcm90b3R5cGVcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgTkFUSVZFX0FSUkFZX0JVRkZFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItbmF0aXZlJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIHJlZGVmaW5lQWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lLWFsbCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgYW5JbnN0YW5jZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1pbnN0YW5jZScpO1xudmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgdG9JbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleCcpO1xudmFyIElFRUU3NTQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaWVlZTc1NCcpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzJykuZjtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcbnZhciBhcnJheUZpbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktZmlsbCcpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xuXG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0O1xudmFyIHNldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLnNldDtcbnZhciBBUlJBWV9CVUZGRVIgPSAnQXJyYXlCdWZmZXInO1xudmFyIERBVEFfVklFVyA9ICdEYXRhVmlldyc7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG52YXIgV1JPTkdfTEVOR1RIID0gJ1dyb25nIGxlbmd0aCc7XG52YXIgV1JPTkdfSU5ERVggPSAnV3JvbmcgaW5kZXgnO1xudmFyIE5hdGl2ZUFycmF5QnVmZmVyID0gZ2xvYmFsW0FSUkFZX0JVRkZFUl07XG52YXIgJEFycmF5QnVmZmVyID0gTmF0aXZlQXJyYXlCdWZmZXI7XG52YXIgJERhdGFWaWV3ID0gZ2xvYmFsW0RBVEFfVklFV107XG52YXIgJERhdGFWaWV3UHJvdG90eXBlID0gJERhdGFWaWV3ICYmICREYXRhVmlld1tQUk9UT1RZUEVdO1xudmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG52YXIgUmFuZ2VFcnJvciA9IGdsb2JhbC5SYW5nZUVycm9yO1xuXG52YXIgcGFja0lFRUU3NTQgPSBJRUVFNzU0LnBhY2s7XG52YXIgdW5wYWNrSUVFRTc1NCA9IElFRUU3NTQudW5wYWNrO1xuXG52YXIgcGFja0ludDggPSBmdW5jdGlvbiAobnVtYmVyKSB7XG4gIHJldHVybiBbbnVtYmVyICYgMHhGRl07XG59O1xuXG52YXIgcGFja0ludDE2ID0gZnVuY3Rpb24gKG51bWJlcikge1xuICByZXR1cm4gW251bWJlciAmIDB4RkYsIG51bWJlciA+PiA4ICYgMHhGRl07XG59O1xuXG52YXIgcGFja0ludDMyID0gZnVuY3Rpb24gKG51bWJlcikge1xuICByZXR1cm4gW251bWJlciAmIDB4RkYsIG51bWJlciA+PiA4ICYgMHhGRiwgbnVtYmVyID4+IDE2ICYgMHhGRiwgbnVtYmVyID4+IDI0ICYgMHhGRl07XG59O1xuXG52YXIgdW5wYWNrSW50MzIgPSBmdW5jdGlvbiAoYnVmZmVyKSB7XG4gIHJldHVybiBidWZmZXJbM10gPDwgMjQgfCBidWZmZXJbMl0gPDwgMTYgfCBidWZmZXJbMV0gPDwgOCB8IGJ1ZmZlclswXTtcbn07XG5cbnZhciBwYWNrRmxvYXQzMiA9IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgcmV0dXJuIHBhY2tJRUVFNzU0KG51bWJlciwgMjMsIDQpO1xufTtcblxudmFyIHBhY2tGbG9hdDY0ID0gZnVuY3Rpb24gKG51bWJlcikge1xuICByZXR1cm4gcGFja0lFRUU3NTQobnVtYmVyLCA1MiwgOCk7XG59O1xuXG52YXIgYWRkR2V0dGVyID0gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBrZXkpIHtcbiAgZGVmaW5lUHJvcGVydHkoQ29uc3RydWN0b3JbUFJPVE9UWVBFXSwga2V5LCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKVtrZXldOyB9IH0pO1xufTtcblxudmFyIGdldCA9IGZ1bmN0aW9uICh2aWV3LCBjb3VudCwgaW5kZXgsIGlzTGl0dGxlRW5kaWFuKSB7XG4gIHZhciBpbnRJbmRleCA9IHRvSW5kZXgoaW5kZXgpO1xuICB2YXIgc3RvcmUgPSBnZXRJbnRlcm5hbFN0YXRlKHZpZXcpO1xuICBpZiAoaW50SW5kZXggKyBjb3VudCA+IHN0b3JlLmJ5dGVMZW5ndGgpIHRocm93IFJhbmdlRXJyb3IoV1JPTkdfSU5ERVgpO1xuICB2YXIgYnl0ZXMgPSBnZXRJbnRlcm5hbFN0YXRlKHN0b3JlLmJ1ZmZlcikuYnl0ZXM7XG4gIHZhciBzdGFydCA9IGludEluZGV4ICsgc3RvcmUuYnl0ZU9mZnNldDtcbiAgdmFyIHBhY2sgPSBieXRlcy5zbGljZShzdGFydCwgc3RhcnQgKyBjb3VudCk7XG4gIHJldHVybiBpc0xpdHRsZUVuZGlhbiA/IHBhY2sgOiBwYWNrLnJldmVyc2UoKTtcbn07XG5cbnZhciBzZXQgPSBmdW5jdGlvbiAodmlldywgY291bnQsIGluZGV4LCBjb252ZXJzaW9uLCB2YWx1ZSwgaXNMaXR0bGVFbmRpYW4pIHtcbiAgdmFyIGludEluZGV4ID0gdG9JbmRleChpbmRleCk7XG4gIHZhciBzdG9yZSA9IGdldEludGVybmFsU3RhdGUodmlldyk7XG4gIGlmIChpbnRJbmRleCArIGNvdW50ID4gc3RvcmUuYnl0ZUxlbmd0aCkgdGhyb3cgUmFuZ2VFcnJvcihXUk9OR19JTkRFWCk7XG4gIHZhciBieXRlcyA9IGdldEludGVybmFsU3RhdGUoc3RvcmUuYnVmZmVyKS5ieXRlcztcbiAgdmFyIHN0YXJ0ID0gaW50SW5kZXggKyBzdG9yZS5ieXRlT2Zmc2V0O1xuICB2YXIgcGFjayA9IGNvbnZlcnNpb24oK3ZhbHVlKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSBieXRlc1tzdGFydCArIGldID0gcGFja1tpc0xpdHRsZUVuZGlhbiA/IGkgOiBjb3VudCAtIGkgLSAxXTtcbn07XG5cbmlmICghTkFUSVZFX0FSUkFZX0JVRkZFUikge1xuICAkQXJyYXlCdWZmZXIgPSBmdW5jdGlvbiBBcnJheUJ1ZmZlcihsZW5ndGgpIHtcbiAgICBhbkluc3RhbmNlKHRoaXMsICRBcnJheUJ1ZmZlciwgQVJSQVlfQlVGRkVSKTtcbiAgICB2YXIgYnl0ZUxlbmd0aCA9IHRvSW5kZXgobGVuZ3RoKTtcbiAgICBzZXRJbnRlcm5hbFN0YXRlKHRoaXMsIHtcbiAgICAgIGJ5dGVzOiBhcnJheUZpbGwuY2FsbChuZXcgQXJyYXkoYnl0ZUxlbmd0aCksIDApLFxuICAgICAgYnl0ZUxlbmd0aDogYnl0ZUxlbmd0aFxuICAgIH0pO1xuICAgIGlmICghREVTQ1JJUFRPUlMpIHRoaXMuYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGg7XG4gIH07XG5cbiAgJERhdGFWaWV3ID0gZnVuY3Rpb24gRGF0YVZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0LCBieXRlTGVuZ3RoKSB7XG4gICAgYW5JbnN0YW5jZSh0aGlzLCAkRGF0YVZpZXcsIERBVEFfVklFVyk7XG4gICAgYW5JbnN0YW5jZShidWZmZXIsICRBcnJheUJ1ZmZlciwgREFUQV9WSUVXKTtcbiAgICB2YXIgYnVmZmVyTGVuZ3RoID0gZ2V0SW50ZXJuYWxTdGF0ZShidWZmZXIpLmJ5dGVMZW5ndGg7XG4gICAgdmFyIG9mZnNldCA9IHRvSW50ZWdlcihieXRlT2Zmc2V0KTtcbiAgICBpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgPiBidWZmZXJMZW5ndGgpIHRocm93IFJhbmdlRXJyb3IoJ1dyb25nIG9mZnNldCcpO1xuICAgIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoID09PSB1bmRlZmluZWQgPyBidWZmZXJMZW5ndGggLSBvZmZzZXQgOiB0b0xlbmd0aChieXRlTGVuZ3RoKTtcbiAgICBpZiAob2Zmc2V0ICsgYnl0ZUxlbmd0aCA+IGJ1ZmZlckxlbmd0aCkgdGhyb3cgUmFuZ2VFcnJvcihXUk9OR19MRU5HVEgpO1xuICAgIHNldEludGVybmFsU3RhdGUodGhpcywge1xuICAgICAgYnVmZmVyOiBidWZmZXIsXG4gICAgICBieXRlTGVuZ3RoOiBieXRlTGVuZ3RoLFxuICAgICAgYnl0ZU9mZnNldDogb2Zmc2V0XG4gICAgfSk7XG4gICAgaWYgKCFERVNDUklQVE9SUykge1xuICAgICAgdGhpcy5idWZmZXIgPSBidWZmZXI7XG4gICAgICB0aGlzLmJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoO1xuICAgICAgdGhpcy5ieXRlT2Zmc2V0ID0gb2Zmc2V0O1xuICAgIH1cbiAgfTtcblxuICBpZiAoREVTQ1JJUFRPUlMpIHtcbiAgICBhZGRHZXR0ZXIoJEFycmF5QnVmZmVyLCAnYnl0ZUxlbmd0aCcpO1xuICAgIGFkZEdldHRlcigkRGF0YVZpZXcsICdidWZmZXInKTtcbiAgICBhZGRHZXR0ZXIoJERhdGFWaWV3LCAnYnl0ZUxlbmd0aCcpO1xuICAgIGFkZEdldHRlcigkRGF0YVZpZXcsICdieXRlT2Zmc2V0Jyk7XG4gIH1cblxuICByZWRlZmluZUFsbCgkRGF0YVZpZXdbUFJPVE9UWVBFXSwge1xuICAgIGdldEludDg6IGZ1bmN0aW9uIGdldEludDgoYnl0ZU9mZnNldCkge1xuICAgICAgcmV0dXJuIGdldCh0aGlzLCAxLCBieXRlT2Zmc2V0KVswXSA8PCAyNCA+PiAyNDtcbiAgICB9LFxuICAgIGdldFVpbnQ4OiBmdW5jdGlvbiBnZXRVaW50OChieXRlT2Zmc2V0KSB7XG4gICAgICByZXR1cm4gZ2V0KHRoaXMsIDEsIGJ5dGVPZmZzZXQpWzBdO1xuICAgIH0sXG4gICAgZ2V0SW50MTY6IGZ1bmN0aW9uIGdldEludDE2KGJ5dGVPZmZzZXQgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHZhciBieXRlcyA9IGdldCh0aGlzLCAyLCBieXRlT2Zmc2V0LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gICAgICByZXR1cm4gKGJ5dGVzWzFdIDw8IDggfCBieXRlc1swXSkgPDwgMTYgPj4gMTY7XG4gICAgfSxcbiAgICBnZXRVaW50MTY6IGZ1bmN0aW9uIGdldFVpbnQxNihieXRlT2Zmc2V0IC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICB2YXIgYnl0ZXMgPSBnZXQodGhpcywgMiwgYnl0ZU9mZnNldCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICAgICAgcmV0dXJuIGJ5dGVzWzFdIDw8IDggfCBieXRlc1swXTtcbiAgICB9LFxuICAgIGdldEludDMyOiBmdW5jdGlvbiBnZXRJbnQzMihieXRlT2Zmc2V0IC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICByZXR1cm4gdW5wYWNrSW50MzIoZ2V0KHRoaXMsIDQsIGJ5dGVPZmZzZXQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKSk7XG4gICAgfSxcbiAgICBnZXRVaW50MzI6IGZ1bmN0aW9uIGdldFVpbnQzMihieXRlT2Zmc2V0IC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICByZXR1cm4gdW5wYWNrSW50MzIoZ2V0KHRoaXMsIDQsIGJ5dGVPZmZzZXQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKSkgPj4+IDA7XG4gICAgfSxcbiAgICBnZXRGbG9hdDMyOiBmdW5jdGlvbiBnZXRGbG9hdDMyKGJ5dGVPZmZzZXQgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHJldHVybiB1bnBhY2tJRUVFNzU0KGdldCh0aGlzLCA0LCBieXRlT2Zmc2V0LCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCksIDIzKTtcbiAgICB9LFxuICAgIGdldEZsb2F0NjQ6IGZ1bmN0aW9uIGdldEZsb2F0NjQoYnl0ZU9mZnNldCAvKiAsIGxpdHRsZUVuZGlhbiAqLykge1xuICAgICAgcmV0dXJuIHVucGFja0lFRUU3NTQoZ2V0KHRoaXMsIDgsIGJ5dGVPZmZzZXQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKSwgNTIpO1xuICAgIH0sXG4gICAgc2V0SW50ODogZnVuY3Rpb24gc2V0SW50OChieXRlT2Zmc2V0LCB2YWx1ZSkge1xuICAgICAgc2V0KHRoaXMsIDEsIGJ5dGVPZmZzZXQsIHBhY2tJbnQ4LCB2YWx1ZSk7XG4gICAgfSxcbiAgICBzZXRVaW50ODogZnVuY3Rpb24gc2V0VWludDgoYnl0ZU9mZnNldCwgdmFsdWUpIHtcbiAgICAgIHNldCh0aGlzLCAxLCBieXRlT2Zmc2V0LCBwYWNrSW50OCwgdmFsdWUpO1xuICAgIH0sXG4gICAgc2V0SW50MTY6IGZ1bmN0aW9uIHNldEludDE2KGJ5dGVPZmZzZXQsIHZhbHVlIC8qICwgbGl0dGxlRW5kaWFuICovKSB7XG4gICAgICBzZXQodGhpcywgMiwgYnl0ZU9mZnNldCwgcGFja0ludDE2LCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQpO1xuICAgIH0sXG4gICAgc2V0VWludDE2OiBmdW5jdGlvbiBzZXRVaW50MTYoYnl0ZU9mZnNldCwgdmFsdWUgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHNldCh0aGlzLCAyLCBieXRlT2Zmc2V0LCBwYWNrSW50MTYsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZCk7XG4gICAgfSxcbiAgICBzZXRJbnQzMjogZnVuY3Rpb24gc2V0SW50MzIoYnl0ZU9mZnNldCwgdmFsdWUgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHNldCh0aGlzLCA0LCBieXRlT2Zmc2V0LCBwYWNrSW50MzIsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZCk7XG4gICAgfSxcbiAgICBzZXRVaW50MzI6IGZ1bmN0aW9uIHNldFVpbnQzMihieXRlT2Zmc2V0LCB2YWx1ZSAvKiAsIGxpdHRsZUVuZGlhbiAqLykge1xuICAgICAgc2V0KHRoaXMsIDQsIGJ5dGVPZmZzZXQsIHBhY2tJbnQzMiwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkKTtcbiAgICB9LFxuICAgIHNldEZsb2F0MzI6IGZ1bmN0aW9uIHNldEZsb2F0MzIoYnl0ZU9mZnNldCwgdmFsdWUgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHNldCh0aGlzLCA0LCBieXRlT2Zmc2V0LCBwYWNrRmxvYXQzMiwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkKTtcbiAgICB9LFxuICAgIHNldEZsb2F0NjQ6IGZ1bmN0aW9uIHNldEZsb2F0NjQoYnl0ZU9mZnNldCwgdmFsdWUgLyogLCBsaXR0bGVFbmRpYW4gKi8pIHtcbiAgICAgIHNldCh0aGlzLCA4LCBieXRlT2Zmc2V0LCBwYWNrRmxvYXQ2NCwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkKTtcbiAgICB9XG4gIH0pO1xufSBlbHNlIHtcbiAgaWYgKCFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgTmF0aXZlQXJyYXlCdWZmZXIoMSk7XG4gIH0pIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgbmV3IE5hdGl2ZUFycmF5QnVmZmVyKC0xKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1uZXdcbiAgfSkgfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIG5ldyBOYXRpdmVBcnJheUJ1ZmZlcigpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ld1xuICAgIG5ldyBOYXRpdmVBcnJheUJ1ZmZlcigxLjUpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ld1xuICAgIG5ldyBOYXRpdmVBcnJheUJ1ZmZlcihOYU4pOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ld1xuICAgIHJldHVybiBOYXRpdmVBcnJheUJ1ZmZlci5uYW1lICE9IEFSUkFZX0JVRkZFUjtcbiAgfSkpIHtcbiAgICAkQXJyYXlCdWZmZXIgPSBmdW5jdGlvbiBBcnJheUJ1ZmZlcihsZW5ndGgpIHtcbiAgICAgIGFuSW5zdGFuY2UodGhpcywgJEFycmF5QnVmZmVyKTtcbiAgICAgIHJldHVybiBuZXcgTmF0aXZlQXJyYXlCdWZmZXIodG9JbmRleChsZW5ndGgpKTtcbiAgICB9O1xuICAgIHZhciBBcnJheUJ1ZmZlclByb3RvdHlwZSA9ICRBcnJheUJ1ZmZlcltQUk9UT1RZUEVdID0gTmF0aXZlQXJyYXlCdWZmZXJbUFJPVE9UWVBFXTtcbiAgICBmb3IgKHZhciBrZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lcyhOYXRpdmVBcnJheUJ1ZmZlciksIGogPSAwLCBrZXk7IGtleXMubGVuZ3RoID4gajspIHtcbiAgICAgIGlmICghKChrZXkgPSBrZXlzW2orK10pIGluICRBcnJheUJ1ZmZlcikpIHtcbiAgICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KCRBcnJheUJ1ZmZlciwga2V5LCBOYXRpdmVBcnJheUJ1ZmZlcltrZXldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQXJyYXlCdWZmZXJQcm90b3R5cGUuY29uc3RydWN0b3IgPSAkQXJyYXlCdWZmZXI7XG4gIH1cblxuICAvLyBXZWJLaXQgYnVnIC0gdGhlIHNhbWUgcGFyZW50IHByb3RvdHlwZSBmb3IgdHlwZWQgYXJyYXlzIGFuZCBkYXRhIHZpZXdcbiAgaWYgKHNldFByb3RvdHlwZU9mICYmIGdldFByb3RvdHlwZU9mKCREYXRhVmlld1Byb3RvdHlwZSkgIT09IE9iamVjdFByb3RvdHlwZSkge1xuICAgIHNldFByb3RvdHlwZU9mKCREYXRhVmlld1Byb3RvdHlwZSwgT2JqZWN0UHJvdG90eXBlKTtcbiAgfVxuXG4gIC8vIGlPUyBTYWZhcmkgNy54IGJ1Z1xuICB2YXIgdGVzdFZpZXcgPSBuZXcgJERhdGFWaWV3KG5ldyAkQXJyYXlCdWZmZXIoMikpO1xuICB2YXIgbmF0aXZlU2V0SW50OCA9ICREYXRhVmlld1Byb3RvdHlwZS5zZXRJbnQ4O1xuICB0ZXN0Vmlldy5zZXRJbnQ4KDAsIDIxNDc0ODM2NDgpO1xuICB0ZXN0Vmlldy5zZXRJbnQ4KDEsIDIxNDc0ODM2NDkpO1xuICBpZiAodGVzdFZpZXcuZ2V0SW50OCgwKSB8fCAhdGVzdFZpZXcuZ2V0SW50OCgxKSkgcmVkZWZpbmVBbGwoJERhdGFWaWV3UHJvdG90eXBlLCB7XG4gICAgc2V0SW50ODogZnVuY3Rpb24gc2V0SW50OChieXRlT2Zmc2V0LCB2YWx1ZSkge1xuICAgICAgbmF0aXZlU2V0SW50OC5jYWxsKHRoaXMsIGJ5dGVPZmZzZXQsIHZhbHVlIDw8IDI0ID4+IDI0KTtcbiAgICB9LFxuICAgIHNldFVpbnQ4OiBmdW5jdGlvbiBzZXRVaW50OChieXRlT2Zmc2V0LCB2YWx1ZSkge1xuICAgICAgbmF0aXZlU2V0SW50OC5jYWxsKHRoaXMsIGJ5dGVPZmZzZXQsIHZhbHVlIDw8IDI0ID4+IDI0KTtcbiAgICB9XG4gIH0sIHsgdW5zYWZlOiB0cnVlIH0pO1xufVxuXG5zZXRUb1N0cmluZ1RhZygkQXJyYXlCdWZmZXIsIEFSUkFZX0JVRkZFUik7XG5zZXRUb1N0cmluZ1RhZygkRGF0YVZpZXcsIERBVEFfVklFVyk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBBcnJheUJ1ZmZlcjogJEFycmF5QnVmZmVyLFxuICBEYXRhVmlldzogJERhdGFWaWV3XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xuXG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbmAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuY29weXdpdGhpblxubW9kdWxlLmV4cG9ydHMgPSBbXS5jb3B5V2l0aGluIHx8IGZ1bmN0aW9uIGNvcHlXaXRoaW4odGFyZ2V0IC8qID0gMCAqLywgc3RhcnQgLyogPSAwLCBlbmQgPSBAbGVuZ3RoICovKSB7XG4gIHZhciBPID0gdG9PYmplY3QodGhpcyk7XG4gIHZhciBsZW4gPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gIHZhciB0byA9IHRvQWJzb2x1dGVJbmRleCh0YXJnZXQsIGxlbik7XG4gIHZhciBmcm9tID0gdG9BYnNvbHV0ZUluZGV4KHN0YXJ0LCBsZW4pO1xuICB2YXIgZW5kID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQ7XG4gIHZhciBjb3VudCA9IG1pbigoZW5kID09PSB1bmRlZmluZWQgPyBsZW4gOiB0b0Fic29sdXRlSW5kZXgoZW5kLCBsZW4pKSAtIGZyb20sIGxlbiAtIHRvKTtcbiAgdmFyIGluYyA9IDE7XG4gIGlmIChmcm9tIDwgdG8gJiYgdG8gPCBmcm9tICsgY291bnQpIHtcbiAgICBpbmMgPSAtMTtcbiAgICBmcm9tICs9IGNvdW50IC0gMTtcbiAgICB0byArPSBjb3VudCAtIDE7XG4gIH1cbiAgd2hpbGUgKGNvdW50LS0gPiAwKSB7XG4gICAgaWYgKGZyb20gaW4gTykgT1t0b10gPSBPW2Zyb21dO1xuICAgIGVsc2UgZGVsZXRlIE9bdG9dO1xuICAgIHRvICs9IGluYztcbiAgICBmcm9tICs9IGluYztcbiAgfSByZXR1cm4gTztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuZmlsbGAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmlsbFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBmaWxsKHZhbHVlIC8qICwgc3RhcnQgPSAwLCBlbmQgPSBAbGVuZ3RoICovKSB7XG4gIHZhciBPID0gdG9PYmplY3QodGhpcyk7XG4gIHZhciBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gIHZhciBhcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoYXJndW1lbnRzTGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCwgbGVuZ3RoKTtcbiAgdmFyIGVuZCA9IGFyZ3VtZW50c0xlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQ7XG4gIHZhciBlbmRQb3MgPSBlbmQgPT09IHVuZGVmaW5lZCA/IGxlbmd0aCA6IHRvQWJzb2x1dGVJbmRleChlbmQsIGxlbmd0aCk7XG4gIHdoaWxlIChlbmRQb3MgPiBpbmRleCkgT1tpbmRleCsrXSA9IHZhbHVlO1xuICByZXR1cm4gTztcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJGZvckVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZm9yRWFjaDtcbnZhciBhcnJheU1ldGhvZElzU3RyaWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QnKTtcbnZhciBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtdXNlcy10by1sZW5ndGgnKTtcblxudmFyIFNUUklDVF9NRVRIT0QgPSBhcnJheU1ldGhvZElzU3RyaWN0KCdmb3JFYWNoJyk7XG52YXIgVVNFU19UT19MRU5HVEggPSBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCgnZm9yRWFjaCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZvcmVhY2hcbm1vZHVsZS5leHBvcnRzID0gKCFTVFJJQ1RfTUVUSE9EIHx8ICFVU0VTX1RPX0xFTkdUSCkgPyBmdW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gIHJldHVybiAkZm9yRWFjaCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG59IDogW10uZm9yRWFjaDtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGNhbGxXaXRoU2FmZUl0ZXJhdGlvbkNsb3NpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2FsbC13aXRoLXNhZmUtaXRlcmF0aW9uLWNsb3NpbmcnKTtcbnZhciBpc0FycmF5SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXktaXRlcmF0b3ItbWV0aG9kJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5Jyk7XG52YXIgZ2V0SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xuXG4vLyBgQXJyYXkuZnJvbWAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5mcm9tXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGZyb20oYXJyYXlMaWtlIC8qICwgbWFwZm4gPSB1bmRlZmluZWQsIHRoaXNBcmcgPSB1bmRlZmluZWQgKi8pIHtcbiAgdmFyIE8gPSB0b09iamVjdChhcnJheUxpa2UpO1xuICB2YXIgQyA9IHR5cGVvZiB0aGlzID09ICdmdW5jdGlvbicgPyB0aGlzIDogQXJyYXk7XG4gIHZhciBhcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgbWFwZm4gPSBhcmd1bWVudHNMZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICB2YXIgbWFwcGluZyA9IG1hcGZuICE9PSB1bmRlZmluZWQ7XG4gIHZhciBpdGVyYXRvck1ldGhvZCA9IGdldEl0ZXJhdG9yTWV0aG9kKE8pO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgbGVuZ3RoLCByZXN1bHQsIHN0ZXAsIGl0ZXJhdG9yLCBuZXh0LCB2YWx1ZTtcbiAgaWYgKG1hcHBpbmcpIG1hcGZuID0gYmluZChtYXBmbiwgYXJndW1lbnRzTGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZCwgMik7XG4gIC8vIGlmIHRoZSB0YXJnZXQgaXMgbm90IGl0ZXJhYmxlIG9yIGl0J3MgYW4gYXJyYXkgd2l0aCB0aGUgZGVmYXVsdCBpdGVyYXRvciAtIHVzZSBhIHNpbXBsZSBjYXNlXG4gIGlmIChpdGVyYXRvck1ldGhvZCAhPSB1bmRlZmluZWQgJiYgIShDID09IEFycmF5ICYmIGlzQXJyYXlJdGVyYXRvck1ldGhvZChpdGVyYXRvck1ldGhvZCkpKSB7XG4gICAgaXRlcmF0b3IgPSBpdGVyYXRvck1ldGhvZC5jYWxsKE8pO1xuICAgIG5leHQgPSBpdGVyYXRvci5uZXh0O1xuICAgIHJlc3VsdCA9IG5ldyBDKCk7XG4gICAgZm9yICg7IShzdGVwID0gbmV4dC5jYWxsKGl0ZXJhdG9yKSkuZG9uZTsgaW5kZXgrKykge1xuICAgICAgdmFsdWUgPSBtYXBwaW5nID8gY2FsbFdpdGhTYWZlSXRlcmF0aW9uQ2xvc2luZyhpdGVyYXRvciwgbWFwZm4sIFtzdGVwLnZhbHVlLCBpbmRleF0sIHRydWUpIDogc3RlcC52YWx1ZTtcbiAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIHZhbHVlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgIHJlc3VsdCA9IG5ldyBDKGxlbmd0aCk7XG4gICAgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIHtcbiAgICAgIHZhbHVlID0gbWFwcGluZyA/IG1hcGZuKE9baW5kZXhdLCBpbmRleCkgOiBPW2luZGV4XTtcbiAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmVzdWx0Lmxlbmd0aCA9IGluZGV4O1xuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsInZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tYWJzb2x1dGUtaW5kZXgnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS57IGluZGV4T2YsIGluY2x1ZGVzIH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoSVNfSU5DTFVERVMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgZWwsIGZyb21JbmRleCkge1xuICAgIHZhciBPID0gdG9JbmRleGVkT2JqZWN0KCR0aGlzKTtcbiAgICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpO1xuICAgIHZhciBpbmRleCA9IHRvQWJzb2x1dGVJbmRleChmcm9tSW5kZXgsIGxlbmd0aCk7XG4gICAgdmFyIHZhbHVlO1xuICAgIC8vIEFycmF5I2luY2x1ZGVzIHVzZXMgU2FtZVZhbHVlWmVybyBlcXVhbGl0eSBhbGdvcml0aG1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgaWYgKElTX0lOQ0xVREVTICYmIGVsICE9IGVsKSB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIHZhbHVlID0gT1tpbmRleCsrXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgaWYgKChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSAmJiBPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmluY2x1ZGVzXG4gIGluY2x1ZGVzOiBjcmVhdGVNZXRob2QodHJ1ZSksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuaW5kZXhPZmAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5pbmRleG9mXG4gIGluZGV4T2Y6IGNyZWF0ZU1ldGhvZChmYWxzZSlcbn07XG4iLCJ2YXIgYmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQnKTtcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgYXJyYXlTcGVjaWVzQ3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlJyk7XG5cbnZhciBwdXNoID0gW10ucHVzaDtcblxuLy8gYEFycmF5LnByb3RvdHlwZS57IGZvckVhY2gsIG1hcCwgZmlsdGVyLCBzb21lLCBldmVyeSwgZmluZCwgZmluZEluZGV4IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoVFlQRSkge1xuICB2YXIgSVNfTUFQID0gVFlQRSA9PSAxO1xuICB2YXIgSVNfRklMVEVSID0gVFlQRSA9PSAyO1xuICB2YXIgSVNfU09NRSA9IFRZUEUgPT0gMztcbiAgdmFyIElTX0VWRVJZID0gVFlQRSA9PSA0O1xuICB2YXIgSVNfRklORF9JTkRFWCA9IFRZUEUgPT0gNjtcbiAgdmFyIE5PX0hPTEVTID0gVFlQRSA9PSA1IHx8IElTX0ZJTkRfSU5ERVg7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIGNhbGxiYWNrZm4sIHRoYXQsIHNwZWNpZmljQ3JlYXRlKSB7XG4gICAgdmFyIE8gPSB0b09iamVjdCgkdGhpcyk7XG4gICAgdmFyIHNlbGYgPSBJbmRleGVkT2JqZWN0KE8pO1xuICAgIHZhciBib3VuZEZ1bmN0aW9uID0gYmluZChjYWxsYmFja2ZuLCB0aGF0LCAzKTtcbiAgICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoc2VsZi5sZW5ndGgpO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGNyZWF0ZSA9IHNwZWNpZmljQ3JlYXRlIHx8IGFycmF5U3BlY2llc0NyZWF0ZTtcbiAgICB2YXIgdGFyZ2V0ID0gSVNfTUFQID8gY3JlYXRlKCR0aGlzLCBsZW5ndGgpIDogSVNfRklMVEVSID8gY3JlYXRlKCR0aGlzLCAwKSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgdmFsdWUsIHJlc3VsdDtcbiAgICBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKE5PX0hPTEVTIHx8IGluZGV4IGluIHNlbGYpIHtcbiAgICAgIHZhbHVlID0gc2VsZltpbmRleF07XG4gICAgICByZXN1bHQgPSBib3VuZEZ1bmN0aW9uKHZhbHVlLCBpbmRleCwgTyk7XG4gICAgICBpZiAoVFlQRSkge1xuICAgICAgICBpZiAoSVNfTUFQKSB0YXJnZXRbaW5kZXhdID0gcmVzdWx0OyAvLyBtYXBcbiAgICAgICAgZWxzZSBpZiAocmVzdWx0KSBzd2l0Y2ggKFRZUEUpIHtcbiAgICAgICAgICBjYXNlIDM6IHJldHVybiB0cnVlOyAgICAgICAgICAgICAgLy8gc29tZVxuICAgICAgICAgIGNhc2UgNTogcmV0dXJuIHZhbHVlOyAgICAgICAgICAgICAvLyBmaW5kXG4gICAgICAgICAgY2FzZSA2OiByZXR1cm4gaW5kZXg7ICAgICAgICAgICAgIC8vIGZpbmRJbmRleFxuICAgICAgICAgIGNhc2UgMjogcHVzaC5jYWxsKHRhcmdldCwgdmFsdWUpOyAvLyBmaWx0ZXJcbiAgICAgICAgfSBlbHNlIGlmIChJU19FVkVSWSkgcmV0dXJuIGZhbHNlOyAgLy8gZXZlcnlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIElTX0ZJTkRfSU5ERVggPyAtMSA6IElTX1NPTUUgfHwgSVNfRVZFUlkgPyBJU19FVkVSWSA6IHRhcmdldDtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxuICBmb3JFYWNoOiBjcmVhdGVNZXRob2QoMCksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUubWFwYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLm1hcFxuICBtYXA6IGNyZWF0ZU1ldGhvZCgxKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maWx0ZXJgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmlsdGVyXG4gIGZpbHRlcjogY3JlYXRlTWV0aG9kKDIpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLnNvbWVgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuc29tZVxuICBzb21lOiBjcmVhdGVNZXRob2QoMyksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZXZlcnlgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZXZlcnlcbiAgZXZlcnk6IGNyZWF0ZU1ldGhvZCg0KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maW5kYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbmRcbiAgZmluZDogY3JlYXRlTWV0aG9kKDUpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhcbiAgZmluZEluZGV4OiBjcmVhdGVNZXRob2QoNilcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciBhcnJheU1ldGhvZElzU3RyaWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QnKTtcbnZhciBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtdXNlcy10by1sZW5ndGgnKTtcblxudmFyIG1pbiA9IE1hdGgubWluO1xudmFyIG5hdGl2ZUxhc3RJbmRleE9mID0gW10ubGFzdEluZGV4T2Y7XG52YXIgTkVHQVRJVkVfWkVSTyA9ICEhbmF0aXZlTGFzdEluZGV4T2YgJiYgMSAvIFsxXS5sYXN0SW5kZXhPZigxLCAtMCkgPCAwO1xudmFyIFNUUklDVF9NRVRIT0QgPSBhcnJheU1ldGhvZElzU3RyaWN0KCdsYXN0SW5kZXhPZicpO1xuLy8gRm9yIHByZXZlbnRpbmcgcG9zc2libGUgYWxtb3N0IGluZmluaXRlIGxvb3AgaW4gbm9uLXN0YW5kYXJkIGltcGxlbWVudGF0aW9ucywgdGVzdCB0aGUgZm9yd2FyZCB2ZXJzaW9uIG9mIHRoZSBtZXRob2RcbnZhciBVU0VTX1RPX0xFTkdUSCA9IGFycmF5TWV0aG9kVXNlc1RvTGVuZ3RoKCdpbmRleE9mJywgeyBBQ0NFU1NPUlM6IHRydWUsIDE6IDAgfSk7XG52YXIgRk9SQ0VEID0gTkVHQVRJVkVfWkVSTyB8fCAhU1RSSUNUX01FVEhPRCB8fCAhVVNFU19UT19MRU5HVEg7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2ZgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmxhc3RpbmRleG9mXG5tb2R1bGUuZXhwb3J0cyA9IEZPUkNFRCA/IGZ1bmN0aW9uIGxhc3RJbmRleE9mKHNlYXJjaEVsZW1lbnQgLyogLCBmcm9tSW5kZXggPSBAWyotMV0gKi8pIHtcbiAgLy8gY29udmVydCAtMCB0byArMFxuICBpZiAoTkVHQVRJVkVfWkVSTykgcmV0dXJuIG5hdGl2ZUxhc3RJbmRleE9mLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgMDtcbiAgdmFyIE8gPSB0b0luZGV4ZWRPYmplY3QodGhpcyk7XG4gIHZhciBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gIHZhciBpbmRleCA9IGxlbmd0aCAtIDE7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgaW5kZXggPSBtaW4oaW5kZXgsIHRvSW50ZWdlcihhcmd1bWVudHNbMV0pKTtcbiAgaWYgKGluZGV4IDwgMCkgaW5kZXggPSBsZW5ndGggKyBpbmRleDtcbiAgZm9yICg7aW5kZXggPj0gMDsgaW5kZXgtLSkgaWYgKGluZGV4IGluIE8gJiYgT1tpbmRleF0gPT09IHNlYXJjaEVsZW1lbnQpIHJldHVybiBpbmRleCB8fCAwO1xuICByZXR1cm4gLTE7XG59IDogbmF0aXZlTGFzdEluZGV4T2Y7XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBWOF9WRVJTSU9OID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS12OC12ZXJzaW9uJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE1FVEhPRF9OQU1FKSB7XG4gIC8vIFdlIGNhbid0IHVzZSB0aGlzIGZlYXR1cmUgZGV0ZWN0aW9uIGluIFY4IHNpbmNlIGl0IGNhdXNlc1xuICAvLyBkZW9wdGltaXphdGlvbiBhbmQgc2VyaW91cyBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvNjc3XG4gIHJldHVybiBWOF9WRVJTSU9OID49IDUxIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFycmF5ID0gW107XG4gICAgdmFyIGNvbnN0cnVjdG9yID0gYXJyYXkuY29uc3RydWN0b3IgPSB7fTtcbiAgICBjb25zdHJ1Y3RvcltTUEVDSUVTXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB7IGZvbzogMSB9O1xuICAgIH07XG4gICAgcmV0dXJuIGFycmF5W01FVEhPRF9OQU1FXShCb29sZWFuKS5mb28gIT09IDE7XG4gIH0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSwgYXJndW1lbnQpIHtcbiAgdmFyIG1ldGhvZCA9IFtdW01FVEhPRF9OQU1FXTtcbiAgcmV0dXJuICEhbWV0aG9kICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlbGVzcy1jYWxsLG5vLXRocm93LWxpdGVyYWxcbiAgICBtZXRob2QuY2FsbChudWxsLCBhcmd1bWVudCB8fCBmdW5jdGlvbiAoKSB7IHRocm93IDE7IH0sIDEpO1xuICB9KTtcbn07XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcblxudmFyIGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIGNhY2hlID0ge307XG5cbnZhciB0aHJvd2VyID0gZnVuY3Rpb24gKGl0KSB7IHRocm93IGl0OyB9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSwgb3B0aW9ucykge1xuICBpZiAoaGFzKGNhY2hlLCBNRVRIT0RfTkFNRSkpIHJldHVybiBjYWNoZVtNRVRIT0RfTkFNRV07XG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuICB2YXIgbWV0aG9kID0gW11bTUVUSE9EX05BTUVdO1xuICB2YXIgQUNDRVNTT1JTID0gaGFzKG9wdGlvbnMsICdBQ0NFU1NPUlMnKSA/IG9wdGlvbnMuQUNDRVNTT1JTIDogZmFsc2U7XG4gIHZhciBhcmd1bWVudDAgPSBoYXMob3B0aW9ucywgMCkgPyBvcHRpb25zWzBdIDogdGhyb3dlcjtcbiAgdmFyIGFyZ3VtZW50MSA9IGhhcyhvcHRpb25zLCAxKSA/IG9wdGlvbnNbMV0gOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIGNhY2hlW01FVEhPRF9OQU1FXSA9ICEhbWV0aG9kICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgaWYgKEFDQ0VTU09SUyAmJiAhREVTQ1JJUFRPUlMpIHJldHVybiB0cnVlO1xuICAgIHZhciBPID0geyBsZW5ndGg6IC0xIH07XG5cbiAgICBpZiAoQUNDRVNTT1JTKSBkZWZpbmVQcm9wZXJ0eShPLCAxLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogdGhyb3dlciB9KTtcbiAgICBlbHNlIE9bMV0gPSAxO1xuXG4gICAgbWV0aG9kLmNhbGwoTywgYXJndW1lbnQwLCBhcmd1bWVudDEpO1xuICB9KTtcbn07XG4iLCJ2YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyByZWR1Y2UsIHJlZHVjZVJpZ2h0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoSVNfUklHSFQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGF0LCBjYWxsYmFja2ZuLCBhcmd1bWVudHNMZW5ndGgsIG1lbW8pIHtcbiAgICBhRnVuY3Rpb24oY2FsbGJhY2tmbik7XG4gICAgdmFyIE8gPSB0b09iamVjdCh0aGF0KTtcbiAgICB2YXIgc2VsZiA9IEluZGV4ZWRPYmplY3QoTyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgaW5kZXggPSBJU19SSUdIVCA/IGxlbmd0aCAtIDEgOiAwO1xuICAgIHZhciBpID0gSVNfUklHSFQgPyAtMSA6IDE7XG4gICAgaWYgKGFyZ3VtZW50c0xlbmd0aCA8IDIpIHdoaWxlICh0cnVlKSB7XG4gICAgICBpZiAoaW5kZXggaW4gc2VsZikge1xuICAgICAgICBtZW1vID0gc2VsZltpbmRleF07XG4gICAgICAgIGluZGV4ICs9IGk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaW5kZXggKz0gaTtcbiAgICAgIGlmIChJU19SSUdIVCA/IGluZGV4IDwgMCA6IGxlbmd0aCA8PSBpbmRleCkge1xuICAgICAgICB0aHJvdyBUeXBlRXJyb3IoJ1JlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yICg7SVNfUklHSFQgPyBpbmRleCA+PSAwIDogbGVuZ3RoID4gaW5kZXg7IGluZGV4ICs9IGkpIGlmIChpbmRleCBpbiBzZWxmKSB7XG4gICAgICBtZW1vID0gY2FsbGJhY2tmbihtZW1vLCBzZWxmW2luZGV4XSwgaW5kZXgsIE8pO1xuICAgIH1cbiAgICByZXR1cm4gbWVtbztcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLnJlZHVjZWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5yZWR1Y2VcbiAgbGVmdDogY3JlYXRlTWV0aG9kKGZhbHNlKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5yZWR1Y2VyaWdodFxuICByaWdodDogY3JlYXRlTWV0aG9kKHRydWUpXG59O1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXknKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcblxuLy8gYEFycmF5U3BlY2llc0NyZWF0ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheXNwZWNpZXNjcmVhdGVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsQXJyYXksIGxlbmd0aCkge1xuICB2YXIgQztcbiAgaWYgKGlzQXJyYXkob3JpZ2luYWxBcnJheSkpIHtcbiAgICBDID0gb3JpZ2luYWxBcnJheS5jb25zdHJ1Y3RvcjtcbiAgICAvLyBjcm9zcy1yZWFsbSBmYWxsYmFja1xuICAgIGlmICh0eXBlb2YgQyA9PSAnZnVuY3Rpb24nICYmIChDID09PSBBcnJheSB8fCBpc0FycmF5KEMucHJvdG90eXBlKSkpIEMgPSB1bmRlZmluZWQ7XG4gICAgZWxzZSBpZiAoaXNPYmplY3QoQykpIHtcbiAgICAgIEMgPSBDW1NQRUNJRVNdO1xuICAgICAgaWYgKEMgPT09IG51bGwpIEMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9IHJldHVybiBuZXcgKEMgPT09IHVuZGVmaW5lZCA/IEFycmF5IDogQykobGVuZ3RoID09PSAwID8gMCA6IGxlbmd0aCk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcGF0aCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgcmVkZWZpbmVBbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUtYWxsJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG5cbnZhciBQcm9taXNlID0gZ2V0QnVpbHRJbignUHJvbWlzZScpO1xuXG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldDtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG5cbnZhciAkcmV0dXJuID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gIHZhciBpdGVyYXRvciA9IGdldEludGVybmFsU3RhdGUodGhpcykuaXRlcmF0b3I7XG4gIHZhciAkJHJldHVybiA9IGl0ZXJhdG9yWydyZXR1cm4nXTtcbiAgcmV0dXJuICQkcmV0dXJuID09PSB1bmRlZmluZWRcbiAgICA/IFByb21pc2UucmVzb2x2ZSh7IGRvbmU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KVxuICAgIDogYW5PYmplY3QoJCRyZXR1cm4uY2FsbChpdGVyYXRvciwgdmFsdWUpKTtcbn07XG5cbnZhciAkdGhyb3cgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgdmFyIGl0ZXJhdG9yID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKS5pdGVyYXRvcjtcbiAgdmFyICQkdGhyb3cgPSBpdGVyYXRvclsndGhyb3cnXTtcbiAgcmV0dXJuICQkdGhyb3cgPT09IHVuZGVmaW5lZFxuICAgID8gUHJvbWlzZS5yZWplY3QodmFsdWUpXG4gICAgOiAkJHRocm93LmNhbGwoaXRlcmF0b3IsIHZhbHVlKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5leHRIYW5kbGVyLCBJU19JVEVSQVRPUikge1xuICB2YXIgQXN5bmNJdGVyYXRvclByb3h5ID0gZnVuY3Rpb24gQXN5bmNJdGVyYXRvcihzdGF0ZSkge1xuICAgIHN0YXRlLm5leHQgPSBhRnVuY3Rpb24oc3RhdGUuaXRlcmF0b3IubmV4dCk7XG4gICAgc3RhdGUuZG9uZSA9IGZhbHNlO1xuICAgIHNldEludGVybmFsU3RhdGUodGhpcywgc3RhdGUpO1xuICB9O1xuXG4gIEFzeW5jSXRlcmF0b3JQcm94eS5wcm90b3R5cGUgPSByZWRlZmluZUFsbChjcmVhdGUocGF0aC5Bc3luY0l0ZXJhdG9yLnByb3RvdHlwZSksIHtcbiAgICBuZXh0OiBmdW5jdGlvbiBuZXh0KGFyZykge1xuICAgICAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgICAgIGlmIChzdGF0ZS5kb25lKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgZG9uZTogdHJ1ZSwgdmFsdWU6IHVuZGVmaW5lZCB9KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoYW5PYmplY3QobmV4dEhhbmRsZXIuY2FsbChzdGF0ZSwgYXJnLCBQcm9taXNlKSkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICAgIH1cbiAgICB9LFxuICAgICdyZXR1cm4nOiAkcmV0dXJuLFxuICAgICd0aHJvdyc6ICR0aHJvd1xuICB9KTtcblxuICBpZiAoIUlTX0lURVJBVE9SKSB7XG4gICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KEFzeW5jSXRlcmF0b3JQcm94eS5wcm90b3R5cGUsIFRPX1NUUklOR19UQUcsICdHZW5lcmF0b3InKTtcbiAgfVxuXG4gIHJldHVybiBBc3luY0l0ZXJhdG9yUHJveHk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaXRlcmF0b3ItaGVscGVyc1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcblxudmFyIFByb21pc2UgPSBnZXRCdWlsdEluKCdQcm9taXNlJyk7XG52YXIgcHVzaCA9IFtdLnB1c2g7XG5cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoVFlQRSkge1xuICB2YXIgSVNfVE9fQVJSQVkgPSBUWVBFID09IDA7XG4gIHZhciBJU19GT1JfRUFDSCA9IFRZUEUgPT0gMTtcbiAgdmFyIElTX0VWRVJZID0gVFlQRSA9PSAyO1xuICB2YXIgSVNfU09NRSA9IFRZUEUgPT0gMztcbiAgcmV0dXJuIGZ1bmN0aW9uIChpdGVyYXRvciwgZm4pIHtcbiAgICBhbk9iamVjdChpdGVyYXRvcik7XG4gICAgdmFyIG5leHQgPSBhRnVuY3Rpb24oaXRlcmF0b3IubmV4dCk7XG4gICAgdmFyIGFycmF5ID0gSVNfVE9fQVJSQVkgPyBbXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAoIUlTX1RPX0FSUkFZKSBhRnVuY3Rpb24oZm4pO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHZhciBsb29wID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIFByb21pc2UucmVzb2x2ZShhbk9iamVjdChuZXh0LmNhbGwoaXRlcmF0b3IpKSkudGhlbihmdW5jdGlvbiAoc3RlcCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWYgKGFuT2JqZWN0KHN0ZXApLmRvbmUpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKElTX1RPX0FSUkFZID8gYXJyYXkgOiBJU19TT01FID8gZmFsc2UgOiBJU19FVkVSWSB8fCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHN0ZXAudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKElTX1RPX0FSUkFZKSB7XG4gICAgICAgICAgICAgICAgICBwdXNoLmNhbGwoYXJyYXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGxvb3AoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKGZuKHZhbHVlKSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChJU19GT1JfRUFDSCkge1xuICAgICAgICAgICAgICAgICAgICAgIGxvb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChJU19FVkVSWSkge1xuICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA/IGxvb3AoKSA6IHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA/IHJlc29sdmUoSVNfU09NRSB8fCB2YWx1ZSkgOiBsb29wKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0sIHJlamVjdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsgcmVqZWN0KGVycik7IH1cbiAgICAgICAgICB9LCByZWplY3QpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikgeyByZWplY3QoZXJyb3IpOyB9XG4gICAgICB9O1xuXG4gICAgICBsb29wKCk7XG4gICAgfSk7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgdG9BcnJheTogY3JlYXRlTWV0aG9kKDApLFxuICBmb3JFYWNoOiBjcmVhdGVNZXRob2QoMSksXG4gIGV2ZXJ5OiBjcmVhdGVNZXRob2QoMiksXG4gIHNvbWU6IGNyZWF0ZU1ldGhvZCgzKSxcbiAgZmluZDogY3JlYXRlTWV0aG9kKDQpXG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xuXG52YXIgVVNFX0ZVTkNUSU9OX0NPTlNUUlVDVE9SID0gJ1VTRV9GVU5DVElPTl9DT05TVFJVQ1RPUic7XG52YXIgQVNZTkNfSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2FzeW5jSXRlcmF0b3InKTtcbnZhciBBc3luY0l0ZXJhdG9yID0gZ2xvYmFsLkFzeW5jSXRlcmF0b3I7XG52YXIgUGFzc2VkQXN5bmNJdGVyYXRvclByb3RvdHlwZSA9IHNoYXJlZC5Bc3luY0l0ZXJhdG9yUHJvdG90eXBlO1xudmFyIEFzeW5jSXRlcmF0b3JQcm90b3R5cGUsIHByb3RvdHlwZTtcblxuaWYgKCFJU19QVVJFKSB7XG4gIGlmIChQYXNzZWRBc3luY0l0ZXJhdG9yUHJvdG90eXBlKSB7XG4gICAgQXN5bmNJdGVyYXRvclByb3RvdHlwZSA9IFBhc3NlZEFzeW5jSXRlcmF0b3JQcm90b3R5cGU7XG4gIH0gZWxzZSBpZiAodHlwZW9mIEFzeW5jSXRlcmF0b3IgPT0gJ2Z1bmN0aW9uJykge1xuICAgIEFzeW5jSXRlcmF0b3JQcm90b3R5cGUgPSBBc3luY0l0ZXJhdG9yLnByb3RvdHlwZTtcbiAgfSBlbHNlIGlmIChzaGFyZWRbVVNFX0ZVTkNUSU9OX0NPTlNUUlVDVE9SXSB8fCBnbG9iYWxbVVNFX0ZVTkNUSU9OX0NPTlNUUlVDVE9SXSkge1xuICAgIHRyeSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgICAgIHByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKGdldFByb3RvdHlwZU9mKGdldFByb3RvdHlwZU9mKEZ1bmN0aW9uKCdyZXR1cm4gYXN5bmMgZnVuY3Rpb24qKCl7fSgpJykoKSkpKTtcbiAgICAgIGlmIChnZXRQcm90b3R5cGVPZihwcm90b3R5cGUpID09PSBPYmplY3QucHJvdG90eXBlKSBBc3luY0l0ZXJhdG9yUHJvdG90eXBlID0gcHJvdG90eXBlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgfVxufVxuXG5pZiAoIUFzeW5jSXRlcmF0b3JQcm90b3R5cGUpIEFzeW5jSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcblxuaWYgKCFoYXMoQXN5bmNJdGVyYXRvclByb3RvdHlwZSwgQVNZTkNfSVRFUkFUT1IpKSB7XG4gIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShBc3luY0l0ZXJhdG9yUHJvdG90eXBlLCBBU1lOQ19JVEVSQVRPUiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBBc3luY0l0ZXJhdG9yUHJvdG90eXBlO1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG4vLyBjYWxsIHNvbWV0aGluZyBvbiBpdGVyYXRvciBzdGVwIHdpdGggc2FmZSBjbG9zaW5nIG9uIGVycm9yXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVyYXRvciwgZm4sIHZhbHVlLCBFTlRSSUVTKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEVOVFJJRVMgPyBmbihhbk9iamVjdCh2YWx1ZSlbMF0sIHZhbHVlWzFdKSA6IGZuKHZhbHVlKTtcbiAgLy8gNy40LjYgSXRlcmF0b3JDbG9zZShpdGVyYXRvciwgY29tcGxldGlvbilcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB2YXIgcmV0dXJuTWV0aG9kID0gaXRlcmF0b3JbJ3JldHVybiddO1xuICAgIGlmIChyZXR1cm5NZXRob2QgIT09IHVuZGVmaW5lZCkgYW5PYmplY3QocmV0dXJuTWV0aG9kLmNhbGwoaXRlcmF0b3IpKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIFNBRkVfQ0xPU0lORyA9IGZhbHNlO1xuXG50cnkge1xuICB2YXIgY2FsbGVkID0gMDtcbiAgdmFyIGl0ZXJhdG9yV2l0aFJldHVybiA9IHtcbiAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4geyBkb25lOiAhIWNhbGxlZCsrIH07XG4gICAgfSxcbiAgICAncmV0dXJuJzogZnVuY3Rpb24gKCkge1xuICAgICAgU0FGRV9DTE9TSU5HID0gdHJ1ZTtcbiAgICB9XG4gIH07XG4gIGl0ZXJhdG9yV2l0aFJldHVybltJVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10aHJvdy1saXRlcmFsXG4gIEFycmF5LmZyb20oaXRlcmF0b3JXaXRoUmV0dXJuLCBmdW5jdGlvbiAoKSB7IHRocm93IDI7IH0pO1xufSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjLCBTS0lQX0NMT1NJTkcpIHtcbiAgaWYgKCFTS0lQX0NMT1NJTkcgJiYgIVNBRkVfQ0xPU0lORykgcmV0dXJuIGZhbHNlO1xuICB2YXIgSVRFUkFUSU9OX1NVUFBPUlQgPSBmYWxzZTtcbiAgdHJ5IHtcbiAgICB2YXIgb2JqZWN0ID0ge307XG4gICAgb2JqZWN0W0lURVJBVE9SXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4geyBkb25lOiBJVEVSQVRJT05fU1VQUE9SVCA9IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9O1xuICAgIGV4ZWMob2JqZWN0KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICByZXR1cm4gSVRFUkFUSU9OX1NVUFBPUlQ7XG59O1xuIiwidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGl0KS5zbGljZSg4LCAtMSk7XG59O1xuIiwidmFyIFRPX1NUUklOR19UQUdfU1VQUE9SVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQnKTtcbnZhciBjbGFzc29mUmF3ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBUT19TVFJJTkdfVEFHID0gd2VsbEtub3duU3ltYm9sKCd0b1N0cmluZ1RhZycpO1xuLy8gRVMzIHdyb25nIGhlcmVcbnZhciBDT1JSRUNUX0FSR1VNRU5UUyA9IGNsYXNzb2ZSYXcoZnVuY3Rpb24gKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpID09ICdBcmd1bWVudHMnO1xuXG4vLyBmYWxsYmFjayBmb3IgSUUxMSBTY3JpcHQgQWNjZXNzIERlbmllZCBlcnJvclxudmFyIHRyeUdldCA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGl0W2tleV07XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbn07XG5cbi8vIGdldHRpbmcgdGFnIGZyb20gRVM2KyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2Bcbm1vZHVsZS5leHBvcnRzID0gVE9fU1RSSU5HX1RBR19TVVBQT1JUID8gY2xhc3NvZlJhdyA6IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgTywgdGFnLCByZXN1bHQ7XG4gIHJldHVybiBpdCA9PT0gdW5kZWZpbmVkID8gJ1VuZGVmaW5lZCcgOiBpdCA9PT0gbnVsbCA/ICdOdWxsJ1xuICAgIC8vIEBAdG9TdHJpbmdUYWcgY2FzZVxuICAgIDogdHlwZW9mICh0YWcgPSB0cnlHZXQoTyA9IE9iamVjdChpdCksIFRPX1NUUklOR19UQUcpKSA9PSAnc3RyaW5nJyA/IHRhZ1xuICAgIC8vIGJ1aWx0aW5UYWcgY2FzZVxuICAgIDogQ09SUkVDVF9BUkdVTUVOVFMgPyBjbGFzc29mUmF3KE8pXG4gICAgLy8gRVMzIGFyZ3VtZW50cyBmYWxsYmFja1xuICAgIDogKHJlc3VsdCA9IGNsYXNzb2ZSYXcoTykpID09ICdPYmplY3QnICYmIHR5cGVvZiBPLmNhbGxlZSA9PSAnZnVuY3Rpb24nID8gJ0FyZ3VtZW50cycgOiByZXN1bHQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L2NvbGxlY3Rpb24tbWV0aG9kc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoLyogLi4uZWxlbWVudHMgKi8pIHtcbiAgdmFyIHNldCA9IGFuT2JqZWN0KHRoaXMpO1xuICB2YXIgYWRkZXIgPSBhRnVuY3Rpb24oc2V0LmFkZCk7XG4gIGZvciAodmFyIGsgPSAwLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoOyBrIDwgbGVuOyBrKyspIHtcbiAgICBhZGRlci5jYWxsKHNldCwgYXJndW1lbnRzW2tdKTtcbiAgfVxuICByZXR1cm4gc2V0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9jb2xsZWN0aW9uLW1ldGhvZHNcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKC8qIC4uLmVsZW1lbnRzICovKSB7XG4gIHZhciBjb2xsZWN0aW9uID0gYW5PYmplY3QodGhpcyk7XG4gIHZhciByZW1vdmVyID0gYUZ1bmN0aW9uKGNvbGxlY3Rpb25bJ2RlbGV0ZSddKTtcbiAgdmFyIGFsbERlbGV0ZWQgPSB0cnVlO1xuICB2YXIgd2FzRGVsZXRlZDtcbiAgZm9yICh2YXIgayA9IDAsIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGsgPCBsZW47IGsrKykge1xuICAgIHdhc0RlbGV0ZWQgPSByZW1vdmVyLmNhbGwoY29sbGVjdGlvbiwgYXJndW1lbnRzW2tdKTtcbiAgICBhbGxEZWxldGVkID0gYWxsRGVsZXRlZCAmJiB3YXNEZWxldGVkO1xuICB9XG4gIHJldHVybiAhIWFsbERlbGV0ZWQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9wcm9wb3NhbC1zZXRtYXAtb2Zmcm9tL1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQnKTtcbnZhciBpdGVyYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBmcm9tKHNvdXJjZSAvKiAsIG1hcEZuLCB0aGlzQXJnICovKSB7XG4gIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgbWFwRm4gPSBsZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkO1xuICB2YXIgbWFwcGluZywgQSwgbiwgYm91bmRGdW5jdGlvbjtcbiAgYUZ1bmN0aW9uKHRoaXMpO1xuICBtYXBwaW5nID0gbWFwRm4gIT09IHVuZGVmaW5lZDtcbiAgaWYgKG1hcHBpbmcpIGFGdW5jdGlvbihtYXBGbik7XG4gIGlmIChzb3VyY2UgPT0gdW5kZWZpbmVkKSByZXR1cm4gbmV3IHRoaXMoKTtcbiAgQSA9IFtdO1xuICBpZiAobWFwcGluZykge1xuICAgIG4gPSAwO1xuICAgIGJvdW5kRnVuY3Rpb24gPSBiaW5kKG1hcEZuLCBsZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkLCAyKTtcbiAgICBpdGVyYXRlKHNvdXJjZSwgZnVuY3Rpb24gKG5leHRJdGVtKSB7XG4gICAgICBBLnB1c2goYm91bmRGdW5jdGlvbihuZXh0SXRlbSwgbisrKSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgaXRlcmF0ZShzb3VyY2UsIEEucHVzaCwgQSk7XG4gIH1cbiAgcmV0dXJuIG5ldyB0aGlzKEEpO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vcHJvcG9zYWwtc2V0bWFwLW9mZnJvbS9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gb2YoKSB7XG4gIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgQSA9IG5ldyBBcnJheShsZW5ndGgpO1xuICB3aGlsZSAobGVuZ3RoLS0pIEFbbGVuZ3RoXSA9IGFyZ3VtZW50c1tsZW5ndGhdO1xuICByZXR1cm4gbmV3IHRoaXMoQSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgcmVkZWZpbmVBbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUtYWxsJyk7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQnKTtcbnZhciBhbkluc3RhbmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLWluc3RhbmNlJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG52YXIgZGVmaW5lSXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWl0ZXJhdG9yJyk7XG52YXIgc2V0U3BlY2llcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtc3BlY2llcycpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFzdEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1tZXRhZGF0YScpLmZhc3RLZXk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xuXG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGludGVybmFsU3RhdGVHZXR0ZXJGb3IgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvcjtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGdldENvbnN0cnVjdG9yOiBmdW5jdGlvbiAod3JhcHBlciwgQ09OU1RSVUNUT1JfTkFNRSwgSVNfTUFQLCBBRERFUikge1xuICAgIHZhciBDID0gd3JhcHBlcihmdW5jdGlvbiAodGhhdCwgaXRlcmFibGUpIHtcbiAgICAgIGFuSW5zdGFuY2UodGhhdCwgQywgQ09OU1RSVUNUT1JfTkFNRSk7XG4gICAgICBzZXRJbnRlcm5hbFN0YXRlKHRoYXQsIHtcbiAgICAgICAgdHlwZTogQ09OU1RSVUNUT1JfTkFNRSxcbiAgICAgICAgaW5kZXg6IGNyZWF0ZShudWxsKSxcbiAgICAgICAgZmlyc3Q6IHVuZGVmaW5lZCxcbiAgICAgICAgbGFzdDogdW5kZWZpbmVkLFxuICAgICAgICBzaXplOiAwXG4gICAgICB9KTtcbiAgICAgIGlmICghREVTQ1JJUFRPUlMpIHRoYXQuc2l6ZSA9IDA7XG4gICAgICBpZiAoaXRlcmFibGUgIT0gdW5kZWZpbmVkKSBpdGVyYXRlKGl0ZXJhYmxlLCB0aGF0W0FEREVSXSwgdGhhdCwgSVNfTUFQKTtcbiAgICB9KTtcblxuICAgIHZhciBnZXRJbnRlcm5hbFN0YXRlID0gaW50ZXJuYWxTdGF0ZUdldHRlckZvcihDT05TVFJVQ1RPUl9OQU1FKTtcblxuICAgIHZhciBkZWZpbmUgPSBmdW5jdGlvbiAodGhhdCwga2V5LCB2YWx1ZSkge1xuICAgICAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGF0KTtcbiAgICAgIHZhciBlbnRyeSA9IGdldEVudHJ5KHRoYXQsIGtleSk7XG4gICAgICB2YXIgcHJldmlvdXMsIGluZGV4O1xuICAgICAgLy8gY2hhbmdlIGV4aXN0aW5nIGVudHJ5XG4gICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgZW50cnkudmFsdWUgPSB2YWx1ZTtcbiAgICAgIC8vIGNyZWF0ZSBuZXcgZW50cnlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLmxhc3QgPSBlbnRyeSA9IHtcbiAgICAgICAgICBpbmRleDogaW5kZXggPSBmYXN0S2V5KGtleSwgdHJ1ZSksXG4gICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgIHByZXZpb3VzOiBwcmV2aW91cyA9IHN0YXRlLmxhc3QsXG4gICAgICAgICAgbmV4dDogdW5kZWZpbmVkLFxuICAgICAgICAgIHJlbW92ZWQ6IGZhbHNlXG4gICAgICAgIH07XG4gICAgICAgIGlmICghc3RhdGUuZmlyc3QpIHN0YXRlLmZpcnN0ID0gZW50cnk7XG4gICAgICAgIGlmIChwcmV2aW91cykgcHJldmlvdXMubmV4dCA9IGVudHJ5O1xuICAgICAgICBpZiAoREVTQ1JJUFRPUlMpIHN0YXRlLnNpemUrKztcbiAgICAgICAgZWxzZSB0aGF0LnNpemUrKztcbiAgICAgICAgLy8gYWRkIHRvIGluZGV4XG4gICAgICAgIGlmIChpbmRleCAhPT0gJ0YnKSBzdGF0ZS5pbmRleFtpbmRleF0gPSBlbnRyeTtcbiAgICAgIH0gcmV0dXJuIHRoYXQ7XG4gICAgfTtcblxuICAgIHZhciBnZXRFbnRyeSA9IGZ1bmN0aW9uICh0aGF0LCBrZXkpIHtcbiAgICAgIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUodGhhdCk7XG4gICAgICAvLyBmYXN0IGNhc2VcbiAgICAgIHZhciBpbmRleCA9IGZhc3RLZXkoa2V5KTtcbiAgICAgIHZhciBlbnRyeTtcbiAgICAgIGlmIChpbmRleCAhPT0gJ0YnKSByZXR1cm4gc3RhdGUuaW5kZXhbaW5kZXhdO1xuICAgICAgLy8gZnJvemVuIG9iamVjdCBjYXNlXG4gICAgICBmb3IgKGVudHJ5ID0gc3RhdGUuZmlyc3Q7IGVudHJ5OyBlbnRyeSA9IGVudHJ5Lm5leHQpIHtcbiAgICAgICAgaWYgKGVudHJ5LmtleSA9PSBrZXkpIHJldHVybiBlbnRyeTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmVkZWZpbmVBbGwoQy5wcm90b3R5cGUsIHtcbiAgICAgIC8vIDIzLjEuMy4xIE1hcC5wcm90b3R5cGUuY2xlYXIoKVxuICAgICAgLy8gMjMuMi4zLjIgU2V0LnByb3RvdHlwZS5jbGVhcigpXG4gICAgICBjbGVhcjogZnVuY3Rpb24gY2xlYXIoKSB7XG4gICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGF0KTtcbiAgICAgICAgdmFyIGRhdGEgPSBzdGF0ZS5pbmRleDtcbiAgICAgICAgdmFyIGVudHJ5ID0gc3RhdGUuZmlyc3Q7XG4gICAgICAgIHdoaWxlIChlbnRyeSkge1xuICAgICAgICAgIGVudHJ5LnJlbW92ZWQgPSB0cnVlO1xuICAgICAgICAgIGlmIChlbnRyeS5wcmV2aW91cykgZW50cnkucHJldmlvdXMgPSBlbnRyeS5wcmV2aW91cy5uZXh0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGRlbGV0ZSBkYXRhW2VudHJ5LmluZGV4XTtcbiAgICAgICAgICBlbnRyeSA9IGVudHJ5Lm5leHQ7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGUuZmlyc3QgPSBzdGF0ZS5sYXN0ID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoREVTQ1JJUFRPUlMpIHN0YXRlLnNpemUgPSAwO1xuICAgICAgICBlbHNlIHRoYXQuc2l6ZSA9IDA7XG4gICAgICB9LFxuICAgICAgLy8gMjMuMS4zLjMgTWFwLnByb3RvdHlwZS5kZWxldGUoa2V5KVxuICAgICAgLy8gMjMuMi4zLjQgU2V0LnByb3RvdHlwZS5kZWxldGUodmFsdWUpXG4gICAgICAnZGVsZXRlJzogZnVuY3Rpb24gKGtleSkge1xuICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUodGhhdCk7XG4gICAgICAgIHZhciBlbnRyeSA9IGdldEVudHJ5KHRoYXQsIGtleSk7XG4gICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgIHZhciBuZXh0ID0gZW50cnkubmV4dDtcbiAgICAgICAgICB2YXIgcHJldiA9IGVudHJ5LnByZXZpb3VzO1xuICAgICAgICAgIGRlbGV0ZSBzdGF0ZS5pbmRleFtlbnRyeS5pbmRleF07XG4gICAgICAgICAgZW50cnkucmVtb3ZlZCA9IHRydWU7XG4gICAgICAgICAgaWYgKHByZXYpIHByZXYubmV4dCA9IG5leHQ7XG4gICAgICAgICAgaWYgKG5leHQpIG5leHQucHJldmlvdXMgPSBwcmV2O1xuICAgICAgICAgIGlmIChzdGF0ZS5maXJzdCA9PSBlbnRyeSkgc3RhdGUuZmlyc3QgPSBuZXh0O1xuICAgICAgICAgIGlmIChzdGF0ZS5sYXN0ID09IGVudHJ5KSBzdGF0ZS5sYXN0ID0gcHJldjtcbiAgICAgICAgICBpZiAoREVTQ1JJUFRPUlMpIHN0YXRlLnNpemUtLTtcbiAgICAgICAgICBlbHNlIHRoYXQuc2l6ZS0tO1xuICAgICAgICB9IHJldHVybiAhIWVudHJ5O1xuICAgICAgfSxcbiAgICAgIC8vIDIzLjIuMy42IFNldC5wcm90b3R5cGUuZm9yRWFjaChjYWxsYmFja2ZuLCB0aGlzQXJnID0gdW5kZWZpbmVkKVxuICAgICAgLy8gMjMuMS4zLjUgTWFwLnByb3RvdHlwZS5mb3JFYWNoKGNhbGxiYWNrZm4sIHRoaXNBcmcgPSB1bmRlZmluZWQpXG4gICAgICBmb3JFYWNoOiBmdW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrZm4gLyogLCB0aGF0ID0gdW5kZWZpbmVkICovKSB7XG4gICAgICAgIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUodGhpcyk7XG4gICAgICAgIHZhciBib3VuZEZ1bmN0aW9uID0gYmluZChjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCwgMyk7XG4gICAgICAgIHZhciBlbnRyeTtcbiAgICAgICAgd2hpbGUgKGVudHJ5ID0gZW50cnkgPyBlbnRyeS5uZXh0IDogc3RhdGUuZmlyc3QpIHtcbiAgICAgICAgICBib3VuZEZ1bmN0aW9uKGVudHJ5LnZhbHVlLCBlbnRyeS5rZXksIHRoaXMpO1xuICAgICAgICAgIC8vIHJldmVydCB0byB0aGUgbGFzdCBleGlzdGluZyBlbnRyeVxuICAgICAgICAgIHdoaWxlIChlbnRyeSAmJiBlbnRyeS5yZW1vdmVkKSBlbnRyeSA9IGVudHJ5LnByZXZpb3VzO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLy8gMjMuMS4zLjcgTWFwLnByb3RvdHlwZS5oYXMoa2V5KVxuICAgICAgLy8gMjMuMi4zLjcgU2V0LnByb3RvdHlwZS5oYXModmFsdWUpXG4gICAgICBoYXM6IGZ1bmN0aW9uIGhhcyhrZXkpIHtcbiAgICAgICAgcmV0dXJuICEhZ2V0RW50cnkodGhpcywga2V5KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJlZGVmaW5lQWxsKEMucHJvdG90eXBlLCBJU19NQVAgPyB7XG4gICAgICAvLyAyMy4xLjMuNiBNYXAucHJvdG90eXBlLmdldChrZXkpXG4gICAgICBnZXQ6IGZ1bmN0aW9uIGdldChrZXkpIHtcbiAgICAgICAgdmFyIGVudHJ5ID0gZ2V0RW50cnkodGhpcywga2V5KTtcbiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIGVudHJ5LnZhbHVlO1xuICAgICAgfSxcbiAgICAgIC8vIDIzLjEuMy45IE1hcC5wcm90b3R5cGUuc2V0KGtleSwgdmFsdWUpXG4gICAgICBzZXQ6IGZ1bmN0aW9uIHNldChrZXksIHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBkZWZpbmUodGhpcywga2V5ID09PSAwID8gMCA6IGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gOiB7XG4gICAgICAvLyAyMy4yLjMuMSBTZXQucHJvdG90eXBlLmFkZCh2YWx1ZSlcbiAgICAgIGFkZDogZnVuY3Rpb24gYWRkKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBkZWZpbmUodGhpcywgdmFsdWUgPSB2YWx1ZSA9PT0gMCA/IDAgOiB2YWx1ZSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChERVNDUklQVE9SUykgZGVmaW5lUHJvcGVydHkoQy5wcm90b3R5cGUsICdzaXplJywge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpLnNpemU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIEM7XG4gIH0sXG4gIHNldFN0cm9uZzogZnVuY3Rpb24gKEMsIENPTlNUUlVDVE9SX05BTUUsIElTX01BUCkge1xuICAgIHZhciBJVEVSQVRPUl9OQU1FID0gQ09OU1RSVUNUT1JfTkFNRSArICcgSXRlcmF0b3InO1xuICAgIHZhciBnZXRJbnRlcm5hbENvbGxlY3Rpb25TdGF0ZSA9IGludGVybmFsU3RhdGVHZXR0ZXJGb3IoQ09OU1RSVUNUT1JfTkFNRSk7XG4gICAgdmFyIGdldEludGVybmFsSXRlcmF0b3JTdGF0ZSA9IGludGVybmFsU3RhdGVHZXR0ZXJGb3IoSVRFUkFUT1JfTkFNRSk7XG4gICAgLy8gYWRkIC5rZXlzLCAudmFsdWVzLCAuZW50cmllcywgW0BAaXRlcmF0b3JdXG4gICAgLy8gMjMuMS4zLjQsIDIzLjEuMy44LCAyMy4xLjMuMTEsIDIzLjEuMy4xMiwgMjMuMi4zLjUsIDIzLjIuMy44LCAyMy4yLjMuMTAsIDIzLjIuMy4xMVxuICAgIGRlZmluZUl0ZXJhdG9yKEMsIENPTlNUUlVDVE9SX05BTUUsIGZ1bmN0aW9uIChpdGVyYXRlZCwga2luZCkge1xuICAgICAgc2V0SW50ZXJuYWxTdGF0ZSh0aGlzLCB7XG4gICAgICAgIHR5cGU6IElURVJBVE9SX05BTUUsXG4gICAgICAgIHRhcmdldDogaXRlcmF0ZWQsXG4gICAgICAgIHN0YXRlOiBnZXRJbnRlcm5hbENvbGxlY3Rpb25TdGF0ZShpdGVyYXRlZCksXG4gICAgICAgIGtpbmQ6IGtpbmQsXG4gICAgICAgIGxhc3Q6IHVuZGVmaW5lZFxuICAgICAgfSk7XG4gICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxJdGVyYXRvclN0YXRlKHRoaXMpO1xuICAgICAgdmFyIGtpbmQgPSBzdGF0ZS5raW5kO1xuICAgICAgdmFyIGVudHJ5ID0gc3RhdGUubGFzdDtcbiAgICAgIC8vIHJldmVydCB0byB0aGUgbGFzdCBleGlzdGluZyBlbnRyeVxuICAgICAgd2hpbGUgKGVudHJ5ICYmIGVudHJ5LnJlbW92ZWQpIGVudHJ5ID0gZW50cnkucHJldmlvdXM7XG4gICAgICAvLyBnZXQgbmV4dCBlbnRyeVxuICAgICAgaWYgKCFzdGF0ZS50YXJnZXQgfHwgIShzdGF0ZS5sYXN0ID0gZW50cnkgPSBlbnRyeSA/IGVudHJ5Lm5leHQgOiBzdGF0ZS5zdGF0ZS5maXJzdCkpIHtcbiAgICAgICAgLy8gb3IgZmluaXNoIHRoZSBpdGVyYXRpb25cbiAgICAgICAgc3RhdGUudGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gICAgICB9XG4gICAgICAvLyByZXR1cm4gc3RlcCBieSBraW5kXG4gICAgICBpZiAoa2luZCA9PSAna2V5cycpIHJldHVybiB7IHZhbHVlOiBlbnRyeS5rZXksIGRvbmU6IGZhbHNlIH07XG4gICAgICBpZiAoa2luZCA9PSAndmFsdWVzJykgcmV0dXJuIHsgdmFsdWU6IGVudHJ5LnZhbHVlLCBkb25lOiBmYWxzZSB9O1xuICAgICAgcmV0dXJuIHsgdmFsdWU6IFtlbnRyeS5rZXksIGVudHJ5LnZhbHVlXSwgZG9uZTogZmFsc2UgfTtcbiAgICB9LCBJU19NQVAgPyAnZW50cmllcycgOiAndmFsdWVzJywgIUlTX01BUCwgdHJ1ZSk7XG5cbiAgICAvLyBhZGQgW0BAc3BlY2llc10sIDIzLjEuMi4yLCAyMy4yLjIuMlxuICAgIHNldFNwZWNpZXMoQ09OU1RSVUNUT1JfTkFNRSk7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcmVkZWZpbmVBbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUtYWxsJyk7XG52YXIgZ2V0V2Vha0RhdGEgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtbWV0YWRhdGEnKS5nZXRXZWFrRGF0YTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBhbkluc3RhbmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLWluc3RhbmNlJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG52YXIgQXJyYXlJdGVyYXRpb25Nb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJyk7XG52YXIgJGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG5cbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgaW50ZXJuYWxTdGF0ZUdldHRlckZvciA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yO1xudmFyIGZpbmQgPSBBcnJheUl0ZXJhdGlvbk1vZHVsZS5maW5kO1xudmFyIGZpbmRJbmRleCA9IEFycmF5SXRlcmF0aW9uTW9kdWxlLmZpbmRJbmRleDtcbnZhciBpZCA9IDA7XG5cbi8vIGZhbGxiYWNrIGZvciB1bmNhdWdodCBmcm96ZW4ga2V5c1xudmFyIHVuY2F1Z2h0RnJvemVuU3RvcmUgPSBmdW5jdGlvbiAoc3RvcmUpIHtcbiAgcmV0dXJuIHN0b3JlLmZyb3plbiB8fCAoc3RvcmUuZnJvemVuID0gbmV3IFVuY2F1Z2h0RnJvemVuU3RvcmUoKSk7XG59O1xuXG52YXIgVW5jYXVnaHRGcm96ZW5TdG9yZSA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5lbnRyaWVzID0gW107XG59O1xuXG52YXIgZmluZFVuY2F1Z2h0RnJvemVuID0gZnVuY3Rpb24gKHN0b3JlLCBrZXkpIHtcbiAgcmV0dXJuIGZpbmQoc3RvcmUuZW50cmllcywgZnVuY3Rpb24gKGl0KSB7XG4gICAgcmV0dXJuIGl0WzBdID09PSBrZXk7XG4gIH0pO1xufTtcblxuVW5jYXVnaHRGcm96ZW5TdG9yZS5wcm90b3R5cGUgPSB7XG4gIGdldDogZnVuY3Rpb24gKGtleSkge1xuICAgIHZhciBlbnRyeSA9IGZpbmRVbmNhdWdodEZyb3plbih0aGlzLCBrZXkpO1xuICAgIGlmIChlbnRyeSkgcmV0dXJuIGVudHJ5WzFdO1xuICB9LFxuICBoYXM6IGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXR1cm4gISFmaW5kVW5jYXVnaHRGcm96ZW4odGhpcywga2V5KTtcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgIHZhciBlbnRyeSA9IGZpbmRVbmNhdWdodEZyb3plbih0aGlzLCBrZXkpO1xuICAgIGlmIChlbnRyeSkgZW50cnlbMV0gPSB2YWx1ZTtcbiAgICBlbHNlIHRoaXMuZW50cmllcy5wdXNoKFtrZXksIHZhbHVlXSk7XG4gIH0sXG4gICdkZWxldGUnOiBmdW5jdGlvbiAoa2V5KSB7XG4gICAgdmFyIGluZGV4ID0gZmluZEluZGV4KHRoaXMuZW50cmllcywgZnVuY3Rpb24gKGl0KSB7XG4gICAgICByZXR1cm4gaXRbMF0gPT09IGtleTtcbiAgICB9KTtcbiAgICBpZiAofmluZGV4KSB0aGlzLmVudHJpZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICByZXR1cm4gISF+aW5kZXg7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBnZXRDb25zdHJ1Y3RvcjogZnVuY3Rpb24gKHdyYXBwZXIsIENPTlNUUlVDVE9SX05BTUUsIElTX01BUCwgQURERVIpIHtcbiAgICB2YXIgQyA9IHdyYXBwZXIoZnVuY3Rpb24gKHRoYXQsIGl0ZXJhYmxlKSB7XG4gICAgICBhbkluc3RhbmNlKHRoYXQsIEMsIENPTlNUUlVDVE9SX05BTUUpO1xuICAgICAgc2V0SW50ZXJuYWxTdGF0ZSh0aGF0LCB7XG4gICAgICAgIHR5cGU6IENPTlNUUlVDVE9SX05BTUUsXG4gICAgICAgIGlkOiBpZCsrLFxuICAgICAgICBmcm96ZW46IHVuZGVmaW5lZFxuICAgICAgfSk7XG4gICAgICBpZiAoaXRlcmFibGUgIT0gdW5kZWZpbmVkKSBpdGVyYXRlKGl0ZXJhYmxlLCB0aGF0W0FEREVSXSwgdGhhdCwgSVNfTUFQKTtcbiAgICB9KTtcblxuICAgIHZhciBnZXRJbnRlcm5hbFN0YXRlID0gaW50ZXJuYWxTdGF0ZUdldHRlckZvcihDT05TVFJVQ1RPUl9OQU1FKTtcblxuICAgIHZhciBkZWZpbmUgPSBmdW5jdGlvbiAodGhhdCwga2V5LCB2YWx1ZSkge1xuICAgICAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGF0KTtcbiAgICAgIHZhciBkYXRhID0gZ2V0V2Vha0RhdGEoYW5PYmplY3Qoa2V5KSwgdHJ1ZSk7XG4gICAgICBpZiAoZGF0YSA9PT0gdHJ1ZSkgdW5jYXVnaHRGcm96ZW5TdG9yZShzdGF0ZSkuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgZWxzZSBkYXRhW3N0YXRlLmlkXSA9IHZhbHVlO1xuICAgICAgcmV0dXJuIHRoYXQ7XG4gICAgfTtcblxuICAgIHJlZGVmaW5lQWxsKEMucHJvdG90eXBlLCB7XG4gICAgICAvLyAyMy4zLjMuMiBXZWFrTWFwLnByb3RvdHlwZS5kZWxldGUoa2V5KVxuICAgICAgLy8gMjMuNC4zLjMgV2Vha1NldC5wcm90b3R5cGUuZGVsZXRlKHZhbHVlKVxuICAgICAgJ2RlbGV0ZSc6IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgICAgICAgaWYgKCFpc09iamVjdChrZXkpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHZhciBkYXRhID0gZ2V0V2Vha0RhdGEoa2V5KTtcbiAgICAgICAgaWYgKGRhdGEgPT09IHRydWUpIHJldHVybiB1bmNhdWdodEZyb3plblN0b3JlKHN0YXRlKVsnZGVsZXRlJ10oa2V5KTtcbiAgICAgICAgcmV0dXJuIGRhdGEgJiYgJGhhcyhkYXRhLCBzdGF0ZS5pZCkgJiYgZGVsZXRlIGRhdGFbc3RhdGUuaWRdO1xuICAgICAgfSxcbiAgICAgIC8vIDIzLjMuMy40IFdlYWtNYXAucHJvdG90eXBlLmhhcyhrZXkpXG4gICAgICAvLyAyMy40LjMuNCBXZWFrU2V0LnByb3RvdHlwZS5oYXModmFsdWUpXG4gICAgICBoYXM6IGZ1bmN0aW9uIGhhcyhrZXkpIHtcbiAgICAgICAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgICAgICAgaWYgKCFpc09iamVjdChrZXkpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHZhciBkYXRhID0gZ2V0V2Vha0RhdGEoa2V5KTtcbiAgICAgICAgaWYgKGRhdGEgPT09IHRydWUpIHJldHVybiB1bmNhdWdodEZyb3plblN0b3JlKHN0YXRlKS5oYXMoa2V5KTtcbiAgICAgICAgcmV0dXJuIGRhdGEgJiYgJGhhcyhkYXRhLCBzdGF0ZS5pZCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZWRlZmluZUFsbChDLnByb3RvdHlwZSwgSVNfTUFQID8ge1xuICAgICAgLy8gMjMuMy4zLjMgV2Vha01hcC5wcm90b3R5cGUuZ2V0KGtleSlcbiAgICAgIGdldDogZnVuY3Rpb24gZ2V0KGtleSkge1xuICAgICAgICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpO1xuICAgICAgICBpZiAoaXNPYmplY3Qoa2V5KSkge1xuICAgICAgICAgIHZhciBkYXRhID0gZ2V0V2Vha0RhdGEoa2V5KTtcbiAgICAgICAgICBpZiAoZGF0YSA9PT0gdHJ1ZSkgcmV0dXJuIHVuY2F1Z2h0RnJvemVuU3RvcmUoc3RhdGUpLmdldChrZXkpO1xuICAgICAgICAgIHJldHVybiBkYXRhID8gZGF0YVtzdGF0ZS5pZF0gOiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyAyMy4zLjMuNSBXZWFrTWFwLnByb3RvdHlwZS5zZXQoa2V5LCB2YWx1ZSlcbiAgICAgIHNldDogZnVuY3Rpb24gc2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGRlZmluZSh0aGlzLCBrZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9IDoge1xuICAgICAgLy8gMjMuNC4zLjEgV2Vha1NldC5wcm90b3R5cGUuYWRkKHZhbHVlKVxuICAgICAgYWRkOiBmdW5jdGlvbiBhZGQodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGRlZmluZSh0aGlzLCB2YWx1ZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gQztcbiAgfVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpc0ZvcmNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1mb3JjZWQnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWRlZmluZScpO1xudmFyIEludGVybmFsTWV0YWRhdGFNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtbWV0YWRhdGEnKTtcbnZhciBpdGVyYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdGUnKTtcbnZhciBhbkluc3RhbmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLWluc3RhbmNlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBjaGVja0NvcnJlY3RuZXNzT2ZJdGVyYXRpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2hlY2stY29ycmVjdG5lc3Mtb2YtaXRlcmF0aW9uJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBpbmhlcml0SWZSZXF1aXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmhlcml0LWlmLXJlcXVpcmVkJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENPTlNUUlVDVE9SX05BTUUsIHdyYXBwZXIsIGNvbW1vbikge1xuICB2YXIgSVNfTUFQID0gQ09OU1RSVUNUT1JfTkFNRS5pbmRleE9mKCdNYXAnKSAhPT0gLTE7XG4gIHZhciBJU19XRUFLID0gQ09OU1RSVUNUT1JfTkFNRS5pbmRleE9mKCdXZWFrJykgIT09IC0xO1xuICB2YXIgQURERVIgPSBJU19NQVAgPyAnc2V0JyA6ICdhZGQnO1xuICB2YXIgTmF0aXZlQ29uc3RydWN0b3IgPSBnbG9iYWxbQ09OU1RSVUNUT1JfTkFNRV07XG4gIHZhciBOYXRpdmVQcm90b3R5cGUgPSBOYXRpdmVDb25zdHJ1Y3RvciAmJiBOYXRpdmVDb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIHZhciBDb25zdHJ1Y3RvciA9IE5hdGl2ZUNvbnN0cnVjdG9yO1xuICB2YXIgZXhwb3J0ZWQgPSB7fTtcblxuICB2YXIgZml4TWV0aG9kID0gZnVuY3Rpb24gKEtFWSkge1xuICAgIHZhciBuYXRpdmVNZXRob2QgPSBOYXRpdmVQcm90b3R5cGVbS0VZXTtcbiAgICByZWRlZmluZShOYXRpdmVQcm90b3R5cGUsIEtFWSxcbiAgICAgIEtFWSA9PSAnYWRkJyA/IGZ1bmN0aW9uIGFkZCh2YWx1ZSkge1xuICAgICAgICBuYXRpdmVNZXRob2QuY2FsbCh0aGlzLCB2YWx1ZSA9PT0gMCA/IDAgOiB2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSA6IEtFWSA9PSAnZGVsZXRlJyA/IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgcmV0dXJuIElTX1dFQUsgJiYgIWlzT2JqZWN0KGtleSkgPyBmYWxzZSA6IG5hdGl2ZU1ldGhvZC5jYWxsKHRoaXMsIGtleSA9PT0gMCA/IDAgOiBrZXkpO1xuICAgICAgfSA6IEtFWSA9PSAnZ2V0JyA/IGZ1bmN0aW9uIGdldChrZXkpIHtcbiAgICAgICAgcmV0dXJuIElTX1dFQUsgJiYgIWlzT2JqZWN0KGtleSkgPyB1bmRlZmluZWQgOiBuYXRpdmVNZXRob2QuY2FsbCh0aGlzLCBrZXkgPT09IDAgPyAwIDoga2V5KTtcbiAgICAgIH0gOiBLRVkgPT0gJ2hhcycgPyBmdW5jdGlvbiBoYXMoa2V5KSB7XG4gICAgICAgIHJldHVybiBJU19XRUFLICYmICFpc09iamVjdChrZXkpID8gZmFsc2UgOiBuYXRpdmVNZXRob2QuY2FsbCh0aGlzLCBrZXkgPT09IDAgPyAwIDoga2V5KTtcbiAgICAgIH0gOiBmdW5jdGlvbiBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICBuYXRpdmVNZXRob2QuY2FsbCh0aGlzLCBrZXkgPT09IDAgPyAwIDoga2V5LCB2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuICAgICk7XG4gIH07XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgaWYgKGlzRm9yY2VkKENPTlNUUlVDVE9SX05BTUUsIHR5cGVvZiBOYXRpdmVDb25zdHJ1Y3RvciAhPSAnZnVuY3Rpb24nIHx8ICEoSVNfV0VBSyB8fCBOYXRpdmVQcm90b3R5cGUuZm9yRWFjaCAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIG5ldyBOYXRpdmVDb25zdHJ1Y3RvcigpLmVudHJpZXMoKS5uZXh0KCk7XG4gIH0pKSkpIHtcbiAgICAvLyBjcmVhdGUgY29sbGVjdGlvbiBjb25zdHJ1Y3RvclxuICAgIENvbnN0cnVjdG9yID0gY29tbW9uLmdldENvbnN0cnVjdG9yKHdyYXBwZXIsIENPTlNUUlVDVE9SX05BTUUsIElTX01BUCwgQURERVIpO1xuICAgIEludGVybmFsTWV0YWRhdGFNb2R1bGUuUkVRVUlSRUQgPSB0cnVlO1xuICB9IGVsc2UgaWYgKGlzRm9yY2VkKENPTlNUUlVDVE9SX05BTUUsIHRydWUpKSB7XG4gICAgdmFyIGluc3RhbmNlID0gbmV3IENvbnN0cnVjdG9yKCk7XG4gICAgLy8gZWFybHkgaW1wbGVtZW50YXRpb25zIG5vdCBzdXBwb3J0cyBjaGFpbmluZ1xuICAgIHZhciBIQVNOVF9DSEFJTklORyA9IGluc3RhbmNlW0FEREVSXShJU19XRUFLID8ge30gOiAtMCwgMSkgIT0gaW5zdGFuY2U7XG4gICAgLy8gVjggfiBDaHJvbWl1bSA0MC0gd2Vhay1jb2xsZWN0aW9ucyB0aHJvd3Mgb24gcHJpbWl0aXZlcywgYnV0IHNob3VsZCByZXR1cm4gZmFsc2VcbiAgICB2YXIgVEhST1dTX09OX1BSSU1JVElWRVMgPSBmYWlscyhmdW5jdGlvbiAoKSB7IGluc3RhbmNlLmhhcygxKTsgfSk7XG4gICAgLy8gbW9zdCBlYXJseSBpbXBsZW1lbnRhdGlvbnMgZG9lc24ndCBzdXBwb3J0cyBpdGVyYWJsZXMsIG1vc3QgbW9kZXJuIC0gbm90IGNsb3NlIGl0IGNvcnJlY3RseVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXdcbiAgICB2YXIgQUNDRVBUX0lURVJBQkxFUyA9IGNoZWNrQ29ycmVjdG5lc3NPZkl0ZXJhdGlvbihmdW5jdGlvbiAoaXRlcmFibGUpIHsgbmV3IE5hdGl2ZUNvbnN0cnVjdG9yKGl0ZXJhYmxlKTsgfSk7XG4gICAgLy8gZm9yIGVhcmx5IGltcGxlbWVudGF0aW9ucyAtMCBhbmQgKzAgbm90IHRoZSBzYW1lXG4gICAgdmFyIEJVR0dZX1pFUk8gPSAhSVNfV0VBSyAmJiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBWOCB+IENocm9taXVtIDQyLSBmYWlscyBvbmx5IHdpdGggNSsgZWxlbWVudHNcbiAgICAgIHZhciAkaW5zdGFuY2UgPSBuZXcgTmF0aXZlQ29uc3RydWN0b3IoKTtcbiAgICAgIHZhciBpbmRleCA9IDU7XG4gICAgICB3aGlsZSAoaW5kZXgtLSkgJGluc3RhbmNlW0FEREVSXShpbmRleCwgaW5kZXgpO1xuICAgICAgcmV0dXJuICEkaW5zdGFuY2UuaGFzKC0wKTtcbiAgICB9KTtcblxuICAgIGlmICghQUNDRVBUX0lURVJBQkxFUykge1xuICAgICAgQ29uc3RydWN0b3IgPSB3cmFwcGVyKGZ1bmN0aW9uIChkdW1teSwgaXRlcmFibGUpIHtcbiAgICAgICAgYW5JbnN0YW5jZShkdW1teSwgQ29uc3RydWN0b3IsIENPTlNUUlVDVE9SX05BTUUpO1xuICAgICAgICB2YXIgdGhhdCA9IGluaGVyaXRJZlJlcXVpcmVkKG5ldyBOYXRpdmVDb25zdHJ1Y3RvcigpLCBkdW1teSwgQ29uc3RydWN0b3IpO1xuICAgICAgICBpZiAoaXRlcmFibGUgIT0gdW5kZWZpbmVkKSBpdGVyYXRlKGl0ZXJhYmxlLCB0aGF0W0FEREVSXSwgdGhhdCwgSVNfTUFQKTtcbiAgICAgICAgcmV0dXJuIHRoYXQ7XG4gICAgICB9KTtcbiAgICAgIENvbnN0cnVjdG9yLnByb3RvdHlwZSA9IE5hdGl2ZVByb3RvdHlwZTtcbiAgICAgIE5hdGl2ZVByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IENvbnN0cnVjdG9yO1xuICAgIH1cblxuICAgIGlmIChUSFJPV1NfT05fUFJJTUlUSVZFUyB8fCBCVUdHWV9aRVJPKSB7XG4gICAgICBmaXhNZXRob2QoJ2RlbGV0ZScpO1xuICAgICAgZml4TWV0aG9kKCdoYXMnKTtcbiAgICAgIElTX01BUCAmJiBmaXhNZXRob2QoJ2dldCcpO1xuICAgIH1cblxuICAgIGlmIChCVUdHWV9aRVJPIHx8IEhBU05UX0NIQUlOSU5HKSBmaXhNZXRob2QoQURERVIpO1xuXG4gICAgLy8gd2VhayBjb2xsZWN0aW9ucyBzaG91bGQgbm90IGNvbnRhaW5zIC5jbGVhciBtZXRob2RcbiAgICBpZiAoSVNfV0VBSyAmJiBOYXRpdmVQcm90b3R5cGUuY2xlYXIpIGRlbGV0ZSBOYXRpdmVQcm90b3R5cGUuY2xlYXI7XG4gIH1cblxuICBleHBvcnRlZFtDT05TVFJVQ1RPUl9OQU1FXSA9IENvbnN0cnVjdG9yO1xuICAkKHsgZ2xvYmFsOiB0cnVlLCBmb3JjZWQ6IENvbnN0cnVjdG9yICE9IE5hdGl2ZUNvbnN0cnVjdG9yIH0sIGV4cG9ydGVkKTtcblxuICBzZXRUb1N0cmluZ1RhZyhDb25zdHJ1Y3RvciwgQ09OU1RSVUNUT1JfTkFNRSk7XG5cbiAgaWYgKCFJU19XRUFLKSBjb21tb24uc2V0U3Ryb25nKENvbnN0cnVjdG9yLCBDT05TVFJVQ1RPUl9OQU1FLCBJU19NQVApO1xuXG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn07XG4iLCIvLyBUT0RPOiBpbiBjb3JlLWpzQDQsIG1vdmUgL21vZHVsZXMvIGRlcGVuZGVuY2llcyB0byBwdWJsaWMgZW50cmllcyBmb3IgYmV0dGVyIG9wdGltaXphdGlvbiBieSB0b29scyBsaWtlIGBwcmVzZXQtZW52YFxudmFyIE1hcCA9IHJlcXVpcmUoJy4uL21vZHVsZXMvZXMubWFwJyk7XG52YXIgV2Vha01hcCA9IHJlcXVpcmUoJy4uL21vZHVsZXMvZXMud2Vhay1tYXAnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgTm9kZSA9IGZ1bmN0aW9uICgpIHtcbiAgLy8ga2V5c1xuICB0aGlzLm9iamVjdCA9IG51bGw7XG4gIHRoaXMuc3ltYm9sID0gbnVsbDtcbiAgLy8gY2hpbGQgbm9kZXNcbiAgdGhpcy5wcmltaXRpdmVzID0gbnVsbDtcbiAgdGhpcy5vYmplY3RzQnlJbmRleCA9IGNyZWF0ZShudWxsKTtcbn07XG5cbk5vZGUucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChrZXksIGluaXRpYWxpemVyKSB7XG4gIHJldHVybiB0aGlzW2tleV0gfHwgKHRoaXNba2V5XSA9IGluaXRpYWxpemVyKCkpO1xufTtcblxuTm9kZS5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uIChpLCBpdCwgSVNfT0JKRUNUKSB7XG4gIHZhciBzdG9yZSA9IElTX09CSkVDVFxuICAgID8gdGhpcy5vYmplY3RzQnlJbmRleFtpXSB8fCAodGhpcy5vYmplY3RzQnlJbmRleFtpXSA9IG5ldyBXZWFrTWFwKCkpXG4gICAgOiB0aGlzLnByaW1pdGl2ZXMgfHwgKHRoaXMucHJpbWl0aXZlcyA9IG5ldyBNYXAoKSk7XG4gIHZhciBlbnRyeSA9IHN0b3JlLmdldChpdCk7XG4gIGlmICghZW50cnkpIHN0b3JlLnNldChpdCwgZW50cnkgPSBuZXcgTm9kZSgpKTtcbiAgcmV0dXJuIGVudHJ5O1xufTtcblxudmFyIHJvb3QgPSBuZXcgTm9kZSgpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGFjdGl2ZSA9IHJvb3Q7XG4gIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgaSwgaXQ7XG4gIC8vIGZvciBwcmV2ZW50IGxlYWtpbmcsIHN0YXJ0IGZyb20gb2JqZWN0c1xuICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoaXNPYmplY3QoaXQgPSBhcmd1bWVudHNbaV0pKSBhY3RpdmUgPSBhY3RpdmUubmV4dChpLCBpdCwgdHJ1ZSk7XG4gIH1cbiAgaWYgKHRoaXMgPT09IE9iamVjdCAmJiBhY3RpdmUgPT09IHJvb3QpIHRocm93IFR5cGVFcnJvcignQ29tcG9zaXRlIGtleXMgbXVzdCBjb250YWluIGEgbm9uLXByaW1pdGl2ZSBjb21wb25lbnQnKTtcbiAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKCFpc09iamVjdChpdCA9IGFyZ3VtZW50c1tpXSkpIGFjdGl2ZSA9IGFjdGl2ZS5uZXh0KGksIGl0LCBmYWxzZSk7XG4gIH0gcmV0dXJuIGFjdGl2ZTtcbn07XG4iLCJ2YXIgaGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIG93bktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb3duLWtleXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBzb3VyY2UpIHtcbiAgdmFyIGtleXMgPSBvd25LZXlzKHNvdXJjZSk7XG4gIHZhciBkZWZpbmVQcm9wZXJ0eSA9IGRlZmluZVByb3BlcnR5TW9kdWxlLmY7XG4gIHZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUuZjtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgaWYgKCFoYXModGFyZ2V0LCBrZXkpKSBkZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwga2V5KSk7XG4gIH1cbn07XG4iLCJ2YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBNQVRDSCA9IHdlbGxLbm93blN5bWJvbCgnbWF0Y2gnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTUVUSE9EX05BTUUpIHtcbiAgdmFyIHJlZ2V4cCA9IC8uLztcbiAgdHJ5IHtcbiAgICAnLy4vJ1tNRVRIT0RfTkFNRV0ocmVnZXhwKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRyeSB7XG4gICAgICByZWdleHBbTUFUQ0hdID0gZmFsc2U7XG4gICAgICByZXR1cm4gJy8uLydbTUVUSE9EX05BTUVdKHJlZ2V4cCk7XG4gICAgfSBjYXRjaCAoZikgeyAvKiBlbXB0eSAqLyB9XG4gIH0gcmV0dXJuIGZhbHNlO1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEYoKSB7IC8qIGVtcHR5ICovIH1cbiAgRi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBudWxsO1xuICByZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBGKCkpICE9PSBGLnByb3RvdHlwZTtcbn0pO1xuIiwidmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbnZhciBxdW90ID0gL1wiL2c7XG5cbi8vIEIuMi4zLjIuMSBDcmVhdGVIVE1MKHN0cmluZywgdGFnLCBhdHRyaWJ1dGUsIHZhbHVlKVxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtY3JlYXRlaHRtbFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoc3RyaW5nLCB0YWcsIGF0dHJpYnV0ZSwgdmFsdWUpIHtcbiAgdmFyIFMgPSBTdHJpbmcocmVxdWlyZU9iamVjdENvZXJjaWJsZShzdHJpbmcpKTtcbiAgdmFyIHAxID0gJzwnICsgdGFnO1xuICBpZiAoYXR0cmlidXRlICE9PSAnJykgcDEgKz0gJyAnICsgYXR0cmlidXRlICsgJz1cIicgKyBTdHJpbmcodmFsdWUpLnJlcGxhY2UocXVvdCwgJyZxdW90OycpICsgJ1wiJztcbiAgcmV0dXJuIHAxICsgJz4nICsgUyArICc8LycgKyB0YWcgKyAnPic7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEl0ZXJhdG9yUHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycy1jb3JlJykuSXRlcmF0b3JQcm90b3R5cGU7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcblxudmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChJdGVyYXRvckNvbnN0cnVjdG9yLCBOQU1FLCBuZXh0KSB7XG4gIHZhciBUT19TVFJJTkdfVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICBJdGVyYXRvckNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMSwgbmV4dCkgfSk7XG4gIHNldFRvU3RyaW5nVGFnKEl0ZXJhdG9yQ29uc3RydWN0b3IsIFRPX1NUUklOR19UQUcsIGZhbHNlLCB0cnVlKTtcbiAgSXRlcmF0b3JzW1RPX1NUUklOR19UQUddID0gcmV0dXJuVGhpcztcbiAgcmV0dXJuIEl0ZXJhdG9yQ29uc3RydWN0b3I7XG59O1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERFU0NSSVBUT1JTID8gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICByZXR1cm4gZGVmaW5lUHJvcGVydHlNb2R1bGUuZihvYmplY3QsIGtleSwgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIHZhbHVlKSk7XG59IDogZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkge1xuICBvYmplY3Rba2V5XSA9IHZhbHVlO1xuICByZXR1cm4gb2JqZWN0O1xufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGJpdG1hcCwgdmFsdWUpIHtcbiAgcmV0dXJuIHtcbiAgICBlbnVtZXJhYmxlOiAhKGJpdG1hcCAmIDEpLFxuICAgIGNvbmZpZ3VyYWJsZTogIShiaXRtYXAgJiAyKSxcbiAgICB3cml0YWJsZTogIShiaXRtYXAgJiA0KSxcbiAgICB2YWx1ZTogdmFsdWVcbiAgfTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgdmFyIHByb3BlcnR5S2V5ID0gdG9QcmltaXRpdmUoa2V5KTtcbiAgaWYgKHByb3BlcnR5S2V5IGluIG9iamVjdCkgZGVmaW5lUHJvcGVydHlNb2R1bGUuZihvYmplY3QsIHByb3BlcnR5S2V5LCBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMCwgdmFsdWUpKTtcbiAgZWxzZSBvYmplY3RbcHJvcGVydHlLZXldID0gdmFsdWU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgcGFkU3RhcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXBhZCcpLnN0YXJ0O1xuXG52YXIgYWJzID0gTWF0aC5hYnM7XG52YXIgRGF0ZVByb3RvdHlwZSA9IERhdGUucHJvdG90eXBlO1xudmFyIGdldFRpbWUgPSBEYXRlUHJvdG90eXBlLmdldFRpbWU7XG52YXIgbmF0aXZlRGF0ZVRvSVNPU3RyaW5nID0gRGF0ZVByb3RvdHlwZS50b0lTT1N0cmluZztcblxuLy8gYERhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWRhdGUucHJvdG90eXBlLnRvaXNvc3RyaW5nXG4vLyBQaGFudG9tSlMgLyBvbGQgV2ViS2l0IGZhaWxzIGhlcmU6XG5tb2R1bGUuZXhwb3J0cyA9IChmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuYXRpdmVEYXRlVG9JU09TdHJpbmcuY2FsbChuZXcgRGF0ZSgtNWUxMyAtIDEpKSAhPSAnMDM4NS0wNy0yNVQwNzowNjozOS45OTlaJztcbn0pIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIG5hdGl2ZURhdGVUb0lTT1N0cmluZy5jYWxsKG5ldyBEYXRlKE5hTikpO1xufSkpID8gZnVuY3Rpb24gdG9JU09TdHJpbmcoKSB7XG4gIGlmICghaXNGaW5pdGUoZ2V0VGltZS5jYWxsKHRoaXMpKSkgdGhyb3cgUmFuZ2VFcnJvcignSW52YWxpZCB0aW1lIHZhbHVlJyk7XG4gIHZhciBkYXRlID0gdGhpcztcbiAgdmFyIHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gIHZhciBtaWxsaXNlY29uZHMgPSBkYXRlLmdldFVUQ01pbGxpc2Vjb25kcygpO1xuICB2YXIgc2lnbiA9IHllYXIgPCAwID8gJy0nIDogeWVhciA+IDk5OTkgPyAnKycgOiAnJztcbiAgcmV0dXJuIHNpZ24gKyBwYWRTdGFydChhYnMoeWVhciksIHNpZ24gPyA2IDogNCwgMCkgK1xuICAgICctJyArIHBhZFN0YXJ0KGRhdGUuZ2V0VVRDTW9udGgoKSArIDEsIDIsIDApICtcbiAgICAnLScgKyBwYWRTdGFydChkYXRlLmdldFVUQ0RhdGUoKSwgMiwgMCkgK1xuICAgICdUJyArIHBhZFN0YXJ0KGRhdGUuZ2V0VVRDSG91cnMoKSwgMiwgMCkgK1xuICAgICc6JyArIHBhZFN0YXJ0KGRhdGUuZ2V0VVRDTWludXRlcygpLCAyLCAwKSArXG4gICAgJzonICsgcGFkU3RhcnQoZGF0ZS5nZXRVVENTZWNvbmRzKCksIDIsIDApICtcbiAgICAnLicgKyBwYWRTdGFydChtaWxsaXNlY29uZHMsIDMsIDApICtcbiAgICAnWic7XG59IDogbmF0aXZlRGF0ZVRvSVNPU3RyaW5nO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChoaW50KSB7XG4gIGlmIChoaW50ICE9PSAnc3RyaW5nJyAmJiBoaW50ICE9PSAnbnVtYmVyJyAmJiBoaW50ICE9PSAnZGVmYXVsdCcpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ0luY29ycmVjdCBoaW50Jyk7XG4gIH0gcmV0dXJuIHRvUHJpbWl0aXZlKGFuT2JqZWN0KHRoaXMpLCBoaW50ICE9PSAnbnVtYmVyJyk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3InKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG52YXIgSXRlcmF0b3JzQ29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMtY29yZScpO1xuXG52YXIgSXRlcmF0b3JQcm90b3R5cGUgPSBJdGVyYXRvcnNDb3JlLkl0ZXJhdG9yUHJvdG90eXBlO1xudmFyIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgPSBJdGVyYXRvcnNDb3JlLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlM7XG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgS0VZUyA9ICdrZXlzJztcbnZhciBWQUxVRVMgPSAndmFsdWVzJztcbnZhciBFTlRSSUVTID0gJ2VudHJpZXMnO1xuXG52YXIgcmV0dXJuVGhpcyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEl0ZXJhYmxlLCBOQU1FLCBJdGVyYXRvckNvbnN0cnVjdG9yLCBuZXh0LCBERUZBVUxULCBJU19TRVQsIEZPUkNFRCkge1xuICBjcmVhdGVJdGVyYXRvckNvbnN0cnVjdG9yKEl0ZXJhdG9yQ29uc3RydWN0b3IsIE5BTUUsIG5leHQpO1xuXG4gIHZhciBnZXRJdGVyYXRpb25NZXRob2QgPSBmdW5jdGlvbiAoS0lORCkge1xuICAgIGlmIChLSU5EID09PSBERUZBVUxUICYmIGRlZmF1bHRJdGVyYXRvcikgcmV0dXJuIGRlZmF1bHRJdGVyYXRvcjtcbiAgICBpZiAoIUJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgJiYgS0lORCBpbiBJdGVyYWJsZVByb3RvdHlwZSkgcmV0dXJuIEl0ZXJhYmxlUHJvdG90eXBlW0tJTkRdO1xuICAgIHN3aXRjaCAoS0lORCkge1xuICAgICAgY2FzZSBLRVlTOiByZXR1cm4gZnVuY3Rpb24ga2V5cygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgICAgY2FzZSBWQUxVRVM6IHJldHVybiBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuZXcgSXRlcmF0b3JDb25zdHJ1Y3Rvcih0aGlzLCBLSU5EKTsgfTtcbiAgICAgIGNhc2UgRU5UUklFUzogcmV0dXJuIGZ1bmN0aW9uIGVudHJpZXMoKSB7IHJldHVybiBuZXcgSXRlcmF0b3JDb25zdHJ1Y3Rvcih0aGlzLCBLSU5EKTsgfTtcbiAgICB9IHJldHVybiBmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgSXRlcmF0b3JDb25zdHJ1Y3Rvcih0aGlzKTsgfTtcbiAgfTtcblxuICB2YXIgVE9fU1RSSU5HX1RBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJztcbiAgdmFyIElOQ09SUkVDVF9WQUxVRVNfTkFNRSA9IGZhbHNlO1xuICB2YXIgSXRlcmFibGVQcm90b3R5cGUgPSBJdGVyYWJsZS5wcm90b3R5cGU7XG4gIHZhciBuYXRpdmVJdGVyYXRvciA9IEl0ZXJhYmxlUHJvdG90eXBlW0lURVJBVE9SXVxuICAgIHx8IEl0ZXJhYmxlUHJvdG90eXBlWydAQGl0ZXJhdG9yJ11cbiAgICB8fCBERUZBVUxUICYmIEl0ZXJhYmxlUHJvdG90eXBlW0RFRkFVTFRdO1xuICB2YXIgZGVmYXVsdEl0ZXJhdG9yID0gIUJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgJiYgbmF0aXZlSXRlcmF0b3IgfHwgZ2V0SXRlcmF0aW9uTWV0aG9kKERFRkFVTFQpO1xuICB2YXIgYW55TmF0aXZlSXRlcmF0b3IgPSBOQU1FID09ICdBcnJheScgPyBJdGVyYWJsZVByb3RvdHlwZS5lbnRyaWVzIHx8IG5hdGl2ZUl0ZXJhdG9yIDogbmF0aXZlSXRlcmF0b3I7XG4gIHZhciBDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIG1ldGhvZHMsIEtFWTtcblxuICAvLyBmaXggbmF0aXZlXG4gIGlmIChhbnlOYXRpdmVJdGVyYXRvcikge1xuICAgIEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKGFueU5hdGl2ZUl0ZXJhdG9yLmNhbGwobmV3IEl0ZXJhYmxlKCkpKTtcbiAgICBpZiAoSXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLm5leHQpIHtcbiAgICAgIGlmICghSVNfUFVSRSAmJiBnZXRQcm90b3R5cGVPZihDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUpICE9PSBJdGVyYXRvclByb3RvdHlwZSkge1xuICAgICAgICBpZiAoc2V0UHJvdG90eXBlT2YpIHtcbiAgICAgICAgICBzZXRQcm90b3R5cGVPZihDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIEl0ZXJhdG9yUHJvdG90eXBlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlW0lURVJBVE9SXSAhPSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIHJldHVyblRoaXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBTZXQgQEB0b1N0cmluZ1RhZyB0byBuYXRpdmUgaXRlcmF0b3JzXG4gICAgICBzZXRUb1N0cmluZ1RhZyhDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIFRPX1NUUklOR19UQUcsIHRydWUsIHRydWUpO1xuICAgICAgaWYgKElTX1BVUkUpIEl0ZXJhdG9yc1tUT19TVFJJTkdfVEFHXSA9IHJldHVyblRoaXM7XG4gICAgfVxuICB9XG5cbiAgLy8gZml4IEFycmF5I3t2YWx1ZXMsIEBAaXRlcmF0b3J9Lm5hbWUgaW4gVjggLyBGRlxuICBpZiAoREVGQVVMVCA9PSBWQUxVRVMgJiYgbmF0aXZlSXRlcmF0b3IgJiYgbmF0aXZlSXRlcmF0b3IubmFtZSAhPT0gVkFMVUVTKSB7XG4gICAgSU5DT1JSRUNUX1ZBTFVFU19OQU1FID0gdHJ1ZTtcbiAgICBkZWZhdWx0SXRlcmF0b3IgPSBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuYXRpdmVJdGVyYXRvci5jYWxsKHRoaXMpOyB9O1xuICB9XG5cbiAgLy8gZGVmaW5lIGl0ZXJhdG9yXG4gIGlmICgoIUlTX1BVUkUgfHwgRk9SQ0VEKSAmJiBJdGVyYWJsZVByb3RvdHlwZVtJVEVSQVRPUl0gIT09IGRlZmF1bHRJdGVyYXRvcikge1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShJdGVyYWJsZVByb3RvdHlwZSwgSVRFUkFUT1IsIGRlZmF1bHRJdGVyYXRvcik7XG4gIH1cbiAgSXRlcmF0b3JzW05BTUVdID0gZGVmYXVsdEl0ZXJhdG9yO1xuXG4gIC8vIGV4cG9ydCBhZGRpdGlvbmFsIG1ldGhvZHNcbiAgaWYgKERFRkFVTFQpIHtcbiAgICBtZXRob2RzID0ge1xuICAgICAgdmFsdWVzOiBnZXRJdGVyYXRpb25NZXRob2QoVkFMVUVTKSxcbiAgICAgIGtleXM6IElTX1NFVCA/IGRlZmF1bHRJdGVyYXRvciA6IGdldEl0ZXJhdGlvbk1ldGhvZChLRVlTKSxcbiAgICAgIGVudHJpZXM6IGdldEl0ZXJhdGlvbk1ldGhvZChFTlRSSUVTKVxuICAgIH07XG4gICAgaWYgKEZPUkNFRCkgZm9yIChLRVkgaW4gbWV0aG9kcykge1xuICAgICAgaWYgKEJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgfHwgSU5DT1JSRUNUX1ZBTFVFU19OQU1FIHx8ICEoS0VZIGluIEl0ZXJhYmxlUHJvdG90eXBlKSkge1xuICAgICAgICByZWRlZmluZShJdGVyYWJsZVByb3RvdHlwZSwgS0VZLCBtZXRob2RzW0tFWV0pO1xuICAgICAgfVxuICAgIH0gZWxzZSAkKHsgdGFyZ2V0OiBOQU1FLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBCVUdHWV9TQUZBUklfSVRFUkFUT1JTIHx8IElOQ09SUkVDVF9WQUxVRVNfTkFNRSB9LCBtZXRob2RzKTtcbiAgfVxuXG4gIHJldHVybiBtZXRob2RzO1xufTtcbiIsInZhciBwYXRoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BhdGgnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgd3JhcHBlZFdlbGxLbm93blN5bWJvbE1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC13cmFwcGVkJyk7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE5BTUUpIHtcbiAgdmFyIFN5bWJvbCA9IHBhdGguU3ltYm9sIHx8IChwYXRoLlN5bWJvbCA9IHt9KTtcbiAgaWYgKCFoYXMoU3ltYm9sLCBOQU1FKSkgZGVmaW5lUHJvcGVydHkoU3ltYm9sLCBOQU1FLCB7XG4gICAgdmFsdWU6IHdyYXBwZWRXZWxsS25vd25TeW1ib2xNb2R1bGUuZihOQU1FKVxuICB9KTtcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxuLy8gVGhhbmsncyBJRTggZm9yIGhpcyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAxLCB7IGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfSB9KVsxXSAhPSA3O1xufSk7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgZG9jdW1lbnQgPSBnbG9iYWwuZG9jdW1lbnQ7XG4vLyB0eXBlb2YgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCBpcyAnb2JqZWN0JyBpbiBvbGQgSUVcbnZhciBFWElTVFMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBFWElTVFMgPyBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGl0KSA6IHt9O1xufTtcbiIsIi8vIGl0ZXJhYmxlIERPTSBjb2xsZWN0aW9uc1xuLy8gZmxhZyAtIGBpdGVyYWJsZWAgaW50ZXJmYWNlIC0gJ2VudHJpZXMnLCAna2V5cycsICd2YWx1ZXMnLCAnZm9yRWFjaCcgbWV0aG9kc1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIENTU1J1bGVMaXN0OiAwLFxuICBDU1NTdHlsZURlY2xhcmF0aW9uOiAwLFxuICBDU1NWYWx1ZUxpc3Q6IDAsXG4gIENsaWVudFJlY3RMaXN0OiAwLFxuICBET01SZWN0TGlzdDogMCxcbiAgRE9NU3RyaW5nTGlzdDogMCxcbiAgRE9NVG9rZW5MaXN0OiAxLFxuICBEYXRhVHJhbnNmZXJJdGVtTGlzdDogMCxcbiAgRmlsZUxpc3Q6IDAsXG4gIEhUTUxBbGxDb2xsZWN0aW9uOiAwLFxuICBIVE1MQ29sbGVjdGlvbjogMCxcbiAgSFRNTEZvcm1FbGVtZW50OiAwLFxuICBIVE1MU2VsZWN0RWxlbWVudDogMCxcbiAgTWVkaWFMaXN0OiAwLFxuICBNaW1lVHlwZUFycmF5OiAwLFxuICBOYW1lZE5vZGVNYXA6IDAsXG4gIE5vZGVMaXN0OiAxLFxuICBQYWludFJlcXVlc3RMaXN0OiAwLFxuICBQbHVnaW46IDAsXG4gIFBsdWdpbkFycmF5OiAwLFxuICBTVkdMZW5ndGhMaXN0OiAwLFxuICBTVkdOdW1iZXJMaXN0OiAwLFxuICBTVkdQYXRoU2VnTGlzdDogMCxcbiAgU1ZHUG9pbnRMaXN0OiAwLFxuICBTVkdTdHJpbmdMaXN0OiAwLFxuICBTVkdUcmFuc2Zvcm1MaXN0OiAwLFxuICBTb3VyY2VCdWZmZXJMaXN0OiAwLFxuICBTdHlsZVNoZWV0TGlzdDogMCxcbiAgVGV4dFRyYWNrQ3VlTGlzdDogMCxcbiAgVGV4dFRyYWNrTGlzdDogMCxcbiAgVG91Y2hMaXN0OiAwXG59O1xuIiwidmFyIHVzZXJBZ2VudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdXNlci1hZ2VudCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IC8oaXBob25lfGlwb2R8aXBhZCkuKmFwcGxld2Via2l0L2kudGVzdCh1c2VyQWdlbnQpO1xuIiwidmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QnVpbHRJbignbmF2aWdhdG9yJywgJ3VzZXJBZ2VudCcpIHx8ICcnO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciB1c2VyQWdlbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXVzZXItYWdlbnQnKTtcblxudmFyIHByb2Nlc3MgPSBnbG9iYWwucHJvY2VzcztcbnZhciB2ZXJzaW9ucyA9IHByb2Nlc3MgJiYgcHJvY2Vzcy52ZXJzaW9ucztcbnZhciB2OCA9IHZlcnNpb25zICYmIHZlcnNpb25zLnY4O1xudmFyIG1hdGNoLCB2ZXJzaW9uO1xuXG5pZiAodjgpIHtcbiAgbWF0Y2ggPSB2OC5zcGxpdCgnLicpO1xuICB2ZXJzaW9uID0gbWF0Y2hbMF0gKyBtYXRjaFsxXTtcbn0gZWxzZSBpZiAodXNlckFnZW50KSB7XG4gIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9FZGdlXFwvKFxcZCspLyk7XG4gIGlmICghbWF0Y2ggfHwgbWF0Y2hbMV0gPj0gNzQpIHtcbiAgICBtYXRjaCA9IHVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lXFwvKFxcZCspLyk7XG4gICAgaWYgKG1hdGNoKSB2ZXJzaW9uID0gbWF0Y2hbMV07XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSB2ZXJzaW9uICYmICt2ZXJzaW9uO1xuIiwiLy8gSUU4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IFtcbiAgJ2NvbnN0cnVjdG9yJyxcbiAgJ2hhc093blByb3BlcnR5JyxcbiAgJ2lzUHJvdG90eXBlT2YnLFxuICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9Mb2NhbGVTdHJpbmcnLFxuICAndG9TdHJpbmcnLFxuICAndmFsdWVPZidcbl07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciBzZXRHbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LWdsb2JhbCcpO1xudmFyIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29weS1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzJyk7XG52YXIgaXNGb3JjZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtZm9yY2VkJyk7XG5cbi8qXG4gIG9wdGlvbnMudGFyZ2V0ICAgICAgLSBuYW1lIG9mIHRoZSB0YXJnZXQgb2JqZWN0XG4gIG9wdGlvbnMuZ2xvYmFsICAgICAgLSB0YXJnZXQgaXMgdGhlIGdsb2JhbCBvYmplY3RcbiAgb3B0aW9ucy5zdGF0ICAgICAgICAtIGV4cG9ydCBhcyBzdGF0aWMgbWV0aG9kcyBvZiB0YXJnZXRcbiAgb3B0aW9ucy5wcm90byAgICAgICAtIGV4cG9ydCBhcyBwcm90b3R5cGUgbWV0aG9kcyBvZiB0YXJnZXRcbiAgb3B0aW9ucy5yZWFsICAgICAgICAtIHJlYWwgcHJvdG90eXBlIG1ldGhvZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMuZm9yY2VkICAgICAgLSBleHBvcnQgZXZlbiBpZiB0aGUgbmF0aXZlIGZlYXR1cmUgaXMgYXZhaWxhYmxlXG4gIG9wdGlvbnMuYmluZCAgICAgICAgLSBiaW5kIG1ldGhvZHMgdG8gdGhlIHRhcmdldCwgcmVxdWlyZWQgZm9yIHRoZSBgcHVyZWAgdmVyc2lvblxuICBvcHRpb25zLndyYXAgICAgICAgIC0gd3JhcCBjb25zdHJ1Y3RvcnMgdG8gcHJldmVudGluZyBnbG9iYWwgcG9sbHV0aW9uLCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMudW5zYWZlICAgICAgLSB1c2UgdGhlIHNpbXBsZSBhc3NpZ25tZW50IG9mIHByb3BlcnR5IGluc3RlYWQgb2YgZGVsZXRlICsgZGVmaW5lUHJvcGVydHlcbiAgb3B0aW9ucy5zaGFtICAgICAgICAtIGFkZCBhIGZsYWcgdG8gbm90IGNvbXBsZXRlbHkgZnVsbCBwb2x5ZmlsbHNcbiAgb3B0aW9ucy5lbnVtZXJhYmxlICAtIGV4cG9ydCBhcyBlbnVtZXJhYmxlIHByb3BlcnR5XG4gIG9wdGlvbnMubm9UYXJnZXRHZXQgLSBwcmV2ZW50IGNhbGxpbmcgYSBnZXR0ZXIgb24gdGFyZ2V0XG4qL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3B0aW9ucywgc291cmNlKSB7XG4gIHZhciBUQVJHRVQgPSBvcHRpb25zLnRhcmdldDtcbiAgdmFyIEdMT0JBTCA9IG9wdGlvbnMuZ2xvYmFsO1xuICB2YXIgU1RBVElDID0gb3B0aW9ucy5zdGF0O1xuICB2YXIgRk9SQ0VELCB0YXJnZXQsIGtleSwgdGFyZ2V0UHJvcGVydHksIHNvdXJjZVByb3BlcnR5LCBkZXNjcmlwdG9yO1xuICBpZiAoR0xPQkFMKSB7XG4gICAgdGFyZ2V0ID0gZ2xvYmFsO1xuICB9IGVsc2UgaWYgKFNUQVRJQykge1xuICAgIHRhcmdldCA9IGdsb2JhbFtUQVJHRVRdIHx8IHNldEdsb2JhbChUQVJHRVQsIHt9KTtcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXQgPSAoZ2xvYmFsW1RBUkdFVF0gfHwge30pLnByb3RvdHlwZTtcbiAgfVxuICBpZiAodGFyZ2V0KSBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICBzb3VyY2VQcm9wZXJ0eSA9IHNvdXJjZVtrZXldO1xuICAgIGlmIChvcHRpb25zLm5vVGFyZ2V0R2V0KSB7XG4gICAgICBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KTtcbiAgICAgIHRhcmdldFByb3BlcnR5ID0gZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIH0gZWxzZSB0YXJnZXRQcm9wZXJ0eSA9IHRhcmdldFtrZXldO1xuICAgIEZPUkNFRCA9IGlzRm9yY2VkKEdMT0JBTCA/IGtleSA6IFRBUkdFVCArIChTVEFUSUMgPyAnLicgOiAnIycpICsga2V5LCBvcHRpb25zLmZvcmNlZCk7XG4gICAgLy8gY29udGFpbmVkIGluIHRhcmdldFxuICAgIGlmICghRk9SQ0VEICYmIHRhcmdldFByb3BlcnR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0eXBlb2Ygc291cmNlUHJvcGVydHkgPT09IHR5cGVvZiB0YXJnZXRQcm9wZXJ0eSkgY29udGludWU7XG4gICAgICBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzKHNvdXJjZVByb3BlcnR5LCB0YXJnZXRQcm9wZXJ0eSk7XG4gICAgfVxuICAgIC8vIGFkZCBhIGZsYWcgdG8gbm90IGNvbXBsZXRlbHkgZnVsbCBwb2x5ZmlsbHNcbiAgICBpZiAob3B0aW9ucy5zaGFtIHx8ICh0YXJnZXRQcm9wZXJ0eSAmJiB0YXJnZXRQcm9wZXJ0eS5zaGFtKSkge1xuICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KHNvdXJjZVByb3BlcnR5LCAnc2hhbScsIHRydWUpO1xuICAgIH1cbiAgICAvLyBleHRlbmQgZ2xvYmFsXG4gICAgcmVkZWZpbmUodGFyZ2V0LCBrZXksIHNvdXJjZVByb3BlcnR5LCBvcHRpb25zKTtcbiAgfVxufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFleGVjKCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyBUT0RPOiBSZW1vdmUgZnJvbSBgY29yZS1qc0A0YCBzaW5jZSBpdCdzIG1vdmVkIHRvIGVudHJ5IHBvaW50c1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5yZWdleHAuZXhlYycpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciByZWdleHBFeGVjID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1leGVjJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xuXG52YXIgUkVQTEFDRV9TVVBQT1JUU19OQU1FRF9HUk9VUFMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyAjcmVwbGFjZSBuZWVkcyBidWlsdC1pbiBzdXBwb3J0IGZvciBuYW1lZCBncm91cHMuXG4gIC8vICNtYXRjaCB3b3JrcyBmaW5lIGJlY2F1c2UgaXQganVzdCByZXR1cm4gdGhlIGV4ZWMgcmVzdWx0cywgZXZlbiBpZiBpdCBoYXNcbiAgLy8gYSBcImdyb3BzXCIgcHJvcGVydHkuXG4gIHZhciByZSA9IC8uLztcbiAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgcmVzdWx0Lmdyb3VwcyA9IHsgYTogJzcnIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbiAgcmV0dXJuICcnLnJlcGxhY2UocmUsICckPGE+JykgIT09ICc3Jztcbn0pO1xuXG4vLyBJRSA8PSAxMSByZXBsYWNlcyAkMCB3aXRoIHRoZSB3aG9sZSBtYXRjaCwgYXMgaWYgaXQgd2FzICQmXG4vLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82MDI0NjY2L2dldHRpbmctaWUtdG8tcmVwbGFjZS1hLXJlZ2V4LXdpdGgtdGhlLWxpdGVyYWwtc3RyaW5nLTBcbnZhciBSRVBMQUNFX0tFRVBTXyQwID0gKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICdhJy5yZXBsYWNlKC8uLywgJyQwJykgPT09ICckMCc7XG59KSgpO1xuXG52YXIgUkVQTEFDRSA9IHdlbGxLbm93blN5bWJvbCgncmVwbGFjZScpO1xuLy8gU2FmYXJpIDw9IDEzLjAuMyg/KSBzdWJzdGl0dXRlcyBudGggY2FwdHVyZSB3aGVyZSBuPm0gd2l0aCBhbiBlbXB0eSBzdHJpbmdcbnZhciBSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRSA9IChmdW5jdGlvbiAoKSB7XG4gIGlmICgvLi9bUkVQTEFDRV0pIHtcbiAgICByZXR1cm4gLy4vW1JFUExBQ0VdKCdhJywgJyQwJykgPT09ICcnO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn0pKCk7XG5cbi8vIENocm9tZSA1MSBoYXMgYSBidWdneSBcInNwbGl0XCIgaW1wbGVtZW50YXRpb24gd2hlbiBSZWdFeHAjZXhlYyAhPT0gbmF0aXZlRXhlY1xuLy8gV2VleCBKUyBoYXMgZnJvemVuIGJ1aWx0LWluIHByb3RvdHlwZXMsIHNvIHVzZSB0cnkgLyBjYXRjaCB3cmFwcGVyXG52YXIgU1BMSVRfV09SS1NfV0lUSF9PVkVSV1JJVFRFTl9FWEVDID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJlID0gLyg/OikvO1xuICB2YXIgb3JpZ2luYWxFeGVjID0gcmUuZXhlYztcbiAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG9yaWdpbmFsRXhlYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9O1xuICB2YXIgcmVzdWx0ID0gJ2FiJy5zcGxpdChyZSk7XG4gIHJldHVybiByZXN1bHQubGVuZ3RoICE9PSAyIHx8IHJlc3VsdFswXSAhPT0gJ2EnIHx8IHJlc3VsdFsxXSAhPT0gJ2InO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEtFWSwgbGVuZ3RoLCBleGVjLCBzaGFtKSB7XG4gIHZhciBTWU1CT0wgPSB3ZWxsS25vd25TeW1ib2woS0VZKTtcblxuICB2YXIgREVMRUdBVEVTX1RPX1NZTUJPTCA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gU3RyaW5nIG1ldGhvZHMgY2FsbCBzeW1ib2wtbmFtZWQgUmVnRXAgbWV0aG9kc1xuICAgIHZhciBPID0ge307XG4gICAgT1tTWU1CT0xdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfTtcbiAgICByZXR1cm4gJydbS0VZXShPKSAhPSA3O1xuICB9KTtcblxuICB2YXIgREVMRUdBVEVTX1RPX0VYRUMgPSBERUxFR0FURVNfVE9fU1lNQk9MICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gU3ltYm9sLW5hbWVkIFJlZ0V4cCBtZXRob2RzIGNhbGwgLmV4ZWNcbiAgICB2YXIgZXhlY0NhbGxlZCA9IGZhbHNlO1xuICAgIHZhciByZSA9IC9hLztcblxuICAgIGlmIChLRVkgPT09ICdzcGxpdCcpIHtcbiAgICAgIC8vIFdlIGNhbid0IHVzZSByZWFsIHJlZ2V4IGhlcmUgc2luY2UgaXQgY2F1c2VzIGRlb3B0aW1pemF0aW9uXG4gICAgICAvLyBhbmQgc2VyaW91cyBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbiBpbiBWOFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzMwNlxuICAgICAgcmUgPSB7fTtcbiAgICAgIC8vIFJlZ0V4cFtAQHNwbGl0XSBkb2Vzbid0IGNhbGwgdGhlIHJlZ2V4J3MgZXhlYyBtZXRob2QsIGJ1dCBmaXJzdCBjcmVhdGVzXG4gICAgICAvLyBhIG5ldyBvbmUuIFdlIG5lZWQgdG8gcmV0dXJuIHRoZSBwYXRjaGVkIHJlZ2V4IHdoZW4gY3JlYXRpbmcgdGhlIG5ldyBvbmUuXG4gICAgICByZS5jb25zdHJ1Y3RvciA9IHt9O1xuICAgICAgcmUuY29uc3RydWN0b3JbU1BFQ0lFU10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiByZTsgfTtcbiAgICAgIHJlLmZsYWdzID0gJyc7XG4gICAgICByZVtTWU1CT0xdID0gLy4vW1NZTUJPTF07XG4gICAgfVxuXG4gICAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHsgZXhlY0NhbGxlZCA9IHRydWU7IHJldHVybiBudWxsOyB9O1xuXG4gICAgcmVbU1lNQk9MXSgnJyk7XG4gICAgcmV0dXJuICFleGVjQ2FsbGVkO1xuICB9KTtcblxuICBpZiAoXG4gICAgIURFTEVHQVRFU19UT19TWU1CT0wgfHxcbiAgICAhREVMRUdBVEVTX1RPX0VYRUMgfHxcbiAgICAoS0VZID09PSAncmVwbGFjZScgJiYgIShcbiAgICAgIFJFUExBQ0VfU1VQUE9SVFNfTkFNRURfR1JPVVBTICYmXG4gICAgICBSRVBMQUNFX0tFRVBTXyQwICYmXG4gICAgICAhUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkVcbiAgICApKSB8fFxuICAgIChLRVkgPT09ICdzcGxpdCcgJiYgIVNQTElUX1dPUktTX1dJVEhfT1ZFUldSSVRURU5fRVhFQylcbiAgKSB7XG4gICAgdmFyIG5hdGl2ZVJlZ0V4cE1ldGhvZCA9IC8uL1tTWU1CT0xdO1xuICAgIHZhciBtZXRob2RzID0gZXhlYyhTWU1CT0wsICcnW0tFWV0sIGZ1bmN0aW9uIChuYXRpdmVNZXRob2QsIHJlZ2V4cCwgc3RyLCBhcmcyLCBmb3JjZVN0cmluZ01ldGhvZCkge1xuICAgICAgaWYgKHJlZ2V4cC5leGVjID09PSByZWdleHBFeGVjKSB7XG4gICAgICAgIGlmIChERUxFR0FURVNfVE9fU1lNQk9MICYmICFmb3JjZVN0cmluZ01ldGhvZCkge1xuICAgICAgICAgIC8vIFRoZSBuYXRpdmUgU3RyaW5nIG1ldGhvZCBhbHJlYWR5IGRlbGVnYXRlcyB0byBAQG1ldGhvZCAodGhpc1xuICAgICAgICAgIC8vIHBvbHlmaWxsZWQgZnVuY3Rpb24pLCBsZWFzaW5nIHRvIGluZmluaXRlIHJlY3Vyc2lvbi5cbiAgICAgICAgICAvLyBXZSBhdm9pZCBpdCBieSBkaXJlY3RseSBjYWxsaW5nIHRoZSBuYXRpdmUgQEBtZXRob2QgbWV0aG9kLlxuICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiBuYXRpdmVSZWdFeHBNZXRob2QuY2FsbChyZWdleHAsIHN0ciwgYXJnMikgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogbmF0aXZlTWV0aG9kLmNhbGwoc3RyLCByZWdleHAsIGFyZzIpIH07XG4gICAgICB9XG4gICAgICByZXR1cm4geyBkb25lOiBmYWxzZSB9O1xuICAgIH0sIHtcbiAgICAgIFJFUExBQ0VfS0VFUFNfJDA6IFJFUExBQ0VfS0VFUFNfJDAsXG4gICAgICBSRUdFWFBfUkVQTEFDRV9TVUJTVElUVVRFU19VTkRFRklORURfQ0FQVFVSRTogUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkVcbiAgICB9KTtcbiAgICB2YXIgc3RyaW5nTWV0aG9kID0gbWV0aG9kc1swXTtcbiAgICB2YXIgcmVnZXhNZXRob2QgPSBtZXRob2RzWzFdO1xuXG4gICAgcmVkZWZpbmUoU3RyaW5nLnByb3RvdHlwZSwgS0VZLCBzdHJpbmdNZXRob2QpO1xuICAgIHJlZGVmaW5lKFJlZ0V4cC5wcm90b3R5cGUsIFNZTUJPTCwgbGVuZ3RoID09IDJcbiAgICAgIC8vIDIxLjIuNS44IFJlZ0V4cC5wcm90b3R5cGVbQEByZXBsYWNlXShzdHJpbmcsIHJlcGxhY2VWYWx1ZSlcbiAgICAgIC8vIDIxLjIuNS4xMSBSZWdFeHAucHJvdG90eXBlW0BAc3BsaXRdKHN0cmluZywgbGltaXQpXG4gICAgICA/IGZ1bmN0aW9uIChzdHJpbmcsIGFyZykgeyByZXR1cm4gcmVnZXhNZXRob2QuY2FsbChzdHJpbmcsIHRoaXMsIGFyZyk7IH1cbiAgICAgIC8vIDIxLjIuNS42IFJlZ0V4cC5wcm90b3R5cGVbQEBtYXRjaF0oc3RyaW5nKVxuICAgICAgLy8gMjEuMi41LjkgUmVnRXhwLnByb3RvdHlwZVtAQHNlYXJjaF0oc3RyaW5nKVxuICAgICAgOiBmdW5jdGlvbiAoc3RyaW5nKSB7IHJldHVybiByZWdleE1ldGhvZC5jYWxsKHN0cmluZywgdGhpcyk7IH1cbiAgICApO1xuICB9XG5cbiAgaWYgKHNoYW0pIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShSZWdFeHAucHJvdG90eXBlW1NZTUJPTF0sICdzaGFtJywgdHJ1ZSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXknKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xuXG4vLyBgRmxhdHRlbkludG9BcnJheWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL3Byb3Bvc2FsLWZsYXRNYXAvI3NlYy1GbGF0dGVuSW50b0FycmF5XG52YXIgZmxhdHRlbkludG9BcnJheSA9IGZ1bmN0aW9uICh0YXJnZXQsIG9yaWdpbmFsLCBzb3VyY2UsIHNvdXJjZUxlbiwgc3RhcnQsIGRlcHRoLCBtYXBwZXIsIHRoaXNBcmcpIHtcbiAgdmFyIHRhcmdldEluZGV4ID0gc3RhcnQ7XG4gIHZhciBzb3VyY2VJbmRleCA9IDA7XG4gIHZhciBtYXBGbiA9IG1hcHBlciA/IGJpbmQobWFwcGVyLCB0aGlzQXJnLCAzKSA6IGZhbHNlO1xuICB2YXIgZWxlbWVudDtcblxuICB3aGlsZSAoc291cmNlSW5kZXggPCBzb3VyY2VMZW4pIHtcbiAgICBpZiAoc291cmNlSW5kZXggaW4gc291cmNlKSB7XG4gICAgICBlbGVtZW50ID0gbWFwRm4gPyBtYXBGbihzb3VyY2Vbc291cmNlSW5kZXhdLCBzb3VyY2VJbmRleCwgb3JpZ2luYWwpIDogc291cmNlW3NvdXJjZUluZGV4XTtcblxuICAgICAgaWYgKGRlcHRoID4gMCAmJiBpc0FycmF5KGVsZW1lbnQpKSB7XG4gICAgICAgIHRhcmdldEluZGV4ID0gZmxhdHRlbkludG9BcnJheSh0YXJnZXQsIG9yaWdpbmFsLCBlbGVtZW50LCB0b0xlbmd0aChlbGVtZW50Lmxlbmd0aCksIHRhcmdldEluZGV4LCBkZXB0aCAtIDEpIC0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0YXJnZXRJbmRleCA+PSAweDFGRkZGRkZGRkZGRkZGKSB0aHJvdyBUeXBlRXJyb3IoJ0V4Y2VlZCB0aGUgYWNjZXB0YWJsZSBhcnJheSBsZW5ndGgnKTtcbiAgICAgICAgdGFyZ2V0W3RhcmdldEluZGV4XSA9IGVsZW1lbnQ7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldEluZGV4Kys7XG4gICAgfVxuICAgIHNvdXJjZUluZGV4Kys7XG4gIH1cbiAgcmV0dXJuIHRhcmdldEluZGV4O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmbGF0dGVuSW50b0FycmF5O1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5pc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSk7XG59KTtcbiIsInZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xuXG4vLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHtcbiAgYUZ1bmN0aW9uKGZuKTtcbiAgaWYgKHRoYXQgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZuO1xuICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgIGNhc2UgMDogcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQpO1xuICAgIH07XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEpO1xuICAgIH07XG4gICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHtcbiAgICAgIHJldHVybiBmbi5jYWxsKHRoYXQsIGEsIGIsIGMpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uICgvKiAuLi5hcmdzICovKSB7XG4gICAgcmV0dXJuIGZuLmFwcGx5KHRoYXQsIGFyZ3VtZW50cyk7XG4gIH07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbnZhciBzbGljZSA9IFtdLnNsaWNlO1xudmFyIGZhY3RvcmllcyA9IHt9O1xuXG52YXIgY29uc3RydWN0ID0gZnVuY3Rpb24gKEMsIGFyZ3NMZW5ndGgsIGFyZ3MpIHtcbiAgaWYgKCEoYXJnc0xlbmd0aCBpbiBmYWN0b3JpZXMpKSB7XG4gICAgZm9yICh2YXIgbGlzdCA9IFtdLCBpID0gMDsgaSA8IGFyZ3NMZW5ndGg7IGkrKykgbGlzdFtpXSA9ICdhWycgKyBpICsgJ10nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXctZnVuY1xuICAgIGZhY3Rvcmllc1thcmdzTGVuZ3RoXSA9IEZ1bmN0aW9uKCdDLGEnLCAncmV0dXJuIG5ldyBDKCcgKyBsaXN0LmpvaW4oJywnKSArICcpJyk7XG4gIH0gcmV0dXJuIGZhY3Rvcmllc1thcmdzTGVuZ3RoXShDLCBhcmdzKTtcbn07XG5cbi8vIGBGdW5jdGlvbi5wcm90b3R5cGUuYmluZGAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1mdW5jdGlvbi5wcm90b3R5cGUuYmluZFxubW9kdWxlLmV4cG9ydHMgPSBGdW5jdGlvbi5iaW5kIHx8IGZ1bmN0aW9uIGJpbmQodGhhdCAvKiAsIC4uLmFyZ3MgKi8pIHtcbiAgdmFyIGZuID0gYUZ1bmN0aW9uKHRoaXMpO1xuICB2YXIgcGFydEFyZ3MgPSBzbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gIHZhciBib3VuZEZ1bmN0aW9uID0gZnVuY3Rpb24gYm91bmQoLyogYXJncy4uLiAqLykge1xuICAgIHZhciBhcmdzID0gcGFydEFyZ3MuY29uY2F0KHNsaWNlLmNhbGwoYXJndW1lbnRzKSk7XG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBib3VuZEZ1bmN0aW9uID8gY29uc3RydWN0KGZuLCBhcmdzLmxlbmd0aCwgYXJncykgOiBmbi5hcHBseSh0aGF0LCBhcmdzKTtcbiAgfTtcbiAgaWYgKGlzT2JqZWN0KGZuLnByb3RvdHlwZSkpIGJvdW5kRnVuY3Rpb24ucHJvdG90eXBlID0gZm4ucHJvdG90eXBlO1xuICByZXR1cm4gYm91bmRGdW5jdGlvbjtcbn07XG4iLCJ2YXIgZ2V0SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgQVNZTkNfSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2FzeW5jSXRlcmF0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIG1ldGhvZCA9IGl0W0FTWU5DX0lURVJBVE9SXTtcbiAgcmV0dXJuIG1ldGhvZCA9PT0gdW5kZWZpbmVkID8gZ2V0SXRlcmF0b3JNZXRob2QoaXQpIDogbWV0aG9kO1xufTtcbiIsInZhciBwYXRoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BhdGgnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG5cbnZhciBhRnVuY3Rpb24gPSBmdW5jdGlvbiAodmFyaWFibGUpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YXJpYWJsZSA9PSAnZnVuY3Rpb24nID8gdmFyaWFibGUgOiB1bmRlZmluZWQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lc3BhY2UsIG1ldGhvZCkge1xuICByZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA8IDIgPyBhRnVuY3Rpb24ocGF0aFtuYW1lc3BhY2VdKSB8fCBhRnVuY3Rpb24oZ2xvYmFsW25hbWVzcGFjZV0pXG4gICAgOiBwYXRoW25hbWVzcGFjZV0gJiYgcGF0aFtuYW1lc3BhY2VdW21ldGhvZF0gfHwgZ2xvYmFsW25hbWVzcGFjZV0gJiYgZ2xvYmFsW25hbWVzcGFjZV1bbWV0aG9kXTtcbn07XG4iLCJ2YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCAhPSB1bmRlZmluZWQpIHJldHVybiBpdFtJVEVSQVRPUl1cbiAgICB8fCBpdFsnQEBpdGVyYXRvciddXG4gICAgfHwgSXRlcmF0b3JzW2NsYXNzb2YoaXQpXTtcbn07XG4iLCJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgZ2V0SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgaXRlcmF0b3JNZXRob2QgPSBnZXRJdGVyYXRvck1ldGhvZChpdCk7XG4gIGlmICh0eXBlb2YgaXRlcmF0b3JNZXRob2QgIT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IFR5cGVFcnJvcihTdHJpbmcoaXQpICsgJyBpcyBub3QgaXRlcmFibGUnKTtcbiAgfSByZXR1cm4gYW5PYmplY3QoaXRlcmF0b3JNZXRob2QuY2FsbChpdCkpO1xufTtcbiIsInZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBnZXRJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtaXRlcmF0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBJU19QVVJFID8gZ2V0SXRlcmF0b3IgOiBmdW5jdGlvbiAoaXQpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIHJldHVybiBNYXAucHJvdG90eXBlLmVudHJpZXMuY2FsbChpdCk7XG59O1xuIiwidmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGdldEl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1pdGVyYXRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IElTX1BVUkUgPyBnZXRJdGVyYXRvciA6IGZ1bmN0aW9uIChpdCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgcmV0dXJuIFNldC5wcm90b3R5cGUudmFsdWVzLmNhbGwoaXQpO1xufTtcbiIsInZhciBjaGVjayA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gaXQgJiYgaXQuTWF0aCA9PSBNYXRoICYmIGl0O1xufTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjhcbm1vZHVsZS5leHBvcnRzID1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIGNoZWNrKHR5cGVvZiBnbG9iYWxUaGlzID09ICdvYmplY3QnICYmIGdsb2JhbFRoaXMpIHx8XG4gIGNoZWNrKHR5cGVvZiB3aW5kb3cgPT0gJ29iamVjdCcgJiYgd2luZG93KSB8fFxuICBjaGVjayh0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmKSB8fFxuICBjaGVjayh0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbCkgfHxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jXG4gIEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG4iLCJ2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIGtleSkge1xuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHt9O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYSwgYikge1xuICB2YXIgY29uc29sZSA9IGdsb2JhbC5jb25zb2xlO1xuICBpZiAoY29uc29sZSAmJiBjb25zb2xlLmVycm9yKSB7XG4gICAgYXJndW1lbnRzLmxlbmd0aCA9PT0gMSA/IGNvbnNvbGUuZXJyb3IoYSkgOiBjb25zb2xlLmVycm9yKGEsIGIpO1xuICB9XG59O1xuIiwidmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0QnVpbHRJbignZG9jdW1lbnQnLCAnZG9jdW1lbnRFbGVtZW50Jyk7XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGNyZWF0ZUVsZW1lbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQnKTtcblxuLy8gVGhhbmsncyBJRTggZm9yIGhpcyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhREVTQ1JJUFRPUlMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjcmVhdGVFbGVtZW50KCdkaXYnKSwgJ2EnLCB7XG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiA3OyB9XG4gIH0pLmEgIT0gNztcbn0pO1xuIiwiLy8gSUVFRTc1NCBjb252ZXJzaW9ucyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vZmVyb3NzL2llZWU3NTRcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zaGFkb3ctcmVzdHJpY3RlZC1uYW1lc1xudmFyIEluZmluaXR5ID0gMSAvIDA7XG52YXIgYWJzID0gTWF0aC5hYnM7XG52YXIgcG93ID0gTWF0aC5wb3c7XG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xudmFyIGxvZyA9IE1hdGgubG9nO1xudmFyIExOMiA9IE1hdGguTE4yO1xuXG52YXIgcGFjayA9IGZ1bmN0aW9uIChudW1iZXIsIG1hbnRpc3NhTGVuZ3RoLCBieXRlcykge1xuICB2YXIgYnVmZmVyID0gbmV3IEFycmF5KGJ5dGVzKTtcbiAgdmFyIGV4cG9uZW50TGVuZ3RoID0gYnl0ZXMgKiA4IC0gbWFudGlzc2FMZW5ndGggLSAxO1xuICB2YXIgZU1heCA9ICgxIDw8IGV4cG9uZW50TGVuZ3RoKSAtIDE7XG4gIHZhciBlQmlhcyA9IGVNYXggPj4gMTtcbiAgdmFyIHJ0ID0gbWFudGlzc2FMZW5ndGggPT09IDIzID8gcG93KDIsIC0yNCkgLSBwb3coMiwgLTc3KSA6IDA7XG4gIHZhciBzaWduID0gbnVtYmVyIDwgMCB8fCBudW1iZXIgPT09IDAgJiYgMSAvIG51bWJlciA8IDAgPyAxIDogMDtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGV4cG9uZW50LCBtYW50aXNzYSwgYztcbiAgbnVtYmVyID0gYWJzKG51bWJlcik7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgaWYgKG51bWJlciAhPSBudW1iZXIgfHwgbnVtYmVyID09PSBJbmZpbml0eSkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgICBtYW50aXNzYSA9IG51bWJlciAhPSBudW1iZXIgPyAxIDogMDtcbiAgICBleHBvbmVudCA9IGVNYXg7XG4gIH0gZWxzZSB7XG4gICAgZXhwb25lbnQgPSBmbG9vcihsb2cobnVtYmVyKSAvIExOMik7XG4gICAgaWYgKG51bWJlciAqIChjID0gcG93KDIsIC1leHBvbmVudCkpIDwgMSkge1xuICAgICAgZXhwb25lbnQtLTtcbiAgICAgIGMgKj0gMjtcbiAgICB9XG4gICAgaWYgKGV4cG9uZW50ICsgZUJpYXMgPj0gMSkge1xuICAgICAgbnVtYmVyICs9IHJ0IC8gYztcbiAgICB9IGVsc2Uge1xuICAgICAgbnVtYmVyICs9IHJ0ICogcG93KDIsIDEgLSBlQmlhcyk7XG4gICAgfVxuICAgIGlmIChudW1iZXIgKiBjID49IDIpIHtcbiAgICAgIGV4cG9uZW50Kys7XG4gICAgICBjIC89IDI7XG4gICAgfVxuICAgIGlmIChleHBvbmVudCArIGVCaWFzID49IGVNYXgpIHtcbiAgICAgIG1hbnRpc3NhID0gMDtcbiAgICAgIGV4cG9uZW50ID0gZU1heDtcbiAgICB9IGVsc2UgaWYgKGV4cG9uZW50ICsgZUJpYXMgPj0gMSkge1xuICAgICAgbWFudGlzc2EgPSAobnVtYmVyICogYyAtIDEpICogcG93KDIsIG1hbnRpc3NhTGVuZ3RoKTtcbiAgICAgIGV4cG9uZW50ID0gZXhwb25lbnQgKyBlQmlhcztcbiAgICB9IGVsc2Uge1xuICAgICAgbWFudGlzc2EgPSBudW1iZXIgKiBwb3coMiwgZUJpYXMgLSAxKSAqIHBvdygyLCBtYW50aXNzYUxlbmd0aCk7XG4gICAgICBleHBvbmVudCA9IDA7XG4gICAgfVxuICB9XG4gIGZvciAoOyBtYW50aXNzYUxlbmd0aCA+PSA4OyBidWZmZXJbaW5kZXgrK10gPSBtYW50aXNzYSAmIDI1NSwgbWFudGlzc2EgLz0gMjU2LCBtYW50aXNzYUxlbmd0aCAtPSA4KTtcbiAgZXhwb25lbnQgPSBleHBvbmVudCA8PCBtYW50aXNzYUxlbmd0aCB8IG1hbnRpc3NhO1xuICBleHBvbmVudExlbmd0aCArPSBtYW50aXNzYUxlbmd0aDtcbiAgZm9yICg7IGV4cG9uZW50TGVuZ3RoID4gMDsgYnVmZmVyW2luZGV4KytdID0gZXhwb25lbnQgJiAyNTUsIGV4cG9uZW50IC89IDI1NiwgZXhwb25lbnRMZW5ndGggLT0gOCk7XG4gIGJ1ZmZlclstLWluZGV4XSB8PSBzaWduICogMTI4O1xuICByZXR1cm4gYnVmZmVyO1xufTtcblxudmFyIHVucGFjayA9IGZ1bmN0aW9uIChidWZmZXIsIG1hbnRpc3NhTGVuZ3RoKSB7XG4gIHZhciBieXRlcyA9IGJ1ZmZlci5sZW5ndGg7XG4gIHZhciBleHBvbmVudExlbmd0aCA9IGJ5dGVzICogOCAtIG1hbnRpc3NhTGVuZ3RoIC0gMTtcbiAgdmFyIGVNYXggPSAoMSA8PCBleHBvbmVudExlbmd0aCkgLSAxO1xuICB2YXIgZUJpYXMgPSBlTWF4ID4+IDE7XG4gIHZhciBuQml0cyA9IGV4cG9uZW50TGVuZ3RoIC0gNztcbiAgdmFyIGluZGV4ID0gYnl0ZXMgLSAxO1xuICB2YXIgc2lnbiA9IGJ1ZmZlcltpbmRleC0tXTtcbiAgdmFyIGV4cG9uZW50ID0gc2lnbiAmIDEyNztcbiAgdmFyIG1hbnRpc3NhO1xuICBzaWduID4+PSA3O1xuICBmb3IgKDsgbkJpdHMgPiAwOyBleHBvbmVudCA9IGV4cG9uZW50ICogMjU2ICsgYnVmZmVyW2luZGV4XSwgaW5kZXgtLSwgbkJpdHMgLT0gOCk7XG4gIG1hbnRpc3NhID0gZXhwb25lbnQgJiAoMSA8PCAtbkJpdHMpIC0gMTtcbiAgZXhwb25lbnQgPj49IC1uQml0cztcbiAgbkJpdHMgKz0gbWFudGlzc2FMZW5ndGg7XG4gIGZvciAoOyBuQml0cyA+IDA7IG1hbnRpc3NhID0gbWFudGlzc2EgKiAyNTYgKyBidWZmZXJbaW5kZXhdLCBpbmRleC0tLCBuQml0cyAtPSA4KTtcbiAgaWYgKGV4cG9uZW50ID09PSAwKSB7XG4gICAgZXhwb25lbnQgPSAxIC0gZUJpYXM7XG4gIH0gZWxzZSBpZiAoZXhwb25lbnQgPT09IGVNYXgpIHtcbiAgICByZXR1cm4gbWFudGlzc2EgPyBOYU4gOiBzaWduID8gLUluZmluaXR5IDogSW5maW5pdHk7XG4gIH0gZWxzZSB7XG4gICAgbWFudGlzc2EgPSBtYW50aXNzYSArIHBvdygyLCBtYW50aXNzYUxlbmd0aCk7XG4gICAgZXhwb25lbnQgPSBleHBvbmVudCAtIGVCaWFzO1xuICB9IHJldHVybiAoc2lnbiA/IC0xIDogMSkgKiBtYW50aXNzYSAqIHBvdygyLCBleHBvbmVudCAtIG1hbnRpc3NhTGVuZ3RoKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBwYWNrOiBwYWNrLFxuICB1bnBhY2s6IHVucGFja1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcblxudmFyIHNwbGl0ID0gJycuc3BsaXQ7XG5cbi8vIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgYW5kIG5vbi1lbnVtZXJhYmxlIG9sZCBWOCBzdHJpbmdzXG5tb2R1bGUuZXhwb3J0cyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gdGhyb3dzIGFuIGVycm9yIGluIHJoaW5vLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvcmhpbm8vaXNzdWVzLzM0NlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zXG4gIHJldHVybiAhT2JqZWN0KCd6JykucHJvcGVydHlJc0VudW1lcmFibGUoMCk7XG59KSA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY2xhc3NvZihpdCkgPT0gJ1N0cmluZycgPyBzcGxpdC5jYWxsKGl0LCAnJykgOiBPYmplY3QoaXQpO1xufSA6IE9iamVjdDtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qtc2V0LXByb3RvdHlwZS1vZicpO1xuXG4vLyBtYWtlcyBzdWJjbGFzc2luZyB3b3JrIGNvcnJlY3QgZm9yIHdyYXBwZWQgYnVpbHQtaW5zXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgkdGhpcywgZHVtbXksIFdyYXBwZXIpIHtcbiAgdmFyIE5ld1RhcmdldCwgTmV3VGFyZ2V0UHJvdG90eXBlO1xuICBpZiAoXG4gICAgLy8gaXQgY2FuIHdvcmsgb25seSB3aXRoIG5hdGl2ZSBgc2V0UHJvdG90eXBlT2ZgXG4gICAgc2V0UHJvdG90eXBlT2YgJiZcbiAgICAvLyB3ZSBoYXZlbid0IGNvbXBsZXRlbHkgY29ycmVjdCBwcmUtRVM2IHdheSBmb3IgZ2V0dGluZyBgbmV3LnRhcmdldGAsIHNvIHVzZSB0aGlzXG4gICAgdHlwZW9mIChOZXdUYXJnZXQgPSBkdW1teS5jb25zdHJ1Y3RvcikgPT0gJ2Z1bmN0aW9uJyAmJlxuICAgIE5ld1RhcmdldCAhPT0gV3JhcHBlciAmJlxuICAgIGlzT2JqZWN0KE5ld1RhcmdldFByb3RvdHlwZSA9IE5ld1RhcmdldC5wcm90b3R5cGUpICYmXG4gICAgTmV3VGFyZ2V0UHJvdG90eXBlICE9PSBXcmFwcGVyLnByb3RvdHlwZVxuICApIHNldFByb3RvdHlwZU9mKCR0aGlzLCBOZXdUYXJnZXRQcm90b3R5cGUpO1xuICByZXR1cm4gJHRoaXM7XG59O1xuIiwidmFyIHN0b3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xuXG52YXIgZnVuY3Rpb25Ub1N0cmluZyA9IEZ1bmN0aW9uLnRvU3RyaW5nO1xuXG4vLyB0aGlzIGhlbHBlciBicm9rZW4gaW4gYDMuNC4xLTMuNC40YCwgc28gd2UgY2FuJ3QgdXNlIGBzaGFyZWRgIGhlbHBlclxuaWYgKHR5cGVvZiBzdG9yZS5pbnNwZWN0U291cmNlICE9ICdmdW5jdGlvbicpIHtcbiAgc3RvcmUuaW5zcGVjdFNvdXJjZSA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBmdW5jdGlvblRvU3RyaW5nLmNhbGwoaXQpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0b3JlLmluc3BlY3RTb3VyY2U7XG4iLCJ2YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRkZW4ta2V5cycpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG52YXIgRlJFRVpJTkcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnJlZXppbmcnKTtcblxudmFyIE1FVEFEQVRBID0gdWlkKCdtZXRhJyk7XG52YXIgaWQgPSAwO1xuXG52YXIgaXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZSB8fCBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0cnVlO1xufTtcblxudmFyIHNldE1ldGFkYXRhID0gZnVuY3Rpb24gKGl0KSB7XG4gIGRlZmluZVByb3BlcnR5KGl0LCBNRVRBREFUQSwgeyB2YWx1ZToge1xuICAgIG9iamVjdElEOiAnTycgKyArK2lkLCAvLyBvYmplY3QgSURcbiAgICB3ZWFrRGF0YToge30gICAgICAgICAgLy8gd2VhayBjb2xsZWN0aW9ucyBJRHNcbiAgfSB9KTtcbn07XG5cbnZhciBmYXN0S2V5ID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHtcbiAgLy8gcmV0dXJuIGEgcHJpbWl0aXZlIHdpdGggcHJlZml4XG4gIGlmICghaXNPYmplY3QoaXQpKSByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnID8gaXQgOiAodHlwZW9mIGl0ID09ICdzdHJpbmcnID8gJ1MnIDogJ1AnKSArIGl0O1xuICBpZiAoIWhhcyhpdCwgTUVUQURBVEEpKSB7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZiAoIWlzRXh0ZW5zaWJsZShpdCkpIHJldHVybiAnRic7XG4gICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGFcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuICdFJztcbiAgICAvLyBhZGQgbWlzc2luZyBtZXRhZGF0YVxuICAgIHNldE1ldGFkYXRhKGl0KTtcbiAgLy8gcmV0dXJuIG9iamVjdCBJRFxuICB9IHJldHVybiBpdFtNRVRBREFUQV0ub2JqZWN0SUQ7XG59O1xuXG52YXIgZ2V0V2Vha0RhdGEgPSBmdW5jdGlvbiAoaXQsIGNyZWF0ZSkge1xuICBpZiAoIWhhcyhpdCwgTUVUQURBVEEpKSB7XG4gICAgLy8gY2FuJ3Qgc2V0IG1ldGFkYXRhIHRvIHVuY2F1Z2h0IGZyb3plbiBvYmplY3RcbiAgICBpZiAoIWlzRXh0ZW5zaWJsZShpdCkpIHJldHVybiB0cnVlO1xuICAgIC8vIG5vdCBuZWNlc3NhcnkgdG8gYWRkIG1ldGFkYXRhXG4gICAgaWYgKCFjcmVhdGUpIHJldHVybiBmYWxzZTtcbiAgICAvLyBhZGQgbWlzc2luZyBtZXRhZGF0YVxuICAgIHNldE1ldGFkYXRhKGl0KTtcbiAgLy8gcmV0dXJuIHRoZSBzdG9yZSBvZiB3ZWFrIGNvbGxlY3Rpb25zIElEc1xuICB9IHJldHVybiBpdFtNRVRBREFUQV0ud2Vha0RhdGE7XG59O1xuXG4vLyBhZGQgbWV0YWRhdGEgb24gZnJlZXplLWZhbWlseSBtZXRob2RzIGNhbGxpbmdcbnZhciBvbkZyZWV6ZSA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoRlJFRVpJTkcgJiYgbWV0YS5SRVFVSVJFRCAmJiBpc0V4dGVuc2libGUoaXQpICYmICFoYXMoaXQsIE1FVEFEQVRBKSkgc2V0TWV0YWRhdGEoaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuXG52YXIgbWV0YSA9IG1vZHVsZS5leHBvcnRzID0ge1xuICBSRVFVSVJFRDogZmFsc2UsXG4gIGZhc3RLZXk6IGZhc3RLZXksXG4gIGdldFdlYWtEYXRhOiBnZXRXZWFrRGF0YSxcbiAgb25GcmVlemU6IG9uRnJlZXplXG59O1xuXG5oaWRkZW5LZXlzW01FVEFEQVRBXSA9IHRydWU7XG4iLCJ2YXIgTkFUSVZFX1dFQUtfTUFQID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS13ZWFrLW1hcCcpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgb2JqZWN0SGFzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcycpO1xudmFyIHNoYXJlZEtleSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQta2V5Jyk7XG52YXIgaGlkZGVuS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oaWRkZW4ta2V5cycpO1xuXG52YXIgV2Vha01hcCA9IGdsb2JhbC5XZWFrTWFwO1xudmFyIHNldCwgZ2V0LCBoYXM7XG5cbnZhciBlbmZvcmNlID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBoYXMoaXQpID8gZ2V0KGl0KSA6IHNldChpdCwge30pO1xufTtcblxudmFyIGdldHRlckZvciA9IGZ1bmN0aW9uIChUWVBFKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoaXQpIHtcbiAgICB2YXIgc3RhdGU7XG4gICAgaWYgKCFpc09iamVjdChpdCkgfHwgKHN0YXRlID0gZ2V0KGl0KSkudHlwZSAhPT0gVFlQRSkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICcgKyBUWVBFICsgJyByZXF1aXJlZCcpO1xuICAgIH0gcmV0dXJuIHN0YXRlO1xuICB9O1xufTtcblxuaWYgKE5BVElWRV9XRUFLX01BUCkge1xuICB2YXIgc3RvcmUgPSBuZXcgV2Vha01hcCgpO1xuICB2YXIgd21nZXQgPSBzdG9yZS5nZXQ7XG4gIHZhciB3bWhhcyA9IHN0b3JlLmhhcztcbiAgdmFyIHdtc2V0ID0gc3RvcmUuc2V0O1xuICBzZXQgPSBmdW5jdGlvbiAoaXQsIG1ldGFkYXRhKSB7XG4gICAgd21zZXQuY2FsbChzdG9yZSwgaXQsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiB3bWdldC5jYWxsKHN0b3JlLCBpdCkgfHwge307XG4gIH07XG4gIGhhcyA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiB3bWhhcy5jYWxsKHN0b3JlLCBpdCk7XG4gIH07XG59IGVsc2Uge1xuICB2YXIgU1RBVEUgPSBzaGFyZWRLZXkoJ3N0YXRlJyk7XG4gIGhpZGRlbktleXNbU1RBVEVdID0gdHJ1ZTtcbiAgc2V0ID0gZnVuY3Rpb24gKGl0LCBtZXRhZGF0YSkge1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShpdCwgU1RBVEUsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBvYmplY3RIYXMoaXQsIFNUQVRFKSA/IGl0W1NUQVRFXSA6IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gb2JqZWN0SGFzKGl0LCBTVEFURSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IHNldCxcbiAgZ2V0OiBnZXQsXG4gIGhhczogaGFzLFxuICBlbmZvcmNlOiBlbmZvcmNlLFxuICBnZXR0ZXJGb3I6IGdldHRlckZvclxufTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG5cbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxuLy8gY2hlY2sgb24gZGVmYXVsdCBBcnJheSBpdGVyYXRvclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICE9PSB1bmRlZmluZWQgJiYgKEl0ZXJhdG9ycy5BcnJheSA9PT0gaXQgfHwgQXJyYXlQcm90b3R5cGVbSVRFUkFUT1JdID09PSBpdCk7XG59O1xuIiwidmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcblxuLy8gYElzQXJyYXlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtaXNhcnJheVxubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7XG4gIHJldHVybiBjbGFzc29mKGFyZykgPT0gJ0FycmF5Jztcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxudmFyIHJlcGxhY2VtZW50ID0gLyN8XFwucHJvdG90eXBlXFwuLztcblxudmFyIGlzRm9yY2VkID0gZnVuY3Rpb24gKGZlYXR1cmUsIGRldGVjdGlvbikge1xuICB2YXIgdmFsdWUgPSBkYXRhW25vcm1hbGl6ZShmZWF0dXJlKV07XG4gIHJldHVybiB2YWx1ZSA9PSBQT0xZRklMTCA/IHRydWVcbiAgICA6IHZhbHVlID09IE5BVElWRSA/IGZhbHNlXG4gICAgOiB0eXBlb2YgZGV0ZWN0aW9uID09ICdmdW5jdGlvbicgPyBmYWlscyhkZXRlY3Rpb24pXG4gICAgOiAhIWRldGVjdGlvbjtcbn07XG5cbnZhciBub3JtYWxpemUgPSBpc0ZvcmNlZC5ub3JtYWxpemUgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHJldHVybiBTdHJpbmcoc3RyaW5nKS5yZXBsYWNlKHJlcGxhY2VtZW50LCAnLicpLnRvTG93ZXJDYXNlKCk7XG59O1xuXG52YXIgZGF0YSA9IGlzRm9yY2VkLmRhdGEgPSB7fTtcbnZhciBOQVRJVkUgPSBpc0ZvcmNlZC5OQVRJVkUgPSAnTic7XG52YXIgUE9MWUZJTEwgPSBpc0ZvcmNlZC5QT0xZRklMTCA9ICdQJztcblxubW9kdWxlLmV4cG9ydHMgPSBpc0ZvcmNlZDtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxuLy8gYE51bWJlci5pc0ludGVnZXJgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbnVtYmVyLmlzaW50ZWdlclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0ludGVnZXIoaXQpIHtcbiAgcmV0dXJuICFpc09iamVjdChpdCkgJiYgaXNGaW5pdGUoaXQpICYmIGZsb29yKGl0KSA9PT0gaXQ7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJztcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZhbHNlO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIE1BVENIID0gd2VsbEtub3duU3ltYm9sKCdtYXRjaCcpO1xuXG4vLyBgSXNSZWdFeHBgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtaXNyZWdleHBcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBpc1JlZ0V4cDtcbiAgcmV0dXJuIGlzT2JqZWN0KGl0KSAmJiAoKGlzUmVnRXhwID0gaXRbTUFUQ0hdKSAhPT0gdW5kZWZpbmVkID8gISFpc1JlZ0V4cCA6IGNsYXNzb2YoaXQpID09ICdSZWdFeHAnKTtcbn07XG4iLCJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgaXNBcnJheUl0ZXJhdG9yTWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5LWl0ZXJhdG9yLW1ldGhvZCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgZ2V0SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xudmFyIGNhbGxXaXRoU2FmZUl0ZXJhdGlvbkNsb3NpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2FsbC13aXRoLXNhZmUtaXRlcmF0aW9uLWNsb3NpbmcnKTtcblxudmFyIFJlc3VsdCA9IGZ1bmN0aW9uIChzdG9wcGVkLCByZXN1bHQpIHtcbiAgdGhpcy5zdG9wcGVkID0gc3RvcHBlZDtcbiAgdGhpcy5yZXN1bHQgPSByZXN1bHQ7XG59O1xuXG52YXIgaXRlcmF0ZSA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0ZXJhYmxlLCBmbiwgdGhhdCwgQVNfRU5UUklFUywgSVNfSVRFUkFUT1IpIHtcbiAgdmFyIGJvdW5kRnVuY3Rpb24gPSBiaW5kKGZuLCB0aGF0LCBBU19FTlRSSUVTID8gMiA6IDEpO1xuICB2YXIgaXRlcmF0b3IsIGl0ZXJGbiwgaW5kZXgsIGxlbmd0aCwgcmVzdWx0LCBuZXh0LCBzdGVwO1xuXG4gIGlmIChJU19JVEVSQVRPUikge1xuICAgIGl0ZXJhdG9yID0gaXRlcmFibGU7XG4gIH0gZWxzZSB7XG4gICAgaXRlckZuID0gZ2V0SXRlcmF0b3JNZXRob2QoaXRlcmFibGUpO1xuICAgIGlmICh0eXBlb2YgaXRlckZuICE9ICdmdW5jdGlvbicpIHRocm93IFR5cGVFcnJvcignVGFyZ2V0IGlzIG5vdCBpdGVyYWJsZScpO1xuICAgIC8vIG9wdGltaXNhdGlvbiBmb3IgYXJyYXkgaXRlcmF0b3JzXG4gICAgaWYgKGlzQXJyYXlJdGVyYXRvck1ldGhvZChpdGVyRm4pKSB7XG4gICAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gdG9MZW5ndGgoaXRlcmFibGUubGVuZ3RoKTsgbGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIHtcbiAgICAgICAgcmVzdWx0ID0gQVNfRU5UUklFU1xuICAgICAgICAgID8gYm91bmRGdW5jdGlvbihhbk9iamVjdChzdGVwID0gaXRlcmFibGVbaW5kZXhdKVswXSwgc3RlcFsxXSlcbiAgICAgICAgICA6IGJvdW5kRnVuY3Rpb24oaXRlcmFibGVbaW5kZXhdKTtcbiAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQgaW5zdGFuY2VvZiBSZXN1bHQpIHJldHVybiByZXN1bHQ7XG4gICAgICB9IHJldHVybiBuZXcgUmVzdWx0KGZhbHNlKTtcbiAgICB9XG4gICAgaXRlcmF0b3IgPSBpdGVyRm4uY2FsbChpdGVyYWJsZSk7XG4gIH1cblxuICBuZXh0ID0gaXRlcmF0b3IubmV4dDtcbiAgd2hpbGUgKCEoc3RlcCA9IG5leHQuY2FsbChpdGVyYXRvcikpLmRvbmUpIHtcbiAgICByZXN1bHQgPSBjYWxsV2l0aFNhZmVJdGVyYXRpb25DbG9zaW5nKGl0ZXJhdG9yLCBib3VuZEZ1bmN0aW9uLCBzdGVwLnZhbHVlLCBBU19FTlRSSUVTKTtcbiAgICBpZiAodHlwZW9mIHJlc3VsdCA9PSAnb2JqZWN0JyAmJiByZXN1bHQgJiYgcmVzdWx0IGluc3RhbmNlb2YgUmVzdWx0KSByZXR1cm4gcmVzdWx0O1xuICB9IHJldHVybiBuZXcgUmVzdWx0KGZhbHNlKTtcbn07XG5cbml0ZXJhdGUuc3RvcCA9IGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgcmV0dXJuIG5ldyBSZXN1bHQodHJ1ZSwgcmVzdWx0KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wYXRoJyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciByZWRlZmluZUFsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWRlZmluZS1hbGwnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG5cbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0O1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcblxudmFyICRyZXR1cm4gPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgdmFyIGl0ZXJhdG9yID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKS5pdGVyYXRvcjtcbiAgdmFyICQkcmV0dXJuID0gaXRlcmF0b3JbJ3JldHVybiddO1xuICByZXR1cm4gJCRyZXR1cm4gPT09IHVuZGVmaW5lZCA/IHsgZG9uZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0gOiBhbk9iamVjdCgkJHJldHVybi5jYWxsKGl0ZXJhdG9yLCB2YWx1ZSkpO1xufTtcblxudmFyICR0aHJvdyA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICB2YXIgaXRlcmF0b3IgPSBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpLml0ZXJhdG9yO1xuICB2YXIgJCR0aHJvdyA9IGl0ZXJhdG9yWyd0aHJvdyddO1xuICBpZiAoJCR0aHJvdyA9PT0gdW5kZWZpbmVkKSB0aHJvdyB2YWx1ZTtcbiAgcmV0dXJuICQkdGhyb3cuY2FsbChpdGVyYXRvciwgdmFsdWUpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmV4dEhhbmRsZXIsIElTX0lURVJBVE9SKSB7XG4gIHZhciBJdGVyYXRvclByb3h5ID0gZnVuY3Rpb24gSXRlcmF0b3Ioc3RhdGUpIHtcbiAgICBzdGF0ZS5uZXh0ID0gYUZ1bmN0aW9uKHN0YXRlLml0ZXJhdG9yLm5leHQpO1xuICAgIHN0YXRlLmRvbmUgPSBmYWxzZTtcbiAgICBzZXRJbnRlcm5hbFN0YXRlKHRoaXMsIHN0YXRlKTtcbiAgfTtcblxuICBJdGVyYXRvclByb3h5LnByb3RvdHlwZSA9IHJlZGVmaW5lQWxsKGNyZWF0ZShwYXRoLkl0ZXJhdG9yLnByb3RvdHlwZSksIHtcbiAgICBuZXh0OiBmdW5jdGlvbiBuZXh0KCkge1xuICAgICAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgICAgIHZhciByZXN1bHQgPSBzdGF0ZS5kb25lID8gdW5kZWZpbmVkIDogbmV4dEhhbmRsZXIuYXBwbHkoc3RhdGUsIGFyZ3VtZW50cyk7XG4gICAgICByZXR1cm4geyBkb25lOiBzdGF0ZS5kb25lLCB2YWx1ZTogcmVzdWx0IH07XG4gICAgfSxcbiAgICAncmV0dXJuJzogJHJldHVybixcbiAgICAndGhyb3cnOiAkdGhyb3dcbiAgfSk7XG5cbiAgaWYgKCFJU19JVEVSQVRPUikge1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShJdGVyYXRvclByb3h5LnByb3RvdHlwZSwgVE9fU1RSSU5HX1RBRywgJ0dlbmVyYXRvcicpO1xuICB9XG5cbiAgcmV0dXJuIEl0ZXJhdG9yUHJveHk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgPSBmYWxzZTtcblxudmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9O1xuXG4vLyBgJUl0ZXJhdG9yUHJvdG90eXBlJWAgb2JqZWN0XG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy0laXRlcmF0b3Jwcm90b3R5cGUlLW9iamVjdFxudmFyIEl0ZXJhdG9yUHJvdG90eXBlLCBQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUsIGFycmF5SXRlcmF0b3I7XG5cbmlmIChbXS5rZXlzKSB7XG4gIGFycmF5SXRlcmF0b3IgPSBbXS5rZXlzKCk7XG4gIC8vIFNhZmFyaSA4IGhhcyBidWdneSBpdGVyYXRvcnMgdy9vIGBuZXh0YFxuICBpZiAoISgnbmV4dCcgaW4gYXJyYXlJdGVyYXRvcikpIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlMgPSB0cnVlO1xuICBlbHNlIHtcbiAgICBQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZihnZXRQcm90b3R5cGVPZihhcnJheUl0ZXJhdG9yKSk7XG4gICAgaWYgKFByb3RvdHlwZU9mQXJyYXlJdGVyYXRvclByb3RvdHlwZSAhPT0gT2JqZWN0LnByb3RvdHlwZSkgSXRlcmF0b3JQcm90b3R5cGUgPSBQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGU7XG4gIH1cbn1cblxuaWYgKEl0ZXJhdG9yUHJvdG90eXBlID09IHVuZGVmaW5lZCkgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcblxuLy8gMjUuMS4yLjEuMSAlSXRlcmF0b3JQcm90b3R5cGUlW0BAaXRlcmF0b3JdKClcbmlmICghSVNfUFVSRSAmJiAhaGFzKEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUikpIHtcbiAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgcmV0dXJuVGhpcyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBJdGVyYXRvclByb3RvdHlwZTogSXRlcmF0b3JQcm90b3R5cGUsXG4gIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6IEJVR0dZX1NBRkFSSV9JVEVSQVRPUlNcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHt9O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG4vLyBgTWFwLnByb3RvdHlwZS51cHNlcnRgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RodW1ic3VwZXAvcHJvcG9zYWwtdXBzZXJ0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHVwc2VydChrZXksIHVwZGF0ZUZuIC8qICwgaW5zZXJ0Rm4gKi8pIHtcbiAgdmFyIG1hcCA9IGFuT2JqZWN0KHRoaXMpO1xuICB2YXIgaW5zZXJ0Rm4gPSBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZDtcbiAgdmFyIHZhbHVlO1xuICBpZiAodHlwZW9mIHVwZGF0ZUZuICE9ICdmdW5jdGlvbicgJiYgdHlwZW9mIGluc2VydEZuICE9ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ0F0IGxlYXN0IG9uZSBjYWxsYmFjayByZXF1aXJlZCcpO1xuICB9XG4gIGlmIChtYXAuaGFzKGtleSkpIHtcbiAgICB2YWx1ZSA9IG1hcC5nZXQoa2V5KTtcbiAgICBpZiAodHlwZW9mIHVwZGF0ZUZuID09ICdmdW5jdGlvbicpIHtcbiAgICAgIHZhbHVlID0gdXBkYXRlRm4odmFsdWUpO1xuICAgICAgbWFwLnNldChrZXksIHZhbHVlKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGluc2VydEZuID09ICdmdW5jdGlvbicpIHtcbiAgICB2YWx1ZSA9IGluc2VydEZuKCk7XG4gICAgbWFwLnNldChrZXksIHZhbHVlKTtcbiAgfSByZXR1cm4gdmFsdWU7XG59O1xuIiwidmFyIG5hdGl2ZUV4cG0xID0gTWF0aC5leHBtMTtcbnZhciBleHAgPSBNYXRoLmV4cDtcblxuLy8gYE1hdGguZXhwbTFgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbWF0aC5leHBtMVxubW9kdWxlLmV4cG9ydHMgPSAoIW5hdGl2ZUV4cG0xXG4gIC8vIE9sZCBGRiBidWdcbiAgfHwgbmF0aXZlRXhwbTEoMTApID4gMjIwMjUuNDY1Nzk0ODA2NzE5IHx8IG5hdGl2ZUV4cG0xKDEwKSA8IDIyMDI1LjQ2NTc5NDgwNjcxNjUxNjhcbiAgLy8gVG9yIEJyb3dzZXIgYnVnXG4gIHx8IG5hdGl2ZUV4cG0xKC0yZS0xNykgIT0gLTJlLTE3XG4pID8gZnVuY3Rpb24gZXhwbTEoeCkge1xuICByZXR1cm4gKHggPSAreCkgPT0gMCA/IHggOiB4ID4gLTFlLTYgJiYgeCA8IDFlLTYgPyB4ICsgeCAqIHggLyAyIDogZXhwKHgpIC0gMTtcbn0gOiBuYXRpdmVFeHBtMTtcbiIsInZhciBzaWduID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21hdGgtc2lnbicpO1xuXG52YXIgYWJzID0gTWF0aC5hYnM7XG52YXIgcG93ID0gTWF0aC5wb3c7XG52YXIgRVBTSUxPTiA9IHBvdygyLCAtNTIpO1xudmFyIEVQU0lMT04zMiA9IHBvdygyLCAtMjMpO1xudmFyIE1BWDMyID0gcG93KDIsIDEyNykgKiAoMiAtIEVQU0lMT04zMik7XG52YXIgTUlOMzIgPSBwb3coMiwgLTEyNik7XG5cbnZhciByb3VuZFRpZXNUb0V2ZW4gPSBmdW5jdGlvbiAobikge1xuICByZXR1cm4gbiArIDEgLyBFUFNJTE9OIC0gMSAvIEVQU0lMT047XG59O1xuXG4vLyBgTWF0aC5mcm91bmRgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbWF0aC5mcm91bmRcbm1vZHVsZS5leHBvcnRzID0gTWF0aC5mcm91bmQgfHwgZnVuY3Rpb24gZnJvdW5kKHgpIHtcbiAgdmFyICRhYnMgPSBhYnMoeCk7XG4gIHZhciAkc2lnbiA9IHNpZ24oeCk7XG4gIHZhciBhLCByZXN1bHQ7XG4gIGlmICgkYWJzIDwgTUlOMzIpIHJldHVybiAkc2lnbiAqIHJvdW5kVGllc1RvRXZlbigkYWJzIC8gTUlOMzIgLyBFUFNJTE9OMzIpICogTUlOMzIgKiBFUFNJTE9OMzI7XG4gIGEgPSAoMSArIEVQU0lMT04zMiAvIEVQU0lMT04pICogJGFicztcbiAgcmVzdWx0ID0gYSAtIChhIC0gJGFicyk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAgaWYgKHJlc3VsdCA+IE1BWDMyIHx8IHJlc3VsdCAhPSByZXN1bHQpIHJldHVybiAkc2lnbiAqIEluZmluaXR5O1xuICByZXR1cm4gJHNpZ24gKiByZXN1bHQ7XG59O1xuIiwidmFyIGxvZyA9IE1hdGgubG9nO1xuXG4vLyBgTWF0aC5sb2cxcGAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1tYXRoLmxvZzFwXG5tb2R1bGUuZXhwb3J0cyA9IE1hdGgubG9nMXAgfHwgZnVuY3Rpb24gbG9nMXAoeCkge1xuICByZXR1cm4gKHggPSAreCkgPiAtMWUtOCAmJiB4IDwgMWUtOCA/IHggLSB4ICogeCAvIDIgOiBsb2coMSArIHgpO1xufTtcbiIsIi8vIGBNYXRoLnNjYWxlYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vcndhbGRyb24uZ2l0aHViLmlvL3Byb3Bvc2FsLW1hdGgtZXh0ZW5zaW9ucy9cbm1vZHVsZS5leHBvcnRzID0gTWF0aC5zY2FsZSB8fCBmdW5jdGlvbiBzY2FsZSh4LCBpbkxvdywgaW5IaWdoLCBvdXRMb3csIG91dEhpZ2gpIHtcbiAgaWYgKFxuICAgIGFyZ3VtZW50cy5sZW5ndGggPT09IDBcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLXNlbGYtY29tcGFyZSAqL1xuICAgICAgfHwgeCAhPSB4XG4gICAgICB8fCBpbkxvdyAhPSBpbkxvd1xuICAgICAgfHwgaW5IaWdoICE9IGluSGlnaFxuICAgICAgfHwgb3V0TG93ICE9IG91dExvd1xuICAgICAgfHwgb3V0SGlnaCAhPSBvdXRIaWdoXG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLXNlbGYtY29tcGFyZSAqL1xuICApIHJldHVybiBOYU47XG4gIGlmICh4ID09PSBJbmZpbml0eSB8fCB4ID09PSAtSW5maW5pdHkpIHJldHVybiB4O1xuICByZXR1cm4gKHggLSBpbkxvdykgKiAob3V0SGlnaCAtIG91dExvdykgLyAoaW5IaWdoIC0gaW5Mb3cpICsgb3V0TG93O1xufTtcbiIsIi8vIGBNYXRoLnNpZ25gIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbWF0aC5zaWduXG5tb2R1bGUuZXhwb3J0cyA9IE1hdGguc2lnbiB8fCBmdW5jdGlvbiBzaWduKHgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICByZXR1cm4gKHggPSAreCkgPT0gMCB8fCB4ICE9IHggPyB4IDogeCA8IDAgPyAtMSA6IDE7XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpLmY7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIG1hY3JvdGFzayA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90YXNrJykuc2V0O1xudmFyIElTX0lPUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtaXMtaW9zJyk7XG5cbnZhciBNdXRhdGlvbk9ic2VydmVyID0gZ2xvYmFsLk11dGF0aW9uT2JzZXJ2ZXIgfHwgZ2xvYmFsLldlYktpdE11dGF0aW9uT2JzZXJ2ZXI7XG52YXIgcHJvY2VzcyA9IGdsb2JhbC5wcm9jZXNzO1xudmFyIFByb21pc2UgPSBnbG9iYWwuUHJvbWlzZTtcbnZhciBJU19OT0RFID0gY2xhc3NvZihwcm9jZXNzKSA9PSAncHJvY2Vzcyc7XG4vLyBOb2RlLmpzIDExIHNob3dzIEV4cGVyaW1lbnRhbFdhcm5pbmcgb24gZ2V0dGluZyBgcXVldWVNaWNyb3Rhc2tgXG52YXIgcXVldWVNaWNyb3Rhc2tEZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGdsb2JhbCwgJ3F1ZXVlTWljcm90YXNrJyk7XG52YXIgcXVldWVNaWNyb3Rhc2sgPSBxdWV1ZU1pY3JvdGFza0Rlc2NyaXB0b3IgJiYgcXVldWVNaWNyb3Rhc2tEZXNjcmlwdG9yLnZhbHVlO1xuXG52YXIgZmx1c2gsIGhlYWQsIGxhc3QsIG5vdGlmeSwgdG9nZ2xlLCBub2RlLCBwcm9taXNlLCB0aGVuO1xuXG4vLyBtb2Rlcm4gZW5naW5lcyBoYXZlIHF1ZXVlTWljcm90YXNrIG1ldGhvZFxuaWYgKCFxdWV1ZU1pY3JvdGFzaykge1xuICBmbHVzaCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcGFyZW50LCBmbjtcbiAgICBpZiAoSVNfTk9ERSAmJiAocGFyZW50ID0gcHJvY2Vzcy5kb21haW4pKSBwYXJlbnQuZXhpdCgpO1xuICAgIHdoaWxlIChoZWFkKSB7XG4gICAgICBmbiA9IGhlYWQuZm47XG4gICAgICBoZWFkID0gaGVhZC5uZXh0O1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm4oKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChoZWFkKSBub3RpZnkoKTtcbiAgICAgICAgZWxzZSBsYXN0ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9IGxhc3QgPSB1bmRlZmluZWQ7XG4gICAgaWYgKHBhcmVudCkgcGFyZW50LmVudGVyKCk7XG4gIH07XG5cbiAgLy8gTm9kZS5qc1xuICBpZiAoSVNfTk9ERSkge1xuICAgIG5vdGlmeSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soZmx1c2gpO1xuICAgIH07XG4gIC8vIGJyb3dzZXJzIHdpdGggTXV0YXRpb25PYnNlcnZlciwgZXhjZXB0IGlPUyAtIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy8zMzlcbiAgfSBlbHNlIGlmIChNdXRhdGlvbk9ic2VydmVyICYmICFJU19JT1MpIHtcbiAgICB0b2dnbGUgPSB0cnVlO1xuICAgIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnJyk7XG4gICAgbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZmx1c2gpLm9ic2VydmUobm9kZSwgeyBjaGFyYWN0ZXJEYXRhOiB0cnVlIH0pO1xuICAgIG5vdGlmeSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vZGUuZGF0YSA9IHRvZ2dsZSA9ICF0b2dnbGU7XG4gICAgfTtcbiAgLy8gZW52aXJvbm1lbnRzIHdpdGggbWF5YmUgbm9uLWNvbXBsZXRlbHkgY29ycmVjdCwgYnV0IGV4aXN0ZW50IFByb21pc2VcbiAgfSBlbHNlIGlmIChQcm9taXNlICYmIFByb21pc2UucmVzb2x2ZSkge1xuICAgIC8vIFByb21pc2UucmVzb2x2ZSB3aXRob3V0IGFuIGFyZ3VtZW50IHRocm93cyBhbiBlcnJvciBpbiBMRyBXZWJPUyAyXG4gICAgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICAgIHRoZW4gPSBwcm9taXNlLnRoZW47XG4gICAgbm90aWZ5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgdGhlbi5jYWxsKHByb21pc2UsIGZsdXNoKTtcbiAgICB9O1xuICAvLyBmb3Igb3RoZXIgZW52aXJvbm1lbnRzIC0gbWFjcm90YXNrIGJhc2VkIG9uOlxuICAvLyAtIHNldEltbWVkaWF0ZVxuICAvLyAtIE1lc3NhZ2VDaGFubmVsXG4gIC8vIC0gd2luZG93LnBvc3RNZXNzYWdcbiAgLy8gLSBvbnJlYWR5c3RhdGVjaGFuZ2VcbiAgLy8gLSBzZXRUaW1lb3V0XG4gIH0gZWxzZSB7XG4gICAgbm90aWZ5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgLy8gc3RyYW5nZSBJRSArIHdlYnBhY2sgZGV2IHNlcnZlciBidWcgLSB1c2UgLmNhbGwoZ2xvYmFsKVxuICAgICAgbWFjcm90YXNrLmNhbGwoZ2xvYmFsLCBmbHVzaCk7XG4gICAgfTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHF1ZXVlTWljcm90YXNrIHx8IGZ1bmN0aW9uIChmbikge1xuICB2YXIgdGFzayA9IHsgZm46IGZuLCBuZXh0OiB1bmRlZmluZWQgfTtcbiAgaWYgKGxhc3QpIGxhc3QubmV4dCA9IHRhc2s7XG4gIGlmICghaGVhZCkge1xuICAgIGhlYWQgPSB0YXNrO1xuICAgIG5vdGlmeSgpO1xuICB9IGxhc3QgPSB0YXNrO1xufTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2xvYmFsLlByb21pc2U7XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSAhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gQ2hyb21lIDM4IFN5bWJvbCBoYXMgaW5jb3JyZWN0IHRvU3RyaW5nIGNvbnZlcnNpb25cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIHJldHVybiAhU3RyaW5nKFN5bWJvbCgpKTtcbn0pO1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG5cbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgdXJsID0gbmV3IFVSTCgnYj9hPTEmYj0yJmM9MycsICdodHRwOi8vYScpO1xuICB2YXIgc2VhcmNoUGFyYW1zID0gdXJsLnNlYXJjaFBhcmFtcztcbiAgdmFyIHJlc3VsdCA9ICcnO1xuICB1cmwucGF0aG5hbWUgPSAnYyUyMGQnO1xuICBzZWFyY2hQYXJhbXMuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgIHNlYXJjaFBhcmFtc1snZGVsZXRlJ10oJ2InKTtcbiAgICByZXN1bHQgKz0ga2V5ICsgdmFsdWU7XG4gIH0pO1xuICByZXR1cm4gKElTX1BVUkUgJiYgIXVybC50b0pTT04pXG4gICAgfHwgIXNlYXJjaFBhcmFtcy5zb3J0XG4gICAgfHwgdXJsLmhyZWYgIT09ICdodHRwOi8vYS9jJTIwZD9hPTEmYz0zJ1xuICAgIHx8IHNlYXJjaFBhcmFtcy5nZXQoJ2MnKSAhPT0gJzMnXG4gICAgfHwgU3RyaW5nKG5ldyBVUkxTZWFyY2hQYXJhbXMoJz9hPTEnKSkgIT09ICdhPTEnXG4gICAgfHwgIXNlYXJjaFBhcmFtc1tJVEVSQVRPUl1cbiAgICAvLyB0aHJvd3MgaW4gRWRnZVxuICAgIHx8IG5ldyBVUkwoJ2h0dHBzOi8vYUBiJykudXNlcm5hbWUgIT09ICdhJ1xuICAgIHx8IG5ldyBVUkxTZWFyY2hQYXJhbXMobmV3IFVSTFNlYXJjaFBhcmFtcygnYT1iJykpLmdldCgnYScpICE9PSAnYidcbiAgICAvLyBub3QgcHVueWNvZGVkIGluIEVkZ2VcbiAgICB8fCBuZXcgVVJMKCdodHRwOi8v0YLQtdGB0YInKS5ob3N0ICE9PSAneG4tLWUxYXliYydcbiAgICAvLyBub3QgZXNjYXBlZCBpbiBDaHJvbWUgNjItXG4gICAgfHwgbmV3IFVSTCgnaHR0cDovL2Ej0LEnKS5oYXNoICE9PSAnIyVEMCVCMSdcbiAgICAvLyBmYWlscyBpbiBDaHJvbWUgNjYtXG4gICAgfHwgcmVzdWx0ICE9PSAnYTFjMydcbiAgICAvLyB0aHJvd3MgaW4gU2FmYXJpXG4gICAgfHwgbmV3IFVSTCgnaHR0cDovL3gnLCB1bmRlZmluZWQpLmhvc3QgIT09ICd4Jztcbn0pO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpbnNwZWN0U291cmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlJyk7XG5cbnZhciBXZWFrTWFwID0gZ2xvYmFsLldlYWtNYXA7XG5cbm1vZHVsZS5leHBvcnRzID0gdHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgJiYgL25hdGl2ZSBjb2RlLy50ZXN0KGluc3BlY3RTb3VyY2UoV2Vha01hcCkpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG5cbnZhciBQcm9taXNlQ2FwYWJpbGl0eSA9IGZ1bmN0aW9uIChDKSB7XG4gIHZhciByZXNvbHZlLCByZWplY3Q7XG4gIHRoaXMucHJvbWlzZSA9IG5ldyBDKGZ1bmN0aW9uICgkJHJlc29sdmUsICQkcmVqZWN0KSB7XG4gICAgaWYgKHJlc29sdmUgIT09IHVuZGVmaW5lZCB8fCByZWplY3QgIT09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKCdCYWQgUHJvbWlzZSBjb25zdHJ1Y3RvcicpO1xuICAgIHJlc29sdmUgPSAkJHJlc29sdmU7XG4gICAgcmVqZWN0ID0gJCRyZWplY3Q7XG4gIH0pO1xuICB0aGlzLnJlc29sdmUgPSBhRnVuY3Rpb24ocmVzb2x2ZSk7XG4gIHRoaXMucmVqZWN0ID0gYUZ1bmN0aW9uKHJlamVjdCk7XG59O1xuXG4vLyAyNS40LjEuNSBOZXdQcm9taXNlQ2FwYWJpbGl0eShDKVxubW9kdWxlLmV4cG9ydHMuZiA9IGZ1bmN0aW9uIChDKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZUNhcGFiaWxpdHkoQyk7XG59O1xuIiwidmFyIGlzUmVnRXhwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXJlZ2V4cCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXNSZWdFeHAoaXQpKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKFwiVGhlIG1ldGhvZCBkb2Vzbid0IGFjY2VwdCByZWd1bGFyIGV4cHJlc3Npb25zXCIpO1xuICB9IHJldHVybiBpdDtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG52YXIgZ2xvYmFsSXNGaW5pdGUgPSBnbG9iYWwuaXNGaW5pdGU7XG5cbi8vIGBOdW1iZXIuaXNGaW5pdGVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbnVtYmVyLmlzZmluaXRlXG5tb2R1bGUuZXhwb3J0cyA9IE51bWJlci5pc0Zpbml0ZSB8fCBmdW5jdGlvbiBpc0Zpbml0ZShpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdudW1iZXInICYmIGdsb2JhbElzRmluaXRlKGl0KTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHRyaW0gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXRyaW0nKS50cmltO1xudmFyIHdoaXRlc3BhY2VzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3doaXRlc3BhY2VzJyk7XG5cbnZhciAkcGFyc2VGbG9hdCA9IGdsb2JhbC5wYXJzZUZsb2F0O1xudmFyIEZPUkNFRCA9IDEgLyAkcGFyc2VGbG9hdCh3aGl0ZXNwYWNlcyArICctMCcpICE9PSAtSW5maW5pdHk7XG5cbi8vIGBwYXJzZUZsb2F0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXBhcnNlZmxvYXQtc3RyaW5nXG5tb2R1bGUuZXhwb3J0cyA9IEZPUkNFRCA/IGZ1bmN0aW9uIHBhcnNlRmxvYXQoc3RyaW5nKSB7XG4gIHZhciB0cmltbWVkU3RyaW5nID0gdHJpbShTdHJpbmcoc3RyaW5nKSk7XG4gIHZhciByZXN1bHQgPSAkcGFyc2VGbG9hdCh0cmltbWVkU3RyaW5nKTtcbiAgcmV0dXJuIHJlc3VsdCA9PT0gMCAmJiB0cmltbWVkU3RyaW5nLmNoYXJBdCgwKSA9PSAnLScgPyAtMCA6IHJlc3VsdDtcbn0gOiAkcGFyc2VGbG9hdDtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgdHJpbSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctdHJpbScpLnRyaW07XG52YXIgd2hpdGVzcGFjZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2hpdGVzcGFjZXMnKTtcblxudmFyICRwYXJzZUludCA9IGdsb2JhbC5wYXJzZUludDtcbnZhciBoZXggPSAvXlsrLV0/MFtYeF0vO1xudmFyIEZPUkNFRCA9ICRwYXJzZUludCh3aGl0ZXNwYWNlcyArICcwOCcpICE9PSA4IHx8ICRwYXJzZUludCh3aGl0ZXNwYWNlcyArICcweDE2JykgIT09IDIyO1xuXG4vLyBgcGFyc2VJbnRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcGFyc2VpbnQtc3RyaW5nLXJhZGl4XG5tb2R1bGUuZXhwb3J0cyA9IEZPUkNFRCA/IGZ1bmN0aW9uIHBhcnNlSW50KHN0cmluZywgcmFkaXgpIHtcbiAgdmFyIFMgPSB0cmltKFN0cmluZyhzdHJpbmcpKTtcbiAgcmV0dXJuICRwYXJzZUludChTLCAocmFkaXggPj4+IDApIHx8IChoZXgudGVzdChTKSA/IDE2IDogMTApKTtcbn0gOiAkcGFyc2VJbnQ7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIG9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scycpO1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1wcm9wZXJ0eS1pcy1lbnVtZXJhYmxlJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xuXG52YXIgbmF0aXZlQXNzaWduID0gT2JqZWN0LmFzc2lnbjtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcblxuLy8gYE9iamVjdC5hc3NpZ25gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmFzc2lnblxubW9kdWxlLmV4cG9ydHMgPSAhbmF0aXZlQXNzaWduIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gc2hvdWxkIGhhdmUgY29ycmVjdCBvcmRlciBvZiBvcGVyYXRpb25zIChFZGdlIGJ1ZylcbiAgaWYgKERFU0NSSVBUT1JTICYmIG5hdGl2ZUFzc2lnbih7IGI6IDEgfSwgbmF0aXZlQXNzaWduKGRlZmluZVByb3BlcnR5KHt9LCAnYScsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgZGVmaW5lUHJvcGVydHkodGhpcywgJ2InLCB7XG4gICAgICAgIHZhbHVlOiAzLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICAgICAgfSk7XG4gICAgfVxuICB9KSwgeyBiOiAyIH0pKS5iICE9PSAxKSByZXR1cm4gdHJ1ZTtcbiAgLy8gc2hvdWxkIHdvcmsgd2l0aCBzeW1ib2xzIGFuZCBzaG91bGQgaGF2ZSBkZXRlcm1pbmlzdGljIHByb3BlcnR5IG9yZGVyIChWOCBidWcpXG4gIHZhciBBID0ge307XG4gIHZhciBCID0ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICB2YXIgc3ltYm9sID0gU3ltYm9sKCk7XG4gIHZhciBhbHBoYWJldCA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdCc7XG4gIEFbc3ltYm9sXSA9IDc7XG4gIGFscGhhYmV0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChjaHIpIHsgQltjaHJdID0gY2hyOyB9KTtcbiAgcmV0dXJuIG5hdGl2ZUFzc2lnbih7fSwgQSlbc3ltYm9sXSAhPSA3IHx8IG9iamVjdEtleXMobmF0aXZlQXNzaWduKHt9LCBCKSkuam9pbignJykgIT0gYWxwaGFiZXQ7XG59KSA/IGZ1bmN0aW9uIGFzc2lnbih0YXJnZXQsIHNvdXJjZSkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gIHZhciBUID0gdG9PYmplY3QodGFyZ2V0KTtcbiAgdmFyIGFyZ3VtZW50c0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gIHZhciBpbmRleCA9IDE7XG4gIHZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUuZjtcbiAgdmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZjtcbiAgd2hpbGUgKGFyZ3VtZW50c0xlbmd0aCA+IGluZGV4KSB7XG4gICAgdmFyIFMgPSBJbmRleGVkT2JqZWN0KGFyZ3VtZW50c1tpbmRleCsrXSk7XG4gICAgdmFyIGtleXMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPyBvYmplY3RLZXlzKFMpLmNvbmNhdChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoUykpIDogb2JqZWN0S2V5cyhTKTtcbiAgICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gICAgdmFyIGogPSAwO1xuICAgIHZhciBrZXk7XG4gICAgd2hpbGUgKGxlbmd0aCA+IGopIHtcbiAgICAgIGtleSA9IGtleXNbaisrXTtcbiAgICAgIGlmICghREVTQ1JJUFRPUlMgfHwgcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChTLCBrZXkpKSBUW2tleV0gPSBTW2tleV07XG4gICAgfVxuICB9IHJldHVybiBUO1xufSA6IG5hdGl2ZUFzc2lnbjtcbiIsInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBkZWZpbmVQcm9wZXJ0aWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydGllcycpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG52YXIgaHRtbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9odG1sJyk7XG52YXIgZG9jdW1lbnRDcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcblxudmFyIEdUID0gJz4nO1xudmFyIExUID0gJzwnO1xudmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnO1xudmFyIFNDUklQVCA9ICdzY3JpcHQnO1xudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xuXG52YXIgRW1wdHlDb25zdHJ1Y3RvciA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTtcblxudmFyIHNjcmlwdFRhZyA9IGZ1bmN0aW9uIChjb250ZW50KSB7XG4gIHJldHVybiBMVCArIFNDUklQVCArIEdUICsgY29udGVudCArIExUICsgJy8nICsgU0NSSVBUICsgR1Q7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgQWN0aXZlWCBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIE51bGxQcm90b09iamVjdFZpYUFjdGl2ZVggPSBmdW5jdGlvbiAoYWN0aXZlWERvY3VtZW50KSB7XG4gIGFjdGl2ZVhEb2N1bWVudC53cml0ZShzY3JpcHRUYWcoJycpKTtcbiAgYWN0aXZlWERvY3VtZW50LmNsb3NlKCk7XG4gIHZhciB0ZW1wID0gYWN0aXZlWERvY3VtZW50LnBhcmVudFdpbmRvdy5PYmplY3Q7XG4gIGFjdGl2ZVhEb2N1bWVudCA9IG51bGw7IC8vIGF2b2lkIG1lbW9yeSBsZWFrXG4gIHJldHVybiB0ZW1wO1xufTtcblxuLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIGlmcmFtZSBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZVxudmFyIE51bGxQcm90b09iamVjdFZpYUlGcmFtZSA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gVGhyYXNoLCB3YXN0ZSBhbmQgc29kb215OiBJRSBHQyBidWdcbiAgdmFyIGlmcmFtZSA9IGRvY3VtZW50Q3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gIHZhciBKUyA9ICdqYXZhJyArIFNDUklQVCArICc6JztcbiAgdmFyIGlmcmFtZURvY3VtZW50O1xuICBpZnJhbWUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgaHRtbC5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvNDc1XG4gIGlmcmFtZS5zcmMgPSBTdHJpbmcoSlMpO1xuICBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50O1xuICBpZnJhbWVEb2N1bWVudC5vcGVuKCk7XG4gIGlmcmFtZURvY3VtZW50LndyaXRlKHNjcmlwdFRhZygnZG9jdW1lbnQuRj1PYmplY3QnKSk7XG4gIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gIHJldHVybiBpZnJhbWVEb2N1bWVudC5GO1xufTtcblxuLy8gQ2hlY2sgZm9yIGRvY3VtZW50LmRvbWFpbiBhbmQgYWN0aXZlIHggc3VwcG9ydFxuLy8gTm8gbmVlZCB0byB1c2UgYWN0aXZlIHggYXBwcm9hY2ggd2hlbiBkb2N1bWVudC5kb21haW4gaXMgbm90IHNldFxuLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9lcy1zaGltcy9lczUtc2hpbS9pc3N1ZXMvMTUwXG4vLyB2YXJpYXRpb24gb2YgaHR0cHM6Ly9naXRodWIuY29tL2tpdGNhbWJyaWRnZS9lczUtc2hpbS9jb21taXQvNGY3MzhhYzA2NjM0NlxuLy8gYXZvaWQgSUUgR0MgYnVnXG52YXIgYWN0aXZlWERvY3VtZW50O1xudmFyIE51bGxQcm90b09iamVjdCA9IGZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICAvKiBnbG9iYWwgQWN0aXZlWE9iamVjdCAqL1xuICAgIGFjdGl2ZVhEb2N1bWVudCA9IGRvY3VtZW50LmRvbWFpbiAmJiBuZXcgQWN0aXZlWE9iamVjdCgnaHRtbGZpbGUnKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogaWdub3JlICovIH1cbiAgTnVsbFByb3RvT2JqZWN0ID0gYWN0aXZlWERvY3VtZW50ID8gTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpIDogTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lKCk7XG4gIHZhciBsZW5ndGggPSBlbnVtQnVnS2V5cy5sZW5ndGg7XG4gIHdoaWxlIChsZW5ndGgtLSkgZGVsZXRlIE51bGxQcm90b09iamVjdFtQUk9UT1RZUEVdW2VudW1CdWdLZXlzW2xlbmd0aF1dO1xuICByZXR1cm4gTnVsbFByb3RvT2JqZWN0KCk7XG59O1xuXG5oaWRkZW5LZXlzW0lFX1BST1RPXSA9IHRydWU7XG5cbi8vIGBPYmplY3QuY3JlYXRlYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5jcmVhdGVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmNyZWF0ZSB8fCBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoTyAhPT0gbnVsbCkge1xuICAgIEVtcHR5Q29uc3RydWN0b3JbUFJPVE9UWVBFXSA9IGFuT2JqZWN0KE8pO1xuICAgIHJlc3VsdCA9IG5ldyBFbXB0eUNvbnN0cnVjdG9yKCk7XG4gICAgRW1wdHlDb25zdHJ1Y3RvcltQUk9UT1RZUEVdID0gbnVsbDtcbiAgICAvLyBhZGQgXCJfX3Byb3RvX19cIiBmb3IgT2JqZWN0LmdldFByb3RvdHlwZU9mIHBvbHlmaWxsXG4gICAgcmVzdWx0W0lFX1BST1RPXSA9IE87XG4gIH0gZWxzZSByZXN1bHQgPSBOdWxsUHJvdG9PYmplY3QoKTtcbiAgcmV0dXJuIFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IGRlZmluZVByb3BlcnRpZXMocmVzdWx0LCBQcm9wZXJ0aWVzKTtcbn07XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgb2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xuXG4vLyBgT2JqZWN0LmRlZmluZVByb3BlcnRpZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnRpZXNcbm1vZHVsZS5leHBvcnRzID0gREVTQ1JJUFRPUlMgPyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyA6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykge1xuICBhbk9iamVjdChPKTtcbiAgdmFyIGtleXMgPSBvYmplY3RLZXlzKFByb3BlcnRpZXMpO1xuICB2YXIgbGVuZ3RoID0ga2V5cy5sZW5ndGg7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBrZXk7XG4gIHdoaWxlIChsZW5ndGggPiBpbmRleCkgZGVmaW5lUHJvcGVydHlNb2R1bGUuZihPLCBrZXkgPSBrZXlzW2luZGV4KytdLCBQcm9wZXJ0aWVzW2tleV0pO1xuICByZXR1cm4gTztcbn07XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZTgtZG9tLWRlZmluZScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xuXG52YXIgbmF0aXZlRGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydHlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnR5XG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/IG5hdGl2ZURlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykge1xuICBhbk9iamVjdChPKTtcbiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICBhbk9iamVjdChBdHRyaWJ1dGVzKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiBuYXRpdmVEZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuICBpZiAoJ2dldCcgaW4gQXR0cmlidXRlcyB8fCAnc2V0JyBpbiBBdHRyaWJ1dGVzKSB0aHJvdyBUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkJyk7XG4gIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICByZXR1cm4gTztcbn07XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZTgtZG9tLWRlZmluZScpO1xuXG52YXIgbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5ZGVzY3JpcHRvclxuZXhwb3J0cy5mID0gREVTQ1JJUFRPUlMgPyBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkge1xuICBPID0gdG9JbmRleGVkT2JqZWN0KE8pO1xuICBQID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIGlmIChoYXMoTywgUCkpIHJldHVybiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoIXByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlLmYuY2FsbChPLCBQKSwgT1tQXSk7XG59O1xuIiwidmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIG5hdGl2ZUdldE93blByb3BlcnR5TmFtZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKS5mO1xuXG52YXIgdG9TdHJpbmcgPSB7fS50b1N0cmluZztcblxudmFyIHdpbmRvd05hbWVzID0gdHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXNcbiAgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cpIDogW107XG5cbnZhciBnZXRXaW5kb3dOYW1lcyA9IGZ1bmN0aW9uIChpdCkge1xuICB0cnkge1xuICAgIHJldHVybiBuYXRpdmVHZXRPd25Qcm9wZXJ0eU5hbWVzKGl0KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gd2luZG93TmFtZXMuc2xpY2UoKTtcbiAgfVxufTtcblxuLy8gZmFsbGJhY2sgZm9yIElFMTEgYnVnZ3kgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgd2l0aCBpZnJhbWUgYW5kIHdpbmRvd1xubW9kdWxlLmV4cG9ydHMuZiA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoaXQpIHtcbiAgcmV0dXJuIHdpbmRvd05hbWVzICYmIHRvU3RyaW5nLmNhbGwoaXQpID09ICdbb2JqZWN0IFdpbmRvd10nXG4gICAgPyBnZXRXaW5kb3dOYW1lcyhpdClcbiAgICA6IG5hdGl2ZUdldE93blByb3BlcnR5TmFtZXModG9JbmRleGVkT2JqZWN0KGl0KSk7XG59O1xuIiwidmFyIGludGVybmFsT2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcblxudmFyIGhpZGRlbktleXMgPSBlbnVtQnVnS2V5cy5jb25jYXQoJ2xlbmd0aCcsICdwcm90b3R5cGUnKTtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5nZXRvd25wcm9wZXJ0eW5hbWVzXG5leHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKE8pIHtcbiAgcmV0dXJuIGludGVybmFsT2JqZWN0S2V5cyhPLCBoaWRkZW5LZXlzKTtcbn07XG4iLCJleHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuIiwidmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xudmFyIENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3JyZWN0LXByb3RvdHlwZS1nZXR0ZXInKTtcblxudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xudmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8vIGBPYmplY3QuZ2V0UHJvdG90eXBlT2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmdldHByb3RvdHlwZW9mXG5tb2R1bGUuZXhwb3J0cyA9IENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZiA6IGZ1bmN0aW9uIChPKSB7XG4gIE8gPSB0b09iamVjdChPKTtcbiAgaWYgKGhhcyhPLCBJRV9QUk9UTykpIHJldHVybiBPW0lFX1BST1RPXTtcbiAgaWYgKHR5cGVvZiBPLmNvbnN0cnVjdG9yID09ICdmdW5jdGlvbicgJiYgTyBpbnN0YW5jZW9mIE8uY29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gTy5jb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIH0gcmV0dXJuIE8gaW5zdGFuY2VvZiBPYmplY3QgPyBPYmplY3RQcm90b3R5cGUgOiBudWxsO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3InKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgb2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xuXG52YXIgT0JKRUNUX0lURVJBVE9SID0gJ09iamVjdCBJdGVyYXRvcic7XG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvcihPQkpFQ1RfSVRFUkFUT1IpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUl0ZXJhdG9yQ29uc3RydWN0b3IoZnVuY3Rpb24gT2JqZWN0SXRlcmF0b3Ioc291cmNlLCBtb2RlKSB7XG4gIHZhciBvYmplY3QgPSB0b09iamVjdChzb3VyY2UpO1xuICBzZXRJbnRlcm5hbFN0YXRlKHRoaXMsIHtcbiAgICB0eXBlOiBPQkpFQ1RfSVRFUkFUT1IsXG4gICAgbW9kZTogbW9kZSxcbiAgICBvYmplY3Q6IG9iamVjdCxcbiAgICBrZXlzOiBvYmplY3RLZXlzKG9iamVjdCksXG4gICAgaW5kZXg6IDBcbiAgfSk7XG59LCAnT2JqZWN0JywgZnVuY3Rpb24gbmV4dCgpIHtcbiAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgdmFyIGtleXMgPSBzdGF0ZS5rZXlzO1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIGlmIChrZXlzID09PSBudWxsIHx8IHN0YXRlLmluZGV4ID49IGtleXMubGVuZ3RoKSB7XG4gICAgICBzdGF0ZS5vYmplY3QgPSBzdGF0ZS5rZXlzID0gbnVsbDtcbiAgICAgIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTtcbiAgICB9XG4gICAgdmFyIGtleSA9IGtleXNbc3RhdGUuaW5kZXgrK107XG4gICAgdmFyIG9iamVjdCA9IHN0YXRlLm9iamVjdDtcbiAgICBpZiAoIWhhcyhvYmplY3QsIGtleSkpIGNvbnRpbnVlO1xuICAgIHN3aXRjaCAoc3RhdGUubW9kZSkge1xuICAgICAgY2FzZSAna2V5cyc6IHJldHVybiB7IHZhbHVlOiBrZXksIGRvbmU6IGZhbHNlIH07XG4gICAgICBjYXNlICd2YWx1ZXMnOiByZXR1cm4geyB2YWx1ZTogb2JqZWN0W2tleV0sIGRvbmU6IGZhbHNlIH07XG4gICAgfSAvKiBlbnRyaWVzICovIHJldHVybiB7IHZhbHVlOiBba2V5LCBvYmplY3Rba2V5XV0sIGRvbmU6IGZhbHNlIH07XG4gIH1cbn0pO1xuIiwidmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBpbmRleE9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzJykuaW5kZXhPZjtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9iamVjdCwgbmFtZXMpIHtcbiAgdmFyIE8gPSB0b0luZGV4ZWRPYmplY3Qob2JqZWN0KTtcbiAgdmFyIGkgPSAwO1xuICB2YXIgcmVzdWx0ID0gW107XG4gIHZhciBrZXk7XG4gIGZvciAoa2V5IGluIE8pICFoYXMoaGlkZGVuS2V5cywga2V5KSAmJiBoYXMoTywga2V5KSAmJiByZXN1bHQucHVzaChrZXkpO1xuICAvLyBEb24ndCBlbnVtIGJ1ZyAmIGhpZGRlbiBrZXlzXG4gIHdoaWxlIChuYW1lcy5sZW5ndGggPiBpKSBpZiAoaGFzKE8sIGtleSA9IG5hbWVzW2krK10pKSB7XG4gICAgfmluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHJlc3VsdC5wdXNoKGtleSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCJ2YXIgaW50ZXJuYWxPYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzLWludGVybmFsJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW51bS1idWcta2V5cycpO1xuXG4vLyBgT2JqZWN0LmtleXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmtleXNcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24ga2V5cyhPKSB7XG4gIHJldHVybiBpbnRlcm5hbE9iamVjdEtleXMoTywgZW51bUJ1Z0tleXMpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBuYXRpdmVQcm9wZXJ0eUlzRW51bWVyYWJsZSA9IHt9LnByb3BlcnR5SXNFbnVtZXJhYmxlO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIE5hc2hvcm4gfiBKREs4IGJ1Z1xudmFyIE5BU0hPUk5fQlVHID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmICFuYXRpdmVQcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHsgMTogMiB9LCAxKTtcblxuLy8gYE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGVgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eWlzZW51bWVyYWJsZVxuZXhwb3J0cy5mID0gTkFTSE9STl9CVUcgPyBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShWKSB7XG4gIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIFYpO1xuICByZXR1cm4gISFkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZTtcbn0gOiBuYXRpdmVQcm9wZXJ0eUlzRW51bWVyYWJsZTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxuLy8gRm9yY2VkIHJlcGxhY2VtZW50IG9iamVjdCBwcm90b3R5cGUgYWNjZXNzb3JzIG1ldGhvZHNcbm1vZHVsZS5leHBvcnRzID0gSVNfUFVSRSB8fCAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIga2V5ID0gTWF0aC5yYW5kb20oKTtcbiAgLy8gSW4gRkYgdGhyb3dzIG9ubHkgZGVmaW5lIG1ldGhvZHNcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmLCBuby11c2VsZXNzLWNhbGxcbiAgX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG51bGwsIGtleSwgZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9KTtcbiAgZGVsZXRlIGdsb2JhbFtrZXldO1xufSk7XG4iLCJ2YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYVBvc3NpYmxlUHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtcG9zc2libGUtcHJvdG90eXBlJyk7XG5cbi8vIGBPYmplY3Quc2V0UHJvdG90eXBlT2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LnNldHByb3RvdHlwZW9mXG4vLyBXb3JrcyB3aXRoIF9fcHJvdG9fXyBvbmx5LiBPbGQgdjggY2FuJ3Qgd29yayB3aXRoIG51bGwgcHJvdG8gb2JqZWN0cy5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvICovXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCAoJ19fcHJvdG9fXycgaW4ge30gPyBmdW5jdGlvbiAoKSB7XG4gIHZhciBDT1JSRUNUX1NFVFRFUiA9IGZhbHNlO1xuICB2YXIgdGVzdCA9IHt9O1xuICB2YXIgc2V0dGVyO1xuICB0cnkge1xuICAgIHNldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoT2JqZWN0LnByb3RvdHlwZSwgJ19fcHJvdG9fXycpLnNldDtcbiAgICBzZXR0ZXIuY2FsbCh0ZXN0LCBbXSk7XG4gICAgQ09SUkVDVF9TRVRURVIgPSB0ZXN0IGluc3RhbmNlb2YgQXJyYXk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgcmV0dXJuIGZ1bmN0aW9uIHNldFByb3RvdHlwZU9mKE8sIHByb3RvKSB7XG4gICAgYW5PYmplY3QoTyk7XG4gICAgYVBvc3NpYmxlUHJvdG90eXBlKHByb3RvKTtcbiAgICBpZiAoQ09SUkVDVF9TRVRURVIpIHNldHRlci5jYWxsKE8sIHByb3RvKTtcbiAgICBlbHNlIE8uX19wcm90b19fID0gcHJvdG87XG4gICAgcmV0dXJuIE87XG4gIH07XG59KCkgOiB1bmRlZmluZWQpO1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgb2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1wcm9wZXJ0eS1pcy1lbnVtZXJhYmxlJykuZjtcblxuLy8gYE9iamVjdC57IGVudHJpZXMsIHZhbHVlcyB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKFRPX0VOVFJJRVMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChpdCkge1xuICAgIHZhciBPID0gdG9JbmRleGVkT2JqZWN0KGl0KTtcbiAgICB2YXIga2V5cyA9IG9iamVjdEtleXMoTyk7XG4gICAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICAgIHZhciBpID0gMDtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgdmFyIGtleTtcbiAgICB3aGlsZSAobGVuZ3RoID4gaSkge1xuICAgICAga2V5ID0ga2V5c1tpKytdO1xuICAgICAgaWYgKCFERVNDUklQVE9SUyB8fCBwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKE8sIGtleSkpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goVE9fRU5UUklFUyA/IFtrZXksIE9ba2V5XV0gOiBPW2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBPYmplY3QuZW50cmllc2AgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5lbnRyaWVzXG4gIGVudHJpZXM6IGNyZWF0ZU1ldGhvZCh0cnVlKSxcbiAgLy8gYE9iamVjdC52YWx1ZXNgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vYmplY3QudmFsdWVzXG4gIHZhbHVlczogY3JlYXRlTWV0aG9kKGZhbHNlKVxufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0Jyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gVE9fU1RSSU5HX1RBR19TVVBQT1JUID8ge30udG9TdHJpbmcgOiBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgcmV0dXJuICdbb2JqZWN0ICcgKyBjbGFzc29mKHRoaXMpICsgJ10nO1xufTtcbiIsInZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG4vLyBhbGwgb2JqZWN0IGtleXMsIGluY2x1ZGVzIG5vbi1lbnVtZXJhYmxlIGFuZCBzeW1ib2xzXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW4oJ1JlZmxlY3QnLCAnb3duS2V5cycpIHx8IGZ1bmN0aW9uIG93bktleXMoaXQpIHtcbiAgdmFyIGtleXMgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlLmYoYW5PYmplY3QoaXQpKTtcbiAgdmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mO1xuICByZXR1cm4gZ2V0T3duUHJvcGVydHlTeW1ib2xzID8ga2V5cy5jb25jYXQoZ2V0T3duUHJvcGVydHlTeW1ib2xzKGl0KSkgOiBrZXlzO1xufTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2xvYmFsO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYykge1xuICB0cnkge1xuICAgIHJldHVybiB7IGVycm9yOiBmYWxzZSwgdmFsdWU6IGV4ZWMoKSB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB7IGVycm9yOiB0cnVlLCB2YWx1ZTogZXJyb3IgfTtcbiAgfVxufTtcbiIsInZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBuZXdQcm9taXNlQ2FwYWJpbGl0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uZXctcHJvbWlzZS1jYXBhYmlsaXR5Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEMsIHgpIHtcbiAgYW5PYmplY3QoQyk7XG4gIGlmIChpc09iamVjdCh4KSAmJiB4LmNvbnN0cnVjdG9yID09PSBDKSByZXR1cm4geDtcbiAgdmFyIHByb21pc2VDYXBhYmlsaXR5ID0gbmV3UHJvbWlzZUNhcGFiaWxpdHkuZihDKTtcbiAgdmFyIHJlc29sdmUgPSBwcm9taXNlQ2FwYWJpbGl0eS5yZXNvbHZlO1xuICByZXNvbHZlKHgpO1xuICByZXR1cm4gcHJvbWlzZUNhcGFiaWxpdHkucHJvbWlzZTtcbn07XG4iLCJ2YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBzcmMsIG9wdGlvbnMpIHtcbiAgZm9yICh2YXIga2V5IGluIHNyYykgcmVkZWZpbmUodGFyZ2V0LCBrZXksIHNyY1trZXldLCBvcHRpb25zKTtcbiAgcmV0dXJuIHRhcmdldDtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgc2V0R2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC1nbG9iYWwnKTtcbnZhciBpbnNwZWN0U291cmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlJyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xuXG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0O1xudmFyIGVuZm9yY2VJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5lbmZvcmNlO1xudmFyIFRFTVBMQVRFID0gU3RyaW5nKFN0cmluZykuc3BsaXQoJ1N0cmluZycpO1xuXG4obW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTywga2V5LCB2YWx1ZSwgb3B0aW9ucykge1xuICB2YXIgdW5zYWZlID0gb3B0aW9ucyA/ICEhb3B0aW9ucy51bnNhZmUgOiBmYWxzZTtcbiAgdmFyIHNpbXBsZSA9IG9wdGlvbnMgPyAhIW9wdGlvbnMuZW51bWVyYWJsZSA6IGZhbHNlO1xuICB2YXIgbm9UYXJnZXRHZXQgPSBvcHRpb25zID8gISFvcHRpb25zLm5vVGFyZ2V0R2V0IDogZmFsc2U7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmICh0eXBlb2Yga2V5ID09ICdzdHJpbmcnICYmICFoYXModmFsdWUsICduYW1lJykpIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSh2YWx1ZSwgJ25hbWUnLCBrZXkpO1xuICAgIGVuZm9yY2VJbnRlcm5hbFN0YXRlKHZhbHVlKS5zb3VyY2UgPSBURU1QTEFURS5qb2luKHR5cGVvZiBrZXkgPT0gJ3N0cmluZycgPyBrZXkgOiAnJyk7XG4gIH1cbiAgaWYgKE8gPT09IGdsb2JhbCkge1xuICAgIGlmIChzaW1wbGUpIE9ba2V5XSA9IHZhbHVlO1xuICAgIGVsc2Ugc2V0R2xvYmFsKGtleSwgdmFsdWUpO1xuICAgIHJldHVybjtcbiAgfSBlbHNlIGlmICghdW5zYWZlKSB7XG4gICAgZGVsZXRlIE9ba2V5XTtcbiAgfSBlbHNlIGlmICghbm9UYXJnZXRHZXQgJiYgT1trZXldKSB7XG4gICAgc2ltcGxlID0gdHJ1ZTtcbiAgfVxuICBpZiAoc2ltcGxlKSBPW2tleV0gPSB2YWx1ZTtcbiAgZWxzZSBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoTywga2V5LCB2YWx1ZSk7XG4vLyBhZGQgZmFrZSBGdW5jdGlvbiN0b1N0cmluZyBmb3IgY29ycmVjdCB3b3JrIHdyYXBwZWQgbWV0aG9kcyAvIGNvbnN0cnVjdG9ycyB3aXRoIG1ldGhvZHMgbGlrZSBMb0Rhc2ggaXNOYXRpdmVcbn0pKEZ1bmN0aW9uLnByb3RvdHlwZSwgJ3RvU3RyaW5nJywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiB0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nICYmIGdldEludGVybmFsU3RhdGUodGhpcykuc291cmNlIHx8IGluc3BlY3RTb3VyY2UodGhpcyk7XG59KTtcbiIsIi8vIFRPRE86IGluIGNvcmUtanNANCwgbW92ZSAvbW9kdWxlcy8gZGVwZW5kZW5jaWVzIHRvIHB1YmxpYyBlbnRyaWVzIGZvciBiZXR0ZXIgb3B0aW1pemF0aW9uIGJ5IHRvb2xzIGxpa2UgYHByZXNldC1lbnZgXG52YXIgTWFwID0gcmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5tYXAnKTtcbnZhciBXZWFrTWFwID0gcmVxdWlyZSgnLi4vbW9kdWxlcy9lcy53ZWFrLW1hcCcpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcblxudmFyIG1ldGFkYXRhID0gc2hhcmVkKCdtZXRhZGF0YScpO1xudmFyIHN0b3JlID0gbWV0YWRhdGEuc3RvcmUgfHwgKG1ldGFkYXRhLnN0b3JlID0gbmV3IFdlYWtNYXAoKSk7XG5cbnZhciBnZXRPckNyZWF0ZU1ldGFkYXRhTWFwID0gZnVuY3Rpb24gKHRhcmdldCwgdGFyZ2V0S2V5LCBjcmVhdGUpIHtcbiAgdmFyIHRhcmdldE1ldGFkYXRhID0gc3RvcmUuZ2V0KHRhcmdldCk7XG4gIGlmICghdGFyZ2V0TWV0YWRhdGEpIHtcbiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuO1xuICAgIHN0b3JlLnNldCh0YXJnZXQsIHRhcmdldE1ldGFkYXRhID0gbmV3IE1hcCgpKTtcbiAgfVxuICB2YXIga2V5TWV0YWRhdGEgPSB0YXJnZXRNZXRhZGF0YS5nZXQodGFyZ2V0S2V5KTtcbiAgaWYgKCFrZXlNZXRhZGF0YSkge1xuICAgIGlmICghY3JlYXRlKSByZXR1cm47XG4gICAgdGFyZ2V0TWV0YWRhdGEuc2V0KHRhcmdldEtleSwga2V5TWV0YWRhdGEgPSBuZXcgTWFwKCkpO1xuICB9IHJldHVybiBrZXlNZXRhZGF0YTtcbn07XG5cbnZhciBvcmRpbmFyeUhhc093bk1ldGFkYXRhID0gZnVuY3Rpb24gKE1ldGFkYXRhS2V5LCBPLCBQKSB7XG4gIHZhciBtZXRhZGF0YU1hcCA9IGdldE9yQ3JlYXRlTWV0YWRhdGFNYXAoTywgUCwgZmFsc2UpO1xuICByZXR1cm4gbWV0YWRhdGFNYXAgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbWV0YWRhdGFNYXAuaGFzKE1ldGFkYXRhS2V5KTtcbn07XG5cbnZhciBvcmRpbmFyeUdldE93bk1ldGFkYXRhID0gZnVuY3Rpb24gKE1ldGFkYXRhS2V5LCBPLCBQKSB7XG4gIHZhciBtZXRhZGF0YU1hcCA9IGdldE9yQ3JlYXRlTWV0YWRhdGFNYXAoTywgUCwgZmFsc2UpO1xuICByZXR1cm4gbWV0YWRhdGFNYXAgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IG1ldGFkYXRhTWFwLmdldChNZXRhZGF0YUtleSk7XG59O1xuXG52YXIgb3JkaW5hcnlEZWZpbmVPd25NZXRhZGF0YSA9IGZ1bmN0aW9uIChNZXRhZGF0YUtleSwgTWV0YWRhdGFWYWx1ZSwgTywgUCkge1xuICBnZXRPckNyZWF0ZU1ldGFkYXRhTWFwKE8sIFAsIHRydWUpLnNldChNZXRhZGF0YUtleSwgTWV0YWRhdGFWYWx1ZSk7XG59O1xuXG52YXIgb3JkaW5hcnlPd25NZXRhZGF0YUtleXMgPSBmdW5jdGlvbiAodGFyZ2V0LCB0YXJnZXRLZXkpIHtcbiAgdmFyIG1ldGFkYXRhTWFwID0gZ2V0T3JDcmVhdGVNZXRhZGF0YU1hcCh0YXJnZXQsIHRhcmdldEtleSwgZmFsc2UpO1xuICB2YXIga2V5cyA9IFtdO1xuICBpZiAobWV0YWRhdGFNYXApIG1ldGFkYXRhTWFwLmZvckVhY2goZnVuY3Rpb24gKF8sIGtleSkgeyBrZXlzLnB1c2goa2V5KTsgfSk7XG4gIHJldHVybiBrZXlzO1xufTtcblxudmFyIHRvTWV0YWRhdGFLZXkgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgfHwgdHlwZW9mIGl0ID09ICdzeW1ib2wnID8gaXQgOiBTdHJpbmcoaXQpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIHN0b3JlOiBzdG9yZSxcbiAgZ2V0TWFwOiBnZXRPckNyZWF0ZU1ldGFkYXRhTWFwLFxuICBoYXM6IG9yZGluYXJ5SGFzT3duTWV0YWRhdGEsXG4gIGdldDogb3JkaW5hcnlHZXRPd25NZXRhZGF0YSxcbiAgc2V0OiBvcmRpbmFyeURlZmluZU93bk1ldGFkYXRhLFxuICBrZXlzOiBvcmRpbmFyeU93bk1ldGFkYXRhS2V5cyxcbiAgdG9LZXk6IHRvTWV0YWRhdGFLZXlcbn07XG4iLCJ2YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4vY2xhc3NvZi1yYXcnKTtcbnZhciByZWdleHBFeGVjID0gcmVxdWlyZSgnLi9yZWdleHAtZXhlYycpO1xuXG4vLyBgUmVnRXhwRXhlY2AgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWdleHBleGVjXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChSLCBTKSB7XG4gIHZhciBleGVjID0gUi5leGVjO1xuICBpZiAodHlwZW9mIGV4ZWMgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgcmVzdWx0ID0gZXhlYy5jYWxsKFIsIFMpO1xuICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKCdSZWdFeHAgZXhlYyBtZXRob2QgcmV0dXJuZWQgc29tZXRoaW5nIG90aGVyIHRoYW4gYW4gT2JqZWN0IG9yIG51bGwnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGlmIChjbGFzc29mKFIpICE9PSAnUmVnRXhwJykge1xuICAgIHRocm93IFR5cGVFcnJvcignUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlcicpO1xuICB9XG5cbiAgcmV0dXJuIHJlZ2V4cEV4ZWMuY2FsbChSLCBTKTtcbn07XG5cbiIsIid1c2Ugc3RyaWN0JztcbnZhciByZWdleHBGbGFncyA9IHJlcXVpcmUoJy4vcmVnZXhwLWZsYWdzJyk7XG52YXIgc3RpY2t5SGVscGVycyA9IHJlcXVpcmUoJy4vcmVnZXhwLXN0aWNreS1oZWxwZXJzJyk7XG5cbnZhciBuYXRpdmVFeGVjID0gUmVnRXhwLnByb3RvdHlwZS5leGVjO1xuLy8gVGhpcyBhbHdheXMgcmVmZXJzIHRvIHRoZSBuYXRpdmUgaW1wbGVtZW50YXRpb24sIGJlY2F1c2UgdGhlXG4vLyBTdHJpbmcjcmVwbGFjZSBwb2x5ZmlsbCB1c2VzIC4vZml4LXJlZ2V4cC13ZWxsLWtub3duLXN5bWJvbC1sb2dpYy5qcyxcbi8vIHdoaWNoIGxvYWRzIHRoaXMgZmlsZSBiZWZvcmUgcGF0Y2hpbmcgdGhlIG1ldGhvZC5cbnZhciBuYXRpdmVSZXBsYWNlID0gU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlO1xuXG52YXIgcGF0Y2hlZEV4ZWMgPSBuYXRpdmVFeGVjO1xuXG52YXIgVVBEQVRFU19MQVNUX0lOREVYX1dST05HID0gKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJlMSA9IC9hLztcbiAgdmFyIHJlMiA9IC9iKi9nO1xuICBuYXRpdmVFeGVjLmNhbGwocmUxLCAnYScpO1xuICBuYXRpdmVFeGVjLmNhbGwocmUyLCAnYScpO1xuICByZXR1cm4gcmUxLmxhc3RJbmRleCAhPT0gMCB8fCByZTIubGFzdEluZGV4ICE9PSAwO1xufSkoKTtcblxudmFyIFVOU1VQUE9SVEVEX1kgPSBzdGlja3lIZWxwZXJzLlVOU1VQUE9SVEVEX1kgfHwgc3RpY2t5SGVscGVycy5CUk9LRU5fQ0FSRVQ7XG5cbi8vIG5vbnBhcnRpY2lwYXRpbmcgY2FwdHVyaW5nIGdyb3VwLCBjb3BpZWQgZnJvbSBlczUtc2hpbSdzIFN0cmluZyNzcGxpdCBwYXRjaC5cbnZhciBOUENHX0lOQ0xVREVEID0gLygpPz8vLmV4ZWMoJycpWzFdICE9PSB1bmRlZmluZWQ7XG5cbnZhciBQQVRDSCA9IFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyB8fCBOUENHX0lOQ0xVREVEIHx8IFVOU1VQUE9SVEVEX1k7XG5cbmlmIChQQVRDSCkge1xuICBwYXRjaGVkRXhlYyA9IGZ1bmN0aW9uIGV4ZWMoc3RyKSB7XG4gICAgdmFyIHJlID0gdGhpcztcbiAgICB2YXIgbGFzdEluZGV4LCByZUNvcHksIG1hdGNoLCBpO1xuICAgIHZhciBzdGlja3kgPSBVTlNVUFBPUlRFRF9ZICYmIHJlLnN0aWNreTtcbiAgICB2YXIgZmxhZ3MgPSByZWdleHBGbGFncy5jYWxsKHJlKTtcbiAgICB2YXIgc291cmNlID0gcmUuc291cmNlO1xuICAgIHZhciBjaGFyc0FkZGVkID0gMDtcbiAgICB2YXIgc3RyQ29weSA9IHN0cjtcblxuICAgIGlmIChzdGlja3kpIHtcbiAgICAgIGZsYWdzID0gZmxhZ3MucmVwbGFjZSgneScsICcnKTtcbiAgICAgIGlmIChmbGFncy5pbmRleE9mKCdnJykgPT09IC0xKSB7XG4gICAgICAgIGZsYWdzICs9ICdnJztcbiAgICAgIH1cblxuICAgICAgc3RyQ29weSA9IFN0cmluZyhzdHIpLnNsaWNlKHJlLmxhc3RJbmRleCk7XG4gICAgICAvLyBTdXBwb3J0IGFuY2hvcmVkIHN0aWNreSBiZWhhdmlvci5cbiAgICAgIGlmIChyZS5sYXN0SW5kZXggPiAwICYmICghcmUubXVsdGlsaW5lIHx8IHJlLm11bHRpbGluZSAmJiBzdHJbcmUubGFzdEluZGV4IC0gMV0gIT09ICdcXG4nKSkge1xuICAgICAgICBzb3VyY2UgPSAnKD86ICcgKyBzb3VyY2UgKyAnKSc7XG4gICAgICAgIHN0ckNvcHkgPSAnICcgKyBzdHJDb3B5O1xuICAgICAgICBjaGFyc0FkZGVkKys7XG4gICAgICB9XG4gICAgICAvLyBeKD8gKyByeCArICkgaXMgbmVlZGVkLCBpbiBjb21iaW5hdGlvbiB3aXRoIHNvbWUgc3RyIHNsaWNpbmcsIHRvXG4gICAgICAvLyBzaW11bGF0ZSB0aGUgJ3knIGZsYWcuXG4gICAgICByZUNvcHkgPSBuZXcgUmVnRXhwKCdeKD86JyArIHNvdXJjZSArICcpJywgZmxhZ3MpO1xuICAgIH1cblxuICAgIGlmIChOUENHX0lOQ0xVREVEKSB7XG4gICAgICByZUNvcHkgPSBuZXcgUmVnRXhwKCdeJyArIHNvdXJjZSArICckKD8hXFxcXHMpJywgZmxhZ3MpO1xuICAgIH1cbiAgICBpZiAoVVBEQVRFU19MQVNUX0lOREVYX1dST05HKSBsYXN0SW5kZXggPSByZS5sYXN0SW5kZXg7XG5cbiAgICBtYXRjaCA9IG5hdGl2ZUV4ZWMuY2FsbChzdGlja3kgPyByZUNvcHkgOiByZSwgc3RyQ29weSk7XG5cbiAgICBpZiAoc3RpY2t5KSB7XG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgbWF0Y2guaW5wdXQgPSBtYXRjaC5pbnB1dC5zbGljZShjaGFyc0FkZGVkKTtcbiAgICAgICAgbWF0Y2hbMF0gPSBtYXRjaFswXS5zbGljZShjaGFyc0FkZGVkKTtcbiAgICAgICAgbWF0Y2guaW5kZXggPSByZS5sYXN0SW5kZXg7XG4gICAgICAgIHJlLmxhc3RJbmRleCArPSBtYXRjaFswXS5sZW5ndGg7XG4gICAgICB9IGVsc2UgcmUubGFzdEluZGV4ID0gMDtcbiAgICB9IGVsc2UgaWYgKFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyAmJiBtYXRjaCkge1xuICAgICAgcmUubGFzdEluZGV4ID0gcmUuZ2xvYmFsID8gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGggOiBsYXN0SW5kZXg7XG4gICAgfVxuICAgIGlmIChOUENHX0lOQ0xVREVEICYmIG1hdGNoICYmIG1hdGNoLmxlbmd0aCA+IDEpIHtcbiAgICAgIC8vIEZpeCBicm93c2VycyB3aG9zZSBgZXhlY2AgbWV0aG9kcyBkb24ndCBjb25zaXN0ZW50bHkgcmV0dXJuIGB1bmRlZmluZWRgXG4gICAgICAvLyBmb3IgTlBDRywgbGlrZSBJRTguIE5PVEU6IFRoaXMgZG9lc24nIHdvcmsgZm9yIC8oLj8pPy9cbiAgICAgIG5hdGl2ZVJlcGxhY2UuY2FsbChtYXRjaFswXSwgcmVDb3B5LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZvciAoaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMjsgaSsrKSB7XG4gICAgICAgICAgaWYgKGFyZ3VtZW50c1tpXSA9PT0gdW5kZWZpbmVkKSBtYXRjaFtpXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBhdGNoZWRFeGVjO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG4vLyBgUmVnRXhwLnByb3RvdHlwZS5mbGFnc2AgZ2V0dGVyIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1nZXQtcmVnZXhwLnByb3RvdHlwZS5mbGFnc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciB0aGF0ID0gYW5PYmplY3QodGhpcyk7XG4gIHZhciByZXN1bHQgPSAnJztcbiAgaWYgKHRoYXQuZ2xvYmFsKSByZXN1bHQgKz0gJ2cnO1xuICBpZiAodGhhdC5pZ25vcmVDYXNlKSByZXN1bHQgKz0gJ2knO1xuICBpZiAodGhhdC5tdWx0aWxpbmUpIHJlc3VsdCArPSAnbSc7XG4gIGlmICh0aGF0LmRvdEFsbCkgcmVzdWx0ICs9ICdzJztcbiAgaWYgKHRoYXQudW5pY29kZSkgcmVzdWx0ICs9ICd1JztcbiAgaWYgKHRoYXQuc3RpY2t5KSByZXN1bHQgKz0gJ3knO1xuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGZhaWxzID0gcmVxdWlyZSgnLi9mYWlscycpO1xuXG4vLyBiYWJlbC1taW5pZnkgdHJhbnNwaWxlcyBSZWdFeHAoJ2EnLCAneScpIC0+IC9hL3kgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvcixcbi8vIHNvIHdlIHVzZSBhbiBpbnRlcm1lZGlhdGUgZnVuY3Rpb24uXG5mdW5jdGlvbiBSRShzLCBmKSB7XG4gIHJldHVybiBSZWdFeHAocywgZik7XG59XG5cbmV4cG9ydHMuVU5TVVBQT1JURURfWSA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gYmFiZWwtbWluaWZ5IHRyYW5zcGlsZXMgUmVnRXhwKCdhJywgJ3knKSAtPiAvYS95IGFuZCBpdCBjYXVzZXMgU3ludGF4RXJyb3JcbiAgdmFyIHJlID0gUkUoJ2EnLCAneScpO1xuICByZS5sYXN0SW5kZXggPSAyO1xuICByZXR1cm4gcmUuZXhlYygnYWJjZCcpICE9IG51bGw7XG59KTtcblxuZXhwb3J0cy5CUk9LRU5fQ0FSRVQgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTc3MzY4N1xuICB2YXIgcmUgPSBSRSgnXnInLCAnZ3knKTtcbiAgcmUubGFzdEluZGV4ID0gMjtcbiAgcmV0dXJuIHJlLmV4ZWMoJ3N0cicpICE9IG51bGw7XG59KTtcbiIsIi8vIGBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlcXVpcmVvYmplY3Rjb2VyY2libGVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCA9PSB1bmRlZmluZWQpIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gYFNhbWVWYWx1ZVplcm9gIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc2FtZXZhbHVlemVyb1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoeCwgeSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gIHJldHVybiB4ID09PSB5IHx8IHggIT0geCAmJiB5ICE9IHk7XG59O1xuIiwiLy8gYFNhbWVWYWx1ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zYW1ldmFsdWVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmlzIHx8IGZ1bmN0aW9uIGlzKHgsIHkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZVxuICByZXR1cm4geCA9PT0geSA/IHggIT09IDAgfHwgMSAvIHggPT09IDEgLyB5IDogeCAhPSB4ICYmIHkgIT0geTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICB0cnkge1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShnbG9iYWwsIGtleSwgdmFsdWUpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGdsb2JhbFtrZXldID0gdmFsdWU7XG4gIH0gcmV0dXJuIHZhbHVlO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChDT05TVFJVQ1RPUl9OQU1FKSB7XG4gIHZhciBDb25zdHJ1Y3RvciA9IGdldEJ1aWx0SW4oQ09OU1RSVUNUT1JfTkFNRSk7XG4gIHZhciBkZWZpbmVQcm9wZXJ0eSA9IGRlZmluZVByb3BlcnR5TW9kdWxlLmY7XG5cbiAgaWYgKERFU0NSSVBUT1JTICYmIENvbnN0cnVjdG9yICYmICFDb25zdHJ1Y3RvcltTUEVDSUVTXSkge1xuICAgIGRlZmluZVByb3BlcnR5KENvbnN0cnVjdG9yLCBTUEVDSUVTLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH1cbiAgICB9KTtcbiAgfVxufTtcbiIsInZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBUT19TVFJJTkdfVEFHID0gd2VsbEtub3duU3ltYm9sKCd0b1N0cmluZ1RhZycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCwgVEFHLCBTVEFUSUMpIHtcbiAgaWYgKGl0ICYmICFoYXMoaXQgPSBTVEFUSUMgPyBpdCA6IGl0LnByb3RvdHlwZSwgVE9fU1RSSU5HX1RBRykpIHtcbiAgICBkZWZpbmVQcm9wZXJ0eShpdCwgVE9fU1RSSU5HX1RBRywgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiBUQUcgfSk7XG4gIH1cbn07XG4iLCJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZCcpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91aWQnKTtcblxudmFyIGtleXMgPSBzaGFyZWQoJ2tleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiBrZXlzW2tleV0gfHwgKGtleXNba2V5XSA9IHVpZChrZXkpKTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNldEdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtZ2xvYmFsJyk7XG5cbnZhciBTSEFSRUQgPSAnX19jb3JlLWpzX3NoYXJlZF9fJztcbnZhciBzdG9yZSA9IGdsb2JhbFtTSEFSRURdIHx8IHNldEdsb2JhbChTSEFSRUQsIHt9KTtcblxubW9kdWxlLmV4cG9ydHMgPSBzdG9yZTtcbiIsInZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBzdG9yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQtc3RvcmUnKTtcblxuKG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIHN0b3JlW2tleV0gfHwgKHN0b3JlW2tleV0gPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiB7fSk7XG59KSgndmVyc2lvbnMnLCBbXSkucHVzaCh7XG4gIHZlcnNpb246ICczLjYuNScsXG4gIG1vZGU6IElTX1BVUkUgPyAncHVyZScgOiAnZ2xvYmFsJyxcbiAgY29weXJpZ2h0OiAnwqkgMjAyMCBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSdcbn0pO1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG5cbi8vIGBTcGVjaWVzQ29uc3RydWN0b3JgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3BlY2llc2NvbnN0cnVjdG9yXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBkZWZhdWx0Q29uc3RydWN0b3IpIHtcbiAgdmFyIEMgPSBhbk9iamVjdChPKS5jb25zdHJ1Y3RvcjtcbiAgdmFyIFM7XG4gIHJldHVybiBDID09PSB1bmRlZmluZWQgfHwgKFMgPSBhbk9iamVjdChDKVtTUEVDSUVTXSkgPT0gdW5kZWZpbmVkID8gZGVmYXVsdENvbnN0cnVjdG9yIDogYUZ1bmN0aW9uKFMpO1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBjaGVjayB0aGUgZXhpc3RlbmNlIG9mIGEgbWV0aG9kLCBsb3dlcmNhc2Vcbi8vIG9mIGEgdGFnIGFuZCBlc2NhcGluZyBxdW90ZXMgaW4gYXJndW1lbnRzXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSkge1xuICByZXR1cm4gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIHZhciB0ZXN0ID0gJydbTUVUSE9EX05BTUVdKCdcIicpO1xuICAgIHJldHVybiB0ZXN0ICE9PSB0ZXN0LnRvTG93ZXJDYXNlKCkgfHwgdGVzdC5zcGxpdCgnXCInKS5sZW5ndGggPiAzO1xuICB9KTtcbn07XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS57IGNvZGVQb2ludEF0LCBhdCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKENPTlZFUlRfVE9fU1RSSU5HKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoJHRoaXMsIHBvcykge1xuICAgIHZhciBTID0gU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUoJHRoaXMpKTtcbiAgICB2YXIgcG9zaXRpb24gPSB0b0ludGVnZXIocG9zKTtcbiAgICB2YXIgc2l6ZSA9IFMubGVuZ3RoO1xuICAgIHZhciBmaXJzdCwgc2Vjb25kO1xuICAgIGlmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24gPj0gc2l6ZSkgcmV0dXJuIENPTlZFUlRfVE9fU1RSSU5HID8gJycgOiB1bmRlZmluZWQ7XG4gICAgZmlyc3QgPSBTLmNoYXJDb2RlQXQocG9zaXRpb24pO1xuICAgIHJldHVybiBmaXJzdCA8IDB4RDgwMCB8fCBmaXJzdCA+IDB4REJGRiB8fCBwb3NpdGlvbiArIDEgPT09IHNpemVcbiAgICAgIHx8IChzZWNvbmQgPSBTLmNoYXJDb2RlQXQocG9zaXRpb24gKyAxKSkgPCAweERDMDAgfHwgc2Vjb25kID4gMHhERkZGXG4gICAgICAgID8gQ09OVkVSVF9UT19TVFJJTkcgPyBTLmNoYXJBdChwb3NpdGlvbikgOiBmaXJzdFxuICAgICAgICA6IENPTlZFUlRfVE9fU1RSSU5HID8gUy5zbGljZShwb3NpdGlvbiwgcG9zaXRpb24gKyAyKSA6IChmaXJzdCAtIDB4RDgwMCA8PCAxMCkgKyAoc2Vjb25kIC0gMHhEQzAwKSArIDB4MTAwMDA7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUuY29kZVBvaW50QXRgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLmNvZGVwb2ludGF0XG4gIGNvZGVBdDogY3JlYXRlTWV0aG9kKGZhbHNlKSxcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUuYXRgIG1ldGhvZFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWF0aGlhc2J5bmVucy9TdHJpbmcucHJvdG90eXBlLmF0XG4gIGNoYXJBdDogY3JlYXRlTWV0aG9kKHRydWUpXG59O1xuIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzI4MFxudmFyIHVzZXJBZ2VudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdXNlci1hZ2VudCcpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby11bnNhZmUtcmVnZXhcbm1vZHVsZS5leHBvcnRzID0gL1ZlcnNpb25cXC8xMFxcLlxcZCsoXFwuXFxkKyk/KCBNb2JpbGVcXC9cXHcrKT8gU2FmYXJpXFwvLy50ZXN0KHVzZXJBZ2VudCk7XG4iLCIvLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1zdHJpbmctcGFkLXN0YXJ0LWVuZFxudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIHJlcGVhdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctcmVwZWF0Jyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxudmFyIGNlaWwgPSBNYXRoLmNlaWw7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnsgcGFkU3RhcnQsIHBhZEVuZCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKElTX0VORCkge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBtYXhMZW5ndGgsIGZpbGxTdHJpbmcpIHtcbiAgICB2YXIgUyA9IFN0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKCR0aGlzKSk7XG4gICAgdmFyIHN0cmluZ0xlbmd0aCA9IFMubGVuZ3RoO1xuICAgIHZhciBmaWxsU3RyID0gZmlsbFN0cmluZyA9PT0gdW5kZWZpbmVkID8gJyAnIDogU3RyaW5nKGZpbGxTdHJpbmcpO1xuICAgIHZhciBpbnRNYXhMZW5ndGggPSB0b0xlbmd0aChtYXhMZW5ndGgpO1xuICAgIHZhciBmaWxsTGVuLCBzdHJpbmdGaWxsZXI7XG4gICAgaWYgKGludE1heExlbmd0aCA8PSBzdHJpbmdMZW5ndGggfHwgZmlsbFN0ciA9PSAnJykgcmV0dXJuIFM7XG4gICAgZmlsbExlbiA9IGludE1heExlbmd0aCAtIHN0cmluZ0xlbmd0aDtcbiAgICBzdHJpbmdGaWxsZXIgPSByZXBlYXQuY2FsbChmaWxsU3RyLCBjZWlsKGZpbGxMZW4gLyBmaWxsU3RyLmxlbmd0aCkpO1xuICAgIGlmIChzdHJpbmdGaWxsZXIubGVuZ3RoID4gZmlsbExlbikgc3RyaW5nRmlsbGVyID0gc3RyaW5nRmlsbGVyLnNsaWNlKDAsIGZpbGxMZW4pO1xuICAgIHJldHVybiBJU19FTkQgPyBTICsgc3RyaW5nRmlsbGVyIDogc3RyaW5nRmlsbGVyICsgUztcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUucGFkc3RhcnRcbiAgc3RhcnQ6IGNyZWF0ZU1ldGhvZChmYWxzZSksXG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLnBhZEVuZGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUucGFkZW5kXG4gIGVuZDogY3JlYXRlTWV0aG9kKHRydWUpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL3B1bnljb2RlLmpzL2Jsb2IvbWFzdGVyL3B1bnljb2RlLmpzXG52YXIgbWF4SW50ID0gMjE0NzQ4MzY0NzsgLy8gYWthLiAweDdGRkZGRkZGIG9yIDJeMzEtMVxudmFyIGJhc2UgPSAzNjtcbnZhciB0TWluID0gMTtcbnZhciB0TWF4ID0gMjY7XG52YXIgc2tldyA9IDM4O1xudmFyIGRhbXAgPSA3MDA7XG52YXIgaW5pdGlhbEJpYXMgPSA3MjtcbnZhciBpbml0aWFsTiA9IDEyODsgLy8gMHg4MFxudmFyIGRlbGltaXRlciA9ICctJzsgLy8gJ1xceDJEJ1xudmFyIHJlZ2V4Tm9uQVNDSUkgPSAvW15cXDAtXFx1MDA3RV0vOyAvLyBub24tQVNDSUkgY2hhcnNcbnZhciByZWdleFNlcGFyYXRvcnMgPSAvWy5cXHUzMDAyXFx1RkYwRVxcdUZGNjFdL2c7IC8vIFJGQyAzNDkwIHNlcGFyYXRvcnNcbnZhciBPVkVSRkxPV19FUlJPUiA9ICdPdmVyZmxvdzogaW5wdXQgbmVlZHMgd2lkZXIgaW50ZWdlcnMgdG8gcHJvY2Vzcyc7XG52YXIgYmFzZU1pbnVzVE1pbiA9IGJhc2UgLSB0TWluO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbnZhciBzdHJpbmdGcm9tQ2hhckNvZGUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgY29udGFpbmluZyB0aGUgbnVtZXJpYyBjb2RlIHBvaW50cyBvZiBlYWNoIFVuaWNvZGVcbiAqIGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nLiBXaGlsZSBKYXZhU2NyaXB0IHVzZXMgVUNTLTIgaW50ZXJuYWxseSxcbiAqIHRoaXMgZnVuY3Rpb24gd2lsbCBjb252ZXJ0IGEgcGFpciBvZiBzdXJyb2dhdGUgaGFsdmVzIChlYWNoIG9mIHdoaWNoXG4gKiBVQ1MtMiBleHBvc2VzIGFzIHNlcGFyYXRlIGNoYXJhY3RlcnMpIGludG8gYSBzaW5nbGUgY29kZSBwb2ludCxcbiAqIG1hdGNoaW5nIFVURi0xNi5cbiAqL1xudmFyIHVjczJkZWNvZGUgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHZhciBvdXRwdXQgPSBbXTtcbiAgdmFyIGNvdW50ZXIgPSAwO1xuICB2YXIgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDtcbiAgd2hpbGUgKGNvdW50ZXIgPCBsZW5ndGgpIHtcbiAgICB2YXIgdmFsdWUgPSBzdHJpbmcuY2hhckNvZGVBdChjb3VudGVyKyspO1xuICAgIGlmICh2YWx1ZSA+PSAweEQ4MDAgJiYgdmFsdWUgPD0gMHhEQkZGICYmIGNvdW50ZXIgPCBsZW5ndGgpIHtcbiAgICAgIC8vIEl0J3MgYSBoaWdoIHN1cnJvZ2F0ZSwgYW5kIHRoZXJlIGlzIGEgbmV4dCBjaGFyYWN0ZXIuXG4gICAgICB2YXIgZXh0cmEgPSBzdHJpbmcuY2hhckNvZGVBdChjb3VudGVyKyspO1xuICAgICAgaWYgKChleHRyYSAmIDB4RkMwMCkgPT0gMHhEQzAwKSB7IC8vIExvdyBzdXJyb2dhdGUuXG4gICAgICAgIG91dHB1dC5wdXNoKCgodmFsdWUgJiAweDNGRikgPDwgMTApICsgKGV4dHJhICYgMHgzRkYpICsgMHgxMDAwMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJdCdzIGFuIHVubWF0Y2hlZCBzdXJyb2dhdGU7IG9ubHkgYXBwZW5kIHRoaXMgY29kZSB1bml0LCBpbiBjYXNlIHRoZVxuICAgICAgICAvLyBuZXh0IGNvZGUgdW5pdCBpcyB0aGUgaGlnaCBzdXJyb2dhdGUgb2YgYSBzdXJyb2dhdGUgcGFpci5cbiAgICAgICAgb3V0cHV0LnB1c2godmFsdWUpO1xuICAgICAgICBjb3VudGVyLS07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG91dHB1dC5wdXNoKHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dHB1dDtcbn07XG5cbi8qKlxuICogQ29udmVydHMgYSBkaWdpdC9pbnRlZ2VyIGludG8gYSBiYXNpYyBjb2RlIHBvaW50LlxuICovXG52YXIgZGlnaXRUb0Jhc2ljID0gZnVuY3Rpb24gKGRpZ2l0KSB7XG4gIC8vICAwLi4yNSBtYXAgdG8gQVNDSUkgYS4ueiBvciBBLi5aXG4gIC8vIDI2Li4zNSBtYXAgdG8gQVNDSUkgMC4uOVxuICByZXR1cm4gZGlnaXQgKyAyMiArIDc1ICogKGRpZ2l0IDwgMjYpO1xufTtcblxuLyoqXG4gKiBCaWFzIGFkYXB0YXRpb24gZnVuY3Rpb24gYXMgcGVyIHNlY3Rpb24gMy40IG9mIFJGQyAzNDkyLlxuICogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM0OTIjc2VjdGlvbi0zLjRcbiAqL1xudmFyIGFkYXB0ID0gZnVuY3Rpb24gKGRlbHRhLCBudW1Qb2ludHMsIGZpcnN0VGltZSkge1xuICB2YXIgayA9IDA7XG4gIGRlbHRhID0gZmlyc3RUaW1lID8gZmxvb3IoZGVsdGEgLyBkYW1wKSA6IGRlbHRhID4+IDE7XG4gIGRlbHRhICs9IGZsb29yKGRlbHRhIC8gbnVtUG9pbnRzKTtcbiAgZm9yICg7IGRlbHRhID4gYmFzZU1pbnVzVE1pbiAqIHRNYXggPj4gMTsgayArPSBiYXNlKSB7XG4gICAgZGVsdGEgPSBmbG9vcihkZWx0YSAvIGJhc2VNaW51c1RNaW4pO1xuICB9XG4gIHJldHVybiBmbG9vcihrICsgKGJhc2VNaW51c1RNaW4gKyAxKSAqIGRlbHRhIC8gKGRlbHRhICsgc2tldykpO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhIHN0cmluZyBvZiBVbmljb2RlIHN5bWJvbHMgKGUuZy4gYSBkb21haW4gbmFtZSBsYWJlbCkgdG8gYVxuICogUHVueWNvZGUgc3RyaW5nIG9mIEFTQ0lJLW9ubHkgc3ltYm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBtYXgtc3RhdGVtZW50c1xudmFyIGVuY29kZSA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICB2YXIgb3V0cHV0ID0gW107XG5cbiAgLy8gQ29udmVydCB0aGUgaW5wdXQgaW4gVUNTLTIgdG8gYW4gYXJyYXkgb2YgVW5pY29kZSBjb2RlIHBvaW50cy5cbiAgaW5wdXQgPSB1Y3MyZGVjb2RlKGlucHV0KTtcblxuICAvLyBDYWNoZSB0aGUgbGVuZ3RoLlxuICB2YXIgaW5wdXRMZW5ndGggPSBpbnB1dC5sZW5ndGg7XG5cbiAgLy8gSW5pdGlhbGl6ZSB0aGUgc3RhdGUuXG4gIHZhciBuID0gaW5pdGlhbE47XG4gIHZhciBkZWx0YSA9IDA7XG4gIHZhciBiaWFzID0gaW5pdGlhbEJpYXM7XG4gIHZhciBpLCBjdXJyZW50VmFsdWU7XG5cbiAgLy8gSGFuZGxlIHRoZSBiYXNpYyBjb2RlIHBvaW50cy5cbiAgZm9yIChpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgY3VycmVudFZhbHVlID0gaW5wdXRbaV07XG4gICAgaWYgKGN1cnJlbnRWYWx1ZSA8IDB4ODApIHtcbiAgICAgIG91dHB1dC5wdXNoKHN0cmluZ0Zyb21DaGFyQ29kZShjdXJyZW50VmFsdWUpKTtcbiAgICB9XG4gIH1cblxuICB2YXIgYmFzaWNMZW5ndGggPSBvdXRwdXQubGVuZ3RoOyAvLyBudW1iZXIgb2YgYmFzaWMgY29kZSBwb2ludHMuXG4gIHZhciBoYW5kbGVkQ1BDb3VudCA9IGJhc2ljTGVuZ3RoOyAvLyBudW1iZXIgb2YgY29kZSBwb2ludHMgdGhhdCBoYXZlIGJlZW4gaGFuZGxlZDtcblxuICAvLyBGaW5pc2ggdGhlIGJhc2ljIHN0cmluZyB3aXRoIGEgZGVsaW1pdGVyIHVubGVzcyBpdCdzIGVtcHR5LlxuICBpZiAoYmFzaWNMZW5ndGgpIHtcbiAgICBvdXRwdXQucHVzaChkZWxpbWl0ZXIpO1xuICB9XG5cbiAgLy8gTWFpbiBlbmNvZGluZyBsb29wOlxuICB3aGlsZSAoaGFuZGxlZENQQ291bnQgPCBpbnB1dExlbmd0aCkge1xuICAgIC8vIEFsbCBub24tYmFzaWMgY29kZSBwb2ludHMgPCBuIGhhdmUgYmVlbiBoYW5kbGVkIGFscmVhZHkuIEZpbmQgdGhlIG5leHQgbGFyZ2VyIG9uZTpcbiAgICB2YXIgbSA9IG1heEludDtcbiAgICBmb3IgKGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGN1cnJlbnRWYWx1ZSA9IGlucHV0W2ldO1xuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA+PSBuICYmIGN1cnJlbnRWYWx1ZSA8IG0pIHtcbiAgICAgICAgbSA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJbmNyZWFzZSBgZGVsdGFgIGVub3VnaCB0byBhZHZhbmNlIHRoZSBkZWNvZGVyJ3MgPG4saT4gc3RhdGUgdG8gPG0sMD4sIGJ1dCBndWFyZCBhZ2FpbnN0IG92ZXJmbG93LlxuICAgIHZhciBoYW5kbGVkQ1BDb3VudFBsdXNPbmUgPSBoYW5kbGVkQ1BDb3VudCArIDE7XG4gICAgaWYgKG0gLSBuID4gZmxvb3IoKG1heEludCAtIGRlbHRhKSAvIGhhbmRsZWRDUENvdW50UGx1c09uZSkpIHtcbiAgICAgIHRocm93IFJhbmdlRXJyb3IoT1ZFUkZMT1dfRVJST1IpO1xuICAgIH1cblxuICAgIGRlbHRhICs9IChtIC0gbikgKiBoYW5kbGVkQ1BDb3VudFBsdXNPbmU7XG4gICAgbiA9IG07XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGN1cnJlbnRWYWx1ZSA9IGlucHV0W2ldO1xuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA8IG4gJiYgKytkZWx0YSA+IG1heEludCkge1xuICAgICAgICB0aHJvdyBSYW5nZUVycm9yKE9WRVJGTE9XX0VSUk9SKTtcbiAgICAgIH1cbiAgICAgIGlmIChjdXJyZW50VmFsdWUgPT0gbikge1xuICAgICAgICAvLyBSZXByZXNlbnQgZGVsdGEgYXMgYSBnZW5lcmFsaXplZCB2YXJpYWJsZS1sZW5ndGggaW50ZWdlci5cbiAgICAgICAgdmFyIHEgPSBkZWx0YTtcbiAgICAgICAgZm9yICh2YXIgayA9IGJhc2U7IC8qIG5vIGNvbmRpdGlvbiAqLzsgayArPSBiYXNlKSB7XG4gICAgICAgICAgdmFyIHQgPSBrIDw9IGJpYXMgPyB0TWluIDogKGsgPj0gYmlhcyArIHRNYXggPyB0TWF4IDogayAtIGJpYXMpO1xuICAgICAgICAgIGlmIChxIDwgdCkgYnJlYWs7XG4gICAgICAgICAgdmFyIHFNaW51c1QgPSBxIC0gdDtcbiAgICAgICAgICB2YXIgYmFzZU1pbnVzVCA9IGJhc2UgLSB0O1xuICAgICAgICAgIG91dHB1dC5wdXNoKHN0cmluZ0Zyb21DaGFyQ29kZShkaWdpdFRvQmFzaWModCArIHFNaW51c1QgJSBiYXNlTWludXNUKSkpO1xuICAgICAgICAgIHEgPSBmbG9vcihxTWludXNUIC8gYmFzZU1pbnVzVCk7XG4gICAgICAgIH1cblxuICAgICAgICBvdXRwdXQucHVzaChzdHJpbmdGcm9tQ2hhckNvZGUoZGlnaXRUb0Jhc2ljKHEpKSk7XG4gICAgICAgIGJpYXMgPSBhZGFwdChkZWx0YSwgaGFuZGxlZENQQ291bnRQbHVzT25lLCBoYW5kbGVkQ1BDb3VudCA9PSBiYXNpY0xlbmd0aCk7XG4gICAgICAgIGRlbHRhID0gMDtcbiAgICAgICAgKytoYW5kbGVkQ1BDb3VudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICArK2RlbHRhO1xuICAgICsrbjtcbiAgfVxuICByZXR1cm4gb3V0cHV0LmpvaW4oJycpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgdmFyIGVuY29kZWQgPSBbXTtcbiAgdmFyIGxhYmVscyA9IGlucHV0LnRvTG93ZXJDYXNlKCkucmVwbGFjZShyZWdleFNlcGFyYXRvcnMsICdcXHUwMDJFJykuc3BsaXQoJy4nKTtcbiAgdmFyIGksIGxhYmVsO1xuICBmb3IgKGkgPSAwOyBpIDwgbGFiZWxzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGFiZWwgPSBsYWJlbHNbaV07XG4gICAgZW5jb2RlZC5wdXNoKHJlZ2V4Tm9uQVNDSUkudGVzdChsYWJlbCkgPyAneG4tLScgKyBlbmNvZGUobGFiZWwpIDogbGFiZWwpO1xuICB9XG4gIHJldHVybiBlbmNvZGVkLmpvaW4oJy4nKTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS5yZXBlYXRgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5yZXBlYXRcbm1vZHVsZS5leHBvcnRzID0gJycucmVwZWF0IHx8IGZ1bmN0aW9uIHJlcGVhdChjb3VudCkge1xuICB2YXIgc3RyID0gU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcykpO1xuICB2YXIgcmVzdWx0ID0gJyc7XG4gIHZhciBuID0gdG9JbnRlZ2VyKGNvdW50KTtcbiAgaWYgKG4gPCAwIHx8IG4gPT0gSW5maW5pdHkpIHRocm93IFJhbmdlRXJyb3IoJ1dyb25nIG51bWJlciBvZiByZXBldGl0aW9ucycpO1xuICBmb3IgKDtuID4gMDsgKG4gPj4+PSAxKSAmJiAoc3RyICs9IHN0cikpIGlmIChuICYgMSkgcmVzdWx0ICs9IHN0cjtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciB3aGl0ZXNwYWNlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93aGl0ZXNwYWNlcycpO1xuXG52YXIgbm9uID0gJ1xcdTIwMEJcXHUwMDg1XFx1MTgwRSc7XG5cbi8vIGNoZWNrIHRoYXQgYSBtZXRob2Qgd29ya3Mgd2l0aCB0aGUgY29ycmVjdCBsaXN0XG4vLyBvZiB3aGl0ZXNwYWNlcyBhbmQgaGFzIGEgY29ycmVjdCBuYW1lXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSkge1xuICByZXR1cm4gZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhIXdoaXRlc3BhY2VzW01FVEhPRF9OQU1FXSgpIHx8IG5vbltNRVRIT0RfTkFNRV0oKSAhPSBub24gfHwgd2hpdGVzcGFjZXNbTUVUSE9EX05BTUVdLm5hbWUgIT09IE1FVEhPRF9OQU1FO1xuICB9KTtcbn07XG4iLCJ2YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcbnZhciB3aGl0ZXNwYWNlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93aGl0ZXNwYWNlcycpO1xuXG52YXIgd2hpdGVzcGFjZSA9ICdbJyArIHdoaXRlc3BhY2VzICsgJ10nO1xudmFyIGx0cmltID0gUmVnRXhwKCdeJyArIHdoaXRlc3BhY2UgKyB3aGl0ZXNwYWNlICsgJyonKTtcbnZhciBydHJpbSA9IFJlZ0V4cCh3aGl0ZXNwYWNlICsgd2hpdGVzcGFjZSArICcqJCcpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS57IHRyaW0sIHRyaW1TdGFydCwgdHJpbUVuZCwgdHJpbUxlZnQsIHRyaW1SaWdodCB9YCBtZXRob2RzIGltcGxlbWVudGF0aW9uXG52YXIgY3JlYXRlTWV0aG9kID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcykge1xuICAgIHZhciBzdHJpbmcgPSBTdHJpbmcocmVxdWlyZU9iamVjdENvZXJjaWJsZSgkdGhpcykpO1xuICAgIGlmIChUWVBFICYgMSkgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UobHRyaW0sICcnKTtcbiAgICBpZiAoVFlQRSAmIDIpIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKHJ0cmltLCAnJyk7XG4gICAgcmV0dXJuIHN0cmluZztcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgU3RyaW5nLnByb3RvdHlwZS57IHRyaW1MZWZ0LCB0cmltU3RhcnQgfWAgbWV0aG9kc1xuICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnRyaW1zdGFydFxuICBzdGFydDogY3JlYXRlTWV0aG9kKDEpLFxuICAvLyBgU3RyaW5nLnByb3RvdHlwZS57IHRyaW1SaWdodCwgdHJpbUVuZCB9YCBtZXRob2RzXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbWVuZFxuICBlbmQ6IGNyZWF0ZU1ldGhvZCgyKSxcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUudHJpbWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbVxuICB0cmltOiBjcmVhdGVNZXRob2QoMylcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgaHRtbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9odG1sJyk7XG52YXIgY3JlYXRlRWxlbWVudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudCcpO1xudmFyIElTX0lPUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtaXMtaW9zJyk7XG5cbnZhciBsb2NhdGlvbiA9IGdsb2JhbC5sb2NhdGlvbjtcbnZhciBzZXQgPSBnbG9iYWwuc2V0SW1tZWRpYXRlO1xudmFyIGNsZWFyID0gZ2xvYmFsLmNsZWFySW1tZWRpYXRlO1xudmFyIHByb2Nlc3MgPSBnbG9iYWwucHJvY2VzcztcbnZhciBNZXNzYWdlQ2hhbm5lbCA9IGdsb2JhbC5NZXNzYWdlQ2hhbm5lbDtcbnZhciBEaXNwYXRjaCA9IGdsb2JhbC5EaXNwYXRjaDtcbnZhciBjb3VudGVyID0gMDtcbnZhciBxdWV1ZSA9IHt9O1xudmFyIE9OUkVBRFlTVEFURUNIQU5HRSA9ICdvbnJlYWR5c3RhdGVjaGFuZ2UnO1xudmFyIGRlZmVyLCBjaGFubmVsLCBwb3J0O1xuXG52YXIgcnVuID0gZnVuY3Rpb24gKGlkKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnNcbiAgaWYgKHF1ZXVlLmhhc093blByb3BlcnR5KGlkKSkge1xuICAgIHZhciBmbiA9IHF1ZXVlW2lkXTtcbiAgICBkZWxldGUgcXVldWVbaWRdO1xuICAgIGZuKCk7XG4gIH1cbn07XG5cbnZhciBydW5uZXIgPSBmdW5jdGlvbiAoaWQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBydW4oaWQpO1xuICB9O1xufTtcblxudmFyIGxpc3RlbmVyID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gIHJ1bihldmVudC5kYXRhKTtcbn07XG5cbnZhciBwb3N0ID0gZnVuY3Rpb24gKGlkKSB7XG4gIC8vIG9sZCBlbmdpbmVzIGhhdmUgbm90IGxvY2F0aW9uLm9yaWdpblxuICBnbG9iYWwucG9zdE1lc3NhZ2UoaWQgKyAnJywgbG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgbG9jYXRpb24uaG9zdCk7XG59O1xuXG4vLyBOb2RlLmpzIDAuOSsgJiBJRTEwKyBoYXMgc2V0SW1tZWRpYXRlLCBvdGhlcndpc2U6XG5pZiAoIXNldCB8fCAhY2xlYXIpIHtcbiAgc2V0ID0gZnVuY3Rpb24gc2V0SW1tZWRpYXRlKGZuKSB7XG4gICAgdmFyIGFyZ3MgPSBbXTtcbiAgICB2YXIgaSA9IDE7XG4gICAgd2hpbGUgKGFyZ3VtZW50cy5sZW5ndGggPiBpKSBhcmdzLnB1c2goYXJndW1lbnRzW2krK10pO1xuICAgIHF1ZXVlWysrY291bnRlcl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgICAgICh0eXBlb2YgZm4gPT0gJ2Z1bmN0aW9uJyA/IGZuIDogRnVuY3Rpb24oZm4pKS5hcHBseSh1bmRlZmluZWQsIGFyZ3MpO1xuICAgIH07XG4gICAgZGVmZXIoY291bnRlcik7XG4gICAgcmV0dXJuIGNvdW50ZXI7XG4gIH07XG4gIGNsZWFyID0gZnVuY3Rpb24gY2xlYXJJbW1lZGlhdGUoaWQpIHtcbiAgICBkZWxldGUgcXVldWVbaWRdO1xuICB9O1xuICAvLyBOb2RlLmpzIDAuOC1cbiAgaWYgKGNsYXNzb2YocHJvY2VzcykgPT0gJ3Byb2Nlc3MnKSB7XG4gICAgZGVmZXIgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgIHByb2Nlc3MubmV4dFRpY2socnVubmVyKGlkKSk7XG4gICAgfTtcbiAgLy8gU3BoZXJlIChKUyBnYW1lIGVuZ2luZSkgRGlzcGF0Y2ggQVBJXG4gIH0gZWxzZSBpZiAoRGlzcGF0Y2ggJiYgRGlzcGF0Y2gubm93KSB7XG4gICAgZGVmZXIgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgIERpc3BhdGNoLm5vdyhydW5uZXIoaWQpKTtcbiAgICB9O1xuICAvLyBCcm93c2VycyB3aXRoIE1lc3NhZ2VDaGFubmVsLCBpbmNsdWRlcyBXZWJXb3JrZXJzXG4gIC8vIGV4Y2VwdCBpT1MgLSBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvNjI0XG4gIH0gZWxzZSBpZiAoTWVzc2FnZUNoYW5uZWwgJiYgIUlTX0lPUykge1xuICAgIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTtcbiAgICBwb3J0ID0gY2hhbm5lbC5wb3J0MjtcbiAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGxpc3RlbmVyO1xuICAgIGRlZmVyID0gYmluZChwb3J0LnBvc3RNZXNzYWdlLCBwb3J0LCAxKTtcbiAgLy8gQnJvd3NlcnMgd2l0aCBwb3N0TWVzc2FnZSwgc2tpcCBXZWJXb3JrZXJzXG4gIC8vIElFOCBoYXMgcG9zdE1lc3NhZ2UsIGJ1dCBpdCdzIHN5bmMgJiB0eXBlb2YgaXRzIHBvc3RNZXNzYWdlIGlzICdvYmplY3QnXG4gIH0gZWxzZSBpZiAoXG4gICAgZ2xvYmFsLmFkZEV2ZW50TGlzdGVuZXIgJiZcbiAgICB0eXBlb2YgcG9zdE1lc3NhZ2UgPT0gJ2Z1bmN0aW9uJyAmJlxuICAgICFnbG9iYWwuaW1wb3J0U2NyaXB0cyAmJlxuICAgICFmYWlscyhwb3N0KSAmJlxuICAgIGxvY2F0aW9uLnByb3RvY29sICE9PSAnZmlsZTonXG4gICkge1xuICAgIGRlZmVyID0gcG9zdDtcbiAgICBnbG9iYWwuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGxpc3RlbmVyLCBmYWxzZSk7XG4gIC8vIElFOC1cbiAgfSBlbHNlIGlmIChPTlJFQURZU1RBVEVDSEFOR0UgaW4gY3JlYXRlRWxlbWVudCgnc2NyaXB0JykpIHtcbiAgICBkZWZlciA9IGZ1bmN0aW9uIChpZCkge1xuICAgICAgaHRtbC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KCdzY3JpcHQnKSlbT05SRUFEWVNUQVRFQ0hBTkdFXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaHRtbC5yZW1vdmVDaGlsZCh0aGlzKTtcbiAgICAgICAgcnVuKGlkKTtcbiAgICAgIH07XG4gICAgfTtcbiAgLy8gUmVzdCBvbGQgYnJvd3NlcnNcbiAgfSBlbHNlIHtcbiAgICBkZWZlciA9IGZ1bmN0aW9uIChpZCkge1xuICAgICAgc2V0VGltZW91dChydW5uZXIoaWQpLCAwKTtcbiAgICB9O1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IHNldCxcbiAgY2xlYXI6IGNsZWFyXG59O1xuIiwidmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcblxuLy8gYHRoaXNOdW1iZXJWYWx1ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10aGlzbnVtYmVydmFsdWVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT0gJ251bWJlcicgJiYgY2xhc3NvZih2YWx1ZSkgIT0gJ051bWJlcicpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoJ0luY29ycmVjdCBpbnZvY2F0aW9uJyk7XG4gIH1cbiAgcmV0dXJuICt2YWx1ZTtcbn07XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcblxudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIG1pbiA9IE1hdGgubWluO1xuXG4vLyBIZWxwZXIgZm9yIGEgcG9wdWxhciByZXBlYXRpbmcgY2FzZSBvZiB0aGUgc3BlYzpcbi8vIExldCBpbnRlZ2VyIGJlID8gVG9JbnRlZ2VyKGluZGV4KS5cbi8vIElmIGludGVnZXIgPCAwLCBsZXQgcmVzdWx0IGJlIG1heCgobGVuZ3RoICsgaW50ZWdlciksIDApOyBlbHNlIGxldCByZXN1bHQgYmUgbWluKGludGVnZXIsIGxlbmd0aCkuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbmRleCwgbGVuZ3RoKSB7XG4gIHZhciBpbnRlZ2VyID0gdG9JbnRlZ2VyKGluZGV4KTtcbiAgcmV0dXJuIGludGVnZXIgPCAwID8gbWF4KGludGVnZXIgKyBsZW5ndGgsIDApIDogbWluKGludGVnZXIsIGxlbmd0aCk7XG59O1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG5cbi8vIGBUb0luZGV4YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXRvaW5kZXhcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIGlmIChpdCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gMDtcbiAgdmFyIG51bWJlciA9IHRvSW50ZWdlcihpdCk7XG4gIHZhciBsZW5ndGggPSB0b0xlbmd0aChudW1iZXIpO1xuICBpZiAobnVtYmVyICE9PSBsZW5ndGgpIHRocm93IFJhbmdlRXJyb3IoJ1dyb25nIGxlbmd0aCBvciBpbmRleCcpO1xuICByZXR1cm4gbGVuZ3RoO1xufTtcbiIsIi8vIHRvT2JqZWN0IHdpdGggZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBzdHJpbmdzXG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBJbmRleGVkT2JqZWN0KHJlcXVpcmVPYmplY3RDb2VyY2libGUoaXQpKTtcbn07XG4iLCJ2YXIgY2VpbCA9IE1hdGguY2VpbDtcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5cbi8vIGBUb0ludGVnZXJgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdG9pbnRlZ2VyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gaXNOYU4oYXJndW1lbnQgPSArYXJndW1lbnQpID8gMCA6IChhcmd1bWVudCA+IDAgPyBmbG9vciA6IGNlaWwpKGFyZ3VtZW50KTtcbn07XG4iLCJ2YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcblxudmFyIG1pbiA9IE1hdGgubWluO1xuXG4vLyBgVG9MZW5ndGhgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdG9sZW5ndGhcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHJldHVybiBhcmd1bWVudCA+IDAgPyBtaW4odG9JbnRlZ2VyKGFyZ3VtZW50KSwgMHgxRkZGRkZGRkZGRkZGRikgOiAwOyAvLyAyICoqIDUzIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuIiwidmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbi8vIGBUb09iamVjdGAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10b29iamVjdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIE9iamVjdChyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKGFyZ3VtZW50KSk7XG59O1xuIiwidmFyIHRvUG9zaXRpdmVJbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXBvc2l0aXZlLWludGVnZXInKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIEJZVEVTKSB7XG4gIHZhciBvZmZzZXQgPSB0b1Bvc2l0aXZlSW50ZWdlcihpdCk7XG4gIGlmIChvZmZzZXQgJSBCWVRFUykgdGhyb3cgUmFuZ2VFcnJvcignV3Jvbmcgb2Zmc2V0Jyk7XG4gIHJldHVybiBvZmZzZXQ7XG59O1xuIiwidmFyIHRvSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbnRlZ2VyJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciByZXN1bHQgPSB0b0ludGVnZXIoaXQpO1xuICBpZiAocmVzdWx0IDwgMCkgdGhyb3cgUmFuZ2VFcnJvcihcIlRoZSBhcmd1bWVudCBjYW4ndCBiZSBsZXNzIHRoYW4gMFwiKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbi8vIGBUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10b3ByaW1pdGl2ZVxuLy8gaW5zdGVhZCBvZiB0aGUgRVM2IHNwZWMgdmVyc2lvbiwgd2UgZGlkbid0IGltcGxlbWVudCBAQHRvUHJpbWl0aXZlIGNhc2Vcbi8vIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IC0gZmxhZyAtIHByZWZlcnJlZCB0eXBlIGlzIGEgc3RyaW5nXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpbnB1dCwgUFJFRkVSUkVEX1NUUklORykge1xuICBpZiAoIWlzT2JqZWN0KGlucHV0KSkgcmV0dXJuIGlucHV0O1xuICB2YXIgZm4sIHZhbDtcbiAgaWYgKFBSRUZFUlJFRF9TVFJJTkcgJiYgdHlwZW9mIChmbiA9IGlucHV0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGlucHV0KSkpIHJldHVybiB2YWw7XG4gIGlmICh0eXBlb2YgKGZuID0gaW5wdXQudmFsdWVPZikgPT0gJ2Z1bmN0aW9uJyAmJiAhaXNPYmplY3QodmFsID0gZm4uY2FsbChpbnB1dCkpKSByZXR1cm4gdmFsO1xuICBpZiAoIVBSRUZFUlJFRF9TVFJJTkcgJiYgdHlwZW9mIChmbiA9IGlucHV0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGlucHV0KSkpIHJldHVybiB2YWw7XG4gIHRocm93IFR5cGVFcnJvcihcIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZVwiKTtcbn07XG4iLCJ2YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBUT19TVFJJTkdfVEFHID0gd2VsbEtub3duU3ltYm9sKCd0b1N0cmluZ1RhZycpO1xudmFyIHRlc3QgPSB7fTtcblxudGVzdFtUT19TVFJJTkdfVEFHXSA9ICd6JztcblxubW9kdWxlLmV4cG9ydHMgPSBTdHJpbmcodGVzdCkgPT09ICdbb2JqZWN0IHpdJztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIFRZUEVEX0FSUkFZU19DT05TVFJVQ1RPUlNfUkVRVUlSRVNfV1JBUFBFUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHlwZWQtYXJyYXktY29uc3RydWN0b3JzLXJlcXVpcmUtd3JhcHBlcnMnKTtcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciBBcnJheUJ1ZmZlck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXInKTtcbnZhciBhbkluc3RhbmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLWluc3RhbmNlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIHRvSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXgnKTtcbnZhciB0b09mZnNldCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vZmZzZXQnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcmltaXRpdmUnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qtc2V0LXByb3RvdHlwZS1vZicpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKS5mO1xudmFyIHR5cGVkQXJyYXlGcm9tID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3R5cGVkLWFycmF5LWZyb20nKTtcbnZhciBmb3JFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZvckVhY2g7XG52YXIgc2V0U3BlY2llcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtc3BlY2llcycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcbnZhciBpbmhlcml0SWZSZXF1aXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmhlcml0LWlmLXJlcXVpcmVkJyk7XG5cbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXQ7XG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIG5hdGl2ZURlZmluZVByb3BlcnR5ID0gZGVmaW5lUHJvcGVydHlNb2R1bGUuZjtcbnZhciBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUuZjtcbnZhciByb3VuZCA9IE1hdGgucm91bmQ7XG52YXIgUmFuZ2VFcnJvciA9IGdsb2JhbC5SYW5nZUVycm9yO1xudmFyIEFycmF5QnVmZmVyID0gQXJyYXlCdWZmZXJNb2R1bGUuQXJyYXlCdWZmZXI7XG52YXIgRGF0YVZpZXcgPSBBcnJheUJ1ZmZlck1vZHVsZS5EYXRhVmlldztcbnZhciBOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5OQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTO1xudmFyIFRZUEVEX0FSUkFZX1RBRyA9IEFycmF5QnVmZmVyVmlld0NvcmUuVFlQRURfQVJSQVlfVEFHO1xudmFyIFR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLlR5cGVkQXJyYXk7XG52YXIgVHlwZWRBcnJheVByb3RvdHlwZSA9IEFycmF5QnVmZmVyVmlld0NvcmUuVHlwZWRBcnJheVByb3RvdHlwZTtcbnZhciBhVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yO1xudmFyIGlzVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuaXNUeXBlZEFycmF5O1xudmFyIEJZVEVTX1BFUl9FTEVNRU5UID0gJ0JZVEVTX1BFUl9FTEVNRU5UJztcbnZhciBXUk9OR19MRU5HVEggPSAnV3JvbmcgbGVuZ3RoJztcblxudmFyIGZyb21MaXN0ID0gZnVuY3Rpb24gKEMsIGxpc3QpIHtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGxlbmd0aCA9IGxpc3QubGVuZ3RoO1xuICB2YXIgcmVzdWx0ID0gbmV3IChhVHlwZWRBcnJheUNvbnN0cnVjdG9yKEMpKShsZW5ndGgpO1xuICB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHJlc3VsdFtpbmRleF0gPSBsaXN0W2luZGV4KytdO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxudmFyIGFkZEdldHRlciA9IGZ1bmN0aW9uIChpdCwga2V5KSB7XG4gIG5hdGl2ZURlZmluZVByb3BlcnR5KGl0LCBrZXksIHsgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGdldEludGVybmFsU3RhdGUodGhpcylba2V5XTtcbiAgfSB9KTtcbn07XG5cbnZhciBpc0FycmF5QnVmZmVyID0gZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBrbGFzcztcbiAgcmV0dXJuIGl0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIgfHwgKGtsYXNzID0gY2xhc3NvZihpdCkpID09ICdBcnJheUJ1ZmZlcicgfHwga2xhc3MgPT0gJ1NoYXJlZEFycmF5QnVmZmVyJztcbn07XG5cbnZhciBpc1R5cGVkQXJyYXlJbmRleCA9IGZ1bmN0aW9uICh0YXJnZXQsIGtleSkge1xuICByZXR1cm4gaXNUeXBlZEFycmF5KHRhcmdldClcbiAgICAmJiB0eXBlb2Yga2V5ICE9ICdzeW1ib2wnXG4gICAgJiYga2V5IGluIHRhcmdldFxuICAgICYmIFN0cmluZygra2V5KSA9PSBTdHJpbmcoa2V5KTtcbn07XG5cbnZhciB3cmFwcGVkR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSB7XG4gIHJldHVybiBpc1R5cGVkQXJyYXlJbmRleCh0YXJnZXQsIGtleSA9IHRvUHJpbWl0aXZlKGtleSwgdHJ1ZSkpXG4gICAgPyBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMiwgdGFyZ2V0W2tleV0pXG4gICAgOiBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpO1xufTtcblxudmFyIHdyYXBwZWREZWZpbmVQcm9wZXJ0eSA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBkZXNjcmlwdG9yKSB7XG4gIGlmIChpc1R5cGVkQXJyYXlJbmRleCh0YXJnZXQsIGtleSA9IHRvUHJpbWl0aXZlKGtleSwgdHJ1ZSkpXG4gICAgJiYgaXNPYmplY3QoZGVzY3JpcHRvcilcbiAgICAmJiBoYXMoZGVzY3JpcHRvciwgJ3ZhbHVlJylcbiAgICAmJiAhaGFzKGRlc2NyaXB0b3IsICdnZXQnKVxuICAgICYmICFoYXMoZGVzY3JpcHRvciwgJ3NldCcpXG4gICAgLy8gVE9ETzogYWRkIHZhbGlkYXRpb24gZGVzY3JpcHRvciB3L28gY2FsbGluZyBhY2Nlc3NvcnNcbiAgICAmJiAhZGVzY3JpcHRvci5jb25maWd1cmFibGVcbiAgICAmJiAoIWhhcyhkZXNjcmlwdG9yLCAnd3JpdGFibGUnKSB8fCBkZXNjcmlwdG9yLndyaXRhYmxlKVxuICAgICYmICghaGFzKGRlc2NyaXB0b3IsICdlbnVtZXJhYmxlJykgfHwgZGVzY3JpcHRvci5lbnVtZXJhYmxlKVxuICApIHtcbiAgICB0YXJnZXRba2V5XSA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfSByZXR1cm4gbmF0aXZlRGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIGRlc2NyaXB0b3IpO1xufTtcblxuaWYgKERFU0NSSVBUT1JTKSB7XG4gIGlmICghTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUykge1xuICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZS5mID0gd3JhcHBlZEdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcbiAgICBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mID0gd3JhcHBlZERlZmluZVByb3BlcnR5O1xuICAgIGFkZEdldHRlcihUeXBlZEFycmF5UHJvdG90eXBlLCAnYnVmZmVyJyk7XG4gICAgYWRkR2V0dGVyKFR5cGVkQXJyYXlQcm90b3R5cGUsICdieXRlT2Zmc2V0Jyk7XG4gICAgYWRkR2V0dGVyKFR5cGVkQXJyYXlQcm90b3R5cGUsICdieXRlTGVuZ3RoJyk7XG4gICAgYWRkR2V0dGVyKFR5cGVkQXJyYXlQcm90b3R5cGUsICdsZW5ndGgnKTtcbiAgfVxuXG4gICQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6ICFOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTIH0sIHtcbiAgICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6IHdyYXBwZWRHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsXG4gICAgZGVmaW5lUHJvcGVydHk6IHdyYXBwZWREZWZpbmVQcm9wZXJ0eVxuICB9KTtcblxuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChUWVBFLCB3cmFwcGVyLCBDTEFNUEVEKSB7XG4gICAgdmFyIEJZVEVTID0gVFlQRS5tYXRjaCgvXFxkKyQvKVswXSAvIDg7XG4gICAgdmFyIENPTlNUUlVDVE9SX05BTUUgPSBUWVBFICsgKENMQU1QRUQgPyAnQ2xhbXBlZCcgOiAnJykgKyAnQXJyYXknO1xuICAgIHZhciBHRVRURVIgPSAnZ2V0JyArIFRZUEU7XG4gICAgdmFyIFNFVFRFUiA9ICdzZXQnICsgVFlQRTtcbiAgICB2YXIgTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gZ2xvYmFsW0NPTlNUUlVDVE9SX05BTUVdO1xuICAgIHZhciBUeXBlZEFycmF5Q29uc3RydWN0b3IgPSBOYXRpdmVUeXBlZEFycmF5Q29uc3RydWN0b3I7XG4gICAgdmFyIFR5cGVkQXJyYXlDb25zdHJ1Y3RvclByb3RvdHlwZSA9IFR5cGVkQXJyYXlDb25zdHJ1Y3RvciAmJiBUeXBlZEFycmF5Q29uc3RydWN0b3IucHJvdG90eXBlO1xuICAgIHZhciBleHBvcnRlZCA9IHt9O1xuXG4gICAgdmFyIGdldHRlciA9IGZ1bmN0aW9uICh0aGF0LCBpbmRleCkge1xuICAgICAgdmFyIGRhdGEgPSBnZXRJbnRlcm5hbFN0YXRlKHRoYXQpO1xuICAgICAgcmV0dXJuIGRhdGEudmlld1tHRVRURVJdKGluZGV4ICogQllURVMgKyBkYXRhLmJ5dGVPZmZzZXQsIHRydWUpO1xuICAgIH07XG5cbiAgICB2YXIgc2V0dGVyID0gZnVuY3Rpb24gKHRoYXQsIGluZGV4LCB2YWx1ZSkge1xuICAgICAgdmFyIGRhdGEgPSBnZXRJbnRlcm5hbFN0YXRlKHRoYXQpO1xuICAgICAgaWYgKENMQU1QRUQpIHZhbHVlID0gKHZhbHVlID0gcm91bmQodmFsdWUpKSA8IDAgPyAwIDogdmFsdWUgPiAweEZGID8gMHhGRiA6IHZhbHVlICYgMHhGRjtcbiAgICAgIGRhdGEudmlld1tTRVRURVJdKGluZGV4ICogQllURVMgKyBkYXRhLmJ5dGVPZmZzZXQsIHZhbHVlLCB0cnVlKTtcbiAgICB9O1xuXG4gICAgdmFyIGFkZEVsZW1lbnQgPSBmdW5jdGlvbiAodGhhdCwgaW5kZXgpIHtcbiAgICAgIG5hdGl2ZURlZmluZVByb3BlcnR5KHRoYXQsIGluZGV4LCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBnZXR0ZXIodGhpcywgaW5kZXgpO1xuICAgICAgICB9LFxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgIHJldHVybiBzZXR0ZXIodGhpcywgaW5kZXgsIHZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmICghTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUykge1xuICAgICAgVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gd3JhcHBlcihmdW5jdGlvbiAodGhhdCwgZGF0YSwgb2Zmc2V0LCAkbGVuZ3RoKSB7XG4gICAgICAgIGFuSW5zdGFuY2UodGhhdCwgVHlwZWRBcnJheUNvbnN0cnVjdG9yLCBDT05TVFJVQ1RPUl9OQU1FKTtcbiAgICAgICAgdmFyIGluZGV4ID0gMDtcbiAgICAgICAgdmFyIGJ5dGVPZmZzZXQgPSAwO1xuICAgICAgICB2YXIgYnVmZmVyLCBieXRlTGVuZ3RoLCBsZW5ndGg7XG4gICAgICAgIGlmICghaXNPYmplY3QoZGF0YSkpIHtcbiAgICAgICAgICBsZW5ndGggPSB0b0luZGV4KGRhdGEpO1xuICAgICAgICAgIGJ5dGVMZW5ndGggPSBsZW5ndGggKiBCWVRFUztcbiAgICAgICAgICBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoYnl0ZUxlbmd0aCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNBcnJheUJ1ZmZlcihkYXRhKSkge1xuICAgICAgICAgIGJ1ZmZlciA9IGRhdGE7XG4gICAgICAgICAgYnl0ZU9mZnNldCA9IHRvT2Zmc2V0KG9mZnNldCwgQllURVMpO1xuICAgICAgICAgIHZhciAkbGVuID0gZGF0YS5ieXRlTGVuZ3RoO1xuICAgICAgICAgIGlmICgkbGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICgkbGVuICUgQllURVMpIHRocm93IFJhbmdlRXJyb3IoV1JPTkdfTEVOR1RIKTtcbiAgICAgICAgICAgIGJ5dGVMZW5ndGggPSAkbGVuIC0gYnl0ZU9mZnNldDtcbiAgICAgICAgICAgIGlmIChieXRlTGVuZ3RoIDwgMCkgdGhyb3cgUmFuZ2VFcnJvcihXUk9OR19MRU5HVEgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBieXRlTGVuZ3RoID0gdG9MZW5ndGgoJGxlbmd0aCkgKiBCWVRFUztcbiAgICAgICAgICAgIGlmIChieXRlTGVuZ3RoICsgYnl0ZU9mZnNldCA+ICRsZW4pIHRocm93IFJhbmdlRXJyb3IoV1JPTkdfTEVOR1RIKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGVuZ3RoID0gYnl0ZUxlbmd0aCAvIEJZVEVTO1xuICAgICAgICB9IGVsc2UgaWYgKGlzVHlwZWRBcnJheShkYXRhKSkge1xuICAgICAgICAgIHJldHVybiBmcm9tTGlzdChUeXBlZEFycmF5Q29uc3RydWN0b3IsIGRhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0eXBlZEFycmF5RnJvbS5jYWxsKFR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0SW50ZXJuYWxTdGF0ZSh0aGF0LCB7XG4gICAgICAgICAgYnVmZmVyOiBidWZmZXIsXG4gICAgICAgICAgYnl0ZU9mZnNldDogYnl0ZU9mZnNldCxcbiAgICAgICAgICBieXRlTGVuZ3RoOiBieXRlTGVuZ3RoLFxuICAgICAgICAgIGxlbmd0aDogbGVuZ3RoLFxuICAgICAgICAgIHZpZXc6IG5ldyBEYXRhVmlldyhidWZmZXIpXG4gICAgICAgIH0pO1xuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIGFkZEVsZW1lbnQodGhhdCwgaW5kZXgrKyk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHNldFByb3RvdHlwZU9mKSBzZXRQcm90b3R5cGVPZihUeXBlZEFycmF5Q29uc3RydWN0b3IsIFR5cGVkQXJyYXkpO1xuICAgICAgVHlwZWRBcnJheUNvbnN0cnVjdG9yUHJvdG90eXBlID0gVHlwZWRBcnJheUNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShUeXBlZEFycmF5UHJvdG90eXBlKTtcbiAgICB9IGVsc2UgaWYgKFRZUEVEX0FSUkFZU19DT05TVFJVQ1RPUlNfUkVRVUlSRVNfV1JBUFBFUlMpIHtcbiAgICAgIFR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IHdyYXBwZXIoZnVuY3Rpb24gKGR1bW15LCBkYXRhLCB0eXBlZEFycmF5T2Zmc2V0LCAkbGVuZ3RoKSB7XG4gICAgICAgIGFuSW5zdGFuY2UoZHVtbXksIFR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgQ09OU1RSVUNUT1JfTkFNRSk7XG4gICAgICAgIHJldHVybiBpbmhlcml0SWZSZXF1aXJlZChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgaWYgKCFpc09iamVjdChkYXRhKSkgcmV0dXJuIG5ldyBOYXRpdmVUeXBlZEFycmF5Q29uc3RydWN0b3IodG9JbmRleChkYXRhKSk7XG4gICAgICAgICAgaWYgKGlzQXJyYXlCdWZmZXIoZGF0YSkpIHJldHVybiAkbGVuZ3RoICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gbmV3IE5hdGl2ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvcihkYXRhLCB0b09mZnNldCh0eXBlZEFycmF5T2Zmc2V0LCBCWVRFUyksICRsZW5ndGgpXG4gICAgICAgICAgICA6IHR5cGVkQXJyYXlPZmZzZXQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IG5ldyBOYXRpdmVUeXBlZEFycmF5Q29uc3RydWN0b3IoZGF0YSwgdG9PZmZzZXQodHlwZWRBcnJheU9mZnNldCwgQllURVMpKVxuICAgICAgICAgICAgICA6IG5ldyBOYXRpdmVUeXBlZEFycmF5Q29uc3RydWN0b3IoZGF0YSk7XG4gICAgICAgICAgaWYgKGlzVHlwZWRBcnJheShkYXRhKSkgcmV0dXJuIGZyb21MaXN0KFR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgZGF0YSk7XG4gICAgICAgICAgcmV0dXJuIHR5cGVkQXJyYXlGcm9tLmNhbGwoVHlwZWRBcnJheUNvbnN0cnVjdG9yLCBkYXRhKTtcbiAgICAgICAgfSgpLCBkdW1teSwgVHlwZWRBcnJheUNvbnN0cnVjdG9yKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoc2V0UHJvdG90eXBlT2YpIHNldFByb3RvdHlwZU9mKFR5cGVkQXJyYXlDb25zdHJ1Y3RvciwgVHlwZWRBcnJheSk7XG4gICAgICBmb3JFYWNoKGdldE93blByb3BlcnR5TmFtZXMoTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yKSwgZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBpZiAoIShrZXkgaW4gVHlwZWRBcnJheUNvbnN0cnVjdG9yKSkge1xuICAgICAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShUeXBlZEFycmF5Q29uc3RydWN0b3IsIGtleSwgTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIFR5cGVkQXJyYXlDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBUeXBlZEFycmF5Q29uc3RydWN0b3JQcm90b3R5cGU7XG4gICAgfVxuXG4gICAgaWYgKFR5cGVkQXJyYXlDb25zdHJ1Y3RvclByb3RvdHlwZS5jb25zdHJ1Y3RvciAhPT0gVHlwZWRBcnJheUNvbnN0cnVjdG9yKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoVHlwZWRBcnJheUNvbnN0cnVjdG9yUHJvdG90eXBlLCAnY29uc3RydWN0b3InLCBUeXBlZEFycmF5Q29uc3RydWN0b3IpO1xuICAgIH1cblxuICAgIGlmIChUWVBFRF9BUlJBWV9UQUcpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShUeXBlZEFycmF5Q29uc3RydWN0b3JQcm90b3R5cGUsIFRZUEVEX0FSUkFZX1RBRywgQ09OU1RSVUNUT1JfTkFNRSk7XG4gICAgfVxuXG4gICAgZXhwb3J0ZWRbQ09OU1RSVUNUT1JfTkFNRV0gPSBUeXBlZEFycmF5Q29uc3RydWN0b3I7XG5cbiAgICAkKHtcbiAgICAgIGdsb2JhbDogdHJ1ZSwgZm9yY2VkOiBUeXBlZEFycmF5Q29uc3RydWN0b3IgIT0gTmF0aXZlVHlwZWRBcnJheUNvbnN0cnVjdG9yLCBzaGFtOiAhTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXU1xuICAgIH0sIGV4cG9ydGVkKTtcblxuICAgIGlmICghKEJZVEVTX1BFUl9FTEVNRU5UIGluIFR5cGVkQXJyYXlDb25zdHJ1Y3RvcikpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShUeXBlZEFycmF5Q29uc3RydWN0b3IsIEJZVEVTX1BFUl9FTEVNRU5ULCBCWVRFUyk7XG4gICAgfVxuXG4gICAgaWYgKCEoQllURVNfUEVSX0VMRU1FTlQgaW4gVHlwZWRBcnJheUNvbnN0cnVjdG9yUHJvdG90eXBlKSkge1xuICAgICAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KFR5cGVkQXJyYXlDb25zdHJ1Y3RvclByb3RvdHlwZSwgQllURVNfUEVSX0VMRU1FTlQsIEJZVEVTKTtcbiAgICB9XG5cbiAgICBzZXRTcGVjaWVzKENPTlNUUlVDVE9SX05BTUUpO1xuICB9O1xufSBlbHNlIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuIiwiLyogZXNsaW50LWRpc2FibGUgbm8tbmV3ICovXG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY2hlY2tDb3JyZWN0bmVzc09mSXRlcmF0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NoZWNrLWNvcnJlY3RuZXNzLW9mLWl0ZXJhdGlvbicpO1xudmFyIE5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpLk5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1M7XG5cbnZhciBBcnJheUJ1ZmZlciA9IGdsb2JhbC5BcnJheUJ1ZmZlcjtcbnZhciBJbnQ4QXJyYXkgPSBnbG9iYWwuSW50OEFycmF5O1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFOQVRJVkVfQVJSQVlfQlVGRkVSX1ZJRVdTIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIEludDhBcnJheSgxKTtcbn0pIHx8ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIG5ldyBJbnQ4QXJyYXkoLTEpO1xufSkgfHwgIWNoZWNrQ29ycmVjdG5lc3NPZkl0ZXJhdGlvbihmdW5jdGlvbiAoaXRlcmFibGUpIHtcbiAgbmV3IEludDhBcnJheSgpO1xuICBuZXcgSW50OEFycmF5KG51bGwpO1xuICBuZXcgSW50OEFycmF5KDEuNSk7XG4gIG5ldyBJbnQ4QXJyYXkoaXRlcmFibGUpO1xufSwgdHJ1ZSkgfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBTYWZhcmkgKDExKykgYnVnIC0gYSByZWFzb24gd2h5IGV2ZW4gU2FmYXJpIDEzIHNob3VsZCBsb2FkIGEgdHlwZWQgYXJyYXkgcG9seWZpbGxcbiAgcmV0dXJuIG5ldyBJbnQ4QXJyYXkobmV3IEFycmF5QnVmZmVyKDIpLCAxLCB1bmRlZmluZWQpLmxlbmd0aCAhPT0gMTtcbn0pO1xuIiwidmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIGdldEl0ZXJhdG9yTWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1pdGVyYXRvci1tZXRob2QnKTtcbnZhciBpc0FycmF5SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXktaXRlcmF0b3ItbWV0aG9kJyk7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQnKTtcbnZhciBhVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGZyb20oc291cmNlIC8qICwgbWFwZm4sIHRoaXNBcmcgKi8pIHtcbiAgdmFyIE8gPSB0b09iamVjdChzb3VyY2UpO1xuICB2YXIgYXJndW1lbnRzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgdmFyIG1hcGZuID0gYXJndW1lbnRzTGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiAgdmFyIG1hcHBpbmcgPSBtYXBmbiAhPT0gdW5kZWZpbmVkO1xuICB2YXIgaXRlcmF0b3JNZXRob2QgPSBnZXRJdGVyYXRvck1ldGhvZChPKTtcbiAgdmFyIGksIGxlbmd0aCwgcmVzdWx0LCBzdGVwLCBpdGVyYXRvciwgbmV4dDtcbiAgaWYgKGl0ZXJhdG9yTWV0aG9kICE9IHVuZGVmaW5lZCAmJiAhaXNBcnJheUl0ZXJhdG9yTWV0aG9kKGl0ZXJhdG9yTWV0aG9kKSkge1xuICAgIGl0ZXJhdG9yID0gaXRlcmF0b3JNZXRob2QuY2FsbChPKTtcbiAgICBuZXh0ID0gaXRlcmF0b3IubmV4dDtcbiAgICBPID0gW107XG4gICAgd2hpbGUgKCEoc3RlcCA9IG5leHQuY2FsbChpdGVyYXRvcikpLmRvbmUpIHtcbiAgICAgIE8ucHVzaChzdGVwLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgaWYgKG1hcHBpbmcgJiYgYXJndW1lbnRzTGVuZ3RoID4gMikge1xuICAgIG1hcGZuID0gYmluZChtYXBmbiwgYXJndW1lbnRzWzJdLCAyKTtcbiAgfVxuICBsZW5ndGggPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gIHJlc3VsdCA9IG5ldyAoYVR5cGVkQXJyYXlDb25zdHJ1Y3Rvcih0aGlzKSkobGVuZ3RoKTtcbiAgZm9yIChpID0gMDsgbGVuZ3RoID4gaTsgaSsrKSB7XG4gICAgcmVzdWx0W2ldID0gbWFwcGluZyA/IG1hcGZuKE9baV0sIGkpIDogT1tpXTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsInZhciBpZCA9IDA7XG52YXIgcG9zdGZpeCA9IE1hdGgucmFuZG9tKCk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnICsgU3RyaW5nKGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXkpICsgJylfJyArICgrK2lkICsgcG9zdGZpeCkudG9TdHJpbmcoMzYpO1xufTtcbiIsInZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfU1lNQk9MXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAmJiAhU3ltYm9sLnNoYW1cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT0gJ3N5bWJvbCc7XG4iLCJ2YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbmV4cG9ydHMuZiA9IHdlbGxLbm93blN5bWJvbDtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZCcpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG52YXIgTkFUSVZFX1NZTUJPTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtc3ltYm9sJyk7XG52YXIgVVNFX1NZTUJPTF9BU19VSUQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQnKTtcblxudmFyIFdlbGxLbm93blN5bWJvbHNTdG9yZSA9IHNoYXJlZCgnd2tzJyk7XG52YXIgU3ltYm9sID0gZ2xvYmFsLlN5bWJvbDtcbnZhciBjcmVhdGVXZWxsS25vd25TeW1ib2wgPSBVU0VfU1lNQk9MX0FTX1VJRCA/IFN5bWJvbCA6IFN5bWJvbCAmJiBTeW1ib2wud2l0aG91dFNldHRlciB8fCB1aWQ7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgaWYgKCFoYXMoV2VsbEtub3duU3ltYm9sc1N0b3JlLCBuYW1lKSkge1xuICAgIGlmIChOQVRJVkVfU1lNQk9MICYmIGhhcyhTeW1ib2wsIG5hbWUpKSBXZWxsS25vd25TeW1ib2xzU3RvcmVbbmFtZV0gPSBTeW1ib2xbbmFtZV07XG4gICAgZWxzZSBXZWxsS25vd25TeW1ib2xzU3RvcmVbbmFtZV0gPSBjcmVhdGVXZWxsS25vd25TeW1ib2woJ1N5bWJvbC4nICsgbmFtZSk7XG4gIH0gcmV0dXJuIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXTtcbn07XG4iLCIvLyBhIHN0cmluZyBvZiBhbGwgdmFsaWQgdW5pY29kZSB3aGl0ZXNwYWNlc1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbm1vZHVsZS5leHBvcnRzID0gJ1xcdTAwMDlcXHUwMDBBXFx1MDAwQlxcdTAwMENcXHUwMDBEXFx1MDAyMFxcdTAwQTBcXHUxNjgwXFx1MjAwMFxcdTIwMDFcXHUyMDAyXFx1MjAwM1xcdTIwMDRcXHUyMDA1XFx1MjAwNlxcdTIwMDdcXHUyMDA4XFx1MjAwOVxcdTIwMEFcXHUyMDJGXFx1MjA1RlxcdTMwMDBcXHUyMDI4XFx1MjAyOVxcdUZFRkYnO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGFycmF5QnVmZmVyTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlcicpO1xudmFyIHNldFNwZWNpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXNwZWNpZXMnKTtcblxudmFyIEFSUkFZX0JVRkZFUiA9ICdBcnJheUJ1ZmZlcic7XG52YXIgQXJyYXlCdWZmZXIgPSBhcnJheUJ1ZmZlck1vZHVsZVtBUlJBWV9CVUZGRVJdO1xudmFyIE5hdGl2ZUFycmF5QnVmZmVyID0gZ2xvYmFsW0FSUkFZX0JVRkZFUl07XG5cbi8vIGBBcnJheUJ1ZmZlcmAgY29uc3RydWN0b3Jcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5YnVmZmVyLWNvbnN0cnVjdG9yXG4kKHsgZ2xvYmFsOiB0cnVlLCBmb3JjZWQ6IE5hdGl2ZUFycmF5QnVmZmVyICE9PSBBcnJheUJ1ZmZlciB9LCB7XG4gIEFycmF5QnVmZmVyOiBBcnJheUJ1ZmZlclxufSk7XG5cbnNldFNwZWNpZXMoQVJSQVlfQlVGRkVSKTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xuXG52YXIgTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUyA9IEFycmF5QnVmZmVyVmlld0NvcmUuTkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUztcblxuLy8gYEFycmF5QnVmZmVyLmlzVmlld2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheWJ1ZmZlci5pc3ZpZXdcbiQoeyB0YXJnZXQ6ICdBcnJheUJ1ZmZlcicsIHN0YXQ6IHRydWUsIGZvcmNlZDogIU5BVElWRV9BUlJBWV9CVUZGRVJfVklFV1MgfSwge1xuICBpc1ZpZXc6IEFycmF5QnVmZmVyVmlld0NvcmUuaXNWaWV3XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgQXJyYXlCdWZmZXJNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgc3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NwZWNpZXMtY29uc3RydWN0b3InKTtcblxudmFyIEFycmF5QnVmZmVyID0gQXJyYXlCdWZmZXJNb2R1bGUuQXJyYXlCdWZmZXI7XG52YXIgRGF0YVZpZXcgPSBBcnJheUJ1ZmZlck1vZHVsZS5EYXRhVmlldztcbnZhciBuYXRpdmVBcnJheUJ1ZmZlclNsaWNlID0gQXJyYXlCdWZmZXIucHJvdG90eXBlLnNsaWNlO1xuXG52YXIgSU5DT1JSRUNUX1NMSUNFID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gIW5ldyBBcnJheUJ1ZmZlcigyKS5zbGljZSgxLCB1bmRlZmluZWQpLmJ5dGVMZW5ndGg7XG59KTtcblxuLy8gYEFycmF5QnVmZmVyLnByb3RvdHlwZS5zbGljZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheWJ1ZmZlci5wcm90b3R5cGUuc2xpY2VcbiQoeyB0YXJnZXQ6ICdBcnJheUJ1ZmZlcicsIHByb3RvOiB0cnVlLCB1bnNhZmU6IHRydWUsIGZvcmNlZDogSU5DT1JSRUNUX1NMSUNFIH0sIHtcbiAgc2xpY2U6IGZ1bmN0aW9uIHNsaWNlKHN0YXJ0LCBlbmQpIHtcbiAgICBpZiAobmF0aXZlQXJyYXlCdWZmZXJTbGljZSAhPT0gdW5kZWZpbmVkICYmIGVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbmF0aXZlQXJyYXlCdWZmZXJTbGljZS5jYWxsKGFuT2JqZWN0KHRoaXMpLCBzdGFydCk7IC8vIEZGIGZpeFxuICAgIH1cbiAgICB2YXIgbGVuZ3RoID0gYW5PYmplY3QodGhpcykuYnl0ZUxlbmd0aDtcbiAgICB2YXIgZmlyc3QgPSB0b0Fic29sdXRlSW5kZXgoc3RhcnQsIGxlbmd0aCk7XG4gICAgdmFyIGZpbiA9IHRvQWJzb2x1dGVJbmRleChlbmQgPT09IHVuZGVmaW5lZCA/IGxlbmd0aCA6IGVuZCwgbGVuZ3RoKTtcbiAgICB2YXIgcmVzdWx0ID0gbmV3IChzcGVjaWVzQ29uc3RydWN0b3IodGhpcywgQXJyYXlCdWZmZXIpKSh0b0xlbmd0aChmaW4gLSBmaXJzdCkpO1xuICAgIHZhciB2aWV3U291cmNlID0gbmV3IERhdGFWaWV3KHRoaXMpO1xuICAgIHZhciB2aWV3VGFyZ2V0ID0gbmV3IERhdGFWaWV3KHJlc3VsdCk7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB3aGlsZSAoZmlyc3QgPCBmaW4pIHtcbiAgICAgIHZpZXdUYXJnZXQuc2V0VWludDgoaW5kZXgrKywgdmlld1NvdXJjZS5nZXRVaW50OChmaXJzdCsrKSk7XG4gICAgfSByZXR1cm4gcmVzdWx0O1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheScpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIGNyZWF0ZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eScpO1xudmFyIGFycmF5U3BlY2llc0NyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNyZWF0ZScpO1xudmFyIGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBWOF9WRVJTSU9OID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS12OC12ZXJzaW9uJyk7XG5cbnZhciBJU19DT05DQVRfU1BSRUFEQUJMRSA9IHdlbGxLbm93blN5bWJvbCgnaXNDb25jYXRTcHJlYWRhYmxlJyk7XG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IDB4MUZGRkZGRkZGRkZGRkY7XG52YXIgTUFYSU1VTV9BTExPV0VEX0lOREVYX0VYQ0VFREVEID0gJ01heGltdW0gYWxsb3dlZCBpbmRleCBleGNlZWRlZCc7XG5cbi8vIFdlIGNhbid0IHVzZSB0aGlzIGZlYXR1cmUgZGV0ZWN0aW9uIGluIFY4IHNpbmNlIGl0IGNhdXNlc1xuLy8gZGVvcHRpbWl6YXRpb24gYW5kIHNlcmlvdXMgcGVyZm9ybWFuY2UgZGVncmFkYXRpb25cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy82NzlcbnZhciBJU19DT05DQVRfU1BSRUFEQUJMRV9TVVBQT1JUID0gVjhfVkVSU0lPTiA+PSA1MSB8fCAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgYXJyYXkgPSBbXTtcbiAgYXJyYXlbSVNfQ09OQ0FUX1NQUkVBREFCTEVdID0gZmFsc2U7XG4gIHJldHVybiBhcnJheS5jb25jYXQoKVswXSAhPT0gYXJyYXk7XG59KTtcblxudmFyIFNQRUNJRVNfU1VQUE9SVCA9IGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQoJ2NvbmNhdCcpO1xuXG52YXIgaXNDb25jYXRTcHJlYWRhYmxlID0gZnVuY3Rpb24gKE8pIHtcbiAgaWYgKCFpc09iamVjdChPKSkgcmV0dXJuIGZhbHNlO1xuICB2YXIgc3ByZWFkYWJsZSA9IE9bSVNfQ09OQ0FUX1NQUkVBREFCTEVdO1xuICByZXR1cm4gc3ByZWFkYWJsZSAhPT0gdW5kZWZpbmVkID8gISFzcHJlYWRhYmxlIDogaXNBcnJheShPKTtcbn07XG5cbnZhciBGT1JDRUQgPSAhSVNfQ09OQ0FUX1NQUkVBREFCTEVfU1VQUE9SVCB8fCAhU1BFQ0lFU19TVVBQT1JUO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmNvbmNhdGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuY29uY2F0XG4vLyB3aXRoIGFkZGluZyBzdXBwb3J0IG9mIEBAaXNDb25jYXRTcHJlYWRhYmxlIGFuZCBAQHNwZWNpZXNcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCB9LCB7XG4gIGNvbmNhdDogZnVuY3Rpb24gY29uY2F0KGFyZykgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgdmFyIE8gPSB0b09iamVjdCh0aGlzKTtcbiAgICB2YXIgQSA9IGFycmF5U3BlY2llc0NyZWF0ZShPLCAwKTtcbiAgICB2YXIgbiA9IDA7XG4gICAgdmFyIGksIGssIGxlbmd0aCwgbGVuLCBFO1xuICAgIGZvciAoaSA9IC0xLCBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIEUgPSBpID09PSAtMSA/IE8gOiBhcmd1bWVudHNbaV07XG4gICAgICBpZiAoaXNDb25jYXRTcHJlYWRhYmxlKEUpKSB7XG4gICAgICAgIGxlbiA9IHRvTGVuZ3RoKEUubGVuZ3RoKTtcbiAgICAgICAgaWYgKG4gKyBsZW4gPiBNQVhfU0FGRV9JTlRFR0VSKSB0aHJvdyBUeXBlRXJyb3IoTUFYSU1VTV9BTExPV0VEX0lOREVYX0VYQ0VFREVEKTtcbiAgICAgICAgZm9yIChrID0gMDsgayA8IGxlbjsgaysrLCBuKyspIGlmIChrIGluIEUpIGNyZWF0ZVByb3BlcnR5KEEsIG4sIEVba10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKG4gPj0gTUFYX1NBRkVfSU5URUdFUikgdGhyb3cgVHlwZUVycm9yKE1BWElNVU1fQUxMT1dFRF9JTkRFWF9FWENFRURFRCk7XG4gICAgICAgIGNyZWF0ZVByb3BlcnR5KEEsIG4rKywgRSk7XG4gICAgICB9XG4gICAgfVxuICAgIEEubGVuZ3RoID0gbjtcbiAgICByZXR1cm4gQTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBjb3B5V2l0aGluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWNvcHktd2l0aGluJyk7XG52YXIgYWRkVG9VbnNjb3BhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hZGQtdG8tdW5zY29wYWJsZXMnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5jb3B5d2l0aGluXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSB9LCB7XG4gIGNvcHlXaXRoaW46IGNvcHlXaXRoaW5cbn0pO1xuXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUtQEB1bnNjb3BhYmxlc1xuYWRkVG9VbnNjb3BhYmxlcygnY29weVdpdGhpbicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJGV2ZXJ5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmV2ZXJ5O1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xudmFyIGFycmF5TWV0aG9kVXNlc1RvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC11c2VzLXRvLWxlbmd0aCcpO1xuXG52YXIgU1RSSUNUX01FVEhPRCA9IGFycmF5TWV0aG9kSXNTdHJpY3QoJ2V2ZXJ5Jyk7XG52YXIgVVNFU19UT19MRU5HVEggPSBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCgnZXZlcnknKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5ldmVyeWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZXZlcnlcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6ICFTVFJJQ1RfTUVUSE9EIHx8ICFVU0VTX1RPX0xFTkdUSCB9LCB7XG4gIGV2ZXJ5OiBmdW5jdGlvbiBldmVyeShjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkZXZlcnkodGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZpbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktZmlsbCcpO1xudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuZmlsbGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmlsbFxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUgfSwge1xuICBmaWxsOiBmaWxsXG59KTtcblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLUBAdW5zY29wYWJsZXNcbmFkZFRvVW5zY29wYWJsZXMoJ2ZpbGwnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRmaWx0ZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZmlsdGVyO1xudmFyIGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQnKTtcbnZhciBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtdXNlcy10by1sZW5ndGgnKTtcblxudmFyIEhBU19TUEVDSUVTX1NVUFBPUlQgPSBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0KCdmaWx0ZXInKTtcbi8vIEVkZ2UgMTQtIGlzc3VlXG52YXIgVVNFU19UT19MRU5HVEggPSBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCgnZmlsdGVyJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuZmlsdGVyYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maWx0ZXJcbi8vIHdpdGggYWRkaW5nIHN1cHBvcnQgb2YgQEBzcGVjaWVzXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhSEFTX1NQRUNJRVNfU1VQUE9SVCB8fCAhVVNFU19UT19MRU5HVEggfSwge1xuICBmaWx0ZXI6IGZ1bmN0aW9uIGZpbHRlcihjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkZmlsdGVyKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkZmluZEluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZpbmRJbmRleDtcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkZC10by11bnNjb3BhYmxlcycpO1xudmFyIGFycmF5TWV0aG9kVXNlc1RvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC11c2VzLXRvLWxlbmd0aCcpO1xuXG52YXIgRklORF9JTkRFWCA9ICdmaW5kSW5kZXgnO1xudmFyIFNLSVBTX0hPTEVTID0gdHJ1ZTtcblxudmFyIFVTRVNfVE9fTEVOR1RIID0gYXJyYXlNZXRob2RVc2VzVG9MZW5ndGgoRklORF9JTkRFWCk7XG5cbi8vIFNob3VsZG4ndCBza2lwIGhvbGVzXG5pZiAoRklORF9JTkRFWCBpbiBbXSkgQXJyYXkoMSlbRklORF9JTkRFWF0oZnVuY3Rpb24gKCkgeyBTS0lQU19IT0xFUyA9IGZhbHNlOyB9KTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbmRpbmRleFxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogU0tJUFNfSE9MRVMgfHwgIVVTRVNfVE9fTEVOR1RIIH0sIHtcbiAgZmluZEluZGV4OiBmdW5jdGlvbiBmaW5kSW5kZXgoY2FsbGJhY2tmbiAvKiAsIHRoYXQgPSB1bmRlZmluZWQgKi8pIHtcbiAgICByZXR1cm4gJGZpbmRJbmRleCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUtQEB1bnNjb3BhYmxlc1xuYWRkVG9VbnNjb3BhYmxlcyhGSU5EX0lOREVYKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRmaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZpbmQ7XG52YXIgYWRkVG9VbnNjb3BhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hZGQtdG8tdW5zY29wYWJsZXMnKTtcbnZhciBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtdXNlcy10by1sZW5ndGgnKTtcblxudmFyIEZJTkQgPSAnZmluZCc7XG52YXIgU0tJUFNfSE9MRVMgPSB0cnVlO1xuXG52YXIgVVNFU19UT19MRU5HVEggPSBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aChGSU5EKTtcblxuLy8gU2hvdWxkbid0IHNraXAgaG9sZXNcbmlmIChGSU5EIGluIFtdKSBBcnJheSgxKVtGSU5EXShmdW5jdGlvbiAoKSB7IFNLSVBTX0hPTEVTID0gZmFsc2U7IH0pO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZpbmRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbmRcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IFNLSVBTX0hPTEVTIHx8ICFVU0VTX1RPX0xFTkdUSCB9LCB7XG4gIGZpbmQ6IGZ1bmN0aW9uIGZpbmQoY2FsbGJhY2tmbiAvKiAsIHRoYXQgPSB1bmRlZmluZWQgKi8pIHtcbiAgICByZXR1cm4gJGZpbmQodGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICB9XG59KTtcblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLUBAdW5zY29wYWJsZXNcbmFkZFRvVW5zY29wYWJsZXMoRklORCk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmbGF0dGVuSW50b0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZsYXR0ZW4taW50by1hcnJheScpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYXJyYXlTcGVjaWVzQ3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuZmxhdE1hcGAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1mbGF0TWFwXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSB9LCB7XG4gIGZsYXRNYXA6IGZ1bmN0aW9uIGZsYXRNYXAoY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICB2YXIgTyA9IHRvT2JqZWN0KHRoaXMpO1xuICAgIHZhciBzb3VyY2VMZW4gPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgdmFyIEE7XG4gICAgYUZ1bmN0aW9uKGNhbGxiYWNrZm4pO1xuICAgIEEgPSBhcnJheVNwZWNpZXNDcmVhdGUoTywgMCk7XG4gICAgQS5sZW5ndGggPSBmbGF0dGVuSW50b0FycmF5KEEsIE8sIE8sIHNvdXJjZUxlbiwgMCwgMSwgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICAgIHJldHVybiBBO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZsYXR0ZW5JbnRvQXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmxhdHRlbi1pbnRvLWFycmF5Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcbnZhciBhcnJheVNwZWNpZXNDcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jcmVhdGUnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5mbGF0YCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWZsYXRNYXBcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlIH0sIHtcbiAgZmxhdDogZnVuY3Rpb24gZmxhdCgvKiBkZXB0aEFyZyA9IDEgKi8pIHtcbiAgICB2YXIgZGVwdGhBcmcgPSBhcmd1bWVudHMubGVuZ3RoID8gYXJndW1lbnRzWzBdIDogdW5kZWZpbmVkO1xuICAgIHZhciBPID0gdG9PYmplY3QodGhpcyk7XG4gICAgdmFyIHNvdXJjZUxlbiA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgQSA9IGFycmF5U3BlY2llc0NyZWF0ZShPLCAwKTtcbiAgICBBLmxlbmd0aCA9IGZsYXR0ZW5JbnRvQXJyYXkoQSwgTywgTywgc291cmNlTGVuLCAwLCBkZXB0aEFyZyA9PT0gdW5kZWZpbmVkID8gMSA6IHRvSW50ZWdlcihkZXB0aEFyZykpO1xuICAgIHJldHVybiBBO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZvckVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktZm9yLWVhY2gnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5mb3JlYWNoXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBbXS5mb3JFYWNoICE9IGZvckVhY2ggfSwge1xuICBmb3JFYWNoOiBmb3JFYWNoXG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZyb20gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktZnJvbScpO1xudmFyIGNoZWNrQ29ycmVjdG5lc3NPZkl0ZXJhdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jaGVjay1jb3JyZWN0bmVzcy1vZi1pdGVyYXRpb24nKTtcblxudmFyIElOQ09SUkVDVF9JVEVSQVRJT04gPSAhY2hlY2tDb3JyZWN0bmVzc09mSXRlcmF0aW9uKGZ1bmN0aW9uIChpdGVyYWJsZSkge1xuICBBcnJheS5mcm9tKGl0ZXJhYmxlKTtcbn0pO1xuXG4vLyBgQXJyYXkuZnJvbWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5mcm9tXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IElOQ09SUkVDVF9JVEVSQVRJT04gfSwge1xuICBmcm9tOiBmcm9tXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRpbmNsdWRlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pbmNsdWRlcycpLmluY2x1ZGVzO1xudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzJyk7XG52YXIgYXJyYXlNZXRob2RVc2VzVG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLXVzZXMtdG8tbGVuZ3RoJyk7XG5cbnZhciBVU0VTX1RPX0xFTkdUSCA9IGFycmF5TWV0aG9kVXNlc1RvTGVuZ3RoKCdpbmRleE9mJywgeyBBQ0NFU1NPUlM6IHRydWUsIDE6IDAgfSk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuaW5jbHVkZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmluY2x1ZGVzXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhVVNFU19UT19MRU5HVEggfSwge1xuICBpbmNsdWRlczogZnVuY3Rpb24gaW5jbHVkZXMoZWwgLyogLCBmcm9tSW5kZXggPSAwICovKSB7XG4gICAgcmV0dXJuICRpbmNsdWRlcyh0aGlzLCBlbCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICB9XG59KTtcblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLUBAdW5zY29wYWJsZXNcbmFkZFRvVW5zY29wYWJsZXMoJ2luY2x1ZGVzJyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkaW5kZXhPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pbmNsdWRlcycpLmluZGV4T2Y7XG52YXIgYXJyYXlNZXRob2RJc1N0cmljdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaXMtc3RyaWN0Jyk7XG52YXIgYXJyYXlNZXRob2RVc2VzVG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLXVzZXMtdG8tbGVuZ3RoJyk7XG5cbnZhciBuYXRpdmVJbmRleE9mID0gW10uaW5kZXhPZjtcblxudmFyIE5FR0FUSVZFX1pFUk8gPSAhIW5hdGl2ZUluZGV4T2YgJiYgMSAvIFsxXS5pbmRleE9mKDEsIC0wKSA8IDA7XG52YXIgU1RSSUNUX01FVEhPRCA9IGFycmF5TWV0aG9kSXNTdHJpY3QoJ2luZGV4T2YnKTtcbnZhciBVU0VTX1RPX0xFTkdUSCA9IGFycmF5TWV0aG9kVXNlc1RvTGVuZ3RoKCdpbmRleE9mJywgeyBBQ0NFU1NPUlM6IHRydWUsIDE6IDAgfSk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuaW5kZXhPZmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5kZXhvZlxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogTkVHQVRJVkVfWkVSTyB8fCAhU1RSSUNUX01FVEhPRCB8fCAhVVNFU19UT19MRU5HVEggfSwge1xuICBpbmRleE9mOiBmdW5jdGlvbiBpbmRleE9mKHNlYXJjaEVsZW1lbnQgLyogLCBmcm9tSW5kZXggPSAwICovKSB7XG4gICAgcmV0dXJuIE5FR0FUSVZFX1pFUk9cbiAgICAgIC8vIGNvbnZlcnQgLTAgdG8gKzBcbiAgICAgID8gbmF0aXZlSW5kZXhPZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IDBcbiAgICAgIDogJGluZGV4T2YodGhpcywgc2VhcmNoRWxlbWVudCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXknKTtcblxuLy8gYEFycmF5LmlzQXJyYXlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkuaXNhcnJheVxuJCh7IHRhcmdldDogJ0FycmF5Jywgc3RhdDogdHJ1ZSB9LCB7XG4gIGlzQXJyYXk6IGlzQXJyYXlcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycycpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcbnZhciBkZWZpbmVJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtaXRlcmF0b3InKTtcblxudmFyIEFSUkFZX0lURVJBVE9SID0gJ0FycmF5IEl0ZXJhdG9yJztcbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKEFSUkFZX0lURVJBVE9SKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5lbnRyaWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5lbnRyaWVzXG4vLyBgQXJyYXkucHJvdG90eXBlLmtleXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmtleXNcbi8vIGBBcnJheS5wcm90b3R5cGUudmFsdWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS52YWx1ZXNcbi8vIGBBcnJheS5wcm90b3R5cGVbQEBpdGVyYXRvcl1gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLUBAaXRlcmF0b3Jcbi8vIGBDcmVhdGVBcnJheUl0ZXJhdG9yYCBpbnRlcm5hbCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWNyZWF0ZWFycmF5aXRlcmF0b3Jcbm1vZHVsZS5leHBvcnRzID0gZGVmaW5lSXRlcmF0b3IoQXJyYXksICdBcnJheScsIGZ1bmN0aW9uIChpdGVyYXRlZCwga2luZCkge1xuICBzZXRJbnRlcm5hbFN0YXRlKHRoaXMsIHtcbiAgICB0eXBlOiBBUlJBWV9JVEVSQVRPUixcbiAgICB0YXJnZXQ6IHRvSW5kZXhlZE9iamVjdChpdGVyYXRlZCksIC8vIHRhcmdldFxuICAgIGluZGV4OiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuICAgIGtpbmQ6IGtpbmQgICAgICAgICAgICAgICAgICAgICAgICAgLy8ga2luZFxuICB9KTtcbi8vIGAlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUubmV4dGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy0lYXJyYXlpdGVyYXRvcnByb3RvdHlwZSUubmV4dFxufSwgZnVuY3Rpb24gKCkge1xuICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpO1xuICB2YXIgdGFyZ2V0ID0gc3RhdGUudGFyZ2V0O1xuICB2YXIga2luZCA9IHN0YXRlLmtpbmQ7XG4gIHZhciBpbmRleCA9IHN0YXRlLmluZGV4Kys7XG4gIGlmICghdGFyZ2V0IHx8IGluZGV4ID49IHRhcmdldC5sZW5ndGgpIHtcbiAgICBzdGF0ZS50YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9O1xuICB9XG4gIGlmIChraW5kID09ICdrZXlzJykgcmV0dXJuIHsgdmFsdWU6IGluZGV4LCBkb25lOiBmYWxzZSB9O1xuICBpZiAoa2luZCA9PSAndmFsdWVzJykgcmV0dXJuIHsgdmFsdWU6IHRhcmdldFtpbmRleF0sIGRvbmU6IGZhbHNlIH07XG4gIHJldHVybiB7IHZhbHVlOiBbaW5kZXgsIHRhcmdldFtpbmRleF1dLCBkb25lOiBmYWxzZSB9O1xufSwgJ3ZhbHVlcycpO1xuXG4vLyBhcmd1bWVudHNMaXN0W0BAaXRlcmF0b3JdIGlzICVBcnJheVByb3RvX3ZhbHVlcyVcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWNyZWF0ZXVubWFwcGVkYXJndW1lbnRzb2JqZWN0XG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1jcmVhdGVtYXBwZWRhcmd1bWVudHNvYmplY3Rcbkl0ZXJhdG9ycy5Bcmd1bWVudHMgPSBJdGVyYXRvcnMuQXJyYXk7XG5cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5hZGRUb1Vuc2NvcGFibGVzKCdrZXlzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCd2YWx1ZXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ2VudHJpZXMnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIEluZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBhcnJheU1ldGhvZElzU3RyaWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QnKTtcblxudmFyIG5hdGl2ZUpvaW4gPSBbXS5qb2luO1xuXG52YXIgRVMzX1NUUklOR1MgPSBJbmRleGVkT2JqZWN0ICE9IE9iamVjdDtcbnZhciBTVFJJQ1RfTUVUSE9EID0gYXJyYXlNZXRob2RJc1N0cmljdCgnam9pbicsICcsJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuam9pbmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuam9pblxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogRVMzX1NUUklOR1MgfHwgIVNUUklDVF9NRVRIT0QgfSwge1xuICBqb2luOiBmdW5jdGlvbiBqb2luKHNlcGFyYXRvcikge1xuICAgIHJldHVybiBuYXRpdmVKb2luLmNhbGwodG9JbmRleGVkT2JqZWN0KHRoaXMpLCBzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCA/ICcsJyA6IHNlcGFyYXRvcik7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgbGFzdEluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbGFzdC1pbmRleC1vZicpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5sYXN0aW5kZXhvZlxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogbGFzdEluZGV4T2YgIT09IFtdLmxhc3RJbmRleE9mIH0sIHtcbiAgbGFzdEluZGV4T2Y6IGxhc3RJbmRleE9mXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRtYXAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykubWFwO1xudmFyIGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQnKTtcbnZhciBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtdXNlcy10by1sZW5ndGgnKTtcblxudmFyIEhBU19TUEVDSUVTX1NVUFBPUlQgPSBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0KCdtYXAnKTtcbi8vIEZGNDktIGlzc3VlXG52YXIgVVNFU19UT19MRU5HVEggPSBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCgnbWFwJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUubWFwYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5tYXBcbi8vIHdpdGggYWRkaW5nIHN1cHBvcnQgb2YgQEBzcGVjaWVzXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhSEFTX1NQRUNJRVNfU1VQUE9SVCB8fCAhVVNFU19UT19MRU5HVEggfSwge1xuICBtYXA6IGZ1bmN0aW9uIG1hcChjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkbWFwKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGNyZWF0ZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eScpO1xuXG52YXIgSVNOVF9HRU5FUklDID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBGKCkgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiAhKEFycmF5Lm9mLmNhbGwoRikgaW5zdGFuY2VvZiBGKTtcbn0pO1xuXG4vLyBgQXJyYXkub2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkub2Zcbi8vIFdlYktpdCBBcnJheS5vZiBpc24ndCBnZW5lcmljXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IElTTlRfR0VORVJJQyB9LCB7XG4gIG9mOiBmdW5jdGlvbiBvZigvKiAuLi5hcmdzICovKSB7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICB2YXIgYXJndW1lbnRzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgcmVzdWx0ID0gbmV3ICh0eXBlb2YgdGhpcyA9PSAnZnVuY3Rpb24nID8gdGhpcyA6IEFycmF5KShhcmd1bWVudHNMZW5ndGgpO1xuICAgIHdoaWxlIChhcmd1bWVudHNMZW5ndGggPiBpbmRleCkgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBpbmRleCwgYXJndW1lbnRzW2luZGV4KytdKTtcbiAgICByZXN1bHQubGVuZ3RoID0gYXJndW1lbnRzTGVuZ3RoO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJHJlZHVjZVJpZ2h0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXJlZHVjZScpLnJpZ2h0O1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xudmFyIGFycmF5TWV0aG9kVXNlc1RvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC11c2VzLXRvLWxlbmd0aCcpO1xuXG52YXIgU1RSSUNUX01FVEhPRCA9IGFycmF5TWV0aG9kSXNTdHJpY3QoJ3JlZHVjZVJpZ2h0Jyk7XG4vLyBGb3IgcHJldmVudGluZyBwb3NzaWJsZSBhbG1vc3QgaW5maW5pdGUgbG9vcCBpbiBub24tc3RhbmRhcmQgaW1wbGVtZW50YXRpb25zLCB0ZXN0IHRoZSBmb3J3YXJkIHZlcnNpb24gb2YgdGhlIG1ldGhvZFxudmFyIFVTRVNfVE9fTEVOR1RIID0gYXJyYXlNZXRob2RVc2VzVG9MZW5ndGgoJ3JlZHVjZScsIHsgMTogMCB9KTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5yZWR1Y2VSaWdodGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUucmVkdWNlcmlnaHRcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6ICFTVFJJQ1RfTUVUSE9EIHx8ICFVU0VTX1RPX0xFTkdUSCB9LCB7XG4gIHJlZHVjZVJpZ2h0OiBmdW5jdGlvbiByZWR1Y2VSaWdodChjYWxsYmFja2ZuIC8qICwgaW5pdGlhbFZhbHVlICovKSB7XG4gICAgcmV0dXJuICRyZWR1Y2VSaWdodCh0aGlzLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJHJlZHVjZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1yZWR1Y2UnKS5sZWZ0O1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xudmFyIGFycmF5TWV0aG9kVXNlc1RvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC11c2VzLXRvLWxlbmd0aCcpO1xuXG52YXIgU1RSSUNUX01FVEhPRCA9IGFycmF5TWV0aG9kSXNTdHJpY3QoJ3JlZHVjZScpO1xudmFyIFVTRVNfVE9fTEVOR1RIID0gYXJyYXlNZXRob2RVc2VzVG9MZW5ndGgoJ3JlZHVjZScsIHsgMTogMCB9KTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5yZWR1Y2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnJlZHVjZVxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogIVNUUklDVF9NRVRIT0QgfHwgIVVTRVNfVE9fTEVOR1RIIH0sIHtcbiAgcmVkdWNlOiBmdW5jdGlvbiByZWR1Y2UoY2FsbGJhY2tmbiAvKiAsIGluaXRpYWxWYWx1ZSAqLykge1xuICAgIHJldHVybiAkcmVkdWNlKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG5cbnZhciBuYXRpdmVSZXZlcnNlID0gW10ucmV2ZXJzZTtcbnZhciB0ZXN0ID0gWzEsIDJdO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnJldmVyc2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnJldmVyc2Vcbi8vIGZpeCBmb3IgU2FmYXJpIDEyLjAgYnVnXG4vLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4Nzk0XG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBTdHJpbmcodGVzdCkgPT09IFN0cmluZyh0ZXN0LnJldmVyc2UoKSkgfSwge1xuICByZXZlcnNlOiBmdW5jdGlvbiByZXZlcnNlKCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWFzc2lnblxuICAgIGlmIChpc0FycmF5KHRoaXMpKSB0aGlzLmxlbmd0aCA9IHRoaXMubGVuZ3RoO1xuICAgIHJldHVybiBuYXRpdmVSZXZlcnNlLmNhbGwodGhpcyk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheScpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGNyZWF0ZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQnKTtcbnZhciBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtdXNlcy10by1sZW5ndGgnKTtcblxudmFyIEhBU19TUEVDSUVTX1NVUFBPUlQgPSBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0KCdzbGljZScpO1xudmFyIFVTRVNfVE9fTEVOR1RIID0gYXJyYXlNZXRob2RVc2VzVG9MZW5ndGgoJ3NsaWNlJywgeyBBQ0NFU1NPUlM6IHRydWUsIDA6IDAsIDE6IDIgfSk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG52YXIgbmF0aXZlU2xpY2UgPSBbXS5zbGljZTtcbnZhciBtYXggPSBNYXRoLm1heDtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5zbGljZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuc2xpY2Vcbi8vIGZhbGxiYWNrIGZvciBub3QgYXJyYXktbGlrZSBFUzMgc3RyaW5ncyBhbmQgRE9NIG9iamVjdHNcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6ICFIQVNfU1BFQ0lFU19TVVBQT1JUIHx8ICFVU0VTX1RPX0xFTkdUSCB9LCB7XG4gIHNsaWNlOiBmdW5jdGlvbiBzbGljZShzdGFydCwgZW5kKSB7XG4gICAgdmFyIE8gPSB0b0luZGV4ZWRPYmplY3QodGhpcyk7XG4gICAgdmFyIGxlbmd0aCA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICB2YXIgayA9IHRvQWJzb2x1dGVJbmRleChzdGFydCwgbGVuZ3RoKTtcbiAgICB2YXIgZmluID0gdG9BYnNvbHV0ZUluZGV4KGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogZW5kLCBsZW5ndGgpO1xuICAgIC8vIGlubGluZSBgQXJyYXlTcGVjaWVzQ3JlYXRlYCBmb3IgdXNhZ2UgbmF0aXZlIGBBcnJheSNzbGljZWAgd2hlcmUgaXQncyBwb3NzaWJsZVxuICAgIHZhciBDb25zdHJ1Y3RvciwgcmVzdWx0LCBuO1xuICAgIGlmIChpc0FycmF5KE8pKSB7XG4gICAgICBDb25zdHJ1Y3RvciA9IE8uY29uc3RydWN0b3I7XG4gICAgICAvLyBjcm9zcy1yZWFsbSBmYWxsYmFja1xuICAgICAgaWYgKHR5cGVvZiBDb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmIChDb25zdHJ1Y3RvciA9PT0gQXJyYXkgfHwgaXNBcnJheShDb25zdHJ1Y3Rvci5wcm90b3R5cGUpKSkge1xuICAgICAgICBDb25zdHJ1Y3RvciA9IHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoQ29uc3RydWN0b3IpKSB7XG4gICAgICAgIENvbnN0cnVjdG9yID0gQ29uc3RydWN0b3JbU1BFQ0lFU107XG4gICAgICAgIGlmIChDb25zdHJ1Y3RvciA9PT0gbnVsbCkgQ29uc3RydWN0b3IgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAoQ29uc3RydWN0b3IgPT09IEFycmF5IHx8IENvbnN0cnVjdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIG5hdGl2ZVNsaWNlLmNhbGwoTywgaywgZmluKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0ID0gbmV3IChDb25zdHJ1Y3RvciA9PT0gdW5kZWZpbmVkID8gQXJyYXkgOiBDb25zdHJ1Y3RvcikobWF4KGZpbiAtIGssIDApKTtcbiAgICBmb3IgKG4gPSAwOyBrIDwgZmluOyBrKyssIG4rKykgaWYgKGsgaW4gTykgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBuLCBPW2tdKTtcbiAgICByZXN1bHQubGVuZ3RoID0gbjtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRzb21lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLnNvbWU7XG52YXIgYXJyYXlNZXRob2RJc1N0cmljdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaXMtc3RyaWN0Jyk7XG52YXIgYXJyYXlNZXRob2RVc2VzVG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLXVzZXMtdG8tbGVuZ3RoJyk7XG5cbnZhciBTVFJJQ1RfTUVUSE9EID0gYXJyYXlNZXRob2RJc1N0cmljdCgnc29tZScpO1xudmFyIFVTRVNfVE9fTEVOR1RIID0gYXJyYXlNZXRob2RVc2VzVG9MZW5ndGgoJ3NvbWUnKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5zb21lYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5zb21lXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhU1RSSUNUX01FVEhPRCB8fCAhVVNFU19UT19MRU5HVEggfSwge1xuICBzb21lOiBmdW5jdGlvbiBzb21lKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgcmV0dXJuICRzb21lKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgYXJyYXlNZXRob2RJc1N0cmljdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaXMtc3RyaWN0Jyk7XG5cbnZhciB0ZXN0ID0gW107XG52YXIgbmF0aXZlU29ydCA9IHRlc3Quc29ydDtcblxuLy8gSUU4LVxudmFyIEZBSUxTX09OX1VOREVGSU5FRCA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdGVzdC5zb3J0KHVuZGVmaW5lZCk7XG59KTtcbi8vIFY4IGJ1Z1xudmFyIEZBSUxTX09OX05VTEwgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHRlc3Quc29ydChudWxsKTtcbn0pO1xuLy8gT2xkIFdlYktpdFxudmFyIFNUUklDVF9NRVRIT0QgPSBhcnJheU1ldGhvZElzU3RyaWN0KCdzb3J0Jyk7XG5cbnZhciBGT1JDRUQgPSBGQUlMU19PTl9VTkRFRklORUQgfHwgIUZBSUxTX09OX05VTEwgfHwgIVNUUklDVF9NRVRIT0Q7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuc29ydGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuc29ydFxuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgc29ydDogZnVuY3Rpb24gc29ydChjb21wYXJlZm4pIHtcbiAgICByZXR1cm4gY29tcGFyZWZuID09PSB1bmRlZmluZWRcbiAgICAgID8gbmF0aXZlU29ydC5jYWxsKHRvT2JqZWN0KHRoaXMpKVxuICAgICAgOiBuYXRpdmVTb3J0LmNhbGwodG9PYmplY3QodGhpcyksIGFGdW5jdGlvbihjb21wYXJlZm4pKTtcbiAgfVxufSk7XG4iLCJ2YXIgc2V0U3BlY2llcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtc3BlY2llcycpO1xuXG4vLyBgQXJyYXlbQEBzcGVjaWVzXWAgZ2V0dGVyXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1nZXQtYXJyYXktQEBzcGVjaWVzXG5zZXRTcGVjaWVzKCdBcnJheScpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBhcnJheVNwZWNpZXNDcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jcmVhdGUnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHknKTtcbnZhciBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1oYXMtc3BlY2llcy1zdXBwb3J0Jyk7XG52YXIgYXJyYXlNZXRob2RVc2VzVG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLXVzZXMtdG8tbGVuZ3RoJyk7XG5cbnZhciBIQVNfU1BFQ0lFU19TVVBQT1JUID0gYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCgnc3BsaWNlJyk7XG52YXIgVVNFU19UT19MRU5HVEggPSBhcnJheU1ldGhvZFVzZXNUb0xlbmd0aCgnc3BsaWNlJywgeyBBQ0NFU1NPUlM6IHRydWUsIDA6IDAsIDE6IDIgfSk7XG5cbnZhciBtYXggPSBNYXRoLm1heDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gMHgxRkZGRkZGRkZGRkZGRjtcbnZhciBNQVhJTVVNX0FMTE9XRURfTEVOR1RIX0VYQ0VFREVEID0gJ01heGltdW0gYWxsb3dlZCBsZW5ndGggZXhjZWVkZWQnO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnNwbGljZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuc3BsaWNlXG4vLyB3aXRoIGFkZGluZyBzdXBwb3J0IG9mIEBAc3BlY2llc1xuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogIUhBU19TUEVDSUVTX1NVUFBPUlQgfHwgIVVTRVNfVE9fTEVOR1RIIH0sIHtcbiAgc3BsaWNlOiBmdW5jdGlvbiBzcGxpY2Uoc3RhcnQsIGRlbGV0ZUNvdW50IC8qICwgLi4uaXRlbXMgKi8pIHtcbiAgICB2YXIgTyA9IHRvT2JqZWN0KHRoaXMpO1xuICAgIHZhciBsZW4gPSB0b0xlbmd0aChPLmxlbmd0aCk7XG4gICAgdmFyIGFjdHVhbFN0YXJ0ID0gdG9BYnNvbHV0ZUluZGV4KHN0YXJ0LCBsZW4pO1xuICAgIHZhciBhcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBpbnNlcnRDb3VudCwgYWN0dWFsRGVsZXRlQ291bnQsIEEsIGssIGZyb20sIHRvO1xuICAgIGlmIChhcmd1bWVudHNMZW5ndGggPT09IDApIHtcbiAgICAgIGluc2VydENvdW50ID0gYWN0dWFsRGVsZXRlQ291bnQgPSAwO1xuICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzTGVuZ3RoID09PSAxKSB7XG4gICAgICBpbnNlcnRDb3VudCA9IDA7XG4gICAgICBhY3R1YWxEZWxldGVDb3VudCA9IGxlbiAtIGFjdHVhbFN0YXJ0O1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnNlcnRDb3VudCA9IGFyZ3VtZW50c0xlbmd0aCAtIDI7XG4gICAgICBhY3R1YWxEZWxldGVDb3VudCA9IG1pbihtYXgodG9JbnRlZ2VyKGRlbGV0ZUNvdW50KSwgMCksIGxlbiAtIGFjdHVhbFN0YXJ0KTtcbiAgICB9XG4gICAgaWYgKGxlbiArIGluc2VydENvdW50IC0gYWN0dWFsRGVsZXRlQ291bnQgPiBNQVhfU0FGRV9JTlRFR0VSKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoTUFYSU1VTV9BTExPV0VEX0xFTkdUSF9FWENFRURFRCk7XG4gICAgfVxuICAgIEEgPSBhcnJheVNwZWNpZXNDcmVhdGUoTywgYWN0dWFsRGVsZXRlQ291bnQpO1xuICAgIGZvciAoayA9IDA7IGsgPCBhY3R1YWxEZWxldGVDb3VudDsgaysrKSB7XG4gICAgICBmcm9tID0gYWN0dWFsU3RhcnQgKyBrO1xuICAgICAgaWYgKGZyb20gaW4gTykgY3JlYXRlUHJvcGVydHkoQSwgaywgT1tmcm9tXSk7XG4gICAgfVxuICAgIEEubGVuZ3RoID0gYWN0dWFsRGVsZXRlQ291bnQ7XG4gICAgaWYgKGluc2VydENvdW50IDwgYWN0dWFsRGVsZXRlQ291bnQpIHtcbiAgICAgIGZvciAoayA9IGFjdHVhbFN0YXJ0OyBrIDwgbGVuIC0gYWN0dWFsRGVsZXRlQ291bnQ7IGsrKykge1xuICAgICAgICBmcm9tID0gayArIGFjdHVhbERlbGV0ZUNvdW50O1xuICAgICAgICB0byA9IGsgKyBpbnNlcnRDb3VudDtcbiAgICAgICAgaWYgKGZyb20gaW4gTykgT1t0b10gPSBPW2Zyb21dO1xuICAgICAgICBlbHNlIGRlbGV0ZSBPW3RvXTtcbiAgICAgIH1cbiAgICAgIGZvciAoayA9IGxlbjsgayA+IGxlbiAtIGFjdHVhbERlbGV0ZUNvdW50ICsgaW5zZXJ0Q291bnQ7IGstLSkgZGVsZXRlIE9bayAtIDFdO1xuICAgIH0gZWxzZSBpZiAoaW5zZXJ0Q291bnQgPiBhY3R1YWxEZWxldGVDb3VudCkge1xuICAgICAgZm9yIChrID0gbGVuIC0gYWN0dWFsRGVsZXRlQ291bnQ7IGsgPiBhY3R1YWxTdGFydDsgay0tKSB7XG4gICAgICAgIGZyb20gPSBrICsgYWN0dWFsRGVsZXRlQ291bnQgLSAxO1xuICAgICAgICB0byA9IGsgKyBpbnNlcnRDb3VudCAtIDE7XG4gICAgICAgIGlmIChmcm9tIGluIE8pIE9bdG9dID0gT1tmcm9tXTtcbiAgICAgICAgZWxzZSBkZWxldGUgT1t0b107XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoayA9IDA7IGsgPCBpbnNlcnRDb3VudDsgaysrKSB7XG4gICAgICBPW2sgKyBhY3R1YWxTdGFydF0gPSBhcmd1bWVudHNbayArIDJdO1xuICAgIH1cbiAgICBPLmxlbmd0aCA9IGxlbiAtIGFjdHVhbERlbGV0ZUNvdW50ICsgaW5zZXJ0Q291bnQ7XG4gICAgcmV0dXJuIEE7XG4gIH1cbn0pO1xuIiwiLy8gdGhpcyBtZXRob2Qgd2FzIGFkZGVkIHRvIHVuc2NvcGFibGVzIGFmdGVyIGltcGxlbWVudGF0aW9uXG4vLyBpbiBwb3B1bGFyIGVuZ2luZXMsIHNvIGl0J3MgbW92ZWQgdG8gYSBzZXBhcmF0ZSBtb2R1bGVcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkZC10by11bnNjb3BhYmxlcycpO1xuXG5hZGRUb1Vuc2NvcGFibGVzKCdmbGF0TWFwJyk7XG4iLCIvLyB0aGlzIG1ldGhvZCB3YXMgYWRkZWQgdG8gdW5zY29wYWJsZXMgYWZ0ZXIgaW1wbGVtZW50YXRpb25cbi8vIGluIHBvcHVsYXIgZW5naW5lcywgc28gaXQncyBtb3ZlZCB0byBhIHNlcGFyYXRlIG1vZHVsZVxudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzJyk7XG5cbmFkZFRvVW5zY29wYWJsZXMoJ2ZsYXQnKTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIEFycmF5QnVmZmVyTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlcicpO1xudmFyIE5BVElWRV9BUlJBWV9CVUZGRVIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLW5hdGl2ZScpO1xuXG4vLyBgRGF0YVZpZXdgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1kYXRhdmlldy1jb25zdHJ1Y3RvclxuJCh7IGdsb2JhbDogdHJ1ZSwgZm9yY2VkOiAhTkFUSVZFX0FSUkFZX0JVRkZFUiB9LCB7XG4gIERhdGFWaWV3OiBBcnJheUJ1ZmZlck1vZHVsZS5EYXRhVmlld1xufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcblxuLy8gYERhdGUubm93YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWRhdGUubm93XG4kKHsgdGFyZ2V0OiAnRGF0ZScsIHN0YXQ6IHRydWUgfSwge1xuICBub3c6IGZ1bmN0aW9uIG5vdygpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdG9JU09TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGF0ZS10by1pc28tc3RyaW5nJyk7XG5cbi8vIGBEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZ2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1kYXRlLnByb3RvdHlwZS50b2lzb3N0cmluZ1xuLy8gUGhhbnRvbUpTIC8gb2xkIFdlYktpdCBoYXMgYSBicm9rZW4gaW1wbGVtZW50YXRpb25zXG4kKHsgdGFyZ2V0OiAnRGF0ZScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IERhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nICE9PSB0b0lTT1N0cmluZyB9LCB7XG4gIHRvSVNPU3RyaW5nOiB0b0lTT1N0cmluZ1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xuXG52YXIgRk9SQ0VEID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IERhdGUoTmFOKS50b0pTT04oKSAhPT0gbnVsbFxuICAgIHx8IERhdGUucHJvdG90eXBlLnRvSlNPTi5jYWxsKHsgdG9JU09TdHJpbmc6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDE7IH0gfSkgIT09IDE7XG59KTtcblxuLy8gYERhdGUucHJvdG90eXBlLnRvSlNPTmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1kYXRlLnByb3RvdHlwZS50b2pzb25cbiQoeyB0YXJnZXQ6ICdEYXRlJywgcHJvdG86IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gIHRvSlNPTjogZnVuY3Rpb24gdG9KU09OKGtleSkge1xuICAgIHZhciBPID0gdG9PYmplY3QodGhpcyk7XG4gICAgdmFyIHB2ID0gdG9QcmltaXRpdmUoTyk7XG4gICAgcmV0dXJuIHR5cGVvZiBwdiA9PSAnbnVtYmVyJyAmJiAhaXNGaW5pdGUocHYpID8gbnVsbCA6IE8udG9JU09TdHJpbmcoKTtcbiAgfVxufSk7XG4iLCJ2YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIGRhdGVUb1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kYXRlLXRvLXByaW1pdGl2ZScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fUFJJTUlUSVZFID0gd2VsbEtub3duU3ltYm9sKCd0b1ByaW1pdGl2ZScpO1xudmFyIERhdGVQcm90b3R5cGUgPSBEYXRlLnByb3RvdHlwZTtcblxuLy8gYERhdGUucHJvdG90eXBlW0BAdG9QcmltaXRpdmVdYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWRhdGUucHJvdG90eXBlLUBAdG9wcmltaXRpdmVcbmlmICghKFRPX1BSSU1JVElWRSBpbiBEYXRlUHJvdG90eXBlKSkge1xuICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoRGF0ZVByb3RvdHlwZSwgVE9fUFJJTUlUSVZFLCBkYXRlVG9QcmltaXRpdmUpO1xufVxuIiwidmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lJyk7XG5cbnZhciBEYXRlUHJvdG90eXBlID0gRGF0ZS5wcm90b3R5cGU7XG52YXIgSU5WQUxJRF9EQVRFID0gJ0ludmFsaWQgRGF0ZSc7XG52YXIgVE9fU1RSSU5HID0gJ3RvU3RyaW5nJztcbnZhciBuYXRpdmVEYXRlVG9TdHJpbmcgPSBEYXRlUHJvdG90eXBlW1RPX1NUUklOR107XG52YXIgZ2V0VGltZSA9IERhdGVQcm90b3R5cGUuZ2V0VGltZTtcblxuLy8gYERhdGUucHJvdG90eXBlLnRvU3RyaW5nYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWRhdGUucHJvdG90eXBlLnRvc3RyaW5nXG5pZiAobmV3IERhdGUoTmFOKSArICcnICE9IElOVkFMSURfREFURSkge1xuICByZWRlZmluZShEYXRlUHJvdG90eXBlLCBUT19TVFJJTkcsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHZhciB2YWx1ZSA9IGdldFRpbWUuY2FsbCh0aGlzKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgcmV0dXJuIHZhbHVlID09PSB2YWx1ZSA/IG5hdGl2ZURhdGVUb1N0cmluZy5jYWxsKHRoaXMpIDogSU5WQUxJRF9EQVRFO1xuICB9KTtcbn1cbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZCcpO1xuXG4vLyBgRnVuY3Rpb24ucHJvdG90eXBlLmJpbmRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtZnVuY3Rpb24ucHJvdG90eXBlLmJpbmRcbiQoeyB0YXJnZXQ6ICdGdW5jdGlvbicsIHByb3RvOiB0cnVlIH0sIHtcbiAgYmluZDogYmluZFxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBIQVNfSU5TVEFOQ0UgPSB3ZWxsS25vd25TeW1ib2woJ2hhc0luc3RhbmNlJyk7XG52YXIgRnVuY3Rpb25Qcm90b3R5cGUgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG5cbi8vIGBGdW5jdGlvbi5wcm90b3R5cGVbQEBoYXNJbnN0YW5jZV1gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtZnVuY3Rpb24ucHJvdG90eXBlLUBAaGFzaW5zdGFuY2VcbmlmICghKEhBU19JTlNUQU5DRSBpbiBGdW5jdGlvblByb3RvdHlwZSkpIHtcbiAgZGVmaW5lUHJvcGVydHlNb2R1bGUuZihGdW5jdGlvblByb3RvdHlwZSwgSEFTX0lOU1RBTkNFLCB7IHZhbHVlOiBmdW5jdGlvbiAoTykge1xuICAgIGlmICh0eXBlb2YgdGhpcyAhPSAnZnVuY3Rpb24nIHx8ICFpc09iamVjdChPKSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICghaXNPYmplY3QodGhpcy5wcm90b3R5cGUpKSByZXR1cm4gTyBpbnN0YW5jZW9mIHRoaXM7XG4gICAgLy8gZm9yIGVudmlyb25tZW50IHcvbyBuYXRpdmUgYEBAaGFzSW5zdGFuY2VgIGxvZ2ljIGVub3VnaCBgaW5zdGFuY2VvZmAsIGJ1dCBhZGQgdGhpczpcbiAgICB3aGlsZSAoTyA9IGdldFByb3RvdHlwZU9mKE8pKSBpZiAodGhpcy5wcm90b3R5cGUgPT09IE8pIHJldHVybiB0cnVlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfSB9KTtcbn1cbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xuXG52YXIgRnVuY3Rpb25Qcm90b3R5cGUgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG52YXIgRnVuY3Rpb25Qcm90b3R5cGVUb1N0cmluZyA9IEZ1bmN0aW9uUHJvdG90eXBlLnRvU3RyaW5nO1xudmFyIG5hbWVSRSA9IC9eXFxzKmZ1bmN0aW9uIChbXiAoXSopLztcbnZhciBOQU1FID0gJ25hbWUnO1xuXG4vLyBGdW5jdGlvbiBpbnN0YW5jZXMgYC5uYW1lYCBwcm9wZXJ0eVxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtZnVuY3Rpb24taW5zdGFuY2VzLW5hbWVcbmlmIChERVNDUklQVE9SUyAmJiAhKE5BTUUgaW4gRnVuY3Rpb25Qcm90b3R5cGUpKSB7XG4gIGRlZmluZVByb3BlcnR5KEZ1bmN0aW9uUHJvdG90eXBlLCBOQU1FLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEZ1bmN0aW9uUHJvdG90eXBlVG9TdHJpbmcuY2FsbCh0aGlzKS5tYXRjaChuYW1lUkUpWzFdO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG5cbi8vIGBnbG9iYWxUaGlzYCBvYmplY3Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWdsb2JhbFxuJCh7IGdsb2JhbDogdHJ1ZSB9LCB7XG4gIGdsb2JhbFRoaXM6IGdsb2JhbFxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciAkc3RyaW5naWZ5ID0gZ2V0QnVpbHRJbignSlNPTicsICdzdHJpbmdpZnknKTtcbnZhciByZSA9IC9bXFx1RDgwMC1cXHVERkZGXS9nO1xudmFyIGxvdyA9IC9eW1xcdUQ4MDAtXFx1REJGRl0kLztcbnZhciBoaSA9IC9eW1xcdURDMDAtXFx1REZGRl0kLztcblxudmFyIGZpeCA9IGZ1bmN0aW9uIChtYXRjaCwgb2Zmc2V0LCBzdHJpbmcpIHtcbiAgdmFyIHByZXYgPSBzdHJpbmcuY2hhckF0KG9mZnNldCAtIDEpO1xuICB2YXIgbmV4dCA9IHN0cmluZy5jaGFyQXQob2Zmc2V0ICsgMSk7XG4gIGlmICgobG93LnRlc3QobWF0Y2gpICYmICFoaS50ZXN0KG5leHQpKSB8fCAoaGkudGVzdChtYXRjaCkgJiYgIWxvdy50ZXN0KHByZXYpKSkge1xuICAgIHJldHVybiAnXFxcXHUnICsgbWF0Y2guY2hhckNvZGVBdCgwKS50b1N0cmluZygxNik7XG4gIH0gcmV0dXJuIG1hdGNoO1xufTtcblxudmFyIEZPUkNFRCA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICRzdHJpbmdpZnkoJ1xcdURGMDZcXHVEODM0JykgIT09ICdcIlxcXFx1ZGYwNlxcXFx1ZDgzNFwiJ1xuICAgIHx8ICRzdHJpbmdpZnkoJ1xcdURFQUQnKSAhPT0gJ1wiXFxcXHVkZWFkXCInO1xufSk7XG5cbmlmICgkc3RyaW5naWZ5KSB7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXdlbGwtZm9ybWVkLXN0cmluZ2lmeVxuICAkKHsgdGFyZ2V0OiAnSlNPTicsIHN0YXQ6IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uIHN0cmluZ2lmeShpdCwgcmVwbGFjZXIsIHNwYWNlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gJHN0cmluZ2lmeS5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgcmV0dXJuIHR5cGVvZiByZXN1bHQgPT0gJ3N0cmluZycgPyByZXN1bHQucmVwbGFjZShyZSwgZml4KSA6IHJlc3VsdDtcbiAgICB9XG4gIH0pO1xufVxuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZycpO1xuXG4vLyBKU09OW0BAdG9TdHJpbmdUYWddIHByb3BlcnR5XG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1qc29uLUBAdG9zdHJpbmd0YWdcbnNldFRvU3RyaW5nVGFnKGdsb2JhbC5KU09OLCAnSlNPTicsIHRydWUpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29sbGVjdGlvbicpO1xudmFyIGNvbGxlY3Rpb25TdHJvbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29sbGVjdGlvbi1zdHJvbmcnKTtcblxuLy8gYE1hcGAgY29uc3RydWN0b3Jcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW1hcC1vYmplY3RzXG5tb2R1bGUuZXhwb3J0cyA9IGNvbGxlY3Rpb24oJ01hcCcsIGZ1bmN0aW9uIChpbml0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBNYXAoKSB7IHJldHVybiBpbml0KHRoaXMsIGFyZ3VtZW50cy5sZW5ndGggPyBhcmd1bWVudHNbMF0gOiB1bmRlZmluZWQpOyB9O1xufSwgY29sbGVjdGlvblN0cm9uZyk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBsb2cxcCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYXRoLWxvZzFwJyk7XG5cbnZhciBuYXRpdmVBY29zaCA9IE1hdGguYWNvc2g7XG52YXIgbG9nID0gTWF0aC5sb2c7XG52YXIgc3FydCA9IE1hdGguc3FydDtcbnZhciBMTjIgPSBNYXRoLkxOMjtcblxudmFyIEZPUkNFRCA9ICFuYXRpdmVBY29zaFxuICAvLyBWOCBidWc6IGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zNTA5XG4gIHx8IE1hdGguZmxvb3IobmF0aXZlQWNvc2goTnVtYmVyLk1BWF9WQUxVRSkpICE9IDcxMFxuICAvLyBUb3IgQnJvd3NlciBidWc6IE1hdGguYWNvc2goSW5maW5pdHkpIC0+IE5hTlxuICB8fCBuYXRpdmVBY29zaChJbmZpbml0eSkgIT0gSW5maW5pdHk7XG5cbi8vIGBNYXRoLmFjb3NoYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW1hdGguYWNvc2hcbiQoeyB0YXJnZXQ6ICdNYXRoJywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICBhY29zaDogZnVuY3Rpb24gYWNvc2goeCkge1xuICAgIHJldHVybiAoeCA9ICt4KSA8IDEgPyBOYU4gOiB4ID4gOTQ5MDYyNjUuNjI0MjUxNTZcbiAgICAgID8gbG9nKHgpICsgTE4yXG4gICAgICA6IGxvZzFwKHggLSAxICsgc3FydCh4IC0gMSkgKiBzcXJ0KHggKyAxKSk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG5cbnZhciBuYXRpdmVBc2luaCA9IE1hdGguYXNpbmg7XG52YXIgbG9nID0gTWF0aC5sb2c7XG52YXIgc3FydCA9IE1hdGguc3FydDtcblxuZnVuY3Rpb24gYXNpbmgoeCkge1xuICByZXR1cm4gIWlzRmluaXRlKHggPSAreCkgfHwgeCA9PSAwID8geCA6IHggPCAwID8gLWFzaW5oKC14KSA6IGxvZyh4ICsgc3FydCh4ICogeCArIDEpKTtcbn1cblxuLy8gYE1hdGguYXNpbmhgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbWF0aC5hc2luaFxuLy8gVG9yIEJyb3dzZXIgYnVnOiBNYXRoLmFzaW5oKDApIC0+IC0wXG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogIShuYXRpdmVBc2luaCAmJiAxIC8gbmF0aXZlQXNpbmgoMCkgPiAwKSB9LCB7XG4gIGFzaW5oOiBhc2luaFxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcblxudmFyIG5hdGl2ZUF0YW5oID0gTWF0aC5hdGFuaDtcbnZhciBsb2cgPSBNYXRoLmxvZztcblxuLy8gYE1hdGguYXRhbmhgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbWF0aC5hdGFuaFxuLy8gVG9yIEJyb3dzZXIgYnVnOiBNYXRoLmF0YW5oKC0wKSAtPiAwXG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogIShuYXRpdmVBdGFuaCAmJiAxIC8gbmF0aXZlQXRhbmgoLTApIDwgMCkgfSwge1xuICBhdGFuaDogZnVuY3Rpb24gYXRhbmgoeCkge1xuICAgIHJldHVybiAoeCA9ICt4KSA9PSAwID8geCA6IGxvZygoMSArIHgpIC8gKDEgLSB4KSkgLyAyO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIHNpZ24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWF0aC1zaWduJyk7XG5cbnZhciBhYnMgPSBNYXRoLmFicztcbnZhciBwb3cgPSBNYXRoLnBvdztcblxuLy8gYE1hdGguY2JydGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1tYXRoLmNicnRcbiQoeyB0YXJnZXQ6ICdNYXRoJywgc3RhdDogdHJ1ZSB9LCB7XG4gIGNicnQ6IGZ1bmN0aW9uIGNicnQoeCkge1xuICAgIHJldHVybiBzaWduKHggPSAreCkgKiBwb3coYWJzKHgpLCAxIC8gMyk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG5cbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG52YXIgbG9nID0gTWF0aC5sb2c7XG52YXIgTE9HMkUgPSBNYXRoLkxPRzJFO1xuXG4vLyBgTWF0aC5jbHozMmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1tYXRoLmNsejMyXG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUgfSwge1xuICBjbHozMjogZnVuY3Rpb24gY2x6MzIoeCkge1xuICAgIHJldHVybiAoeCA+Pj49IDApID8gMzEgLSBmbG9vcihsb2coeCArIDAuNSkgKiBMT0cyRSkgOiAzMjtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBleHBtMSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYXRoLWV4cG0xJyk7XG5cbnZhciBuYXRpdmVDb3NoID0gTWF0aC5jb3NoO1xudmFyIGFicyA9IE1hdGguYWJzO1xudmFyIEUgPSBNYXRoLkU7XG5cbi8vIGBNYXRoLmNvc2hgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbWF0aC5jb3NoXG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogIW5hdGl2ZUNvc2ggfHwgbmF0aXZlQ29zaCg3MTApID09PSBJbmZpbml0eSB9LCB7XG4gIGNvc2g6IGZ1bmN0aW9uIGNvc2goeCkge1xuICAgIHZhciB0ID0gZXhwbTEoYWJzKHgpIC0gMSkgKyAxO1xuICAgIHJldHVybiAodCArIDEgLyAodCAqIEUgKiBFKSkgKiAoRSAvIDIpO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGV4cG0xID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21hdGgtZXhwbTEnKTtcblxuLy8gYE1hdGguZXhwbTFgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbWF0aC5leHBtMVxuJCh7IHRhcmdldDogJ01hdGgnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IGV4cG0xICE9IE1hdGguZXhwbTEgfSwgeyBleHBtMTogZXhwbTEgfSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmcm91bmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWF0aC1mcm91bmQnKTtcblxuLy8gYE1hdGguZnJvdW5kYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW1hdGguZnJvdW5kXG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUgfSwgeyBmcm91bmQ6IGZyb3VuZCB9KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xuXG52YXIgJGh5cG90ID0gTWF0aC5oeXBvdDtcbnZhciBhYnMgPSBNYXRoLmFicztcbnZhciBzcXJ0ID0gTWF0aC5zcXJ0O1xuXG4vLyBDaHJvbWUgNzcgYnVnXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD05NTQ2XG52YXIgQlVHR1kgPSAhISRoeXBvdCAmJiAkaHlwb3QoSW5maW5pdHksIE5hTikgIT09IEluZmluaXR5O1xuXG4vLyBgTWF0aC5oeXBvdGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1tYXRoLmh5cG90XG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogQlVHR1kgfSwge1xuICBoeXBvdDogZnVuY3Rpb24gaHlwb3QodmFsdWUxLCB2YWx1ZTIpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICAgIHZhciBzdW0gPSAwO1xuICAgIHZhciBpID0gMDtcbiAgICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGxhcmcgPSAwO1xuICAgIHZhciBhcmcsIGRpdjtcbiAgICB3aGlsZSAoaSA8IGFMZW4pIHtcbiAgICAgIGFyZyA9IGFicyhhcmd1bWVudHNbaSsrXSk7XG4gICAgICBpZiAobGFyZyA8IGFyZykge1xuICAgICAgICBkaXYgPSBsYXJnIC8gYXJnO1xuICAgICAgICBzdW0gPSBzdW0gKiBkaXYgKiBkaXYgKyAxO1xuICAgICAgICBsYXJnID0gYXJnO1xuICAgICAgfSBlbHNlIGlmIChhcmcgPiAwKSB7XG4gICAgICAgIGRpdiA9IGFyZyAvIGxhcmc7XG4gICAgICAgIHN1bSArPSBkaXYgKiBkaXY7XG4gICAgICB9IGVsc2Ugc3VtICs9IGFyZztcbiAgICB9XG4gICAgcmV0dXJuIGxhcmcgPT09IEluZmluaXR5ID8gSW5maW5pdHkgOiBsYXJnICogc3FydChzdW0pO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciBuYXRpdmVJbXVsID0gTWF0aC5pbXVsO1xuXG52YXIgRk9SQ0VEID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmF0aXZlSW11bCgweEZGRkZGRkZGLCA1KSAhPSAtNSB8fCBuYXRpdmVJbXVsLmxlbmd0aCAhPSAyO1xufSk7XG5cbi8vIGBNYXRoLmltdWxgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbWF0aC5pbXVsXG4vLyBzb21lIFdlYktpdCB2ZXJzaW9ucyBmYWlscyB3aXRoIGJpZyBudW1iZXJzLCBzb21lIGhhcyB3cm9uZyBhcml0eVxuJCh7IHRhcmdldDogJ01hdGgnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCB9LCB7XG4gIGltdWw6IGZ1bmN0aW9uIGltdWwoeCwgeSkge1xuICAgIHZhciBVSU5UMTYgPSAweEZGRkY7XG4gICAgdmFyIHhuID0gK3g7XG4gICAgdmFyIHluID0gK3k7XG4gICAgdmFyIHhsID0gVUlOVDE2ICYgeG47XG4gICAgdmFyIHlsID0gVUlOVDE2ICYgeW47XG4gICAgcmV0dXJuIDAgfCB4bCAqIHlsICsgKChVSU5UMTYgJiB4biA+Pj4gMTYpICogeWwgKyB4bCAqIChVSU5UMTYgJiB5biA+Pj4gMTYpIDw8IDE2ID4+PiAwKTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcblxudmFyIGxvZyA9IE1hdGgubG9nO1xudmFyIExPRzEwRSA9IE1hdGguTE9HMTBFO1xuXG4vLyBgTWF0aC5sb2cxMGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1tYXRoLmxvZzEwXG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUgfSwge1xuICBsb2cxMDogZnVuY3Rpb24gbG9nMTAoeCkge1xuICAgIHJldHVybiBsb2coeCkgKiBMT0cxMEU7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgbG9nMXAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWF0aC1sb2cxcCcpO1xuXG4vLyBgTWF0aC5sb2cxcGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1tYXRoLmxvZzFwXG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUgfSwgeyBsb2cxcDogbG9nMXAgfSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcblxudmFyIGxvZyA9IE1hdGgubG9nO1xudmFyIExOMiA9IE1hdGguTE4yO1xuXG4vLyBgTWF0aC5sb2cyYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW1hdGgubG9nMlxuJCh7IHRhcmdldDogJ01hdGgnLCBzdGF0OiB0cnVlIH0sIHtcbiAgbG9nMjogZnVuY3Rpb24gbG9nMih4KSB7XG4gICAgcmV0dXJuIGxvZyh4KSAvIExOMjtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBzaWduID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21hdGgtc2lnbicpO1xuXG4vLyBgTWF0aC5zaWduYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW1hdGguc2lnblxuJCh7IHRhcmdldDogJ01hdGgnLCBzdGF0OiB0cnVlIH0sIHtcbiAgc2lnbjogc2lnblxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGV4cG0xID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21hdGgtZXhwbTEnKTtcblxudmFyIGFicyA9IE1hdGguYWJzO1xudmFyIGV4cCA9IE1hdGguZXhwO1xudmFyIEUgPSBNYXRoLkU7XG5cbnZhciBGT1JDRUQgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBNYXRoLnNpbmgoLTJlLTE3KSAhPSAtMmUtMTc7XG59KTtcblxuLy8gYE1hdGguc2luaGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1tYXRoLnNpbmhcbi8vIFY4IG5lYXIgQ2hyb21pdW0gMzggaGFzIGEgcHJvYmxlbSB3aXRoIHZlcnkgc21hbGwgbnVtYmVyc1xuJCh7IHRhcmdldDogJ01hdGgnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCB9LCB7XG4gIHNpbmg6IGZ1bmN0aW9uIHNpbmgoeCkge1xuICAgIHJldHVybiBhYnMoeCA9ICt4KSA8IDEgPyAoZXhwbTEoeCkgLSBleHBtMSgteCkpIC8gMiA6IChleHAoeCAtIDEpIC0gZXhwKC14IC0gMSkpICogKEUgLyAyKTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBleHBtMSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYXRoLWV4cG0xJyk7XG5cbnZhciBleHAgPSBNYXRoLmV4cDtcblxuLy8gYE1hdGgudGFuaGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1tYXRoLnRhbmhcbiQoeyB0YXJnZXQ6ICdNYXRoJywgc3RhdDogdHJ1ZSB9LCB7XG4gIHRhbmg6IGZ1bmN0aW9uIHRhbmgoeCkge1xuICAgIHZhciBhID0gZXhwbTEoeCA9ICt4KTtcbiAgICB2YXIgYiA9IGV4cG0xKC14KTtcbiAgICByZXR1cm4gYSA9PSBJbmZpbml0eSA/IDEgOiBiID09IEluZmluaXR5ID8gLTEgOiAoYSAtIGIpIC8gKGV4cCh4KSArIGV4cCgteCkpO1xuICB9XG59KTtcbiIsInZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZycpO1xuXG4vLyBNYXRoW0BAdG9TdHJpbmdUYWddIHByb3BlcnR5XG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1tYXRoLUBAdG9zdHJpbmd0YWdcbnNldFRvU3RyaW5nVGFnKE1hdGgsICdNYXRoJywgdHJ1ZSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcblxudmFyIGNlaWwgPSBNYXRoLmNlaWw7XG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xuXG4vLyBgTWF0aC50cnVuY2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1tYXRoLnRydW5jXG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUgfSwge1xuICB0cnVuYzogZnVuY3Rpb24gdHJ1bmMoaXQpIHtcbiAgICByZXR1cm4gKGl0ID4gMCA/IGZsb29yIDogY2VpbCkoaXQpO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpc0ZvcmNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1mb3JjZWQnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWRlZmluZScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG52YXIgaW5oZXJpdElmUmVxdWlyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5oZXJpdC1pZi1yZXF1aXJlZCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzJykuZjtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpLmY7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgdHJpbSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctdHJpbScpLnRyaW07XG5cbnZhciBOVU1CRVIgPSAnTnVtYmVyJztcbnZhciBOYXRpdmVOdW1iZXIgPSBnbG9iYWxbTlVNQkVSXTtcbnZhciBOdW1iZXJQcm90b3R5cGUgPSBOYXRpdmVOdW1iZXIucHJvdG90eXBlO1xuXG4vLyBPcGVyYSB+MTIgaGFzIGJyb2tlbiBPYmplY3QjdG9TdHJpbmdcbnZhciBCUk9LRU5fQ0xBU1NPRiA9IGNsYXNzb2YoY3JlYXRlKE51bWJlclByb3RvdHlwZSkpID09IE5VTUJFUjtcblxuLy8gYFRvTnVtYmVyYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXRvbnVtYmVyXG52YXIgdG9OdW1iZXIgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIGl0ID0gdG9QcmltaXRpdmUoYXJndW1lbnQsIGZhbHNlKTtcbiAgdmFyIGZpcnN0LCB0aGlyZCwgcmFkaXgsIG1heENvZGUsIGRpZ2l0cywgbGVuZ3RoLCBpbmRleCwgY29kZTtcbiAgaWYgKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyAmJiBpdC5sZW5ndGggPiAyKSB7XG4gICAgaXQgPSB0cmltKGl0KTtcbiAgICBmaXJzdCA9IGl0LmNoYXJDb2RlQXQoMCk7XG4gICAgaWYgKGZpcnN0ID09PSA0MyB8fCBmaXJzdCA9PT0gNDUpIHtcbiAgICAgIHRoaXJkID0gaXQuY2hhckNvZGVBdCgyKTtcbiAgICAgIGlmICh0aGlyZCA9PT0gODggfHwgdGhpcmQgPT09IDEyMCkgcmV0dXJuIE5hTjsgLy8gTnVtYmVyKCcrMHgxJykgc2hvdWxkIGJlIE5hTiwgb2xkIFY4IGZpeFxuICAgIH0gZWxzZSBpZiAoZmlyc3QgPT09IDQ4KSB7XG4gICAgICBzd2l0Y2ggKGl0LmNoYXJDb2RlQXQoMSkpIHtcbiAgICAgICAgY2FzZSA2NjogY2FzZSA5ODogcmFkaXggPSAyOyBtYXhDb2RlID0gNDk7IGJyZWFrOyAvLyBmYXN0IGVxdWFsIG9mIC9eMGJbMDFdKyQvaVxuICAgICAgICBjYXNlIDc5OiBjYXNlIDExMTogcmFkaXggPSA4OyBtYXhDb2RlID0gNTU7IGJyZWFrOyAvLyBmYXN0IGVxdWFsIG9mIC9eMG9bMC03XSskL2lcbiAgICAgICAgZGVmYXVsdDogcmV0dXJuICtpdDtcbiAgICAgIH1cbiAgICAgIGRpZ2l0cyA9IGl0LnNsaWNlKDIpO1xuICAgICAgbGVuZ3RoID0gZGlnaXRzLmxlbmd0aDtcbiAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb2RlID0gZGlnaXRzLmNoYXJDb2RlQXQoaW5kZXgpO1xuICAgICAgICAvLyBwYXJzZUludCBwYXJzZXMgYSBzdHJpbmcgdG8gYSBmaXJzdCB1bmF2YWlsYWJsZSBzeW1ib2xcbiAgICAgICAgLy8gYnV0IFRvTnVtYmVyIHNob3VsZCByZXR1cm4gTmFOIGlmIGEgc3RyaW5nIGNvbnRhaW5zIHVuYXZhaWxhYmxlIHN5bWJvbHNcbiAgICAgICAgaWYgKGNvZGUgPCA0OCB8fCBjb2RlID4gbWF4Q29kZSkgcmV0dXJuIE5hTjtcbiAgICAgIH0gcmV0dXJuIHBhcnNlSW50KGRpZ2l0cywgcmFkaXgpO1xuICAgIH1cbiAgfSByZXR1cm4gK2l0O1xufTtcblxuLy8gYE51bWJlcmAgY29uc3RydWN0b3Jcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW51bWJlci1jb25zdHJ1Y3RvclxuaWYgKGlzRm9yY2VkKE5VTUJFUiwgIU5hdGl2ZU51bWJlcignIDBvMScpIHx8ICFOYXRpdmVOdW1iZXIoJzBiMScpIHx8IE5hdGl2ZU51bWJlcignKzB4MScpKSkge1xuICB2YXIgTnVtYmVyV3JhcHBlciA9IGZ1bmN0aW9uIE51bWJlcih2YWx1ZSkge1xuICAgIHZhciBpdCA9IGFyZ3VtZW50cy5sZW5ndGggPCAxID8gMCA6IHZhbHVlO1xuICAgIHZhciBkdW1teSA9IHRoaXM7XG4gICAgcmV0dXJuIGR1bW15IGluc3RhbmNlb2YgTnVtYmVyV3JhcHBlclxuICAgICAgLy8gY2hlY2sgb24gMS4uY29uc3RydWN0b3IoZm9vKSBjYXNlXG4gICAgICAmJiAoQlJPS0VOX0NMQVNTT0YgPyBmYWlscyhmdW5jdGlvbiAoKSB7IE51bWJlclByb3RvdHlwZS52YWx1ZU9mLmNhbGwoZHVtbXkpOyB9KSA6IGNsYXNzb2YoZHVtbXkpICE9IE5VTUJFUilcbiAgICAgICAgPyBpbmhlcml0SWZSZXF1aXJlZChuZXcgTmF0aXZlTnVtYmVyKHRvTnVtYmVyKGl0KSksIGR1bW15LCBOdW1iZXJXcmFwcGVyKSA6IHRvTnVtYmVyKGl0KTtcbiAgfTtcbiAgZm9yICh2YXIga2V5cyA9IERFU0NSSVBUT1JTID8gZ2V0T3duUHJvcGVydHlOYW1lcyhOYXRpdmVOdW1iZXIpIDogKFxuICAgIC8vIEVTMzpcbiAgICAnTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksJyArXG4gICAgLy8gRVMyMDE1IChpbiBjYXNlLCBpZiBtb2R1bGVzIHdpdGggRVMyMDE1IE51bWJlciBzdGF0aWNzIHJlcXVpcmVkIGJlZm9yZSk6XG4gICAgJ0VQU0lMT04saXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIsTUFYX1NBRkVfSU5URUdFUiwnICtcbiAgICAnTUlOX1NBRkVfSU5URUdFUixwYXJzZUZsb2F0LHBhcnNlSW50LGlzSW50ZWdlcidcbiAgKS5zcGxpdCgnLCcpLCBqID0gMCwga2V5OyBrZXlzLmxlbmd0aCA+IGo7IGorKykge1xuICAgIGlmIChoYXMoTmF0aXZlTnVtYmVyLCBrZXkgPSBrZXlzW2pdKSAmJiAhaGFzKE51bWJlcldyYXBwZXIsIGtleSkpIHtcbiAgICAgIGRlZmluZVByb3BlcnR5KE51bWJlcldyYXBwZXIsIGtleSwgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5hdGl2ZU51bWJlciwga2V5KSk7XG4gICAgfVxuICB9XG4gIE51bWJlcldyYXBwZXIucHJvdG90eXBlID0gTnVtYmVyUHJvdG90eXBlO1xuICBOdW1iZXJQcm90b3R5cGUuY29uc3RydWN0b3IgPSBOdW1iZXJXcmFwcGVyO1xuICByZWRlZmluZShnbG9iYWwsIE5VTUJFUiwgTnVtYmVyV3JhcHBlcik7XG59XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcblxuLy8gYE51bWJlci5FUFNJTE9OYCBjb25zdGFudFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbnVtYmVyLmVwc2lsb25cbiQoeyB0YXJnZXQ6ICdOdW1iZXInLCBzdGF0OiB0cnVlIH0sIHtcbiAgRVBTSUxPTjogTWF0aC5wb3coMiwgLTUyKVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBudW1iZXJJc0Zpbml0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9udW1iZXItaXMtZmluaXRlJyk7XG5cbi8vIGBOdW1iZXIuaXNGaW5pdGVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbnVtYmVyLmlzZmluaXRlXG4kKHsgdGFyZ2V0OiAnTnVtYmVyJywgc3RhdDogdHJ1ZSB9LCB7IGlzRmluaXRlOiBudW1iZXJJc0Zpbml0ZSB9KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGlzSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1pbnRlZ2VyJyk7XG5cbi8vIGBOdW1iZXIuaXNJbnRlZ2VyYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW51bWJlci5pc2ludGVnZXJcbiQoeyB0YXJnZXQ6ICdOdW1iZXInLCBzdGF0OiB0cnVlIH0sIHtcbiAgaXNJbnRlZ2VyOiBpc0ludGVnZXJcbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG5cbi8vIGBOdW1iZXIuaXNOYU5gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbnVtYmVyLmlzbmFuXG4kKHsgdGFyZ2V0OiAnTnVtYmVyJywgc3RhdDogdHJ1ZSB9LCB7XG4gIGlzTmFOOiBmdW5jdGlvbiBpc05hTihudW1iZXIpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgcmV0dXJuIG51bWJlciAhPSBudW1iZXI7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgaXNJbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWludGVnZXInKTtcblxudmFyIGFicyA9IE1hdGguYWJzO1xuXG4vLyBgTnVtYmVyLmlzU2FmZUludGVnZXJgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbnVtYmVyLmlzc2FmZWludGVnZXJcbiQoeyB0YXJnZXQ6ICdOdW1iZXInLCBzdGF0OiB0cnVlIH0sIHtcbiAgaXNTYWZlSW50ZWdlcjogZnVuY3Rpb24gaXNTYWZlSW50ZWdlcihudW1iZXIpIHtcbiAgICByZXR1cm4gaXNJbnRlZ2VyKG51bWJlcikgJiYgYWJzKG51bWJlcikgPD0gMHgxRkZGRkZGRkZGRkZGRjtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcblxuLy8gYE51bWJlci5NQVhfU0FGRV9JTlRFR0VSYCBjb25zdGFudFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbnVtYmVyLm1heF9zYWZlX2ludGVnZXJcbiQoeyB0YXJnZXQ6ICdOdW1iZXInLCBzdGF0OiB0cnVlIH0sIHtcbiAgTUFYX1NBRkVfSU5URUdFUjogMHgxRkZGRkZGRkZGRkZGRlxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcblxuLy8gYE51bWJlci5NSU5fU0FGRV9JTlRFR0VSYCBjb25zdGFudFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbnVtYmVyLm1pbl9zYWZlX2ludGVnZXJcbiQoeyB0YXJnZXQ6ICdOdW1iZXInLCBzdGF0OiB0cnVlIH0sIHtcbiAgTUlOX1NBRkVfSU5URUdFUjogLTB4MUZGRkZGRkZGRkZGRkZcbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgcGFyc2VGbG9hdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9udW1iZXItcGFyc2UtZmxvYXQnKTtcblxuLy8gYE51bWJlci5wYXJzZUZsb2F0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW51bWJlci5wYXJzZUZsb2F0XG4kKHsgdGFyZ2V0OiAnTnVtYmVyJywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBOdW1iZXIucGFyc2VGbG9hdCAhPSBwYXJzZUZsb2F0IH0sIHtcbiAgcGFyc2VGbG9hdDogcGFyc2VGbG9hdFxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBwYXJzZUludCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9udW1iZXItcGFyc2UtaW50Jyk7XG5cbi8vIGBOdW1iZXIucGFyc2VJbnRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbnVtYmVyLnBhcnNlaW50XG4kKHsgdGFyZ2V0OiAnTnVtYmVyJywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBOdW1iZXIucGFyc2VJbnQgIT0gcGFyc2VJbnQgfSwge1xuICBwYXJzZUludDogcGFyc2VJbnRcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcbnZhciB0aGlzTnVtYmVyVmFsdWUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdGhpcy1udW1iZXItdmFsdWUnKTtcbnZhciByZXBlYXQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXJlcGVhdCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciBuYXRpdmVUb0ZpeGVkID0gMS4wLnRvRml4ZWQ7XG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xuXG52YXIgcG93ID0gZnVuY3Rpb24gKHgsIG4sIGFjYykge1xuICByZXR1cm4gbiA9PT0gMCA/IGFjYyA6IG4gJSAyID09PSAxID8gcG93KHgsIG4gLSAxLCBhY2MgKiB4KSA6IHBvdyh4ICogeCwgbiAvIDIsIGFjYyk7XG59O1xuXG52YXIgbG9nID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIG4gPSAwO1xuICB2YXIgeDIgPSB4O1xuICB3aGlsZSAoeDIgPj0gNDA5Nikge1xuICAgIG4gKz0gMTI7XG4gICAgeDIgLz0gNDA5NjtcbiAgfVxuICB3aGlsZSAoeDIgPj0gMikge1xuICAgIG4gKz0gMTtcbiAgICB4MiAvPSAyO1xuICB9IHJldHVybiBuO1xufTtcblxudmFyIEZPUkNFRCA9IG5hdGl2ZVRvRml4ZWQgJiYgKFxuICAwLjAwMDA4LnRvRml4ZWQoMykgIT09ICcwLjAwMCcgfHxcbiAgMC45LnRvRml4ZWQoMCkgIT09ICcxJyB8fFxuICAxLjI1NS50b0ZpeGVkKDIpICE9PSAnMS4yNScgfHxcbiAgMTAwMDAwMDAwMDAwMDAwMDEyOC4wLnRvRml4ZWQoMCkgIT09ICcxMDAwMDAwMDAwMDAwMDAwMTI4J1xuKSB8fCAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBWOCB+IEFuZHJvaWQgNC4zLVxuICBuYXRpdmVUb0ZpeGVkLmNhbGwoe30pO1xufSk7XG5cbi8vIGBOdW1iZXIucHJvdG90eXBlLnRvRml4ZWRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtbnVtYmVyLnByb3RvdHlwZS50b2ZpeGVkXG4kKHsgdGFyZ2V0OiAnTnVtYmVyJywgcHJvdG86IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1zdGF0ZW1lbnRzXG4gIHRvRml4ZWQ6IGZ1bmN0aW9uIHRvRml4ZWQoZnJhY3Rpb25EaWdpdHMpIHtcbiAgICB2YXIgbnVtYmVyID0gdGhpc051bWJlclZhbHVlKHRoaXMpO1xuICAgIHZhciBmcmFjdERpZ2l0cyA9IHRvSW50ZWdlcihmcmFjdGlvbkRpZ2l0cyk7XG4gICAgdmFyIGRhdGEgPSBbMCwgMCwgMCwgMCwgMCwgMF07XG4gICAgdmFyIHNpZ24gPSAnJztcbiAgICB2YXIgcmVzdWx0ID0gJzAnO1xuICAgIHZhciBlLCB6LCBqLCBrO1xuXG4gICAgdmFyIG11bHRpcGx5ID0gZnVuY3Rpb24gKG4sIGMpIHtcbiAgICAgIHZhciBpbmRleCA9IC0xO1xuICAgICAgdmFyIGMyID0gYztcbiAgICAgIHdoaWxlICgrK2luZGV4IDwgNikge1xuICAgICAgICBjMiArPSBuICogZGF0YVtpbmRleF07XG4gICAgICAgIGRhdGFbaW5kZXhdID0gYzIgJSAxZTc7XG4gICAgICAgIGMyID0gZmxvb3IoYzIgLyAxZTcpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB2YXIgZGl2aWRlID0gZnVuY3Rpb24gKG4pIHtcbiAgICAgIHZhciBpbmRleCA9IDY7XG4gICAgICB2YXIgYyA9IDA7XG4gICAgICB3aGlsZSAoLS1pbmRleCA+PSAwKSB7XG4gICAgICAgIGMgKz0gZGF0YVtpbmRleF07XG4gICAgICAgIGRhdGFbaW5kZXhdID0gZmxvb3IoYyAvIG4pO1xuICAgICAgICBjID0gKGMgJSBuKSAqIDFlNztcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFyIGRhdGFUb1N0cmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBpbmRleCA9IDY7XG4gICAgICB2YXIgcyA9ICcnO1xuICAgICAgd2hpbGUgKC0taW5kZXggPj0gMCkge1xuICAgICAgICBpZiAocyAhPT0gJycgfHwgaW5kZXggPT09IDAgfHwgZGF0YVtpbmRleF0gIT09IDApIHtcbiAgICAgICAgICB2YXIgdCA9IFN0cmluZyhkYXRhW2luZGV4XSk7XG4gICAgICAgICAgcyA9IHMgPT09ICcnID8gdCA6IHMgKyByZXBlYXQuY2FsbCgnMCcsIDcgLSB0Lmxlbmd0aCkgKyB0O1xuICAgICAgICB9XG4gICAgICB9IHJldHVybiBzO1xuICAgIH07XG5cbiAgICBpZiAoZnJhY3REaWdpdHMgPCAwIHx8IGZyYWN0RGlnaXRzID4gMjApIHRocm93IFJhbmdlRXJyb3IoJ0luY29ycmVjdCBmcmFjdGlvbiBkaWdpdHMnKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1jb21wYXJlXG4gICAgaWYgKG51bWJlciAhPSBudW1iZXIpIHJldHVybiAnTmFOJztcbiAgICBpZiAobnVtYmVyIDw9IC0xZTIxIHx8IG51bWJlciA+PSAxZTIxKSByZXR1cm4gU3RyaW5nKG51bWJlcik7XG4gICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgIHNpZ24gPSAnLSc7XG4gICAgICBudW1iZXIgPSAtbnVtYmVyO1xuICAgIH1cbiAgICBpZiAobnVtYmVyID4gMWUtMjEpIHtcbiAgICAgIGUgPSBsb2cobnVtYmVyICogcG93KDIsIDY5LCAxKSkgLSA2OTtcbiAgICAgIHogPSBlIDwgMCA/IG51bWJlciAqIHBvdygyLCAtZSwgMSkgOiBudW1iZXIgLyBwb3coMiwgZSwgMSk7XG4gICAgICB6ICo9IDB4MTAwMDAwMDAwMDAwMDA7XG4gICAgICBlID0gNTIgLSBlO1xuICAgICAgaWYgKGUgPiAwKSB7XG4gICAgICAgIG11bHRpcGx5KDAsIHopO1xuICAgICAgICBqID0gZnJhY3REaWdpdHM7XG4gICAgICAgIHdoaWxlIChqID49IDcpIHtcbiAgICAgICAgICBtdWx0aXBseSgxZTcsIDApO1xuICAgICAgICAgIGogLT0gNztcbiAgICAgICAgfVxuICAgICAgICBtdWx0aXBseShwb3coMTAsIGosIDEpLCAwKTtcbiAgICAgICAgaiA9IGUgLSAxO1xuICAgICAgICB3aGlsZSAoaiA+PSAyMykge1xuICAgICAgICAgIGRpdmlkZSgxIDw8IDIzKTtcbiAgICAgICAgICBqIC09IDIzO1xuICAgICAgICB9XG4gICAgICAgIGRpdmlkZSgxIDw8IGopO1xuICAgICAgICBtdWx0aXBseSgxLCAxKTtcbiAgICAgICAgZGl2aWRlKDIpO1xuICAgICAgICByZXN1bHQgPSBkYXRhVG9TdHJpbmcoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG11bHRpcGx5KDAsIHopO1xuICAgICAgICBtdWx0aXBseSgxIDw8IC1lLCAwKTtcbiAgICAgICAgcmVzdWx0ID0gZGF0YVRvU3RyaW5nKCkgKyByZXBlYXQuY2FsbCgnMCcsIGZyYWN0RGlnaXRzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZyYWN0RGlnaXRzID4gMCkge1xuICAgICAgayA9IHJlc3VsdC5sZW5ndGg7XG4gICAgICByZXN1bHQgPSBzaWduICsgKGsgPD0gZnJhY3REaWdpdHNcbiAgICAgICAgPyAnMC4nICsgcmVwZWF0LmNhbGwoJzAnLCBmcmFjdERpZ2l0cyAtIGspICsgcmVzdWx0XG4gICAgICAgIDogcmVzdWx0LnNsaWNlKDAsIGsgLSBmcmFjdERpZ2l0cykgKyAnLicgKyByZXN1bHQuc2xpY2UoayAtIGZyYWN0RGlnaXRzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IHNpZ24gKyByZXN1bHQ7XG4gICAgfSByZXR1cm4gcmVzdWx0O1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgdGhpc051bWJlclZhbHVlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RoaXMtbnVtYmVyLXZhbHVlJyk7XG5cbnZhciBuYXRpdmVUb1ByZWNpc2lvbiA9IDEuMC50b1ByZWNpc2lvbjtcblxudmFyIEZPUkNFRCA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gSUU3LVxuICByZXR1cm4gbmF0aXZlVG9QcmVjaXNpb24uY2FsbCgxLCB1bmRlZmluZWQpICE9PSAnMSc7XG59KSB8fCAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBWOCB+IEFuZHJvaWQgNC4zLVxuICBuYXRpdmVUb1ByZWNpc2lvbi5jYWxsKHt9KTtcbn0pO1xuXG4vLyBgTnVtYmVyLnByb3RvdHlwZS50b1ByZWNpc2lvbmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1udW1iZXIucHJvdG90eXBlLnRvcHJlY2lzaW9uXG4kKHsgdGFyZ2V0OiAnTnVtYmVyJywgcHJvdG86IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgdG9QcmVjaXNpb246IGZ1bmN0aW9uIHRvUHJlY2lzaW9uKHByZWNpc2lvbikge1xuICAgIHJldHVybiBwcmVjaXNpb24gPT09IHVuZGVmaW5lZFxuICAgICAgPyBuYXRpdmVUb1ByZWNpc2lvbi5jYWxsKHRoaXNOdW1iZXJWYWx1ZSh0aGlzKSlcbiAgICAgIDogbmF0aXZlVG9QcmVjaXNpb24uY2FsbCh0aGlzTnVtYmVyVmFsdWUodGhpcyksIHByZWNpc2lvbik7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgYXNzaWduID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1hc3NpZ24nKTtcblxuLy8gYE9iamVjdC5hc3NpZ25gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmFzc2lnblxuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogT2JqZWN0LmFzc2lnbiAhPT0gYXNzaWduIH0sIHtcbiAgYXNzaWduOiBhc3NpZ25cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xuXG4vLyBgT2JqZWN0LmNyZWF0ZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vYmplY3QuY3JlYXRlXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgc2hhbTogIURFU0NSSVBUT1JTIH0sIHtcbiAgY3JlYXRlOiBjcmVhdGVcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBGT1JDRUQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXByb3RvdHlwZS1hY2Nlc3NvcnMtZm9yY2VkJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX19gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS5fX2RlZmluZUdldHRlcl9fXG5pZiAoREVTQ1JJUFRPUlMpIHtcbiAgJCh7IHRhcmdldDogJ09iamVjdCcsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCB9LCB7XG4gICAgX19kZWZpbmVHZXR0ZXJfXzogZnVuY3Rpb24gX19kZWZpbmVHZXR0ZXJfXyhQLCBnZXR0ZXIpIHtcbiAgICAgIGRlZmluZVByb3BlcnR5TW9kdWxlLmYodG9PYmplY3QodGhpcyksIFAsIHsgZ2V0OiBhRnVuY3Rpb24oZ2V0dGVyKSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0pO1xuICAgIH1cbiAgfSk7XG59XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnRpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzJyk7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydGllc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vYmplY3QuZGVmaW5lcHJvcGVydGllc1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogIURFU0NSSVBUT1JTLCBzaGFtOiAhREVTQ1JJUFRPUlMgfSwge1xuICBkZWZpbmVQcm9wZXJ0aWVzOiBkZWZpbmVQcm9wZXJ0aWVzXG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgb2JqZWN0RGVmaW5lUHJvcGVydHlNb2RpbGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xuXG4vLyBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5kZWZpbmVwcm9wZXJ0eVxuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogIURFU0NSSVBUT1JTLCBzaGFtOiAhREVTQ1JJUFRPUlMgfSwge1xuICBkZWZpbmVQcm9wZXJ0eTogb2JqZWN0RGVmaW5lUHJvcGVydHlNb2RpbGUuZlxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIEZPUkNFRCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtcHJvdG90eXBlLWFjY2Vzc29ycy1mb3JjZWQnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcblxuLy8gYE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfX2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vYmplY3QucHJvdG90eXBlLl9fZGVmaW5lU2V0dGVyX19cbmlmIChERVNDUklQVE9SUykge1xuICAkKHsgdGFyZ2V0OiAnT2JqZWN0JywgcHJvdG86IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgICBfX2RlZmluZVNldHRlcl9fOiBmdW5jdGlvbiBfX2RlZmluZVNldHRlcl9fKFAsIHNldHRlcikge1xuICAgICAgZGVmaW5lUHJvcGVydHlNb2R1bGUuZih0b09iamVjdCh0aGlzKSwgUCwgeyBzZXQ6IGFGdW5jdGlvbihzZXR0ZXIpLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcbn1cbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRlbnRyaWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC10by1hcnJheScpLmVudHJpZXM7XG5cbi8vIGBPYmplY3QuZW50cmllc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vYmplY3QuZW50cmllc1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUgfSwge1xuICBlbnRyaWVzOiBmdW5jdGlvbiBlbnRyaWVzKE8pIHtcbiAgICByZXR1cm4gJGVudHJpZXMoTyk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgRlJFRVpJTkcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnJlZXppbmcnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIG9uRnJlZXplID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLW1ldGFkYXRhJykub25GcmVlemU7XG5cbnZhciBuYXRpdmVGcmVlemUgPSBPYmplY3QuZnJlZXplO1xudmFyIEZBSUxTX09OX1BSSU1JVElWRVMgPSBmYWlscyhmdW5jdGlvbiAoKSB7IG5hdGl2ZUZyZWV6ZSgxKTsgfSk7XG5cbi8vIGBPYmplY3QuZnJlZXplYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5mcmVlemVcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZBSUxTX09OX1BSSU1JVElWRVMsIHNoYW06ICFGUkVFWklORyB9LCB7XG4gIGZyZWV6ZTogZnVuY3Rpb24gZnJlZXplKGl0KSB7XG4gICAgcmV0dXJuIG5hdGl2ZUZyZWV6ZSAmJiBpc09iamVjdChpdCkgPyBuYXRpdmVGcmVlemUob25GcmVlemUoaXQpKSA6IGl0O1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xudmFyIGNyZWF0ZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eScpO1xuXG4vLyBgT2JqZWN0LmZyb21FbnRyaWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLW9iamVjdC1mcm9tLWVudHJpZXNcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlIH0sIHtcbiAgZnJvbUVudHJpZXM6IGZ1bmN0aW9uIGZyb21FbnRyaWVzKGl0ZXJhYmxlKSB7XG4gICAgdmFyIG9iaiA9IHt9O1xuICAgIGl0ZXJhdGUoaXRlcmFibGUsIGZ1bmN0aW9uIChrLCB2KSB7XG4gICAgICBjcmVhdGVQcm9wZXJ0eShvYmosIGssIHYpO1xuICAgIH0sIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgcmV0dXJuIG9iajtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIG5hdGl2ZUdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xuXG52YXIgRkFJTFNfT05fUFJJTUlUSVZFUyA9IGZhaWxzKGZ1bmN0aW9uICgpIHsgbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKDEpOyB9KTtcbnZhciBGT1JDRUQgPSAhREVTQ1JJUFRPUlMgfHwgRkFJTFNfT05fUFJJTUlUSVZFUztcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5ZGVzY3JpcHRvclxuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogRk9SQ0VELCBzaGFtOiAhREVTQ1JJUFRPUlMgfSwge1xuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihpdCwga2V5KSB7XG4gICAgcmV0dXJuIG5hdGl2ZUdldE93blByb3BlcnR5RGVzY3JpcHRvcih0b0luZGV4ZWRPYmplY3QoaXQpLCBrZXkpO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgb3duS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vd24ta2V5cycpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5Jyk7XG5cbi8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yc1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIHNoYW06ICFERVNDUklQVE9SUyB9LCB7XG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcnM6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcnMob2JqZWN0KSB7XG4gICAgdmFyIE8gPSB0b0luZGV4ZWRPYmplY3Qob2JqZWN0KTtcbiAgICB2YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlLmY7XG4gICAgdmFyIGtleXMgPSBvd25LZXlzKE8pO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBrZXksIGRlc2NyaXB0b3I7XG4gICAgd2hpbGUgKGtleXMubGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywga2V5ID0ga2V5c1tpbmRleCsrXSk7XG4gICAgICBpZiAoZGVzY3JpcHRvciAhPT0gdW5kZWZpbmVkKSBjcmVhdGVQcm9wZXJ0eShyZXN1bHQsIGtleSwgZGVzY3JpcHRvcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBuYXRpdmVHZXRPd25Qcm9wZXJ0eU5hbWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLWV4dGVybmFsJykuZjtcblxudmFyIEZBSUxTX09OX1BSSU1JVElWRVMgPSBmYWlscyhmdW5jdGlvbiAoKSB7IHJldHVybiAhT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoMSk7IH0pO1xuXG4vLyBgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5bmFtZXNcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZBSUxTX09OX1BSSU1JVElWRVMgfSwge1xuICBnZXRPd25Qcm9wZXJ0eU5hbWVzOiBuYXRpdmVHZXRPd25Qcm9wZXJ0eU5hbWVzXG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgbmF0aXZlR2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBDT1JSRUNUX1BST1RPVFlQRV9HRVRURVIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29ycmVjdC1wcm90b3R5cGUtZ2V0dGVyJyk7XG5cbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyBuYXRpdmVHZXRQcm90b3R5cGVPZigxKTsgfSk7XG5cbi8vIGBPYmplY3QuZ2V0UHJvdG90eXBlT2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmdldHByb3RvdHlwZW9mXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBGQUlMU19PTl9QUklNSVRJVkVTLCBzaGFtOiAhQ09SUkVDVF9QUk9UT1RZUEVfR0VUVEVSIH0sIHtcbiAgZ2V0UHJvdG90eXBlT2Y6IGZ1bmN0aW9uIGdldFByb3RvdHlwZU9mKGl0KSB7XG4gICAgcmV0dXJuIG5hdGl2ZUdldFByb3RvdHlwZU9mKHRvT2JqZWN0KGl0KSk7XG4gIH1cbn0pO1xuXG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgbmF0aXZlSXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZTtcbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyBuYXRpdmVJc0V4dGVuc2libGUoMSk7IH0pO1xuXG4vLyBgT2JqZWN0LmlzRXh0ZW5zaWJsZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vYmplY3QuaXNleHRlbnNpYmxlXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBGQUlMU19PTl9QUklNSVRJVkVTIH0sIHtcbiAgaXNFeHRlbnNpYmxlOiBmdW5jdGlvbiBpc0V4dGVuc2libGUoaXQpIHtcbiAgICByZXR1cm4gaXNPYmplY3QoaXQpID8gbmF0aXZlSXNFeHRlbnNpYmxlID8gbmF0aXZlSXNFeHRlbnNpYmxlKGl0KSA6IHRydWUgOiBmYWxzZTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgbmF0aXZlSXNGcm96ZW4gPSBPYmplY3QuaXNGcm96ZW47XG52YXIgRkFJTFNfT05fUFJJTUlUSVZFUyA9IGZhaWxzKGZ1bmN0aW9uICgpIHsgbmF0aXZlSXNGcm96ZW4oMSk7IH0pO1xuXG4vLyBgT2JqZWN0LmlzRnJvemVuYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5pc2Zyb3plblxuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogRkFJTFNfT05fUFJJTUlUSVZFUyB9LCB7XG4gIGlzRnJvemVuOiBmdW5jdGlvbiBpc0Zyb3plbihpdCkge1xuICAgIHJldHVybiBpc09iamVjdChpdCkgPyBuYXRpdmVJc0Zyb3plbiA/IG5hdGl2ZUlzRnJvemVuKGl0KSA6IGZhbHNlIDogdHJ1ZTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgbmF0aXZlSXNTZWFsZWQgPSBPYmplY3QuaXNTZWFsZWQ7XG52YXIgRkFJTFNfT05fUFJJTUlUSVZFUyA9IGZhaWxzKGZ1bmN0aW9uICgpIHsgbmF0aXZlSXNTZWFsZWQoMSk7IH0pO1xuXG4vLyBgT2JqZWN0LmlzU2VhbGVkYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5pc3NlYWxlZFxuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogRkFJTFNfT05fUFJJTUlUSVZFUyB9LCB7XG4gIGlzU2VhbGVkOiBmdW5jdGlvbiBpc1NlYWxlZChpdCkge1xuICAgIHJldHVybiBpc09iamVjdChpdCkgPyBuYXRpdmVJc1NlYWxlZCA/IG5hdGl2ZUlzU2VhbGVkKGl0KSA6IGZhbHNlIDogdHJ1ZTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zYW1lLXZhbHVlJyk7XG5cbi8vIGBPYmplY3QuaXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmlzXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSB9LCB7XG4gIGlzOiBpc1xufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBuYXRpdmVLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxudmFyIEZBSUxTX09OX1BSSU1JVElWRVMgPSBmYWlscyhmdW5jdGlvbiAoKSB7IG5hdGl2ZUtleXMoMSk7IH0pO1xuXG4vLyBgT2JqZWN0LmtleXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmtleXNcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZBSUxTX09OX1BSSU1JVElWRVMgfSwge1xuICBrZXlzOiBmdW5jdGlvbiBrZXlzKGl0KSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXModG9PYmplY3QoaXQpKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIEZPUkNFRCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtcHJvdG90eXBlLWFjY2Vzc29ycy1mb3JjZWQnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciB0b1ByaW1pdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wcmltaXRpdmUnKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcblxuLy8gYE9iamVjdC5wcm90b3R5cGUuX19sb29rdXBHZXR0ZXJfX2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vYmplY3QucHJvdG90eXBlLl9fbG9va3VwR2V0dGVyX19cbmlmIChERVNDUklQVE9SUykge1xuICAkKHsgdGFyZ2V0OiAnT2JqZWN0JywgcHJvdG86IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgICBfX2xvb2t1cEdldHRlcl9fOiBmdW5jdGlvbiBfX2xvb2t1cEdldHRlcl9fKFApIHtcbiAgICAgIHZhciBPID0gdG9PYmplY3QodGhpcyk7XG4gICAgICB2YXIga2V5ID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gICAgICB2YXIgZGVzYztcbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKGRlc2MgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywga2V5KSkgcmV0dXJuIGRlc2MuZ2V0O1xuICAgICAgfSB3aGlsZSAoTyA9IGdldFByb3RvdHlwZU9mKE8pKTtcbiAgICB9XG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBGT1JDRUQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXByb3RvdHlwZS1hY2Nlc3NvcnMtZm9yY2VkJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpLmY7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLl9fbG9va3VwU2V0dGVyX19gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS5fX2xvb2t1cFNldHRlcl9fXG5pZiAoREVTQ1JJUFRPUlMpIHtcbiAgJCh7IHRhcmdldDogJ09iamVjdCcsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCB9LCB7XG4gICAgX19sb29rdXBTZXR0ZXJfXzogZnVuY3Rpb24gX19sb29rdXBTZXR0ZXJfXyhQKSB7XG4gICAgICB2YXIgTyA9IHRvT2JqZWN0KHRoaXMpO1xuICAgICAgdmFyIGtleSA9IHRvUHJpbWl0aXZlKFAsIHRydWUpO1xuICAgICAgdmFyIGRlc2M7XG4gICAgICBkbyB7XG4gICAgICAgIGlmIChkZXNjID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIGtleSkpIHJldHVybiBkZXNjLnNldDtcbiAgICAgIH0gd2hpbGUgKE8gPSBnZXRQcm90b3R5cGVPZihPKSk7XG4gICAgfVxuICB9KTtcbn1cbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIG9uRnJlZXplID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLW1ldGFkYXRhJykub25GcmVlemU7XG52YXIgRlJFRVpJTkcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnJlZXppbmcnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG52YXIgbmF0aXZlUHJldmVudEV4dGVuc2lvbnMgPSBPYmplY3QucHJldmVudEV4dGVuc2lvbnM7XG52YXIgRkFJTFNfT05fUFJJTUlUSVZFUyA9IGZhaWxzKGZ1bmN0aW9uICgpIHsgbmF0aXZlUHJldmVudEV4dGVuc2lvbnMoMSk7IH0pO1xuXG4vLyBgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5wcmV2ZW50ZXh0ZW5zaW9uc1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogRkFJTFNfT05fUFJJTUlUSVZFUywgc2hhbTogIUZSRUVaSU5HIH0sIHtcbiAgcHJldmVudEV4dGVuc2lvbnM6IGZ1bmN0aW9uIHByZXZlbnRFeHRlbnNpb25zKGl0KSB7XG4gICAgcmV0dXJuIG5hdGl2ZVByZXZlbnRFeHRlbnNpb25zICYmIGlzT2JqZWN0KGl0KSA/IG5hdGl2ZVByZXZlbnRFeHRlbnNpb25zKG9uRnJlZXplKGl0KSkgOiBpdDtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBvbkZyZWV6ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1tZXRhZGF0YScpLm9uRnJlZXplO1xudmFyIEZSRUVaSU5HID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZyZWV6aW5nJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxudmFyIG5hdGl2ZVNlYWwgPSBPYmplY3Quc2VhbDtcbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyBuYXRpdmVTZWFsKDEpOyB9KTtcblxuLy8gYE9iamVjdC5zZWFsYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5zZWFsXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBGQUlMU19PTl9QUklNSVRJVkVTLCBzaGFtOiAhRlJFRVpJTkcgfSwge1xuICBzZWFsOiBmdW5jdGlvbiBzZWFsKGl0KSB7XG4gICAgcmV0dXJuIG5hdGl2ZVNlYWwgJiYgaXNPYmplY3QoaXQpID8gbmF0aXZlU2VhbChvbkZyZWV6ZShpdCkpIDogaXQ7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YnKTtcblxuLy8gYE9iamVjdC5zZXRQcm90b3R5cGVPZmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vYmplY3Quc2V0cHJvdG90eXBlb2ZcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlIH0sIHtcbiAgc2V0UHJvdG90eXBlT2Y6IHNldFByb3RvdHlwZU9mXG59KTtcbiIsInZhciBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtdG8tc3RyaW5nJyk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmdcbmlmICghVE9fU1RSSU5HX1RBR19TVVBQT1JUKSB7XG4gIHJlZGVmaW5lKE9iamVjdC5wcm90b3R5cGUsICd0b1N0cmluZycsIHRvU3RyaW5nLCB7IHVuc2FmZTogdHJ1ZSB9KTtcbn1cbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICR2YWx1ZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXRvLWFycmF5JykudmFsdWVzO1xuXG4vLyBgT2JqZWN0LnZhbHVlc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1vYmplY3QudmFsdWVzXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSB9LCB7XG4gIHZhbHVlczogZnVuY3Rpb24gdmFsdWVzKE8pIHtcbiAgICByZXR1cm4gJHZhbHVlcyhPKTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBwYXJzZUZsb2F0SW1wbGVtZW50YXRpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbnVtYmVyLXBhcnNlLWZsb2F0Jyk7XG5cbi8vIGBwYXJzZUZsb2F0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXBhcnNlZmxvYXQtc3RyaW5nXG4kKHsgZ2xvYmFsOiB0cnVlLCBmb3JjZWQ6IHBhcnNlRmxvYXQgIT0gcGFyc2VGbG9hdEltcGxlbWVudGF0aW9uIH0sIHtcbiAgcGFyc2VGbG9hdDogcGFyc2VGbG9hdEltcGxlbWVudGF0aW9uXG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIHBhcnNlSW50SW1wbGVtZW50YXRpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbnVtYmVyLXBhcnNlLWludCcpO1xuXG4vLyBgcGFyc2VJbnRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcGFyc2VpbnQtc3RyaW5nLXJhZGl4XG4kKHsgZ2xvYmFsOiB0cnVlLCBmb3JjZWQ6IHBhcnNlSW50ICE9IHBhcnNlSW50SW1wbGVtZW50YXRpb24gfSwge1xuICBwYXJzZUludDogcGFyc2VJbnRJbXBsZW1lbnRhdGlvblxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIG5ld1Byb21pc2VDYXBhYmlsaXR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25ldy1wcm9taXNlLWNhcGFiaWxpdHknKTtcbnZhciBwZXJmb3JtID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BlcmZvcm0nKTtcbnZhciBpdGVyYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdGUnKTtcblxuLy8gYFByb21pc2UuYWxsU2V0dGxlZGAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1wcm9taXNlLWFsbFNldHRsZWRcbiQoeyB0YXJnZXQ6ICdQcm9taXNlJywgc3RhdDogdHJ1ZSB9LCB7XG4gIGFsbFNldHRsZWQ6IGZ1bmN0aW9uIGFsbFNldHRsZWQoaXRlcmFibGUpIHtcbiAgICB2YXIgQyA9IHRoaXM7XG4gICAgdmFyIGNhcGFiaWxpdHkgPSBuZXdQcm9taXNlQ2FwYWJpbGl0eU1vZHVsZS5mKEMpO1xuICAgIHZhciByZXNvbHZlID0gY2FwYWJpbGl0eS5yZXNvbHZlO1xuICAgIHZhciByZWplY3QgPSBjYXBhYmlsaXR5LnJlamVjdDtcbiAgICB2YXIgcmVzdWx0ID0gcGVyZm9ybShmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgcHJvbWlzZVJlc29sdmUgPSBhRnVuY3Rpb24oQy5yZXNvbHZlKTtcbiAgICAgIHZhciB2YWx1ZXMgPSBbXTtcbiAgICAgIHZhciBjb3VudGVyID0gMDtcbiAgICAgIHZhciByZW1haW5pbmcgPSAxO1xuICAgICAgaXRlcmF0ZShpdGVyYWJsZSwgZnVuY3Rpb24gKHByb21pc2UpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gY291bnRlcisrO1xuICAgICAgICB2YXIgYWxyZWFkeUNhbGxlZCA9IGZhbHNlO1xuICAgICAgICB2YWx1ZXMucHVzaCh1bmRlZmluZWQpO1xuICAgICAgICByZW1haW5pbmcrKztcbiAgICAgICAgcHJvbWlzZVJlc29sdmUuY2FsbChDLCBwcm9taXNlKS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgIGlmIChhbHJlYWR5Q2FsbGVkKSByZXR1cm47XG4gICAgICAgICAgYWxyZWFkeUNhbGxlZCA9IHRydWU7XG4gICAgICAgICAgdmFsdWVzW2luZGV4XSA9IHsgc3RhdHVzOiAnZnVsZmlsbGVkJywgdmFsdWU6IHZhbHVlIH07XG4gICAgICAgICAgLS1yZW1haW5pbmcgfHwgcmVzb2x2ZSh2YWx1ZXMpO1xuICAgICAgICB9LCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgIGlmIChhbHJlYWR5Q2FsbGVkKSByZXR1cm47XG4gICAgICAgICAgYWxyZWFkeUNhbGxlZCA9IHRydWU7XG4gICAgICAgICAgdmFsdWVzW2luZGV4XSA9IHsgc3RhdHVzOiAncmVqZWN0ZWQnLCByZWFzb246IGUgfTtcbiAgICAgICAgICAtLXJlbWFpbmluZyB8fCByZXNvbHZlKHZhbHVlcyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICAtLXJlbWFpbmluZyB8fCByZXNvbHZlKHZhbHVlcyk7XG4gICAgfSk7XG4gICAgaWYgKHJlc3VsdC5lcnJvcikgcmVqZWN0KHJlc3VsdC52YWx1ZSk7XG4gICAgcmV0dXJuIGNhcGFiaWxpdHkucHJvbWlzZTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBOYXRpdmVQcm9taXNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1wcm9taXNlLWNvbnN0cnVjdG9yJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgcHJvbWlzZVJlc29sdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcHJvbWlzZS1yZXNvbHZlJyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcblxuLy8gU2FmYXJpIGJ1ZyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwODI5XG52YXIgTk9OX0dFTkVSSUMgPSAhIU5hdGl2ZVByb21pc2UgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICBOYXRpdmVQcm9taXNlLnByb3RvdHlwZVsnZmluYWxseSddLmNhbGwoeyB0aGVuOiBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0gfSwgZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9KTtcbn0pO1xuXG4vLyBgUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1wcm9taXNlLnByb3RvdHlwZS5maW5hbGx5XG4kKHsgdGFyZ2V0OiAnUHJvbWlzZScsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IE5PTl9HRU5FUklDIH0sIHtcbiAgJ2ZpbmFsbHknOiBmdW5jdGlvbiAob25GaW5hbGx5KSB7XG4gICAgdmFyIEMgPSBzcGVjaWVzQ29uc3RydWN0b3IodGhpcywgZ2V0QnVpbHRJbignUHJvbWlzZScpKTtcbiAgICB2YXIgaXNGdW5jdGlvbiA9IHR5cGVvZiBvbkZpbmFsbHkgPT0gJ2Z1bmN0aW9uJztcbiAgICByZXR1cm4gdGhpcy50aGVuKFxuICAgICAgaXNGdW5jdGlvbiA/IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgIHJldHVybiBwcm9taXNlUmVzb2x2ZShDLCBvbkZpbmFsbHkoKSkudGhlbihmdW5jdGlvbiAoKSB7IHJldHVybiB4OyB9KTtcbiAgICAgIH0gOiBvbkZpbmFsbHksXG4gICAgICBpc0Z1bmN0aW9uID8gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgcmV0dXJuIHByb21pc2VSZXNvbHZlKEMsIG9uRmluYWxseSgpKS50aGVuKGZ1bmN0aW9uICgpIHsgdGhyb3cgZTsgfSk7XG4gICAgICB9IDogb25GaW5hbGx5XG4gICAgKTtcbiAgfVxufSk7XG5cbi8vIHBhdGNoIG5hdGl2ZSBQcm9taXNlLnByb3RvdHlwZSBmb3IgbmF0aXZlIGFzeW5jIGZ1bmN0aW9uc1xuaWYgKCFJU19QVVJFICYmIHR5cGVvZiBOYXRpdmVQcm9taXNlID09ICdmdW5jdGlvbicgJiYgIU5hdGl2ZVByb21pc2UucHJvdG90eXBlWydmaW5hbGx5J10pIHtcbiAgcmVkZWZpbmUoTmF0aXZlUHJvbWlzZS5wcm90b3R5cGUsICdmaW5hbGx5JywgZ2V0QnVpbHRJbignUHJvbWlzZScpLnByb3RvdHlwZVsnZmluYWxseSddKTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIE5hdGl2ZVByb21pc2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbmF0aXZlLXByb21pc2UtY29uc3RydWN0b3InKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWRlZmluZScpO1xudmFyIHJlZGVmaW5lQWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lLWFsbCcpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgc2V0U3BlY2llcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtc3BlY2llcycpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYW5JbnN0YW5jZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1pbnN0YW5jZScpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciBpbnNwZWN0U291cmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG52YXIgY2hlY2tDb3JyZWN0bmVzc09mSXRlcmF0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NoZWNrLWNvcnJlY3RuZXNzLW9mLWl0ZXJhdGlvbicpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgdGFzayA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90YXNrJykuc2V0O1xudmFyIG1pY3JvdGFzayA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9taWNyb3Rhc2snKTtcbnZhciBwcm9taXNlUmVzb2x2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wcm9taXNlLXJlc29sdmUnKTtcbnZhciBob3N0UmVwb3J0RXJyb3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hvc3QtcmVwb3J0LWVycm9ycycpO1xudmFyIG5ld1Byb21pc2VDYXBhYmlsaXR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25ldy1wcm9taXNlLWNhcGFiaWxpdHknKTtcbnZhciBwZXJmb3JtID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3BlcmZvcm0nKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgaXNGb3JjZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtZm9yY2VkJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgVjhfVkVSU0lPTiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbicpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xudmFyIFBST01JU0UgPSAnUHJvbWlzZSc7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0O1xudmFyIHNldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLnNldDtcbnZhciBnZXRJbnRlcm5hbFByb21pc2VTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKFBST01JU0UpO1xudmFyIFByb21pc2VDb25zdHJ1Y3RvciA9IE5hdGl2ZVByb21pc2U7XG52YXIgVHlwZUVycm9yID0gZ2xvYmFsLlR5cGVFcnJvcjtcbnZhciBkb2N1bWVudCA9IGdsb2JhbC5kb2N1bWVudDtcbnZhciBwcm9jZXNzID0gZ2xvYmFsLnByb2Nlc3M7XG52YXIgJGZldGNoID0gZ2V0QnVpbHRJbignZmV0Y2gnKTtcbnZhciBuZXdQcm9taXNlQ2FwYWJpbGl0eSA9IG5ld1Byb21pc2VDYXBhYmlsaXR5TW9kdWxlLmY7XG52YXIgbmV3R2VuZXJpY1Byb21pc2VDYXBhYmlsaXR5ID0gbmV3UHJvbWlzZUNhcGFiaWxpdHk7XG52YXIgSVNfTk9ERSA9IGNsYXNzb2YocHJvY2VzcykgPT0gJ3Byb2Nlc3MnO1xudmFyIERJU1BBVENIX0VWRU5UID0gISEoZG9jdW1lbnQgJiYgZG9jdW1lbnQuY3JlYXRlRXZlbnQgJiYgZ2xvYmFsLmRpc3BhdGNoRXZlbnQpO1xudmFyIFVOSEFORExFRF9SRUpFQ1RJT04gPSAndW5oYW5kbGVkcmVqZWN0aW9uJztcbnZhciBSRUpFQ1RJT05fSEFORExFRCA9ICdyZWplY3Rpb25oYW5kbGVkJztcbnZhciBQRU5ESU5HID0gMDtcbnZhciBGVUxGSUxMRUQgPSAxO1xudmFyIFJFSkVDVEVEID0gMjtcbnZhciBIQU5ETEVEID0gMTtcbnZhciBVTkhBTkRMRUQgPSAyO1xudmFyIEludGVybmFsLCBPd25Qcm9taXNlQ2FwYWJpbGl0eSwgUHJvbWlzZVdyYXBwZXIsIG5hdGl2ZVRoZW47XG5cbnZhciBGT1JDRUQgPSBpc0ZvcmNlZChQUk9NSVNFLCBmdW5jdGlvbiAoKSB7XG4gIHZhciBHTE9CQUxfQ09SRV9KU19QUk9NSVNFID0gaW5zcGVjdFNvdXJjZShQcm9taXNlQ29uc3RydWN0b3IpICE9PSBTdHJpbmcoUHJvbWlzZUNvbnN0cnVjdG9yKTtcbiAgaWYgKCFHTE9CQUxfQ09SRV9KU19QUk9NSVNFKSB7XG4gICAgLy8gVjggNi42IChOb2RlIDEwIGFuZCBDaHJvbWUgNjYpIGhhdmUgYSBidWcgd2l0aCByZXNvbHZpbmcgY3VzdG9tIHRoZW5hYmxlc1xuICAgIC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTgzMDU2NVxuICAgIC8vIFdlIGNhbid0IGRldGVjdCBpdCBzeW5jaHJvbm91c2x5LCBzbyBqdXN0IGNoZWNrIHZlcnNpb25zXG4gICAgaWYgKFY4X1ZFUlNJT04gPT09IDY2KSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBVbmhhbmRsZWQgcmVqZWN0aW9ucyB0cmFja2luZyBzdXBwb3J0LCBOb2RlSlMgUHJvbWlzZSB3aXRob3V0IGl0IGZhaWxzIEBAc3BlY2llcyB0ZXN0XG4gICAgaWYgKCFJU19OT0RFICYmIHR5cGVvZiBQcm9taXNlUmVqZWN0aW9uRXZlbnQgIT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHRydWU7XG4gIH1cbiAgLy8gV2UgbmVlZCBQcm9taXNlI2ZpbmFsbHkgaW4gdGhlIHB1cmUgdmVyc2lvbiBmb3IgcHJldmVudGluZyBwcm90b3R5cGUgcG9sbHV0aW9uXG4gIGlmIChJU19QVVJFICYmICFQcm9taXNlQ29uc3RydWN0b3IucHJvdG90eXBlWydmaW5hbGx5J10pIHJldHVybiB0cnVlO1xuICAvLyBXZSBjYW4ndCB1c2UgQEBzcGVjaWVzIGZlYXR1cmUgZGV0ZWN0aW9uIGluIFY4IHNpbmNlIGl0IGNhdXNlc1xuICAvLyBkZW9wdGltaXphdGlvbiBhbmQgcGVyZm9ybWFuY2UgZGVncmFkYXRpb25cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzY3OVxuICBpZiAoVjhfVkVSU0lPTiA+PSA1MSAmJiAvbmF0aXZlIGNvZGUvLnRlc3QoUHJvbWlzZUNvbnN0cnVjdG9yKSkgcmV0dXJuIGZhbHNlO1xuICAvLyBEZXRlY3QgY29ycmVjdG5lc3Mgb2Ygc3ViY2xhc3Npbmcgd2l0aCBAQHNwZWNpZXMgc3VwcG9ydFxuICB2YXIgcHJvbWlzZSA9IFByb21pc2VDb25zdHJ1Y3Rvci5yZXNvbHZlKDEpO1xuICB2YXIgRmFrZVByb21pc2UgPSBmdW5jdGlvbiAoZXhlYykge1xuICAgIGV4ZWMoZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9LCBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0pO1xuICB9O1xuICB2YXIgY29uc3RydWN0b3IgPSBwcm9taXNlLmNvbnN0cnVjdG9yID0ge307XG4gIGNvbnN0cnVjdG9yW1NQRUNJRVNdID0gRmFrZVByb21pc2U7XG4gIHJldHVybiAhKHByb21pc2UudGhlbihmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0pIGluc3RhbmNlb2YgRmFrZVByb21pc2UpO1xufSk7XG5cbnZhciBJTkNPUlJFQ1RfSVRFUkFUSU9OID0gRk9SQ0VEIHx8ICFjaGVja0NvcnJlY3RuZXNzT2ZJdGVyYXRpb24oZnVuY3Rpb24gKGl0ZXJhYmxlKSB7XG4gIFByb21pc2VDb25zdHJ1Y3Rvci5hbGwoaXRlcmFibGUpWydjYXRjaCddKGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSk7XG59KTtcblxuLy8gaGVscGVyc1xudmFyIGlzVGhlbmFibGUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIHRoZW47XG4gIHJldHVybiBpc09iamVjdChpdCkgJiYgdHlwZW9mICh0aGVuID0gaXQudGhlbikgPT0gJ2Z1bmN0aW9uJyA/IHRoZW4gOiBmYWxzZTtcbn07XG5cbnZhciBub3RpZnkgPSBmdW5jdGlvbiAocHJvbWlzZSwgc3RhdGUsIGlzUmVqZWN0KSB7XG4gIGlmIChzdGF0ZS5ub3RpZmllZCkgcmV0dXJuO1xuICBzdGF0ZS5ub3RpZmllZCA9IHRydWU7XG4gIHZhciBjaGFpbiA9IHN0YXRlLnJlYWN0aW9ucztcbiAgbWljcm90YXNrKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdmFsdWUgPSBzdGF0ZS52YWx1ZTtcbiAgICB2YXIgb2sgPSBzdGF0ZS5zdGF0ZSA9PSBGVUxGSUxMRUQ7XG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICAvLyB2YXJpYWJsZSBsZW5ndGggLSBjYW4ndCB1c2UgZm9yRWFjaFxuICAgIHdoaWxlIChjaGFpbi5sZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFyIHJlYWN0aW9uID0gY2hhaW5baW5kZXgrK107XG4gICAgICB2YXIgaGFuZGxlciA9IG9rID8gcmVhY3Rpb24ub2sgOiByZWFjdGlvbi5mYWlsO1xuICAgICAgdmFyIHJlc29sdmUgPSByZWFjdGlvbi5yZXNvbHZlO1xuICAgICAgdmFyIHJlamVjdCA9IHJlYWN0aW9uLnJlamVjdDtcbiAgICAgIHZhciBkb21haW4gPSByZWFjdGlvbi5kb21haW47XG4gICAgICB2YXIgcmVzdWx0LCB0aGVuLCBleGl0ZWQ7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoaGFuZGxlcikge1xuICAgICAgICAgIGlmICghb2spIHtcbiAgICAgICAgICAgIGlmIChzdGF0ZS5yZWplY3Rpb24gPT09IFVOSEFORExFRCkgb25IYW5kbGVVbmhhbmRsZWQocHJvbWlzZSwgc3RhdGUpO1xuICAgICAgICAgICAgc3RhdGUucmVqZWN0aW9uID0gSEFORExFRDtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGhhbmRsZXIgPT09IHRydWUpIHJlc3VsdCA9IHZhbHVlO1xuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGRvbWFpbikgZG9tYWluLmVudGVyKCk7XG4gICAgICAgICAgICByZXN1bHQgPSBoYW5kbGVyKHZhbHVlKTsgLy8gY2FuIHRocm93XG4gICAgICAgICAgICBpZiAoZG9tYWluKSB7XG4gICAgICAgICAgICAgIGRvbWFpbi5leGl0KCk7XG4gICAgICAgICAgICAgIGV4aXRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXN1bHQgPT09IHJlYWN0aW9uLnByb21pc2UpIHtcbiAgICAgICAgICAgIHJlamVjdChUeXBlRXJyb3IoJ1Byb21pc2UtY2hhaW4gY3ljbGUnKSk7XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGVuID0gaXNUaGVuYWJsZShyZXN1bHQpKSB7XG4gICAgICAgICAgICB0aGVuLmNhbGwocmVzdWx0LCByZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgIH0gZWxzZSByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSByZWplY3QodmFsdWUpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGRvbWFpbiAmJiAhZXhpdGVkKSBkb21haW4uZXhpdCgpO1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBzdGF0ZS5yZWFjdGlvbnMgPSBbXTtcbiAgICBzdGF0ZS5ub3RpZmllZCA9IGZhbHNlO1xuICAgIGlmIChpc1JlamVjdCAmJiAhc3RhdGUucmVqZWN0aW9uKSBvblVuaGFuZGxlZChwcm9taXNlLCBzdGF0ZSk7XG4gIH0pO1xufTtcblxudmFyIGRpc3BhdGNoRXZlbnQgPSBmdW5jdGlvbiAobmFtZSwgcHJvbWlzZSwgcmVhc29uKSB7XG4gIHZhciBldmVudCwgaGFuZGxlcjtcbiAgaWYgKERJU1BBVENIX0VWRU5UKSB7XG4gICAgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKTtcbiAgICBldmVudC5wcm9taXNlID0gcHJvbWlzZTtcbiAgICBldmVudC5yZWFzb24gPSByZWFzb247XG4gICAgZXZlbnQuaW5pdEV2ZW50KG5hbWUsIGZhbHNlLCB0cnVlKTtcbiAgICBnbG9iYWwuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH0gZWxzZSBldmVudCA9IHsgcHJvbWlzZTogcHJvbWlzZSwgcmVhc29uOiByZWFzb24gfTtcbiAgaWYgKGhhbmRsZXIgPSBnbG9iYWxbJ29uJyArIG5hbWVdKSBoYW5kbGVyKGV2ZW50KTtcbiAgZWxzZSBpZiAobmFtZSA9PT0gVU5IQU5ETEVEX1JFSkVDVElPTikgaG9zdFJlcG9ydEVycm9ycygnVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uJywgcmVhc29uKTtcbn07XG5cbnZhciBvblVuaGFuZGxlZCA9IGZ1bmN0aW9uIChwcm9taXNlLCBzdGF0ZSkge1xuICB0YXNrLmNhbGwoZ2xvYmFsLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHZhbHVlID0gc3RhdGUudmFsdWU7XG4gICAgdmFyIElTX1VOSEFORExFRCA9IGlzVW5oYW5kbGVkKHN0YXRlKTtcbiAgICB2YXIgcmVzdWx0O1xuICAgIGlmIChJU19VTkhBTkRMRUQpIHtcbiAgICAgIHJlc3VsdCA9IHBlcmZvcm0oZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoSVNfTk9ERSkge1xuICAgICAgICAgIHByb2Nlc3MuZW1pdCgndW5oYW5kbGVkUmVqZWN0aW9uJywgdmFsdWUsIHByb21pc2UpO1xuICAgICAgICB9IGVsc2UgZGlzcGF0Y2hFdmVudChVTkhBTkRMRURfUkVKRUNUSU9OLCBwcm9taXNlLCB2YWx1ZSk7XG4gICAgICB9KTtcbiAgICAgIC8vIEJyb3dzZXJzIHNob3VsZCBub3QgdHJpZ2dlciBgcmVqZWN0aW9uSGFuZGxlZGAgZXZlbnQgaWYgaXQgd2FzIGhhbmRsZWQgaGVyZSwgTm9kZUpTIC0gc2hvdWxkXG4gICAgICBzdGF0ZS5yZWplY3Rpb24gPSBJU19OT0RFIHx8IGlzVW5oYW5kbGVkKHN0YXRlKSA/IFVOSEFORExFRCA6IEhBTkRMRUQ7XG4gICAgICBpZiAocmVzdWx0LmVycm9yKSB0aHJvdyByZXN1bHQudmFsdWU7XG4gICAgfVxuICB9KTtcbn07XG5cbnZhciBpc1VuaGFuZGxlZCA9IGZ1bmN0aW9uIChzdGF0ZSkge1xuICByZXR1cm4gc3RhdGUucmVqZWN0aW9uICE9PSBIQU5ETEVEICYmICFzdGF0ZS5wYXJlbnQ7XG59O1xuXG52YXIgb25IYW5kbGVVbmhhbmRsZWQgPSBmdW5jdGlvbiAocHJvbWlzZSwgc3RhdGUpIHtcbiAgdGFzay5jYWxsKGdsb2JhbCwgZnVuY3Rpb24gKCkge1xuICAgIGlmIChJU19OT0RFKSB7XG4gICAgICBwcm9jZXNzLmVtaXQoJ3JlamVjdGlvbkhhbmRsZWQnLCBwcm9taXNlKTtcbiAgICB9IGVsc2UgZGlzcGF0Y2hFdmVudChSRUpFQ1RJT05fSEFORExFRCwgcHJvbWlzZSwgc3RhdGUudmFsdWUpO1xuICB9KTtcbn07XG5cbnZhciBiaW5kID0gZnVuY3Rpb24gKGZuLCBwcm9taXNlLCBzdGF0ZSwgdW53cmFwKSB7XG4gIHJldHVybiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICBmbihwcm9taXNlLCBzdGF0ZSwgdmFsdWUsIHVud3JhcCk7XG4gIH07XG59O1xuXG52YXIgaW50ZXJuYWxSZWplY3QgPSBmdW5jdGlvbiAocHJvbWlzZSwgc3RhdGUsIHZhbHVlLCB1bndyYXApIHtcbiAgaWYgKHN0YXRlLmRvbmUpIHJldHVybjtcbiAgc3RhdGUuZG9uZSA9IHRydWU7XG4gIGlmICh1bndyYXApIHN0YXRlID0gdW53cmFwO1xuICBzdGF0ZS52YWx1ZSA9IHZhbHVlO1xuICBzdGF0ZS5zdGF0ZSA9IFJFSkVDVEVEO1xuICBub3RpZnkocHJvbWlzZSwgc3RhdGUsIHRydWUpO1xufTtcblxudmFyIGludGVybmFsUmVzb2x2ZSA9IGZ1bmN0aW9uIChwcm9taXNlLCBzdGF0ZSwgdmFsdWUsIHVud3JhcCkge1xuICBpZiAoc3RhdGUuZG9uZSkgcmV0dXJuO1xuICBzdGF0ZS5kb25lID0gdHJ1ZTtcbiAgaWYgKHVud3JhcCkgc3RhdGUgPSB1bndyYXA7XG4gIHRyeSB7XG4gICAgaWYgKHByb21pc2UgPT09IHZhbHVlKSB0aHJvdyBUeXBlRXJyb3IoXCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZlwiKTtcbiAgICB2YXIgdGhlbiA9IGlzVGhlbmFibGUodmFsdWUpO1xuICAgIGlmICh0aGVuKSB7XG4gICAgICBtaWNyb3Rhc2soZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgd3JhcHBlciA9IHsgZG9uZTogZmFsc2UgfTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGVuLmNhbGwodmFsdWUsXG4gICAgICAgICAgICBiaW5kKGludGVybmFsUmVzb2x2ZSwgcHJvbWlzZSwgd3JhcHBlciwgc3RhdGUpLFxuICAgICAgICAgICAgYmluZChpbnRlcm5hbFJlamVjdCwgcHJvbWlzZSwgd3JhcHBlciwgc3RhdGUpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBpbnRlcm5hbFJlamVjdChwcm9taXNlLCB3cmFwcGVyLCBlcnJvciwgc3RhdGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUudmFsdWUgPSB2YWx1ZTtcbiAgICAgIHN0YXRlLnN0YXRlID0gRlVMRklMTEVEO1xuICAgICAgbm90aWZ5KHByb21pc2UsIHN0YXRlLCBmYWxzZSk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGludGVybmFsUmVqZWN0KHByb21pc2UsIHsgZG9uZTogZmFsc2UgfSwgZXJyb3IsIHN0YXRlKTtcbiAgfVxufTtcblxuLy8gY29uc3RydWN0b3IgcG9seWZpbGxcbmlmIChGT1JDRUQpIHtcbiAgLy8gMjUuNC4zLjEgUHJvbWlzZShleGVjdXRvcilcbiAgUHJvbWlzZUNvbnN0cnVjdG9yID0gZnVuY3Rpb24gUHJvbWlzZShleGVjdXRvcikge1xuICAgIGFuSW5zdGFuY2UodGhpcywgUHJvbWlzZUNvbnN0cnVjdG9yLCBQUk9NSVNFKTtcbiAgICBhRnVuY3Rpb24oZXhlY3V0b3IpO1xuICAgIEludGVybmFsLmNhbGwodGhpcyk7XG4gICAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgICB0cnkge1xuICAgICAgZXhlY3V0b3IoYmluZChpbnRlcm5hbFJlc29sdmUsIHRoaXMsIHN0YXRlKSwgYmluZChpbnRlcm5hbFJlamVjdCwgdGhpcywgc3RhdGUpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaW50ZXJuYWxSZWplY3QodGhpcywgc3RhdGUsIGVycm9yKTtcbiAgICB9XG4gIH07XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICBJbnRlcm5hbCA9IGZ1bmN0aW9uIFByb21pc2UoZXhlY3V0b3IpIHtcbiAgICBzZXRJbnRlcm5hbFN0YXRlKHRoaXMsIHtcbiAgICAgIHR5cGU6IFBST01JU0UsXG4gICAgICBkb25lOiBmYWxzZSxcbiAgICAgIG5vdGlmaWVkOiBmYWxzZSxcbiAgICAgIHBhcmVudDogZmFsc2UsXG4gICAgICByZWFjdGlvbnM6IFtdLFxuICAgICAgcmVqZWN0aW9uOiBmYWxzZSxcbiAgICAgIHN0YXRlOiBQRU5ESU5HLFxuICAgICAgdmFsdWU6IHVuZGVmaW5lZFxuICAgIH0pO1xuICB9O1xuICBJbnRlcm5hbC5wcm90b3R5cGUgPSByZWRlZmluZUFsbChQcm9taXNlQ29uc3RydWN0b3IucHJvdG90eXBlLCB7XG4gICAgLy8gYFByb21pc2UucHJvdG90eXBlLnRoZW5gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXByb21pc2UucHJvdG90eXBlLnRoZW5cbiAgICB0aGVuOiBmdW5jdGlvbiB0aGVuKG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKSB7XG4gICAgICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFByb21pc2VTdGF0ZSh0aGlzKTtcbiAgICAgIHZhciByZWFjdGlvbiA9IG5ld1Byb21pc2VDYXBhYmlsaXR5KHNwZWNpZXNDb25zdHJ1Y3Rvcih0aGlzLCBQcm9taXNlQ29uc3RydWN0b3IpKTtcbiAgICAgIHJlYWN0aW9uLm9rID0gdHlwZW9mIG9uRnVsZmlsbGVkID09ICdmdW5jdGlvbicgPyBvbkZ1bGZpbGxlZCA6IHRydWU7XG4gICAgICByZWFjdGlvbi5mYWlsID0gdHlwZW9mIG9uUmVqZWN0ZWQgPT0gJ2Z1bmN0aW9uJyAmJiBvblJlamVjdGVkO1xuICAgICAgcmVhY3Rpb24uZG9tYWluID0gSVNfTk9ERSA/IHByb2Nlc3MuZG9tYWluIDogdW5kZWZpbmVkO1xuICAgICAgc3RhdGUucGFyZW50ID0gdHJ1ZTtcbiAgICAgIHN0YXRlLnJlYWN0aW9ucy5wdXNoKHJlYWN0aW9uKTtcbiAgICAgIGlmIChzdGF0ZS5zdGF0ZSAhPSBQRU5ESU5HKSBub3RpZnkodGhpcywgc3RhdGUsIGZhbHNlKTtcbiAgICAgIHJldHVybiByZWFjdGlvbi5wcm9taXNlO1xuICAgIH0sXG4gICAgLy8gYFByb21pc2UucHJvdG90eXBlLmNhdGNoYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1wcm9taXNlLnByb3RvdHlwZS5jYXRjaFxuICAgICdjYXRjaCc6IGZ1bmN0aW9uIChvblJlamVjdGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy50aGVuKHVuZGVmaW5lZCwgb25SZWplY3RlZCk7XG4gICAgfVxuICB9KTtcbiAgT3duUHJvbWlzZUNhcGFiaWxpdHkgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHByb21pc2UgPSBuZXcgSW50ZXJuYWwoKTtcbiAgICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHByb21pc2UpO1xuICAgIHRoaXMucHJvbWlzZSA9IHByb21pc2U7XG4gICAgdGhpcy5yZXNvbHZlID0gYmluZChpbnRlcm5hbFJlc29sdmUsIHByb21pc2UsIHN0YXRlKTtcbiAgICB0aGlzLnJlamVjdCA9IGJpbmQoaW50ZXJuYWxSZWplY3QsIHByb21pc2UsIHN0YXRlKTtcbiAgfTtcbiAgbmV3UHJvbWlzZUNhcGFiaWxpdHlNb2R1bGUuZiA9IG5ld1Byb21pc2VDYXBhYmlsaXR5ID0gZnVuY3Rpb24gKEMpIHtcbiAgICByZXR1cm4gQyA9PT0gUHJvbWlzZUNvbnN0cnVjdG9yIHx8IEMgPT09IFByb21pc2VXcmFwcGVyXG4gICAgICA/IG5ldyBPd25Qcm9taXNlQ2FwYWJpbGl0eShDKVxuICAgICAgOiBuZXdHZW5lcmljUHJvbWlzZUNhcGFiaWxpdHkoQyk7XG4gIH07XG5cbiAgaWYgKCFJU19QVVJFICYmIHR5cGVvZiBOYXRpdmVQcm9taXNlID09ICdmdW5jdGlvbicpIHtcbiAgICBuYXRpdmVUaGVuID0gTmF0aXZlUHJvbWlzZS5wcm90b3R5cGUudGhlbjtcblxuICAgIC8vIHdyYXAgbmF0aXZlIFByb21pc2UjdGhlbiBmb3IgbmF0aXZlIGFzeW5jIGZ1bmN0aW9uc1xuICAgIHJlZGVmaW5lKE5hdGl2ZVByb21pc2UucHJvdG90eXBlLCAndGhlbicsIGZ1bmN0aW9uIHRoZW4ob25GdWxmaWxsZWQsIG9uUmVqZWN0ZWQpIHtcbiAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZUNvbnN0cnVjdG9yKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgbmF0aXZlVGhlbi5jYWxsKHRoYXQsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgICB9KS50aGVuKG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKTtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvNjQwXG4gICAgfSwgeyB1bnNhZmU6IHRydWUgfSk7XG5cbiAgICAvLyB3cmFwIGZldGNoIHJlc3VsdFxuICAgIGlmICh0eXBlb2YgJGZldGNoID09ICdmdW5jdGlvbicpICQoeyBnbG9iYWw6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIGZvcmNlZDogdHJ1ZSB9LCB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICAgIGZldGNoOiBmdW5jdGlvbiBmZXRjaChpbnB1dCAvKiAsIGluaXQgKi8pIHtcbiAgICAgICAgcmV0dXJuIHByb21pc2VSZXNvbHZlKFByb21pc2VDb25zdHJ1Y3RvciwgJGZldGNoLmFwcGx5KGdsb2JhbCwgYXJndW1lbnRzKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuJCh7IGdsb2JhbDogdHJ1ZSwgd3JhcDogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICBQcm9taXNlOiBQcm9taXNlQ29uc3RydWN0b3Jcbn0pO1xuXG5zZXRUb1N0cmluZ1RhZyhQcm9taXNlQ29uc3RydWN0b3IsIFBST01JU0UsIGZhbHNlLCB0cnVlKTtcbnNldFNwZWNpZXMoUFJPTUlTRSk7XG5cblByb21pc2VXcmFwcGVyID0gZ2V0QnVpbHRJbihQUk9NSVNFKTtcblxuLy8gc3RhdGljc1xuJCh7IHRhcmdldDogUFJPTUlTRSwgc3RhdDogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICAvLyBgUHJvbWlzZS5yZWplY3RgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1wcm9taXNlLnJlamVjdFxuICByZWplY3Q6IGZ1bmN0aW9uIHJlamVjdChyKSB7XG4gICAgdmFyIGNhcGFiaWxpdHkgPSBuZXdQcm9taXNlQ2FwYWJpbGl0eSh0aGlzKTtcbiAgICBjYXBhYmlsaXR5LnJlamVjdC5jYWxsKHVuZGVmaW5lZCwgcik7XG4gICAgcmV0dXJuIGNhcGFiaWxpdHkucHJvbWlzZTtcbiAgfVxufSk7XG5cbiQoeyB0YXJnZXQ6IFBST01JU0UsIHN0YXQ6IHRydWUsIGZvcmNlZDogSVNfUFVSRSB8fCBGT1JDRUQgfSwge1xuICAvLyBgUHJvbWlzZS5yZXNvbHZlYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcHJvbWlzZS5yZXNvbHZlXG4gIHJlc29sdmU6IGZ1bmN0aW9uIHJlc29sdmUoeCkge1xuICAgIHJldHVybiBwcm9taXNlUmVzb2x2ZShJU19QVVJFICYmIHRoaXMgPT09IFByb21pc2VXcmFwcGVyID8gUHJvbWlzZUNvbnN0cnVjdG9yIDogdGhpcywgeCk7XG4gIH1cbn0pO1xuXG4kKHsgdGFyZ2V0OiBQUk9NSVNFLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IElOQ09SUkVDVF9JVEVSQVRJT04gfSwge1xuICAvLyBgUHJvbWlzZS5hbGxgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1wcm9taXNlLmFsbFxuICBhbGw6IGZ1bmN0aW9uIGFsbChpdGVyYWJsZSkge1xuICAgIHZhciBDID0gdGhpcztcbiAgICB2YXIgY2FwYWJpbGl0eSA9IG5ld1Byb21pc2VDYXBhYmlsaXR5KEMpO1xuICAgIHZhciByZXNvbHZlID0gY2FwYWJpbGl0eS5yZXNvbHZlO1xuICAgIHZhciByZWplY3QgPSBjYXBhYmlsaXR5LnJlamVjdDtcbiAgICB2YXIgcmVzdWx0ID0gcGVyZm9ybShmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgJHByb21pc2VSZXNvbHZlID0gYUZ1bmN0aW9uKEMucmVzb2x2ZSk7XG4gICAgICB2YXIgdmFsdWVzID0gW107XG4gICAgICB2YXIgY291bnRlciA9IDA7XG4gICAgICB2YXIgcmVtYWluaW5nID0gMTtcbiAgICAgIGl0ZXJhdGUoaXRlcmFibGUsIGZ1bmN0aW9uIChwcm9taXNlKSB7XG4gICAgICAgIHZhciBpbmRleCA9IGNvdW50ZXIrKztcbiAgICAgICAgdmFyIGFscmVhZHlDYWxsZWQgPSBmYWxzZTtcbiAgICAgICAgdmFsdWVzLnB1c2godW5kZWZpbmVkKTtcbiAgICAgICAgcmVtYWluaW5nKys7XG4gICAgICAgICRwcm9taXNlUmVzb2x2ZS5jYWxsKEMsIHByb21pc2UpLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgaWYgKGFscmVhZHlDYWxsZWQpIHJldHVybjtcbiAgICAgICAgICBhbHJlYWR5Q2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgICB2YWx1ZXNbaW5kZXhdID0gdmFsdWU7XG4gICAgICAgICAgLS1yZW1haW5pbmcgfHwgcmVzb2x2ZSh2YWx1ZXMpO1xuICAgICAgICB9LCByZWplY3QpO1xuICAgICAgfSk7XG4gICAgICAtLXJlbWFpbmluZyB8fCByZXNvbHZlKHZhbHVlcyk7XG4gICAgfSk7XG4gICAgaWYgKHJlc3VsdC5lcnJvcikgcmVqZWN0KHJlc3VsdC52YWx1ZSk7XG4gICAgcmV0dXJuIGNhcGFiaWxpdHkucHJvbWlzZTtcbiAgfSxcbiAgLy8gYFByb21pc2UucmFjZWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXByb21pc2UucmFjZVxuICByYWNlOiBmdW5jdGlvbiByYWNlKGl0ZXJhYmxlKSB7XG4gICAgdmFyIEMgPSB0aGlzO1xuICAgIHZhciBjYXBhYmlsaXR5ID0gbmV3UHJvbWlzZUNhcGFiaWxpdHkoQyk7XG4gICAgdmFyIHJlamVjdCA9IGNhcGFiaWxpdHkucmVqZWN0O1xuICAgIHZhciByZXN1bHQgPSBwZXJmb3JtKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciAkcHJvbWlzZVJlc29sdmUgPSBhRnVuY3Rpb24oQy5yZXNvbHZlKTtcbiAgICAgIGl0ZXJhdGUoaXRlcmFibGUsIGZ1bmN0aW9uIChwcm9taXNlKSB7XG4gICAgICAgICRwcm9taXNlUmVzb2x2ZS5jYWxsKEMsIHByb21pc2UpLnRoZW4oY2FwYWJpbGl0eS5yZXNvbHZlLCByZWplY3QpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgaWYgKHJlc3VsdC5lcnJvcikgcmVqZWN0KHJlc3VsdC52YWx1ZSk7XG4gICAgcmV0dXJuIGNhcGFiaWxpdHkucHJvbWlzZTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxudmFyIG5hdGl2ZUFwcGx5ID0gZ2V0QnVpbHRJbignUmVmbGVjdCcsICdhcHBseScpO1xudmFyIGZ1bmN0aW9uQXBwbHkgPSBGdW5jdGlvbi5hcHBseTtcblxuLy8gTVMgRWRnZSBhcmd1bWVudHNMaXN0IGFyZ3VtZW50IGlzIG9wdGlvbmFsXG52YXIgT1BUSU9OQUxfQVJHVU1FTlRTX0xJU1QgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICBuYXRpdmVBcHBseShmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH0pO1xufSk7XG5cbi8vIGBSZWZsZWN0LmFwcGx5YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3QuYXBwbHlcbiQoeyB0YXJnZXQ6ICdSZWZsZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBPUFRJT05BTF9BUkdVTUVOVFNfTElTVCB9LCB7XG4gIGFwcGx5OiBmdW5jdGlvbiBhcHBseSh0YXJnZXQsIHRoaXNBcmd1bWVudCwgYXJndW1lbnRzTGlzdCkge1xuICAgIGFGdW5jdGlvbih0YXJnZXQpO1xuICAgIGFuT2JqZWN0KGFyZ3VtZW50c0xpc3QpO1xuICAgIHJldHVybiBuYXRpdmVBcHBseVxuICAgICAgPyBuYXRpdmVBcHBseSh0YXJnZXQsIHRoaXNBcmd1bWVudCwgYXJndW1lbnRzTGlzdClcbiAgICAgIDogZnVuY3Rpb25BcHBseS5jYWxsKHRhcmdldCwgdGhpc0FyZ3VtZW50LCBhcmd1bWVudHNMaXN0KTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG52YXIgbmF0aXZlQ29uc3RydWN0ID0gZ2V0QnVpbHRJbignUmVmbGVjdCcsICdjb25zdHJ1Y3QnKTtcblxuLy8gYFJlZmxlY3QuY29uc3RydWN0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3QuY29uc3RydWN0XG4vLyBNUyBFZGdlIHN1cHBvcnRzIG9ubHkgMiBhcmd1bWVudHMgYW5kIGFyZ3VtZW50c0xpc3QgYXJndW1lbnQgaXMgb3B0aW9uYWxcbi8vIEZGIE5pZ2h0bHkgc2V0cyB0aGlyZCBhcmd1bWVudCBhcyBgbmV3LnRhcmdldGAsIGJ1dCBkb2VzIG5vdCBjcmVhdGUgYHRoaXNgIGZyb20gaXRcbnZhciBORVdfVEFSR0VUX0JVRyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gRigpIHsgLyogZW1wdHkgKi8gfVxuICByZXR1cm4gIShuYXRpdmVDb25zdHJ1Y3QoZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9LCBbXSwgRikgaW5zdGFuY2VvZiBGKTtcbn0pO1xudmFyIEFSR1NfQlVHID0gIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgbmF0aXZlQ29uc3RydWN0KGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSk7XG59KTtcbnZhciBGT1JDRUQgPSBORVdfVEFSR0VUX0JVRyB8fCBBUkdTX0JVRztcblxuJCh7IHRhcmdldDogJ1JlZmxlY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCwgc2hhbTogRk9SQ0VEIH0sIHtcbiAgY29uc3RydWN0OiBmdW5jdGlvbiBjb25zdHJ1Y3QoVGFyZ2V0LCBhcmdzIC8qICwgbmV3VGFyZ2V0ICovKSB7XG4gICAgYUZ1bmN0aW9uKFRhcmdldCk7XG4gICAgYW5PYmplY3QoYXJncyk7XG4gICAgdmFyIG5ld1RhcmdldCA9IGFyZ3VtZW50cy5sZW5ndGggPCAzID8gVGFyZ2V0IDogYUZ1bmN0aW9uKGFyZ3VtZW50c1syXSk7XG4gICAgaWYgKEFSR1NfQlVHICYmICFORVdfVEFSR0VUX0JVRykgcmV0dXJuIG5hdGl2ZUNvbnN0cnVjdChUYXJnZXQsIGFyZ3MsIG5ld1RhcmdldCk7XG4gICAgaWYgKFRhcmdldCA9PSBuZXdUYXJnZXQpIHtcbiAgICAgIC8vIHcvbyBhbHRlcmVkIG5ld1RhcmdldCwgb3B0aW1pemF0aW9uIGZvciAwLTQgYXJndW1lbnRzXG4gICAgICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgIGNhc2UgMDogcmV0dXJuIG5ldyBUYXJnZXQoKTtcbiAgICAgICAgY2FzZSAxOiByZXR1cm4gbmV3IFRhcmdldChhcmdzWzBdKTtcbiAgICAgICAgY2FzZSAyOiByZXR1cm4gbmV3IFRhcmdldChhcmdzWzBdLCBhcmdzWzFdKTtcbiAgICAgICAgY2FzZSAzOiByZXR1cm4gbmV3IFRhcmdldChhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdKTtcbiAgICAgICAgY2FzZSA0OiByZXR1cm4gbmV3IFRhcmdldChhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdKTtcbiAgICAgIH1cbiAgICAgIC8vIHcvbyBhbHRlcmVkIG5ld1RhcmdldCwgbG90IG9mIGFyZ3VtZW50cyBjYXNlXG4gICAgICB2YXIgJGFyZ3MgPSBbbnVsbF07XG4gICAgICAkYXJncy5wdXNoLmFwcGx5KCRhcmdzLCBhcmdzKTtcbiAgICAgIHJldHVybiBuZXcgKGJpbmQuYXBwbHkoVGFyZ2V0LCAkYXJncykpKCk7XG4gICAgfVxuICAgIC8vIHdpdGggYWx0ZXJlZCBuZXdUYXJnZXQsIG5vdCBzdXBwb3J0IGJ1aWx0LWluIGNvbnN0cnVjdG9yc1xuICAgIHZhciBwcm90byA9IG5ld1RhcmdldC5wcm90b3R5cGU7XG4gICAgdmFyIGluc3RhbmNlID0gY3JlYXRlKGlzT2JqZWN0KHByb3RvKSA/IHByb3RvIDogT2JqZWN0LnByb3RvdHlwZSk7XG4gICAgdmFyIHJlc3VsdCA9IEZ1bmN0aW9uLmFwcGx5LmNhbGwoVGFyZ2V0LCBpbnN0YW5jZSwgYXJncyk7XG4gICAgcmV0dXJuIGlzT2JqZWN0KHJlc3VsdCkgPyByZXN1bHQgOiBpbnN0YW5jZTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBNUyBFZGdlIGhhcyBicm9rZW4gUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eSAtIHRocm93aW5nIGluc3RlYWQgb2YgcmV0dXJuaW5nIGZhbHNlXG52YXIgRVJST1JfSU5TVEVBRF9PRl9GQUxTRSA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIFJlZmxlY3QuZGVmaW5lUHJvcGVydHkoZGVmaW5lUHJvcGVydHlNb2R1bGUuZih7fSwgMSwgeyB2YWx1ZTogMSB9KSwgMSwgeyB2YWx1ZTogMiB9KTtcbn0pO1xuXG4vLyBgUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LmRlZmluZXByb3BlcnR5XG4kKHsgdGFyZ2V0OiAnUmVmbGVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogRVJST1JfSU5TVEVBRF9PRl9GQUxTRSwgc2hhbTogIURFU0NSSVBUT1JTIH0sIHtcbiAgZGVmaW5lUHJvcGVydHk6IGZ1bmN0aW9uIGRlZmluZVByb3BlcnR5KHRhcmdldCwgcHJvcGVydHlLZXksIGF0dHJpYnV0ZXMpIHtcbiAgICBhbk9iamVjdCh0YXJnZXQpO1xuICAgIHZhciBrZXkgPSB0b1ByaW1pdGl2ZShwcm9wZXJ0eUtleSwgdHJ1ZSk7XG4gICAgYW5PYmplY3QoYXR0cmlidXRlcyk7XG4gICAgdHJ5IHtcbiAgICAgIGRlZmluZVByb3BlcnR5TW9kdWxlLmYodGFyZ2V0LCBrZXksIGF0dHJpYnV0ZXMpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKS5mO1xuXG4vLyBgUmVmbGVjdC5kZWxldGVQcm9wZXJ0eWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LmRlbGV0ZXByb3BlcnR5XG4kKHsgdGFyZ2V0OiAnUmVmbGVjdCcsIHN0YXQ6IHRydWUgfSwge1xuICBkZWxldGVQcm9wZXJ0eTogZnVuY3Rpb24gZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFuT2JqZWN0KHRhcmdldCksIHByb3BlcnR5S2V5KTtcbiAgICByZXR1cm4gZGVzY3JpcHRvciAmJiAhZGVzY3JpcHRvci5jb25maWd1cmFibGUgPyBmYWxzZSA6IGRlbGV0ZSB0YXJnZXRbcHJvcGVydHlLZXldO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcblxuLy8gYFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yXG4kKHsgdGFyZ2V0OiAnUmVmbGVjdCcsIHN0YXQ6IHRydWUsIHNoYW06ICFERVNDUklQVE9SUyB9LCB7XG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjogZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgcHJvcGVydHlLZXkpIHtcbiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlLmYoYW5PYmplY3QodGFyZ2V0KSwgcHJvcGVydHlLZXkpO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIG9iamVjdEdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgQ09SUkVDVF9QUk9UT1RZUEVfR0VUVEVSID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvcnJlY3QtcHJvdG90eXBlLWdldHRlcicpO1xuXG4vLyBgUmVmbGVjdC5nZXRQcm90b3R5cGVPZmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LmdldHByb3RvdHlwZW9mXG4kKHsgdGFyZ2V0OiAnUmVmbGVjdCcsIHN0YXQ6IHRydWUsIHNoYW06ICFDT1JSRUNUX1BST1RPVFlQRV9HRVRURVIgfSwge1xuICBnZXRQcm90b3R5cGVPZjogZnVuY3Rpb24gZ2V0UHJvdG90eXBlT2YodGFyZ2V0KSB7XG4gICAgcmV0dXJuIG9iamVjdEdldFByb3RvdHlwZU9mKGFuT2JqZWN0KHRhcmdldCkpO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mJyk7XG5cbi8vIGBSZWZsZWN0LmdldGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LmdldFxuZnVuY3Rpb24gZ2V0KHRhcmdldCwgcHJvcGVydHlLZXkgLyogLCByZWNlaXZlciAqLykge1xuICB2YXIgcmVjZWl2ZXIgPSBhcmd1bWVudHMubGVuZ3RoIDwgMyA/IHRhcmdldCA6IGFyZ3VtZW50c1syXTtcbiAgdmFyIGRlc2NyaXB0b3IsIHByb3RvdHlwZTtcbiAgaWYgKGFuT2JqZWN0KHRhcmdldCkgPT09IHJlY2VpdmVyKSByZXR1cm4gdGFyZ2V0W3Byb3BlcnR5S2V5XTtcbiAgaWYgKGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUuZih0YXJnZXQsIHByb3BlcnR5S2V5KSkgcmV0dXJuIGhhcyhkZXNjcmlwdG9yLCAndmFsdWUnKVxuICAgID8gZGVzY3JpcHRvci52YWx1ZVxuICAgIDogZGVzY3JpcHRvci5nZXQgPT09IHVuZGVmaW5lZFxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogZGVzY3JpcHRvci5nZXQuY2FsbChyZWNlaXZlcik7XG4gIGlmIChpc09iamVjdChwcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZih0YXJnZXQpKSkgcmV0dXJuIGdldChwcm90b3R5cGUsIHByb3BlcnR5S2V5LCByZWNlaXZlcik7XG59XG5cbiQoeyB0YXJnZXQ6ICdSZWZsZWN0Jywgc3RhdDogdHJ1ZSB9LCB7XG4gIGdldDogZ2V0XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xuXG4vLyBgUmVmbGVjdC5oYXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVmbGVjdC5oYXNcbiQoeyB0YXJnZXQ6ICdSZWZsZWN0Jywgc3RhdDogdHJ1ZSB9LCB7XG4gIGhhczogZnVuY3Rpb24gaGFzKHRhcmdldCwgcHJvcGVydHlLZXkpIHtcbiAgICByZXR1cm4gcHJvcGVydHlLZXkgaW4gdGFyZ2V0O1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG52YXIgb2JqZWN0SXNFeHRlbnNpYmxlID0gT2JqZWN0LmlzRXh0ZW5zaWJsZTtcblxuLy8gYFJlZmxlY3QuaXNFeHRlbnNpYmxlYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3QuaXNleHRlbnNpYmxlXG4kKHsgdGFyZ2V0OiAnUmVmbGVjdCcsIHN0YXQ6IHRydWUgfSwge1xuICBpc0V4dGVuc2libGU6IGZ1bmN0aW9uIGlzRXh0ZW5zaWJsZSh0YXJnZXQpIHtcbiAgICBhbk9iamVjdCh0YXJnZXQpO1xuICAgIHJldHVybiBvYmplY3RJc0V4dGVuc2libGUgPyBvYmplY3RJc0V4dGVuc2libGUodGFyZ2V0KSA6IHRydWU7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgb3duS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vd24ta2V5cycpO1xuXG4vLyBgUmVmbGVjdC5vd25LZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3Qub3dua2V5c1xuJCh7IHRhcmdldDogJ1JlZmxlY3QnLCBzdGF0OiB0cnVlIH0sIHtcbiAgb3duS2V5czogb3duS2V5c1xufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIEZSRUVaSU5HID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZyZWV6aW5nJyk7XG5cbi8vIGBSZWZsZWN0LnByZXZlbnRFeHRlbnNpb25zYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3QucHJldmVudGV4dGVuc2lvbnNcbiQoeyB0YXJnZXQ6ICdSZWZsZWN0Jywgc3RhdDogdHJ1ZSwgc2hhbTogIUZSRUVaSU5HIH0sIHtcbiAgcHJldmVudEV4dGVuc2lvbnM6IGZ1bmN0aW9uIHByZXZlbnRFeHRlbnNpb25zKHRhcmdldCkge1xuICAgIGFuT2JqZWN0KHRhcmdldCk7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBvYmplY3RQcmV2ZW50RXh0ZW5zaW9ucyA9IGdldEJ1aWx0SW4oJ09iamVjdCcsICdwcmV2ZW50RXh0ZW5zaW9ucycpO1xuICAgICAgaWYgKG9iamVjdFByZXZlbnRFeHRlbnNpb25zKSBvYmplY3RQcmV2ZW50RXh0ZW5zaW9ucyh0YXJnZXQpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYVBvc3NpYmxlUHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtcG9zc2libGUtcHJvdG90eXBlJyk7XG52YXIgb2JqZWN0U2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YnKTtcblxuLy8gYFJlZmxlY3Quc2V0UHJvdG90eXBlT2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVmbGVjdC5zZXRwcm90b3R5cGVvZlxuaWYgKG9iamVjdFNldFByb3RvdHlwZU9mKSAkKHsgdGFyZ2V0OiAnUmVmbGVjdCcsIHN0YXQ6IHRydWUgfSwge1xuICBzZXRQcm90b3R5cGVPZjogZnVuY3Rpb24gc2V0UHJvdG90eXBlT2YodGFyZ2V0LCBwcm90bykge1xuICAgIGFuT2JqZWN0KHRhcmdldCk7XG4gICAgYVBvc3NpYmxlUHJvdG90eXBlKHByb3RvKTtcbiAgICB0cnkge1xuICAgICAgb2JqZWN0U2V0UHJvdG90eXBlT2YodGFyZ2V0LCBwcm90byk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xuXG4vLyBgUmVmbGVjdC5zZXRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVmbGVjdC5zZXRcbmZ1bmN0aW9uIHNldCh0YXJnZXQsIHByb3BlcnR5S2V5LCBWIC8qICwgcmVjZWl2ZXIgKi8pIHtcbiAgdmFyIHJlY2VpdmVyID0gYXJndW1lbnRzLmxlbmd0aCA8IDQgPyB0YXJnZXQgOiBhcmd1bWVudHNbM107XG4gIHZhciBvd25EZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlLmYoYW5PYmplY3QodGFyZ2V0KSwgcHJvcGVydHlLZXkpO1xuICB2YXIgZXhpc3RpbmdEZXNjcmlwdG9yLCBwcm90b3R5cGU7XG4gIGlmICghb3duRGVzY3JpcHRvcikge1xuICAgIGlmIChpc09iamVjdChwcm90b3R5cGUgPSBnZXRQcm90b3R5cGVPZih0YXJnZXQpKSkge1xuICAgICAgcmV0dXJuIHNldChwcm90b3R5cGUsIHByb3BlcnR5S2V5LCBWLCByZWNlaXZlcik7XG4gICAgfVxuICAgIG93bkRlc2NyaXB0b3IgPSBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMCk7XG4gIH1cbiAgaWYgKGhhcyhvd25EZXNjcmlwdG9yLCAndmFsdWUnKSkge1xuICAgIGlmIChvd25EZXNjcmlwdG9yLndyaXRhYmxlID09PSBmYWxzZSB8fCAhaXNPYmplY3QocmVjZWl2ZXIpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGV4aXN0aW5nRGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZS5mKHJlY2VpdmVyLCBwcm9wZXJ0eUtleSkpIHtcbiAgICAgIGlmIChleGlzdGluZ0Rlc2NyaXB0b3IuZ2V0IHx8IGV4aXN0aW5nRGVzY3JpcHRvci5zZXQgfHwgZXhpc3RpbmdEZXNjcmlwdG9yLndyaXRhYmxlID09PSBmYWxzZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgZXhpc3RpbmdEZXNjcmlwdG9yLnZhbHVlID0gVjtcbiAgICAgIGRlZmluZVByb3BlcnR5TW9kdWxlLmYocmVjZWl2ZXIsIHByb3BlcnR5S2V5LCBleGlzdGluZ0Rlc2NyaXB0b3IpO1xuICAgIH0gZWxzZSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKHJlY2VpdmVyLCBwcm9wZXJ0eUtleSwgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDAsIFYpKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gb3duRGVzY3JpcHRvci5zZXQgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogKG93bkRlc2NyaXB0b3Iuc2V0LmNhbGwocmVjZWl2ZXIsIFYpLCB0cnVlKTtcbn1cblxuLy8gTVMgRWRnZSAxNy0xOCBSZWZsZWN0LnNldCBhbGxvd3Mgc2V0dGluZyB0aGUgcHJvcGVydHkgdG8gb2JqZWN0XG4vLyB3aXRoIG5vbi13cml0YWJsZSBwcm9wZXJ0eSBvbiB0aGUgcHJvdG90eXBlXG52YXIgTVNfRURHRV9CVUcgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBvYmplY3QgPSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKHt9LCAnYScsIHsgY29uZmlndXJhYmxlOiB0cnVlIH0pO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgcmV0dXJuIFJlZmxlY3Quc2V0KGdldFByb3RvdHlwZU9mKG9iamVjdCksICdhJywgMSwgb2JqZWN0KSAhPT0gZmFsc2U7XG59KTtcblxuJCh7IHRhcmdldDogJ1JlZmxlY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IE1TX0VER0VfQlVHIH0sIHtcbiAgc2V0OiBzZXRcbn0pO1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGlzRm9yY2VkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWZvcmNlZCcpO1xudmFyIGluaGVyaXRJZlJlcXVpcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luaGVyaXQtaWYtcmVxdWlyZWQnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzJykuZjtcbnZhciBpc1JlZ0V4cCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1yZWdleHAnKTtcbnZhciBnZXRGbGFncyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZmxhZ3MnKTtcbnZhciBzdGlja3lIZWxwZXJzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1zdGlja3ktaGVscGVycycpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJykuc2V0O1xudmFyIHNldFNwZWNpZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXNwZWNpZXMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIE1BVENIID0gd2VsbEtub3duU3ltYm9sKCdtYXRjaCcpO1xudmFyIE5hdGl2ZVJlZ0V4cCA9IGdsb2JhbC5SZWdFeHA7XG52YXIgUmVnRXhwUHJvdG90eXBlID0gTmF0aXZlUmVnRXhwLnByb3RvdHlwZTtcbnZhciByZTEgPSAvYS9nO1xudmFyIHJlMiA9IC9hL2c7XG5cbi8vIFwibmV3XCIgc2hvdWxkIGNyZWF0ZSBhIG5ldyBvYmplY3QsIG9sZCB3ZWJraXQgYnVnXG52YXIgQ09SUkVDVF9ORVcgPSBuZXcgTmF0aXZlUmVnRXhwKHJlMSkgIT09IHJlMTtcblxudmFyIFVOU1VQUE9SVEVEX1kgPSBzdGlja3lIZWxwZXJzLlVOU1VQUE9SVEVEX1k7XG5cbnZhciBGT1JDRUQgPSBERVNDUklQVE9SUyAmJiBpc0ZvcmNlZCgnUmVnRXhwJywgKCFDT1JSRUNUX05FVyB8fCBVTlNVUFBPUlRFRF9ZIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmUyW01BVENIXSA9IGZhbHNlO1xuICAvLyBSZWdFeHAgY29uc3RydWN0b3IgY2FuIGFsdGVyIGZsYWdzIGFuZCBJc1JlZ0V4cCB3b3JrcyBjb3JyZWN0IHdpdGggQEBtYXRjaFxuICByZXR1cm4gTmF0aXZlUmVnRXhwKHJlMSkgIT0gcmUxIHx8IE5hdGl2ZVJlZ0V4cChyZTIpID09IHJlMiB8fCBOYXRpdmVSZWdFeHAocmUxLCAnaScpICE9ICcvYS9pJztcbn0pKSk7XG5cbi8vIGBSZWdFeHBgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWdleHAtY29uc3RydWN0b3JcbmlmIChGT1JDRUQpIHtcbiAgdmFyIFJlZ0V4cFdyYXBwZXIgPSBmdW5jdGlvbiBSZWdFeHAocGF0dGVybiwgZmxhZ3MpIHtcbiAgICB2YXIgdGhpc0lzUmVnRXhwID0gdGhpcyBpbnN0YW5jZW9mIFJlZ0V4cFdyYXBwZXI7XG4gICAgdmFyIHBhdHRlcm5Jc1JlZ0V4cCA9IGlzUmVnRXhwKHBhdHRlcm4pO1xuICAgIHZhciBmbGFnc0FyZVVuZGVmaW5lZCA9IGZsYWdzID09PSB1bmRlZmluZWQ7XG4gICAgdmFyIHN0aWNreTtcblxuICAgIGlmICghdGhpc0lzUmVnRXhwICYmIHBhdHRlcm5Jc1JlZ0V4cCAmJiBwYXR0ZXJuLmNvbnN0cnVjdG9yID09PSBSZWdFeHBXcmFwcGVyICYmIGZsYWdzQXJlVW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcGF0dGVybjtcbiAgICB9XG5cbiAgICBpZiAoQ09SUkVDVF9ORVcpIHtcbiAgICAgIGlmIChwYXR0ZXJuSXNSZWdFeHAgJiYgIWZsYWdzQXJlVW5kZWZpbmVkKSBwYXR0ZXJuID0gcGF0dGVybi5zb3VyY2U7XG4gICAgfSBlbHNlIGlmIChwYXR0ZXJuIGluc3RhbmNlb2YgUmVnRXhwV3JhcHBlcikge1xuICAgICAgaWYgKGZsYWdzQXJlVW5kZWZpbmVkKSBmbGFncyA9IGdldEZsYWdzLmNhbGwocGF0dGVybik7XG4gICAgICBwYXR0ZXJuID0gcGF0dGVybi5zb3VyY2U7XG4gICAgfVxuXG4gICAgaWYgKFVOU1VQUE9SVEVEX1kpIHtcbiAgICAgIHN0aWNreSA9ICEhZmxhZ3MgJiYgZmxhZ3MuaW5kZXhPZigneScpID4gLTE7XG4gICAgICBpZiAoc3RpY2t5KSBmbGFncyA9IGZsYWdzLnJlcGxhY2UoL3kvZywgJycpO1xuICAgIH1cblxuICAgIHZhciByZXN1bHQgPSBpbmhlcml0SWZSZXF1aXJlZChcbiAgICAgIENPUlJFQ1RfTkVXID8gbmV3IE5hdGl2ZVJlZ0V4cChwYXR0ZXJuLCBmbGFncykgOiBOYXRpdmVSZWdFeHAocGF0dGVybiwgZmxhZ3MpLFxuICAgICAgdGhpc0lzUmVnRXhwID8gdGhpcyA6IFJlZ0V4cFByb3RvdHlwZSxcbiAgICAgIFJlZ0V4cFdyYXBwZXJcbiAgICApO1xuXG4gICAgaWYgKFVOU1VQUE9SVEVEX1kgJiYgc3RpY2t5KSBzZXRJbnRlcm5hbFN0YXRlKHJlc3VsdCwgeyBzdGlja3k6IHN0aWNreSB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG4gIHZhciBwcm94eSA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICBrZXkgaW4gUmVnRXhwV3JhcHBlciB8fCBkZWZpbmVQcm9wZXJ0eShSZWdFeHBXcmFwcGVyLCBrZXksIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gTmF0aXZlUmVnRXhwW2tleV07IH0sXG4gICAgICBzZXQ6IGZ1bmN0aW9uIChpdCkgeyBOYXRpdmVSZWdFeHBba2V5XSA9IGl0OyB9XG4gICAgfSk7XG4gIH07XG4gIHZhciBrZXlzID0gZ2V0T3duUHJvcGVydHlOYW1lcyhOYXRpdmVSZWdFeHApO1xuICB2YXIgaW5kZXggPSAwO1xuICB3aGlsZSAoa2V5cy5sZW5ndGggPiBpbmRleCkgcHJveHkoa2V5c1tpbmRleCsrXSk7XG4gIFJlZ0V4cFByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IFJlZ0V4cFdyYXBwZXI7XG4gIFJlZ0V4cFdyYXBwZXIucHJvdG90eXBlID0gUmVnRXhwUHJvdG90eXBlO1xuICByZWRlZmluZShnbG9iYWwsICdSZWdFeHAnLCBSZWdFeHBXcmFwcGVyKTtcbn1cblxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtZ2V0LXJlZ2V4cC1AQHNwZWNpZXNcbnNldFNwZWNpZXMoJ1JlZ0V4cCcpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYycpO1xuXG4kKHsgdGFyZ2V0OiAnUmVnRXhwJywgcHJvdG86IHRydWUsIGZvcmNlZDogLy4vLmV4ZWMgIT09IGV4ZWMgfSwge1xuICBleGVjOiBleGVjXG59KTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIG9iamVjdERlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciByZWdFeHBGbGFncyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZmxhZ3MnKTtcbnZhciBVTlNVUFBPUlRFRF9ZID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1zdGlja3ktaGVscGVycycpLlVOU1VQUE9SVEVEX1k7XG5cbi8vIGBSZWdFeHAucHJvdG90eXBlLmZsYWdzYCBnZXR0ZXJcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWdldC1yZWdleHAucHJvdG90eXBlLmZsYWdzXG5pZiAoREVTQ1JJUFRPUlMgJiYgKC8uL2cuZmxhZ3MgIT0gJ2cnIHx8IFVOU1VQUE9SVEVEX1kpKSB7XG4gIG9iamVjdERlZmluZVByb3BlcnR5TW9kdWxlLmYoUmVnRXhwLnByb3RvdHlwZSwgJ2ZsYWdzJywge1xuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IHJlZ0V4cEZsYWdzXG4gIH0pO1xufVxuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgVU5TVVBQT1JURURfWSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtc3RpY2t5LWhlbHBlcnMnKS5VTlNVUFBPUlRFRF9ZO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xudmFyIGdldEludGVybmFsU3RhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKS5nZXQ7XG52YXIgUmVnRXhwUHJvdG90eXBlID0gUmVnRXhwLnByb3RvdHlwZTtcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUuc3RpY2t5YCBnZXR0ZXJcbmlmIChERVNDUklQVE9SUyAmJiBVTlNVUFBPUlRFRF9ZKSB7XG4gIGRlZmluZVByb3BlcnR5KFJlZ0V4cC5wcm90b3R5cGUsICdzdGlja3knLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHRoaXMgPT09IFJlZ0V4cFByb3RvdHlwZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIC8vIFdlIGNhbid0IHVzZSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvciBiZWNhdXNlXG4gICAgICAvLyB3ZSBkb24ndCBhZGQgbWV0YWRhdGEgZm9yIHJlZ2V4cHMgY3JlYXRlZCBieSBhIGxpdGVyYWwuXG4gICAgICBpZiAodGhpcyBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICByZXR1cm4gISFnZXRJbnRlcm5hbFN0YXRlKHRoaXMpLnN0aWNreTtcbiAgICAgIH1cbiAgICAgIHRocm93IFR5cGVFcnJvcignSW5jb21wYXRpYmxlIHJlY2VpdmVyLCBSZWdFeHAgcmVxdWlyZWQnKTtcbiAgICB9XG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gVE9ETzogUmVtb3ZlIGZyb20gYGNvcmUtanNANGAgc2luY2UgaXQncyBtb3ZlZCB0byBlbnRyeSBwb2ludHNcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMnKTtcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgREVMRUdBVEVTX1RPX0VYRUMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBleGVjQ2FsbGVkID0gZmFsc2U7XG4gIHZhciByZSA9IC9bYWNdLztcbiAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHtcbiAgICBleGVjQ2FsbGVkID0gdHJ1ZTtcbiAgICByZXR1cm4gLy4vLmV4ZWMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgcmV0dXJuIHJlLnRlc3QoJ2FiYycpID09PSB0cnVlICYmIGV4ZWNDYWxsZWQ7XG59KCk7XG5cbnZhciBuYXRpdmVUZXN0ID0gLy4vLnRlc3Q7XG5cbiQoeyB0YXJnZXQ6ICdSZWdFeHAnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhREVMRUdBVEVTX1RPX0VYRUMgfSwge1xuICB0ZXN0OiBmdW5jdGlvbiAoc3RyKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmV4ZWMgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBuYXRpdmVUZXN0LmNhbGwodGhpcywgc3RyKTtcbiAgICB9XG4gICAgdmFyIHJlc3VsdCA9IHRoaXMuZXhlYyhzdHIpO1xuICAgIGlmIChyZXN1bHQgIT09IG51bGwgJiYgIWlzT2JqZWN0KHJlc3VsdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsJyk7XG4gICAgfVxuICAgIHJldHVybiAhIXJlc3VsdDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGZsYWdzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1mbGFncycpO1xuXG52YXIgVE9fU1RSSU5HID0gJ3RvU3RyaW5nJztcbnZhciBSZWdFeHBQcm90b3R5cGUgPSBSZWdFeHAucHJvdG90eXBlO1xudmFyIG5hdGl2ZVRvU3RyaW5nID0gUmVnRXhwUHJvdG90eXBlW1RPX1NUUklOR107XG5cbnZhciBOT1RfR0VORVJJQyA9IGZhaWxzKGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5hdGl2ZVRvU3RyaW5nLmNhbGwoeyBzb3VyY2U6ICdhJywgZmxhZ3M6ICdiJyB9KSAhPSAnL2EvYic7IH0pO1xuLy8gRkY0NC0gUmVnRXhwI3RvU3RyaW5nIGhhcyBhIHdyb25nIG5hbWVcbnZhciBJTkNPUlJFQ1RfTkFNRSA9IG5hdGl2ZVRvU3RyaW5nLm5hbWUgIT0gVE9fU1RSSU5HO1xuXG4vLyBgUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLnRvc3RyaW5nXG5pZiAoTk9UX0dFTkVSSUMgfHwgSU5DT1JSRUNUX05BTUUpIHtcbiAgcmVkZWZpbmUoUmVnRXhwLnByb3RvdHlwZSwgVE9fU1RSSU5HLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICB2YXIgUiA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBwID0gU3RyaW5nKFIuc291cmNlKTtcbiAgICB2YXIgcmYgPSBSLmZsYWdzO1xuICAgIHZhciBmID0gU3RyaW5nKHJmID09PSB1bmRlZmluZWQgJiYgUiBpbnN0YW5jZW9mIFJlZ0V4cCAmJiAhKCdmbGFncycgaW4gUmVnRXhwUHJvdG90eXBlKSA/IGZsYWdzLmNhbGwoUikgOiByZik7XG4gICAgcmV0dXJuICcvJyArIHAgKyAnLycgKyBmO1xuICB9LCB7IHVuc2FmZTogdHJ1ZSB9KTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjb2xsZWN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvbGxlY3Rpb24nKTtcbnZhciBjb2xsZWN0aW9uU3Ryb25nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvbGxlY3Rpb24tc3Ryb25nJyk7XG5cbi8vIGBTZXRgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zZXQtb2JqZWN0c1xubW9kdWxlLmV4cG9ydHMgPSBjb2xsZWN0aW9uKCdTZXQnLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gU2V0KCkgeyByZXR1cm4gaW5pdCh0aGlzLCBhcmd1bWVudHMubGVuZ3RoID8gYXJndW1lbnRzWzBdIDogdW5kZWZpbmVkKTsgfTtcbn0sIGNvbGxlY3Rpb25TdHJvbmcpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSFRNTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaHRtbCcpO1xudmFyIGZvcmNlZFN0cmluZ0hUTUxNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLWh0bWwtZm9yY2VkJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLmFuY2hvcmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLmFuY2hvclxuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IGZvcmNlZFN0cmluZ0hUTUxNZXRob2QoJ2FuY2hvcicpIH0sIHtcbiAgYW5jaG9yOiBmdW5jdGlvbiBhbmNob3IobmFtZSkge1xuICAgIHJldHVybiBjcmVhdGVIVE1MKHRoaXMsICdhJywgJ25hbWUnLCBuYW1lKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBjcmVhdGVIVE1MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1odG1sJyk7XG52YXIgZm9yY2VkU3RyaW5nSFRNTE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctaHRtbC1mb3JjZWQnKTtcblxuLy8gYFN0cmluZy5wcm90b3R5cGUuYmlnYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuYmlnXG4kKHsgdGFyZ2V0OiAnU3RyaW5nJywgcHJvdG86IHRydWUsIGZvcmNlZDogZm9yY2VkU3RyaW5nSFRNTE1ldGhvZCgnYmlnJykgfSwge1xuICBiaWc6IGZ1bmN0aW9uIGJpZygpIHtcbiAgICByZXR1cm4gY3JlYXRlSFRNTCh0aGlzLCAnYmlnJywgJycsICcnKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBjcmVhdGVIVE1MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1odG1sJyk7XG52YXIgZm9yY2VkU3RyaW5nSFRNTE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctaHRtbC1mb3JjZWQnKTtcblxuLy8gYFN0cmluZy5wcm90b3R5cGUuYmxpbmtgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5ibGlua1xuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IGZvcmNlZFN0cmluZ0hUTUxNZXRob2QoJ2JsaW5rJykgfSwge1xuICBibGluazogZnVuY3Rpb24gYmxpbmsoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUhUTUwodGhpcywgJ2JsaW5rJywgJycsICcnKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBjcmVhdGVIVE1MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1odG1sJyk7XG52YXIgZm9yY2VkU3RyaW5nSFRNTE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctaHRtbC1mb3JjZWQnKTtcblxuLy8gYFN0cmluZy5wcm90b3R5cGUuYm9sZGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLmJvbGRcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBmb3JjZWRTdHJpbmdIVE1MTWV0aG9kKCdib2xkJykgfSwge1xuICBib2xkOiBmdW5jdGlvbiBib2xkKCkge1xuICAgIHJldHVybiBjcmVhdGVIVE1MKHRoaXMsICdiJywgJycsICcnKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBjb2RlQXQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLW11bHRpYnl0ZScpLmNvZGVBdDtcblxuLy8gYFN0cmluZy5wcm90b3R5cGUuY29kZVBvaW50QXRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5jb2RlcG9pbnRhdFxuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlIH0sIHtcbiAgY29kZVBvaW50QXQ6IGZ1bmN0aW9uIGNvZGVQb2ludEF0KHBvcykge1xuICAgIHJldHVybiBjb2RlQXQodGhpcywgcG9zKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpLmY7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgbm90QVJlZ0V4cCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9ub3QtYS1yZWdleHAnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIGNvcnJlY3RJc1JlZ0V4cExvZ2ljID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvcnJlY3QtaXMtcmVnZXhwLWxvZ2ljJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG5cbnZhciBuYXRpdmVFbmRzV2l0aCA9ICcnLmVuZHNXaXRoO1xudmFyIG1pbiA9IE1hdGgubWluO1xuXG52YXIgQ09SUkVDVF9JU19SRUdFWFBfTE9HSUMgPSBjb3JyZWN0SXNSZWdFeHBMb2dpYygnZW5kc1dpdGgnKTtcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL3B1bGwvNzAyXG52YXIgTUROX1BPTFlGSUxMX0JVRyA9ICFJU19QVVJFICYmICFDT1JSRUNUX0lTX1JFR0VYUF9MT0dJQyAmJiAhIWZ1bmN0aW9uICgpIHtcbiAgdmFyIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgJ2VuZHNXaXRoJyk7XG4gIHJldHVybiBkZXNjcmlwdG9yICYmICFkZXNjcmlwdG9yLndyaXRhYmxlO1xufSgpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLmVuZHN3aXRoXG4kKHsgdGFyZ2V0OiAnU3RyaW5nJywgcHJvdG86IHRydWUsIGZvcmNlZDogIU1ETl9QT0xZRklMTF9CVUcgJiYgIUNPUlJFQ1RfSVNfUkVHRVhQX0xPR0lDIH0sIHtcbiAgZW5kc1dpdGg6IGZ1bmN0aW9uIGVuZHNXaXRoKHNlYXJjaFN0cmluZyAvKiAsIGVuZFBvc2l0aW9uID0gQGxlbmd0aCAqLykge1xuICAgIHZhciB0aGF0ID0gU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcykpO1xuICAgIG5vdEFSZWdFeHAoc2VhcmNoU3RyaW5nKTtcbiAgICB2YXIgZW5kUG9zaXRpb24gPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiAgICB2YXIgbGVuID0gdG9MZW5ndGgodGhhdC5sZW5ndGgpO1xuICAgIHZhciBlbmQgPSBlbmRQb3NpdGlvbiA9PT0gdW5kZWZpbmVkID8gbGVuIDogbWluKHRvTGVuZ3RoKGVuZFBvc2l0aW9uKSwgbGVuKTtcbiAgICB2YXIgc2VhcmNoID0gU3RyaW5nKHNlYXJjaFN0cmluZyk7XG4gICAgcmV0dXJuIG5hdGl2ZUVuZHNXaXRoXG4gICAgICA/IG5hdGl2ZUVuZHNXaXRoLmNhbGwodGhhdCwgc2VhcmNoLCBlbmQpXG4gICAgICA6IHRoYXQuc2xpY2UoZW5kIC0gc2VhcmNoLmxlbmd0aCwgZW5kKSA9PT0gc2VhcmNoO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGNyZWF0ZUhUTUwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLWh0bWwnKTtcbnZhciBmb3JjZWRTdHJpbmdIVE1MTWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy1odG1sLWZvcmNlZCcpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS5maXhlZGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLmZpeGVkXG4kKHsgdGFyZ2V0OiAnU3RyaW5nJywgcHJvdG86IHRydWUsIGZvcmNlZDogZm9yY2VkU3RyaW5nSFRNTE1ldGhvZCgnZml4ZWQnKSB9LCB7XG4gIGZpeGVkOiBmdW5jdGlvbiBmaXhlZCgpIHtcbiAgICByZXR1cm4gY3JlYXRlSFRNTCh0aGlzLCAndHQnLCAnJywgJycpO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGNyZWF0ZUhUTUwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLWh0bWwnKTtcbnZhciBmb3JjZWRTdHJpbmdIVE1MTWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy1odG1sLWZvcmNlZCcpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS5mb250Y29sb3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5mb250Y29sb3JcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBmb3JjZWRTdHJpbmdIVE1MTWV0aG9kKCdmb250Y29sb3InKSB9LCB7XG4gIGZvbnRjb2xvcjogZnVuY3Rpb24gZm9udGNvbG9yKGNvbG9yKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUhUTUwodGhpcywgJ2ZvbnQnLCAnY29sb3InLCBjb2xvcik7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSFRNTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaHRtbCcpO1xudmFyIGZvcmNlZFN0cmluZ0hUTUxNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLWh0bWwtZm9yY2VkJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLmZvbnRzaXplYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuZm9udHNpemVcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBmb3JjZWRTdHJpbmdIVE1MTWV0aG9kKCdmb250c2l6ZScpIH0sIHtcbiAgZm9udHNpemU6IGZ1bmN0aW9uIGZvbnRzaXplKHNpemUpIHtcbiAgICByZXR1cm4gY3JlYXRlSFRNTCh0aGlzLCAnZm9udCcsICdzaXplJywgc2l6ZSk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG5cbnZhciBmcm9tQ2hhckNvZGUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlO1xudmFyIG5hdGl2ZUZyb21Db2RlUG9pbnQgPSBTdHJpbmcuZnJvbUNvZGVQb2ludDtcblxuLy8gbGVuZ3RoIHNob3VsZCBiZSAxLCBvbGQgRkYgcHJvYmxlbVxudmFyIElOQ09SUkVDVF9MRU5HVEggPSAhIW5hdGl2ZUZyb21Db2RlUG9pbnQgJiYgbmF0aXZlRnJvbUNvZGVQb2ludC5sZW5ndGggIT0gMTtcblxuLy8gYFN0cmluZy5mcm9tQ29kZVBvaW50YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5mcm9tY29kZXBvaW50XG4kKHsgdGFyZ2V0OiAnU3RyaW5nJywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBJTkNPUlJFQ1RfTEVOR1RIIH0sIHtcbiAgZnJvbUNvZGVQb2ludDogZnVuY3Rpb24gZnJvbUNvZGVQb2ludCh4KSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgICB2YXIgZWxlbWVudHMgPSBbXTtcbiAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgaSA9IDA7XG4gICAgdmFyIGNvZGU7XG4gICAgd2hpbGUgKGxlbmd0aCA+IGkpIHtcbiAgICAgIGNvZGUgPSArYXJndW1lbnRzW2krK107XG4gICAgICBpZiAodG9BYnNvbHV0ZUluZGV4KGNvZGUsIDB4MTBGRkZGKSAhPT0gY29kZSkgdGhyb3cgUmFuZ2VFcnJvcihjb2RlICsgJyBpcyBub3QgYSB2YWxpZCBjb2RlIHBvaW50Jyk7XG4gICAgICBlbGVtZW50cy5wdXNoKGNvZGUgPCAweDEwMDAwXG4gICAgICAgID8gZnJvbUNoYXJDb2RlKGNvZGUpXG4gICAgICAgIDogZnJvbUNoYXJDb2RlKCgoY29kZSAtPSAweDEwMDAwKSA+PiAxMCkgKyAweEQ4MDAsIGNvZGUgJSAweDQwMCArIDB4REMwMClcbiAgICAgICk7XG4gICAgfSByZXR1cm4gZWxlbWVudHMuam9pbignJyk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgbm90QVJlZ0V4cCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9ub3QtYS1yZWdleHAnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIGNvcnJlY3RJc1JlZ0V4cExvZ2ljID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvcnJlY3QtaXMtcmVnZXhwLWxvZ2ljJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXNcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhY29ycmVjdElzUmVnRXhwTG9naWMoJ2luY2x1ZGVzJykgfSwge1xuICBpbmNsdWRlczogZnVuY3Rpb24gaW5jbHVkZXMoc2VhcmNoU3RyaW5nIC8qICwgcG9zaXRpb24gPSAwICovKSB7XG4gICAgcmV0dXJuICEhflN0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpKVxuICAgICAgLmluZGV4T2Yobm90QVJlZ0V4cChzZWFyY2hTdHJpbmcpLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSFRNTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaHRtbCcpO1xudmFyIGZvcmNlZFN0cmluZ0hUTUxNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLWh0bWwtZm9yY2VkJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLml0YWxpY3NgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5pdGFsaWNzXG4kKHsgdGFyZ2V0OiAnU3RyaW5nJywgcHJvdG86IHRydWUsIGZvcmNlZDogZm9yY2VkU3RyaW5nSFRNTE1ldGhvZCgnaXRhbGljcycpIH0sIHtcbiAgaXRhbGljczogZnVuY3Rpb24gaXRhbGljcygpIHtcbiAgICByZXR1cm4gY3JlYXRlSFRNTCh0aGlzLCAnaScsICcnLCAnJyk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNoYXJBdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctbXVsdGlieXRlJykuY2hhckF0O1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcbnZhciBkZWZpbmVJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtaXRlcmF0b3InKTtcblxudmFyIFNUUklOR19JVEVSQVRPUiA9ICdTdHJpbmcgSXRlcmF0b3InO1xudmFyIHNldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLnNldDtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXR0ZXJGb3IoU1RSSU5HX0lURVJBVE9SKTtcblxuLy8gYFN0cmluZy5wcm90b3R5cGVbQEBpdGVyYXRvcl1gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS1AQGl0ZXJhdG9yXG5kZWZpbmVJdGVyYXRvcihTdHJpbmcsICdTdHJpbmcnLCBmdW5jdGlvbiAoaXRlcmF0ZWQpIHtcbiAgc2V0SW50ZXJuYWxTdGF0ZSh0aGlzLCB7XG4gICAgdHlwZTogU1RSSU5HX0lURVJBVE9SLFxuICAgIHN0cmluZzogU3RyaW5nKGl0ZXJhdGVkKSxcbiAgICBpbmRleDogMFxuICB9KTtcbi8vIGAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXN0cmluZ2l0ZXJhdG9ycHJvdG90eXBlJS5uZXh0XG59LCBmdW5jdGlvbiBuZXh0KCkge1xuICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpO1xuICB2YXIgc3RyaW5nID0gc3RhdGUuc3RyaW5nO1xuICB2YXIgaW5kZXggPSBzdGF0ZS5pbmRleDtcbiAgdmFyIHBvaW50O1xuICBpZiAoaW5kZXggPj0gc3RyaW5nLmxlbmd0aCkgcmV0dXJuIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9O1xuICBwb2ludCA9IGNoYXJBdChzdHJpbmcsIGluZGV4KTtcbiAgc3RhdGUuaW5kZXggKz0gcG9pbnQubGVuZ3RoO1xuICByZXR1cm4geyB2YWx1ZTogcG9pbnQsIGRvbmU6IGZhbHNlIH07XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGNyZWF0ZUhUTUwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLWh0bWwnKTtcbnZhciBmb3JjZWRTdHJpbmdIVE1MTWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy1odG1sLWZvcmNlZCcpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS5saW5rYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUubGlua1xuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IGZvcmNlZFN0cmluZ0hUTUxNZXRob2QoJ2xpbmsnKSB9LCB7XG4gIGxpbms6IGZ1bmN0aW9uIGxpbmsodXJsKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUhUTUwodGhpcywgJ2EnLCAnaHJlZicsIHVybCk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3InKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIGlzUmVnRXhwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXJlZ2V4cCcpO1xudmFyIGdldFJlZ0V4cEZsYWdzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1mbGFncycpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgYWR2YW5jZVN0cmluZ0luZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkdmFuY2Utc3RyaW5nLWluZGV4Jyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xuXG52YXIgTUFUQ0hfQUxMID0gd2VsbEtub3duU3ltYm9sKCdtYXRjaEFsbCcpO1xudmFyIFJFR0VYUF9TVFJJTkcgPSAnUmVnRXhwIFN0cmluZyc7XG52YXIgUkVHRVhQX1NUUklOR19JVEVSQVRPUiA9IFJFR0VYUF9TVFJJTkcgKyAnIEl0ZXJhdG9yJztcbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKFJFR0VYUF9TVFJJTkdfSVRFUkFUT1IpO1xudmFyIFJlZ0V4cFByb3RvdHlwZSA9IFJlZ0V4cC5wcm90b3R5cGU7XG52YXIgcmVnRXhwQnVpbHRpbkV4ZWMgPSBSZWdFeHBQcm90b3R5cGUuZXhlYztcbnZhciBuYXRpdmVNYXRjaEFsbCA9ICcnLm1hdGNoQWxsO1xuXG52YXIgV09SS1NfV0lUSF9OT05fR0xPQkFMX1JFR0VYID0gISFuYXRpdmVNYXRjaEFsbCAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAnYScubWF0Y2hBbGwoLy4vKTtcbn0pO1xuXG52YXIgcmVnRXhwRXhlYyA9IGZ1bmN0aW9uIChSLCBTKSB7XG4gIHZhciBleGVjID0gUi5leGVjO1xuICB2YXIgcmVzdWx0O1xuICBpZiAodHlwZW9mIGV4ZWMgPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJlc3VsdCA9IGV4ZWMuY2FsbChSLCBTKTtcbiAgICBpZiAodHlwZW9mIHJlc3VsdCAhPSAnb2JqZWN0JykgdGhyb3cgVHlwZUVycm9yKCdJbmNvcnJlY3QgZXhlYyByZXN1bHQnKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9IHJldHVybiByZWdFeHBCdWlsdGluRXhlYy5jYWxsKFIsIFMpO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbnZhciAkUmVnRXhwU3RyaW5nSXRlcmF0b3IgPSBjcmVhdGVJdGVyYXRvckNvbnN0cnVjdG9yKGZ1bmN0aW9uIFJlZ0V4cFN0cmluZ0l0ZXJhdG9yKHJlZ2V4cCwgc3RyaW5nLCBnbG9iYWwsIGZ1bGxVbmljb2RlKSB7XG4gIHNldEludGVybmFsU3RhdGUodGhpcywge1xuICAgIHR5cGU6IFJFR0VYUF9TVFJJTkdfSVRFUkFUT1IsXG4gICAgcmVnZXhwOiByZWdleHAsXG4gICAgc3RyaW5nOiBzdHJpbmcsXG4gICAgZ2xvYmFsOiBnbG9iYWwsXG4gICAgdW5pY29kZTogZnVsbFVuaWNvZGUsXG4gICAgZG9uZTogZmFsc2VcbiAgfSk7XG59LCBSRUdFWFBfU1RSSU5HLCBmdW5jdGlvbiBuZXh0KCkge1xuICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpO1xuICBpZiAoc3RhdGUuZG9uZSkgcmV0dXJuIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9O1xuICB2YXIgUiA9IHN0YXRlLnJlZ2V4cDtcbiAgdmFyIFMgPSBzdGF0ZS5zdHJpbmc7XG4gIHZhciBtYXRjaCA9IHJlZ0V4cEV4ZWMoUiwgUyk7XG4gIGlmIChtYXRjaCA9PT0gbnVsbCkgcmV0dXJuIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogc3RhdGUuZG9uZSA9IHRydWUgfTtcbiAgaWYgKHN0YXRlLmdsb2JhbCkge1xuICAgIGlmIChTdHJpbmcobWF0Y2hbMF0pID09ICcnKSBSLmxhc3RJbmRleCA9IGFkdmFuY2VTdHJpbmdJbmRleChTLCB0b0xlbmd0aChSLmxhc3RJbmRleCksIHN0YXRlLnVuaWNvZGUpO1xuICAgIHJldHVybiB7IHZhbHVlOiBtYXRjaCwgZG9uZTogZmFsc2UgfTtcbiAgfVxuICBzdGF0ZS5kb25lID0gdHJ1ZTtcbiAgcmV0dXJuIHsgdmFsdWU6IG1hdGNoLCBkb25lOiBmYWxzZSB9O1xufSk7XG5cbnZhciAkbWF0Y2hBbGwgPSBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gIHZhciBSID0gYW5PYmplY3QodGhpcyk7XG4gIHZhciBTID0gU3RyaW5nKHN0cmluZyk7XG4gIHZhciBDLCBmbGFnc1ZhbHVlLCBmbGFncywgbWF0Y2hlciwgZ2xvYmFsLCBmdWxsVW5pY29kZTtcbiAgQyA9IHNwZWNpZXNDb25zdHJ1Y3RvcihSLCBSZWdFeHApO1xuICBmbGFnc1ZhbHVlID0gUi5mbGFncztcbiAgaWYgKGZsYWdzVmFsdWUgPT09IHVuZGVmaW5lZCAmJiBSIGluc3RhbmNlb2YgUmVnRXhwICYmICEoJ2ZsYWdzJyBpbiBSZWdFeHBQcm90b3R5cGUpKSB7XG4gICAgZmxhZ3NWYWx1ZSA9IGdldFJlZ0V4cEZsYWdzLmNhbGwoUik7XG4gIH1cbiAgZmxhZ3MgPSBmbGFnc1ZhbHVlID09PSB1bmRlZmluZWQgPyAnJyA6IFN0cmluZyhmbGFnc1ZhbHVlKTtcbiAgbWF0Y2hlciA9IG5ldyBDKEMgPT09IFJlZ0V4cCA/IFIuc291cmNlIDogUiwgZmxhZ3MpO1xuICBnbG9iYWwgPSAhIX5mbGFncy5pbmRleE9mKCdnJyk7XG4gIGZ1bGxVbmljb2RlID0gISF+ZmxhZ3MuaW5kZXhPZigndScpO1xuICBtYXRjaGVyLmxhc3RJbmRleCA9IHRvTGVuZ3RoKFIubGFzdEluZGV4KTtcbiAgcmV0dXJuIG5ldyAkUmVnRXhwU3RyaW5nSXRlcmF0b3IobWF0Y2hlciwgUywgZ2xvYmFsLCBmdWxsVW5pY29kZSk7XG59O1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS5tYXRjaEFsbGAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1zdHJpbmctbWF0Y2hhbGxcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBXT1JLU19XSVRIX05PTl9HTE9CQUxfUkVHRVggfSwge1xuICBtYXRjaEFsbDogZnVuY3Rpb24gbWF0Y2hBbGwocmVnZXhwKSB7XG4gICAgdmFyIE8gPSByZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpO1xuICAgIHZhciBmbGFncywgUywgbWF0Y2hlciwgcng7XG4gICAgaWYgKHJlZ2V4cCAhPSBudWxsKSB7XG4gICAgICBpZiAoaXNSZWdFeHAocmVnZXhwKSkge1xuICAgICAgICBmbGFncyA9IFN0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKCdmbGFncycgaW4gUmVnRXhwUHJvdG90eXBlXG4gICAgICAgICAgPyByZWdleHAuZmxhZ3NcbiAgICAgICAgICA6IGdldFJlZ0V4cEZsYWdzLmNhbGwocmVnZXhwKVxuICAgICAgICApKTtcbiAgICAgICAgaWYgKCF+ZmxhZ3MuaW5kZXhPZignZycpKSB0aHJvdyBUeXBlRXJyb3IoJ2AubWF0Y2hBbGxgIGRvZXMgbm90IGFsbG93IG5vbi1nbG9iYWwgcmVnZXhlcycpO1xuICAgICAgfVxuICAgICAgaWYgKFdPUktTX1dJVEhfTk9OX0dMT0JBTF9SRUdFWCkgcmV0dXJuIG5hdGl2ZU1hdGNoQWxsLmFwcGx5KE8sIGFyZ3VtZW50cyk7XG4gICAgICBtYXRjaGVyID0gcmVnZXhwW01BVENIX0FMTF07XG4gICAgICBpZiAobWF0Y2hlciA9PT0gdW5kZWZpbmVkICYmIElTX1BVUkUgJiYgY2xhc3NvZihyZWdleHApID09ICdSZWdFeHAnKSBtYXRjaGVyID0gJG1hdGNoQWxsO1xuICAgICAgaWYgKG1hdGNoZXIgIT0gbnVsbCkgcmV0dXJuIGFGdW5jdGlvbihtYXRjaGVyKS5jYWxsKHJlZ2V4cCwgTyk7XG4gICAgfSBlbHNlIGlmIChXT1JLU19XSVRIX05PTl9HTE9CQUxfUkVHRVgpIHJldHVybiBuYXRpdmVNYXRjaEFsbC5hcHBseShPLCBhcmd1bWVudHMpO1xuICAgIFMgPSBTdHJpbmcoTyk7XG4gICAgcnggPSBuZXcgUmVnRXhwKHJlZ2V4cCwgJ2cnKTtcbiAgICByZXR1cm4gSVNfUFVSRSA/ICRtYXRjaEFsbC5jYWxsKHJ4LCBTKSA6IHJ4W01BVENIX0FMTF0oUyk7XG4gIH1cbn0pO1xuXG5JU19QVVJFIHx8IE1BVENIX0FMTCBpbiBSZWdFeHBQcm90b3R5cGUgfHwgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KFJlZ0V4cFByb3RvdHlwZSwgTUFUQ0hfQUxMLCAkbWF0Y2hBbGwpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZpeC1yZWdleHAtd2VsbC1rbm93bi1zeW1ib2wtbG9naWMnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIGFkdmFuY2VTdHJpbmdJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hZHZhbmNlLXN0cmluZy1pbmRleCcpO1xudmFyIHJlZ0V4cEV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMtYWJzdHJhY3QnKTtcblxuLy8gQEBtYXRjaCBsb2dpY1xuZml4UmVnRXhwV2VsbEtub3duU3ltYm9sTG9naWMoJ21hdGNoJywgMSwgZnVuY3Rpb24gKE1BVENILCBuYXRpdmVNYXRjaCwgbWF5YmVDYWxsTmF0aXZlKSB7XG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUubWF0Y2hgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUubWF0Y2hcbiAgICBmdW5jdGlvbiBtYXRjaChyZWdleHApIHtcbiAgICAgIHZhciBPID0gcmVxdWlyZU9iamVjdENvZXJjaWJsZSh0aGlzKTtcbiAgICAgIHZhciBtYXRjaGVyID0gcmVnZXhwID09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHJlZ2V4cFtNQVRDSF07XG4gICAgICByZXR1cm4gbWF0Y2hlciAhPT0gdW5kZWZpbmVkID8gbWF0Y2hlci5jYWxsKHJlZ2V4cCwgTykgOiBuZXcgUmVnRXhwKHJlZ2V4cClbTUFUQ0hdKFN0cmluZyhPKSk7XG4gICAgfSxcbiAgICAvLyBgUmVnRXhwLnByb3RvdHlwZVtAQG1hdGNoXWAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQG1hdGNoXG4gICAgZnVuY3Rpb24gKHJlZ2V4cCkge1xuICAgICAgdmFyIHJlcyA9IG1heWJlQ2FsbE5hdGl2ZShuYXRpdmVNYXRjaCwgcmVnZXhwLCB0aGlzKTtcbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcblxuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QocmVnZXhwKTtcbiAgICAgIHZhciBTID0gU3RyaW5nKHRoaXMpO1xuXG4gICAgICBpZiAoIXJ4Lmdsb2JhbCkgcmV0dXJuIHJlZ0V4cEV4ZWMocngsIFMpO1xuXG4gICAgICB2YXIgZnVsbFVuaWNvZGUgPSByeC51bmljb2RlO1xuICAgICAgcngubGFzdEluZGV4ID0gMDtcbiAgICAgIHZhciBBID0gW107XG4gICAgICB2YXIgbiA9IDA7XG4gICAgICB2YXIgcmVzdWx0O1xuICAgICAgd2hpbGUgKChyZXN1bHQgPSByZWdFeHBFeGVjKHJ4LCBTKSkgIT09IG51bGwpIHtcbiAgICAgICAgdmFyIG1hdGNoU3RyID0gU3RyaW5nKHJlc3VsdFswXSk7XG4gICAgICAgIEFbbl0gPSBtYXRjaFN0cjtcbiAgICAgICAgaWYgKG1hdGNoU3RyID09PSAnJykgcngubGFzdEluZGV4ID0gYWR2YW5jZVN0cmluZ0luZGV4KFMsIHRvTGVuZ3RoKHJ4Lmxhc3RJbmRleCksIGZ1bGxVbmljb2RlKTtcbiAgICAgICAgbisrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG4gPT09IDAgPyBudWxsIDogQTtcbiAgICB9XG4gIF07XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRwYWRFbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXBhZCcpLmVuZDtcbnZhciBXRUJLSVRfQlVHID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy1wYWQtd2Via2l0LWJ1ZycpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS5wYWRFbmRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5wYWRlbmRcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBXRUJLSVRfQlVHIH0sIHtcbiAgcGFkRW5kOiBmdW5jdGlvbiBwYWRFbmQobWF4TGVuZ3RoIC8qICwgZmlsbFN0cmluZyA9ICcgJyAqLykge1xuICAgIHJldHVybiAkcGFkRW5kKHRoaXMsIG1heExlbmd0aCwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRwYWRTdGFydCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctcGFkJykuc3RhcnQ7XG52YXIgV0VCS0lUX0JVRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctcGFkLXdlYmtpdC1idWcnKTtcblxuLy8gYFN0cmluZy5wcm90b3R5cGUucGFkU3RhcnRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5wYWRzdGFydFxuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IFdFQktJVF9CVUcgfSwge1xuICBwYWRTdGFydDogZnVuY3Rpb24gcGFkU3RhcnQobWF4TGVuZ3RoIC8qICwgZmlsbFN0cmluZyA9ICcgJyAqLykge1xuICAgIHJldHVybiAkcGFkU3RhcnQodGhpcywgbWF4TGVuZ3RoLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG5cbi8vIGBTdHJpbmcucmF3YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5yYXdcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBzdGF0OiB0cnVlIH0sIHtcbiAgcmF3OiBmdW5jdGlvbiByYXcodGVtcGxhdGUpIHtcbiAgICB2YXIgcmF3VGVtcGxhdGUgPSB0b0luZGV4ZWRPYmplY3QodGVtcGxhdGUucmF3KTtcbiAgICB2YXIgbGl0ZXJhbFNlZ21lbnRzID0gdG9MZW5ndGgocmF3VGVtcGxhdGUubGVuZ3RoKTtcbiAgICB2YXIgYXJndW1lbnRzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB2YXIgZWxlbWVudHMgPSBbXTtcbiAgICB2YXIgaSA9IDA7XG4gICAgd2hpbGUgKGxpdGVyYWxTZWdtZW50cyA+IGkpIHtcbiAgICAgIGVsZW1lbnRzLnB1c2goU3RyaW5nKHJhd1RlbXBsYXRlW2krK10pKTtcbiAgICAgIGlmIChpIDwgYXJndW1lbnRzTGVuZ3RoKSBlbGVtZW50cy5wdXNoKFN0cmluZyhhcmd1bWVudHNbaV0pKTtcbiAgICB9IHJldHVybiBlbGVtZW50cy5qb2luKCcnKTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciByZXBlYXQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXJlcGVhdCcpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS5yZXBlYXRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5yZXBlYXRcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSB9LCB7XG4gIHJlcGVhdDogcmVwZWF0XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmaXhSZWdFeHBXZWxsS25vd25TeW1ib2xMb2dpYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9maXgtcmVnZXhwLXdlbGwta25vd24tc3ltYm9sLWxvZ2ljJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIGFkdmFuY2VTdHJpbmdJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hZHZhbmNlLXN0cmluZy1pbmRleCcpO1xudmFyIHJlZ0V4cEV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMtYWJzdHJhY3QnKTtcblxudmFyIG1heCA9IE1hdGgubWF4O1xudmFyIG1pbiA9IE1hdGgubWluO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbnZhciBTVUJTVElUVVRJT05fU1lNQk9MUyA9IC9cXCQoWyQmJ2BdfFxcZFxcZD98PFtePl0qPikvZztcbnZhciBTVUJTVElUVVRJT05fU1lNQk9MU19OT19OQU1FRCA9IC9cXCQoWyQmJ2BdfFxcZFxcZD8pL2c7XG5cbnZhciBtYXliZVRvU3RyaW5nID0gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBpdCA9PT0gdW5kZWZpbmVkID8gaXQgOiBTdHJpbmcoaXQpO1xufTtcblxuLy8gQEByZXBsYWNlIGxvZ2ljXG5maXhSZWdFeHBXZWxsS25vd25TeW1ib2xMb2dpYygncmVwbGFjZScsIDIsIGZ1bmN0aW9uIChSRVBMQUNFLCBuYXRpdmVSZXBsYWNlLCBtYXliZUNhbGxOYXRpdmUsIHJlYXNvbikge1xuICB2YXIgUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkUgPSByZWFzb24uUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkU7XG4gIHZhciBSRVBMQUNFX0tFRVBTXyQwID0gcmVhc29uLlJFUExBQ0VfS0VFUFNfJDA7XG4gIHZhciBVTlNBRkVfU1VCU1RJVFVURSA9IFJFR0VYUF9SRVBMQUNFX1NVQlNUSVRVVEVTX1VOREVGSU5FRF9DQVBUVVJFID8gJyQnIDogJyQwJztcblxuICByZXR1cm4gW1xuICAgIC8vIGBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2VgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUucmVwbGFjZVxuICAgIGZ1bmN0aW9uIHJlcGxhY2Uoc2VhcmNoVmFsdWUsIHJlcGxhY2VWYWx1ZSkge1xuICAgICAgdmFyIE8gPSByZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpO1xuICAgICAgdmFyIHJlcGxhY2VyID0gc2VhcmNoVmFsdWUgPT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogc2VhcmNoVmFsdWVbUkVQTEFDRV07XG4gICAgICByZXR1cm4gcmVwbGFjZXIgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IHJlcGxhY2VyLmNhbGwoc2VhcmNoVmFsdWUsIE8sIHJlcGxhY2VWYWx1ZSlcbiAgICAgICAgOiBuYXRpdmVSZXBsYWNlLmNhbGwoU3RyaW5nKE8pLCBzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKTtcbiAgICB9LFxuICAgIC8vIGBSZWdFeHAucHJvdG90eXBlW0BAcmVwbGFjZV1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUtQEByZXBsYWNlXG4gICAgZnVuY3Rpb24gKHJlZ2V4cCwgcmVwbGFjZVZhbHVlKSB7XG4gICAgICBpZiAoXG4gICAgICAgICghUkVHRVhQX1JFUExBQ0VfU1VCU1RJVFVURVNfVU5ERUZJTkVEX0NBUFRVUkUgJiYgUkVQTEFDRV9LRUVQU18kMCkgfHxcbiAgICAgICAgKHR5cGVvZiByZXBsYWNlVmFsdWUgPT09ICdzdHJpbmcnICYmIHJlcGxhY2VWYWx1ZS5pbmRleE9mKFVOU0FGRV9TVUJTVElUVVRFKSA9PT0gLTEpXG4gICAgICApIHtcbiAgICAgICAgdmFyIHJlcyA9IG1heWJlQ2FsbE5hdGl2ZShuYXRpdmVSZXBsYWNlLCByZWdleHAsIHRoaXMsIHJlcGxhY2VWYWx1ZSk7XG4gICAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QocmVnZXhwKTtcbiAgICAgIHZhciBTID0gU3RyaW5nKHRoaXMpO1xuXG4gICAgICB2YXIgZnVuY3Rpb25hbFJlcGxhY2UgPSB0eXBlb2YgcmVwbGFjZVZhbHVlID09PSAnZnVuY3Rpb24nO1xuICAgICAgaWYgKCFmdW5jdGlvbmFsUmVwbGFjZSkgcmVwbGFjZVZhbHVlID0gU3RyaW5nKHJlcGxhY2VWYWx1ZSk7XG5cbiAgICAgIHZhciBnbG9iYWwgPSByeC5nbG9iYWw7XG4gICAgICBpZiAoZ2xvYmFsKSB7XG4gICAgICAgIHZhciBmdWxsVW5pY29kZSA9IHJ4LnVuaWNvZGU7XG4gICAgICAgIHJ4Lmxhc3RJbmRleCA9IDA7XG4gICAgICB9XG4gICAgICB2YXIgcmVzdWx0cyA9IFtdO1xuICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHJlZ0V4cEV4ZWMocngsIFMpO1xuICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSBicmVhaztcblxuICAgICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgaWYgKCFnbG9iYWwpIGJyZWFrO1xuXG4gICAgICAgIHZhciBtYXRjaFN0ciA9IFN0cmluZyhyZXN1bHRbMF0pO1xuICAgICAgICBpZiAobWF0Y2hTdHIgPT09ICcnKSByeC5sYXN0SW5kZXggPSBhZHZhbmNlU3RyaW5nSW5kZXgoUywgdG9MZW5ndGgocngubGFzdEluZGV4KSwgZnVsbFVuaWNvZGUpO1xuICAgICAgfVxuXG4gICAgICB2YXIgYWNjdW11bGF0ZWRSZXN1bHQgPSAnJztcbiAgICAgIHZhciBuZXh0U291cmNlUG9zaXRpb24gPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdHNbaV07XG5cbiAgICAgICAgdmFyIG1hdGNoZWQgPSBTdHJpbmcocmVzdWx0WzBdKTtcbiAgICAgICAgdmFyIHBvc2l0aW9uID0gbWF4KG1pbih0b0ludGVnZXIocmVzdWx0LmluZGV4KSwgUy5sZW5ndGgpLCAwKTtcbiAgICAgICAgdmFyIGNhcHR1cmVzID0gW107XG4gICAgICAgIC8vIE5PVEU6IFRoaXMgaXMgZXF1aXZhbGVudCB0b1xuICAgICAgICAvLyAgIGNhcHR1cmVzID0gcmVzdWx0LnNsaWNlKDEpLm1hcChtYXliZVRvU3RyaW5nKVxuICAgICAgICAvLyBidXQgZm9yIHNvbWUgcmVhc29uIGBuYXRpdmVTbGljZS5jYWxsKHJlc3VsdCwgMSwgcmVzdWx0Lmxlbmd0aClgIChjYWxsZWQgaW5cbiAgICAgICAgLy8gdGhlIHNsaWNlIHBvbHlmaWxsIHdoZW4gc2xpY2luZyBuYXRpdmUgYXJyYXlzKSBcImRvZXNuJ3Qgd29ya1wiIGluIHNhZmFyaSA5IGFuZFxuICAgICAgICAvLyBjYXVzZXMgYSBjcmFzaCAoaHR0cHM6Ly9wYXN0ZWJpbi5jb20vTjIxUXplUUEpIHdoZW4gdHJ5aW5nIHRvIGRlYnVnIGl0LlxuICAgICAgICBmb3IgKHZhciBqID0gMTsgaiA8IHJlc3VsdC5sZW5ndGg7IGorKykgY2FwdHVyZXMucHVzaChtYXliZVRvU3RyaW5nKHJlc3VsdFtqXSkpO1xuICAgICAgICB2YXIgbmFtZWRDYXB0dXJlcyA9IHJlc3VsdC5ncm91cHM7XG4gICAgICAgIGlmIChmdW5jdGlvbmFsUmVwbGFjZSkge1xuICAgICAgICAgIHZhciByZXBsYWNlckFyZ3MgPSBbbWF0Y2hlZF0uY29uY2F0KGNhcHR1cmVzLCBwb3NpdGlvbiwgUyk7XG4gICAgICAgICAgaWYgKG5hbWVkQ2FwdHVyZXMgIT09IHVuZGVmaW5lZCkgcmVwbGFjZXJBcmdzLnB1c2gobmFtZWRDYXB0dXJlcyk7XG4gICAgICAgICAgdmFyIHJlcGxhY2VtZW50ID0gU3RyaW5nKHJlcGxhY2VWYWx1ZS5hcHBseSh1bmRlZmluZWQsIHJlcGxhY2VyQXJncykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcGxhY2VtZW50ID0gZ2V0U3Vic3RpdHV0aW9uKG1hdGNoZWQsIFMsIHBvc2l0aW9uLCBjYXB0dXJlcywgbmFtZWRDYXB0dXJlcywgcmVwbGFjZVZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zaXRpb24gPj0gbmV4dFNvdXJjZVBvc2l0aW9uKSB7XG4gICAgICAgICAgYWNjdW11bGF0ZWRSZXN1bHQgKz0gUy5zbGljZShuZXh0U291cmNlUG9zaXRpb24sIHBvc2l0aW9uKSArIHJlcGxhY2VtZW50O1xuICAgICAgICAgIG5leHRTb3VyY2VQb3NpdGlvbiA9IHBvc2l0aW9uICsgbWF0Y2hlZC5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2N1bXVsYXRlZFJlc3VsdCArIFMuc2xpY2UobmV4dFNvdXJjZVBvc2l0aW9uKTtcbiAgICB9XG4gIF07XG5cbiAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtZ2V0c3Vic3RpdHV0aW9uXG4gIGZ1bmN0aW9uIGdldFN1YnN0aXR1dGlvbihtYXRjaGVkLCBzdHIsIHBvc2l0aW9uLCBjYXB0dXJlcywgbmFtZWRDYXB0dXJlcywgcmVwbGFjZW1lbnQpIHtcbiAgICB2YXIgdGFpbFBvcyA9IHBvc2l0aW9uICsgbWF0Y2hlZC5sZW5ndGg7XG4gICAgdmFyIG0gPSBjYXB0dXJlcy5sZW5ndGg7XG4gICAgdmFyIHN5bWJvbHMgPSBTVUJTVElUVVRJT05fU1lNQk9MU19OT19OQU1FRDtcbiAgICBpZiAobmFtZWRDYXB0dXJlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBuYW1lZENhcHR1cmVzID0gdG9PYmplY3QobmFtZWRDYXB0dXJlcyk7XG4gICAgICBzeW1ib2xzID0gU1VCU1RJVFVUSU9OX1NZTUJPTFM7XG4gICAgfVxuICAgIHJldHVybiBuYXRpdmVSZXBsYWNlLmNhbGwocmVwbGFjZW1lbnQsIHN5bWJvbHMsIGZ1bmN0aW9uIChtYXRjaCwgY2gpIHtcbiAgICAgIHZhciBjYXB0dXJlO1xuICAgICAgc3dpdGNoIChjaC5jaGFyQXQoMCkpIHtcbiAgICAgICAgY2FzZSAnJCc6IHJldHVybiAnJCc7XG4gICAgICAgIGNhc2UgJyYnOiByZXR1cm4gbWF0Y2hlZDtcbiAgICAgICAgY2FzZSAnYCc6IHJldHVybiBzdHIuc2xpY2UoMCwgcG9zaXRpb24pO1xuICAgICAgICBjYXNlIFwiJ1wiOiByZXR1cm4gc3RyLnNsaWNlKHRhaWxQb3MpO1xuICAgICAgICBjYXNlICc8JzpcbiAgICAgICAgICBjYXB0dXJlID0gbmFtZWRDYXB0dXJlc1tjaC5zbGljZSgxLCAtMSldO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OiAvLyBcXGRcXGQ/XG4gICAgICAgICAgdmFyIG4gPSArY2g7XG4gICAgICAgICAgaWYgKG4gPT09IDApIHJldHVybiBtYXRjaDtcbiAgICAgICAgICBpZiAobiA+IG0pIHtcbiAgICAgICAgICAgIHZhciBmID0gZmxvb3IobiAvIDEwKTtcbiAgICAgICAgICAgIGlmIChmID09PSAwKSByZXR1cm4gbWF0Y2g7XG4gICAgICAgICAgICBpZiAoZiA8PSBtKSByZXR1cm4gY2FwdHVyZXNbZiAtIDFdID09PSB1bmRlZmluZWQgPyBjaC5jaGFyQXQoMSkgOiBjYXB0dXJlc1tmIC0gMV0gKyBjaC5jaGFyQXQoMSk7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhcHR1cmUgPSBjYXB0dXJlc1tuIC0gMV07XG4gICAgICB9XG4gICAgICByZXR1cm4gY2FwdHVyZSA9PT0gdW5kZWZpbmVkID8gJycgOiBjYXB0dXJlO1xuICAgIH0pO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBmaXhSZWdFeHBXZWxsS25vd25TeW1ib2xMb2dpYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9maXgtcmVnZXhwLXdlbGwta25vd24tc3ltYm9sLWxvZ2ljJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcbnZhciBzYW1lVmFsdWUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2FtZS12YWx1ZScpO1xudmFyIHJlZ0V4cEV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMtYWJzdHJhY3QnKTtcblxuLy8gQEBzZWFyY2ggbG9naWNcbmZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljKCdzZWFyY2gnLCAxLCBmdW5jdGlvbiAoU0VBUkNILCBuYXRpdmVTZWFyY2gsIG1heWJlQ2FsbE5hdGl2ZSkge1xuICByZXR1cm4gW1xuICAgIC8vIGBTdHJpbmcucHJvdG90eXBlLnNlYXJjaGAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5zZWFyY2hcbiAgICBmdW5jdGlvbiBzZWFyY2gocmVnZXhwKSB7XG4gICAgICB2YXIgTyA9IHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcyk7XG4gICAgICB2YXIgc2VhcmNoZXIgPSByZWdleHAgPT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogcmVnZXhwW1NFQVJDSF07XG4gICAgICByZXR1cm4gc2VhcmNoZXIgIT09IHVuZGVmaW5lZCA/IHNlYXJjaGVyLmNhbGwocmVnZXhwLCBPKSA6IG5ldyBSZWdFeHAocmVnZXhwKVtTRUFSQ0hdKFN0cmluZyhPKSk7XG4gICAgfSxcbiAgICAvLyBgUmVnRXhwLnByb3RvdHlwZVtAQHNlYXJjaF1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUtQEBzZWFyY2hcbiAgICBmdW5jdGlvbiAocmVnZXhwKSB7XG4gICAgICB2YXIgcmVzID0gbWF5YmVDYWxsTmF0aXZlKG5hdGl2ZVNlYXJjaCwgcmVnZXhwLCB0aGlzKTtcbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcblxuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QocmVnZXhwKTtcbiAgICAgIHZhciBTID0gU3RyaW5nKHRoaXMpO1xuXG4gICAgICB2YXIgcHJldmlvdXNMYXN0SW5kZXggPSByeC5sYXN0SW5kZXg7XG4gICAgICBpZiAoIXNhbWVWYWx1ZShwcmV2aW91c0xhc3RJbmRleCwgMCkpIHJ4Lmxhc3RJbmRleCA9IDA7XG4gICAgICB2YXIgcmVzdWx0ID0gcmVnRXhwRXhlYyhyeCwgUyk7XG4gICAgICBpZiAoIXNhbWVWYWx1ZShyeC5sYXN0SW5kZXgsIHByZXZpb3VzTGFzdEluZGV4KSkgcngubGFzdEluZGV4ID0gcHJldmlvdXNMYXN0SW5kZXg7XG4gICAgICByZXR1cm4gcmVzdWx0ID09PSBudWxsID8gLTEgOiByZXN1bHQuaW5kZXg7XG4gICAgfVxuICBdO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBjcmVhdGVIVE1MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1odG1sJyk7XG52YXIgZm9yY2VkU3RyaW5nSFRNTE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctaHRtbC1mb3JjZWQnKTtcblxuLy8gYFN0cmluZy5wcm90b3R5cGUuc21hbGxgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5zbWFsbFxuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IGZvcmNlZFN0cmluZ0hUTUxNZXRob2QoJ3NtYWxsJykgfSwge1xuICBzbWFsbDogZnVuY3Rpb24gc21hbGwoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUhUTUwodGhpcywgJ3NtYWxsJywgJycsICcnKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZml4UmVnRXhwV2VsbEtub3duU3ltYm9sTG9naWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZml4LXJlZ2V4cC13ZWxsLWtub3duLXN5bWJvbC1sb2dpYycpO1xudmFyIGlzUmVnRXhwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXJlZ2V4cCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgc3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NwZWNpZXMtY29uc3RydWN0b3InKTtcbnZhciBhZHZhbmNlU3RyaW5nSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYWR2YW5jZS1zdHJpbmctaW5kZXgnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciBjYWxsUmVnRXhwRXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYy1hYnN0cmFjdCcpO1xudmFyIHJlZ2V4cEV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG52YXIgYXJyYXlQdXNoID0gW10ucHVzaDtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbnZhciBNQVhfVUlOVDMyID0gMHhGRkZGRkZGRjtcblxuLy8gYmFiZWwtbWluaWZ5IHRyYW5zcGlsZXMgUmVnRXhwKCd4JywgJ3knKSAtPiAveC95IGFuZCBpdCBjYXVzZXMgU3ludGF4RXJyb3JcbnZhciBTVVBQT1JUU19ZID0gIWZhaWxzKGZ1bmN0aW9uICgpIHsgcmV0dXJuICFSZWdFeHAoTUFYX1VJTlQzMiwgJ3knKTsgfSk7XG5cbi8vIEBAc3BsaXQgbG9naWNcbmZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljKCdzcGxpdCcsIDIsIGZ1bmN0aW9uIChTUExJVCwgbmF0aXZlU3BsaXQsIG1heWJlQ2FsbE5hdGl2ZSkge1xuICB2YXIgaW50ZXJuYWxTcGxpdDtcbiAgaWYgKFxuICAgICdhYmJjJy5zcGxpdCgvKGIpKi8pWzFdID09ICdjJyB8fFxuICAgICd0ZXN0Jy5zcGxpdCgvKD86KS8sIC0xKS5sZW5ndGggIT0gNCB8fFxuICAgICdhYicuc3BsaXQoLyg/OmFiKSovKS5sZW5ndGggIT0gMiB8fFxuICAgICcuJy5zcGxpdCgvKC4/KSguPykvKS5sZW5ndGggIT0gNCB8fFxuICAgICcuJy5zcGxpdCgvKCkoKS8pLmxlbmd0aCA+IDEgfHxcbiAgICAnJy5zcGxpdCgvLj8vKS5sZW5ndGhcbiAgKSB7XG4gICAgLy8gYmFzZWQgb24gZXM1LXNoaW0gaW1wbGVtZW50YXRpb24sIG5lZWQgdG8gcmV3b3JrIGl0XG4gICAgaW50ZXJuYWxTcGxpdCA9IGZ1bmN0aW9uIChzZXBhcmF0b3IsIGxpbWl0KSB7XG4gICAgICB2YXIgc3RyaW5nID0gU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcykpO1xuICAgICAgdmFyIGxpbSA9IGxpbWl0ID09PSB1bmRlZmluZWQgPyBNQVhfVUlOVDMyIDogbGltaXQgPj4+IDA7XG4gICAgICBpZiAobGltID09PSAwKSByZXR1cm4gW107XG4gICAgICBpZiAoc2VwYXJhdG9yID09PSB1bmRlZmluZWQpIHJldHVybiBbc3RyaW5nXTtcbiAgICAgIC8vIElmIGBzZXBhcmF0b3JgIGlzIG5vdCBhIHJlZ2V4LCB1c2UgbmF0aXZlIHNwbGl0XG4gICAgICBpZiAoIWlzUmVnRXhwKHNlcGFyYXRvcikpIHtcbiAgICAgICAgcmV0dXJuIG5hdGl2ZVNwbGl0LmNhbGwoc3RyaW5nLCBzZXBhcmF0b3IsIGxpbSk7XG4gICAgICB9XG4gICAgICB2YXIgb3V0cHV0ID0gW107XG4gICAgICB2YXIgZmxhZ3MgPSAoc2VwYXJhdG9yLmlnbm9yZUNhc2UgPyAnaScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci5tdWx0aWxpbmUgPyAnbScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci51bmljb2RlID8gJ3UnIDogJycpICtcbiAgICAgICAgICAgICAgICAgIChzZXBhcmF0b3Iuc3RpY2t5ID8gJ3knIDogJycpO1xuICAgICAgdmFyIGxhc3RMYXN0SW5kZXggPSAwO1xuICAgICAgLy8gTWFrZSBgZ2xvYmFsYCBhbmQgYXZvaWQgYGxhc3RJbmRleGAgaXNzdWVzIGJ5IHdvcmtpbmcgd2l0aCBhIGNvcHlcbiAgICAgIHZhciBzZXBhcmF0b3JDb3B5ID0gbmV3IFJlZ0V4cChzZXBhcmF0b3Iuc291cmNlLCBmbGFncyArICdnJyk7XG4gICAgICB2YXIgbWF0Y2gsIGxhc3RJbmRleCwgbGFzdExlbmd0aDtcbiAgICAgIHdoaWxlIChtYXRjaCA9IHJlZ2V4cEV4ZWMuY2FsbChzZXBhcmF0b3JDb3B5LCBzdHJpbmcpKSB7XG4gICAgICAgIGxhc3RJbmRleCA9IHNlcGFyYXRvckNvcHkubGFzdEluZGV4O1xuICAgICAgICBpZiAobGFzdEluZGV4ID4gbGFzdExhc3RJbmRleCkge1xuICAgICAgICAgIG91dHB1dC5wdXNoKHN0cmluZy5zbGljZShsYXN0TGFzdEluZGV4LCBtYXRjaC5pbmRleCkpO1xuICAgICAgICAgIGlmIChtYXRjaC5sZW5ndGggPiAxICYmIG1hdGNoLmluZGV4IDwgc3RyaW5nLmxlbmd0aCkgYXJyYXlQdXNoLmFwcGx5KG91dHB1dCwgbWF0Y2guc2xpY2UoMSkpO1xuICAgICAgICAgIGxhc3RMZW5ndGggPSBtYXRjaFswXS5sZW5ndGg7XG4gICAgICAgICAgbGFzdExhc3RJbmRleCA9IGxhc3RJbmRleDtcbiAgICAgICAgICBpZiAob3V0cHV0Lmxlbmd0aCA+PSBsaW0pIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZXBhcmF0b3JDb3B5Lmxhc3RJbmRleCA9PT0gbWF0Y2guaW5kZXgpIHNlcGFyYXRvckNvcHkubGFzdEluZGV4Kys7IC8vIEF2b2lkIGFuIGluZmluaXRlIGxvb3BcbiAgICAgIH1cbiAgICAgIGlmIChsYXN0TGFzdEluZGV4ID09PSBzdHJpbmcubGVuZ3RoKSB7XG4gICAgICAgIGlmIChsYXN0TGVuZ3RoIHx8ICFzZXBhcmF0b3JDb3B5LnRlc3QoJycpKSBvdXRwdXQucHVzaCgnJyk7XG4gICAgICB9IGVsc2Ugb3V0cHV0LnB1c2goc3RyaW5nLnNsaWNlKGxhc3RMYXN0SW5kZXgpKTtcbiAgICAgIHJldHVybiBvdXRwdXQubGVuZ3RoID4gbGltID8gb3V0cHV0LnNsaWNlKDAsIGxpbSkgOiBvdXRwdXQ7XG4gICAgfTtcbiAgLy8gQ2hha3JhLCBWOFxuICB9IGVsc2UgaWYgKCcwJy5zcGxpdCh1bmRlZmluZWQsIDApLmxlbmd0aCkge1xuICAgIGludGVybmFsU3BsaXQgPSBmdW5jdGlvbiAoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgICAgcmV0dXJuIHNlcGFyYXRvciA9PT0gdW5kZWZpbmVkICYmIGxpbWl0ID09PSAwID8gW10gOiBuYXRpdmVTcGxpdC5jYWxsKHRoaXMsIHNlcGFyYXRvciwgbGltaXQpO1xuICAgIH07XG4gIH0gZWxzZSBpbnRlcm5hbFNwbGl0ID0gbmF0aXZlU3BsaXQ7XG5cbiAgcmV0dXJuIFtcbiAgICAvLyBgU3RyaW5nLnByb3RvdHlwZS5zcGxpdGAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5zcGxpdFxuICAgIGZ1bmN0aW9uIHNwbGl0KHNlcGFyYXRvciwgbGltaXQpIHtcbiAgICAgIHZhciBPID0gcmVxdWlyZU9iamVjdENvZXJjaWJsZSh0aGlzKTtcbiAgICAgIHZhciBzcGxpdHRlciA9IHNlcGFyYXRvciA9PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBzZXBhcmF0b3JbU1BMSVRdO1xuICAgICAgcmV0dXJuIHNwbGl0dGVyICE9PSB1bmRlZmluZWRcbiAgICAgICAgPyBzcGxpdHRlci5jYWxsKHNlcGFyYXRvciwgTywgbGltaXQpXG4gICAgICAgIDogaW50ZXJuYWxTcGxpdC5jYWxsKFN0cmluZyhPKSwgc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgfSxcbiAgICAvLyBgUmVnRXhwLnByb3RvdHlwZVtAQHNwbGl0XWAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQHNwbGl0XG4gICAgLy9cbiAgICAvLyBOT1RFOiBUaGlzIGNhbm5vdCBiZSBwcm9wZXJseSBwb2x5ZmlsbGVkIGluIGVuZ2luZXMgdGhhdCBkb24ndCBzdXBwb3J0XG4gICAgLy8gdGhlICd5JyBmbGFnLlxuICAgIGZ1bmN0aW9uIChyZWdleHAsIGxpbWl0KSB7XG4gICAgICB2YXIgcmVzID0gbWF5YmVDYWxsTmF0aXZlKGludGVybmFsU3BsaXQsIHJlZ2V4cCwgdGhpcywgbGltaXQsIGludGVybmFsU3BsaXQgIT09IG5hdGl2ZVNwbGl0KTtcbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcblxuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QocmVnZXhwKTtcbiAgICAgIHZhciBTID0gU3RyaW5nKHRoaXMpO1xuICAgICAgdmFyIEMgPSBzcGVjaWVzQ29uc3RydWN0b3IocngsIFJlZ0V4cCk7XG5cbiAgICAgIHZhciB1bmljb2RlTWF0Y2hpbmcgPSByeC51bmljb2RlO1xuICAgICAgdmFyIGZsYWdzID0gKHJ4Lmlnbm9yZUNhc2UgPyAnaScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHJ4Lm11bHRpbGluZSA/ICdtJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAocngudW5pY29kZSA/ICd1JyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAoU1VQUE9SVFNfWSA/ICd5JyA6ICdnJyk7XG5cbiAgICAgIC8vIF4oPyArIHJ4ICsgKSBpcyBuZWVkZWQsIGluIGNvbWJpbmF0aW9uIHdpdGggc29tZSBTIHNsaWNpbmcsIHRvXG4gICAgICAvLyBzaW11bGF0ZSB0aGUgJ3knIGZsYWcuXG4gICAgICB2YXIgc3BsaXR0ZXIgPSBuZXcgQyhTVVBQT1JUU19ZID8gcnggOiAnXig/OicgKyByeC5zb3VyY2UgKyAnKScsIGZsYWdzKTtcbiAgICAgIHZhciBsaW0gPSBsaW1pdCA9PT0gdW5kZWZpbmVkID8gTUFYX1VJTlQzMiA6IGxpbWl0ID4+PiAwO1xuICAgICAgaWYgKGxpbSA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgaWYgKFMubGVuZ3RoID09PSAwKSByZXR1cm4gY2FsbFJlZ0V4cEV4ZWMoc3BsaXR0ZXIsIFMpID09PSBudWxsID8gW1NdIDogW107XG4gICAgICB2YXIgcCA9IDA7XG4gICAgICB2YXIgcSA9IDA7XG4gICAgICB2YXIgQSA9IFtdO1xuICAgICAgd2hpbGUgKHEgPCBTLmxlbmd0aCkge1xuICAgICAgICBzcGxpdHRlci5sYXN0SW5kZXggPSBTVVBQT1JUU19ZID8gcSA6IDA7XG4gICAgICAgIHZhciB6ID0gY2FsbFJlZ0V4cEV4ZWMoc3BsaXR0ZXIsIFNVUFBPUlRTX1kgPyBTIDogUy5zbGljZShxKSk7XG4gICAgICAgIHZhciBlO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgeiA9PT0gbnVsbCB8fFxuICAgICAgICAgIChlID0gbWluKHRvTGVuZ3RoKHNwbGl0dGVyLmxhc3RJbmRleCArIChTVVBQT1JUU19ZID8gMCA6IHEpKSwgUy5sZW5ndGgpKSA9PT0gcFxuICAgICAgICApIHtcbiAgICAgICAgICBxID0gYWR2YW5jZVN0cmluZ0luZGV4KFMsIHEsIHVuaWNvZGVNYXRjaGluZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgQS5wdXNoKFMuc2xpY2UocCwgcSkpO1xuICAgICAgICAgIGlmIChBLmxlbmd0aCA9PT0gbGltKSByZXR1cm4gQTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSB6Lmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgQS5wdXNoKHpbaV0pO1xuICAgICAgICAgICAgaWYgKEEubGVuZ3RoID09PSBsaW0pIHJldHVybiBBO1xuICAgICAgICAgIH1cbiAgICAgICAgICBxID0gcCA9IGU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEEucHVzaChTLnNsaWNlKHApKTtcbiAgICAgIHJldHVybiBBO1xuICAgIH1cbiAgXTtcbn0sICFTVVBQT1JUU19ZKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciBub3RBUmVnRXhwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25vdC1hLXJlZ2V4cCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgY29ycmVjdElzUmVnRXhwTG9naWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29ycmVjdC1pcy1yZWdleHAtbG9naWMnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcblxudmFyIG5hdGl2ZVN0YXJ0c1dpdGggPSAnJy5zdGFydHNXaXRoO1xudmFyIG1pbiA9IE1hdGgubWluO1xuXG52YXIgQ09SUkVDVF9JU19SRUdFWFBfTE9HSUMgPSBjb3JyZWN0SXNSZWdFeHBMb2dpYygnc3RhcnRzV2l0aCcpO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvcHVsbC83MDJcbnZhciBNRE5fUE9MWUZJTExfQlVHID0gIUlTX1BVUkUgJiYgIUNPUlJFQ1RfSVNfUkVHRVhQX0xPR0lDICYmICEhZnVuY3Rpb24gKCkge1xuICB2YXIgZGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAnc3RhcnRzV2l0aCcpO1xuICByZXR1cm4gZGVzY3JpcHRvciAmJiAhZGVzY3JpcHRvci53cml0YWJsZTtcbn0oKTtcblxuLy8gYFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnN0YXJ0c3dpdGhcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhTUROX1BPTFlGSUxMX0JVRyAmJiAhQ09SUkVDVF9JU19SRUdFWFBfTE9HSUMgfSwge1xuICBzdGFydHNXaXRoOiBmdW5jdGlvbiBzdGFydHNXaXRoKHNlYXJjaFN0cmluZyAvKiAsIHBvc2l0aW9uID0gMCAqLykge1xuICAgIHZhciB0aGF0ID0gU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcykpO1xuICAgIG5vdEFSZWdFeHAoc2VhcmNoU3RyaW5nKTtcbiAgICB2YXIgaW5kZXggPSB0b0xlbmd0aChtaW4oYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQsIHRoYXQubGVuZ3RoKSk7XG4gICAgdmFyIHNlYXJjaCA9IFN0cmluZyhzZWFyY2hTdHJpbmcpO1xuICAgIHJldHVybiBuYXRpdmVTdGFydHNXaXRoXG4gICAgICA/IG5hdGl2ZVN0YXJ0c1dpdGguY2FsbCh0aGF0LCBzZWFyY2gsIGluZGV4KVxuICAgICAgOiB0aGF0LnNsaWNlKGluZGV4LCBpbmRleCArIHNlYXJjaC5sZW5ndGgpID09PSBzZWFyY2g7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSFRNTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaHRtbCcpO1xudmFyIGZvcmNlZFN0cmluZ0hUTUxNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLWh0bWwtZm9yY2VkJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnN0cmlrZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnN0cmlrZVxuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IGZvcmNlZFN0cmluZ0hUTUxNZXRob2QoJ3N0cmlrZScpIH0sIHtcbiAgc3RyaWtlOiBmdW5jdGlvbiBzdHJpa2UoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUhUTUwodGhpcywgJ3N0cmlrZScsICcnLCAnJyk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSFRNTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaHRtbCcpO1xudmFyIGZvcmNlZFN0cmluZ0hUTUxNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLWh0bWwtZm9yY2VkJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnN1YmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnN1YlxuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IGZvcmNlZFN0cmluZ0hUTUxNZXRob2QoJ3N1YicpIH0sIHtcbiAgc3ViOiBmdW5jdGlvbiBzdWIoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUhUTUwodGhpcywgJ3N1YicsICcnLCAnJyk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSFRNTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaHRtbCcpO1xudmFyIGZvcmNlZFN0cmluZ0hUTUxNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLWh0bWwtZm9yY2VkJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnN1cGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnN1cFxuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IGZvcmNlZFN0cmluZ0hUTUxNZXRob2QoJ3N1cCcpIH0sIHtcbiAgc3VwOiBmdW5jdGlvbiBzdXAoKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUhUTUwodGhpcywgJ3N1cCcsICcnLCAnJyk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJHRyaW1FbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXRyaW0nKS5lbmQ7XG52YXIgZm9yY2VkU3RyaW5nVHJpbU1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctdHJpbS1mb3JjZWQnKTtcblxudmFyIEZPUkNFRCA9IGZvcmNlZFN0cmluZ1RyaW1NZXRob2QoJ3RyaW1FbmQnKTtcblxudmFyIHRyaW1FbmQgPSBGT1JDRUQgPyBmdW5jdGlvbiB0cmltRW5kKCkge1xuICByZXR1cm4gJHRyaW1FbmQodGhpcyk7XG59IDogJycudHJpbUVuZDtcblxuLy8gYFN0cmluZy5wcm90b3R5cGUueyB0cmltRW5kLCB0cmltUmlnaHQgfWAgbWV0aG9kc1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvZWNtYXNjcmlwdC1zdHJpbmctbGVmdC1yaWdodC10cmltXG4kKHsgdGFyZ2V0OiAnU3RyaW5nJywgcHJvdG86IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgdHJpbUVuZDogdHJpbUVuZCxcbiAgdHJpbVJpZ2h0OiB0cmltRW5kXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICR0cmltU3RhcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXRyaW0nKS5zdGFydDtcbnZhciBmb3JjZWRTdHJpbmdUcmltTWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy10cmltLWZvcmNlZCcpO1xuXG52YXIgRk9SQ0VEID0gZm9yY2VkU3RyaW5nVHJpbU1ldGhvZCgndHJpbVN0YXJ0Jyk7XG5cbnZhciB0cmltU3RhcnQgPSBGT1JDRUQgPyBmdW5jdGlvbiB0cmltU3RhcnQoKSB7XG4gIHJldHVybiAkdHJpbVN0YXJ0KHRoaXMpO1xufSA6ICcnLnRyaW1TdGFydDtcblxuLy8gYFN0cmluZy5wcm90b3R5cGUueyB0cmltU3RhcnQsIHRyaW1MZWZ0IH1gIG1ldGhvZHNcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L2VjbWFzY3JpcHQtc3RyaW5nLWxlZnQtcmlnaHQtdHJpbVxuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCB9LCB7XG4gIHRyaW1TdGFydDogdHJpbVN0YXJ0LFxuICB0cmltTGVmdDogdHJpbVN0YXJ0XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICR0cmltID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy10cmltJykudHJpbTtcbnZhciBmb3JjZWRTdHJpbmdUcmltTWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy10cmltLWZvcmNlZCcpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS50cmltYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbVxuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IGZvcmNlZFN0cmluZ1RyaW1NZXRob2QoJ3RyaW0nKSB9LCB7XG4gIHRyaW06IGZ1bmN0aW9uIHRyaW0oKSB7XG4gICAgcmV0dXJuICR0cmltKHRoaXMpO1xuICB9XG59KTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wuYXN5bmNJdGVyYXRvcmAgd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN5bWJvbC5hc3luY2l0ZXJhdG9yXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ2FzeW5jSXRlcmF0b3InKTtcbiIsIi8vIGBTeW1ib2wucHJvdG90eXBlLmRlc2NyaXB0aW9uYCBnZXR0ZXJcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN5bWJvbC5wcm90b3R5cGUuZGVzY3JpcHRpb25cbid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcbnZhciBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvcHktY29uc3RydWN0b3ItcHJvcGVydGllcycpO1xuXG52YXIgTmF0aXZlU3ltYm9sID0gZ2xvYmFsLlN5bWJvbDtcblxuaWYgKERFU0NSSVBUT1JTICYmIHR5cGVvZiBOYXRpdmVTeW1ib2wgPT0gJ2Z1bmN0aW9uJyAmJiAoISgnZGVzY3JpcHRpb24nIGluIE5hdGl2ZVN5bWJvbC5wcm90b3R5cGUpIHx8XG4gIC8vIFNhZmFyaSAxMiBidWdcbiAgTmF0aXZlU3ltYm9sKCkuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZFxuKSkge1xuICB2YXIgRW1wdHlTdHJpbmdEZXNjcmlwdGlvblN0b3JlID0ge307XG4gIC8vIHdyYXAgU3ltYm9sIGNvbnN0cnVjdG9yIGZvciBjb3JyZWN0IHdvcmsgd2l0aCB1bmRlZmluZWQgZGVzY3JpcHRpb25cbiAgdmFyIFN5bWJvbFdyYXBwZXIgPSBmdW5jdGlvbiBTeW1ib2woKSB7XG4gICAgdmFyIGRlc2NyaXB0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA8IDEgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBTdHJpbmcoYXJndW1lbnRzWzBdKTtcbiAgICB2YXIgcmVzdWx0ID0gdGhpcyBpbnN0YW5jZW9mIFN5bWJvbFdyYXBwZXJcbiAgICAgID8gbmV3IE5hdGl2ZVN5bWJvbChkZXNjcmlwdGlvbilcbiAgICAgIC8vIGluIEVkZ2UgMTMsIFN0cmluZyhTeW1ib2wodW5kZWZpbmVkKSkgPT09ICdTeW1ib2wodW5kZWZpbmVkKSdcbiAgICAgIDogZGVzY3JpcHRpb24gPT09IHVuZGVmaW5lZCA/IE5hdGl2ZVN5bWJvbCgpIDogTmF0aXZlU3ltYm9sKGRlc2NyaXB0aW9uKTtcbiAgICBpZiAoZGVzY3JpcHRpb24gPT09ICcnKSBFbXB0eVN0cmluZ0Rlc2NyaXB0aW9uU3RvcmVbcmVzdWx0XSA9IHRydWU7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbiAgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyhTeW1ib2xXcmFwcGVyLCBOYXRpdmVTeW1ib2wpO1xuICB2YXIgc3ltYm9sUHJvdG90eXBlID0gU3ltYm9sV3JhcHBlci5wcm90b3R5cGUgPSBOYXRpdmVTeW1ib2wucHJvdG90eXBlO1xuICBzeW1ib2xQcm90b3R5cGUuY29uc3RydWN0b3IgPSBTeW1ib2xXcmFwcGVyO1xuXG4gIHZhciBzeW1ib2xUb1N0cmluZyA9IHN5bWJvbFByb3RvdHlwZS50b1N0cmluZztcbiAgdmFyIG5hdGl2ZSA9IFN0cmluZyhOYXRpdmVTeW1ib2woJ3Rlc3QnKSkgPT0gJ1N5bWJvbCh0ZXN0KSc7XG4gIHZhciByZWdleHAgPSAvXlN5bWJvbFxcKCguKilcXClbXildKyQvO1xuICBkZWZpbmVQcm9wZXJ0eShzeW1ib2xQcm90b3R5cGUsICdkZXNjcmlwdGlvbicsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiBkZXNjcmlwdGlvbigpIHtcbiAgICAgIHZhciBzeW1ib2wgPSBpc09iamVjdCh0aGlzKSA/IHRoaXMudmFsdWVPZigpIDogdGhpcztcbiAgICAgIHZhciBzdHJpbmcgPSBzeW1ib2xUb1N0cmluZy5jYWxsKHN5bWJvbCk7XG4gICAgICBpZiAoaGFzKEVtcHR5U3RyaW5nRGVzY3JpcHRpb25TdG9yZSwgc3ltYm9sKSkgcmV0dXJuICcnO1xuICAgICAgdmFyIGRlc2MgPSBuYXRpdmUgPyBzdHJpbmcuc2xpY2UoNywgLTEpIDogc3RyaW5nLnJlcGxhY2UocmVnZXhwLCAnJDEnKTtcbiAgICAgIHJldHVybiBkZXNjID09PSAnJyA/IHVuZGVmaW5lZCA6IGRlc2M7XG4gICAgfVxuICB9KTtcblxuICAkKHsgZ2xvYmFsOiB0cnVlLCBmb3JjZWQ6IHRydWUgfSwge1xuICAgIFN5bWJvbDogU3ltYm9sV3JhcHBlclxuICB9KTtcbn1cbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wuaGFzSW5zdGFuY2VgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zeW1ib2wuaGFzaW5zdGFuY2VcbmRlZmluZVdlbGxLbm93blN5bWJvbCgnaGFzSW5zdGFuY2UnKTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wuaXNDb25jYXRTcHJlYWRhYmxlYCB3ZWxsLWtub3duIHN5bWJvbFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3ltYm9sLmlzY29uY2F0c3ByZWFkYWJsZVxuZGVmaW5lV2VsbEtub3duU3ltYm9sKCdpc0NvbmNhdFNwcmVhZGFibGUnKTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wuaXRlcmF0b3JgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zeW1ib2wuaXRlcmF0b3JcbmRlZmluZVdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgTkFUSVZFX1NZTUJPTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtc3ltYm9sJyk7XG52YXIgVVNFX1NZTUJPTF9BU19VSUQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgbmF0aXZlT2JqZWN0Q3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1jcmVhdGUnKTtcbnZhciBvYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcycpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXNFeHRlcm5hbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcy1leHRlcm5hbCcpO1xudmFyIGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciBkZWZpbmVQcm9wZXJ0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5Jyk7XG52YXIgcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXByb3BlcnR5LWlzLWVudW1lcmFibGUnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgcmVkZWZpbmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUnKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkJyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG52YXIgdWlkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3VpZCcpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIHdyYXBwZWRXZWxsS25vd25TeW1ib2xNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wtd3JhcHBlZCcpO1xudmFyIGRlZmluZVdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcbnZhciAkZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5mb3JFYWNoO1xuXG52YXIgSElEREVOID0gc2hhcmVkS2V5KCdoaWRkZW4nKTtcbnZhciBTWU1CT0wgPSAnU3ltYm9sJztcbnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJztcbnZhciBUT19QUklNSVRJVkUgPSB3ZWxsS25vd25TeW1ib2woJ3RvUHJpbWl0aXZlJyk7XG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvcihTWU1CT0wpO1xudmFyIE9iamVjdFByb3RvdHlwZSA9IE9iamVjdFtQUk9UT1RZUEVdO1xudmFyICRTeW1ib2wgPSBnbG9iYWwuU3ltYm9sO1xudmFyICRzdHJpbmdpZnkgPSBnZXRCdWlsdEluKCdKU09OJywgJ3N0cmluZ2lmeScpO1xudmFyIG5hdGl2ZUdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZS5mO1xudmFyIG5hdGl2ZURlZmluZVByb3BlcnR5ID0gZGVmaW5lUHJvcGVydHlNb2R1bGUuZjtcbnZhciBuYXRpdmVHZXRPd25Qcm9wZXJ0eU5hbWVzID0gZ2V0T3duUHJvcGVydHlOYW1lc0V4dGVybmFsLmY7XG52YXIgbmF0aXZlUHJvcGVydHlJc0VudW1lcmFibGUgPSBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZS5mO1xudmFyIEFsbFN5bWJvbHMgPSBzaGFyZWQoJ3N5bWJvbHMnKTtcbnZhciBPYmplY3RQcm90b3R5cGVTeW1ib2xzID0gc2hhcmVkKCdvcC1zeW1ib2xzJyk7XG52YXIgU3RyaW5nVG9TeW1ib2xSZWdpc3RyeSA9IHNoYXJlZCgnc3RyaW5nLXRvLXN5bWJvbC1yZWdpc3RyeScpO1xudmFyIFN5bWJvbFRvU3RyaW5nUmVnaXN0cnkgPSBzaGFyZWQoJ3N5bWJvbC10by1zdHJpbmctcmVnaXN0cnknKTtcbnZhciBXZWxsS25vd25TeW1ib2xzU3RvcmUgPSBzaGFyZWQoJ3drcycpO1xudmFyIFFPYmplY3QgPSBnbG9iYWwuUU9iamVjdDtcbi8vIERvbid0IHVzZSBzZXR0ZXJzIGluIFF0IFNjcmlwdCwgaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzE3M1xudmFyIFVTRV9TRVRURVIgPSAhUU9iamVjdCB8fCAhUU9iamVjdFtQUk9UT1RZUEVdIHx8ICFRT2JqZWN0W1BST1RPVFlQRV0uZmluZENoaWxkO1xuXG4vLyBmYWxsYmFjayBmb3Igb2xkIEFuZHJvaWQsIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD02ODdcbnZhciBzZXRTeW1ib2xEZXNjcmlwdG9yID0gREVTQ1JJUFRPUlMgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmF0aXZlT2JqZWN0Q3JlYXRlKG5hdGl2ZURlZmluZVByb3BlcnR5KHt9LCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5hdGl2ZURlZmluZVByb3BlcnR5KHRoaXMsICdhJywgeyB2YWx1ZTogNyB9KS5hOyB9XG4gIH0pKS5hICE9IDc7XG59KSA/IGZ1bmN0aW9uIChPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIHZhciBPYmplY3RQcm90b3R5cGVEZXNjcmlwdG9yID0gbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdFByb3RvdHlwZSwgUCk7XG4gIGlmIChPYmplY3RQcm90b3R5cGVEZXNjcmlwdG9yKSBkZWxldGUgT2JqZWN0UHJvdG90eXBlW1BdO1xuICBuYXRpdmVEZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgaWYgKE9iamVjdFByb3RvdHlwZURlc2NyaXB0b3IgJiYgTyAhPT0gT2JqZWN0UHJvdG90eXBlKSB7XG4gICAgbmF0aXZlRGVmaW5lUHJvcGVydHkoT2JqZWN0UHJvdG90eXBlLCBQLCBPYmplY3RQcm90b3R5cGVEZXNjcmlwdG9yKTtcbiAgfVxufSA6IG5hdGl2ZURlZmluZVByb3BlcnR5O1xuXG52YXIgd3JhcCA9IGZ1bmN0aW9uICh0YWcsIGRlc2NyaXB0aW9uKSB7XG4gIHZhciBzeW1ib2wgPSBBbGxTeW1ib2xzW3RhZ10gPSBuYXRpdmVPYmplY3RDcmVhdGUoJFN5bWJvbFtQUk9UT1RZUEVdKTtcbiAgc2V0SW50ZXJuYWxTdGF0ZShzeW1ib2wsIHtcbiAgICB0eXBlOiBTWU1CT0wsXG4gICAgdGFnOiB0YWcsXG4gICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uXG4gIH0pO1xuICBpZiAoIURFU0NSSVBUT1JTKSBzeW1ib2wuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgcmV0dXJuIHN5bWJvbDtcbn07XG5cbnZhciBpc1N5bWJvbCA9IFVTRV9TWU1CT0xfQVNfVUlEID8gZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiB0eXBlb2YgaXQgPT0gJ3N5bWJvbCc7XG59IDogZnVuY3Rpb24gKGl0KSB7XG4gIHJldHVybiBPYmplY3QoaXQpIGluc3RhbmNlb2YgJFN5bWJvbDtcbn07XG5cbnZhciAkZGVmaW5lUHJvcGVydHkgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGlmIChPID09PSBPYmplY3RQcm90b3R5cGUpICRkZWZpbmVQcm9wZXJ0eShPYmplY3RQcm90b3R5cGVTeW1ib2xzLCBQLCBBdHRyaWJ1dGVzKTtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBrZXkgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChoYXMoQWxsU3ltYm9scywga2V5KSkge1xuICAgIGlmICghQXR0cmlidXRlcy5lbnVtZXJhYmxlKSB7XG4gICAgICBpZiAoIWhhcyhPLCBISURERU4pKSBuYXRpdmVEZWZpbmVQcm9wZXJ0eShPLCBISURERU4sIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigxLCB7fSkpO1xuICAgICAgT1tISURERU5dW2tleV0gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaGFzKE8sIEhJRERFTikgJiYgT1tISURERU5dW2tleV0pIE9bSElEREVOXVtrZXldID0gZmFsc2U7XG4gICAgICBBdHRyaWJ1dGVzID0gbmF0aXZlT2JqZWN0Q3JlYXRlKEF0dHJpYnV0ZXMsIHsgZW51bWVyYWJsZTogY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDAsIGZhbHNlKSB9KTtcbiAgICB9IHJldHVybiBzZXRTeW1ib2xEZXNjcmlwdG9yKE8sIGtleSwgQXR0cmlidXRlcyk7XG4gIH0gcmV0dXJuIG5hdGl2ZURlZmluZVByb3BlcnR5KE8sIGtleSwgQXR0cmlidXRlcyk7XG59O1xuXG52YXIgJGRlZmluZVByb3BlcnRpZXMgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKE8sIFByb3BlcnRpZXMpIHtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBwcm9wZXJ0aWVzID0gdG9JbmRleGVkT2JqZWN0KFByb3BlcnRpZXMpO1xuICB2YXIga2V5cyA9IG9iamVjdEtleXMocHJvcGVydGllcykuY29uY2F0KCRnZXRPd25Qcm9wZXJ0eVN5bWJvbHMocHJvcGVydGllcykpO1xuICAkZm9yRWFjaChrZXlzLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgaWYgKCFERVNDUklQVE9SUyB8fCAkcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChwcm9wZXJ0aWVzLCBrZXkpKSAkZGVmaW5lUHJvcGVydHkoTywga2V5LCBwcm9wZXJ0aWVzW2tleV0pO1xuICB9KTtcbiAgcmV0dXJuIE87XG59O1xuXG52YXIgJGNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShPLCBQcm9wZXJ0aWVzKSB7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyBuYXRpdmVPYmplY3RDcmVhdGUoTykgOiAkZGVmaW5lUHJvcGVydGllcyhuYXRpdmVPYmplY3RDcmVhdGUoTyksIFByb3BlcnRpZXMpO1xufTtcblxudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IGZ1bmN0aW9uIHByb3BlcnR5SXNFbnVtZXJhYmxlKFYpIHtcbiAgdmFyIFAgPSB0b1ByaW1pdGl2ZShWLCB0cnVlKTtcbiAgdmFyIGVudW1lcmFibGUgPSBuYXRpdmVQcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHRoaXMsIFApO1xuICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG90eXBlICYmIGhhcyhBbGxTeW1ib2xzLCBQKSAmJiAhaGFzKE9iamVjdFByb3RvdHlwZVN5bWJvbHMsIFApKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBlbnVtZXJhYmxlIHx8ICFoYXModGhpcywgUCkgfHwgIWhhcyhBbGxTeW1ib2xzLCBQKSB8fCBoYXModGhpcywgSElEREVOKSAmJiB0aGlzW0hJRERFTl1bUF0gPyBlbnVtZXJhYmxlIDogdHJ1ZTtcbn07XG5cbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApIHtcbiAgdmFyIGl0ID0gdG9JbmRleGVkT2JqZWN0KE8pO1xuICB2YXIga2V5ID0gdG9QcmltaXRpdmUoUCwgdHJ1ZSk7XG4gIGlmIChpdCA9PT0gT2JqZWN0UHJvdG90eXBlICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICFoYXMoT2JqZWN0UHJvdG90eXBlU3ltYm9scywga2V5KSkgcmV0dXJuO1xuICB2YXIgZGVzY3JpcHRvciA9IG5hdGl2ZUdldE93blByb3BlcnR5RGVzY3JpcHRvcihpdCwga2V5KTtcbiAgaWYgKGRlc2NyaXB0b3IgJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIShoYXMoaXQsIEhJRERFTikgJiYgaXRbSElEREVOXVtrZXldKSkge1xuICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IHRydWU7XG4gIH1cbiAgcmV0dXJuIGRlc2NyaXB0b3I7XG59O1xuXG52YXIgJGdldE93blByb3BlcnR5TmFtZXMgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKE8pIHtcbiAgdmFyIG5hbWVzID0gbmF0aXZlR2V0T3duUHJvcGVydHlOYW1lcyh0b0luZGV4ZWRPYmplY3QoTykpO1xuICB2YXIgcmVzdWx0ID0gW107XG4gICRmb3JFYWNoKG5hbWVzLCBmdW5jdGlvbiAoa2V5KSB7XG4gICAgaWYgKCFoYXMoQWxsU3ltYm9scywga2V5KSAmJiAhaGFzKGhpZGRlbktleXMsIGtleSkpIHJlc3VsdC5wdXNoKGtleSk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufTtcblxudmFyICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoTykge1xuICB2YXIgSVNfT0JKRUNUX1BST1RPVFlQRSA9IE8gPT09IE9iamVjdFByb3RvdHlwZTtcbiAgdmFyIG5hbWVzID0gbmF0aXZlR2V0T3duUHJvcGVydHlOYW1lcyhJU19PQkpFQ1RfUFJPVE9UWVBFID8gT2JqZWN0UHJvdG90eXBlU3ltYm9scyA6IHRvSW5kZXhlZE9iamVjdChPKSk7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgJGZvckVhY2gobmFtZXMsIGZ1bmN0aW9uIChrZXkpIHtcbiAgICBpZiAoaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgKCFJU19PQkpFQ1RfUFJPVE9UWVBFIHx8IGhhcyhPYmplY3RQcm90b3R5cGUsIGtleSkpKSB7XG4gICAgICByZXN1bHQucHVzaChBbGxTeW1ib2xzW2tleV0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyBgU3ltYm9sYCBjb25zdHJ1Y3RvclxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3ltYm9sLWNvbnN0cnVjdG9yXG5pZiAoIU5BVElWRV9TWU1CT0wpIHtcbiAgJFN5bWJvbCA9IGZ1bmN0aW9uIFN5bWJvbCgpIHtcbiAgICBpZiAodGhpcyBpbnN0YW5jZW9mICRTeW1ib2wpIHRocm93IFR5cGVFcnJvcignU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yJyk7XG4gICAgdmFyIGRlc2NyaXB0aW9uID0gIWFyZ3VtZW50cy5sZW5ndGggfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBTdHJpbmcoYXJndW1lbnRzWzBdKTtcbiAgICB2YXIgdGFnID0gdWlkKGRlc2NyaXB0aW9uKTtcbiAgICB2YXIgc2V0dGVyID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG90eXBlKSBzZXR0ZXIuY2FsbChPYmplY3RQcm90b3R5cGVTeW1ib2xzLCB2YWx1ZSk7XG4gICAgICBpZiAoaGFzKHRoaXMsIEhJRERFTikgJiYgaGFzKHRoaXNbSElEREVOXSwgdGFnKSkgdGhpc1tISURERU5dW3RhZ10gPSBmYWxzZTtcbiAgICAgIHNldFN5bWJvbERlc2NyaXB0b3IodGhpcywgdGFnLCBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMSwgdmFsdWUpKTtcbiAgICB9O1xuICAgIGlmIChERVNDUklQVE9SUyAmJiBVU0VfU0VUVEVSKSBzZXRTeW1ib2xEZXNjcmlwdG9yKE9iamVjdFByb3RvdHlwZSwgdGFnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgc2V0OiBzZXR0ZXIgfSk7XG4gICAgcmV0dXJuIHdyYXAodGFnLCBkZXNjcmlwdGlvbik7XG4gIH07XG5cbiAgcmVkZWZpbmUoJFN5bWJvbFtQUk9UT1RZUEVdLCAndG9TdHJpbmcnLCBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKS50YWc7XG4gIH0pO1xuXG4gIHJlZGVmaW5lKCRTeW1ib2wsICd3aXRob3V0U2V0dGVyJywgZnVuY3Rpb24gKGRlc2NyaXB0aW9uKSB7XG4gICAgcmV0dXJuIHdyYXAodWlkKGRlc2NyaXB0aW9uKSwgZGVzY3JpcHRpb24pO1xuICB9KTtcblxuICBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZS5mID0gJHByb3BlcnR5SXNFbnVtZXJhYmxlO1xuICBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mID0gJGRlZmluZVByb3BlcnR5O1xuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUuZiA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG4gIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUuZiA9IGdldE93blByb3BlcnR5TmFtZXNFeHRlcm5hbC5mID0gJGdldE93blByb3BlcnR5TmFtZXM7XG4gIGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mID0gJGdldE93blByb3BlcnR5U3ltYm9scztcblxuICB3cmFwcGVkV2VsbEtub3duU3ltYm9sTW9kdWxlLmYgPSBmdW5jdGlvbiAobmFtZSkge1xuICAgIHJldHVybiB3cmFwKHdlbGxLbm93blN5bWJvbChuYW1lKSwgbmFtZSk7XG4gIH07XG5cbiAgaWYgKERFU0NSSVBUT1JTKSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtU3ltYm9sLWRlc2NyaXB0aW9uXG4gICAgbmF0aXZlRGVmaW5lUHJvcGVydHkoJFN5bWJvbFtQUk9UT1RZUEVdLCAnZGVzY3JpcHRpb24nLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQ6IGZ1bmN0aW9uIGRlc2NyaXB0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKS5kZXNjcmlwdGlvbjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoIUlTX1BVUkUpIHtcbiAgICAgIHJlZGVmaW5lKE9iamVjdFByb3RvdHlwZSwgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJywgJHByb3BlcnR5SXNFbnVtZXJhYmxlLCB7IHVuc2FmZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cbn1cblxuJCh7IGdsb2JhbDogdHJ1ZSwgd3JhcDogdHJ1ZSwgZm9yY2VkOiAhTkFUSVZFX1NZTUJPTCwgc2hhbTogIU5BVElWRV9TWU1CT0wgfSwge1xuICBTeW1ib2w6ICRTeW1ib2xcbn0pO1xuXG4kZm9yRWFjaChvYmplY3RLZXlzKFdlbGxLbm93blN5bWJvbHNTdG9yZSksIGZ1bmN0aW9uIChuYW1lKSB7XG4gIGRlZmluZVdlbGxLbm93blN5bWJvbChuYW1lKTtcbn0pO1xuXG4kKHsgdGFyZ2V0OiBTWU1CT0wsIHN0YXQ6IHRydWUsIGZvcmNlZDogIU5BVElWRV9TWU1CT0wgfSwge1xuICAvLyBgU3ltYm9sLmZvcmAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN5bWJvbC5mb3JcbiAgJ2Zvcic6IGZ1bmN0aW9uIChrZXkpIHtcbiAgICB2YXIgc3RyaW5nID0gU3RyaW5nKGtleSk7XG4gICAgaWYgKGhhcyhTdHJpbmdUb1N5bWJvbFJlZ2lzdHJ5LCBzdHJpbmcpKSByZXR1cm4gU3RyaW5nVG9TeW1ib2xSZWdpc3RyeVtzdHJpbmddO1xuICAgIHZhciBzeW1ib2wgPSAkU3ltYm9sKHN0cmluZyk7XG4gICAgU3RyaW5nVG9TeW1ib2xSZWdpc3RyeVtzdHJpbmddID0gc3ltYm9sO1xuICAgIFN5bWJvbFRvU3RyaW5nUmVnaXN0cnlbc3ltYm9sXSA9IHN0cmluZztcbiAgICByZXR1cm4gc3ltYm9sO1xuICB9LFxuICAvLyBgU3ltYm9sLmtleUZvcmAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN5bWJvbC5rZXlmb3JcbiAga2V5Rm9yOiBmdW5jdGlvbiBrZXlGb3Ioc3ltKSB7XG4gICAgaWYgKCFpc1N5bWJvbChzeW0pKSB0aHJvdyBUeXBlRXJyb3Ioc3ltICsgJyBpcyBub3QgYSBzeW1ib2wnKTtcbiAgICBpZiAoaGFzKFN5bWJvbFRvU3RyaW5nUmVnaXN0cnksIHN5bSkpIHJldHVybiBTeW1ib2xUb1N0cmluZ1JlZ2lzdHJ5W3N5bV07XG4gIH0sXG4gIHVzZVNldHRlcjogZnVuY3Rpb24gKCkgeyBVU0VfU0VUVEVSID0gdHJ1ZTsgfSxcbiAgdXNlU2ltcGxlOiBmdW5jdGlvbiAoKSB7IFVTRV9TRVRURVIgPSBmYWxzZTsgfVxufSk7XG5cbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6ICFOQVRJVkVfU1lNQk9MLCBzaGFtOiAhREVTQ1JJUFRPUlMgfSwge1xuICAvLyBgT2JqZWN0LmNyZWF0ZWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5jcmVhdGVcbiAgY3JlYXRlOiAkY3JlYXRlLFxuICAvLyBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnR5XG4gIGRlZmluZVByb3BlcnR5OiAkZGVmaW5lUHJvcGVydHksXG4gIC8vIGBPYmplY3QuZGVmaW5lUHJvcGVydGllc2AgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5kZWZpbmVwcm9wZXJ0aWVzXG4gIGRlZmluZVByb3BlcnRpZXM6ICRkZWZpbmVQcm9wZXJ0aWVzLFxuICAvLyBgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcmAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLW9iamVjdC5nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3JzXG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjogJGdldE93blByb3BlcnR5RGVzY3JpcHRvclxufSk7XG5cbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6ICFOQVRJVkVfU1lNQk9MIH0sIHtcbiAgLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5bmFtZXNcbiAgZ2V0T3duUHJvcGVydHlOYW1lczogJGdldE93blByb3BlcnR5TmFtZXMsXG4gIC8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5c3ltYm9sc1xuICBnZXRPd25Qcm9wZXJ0eVN5bWJvbHM6ICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHNcbn0pO1xuXG4vLyBDaHJvbWUgMzggYW5kIDM5IGBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzYCBmYWlscyBvbiBwcmltaXRpdmVzXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zNDQzXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBmYWlscyhmdW5jdGlvbiAoKSB7IGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mKDEpOyB9KSB9LCB7XG4gIGdldE93blByb3BlcnR5U3ltYm9sczogZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGl0KSB7XG4gICAgcmV0dXJuIGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mKHRvT2JqZWN0KGl0KSk7XG4gIH1cbn0pO1xuXG4vLyBgSlNPTi5zdHJpbmdpZnlgIG1ldGhvZCBiZWhhdmlvciB3aXRoIHN5bWJvbHNcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWpzb24uc3RyaW5naWZ5XG5pZiAoJHN0cmluZ2lmeSkge1xuICB2YXIgRk9SQ0VEX0pTT05fU1RSSU5HSUZZID0gIU5BVElWRV9TWU1CT0wgfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIHZhciBzeW1ib2wgPSAkU3ltYm9sKCk7XG4gICAgLy8gTVMgRWRnZSBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMge31cbiAgICByZXR1cm4gJHN0cmluZ2lmeShbc3ltYm9sXSkgIT0gJ1tudWxsXSdcbiAgICAgIC8vIFdlYktpdCBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMgbnVsbFxuICAgICAgfHwgJHN0cmluZ2lmeSh7IGE6IHN5bWJvbCB9KSAhPSAne30nXG4gICAgICAvLyBWOCB0aHJvd3Mgb24gYm94ZWQgc3ltYm9sc1xuICAgICAgfHwgJHN0cmluZ2lmeShPYmplY3Qoc3ltYm9sKSkgIT0gJ3t9JztcbiAgfSk7XG5cbiAgJCh7IHRhcmdldDogJ0pTT04nLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZPUkNFRF9KU09OX1NUUklOR0lGWSB9LCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG4gICAgc3RyaW5naWZ5OiBmdW5jdGlvbiBzdHJpbmdpZnkoaXQsIHJlcGxhY2VyLCBzcGFjZSkge1xuICAgICAgdmFyIGFyZ3MgPSBbaXRdO1xuICAgICAgdmFyIGluZGV4ID0gMTtcbiAgICAgIHZhciAkcmVwbGFjZXI7XG4gICAgICB3aGlsZSAoYXJndW1lbnRzLmxlbmd0aCA+IGluZGV4KSBhcmdzLnB1c2goYXJndW1lbnRzW2luZGV4KytdKTtcbiAgICAgICRyZXBsYWNlciA9IHJlcGxhY2VyO1xuICAgICAgaWYgKCFpc09iamVjdChyZXBsYWNlcikgJiYgaXQgPT09IHVuZGVmaW5lZCB8fCBpc1N5bWJvbChpdCkpIHJldHVybjsgLy8gSUU4IHJldHVybnMgc3RyaW5nIG9uIHVuZGVmaW5lZFxuICAgICAgaWYgKCFpc0FycmF5KHJlcGxhY2VyKSkgcmVwbGFjZXIgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgICBpZiAodHlwZW9mICRyZXBsYWNlciA9PSAnZnVuY3Rpb24nKSB2YWx1ZSA9ICRyZXBsYWNlci5jYWxsKHRoaXMsIGtleSwgdmFsdWUpO1xuICAgICAgICBpZiAoIWlzU3ltYm9sKHZhbHVlKSkgcmV0dXJuIHZhbHVlO1xuICAgICAgfTtcbiAgICAgIGFyZ3NbMV0gPSByZXBsYWNlcjtcbiAgICAgIHJldHVybiAkc3RyaW5naWZ5LmFwcGx5KG51bGwsIGFyZ3MpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8vIGBTeW1ib2wucHJvdG90eXBlW0BAdG9QcmltaXRpdmVdYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN5bWJvbC5wcm90b3R5cGUtQEB0b3ByaW1pdGl2ZVxuaWYgKCEkU3ltYm9sW1BST1RPVFlQRV1bVE9fUFJJTUlUSVZFXSkge1xuICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoJFN5bWJvbFtQUk9UT1RZUEVdLCBUT19QUklNSVRJVkUsICRTeW1ib2xbUFJPVE9UWVBFXS52YWx1ZU9mKTtcbn1cbi8vIGBTeW1ib2wucHJvdG90eXBlW0BAdG9TdHJpbmdUYWddYCBwcm9wZXJ0eVxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3ltYm9sLnByb3RvdHlwZS1AQHRvc3RyaW5ndGFnXG5zZXRUb1N0cmluZ1RhZygkU3ltYm9sLCBTWU1CT0wpO1xuXG5oaWRkZW5LZXlzW0hJRERFTl0gPSB0cnVlO1xuIiwidmFyIGRlZmluZVdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtd2VsbC1rbm93bi1zeW1ib2wnKTtcblxuLy8gYFN5bWJvbC5tYXRjaEFsbGAgd2VsbC1rbm93biBzeW1ib2xcbmRlZmluZVdlbGxLbm93blN5bWJvbCgnbWF0Y2hBbGwnKTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wubWF0Y2hgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zeW1ib2wubWF0Y2hcbmRlZmluZVdlbGxLbm93blN5bWJvbCgnbWF0Y2gnKTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wucmVwbGFjZWAgd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN5bWJvbC5yZXBsYWNlXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ3JlcGxhY2UnKTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wuc2VhcmNoYCB3ZWxsLWtub3duIHN5bWJvbFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtc3ltYm9sLnNlYXJjaFxuZGVmaW5lV2VsbEtub3duU3ltYm9sKCdzZWFyY2gnKTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wuc3BlY2llc2Agd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXN5bWJvbC5zcGVjaWVzXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wuc3BsaXRgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zeW1ib2wuc3BsaXRcbmRlZmluZVdlbGxLbm93blN5bWJvbCgnc3BsaXQnKTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wudG9QcmltaXRpdmVgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zeW1ib2wudG9wcmltaXRpdmVcbmRlZmluZVdlbGxLbm93blN5bWJvbCgndG9QcmltaXRpdmUnKTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wudG9TdHJpbmdUYWdgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zeW1ib2wudG9zdHJpbmd0YWdcbmRlZmluZVdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wudW5zY29wYWJsZXNgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1zeW1ib2wudW5zY29wYWJsZXNcbmRlZmluZVdlbGxLbm93blN5bWJvbCgndW5zY29wYWJsZXMnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkY29weVdpdGhpbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1jb3B5LXdpdGhpbicpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmNvcHlXaXRoaW5gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5jb3B5d2l0aGluXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdjb3B5V2l0aGluJywgZnVuY3Rpb24gY29weVdpdGhpbih0YXJnZXQsIHN0YXJ0IC8qICwgZW5kICovKSB7XG4gIHJldHVybiAkY29weVdpdGhpbi5jYWxsKGFUeXBlZEFycmF5KHRoaXMpLCB0YXJnZXQsIHN0YXJ0LCBhcmd1bWVudHMubGVuZ3RoID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZCk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkZXZlcnkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZXZlcnk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuZXZlcnlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5ldmVyeVxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnZXZlcnknLCBmdW5jdGlvbiBldmVyeShjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICByZXR1cm4gJGV2ZXJ5KGFUeXBlZEFycmF5KHRoaXMpLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkZmlsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1maWxsJyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuZmlsbGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmZpbGxcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnZmlsbCcsIGZ1bmN0aW9uIGZpbGwodmFsdWUgLyogLCBzdGFydCwgZW5kICovKSB7XG4gIHJldHVybiAkZmlsbC5hcHBseShhVHlwZWRBcnJheSh0aGlzKSwgYXJndW1lbnRzKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRmaWx0ZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZmlsdGVyO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgYVR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maWx0ZXJgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5maWx0ZXJcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2ZpbHRlcicsIGZ1bmN0aW9uIGZpbHRlcihjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICB2YXIgbGlzdCA9ICRmaWx0ZXIoYVR5cGVkQXJyYXkodGhpcyksIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgdmFyIEMgPSBzcGVjaWVzQ29uc3RydWN0b3IodGhpcywgdGhpcy5jb25zdHJ1Y3Rvcik7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBsZW5ndGggPSBsaXN0Lmxlbmd0aDtcbiAgdmFyIHJlc3VsdCA9IG5ldyAoYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcihDKSkobGVuZ3RoKTtcbiAgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSByZXN1bHRbaW5kZXhdID0gbGlzdFtpbmRleCsrXTtcbiAgcmV0dXJuIHJlc3VsdDtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRmaW5kSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZmluZEluZGV4O1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmZpbmRJbmRleGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmZpbmRpbmRleFxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnZmluZEluZGV4JywgZnVuY3Rpb24gZmluZEluZGV4KHByZWRpY2F0ZSAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgcmV0dXJuICRmaW5kSW5kZXgoYVR5cGVkQXJyYXkodGhpcyksIHByZWRpY2F0ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJGZpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZmluZDtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5maW5kYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuZmluZFxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnZmluZCcsIGZ1bmN0aW9uIGZpbmQocHJlZGljYXRlIC8qICwgdGhpc0FyZyAqLykge1xuICByZXR1cm4gJGZpbmQoYVR5cGVkQXJyYXkodGhpcyksIHByZWRpY2F0ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCJ2YXIgY3JlYXRlVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3R5cGVkLWFycmF5LWNvbnN0cnVjdG9yJyk7XG5cbi8vIGBGbG9hdDMyQXJyYXlgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10eXBlZGFycmF5LW9iamVjdHNcbmNyZWF0ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvcignRmxvYXQzMicsIGZ1bmN0aW9uIChpbml0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBGbG9hdDMyQXJyYXkoZGF0YSwgYnl0ZU9mZnNldCwgbGVuZ3RoKSB7XG4gICAgcmV0dXJuIGluaXQodGhpcywgZGF0YSwgYnl0ZU9mZnNldCwgbGVuZ3RoKTtcbiAgfTtcbn0pO1xuIiwidmFyIGNyZWF0ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90eXBlZC1hcnJheS1jb25zdHJ1Y3RvcicpO1xuXG4vLyBgRmxvYXQ2NEFycmF5YCBjb25zdHJ1Y3RvclxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdHlwZWRhcnJheS1vYmplY3RzXG5jcmVhdGVUeXBlZEFycmF5Q29uc3RydWN0b3IoJ0Zsb2F0NjQnLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gRmxvYXQ2NEFycmF5KGRhdGEsIGJ5dGVPZmZzZXQsIGxlbmd0aCkge1xuICAgIHJldHVybiBpbml0KHRoaXMsIGRhdGEsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7XG4gIH07XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5mb3JFYWNoO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5mb3JlYWNoXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdmb3JFYWNoJywgZnVuY3Rpb24gZm9yRWFjaChjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAkZm9yRWFjaChhVHlwZWRBcnJheSh0aGlzKSwgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgVFlQRURfQVJSQVlTX0NPTlNUUlVDVE9SU19SRVFVSVJFU19XUkFQUEVSUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90eXBlZC1hcnJheS1jb25zdHJ1Y3RvcnMtcmVxdWlyZS13cmFwcGVycycpO1xudmFyIGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpLmV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q7XG52YXIgdHlwZWRBcnJheUZyb20gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHlwZWQtYXJyYXktZnJvbScpO1xuXG4vLyBgJVR5cGVkQXJyYXklLmZyb21gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLmZyb21cbmV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2QoJ2Zyb20nLCB0eXBlZEFycmF5RnJvbSwgVFlQRURfQVJSQVlTX0NPTlNUUlVDVE9SU19SRVFVSVJFU19XUkFQUEVSUyk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgJGluY2x1ZGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzJykuaW5jbHVkZXM7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuaW5jbHVkZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5pbmNsdWRlc1xuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnaW5jbHVkZXMnLCBmdW5jdGlvbiBpbmNsdWRlcyhzZWFyY2hFbGVtZW50IC8qICwgZnJvbUluZGV4ICovKSB7XG4gIHJldHVybiAkaW5jbHVkZXMoYVR5cGVkQXJyYXkodGhpcyksIHNlYXJjaEVsZW1lbnQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRpbmRleE9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzJykuaW5kZXhPZjtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5pbmRleE9mYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuaW5kZXhvZlxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnaW5kZXhPZicsIGZ1bmN0aW9uIGluZGV4T2Yoc2VhcmNoRWxlbWVudCAvKiAsIGZyb21JbmRleCAqLykge1xuICByZXR1cm4gJGluZGV4T2YoYVR5cGVkQXJyYXkodGhpcyksIHNlYXJjaEVsZW1lbnQsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbn0pO1xuIiwidmFyIGNyZWF0ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90eXBlZC1hcnJheS1jb25zdHJ1Y3RvcicpO1xuXG4vLyBgSW50MTZBcnJheWAgY29uc3RydWN0b3Jcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXR5cGVkYXJyYXktb2JqZWN0c1xuY3JlYXRlVHlwZWRBcnJheUNvbnN0cnVjdG9yKCdJbnQxNicsIGZ1bmN0aW9uIChpbml0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBJbnQxNkFycmF5KGRhdGEsIGJ5dGVPZmZzZXQsIGxlbmd0aCkge1xuICAgIHJldHVybiBpbml0KHRoaXMsIGRhdGEsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7XG4gIH07XG59KTtcbiIsInZhciBjcmVhdGVUeXBlZEFycmF5Q29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHlwZWQtYXJyYXktY29uc3RydWN0b3InKTtcblxuLy8gYEludDMyQXJyYXlgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10eXBlZGFycmF5LW9iamVjdHNcbmNyZWF0ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvcignSW50MzInLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gSW50MzJBcnJheShkYXRhLCBieXRlT2Zmc2V0LCBsZW5ndGgpIHtcbiAgICByZXR1cm4gaW5pdCh0aGlzLCBkYXRhLCBieXRlT2Zmc2V0LCBsZW5ndGgpO1xuICB9O1xufSk7XG4iLCJ2YXIgY3JlYXRlVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3R5cGVkLWFycmF5LWNvbnN0cnVjdG9yJyk7XG5cbi8vIGBJbnQ4QXJyYXlgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy10eXBlZGFycmF5LW9iamVjdHNcbmNyZWF0ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvcignSW50OCcsIGZ1bmN0aW9uIChpbml0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBJbnQ4QXJyYXkoZGF0YSwgYnl0ZU9mZnNldCwgbGVuZ3RoKSB7XG4gICAgcmV0dXJuIGluaXQodGhpcywgZGF0YSwgYnl0ZU9mZnNldCwgbGVuZ3RoKTtcbiAgfTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciBBcnJheUl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3InKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIFVpbnQ4QXJyYXkgPSBnbG9iYWwuVWludDhBcnJheTtcbnZhciBhcnJheVZhbHVlcyA9IEFycmF5SXRlcmF0b3JzLnZhbHVlcztcbnZhciBhcnJheUtleXMgPSBBcnJheUl0ZXJhdG9ycy5rZXlzO1xudmFyIGFycmF5RW50cmllcyA9IEFycmF5SXRlcmF0b3JzLmVudHJpZXM7XG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG52YXIgbmF0aXZlVHlwZWRBcnJheUl0ZXJhdG9yID0gVWludDhBcnJheSAmJiBVaW50OEFycmF5LnByb3RvdHlwZVtJVEVSQVRPUl07XG5cbnZhciBDT1JSRUNUX0lURVJfTkFNRSA9ICEhbmF0aXZlVHlwZWRBcnJheUl0ZXJhdG9yXG4gICYmIChuYXRpdmVUeXBlZEFycmF5SXRlcmF0b3IubmFtZSA9PSAndmFsdWVzJyB8fCBuYXRpdmVUeXBlZEFycmF5SXRlcmF0b3IubmFtZSA9PSB1bmRlZmluZWQpO1xuXG52YXIgdHlwZWRBcnJheVZhbHVlcyA9IGZ1bmN0aW9uIHZhbHVlcygpIHtcbiAgcmV0dXJuIGFycmF5VmFsdWVzLmNhbGwoYVR5cGVkQXJyYXkodGhpcykpO1xufTtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuZW50cmllc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmVudHJpZXNcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ2VudHJpZXMnLCBmdW5jdGlvbiBlbnRyaWVzKCkge1xuICByZXR1cm4gYXJyYXlFbnRyaWVzLmNhbGwoYVR5cGVkQXJyYXkodGhpcykpO1xufSk7XG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUua2V5c1xuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgna2V5cycsIGZ1bmN0aW9uIGtleXMoKSB7XG4gIHJldHVybiBhcnJheUtleXMuY2FsbChhVHlwZWRBcnJheSh0aGlzKSk7XG59KTtcbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnZhbHVlc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnZhbHVlc1xuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgndmFsdWVzJywgdHlwZWRBcnJheVZhbHVlcywgIUNPUlJFQ1RfSVRFUl9OQU1FKTtcbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlW0BAaXRlcmF0b3JdYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUtQEBpdGVyYXRvclxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZChJVEVSQVRPUiwgdHlwZWRBcnJheVZhbHVlcywgIUNPUlJFQ1RfSVRFUl9OQU1FKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xudmFyICRqb2luID0gW10uam9pbjtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuam9pbmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLmpvaW5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnam9pbicsIGZ1bmN0aW9uIGpvaW4oc2VwYXJhdG9yKSB7XG4gIHJldHVybiAkam9pbi5hcHBseShhVHlwZWRBcnJheSh0aGlzKSwgYXJndW1lbnRzKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRsYXN0SW5kZXhPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1sYXN0LWluZGV4LW9mJyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUubGFzdEluZGV4T2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5sYXN0aW5kZXhvZlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdsYXN0SW5kZXhPZicsIGZ1bmN0aW9uIGxhc3RJbmRleE9mKHNlYXJjaEVsZW1lbnQgLyogLCBmcm9tSW5kZXggKi8pIHtcbiAgcmV0dXJuICRsYXN0SW5kZXhPZi5hcHBseShhVHlwZWRBcnJheSh0aGlzKSwgYXJndW1lbnRzKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRtYXAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykubWFwO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgYVR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXlDb25zdHJ1Y3RvcjtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5tYXBgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5tYXBcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ21hcCcsIGZ1bmN0aW9uIG1hcChtYXBmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgcmV0dXJuICRtYXAoYVR5cGVkQXJyYXkodGhpcyksIG1hcGZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCwgZnVuY3Rpb24gKE8sIGxlbmd0aCkge1xuICAgIHJldHVybiBuZXcgKGFUeXBlZEFycmF5Q29uc3RydWN0b3Ioc3BlY2llc0NvbnN0cnVjdG9yKE8sIE8uY29uc3RydWN0b3IpKSkobGVuZ3RoKTtcbiAgfSk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciBUWVBFRF9BUlJBWVNfQ09OU1RSVUNUT1JTX1JFUVVJUkVTX1dSQVBQRVJTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3R5cGVkLWFycmF5LWNvbnN0cnVjdG9ycy1yZXF1aXJlLXdyYXBwZXJzJyk7XG5cbnZhciBhVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yO1xudmFyIGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUub2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLm9mXG5leHBvcnRUeXBlZEFycmF5U3RhdGljTWV0aG9kKCdvZicsIGZ1bmN0aW9uIG9mKC8qIC4uLml0ZW1zICovKSB7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgcmVzdWx0ID0gbmV3IChhVHlwZWRBcnJheUNvbnN0cnVjdG9yKHRoaXMpKShsZW5ndGgpO1xuICB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHJlc3VsdFtpbmRleF0gPSBhcmd1bWVudHNbaW5kZXgrK107XG4gIHJldHVybiByZXN1bHQ7XG59LCBUWVBFRF9BUlJBWVNfQ09OU1RSVUNUT1JTX1JFUVVJUkVTX1dSQVBQRVJTKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkcmVkdWNlUmlnaHQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktcmVkdWNlJykucmlnaHQ7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUucmVkdWNlUmljaHRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5yZWR1Y2VyaWdodFxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgncmVkdWNlUmlnaHQnLCBmdW5jdGlvbiByZWR1Y2VSaWdodChjYWxsYmFja2ZuIC8qICwgaW5pdGlhbFZhbHVlICovKSB7XG4gIHJldHVybiAkcmVkdWNlUmlnaHQoYVR5cGVkQXJyYXkodGhpcyksIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyICRyZWR1Y2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktcmVkdWNlJykubGVmdDtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5yZWR1Y2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5yZWR1Y2VcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ3JlZHVjZScsIGZ1bmN0aW9uIHJlZHVjZShjYWxsYmFja2ZuIC8qICwgaW5pdGlhbFZhbHVlICovKSB7XG4gIHJldHVybiAkcmVkdWNlKGFUeXBlZEFycmF5KHRoaXMpLCBjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUucmV2ZXJzZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnJldmVyc2VcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ3JldmVyc2UnLCBmdW5jdGlvbiByZXZlcnNlKCkge1xuICB2YXIgdGhhdCA9IHRoaXM7XG4gIHZhciBsZW5ndGggPSBhVHlwZWRBcnJheSh0aGF0KS5sZW5ndGg7XG4gIHZhciBtaWRkbGUgPSBmbG9vcihsZW5ndGggLyAyKTtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIHZhbHVlO1xuICB3aGlsZSAoaW5kZXggPCBtaWRkbGUpIHtcbiAgICB2YWx1ZSA9IHRoYXRbaW5kZXhdO1xuICAgIHRoYXRbaW5kZXgrK10gPSB0aGF0Wy0tbGVuZ3RoXTtcbiAgICB0aGF0W2xlbmd0aF0gPSB2YWx1ZTtcbiAgfSByZXR1cm4gdGhhdDtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIHRvT2Zmc2V0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9mZnNldCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciBhVHlwZWRBcnJheSA9IEFycmF5QnVmZmVyVmlld0NvcmUuYVR5cGVkQXJyYXk7XG52YXIgZXhwb3J0VHlwZWRBcnJheU1ldGhvZCA9IEFycmF5QnVmZmVyVmlld0NvcmUuZXhwb3J0VHlwZWRBcnJheU1ldGhvZDtcblxudmFyIEZPUkNFRCA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gIG5ldyBJbnQ4QXJyYXkoMSkuc2V0KHt9KTtcbn0pO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5zZXRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5zZXRcbmV4cG9ydFR5cGVkQXJyYXlNZXRob2QoJ3NldCcsIGZ1bmN0aW9uIHNldChhcnJheUxpa2UgLyogLCBvZmZzZXQgKi8pIHtcbiAgYVR5cGVkQXJyYXkodGhpcyk7XG4gIHZhciBvZmZzZXQgPSB0b09mZnNldChhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCwgMSk7XG4gIHZhciBsZW5ndGggPSB0aGlzLmxlbmd0aDtcbiAgdmFyIHNyYyA9IHRvT2JqZWN0KGFycmF5TGlrZSk7XG4gIHZhciBsZW4gPSB0b0xlbmd0aChzcmMubGVuZ3RoKTtcbiAgdmFyIGluZGV4ID0gMDtcbiAgaWYgKGxlbiArIG9mZnNldCA+IGxlbmd0aCkgdGhyb3cgUmFuZ2VFcnJvcignV3JvbmcgbGVuZ3RoJyk7XG4gIHdoaWxlIChpbmRleCA8IGxlbikgdGhpc1tvZmZzZXQgKyBpbmRleF0gPSBzcmNbaW5kZXgrK107XG59LCBGT1JDRUQpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBhVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheUNvbnN0cnVjdG9yO1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG52YXIgJHNsaWNlID0gW10uc2xpY2U7XG5cbnZhciBGT1JDRUQgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICBuZXcgSW50OEFycmF5KDEpLnNsaWNlKCk7XG59KTtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUuc2xpY2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5zbGljZVxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnc2xpY2UnLCBmdW5jdGlvbiBzbGljZShzdGFydCwgZW5kKSB7XG4gIHZhciBsaXN0ID0gJHNsaWNlLmNhbGwoYVR5cGVkQXJyYXkodGhpcyksIHN0YXJ0LCBlbmQpO1xuICB2YXIgQyA9IHNwZWNpZXNDb25zdHJ1Y3Rvcih0aGlzLCB0aGlzLmNvbnN0cnVjdG9yKTtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGxlbmd0aCA9IGxpc3QubGVuZ3RoO1xuICB2YXIgcmVzdWx0ID0gbmV3IChhVHlwZWRBcnJheUNvbnN0cnVjdG9yKEMpKShsZW5ndGgpO1xuICB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIHJlc3VsdFtpbmRleF0gPSBsaXN0W2luZGV4KytdO1xuICByZXR1cm4gcmVzdWx0O1xufSwgRk9SQ0VEKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBBcnJheUJ1ZmZlclZpZXdDb3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKTtcbnZhciAkc29tZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5zb21lO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG5cbi8vIGAlVHlwZWRBcnJheSUucHJvdG90eXBlLnNvbWVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS5zb21lXG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdzb21lJywgZnVuY3Rpb24gc29tZShjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICByZXR1cm4gJHNvbWUoYVR5cGVkQXJyYXkodGhpcyksIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIEFycmF5QnVmZmVyVmlld0NvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLXZpZXctY29yZScpO1xuXG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG52YXIgJHNvcnQgPSBbXS5zb3J0O1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5zb3J0YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLSV0eXBlZGFycmF5JS5wcm90b3R5cGUuc29ydFxuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgnc29ydCcsIGZ1bmN0aW9uIHNvcnQoY29tcGFyZWZuKSB7XG4gIHJldHVybiAkc29ydC5jYWxsKGFUeXBlZEFycmF5KHRoaXMpLCBjb21wYXJlZm4pO1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG52YXIgc3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NwZWNpZXMtY29uc3RydWN0b3InKTtcblxudmFyIGFUeXBlZEFycmF5ID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5hVHlwZWRBcnJheTtcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gQXJyYXlCdWZmZXJWaWV3Q29yZS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xuXG4vLyBgJVR5cGVkQXJyYXklLnByb3RvdHlwZS5zdWJhcnJheWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy0ldHlwZWRhcnJheSUucHJvdG90eXBlLnN1YmFycmF5XG5leHBvcnRUeXBlZEFycmF5TWV0aG9kKCdzdWJhcnJheScsIGZ1bmN0aW9uIHN1YmFycmF5KGJlZ2luLCBlbmQpIHtcbiAgdmFyIE8gPSBhVHlwZWRBcnJheSh0aGlzKTtcbiAgdmFyIGxlbmd0aCA9IE8ubGVuZ3RoO1xuICB2YXIgYmVnaW5JbmRleCA9IHRvQWJzb2x1dGVJbmRleChiZWdpbiwgbGVuZ3RoKTtcbiAgcmV0dXJuIG5ldyAoc3BlY2llc0NvbnN0cnVjdG9yKE8sIE8uY29uc3RydWN0b3IpKShcbiAgICBPLmJ1ZmZlcixcbiAgICBPLmJ5dGVPZmZzZXQgKyBiZWdpbkluZGV4ICogTy5CWVRFU19QRVJfRUxFTUVOVCxcbiAgICB0b0xlbmd0aCgoZW5kID09PSB1bmRlZmluZWQgPyBsZW5ndGggOiB0b0Fic29sdXRlSW5kZXgoZW5kLCBsZW5ndGgpKSAtIGJlZ2luSW5kZXgpXG4gICk7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgQXJyYXlCdWZmZXJWaWV3Q29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1idWZmZXItdmlldy1jb3JlJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxudmFyIEludDhBcnJheSA9IGdsb2JhbC5JbnQ4QXJyYXk7XG52YXIgYVR5cGVkQXJyYXkgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmFUeXBlZEFycmF5O1xudmFyIGV4cG9ydFR5cGVkQXJyYXlNZXRob2QgPSBBcnJheUJ1ZmZlclZpZXdDb3JlLmV4cG9ydFR5cGVkQXJyYXlNZXRob2Q7XG52YXIgJHRvTG9jYWxlU3RyaW5nID0gW10udG9Mb2NhbGVTdHJpbmc7XG52YXIgJHNsaWNlID0gW10uc2xpY2U7XG5cbi8vIGlPUyBTYWZhcmkgNi54IGZhaWxzIGhlcmVcbnZhciBUT19MT0NBTEVfU1RSSU5HX0JVRyA9ICEhSW50OEFycmF5ICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgJHRvTG9jYWxlU3RyaW5nLmNhbGwobmV3IEludDhBcnJheSgxKSk7XG59KTtcblxudmFyIEZPUkNFRCA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIFsxLCAyXS50b0xvY2FsZVN0cmluZygpICE9IG5ldyBJbnQ4QXJyYXkoWzEsIDJdKS50b0xvY2FsZVN0cmluZygpO1xufSkgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgSW50OEFycmF5LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZy5jYWxsKFsxLCAyXSk7XG59KTtcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmdgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS50b2xvY2FsZXN0cmluZ1xuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgndG9Mb2NhbGVTdHJpbmcnLCBmdW5jdGlvbiB0b0xvY2FsZVN0cmluZygpIHtcbiAgcmV0dXJuICR0b0xvY2FsZVN0cmluZy5hcHBseShUT19MT0NBTEVfU1RSSU5HX0JVRyA/ICRzbGljZS5jYWxsKGFUeXBlZEFycmF5KHRoaXMpKSA6IGFUeXBlZEFycmF5KHRoaXMpLCBhcmd1bWVudHMpO1xufSwgRk9SQ0VEKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBleHBvcnRUeXBlZEFycmF5TWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWJ1ZmZlci12aWV3LWNvcmUnKS5leHBvcnRUeXBlZEFycmF5TWV0aG9kO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG52YXIgVWludDhBcnJheSA9IGdsb2JhbC5VaW50OEFycmF5O1xudmFyIFVpbnQ4QXJyYXlQcm90b3R5cGUgPSBVaW50OEFycmF5ICYmIFVpbnQ4QXJyYXkucHJvdG90eXBlIHx8IHt9O1xudmFyIGFycmF5VG9TdHJpbmcgPSBbXS50b1N0cmluZztcbnZhciBhcnJheUpvaW4gPSBbXS5qb2luO1xuXG5pZiAoZmFpbHMoZnVuY3Rpb24gKCkgeyBhcnJheVRvU3RyaW5nLmNhbGwoe30pOyB9KSkge1xuICBhcnJheVRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIGFycmF5Sm9pbi5jYWxsKHRoaXMpO1xuICB9O1xufVxuXG52YXIgSVNfTk9UX0FSUkFZX01FVEhPRCA9IFVpbnQ4QXJyYXlQcm90b3R5cGUudG9TdHJpbmcgIT0gYXJyYXlUb1N0cmluZztcblxuLy8gYCVUeXBlZEFycmF5JS5wcm90b3R5cGUudG9TdHJpbmdgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtJXR5cGVkYXJyYXklLnByb3RvdHlwZS50b3N0cmluZ1xuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCgndG9TdHJpbmcnLCBhcnJheVRvU3RyaW5nLCBJU19OT1RfQVJSQVlfTUVUSE9EKTtcbiIsInZhciBjcmVhdGVUeXBlZEFycmF5Q29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHlwZWQtYXJyYXktY29uc3RydWN0b3InKTtcblxuLy8gYFVpbnQxNkFycmF5YCBjb25zdHJ1Y3RvclxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdHlwZWRhcnJheS1vYmplY3RzXG5jcmVhdGVUeXBlZEFycmF5Q29uc3RydWN0b3IoJ1VpbnQxNicsIGZ1bmN0aW9uIChpbml0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBVaW50MTZBcnJheShkYXRhLCBieXRlT2Zmc2V0LCBsZW5ndGgpIHtcbiAgICByZXR1cm4gaW5pdCh0aGlzLCBkYXRhLCBieXRlT2Zmc2V0LCBsZW5ndGgpO1xuICB9O1xufSk7XG4iLCJ2YXIgY3JlYXRlVHlwZWRBcnJheUNvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3R5cGVkLWFycmF5LWNvbnN0cnVjdG9yJyk7XG5cbi8vIGBVaW50MzJBcnJheWAgY29uc3RydWN0b3Jcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXR5cGVkYXJyYXktb2JqZWN0c1xuY3JlYXRlVHlwZWRBcnJheUNvbnN0cnVjdG9yKCdVaW50MzInLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gVWludDMyQXJyYXkoZGF0YSwgYnl0ZU9mZnNldCwgbGVuZ3RoKSB7XG4gICAgcmV0dXJuIGluaXQodGhpcywgZGF0YSwgYnl0ZU9mZnNldCwgbGVuZ3RoKTtcbiAgfTtcbn0pO1xuIiwidmFyIGNyZWF0ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90eXBlZC1hcnJheS1jb25zdHJ1Y3RvcicpO1xuXG4vLyBgVWludDhBcnJheWAgY29uc3RydWN0b3Jcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXR5cGVkYXJyYXktb2JqZWN0c1xuY3JlYXRlVHlwZWRBcnJheUNvbnN0cnVjdG9yKCdVaW50OCcsIGZ1bmN0aW9uIChpbml0KSB7XG4gIHJldHVybiBmdW5jdGlvbiBVaW50OEFycmF5KGRhdGEsIGJ5dGVPZmZzZXQsIGxlbmd0aCkge1xuICAgIHJldHVybiBpbml0KHRoaXMsIGRhdGEsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7XG4gIH07XG59KTtcbiIsInZhciBjcmVhdGVUeXBlZEFycmF5Q29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHlwZWQtYXJyYXktY29uc3RydWN0b3InKTtcblxuLy8gYFVpbnQ4Q2xhbXBlZEFycmF5YCBjb25zdHJ1Y3RvclxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtdHlwZWRhcnJheS1vYmplY3RzXG5jcmVhdGVUeXBlZEFycmF5Q29uc3RydWN0b3IoJ1VpbnQ4JywgZnVuY3Rpb24gKGluaXQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIFVpbnQ4Q2xhbXBlZEFycmF5KGRhdGEsIGJ5dGVPZmZzZXQsIGxlbmd0aCkge1xuICAgIHJldHVybiBpbml0KHRoaXMsIGRhdGEsIGJ5dGVPZmZzZXQsIGxlbmd0aCk7XG4gIH07XG59LCB0cnVlKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgcmVkZWZpbmVBbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVkZWZpbmUtYWxsJyk7XG52YXIgSW50ZXJuYWxNZXRhZGF0YU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1tZXRhZGF0YScpO1xudmFyIGNvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29sbGVjdGlvbicpO1xudmFyIGNvbGxlY3Rpb25XZWFrID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvbGxlY3Rpb24td2VhaycpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGVuZm9yY2VJdGVybmFsU3RhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKS5lbmZvcmNlO1xudmFyIE5BVElWRV9XRUFLX01BUCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtd2Vhay1tYXAnKTtcblxudmFyIElTX0lFMTEgPSAhZ2xvYmFsLkFjdGl2ZVhPYmplY3QgJiYgJ0FjdGl2ZVhPYmplY3QnIGluIGdsb2JhbDtcbnZhciBpc0V4dGVuc2libGUgPSBPYmplY3QuaXNFeHRlbnNpYmxlO1xudmFyIEludGVybmFsV2Vha01hcDtcblxudmFyIHdyYXBwZXIgPSBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gV2Vha01hcCgpIHtcbiAgICByZXR1cm4gaW5pdCh0aGlzLCBhcmd1bWVudHMubGVuZ3RoID8gYXJndW1lbnRzWzBdIDogdW5kZWZpbmVkKTtcbiAgfTtcbn07XG5cbi8vIGBXZWFrTWFwYCBjb25zdHJ1Y3RvclxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtd2Vha21hcC1jb25zdHJ1Y3RvclxudmFyICRXZWFrTWFwID0gbW9kdWxlLmV4cG9ydHMgPSBjb2xsZWN0aW9uKCdXZWFrTWFwJywgd3JhcHBlciwgY29sbGVjdGlvbldlYWspO1xuXG4vLyBJRTExIFdlYWtNYXAgZnJvemVuIGtleXMgZml4XG4vLyBXZSBjYW4ndCB1c2UgZmVhdHVyZSBkZXRlY3Rpb24gYmVjYXVzZSBpdCBjcmFzaCBzb21lIG9sZCBJRSBidWlsZHNcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy80ODVcbmlmIChOQVRJVkVfV0VBS19NQVAgJiYgSVNfSUUxMSkge1xuICBJbnRlcm5hbFdlYWtNYXAgPSBjb2xsZWN0aW9uV2Vhay5nZXRDb25zdHJ1Y3Rvcih3cmFwcGVyLCAnV2Vha01hcCcsIHRydWUpO1xuICBJbnRlcm5hbE1ldGFkYXRhTW9kdWxlLlJFUVVJUkVEID0gdHJ1ZTtcbiAgdmFyIFdlYWtNYXBQcm90b3R5cGUgPSAkV2Vha01hcC5wcm90b3R5cGU7XG4gIHZhciBuYXRpdmVEZWxldGUgPSBXZWFrTWFwUHJvdG90eXBlWydkZWxldGUnXTtcbiAgdmFyIG5hdGl2ZUhhcyA9IFdlYWtNYXBQcm90b3R5cGUuaGFzO1xuICB2YXIgbmF0aXZlR2V0ID0gV2Vha01hcFByb3RvdHlwZS5nZXQ7XG4gIHZhciBuYXRpdmVTZXQgPSBXZWFrTWFwUHJvdG90eXBlLnNldDtcbiAgcmVkZWZpbmVBbGwoV2Vha01hcFByb3RvdHlwZSwge1xuICAgICdkZWxldGUnOiBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBpZiAoaXNPYmplY3Qoa2V5KSAmJiAhaXNFeHRlbnNpYmxlKGtleSkpIHtcbiAgICAgICAgdmFyIHN0YXRlID0gZW5mb3JjZUl0ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgICAgICAgaWYgKCFzdGF0ZS5mcm96ZW4pIHN0YXRlLmZyb3plbiA9IG5ldyBJbnRlcm5hbFdlYWtNYXAoKTtcbiAgICAgICAgcmV0dXJuIG5hdGl2ZURlbGV0ZS5jYWxsKHRoaXMsIGtleSkgfHwgc3RhdGUuZnJvemVuWydkZWxldGUnXShrZXkpO1xuICAgICAgfSByZXR1cm4gbmF0aXZlRGVsZXRlLmNhbGwodGhpcywga2V5KTtcbiAgICB9LFxuICAgIGhhczogZnVuY3Rpb24gaGFzKGtleSkge1xuICAgICAgaWYgKGlzT2JqZWN0KGtleSkgJiYgIWlzRXh0ZW5zaWJsZShrZXkpKSB7XG4gICAgICAgIHZhciBzdGF0ZSA9IGVuZm9yY2VJdGVybmFsU3RhdGUodGhpcyk7XG4gICAgICAgIGlmICghc3RhdGUuZnJvemVuKSBzdGF0ZS5mcm96ZW4gPSBuZXcgSW50ZXJuYWxXZWFrTWFwKCk7XG4gICAgICAgIHJldHVybiBuYXRpdmVIYXMuY2FsbCh0aGlzLCBrZXkpIHx8IHN0YXRlLmZyb3plbi5oYXMoa2V5KTtcbiAgICAgIH0gcmV0dXJuIG5hdGl2ZUhhcy5jYWxsKHRoaXMsIGtleSk7XG4gICAgfSxcbiAgICBnZXQ6IGZ1bmN0aW9uIGdldChrZXkpIHtcbiAgICAgIGlmIChpc09iamVjdChrZXkpICYmICFpc0V4dGVuc2libGUoa2V5KSkge1xuICAgICAgICB2YXIgc3RhdGUgPSBlbmZvcmNlSXRlcm5hbFN0YXRlKHRoaXMpO1xuICAgICAgICBpZiAoIXN0YXRlLmZyb3plbikgc3RhdGUuZnJvemVuID0gbmV3IEludGVybmFsV2Vha01hcCgpO1xuICAgICAgICByZXR1cm4gbmF0aXZlSGFzLmNhbGwodGhpcywga2V5KSA/IG5hdGl2ZUdldC5jYWxsKHRoaXMsIGtleSkgOiBzdGF0ZS5mcm96ZW4uZ2V0KGtleSk7XG4gICAgICB9IHJldHVybiBuYXRpdmVHZXQuY2FsbCh0aGlzLCBrZXkpO1xuICAgIH0sXG4gICAgc2V0OiBmdW5jdGlvbiBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKGlzT2JqZWN0KGtleSkgJiYgIWlzRXh0ZW5zaWJsZShrZXkpKSB7XG4gICAgICAgIHZhciBzdGF0ZSA9IGVuZm9yY2VJdGVybmFsU3RhdGUodGhpcyk7XG4gICAgICAgIGlmICghc3RhdGUuZnJvemVuKSBzdGF0ZS5mcm96ZW4gPSBuZXcgSW50ZXJuYWxXZWFrTWFwKCk7XG4gICAgICAgIG5hdGl2ZUhhcy5jYWxsKHRoaXMsIGtleSkgPyBuYXRpdmVTZXQuY2FsbCh0aGlzLCBrZXksIHZhbHVlKSA6IHN0YXRlLmZyb3plbi5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICB9IGVsc2UgbmF0aXZlU2V0LmNhbGwodGhpcywga2V5LCB2YWx1ZSk7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNvbGxlY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29sbGVjdGlvbicpO1xudmFyIGNvbGxlY3Rpb25XZWFrID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvbGxlY3Rpb24td2VhaycpO1xuXG4vLyBgV2Vha1NldGAgY29uc3RydWN0b3Jcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXdlYWtzZXQtY29uc3RydWN0b3JcbmNvbGxlY3Rpb24oJ1dlYWtTZXQnLCBmdW5jdGlvbiAoaW5pdCkge1xuICByZXR1cm4gZnVuY3Rpb24gV2Vha1NldCgpIHsgcmV0dXJuIGluaXQodGhpcywgYXJndW1lbnRzLmxlbmd0aCA/IGFyZ3VtZW50c1swXSA6IHVuZGVmaW5lZCk7IH07XG59LCBjb2xsZWN0aW9uV2Vhayk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcbnZhciBpdGVyYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdGUnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xuXG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGdldEludGVybmFsQWdncmVnYXRlRXJyb3JTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKCdBZ2dyZWdhdGVFcnJvcicpO1xuXG52YXIgJEFnZ3JlZ2F0ZUVycm9yID0gZnVuY3Rpb24gQWdncmVnYXRlRXJyb3IoZXJyb3JzLCBtZXNzYWdlKSB7XG4gIHZhciB0aGF0ID0gdGhpcztcbiAgaWYgKCEodGhhdCBpbnN0YW5jZW9mICRBZ2dyZWdhdGVFcnJvcikpIHJldHVybiBuZXcgJEFnZ3JlZ2F0ZUVycm9yKGVycm9ycywgbWVzc2FnZSk7XG4gIGlmIChzZXRQcm90b3R5cGVPZikge1xuICAgIHRoYXQgPSBzZXRQcm90b3R5cGVPZihuZXcgRXJyb3IobWVzc2FnZSksIGdldFByb3RvdHlwZU9mKHRoYXQpKTtcbiAgfVxuICB2YXIgZXJyb3JzQXJyYXkgPSBbXTtcbiAgaXRlcmF0ZShlcnJvcnMsIGVycm9yc0FycmF5LnB1c2gsIGVycm9yc0FycmF5KTtcbiAgaWYgKERFU0NSSVBUT1JTKSBzZXRJbnRlcm5hbFN0YXRlKHRoYXQsIHsgZXJyb3JzOiBlcnJvcnNBcnJheSwgdHlwZTogJ0FnZ3JlZ2F0ZUVycm9yJyB9KTtcbiAgZWxzZSB0aGF0LmVycm9ycyA9IGVycm9yc0FycmF5O1xuICBpZiAobWVzc2FnZSAhPT0gdW5kZWZpbmVkKSBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkodGhhdCwgJ21lc3NhZ2UnLCBTdHJpbmcobWVzc2FnZSkpO1xuICByZXR1cm4gdGhhdDtcbn07XG5cbiRBZ2dyZWdhdGVFcnJvci5wcm90b3R5cGUgPSBjcmVhdGUoRXJyb3IucHJvdG90eXBlLCB7XG4gIGNvbnN0cnVjdG9yOiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoNSwgJEFnZ3JlZ2F0ZUVycm9yKSxcbiAgbWVzc2FnZTogY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDUsICcnKSxcbiAgbmFtZTogY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDUsICdBZ2dyZWdhdGVFcnJvcicpXG59KTtcblxuaWYgKERFU0NSSVBUT1JTKSBkZWZpbmVQcm9wZXJ0eS5mKCRBZ2dyZWdhdGVFcnJvci5wcm90b3R5cGUsICdlcnJvcnMnLCB7XG4gIGdldDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBnZXRJbnRlcm5hbEFnZ3JlZ2F0ZUVycm9yU3RhdGUodGhpcykuZXJyb3JzO1xuICB9LFxuICBjb25maWd1cmFibGU6IHRydWVcbn0pO1xuXG4kKHsgZ2xvYmFsOiB0cnVlIH0sIHtcbiAgQWdncmVnYXRlRXJyb3I6ICRBZ2dyZWdhdGVFcnJvclxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG5cbnZhciBpc0Zyb3plbiA9IE9iamVjdC5pc0Zyb3plbjtcblxudmFyIGlzRnJvemVuU3RyaW5nQXJyYXkgPSBmdW5jdGlvbiAoYXJyYXksIGFsbG93VW5kZWZpbmVkKSB7XG4gIGlmICghaXNGcm96ZW4gfHwgIWlzQXJyYXkoYXJyYXkpIHx8ICFpc0Zyb3plbihhcnJheSkpIHJldHVybiBmYWxzZTtcbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgdmFyIGVsZW1lbnQ7XG4gIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgIGVsZW1lbnQgPSBhcnJheVtpbmRleCsrXTtcbiAgICBpZiAoISh0eXBlb2YgZWxlbWVudCA9PT0gJ3N0cmluZycgfHwgKGFsbG93VW5kZWZpbmVkICYmIHR5cGVvZiBlbGVtZW50ID09PSAndW5kZWZpbmVkJykpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9IHJldHVybiBsZW5ndGggIT09IDA7XG59O1xuXG4vLyBgQXJyYXkuaXNUZW1wbGF0ZU9iamVjdGAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1hcnJheS1pcy10ZW1wbGF0ZS1vYmplY3RcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHN0YXQ6IHRydWUgfSwge1xuICBpc1RlbXBsYXRlT2JqZWN0OiBmdW5jdGlvbiBpc1RlbXBsYXRlT2JqZWN0KHZhbHVlKSB7XG4gICAgaWYgKCFpc0Zyb3plblN0cmluZ0FycmF5KHZhbHVlLCB0cnVlKSkgcmV0dXJuIGZhbHNlO1xuICAgIHZhciByYXcgPSB2YWx1ZS5yYXc7XG4gICAgaWYgKHJhdy5sZW5ndGggIT09IHZhbHVlLmxlbmd0aCB8fCAhaXNGcm96ZW5TdHJpbmdBcnJheShyYXcsIGZhbHNlKSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgdG9MZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tbGVuZ3RoJyk7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUubGFzdEluZGV4YCBnZXR0ZXJcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9rZWl0aGFtdXMvcHJvcG9zYWwtYXJyYXktbGFzdFxuaWYgKERFU0NSSVBUT1JTICYmICEoJ2xhc3RJbmRleCcgaW4gW10pKSB7XG4gIGRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwgJ2xhc3RJbmRleCcsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiBsYXN0SW5kZXgoKSB7XG4gICAgICB2YXIgTyA9IHRvT2JqZWN0KHRoaXMpO1xuICAgICAgdmFyIGxlbiA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICAgIHJldHVybiBsZW4gPT0gMCA/IDAgOiBsZW4gLSAxO1xuICAgIH1cbiAgfSk7XG5cbiAgYWRkVG9VbnNjb3BhYmxlcygnbGFzdEluZGV4Jyk7XG59XG4iLCIndXNlIHN0cmljdCc7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkZC10by11bnNjb3BhYmxlcycpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmxhc3RJbmRleGAgYWNjZXNzb3Jcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9rZWl0aGFtdXMvcHJvcG9zYWwtYXJyYXktbGFzdFxuaWYgKERFU0NSSVBUT1JTICYmICEoJ2xhc3RJdGVtJyBpbiBbXSkpIHtcbiAgZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAnbGFzdEl0ZW0nLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gbGFzdEl0ZW0oKSB7XG4gICAgICB2YXIgTyA9IHRvT2JqZWN0KHRoaXMpO1xuICAgICAgdmFyIGxlbiA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICAgIHJldHVybiBsZW4gPT0gMCA/IHVuZGVmaW5lZCA6IE9bbGVuIC0gMV07XG4gICAgfSxcbiAgICBzZXQ6IGZ1bmN0aW9uIGxhc3RJdGVtKHZhbHVlKSB7XG4gICAgICB2YXIgTyA9IHRvT2JqZWN0KHRoaXMpO1xuICAgICAgdmFyIGxlbiA9IHRvTGVuZ3RoKE8ubGVuZ3RoKTtcbiAgICAgIHJldHVybiBPW2xlbiA9PSAwID8gMCA6IGxlbiAtIDFdID0gdmFsdWU7XG4gICAgfVxuICB9KTtcblxuICBhZGRUb1Vuc2NvcGFibGVzKCdsYXN0SXRlbScpO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaXRlcmF0b3ItaGVscGVyc1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgY3JlYXRlQXN5bmNJdGVyYXRvclByb3h5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FzeW5jLWl0ZXJhdG9yLWNyZWF0ZS1wcm94eScpO1xuXG52YXIgQXN5bmNJdGVyYXRvclByb3h5ID0gY3JlYXRlQXN5bmNJdGVyYXRvclByb3h5KGZ1bmN0aW9uIChhcmcsIFByb21pc2UpIHtcbiAgdmFyIHN0YXRlID0gdGhpcztcbiAgdmFyIGl0ZXJhdG9yID0gc3RhdGUuaXRlcmF0b3I7XG5cbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShhbk9iamVjdChzdGF0ZS5uZXh0LmNhbGwoaXRlcmF0b3IsIGFyZykpKS50aGVuKGZ1bmN0aW9uIChzdGVwKSB7XG4gICAgaWYgKGFuT2JqZWN0KHN0ZXApLmRvbmUpIHtcbiAgICAgIHN0YXRlLmRvbmUgPSB0cnVlO1xuICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IHVuZGVmaW5lZCB9O1xuICAgIH1cbiAgICByZXR1cm4geyBkb25lOiBmYWxzZSwgdmFsdWU6IFtzdGF0ZS5pbmRleCsrLCBzdGVwLnZhbHVlXSB9O1xuICB9KTtcbn0pO1xuXG4kKHsgdGFyZ2V0OiAnQXN5bmNJdGVyYXRvcicsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlIH0sIHtcbiAgYXNJbmRleGVkUGFpcnM6IGZ1bmN0aW9uIGFzSW5kZXhlZFBhaXJzKCkge1xuICAgIHJldHVybiBuZXcgQXN5bmNJdGVyYXRvclByb3h5KHtcbiAgICAgIGl0ZXJhdG9yOiBhbk9iamVjdCh0aGlzKSxcbiAgICAgIGluZGV4OiAwXG4gICAgfSk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaXRlcmF0b3ItaGVscGVyc1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgYW5JbnN0YW5jZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1pbnN0YW5jZScpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgQXN5bmNJdGVyYXRvclByb3RvdHlwZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hc3luYy1pdGVyYXRvci1wcm90b3R5cGUnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG5cbnZhciBBc3luY0l0ZXJhdG9yQ29uc3RydWN0b3IgPSBmdW5jdGlvbiBBc3luY0l0ZXJhdG9yKCkge1xuICBhbkluc3RhbmNlKHRoaXMsIEFzeW5jSXRlcmF0b3JDb25zdHJ1Y3Rvcik7XG59O1xuXG5Bc3luY0l0ZXJhdG9yQ29uc3RydWN0b3IucHJvdG90eXBlID0gQXN5bmNJdGVyYXRvclByb3RvdHlwZTtcblxuaWYgKCFoYXMoQXN5bmNJdGVyYXRvclByb3RvdHlwZSwgVE9fU1RSSU5HX1RBRykpIHtcbiAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KEFzeW5jSXRlcmF0b3JQcm90b3R5cGUsIFRPX1NUUklOR19UQUcsICdBc3luY0l0ZXJhdG9yJyk7XG59XG5cbmlmICghaGFzKEFzeW5jSXRlcmF0b3JQcm90b3R5cGUsICdjb25zdHJ1Y3RvcicpIHx8IEFzeW5jSXRlcmF0b3JQcm90b3R5cGUuY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xuICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoQXN5bmNJdGVyYXRvclByb3RvdHlwZSwgJ2NvbnN0cnVjdG9yJywgQXN5bmNJdGVyYXRvckNvbnN0cnVjdG9yKTtcbn1cblxuJCh7IGdsb2JhbDogdHJ1ZSwgZm9yY2VkOiBJU19QVVJFIH0sIHtcbiAgQXN5bmNJdGVyYXRvcjogQXN5bmNJdGVyYXRvckNvbnN0cnVjdG9yXG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWl0ZXJhdG9yLWhlbHBlcnNcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvUG9zaXRpdmVJbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXBvc2l0aXZlLWludGVnZXInKTtcbnZhciBjcmVhdGVBc3luY0l0ZXJhdG9yUHJveHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXN5bmMtaXRlcmF0b3ItY3JlYXRlLXByb3h5Jyk7XG5cbnZhciBBc3luY0l0ZXJhdG9yUHJveHkgPSBjcmVhdGVBc3luY0l0ZXJhdG9yUHJveHkoZnVuY3Rpb24gKGFyZywgUHJvbWlzZSkge1xuICB2YXIgc3RhdGUgPSB0aGlzO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdmFyIGxvb3AgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB0cnkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoXG4gICAgICAgICAgYW5PYmplY3Qoc3RhdGUubmV4dC5jYWxsKHN0YXRlLml0ZXJhdG9yLCBzdGF0ZS5yZW1haW5pbmcgPyB1bmRlZmluZWQgOiBhcmcpKVxuICAgICAgICApLnRoZW4oZnVuY3Rpb24gKHN0ZXApIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGFuT2JqZWN0KHN0ZXApLmRvbmUpIHtcbiAgICAgICAgICAgICAgc3RhdGUuZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgIHJlc29sdmUoeyBkb25lOiB0cnVlLCB2YWx1ZTogdW5kZWZpbmVkIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5yZW1haW5pbmcpIHtcbiAgICAgICAgICAgICAgc3RhdGUucmVtYWluaW5nLS07XG4gICAgICAgICAgICAgIGxvb3AoKTtcbiAgICAgICAgICAgIH0gZWxzZSByZXNvbHZlKHsgZG9uZTogZmFsc2UsIHZhbHVlOiBzdGVwLnZhbHVlIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikgeyByZWplY3QoZXJyKTsgfVxuICAgICAgICB9LCByZWplY3QpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgcmVqZWN0KGVycm9yKTsgfVxuICAgIH07XG5cbiAgICBsb29wKCk7XG4gIH0pO1xufSk7XG5cbiQoeyB0YXJnZXQ6ICdBc3luY0l0ZXJhdG9yJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUgfSwge1xuICBkcm9wOiBmdW5jdGlvbiBkcm9wKGxpbWl0KSB7XG4gICAgcmV0dXJuIG5ldyBBc3luY0l0ZXJhdG9yUHJveHkoe1xuICAgICAgaXRlcmF0b3I6IGFuT2JqZWN0KHRoaXMpLFxuICAgICAgcmVtYWluaW5nOiB0b1Bvc2l0aXZlSW50ZWdlcihsaW1pdClcbiAgICB9KTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1pdGVyYXRvci1oZWxwZXJzXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkZXZlcnkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXN5bmMtaXRlcmF0b3ItaXRlcmF0aW9uJykuZXZlcnk7XG5cbiQoeyB0YXJnZXQ6ICdBc3luY0l0ZXJhdG9yJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUgfSwge1xuICBldmVyeTogZnVuY3Rpb24gZXZlcnkoZm4pIHtcbiAgICByZXR1cm4gJGV2ZXJ5KHRoaXMsIGZuKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1pdGVyYXRvci1oZWxwZXJzXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGNyZWF0ZUFzeW5jSXRlcmF0b3JQcm94eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hc3luYy1pdGVyYXRvci1jcmVhdGUtcHJveHknKTtcblxudmFyIEFzeW5jSXRlcmF0b3JQcm94eSA9IGNyZWF0ZUFzeW5jSXRlcmF0b3JQcm94eShmdW5jdGlvbiAoYXJnLCBQcm9taXNlKSB7XG4gIHZhciBzdGF0ZSA9IHRoaXM7XG4gIHZhciBmaWx0ZXJlciA9IHN0YXRlLmZpbHRlcmVyO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdmFyIGxvb3AgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB0cnkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoYW5PYmplY3Qoc3RhdGUubmV4dC5jYWxsKHN0YXRlLml0ZXJhdG9yLCBhcmcpKSkudGhlbihmdW5jdGlvbiAoc3RlcCkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoYW5PYmplY3Qoc3RlcCkuZG9uZSkge1xuICAgICAgICAgICAgICBzdGF0ZS5kb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgcmVzb2x2ZSh7IGRvbmU6IHRydWUsIHZhbHVlOiB1bmRlZmluZWQgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoZmlsdGVyZXIodmFsdWUpKS50aGVuKGZ1bmN0aW9uIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkID8gcmVzb2x2ZSh7IGRvbmU6IGZhbHNlLCB2YWx1ZTogdmFsdWUgfSkgOiBsb29wKCk7XG4gICAgICAgICAgICAgIH0sIHJlamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7IHJlamVjdChlcnIpOyB9XG4gICAgICAgIH0sIHJlamVjdCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikgeyByZWplY3QoZXJyb3IpOyB9XG4gICAgfTtcblxuICAgIGxvb3AoKTtcbiAgfSk7XG59KTtcblxuJCh7IHRhcmdldDogJ0FzeW5jSXRlcmF0b3InLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSB9LCB7XG4gIGZpbHRlcjogZnVuY3Rpb24gZmlsdGVyKGZpbHRlcmVyKSB7XG4gICAgcmV0dXJuIG5ldyBBc3luY0l0ZXJhdG9yUHJveHkoe1xuICAgICAgaXRlcmF0b3I6IGFuT2JqZWN0KHRoaXMpLFxuICAgICAgZmlsdGVyZXI6IGFGdW5jdGlvbihmaWx0ZXJlcilcbiAgICB9KTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1pdGVyYXRvci1oZWxwZXJzXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkZmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hc3luYy1pdGVyYXRvci1pdGVyYXRpb24nKS5maW5kO1xuXG4kKHsgdGFyZ2V0OiAnQXN5bmNJdGVyYXRvcicsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlIH0sIHtcbiAgZmluZDogZnVuY3Rpb24gZmluZChmbikge1xuICAgIHJldHVybiAkZmluZCh0aGlzLCBmbik7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaXRlcmF0b3ItaGVscGVyc1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBjcmVhdGVBc3luY0l0ZXJhdG9yUHJveHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXN5bmMtaXRlcmF0b3ItY3JlYXRlLXByb3h5Jyk7XG52YXIgZ2V0QXN5bmNJdGVyYXRvck1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYXN5bmMtaXRlcmF0b3ItbWV0aG9kJyk7XG5cbnZhciBBc3luY0l0ZXJhdG9yUHJveHkgPSBjcmVhdGVBc3luY0l0ZXJhdG9yUHJveHkoZnVuY3Rpb24gKGFyZywgUHJvbWlzZSkge1xuICB2YXIgc3RhdGUgPSB0aGlzO1xuICB2YXIgbWFwcGVyID0gc3RhdGUubWFwcGVyO1xuICB2YXIgaW5uZXJJdGVyYXRvciwgaXRlcmF0b3JNZXRob2Q7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICB2YXIgb3V0ZXJMb29wID0gZnVuY3Rpb24gKCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKGFuT2JqZWN0KHN0YXRlLm5leHQuY2FsbChzdGF0ZS5pdGVyYXRvciwgYXJnKSkpLnRoZW4oZnVuY3Rpb24gKHN0ZXApIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGFuT2JqZWN0KHN0ZXApLmRvbmUpIHtcbiAgICAgICAgICAgICAgc3RhdGUuZG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgIHJlc29sdmUoeyBkb25lOiB0cnVlLCB2YWx1ZTogdW5kZWZpbmVkIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKG1hcHBlcihzdGVwLnZhbHVlKSkudGhlbihmdW5jdGlvbiAobWFwcGVkKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIGl0ZXJhdG9yTWV0aG9kID0gZ2V0QXN5bmNJdGVyYXRvck1ldGhvZChtYXBwZWQpO1xuICAgICAgICAgICAgICAgICAgaWYgKGl0ZXJhdG9yTWV0aG9kICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuaW5uZXJJdGVyYXRvciA9IGlubmVySXRlcmF0b3IgPSBhbk9iamVjdChpdGVyYXRvck1ldGhvZC5jYWxsKG1hcHBlZCkpO1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5pbm5lck5leHQgPSBhRnVuY3Rpb24oaW5uZXJJdGVyYXRvci5uZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlubmVyTG9vcCgpO1xuICAgICAgICAgICAgICAgICAgfSByZWplY3QoVHlwZUVycm9yKCcuZmxhdE1hcCBjYWxsYmFjayBzaG91bGQgcmV0dXJuIGFuIGl0ZXJhYmxlIG9iamVjdCcpKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcjIpIHsgcmVqZWN0KGVycm9yMik7IH1cbiAgICAgICAgICAgICAgfSwgcmVqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlcnJvcjEpIHsgcmVqZWN0KGVycm9yMSk7IH1cbiAgICAgICAgfSwgcmVqZWN0KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IHJlamVjdChlcnJvcik7IH1cbiAgICB9O1xuXG4gICAgdmFyIGlubmVyTG9vcCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChpbm5lckl0ZXJhdG9yID0gc3RhdGUuaW5uZXJJdGVyYXRvcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIFByb21pc2UucmVzb2x2ZShhbk9iamVjdChzdGF0ZS5pbm5lck5leHQuY2FsbChpbm5lckl0ZXJhdG9yKSkpLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWYgKGFuT2JqZWN0KHJlc3VsdCkuZG9uZSkge1xuICAgICAgICAgICAgICAgIHN0YXRlLmlubmVySXRlcmF0b3IgPSBzdGF0ZS5pbm5lck5leHQgPSBudWxsO1xuICAgICAgICAgICAgICAgIG91dGVyTG9vcCgpO1xuICAgICAgICAgICAgICB9IGVsc2UgcmVzb2x2ZSh7IGRvbmU6IGZhbHNlLCB2YWx1ZTogcmVzdWx0LnZhbHVlIH0pO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IxKSB7IHJlamVjdChlcnJvcjEpOyB9XG4gICAgICAgICAgfSwgcmVqZWN0KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgcmVqZWN0KGVycm9yKTsgfVxuICAgICAgfSBlbHNlIG91dGVyTG9vcCgpO1xuICAgIH07XG5cbiAgICBpbm5lckxvb3AoKTtcbiAgfSk7XG59KTtcblxuJCh7IHRhcmdldDogJ0FzeW5jSXRlcmF0b3InLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSB9LCB7XG4gIGZsYXRNYXA6IGZ1bmN0aW9uIGZsYXRNYXAobWFwcGVyKSB7XG4gICAgcmV0dXJuIG5ldyBBc3luY0l0ZXJhdG9yUHJveHkoe1xuICAgICAgaXRlcmF0b3I6IGFuT2JqZWN0KHRoaXMpLFxuICAgICAgbWFwcGVyOiBhRnVuY3Rpb24obWFwcGVyKSxcbiAgICAgIGlubmVySXRlcmF0b3I6IG51bGwsXG4gICAgICBpbm5lck5leHQ6IG51bGxcbiAgICB9KTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1pdGVyYXRvci1oZWxwZXJzXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciAkZm9yRWFjaCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hc3luYy1pdGVyYXRvci1pdGVyYXRpb24nKS5mb3JFYWNoO1xuXG4kKHsgdGFyZ2V0OiAnQXN5bmNJdGVyYXRvcicsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlIH0sIHtcbiAgZm9yRWFjaDogZnVuY3Rpb24gZm9yRWFjaChmbikge1xuICAgIHJldHVybiAkZm9yRWFjaCh0aGlzLCBmbik7XG4gIH1cbn0pO1xuIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaXRlcmF0b3ItaGVscGVyc1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wYXRoJyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBjcmVhdGVBc3luY0l0ZXJhdG9yUHJveHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXN5bmMtaXRlcmF0b3ItY3JlYXRlLXByb3h5Jyk7XG52YXIgZ2V0QXN5bmNJdGVyYXRvck1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYXN5bmMtaXRlcmF0b3ItbWV0aG9kJyk7XG5cbnZhciBBc3luY0l0ZXJhdG9yID0gcGF0aC5Bc3luY0l0ZXJhdG9yO1xuXG52YXIgQXN5bmNJdGVyYXRvclByb3h5ID0gY3JlYXRlQXN5bmNJdGVyYXRvclByb3h5KGZ1bmN0aW9uIChhcmcpIHtcbiAgcmV0dXJuIGFuT2JqZWN0KHRoaXMubmV4dC5jYWxsKHRoaXMuaXRlcmF0b3IsIGFyZykpO1xufSwgdHJ1ZSk7XG5cbiQoeyB0YXJnZXQ6ICdBc3luY0l0ZXJhdG9yJywgc3RhdDogdHJ1ZSB9LCB7XG4gIGZyb206IGZ1bmN0aW9uIGZyb20oTykge1xuICAgIHZhciBvYmplY3QgPSB0b09iamVjdChPKTtcbiAgICB2YXIgdXNpbmdJdGVyYXRvciA9IGdldEFzeW5jSXRlcmF0b3JNZXRob2Qob2JqZWN0KTtcbiAgICB2YXIgaXRlcmF0b3I7XG4gICAgaWYgKHVzaW5nSXRlcmF0b3IgIT0gbnVsbCkge1xuICAgICAgaXRlcmF0b3IgPSBhRnVuY3Rpb24odXNpbmdJdGVyYXRvcikuY2FsbChvYmplY3QpO1xuICAgICAgaWYgKGl0ZXJhdG9yIGluc3RhbmNlb2YgQXN5bmNJdGVyYXRvcikgcmV0dXJuIGl0ZXJhdG9yO1xuICAgIH0gZWxzZSB7XG4gICAgICBpdGVyYXRvciA9IG9iamVjdDtcbiAgICB9IHJldHVybiBuZXcgQXN5bmNJdGVyYXRvclByb3h5KHtcbiAgICAgIGl0ZXJhdG9yOiBpdGVyYXRvclxuICAgIH0pO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWl0ZXJhdG9yLWhlbHBlcnNcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgY3JlYXRlQXN5bmNJdGVyYXRvclByb3h5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FzeW5jLWl0ZXJhdG9yLWNyZWF0ZS1wcm94eScpO1xuXG52YXIgQXN5bmNJdGVyYXRvclByb3h5ID0gY3JlYXRlQXN5bmNJdGVyYXRvclByb3h5KGZ1bmN0aW9uIChhcmcsIFByb21pc2UpIHtcbiAgdmFyIHN0YXRlID0gdGhpcztcbiAgdmFyIG1hcHBlciA9IHN0YXRlLm1hcHBlcjtcblxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGFuT2JqZWN0KHN0YXRlLm5leHQuY2FsbChzdGF0ZS5pdGVyYXRvciwgYXJnKSkpLnRoZW4oZnVuY3Rpb24gKHN0ZXApIHtcbiAgICBpZiAoYW5PYmplY3Qoc3RlcCkuZG9uZSkge1xuICAgICAgc3RhdGUuZG9uZSA9IHRydWU7XG4gICAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogdW5kZWZpbmVkIH07XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobWFwcGVyKHN0ZXAudmFsdWUpKS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHsgZG9uZTogZmFsc2UsIHZhbHVlOiB2YWx1ZSB9O1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG4kKHsgdGFyZ2V0OiAnQXN5bmNJdGVyYXRvcicsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlIH0sIHtcbiAgbWFwOiBmdW5jdGlvbiBtYXAobWFwcGVyKSB7XG4gICAgcmV0dXJuIG5ldyBBc3luY0l0ZXJhdG9yUHJveHkoe1xuICAgICAgaXRlcmF0b3I6IGFuT2JqZWN0KHRoaXMpLFxuICAgICAgbWFwcGVyOiBhRnVuY3Rpb24obWFwcGVyKVxuICAgIH0pO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWl0ZXJhdG9yLWhlbHBlcnNcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcblxudmFyIFByb21pc2UgPSBnZXRCdWlsdEluKCdQcm9taXNlJyk7XG5cbiQoeyB0YXJnZXQ6ICdBc3luY0l0ZXJhdG9yJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUgfSwge1xuICByZWR1Y2U6IGZ1bmN0aW9uIHJlZHVjZShyZWR1Y2VyIC8qICwgaW5pdGlhbFZhbHVlICovKSB7XG4gICAgdmFyIGl0ZXJhdG9yID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIG5leHQgPSBhRnVuY3Rpb24oaXRlcmF0b3IubmV4dCk7XG4gICAgdmFyIG5vSW5pdGlhbCA9IGFyZ3VtZW50cy5sZW5ndGggPCAyO1xuICAgIHZhciBhY2N1bXVsYXRvciA9IG5vSW5pdGlhbCA/IHVuZGVmaW5lZCA6IGFyZ3VtZW50c1sxXTtcbiAgICBhRnVuY3Rpb24ocmVkdWNlcik7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIGxvb3AgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKGFuT2JqZWN0KG5leHQuY2FsbChpdGVyYXRvcikpKS50aGVuKGZ1bmN0aW9uIChzdGVwKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoYW5PYmplY3Qoc3RlcCkuZG9uZSkge1xuICAgICAgICAgICAgICAgIG5vSW5pdGlhbCA/IHJlamVjdChUeXBlRXJyb3IoJ1JlZHVjZSBvZiBlbXB0eSBpdGVyYXRvciB3aXRoIG5vIGluaXRpYWwgdmFsdWUnKSkgOiByZXNvbHZlKGFjY3VtdWxhdG9yKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBzdGVwLnZhbHVlO1xuICAgICAgICAgICAgICAgIGlmIChub0luaXRpYWwpIHtcbiAgICAgICAgICAgICAgICAgIG5vSW5pdGlhbCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgYWNjdW11bGF0b3IgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgIGxvb3AoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHJlZHVjZXIoYWNjdW11bGF0b3IsIHZhbHVlKSkudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdG9yID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICBsb29wKCk7XG4gICAgICAgICAgICAgICAgICB9LCByZWplY3QpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7IHJlamVjdChlcnIpOyB9XG4gICAgICAgICAgfSwgcmVqZWN0KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsgcmVqZWN0KGVycm9yKTsgfVxuICAgICAgfTtcblxuICAgICAgbG9vcCgpO1xuICAgIH0pO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWl0ZXJhdG9yLWhlbHBlcnNcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRzb21lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FzeW5jLWl0ZXJhdG9yLWl0ZXJhdGlvbicpLnNvbWU7XG5cbiQoeyB0YXJnZXQ6ICdBc3luY0l0ZXJhdG9yJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUgfSwge1xuICBzb21lOiBmdW5jdGlvbiBzb21lKGZuKSB7XG4gICAgcmV0dXJuICRzb21lKHRoaXMsIGZuKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1pdGVyYXRvci1oZWxwZXJzXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b1Bvc2l0aXZlSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wb3NpdGl2ZS1pbnRlZ2VyJyk7XG52YXIgY3JlYXRlQXN5bmNJdGVyYXRvclByb3h5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FzeW5jLWl0ZXJhdG9yLWNyZWF0ZS1wcm94eScpO1xuXG52YXIgQXN5bmNJdGVyYXRvclByb3h5ID0gY3JlYXRlQXN5bmNJdGVyYXRvclByb3h5KGZ1bmN0aW9uIChhcmcpIHtcbiAgaWYgKCF0aGlzLnJlbWFpbmluZy0tKSB7XG4gICAgdGhpcy5kb25lID0gdHJ1ZTtcbiAgICByZXR1cm4geyBkb25lOiB0cnVlLCB2YWx1ZTogdW5kZWZpbmVkIH07XG4gIH0gcmV0dXJuIHRoaXMubmV4dC5jYWxsKHRoaXMuaXRlcmF0b3IsIGFyZyk7XG59KTtcblxuJCh7IHRhcmdldDogJ0FzeW5jSXRlcmF0b3InLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSB9LCB7XG4gIHRha2U6IGZ1bmN0aW9uIHRha2UobGltaXQpIHtcbiAgICByZXR1cm4gbmV3IEFzeW5jSXRlcmF0b3JQcm94eSh7XG4gICAgICBpdGVyYXRvcjogYW5PYmplY3QodGhpcyksXG4gICAgICByZW1haW5pbmc6IHRvUG9zaXRpdmVJbnRlZ2VyKGxpbWl0KVxuICAgIH0pO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWl0ZXJhdG9yLWhlbHBlcnNcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICR0b0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FzeW5jLWl0ZXJhdG9yLWl0ZXJhdGlvbicpLnRvQXJyYXk7XG5cbiQoeyB0YXJnZXQ6ICdBc3luY0l0ZXJhdG9yJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUgfSwge1xuICB0b0FycmF5OiBmdW5jdGlvbiB0b0FycmF5KCkge1xuICAgIHJldHVybiAkdG9BcnJheSh0aGlzKTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnZXRDb21wb3NpdGVLZXlOb2RlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvbXBvc2l0ZS1rZXknKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG5cbnZhciBpbml0aWFsaXplciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGZyZWV6ZSA9IGdldEJ1aWx0SW4oJ09iamVjdCcsICdmcmVlemUnKTtcbiAgcmV0dXJuIGZyZWV6ZSA/IGZyZWV6ZShjcmVhdGUobnVsbCkpIDogY3JlYXRlKG51bGwpO1xufTtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtcmljaGVyLWtleXMvdHJlZS9tYXN0ZXIvY29tcG9zaXRlS2V5XG4kKHsgZ2xvYmFsOiB0cnVlIH0sIHtcbiAgY29tcG9zaXRlS2V5OiBmdW5jdGlvbiBjb21wb3NpdGVLZXkoKSB7XG4gICAgcmV0dXJuIGdldENvbXBvc2l0ZUtleU5vZGUuYXBwbHkoT2JqZWN0LCBhcmd1bWVudHMpLmdldCgnb2JqZWN0JywgaW5pdGlhbGl6ZXIpO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGdldENvbXBvc2l0ZUtleU5vZGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29tcG9zaXRlLWtleScpO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXJpY2hlci1rZXlzL3RyZWUvbWFzdGVyL2NvbXBvc2l0ZUtleVxuJCh7IGdsb2JhbDogdHJ1ZSB9LCB7XG4gIGNvbXBvc2l0ZVN5bWJvbDogZnVuY3Rpb24gY29tcG9zaXRlU3ltYm9sKCkge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxICYmIHR5cGVvZiBhcmd1bWVudHNbMF0gPT09ICdzdHJpbmcnKSByZXR1cm4gZ2V0QnVpbHRJbignU3ltYm9sJylbJ2ZvciddKGFyZ3VtZW50c1swXSk7XG4gICAgcmV0dXJuIGdldENvbXBvc2l0ZUtleU5vZGUuYXBwbHkobnVsbCwgYXJndW1lbnRzKS5nZXQoJ3N5bWJvbCcsIGdldEJ1aWx0SW4oJ1N5bWJvbCcpKTtcbiAgfVxufSk7XG4iLCIvLyBUT0RPOiBSZW1vdmUgZnJvbSBgY29yZS1qc0A0YFxucmVxdWlyZSgnLi9lcy5nbG9iYWwtdGhpcycpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaXRlcmF0b3ItaGVscGVyc1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgY3JlYXRlSXRlcmF0b3JQcm94eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvci1jcmVhdGUtcHJveHknKTtcblxudmFyIEl0ZXJhdG9yUHJveHkgPSBjcmVhdGVJdGVyYXRvclByb3h5KGZ1bmN0aW9uIChhcmcpIHtcbiAgdmFyIHJlc3VsdCA9IGFuT2JqZWN0KHRoaXMubmV4dC5jYWxsKHRoaXMuaXRlcmF0b3IsIGFyZykpO1xuICB2YXIgZG9uZSA9IHRoaXMuZG9uZSA9ICEhcmVzdWx0LmRvbmU7XG4gIGlmICghZG9uZSkgcmV0dXJuIFt0aGlzLmluZGV4KyssIHJlc3VsdC52YWx1ZV07XG59KTtcblxuJCh7IHRhcmdldDogJ0l0ZXJhdG9yJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUgfSwge1xuICBhc0luZGV4ZWRQYWlyczogZnVuY3Rpb24gYXNJbmRleGVkUGFpcnMoKSB7XG4gICAgcmV0dXJuIG5ldyBJdGVyYXRvclByb3h5KHtcbiAgICAgIGl0ZXJhdG9yOiBhbk9iamVjdCh0aGlzKSxcbiAgICAgIGluZGV4OiAwXG4gICAgfSk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaXRlcmF0b3ItaGVscGVyc1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGFuSW5zdGFuY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4taW5zdGFuY2UnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBoYXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgSXRlcmF0b3JQcm90b3R5cGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzLWNvcmUnKS5JdGVyYXRvclByb3RvdHlwZTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG5cbnZhciBOYXRpdmVJdGVyYXRvciA9IGdsb2JhbC5JdGVyYXRvcjtcblxuLy8gRkY1Ni0gaGF2ZSBub24tc3RhbmRhcmQgZ2xvYmFsIGhlbHBlciBgSXRlcmF0b3JgXG52YXIgRk9SQ0VEID0gSVNfUFVSRVxuICB8fCB0eXBlb2YgTmF0aXZlSXRlcmF0b3IgIT0gJ2Z1bmN0aW9uJ1xuICB8fCBOYXRpdmVJdGVyYXRvci5wcm90b3R5cGUgIT09IEl0ZXJhdG9yUHJvdG90eXBlXG4gIC8vIEZGNDQtIG5vbi1zdGFuZGFyZCBgSXRlcmF0b3JgIHBhc3NlcyBwcmV2aW91cyB0ZXN0c1xuICB8fCAhZmFpbHMoZnVuY3Rpb24gKCkgeyBOYXRpdmVJdGVyYXRvcih7fSk7IH0pO1xuXG52YXIgSXRlcmF0b3JDb25zdHJ1Y3RvciA9IGZ1bmN0aW9uIEl0ZXJhdG9yKCkge1xuICBhbkluc3RhbmNlKHRoaXMsIEl0ZXJhdG9yQ29uc3RydWN0b3IpO1xufTtcblxuaWYgKElTX1BVUkUpIHtcbiAgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcbiAgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KTtcbn1cblxuaWYgKCFoYXMoSXRlcmF0b3JQcm90b3R5cGUsIFRPX1NUUklOR19UQUcpKSB7XG4gIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShJdGVyYXRvclByb3RvdHlwZSwgVE9fU1RSSU5HX1RBRywgJ0l0ZXJhdG9yJyk7XG59XG5cbmlmIChGT1JDRUQgfHwgIWhhcyhJdGVyYXRvclByb3RvdHlwZSwgJ2NvbnN0cnVjdG9yJykgfHwgSXRlcmF0b3JQcm90b3R5cGUuY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xuICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoSXRlcmF0b3JQcm90b3R5cGUsICdjb25zdHJ1Y3RvcicsIEl0ZXJhdG9yQ29uc3RydWN0b3IpO1xufVxuXG5JdGVyYXRvckNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IEl0ZXJhdG9yUHJvdG90eXBlO1xuXG4kKHsgZ2xvYmFsOiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCB9LCB7XG4gIEl0ZXJhdG9yOiBJdGVyYXRvckNvbnN0cnVjdG9yXG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWl0ZXJhdG9yLWhlbHBlcnNcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvUG9zaXRpdmVJbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXBvc2l0aXZlLWludGVnZXInKTtcbnZhciBjcmVhdGVJdGVyYXRvclByb3h5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9yLWNyZWF0ZS1wcm94eScpO1xuXG52YXIgSXRlcmF0b3JQcm94eSA9IGNyZWF0ZUl0ZXJhdG9yUHJveHkoZnVuY3Rpb24gKGFyZykge1xuICB2YXIgaXRlcmF0b3IgPSB0aGlzLml0ZXJhdG9yO1xuICB2YXIgbmV4dCA9IHRoaXMubmV4dDtcbiAgdmFyIHJlc3VsdCwgZG9uZTtcbiAgd2hpbGUgKHRoaXMucmVtYWluaW5nKSB7XG4gICAgdGhpcy5yZW1haW5pbmctLTtcbiAgICByZXN1bHQgPSBhbk9iamVjdChuZXh0LmNhbGwoaXRlcmF0b3IpKTtcbiAgICBkb25lID0gdGhpcy5kb25lID0gISFyZXN1bHQuZG9uZTtcbiAgICBpZiAoZG9uZSkgcmV0dXJuO1xuICB9XG4gIHJlc3VsdCA9IGFuT2JqZWN0KG5leHQuY2FsbChpdGVyYXRvciwgYXJnKSk7XG4gIGRvbmUgPSB0aGlzLmRvbmUgPSAhIXJlc3VsdC5kb25lO1xuICBpZiAoIWRvbmUpIHJldHVybiByZXN1bHQudmFsdWU7XG59KTtcblxuJCh7IHRhcmdldDogJ0l0ZXJhdG9yJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUgfSwge1xuICBkcm9wOiBmdW5jdGlvbiBkcm9wKGxpbWl0KSB7XG4gICAgcmV0dXJuIG5ldyBJdGVyYXRvclByb3h5KHtcbiAgICAgIGl0ZXJhdG9yOiBhbk9iamVjdCh0aGlzKSxcbiAgICAgIHJlbWFpbmluZzogdG9Qb3NpdGl2ZUludGVnZXIobGltaXQpXG4gICAgfSk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaXRlcmF0b3ItaGVscGVyc1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxuJCh7IHRhcmdldDogJ0l0ZXJhdG9yJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUgfSwge1xuICBldmVyeTogZnVuY3Rpb24gZXZlcnkoZm4pIHtcbiAgICBhbk9iamVjdCh0aGlzKTtcbiAgICBhRnVuY3Rpb24oZm4pO1xuICAgIHJldHVybiAhaXRlcmF0ZSh0aGlzLCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGlmICghZm4odmFsdWUpKSByZXR1cm4gaXRlcmF0ZS5zdG9wKCk7XG4gICAgfSwgdW5kZWZpbmVkLCBmYWxzZSwgdHJ1ZSkuc3RvcHBlZDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1pdGVyYXRvci1oZWxwZXJzXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGNyZWF0ZUl0ZXJhdG9yUHJveHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3ItY3JlYXRlLXByb3h5Jyk7XG52YXIgY2FsbFdpdGhTYWZlSXRlcmF0aW9uQ2xvc2luZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jYWxsLXdpdGgtc2FmZS1pdGVyYXRpb24tY2xvc2luZycpO1xuXG52YXIgSXRlcmF0b3JQcm94eSA9IGNyZWF0ZUl0ZXJhdG9yUHJveHkoZnVuY3Rpb24gKGFyZykge1xuICB2YXIgaXRlcmF0b3IgPSB0aGlzLml0ZXJhdG9yO1xuICB2YXIgZmlsdGVyZXIgPSB0aGlzLmZpbHRlcmVyO1xuICB2YXIgbmV4dCA9IHRoaXMubmV4dDtcbiAgdmFyIHJlc3VsdCwgZG9uZSwgdmFsdWU7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgcmVzdWx0ID0gYW5PYmplY3QobmV4dC5jYWxsKGl0ZXJhdG9yLCBhcmcpKTtcbiAgICBkb25lID0gdGhpcy5kb25lID0gISFyZXN1bHQuZG9uZTtcbiAgICBpZiAoZG9uZSkgcmV0dXJuO1xuICAgIHZhbHVlID0gcmVzdWx0LnZhbHVlO1xuICAgIGlmIChjYWxsV2l0aFNhZmVJdGVyYXRpb25DbG9zaW5nKGl0ZXJhdG9yLCBmaWx0ZXJlciwgdmFsdWUpKSByZXR1cm4gdmFsdWU7XG4gIH1cbn0pO1xuXG4kKHsgdGFyZ2V0OiAnSXRlcmF0b3InLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSB9LCB7XG4gIGZpbHRlcjogZnVuY3Rpb24gZmlsdGVyKGZpbHRlcmVyKSB7XG4gICAgcmV0dXJuIG5ldyBJdGVyYXRvclByb3h5KHtcbiAgICAgIGl0ZXJhdG9yOiBhbk9iamVjdCh0aGlzKSxcbiAgICAgIGZpbHRlcmVyOiBhRnVuY3Rpb24oZmlsdGVyZXIpXG4gICAgfSk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaXRlcmF0b3ItaGVscGVyc1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxuJCh7IHRhcmdldDogJ0l0ZXJhdG9yJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUgfSwge1xuICBmaW5kOiBmdW5jdGlvbiBmaW5kKGZuKSB7XG4gICAgYW5PYmplY3QodGhpcyk7XG4gICAgYUZ1bmN0aW9uKGZuKTtcbiAgICByZXR1cm4gaXRlcmF0ZSh0aGlzLCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGlmIChmbih2YWx1ZSkpIHJldHVybiBpdGVyYXRlLnN0b3AodmFsdWUpO1xuICAgIH0sIHVuZGVmaW5lZCwgZmFsc2UsIHRydWUpLnJlc3VsdDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1pdGVyYXRvci1oZWxwZXJzXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGdldEl0ZXJhdG9yTWV0aG9kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1pdGVyYXRvci1tZXRob2QnKTtcbnZhciBjcmVhdGVJdGVyYXRvclByb3h5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9yLWNyZWF0ZS1wcm94eScpO1xudmFyIGNhbGxXaXRoU2FmZUl0ZXJhdGlvbkNsb3NpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2FsbC13aXRoLXNhZmUtaXRlcmF0aW9uLWNsb3NpbmcnKTtcblxudmFyIEl0ZXJhdG9yUHJveHkgPSBjcmVhdGVJdGVyYXRvclByb3h5KGZ1bmN0aW9uIChhcmcpIHtcbiAgdmFyIGl0ZXJhdG9yID0gdGhpcy5pdGVyYXRvcjtcbiAgdmFyIHJlc3VsdCwgbWFwcGVkLCBpdGVyYXRvck1ldGhvZCwgaW5uZXJJdGVyYXRvcjtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGlmIChpbm5lckl0ZXJhdG9yID0gdGhpcy5pbm5lckl0ZXJhdG9yKSB7XG4gICAgICByZXN1bHQgPSBhbk9iamVjdCh0aGlzLmlubmVyTmV4dC5jYWxsKGlubmVySXRlcmF0b3IpKTtcbiAgICAgIGlmICghcmVzdWx0LmRvbmUpIHJldHVybiByZXN1bHQudmFsdWU7XG4gICAgICB0aGlzLmlubmVySXRlcmF0b3IgPSB0aGlzLmlubmVyTmV4dCA9IG51bGw7XG4gICAgfVxuXG4gICAgcmVzdWx0ID0gYW5PYmplY3QodGhpcy5uZXh0LmNhbGwoaXRlcmF0b3IsIGFyZykpO1xuXG4gICAgaWYgKHRoaXMuZG9uZSA9ICEhcmVzdWx0LmRvbmUpIHJldHVybjtcblxuICAgIG1hcHBlZCA9IGNhbGxXaXRoU2FmZUl0ZXJhdGlvbkNsb3NpbmcoaXRlcmF0b3IsIHRoaXMubWFwcGVyLCByZXN1bHQudmFsdWUpO1xuICAgIGl0ZXJhdG9yTWV0aG9kID0gZ2V0SXRlcmF0b3JNZXRob2QobWFwcGVkKTtcblxuICAgIGlmIChpdGVyYXRvck1ldGhvZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJy5mbGF0TWFwIGNhbGxiYWNrIHNob3VsZCByZXR1cm4gYW4gaXRlcmFibGUgb2JqZWN0Jyk7XG4gICAgfVxuXG4gICAgdGhpcy5pbm5lckl0ZXJhdG9yID0gaW5uZXJJdGVyYXRvciA9IGFuT2JqZWN0KGl0ZXJhdG9yTWV0aG9kLmNhbGwobWFwcGVkKSk7XG4gICAgdGhpcy5pbm5lck5leHQgPSBhRnVuY3Rpb24oaW5uZXJJdGVyYXRvci5uZXh0KTtcbiAgfVxufSk7XG5cbiQoeyB0YXJnZXQ6ICdJdGVyYXRvcicsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlIH0sIHtcbiAgZmxhdE1hcDogZnVuY3Rpb24gZmxhdE1hcChtYXBwZXIpIHtcbiAgICByZXR1cm4gbmV3IEl0ZXJhdG9yUHJveHkoe1xuICAgICAgaXRlcmF0b3I6IGFuT2JqZWN0KHRoaXMpLFxuICAgICAgbWFwcGVyOiBhRnVuY3Rpb24obWFwcGVyKSxcbiAgICAgIGlubmVySXRlcmF0b3I6IG51bGwsXG4gICAgICBpbm5lck5leHQ6IG51bGxcbiAgICB9KTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1pdGVyYXRvci1oZWxwZXJzXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBpdGVyYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdGUnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxuJCh7IHRhcmdldDogJ0l0ZXJhdG9yJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUgfSwge1xuICBmb3JFYWNoOiBmdW5jdGlvbiBmb3JFYWNoKGZuKSB7XG4gICAgaXRlcmF0ZShhbk9iamVjdCh0aGlzKSwgZm4sIHVuZGVmaW5lZCwgZmFsc2UsIHRydWUpO1xuICB9XG59KTtcbiIsIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWl0ZXJhdG9yLWhlbHBlcnNcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIHBhdGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcGF0aCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgY3JlYXRlSXRlcmF0b3JQcm94eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvci1jcmVhdGUtcHJveHknKTtcbnZhciBnZXRJdGVyYXRvck1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtaXRlcmF0b3ItbWV0aG9kJyk7XG5cbnZhciBJdGVyYXRvciA9IHBhdGguSXRlcmF0b3I7XG5cbnZhciBJdGVyYXRvclByb3h5ID0gY3JlYXRlSXRlcmF0b3JQcm94eShmdW5jdGlvbiAoYXJnKSB7XG4gIHZhciByZXN1bHQgPSBhbk9iamVjdCh0aGlzLm5leHQuY2FsbCh0aGlzLml0ZXJhdG9yLCBhcmcpKTtcbiAgdmFyIGRvbmUgPSB0aGlzLmRvbmUgPSAhIXJlc3VsdC5kb25lO1xuICBpZiAoIWRvbmUpIHJldHVybiByZXN1bHQudmFsdWU7XG59LCB0cnVlKTtcblxuJCh7IHRhcmdldDogJ0l0ZXJhdG9yJywgc3RhdDogdHJ1ZSB9LCB7XG4gIGZyb206IGZ1bmN0aW9uIGZyb20oTykge1xuICAgIHZhciBvYmplY3QgPSB0b09iamVjdChPKTtcbiAgICB2YXIgdXNpbmdJdGVyYXRvciA9IGdldEl0ZXJhdG9yTWV0aG9kKG9iamVjdCk7XG4gICAgdmFyIGl0ZXJhdG9yO1xuICAgIGlmICh1c2luZ0l0ZXJhdG9yICE9IG51bGwpIHtcbiAgICAgIGl0ZXJhdG9yID0gYUZ1bmN0aW9uKHVzaW5nSXRlcmF0b3IpLmNhbGwob2JqZWN0KTtcbiAgICAgIGlmIChpdGVyYXRvciBpbnN0YW5jZW9mIEl0ZXJhdG9yKSByZXR1cm4gaXRlcmF0b3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIGl0ZXJhdG9yID0gb2JqZWN0O1xuICAgIH0gcmV0dXJuIG5ldyBJdGVyYXRvclByb3h5KHtcbiAgICAgIGl0ZXJhdG9yOiBpdGVyYXRvclxuICAgIH0pO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWl0ZXJhdG9yLWhlbHBlcnNcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgY3JlYXRlSXRlcmF0b3JQcm94eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvci1jcmVhdGUtcHJveHknKTtcbnZhciBjYWxsV2l0aFNhZmVJdGVyYXRpb25DbG9zaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NhbGwtd2l0aC1zYWZlLWl0ZXJhdGlvbi1jbG9zaW5nJyk7XG5cbnZhciBJdGVyYXRvclByb3h5ID0gY3JlYXRlSXRlcmF0b3JQcm94eShmdW5jdGlvbiAoYXJnKSB7XG4gIHZhciBpdGVyYXRvciA9IHRoaXMuaXRlcmF0b3I7XG4gIHZhciByZXN1bHQgPSBhbk9iamVjdCh0aGlzLm5leHQuY2FsbChpdGVyYXRvciwgYXJnKSk7XG4gIHZhciBkb25lID0gdGhpcy5kb25lID0gISFyZXN1bHQuZG9uZTtcbiAgaWYgKCFkb25lKSByZXR1cm4gY2FsbFdpdGhTYWZlSXRlcmF0aW9uQ2xvc2luZyhpdGVyYXRvciwgdGhpcy5tYXBwZXIsIHJlc3VsdC52YWx1ZSk7XG59KTtcblxuJCh7IHRhcmdldDogJ0l0ZXJhdG9yJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUgfSwge1xuICBtYXA6IGZ1bmN0aW9uIG1hcChtYXBwZXIpIHtcbiAgICByZXR1cm4gbmV3IEl0ZXJhdG9yUHJveHkoe1xuICAgICAgaXRlcmF0b3I6IGFuT2JqZWN0KHRoaXMpLFxuICAgICAgbWFwcGVyOiBhRnVuY3Rpb24obWFwcGVyKVxuICAgIH0pO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWl0ZXJhdG9yLWhlbHBlcnNcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG5cbiQoeyB0YXJnZXQ6ICdJdGVyYXRvcicsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlIH0sIHtcbiAgcmVkdWNlOiBmdW5jdGlvbiByZWR1Y2UocmVkdWNlciAvKiAsIGluaXRpYWxWYWx1ZSAqLykge1xuICAgIGFuT2JqZWN0KHRoaXMpO1xuICAgIGFGdW5jdGlvbihyZWR1Y2VyKTtcbiAgICB2YXIgbm9Jbml0aWFsID0gYXJndW1lbnRzLmxlbmd0aCA8IDI7XG4gICAgdmFyIGFjY3VtdWxhdG9yID0gbm9Jbml0aWFsID8gdW5kZWZpbmVkIDogYXJndW1lbnRzWzFdO1xuICAgIGl0ZXJhdGUodGhpcywgZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAobm9Jbml0aWFsKSB7XG4gICAgICAgIG5vSW5pdGlhbCA9IGZhbHNlO1xuICAgICAgICBhY2N1bXVsYXRvciA9IHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWNjdW11bGF0b3IgPSByZWR1Y2VyKGFjY3VtdWxhdG9yLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSwgdW5kZWZpbmVkLCBmYWxzZSwgdHJ1ZSk7XG4gICAgaWYgKG5vSW5pdGlhbCkgdGhyb3cgVHlwZUVycm9yKCdSZWR1Y2Ugb2YgZW1wdHkgaXRlcmF0b3Igd2l0aCBubyBpbml0aWFsIHZhbHVlJyk7XG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWl0ZXJhdG9yLWhlbHBlcnNcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG5cbiQoeyB0YXJnZXQ6ICdJdGVyYXRvcicsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlIH0sIHtcbiAgc29tZTogZnVuY3Rpb24gc29tZShmbikge1xuICAgIGFuT2JqZWN0KHRoaXMpO1xuICAgIGFGdW5jdGlvbihmbik7XG4gICAgcmV0dXJuIGl0ZXJhdGUodGhpcywgZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAoZm4odmFsdWUpKSByZXR1cm4gaXRlcmF0ZS5zdG9wKCk7XG4gICAgfSwgdW5kZWZpbmVkLCBmYWxzZSwgdHJ1ZSkuc3RvcHBlZDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1pdGVyYXRvci1oZWxwZXJzXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b1Bvc2l0aXZlSW50ZWdlciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1wb3NpdGl2ZS1pbnRlZ2VyJyk7XG52YXIgY3JlYXRlSXRlcmF0b3JQcm94eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvci1jcmVhdGUtcHJveHknKTtcblxudmFyIEl0ZXJhdG9yUHJveHkgPSBjcmVhdGVJdGVyYXRvclByb3h5KGZ1bmN0aW9uIChhcmcpIHtcbiAgaWYgKCF0aGlzLnJlbWFpbmluZy0tKSB7XG4gICAgdGhpcy5kb25lID0gdHJ1ZTtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIHJlc3VsdCA9IGFuT2JqZWN0KHRoaXMubmV4dC5jYWxsKHRoaXMuaXRlcmF0b3IsIGFyZykpO1xuICB2YXIgZG9uZSA9IHRoaXMuZG9uZSA9ICEhcmVzdWx0LmRvbmU7XG4gIGlmICghZG9uZSkgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbn0pO1xuXG4kKHsgdGFyZ2V0OiAnSXRlcmF0b3InLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSB9LCB7XG4gIHRha2U6IGZ1bmN0aW9uIHRha2UobGltaXQpIHtcbiAgICByZXR1cm4gbmV3IEl0ZXJhdG9yUHJveHkoe1xuICAgICAgaXRlcmF0b3I6IGFuT2JqZWN0KHRoaXMpLFxuICAgICAgcmVtYWluaW5nOiB0b1Bvc2l0aXZlSW50ZWdlcihsaW1pdClcbiAgICB9KTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1pdGVyYXRvci1oZWxwZXJzXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBpdGVyYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdGUnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxudmFyIHB1c2ggPSBbXS5wdXNoO1xuXG4kKHsgdGFyZ2V0OiAnSXRlcmF0b3InLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSB9LCB7XG4gIHRvQXJyYXk6IGZ1bmN0aW9uIHRvQXJyYXkoKSB7XG4gICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgIGl0ZXJhdGUoYW5PYmplY3QodGhpcyksIHB1c2gsIHJlc3VsdCwgZmFsc2UsIHRydWUpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgY29sbGVjdGlvbkRlbGV0ZUFsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb2xsZWN0aW9uLWRlbGV0ZS1hbGwnKTtcblxuLy8gYE1hcC5wcm90b3R5cGUuZGVsZXRlQWxsYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWNvbGxlY3Rpb24tbWV0aG9kc1xuJCh7IHRhcmdldDogJ01hcCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICBkZWxldGVBbGw6IGZ1bmN0aW9uIGRlbGV0ZUFsbCgvKiAuLi5lbGVtZW50cyAqLykge1xuICAgIHJldHVybiBjb2xsZWN0aW9uRGVsZXRlQWxsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQnKTtcbnZhciBnZXRNYXBJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWFwLWl0ZXJhdG9yJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG5cbi8vIGBNYXAucHJvdG90eXBlLmV2ZXJ5YCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWNvbGxlY3Rpb24tbWV0aG9kc1xuJCh7IHRhcmdldDogJ01hcCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICBldmVyeTogZnVuY3Rpb24gZXZlcnkoY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICB2YXIgbWFwID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIGl0ZXJhdG9yID0gZ2V0TWFwSXRlcmF0b3IobWFwKTtcbiAgICB2YXIgYm91bmRGdW5jdGlvbiA9IGJpbmQoY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQsIDMpO1xuICAgIHJldHVybiAhaXRlcmF0ZShpdGVyYXRvciwgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgIGlmICghYm91bmRGdW5jdGlvbih2YWx1ZSwga2V5LCBtYXApKSByZXR1cm4gaXRlcmF0ZS5zdG9wKCk7XG4gICAgfSwgdW5kZWZpbmVkLCB0cnVlLCB0cnVlKS5zdG9wcGVkO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgZ2V0TWFwSXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LW1hcC1pdGVyYXRvcicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG4vLyBgTWFwLnByb3RvdHlwZS5maWx0ZXJgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtY29sbGVjdGlvbi1tZXRob2RzXG4kKHsgdGFyZ2V0OiAnTWFwJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUsIGZvcmNlZDogSVNfUFVSRSB9LCB7XG4gIGZpbHRlcjogZnVuY3Rpb24gZmlsdGVyKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgdmFyIG1hcCA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBpdGVyYXRvciA9IGdldE1hcEl0ZXJhdG9yKG1hcCk7XG4gICAgdmFyIGJvdW5kRnVuY3Rpb24gPSBiaW5kKGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkLCAzKTtcbiAgICB2YXIgbmV3TWFwID0gbmV3IChzcGVjaWVzQ29uc3RydWN0b3IobWFwLCBnZXRCdWlsdEluKCdNYXAnKSkpKCk7XG4gICAgdmFyIHNldHRlciA9IGFGdW5jdGlvbihuZXdNYXAuc2V0KTtcbiAgICBpdGVyYXRlKGl0ZXJhdG9yLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKGJvdW5kRnVuY3Rpb24odmFsdWUsIGtleSwgbWFwKSkgc2V0dGVyLmNhbGwobmV3TWFwLCBrZXksIHZhbHVlKTtcbiAgICB9LCB1bmRlZmluZWQsIHRydWUsIHRydWUpO1xuICAgIHJldHVybiBuZXdNYXA7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYmluZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLWNvbnRleHQnKTtcbnZhciBnZXRNYXBJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWFwLWl0ZXJhdG9yJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG5cbi8vIGBNYXAucHJvdG90eXBlLmZpbmRLZXlgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtY29sbGVjdGlvbi1tZXRob2RzXG4kKHsgdGFyZ2V0OiAnTWFwJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUsIGZvcmNlZDogSVNfUFVSRSB9LCB7XG4gIGZpbmRLZXk6IGZ1bmN0aW9uIGZpbmRLZXkoY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICB2YXIgbWFwID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIGl0ZXJhdG9yID0gZ2V0TWFwSXRlcmF0b3IobWFwKTtcbiAgICB2YXIgYm91bmRGdW5jdGlvbiA9IGJpbmQoY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQsIDMpO1xuICAgIHJldHVybiBpdGVyYXRlKGl0ZXJhdG9yLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgaWYgKGJvdW5kRnVuY3Rpb24odmFsdWUsIGtleSwgbWFwKSkgcmV0dXJuIGl0ZXJhdGUuc3RvcChrZXkpO1xuICAgIH0sIHVuZGVmaW5lZCwgdHJ1ZSwgdHJ1ZSkucmVzdWx0O1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgZ2V0TWFwSXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LW1hcC1pdGVyYXRvcicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG4vLyBgTWFwLnByb3RvdHlwZS5maW5kYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWNvbGxlY3Rpb24tbWV0aG9kc1xuJCh7IHRhcmdldDogJ01hcCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICBmaW5kOiBmdW5jdGlvbiBmaW5kKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgdmFyIG1hcCA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBpdGVyYXRvciA9IGdldE1hcEl0ZXJhdG9yKG1hcCk7XG4gICAgdmFyIGJvdW5kRnVuY3Rpb24gPSBiaW5kKGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkLCAzKTtcbiAgICByZXR1cm4gaXRlcmF0ZShpdGVyYXRvciwgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgIGlmIChib3VuZEZ1bmN0aW9uKHZhbHVlLCBrZXksIG1hcCkpIHJldHVybiBpdGVyYXRlLnN0b3AodmFsdWUpO1xuICAgIH0sIHVuZGVmaW5lZCwgdHJ1ZSwgdHJ1ZSkucmVzdWx0O1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZyb20gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29sbGVjdGlvbi1mcm9tJyk7XG5cbi8vIGBNYXAuZnJvbWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL3Byb3Bvc2FsLXNldG1hcC1vZmZyb20vI3NlYy1tYXAuZnJvbVxuJCh7IHRhcmdldDogJ01hcCcsIHN0YXQ6IHRydWUgfSwge1xuICBmcm9tOiBmcm9tXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG5cbi8vIGBNYXAuZ3JvdXBCeWAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1jb2xsZWN0aW9uLW1ldGhvZHNcbiQoeyB0YXJnZXQ6ICdNYXAnLCBzdGF0OiB0cnVlIH0sIHtcbiAgZ3JvdXBCeTogZnVuY3Rpb24gZ3JvdXBCeShpdGVyYWJsZSwga2V5RGVyaXZhdGl2ZSkge1xuICAgIHZhciBuZXdNYXAgPSBuZXcgdGhpcygpO1xuICAgIGFGdW5jdGlvbihrZXlEZXJpdmF0aXZlKTtcbiAgICB2YXIgaGFzID0gYUZ1bmN0aW9uKG5ld01hcC5oYXMpO1xuICAgIHZhciBnZXQgPSBhRnVuY3Rpb24obmV3TWFwLmdldCk7XG4gICAgdmFyIHNldCA9IGFGdW5jdGlvbihuZXdNYXAuc2V0KTtcbiAgICBpdGVyYXRlKGl0ZXJhYmxlLCBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgICAgdmFyIGRlcml2ZWRLZXkgPSBrZXlEZXJpdmF0aXZlKGVsZW1lbnQpO1xuICAgICAgaWYgKCFoYXMuY2FsbChuZXdNYXAsIGRlcml2ZWRLZXkpKSBzZXQuY2FsbChuZXdNYXAsIGRlcml2ZWRLZXksIFtlbGVtZW50XSk7XG4gICAgICBlbHNlIGdldC5jYWxsKG5ld01hcCwgZGVyaXZlZEtleSkucHVzaChlbGVtZW50KTtcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3TWFwO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGdldE1hcEl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1tYXAtaXRlcmF0b3InKTtcbnZhciBzYW1lVmFsdWVaZXJvID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NhbWUtdmFsdWUtemVybycpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG4vLyBgTWFwLnByb3RvdHlwZS5pbmNsdWRlc2AgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1jb2xsZWN0aW9uLW1ldGhvZHNcbiQoeyB0YXJnZXQ6ICdNYXAnLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSwgZm9yY2VkOiBJU19QVVJFIH0sIHtcbiAgaW5jbHVkZXM6IGZ1bmN0aW9uIGluY2x1ZGVzKHNlYXJjaEVsZW1lbnQpIHtcbiAgICByZXR1cm4gaXRlcmF0ZShnZXRNYXBJdGVyYXRvcihhbk9iamVjdCh0aGlzKSksIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoc2FtZVZhbHVlWmVybyh2YWx1ZSwgc2VhcmNoRWxlbWVudCkpIHJldHVybiBpdGVyYXRlLnN0b3AoKTtcbiAgICB9LCB1bmRlZmluZWQsIHRydWUsIHRydWUpLnN0b3BwZWQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcblxuLy8gYE1hcC5rZXlCeWAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1jb2xsZWN0aW9uLW1ldGhvZHNcbiQoeyB0YXJnZXQ6ICdNYXAnLCBzdGF0OiB0cnVlIH0sIHtcbiAga2V5Qnk6IGZ1bmN0aW9uIGtleUJ5KGl0ZXJhYmxlLCBrZXlEZXJpdmF0aXZlKSB7XG4gICAgdmFyIG5ld01hcCA9IG5ldyB0aGlzKCk7XG4gICAgYUZ1bmN0aW9uKGtleURlcml2YXRpdmUpO1xuICAgIHZhciBzZXR0ZXIgPSBhRnVuY3Rpb24obmV3TWFwLnNldCk7XG4gICAgaXRlcmF0ZShpdGVyYWJsZSwgZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICAgIHNldHRlci5jYWxsKG5ld01hcCwga2V5RGVyaXZhdGl2ZShlbGVtZW50KSwgZWxlbWVudCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ld01hcDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBnZXRNYXBJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWFwLWl0ZXJhdG9yJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG5cbi8vIGBNYXAucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWNvbGxlY3Rpb24tbWV0aG9kc1xuJCh7IHRhcmdldDogJ01hcCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICBrZXlPZjogZnVuY3Rpb24ga2V5T2Yoc2VhcmNoRWxlbWVudCkge1xuICAgIHJldHVybiBpdGVyYXRlKGdldE1hcEl0ZXJhdG9yKGFuT2JqZWN0KHRoaXMpKSwgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gc2VhcmNoRWxlbWVudCkgcmV0dXJuIGl0ZXJhdGUuc3RvcChrZXkpO1xuICAgIH0sIHVuZGVmaW5lZCwgdHJ1ZSwgdHJ1ZSkucmVzdWx0O1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgZ2V0TWFwSXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LW1hcC1pdGVyYXRvcicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG4vLyBgTWFwLnByb3RvdHlwZS5tYXBLZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWNvbGxlY3Rpb24tbWV0aG9kc1xuJCh7IHRhcmdldDogJ01hcCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICBtYXBLZXlzOiBmdW5jdGlvbiBtYXBLZXlzKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgdmFyIG1hcCA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBpdGVyYXRvciA9IGdldE1hcEl0ZXJhdG9yKG1hcCk7XG4gICAgdmFyIGJvdW5kRnVuY3Rpb24gPSBiaW5kKGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkLCAzKTtcbiAgICB2YXIgbmV3TWFwID0gbmV3IChzcGVjaWVzQ29uc3RydWN0b3IobWFwLCBnZXRCdWlsdEluKCdNYXAnKSkpKCk7XG4gICAgdmFyIHNldHRlciA9IGFGdW5jdGlvbihuZXdNYXAuc2V0KTtcbiAgICBpdGVyYXRlKGl0ZXJhdG9yLCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgc2V0dGVyLmNhbGwobmV3TWFwLCBib3VuZEZ1bmN0aW9uKHZhbHVlLCBrZXksIG1hcCksIHZhbHVlKTtcbiAgICB9LCB1bmRlZmluZWQsIHRydWUsIHRydWUpO1xuICAgIHJldHVybiBuZXdNYXA7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgc3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NwZWNpZXMtY29uc3RydWN0b3InKTtcbnZhciBnZXRNYXBJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWFwLWl0ZXJhdG9yJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG5cbi8vIGBNYXAucHJvdG90eXBlLm1hcFZhbHVlc2AgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1jb2xsZWN0aW9uLW1ldGhvZHNcbiQoeyB0YXJnZXQ6ICdNYXAnLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSwgZm9yY2VkOiBJU19QVVJFIH0sIHtcbiAgbWFwVmFsdWVzOiBmdW5jdGlvbiBtYXBWYWx1ZXMoY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICB2YXIgbWFwID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIGl0ZXJhdG9yID0gZ2V0TWFwSXRlcmF0b3IobWFwKTtcbiAgICB2YXIgYm91bmRGdW5jdGlvbiA9IGJpbmQoY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQsIDMpO1xuICAgIHZhciBuZXdNYXAgPSBuZXcgKHNwZWNpZXNDb25zdHJ1Y3RvcihtYXAsIGdldEJ1aWx0SW4oJ01hcCcpKSkoKTtcbiAgICB2YXIgc2V0dGVyID0gYUZ1bmN0aW9uKG5ld01hcC5zZXQpO1xuICAgIGl0ZXJhdGUoaXRlcmF0b3IsIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICBzZXR0ZXIuY2FsbChuZXdNYXAsIGtleSwgYm91bmRGdW5jdGlvbih2YWx1ZSwga2V5LCBtYXApKTtcbiAgICB9LCB1bmRlZmluZWQsIHRydWUsIHRydWUpO1xuICAgIHJldHVybiBuZXdNYXA7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBpdGVyYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdGUnKTtcblxuLy8gYE1hcC5wcm90b3R5cGUubWVyZ2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtY29sbGVjdGlvbi1tZXRob2RzXG4kKHsgdGFyZ2V0OiAnTWFwJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUsIGZvcmNlZDogSVNfUFVSRSB9LCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICBtZXJnZTogZnVuY3Rpb24gbWVyZ2UoaXRlcmFibGUgLyogLi4uaXRlcmJsZXMgKi8pIHtcbiAgICB2YXIgbWFwID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIHNldHRlciA9IGFGdW5jdGlvbihtYXAuc2V0KTtcbiAgICB2YXIgaSA9IDA7XG4gICAgd2hpbGUgKGkgPCBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICBpdGVyYXRlKGFyZ3VtZW50c1tpKytdLCBzZXR0ZXIsIG1hcCwgdHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiBtYXA7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29sbGVjdGlvbi1vZicpO1xuXG4vLyBgTWFwLm9mYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vcHJvcG9zYWwtc2V0bWFwLW9mZnJvbS8jc2VjLW1hcC5vZlxuJCh7IHRhcmdldDogJ01hcCcsIHN0YXQ6IHRydWUgfSwge1xuICBvZjogb2Zcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBnZXRNYXBJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWFwLWl0ZXJhdG9yJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG5cbi8vIGBNYXAucHJvdG90eXBlLnJlZHVjZWAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1jb2xsZWN0aW9uLW1ldGhvZHNcbiQoeyB0YXJnZXQ6ICdNYXAnLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSwgZm9yY2VkOiBJU19QVVJFIH0sIHtcbiAgcmVkdWNlOiBmdW5jdGlvbiByZWR1Y2UoY2FsbGJhY2tmbiAvKiAsIGluaXRpYWxWYWx1ZSAqLykge1xuICAgIHZhciBtYXAgPSBhbk9iamVjdCh0aGlzKTtcbiAgICB2YXIgaXRlcmF0b3IgPSBnZXRNYXBJdGVyYXRvcihtYXApO1xuICAgIHZhciBub0luaXRpYWwgPSBhcmd1bWVudHMubGVuZ3RoIDwgMjtcbiAgICB2YXIgYWNjdW11bGF0b3IgPSBub0luaXRpYWwgPyB1bmRlZmluZWQgOiBhcmd1bWVudHNbMV07XG4gICAgYUZ1bmN0aW9uKGNhbGxiYWNrZm4pO1xuICAgIGl0ZXJhdGUoaXRlcmF0b3IsIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAobm9Jbml0aWFsKSB7XG4gICAgICAgIG5vSW5pdGlhbCA9IGZhbHNlO1xuICAgICAgICBhY2N1bXVsYXRvciA9IHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWNjdW11bGF0b3IgPSBjYWxsYmFja2ZuKGFjY3VtdWxhdG9yLCB2YWx1ZSwga2V5LCBtYXApO1xuICAgICAgfVxuICAgIH0sIHVuZGVmaW5lZCwgdHJ1ZSwgdHJ1ZSk7XG4gICAgaWYgKG5vSW5pdGlhbCkgdGhyb3cgVHlwZUVycm9yKCdSZWR1Y2Ugb2YgZW1wdHkgbWFwIHdpdGggbm8gaW5pdGlhbCB2YWx1ZScpO1xuICAgIHJldHVybiBhY2N1bXVsYXRvcjtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIGdldE1hcEl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1tYXAtaXRlcmF0b3InKTtcbnZhciBpdGVyYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdGUnKTtcblxuLy8gYFNldC5wcm90b3R5cGUuc29tZWAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1jb2xsZWN0aW9uLW1ldGhvZHNcbiQoeyB0YXJnZXQ6ICdNYXAnLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSwgZm9yY2VkOiBJU19QVVJFIH0sIHtcbiAgc29tZTogZnVuY3Rpb24gc29tZShjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHZhciBtYXAgPSBhbk9iamVjdCh0aGlzKTtcbiAgICB2YXIgaXRlcmF0b3IgPSBnZXRNYXBJdGVyYXRvcihtYXApO1xuICAgIHZhciBib3VuZEZ1bmN0aW9uID0gYmluZChjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCwgMyk7XG4gICAgcmV0dXJuIGl0ZXJhdGUoaXRlcmF0b3IsIGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICBpZiAoYm91bmRGdW5jdGlvbih2YWx1ZSwga2V5LCBtYXApKSByZXR1cm4gaXRlcmF0ZS5zdG9wKCk7XG4gICAgfSwgdW5kZWZpbmVkLCB0cnVlLCB0cnVlKS5zdG9wcGVkO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIFRPRE86IHJlbW92ZSBmcm9tIGBjb3JlLWpzQDRgXG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciAkdXBzZXJ0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21hcC11cHNlcnQnKTtcblxuLy8gYE1hcC5wcm90b3R5cGUudXBkYXRlT3JJbnNlcnRgIG1ldGhvZCAocmVwbGFjZWQgYnkgYE1hcC5wcm90b3R5cGUudXBzZXJ0YClcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90aHVtYnN1cGVwL3Byb3Bvc2FsLXVwc2VydFxuJCh7IHRhcmdldDogJ01hcCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICB1cGRhdGVPckluc2VydDogJHVwc2VydFxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xuXG4vLyBgU2V0LnByb3RvdHlwZS51cGRhdGVgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtY29sbGVjdGlvbi1tZXRob2RzXG4kKHsgdGFyZ2V0OiAnTWFwJywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUsIGZvcmNlZDogSVNfUFVSRSB9LCB7XG4gIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKGtleSwgY2FsbGJhY2sgLyogLCB0aHVuayAqLykge1xuICAgIHZhciBtYXAgPSBhbk9iamVjdCh0aGlzKTtcbiAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICBhRnVuY3Rpb24oY2FsbGJhY2spO1xuICAgIHZhciBpc1ByZXNlbnRJbk1hcCA9IG1hcC5oYXMoa2V5KTtcbiAgICBpZiAoIWlzUHJlc2VudEluTWFwICYmIGxlbmd0aCA8IDMpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignVXBkYXRpbmcgYWJzZW50IHZhbHVlJyk7XG4gICAgfVxuICAgIHZhciB2YWx1ZSA9IGlzUHJlc2VudEluTWFwID8gbWFwLmdldChrZXkpIDogYUZ1bmN0aW9uKGxlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQpKGtleSwgbWFwKTtcbiAgICBtYXAuc2V0KGtleSwgY2FsbGJhY2sodmFsdWUsIGtleSwgbWFwKSk7XG4gICAgcmV0dXJuIG1hcDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciAkdXBzZXJ0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21hcC11cHNlcnQnKTtcblxuLy8gYE1hcC5wcm90b3R5cGUudXBzZXJ0YCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90aHVtYnN1cGVwL3Byb3Bvc2FsLXVwc2VydFxuJCh7IHRhcmdldDogJ01hcCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICB1cHNlcnQ6ICR1cHNlcnRcbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG5cbnZhciBtaW4gPSBNYXRoLm1pbjtcbnZhciBtYXggPSBNYXRoLm1heDtcblxuLy8gYE1hdGguY2xhbXBgIG1ldGhvZFxuLy8gaHR0cHM6Ly9yd2FsZHJvbi5naXRodWIuaW8vcHJvcG9zYWwtbWF0aC1leHRlbnNpb25zL1xuJCh7IHRhcmdldDogJ01hdGgnLCBzdGF0OiB0cnVlIH0sIHtcbiAgY2xhbXA6IGZ1bmN0aW9uIGNsYW1wKHgsIGxvd2VyLCB1cHBlcikge1xuICAgIHJldHVybiBtaW4odXBwZXIsIG1heChsb3dlciwgeCkpO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xuXG4vLyBgTWF0aC5ERUdfUEVSX1JBRGAgY29uc3RhbnRcbi8vIGh0dHBzOi8vcndhbGRyb24uZ2l0aHViLmlvL3Byb3Bvc2FsLW1hdGgtZXh0ZW5zaW9ucy9cbiQoeyB0YXJnZXQ6ICdNYXRoJywgc3RhdDogdHJ1ZSB9LCB7XG4gIERFR19QRVJfUkFEOiBNYXRoLlBJIC8gMTgwXG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xuXG52YXIgUkFEX1BFUl9ERUcgPSAxODAgLyBNYXRoLlBJO1xuXG4vLyBgTWF0aC5kZWdyZWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vcndhbGRyb24uZ2l0aHViLmlvL3Byb3Bvc2FsLW1hdGgtZXh0ZW5zaW9ucy9cbiQoeyB0YXJnZXQ6ICdNYXRoJywgc3RhdDogdHJ1ZSB9LCB7XG4gIGRlZ3JlZXM6IGZ1bmN0aW9uIGRlZ3JlZXMocmFkaWFucykge1xuICAgIHJldHVybiByYWRpYW5zICogUkFEX1BFUl9ERUc7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG5cbnZhciBzY2FsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYXRoLXNjYWxlJyk7XG52YXIgZnJvdW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21hdGgtZnJvdW5kJyk7XG5cbi8vIGBNYXRoLmZzY2FsZWAgbWV0aG9kXG4vLyBodHRwczovL3J3YWxkcm9uLmdpdGh1Yi5pby9wcm9wb3NhbC1tYXRoLWV4dGVuc2lvbnMvXG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUgfSwge1xuICBmc2NhbGU6IGZ1bmN0aW9uIGZzY2FsZSh4LCBpbkxvdywgaW5IaWdoLCBvdXRMb3csIG91dEhpZ2gpIHtcbiAgICByZXR1cm4gZnJvdW5kKHNjYWxlKHgsIGluTG93LCBpbkhpZ2gsIG91dExvdywgb3V0SGlnaCkpO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xuXG4vLyBgTWF0aC5pYWRkaGAgbWV0aG9kXG4vLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9CcmVuZGFuRWljaC80Mjk0ZDVjMjEyYTZkMjI1NDcwM1xuLy8gVE9ETzogUmVtb3ZlIGZyb20gYGNvcmUtanNANGBcbiQoeyB0YXJnZXQ6ICdNYXRoJywgc3RhdDogdHJ1ZSB9LCB7XG4gIGlhZGRoOiBmdW5jdGlvbiBpYWRkaCh4MCwgeDEsIHkwLCB5MSkge1xuICAgIHZhciAkeDAgPSB4MCA+Pj4gMDtcbiAgICB2YXIgJHgxID0geDEgPj4+IDA7XG4gICAgdmFyICR5MCA9IHkwID4+PiAwO1xuICAgIHJldHVybiAkeDEgKyAoeTEgPj4+IDApICsgKCgkeDAgJiAkeTAgfCAoJHgwIHwgJHkwKSAmIH4oJHgwICsgJHkwID4+PiAwKSkgPj4+IDMxKSB8IDA7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG5cbi8vIGBNYXRoLmltdWxoYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL0JyZW5kYW5FaWNoLzQyOTRkNWMyMTJhNmQyMjU0NzAzXG4vLyBUT0RPOiBSZW1vdmUgZnJvbSBgY29yZS1qc0A0YFxuJCh7IHRhcmdldDogJ01hdGgnLCBzdGF0OiB0cnVlIH0sIHtcbiAgaW11bGg6IGZ1bmN0aW9uIGltdWxoKHUsIHYpIHtcbiAgICB2YXIgVUlOVDE2ID0gMHhGRkZGO1xuICAgIHZhciAkdSA9ICt1O1xuICAgIHZhciAkdiA9ICt2O1xuICAgIHZhciB1MCA9ICR1ICYgVUlOVDE2O1xuICAgIHZhciB2MCA9ICR2ICYgVUlOVDE2O1xuICAgIHZhciB1MSA9ICR1ID4+IDE2O1xuICAgIHZhciB2MSA9ICR2ID4+IDE2O1xuICAgIHZhciB0ID0gKHUxICogdjAgPj4+IDApICsgKHUwICogdjAgPj4+IDE2KTtcbiAgICByZXR1cm4gdTEgKiB2MSArICh0ID4+IDE2KSArICgodTAgKiB2MSA+Pj4gMCkgKyAodCAmIFVJTlQxNikgPj4gMTYpO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xuXG4vLyBgTWF0aC5pc3ViaGAgbWV0aG9kXG4vLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9CcmVuZGFuRWljaC80Mjk0ZDVjMjEyYTZkMjI1NDcwM1xuLy8gVE9ETzogUmVtb3ZlIGZyb20gYGNvcmUtanNANGBcbiQoeyB0YXJnZXQ6ICdNYXRoJywgc3RhdDogdHJ1ZSB9LCB7XG4gIGlzdWJoOiBmdW5jdGlvbiBpc3ViaCh4MCwgeDEsIHkwLCB5MSkge1xuICAgIHZhciAkeDAgPSB4MCA+Pj4gMDtcbiAgICB2YXIgJHgxID0geDEgPj4+IDA7XG4gICAgdmFyICR5MCA9IHkwID4+PiAwO1xuICAgIHJldHVybiAkeDEgLSAoeTEgPj4+IDApIC0gKCh+JHgwICYgJHkwIHwgfigkeDAgXiAkeTApICYgJHgwIC0gJHkwID4+PiAwKSA+Pj4gMzEpIHwgMDtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcblxuLy8gYE1hdGguUkFEX1BFUl9ERUdgIGNvbnN0YW50XG4vLyBodHRwczovL3J3YWxkcm9uLmdpdGh1Yi5pby9wcm9wb3NhbC1tYXRoLWV4dGVuc2lvbnMvXG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUgfSwge1xuICBSQURfUEVSX0RFRzogMTgwIC8gTWF0aC5QSVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcblxudmFyIERFR19QRVJfUkFEID0gTWF0aC5QSSAvIDE4MDtcblxuLy8gYE1hdGgucmFkaWFuc2AgbWV0aG9kXG4vLyBodHRwczovL3J3YWxkcm9uLmdpdGh1Yi5pby9wcm9wb3NhbC1tYXRoLWV4dGVuc2lvbnMvXG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUgfSwge1xuICByYWRpYW5zOiBmdW5jdGlvbiByYWRpYW5zKGRlZ3JlZXMpIHtcbiAgICByZXR1cm4gZGVncmVlcyAqIERFR19QRVJfUkFEO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIHNjYWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL21hdGgtc2NhbGUnKTtcblxuLy8gYE1hdGguc2NhbGVgIG1ldGhvZFxuLy8gaHR0cHM6Ly9yd2FsZHJvbi5naXRodWIuaW8vcHJvcG9zYWwtbWF0aC1leHRlbnNpb25zL1xuJCh7IHRhcmdldDogJ01hdGgnLCBzdGF0OiB0cnVlIH0sIHtcbiAgc2NhbGU6IHNjYWxlXG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIG51bWJlcklzRmluaXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL251bWJlci1pcy1maW5pdGUnKTtcbnZhciBjcmVhdGVJdGVyYXRvckNvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1pdGVyYXRvci1jb25zdHJ1Y3RvcicpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcblxudmFyIFNFRURFRF9SQU5ET00gPSAnU2VlZGVkIFJhbmRvbSc7XG52YXIgU0VFREVEX1JBTkRPTV9HRU5FUkFUT1IgPSBTRUVERURfUkFORE9NICsgJyBHZW5lcmF0b3InO1xudmFyIHNldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLnNldDtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXR0ZXJGb3IoU0VFREVEX1JBTkRPTV9HRU5FUkFUT1IpO1xudmFyIFNFRURfVFlQRV9FUlJPUiA9ICdNYXRoLnNlZWRlZFBSTkcoKSBhcmd1bWVudCBzaG91bGQgaGF2ZSBhIFwic2VlZFwiIGZpZWxkIHdpdGggYSBmaW5pdGUgdmFsdWUuJztcblxudmFyICRTZWVkZWRSYW5kb21HZW5lcmF0b3IgPSBjcmVhdGVJdGVyYXRvckNvbnN0cnVjdG9yKGZ1bmN0aW9uIFNlZWRlZFJhbmRvbUdlbmVyYXRvcihzZWVkKSB7XG4gIHNldEludGVybmFsU3RhdGUodGhpcywge1xuICAgIHR5cGU6IFNFRURFRF9SQU5ET01fR0VORVJBVE9SLFxuICAgIHNlZWQ6IHNlZWQgJSAyMTQ3NDgzNjQ3XG4gIH0pO1xufSwgU0VFREVEX1JBTkRPTSwgZnVuY3Rpb24gbmV4dCgpIHtcbiAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKTtcbiAgdmFyIHNlZWQgPSBzdGF0ZS5zZWVkID0gKHN0YXRlLnNlZWQgKiAxMTAzNTE1MjQ1ICsgMTIzNDUpICUgMjE0NzQ4MzY0NztcbiAgcmV0dXJuIHsgdmFsdWU6IChzZWVkICYgMTA3Mzc0MTgyMykgLyAxMDczNzQxODIzLCBkb25lOiBmYWxzZSB9O1xufSk7XG5cbi8vIGBNYXRoLnNlZWRlZFBSTkdgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtc2VlZGVkLXJhbmRvbVxuLy8gYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtc2VlZGVkLXJhbmRvbS9ibG9iLzc4YjgyNTg4MzViNTdmYzIxMDBkMDc2MTUxYWI1MDZiYzMyMDJhZTYvZGVtby5odG1sXG4kKHsgdGFyZ2V0OiAnTWF0aCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogdHJ1ZSB9LCB7XG4gIHNlZWRlZFBSTkc6IGZ1bmN0aW9uIHNlZWRlZFBSTkcoaXQpIHtcbiAgICB2YXIgc2VlZCA9IGFuT2JqZWN0KGl0KS5zZWVkO1xuICAgIGlmICghbnVtYmVySXNGaW5pdGUoc2VlZCkpIHRocm93IFR5cGVFcnJvcihTRUVEX1RZUEVfRVJST1IpO1xuICAgIHJldHVybiBuZXcgJFNlZWRlZFJhbmRvbUdlbmVyYXRvcihzZWVkKTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcblxuLy8gYE1hdGguc2lnbmJpdGAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1NYXRoLnNpZ25iaXRcbiQoeyB0YXJnZXQ6ICdNYXRoJywgc3RhdDogdHJ1ZSB9LCB7XG4gIHNpZ25iaXQ6IGZ1bmN0aW9uIHNpZ25iaXQoeCkge1xuICAgIHJldHVybiAoeCA9ICt4KSA9PSB4ICYmIHggPT0gMCA/IDEgLyB4ID09IC1JbmZpbml0eSA6IHggPCAwO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xuXG4vLyBgTWF0aC51bXVsaGAgbWV0aG9kXG4vLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9CcmVuZGFuRWljaC80Mjk0ZDVjMjEyYTZkMjI1NDcwM1xuLy8gVE9ETzogUmVtb3ZlIGZyb20gYGNvcmUtanNANGBcbiQoeyB0YXJnZXQ6ICdNYXRoJywgc3RhdDogdHJ1ZSB9LCB7XG4gIHVtdWxoOiBmdW5jdGlvbiB1bXVsaCh1LCB2KSB7XG4gICAgdmFyIFVJTlQxNiA9IDB4RkZGRjtcbiAgICB2YXIgJHUgPSArdTtcbiAgICB2YXIgJHYgPSArdjtcbiAgICB2YXIgdTAgPSAkdSAmIFVJTlQxNjtcbiAgICB2YXIgdjAgPSAkdiAmIFVJTlQxNjtcbiAgICB2YXIgdTEgPSAkdSA+Pj4gMTY7XG4gICAgdmFyIHYxID0gJHYgPj4+IDE2O1xuICAgIHZhciB0ID0gKHUxICogdjAgPj4+IDApICsgKHUwICogdjAgPj4+IDE2KTtcbiAgICByZXR1cm4gdTEgKiB2MSArICh0ID4+PiAxNikgKyAoKHUwICogdjEgPj4+IDApICsgKHQgJiBVSU5UMTYpID4+PiAxNik7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdG9JbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXInKTtcbnZhciBwYXJzZUludCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9udW1iZXItcGFyc2UtaW50Jyk7XG5cbnZhciBJTlZBTElEX05VTUJFUl9SRVBSRVNFTlRBVElPTiA9ICdJbnZhbGlkIG51bWJlciByZXByZXNlbnRhdGlvbic7XG52YXIgSU5WQUxJRF9SQURJWCA9ICdJbnZhbGlkIHJhZGl4JztcbnZhciB2YWxpZCA9IC9eW1xcZGEtel0rJC87XG5cbi8vIGBOdW1iZXIuZnJvbVN0cmluZ2AgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1udW1iZXItZnJvbXN0cmluZ1xuJCh7IHRhcmdldDogJ051bWJlcicsIHN0YXQ6IHRydWUgfSwge1xuICBmcm9tU3RyaW5nOiBmdW5jdGlvbiBmcm9tU3RyaW5nKHN0cmluZywgcmFkaXgpIHtcbiAgICB2YXIgc2lnbiA9IDE7XG4gICAgdmFyIFIsIG1hdGhOdW07XG4gICAgaWYgKHR5cGVvZiBzdHJpbmcgIT0gJ3N0cmluZycpIHRocm93IFR5cGVFcnJvcihJTlZBTElEX05VTUJFUl9SRVBSRVNFTlRBVElPTik7XG4gICAgaWYgKCFzdHJpbmcubGVuZ3RoKSB0aHJvdyBTeW50YXhFcnJvcihJTlZBTElEX05VTUJFUl9SRVBSRVNFTlRBVElPTik7XG4gICAgaWYgKHN0cmluZy5jaGFyQXQoMCkgPT0gJy0nKSB7XG4gICAgICBzaWduID0gLTE7XG4gICAgICBzdHJpbmcgPSBzdHJpbmcuc2xpY2UoMSk7XG4gICAgICBpZiAoIXN0cmluZy5sZW5ndGgpIHRocm93IFN5bnRheEVycm9yKElOVkFMSURfTlVNQkVSX1JFUFJFU0VOVEFUSU9OKTtcbiAgICB9XG4gICAgUiA9IHJhZGl4ID09PSB1bmRlZmluZWQgPyAxMCA6IHRvSW50ZWdlcihyYWRpeCk7XG4gICAgaWYgKFIgPCAyIHx8IFIgPiAzNikgdGhyb3cgUmFuZ2VFcnJvcihJTlZBTElEX1JBRElYKTtcbiAgICBpZiAoIXZhbGlkLnRlc3Qoc3RyaW5nKSB8fCAobWF0aE51bSA9IHBhcnNlSW50KHN0cmluZywgUikpLnRvU3RyaW5nKFIpICE9PSBzdHJpbmcpIHtcbiAgICAgIHRocm93IFN5bnRheEVycm9yKElOVkFMSURfTlVNQkVSX1JFUFJFU0VOVEFUSU9OKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpZ24gKiBtYXRoTnVtO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIE9iamVjdEl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1pdGVyYXRvcicpO1xuXG4vLyBgT2JqZWN0Lml0ZXJhdGVFbnRyaWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLW9iamVjdC1pdGVyYXRpb25cbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlIH0sIHtcbiAgaXRlcmF0ZUVudHJpZXM6IGZ1bmN0aW9uIGl0ZXJhdGVFbnRyaWVzKG9iamVjdCkge1xuICAgIHJldHVybiBuZXcgT2JqZWN0SXRlcmF0b3Iob2JqZWN0LCAnZW50cmllcycpO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIE9iamVjdEl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1pdGVyYXRvcicpO1xuXG4vLyBgT2JqZWN0Lml0ZXJhdGVLZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLW9iamVjdC1pdGVyYXRpb25cbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlIH0sIHtcbiAgaXRlcmF0ZUtleXM6IGZ1bmN0aW9uIGl0ZXJhdGVLZXlzKG9iamVjdCkge1xuICAgIHJldHVybiBuZXcgT2JqZWN0SXRlcmF0b3Iob2JqZWN0LCAna2V5cycpO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIE9iamVjdEl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1pdGVyYXRvcicpO1xuXG4vLyBgT2JqZWN0Lml0ZXJhdGVWYWx1ZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtb2JqZWN0LWl0ZXJhdGlvblxuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUgfSwge1xuICBpdGVyYXRlVmFsdWVzOiBmdW5jdGlvbiBpdGVyYXRlVmFsdWVzKG9iamVjdCkge1xuICAgIHJldHVybiBuZXcgT2JqZWN0SXRlcmF0b3Iob2JqZWN0LCAndmFsdWVzJyk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtb2JzZXJ2YWJsZVxudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBzZXRTcGVjaWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC1zcGVjaWVzJyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBhbkluc3RhbmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLWluc3RhbmNlJyk7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIHJlZGVmaW5lQWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lLWFsbCcpO1xudmFyIGdldEl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1pdGVyYXRvcicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xudmFyIGhvc3RSZXBvcnRFcnJvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaG9zdC1yZXBvcnQtZXJyb3JzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xuXG52YXIgT0JTRVJWQUJMRSA9IHdlbGxLbm93blN5bWJvbCgnb2JzZXJ2YWJsZScpO1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldDtcbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG5cbnZhciBnZXRNZXRob2QgPSBmdW5jdGlvbiAoZm4pIHtcbiAgcmV0dXJuIGZuID09IG51bGwgPyB1bmRlZmluZWQgOiBhRnVuY3Rpb24oZm4pO1xufTtcblxudmFyIGNsZWFudXBTdWJzY3JpcHRpb24gPSBmdW5jdGlvbiAoc3Vic2NyaXB0aW9uU3RhdGUpIHtcbiAgdmFyIGNsZWFudXAgPSBzdWJzY3JpcHRpb25TdGF0ZS5jbGVhbnVwO1xuICBpZiAoY2xlYW51cCkge1xuICAgIHN1YnNjcmlwdGlvblN0YXRlLmNsZWFudXAgPSB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGNsZWFudXAoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaG9zdFJlcG9ydEVycm9ycyhlcnJvcik7XG4gICAgfVxuICB9XG59O1xuXG52YXIgc3Vic2NyaXB0aW9uQ2xvc2VkID0gZnVuY3Rpb24gKHN1YnNjcmlwdGlvblN0YXRlKSB7XG4gIHJldHVybiBzdWJzY3JpcHRpb25TdGF0ZS5vYnNlcnZlciA9PT0gdW5kZWZpbmVkO1xufTtcblxudmFyIGNsb3NlID0gZnVuY3Rpb24gKHN1YnNjcmlwdGlvbiwgc3Vic2NyaXB0aW9uU3RhdGUpIHtcbiAgaWYgKCFERVNDUklQVE9SUykge1xuICAgIHN1YnNjcmlwdGlvbi5jbG9zZWQgPSB0cnVlO1xuICAgIHZhciBzdWJzY3JpcHRpb25PYnNlcnZlciA9IHN1YnNjcmlwdGlvblN0YXRlLnN1YnNjcmlwdGlvbk9ic2VydmVyO1xuICAgIGlmIChzdWJzY3JpcHRpb25PYnNlcnZlcikgc3Vic2NyaXB0aW9uT2JzZXJ2ZXIuY2xvc2VkID0gdHJ1ZTtcbiAgfSBzdWJzY3JpcHRpb25TdGF0ZS5vYnNlcnZlciA9IHVuZGVmaW5lZDtcbn07XG5cbnZhciBTdWJzY3JpcHRpb24gPSBmdW5jdGlvbiAob2JzZXJ2ZXIsIHN1YnNjcmliZXIpIHtcbiAgdmFyIHN1YnNjcmlwdGlvblN0YXRlID0gc2V0SW50ZXJuYWxTdGF0ZSh0aGlzLCB7XG4gICAgY2xlYW51cDogdW5kZWZpbmVkLFxuICAgIG9ic2VydmVyOiBhbk9iamVjdChvYnNlcnZlciksXG4gICAgc3Vic2NyaXB0aW9uT2JzZXJ2ZXI6IHVuZGVmaW5lZFxuICB9KTtcbiAgdmFyIHN0YXJ0O1xuICBpZiAoIURFU0NSSVBUT1JTKSB0aGlzLmNsb3NlZCA9IGZhbHNlO1xuICB0cnkge1xuICAgIGlmIChzdGFydCA9IGdldE1ldGhvZChvYnNlcnZlci5zdGFydCkpIHN0YXJ0LmNhbGwob2JzZXJ2ZXIsIHRoaXMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGhvc3RSZXBvcnRFcnJvcnMoZXJyb3IpO1xuICB9XG4gIGlmIChzdWJzY3JpcHRpb25DbG9zZWQoc3Vic2NyaXB0aW9uU3RhdGUpKSByZXR1cm47XG4gIHZhciBzdWJzY3JpcHRpb25PYnNlcnZlciA9IHN1YnNjcmlwdGlvblN0YXRlLnN1YnNjcmlwdGlvbk9ic2VydmVyID0gbmV3IFN1YnNjcmlwdGlvbk9ic2VydmVyKHRoaXMpO1xuICB0cnkge1xuICAgIHZhciBjbGVhbnVwID0gc3Vic2NyaWJlcihzdWJzY3JpcHRpb25PYnNlcnZlcik7XG4gICAgdmFyIHN1YnNjcmlwdGlvbiA9IGNsZWFudXA7XG4gICAgaWYgKGNsZWFudXAgIT0gbnVsbCkgc3Vic2NyaXB0aW9uU3RhdGUuY2xlYW51cCA9IHR5cGVvZiBjbGVhbnVwLnVuc3Vic2NyaWJlID09PSAnZnVuY3Rpb24nXG4gICAgICA/IGZ1bmN0aW9uICgpIHsgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7IH1cbiAgICAgIDogYUZ1bmN0aW9uKGNsZWFudXApO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHN1YnNjcmlwdGlvbk9ic2VydmVyLmVycm9yKGVycm9yKTtcbiAgICByZXR1cm47XG4gIH0gaWYgKHN1YnNjcmlwdGlvbkNsb3NlZChzdWJzY3JpcHRpb25TdGF0ZSkpIGNsZWFudXBTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uU3RhdGUpO1xufTtcblxuU3Vic2NyaXB0aW9uLnByb3RvdHlwZSA9IHJlZGVmaW5lQWxsKHt9LCB7XG4gIHVuc3Vic2NyaWJlOiBmdW5jdGlvbiB1bnN1YnNjcmliZSgpIHtcbiAgICB2YXIgc3Vic2NyaXB0aW9uU3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpO1xuICAgIGlmICghc3Vic2NyaXB0aW9uQ2xvc2VkKHN1YnNjcmlwdGlvblN0YXRlKSkge1xuICAgICAgY2xvc2UodGhpcywgc3Vic2NyaXB0aW9uU3RhdGUpO1xuICAgICAgY2xlYW51cFN1YnNjcmlwdGlvbihzdWJzY3JpcHRpb25TdGF0ZSk7XG4gICAgfVxuICB9XG59KTtcblxuaWYgKERFU0NSSVBUT1JTKSBkZWZpbmVQcm9wZXJ0eShTdWJzY3JpcHRpb24ucHJvdG90eXBlLCAnY2xvc2VkJywge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBzdWJzY3JpcHRpb25DbG9zZWQoZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKSk7XG4gIH1cbn0pO1xuXG52YXIgU3Vic2NyaXB0aW9uT2JzZXJ2ZXIgPSBmdW5jdGlvbiAoc3Vic2NyaXB0aW9uKSB7XG4gIHNldEludGVybmFsU3RhdGUodGhpcywgeyBzdWJzY3JpcHRpb246IHN1YnNjcmlwdGlvbiB9KTtcbiAgaWYgKCFERVNDUklQVE9SUykgdGhpcy5jbG9zZWQgPSBmYWxzZTtcbn07XG5cblN1YnNjcmlwdGlvbk9ic2VydmVyLnByb3RvdHlwZSA9IHJlZGVmaW5lQWxsKHt9LCB7XG4gIG5leHQ6IGZ1bmN0aW9uIG5leHQodmFsdWUpIHtcbiAgICB2YXIgc3Vic2NyaXB0aW9uU3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKGdldEludGVybmFsU3RhdGUodGhpcykuc3Vic2NyaXB0aW9uKTtcbiAgICBpZiAoIXN1YnNjcmlwdGlvbkNsb3NlZChzdWJzY3JpcHRpb25TdGF0ZSkpIHtcbiAgICAgIHZhciBvYnNlcnZlciA9IHN1YnNjcmlwdGlvblN0YXRlLm9ic2VydmVyO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIG5leHRNZXRob2QgPSBnZXRNZXRob2Qob2JzZXJ2ZXIubmV4dCk7XG4gICAgICAgIGlmIChuZXh0TWV0aG9kKSBuZXh0TWV0aG9kLmNhbGwob2JzZXJ2ZXIsIHZhbHVlKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGhvc3RSZXBvcnRFcnJvcnMoZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfSxcbiAgZXJyb3I6IGZ1bmN0aW9uIGVycm9yKHZhbHVlKSB7XG4gICAgdmFyIHN1YnNjcmlwdGlvbiA9IGdldEludGVybmFsU3RhdGUodGhpcykuc3Vic2NyaXB0aW9uO1xuICAgIHZhciBzdWJzY3JpcHRpb25TdGF0ZSA9IGdldEludGVybmFsU3RhdGUoc3Vic2NyaXB0aW9uKTtcbiAgICBpZiAoIXN1YnNjcmlwdGlvbkNsb3NlZChzdWJzY3JpcHRpb25TdGF0ZSkpIHtcbiAgICAgIHZhciBvYnNlcnZlciA9IHN1YnNjcmlwdGlvblN0YXRlLm9ic2VydmVyO1xuICAgICAgY2xvc2Uoc3Vic2NyaXB0aW9uLCBzdWJzY3JpcHRpb25TdGF0ZSk7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgZXJyb3JNZXRob2QgPSBnZXRNZXRob2Qob2JzZXJ2ZXIuZXJyb3IpO1xuICAgICAgICBpZiAoZXJyb3JNZXRob2QpIGVycm9yTWV0aG9kLmNhbGwob2JzZXJ2ZXIsIHZhbHVlKTtcbiAgICAgICAgZWxzZSBob3N0UmVwb3J0RXJyb3JzKHZhbHVlKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBob3N0UmVwb3J0RXJyb3JzKGVycik7XG4gICAgICB9IGNsZWFudXBTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uU3RhdGUpO1xuICAgIH1cbiAgfSxcbiAgY29tcGxldGU6IGZ1bmN0aW9uIGNvbXBsZXRlKCkge1xuICAgIHZhciBzdWJzY3JpcHRpb24gPSBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpLnN1YnNjcmlwdGlvbjtcbiAgICB2YXIgc3Vic2NyaXB0aW9uU3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHN1YnNjcmlwdGlvbik7XG4gICAgaWYgKCFzdWJzY3JpcHRpb25DbG9zZWQoc3Vic2NyaXB0aW9uU3RhdGUpKSB7XG4gICAgICB2YXIgb2JzZXJ2ZXIgPSBzdWJzY3JpcHRpb25TdGF0ZS5vYnNlcnZlcjtcbiAgICAgIGNsb3NlKHN1YnNjcmlwdGlvbiwgc3Vic2NyaXB0aW9uU3RhdGUpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIGNvbXBsZXRlTWV0aG9kID0gZ2V0TWV0aG9kKG9ic2VydmVyLmNvbXBsZXRlKTtcbiAgICAgICAgaWYgKGNvbXBsZXRlTWV0aG9kKSBjb21wbGV0ZU1ldGhvZC5jYWxsKG9ic2VydmVyKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGhvc3RSZXBvcnRFcnJvcnMoZXJyb3IpO1xuICAgICAgfSBjbGVhbnVwU3Vic2NyaXB0aW9uKHN1YnNjcmlwdGlvblN0YXRlKTtcbiAgICB9XG4gIH1cbn0pO1xuXG5pZiAoREVTQ1JJUFRPUlMpIGRlZmluZVByb3BlcnR5KFN1YnNjcmlwdGlvbk9ic2VydmVyLnByb3RvdHlwZSwgJ2Nsb3NlZCcsIHtcbiAgY29uZmlndXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gc3Vic2NyaXB0aW9uQ2xvc2VkKGdldEludGVybmFsU3RhdGUoZ2V0SW50ZXJuYWxTdGF0ZSh0aGlzKS5zdWJzY3JpcHRpb24pKTtcbiAgfVxufSk7XG5cbnZhciAkT2JzZXJ2YWJsZSA9IGZ1bmN0aW9uIE9ic2VydmFibGUoc3Vic2NyaWJlcikge1xuICBhbkluc3RhbmNlKHRoaXMsICRPYnNlcnZhYmxlLCAnT2JzZXJ2YWJsZScpO1xuICBzZXRJbnRlcm5hbFN0YXRlKHRoaXMsIHsgc3Vic2NyaWJlcjogYUZ1bmN0aW9uKHN1YnNjcmliZXIpIH0pO1xufTtcblxucmVkZWZpbmVBbGwoJE9ic2VydmFibGUucHJvdG90eXBlLCB7XG4gIHN1YnNjcmliZTogZnVuY3Rpb24gc3Vic2NyaWJlKG9ic2VydmVyKSB7XG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb24odHlwZW9mIG9ic2VydmVyID09PSAnZnVuY3Rpb24nID8ge1xuICAgICAgbmV4dDogb2JzZXJ2ZXIsXG4gICAgICBlcnJvcjogbGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCxcbiAgICAgIGNvbXBsZXRlOiBsZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkXG4gICAgfSA6IGlzT2JqZWN0KG9ic2VydmVyKSA/IG9ic2VydmVyIDoge30sIGdldEludGVybmFsU3RhdGUodGhpcykuc3Vic2NyaWJlcik7XG4gIH1cbn0pO1xuXG5yZWRlZmluZUFsbCgkT2JzZXJ2YWJsZSwge1xuICBmcm9tOiBmdW5jdGlvbiBmcm9tKHgpIHtcbiAgICB2YXIgQyA9IHR5cGVvZiB0aGlzID09PSAnZnVuY3Rpb24nID8gdGhpcyA6ICRPYnNlcnZhYmxlO1xuICAgIHZhciBvYnNlcnZhYmxlTWV0aG9kID0gZ2V0TWV0aG9kKGFuT2JqZWN0KHgpW09CU0VSVkFCTEVdKTtcbiAgICBpZiAob2JzZXJ2YWJsZU1ldGhvZCkge1xuICAgICAgdmFyIG9ic2VydmFibGUgPSBhbk9iamVjdChvYnNlcnZhYmxlTWV0aG9kLmNhbGwoeCkpO1xuICAgICAgcmV0dXJuIG9ic2VydmFibGUuY29uc3RydWN0b3IgPT09IEMgPyBvYnNlcnZhYmxlIDogbmV3IEMoZnVuY3Rpb24gKG9ic2VydmVyKSB7XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlLnN1YnNjcmliZShvYnNlcnZlcik7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdmFyIGl0ZXJhdG9yID0gZ2V0SXRlcmF0b3IoeCk7XG4gICAgcmV0dXJuIG5ldyBDKGZ1bmN0aW9uIChvYnNlcnZlcikge1xuICAgICAgaXRlcmF0ZShpdGVyYXRvciwgZnVuY3Rpb24gKGl0KSB7XG4gICAgICAgIG9ic2VydmVyLm5leHQoaXQpO1xuICAgICAgICBpZiAob2JzZXJ2ZXIuY2xvc2VkKSByZXR1cm4gaXRlcmF0ZS5zdG9wKCk7XG4gICAgICB9LCB1bmRlZmluZWQsIGZhbHNlLCB0cnVlKTtcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH0sXG4gIG9mOiBmdW5jdGlvbiBvZigpIHtcbiAgICB2YXIgQyA9IHR5cGVvZiB0aGlzID09PSAnZnVuY3Rpb24nID8gdGhpcyA6ICRPYnNlcnZhYmxlO1xuICAgIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBpdGVtcyA9IG5ldyBBcnJheShsZW5ndGgpO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSBpdGVtc1tpbmRleF0gPSBhcmd1bWVudHNbaW5kZXgrK107XG4gICAgcmV0dXJuIG5ldyBDKGZ1bmN0aW9uIChvYnNlcnZlcikge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICBvYnNlcnZlci5uZXh0KGl0ZW1zW2ldKTtcbiAgICAgICAgaWYgKG9ic2VydmVyLmNsb3NlZCkgcmV0dXJuO1xuICAgICAgfSBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgIH0pO1xuICB9XG59KTtcblxuY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KCRPYnNlcnZhYmxlLnByb3RvdHlwZSwgT0JTRVJWQUJMRSwgZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfSk7XG5cbiQoeyBnbG9iYWw6IHRydWUgfSwge1xuICBPYnNlcnZhYmxlOiAkT2JzZXJ2YWJsZVxufSk7XG5cbnNldFNwZWNpZXMoJ09ic2VydmFibGUnKTtcbiIsIi8vIFRPRE86IFJlbW92ZSBmcm9tIGBjb3JlLWpzQDRgXG5yZXF1aXJlKCcuL2VzLnByb21pc2UuYWxsLXNldHRsZWQuanMnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBuZXdQcm9taXNlQ2FwYWJpbGl0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uZXctcHJvbWlzZS1jYXBhYmlsaXR5Jyk7XG52YXIgcGVyZm9ybSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wZXJmb3JtJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG5cbnZhciBQUk9NSVNFX0FOWV9FUlJPUiA9ICdObyBvbmUgcHJvbWlzZSByZXNvbHZlZCc7XG5cbi8vIGBQcm9taXNlLmFueWAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1wcm9taXNlLWFueVxuJCh7IHRhcmdldDogJ1Byb21pc2UnLCBzdGF0OiB0cnVlIH0sIHtcbiAgYW55OiBmdW5jdGlvbiBhbnkoaXRlcmFibGUpIHtcbiAgICB2YXIgQyA9IHRoaXM7XG4gICAgdmFyIGNhcGFiaWxpdHkgPSBuZXdQcm9taXNlQ2FwYWJpbGl0eU1vZHVsZS5mKEMpO1xuICAgIHZhciByZXNvbHZlID0gY2FwYWJpbGl0eS5yZXNvbHZlO1xuICAgIHZhciByZWplY3QgPSBjYXBhYmlsaXR5LnJlamVjdDtcbiAgICB2YXIgcmVzdWx0ID0gcGVyZm9ybShmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgcHJvbWlzZVJlc29sdmUgPSBhRnVuY3Rpb24oQy5yZXNvbHZlKTtcbiAgICAgIHZhciBlcnJvcnMgPSBbXTtcbiAgICAgIHZhciBjb3VudGVyID0gMDtcbiAgICAgIHZhciByZW1haW5pbmcgPSAxO1xuICAgICAgdmFyIGFscmVhZHlSZXNvbHZlZCA9IGZhbHNlO1xuICAgICAgaXRlcmF0ZShpdGVyYWJsZSwgZnVuY3Rpb24gKHByb21pc2UpIHtcbiAgICAgICAgdmFyIGluZGV4ID0gY291bnRlcisrO1xuICAgICAgICB2YXIgYWxyZWFkeVJlamVjdGVkID0gZmFsc2U7XG4gICAgICAgIGVycm9ycy5wdXNoKHVuZGVmaW5lZCk7XG4gICAgICAgIHJlbWFpbmluZysrO1xuICAgICAgICBwcm9taXNlUmVzb2x2ZS5jYWxsKEMsIHByb21pc2UpLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgaWYgKGFscmVhZHlSZWplY3RlZCB8fCBhbHJlYWR5UmVzb2x2ZWQpIHJldHVybjtcbiAgICAgICAgICBhbHJlYWR5UmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgICB9LCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgIGlmIChhbHJlYWR5UmVqZWN0ZWQgfHwgYWxyZWFkeVJlc29sdmVkKSByZXR1cm47XG4gICAgICAgICAgYWxyZWFkeVJlamVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICBlcnJvcnNbaW5kZXhdID0gZTtcbiAgICAgICAgICAtLXJlbWFpbmluZyB8fCByZWplY3QobmV3IChnZXRCdWlsdEluKCdBZ2dyZWdhdGVFcnJvcicpKShlcnJvcnMsIFBST01JU0VfQU5ZX0VSUk9SKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICAtLXJlbWFpbmluZyB8fCByZWplY3QobmV3IChnZXRCdWlsdEluKCdBZ2dyZWdhdGVFcnJvcicpKShlcnJvcnMsIFBST01JU0VfQU5ZX0VSUk9SKSk7XG4gICAgfSk7XG4gICAgaWYgKHJlc3VsdC5lcnJvcikgcmVqZWN0KHJlc3VsdC52YWx1ZSk7XG4gICAgcmV0dXJuIGNhcGFiaWxpdHkucHJvbWlzZTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBuZXdQcm9taXNlQ2FwYWJpbGl0eU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uZXctcHJvbWlzZS1jYXBhYmlsaXR5Jyk7XG52YXIgcGVyZm9ybSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wZXJmb3JtJyk7XG5cbi8vIGBQcm9taXNlLnRyeWAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1wcm9taXNlLXRyeVxuJCh7IHRhcmdldDogJ1Byb21pc2UnLCBzdGF0OiB0cnVlIH0sIHtcbiAgJ3RyeSc6IGZ1bmN0aW9uIChjYWxsYmFja2ZuKSB7XG4gICAgdmFyIHByb21pc2VDYXBhYmlsaXR5ID0gbmV3UHJvbWlzZUNhcGFiaWxpdHlNb2R1bGUuZih0aGlzKTtcbiAgICB2YXIgcmVzdWx0ID0gcGVyZm9ybShjYWxsYmFja2ZuKTtcbiAgICAocmVzdWx0LmVycm9yID8gcHJvbWlzZUNhcGFiaWxpdHkucmVqZWN0IDogcHJvbWlzZUNhcGFiaWxpdHkucmVzb2x2ZSkocmVzdWx0LnZhbHVlKTtcbiAgICByZXR1cm4gcHJvbWlzZUNhcGFiaWxpdHkucHJvbWlzZTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBSZWZsZWN0TWV0YWRhdGFNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVmbGVjdC1tZXRhZGF0YScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG52YXIgdG9NZXRhZGF0YUtleSA9IFJlZmxlY3RNZXRhZGF0YU1vZHVsZS50b0tleTtcbnZhciBvcmRpbmFyeURlZmluZU93bk1ldGFkYXRhID0gUmVmbGVjdE1ldGFkYXRhTW9kdWxlLnNldDtcblxuLy8gYFJlZmxlY3QuZGVmaW5lTWV0YWRhdGFgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3JidWNrdG9uL3JlZmxlY3QtbWV0YWRhdGFcbiQoeyB0YXJnZXQ6ICdSZWZsZWN0Jywgc3RhdDogdHJ1ZSB9LCB7XG4gIGRlZmluZU1ldGFkYXRhOiBmdW5jdGlvbiBkZWZpbmVNZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSwgdGFyZ2V0IC8qICwgdGFyZ2V0S2V5ICovKSB7XG4gICAgdmFyIHRhcmdldEtleSA9IGFyZ3VtZW50cy5sZW5ndGggPCA0ID8gdW5kZWZpbmVkIDogdG9NZXRhZGF0YUtleShhcmd1bWVudHNbM10pO1xuICAgIG9yZGluYXJ5RGVmaW5lT3duTWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUsIGFuT2JqZWN0KHRhcmdldCksIHRhcmdldEtleSk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgUmVmbGVjdE1ldGFkYXRhTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZmxlY3QtbWV0YWRhdGEnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxudmFyIHRvTWV0YWRhdGFLZXkgPSBSZWZsZWN0TWV0YWRhdGFNb2R1bGUudG9LZXk7XG52YXIgZ2V0T3JDcmVhdGVNZXRhZGF0YU1hcCA9IFJlZmxlY3RNZXRhZGF0YU1vZHVsZS5nZXRNYXA7XG52YXIgc3RvcmUgPSBSZWZsZWN0TWV0YWRhdGFNb2R1bGUuc3RvcmU7XG5cbi8vIGBSZWZsZWN0LmRlbGV0ZU1ldGFkYXRhYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yYnVja3Rvbi9yZWZsZWN0LW1ldGFkYXRhXG4kKHsgdGFyZ2V0OiAnUmVmbGVjdCcsIHN0YXQ6IHRydWUgfSwge1xuICBkZWxldGVNZXRhZGF0YTogZnVuY3Rpb24gZGVsZXRlTWV0YWRhdGEobWV0YWRhdGFLZXksIHRhcmdldCAvKiAsIHRhcmdldEtleSAqLykge1xuICAgIHZhciB0YXJnZXRLZXkgPSBhcmd1bWVudHMubGVuZ3RoIDwgMyA/IHVuZGVmaW5lZCA6IHRvTWV0YWRhdGFLZXkoYXJndW1lbnRzWzJdKTtcbiAgICB2YXIgbWV0YWRhdGFNYXAgPSBnZXRPckNyZWF0ZU1ldGFkYXRhTWFwKGFuT2JqZWN0KHRhcmdldCksIHRhcmdldEtleSwgZmFsc2UpO1xuICAgIGlmIChtZXRhZGF0YU1hcCA9PT0gdW5kZWZpbmVkIHx8ICFtZXRhZGF0YU1hcFsnZGVsZXRlJ10obWV0YWRhdGFLZXkpKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKG1ldGFkYXRhTWFwLnNpemUpIHJldHVybiB0cnVlO1xuICAgIHZhciB0YXJnZXRNZXRhZGF0YSA9IHN0b3JlLmdldCh0YXJnZXQpO1xuICAgIHRhcmdldE1ldGFkYXRhWydkZWxldGUnXSh0YXJnZXRLZXkpO1xuICAgIHJldHVybiAhIXRhcmdldE1ldGFkYXRhLnNpemUgfHwgc3RvcmVbJ2RlbGV0ZSddKHRhcmdldCk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG4vLyBUT0RPOiBpbiBjb3JlLWpzQDQsIG1vdmUgL21vZHVsZXMvIGRlcGVuZGVuY2llcyB0byBwdWJsaWMgZW50cmllcyBmb3IgYmV0dGVyIG9wdGltaXphdGlvbiBieSB0b29scyBsaWtlIGBwcmVzZXQtZW52YFxudmFyIFNldCA9IHJlcXVpcmUoJy4uL21vZHVsZXMvZXMuc2V0Jyk7XG52YXIgUmVmbGVjdE1ldGFkYXRhTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZmxlY3QtbWV0YWRhdGEnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG52YXIgb3JkaW5hcnlPd25NZXRhZGF0YUtleXMgPSBSZWZsZWN0TWV0YWRhdGFNb2R1bGUua2V5cztcbnZhciB0b01ldGFkYXRhS2V5ID0gUmVmbGVjdE1ldGFkYXRhTW9kdWxlLnRvS2V5O1xuXG52YXIgZnJvbSA9IGZ1bmN0aW9uIChpdGVyKSB7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgaXRlcmF0ZShpdGVyLCByZXN1bHQucHVzaCwgcmVzdWx0KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbnZhciBvcmRpbmFyeU1ldGFkYXRhS2V5cyA9IGZ1bmN0aW9uIChPLCBQKSB7XG4gIHZhciBvS2V5cyA9IG9yZGluYXJ5T3duTWV0YWRhdGFLZXlzKE8sIFApO1xuICB2YXIgcGFyZW50ID0gZ2V0UHJvdG90eXBlT2YoTyk7XG4gIGlmIChwYXJlbnQgPT09IG51bGwpIHJldHVybiBvS2V5cztcbiAgdmFyIHBLZXlzID0gb3JkaW5hcnlNZXRhZGF0YUtleXMocGFyZW50LCBQKTtcbiAgcmV0dXJuIHBLZXlzLmxlbmd0aCA/IG9LZXlzLmxlbmd0aCA/IGZyb20obmV3IFNldChvS2V5cy5jb25jYXQocEtleXMpKSkgOiBwS2V5cyA6IG9LZXlzO1xufTtcblxuLy8gYFJlZmxlY3QuZ2V0TWV0YWRhdGFLZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yYnVja3Rvbi9yZWZsZWN0LW1ldGFkYXRhXG4kKHsgdGFyZ2V0OiAnUmVmbGVjdCcsIHN0YXQ6IHRydWUgfSwge1xuICBnZXRNZXRhZGF0YUtleXM6IGZ1bmN0aW9uIGdldE1ldGFkYXRhS2V5cyh0YXJnZXQgLyogLCB0YXJnZXRLZXkgKi8pIHtcbiAgICB2YXIgdGFyZ2V0S2V5ID0gYXJndW1lbnRzLmxlbmd0aCA8IDIgPyB1bmRlZmluZWQgOiB0b01ldGFkYXRhS2V5KGFyZ3VtZW50c1sxXSk7XG4gICAgcmV0dXJuIG9yZGluYXJ5TWV0YWRhdGFLZXlzKGFuT2JqZWN0KHRhcmdldCksIHRhcmdldEtleSk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgUmVmbGVjdE1ldGFkYXRhTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZmxlY3QtbWV0YWRhdGEnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xuXG52YXIgb3JkaW5hcnlIYXNPd25NZXRhZGF0YSA9IFJlZmxlY3RNZXRhZGF0YU1vZHVsZS5oYXM7XG52YXIgb3JkaW5hcnlHZXRPd25NZXRhZGF0YSA9IFJlZmxlY3RNZXRhZGF0YU1vZHVsZS5nZXQ7XG52YXIgdG9NZXRhZGF0YUtleSA9IFJlZmxlY3RNZXRhZGF0YU1vZHVsZS50b0tleTtcblxudmFyIG9yZGluYXJ5R2V0TWV0YWRhdGEgPSBmdW5jdGlvbiAoTWV0YWRhdGFLZXksIE8sIFApIHtcbiAgdmFyIGhhc093biA9IG9yZGluYXJ5SGFzT3duTWV0YWRhdGEoTWV0YWRhdGFLZXksIE8sIFApO1xuICBpZiAoaGFzT3duKSByZXR1cm4gb3JkaW5hcnlHZXRPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCk7XG4gIHZhciBwYXJlbnQgPSBnZXRQcm90b3R5cGVPZihPKTtcbiAgcmV0dXJuIHBhcmVudCAhPT0gbnVsbCA/IG9yZGluYXJ5R2V0TWV0YWRhdGEoTWV0YWRhdGFLZXksIHBhcmVudCwgUCkgOiB1bmRlZmluZWQ7XG59O1xuXG4vLyBgUmVmbGVjdC5nZXRNZXRhZGF0YWAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcmJ1Y2t0b24vcmVmbGVjdC1tZXRhZGF0YVxuJCh7IHRhcmdldDogJ1JlZmxlY3QnLCBzdGF0OiB0cnVlIH0sIHtcbiAgZ2V0TWV0YWRhdGE6IGZ1bmN0aW9uIGdldE1ldGFkYXRhKG1ldGFkYXRhS2V5LCB0YXJnZXQgLyogLCB0YXJnZXRLZXkgKi8pIHtcbiAgICB2YXIgdGFyZ2V0S2V5ID0gYXJndW1lbnRzLmxlbmd0aCA8IDMgPyB1bmRlZmluZWQgOiB0b01ldGFkYXRhS2V5KGFyZ3VtZW50c1syXSk7XG4gICAgcmV0dXJuIG9yZGluYXJ5R2V0TWV0YWRhdGEobWV0YWRhdGFLZXksIGFuT2JqZWN0KHRhcmdldCksIHRhcmdldEtleSk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgUmVmbGVjdE1ldGFkYXRhTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZmxlY3QtbWV0YWRhdGEnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxudmFyIG9yZGluYXJ5T3duTWV0YWRhdGFLZXlzID0gUmVmbGVjdE1ldGFkYXRhTW9kdWxlLmtleXM7XG52YXIgdG9NZXRhZGF0YUtleSA9IFJlZmxlY3RNZXRhZGF0YU1vZHVsZS50b0tleTtcblxuLy8gYFJlZmxlY3QuZ2V0T3duTWV0YWRhdGFLZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yYnVja3Rvbi9yZWZsZWN0LW1ldGFkYXRhXG4kKHsgdGFyZ2V0OiAnUmVmbGVjdCcsIHN0YXQ6IHRydWUgfSwge1xuICBnZXRPd25NZXRhZGF0YUtleXM6IGZ1bmN0aW9uIGdldE93bk1ldGFkYXRhS2V5cyh0YXJnZXQgLyogLCB0YXJnZXRLZXkgKi8pIHtcbiAgICB2YXIgdGFyZ2V0S2V5ID0gYXJndW1lbnRzLmxlbmd0aCA8IDIgPyB1bmRlZmluZWQgOiB0b01ldGFkYXRhS2V5KGFyZ3VtZW50c1sxXSk7XG4gICAgcmV0dXJuIG9yZGluYXJ5T3duTWV0YWRhdGFLZXlzKGFuT2JqZWN0KHRhcmdldCksIHRhcmdldEtleSk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgUmVmbGVjdE1ldGFkYXRhTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZmxlY3QtbWV0YWRhdGEnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxudmFyIG9yZGluYXJ5R2V0T3duTWV0YWRhdGEgPSBSZWZsZWN0TWV0YWRhdGFNb2R1bGUuZ2V0O1xudmFyIHRvTWV0YWRhdGFLZXkgPSBSZWZsZWN0TWV0YWRhdGFNb2R1bGUudG9LZXk7XG5cbi8vIGBSZWZsZWN0LmdldE93bk1ldGFkYXRhYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yYnVja3Rvbi9yZWZsZWN0LW1ldGFkYXRhXG4kKHsgdGFyZ2V0OiAnUmVmbGVjdCcsIHN0YXQ6IHRydWUgfSwge1xuICBnZXRPd25NZXRhZGF0YTogZnVuY3Rpb24gZ2V0T3duTWV0YWRhdGEobWV0YWRhdGFLZXksIHRhcmdldCAvKiAsIHRhcmdldEtleSAqLykge1xuICAgIHZhciB0YXJnZXRLZXkgPSBhcmd1bWVudHMubGVuZ3RoIDwgMyA/IHVuZGVmaW5lZCA6IHRvTWV0YWRhdGFLZXkoYXJndW1lbnRzWzJdKTtcbiAgICByZXR1cm4gb3JkaW5hcnlHZXRPd25NZXRhZGF0YShtZXRhZGF0YUtleSwgYW5PYmplY3QodGFyZ2V0KSwgdGFyZ2V0S2V5KTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBSZWZsZWN0TWV0YWRhdGFNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVmbGVjdC1tZXRhZGF0YScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtcHJvdG90eXBlLW9mJyk7XG5cbnZhciBvcmRpbmFyeUhhc093bk1ldGFkYXRhID0gUmVmbGVjdE1ldGFkYXRhTW9kdWxlLmhhcztcbnZhciB0b01ldGFkYXRhS2V5ID0gUmVmbGVjdE1ldGFkYXRhTW9kdWxlLnRvS2V5O1xuXG52YXIgb3JkaW5hcnlIYXNNZXRhZGF0YSA9IGZ1bmN0aW9uIChNZXRhZGF0YUtleSwgTywgUCkge1xuICB2YXIgaGFzT3duID0gb3JkaW5hcnlIYXNPd25NZXRhZGF0YShNZXRhZGF0YUtleSwgTywgUCk7XG4gIGlmIChoYXNPd24pIHJldHVybiB0cnVlO1xuICB2YXIgcGFyZW50ID0gZ2V0UHJvdG90eXBlT2YoTyk7XG4gIHJldHVybiBwYXJlbnQgIT09IG51bGwgPyBvcmRpbmFyeUhhc01ldGFkYXRhKE1ldGFkYXRhS2V5LCBwYXJlbnQsIFApIDogZmFsc2U7XG59O1xuXG4vLyBgUmVmbGVjdC5oYXNNZXRhZGF0YWAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vcmJ1Y2t0b24vcmVmbGVjdC1tZXRhZGF0YVxuJCh7IHRhcmdldDogJ1JlZmxlY3QnLCBzdGF0OiB0cnVlIH0sIHtcbiAgaGFzTWV0YWRhdGE6IGZ1bmN0aW9uIGhhc01ldGFkYXRhKG1ldGFkYXRhS2V5LCB0YXJnZXQgLyogLCB0YXJnZXRLZXkgKi8pIHtcbiAgICB2YXIgdGFyZ2V0S2V5ID0gYXJndW1lbnRzLmxlbmd0aCA8IDMgPyB1bmRlZmluZWQgOiB0b01ldGFkYXRhS2V5KGFyZ3VtZW50c1syXSk7XG4gICAgcmV0dXJuIG9yZGluYXJ5SGFzTWV0YWRhdGEobWV0YWRhdGFLZXksIGFuT2JqZWN0KHRhcmdldCksIHRhcmdldEtleSk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgUmVmbGVjdE1ldGFkYXRhTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZmxlY3QtbWV0YWRhdGEnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxudmFyIG9yZGluYXJ5SGFzT3duTWV0YWRhdGEgPSBSZWZsZWN0TWV0YWRhdGFNb2R1bGUuaGFzO1xudmFyIHRvTWV0YWRhdGFLZXkgPSBSZWZsZWN0TWV0YWRhdGFNb2R1bGUudG9LZXk7XG5cbi8vIGBSZWZsZWN0Lmhhc093bk1ldGFkYXRhYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9yYnVja3Rvbi9yZWZsZWN0LW1ldGFkYXRhXG4kKHsgdGFyZ2V0OiAnUmVmbGVjdCcsIHN0YXQ6IHRydWUgfSwge1xuICBoYXNPd25NZXRhZGF0YTogZnVuY3Rpb24gaGFzT3duTWV0YWRhdGEobWV0YWRhdGFLZXksIHRhcmdldCAvKiAsIHRhcmdldEtleSAqLykge1xuICAgIHZhciB0YXJnZXRLZXkgPSBhcmd1bWVudHMubGVuZ3RoIDwgMyA/IHVuZGVmaW5lZCA6IHRvTWV0YWRhdGFLZXkoYXJndW1lbnRzWzJdKTtcbiAgICByZXR1cm4gb3JkaW5hcnlIYXNPd25NZXRhZGF0YShtZXRhZGF0YUtleSwgYW5PYmplY3QodGFyZ2V0KSwgdGFyZ2V0S2V5KTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBSZWZsZWN0TWV0YWRhdGFNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVmbGVjdC1tZXRhZGF0YScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xuXG52YXIgdG9NZXRhZGF0YUtleSA9IFJlZmxlY3RNZXRhZGF0YU1vZHVsZS50b0tleTtcbnZhciBvcmRpbmFyeURlZmluZU93bk1ldGFkYXRhID0gUmVmbGVjdE1ldGFkYXRhTW9kdWxlLnNldDtcblxuLy8gYFJlZmxlY3QubWV0YWRhdGFgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3JidWNrdG9uL3JlZmxlY3QtbWV0YWRhdGFcbiQoeyB0YXJnZXQ6ICdSZWZsZWN0Jywgc3RhdDogdHJ1ZSB9LCB7XG4gIG1ldGFkYXRhOiBmdW5jdGlvbiBtZXRhZGF0YShtZXRhZGF0YUtleSwgbWV0YWRhdGFWYWx1ZSkge1xuICAgIHJldHVybiBmdW5jdGlvbiBkZWNvcmF0b3IodGFyZ2V0LCBrZXkpIHtcbiAgICAgIG9yZGluYXJ5RGVmaW5lT3duTWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUsIGFuT2JqZWN0KHRhcmdldCksIHRvTWV0YWRhdGFLZXkoa2V5KSk7XG4gICAgfTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBjb2xsZWN0aW9uQWRkQWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvbGxlY3Rpb24tYWRkLWFsbCcpO1xuXG4vLyBgU2V0LnByb3RvdHlwZS5hZGRBbGxgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtY29sbGVjdGlvbi1tZXRob2RzXG4kKHsgdGFyZ2V0OiAnU2V0JywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUsIGZvcmNlZDogSVNfUFVSRSB9LCB7XG4gIGFkZEFsbDogZnVuY3Rpb24gYWRkQWxsKC8qIC4uLmVsZW1lbnRzICovKSB7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb25BZGRBbGwuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBjb2xsZWN0aW9uRGVsZXRlQWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvbGxlY3Rpb24tZGVsZXRlLWFsbCcpO1xuXG4vLyBgU2V0LnByb3RvdHlwZS5kZWxldGVBbGxgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtY29sbGVjdGlvbi1tZXRob2RzXG4kKHsgdGFyZ2V0OiAnU2V0JywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUsIGZvcmNlZDogSVNfUFVSRSB9LCB7XG4gIGRlbGV0ZUFsbDogZnVuY3Rpb24gZGVsZXRlQWxsKC8qIC4uLmVsZW1lbnRzICovKSB7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb25EZWxldGVBbGwuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgc3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NwZWNpZXMtY29uc3RydWN0b3InKTtcbnZhciBpdGVyYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdGUnKTtcblxuLy8gYFNldC5wcm90b3R5cGUuZGlmZmVyZW5jZWAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1zZXQtbWV0aG9kc1xuJCh7IHRhcmdldDogJ1NldCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICBkaWZmZXJlbmNlOiBmdW5jdGlvbiBkaWZmZXJlbmNlKGl0ZXJhYmxlKSB7XG4gICAgdmFyIHNldCA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBuZXdTZXQgPSBuZXcgKHNwZWNpZXNDb25zdHJ1Y3RvcihzZXQsIGdldEJ1aWx0SW4oJ1NldCcpKSkoc2V0KTtcbiAgICB2YXIgcmVtb3ZlciA9IGFGdW5jdGlvbihuZXdTZXRbJ2RlbGV0ZSddKTtcbiAgICBpdGVyYXRlKGl0ZXJhYmxlLCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIHJlbW92ZXIuY2FsbChuZXdTZXQsIHZhbHVlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3U2V0O1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgZ2V0U2V0SXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LXNldC1pdGVyYXRvcicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG4vLyBgU2V0LnByb3RvdHlwZS5ldmVyeWAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1jb2xsZWN0aW9uLW1ldGhvZHNcbiQoeyB0YXJnZXQ6ICdTZXQnLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSwgZm9yY2VkOiBJU19QVVJFIH0sIHtcbiAgZXZlcnk6IGZ1bmN0aW9uIGV2ZXJ5KGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgdmFyIHNldCA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBpdGVyYXRvciA9IGdldFNldEl0ZXJhdG9yKHNldCk7XG4gICAgdmFyIGJvdW5kRnVuY3Rpb24gPSBiaW5kKGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkLCAzKTtcbiAgICByZXR1cm4gIWl0ZXJhdGUoaXRlcmF0b3IsIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKCFib3VuZEZ1bmN0aW9uKHZhbHVlLCB2YWx1ZSwgc2V0KSkgcmV0dXJuIGl0ZXJhdGUuc3RvcCgpO1xuICAgIH0sIHVuZGVmaW5lZCwgZmFsc2UsIHRydWUpLnN0b3BwZWQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgc3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NwZWNpZXMtY29uc3RydWN0b3InKTtcbnZhciBnZXRTZXRJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtc2V0LWl0ZXJhdG9yJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG5cbi8vIGBTZXQucHJvdG90eXBlLmZpbHRlcmAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1jb2xsZWN0aW9uLW1ldGhvZHNcbiQoeyB0YXJnZXQ6ICdTZXQnLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSwgZm9yY2VkOiBJU19QVVJFIH0sIHtcbiAgZmlsdGVyOiBmdW5jdGlvbiBmaWx0ZXIoY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgICB2YXIgc2V0ID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIGl0ZXJhdG9yID0gZ2V0U2V0SXRlcmF0b3Ioc2V0KTtcbiAgICB2YXIgYm91bmRGdW5jdGlvbiA9IGJpbmQoY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQsIDMpO1xuICAgIHZhciBuZXdTZXQgPSBuZXcgKHNwZWNpZXNDb25zdHJ1Y3RvcihzZXQsIGdldEJ1aWx0SW4oJ1NldCcpKSkoKTtcbiAgICB2YXIgYWRkZXIgPSBhRnVuY3Rpb24obmV3U2V0LmFkZCk7XG4gICAgaXRlcmF0ZShpdGVyYXRvciwgZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAoYm91bmRGdW5jdGlvbih2YWx1ZSwgdmFsdWUsIHNldCkpIGFkZGVyLmNhbGwobmV3U2V0LCB2YWx1ZSk7XG4gICAgfSwgdW5kZWZpbmVkLCBmYWxzZSwgdHJ1ZSk7XG4gICAgcmV0dXJuIG5ld1NldDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIGdldFNldEl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1zZXQtaXRlcmF0b3InKTtcbnZhciBpdGVyYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdGUnKTtcblxuLy8gYFNldC5wcm90b3R5cGUuZmluZGAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1jb2xsZWN0aW9uLW1ldGhvZHNcbiQoeyB0YXJnZXQ6ICdTZXQnLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSwgZm9yY2VkOiBJU19QVVJFIH0sIHtcbiAgZmluZDogZnVuY3Rpb24gZmluZChjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHZhciBzZXQgPSBhbk9iamVjdCh0aGlzKTtcbiAgICB2YXIgaXRlcmF0b3IgPSBnZXRTZXRJdGVyYXRvcihzZXQpO1xuICAgIHZhciBib3VuZEZ1bmN0aW9uID0gYmluZChjYWxsYmFja2ZuLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCwgMyk7XG4gICAgcmV0dXJuIGl0ZXJhdGUoaXRlcmF0b3IsIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKGJvdW5kRnVuY3Rpb24odmFsdWUsIHZhbHVlLCBzZXQpKSByZXR1cm4gaXRlcmF0ZS5zdG9wKHZhbHVlKTtcbiAgICB9LCB1bmRlZmluZWQsIGZhbHNlLCB0cnVlKS5yZXN1bHQ7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZnJvbSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb2xsZWN0aW9uLWZyb20nKTtcblxuLy8gYFNldC5mcm9tYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vcHJvcG9zYWwtc2V0bWFwLW9mZnJvbS8jc2VjLXNldC5mcm9tXG4kKHsgdGFyZ2V0OiAnU2V0Jywgc3RhdDogdHJ1ZSB9LCB7XG4gIGZyb206IGZyb21cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG5cbi8vIGBTZXQucHJvdG90eXBlLmludGVyc2VjdGlvbmAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1zZXQtbWV0aG9kc1xuJCh7IHRhcmdldDogJ1NldCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICBpbnRlcnNlY3Rpb246IGZ1bmN0aW9uIGludGVyc2VjdGlvbihpdGVyYWJsZSkge1xuICAgIHZhciBzZXQgPSBhbk9iamVjdCh0aGlzKTtcbiAgICB2YXIgbmV3U2V0ID0gbmV3IChzcGVjaWVzQ29uc3RydWN0b3Ioc2V0LCBnZXRCdWlsdEluKCdTZXQnKSkpKCk7XG4gICAgdmFyIGhhc0NoZWNrID0gYUZ1bmN0aW9uKHNldC5oYXMpO1xuICAgIHZhciBhZGRlciA9IGFGdW5jdGlvbihuZXdTZXQuYWRkKTtcbiAgICBpdGVyYXRlKGl0ZXJhYmxlLCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGlmIChoYXNDaGVjay5jYWxsKHNldCwgdmFsdWUpKSBhZGRlci5jYWxsKG5ld1NldCwgdmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdTZXQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBpdGVyYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdGUnKTtcblxuLy8gYFNldC5wcm90b3R5cGUuaXNEaXNqb2ludEZyb21gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9wcm9wb3NhbC1zZXQtbWV0aG9kcy8jU2V0LnByb3RvdHlwZS5pc0Rpc2pvaW50RnJvbVxuJCh7IHRhcmdldDogJ1NldCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICBpc0Rpc2pvaW50RnJvbTogZnVuY3Rpb24gaXNEaXNqb2ludEZyb20oaXRlcmFibGUpIHtcbiAgICB2YXIgc2V0ID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIGhhc0NoZWNrID0gYUZ1bmN0aW9uKHNldC5oYXMpO1xuICAgIHJldHVybiAhaXRlcmF0ZShpdGVyYWJsZSwgZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAoaGFzQ2hlY2suY2FsbChzZXQsIHZhbHVlKSA9PT0gdHJ1ZSkgcmV0dXJuIGl0ZXJhdGUuc3RvcCgpO1xuICAgIH0pLnN0b3BwZWQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIGdldEl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1pdGVyYXRvcicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG4vLyBgU2V0LnByb3RvdHlwZS5pc1N1YnNldE9mYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vcHJvcG9zYWwtc2V0LW1ldGhvZHMvI1NldC5wcm90b3R5cGUuaXNTdWJzZXRPZlxuJCh7IHRhcmdldDogJ1NldCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICBpc1N1YnNldE9mOiBmdW5jdGlvbiBpc1N1YnNldE9mKGl0ZXJhYmxlKSB7XG4gICAgdmFyIGl0ZXJhdG9yID0gZ2V0SXRlcmF0b3IodGhpcyk7XG4gICAgdmFyIG90aGVyU2V0ID0gYW5PYmplY3QoaXRlcmFibGUpO1xuICAgIHZhciBoYXNDaGVjayA9IG90aGVyU2V0LmhhcztcbiAgICBpZiAodHlwZW9mIGhhc0NoZWNrICE9ICdmdW5jdGlvbicpIHtcbiAgICAgIG90aGVyU2V0ID0gbmV3IChnZXRCdWlsdEluKCdTZXQnKSkoaXRlcmFibGUpO1xuICAgICAgaGFzQ2hlY2sgPSBhRnVuY3Rpb24ob3RoZXJTZXQuaGFzKTtcbiAgICB9XG4gICAgcmV0dXJuICFpdGVyYXRlKGl0ZXJhdG9yLCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGlmIChoYXNDaGVjay5jYWxsKG90aGVyU2V0LCB2YWx1ZSkgPT09IGZhbHNlKSByZXR1cm4gaXRlcmF0ZS5zdG9wKCk7XG4gICAgfSwgdW5kZWZpbmVkLCBmYWxzZSwgdHJ1ZSkuc3RvcHBlZDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG4vLyBgU2V0LnByb3RvdHlwZS5pc1N1cGVyc2V0T2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9wcm9wb3NhbC1zZXQtbWV0aG9kcy8jU2V0LnByb3RvdHlwZS5pc1N1cGVyc2V0T2ZcbiQoeyB0YXJnZXQ6ICdTZXQnLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSwgZm9yY2VkOiBJU19QVVJFIH0sIHtcbiAgaXNTdXBlcnNldE9mOiBmdW5jdGlvbiBpc1N1cGVyc2V0T2YoaXRlcmFibGUpIHtcbiAgICB2YXIgc2V0ID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIGhhc0NoZWNrID0gYUZ1bmN0aW9uKHNldC5oYXMpO1xuICAgIHJldHVybiAhaXRlcmF0ZShpdGVyYWJsZSwgZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAoaGFzQ2hlY2suY2FsbChzZXQsIHZhbHVlKSA9PT0gZmFsc2UpIHJldHVybiBpdGVyYXRlLnN0b3AoKTtcbiAgICB9KS5zdG9wcGVkO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGdldFNldEl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1zZXQtaXRlcmF0b3InKTtcbnZhciBpdGVyYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdGUnKTtcblxuLy8gYFNldC5wcm90b3R5cGUuam9pbmAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1jb2xsZWN0aW9uLW1ldGhvZHNcbiQoeyB0YXJnZXQ6ICdTZXQnLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSwgZm9yY2VkOiBJU19QVVJFIH0sIHtcbiAgam9pbjogZnVuY3Rpb24gam9pbihzZXBhcmF0b3IpIHtcbiAgICB2YXIgc2V0ID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIGl0ZXJhdG9yID0gZ2V0U2V0SXRlcmF0b3Ioc2V0KTtcbiAgICB2YXIgc2VwID0gc2VwYXJhdG9yID09PSB1bmRlZmluZWQgPyAnLCcgOiBTdHJpbmcoc2VwYXJhdG9yKTtcbiAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgaXRlcmF0ZShpdGVyYXRvciwgcmVzdWx0LnB1c2gsIHJlc3VsdCwgZmFsc2UsIHRydWUpO1xuICAgIHJldHVybiByZXN1bHQuam9pbihzZXApO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgZ2V0U2V0SXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LXNldC1pdGVyYXRvcicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG4vLyBgU2V0LnByb3RvdHlwZS5tYXBgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtY29sbGVjdGlvbi1tZXRob2RzXG4kKHsgdGFyZ2V0OiAnU2V0JywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUsIGZvcmNlZDogSVNfUFVSRSB9LCB7XG4gIG1hcDogZnVuY3Rpb24gbWFwKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgdmFyIHNldCA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBpdGVyYXRvciA9IGdldFNldEl0ZXJhdG9yKHNldCk7XG4gICAgdmFyIGJvdW5kRnVuY3Rpb24gPSBiaW5kKGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkLCAzKTtcbiAgICB2YXIgbmV3U2V0ID0gbmV3IChzcGVjaWVzQ29uc3RydWN0b3Ioc2V0LCBnZXRCdWlsdEluKCdTZXQnKSkpKCk7XG4gICAgdmFyIGFkZGVyID0gYUZ1bmN0aW9uKG5ld1NldC5hZGQpO1xuICAgIGl0ZXJhdGUoaXRlcmF0b3IsIGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgYWRkZXIuY2FsbChuZXdTZXQsIGJvdW5kRnVuY3Rpb24odmFsdWUsIHZhbHVlLCBzZXQpKTtcbiAgICB9LCB1bmRlZmluZWQsIGZhbHNlLCB0cnVlKTtcbiAgICByZXR1cm4gbmV3U2V0O1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIG9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvbGxlY3Rpb24tb2YnKTtcblxuLy8gYFNldC5vZmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL3Byb3Bvc2FsLXNldG1hcC1vZmZyb20vI3NlYy1zZXQub2ZcbiQoeyB0YXJnZXQ6ICdTZXQnLCBzdGF0OiB0cnVlIH0sIHtcbiAgb2Y6IG9mXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGFGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWZ1bmN0aW9uJyk7XG52YXIgZ2V0U2V0SXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LXNldC1pdGVyYXRvcicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG4vLyBgU2V0LnByb3RvdHlwZS5yZWR1Y2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtY29sbGVjdGlvbi1tZXRob2RzXG4kKHsgdGFyZ2V0OiAnU2V0JywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUsIGZvcmNlZDogSVNfUFVSRSB9LCB7XG4gIHJlZHVjZTogZnVuY3Rpb24gcmVkdWNlKGNhbGxiYWNrZm4gLyogLCBpbml0aWFsVmFsdWUgKi8pIHtcbiAgICB2YXIgc2V0ID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIGl0ZXJhdG9yID0gZ2V0U2V0SXRlcmF0b3Ioc2V0KTtcbiAgICB2YXIgbm9Jbml0aWFsID0gYXJndW1lbnRzLmxlbmd0aCA8IDI7XG4gICAgdmFyIGFjY3VtdWxhdG9yID0gbm9Jbml0aWFsID8gdW5kZWZpbmVkIDogYXJndW1lbnRzWzFdO1xuICAgIGFGdW5jdGlvbihjYWxsYmFja2ZuKTtcbiAgICBpdGVyYXRlKGl0ZXJhdG9yLCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGlmIChub0luaXRpYWwpIHtcbiAgICAgICAgbm9Jbml0aWFsID0gZmFsc2U7XG4gICAgICAgIGFjY3VtdWxhdG9yID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhY2N1bXVsYXRvciA9IGNhbGxiYWNrZm4oYWNjdW11bGF0b3IsIHZhbHVlLCB2YWx1ZSwgc2V0KTtcbiAgICAgIH1cbiAgICB9LCB1bmRlZmluZWQsIGZhbHNlLCB0cnVlKTtcbiAgICBpZiAobm9Jbml0aWFsKSB0aHJvdyBUeXBlRXJyb3IoJ1JlZHVjZSBvZiBlbXB0eSBzZXQgd2l0aCBubyBpbml0aWFsIHZhbHVlJyk7XG4gICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgZ2V0U2V0SXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LXNldC1pdGVyYXRvcicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG4vLyBgU2V0LnByb3RvdHlwZS5zb21lYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWNvbGxlY3Rpb24tbWV0aG9kc1xuJCh7IHRhcmdldDogJ1NldCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICBzb21lOiBmdW5jdGlvbiBzb21lKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgdmFyIHNldCA9IGFuT2JqZWN0KHRoaXMpO1xuICAgIHZhciBpdGVyYXRvciA9IGdldFNldEl0ZXJhdG9yKHNldCk7XG4gICAgdmFyIGJvdW5kRnVuY3Rpb24gPSBiaW5kKGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkLCAzKTtcbiAgICByZXR1cm4gaXRlcmF0ZShpdGVyYXRvciwgZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAoYm91bmRGdW5jdGlvbih2YWx1ZSwgdmFsdWUsIHNldCkpIHJldHVybiBpdGVyYXRlLnN0b3AoKTtcbiAgICB9LCB1bmRlZmluZWQsIGZhbHNlLCB0cnVlKS5zdG9wcGVkO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYUZ1bmN0aW9uID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtZnVuY3Rpb24nKTtcbnZhciBzcGVjaWVzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3BlY2llcy1jb25zdHJ1Y3RvcicpO1xudmFyIGl0ZXJhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0ZScpO1xuXG4vLyBgU2V0LnByb3RvdHlwZS5zeW1tZXRyaWNEaWZmZXJlbmNlYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXNldC1tZXRob2RzXG4kKHsgdGFyZ2V0OiAnU2V0JywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUsIGZvcmNlZDogSVNfUFVSRSB9LCB7XG4gIHN5bW1ldHJpY0RpZmZlcmVuY2U6IGZ1bmN0aW9uIHN5bW1ldHJpY0RpZmZlcmVuY2UoaXRlcmFibGUpIHtcbiAgICB2YXIgc2V0ID0gYW5PYmplY3QodGhpcyk7XG4gICAgdmFyIG5ld1NldCA9IG5ldyAoc3BlY2llc0NvbnN0cnVjdG9yKHNldCwgZ2V0QnVpbHRJbignU2V0JykpKShzZXQpO1xuICAgIHZhciByZW1vdmVyID0gYUZ1bmN0aW9uKG5ld1NldFsnZGVsZXRlJ10pO1xuICAgIHZhciBhZGRlciA9IGFGdW5jdGlvbihuZXdTZXQuYWRkKTtcbiAgICBpdGVyYXRlKGl0ZXJhYmxlLCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIHJlbW92ZXIuY2FsbChuZXdTZXQsIHZhbHVlKSB8fCBhZGRlci5jYWxsKG5ld1NldCwgdmFsdWUpO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdTZXQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBhRnVuY3Rpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1mdW5jdGlvbicpO1xudmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG52YXIgaXRlcmF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRlJyk7XG5cbi8vIGBTZXQucHJvdG90eXBlLnVuaW9uYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXNldC1tZXRob2RzXG4kKHsgdGFyZ2V0OiAnU2V0JywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUsIGZvcmNlZDogSVNfUFVSRSB9LCB7XG4gIHVuaW9uOiBmdW5jdGlvbiB1bmlvbihpdGVyYWJsZSkge1xuICAgIHZhciBzZXQgPSBhbk9iamVjdCh0aGlzKTtcbiAgICB2YXIgbmV3U2V0ID0gbmV3IChzcGVjaWVzQ29uc3RydWN0b3Ioc2V0LCBnZXRCdWlsdEluKCdTZXQnKSkpKHNldCk7XG4gICAgaXRlcmF0ZShpdGVyYWJsZSwgYUZ1bmN0aW9uKG5ld1NldC5hZGQpLCBuZXdTZXQpO1xuICAgIHJldHVybiBuZXdTZXQ7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY2hhckF0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy1tdWx0aWJ5dGUnKS5jaGFyQXQ7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLmF0YCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRoaWFzYnluZW5zL1N0cmluZy5wcm90b3R5cGUuYXRcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBwcm90bzogdHJ1ZSB9LCB7XG4gIGF0OiBmdW5jdGlvbiBhdChwb3MpIHtcbiAgICByZXR1cm4gY2hhckF0KHRoaXMsIHBvcyk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3InKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcbnZhciBTdHJpbmdNdWx0aWJ5dGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLW11bHRpYnl0ZScpO1xuXG52YXIgY29kZUF0ID0gU3RyaW5nTXVsdGlieXRlTW9kdWxlLmNvZGVBdDtcbnZhciBjaGFyQXQgPSBTdHJpbmdNdWx0aWJ5dGVNb2R1bGUuY2hhckF0O1xudmFyIFNUUklOR19JVEVSQVRPUiA9ICdTdHJpbmcgSXRlcmF0b3InO1xudmFyIHNldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLnNldDtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXR0ZXJGb3IoU1RSSU5HX0lURVJBVE9SKTtcblxuLy8gVE9ETzogdW5pZnkgd2l0aCBTdHJpbmcjQEBpdGVyYXRvclxudmFyICRTdHJpbmdJdGVyYXRvciA9IGNyZWF0ZUl0ZXJhdG9yQ29uc3RydWN0b3IoZnVuY3Rpb24gU3RyaW5nSXRlcmF0b3Ioc3RyaW5nKSB7XG4gIHNldEludGVybmFsU3RhdGUodGhpcywge1xuICAgIHR5cGU6IFNUUklOR19JVEVSQVRPUixcbiAgICBzdHJpbmc6IHN0cmluZyxcbiAgICBpbmRleDogMFxuICB9KTtcbn0sICdTdHJpbmcnLCBmdW5jdGlvbiBuZXh0KCkge1xuICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFN0YXRlKHRoaXMpO1xuICB2YXIgc3RyaW5nID0gc3RhdGUuc3RyaW5nO1xuICB2YXIgaW5kZXggPSBzdGF0ZS5pbmRleDtcbiAgdmFyIHBvaW50O1xuICBpZiAoaW5kZXggPj0gc3RyaW5nLmxlbmd0aCkgcmV0dXJuIHsgdmFsdWU6IHVuZGVmaW5lZCwgZG9uZTogdHJ1ZSB9O1xuICBwb2ludCA9IGNoYXJBdChzdHJpbmcsIGluZGV4KTtcbiAgc3RhdGUuaW5kZXggKz0gcG9pbnQubGVuZ3RoO1xuICByZXR1cm4geyB2YWx1ZTogeyBjb2RlUG9pbnQ6IGNvZGVBdChwb2ludCwgMCksIHBvc2l0aW9uOiBpbmRleCB9LCBkb25lOiBmYWxzZSB9O1xufSk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludHNgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtc3RyaW5nLXByb3RvdHlwZS1jb2RlcG9pbnRzXG4kKHsgdGFyZ2V0OiAnU3RyaW5nJywgcHJvdG86IHRydWUgfSwge1xuICBjb2RlUG9pbnRzOiBmdW5jdGlvbiBjb2RlUG9pbnRzKCkge1xuICAgIHJldHVybiBuZXcgJFN0cmluZ0l0ZXJhdG9yKFN0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpKSk7XG4gIH1cbn0pO1xuIiwiLy8gVE9ETzogUmVtb3ZlIGZyb20gYGNvcmUtanNANGBcbnJlcXVpcmUoJy4vZXMuc3RyaW5nLm1hdGNoLWFsbCcpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcbnZhciBpc1JlZ0V4cCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1yZWdleHAnKTtcbnZhciBnZXRSZWdFeHBGbGFncyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZmxhZ3MnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcblxudmFyIFJFUExBQ0UgPSB3ZWxsS25vd25TeW1ib2woJ3JlcGxhY2UnKTtcbnZhciBSZWdFeHBQcm90b3R5cGUgPSBSZWdFeHAucHJvdG90eXBlO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlQWxsYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXN0cmluZy1yZXBsYWNlLWFsbFxuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlIH0sIHtcbiAgcmVwbGFjZUFsbDogZnVuY3Rpb24gcmVwbGFjZUFsbChzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKSB7XG4gICAgdmFyIE8gPSByZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpO1xuICAgIHZhciBJU19SRUdfRVhQLCBmbGFncywgcmVwbGFjZXIsIHN0cmluZywgc2VhcmNoU3RyaW5nLCB0ZW1wbGF0ZSwgcmVzdWx0LCBwb3NpdGlvbiwgaW5kZXg7XG4gICAgaWYgKHNlYXJjaFZhbHVlICE9IG51bGwpIHtcbiAgICAgIElTX1JFR19FWFAgPSBpc1JlZ0V4cChzZWFyY2hWYWx1ZSk7XG4gICAgICBpZiAoSVNfUkVHX0VYUCkge1xuICAgICAgICBmbGFncyA9IFN0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKCdmbGFncycgaW4gUmVnRXhwUHJvdG90eXBlXG4gICAgICAgICAgPyBzZWFyY2hWYWx1ZS5mbGFnc1xuICAgICAgICAgIDogZ2V0UmVnRXhwRmxhZ3MuY2FsbChzZWFyY2hWYWx1ZSlcbiAgICAgICAgKSk7XG4gICAgICAgIGlmICghfmZsYWdzLmluZGV4T2YoJ2cnKSkgdGhyb3cgVHlwZUVycm9yKCdgLnJlcGxhY2VBbGxgIGRvZXMgbm90IGFsbG93IG5vbi1nbG9iYWwgcmVnZXhlcycpO1xuICAgICAgfVxuICAgICAgcmVwbGFjZXIgPSBzZWFyY2hWYWx1ZVtSRVBMQUNFXTtcbiAgICAgIGlmIChyZXBsYWNlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiByZXBsYWNlci5jYWxsKHNlYXJjaFZhbHVlLCBPLCByZXBsYWNlVmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChJU19QVVJFICYmIElTX1JFR19FWFApIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyhPKS5yZXBsYWNlKHNlYXJjaFZhbHVlLCByZXBsYWNlVmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBzdHJpbmcgPSBTdHJpbmcoTyk7XG4gICAgc2VhcmNoU3RyaW5nID0gU3RyaW5nKHNlYXJjaFZhbHVlKTtcbiAgICBpZiAoc2VhcmNoU3RyaW5nID09PSAnJykgcmV0dXJuIHJlcGxhY2VBbGwuY2FsbChzdHJpbmcsIC8oPzopL2csIHJlcGxhY2VWYWx1ZSk7XG4gICAgdGVtcGxhdGUgPSBzdHJpbmcuc3BsaXQoc2VhcmNoU3RyaW5nKTtcbiAgICBpZiAodHlwZW9mIHJlcGxhY2VWYWx1ZSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHRlbXBsYXRlLmpvaW4oU3RyaW5nKHJlcGxhY2VWYWx1ZSkpO1xuICAgIH1cbiAgICByZXN1bHQgPSB0ZW1wbGF0ZVswXTtcbiAgICBwb3NpdGlvbiA9IHJlc3VsdC5sZW5ndGg7XG4gICAgZm9yIChpbmRleCA9IDE7IGluZGV4IDwgdGVtcGxhdGUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICByZXN1bHQgKz0gU3RyaW5nKHJlcGxhY2VWYWx1ZShzZWFyY2hTdHJpbmcsIHBvc2l0aW9uLCBzdHJpbmcpKTtcbiAgICAgIHBvc2l0aW9uICs9IHNlYXJjaFN0cmluZy5sZW5ndGggKyB0ZW1wbGF0ZVtpbmRleF0ubGVuZ3RoO1xuICAgICAgcmVzdWx0ICs9IHRlbXBsYXRlW2luZGV4XTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufSk7XG4iLCJ2YXIgZGVmaW5lV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS13ZWxsLWtub3duLXN5bWJvbCcpO1xuXG4vLyBgU3ltYm9sLmFzeW5jRGlzcG9zZWAgd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXVzaW5nLXN0YXRlbWVudFxuZGVmaW5lV2VsbEtub3duU3ltYm9sKCdhc3luY0Rpc3Bvc2UnKTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wuZGlzcG9zZWAgd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXVzaW5nLXN0YXRlbWVudFxuZGVmaW5lV2VsbEtub3duU3ltYm9sKCdkaXNwb3NlJyk7XG4iLCJ2YXIgZGVmaW5lV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS13ZWxsLWtub3duLXN5bWJvbCcpO1xuXG4vLyBgU3ltYm9sLm9ic2VydmFibGVgIHdlbGwta25vd24gc3ltYm9sXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1vYnNlcnZhYmxlXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ29ic2VydmFibGUnKTtcbiIsInZhciBkZWZpbmVXZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sJyk7XG5cbi8vIGBTeW1ib2wucGF0dGVybk1hdGNoYCB3ZWxsLWtub3duIHN5bWJvbFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtcGF0dGVybi1tYXRjaGluZ1xuZGVmaW5lV2VsbEtub3duU3ltYm9sKCdwYXR0ZXJuTWF0Y2gnKTtcbiIsIi8vIFRPRE86IHJlbW92ZSBmcm9tIGBjb3JlLWpzQDRgXG52YXIgZGVmaW5lV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS13ZWxsLWtub3duLXN5bWJvbCcpO1xuXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ3JlcGxhY2VBbGwnKTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIGNvbGxlY3Rpb25EZWxldGVBbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29sbGVjdGlvbi1kZWxldGUtYWxsJyk7XG5cbi8vIGBXZWFrTWFwLnByb3RvdHlwZS5kZWxldGVBbGxgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtY29sbGVjdGlvbi1tZXRob2RzXG4kKHsgdGFyZ2V0OiAnV2Vha01hcCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICBkZWxldGVBbGw6IGZ1bmN0aW9uIGRlbGV0ZUFsbCgvKiAuLi5lbGVtZW50cyAqLykge1xuICAgIHJldHVybiBjb2xsZWN0aW9uRGVsZXRlQWxsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZnJvbSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb2xsZWN0aW9uLWZyb20nKTtcblxuLy8gYFdlYWtNYXAuZnJvbWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL3Byb3Bvc2FsLXNldG1hcC1vZmZyb20vI3NlYy13ZWFrbWFwLmZyb21cbiQoeyB0YXJnZXQ6ICdXZWFrTWFwJywgc3RhdDogdHJ1ZSB9LCB7XG4gIGZyb206IGZyb21cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29sbGVjdGlvbi1vZicpO1xuXG4vLyBgV2Vha01hcC5vZmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL3Byb3Bvc2FsLXNldG1hcC1vZmZyb20vI3NlYy13ZWFrbWFwLm9mXG4kKHsgdGFyZ2V0OiAnV2Vha01hcCcsIHN0YXQ6IHRydWUgfSwge1xuICBvZjogb2Zcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgJHVwc2VydCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYXAtdXBzZXJ0Jyk7XG5cbi8vIGBXZWFrTWFwLnByb3RvdHlwZS51cHNlcnRgIG1ldGhvZFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3RodW1ic3VwZXAvcHJvcG9zYWwtdXBzZXJ0XG4kKHsgdGFyZ2V0OiAnV2Vha01hcCcsIHByb3RvOiB0cnVlLCByZWFsOiB0cnVlLCBmb3JjZWQ6IElTX1BVUkUgfSwge1xuICB1cHNlcnQ6ICR1cHNlcnRcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgY29sbGVjdGlvbkFkZEFsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb2xsZWN0aW9uLWFkZC1hbGwnKTtcblxuLy8gYFdlYWtTZXQucHJvdG90eXBlLmFkZEFsbGAgbWV0aG9kXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1jb2xsZWN0aW9uLW1ldGhvZHNcbiQoeyB0YXJnZXQ6ICdXZWFrU2V0JywgcHJvdG86IHRydWUsIHJlYWw6IHRydWUsIGZvcmNlZDogSVNfUFVSRSB9LCB7XG4gIGFkZEFsbDogZnVuY3Rpb24gYWRkQWxsKC8qIC4uLmVsZW1lbnRzICovKSB7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb25BZGRBbGwuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBjb2xsZWN0aW9uRGVsZXRlQWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvbGxlY3Rpb24tZGVsZXRlLWFsbCcpO1xuXG4vLyBgV2Vha1NldC5wcm90b3R5cGUuZGVsZXRlQWxsYCBtZXRob2Rcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLWNvbGxlY3Rpb24tbWV0aG9kc1xuJCh7IHRhcmdldDogJ1dlYWtTZXQnLCBwcm90bzogdHJ1ZSwgcmVhbDogdHJ1ZSwgZm9yY2VkOiBJU19QVVJFIH0sIHtcbiAgZGVsZXRlQWxsOiBmdW5jdGlvbiBkZWxldGVBbGwoLyogLi4uZWxlbWVudHMgKi8pIHtcbiAgICByZXR1cm4gY29sbGVjdGlvbkRlbGV0ZUFsbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZyb20gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY29sbGVjdGlvbi1mcm9tJyk7XG5cbi8vIGBXZWFrU2V0LmZyb21gIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9wcm9wb3NhbC1zZXRtYXAtb2Zmcm9tLyNzZWMtd2Vha3NldC5mcm9tXG4kKHsgdGFyZ2V0OiAnV2Vha1NldCcsIHN0YXQ6IHRydWUgfSwge1xuICBmcm9tOiBmcm9tXG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIG9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvbGxlY3Rpb24tb2YnKTtcblxuLy8gYFdlYWtTZXQub2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9wcm9wb3NhbC1zZXRtYXAtb2Zmcm9tLyNzZWMtd2Vha3NldC5vZlxuJCh7IHRhcmdldDogJ1dlYWtTZXQnLCBzdGF0OiB0cnVlIH0sIHtcbiAgb2Y6IG9mXG59KTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgRE9NSXRlcmFibGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvbS1pdGVyYWJsZXMnKTtcbnZhciBmb3JFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWZvci1lYWNoJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xuXG5mb3IgKHZhciBDT0xMRUNUSU9OX05BTUUgaW4gRE9NSXRlcmFibGVzKSB7XG4gIHZhciBDb2xsZWN0aW9uID0gZ2xvYmFsW0NPTExFQ1RJT05fTkFNRV07XG4gIHZhciBDb2xsZWN0aW9uUHJvdG90eXBlID0gQ29sbGVjdGlvbiAmJiBDb2xsZWN0aW9uLnByb3RvdHlwZTtcbiAgLy8gc29tZSBDaHJvbWUgdmVyc2lvbnMgaGF2ZSBub24tY29uZmlndXJhYmxlIG1ldGhvZHMgb24gRE9NVG9rZW5MaXN0XG4gIGlmIChDb2xsZWN0aW9uUHJvdG90eXBlICYmIENvbGxlY3Rpb25Qcm90b3R5cGUuZm9yRWFjaCAhPT0gZm9yRWFjaCkgdHJ5IHtcbiAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoQ29sbGVjdGlvblByb3RvdHlwZSwgJ2ZvckVhY2gnLCBmb3JFYWNoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBDb2xsZWN0aW9uUHJvdG90eXBlLmZvckVhY2ggPSBmb3JFYWNoO1xuICB9XG59XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIERPTUl0ZXJhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb20taXRlcmFibGVzJyk7XG52YXIgQXJyYXlJdGVyYXRvck1ldGhvZHMgPSByZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmFycmF5Lml0ZXJhdG9yJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcbnZhciBBcnJheVZhbHVlcyA9IEFycmF5SXRlcmF0b3JNZXRob2RzLnZhbHVlcztcblxuZm9yICh2YXIgQ09MTEVDVElPTl9OQU1FIGluIERPTUl0ZXJhYmxlcykge1xuICB2YXIgQ29sbGVjdGlvbiA9IGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdO1xuICB2YXIgQ29sbGVjdGlvblByb3RvdHlwZSA9IENvbGxlY3Rpb24gJiYgQ29sbGVjdGlvbi5wcm90b3R5cGU7XG4gIGlmIChDb2xsZWN0aW9uUHJvdG90eXBlKSB7XG4gICAgLy8gc29tZSBDaHJvbWUgdmVyc2lvbnMgaGF2ZSBub24tY29uZmlndXJhYmxlIG1ldGhvZHMgb24gRE9NVG9rZW5MaXN0XG4gICAgaWYgKENvbGxlY3Rpb25Qcm90b3R5cGVbSVRFUkFUT1JdICE9PSBBcnJheVZhbHVlcykgdHJ5IHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShDb2xsZWN0aW9uUHJvdG90eXBlLCBJVEVSQVRPUiwgQXJyYXlWYWx1ZXMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBDb2xsZWN0aW9uUHJvdG90eXBlW0lURVJBVE9SXSA9IEFycmF5VmFsdWVzO1xuICAgIH1cbiAgICBpZiAoIUNvbGxlY3Rpb25Qcm90b3R5cGVbVE9fU1RSSU5HX1RBR10pIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShDb2xsZWN0aW9uUHJvdG90eXBlLCBUT19TVFJJTkdfVEFHLCBDT0xMRUNUSU9OX05BTUUpO1xuICAgIH1cbiAgICBpZiAoRE9NSXRlcmFibGVzW0NPTExFQ1RJT05fTkFNRV0pIGZvciAodmFyIE1FVEhPRF9OQU1FIGluIEFycmF5SXRlcmF0b3JNZXRob2RzKSB7XG4gICAgICAvLyBzb21lIENocm9tZSB2ZXJzaW9ucyBoYXZlIG5vbi1jb25maWd1cmFibGUgbWV0aG9kcyBvbiBET01Ub2tlbkxpc3RcbiAgICAgIGlmIChDb2xsZWN0aW9uUHJvdG90eXBlW01FVEhPRF9OQU1FXSAhPT0gQXJyYXlJdGVyYXRvck1ldGhvZHNbTUVUSE9EX05BTUVdKSB0cnkge1xuICAgICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoQ29sbGVjdGlvblByb3RvdHlwZSwgTUVUSE9EX05BTUUsIEFycmF5SXRlcmF0b3JNZXRob2RzW01FVEhPRF9OQU1FXSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBDb2xsZWN0aW9uUHJvdG90eXBlW01FVEhPRF9OQU1FXSA9IEFycmF5SXRlcmF0b3JNZXRob2RzW01FVEhPRF9OQU1FXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciB0YXNrID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3Rhc2snKTtcblxudmFyIEZPUkNFRCA9ICFnbG9iYWwuc2V0SW1tZWRpYXRlIHx8ICFnbG9iYWwuY2xlYXJJbW1lZGlhdGU7XG5cbi8vIGh0dHA6Ly93M2MuZ2l0aHViLmlvL3NldEltbWVkaWF0ZS9cbiQoeyBnbG9iYWw6IHRydWUsIGJpbmQ6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgLy8gYHNldEltbWVkaWF0ZWAgbWV0aG9kXG4gIC8vIGh0dHA6Ly93M2MuZ2l0aHViLmlvL3NldEltbWVkaWF0ZS8jc2ktc2V0SW1tZWRpYXRlXG4gIHNldEltbWVkaWF0ZTogdGFzay5zZXQsXG4gIC8vIGBjbGVhckltbWVkaWF0ZWAgbWV0aG9kXG4gIC8vIGh0dHA6Ly93M2MuZ2l0aHViLmlvL3NldEltbWVkaWF0ZS8jc2ktY2xlYXJJbW1lZGlhdGVcbiAgY2xlYXJJbW1lZGlhdGU6IHRhc2suY2xlYXJcbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIG1pY3JvdGFzayA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9taWNyb3Rhc2snKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YtcmF3Jyk7XG5cbnZhciBwcm9jZXNzID0gZ2xvYmFsLnByb2Nlc3M7XG52YXIgaXNOb2RlID0gY2xhc3NvZihwcm9jZXNzKSA9PSAncHJvY2Vzcyc7XG5cbi8vIGBxdWV1ZU1pY3JvdGFza2AgbWV0aG9kXG4vLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS90aW1lcnMtYW5kLXVzZXItcHJvbXB0cy5odG1sI2RvbS1xdWV1ZW1pY3JvdGFza1xuJCh7IGdsb2JhbDogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgbm9UYXJnZXRHZXQ6IHRydWUgfSwge1xuICBxdWV1ZU1pY3JvdGFzazogZnVuY3Rpb24gcXVldWVNaWNyb3Rhc2soZm4pIHtcbiAgICB2YXIgZG9tYWluID0gaXNOb2RlICYmIHByb2Nlc3MuZG9tYWluO1xuICAgIG1pY3JvdGFzayhkb21haW4gPyBkb21haW4uYmluZChmbikgOiBmbik7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHVzZXJBZ2VudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdXNlci1hZ2VudCcpO1xuXG52YXIgc2xpY2UgPSBbXS5zbGljZTtcbnZhciBNU0lFID0gL01TSUUgLlxcLi8udGVzdCh1c2VyQWdlbnQpOyAvLyA8LSBkaXJ0eSBpZTktIGNoZWNrXG5cbnZhciB3cmFwID0gZnVuY3Rpb24gKHNjaGVkdWxlcikge1xuICByZXR1cm4gZnVuY3Rpb24gKGhhbmRsZXIsIHRpbWVvdXQgLyogLCAuLi5hcmd1bWVudHMgKi8pIHtcbiAgICB2YXIgYm91bmRBcmdzID0gYXJndW1lbnRzLmxlbmd0aCA+IDI7XG4gICAgdmFyIGFyZ3MgPSBib3VuZEFyZ3MgPyBzbGljZS5jYWxsKGFyZ3VtZW50cywgMikgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHNjaGVkdWxlcihib3VuZEFyZ3MgPyBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmNcbiAgICAgICh0eXBlb2YgaGFuZGxlciA9PSAnZnVuY3Rpb24nID8gaGFuZGxlciA6IEZ1bmN0aW9uKGhhbmRsZXIpKS5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9IDogaGFuZGxlciwgdGltZW91dCk7XG4gIH07XG59O1xuXG4vLyBpZTktIHNldFRpbWVvdXQgJiBzZXRJbnRlcnZhbCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgZml4XG4vLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS90aW1lcnMtYW5kLXVzZXItcHJvbXB0cy5odG1sI3RpbWVyc1xuJCh7IGdsb2JhbDogdHJ1ZSwgYmluZDogdHJ1ZSwgZm9yY2VkOiBNU0lFIH0sIHtcbiAgLy8gYHNldFRpbWVvdXRgIG1ldGhvZFxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS90aW1lcnMtYW5kLXVzZXItcHJvbXB0cy5odG1sI2RvbS1zZXR0aW1lb3V0XG4gIHNldFRpbWVvdXQ6IHdyYXAoZ2xvYmFsLnNldFRpbWVvdXQpLFxuICAvLyBgc2V0SW50ZXJ2YWxgIG1ldGhvZFxuICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS90aW1lcnMtYW5kLXVzZXItcHJvbXB0cy5odG1sI2RvbS1zZXRpbnRlcnZhbFxuICBzZXRJbnRlcnZhbDogd3JhcChnbG9iYWwuc2V0SW50ZXJ2YWwpXG59KTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8vIFRPRE86IGluIGNvcmUtanNANCwgbW92ZSAvbW9kdWxlcy8gZGVwZW5kZW5jaWVzIHRvIHB1YmxpYyBlbnRyaWVzIGZvciBiZXR0ZXIgb3B0aW1pemF0aW9uIGJ5IHRvb2xzIGxpa2UgYHByZXNldC1lbnZgXG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmFycmF5Lml0ZXJhdG9yJyk7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIFVTRV9OQVRJVkVfVVJMID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS11cmwnKTtcbnZhciByZWRlZmluZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWRlZmluZScpO1xudmFyIHJlZGVmaW5lQWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lLWFsbCcpO1xudmFyIHNldFRvU3RyaW5nVGFnID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NldC10by1zdHJpbmctdGFnJyk7XG52YXIgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3InKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgYW5JbnN0YW5jZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1pbnN0YW5jZScpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBiaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgZ2V0SXRlcmF0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yJyk7XG52YXIgZ2V0SXRlcmF0b3JNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWl0ZXJhdG9yLW1ldGhvZCcpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgJGZldGNoID0gZ2V0QnVpbHRJbignZmV0Y2gnKTtcbnZhciBIZWFkZXJzID0gZ2V0QnVpbHRJbignSGVhZGVycycpO1xudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIFVSTF9TRUFSQ0hfUEFSQU1TID0gJ1VSTFNlYXJjaFBhcmFtcyc7XG52YXIgVVJMX1NFQVJDSF9QQVJBTVNfSVRFUkFUT1IgPSBVUkxfU0VBUkNIX1BBUkFNUyArICdJdGVyYXRvcic7XG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGdldEludGVybmFsUGFyYW1zU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvcihVUkxfU0VBUkNIX1BBUkFNUyk7XG52YXIgZ2V0SW50ZXJuYWxJdGVyYXRvclN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXR0ZXJGb3IoVVJMX1NFQVJDSF9QQVJBTVNfSVRFUkFUT1IpO1xuXG52YXIgcGx1cyA9IC9cXCsvZztcbnZhciBzZXF1ZW5jZXMgPSBBcnJheSg0KTtcblxudmFyIHBlcmNlbnRTZXF1ZW5jZSA9IGZ1bmN0aW9uIChieXRlcykge1xuICByZXR1cm4gc2VxdWVuY2VzW2J5dGVzIC0gMV0gfHwgKHNlcXVlbmNlc1tieXRlcyAtIDFdID0gUmVnRXhwKCcoKD86JVtcXFxcZGEtZl17Mn0peycgKyBieXRlcyArICd9KScsICdnaScpKTtcbn07XG5cbnZhciBwZXJjZW50RGVjb2RlID0gZnVuY3Rpb24gKHNlcXVlbmNlKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChzZXF1ZW5jZSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHNlcXVlbmNlO1xuICB9XG59O1xuXG52YXIgZGVzZXJpYWxpemUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIHJlc3VsdCA9IGl0LnJlcGxhY2UocGx1cywgJyAnKTtcbiAgdmFyIGJ5dGVzID0gNDtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgd2hpbGUgKGJ5dGVzKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShwZXJjZW50U2VxdWVuY2UoYnl0ZXMtLSksIHBlcmNlbnREZWNvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59O1xuXG52YXIgZmluZCA9IC9bIScoKX5dfCUyMC9nO1xuXG52YXIgcmVwbGFjZSA9IHtcbiAgJyEnOiAnJTIxJyxcbiAgXCInXCI6ICclMjcnLFxuICAnKCc6ICclMjgnLFxuICAnKSc6ICclMjknLFxuICAnfic6ICclN0UnLFxuICAnJTIwJzogJysnXG59O1xuXG52YXIgcmVwbGFjZXIgPSBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgcmV0dXJuIHJlcGxhY2VbbWF0Y2hdO1xufTtcblxudmFyIHNlcmlhbGl6ZSA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGl0KS5yZXBsYWNlKGZpbmQsIHJlcGxhY2VyKTtcbn07XG5cbnZhciBwYXJzZVNlYXJjaFBhcmFtcyA9IGZ1bmN0aW9uIChyZXN1bHQsIHF1ZXJ5KSB7XG4gIGlmIChxdWVyeSkge1xuICAgIHZhciBhdHRyaWJ1dGVzID0gcXVlcnkuc3BsaXQoJyYnKTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBhdHRyaWJ1dGUsIGVudHJ5O1xuICAgIHdoaWxlIChpbmRleCA8IGF0dHJpYnV0ZXMubGVuZ3RoKSB7XG4gICAgICBhdHRyaWJ1dGUgPSBhdHRyaWJ1dGVzW2luZGV4KytdO1xuICAgICAgaWYgKGF0dHJpYnV0ZS5sZW5ndGgpIHtcbiAgICAgICAgZW50cnkgPSBhdHRyaWJ1dGUuc3BsaXQoJz0nKTtcbiAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgIGtleTogZGVzZXJpYWxpemUoZW50cnkuc2hpZnQoKSksXG4gICAgICAgICAgdmFsdWU6IGRlc2VyaWFsaXplKGVudHJ5LmpvaW4oJz0nKSlcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG52YXIgdXBkYXRlU2VhcmNoUGFyYW1zID0gZnVuY3Rpb24gKHF1ZXJ5KSB7XG4gIHRoaXMuZW50cmllcy5sZW5ndGggPSAwO1xuICBwYXJzZVNlYXJjaFBhcmFtcyh0aGlzLmVudHJpZXMsIHF1ZXJ5KTtcbn07XG5cbnZhciB2YWxpZGF0ZUFyZ3VtZW50c0xlbmd0aCA9IGZ1bmN0aW9uIChwYXNzZWQsIHJlcXVpcmVkKSB7XG4gIGlmIChwYXNzZWQgPCByZXF1aXJlZCkgdGhyb3cgVHlwZUVycm9yKCdOb3QgZW5vdWdoIGFyZ3VtZW50cycpO1xufTtcblxudmFyIFVSTFNlYXJjaFBhcmFtc0l0ZXJhdG9yID0gY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvcihmdW5jdGlvbiBJdGVyYXRvcihwYXJhbXMsIGtpbmQpIHtcbiAgc2V0SW50ZXJuYWxTdGF0ZSh0aGlzLCB7XG4gICAgdHlwZTogVVJMX1NFQVJDSF9QQVJBTVNfSVRFUkFUT1IsXG4gICAgaXRlcmF0b3I6IGdldEl0ZXJhdG9yKGdldEludGVybmFsUGFyYW1zU3RhdGUocGFyYW1zKS5lbnRyaWVzKSxcbiAgICBraW5kOiBraW5kXG4gIH0pO1xufSwgJ0l0ZXJhdG9yJywgZnVuY3Rpb24gbmV4dCgpIHtcbiAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxJdGVyYXRvclN0YXRlKHRoaXMpO1xuICB2YXIga2luZCA9IHN0YXRlLmtpbmQ7XG4gIHZhciBzdGVwID0gc3RhdGUuaXRlcmF0b3IubmV4dCgpO1xuICB2YXIgZW50cnkgPSBzdGVwLnZhbHVlO1xuICBpZiAoIXN0ZXAuZG9uZSkge1xuICAgIHN0ZXAudmFsdWUgPSBraW5kID09PSAna2V5cycgPyBlbnRyeS5rZXkgOiBraW5kID09PSAndmFsdWVzJyA/IGVudHJ5LnZhbHVlIDogW2VudHJ5LmtleSwgZW50cnkudmFsdWVdO1xuICB9IHJldHVybiBzdGVwO1xufSk7XG5cbi8vIGBVUkxTZWFyY2hQYXJhbXNgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS11cmxzZWFyY2hwYXJhbXNcbnZhciBVUkxTZWFyY2hQYXJhbXNDb25zdHJ1Y3RvciA9IGZ1bmN0aW9uIFVSTFNlYXJjaFBhcmFtcygvKiBpbml0ICovKSB7XG4gIGFuSW5zdGFuY2UodGhpcywgVVJMU2VhcmNoUGFyYW1zQ29uc3RydWN0b3IsIFVSTF9TRUFSQ0hfUEFSQU1TKTtcbiAgdmFyIGluaXQgPSBhcmd1bWVudHMubGVuZ3RoID4gMCA/IGFyZ3VtZW50c1swXSA6IHVuZGVmaW5lZDtcbiAgdmFyIHRoYXQgPSB0aGlzO1xuICB2YXIgZW50cmllcyA9IFtdO1xuICB2YXIgaXRlcmF0b3JNZXRob2QsIGl0ZXJhdG9yLCBuZXh0LCBzdGVwLCBlbnRyeUl0ZXJhdG9yLCBlbnRyeU5leHQsIGZpcnN0LCBzZWNvbmQsIGtleTtcblxuICBzZXRJbnRlcm5hbFN0YXRlKHRoYXQsIHtcbiAgICB0eXBlOiBVUkxfU0VBUkNIX1BBUkFNUyxcbiAgICBlbnRyaWVzOiBlbnRyaWVzLFxuICAgIHVwZGF0ZVVSTDogZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9LFxuICAgIHVwZGF0ZVNlYXJjaFBhcmFtczogdXBkYXRlU2VhcmNoUGFyYW1zXG4gIH0pO1xuXG4gIGlmIChpbml0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoaXNPYmplY3QoaW5pdCkpIHtcbiAgICAgIGl0ZXJhdG9yTWV0aG9kID0gZ2V0SXRlcmF0b3JNZXRob2QoaW5pdCk7XG4gICAgICBpZiAodHlwZW9mIGl0ZXJhdG9yTWV0aG9kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGl0ZXJhdG9yID0gaXRlcmF0b3JNZXRob2QuY2FsbChpbml0KTtcbiAgICAgICAgbmV4dCA9IGl0ZXJhdG9yLm5leHQ7XG4gICAgICAgIHdoaWxlICghKHN0ZXAgPSBuZXh0LmNhbGwoaXRlcmF0b3IpKS5kb25lKSB7XG4gICAgICAgICAgZW50cnlJdGVyYXRvciA9IGdldEl0ZXJhdG9yKGFuT2JqZWN0KHN0ZXAudmFsdWUpKTtcbiAgICAgICAgICBlbnRyeU5leHQgPSBlbnRyeUl0ZXJhdG9yLm5leHQ7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGZpcnN0ID0gZW50cnlOZXh0LmNhbGwoZW50cnlJdGVyYXRvcikpLmRvbmUgfHxcbiAgICAgICAgICAgIChzZWNvbmQgPSBlbnRyeU5leHQuY2FsbChlbnRyeUl0ZXJhdG9yKSkuZG9uZSB8fFxuICAgICAgICAgICAgIWVudHJ5TmV4dC5jYWxsKGVudHJ5SXRlcmF0b3IpLmRvbmVcbiAgICAgICAgICApIHRocm93IFR5cGVFcnJvcignRXhwZWN0ZWQgc2VxdWVuY2Ugd2l0aCBsZW5ndGggMicpO1xuICAgICAgICAgIGVudHJpZXMucHVzaCh7IGtleTogZmlyc3QudmFsdWUgKyAnJywgdmFsdWU6IHNlY29uZC52YWx1ZSArICcnIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgZm9yIChrZXkgaW4gaW5pdCkgaWYgKGhhc093bihpbml0LCBrZXkpKSBlbnRyaWVzLnB1c2goeyBrZXk6IGtleSwgdmFsdWU6IGluaXRba2V5XSArICcnIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJzZVNlYXJjaFBhcmFtcyhlbnRyaWVzLCB0eXBlb2YgaW5pdCA9PT0gJ3N0cmluZycgPyBpbml0LmNoYXJBdCgwKSA9PT0gJz8nID8gaW5pdC5zbGljZSgxKSA6IGluaXQgOiBpbml0ICsgJycpO1xuICAgIH1cbiAgfVxufTtcblxudmFyIFVSTFNlYXJjaFBhcmFtc1Byb3RvdHlwZSA9IFVSTFNlYXJjaFBhcmFtc0NvbnN0cnVjdG9yLnByb3RvdHlwZTtcblxucmVkZWZpbmVBbGwoVVJMU2VhcmNoUGFyYW1zUHJvdG90eXBlLCB7XG4gIC8vIGBVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmFwcGVudGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jZG9tLXVybHNlYXJjaHBhcmFtcy1hcHBlbmRcbiAgYXBwZW5kOiBmdW5jdGlvbiBhcHBlbmQobmFtZSwgdmFsdWUpIHtcbiAgICB2YWxpZGF0ZUFyZ3VtZW50c0xlbmd0aChhcmd1bWVudHMubGVuZ3RoLCAyKTtcbiAgICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFBhcmFtc1N0YXRlKHRoaXMpO1xuICAgIHN0YXRlLmVudHJpZXMucHVzaCh7IGtleTogbmFtZSArICcnLCB2YWx1ZTogdmFsdWUgKyAnJyB9KTtcbiAgICBzdGF0ZS51cGRhdGVVUkwoKTtcbiAgfSxcbiAgLy8gYFVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuZGVsZXRlYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNkb20tdXJsc2VhcmNocGFyYW1zLWRlbGV0ZVxuICAnZGVsZXRlJzogZnVuY3Rpb24gKG5hbWUpIHtcbiAgICB2YWxpZGF0ZUFyZ3VtZW50c0xlbmd0aChhcmd1bWVudHMubGVuZ3RoLCAxKTtcbiAgICB2YXIgc3RhdGUgPSBnZXRJbnRlcm5hbFBhcmFtc1N0YXRlKHRoaXMpO1xuICAgIHZhciBlbnRyaWVzID0gc3RhdGUuZW50cmllcztcbiAgICB2YXIga2V5ID0gbmFtZSArICcnO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgd2hpbGUgKGluZGV4IDwgZW50cmllcy5sZW5ndGgpIHtcbiAgICAgIGlmIChlbnRyaWVzW2luZGV4XS5rZXkgPT09IGtleSkgZW50cmllcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgZWxzZSBpbmRleCsrO1xuICAgIH1cbiAgICBzdGF0ZS51cGRhdGVVUkwoKTtcbiAgfSxcbiAgLy8gYFVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuZ2V0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNkb20tdXJsc2VhcmNocGFyYW1zLWdldFxuICBnZXQ6IGZ1bmN0aW9uIGdldChuYW1lKSB7XG4gICAgdmFsaWRhdGVBcmd1bWVudHNMZW5ndGgoYXJndW1lbnRzLmxlbmd0aCwgMSk7XG4gICAgdmFyIGVudHJpZXMgPSBnZXRJbnRlcm5hbFBhcmFtc1N0YXRlKHRoaXMpLmVudHJpZXM7XG4gICAgdmFyIGtleSA9IG5hbWUgKyAnJztcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIGZvciAoOyBpbmRleCA8IGVudHJpZXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBpZiAoZW50cmllc1tpbmRleF0ua2V5ID09PSBrZXkpIHJldHVybiBlbnRyaWVzW2luZGV4XS52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH0sXG4gIC8vIGBVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmdldEFsbGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jZG9tLXVybHNlYXJjaHBhcmFtcy1nZXRhbGxcbiAgZ2V0QWxsOiBmdW5jdGlvbiBnZXRBbGwobmFtZSkge1xuICAgIHZhbGlkYXRlQXJndW1lbnRzTGVuZ3RoKGFyZ3VtZW50cy5sZW5ndGgsIDEpO1xuICAgIHZhciBlbnRyaWVzID0gZ2V0SW50ZXJuYWxQYXJhbXNTdGF0ZSh0aGlzKS5lbnRyaWVzO1xuICAgIHZhciBrZXkgPSBuYW1lICsgJyc7XG4gICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgZm9yICg7IGluZGV4IDwgZW50cmllcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGlmIChlbnRyaWVzW2luZGV4XS5rZXkgPT09IGtleSkgcmVzdWx0LnB1c2goZW50cmllc1tpbmRleF0udmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9LFxuICAvLyBgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5oYXNgIG1ldGhvZFxuICAvLyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI2RvbS11cmxzZWFyY2hwYXJhbXMtaGFzXG4gIGhhczogZnVuY3Rpb24gaGFzKG5hbWUpIHtcbiAgICB2YWxpZGF0ZUFyZ3VtZW50c0xlbmd0aChhcmd1bWVudHMubGVuZ3RoLCAxKTtcbiAgICB2YXIgZW50cmllcyA9IGdldEludGVybmFsUGFyYW1zU3RhdGUodGhpcykuZW50cmllcztcbiAgICB2YXIga2V5ID0gbmFtZSArICcnO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgd2hpbGUgKGluZGV4IDwgZW50cmllcy5sZW5ndGgpIHtcbiAgICAgIGlmIChlbnRyaWVzW2luZGV4KytdLmtleSA9PT0ga2V5KSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxuICAvLyBgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5zZXRgIG1ldGhvZFxuICAvLyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI2RvbS11cmxzZWFyY2hwYXJhbXMtc2V0XG4gIHNldDogZnVuY3Rpb24gc2V0KG5hbWUsIHZhbHVlKSB7XG4gICAgdmFsaWRhdGVBcmd1bWVudHNMZW5ndGgoYXJndW1lbnRzLmxlbmd0aCwgMSk7XG4gICAgdmFyIHN0YXRlID0gZ2V0SW50ZXJuYWxQYXJhbXNTdGF0ZSh0aGlzKTtcbiAgICB2YXIgZW50cmllcyA9IHN0YXRlLmVudHJpZXM7XG4gICAgdmFyIGZvdW5kID0gZmFsc2U7XG4gICAgdmFyIGtleSA9IG5hbWUgKyAnJztcbiAgICB2YXIgdmFsID0gdmFsdWUgKyAnJztcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBlbnRyeTtcbiAgICBmb3IgKDsgaW5kZXggPCBlbnRyaWVzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgZW50cnkgPSBlbnRyaWVzW2luZGV4XTtcbiAgICAgIGlmIChlbnRyeS5rZXkgPT09IGtleSkge1xuICAgICAgICBpZiAoZm91bmQpIGVudHJpZXMuc3BsaWNlKGluZGV4LS0sIDEpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgZW50cnkudmFsdWUgPSB2YWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFmb3VuZCkgZW50cmllcy5wdXNoKHsga2V5OiBrZXksIHZhbHVlOiB2YWwgfSk7XG4gICAgc3RhdGUudXBkYXRlVVJMKCk7XG4gIH0sXG4gIC8vIGBVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLnNvcnRgIG1ldGhvZFxuICAvLyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI2RvbS11cmxzZWFyY2hwYXJhbXMtc29ydFxuICBzb3J0OiBmdW5jdGlvbiBzb3J0KCkge1xuICAgIHZhciBzdGF0ZSA9IGdldEludGVybmFsUGFyYW1zU3RhdGUodGhpcyk7XG4gICAgdmFyIGVudHJpZXMgPSBzdGF0ZS5lbnRyaWVzO1xuICAgIC8vIEFycmF5I3NvcnQgaXMgbm90IHN0YWJsZSBpbiBzb21lIGVuZ2luZXNcbiAgICB2YXIgc2xpY2UgPSBlbnRyaWVzLnNsaWNlKCk7XG4gICAgdmFyIGVudHJ5LCBlbnRyaWVzSW5kZXgsIHNsaWNlSW5kZXg7XG4gICAgZW50cmllcy5sZW5ndGggPSAwO1xuICAgIGZvciAoc2xpY2VJbmRleCA9IDA7IHNsaWNlSW5kZXggPCBzbGljZS5sZW5ndGg7IHNsaWNlSW5kZXgrKykge1xuICAgICAgZW50cnkgPSBzbGljZVtzbGljZUluZGV4XTtcbiAgICAgIGZvciAoZW50cmllc0luZGV4ID0gMDsgZW50cmllc0luZGV4IDwgc2xpY2VJbmRleDsgZW50cmllc0luZGV4KyspIHtcbiAgICAgICAgaWYgKGVudHJpZXNbZW50cmllc0luZGV4XS5rZXkgPiBlbnRyeS5rZXkpIHtcbiAgICAgICAgICBlbnRyaWVzLnNwbGljZShlbnRyaWVzSW5kZXgsIDAsIGVudHJ5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGVudHJpZXNJbmRleCA9PT0gc2xpY2VJbmRleCkgZW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICB9XG4gICAgc3RhdGUudXBkYXRlVVJMKCk7XG4gIH0sXG4gIC8vIGBVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZFxuICBmb3JFYWNoOiBmdW5jdGlvbiBmb3JFYWNoKGNhbGxiYWNrIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHZhciBlbnRyaWVzID0gZ2V0SW50ZXJuYWxQYXJhbXNTdGF0ZSh0aGlzKS5lbnRyaWVzO1xuICAgIHZhciBib3VuZEZ1bmN0aW9uID0gYmluZChjYWxsYmFjaywgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQsIDMpO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGVudHJ5O1xuICAgIHdoaWxlIChpbmRleCA8IGVudHJpZXMubGVuZ3RoKSB7XG4gICAgICBlbnRyeSA9IGVudHJpZXNbaW5kZXgrK107XG4gICAgICBib3VuZEZ1bmN0aW9uKGVudHJ5LnZhbHVlLCBlbnRyeS5rZXksIHRoaXMpO1xuICAgIH1cbiAgfSxcbiAgLy8gYFVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUua2V5c2AgbWV0aG9kXG4gIGtleXM6IGZ1bmN0aW9uIGtleXMoKSB7XG4gICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXNJdGVyYXRvcih0aGlzLCAna2V5cycpO1xuICB9LFxuICAvLyBgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS52YWx1ZXNgIG1ldGhvZFxuICB2YWx1ZXM6IGZ1bmN0aW9uIHZhbHVlcygpIHtcbiAgICByZXR1cm4gbmV3IFVSTFNlYXJjaFBhcmFtc0l0ZXJhdG9yKHRoaXMsICd2YWx1ZXMnKTtcbiAgfSxcbiAgLy8gYFVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUuZW50cmllc2AgbWV0aG9kXG4gIGVudHJpZXM6IGZ1bmN0aW9uIGVudHJpZXMoKSB7XG4gICAgcmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXNJdGVyYXRvcih0aGlzLCAnZW50cmllcycpO1xuICB9XG59LCB7IGVudW1lcmFibGU6IHRydWUgfSk7XG5cbi8vIGBVUkxTZWFyY2hQYXJhbXMucHJvdG90eXBlW0BAaXRlcmF0b3JdYCBtZXRob2RcbnJlZGVmaW5lKFVSTFNlYXJjaFBhcmFtc1Byb3RvdHlwZSwgSVRFUkFUT1IsIFVSTFNlYXJjaFBhcmFtc1Byb3RvdHlwZS5lbnRyaWVzKTtcblxuLy8gYFVSTFNlYXJjaFBhcmFtcy5wcm90b3R5cGUudG9TdHJpbmdgIG1ldGhvZFxuLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyN1cmxzZWFyY2hwYXJhbXMtc3RyaW5naWZpY2F0aW9uLWJlaGF2aW9yXG5yZWRlZmluZShVUkxTZWFyY2hQYXJhbXNQcm90b3R5cGUsICd0b1N0cmluZycsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICB2YXIgZW50cmllcyA9IGdldEludGVybmFsUGFyYW1zU3RhdGUodGhpcykuZW50cmllcztcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIgZW50cnk7XG4gIHdoaWxlIChpbmRleCA8IGVudHJpZXMubGVuZ3RoKSB7XG4gICAgZW50cnkgPSBlbnRyaWVzW2luZGV4KytdO1xuICAgIHJlc3VsdC5wdXNoKHNlcmlhbGl6ZShlbnRyeS5rZXkpICsgJz0nICsgc2VyaWFsaXplKGVudHJ5LnZhbHVlKSk7XG4gIH0gcmV0dXJuIHJlc3VsdC5qb2luKCcmJyk7XG59LCB7IGVudW1lcmFibGU6IHRydWUgfSk7XG5cbnNldFRvU3RyaW5nVGFnKFVSTFNlYXJjaFBhcmFtc0NvbnN0cnVjdG9yLCBVUkxfU0VBUkNIX1BBUkFNUyk7XG5cbiQoeyBnbG9iYWw6IHRydWUsIGZvcmNlZDogIVVTRV9OQVRJVkVfVVJMIH0sIHtcbiAgVVJMU2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXNDb25zdHJ1Y3RvclxufSk7XG5cbi8vIFdyYXAgYGZldGNoYCBmb3IgY29ycmVjdCB3b3JrIHdpdGggcG9seWZpbGxlZCBgVVJMU2VhcmNoUGFyYW1zYFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzY3NFxuaWYgKCFVU0VfTkFUSVZFX1VSTCAmJiB0eXBlb2YgJGZldGNoID09ICdmdW5jdGlvbicgJiYgdHlwZW9mIEhlYWRlcnMgPT0gJ2Z1bmN0aW9uJykge1xuICAkKHsgZ2xvYmFsOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCBmb3JjZWQ6IHRydWUgfSwge1xuICAgIGZldGNoOiBmdW5jdGlvbiBmZXRjaChpbnB1dCAvKiAsIGluaXQgKi8pIHtcbiAgICAgIHZhciBhcmdzID0gW2lucHV0XTtcbiAgICAgIHZhciBpbml0LCBib2R5LCBoZWFkZXJzO1xuICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGluaXQgPSBhcmd1bWVudHNbMV07XG4gICAgICAgIGlmIChpc09iamVjdChpbml0KSkge1xuICAgICAgICAgIGJvZHkgPSBpbml0LmJvZHk7XG4gICAgICAgICAgaWYgKGNsYXNzb2YoYm9keSkgPT09IFVSTF9TRUFSQ0hfUEFSQU1TKSB7XG4gICAgICAgICAgICBoZWFkZXJzID0gaW5pdC5oZWFkZXJzID8gbmV3IEhlYWRlcnMoaW5pdC5oZWFkZXJzKSA6IG5ldyBIZWFkZXJzKCk7XG4gICAgICAgICAgICBpZiAoIWhlYWRlcnMuaGFzKCdjb250ZW50LXR5cGUnKSkge1xuICAgICAgICAgICAgICBoZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbml0ID0gY3JlYXRlKGluaXQsIHtcbiAgICAgICAgICAgICAgYm9keTogY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDAsIFN0cmluZyhib2R5KSksXG4gICAgICAgICAgICAgIGhlYWRlcnM6IGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigwLCBoZWFkZXJzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGFyZ3MucHVzaChpbml0KTtcbiAgICAgIH0gcmV0dXJuICRmZXRjaC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9XG4gIH0pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgVVJMU2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXNDb25zdHJ1Y3RvcixcbiAgZ2V0U3RhdGU6IGdldEludGVybmFsUGFyYW1zU3RhdGVcbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyBUT0RPOiBpbiBjb3JlLWpzQDQsIG1vdmUgL21vZHVsZXMvIGRlcGVuZGVuY2llcyB0byBwdWJsaWMgZW50cmllcyBmb3IgYmV0dGVyIG9wdGltaXphdGlvbiBieSB0b29scyBsaWtlIGBwcmVzZXQtZW52YFxucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3InKTtcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgVVNFX05BVElWRV9VUkwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbmF0aXZlLXVybCcpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBkZWZpbmVQcm9wZXJ0aWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydGllcycpO1xudmFyIHJlZGVmaW5lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZGVmaW5lJyk7XG52YXIgYW5JbnN0YW5jZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1pbnN0YW5jZScpO1xudmFyIGhhcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMnKTtcbnZhciBhc3NpZ24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWFzc2lnbicpO1xudmFyIGFycmF5RnJvbSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1mcm9tJyk7XG52YXIgY29kZUF0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy1tdWx0aWJ5dGUnKS5jb2RlQXQ7XG52YXIgdG9BU0NJSSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctcHVueWNvZGUtdG8tYXNjaWknKTtcbnZhciBzZXRUb1N0cmluZ1RhZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zZXQtdG8tc3RyaW5nLXRhZycpO1xudmFyIFVSTFNlYXJjaFBhcmFtc01vZHVsZSA9IHJlcXVpcmUoJy4uL21vZHVsZXMvd2ViLnVybC1zZWFyY2gtcGFyYW1zJyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xuXG52YXIgTmF0aXZlVVJMID0gZ2xvYmFsLlVSTDtcbnZhciBVUkxTZWFyY2hQYXJhbXMgPSBVUkxTZWFyY2hQYXJhbXNNb2R1bGUuVVJMU2VhcmNoUGFyYW1zO1xudmFyIGdldEludGVybmFsU2VhcmNoUGFyYW1zU3RhdGUgPSBVUkxTZWFyY2hQYXJhbXNNb2R1bGUuZ2V0U3RhdGU7XG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGdldEludGVybmFsVVJMU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvcignVVJMJyk7XG52YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xudmFyIHBvdyA9IE1hdGgucG93O1xuXG52YXIgSU5WQUxJRF9BVVRIT1JJVFkgPSAnSW52YWxpZCBhdXRob3JpdHknO1xudmFyIElOVkFMSURfU0NIRU1FID0gJ0ludmFsaWQgc2NoZW1lJztcbnZhciBJTlZBTElEX0hPU1QgPSAnSW52YWxpZCBob3N0JztcbnZhciBJTlZBTElEX1BPUlQgPSAnSW52YWxpZCBwb3J0JztcblxudmFyIEFMUEhBID0gL1tBLVphLXpdLztcbnZhciBBTFBIQU5VTUVSSUMgPSAvW1xcZCstLkEtWmEtel0vO1xudmFyIERJR0lUID0gL1xcZC87XG52YXIgSEVYX1NUQVJUID0gL14oMHh8MFgpLztcbnZhciBPQ1QgPSAvXlswLTddKyQvO1xudmFyIERFQyA9IC9eXFxkKyQvO1xudmFyIEhFWCA9IC9eW1xcZEEtRmEtZl0rJC87XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleFxudmFyIEZPUkJJRERFTl9IT1NUX0NPREVfUE9JTlQgPSAvW1xcdTAwMDBcXHUwMDA5XFx1MDAwQVxcdTAwMEQgIyUvOj9AW1xcXFxdXS87XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleFxudmFyIEZPUkJJRERFTl9IT1NUX0NPREVfUE9JTlRfRVhDTFVESU5HX1BFUkNFTlQgPSAvW1xcdTAwMDBcXHUwMDA5XFx1MDAwQVxcdTAwMEQgIy86P0BbXFxcXF1dLztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250cm9sLXJlZ2V4XG52YXIgTEVBRElOR19BTkRfVFJBSUxJTkdfQzBfQ09OVFJPTF9PUl9TUEFDRSA9IC9eW1xcdTAwMDAtXFx1MDAxRiBdK3xbXFx1MDAwMC1cXHUwMDFGIF0rJC9nO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnRyb2wtcmVnZXhcbnZhciBUQUJfQU5EX05FV19MSU5FID0gL1tcXHUwMDA5XFx1MDAwQVxcdTAwMERdL2c7XG52YXIgRU9GO1xuXG52YXIgcGFyc2VIb3N0ID0gZnVuY3Rpb24gKHVybCwgaW5wdXQpIHtcbiAgdmFyIHJlc3VsdCwgY29kZVBvaW50cywgaW5kZXg7XG4gIGlmIChpbnB1dC5jaGFyQXQoMCkgPT0gJ1snKSB7XG4gICAgaWYgKGlucHV0LmNoYXJBdChpbnB1dC5sZW5ndGggLSAxKSAhPSAnXScpIHJldHVybiBJTlZBTElEX0hPU1Q7XG4gICAgcmVzdWx0ID0gcGFyc2VJUHY2KGlucHV0LnNsaWNlKDEsIC0xKSk7XG4gICAgaWYgKCFyZXN1bHQpIHJldHVybiBJTlZBTElEX0hPU1Q7XG4gICAgdXJsLmhvc3QgPSByZXN1bHQ7XG4gIC8vIG9wYXF1ZSBob3N0XG4gIH0gZWxzZSBpZiAoIWlzU3BlY2lhbCh1cmwpKSB7XG4gICAgaWYgKEZPUkJJRERFTl9IT1NUX0NPREVfUE9JTlRfRVhDTFVESU5HX1BFUkNFTlQudGVzdChpbnB1dCkpIHJldHVybiBJTlZBTElEX0hPU1Q7XG4gICAgcmVzdWx0ID0gJyc7XG4gICAgY29kZVBvaW50cyA9IGFycmF5RnJvbShpbnB1dCk7XG4gICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgY29kZVBvaW50cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIHJlc3VsdCArPSBwZXJjZW50RW5jb2RlKGNvZGVQb2ludHNbaW5kZXhdLCBDMENvbnRyb2xQZXJjZW50RW5jb2RlU2V0KTtcbiAgICB9XG4gICAgdXJsLmhvc3QgPSByZXN1bHQ7XG4gIH0gZWxzZSB7XG4gICAgaW5wdXQgPSB0b0FTQ0lJKGlucHV0KTtcbiAgICBpZiAoRk9SQklEREVOX0hPU1RfQ09ERV9QT0lOVC50ZXN0KGlucHV0KSkgcmV0dXJuIElOVkFMSURfSE9TVDtcbiAgICByZXN1bHQgPSBwYXJzZUlQdjQoaW5wdXQpO1xuICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHJldHVybiBJTlZBTElEX0hPU1Q7XG4gICAgdXJsLmhvc3QgPSByZXN1bHQ7XG4gIH1cbn07XG5cbnZhciBwYXJzZUlQdjQgPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgdmFyIHBhcnRzID0gaW5wdXQuc3BsaXQoJy4nKTtcbiAgdmFyIHBhcnRzTGVuZ3RoLCBudW1iZXJzLCBpbmRleCwgcGFydCwgcmFkaXgsIG51bWJlciwgaXB2NDtcbiAgaWYgKHBhcnRzLmxlbmd0aCAmJiBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSA9PSAnJykge1xuICAgIHBhcnRzLnBvcCgpO1xuICB9XG4gIHBhcnRzTGVuZ3RoID0gcGFydHMubGVuZ3RoO1xuICBpZiAocGFydHNMZW5ndGggPiA0KSByZXR1cm4gaW5wdXQ7XG4gIG51bWJlcnMgPSBbXTtcbiAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFydHNMZW5ndGg7IGluZGV4KyspIHtcbiAgICBwYXJ0ID0gcGFydHNbaW5kZXhdO1xuICAgIGlmIChwYXJ0ID09ICcnKSByZXR1cm4gaW5wdXQ7XG4gICAgcmFkaXggPSAxMDtcbiAgICBpZiAocGFydC5sZW5ndGggPiAxICYmIHBhcnQuY2hhckF0KDApID09ICcwJykge1xuICAgICAgcmFkaXggPSBIRVhfU1RBUlQudGVzdChwYXJ0KSA/IDE2IDogODtcbiAgICAgIHBhcnQgPSBwYXJ0LnNsaWNlKHJhZGl4ID09IDggPyAxIDogMik7XG4gICAgfVxuICAgIGlmIChwYXJ0ID09PSAnJykge1xuICAgICAgbnVtYmVyID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCEocmFkaXggPT0gMTAgPyBERUMgOiByYWRpeCA9PSA4ID8gT0NUIDogSEVYKS50ZXN0KHBhcnQpKSByZXR1cm4gaW5wdXQ7XG4gICAgICBudW1iZXIgPSBwYXJzZUludChwYXJ0LCByYWRpeCk7XG4gICAgfVxuICAgIG51bWJlcnMucHVzaChudW1iZXIpO1xuICB9XG4gIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHBhcnRzTGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgbnVtYmVyID0gbnVtYmVyc1tpbmRleF07XG4gICAgaWYgKGluZGV4ID09IHBhcnRzTGVuZ3RoIC0gMSkge1xuICAgICAgaWYgKG51bWJlciA+PSBwb3coMjU2LCA1IC0gcGFydHNMZW5ndGgpKSByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKG51bWJlciA+IDI1NSkgcmV0dXJuIG51bGw7XG4gIH1cbiAgaXB2NCA9IG51bWJlcnMucG9wKCk7XG4gIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IG51bWJlcnMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgaXB2NCArPSBudW1iZXJzW2luZGV4XSAqIHBvdygyNTYsIDMgLSBpbmRleCk7XG4gIH1cbiAgcmV0dXJuIGlwdjQ7XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LXN0YXRlbWVudHNcbnZhciBwYXJzZUlQdjYgPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgdmFyIGFkZHJlc3MgPSBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF07XG4gIHZhciBwaWVjZUluZGV4ID0gMDtcbiAgdmFyIGNvbXByZXNzID0gbnVsbDtcbiAgdmFyIHBvaW50ZXIgPSAwO1xuICB2YXIgdmFsdWUsIGxlbmd0aCwgbnVtYmVyc1NlZW4sIGlwdjRQaWVjZSwgbnVtYmVyLCBzd2Fwcywgc3dhcDtcblxuICB2YXIgY2hhciA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gaW5wdXQuY2hhckF0KHBvaW50ZXIpO1xuICB9O1xuXG4gIGlmIChjaGFyKCkgPT0gJzonKSB7XG4gICAgaWYgKGlucHV0LmNoYXJBdCgxKSAhPSAnOicpIHJldHVybjtcbiAgICBwb2ludGVyICs9IDI7XG4gICAgcGllY2VJbmRleCsrO1xuICAgIGNvbXByZXNzID0gcGllY2VJbmRleDtcbiAgfVxuICB3aGlsZSAoY2hhcigpKSB7XG4gICAgaWYgKHBpZWNlSW5kZXggPT0gOCkgcmV0dXJuO1xuICAgIGlmIChjaGFyKCkgPT0gJzonKSB7XG4gICAgICBpZiAoY29tcHJlc3MgIT09IG51bGwpIHJldHVybjtcbiAgICAgIHBvaW50ZXIrKztcbiAgICAgIHBpZWNlSW5kZXgrKztcbiAgICAgIGNvbXByZXNzID0gcGllY2VJbmRleDtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICB2YWx1ZSA9IGxlbmd0aCA9IDA7XG4gICAgd2hpbGUgKGxlbmd0aCA8IDQgJiYgSEVYLnRlc3QoY2hhcigpKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZSAqIDE2ICsgcGFyc2VJbnQoY2hhcigpLCAxNik7XG4gICAgICBwb2ludGVyKys7XG4gICAgICBsZW5ndGgrKztcbiAgICB9XG4gICAgaWYgKGNoYXIoKSA9PSAnLicpIHtcbiAgICAgIGlmIChsZW5ndGggPT0gMCkgcmV0dXJuO1xuICAgICAgcG9pbnRlciAtPSBsZW5ndGg7XG4gICAgICBpZiAocGllY2VJbmRleCA+IDYpIHJldHVybjtcbiAgICAgIG51bWJlcnNTZWVuID0gMDtcbiAgICAgIHdoaWxlIChjaGFyKCkpIHtcbiAgICAgICAgaXB2NFBpZWNlID0gbnVsbDtcbiAgICAgICAgaWYgKG51bWJlcnNTZWVuID4gMCkge1xuICAgICAgICAgIGlmIChjaGFyKCkgPT0gJy4nICYmIG51bWJlcnNTZWVuIDwgNCkgcG9pbnRlcisrO1xuICAgICAgICAgIGVsc2UgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghRElHSVQudGVzdChjaGFyKCkpKSByZXR1cm47XG4gICAgICAgIHdoaWxlIChESUdJVC50ZXN0KGNoYXIoKSkpIHtcbiAgICAgICAgICBudW1iZXIgPSBwYXJzZUludChjaGFyKCksIDEwKTtcbiAgICAgICAgICBpZiAoaXB2NFBpZWNlID09PSBudWxsKSBpcHY0UGllY2UgPSBudW1iZXI7XG4gICAgICAgICAgZWxzZSBpZiAoaXB2NFBpZWNlID09IDApIHJldHVybjtcbiAgICAgICAgICBlbHNlIGlwdjRQaWVjZSA9IGlwdjRQaWVjZSAqIDEwICsgbnVtYmVyO1xuICAgICAgICAgIGlmIChpcHY0UGllY2UgPiAyNTUpIHJldHVybjtcbiAgICAgICAgICBwb2ludGVyKys7XG4gICAgICAgIH1cbiAgICAgICAgYWRkcmVzc1twaWVjZUluZGV4XSA9IGFkZHJlc3NbcGllY2VJbmRleF0gKiAyNTYgKyBpcHY0UGllY2U7XG4gICAgICAgIG51bWJlcnNTZWVuKys7XG4gICAgICAgIGlmIChudW1iZXJzU2VlbiA9PSAyIHx8IG51bWJlcnNTZWVuID09IDQpIHBpZWNlSW5kZXgrKztcbiAgICAgIH1cbiAgICAgIGlmIChudW1iZXJzU2VlbiAhPSA0KSByZXR1cm47XG4gICAgICBicmVhaztcbiAgICB9IGVsc2UgaWYgKGNoYXIoKSA9PSAnOicpIHtcbiAgICAgIHBvaW50ZXIrKztcbiAgICAgIGlmICghY2hhcigpKSByZXR1cm47XG4gICAgfSBlbHNlIGlmIChjaGFyKCkpIHJldHVybjtcbiAgICBhZGRyZXNzW3BpZWNlSW5kZXgrK10gPSB2YWx1ZTtcbiAgfVxuICBpZiAoY29tcHJlc3MgIT09IG51bGwpIHtcbiAgICBzd2FwcyA9IHBpZWNlSW5kZXggLSBjb21wcmVzcztcbiAgICBwaWVjZUluZGV4ID0gNztcbiAgICB3aGlsZSAocGllY2VJbmRleCAhPSAwICYmIHN3YXBzID4gMCkge1xuICAgICAgc3dhcCA9IGFkZHJlc3NbcGllY2VJbmRleF07XG4gICAgICBhZGRyZXNzW3BpZWNlSW5kZXgtLV0gPSBhZGRyZXNzW2NvbXByZXNzICsgc3dhcHMgLSAxXTtcbiAgICAgIGFkZHJlc3NbY29tcHJlc3MgKyAtLXN3YXBzXSA9IHN3YXA7XG4gICAgfVxuICB9IGVsc2UgaWYgKHBpZWNlSW5kZXggIT0gOCkgcmV0dXJuO1xuICByZXR1cm4gYWRkcmVzcztcbn07XG5cbnZhciBmaW5kTG9uZ2VzdFplcm9TZXF1ZW5jZSA9IGZ1bmN0aW9uIChpcHY2KSB7XG4gIHZhciBtYXhJbmRleCA9IG51bGw7XG4gIHZhciBtYXhMZW5ndGggPSAxO1xuICB2YXIgY3VyclN0YXJ0ID0gbnVsbDtcbiAgdmFyIGN1cnJMZW5ndGggPSAwO1xuICB2YXIgaW5kZXggPSAwO1xuICBmb3IgKDsgaW5kZXggPCA4OyBpbmRleCsrKSB7XG4gICAgaWYgKGlwdjZbaW5kZXhdICE9PSAwKSB7XG4gICAgICBpZiAoY3Vyckxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgICAgICBtYXhJbmRleCA9IGN1cnJTdGFydDtcbiAgICAgICAgbWF4TGVuZ3RoID0gY3Vyckxlbmd0aDtcbiAgICAgIH1cbiAgICAgIGN1cnJTdGFydCA9IG51bGw7XG4gICAgICBjdXJyTGVuZ3RoID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGN1cnJTdGFydCA9PT0gbnVsbCkgY3VyclN0YXJ0ID0gaW5kZXg7XG4gICAgICArK2N1cnJMZW5ndGg7XG4gICAgfVxuICB9XG4gIGlmIChjdXJyTGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgbWF4SW5kZXggPSBjdXJyU3RhcnQ7XG4gICAgbWF4TGVuZ3RoID0gY3Vyckxlbmd0aDtcbiAgfVxuICByZXR1cm4gbWF4SW5kZXg7XG59O1xuXG52YXIgc2VyaWFsaXplSG9zdCA9IGZ1bmN0aW9uIChob3N0KSB7XG4gIHZhciByZXN1bHQsIGluZGV4LCBjb21wcmVzcywgaWdub3JlMDtcbiAgLy8gaXB2NFxuICBpZiAodHlwZW9mIGhvc3QgPT0gJ251bWJlcicpIHtcbiAgICByZXN1bHQgPSBbXTtcbiAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCA0OyBpbmRleCsrKSB7XG4gICAgICByZXN1bHQudW5zaGlmdChob3N0ICUgMjU2KTtcbiAgICAgIGhvc3QgPSBmbG9vcihob3N0IC8gMjU2KTtcbiAgICB9IHJldHVybiByZXN1bHQuam9pbignLicpO1xuICAvLyBpcHY2XG4gIH0gZWxzZSBpZiAodHlwZW9mIGhvc3QgPT0gJ29iamVjdCcpIHtcbiAgICByZXN1bHQgPSAnJztcbiAgICBjb21wcmVzcyA9IGZpbmRMb25nZXN0WmVyb1NlcXVlbmNlKGhvc3QpO1xuICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IDg7IGluZGV4KyspIHtcbiAgICAgIGlmIChpZ25vcmUwICYmIGhvc3RbaW5kZXhdID09PSAwKSBjb250aW51ZTtcbiAgICAgIGlmIChpZ25vcmUwKSBpZ25vcmUwID0gZmFsc2U7XG4gICAgICBpZiAoY29tcHJlc3MgPT09IGluZGV4KSB7XG4gICAgICAgIHJlc3VsdCArPSBpbmRleCA/ICc6JyA6ICc6Oic7XG4gICAgICAgIGlnbm9yZTAgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ICs9IGhvc3RbaW5kZXhdLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgaWYgKGluZGV4IDwgNykgcmVzdWx0ICs9ICc6JztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICdbJyArIHJlc3VsdCArICddJztcbiAgfSByZXR1cm4gaG9zdDtcbn07XG5cbnZhciBDMENvbnRyb2xQZXJjZW50RW5jb2RlU2V0ID0ge307XG52YXIgZnJhZ21lbnRQZXJjZW50RW5jb2RlU2V0ID0gYXNzaWduKHt9LCBDMENvbnRyb2xQZXJjZW50RW5jb2RlU2V0LCB7XG4gICcgJzogMSwgJ1wiJzogMSwgJzwnOiAxLCAnPic6IDEsICdgJzogMVxufSk7XG52YXIgcGF0aFBlcmNlbnRFbmNvZGVTZXQgPSBhc3NpZ24oe30sIGZyYWdtZW50UGVyY2VudEVuY29kZVNldCwge1xuICAnIyc6IDEsICc/JzogMSwgJ3snOiAxLCAnfSc6IDFcbn0pO1xudmFyIHVzZXJpbmZvUGVyY2VudEVuY29kZVNldCA9IGFzc2lnbih7fSwgcGF0aFBlcmNlbnRFbmNvZGVTZXQsIHtcbiAgJy8nOiAxLCAnOic6IDEsICc7JzogMSwgJz0nOiAxLCAnQCc6IDEsICdbJzogMSwgJ1xcXFwnOiAxLCAnXSc6IDEsICdeJzogMSwgJ3wnOiAxXG59KTtcblxudmFyIHBlcmNlbnRFbmNvZGUgPSBmdW5jdGlvbiAoY2hhciwgc2V0KSB7XG4gIHZhciBjb2RlID0gY29kZUF0KGNoYXIsIDApO1xuICByZXR1cm4gY29kZSA+IDB4MjAgJiYgY29kZSA8IDB4N0YgJiYgIWhhcyhzZXQsIGNoYXIpID8gY2hhciA6IGVuY29kZVVSSUNvbXBvbmVudChjaGFyKTtcbn07XG5cbnZhciBzcGVjaWFsU2NoZW1lcyA9IHtcbiAgZnRwOiAyMSxcbiAgZmlsZTogbnVsbCxcbiAgaHR0cDogODAsXG4gIGh0dHBzOiA0NDMsXG4gIHdzOiA4MCxcbiAgd3NzOiA0NDNcbn07XG5cbnZhciBpc1NwZWNpYWwgPSBmdW5jdGlvbiAodXJsKSB7XG4gIHJldHVybiBoYXMoc3BlY2lhbFNjaGVtZXMsIHVybC5zY2hlbWUpO1xufTtcblxudmFyIGluY2x1ZGVzQ3JlZGVudGlhbHMgPSBmdW5jdGlvbiAodXJsKSB7XG4gIHJldHVybiB1cmwudXNlcm5hbWUgIT0gJycgfHwgdXJsLnBhc3N3b3JkICE9ICcnO1xufTtcblxudmFyIGNhbm5vdEhhdmVVc2VybmFtZVBhc3N3b3JkUG9ydCA9IGZ1bmN0aW9uICh1cmwpIHtcbiAgcmV0dXJuICF1cmwuaG9zdCB8fCB1cmwuY2Fubm90QmVBQmFzZVVSTCB8fCB1cmwuc2NoZW1lID09ICdmaWxlJztcbn07XG5cbnZhciBpc1dpbmRvd3NEcml2ZUxldHRlciA9IGZ1bmN0aW9uIChzdHJpbmcsIG5vcm1hbGl6ZWQpIHtcbiAgdmFyIHNlY29uZDtcbiAgcmV0dXJuIHN0cmluZy5sZW5ndGggPT0gMiAmJiBBTFBIQS50ZXN0KHN0cmluZy5jaGFyQXQoMCkpXG4gICAgJiYgKChzZWNvbmQgPSBzdHJpbmcuY2hhckF0KDEpKSA9PSAnOicgfHwgKCFub3JtYWxpemVkICYmIHNlY29uZCA9PSAnfCcpKTtcbn07XG5cbnZhciBzdGFydHNXaXRoV2luZG93c0RyaXZlTGV0dGVyID0gZnVuY3Rpb24gKHN0cmluZykge1xuICB2YXIgdGhpcmQ7XG4gIHJldHVybiBzdHJpbmcubGVuZ3RoID4gMSAmJiBpc1dpbmRvd3NEcml2ZUxldHRlcihzdHJpbmcuc2xpY2UoMCwgMikpICYmIChcbiAgICBzdHJpbmcubGVuZ3RoID09IDIgfHxcbiAgICAoKHRoaXJkID0gc3RyaW5nLmNoYXJBdCgyKSkgPT09ICcvJyB8fCB0aGlyZCA9PT0gJ1xcXFwnIHx8IHRoaXJkID09PSAnPycgfHwgdGhpcmQgPT09ICcjJylcbiAgKTtcbn07XG5cbnZhciBzaG9ydGVuVVJMc1BhdGggPSBmdW5jdGlvbiAodXJsKSB7XG4gIHZhciBwYXRoID0gdXJsLnBhdGg7XG4gIHZhciBwYXRoU2l6ZSA9IHBhdGgubGVuZ3RoO1xuICBpZiAocGF0aFNpemUgJiYgKHVybC5zY2hlbWUgIT0gJ2ZpbGUnIHx8IHBhdGhTaXplICE9IDEgfHwgIWlzV2luZG93c0RyaXZlTGV0dGVyKHBhdGhbMF0sIHRydWUpKSkge1xuICAgIHBhdGgucG9wKCk7XG4gIH1cbn07XG5cbnZhciBpc1NpbmdsZURvdCA9IGZ1bmN0aW9uIChzZWdtZW50KSB7XG4gIHJldHVybiBzZWdtZW50ID09PSAnLicgfHwgc2VnbWVudC50b0xvd2VyQ2FzZSgpID09PSAnJTJlJztcbn07XG5cbnZhciBpc0RvdWJsZURvdCA9IGZ1bmN0aW9uIChzZWdtZW50KSB7XG4gIHNlZ21lbnQgPSBzZWdtZW50LnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBzZWdtZW50ID09PSAnLi4nIHx8IHNlZ21lbnQgPT09ICclMmUuJyB8fCBzZWdtZW50ID09PSAnLiUyZScgfHwgc2VnbWVudCA9PT0gJyUyZSUyZSc7XG59O1xuXG4vLyBTdGF0ZXM6XG52YXIgU0NIRU1FX1NUQVJUID0ge307XG52YXIgU0NIRU1FID0ge307XG52YXIgTk9fU0NIRU1FID0ge307XG52YXIgU1BFQ0lBTF9SRUxBVElWRV9PUl9BVVRIT1JJVFkgPSB7fTtcbnZhciBQQVRIX09SX0FVVEhPUklUWSA9IHt9O1xudmFyIFJFTEFUSVZFID0ge307XG52YXIgUkVMQVRJVkVfU0xBU0ggPSB7fTtcbnZhciBTUEVDSUFMX0FVVEhPUklUWV9TTEFTSEVTID0ge307XG52YXIgU1BFQ0lBTF9BVVRIT1JJVFlfSUdOT1JFX1NMQVNIRVMgPSB7fTtcbnZhciBBVVRIT1JJVFkgPSB7fTtcbnZhciBIT1NUID0ge307XG52YXIgSE9TVE5BTUUgPSB7fTtcbnZhciBQT1JUID0ge307XG52YXIgRklMRSA9IHt9O1xudmFyIEZJTEVfU0xBU0ggPSB7fTtcbnZhciBGSUxFX0hPU1QgPSB7fTtcbnZhciBQQVRIX1NUQVJUID0ge307XG52YXIgUEFUSCA9IHt9O1xudmFyIENBTk5PVF9CRV9BX0JBU0VfVVJMX1BBVEggPSB7fTtcbnZhciBRVUVSWSA9IHt9O1xudmFyIEZSQUdNRU5UID0ge307XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtc3RhdGVtZW50c1xudmFyIHBhcnNlVVJMID0gZnVuY3Rpb24gKHVybCwgaW5wdXQsIHN0YXRlT3ZlcnJpZGUsIGJhc2UpIHtcbiAgdmFyIHN0YXRlID0gc3RhdGVPdmVycmlkZSB8fCBTQ0hFTUVfU1RBUlQ7XG4gIHZhciBwb2ludGVyID0gMDtcbiAgdmFyIGJ1ZmZlciA9ICcnO1xuICB2YXIgc2VlbkF0ID0gZmFsc2U7XG4gIHZhciBzZWVuQnJhY2tldCA9IGZhbHNlO1xuICB2YXIgc2VlblBhc3N3b3JkVG9rZW4gPSBmYWxzZTtcbiAgdmFyIGNvZGVQb2ludHMsIGNoYXIsIGJ1ZmZlckNvZGVQb2ludHMsIGZhaWx1cmU7XG5cbiAgaWYgKCFzdGF0ZU92ZXJyaWRlKSB7XG4gICAgdXJsLnNjaGVtZSA9ICcnO1xuICAgIHVybC51c2VybmFtZSA9ICcnO1xuICAgIHVybC5wYXNzd29yZCA9ICcnO1xuICAgIHVybC5ob3N0ID0gbnVsbDtcbiAgICB1cmwucG9ydCA9IG51bGw7XG4gICAgdXJsLnBhdGggPSBbXTtcbiAgICB1cmwucXVlcnkgPSBudWxsO1xuICAgIHVybC5mcmFnbWVudCA9IG51bGw7XG4gICAgdXJsLmNhbm5vdEJlQUJhc2VVUkwgPSBmYWxzZTtcbiAgICBpbnB1dCA9IGlucHV0LnJlcGxhY2UoTEVBRElOR19BTkRfVFJBSUxJTkdfQzBfQ09OVFJPTF9PUl9TUEFDRSwgJycpO1xuICB9XG5cbiAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKFRBQl9BTkRfTkVXX0xJTkUsICcnKTtcblxuICBjb2RlUG9pbnRzID0gYXJyYXlGcm9tKGlucHV0KTtcblxuICB3aGlsZSAocG9pbnRlciA8PSBjb2RlUG9pbnRzLmxlbmd0aCkge1xuICAgIGNoYXIgPSBjb2RlUG9pbnRzW3BvaW50ZXJdO1xuICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgIGNhc2UgU0NIRU1FX1NUQVJUOlxuICAgICAgICBpZiAoY2hhciAmJiBBTFBIQS50ZXN0KGNoYXIpKSB7XG4gICAgICAgICAgYnVmZmVyICs9IGNoYXIudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBzdGF0ZSA9IFNDSEVNRTtcbiAgICAgICAgfSBlbHNlIGlmICghc3RhdGVPdmVycmlkZSkge1xuICAgICAgICAgIHN0YXRlID0gTk9fU0NIRU1FO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2UgcmV0dXJuIElOVkFMSURfU0NIRU1FO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTQ0hFTUU6XG4gICAgICAgIGlmIChjaGFyICYmIChBTFBIQU5VTUVSSUMudGVzdChjaGFyKSB8fCBjaGFyID09ICcrJyB8fCBjaGFyID09ICctJyB8fCBjaGFyID09ICcuJykpIHtcbiAgICAgICAgICBidWZmZXIgKz0gY2hhci50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGNoYXIgPT0gJzonKSB7XG4gICAgICAgICAgaWYgKHN0YXRlT3ZlcnJpZGUgJiYgKFxuICAgICAgICAgICAgKGlzU3BlY2lhbCh1cmwpICE9IGhhcyhzcGVjaWFsU2NoZW1lcywgYnVmZmVyKSkgfHxcbiAgICAgICAgICAgIChidWZmZXIgPT0gJ2ZpbGUnICYmIChpbmNsdWRlc0NyZWRlbnRpYWxzKHVybCkgfHwgdXJsLnBvcnQgIT09IG51bGwpKSB8fFxuICAgICAgICAgICAgKHVybC5zY2hlbWUgPT0gJ2ZpbGUnICYmICF1cmwuaG9zdClcbiAgICAgICAgICApKSByZXR1cm47XG4gICAgICAgICAgdXJsLnNjaGVtZSA9IGJ1ZmZlcjtcbiAgICAgICAgICBpZiAoc3RhdGVPdmVycmlkZSkge1xuICAgICAgICAgICAgaWYgKGlzU3BlY2lhbCh1cmwpICYmIHNwZWNpYWxTY2hlbWVzW3VybC5zY2hlbWVdID09IHVybC5wb3J0KSB1cmwucG9ydCA9IG51bGw7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGJ1ZmZlciA9ICcnO1xuICAgICAgICAgIGlmICh1cmwuc2NoZW1lID09ICdmaWxlJykge1xuICAgICAgICAgICAgc3RhdGUgPSBGSUxFO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNTcGVjaWFsKHVybCkgJiYgYmFzZSAmJiBiYXNlLnNjaGVtZSA9PSB1cmwuc2NoZW1lKSB7XG4gICAgICAgICAgICBzdGF0ZSA9IFNQRUNJQUxfUkVMQVRJVkVfT1JfQVVUSE9SSVRZO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNTcGVjaWFsKHVybCkpIHtcbiAgICAgICAgICAgIHN0YXRlID0gU1BFQ0lBTF9BVVRIT1JJVFlfU0xBU0hFUztcbiAgICAgICAgICB9IGVsc2UgaWYgKGNvZGVQb2ludHNbcG9pbnRlciArIDFdID09ICcvJykge1xuICAgICAgICAgICAgc3RhdGUgPSBQQVRIX09SX0FVVEhPUklUWTtcbiAgICAgICAgICAgIHBvaW50ZXIrKztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXJsLmNhbm5vdEJlQUJhc2VVUkwgPSB0cnVlO1xuICAgICAgICAgICAgdXJsLnBhdGgucHVzaCgnJyk7XG4gICAgICAgICAgICBzdGF0ZSA9IENBTk5PVF9CRV9BX0JBU0VfVVJMX1BBVEg7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFzdGF0ZU92ZXJyaWRlKSB7XG4gICAgICAgICAgYnVmZmVyID0gJyc7XG4gICAgICAgICAgc3RhdGUgPSBOT19TQ0hFTUU7XG4gICAgICAgICAgcG9pbnRlciA9IDA7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gZWxzZSByZXR1cm4gSU5WQUxJRF9TQ0hFTUU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIE5PX1NDSEVNRTpcbiAgICAgICAgaWYgKCFiYXNlIHx8IChiYXNlLmNhbm5vdEJlQUJhc2VVUkwgJiYgY2hhciAhPSAnIycpKSByZXR1cm4gSU5WQUxJRF9TQ0hFTUU7XG4gICAgICAgIGlmIChiYXNlLmNhbm5vdEJlQUJhc2VVUkwgJiYgY2hhciA9PSAnIycpIHtcbiAgICAgICAgICB1cmwuc2NoZW1lID0gYmFzZS5zY2hlbWU7XG4gICAgICAgICAgdXJsLnBhdGggPSBiYXNlLnBhdGguc2xpY2UoKTtcbiAgICAgICAgICB1cmwucXVlcnkgPSBiYXNlLnF1ZXJ5O1xuICAgICAgICAgIHVybC5mcmFnbWVudCA9ICcnO1xuICAgICAgICAgIHVybC5jYW5ub3RCZUFCYXNlVVJMID0gdHJ1ZTtcbiAgICAgICAgICBzdGF0ZSA9IEZSQUdNRU5UO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHN0YXRlID0gYmFzZS5zY2hlbWUgPT0gJ2ZpbGUnID8gRklMRSA6IFJFTEFUSVZFO1xuICAgICAgICBjb250aW51ZTtcblxuICAgICAgY2FzZSBTUEVDSUFMX1JFTEFUSVZFX09SX0FVVEhPUklUWTpcbiAgICAgICAgaWYgKGNoYXIgPT0gJy8nICYmIGNvZGVQb2ludHNbcG9pbnRlciArIDFdID09ICcvJykge1xuICAgICAgICAgIHN0YXRlID0gU1BFQ0lBTF9BVVRIT1JJVFlfSUdOT1JFX1NMQVNIRVM7XG4gICAgICAgICAgcG9pbnRlcisrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gUkVMQVRJVkU7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gYnJlYWs7XG5cbiAgICAgIGNhc2UgUEFUSF9PUl9BVVRIT1JJVFk6XG4gICAgICAgIGlmIChjaGFyID09ICcvJykge1xuICAgICAgICAgIHN0YXRlID0gQVVUSE9SSVRZO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gUEFUSDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFJFTEFUSVZFOlxuICAgICAgICB1cmwuc2NoZW1lID0gYmFzZS5zY2hlbWU7XG4gICAgICAgIGlmIChjaGFyID09IEVPRikge1xuICAgICAgICAgIHVybC51c2VybmFtZSA9IGJhc2UudXNlcm5hbWU7XG4gICAgICAgICAgdXJsLnBhc3N3b3JkID0gYmFzZS5wYXNzd29yZDtcbiAgICAgICAgICB1cmwuaG9zdCA9IGJhc2UuaG9zdDtcbiAgICAgICAgICB1cmwucG9ydCA9IGJhc2UucG9ydDtcbiAgICAgICAgICB1cmwucGF0aCA9IGJhc2UucGF0aC5zbGljZSgpO1xuICAgICAgICAgIHVybC5xdWVyeSA9IGJhc2UucXVlcnk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhciA9PSAnLycgfHwgKGNoYXIgPT0gJ1xcXFwnICYmIGlzU3BlY2lhbCh1cmwpKSkge1xuICAgICAgICAgIHN0YXRlID0gUkVMQVRJVkVfU0xBU0g7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhciA9PSAnPycpIHtcbiAgICAgICAgICB1cmwudXNlcm5hbWUgPSBiYXNlLnVzZXJuYW1lO1xuICAgICAgICAgIHVybC5wYXNzd29yZCA9IGJhc2UucGFzc3dvcmQ7XG4gICAgICAgICAgdXJsLmhvc3QgPSBiYXNlLmhvc3Q7XG4gICAgICAgICAgdXJsLnBvcnQgPSBiYXNlLnBvcnQ7XG4gICAgICAgICAgdXJsLnBhdGggPSBiYXNlLnBhdGguc2xpY2UoKTtcbiAgICAgICAgICB1cmwucXVlcnkgPSAnJztcbiAgICAgICAgICBzdGF0ZSA9IFFVRVJZO1xuICAgICAgICB9IGVsc2UgaWYgKGNoYXIgPT0gJyMnKSB7XG4gICAgICAgICAgdXJsLnVzZXJuYW1lID0gYmFzZS51c2VybmFtZTtcbiAgICAgICAgICB1cmwucGFzc3dvcmQgPSBiYXNlLnBhc3N3b3JkO1xuICAgICAgICAgIHVybC5ob3N0ID0gYmFzZS5ob3N0O1xuICAgICAgICAgIHVybC5wb3J0ID0gYmFzZS5wb3J0O1xuICAgICAgICAgIHVybC5wYXRoID0gYmFzZS5wYXRoLnNsaWNlKCk7XG4gICAgICAgICAgdXJsLnF1ZXJ5ID0gYmFzZS5xdWVyeTtcbiAgICAgICAgICB1cmwuZnJhZ21lbnQgPSAnJztcbiAgICAgICAgICBzdGF0ZSA9IEZSQUdNRU5UO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHVybC51c2VybmFtZSA9IGJhc2UudXNlcm5hbWU7XG4gICAgICAgICAgdXJsLnBhc3N3b3JkID0gYmFzZS5wYXNzd29yZDtcbiAgICAgICAgICB1cmwuaG9zdCA9IGJhc2UuaG9zdDtcbiAgICAgICAgICB1cmwucG9ydCA9IGJhc2UucG9ydDtcbiAgICAgICAgICB1cmwucGF0aCA9IGJhc2UucGF0aC5zbGljZSgpO1xuICAgICAgICAgIHVybC5wYXRoLnBvcCgpO1xuICAgICAgICAgIHN0YXRlID0gUEFUSDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfSBicmVhaztcblxuICAgICAgY2FzZSBSRUxBVElWRV9TTEFTSDpcbiAgICAgICAgaWYgKGlzU3BlY2lhbCh1cmwpICYmIChjaGFyID09ICcvJyB8fCBjaGFyID09ICdcXFxcJykpIHtcbiAgICAgICAgICBzdGF0ZSA9IFNQRUNJQUxfQVVUSE9SSVRZX0lHTk9SRV9TTEFTSEVTO1xuICAgICAgICB9IGVsc2UgaWYgKGNoYXIgPT0gJy8nKSB7XG4gICAgICAgICAgc3RhdGUgPSBBVVRIT1JJVFk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdXJsLnVzZXJuYW1lID0gYmFzZS51c2VybmFtZTtcbiAgICAgICAgICB1cmwucGFzc3dvcmQgPSBiYXNlLnBhc3N3b3JkO1xuICAgICAgICAgIHVybC5ob3N0ID0gYmFzZS5ob3N0O1xuICAgICAgICAgIHVybC5wb3J0ID0gYmFzZS5wb3J0O1xuICAgICAgICAgIHN0YXRlID0gUEFUSDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfSBicmVhaztcblxuICAgICAgY2FzZSBTUEVDSUFMX0FVVEhPUklUWV9TTEFTSEVTOlxuICAgICAgICBzdGF0ZSA9IFNQRUNJQUxfQVVUSE9SSVRZX0lHTk9SRV9TTEFTSEVTO1xuICAgICAgICBpZiAoY2hhciAhPSAnLycgfHwgYnVmZmVyLmNoYXJBdChwb2ludGVyICsgMSkgIT0gJy8nKSBjb250aW51ZTtcbiAgICAgICAgcG9pbnRlcisrO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTUEVDSUFMX0FVVEhPUklUWV9JR05PUkVfU0xBU0hFUzpcbiAgICAgICAgaWYgKGNoYXIgIT0gJy8nICYmIGNoYXIgIT0gJ1xcXFwnKSB7XG4gICAgICAgICAgc3RhdGUgPSBBVVRIT1JJVFk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gYnJlYWs7XG5cbiAgICAgIGNhc2UgQVVUSE9SSVRZOlxuICAgICAgICBpZiAoY2hhciA9PSAnQCcpIHtcbiAgICAgICAgICBpZiAoc2VlbkF0KSBidWZmZXIgPSAnJTQwJyArIGJ1ZmZlcjtcbiAgICAgICAgICBzZWVuQXQgPSB0cnVlO1xuICAgICAgICAgIGJ1ZmZlckNvZGVQb2ludHMgPSBhcnJheUZyb20oYnVmZmVyKTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1ZmZlckNvZGVQb2ludHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBjb2RlUG9pbnQgPSBidWZmZXJDb2RlUG9pbnRzW2ldO1xuICAgICAgICAgICAgaWYgKGNvZGVQb2ludCA9PSAnOicgJiYgIXNlZW5QYXNzd29yZFRva2VuKSB7XG4gICAgICAgICAgICAgIHNlZW5QYXNzd29yZFRva2VuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZW5jb2RlZENvZGVQb2ludHMgPSBwZXJjZW50RW5jb2RlKGNvZGVQb2ludCwgdXNlcmluZm9QZXJjZW50RW5jb2RlU2V0KTtcbiAgICAgICAgICAgIGlmIChzZWVuUGFzc3dvcmRUb2tlbikgdXJsLnBhc3N3b3JkICs9IGVuY29kZWRDb2RlUG9pbnRzO1xuICAgICAgICAgICAgZWxzZSB1cmwudXNlcm5hbWUgKz0gZW5jb2RlZENvZGVQb2ludHM7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJ1ZmZlciA9ICcnO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGNoYXIgPT0gRU9GIHx8IGNoYXIgPT0gJy8nIHx8IGNoYXIgPT0gJz8nIHx8IGNoYXIgPT0gJyMnIHx8XG4gICAgICAgICAgKGNoYXIgPT0gJ1xcXFwnICYmIGlzU3BlY2lhbCh1cmwpKVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoc2VlbkF0ICYmIGJ1ZmZlciA9PSAnJykgcmV0dXJuIElOVkFMSURfQVVUSE9SSVRZO1xuICAgICAgICAgIHBvaW50ZXIgLT0gYXJyYXlGcm9tKGJ1ZmZlcikubGVuZ3RoICsgMTtcbiAgICAgICAgICBidWZmZXIgPSAnJztcbiAgICAgICAgICBzdGF0ZSA9IEhPU1Q7XG4gICAgICAgIH0gZWxzZSBidWZmZXIgKz0gY2hhcjtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgSE9TVDpcbiAgICAgIGNhc2UgSE9TVE5BTUU6XG4gICAgICAgIGlmIChzdGF0ZU92ZXJyaWRlICYmIHVybC5zY2hlbWUgPT0gJ2ZpbGUnKSB7XG4gICAgICAgICAgc3RhdGUgPSBGSUxFX0hPU1Q7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhciA9PSAnOicgJiYgIXNlZW5CcmFja2V0KSB7XG4gICAgICAgICAgaWYgKGJ1ZmZlciA9PSAnJykgcmV0dXJuIElOVkFMSURfSE9TVDtcbiAgICAgICAgICBmYWlsdXJlID0gcGFyc2VIb3N0KHVybCwgYnVmZmVyKTtcbiAgICAgICAgICBpZiAoZmFpbHVyZSkgcmV0dXJuIGZhaWx1cmU7XG4gICAgICAgICAgYnVmZmVyID0gJyc7XG4gICAgICAgICAgc3RhdGUgPSBQT1JUO1xuICAgICAgICAgIGlmIChzdGF0ZU92ZXJyaWRlID09IEhPU1ROQU1FKSByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgY2hhciA9PSBFT0YgfHwgY2hhciA9PSAnLycgfHwgY2hhciA9PSAnPycgfHwgY2hhciA9PSAnIycgfHxcbiAgICAgICAgICAoY2hhciA9PSAnXFxcXCcgJiYgaXNTcGVjaWFsKHVybCkpXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChpc1NwZWNpYWwodXJsKSAmJiBidWZmZXIgPT0gJycpIHJldHVybiBJTlZBTElEX0hPU1Q7XG4gICAgICAgICAgaWYgKHN0YXRlT3ZlcnJpZGUgJiYgYnVmZmVyID09ICcnICYmIChpbmNsdWRlc0NyZWRlbnRpYWxzKHVybCkgfHwgdXJsLnBvcnQgIT09IG51bGwpKSByZXR1cm47XG4gICAgICAgICAgZmFpbHVyZSA9IHBhcnNlSG9zdCh1cmwsIGJ1ZmZlcik7XG4gICAgICAgICAgaWYgKGZhaWx1cmUpIHJldHVybiBmYWlsdXJlO1xuICAgICAgICAgIGJ1ZmZlciA9ICcnO1xuICAgICAgICAgIHN0YXRlID0gUEFUSF9TVEFSVDtcbiAgICAgICAgICBpZiAoc3RhdGVPdmVycmlkZSkgcmV0dXJuO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChjaGFyID09ICdbJykgc2VlbkJyYWNrZXQgPSB0cnVlO1xuICAgICAgICAgIGVsc2UgaWYgKGNoYXIgPT0gJ10nKSBzZWVuQnJhY2tldCA9IGZhbHNlO1xuICAgICAgICAgIGJ1ZmZlciArPSBjaGFyO1xuICAgICAgICB9IGJyZWFrO1xuXG4gICAgICBjYXNlIFBPUlQ6XG4gICAgICAgIGlmIChESUdJVC50ZXN0KGNoYXIpKSB7XG4gICAgICAgICAgYnVmZmVyICs9IGNoYXI7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgY2hhciA9PSBFT0YgfHwgY2hhciA9PSAnLycgfHwgY2hhciA9PSAnPycgfHwgY2hhciA9PSAnIycgfHxcbiAgICAgICAgICAoY2hhciA9PSAnXFxcXCcgJiYgaXNTcGVjaWFsKHVybCkpIHx8XG4gICAgICAgICAgc3RhdGVPdmVycmlkZVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoYnVmZmVyICE9ICcnKSB7XG4gICAgICAgICAgICB2YXIgcG9ydCA9IHBhcnNlSW50KGJ1ZmZlciwgMTApO1xuICAgICAgICAgICAgaWYgKHBvcnQgPiAweEZGRkYpIHJldHVybiBJTlZBTElEX1BPUlQ7XG4gICAgICAgICAgICB1cmwucG9ydCA9IChpc1NwZWNpYWwodXJsKSAmJiBwb3J0ID09PSBzcGVjaWFsU2NoZW1lc1t1cmwuc2NoZW1lXSkgPyBudWxsIDogcG9ydDtcbiAgICAgICAgICAgIGJ1ZmZlciA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3RhdGVPdmVycmlkZSkgcmV0dXJuO1xuICAgICAgICAgIHN0YXRlID0gUEFUSF9TVEFSVDtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfSBlbHNlIHJldHVybiBJTlZBTElEX1BPUlQ7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIEZJTEU6XG4gICAgICAgIHVybC5zY2hlbWUgPSAnZmlsZSc7XG4gICAgICAgIGlmIChjaGFyID09ICcvJyB8fCBjaGFyID09ICdcXFxcJykgc3RhdGUgPSBGSUxFX1NMQVNIO1xuICAgICAgICBlbHNlIGlmIChiYXNlICYmIGJhc2Uuc2NoZW1lID09ICdmaWxlJykge1xuICAgICAgICAgIGlmIChjaGFyID09IEVPRikge1xuICAgICAgICAgICAgdXJsLmhvc3QgPSBiYXNlLmhvc3Q7XG4gICAgICAgICAgICB1cmwucGF0aCA9IGJhc2UucGF0aC5zbGljZSgpO1xuICAgICAgICAgICAgdXJsLnF1ZXJ5ID0gYmFzZS5xdWVyeTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYXIgPT0gJz8nKSB7XG4gICAgICAgICAgICB1cmwuaG9zdCA9IGJhc2UuaG9zdDtcbiAgICAgICAgICAgIHVybC5wYXRoID0gYmFzZS5wYXRoLnNsaWNlKCk7XG4gICAgICAgICAgICB1cmwucXVlcnkgPSAnJztcbiAgICAgICAgICAgIHN0YXRlID0gUVVFUlk7XG4gICAgICAgICAgfSBlbHNlIGlmIChjaGFyID09ICcjJykge1xuICAgICAgICAgICAgdXJsLmhvc3QgPSBiYXNlLmhvc3Q7XG4gICAgICAgICAgICB1cmwucGF0aCA9IGJhc2UucGF0aC5zbGljZSgpO1xuICAgICAgICAgICAgdXJsLnF1ZXJ5ID0gYmFzZS5xdWVyeTtcbiAgICAgICAgICAgIHVybC5mcmFnbWVudCA9ICcnO1xuICAgICAgICAgICAgc3RhdGUgPSBGUkFHTUVOVDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFzdGFydHNXaXRoV2luZG93c0RyaXZlTGV0dGVyKGNvZGVQb2ludHMuc2xpY2UocG9pbnRlcikuam9pbignJykpKSB7XG4gICAgICAgICAgICAgIHVybC5ob3N0ID0gYmFzZS5ob3N0O1xuICAgICAgICAgICAgICB1cmwucGF0aCA9IGJhc2UucGF0aC5zbGljZSgpO1xuICAgICAgICAgICAgICBzaG9ydGVuVVJMc1BhdGgodXJsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXRlID0gUEFUSDtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZSA9IFBBVEg7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH0gYnJlYWs7XG5cbiAgICAgIGNhc2UgRklMRV9TTEFTSDpcbiAgICAgICAgaWYgKGNoYXIgPT0gJy8nIHx8IGNoYXIgPT0gJ1xcXFwnKSB7XG4gICAgICAgICAgc3RhdGUgPSBGSUxFX0hPU1Q7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJhc2UgJiYgYmFzZS5zY2hlbWUgPT0gJ2ZpbGUnICYmICFzdGFydHNXaXRoV2luZG93c0RyaXZlTGV0dGVyKGNvZGVQb2ludHMuc2xpY2UocG9pbnRlcikuam9pbignJykpKSB7XG4gICAgICAgICAgaWYgKGlzV2luZG93c0RyaXZlTGV0dGVyKGJhc2UucGF0aFswXSwgdHJ1ZSkpIHVybC5wYXRoLnB1c2goYmFzZS5wYXRoWzBdKTtcbiAgICAgICAgICBlbHNlIHVybC5ob3N0ID0gYmFzZS5ob3N0O1xuICAgICAgICB9XG4gICAgICAgIHN0YXRlID0gUEFUSDtcbiAgICAgICAgY29udGludWU7XG5cbiAgICAgIGNhc2UgRklMRV9IT1NUOlxuICAgICAgICBpZiAoY2hhciA9PSBFT0YgfHwgY2hhciA9PSAnLycgfHwgY2hhciA9PSAnXFxcXCcgfHwgY2hhciA9PSAnPycgfHwgY2hhciA9PSAnIycpIHtcbiAgICAgICAgICBpZiAoIXN0YXRlT3ZlcnJpZGUgJiYgaXNXaW5kb3dzRHJpdmVMZXR0ZXIoYnVmZmVyKSkge1xuICAgICAgICAgICAgc3RhdGUgPSBQQVRIO1xuICAgICAgICAgIH0gZWxzZSBpZiAoYnVmZmVyID09ICcnKSB7XG4gICAgICAgICAgICB1cmwuaG9zdCA9ICcnO1xuICAgICAgICAgICAgaWYgKHN0YXRlT3ZlcnJpZGUpIHJldHVybjtcbiAgICAgICAgICAgIHN0YXRlID0gUEFUSF9TVEFSVDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmFpbHVyZSA9IHBhcnNlSG9zdCh1cmwsIGJ1ZmZlcik7XG4gICAgICAgICAgICBpZiAoZmFpbHVyZSkgcmV0dXJuIGZhaWx1cmU7XG4gICAgICAgICAgICBpZiAodXJsLmhvc3QgPT0gJ2xvY2FsaG9zdCcpIHVybC5ob3N0ID0gJyc7XG4gICAgICAgICAgICBpZiAoc3RhdGVPdmVycmlkZSkgcmV0dXJuO1xuICAgICAgICAgICAgYnVmZmVyID0gJyc7XG4gICAgICAgICAgICBzdGF0ZSA9IFBBVEhfU1RBUlQ7XG4gICAgICAgICAgfSBjb250aW51ZTtcbiAgICAgICAgfSBlbHNlIGJ1ZmZlciArPSBjaGFyO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBQQVRIX1NUQVJUOlxuICAgICAgICBpZiAoaXNTcGVjaWFsKHVybCkpIHtcbiAgICAgICAgICBzdGF0ZSA9IFBBVEg7XG4gICAgICAgICAgaWYgKGNoYXIgIT0gJy8nICYmIGNoYXIgIT0gJ1xcXFwnKSBjb250aW51ZTtcbiAgICAgICAgfSBlbHNlIGlmICghc3RhdGVPdmVycmlkZSAmJiBjaGFyID09ICc/Jykge1xuICAgICAgICAgIHVybC5xdWVyeSA9ICcnO1xuICAgICAgICAgIHN0YXRlID0gUVVFUlk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXN0YXRlT3ZlcnJpZGUgJiYgY2hhciA9PSAnIycpIHtcbiAgICAgICAgICB1cmwuZnJhZ21lbnQgPSAnJztcbiAgICAgICAgICBzdGF0ZSA9IEZSQUdNRU5UO1xuICAgICAgICB9IGVsc2UgaWYgKGNoYXIgIT0gRU9GKSB7XG4gICAgICAgICAgc3RhdGUgPSBQQVRIO1xuICAgICAgICAgIGlmIChjaGFyICE9ICcvJykgY29udGludWU7XG4gICAgICAgIH0gYnJlYWs7XG5cbiAgICAgIGNhc2UgUEFUSDpcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNoYXIgPT0gRU9GIHx8IGNoYXIgPT0gJy8nIHx8XG4gICAgICAgICAgKGNoYXIgPT0gJ1xcXFwnICYmIGlzU3BlY2lhbCh1cmwpKSB8fFxuICAgICAgICAgICghc3RhdGVPdmVycmlkZSAmJiAoY2hhciA9PSAnPycgfHwgY2hhciA9PSAnIycpKVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoaXNEb3VibGVEb3QoYnVmZmVyKSkge1xuICAgICAgICAgICAgc2hvcnRlblVSTHNQYXRoKHVybCk7XG4gICAgICAgICAgICBpZiAoY2hhciAhPSAnLycgJiYgIShjaGFyID09ICdcXFxcJyAmJiBpc1NwZWNpYWwodXJsKSkpIHtcbiAgICAgICAgICAgICAgdXJsLnBhdGgucHVzaCgnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChpc1NpbmdsZURvdChidWZmZXIpKSB7XG4gICAgICAgICAgICBpZiAoY2hhciAhPSAnLycgJiYgIShjaGFyID09ICdcXFxcJyAmJiBpc1NwZWNpYWwodXJsKSkpIHtcbiAgICAgICAgICAgICAgdXJsLnBhdGgucHVzaCgnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh1cmwuc2NoZW1lID09ICdmaWxlJyAmJiAhdXJsLnBhdGgubGVuZ3RoICYmIGlzV2luZG93c0RyaXZlTGV0dGVyKGJ1ZmZlcikpIHtcbiAgICAgICAgICAgICAgaWYgKHVybC5ob3N0KSB1cmwuaG9zdCA9ICcnO1xuICAgICAgICAgICAgICBidWZmZXIgPSBidWZmZXIuY2hhckF0KDApICsgJzonOyAvLyBub3JtYWxpemUgd2luZG93cyBkcml2ZSBsZXR0ZXJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVybC5wYXRoLnB1c2goYnVmZmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnVmZmVyID0gJyc7XG4gICAgICAgICAgaWYgKHVybC5zY2hlbWUgPT0gJ2ZpbGUnICYmIChjaGFyID09IEVPRiB8fCBjaGFyID09ICc/JyB8fCBjaGFyID09ICcjJykpIHtcbiAgICAgICAgICAgIHdoaWxlICh1cmwucGF0aC5sZW5ndGggPiAxICYmIHVybC5wYXRoWzBdID09PSAnJykge1xuICAgICAgICAgICAgICB1cmwucGF0aC5zaGlmdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2hhciA9PSAnPycpIHtcbiAgICAgICAgICAgIHVybC5xdWVyeSA9ICcnO1xuICAgICAgICAgICAgc3RhdGUgPSBRVUVSWTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYXIgPT0gJyMnKSB7XG4gICAgICAgICAgICB1cmwuZnJhZ21lbnQgPSAnJztcbiAgICAgICAgICAgIHN0YXRlID0gRlJBR01FTlQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJ1ZmZlciArPSBwZXJjZW50RW5jb2RlKGNoYXIsIHBhdGhQZXJjZW50RW5jb2RlU2V0KTtcbiAgICAgICAgfSBicmVhaztcblxuICAgICAgY2FzZSBDQU5OT1RfQkVfQV9CQVNFX1VSTF9QQVRIOlxuICAgICAgICBpZiAoY2hhciA9PSAnPycpIHtcbiAgICAgICAgICB1cmwucXVlcnkgPSAnJztcbiAgICAgICAgICBzdGF0ZSA9IFFVRVJZO1xuICAgICAgICB9IGVsc2UgaWYgKGNoYXIgPT0gJyMnKSB7XG4gICAgICAgICAgdXJsLmZyYWdtZW50ID0gJyc7XG4gICAgICAgICAgc3RhdGUgPSBGUkFHTUVOVDtcbiAgICAgICAgfSBlbHNlIGlmIChjaGFyICE9IEVPRikge1xuICAgICAgICAgIHVybC5wYXRoWzBdICs9IHBlcmNlbnRFbmNvZGUoY2hhciwgQzBDb250cm9sUGVyY2VudEVuY29kZVNldCk7XG4gICAgICAgIH0gYnJlYWs7XG5cbiAgICAgIGNhc2UgUVVFUlk6XG4gICAgICAgIGlmICghc3RhdGVPdmVycmlkZSAmJiBjaGFyID09ICcjJykge1xuICAgICAgICAgIHVybC5mcmFnbWVudCA9ICcnO1xuICAgICAgICAgIHN0YXRlID0gRlJBR01FTlQ7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhciAhPSBFT0YpIHtcbiAgICAgICAgICBpZiAoY2hhciA9PSBcIidcIiAmJiBpc1NwZWNpYWwodXJsKSkgdXJsLnF1ZXJ5ICs9ICclMjcnO1xuICAgICAgICAgIGVsc2UgaWYgKGNoYXIgPT0gJyMnKSB1cmwucXVlcnkgKz0gJyUyMyc7XG4gICAgICAgICAgZWxzZSB1cmwucXVlcnkgKz0gcGVyY2VudEVuY29kZShjaGFyLCBDMENvbnRyb2xQZXJjZW50RW5jb2RlU2V0KTtcbiAgICAgICAgfSBicmVhaztcblxuICAgICAgY2FzZSBGUkFHTUVOVDpcbiAgICAgICAgaWYgKGNoYXIgIT0gRU9GKSB1cmwuZnJhZ21lbnQgKz0gcGVyY2VudEVuY29kZShjaGFyLCBmcmFnbWVudFBlcmNlbnRFbmNvZGVTZXQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBwb2ludGVyKys7XG4gIH1cbn07XG5cbi8vIGBVUkxgIGNvbnN0cnVjdG9yXG4vLyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI3VybC1jbGFzc1xudmFyIFVSTENvbnN0cnVjdG9yID0gZnVuY3Rpb24gVVJMKHVybCAvKiAsIGJhc2UgKi8pIHtcbiAgdmFyIHRoYXQgPSBhbkluc3RhbmNlKHRoaXMsIFVSTENvbnN0cnVjdG9yLCAnVVJMJyk7XG4gIHZhciBiYXNlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4gIHZhciB1cmxTdHJpbmcgPSBTdHJpbmcodXJsKTtcbiAgdmFyIHN0YXRlID0gc2V0SW50ZXJuYWxTdGF0ZSh0aGF0LCB7IHR5cGU6ICdVUkwnIH0pO1xuICB2YXIgYmFzZVN0YXRlLCBmYWlsdXJlO1xuICBpZiAoYmFzZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKGJhc2UgaW5zdGFuY2VvZiBVUkxDb25zdHJ1Y3RvcikgYmFzZVN0YXRlID0gZ2V0SW50ZXJuYWxVUkxTdGF0ZShiYXNlKTtcbiAgICBlbHNlIHtcbiAgICAgIGZhaWx1cmUgPSBwYXJzZVVSTChiYXNlU3RhdGUgPSB7fSwgU3RyaW5nKGJhc2UpKTtcbiAgICAgIGlmIChmYWlsdXJlKSB0aHJvdyBUeXBlRXJyb3IoZmFpbHVyZSk7XG4gICAgfVxuICB9XG4gIGZhaWx1cmUgPSBwYXJzZVVSTChzdGF0ZSwgdXJsU3RyaW5nLCBudWxsLCBiYXNlU3RhdGUpO1xuICBpZiAoZmFpbHVyZSkgdGhyb3cgVHlwZUVycm9yKGZhaWx1cmUpO1xuICB2YXIgc2VhcmNoUGFyYW1zID0gc3RhdGUuc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICB2YXIgc2VhcmNoUGFyYW1zU3RhdGUgPSBnZXRJbnRlcm5hbFNlYXJjaFBhcmFtc1N0YXRlKHNlYXJjaFBhcmFtcyk7XG4gIHNlYXJjaFBhcmFtc1N0YXRlLnVwZGF0ZVNlYXJjaFBhcmFtcyhzdGF0ZS5xdWVyeSk7XG4gIHNlYXJjaFBhcmFtc1N0YXRlLnVwZGF0ZVVSTCA9IGZ1bmN0aW9uICgpIHtcbiAgICBzdGF0ZS5xdWVyeSA9IFN0cmluZyhzZWFyY2hQYXJhbXMpIHx8IG51bGw7XG4gIH07XG4gIGlmICghREVTQ1JJUFRPUlMpIHtcbiAgICB0aGF0LmhyZWYgPSBzZXJpYWxpemVVUkwuY2FsbCh0aGF0KTtcbiAgICB0aGF0Lm9yaWdpbiA9IGdldE9yaWdpbi5jYWxsKHRoYXQpO1xuICAgIHRoYXQucHJvdG9jb2wgPSBnZXRQcm90b2NvbC5jYWxsKHRoYXQpO1xuICAgIHRoYXQudXNlcm5hbWUgPSBnZXRVc2VybmFtZS5jYWxsKHRoYXQpO1xuICAgIHRoYXQucGFzc3dvcmQgPSBnZXRQYXNzd29yZC5jYWxsKHRoYXQpO1xuICAgIHRoYXQuaG9zdCA9IGdldEhvc3QuY2FsbCh0aGF0KTtcbiAgICB0aGF0Lmhvc3RuYW1lID0gZ2V0SG9zdG5hbWUuY2FsbCh0aGF0KTtcbiAgICB0aGF0LnBvcnQgPSBnZXRQb3J0LmNhbGwodGhhdCk7XG4gICAgdGhhdC5wYXRobmFtZSA9IGdldFBhdGhuYW1lLmNhbGwodGhhdCk7XG4gICAgdGhhdC5zZWFyY2ggPSBnZXRTZWFyY2guY2FsbCh0aGF0KTtcbiAgICB0aGF0LnNlYXJjaFBhcmFtcyA9IGdldFNlYXJjaFBhcmFtcy5jYWxsKHRoYXQpO1xuICAgIHRoYXQuaGFzaCA9IGdldEhhc2guY2FsbCh0aGF0KTtcbiAgfVxufTtcblxudmFyIFVSTFByb3RvdHlwZSA9IFVSTENvbnN0cnVjdG9yLnByb3RvdHlwZTtcblxudmFyIHNlcmlhbGl6ZVVSTCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHVybCA9IGdldEludGVybmFsVVJMU3RhdGUodGhpcyk7XG4gIHZhciBzY2hlbWUgPSB1cmwuc2NoZW1lO1xuICB2YXIgdXNlcm5hbWUgPSB1cmwudXNlcm5hbWU7XG4gIHZhciBwYXNzd29yZCA9IHVybC5wYXNzd29yZDtcbiAgdmFyIGhvc3QgPSB1cmwuaG9zdDtcbiAgdmFyIHBvcnQgPSB1cmwucG9ydDtcbiAgdmFyIHBhdGggPSB1cmwucGF0aDtcbiAgdmFyIHF1ZXJ5ID0gdXJsLnF1ZXJ5O1xuICB2YXIgZnJhZ21lbnQgPSB1cmwuZnJhZ21lbnQ7XG4gIHZhciBvdXRwdXQgPSBzY2hlbWUgKyAnOic7XG4gIGlmIChob3N0ICE9PSBudWxsKSB7XG4gICAgb3V0cHV0ICs9ICcvLyc7XG4gICAgaWYgKGluY2x1ZGVzQ3JlZGVudGlhbHModXJsKSkge1xuICAgICAgb3V0cHV0ICs9IHVzZXJuYW1lICsgKHBhc3N3b3JkID8gJzonICsgcGFzc3dvcmQgOiAnJykgKyAnQCc7XG4gICAgfVxuICAgIG91dHB1dCArPSBzZXJpYWxpemVIb3N0KGhvc3QpO1xuICAgIGlmIChwb3J0ICE9PSBudWxsKSBvdXRwdXQgKz0gJzonICsgcG9ydDtcbiAgfSBlbHNlIGlmIChzY2hlbWUgPT0gJ2ZpbGUnKSBvdXRwdXQgKz0gJy8vJztcbiAgb3V0cHV0ICs9IHVybC5jYW5ub3RCZUFCYXNlVVJMID8gcGF0aFswXSA6IHBhdGgubGVuZ3RoID8gJy8nICsgcGF0aC5qb2luKCcvJykgOiAnJztcbiAgaWYgKHF1ZXJ5ICE9PSBudWxsKSBvdXRwdXQgKz0gJz8nICsgcXVlcnk7XG4gIGlmIChmcmFnbWVudCAhPT0gbnVsbCkgb3V0cHV0ICs9ICcjJyArIGZyYWdtZW50O1xuICByZXR1cm4gb3V0cHV0O1xufTtcblxudmFyIGdldE9yaWdpbiA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHVybCA9IGdldEludGVybmFsVVJMU3RhdGUodGhpcyk7XG4gIHZhciBzY2hlbWUgPSB1cmwuc2NoZW1lO1xuICB2YXIgcG9ydCA9IHVybC5wb3J0O1xuICBpZiAoc2NoZW1lID09ICdibG9iJykgdHJ5IHtcbiAgICByZXR1cm4gbmV3IFVSTChzY2hlbWUucGF0aFswXSkub3JpZ2luO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiAnbnVsbCc7XG4gIH1cbiAgaWYgKHNjaGVtZSA9PSAnZmlsZScgfHwgIWlzU3BlY2lhbCh1cmwpKSByZXR1cm4gJ251bGwnO1xuICByZXR1cm4gc2NoZW1lICsgJzovLycgKyBzZXJpYWxpemVIb3N0KHVybC5ob3N0KSArIChwb3J0ICE9PSBudWxsID8gJzonICsgcG9ydCA6ICcnKTtcbn07XG5cbnZhciBnZXRQcm90b2NvbCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGdldEludGVybmFsVVJMU3RhdGUodGhpcykuc2NoZW1lICsgJzonO1xufTtcblxudmFyIGdldFVzZXJuYW1lID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gZ2V0SW50ZXJuYWxVUkxTdGF0ZSh0aGlzKS51c2VybmFtZTtcbn07XG5cbnZhciBnZXRQYXNzd29yZCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGdldEludGVybmFsVVJMU3RhdGUodGhpcykucGFzc3dvcmQ7XG59O1xuXG52YXIgZ2V0SG9zdCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHVybCA9IGdldEludGVybmFsVVJMU3RhdGUodGhpcyk7XG4gIHZhciBob3N0ID0gdXJsLmhvc3Q7XG4gIHZhciBwb3J0ID0gdXJsLnBvcnQ7XG4gIHJldHVybiBob3N0ID09PSBudWxsID8gJydcbiAgICA6IHBvcnQgPT09IG51bGwgPyBzZXJpYWxpemVIb3N0KGhvc3QpXG4gICAgOiBzZXJpYWxpemVIb3N0KGhvc3QpICsgJzonICsgcG9ydDtcbn07XG5cbnZhciBnZXRIb3N0bmFtZSA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGhvc3QgPSBnZXRJbnRlcm5hbFVSTFN0YXRlKHRoaXMpLmhvc3Q7XG4gIHJldHVybiBob3N0ID09PSBudWxsID8gJycgOiBzZXJpYWxpemVIb3N0KGhvc3QpO1xufTtcblxudmFyIGdldFBvcnQgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBwb3J0ID0gZ2V0SW50ZXJuYWxVUkxTdGF0ZSh0aGlzKS5wb3J0O1xuICByZXR1cm4gcG9ydCA9PT0gbnVsbCA/ICcnIDogU3RyaW5nKHBvcnQpO1xufTtcblxudmFyIGdldFBhdGhuYW1lID0gZnVuY3Rpb24gKCkge1xuICB2YXIgdXJsID0gZ2V0SW50ZXJuYWxVUkxTdGF0ZSh0aGlzKTtcbiAgdmFyIHBhdGggPSB1cmwucGF0aDtcbiAgcmV0dXJuIHVybC5jYW5ub3RCZUFCYXNlVVJMID8gcGF0aFswXSA6IHBhdGgubGVuZ3RoID8gJy8nICsgcGF0aC5qb2luKCcvJykgOiAnJztcbn07XG5cbnZhciBnZXRTZWFyY2ggPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBxdWVyeSA9IGdldEludGVybmFsVVJMU3RhdGUodGhpcykucXVlcnk7XG4gIHJldHVybiBxdWVyeSA/ICc/JyArIHF1ZXJ5IDogJyc7XG59O1xuXG52YXIgZ2V0U2VhcmNoUGFyYW1zID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gZ2V0SW50ZXJuYWxVUkxTdGF0ZSh0aGlzKS5zZWFyY2hQYXJhbXM7XG59O1xuXG52YXIgZ2V0SGFzaCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGZyYWdtZW50ID0gZ2V0SW50ZXJuYWxVUkxTdGF0ZSh0aGlzKS5mcmFnbWVudDtcbiAgcmV0dXJuIGZyYWdtZW50ID8gJyMnICsgZnJhZ21lbnQgOiAnJztcbn07XG5cbnZhciBhY2Nlc3NvckRlc2NyaXB0b3IgPSBmdW5jdGlvbiAoZ2V0dGVyLCBzZXR0ZXIpIHtcbiAgcmV0dXJuIHsgZ2V0OiBnZXR0ZXIsIHNldDogc2V0dGVyLCBjb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUgfTtcbn07XG5cbmlmIChERVNDUklQVE9SUykge1xuICBkZWZpbmVQcm9wZXJ0aWVzKFVSTFByb3RvdHlwZSwge1xuICAgIC8vIGBVUkwucHJvdG90eXBlLmhyZWZgIGFjY2Vzc29ycyBwYWlyXG4gICAgLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNkb20tdXJsLWhyZWZcbiAgICBocmVmOiBhY2Nlc3NvckRlc2NyaXB0b3Ioc2VyaWFsaXplVVJMLCBmdW5jdGlvbiAoaHJlZikge1xuICAgICAgdmFyIHVybCA9IGdldEludGVybmFsVVJMU3RhdGUodGhpcyk7XG4gICAgICB2YXIgdXJsU3RyaW5nID0gU3RyaW5nKGhyZWYpO1xuICAgICAgdmFyIGZhaWx1cmUgPSBwYXJzZVVSTCh1cmwsIHVybFN0cmluZyk7XG4gICAgICBpZiAoZmFpbHVyZSkgdGhyb3cgVHlwZUVycm9yKGZhaWx1cmUpO1xuICAgICAgZ2V0SW50ZXJuYWxTZWFyY2hQYXJhbXNTdGF0ZSh1cmwuc2VhcmNoUGFyYW1zKS51cGRhdGVTZWFyY2hQYXJhbXModXJsLnF1ZXJ5KTtcbiAgICB9KSxcbiAgICAvLyBgVVJMLnByb3RvdHlwZS5vcmlnaW5gIGdldHRlclxuICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jZG9tLXVybC1vcmlnaW5cbiAgICBvcmlnaW46IGFjY2Vzc29yRGVzY3JpcHRvcihnZXRPcmlnaW4pLFxuICAgIC8vIGBVUkwucHJvdG90eXBlLnByb3RvY29sYCBhY2Nlc3NvcnMgcGFpclxuICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jZG9tLXVybC1wcm90b2NvbFxuICAgIHByb3RvY29sOiBhY2Nlc3NvckRlc2NyaXB0b3IoZ2V0UHJvdG9jb2wsIGZ1bmN0aW9uIChwcm90b2NvbCkge1xuICAgICAgdmFyIHVybCA9IGdldEludGVybmFsVVJMU3RhdGUodGhpcyk7XG4gICAgICBwYXJzZVVSTCh1cmwsIFN0cmluZyhwcm90b2NvbCkgKyAnOicsIFNDSEVNRV9TVEFSVCk7XG4gICAgfSksXG4gICAgLy8gYFVSTC5wcm90b3R5cGUudXNlcm5hbWVgIGFjY2Vzc29ycyBwYWlyXG4gICAgLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNkb20tdXJsLXVzZXJuYW1lXG4gICAgdXNlcm5hbWU6IGFjY2Vzc29yRGVzY3JpcHRvcihnZXRVc2VybmFtZSwgZnVuY3Rpb24gKHVzZXJuYW1lKSB7XG4gICAgICB2YXIgdXJsID0gZ2V0SW50ZXJuYWxVUkxTdGF0ZSh0aGlzKTtcbiAgICAgIHZhciBjb2RlUG9pbnRzID0gYXJyYXlGcm9tKFN0cmluZyh1c2VybmFtZSkpO1xuICAgICAgaWYgKGNhbm5vdEhhdmVVc2VybmFtZVBhc3N3b3JkUG9ydCh1cmwpKSByZXR1cm47XG4gICAgICB1cmwudXNlcm5hbWUgPSAnJztcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29kZVBvaW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB1cmwudXNlcm5hbWUgKz0gcGVyY2VudEVuY29kZShjb2RlUG9pbnRzW2ldLCB1c2VyaW5mb1BlcmNlbnRFbmNvZGVTZXQpO1xuICAgICAgfVxuICAgIH0pLFxuICAgIC8vIGBVUkwucHJvdG90eXBlLnBhc3N3b3JkYCBhY2Nlc3NvcnMgcGFpclxuICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jZG9tLXVybC1wYXNzd29yZFxuICAgIHBhc3N3b3JkOiBhY2Nlc3NvckRlc2NyaXB0b3IoZ2V0UGFzc3dvcmQsIGZ1bmN0aW9uIChwYXNzd29yZCkge1xuICAgICAgdmFyIHVybCA9IGdldEludGVybmFsVVJMU3RhdGUodGhpcyk7XG4gICAgICB2YXIgY29kZVBvaW50cyA9IGFycmF5RnJvbShTdHJpbmcocGFzc3dvcmQpKTtcbiAgICAgIGlmIChjYW5ub3RIYXZlVXNlcm5hbWVQYXNzd29yZFBvcnQodXJsKSkgcmV0dXJuO1xuICAgICAgdXJsLnBhc3N3b3JkID0gJyc7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvZGVQb2ludHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdXJsLnBhc3N3b3JkICs9IHBlcmNlbnRFbmNvZGUoY29kZVBvaW50c1tpXSwgdXNlcmluZm9QZXJjZW50RW5jb2RlU2V0KTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICAvLyBgVVJMLnByb3RvdHlwZS5ob3N0YCBhY2Nlc3NvcnMgcGFpclxuICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jZG9tLXVybC1ob3N0XG4gICAgaG9zdDogYWNjZXNzb3JEZXNjcmlwdG9yKGdldEhvc3QsIGZ1bmN0aW9uIChob3N0KSB7XG4gICAgICB2YXIgdXJsID0gZ2V0SW50ZXJuYWxVUkxTdGF0ZSh0aGlzKTtcbiAgICAgIGlmICh1cmwuY2Fubm90QmVBQmFzZVVSTCkgcmV0dXJuO1xuICAgICAgcGFyc2VVUkwodXJsLCBTdHJpbmcoaG9zdCksIEhPU1QpO1xuICAgIH0pLFxuICAgIC8vIGBVUkwucHJvdG90eXBlLmhvc3RuYW1lYCBhY2Nlc3NvcnMgcGFpclxuICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jZG9tLXVybC1ob3N0bmFtZVxuICAgIGhvc3RuYW1lOiBhY2Nlc3NvckRlc2NyaXB0b3IoZ2V0SG9zdG5hbWUsIGZ1bmN0aW9uIChob3N0bmFtZSkge1xuICAgICAgdmFyIHVybCA9IGdldEludGVybmFsVVJMU3RhdGUodGhpcyk7XG4gICAgICBpZiAodXJsLmNhbm5vdEJlQUJhc2VVUkwpIHJldHVybjtcbiAgICAgIHBhcnNlVVJMKHVybCwgU3RyaW5nKGhvc3RuYW1lKSwgSE9TVE5BTUUpO1xuICAgIH0pLFxuICAgIC8vIGBVUkwucHJvdG90eXBlLnBvcnRgIGFjY2Vzc29ycyBwYWlyXG4gICAgLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNkb20tdXJsLXBvcnRcbiAgICBwb3J0OiBhY2Nlc3NvckRlc2NyaXB0b3IoZ2V0UG9ydCwgZnVuY3Rpb24gKHBvcnQpIHtcbiAgICAgIHZhciB1cmwgPSBnZXRJbnRlcm5hbFVSTFN0YXRlKHRoaXMpO1xuICAgICAgaWYgKGNhbm5vdEhhdmVVc2VybmFtZVBhc3N3b3JkUG9ydCh1cmwpKSByZXR1cm47XG4gICAgICBwb3J0ID0gU3RyaW5nKHBvcnQpO1xuICAgICAgaWYgKHBvcnQgPT0gJycpIHVybC5wb3J0ID0gbnVsbDtcbiAgICAgIGVsc2UgcGFyc2VVUkwodXJsLCBwb3J0LCBQT1JUKTtcbiAgICB9KSxcbiAgICAvLyBgVVJMLnByb3RvdHlwZS5wYXRobmFtZWAgYWNjZXNzb3JzIHBhaXJcbiAgICAvLyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI2RvbS11cmwtcGF0aG5hbWVcbiAgICBwYXRobmFtZTogYWNjZXNzb3JEZXNjcmlwdG9yKGdldFBhdGhuYW1lLCBmdW5jdGlvbiAocGF0aG5hbWUpIHtcbiAgICAgIHZhciB1cmwgPSBnZXRJbnRlcm5hbFVSTFN0YXRlKHRoaXMpO1xuICAgICAgaWYgKHVybC5jYW5ub3RCZUFCYXNlVVJMKSByZXR1cm47XG4gICAgICB1cmwucGF0aCA9IFtdO1xuICAgICAgcGFyc2VVUkwodXJsLCBwYXRobmFtZSArICcnLCBQQVRIX1NUQVJUKTtcbiAgICB9KSxcbiAgICAvLyBgVVJMLnByb3RvdHlwZS5zZWFyY2hgIGFjY2Vzc29ycyBwYWlyXG4gICAgLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNkb20tdXJsLXNlYXJjaFxuICAgIHNlYXJjaDogYWNjZXNzb3JEZXNjcmlwdG9yKGdldFNlYXJjaCwgZnVuY3Rpb24gKHNlYXJjaCkge1xuICAgICAgdmFyIHVybCA9IGdldEludGVybmFsVVJMU3RhdGUodGhpcyk7XG4gICAgICBzZWFyY2ggPSBTdHJpbmcoc2VhcmNoKTtcbiAgICAgIGlmIChzZWFyY2ggPT0gJycpIHtcbiAgICAgICAgdXJsLnF1ZXJ5ID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICgnPycgPT0gc2VhcmNoLmNoYXJBdCgwKSkgc2VhcmNoID0gc2VhcmNoLnNsaWNlKDEpO1xuICAgICAgICB1cmwucXVlcnkgPSAnJztcbiAgICAgICAgcGFyc2VVUkwodXJsLCBzZWFyY2gsIFFVRVJZKTtcbiAgICAgIH1cbiAgICAgIGdldEludGVybmFsU2VhcmNoUGFyYW1zU3RhdGUodXJsLnNlYXJjaFBhcmFtcykudXBkYXRlU2VhcmNoUGFyYW1zKHVybC5xdWVyeSk7XG4gICAgfSksXG4gICAgLy8gYFVSTC5wcm90b3R5cGUuc2VhcmNoUGFyYW1zYCBnZXR0ZXJcbiAgICAvLyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI2RvbS11cmwtc2VhcmNocGFyYW1zXG4gICAgc2VhcmNoUGFyYW1zOiBhY2Nlc3NvckRlc2NyaXB0b3IoZ2V0U2VhcmNoUGFyYW1zKSxcbiAgICAvLyBgVVJMLnByb3RvdHlwZS5oYXNoYCBhY2Nlc3NvcnMgcGFpclxuICAgIC8vIGh0dHBzOi8vdXJsLnNwZWMud2hhdHdnLm9yZy8jZG9tLXVybC1oYXNoXG4gICAgaGFzaDogYWNjZXNzb3JEZXNjcmlwdG9yKGdldEhhc2gsIGZ1bmN0aW9uIChoYXNoKSB7XG4gICAgICB2YXIgdXJsID0gZ2V0SW50ZXJuYWxVUkxTdGF0ZSh0aGlzKTtcbiAgICAgIGhhc2ggPSBTdHJpbmcoaGFzaCk7XG4gICAgICBpZiAoaGFzaCA9PSAnJykge1xuICAgICAgICB1cmwuZnJhZ21lbnQgPSBudWxsO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoJyMnID09IGhhc2guY2hhckF0KDApKSBoYXNoID0gaGFzaC5zbGljZSgxKTtcbiAgICAgIHVybC5mcmFnbWVudCA9ICcnO1xuICAgICAgcGFyc2VVUkwodXJsLCBoYXNoLCBGUkFHTUVOVCk7XG4gICAgfSlcbiAgfSk7XG59XG5cbi8vIGBVUkwucHJvdG90eXBlLnRvSlNPTmAgbWV0aG9kXG4vLyBodHRwczovL3VybC5zcGVjLndoYXR3Zy5vcmcvI2RvbS11cmwtdG9qc29uXG5yZWRlZmluZShVUkxQcm90b3R5cGUsICd0b0pTT04nLCBmdW5jdGlvbiB0b0pTT04oKSB7XG4gIHJldHVybiBzZXJpYWxpemVVUkwuY2FsbCh0aGlzKTtcbn0sIHsgZW51bWVyYWJsZTogdHJ1ZSB9KTtcblxuLy8gYFVSTC5wcm90b3R5cGUudG9TdHJpbmdgIG1ldGhvZFxuLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNVUkwtc3RyaW5naWZpY2F0aW9uLWJlaGF2aW9yXG5yZWRlZmluZShVUkxQcm90b3R5cGUsICd0b1N0cmluZycsIGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICByZXR1cm4gc2VyaWFsaXplVVJMLmNhbGwodGhpcyk7XG59LCB7IGVudW1lcmFibGU6IHRydWUgfSk7XG5cbmlmIChOYXRpdmVVUkwpIHtcbiAgdmFyIG5hdGl2ZUNyZWF0ZU9iamVjdFVSTCA9IE5hdGl2ZVVSTC5jcmVhdGVPYmplY3RVUkw7XG4gIHZhciBuYXRpdmVSZXZva2VPYmplY3RVUkwgPSBOYXRpdmVVUkwucmV2b2tlT2JqZWN0VVJMO1xuICAvLyBgVVJMLmNyZWF0ZU9iamVjdFVSTGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9VUkwvY3JlYXRlT2JqZWN0VVJMXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICBpZiAobmF0aXZlQ3JlYXRlT2JqZWN0VVJMKSByZWRlZmluZShVUkxDb25zdHJ1Y3RvciwgJ2NyZWF0ZU9iamVjdFVSTCcsIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFVSTChibG9iKSB7XG4gICAgcmV0dXJuIG5hdGl2ZUNyZWF0ZU9iamVjdFVSTC5hcHBseShOYXRpdmVVUkwsIGFyZ3VtZW50cyk7XG4gIH0pO1xuICAvLyBgVVJMLnJldm9rZU9iamVjdFVSTGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9VUkwvcmV2b2tlT2JqZWN0VVJMXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuICBpZiAobmF0aXZlUmV2b2tlT2JqZWN0VVJMKSByZWRlZmluZShVUkxDb25zdHJ1Y3RvciwgJ3Jldm9rZU9iamVjdFVSTCcsIGZ1bmN0aW9uIHJldm9rZU9iamVjdFVSTCh1cmwpIHtcbiAgICByZXR1cm4gbmF0aXZlUmV2b2tlT2JqZWN0VVJMLmFwcGx5KE5hdGl2ZVVSTCwgYXJndW1lbnRzKTtcbiAgfSk7XG59XG5cbnNldFRvU3RyaW5nVGFnKFVSTENvbnN0cnVjdG9yLCAnVVJMJyk7XG5cbiQoeyBnbG9iYWw6IHRydWUsIGZvcmNlZDogIVVTRV9OQVRJVkVfVVJMLCBzaGFtOiAhREVTQ1JJUFRPUlMgfSwge1xuICBVUkw6IFVSTENvbnN0cnVjdG9yXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xuXG4vLyBgVVJMLnByb3RvdHlwZS50b0pTT05gIG1ldGhvZFxuLy8gaHR0cHM6Ly91cmwuc3BlYy53aGF0d2cub3JnLyNkb20tdXJsLXRvanNvblxuJCh7IHRhcmdldDogJ1VSTCcsIHByb3RvOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlIH0sIHtcbiAgdG9KU09OOiBmdW5jdGlvbiB0b0pTT04oKSB7XG4gICAgcmV0dXJuIFVSTC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0aGlzKTtcbiAgfVxufSk7XG4iLCJyZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5hcnJheS5pcy10ZW1wbGF0ZS1vYmplY3QnKTtcbiIsInJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LmFycmF5Lmxhc3QtaW5kZXgnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LmFycmF5Lmxhc3QtaXRlbScpO1xuIiwicmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWFwLmdyb3VwLWJ5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5tYXAua2V5LWJ5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5tYXAuZGVsZXRlLWFsbCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWFwLmV2ZXJ5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5tYXAuZmlsdGVyJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5tYXAuZmluZCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWFwLmZpbmQta2V5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5tYXAuaW5jbHVkZXMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lm1hcC5rZXktb2YnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lm1hcC5tYXAta2V5cycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWFwLm1hcC12YWx1ZXMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lm1hcC5tZXJnZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWFwLnJlZHVjZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWFwLnNvbWUnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lm1hcC51cGRhdGUnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnNldC5hZGQtYWxsJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5zZXQuZGVsZXRlLWFsbCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuc2V0LmV2ZXJ5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5zZXQuZmlsdGVyJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5zZXQuZmluZCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuc2V0LmpvaW4nKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnNldC5tYXAnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnNldC5yZWR1Y2UnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnNldC5zb21lJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC53ZWFrLW1hcC5kZWxldGUtYWxsJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC53ZWFrLXNldC5hZGQtYWxsJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC53ZWFrLXNldC5kZWxldGUtYWxsJyk7XG4iLCJyZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5tYXAuZnJvbScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWFwLm9mJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5zZXQuZnJvbScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuc2V0Lm9mJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC53ZWFrLW1hcC5mcm9tJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC53ZWFrLW1hcC5vZicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQud2Vhay1zZXQuZnJvbScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQud2Vhay1zZXQub2YnKTtcbiIsInJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lm1hdGguaWFkZGgnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lm1hdGguaXN1YmgnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lm1hdGguaW11bGgnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lm1hdGgudW11bGgnKTtcbiIsInJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lmdsb2JhbC10aGlzJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdsb2JhbDtcbiIsInJlcXVpcmUoJy4uL3N0YWdlJyk7XG4iLCJyZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5hc3luYy1pdGVyYXRvci5jb25zdHJ1Y3RvcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuYXN5bmMtaXRlcmF0b3IuYXMtaW5kZXhlZC1wYWlycycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuYXN5bmMtaXRlcmF0b3IuZHJvcCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuYXN5bmMtaXRlcmF0b3IuZXZlcnknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LmFzeW5jLWl0ZXJhdG9yLmZpbHRlcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuYXN5bmMtaXRlcmF0b3IuZmluZCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuYXN5bmMtaXRlcmF0b3IuZmxhdC1tYXAnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LmFzeW5jLWl0ZXJhdG9yLmZvci1lYWNoJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5hc3luYy1pdGVyYXRvci5mcm9tJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5hc3luYy1pdGVyYXRvci5tYXAnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LmFzeW5jLWl0ZXJhdG9yLnJlZHVjZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuYXN5bmMtaXRlcmF0b3Iuc29tZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuYXN5bmMtaXRlcmF0b3IudGFrZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuYXN5bmMtaXRlcmF0b3IudG8tYXJyYXknKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmNvbnN0cnVjdG9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5hcy1pbmRleGVkLXBhaXJzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5kcm9wJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5ldmVyeScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuZmlsdGVyJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5maW5kJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5mbGF0LW1hcCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuZm9yLWVhY2gnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmZyb20nKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLm1hcCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuaXRlcmF0b3IucmVkdWNlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5zb21lJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci50YWtlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci50by1hcnJheScpO1xuIiwicmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuY29tcG9zaXRlLWtleScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuY29tcG9zaXRlLXN5bWJvbCcpO1xuIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL3RodW1ic3VwZXAvcHJvcG9zYWwtdXBzZXJ0XG4vLyBUT0RPOiByZW1vdmUgZnJvbSBgY29yZS1qc0A0YFxucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWFwLnVwZGF0ZS1vci1pbnNlcnQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lm1hcC51cHNlcnQnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LndlYWstbWFwLnVwc2VydCcpO1xuIiwicmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWF0aC5jbGFtcCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWF0aC5kZWctcGVyLXJhZCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWF0aC5kZWdyZWVzJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5tYXRoLmZzY2FsZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWF0aC5yYWQtcGVyLWRlZycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWF0aC5yYWRpYW5zJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5tYXRoLnNjYWxlJyk7XG4iLCJyZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5tYXRoLnNpZ25iaXQnKTtcbiIsInJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0Lm51bWJlci5mcm9tLXN0cmluZycpO1xuIiwicmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQub2JqZWN0Lml0ZXJhdGUtZW50cmllcycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQub2JqZWN0Lml0ZXJhdGUta2V5cycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQub2JqZWN0Lml0ZXJhdGUtdmFsdWVzJyk7XG4iLCJyZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5vYnNlcnZhYmxlJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5zeW1ib2wub2JzZXJ2YWJsZScpO1xuIiwicmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuc3ltYm9sLnBhdHRlcm4tbWF0Y2gnKTtcbiIsIi8vIFRPRE86IFJlbW92ZSBmcm9tIGBjb3JlLWpzQDRgXG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5wcm9taXNlLmFsbC1zZXR0bGVkJyk7XG4iLCJyZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5hZ2dyZWdhdGUtZXJyb3InKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnByb21pc2UuYW55Jyk7XG4iLCJyZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5wcm9taXNlLnRyeScpO1xuIiwicmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQucmVmbGVjdC5kZWZpbmUtbWV0YWRhdGEnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnJlZmxlY3QuZGVsZXRlLW1ldGFkYXRhJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5yZWZsZWN0LmdldC1tZXRhZGF0YScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQucmVmbGVjdC5nZXQtbWV0YWRhdGEta2V5cycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQucmVmbGVjdC5nZXQtb3duLW1ldGFkYXRhJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5yZWZsZWN0LmdldC1vd24tbWV0YWRhdGEta2V5cycpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQucmVmbGVjdC5oYXMtbWV0YWRhdGEnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnJlZmxlY3QuaGFzLW93bi1tZXRhZGF0YScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQucmVmbGVjdC5tZXRhZGF0YScpO1xuIiwicmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQubWF0aC5zZWVkZWQtcHJuZycpO1xuIiwicmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuc2V0LmRpZmZlcmVuY2UnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnNldC5pbnRlcnNlY3Rpb24nKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnNldC5pcy1kaXNqb2ludC1mcm9tJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5zZXQuaXMtc3Vic2V0LW9mJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5zZXQuaXMtc3VwZXJzZXQtb2YnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnNldC51bmlvbicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuc2V0LnN5bW1ldHJpYy1kaWZmZXJlbmNlJyk7XG4iLCJyZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5zdHJpbmcuYXQnKTtcbiIsInJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnN0cmluZy5jb2RlLXBvaW50cycpO1xuIiwiLy8gVE9ETzogUmVtb3ZlIGZyb20gYGNvcmUtanNANGBcbnJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnN0cmluZy5tYXRjaC1hbGwnKTtcbiIsInJlcXVpcmUoJy4uL21vZHVsZXMvZXNuZXh0LnN0cmluZy5yZXBsYWNlLWFsbCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuc3ltYm9sLnJlcGxhY2UtYWxsJyk7XG4iLCJyZXF1aXJlKCcuLi9tb2R1bGVzL3dlYi51cmwnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvd2ViLnVybC50by1qc29uJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcycpO1xuIiwiLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtdXNpbmctc3RhdGVtZW50XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzbmV4dC5zeW1ib2wuYXN5bmMtZGlzcG9zZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lc25leHQuc3ltYm9sLmRpc3Bvc2UnKTtcbiIsInJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9lZmZpY2llbnQtNjQtYml0LWFyaXRobWV0aWMnKTtcbnJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9zdHJpbmctYXQnKTtcbnJlcXVpcmUoJy4uL3Byb3Bvc2Fscy91cmwnKTtcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLzEnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCJyZXF1aXJlKCcuLi9wcm9wb3NhbHMvYXJyYXktbGFzdCcpO1xucmVxdWlyZSgnLi4vcHJvcG9zYWxzL2NvbGxlY3Rpb24tbWV0aG9kcycpO1xucmVxdWlyZSgnLi4vcHJvcG9zYWxzL2NvbGxlY3Rpb24tb2YtZnJvbScpO1xucmVxdWlyZSgnLi4vcHJvcG9zYWxzL2tleXMtY29tcG9zaXRpb24nKTtcbnJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9tYXRoLWV4dGVuc2lvbnMnKTtcbnJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9tYXRoLXNpZ25iaXQnKTtcbnJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9udW1iZXItZnJvbS1zdHJpbmcnKTtcbnJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9vYmplY3QtaXRlcmF0aW9uJyk7XG5yZXF1aXJlKCcuLi9wcm9wb3NhbHMvb2JzZXJ2YWJsZScpO1xucmVxdWlyZSgnLi4vcHJvcG9zYWxzL3BhdHRlcm4tbWF0Y2hpbmcnKTtcbnJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9wcm9taXNlLXRyeScpO1xucmVxdWlyZSgnLi4vcHJvcG9zYWxzL3NlZWRlZC1yYW5kb20nKTtcbnJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9zdHJpbmctY29kZS1wb2ludHMnKTtcbnZhciBwYXJlbnQgPSByZXF1aXJlKCcuLzInKTtcblxubW9kdWxlLmV4cG9ydHMgPSBwYXJlbnQ7XG4iLCJyZXF1aXJlKCcuLi9wcm9wb3NhbHMvYXJyYXktaXMtdGVtcGxhdGUtb2JqZWN0Jyk7XG5yZXF1aXJlKCcuLi9wcm9wb3NhbHMvaXRlcmF0b3ItaGVscGVycycpO1xucmVxdWlyZSgnLi4vcHJvcG9zYWxzL21hcC11cHNlcnQnKTtcbnJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9zZXQtbWV0aG9kcycpO1xucmVxdWlyZSgnLi4vcHJvcG9zYWxzL3VzaW5nLXN0YXRlbWVudCcpO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4vMycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsInJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9wcm9taXNlLWFueScpO1xucmVxdWlyZSgnLi4vcHJvcG9zYWxzL3N0cmluZy1yZXBsYWNlLWFsbCcpO1xudmFyIHBhcmVudCA9IHJlcXVpcmUoJy4vNCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcmVudDtcbiIsInJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9nbG9iYWwtdGhpcycpO1xucmVxdWlyZSgnLi4vcHJvcG9zYWxzL3Byb21pc2UtYWxsLXNldHRsZWQnKTtcbnJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9zdHJpbmctbWF0Y2gtYWxsJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGF0aDtcbiIsInZhciBwcm9wb3NhbHMgPSByZXF1aXJlKCcuL3ByZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHByb3Bvc2FscztcbiIsInJlcXVpcmUoJy4uL3Byb3Bvc2Fscy9yZWZsZWN0LW1ldGFkYXRhJyk7XG52YXIgcGFyZW50ID0gcmVxdWlyZSgnLi8wJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGFyZW50O1xuIiwicmVxdWlyZSgnLi4vbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3InKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvd2ViLmltbWVkaWF0ZScpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy93ZWIucXVldWUtbWljcm90YXNrJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL3dlYi50aW1lcnMnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvd2ViLnVybCcpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy93ZWIudXJsLnRvLWpzb24nKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvd2ViLnVybC1zZWFyY2gtcGFyYW1zJyk7XG52YXIgcGF0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gcGF0aDtcbiIsIid1c2Ugc3RyaWN0JztcblxubW9kdWxlLmV4cG9ydHMgPSBlYXJjdXQ7XG5tb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0gZWFyY3V0O1xuXG5mdW5jdGlvbiBlYXJjdXQoZGF0YSwgaG9sZUluZGljZXMsIGRpbSkge1xuXG4gICAgZGltID0gZGltIHx8IDI7XG5cbiAgICB2YXIgaGFzSG9sZXMgPSBob2xlSW5kaWNlcyAmJiBob2xlSW5kaWNlcy5sZW5ndGgsXG4gICAgICAgIG91dGVyTGVuID0gaGFzSG9sZXMgPyBob2xlSW5kaWNlc1swXSAqIGRpbSA6IGRhdGEubGVuZ3RoLFxuICAgICAgICBvdXRlck5vZGUgPSBsaW5rZWRMaXN0KGRhdGEsIDAsIG91dGVyTGVuLCBkaW0sIHRydWUpLFxuICAgICAgICB0cmlhbmdsZXMgPSBbXTtcblxuICAgIGlmICghb3V0ZXJOb2RlIHx8IG91dGVyTm9kZS5uZXh0ID09PSBvdXRlck5vZGUucHJldikgcmV0dXJuIHRyaWFuZ2xlcztcblxuICAgIHZhciBtaW5YLCBtaW5ZLCBtYXhYLCBtYXhZLCB4LCB5LCBpbnZTaXplO1xuXG4gICAgaWYgKGhhc0hvbGVzKSBvdXRlck5vZGUgPSBlbGltaW5hdGVIb2xlcyhkYXRhLCBob2xlSW5kaWNlcywgb3V0ZXJOb2RlLCBkaW0pO1xuXG4gICAgLy8gaWYgdGhlIHNoYXBlIGlzIG5vdCB0b28gc2ltcGxlLCB3ZSdsbCB1c2Ugei1vcmRlciBjdXJ2ZSBoYXNoIGxhdGVyOyBjYWxjdWxhdGUgcG9seWdvbiBiYm94XG4gICAgaWYgKGRhdGEubGVuZ3RoID4gODAgKiBkaW0pIHtcbiAgICAgICAgbWluWCA9IG1heFggPSBkYXRhWzBdO1xuICAgICAgICBtaW5ZID0gbWF4WSA9IGRhdGFbMV07XG5cbiAgICAgICAgZm9yICh2YXIgaSA9IGRpbTsgaSA8IG91dGVyTGVuOyBpICs9IGRpbSkge1xuICAgICAgICAgICAgeCA9IGRhdGFbaV07XG4gICAgICAgICAgICB5ID0gZGF0YVtpICsgMV07XG4gICAgICAgICAgICBpZiAoeCA8IG1pblgpIG1pblggPSB4O1xuICAgICAgICAgICAgaWYgKHkgPCBtaW5ZKSBtaW5ZID0geTtcbiAgICAgICAgICAgIGlmICh4ID4gbWF4WCkgbWF4WCA9IHg7XG4gICAgICAgICAgICBpZiAoeSA+IG1heFkpIG1heFkgPSB5O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gbWluWCwgbWluWSBhbmQgaW52U2l6ZSBhcmUgbGF0ZXIgdXNlZCB0byB0cmFuc2Zvcm0gY29vcmRzIGludG8gaW50ZWdlcnMgZm9yIHotb3JkZXIgY2FsY3VsYXRpb25cbiAgICAgICAgaW52U2l6ZSA9IE1hdGgubWF4KG1heFggLSBtaW5YLCBtYXhZIC0gbWluWSk7XG4gICAgICAgIGludlNpemUgPSBpbnZTaXplICE9PSAwID8gMSAvIGludlNpemUgOiAwO1xuICAgIH1cblxuICAgIGVhcmN1dExpbmtlZChvdXRlck5vZGUsIHRyaWFuZ2xlcywgZGltLCBtaW5YLCBtaW5ZLCBpbnZTaXplKTtcblxuICAgIHJldHVybiB0cmlhbmdsZXM7XG59XG5cbi8vIGNyZWF0ZSBhIGNpcmN1bGFyIGRvdWJseSBsaW5rZWQgbGlzdCBmcm9tIHBvbHlnb24gcG9pbnRzIGluIHRoZSBzcGVjaWZpZWQgd2luZGluZyBvcmRlclxuZnVuY3Rpb24gbGlua2VkTGlzdChkYXRhLCBzdGFydCwgZW5kLCBkaW0sIGNsb2Nrd2lzZSkge1xuICAgIHZhciBpLCBsYXN0O1xuXG4gICAgaWYgKGNsb2Nrd2lzZSA9PT0gKHNpZ25lZEFyZWEoZGF0YSwgc3RhcnQsIGVuZCwgZGltKSA+IDApKSB7XG4gICAgICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpICs9IGRpbSkgbGFzdCA9IGluc2VydE5vZGUoaSwgZGF0YVtpXSwgZGF0YVtpICsgMV0sIGxhc3QpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoaSA9IGVuZCAtIGRpbTsgaSA+PSBzdGFydDsgaSAtPSBkaW0pIGxhc3QgPSBpbnNlcnROb2RlKGksIGRhdGFbaV0sIGRhdGFbaSArIDFdLCBsYXN0KTtcbiAgICB9XG5cbiAgICBpZiAobGFzdCAmJiBlcXVhbHMobGFzdCwgbGFzdC5uZXh0KSkge1xuICAgICAgICByZW1vdmVOb2RlKGxhc3QpO1xuICAgICAgICBsYXN0ID0gbGFzdC5uZXh0O1xuICAgIH1cblxuICAgIHJldHVybiBsYXN0O1xufVxuXG4vLyBlbGltaW5hdGUgY29saW5lYXIgb3IgZHVwbGljYXRlIHBvaW50c1xuZnVuY3Rpb24gZmlsdGVyUG9pbnRzKHN0YXJ0LCBlbmQpIHtcbiAgICBpZiAoIXN0YXJ0KSByZXR1cm4gc3RhcnQ7XG4gICAgaWYgKCFlbmQpIGVuZCA9IHN0YXJ0O1xuXG4gICAgdmFyIHAgPSBzdGFydCxcbiAgICAgICAgYWdhaW47XG4gICAgZG8ge1xuICAgICAgICBhZ2FpbiA9IGZhbHNlO1xuXG4gICAgICAgIGlmICghcC5zdGVpbmVyICYmIChlcXVhbHMocCwgcC5uZXh0KSB8fCBhcmVhKHAucHJldiwgcCwgcC5uZXh0KSA9PT0gMCkpIHtcbiAgICAgICAgICAgIHJlbW92ZU5vZGUocCk7XG4gICAgICAgICAgICBwID0gZW5kID0gcC5wcmV2O1xuICAgICAgICAgICAgaWYgKHAgPT09IHAubmV4dCkgYnJlYWs7XG4gICAgICAgICAgICBhZ2FpbiA9IHRydWU7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHAgPSBwLm5leHQ7XG4gICAgICAgIH1cbiAgICB9IHdoaWxlIChhZ2FpbiB8fCBwICE9PSBlbmQpO1xuXG4gICAgcmV0dXJuIGVuZDtcbn1cblxuLy8gbWFpbiBlYXIgc2xpY2luZyBsb29wIHdoaWNoIHRyaWFuZ3VsYXRlcyBhIHBvbHlnb24gKGdpdmVuIGFzIGEgbGlua2VkIGxpc3QpXG5mdW5jdGlvbiBlYXJjdXRMaW5rZWQoZWFyLCB0cmlhbmdsZXMsIGRpbSwgbWluWCwgbWluWSwgaW52U2l6ZSwgcGFzcykge1xuICAgIGlmICghZWFyKSByZXR1cm47XG5cbiAgICAvLyBpbnRlcmxpbmsgcG9seWdvbiBub2RlcyBpbiB6LW9yZGVyXG4gICAgaWYgKCFwYXNzICYmIGludlNpemUpIGluZGV4Q3VydmUoZWFyLCBtaW5YLCBtaW5ZLCBpbnZTaXplKTtcblxuICAgIHZhciBzdG9wID0gZWFyLFxuICAgICAgICBwcmV2LCBuZXh0O1xuXG4gICAgLy8gaXRlcmF0ZSB0aHJvdWdoIGVhcnMsIHNsaWNpbmcgdGhlbSBvbmUgYnkgb25lXG4gICAgd2hpbGUgKGVhci5wcmV2ICE9PSBlYXIubmV4dCkge1xuICAgICAgICBwcmV2ID0gZWFyLnByZXY7XG4gICAgICAgIG5leHQgPSBlYXIubmV4dDtcblxuICAgICAgICBpZiAoaW52U2l6ZSA/IGlzRWFySGFzaGVkKGVhciwgbWluWCwgbWluWSwgaW52U2l6ZSkgOiBpc0VhcihlYXIpKSB7XG4gICAgICAgICAgICAvLyBjdXQgb2ZmIHRoZSB0cmlhbmdsZVxuICAgICAgICAgICAgdHJpYW5nbGVzLnB1c2gocHJldi5pIC8gZGltKTtcbiAgICAgICAgICAgIHRyaWFuZ2xlcy5wdXNoKGVhci5pIC8gZGltKTtcbiAgICAgICAgICAgIHRyaWFuZ2xlcy5wdXNoKG5leHQuaSAvIGRpbSk7XG5cbiAgICAgICAgICAgIHJlbW92ZU5vZGUoZWFyKTtcblxuICAgICAgICAgICAgLy8gc2tpcHBpbmcgdGhlIG5leHQgdmVydGV4IGxlYWRzIHRvIGxlc3Mgc2xpdmVyIHRyaWFuZ2xlc1xuICAgICAgICAgICAgZWFyID0gbmV4dC5uZXh0O1xuICAgICAgICAgICAgc3RvcCA9IG5leHQubmV4dDtcblxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBlYXIgPSBuZXh0O1xuXG4gICAgICAgIC8vIGlmIHdlIGxvb3BlZCB0aHJvdWdoIHRoZSB3aG9sZSByZW1haW5pbmcgcG9seWdvbiBhbmQgY2FuJ3QgZmluZCBhbnkgbW9yZSBlYXJzXG4gICAgICAgIGlmIChlYXIgPT09IHN0b3ApIHtcbiAgICAgICAgICAgIC8vIHRyeSBmaWx0ZXJpbmcgcG9pbnRzIGFuZCBzbGljaW5nIGFnYWluXG4gICAgICAgICAgICBpZiAoIXBhc3MpIHtcbiAgICAgICAgICAgICAgICBlYXJjdXRMaW5rZWQoZmlsdGVyUG9pbnRzKGVhciksIHRyaWFuZ2xlcywgZGltLCBtaW5YLCBtaW5ZLCBpbnZTaXplLCAxKTtcblxuICAgICAgICAgICAgLy8gaWYgdGhpcyBkaWRuJ3Qgd29yaywgdHJ5IGN1cmluZyBhbGwgc21hbGwgc2VsZi1pbnRlcnNlY3Rpb25zIGxvY2FsbHlcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGFzcyA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGVhciA9IGN1cmVMb2NhbEludGVyc2VjdGlvbnMoZmlsdGVyUG9pbnRzKGVhciksIHRyaWFuZ2xlcywgZGltKTtcbiAgICAgICAgICAgICAgICBlYXJjdXRMaW5rZWQoZWFyLCB0cmlhbmdsZXMsIGRpbSwgbWluWCwgbWluWSwgaW52U2l6ZSwgMik7XG5cbiAgICAgICAgICAgIC8vIGFzIGEgbGFzdCByZXNvcnQsIHRyeSBzcGxpdHRpbmcgdGhlIHJlbWFpbmluZyBwb2x5Z29uIGludG8gdHdvXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBhc3MgPT09IDIpIHtcbiAgICAgICAgICAgICAgICBzcGxpdEVhcmN1dChlYXIsIHRyaWFuZ2xlcywgZGltLCBtaW5YLCBtaW5ZLCBpbnZTaXplKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIGNoZWNrIHdoZXRoZXIgYSBwb2x5Z29uIG5vZGUgZm9ybXMgYSB2YWxpZCBlYXIgd2l0aCBhZGphY2VudCBub2Rlc1xuZnVuY3Rpb24gaXNFYXIoZWFyKSB7XG4gICAgdmFyIGEgPSBlYXIucHJldixcbiAgICAgICAgYiA9IGVhcixcbiAgICAgICAgYyA9IGVhci5uZXh0O1xuXG4gICAgaWYgKGFyZWEoYSwgYiwgYykgPj0gMCkgcmV0dXJuIGZhbHNlOyAvLyByZWZsZXgsIGNhbid0IGJlIGFuIGVhclxuXG4gICAgLy8gbm93IG1ha2Ugc3VyZSB3ZSBkb24ndCBoYXZlIG90aGVyIHBvaW50cyBpbnNpZGUgdGhlIHBvdGVudGlhbCBlYXJcbiAgICB2YXIgcCA9IGVhci5uZXh0Lm5leHQ7XG5cbiAgICB3aGlsZSAocCAhPT0gZWFyLnByZXYpIHtcbiAgICAgICAgaWYgKHBvaW50SW5UcmlhbmdsZShhLngsIGEueSwgYi54LCBiLnksIGMueCwgYy55LCBwLngsIHAueSkgJiZcbiAgICAgICAgICAgIGFyZWEocC5wcmV2LCBwLCBwLm5leHQpID49IDApIHJldHVybiBmYWxzZTtcbiAgICAgICAgcCA9IHAubmV4dDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gaXNFYXJIYXNoZWQoZWFyLCBtaW5YLCBtaW5ZLCBpbnZTaXplKSB7XG4gICAgdmFyIGEgPSBlYXIucHJldixcbiAgICAgICAgYiA9IGVhcixcbiAgICAgICAgYyA9IGVhci5uZXh0O1xuXG4gICAgaWYgKGFyZWEoYSwgYiwgYykgPj0gMCkgcmV0dXJuIGZhbHNlOyAvLyByZWZsZXgsIGNhbid0IGJlIGFuIGVhclxuXG4gICAgLy8gdHJpYW5nbGUgYmJveDsgbWluICYgbWF4IGFyZSBjYWxjdWxhdGVkIGxpa2UgdGhpcyBmb3Igc3BlZWRcbiAgICB2YXIgbWluVFggPSBhLnggPCBiLnggPyAoYS54IDwgYy54ID8gYS54IDogYy54KSA6IChiLnggPCBjLnggPyBiLnggOiBjLngpLFxuICAgICAgICBtaW5UWSA9IGEueSA8IGIueSA/IChhLnkgPCBjLnkgPyBhLnkgOiBjLnkpIDogKGIueSA8IGMueSA/IGIueSA6IGMueSksXG4gICAgICAgIG1heFRYID0gYS54ID4gYi54ID8gKGEueCA+IGMueCA/IGEueCA6IGMueCkgOiAoYi54ID4gYy54ID8gYi54IDogYy54KSxcbiAgICAgICAgbWF4VFkgPSBhLnkgPiBiLnkgPyAoYS55ID4gYy55ID8gYS55IDogYy55KSA6IChiLnkgPiBjLnkgPyBiLnkgOiBjLnkpO1xuXG4gICAgLy8gei1vcmRlciByYW5nZSBmb3IgdGhlIGN1cnJlbnQgdHJpYW5nbGUgYmJveDtcbiAgICB2YXIgbWluWiA9IHpPcmRlcihtaW5UWCwgbWluVFksIG1pblgsIG1pblksIGludlNpemUpLFxuICAgICAgICBtYXhaID0gek9yZGVyKG1heFRYLCBtYXhUWSwgbWluWCwgbWluWSwgaW52U2l6ZSk7XG5cbiAgICB2YXIgcCA9IGVhci5wcmV2WixcbiAgICAgICAgbiA9IGVhci5uZXh0WjtcblxuICAgIC8vIGxvb2sgZm9yIHBvaW50cyBpbnNpZGUgdGhlIHRyaWFuZ2xlIGluIGJvdGggZGlyZWN0aW9uc1xuICAgIHdoaWxlIChwICYmIHAueiA+PSBtaW5aICYmIG4gJiYgbi56IDw9IG1heFopIHtcbiAgICAgICAgaWYgKHAgIT09IGVhci5wcmV2ICYmIHAgIT09IGVhci5uZXh0ICYmXG4gICAgICAgICAgICBwb2ludEluVHJpYW5nbGUoYS54LCBhLnksIGIueCwgYi55LCBjLngsIGMueSwgcC54LCBwLnkpICYmXG4gICAgICAgICAgICBhcmVhKHAucHJldiwgcCwgcC5uZXh0KSA+PSAwKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHAgPSBwLnByZXZaO1xuXG4gICAgICAgIGlmIChuICE9PSBlYXIucHJldiAmJiBuICE9PSBlYXIubmV4dCAmJlxuICAgICAgICAgICAgcG9pbnRJblRyaWFuZ2xlKGEueCwgYS55LCBiLngsIGIueSwgYy54LCBjLnksIG4ueCwgbi55KSAmJlxuICAgICAgICAgICAgYXJlYShuLnByZXYsIG4sIG4ubmV4dCkgPj0gMCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBuID0gbi5uZXh0WjtcbiAgICB9XG5cbiAgICAvLyBsb29rIGZvciByZW1haW5pbmcgcG9pbnRzIGluIGRlY3JlYXNpbmcgei1vcmRlclxuICAgIHdoaWxlIChwICYmIHAueiA+PSBtaW5aKSB7XG4gICAgICAgIGlmIChwICE9PSBlYXIucHJldiAmJiBwICE9PSBlYXIubmV4dCAmJlxuICAgICAgICAgICAgcG9pbnRJblRyaWFuZ2xlKGEueCwgYS55LCBiLngsIGIueSwgYy54LCBjLnksIHAueCwgcC55KSAmJlxuICAgICAgICAgICAgYXJlYShwLnByZXYsIHAsIHAubmV4dCkgPj0gMCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBwID0gcC5wcmV2WjtcbiAgICB9XG5cbiAgICAvLyBsb29rIGZvciByZW1haW5pbmcgcG9pbnRzIGluIGluY3JlYXNpbmcgei1vcmRlclxuICAgIHdoaWxlIChuICYmIG4ueiA8PSBtYXhaKSB7XG4gICAgICAgIGlmIChuICE9PSBlYXIucHJldiAmJiBuICE9PSBlYXIubmV4dCAmJlxuICAgICAgICAgICAgcG9pbnRJblRyaWFuZ2xlKGEueCwgYS55LCBiLngsIGIueSwgYy54LCBjLnksIG4ueCwgbi55KSAmJlxuICAgICAgICAgICAgYXJlYShuLnByZXYsIG4sIG4ubmV4dCkgPj0gMCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBuID0gbi5uZXh0WjtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuLy8gZ28gdGhyb3VnaCBhbGwgcG9seWdvbiBub2RlcyBhbmQgY3VyZSBzbWFsbCBsb2NhbCBzZWxmLWludGVyc2VjdGlvbnNcbmZ1bmN0aW9uIGN1cmVMb2NhbEludGVyc2VjdGlvbnMoc3RhcnQsIHRyaWFuZ2xlcywgZGltKSB7XG4gICAgdmFyIHAgPSBzdGFydDtcbiAgICBkbyB7XG4gICAgICAgIHZhciBhID0gcC5wcmV2LFxuICAgICAgICAgICAgYiA9IHAubmV4dC5uZXh0O1xuXG4gICAgICAgIGlmICghZXF1YWxzKGEsIGIpICYmIGludGVyc2VjdHMoYSwgcCwgcC5uZXh0LCBiKSAmJiBsb2NhbGx5SW5zaWRlKGEsIGIpICYmIGxvY2FsbHlJbnNpZGUoYiwgYSkpIHtcblxuICAgICAgICAgICAgdHJpYW5nbGVzLnB1c2goYS5pIC8gZGltKTtcbiAgICAgICAgICAgIHRyaWFuZ2xlcy5wdXNoKHAuaSAvIGRpbSk7XG4gICAgICAgICAgICB0cmlhbmdsZXMucHVzaChiLmkgLyBkaW0pO1xuXG4gICAgICAgICAgICAvLyByZW1vdmUgdHdvIG5vZGVzIGludm9sdmVkXG4gICAgICAgICAgICByZW1vdmVOb2RlKHApO1xuICAgICAgICAgICAgcmVtb3ZlTm9kZShwLm5leHQpO1xuXG4gICAgICAgICAgICBwID0gc3RhcnQgPSBiO1xuICAgICAgICB9XG4gICAgICAgIHAgPSBwLm5leHQ7XG4gICAgfSB3aGlsZSAocCAhPT0gc3RhcnQpO1xuXG4gICAgcmV0dXJuIGZpbHRlclBvaW50cyhwKTtcbn1cblxuLy8gdHJ5IHNwbGl0dGluZyBwb2x5Z29uIGludG8gdHdvIGFuZCB0cmlhbmd1bGF0ZSB0aGVtIGluZGVwZW5kZW50bHlcbmZ1bmN0aW9uIHNwbGl0RWFyY3V0KHN0YXJ0LCB0cmlhbmdsZXMsIGRpbSwgbWluWCwgbWluWSwgaW52U2l6ZSkge1xuICAgIC8vIGxvb2sgZm9yIGEgdmFsaWQgZGlhZ29uYWwgdGhhdCBkaXZpZGVzIHRoZSBwb2x5Z29uIGludG8gdHdvXG4gICAgdmFyIGEgPSBzdGFydDtcbiAgICBkbyB7XG4gICAgICAgIHZhciBiID0gYS5uZXh0Lm5leHQ7XG4gICAgICAgIHdoaWxlIChiICE9PSBhLnByZXYpIHtcbiAgICAgICAgICAgIGlmIChhLmkgIT09IGIuaSAmJiBpc1ZhbGlkRGlhZ29uYWwoYSwgYikpIHtcbiAgICAgICAgICAgICAgICAvLyBzcGxpdCB0aGUgcG9seWdvbiBpbiB0d28gYnkgdGhlIGRpYWdvbmFsXG4gICAgICAgICAgICAgICAgdmFyIGMgPSBzcGxpdFBvbHlnb24oYSwgYik7XG5cbiAgICAgICAgICAgICAgICAvLyBmaWx0ZXIgY29saW5lYXIgcG9pbnRzIGFyb3VuZCB0aGUgY3V0c1xuICAgICAgICAgICAgICAgIGEgPSBmaWx0ZXJQb2ludHMoYSwgYS5uZXh0KTtcbiAgICAgICAgICAgICAgICBjID0gZmlsdGVyUG9pbnRzKGMsIGMubmV4dCk7XG5cbiAgICAgICAgICAgICAgICAvLyBydW4gZWFyY3V0IG9uIGVhY2ggaGFsZlxuICAgICAgICAgICAgICAgIGVhcmN1dExpbmtlZChhLCB0cmlhbmdsZXMsIGRpbSwgbWluWCwgbWluWSwgaW52U2l6ZSk7XG4gICAgICAgICAgICAgICAgZWFyY3V0TGlua2VkKGMsIHRyaWFuZ2xlcywgZGltLCBtaW5YLCBtaW5ZLCBpbnZTaXplKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiID0gYi5uZXh0O1xuICAgICAgICB9XG4gICAgICAgIGEgPSBhLm5leHQ7XG4gICAgfSB3aGlsZSAoYSAhPT0gc3RhcnQpO1xufVxuXG4vLyBsaW5rIGV2ZXJ5IGhvbGUgaW50byB0aGUgb3V0ZXIgbG9vcCwgcHJvZHVjaW5nIGEgc2luZ2xlLXJpbmcgcG9seWdvbiB3aXRob3V0IGhvbGVzXG5mdW5jdGlvbiBlbGltaW5hdGVIb2xlcyhkYXRhLCBob2xlSW5kaWNlcywgb3V0ZXJOb2RlLCBkaW0pIHtcbiAgICB2YXIgcXVldWUgPSBbXSxcbiAgICAgICAgaSwgbGVuLCBzdGFydCwgZW5kLCBsaXN0O1xuXG4gICAgZm9yIChpID0gMCwgbGVuID0gaG9sZUluZGljZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgc3RhcnQgPSBob2xlSW5kaWNlc1tpXSAqIGRpbTtcbiAgICAgICAgZW5kID0gaSA8IGxlbiAtIDEgPyBob2xlSW5kaWNlc1tpICsgMV0gKiBkaW0gOiBkYXRhLmxlbmd0aDtcbiAgICAgICAgbGlzdCA9IGxpbmtlZExpc3QoZGF0YSwgc3RhcnQsIGVuZCwgZGltLCBmYWxzZSk7XG4gICAgICAgIGlmIChsaXN0ID09PSBsaXN0Lm5leHQpIGxpc3Quc3RlaW5lciA9IHRydWU7XG4gICAgICAgIHF1ZXVlLnB1c2goZ2V0TGVmdG1vc3QobGlzdCkpO1xuICAgIH1cblxuICAgIHF1ZXVlLnNvcnQoY29tcGFyZVgpO1xuXG4gICAgLy8gcHJvY2VzcyBob2xlcyBmcm9tIGxlZnQgdG8gcmlnaHRcbiAgICBmb3IgKGkgPSAwOyBpIDwgcXVldWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZWxpbWluYXRlSG9sZShxdWV1ZVtpXSwgb3V0ZXJOb2RlKTtcbiAgICAgICAgb3V0ZXJOb2RlID0gZmlsdGVyUG9pbnRzKG91dGVyTm9kZSwgb3V0ZXJOb2RlLm5leHQpO1xuICAgIH1cblxuICAgIHJldHVybiBvdXRlck5vZGU7XG59XG5cbmZ1bmN0aW9uIGNvbXBhcmVYKGEsIGIpIHtcbiAgICByZXR1cm4gYS54IC0gYi54O1xufVxuXG4vLyBmaW5kIGEgYnJpZGdlIGJldHdlZW4gdmVydGljZXMgdGhhdCBjb25uZWN0cyBob2xlIHdpdGggYW4gb3V0ZXIgcmluZyBhbmQgYW5kIGxpbmsgaXRcbmZ1bmN0aW9uIGVsaW1pbmF0ZUhvbGUoaG9sZSwgb3V0ZXJOb2RlKSB7XG4gICAgb3V0ZXJOb2RlID0gZmluZEhvbGVCcmlkZ2UoaG9sZSwgb3V0ZXJOb2RlKTtcbiAgICBpZiAob3V0ZXJOb2RlKSB7XG4gICAgICAgIHZhciBiID0gc3BsaXRQb2x5Z29uKG91dGVyTm9kZSwgaG9sZSk7XG5cbiAgICAgICAgLy8gZmlsdGVyIGNvbGxpbmVhciBwb2ludHMgYXJvdW5kIHRoZSBjdXRzXG4gICAgICAgIGZpbHRlclBvaW50cyhvdXRlck5vZGUsIG91dGVyTm9kZS5uZXh0KTtcbiAgICAgICAgZmlsdGVyUG9pbnRzKGIsIGIubmV4dCk7XG4gICAgfVxufVxuXG4vLyBEYXZpZCBFYmVybHkncyBhbGdvcml0aG0gZm9yIGZpbmRpbmcgYSBicmlkZ2UgYmV0d2VlbiBob2xlIGFuZCBvdXRlciBwb2x5Z29uXG5mdW5jdGlvbiBmaW5kSG9sZUJyaWRnZShob2xlLCBvdXRlck5vZGUpIHtcbiAgICB2YXIgcCA9IG91dGVyTm9kZSxcbiAgICAgICAgaHggPSBob2xlLngsXG4gICAgICAgIGh5ID0gaG9sZS55LFxuICAgICAgICBxeCA9IC1JbmZpbml0eSxcbiAgICAgICAgbTtcblxuICAgIC8vIGZpbmQgYSBzZWdtZW50IGludGVyc2VjdGVkIGJ5IGEgcmF5IGZyb20gdGhlIGhvbGUncyBsZWZ0bW9zdCBwb2ludCB0byB0aGUgbGVmdDtcbiAgICAvLyBzZWdtZW50J3MgZW5kcG9pbnQgd2l0aCBsZXNzZXIgeCB3aWxsIGJlIHBvdGVudGlhbCBjb25uZWN0aW9uIHBvaW50XG4gICAgZG8ge1xuICAgICAgICBpZiAoaHkgPD0gcC55ICYmIGh5ID49IHAubmV4dC55ICYmIHAubmV4dC55ICE9PSBwLnkpIHtcbiAgICAgICAgICAgIHZhciB4ID0gcC54ICsgKGh5IC0gcC55KSAqIChwLm5leHQueCAtIHAueCkgLyAocC5uZXh0LnkgLSBwLnkpO1xuICAgICAgICAgICAgaWYgKHggPD0gaHggJiYgeCA+IHF4KSB7XG4gICAgICAgICAgICAgICAgcXggPSB4O1xuICAgICAgICAgICAgICAgIGlmICh4ID09PSBoeCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaHkgPT09IHAueSkgcmV0dXJuIHA7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoeSA9PT0gcC5uZXh0LnkpIHJldHVybiBwLm5leHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG0gPSBwLnggPCBwLm5leHQueCA/IHAgOiBwLm5leHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcCA9IHAubmV4dDtcbiAgICB9IHdoaWxlIChwICE9PSBvdXRlck5vZGUpO1xuXG4gICAgaWYgKCFtKSByZXR1cm4gbnVsbDtcblxuICAgIGlmIChoeCA9PT0gcXgpIHJldHVybiBtOyAvLyBob2xlIHRvdWNoZXMgb3V0ZXIgc2VnbWVudDsgcGljayBsZWZ0bW9zdCBlbmRwb2ludFxuXG4gICAgLy8gbG9vayBmb3IgcG9pbnRzIGluc2lkZSB0aGUgdHJpYW5nbGUgb2YgaG9sZSBwb2ludCwgc2VnbWVudCBpbnRlcnNlY3Rpb24gYW5kIGVuZHBvaW50O1xuICAgIC8vIGlmIHRoZXJlIGFyZSBubyBwb2ludHMgZm91bmQsIHdlIGhhdmUgYSB2YWxpZCBjb25uZWN0aW9uO1xuICAgIC8vIG90aGVyd2lzZSBjaG9vc2UgdGhlIHBvaW50IG9mIHRoZSBtaW5pbXVtIGFuZ2xlIHdpdGggdGhlIHJheSBhcyBjb25uZWN0aW9uIHBvaW50XG5cbiAgICB2YXIgc3RvcCA9IG0sXG4gICAgICAgIG14ID0gbS54LFxuICAgICAgICBteSA9IG0ueSxcbiAgICAgICAgdGFuTWluID0gSW5maW5pdHksXG4gICAgICAgIHRhbjtcblxuICAgIHAgPSBtO1xuXG4gICAgZG8ge1xuICAgICAgICBpZiAoaHggPj0gcC54ICYmIHAueCA+PSBteCAmJiBoeCAhPT0gcC54ICYmXG4gICAgICAgICAgICAgICAgcG9pbnRJblRyaWFuZ2xlKGh5IDwgbXkgPyBoeCA6IHF4LCBoeSwgbXgsIG15LCBoeSA8IG15ID8gcXggOiBoeCwgaHksIHAueCwgcC55KSkge1xuXG4gICAgICAgICAgICB0YW4gPSBNYXRoLmFicyhoeSAtIHAueSkgLyAoaHggLSBwLngpOyAvLyB0YW5nZW50aWFsXG5cbiAgICAgICAgICAgIGlmIChsb2NhbGx5SW5zaWRlKHAsIGhvbGUpICYmXG4gICAgICAgICAgICAgICAgKHRhbiA8IHRhbk1pbiB8fCAodGFuID09PSB0YW5NaW4gJiYgKHAueCA+IG0ueCB8fCAocC54ID09PSBtLnggJiYgc2VjdG9yQ29udGFpbnNTZWN0b3IobSwgcCkpKSkpKSB7XG4gICAgICAgICAgICAgICAgbSA9IHA7XG4gICAgICAgICAgICAgICAgdGFuTWluID0gdGFuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcCA9IHAubmV4dDtcbiAgICB9IHdoaWxlIChwICE9PSBzdG9wKTtcblxuICAgIHJldHVybiBtO1xufVxuXG4vLyB3aGV0aGVyIHNlY3RvciBpbiB2ZXJ0ZXggbSBjb250YWlucyBzZWN0b3IgaW4gdmVydGV4IHAgaW4gdGhlIHNhbWUgY29vcmRpbmF0ZXNcbmZ1bmN0aW9uIHNlY3RvckNvbnRhaW5zU2VjdG9yKG0sIHApIHtcbiAgICByZXR1cm4gYXJlYShtLnByZXYsIG0sIHAucHJldikgPCAwICYmIGFyZWEocC5uZXh0LCBtLCBtLm5leHQpIDwgMDtcbn1cblxuLy8gaW50ZXJsaW5rIHBvbHlnb24gbm9kZXMgaW4gei1vcmRlclxuZnVuY3Rpb24gaW5kZXhDdXJ2ZShzdGFydCwgbWluWCwgbWluWSwgaW52U2l6ZSkge1xuICAgIHZhciBwID0gc3RhcnQ7XG4gICAgZG8ge1xuICAgICAgICBpZiAocC56ID09PSBudWxsKSBwLnogPSB6T3JkZXIocC54LCBwLnksIG1pblgsIG1pblksIGludlNpemUpO1xuICAgICAgICBwLnByZXZaID0gcC5wcmV2O1xuICAgICAgICBwLm5leHRaID0gcC5uZXh0O1xuICAgICAgICBwID0gcC5uZXh0O1xuICAgIH0gd2hpbGUgKHAgIT09IHN0YXJ0KTtcblxuICAgIHAucHJldloubmV4dFogPSBudWxsO1xuICAgIHAucHJldlogPSBudWxsO1xuXG4gICAgc29ydExpbmtlZChwKTtcbn1cblxuLy8gU2ltb24gVGF0aGFtJ3MgbGlua2VkIGxpc3QgbWVyZ2Ugc29ydCBhbGdvcml0aG1cbi8vIGh0dHA6Ly93d3cuY2hpYXJrLmdyZWVuZW5kLm9yZy51ay9+c2d0YXRoYW0vYWxnb3JpdGhtcy9saXN0c29ydC5odG1sXG5mdW5jdGlvbiBzb3J0TGlua2VkKGxpc3QpIHtcbiAgICB2YXIgaSwgcCwgcSwgZSwgdGFpbCwgbnVtTWVyZ2VzLCBwU2l6ZSwgcVNpemUsXG4gICAgICAgIGluU2l6ZSA9IDE7XG5cbiAgICBkbyB7XG4gICAgICAgIHAgPSBsaXN0O1xuICAgICAgICBsaXN0ID0gbnVsbDtcbiAgICAgICAgdGFpbCA9IG51bGw7XG4gICAgICAgIG51bU1lcmdlcyA9IDA7XG5cbiAgICAgICAgd2hpbGUgKHApIHtcbiAgICAgICAgICAgIG51bU1lcmdlcysrO1xuICAgICAgICAgICAgcSA9IHA7XG4gICAgICAgICAgICBwU2l6ZSA9IDA7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaW5TaXplOyBpKyspIHtcbiAgICAgICAgICAgICAgICBwU2l6ZSsrO1xuICAgICAgICAgICAgICAgIHEgPSBxLm5leHRaO1xuICAgICAgICAgICAgICAgIGlmICghcSkgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBxU2l6ZSA9IGluU2l6ZTtcblxuICAgICAgICAgICAgd2hpbGUgKHBTaXplID4gMCB8fCAocVNpemUgPiAwICYmIHEpKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAocFNpemUgIT09IDAgJiYgKHFTaXplID09PSAwIHx8ICFxIHx8IHAueiA8PSBxLnopKSB7XG4gICAgICAgICAgICAgICAgICAgIGUgPSBwO1xuICAgICAgICAgICAgICAgICAgICBwID0gcC5uZXh0WjtcbiAgICAgICAgICAgICAgICAgICAgcFNpemUtLTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlID0gcTtcbiAgICAgICAgICAgICAgICAgICAgcSA9IHEubmV4dFo7XG4gICAgICAgICAgICAgICAgICAgIHFTaXplLS07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRhaWwpIHRhaWwubmV4dFogPSBlO1xuICAgICAgICAgICAgICAgIGVsc2UgbGlzdCA9IGU7XG5cbiAgICAgICAgICAgICAgICBlLnByZXZaID0gdGFpbDtcbiAgICAgICAgICAgICAgICB0YWlsID0gZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcCA9IHE7XG4gICAgICAgIH1cblxuICAgICAgICB0YWlsLm5leHRaID0gbnVsbDtcbiAgICAgICAgaW5TaXplICo9IDI7XG5cbiAgICB9IHdoaWxlIChudW1NZXJnZXMgPiAxKTtcblxuICAgIHJldHVybiBsaXN0O1xufVxuXG4vLyB6LW9yZGVyIG9mIGEgcG9pbnQgZ2l2ZW4gY29vcmRzIGFuZCBpbnZlcnNlIG9mIHRoZSBsb25nZXIgc2lkZSBvZiBkYXRhIGJib3hcbmZ1bmN0aW9uIHpPcmRlcih4LCB5LCBtaW5YLCBtaW5ZLCBpbnZTaXplKSB7XG4gICAgLy8gY29vcmRzIGFyZSB0cmFuc2Zvcm1lZCBpbnRvIG5vbi1uZWdhdGl2ZSAxNS1iaXQgaW50ZWdlciByYW5nZVxuICAgIHggPSAzMjc2NyAqICh4IC0gbWluWCkgKiBpbnZTaXplO1xuICAgIHkgPSAzMjc2NyAqICh5IC0gbWluWSkgKiBpbnZTaXplO1xuXG4gICAgeCA9ICh4IHwgKHggPDwgOCkpICYgMHgwMEZGMDBGRjtcbiAgICB4ID0gKHggfCAoeCA8PCA0KSkgJiAweDBGMEYwRjBGO1xuICAgIHggPSAoeCB8ICh4IDw8IDIpKSAmIDB4MzMzMzMzMzM7XG4gICAgeCA9ICh4IHwgKHggPDwgMSkpICYgMHg1NTU1NTU1NTtcblxuICAgIHkgPSAoeSB8ICh5IDw8IDgpKSAmIDB4MDBGRjAwRkY7XG4gICAgeSA9ICh5IHwgKHkgPDwgNCkpICYgMHgwRjBGMEYwRjtcbiAgICB5ID0gKHkgfCAoeSA8PCAyKSkgJiAweDMzMzMzMzMzO1xuICAgIHkgPSAoeSB8ICh5IDw8IDEpKSAmIDB4NTU1NTU1NTU7XG5cbiAgICByZXR1cm4geCB8ICh5IDw8IDEpO1xufVxuXG4vLyBmaW5kIHRoZSBsZWZ0bW9zdCBub2RlIG9mIGEgcG9seWdvbiByaW5nXG5mdW5jdGlvbiBnZXRMZWZ0bW9zdChzdGFydCkge1xuICAgIHZhciBwID0gc3RhcnQsXG4gICAgICAgIGxlZnRtb3N0ID0gc3RhcnQ7XG4gICAgZG8ge1xuICAgICAgICBpZiAocC54IDwgbGVmdG1vc3QueCB8fCAocC54ID09PSBsZWZ0bW9zdC54ICYmIHAueSA8IGxlZnRtb3N0LnkpKSBsZWZ0bW9zdCA9IHA7XG4gICAgICAgIHAgPSBwLm5leHQ7XG4gICAgfSB3aGlsZSAocCAhPT0gc3RhcnQpO1xuXG4gICAgcmV0dXJuIGxlZnRtb3N0O1xufVxuXG4vLyBjaGVjayBpZiBhIHBvaW50IGxpZXMgd2l0aGluIGEgY29udmV4IHRyaWFuZ2xlXG5mdW5jdGlvbiBwb2ludEluVHJpYW5nbGUoYXgsIGF5LCBieCwgYnksIGN4LCBjeSwgcHgsIHB5KSB7XG4gICAgcmV0dXJuIChjeCAtIHB4KSAqIChheSAtIHB5KSAtIChheCAtIHB4KSAqIChjeSAtIHB5KSA+PSAwICYmXG4gICAgICAgICAgIChheCAtIHB4KSAqIChieSAtIHB5KSAtIChieCAtIHB4KSAqIChheSAtIHB5KSA+PSAwICYmXG4gICAgICAgICAgIChieCAtIHB4KSAqIChjeSAtIHB5KSAtIChjeCAtIHB4KSAqIChieSAtIHB5KSA+PSAwO1xufVxuXG4vLyBjaGVjayBpZiBhIGRpYWdvbmFsIGJldHdlZW4gdHdvIHBvbHlnb24gbm9kZXMgaXMgdmFsaWQgKGxpZXMgaW4gcG9seWdvbiBpbnRlcmlvcilcbmZ1bmN0aW9uIGlzVmFsaWREaWFnb25hbChhLCBiKSB7XG4gICAgcmV0dXJuIGEubmV4dC5pICE9PSBiLmkgJiYgYS5wcmV2LmkgIT09IGIuaSAmJiAhaW50ZXJzZWN0c1BvbHlnb24oYSwgYikgJiYgLy8gZG9uZXMndCBpbnRlcnNlY3Qgb3RoZXIgZWRnZXNcbiAgICAgICAgICAgKGxvY2FsbHlJbnNpZGUoYSwgYikgJiYgbG9jYWxseUluc2lkZShiLCBhKSAmJiBtaWRkbGVJbnNpZGUoYSwgYikgJiYgLy8gbG9jYWxseSB2aXNpYmxlXG4gICAgICAgICAgICAoYXJlYShhLnByZXYsIGEsIGIucHJldikgfHwgYXJlYShhLCBiLnByZXYsIGIpKSB8fCAvLyBkb2VzIG5vdCBjcmVhdGUgb3Bwb3NpdGUtZmFjaW5nIHNlY3RvcnNcbiAgICAgICAgICAgIGVxdWFscyhhLCBiKSAmJiBhcmVhKGEucHJldiwgYSwgYS5uZXh0KSA+IDAgJiYgYXJlYShiLnByZXYsIGIsIGIubmV4dCkgPiAwKTsgLy8gc3BlY2lhbCB6ZXJvLWxlbmd0aCBjYXNlXG59XG5cbi8vIHNpZ25lZCBhcmVhIG9mIGEgdHJpYW5nbGVcbmZ1bmN0aW9uIGFyZWEocCwgcSwgcikge1xuICAgIHJldHVybiAocS55IC0gcC55KSAqIChyLnggLSBxLngpIC0gKHEueCAtIHAueCkgKiAoci55IC0gcS55KTtcbn1cblxuLy8gY2hlY2sgaWYgdHdvIHBvaW50cyBhcmUgZXF1YWxcbmZ1bmN0aW9uIGVxdWFscyhwMSwgcDIpIHtcbiAgICByZXR1cm4gcDEueCA9PT0gcDIueCAmJiBwMS55ID09PSBwMi55O1xufVxuXG4vLyBjaGVjayBpZiB0d28gc2VnbWVudHMgaW50ZXJzZWN0XG5mdW5jdGlvbiBpbnRlcnNlY3RzKHAxLCBxMSwgcDIsIHEyKSB7XG4gICAgdmFyIG8xID0gc2lnbihhcmVhKHAxLCBxMSwgcDIpKTtcbiAgICB2YXIgbzIgPSBzaWduKGFyZWEocDEsIHExLCBxMikpO1xuICAgIHZhciBvMyA9IHNpZ24oYXJlYShwMiwgcTIsIHAxKSk7XG4gICAgdmFyIG80ID0gc2lnbihhcmVhKHAyLCBxMiwgcTEpKTtcblxuICAgIGlmIChvMSAhPT0gbzIgJiYgbzMgIT09IG80KSByZXR1cm4gdHJ1ZTsgLy8gZ2VuZXJhbCBjYXNlXG5cbiAgICBpZiAobzEgPT09IDAgJiYgb25TZWdtZW50KHAxLCBwMiwgcTEpKSByZXR1cm4gdHJ1ZTsgLy8gcDEsIHExIGFuZCBwMiBhcmUgY29sbGluZWFyIGFuZCBwMiBsaWVzIG9uIHAxcTFcbiAgICBpZiAobzIgPT09IDAgJiYgb25TZWdtZW50KHAxLCBxMiwgcTEpKSByZXR1cm4gdHJ1ZTsgLy8gcDEsIHExIGFuZCBxMiBhcmUgY29sbGluZWFyIGFuZCBxMiBsaWVzIG9uIHAxcTFcbiAgICBpZiAobzMgPT09IDAgJiYgb25TZWdtZW50KHAyLCBwMSwgcTIpKSByZXR1cm4gdHJ1ZTsgLy8gcDIsIHEyIGFuZCBwMSBhcmUgY29sbGluZWFyIGFuZCBwMSBsaWVzIG9uIHAycTJcbiAgICBpZiAobzQgPT09IDAgJiYgb25TZWdtZW50KHAyLCBxMSwgcTIpKSByZXR1cm4gdHJ1ZTsgLy8gcDIsIHEyIGFuZCBxMSBhcmUgY29sbGluZWFyIGFuZCBxMSBsaWVzIG9uIHAycTJcblxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLy8gZm9yIGNvbGxpbmVhciBwb2ludHMgcCwgcSwgciwgY2hlY2sgaWYgcG9pbnQgcSBsaWVzIG9uIHNlZ21lbnQgcHJcbmZ1bmN0aW9uIG9uU2VnbWVudChwLCBxLCByKSB7XG4gICAgcmV0dXJuIHEueCA8PSBNYXRoLm1heChwLngsIHIueCkgJiYgcS54ID49IE1hdGgubWluKHAueCwgci54KSAmJiBxLnkgPD0gTWF0aC5tYXgocC55LCByLnkpICYmIHEueSA+PSBNYXRoLm1pbihwLnksIHIueSk7XG59XG5cbmZ1bmN0aW9uIHNpZ24obnVtKSB7XG4gICAgcmV0dXJuIG51bSA+IDAgPyAxIDogbnVtIDwgMCA/IC0xIDogMDtcbn1cblxuLy8gY2hlY2sgaWYgYSBwb2x5Z29uIGRpYWdvbmFsIGludGVyc2VjdHMgYW55IHBvbHlnb24gc2VnbWVudHNcbmZ1bmN0aW9uIGludGVyc2VjdHNQb2x5Z29uKGEsIGIpIHtcbiAgICB2YXIgcCA9IGE7XG4gICAgZG8ge1xuICAgICAgICBpZiAocC5pICE9PSBhLmkgJiYgcC5uZXh0LmkgIT09IGEuaSAmJiBwLmkgIT09IGIuaSAmJiBwLm5leHQuaSAhPT0gYi5pICYmXG4gICAgICAgICAgICAgICAgaW50ZXJzZWN0cyhwLCBwLm5leHQsIGEsIGIpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcCA9IHAubmV4dDtcbiAgICB9IHdoaWxlIChwICE9PSBhKTtcblxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLy8gY2hlY2sgaWYgYSBwb2x5Z29uIGRpYWdvbmFsIGlzIGxvY2FsbHkgaW5zaWRlIHRoZSBwb2x5Z29uXG5mdW5jdGlvbiBsb2NhbGx5SW5zaWRlKGEsIGIpIHtcbiAgICByZXR1cm4gYXJlYShhLnByZXYsIGEsIGEubmV4dCkgPCAwID9cbiAgICAgICAgYXJlYShhLCBiLCBhLm5leHQpID49IDAgJiYgYXJlYShhLCBhLnByZXYsIGIpID49IDAgOlxuICAgICAgICBhcmVhKGEsIGIsIGEucHJldikgPCAwIHx8IGFyZWEoYSwgYS5uZXh0LCBiKSA8IDA7XG59XG5cbi8vIGNoZWNrIGlmIHRoZSBtaWRkbGUgcG9pbnQgb2YgYSBwb2x5Z29uIGRpYWdvbmFsIGlzIGluc2lkZSB0aGUgcG9seWdvblxuZnVuY3Rpb24gbWlkZGxlSW5zaWRlKGEsIGIpIHtcbiAgICB2YXIgcCA9IGEsXG4gICAgICAgIGluc2lkZSA9IGZhbHNlLFxuICAgICAgICBweCA9IChhLnggKyBiLngpIC8gMixcbiAgICAgICAgcHkgPSAoYS55ICsgYi55KSAvIDI7XG4gICAgZG8ge1xuICAgICAgICBpZiAoKChwLnkgPiBweSkgIT09IChwLm5leHQueSA+IHB5KSkgJiYgcC5uZXh0LnkgIT09IHAueSAmJlxuICAgICAgICAgICAgICAgIChweCA8IChwLm5leHQueCAtIHAueCkgKiAocHkgLSBwLnkpIC8gKHAubmV4dC55IC0gcC55KSArIHAueCkpXG4gICAgICAgICAgICBpbnNpZGUgPSAhaW5zaWRlO1xuICAgICAgICBwID0gcC5uZXh0O1xuICAgIH0gd2hpbGUgKHAgIT09IGEpO1xuXG4gICAgcmV0dXJuIGluc2lkZTtcbn1cblxuLy8gbGluayB0d28gcG9seWdvbiB2ZXJ0aWNlcyB3aXRoIGEgYnJpZGdlOyBpZiB0aGUgdmVydGljZXMgYmVsb25nIHRvIHRoZSBzYW1lIHJpbmcsIGl0IHNwbGl0cyBwb2x5Z29uIGludG8gdHdvO1xuLy8gaWYgb25lIGJlbG9uZ3MgdG8gdGhlIG91dGVyIHJpbmcgYW5kIGFub3RoZXIgdG8gYSBob2xlLCBpdCBtZXJnZXMgaXQgaW50byBhIHNpbmdsZSByaW5nXG5mdW5jdGlvbiBzcGxpdFBvbHlnb24oYSwgYikge1xuICAgIHZhciBhMiA9IG5ldyBOb2RlKGEuaSwgYS54LCBhLnkpLFxuICAgICAgICBiMiA9IG5ldyBOb2RlKGIuaSwgYi54LCBiLnkpLFxuICAgICAgICBhbiA9IGEubmV4dCxcbiAgICAgICAgYnAgPSBiLnByZXY7XG5cbiAgICBhLm5leHQgPSBiO1xuICAgIGIucHJldiA9IGE7XG5cbiAgICBhMi5uZXh0ID0gYW47XG4gICAgYW4ucHJldiA9IGEyO1xuXG4gICAgYjIubmV4dCA9IGEyO1xuICAgIGEyLnByZXYgPSBiMjtcblxuICAgIGJwLm5leHQgPSBiMjtcbiAgICBiMi5wcmV2ID0gYnA7XG5cbiAgICByZXR1cm4gYjI7XG59XG5cbi8vIGNyZWF0ZSBhIG5vZGUgYW5kIG9wdGlvbmFsbHkgbGluayBpdCB3aXRoIHByZXZpb3VzIG9uZSAoaW4gYSBjaXJjdWxhciBkb3VibHkgbGlua2VkIGxpc3QpXG5mdW5jdGlvbiBpbnNlcnROb2RlKGksIHgsIHksIGxhc3QpIHtcbiAgICB2YXIgcCA9IG5ldyBOb2RlKGksIHgsIHkpO1xuXG4gICAgaWYgKCFsYXN0KSB7XG4gICAgICAgIHAucHJldiA9IHA7XG4gICAgICAgIHAubmV4dCA9IHA7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgICBwLm5leHQgPSBsYXN0Lm5leHQ7XG4gICAgICAgIHAucHJldiA9IGxhc3Q7XG4gICAgICAgIGxhc3QubmV4dC5wcmV2ID0gcDtcbiAgICAgICAgbGFzdC5uZXh0ID0gcDtcbiAgICB9XG4gICAgcmV0dXJuIHA7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZU5vZGUocCkge1xuICAgIHAubmV4dC5wcmV2ID0gcC5wcmV2O1xuICAgIHAucHJldi5uZXh0ID0gcC5uZXh0O1xuXG4gICAgaWYgKHAucHJldlopIHAucHJldloubmV4dFogPSBwLm5leHRaO1xuICAgIGlmIChwLm5leHRaKSBwLm5leHRaLnByZXZaID0gcC5wcmV2Wjtcbn1cblxuZnVuY3Rpb24gTm9kZShpLCB4LCB5KSB7XG4gICAgLy8gdmVydGV4IGluZGV4IGluIGNvb3JkaW5hdGVzIGFycmF5XG4gICAgdGhpcy5pID0gaTtcblxuICAgIC8vIHZlcnRleCBjb29yZGluYXRlc1xuICAgIHRoaXMueCA9IHg7XG4gICAgdGhpcy55ID0geTtcblxuICAgIC8vIHByZXZpb3VzIGFuZCBuZXh0IHZlcnRleCBub2RlcyBpbiBhIHBvbHlnb24gcmluZ1xuICAgIHRoaXMucHJldiA9IG51bGw7XG4gICAgdGhpcy5uZXh0ID0gbnVsbDtcblxuICAgIC8vIHotb3JkZXIgY3VydmUgdmFsdWVcbiAgICB0aGlzLnogPSBudWxsO1xuXG4gICAgLy8gcHJldmlvdXMgYW5kIG5leHQgbm9kZXMgaW4gei1vcmRlclxuICAgIHRoaXMucHJldlogPSBudWxsO1xuICAgIHRoaXMubmV4dFogPSBudWxsO1xuXG4gICAgLy8gaW5kaWNhdGVzIHdoZXRoZXIgdGhpcyBpcyBhIHN0ZWluZXIgcG9pbnRcbiAgICB0aGlzLnN0ZWluZXIgPSBmYWxzZTtcbn1cblxuLy8gcmV0dXJuIGEgcGVyY2VudGFnZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHBvbHlnb24gYXJlYSBhbmQgaXRzIHRyaWFuZ3VsYXRpb24gYXJlYTtcbi8vIHVzZWQgdG8gdmVyaWZ5IGNvcnJlY3RuZXNzIG9mIHRyaWFuZ3VsYXRpb25cbmVhcmN1dC5kZXZpYXRpb24gPSBmdW5jdGlvbiAoZGF0YSwgaG9sZUluZGljZXMsIGRpbSwgdHJpYW5nbGVzKSB7XG4gICAgdmFyIGhhc0hvbGVzID0gaG9sZUluZGljZXMgJiYgaG9sZUluZGljZXMubGVuZ3RoO1xuICAgIHZhciBvdXRlckxlbiA9IGhhc0hvbGVzID8gaG9sZUluZGljZXNbMF0gKiBkaW0gOiBkYXRhLmxlbmd0aDtcblxuICAgIHZhciBwb2x5Z29uQXJlYSA9IE1hdGguYWJzKHNpZ25lZEFyZWEoZGF0YSwgMCwgb3V0ZXJMZW4sIGRpbSkpO1xuICAgIGlmIChoYXNIb2xlcykge1xuICAgICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gaG9sZUluZGljZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBzdGFydCA9IGhvbGVJbmRpY2VzW2ldICogZGltO1xuICAgICAgICAgICAgdmFyIGVuZCA9IGkgPCBsZW4gLSAxID8gaG9sZUluZGljZXNbaSArIDFdICogZGltIDogZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICBwb2x5Z29uQXJlYSAtPSBNYXRoLmFicyhzaWduZWRBcmVhKGRhdGEsIHN0YXJ0LCBlbmQsIGRpbSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHRyaWFuZ2xlc0FyZWEgPSAwO1xuICAgIGZvciAoaSA9IDA7IGkgPCB0cmlhbmdsZXMubGVuZ3RoOyBpICs9IDMpIHtcbiAgICAgICAgdmFyIGEgPSB0cmlhbmdsZXNbaV0gKiBkaW07XG4gICAgICAgIHZhciBiID0gdHJpYW5nbGVzW2kgKyAxXSAqIGRpbTtcbiAgICAgICAgdmFyIGMgPSB0cmlhbmdsZXNbaSArIDJdICogZGltO1xuICAgICAgICB0cmlhbmdsZXNBcmVhICs9IE1hdGguYWJzKFxuICAgICAgICAgICAgKGRhdGFbYV0gLSBkYXRhW2NdKSAqIChkYXRhW2IgKyAxXSAtIGRhdGFbYSArIDFdKSAtXG4gICAgICAgICAgICAoZGF0YVthXSAtIGRhdGFbYl0pICogKGRhdGFbYyArIDFdIC0gZGF0YVthICsgMV0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcG9seWdvbkFyZWEgPT09IDAgJiYgdHJpYW5nbGVzQXJlYSA9PT0gMCA/IDAgOlxuICAgICAgICBNYXRoLmFicygodHJpYW5nbGVzQXJlYSAtIHBvbHlnb25BcmVhKSAvIHBvbHlnb25BcmVhKTtcbn07XG5cbmZ1bmN0aW9uIHNpZ25lZEFyZWEoZGF0YSwgc3RhcnQsIGVuZCwgZGltKSB7XG4gICAgdmFyIHN1bSA9IDA7XG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0LCBqID0gZW5kIC0gZGltOyBpIDwgZW5kOyBpICs9IGRpbSkge1xuICAgICAgICBzdW0gKz0gKGRhdGFbal0gLSBkYXRhW2ldKSAqIChkYXRhW2kgKyAxXSArIGRhdGFbaiArIDFdKTtcbiAgICAgICAgaiA9IGk7XG4gICAgfVxuICAgIHJldHVybiBzdW07XG59XG5cbi8vIHR1cm4gYSBwb2x5Z29uIGluIGEgbXVsdGktZGltZW5zaW9uYWwgYXJyYXkgZm9ybSAoZS5nLiBhcyBpbiBHZW9KU09OKSBpbnRvIGEgZm9ybSBFYXJjdXQgYWNjZXB0c1xuZWFyY3V0LmZsYXR0ZW4gPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgIHZhciBkaW0gPSBkYXRhWzBdWzBdLmxlbmd0aCxcbiAgICAgICAgcmVzdWx0ID0ge3ZlcnRpY2VzOiBbXSwgaG9sZXM6IFtdLCBkaW1lbnNpb25zOiBkaW19LFxuICAgICAgICBob2xlSW5kZXggPSAwO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZGF0YVtpXS5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgZm9yICh2YXIgZCA9IDA7IGQgPCBkaW07IGQrKykgcmVzdWx0LnZlcnRpY2VzLnB1c2goZGF0YVtpXVtqXVtkXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgICAgICBob2xlSW5kZXggKz0gZGF0YVtpIC0gMV0ubGVuZ3RoO1xuICAgICAgICAgICAgcmVzdWx0LmhvbGVzLnB1c2goaG9sZUluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbiIsIihmdW5jdGlvbihnbG9iYWwpe1xuXG4vL1xuLy8gQ2hlY2sgZm9yIG5hdGl2ZSBQcm9taXNlIGFuZCBpdCBoYXMgY29ycmVjdCBpbnRlcmZhY2Vcbi8vXG5cbnZhciBOYXRpdmVQcm9taXNlID0gZ2xvYmFsWydQcm9taXNlJ107XG52YXIgbmF0aXZlUHJvbWlzZVN1cHBvcnRlZCA9XG4gIE5hdGl2ZVByb21pc2UgJiZcbiAgLy8gU29tZSBvZiB0aGVzZSBtZXRob2RzIGFyZSBtaXNzaW5nIGZyb21cbiAgLy8gRmlyZWZveC9DaHJvbWUgZXhwZXJpbWVudGFsIGltcGxlbWVudGF0aW9uc1xuICAncmVzb2x2ZScgaW4gTmF0aXZlUHJvbWlzZSAmJlxuICAncmVqZWN0JyBpbiBOYXRpdmVQcm9taXNlICYmXG4gICdhbGwnIGluIE5hdGl2ZVByb21pc2UgJiZcbiAgJ3JhY2UnIGluIE5hdGl2ZVByb21pc2UgJiZcbiAgLy8gT2xkZXIgdmVyc2lvbiBvZiB0aGUgc3BlYyBoYWQgYSByZXNvbHZlciBvYmplY3RcbiAgLy8gYXMgdGhlIGFyZyByYXRoZXIgdGhhbiBhIGZ1bmN0aW9uXG4gIChmdW5jdGlvbigpe1xuICAgIHZhciByZXNvbHZlO1xuICAgIG5ldyBOYXRpdmVQcm9taXNlKGZ1bmN0aW9uKHIpeyByZXNvbHZlID0gcjsgfSk7XG4gICAgcmV0dXJuIHR5cGVvZiByZXNvbHZlID09PSAnZnVuY3Rpb24nO1xuICB9KSgpO1xuXG5cbi8vXG4vLyBleHBvcnQgaWYgbmVjZXNzYXJ5XG4vL1xuXG5pZiAodHlwZW9mIGV4cG9ydHMgIT09ICd1bmRlZmluZWQnICYmIGV4cG9ydHMpXG57XG4gIC8vIG5vZGUuanNcbiAgZXhwb3J0cy5Qcm9taXNlID0gbmF0aXZlUHJvbWlzZVN1cHBvcnRlZCA/IE5hdGl2ZVByb21pc2UgOiBQcm9taXNlO1xuICBleHBvcnRzLlBvbHlmaWxsID0gUHJvbWlzZTtcbn1cbmVsc2VcbntcbiAgLy8gQU1EXG4gIGlmICh0eXBlb2YgZGVmaW5lID09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcbiAge1xuICAgIGRlZmluZShmdW5jdGlvbigpe1xuICAgICAgcmV0dXJuIG5hdGl2ZVByb21pc2VTdXBwb3J0ZWQgPyBOYXRpdmVQcm9taXNlIDogUHJvbWlzZTtcbiAgICB9KTtcbiAgfVxuICBlbHNlXG4gIHtcbiAgICAvLyBpbiBicm93c2VyIGFkZCB0byBnbG9iYWxcbiAgICBpZiAoIW5hdGl2ZVByb21pc2VTdXBwb3J0ZWQpXG4gICAgICBnbG9iYWxbJ1Byb21pc2UnXSA9IFByb21pc2U7XG4gIH1cbn1cblxuXG4vL1xuLy8gUG9seWZpbGxcbi8vXG5cbnZhciBQRU5ESU5HID0gJ3BlbmRpbmcnO1xudmFyIFNFQUxFRCA9ICdzZWFsZWQnO1xudmFyIEZVTEZJTExFRCA9ICdmdWxmaWxsZWQnO1xudmFyIFJFSkVDVEVEID0gJ3JlamVjdGVkJztcbnZhciBOT09QID0gZnVuY3Rpb24oKXt9O1xuXG5mdW5jdGlvbiBpc0FycmF5KHZhbHVlKSB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBBcnJheV0nO1xufVxuXG4vLyBhc3luYyBjYWxsc1xudmFyIGFzeW5jU2V0VGltZXIgPSB0eXBlb2Ygc2V0SW1tZWRpYXRlICE9PSAndW5kZWZpbmVkJyA/IHNldEltbWVkaWF0ZSA6IHNldFRpbWVvdXQ7XG52YXIgYXN5bmNRdWV1ZSA9IFtdO1xudmFyIGFzeW5jVGltZXI7XG5cbmZ1bmN0aW9uIGFzeW5jRmx1c2goKXtcbiAgLy8gcnVuIHByb21pc2UgY2FsbGJhY2tzXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXN5bmNRdWV1ZS5sZW5ndGg7IGkrKylcbiAgICBhc3luY1F1ZXVlW2ldWzBdKGFzeW5jUXVldWVbaV1bMV0pO1xuXG4gIC8vIHJlc2V0IGFzeW5jIGFzeW5jUXVldWVcbiAgYXN5bmNRdWV1ZSA9IFtdO1xuICBhc3luY1RpbWVyID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGFzeW5jQ2FsbChjYWxsYmFjaywgYXJnKXtcbiAgYXN5bmNRdWV1ZS5wdXNoKFtjYWxsYmFjaywgYXJnXSk7XG5cbiAgaWYgKCFhc3luY1RpbWVyKVxuICB7XG4gICAgYXN5bmNUaW1lciA9IHRydWU7XG4gICAgYXN5bmNTZXRUaW1lcihhc3luY0ZsdXNoLCAwKTtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIGludm9rZVJlc29sdmVyKHJlc29sdmVyLCBwcm9taXNlKSB7XG4gIGZ1bmN0aW9uIHJlc29sdmVQcm9taXNlKHZhbHVlKSB7XG4gICAgcmVzb2x2ZShwcm9taXNlLCB2YWx1ZSk7XG4gIH1cblxuICBmdW5jdGlvbiByZWplY3RQcm9taXNlKHJlYXNvbikge1xuICAgIHJlamVjdChwcm9taXNlLCByZWFzb24pO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZXNvbHZlcihyZXNvbHZlUHJvbWlzZSwgcmVqZWN0UHJvbWlzZSk7XG4gIH0gY2F0Y2goZSkge1xuICAgIHJlamVjdFByb21pc2UoZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW52b2tlQ2FsbGJhY2soc3Vic2NyaWJlcil7XG4gIHZhciBvd25lciA9IHN1YnNjcmliZXIub3duZXI7XG4gIHZhciBzZXR0bGVkID0gb3duZXIuc3RhdGVfO1xuICB2YXIgdmFsdWUgPSBvd25lci5kYXRhXzsgIFxuICB2YXIgY2FsbGJhY2sgPSBzdWJzY3JpYmVyW3NldHRsZWRdO1xuICB2YXIgcHJvbWlzZSA9IHN1YnNjcmliZXIudGhlbjtcblxuICBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKVxuICB7XG4gICAgc2V0dGxlZCA9IEZVTEZJTExFRDtcbiAgICB0cnkge1xuICAgICAgdmFsdWUgPSBjYWxsYmFjayh2YWx1ZSk7XG4gICAgfSBjYXRjaChlKSB7XG4gICAgICByZWplY3QocHJvbWlzZSwgZSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFoYW5kbGVUaGVuYWJsZShwcm9taXNlLCB2YWx1ZSkpXG4gIHtcbiAgICBpZiAoc2V0dGxlZCA9PT0gRlVMRklMTEVEKVxuICAgICAgcmVzb2x2ZShwcm9taXNlLCB2YWx1ZSk7XG5cbiAgICBpZiAoc2V0dGxlZCA9PT0gUkVKRUNURUQpXG4gICAgICByZWplY3QocHJvbWlzZSwgdmFsdWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZVRoZW5hYmxlKHByb21pc2UsIHZhbHVlKSB7XG4gIHZhciByZXNvbHZlZDtcblxuICB0cnkge1xuICAgIGlmIChwcm9taXNlID09PSB2YWx1ZSlcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0EgcHJvbWlzZXMgY2FsbGJhY2sgY2Fubm90IHJldHVybiB0aGF0IHNhbWUgcHJvbWlzZS4nKTtcblxuICAgIGlmICh2YWx1ZSAmJiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpKVxuICAgIHtcbiAgICAgIHZhciB0aGVuID0gdmFsdWUudGhlbjsgIC8vIHRoZW4gc2hvdWxkIGJlIHJldHJpdmVkIG9ubHkgb25jZVxuXG4gICAgICBpZiAodHlwZW9mIHRoZW4gPT09ICdmdW5jdGlvbicpXG4gICAgICB7XG4gICAgICAgIHRoZW4uY2FsbCh2YWx1ZSwgZnVuY3Rpb24odmFsKXtcbiAgICAgICAgICBpZiAoIXJlc29sdmVkKVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB2YWwpXG4gICAgICAgICAgICAgIHJlc29sdmUocHJvbWlzZSwgdmFsKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgZnVsZmlsbChwcm9taXNlLCB2YWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgZnVuY3Rpb24ocmVhc29uKXtcbiAgICAgICAgICBpZiAoIXJlc29sdmVkKVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgcmVqZWN0KHByb21pc2UsIHJlYXNvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoIXJlc29sdmVkKVxuICAgICAgcmVqZWN0KHByb21pc2UsIGUpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmUocHJvbWlzZSwgdmFsdWUpe1xuICBpZiAocHJvbWlzZSA9PT0gdmFsdWUgfHwgIWhhbmRsZVRoZW5hYmxlKHByb21pc2UsIHZhbHVlKSlcbiAgICBmdWxmaWxsKHByb21pc2UsIHZhbHVlKTtcbn1cblxuZnVuY3Rpb24gZnVsZmlsbChwcm9taXNlLCB2YWx1ZSl7XG4gIGlmIChwcm9taXNlLnN0YXRlXyA9PT0gUEVORElORylcbiAge1xuICAgIHByb21pc2Uuc3RhdGVfID0gU0VBTEVEO1xuICAgIHByb21pc2UuZGF0YV8gPSB2YWx1ZTtcblxuICAgIGFzeW5jQ2FsbChwdWJsaXNoRnVsZmlsbG1lbnQsIHByb21pc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlamVjdChwcm9taXNlLCByZWFzb24pe1xuICBpZiAocHJvbWlzZS5zdGF0ZV8gPT09IFBFTkRJTkcpXG4gIHtcbiAgICBwcm9taXNlLnN0YXRlXyA9IFNFQUxFRDtcbiAgICBwcm9taXNlLmRhdGFfID0gcmVhc29uO1xuXG4gICAgYXN5bmNDYWxsKHB1Ymxpc2hSZWplY3Rpb24sIHByb21pc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHB1Ymxpc2gocHJvbWlzZSkge1xuICB2YXIgY2FsbGJhY2tzID0gcHJvbWlzZS50aGVuXztcbiAgcHJvbWlzZS50aGVuXyA9IHVuZGVmaW5lZDtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxiYWNrcy5sZW5ndGg7IGkrKykge1xuICAgIGludm9rZUNhbGxiYWNrKGNhbGxiYWNrc1tpXSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHVibGlzaEZ1bGZpbGxtZW50KHByb21pc2Upe1xuICBwcm9taXNlLnN0YXRlXyA9IEZVTEZJTExFRDtcbiAgcHVibGlzaChwcm9taXNlKTtcbn1cblxuZnVuY3Rpb24gcHVibGlzaFJlamVjdGlvbihwcm9taXNlKXtcbiAgcHJvbWlzZS5zdGF0ZV8gPSBSRUpFQ1RFRDtcbiAgcHVibGlzaChwcm9taXNlKTtcbn1cblxuLyoqXG4qIEBjbGFzc1xuKi9cbmZ1bmN0aW9uIFByb21pc2UocmVzb2x2ZXIpe1xuICBpZiAodHlwZW9mIHJlc29sdmVyICE9PSAnZnVuY3Rpb24nKVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Byb21pc2UgY29uc3RydWN0b3IgdGFrZXMgYSBmdW5jdGlvbiBhcmd1bWVudCcpO1xuXG4gIGlmICh0aGlzIGluc3RhbmNlb2YgUHJvbWlzZSA9PT0gZmFsc2UpXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRmFpbGVkIHRvIGNvbnN0cnVjdCBcXCdQcm9taXNlXFwnOiBQbGVhc2UgdXNlIHRoZSBcXCduZXdcXCcgb3BlcmF0b3IsIHRoaXMgb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4nKTtcblxuICB0aGlzLnRoZW5fID0gW107XG5cbiAgaW52b2tlUmVzb2x2ZXIocmVzb2x2ZXIsIHRoaXMpO1xufVxuXG5Qcm9taXNlLnByb3RvdHlwZSA9IHtcbiAgY29uc3RydWN0b3I6IFByb21pc2UsXG5cbiAgc3RhdGVfOiBQRU5ESU5HLFxuICB0aGVuXzogbnVsbCxcbiAgZGF0YV86IHVuZGVmaW5lZCxcblxuICB0aGVuOiBmdW5jdGlvbihvbkZ1bGZpbGxtZW50LCBvblJlamVjdGlvbil7XG4gICAgdmFyIHN1YnNjcmliZXIgPSB7XG4gICAgICBvd25lcjogdGhpcyxcbiAgICAgIHRoZW46IG5ldyB0aGlzLmNvbnN0cnVjdG9yKE5PT1ApLFxuICAgICAgZnVsZmlsbGVkOiBvbkZ1bGZpbGxtZW50LFxuICAgICAgcmVqZWN0ZWQ6IG9uUmVqZWN0aW9uXG4gICAgfTtcblxuICAgIGlmICh0aGlzLnN0YXRlXyA9PT0gRlVMRklMTEVEIHx8IHRoaXMuc3RhdGVfID09PSBSRUpFQ1RFRClcbiAgICB7XG4gICAgICAvLyBhbHJlYWR5IHJlc29sdmVkLCBjYWxsIGNhbGxiYWNrIGFzeW5jXG4gICAgICBhc3luY0NhbGwoaW52b2tlQ2FsbGJhY2ssIHN1YnNjcmliZXIpO1xuICAgIH1cbiAgICBlbHNlXG4gICAge1xuICAgICAgLy8gc3Vic2NyaWJlXG4gICAgICB0aGlzLnRoZW5fLnB1c2goc3Vic2NyaWJlcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnNjcmliZXIudGhlbjtcbiAgfSxcblxuICAnY2F0Y2gnOiBmdW5jdGlvbihvblJlamVjdGlvbikge1xuICAgIHJldHVybiB0aGlzLnRoZW4obnVsbCwgb25SZWplY3Rpb24pO1xuICB9XG59O1xuXG5Qcm9taXNlLmFsbCA9IGZ1bmN0aW9uKHByb21pc2VzKXtcbiAgdmFyIENsYXNzID0gdGhpcztcblxuICBpZiAoIWlzQXJyYXkocHJvbWlzZXMpKVxuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1lvdSBtdXN0IHBhc3MgYW4gYXJyYXkgdG8gUHJvbWlzZS5hbGwoKS4nKTtcblxuICByZXR1cm4gbmV3IENsYXNzKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCl7XG4gICAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgICB2YXIgcmVtYWluaW5nID0gMDtcblxuICAgIGZ1bmN0aW9uIHJlc29sdmVyKGluZGV4KXtcbiAgICAgIHJlbWFpbmluZysrO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlKXtcbiAgICAgICAgcmVzdWx0c1tpbmRleF0gPSB2YWx1ZTtcbiAgICAgICAgaWYgKCEtLXJlbWFpbmluZylcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdHMpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMCwgcHJvbWlzZTsgaSA8IHByb21pc2VzLmxlbmd0aDsgaSsrKVxuICAgIHtcbiAgICAgIHByb21pc2UgPSBwcm9taXNlc1tpXTtcblxuICAgICAgaWYgKHByb21pc2UgJiYgdHlwZW9mIHByb21pc2UudGhlbiA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgcHJvbWlzZS50aGVuKHJlc29sdmVyKGkpLCByZWplY3QpO1xuICAgICAgZWxzZVxuICAgICAgICByZXN1bHRzW2ldID0gcHJvbWlzZTtcbiAgICB9XG5cbiAgICBpZiAoIXJlbWFpbmluZylcbiAgICAgIHJlc29sdmUocmVzdWx0cyk7XG4gIH0pO1xufTtcblxuUHJvbWlzZS5yYWNlID0gZnVuY3Rpb24ocHJvbWlzZXMpe1xuICB2YXIgQ2xhc3MgPSB0aGlzO1xuXG4gIGlmICghaXNBcnJheShwcm9taXNlcykpXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignWW91IG11c3QgcGFzcyBhbiBhcnJheSB0byBQcm9taXNlLnJhY2UoKS4nKTtcblxuICByZXR1cm4gbmV3IENsYXNzKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGZvciAodmFyIGkgPSAwLCBwcm9taXNlOyBpIDwgcHJvbWlzZXMubGVuZ3RoOyBpKyspXG4gICAge1xuICAgICAgcHJvbWlzZSA9IHByb21pc2VzW2ldO1xuXG4gICAgICBpZiAocHJvbWlzZSAmJiB0eXBlb2YgcHJvbWlzZS50aGVuID09PSAnZnVuY3Rpb24nKVxuICAgICAgICBwcm9taXNlLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgIGVsc2VcbiAgICAgICAgcmVzb2x2ZShwcm9taXNlKTtcbiAgICB9XG4gIH0pO1xufTtcblxuUHJvbWlzZS5yZXNvbHZlID0gZnVuY3Rpb24odmFsdWUpe1xuICB2YXIgQ2xhc3MgPSB0aGlzO1xuXG4gIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlLmNvbnN0cnVjdG9yID09PSBDbGFzcylcbiAgICByZXR1cm4gdmFsdWU7XG5cbiAgcmV0dXJuIG5ldyBDbGFzcyhmdW5jdGlvbihyZXNvbHZlKXtcbiAgICByZXNvbHZlKHZhbHVlKTtcbiAgfSk7XG59O1xuXG5Qcm9taXNlLnJlamVjdCA9IGZ1bmN0aW9uKHJlYXNvbil7XG4gIHZhciBDbGFzcyA9IHRoaXM7XG5cbiAgcmV0dXJuIG5ldyBDbGFzcyhmdW5jdGlvbihyZXNvbHZlLCByZWplY3Qpe1xuICAgIHJlamVjdChyZWFzb24pO1xuICB9KTtcbn07XG5cbn0pKHR5cGVvZiB3aW5kb3cgIT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiB0eXBlb2YgZ2xvYmFsICE9ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogdHlwZW9mIHNlbGYgIT0gJ3VuZGVmaW5lZCcgPyBzZWxmIDogdGhpcyk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBoYXMgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5XG4gICwgcHJlZml4ID0gJ34nO1xuXG4vKipcbiAqIENvbnN0cnVjdG9yIHRvIGNyZWF0ZSBhIHN0b3JhZ2UgZm9yIG91ciBgRUVgIG9iamVjdHMuXG4gKiBBbiBgRXZlbnRzYCBpbnN0YW5jZSBpcyBhIHBsYWluIG9iamVjdCB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBldmVudCBuYW1lcy5cbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIEV2ZW50cygpIHt9XG5cbi8vXG4vLyBXZSB0cnkgdG8gbm90IGluaGVyaXQgZnJvbSBgT2JqZWN0LnByb3RvdHlwZWAuIEluIHNvbWUgZW5naW5lcyBjcmVhdGluZyBhblxuLy8gaW5zdGFuY2UgaW4gdGhpcyB3YXkgaXMgZmFzdGVyIHRoYW4gY2FsbGluZyBgT2JqZWN0LmNyZWF0ZShudWxsKWAgZGlyZWN0bHkuXG4vLyBJZiBgT2JqZWN0LmNyZWF0ZShudWxsKWAgaXMgbm90IHN1cHBvcnRlZCB3ZSBwcmVmaXggdGhlIGV2ZW50IG5hbWVzIHdpdGggYVxuLy8gY2hhcmFjdGVyIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBidWlsdC1pbiBvYmplY3QgcHJvcGVydGllcyBhcmUgbm90XG4vLyBvdmVycmlkZGVuIG9yIHVzZWQgYXMgYW4gYXR0YWNrIHZlY3Rvci5cbi8vXG5pZiAoT2JqZWN0LmNyZWF0ZSkge1xuICBFdmVudHMucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAvL1xuICAvLyBUaGlzIGhhY2sgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGBfX3Byb3RvX19gIHByb3BlcnR5IGlzIHN0aWxsIGluaGVyaXRlZCBpblxuICAvLyBzb21lIG9sZCBicm93c2VycyBsaWtlIEFuZHJvaWQgNCwgaVBob25lIDUuMSwgT3BlcmEgMTEgYW5kIFNhZmFyaSA1LlxuICAvL1xuICBpZiAoIW5ldyBFdmVudHMoKS5fX3Byb3RvX18pIHByZWZpeCA9IGZhbHNlO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudGF0aW9uIG9mIGEgc2luZ2xlIGV2ZW50IGxpc3RlbmVyLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBsaXN0ZW5lciBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7Kn0gY29udGV4dCBUaGUgY29udGV4dCB0byBpbnZva2UgdGhlIGxpc3RlbmVyIHdpdGguXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvbmNlPWZhbHNlXSBTcGVjaWZ5IGlmIHRoZSBsaXN0ZW5lciBpcyBhIG9uZS10aW1lIGxpc3RlbmVyLlxuICogQGNvbnN0cnVjdG9yXG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBFRShmbiwgY29udGV4dCwgb25jZSkge1xuICB0aGlzLmZuID0gZm47XG4gIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gIHRoaXMub25jZSA9IG9uY2UgfHwgZmFsc2U7XG59XG5cbi8qKlxuICogQWRkIGEgbGlzdGVuZXIgZm9yIGEgZ2l2ZW4gZXZlbnQuXG4gKlxuICogQHBhcmFtIHtFdmVudEVtaXR0ZXJ9IGVtaXR0ZXIgUmVmZXJlbmNlIHRvIHRoZSBgRXZlbnRFbWl0dGVyYCBpbnN0YW5jZS5cbiAqIEBwYXJhbSB7KFN0cmluZ3xTeW1ib2wpfSBldmVudCBUaGUgZXZlbnQgbmFtZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBsaXN0ZW5lciBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7Kn0gY29udGV4dCBUaGUgY29udGV4dCB0byBpbnZva2UgdGhlIGxpc3RlbmVyIHdpdGguXG4gKiBAcGFyYW0ge0Jvb2xlYW59IG9uY2UgU3BlY2lmeSBpZiB0aGUgbGlzdGVuZXIgaXMgYSBvbmUtdGltZSBsaXN0ZW5lci5cbiAqIEByZXR1cm5zIHtFdmVudEVtaXR0ZXJ9XG4gKiBAcHJpdmF0ZVxuICovXG5mdW5jdGlvbiBhZGRMaXN0ZW5lcihlbWl0dGVyLCBldmVudCwgZm4sIGNvbnRleHQsIG9uY2UpIHtcbiAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcbiAgfVxuXG4gIHZhciBsaXN0ZW5lciA9IG5ldyBFRShmbiwgY29udGV4dCB8fCBlbWl0dGVyLCBvbmNlKVxuICAgICwgZXZ0ID0gcHJlZml4ID8gcHJlZml4ICsgZXZlbnQgOiBldmVudDtcblxuICBpZiAoIWVtaXR0ZXIuX2V2ZW50c1tldnRdKSBlbWl0dGVyLl9ldmVudHNbZXZ0XSA9IGxpc3RlbmVyLCBlbWl0dGVyLl9ldmVudHNDb3VudCsrO1xuICBlbHNlIGlmICghZW1pdHRlci5fZXZlbnRzW2V2dF0uZm4pIGVtaXR0ZXIuX2V2ZW50c1tldnRdLnB1c2gobGlzdGVuZXIpO1xuICBlbHNlIGVtaXR0ZXIuX2V2ZW50c1tldnRdID0gW2VtaXR0ZXIuX2V2ZW50c1tldnRdLCBsaXN0ZW5lcl07XG5cbiAgcmV0dXJuIGVtaXR0ZXI7XG59XG5cbi8qKlxuICogQ2xlYXIgZXZlbnQgYnkgbmFtZS5cbiAqXG4gKiBAcGFyYW0ge0V2ZW50RW1pdHRlcn0gZW1pdHRlciBSZWZlcmVuY2UgdG8gdGhlIGBFdmVudEVtaXR0ZXJgIGluc3RhbmNlLlxuICogQHBhcmFtIHsoU3RyaW5nfFN5bWJvbCl9IGV2dCBUaGUgRXZlbnQgbmFtZS5cbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGNsZWFyRXZlbnQoZW1pdHRlciwgZXZ0KSB7XG4gIGlmICgtLWVtaXR0ZXIuX2V2ZW50c0NvdW50ID09PSAwKSBlbWl0dGVyLl9ldmVudHMgPSBuZXcgRXZlbnRzKCk7XG4gIGVsc2UgZGVsZXRlIGVtaXR0ZXIuX2V2ZW50c1tldnRdO1xufVxuXG4vKipcbiAqIE1pbmltYWwgYEV2ZW50RW1pdHRlcmAgaW50ZXJmYWNlIHRoYXQgaXMgbW9sZGVkIGFnYWluc3QgdGhlIE5vZGUuanNcbiAqIGBFdmVudEVtaXR0ZXJgIGludGVyZmFjZS5cbiAqXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkge1xuICB0aGlzLl9ldmVudHMgPSBuZXcgRXZlbnRzKCk7XG4gIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYW4gYXJyYXkgbGlzdGluZyB0aGUgZXZlbnRzIGZvciB3aGljaCB0aGUgZW1pdHRlciBoYXMgcmVnaXN0ZXJlZFxuICogbGlzdGVuZXJzLlxuICpcbiAqIEByZXR1cm5zIHtBcnJheX1cbiAqIEBwdWJsaWNcbiAqL1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5ldmVudE5hbWVzID0gZnVuY3Rpb24gZXZlbnROYW1lcygpIHtcbiAgdmFyIG5hbWVzID0gW11cbiAgICAsIGV2ZW50c1xuICAgICwgbmFtZTtcblxuICBpZiAodGhpcy5fZXZlbnRzQ291bnQgPT09IDApIHJldHVybiBuYW1lcztcblxuICBmb3IgKG5hbWUgaW4gKGV2ZW50cyA9IHRoaXMuX2V2ZW50cykpIHtcbiAgICBpZiAoaGFzLmNhbGwoZXZlbnRzLCBuYW1lKSkgbmFtZXMucHVzaChwcmVmaXggPyBuYW1lLnNsaWNlKDEpIDogbmFtZSk7XG4gIH1cblxuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHJldHVybiBuYW1lcy5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhldmVudHMpKTtcbiAgfVxuXG4gIHJldHVybiBuYW1lcztcbn07XG5cbi8qKlxuICogUmV0dXJuIHRoZSBsaXN0ZW5lcnMgcmVnaXN0ZXJlZCBmb3IgYSBnaXZlbiBldmVudC5cbiAqXG4gKiBAcGFyYW0geyhTdHJpbmd8U3ltYm9sKX0gZXZlbnQgVGhlIGV2ZW50IG5hbWUuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFRoZSByZWdpc3RlcmVkIGxpc3RlbmVycy5cbiAqIEBwdWJsaWNcbiAqL1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lcnMgPSBmdW5jdGlvbiBsaXN0ZW5lcnMoZXZlbnQpIHtcbiAgdmFyIGV2dCA9IHByZWZpeCA/IHByZWZpeCArIGV2ZW50IDogZXZlbnRcbiAgICAsIGhhbmRsZXJzID0gdGhpcy5fZXZlbnRzW2V2dF07XG5cbiAgaWYgKCFoYW5kbGVycykgcmV0dXJuIFtdO1xuICBpZiAoaGFuZGxlcnMuZm4pIHJldHVybiBbaGFuZGxlcnMuZm5dO1xuXG4gIGZvciAodmFyIGkgPSAwLCBsID0gaGFuZGxlcnMubGVuZ3RoLCBlZSA9IG5ldyBBcnJheShsKTsgaSA8IGw7IGkrKykge1xuICAgIGVlW2ldID0gaGFuZGxlcnNbaV0uZm47XG4gIH1cblxuICByZXR1cm4gZWU7XG59O1xuXG4vKipcbiAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGxpc3RlbmVycyBsaXN0ZW5pbmcgdG8gYSBnaXZlbiBldmVudC5cbiAqXG4gKiBAcGFyYW0geyhTdHJpbmd8U3ltYm9sKX0gZXZlbnQgVGhlIGV2ZW50IG5hbWUuXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgbnVtYmVyIG9mIGxpc3RlbmVycy5cbiAqIEBwdWJsaWNcbiAqL1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lckNvdW50ID0gZnVuY3Rpb24gbGlzdGVuZXJDb3VudChldmVudCkge1xuICB2YXIgZXZ0ID0gcHJlZml4ID8gcHJlZml4ICsgZXZlbnQgOiBldmVudFxuICAgICwgbGlzdGVuZXJzID0gdGhpcy5fZXZlbnRzW2V2dF07XG5cbiAgaWYgKCFsaXN0ZW5lcnMpIHJldHVybiAwO1xuICBpZiAobGlzdGVuZXJzLmZuKSByZXR1cm4gMTtcbiAgcmV0dXJuIGxpc3RlbmVycy5sZW5ndGg7XG59O1xuXG4vKipcbiAqIENhbGxzIGVhY2ggb2YgdGhlIGxpc3RlbmVycyByZWdpc3RlcmVkIGZvciBhIGdpdmVuIGV2ZW50LlxuICpcbiAqIEBwYXJhbSB7KFN0cmluZ3xTeW1ib2wpfSBldmVudCBUaGUgZXZlbnQgbmFtZS5cbiAqIEByZXR1cm5zIHtCb29sZWFufSBgdHJ1ZWAgaWYgdGhlIGV2ZW50IGhhZCBsaXN0ZW5lcnMsIGVsc2UgYGZhbHNlYC5cbiAqIEBwdWJsaWNcbiAqL1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24gZW1pdChldmVudCwgYTEsIGEyLCBhMywgYTQsIGE1KSB7XG4gIHZhciBldnQgPSBwcmVmaXggPyBwcmVmaXggKyBldmVudCA6IGV2ZW50O1xuXG4gIGlmICghdGhpcy5fZXZlbnRzW2V2dF0pIHJldHVybiBmYWxzZTtcblxuICB2YXIgbGlzdGVuZXJzID0gdGhpcy5fZXZlbnRzW2V2dF1cbiAgICAsIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGhcbiAgICAsIGFyZ3NcbiAgICAsIGk7XG5cbiAgaWYgKGxpc3RlbmVycy5mbikge1xuICAgIGlmIChsaXN0ZW5lcnMub25jZSkgdGhpcy5yZW1vdmVMaXN0ZW5lcihldmVudCwgbGlzdGVuZXJzLmZuLCB1bmRlZmluZWQsIHRydWUpO1xuXG4gICAgc3dpdGNoIChsZW4pIHtcbiAgICAgIGNhc2UgMTogcmV0dXJuIGxpc3RlbmVycy5mbi5jYWxsKGxpc3RlbmVycy5jb250ZXh0KSwgdHJ1ZTtcbiAgICAgIGNhc2UgMjogcmV0dXJuIGxpc3RlbmVycy5mbi5jYWxsKGxpc3RlbmVycy5jb250ZXh0LCBhMSksIHRydWU7XG4gICAgICBjYXNlIDM6IHJldHVybiBsaXN0ZW5lcnMuZm4uY2FsbChsaXN0ZW5lcnMuY29udGV4dCwgYTEsIGEyKSwgdHJ1ZTtcbiAgICAgIGNhc2UgNDogcmV0dXJuIGxpc3RlbmVycy5mbi5jYWxsKGxpc3RlbmVycy5jb250ZXh0LCBhMSwgYTIsIGEzKSwgdHJ1ZTtcbiAgICAgIGNhc2UgNTogcmV0dXJuIGxpc3RlbmVycy5mbi5jYWxsKGxpc3RlbmVycy5jb250ZXh0LCBhMSwgYTIsIGEzLCBhNCksIHRydWU7XG4gICAgICBjYXNlIDY6IHJldHVybiBsaXN0ZW5lcnMuZm4uY2FsbChsaXN0ZW5lcnMuY29udGV4dCwgYTEsIGEyLCBhMywgYTQsIGE1KSwgdHJ1ZTtcbiAgICB9XG5cbiAgICBmb3IgKGkgPSAxLCBhcmdzID0gbmV3IEFycmF5KGxlbiAtMSk7IGkgPCBsZW47IGkrKykge1xuICAgICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG4gICAgfVxuXG4gICAgbGlzdGVuZXJzLmZuLmFwcGx5KGxpc3RlbmVycy5jb250ZXh0LCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbGVuZ3RoID0gbGlzdGVuZXJzLmxlbmd0aFxuICAgICAgLCBqO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAobGlzdGVuZXJzW2ldLm9uY2UpIHRoaXMucmVtb3ZlTGlzdGVuZXIoZXZlbnQsIGxpc3RlbmVyc1tpXS5mbiwgdW5kZWZpbmVkLCB0cnVlKTtcblxuICAgICAgc3dpdGNoIChsZW4pIHtcbiAgICAgICAgY2FzZSAxOiBsaXN0ZW5lcnNbaV0uZm4uY2FsbChsaXN0ZW5lcnNbaV0uY29udGV4dCk7IGJyZWFrO1xuICAgICAgICBjYXNlIDI6IGxpc3RlbmVyc1tpXS5mbi5jYWxsKGxpc3RlbmVyc1tpXS5jb250ZXh0LCBhMSk7IGJyZWFrO1xuICAgICAgICBjYXNlIDM6IGxpc3RlbmVyc1tpXS5mbi5jYWxsKGxpc3RlbmVyc1tpXS5jb250ZXh0LCBhMSwgYTIpOyBicmVhaztcbiAgICAgICAgY2FzZSA0OiBsaXN0ZW5lcnNbaV0uZm4uY2FsbChsaXN0ZW5lcnNbaV0uY29udGV4dCwgYTEsIGEyLCBhMyk7IGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmICghYXJncykgZm9yIChqID0gMSwgYXJncyA9IG5ldyBBcnJheShsZW4gLTEpOyBqIDwgbGVuOyBqKyspIHtcbiAgICAgICAgICAgIGFyZ3NbaiAtIDFdID0gYXJndW1lbnRzW2pdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxpc3RlbmVyc1tpXS5mbi5hcHBseShsaXN0ZW5lcnNbaV0uY29udGV4dCwgYXJncyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG4vKipcbiAqIEFkZCBhIGxpc3RlbmVyIGZvciBhIGdpdmVuIGV2ZW50LlxuICpcbiAqIEBwYXJhbSB7KFN0cmluZ3xTeW1ib2wpfSBldmVudCBUaGUgZXZlbnQgbmFtZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBsaXN0ZW5lciBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7Kn0gW2NvbnRleHQ9dGhpc10gVGhlIGNvbnRleHQgdG8gaW52b2tlIHRoZSBsaXN0ZW5lciB3aXRoLlxuICogQHJldHVybnMge0V2ZW50RW1pdHRlcn0gYHRoaXNgLlxuICogQHB1YmxpY1xuICovXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uID0gZnVuY3Rpb24gb24oZXZlbnQsIGZuLCBjb250ZXh0KSB7XG4gIHJldHVybiBhZGRMaXN0ZW5lcih0aGlzLCBldmVudCwgZm4sIGNvbnRleHQsIGZhbHNlKTtcbn07XG5cbi8qKlxuICogQWRkIGEgb25lLXRpbWUgbGlzdGVuZXIgZm9yIGEgZ2l2ZW4gZXZlbnQuXG4gKlxuICogQHBhcmFtIHsoU3RyaW5nfFN5bWJvbCl9IGV2ZW50IFRoZSBldmVudCBuYW1lLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGxpc3RlbmVyIGZ1bmN0aW9uLlxuICogQHBhcmFtIHsqfSBbY29udGV4dD10aGlzXSBUaGUgY29udGV4dCB0byBpbnZva2UgdGhlIGxpc3RlbmVyIHdpdGguXG4gKiBAcmV0dXJucyB7RXZlbnRFbWl0dGVyfSBgdGhpc2AuXG4gKiBAcHVibGljXG4gKi9cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub25jZSA9IGZ1bmN0aW9uIG9uY2UoZXZlbnQsIGZuLCBjb250ZXh0KSB7XG4gIHJldHVybiBhZGRMaXN0ZW5lcih0aGlzLCBldmVudCwgZm4sIGNvbnRleHQsIHRydWUpO1xufTtcblxuLyoqXG4gKiBSZW1vdmUgdGhlIGxpc3RlbmVycyBvZiBhIGdpdmVuIGV2ZW50LlxuICpcbiAqIEBwYXJhbSB7KFN0cmluZ3xTeW1ib2wpfSBldmVudCBUaGUgZXZlbnQgbmFtZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIE9ubHkgcmVtb3ZlIHRoZSBsaXN0ZW5lcnMgdGhhdCBtYXRjaCB0aGlzIGZ1bmN0aW9uLlxuICogQHBhcmFtIHsqfSBjb250ZXh0IE9ubHkgcmVtb3ZlIHRoZSBsaXN0ZW5lcnMgdGhhdCBoYXZlIHRoaXMgY29udGV4dC5cbiAqIEBwYXJhbSB7Qm9vbGVhbn0gb25jZSBPbmx5IHJlbW92ZSBvbmUtdGltZSBsaXN0ZW5lcnMuXG4gKiBAcmV0dXJucyB7RXZlbnRFbWl0dGVyfSBgdGhpc2AuXG4gKiBAcHVibGljXG4gKi9cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIgPSBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcihldmVudCwgZm4sIGNvbnRleHQsIG9uY2UpIHtcbiAgdmFyIGV2dCA9IHByZWZpeCA/IHByZWZpeCArIGV2ZW50IDogZXZlbnQ7XG5cbiAgaWYgKCF0aGlzLl9ldmVudHNbZXZ0XSkgcmV0dXJuIHRoaXM7XG4gIGlmICghZm4pIHtcbiAgICBjbGVhckV2ZW50KHRoaXMsIGV2dCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB2YXIgbGlzdGVuZXJzID0gdGhpcy5fZXZlbnRzW2V2dF07XG5cbiAgaWYgKGxpc3RlbmVycy5mbikge1xuICAgIGlmIChcbiAgICAgIGxpc3RlbmVycy5mbiA9PT0gZm4gJiZcbiAgICAgICghb25jZSB8fCBsaXN0ZW5lcnMub25jZSkgJiZcbiAgICAgICghY29udGV4dCB8fCBsaXN0ZW5lcnMuY29udGV4dCA9PT0gY29udGV4dClcbiAgICApIHtcbiAgICAgIGNsZWFyRXZlbnQodGhpcywgZXZ0KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIGV2ZW50cyA9IFtdLCBsZW5ndGggPSBsaXN0ZW5lcnMubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChcbiAgICAgICAgbGlzdGVuZXJzW2ldLmZuICE9PSBmbiB8fFxuICAgICAgICAob25jZSAmJiAhbGlzdGVuZXJzW2ldLm9uY2UpIHx8XG4gICAgICAgIChjb250ZXh0ICYmIGxpc3RlbmVyc1tpXS5jb250ZXh0ICE9PSBjb250ZXh0KVxuICAgICAgKSB7XG4gICAgICAgIGV2ZW50cy5wdXNoKGxpc3RlbmVyc1tpXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBSZXNldCB0aGUgYXJyYXksIG9yIHJlbW92ZSBpdCBjb21wbGV0ZWx5IGlmIHdlIGhhdmUgbm8gbW9yZSBsaXN0ZW5lcnMuXG4gICAgLy9cbiAgICBpZiAoZXZlbnRzLmxlbmd0aCkgdGhpcy5fZXZlbnRzW2V2dF0gPSBldmVudHMubGVuZ3RoID09PSAxID8gZXZlbnRzWzBdIDogZXZlbnRzO1xuICAgIGVsc2UgY2xlYXJFdmVudCh0aGlzLCBldnQpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFJlbW92ZSBhbGwgbGlzdGVuZXJzLCBvciB0aG9zZSBvZiB0aGUgc3BlY2lmaWVkIGV2ZW50LlxuICpcbiAqIEBwYXJhbSB7KFN0cmluZ3xTeW1ib2wpfSBbZXZlbnRdIFRoZSBldmVudCBuYW1lLlxuICogQHJldHVybnMge0V2ZW50RW1pdHRlcn0gYHRoaXNgLlxuICogQHB1YmxpY1xuICovXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9IGZ1bmN0aW9uIHJlbW92ZUFsbExpc3RlbmVycyhldmVudCkge1xuICB2YXIgZXZ0O1xuXG4gIGlmIChldmVudCkge1xuICAgIGV2dCA9IHByZWZpeCA/IHByZWZpeCArIGV2ZW50IDogZXZlbnQ7XG4gICAgaWYgKHRoaXMuX2V2ZW50c1tldnRdKSBjbGVhckV2ZW50KHRoaXMsIGV2dCk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fZXZlbnRzID0gbmV3IEV2ZW50cygpO1xuICAgIHRoaXMuX2V2ZW50c0NvdW50ID0gMDtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLy9cbi8vIEFsaWFzIG1ldGhvZHMgbmFtZXMgYmVjYXVzZSBwZW9wbGUgcm9sbCBsaWtlIHRoYXQuXG4vL1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vZmYgPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyO1xuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUub247XG5cbi8vXG4vLyBFeHBvc2UgdGhlIHByZWZpeC5cbi8vXG5FdmVudEVtaXR0ZXIucHJlZml4ZWQgPSBwcmVmaXg7XG5cbi8vXG4vLyBBbGxvdyBgRXZlbnRFbWl0dGVyYCB0byBiZSBpbXBvcnRlZCBhcyBtb2R1bGUgbmFtZXNwYWNlLlxuLy9cbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbi8vXG4vLyBFeHBvc2UgdGhlIG1vZHVsZS5cbi8vXG5pZiAoJ3VuZGVmaW5lZCcgIT09IHR5cGVvZiBtb2R1bGUpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSBFdmVudEVtaXR0ZXI7XG59XG4iLCIvKiFcbiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjMuNS4wXG4gKiBodHRwczovL2pxdWVyeS5jb20vXG4gKlxuICogSW5jbHVkZXMgU2l6emxlLmpzXG4gKiBodHRwczovL3NpenpsZWpzLmNvbS9cbiAqXG4gKiBDb3B5cmlnaHQgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHBzOi8vanF1ZXJ5Lm9yZy9saWNlbnNlXG4gKlxuICogRGF0ZTogMjAyMC0wNC0xMFQxNTowN1pcbiAqL1xuKCBmdW5jdGlvbiggZ2xvYmFsLCBmYWN0b3J5ICkge1xuXG5cdFwidXNlIHN0cmljdFwiO1xuXG5cdGlmICggdHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgbW9kdWxlLmV4cG9ydHMgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHQvLyBGb3IgQ29tbW9uSlMgYW5kIENvbW1vbkpTLWxpa2UgZW52aXJvbm1lbnRzIHdoZXJlIGEgcHJvcGVyIGB3aW5kb3dgXG5cdFx0Ly8gaXMgcHJlc2VudCwgZXhlY3V0ZSB0aGUgZmFjdG9yeSBhbmQgZ2V0IGpRdWVyeS5cblx0XHQvLyBGb3IgZW52aXJvbm1lbnRzIHRoYXQgZG8gbm90IGhhdmUgYSBgd2luZG93YCB3aXRoIGEgYGRvY3VtZW50YFxuXHRcdC8vIChzdWNoIGFzIE5vZGUuanMpLCBleHBvc2UgYSBmYWN0b3J5IGFzIG1vZHVsZS5leHBvcnRzLlxuXHRcdC8vIFRoaXMgYWNjZW50dWF0ZXMgdGhlIG5lZWQgZm9yIHRoZSBjcmVhdGlvbiBvZiBhIHJlYWwgYHdpbmRvd2AuXG5cdFx0Ly8gZS5nLiB2YXIgalF1ZXJ5ID0gcmVxdWlyZShcImpxdWVyeVwiKSh3aW5kb3cpO1xuXHRcdC8vIFNlZSB0aWNrZXQgIzE0NTQ5IGZvciBtb3JlIGluZm8uXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBnbG9iYWwuZG9jdW1lbnQgP1xuXHRcdFx0ZmFjdG9yeSggZ2xvYmFsLCB0cnVlICkgOlxuXHRcdFx0ZnVuY3Rpb24oIHcgKSB7XG5cdFx0XHRcdGlmICggIXcuZG9jdW1lbnQgKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCBcImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnRcIiApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBmYWN0b3J5KCB3ICk7XG5cdFx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdGZhY3RvcnkoIGdsb2JhbCApO1xuXHR9XG5cbi8vIFBhc3MgdGhpcyBpZiB3aW5kb3cgaXMgbm90IGRlZmluZWQgeWV0XG59ICkoIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB0aGlzLCBmdW5jdGlvbiggd2luZG93LCBub0dsb2JhbCApIHtcblxuLy8gRWRnZSA8PSAxMiAtIDEzKywgRmlyZWZveCA8PTE4IC0gNDUrLCBJRSAxMCAtIDExLCBTYWZhcmkgNS4xIC0gOSssIGlPUyA2IC0gOS4xXG4vLyB0aHJvdyBleGNlcHRpb25zIHdoZW4gbm9uLXN0cmljdCBjb2RlIChlLmcuLCBBU1AuTkVUIDQuNSkgYWNjZXNzZXMgc3RyaWN0IG1vZGVcbi8vIGFyZ3VtZW50cy5jYWxsZWUuY2FsbGVyICh0cmFjLTEzMzM1KS4gQnV0IGFzIG9mIGpRdWVyeSAzLjAgKDIwMTYpLCBzdHJpY3QgbW9kZSBzaG91bGQgYmUgY29tbW9uXG4vLyBlbm91Z2ggdGhhdCBhbGwgc3VjaCBhdHRlbXB0cyBhcmUgZ3VhcmRlZCBpbiBhIHRyeSBibG9jay5cblwidXNlIHN0cmljdFwiO1xuXG52YXIgYXJyID0gW107XG5cbnZhciBnZXRQcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcblxudmFyIHNsaWNlID0gYXJyLnNsaWNlO1xuXG52YXIgZmxhdCA9IGFyci5mbGF0ID8gZnVuY3Rpb24oIGFycmF5ICkge1xuXHRyZXR1cm4gYXJyLmZsYXQuY2FsbCggYXJyYXkgKTtcbn0gOiBmdW5jdGlvbiggYXJyYXkgKSB7XG5cdHJldHVybiBhcnIuY29uY2F0LmFwcGx5KCBbXSwgYXJyYXkgKTtcbn07XG5cblxudmFyIHB1c2ggPSBhcnIucHVzaDtcblxudmFyIGluZGV4T2YgPSBhcnIuaW5kZXhPZjtcblxudmFyIGNsYXNzMnR5cGUgPSB7fTtcblxudmFyIHRvU3RyaW5nID0gY2xhc3MydHlwZS50b1N0cmluZztcblxudmFyIGhhc093biA9IGNsYXNzMnR5cGUuaGFzT3duUHJvcGVydHk7XG5cbnZhciBmblRvU3RyaW5nID0gaGFzT3duLnRvU3RyaW5nO1xuXG52YXIgT2JqZWN0RnVuY3Rpb25TdHJpbmcgPSBmblRvU3RyaW5nLmNhbGwoIE9iamVjdCApO1xuXG52YXIgc3VwcG9ydCA9IHt9O1xuXG52YXIgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uIGlzRnVuY3Rpb24oIG9iaiApIHtcblxuICAgICAgLy8gU3VwcG9ydDogQ2hyb21lIDw9NTcsIEZpcmVmb3ggPD01MlxuICAgICAgLy8gSW4gc29tZSBicm93c2VycywgdHlwZW9mIHJldHVybnMgXCJmdW5jdGlvblwiIGZvciBIVE1MIDxvYmplY3Q+IGVsZW1lbnRzXG4gICAgICAvLyAoaS5lLiwgYHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcIm9iamVjdFwiICkgPT09IFwiZnVuY3Rpb25cImApLlxuICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBjbGFzc2lmeSAqYW55KiBET00gbm9kZSBhcyBhIGZ1bmN0aW9uLlxuICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBlb2Ygb2JqLm5vZGVUeXBlICE9PSBcIm51bWJlclwiO1xuICB9O1xuXG5cbnZhciBpc1dpbmRvdyA9IGZ1bmN0aW9uIGlzV2luZG93KCBvYmogKSB7XG5cdFx0cmV0dXJuIG9iaiAhPSBudWxsICYmIG9iaiA9PT0gb2JqLndpbmRvdztcblx0fTtcblxuXG52YXIgZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQ7XG5cblxuXG5cdHZhciBwcmVzZXJ2ZWRTY3JpcHRBdHRyaWJ1dGVzID0ge1xuXHRcdHR5cGU6IHRydWUsXG5cdFx0c3JjOiB0cnVlLFxuXHRcdG5vbmNlOiB0cnVlLFxuXHRcdG5vTW9kdWxlOiB0cnVlXG5cdH07XG5cblx0ZnVuY3Rpb24gRE9NRXZhbCggY29kZSwgbm9kZSwgZG9jICkge1xuXHRcdGRvYyA9IGRvYyB8fCBkb2N1bWVudDtcblxuXHRcdHZhciBpLCB2YWwsXG5cdFx0XHRzY3JpcHQgPSBkb2MuY3JlYXRlRWxlbWVudCggXCJzY3JpcHRcIiApO1xuXG5cdFx0c2NyaXB0LnRleHQgPSBjb2RlO1xuXHRcdGlmICggbm9kZSApIHtcblx0XHRcdGZvciAoIGkgaW4gcHJlc2VydmVkU2NyaXB0QXR0cmlidXRlcyApIHtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDY0KywgRWRnZSAxOCtcblx0XHRcdFx0Ly8gU29tZSBicm93c2VycyBkb24ndCBzdXBwb3J0IHRoZSBcIm5vbmNlXCIgcHJvcGVydHkgb24gc2NyaXB0cy5cblx0XHRcdFx0Ly8gT24gdGhlIG90aGVyIGhhbmQsIGp1c3QgdXNpbmcgYGdldEF0dHJpYnV0ZWAgaXMgbm90IGVub3VnaCBhc1xuXHRcdFx0XHQvLyB0aGUgYG5vbmNlYCBhdHRyaWJ1dGUgaXMgcmVzZXQgdG8gYW4gZW1wdHkgc3RyaW5nIHdoZW5ldmVyIGl0XG5cdFx0XHRcdC8vIGJlY29tZXMgYnJvd3NpbmctY29udGV4dCBjb25uZWN0ZWQuXG5cdFx0XHRcdC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL2h0bWwvaXNzdWVzLzIzNjlcblx0XHRcdFx0Ly8gU2VlIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI25vbmNlLWF0dHJpYnV0ZXNcblx0XHRcdFx0Ly8gVGhlIGBub2RlLmdldEF0dHJpYnV0ZWAgY2hlY2sgd2FzIGFkZGVkIGZvciB0aGUgc2FrZSBvZlxuXHRcdFx0XHQvLyBgalF1ZXJ5Lmdsb2JhbEV2YWxgIHNvIHRoYXQgaXQgY2FuIGZha2UgYSBub25jZS1jb250YWluaW5nIG5vZGVcblx0XHRcdFx0Ly8gdmlhIGFuIG9iamVjdC5cblx0XHRcdFx0dmFsID0gbm9kZVsgaSBdIHx8IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCBpICk7XG5cdFx0XHRcdGlmICggdmFsICkge1xuXHRcdFx0XHRcdHNjcmlwdC5zZXRBdHRyaWJ1dGUoIGksIHZhbCApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGRvYy5oZWFkLmFwcGVuZENoaWxkKCBzY3JpcHQgKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBzY3JpcHQgKTtcblx0fVxuXG5cbmZ1bmN0aW9uIHRvVHlwZSggb2JqICkge1xuXHRpZiAoIG9iaiA9PSBudWxsICkge1xuXHRcdHJldHVybiBvYmogKyBcIlwiO1xuXHR9XG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTIuMyBvbmx5IChmdW5jdGlvbmlzaCBSZWdFeHApXG5cdHJldHVybiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBvYmogPT09IFwiZnVuY3Rpb25cIiA/XG5cdFx0Y2xhc3MydHlwZVsgdG9TdHJpbmcuY2FsbCggb2JqICkgXSB8fCBcIm9iamVjdFwiIDpcblx0XHR0eXBlb2Ygb2JqO1xufVxuLyogZ2xvYmFsIFN5bWJvbCAqL1xuLy8gRGVmaW5pbmcgdGhpcyBnbG9iYWwgaW4gLmVzbGludHJjLmpzb24gd291bGQgY3JlYXRlIGEgZGFuZ2VyIG9mIHVzaW5nIHRoZSBnbG9iYWxcbi8vIHVuZ3VhcmRlZCBpbiBhbm90aGVyIHBsYWNlLCBpdCBzZWVtcyBzYWZlciB0byBkZWZpbmUgZ2xvYmFsIG9ubHkgZm9yIHRoaXMgbW9kdWxlXG5cblxuXG52YXJcblx0dmVyc2lvbiA9IFwiMy41LjBcIixcblxuXHQvLyBEZWZpbmUgYSBsb2NhbCBjb3B5IG9mIGpRdWVyeVxuXHRqUXVlcnkgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7XG5cblx0XHQvLyBUaGUgalF1ZXJ5IG9iamVjdCBpcyBhY3R1YWxseSBqdXN0IHRoZSBpbml0IGNvbnN0cnVjdG9yICdlbmhhbmNlZCdcblx0XHQvLyBOZWVkIGluaXQgaWYgalF1ZXJ5IGlzIGNhbGxlZCAoanVzdCBhbGxvdyBlcnJvciB0byBiZSB0aHJvd24gaWYgbm90IGluY2x1ZGVkKVxuXHRcdHJldHVybiBuZXcgalF1ZXJ5LmZuLmluaXQoIHNlbGVjdG9yLCBjb250ZXh0ICk7XG5cdH07XG5cbmpRdWVyeS5mbiA9IGpRdWVyeS5wcm90b3R5cGUgPSB7XG5cblx0Ly8gVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBqUXVlcnkgYmVpbmcgdXNlZFxuXHRqcXVlcnk6IHZlcnNpb24sXG5cblx0Y29uc3RydWN0b3I6IGpRdWVyeSxcblxuXHQvLyBUaGUgZGVmYXVsdCBsZW5ndGggb2YgYSBqUXVlcnkgb2JqZWN0IGlzIDBcblx0bGVuZ3RoOiAwLFxuXG5cdHRvQXJyYXk6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBzbGljZS5jYWxsKCB0aGlzICk7XG5cdH0sXG5cblx0Ly8gR2V0IHRoZSBOdGggZWxlbWVudCBpbiB0aGUgbWF0Y2hlZCBlbGVtZW50IHNldCBPUlxuXHQvLyBHZXQgdGhlIHdob2xlIG1hdGNoZWQgZWxlbWVudCBzZXQgYXMgYSBjbGVhbiBhcnJheVxuXHRnZXQ6IGZ1bmN0aW9uKCBudW0gKSB7XG5cblx0XHQvLyBSZXR1cm4gYWxsIHRoZSBlbGVtZW50cyBpbiBhIGNsZWFuIGFycmF5XG5cdFx0aWYgKCBudW0gPT0gbnVsbCApIHtcblx0XHRcdHJldHVybiBzbGljZS5jYWxsKCB0aGlzICk7XG5cdFx0fVxuXG5cdFx0Ly8gUmV0dXJuIGp1c3QgdGhlIG9uZSBlbGVtZW50IGZyb20gdGhlIHNldFxuXHRcdHJldHVybiBudW0gPCAwID8gdGhpc1sgbnVtICsgdGhpcy5sZW5ndGggXSA6IHRoaXNbIG51bSBdO1xuXHR9LFxuXG5cdC8vIFRha2UgYW4gYXJyYXkgb2YgZWxlbWVudHMgYW5kIHB1c2ggaXQgb250byB0aGUgc3RhY2tcblx0Ly8gKHJldHVybmluZyB0aGUgbmV3IG1hdGNoZWQgZWxlbWVudCBzZXQpXG5cdHB1c2hTdGFjazogZnVuY3Rpb24oIGVsZW1zICkge1xuXG5cdFx0Ly8gQnVpbGQgYSBuZXcgalF1ZXJ5IG1hdGNoZWQgZWxlbWVudCBzZXRcblx0XHR2YXIgcmV0ID0galF1ZXJ5Lm1lcmdlKCB0aGlzLmNvbnN0cnVjdG9yKCksIGVsZW1zICk7XG5cblx0XHQvLyBBZGQgdGhlIG9sZCBvYmplY3Qgb250byB0aGUgc3RhY2sgKGFzIGEgcmVmZXJlbmNlKVxuXHRcdHJldC5wcmV2T2JqZWN0ID0gdGhpcztcblxuXHRcdC8vIFJldHVybiB0aGUgbmV3bHktZm9ybWVkIGVsZW1lbnQgc2V0XG5cdFx0cmV0dXJuIHJldDtcblx0fSxcblxuXHQvLyBFeGVjdXRlIGEgY2FsbGJhY2sgZm9yIGV2ZXJ5IGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgc2V0LlxuXHRlYWNoOiBmdW5jdGlvbiggY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5lYWNoKCB0aGlzLCBjYWxsYmFjayApO1xuXHR9LFxuXG5cdG1hcDogZnVuY3Rpb24oIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5Lm1hcCggdGhpcywgZnVuY3Rpb24oIGVsZW0sIGkgKSB7XG5cdFx0XHRyZXR1cm4gY2FsbGJhY2suY2FsbCggZWxlbSwgaSwgZWxlbSApO1xuXHRcdH0gKSApO1xuXHR9LFxuXG5cdHNsaWNlOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHNsaWNlLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKSApO1xuXHR9LFxuXG5cdGZpcnN0OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5lcSggMCApO1xuXHR9LFxuXG5cdGxhc3Q6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmVxKCAtMSApO1xuXHR9LFxuXG5cdGV2ZW46IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5LmdyZXAoIHRoaXMsIGZ1bmN0aW9uKCBfZWxlbSwgaSApIHtcblx0XHRcdHJldHVybiAoIGkgKyAxICkgJSAyO1xuXHRcdH0gKSApO1xuXHR9LFxuXG5cdG9kZDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkuZ3JlcCggdGhpcywgZnVuY3Rpb24oIF9lbGVtLCBpICkge1xuXHRcdFx0cmV0dXJuIGkgJSAyO1xuXHRcdH0gKSApO1xuXHR9LFxuXG5cdGVxOiBmdW5jdGlvbiggaSApIHtcblx0XHR2YXIgbGVuID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRqID0gK2kgKyAoIGkgPCAwID8gbGVuIDogMCApO1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggaiA+PSAwICYmIGogPCBsZW4gPyBbIHRoaXNbIGogXSBdIDogW10gKTtcblx0fSxcblxuXHRlbmQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLnByZXZPYmplY3QgfHwgdGhpcy5jb25zdHJ1Y3RvcigpO1xuXHR9LFxuXG5cdC8vIEZvciBpbnRlcm5hbCB1c2Ugb25seS5cblx0Ly8gQmVoYXZlcyBsaWtlIGFuIEFycmF5J3MgbWV0aG9kLCBub3QgbGlrZSBhIGpRdWVyeSBtZXRob2QuXG5cdHB1c2g6IHB1c2gsXG5cdHNvcnQ6IGFyci5zb3J0LFxuXHRzcGxpY2U6IGFyci5zcGxpY2Vcbn07XG5cbmpRdWVyeS5leHRlbmQgPSBqUXVlcnkuZm4uZXh0ZW5kID0gZnVuY3Rpb24oKSB7XG5cdHZhciBvcHRpb25zLCBuYW1lLCBzcmMsIGNvcHksIGNvcHlJc0FycmF5LCBjbG9uZSxcblx0XHR0YXJnZXQgPSBhcmd1bWVudHNbIDAgXSB8fCB7fSxcblx0XHRpID0gMSxcblx0XHRsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoLFxuXHRcdGRlZXAgPSBmYWxzZTtcblxuXHQvLyBIYW5kbGUgYSBkZWVwIGNvcHkgc2l0dWF0aW9uXG5cdGlmICggdHlwZW9mIHRhcmdldCA9PT0gXCJib29sZWFuXCIgKSB7XG5cdFx0ZGVlcCA9IHRhcmdldDtcblxuXHRcdC8vIFNraXAgdGhlIGJvb2xlYW4gYW5kIHRoZSB0YXJnZXRcblx0XHR0YXJnZXQgPSBhcmd1bWVudHNbIGkgXSB8fCB7fTtcblx0XHRpKys7XG5cdH1cblxuXHQvLyBIYW5kbGUgY2FzZSB3aGVuIHRhcmdldCBpcyBhIHN0cmluZyBvciBzb21ldGhpbmcgKHBvc3NpYmxlIGluIGRlZXAgY29weSlcblx0aWYgKCB0eXBlb2YgdGFyZ2V0ICE9PSBcIm9iamVjdFwiICYmICFpc0Z1bmN0aW9uKCB0YXJnZXQgKSApIHtcblx0XHR0YXJnZXQgPSB7fTtcblx0fVxuXG5cdC8vIEV4dGVuZCBqUXVlcnkgaXRzZWxmIGlmIG9ubHkgb25lIGFyZ3VtZW50IGlzIHBhc3NlZFxuXHRpZiAoIGkgPT09IGxlbmd0aCApIHtcblx0XHR0YXJnZXQgPSB0aGlzO1xuXHRcdGktLTtcblx0fVxuXG5cdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXG5cdFx0Ly8gT25seSBkZWFsIHdpdGggbm9uLW51bGwvdW5kZWZpbmVkIHZhbHVlc1xuXHRcdGlmICggKCBvcHRpb25zID0gYXJndW1lbnRzWyBpIF0gKSAhPSBudWxsICkge1xuXG5cdFx0XHQvLyBFeHRlbmQgdGhlIGJhc2Ugb2JqZWN0XG5cdFx0XHRmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7XG5cdFx0XHRcdGNvcHkgPSBvcHRpb25zWyBuYW1lIF07XG5cblx0XHRcdFx0Ly8gUHJldmVudCBPYmplY3QucHJvdG90eXBlIHBvbGx1dGlvblxuXHRcdFx0XHQvLyBQcmV2ZW50IG5ldmVyLWVuZGluZyBsb29wXG5cdFx0XHRcdGlmICggbmFtZSA9PT0gXCJfX3Byb3RvX19cIiB8fCB0YXJnZXQgPT09IGNvcHkgKSB7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBSZWN1cnNlIGlmIHdlJ3JlIG1lcmdpbmcgcGxhaW4gb2JqZWN0cyBvciBhcnJheXNcblx0XHRcdFx0aWYgKCBkZWVwICYmIGNvcHkgJiYgKCBqUXVlcnkuaXNQbGFpbk9iamVjdCggY29weSApIHx8XG5cdFx0XHRcdFx0KCBjb3B5SXNBcnJheSA9IEFycmF5LmlzQXJyYXkoIGNvcHkgKSApICkgKSB7XG5cdFx0XHRcdFx0c3JjID0gdGFyZ2V0WyBuYW1lIF07XG5cblx0XHRcdFx0XHQvLyBFbnN1cmUgcHJvcGVyIHR5cGUgZm9yIHRoZSBzb3VyY2UgdmFsdWVcblx0XHRcdFx0XHRpZiAoIGNvcHlJc0FycmF5ICYmICFBcnJheS5pc0FycmF5KCBzcmMgKSApIHtcblx0XHRcdFx0XHRcdGNsb25lID0gW107XG5cdFx0XHRcdFx0fSBlbHNlIGlmICggIWNvcHlJc0FycmF5ICYmICFqUXVlcnkuaXNQbGFpbk9iamVjdCggc3JjICkgKSB7XG5cdFx0XHRcdFx0XHRjbG9uZSA9IHt9O1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjbG9uZSA9IHNyYztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Y29weUlzQXJyYXkgPSBmYWxzZTtcblxuXHRcdFx0XHRcdC8vIE5ldmVyIG1vdmUgb3JpZ2luYWwgb2JqZWN0cywgY2xvbmUgdGhlbVxuXHRcdFx0XHRcdHRhcmdldFsgbmFtZSBdID0galF1ZXJ5LmV4dGVuZCggZGVlcCwgY2xvbmUsIGNvcHkgKTtcblxuXHRcdFx0XHQvLyBEb24ndCBicmluZyBpbiB1bmRlZmluZWQgdmFsdWVzXG5cdFx0XHRcdH0gZWxzZSBpZiAoIGNvcHkgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHR0YXJnZXRbIG5hbWUgXSA9IGNvcHk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBSZXR1cm4gdGhlIG1vZGlmaWVkIG9iamVjdFxuXHRyZXR1cm4gdGFyZ2V0O1xufTtcblxualF1ZXJ5LmV4dGVuZCgge1xuXG5cdC8vIFVuaXF1ZSBmb3IgZWFjaCBjb3B5IG9mIGpRdWVyeSBvbiB0aGUgcGFnZVxuXHRleHBhbmRvOiBcImpRdWVyeVwiICsgKCB2ZXJzaW9uICsgTWF0aC5yYW5kb20oKSApLnJlcGxhY2UoIC9cXEQvZywgXCJcIiApLFxuXG5cdC8vIEFzc3VtZSBqUXVlcnkgaXMgcmVhZHkgd2l0aG91dCB0aGUgcmVhZHkgbW9kdWxlXG5cdGlzUmVhZHk6IHRydWUsXG5cblx0ZXJyb3I6IGZ1bmN0aW9uKCBtc2cgKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCBtc2cgKTtcblx0fSxcblxuXHRub29wOiBmdW5jdGlvbigpIHt9LFxuXG5cdGlzUGxhaW5PYmplY3Q6IGZ1bmN0aW9uKCBvYmogKSB7XG5cdFx0dmFyIHByb3RvLCBDdG9yO1xuXG5cdFx0Ly8gRGV0ZWN0IG9idmlvdXMgbmVnYXRpdmVzXG5cdFx0Ly8gVXNlIHRvU3RyaW5nIGluc3RlYWQgb2YgalF1ZXJ5LnR5cGUgdG8gY2F0Y2ggaG9zdCBvYmplY3RzXG5cdFx0aWYgKCAhb2JqIHx8IHRvU3RyaW5nLmNhbGwoIG9iaiApICE9PSBcIltvYmplY3QgT2JqZWN0XVwiICkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHByb3RvID0gZ2V0UHJvdG8oIG9iaiApO1xuXG5cdFx0Ly8gT2JqZWN0cyB3aXRoIG5vIHByb3RvdHlwZSAoZS5nLiwgYE9iamVjdC5jcmVhdGUoIG51bGwgKWApIGFyZSBwbGFpblxuXHRcdGlmICggIXByb3RvICkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0Ly8gT2JqZWN0cyB3aXRoIHByb3RvdHlwZSBhcmUgcGxhaW4gaWZmIHRoZXkgd2VyZSBjb25zdHJ1Y3RlZCBieSBhIGdsb2JhbCBPYmplY3QgZnVuY3Rpb25cblx0XHRDdG9yID0gaGFzT3duLmNhbGwoIHByb3RvLCBcImNvbnN0cnVjdG9yXCIgKSAmJiBwcm90by5jb25zdHJ1Y3Rvcjtcblx0XHRyZXR1cm4gdHlwZW9mIEN0b3IgPT09IFwiZnVuY3Rpb25cIiAmJiBmblRvU3RyaW5nLmNhbGwoIEN0b3IgKSA9PT0gT2JqZWN0RnVuY3Rpb25TdHJpbmc7XG5cdH0sXG5cblx0aXNFbXB0eU9iamVjdDogZnVuY3Rpb24oIG9iaiApIHtcblx0XHR2YXIgbmFtZTtcblxuXHRcdGZvciAoIG5hbWUgaW4gb2JqICkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSxcblxuXHQvLyBFdmFsdWF0ZXMgYSBzY3JpcHQgaW4gYSBwcm92aWRlZCBjb250ZXh0OyBmYWxscyBiYWNrIHRvIHRoZSBnbG9iYWwgb25lXG5cdC8vIGlmIG5vdCBzcGVjaWZpZWQuXG5cdGdsb2JhbEV2YWw6IGZ1bmN0aW9uKCBjb2RlLCBvcHRpb25zLCBkb2MgKSB7XG5cdFx0RE9NRXZhbCggY29kZSwgeyBub25jZTogb3B0aW9ucyAmJiBvcHRpb25zLm5vbmNlIH0sIGRvYyApO1xuXHR9LFxuXG5cdGVhY2g6IGZ1bmN0aW9uKCBvYmosIGNhbGxiYWNrICkge1xuXHRcdHZhciBsZW5ndGgsIGkgPSAwO1xuXG5cdFx0aWYgKCBpc0FycmF5TGlrZSggb2JqICkgKSB7XG5cdFx0XHRsZW5ndGggPSBvYmoubGVuZ3RoO1xuXHRcdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRcdGlmICggY2FsbGJhY2suY2FsbCggb2JqWyBpIF0sIGksIG9ialsgaSBdICkgPT09IGZhbHNlICkge1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZvciAoIGkgaW4gb2JqICkge1xuXHRcdFx0XHRpZiAoIGNhbGxiYWNrLmNhbGwoIG9ialsgaSBdLCBpLCBvYmpbIGkgXSApID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBvYmo7XG5cdH0sXG5cblx0Ly8gcmVzdWx0cyBpcyBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seVxuXHRtYWtlQXJyYXk6IGZ1bmN0aW9uKCBhcnIsIHJlc3VsdHMgKSB7XG5cdFx0dmFyIHJldCA9IHJlc3VsdHMgfHwgW107XG5cblx0XHRpZiAoIGFyciAhPSBudWxsICkge1xuXHRcdFx0aWYgKCBpc0FycmF5TGlrZSggT2JqZWN0KCBhcnIgKSApICkge1xuXHRcdFx0XHRqUXVlcnkubWVyZ2UoIHJldCxcblx0XHRcdFx0XHR0eXBlb2YgYXJyID09PSBcInN0cmluZ1wiID9cblx0XHRcdFx0XHRbIGFyciBdIDogYXJyXG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwdXNoLmNhbGwoIHJldCwgYXJyICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJldDtcblx0fSxcblxuXHRpbkFycmF5OiBmdW5jdGlvbiggZWxlbSwgYXJyLCBpICkge1xuXHRcdHJldHVybiBhcnIgPT0gbnVsbCA/IC0xIDogaW5kZXhPZi5jYWxsKCBhcnIsIGVsZW0sIGkgKTtcblx0fSxcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0Ly8gcHVzaC5hcHBseShfLCBhcnJheWxpa2UpIHRocm93cyBvbiBhbmNpZW50IFdlYktpdFxuXHRtZXJnZTogZnVuY3Rpb24oIGZpcnN0LCBzZWNvbmQgKSB7XG5cdFx0dmFyIGxlbiA9ICtzZWNvbmQubGVuZ3RoLFxuXHRcdFx0aiA9IDAsXG5cdFx0XHRpID0gZmlyc3QubGVuZ3RoO1xuXG5cdFx0Zm9yICggOyBqIDwgbGVuOyBqKysgKSB7XG5cdFx0XHRmaXJzdFsgaSsrIF0gPSBzZWNvbmRbIGogXTtcblx0XHR9XG5cblx0XHRmaXJzdC5sZW5ndGggPSBpO1xuXG5cdFx0cmV0dXJuIGZpcnN0O1xuXHR9LFxuXG5cdGdyZXA6IGZ1bmN0aW9uKCBlbGVtcywgY2FsbGJhY2ssIGludmVydCApIHtcblx0XHR2YXIgY2FsbGJhY2tJbnZlcnNlLFxuXHRcdFx0bWF0Y2hlcyA9IFtdLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRsZW5ndGggPSBlbGVtcy5sZW5ndGgsXG5cdFx0XHRjYWxsYmFja0V4cGVjdCA9ICFpbnZlcnQ7XG5cblx0XHQvLyBHbyB0aHJvdWdoIHRoZSBhcnJheSwgb25seSBzYXZpbmcgdGhlIGl0ZW1zXG5cdFx0Ly8gdGhhdCBwYXNzIHRoZSB2YWxpZGF0b3IgZnVuY3Rpb25cblx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblx0XHRcdGNhbGxiYWNrSW52ZXJzZSA9ICFjYWxsYmFjayggZWxlbXNbIGkgXSwgaSApO1xuXHRcdFx0aWYgKCBjYWxsYmFja0ludmVyc2UgIT09IGNhbGxiYWNrRXhwZWN0ICkge1xuXHRcdFx0XHRtYXRjaGVzLnB1c2goIGVsZW1zWyBpIF0gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gbWF0Y2hlcztcblx0fSxcblxuXHQvLyBhcmcgaXMgZm9yIGludGVybmFsIHVzYWdlIG9ubHlcblx0bWFwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBhcmcgKSB7XG5cdFx0dmFyIGxlbmd0aCwgdmFsdWUsXG5cdFx0XHRpID0gMCxcblx0XHRcdHJldCA9IFtdO1xuXG5cdFx0Ly8gR28gdGhyb3VnaCB0aGUgYXJyYXksIHRyYW5zbGF0aW5nIGVhY2ggb2YgdGhlIGl0ZW1zIHRvIHRoZWlyIG5ldyB2YWx1ZXNcblx0XHRpZiAoIGlzQXJyYXlMaWtlKCBlbGVtcyApICkge1xuXHRcdFx0bGVuZ3RoID0gZWxlbXMubGVuZ3RoO1xuXHRcdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRcdHZhbHVlID0gY2FsbGJhY2soIGVsZW1zWyBpIF0sIGksIGFyZyApO1xuXG5cdFx0XHRcdGlmICggdmFsdWUgIT0gbnVsbCApIHtcblx0XHRcdFx0XHRyZXQucHVzaCggdmFsdWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0Ly8gR28gdGhyb3VnaCBldmVyeSBrZXkgb24gdGhlIG9iamVjdCxcblx0XHR9IGVsc2Uge1xuXHRcdFx0Zm9yICggaSBpbiBlbGVtcyApIHtcblx0XHRcdFx0dmFsdWUgPSBjYWxsYmFjayggZWxlbXNbIGkgXSwgaSwgYXJnICk7XG5cblx0XHRcdFx0aWYgKCB2YWx1ZSAhPSBudWxsICkge1xuXHRcdFx0XHRcdHJldC5wdXNoKCB2YWx1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5c1xuXHRcdHJldHVybiBmbGF0KCByZXQgKTtcblx0fSxcblxuXHQvLyBBIGdsb2JhbCBHVUlEIGNvdW50ZXIgZm9yIG9iamVjdHNcblx0Z3VpZDogMSxcblxuXHQvLyBqUXVlcnkuc3VwcG9ydCBpcyBub3QgdXNlZCBpbiBDb3JlIGJ1dCBvdGhlciBwcm9qZWN0cyBhdHRhY2ggdGhlaXJcblx0Ly8gcHJvcGVydGllcyB0byBpdCBzbyBpdCBuZWVkcyB0byBleGlzdC5cblx0c3VwcG9ydDogc3VwcG9ydFxufSApO1xuXG5pZiAoIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiApIHtcblx0alF1ZXJ5LmZuWyBTeW1ib2wuaXRlcmF0b3IgXSA9IGFyclsgU3ltYm9sLml0ZXJhdG9yIF07XG59XG5cbi8vIFBvcHVsYXRlIHRoZSBjbGFzczJ0eXBlIG1hcFxualF1ZXJ5LmVhY2goIFwiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2xcIi5zcGxpdCggXCIgXCIgKSxcbmZ1bmN0aW9uKCBfaSwgbmFtZSApIHtcblx0Y2xhc3MydHlwZVsgXCJbb2JqZWN0IFwiICsgbmFtZSArIFwiXVwiIF0gPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG59ICk7XG5cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKCBvYmogKSB7XG5cblx0Ly8gU3VwcG9ydDogcmVhbCBpT1MgOC4yIG9ubHkgKG5vdCByZXByb2R1Y2libGUgaW4gc2ltdWxhdG9yKVxuXHQvLyBgaW5gIGNoZWNrIHVzZWQgdG8gcHJldmVudCBKSVQgZXJyb3IgKGdoLTIxNDUpXG5cdC8vIGhhc093biBpc24ndCB1c2VkIGhlcmUgZHVlIHRvIGZhbHNlIG5lZ2F0aXZlc1xuXHQvLyByZWdhcmRpbmcgTm9kZWxpc3QgbGVuZ3RoIGluIElFXG5cdHZhciBsZW5ndGggPSAhIW9iaiAmJiBcImxlbmd0aFwiIGluIG9iaiAmJiBvYmoubGVuZ3RoLFxuXHRcdHR5cGUgPSB0b1R5cGUoIG9iaiApO1xuXG5cdGlmICggaXNGdW5jdGlvbiggb2JqICkgfHwgaXNXaW5kb3coIG9iaiApICkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHJldHVybiB0eXBlID09PSBcImFycmF5XCIgfHwgbGVuZ3RoID09PSAwIHx8XG5cdFx0dHlwZW9mIGxlbmd0aCA9PT0gXCJudW1iZXJcIiAmJiBsZW5ndGggPiAwICYmICggbGVuZ3RoIC0gMSApIGluIG9iajtcbn1cbnZhciBTaXp6bGUgPVxuLyohXG4gKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSB2Mi4zLjVcbiAqIGh0dHBzOi8vc2l6emxlanMuY29tL1xuICpcbiAqIENvcHlyaWdodCBKUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cHM6Ly9qcy5mb3VuZGF0aW9uL1xuICpcbiAqIERhdGU6IDIwMjAtMDMtMTRcbiAqL1xuKCBmdW5jdGlvbiggd2luZG93ICkge1xudmFyIGksXG5cdHN1cHBvcnQsXG5cdEV4cHIsXG5cdGdldFRleHQsXG5cdGlzWE1MLFxuXHR0b2tlbml6ZSxcblx0Y29tcGlsZSxcblx0c2VsZWN0LFxuXHRvdXRlcm1vc3RDb250ZXh0LFxuXHRzb3J0SW5wdXQsXG5cdGhhc0R1cGxpY2F0ZSxcblxuXHQvLyBMb2NhbCBkb2N1bWVudCB2YXJzXG5cdHNldERvY3VtZW50LFxuXHRkb2N1bWVudCxcblx0ZG9jRWxlbSxcblx0ZG9jdW1lbnRJc0hUTUwsXG5cdHJidWdneVFTQSxcblx0cmJ1Z2d5TWF0Y2hlcyxcblx0bWF0Y2hlcyxcblx0Y29udGFpbnMsXG5cblx0Ly8gSW5zdGFuY2Utc3BlY2lmaWMgZGF0YVxuXHRleHBhbmRvID0gXCJzaXp6bGVcIiArIDEgKiBuZXcgRGF0ZSgpLFxuXHRwcmVmZXJyZWREb2MgPSB3aW5kb3cuZG9jdW1lbnQsXG5cdGRpcnJ1bnMgPSAwLFxuXHRkb25lID0gMCxcblx0Y2xhc3NDYWNoZSA9IGNyZWF0ZUNhY2hlKCksXG5cdHRva2VuQ2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxuXHRjb21waWxlckNhY2hlID0gY3JlYXRlQ2FjaGUoKSxcblx0bm9ubmF0aXZlU2VsZWN0b3JDYWNoZSA9IGNyZWF0ZUNhY2hlKCksXG5cdHNvcnRPcmRlciA9IGZ1bmN0aW9uKCBhLCBiICkge1xuXHRcdGlmICggYSA9PT0gYiApIHtcblx0XHRcdGhhc0R1cGxpY2F0ZSA9IHRydWU7XG5cdFx0fVxuXHRcdHJldHVybiAwO1xuXHR9LFxuXG5cdC8vIEluc3RhbmNlIG1ldGhvZHNcblx0aGFzT3duID0gKCB7fSApLmhhc093blByb3BlcnR5LFxuXHRhcnIgPSBbXSxcblx0cG9wID0gYXJyLnBvcCxcblx0cHVzaE5hdGl2ZSA9IGFyci5wdXNoLFxuXHRwdXNoID0gYXJyLnB1c2gsXG5cdHNsaWNlID0gYXJyLnNsaWNlLFxuXG5cdC8vIFVzZSBhIHN0cmlwcGVkLWRvd24gaW5kZXhPZiBhcyBpdCdzIGZhc3RlciB0aGFuIG5hdGl2ZVxuXHQvLyBodHRwczovL2pzcGVyZi5jb20vdGhvci1pbmRleG9mLXZzLWZvci81XG5cdGluZGV4T2YgPSBmdW5jdGlvbiggbGlzdCwgZWxlbSApIHtcblx0XHR2YXIgaSA9IDAsXG5cdFx0XHRsZW4gPSBsaXN0Lmxlbmd0aDtcblx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdGlmICggbGlzdFsgaSBdID09PSBlbGVtICkge1xuXHRcdFx0XHRyZXR1cm4gaTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIC0xO1xuXHR9LFxuXG5cdGJvb2xlYW5zID0gXCJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58XCIgK1xuXHRcdFwiaXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZFwiLFxuXG5cdC8vIFJlZ3VsYXIgZXhwcmVzc2lvbnNcblxuXHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXNlbGVjdG9ycy8jd2hpdGVzcGFjZVxuXHR3aGl0ZXNwYWNlID0gXCJbXFxcXHgyMFxcXFx0XFxcXHJcXFxcblxcXFxmXVwiLFxuXG5cdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3Mtc3ludGF4LTMvI2lkZW50LXRva2VuLWRpYWdyYW1cblx0aWRlbnRpZmllciA9IFwiKD86XFxcXFxcXFxbXFxcXGRhLWZBLUZdezEsNn1cIiArIHdoaXRlc3BhY2UgK1xuXHRcdFwiP3xcXFxcXFxcXFteXFxcXHJcXFxcblxcXFxmXXxbXFxcXHctXXxbXlxcMC1cXFxceDdmXSkrXCIsXG5cblx0Ly8gQXR0cmlidXRlIHNlbGVjdG9yczogaHR0cDovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNhdHRyaWJ1dGUtc2VsZWN0b3JzXG5cdGF0dHJpYnV0ZXMgPSBcIlxcXFxbXCIgKyB3aGl0ZXNwYWNlICsgXCIqKFwiICsgaWRlbnRpZmllciArIFwiKSg/OlwiICsgd2hpdGVzcGFjZSArXG5cblx0XHQvLyBPcGVyYXRvciAoY2FwdHVyZSAyKVxuXHRcdFwiKihbKl4kfCF+XT89KVwiICsgd2hpdGVzcGFjZSArXG5cblx0XHQvLyBcIkF0dHJpYnV0ZSB2YWx1ZXMgbXVzdCBiZSBDU1MgaWRlbnRpZmllcnMgW2NhcHR1cmUgNV1cblx0XHQvLyBvciBzdHJpbmdzIFtjYXB0dXJlIDMgb3IgY2FwdHVyZSA0XVwiXG5cdFx0XCIqKD86JygoPzpcXFxcXFxcXC58W15cXFxcXFxcXCddKSopJ3xcXFwiKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcXFxcIl0pKilcXFwifChcIiArIGlkZW50aWZpZXIgKyBcIikpfClcIiArXG5cdFx0d2hpdGVzcGFjZSArIFwiKlxcXFxdXCIsXG5cblx0cHNldWRvcyA9IFwiOihcIiArIGlkZW50aWZpZXIgKyBcIikoPzpcXFxcKChcIiArXG5cblx0XHQvLyBUbyByZWR1Y2UgdGhlIG51bWJlciBvZiBzZWxlY3RvcnMgbmVlZGluZyB0b2tlbml6ZSBpbiB0aGUgcHJlRmlsdGVyLCBwcmVmZXIgYXJndW1lbnRzOlxuXHRcdC8vIDEuIHF1b3RlZCAoY2FwdHVyZSAzOyBjYXB0dXJlIDQgb3IgY2FwdHVyZSA1KVxuXHRcdFwiKCcoKD86XFxcXFxcXFwufFteXFxcXFxcXFwnXSkqKSd8XFxcIigoPzpcXFxcXFxcXC58W15cXFxcXFxcXFxcXCJdKSopXFxcIil8XCIgK1xuXG5cdFx0Ly8gMi4gc2ltcGxlIChjYXB0dXJlIDYpXG5cdFx0XCIoKD86XFxcXFxcXFwufFteXFxcXFxcXFwoKVtcXFxcXV18XCIgKyBhdHRyaWJ1dGVzICsgXCIpKil8XCIgK1xuXG5cdFx0Ly8gMy4gYW55dGhpbmcgZWxzZSAoY2FwdHVyZSAyKVxuXHRcdFwiLipcIiArXG5cdFx0XCIpXFxcXCl8KVwiLFxuXG5cdC8vIExlYWRpbmcgYW5kIG5vbi1lc2NhcGVkIHRyYWlsaW5nIHdoaXRlc3BhY2UsIGNhcHR1cmluZyBzb21lIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcnMgcHJlY2VkaW5nIHRoZSBsYXR0ZXJcblx0cndoaXRlc3BhY2UgPSBuZXcgUmVnRXhwKCB3aGl0ZXNwYWNlICsgXCIrXCIsIFwiZ1wiICksXG5cdHJ0cmltID0gbmV3IFJlZ0V4cCggXCJeXCIgKyB3aGl0ZXNwYWNlICsgXCIrfCgoPzpefFteXFxcXFxcXFxdKSg/OlxcXFxcXFxcLikqKVwiICtcblx0XHR3aGl0ZXNwYWNlICsgXCIrJFwiLCBcImdcIiApLFxuXG5cdHJjb21tYSA9IG5ldyBSZWdFeHAoIFwiXlwiICsgd2hpdGVzcGFjZSArIFwiKixcIiArIHdoaXRlc3BhY2UgKyBcIipcIiApLFxuXHRyY29tYmluYXRvcnMgPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIiooWz4rfl18XCIgKyB3aGl0ZXNwYWNlICsgXCIpXCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcIipcIiApLFxuXHRyZGVzY2VuZCA9IG5ldyBSZWdFeHAoIHdoaXRlc3BhY2UgKyBcInw+XCIgKSxcblxuXHRycHNldWRvID0gbmV3IFJlZ0V4cCggcHNldWRvcyApLFxuXHRyaWRlbnRpZmllciA9IG5ldyBSZWdFeHAoIFwiXlwiICsgaWRlbnRpZmllciArIFwiJFwiICksXG5cblx0bWF0Y2hFeHByID0ge1xuXHRcdFwiSURcIjogbmV3IFJlZ0V4cCggXCJeIyhcIiArIGlkZW50aWZpZXIgKyBcIilcIiApLFxuXHRcdFwiQ0xBU1NcIjogbmV3IFJlZ0V4cCggXCJeXFxcXC4oXCIgKyBpZGVudGlmaWVyICsgXCIpXCIgKSxcblx0XHRcIlRBR1wiOiBuZXcgUmVnRXhwKCBcIl4oXCIgKyBpZGVudGlmaWVyICsgXCJ8WypdKVwiICksXG5cdFx0XCJBVFRSXCI6IG5ldyBSZWdFeHAoIFwiXlwiICsgYXR0cmlidXRlcyApLFxuXHRcdFwiUFNFVURPXCI6IG5ldyBSZWdFeHAoIFwiXlwiICsgcHNldWRvcyApLFxuXHRcdFwiQ0hJTERcIjogbmV3IFJlZ0V4cCggXCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXFxcKFwiICtcblx0XHRcdHdoaXRlc3BhY2UgKyBcIiooZXZlbnxvZGR8KChbKy1dfCkoXFxcXGQqKW58KVwiICsgd2hpdGVzcGFjZSArIFwiKig/OihbKy1dfClcIiArXG5cdFx0XHR3aGl0ZXNwYWNlICsgXCIqKFxcXFxkKyl8KSlcIiArIHdoaXRlc3BhY2UgKyBcIipcXFxcKXwpXCIsIFwiaVwiICksXG5cdFx0XCJib29sXCI6IG5ldyBSZWdFeHAoIFwiXig/OlwiICsgYm9vbGVhbnMgKyBcIikkXCIsIFwiaVwiICksXG5cblx0XHQvLyBGb3IgdXNlIGluIGxpYnJhcmllcyBpbXBsZW1lbnRpbmcgLmlzKClcblx0XHQvLyBXZSB1c2UgdGhpcyBmb3IgUE9TIG1hdGNoaW5nIGluIGBzZWxlY3RgXG5cdFx0XCJuZWVkc0NvbnRleHRcIjogbmV3IFJlZ0V4cCggXCJeXCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcdFwiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFxcXChcIiArIHdoaXRlc3BhY2UgK1xuXHRcdFx0XCIqKCg/Oi1cXFxcZCk/XFxcXGQqKVwiICsgd2hpdGVzcGFjZSArIFwiKlxcXFwpfCkoPz1bXi1dfCQpXCIsIFwiaVwiIClcblx0fSxcblxuXHRyaHRtbCA9IC9IVE1MJC9pLFxuXHRyaW5wdXRzID0gL14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxcblx0cmhlYWRlciA9IC9eaFxcZCQvaSxcblxuXHRybmF0aXZlID0gL15bXntdK1xce1xccypcXFtuYXRpdmUgXFx3LyxcblxuXHQvLyBFYXNpbHktcGFyc2VhYmxlL3JldHJpZXZhYmxlIElEIG9yIFRBRyBvciBDTEFTUyBzZWxlY3RvcnNcblx0cnF1aWNrRXhwciA9IC9eKD86IyhbXFx3LV0rKXwoXFx3Kyl8XFwuKFtcXHctXSspKSQvLFxuXG5cdHJzaWJsaW5nID0gL1srfl0vLFxuXG5cdC8vIENTUyBlc2NhcGVzXG5cdC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL0NTUzIxL3N5bmRhdGEuaHRtbCNlc2NhcGVkLWNoYXJhY3RlcnNcblx0cnVuZXNjYXBlID0gbmV3IFJlZ0V4cCggXCJcXFxcXFxcXFtcXFxcZGEtZkEtRl17MSw2fVwiICsgd2hpdGVzcGFjZSArIFwiP3xcXFxcXFxcXChbXlxcXFxyXFxcXG5cXFxcZl0pXCIsIFwiZ1wiICksXG5cdGZ1bmVzY2FwZSA9IGZ1bmN0aW9uKCBlc2NhcGUsIG5vbkhleCApIHtcblx0XHR2YXIgaGlnaCA9IFwiMHhcIiArIGVzY2FwZS5zbGljZSggMSApIC0gMHgxMDAwMDtcblxuXHRcdHJldHVybiBub25IZXggP1xuXG5cdFx0XHQvLyBTdHJpcCB0aGUgYmFja3NsYXNoIHByZWZpeCBmcm9tIGEgbm9uLWhleCBlc2NhcGUgc2VxdWVuY2Vcblx0XHRcdG5vbkhleCA6XG5cblx0XHRcdC8vIFJlcGxhY2UgYSBoZXhhZGVjaW1hbCBlc2NhcGUgc2VxdWVuY2Ugd2l0aCB0aGUgZW5jb2RlZCBVbmljb2RlIGNvZGUgcG9pbnRcblx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9MTErXG5cdFx0XHQvLyBGb3IgdmFsdWVzIG91dHNpZGUgdGhlIEJhc2ljIE11bHRpbGluZ3VhbCBQbGFuZSAoQk1QKSwgbWFudWFsbHkgY29uc3RydWN0IGFcblx0XHRcdC8vIHN1cnJvZ2F0ZSBwYWlyXG5cdFx0XHRoaWdoIDwgMCA/XG5cdFx0XHRcdFN0cmluZy5mcm9tQ2hhckNvZGUoIGhpZ2ggKyAweDEwMDAwICkgOlxuXHRcdFx0XHRTdHJpbmcuZnJvbUNoYXJDb2RlKCBoaWdoID4+IDEwIHwgMHhEODAwLCBoaWdoICYgMHgzRkYgfCAweERDMDAgKTtcblx0fSxcblxuXHQvLyBDU1Mgc3RyaW5nL2lkZW50aWZpZXIgc2VyaWFsaXphdGlvblxuXHQvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20vI2NvbW1vbi1zZXJpYWxpemluZy1pZGlvbXNcblx0cmNzc2VzY2FwZSA9IC8oW1xcMC1cXHgxZlxceDdmXXxeLT9cXGQpfF4tJHxbXlxcMC1cXHgxZlxceDdmLVxcdUZGRkZcXHctXS9nLFxuXHRmY3NzZXNjYXBlID0gZnVuY3Rpb24oIGNoLCBhc0NvZGVQb2ludCApIHtcblx0XHRpZiAoIGFzQ29kZVBvaW50ICkge1xuXG5cdFx0XHQvLyBVKzAwMDAgTlVMTCBiZWNvbWVzIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNURVJcblx0XHRcdGlmICggY2ggPT09IFwiXFwwXCIgKSB7XG5cdFx0XHRcdHJldHVybiBcIlxcdUZGRkRcIjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ29udHJvbCBjaGFyYWN0ZXJzIGFuZCAoZGVwZW5kZW50IHVwb24gcG9zaXRpb24pIG51bWJlcnMgZ2V0IGVzY2FwZWQgYXMgY29kZSBwb2ludHNcblx0XHRcdHJldHVybiBjaC5zbGljZSggMCwgLTEgKSArIFwiXFxcXFwiICtcblx0XHRcdFx0Y2guY2hhckNvZGVBdCggY2gubGVuZ3RoIC0gMSApLnRvU3RyaW5nKCAxNiApICsgXCIgXCI7XG5cdFx0fVxuXG5cdFx0Ly8gT3RoZXIgcG90ZW50aWFsbHktc3BlY2lhbCBBU0NJSSBjaGFyYWN0ZXJzIGdldCBiYWNrc2xhc2gtZXNjYXBlZFxuXHRcdHJldHVybiBcIlxcXFxcIiArIGNoO1xuXHR9LFxuXG5cdC8vIFVzZWQgZm9yIGlmcmFtZXNcblx0Ly8gU2VlIHNldERvY3VtZW50KClcblx0Ly8gUmVtb3ZpbmcgdGhlIGZ1bmN0aW9uIHdyYXBwZXIgY2F1c2VzIGEgXCJQZXJtaXNzaW9uIERlbmllZFwiXG5cdC8vIGVycm9yIGluIElFXG5cdHVubG9hZEhhbmRsZXIgPSBmdW5jdGlvbigpIHtcblx0XHRzZXREb2N1bWVudCgpO1xuXHR9LFxuXG5cdGluRGlzYWJsZWRGaWVsZHNldCA9IGFkZENvbWJpbmF0b3IoXG5cdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gdHJ1ZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiZmllbGRzZXRcIjtcblx0XHR9LFxuXHRcdHsgZGlyOiBcInBhcmVudE5vZGVcIiwgbmV4dDogXCJsZWdlbmRcIiB9XG5cdCk7XG5cbi8vIE9wdGltaXplIGZvciBwdXNoLmFwcGx5KCBfLCBOb2RlTGlzdCApXG50cnkge1xuXHRwdXNoLmFwcGx5KFxuXHRcdCggYXJyID0gc2xpY2UuY2FsbCggcHJlZmVycmVkRG9jLmNoaWxkTm9kZXMgKSApLFxuXHRcdHByZWZlcnJlZERvYy5jaGlsZE5vZGVzXG5cdCk7XG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZDw0LjBcblx0Ly8gRGV0ZWN0IHNpbGVudGx5IGZhaWxpbmcgcHVzaC5hcHBseVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXG5cdGFyclsgcHJlZmVycmVkRG9jLmNoaWxkTm9kZXMubGVuZ3RoIF0ubm9kZVR5cGU7XG59IGNhdGNoICggZSApIHtcblx0cHVzaCA9IHsgYXBwbHk6IGFyci5sZW5ndGggP1xuXG5cdFx0Ly8gTGV2ZXJhZ2Ugc2xpY2UgaWYgcG9zc2libGVcblx0XHRmdW5jdGlvbiggdGFyZ2V0LCBlbHMgKSB7XG5cdFx0XHRwdXNoTmF0aXZlLmFwcGx5KCB0YXJnZXQsIHNsaWNlLmNhbGwoIGVscyApICk7XG5cdFx0fSA6XG5cblx0XHQvLyBTdXBwb3J0OiBJRTw5XG5cdFx0Ly8gT3RoZXJ3aXNlIGFwcGVuZCBkaXJlY3RseVxuXHRcdGZ1bmN0aW9uKCB0YXJnZXQsIGVscyApIHtcblx0XHRcdHZhciBqID0gdGFyZ2V0Lmxlbmd0aCxcblx0XHRcdFx0aSA9IDA7XG5cblx0XHRcdC8vIENhbid0IHRydXN0IE5vZGVMaXN0Lmxlbmd0aFxuXHRcdFx0d2hpbGUgKCAoIHRhcmdldFsgaisrIF0gPSBlbHNbIGkrKyBdICkgKSB7fVxuXHRcdFx0dGFyZ2V0Lmxlbmd0aCA9IGogLSAxO1xuXHRcdH1cblx0fTtcbn1cblxuZnVuY3Rpb24gU2l6emxlKCBzZWxlY3RvciwgY29udGV4dCwgcmVzdWx0cywgc2VlZCApIHtcblx0dmFyIG0sIGksIGVsZW0sIG5pZCwgbWF0Y2gsIGdyb3VwcywgbmV3U2VsZWN0b3IsXG5cdFx0bmV3Q29udGV4dCA9IGNvbnRleHQgJiYgY29udGV4dC5vd25lckRvY3VtZW50LFxuXG5cdFx0Ly8gbm9kZVR5cGUgZGVmYXVsdHMgdG8gOSwgc2luY2UgY29udGV4dCBkZWZhdWx0cyB0byBkb2N1bWVudFxuXHRcdG5vZGVUeXBlID0gY29udGV4dCA/IGNvbnRleHQubm9kZVR5cGUgOiA5O1xuXG5cdHJlc3VsdHMgPSByZXN1bHRzIHx8IFtdO1xuXG5cdC8vIFJldHVybiBlYXJseSBmcm9tIGNhbGxzIHdpdGggaW52YWxpZCBzZWxlY3RvciBvciBjb250ZXh0XG5cdGlmICggdHlwZW9mIHNlbGVjdG9yICE9PSBcInN0cmluZ1wiIHx8ICFzZWxlY3RvciB8fFxuXHRcdG5vZGVUeXBlICE9PSAxICYmIG5vZGVUeXBlICE9PSA5ICYmIG5vZGVUeXBlICE9PSAxMSApIHtcblxuXHRcdHJldHVybiByZXN1bHRzO1xuXHR9XG5cblx0Ly8gVHJ5IHRvIHNob3J0Y3V0IGZpbmQgb3BlcmF0aW9ucyAoYXMgb3Bwb3NlZCB0byBmaWx0ZXJzKSBpbiBIVE1MIGRvY3VtZW50c1xuXHRpZiAoICFzZWVkICkge1xuXHRcdHNldERvY3VtZW50KCBjb250ZXh0ICk7XG5cdFx0Y29udGV4dCA9IGNvbnRleHQgfHwgZG9jdW1lbnQ7XG5cblx0XHRpZiAoIGRvY3VtZW50SXNIVE1MICkge1xuXG5cdFx0XHQvLyBJZiB0aGUgc2VsZWN0b3IgaXMgc3VmZmljaWVudGx5IHNpbXBsZSwgdHJ5IHVzaW5nIGEgXCJnZXQqQnkqXCIgRE9NIG1ldGhvZFxuXHRcdFx0Ly8gKGV4Y2VwdGluZyBEb2N1bWVudEZyYWdtZW50IGNvbnRleHQsIHdoZXJlIHRoZSBtZXRob2RzIGRvbid0IGV4aXN0KVxuXHRcdFx0aWYgKCBub2RlVHlwZSAhPT0gMTEgJiYgKCBtYXRjaCA9IHJxdWlja0V4cHIuZXhlYyggc2VsZWN0b3IgKSApICkge1xuXG5cdFx0XHRcdC8vIElEIHNlbGVjdG9yXG5cdFx0XHRcdGlmICggKCBtID0gbWF0Y2hbIDEgXSApICkge1xuXG5cdFx0XHRcdFx0Ly8gRG9jdW1lbnQgY29udGV4dFxuXHRcdFx0XHRcdGlmICggbm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRcdFx0XHRpZiAoICggZWxlbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIG0gKSApICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFLCBPcGVyYSwgV2Via2l0XG5cdFx0XHRcdFx0XHRcdC8vIFRPRE86IGlkZW50aWZ5IHZlcnNpb25zXG5cdFx0XHRcdFx0XHRcdC8vIGdldEVsZW1lbnRCeUlkIGNhbiBtYXRjaCBlbGVtZW50cyBieSBuYW1lIGluc3RlYWQgb2YgSURcblx0XHRcdFx0XHRcdFx0aWYgKCBlbGVtLmlkID09PSBtICkge1xuXHRcdFx0XHRcdFx0XHRcdHJlc3VsdHMucHVzaCggZWxlbSApO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIEVsZW1lbnQgY29udGV4dFxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFLCBPcGVyYSwgV2Via2l0XG5cdFx0XHRcdFx0XHQvLyBUT0RPOiBpZGVudGlmeSB2ZXJzaW9uc1xuXHRcdFx0XHRcdFx0Ly8gZ2V0RWxlbWVudEJ5SWQgY2FuIG1hdGNoIGVsZW1lbnRzIGJ5IG5hbWUgaW5zdGVhZCBvZiBJRFxuXHRcdFx0XHRcdFx0aWYgKCBuZXdDb250ZXh0ICYmICggZWxlbSA9IG5ld0NvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIG0gKSApICYmXG5cdFx0XHRcdFx0XHRcdGNvbnRhaW5zKCBjb250ZXh0LCBlbGVtICkgJiZcblx0XHRcdFx0XHRcdFx0ZWxlbS5pZCA9PT0gbSApIHtcblxuXHRcdFx0XHRcdFx0XHRyZXN1bHRzLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFR5cGUgc2VsZWN0b3Jcblx0XHRcdFx0fSBlbHNlIGlmICggbWF0Y2hbIDIgXSApIHtcblx0XHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCBzZWxlY3RvciApICk7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cblx0XHRcdFx0Ly8gQ2xhc3Mgc2VsZWN0b3Jcblx0XHRcdFx0fSBlbHNlIGlmICggKCBtID0gbWF0Y2hbIDMgXSApICYmIHN1cHBvcnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSAmJlxuXHRcdFx0XHRcdGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSApIHtcblxuXHRcdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggbSApICk7XG5cdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gVGFrZSBhZHZhbnRhZ2Ugb2YgcXVlcnlTZWxlY3RvckFsbFxuXHRcdFx0aWYgKCBzdXBwb3J0LnFzYSAmJlxuXHRcdFx0XHQhbm9ubmF0aXZlU2VsZWN0b3JDYWNoZVsgc2VsZWN0b3IgKyBcIiBcIiBdICYmXG5cdFx0XHRcdCggIXJidWdneVFTQSB8fCAhcmJ1Z2d5UVNBLnRlc3QoIHNlbGVjdG9yICkgKSAmJlxuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDggb25seVxuXHRcdFx0XHQvLyBFeGNsdWRlIG9iamVjdCBlbGVtZW50c1xuXHRcdFx0XHQoIG5vZGVUeXBlICE9PSAxIHx8IGNvbnRleHQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gXCJvYmplY3RcIiApICkge1xuXG5cdFx0XHRcdG5ld1NlbGVjdG9yID0gc2VsZWN0b3I7XG5cdFx0XHRcdG5ld0NvbnRleHQgPSBjb250ZXh0O1xuXG5cdFx0XHRcdC8vIHFTQSBjb25zaWRlcnMgZWxlbWVudHMgb3V0c2lkZSBhIHNjb3Bpbmcgcm9vdCB3aGVuIGV2YWx1YXRpbmcgY2hpbGQgb3Jcblx0XHRcdFx0Ly8gZGVzY2VuZGFudCBjb21iaW5hdG9ycywgd2hpY2ggaXMgbm90IHdoYXQgd2Ugd2FudC5cblx0XHRcdFx0Ly8gSW4gc3VjaCBjYXNlcywgd2Ugd29yayBhcm91bmQgdGhlIGJlaGF2aW9yIGJ5IHByZWZpeGluZyBldmVyeSBzZWxlY3RvciBpbiB0aGVcblx0XHRcdFx0Ly8gbGlzdCB3aXRoIGFuIElEIHNlbGVjdG9yIHJlZmVyZW5jaW5nIHRoZSBzY29wZSBjb250ZXh0LlxuXHRcdFx0XHQvLyBUaGUgdGVjaG5pcXVlIGhhcyB0byBiZSB1c2VkIGFzIHdlbGwgd2hlbiBhIGxlYWRpbmcgY29tYmluYXRvciBpcyB1c2VkXG5cdFx0XHRcdC8vIGFzIHN1Y2ggc2VsZWN0b3JzIGFyZSBub3QgcmVjb2duaXplZCBieSBxdWVyeVNlbGVjdG9yQWxsLlxuXHRcdFx0XHQvLyBUaGFua3MgdG8gQW5kcmV3IER1cG9udCBmb3IgdGhpcyB0ZWNobmlxdWUuXG5cdFx0XHRcdGlmICggbm9kZVR5cGUgPT09IDEgJiZcblx0XHRcdFx0XHQoIHJkZXNjZW5kLnRlc3QoIHNlbGVjdG9yICkgfHwgcmNvbWJpbmF0b3JzLnRlc3QoIHNlbGVjdG9yICkgKSApIHtcblxuXHRcdFx0XHRcdC8vIEV4cGFuZCBjb250ZXh0IGZvciBzaWJsaW5nIHNlbGVjdG9yc1xuXHRcdFx0XHRcdG5ld0NvbnRleHQgPSByc2libGluZy50ZXN0KCBzZWxlY3RvciApICYmIHRlc3RDb250ZXh0KCBjb250ZXh0LnBhcmVudE5vZGUgKSB8fFxuXHRcdFx0XHRcdFx0Y29udGV4dDtcblxuXHRcdFx0XHRcdC8vIFdlIGNhbiB1c2UgOnNjb3BlIGluc3RlYWQgb2YgdGhlIElEIGhhY2sgaWYgdGhlIGJyb3dzZXJcblx0XHRcdFx0XHQvLyBzdXBwb3J0cyBpdCAmIGlmIHdlJ3JlIG5vdCBjaGFuZ2luZyB0aGUgY29udGV4dC5cblx0XHRcdFx0XHRpZiAoIG5ld0NvbnRleHQgIT09IGNvbnRleHQgfHwgIXN1cHBvcnQuc2NvcGUgKSB7XG5cblx0XHRcdFx0XHRcdC8vIENhcHR1cmUgdGhlIGNvbnRleHQgSUQsIHNldHRpbmcgaXQgZmlyc3QgaWYgbmVjZXNzYXJ5XG5cdFx0XHRcdFx0XHRpZiAoICggbmlkID0gY29udGV4dC5nZXRBdHRyaWJ1dGUoIFwiaWRcIiApICkgKSB7XG5cdFx0XHRcdFx0XHRcdG5pZCA9IG5pZC5yZXBsYWNlKCByY3NzZXNjYXBlLCBmY3NzZXNjYXBlICk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRjb250ZXh0LnNldEF0dHJpYnV0ZSggXCJpZFwiLCAoIG5pZCA9IGV4cGFuZG8gKSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFByZWZpeCBldmVyeSBzZWxlY3RvciBpbiB0aGUgbGlzdFxuXHRcdFx0XHRcdGdyb3VwcyA9IHRva2VuaXplKCBzZWxlY3RvciApO1xuXHRcdFx0XHRcdGkgPSBncm91cHMubGVuZ3RoO1xuXHRcdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdFx0Z3JvdXBzWyBpIF0gPSAoIG5pZCA/IFwiI1wiICsgbmlkIDogXCI6c2NvcGVcIiApICsgXCIgXCIgK1xuXHRcdFx0XHRcdFx0XHR0b1NlbGVjdG9yKCBncm91cHNbIGkgXSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRuZXdTZWxlY3RvciA9IGdyb3Vwcy5qb2luKCBcIixcIiApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLFxuXHRcdFx0XHRcdFx0bmV3Q29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCBuZXdTZWxlY3RvciApXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0fSBjYXRjaCAoIHFzYUVycm9yICkge1xuXHRcdFx0XHRcdG5vbm5hdGl2ZVNlbGVjdG9yQ2FjaGUoIHNlbGVjdG9yLCB0cnVlICk7XG5cdFx0XHRcdH0gZmluYWxseSB7XG5cdFx0XHRcdFx0aWYgKCBuaWQgPT09IGV4cGFuZG8gKSB7XG5cdFx0XHRcdFx0XHRjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZSggXCJpZFwiICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gQWxsIG90aGVyc1xuXHRyZXR1cm4gc2VsZWN0KCBzZWxlY3Rvci5yZXBsYWNlKCBydHJpbSwgXCIkMVwiICksIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUga2V5LXZhbHVlIGNhY2hlcyBvZiBsaW1pdGVkIHNpemVcbiAqIEByZXR1cm5zIHtmdW5jdGlvbihzdHJpbmcsIG9iamVjdCl9IFJldHVybnMgdGhlIE9iamVjdCBkYXRhIGFmdGVyIHN0b3JpbmcgaXQgb24gaXRzZWxmIHdpdGhcbiAqXHRwcm9wZXJ0eSBuYW1lIHRoZSAoc3BhY2Utc3VmZml4ZWQpIHN0cmluZyBhbmQgKGlmIHRoZSBjYWNoZSBpcyBsYXJnZXIgdGhhbiBFeHByLmNhY2hlTGVuZ3RoKVxuICpcdGRlbGV0aW5nIHRoZSBvbGRlc3QgZW50cnlcbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ2FjaGUoKSB7XG5cdHZhciBrZXlzID0gW107XG5cblx0ZnVuY3Rpb24gY2FjaGUoIGtleSwgdmFsdWUgKSB7XG5cblx0XHQvLyBVc2UgKGtleSArIFwiIFwiKSB0byBhdm9pZCBjb2xsaXNpb24gd2l0aCBuYXRpdmUgcHJvdG90eXBlIHByb3BlcnRpZXMgKHNlZSBJc3N1ZSAjMTU3KVxuXHRcdGlmICgga2V5cy5wdXNoKCBrZXkgKyBcIiBcIiApID4gRXhwci5jYWNoZUxlbmd0aCApIHtcblxuXHRcdFx0Ly8gT25seSBrZWVwIHRoZSBtb3N0IHJlY2VudCBlbnRyaWVzXG5cdFx0XHRkZWxldGUgY2FjaGVbIGtleXMuc2hpZnQoKSBdO1xuXHRcdH1cblx0XHRyZXR1cm4gKCBjYWNoZVsga2V5ICsgXCIgXCIgXSA9IHZhbHVlICk7XG5cdH1cblx0cmV0dXJuIGNhY2hlO1xufVxuXG4vKipcbiAqIE1hcmsgYSBmdW5jdGlvbiBmb3Igc3BlY2lhbCB1c2UgYnkgU2l6emxlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gbWFya1xuICovXG5mdW5jdGlvbiBtYXJrRnVuY3Rpb24oIGZuICkge1xuXHRmblsgZXhwYW5kbyBdID0gdHJ1ZTtcblx0cmV0dXJuIGZuO1xufVxuXG4vKipcbiAqIFN1cHBvcnQgdGVzdGluZyB1c2luZyBhbiBlbGVtZW50XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBQYXNzZWQgdGhlIGNyZWF0ZWQgZWxlbWVudCBhbmQgcmV0dXJucyBhIGJvb2xlYW4gcmVzdWx0XG4gKi9cbmZ1bmN0aW9uIGFzc2VydCggZm4gKSB7XG5cdHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZmllbGRzZXRcIiApO1xuXG5cdHRyeSB7XG5cdFx0cmV0dXJuICEhZm4oIGVsICk7XG5cdH0gY2F0Y2ggKCBlICkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fSBmaW5hbGx5IHtcblxuXHRcdC8vIFJlbW92ZSBmcm9tIGl0cyBwYXJlbnQgYnkgZGVmYXVsdFxuXHRcdGlmICggZWwucGFyZW50Tm9kZSApIHtcblx0XHRcdGVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIGVsICk7XG5cdFx0fVxuXG5cdFx0Ly8gcmVsZWFzZSBtZW1vcnkgaW4gSUVcblx0XHRlbCA9IG51bGw7XG5cdH1cbn1cblxuLyoqXG4gKiBBZGRzIHRoZSBzYW1lIGhhbmRsZXIgZm9yIGFsbCBvZiB0aGUgc3BlY2lmaWVkIGF0dHJzXG4gKiBAcGFyYW0ge1N0cmluZ30gYXR0cnMgUGlwZS1zZXBhcmF0ZWQgbGlzdCBvZiBhdHRyaWJ1dGVzXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBoYW5kbGVyIFRoZSBtZXRob2QgdGhhdCB3aWxsIGJlIGFwcGxpZWRcbiAqL1xuZnVuY3Rpb24gYWRkSGFuZGxlKCBhdHRycywgaGFuZGxlciApIHtcblx0dmFyIGFyciA9IGF0dHJzLnNwbGl0KCBcInxcIiApLFxuXHRcdGkgPSBhcnIubGVuZ3RoO1xuXG5cdHdoaWxlICggaS0tICkge1xuXHRcdEV4cHIuYXR0ckhhbmRsZVsgYXJyWyBpIF0gXSA9IGhhbmRsZXI7XG5cdH1cbn1cblxuLyoqXG4gKiBDaGVja3MgZG9jdW1lbnQgb3JkZXIgb2YgdHdvIHNpYmxpbmdzXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGFcbiAqIEBwYXJhbSB7RWxlbWVudH0gYlxuICogQHJldHVybnMge051bWJlcn0gUmV0dXJucyBsZXNzIHRoYW4gMCBpZiBhIHByZWNlZGVzIGIsIGdyZWF0ZXIgdGhhbiAwIGlmIGEgZm9sbG93cyBiXG4gKi9cbmZ1bmN0aW9uIHNpYmxpbmdDaGVjayggYSwgYiApIHtcblx0dmFyIGN1ciA9IGIgJiYgYSxcblx0XHRkaWZmID0gY3VyICYmIGEubm9kZVR5cGUgPT09IDEgJiYgYi5ub2RlVHlwZSA9PT0gMSAmJlxuXHRcdFx0YS5zb3VyY2VJbmRleCAtIGIuc291cmNlSW5kZXg7XG5cblx0Ly8gVXNlIElFIHNvdXJjZUluZGV4IGlmIGF2YWlsYWJsZSBvbiBib3RoIG5vZGVzXG5cdGlmICggZGlmZiApIHtcblx0XHRyZXR1cm4gZGlmZjtcblx0fVxuXG5cdC8vIENoZWNrIGlmIGIgZm9sbG93cyBhXG5cdGlmICggY3VyICkge1xuXHRcdHdoaWxlICggKCBjdXIgPSBjdXIubmV4dFNpYmxpbmcgKSApIHtcblx0XHRcdGlmICggY3VyID09PSBiICkge1xuXHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGEgPyAxIDogLTE7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBpbnB1dCB0eXBlc1xuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVcbiAqL1xuZnVuY3Rpb24gY3JlYXRlSW5wdXRQc2V1ZG8oIHR5cGUgKSB7XG5cdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHR2YXIgbmFtZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRyZXR1cm4gbmFtZSA9PT0gXCJpbnB1dFwiICYmIGVsZW0udHlwZSA9PT0gdHlwZTtcblx0fTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdG8gdXNlIGluIHBzZXVkb3MgZm9yIGJ1dHRvbnNcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUJ1dHRvblBzZXVkbyggdHlwZSApIHtcblx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHZhciBuYW1lID0gZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRcdHJldHVybiAoIG5hbWUgPT09IFwiaW5wdXRcIiB8fCBuYW1lID09PSBcImJ1dHRvblwiICkgJiYgZWxlbS50eXBlID09PSB0eXBlO1xuXHR9O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0byB1c2UgaW4gcHNldWRvcyBmb3IgOmVuYWJsZWQvOmRpc2FibGVkXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGRpc2FibGVkIHRydWUgZm9yIDpkaXNhYmxlZDsgZmFsc2UgZm9yIDplbmFibGVkXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZURpc2FibGVkUHNldWRvKCBkaXNhYmxlZCApIHtcblxuXHQvLyBLbm93biA6ZGlzYWJsZWQgZmFsc2UgcG9zaXRpdmVzOiBmaWVsZHNldFtkaXNhYmxlZF0gPiBsZWdlbmQ6bnRoLW9mLXR5cGUobisyKSA6Y2FuLWRpc2FibGVcblx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0Ly8gT25seSBjZXJ0YWluIGVsZW1lbnRzIGNhbiBtYXRjaCA6ZW5hYmxlZCBvciA6ZGlzYWJsZWRcblx0XHQvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zY3JpcHRpbmcuaHRtbCNzZWxlY3Rvci1lbmFibGVkXG5cdFx0Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2NyaXB0aW5nLmh0bWwjc2VsZWN0b3ItZGlzYWJsZWRcblx0XHRpZiAoIFwiZm9ybVwiIGluIGVsZW0gKSB7XG5cblx0XHRcdC8vIENoZWNrIGZvciBpbmhlcml0ZWQgZGlzYWJsZWRuZXNzIG9uIHJlbGV2YW50IG5vbi1kaXNhYmxlZCBlbGVtZW50czpcblx0XHRcdC8vICogbGlzdGVkIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50cyBpbiBhIGRpc2FibGVkIGZpZWxkc2V0XG5cdFx0XHQvLyAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Zvcm1zLmh0bWwjY2F0ZWdvcnktbGlzdGVkXG5cdFx0XHQvLyAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Zvcm1zLmh0bWwjY29uY2VwdC1mZS1kaXNhYmxlZFxuXHRcdFx0Ly8gKiBvcHRpb24gZWxlbWVudHMgaW4gYSBkaXNhYmxlZCBvcHRncm91cFxuXHRcdFx0Ly8gICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1sI2NvbmNlcHQtb3B0aW9uLWRpc2FibGVkXG5cdFx0XHQvLyBBbGwgc3VjaCBlbGVtZW50cyBoYXZlIGEgXCJmb3JtXCIgcHJvcGVydHkuXG5cdFx0XHRpZiAoIGVsZW0ucGFyZW50Tm9kZSAmJiBlbGVtLmRpc2FibGVkID09PSBmYWxzZSApIHtcblxuXHRcdFx0XHQvLyBPcHRpb24gZWxlbWVudHMgZGVmZXIgdG8gYSBwYXJlbnQgb3B0Z3JvdXAgaWYgcHJlc2VudFxuXHRcdFx0XHRpZiAoIFwibGFiZWxcIiBpbiBlbGVtICkge1xuXHRcdFx0XHRcdGlmICggXCJsYWJlbFwiIGluIGVsZW0ucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0XHRcdHJldHVybiBlbGVtLnBhcmVudE5vZGUuZGlzYWJsZWQgPT09IGRpc2FibGVkO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZGlzYWJsZWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgNiAtIDExXG5cdFx0XHRcdC8vIFVzZSB0aGUgaXNEaXNhYmxlZCBzaG9ydGN1dCBwcm9wZXJ0eSB0byBjaGVjayBmb3IgZGlzYWJsZWQgZmllbGRzZXQgYW5jZXN0b3JzXG5cdFx0XHRcdHJldHVybiBlbGVtLmlzRGlzYWJsZWQgPT09IGRpc2FibGVkIHx8XG5cblx0XHRcdFx0XHQvLyBXaGVyZSB0aGVyZSBpcyBubyBpc0Rpc2FibGVkLCBjaGVjayBtYW51YWxseVxuXHRcdFx0XHRcdC8qIGpzaGludCAtVzAxOCAqL1xuXHRcdFx0XHRcdGVsZW0uaXNEaXNhYmxlZCAhPT0gIWRpc2FibGVkICYmXG5cdFx0XHRcdFx0aW5EaXNhYmxlZEZpZWxkc2V0KCBlbGVtICkgPT09IGRpc2FibGVkO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZGlzYWJsZWQ7XG5cblx0XHQvLyBUcnkgdG8gd2lubm93IG91dCBlbGVtZW50cyB0aGF0IGNhbid0IGJlIGRpc2FibGVkIGJlZm9yZSB0cnVzdGluZyB0aGUgZGlzYWJsZWQgcHJvcGVydHkuXG5cdFx0Ly8gU29tZSB2aWN0aW1zIGdldCBjYXVnaHQgaW4gb3VyIG5ldCAobGFiZWwsIGxlZ2VuZCwgbWVudSwgdHJhY2spLCBidXQgaXQgc2hvdWxkbid0XG5cdFx0Ly8gZXZlbiBleGlzdCBvbiB0aGVtLCBsZXQgYWxvbmUgaGF2ZSBhIGJvb2xlYW4gdmFsdWUuXG5cdFx0fSBlbHNlIGlmICggXCJsYWJlbFwiIGluIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZGlzYWJsZWQ7XG5cdFx0fVxuXG5cdFx0Ly8gUmVtYWluaW5nIGVsZW1lbnRzIGFyZSBuZWl0aGVyIDplbmFibGVkIG5vciA6ZGlzYWJsZWRcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBwb3NpdGlvbmFsc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZm4gKSB7XG5cdHJldHVybiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBhcmd1bWVudCApIHtcblx0XHRhcmd1bWVudCA9ICthcmd1bWVudDtcblx0XHRyZXR1cm4gbWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggc2VlZCwgbWF0Y2hlcyApIHtcblx0XHRcdHZhciBqLFxuXHRcdFx0XHRtYXRjaEluZGV4ZXMgPSBmbiggW10sIHNlZWQubGVuZ3RoLCBhcmd1bWVudCApLFxuXHRcdFx0XHRpID0gbWF0Y2hJbmRleGVzLmxlbmd0aDtcblxuXHRcdFx0Ly8gTWF0Y2ggZWxlbWVudHMgZm91bmQgYXQgdGhlIHNwZWNpZmllZCBpbmRleGVzXG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0aWYgKCBzZWVkWyAoIGogPSBtYXRjaEluZGV4ZXNbIGkgXSApIF0gKSB7XG5cdFx0XHRcdFx0c2VlZFsgaiBdID0gISggbWF0Y2hlc1sgaiBdID0gc2VlZFsgaiBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9ICk7XG5cdH0gKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgYSBub2RlIGZvciB2YWxpZGl0eSBhcyBhIFNpenpsZSBjb250ZXh0XG4gKiBAcGFyYW0ge0VsZW1lbnR8T2JqZWN0PX0gY29udGV4dFxuICogQHJldHVybnMge0VsZW1lbnR8T2JqZWN0fEJvb2xlYW59IFRoZSBpbnB1dCBub2RlIGlmIGFjY2VwdGFibGUsIG90aGVyd2lzZSBhIGZhbHN5IHZhbHVlXG4gKi9cbmZ1bmN0aW9uIHRlc3RDb250ZXh0KCBjb250ZXh0ICkge1xuXHRyZXR1cm4gY29udGV4dCAmJiB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBjb250ZXh0O1xufVxuXG4vLyBFeHBvc2Ugc3VwcG9ydCB2YXJzIGZvciBjb252ZW5pZW5jZVxuc3VwcG9ydCA9IFNpenpsZS5zdXBwb3J0ID0ge307XG5cbi8qKlxuICogRGV0ZWN0cyBYTUwgbm9kZXNcbiAqIEBwYXJhbSB7RWxlbWVudHxPYmplY3R9IGVsZW0gQW4gZWxlbWVudCBvciBhIGRvY3VtZW50XG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gVHJ1ZSBpZmYgZWxlbSBpcyBhIG5vbi1IVE1MIFhNTCBub2RlXG4gKi9cbmlzWE1MID0gU2l6emxlLmlzWE1MID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdHZhciBuYW1lc3BhY2UgPSBlbGVtLm5hbWVzcGFjZVVSSSxcblx0XHRkb2NFbGVtID0gKCBlbGVtLm93bmVyRG9jdW1lbnQgfHwgZWxlbSApLmRvY3VtZW50RWxlbWVudDtcblxuXHQvLyBTdXBwb3J0OiBJRSA8PThcblx0Ly8gQXNzdW1lIEhUTUwgd2hlbiBkb2N1bWVudEVsZW1lbnQgZG9lc24ndCB5ZXQgZXhpc3QsIHN1Y2ggYXMgaW5zaWRlIGxvYWRpbmcgaWZyYW1lc1xuXHQvLyBodHRwczovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvNDgzM1xuXHRyZXR1cm4gIXJodG1sLnRlc3QoIG5hbWVzcGFjZSB8fCBkb2NFbGVtICYmIGRvY0VsZW0ubm9kZU5hbWUgfHwgXCJIVE1MXCIgKTtcbn07XG5cbi8qKlxuICogU2V0cyBkb2N1bWVudC1yZWxhdGVkIHZhcmlhYmxlcyBvbmNlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGRvY3VtZW50XG4gKiBAcGFyYW0ge0VsZW1lbnR8T2JqZWN0fSBbZG9jXSBBbiBlbGVtZW50IG9yIGRvY3VtZW50IG9iamVjdCB0byB1c2UgdG8gc2V0IHRoZSBkb2N1bWVudFxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY3VycmVudCBkb2N1bWVudFxuICovXG5zZXREb2N1bWVudCA9IFNpenpsZS5zZXREb2N1bWVudCA9IGZ1bmN0aW9uKCBub2RlICkge1xuXHR2YXIgaGFzQ29tcGFyZSwgc3ViV2luZG93LFxuXHRcdGRvYyA9IG5vZGUgPyBub2RlLm93bmVyRG9jdW1lbnQgfHwgbm9kZSA6IHByZWZlcnJlZERvYztcblxuXHQvLyBSZXR1cm4gZWFybHkgaWYgZG9jIGlzIGludmFsaWQgb3IgYWxyZWFkeSBzZWxlY3RlZFxuXHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRpZiAoIGRvYyA9PSBkb2N1bWVudCB8fCBkb2Mubm9kZVR5cGUgIT09IDkgfHwgIWRvYy5kb2N1bWVudEVsZW1lbnQgKSB7XG5cdFx0cmV0dXJuIGRvY3VtZW50O1xuXHR9XG5cblx0Ly8gVXBkYXRlIGdsb2JhbCB2YXJpYWJsZXNcblx0ZG9jdW1lbnQgPSBkb2M7XG5cdGRvY0VsZW0gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cdGRvY3VtZW50SXNIVE1MID0gIWlzWE1MKCBkb2N1bWVudCApO1xuXG5cdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSssIEVkZ2UgMTIgLSAxOCtcblx0Ly8gQWNjZXNzaW5nIGlmcmFtZSBkb2N1bWVudHMgYWZ0ZXIgdW5sb2FkIHRocm93cyBcInBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3JzIChqUXVlcnkgIzEzOTM2KVxuXHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRpZiAoIHByZWZlcnJlZERvYyAhPSBkb2N1bWVudCAmJlxuXHRcdCggc3ViV2luZG93ID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcgKSAmJiBzdWJXaW5kb3cudG9wICE9PSBzdWJXaW5kb3cgKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSAxMSwgRWRnZVxuXHRcdGlmICggc3ViV2luZG93LmFkZEV2ZW50TGlzdGVuZXIgKSB7XG5cdFx0XHRzdWJXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggXCJ1bmxvYWRcIiwgdW5sb2FkSGFuZGxlciwgZmFsc2UgKTtcblxuXHRcdC8vIFN1cHBvcnQ6IElFIDkgLSAxMCBvbmx5XG5cdFx0fSBlbHNlIGlmICggc3ViV2luZG93LmF0dGFjaEV2ZW50ICkge1xuXHRcdFx0c3ViV2luZG93LmF0dGFjaEV2ZW50KCBcIm9udW5sb2FkXCIsIHVubG9hZEhhbmRsZXIgKTtcblx0XHR9XG5cdH1cblxuXHQvLyBTdXBwb3J0OiBJRSA4IC0gMTErLCBFZGdlIDEyIC0gMTgrLCBDaHJvbWUgPD0xNiAtIDI1IG9ubHksIEZpcmVmb3ggPD0zLjYgLSAzMSBvbmx5LFxuXHQvLyBTYWZhcmkgNCAtIDUgb25seSwgT3BlcmEgPD0xMS42IC0gMTIueCBvbmx5XG5cdC8vIElFL0VkZ2UgJiBvbGRlciBicm93c2VycyBkb24ndCBzdXBwb3J0IHRoZSA6c2NvcGUgcHNldWRvLWNsYXNzLlxuXHQvLyBTdXBwb3J0OiBTYWZhcmkgNi4wIG9ubHlcblx0Ly8gU2FmYXJpIDYuMCBzdXBwb3J0cyA6c2NvcGUgYnV0IGl0J3MgYW4gYWxpYXMgb2YgOnJvb3QgdGhlcmUuXG5cdHN1cHBvcnQuc2NvcGUgPSBhc3NlcnQoIGZ1bmN0aW9uKCBlbCApIHtcblx0XHRkb2NFbGVtLmFwcGVuZENoaWxkKCBlbCApLmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICkgKTtcblx0XHRyZXR1cm4gdHlwZW9mIGVsLnF1ZXJ5U2VsZWN0b3JBbGwgIT09IFwidW5kZWZpbmVkXCIgJiZcblx0XHRcdCFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIjpzY29wZSBmaWVsZHNldCBkaXZcIiApLmxlbmd0aDtcblx0fSApO1xuXG5cdC8qIEF0dHJpYnV0ZXNcblx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8vIFN1cHBvcnQ6IElFPDhcblx0Ly8gVmVyaWZ5IHRoYXQgZ2V0QXR0cmlidXRlIHJlYWxseSByZXR1cm5zIGF0dHJpYnV0ZXMgYW5kIG5vdCBwcm9wZXJ0aWVzXG5cdC8vIChleGNlcHRpbmcgSUU4IGJvb2xlYW5zKVxuXHRzdXBwb3J0LmF0dHJpYnV0ZXMgPSBhc3NlcnQoIGZ1bmN0aW9uKCBlbCApIHtcblx0XHRlbC5jbGFzc05hbWUgPSBcImlcIjtcblx0XHRyZXR1cm4gIWVsLmdldEF0dHJpYnV0ZSggXCJjbGFzc05hbWVcIiApO1xuXHR9ICk7XG5cblx0LyogZ2V0RWxlbWVudChzKUJ5KlxuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0Ly8gQ2hlY2sgaWYgZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCIqXCIpIHJldHVybnMgb25seSBlbGVtZW50c1xuXHRzdXBwb3J0LmdldEVsZW1lbnRzQnlUYWdOYW1lID0gYXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cdFx0ZWwuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoIFwiXCIgKSApO1xuXHRcdHJldHVybiAhZWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIFwiKlwiICkubGVuZ3RoO1xuXHR9ICk7XG5cblx0Ly8gU3VwcG9ydDogSUU8OVxuXHRzdXBwb3J0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgPSBybmF0aXZlLnRlc3QoIGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgKTtcblxuXHQvLyBTdXBwb3J0OiBJRTwxMFxuXHQvLyBDaGVjayBpZiBnZXRFbGVtZW50QnlJZCByZXR1cm5zIGVsZW1lbnRzIGJ5IG5hbWVcblx0Ly8gVGhlIGJyb2tlbiBnZXRFbGVtZW50QnlJZCBtZXRob2RzIGRvbid0IHBpY2sgdXAgcHJvZ3JhbW1hdGljYWxseS1zZXQgbmFtZXMsXG5cdC8vIHNvIHVzZSBhIHJvdW5kYWJvdXQgZ2V0RWxlbWVudHNCeU5hbWUgdGVzdFxuXHRzdXBwb3J0LmdldEJ5SWQgPSBhc3NlcnQoIGZ1bmN0aW9uKCBlbCApIHtcblx0XHRkb2NFbGVtLmFwcGVuZENoaWxkKCBlbCApLmlkID0gZXhwYW5kbztcblx0XHRyZXR1cm4gIWRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lIHx8ICFkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSggZXhwYW5kbyApLmxlbmd0aDtcblx0fSApO1xuXG5cdC8vIElEIGZpbHRlciBhbmQgZmluZFxuXHRpZiAoIHN1cHBvcnQuZ2V0QnlJZCApIHtcblx0XHRFeHByLmZpbHRlclsgXCJJRFwiIF0gPSBmdW5jdGlvbiggaWQgKSB7XG5cdFx0XHR2YXIgYXR0cklkID0gaWQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0cmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKCBcImlkXCIgKSA9PT0gYXR0cklkO1xuXHRcdFx0fTtcblx0XHR9O1xuXHRcdEV4cHIuZmluZFsgXCJJRFwiIF0gPSBmdW5jdGlvbiggaWQsIGNvbnRleHQgKSB7XG5cdFx0XHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRCeUlkICE9PSBcInVuZGVmaW5lZFwiICYmIGRvY3VtZW50SXNIVE1MICkge1xuXHRcdFx0XHR2YXIgZWxlbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIGlkICk7XG5cdFx0XHRcdHJldHVybiBlbGVtID8gWyBlbGVtIF0gOiBbXTtcblx0XHRcdH1cblx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdEV4cHIuZmlsdGVyWyBcIklEXCIgXSA9ICBmdW5jdGlvbiggaWQgKSB7XG5cdFx0XHR2YXIgYXR0cklkID0gaWQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0dmFyIG5vZGUgPSB0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGVOb2RlICE9PSBcInVuZGVmaW5lZFwiICYmXG5cdFx0XHRcdFx0ZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBcImlkXCIgKTtcblx0XHRcdFx0cmV0dXJuIG5vZGUgJiYgbm9kZS52YWx1ZSA9PT0gYXR0cklkO1xuXHRcdFx0fTtcblx0XHR9O1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgNiAtIDcgb25seVxuXHRcdC8vIGdldEVsZW1lbnRCeUlkIGlzIG5vdCByZWxpYWJsZSBhcyBhIGZpbmQgc2hvcnRjdXRcblx0XHRFeHByLmZpbmRbIFwiSURcIiBdID0gZnVuY3Rpb24oIGlkLCBjb250ZXh0ICkge1xuXHRcdFx0aWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50QnlJZCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkb2N1bWVudElzSFRNTCApIHtcblx0XHRcdFx0dmFyIG5vZGUsIGksIGVsZW1zLFxuXHRcdFx0XHRcdGVsZW0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKCBpZCApO1xuXG5cdFx0XHRcdGlmICggZWxlbSApIHtcblxuXHRcdFx0XHRcdC8vIFZlcmlmeSB0aGUgaWQgYXR0cmlidXRlXG5cdFx0XHRcdFx0bm9kZSA9IGVsZW0uZ2V0QXR0cmlidXRlTm9kZSggXCJpZFwiICk7XG5cdFx0XHRcdFx0aWYgKCBub2RlICYmIG5vZGUudmFsdWUgPT09IGlkICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFsgZWxlbSBdO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIEZhbGwgYmFjayBvbiBnZXRFbGVtZW50c0J5TmFtZVxuXHRcdFx0XHRcdGVsZW1zID0gY29udGV4dC5nZXRFbGVtZW50c0J5TmFtZSggaWQgKTtcblx0XHRcdFx0XHRpID0gMDtcblx0XHRcdFx0XHR3aGlsZSAoICggZWxlbSA9IGVsZW1zWyBpKysgXSApICkge1xuXHRcdFx0XHRcdFx0bm9kZSA9IGVsZW0uZ2V0QXR0cmlidXRlTm9kZSggXCJpZFwiICk7XG5cdFx0XHRcdFx0XHRpZiAoIG5vZGUgJiYgbm9kZS52YWx1ZSA9PT0gaWQgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBbIGVsZW0gXTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gW107XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdC8vIFRhZ1xuXHRFeHByLmZpbmRbIFwiVEFHXCIgXSA9IHN1cHBvcnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgP1xuXHRcdGZ1bmN0aW9uKCB0YWcsIGNvbnRleHQgKSB7XG5cdFx0XHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSBcInVuZGVmaW5lZFwiICkge1xuXHRcdFx0XHRyZXR1cm4gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggdGFnICk7XG5cblx0XHRcdC8vIERvY3VtZW50RnJhZ21lbnQgbm9kZXMgZG9uJ3QgaGF2ZSBnRUJUTlxuXHRcdFx0fSBlbHNlIGlmICggc3VwcG9ydC5xc2EgKSB7XG5cdFx0XHRcdHJldHVybiBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwoIHRhZyApO1xuXHRcdFx0fVxuXHRcdH0gOlxuXG5cdFx0ZnVuY3Rpb24oIHRhZywgY29udGV4dCApIHtcblx0XHRcdHZhciBlbGVtLFxuXHRcdFx0XHR0bXAgPSBbXSxcblx0XHRcdFx0aSA9IDAsXG5cblx0XHRcdFx0Ly8gQnkgaGFwcHkgY29pbmNpZGVuY2UsIGEgKGJyb2tlbikgZ0VCVE4gYXBwZWFycyBvbiBEb2N1bWVudEZyYWdtZW50IG5vZGVzIHRvb1xuXHRcdFx0XHRyZXN1bHRzID0gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggdGFnICk7XG5cblx0XHRcdC8vIEZpbHRlciBvdXQgcG9zc2libGUgY29tbWVudHNcblx0XHRcdGlmICggdGFnID09PSBcIipcIiApIHtcblx0XHRcdFx0d2hpbGUgKCAoIGVsZW0gPSByZXN1bHRzWyBpKysgXSApICkge1xuXHRcdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdFx0XHRcdHRtcC5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIHRtcDtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdH07XG5cblx0Ly8gQ2xhc3Ncblx0RXhwci5maW5kWyBcIkNMQVNTXCIgXSA9IHN1cHBvcnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSAmJiBmdW5jdGlvbiggY2xhc3NOYW1lLCBjb250ZXh0ICkge1xuXHRcdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkb2N1bWVudElzSFRNTCApIHtcblx0XHRcdHJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIGNsYXNzTmFtZSApO1xuXHRcdH1cblx0fTtcblxuXHQvKiBRU0EvbWF0Y2hlc1NlbGVjdG9yXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvLyBRU0EgYW5kIG1hdGNoZXNTZWxlY3RvciBzdXBwb3J0XG5cblx0Ly8gbWF0Y2hlc1NlbGVjdG9yKDphY3RpdmUpIHJlcG9ydHMgZmFsc2Ugd2hlbiB0cnVlIChJRTkvT3BlcmEgMTEuNSlcblx0cmJ1Z2d5TWF0Y2hlcyA9IFtdO1xuXG5cdC8vIHFTYSg6Zm9jdXMpIHJlcG9ydHMgZmFsc2Ugd2hlbiB0cnVlIChDaHJvbWUgMjEpXG5cdC8vIFdlIGFsbG93IHRoaXMgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBJRTgvOSB0aGF0IHRocm93cyBhbiBlcnJvclxuXHQvLyB3aGVuZXZlciBgZG9jdW1lbnQuYWN0aXZlRWxlbWVudGAgaXMgYWNjZXNzZWQgb24gYW4gaWZyYW1lXG5cdC8vIFNvLCB3ZSBhbGxvdyA6Zm9jdXMgdG8gcGFzcyB0aHJvdWdoIFFTQSBhbGwgdGhlIHRpbWUgdG8gYXZvaWQgdGhlIElFIGVycm9yXG5cdC8vIFNlZSBodHRwczovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTMzNzhcblx0cmJ1Z2d5UVNBID0gW107XG5cblx0aWYgKCAoIHN1cHBvcnQucXNhID0gcm5hdGl2ZS50ZXN0KCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsICkgKSApIHtcblxuXHRcdC8vIEJ1aWxkIFFTQSByZWdleFxuXHRcdC8vIFJlZ2V4IHN0cmF0ZWd5IGFkb3B0ZWQgZnJvbSBEaWVnbyBQZXJpbmlcblx0XHRhc3NlcnQoIGZ1bmN0aW9uKCBlbCApIHtcblxuXHRcdFx0dmFyIGlucHV0O1xuXG5cdFx0XHQvLyBTZWxlY3QgaXMgc2V0IHRvIGVtcHR5IHN0cmluZyBvbiBwdXJwb3NlXG5cdFx0XHQvLyBUaGlzIGlzIHRvIHRlc3QgSUUncyB0cmVhdG1lbnQgb2Ygbm90IGV4cGxpY2l0bHlcblx0XHRcdC8vIHNldHRpbmcgYSBib29sZWFuIGNvbnRlbnQgYXR0cmlidXRlLFxuXHRcdFx0Ly8gc2luY2UgaXRzIHByZXNlbmNlIHNob3VsZCBiZSBlbm91Z2hcblx0XHRcdC8vIGh0dHBzOi8vYnVncy5qcXVlcnkuY29tL3RpY2tldC8xMjM1OVxuXHRcdFx0ZG9jRWxlbS5hcHBlbmRDaGlsZCggZWwgKS5pbm5lckhUTUwgPSBcIjxhIGlkPSdcIiArIGV4cGFuZG8gKyBcIic+PC9hPlwiICtcblx0XHRcdFx0XCI8c2VsZWN0IGlkPSdcIiArIGV4cGFuZG8gKyBcIi1cXHJcXFxcJyBtc2FsbG93Y2FwdHVyZT0nJz5cIiArXG5cdFx0XHRcdFwiPG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD5cIjtcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUU4LCBPcGVyYSAxMS0xMi4xNlxuXHRcdFx0Ly8gTm90aGluZyBzaG91bGQgYmUgc2VsZWN0ZWQgd2hlbiBlbXB0eSBzdHJpbmdzIGZvbGxvdyBePSBvciAkPSBvciAqPVxuXHRcdFx0Ly8gVGhlIHRlc3QgYXR0cmlidXRlIG11c3QgYmUgdW5rbm93biBpbiBPcGVyYSBidXQgXCJzYWZlXCIgZm9yIFdpblJUXG5cdFx0XHQvLyBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2llL2hoNDY1Mzg4LmFzcHgjYXR0cmlidXRlX3NlY3Rpb25cblx0XHRcdGlmICggZWwucXVlcnlTZWxlY3RvckFsbCggXCJbbXNhbGxvd2NhcHR1cmVePScnXVwiICkubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJbKl4kXT1cIiArIHdoaXRlc3BhY2UgKyBcIiooPzonJ3xcXFwiXFxcIilcIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRThcblx0XHRcdC8vIEJvb2xlYW4gYXR0cmlidXRlcyBhbmQgXCJ2YWx1ZVwiIGFyZSBub3QgdHJlYXRlZCBjb3JyZWN0bHlcblx0XHRcdGlmICggIWVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiW3NlbGVjdGVkXVwiICkubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJcXFxcW1wiICsgd2hpdGVzcGFjZSArIFwiKig/OnZhbHVlfFwiICsgYm9vbGVhbnMgKyBcIilcIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdXBwb3J0OiBDaHJvbWU8MjksIEFuZHJvaWQ8NC40LCBTYWZhcmk8Ny4wKywgaU9TPDcuMCssIFBoYW50b21KUzwxLjkuOCtcblx0XHRcdGlmICggIWVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiW2lkfj1cIiArIGV4cGFuZG8gKyBcIi1dXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIn49XCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE1IC0gMTgrXG5cdFx0XHQvLyBJRSAxMS9FZGdlIGRvbid0IGZpbmQgZWxlbWVudHMgb24gYSBgW25hbWU9JyddYCBxdWVyeSBpbiBzb21lIGNhc2VzLlxuXHRcdFx0Ly8gQWRkaW5nIGEgdGVtcG9yYXJ5IGF0dHJpYnV0ZSB0byB0aGUgZG9jdW1lbnQgYmVmb3JlIHRoZSBzZWxlY3Rpb24gd29ya3Ncblx0XHRcdC8vIGFyb3VuZCB0aGUgaXNzdWUuXG5cdFx0XHQvLyBJbnRlcmVzdGluZ2x5LCBJRSAxMCAmIG9sZGVyIGRvbid0IHNlZW0gdG8gaGF2ZSB0aGUgaXNzdWUuXG5cdFx0XHRpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApO1xuXHRcdFx0aW5wdXQuc2V0QXR0cmlidXRlKCBcIm5hbWVcIiwgXCJcIiApO1xuXHRcdFx0ZWwuYXBwZW5kQ2hpbGQoIGlucHV0ICk7XG5cdFx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIltuYW1lPScnXVwiICkubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJcXFxcW1wiICsgd2hpdGVzcGFjZSArIFwiKm5hbWVcIiArIHdoaXRlc3BhY2UgKyBcIio9XCIgK1xuXHRcdFx0XHRcdHdoaXRlc3BhY2UgKyBcIiooPzonJ3xcXFwiXFxcIilcIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBXZWJraXQvT3BlcmEgLSA6Y2hlY2tlZCBzaG91bGQgcmV0dXJuIHNlbGVjdGVkIG9wdGlvbiBlbGVtZW50c1xuXHRcdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMS9SRUMtY3NzMy1zZWxlY3RvcnMtMjAxMTA5MjkvI2NoZWNrZWRcblx0XHRcdC8vIElFOCB0aHJvd3MgZXJyb3IgaGVyZSBhbmQgd2lsbCBub3Qgc2VlIGxhdGVyIHRlc3RzXG5cdFx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIjpjaGVja2VkXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIjpjaGVja2VkXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3VwcG9ydDogU2FmYXJpIDgrLCBpT1MgOCtcblx0XHRcdC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4NTFcblx0XHRcdC8vIEluLXBhZ2UgYHNlbGVjdG9yI2lkIHNpYmxpbmctY29tYmluYXRvciBzZWxlY3RvcmAgZmFpbHNcblx0XHRcdGlmICggIWVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiYSNcIiArIGV4cGFuZG8gKyBcIisqXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIi4jLitbK35dXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3VwcG9ydDogRmlyZWZveCA8PTMuNiAtIDUgb25seVxuXHRcdFx0Ly8gT2xkIEZpcmVmb3ggZG9lc24ndCB0aHJvdyBvbiBhIGJhZGx5LWVzY2FwZWQgaWRlbnRpZmllci5cblx0XHRcdGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIFwiXFxcXFxcZlwiICk7XG5cdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJbXFxcXHJcXFxcblxcXFxmXVwiICk7XG5cdFx0fSApO1xuXG5cdFx0YXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cdFx0XHRlbC5pbm5lckhUTUwgPSBcIjxhIGhyZWY9JycgZGlzYWJsZWQ9J2Rpc2FibGVkJz48L2E+XCIgK1xuXHRcdFx0XHRcIjxzZWxlY3QgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uLz48L3NlbGVjdD5cIjtcblxuXHRcdFx0Ly8gU3VwcG9ydDogV2luZG93cyA4IE5hdGl2ZSBBcHBzXG5cdFx0XHQvLyBUaGUgdHlwZSBhbmQgbmFtZSBhdHRyaWJ1dGVzIGFyZSByZXN0cmljdGVkIGR1cmluZyAuaW5uZXJIVE1MIGFzc2lnbm1lbnRcblx0XHRcdHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApO1xuXHRcdFx0aW5wdXQuc2V0QXR0cmlidXRlKCBcInR5cGVcIiwgXCJoaWRkZW5cIiApO1xuXHRcdFx0ZWwuYXBwZW5kQ2hpbGQoIGlucHV0ICkuc2V0QXR0cmlidXRlKCBcIm5hbWVcIiwgXCJEXCIgKTtcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUU4XG5cdFx0XHQvLyBFbmZvcmNlIGNhc2Utc2Vuc2l0aXZpdHkgb2YgbmFtZSBhdHRyaWJ1dGVcblx0XHRcdGlmICggZWwucXVlcnlTZWxlY3RvckFsbCggXCJbbmFtZT1kXVwiICkubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJuYW1lXCIgKyB3aGl0ZXNwYWNlICsgXCIqWypeJHwhfl0/PVwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEZGIDMuNSAtIDplbmFibGVkLzpkaXNhYmxlZCBhbmQgaGlkZGVuIGVsZW1lbnRzIChoaWRkZW4gZWxlbWVudHMgYXJlIHN0aWxsIGVuYWJsZWQpXG5cdFx0XHQvLyBJRTggdGhyb3dzIGVycm9yIGhlcmUgYW5kIHdpbGwgbm90IHNlZSBsYXRlciB0ZXN0c1xuXHRcdFx0aWYgKCBlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIjplbmFibGVkXCIgKS5sZW5ndGggIT09IDIgKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIjplbmFibGVkXCIsIFwiOmRpc2FibGVkXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3VwcG9ydDogSUU5LTExK1xuXHRcdFx0Ly8gSUUncyA6ZGlzYWJsZWQgc2VsZWN0b3IgZG9lcyBub3QgcGljayB1cCB0aGUgY2hpbGRyZW4gb2YgZGlzYWJsZWQgZmllbGRzZXRzXG5cdFx0XHRkb2NFbGVtLmFwcGVuZENoaWxkKCBlbCApLmRpc2FibGVkID0gdHJ1ZTtcblx0XHRcdGlmICggZWwucXVlcnlTZWxlY3RvckFsbCggXCI6ZGlzYWJsZWRcIiApLmxlbmd0aCAhPT0gMiApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiOmVuYWJsZWRcIiwgXCI6ZGlzYWJsZWRcIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdXBwb3J0OiBPcGVyYSAxMCAtIDExIG9ubHlcblx0XHRcdC8vIE9wZXJhIDEwLTExIGRvZXMgbm90IHRocm93IG9uIHBvc3QtY29tbWEgaW52YWxpZCBwc2V1ZG9zXG5cdFx0XHRlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIiosOnhcIiApO1xuXHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiLC4qOlwiICk7XG5cdFx0fSApO1xuXHR9XG5cblx0aWYgKCAoIHN1cHBvcnQubWF0Y2hlc1NlbGVjdG9yID0gcm5hdGl2ZS50ZXN0KCAoIG1hdGNoZXMgPSBkb2NFbGVtLm1hdGNoZXMgfHxcblx0XHRkb2NFbGVtLndlYmtpdE1hdGNoZXNTZWxlY3RvciB8fFxuXHRcdGRvY0VsZW0ubW96TWF0Y2hlc1NlbGVjdG9yIHx8XG5cdFx0ZG9jRWxlbS5vTWF0Y2hlc1NlbGVjdG9yIHx8XG5cdFx0ZG9jRWxlbS5tc01hdGNoZXNTZWxlY3RvciApICkgKSApIHtcblxuXHRcdGFzc2VydCggZnVuY3Rpb24oIGVsICkge1xuXG5cdFx0XHQvLyBDaGVjayB0byBzZWUgaWYgaXQncyBwb3NzaWJsZSB0byBkbyBtYXRjaGVzU2VsZWN0b3Jcblx0XHRcdC8vIG9uIGEgZGlzY29ubmVjdGVkIG5vZGUgKElFIDkpXG5cdFx0XHRzdXBwb3J0LmRpc2Nvbm5lY3RlZE1hdGNoID0gbWF0Y2hlcy5jYWxsKCBlbCwgXCIqXCIgKTtcblxuXHRcdFx0Ly8gVGhpcyBzaG91bGQgZmFpbCB3aXRoIGFuIGV4Y2VwdGlvblxuXHRcdFx0Ly8gR2Vja28gZG9lcyBub3QgZXJyb3IsIHJldHVybnMgZmFsc2UgaW5zdGVhZFxuXHRcdFx0bWF0Y2hlcy5jYWxsKCBlbCwgXCJbcyE9JyddOnhcIiApO1xuXHRcdFx0cmJ1Z2d5TWF0Y2hlcy5wdXNoKCBcIiE9XCIsIHBzZXVkb3MgKTtcblx0XHR9ICk7XG5cdH1cblxuXHRyYnVnZ3lRU0EgPSByYnVnZ3lRU0EubGVuZ3RoICYmIG5ldyBSZWdFeHAoIHJidWdneVFTQS5qb2luKCBcInxcIiApICk7XG5cdHJidWdneU1hdGNoZXMgPSByYnVnZ3lNYXRjaGVzLmxlbmd0aCAmJiBuZXcgUmVnRXhwKCByYnVnZ3lNYXRjaGVzLmpvaW4oIFwifFwiICkgKTtcblxuXHQvKiBDb250YWluc1xuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cdGhhc0NvbXBhcmUgPSBybmF0aXZlLnRlc3QoIGRvY0VsZW0uY29tcGFyZURvY3VtZW50UG9zaXRpb24gKTtcblxuXHQvLyBFbGVtZW50IGNvbnRhaW5zIGFub3RoZXJcblx0Ly8gUHVycG9zZWZ1bGx5IHNlbGYtZXhjbHVzaXZlXG5cdC8vIEFzIGluLCBhbiBlbGVtZW50IGRvZXMgbm90IGNvbnRhaW4gaXRzZWxmXG5cdGNvbnRhaW5zID0gaGFzQ29tcGFyZSB8fCBybmF0aXZlLnRlc3QoIGRvY0VsZW0uY29udGFpbnMgKSA/XG5cdFx0ZnVuY3Rpb24oIGEsIGIgKSB7XG5cdFx0XHR2YXIgYWRvd24gPSBhLm5vZGVUeXBlID09PSA5ID8gYS5kb2N1bWVudEVsZW1lbnQgOiBhLFxuXHRcdFx0XHRidXAgPSBiICYmIGIucGFyZW50Tm9kZTtcblx0XHRcdHJldHVybiBhID09PSBidXAgfHwgISEoIGJ1cCAmJiBidXAubm9kZVR5cGUgPT09IDEgJiYgKFxuXHRcdFx0XHRhZG93bi5jb250YWlucyA/XG5cdFx0XHRcdFx0YWRvd24uY29udGFpbnMoIGJ1cCApIDpcblx0XHRcdFx0XHRhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uICYmIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oIGJ1cCApICYgMTZcblx0XHRcdCkgKTtcblx0XHR9IDpcblx0XHRmdW5jdGlvbiggYSwgYiApIHtcblx0XHRcdGlmICggYiApIHtcblx0XHRcdFx0d2hpbGUgKCAoIGIgPSBiLnBhcmVudE5vZGUgKSApIHtcblx0XHRcdFx0XHRpZiAoIGIgPT09IGEgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9O1xuXG5cdC8qIFNvcnRpbmdcblx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8vIERvY3VtZW50IG9yZGVyIHNvcnRpbmdcblx0c29ydE9yZGVyID0gaGFzQ29tcGFyZSA/XG5cdGZ1bmN0aW9uKCBhLCBiICkge1xuXG5cdFx0Ly8gRmxhZyBmb3IgZHVwbGljYXRlIHJlbW92YWxcblx0XHRpZiAoIGEgPT09IGIgKSB7XG5cdFx0XHRoYXNEdXBsaWNhdGUgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXG5cdFx0Ly8gU29ydCBvbiBtZXRob2QgZXhpc3RlbmNlIGlmIG9ubHkgb25lIGlucHV0IGhhcyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvblxuXHRcdHZhciBjb21wYXJlID0gIWEuY29tcGFyZURvY3VtZW50UG9zaXRpb24gLSAhYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtcblx0XHRpZiAoIGNvbXBhcmUgKSB7XG5cdFx0XHRyZXR1cm4gY29tcGFyZTtcblx0XHR9XG5cblx0XHQvLyBDYWxjdWxhdGUgcG9zaXRpb24gaWYgYm90aCBpbnB1dHMgYmVsb25nIHRvIHRoZSBzYW1lIGRvY3VtZW50XG5cdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0XHRjb21wYXJlID0gKCBhLm93bmVyRG9jdW1lbnQgfHwgYSApID09ICggYi5vd25lckRvY3VtZW50IHx8IGIgKSA/XG5cdFx0XHRhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBiICkgOlxuXG5cdFx0XHQvLyBPdGhlcndpc2Ugd2Uga25vdyB0aGV5IGFyZSBkaXNjb25uZWN0ZWRcblx0XHRcdDE7XG5cblx0XHQvLyBEaXNjb25uZWN0ZWQgbm9kZXNcblx0XHRpZiAoIGNvbXBhcmUgJiAxIHx8XG5cdFx0XHQoICFzdXBwb3J0LnNvcnREZXRhY2hlZCAmJiBiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBhICkgPT09IGNvbXBhcmUgKSApIHtcblxuXHRcdFx0Ly8gQ2hvb3NlIHRoZSBmaXJzdCBlbGVtZW50IHRoYXQgaXMgcmVsYXRlZCB0byBvdXIgcHJlZmVycmVkIGRvY3VtZW50XG5cdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHRcdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0aWYgKCBhID09IGRvY3VtZW50IHx8IGEub3duZXJEb2N1bWVudCA9PSBwcmVmZXJyZWREb2MgJiZcblx0XHRcdFx0Y29udGFpbnMoIHByZWZlcnJlZERvYywgYSApICkge1xuXHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExKywgRWRnZSAxNyAtIDE4K1xuXHRcdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0XHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG5cdFx0XHRpZiAoIGIgPT0gZG9jdW1lbnQgfHwgYi5vd25lckRvY3VtZW50ID09IHByZWZlcnJlZERvYyAmJlxuXHRcdFx0XHRjb250YWlucyggcHJlZmVycmVkRG9jLCBiICkgKSB7XG5cdFx0XHRcdHJldHVybiAxO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBNYWludGFpbiBvcmlnaW5hbCBvcmRlclxuXHRcdFx0cmV0dXJuIHNvcnRJbnB1dCA/XG5cdFx0XHRcdCggaW5kZXhPZiggc29ydElucHV0LCBhICkgLSBpbmRleE9mKCBzb3J0SW5wdXQsIGIgKSApIDpcblx0XHRcdFx0MDtcblx0XHR9XG5cblx0XHRyZXR1cm4gY29tcGFyZSAmIDQgPyAtMSA6IDE7XG5cdH0gOlxuXHRmdW5jdGlvbiggYSwgYiApIHtcblxuXHRcdC8vIEV4aXQgZWFybHkgaWYgdGhlIG5vZGVzIGFyZSBpZGVudGljYWxcblx0XHRpZiAoIGEgPT09IGIgKSB7XG5cdFx0XHRoYXNEdXBsaWNhdGUgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXG5cdFx0dmFyIGN1cixcblx0XHRcdGkgPSAwLFxuXHRcdFx0YXVwID0gYS5wYXJlbnROb2RlLFxuXHRcdFx0YnVwID0gYi5wYXJlbnROb2RlLFxuXHRcdFx0YXAgPSBbIGEgXSxcblx0XHRcdGJwID0gWyBiIF07XG5cblx0XHQvLyBQYXJlbnRsZXNzIG5vZGVzIGFyZSBlaXRoZXIgZG9jdW1lbnRzIG9yIGRpc2Nvbm5lY3RlZFxuXHRcdGlmICggIWF1cCB8fCAhYnVwICkge1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHRcdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdFx0LyogZXNsaW50LWRpc2FibGUgZXFlcWVxICovXG5cdFx0XHRyZXR1cm4gYSA9PSBkb2N1bWVudCA/IC0xIDpcblx0XHRcdFx0YiA9PSBkb2N1bWVudCA/IDEgOlxuXHRcdFx0XHQvKiBlc2xpbnQtZW5hYmxlIGVxZXFlcSAqL1xuXHRcdFx0XHRhdXAgPyAtMSA6XG5cdFx0XHRcdGJ1cCA/IDEgOlxuXHRcdFx0XHRzb3J0SW5wdXQgP1xuXHRcdFx0XHQoIGluZGV4T2YoIHNvcnRJbnB1dCwgYSApIC0gaW5kZXhPZiggc29ydElucHV0LCBiICkgKSA6XG5cdFx0XHRcdDA7XG5cblx0XHQvLyBJZiB0aGUgbm9kZXMgYXJlIHNpYmxpbmdzLCB3ZSBjYW4gZG8gYSBxdWljayBjaGVja1xuXHRcdH0gZWxzZSBpZiAoIGF1cCA9PT0gYnVwICkge1xuXHRcdFx0cmV0dXJuIHNpYmxpbmdDaGVjayggYSwgYiApO1xuXHRcdH1cblxuXHRcdC8vIE90aGVyd2lzZSB3ZSBuZWVkIGZ1bGwgbGlzdHMgb2YgdGhlaXIgYW5jZXN0b3JzIGZvciBjb21wYXJpc29uXG5cdFx0Y3VyID0gYTtcblx0XHR3aGlsZSAoICggY3VyID0gY3VyLnBhcmVudE5vZGUgKSApIHtcblx0XHRcdGFwLnVuc2hpZnQoIGN1ciApO1xuXHRcdH1cblx0XHRjdXIgPSBiO1xuXHRcdHdoaWxlICggKCBjdXIgPSBjdXIucGFyZW50Tm9kZSApICkge1xuXHRcdFx0YnAudW5zaGlmdCggY3VyICk7XG5cdFx0fVxuXG5cdFx0Ly8gV2FsayBkb3duIHRoZSB0cmVlIGxvb2tpbmcgZm9yIGEgZGlzY3JlcGFuY3lcblx0XHR3aGlsZSAoIGFwWyBpIF0gPT09IGJwWyBpIF0gKSB7XG5cdFx0XHRpKys7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGkgP1xuXG5cdFx0XHQvLyBEbyBhIHNpYmxpbmcgY2hlY2sgaWYgdGhlIG5vZGVzIGhhdmUgYSBjb21tb24gYW5jZXN0b3Jcblx0XHRcdHNpYmxpbmdDaGVjayggYXBbIGkgXSwgYnBbIGkgXSApIDpcblxuXHRcdFx0Ly8gT3RoZXJ3aXNlIG5vZGVzIGluIG91ciBkb2N1bWVudCBzb3J0IGZpcnN0XG5cdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHRcdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdFx0LyogZXNsaW50LWRpc2FibGUgZXFlcWVxICovXG5cdFx0XHRhcFsgaSBdID09IHByZWZlcnJlZERvYyA/IC0xIDpcblx0XHRcdGJwWyBpIF0gPT0gcHJlZmVycmVkRG9jID8gMSA6XG5cdFx0XHQvKiBlc2xpbnQtZW5hYmxlIGVxZXFlcSAqL1xuXHRcdFx0MDtcblx0fTtcblxuXHRyZXR1cm4gZG9jdW1lbnQ7XG59O1xuXG5TaXp6bGUubWF0Y2hlcyA9IGZ1bmN0aW9uKCBleHByLCBlbGVtZW50cyApIHtcblx0cmV0dXJuIFNpenpsZSggZXhwciwgbnVsbCwgbnVsbCwgZWxlbWVudHMgKTtcbn07XG5cblNpenpsZS5tYXRjaGVzU2VsZWN0b3IgPSBmdW5jdGlvbiggZWxlbSwgZXhwciApIHtcblx0c2V0RG9jdW1lbnQoIGVsZW0gKTtcblxuXHRpZiAoIHN1cHBvcnQubWF0Y2hlc1NlbGVjdG9yICYmIGRvY3VtZW50SXNIVE1MICYmXG5cdFx0IW5vbm5hdGl2ZVNlbGVjdG9yQ2FjaGVbIGV4cHIgKyBcIiBcIiBdICYmXG5cdFx0KCAhcmJ1Z2d5TWF0Y2hlcyB8fCAhcmJ1Z2d5TWF0Y2hlcy50ZXN0KCBleHByICkgKSAmJlxuXHRcdCggIXJidWdneVFTQSAgICAgfHwgIXJidWdneVFTQS50ZXN0KCBleHByICkgKSApIHtcblxuXHRcdHRyeSB7XG5cdFx0XHR2YXIgcmV0ID0gbWF0Y2hlcy5jYWxsKCBlbGVtLCBleHByICk7XG5cblx0XHRcdC8vIElFIDkncyBtYXRjaGVzU2VsZWN0b3IgcmV0dXJucyBmYWxzZSBvbiBkaXNjb25uZWN0ZWQgbm9kZXNcblx0XHRcdGlmICggcmV0IHx8IHN1cHBvcnQuZGlzY29ubmVjdGVkTWF0Y2ggfHxcblxuXHRcdFx0XHQvLyBBcyB3ZWxsLCBkaXNjb25uZWN0ZWQgbm9kZXMgYXJlIHNhaWQgdG8gYmUgaW4gYSBkb2N1bWVudFxuXHRcdFx0XHQvLyBmcmFnbWVudCBpbiBJRSA5XG5cdFx0XHRcdGVsZW0uZG9jdW1lbnQgJiYgZWxlbS5kb2N1bWVudC5ub2RlVHlwZSAhPT0gMTEgKSB7XG5cdFx0XHRcdHJldHVybiByZXQ7XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAoIGUgKSB7XG5cdFx0XHRub25uYXRpdmVTZWxlY3RvckNhY2hlKCBleHByLCB0cnVlICk7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIFNpenpsZSggZXhwciwgZG9jdW1lbnQsIG51bGwsIFsgZWxlbSBdICkubGVuZ3RoID4gMDtcbn07XG5cblNpenpsZS5jb250YWlucyA9IGZ1bmN0aW9uKCBjb250ZXh0LCBlbGVtICkge1xuXG5cdC8vIFNldCBkb2N1bWVudCB2YXJzIGlmIG5lZWRlZFxuXHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRpZiAoICggY29udGV4dC5vd25lckRvY3VtZW50IHx8IGNvbnRleHQgKSAhPSBkb2N1bWVudCApIHtcblx0XHRzZXREb2N1bWVudCggY29udGV4dCApO1xuXHR9XG5cdHJldHVybiBjb250YWlucyggY29udGV4dCwgZWxlbSApO1xufTtcblxuU2l6emxlLmF0dHIgPSBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHtcblxuXHQvLyBTZXQgZG9jdW1lbnQgdmFycyBpZiBuZWVkZWRcblx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdC8vIElFL0VkZ2Ugc29tZXRpbWVzIHRocm93IGEgXCJQZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gc3RyaWN0LWNvbXBhcmluZ1xuXHQvLyB0d28gZG9jdW1lbnRzOyBzaGFsbG93IGNvbXBhcmlzb25zIHdvcmsuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0aWYgKCAoIGVsZW0ub3duZXJEb2N1bWVudCB8fCBlbGVtICkgIT0gZG9jdW1lbnQgKSB7XG5cdFx0c2V0RG9jdW1lbnQoIGVsZW0gKTtcblx0fVxuXG5cdHZhciBmbiA9IEV4cHIuYXR0ckhhbmRsZVsgbmFtZS50b0xvd2VyQ2FzZSgpIF0sXG5cblx0XHQvLyBEb24ndCBnZXQgZm9vbGVkIGJ5IE9iamVjdC5wcm90b3R5cGUgcHJvcGVydGllcyAoalF1ZXJ5ICMxMzgwNylcblx0XHR2YWwgPSBmbiAmJiBoYXNPd24uY2FsbCggRXhwci5hdHRySGFuZGxlLCBuYW1lLnRvTG93ZXJDYXNlKCkgKSA/XG5cdFx0XHRmbiggZWxlbSwgbmFtZSwgIWRvY3VtZW50SXNIVE1MICkgOlxuXHRcdFx0dW5kZWZpbmVkO1xuXG5cdHJldHVybiB2YWwgIT09IHVuZGVmaW5lZCA/XG5cdFx0dmFsIDpcblx0XHRzdXBwb3J0LmF0dHJpYnV0ZXMgfHwgIWRvY3VtZW50SXNIVE1MID9cblx0XHRcdGVsZW0uZ2V0QXR0cmlidXRlKCBuYW1lICkgOlxuXHRcdFx0KCB2YWwgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIG5hbWUgKSApICYmIHZhbC5zcGVjaWZpZWQgP1xuXHRcdFx0XHR2YWwudmFsdWUgOlxuXHRcdFx0XHRudWxsO1xufTtcblxuU2l6emxlLmVzY2FwZSA9IGZ1bmN0aW9uKCBzZWwgKSB7XG5cdHJldHVybiAoIHNlbCArIFwiXCIgKS5yZXBsYWNlKCByY3NzZXNjYXBlLCBmY3NzZXNjYXBlICk7XG59O1xuXG5TaXp6bGUuZXJyb3IgPSBmdW5jdGlvbiggbXNnICkge1xuXHR0aHJvdyBuZXcgRXJyb3IoIFwiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogXCIgKyBtc2cgKTtcbn07XG5cbi8qKlxuICogRG9jdW1lbnQgc29ydGluZyBhbmQgcmVtb3ZpbmcgZHVwbGljYXRlc1xuICogQHBhcmFtIHtBcnJheUxpa2V9IHJlc3VsdHNcbiAqL1xuU2l6emxlLnVuaXF1ZVNvcnQgPSBmdW5jdGlvbiggcmVzdWx0cyApIHtcblx0dmFyIGVsZW0sXG5cdFx0ZHVwbGljYXRlcyA9IFtdLFxuXHRcdGogPSAwLFxuXHRcdGkgPSAwO1xuXG5cdC8vIFVubGVzcyB3ZSAqa25vdyogd2UgY2FuIGRldGVjdCBkdXBsaWNhdGVzLCBhc3N1bWUgdGhlaXIgcHJlc2VuY2Vcblx0aGFzRHVwbGljYXRlID0gIXN1cHBvcnQuZGV0ZWN0RHVwbGljYXRlcztcblx0c29ydElucHV0ID0gIXN1cHBvcnQuc29ydFN0YWJsZSAmJiByZXN1bHRzLnNsaWNlKCAwICk7XG5cdHJlc3VsdHMuc29ydCggc29ydE9yZGVyICk7XG5cblx0aWYgKCBoYXNEdXBsaWNhdGUgKSB7XG5cdFx0d2hpbGUgKCAoIGVsZW0gPSByZXN1bHRzWyBpKysgXSApICkge1xuXHRcdFx0aWYgKCBlbGVtID09PSByZXN1bHRzWyBpIF0gKSB7XG5cdFx0XHRcdGogPSBkdXBsaWNhdGVzLnB1c2goIGkgKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0d2hpbGUgKCBqLS0gKSB7XG5cdFx0XHRyZXN1bHRzLnNwbGljZSggZHVwbGljYXRlc1sgaiBdLCAxICk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ2xlYXIgaW5wdXQgYWZ0ZXIgc29ydGluZyB0byByZWxlYXNlIG9iamVjdHNcblx0Ly8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvc2l6emxlL3B1bGwvMjI1XG5cdHNvcnRJbnB1dCA9IG51bGw7XG5cblx0cmV0dXJuIHJlc3VsdHM7XG59O1xuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gZm9yIHJldHJpZXZpbmcgdGhlIHRleHQgdmFsdWUgb2YgYW4gYXJyYXkgb2YgRE9NIG5vZGVzXG4gKiBAcGFyYW0ge0FycmF5fEVsZW1lbnR9IGVsZW1cbiAqL1xuZ2V0VGV4dCA9IFNpenpsZS5nZXRUZXh0ID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdHZhciBub2RlLFxuXHRcdHJldCA9IFwiXCIsXG5cdFx0aSA9IDAsXG5cdFx0bm9kZVR5cGUgPSBlbGVtLm5vZGVUeXBlO1xuXG5cdGlmICggIW5vZGVUeXBlICkge1xuXG5cdFx0Ly8gSWYgbm8gbm9kZVR5cGUsIHRoaXMgaXMgZXhwZWN0ZWQgdG8gYmUgYW4gYXJyYXlcblx0XHR3aGlsZSAoICggbm9kZSA9IGVsZW1bIGkrKyBdICkgKSB7XG5cblx0XHRcdC8vIERvIG5vdCB0cmF2ZXJzZSBjb21tZW50IG5vZGVzXG5cdFx0XHRyZXQgKz0gZ2V0VGV4dCggbm9kZSApO1xuXHRcdH1cblx0fSBlbHNlIGlmICggbm9kZVR5cGUgPT09IDEgfHwgbm9kZVR5cGUgPT09IDkgfHwgbm9kZVR5cGUgPT09IDExICkge1xuXG5cdFx0Ly8gVXNlIHRleHRDb250ZW50IGZvciBlbGVtZW50c1xuXHRcdC8vIGlubmVyVGV4dCB1c2FnZSByZW1vdmVkIGZvciBjb25zaXN0ZW5jeSBvZiBuZXcgbGluZXMgKGpRdWVyeSAjMTExNTMpXG5cdFx0aWYgKCB0eXBlb2YgZWxlbS50ZXh0Q29udGVudCA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiBlbGVtLnRleHRDb250ZW50O1xuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIFRyYXZlcnNlIGl0cyBjaGlsZHJlblxuXHRcdFx0Zm9yICggZWxlbSA9IGVsZW0uZmlyc3RDaGlsZDsgZWxlbTsgZWxlbSA9IGVsZW0ubmV4dFNpYmxpbmcgKSB7XG5cdFx0XHRcdHJldCArPSBnZXRUZXh0KCBlbGVtICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9IGVsc2UgaWYgKCBub2RlVHlwZSA9PT0gMyB8fCBub2RlVHlwZSA9PT0gNCApIHtcblx0XHRyZXR1cm4gZWxlbS5ub2RlVmFsdWU7XG5cdH1cblxuXHQvLyBEbyBub3QgaW5jbHVkZSBjb21tZW50IG9yIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gbm9kZXNcblxuXHRyZXR1cm4gcmV0O1xufTtcblxuRXhwciA9IFNpenpsZS5zZWxlY3RvcnMgPSB7XG5cblx0Ly8gQ2FuIGJlIGFkanVzdGVkIGJ5IHRoZSB1c2VyXG5cdGNhY2hlTGVuZ3RoOiA1MCxcblxuXHRjcmVhdGVQc2V1ZG86IG1hcmtGdW5jdGlvbixcblxuXHRtYXRjaDogbWF0Y2hFeHByLFxuXG5cdGF0dHJIYW5kbGU6IHt9LFxuXG5cdGZpbmQ6IHt9LFxuXG5cdHJlbGF0aXZlOiB7XG5cdFx0XCI+XCI6IHsgZGlyOiBcInBhcmVudE5vZGVcIiwgZmlyc3Q6IHRydWUgfSxcblx0XHRcIiBcIjogeyBkaXI6IFwicGFyZW50Tm9kZVwiIH0sXG5cdFx0XCIrXCI6IHsgZGlyOiBcInByZXZpb3VzU2libGluZ1wiLCBmaXJzdDogdHJ1ZSB9LFxuXHRcdFwiflwiOiB7IGRpcjogXCJwcmV2aW91c1NpYmxpbmdcIiB9XG5cdH0sXG5cblx0cHJlRmlsdGVyOiB7XG5cdFx0XCJBVFRSXCI6IGZ1bmN0aW9uKCBtYXRjaCApIHtcblx0XHRcdG1hdGNoWyAxIF0gPSBtYXRjaFsgMSBdLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7XG5cblx0XHRcdC8vIE1vdmUgdGhlIGdpdmVuIHZhbHVlIHRvIG1hdGNoWzNdIHdoZXRoZXIgcXVvdGVkIG9yIHVucXVvdGVkXG5cdFx0XHRtYXRjaFsgMyBdID0gKCBtYXRjaFsgMyBdIHx8IG1hdGNoWyA0IF0gfHxcblx0XHRcdFx0bWF0Y2hbIDUgXSB8fCBcIlwiICkucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblxuXHRcdFx0aWYgKCBtYXRjaFsgMiBdID09PSBcIn49XCIgKSB7XG5cdFx0XHRcdG1hdGNoWyAzIF0gPSBcIiBcIiArIG1hdGNoWyAzIF0gKyBcIiBcIjtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG1hdGNoLnNsaWNlKCAwLCA0ICk7XG5cdFx0fSxcblxuXHRcdFwiQ0hJTERcIjogZnVuY3Rpb24oIG1hdGNoICkge1xuXG5cdFx0XHQvKiBtYXRjaGVzIGZyb20gbWF0Y2hFeHByW1wiQ0hJTERcIl1cblx0XHRcdFx0MSB0eXBlIChvbmx5fG50aHwuLi4pXG5cdFx0XHRcdDIgd2hhdCAoY2hpbGR8b2YtdHlwZSlcblx0XHRcdFx0MyBhcmd1bWVudCAoZXZlbnxvZGR8XFxkKnxcXGQqbihbKy1dXFxkKyk/fC4uLilcblx0XHRcdFx0NCB4bi1jb21wb25lbnQgb2YgeG4reSBhcmd1bWVudCAoWystXT9cXGQqbnwpXG5cdFx0XHRcdDUgc2lnbiBvZiB4bi1jb21wb25lbnRcblx0XHRcdFx0NiB4IG9mIHhuLWNvbXBvbmVudFxuXHRcdFx0XHQ3IHNpZ24gb2YgeS1jb21wb25lbnRcblx0XHRcdFx0OCB5IG9mIHktY29tcG9uZW50XG5cdFx0XHQqL1xuXHRcdFx0bWF0Y2hbIDEgXSA9IG1hdGNoWyAxIF0udG9Mb3dlckNhc2UoKTtcblxuXHRcdFx0aWYgKCBtYXRjaFsgMSBdLnNsaWNlKCAwLCAzICkgPT09IFwibnRoXCIgKSB7XG5cblx0XHRcdFx0Ly8gbnRoLSogcmVxdWlyZXMgYXJndW1lbnRcblx0XHRcdFx0aWYgKCAhbWF0Y2hbIDMgXSApIHtcblx0XHRcdFx0XHRTaXp6bGUuZXJyb3IoIG1hdGNoWyAwIF0gKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIG51bWVyaWMgeCBhbmQgeSBwYXJhbWV0ZXJzIGZvciBFeHByLmZpbHRlci5DSElMRFxuXHRcdFx0XHQvLyByZW1lbWJlciB0aGF0IGZhbHNlL3RydWUgY2FzdCByZXNwZWN0aXZlbHkgdG8gMC8xXG5cdFx0XHRcdG1hdGNoWyA0IF0gPSArKCBtYXRjaFsgNCBdID9cblx0XHRcdFx0XHRtYXRjaFsgNSBdICsgKCBtYXRjaFsgNiBdIHx8IDEgKSA6XG5cdFx0XHRcdFx0MiAqICggbWF0Y2hbIDMgXSA9PT0gXCJldmVuXCIgfHwgbWF0Y2hbIDMgXSA9PT0gXCJvZGRcIiApICk7XG5cdFx0XHRcdG1hdGNoWyA1IF0gPSArKCAoIG1hdGNoWyA3IF0gKyBtYXRjaFsgOCBdICkgfHwgbWF0Y2hbIDMgXSA9PT0gXCJvZGRcIiApO1xuXG5cdFx0XHRcdC8vIG90aGVyIHR5cGVzIHByb2hpYml0IGFyZ3VtZW50c1xuXHRcdFx0fSBlbHNlIGlmICggbWF0Y2hbIDMgXSApIHtcblx0XHRcdFx0U2l6emxlLmVycm9yKCBtYXRjaFsgMCBdICk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBtYXRjaDtcblx0XHR9LFxuXG5cdFx0XCJQU0VVRE9cIjogZnVuY3Rpb24oIG1hdGNoICkge1xuXHRcdFx0dmFyIGV4Y2Vzcyxcblx0XHRcdFx0dW5xdW90ZWQgPSAhbWF0Y2hbIDYgXSAmJiBtYXRjaFsgMiBdO1xuXG5cdFx0XHRpZiAoIG1hdGNoRXhwclsgXCJDSElMRFwiIF0udGVzdCggbWF0Y2hbIDAgXSApICkge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQWNjZXB0IHF1b3RlZCBhcmd1bWVudHMgYXMtaXNcblx0XHRcdGlmICggbWF0Y2hbIDMgXSApIHtcblx0XHRcdFx0bWF0Y2hbIDIgXSA9IG1hdGNoWyA0IF0gfHwgbWF0Y2hbIDUgXSB8fCBcIlwiO1xuXG5cdFx0XHQvLyBTdHJpcCBleGNlc3MgY2hhcmFjdGVycyBmcm9tIHVucXVvdGVkIGFyZ3VtZW50c1xuXHRcdFx0fSBlbHNlIGlmICggdW5xdW90ZWQgJiYgcnBzZXVkby50ZXN0KCB1bnF1b3RlZCApICYmXG5cblx0XHRcdFx0Ly8gR2V0IGV4Y2VzcyBmcm9tIHRva2VuaXplIChyZWN1cnNpdmVseSlcblx0XHRcdFx0KCBleGNlc3MgPSB0b2tlbml6ZSggdW5xdW90ZWQsIHRydWUgKSApICYmXG5cblx0XHRcdFx0Ly8gYWR2YW5jZSB0byB0aGUgbmV4dCBjbG9zaW5nIHBhcmVudGhlc2lzXG5cdFx0XHRcdCggZXhjZXNzID0gdW5xdW90ZWQuaW5kZXhPZiggXCIpXCIsIHVucXVvdGVkLmxlbmd0aCAtIGV4Y2VzcyApIC0gdW5xdW90ZWQubGVuZ3RoICkgKSB7XG5cblx0XHRcdFx0Ly8gZXhjZXNzIGlzIGEgbmVnYXRpdmUgaW5kZXhcblx0XHRcdFx0bWF0Y2hbIDAgXSA9IG1hdGNoWyAwIF0uc2xpY2UoIDAsIGV4Y2VzcyApO1xuXHRcdFx0XHRtYXRjaFsgMiBdID0gdW5xdW90ZWQuc2xpY2UoIDAsIGV4Y2VzcyApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBSZXR1cm4gb25seSBjYXB0dXJlcyBuZWVkZWQgYnkgdGhlIHBzZXVkbyBmaWx0ZXIgbWV0aG9kICh0eXBlIGFuZCBhcmd1bWVudClcblx0XHRcdHJldHVybiBtYXRjaC5zbGljZSggMCwgMyApO1xuXHRcdH1cblx0fSxcblxuXHRmaWx0ZXI6IHtcblxuXHRcdFwiVEFHXCI6IGZ1bmN0aW9uKCBub2RlTmFtZVNlbGVjdG9yICkge1xuXHRcdFx0dmFyIG5vZGVOYW1lID0gbm9kZU5hbWVTZWxlY3Rvci5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRyZXR1cm4gbm9kZU5hbWVTZWxlY3RvciA9PT0gXCIqXCIgP1xuXHRcdFx0XHRmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSA6XG5cdFx0XHRcdGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHRcdHJldHVybiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gbm9kZU5hbWU7XG5cdFx0XHRcdH07XG5cdFx0fSxcblxuXHRcdFwiQ0xBU1NcIjogZnVuY3Rpb24oIGNsYXNzTmFtZSApIHtcblx0XHRcdHZhciBwYXR0ZXJuID0gY2xhc3NDYWNoZVsgY2xhc3NOYW1lICsgXCIgXCIgXTtcblxuXHRcdFx0cmV0dXJuIHBhdHRlcm4gfHxcblx0XHRcdFx0KCBwYXR0ZXJuID0gbmV3IFJlZ0V4cCggXCIoXnxcIiArIHdoaXRlc3BhY2UgK1xuXHRcdFx0XHRcdFwiKVwiICsgY2xhc3NOYW1lICsgXCIoXCIgKyB3aGl0ZXNwYWNlICsgXCJ8JClcIiApICkgJiYgY2xhc3NDYWNoZShcblx0XHRcdFx0XHRcdGNsYXNzTmFtZSwgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBwYXR0ZXJuLnRlc3QoXG5cdFx0XHRcdFx0XHRcdFx0dHlwZW9mIGVsZW0uY2xhc3NOYW1lID09PSBcInN0cmluZ1wiICYmIGVsZW0uY2xhc3NOYW1lIHx8XG5cdFx0XHRcdFx0XHRcdFx0dHlwZW9mIGVsZW0uZ2V0QXR0cmlidXRlICE9PSBcInVuZGVmaW5lZFwiICYmXG5cdFx0XHRcdFx0XHRcdFx0XHRlbGVtLmdldEF0dHJpYnV0ZSggXCJjbGFzc1wiICkgfHxcblx0XHRcdFx0XHRcdFx0XHRcIlwiXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gKTtcblx0XHR9LFxuXG5cdFx0XCJBVFRSXCI6IGZ1bmN0aW9uKCBuYW1lLCBvcGVyYXRvciwgY2hlY2sgKSB7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHZhciByZXN1bHQgPSBTaXp6bGUuYXR0ciggZWxlbSwgbmFtZSApO1xuXG5cdFx0XHRcdGlmICggcmVzdWx0ID09IG51bGwgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9wZXJhdG9yID09PSBcIiE9XCI7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCAhb3BlcmF0b3IgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXN1bHQgKz0gXCJcIjtcblxuXHRcdFx0XHQvKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG5cblx0XHRcdFx0cmV0dXJuIG9wZXJhdG9yID09PSBcIj1cIiA/IHJlc3VsdCA9PT0gY2hlY2sgOlxuXHRcdFx0XHRcdG9wZXJhdG9yID09PSBcIiE9XCIgPyByZXN1bHQgIT09IGNoZWNrIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCJePVwiID8gY2hlY2sgJiYgcmVzdWx0LmluZGV4T2YoIGNoZWNrICkgPT09IDAgOlxuXHRcdFx0XHRcdG9wZXJhdG9yID09PSBcIio9XCIgPyBjaGVjayAmJiByZXN1bHQuaW5kZXhPZiggY2hlY2sgKSA+IC0xIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCIkPVwiID8gY2hlY2sgJiYgcmVzdWx0LnNsaWNlKCAtY2hlY2subGVuZ3RoICkgPT09IGNoZWNrIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCJ+PVwiID8gKCBcIiBcIiArIHJlc3VsdC5yZXBsYWNlKCByd2hpdGVzcGFjZSwgXCIgXCIgKSArIFwiIFwiICkuaW5kZXhPZiggY2hlY2sgKSA+IC0xIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCJ8PVwiID8gcmVzdWx0ID09PSBjaGVjayB8fCByZXN1bHQuc2xpY2UoIDAsIGNoZWNrLmxlbmd0aCArIDEgKSA9PT0gY2hlY2sgKyBcIi1cIiA6XG5cdFx0XHRcdFx0ZmFsc2U7XG5cdFx0XHRcdC8qIGVzbGludC1lbmFibGUgbWF4LWxlbiAqL1xuXG5cdFx0XHR9O1xuXHRcdH0sXG5cblx0XHRcIkNISUxEXCI6IGZ1bmN0aW9uKCB0eXBlLCB3aGF0LCBfYXJndW1lbnQsIGZpcnN0LCBsYXN0ICkge1xuXHRcdFx0dmFyIHNpbXBsZSA9IHR5cGUuc2xpY2UoIDAsIDMgKSAhPT0gXCJudGhcIixcblx0XHRcdFx0Zm9yd2FyZCA9IHR5cGUuc2xpY2UoIC00ICkgIT09IFwibGFzdFwiLFxuXHRcdFx0XHRvZlR5cGUgPSB3aGF0ID09PSBcIm9mLXR5cGVcIjtcblxuXHRcdFx0cmV0dXJuIGZpcnN0ID09PSAxICYmIGxhc3QgPT09IDAgP1xuXG5cdFx0XHRcdC8vIFNob3J0Y3V0IGZvciA6bnRoLSoobilcblx0XHRcdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0cmV0dXJuICEhZWxlbS5wYXJlbnROb2RlO1xuXHRcdFx0XHR9IDpcblxuXHRcdFx0XHRmdW5jdGlvbiggZWxlbSwgX2NvbnRleHQsIHhtbCApIHtcblx0XHRcdFx0XHR2YXIgY2FjaGUsIHVuaXF1ZUNhY2hlLCBvdXRlckNhY2hlLCBub2RlLCBub2RlSW5kZXgsIHN0YXJ0LFxuXHRcdFx0XHRcdFx0ZGlyID0gc2ltcGxlICE9PSBmb3J3YXJkID8gXCJuZXh0U2libGluZ1wiIDogXCJwcmV2aW91c1NpYmxpbmdcIixcblx0XHRcdFx0XHRcdHBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZSxcblx0XHRcdFx0XHRcdG5hbWUgPSBvZlR5cGUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLFxuXHRcdFx0XHRcdFx0dXNlQ2FjaGUgPSAheG1sICYmICFvZlR5cGUsXG5cdFx0XHRcdFx0XHRkaWZmID0gZmFsc2U7XG5cblx0XHRcdFx0XHRpZiAoIHBhcmVudCApIHtcblxuXHRcdFx0XHRcdFx0Ly8gOihmaXJzdHxsYXN0fG9ubHkpLShjaGlsZHxvZi10eXBlKVxuXHRcdFx0XHRcdFx0aWYgKCBzaW1wbGUgKSB7XG5cdFx0XHRcdFx0XHRcdHdoaWxlICggZGlyICkge1xuXHRcdFx0XHRcdFx0XHRcdG5vZGUgPSBlbGVtO1xuXHRcdFx0XHRcdFx0XHRcdHdoaWxlICggKCBub2RlID0gbm9kZVsgZGlyIF0gKSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmICggb2ZUeXBlID9cblx0XHRcdFx0XHRcdFx0XHRcdFx0bm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBuYW1lIDpcblx0XHRcdFx0XHRcdFx0XHRcdFx0bm9kZS5ub2RlVHlwZSA9PT0gMSApIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gUmV2ZXJzZSBkaXJlY3Rpb24gZm9yIDpvbmx5LSogKGlmIHdlIGhhdmVuJ3QgeWV0IGRvbmUgc28pXG5cdFx0XHRcdFx0XHRcdFx0c3RhcnQgPSBkaXIgPSB0eXBlID09PSBcIm9ubHlcIiAmJiAhc3RhcnQgJiYgXCJuZXh0U2libGluZ1wiO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRzdGFydCA9IFsgZm9yd2FyZCA/IHBhcmVudC5maXJzdENoaWxkIDogcGFyZW50Lmxhc3RDaGlsZCBdO1xuXG5cdFx0XHRcdFx0XHQvLyBub24teG1sIDpudGgtY2hpbGQoLi4uKSBzdG9yZXMgY2FjaGUgZGF0YSBvbiBgcGFyZW50YFxuXHRcdFx0XHRcdFx0aWYgKCBmb3J3YXJkICYmIHVzZUNhY2hlICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIFNlZWsgYGVsZW1gIGZyb20gYSBwcmV2aW91c2x5LWNhY2hlZCBpbmRleFxuXG5cdFx0XHRcdFx0XHRcdC8vIC4uLmluIGEgZ3ppcC1mcmllbmRseSB3YXlcblx0XHRcdFx0XHRcdFx0bm9kZSA9IHBhcmVudDtcblx0XHRcdFx0XHRcdFx0b3V0ZXJDYWNoZSA9IG5vZGVbIGV4cGFuZG8gXSB8fCAoIG5vZGVbIGV4cGFuZG8gXSA9IHt9ICk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPDkgb25seVxuXHRcdFx0XHRcdFx0XHQvLyBEZWZlbmQgYWdhaW5zdCBjbG9uZWQgYXR0cm9wZXJ0aWVzIChqUXVlcnkgZ2gtMTcwOSlcblx0XHRcdFx0XHRcdFx0dW5pcXVlQ2FjaGUgPSBvdXRlckNhY2hlWyBub2RlLnVuaXF1ZUlEIF0gfHxcblx0XHRcdFx0XHRcdFx0XHQoIG91dGVyQ2FjaGVbIG5vZGUudW5pcXVlSUQgXSA9IHt9ICk7XG5cblx0XHRcdFx0XHRcdFx0Y2FjaGUgPSB1bmlxdWVDYWNoZVsgdHlwZSBdIHx8IFtdO1xuXHRcdFx0XHRcdFx0XHRub2RlSW5kZXggPSBjYWNoZVsgMCBdID09PSBkaXJydW5zICYmIGNhY2hlWyAxIF07XG5cdFx0XHRcdFx0XHRcdGRpZmYgPSBub2RlSW5kZXggJiYgY2FjaGVbIDIgXTtcblx0XHRcdFx0XHRcdFx0bm9kZSA9IG5vZGVJbmRleCAmJiBwYXJlbnQuY2hpbGROb2Rlc1sgbm9kZUluZGV4IF07XG5cblx0XHRcdFx0XHRcdFx0d2hpbGUgKCAoIG5vZGUgPSArK25vZGVJbmRleCAmJiBub2RlICYmIG5vZGVbIGRpciBdIHx8XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBGYWxsYmFjayB0byBzZWVraW5nIGBlbGVtYCBmcm9tIHRoZSBzdGFydFxuXHRcdFx0XHRcdFx0XHRcdCggZGlmZiA9IG5vZGVJbmRleCA9IDAgKSB8fCBzdGFydC5wb3AoKSApICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gV2hlbiBmb3VuZCwgY2FjaGUgaW5kZXhlcyBvbiBgcGFyZW50YCBhbmQgYnJlYWtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgJiYgKytkaWZmICYmIG5vZGUgPT09IGVsZW0gKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHR1bmlxdWVDYWNoZVsgdHlwZSBdID0gWyBkaXJydW5zLCBub2RlSW5kZXgsIGRpZmYgXTtcblx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdC8vIFVzZSBwcmV2aW91c2x5LWNhY2hlZCBlbGVtZW50IGluZGV4IGlmIGF2YWlsYWJsZVxuXHRcdFx0XHRcdFx0XHRpZiAoIHVzZUNhY2hlICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gLi4uaW4gYSBnemlwLWZyaWVuZGx5IHdheVxuXHRcdFx0XHRcdFx0XHRcdG5vZGUgPSBlbGVtO1xuXHRcdFx0XHRcdFx0XHRcdG91dGVyQ2FjaGUgPSBub2RlWyBleHBhbmRvIF0gfHwgKCBub2RlWyBleHBhbmRvIF0gPSB7fSApO1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPDkgb25seVxuXHRcdFx0XHRcdFx0XHRcdC8vIERlZmVuZCBhZ2FpbnN0IGNsb25lZCBhdHRyb3BlcnRpZXMgKGpRdWVyeSBnaC0xNzA5KVxuXHRcdFx0XHRcdFx0XHRcdHVuaXF1ZUNhY2hlID0gb3V0ZXJDYWNoZVsgbm9kZS51bmlxdWVJRCBdIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHQoIG91dGVyQ2FjaGVbIG5vZGUudW5pcXVlSUQgXSA9IHt9ICk7XG5cblx0XHRcdFx0XHRcdFx0XHRjYWNoZSA9IHVuaXF1ZUNhY2hlWyB0eXBlIF0gfHwgW107XG5cdFx0XHRcdFx0XHRcdFx0bm9kZUluZGV4ID0gY2FjaGVbIDAgXSA9PT0gZGlycnVucyAmJiBjYWNoZVsgMSBdO1xuXHRcdFx0XHRcdFx0XHRcdGRpZmYgPSBub2RlSW5kZXg7XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHQvLyB4bWwgOm50aC1jaGlsZCguLi4pXG5cdFx0XHRcdFx0XHRcdC8vIG9yIDpudGgtbGFzdC1jaGlsZCguLi4pIG9yIDpudGgoLWxhc3QpPy1vZi10eXBlKC4uLilcblx0XHRcdFx0XHRcdFx0aWYgKCBkaWZmID09PSBmYWxzZSApIHtcblxuXHRcdFx0XHRcdFx0XHRcdC8vIFVzZSB0aGUgc2FtZSBsb29wIGFzIGFib3ZlIHRvIHNlZWsgYGVsZW1gIGZyb20gdGhlIHN0YXJ0XG5cdFx0XHRcdFx0XHRcdFx0d2hpbGUgKCAoIG5vZGUgPSArK25vZGVJbmRleCAmJiBub2RlICYmIG5vZGVbIGRpciBdIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHQoIGRpZmYgPSBub2RlSW5kZXggPSAwICkgfHwgc3RhcnQucG9wKCkgKSApIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCAoIG9mVHlwZSA/XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gbmFtZSA6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG5vZGUubm9kZVR5cGUgPT09IDEgKSAmJlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQrK2RpZmYgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gQ2FjaGUgdGhlIGluZGV4IG9mIGVhY2ggZW5jb3VudGVyZWQgZWxlbWVudFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIHVzZUNhY2hlICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG91dGVyQ2FjaGUgPSBub2RlWyBleHBhbmRvIF0gfHxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCggbm9kZVsgZXhwYW5kbyBdID0ge30gKTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw5IG9ubHlcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBEZWZlbmQgYWdhaW5zdCBjbG9uZWQgYXR0cm9wZXJ0aWVzIChqUXVlcnkgZ2gtMTcwOSlcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR1bmlxdWVDYWNoZSA9IG91dGVyQ2FjaGVbIG5vZGUudW5pcXVlSUQgXSB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KCBvdXRlckNhY2hlWyBub2RlLnVuaXF1ZUlEIF0gPSB7fSApO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dW5pcXVlQ2FjaGVbIHR5cGUgXSA9IFsgZGlycnVucywgZGlmZiBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBub2RlID09PSBlbGVtICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIEluY29ycG9yYXRlIHRoZSBvZmZzZXQsIHRoZW4gY2hlY2sgYWdhaW5zdCBjeWNsZSBzaXplXG5cdFx0XHRcdFx0XHRkaWZmIC09IGxhc3Q7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZGlmZiA9PT0gZmlyc3QgfHwgKCBkaWZmICUgZmlyc3QgPT09IDAgJiYgZGlmZiAvIGZpcnN0ID49IDAgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cdFx0fSxcblxuXHRcdFwiUFNFVURPXCI6IGZ1bmN0aW9uKCBwc2V1ZG8sIGFyZ3VtZW50ICkge1xuXG5cdFx0XHQvLyBwc2V1ZG8tY2xhc3MgbmFtZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmVcblx0XHRcdC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL3NlbGVjdG9ycy8jcHNldWRvLWNsYXNzZXNcblx0XHRcdC8vIFByaW9yaXRpemUgYnkgY2FzZSBzZW5zaXRpdml0eSBpbiBjYXNlIGN1c3RvbSBwc2V1ZG9zIGFyZSBhZGRlZCB3aXRoIHVwcGVyY2FzZSBsZXR0ZXJzXG5cdFx0XHQvLyBSZW1lbWJlciB0aGF0IHNldEZpbHRlcnMgaW5oZXJpdHMgZnJvbSBwc2V1ZG9zXG5cdFx0XHR2YXIgYXJncyxcblx0XHRcdFx0Zm4gPSBFeHByLnBzZXVkb3NbIHBzZXVkbyBdIHx8IEV4cHIuc2V0RmlsdGVyc1sgcHNldWRvLnRvTG93ZXJDYXNlKCkgXSB8fFxuXHRcdFx0XHRcdFNpenpsZS5lcnJvciggXCJ1bnN1cHBvcnRlZCBwc2V1ZG86IFwiICsgcHNldWRvICk7XG5cblx0XHRcdC8vIFRoZSB1c2VyIG1heSB1c2UgY3JlYXRlUHNldWRvIHRvIGluZGljYXRlIHRoYXRcblx0XHRcdC8vIGFyZ3VtZW50cyBhcmUgbmVlZGVkIHRvIGNyZWF0ZSB0aGUgZmlsdGVyIGZ1bmN0aW9uXG5cdFx0XHQvLyBqdXN0IGFzIFNpenpsZSBkb2VzXG5cdFx0XHRpZiAoIGZuWyBleHBhbmRvIF0gKSB7XG5cdFx0XHRcdHJldHVybiBmbiggYXJndW1lbnQgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQnV0IG1haW50YWluIHN1cHBvcnQgZm9yIG9sZCBzaWduYXR1cmVzXG5cdFx0XHRpZiAoIGZuLmxlbmd0aCA+IDEgKSB7XG5cdFx0XHRcdGFyZ3MgPSBbIHBzZXVkbywgcHNldWRvLCBcIlwiLCBhcmd1bWVudCBdO1xuXHRcdFx0XHRyZXR1cm4gRXhwci5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KCBwc2V1ZG8udG9Mb3dlckNhc2UoKSApID9cblx0XHRcdFx0XHRtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBzZWVkLCBtYXRjaGVzICkge1xuXHRcdFx0XHRcdFx0dmFyIGlkeCxcblx0XHRcdFx0XHRcdFx0bWF0Y2hlZCA9IGZuKCBzZWVkLCBhcmd1bWVudCApLFxuXHRcdFx0XHRcdFx0XHRpID0gbWF0Y2hlZC5sZW5ndGg7XG5cdFx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRcdFx0aWR4ID0gaW5kZXhPZiggc2VlZCwgbWF0Y2hlZFsgaSBdICk7XG5cdFx0XHRcdFx0XHRcdHNlZWRbIGlkeCBdID0gISggbWF0Y2hlc1sgaWR4IF0gPSBtYXRjaGVkWyBpIF0gKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9ICkgOlxuXHRcdFx0XHRcdGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZuKCBlbGVtLCAwLCBhcmdzICk7XG5cdFx0XHRcdFx0fTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGZuO1xuXHRcdH1cblx0fSxcblxuXHRwc2V1ZG9zOiB7XG5cblx0XHQvLyBQb3RlbnRpYWxseSBjb21wbGV4IHBzZXVkb3Ncblx0XHRcIm5vdFwiOiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblxuXHRcdFx0Ly8gVHJpbSB0aGUgc2VsZWN0b3IgcGFzc2VkIHRvIGNvbXBpbGVcblx0XHRcdC8vIHRvIGF2b2lkIHRyZWF0aW5nIGxlYWRpbmcgYW5kIHRyYWlsaW5nXG5cdFx0XHQvLyBzcGFjZXMgYXMgY29tYmluYXRvcnNcblx0XHRcdHZhciBpbnB1dCA9IFtdLFxuXHRcdFx0XHRyZXN1bHRzID0gW10sXG5cdFx0XHRcdG1hdGNoZXIgPSBjb21waWxlKCBzZWxlY3Rvci5yZXBsYWNlKCBydHJpbSwgXCIkMVwiICkgKTtcblxuXHRcdFx0cmV0dXJuIG1hdGNoZXJbIGV4cGFuZG8gXSA/XG5cdFx0XHRcdG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIHNlZWQsIG1hdGNoZXMsIF9jb250ZXh0LCB4bWwgKSB7XG5cdFx0XHRcdFx0dmFyIGVsZW0sXG5cdFx0XHRcdFx0XHR1bm1hdGNoZWQgPSBtYXRjaGVyKCBzZWVkLCBudWxsLCB4bWwsIFtdICksXG5cdFx0XHRcdFx0XHRpID0gc2VlZC5sZW5ndGg7XG5cblx0XHRcdFx0XHQvLyBNYXRjaCBlbGVtZW50cyB1bm1hdGNoZWQgYnkgYG1hdGNoZXJgXG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRpZiAoICggZWxlbSA9IHVubWF0Y2hlZFsgaSBdICkgKSB7XG5cdFx0XHRcdFx0XHRcdHNlZWRbIGkgXSA9ICEoIG1hdGNoZXNbIGkgXSA9IGVsZW0gKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gKSA6XG5cdFx0XHRcdGZ1bmN0aW9uKCBlbGVtLCBfY29udGV4dCwgeG1sICkge1xuXHRcdFx0XHRcdGlucHV0WyAwIF0gPSBlbGVtO1xuXHRcdFx0XHRcdG1hdGNoZXIoIGlucHV0LCBudWxsLCB4bWwsIHJlc3VsdHMgKTtcblxuXHRcdFx0XHRcdC8vIERvbid0IGtlZXAgdGhlIGVsZW1lbnQgKGlzc3VlICMyOTkpXG5cdFx0XHRcdFx0aW5wdXRbIDAgXSA9IG51bGw7XG5cdFx0XHRcdFx0cmV0dXJuICFyZXN1bHRzLnBvcCgpO1xuXHRcdFx0XHR9O1xuXHRcdH0gKSxcblxuXHRcdFwiaGFzXCI6IG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHRyZXR1cm4gU2l6emxlKCBzZWxlY3RvciwgZWxlbSApLmxlbmd0aCA+IDA7XG5cdFx0XHR9O1xuXHRcdH0gKSxcblxuXHRcdFwiY29udGFpbnNcIjogbWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggdGV4dCApIHtcblx0XHRcdHRleHQgPSB0ZXh0LnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiAoIGVsZW0udGV4dENvbnRlbnQgfHwgZ2V0VGV4dCggZWxlbSApICkuaW5kZXhPZiggdGV4dCApID4gLTE7XG5cdFx0XHR9O1xuXHRcdH0gKSxcblxuXHRcdC8vIFwiV2hldGhlciBhbiBlbGVtZW50IGlzIHJlcHJlc2VudGVkIGJ5IGEgOmxhbmcoKSBzZWxlY3RvclxuXHRcdC8vIGlzIGJhc2VkIHNvbGVseSBvbiB0aGUgZWxlbWVudCdzIGxhbmd1YWdlIHZhbHVlXG5cdFx0Ly8gYmVpbmcgZXF1YWwgdG8gdGhlIGlkZW50aWZpZXIgQyxcblx0XHQvLyBvciBiZWdpbm5pbmcgd2l0aCB0aGUgaWRlbnRpZmllciBDIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IFwiLVwiLlxuXHRcdC8vIFRoZSBtYXRjaGluZyBvZiBDIGFnYWluc3QgdGhlIGVsZW1lbnQncyBsYW5ndWFnZSB2YWx1ZSBpcyBwZXJmb3JtZWQgY2FzZS1pbnNlbnNpdGl2ZWx5LlxuXHRcdC8vIFRoZSBpZGVudGlmaWVyIEMgZG9lcyBub3QgaGF2ZSB0byBiZSBhIHZhbGlkIGxhbmd1YWdlIG5hbWUuXCJcblx0XHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI2xhbmctcHNldWRvXG5cdFx0XCJsYW5nXCI6IG1hcmtGdW5jdGlvbiggZnVuY3Rpb24oIGxhbmcgKSB7XG5cblx0XHRcdC8vIGxhbmcgdmFsdWUgbXVzdCBiZSBhIHZhbGlkIGlkZW50aWZpZXJcblx0XHRcdGlmICggIXJpZGVudGlmaWVyLnRlc3QoIGxhbmcgfHwgXCJcIiApICkge1xuXHRcdFx0XHRTaXp6bGUuZXJyb3IoIFwidW5zdXBwb3J0ZWQgbGFuZzogXCIgKyBsYW5nICk7XG5cdFx0XHR9XG5cdFx0XHRsYW5nID0gbGFuZy5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHZhciBlbGVtTGFuZztcblx0XHRcdFx0ZG8ge1xuXHRcdFx0XHRcdGlmICggKCBlbGVtTGFuZyA9IGRvY3VtZW50SXNIVE1MID9cblx0XHRcdFx0XHRcdGVsZW0ubGFuZyA6XG5cdFx0XHRcdFx0XHRlbGVtLmdldEF0dHJpYnV0ZSggXCJ4bWw6bGFuZ1wiICkgfHwgZWxlbS5nZXRBdHRyaWJ1dGUoIFwibGFuZ1wiICkgKSApIHtcblxuXHRcdFx0XHRcdFx0ZWxlbUxhbmcgPSBlbGVtTGFuZy50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIGVsZW1MYW5nID09PSBsYW5nIHx8IGVsZW1MYW5nLmluZGV4T2YoIGxhbmcgKyBcIi1cIiApID09PSAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSB3aGlsZSAoICggZWxlbSA9IGVsZW0ucGFyZW50Tm9kZSApICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKTtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fTtcblx0XHR9ICksXG5cblx0XHQvLyBNaXNjZWxsYW5lb3VzXG5cdFx0XCJ0YXJnZXRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgaGFzaCA9IHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaDtcblx0XHRcdHJldHVybiBoYXNoICYmIGhhc2guc2xpY2UoIDEgKSA9PT0gZWxlbS5pZDtcblx0XHR9LFxuXG5cdFx0XCJyb290XCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0gPT09IGRvY0VsZW07XG5cdFx0fSxcblxuXHRcdFwiZm9jdXNcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbSA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJlxuXHRcdFx0XHQoICFkb2N1bWVudC5oYXNGb2N1cyB8fCBkb2N1bWVudC5oYXNGb2N1cygpICkgJiZcblx0XHRcdFx0ISEoIGVsZW0udHlwZSB8fCBlbGVtLmhyZWYgfHwgfmVsZW0udGFiSW5kZXggKTtcblx0XHR9LFxuXG5cdFx0Ly8gQm9vbGVhbiBwcm9wZXJ0aWVzXG5cdFx0XCJlbmFibGVkXCI6IGNyZWF0ZURpc2FibGVkUHNldWRvKCBmYWxzZSApLFxuXHRcdFwiZGlzYWJsZWRcIjogY3JlYXRlRGlzYWJsZWRQc2V1ZG8oIHRydWUgKSxcblxuXHRcdFwiY2hlY2tlZFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdFx0Ly8gSW4gQ1NTMywgOmNoZWNrZWQgc2hvdWxkIHJldHVybiBib3RoIGNoZWNrZWQgYW5kIHNlbGVjdGVkIGVsZW1lbnRzXG5cdFx0XHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDExL1JFQy1jc3MzLXNlbGVjdG9ycy0yMDExMDkyOS8jY2hlY2tlZFxuXHRcdFx0dmFyIG5vZGVOYW1lID0gZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuICggbm9kZU5hbWUgPT09IFwiaW5wdXRcIiAmJiAhIWVsZW0uY2hlY2tlZCApIHx8XG5cdFx0XHRcdCggbm9kZU5hbWUgPT09IFwib3B0aW9uXCIgJiYgISFlbGVtLnNlbGVjdGVkICk7XG5cdFx0fSxcblxuXHRcdFwic2VsZWN0ZWRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdC8vIEFjY2Vzc2luZyB0aGlzIHByb3BlcnR5IG1ha2VzIHNlbGVjdGVkLWJ5LWRlZmF1bHRcblx0XHRcdC8vIG9wdGlvbnMgaW4gU2FmYXJpIHdvcmsgcHJvcGVybHlcblx0XHRcdGlmICggZWxlbS5wYXJlbnROb2RlICkge1xuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLWV4cHJlc3Npb25zXG5cdFx0XHRcdGVsZW0ucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZWxlbS5zZWxlY3RlZCA9PT0gdHJ1ZTtcblx0XHR9LFxuXG5cdFx0Ly8gQ29udGVudHNcblx0XHRcImVtcHR5XCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0XHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI2VtcHR5LXBzZXVkb1xuXHRcdFx0Ly8gOmVtcHR5IGlzIG5lZ2F0ZWQgYnkgZWxlbWVudCAoMSkgb3IgY29udGVudCBub2RlcyAodGV4dDogMzsgY2RhdGE6IDQ7IGVudGl0eSByZWY6IDUpLFxuXHRcdFx0Ly8gICBidXQgbm90IGJ5IG90aGVycyAoY29tbWVudDogODsgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbjogNzsgZXRjLilcblx0XHRcdC8vIG5vZGVUeXBlIDwgNiB3b3JrcyBiZWNhdXNlIGF0dHJpYnV0ZXMgKDIpIGRvIG5vdCBhcHBlYXIgYXMgY2hpbGRyZW5cblx0XHRcdGZvciAoIGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7IGVsZW07IGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nICkge1xuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPCA2ICkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSxcblxuXHRcdFwicGFyZW50XCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuICFFeHByLnBzZXVkb3NbIFwiZW1wdHlcIiBdKCBlbGVtICk7XG5cdFx0fSxcblxuXHRcdC8vIEVsZW1lbnQvaW5wdXQgdHlwZXNcblx0XHRcImhlYWRlclwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiByaGVhZGVyLnRlc3QoIGVsZW0ubm9kZU5hbWUgKTtcblx0XHR9LFxuXG5cdFx0XCJpbnB1dFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiByaW5wdXRzLnRlc3QoIGVsZW0ubm9kZU5hbWUgKTtcblx0XHR9LFxuXG5cdFx0XCJidXR0b25cIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgbmFtZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRcdHJldHVybiBuYW1lID09PSBcImlucHV0XCIgJiYgZWxlbS50eXBlID09PSBcImJ1dHRvblwiIHx8IG5hbWUgPT09IFwiYnV0dG9uXCI7XG5cdFx0fSxcblxuXHRcdFwidGV4dFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHZhciBhdHRyO1xuXHRcdFx0cmV0dXJuIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gXCJpbnB1dFwiICYmXG5cdFx0XHRcdGVsZW0udHlwZSA9PT0gXCJ0ZXh0XCIgJiZcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRTw4XG5cdFx0XHRcdC8vIE5ldyBIVE1MNSBhdHRyaWJ1dGUgdmFsdWVzIChlLmcuLCBcInNlYXJjaFwiKSBhcHBlYXIgd2l0aCBlbGVtLnR5cGUgPT09IFwidGV4dFwiXG5cdFx0XHRcdCggKCBhdHRyID0gZWxlbS5nZXRBdHRyaWJ1dGUoIFwidHlwZVwiICkgKSA9PSBudWxsIHx8XG5cdFx0XHRcdFx0YXR0ci50b0xvd2VyQ2FzZSgpID09PSBcInRleHRcIiApO1xuXHRcdH0sXG5cblx0XHQvLyBQb3NpdGlvbi1pbi1jb2xsZWN0aW9uXG5cdFx0XCJmaXJzdFwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKCBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBbIDAgXTtcblx0XHR9ICksXG5cblx0XHRcImxhc3RcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZnVuY3Rpb24oIF9tYXRjaEluZGV4ZXMsIGxlbmd0aCApIHtcblx0XHRcdHJldHVybiBbIGxlbmd0aCAtIDEgXTtcblx0XHR9ICksXG5cblx0XHRcImVxXCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBfbWF0Y2hJbmRleGVzLCBsZW5ndGgsIGFyZ3VtZW50ICkge1xuXHRcdFx0cmV0dXJuIFsgYXJndW1lbnQgPCAwID8gYXJndW1lbnQgKyBsZW5ndGggOiBhcmd1bWVudCBdO1xuXHRcdH0gKSxcblxuXHRcdFwiZXZlblwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKCBmdW5jdGlvbiggbWF0Y2hJbmRleGVzLCBsZW5ndGggKSB7XG5cdFx0XHR2YXIgaSA9IDA7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkgKz0gMiApIHtcblx0XHRcdFx0bWF0Y2hJbmRleGVzLnB1c2goIGkgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBtYXRjaEluZGV4ZXM7XG5cdFx0fSApLFxuXG5cdFx0XCJvZGRcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoICkge1xuXHRcdFx0dmFyIGkgPSAxO1xuXHRcdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpICs9IDIgKSB7XG5cdFx0XHRcdG1hdGNoSW5kZXhlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbWF0Y2hJbmRleGVzO1xuXHRcdH0gKSxcblxuXHRcdFwibHRcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoLCBhcmd1bWVudCApIHtcblx0XHRcdHZhciBpID0gYXJndW1lbnQgPCAwID9cblx0XHRcdFx0YXJndW1lbnQgKyBsZW5ndGggOlxuXHRcdFx0XHRhcmd1bWVudCA+IGxlbmd0aCA/XG5cdFx0XHRcdFx0bGVuZ3RoIDpcblx0XHRcdFx0XHRhcmd1bWVudDtcblx0XHRcdGZvciAoIDsgLS1pID49IDA7ICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9ICksXG5cblx0XHRcImd0XCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oIGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCwgYXJndW1lbnQgKSB7XG5cdFx0XHR2YXIgaSA9IGFyZ3VtZW50IDwgMCA/IGFyZ3VtZW50ICsgbGVuZ3RoIDogYXJndW1lbnQ7XG5cdFx0XHRmb3IgKCA7ICsraSA8IGxlbmd0aDsgKSB7XG5cdFx0XHRcdG1hdGNoSW5kZXhlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbWF0Y2hJbmRleGVzO1xuXHRcdH0gKVxuXHR9XG59O1xuXG5FeHByLnBzZXVkb3NbIFwibnRoXCIgXSA9IEV4cHIucHNldWRvc1sgXCJlcVwiIF07XG5cbi8vIEFkZCBidXR0b24vaW5wdXQgdHlwZSBwc2V1ZG9zXG5mb3IgKCBpIGluIHsgcmFkaW86IHRydWUsIGNoZWNrYm94OiB0cnVlLCBmaWxlOiB0cnVlLCBwYXNzd29yZDogdHJ1ZSwgaW1hZ2U6IHRydWUgfSApIHtcblx0RXhwci5wc2V1ZG9zWyBpIF0gPSBjcmVhdGVJbnB1dFBzZXVkbyggaSApO1xufVxuZm9yICggaSBpbiB7IHN1Ym1pdDogdHJ1ZSwgcmVzZXQ6IHRydWUgfSApIHtcblx0RXhwci5wc2V1ZG9zWyBpIF0gPSBjcmVhdGVCdXR0b25Qc2V1ZG8oIGkgKTtcbn1cblxuLy8gRWFzeSBBUEkgZm9yIGNyZWF0aW5nIG5ldyBzZXRGaWx0ZXJzXG5mdW5jdGlvbiBzZXRGaWx0ZXJzKCkge31cbnNldEZpbHRlcnMucHJvdG90eXBlID0gRXhwci5maWx0ZXJzID0gRXhwci5wc2V1ZG9zO1xuRXhwci5zZXRGaWx0ZXJzID0gbmV3IHNldEZpbHRlcnMoKTtcblxudG9rZW5pemUgPSBTaXp6bGUudG9rZW5pemUgPSBmdW5jdGlvbiggc2VsZWN0b3IsIHBhcnNlT25seSApIHtcblx0dmFyIG1hdGNoZWQsIG1hdGNoLCB0b2tlbnMsIHR5cGUsXG5cdFx0c29GYXIsIGdyb3VwcywgcHJlRmlsdGVycyxcblx0XHRjYWNoZWQgPSB0b2tlbkNhY2hlWyBzZWxlY3RvciArIFwiIFwiIF07XG5cblx0aWYgKCBjYWNoZWQgKSB7XG5cdFx0cmV0dXJuIHBhcnNlT25seSA/IDAgOiBjYWNoZWQuc2xpY2UoIDAgKTtcblx0fVxuXG5cdHNvRmFyID0gc2VsZWN0b3I7XG5cdGdyb3VwcyA9IFtdO1xuXHRwcmVGaWx0ZXJzID0gRXhwci5wcmVGaWx0ZXI7XG5cblx0d2hpbGUgKCBzb0ZhciApIHtcblxuXHRcdC8vIENvbW1hIGFuZCBmaXJzdCBydW5cblx0XHRpZiAoICFtYXRjaGVkIHx8ICggbWF0Y2ggPSByY29tbWEuZXhlYyggc29GYXIgKSApICkge1xuXHRcdFx0aWYgKCBtYXRjaCApIHtcblxuXHRcdFx0XHQvLyBEb24ndCBjb25zdW1lIHRyYWlsaW5nIGNvbW1hcyBhcyB2YWxpZFxuXHRcdFx0XHRzb0ZhciA9IHNvRmFyLnNsaWNlKCBtYXRjaFsgMCBdLmxlbmd0aCApIHx8IHNvRmFyO1xuXHRcdFx0fVxuXHRcdFx0Z3JvdXBzLnB1c2goICggdG9rZW5zID0gW10gKSApO1xuXHRcdH1cblxuXHRcdG1hdGNoZWQgPSBmYWxzZTtcblxuXHRcdC8vIENvbWJpbmF0b3JzXG5cdFx0aWYgKCAoIG1hdGNoID0gcmNvbWJpbmF0b3JzLmV4ZWMoIHNvRmFyICkgKSApIHtcblx0XHRcdG1hdGNoZWQgPSBtYXRjaC5zaGlmdCgpO1xuXHRcdFx0dG9rZW5zLnB1c2goIHtcblx0XHRcdFx0dmFsdWU6IG1hdGNoZWQsXG5cblx0XHRcdFx0Ly8gQ2FzdCBkZXNjZW5kYW50IGNvbWJpbmF0b3JzIHRvIHNwYWNlXG5cdFx0XHRcdHR5cGU6IG1hdGNoWyAwIF0ucmVwbGFjZSggcnRyaW0sIFwiIFwiIClcblx0XHRcdH0gKTtcblx0XHRcdHNvRmFyID0gc29GYXIuc2xpY2UoIG1hdGNoZWQubGVuZ3RoICk7XG5cdFx0fVxuXG5cdFx0Ly8gRmlsdGVyc1xuXHRcdGZvciAoIHR5cGUgaW4gRXhwci5maWx0ZXIgKSB7XG5cdFx0XHRpZiAoICggbWF0Y2ggPSBtYXRjaEV4cHJbIHR5cGUgXS5leGVjKCBzb0ZhciApICkgJiYgKCAhcHJlRmlsdGVyc1sgdHlwZSBdIHx8XG5cdFx0XHRcdCggbWF0Y2ggPSBwcmVGaWx0ZXJzWyB0eXBlIF0oIG1hdGNoICkgKSApICkge1xuXHRcdFx0XHRtYXRjaGVkID0gbWF0Y2guc2hpZnQoKTtcblx0XHRcdFx0dG9rZW5zLnB1c2goIHtcblx0XHRcdFx0XHR2YWx1ZTogbWF0Y2hlZCxcblx0XHRcdFx0XHR0eXBlOiB0eXBlLFxuXHRcdFx0XHRcdG1hdGNoZXM6IG1hdGNoXG5cdFx0XHRcdH0gKTtcblx0XHRcdFx0c29GYXIgPSBzb0Zhci5zbGljZSggbWF0Y2hlZC5sZW5ndGggKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoICFtYXRjaGVkICkge1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGludmFsaWQgZXhjZXNzXG5cdC8vIGlmIHdlJ3JlIGp1c3QgcGFyc2luZ1xuXHQvLyBPdGhlcndpc2UsIHRocm93IGFuIGVycm9yIG9yIHJldHVybiB0b2tlbnNcblx0cmV0dXJuIHBhcnNlT25seSA/XG5cdFx0c29GYXIubGVuZ3RoIDpcblx0XHRzb0ZhciA/XG5cdFx0XHRTaXp6bGUuZXJyb3IoIHNlbGVjdG9yICkgOlxuXG5cdFx0XHQvLyBDYWNoZSB0aGUgdG9rZW5zXG5cdFx0XHR0b2tlbkNhY2hlKCBzZWxlY3RvciwgZ3JvdXBzICkuc2xpY2UoIDAgKTtcbn07XG5cbmZ1bmN0aW9uIHRvU2VsZWN0b3IoIHRva2VucyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGxlbiA9IHRva2Vucy5sZW5ndGgsXG5cdFx0c2VsZWN0b3IgPSBcIlwiO1xuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRzZWxlY3RvciArPSB0b2tlbnNbIGkgXS52YWx1ZTtcblx0fVxuXHRyZXR1cm4gc2VsZWN0b3I7XG59XG5cbmZ1bmN0aW9uIGFkZENvbWJpbmF0b3IoIG1hdGNoZXIsIGNvbWJpbmF0b3IsIGJhc2UgKSB7XG5cdHZhciBkaXIgPSBjb21iaW5hdG9yLmRpcixcblx0XHRza2lwID0gY29tYmluYXRvci5uZXh0LFxuXHRcdGtleSA9IHNraXAgfHwgZGlyLFxuXHRcdGNoZWNrTm9uRWxlbWVudHMgPSBiYXNlICYmIGtleSA9PT0gXCJwYXJlbnROb2RlXCIsXG5cdFx0ZG9uZU5hbWUgPSBkb25lKys7XG5cblx0cmV0dXJuIGNvbWJpbmF0b3IuZmlyc3QgP1xuXG5cdFx0Ly8gQ2hlY2sgYWdhaW5zdCBjbG9zZXN0IGFuY2VzdG9yL3ByZWNlZGluZyBlbGVtZW50XG5cdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHtcblx0XHRcdHdoaWxlICggKCBlbGVtID0gZWxlbVsgZGlyIF0gKSApIHtcblx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxIHx8IGNoZWNrTm9uRWxlbWVudHMgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG1hdGNoZXIoIGVsZW0sIGNvbnRleHQsIHhtbCApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fSA6XG5cblx0XHQvLyBDaGVjayBhZ2FpbnN0IGFsbCBhbmNlc3Rvci9wcmVjZWRpbmcgZWxlbWVudHNcblx0XHRmdW5jdGlvbiggZWxlbSwgY29udGV4dCwgeG1sICkge1xuXHRcdFx0dmFyIG9sZENhY2hlLCB1bmlxdWVDYWNoZSwgb3V0ZXJDYWNoZSxcblx0XHRcdFx0bmV3Q2FjaGUgPSBbIGRpcnJ1bnMsIGRvbmVOYW1lIF07XG5cblx0XHRcdC8vIFdlIGNhbid0IHNldCBhcmJpdHJhcnkgZGF0YSBvbiBYTUwgbm9kZXMsIHNvIHRoZXkgZG9uJ3QgYmVuZWZpdCBmcm9tIGNvbWJpbmF0b3IgY2FjaGluZ1xuXHRcdFx0aWYgKCB4bWwgKSB7XG5cdFx0XHRcdHdoaWxlICggKCBlbGVtID0gZWxlbVsgZGlyIF0gKSApIHtcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgY2hlY2tOb25FbGVtZW50cyApIHtcblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlciggZWxlbSwgY29udGV4dCwgeG1sICkgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0d2hpbGUgKCAoIGVsZW0gPSBlbGVtWyBkaXIgXSApICkge1xuXHRcdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBjaGVja05vbkVsZW1lbnRzICkge1xuXHRcdFx0XHRcdFx0b3V0ZXJDYWNoZSA9IGVsZW1bIGV4cGFuZG8gXSB8fCAoIGVsZW1bIGV4cGFuZG8gXSA9IHt9ICk7XG5cblx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw5IG9ubHlcblx0XHRcdFx0XHRcdC8vIERlZmVuZCBhZ2FpbnN0IGNsb25lZCBhdHRyb3BlcnRpZXMgKGpRdWVyeSBnaC0xNzA5KVxuXHRcdFx0XHRcdFx0dW5pcXVlQ2FjaGUgPSBvdXRlckNhY2hlWyBlbGVtLnVuaXF1ZUlEIF0gfHxcblx0XHRcdFx0XHRcdFx0KCBvdXRlckNhY2hlWyBlbGVtLnVuaXF1ZUlEIF0gPSB7fSApO1xuXG5cdFx0XHRcdFx0XHRpZiAoIHNraXAgJiYgc2tpcCA9PT0gZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICkge1xuXHRcdFx0XHRcdFx0XHRlbGVtID0gZWxlbVsgZGlyIF0gfHwgZWxlbTtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoICggb2xkQ2FjaGUgPSB1bmlxdWVDYWNoZVsga2V5IF0gKSAmJlxuXHRcdFx0XHRcdFx0XHRvbGRDYWNoZVsgMCBdID09PSBkaXJydW5zICYmIG9sZENhY2hlWyAxIF0gPT09IGRvbmVOYW1lICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIEFzc2lnbiB0byBuZXdDYWNoZSBzbyByZXN1bHRzIGJhY2stcHJvcGFnYXRlIHRvIHByZXZpb3VzIGVsZW1lbnRzXG5cdFx0XHRcdFx0XHRcdHJldHVybiAoIG5ld0NhY2hlWyAyIF0gPSBvbGRDYWNoZVsgMiBdICk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdC8vIFJldXNlIG5ld2NhY2hlIHNvIHJlc3VsdHMgYmFjay1wcm9wYWdhdGUgdG8gcHJldmlvdXMgZWxlbWVudHNcblx0XHRcdFx0XHRcdFx0dW5pcXVlQ2FjaGVbIGtleSBdID0gbmV3Q2FjaGU7XG5cblx0XHRcdFx0XHRcdFx0Ly8gQSBtYXRjaCBtZWFucyB3ZSdyZSBkb25lOyBhIGZhaWwgbWVhbnMgd2UgaGF2ZSB0byBrZWVwIGNoZWNraW5nXG5cdFx0XHRcdFx0XHRcdGlmICggKCBuZXdDYWNoZVsgMiBdID0gbWF0Y2hlciggZWxlbSwgY29udGV4dCwgeG1sICkgKSApIHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH07XG59XG5cbmZ1bmN0aW9uIGVsZW1lbnRNYXRjaGVyKCBtYXRjaGVycyApIHtcblx0cmV0dXJuIG1hdGNoZXJzLmxlbmd0aCA+IDEgP1xuXHRcdGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHR2YXIgaSA9IG1hdGNoZXJzLmxlbmd0aDtcblx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRpZiAoICFtYXRjaGVyc1sgaSBdKCBlbGVtLCBjb250ZXh0LCB4bWwgKSApIHtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH0gOlxuXHRcdG1hdGNoZXJzWyAwIF07XG59XG5cbmZ1bmN0aW9uIG11bHRpcGxlQ29udGV4dHMoIHNlbGVjdG9yLCBjb250ZXh0cywgcmVzdWx0cyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGxlbiA9IGNvbnRleHRzLmxlbmd0aDtcblx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0U2l6emxlKCBzZWxlY3RvciwgY29udGV4dHNbIGkgXSwgcmVzdWx0cyApO1xuXHR9XG5cdHJldHVybiByZXN1bHRzO1xufVxuXG5mdW5jdGlvbiBjb25kZW5zZSggdW5tYXRjaGVkLCBtYXAsIGZpbHRlciwgY29udGV4dCwgeG1sICkge1xuXHR2YXIgZWxlbSxcblx0XHRuZXdVbm1hdGNoZWQgPSBbXSxcblx0XHRpID0gMCxcblx0XHRsZW4gPSB1bm1hdGNoZWQubGVuZ3RoLFxuXHRcdG1hcHBlZCA9IG1hcCAhPSBudWxsO1xuXG5cdGZvciAoIDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdGlmICggKCBlbGVtID0gdW5tYXRjaGVkWyBpIF0gKSApIHtcblx0XHRcdGlmICggIWZpbHRlciB8fCBmaWx0ZXIoIGVsZW0sIGNvbnRleHQsIHhtbCApICkge1xuXHRcdFx0XHRuZXdVbm1hdGNoZWQucHVzaCggZWxlbSApO1xuXHRcdFx0XHRpZiAoIG1hcHBlZCApIHtcblx0XHRcdFx0XHRtYXAucHVzaCggaSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG5ld1VubWF0Y2hlZDtcbn1cblxuZnVuY3Rpb24gc2V0TWF0Y2hlciggcHJlRmlsdGVyLCBzZWxlY3RvciwgbWF0Y2hlciwgcG9zdEZpbHRlciwgcG9zdEZpbmRlciwgcG9zdFNlbGVjdG9yICkge1xuXHRpZiAoIHBvc3RGaWx0ZXIgJiYgIXBvc3RGaWx0ZXJbIGV4cGFuZG8gXSApIHtcblx0XHRwb3N0RmlsdGVyID0gc2V0TWF0Y2hlciggcG9zdEZpbHRlciApO1xuXHR9XG5cdGlmICggcG9zdEZpbmRlciAmJiAhcG9zdEZpbmRlclsgZXhwYW5kbyBdICkge1xuXHRcdHBvc3RGaW5kZXIgPSBzZXRNYXRjaGVyKCBwb3N0RmluZGVyLCBwb3N0U2VsZWN0b3IgKTtcblx0fVxuXHRyZXR1cm4gbWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggc2VlZCwgcmVzdWx0cywgY29udGV4dCwgeG1sICkge1xuXHRcdHZhciB0ZW1wLCBpLCBlbGVtLFxuXHRcdFx0cHJlTWFwID0gW10sXG5cdFx0XHRwb3N0TWFwID0gW10sXG5cdFx0XHRwcmVleGlzdGluZyA9IHJlc3VsdHMubGVuZ3RoLFxuXG5cdFx0XHQvLyBHZXQgaW5pdGlhbCBlbGVtZW50cyBmcm9tIHNlZWQgb3IgY29udGV4dFxuXHRcdFx0ZWxlbXMgPSBzZWVkIHx8IG11bHRpcGxlQ29udGV4dHMoXG5cdFx0XHRcdHNlbGVjdG9yIHx8IFwiKlwiLFxuXHRcdFx0XHRjb250ZXh0Lm5vZGVUeXBlID8gWyBjb250ZXh0IF0gOiBjb250ZXh0LFxuXHRcdFx0XHRbXVxuXHRcdFx0KSxcblxuXHRcdFx0Ly8gUHJlZmlsdGVyIHRvIGdldCBtYXRjaGVyIGlucHV0LCBwcmVzZXJ2aW5nIGEgbWFwIGZvciBzZWVkLXJlc3VsdHMgc3luY2hyb25pemF0aW9uXG5cdFx0XHRtYXRjaGVySW4gPSBwcmVGaWx0ZXIgJiYgKCBzZWVkIHx8ICFzZWxlY3RvciApID9cblx0XHRcdFx0Y29uZGVuc2UoIGVsZW1zLCBwcmVNYXAsIHByZUZpbHRlciwgY29udGV4dCwgeG1sICkgOlxuXHRcdFx0XHRlbGVtcyxcblxuXHRcdFx0bWF0Y2hlck91dCA9IG1hdGNoZXIgP1xuXG5cdFx0XHRcdC8vIElmIHdlIGhhdmUgYSBwb3N0RmluZGVyLCBvciBmaWx0ZXJlZCBzZWVkLCBvciBub24tc2VlZCBwb3N0RmlsdGVyIG9yIHByZWV4aXN0aW5nIHJlc3VsdHMsXG5cdFx0XHRcdHBvc3RGaW5kZXIgfHwgKCBzZWVkID8gcHJlRmlsdGVyIDogcHJlZXhpc3RpbmcgfHwgcG9zdEZpbHRlciApID9cblxuXHRcdFx0XHRcdC8vIC4uLmludGVybWVkaWF0ZSBwcm9jZXNzaW5nIGlzIG5lY2Vzc2FyeVxuXHRcdFx0XHRcdFtdIDpcblxuXHRcdFx0XHRcdC8vIC4uLm90aGVyd2lzZSB1c2UgcmVzdWx0cyBkaXJlY3RseVxuXHRcdFx0XHRcdHJlc3VsdHMgOlxuXHRcdFx0XHRtYXRjaGVySW47XG5cblx0XHQvLyBGaW5kIHByaW1hcnkgbWF0Y2hlc1xuXHRcdGlmICggbWF0Y2hlciApIHtcblx0XHRcdG1hdGNoZXIoIG1hdGNoZXJJbiwgbWF0Y2hlck91dCwgY29udGV4dCwgeG1sICk7XG5cdFx0fVxuXG5cdFx0Ly8gQXBwbHkgcG9zdEZpbHRlclxuXHRcdGlmICggcG9zdEZpbHRlciApIHtcblx0XHRcdHRlbXAgPSBjb25kZW5zZSggbWF0Y2hlck91dCwgcG9zdE1hcCApO1xuXHRcdFx0cG9zdEZpbHRlciggdGVtcCwgW10sIGNvbnRleHQsIHhtbCApO1xuXG5cdFx0XHQvLyBVbi1tYXRjaCBmYWlsaW5nIGVsZW1lbnRzIGJ5IG1vdmluZyB0aGVtIGJhY2sgdG8gbWF0Y2hlckluXG5cdFx0XHRpID0gdGVtcC5sZW5ndGg7XG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0aWYgKCAoIGVsZW0gPSB0ZW1wWyBpIF0gKSApIHtcblx0XHRcdFx0XHRtYXRjaGVyT3V0WyBwb3N0TWFwWyBpIF0gXSA9ICEoIG1hdGNoZXJJblsgcG9zdE1hcFsgaSBdIF0gPSBlbGVtICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoIHNlZWQgKSB7XG5cdFx0XHRpZiAoIHBvc3RGaW5kZXIgfHwgcHJlRmlsdGVyICkge1xuXHRcdFx0XHRpZiAoIHBvc3RGaW5kZXIgKSB7XG5cblx0XHRcdFx0XHQvLyBHZXQgdGhlIGZpbmFsIG1hdGNoZXJPdXQgYnkgY29uZGVuc2luZyB0aGlzIGludGVybWVkaWF0ZSBpbnRvIHBvc3RGaW5kZXIgY29udGV4dHNcblx0XHRcdFx0XHR0ZW1wID0gW107XG5cdFx0XHRcdFx0aSA9IG1hdGNoZXJPdXQubGVuZ3RoO1xuXHRcdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdFx0aWYgKCAoIGVsZW0gPSBtYXRjaGVyT3V0WyBpIF0gKSApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBSZXN0b3JlIG1hdGNoZXJJbiBzaW5jZSBlbGVtIGlzIG5vdCB5ZXQgYSBmaW5hbCBtYXRjaFxuXHRcdFx0XHRcdFx0XHR0ZW1wLnB1c2goICggbWF0Y2hlckluWyBpIF0gPSBlbGVtICkgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cG9zdEZpbmRlciggbnVsbCwgKCBtYXRjaGVyT3V0ID0gW10gKSwgdGVtcCwgeG1sICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBNb3ZlIG1hdGNoZWQgZWxlbWVudHMgZnJvbSBzZWVkIHRvIHJlc3VsdHMgdG8ga2VlcCB0aGVtIHN5bmNocm9uaXplZFxuXHRcdFx0XHRpID0gbWF0Y2hlck91dC5sZW5ndGg7XG5cdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdGlmICggKCBlbGVtID0gbWF0Y2hlck91dFsgaSBdICkgJiZcblx0XHRcdFx0XHRcdCggdGVtcCA9IHBvc3RGaW5kZXIgPyBpbmRleE9mKCBzZWVkLCBlbGVtICkgOiBwcmVNYXBbIGkgXSApID4gLTEgKSB7XG5cblx0XHRcdFx0XHRcdHNlZWRbIHRlbXAgXSA9ICEoIHJlc3VsdHNbIHRlbXAgXSA9IGVsZW0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdC8vIEFkZCBlbGVtZW50cyB0byByZXN1bHRzLCB0aHJvdWdoIHBvc3RGaW5kZXIgaWYgZGVmaW5lZFxuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYXRjaGVyT3V0ID0gY29uZGVuc2UoXG5cdFx0XHRcdG1hdGNoZXJPdXQgPT09IHJlc3VsdHMgP1xuXHRcdFx0XHRcdG1hdGNoZXJPdXQuc3BsaWNlKCBwcmVleGlzdGluZywgbWF0Y2hlck91dC5sZW5ndGggKSA6XG5cdFx0XHRcdFx0bWF0Y2hlck91dFxuXHRcdFx0KTtcblx0XHRcdGlmICggcG9zdEZpbmRlciApIHtcblx0XHRcdFx0cG9zdEZpbmRlciggbnVsbCwgcmVzdWx0cywgbWF0Y2hlck91dCwgeG1sICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBtYXRjaGVyT3V0ICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9ICk7XG59XG5cbmZ1bmN0aW9uIG1hdGNoZXJGcm9tVG9rZW5zKCB0b2tlbnMgKSB7XG5cdHZhciBjaGVja0NvbnRleHQsIG1hdGNoZXIsIGosXG5cdFx0bGVuID0gdG9rZW5zLmxlbmd0aCxcblx0XHRsZWFkaW5nUmVsYXRpdmUgPSBFeHByLnJlbGF0aXZlWyB0b2tlbnNbIDAgXS50eXBlIF0sXG5cdFx0aW1wbGljaXRSZWxhdGl2ZSA9IGxlYWRpbmdSZWxhdGl2ZSB8fCBFeHByLnJlbGF0aXZlWyBcIiBcIiBdLFxuXHRcdGkgPSBsZWFkaW5nUmVsYXRpdmUgPyAxIDogMCxcblxuXHRcdC8vIFRoZSBmb3VuZGF0aW9uYWwgbWF0Y2hlciBlbnN1cmVzIHRoYXQgZWxlbWVudHMgYXJlIHJlYWNoYWJsZSBmcm9tIHRvcC1sZXZlbCBjb250ZXh0KHMpXG5cdFx0bWF0Y2hDb250ZXh0ID0gYWRkQ29tYmluYXRvciggZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbSA9PT0gY2hlY2tDb250ZXh0O1xuXHRcdH0sIGltcGxpY2l0UmVsYXRpdmUsIHRydWUgKSxcblx0XHRtYXRjaEFueUNvbnRleHQgPSBhZGRDb21iaW5hdG9yKCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBpbmRleE9mKCBjaGVja0NvbnRleHQsIGVsZW0gKSA+IC0xO1xuXHRcdH0sIGltcGxpY2l0UmVsYXRpdmUsIHRydWUgKSxcblx0XHRtYXRjaGVycyA9IFsgZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHtcblx0XHRcdHZhciByZXQgPSAoICFsZWFkaW5nUmVsYXRpdmUgJiYgKCB4bWwgfHwgY29udGV4dCAhPT0gb3V0ZXJtb3N0Q29udGV4dCApICkgfHwgKFxuXHRcdFx0XHQoIGNoZWNrQ29udGV4dCA9IGNvbnRleHQgKS5ub2RlVHlwZSA/XG5cdFx0XHRcdFx0bWF0Y2hDb250ZXh0KCBlbGVtLCBjb250ZXh0LCB4bWwgKSA6XG5cdFx0XHRcdFx0bWF0Y2hBbnlDb250ZXh0KCBlbGVtLCBjb250ZXh0LCB4bWwgKSApO1xuXG5cdFx0XHQvLyBBdm9pZCBoYW5naW5nIG9udG8gZWxlbWVudCAoaXNzdWUgIzI5OSlcblx0XHRcdGNoZWNrQ29udGV4dCA9IG51bGw7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH0gXTtcblxuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRpZiAoICggbWF0Y2hlciA9IEV4cHIucmVsYXRpdmVbIHRva2Vuc1sgaSBdLnR5cGUgXSApICkge1xuXHRcdFx0bWF0Y2hlcnMgPSBbIGFkZENvbWJpbmF0b3IoIGVsZW1lbnRNYXRjaGVyKCBtYXRjaGVycyApLCBtYXRjaGVyICkgXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWF0Y2hlciA9IEV4cHIuZmlsdGVyWyB0b2tlbnNbIGkgXS50eXBlIF0uYXBwbHkoIG51bGwsIHRva2Vuc1sgaSBdLm1hdGNoZXMgKTtcblxuXHRcdFx0Ly8gUmV0dXJuIHNwZWNpYWwgdXBvbiBzZWVpbmcgYSBwb3NpdGlvbmFsIG1hdGNoZXJcblx0XHRcdGlmICggbWF0Y2hlclsgZXhwYW5kbyBdICkge1xuXG5cdFx0XHRcdC8vIEZpbmQgdGhlIG5leHQgcmVsYXRpdmUgb3BlcmF0b3IgKGlmIGFueSkgZm9yIHByb3BlciBoYW5kbGluZ1xuXHRcdFx0XHRqID0gKytpO1xuXHRcdFx0XHRmb3IgKCA7IGogPCBsZW47IGorKyApIHtcblx0XHRcdFx0XHRpZiAoIEV4cHIucmVsYXRpdmVbIHRva2Vuc1sgaiBdLnR5cGUgXSApIHtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gc2V0TWF0Y2hlcihcblx0XHRcdFx0XHRpID4gMSAmJiBlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSxcblx0XHRcdFx0XHRpID4gMSAmJiB0b1NlbGVjdG9yKFxuXG5cdFx0XHRcdFx0Ly8gSWYgdGhlIHByZWNlZGluZyB0b2tlbiB3YXMgYSBkZXNjZW5kYW50IGNvbWJpbmF0b3IsIGluc2VydCBhbiBpbXBsaWNpdCBhbnktZWxlbWVudCBgKmBcblx0XHRcdFx0XHR0b2tlbnNcblx0XHRcdFx0XHRcdC5zbGljZSggMCwgaSAtIDEgKVxuXHRcdFx0XHRcdFx0LmNvbmNhdCggeyB2YWx1ZTogdG9rZW5zWyBpIC0gMiBdLnR5cGUgPT09IFwiIFwiID8gXCIqXCIgOiBcIlwiIH0gKVxuXHRcdFx0XHRcdCkucmVwbGFjZSggcnRyaW0sIFwiJDFcIiApLFxuXHRcdFx0XHRcdG1hdGNoZXIsXG5cdFx0XHRcdFx0aSA8IGogJiYgbWF0Y2hlckZyb21Ub2tlbnMoIHRva2Vucy5zbGljZSggaSwgaiApICksXG5cdFx0XHRcdFx0aiA8IGxlbiAmJiBtYXRjaGVyRnJvbVRva2VucyggKCB0b2tlbnMgPSB0b2tlbnMuc2xpY2UoIGogKSApICksXG5cdFx0XHRcdFx0aiA8IGxlbiAmJiB0b1NlbGVjdG9yKCB0b2tlbnMgKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0bWF0Y2hlcnMucHVzaCggbWF0Y2hlciApO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKTtcbn1cblxuZnVuY3Rpb24gbWF0Y2hlckZyb21Hcm91cE1hdGNoZXJzKCBlbGVtZW50TWF0Y2hlcnMsIHNldE1hdGNoZXJzICkge1xuXHR2YXIgYnlTZXQgPSBzZXRNYXRjaGVycy5sZW5ndGggPiAwLFxuXHRcdGJ5RWxlbWVudCA9IGVsZW1lbnRNYXRjaGVycy5sZW5ndGggPiAwLFxuXHRcdHN1cGVyTWF0Y2hlciA9IGZ1bmN0aW9uKCBzZWVkLCBjb250ZXh0LCB4bWwsIHJlc3VsdHMsIG91dGVybW9zdCApIHtcblx0XHRcdHZhciBlbGVtLCBqLCBtYXRjaGVyLFxuXHRcdFx0XHRtYXRjaGVkQ291bnQgPSAwLFxuXHRcdFx0XHRpID0gXCIwXCIsXG5cdFx0XHRcdHVubWF0Y2hlZCA9IHNlZWQgJiYgW10sXG5cdFx0XHRcdHNldE1hdGNoZWQgPSBbXSxcblx0XHRcdFx0Y29udGV4dEJhY2t1cCA9IG91dGVybW9zdENvbnRleHQsXG5cblx0XHRcdFx0Ly8gV2UgbXVzdCBhbHdheXMgaGF2ZSBlaXRoZXIgc2VlZCBlbGVtZW50cyBvciBvdXRlcm1vc3QgY29udGV4dFxuXHRcdFx0XHRlbGVtcyA9IHNlZWQgfHwgYnlFbGVtZW50ICYmIEV4cHIuZmluZFsgXCJUQUdcIiBdKCBcIipcIiwgb3V0ZXJtb3N0ICksXG5cblx0XHRcdFx0Ly8gVXNlIGludGVnZXIgZGlycnVucyBpZmYgdGhpcyBpcyB0aGUgb3V0ZXJtb3N0IG1hdGNoZXJcblx0XHRcdFx0ZGlycnVuc1VuaXF1ZSA9ICggZGlycnVucyArPSBjb250ZXh0QmFja3VwID09IG51bGwgPyAxIDogTWF0aC5yYW5kb20oKSB8fCAwLjEgKSxcblx0XHRcdFx0bGVuID0gZWxlbXMubGVuZ3RoO1xuXG5cdFx0XHRpZiAoIG91dGVybW9zdCApIHtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRSAxMSssIEVkZ2UgMTcgLSAxOCtcblx0XHRcdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0XHRcdC8vIHR3byBkb2N1bWVudHM7IHNoYWxsb3cgY29tcGFyaXNvbnMgd29yay5cblx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuXHRcdFx0XHRvdXRlcm1vc3RDb250ZXh0ID0gY29udGV4dCA9PSBkb2N1bWVudCB8fCBjb250ZXh0IHx8IG91dGVybW9zdDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQWRkIGVsZW1lbnRzIHBhc3NpbmcgZWxlbWVudE1hdGNoZXJzIGRpcmVjdGx5IHRvIHJlc3VsdHNcblx0XHRcdC8vIFN1cHBvcnQ6IElFPDksIFNhZmFyaVxuXHRcdFx0Ly8gVG9sZXJhdGUgTm9kZUxpc3QgcHJvcGVydGllcyAoSUU6IFwibGVuZ3RoXCI7IFNhZmFyaTogPG51bWJlcj4pIG1hdGNoaW5nIGVsZW1lbnRzIGJ5IGlkXG5cdFx0XHRmb3IgKCA7IGkgIT09IGxlbiAmJiAoIGVsZW0gPSBlbGVtc1sgaSBdICkgIT0gbnVsbDsgaSsrICkge1xuXHRcdFx0XHRpZiAoIGJ5RWxlbWVudCAmJiBlbGVtICkge1xuXHRcdFx0XHRcdGogPSAwO1xuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgMTErLCBFZGdlIDE3IC0gMTgrXG5cdFx0XHRcdFx0Ly8gSUUvRWRnZSBzb21ldGltZXMgdGhyb3cgYSBcIlBlcm1pc3Npb24gZGVuaWVkXCIgZXJyb3Igd2hlbiBzdHJpY3QtY29tcGFyaW5nXG5cdFx0XHRcdFx0Ly8gdHdvIGRvY3VtZW50czsgc2hhbGxvdyBjb21wYXJpc29ucyB3b3JrLlxuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcWVxZXFcblx0XHRcdFx0XHRpZiAoICFjb250ZXh0ICYmIGVsZW0ub3duZXJEb2N1bWVudCAhPSBkb2N1bWVudCApIHtcblx0XHRcdFx0XHRcdHNldERvY3VtZW50KCBlbGVtICk7XG5cdFx0XHRcdFx0XHR4bWwgPSAhZG9jdW1lbnRJc0hUTUw7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHdoaWxlICggKCBtYXRjaGVyID0gZWxlbWVudE1hdGNoZXJzWyBqKysgXSApICkge1xuXHRcdFx0XHRcdFx0aWYgKCBtYXRjaGVyKCBlbGVtLCBjb250ZXh0IHx8IGRvY3VtZW50LCB4bWwgKSApIHtcblx0XHRcdFx0XHRcdFx0cmVzdWx0cy5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIG91dGVybW9zdCApIHtcblx0XHRcdFx0XHRcdGRpcnJ1bnMgPSBkaXJydW5zVW5pcXVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFRyYWNrIHVubWF0Y2hlZCBlbGVtZW50cyBmb3Igc2V0IGZpbHRlcnNcblx0XHRcdFx0aWYgKCBieVNldCApIHtcblxuXHRcdFx0XHRcdC8vIFRoZXkgd2lsbCBoYXZlIGdvbmUgdGhyb3VnaCBhbGwgcG9zc2libGUgbWF0Y2hlcnNcblx0XHRcdFx0XHRpZiAoICggZWxlbSA9ICFtYXRjaGVyICYmIGVsZW0gKSApIHtcblx0XHRcdFx0XHRcdG1hdGNoZWRDb3VudC0tO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIExlbmd0aGVuIHRoZSBhcnJheSBmb3IgZXZlcnkgZWxlbWVudCwgbWF0Y2hlZCBvciBub3Rcblx0XHRcdFx0XHRpZiAoIHNlZWQgKSB7XG5cdFx0XHRcdFx0XHR1bm1hdGNoZWQucHVzaCggZWxlbSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBgaWAgaXMgbm93IHRoZSBjb3VudCBvZiBlbGVtZW50cyB2aXNpdGVkIGFib3ZlLCBhbmQgYWRkaW5nIGl0IHRvIGBtYXRjaGVkQ291bnRgXG5cdFx0XHQvLyBtYWtlcyB0aGUgbGF0dGVyIG5vbm5lZ2F0aXZlLlxuXHRcdFx0bWF0Y2hlZENvdW50ICs9IGk7XG5cblx0XHRcdC8vIEFwcGx5IHNldCBmaWx0ZXJzIHRvIHVubWF0Y2hlZCBlbGVtZW50c1xuXHRcdFx0Ly8gTk9URTogVGhpcyBjYW4gYmUgc2tpcHBlZCBpZiB0aGVyZSBhcmUgbm8gdW5tYXRjaGVkIGVsZW1lbnRzIChpLmUuLCBgbWF0Y2hlZENvdW50YFxuXHRcdFx0Ly8gZXF1YWxzIGBpYCksIHVubGVzcyB3ZSBkaWRuJ3QgdmlzaXQgX2FueV8gZWxlbWVudHMgaW4gdGhlIGFib3ZlIGxvb3AgYmVjYXVzZSB3ZSBoYXZlXG5cdFx0XHQvLyBubyBlbGVtZW50IG1hdGNoZXJzIGFuZCBubyBzZWVkLlxuXHRcdFx0Ly8gSW5jcmVtZW50aW5nIGFuIGluaXRpYWxseS1zdHJpbmcgXCIwXCIgYGlgIGFsbG93cyBgaWAgdG8gcmVtYWluIGEgc3RyaW5nIG9ubHkgaW4gdGhhdFxuXHRcdFx0Ly8gY2FzZSwgd2hpY2ggd2lsbCByZXN1bHQgaW4gYSBcIjAwXCIgYG1hdGNoZWRDb3VudGAgdGhhdCBkaWZmZXJzIGZyb20gYGlgIGJ1dCBpcyBhbHNvXG5cdFx0XHQvLyBudW1lcmljYWxseSB6ZXJvLlxuXHRcdFx0aWYgKCBieVNldCAmJiBpICE9PSBtYXRjaGVkQ291bnQgKSB7XG5cdFx0XHRcdGogPSAwO1xuXHRcdFx0XHR3aGlsZSAoICggbWF0Y2hlciA9IHNldE1hdGNoZXJzWyBqKysgXSApICkge1xuXHRcdFx0XHRcdG1hdGNoZXIoIHVubWF0Y2hlZCwgc2V0TWF0Y2hlZCwgY29udGV4dCwgeG1sICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoIHNlZWQgKSB7XG5cblx0XHRcdFx0XHQvLyBSZWludGVncmF0ZSBlbGVtZW50IG1hdGNoZXMgdG8gZWxpbWluYXRlIHRoZSBuZWVkIGZvciBzb3J0aW5nXG5cdFx0XHRcdFx0aWYgKCBtYXRjaGVkQ291bnQgPiAwICkge1xuXHRcdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRcdGlmICggISggdW5tYXRjaGVkWyBpIF0gfHwgc2V0TWF0Y2hlZFsgaSBdICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0c2V0TWF0Y2hlZFsgaSBdID0gcG9wLmNhbGwoIHJlc3VsdHMgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIERpc2NhcmQgaW5kZXggcGxhY2Vob2xkZXIgdmFsdWVzIHRvIGdldCBvbmx5IGFjdHVhbCBtYXRjaGVzXG5cdFx0XHRcdFx0c2V0TWF0Y2hlZCA9IGNvbmRlbnNlKCBzZXRNYXRjaGVkICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBBZGQgbWF0Y2hlcyB0byByZXN1bHRzXG5cdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIHNldE1hdGNoZWQgKTtcblxuXHRcdFx0XHQvLyBTZWVkbGVzcyBzZXQgbWF0Y2hlcyBzdWNjZWVkaW5nIG11bHRpcGxlIHN1Y2Nlc3NmdWwgbWF0Y2hlcnMgc3RpcHVsYXRlIHNvcnRpbmdcblx0XHRcdFx0aWYgKCBvdXRlcm1vc3QgJiYgIXNlZWQgJiYgc2V0TWF0Y2hlZC5sZW5ndGggPiAwICYmXG5cdFx0XHRcdFx0KCBtYXRjaGVkQ291bnQgKyBzZXRNYXRjaGVycy5sZW5ndGggKSA+IDEgKSB7XG5cblx0XHRcdFx0XHRTaXp6bGUudW5pcXVlU29ydCggcmVzdWx0cyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIE92ZXJyaWRlIG1hbmlwdWxhdGlvbiBvZiBnbG9iYWxzIGJ5IG5lc3RlZCBtYXRjaGVyc1xuXHRcdFx0aWYgKCBvdXRlcm1vc3QgKSB7XG5cdFx0XHRcdGRpcnJ1bnMgPSBkaXJydW5zVW5pcXVlO1xuXHRcdFx0XHRvdXRlcm1vc3RDb250ZXh0ID0gY29udGV4dEJhY2t1cDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHVubWF0Y2hlZDtcblx0XHR9O1xuXG5cdHJldHVybiBieVNldCA/XG5cdFx0bWFya0Z1bmN0aW9uKCBzdXBlck1hdGNoZXIgKSA6XG5cdFx0c3VwZXJNYXRjaGVyO1xufVxuXG5jb21waWxlID0gU2l6emxlLmNvbXBpbGUgPSBmdW5jdGlvbiggc2VsZWN0b3IsIG1hdGNoIC8qIEludGVybmFsIFVzZSBPbmx5ICovICkge1xuXHR2YXIgaSxcblx0XHRzZXRNYXRjaGVycyA9IFtdLFxuXHRcdGVsZW1lbnRNYXRjaGVycyA9IFtdLFxuXHRcdGNhY2hlZCA9IGNvbXBpbGVyQ2FjaGVbIHNlbGVjdG9yICsgXCIgXCIgXTtcblxuXHRpZiAoICFjYWNoZWQgKSB7XG5cblx0XHQvLyBHZW5lcmF0ZSBhIGZ1bmN0aW9uIG9mIHJlY3Vyc2l2ZSBmdW5jdGlvbnMgdGhhdCBjYW4gYmUgdXNlZCB0byBjaGVjayBlYWNoIGVsZW1lbnRcblx0XHRpZiAoICFtYXRjaCApIHtcblx0XHRcdG1hdGNoID0gdG9rZW5pemUoIHNlbGVjdG9yICk7XG5cdFx0fVxuXHRcdGkgPSBtYXRjaC5sZW5ndGg7XG5cdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRjYWNoZWQgPSBtYXRjaGVyRnJvbVRva2VucyggbWF0Y2hbIGkgXSApO1xuXHRcdFx0aWYgKCBjYWNoZWRbIGV4cGFuZG8gXSApIHtcblx0XHRcdFx0c2V0TWF0Y2hlcnMucHVzaCggY2FjaGVkICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRlbGVtZW50TWF0Y2hlcnMucHVzaCggY2FjaGVkICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ2FjaGUgdGhlIGNvbXBpbGVkIGZ1bmN0aW9uXG5cdFx0Y2FjaGVkID0gY29tcGlsZXJDYWNoZShcblx0XHRcdHNlbGVjdG9yLFxuXHRcdFx0bWF0Y2hlckZyb21Hcm91cE1hdGNoZXJzKCBlbGVtZW50TWF0Y2hlcnMsIHNldE1hdGNoZXJzIClcblx0XHQpO1xuXG5cdFx0Ly8gU2F2ZSBzZWxlY3RvciBhbmQgdG9rZW5pemF0aW9uXG5cdFx0Y2FjaGVkLnNlbGVjdG9yID0gc2VsZWN0b3I7XG5cdH1cblx0cmV0dXJuIGNhY2hlZDtcbn07XG5cbi8qKlxuICogQSBsb3ctbGV2ZWwgc2VsZWN0aW9uIGZ1bmN0aW9uIHRoYXQgd29ya3Mgd2l0aCBTaXp6bGUncyBjb21waWxlZFxuICogIHNlbGVjdG9yIGZ1bmN0aW9uc1xuICogQHBhcmFtIHtTdHJpbmd8RnVuY3Rpb259IHNlbGVjdG9yIEEgc2VsZWN0b3Igb3IgYSBwcmUtY29tcGlsZWRcbiAqICBzZWxlY3RvciBmdW5jdGlvbiBidWlsdCB3aXRoIFNpenpsZS5jb21waWxlXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGNvbnRleHRcbiAqIEBwYXJhbSB7QXJyYXl9IFtyZXN1bHRzXVxuICogQHBhcmFtIHtBcnJheX0gW3NlZWRdIEEgc2V0IG9mIGVsZW1lbnRzIHRvIG1hdGNoIGFnYWluc3RcbiAqL1xuc2VsZWN0ID0gU2l6emxlLnNlbGVjdCA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCwgcmVzdWx0cywgc2VlZCApIHtcblx0dmFyIGksIHRva2VucywgdG9rZW4sIHR5cGUsIGZpbmQsXG5cdFx0Y29tcGlsZWQgPSB0eXBlb2Ygc2VsZWN0b3IgPT09IFwiZnVuY3Rpb25cIiAmJiBzZWxlY3Rvcixcblx0XHRtYXRjaCA9ICFzZWVkICYmIHRva2VuaXplKCAoIHNlbGVjdG9yID0gY29tcGlsZWQuc2VsZWN0b3IgfHwgc2VsZWN0b3IgKSApO1xuXG5cdHJlc3VsdHMgPSByZXN1bHRzIHx8IFtdO1xuXG5cdC8vIFRyeSB0byBtaW5pbWl6ZSBvcGVyYXRpb25zIGlmIHRoZXJlIGlzIG9ubHkgb25lIHNlbGVjdG9yIGluIHRoZSBsaXN0IGFuZCBubyBzZWVkXG5cdC8vICh0aGUgbGF0dGVyIG9mIHdoaWNoIGd1YXJhbnRlZXMgdXMgY29udGV4dClcblx0aWYgKCBtYXRjaC5sZW5ndGggPT09IDEgKSB7XG5cblx0XHQvLyBSZWR1Y2UgY29udGV4dCBpZiB0aGUgbGVhZGluZyBjb21wb3VuZCBzZWxlY3RvciBpcyBhbiBJRFxuXHRcdHRva2VucyA9IG1hdGNoWyAwIF0gPSBtYXRjaFsgMCBdLnNsaWNlKCAwICk7XG5cdFx0aWYgKCB0b2tlbnMubGVuZ3RoID4gMiAmJiAoIHRva2VuID0gdG9rZW5zWyAwIF0gKS50eXBlID09PSBcIklEXCIgJiZcblx0XHRcdGNvbnRleHQubm9kZVR5cGUgPT09IDkgJiYgZG9jdW1lbnRJc0hUTUwgJiYgRXhwci5yZWxhdGl2ZVsgdG9rZW5zWyAxIF0udHlwZSBdICkge1xuXG5cdFx0XHRjb250ZXh0ID0gKCBFeHByLmZpbmRbIFwiSURcIiBdKCB0b2tlbi5tYXRjaGVzWyAwIF1cblx0XHRcdFx0LnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICksIGNvbnRleHQgKSB8fCBbXSApWyAwIF07XG5cdFx0XHRpZiAoICFjb250ZXh0ICkge1xuXHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblxuXHRcdFx0Ly8gUHJlY29tcGlsZWQgbWF0Y2hlcnMgd2lsbCBzdGlsbCB2ZXJpZnkgYW5jZXN0cnksIHNvIHN0ZXAgdXAgYSBsZXZlbFxuXHRcdFx0fSBlbHNlIGlmICggY29tcGlsZWQgKSB7XG5cdFx0XHRcdGNvbnRleHQgPSBjb250ZXh0LnBhcmVudE5vZGU7XG5cdFx0XHR9XG5cblx0XHRcdHNlbGVjdG9yID0gc2VsZWN0b3Iuc2xpY2UoIHRva2Vucy5zaGlmdCgpLnZhbHVlLmxlbmd0aCApO1xuXHRcdH1cblxuXHRcdC8vIEZldGNoIGEgc2VlZCBzZXQgZm9yIHJpZ2h0LXRvLWxlZnQgbWF0Y2hpbmdcblx0XHRpID0gbWF0Y2hFeHByWyBcIm5lZWRzQ29udGV4dFwiIF0udGVzdCggc2VsZWN0b3IgKSA/IDAgOiB0b2tlbnMubGVuZ3RoO1xuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0dG9rZW4gPSB0b2tlbnNbIGkgXTtcblxuXHRcdFx0Ly8gQWJvcnQgaWYgd2UgaGl0IGEgY29tYmluYXRvclxuXHRcdFx0aWYgKCBFeHByLnJlbGF0aXZlWyAoIHR5cGUgPSB0b2tlbi50eXBlICkgXSApIHtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRpZiAoICggZmluZCA9IEV4cHIuZmluZFsgdHlwZSBdICkgKSB7XG5cblx0XHRcdFx0Ly8gU2VhcmNoLCBleHBhbmRpbmcgY29udGV4dCBmb3IgbGVhZGluZyBzaWJsaW5nIGNvbWJpbmF0b3JzXG5cdFx0XHRcdGlmICggKCBzZWVkID0gZmluZChcblx0XHRcdFx0XHR0b2tlbi5tYXRjaGVzWyAwIF0ucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKSxcblx0XHRcdFx0XHRyc2libGluZy50ZXN0KCB0b2tlbnNbIDAgXS50eXBlICkgJiYgdGVzdENvbnRleHQoIGNvbnRleHQucGFyZW50Tm9kZSApIHx8XG5cdFx0XHRcdFx0XHRjb250ZXh0XG5cdFx0XHRcdCkgKSApIHtcblxuXHRcdFx0XHRcdC8vIElmIHNlZWQgaXMgZW1wdHkgb3Igbm8gdG9rZW5zIHJlbWFpbiwgd2UgY2FuIHJldHVybiBlYXJseVxuXHRcdFx0XHRcdHRva2Vucy5zcGxpY2UoIGksIDEgKTtcblx0XHRcdFx0XHRzZWxlY3RvciA9IHNlZWQubGVuZ3RoICYmIHRvU2VsZWN0b3IoIHRva2VucyApO1xuXHRcdFx0XHRcdGlmICggIXNlbGVjdG9yICkge1xuXHRcdFx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgc2VlZCApO1xuXHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBDb21waWxlIGFuZCBleGVjdXRlIGEgZmlsdGVyaW5nIGZ1bmN0aW9uIGlmIG9uZSBpcyBub3QgcHJvdmlkZWRcblx0Ly8gUHJvdmlkZSBgbWF0Y2hgIHRvIGF2b2lkIHJldG9rZW5pemF0aW9uIGlmIHdlIG1vZGlmaWVkIHRoZSBzZWxlY3RvciBhYm92ZVxuXHQoIGNvbXBpbGVkIHx8IGNvbXBpbGUoIHNlbGVjdG9yLCBtYXRjaCApICkoXG5cdFx0c2VlZCxcblx0XHRjb250ZXh0LFxuXHRcdCFkb2N1bWVudElzSFRNTCxcblx0XHRyZXN1bHRzLFxuXHRcdCFjb250ZXh0IHx8IHJzaWJsaW5nLnRlc3QoIHNlbGVjdG9yICkgJiYgdGVzdENvbnRleHQoIGNvbnRleHQucGFyZW50Tm9kZSApIHx8IGNvbnRleHRcblx0KTtcblx0cmV0dXJuIHJlc3VsdHM7XG59O1xuXG4vLyBPbmUtdGltZSBhc3NpZ25tZW50c1xuXG4vLyBTb3J0IHN0YWJpbGl0eVxuc3VwcG9ydC5zb3J0U3RhYmxlID0gZXhwYW5kby5zcGxpdCggXCJcIiApLnNvcnQoIHNvcnRPcmRlciApLmpvaW4oIFwiXCIgKSA9PT0gZXhwYW5kbztcblxuLy8gU3VwcG9ydDogQ2hyb21lIDE0LTM1K1xuLy8gQWx3YXlzIGFzc3VtZSBkdXBsaWNhdGVzIGlmIHRoZXkgYXJlbid0IHBhc3NlZCB0byB0aGUgY29tcGFyaXNvbiBmdW5jdGlvblxuc3VwcG9ydC5kZXRlY3REdXBsaWNhdGVzID0gISFoYXNEdXBsaWNhdGU7XG5cbi8vIEluaXRpYWxpemUgYWdhaW5zdCB0aGUgZGVmYXVsdCBkb2N1bWVudFxuc2V0RG9jdW1lbnQoKTtcblxuLy8gU3VwcG9ydDogV2Via2l0PDUzNy4zMiAtIFNhZmFyaSA2LjAuMy9DaHJvbWUgMjUgKGZpeGVkIGluIENocm9tZSAyNylcbi8vIERldGFjaGVkIG5vZGVzIGNvbmZvdW5kaW5nbHkgZm9sbG93ICplYWNoIG90aGVyKlxuc3VwcG9ydC5zb3J0RGV0YWNoZWQgPSBhc3NlcnQoIGZ1bmN0aW9uKCBlbCApIHtcblxuXHQvLyBTaG91bGQgcmV0dXJuIDEsIGJ1dCByZXR1cm5zIDQgKGZvbGxvd2luZylcblx0cmV0dXJuIGVsLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImZpZWxkc2V0XCIgKSApICYgMTtcbn0gKTtcblxuLy8gU3VwcG9ydDogSUU8OFxuLy8gUHJldmVudCBhdHRyaWJ1dGUvcHJvcGVydHkgXCJpbnRlcnBvbGF0aW9uXCJcbi8vIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXM1MzY0MjklMjhWUy44NSUyOS5hc3B4XG5pZiAoICFhc3NlcnQoIGZ1bmN0aW9uKCBlbCApIHtcblx0ZWwuaW5uZXJIVE1MID0gXCI8YSBocmVmPScjJz48L2E+XCI7XG5cdHJldHVybiBlbC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSggXCJocmVmXCIgKSA9PT0gXCIjXCI7XG59ICkgKSB7XG5cdGFkZEhhbmRsZSggXCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoXCIsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHtcblx0XHRpZiAoICFpc1hNTCApIHtcblx0XHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggbmFtZSwgbmFtZS50b0xvd2VyQ2FzZSgpID09PSBcInR5cGVcIiA/IDEgOiAyICk7XG5cdFx0fVxuXHR9ICk7XG59XG5cbi8vIFN1cHBvcnQ6IElFPDlcbi8vIFVzZSBkZWZhdWx0VmFsdWUgaW4gcGxhY2Ugb2YgZ2V0QXR0cmlidXRlKFwidmFsdWVcIilcbmlmICggIXN1cHBvcnQuYXR0cmlidXRlcyB8fCAhYXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cdGVsLmlubmVySFRNTCA9IFwiPGlucHV0Lz5cIjtcblx0ZWwuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoIFwidmFsdWVcIiwgXCJcIiApO1xuXHRyZXR1cm4gZWwuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoIFwidmFsdWVcIiApID09PSBcIlwiO1xufSApICkge1xuXHRhZGRIYW5kbGUoIFwidmFsdWVcIiwgZnVuY3Rpb24oIGVsZW0sIF9uYW1lLCBpc1hNTCApIHtcblx0XHRpZiAoICFpc1hNTCAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiaW5wdXRcIiApIHtcblx0XHRcdHJldHVybiBlbGVtLmRlZmF1bHRWYWx1ZTtcblx0XHR9XG5cdH0gKTtcbn1cblxuLy8gU3VwcG9ydDogSUU8OVxuLy8gVXNlIGdldEF0dHJpYnV0ZU5vZGUgdG8gZmV0Y2ggYm9vbGVhbnMgd2hlbiBnZXRBdHRyaWJ1dGUgbGllc1xuaWYgKCAhYXNzZXJ0KCBmdW5jdGlvbiggZWwgKSB7XG5cdHJldHVybiBlbC5nZXRBdHRyaWJ1dGUoIFwiZGlzYWJsZWRcIiApID09IG51bGw7XG59ICkgKSB7XG5cdGFkZEhhbmRsZSggYm9vbGVhbnMsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHtcblx0XHR2YXIgdmFsO1xuXHRcdGlmICggIWlzWE1MICkge1xuXHRcdFx0cmV0dXJuIGVsZW1bIG5hbWUgXSA9PT0gdHJ1ZSA/IG5hbWUudG9Mb3dlckNhc2UoKSA6XG5cdFx0XHRcdCggdmFsID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBuYW1lICkgKSAmJiB2YWwuc3BlY2lmaWVkID9cblx0XHRcdFx0XHR2YWwudmFsdWUgOlxuXHRcdFx0XHRcdG51bGw7XG5cdFx0fVxuXHR9ICk7XG59XG5cbnJldHVybiBTaXp6bGU7XG5cbn0gKSggd2luZG93ICk7XG5cblxuXG5qUXVlcnkuZmluZCA9IFNpenpsZTtcbmpRdWVyeS5leHByID0gU2l6emxlLnNlbGVjdG9ycztcblxuLy8gRGVwcmVjYXRlZFxualF1ZXJ5LmV4cHJbIFwiOlwiIF0gPSBqUXVlcnkuZXhwci5wc2V1ZG9zO1xualF1ZXJ5LnVuaXF1ZVNvcnQgPSBqUXVlcnkudW5pcXVlID0gU2l6emxlLnVuaXF1ZVNvcnQ7XG5qUXVlcnkudGV4dCA9IFNpenpsZS5nZXRUZXh0O1xualF1ZXJ5LmlzWE1MRG9jID0gU2l6emxlLmlzWE1MO1xualF1ZXJ5LmNvbnRhaW5zID0gU2l6emxlLmNvbnRhaW5zO1xualF1ZXJ5LmVzY2FwZVNlbGVjdG9yID0gU2l6emxlLmVzY2FwZTtcblxuXG5cblxudmFyIGRpciA9IGZ1bmN0aW9uKCBlbGVtLCBkaXIsIHVudGlsICkge1xuXHR2YXIgbWF0Y2hlZCA9IFtdLFxuXHRcdHRydW5jYXRlID0gdW50aWwgIT09IHVuZGVmaW5lZDtcblxuXHR3aGlsZSAoICggZWxlbSA9IGVsZW1bIGRpciBdICkgJiYgZWxlbS5ub2RlVHlwZSAhPT0gOSApIHtcblx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHRpZiAoIHRydW5jYXRlICYmIGpRdWVyeSggZWxlbSApLmlzKCB1bnRpbCApICkge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdG1hdGNoZWQucHVzaCggZWxlbSApO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gbWF0Y2hlZDtcbn07XG5cblxudmFyIHNpYmxpbmdzID0gZnVuY3Rpb24oIG4sIGVsZW0gKSB7XG5cdHZhciBtYXRjaGVkID0gW107XG5cblx0Zm9yICggOyBuOyBuID0gbi5uZXh0U2libGluZyApIHtcblx0XHRpZiAoIG4ubm9kZVR5cGUgPT09IDEgJiYgbiAhPT0gZWxlbSApIHtcblx0XHRcdG1hdGNoZWQucHVzaCggbiApO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBtYXRjaGVkO1xufTtcblxuXG52YXIgcm5lZWRzQ29udGV4dCA9IGpRdWVyeS5leHByLm1hdGNoLm5lZWRzQ29udGV4dDtcblxuXG5cbmZ1bmN0aW9uIG5vZGVOYW1lKCBlbGVtLCBuYW1lICkge1xuXG4gIHJldHVybiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXG59O1xudmFyIHJzaW5nbGVUYWcgPSAoIC9ePChbYS16XVteXFwvXFwwPjpcXHgyMFxcdFxcclxcblxcZl0qKVtcXHgyMFxcdFxcclxcblxcZl0qXFwvPz4oPzo8XFwvXFwxPnwpJC9pICk7XG5cblxuXG4vLyBJbXBsZW1lbnQgdGhlIGlkZW50aWNhbCBmdW5jdGlvbmFsaXR5IGZvciBmaWx0ZXIgYW5kIG5vdFxuZnVuY3Rpb24gd2lubm93KCBlbGVtZW50cywgcXVhbGlmaWVyLCBub3QgKSB7XG5cdGlmICggaXNGdW5jdGlvbiggcXVhbGlmaWVyICkgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0sIGkgKSB7XG5cdFx0XHRyZXR1cm4gISFxdWFsaWZpZXIuY2FsbCggZWxlbSwgaSwgZWxlbSApICE9PSBub3Q7XG5cdFx0fSApO1xuXHR9XG5cblx0Ly8gU2luZ2xlIGVsZW1lbnRcblx0aWYgKCBxdWFsaWZpZXIubm9kZVR5cGUgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gKCBlbGVtID09PSBxdWFsaWZpZXIgKSAhPT0gbm90O1xuXHRcdH0gKTtcblx0fVxuXG5cdC8vIEFycmF5bGlrZSBvZiBlbGVtZW50cyAoalF1ZXJ5LCBhcmd1bWVudHMsIEFycmF5KVxuXHRpZiAoIHR5cGVvZiBxdWFsaWZpZXIgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gKCBpbmRleE9mLmNhbGwoIHF1YWxpZmllciwgZWxlbSApID4gLTEgKSAhPT0gbm90O1xuXHRcdH0gKTtcblx0fVxuXG5cdC8vIEZpbHRlcmVkIGRpcmVjdGx5IGZvciBib3RoIHNpbXBsZSBhbmQgY29tcGxleCBzZWxlY3RvcnNcblx0cmV0dXJuIGpRdWVyeS5maWx0ZXIoIHF1YWxpZmllciwgZWxlbWVudHMsIG5vdCApO1xufVxuXG5qUXVlcnkuZmlsdGVyID0gZnVuY3Rpb24oIGV4cHIsIGVsZW1zLCBub3QgKSB7XG5cdHZhciBlbGVtID0gZWxlbXNbIDAgXTtcblxuXHRpZiAoIG5vdCApIHtcblx0XHRleHByID0gXCI6bm90KFwiICsgZXhwciArIFwiKVwiO1xuXHR9XG5cblx0aWYgKCBlbGVtcy5sZW5ndGggPT09IDEgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKCBlbGVtLCBleHByICkgPyBbIGVsZW0gXSA6IFtdO1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeS5maW5kLm1hdGNoZXMoIGV4cHIsIGpRdWVyeS5ncmVwKCBlbGVtcywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDE7XG5cdH0gKSApO1xufTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRmaW5kOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0dmFyIGksIHJldCxcblx0XHRcdGxlbiA9IHRoaXMubGVuZ3RoLFxuXHRcdFx0c2VsZiA9IHRoaXM7XG5cblx0XHRpZiAoIHR5cGVvZiBzZWxlY3RvciAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5KCBzZWxlY3RvciApLmZpbHRlciggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGZvciAoIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRcdFx0aWYgKCBqUXVlcnkuY29udGFpbnMoIHNlbGZbIGkgXSwgdGhpcyApICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9ICkgKTtcblx0XHR9XG5cblx0XHRyZXQgPSB0aGlzLnB1c2hTdGFjayggW10gKTtcblxuXHRcdGZvciAoIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRqUXVlcnkuZmluZCggc2VsZWN0b3IsIHNlbGZbIGkgXSwgcmV0ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGxlbiA+IDEgPyBqUXVlcnkudW5pcXVlU29ydCggcmV0ICkgOiByZXQ7XG5cdH0sXG5cdGZpbHRlcjogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggd2lubm93KCB0aGlzLCBzZWxlY3RvciB8fCBbXSwgZmFsc2UgKSApO1xuXHR9LFxuXHRub3Q6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHdpbm5vdyggdGhpcywgc2VsZWN0b3IgfHwgW10sIHRydWUgKSApO1xuXHR9LFxuXHRpczogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiAhIXdpbm5vdyhcblx0XHRcdHRoaXMsXG5cblx0XHRcdC8vIElmIHRoaXMgaXMgYSBwb3NpdGlvbmFsL3JlbGF0aXZlIHNlbGVjdG9yLCBjaGVjayBtZW1iZXJzaGlwIGluIHRoZSByZXR1cm5lZCBzZXRcblx0XHRcdC8vIHNvICQoXCJwOmZpcnN0XCIpLmlzKFwicDpsYXN0XCIpIHdvbid0IHJldHVybiB0cnVlIGZvciBhIGRvYyB3aXRoIHR3byBcInBcIi5cblx0XHRcdHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiAmJiBybmVlZHNDb250ZXh0LnRlc3QoIHNlbGVjdG9yICkgP1xuXHRcdFx0XHRqUXVlcnkoIHNlbGVjdG9yICkgOlxuXHRcdFx0XHRzZWxlY3RvciB8fCBbXSxcblx0XHRcdGZhbHNlXG5cdFx0KS5sZW5ndGg7XG5cdH1cbn0gKTtcblxuXG4vLyBJbml0aWFsaXplIGEgalF1ZXJ5IG9iamVjdFxuXG5cbi8vIEEgY2VudHJhbCByZWZlcmVuY2UgdG8gdGhlIHJvb3QgalF1ZXJ5KGRvY3VtZW50KVxudmFyIHJvb3RqUXVlcnksXG5cblx0Ly8gQSBzaW1wbGUgd2F5IHRvIGNoZWNrIGZvciBIVE1MIHN0cmluZ3Ncblx0Ly8gUHJpb3JpdGl6ZSAjaWQgb3ZlciA8dGFnPiB0byBhdm9pZCBYU1MgdmlhIGxvY2F0aW9uLmhhc2ggKCM5NTIxKVxuXHQvLyBTdHJpY3QgSFRNTCByZWNvZ25pdGlvbiAoIzExMjkwOiBtdXN0IHN0YXJ0IHdpdGggPClcblx0Ly8gU2hvcnRjdXQgc2ltcGxlICNpZCBjYXNlIGZvciBzcGVlZFxuXHRycXVpY2tFeHByID0gL14oPzpcXHMqKDxbXFx3XFxXXSs+KVtePl0qfCMoW1xcdy1dKykpJC8sXG5cblx0aW5pdCA9IGpRdWVyeS5mbi5pbml0ID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByb290ICkge1xuXHRcdHZhciBtYXRjaCwgZWxlbTtcblxuXHRcdC8vIEhBTkRMRTogJChcIlwiKSwgJChudWxsKSwgJCh1bmRlZmluZWQpLCAkKGZhbHNlKVxuXHRcdGlmICggIXNlbGVjdG9yICkge1xuXHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0fVxuXG5cdFx0Ly8gTWV0aG9kIGluaXQoKSBhY2NlcHRzIGFuIGFsdGVybmF0ZSByb290alF1ZXJ5XG5cdFx0Ly8gc28gbWlncmF0ZSBjYW4gc3VwcG9ydCBqUXVlcnkuc3ViIChnaC0yMTAxKVxuXHRcdHJvb3QgPSByb290IHx8IHJvb3RqUXVlcnk7XG5cblx0XHQvLyBIYW5kbGUgSFRNTCBzdHJpbmdzXG5cdFx0aWYgKCB0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRpZiAoIHNlbGVjdG9yWyAwIF0gPT09IFwiPFwiICYmXG5cdFx0XHRcdHNlbGVjdG9yWyBzZWxlY3Rvci5sZW5ndGggLSAxIF0gPT09IFwiPlwiICYmXG5cdFx0XHRcdHNlbGVjdG9yLmxlbmd0aCA+PSAzICkge1xuXG5cdFx0XHRcdC8vIEFzc3VtZSB0aGF0IHN0cmluZ3MgdGhhdCBzdGFydCBhbmQgZW5kIHdpdGggPD4gYXJlIEhUTUwgYW5kIHNraXAgdGhlIHJlZ2V4IGNoZWNrXG5cdFx0XHRcdG1hdGNoID0gWyBudWxsLCBzZWxlY3RvciwgbnVsbCBdO1xuXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRtYXRjaCA9IHJxdWlja0V4cHIuZXhlYyggc2VsZWN0b3IgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTWF0Y2ggaHRtbCBvciBtYWtlIHN1cmUgbm8gY29udGV4dCBpcyBzcGVjaWZpZWQgZm9yICNpZFxuXHRcdFx0aWYgKCBtYXRjaCAmJiAoIG1hdGNoWyAxIF0gfHwgIWNvbnRleHQgKSApIHtcblxuXHRcdFx0XHQvLyBIQU5ETEU6ICQoaHRtbCkgLT4gJChhcnJheSlcblx0XHRcdFx0aWYgKCBtYXRjaFsgMSBdICkge1xuXHRcdFx0XHRcdGNvbnRleHQgPSBjb250ZXh0IGluc3RhbmNlb2YgalF1ZXJ5ID8gY29udGV4dFsgMCBdIDogY29udGV4dDtcblxuXHRcdFx0XHRcdC8vIE9wdGlvbiB0byBydW4gc2NyaXB0cyBpcyB0cnVlIGZvciBiYWNrLWNvbXBhdFxuXHRcdFx0XHRcdC8vIEludGVudGlvbmFsbHkgbGV0IHRoZSBlcnJvciBiZSB0aHJvd24gaWYgcGFyc2VIVE1MIGlzIG5vdCBwcmVzZW50XG5cdFx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCB0aGlzLCBqUXVlcnkucGFyc2VIVE1MKFxuXHRcdFx0XHRcdFx0bWF0Y2hbIDEgXSxcblx0XHRcdFx0XHRcdGNvbnRleHQgJiYgY29udGV4dC5ub2RlVHlwZSA/IGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0IDogZG9jdW1lbnQsXG5cdFx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0KSApO1xuXG5cdFx0XHRcdFx0Ly8gSEFORExFOiAkKGh0bWwsIHByb3BzKVxuXHRcdFx0XHRcdGlmICggcnNpbmdsZVRhZy50ZXN0KCBtYXRjaFsgMSBdICkgJiYgalF1ZXJ5LmlzUGxhaW5PYmplY3QoIGNvbnRleHQgKSApIHtcblx0XHRcdFx0XHRcdGZvciAoIG1hdGNoIGluIGNvbnRleHQgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gUHJvcGVydGllcyBvZiBjb250ZXh0IGFyZSBjYWxsZWQgYXMgbWV0aG9kcyBpZiBwb3NzaWJsZVxuXHRcdFx0XHRcdFx0XHRpZiAoIGlzRnVuY3Rpb24oIHRoaXNbIG1hdGNoIF0gKSApIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzWyBtYXRjaCBdKCBjb250ZXh0WyBtYXRjaCBdICk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gLi4uYW5kIG90aGVyd2lzZSBzZXQgYXMgYXR0cmlidXRlc1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuYXR0ciggbWF0Y2gsIGNvbnRleHRbIG1hdGNoIF0gKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXG5cdFx0XHRcdC8vIEhBTkRMRTogJCgjaWQpXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBtYXRjaFsgMiBdICk7XG5cblx0XHRcdFx0XHRpZiAoIGVsZW0gKSB7XG5cblx0XHRcdFx0XHRcdC8vIEluamVjdCB0aGUgZWxlbWVudCBkaXJlY3RseSBpbnRvIHRoZSBqUXVlcnkgb2JqZWN0XG5cdFx0XHRcdFx0XHR0aGlzWyAwIF0gPSBlbGVtO1xuXHRcdFx0XHRcdFx0dGhpcy5sZW5ndGggPSAxO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fVxuXG5cdFx0XHQvLyBIQU5ETEU6ICQoZXhwciwgJCguLi4pKVxuXHRcdFx0fSBlbHNlIGlmICggIWNvbnRleHQgfHwgY29udGV4dC5qcXVlcnkgKSB7XG5cdFx0XHRcdHJldHVybiAoIGNvbnRleHQgfHwgcm9vdCApLmZpbmQoIHNlbGVjdG9yICk7XG5cblx0XHRcdC8vIEhBTkRMRTogJChleHByLCBjb250ZXh0KVxuXHRcdFx0Ly8gKHdoaWNoIGlzIGp1c3QgZXF1aXZhbGVudCB0bzogJChjb250ZXh0KS5maW5kKGV4cHIpXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvciggY29udGV4dCApLmZpbmQoIHNlbGVjdG9yICk7XG5cdFx0XHR9XG5cblx0XHQvLyBIQU5ETEU6ICQoRE9NRWxlbWVudClcblx0XHR9IGVsc2UgaWYgKCBzZWxlY3Rvci5ub2RlVHlwZSApIHtcblx0XHRcdHRoaXNbIDAgXSA9IHNlbGVjdG9yO1xuXHRcdFx0dGhpcy5sZW5ndGggPSAxO1xuXHRcdFx0cmV0dXJuIHRoaXM7XG5cblx0XHQvLyBIQU5ETEU6ICQoZnVuY3Rpb24pXG5cdFx0Ly8gU2hvcnRjdXQgZm9yIGRvY3VtZW50IHJlYWR5XG5cdFx0fSBlbHNlIGlmICggaXNGdW5jdGlvbiggc2VsZWN0b3IgKSApIHtcblx0XHRcdHJldHVybiByb290LnJlYWR5ICE9PSB1bmRlZmluZWQgP1xuXHRcdFx0XHRyb290LnJlYWR5KCBzZWxlY3RvciApIDpcblxuXHRcdFx0XHQvLyBFeGVjdXRlIGltbWVkaWF0ZWx5IGlmIHJlYWR5IGlzIG5vdCBwcmVzZW50XG5cdFx0XHRcdHNlbGVjdG9yKCBqUXVlcnkgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4galF1ZXJ5Lm1ha2VBcnJheSggc2VsZWN0b3IsIHRoaXMgKTtcblx0fTtcblxuLy8gR2l2ZSB0aGUgaW5pdCBmdW5jdGlvbiB0aGUgalF1ZXJ5IHByb3RvdHlwZSBmb3IgbGF0ZXIgaW5zdGFudGlhdGlvblxuaW5pdC5wcm90b3R5cGUgPSBqUXVlcnkuZm47XG5cbi8vIEluaXRpYWxpemUgY2VudHJhbCByZWZlcmVuY2VcbnJvb3RqUXVlcnkgPSBqUXVlcnkoIGRvY3VtZW50ICk7XG5cblxudmFyIHJwYXJlbnRzcHJldiA9IC9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLFxuXG5cdC8vIE1ldGhvZHMgZ3VhcmFudGVlZCB0byBwcm9kdWNlIGEgdW5pcXVlIHNldCB3aGVuIHN0YXJ0aW5nIGZyb20gYSB1bmlxdWUgc2V0XG5cdGd1YXJhbnRlZWRVbmlxdWUgPSB7XG5cdFx0Y2hpbGRyZW46IHRydWUsXG5cdFx0Y29udGVudHM6IHRydWUsXG5cdFx0bmV4dDogdHJ1ZSxcblx0XHRwcmV2OiB0cnVlXG5cdH07XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0aGFzOiBmdW5jdGlvbiggdGFyZ2V0ICkge1xuXHRcdHZhciB0YXJnZXRzID0galF1ZXJ5KCB0YXJnZXQsIHRoaXMgKSxcblx0XHRcdGwgPSB0YXJnZXRzLmxlbmd0aDtcblxuXHRcdHJldHVybiB0aGlzLmZpbHRlciggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgaSA9IDA7XG5cdFx0XHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdGlmICggalF1ZXJ5LmNvbnRhaW5zKCB0aGlzLCB0YXJnZXRzWyBpIF0gKSApIHtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHRjbG9zZXN0OiBmdW5jdGlvbiggc2VsZWN0b3JzLCBjb250ZXh0ICkge1xuXHRcdHZhciBjdXIsXG5cdFx0XHRpID0gMCxcblx0XHRcdGwgPSB0aGlzLmxlbmd0aCxcblx0XHRcdG1hdGNoZWQgPSBbXSxcblx0XHRcdHRhcmdldHMgPSB0eXBlb2Ygc2VsZWN0b3JzICE9PSBcInN0cmluZ1wiICYmIGpRdWVyeSggc2VsZWN0b3JzICk7XG5cblx0XHQvLyBQb3NpdGlvbmFsIHNlbGVjdG9ycyBuZXZlciBtYXRjaCwgc2luY2UgdGhlcmUncyBubyBfc2VsZWN0aW9uXyBjb250ZXh0XG5cdFx0aWYgKCAhcm5lZWRzQ29udGV4dC50ZXN0KCBzZWxlY3RvcnMgKSApIHtcblx0XHRcdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0Zm9yICggY3VyID0gdGhpc1sgaSBdOyBjdXIgJiYgY3VyICE9PSBjb250ZXh0OyBjdXIgPSBjdXIucGFyZW50Tm9kZSApIHtcblxuXHRcdFx0XHRcdC8vIEFsd2F5cyBza2lwIGRvY3VtZW50IGZyYWdtZW50c1xuXHRcdFx0XHRcdGlmICggY3VyLm5vZGVUeXBlIDwgMTEgJiYgKCB0YXJnZXRzID9cblx0XHRcdFx0XHRcdHRhcmdldHMuaW5kZXgoIGN1ciApID4gLTEgOlxuXG5cdFx0XHRcdFx0XHQvLyBEb24ndCBwYXNzIG5vbi1lbGVtZW50cyB0byBTaXp6bGVcblx0XHRcdFx0XHRcdGN1ci5ub2RlVHlwZSA9PT0gMSAmJlxuXHRcdFx0XHRcdFx0XHRqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoIGN1ciwgc2VsZWN0b3JzICkgKSApIHtcblxuXHRcdFx0XHRcdFx0bWF0Y2hlZC5wdXNoKCBjdXIgKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggbWF0Y2hlZC5sZW5ndGggPiAxID8galF1ZXJ5LnVuaXF1ZVNvcnQoIG1hdGNoZWQgKSA6IG1hdGNoZWQgKTtcblx0fSxcblxuXHQvLyBEZXRlcm1pbmUgdGhlIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQgd2l0aGluIHRoZSBzZXRcblx0aW5kZXg6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0Ly8gTm8gYXJndW1lbnQsIHJldHVybiBpbmRleCBpbiBwYXJlbnRcblx0XHRpZiAoICFlbGVtICkge1xuXHRcdFx0cmV0dXJuICggdGhpc1sgMCBdICYmIHRoaXNbIDAgXS5wYXJlbnROb2RlICkgPyB0aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aCA6IC0xO1xuXHRcdH1cblxuXHRcdC8vIEluZGV4IGluIHNlbGVjdG9yXG5cdFx0aWYgKCB0eXBlb2YgZWxlbSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiBpbmRleE9mLmNhbGwoIGpRdWVyeSggZWxlbSApLCB0aGlzWyAwIF0gKTtcblx0XHR9XG5cblx0XHQvLyBMb2NhdGUgdGhlIHBvc2l0aW9uIG9mIHRoZSBkZXNpcmVkIGVsZW1lbnRcblx0XHRyZXR1cm4gaW5kZXhPZi5jYWxsKCB0aGlzLFxuXG5cdFx0XHQvLyBJZiBpdCByZWNlaXZlcyBhIGpRdWVyeSBvYmplY3QsIHRoZSBmaXJzdCBlbGVtZW50IGlzIHVzZWRcblx0XHRcdGVsZW0uanF1ZXJ5ID8gZWxlbVsgMCBdIDogZWxlbVxuXHRcdCk7XG5cdH0sXG5cblx0YWRkOiBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKFxuXHRcdFx0alF1ZXJ5LnVuaXF1ZVNvcnQoXG5cdFx0XHRcdGpRdWVyeS5tZXJnZSggdGhpcy5nZXQoKSwgalF1ZXJ5KCBzZWxlY3RvciwgY29udGV4dCApIClcblx0XHRcdClcblx0XHQpO1xuXHR9LFxuXG5cdGFkZEJhY2s6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gdGhpcy5hZGQoIHNlbGVjdG9yID09IG51bGwgP1xuXHRcdFx0dGhpcy5wcmV2T2JqZWN0IDogdGhpcy5wcmV2T2JqZWN0LmZpbHRlciggc2VsZWN0b3IgKVxuXHRcdCk7XG5cdH1cbn0gKTtcblxuZnVuY3Rpb24gc2libGluZyggY3VyLCBkaXIgKSB7XG5cdHdoaWxlICggKCBjdXIgPSBjdXJbIGRpciBdICkgJiYgY3VyLm5vZGVUeXBlICE9PSAxICkge31cblx0cmV0dXJuIGN1cjtcbn1cblxualF1ZXJ5LmVhY2goIHtcblx0cGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHR2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlO1xuXHRcdHJldHVybiBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlICE9PSAxMSA/IHBhcmVudCA6IG51bGw7XG5cdH0sXG5cdHBhcmVudHM6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBkaXIoIGVsZW0sIFwicGFyZW50Tm9kZVwiICk7XG5cdH0sXG5cdHBhcmVudHNVbnRpbDogZnVuY3Rpb24oIGVsZW0sIF9pLCB1bnRpbCApIHtcblx0XHRyZXR1cm4gZGlyKCBlbGVtLCBcInBhcmVudE5vZGVcIiwgdW50aWwgKTtcblx0fSxcblx0bmV4dDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIHNpYmxpbmcoIGVsZW0sIFwibmV4dFNpYmxpbmdcIiApO1xuXHR9LFxuXHRwcmV2OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gc2libGluZyggZWxlbSwgXCJwcmV2aW91c1NpYmxpbmdcIiApO1xuXHR9LFxuXHRuZXh0QWxsOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZGlyKCBlbGVtLCBcIm5leHRTaWJsaW5nXCIgKTtcblx0fSxcblx0cHJldkFsbDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJwcmV2aW91c1NpYmxpbmdcIiApO1xuXHR9LFxuXHRuZXh0VW50aWw6IGZ1bmN0aW9uKCBlbGVtLCBfaSwgdW50aWwgKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJuZXh0U2libGluZ1wiLCB1bnRpbCApO1xuXHR9LFxuXHRwcmV2VW50aWw6IGZ1bmN0aW9uKCBlbGVtLCBfaSwgdW50aWwgKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJwcmV2aW91c1NpYmxpbmdcIiwgdW50aWwgKTtcblx0fSxcblx0c2libGluZ3M6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBzaWJsaW5ncyggKCBlbGVtLnBhcmVudE5vZGUgfHwge30gKS5maXJzdENoaWxkLCBlbGVtICk7XG5cdH0sXG5cdGNoaWxkcmVuOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gc2libGluZ3MoIGVsZW0uZmlyc3RDaGlsZCApO1xuXHR9LFxuXHRjb250ZW50czogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0aWYgKCBlbGVtLmNvbnRlbnREb2N1bWVudCAhPSBudWxsICYmXG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExK1xuXHRcdFx0Ly8gPG9iamVjdD4gZWxlbWVudHMgd2l0aCBubyBgZGF0YWAgYXR0cmlidXRlIGhhcyBhbiBvYmplY3Rcblx0XHRcdC8vIGBjb250ZW50RG9jdW1lbnRgIHdpdGggYSBgbnVsbGAgcHJvdG90eXBlLlxuXHRcdFx0Z2V0UHJvdG8oIGVsZW0uY29udGVudERvY3VtZW50ICkgKSB7XG5cblx0XHRcdHJldHVybiBlbGVtLmNvbnRlbnREb2N1bWVudDtcblx0XHR9XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTEgb25seSwgaU9TIDcgb25seSwgQW5kcm9pZCBCcm93c2VyIDw9NC4zIG9ubHlcblx0XHQvLyBUcmVhdCB0aGUgdGVtcGxhdGUgZWxlbWVudCBhcyBhIHJlZ3VsYXIgb25lIGluIGJyb3dzZXJzIHRoYXRcblx0XHQvLyBkb24ndCBzdXBwb3J0IGl0LlxuXHRcdGlmICggbm9kZU5hbWUoIGVsZW0sIFwidGVtcGxhdGVcIiApICkge1xuXHRcdFx0ZWxlbSA9IGVsZW0uY29udGVudCB8fCBlbGVtO1xuXHRcdH1cblxuXHRcdHJldHVybiBqUXVlcnkubWVyZ2UoIFtdLCBlbGVtLmNoaWxkTm9kZXMgKTtcblx0fVxufSwgZnVuY3Rpb24oIG5hbWUsIGZuICkge1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCB1bnRpbCwgc2VsZWN0b3IgKSB7XG5cdFx0dmFyIG1hdGNoZWQgPSBqUXVlcnkubWFwKCB0aGlzLCBmbiwgdW50aWwgKTtcblxuXHRcdGlmICggbmFtZS5zbGljZSggLTUgKSAhPT0gXCJVbnRpbFwiICkge1xuXHRcdFx0c2VsZWN0b3IgPSB1bnRpbDtcblx0XHR9XG5cblx0XHRpZiAoIHNlbGVjdG9yICYmIHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdG1hdGNoZWQgPSBqUXVlcnkuZmlsdGVyKCBzZWxlY3RvciwgbWF0Y2hlZCApO1xuXHRcdH1cblxuXHRcdGlmICggdGhpcy5sZW5ndGggPiAxICkge1xuXG5cdFx0XHQvLyBSZW1vdmUgZHVwbGljYXRlc1xuXHRcdFx0aWYgKCAhZ3VhcmFudGVlZFVuaXF1ZVsgbmFtZSBdICkge1xuXHRcdFx0XHRqUXVlcnkudW5pcXVlU29ydCggbWF0Y2hlZCApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBSZXZlcnNlIG9yZGVyIGZvciBwYXJlbnRzKiBhbmQgcHJldi1kZXJpdmF0aXZlc1xuXHRcdFx0aWYgKCBycGFyZW50c3ByZXYudGVzdCggbmFtZSApICkge1xuXHRcdFx0XHRtYXRjaGVkLnJldmVyc2UoKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIG1hdGNoZWQgKTtcblx0fTtcbn0gKTtcbnZhciBybm90aHRtbHdoaXRlID0gKCAvW15cXHgyMFxcdFxcclxcblxcZl0rL2cgKTtcblxuXG5cbi8vIENvbnZlcnQgU3RyaW5nLWZvcm1hdHRlZCBvcHRpb25zIGludG8gT2JqZWN0LWZvcm1hdHRlZCBvbmVzXG5mdW5jdGlvbiBjcmVhdGVPcHRpb25zKCBvcHRpb25zICkge1xuXHR2YXIgb2JqZWN0ID0ge307XG5cdGpRdWVyeS5lYWNoKCBvcHRpb25zLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgW10sIGZ1bmN0aW9uKCBfLCBmbGFnICkge1xuXHRcdG9iamVjdFsgZmxhZyBdID0gdHJ1ZTtcblx0fSApO1xuXHRyZXR1cm4gb2JqZWN0O1xufVxuXG4vKlxuICogQ3JlYXRlIGEgY2FsbGJhY2sgbGlzdCB1c2luZyB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnM6XG4gKlxuICpcdG9wdGlvbnM6IGFuIG9wdGlvbmFsIGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIG9wdGlvbnMgdGhhdCB3aWxsIGNoYW5nZSBob3dcbiAqXHRcdFx0dGhlIGNhbGxiYWNrIGxpc3QgYmVoYXZlcyBvciBhIG1vcmUgdHJhZGl0aW9uYWwgb3B0aW9uIG9iamVjdFxuICpcbiAqIEJ5IGRlZmF1bHQgYSBjYWxsYmFjayBsaXN0IHdpbGwgYWN0IGxpa2UgYW4gZXZlbnQgY2FsbGJhY2sgbGlzdCBhbmQgY2FuIGJlXG4gKiBcImZpcmVkXCIgbXVsdGlwbGUgdGltZXMuXG4gKlxuICogUG9zc2libGUgb3B0aW9uczpcbiAqXG4gKlx0b25jZTpcdFx0XHR3aWxsIGVuc3VyZSB0aGUgY2FsbGJhY2sgbGlzdCBjYW4gb25seSBiZSBmaXJlZCBvbmNlIChsaWtlIGEgRGVmZXJyZWQpXG4gKlxuICpcdG1lbW9yeTpcdFx0XHR3aWxsIGtlZXAgdHJhY2sgb2YgcHJldmlvdXMgdmFsdWVzIGFuZCB3aWxsIGNhbGwgYW55IGNhbGxiYWNrIGFkZGVkXG4gKlx0XHRcdFx0XHRhZnRlciB0aGUgbGlzdCBoYXMgYmVlbiBmaXJlZCByaWdodCBhd2F5IHdpdGggdGhlIGxhdGVzdCBcIm1lbW9yaXplZFwiXG4gKlx0XHRcdFx0XHR2YWx1ZXMgKGxpa2UgYSBEZWZlcnJlZClcbiAqXG4gKlx0dW5pcXVlOlx0XHRcdHdpbGwgZW5zdXJlIGEgY2FsbGJhY2sgY2FuIG9ubHkgYmUgYWRkZWQgb25jZSAobm8gZHVwbGljYXRlIGluIHRoZSBsaXN0KVxuICpcbiAqXHRzdG9wT25GYWxzZTpcdGludGVycnVwdCBjYWxsaW5ncyB3aGVuIGEgY2FsbGJhY2sgcmV0dXJucyBmYWxzZVxuICpcbiAqL1xualF1ZXJ5LkNhbGxiYWNrcyA9IGZ1bmN0aW9uKCBvcHRpb25zICkge1xuXG5cdC8vIENvbnZlcnQgb3B0aW9ucyBmcm9tIFN0cmluZy1mb3JtYXR0ZWQgdG8gT2JqZWN0LWZvcm1hdHRlZCBpZiBuZWVkZWRcblx0Ly8gKHdlIGNoZWNrIGluIGNhY2hlIGZpcnN0KVxuXHRvcHRpb25zID0gdHlwZW9mIG9wdGlvbnMgPT09IFwic3RyaW5nXCIgP1xuXHRcdGNyZWF0ZU9wdGlvbnMoIG9wdGlvbnMgKSA6XG5cdFx0alF1ZXJ5LmV4dGVuZCgge30sIG9wdGlvbnMgKTtcblxuXHR2YXIgLy8gRmxhZyB0byBrbm93IGlmIGxpc3QgaXMgY3VycmVudGx5IGZpcmluZ1xuXHRcdGZpcmluZyxcblxuXHRcdC8vIExhc3QgZmlyZSB2YWx1ZSBmb3Igbm9uLWZvcmdldHRhYmxlIGxpc3RzXG5cdFx0bWVtb3J5LFxuXG5cdFx0Ly8gRmxhZyB0byBrbm93IGlmIGxpc3Qgd2FzIGFscmVhZHkgZmlyZWRcblx0XHRmaXJlZCxcblxuXHRcdC8vIEZsYWcgdG8gcHJldmVudCBmaXJpbmdcblx0XHRsb2NrZWQsXG5cblx0XHQvLyBBY3R1YWwgY2FsbGJhY2sgbGlzdFxuXHRcdGxpc3QgPSBbXSxcblxuXHRcdC8vIFF1ZXVlIG9mIGV4ZWN1dGlvbiBkYXRhIGZvciByZXBlYXRhYmxlIGxpc3RzXG5cdFx0cXVldWUgPSBbXSxcblxuXHRcdC8vIEluZGV4IG9mIGN1cnJlbnRseSBmaXJpbmcgY2FsbGJhY2sgKG1vZGlmaWVkIGJ5IGFkZC9yZW1vdmUgYXMgbmVlZGVkKVxuXHRcdGZpcmluZ0luZGV4ID0gLTEsXG5cblx0XHQvLyBGaXJlIGNhbGxiYWNrc1xuXHRcdGZpcmUgPSBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gRW5mb3JjZSBzaW5nbGUtZmlyaW5nXG5cdFx0XHRsb2NrZWQgPSBsb2NrZWQgfHwgb3B0aW9ucy5vbmNlO1xuXG5cdFx0XHQvLyBFeGVjdXRlIGNhbGxiYWNrcyBmb3IgYWxsIHBlbmRpbmcgZXhlY3V0aW9ucyxcblx0XHRcdC8vIHJlc3BlY3RpbmcgZmlyaW5nSW5kZXggb3ZlcnJpZGVzIGFuZCBydW50aW1lIGNoYW5nZXNcblx0XHRcdGZpcmVkID0gZmlyaW5nID0gdHJ1ZTtcblx0XHRcdGZvciAoIDsgcXVldWUubGVuZ3RoOyBmaXJpbmdJbmRleCA9IC0xICkge1xuXHRcdFx0XHRtZW1vcnkgPSBxdWV1ZS5zaGlmdCgpO1xuXHRcdFx0XHR3aGlsZSAoICsrZmlyaW5nSW5kZXggPCBsaXN0Lmxlbmd0aCApIHtcblxuXHRcdFx0XHRcdC8vIFJ1biBjYWxsYmFjayBhbmQgY2hlY2sgZm9yIGVhcmx5IHRlcm1pbmF0aW9uXG5cdFx0XHRcdFx0aWYgKCBsaXN0WyBmaXJpbmdJbmRleCBdLmFwcGx5KCBtZW1vcnlbIDAgXSwgbWVtb3J5WyAxIF0gKSA9PT0gZmFsc2UgJiZcblx0XHRcdFx0XHRcdG9wdGlvbnMuc3RvcE9uRmFsc2UgKSB7XG5cblx0XHRcdFx0XHRcdC8vIEp1bXAgdG8gZW5kIGFuZCBmb3JnZXQgdGhlIGRhdGEgc28gLmFkZCBkb2Vzbid0IHJlLWZpcmVcblx0XHRcdFx0XHRcdGZpcmluZ0luZGV4ID0gbGlzdC5sZW5ndGg7XG5cdFx0XHRcdFx0XHRtZW1vcnkgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gRm9yZ2V0IHRoZSBkYXRhIGlmIHdlJ3JlIGRvbmUgd2l0aCBpdFxuXHRcdFx0aWYgKCAhb3B0aW9ucy5tZW1vcnkgKSB7XG5cdFx0XHRcdG1lbW9yeSA9IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHRmaXJpbmcgPSBmYWxzZTtcblxuXHRcdFx0Ly8gQ2xlYW4gdXAgaWYgd2UncmUgZG9uZSBmaXJpbmcgZm9yIGdvb2Rcblx0XHRcdGlmICggbG9ja2VkICkge1xuXG5cdFx0XHRcdC8vIEtlZXAgYW4gZW1wdHkgbGlzdCBpZiB3ZSBoYXZlIGRhdGEgZm9yIGZ1dHVyZSBhZGQgY2FsbHNcblx0XHRcdFx0aWYgKCBtZW1vcnkgKSB7XG5cdFx0XHRcdFx0bGlzdCA9IFtdO1xuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSwgdGhpcyBvYmplY3QgaXMgc3BlbnRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRsaXN0ID0gXCJcIjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHQvLyBBY3R1YWwgQ2FsbGJhY2tzIG9iamVjdFxuXHRcdHNlbGYgPSB7XG5cblx0XHRcdC8vIEFkZCBhIGNhbGxiYWNrIG9yIGEgY29sbGVjdGlvbiBvZiBjYWxsYmFja3MgdG8gdGhlIGxpc3Rcblx0XHRcdGFkZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggbGlzdCApIHtcblxuXHRcdFx0XHRcdC8vIElmIHdlIGhhdmUgbWVtb3J5IGZyb20gYSBwYXN0IHJ1biwgd2Ugc2hvdWxkIGZpcmUgYWZ0ZXIgYWRkaW5nXG5cdFx0XHRcdFx0aWYgKCBtZW1vcnkgJiYgIWZpcmluZyApIHtcblx0XHRcdFx0XHRcdGZpcmluZ0luZGV4ID0gbGlzdC5sZW5ndGggLSAxO1xuXHRcdFx0XHRcdFx0cXVldWUucHVzaCggbWVtb3J5ICk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0KCBmdW5jdGlvbiBhZGQoIGFyZ3MgKSB7XG5cdFx0XHRcdFx0XHRqUXVlcnkuZWFjaCggYXJncywgZnVuY3Rpb24oIF8sIGFyZyApIHtcblx0XHRcdFx0XHRcdFx0aWYgKCBpc0Z1bmN0aW9uKCBhcmcgKSApIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoICFvcHRpb25zLnVuaXF1ZSB8fCAhc2VsZi5oYXMoIGFyZyApICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0bGlzdC5wdXNoKCBhcmcgKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIGFyZyAmJiBhcmcubGVuZ3RoICYmIHRvVHlwZSggYXJnICkgIT09IFwic3RyaW5nXCIgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBJbnNwZWN0IHJlY3Vyc2l2ZWx5XG5cdFx0XHRcdFx0XHRcdFx0YWRkKCBhcmcgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdH0gKSggYXJndW1lbnRzICk7XG5cblx0XHRcdFx0XHRpZiAoIG1lbW9yeSAmJiAhZmlyaW5nICkge1xuXHRcdFx0XHRcdFx0ZmlyZSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cblx0XHRcdC8vIFJlbW92ZSBhIGNhbGxiYWNrIGZyb20gdGhlIGxpc3Rcblx0XHRcdHJlbW92ZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGpRdWVyeS5lYWNoKCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBfLCBhcmcgKSB7XG5cdFx0XHRcdFx0dmFyIGluZGV4O1xuXHRcdFx0XHRcdHdoaWxlICggKCBpbmRleCA9IGpRdWVyeS5pbkFycmF5KCBhcmcsIGxpc3QsIGluZGV4ICkgKSA+IC0xICkge1xuXHRcdFx0XHRcdFx0bGlzdC5zcGxpY2UoIGluZGV4LCAxICk7XG5cblx0XHRcdFx0XHRcdC8vIEhhbmRsZSBmaXJpbmcgaW5kZXhlc1xuXHRcdFx0XHRcdFx0aWYgKCBpbmRleCA8PSBmaXJpbmdJbmRleCApIHtcblx0XHRcdFx0XHRcdFx0ZmlyaW5nSW5kZXgtLTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBDaGVjayBpZiBhIGdpdmVuIGNhbGxiYWNrIGlzIGluIHRoZSBsaXN0LlxuXHRcdFx0Ly8gSWYgbm8gYXJndW1lbnQgaXMgZ2l2ZW4sIHJldHVybiB3aGV0aGVyIG9yIG5vdCBsaXN0IGhhcyBjYWxsYmFja3MgYXR0YWNoZWQuXG5cdFx0XHRoYXM6IGZ1bmN0aW9uKCBmbiApIHtcblx0XHRcdFx0cmV0dXJuIGZuID9cblx0XHRcdFx0XHRqUXVlcnkuaW5BcnJheSggZm4sIGxpc3QgKSA+IC0xIDpcblx0XHRcdFx0XHRsaXN0Lmxlbmd0aCA+IDA7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBSZW1vdmUgYWxsIGNhbGxiYWNrcyBmcm9tIHRoZSBsaXN0XG5cdFx0XHRlbXB0eTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggbGlzdCApIHtcblx0XHRcdFx0XHRsaXN0ID0gW107XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBEaXNhYmxlIC5maXJlIGFuZCAuYWRkXG5cdFx0XHQvLyBBYm9ydCBhbnkgY3VycmVudC9wZW5kaW5nIGV4ZWN1dGlvbnNcblx0XHRcdC8vIENsZWFyIGFsbCBjYWxsYmFja3MgYW5kIHZhbHVlc1xuXHRcdFx0ZGlzYWJsZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGxvY2tlZCA9IHF1ZXVlID0gW107XG5cdFx0XHRcdGxpc3QgPSBtZW1vcnkgPSBcIlwiO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cdFx0XHRkaXNhYmxlZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAhbGlzdDtcblx0XHRcdH0sXG5cblx0XHRcdC8vIERpc2FibGUgLmZpcmVcblx0XHRcdC8vIEFsc28gZGlzYWJsZSAuYWRkIHVubGVzcyB3ZSBoYXZlIG1lbW9yeSAoc2luY2UgaXQgd291bGQgaGF2ZSBubyBlZmZlY3QpXG5cdFx0XHQvLyBBYm9ydCBhbnkgcGVuZGluZyBleGVjdXRpb25zXG5cdFx0XHRsb2NrOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0bG9ja2VkID0gcXVldWUgPSBbXTtcblx0XHRcdFx0aWYgKCAhbWVtb3J5ICYmICFmaXJpbmcgKSB7XG5cdFx0XHRcdFx0bGlzdCA9IG1lbW9yeSA9IFwiXCI7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXHRcdFx0bG9ja2VkOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuICEhbG9ja2VkO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gQ2FsbCBhbGwgY2FsbGJhY2tzIHdpdGggdGhlIGdpdmVuIGNvbnRleHQgYW5kIGFyZ3VtZW50c1xuXHRcdFx0ZmlyZVdpdGg6IGZ1bmN0aW9uKCBjb250ZXh0LCBhcmdzICkge1xuXHRcdFx0XHRpZiAoICFsb2NrZWQgKSB7XG5cdFx0XHRcdFx0YXJncyA9IGFyZ3MgfHwgW107XG5cdFx0XHRcdFx0YXJncyA9IFsgY29udGV4dCwgYXJncy5zbGljZSA/IGFyZ3Muc2xpY2UoKSA6IGFyZ3MgXTtcblx0XHRcdFx0XHRxdWV1ZS5wdXNoKCBhcmdzICk7XG5cdFx0XHRcdFx0aWYgKCAhZmlyaW5nICkge1xuXHRcdFx0XHRcdFx0ZmlyZSgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cblx0XHRcdC8vIENhbGwgYWxsIHRoZSBjYWxsYmFja3Mgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzXG5cdFx0XHRmaXJlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0c2VsZi5maXJlV2l0aCggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gVG8ga25vdyBpZiB0aGUgY2FsbGJhY2tzIGhhdmUgYWxyZWFkeSBiZWVuIGNhbGxlZCBhdCBsZWFzdCBvbmNlXG5cdFx0XHRmaXJlZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAhIWZpcmVkO1xuXHRcdFx0fVxuXHRcdH07XG5cblx0cmV0dXJuIHNlbGY7XG59O1xuXG5cbmZ1bmN0aW9uIElkZW50aXR5KCB2ICkge1xuXHRyZXR1cm4gdjtcbn1cbmZ1bmN0aW9uIFRocm93ZXIoIGV4ICkge1xuXHR0aHJvdyBleDtcbn1cblxuZnVuY3Rpb24gYWRvcHRWYWx1ZSggdmFsdWUsIHJlc29sdmUsIHJlamVjdCwgbm9WYWx1ZSApIHtcblx0dmFyIG1ldGhvZDtcblxuXHR0cnkge1xuXG5cdFx0Ly8gQ2hlY2sgZm9yIHByb21pc2UgYXNwZWN0IGZpcnN0IHRvIHByaXZpbGVnZSBzeW5jaHJvbm91cyBiZWhhdmlvclxuXHRcdGlmICggdmFsdWUgJiYgaXNGdW5jdGlvbiggKCBtZXRob2QgPSB2YWx1ZS5wcm9taXNlICkgKSApIHtcblx0XHRcdG1ldGhvZC5jYWxsKCB2YWx1ZSApLmRvbmUoIHJlc29sdmUgKS5mYWlsKCByZWplY3QgKTtcblxuXHRcdC8vIE90aGVyIHRoZW5hYmxlc1xuXHRcdH0gZWxzZSBpZiAoIHZhbHVlICYmIGlzRnVuY3Rpb24oICggbWV0aG9kID0gdmFsdWUudGhlbiApICkgKSB7XG5cdFx0XHRtZXRob2QuY2FsbCggdmFsdWUsIHJlc29sdmUsIHJlamVjdCApO1xuXG5cdFx0Ly8gT3RoZXIgbm9uLXRoZW5hYmxlc1xuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIENvbnRyb2wgYHJlc29sdmVgIGFyZ3VtZW50cyBieSBsZXR0aW5nIEFycmF5I3NsaWNlIGNhc3QgYm9vbGVhbiBgbm9WYWx1ZWAgdG8gaW50ZWdlcjpcblx0XHRcdC8vICogZmFsc2U6IFsgdmFsdWUgXS5zbGljZSggMCApID0+IHJlc29sdmUoIHZhbHVlIClcblx0XHRcdC8vICogdHJ1ZTogWyB2YWx1ZSBdLnNsaWNlKCAxICkgPT4gcmVzb2x2ZSgpXG5cdFx0XHRyZXNvbHZlLmFwcGx5KCB1bmRlZmluZWQsIFsgdmFsdWUgXS5zbGljZSggbm9WYWx1ZSApICk7XG5cdFx0fVxuXG5cdC8vIEZvciBQcm9taXNlcy9BKywgY29udmVydCBleGNlcHRpb25zIGludG8gcmVqZWN0aW9uc1xuXHQvLyBTaW5jZSBqUXVlcnkud2hlbiBkb2Vzbid0IHVud3JhcCB0aGVuYWJsZXMsIHdlIGNhbiBza2lwIHRoZSBleHRyYSBjaGVja3MgYXBwZWFyaW5nIGluXG5cdC8vIERlZmVycmVkI3RoZW4gdG8gY29uZGl0aW9uYWxseSBzdXBwcmVzcyByZWplY3Rpb24uXG5cdH0gY2F0Y2ggKCB2YWx1ZSApIHtcblxuXHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgNC4wIG9ubHlcblx0XHQvLyBTdHJpY3QgbW9kZSBmdW5jdGlvbnMgaW52b2tlZCB3aXRob3V0IC5jYWxsLy5hcHBseSBnZXQgZ2xvYmFsLW9iamVjdCBjb250ZXh0XG5cdFx0cmVqZWN0LmFwcGx5KCB1bmRlZmluZWQsIFsgdmFsdWUgXSApO1xuXHR9XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHREZWZlcnJlZDogZnVuY3Rpb24oIGZ1bmMgKSB7XG5cdFx0dmFyIHR1cGxlcyA9IFtcblxuXHRcdFx0XHQvLyBhY3Rpb24sIGFkZCBsaXN0ZW5lciwgY2FsbGJhY2tzLFxuXHRcdFx0XHQvLyAuLi4gLnRoZW4gaGFuZGxlcnMsIGFyZ3VtZW50IGluZGV4LCBbZmluYWwgc3RhdGVdXG5cdFx0XHRcdFsgXCJub3RpZnlcIiwgXCJwcm9ncmVzc1wiLCBqUXVlcnkuQ2FsbGJhY2tzKCBcIm1lbW9yeVwiICksXG5cdFx0XHRcdFx0alF1ZXJ5LkNhbGxiYWNrcyggXCJtZW1vcnlcIiApLCAyIF0sXG5cdFx0XHRcdFsgXCJyZXNvbHZlXCIsIFwiZG9uZVwiLCBqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKSxcblx0XHRcdFx0XHRqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKSwgMCwgXCJyZXNvbHZlZFwiIF0sXG5cdFx0XHRcdFsgXCJyZWplY3RcIiwgXCJmYWlsXCIsIGpRdWVyeS5DYWxsYmFja3MoIFwib25jZSBtZW1vcnlcIiApLFxuXHRcdFx0XHRcdGpRdWVyeS5DYWxsYmFja3MoIFwib25jZSBtZW1vcnlcIiApLCAxLCBcInJlamVjdGVkXCIgXVxuXHRcdFx0XSxcblx0XHRcdHN0YXRlID0gXCJwZW5kaW5nXCIsXG5cdFx0XHRwcm9taXNlID0ge1xuXHRcdFx0XHRzdGF0ZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHN0YXRlO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRhbHdheXM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGRlZmVycmVkLmRvbmUoIGFyZ3VtZW50cyApLmZhaWwoIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRcImNhdGNoXCI6IGZ1bmN0aW9uKCBmbiApIHtcblx0XHRcdFx0XHRyZXR1cm4gcHJvbWlzZS50aGVuKCBudWxsLCBmbiApO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIEtlZXAgcGlwZSBmb3IgYmFjay1jb21wYXRcblx0XHRcdFx0cGlwZTogZnVuY3Rpb24oIC8qIGZuRG9uZSwgZm5GYWlsLCBmblByb2dyZXNzICovICkge1xuXHRcdFx0XHRcdHZhciBmbnMgPSBhcmd1bWVudHM7XG5cblx0XHRcdFx0XHRyZXR1cm4galF1ZXJ5LkRlZmVycmVkKCBmdW5jdGlvbiggbmV3RGVmZXIgKSB7XG5cdFx0XHRcdFx0XHRqUXVlcnkuZWFjaCggdHVwbGVzLCBmdW5jdGlvbiggX2ksIHR1cGxlICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIE1hcCB0dXBsZXMgKHByb2dyZXNzLCBkb25lLCBmYWlsKSB0byBhcmd1bWVudHMgKGRvbmUsIGZhaWwsIHByb2dyZXNzKVxuXHRcdFx0XHRcdFx0XHR2YXIgZm4gPSBpc0Z1bmN0aW9uKCBmbnNbIHR1cGxlWyA0IF0gXSApICYmIGZuc1sgdHVwbGVbIDQgXSBdO1xuXG5cdFx0XHRcdFx0XHRcdC8vIGRlZmVycmVkLnByb2dyZXNzKGZ1bmN0aW9uKCkgeyBiaW5kIHRvIG5ld0RlZmVyIG9yIG5ld0RlZmVyLm5vdGlmeSB9KVxuXHRcdFx0XHRcdFx0XHQvLyBkZWZlcnJlZC5kb25lKGZ1bmN0aW9uKCkgeyBiaW5kIHRvIG5ld0RlZmVyIG9yIG5ld0RlZmVyLnJlc29sdmUgfSlcblx0XHRcdFx0XHRcdFx0Ly8gZGVmZXJyZWQuZmFpbChmdW5jdGlvbigpIHsgYmluZCB0byBuZXdEZWZlciBvciBuZXdEZWZlci5yZWplY3QgfSlcblx0XHRcdFx0XHRcdFx0ZGVmZXJyZWRbIHR1cGxlWyAxIF0gXSggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIHJldHVybmVkID0gZm4gJiYgZm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdFx0XHRcdGlmICggcmV0dXJuZWQgJiYgaXNGdW5jdGlvbiggcmV0dXJuZWQucHJvbWlzZSApICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuZWQucHJvbWlzZSgpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC5wcm9ncmVzcyggbmV3RGVmZXIubm90aWZ5IClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LmRvbmUoIG5ld0RlZmVyLnJlc29sdmUgKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQuZmFpbCggbmV3RGVmZXIucmVqZWN0ICk7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdG5ld0RlZmVyWyB0dXBsZVsgMCBdICsgXCJXaXRoXCIgXShcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm4gPyBbIHJldHVybmVkIF0gOiBhcmd1bWVudHNcblx0XHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0XHRmbnMgPSBudWxsO1xuXHRcdFx0XHRcdH0gKS5wcm9taXNlKCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRoZW46IGZ1bmN0aW9uKCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCwgb25Qcm9ncmVzcyApIHtcblx0XHRcdFx0XHR2YXIgbWF4RGVwdGggPSAwO1xuXHRcdFx0XHRcdGZ1bmN0aW9uIHJlc29sdmUoIGRlcHRoLCBkZWZlcnJlZCwgaGFuZGxlciwgc3BlY2lhbCApIHtcblx0XHRcdFx0XHRcdHJldHVybiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzLFxuXHRcdFx0XHRcdFx0XHRcdGFyZ3MgPSBhcmd1bWVudHMsXG5cdFx0XHRcdFx0XHRcdFx0bWlnaHRUaHJvdyA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJldHVybmVkLCB0aGVuO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy4zLjMuM1xuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNTlcblx0XHRcdFx0XHRcdFx0XHRcdC8vIElnbm9yZSBkb3VibGUtcmVzb2x1dGlvbiBhdHRlbXB0c1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBkZXB0aCA8IG1heERlcHRoICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybmVkID0gaGFuZGxlci5hcHBseSggdGhhdCwgYXJncyApO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy4xXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBodHRwczovL3Byb21pc2VzYXBsdXMuY29tLyNwb2ludC00OFxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCByZXR1cm5lZCA9PT0gZGVmZXJyZWQucHJvbWlzZSgpICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCBcIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvblwiICk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb25zIDIuMy4zLjEsIDMuNVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNTRcblx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTc1XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBSZXRyaWV2ZSBgdGhlbmAgb25seSBvbmNlXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGVuID0gcmV0dXJuZWQgJiZcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy40XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTY0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIE9ubHkgY2hlY2sgb2JqZWN0cyBhbmQgZnVuY3Rpb25zIGZvciB0aGVuYWJpbGl0eVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQoIHR5cGVvZiByZXR1cm5lZCA9PT0gXCJvYmplY3RcIiB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGVvZiByZXR1cm5lZCA9PT0gXCJmdW5jdGlvblwiICkgJiZcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuZWQudGhlbjtcblxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gSGFuZGxlIGEgcmV0dXJuZWQgdGhlbmFibGVcblx0XHRcdFx0XHRcdFx0XHRcdGlmICggaXNGdW5jdGlvbiggdGhlbiApICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFNwZWNpYWwgcHJvY2Vzc29ycyAobm90aWZ5KSBqdXN0IHdhaXQgZm9yIHJlc29sdXRpb25cblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBzcGVjaWFsICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoZW4uY2FsbChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybmVkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBJZGVudGl0eSwgc3BlY2lhbCApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBUaHJvd2VyLCBzcGVjaWFsIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIE5vcm1hbCBwcm9jZXNzb3JzIChyZXNvbHZlKSBhbHNvIGhvb2sgaW50byBwcm9ncmVzc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gLi4uYW5kIGRpc3JlZ2FyZCBvbGRlciByZXNvbHV0aW9uIHZhbHVlc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1heERlcHRoKys7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGVuLmNhbGwoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5lZCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoIG1heERlcHRoLCBkZWZlcnJlZCwgSWRlbnRpdHksIHNwZWNpYWwgKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoIG1heERlcHRoLCBkZWZlcnJlZCwgVGhyb3dlciwgc3BlY2lhbCApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBJZGVudGl0eSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGVmZXJyZWQubm90aWZ5V2l0aCApXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBIYW5kbGUgYWxsIG90aGVyIHJldHVybmVkIHZhbHVlc1xuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBPbmx5IHN1YnN0aXR1dGUgaGFuZGxlcnMgcGFzcyBvbiBjb250ZXh0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGFuZCBtdWx0aXBsZSB2YWx1ZXMgKG5vbi1zcGVjIGJlaGF2aW9yKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIGhhbmRsZXIgIT09IElkZW50aXR5ICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQgPSB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXJncyA9IFsgcmV0dXJuZWQgXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFByb2Nlc3MgdGhlIHZhbHVlKHMpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIERlZmF1bHQgcHJvY2VzcyBpcyByZXNvbHZlXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCggc3BlY2lhbCB8fCBkZWZlcnJlZC5yZXNvbHZlV2l0aCApKCB0aGF0LCBhcmdzICk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSxcblxuXHRcdFx0XHRcdFx0XHRcdC8vIE9ubHkgbm9ybWFsIHByb2Nlc3NvcnMgKHJlc29sdmUpIGNhdGNoIGFuZCByZWplY3QgZXhjZXB0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdHByb2Nlc3MgPSBzcGVjaWFsID9cblx0XHRcdFx0XHRcdFx0XHRcdG1pZ2h0VGhyb3cgOlxuXHRcdFx0XHRcdFx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWlnaHRUaHJvdygpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGNhdGNoICggZSApIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5LkRlZmVycmVkLmV4Y2VwdGlvbkhvb2sgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayggZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cHJvY2Vzcy5zdGFja1RyYWNlICk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogUHJvbWlzZXMvQSsgc2VjdGlvbiAyLjMuMy4zLjQuMVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTYxXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gSWdub3JlIHBvc3QtcmVzb2x1dGlvbiBleGNlcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBkZXB0aCArIDEgPj0gbWF4RGVwdGggKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIE9ubHkgc3Vic3RpdHV0ZSBoYW5kbGVycyBwYXNzIG9uIGNvbnRleHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGFuZCBtdWx0aXBsZSB2YWx1ZXMgKG5vbi1zcGVjIGJlaGF2aW9yKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBoYW5kbGVyICE9PSBUaHJvd2VyICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0ID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhcmdzID0gWyBlIF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRlZmVycmVkLnJlamVjdFdpdGgoIHRoYXQsIGFyZ3MgKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogUHJvbWlzZXMvQSsgc2VjdGlvbiAyLjMuMy4zLjFcblx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNTdcblx0XHRcdFx0XHRcdFx0Ly8gUmUtcmVzb2x2ZSBwcm9taXNlcyBpbW1lZGlhdGVseSB0byBkb2RnZSBmYWxzZSByZWplY3Rpb24gZnJvbVxuXHRcdFx0XHRcdFx0XHQvLyBzdWJzZXF1ZW50IGVycm9yc1xuXHRcdFx0XHRcdFx0XHRpZiAoIGRlcHRoICkge1xuXHRcdFx0XHRcdFx0XHRcdHByb2Nlc3MoKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHRcdC8vIENhbGwgYW4gb3B0aW9uYWwgaG9vayB0byByZWNvcmQgdGhlIHN0YWNrLCBpbiBjYXNlIG9mIGV4Y2VwdGlvblxuXHRcdFx0XHRcdFx0XHRcdC8vIHNpbmNlIGl0J3Mgb3RoZXJ3aXNlIGxvc3Qgd2hlbiBleGVjdXRpb24gZ29lcyBhc3luY1xuXHRcdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5LkRlZmVycmVkLmdldFN0YWNrSG9vayApIHtcblx0XHRcdFx0XHRcdFx0XHRcdHByb2Nlc3Muc3RhY2tUcmFjZSA9IGpRdWVyeS5EZWZlcnJlZC5nZXRTdGFja0hvb2soKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0d2luZG93LnNldFRpbWVvdXQoIHByb2Nlc3MgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXR1cm4galF1ZXJ5LkRlZmVycmVkKCBmdW5jdGlvbiggbmV3RGVmZXIgKSB7XG5cblx0XHRcdFx0XHRcdC8vIHByb2dyZXNzX2hhbmRsZXJzLmFkZCggLi4uIClcblx0XHRcdFx0XHRcdHR1cGxlc1sgMCBdWyAzIF0uYWRkKFxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKFxuXHRcdFx0XHRcdFx0XHRcdDAsXG5cdFx0XHRcdFx0XHRcdFx0bmV3RGVmZXIsXG5cdFx0XHRcdFx0XHRcdFx0aXNGdW5jdGlvbiggb25Qcm9ncmVzcyApID9cblx0XHRcdFx0XHRcdFx0XHRcdG9uUHJvZ3Jlc3MgOlxuXHRcdFx0XHRcdFx0XHRcdFx0SWRlbnRpdHksXG5cdFx0XHRcdFx0XHRcdFx0bmV3RGVmZXIubm90aWZ5V2l0aFxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHQvLyBmdWxmaWxsZWRfaGFuZGxlcnMuYWRkKCAuLi4gKVxuXHRcdFx0XHRcdFx0dHVwbGVzWyAxIF1bIDMgXS5hZGQoXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoXG5cdFx0XHRcdFx0XHRcdFx0MCxcblx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlcixcblx0XHRcdFx0XHRcdFx0XHRpc0Z1bmN0aW9uKCBvbkZ1bGZpbGxlZCApID9cblx0XHRcdFx0XHRcdFx0XHRcdG9uRnVsZmlsbGVkIDpcblx0XHRcdFx0XHRcdFx0XHRcdElkZW50aXR5XG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdC8vIHJlamVjdGVkX2hhbmRsZXJzLmFkZCggLi4uIClcblx0XHRcdFx0XHRcdHR1cGxlc1sgMiBdWyAzIF0uYWRkKFxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKFxuXHRcdFx0XHRcdFx0XHRcdDAsXG5cdFx0XHRcdFx0XHRcdFx0bmV3RGVmZXIsXG5cdFx0XHRcdFx0XHRcdFx0aXNGdW5jdGlvbiggb25SZWplY3RlZCApID9cblx0XHRcdFx0XHRcdFx0XHRcdG9uUmVqZWN0ZWQgOlxuXHRcdFx0XHRcdFx0XHRcdFx0VGhyb3dlclxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH0gKS5wcm9taXNlKCk7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gR2V0IGEgcHJvbWlzZSBmb3IgdGhpcyBkZWZlcnJlZFxuXHRcdFx0XHQvLyBJZiBvYmogaXMgcHJvdmlkZWQsIHRoZSBwcm9taXNlIGFzcGVjdCBpcyBhZGRlZCB0byB0aGUgb2JqZWN0XG5cdFx0XHRcdHByb21pc2U6IGZ1bmN0aW9uKCBvYmogKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9iaiAhPSBudWxsID8galF1ZXJ5LmV4dGVuZCggb2JqLCBwcm9taXNlICkgOiBwcm9taXNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0ZGVmZXJyZWQgPSB7fTtcblxuXHRcdC8vIEFkZCBsaXN0LXNwZWNpZmljIG1ldGhvZHNcblx0XHRqUXVlcnkuZWFjaCggdHVwbGVzLCBmdW5jdGlvbiggaSwgdHVwbGUgKSB7XG5cdFx0XHR2YXIgbGlzdCA9IHR1cGxlWyAyIF0sXG5cdFx0XHRcdHN0YXRlU3RyaW5nID0gdHVwbGVbIDUgXTtcblxuXHRcdFx0Ly8gcHJvbWlzZS5wcm9ncmVzcyA9IGxpc3QuYWRkXG5cdFx0XHQvLyBwcm9taXNlLmRvbmUgPSBsaXN0LmFkZFxuXHRcdFx0Ly8gcHJvbWlzZS5mYWlsID0gbGlzdC5hZGRcblx0XHRcdHByb21pc2VbIHR1cGxlWyAxIF0gXSA9IGxpc3QuYWRkO1xuXG5cdFx0XHQvLyBIYW5kbGUgc3RhdGVcblx0XHRcdGlmICggc3RhdGVTdHJpbmcgKSB7XG5cdFx0XHRcdGxpc3QuYWRkKFxuXHRcdFx0XHRcdGZ1bmN0aW9uKCkge1xuXG5cdFx0XHRcdFx0XHQvLyBzdGF0ZSA9IFwicmVzb2x2ZWRcIiAoaS5lLiwgZnVsZmlsbGVkKVxuXHRcdFx0XHRcdFx0Ly8gc3RhdGUgPSBcInJlamVjdGVkXCJcblx0XHRcdFx0XHRcdHN0YXRlID0gc3RhdGVTdHJpbmc7XG5cdFx0XHRcdFx0fSxcblxuXHRcdFx0XHRcdC8vIHJlamVjdGVkX2NhbGxiYWNrcy5kaXNhYmxlXG5cdFx0XHRcdFx0Ly8gZnVsZmlsbGVkX2NhbGxiYWNrcy5kaXNhYmxlXG5cdFx0XHRcdFx0dHVwbGVzWyAzIC0gaSBdWyAyIF0uZGlzYWJsZSxcblxuXHRcdFx0XHRcdC8vIHJlamVjdGVkX2hhbmRsZXJzLmRpc2FibGVcblx0XHRcdFx0XHQvLyBmdWxmaWxsZWRfaGFuZGxlcnMuZGlzYWJsZVxuXHRcdFx0XHRcdHR1cGxlc1sgMyAtIGkgXVsgMyBdLmRpc2FibGUsXG5cblx0XHRcdFx0XHQvLyBwcm9ncmVzc19jYWxsYmFja3MubG9ja1xuXHRcdFx0XHRcdHR1cGxlc1sgMCBdWyAyIF0ubG9jayxcblxuXHRcdFx0XHRcdC8vIHByb2dyZXNzX2hhbmRsZXJzLmxvY2tcblx0XHRcdFx0XHR0dXBsZXNbIDAgXVsgMyBdLmxvY2tcblx0XHRcdFx0KTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gcHJvZ3Jlc3NfaGFuZGxlcnMuZmlyZVxuXHRcdFx0Ly8gZnVsZmlsbGVkX2hhbmRsZXJzLmZpcmVcblx0XHRcdC8vIHJlamVjdGVkX2hhbmRsZXJzLmZpcmVcblx0XHRcdGxpc3QuYWRkKCB0dXBsZVsgMyBdLmZpcmUgKTtcblxuXHRcdFx0Ly8gZGVmZXJyZWQubm90aWZ5ID0gZnVuY3Rpb24oKSB7IGRlZmVycmVkLm5vdGlmeVdpdGgoLi4uKSB9XG5cdFx0XHQvLyBkZWZlcnJlZC5yZXNvbHZlID0gZnVuY3Rpb24oKSB7IGRlZmVycmVkLnJlc29sdmVXaXRoKC4uLikgfVxuXHRcdFx0Ly8gZGVmZXJyZWQucmVqZWN0ID0gZnVuY3Rpb24oKSB7IGRlZmVycmVkLnJlamVjdFdpdGgoLi4uKSB9XG5cdFx0XHRkZWZlcnJlZFsgdHVwbGVbIDAgXSBdID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGRlZmVycmVkWyB0dXBsZVsgMCBdICsgXCJXaXRoXCIgXSggdGhpcyA9PT0gZGVmZXJyZWQgPyB1bmRlZmluZWQgOiB0aGlzLCBhcmd1bWVudHMgKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9O1xuXG5cdFx0XHQvLyBkZWZlcnJlZC5ub3RpZnlXaXRoID0gbGlzdC5maXJlV2l0aFxuXHRcdFx0Ly8gZGVmZXJyZWQucmVzb2x2ZVdpdGggPSBsaXN0LmZpcmVXaXRoXG5cdFx0XHQvLyBkZWZlcnJlZC5yZWplY3RXaXRoID0gbGlzdC5maXJlV2l0aFxuXHRcdFx0ZGVmZXJyZWRbIHR1cGxlWyAwIF0gKyBcIldpdGhcIiBdID0gbGlzdC5maXJlV2l0aDtcblx0XHR9ICk7XG5cblx0XHQvLyBNYWtlIHRoZSBkZWZlcnJlZCBhIHByb21pc2Vcblx0XHRwcm9taXNlLnByb21pc2UoIGRlZmVycmVkICk7XG5cblx0XHQvLyBDYWxsIGdpdmVuIGZ1bmMgaWYgYW55XG5cdFx0aWYgKCBmdW5jICkge1xuXHRcdFx0ZnVuYy5jYWxsKCBkZWZlcnJlZCwgZGVmZXJyZWQgKTtcblx0XHR9XG5cblx0XHQvLyBBbGwgZG9uZSFcblx0XHRyZXR1cm4gZGVmZXJyZWQ7XG5cdH0sXG5cblx0Ly8gRGVmZXJyZWQgaGVscGVyXG5cdHdoZW46IGZ1bmN0aW9uKCBzaW5nbGVWYWx1ZSApIHtcblx0XHR2YXJcblxuXHRcdFx0Ly8gY291bnQgb2YgdW5jb21wbGV0ZWQgc3Vib3JkaW5hdGVzXG5cdFx0XHRyZW1haW5pbmcgPSBhcmd1bWVudHMubGVuZ3RoLFxuXG5cdFx0XHQvLyBjb3VudCBvZiB1bnByb2Nlc3NlZCBhcmd1bWVudHNcblx0XHRcdGkgPSByZW1haW5pbmcsXG5cblx0XHRcdC8vIHN1Ym9yZGluYXRlIGZ1bGZpbGxtZW50IGRhdGFcblx0XHRcdHJlc29sdmVDb250ZXh0cyA9IEFycmF5KCBpICksXG5cdFx0XHRyZXNvbHZlVmFsdWVzID0gc2xpY2UuY2FsbCggYXJndW1lbnRzICksXG5cblx0XHRcdC8vIHRoZSBtYXN0ZXIgRGVmZXJyZWRcblx0XHRcdG1hc3RlciA9IGpRdWVyeS5EZWZlcnJlZCgpLFxuXG5cdFx0XHQvLyBzdWJvcmRpbmF0ZSBjYWxsYmFjayBmYWN0b3J5XG5cdFx0XHR1cGRhdGVGdW5jID0gZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdHJldHVybiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHRcdFx0cmVzb2x2ZUNvbnRleHRzWyBpIF0gPSB0aGlzO1xuXHRcdFx0XHRcdHJlc29sdmVWYWx1ZXNbIGkgXSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gc2xpY2UuY2FsbCggYXJndW1lbnRzICkgOiB2YWx1ZTtcblx0XHRcdFx0XHRpZiAoICEoIC0tcmVtYWluaW5nICkgKSB7XG5cdFx0XHRcdFx0XHRtYXN0ZXIucmVzb2x2ZVdpdGgoIHJlc29sdmVDb250ZXh0cywgcmVzb2x2ZVZhbHVlcyApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblx0XHRcdH07XG5cblx0XHQvLyBTaW5nbGUtIGFuZCBlbXB0eSBhcmd1bWVudHMgYXJlIGFkb3B0ZWQgbGlrZSBQcm9taXNlLnJlc29sdmVcblx0XHRpZiAoIHJlbWFpbmluZyA8PSAxICkge1xuXHRcdFx0YWRvcHRWYWx1ZSggc2luZ2xlVmFsdWUsIG1hc3Rlci5kb25lKCB1cGRhdGVGdW5jKCBpICkgKS5yZXNvbHZlLCBtYXN0ZXIucmVqZWN0LFxuXHRcdFx0XHQhcmVtYWluaW5nICk7XG5cblx0XHRcdC8vIFVzZSAudGhlbigpIHRvIHVud3JhcCBzZWNvbmRhcnkgdGhlbmFibGVzIChjZi4gZ2gtMzAwMClcblx0XHRcdGlmICggbWFzdGVyLnN0YXRlKCkgPT09IFwicGVuZGluZ1wiIHx8XG5cdFx0XHRcdGlzRnVuY3Rpb24oIHJlc29sdmVWYWx1ZXNbIGkgXSAmJiByZXNvbHZlVmFsdWVzWyBpIF0udGhlbiApICkge1xuXG5cdFx0XHRcdHJldHVybiBtYXN0ZXIudGhlbigpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIE11bHRpcGxlIGFyZ3VtZW50cyBhcmUgYWdncmVnYXRlZCBsaWtlIFByb21pc2UuYWxsIGFycmF5IGVsZW1lbnRzXG5cdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRhZG9wdFZhbHVlKCByZXNvbHZlVmFsdWVzWyBpIF0sIHVwZGF0ZUZ1bmMoIGkgKSwgbWFzdGVyLnJlamVjdCApO1xuXHRcdH1cblxuXHRcdHJldHVybiBtYXN0ZXIucHJvbWlzZSgpO1xuXHR9XG59ICk7XG5cblxuLy8gVGhlc2UgdXN1YWxseSBpbmRpY2F0ZSBhIHByb2dyYW1tZXIgbWlzdGFrZSBkdXJpbmcgZGV2ZWxvcG1lbnQsXG4vLyB3YXJuIGFib3V0IHRoZW0gQVNBUCByYXRoZXIgdGhhbiBzd2FsbG93aW5nIHRoZW0gYnkgZGVmYXVsdC5cbnZhciByZXJyb3JOYW1lcyA9IC9eKEV2YWx8SW50ZXJuYWx8UmFuZ2V8UmVmZXJlbmNlfFN5bnRheHxUeXBlfFVSSSlFcnJvciQvO1xuXG5qUXVlcnkuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayA9IGZ1bmN0aW9uKCBlcnJvciwgc3RhY2sgKSB7XG5cblx0Ly8gU3VwcG9ydDogSUUgOCAtIDkgb25seVxuXHQvLyBDb25zb2xlIGV4aXN0cyB3aGVuIGRldiB0b29scyBhcmUgb3Blbiwgd2hpY2ggY2FuIGhhcHBlbiBhdCBhbnkgdGltZVxuXHRpZiAoIHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLndhcm4gJiYgZXJyb3IgJiYgcmVycm9yTmFtZXMudGVzdCggZXJyb3IubmFtZSApICkge1xuXHRcdHdpbmRvdy5jb25zb2xlLndhcm4oIFwialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogXCIgKyBlcnJvci5tZXNzYWdlLCBlcnJvci5zdGFjaywgc3RhY2sgKTtcblx0fVxufTtcblxuXG5cblxualF1ZXJ5LnJlYWR5RXhjZXB0aW9uID0gZnVuY3Rpb24oIGVycm9yICkge1xuXHR3aW5kb3cuc2V0VGltZW91dCggZnVuY3Rpb24oKSB7XG5cdFx0dGhyb3cgZXJyb3I7XG5cdH0gKTtcbn07XG5cblxuXG5cbi8vIFRoZSBkZWZlcnJlZCB1c2VkIG9uIERPTSByZWFkeVxudmFyIHJlYWR5TGlzdCA9IGpRdWVyeS5EZWZlcnJlZCgpO1xuXG5qUXVlcnkuZm4ucmVhZHkgPSBmdW5jdGlvbiggZm4gKSB7XG5cblx0cmVhZHlMaXN0XG5cdFx0LnRoZW4oIGZuIClcblxuXHRcdC8vIFdyYXAgalF1ZXJ5LnJlYWR5RXhjZXB0aW9uIGluIGEgZnVuY3Rpb24gc28gdGhhdCB0aGUgbG9va3VwXG5cdFx0Ly8gaGFwcGVucyBhdCB0aGUgdGltZSBvZiBlcnJvciBoYW5kbGluZyBpbnN0ZWFkIG9mIGNhbGxiYWNrXG5cdFx0Ly8gcmVnaXN0cmF0aW9uLlxuXHRcdC5jYXRjaCggZnVuY3Rpb24oIGVycm9yICkge1xuXHRcdFx0alF1ZXJ5LnJlYWR5RXhjZXB0aW9uKCBlcnJvciApO1xuXHRcdH0gKTtcblxuXHRyZXR1cm4gdGhpcztcbn07XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHQvLyBJcyB0aGUgRE9NIHJlYWR5IHRvIGJlIHVzZWQ/IFNldCB0byB0cnVlIG9uY2UgaXQgb2NjdXJzLlxuXHRpc1JlYWR5OiBmYWxzZSxcblxuXHQvLyBBIGNvdW50ZXIgdG8gdHJhY2sgaG93IG1hbnkgaXRlbXMgdG8gd2FpdCBmb3IgYmVmb3JlXG5cdC8vIHRoZSByZWFkeSBldmVudCBmaXJlcy4gU2VlICM2NzgxXG5cdHJlYWR5V2FpdDogMSxcblxuXHQvLyBIYW5kbGUgd2hlbiB0aGUgRE9NIGlzIHJlYWR5XG5cdHJlYWR5OiBmdW5jdGlvbiggd2FpdCApIHtcblxuXHRcdC8vIEFib3J0IGlmIHRoZXJlIGFyZSBwZW5kaW5nIGhvbGRzIG9yIHdlJ3JlIGFscmVhZHkgcmVhZHlcblx0XHRpZiAoIHdhaXQgPT09IHRydWUgPyAtLWpRdWVyeS5yZWFkeVdhaXQgOiBqUXVlcnkuaXNSZWFkeSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBSZW1lbWJlciB0aGF0IHRoZSBET00gaXMgcmVhZHlcblx0XHRqUXVlcnkuaXNSZWFkeSA9IHRydWU7XG5cblx0XHQvLyBJZiBhIG5vcm1hbCBET00gUmVhZHkgZXZlbnQgZmlyZWQsIGRlY3JlbWVudCwgYW5kIHdhaXQgaWYgbmVlZCBiZVxuXHRcdGlmICggd2FpdCAhPT0gdHJ1ZSAmJiAtLWpRdWVyeS5yZWFkeVdhaXQgPiAwICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIElmIHRoZXJlIGFyZSBmdW5jdGlvbnMgYm91bmQsIHRvIGV4ZWN1dGVcblx0XHRyZWFkeUxpc3QucmVzb2x2ZVdpdGgoIGRvY3VtZW50LCBbIGpRdWVyeSBdICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LnJlYWR5LnRoZW4gPSByZWFkeUxpc3QudGhlbjtcblxuLy8gVGhlIHJlYWR5IGV2ZW50IGhhbmRsZXIgYW5kIHNlbGYgY2xlYW51cCBtZXRob2RcbmZ1bmN0aW9uIGNvbXBsZXRlZCgpIHtcblx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJET01Db250ZW50TG9hZGVkXCIsIGNvbXBsZXRlZCApO1xuXHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJsb2FkXCIsIGNvbXBsZXRlZCApO1xuXHRqUXVlcnkucmVhZHkoKTtcbn1cblxuLy8gQ2F0Y2ggY2FzZXMgd2hlcmUgJChkb2N1bWVudCkucmVhZHkoKSBpcyBjYWxsZWRcbi8vIGFmdGVyIHRoZSBicm93c2VyIGV2ZW50IGhhcyBhbHJlYWR5IG9jY3VycmVkLlxuLy8gU3VwcG9ydDogSUUgPD05IC0gMTAgb25seVxuLy8gT2xkZXIgSUUgc29tZXRpbWVzIHNpZ25hbHMgXCJpbnRlcmFjdGl2ZVwiIHRvbyBzb29uXG5pZiAoIGRvY3VtZW50LnJlYWR5U3RhdGUgPT09IFwiY29tcGxldGVcIiB8fFxuXHQoIGRvY3VtZW50LnJlYWR5U3RhdGUgIT09IFwibG9hZGluZ1wiICYmICFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwgKSApIHtcblxuXHQvLyBIYW5kbGUgaXQgYXN5bmNocm9ub3VzbHkgdG8gYWxsb3cgc2NyaXB0cyB0aGUgb3Bwb3J0dW5pdHkgdG8gZGVsYXkgcmVhZHlcblx0d2luZG93LnNldFRpbWVvdXQoIGpRdWVyeS5yZWFkeSApO1xuXG59IGVsc2Uge1xuXG5cdC8vIFVzZSB0aGUgaGFuZHkgZXZlbnQgY2FsbGJhY2tcblx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggXCJET01Db250ZW50TG9hZGVkXCIsIGNvbXBsZXRlZCApO1xuXG5cdC8vIEEgZmFsbGJhY2sgdG8gd2luZG93Lm9ubG9hZCwgdGhhdCB3aWxsIGFsd2F5cyB3b3JrXG5cdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCBcImxvYWRcIiwgY29tcGxldGVkICk7XG59XG5cblxuXG5cbi8vIE11bHRpZnVuY3Rpb25hbCBtZXRob2QgdG8gZ2V0IGFuZCBzZXQgdmFsdWVzIG9mIGEgY29sbGVjdGlvblxuLy8gVGhlIHZhbHVlL3MgY2FuIG9wdGlvbmFsbHkgYmUgZXhlY3V0ZWQgaWYgaXQncyBhIGZ1bmN0aW9uXG52YXIgYWNjZXNzID0gZnVuY3Rpb24oIGVsZW1zLCBmbiwga2V5LCB2YWx1ZSwgY2hhaW5hYmxlLCBlbXB0eUdldCwgcmF3ICkge1xuXHR2YXIgaSA9IDAsXG5cdFx0bGVuID0gZWxlbXMubGVuZ3RoLFxuXHRcdGJ1bGsgPSBrZXkgPT0gbnVsbDtcblxuXHQvLyBTZXRzIG1hbnkgdmFsdWVzXG5cdGlmICggdG9UeXBlKCBrZXkgKSA9PT0gXCJvYmplY3RcIiApIHtcblx0XHRjaGFpbmFibGUgPSB0cnVlO1xuXHRcdGZvciAoIGkgaW4ga2V5ICkge1xuXHRcdFx0YWNjZXNzKCBlbGVtcywgZm4sIGksIGtleVsgaSBdLCB0cnVlLCBlbXB0eUdldCwgcmF3ICk7XG5cdFx0fVxuXG5cdC8vIFNldHMgb25lIHZhbHVlXG5cdH0gZWxzZSBpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0Y2hhaW5hYmxlID0gdHJ1ZTtcblxuXHRcdGlmICggIWlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyYXcgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGlmICggYnVsayApIHtcblxuXHRcdFx0Ly8gQnVsayBvcGVyYXRpb25zIHJ1biBhZ2FpbnN0IHRoZSBlbnRpcmUgc2V0XG5cdFx0XHRpZiAoIHJhdyApIHtcblx0XHRcdFx0Zm4uY2FsbCggZWxlbXMsIHZhbHVlICk7XG5cdFx0XHRcdGZuID0gbnVsbDtcblxuXHRcdFx0Ly8gLi4uZXhjZXB0IHdoZW4gZXhlY3V0aW5nIGZ1bmN0aW9uIHZhbHVlc1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YnVsayA9IGZuO1xuXHRcdFx0XHRmbiA9IGZ1bmN0aW9uKCBlbGVtLCBfa2V5LCB2YWx1ZSApIHtcblx0XHRcdFx0XHRyZXR1cm4gYnVsay5jYWxsKCBqUXVlcnkoIGVsZW0gKSwgdmFsdWUgKTtcblx0XHRcdFx0fTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoIGZuICkge1xuXHRcdFx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRcdGZuKFxuXHRcdFx0XHRcdGVsZW1zWyBpIF0sIGtleSwgcmF3ID9cblx0XHRcdFx0XHR2YWx1ZSA6XG5cdFx0XHRcdFx0dmFsdWUuY2FsbCggZWxlbXNbIGkgXSwgaSwgZm4oIGVsZW1zWyBpIF0sIGtleSApIClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpZiAoIGNoYWluYWJsZSApIHtcblx0XHRyZXR1cm4gZWxlbXM7XG5cdH1cblxuXHQvLyBHZXRzXG5cdGlmICggYnVsayApIHtcblx0XHRyZXR1cm4gZm4uY2FsbCggZWxlbXMgKTtcblx0fVxuXG5cdHJldHVybiBsZW4gPyBmbiggZWxlbXNbIDAgXSwga2V5ICkgOiBlbXB0eUdldDtcbn07XG5cblxuLy8gTWF0Y2hlcyBkYXNoZWQgc3RyaW5nIGZvciBjYW1lbGl6aW5nXG52YXIgcm1zUHJlZml4ID0gL14tbXMtLyxcblx0cmRhc2hBbHBoYSA9IC8tKFthLXpdKS9nO1xuXG4vLyBVc2VkIGJ5IGNhbWVsQ2FzZSBhcyBjYWxsYmFjayB0byByZXBsYWNlKClcbmZ1bmN0aW9uIGZjYW1lbENhc2UoIF9hbGwsIGxldHRlciApIHtcblx0cmV0dXJuIGxldHRlci50b1VwcGVyQ2FzZSgpO1xufVxuXG4vLyBDb252ZXJ0IGRhc2hlZCB0byBjYW1lbENhc2U7IHVzZWQgYnkgdGhlIGNzcyBhbmQgZGF0YSBtb2R1bGVzXG4vLyBTdXBwb3J0OiBJRSA8PTkgLSAxMSwgRWRnZSAxMiAtIDE1XG4vLyBNaWNyb3NvZnQgZm9yZ290IHRvIGh1bXAgdGhlaXIgdmVuZG9yIHByZWZpeCAoIzk1NzIpXG5mdW5jdGlvbiBjYW1lbENhc2UoIHN0cmluZyApIHtcblx0cmV0dXJuIHN0cmluZy5yZXBsYWNlKCBybXNQcmVmaXgsIFwibXMtXCIgKS5yZXBsYWNlKCByZGFzaEFscGhhLCBmY2FtZWxDYXNlICk7XG59XG52YXIgYWNjZXB0RGF0YSA9IGZ1bmN0aW9uKCBvd25lciApIHtcblxuXHQvLyBBY2NlcHRzIG9ubHk6XG5cdC8vICAtIE5vZGVcblx0Ly8gICAgLSBOb2RlLkVMRU1FTlRfTk9ERVxuXHQvLyAgICAtIE5vZGUuRE9DVU1FTlRfTk9ERVxuXHQvLyAgLSBPYmplY3Rcblx0Ly8gICAgLSBBbnlcblx0cmV0dXJuIG93bmVyLm5vZGVUeXBlID09PSAxIHx8IG93bmVyLm5vZGVUeXBlID09PSA5IHx8ICEoICtvd25lci5ub2RlVHlwZSApO1xufTtcblxuXG5cblxuZnVuY3Rpb24gRGF0YSgpIHtcblx0dGhpcy5leHBhbmRvID0galF1ZXJ5LmV4cGFuZG8gKyBEYXRhLnVpZCsrO1xufVxuXG5EYXRhLnVpZCA9IDE7XG5cbkRhdGEucHJvdG90eXBlID0ge1xuXG5cdGNhY2hlOiBmdW5jdGlvbiggb3duZXIgKSB7XG5cblx0XHQvLyBDaGVjayBpZiB0aGUgb3duZXIgb2JqZWN0IGFscmVhZHkgaGFzIGEgY2FjaGVcblx0XHR2YXIgdmFsdWUgPSBvd25lclsgdGhpcy5leHBhbmRvIF07XG5cblx0XHQvLyBJZiBub3QsIGNyZWF0ZSBvbmVcblx0XHRpZiAoICF2YWx1ZSApIHtcblx0XHRcdHZhbHVlID0gT2JqZWN0LmNyZWF0ZSggbnVsbCApO1xuXG5cdFx0XHQvLyBXZSBjYW4gYWNjZXB0IGRhdGEgZm9yIG5vbi1lbGVtZW50IG5vZGVzIGluIG1vZGVybiBicm93c2Vycyxcblx0XHRcdC8vIGJ1dCB3ZSBzaG91bGQgbm90LCBzZWUgIzgzMzUuXG5cdFx0XHQvLyBBbHdheXMgcmV0dXJuIGFuIGVtcHR5IG9iamVjdC5cblx0XHRcdGlmICggYWNjZXB0RGF0YSggb3duZXIgKSApIHtcblxuXHRcdFx0XHQvLyBJZiBpdCBpcyBhIG5vZGUgdW5saWtlbHkgdG8gYmUgc3RyaW5naWZ5LWVkIG9yIGxvb3BlZCBvdmVyXG5cdFx0XHRcdC8vIHVzZSBwbGFpbiBhc3NpZ25tZW50XG5cdFx0XHRcdGlmICggb3duZXIubm9kZVR5cGUgKSB7XG5cdFx0XHRcdFx0b3duZXJbIHRoaXMuZXhwYW5kbyBdID0gdmFsdWU7XG5cblx0XHRcdFx0Ly8gT3RoZXJ3aXNlIHNlY3VyZSBpdCBpbiBhIG5vbi1lbnVtZXJhYmxlIHByb3BlcnR5XG5cdFx0XHRcdC8vIGNvbmZpZ3VyYWJsZSBtdXN0IGJlIHRydWUgdG8gYWxsb3cgdGhlIHByb3BlcnR5IHRvIGJlXG5cdFx0XHRcdC8vIGRlbGV0ZWQgd2hlbiBkYXRhIGlzIHJlbW92ZWRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoIG93bmVyLCB0aGlzLmV4cGFuZG8sIHtcblx0XHRcdFx0XHRcdHZhbHVlOiB2YWx1ZSxcblx0XHRcdFx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZVxuXHRcdFx0XHRcdH0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB2YWx1ZTtcblx0fSxcblx0c2V0OiBmdW5jdGlvbiggb3duZXIsIGRhdGEsIHZhbHVlICkge1xuXHRcdHZhciBwcm9wLFxuXHRcdFx0Y2FjaGUgPSB0aGlzLmNhY2hlKCBvd25lciApO1xuXG5cdFx0Ly8gSGFuZGxlOiBbIG93bmVyLCBrZXksIHZhbHVlIF0gYXJnc1xuXHRcdC8vIEFsd2F5cyB1c2UgY2FtZWxDYXNlIGtleSAoZ2gtMjI1Nylcblx0XHRpZiAoIHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0Y2FjaGVbIGNhbWVsQ2FzZSggZGF0YSApIF0gPSB2YWx1ZTtcblxuXHRcdC8vIEhhbmRsZTogWyBvd25lciwgeyBwcm9wZXJ0aWVzIH0gXSBhcmdzXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0Ly8gQ29weSB0aGUgcHJvcGVydGllcyBvbmUtYnktb25lIHRvIHRoZSBjYWNoZSBvYmplY3Rcblx0XHRcdGZvciAoIHByb3AgaW4gZGF0YSApIHtcblx0XHRcdFx0Y2FjaGVbIGNhbWVsQ2FzZSggcHJvcCApIF0gPSBkYXRhWyBwcm9wIF07XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBjYWNoZTtcblx0fSxcblx0Z2V0OiBmdW5jdGlvbiggb3duZXIsIGtleSApIHtcblx0XHRyZXR1cm4ga2V5ID09PSB1bmRlZmluZWQgP1xuXHRcdFx0dGhpcy5jYWNoZSggb3duZXIgKSA6XG5cblx0XHRcdC8vIEFsd2F5cyB1c2UgY2FtZWxDYXNlIGtleSAoZ2gtMjI1Nylcblx0XHRcdG93bmVyWyB0aGlzLmV4cGFuZG8gXSAmJiBvd25lclsgdGhpcy5leHBhbmRvIF1bIGNhbWVsQ2FzZSgga2V5ICkgXTtcblx0fSxcblx0YWNjZXNzOiBmdW5jdGlvbiggb3duZXIsIGtleSwgdmFsdWUgKSB7XG5cblx0XHQvLyBJbiBjYXNlcyB3aGVyZSBlaXRoZXI6XG5cdFx0Ly9cblx0XHQvLyAgIDEuIE5vIGtleSB3YXMgc3BlY2lmaWVkXG5cdFx0Ly8gICAyLiBBIHN0cmluZyBrZXkgd2FzIHNwZWNpZmllZCwgYnV0IG5vIHZhbHVlIHByb3ZpZGVkXG5cdFx0Ly9cblx0XHQvLyBUYWtlIHRoZSBcInJlYWRcIiBwYXRoIGFuZCBhbGxvdyB0aGUgZ2V0IG1ldGhvZCB0byBkZXRlcm1pbmVcblx0XHQvLyB3aGljaCB2YWx1ZSB0byByZXR1cm4sIHJlc3BlY3RpdmVseSBlaXRoZXI6XG5cdFx0Ly9cblx0XHQvLyAgIDEuIFRoZSBlbnRpcmUgY2FjaGUgb2JqZWN0XG5cdFx0Ly8gICAyLiBUaGUgZGF0YSBzdG9yZWQgYXQgdGhlIGtleVxuXHRcdC8vXG5cdFx0aWYgKCBrZXkgPT09IHVuZGVmaW5lZCB8fFxuXHRcdFx0XHQoICgga2V5ICYmIHR5cGVvZiBrZXkgPT09IFwic3RyaW5nXCIgKSAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkICkgKSB7XG5cblx0XHRcdHJldHVybiB0aGlzLmdldCggb3duZXIsIGtleSApO1xuXHRcdH1cblxuXHRcdC8vIFdoZW4gdGhlIGtleSBpcyBub3QgYSBzdHJpbmcsIG9yIGJvdGggYSBrZXkgYW5kIHZhbHVlXG5cdFx0Ly8gYXJlIHNwZWNpZmllZCwgc2V0IG9yIGV4dGVuZCAoZXhpc3Rpbmcgb2JqZWN0cykgd2l0aCBlaXRoZXI6XG5cdFx0Ly9cblx0XHQvLyAgIDEuIEFuIG9iamVjdCBvZiBwcm9wZXJ0aWVzXG5cdFx0Ly8gICAyLiBBIGtleSBhbmQgdmFsdWVcblx0XHQvL1xuXHRcdHRoaXMuc2V0KCBvd25lciwga2V5LCB2YWx1ZSApO1xuXG5cdFx0Ly8gU2luY2UgdGhlIFwic2V0XCIgcGF0aCBjYW4gaGF2ZSB0d28gcG9zc2libGUgZW50cnkgcG9pbnRzXG5cdFx0Ly8gcmV0dXJuIHRoZSBleHBlY3RlZCBkYXRhIGJhc2VkIG9uIHdoaWNoIHBhdGggd2FzIHRha2VuWypdXG5cdFx0cmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IGtleTtcblx0fSxcblx0cmVtb3ZlOiBmdW5jdGlvbiggb3duZXIsIGtleSApIHtcblx0XHR2YXIgaSxcblx0XHRcdGNhY2hlID0gb3duZXJbIHRoaXMuZXhwYW5kbyBdO1xuXG5cdFx0aWYgKCBjYWNoZSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICgga2V5ICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdC8vIFN1cHBvcnQgYXJyYXkgb3Igc3BhY2Ugc2VwYXJhdGVkIHN0cmluZyBvZiBrZXlzXG5cdFx0XHRpZiAoIEFycmF5LmlzQXJyYXkoIGtleSApICkge1xuXG5cdFx0XHRcdC8vIElmIGtleSBpcyBhbiBhcnJheSBvZiBrZXlzLi4uXG5cdFx0XHRcdC8vIFdlIGFsd2F5cyBzZXQgY2FtZWxDYXNlIGtleXMsIHNvIHJlbW92ZSB0aGF0LlxuXHRcdFx0XHRrZXkgPSBrZXkubWFwKCBjYW1lbENhc2UgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGtleSA9IGNhbWVsQ2FzZSgga2V5ICk7XG5cblx0XHRcdFx0Ly8gSWYgYSBrZXkgd2l0aCB0aGUgc3BhY2VzIGV4aXN0cywgdXNlIGl0LlxuXHRcdFx0XHQvLyBPdGhlcndpc2UsIGNyZWF0ZSBhbiBhcnJheSBieSBtYXRjaGluZyBub24td2hpdGVzcGFjZVxuXHRcdFx0XHRrZXkgPSBrZXkgaW4gY2FjaGUgP1xuXHRcdFx0XHRcdFsga2V5IF0gOlxuXHRcdFx0XHRcdCgga2V5Lm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgW10gKTtcblx0XHRcdH1cblxuXHRcdFx0aSA9IGtleS5sZW5ndGg7XG5cblx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRkZWxldGUgY2FjaGVbIGtleVsgaSBdIF07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUmVtb3ZlIHRoZSBleHBhbmRvIGlmIHRoZXJlJ3Mgbm8gbW9yZSBkYXRhXG5cdFx0aWYgKCBrZXkgPT09IHVuZGVmaW5lZCB8fCBqUXVlcnkuaXNFbXB0eU9iamVjdCggY2FjaGUgKSApIHtcblxuXHRcdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9MzUgLSA0NVxuXHRcdFx0Ly8gV2Via2l0ICYgQmxpbmsgcGVyZm9ybWFuY2Ugc3VmZmVycyB3aGVuIGRlbGV0aW5nIHByb3BlcnRpZXNcblx0XHRcdC8vIGZyb20gRE9NIG5vZGVzLCBzbyBzZXQgdG8gdW5kZWZpbmVkIGluc3RlYWRcblx0XHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTM3ODYwNyAoYnVnIHJlc3RyaWN0ZWQpXG5cdFx0XHRpZiAoIG93bmVyLm5vZGVUeXBlICkge1xuXHRcdFx0XHRvd25lclsgdGhpcy5leHBhbmRvIF0gPSB1bmRlZmluZWQ7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkZWxldGUgb3duZXJbIHRoaXMuZXhwYW5kbyBdO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0aGFzRGF0YTogZnVuY3Rpb24oIG93bmVyICkge1xuXHRcdHZhciBjYWNoZSA9IG93bmVyWyB0aGlzLmV4cGFuZG8gXTtcblx0XHRyZXR1cm4gY2FjaGUgIT09IHVuZGVmaW5lZCAmJiAhalF1ZXJ5LmlzRW1wdHlPYmplY3QoIGNhY2hlICk7XG5cdH1cbn07XG52YXIgZGF0YVByaXYgPSBuZXcgRGF0YSgpO1xuXG52YXIgZGF0YVVzZXIgPSBuZXcgRGF0YSgpO1xuXG5cblxuLy9cdEltcGxlbWVudGF0aW9uIFN1bW1hcnlcbi8vXG4vL1x0MS4gRW5mb3JjZSBBUEkgc3VyZmFjZSBhbmQgc2VtYW50aWMgY29tcGF0aWJpbGl0eSB3aXRoIDEuOS54IGJyYW5jaFxuLy9cdDIuIEltcHJvdmUgdGhlIG1vZHVsZSdzIG1haW50YWluYWJpbGl0eSBieSByZWR1Y2luZyB0aGUgc3RvcmFnZVxuLy9cdFx0cGF0aHMgdG8gYSBzaW5nbGUgbWVjaGFuaXNtLlxuLy9cdDMuIFVzZSB0aGUgc2FtZSBzaW5nbGUgbWVjaGFuaXNtIHRvIHN1cHBvcnQgXCJwcml2YXRlXCIgYW5kIFwidXNlclwiIGRhdGEuXG4vL1x0NC4gX05ldmVyXyBleHBvc2UgXCJwcml2YXRlXCIgZGF0YSB0byB1c2VyIGNvZGUgKFRPRE86IERyb3AgX2RhdGEsIF9yZW1vdmVEYXRhKVxuLy9cdDUuIEF2b2lkIGV4cG9zaW5nIGltcGxlbWVudGF0aW9uIGRldGFpbHMgb24gdXNlciBvYmplY3RzIChlZy4gZXhwYW5kbyBwcm9wZXJ0aWVzKVxuLy9cdDYuIFByb3ZpZGUgYSBjbGVhciBwYXRoIGZvciBpbXBsZW1lbnRhdGlvbiB1cGdyYWRlIHRvIFdlYWtNYXAgaW4gMjAxNFxuXG52YXIgcmJyYWNlID0gL14oPzpcXHtbXFx3XFxXXSpcXH18XFxbW1xcd1xcV10qXFxdKSQvLFxuXHRybXVsdGlEYXNoID0gL1tBLVpdL2c7XG5cbmZ1bmN0aW9uIGdldERhdGEoIGRhdGEgKSB7XG5cdGlmICggZGF0YSA9PT0gXCJ0cnVlXCIgKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRpZiAoIGRhdGEgPT09IFwiZmFsc2VcIiApIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpZiAoIGRhdGEgPT09IFwibnVsbFwiICkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0Ly8gT25seSBjb252ZXJ0IHRvIGEgbnVtYmVyIGlmIGl0IGRvZXNuJ3QgY2hhbmdlIHRoZSBzdHJpbmdcblx0aWYgKCBkYXRhID09PSArZGF0YSArIFwiXCIgKSB7XG5cdFx0cmV0dXJuICtkYXRhO1xuXHR9XG5cblx0aWYgKCByYnJhY2UudGVzdCggZGF0YSApICkge1xuXHRcdHJldHVybiBKU09OLnBhcnNlKCBkYXRhICk7XG5cdH1cblxuXHRyZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gZGF0YUF0dHIoIGVsZW0sIGtleSwgZGF0YSApIHtcblx0dmFyIG5hbWU7XG5cblx0Ly8gSWYgbm90aGluZyB3YXMgZm91bmQgaW50ZXJuYWxseSwgdHJ5IHRvIGZldGNoIGFueVxuXHQvLyBkYXRhIGZyb20gdGhlIEhUTUw1IGRhdGEtKiBhdHRyaWJ1dGVcblx0aWYgKCBkYXRhID09PSB1bmRlZmluZWQgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRuYW1lID0gXCJkYXRhLVwiICsga2V5LnJlcGxhY2UoIHJtdWx0aURhc2gsIFwiLSQmXCIgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdGRhdGEgPSBlbGVtLmdldEF0dHJpYnV0ZSggbmFtZSApO1xuXG5cdFx0aWYgKCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGRhdGEgPSBnZXREYXRhKCBkYXRhICk7XG5cdFx0XHR9IGNhdGNoICggZSApIHt9XG5cblx0XHRcdC8vIE1ha2Ugc3VyZSB3ZSBzZXQgdGhlIGRhdGEgc28gaXQgaXNuJ3QgY2hhbmdlZCBsYXRlclxuXHRcdFx0ZGF0YVVzZXIuc2V0KCBlbGVtLCBrZXksIGRhdGEgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGRhdGE7XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblx0aGFzRGF0YTogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGRhdGFVc2VyLmhhc0RhdGEoIGVsZW0gKSB8fCBkYXRhUHJpdi5oYXNEYXRhKCBlbGVtICk7XG5cdH0sXG5cblx0ZGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGRhdGEgKSB7XG5cdFx0cmV0dXJuIGRhdGFVc2VyLmFjY2VzcyggZWxlbSwgbmFtZSwgZGF0YSApO1xuXHR9LFxuXG5cdHJlbW92ZURhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xuXHRcdGRhdGFVc2VyLnJlbW92ZSggZWxlbSwgbmFtZSApO1xuXHR9LFxuXG5cdC8vIFRPRE86IE5vdyB0aGF0IGFsbCBjYWxscyB0byBfZGF0YSBhbmQgX3JlbW92ZURhdGEgaGF2ZSBiZWVuIHJlcGxhY2VkXG5cdC8vIHdpdGggZGlyZWN0IGNhbGxzIHRvIGRhdGFQcml2IG1ldGhvZHMsIHRoZXNlIGNhbiBiZSBkZXByZWNhdGVkLlxuXHRfZGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGRhdGEgKSB7XG5cdFx0cmV0dXJuIGRhdGFQcml2LmFjY2VzcyggZWxlbSwgbmFtZSwgZGF0YSApO1xuXHR9LFxuXG5cdF9yZW1vdmVEYXRhOiBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHtcblx0XHRkYXRhUHJpdi5yZW1vdmUoIGVsZW0sIG5hbWUgKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGRhdGE6IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkge1xuXHRcdHZhciBpLCBuYW1lLCBkYXRhLFxuXHRcdFx0ZWxlbSA9IHRoaXNbIDAgXSxcblx0XHRcdGF0dHJzID0gZWxlbSAmJiBlbGVtLmF0dHJpYnV0ZXM7XG5cblx0XHQvLyBHZXRzIGFsbCB2YWx1ZXNcblx0XHRpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0aWYgKCB0aGlzLmxlbmd0aCApIHtcblx0XHRcdFx0ZGF0YSA9IGRhdGFVc2VyLmdldCggZWxlbSApO1xuXG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAhZGF0YVByaXYuZ2V0KCBlbGVtLCBcImhhc0RhdGFBdHRyc1wiICkgKSB7XG5cdFx0XHRcdFx0aSA9IGF0dHJzLmxlbmd0aDtcblx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgMTEgb25seVxuXHRcdFx0XHRcdFx0Ly8gVGhlIGF0dHJzIGVsZW1lbnRzIGNhbiBiZSBudWxsICgjMTQ4OTQpXG5cdFx0XHRcdFx0XHRpZiAoIGF0dHJzWyBpIF0gKSB7XG5cdFx0XHRcdFx0XHRcdG5hbWUgPSBhdHRyc1sgaSBdLm5hbWU7XG5cdFx0XHRcdFx0XHRcdGlmICggbmFtZS5pbmRleE9mKCBcImRhdGEtXCIgKSA9PT0gMCApIHtcblx0XHRcdFx0XHRcdFx0XHRuYW1lID0gY2FtZWxDYXNlKCBuYW1lLnNsaWNlKCA1ICkgKTtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXR0ciggZWxlbSwgbmFtZSwgZGF0YVsgbmFtZSBdICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZGF0YVByaXYuc2V0KCBlbGVtLCBcImhhc0RhdGFBdHRyc1wiLCB0cnVlICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0fVxuXG5cdFx0Ly8gU2V0cyBtdWx0aXBsZSB2YWx1ZXNcblx0XHRpZiAoIHR5cGVvZiBrZXkgPT09IFwib2JqZWN0XCIgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGF0YVVzZXIuc2V0KCB0aGlzLCBrZXkgKTtcblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgZGF0YTtcblxuXHRcdFx0Ly8gVGhlIGNhbGxpbmcgalF1ZXJ5IG9iamVjdCAoZWxlbWVudCBtYXRjaGVzKSBpcyBub3QgZW1wdHlcblx0XHRcdC8vIChhbmQgdGhlcmVmb3JlIGhhcyBhbiBlbGVtZW50IGFwcGVhcnMgYXQgdGhpc1sgMCBdKSBhbmQgdGhlXG5cdFx0XHQvLyBgdmFsdWVgIHBhcmFtZXRlciB3YXMgbm90IHVuZGVmaW5lZC4gQW4gZW1wdHkgalF1ZXJ5IG9iamVjdFxuXHRcdFx0Ly8gd2lsbCByZXN1bHQgaW4gYHVuZGVmaW5lZGAgZm9yIGVsZW0gPSB0aGlzWyAwIF0gd2hpY2ggd2lsbFxuXHRcdFx0Ly8gdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFuIGF0dGVtcHQgdG8gcmVhZCBhIGRhdGEgY2FjaGUgaXMgbWFkZS5cblx0XHRcdGlmICggZWxlbSAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHRcdC8vIEF0dGVtcHQgdG8gZ2V0IGRhdGEgZnJvbSB0aGUgY2FjaGVcblx0XHRcdFx0Ly8gVGhlIGtleSB3aWxsIGFsd2F5cyBiZSBjYW1lbENhc2VkIGluIERhdGFcblx0XHRcdFx0ZGF0YSA9IGRhdGFVc2VyLmdldCggZWxlbSwga2V5ICk7XG5cdFx0XHRcdGlmICggZGF0YSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gQXR0ZW1wdCB0byBcImRpc2NvdmVyXCIgdGhlIGRhdGEgaW5cblx0XHRcdFx0Ly8gSFRNTDUgY3VzdG9tIGRhdGEtKiBhdHRyc1xuXHRcdFx0XHRkYXRhID0gZGF0YUF0dHIoIGVsZW0sIGtleSApO1xuXHRcdFx0XHRpZiAoIGRhdGEgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFdlIHRyaWVkIHJlYWxseSBoYXJkLCBidXQgdGhlIGRhdGEgZG9lc24ndCBleGlzdC5cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTZXQgdGhlIGRhdGEuLi5cblx0XHRcdHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0Ly8gV2UgYWx3YXlzIHN0b3JlIHRoZSBjYW1lbENhc2VkIGtleVxuXHRcdFx0XHRkYXRhVXNlci5zZXQoIHRoaXMsIGtleSwgdmFsdWUgKTtcblx0XHRcdH0gKTtcblx0XHR9LCBudWxsLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEsIG51bGwsIHRydWUgKTtcblx0fSxcblxuXHRyZW1vdmVEYXRhOiBmdW5jdGlvbigga2V5ICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0ZGF0YVVzZXIucmVtb3ZlKCB0aGlzLCBrZXkgKTtcblx0XHR9ICk7XG5cdH1cbn0gKTtcblxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdHF1ZXVlOiBmdW5jdGlvbiggZWxlbSwgdHlwZSwgZGF0YSApIHtcblx0XHR2YXIgcXVldWU7XG5cblx0XHRpZiAoIGVsZW0gKSB7XG5cdFx0XHR0eXBlID0gKCB0eXBlIHx8IFwiZnhcIiApICsgXCJxdWV1ZVwiO1xuXHRcdFx0cXVldWUgPSBkYXRhUHJpdi5nZXQoIGVsZW0sIHR5cGUgKTtcblxuXHRcdFx0Ly8gU3BlZWQgdXAgZGVxdWV1ZSBieSBnZXR0aW5nIG91dCBxdWlja2x5IGlmIHRoaXMgaXMganVzdCBhIGxvb2t1cFxuXHRcdFx0aWYgKCBkYXRhICkge1xuXHRcdFx0XHRpZiAoICFxdWV1ZSB8fCBBcnJheS5pc0FycmF5KCBkYXRhICkgKSB7XG5cdFx0XHRcdFx0cXVldWUgPSBkYXRhUHJpdi5hY2Nlc3MoIGVsZW0sIHR5cGUsIGpRdWVyeS5tYWtlQXJyYXkoIGRhdGEgKSApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHF1ZXVlLnB1c2goIGRhdGEgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHF1ZXVlIHx8IFtdO1xuXHRcdH1cblx0fSxcblxuXHRkZXF1ZXVlOiBmdW5jdGlvbiggZWxlbSwgdHlwZSApIHtcblx0XHR0eXBlID0gdHlwZSB8fCBcImZ4XCI7XG5cblx0XHR2YXIgcXVldWUgPSBqUXVlcnkucXVldWUoIGVsZW0sIHR5cGUgKSxcblx0XHRcdHN0YXJ0TGVuZ3RoID0gcXVldWUubGVuZ3RoLFxuXHRcdFx0Zm4gPSBxdWV1ZS5zaGlmdCgpLFxuXHRcdFx0aG9va3MgPSBqUXVlcnkuX3F1ZXVlSG9va3MoIGVsZW0sIHR5cGUgKSxcblx0XHRcdG5leHQgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0alF1ZXJ5LmRlcXVldWUoIGVsZW0sIHR5cGUgKTtcblx0XHRcdH07XG5cblx0XHQvLyBJZiB0aGUgZnggcXVldWUgaXMgZGVxdWV1ZWQsIGFsd2F5cyByZW1vdmUgdGhlIHByb2dyZXNzIHNlbnRpbmVsXG5cdFx0aWYgKCBmbiA9PT0gXCJpbnByb2dyZXNzXCIgKSB7XG5cdFx0XHRmbiA9IHF1ZXVlLnNoaWZ0KCk7XG5cdFx0XHRzdGFydExlbmd0aC0tO1xuXHRcdH1cblxuXHRcdGlmICggZm4gKSB7XG5cblx0XHRcdC8vIEFkZCBhIHByb2dyZXNzIHNlbnRpbmVsIHRvIHByZXZlbnQgdGhlIGZ4IHF1ZXVlIGZyb20gYmVpbmdcblx0XHRcdC8vIGF1dG9tYXRpY2FsbHkgZGVxdWV1ZWRcblx0XHRcdGlmICggdHlwZSA9PT0gXCJmeFwiICkge1xuXHRcdFx0XHRxdWV1ZS51bnNoaWZ0KCBcImlucHJvZ3Jlc3NcIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDbGVhciB1cCB0aGUgbGFzdCBxdWV1ZSBzdG9wIGZ1bmN0aW9uXG5cdFx0XHRkZWxldGUgaG9va3Muc3RvcDtcblx0XHRcdGZuLmNhbGwoIGVsZW0sIG5leHQsIGhvb2tzICk7XG5cdFx0fVxuXG5cdFx0aWYgKCAhc3RhcnRMZW5ndGggJiYgaG9va3MgKSB7XG5cdFx0XHRob29rcy5lbXB0eS5maXJlKCk7XG5cdFx0fVxuXHR9LFxuXG5cdC8vIE5vdCBwdWJsaWMgLSBnZW5lcmF0ZSBhIHF1ZXVlSG9va3Mgb2JqZWN0LCBvciByZXR1cm4gdGhlIGN1cnJlbnQgb25lXG5cdF9xdWV1ZUhvb2tzOiBmdW5jdGlvbiggZWxlbSwgdHlwZSApIHtcblx0XHR2YXIga2V5ID0gdHlwZSArIFwicXVldWVIb29rc1wiO1xuXHRcdHJldHVybiBkYXRhUHJpdi5nZXQoIGVsZW0sIGtleSApIHx8IGRhdGFQcml2LmFjY2VzcyggZWxlbSwga2V5LCB7XG5cdFx0XHRlbXB0eTogalF1ZXJ5LkNhbGxiYWNrcyggXCJvbmNlIG1lbW9yeVwiICkuYWRkKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBlbGVtLCBbIHR5cGUgKyBcInF1ZXVlXCIsIGtleSBdICk7XG5cdFx0XHR9IClcblx0XHR9ICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRxdWV1ZTogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7XG5cdFx0dmFyIHNldHRlciA9IDI7XG5cblx0XHRpZiAoIHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0ZGF0YSA9IHR5cGU7XG5cdFx0XHR0eXBlID0gXCJmeFwiO1xuXHRcdFx0c2V0dGVyLS07XG5cdFx0fVxuXG5cdFx0aWYgKCBhcmd1bWVudHMubGVuZ3RoIDwgc2V0dGVyICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5xdWV1ZSggdGhpc1sgMCBdLCB0eXBlICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGRhdGEgPT09IHVuZGVmaW5lZCA/XG5cdFx0XHR0aGlzIDpcblx0XHRcdHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgZGF0YSApO1xuXG5cdFx0XHRcdC8vIEVuc3VyZSBhIGhvb2tzIGZvciB0aGlzIHF1ZXVlXG5cdFx0XHRcdGpRdWVyeS5fcXVldWVIb29rcyggdGhpcywgdHlwZSApO1xuXG5cdFx0XHRcdGlmICggdHlwZSA9PT0gXCJmeFwiICYmIHF1ZXVlWyAwIF0gIT09IFwiaW5wcm9ncmVzc1wiICkge1xuXHRcdFx0XHRcdGpRdWVyeS5kZXF1ZXVlKCB0aGlzLCB0eXBlICk7XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0fSxcblx0ZGVxdWV1ZTogZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApO1xuXHRcdH0gKTtcblx0fSxcblx0Y2xlYXJRdWV1ZTogZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0cmV0dXJuIHRoaXMucXVldWUoIHR5cGUgfHwgXCJmeFwiLCBbXSApO1xuXHR9LFxuXG5cdC8vIEdldCBhIHByb21pc2UgcmVzb2x2ZWQgd2hlbiBxdWV1ZXMgb2YgYSBjZXJ0YWluIHR5cGVcblx0Ly8gYXJlIGVtcHRpZWQgKGZ4IGlzIHRoZSB0eXBlIGJ5IGRlZmF1bHQpXG5cdHByb21pc2U6IGZ1bmN0aW9uKCB0eXBlLCBvYmogKSB7XG5cdFx0dmFyIHRtcCxcblx0XHRcdGNvdW50ID0gMSxcblx0XHRcdGRlZmVyID0galF1ZXJ5LkRlZmVycmVkKCksXG5cdFx0XHRlbGVtZW50cyA9IHRoaXMsXG5cdFx0XHRpID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRyZXNvbHZlID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggISggLS1jb3VudCApICkge1xuXHRcdFx0XHRcdGRlZmVyLnJlc29sdmVXaXRoKCBlbGVtZW50cywgWyBlbGVtZW50cyBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRpZiAoIHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0b2JqID0gdHlwZTtcblx0XHRcdHR5cGUgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblxuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0dG1wID0gZGF0YVByaXYuZ2V0KCBlbGVtZW50c1sgaSBdLCB0eXBlICsgXCJxdWV1ZUhvb2tzXCIgKTtcblx0XHRcdGlmICggdG1wICYmIHRtcC5lbXB0eSApIHtcblx0XHRcdFx0Y291bnQrKztcblx0XHRcdFx0dG1wLmVtcHR5LmFkZCggcmVzb2x2ZSApO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXNvbHZlKCk7XG5cdFx0cmV0dXJuIGRlZmVyLnByb21pc2UoIG9iaiApO1xuXHR9XG59ICk7XG52YXIgcG51bSA9ICggL1srLV0/KD86XFxkKlxcLnwpXFxkKyg/OltlRV1bKy1dP1xcZCt8KS8gKS5zb3VyY2U7XG5cbnZhciByY3NzTnVtID0gbmV3IFJlZ0V4cCggXCJeKD86KFsrLV0pPXwpKFwiICsgcG51bSArIFwiKShbYS16JV0qKSRcIiwgXCJpXCIgKTtcblxuXG52YXIgY3NzRXhwYW5kID0gWyBcIlRvcFwiLCBcIlJpZ2h0XCIsIFwiQm90dG9tXCIsIFwiTGVmdFwiIF07XG5cbnZhciBkb2N1bWVudEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cblxuXG5cdHZhciBpc0F0dGFjaGVkID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LmNvbnRhaW5zKCBlbGVtLm93bmVyRG9jdW1lbnQsIGVsZW0gKTtcblx0XHR9LFxuXHRcdGNvbXBvc2VkID0geyBjb21wb3NlZDogdHJ1ZSB9O1xuXG5cdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSssIEVkZ2UgMTIgLSAxOCssIGlPUyAxMC4wIC0gMTAuMiBvbmx5XG5cdC8vIENoZWNrIGF0dGFjaG1lbnQgYWNyb3NzIHNoYWRvdyBET00gYm91bmRhcmllcyB3aGVuIHBvc3NpYmxlIChnaC0zNTA0KVxuXHQvLyBTdXBwb3J0OiBpT1MgMTAuMC0xMC4yIG9ubHlcblx0Ly8gRWFybHkgaU9TIDEwIHZlcnNpb25zIHN1cHBvcnQgYGF0dGFjaFNoYWRvd2AgYnV0IG5vdCBgZ2V0Um9vdE5vZGVgLFxuXHQvLyBsZWFkaW5nIHRvIGVycm9ycy4gV2UgbmVlZCB0byBjaGVjayBmb3IgYGdldFJvb3ROb2RlYC5cblx0aWYgKCBkb2N1bWVudEVsZW1lbnQuZ2V0Um9vdE5vZGUgKSB7XG5cdFx0aXNBdHRhY2hlZCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LCBlbGVtICkgfHxcblx0XHRcdFx0ZWxlbS5nZXRSb290Tm9kZSggY29tcG9zZWQgKSA9PT0gZWxlbS5vd25lckRvY3VtZW50O1xuXHRcdH07XG5cdH1cbnZhciBpc0hpZGRlbldpdGhpblRyZWUgPSBmdW5jdGlvbiggZWxlbSwgZWwgKSB7XG5cblx0XHQvLyBpc0hpZGRlbldpdGhpblRyZWUgbWlnaHQgYmUgY2FsbGVkIGZyb20galF1ZXJ5I2ZpbHRlciBmdW5jdGlvbjtcblx0XHQvLyBpbiB0aGF0IGNhc2UsIGVsZW1lbnQgd2lsbCBiZSBzZWNvbmQgYXJndW1lbnRcblx0XHRlbGVtID0gZWwgfHwgZWxlbTtcblxuXHRcdC8vIElubGluZSBzdHlsZSB0cnVtcHMgYWxsXG5cdFx0cmV0dXJuIGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJub25lXCIgfHxcblx0XHRcdGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJcIiAmJlxuXG5cdFx0XHQvLyBPdGhlcndpc2UsIGNoZWNrIGNvbXB1dGVkIHN0eWxlXG5cdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NDMgLSA0NVxuXHRcdFx0Ly8gRGlzY29ubmVjdGVkIGVsZW1lbnRzIGNhbiBoYXZlIGNvbXB1dGVkIGRpc3BsYXk6IG5vbmUsIHNvIGZpcnN0IGNvbmZpcm0gdGhhdCBlbGVtIGlzXG5cdFx0XHQvLyBpbiB0aGUgZG9jdW1lbnQuXG5cdFx0XHRpc0F0dGFjaGVkKCBlbGVtICkgJiZcblxuXHRcdFx0alF1ZXJ5LmNzcyggZWxlbSwgXCJkaXNwbGF5XCIgKSA9PT0gXCJub25lXCI7XG5cdH07XG5cblxuXG5mdW5jdGlvbiBhZGp1c3RDU1MoIGVsZW0sIHByb3AsIHZhbHVlUGFydHMsIHR3ZWVuICkge1xuXHR2YXIgYWRqdXN0ZWQsIHNjYWxlLFxuXHRcdG1heEl0ZXJhdGlvbnMgPSAyMCxcblx0XHRjdXJyZW50VmFsdWUgPSB0d2VlbiA/XG5cdFx0XHRmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuIHR3ZWVuLmN1cigpO1xuXHRcdFx0fSA6XG5cdFx0XHRmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuIGpRdWVyeS5jc3MoIGVsZW0sIHByb3AsIFwiXCIgKTtcblx0XHRcdH0sXG5cdFx0aW5pdGlhbCA9IGN1cnJlbnRWYWx1ZSgpLFxuXHRcdHVuaXQgPSB2YWx1ZVBhcnRzICYmIHZhbHVlUGFydHNbIDMgXSB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIHByb3AgXSA/IFwiXCIgOiBcInB4XCIgKSxcblxuXHRcdC8vIFN0YXJ0aW5nIHZhbHVlIGNvbXB1dGF0aW9uIGlzIHJlcXVpcmVkIGZvciBwb3RlbnRpYWwgdW5pdCBtaXNtYXRjaGVzXG5cdFx0aW5pdGlhbEluVW5pdCA9IGVsZW0ubm9kZVR5cGUgJiZcblx0XHRcdCggalF1ZXJ5LmNzc051bWJlclsgcHJvcCBdIHx8IHVuaXQgIT09IFwicHhcIiAmJiAraW5pdGlhbCApICYmXG5cdFx0XHRyY3NzTnVtLmV4ZWMoIGpRdWVyeS5jc3MoIGVsZW0sIHByb3AgKSApO1xuXG5cdGlmICggaW5pdGlhbEluVW5pdCAmJiBpbml0aWFsSW5Vbml0WyAzIF0gIT09IHVuaXQgKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NTRcblx0XHQvLyBIYWx2ZSB0aGUgaXRlcmF0aW9uIHRhcmdldCB2YWx1ZSB0byBwcmV2ZW50IGludGVyZmVyZW5jZSBmcm9tIENTUyB1cHBlciBib3VuZHMgKGdoLTIxNDQpXG5cdFx0aW5pdGlhbCA9IGluaXRpYWwgLyAyO1xuXG5cdFx0Ly8gVHJ1c3QgdW5pdHMgcmVwb3J0ZWQgYnkgalF1ZXJ5LmNzc1xuXHRcdHVuaXQgPSB1bml0IHx8IGluaXRpYWxJblVuaXRbIDMgXTtcblxuXHRcdC8vIEl0ZXJhdGl2ZWx5IGFwcHJveGltYXRlIGZyb20gYSBub256ZXJvIHN0YXJ0aW5nIHBvaW50XG5cdFx0aW5pdGlhbEluVW5pdCA9ICtpbml0aWFsIHx8IDE7XG5cblx0XHR3aGlsZSAoIG1heEl0ZXJhdGlvbnMtLSApIHtcblxuXHRcdFx0Ly8gRXZhbHVhdGUgYW5kIHVwZGF0ZSBvdXIgYmVzdCBndWVzcyAoZG91YmxpbmcgZ3Vlc3NlcyB0aGF0IHplcm8gb3V0KS5cblx0XHRcdC8vIEZpbmlzaCBpZiB0aGUgc2NhbGUgZXF1YWxzIG9yIGNyb3NzZXMgMSAobWFraW5nIHRoZSBvbGQqbmV3IHByb2R1Y3Qgbm9uLXBvc2l0aXZlKS5cblx0XHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgcHJvcCwgaW5pdGlhbEluVW5pdCArIHVuaXQgKTtcblx0XHRcdGlmICggKCAxIC0gc2NhbGUgKSAqICggMSAtICggc2NhbGUgPSBjdXJyZW50VmFsdWUoKSAvIGluaXRpYWwgfHwgMC41ICkgKSA8PSAwICkge1xuXHRcdFx0XHRtYXhJdGVyYXRpb25zID0gMDtcblx0XHRcdH1cblx0XHRcdGluaXRpYWxJblVuaXQgPSBpbml0aWFsSW5Vbml0IC8gc2NhbGU7XG5cblx0XHR9XG5cblx0XHRpbml0aWFsSW5Vbml0ID0gaW5pdGlhbEluVW5pdCAqIDI7XG5cdFx0alF1ZXJ5LnN0eWxlKCBlbGVtLCBwcm9wLCBpbml0aWFsSW5Vbml0ICsgdW5pdCApO1xuXG5cdFx0Ly8gTWFrZSBzdXJlIHdlIHVwZGF0ZSB0aGUgdHdlZW4gcHJvcGVydGllcyBsYXRlciBvblxuXHRcdHZhbHVlUGFydHMgPSB2YWx1ZVBhcnRzIHx8IFtdO1xuXHR9XG5cblx0aWYgKCB2YWx1ZVBhcnRzICkge1xuXHRcdGluaXRpYWxJblVuaXQgPSAraW5pdGlhbEluVW5pdCB8fCAraW5pdGlhbCB8fCAwO1xuXG5cdFx0Ly8gQXBwbHkgcmVsYXRpdmUgb2Zmc2V0ICgrPS8tPSkgaWYgc3BlY2lmaWVkXG5cdFx0YWRqdXN0ZWQgPSB2YWx1ZVBhcnRzWyAxIF0gP1xuXHRcdFx0aW5pdGlhbEluVW5pdCArICggdmFsdWVQYXJ0c1sgMSBdICsgMSApICogdmFsdWVQYXJ0c1sgMiBdIDpcblx0XHRcdCt2YWx1ZVBhcnRzWyAyIF07XG5cdFx0aWYgKCB0d2VlbiApIHtcblx0XHRcdHR3ZWVuLnVuaXQgPSB1bml0O1xuXHRcdFx0dHdlZW4uc3RhcnQgPSBpbml0aWFsSW5Vbml0O1xuXHRcdFx0dHdlZW4uZW5kID0gYWRqdXN0ZWQ7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBhZGp1c3RlZDtcbn1cblxuXG52YXIgZGVmYXVsdERpc3BsYXlNYXAgPSB7fTtcblxuZnVuY3Rpb24gZ2V0RGVmYXVsdERpc3BsYXkoIGVsZW0gKSB7XG5cdHZhciB0ZW1wLFxuXHRcdGRvYyA9IGVsZW0ub3duZXJEb2N1bWVudCxcblx0XHRub2RlTmFtZSA9IGVsZW0ubm9kZU5hbWUsXG5cdFx0ZGlzcGxheSA9IGRlZmF1bHREaXNwbGF5TWFwWyBub2RlTmFtZSBdO1xuXG5cdGlmICggZGlzcGxheSApIHtcblx0XHRyZXR1cm4gZGlzcGxheTtcblx0fVxuXG5cdHRlbXAgPSBkb2MuYm9keS5hcHBlbmRDaGlsZCggZG9jLmNyZWF0ZUVsZW1lbnQoIG5vZGVOYW1lICkgKTtcblx0ZGlzcGxheSA9IGpRdWVyeS5jc3MoIHRlbXAsIFwiZGlzcGxheVwiICk7XG5cblx0dGVtcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCB0ZW1wICk7XG5cblx0aWYgKCBkaXNwbGF5ID09PSBcIm5vbmVcIiApIHtcblx0XHRkaXNwbGF5ID0gXCJibG9ja1wiO1xuXHR9XG5cdGRlZmF1bHREaXNwbGF5TWFwWyBub2RlTmFtZSBdID0gZGlzcGxheTtcblxuXHRyZXR1cm4gZGlzcGxheTtcbn1cblxuZnVuY3Rpb24gc2hvd0hpZGUoIGVsZW1lbnRzLCBzaG93ICkge1xuXHR2YXIgZGlzcGxheSwgZWxlbSxcblx0XHR2YWx1ZXMgPSBbXSxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gZWxlbWVudHMubGVuZ3RoO1xuXG5cdC8vIERldGVybWluZSBuZXcgZGlzcGxheSB2YWx1ZSBmb3IgZWxlbWVudHMgdGhhdCBuZWVkIHRvIGNoYW5nZVxuXHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdGVsZW0gPSBlbGVtZW50c1sgaW5kZXggXTtcblx0XHRpZiAoICFlbGVtLnN0eWxlICkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0ZGlzcGxheSA9IGVsZW0uc3R5bGUuZGlzcGxheTtcblx0XHRpZiAoIHNob3cgKSB7XG5cblx0XHRcdC8vIFNpbmNlIHdlIGZvcmNlIHZpc2liaWxpdHkgdXBvbiBjYXNjYWRlLWhpZGRlbiBlbGVtZW50cywgYW4gaW1tZWRpYXRlIChhbmQgc2xvdylcblx0XHRcdC8vIGNoZWNrIGlzIHJlcXVpcmVkIGluIHRoaXMgZmlyc3QgbG9vcCB1bmxlc3Mgd2UgaGF2ZSBhIG5vbmVtcHR5IGRpc3BsYXkgdmFsdWUgKGVpdGhlclxuXHRcdFx0Ly8gaW5saW5lIG9yIGFib3V0LXRvLWJlLXJlc3RvcmVkKVxuXHRcdFx0aWYgKCBkaXNwbGF5ID09PSBcIm5vbmVcIiApIHtcblx0XHRcdFx0dmFsdWVzWyBpbmRleCBdID0gZGF0YVByaXYuZ2V0KCBlbGVtLCBcImRpc3BsYXlcIiApIHx8IG51bGw7XG5cdFx0XHRcdGlmICggIXZhbHVlc1sgaW5kZXggXSApIHtcblx0XHRcdFx0XHRlbGVtLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAoIGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJcIiAmJiBpc0hpZGRlbldpdGhpblRyZWUoIGVsZW0gKSApIHtcblx0XHRcdFx0dmFsdWVzWyBpbmRleCBdID0gZ2V0RGVmYXVsdERpc3BsYXkoIGVsZW0gKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKCBkaXNwbGF5ICE9PSBcIm5vbmVcIiApIHtcblx0XHRcdFx0dmFsdWVzWyBpbmRleCBdID0gXCJub25lXCI7XG5cblx0XHRcdFx0Ly8gUmVtZW1iZXIgd2hhdCB3ZSdyZSBvdmVyd3JpdGluZ1xuXHRcdFx0XHRkYXRhUHJpdi5zZXQoIGVsZW0sIFwiZGlzcGxheVwiLCBkaXNwbGF5ICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gU2V0IHRoZSBkaXNwbGF5IG9mIHRoZSBlbGVtZW50cyBpbiBhIHNlY29uZCBsb29wIHRvIGF2b2lkIGNvbnN0YW50IHJlZmxvd1xuXHRmb3IgKCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdGlmICggdmFsdWVzWyBpbmRleCBdICE9IG51bGwgKSB7XG5cdFx0XHRlbGVtZW50c1sgaW5kZXggXS5zdHlsZS5kaXNwbGF5ID0gdmFsdWVzWyBpbmRleCBdO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBlbGVtZW50cztcbn1cblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRzaG93OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gc2hvd0hpZGUoIHRoaXMsIHRydWUgKTtcblx0fSxcblx0aGlkZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHNob3dIaWRlKCB0aGlzICk7XG5cdH0sXG5cdHRvZ2dsZTogZnVuY3Rpb24oIHN0YXRlICkge1xuXHRcdGlmICggdHlwZW9mIHN0YXRlID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRcdHJldHVybiBzdGF0ZSA/IHRoaXMuc2hvdygpIDogdGhpcy5oaWRlKCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIGlzSGlkZGVuV2l0aGluVHJlZSggdGhpcyApICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5zaG93KCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5oaWRlKCk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG59ICk7XG52YXIgcmNoZWNrYWJsZVR5cGUgPSAoIC9eKD86Y2hlY2tib3h8cmFkaW8pJC9pICk7XG5cbnZhciBydGFnTmFtZSA9ICggLzwoW2Etel1bXlxcL1xcMD5cXHgyMFxcdFxcclxcblxcZl0qKS9pICk7XG5cbnZhciByc2NyaXB0VHlwZSA9ICggL14kfF5tb2R1bGUkfFxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaSApO1xuXG5cblxuKCBmdW5jdGlvbigpIHtcblx0dmFyIGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLFxuXHRcdGRpdiA9IGZyYWdtZW50LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICkgKSxcblx0XHRpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApO1xuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQgNC4wIC0gNC4zIG9ubHlcblx0Ly8gQ2hlY2sgc3RhdGUgbG9zdCBpZiB0aGUgbmFtZSBpcyBzZXQgKCMxMTIxNylcblx0Ly8gU3VwcG9ydDogV2luZG93cyBXZWIgQXBwcyAoV1dBKVxuXHQvLyBgbmFtZWAgYW5kIGB0eXBlYCBtdXN0IHVzZSAuc2V0QXR0cmlidXRlIGZvciBXV0EgKCMxNDkwMSlcblx0aW5wdXQuc2V0QXR0cmlidXRlKCBcInR5cGVcIiwgXCJyYWRpb1wiICk7XG5cdGlucHV0LnNldEF0dHJpYnV0ZSggXCJjaGVja2VkXCIsIFwiY2hlY2tlZFwiICk7XG5cdGlucHV0LnNldEF0dHJpYnV0ZSggXCJuYW1lXCIsIFwidFwiICk7XG5cblx0ZGl2LmFwcGVuZENoaWxkKCBpbnB1dCApO1xuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjEgb25seVxuXHQvLyBPbGRlciBXZWJLaXQgZG9lc24ndCBjbG9uZSBjaGVja2VkIHN0YXRlIGNvcnJlY3RseSBpbiBmcmFnbWVudHNcblx0c3VwcG9ydC5jaGVja0Nsb25lID0gZGl2LmNsb25lTm9kZSggdHJ1ZSApLmNsb25lTm9kZSggdHJ1ZSApLmxhc3RDaGlsZC5jaGVja2VkO1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHQvLyBNYWtlIHN1cmUgdGV4dGFyZWEgKGFuZCBjaGVja2JveCkgZGVmYXVsdFZhbHVlIGlzIHByb3Blcmx5IGNsb25lZFxuXHRkaXYuaW5uZXJIVE1MID0gXCI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+XCI7XG5cdHN1cHBvcnQubm9DbG9uZUNoZWNrZWQgPSAhIWRpdi5jbG9uZU5vZGUoIHRydWUgKS5sYXN0Q2hpbGQuZGVmYXVsdFZhbHVlO1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5cdC8vIElFIDw9OSByZXBsYWNlcyA8b3B0aW9uPiB0YWdzIHdpdGggdGhlaXIgY29udGVudHMgd2hlbiBpbnNlcnRlZCBvdXRzaWRlIG9mXG5cdC8vIHRoZSBzZWxlY3QgZWxlbWVudC5cblx0ZGl2LmlubmVySFRNTCA9IFwiPG9wdGlvbj48L29wdGlvbj5cIjtcblx0c3VwcG9ydC5vcHRpb24gPSAhIWRpdi5sYXN0Q2hpbGQ7XG59ICkoKTtcblxuXG4vLyBXZSBoYXZlIHRvIGNsb3NlIHRoZXNlIHRhZ3MgdG8gc3VwcG9ydCBYSFRNTCAoIzEzMjAwKVxudmFyIHdyYXBNYXAgPSB7XG5cblx0Ly8gWEhUTUwgcGFyc2VycyBkbyBub3QgbWFnaWNhbGx5IGluc2VydCBlbGVtZW50cyBpbiB0aGVcblx0Ly8gc2FtZSB3YXkgdGhhdCB0YWcgc291cCBwYXJzZXJzIGRvLiBTbyB3ZSBjYW5ub3Qgc2hvcnRlblxuXHQvLyB0aGlzIGJ5IG9taXR0aW5nIDx0Ym9keT4gb3Igb3RoZXIgcmVxdWlyZWQgZWxlbWVudHMuXG5cdHRoZWFkOiBbIDEsIFwiPHRhYmxlPlwiLCBcIjwvdGFibGU+XCIgXSxcblx0Y29sOiBbIDIsIFwiPHRhYmxlPjxjb2xncm91cD5cIiwgXCI8L2NvbGdyb3VwPjwvdGFibGU+XCIgXSxcblx0dHI6IFsgMiwgXCI8dGFibGU+PHRib2R5PlwiLCBcIjwvdGJvZHk+PC90YWJsZT5cIiBdLFxuXHR0ZDogWyAzLCBcIjx0YWJsZT48dGJvZHk+PHRyPlwiLCBcIjwvdHI+PC90Ym9keT48L3RhYmxlPlwiIF0sXG5cblx0X2RlZmF1bHQ6IFsgMCwgXCJcIiwgXCJcIiBdXG59O1xuXG53cmFwTWFwLnRib2R5ID0gd3JhcE1hcC50Zm9vdCA9IHdyYXBNYXAuY29sZ3JvdXAgPSB3cmFwTWFwLmNhcHRpb24gPSB3cmFwTWFwLnRoZWFkO1xud3JhcE1hcC50aCA9IHdyYXBNYXAudGQ7XG5cbi8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5pZiAoICFzdXBwb3J0Lm9wdGlvbiApIHtcblx0d3JhcE1hcC5vcHRncm91cCA9IHdyYXBNYXAub3B0aW9uID0gWyAxLCBcIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz5cIiwgXCI8L3NlbGVjdD5cIiBdO1xufVxuXG5cbmZ1bmN0aW9uIGdldEFsbCggY29udGV4dCwgdGFnICkge1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9OSAtIDExIG9ubHlcblx0Ly8gVXNlIHR5cGVvZiB0byBhdm9pZCB6ZXJvLWFyZ3VtZW50IG1ldGhvZCBpbnZvY2F0aW9uIG9uIGhvc3Qgb2JqZWN0cyAoIzE1MTUxKVxuXHR2YXIgcmV0O1xuXG5cdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cdFx0cmV0ID0gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggdGFnIHx8IFwiKlwiICk7XG5cblx0fSBlbHNlIGlmICggdHlwZW9mIGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblx0XHRyZXQgPSBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwoIHRhZyB8fCBcIipcIiApO1xuXG5cdH0gZWxzZSB7XG5cdFx0cmV0ID0gW107XG5cdH1cblxuXHRpZiAoIHRhZyA9PT0gdW5kZWZpbmVkIHx8IHRhZyAmJiBub2RlTmFtZSggY29udGV4dCwgdGFnICkgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5tZXJnZSggWyBjb250ZXh0IF0sIHJldCApO1xuXHR9XG5cblx0cmV0dXJuIHJldDtcbn1cblxuXG4vLyBNYXJrIHNjcmlwdHMgYXMgaGF2aW5nIGFscmVhZHkgYmVlbiBldmFsdWF0ZWRcbmZ1bmN0aW9uIHNldEdsb2JhbEV2YWwoIGVsZW1zLCByZWZFbGVtZW50cyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGwgPSBlbGVtcy5sZW5ndGg7XG5cblx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdGRhdGFQcml2LnNldChcblx0XHRcdGVsZW1zWyBpIF0sXG5cdFx0XHRcImdsb2JhbEV2YWxcIixcblx0XHRcdCFyZWZFbGVtZW50cyB8fCBkYXRhUHJpdi5nZXQoIHJlZkVsZW1lbnRzWyBpIF0sIFwiZ2xvYmFsRXZhbFwiIClcblx0XHQpO1xuXHR9XG59XG5cblxudmFyIHJodG1sID0gLzx8JiM/XFx3KzsvO1xuXG5mdW5jdGlvbiBidWlsZEZyYWdtZW50KCBlbGVtcywgY29udGV4dCwgc2NyaXB0cywgc2VsZWN0aW9uLCBpZ25vcmVkICkge1xuXHR2YXIgZWxlbSwgdG1wLCB0YWcsIHdyYXAsIGF0dGFjaGVkLCBqLFxuXHRcdGZyYWdtZW50ID0gY29udGV4dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksXG5cdFx0bm9kZXMgPSBbXSxcblx0XHRpID0gMCxcblx0XHRsID0gZWxlbXMubGVuZ3RoO1xuXG5cdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRlbGVtID0gZWxlbXNbIGkgXTtcblxuXHRcdGlmICggZWxlbSB8fCBlbGVtID09PSAwICkge1xuXG5cdFx0XHQvLyBBZGQgbm9kZXMgZGlyZWN0bHlcblx0XHRcdGlmICggdG9UeXBlKCBlbGVtICkgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMCBvbmx5LCBQaGFudG9tSlMgMSBvbmx5XG5cdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCBub2RlcywgZWxlbS5ub2RlVHlwZSA/IFsgZWxlbSBdIDogZWxlbSApO1xuXG5cdFx0XHQvLyBDb252ZXJ0IG5vbi1odG1sIGludG8gYSB0ZXh0IG5vZGVcblx0XHRcdH0gZWxzZSBpZiAoICFyaHRtbC50ZXN0KCBlbGVtICkgKSB7XG5cdFx0XHRcdG5vZGVzLnB1c2goIGNvbnRleHQuY3JlYXRlVGV4dE5vZGUoIGVsZW0gKSApO1xuXG5cdFx0XHQvLyBDb252ZXJ0IGh0bWwgaW50byBET00gbm9kZXNcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRtcCA9IHRtcCB8fCBmcmFnbWVudC5hcHBlbmRDaGlsZCggY29udGV4dC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICkgKTtcblxuXHRcdFx0XHQvLyBEZXNlcmlhbGl6ZSBhIHN0YW5kYXJkIHJlcHJlc2VudGF0aW9uXG5cdFx0XHRcdHRhZyA9ICggcnRhZ05hbWUuZXhlYyggZWxlbSApIHx8IFsgXCJcIiwgXCJcIiBdIClbIDEgXS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHR3cmFwID0gd3JhcE1hcFsgdGFnIF0gfHwgd3JhcE1hcC5fZGVmYXVsdDtcblx0XHRcdFx0dG1wLmlubmVySFRNTCA9IHdyYXBbIDEgXSArIGpRdWVyeS5odG1sUHJlZmlsdGVyKCBlbGVtICkgKyB3cmFwWyAyIF07XG5cblx0XHRcdFx0Ly8gRGVzY2VuZCB0aHJvdWdoIHdyYXBwZXJzIHRvIHRoZSByaWdodCBjb250ZW50XG5cdFx0XHRcdGogPSB3cmFwWyAwIF07XG5cdFx0XHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0XHRcdHRtcCA9IHRtcC5sYXN0Q2hpbGQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0XHRcdFx0Ly8gcHVzaC5hcHBseShfLCBhcnJheWxpa2UpIHRocm93cyBvbiBhbmNpZW50IFdlYktpdFxuXHRcdFx0XHRqUXVlcnkubWVyZ2UoIG5vZGVzLCB0bXAuY2hpbGROb2RlcyApO1xuXG5cdFx0XHRcdC8vIFJlbWVtYmVyIHRoZSB0b3AtbGV2ZWwgY29udGFpbmVyXG5cdFx0XHRcdHRtcCA9IGZyYWdtZW50LmZpcnN0Q2hpbGQ7XG5cblx0XHRcdFx0Ly8gRW5zdXJlIHRoZSBjcmVhdGVkIG5vZGVzIGFyZSBvcnBoYW5lZCAoIzEyMzkyKVxuXHRcdFx0XHR0bXAudGV4dENvbnRlbnQgPSBcIlwiO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIFJlbW92ZSB3cmFwcGVyIGZyb20gZnJhZ21lbnRcblx0ZnJhZ21lbnQudGV4dENvbnRlbnQgPSBcIlwiO1xuXG5cdGkgPSAwO1xuXHR3aGlsZSAoICggZWxlbSA9IG5vZGVzWyBpKysgXSApICkge1xuXG5cdFx0Ly8gU2tpcCBlbGVtZW50cyBhbHJlYWR5IGluIHRoZSBjb250ZXh0IGNvbGxlY3Rpb24gKHRyYWMtNDA4Nylcblx0XHRpZiAoIHNlbGVjdGlvbiAmJiBqUXVlcnkuaW5BcnJheSggZWxlbSwgc2VsZWN0aW9uICkgPiAtMSApIHtcblx0XHRcdGlmICggaWdub3JlZCApIHtcblx0XHRcdFx0aWdub3JlZC5wdXNoKCBlbGVtICk7XG5cdFx0XHR9XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRhdHRhY2hlZCA9IGlzQXR0YWNoZWQoIGVsZW0gKTtcblxuXHRcdC8vIEFwcGVuZCB0byBmcmFnbWVudFxuXHRcdHRtcCA9IGdldEFsbCggZnJhZ21lbnQuYXBwZW5kQ2hpbGQoIGVsZW0gKSwgXCJzY3JpcHRcIiApO1xuXG5cdFx0Ly8gUHJlc2VydmUgc2NyaXB0IGV2YWx1YXRpb24gaGlzdG9yeVxuXHRcdGlmICggYXR0YWNoZWQgKSB7XG5cdFx0XHRzZXRHbG9iYWxFdmFsKCB0bXAgKTtcblx0XHR9XG5cblx0XHQvLyBDYXB0dXJlIGV4ZWN1dGFibGVzXG5cdFx0aWYgKCBzY3JpcHRzICkge1xuXHRcdFx0aiA9IDA7XG5cdFx0XHR3aGlsZSAoICggZWxlbSA9IHRtcFsgaisrIF0gKSApIHtcblx0XHRcdFx0aWYgKCByc2NyaXB0VHlwZS50ZXN0KCBlbGVtLnR5cGUgfHwgXCJcIiApICkge1xuXHRcdFx0XHRcdHNjcmlwdHMucHVzaCggZWxlbSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIGZyYWdtZW50O1xufVxuXG5cbnZhclxuXHRya2V5RXZlbnQgPSAvXmtleS8sXG5cdHJtb3VzZUV2ZW50ID0gL14oPzptb3VzZXxwb2ludGVyfGNvbnRleHRtZW51fGRyYWd8ZHJvcCl8Y2xpY2svLFxuXHRydHlwZW5hbWVzcGFjZSA9IC9eKFteLl0qKSg/OlxcLiguKyl8KS87XG5cbmZ1bmN0aW9uIHJldHVyblRydWUoKSB7XG5cdHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiByZXR1cm5GYWxzZSgpIHtcblx0cmV0dXJuIGZhbHNlO1xufVxuXG4vLyBTdXBwb3J0OiBJRSA8PTkgLSAxMStcbi8vIGZvY3VzKCkgYW5kIGJsdXIoKSBhcmUgYXN5bmNocm9ub3VzLCBleGNlcHQgd2hlbiB0aGV5IGFyZSBuby1vcC5cbi8vIFNvIGV4cGVjdCBmb2N1cyB0byBiZSBzeW5jaHJvbm91cyB3aGVuIHRoZSBlbGVtZW50IGlzIGFscmVhZHkgYWN0aXZlLFxuLy8gYW5kIGJsdXIgdG8gYmUgc3luY2hyb25vdXMgd2hlbiB0aGUgZWxlbWVudCBpcyBub3QgYWxyZWFkeSBhY3RpdmUuXG4vLyAoZm9jdXMgYW5kIGJsdXIgYXJlIGFsd2F5cyBzeW5jaHJvbm91cyBpbiBvdGhlciBzdXBwb3J0ZWQgYnJvd3NlcnMsXG4vLyB0aGlzIGp1c3QgZGVmaW5lcyB3aGVuIHdlIGNhbiBjb3VudCBvbiBpdCkuXG5mdW5jdGlvbiBleHBlY3RTeW5jKCBlbGVtLCB0eXBlICkge1xuXHRyZXR1cm4gKCBlbGVtID09PSBzYWZlQWN0aXZlRWxlbWVudCgpICkgPT09ICggdHlwZSA9PT0gXCJmb2N1c1wiICk7XG59XG5cbi8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG4vLyBBY2Nlc3NpbmcgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBjYW4gdGhyb3cgdW5leHBlY3RlZGx5XG4vLyBodHRwczovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTMzOTNcbmZ1bmN0aW9uIHNhZmVBY3RpdmVFbGVtZW50KCkge1xuXHR0cnkge1xuXHRcdHJldHVybiBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXHR9IGNhdGNoICggZXJyICkgeyB9XG59XG5cbmZ1bmN0aW9uIG9uKCBlbGVtLCB0eXBlcywgc2VsZWN0b3IsIGRhdGEsIGZuLCBvbmUgKSB7XG5cdHZhciBvcmlnRm4sIHR5cGU7XG5cblx0Ly8gVHlwZXMgY2FuIGJlIGEgbWFwIG9mIHR5cGVzL2hhbmRsZXJzXG5cdGlmICggdHlwZW9mIHR5cGVzID09PSBcIm9iamVjdFwiICkge1xuXG5cdFx0Ly8gKCB0eXBlcy1PYmplY3QsIHNlbGVjdG9yLCBkYXRhIClcblx0XHRpZiAoIHR5cGVvZiBzZWxlY3RvciAhPT0gXCJzdHJpbmdcIiApIHtcblxuXHRcdFx0Ly8gKCB0eXBlcy1PYmplY3QsIGRhdGEgKVxuXHRcdFx0ZGF0YSA9IGRhdGEgfHwgc2VsZWN0b3I7XG5cdFx0XHRzZWxlY3RvciA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0Zm9yICggdHlwZSBpbiB0eXBlcyApIHtcblx0XHRcdG9uKCBlbGVtLCB0eXBlLCBzZWxlY3RvciwgZGF0YSwgdHlwZXNbIHR5cGUgXSwgb25lICk7XG5cdFx0fVxuXHRcdHJldHVybiBlbGVtO1xuXHR9XG5cblx0aWYgKCBkYXRhID09IG51bGwgJiYgZm4gPT0gbnVsbCApIHtcblxuXHRcdC8vICggdHlwZXMsIGZuIClcblx0XHRmbiA9IHNlbGVjdG9yO1xuXHRcdGRhdGEgPSBzZWxlY3RvciA9IHVuZGVmaW5lZDtcblx0fSBlbHNlIGlmICggZm4gPT0gbnVsbCApIHtcblx0XHRpZiAoIHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiApIHtcblxuXHRcdFx0Ly8gKCB0eXBlcywgc2VsZWN0b3IsIGZuIClcblx0XHRcdGZuID0gZGF0YTtcblx0XHRcdGRhdGEgPSB1bmRlZmluZWQ7XG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0Ly8gKCB0eXBlcywgZGF0YSwgZm4gKVxuXHRcdFx0Zm4gPSBkYXRhO1xuXHRcdFx0ZGF0YSA9IHNlbGVjdG9yO1xuXHRcdFx0c2VsZWN0b3IgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cdGlmICggZm4gPT09IGZhbHNlICkge1xuXHRcdGZuID0gcmV0dXJuRmFsc2U7XG5cdH0gZWxzZSBpZiAoICFmbiApIHtcblx0XHRyZXR1cm4gZWxlbTtcblx0fVxuXG5cdGlmICggb25lID09PSAxICkge1xuXHRcdG9yaWdGbiA9IGZuO1xuXHRcdGZuID0gZnVuY3Rpb24oIGV2ZW50ICkge1xuXG5cdFx0XHQvLyBDYW4gdXNlIGFuIGVtcHR5IHNldCwgc2luY2UgZXZlbnQgY29udGFpbnMgdGhlIGluZm9cblx0XHRcdGpRdWVyeSgpLm9mZiggZXZlbnQgKTtcblx0XHRcdHJldHVybiBvcmlnRm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdH07XG5cblx0XHQvLyBVc2Ugc2FtZSBndWlkIHNvIGNhbGxlciBjYW4gcmVtb3ZlIHVzaW5nIG9yaWdGblxuXHRcdGZuLmd1aWQgPSBvcmlnRm4uZ3VpZCB8fCAoIG9yaWdGbi5ndWlkID0galF1ZXJ5Lmd1aWQrKyApO1xuXHR9XG5cdHJldHVybiBlbGVtLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdGpRdWVyeS5ldmVudC5hZGQoIHRoaXMsIHR5cGVzLCBmbiwgZGF0YSwgc2VsZWN0b3IgKTtcblx0fSApO1xufVxuXG4vKlxuICogSGVscGVyIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgZXZlbnRzIC0tIG5vdCBwYXJ0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLlxuICogUHJvcHMgdG8gRGVhbiBFZHdhcmRzJyBhZGRFdmVudCBsaWJyYXJ5IGZvciBtYW55IG9mIHRoZSBpZGVhcy5cbiAqL1xualF1ZXJ5LmV2ZW50ID0ge1xuXG5cdGdsb2JhbDoge30sXG5cblx0YWRkOiBmdW5jdGlvbiggZWxlbSwgdHlwZXMsIGhhbmRsZXIsIGRhdGEsIHNlbGVjdG9yICkge1xuXG5cdFx0dmFyIGhhbmRsZU9iakluLCBldmVudEhhbmRsZSwgdG1wLFxuXHRcdFx0ZXZlbnRzLCB0LCBoYW5kbGVPYmosXG5cdFx0XHRzcGVjaWFsLCBoYW5kbGVycywgdHlwZSwgbmFtZXNwYWNlcywgb3JpZ1R5cGUsXG5cdFx0XHRlbGVtRGF0YSA9IGRhdGFQcml2LmdldCggZWxlbSApO1xuXG5cdFx0Ly8gT25seSBhdHRhY2ggZXZlbnRzIHRvIG9iamVjdHMgdGhhdCBhY2NlcHQgZGF0YVxuXHRcdGlmICggIWFjY2VwdERhdGEoIGVsZW0gKSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBDYWxsZXIgY2FuIHBhc3MgaW4gYW4gb2JqZWN0IG9mIGN1c3RvbSBkYXRhIGluIGxpZXUgb2YgdGhlIGhhbmRsZXJcblx0XHRpZiAoIGhhbmRsZXIuaGFuZGxlciApIHtcblx0XHRcdGhhbmRsZU9iakluID0gaGFuZGxlcjtcblx0XHRcdGhhbmRsZXIgPSBoYW5kbGVPYmpJbi5oYW5kbGVyO1xuXHRcdFx0c2VsZWN0b3IgPSBoYW5kbGVPYmpJbi5zZWxlY3Rvcjtcblx0XHR9XG5cblx0XHQvLyBFbnN1cmUgdGhhdCBpbnZhbGlkIHNlbGVjdG9ycyB0aHJvdyBleGNlcHRpb25zIGF0IGF0dGFjaCB0aW1lXG5cdFx0Ly8gRXZhbHVhdGUgYWdhaW5zdCBkb2N1bWVudEVsZW1lbnQgaW4gY2FzZSBlbGVtIGlzIGEgbm9uLWVsZW1lbnQgbm9kZSAoZS5nLiwgZG9jdW1lbnQpXG5cdFx0aWYgKCBzZWxlY3RvciApIHtcblx0XHRcdGpRdWVyeS5maW5kLm1hdGNoZXNTZWxlY3RvciggZG9jdW1lbnRFbGVtZW50LCBzZWxlY3RvciApO1xuXHRcdH1cblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBoYW5kbGVyIGhhcyBhIHVuaXF1ZSBJRCwgdXNlZCB0byBmaW5kL3JlbW92ZSBpdCBsYXRlclxuXHRcdGlmICggIWhhbmRsZXIuZ3VpZCApIHtcblx0XHRcdGhhbmRsZXIuZ3VpZCA9IGpRdWVyeS5ndWlkKys7XG5cdFx0fVxuXG5cdFx0Ly8gSW5pdCB0aGUgZWxlbWVudCdzIGV2ZW50IHN0cnVjdHVyZSBhbmQgbWFpbiBoYW5kbGVyLCBpZiB0aGlzIGlzIHRoZSBmaXJzdFxuXHRcdGlmICggISggZXZlbnRzID0gZWxlbURhdGEuZXZlbnRzICkgKSB7XG5cdFx0XHRldmVudHMgPSBlbGVtRGF0YS5ldmVudHMgPSBPYmplY3QuY3JlYXRlKCBudWxsICk7XG5cdFx0fVxuXHRcdGlmICggISggZXZlbnRIYW5kbGUgPSBlbGVtRGF0YS5oYW5kbGUgKSApIHtcblx0XHRcdGV2ZW50SGFuZGxlID0gZWxlbURhdGEuaGFuZGxlID0gZnVuY3Rpb24oIGUgKSB7XG5cblx0XHRcdFx0Ly8gRGlzY2FyZCB0aGUgc2Vjb25kIGV2ZW50IG9mIGEgalF1ZXJ5LmV2ZW50LnRyaWdnZXIoKSBhbmRcblx0XHRcdFx0Ly8gd2hlbiBhbiBldmVudCBpcyBjYWxsZWQgYWZ0ZXIgYSBwYWdlIGhhcyB1bmxvYWRlZFxuXHRcdFx0XHRyZXR1cm4gdHlwZW9mIGpRdWVyeSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBqUXVlcnkuZXZlbnQudHJpZ2dlcmVkICE9PSBlLnR5cGUgP1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5kaXNwYXRjaC5hcHBseSggZWxlbSwgYXJndW1lbnRzICkgOiB1bmRlZmluZWQ7XG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdC8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2VwYXJhdGVkIGJ5IGEgc3BhY2Vcblx0XHR0eXBlcyA9ICggdHlwZXMgfHwgXCJcIiApLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgWyBcIlwiIF07XG5cdFx0dCA9IHR5cGVzLmxlbmd0aDtcblx0XHR3aGlsZSAoIHQtLSApIHtcblx0XHRcdHRtcCA9IHJ0eXBlbmFtZXNwYWNlLmV4ZWMoIHR5cGVzWyB0IF0gKSB8fCBbXTtcblx0XHRcdHR5cGUgPSBvcmlnVHlwZSA9IHRtcFsgMSBdO1xuXHRcdFx0bmFtZXNwYWNlcyA9ICggdG1wWyAyIF0gfHwgXCJcIiApLnNwbGl0KCBcIi5cIiApLnNvcnQoKTtcblxuXHRcdFx0Ly8gVGhlcmUgKm11c3QqIGJlIGEgdHlwZSwgbm8gYXR0YWNoaW5nIG5hbWVzcGFjZS1vbmx5IGhhbmRsZXJzXG5cdFx0XHRpZiAoICF0eXBlICkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgZXZlbnQgY2hhbmdlcyBpdHMgdHlwZSwgdXNlIHRoZSBzcGVjaWFsIGV2ZW50IGhhbmRsZXJzIGZvciB0aGUgY2hhbmdlZCB0eXBlXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTtcblxuXHRcdFx0Ly8gSWYgc2VsZWN0b3IgZGVmaW5lZCwgZGV0ZXJtaW5lIHNwZWNpYWwgZXZlbnQgYXBpIHR5cGUsIG90aGVyd2lzZSBnaXZlbiB0eXBlXG5cdFx0XHR0eXBlID0gKCBzZWxlY3RvciA/IHNwZWNpYWwuZGVsZWdhdGVUeXBlIDogc3BlY2lhbC5iaW5kVHlwZSApIHx8IHR5cGU7XG5cblx0XHRcdC8vIFVwZGF0ZSBzcGVjaWFsIGJhc2VkIG9uIG5ld2x5IHJlc2V0IHR5cGVcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xuXG5cdFx0XHQvLyBoYW5kbGVPYmogaXMgcGFzc2VkIHRvIGFsbCBldmVudCBoYW5kbGVyc1xuXHRcdFx0aGFuZGxlT2JqID0galF1ZXJ5LmV4dGVuZCgge1xuXHRcdFx0XHR0eXBlOiB0eXBlLFxuXHRcdFx0XHRvcmlnVHlwZTogb3JpZ1R5cGUsXG5cdFx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRcdGhhbmRsZXI6IGhhbmRsZXIsXG5cdFx0XHRcdGd1aWQ6IGhhbmRsZXIuZ3VpZCxcblx0XHRcdFx0c2VsZWN0b3I6IHNlbGVjdG9yLFxuXHRcdFx0XHRuZWVkc0NvbnRleHQ6IHNlbGVjdG9yICYmIGpRdWVyeS5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KCBzZWxlY3RvciApLFxuXHRcdFx0XHRuYW1lc3BhY2U6IG5hbWVzcGFjZXMuam9pbiggXCIuXCIgKVxuXHRcdFx0fSwgaGFuZGxlT2JqSW4gKTtcblxuXHRcdFx0Ly8gSW5pdCB0aGUgZXZlbnQgaGFuZGxlciBxdWV1ZSBpZiB3ZSdyZSB0aGUgZmlyc3Rcblx0XHRcdGlmICggISggaGFuZGxlcnMgPSBldmVudHNbIHR5cGUgXSApICkge1xuXHRcdFx0XHRoYW5kbGVycyA9IGV2ZW50c1sgdHlwZSBdID0gW107XG5cdFx0XHRcdGhhbmRsZXJzLmRlbGVnYXRlQ291bnQgPSAwO1xuXG5cdFx0XHRcdC8vIE9ubHkgdXNlIGFkZEV2ZW50TGlzdGVuZXIgaWYgdGhlIHNwZWNpYWwgZXZlbnRzIGhhbmRsZXIgcmV0dXJucyBmYWxzZVxuXHRcdFx0XHRpZiAoICFzcGVjaWFsLnNldHVwIHx8XG5cdFx0XHRcdFx0c3BlY2lhbC5zZXR1cC5jYWxsKCBlbGVtLCBkYXRhLCBuYW1lc3BhY2VzLCBldmVudEhhbmRsZSApID09PSBmYWxzZSApIHtcblxuXHRcdFx0XHRcdGlmICggZWxlbS5hZGRFdmVudExpc3RlbmVyICkge1xuXHRcdFx0XHRcdFx0ZWxlbS5hZGRFdmVudExpc3RlbmVyKCB0eXBlLCBldmVudEhhbmRsZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIHNwZWNpYWwuYWRkICkge1xuXHRcdFx0XHRzcGVjaWFsLmFkZC5jYWxsKCBlbGVtLCBoYW5kbGVPYmogKTtcblxuXHRcdFx0XHRpZiAoICFoYW5kbGVPYmouaGFuZGxlci5ndWlkICkge1xuXHRcdFx0XHRcdGhhbmRsZU9iai5oYW5kbGVyLmd1aWQgPSBoYW5kbGVyLmd1aWQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gQWRkIHRvIHRoZSBlbGVtZW50J3MgaGFuZGxlciBsaXN0LCBkZWxlZ2F0ZXMgaW4gZnJvbnRcblx0XHRcdGlmICggc2VsZWN0b3IgKSB7XG5cdFx0XHRcdGhhbmRsZXJzLnNwbGljZSggaGFuZGxlcnMuZGVsZWdhdGVDb3VudCsrLCAwLCBoYW5kbGVPYmogKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGhhbmRsZXJzLnB1c2goIGhhbmRsZU9iaiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBLZWVwIHRyYWNrIG9mIHdoaWNoIGV2ZW50cyBoYXZlIGV2ZXIgYmVlbiB1c2VkLCBmb3IgZXZlbnQgb3B0aW1pemF0aW9uXG5cdFx0XHRqUXVlcnkuZXZlbnQuZ2xvYmFsWyB0eXBlIF0gPSB0cnVlO1xuXHRcdH1cblxuXHR9LFxuXG5cdC8vIERldGFjaCBhbiBldmVudCBvciBzZXQgb2YgZXZlbnRzIGZyb20gYW4gZWxlbWVudFxuXHRyZW1vdmU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlcywgaGFuZGxlciwgc2VsZWN0b3IsIG1hcHBlZFR5cGVzICkge1xuXG5cdFx0dmFyIGosIG9yaWdDb3VudCwgdG1wLFxuXHRcdFx0ZXZlbnRzLCB0LCBoYW5kbGVPYmosXG5cdFx0XHRzcGVjaWFsLCBoYW5kbGVycywgdHlwZSwgbmFtZXNwYWNlcywgb3JpZ1R5cGUsXG5cdFx0XHRlbGVtRGF0YSA9IGRhdGFQcml2Lmhhc0RhdGEoIGVsZW0gKSAmJiBkYXRhUHJpdi5nZXQoIGVsZW0gKTtcblxuXHRcdGlmICggIWVsZW1EYXRhIHx8ICEoIGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cyApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIE9uY2UgZm9yIGVhY2ggdHlwZS5uYW1lc3BhY2UgaW4gdHlwZXM7IHR5cGUgbWF5IGJlIG9taXR0ZWRcblx0XHR0eXBlcyA9ICggdHlwZXMgfHwgXCJcIiApLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgWyBcIlwiIF07XG5cdFx0dCA9IHR5cGVzLmxlbmd0aDtcblx0XHR3aGlsZSAoIHQtLSApIHtcblx0XHRcdHRtcCA9IHJ0eXBlbmFtZXNwYWNlLmV4ZWMoIHR5cGVzWyB0IF0gKSB8fCBbXTtcblx0XHRcdHR5cGUgPSBvcmlnVHlwZSA9IHRtcFsgMSBdO1xuXHRcdFx0bmFtZXNwYWNlcyA9ICggdG1wWyAyIF0gfHwgXCJcIiApLnNwbGl0KCBcIi5cIiApLnNvcnQoKTtcblxuXHRcdFx0Ly8gVW5iaW5kIGFsbCBldmVudHMgKG9uIHRoaXMgbmFtZXNwYWNlLCBpZiBwcm92aWRlZCkgZm9yIHRoZSBlbGVtZW50XG5cdFx0XHRpZiAoICF0eXBlICkge1xuXHRcdFx0XHRmb3IgKCB0eXBlIGluIGV2ZW50cyApIHtcblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQucmVtb3ZlKCBlbGVtLCB0eXBlICsgdHlwZXNbIHQgXSwgaGFuZGxlciwgc2VsZWN0b3IsIHRydWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307XG5cdFx0XHR0eXBlID0gKCBzZWxlY3RvciA/IHNwZWNpYWwuZGVsZWdhdGVUeXBlIDogc3BlY2lhbC5iaW5kVHlwZSApIHx8IHR5cGU7XG5cdFx0XHRoYW5kbGVycyA9IGV2ZW50c1sgdHlwZSBdIHx8IFtdO1xuXHRcdFx0dG1wID0gdG1wWyAyIF0gJiZcblx0XHRcdFx0bmV3IFJlZ0V4cCggXCIoXnxcXFxcLilcIiArIG5hbWVzcGFjZXMuam9pbiggXCJcXFxcLig/Oi4qXFxcXC58KVwiICkgKyBcIihcXFxcLnwkKVwiICk7XG5cblx0XHRcdC8vIFJlbW92ZSBtYXRjaGluZyBldmVudHNcblx0XHRcdG9yaWdDb3VudCA9IGogPSBoYW5kbGVycy5sZW5ndGg7XG5cdFx0XHR3aGlsZSAoIGotLSApIHtcblx0XHRcdFx0aGFuZGxlT2JqID0gaGFuZGxlcnNbIGogXTtcblxuXHRcdFx0XHRpZiAoICggbWFwcGVkVHlwZXMgfHwgb3JpZ1R5cGUgPT09IGhhbmRsZU9iai5vcmlnVHlwZSApICYmXG5cdFx0XHRcdFx0KCAhaGFuZGxlciB8fCBoYW5kbGVyLmd1aWQgPT09IGhhbmRsZU9iai5ndWlkICkgJiZcblx0XHRcdFx0XHQoICF0bXAgfHwgdG1wLnRlc3QoIGhhbmRsZU9iai5uYW1lc3BhY2UgKSApICYmXG5cdFx0XHRcdFx0KCAhc2VsZWN0b3IgfHwgc2VsZWN0b3IgPT09IGhhbmRsZU9iai5zZWxlY3RvciB8fFxuXHRcdFx0XHRcdFx0c2VsZWN0b3IgPT09IFwiKipcIiAmJiBoYW5kbGVPYmouc2VsZWN0b3IgKSApIHtcblx0XHRcdFx0XHRoYW5kbGVycy5zcGxpY2UoIGosIDEgKTtcblxuXHRcdFx0XHRcdGlmICggaGFuZGxlT2JqLnNlbGVjdG9yICkge1xuXHRcdFx0XHRcdFx0aGFuZGxlcnMuZGVsZWdhdGVDb3VudC0tO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIHNwZWNpYWwucmVtb3ZlICkge1xuXHRcdFx0XHRcdFx0c3BlY2lhbC5yZW1vdmUuY2FsbCggZWxlbSwgaGFuZGxlT2JqICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFJlbW92ZSBnZW5lcmljIGV2ZW50IGhhbmRsZXIgaWYgd2UgcmVtb3ZlZCBzb21ldGhpbmcgYW5kIG5vIG1vcmUgaGFuZGxlcnMgZXhpc3Rcblx0XHRcdC8vIChhdm9pZHMgcG90ZW50aWFsIGZvciBlbmRsZXNzIHJlY3Vyc2lvbiBkdXJpbmcgcmVtb3ZhbCBvZiBzcGVjaWFsIGV2ZW50IGhhbmRsZXJzKVxuXHRcdFx0aWYgKCBvcmlnQ291bnQgJiYgIWhhbmRsZXJzLmxlbmd0aCApIHtcblx0XHRcdFx0aWYgKCAhc3BlY2lhbC50ZWFyZG93biB8fFxuXHRcdFx0XHRcdHNwZWNpYWwudGVhcmRvd24uY2FsbCggZWxlbSwgbmFtZXNwYWNlcywgZWxlbURhdGEuaGFuZGxlICkgPT09IGZhbHNlICkge1xuXG5cdFx0XHRcdFx0alF1ZXJ5LnJlbW92ZUV2ZW50KCBlbGVtLCB0eXBlLCBlbGVtRGF0YS5oYW5kbGUgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGRlbGV0ZSBldmVudHNbIHR5cGUgXTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBSZW1vdmUgZGF0YSBhbmQgdGhlIGV4cGFuZG8gaWYgaXQncyBubyBsb25nZXIgdXNlZFxuXHRcdGlmICggalF1ZXJ5LmlzRW1wdHlPYmplY3QoIGV2ZW50cyApICkge1xuXHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBlbGVtLCBcImhhbmRsZSBldmVudHNcIiApO1xuXHRcdH1cblx0fSxcblxuXHRkaXNwYXRjaDogZnVuY3Rpb24oIG5hdGl2ZUV2ZW50ICkge1xuXG5cdFx0dmFyIGksIGosIHJldCwgbWF0Y2hlZCwgaGFuZGxlT2JqLCBoYW5kbGVyUXVldWUsXG5cdFx0XHRhcmdzID0gbmV3IEFycmF5KCBhcmd1bWVudHMubGVuZ3RoICksXG5cblx0XHRcdC8vIE1ha2UgYSB3cml0YWJsZSBqUXVlcnkuRXZlbnQgZnJvbSB0aGUgbmF0aXZlIGV2ZW50IG9iamVjdFxuXHRcdFx0ZXZlbnQgPSBqUXVlcnkuZXZlbnQuZml4KCBuYXRpdmVFdmVudCApLFxuXG5cdFx0XHRoYW5kbGVycyA9IChcblx0XHRcdFx0XHRkYXRhUHJpdi5nZXQoIHRoaXMsIFwiZXZlbnRzXCIgKSB8fCBPYmplY3QuY3JlYXRlKCBudWxsIClcblx0XHRcdFx0KVsgZXZlbnQudHlwZSBdIHx8IFtdLFxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyBldmVudC50eXBlIF0gfHwge307XG5cblx0XHQvLyBVc2UgdGhlIGZpeC1lZCBqUXVlcnkuRXZlbnQgcmF0aGVyIHRoYW4gdGhlIChyZWFkLW9ubHkpIG5hdGl2ZSBldmVudFxuXHRcdGFyZ3NbIDAgXSA9IGV2ZW50O1xuXG5cdFx0Zm9yICggaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRhcmdzWyBpIF0gPSBhcmd1bWVudHNbIGkgXTtcblx0XHR9XG5cblx0XHRldmVudC5kZWxlZ2F0ZVRhcmdldCA9IHRoaXM7XG5cblx0XHQvLyBDYWxsIHRoZSBwcmVEaXNwYXRjaCBob29rIGZvciB0aGUgbWFwcGVkIHR5cGUsIGFuZCBsZXQgaXQgYmFpbCBpZiBkZXNpcmVkXG5cdFx0aWYgKCBzcGVjaWFsLnByZURpc3BhdGNoICYmIHNwZWNpYWwucHJlRGlzcGF0Y2guY2FsbCggdGhpcywgZXZlbnQgKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZXJtaW5lIGhhbmRsZXJzXG5cdFx0aGFuZGxlclF1ZXVlID0galF1ZXJ5LmV2ZW50LmhhbmRsZXJzLmNhbGwoIHRoaXMsIGV2ZW50LCBoYW5kbGVycyApO1xuXG5cdFx0Ly8gUnVuIGRlbGVnYXRlcyBmaXJzdDsgdGhleSBtYXkgd2FudCB0byBzdG9wIHByb3BhZ2F0aW9uIGJlbmVhdGggdXNcblx0XHRpID0gMDtcblx0XHR3aGlsZSAoICggbWF0Y2hlZCA9IGhhbmRsZXJRdWV1ZVsgaSsrIF0gKSAmJiAhZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHtcblx0XHRcdGV2ZW50LmN1cnJlbnRUYXJnZXQgPSBtYXRjaGVkLmVsZW07XG5cblx0XHRcdGogPSAwO1xuXHRcdFx0d2hpbGUgKCAoIGhhbmRsZU9iaiA9IG1hdGNoZWQuaGFuZGxlcnNbIGorKyBdICkgJiZcblx0XHRcdFx0IWV2ZW50LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cblx0XHRcdFx0Ly8gSWYgdGhlIGV2ZW50IGlzIG5hbWVzcGFjZWQsIHRoZW4gZWFjaCBoYW5kbGVyIGlzIG9ubHkgaW52b2tlZCBpZiBpdCBpc1xuXHRcdFx0XHQvLyBzcGVjaWFsbHkgdW5pdmVyc2FsIG9yIGl0cyBuYW1lc3BhY2VzIGFyZSBhIHN1cGVyc2V0IG9mIHRoZSBldmVudCdzLlxuXHRcdFx0XHRpZiAoICFldmVudC5ybmFtZXNwYWNlIHx8IGhhbmRsZU9iai5uYW1lc3BhY2UgPT09IGZhbHNlIHx8XG5cdFx0XHRcdFx0ZXZlbnQucm5hbWVzcGFjZS50ZXN0KCBoYW5kbGVPYmoubmFtZXNwYWNlICkgKSB7XG5cblx0XHRcdFx0XHRldmVudC5oYW5kbGVPYmogPSBoYW5kbGVPYmo7XG5cdFx0XHRcdFx0ZXZlbnQuZGF0YSA9IGhhbmRsZU9iai5kYXRhO1xuXG5cdFx0XHRcdFx0cmV0ID0gKCAoIGpRdWVyeS5ldmVudC5zcGVjaWFsWyBoYW5kbGVPYmoub3JpZ1R5cGUgXSB8fCB7fSApLmhhbmRsZSB8fFxuXHRcdFx0XHRcdFx0aGFuZGxlT2JqLmhhbmRsZXIgKS5hcHBseSggbWF0Y2hlZC5lbGVtLCBhcmdzICk7XG5cblx0XHRcdFx0XHRpZiAoIHJldCAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdFx0aWYgKCAoIGV2ZW50LnJlc3VsdCA9IHJldCApID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsbCB0aGUgcG9zdERpc3BhdGNoIGhvb2sgZm9yIHRoZSBtYXBwZWQgdHlwZVxuXHRcdGlmICggc3BlY2lhbC5wb3N0RGlzcGF0Y2ggKSB7XG5cdFx0XHRzcGVjaWFsLnBvc3REaXNwYXRjaC5jYWxsKCB0aGlzLCBldmVudCApO1xuXHRcdH1cblxuXHRcdHJldHVybiBldmVudC5yZXN1bHQ7XG5cdH0sXG5cblx0aGFuZGxlcnM6IGZ1bmN0aW9uKCBldmVudCwgaGFuZGxlcnMgKSB7XG5cdFx0dmFyIGksIGhhbmRsZU9iaiwgc2VsLCBtYXRjaGVkSGFuZGxlcnMsIG1hdGNoZWRTZWxlY3RvcnMsXG5cdFx0XHRoYW5kbGVyUXVldWUgPSBbXSxcblx0XHRcdGRlbGVnYXRlQ291bnQgPSBoYW5kbGVycy5kZWxlZ2F0ZUNvdW50LFxuXHRcdFx0Y3VyID0gZXZlbnQudGFyZ2V0O1xuXG5cdFx0Ly8gRmluZCBkZWxlZ2F0ZSBoYW5kbGVyc1xuXHRcdGlmICggZGVsZWdhdGVDb3VudCAmJlxuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTlcblx0XHRcdC8vIEJsYWNrLWhvbGUgU1ZHIDx1c2U+IGluc3RhbmNlIHRyZWVzICh0cmFjLTEzMTgwKVxuXHRcdFx0Y3VyLm5vZGVUeXBlICYmXG5cblx0XHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggPD00MlxuXHRcdFx0Ly8gU3VwcHJlc3Mgc3BlYy12aW9sYXRpbmcgY2xpY2tzIGluZGljYXRpbmcgYSBub24tcHJpbWFyeSBwb2ludGVyIGJ1dHRvbiAodHJhYy0zODYxKVxuXHRcdFx0Ly8gaHR0cHM6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnQtdHlwZS1jbGlja1xuXHRcdFx0Ly8gU3VwcG9ydDogSUUgMTEgb25seVxuXHRcdFx0Ly8gLi4uYnV0IG5vdCBhcnJvdyBrZXkgXCJjbGlja3NcIiBvZiByYWRpbyBpbnB1dHMsIHdoaWNoIGNhbiBoYXZlIGBidXR0b25gIC0xIChnaC0yMzQzKVxuXHRcdFx0ISggZXZlbnQudHlwZSA9PT0gXCJjbGlja1wiICYmIGV2ZW50LmJ1dHRvbiA+PSAxICkgKSB7XG5cblx0XHRcdGZvciAoIDsgY3VyICE9PSB0aGlzOyBjdXIgPSBjdXIucGFyZW50Tm9kZSB8fCB0aGlzICkge1xuXG5cdFx0XHRcdC8vIERvbid0IGNoZWNrIG5vbi1lbGVtZW50cyAoIzEzMjA4KVxuXHRcdFx0XHQvLyBEb24ndCBwcm9jZXNzIGNsaWNrcyBvbiBkaXNhYmxlZCBlbGVtZW50cyAoIzY5MTEsICM4MTY1LCAjMTEzODIsICMxMTc2NClcblx0XHRcdFx0aWYgKCBjdXIubm9kZVR5cGUgPT09IDEgJiYgISggZXZlbnQudHlwZSA9PT0gXCJjbGlja1wiICYmIGN1ci5kaXNhYmxlZCA9PT0gdHJ1ZSApICkge1xuXHRcdFx0XHRcdG1hdGNoZWRIYW5kbGVycyA9IFtdO1xuXHRcdFx0XHRcdG1hdGNoZWRTZWxlY3RvcnMgPSB7fTtcblx0XHRcdFx0XHRmb3IgKCBpID0gMDsgaSA8IGRlbGVnYXRlQ291bnQ7IGkrKyApIHtcblx0XHRcdFx0XHRcdGhhbmRsZU9iaiA9IGhhbmRsZXJzWyBpIF07XG5cblx0XHRcdFx0XHRcdC8vIERvbid0IGNvbmZsaWN0IHdpdGggT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0aWVzICgjMTMyMDMpXG5cdFx0XHRcdFx0XHRzZWwgPSBoYW5kbGVPYmouc2VsZWN0b3IgKyBcIiBcIjtcblxuXHRcdFx0XHRcdFx0aWYgKCBtYXRjaGVkU2VsZWN0b3JzWyBzZWwgXSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdFx0XHRtYXRjaGVkU2VsZWN0b3JzWyBzZWwgXSA9IGhhbmRsZU9iai5uZWVkc0NvbnRleHQgP1xuXHRcdFx0XHRcdFx0XHRcdGpRdWVyeSggc2VsLCB0aGlzICkuaW5kZXgoIGN1ciApID4gLTEgOlxuXHRcdFx0XHRcdFx0XHRcdGpRdWVyeS5maW5kKCBzZWwsIHRoaXMsIG51bGwsIFsgY3VyIF0gKS5sZW5ndGg7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAoIG1hdGNoZWRTZWxlY3RvcnNbIHNlbCBdICkge1xuXHRcdFx0XHRcdFx0XHRtYXRjaGVkSGFuZGxlcnMucHVzaCggaGFuZGxlT2JqICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICggbWF0Y2hlZEhhbmRsZXJzLmxlbmd0aCApIHtcblx0XHRcdFx0XHRcdGhhbmRsZXJRdWV1ZS5wdXNoKCB7IGVsZW06IGN1ciwgaGFuZGxlcnM6IG1hdGNoZWRIYW5kbGVycyB9ICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQWRkIHRoZSByZW1haW5pbmcgKGRpcmVjdGx5LWJvdW5kKSBoYW5kbGVyc1xuXHRcdGN1ciA9IHRoaXM7XG5cdFx0aWYgKCBkZWxlZ2F0ZUNvdW50IDwgaGFuZGxlcnMubGVuZ3RoICkge1xuXHRcdFx0aGFuZGxlclF1ZXVlLnB1c2goIHsgZWxlbTogY3VyLCBoYW5kbGVyczogaGFuZGxlcnMuc2xpY2UoIGRlbGVnYXRlQ291bnQgKSB9ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGhhbmRsZXJRdWV1ZTtcblx0fSxcblxuXHRhZGRQcm9wOiBmdW5jdGlvbiggbmFtZSwgaG9vayApIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoIGpRdWVyeS5FdmVudC5wcm90b3R5cGUsIG5hbWUsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cblx0XHRcdGdldDogaXNGdW5jdGlvbiggaG9vayApID9cblx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0aWYgKCB0aGlzLm9yaWdpbmFsRXZlbnQgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBob29rKCB0aGlzLm9yaWdpbmFsRXZlbnQgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gOlxuXHRcdFx0XHRmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRpZiAoIHRoaXMub3JpZ2luYWxFdmVudCApIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFsgbmFtZSBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblxuXHRcdFx0c2V0OiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eSggdGhpcywgbmFtZSwge1xuXHRcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHdyaXRhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHZhbHVlOiB2YWx1ZVxuXHRcdFx0XHR9ICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGZpeDogZnVuY3Rpb24oIG9yaWdpbmFsRXZlbnQgKSB7XG5cdFx0cmV0dXJuIG9yaWdpbmFsRXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gP1xuXHRcdFx0b3JpZ2luYWxFdmVudCA6XG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCBvcmlnaW5hbEV2ZW50ICk7XG5cdH0sXG5cblx0c3BlY2lhbDoge1xuXHRcdGxvYWQ6IHtcblxuXHRcdFx0Ly8gUHJldmVudCB0cmlnZ2VyZWQgaW1hZ2UubG9hZCBldmVudHMgZnJvbSBidWJibGluZyB0byB3aW5kb3cubG9hZFxuXHRcdFx0bm9CdWJibGU6IHRydWVcblx0XHR9LFxuXHRcdGNsaWNrOiB7XG5cblx0XHRcdC8vIFV0aWxpemUgbmF0aXZlIGV2ZW50IHRvIGVuc3VyZSBjb3JyZWN0IHN0YXRlIGZvciBjaGVja2FibGUgaW5wdXRzXG5cdFx0XHRzZXR1cDogZnVuY3Rpb24oIGRhdGEgKSB7XG5cblx0XHRcdFx0Ly8gRm9yIG11dHVhbCBjb21wcmVzc2liaWxpdHkgd2l0aCBfZGVmYXVsdCwgcmVwbGFjZSBgdGhpc2AgYWNjZXNzIHdpdGggYSBsb2NhbCB2YXIuXG5cdFx0XHRcdC8vIGB8fCBkYXRhYCBpcyBkZWFkIGNvZGUgbWVhbnQgb25seSB0byBwcmVzZXJ2ZSB0aGUgdmFyaWFibGUgdGhyb3VnaCBtaW5pZmljYXRpb24uXG5cdFx0XHRcdHZhciBlbCA9IHRoaXMgfHwgZGF0YTtcblxuXHRcdFx0XHQvLyBDbGFpbSB0aGUgZmlyc3QgaGFuZGxlclxuXHRcdFx0XHRpZiAoIHJjaGVja2FibGVUeXBlLnRlc3QoIGVsLnR5cGUgKSAmJlxuXHRcdFx0XHRcdGVsLmNsaWNrICYmIG5vZGVOYW1lKCBlbCwgXCJpbnB1dFwiICkgKSB7XG5cblx0XHRcdFx0XHQvLyBkYXRhUHJpdi5zZXQoIGVsLCBcImNsaWNrXCIsIC4uLiApXG5cdFx0XHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIGVsLCBcImNsaWNrXCIsIHJldHVyblRydWUgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJldHVybiBmYWxzZSB0byBhbGxvdyBub3JtYWwgcHJvY2Vzc2luZyBpbiB0aGUgY2FsbGVyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0sXG5cdFx0XHR0cmlnZ2VyOiBmdW5jdGlvbiggZGF0YSApIHtcblxuXHRcdFx0XHQvLyBGb3IgbXV0dWFsIGNvbXByZXNzaWJpbGl0eSB3aXRoIF9kZWZhdWx0LCByZXBsYWNlIGB0aGlzYCBhY2Nlc3Mgd2l0aCBhIGxvY2FsIHZhci5cblx0XHRcdFx0Ly8gYHx8IGRhdGFgIGlzIGRlYWQgY29kZSBtZWFudCBvbmx5IHRvIHByZXNlcnZlIHRoZSB2YXJpYWJsZSB0aHJvdWdoIG1pbmlmaWNhdGlvbi5cblx0XHRcdFx0dmFyIGVsID0gdGhpcyB8fCBkYXRhO1xuXG5cdFx0XHRcdC8vIEZvcmNlIHNldHVwIGJlZm9yZSB0cmlnZ2VyaW5nIGEgY2xpY2tcblx0XHRcdFx0aWYgKCByY2hlY2thYmxlVHlwZS50ZXN0KCBlbC50eXBlICkgJiZcblx0XHRcdFx0XHRlbC5jbGljayAmJiBub2RlTmFtZSggZWwsIFwiaW5wdXRcIiApICkge1xuXG5cdFx0XHRcdFx0bGV2ZXJhZ2VOYXRpdmUoIGVsLCBcImNsaWNrXCIgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJldHVybiBub24tZmFsc2UgdG8gYWxsb3cgbm9ybWFsIGV2ZW50LXBhdGggcHJvcGFnYXRpb25cblx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBGb3IgY3Jvc3MtYnJvd3NlciBjb25zaXN0ZW5jeSwgc3VwcHJlc3MgbmF0aXZlIC5jbGljaygpIG9uIGxpbmtzXG5cdFx0XHQvLyBBbHNvIHByZXZlbnQgaXQgaWYgd2UncmUgY3VycmVudGx5IGluc2lkZSBhIGxldmVyYWdlZCBuYXRpdmUtZXZlbnQgc3RhY2tcblx0XHRcdF9kZWZhdWx0OiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHRcdHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG5cdFx0XHRcdHJldHVybiByY2hlY2thYmxlVHlwZS50ZXN0KCB0YXJnZXQudHlwZSApICYmXG5cdFx0XHRcdFx0dGFyZ2V0LmNsaWNrICYmIG5vZGVOYW1lKCB0YXJnZXQsIFwiaW5wdXRcIiApICYmXG5cdFx0XHRcdFx0ZGF0YVByaXYuZ2V0KCB0YXJnZXQsIFwiY2xpY2tcIiApIHx8XG5cdFx0XHRcdFx0bm9kZU5hbWUoIHRhcmdldCwgXCJhXCIgKTtcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0YmVmb3JldW5sb2FkOiB7XG5cdFx0XHRwb3N0RGlzcGF0Y2g6IGZ1bmN0aW9uKCBldmVudCApIHtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDIwK1xuXHRcdFx0XHQvLyBGaXJlZm94IGRvZXNuJ3QgYWxlcnQgaWYgdGhlIHJldHVyblZhbHVlIGZpZWxkIGlzIG5vdCBzZXQuXG5cdFx0XHRcdGlmICggZXZlbnQucmVzdWx0ICE9PSB1bmRlZmluZWQgJiYgZXZlbnQub3JpZ2luYWxFdmVudCApIHtcblx0XHRcdFx0XHRldmVudC5vcmlnaW5hbEV2ZW50LnJldHVyblZhbHVlID0gZXZlbnQucmVzdWx0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59O1xuXG4vLyBFbnN1cmUgdGhlIHByZXNlbmNlIG9mIGFuIGV2ZW50IGxpc3RlbmVyIHRoYXQgaGFuZGxlcyBtYW51YWxseS10cmlnZ2VyZWRcbi8vIHN5bnRoZXRpYyBldmVudHMgYnkgaW50ZXJydXB0aW5nIHByb2dyZXNzIHVudGlsIHJlaW52b2tlZCBpbiByZXNwb25zZSB0b1xuLy8gKm5hdGl2ZSogZXZlbnRzIHRoYXQgaXQgZmlyZXMgZGlyZWN0bHksIGVuc3VyaW5nIHRoYXQgc3RhdGUgY2hhbmdlcyBoYXZlXG4vLyBhbHJlYWR5IG9jY3VycmVkIGJlZm9yZSBvdGhlciBsaXN0ZW5lcnMgYXJlIGludm9rZWQuXG5mdW5jdGlvbiBsZXZlcmFnZU5hdGl2ZSggZWwsIHR5cGUsIGV4cGVjdFN5bmMgKSB7XG5cblx0Ly8gTWlzc2luZyBleHBlY3RTeW5jIGluZGljYXRlcyBhIHRyaWdnZXIgY2FsbCwgd2hpY2ggbXVzdCBmb3JjZSBzZXR1cCB0aHJvdWdoIGpRdWVyeS5ldmVudC5hZGRcblx0aWYgKCAhZXhwZWN0U3luYyApIHtcblx0XHRpZiAoIGRhdGFQcml2LmdldCggZWwsIHR5cGUgKSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LmFkZCggZWwsIHR5cGUsIHJldHVyblRydWUgKTtcblx0XHR9XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Ly8gUmVnaXN0ZXIgdGhlIGNvbnRyb2xsZXIgYXMgYSBzcGVjaWFsIHVuaXZlcnNhbCBoYW5kbGVyIGZvciBhbGwgZXZlbnQgbmFtZXNwYWNlc1xuXHRkYXRhUHJpdi5zZXQoIGVsLCB0eXBlLCBmYWxzZSApO1xuXHRqUXVlcnkuZXZlbnQuYWRkKCBlbCwgdHlwZSwge1xuXHRcdG5hbWVzcGFjZTogZmFsc2UsXG5cdFx0aGFuZGxlcjogZnVuY3Rpb24oIGV2ZW50ICkge1xuXHRcdFx0dmFyIG5vdEFzeW5jLCByZXN1bHQsXG5cdFx0XHRcdHNhdmVkID0gZGF0YVByaXYuZ2V0KCB0aGlzLCB0eXBlICk7XG5cblx0XHRcdGlmICggKCBldmVudC5pc1RyaWdnZXIgJiAxICkgJiYgdGhpc1sgdHlwZSBdICkge1xuXG5cdFx0XHRcdC8vIEludGVycnVwdCBwcm9jZXNzaW5nIG9mIHRoZSBvdXRlciBzeW50aGV0aWMgLnRyaWdnZXIoKWVkIGV2ZW50XG5cdFx0XHRcdC8vIFNhdmVkIGRhdGEgc2hvdWxkIGJlIGZhbHNlIGluIHN1Y2ggY2FzZXMsIGJ1dCBtaWdodCBiZSBhIGxlZnRvdmVyIGNhcHR1cmUgb2JqZWN0XG5cdFx0XHRcdC8vIGZyb20gYW4gYXN5bmMgbmF0aXZlIGhhbmRsZXIgKGdoLTQzNTApXG5cdFx0XHRcdGlmICggIXNhdmVkLmxlbmd0aCApIHtcblxuXHRcdFx0XHRcdC8vIFN0b3JlIGFyZ3VtZW50cyBmb3IgdXNlIHdoZW4gaGFuZGxpbmcgdGhlIGlubmVyIG5hdGl2ZSBldmVudFxuXHRcdFx0XHRcdC8vIFRoZXJlIHdpbGwgYWx3YXlzIGJlIGF0IGxlYXN0IG9uZSBhcmd1bWVudCAoYW4gZXZlbnQgb2JqZWN0KSwgc28gdGhpcyBhcnJheVxuXHRcdFx0XHRcdC8vIHdpbGwgbm90IGJlIGNvbmZ1c2VkIHdpdGggYSBsZWZ0b3ZlciBjYXB0dXJlIG9iamVjdC5cblx0XHRcdFx0XHRzYXZlZCA9IHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdGRhdGFQcml2LnNldCggdGhpcywgdHlwZSwgc2F2ZWQgKTtcblxuXHRcdFx0XHRcdC8vIFRyaWdnZXIgdGhlIG5hdGl2ZSBldmVudCBhbmQgY2FwdHVyZSBpdHMgcmVzdWx0XG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTErXG5cdFx0XHRcdFx0Ly8gZm9jdXMoKSBhbmQgYmx1cigpIGFyZSBhc3luY2hyb25vdXNcblx0XHRcdFx0XHRub3RBc3luYyA9IGV4cGVjdFN5bmMoIHRoaXMsIHR5cGUgKTtcblx0XHRcdFx0XHR0aGlzWyB0eXBlIF0oKTtcblx0XHRcdFx0XHRyZXN1bHQgPSBkYXRhUHJpdi5nZXQoIHRoaXMsIHR5cGUgKTtcblx0XHRcdFx0XHRpZiAoIHNhdmVkICE9PSByZXN1bHQgfHwgbm90QXN5bmMgKSB7XG5cdFx0XHRcdFx0XHRkYXRhUHJpdi5zZXQoIHRoaXMsIHR5cGUsIGZhbHNlICk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHJlc3VsdCA9IHt9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIHNhdmVkICE9PSByZXN1bHQgKSB7XG5cblx0XHRcdFx0XHRcdC8vIENhbmNlbCB0aGUgb3V0ZXIgc3ludGhldGljIGV2ZW50XG5cdFx0XHRcdFx0XHRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0LnZhbHVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBJZiB0aGlzIGlzIGFuIGlubmVyIHN5bnRoZXRpYyBldmVudCBmb3IgYW4gZXZlbnQgd2l0aCBhIGJ1YmJsaW5nIHN1cnJvZ2F0ZVxuXHRcdFx0XHQvLyAoZm9jdXMgb3IgYmx1ciksIGFzc3VtZSB0aGF0IHRoZSBzdXJyb2dhdGUgYWxyZWFkeSBwcm9wYWdhdGVkIGZyb20gdHJpZ2dlcmluZyB0aGVcblx0XHRcdFx0Ly8gbmF0aXZlIGV2ZW50IGFuZCBwcmV2ZW50IHRoYXQgZnJvbSBoYXBwZW5pbmcgYWdhaW4gaGVyZS5cblx0XHRcdFx0Ly8gVGhpcyB0ZWNobmljYWxseSBnZXRzIHRoZSBvcmRlcmluZyB3cm9uZyB3LnIudC4gdG8gYC50cmlnZ2VyKClgIChpbiB3aGljaCB0aGVcblx0XHRcdFx0Ly8gYnViYmxpbmcgc3Vycm9nYXRlIHByb3BhZ2F0ZXMgKmFmdGVyKiB0aGUgbm9uLWJ1YmJsaW5nIGJhc2UpLCBidXQgdGhhdCBzZWVtc1xuXHRcdFx0XHQvLyBsZXNzIGJhZCB0aGFuIGR1cGxpY2F0aW9uLlxuXHRcdFx0XHR9IGVsc2UgaWYgKCAoIGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge30gKS5kZWxlZ2F0ZVR5cGUgKSB7XG5cdFx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgdGhpcyBpcyBhIG5hdGl2ZSBldmVudCB0cmlnZ2VyZWQgYWJvdmUsIGV2ZXJ5dGhpbmcgaXMgbm93IGluIG9yZGVyXG5cdFx0XHQvLyBGaXJlIGFuIGlubmVyIHN5bnRoZXRpYyBldmVudCB3aXRoIHRoZSBvcmlnaW5hbCBhcmd1bWVudHNcblx0XHRcdH0gZWxzZSBpZiAoIHNhdmVkLmxlbmd0aCApIHtcblxuXHRcdFx0XHQvLyAuLi5hbmQgY2FwdHVyZSB0aGUgcmVzdWx0XG5cdFx0XHRcdGRhdGFQcml2LnNldCggdGhpcywgdHlwZSwge1xuXHRcdFx0XHRcdHZhbHVlOiBqUXVlcnkuZXZlbnQudHJpZ2dlcihcblxuXHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTErXG5cdFx0XHRcdFx0XHQvLyBFeHRlbmQgd2l0aCB0aGUgcHJvdG90eXBlIHRvIHJlc2V0IHRoZSBhYm92ZSBzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVxuXHRcdFx0XHRcdFx0alF1ZXJ5LmV4dGVuZCggc2F2ZWRbIDAgXSwgalF1ZXJ5LkV2ZW50LnByb3RvdHlwZSApLFxuXHRcdFx0XHRcdFx0c2F2ZWQuc2xpY2UoIDEgKSxcblx0XHRcdFx0XHRcdHRoaXNcblx0XHRcdFx0XHQpXG5cdFx0XHRcdH0gKTtcblxuXHRcdFx0XHQvLyBBYm9ydCBoYW5kbGluZyBvZiB0aGUgbmF0aXZlIGV2ZW50XG5cdFx0XHRcdGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSApO1xufVxuXG5qUXVlcnkucmVtb3ZlRXZlbnQgPSBmdW5jdGlvbiggZWxlbSwgdHlwZSwgaGFuZGxlICkge1xuXG5cdC8vIFRoaXMgXCJpZlwiIGlzIG5lZWRlZCBmb3IgcGxhaW4gb2JqZWN0c1xuXHRpZiAoIGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciApIHtcblx0XHRlbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIoIHR5cGUsIGhhbmRsZSApO1xuXHR9XG59O1xuXG5qUXVlcnkuRXZlbnQgPSBmdW5jdGlvbiggc3JjLCBwcm9wcyApIHtcblxuXHQvLyBBbGxvdyBpbnN0YW50aWF0aW9uIHdpdGhvdXQgdGhlICduZXcnIGtleXdvcmRcblx0aWYgKCAhKCB0aGlzIGluc3RhbmNlb2YgalF1ZXJ5LkV2ZW50ICkgKSB7XG5cdFx0cmV0dXJuIG5ldyBqUXVlcnkuRXZlbnQoIHNyYywgcHJvcHMgKTtcblx0fVxuXG5cdC8vIEV2ZW50IG9iamVjdFxuXHRpZiAoIHNyYyAmJiBzcmMudHlwZSApIHtcblx0XHR0aGlzLm9yaWdpbmFsRXZlbnQgPSBzcmM7XG5cdFx0dGhpcy50eXBlID0gc3JjLnR5cGU7XG5cblx0XHQvLyBFdmVudHMgYnViYmxpbmcgdXAgdGhlIGRvY3VtZW50IG1heSBoYXZlIGJlZW4gbWFya2VkIGFzIHByZXZlbnRlZFxuXHRcdC8vIGJ5IGEgaGFuZGxlciBsb3dlciBkb3duIHRoZSB0cmVlOyByZWZsZWN0IHRoZSBjb3JyZWN0IHZhbHVlLlxuXHRcdHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gc3JjLmRlZmF1bHRQcmV2ZW50ZWQgfHxcblx0XHRcdFx0c3JjLmRlZmF1bHRQcmV2ZW50ZWQgPT09IHVuZGVmaW5lZCAmJlxuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD0yLjMgb25seVxuXHRcdFx0XHRzcmMucmV0dXJuVmFsdWUgPT09IGZhbHNlID9cblx0XHRcdHJldHVyblRydWUgOlxuXHRcdFx0cmV0dXJuRmFsc2U7XG5cblx0XHQvLyBDcmVhdGUgdGFyZ2V0IHByb3BlcnRpZXNcblx0XHQvLyBTdXBwb3J0OiBTYWZhcmkgPD02IC0gNyBvbmx5XG5cdFx0Ly8gVGFyZ2V0IHNob3VsZCBub3QgYmUgYSB0ZXh0IG5vZGUgKCM1MDQsICMxMzE0Mylcblx0XHR0aGlzLnRhcmdldCA9ICggc3JjLnRhcmdldCAmJiBzcmMudGFyZ2V0Lm5vZGVUeXBlID09PSAzICkgP1xuXHRcdFx0c3JjLnRhcmdldC5wYXJlbnROb2RlIDpcblx0XHRcdHNyYy50YXJnZXQ7XG5cblx0XHR0aGlzLmN1cnJlbnRUYXJnZXQgPSBzcmMuY3VycmVudFRhcmdldDtcblx0XHR0aGlzLnJlbGF0ZWRUYXJnZXQgPSBzcmMucmVsYXRlZFRhcmdldDtcblxuXHQvLyBFdmVudCB0eXBlXG5cdH0gZWxzZSB7XG5cdFx0dGhpcy50eXBlID0gc3JjO1xuXHR9XG5cblx0Ly8gUHV0IGV4cGxpY2l0bHkgcHJvdmlkZWQgcHJvcGVydGllcyBvbnRvIHRoZSBldmVudCBvYmplY3Rcblx0aWYgKCBwcm9wcyApIHtcblx0XHRqUXVlcnkuZXh0ZW5kKCB0aGlzLCBwcm9wcyApO1xuXHR9XG5cblx0Ly8gQ3JlYXRlIGEgdGltZXN0YW1wIGlmIGluY29taW5nIGV2ZW50IGRvZXNuJ3QgaGF2ZSBvbmVcblx0dGhpcy50aW1lU3RhbXAgPSBzcmMgJiYgc3JjLnRpbWVTdGFtcCB8fCBEYXRlLm5vdygpO1xuXG5cdC8vIE1hcmsgaXQgYXMgZml4ZWRcblx0dGhpc1sgalF1ZXJ5LmV4cGFuZG8gXSA9IHRydWU7XG59O1xuXG4vLyBqUXVlcnkuRXZlbnQgaXMgYmFzZWQgb24gRE9NMyBFdmVudHMgYXMgc3BlY2lmaWVkIGJ5IHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIEJpbmRpbmdcbi8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi8yMDAzL1dELURPTS1MZXZlbC0zLUV2ZW50cy0yMDAzMDMzMS9lY21hLXNjcmlwdC1iaW5kaW5nLmh0bWxcbmpRdWVyeS5FdmVudC5wcm90b3R5cGUgPSB7XG5cdGNvbnN0cnVjdG9yOiBqUXVlcnkuRXZlbnQsXG5cdGlzRGVmYXVsdFByZXZlbnRlZDogcmV0dXJuRmFsc2UsXG5cdGlzUHJvcGFnYXRpb25TdG9wcGVkOiByZXR1cm5GYWxzZSxcblx0aXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6IHJldHVybkZhbHNlLFxuXHRpc1NpbXVsYXRlZDogZmFsc2UsXG5cblx0cHJldmVudERlZmF1bHQ6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50O1xuXG5cdFx0dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSByZXR1cm5UcnVlO1xuXG5cdFx0aWYgKCBlICYmICF0aGlzLmlzU2ltdWxhdGVkICkge1xuXHRcdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH1cblx0fSxcblx0c3RvcFByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDtcblxuXHRcdHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQgPSByZXR1cm5UcnVlO1xuXG5cdFx0aWYgKCBlICYmICF0aGlzLmlzU2ltdWxhdGVkICkge1xuXHRcdFx0ZS5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHR9XG5cdH0sXG5cdHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7XG5cblx0XHR0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTtcblxuXHRcdGlmICggZSAmJiAhdGhpcy5pc1NpbXVsYXRlZCApIHtcblx0XHRcdGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5zdG9wUHJvcGFnYXRpb24oKTtcblx0fVxufTtcblxuLy8gSW5jbHVkZXMgYWxsIGNvbW1vbiBldmVudCBwcm9wcyBpbmNsdWRpbmcgS2V5RXZlbnQgYW5kIE1vdXNlRXZlbnQgc3BlY2lmaWMgcHJvcHNcbmpRdWVyeS5lYWNoKCB7XG5cdGFsdEtleTogdHJ1ZSxcblx0YnViYmxlczogdHJ1ZSxcblx0Y2FuY2VsYWJsZTogdHJ1ZSxcblx0Y2hhbmdlZFRvdWNoZXM6IHRydWUsXG5cdGN0cmxLZXk6IHRydWUsXG5cdGRldGFpbDogdHJ1ZSxcblx0ZXZlbnRQaGFzZTogdHJ1ZSxcblx0bWV0YUtleTogdHJ1ZSxcblx0cGFnZVg6IHRydWUsXG5cdHBhZ2VZOiB0cnVlLFxuXHRzaGlmdEtleTogdHJ1ZSxcblx0dmlldzogdHJ1ZSxcblx0XCJjaGFyXCI6IHRydWUsXG5cdGNvZGU6IHRydWUsXG5cdGNoYXJDb2RlOiB0cnVlLFxuXHRrZXk6IHRydWUsXG5cdGtleUNvZGU6IHRydWUsXG5cdGJ1dHRvbjogdHJ1ZSxcblx0YnV0dG9uczogdHJ1ZSxcblx0Y2xpZW50WDogdHJ1ZSxcblx0Y2xpZW50WTogdHJ1ZSxcblx0b2Zmc2V0WDogdHJ1ZSxcblx0b2Zmc2V0WTogdHJ1ZSxcblx0cG9pbnRlcklkOiB0cnVlLFxuXHRwb2ludGVyVHlwZTogdHJ1ZSxcblx0c2NyZWVuWDogdHJ1ZSxcblx0c2NyZWVuWTogdHJ1ZSxcblx0dGFyZ2V0VG91Y2hlczogdHJ1ZSxcblx0dG9FbGVtZW50OiB0cnVlLFxuXHR0b3VjaGVzOiB0cnVlLFxuXG5cdHdoaWNoOiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0dmFyIGJ1dHRvbiA9IGV2ZW50LmJ1dHRvbjtcblxuXHRcdC8vIEFkZCB3aGljaCBmb3Iga2V5IGV2ZW50c1xuXHRcdGlmICggZXZlbnQud2hpY2ggPT0gbnVsbCAmJiBya2V5RXZlbnQudGVzdCggZXZlbnQudHlwZSApICkge1xuXHRcdFx0cmV0dXJuIGV2ZW50LmNoYXJDb2RlICE9IG51bGwgPyBldmVudC5jaGFyQ29kZSA6IGV2ZW50LmtleUNvZGU7XG5cdFx0fVxuXG5cdFx0Ly8gQWRkIHdoaWNoIGZvciBjbGljazogMSA9PT0gbGVmdDsgMiA9PT0gbWlkZGxlOyAzID09PSByaWdodFxuXHRcdGlmICggIWV2ZW50LndoaWNoICYmIGJ1dHRvbiAhPT0gdW5kZWZpbmVkICYmIHJtb3VzZUV2ZW50LnRlc3QoIGV2ZW50LnR5cGUgKSApIHtcblx0XHRcdGlmICggYnV0dG9uICYgMSApIHtcblx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggYnV0dG9uICYgMiApIHtcblx0XHRcdFx0cmV0dXJuIDM7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggYnV0dG9uICYgNCApIHtcblx0XHRcdFx0cmV0dXJuIDI7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblxuXHRcdHJldHVybiBldmVudC53aGljaDtcblx0fVxufSwgalF1ZXJ5LmV2ZW50LmFkZFByb3AgKTtcblxualF1ZXJ5LmVhY2goIHsgZm9jdXM6IFwiZm9jdXNpblwiLCBibHVyOiBcImZvY3Vzb3V0XCIgfSwgZnVuY3Rpb24oIHR5cGUsIGRlbGVnYXRlVHlwZSApIHtcblx0alF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSA9IHtcblxuXHRcdC8vIFV0aWxpemUgbmF0aXZlIGV2ZW50IGlmIHBvc3NpYmxlIHNvIGJsdXIvZm9jdXMgc2VxdWVuY2UgaXMgY29ycmVjdFxuXHRcdHNldHVwOiBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gQ2xhaW0gdGhlIGZpcnN0IGhhbmRsZXJcblx0XHRcdC8vIGRhdGFQcml2LnNldCggdGhpcywgXCJmb2N1c1wiLCAuLi4gKVxuXHRcdFx0Ly8gZGF0YVByaXYuc2V0KCB0aGlzLCBcImJsdXJcIiwgLi4uIClcblx0XHRcdGxldmVyYWdlTmF0aXZlKCB0aGlzLCB0eXBlLCBleHBlY3RTeW5jICk7XG5cblx0XHRcdC8vIFJldHVybiBmYWxzZSB0byBhbGxvdyBub3JtYWwgcHJvY2Vzc2luZyBpbiB0aGUgY2FsbGVyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fSxcblx0XHR0cmlnZ2VyOiBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gRm9yY2Ugc2V0dXAgYmVmb3JlIHRyaWdnZXJcblx0XHRcdGxldmVyYWdlTmF0aXZlKCB0aGlzLCB0eXBlICk7XG5cblx0XHRcdC8vIFJldHVybiBub24tZmFsc2UgdG8gYWxsb3cgbm9ybWFsIGV2ZW50LXBhdGggcHJvcGFnYXRpb25cblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH0sXG5cblx0XHRkZWxlZ2F0ZVR5cGU6IGRlbGVnYXRlVHlwZVxuXHR9O1xufSApO1xuXG4vLyBDcmVhdGUgbW91c2VlbnRlci9sZWF2ZSBldmVudHMgdXNpbmcgbW91c2VvdmVyL291dCBhbmQgZXZlbnQtdGltZSBjaGVja3Ncbi8vIHNvIHRoYXQgZXZlbnQgZGVsZWdhdGlvbiB3b3JrcyBpbiBqUXVlcnkuXG4vLyBEbyB0aGUgc2FtZSBmb3IgcG9pbnRlcmVudGVyL3BvaW50ZXJsZWF2ZSBhbmQgcG9pbnRlcm92ZXIvcG9pbnRlcm91dFxuLy9cbi8vIFN1cHBvcnQ6IFNhZmFyaSA3IG9ubHlcbi8vIFNhZmFyaSBzZW5kcyBtb3VzZWVudGVyIHRvbyBvZnRlbjsgc2VlOlxuLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDcwMjU4XG4vLyBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBidWcgKGl0IGV4aXN0ZWQgaW4gb2xkZXIgQ2hyb21lIHZlcnNpb25zIGFzIHdlbGwpLlxualF1ZXJ5LmVhY2goIHtcblx0bW91c2VlbnRlcjogXCJtb3VzZW92ZXJcIixcblx0bW91c2VsZWF2ZTogXCJtb3VzZW91dFwiLFxuXHRwb2ludGVyZW50ZXI6IFwicG9pbnRlcm92ZXJcIixcblx0cG9pbnRlcmxlYXZlOiBcInBvaW50ZXJvdXRcIlxufSwgZnVuY3Rpb24oIG9yaWcsIGZpeCApIHtcblx0alF1ZXJ5LmV2ZW50LnNwZWNpYWxbIG9yaWcgXSA9IHtcblx0XHRkZWxlZ2F0ZVR5cGU6IGZpeCxcblx0XHRiaW5kVHlwZTogZml4LFxuXG5cdFx0aGFuZGxlOiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHR2YXIgcmV0LFxuXHRcdFx0XHR0YXJnZXQgPSB0aGlzLFxuXHRcdFx0XHRyZWxhdGVkID0gZXZlbnQucmVsYXRlZFRhcmdldCxcblx0XHRcdFx0aGFuZGxlT2JqID0gZXZlbnQuaGFuZGxlT2JqO1xuXG5cdFx0XHQvLyBGb3IgbW91c2VlbnRlci9sZWF2ZSBjYWxsIHRoZSBoYW5kbGVyIGlmIHJlbGF0ZWQgaXMgb3V0c2lkZSB0aGUgdGFyZ2V0LlxuXHRcdFx0Ly8gTkI6IE5vIHJlbGF0ZWRUYXJnZXQgaWYgdGhlIG1vdXNlIGxlZnQvZW50ZXJlZCB0aGUgYnJvd3NlciB3aW5kb3dcblx0XHRcdGlmICggIXJlbGF0ZWQgfHwgKCByZWxhdGVkICE9PSB0YXJnZXQgJiYgIWpRdWVyeS5jb250YWlucyggdGFyZ2V0LCByZWxhdGVkICkgKSApIHtcblx0XHRcdFx0ZXZlbnQudHlwZSA9IGhhbmRsZU9iai5vcmlnVHlwZTtcblx0XHRcdFx0cmV0ID0gaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRldmVudC50eXBlID0gZml4O1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJldDtcblx0XHR9XG5cdH07XG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblxuXHRvbjogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIG9uKCB0aGlzLCB0eXBlcywgc2VsZWN0b3IsIGRhdGEsIGZuICk7XG5cdH0sXG5cdG9uZTogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIG9uKCB0aGlzLCB0eXBlcywgc2VsZWN0b3IsIGRhdGEsIGZuLCAxICk7XG5cdH0sXG5cdG9mZjogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZm4gKSB7XG5cdFx0dmFyIGhhbmRsZU9iaiwgdHlwZTtcblx0XHRpZiAoIHR5cGVzICYmIHR5cGVzLnByZXZlbnREZWZhdWx0ICYmIHR5cGVzLmhhbmRsZU9iaiApIHtcblxuXHRcdFx0Ly8gKCBldmVudCApICBkaXNwYXRjaGVkIGpRdWVyeS5FdmVudFxuXHRcdFx0aGFuZGxlT2JqID0gdHlwZXMuaGFuZGxlT2JqO1xuXHRcdFx0alF1ZXJ5KCB0eXBlcy5kZWxlZ2F0ZVRhcmdldCApLm9mZihcblx0XHRcdFx0aGFuZGxlT2JqLm5hbWVzcGFjZSA/XG5cdFx0XHRcdFx0aGFuZGxlT2JqLm9yaWdUeXBlICsgXCIuXCIgKyBoYW5kbGVPYmoubmFtZXNwYWNlIDpcblx0XHRcdFx0XHRoYW5kbGVPYmoub3JpZ1R5cGUsXG5cdFx0XHRcdGhhbmRsZU9iai5zZWxlY3Rvcixcblx0XHRcdFx0aGFuZGxlT2JqLmhhbmRsZXJcblx0XHRcdCk7XG5cdFx0XHRyZXR1cm4gdGhpcztcblx0XHR9XG5cdFx0aWYgKCB0eXBlb2YgdHlwZXMgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHRcdC8vICggdHlwZXMtb2JqZWN0IFssIHNlbGVjdG9yXSApXG5cdFx0XHRmb3IgKCB0eXBlIGluIHR5cGVzICkge1xuXHRcdFx0XHR0aGlzLm9mZiggdHlwZSwgc2VsZWN0b3IsIHR5cGVzWyB0eXBlIF0gKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHRpZiAoIHNlbGVjdG9yID09PSBmYWxzZSB8fCB0eXBlb2Ygc2VsZWN0b3IgPT09IFwiZnVuY3Rpb25cIiApIHtcblxuXHRcdFx0Ly8gKCB0eXBlcyBbLCBmbl0gKVxuXHRcdFx0Zm4gPSBzZWxlY3Rvcjtcblx0XHRcdHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRpZiAoIGZuID09PSBmYWxzZSApIHtcblx0XHRcdGZuID0gcmV0dXJuRmFsc2U7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpcywgdHlwZXMsIGZuLCBzZWxlY3RvciApO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5cbnZhclxuXG5cdC8vIFN1cHBvcnQ6IElFIDw9MTAgLSAxMSwgRWRnZSAxMiAtIDEzIG9ubHlcblx0Ly8gSW4gSUUvRWRnZSB1c2luZyByZWdleCBncm91cHMgaGVyZSBjYXVzZXMgc2V2ZXJlIHNsb3dkb3ducy5cblx0Ly8gU2VlIGh0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL0lFL2ZlZWRiYWNrL2RldGFpbHMvMTczNjUxMi9cblx0cm5vSW5uZXJodG1sID0gLzxzY3JpcHR8PHN0eWxlfDxsaW5rL2ksXG5cblx0Ly8gY2hlY2tlZD1cImNoZWNrZWRcIiBvciBjaGVja2VkXG5cdHJjaGVja2VkID0gL2NoZWNrZWRcXHMqKD86W149XXw9XFxzKi5jaGVja2VkLikvaSxcblx0cmNsZWFuU2NyaXB0ID0gL15cXHMqPCEoPzpcXFtDREFUQVxcW3wtLSl8KD86XFxdXFxdfC0tKT5cXHMqJC9nO1xuXG4vLyBQcmVmZXIgYSB0Ym9keSBvdmVyIGl0cyBwYXJlbnQgdGFibGUgZm9yIGNvbnRhaW5pbmcgbmV3IHJvd3NcbmZ1bmN0aW9uIG1hbmlwdWxhdGlvblRhcmdldCggZWxlbSwgY29udGVudCApIHtcblx0aWYgKCBub2RlTmFtZSggZWxlbSwgXCJ0YWJsZVwiICkgJiZcblx0XHRub2RlTmFtZSggY29udGVudC5ub2RlVHlwZSAhPT0gMTEgPyBjb250ZW50IDogY29udGVudC5maXJzdENoaWxkLCBcInRyXCIgKSApIHtcblxuXHRcdHJldHVybiBqUXVlcnkoIGVsZW0gKS5jaGlsZHJlbiggXCJ0Ym9keVwiIClbIDAgXSB8fCBlbGVtO1xuXHR9XG5cblx0cmV0dXJuIGVsZW07XG59XG5cbi8vIFJlcGxhY2UvcmVzdG9yZSB0aGUgdHlwZSBhdHRyaWJ1dGUgb2Ygc2NyaXB0IGVsZW1lbnRzIGZvciBzYWZlIERPTSBtYW5pcHVsYXRpb25cbmZ1bmN0aW9uIGRpc2FibGVTY3JpcHQoIGVsZW0gKSB7XG5cdGVsZW0udHlwZSA9ICggZWxlbS5nZXRBdHRyaWJ1dGUoIFwidHlwZVwiICkgIT09IG51bGwgKSArIFwiL1wiICsgZWxlbS50eXBlO1xuXHRyZXR1cm4gZWxlbTtcbn1cbmZ1bmN0aW9uIHJlc3RvcmVTY3JpcHQoIGVsZW0gKSB7XG5cdGlmICggKCBlbGVtLnR5cGUgfHwgXCJcIiApLnNsaWNlKCAwLCA1ICkgPT09IFwidHJ1ZS9cIiApIHtcblx0XHRlbGVtLnR5cGUgPSBlbGVtLnR5cGUuc2xpY2UoIDUgKTtcblx0fSBlbHNlIHtcblx0XHRlbGVtLnJlbW92ZUF0dHJpYnV0ZSggXCJ0eXBlXCIgKTtcblx0fVxuXG5cdHJldHVybiBlbGVtO1xufVxuXG5mdW5jdGlvbiBjbG9uZUNvcHlFdmVudCggc3JjLCBkZXN0ICkge1xuXHR2YXIgaSwgbCwgdHlwZSwgcGRhdGFPbGQsIHVkYXRhT2xkLCB1ZGF0YUN1ciwgZXZlbnRzO1xuXG5cdGlmICggZGVzdC5ub2RlVHlwZSAhPT0gMSApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyAxLiBDb3B5IHByaXZhdGUgZGF0YTogZXZlbnRzLCBoYW5kbGVycywgZXRjLlxuXHRpZiAoIGRhdGFQcml2Lmhhc0RhdGEoIHNyYyApICkge1xuXHRcdHBkYXRhT2xkID0gZGF0YVByaXYuZ2V0KCBzcmMgKTtcblx0XHRldmVudHMgPSBwZGF0YU9sZC5ldmVudHM7XG5cblx0XHRpZiAoIGV2ZW50cyApIHtcblx0XHRcdGRhdGFQcml2LnJlbW92ZSggZGVzdCwgXCJoYW5kbGUgZXZlbnRzXCIgKTtcblxuXHRcdFx0Zm9yICggdHlwZSBpbiBldmVudHMgKSB7XG5cdFx0XHRcdGZvciAoIGkgPSAwLCBsID0gZXZlbnRzWyB0eXBlIF0ubGVuZ3RoOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5hZGQoIGRlc3QsIHR5cGUsIGV2ZW50c1sgdHlwZSBdWyBpIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIDIuIENvcHkgdXNlciBkYXRhXG5cdGlmICggZGF0YVVzZXIuaGFzRGF0YSggc3JjICkgKSB7XG5cdFx0dWRhdGFPbGQgPSBkYXRhVXNlci5hY2Nlc3MoIHNyYyApO1xuXHRcdHVkYXRhQ3VyID0galF1ZXJ5LmV4dGVuZCgge30sIHVkYXRhT2xkICk7XG5cblx0XHRkYXRhVXNlci5zZXQoIGRlc3QsIHVkYXRhQ3VyICk7XG5cdH1cbn1cblxuLy8gRml4IElFIGJ1Z3MsIHNlZSBzdXBwb3J0IHRlc3RzXG5mdW5jdGlvbiBmaXhJbnB1dCggc3JjLCBkZXN0ICkge1xuXHR2YXIgbm9kZU5hbWUgPSBkZXN0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cblx0Ly8gRmFpbHMgdG8gcGVyc2lzdCB0aGUgY2hlY2tlZCBzdGF0ZSBvZiBhIGNsb25lZCBjaGVja2JveCBvciByYWRpbyBidXR0b24uXG5cdGlmICggbm9kZU5hbWUgPT09IFwiaW5wdXRcIiAmJiByY2hlY2thYmxlVHlwZS50ZXN0KCBzcmMudHlwZSApICkge1xuXHRcdGRlc3QuY2hlY2tlZCA9IHNyYy5jaGVja2VkO1xuXG5cdC8vIEZhaWxzIHRvIHJldHVybiB0aGUgc2VsZWN0ZWQgb3B0aW9uIHRvIHRoZSBkZWZhdWx0IHNlbGVjdGVkIHN0YXRlIHdoZW4gY2xvbmluZyBvcHRpb25zXG5cdH0gZWxzZSBpZiAoIG5vZGVOYW1lID09PSBcImlucHV0XCIgfHwgbm9kZU5hbWUgPT09IFwidGV4dGFyZWFcIiApIHtcblx0XHRkZXN0LmRlZmF1bHRWYWx1ZSA9IHNyYy5kZWZhdWx0VmFsdWU7XG5cdH1cbn1cblxuZnVuY3Rpb24gZG9tTWFuaXAoIGNvbGxlY3Rpb24sIGFyZ3MsIGNhbGxiYWNrLCBpZ25vcmVkICkge1xuXG5cdC8vIEZsYXR0ZW4gYW55IG5lc3RlZCBhcnJheXNcblx0YXJncyA9IGZsYXQoIGFyZ3MgKTtcblxuXHR2YXIgZnJhZ21lbnQsIGZpcnN0LCBzY3JpcHRzLCBoYXNTY3JpcHRzLCBub2RlLCBkb2MsXG5cdFx0aSA9IDAsXG5cdFx0bCA9IGNvbGxlY3Rpb24ubGVuZ3RoLFxuXHRcdGlOb0Nsb25lID0gbCAtIDEsXG5cdFx0dmFsdWUgPSBhcmdzWyAwIF0sXG5cdFx0dmFsdWVJc0Z1bmN0aW9uID0gaXNGdW5jdGlvbiggdmFsdWUgKTtcblxuXHQvLyBXZSBjYW4ndCBjbG9uZU5vZGUgZnJhZ21lbnRzIHRoYXQgY29udGFpbiBjaGVja2VkLCBpbiBXZWJLaXRcblx0aWYgKCB2YWx1ZUlzRnVuY3Rpb24gfHxcblx0XHRcdCggbCA+IDEgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmXG5cdFx0XHRcdCFzdXBwb3J0LmNoZWNrQ2xvbmUgJiYgcmNoZWNrZWQudGVzdCggdmFsdWUgKSApICkge1xuXHRcdHJldHVybiBjb2xsZWN0aW9uLmVhY2goIGZ1bmN0aW9uKCBpbmRleCApIHtcblx0XHRcdHZhciBzZWxmID0gY29sbGVjdGlvbi5lcSggaW5kZXggKTtcblx0XHRcdGlmICggdmFsdWVJc0Z1bmN0aW9uICkge1xuXHRcdFx0XHRhcmdzWyAwIF0gPSB2YWx1ZS5jYWxsKCB0aGlzLCBpbmRleCwgc2VsZi5odG1sKCkgKTtcblx0XHRcdH1cblx0XHRcdGRvbU1hbmlwKCBzZWxmLCBhcmdzLCBjYWxsYmFjaywgaWdub3JlZCApO1xuXHRcdH0gKTtcblx0fVxuXG5cdGlmICggbCApIHtcblx0XHRmcmFnbWVudCA9IGJ1aWxkRnJhZ21lbnQoIGFyZ3MsIGNvbGxlY3Rpb25bIDAgXS5vd25lckRvY3VtZW50LCBmYWxzZSwgY29sbGVjdGlvbiwgaWdub3JlZCApO1xuXHRcdGZpcnN0ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDtcblxuXHRcdGlmICggZnJhZ21lbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgKSB7XG5cdFx0XHRmcmFnbWVudCA9IGZpcnN0O1xuXHRcdH1cblxuXHRcdC8vIFJlcXVpcmUgZWl0aGVyIG5ldyBjb250ZW50IG9yIGFuIGludGVyZXN0IGluIGlnbm9yZWQgZWxlbWVudHMgdG8gaW52b2tlIHRoZSBjYWxsYmFja1xuXHRcdGlmICggZmlyc3QgfHwgaWdub3JlZCApIHtcblx0XHRcdHNjcmlwdHMgPSBqUXVlcnkubWFwKCBnZXRBbGwoIGZyYWdtZW50LCBcInNjcmlwdFwiICksIGRpc2FibGVTY3JpcHQgKTtcblx0XHRcdGhhc1NjcmlwdHMgPSBzY3JpcHRzLmxlbmd0aDtcblxuXHRcdFx0Ly8gVXNlIHRoZSBvcmlnaW5hbCBmcmFnbWVudCBmb3IgdGhlIGxhc3QgaXRlbVxuXHRcdFx0Ly8gaW5zdGVhZCBvZiB0aGUgZmlyc3QgYmVjYXVzZSBpdCBjYW4gZW5kIHVwXG5cdFx0XHQvLyBiZWluZyBlbXB0aWVkIGluY29ycmVjdGx5IGluIGNlcnRhaW4gc2l0dWF0aW9ucyAoIzgwNzApLlxuXHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRub2RlID0gZnJhZ21lbnQ7XG5cblx0XHRcdFx0aWYgKCBpICE9PSBpTm9DbG9uZSApIHtcblx0XHRcdFx0XHRub2RlID0galF1ZXJ5LmNsb25lKCBub2RlLCB0cnVlLCB0cnVlICk7XG5cblx0XHRcdFx0XHQvLyBLZWVwIHJlZmVyZW5jZXMgdG8gY2xvbmVkIHNjcmlwdHMgZm9yIGxhdGVyIHJlc3RvcmF0aW9uXG5cdFx0XHRcdFx0aWYgKCBoYXNTY3JpcHRzICkge1xuXG5cdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0XHRcdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0XHRcdGpRdWVyeS5tZXJnZSggc2NyaXB0cywgZ2V0QWxsKCBub2RlLCBcInNjcmlwdFwiICkgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjYWxsYmFjay5jYWxsKCBjb2xsZWN0aW9uWyBpIF0sIG5vZGUsIGkgKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBoYXNTY3JpcHRzICkge1xuXHRcdFx0XHRkb2MgPSBzY3JpcHRzWyBzY3JpcHRzLmxlbmd0aCAtIDEgXS5vd25lckRvY3VtZW50O1xuXG5cdFx0XHRcdC8vIFJlZW5hYmxlIHNjcmlwdHNcblx0XHRcdFx0alF1ZXJ5Lm1hcCggc2NyaXB0cywgcmVzdG9yZVNjcmlwdCApO1xuXG5cdFx0XHRcdC8vIEV2YWx1YXRlIGV4ZWN1dGFibGUgc2NyaXB0cyBvbiBmaXJzdCBkb2N1bWVudCBpbnNlcnRpb25cblx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBoYXNTY3JpcHRzOyBpKysgKSB7XG5cdFx0XHRcdFx0bm9kZSA9IHNjcmlwdHNbIGkgXTtcblx0XHRcdFx0XHRpZiAoIHJzY3JpcHRUeXBlLnRlc3QoIG5vZGUudHlwZSB8fCBcIlwiICkgJiZcblx0XHRcdFx0XHRcdCFkYXRhUHJpdi5hY2Nlc3MoIG5vZGUsIFwiZ2xvYmFsRXZhbFwiICkgJiZcblx0XHRcdFx0XHRcdGpRdWVyeS5jb250YWlucyggZG9jLCBub2RlICkgKSB7XG5cblx0XHRcdFx0XHRcdGlmICggbm9kZS5zcmMgJiYgKCBub2RlLnR5cGUgfHwgXCJcIiApLnRvTG93ZXJDYXNlKCkgICE9PSBcIm1vZHVsZVwiICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIE9wdGlvbmFsIEFKQVggZGVwZW5kZW5jeSwgYnV0IHdvbid0IHJ1biBzY3JpcHRzIGlmIG5vdCBwcmVzZW50XG5cdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5Ll9ldmFsVXJsICYmICFub2RlLm5vTW9kdWxlICkge1xuXHRcdFx0XHRcdFx0XHRcdGpRdWVyeS5fZXZhbFVybCggbm9kZS5zcmMsIHtcblx0XHRcdFx0XHRcdFx0XHRcdG5vbmNlOiBub2RlLm5vbmNlIHx8IG5vZGUuZ2V0QXR0cmlidXRlKCBcIm5vbmNlXCIgKVxuXHRcdFx0XHRcdFx0XHRcdH0sIGRvYyApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRET01FdmFsKCBub2RlLnRleHRDb250ZW50LnJlcGxhY2UoIHJjbGVhblNjcmlwdCwgXCJcIiApLCBub2RlLCBkb2MgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gY29sbGVjdGlvbjtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlKCBlbGVtLCBzZWxlY3Rvciwga2VlcERhdGEgKSB7XG5cdHZhciBub2RlLFxuXHRcdG5vZGVzID0gc2VsZWN0b3IgPyBqUXVlcnkuZmlsdGVyKCBzZWxlY3RvciwgZWxlbSApIDogZWxlbSxcblx0XHRpID0gMDtcblxuXHRmb3IgKCA7ICggbm9kZSA9IG5vZGVzWyBpIF0gKSAhPSBudWxsOyBpKysgKSB7XG5cdFx0aWYgKCAha2VlcERhdGEgJiYgbm9kZS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdGpRdWVyeS5jbGVhbkRhdGEoIGdldEFsbCggbm9kZSApICk7XG5cdFx0fVxuXG5cdFx0aWYgKCBub2RlLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRpZiAoIGtlZXBEYXRhICYmIGlzQXR0YWNoZWQoIG5vZGUgKSApIHtcblx0XHRcdFx0c2V0R2xvYmFsRXZhbCggZ2V0QWxsKCBub2RlLCBcInNjcmlwdFwiICkgKTtcblx0XHRcdH1cblx0XHRcdG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggbm9kZSApO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBlbGVtO1xufVxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdGh0bWxQcmVmaWx0ZXI6IGZ1bmN0aW9uKCBodG1sICkge1xuXHRcdHJldHVybiBodG1sO1xuXHR9LFxuXG5cdGNsb25lOiBmdW5jdGlvbiggZWxlbSwgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKSB7XG5cdFx0dmFyIGksIGwsIHNyY0VsZW1lbnRzLCBkZXN0RWxlbWVudHMsXG5cdFx0XHRjbG9uZSA9IGVsZW0uY2xvbmVOb2RlKCB0cnVlICksXG5cdFx0XHRpblBhZ2UgPSBpc0F0dGFjaGVkKCBlbGVtICk7XG5cblx0XHQvLyBGaXggSUUgY2xvbmluZyBpc3N1ZXNcblx0XHRpZiAoICFzdXBwb3J0Lm5vQ2xvbmVDaGVja2VkICYmICggZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBlbGVtLm5vZGVUeXBlID09PSAxMSApICYmXG5cdFx0XHRcdCFqUXVlcnkuaXNYTUxEb2MoIGVsZW0gKSApIHtcblxuXHRcdFx0Ly8gV2UgZXNjaGV3IFNpenpsZSBoZXJlIGZvciBwZXJmb3JtYW5jZSByZWFzb25zOiBodHRwczovL2pzcGVyZi5jb20vZ2V0YWxsLXZzLXNpenpsZS8yXG5cdFx0XHRkZXN0RWxlbWVudHMgPSBnZXRBbGwoIGNsb25lICk7XG5cdFx0XHRzcmNFbGVtZW50cyA9IGdldEFsbCggZWxlbSApO1xuXG5cdFx0XHRmb3IgKCBpID0gMCwgbCA9IHNyY0VsZW1lbnRzLmxlbmd0aDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0Zml4SW5wdXQoIHNyY0VsZW1lbnRzWyBpIF0sIGRlc3RFbGVtZW50c1sgaSBdICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ29weSB0aGUgZXZlbnRzIGZyb20gdGhlIG9yaWdpbmFsIHRvIHRoZSBjbG9uZVxuXHRcdGlmICggZGF0YUFuZEV2ZW50cyApIHtcblx0XHRcdGlmICggZGVlcERhdGFBbmRFdmVudHMgKSB7XG5cdFx0XHRcdHNyY0VsZW1lbnRzID0gc3JjRWxlbWVudHMgfHwgZ2V0QWxsKCBlbGVtICk7XG5cdFx0XHRcdGRlc3RFbGVtZW50cyA9IGRlc3RFbGVtZW50cyB8fCBnZXRBbGwoIGNsb25lICk7XG5cblx0XHRcdFx0Zm9yICggaSA9IDAsIGwgPSBzcmNFbGVtZW50cy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdFx0Y2xvbmVDb3B5RXZlbnQoIHNyY0VsZW1lbnRzWyBpIF0sIGRlc3RFbGVtZW50c1sgaSBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNsb25lQ29weUV2ZW50KCBlbGVtLCBjbG9uZSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFByZXNlcnZlIHNjcmlwdCBldmFsdWF0aW9uIGhpc3Rvcnlcblx0XHRkZXN0RWxlbWVudHMgPSBnZXRBbGwoIGNsb25lLCBcInNjcmlwdFwiICk7XG5cdFx0aWYgKCBkZXN0RWxlbWVudHMubGVuZ3RoID4gMCApIHtcblx0XHRcdHNldEdsb2JhbEV2YWwoIGRlc3RFbGVtZW50cywgIWluUGFnZSAmJiBnZXRBbGwoIGVsZW0sIFwic2NyaXB0XCIgKSApO1xuXHRcdH1cblxuXHRcdC8vIFJldHVybiB0aGUgY2xvbmVkIHNldFxuXHRcdHJldHVybiBjbG9uZTtcblx0fSxcblxuXHRjbGVhbkRhdGE6IGZ1bmN0aW9uKCBlbGVtcyApIHtcblx0XHR2YXIgZGF0YSwgZWxlbSwgdHlwZSxcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbCxcblx0XHRcdGkgPSAwO1xuXG5cdFx0Zm9yICggOyAoIGVsZW0gPSBlbGVtc1sgaSBdICkgIT09IHVuZGVmaW5lZDsgaSsrICkge1xuXHRcdFx0aWYgKCBhY2NlcHREYXRhKCBlbGVtICkgKSB7XG5cdFx0XHRcdGlmICggKCBkYXRhID0gZWxlbVsgZGF0YVByaXYuZXhwYW5kbyBdICkgKSB7XG5cdFx0XHRcdFx0aWYgKCBkYXRhLmV2ZW50cyApIHtcblx0XHRcdFx0XHRcdGZvciAoIHR5cGUgaW4gZGF0YS5ldmVudHMgKSB7XG5cdFx0XHRcdFx0XHRcdGlmICggc3BlY2lhbFsgdHlwZSBdICkge1xuXHRcdFx0XHRcdFx0XHRcdGpRdWVyeS5ldmVudC5yZW1vdmUoIGVsZW0sIHR5cGUgKTtcblxuXHRcdFx0XHRcdFx0XHQvLyBUaGlzIGlzIGEgc2hvcnRjdXQgdG8gYXZvaWQgalF1ZXJ5LmV2ZW50LnJlbW92ZSdzIG92ZXJoZWFkXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0alF1ZXJ5LnJlbW92ZUV2ZW50KCBlbGVtLCB0eXBlLCBkYXRhLmhhbmRsZSApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9MzUgLSA0NStcblx0XHRcdFx0XHQvLyBBc3NpZ24gdW5kZWZpbmVkIGluc3RlYWQgb2YgdXNpbmcgZGVsZXRlLCBzZWUgRGF0YSNyZW1vdmVcblx0XHRcdFx0XHRlbGVtWyBkYXRhUHJpdi5leHBhbmRvIF0gPSB1bmRlZmluZWQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCBlbGVtWyBkYXRhVXNlci5leHBhbmRvIF0gKSB7XG5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBDaHJvbWUgPD0zNSAtIDQ1K1xuXHRcdFx0XHRcdC8vIEFzc2lnbiB1bmRlZmluZWQgaW5zdGVhZCBvZiB1c2luZyBkZWxldGUsIHNlZSBEYXRhI3JlbW92ZVxuXHRcdFx0XHRcdGVsZW1bIGRhdGFVc2VyLmV4cGFuZG8gXSA9IHVuZGVmaW5lZDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufSApO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGRldGFjaDogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiByZW1vdmUoIHRoaXMsIHNlbGVjdG9yLCB0cnVlICk7XG5cdH0sXG5cblx0cmVtb3ZlOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuIHJlbW92ZSggdGhpcywgc2VsZWN0b3IgKTtcblx0fSxcblxuXHR0ZXh0OiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0cmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgP1xuXHRcdFx0XHRqUXVlcnkudGV4dCggdGhpcyApIDpcblx0XHRcdFx0dGhpcy5lbXB0eSgpLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSB8fCB0aGlzLm5vZGVUeXBlID09PSAxMSB8fCB0aGlzLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHRcdFx0dGhpcy50ZXh0Q29udGVudCA9IHZhbHVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSApO1xuXHRcdH0sIG51bGwsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoICk7XG5cdH0sXG5cblx0YXBwZW5kOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZG9tTWFuaXAoIHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gMTEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0dmFyIHRhcmdldCA9IG1hbmlwdWxhdGlvblRhcmdldCggdGhpcywgZWxlbSApO1xuXHRcdFx0XHR0YXJnZXQuYXBwZW5kQ2hpbGQoIGVsZW0gKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0cHJlcGVuZDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGRvbU1hbmlwKCB0aGlzLCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0aWYgKCB0aGlzLm5vZGVUeXBlID09PSAxIHx8IHRoaXMubm9kZVR5cGUgPT09IDExIHx8IHRoaXMubm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRcdHZhciB0YXJnZXQgPSBtYW5pcHVsYXRpb25UYXJnZXQoIHRoaXMsIGVsZW0gKTtcblx0XHRcdFx0dGFyZ2V0Lmluc2VydEJlZm9yZSggZWxlbSwgdGFyZ2V0LmZpcnN0Q2hpbGQgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0YmVmb3JlOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZG9tTWFuaXAoIHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRpZiAoIHRoaXMucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSggZWxlbSwgdGhpcyApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHRhZnRlcjogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGRvbU1hbmlwKCB0aGlzLCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0aWYgKCB0aGlzLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMubmV4dFNpYmxpbmcgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0ZW1wdHk6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBlbGVtLFxuXHRcdFx0aSA9IDA7XG5cblx0XHRmb3IgKCA7ICggZWxlbSA9IHRoaXNbIGkgXSApICE9IG51bGw7IGkrKyApIHtcblx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblxuXHRcdFx0XHQvLyBQcmV2ZW50IG1lbW9yeSBsZWFrc1xuXHRcdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIGVsZW0sIGZhbHNlICkgKTtcblxuXHRcdFx0XHQvLyBSZW1vdmUgYW55IHJlbWFpbmluZyBub2Rlc1xuXHRcdFx0XHRlbGVtLnRleHRDb250ZW50ID0gXCJcIjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHRjbG9uZTogZnVuY3Rpb24oIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkge1xuXHRcdGRhdGFBbmRFdmVudHMgPSBkYXRhQW5kRXZlbnRzID09IG51bGwgPyBmYWxzZSA6IGRhdGFBbmRFdmVudHM7XG5cdFx0ZGVlcERhdGFBbmRFdmVudHMgPSBkZWVwRGF0YUFuZEV2ZW50cyA9PSBudWxsID8gZGF0YUFuZEV2ZW50cyA6IGRlZXBEYXRhQW5kRXZlbnRzO1xuXG5cdFx0cmV0dXJuIHRoaXMubWFwKCBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBqUXVlcnkuY2xvbmUoIHRoaXMsIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICk7XG5cdFx0fSApO1xuXHR9LFxuXG5cdGh0bWw6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgZWxlbSA9IHRoaXNbIDAgXSB8fCB7fSxcblx0XHRcdFx0aSA9IDAsXG5cdFx0XHRcdGwgPSB0aGlzLmxlbmd0aDtcblxuXHRcdFx0aWYgKCB2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHRcdHJldHVybiBlbGVtLmlubmVySFRNTDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU2VlIGlmIHdlIGNhbiB0YWtlIGEgc2hvcnRjdXQgYW5kIGp1c3QgdXNlIGlubmVySFRNTFxuXHRcdFx0aWYgKCB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgIXJub0lubmVyaHRtbC50ZXN0KCB2YWx1ZSApICYmXG5cdFx0XHRcdCF3cmFwTWFwWyAoIHJ0YWdOYW1lLmV4ZWMoIHZhbHVlICkgfHwgWyBcIlwiLCBcIlwiIF0gKVsgMSBdLnRvTG93ZXJDYXNlKCkgXSApIHtcblxuXHRcdFx0XHR2YWx1ZSA9IGpRdWVyeS5odG1sUHJlZmlsdGVyKCB2YWx1ZSApO1xuXG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRcdFx0ZWxlbSA9IHRoaXNbIGkgXSB8fCB7fTtcblxuXHRcdFx0XHRcdFx0Ly8gUmVtb3ZlIGVsZW1lbnQgbm9kZXMgYW5kIHByZXZlbnQgbWVtb3J5IGxlYWtzXG5cdFx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHRcdFx0XHRcdGpRdWVyeS5jbGVhbkRhdGEoIGdldEFsbCggZWxlbSwgZmFsc2UgKSApO1xuXHRcdFx0XHRcdFx0XHRlbGVtLmlubmVySFRNTCA9IHZhbHVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGVsZW0gPSAwO1xuXG5cdFx0XHRcdC8vIElmIHVzaW5nIGlubmVySFRNTCB0aHJvd3MgYW4gZXhjZXB0aW9uLCB1c2UgdGhlIGZhbGxiYWNrIG1ldGhvZFxuXHRcdFx0XHR9IGNhdGNoICggZSApIHt9XG5cdFx0XHR9XG5cblx0XHRcdGlmICggZWxlbSApIHtcblx0XHRcdFx0dGhpcy5lbXB0eSgpLmFwcGVuZCggdmFsdWUgKTtcblx0XHRcdH1cblx0XHR9LCBudWxsLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCApO1xuXHR9LFxuXG5cdHJlcGxhY2VXaXRoOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgaWdub3JlZCA9IFtdO1xuXG5cdFx0Ly8gTWFrZSB0aGUgY2hhbmdlcywgcmVwbGFjaW5nIGVhY2ggbm9uLWlnbm9yZWQgY29udGV4dCBlbGVtZW50IHdpdGggdGhlIG5ldyBjb250ZW50XG5cdFx0cmV0dXJuIGRvbU1hbmlwKCB0aGlzLCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0dmFyIHBhcmVudCA9IHRoaXMucGFyZW50Tm9kZTtcblxuXHRcdFx0aWYgKCBqUXVlcnkuaW5BcnJheSggdGhpcywgaWdub3JlZCApIDwgMCApIHtcblx0XHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggZ2V0QWxsKCB0aGlzICkgKTtcblx0XHRcdFx0aWYgKCBwYXJlbnQgKSB7XG5cdFx0XHRcdFx0cGFyZW50LnJlcGxhY2VDaGlsZCggZWxlbSwgdGhpcyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHQvLyBGb3JjZSBjYWxsYmFjayBpbnZvY2F0aW9uXG5cdFx0fSwgaWdub3JlZCApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5lYWNoKCB7XG5cdGFwcGVuZFRvOiBcImFwcGVuZFwiLFxuXHRwcmVwZW5kVG86IFwicHJlcGVuZFwiLFxuXHRpbnNlcnRCZWZvcmU6IFwiYmVmb3JlXCIsXG5cdGluc2VydEFmdGVyOiBcImFmdGVyXCIsXG5cdHJlcGxhY2VBbGw6IFwicmVwbGFjZVdpdGhcIlxufSwgZnVuY3Rpb24oIG5hbWUsIG9yaWdpbmFsICkge1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHR2YXIgZWxlbXMsXG5cdFx0XHRyZXQgPSBbXSxcblx0XHRcdGluc2VydCA9IGpRdWVyeSggc2VsZWN0b3IgKSxcblx0XHRcdGxhc3QgPSBpbnNlcnQubGVuZ3RoIC0gMSxcblx0XHRcdGkgPSAwO1xuXG5cdFx0Zm9yICggOyBpIDw9IGxhc3Q7IGkrKyApIHtcblx0XHRcdGVsZW1zID0gaSA9PT0gbGFzdCA/IHRoaXMgOiB0aGlzLmNsb25lKCB0cnVlICk7XG5cdFx0XHRqUXVlcnkoIGluc2VydFsgaSBdIClbIG9yaWdpbmFsIF0oIGVsZW1zICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjAgb25seSwgUGhhbnRvbUpTIDEgb25seVxuXHRcdFx0Ly8gLmdldCgpIGJlY2F1c2UgcHVzaC5hcHBseShfLCBhcnJheWxpa2UpIHRocm93cyBvbiBhbmNpZW50IFdlYktpdFxuXHRcdFx0cHVzaC5hcHBseSggcmV0LCBlbGVtcy5nZXQoKSApO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggcmV0ICk7XG5cdH07XG59ICk7XG52YXIgcm51bW5vbnB4ID0gbmV3IFJlZ0V4cCggXCJeKFwiICsgcG51bSArIFwiKSg/IXB4KVthLXolXSskXCIsIFwiaVwiICk7XG5cbnZhciBnZXRTdHlsZXMgPSBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seSwgRmlyZWZveCA8PTMwICgjMTUwOTgsICMxNDE1MClcblx0XHQvLyBJRSB0aHJvd3Mgb24gZWxlbWVudHMgY3JlYXRlZCBpbiBwb3B1cHNcblx0XHQvLyBGRiBtZWFud2hpbGUgdGhyb3dzIG9uIGZyYW1lIGVsZW1lbnRzIHRocm91Z2ggXCJkZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlXCJcblx0XHR2YXIgdmlldyA9IGVsZW0ub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztcblxuXHRcdGlmICggIXZpZXcgfHwgIXZpZXcub3BlbmVyICkge1xuXHRcdFx0dmlldyA9IHdpbmRvdztcblx0XHR9XG5cblx0XHRyZXR1cm4gdmlldy5nZXRDb21wdXRlZFN0eWxlKCBlbGVtICk7XG5cdH07XG5cbnZhciBzd2FwID0gZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIGNhbGxiYWNrICkge1xuXHR2YXIgcmV0LCBuYW1lLFxuXHRcdG9sZCA9IHt9O1xuXG5cdC8vIFJlbWVtYmVyIHRoZSBvbGQgdmFsdWVzLCBhbmQgaW5zZXJ0IHRoZSBuZXcgb25lc1xuXHRmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7XG5cdFx0b2xkWyBuYW1lIF0gPSBlbGVtLnN0eWxlWyBuYW1lIF07XG5cdFx0ZWxlbS5zdHlsZVsgbmFtZSBdID0gb3B0aW9uc1sgbmFtZSBdO1xuXHR9XG5cblx0cmV0ID0gY2FsbGJhY2suY2FsbCggZWxlbSApO1xuXG5cdC8vIFJldmVydCB0aGUgb2xkIHZhbHVlc1xuXHRmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7XG5cdFx0ZWxlbS5zdHlsZVsgbmFtZSBdID0gb2xkWyBuYW1lIF07XG5cdH1cblxuXHRyZXR1cm4gcmV0O1xufTtcblxuXG52YXIgcmJveFN0eWxlID0gbmV3IFJlZ0V4cCggY3NzRXhwYW5kLmpvaW4oIFwifFwiICksIFwiaVwiICk7XG5cblxuXG4oIGZ1bmN0aW9uKCkge1xuXG5cdC8vIEV4ZWN1dGluZyBib3RoIHBpeGVsUG9zaXRpb24gJiBib3hTaXppbmdSZWxpYWJsZSB0ZXN0cyByZXF1aXJlIG9ubHkgb25lIGxheW91dFxuXHQvLyBzbyB0aGV5J3JlIGV4ZWN1dGVkIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSB0aGUgc2Vjb25kIGNvbXB1dGF0aW9uLlxuXHRmdW5jdGlvbiBjb21wdXRlU3R5bGVUZXN0cygpIHtcblxuXHRcdC8vIFRoaXMgaXMgYSBzaW5nbGV0b24sIHdlIG5lZWQgdG8gZXhlY3V0ZSBpdCBvbmx5IG9uY2Vcblx0XHRpZiAoICFkaXYgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29udGFpbmVyLnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDtcIiArXG5cdFx0XHRcIm1hcmdpbi10b3A6MXB4O3BhZGRpbmc6MDtib3JkZXI6MFwiO1xuXHRcdGRpdi5zdHlsZS5jc3NUZXh0ID1cblx0XHRcdFwicG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO1wiICtcblx0XHRcdFwibWFyZ2luOmF1dG87Ym9yZGVyOjFweDtwYWRkaW5nOjFweDtcIiArXG5cdFx0XHRcIndpZHRoOjYwJTt0b3A6MSVcIjtcblx0XHRkb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoIGNvbnRhaW5lciApLmFwcGVuZENoaWxkKCBkaXYgKTtcblxuXHRcdHZhciBkaXZTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCBkaXYgKTtcblx0XHRwaXhlbFBvc2l0aW9uVmFsID0gZGl2U3R5bGUudG9wICE9PSBcIjElXCI7XG5cblx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDQuMCAtIDQuMyBvbmx5LCBGaXJlZm94IDw9MyAtIDQ0XG5cdFx0cmVsaWFibGVNYXJnaW5MZWZ0VmFsID0gcm91bmRQaXhlbE1lYXN1cmVzKCBkaXZTdHlsZS5tYXJnaW5MZWZ0ICkgPT09IDEyO1xuXG5cdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA0LjAgLSA0LjMgb25seSwgU2FmYXJpIDw9OS4xIC0gMTAuMSwgaU9TIDw9Ny4wIC0gOS4zXG5cdFx0Ly8gU29tZSBzdHlsZXMgY29tZSBiYWNrIHdpdGggcGVyY2VudGFnZSB2YWx1ZXMsIGV2ZW4gdGhvdWdoIHRoZXkgc2hvdWxkbid0XG5cdFx0ZGl2LnN0eWxlLnJpZ2h0ID0gXCI2MCVcIjtcblx0XHRwaXhlbEJveFN0eWxlc1ZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2U3R5bGUucmlnaHQgKSA9PT0gMzY7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTEgb25seVxuXHRcdC8vIERldGVjdCBtaXNyZXBvcnRpbmcgb2YgY29udGVudCBkaW1lbnNpb25zIGZvciBib3gtc2l6aW5nOmJvcmRlci1ib3ggZWxlbWVudHNcblx0XHRib3hTaXppbmdSZWxpYWJsZVZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2U3R5bGUud2lkdGggKSA9PT0gMzY7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IG9ubHlcblx0XHQvLyBEZXRlY3Qgb3ZlcmZsb3c6c2Nyb2xsIHNjcmV3aW5lc3MgKGdoLTM2OTkpXG5cdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9NjRcblx0XHQvLyBEb24ndCBnZXQgdHJpY2tlZCB3aGVuIHpvb20gYWZmZWN0cyBvZmZzZXRXaWR0aCAoZ2gtNDAyOSlcblx0XHRkaXYuc3R5bGUucG9zaXRpb24gPSBcImFic29sdXRlXCI7XG5cdFx0c2Nyb2xsYm94U2l6ZVZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2Lm9mZnNldFdpZHRoIC8gMyApID09PSAxMjtcblxuXHRcdGRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZCggY29udGFpbmVyICk7XG5cblx0XHQvLyBOdWxsaWZ5IHRoZSBkaXYgc28gaXQgd291bGRuJ3QgYmUgc3RvcmVkIGluIHRoZSBtZW1vcnkgYW5kXG5cdFx0Ly8gaXQgd2lsbCBhbHNvIGJlIGEgc2lnbiB0aGF0IGNoZWNrcyBhbHJlYWR5IHBlcmZvcm1lZFxuXHRcdGRpdiA9IG51bGw7XG5cdH1cblxuXHRmdW5jdGlvbiByb3VuZFBpeGVsTWVhc3VyZXMoIG1lYXN1cmUgKSB7XG5cdFx0cmV0dXJuIE1hdGgucm91bmQoIHBhcnNlRmxvYXQoIG1lYXN1cmUgKSApO1xuXHR9XG5cblx0dmFyIHBpeGVsUG9zaXRpb25WYWwsIGJveFNpemluZ1JlbGlhYmxlVmFsLCBzY3JvbGxib3hTaXplVmFsLCBwaXhlbEJveFN0eWxlc1ZhbCxcblx0XHRyZWxpYWJsZVRyRGltZW5zaW9uc1ZhbCwgcmVsaWFibGVNYXJnaW5MZWZ0VmFsLFxuXHRcdGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZGl2XCIgKSxcblx0XHRkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICk7XG5cblx0Ly8gRmluaXNoIGVhcmx5IGluIGxpbWl0ZWQgKG5vbi1icm93c2VyKSBlbnZpcm9ubWVudHNcblx0aWYgKCAhZGl2LnN0eWxlICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIFN1cHBvcnQ6IElFIDw9OSAtIDExIG9ubHlcblx0Ly8gU3R5bGUgb2YgY2xvbmVkIGVsZW1lbnQgYWZmZWN0cyBzb3VyY2UgZWxlbWVudCBjbG9uZWQgKCM4OTA4KVxuXHRkaXYuc3R5bGUuYmFja2dyb3VuZENsaXAgPSBcImNvbnRlbnQtYm94XCI7XG5cdGRpdi5jbG9uZU5vZGUoIHRydWUgKS5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCA9IFwiXCI7XG5cdHN1cHBvcnQuY2xlYXJDbG9uZVN0eWxlID0gZGl2LnN0eWxlLmJhY2tncm91bmRDbGlwID09PSBcImNvbnRlbnQtYm94XCI7XG5cblx0alF1ZXJ5LmV4dGVuZCggc3VwcG9ydCwge1xuXHRcdGJveFNpemluZ1JlbGlhYmxlOiBmdW5jdGlvbigpIHtcblx0XHRcdGNvbXB1dGVTdHlsZVRlc3RzKCk7XG5cdFx0XHRyZXR1cm4gYm94U2l6aW5nUmVsaWFibGVWYWw7XG5cdFx0fSxcblx0XHRwaXhlbEJveFN0eWxlczogZnVuY3Rpb24oKSB7XG5cdFx0XHRjb21wdXRlU3R5bGVUZXN0cygpO1xuXHRcdFx0cmV0dXJuIHBpeGVsQm94U3R5bGVzVmFsO1xuXHRcdH0sXG5cdFx0cGl4ZWxQb3NpdGlvbjogZnVuY3Rpb24oKSB7XG5cdFx0XHRjb21wdXRlU3R5bGVUZXN0cygpO1xuXHRcdFx0cmV0dXJuIHBpeGVsUG9zaXRpb25WYWw7XG5cdFx0fSxcblx0XHRyZWxpYWJsZU1hcmdpbkxlZnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29tcHV0ZVN0eWxlVGVzdHMoKTtcblx0XHRcdHJldHVybiByZWxpYWJsZU1hcmdpbkxlZnRWYWw7XG5cdFx0fSxcblx0XHRzY3JvbGxib3hTaXplOiBmdW5jdGlvbigpIHtcblx0XHRcdGNvbXB1dGVTdHlsZVRlc3RzKCk7XG5cdFx0XHRyZXR1cm4gc2Nyb2xsYm94U2l6ZVZhbDtcblx0XHR9LFxuXG5cdFx0Ly8gU3VwcG9ydDogSUUgOSAtIDExKywgRWRnZSAxNSAtIDE4K1xuXHRcdC8vIElFL0VkZ2UgbWlzcmVwb3J0IGBnZXRDb21wdXRlZFN0eWxlYCBvZiB0YWJsZSByb3dzIHdpdGggd2lkdGgvaGVpZ2h0XG5cdFx0Ly8gc2V0IGluIENTUyB3aGlsZSBgb2Zmc2V0KmAgcHJvcGVydGllcyByZXBvcnQgY29ycmVjdCB2YWx1ZXMuXG5cdFx0Ly8gQmVoYXZpb3IgaW4gSUUgOSBpcyBtb3JlIHN1YnRsZSB0aGFuIGluIG5ld2VyIHZlcnNpb25zICYgaXQgcGFzc2VzXG5cdFx0Ly8gc29tZSB2ZXJzaW9ucyBvZiB0aGlzIHRlc3Q7IG1ha2Ugc3VyZSBub3QgdG8gbWFrZSBpdCBwYXNzIHRoZXJlIVxuXHRcdHJlbGlhYmxlVHJEaW1lbnNpb25zOiBmdW5jdGlvbigpIHtcblx0XHRcdHZhciB0YWJsZSwgdHIsIHRyQ2hpbGQsIHRyU3R5bGU7XG5cdFx0XHRpZiAoIHJlbGlhYmxlVHJEaW1lbnNpb25zVmFsID09IG51bGwgKSB7XG5cdFx0XHRcdHRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJ0YWJsZVwiICk7XG5cdFx0XHRcdHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJ0clwiICk7XG5cdFx0XHRcdHRyQ2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICk7XG5cblx0XHRcdFx0dGFibGUuc3R5bGUuY3NzVGV4dCA9IFwicG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTExMTFweFwiO1xuXHRcdFx0XHR0ci5zdHlsZS5oZWlnaHQgPSBcIjFweFwiO1xuXHRcdFx0XHR0ckNoaWxkLnN0eWxlLmhlaWdodCA9IFwiOXB4XCI7XG5cblx0XHRcdFx0ZG9jdW1lbnRFbGVtZW50XG5cdFx0XHRcdFx0LmFwcGVuZENoaWxkKCB0YWJsZSApXG5cdFx0XHRcdFx0LmFwcGVuZENoaWxkKCB0ciApXG5cdFx0XHRcdFx0LmFwcGVuZENoaWxkKCB0ckNoaWxkICk7XG5cblx0XHRcdFx0dHJTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCB0ciApO1xuXHRcdFx0XHRyZWxpYWJsZVRyRGltZW5zaW9uc1ZhbCA9IHBhcnNlSW50KCB0clN0eWxlLmhlaWdodCApID4gMztcblxuXHRcdFx0XHRkb2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoIHRhYmxlICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVsaWFibGVUckRpbWVuc2lvbnNWYWw7XG5cdFx0fVxuXHR9ICk7XG59ICkoKTtcblxuXG5mdW5jdGlvbiBjdXJDU1MoIGVsZW0sIG5hbWUsIGNvbXB1dGVkICkge1xuXHR2YXIgd2lkdGgsIG1pbldpZHRoLCBtYXhXaWR0aCwgcmV0LFxuXG5cdFx0Ly8gU3VwcG9ydDogRmlyZWZveCA1MStcblx0XHQvLyBSZXRyaWV2aW5nIHN0eWxlIGJlZm9yZSBjb21wdXRlZCBzb21laG93XG5cdFx0Ly8gZml4ZXMgYW4gaXNzdWUgd2l0aCBnZXR0aW5nIHdyb25nIHZhbHVlc1xuXHRcdC8vIG9uIGRldGFjaGVkIGVsZW1lbnRzXG5cdFx0c3R5bGUgPSBlbGVtLnN0eWxlO1xuXG5cdGNvbXB1dGVkID0gY29tcHV0ZWQgfHwgZ2V0U3R5bGVzKCBlbGVtICk7XG5cblx0Ly8gZ2V0UHJvcGVydHlWYWx1ZSBpcyBuZWVkZWQgZm9yOlxuXHQvLyAgIC5jc3MoJ2ZpbHRlcicpIChJRSA5IG9ubHksICMxMjUzNylcblx0Ly8gICAuY3NzKCctLWN1c3RvbVByb3BlcnR5KSAoIzMxNDQpXG5cdGlmICggY29tcHV0ZWQgKSB7XG5cdFx0cmV0ID0gY29tcHV0ZWQuZ2V0UHJvcGVydHlWYWx1ZSggbmFtZSApIHx8IGNvbXB1dGVkWyBuYW1lIF07XG5cblx0XHRpZiAoIHJldCA9PT0gXCJcIiAmJiAhaXNBdHRhY2hlZCggZWxlbSApICkge1xuXHRcdFx0cmV0ID0galF1ZXJ5LnN0eWxlKCBlbGVtLCBuYW1lICk7XG5cdFx0fVxuXG5cdFx0Ly8gQSB0cmlidXRlIHRvIHRoZSBcImF3ZXNvbWUgaGFjayBieSBEZWFuIEVkd2FyZHNcIlxuXHRcdC8vIEFuZHJvaWQgQnJvd3NlciByZXR1cm5zIHBlcmNlbnRhZ2UgZm9yIHNvbWUgdmFsdWVzLFxuXHRcdC8vIGJ1dCB3aWR0aCBzZWVtcyB0byBiZSByZWxpYWJseSBwaXhlbHMuXG5cdFx0Ly8gVGhpcyBpcyBhZ2FpbnN0IHRoZSBDU1NPTSBkcmFmdCBzcGVjOlxuXHRcdC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS8jcmVzb2x2ZWQtdmFsdWVzXG5cdFx0aWYgKCAhc3VwcG9ydC5waXhlbEJveFN0eWxlcygpICYmIHJudW1ub25weC50ZXN0KCByZXQgKSAmJiByYm94U3R5bGUudGVzdCggbmFtZSApICkge1xuXG5cdFx0XHQvLyBSZW1lbWJlciB0aGUgb3JpZ2luYWwgdmFsdWVzXG5cdFx0XHR3aWR0aCA9IHN0eWxlLndpZHRoO1xuXHRcdFx0bWluV2lkdGggPSBzdHlsZS5taW5XaWR0aDtcblx0XHRcdG1heFdpZHRoID0gc3R5bGUubWF4V2lkdGg7XG5cblx0XHRcdC8vIFB1dCBpbiB0aGUgbmV3IHZhbHVlcyB0byBnZXQgYSBjb21wdXRlZCB2YWx1ZSBvdXRcblx0XHRcdHN0eWxlLm1pbldpZHRoID0gc3R5bGUubWF4V2lkdGggPSBzdHlsZS53aWR0aCA9IHJldDtcblx0XHRcdHJldCA9IGNvbXB1dGVkLndpZHRoO1xuXG5cdFx0XHQvLyBSZXZlcnQgdGhlIGNoYW5nZWQgdmFsdWVzXG5cdFx0XHRzdHlsZS53aWR0aCA9IHdpZHRoO1xuXHRcdFx0c3R5bGUubWluV2lkdGggPSBtaW5XaWR0aDtcblx0XHRcdHN0eWxlLm1heFdpZHRoID0gbWF4V2lkdGg7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHJldCAhPT0gdW5kZWZpbmVkID9cblxuXHRcdC8vIFN1cHBvcnQ6IElFIDw9OSAtIDExIG9ubHlcblx0XHQvLyBJRSByZXR1cm5zIHpJbmRleCB2YWx1ZSBhcyBhbiBpbnRlZ2VyLlxuXHRcdHJldCArIFwiXCIgOlxuXHRcdHJldDtcbn1cblxuXG5mdW5jdGlvbiBhZGRHZXRIb29rSWYoIGNvbmRpdGlvbkZuLCBob29rRm4gKSB7XG5cblx0Ly8gRGVmaW5lIHRoZSBob29rLCB3ZSdsbCBjaGVjayBvbiB0aGUgZmlyc3QgcnVuIGlmIGl0J3MgcmVhbGx5IG5lZWRlZC5cblx0cmV0dXJuIHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0aWYgKCBjb25kaXRpb25GbigpICkge1xuXG5cdFx0XHRcdC8vIEhvb2sgbm90IG5lZWRlZCAob3IgaXQncyBub3QgcG9zc2libGUgdG8gdXNlIGl0IGR1ZVxuXHRcdFx0XHQvLyB0byBtaXNzaW5nIGRlcGVuZGVuY3kpLCByZW1vdmUgaXQuXG5cdFx0XHRcdGRlbGV0ZSB0aGlzLmdldDtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBIb29rIG5lZWRlZDsgcmVkZWZpbmUgaXQgc28gdGhhdCB0aGUgc3VwcG9ydCB0ZXN0IGlzIG5vdCBleGVjdXRlZCBhZ2Fpbi5cblx0XHRcdHJldHVybiAoIHRoaXMuZ2V0ID0gaG9va0ZuICkuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdH1cblx0fTtcbn1cblxuXG52YXIgY3NzUHJlZml4ZXMgPSBbIFwiV2Via2l0XCIsIFwiTW96XCIsIFwibXNcIiBdLFxuXHRlbXB0eVN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApLnN0eWxlLFxuXHR2ZW5kb3JQcm9wcyA9IHt9O1xuXG4vLyBSZXR1cm4gYSB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgb3IgdW5kZWZpbmVkXG5mdW5jdGlvbiB2ZW5kb3JQcm9wTmFtZSggbmFtZSApIHtcblxuXHQvLyBDaGVjayBmb3IgdmVuZG9yIHByZWZpeGVkIG5hbWVzXG5cdHZhciBjYXBOYW1lID0gbmFtZVsgMCBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKCAxICksXG5cdFx0aSA9IGNzc1ByZWZpeGVzLmxlbmd0aDtcblxuXHR3aGlsZSAoIGktLSApIHtcblx0XHRuYW1lID0gY3NzUHJlZml4ZXNbIGkgXSArIGNhcE5hbWU7XG5cdFx0aWYgKCBuYW1lIGluIGVtcHR5U3R5bGUgKSB7XG5cdFx0XHRyZXR1cm4gbmFtZTtcblx0XHR9XG5cdH1cbn1cblxuLy8gUmV0dXJuIGEgcG90ZW50aWFsbHktbWFwcGVkIGpRdWVyeS5jc3NQcm9wcyBvciB2ZW5kb3IgcHJlZml4ZWQgcHJvcGVydHlcbmZ1bmN0aW9uIGZpbmFsUHJvcE5hbWUoIG5hbWUgKSB7XG5cdHZhciBmaW5hbCA9IGpRdWVyeS5jc3NQcm9wc1sgbmFtZSBdIHx8IHZlbmRvclByb3BzWyBuYW1lIF07XG5cblx0aWYgKCBmaW5hbCApIHtcblx0XHRyZXR1cm4gZmluYWw7XG5cdH1cblx0aWYgKCBuYW1lIGluIGVtcHR5U3R5bGUgKSB7XG5cdFx0cmV0dXJuIG5hbWU7XG5cdH1cblx0cmV0dXJuIHZlbmRvclByb3BzWyBuYW1lIF0gPSB2ZW5kb3JQcm9wTmFtZSggbmFtZSApIHx8IG5hbWU7XG59XG5cblxudmFyXG5cblx0Ly8gU3dhcHBhYmxlIGlmIGRpc3BsYXkgaXMgbm9uZSBvciBzdGFydHMgd2l0aCB0YWJsZVxuXHQvLyBleGNlcHQgXCJ0YWJsZVwiLCBcInRhYmxlLWNlbGxcIiwgb3IgXCJ0YWJsZS1jYXB0aW9uXCJcblx0Ly8gU2VlIGhlcmUgZm9yIGRpc3BsYXkgdmFsdWVzOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL0NTUy9kaXNwbGF5XG5cdHJkaXNwbGF5c3dhcCA9IC9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxcblx0cmN1c3RvbVByb3AgPSAvXi0tLyxcblx0Y3NzU2hvdyA9IHsgcG9zaXRpb246IFwiYWJzb2x1dGVcIiwgdmlzaWJpbGl0eTogXCJoaWRkZW5cIiwgZGlzcGxheTogXCJibG9ja1wiIH0sXG5cdGNzc05vcm1hbFRyYW5zZm9ybSA9IHtcblx0XHRsZXR0ZXJTcGFjaW5nOiBcIjBcIixcblx0XHRmb250V2VpZ2h0OiBcIjQwMFwiXG5cdH07XG5cbmZ1bmN0aW9uIHNldFBvc2l0aXZlTnVtYmVyKCBfZWxlbSwgdmFsdWUsIHN1YnRyYWN0ICkge1xuXG5cdC8vIEFueSByZWxhdGl2ZSAoKy8tKSB2YWx1ZXMgaGF2ZSBhbHJlYWR5IGJlZW5cblx0Ly8gbm9ybWFsaXplZCBhdCB0aGlzIHBvaW50XG5cdHZhciBtYXRjaGVzID0gcmNzc051bS5leGVjKCB2YWx1ZSApO1xuXHRyZXR1cm4gbWF0Y2hlcyA/XG5cblx0XHQvLyBHdWFyZCBhZ2FpbnN0IHVuZGVmaW5lZCBcInN1YnRyYWN0XCIsIGUuZy4sIHdoZW4gdXNlZCBhcyBpbiBjc3NIb29rc1xuXHRcdE1hdGgubWF4KCAwLCBtYXRjaGVzWyAyIF0gLSAoIHN1YnRyYWN0IHx8IDAgKSApICsgKCBtYXRjaGVzWyAzIF0gfHwgXCJweFwiICkgOlxuXHRcdHZhbHVlO1xufVxuXG5mdW5jdGlvbiBib3hNb2RlbEFkanVzdG1lbnQoIGVsZW0sIGRpbWVuc2lvbiwgYm94LCBpc0JvcmRlckJveCwgc3R5bGVzLCBjb21wdXRlZFZhbCApIHtcblx0dmFyIGkgPSBkaW1lbnNpb24gPT09IFwid2lkdGhcIiA/IDEgOiAwLFxuXHRcdGV4dHJhID0gMCxcblx0XHRkZWx0YSA9IDA7XG5cblx0Ly8gQWRqdXN0bWVudCBtYXkgbm90IGJlIG5lY2Vzc2FyeVxuXHRpZiAoIGJveCA9PT0gKCBpc0JvcmRlckJveCA/IFwiYm9yZGVyXCIgOiBcImNvbnRlbnRcIiApICkge1xuXHRcdHJldHVybiAwO1xuXHR9XG5cblx0Zm9yICggOyBpIDwgNDsgaSArPSAyICkge1xuXG5cdFx0Ly8gQm90aCBib3ggbW9kZWxzIGV4Y2x1ZGUgbWFyZ2luXG5cdFx0aWYgKCBib3ggPT09IFwibWFyZ2luXCIgKSB7XG5cdFx0XHRkZWx0YSArPSBqUXVlcnkuY3NzKCBlbGVtLCBib3ggKyBjc3NFeHBhbmRbIGkgXSwgdHJ1ZSwgc3R5bGVzICk7XG5cdFx0fVxuXG5cdFx0Ly8gSWYgd2UgZ2V0IGhlcmUgd2l0aCBhIGNvbnRlbnQtYm94LCB3ZSdyZSBzZWVraW5nIFwicGFkZGluZ1wiIG9yIFwiYm9yZGVyXCIgb3IgXCJtYXJnaW5cIlxuXHRcdGlmICggIWlzQm9yZGVyQm94ICkge1xuXG5cdFx0XHQvLyBBZGQgcGFkZGluZ1xuXHRcdFx0ZGVsdGEgKz0galF1ZXJ5LmNzcyggZWxlbSwgXCJwYWRkaW5nXCIgKyBjc3NFeHBhbmRbIGkgXSwgdHJ1ZSwgc3R5bGVzICk7XG5cblx0XHRcdC8vIEZvciBcImJvcmRlclwiIG9yIFwibWFyZ2luXCIsIGFkZCBib3JkZXJcblx0XHRcdGlmICggYm94ICE9PSBcInBhZGRpbmdcIiApIHtcblx0XHRcdFx0ZGVsdGEgKz0galF1ZXJ5LmNzcyggZWxlbSwgXCJib3JkZXJcIiArIGNzc0V4cGFuZFsgaSBdICsgXCJXaWR0aFwiLCB0cnVlLCBzdHlsZXMgKTtcblxuXHRcdFx0Ly8gQnV0IHN0aWxsIGtlZXAgdHJhY2sgb2YgaXQgb3RoZXJ3aXNlXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRleHRyYSArPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJvcmRlclwiICsgY3NzRXhwYW5kWyBpIF0gKyBcIldpZHRoXCIsIHRydWUsIHN0eWxlcyApO1xuXHRcdFx0fVxuXG5cdFx0Ly8gSWYgd2UgZ2V0IGhlcmUgd2l0aCBhIGJvcmRlci1ib3ggKGNvbnRlbnQgKyBwYWRkaW5nICsgYm9yZGVyKSwgd2UncmUgc2Vla2luZyBcImNvbnRlbnRcIiBvclxuXHRcdC8vIFwicGFkZGluZ1wiIG9yIFwibWFyZ2luXCJcblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyBGb3IgXCJjb250ZW50XCIsIHN1YnRyYWN0IHBhZGRpbmdcblx0XHRcdGlmICggYm94ID09PSBcImNvbnRlbnRcIiApIHtcblx0XHRcdFx0ZGVsdGEgLT0galF1ZXJ5LmNzcyggZWxlbSwgXCJwYWRkaW5nXCIgKyBjc3NFeHBhbmRbIGkgXSwgdHJ1ZSwgc3R5bGVzICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEZvciBcImNvbnRlbnRcIiBvciBcInBhZGRpbmdcIiwgc3VidHJhY3QgYm9yZGVyXG5cdFx0XHRpZiAoIGJveCAhPT0gXCJtYXJnaW5cIiApIHtcblx0XHRcdFx0ZGVsdGEgLT0galF1ZXJ5LmNzcyggZWxlbSwgXCJib3JkZXJcIiArIGNzc0V4cGFuZFsgaSBdICsgXCJXaWR0aFwiLCB0cnVlLCBzdHlsZXMgKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBBY2NvdW50IGZvciBwb3NpdGl2ZSBjb250ZW50LWJveCBzY3JvbGwgZ3V0dGVyIHdoZW4gcmVxdWVzdGVkIGJ5IHByb3ZpZGluZyBjb21wdXRlZFZhbFxuXHRpZiAoICFpc0JvcmRlckJveCAmJiBjb21wdXRlZFZhbCA+PSAwICkge1xuXG5cdFx0Ly8gb2Zmc2V0V2lkdGgvb2Zmc2V0SGVpZ2h0IGlzIGEgcm91bmRlZCBzdW0gb2YgY29udGVudCwgcGFkZGluZywgc2Nyb2xsIGd1dHRlciwgYW5kIGJvcmRlclxuXHRcdC8vIEFzc3VtaW5nIGludGVnZXIgc2Nyb2xsIGd1dHRlciwgc3VidHJhY3QgdGhlIHJlc3QgYW5kIHJvdW5kIGRvd25cblx0XHRkZWx0YSArPSBNYXRoLm1heCggMCwgTWF0aC5jZWlsKFxuXHRcdFx0ZWxlbVsgXCJvZmZzZXRcIiArIGRpbWVuc2lvblsgMCBdLnRvVXBwZXJDYXNlKCkgKyBkaW1lbnNpb24uc2xpY2UoIDEgKSBdIC1cblx0XHRcdGNvbXB1dGVkVmFsIC1cblx0XHRcdGRlbHRhIC1cblx0XHRcdGV4dHJhIC1cblx0XHRcdDAuNVxuXG5cdFx0Ly8gSWYgb2Zmc2V0V2lkdGgvb2Zmc2V0SGVpZ2h0IGlzIHVua25vd24sIHRoZW4gd2UgY2FuJ3QgZGV0ZXJtaW5lIGNvbnRlbnQtYm94IHNjcm9sbCBndXR0ZXJcblx0XHQvLyBVc2UgYW4gZXhwbGljaXQgemVybyB0byBhdm9pZCBOYU4gKGdoLTM5NjQpXG5cdFx0KSApIHx8IDA7XG5cdH1cblxuXHRyZXR1cm4gZGVsdGE7XG59XG5cbmZ1bmN0aW9uIGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIGRpbWVuc2lvbiwgZXh0cmEgKSB7XG5cblx0Ly8gU3RhcnQgd2l0aCBjb21wdXRlZCBzdHlsZVxuXHR2YXIgc3R5bGVzID0gZ2V0U3R5bGVzKCBlbGVtICksXG5cblx0XHQvLyBUbyBhdm9pZCBmb3JjaW5nIGEgcmVmbG93LCBvbmx5IGZldGNoIGJveFNpemluZyBpZiB3ZSBuZWVkIGl0IChnaC00MzIyKS5cblx0XHQvLyBGYWtlIGNvbnRlbnQtYm94IHVudGlsIHdlIGtub3cgaXQncyBuZWVkZWQgdG8ga25vdyB0aGUgdHJ1ZSB2YWx1ZS5cblx0XHRib3hTaXppbmdOZWVkZWQgPSAhc3VwcG9ydC5ib3hTaXppbmdSZWxpYWJsZSgpIHx8IGV4dHJhLFxuXHRcdGlzQm9yZGVyQm94ID0gYm94U2l6aW5nTmVlZGVkICYmXG5cdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCBcImJveFNpemluZ1wiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiYm9yZGVyLWJveFwiLFxuXHRcdHZhbHVlSXNCb3JkZXJCb3ggPSBpc0JvcmRlckJveCxcblxuXHRcdHZhbCA9IGN1ckNTUyggZWxlbSwgZGltZW5zaW9uLCBzdHlsZXMgKSxcblx0XHRvZmZzZXRQcm9wID0gXCJvZmZzZXRcIiArIGRpbWVuc2lvblsgMCBdLnRvVXBwZXJDYXNlKCkgKyBkaW1lbnNpb24uc2xpY2UoIDEgKTtcblxuXHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NTRcblx0Ly8gUmV0dXJuIGEgY29uZm91bmRpbmcgbm9uLXBpeGVsIHZhbHVlIG9yIGZlaWduIGlnbm9yYW5jZSwgYXMgYXBwcm9wcmlhdGUuXG5cdGlmICggcm51bW5vbnB4LnRlc3QoIHZhbCApICkge1xuXHRcdGlmICggIWV4dHJhICkge1xuXHRcdFx0cmV0dXJuIHZhbDtcblx0XHR9XG5cdFx0dmFsID0gXCJhdXRvXCI7XG5cdH1cblxuXG5cdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSBvbmx5XG5cdC8vIFVzZSBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgZm9yIHdoZW4gYm94IHNpemluZyBpcyB1bnJlbGlhYmxlLlxuXHQvLyBJbiB0aG9zZSBjYXNlcywgdGhlIGNvbXB1dGVkIHZhbHVlIGNhbiBiZSB0cnVzdGVkIHRvIGJlIGJvcmRlci1ib3guXG5cdGlmICggKCAhc3VwcG9ydC5ib3hTaXppbmdSZWxpYWJsZSgpICYmIGlzQm9yZGVyQm94IHx8XG5cblx0XHQvLyBTdXBwb3J0OiBJRSAxMCAtIDExKywgRWRnZSAxNSAtIDE4K1xuXHRcdC8vIElFL0VkZ2UgbWlzcmVwb3J0IGBnZXRDb21wdXRlZFN0eWxlYCBvZiB0YWJsZSByb3dzIHdpdGggd2lkdGgvaGVpZ2h0XG5cdFx0Ly8gc2V0IGluIENTUyB3aGlsZSBgb2Zmc2V0KmAgcHJvcGVydGllcyByZXBvcnQgY29ycmVjdCB2YWx1ZXMuXG5cdFx0Ly8gSW50ZXJlc3RpbmdseSwgaW4gc29tZSBjYXNlcyBJRSA5IGRvZXNuJ3Qgc3VmZmVyIGZyb20gdGhpcyBpc3N1ZS5cblx0XHQhc3VwcG9ydC5yZWxpYWJsZVRyRGltZW5zaW9ucygpICYmIG5vZGVOYW1lKCBlbGVtLCBcInRyXCIgKSB8fFxuXG5cdFx0Ly8gRmFsbCBiYWNrIHRvIG9mZnNldFdpZHRoL29mZnNldEhlaWdodCB3aGVuIHZhbHVlIGlzIFwiYXV0b1wiXG5cdFx0Ly8gVGhpcyBoYXBwZW5zIGZvciBpbmxpbmUgZWxlbWVudHMgd2l0aCBubyBleHBsaWNpdCBzZXR0aW5nIChnaC0zNTcxKVxuXHRcdHZhbCA9PT0gXCJhdXRvXCIgfHxcblxuXHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjEgLSA0LjMgb25seVxuXHRcdC8vIEFsc28gdXNlIG9mZnNldFdpZHRoL29mZnNldEhlaWdodCBmb3IgbWlzcmVwb3J0ZWQgaW5saW5lIGRpbWVuc2lvbnMgKGdoLTM2MDIpXG5cdFx0IXBhcnNlRmxvYXQoIHZhbCApICYmIGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiaW5saW5lXCIgKSAmJlxuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoZSBlbGVtZW50IGlzIHZpc2libGUgJiBjb25uZWN0ZWRcblx0XHRlbGVtLmdldENsaWVudFJlY3RzKCkubGVuZ3RoICkge1xuXG5cdFx0aXNCb3JkZXJCb3ggPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJveFNpemluZ1wiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiYm9yZGVyLWJveFwiO1xuXG5cdFx0Ly8gV2hlcmUgYXZhaWxhYmxlLCBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgYXBwcm94aW1hdGUgYm9yZGVyIGJveCBkaW1lbnNpb25zLlxuXHRcdC8vIFdoZXJlIG5vdCBhdmFpbGFibGUgKGUuZy4sIFNWRyksIGFzc3VtZSB1bnJlbGlhYmxlIGJveC1zaXppbmcgYW5kIGludGVycHJldCB0aGVcblx0XHQvLyByZXRyaWV2ZWQgdmFsdWUgYXMgYSBjb250ZW50IGJveCBkaW1lbnNpb24uXG5cdFx0dmFsdWVJc0JvcmRlckJveCA9IG9mZnNldFByb3AgaW4gZWxlbTtcblx0XHRpZiAoIHZhbHVlSXNCb3JkZXJCb3ggKSB7XG5cdFx0XHR2YWwgPSBlbGVtWyBvZmZzZXRQcm9wIF07XG5cdFx0fVxuXHR9XG5cblx0Ly8gTm9ybWFsaXplIFwiXCIgYW5kIGF1dG9cblx0dmFsID0gcGFyc2VGbG9hdCggdmFsICkgfHwgMDtcblxuXHQvLyBBZGp1c3QgZm9yIHRoZSBlbGVtZW50J3MgYm94IG1vZGVsXG5cdHJldHVybiAoIHZhbCArXG5cdFx0Ym94TW9kZWxBZGp1c3RtZW50KFxuXHRcdFx0ZWxlbSxcblx0XHRcdGRpbWVuc2lvbixcblx0XHRcdGV4dHJhIHx8ICggaXNCb3JkZXJCb3ggPyBcImJvcmRlclwiIDogXCJjb250ZW50XCIgKSxcblx0XHRcdHZhbHVlSXNCb3JkZXJCb3gsXG5cdFx0XHRzdHlsZXMsXG5cblx0XHRcdC8vIFByb3ZpZGUgdGhlIGN1cnJlbnQgY29tcHV0ZWQgc2l6ZSB0byByZXF1ZXN0IHNjcm9sbCBndXR0ZXIgY2FsY3VsYXRpb24gKGdoLTM1ODkpXG5cdFx0XHR2YWxcblx0XHQpXG5cdCkgKyBcInB4XCI7XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHQvLyBBZGQgaW4gc3R5bGUgcHJvcGVydHkgaG9va3MgZm9yIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHRcblx0Ly8gYmVoYXZpb3Igb2YgZ2V0dGluZyBhbmQgc2V0dGluZyBhIHN0eWxlIHByb3BlcnR5XG5cdGNzc0hvb2tzOiB7XG5cdFx0b3BhY2l0eToge1xuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7XG5cdFx0XHRcdGlmICggY29tcHV0ZWQgKSB7XG5cblx0XHRcdFx0XHQvLyBXZSBzaG91bGQgYWx3YXlzIGdldCBhIG51bWJlciBiYWNrIGZyb20gb3BhY2l0eVxuXHRcdFx0XHRcdHZhciByZXQgPSBjdXJDU1MoIGVsZW0sIFwib3BhY2l0eVwiICk7XG5cdFx0XHRcdFx0cmV0dXJuIHJldCA9PT0gXCJcIiA/IFwiMVwiIDogcmV0O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdC8vIERvbid0IGF1dG9tYXRpY2FsbHkgYWRkIFwicHhcIiB0byB0aGVzZSBwb3NzaWJseS11bml0bGVzcyBwcm9wZXJ0aWVzXG5cdGNzc051bWJlcjoge1xuXHRcdFwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnRcIjogdHJ1ZSxcblx0XHRcImNvbHVtbkNvdW50XCI6IHRydWUsXG5cdFx0XCJmaWxsT3BhY2l0eVwiOiB0cnVlLFxuXHRcdFwiZmxleEdyb3dcIjogdHJ1ZSxcblx0XHRcImZsZXhTaHJpbmtcIjogdHJ1ZSxcblx0XHRcImZvbnRXZWlnaHRcIjogdHJ1ZSxcblx0XHRcImdyaWRBcmVhXCI6IHRydWUsXG5cdFx0XCJncmlkQ29sdW1uXCI6IHRydWUsXG5cdFx0XCJncmlkQ29sdW1uRW5kXCI6IHRydWUsXG5cdFx0XCJncmlkQ29sdW1uU3RhcnRcIjogdHJ1ZSxcblx0XHRcImdyaWRSb3dcIjogdHJ1ZSxcblx0XHRcImdyaWRSb3dFbmRcIjogdHJ1ZSxcblx0XHRcImdyaWRSb3dTdGFydFwiOiB0cnVlLFxuXHRcdFwibGluZUhlaWdodFwiOiB0cnVlLFxuXHRcdFwib3BhY2l0eVwiOiB0cnVlLFxuXHRcdFwib3JkZXJcIjogdHJ1ZSxcblx0XHRcIm9ycGhhbnNcIjogdHJ1ZSxcblx0XHRcIndpZG93c1wiOiB0cnVlLFxuXHRcdFwiekluZGV4XCI6IHRydWUsXG5cdFx0XCJ6b29tXCI6IHRydWVcblx0fSxcblxuXHQvLyBBZGQgaW4gcHJvcGVydGllcyB3aG9zZSBuYW1lcyB5b3Ugd2lzaCB0byBmaXggYmVmb3JlXG5cdC8vIHNldHRpbmcgb3IgZ2V0dGluZyB0aGUgdmFsdWVcblx0Y3NzUHJvcHM6IHt9LFxuXG5cdC8vIEdldCBhbmQgc2V0IHRoZSBzdHlsZSBwcm9wZXJ0eSBvbiBhIERPTSBOb2RlXG5cdHN0eWxlOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUsIGV4dHJhICkge1xuXG5cdFx0Ly8gRG9uJ3Qgc2V0IHN0eWxlcyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzXG5cdFx0aWYgKCAhZWxlbSB8fCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggfHwgIWVsZW0uc3R5bGUgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lXG5cdFx0dmFyIHJldCwgdHlwZSwgaG9va3MsXG5cdFx0XHRvcmlnTmFtZSA9IGNhbWVsQ2FzZSggbmFtZSApLFxuXHRcdFx0aXNDdXN0b21Qcm9wID0gcmN1c3RvbVByb3AudGVzdCggbmFtZSApLFxuXHRcdFx0c3R5bGUgPSBlbGVtLnN0eWxlO1xuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lLiBXZSBkb24ndFxuXHRcdC8vIHdhbnQgdG8gcXVlcnkgdGhlIHZhbHVlIGlmIGl0IGlzIGEgQ1NTIGN1c3RvbSBwcm9wZXJ0eVxuXHRcdC8vIHNpbmNlIHRoZXkgYXJlIHVzZXItZGVmaW5lZC5cblx0XHRpZiAoICFpc0N1c3RvbVByb3AgKSB7XG5cdFx0XHRuYW1lID0gZmluYWxQcm9wTmFtZSggb3JpZ05hbWUgKTtcblx0XHR9XG5cblx0XHQvLyBHZXRzIGhvb2sgZm9yIHRoZSBwcmVmaXhlZCB2ZXJzaW9uLCB0aGVuIHVucHJlZml4ZWQgdmVyc2lvblxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gfHwgalF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdO1xuXG5cdFx0Ly8gQ2hlY2sgaWYgd2UncmUgc2V0dGluZyBhIHZhbHVlXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0dHlwZSA9IHR5cGVvZiB2YWx1ZTtcblxuXHRcdFx0Ly8gQ29udmVydCBcIis9XCIgb3IgXCItPVwiIHRvIHJlbGF0aXZlIG51bWJlcnMgKCM3MzQ1KVxuXHRcdFx0aWYgKCB0eXBlID09PSBcInN0cmluZ1wiICYmICggcmV0ID0gcmNzc051bS5leGVjKCB2YWx1ZSApICkgJiYgcmV0WyAxIF0gKSB7XG5cdFx0XHRcdHZhbHVlID0gYWRqdXN0Q1NTKCBlbGVtLCBuYW1lLCByZXQgKTtcblxuXHRcdFx0XHQvLyBGaXhlcyBidWcgIzkyMzdcblx0XHRcdFx0dHlwZSA9IFwibnVtYmVyXCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IG51bGwgYW5kIE5hTiB2YWx1ZXMgYXJlbid0IHNldCAoIzcxMTYpXG5cdFx0XHRpZiAoIHZhbHVlID09IG51bGwgfHwgdmFsdWUgIT09IHZhbHVlICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIGEgbnVtYmVyIHdhcyBwYXNzZWQgaW4sIGFkZCB0aGUgdW5pdCAoZXhjZXB0IGZvciBjZXJ0YWluIENTUyBwcm9wZXJ0aWVzKVxuXHRcdFx0Ly8gVGhlIGlzQ3VzdG9tUHJvcCBjaGVjayBjYW4gYmUgcmVtb3ZlZCBpbiBqUXVlcnkgNC4wIHdoZW4gd2Ugb25seSBhdXRvLWFwcGVuZFxuXHRcdFx0Ly8gXCJweFwiIHRvIGEgZmV3IGhhcmRjb2RlZCB2YWx1ZXMuXG5cdFx0XHRpZiAoIHR5cGUgPT09IFwibnVtYmVyXCIgJiYgIWlzQ3VzdG9tUHJvcCApIHtcblx0XHRcdFx0dmFsdWUgKz0gcmV0ICYmIHJldFsgMyBdIHx8ICggalF1ZXJ5LmNzc051bWJlclsgb3JpZ05hbWUgXSA/IFwiXCIgOiBcInB4XCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gYmFja2dyb3VuZC0qIHByb3BzIGFmZmVjdCBvcmlnaW5hbCBjbG9uZSdzIHZhbHVlc1xuXHRcdFx0aWYgKCAhc3VwcG9ydC5jbGVhckNsb25lU3R5bGUgJiYgdmFsdWUgPT09IFwiXCIgJiYgbmFtZS5pbmRleE9mKCBcImJhY2tncm91bmRcIiApID09PSAwICkge1xuXHRcdFx0XHRzdHlsZVsgbmFtZSBdID0gXCJpbmhlcml0XCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQsIHVzZSB0aGF0IHZhbHVlLCBvdGhlcndpc2UganVzdCBzZXQgdGhlIHNwZWNpZmllZCB2YWx1ZVxuXHRcdFx0aWYgKCAhaG9va3MgfHwgISggXCJzZXRcIiBpbiBob29rcyApIHx8XG5cdFx0XHRcdCggdmFsdWUgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlLCBleHRyYSApICkgIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdFx0XHRpZiAoIGlzQ3VzdG9tUHJvcCApIHtcblx0XHRcdFx0XHRzdHlsZS5zZXRQcm9wZXJ0eSggbmFtZSwgdmFsdWUgKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzdHlsZVsgbmFtZSBdID0gdmFsdWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQgZ2V0IHRoZSBub24tY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZVxuXHRcdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmXG5cdFx0XHRcdCggcmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBmYWxzZSwgZXh0cmEgKSApICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gT3RoZXJ3aXNlIGp1c3QgZ2V0IHRoZSB2YWx1ZSBmcm9tIHRoZSBzdHlsZSBvYmplY3Rcblx0XHRcdHJldHVybiBzdHlsZVsgbmFtZSBdO1xuXHRcdH1cblx0fSxcblxuXHRjc3M6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBleHRyYSwgc3R5bGVzICkge1xuXHRcdHZhciB2YWwsIG51bSwgaG9va3MsXG5cdFx0XHRvcmlnTmFtZSA9IGNhbWVsQ2FzZSggbmFtZSApLFxuXHRcdFx0aXNDdXN0b21Qcm9wID0gcmN1c3RvbVByb3AudGVzdCggbmFtZSApO1xuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lLiBXZSBkb24ndFxuXHRcdC8vIHdhbnQgdG8gbW9kaWZ5IHRoZSB2YWx1ZSBpZiBpdCBpcyBhIENTUyBjdXN0b20gcHJvcGVydHlcblx0XHQvLyBzaW5jZSB0aGV5IGFyZSB1c2VyLWRlZmluZWQuXG5cdFx0aWYgKCAhaXNDdXN0b21Qcm9wICkge1xuXHRcdFx0bmFtZSA9IGZpbmFsUHJvcE5hbWUoIG9yaWdOYW1lICk7XG5cdFx0fVxuXG5cdFx0Ly8gVHJ5IHByZWZpeGVkIG5hbWUgZm9sbG93ZWQgYnkgdGhlIHVucHJlZml4ZWQgbmFtZVxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gfHwgalF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdO1xuXG5cdFx0Ly8gSWYgYSBob29rIHdhcyBwcm92aWRlZCBnZXQgdGhlIGNvbXB1dGVkIHZhbHVlIGZyb20gdGhlcmVcblx0XHRpZiAoIGhvb2tzICYmIFwiZ2V0XCIgaW4gaG9va3MgKSB7XG5cdFx0XHR2YWwgPSBob29rcy5nZXQoIGVsZW0sIHRydWUsIGV4dHJhICk7XG5cdFx0fVxuXG5cdFx0Ly8gT3RoZXJ3aXNlLCBpZiBhIHdheSB0byBnZXQgdGhlIGNvbXB1dGVkIHZhbHVlIGV4aXN0cywgdXNlIHRoYXRcblx0XHRpZiAoIHZhbCA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0dmFsID0gY3VyQ1NTKCBlbGVtLCBuYW1lLCBzdHlsZXMgKTtcblx0XHR9XG5cblx0XHQvLyBDb252ZXJ0IFwibm9ybWFsXCIgdG8gY29tcHV0ZWQgdmFsdWVcblx0XHRpZiAoIHZhbCA9PT0gXCJub3JtYWxcIiAmJiBuYW1lIGluIGNzc05vcm1hbFRyYW5zZm9ybSApIHtcblx0XHRcdHZhbCA9IGNzc05vcm1hbFRyYW5zZm9ybVsgbmFtZSBdO1xuXHRcdH1cblxuXHRcdC8vIE1ha2UgbnVtZXJpYyBpZiBmb3JjZWQgb3IgYSBxdWFsaWZpZXIgd2FzIHByb3ZpZGVkIGFuZCB2YWwgbG9va3MgbnVtZXJpY1xuXHRcdGlmICggZXh0cmEgPT09IFwiXCIgfHwgZXh0cmEgKSB7XG5cdFx0XHRudW0gPSBwYXJzZUZsb2F0KCB2YWwgKTtcblx0XHRcdHJldHVybiBleHRyYSA9PT0gdHJ1ZSB8fCBpc0Zpbml0ZSggbnVtICkgPyBudW0gfHwgMCA6IHZhbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5lYWNoKCBbIFwiaGVpZ2h0XCIsIFwid2lkdGhcIiBdLCBmdW5jdGlvbiggX2ksIGRpbWVuc2lvbiApIHtcblx0alF1ZXJ5LmNzc0hvb2tzWyBkaW1lbnNpb24gXSA9IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCwgZXh0cmEgKSB7XG5cdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXG5cdFx0XHRcdC8vIENlcnRhaW4gZWxlbWVudHMgY2FuIGhhdmUgZGltZW5zaW9uIGluZm8gaWYgd2UgaW52aXNpYmx5IHNob3cgdGhlbVxuXHRcdFx0XHQvLyBidXQgaXQgbXVzdCBoYXZlIGEgY3VycmVudCBkaXNwbGF5IHN0eWxlIHRoYXQgd291bGQgYmVuZWZpdFxuXHRcdFx0XHRyZXR1cm4gcmRpc3BsYXlzd2FwLnRlc3QoIGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiICkgKSAmJlxuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogU2FmYXJpIDgrXG5cdFx0XHRcdFx0Ly8gVGFibGUgY29sdW1ucyBpbiBTYWZhcmkgaGF2ZSBub24temVybyBvZmZzZXRXaWR0aCAmIHplcm9cblx0XHRcdFx0XHQvLyBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB1bmxlc3MgZGlzcGxheSBpcyBjaGFuZ2VkLlxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHRcdFx0XHRcdC8vIFJ1bm5pbmcgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IG9uIGEgZGlzY29ubmVjdGVkIG5vZGVcblx0XHRcdFx0XHQvLyBpbiBJRSB0aHJvd3MgYW4gZXJyb3IuXG5cdFx0XHRcdFx0KCAhZWxlbS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCB8fCAhZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCApID9cblx0XHRcdFx0XHRcdHN3YXAoIGVsZW0sIGNzc1Nob3csIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gZ2V0V2lkdGhPckhlaWdodCggZWxlbSwgZGltZW5zaW9uLCBleHRyYSApO1xuXHRcdFx0XHRcdFx0fSApIDpcblx0XHRcdFx0XHRcdGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIGRpbWVuc2lvbiwgZXh0cmEgKTtcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUsIGV4dHJhICkge1xuXHRcdFx0dmFyIG1hdGNoZXMsXG5cdFx0XHRcdHN0eWxlcyA9IGdldFN0eWxlcyggZWxlbSApLFxuXG5cdFx0XHRcdC8vIE9ubHkgcmVhZCBzdHlsZXMucG9zaXRpb24gaWYgdGhlIHRlc3QgaGFzIGEgY2hhbmNlIHRvIGZhaWxcblx0XHRcdFx0Ly8gdG8gYXZvaWQgZm9yY2luZyBhIHJlZmxvdy5cblx0XHRcdFx0c2Nyb2xsYm94U2l6ZUJ1Z2d5ID0gIXN1cHBvcnQuc2Nyb2xsYm94U2l6ZSgpICYmXG5cdFx0XHRcdFx0c3R5bGVzLnBvc2l0aW9uID09PSBcImFic29sdXRlXCIsXG5cblx0XHRcdFx0Ly8gVG8gYXZvaWQgZm9yY2luZyBhIHJlZmxvdywgb25seSBmZXRjaCBib3hTaXppbmcgaWYgd2UgbmVlZCBpdCAoZ2gtMzk5MSlcblx0XHRcdFx0Ym94U2l6aW5nTmVlZGVkID0gc2Nyb2xsYm94U2l6ZUJ1Z2d5IHx8IGV4dHJhLFxuXHRcdFx0XHRpc0JvcmRlckJveCA9IGJveFNpemluZ05lZWRlZCAmJlxuXHRcdFx0XHRcdGpRdWVyeS5jc3MoIGVsZW0sIFwiYm94U2l6aW5nXCIsIGZhbHNlLCBzdHlsZXMgKSA9PT0gXCJib3JkZXItYm94XCIsXG5cdFx0XHRcdHN1YnRyYWN0ID0gZXh0cmEgP1xuXHRcdFx0XHRcdGJveE1vZGVsQWRqdXN0bWVudChcblx0XHRcdFx0XHRcdGVsZW0sXG5cdFx0XHRcdFx0XHRkaW1lbnNpb24sXG5cdFx0XHRcdFx0XHRleHRyYSxcblx0XHRcdFx0XHRcdGlzQm9yZGVyQm94LFxuXHRcdFx0XHRcdFx0c3R5bGVzXG5cdFx0XHRcdFx0KSA6XG5cdFx0XHRcdFx0MDtcblxuXHRcdFx0Ly8gQWNjb3VudCBmb3IgdW5yZWxpYWJsZSBib3JkZXItYm94IGRpbWVuc2lvbnMgYnkgY29tcGFyaW5nIG9mZnNldCogdG8gY29tcHV0ZWQgYW5kXG5cdFx0XHQvLyBmYWtpbmcgYSBjb250ZW50LWJveCB0byBnZXQgYm9yZGVyIGFuZCBwYWRkaW5nIChnaC0zNjk5KVxuXHRcdFx0aWYgKCBpc0JvcmRlckJveCAmJiBzY3JvbGxib3hTaXplQnVnZ3kgKSB7XG5cdFx0XHRcdHN1YnRyYWN0IC09IE1hdGguY2VpbChcblx0XHRcdFx0XHRlbGVtWyBcIm9mZnNldFwiICsgZGltZW5zaW9uWyAwIF0udG9VcHBlckNhc2UoKSArIGRpbWVuc2lvbi5zbGljZSggMSApIF0gLVxuXHRcdFx0XHRcdHBhcnNlRmxvYXQoIHN0eWxlc1sgZGltZW5zaW9uIF0gKSAtXG5cdFx0XHRcdFx0Ym94TW9kZWxBZGp1c3RtZW50KCBlbGVtLCBkaW1lbnNpb24sIFwiYm9yZGVyXCIsIGZhbHNlLCBzdHlsZXMgKSAtXG5cdFx0XHRcdFx0MC41XG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENvbnZlcnQgdG8gcGl4ZWxzIGlmIHZhbHVlIGFkanVzdG1lbnQgaXMgbmVlZGVkXG5cdFx0XHRpZiAoIHN1YnRyYWN0ICYmICggbWF0Y2hlcyA9IHJjc3NOdW0uZXhlYyggdmFsdWUgKSApICYmXG5cdFx0XHRcdCggbWF0Y2hlc1sgMyBdIHx8IFwicHhcIiApICE9PSBcInB4XCIgKSB7XG5cblx0XHRcdFx0ZWxlbS5zdHlsZVsgZGltZW5zaW9uIF0gPSB2YWx1ZTtcblx0XHRcdFx0dmFsdWUgPSBqUXVlcnkuY3NzKCBlbGVtLCBkaW1lbnNpb24gKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHNldFBvc2l0aXZlTnVtYmVyKCBlbGVtLCB2YWx1ZSwgc3VidHJhY3QgKTtcblx0XHR9XG5cdH07XG59ICk7XG5cbmpRdWVyeS5jc3NIb29rcy5tYXJnaW5MZWZ0ID0gYWRkR2V0SG9va0lmKCBzdXBwb3J0LnJlbGlhYmxlTWFyZ2luTGVmdCxcblx0ZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkge1xuXHRcdGlmICggY29tcHV0ZWQgKSB7XG5cdFx0XHRyZXR1cm4gKCBwYXJzZUZsb2F0KCBjdXJDU1MoIGVsZW0sIFwibWFyZ2luTGVmdFwiICkgKSB8fFxuXHRcdFx0XHRlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuXHRcdFx0XHRcdHN3YXAoIGVsZW0sIHsgbWFyZ2luTGVmdDogMCB9LCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG5cdFx0XHRcdFx0fSApXG5cdFx0XHRcdCkgKyBcInB4XCI7XG5cdFx0fVxuXHR9XG4pO1xuXG4vLyBUaGVzZSBob29rcyBhcmUgdXNlZCBieSBhbmltYXRlIHRvIGV4cGFuZCBwcm9wZXJ0aWVzXG5qUXVlcnkuZWFjaCgge1xuXHRtYXJnaW46IFwiXCIsXG5cdHBhZGRpbmc6IFwiXCIsXG5cdGJvcmRlcjogXCJXaWR0aFwiXG59LCBmdW5jdGlvbiggcHJlZml4LCBzdWZmaXggKSB7XG5cdGpRdWVyeS5jc3NIb29rc1sgcHJlZml4ICsgc3VmZml4IF0gPSB7XG5cdFx0ZXhwYW5kOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgaSA9IDAsXG5cdFx0XHRcdGV4cGFuZGVkID0ge30sXG5cblx0XHRcdFx0Ly8gQXNzdW1lcyBhIHNpbmdsZSBudW1iZXIgaWYgbm90IGEgc3RyaW5nXG5cdFx0XHRcdHBhcnRzID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUuc3BsaXQoIFwiIFwiICkgOiBbIHZhbHVlIF07XG5cblx0XHRcdGZvciAoIDsgaSA8IDQ7IGkrKyApIHtcblx0XHRcdFx0ZXhwYW5kZWRbIHByZWZpeCArIGNzc0V4cGFuZFsgaSBdICsgc3VmZml4IF0gPVxuXHRcdFx0XHRcdHBhcnRzWyBpIF0gfHwgcGFydHNbIGkgLSAyIF0gfHwgcGFydHNbIDAgXTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGV4cGFuZGVkO1xuXHRcdH1cblx0fTtcblxuXHRpZiAoIHByZWZpeCAhPT0gXCJtYXJnaW5cIiApIHtcblx0XHRqUXVlcnkuY3NzSG9va3NbIHByZWZpeCArIHN1ZmZpeCBdLnNldCA9IHNldFBvc2l0aXZlTnVtYmVyO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0Y3NzOiBmdW5jdGlvbiggbmFtZSwgdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xuXHRcdFx0dmFyIHN0eWxlcywgbGVuLFxuXHRcdFx0XHRtYXAgPSB7fSxcblx0XHRcdFx0aSA9IDA7XG5cblx0XHRcdGlmICggQXJyYXkuaXNBcnJheSggbmFtZSApICkge1xuXHRcdFx0XHRzdHlsZXMgPSBnZXRTdHlsZXMoIGVsZW0gKTtcblx0XHRcdFx0bGVuID0gbmFtZS5sZW5ndGg7XG5cblx0XHRcdFx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRcdFx0bWFwWyBuYW1lWyBpIF0gXSA9IGpRdWVyeS5jc3MoIGVsZW0sIG5hbWVbIGkgXSwgZmFsc2UsIHN0eWxlcyApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIG1hcDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgP1xuXHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIG5hbWUsIHZhbHVlICkgOlxuXHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCBuYW1lICk7XG5cdFx0fSwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH1cbn0gKTtcblxuXG5mdW5jdGlvbiBUd2VlbiggZWxlbSwgb3B0aW9ucywgcHJvcCwgZW5kLCBlYXNpbmcgKSB7XG5cdHJldHVybiBuZXcgVHdlZW4ucHJvdG90eXBlLmluaXQoIGVsZW0sIG9wdGlvbnMsIHByb3AsIGVuZCwgZWFzaW5nICk7XG59XG5qUXVlcnkuVHdlZW4gPSBUd2VlbjtcblxuVHdlZW4ucHJvdG90eXBlID0ge1xuXHRjb25zdHJ1Y3RvcjogVHdlZW4sXG5cdGluaXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBwcm9wLCBlbmQsIGVhc2luZywgdW5pdCApIHtcblx0XHR0aGlzLmVsZW0gPSBlbGVtO1xuXHRcdHRoaXMucHJvcCA9IHByb3A7XG5cdFx0dGhpcy5lYXNpbmcgPSBlYXNpbmcgfHwgalF1ZXJ5LmVhc2luZy5fZGVmYXVsdDtcblx0XHR0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXHRcdHRoaXMuc3RhcnQgPSB0aGlzLm5vdyA9IHRoaXMuY3VyKCk7XG5cdFx0dGhpcy5lbmQgPSBlbmQ7XG5cdFx0dGhpcy51bml0ID0gdW5pdCB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIHByb3AgXSA/IFwiXCIgOiBcInB4XCIgKTtcblx0fSxcblx0Y3VyOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgaG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdO1xuXG5cdFx0cmV0dXJuIGhvb2tzICYmIGhvb2tzLmdldCA/XG5cdFx0XHRob29rcy5nZXQoIHRoaXMgKSA6XG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KCB0aGlzICk7XG5cdH0sXG5cdHJ1bjogZnVuY3Rpb24oIHBlcmNlbnQgKSB7XG5cdFx0dmFyIGVhc2VkLFxuXHRcdFx0aG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdO1xuXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuZHVyYXRpb24gKSB7XG5cdFx0XHR0aGlzLnBvcyA9IGVhc2VkID0galF1ZXJ5LmVhc2luZ1sgdGhpcy5lYXNpbmcgXShcblx0XHRcdFx0cGVyY2VudCwgdGhpcy5vcHRpb25zLmR1cmF0aW9uICogcGVyY2VudCwgMCwgMSwgdGhpcy5vcHRpb25zLmR1cmF0aW9uXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnBvcyA9IGVhc2VkID0gcGVyY2VudDtcblx0XHR9XG5cdFx0dGhpcy5ub3cgPSAoIHRoaXMuZW5kIC0gdGhpcy5zdGFydCApICogZWFzZWQgKyB0aGlzLnN0YXJ0O1xuXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuc3RlcCApIHtcblx0XHRcdHRoaXMub3B0aW9ucy5zdGVwLmNhbGwoIHRoaXMuZWxlbSwgdGhpcy5ub3csIHRoaXMgKTtcblx0XHR9XG5cblx0XHRpZiAoIGhvb2tzICYmIGhvb2tzLnNldCApIHtcblx0XHRcdGhvb2tzLnNldCggdGhpcyApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuc2V0KCB0aGlzICk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59O1xuXG5Ud2Vlbi5wcm90b3R5cGUuaW5pdC5wcm90b3R5cGUgPSBUd2Vlbi5wcm90b3R5cGU7XG5cblR3ZWVuLnByb3BIb29rcyA9IHtcblx0X2RlZmF1bHQ6IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblx0XHRcdHZhciByZXN1bHQ7XG5cblx0XHRcdC8vIFVzZSBhIHByb3BlcnR5IG9uIHRoZSBlbGVtZW50IGRpcmVjdGx5IHdoZW4gaXQgaXMgbm90IGEgRE9NIGVsZW1lbnQsXG5cdFx0XHQvLyBvciB3aGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIHN0eWxlIHByb3BlcnR5IHRoYXQgZXhpc3RzLlxuXHRcdFx0aWYgKCB0d2Vlbi5lbGVtLm5vZGVUeXBlICE9PSAxIHx8XG5cdFx0XHRcdHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXSAhPSBudWxsICYmIHR3ZWVuLmVsZW0uc3R5bGVbIHR3ZWVuLnByb3AgXSA9PSBudWxsICkge1xuXHRcdFx0XHRyZXR1cm4gdHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBQYXNzaW5nIGFuIGVtcHR5IHN0cmluZyBhcyBhIDNyZCBwYXJhbWV0ZXIgdG8gLmNzcyB3aWxsIGF1dG9tYXRpY2FsbHlcblx0XHRcdC8vIGF0dGVtcHQgYSBwYXJzZUZsb2F0IGFuZCBmYWxsYmFjayB0byBhIHN0cmluZyBpZiB0aGUgcGFyc2UgZmFpbHMuXG5cdFx0XHQvLyBTaW1wbGUgdmFsdWVzIHN1Y2ggYXMgXCIxMHB4XCIgYXJlIHBhcnNlZCB0byBGbG9hdDtcblx0XHRcdC8vIGNvbXBsZXggdmFsdWVzIHN1Y2ggYXMgXCJyb3RhdGUoMXJhZClcIiBhcmUgcmV0dXJuZWQgYXMtaXMuXG5cdFx0XHRyZXN1bHQgPSBqUXVlcnkuY3NzKCB0d2Vlbi5lbGVtLCB0d2Vlbi5wcm9wLCBcIlwiICk7XG5cblx0XHRcdC8vIEVtcHR5IHN0cmluZ3MsIG51bGwsIHVuZGVmaW5lZCBhbmQgXCJhdXRvXCIgYXJlIGNvbnZlcnRlZCB0byAwLlxuXHRcdFx0cmV0dXJuICFyZXN1bHQgfHwgcmVzdWx0ID09PSBcImF1dG9cIiA/IDAgOiByZXN1bHQ7XG5cdFx0fSxcblx0XHRzZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblxuXHRcdFx0Ly8gVXNlIHN0ZXAgaG9vayBmb3IgYmFjayBjb21wYXQuXG5cdFx0XHQvLyBVc2UgY3NzSG9vayBpZiBpdHMgdGhlcmUuXG5cdFx0XHQvLyBVc2UgLnN0eWxlIGlmIGF2YWlsYWJsZSBhbmQgdXNlIHBsYWluIHByb3BlcnRpZXMgd2hlcmUgYXZhaWxhYmxlLlxuXHRcdFx0aWYgKCBqUXVlcnkuZnguc3RlcFsgdHdlZW4ucHJvcCBdICkge1xuXHRcdFx0XHRqUXVlcnkuZnguc3RlcFsgdHdlZW4ucHJvcCBdKCB0d2VlbiApO1xuXHRcdFx0fSBlbHNlIGlmICggdHdlZW4uZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAoXG5cdFx0XHRcdFx0alF1ZXJ5LmNzc0hvb2tzWyB0d2Vlbi5wcm9wIF0gfHxcblx0XHRcdFx0XHR0d2Vlbi5lbGVtLnN0eWxlWyBmaW5hbFByb3BOYW1lKCB0d2Vlbi5wcm9wICkgXSAhPSBudWxsICkgKSB7XG5cdFx0XHRcdGpRdWVyeS5zdHlsZSggdHdlZW4uZWxlbSwgdHdlZW4ucHJvcCwgdHdlZW4ubm93ICsgdHdlZW4udW5pdCApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdID0gdHdlZW4ubm93O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufTtcblxuLy8gU3VwcG9ydDogSUUgPD05IG9ubHlcbi8vIFBhbmljIGJhc2VkIGFwcHJvYWNoIHRvIHNldHRpbmcgdGhpbmdzIG9uIGRpc2Nvbm5lY3RlZCBub2Rlc1xuVHdlZW4ucHJvcEhvb2tzLnNjcm9sbFRvcCA9IFR3ZWVuLnByb3BIb29rcy5zY3JvbGxMZWZ0ID0ge1xuXHRzZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblx0XHRpZiAoIHR3ZWVuLmVsZW0ubm9kZVR5cGUgJiYgdHdlZW4uZWxlbS5wYXJlbnROb2RlICkge1xuXHRcdFx0dHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdID0gdHdlZW4ubm93O1xuXHRcdH1cblx0fVxufTtcblxualF1ZXJ5LmVhc2luZyA9IHtcblx0bGluZWFyOiBmdW5jdGlvbiggcCApIHtcblx0XHRyZXR1cm4gcDtcblx0fSxcblx0c3dpbmc6IGZ1bmN0aW9uKCBwICkge1xuXHRcdHJldHVybiAwLjUgLSBNYXRoLmNvcyggcCAqIE1hdGguUEkgKSAvIDI7XG5cdH0sXG5cdF9kZWZhdWx0OiBcInN3aW5nXCJcbn07XG5cbmpRdWVyeS5meCA9IFR3ZWVuLnByb3RvdHlwZS5pbml0O1xuXG4vLyBCYWNrIGNvbXBhdCA8MS44IGV4dGVuc2lvbiBwb2ludFxualF1ZXJ5LmZ4LnN0ZXAgPSB7fTtcblxuXG5cblxudmFyXG5cdGZ4Tm93LCBpblByb2dyZXNzLFxuXHRyZnh0eXBlcyA9IC9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxcblx0cnJ1biA9IC9xdWV1ZUhvb2tzJC87XG5cbmZ1bmN0aW9uIHNjaGVkdWxlKCkge1xuXHRpZiAoIGluUHJvZ3Jlc3MgKSB7XG5cdFx0aWYgKCBkb2N1bWVudC5oaWRkZW4gPT09IGZhbHNlICYmIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgKSB7XG5cdFx0XHR3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCBzY2hlZHVsZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR3aW5kb3cuc2V0VGltZW91dCggc2NoZWR1bGUsIGpRdWVyeS5meC5pbnRlcnZhbCApO1xuXHRcdH1cblxuXHRcdGpRdWVyeS5meC50aWNrKCk7XG5cdH1cbn1cblxuLy8gQW5pbWF0aW9ucyBjcmVhdGVkIHN5bmNocm9ub3VzbHkgd2lsbCBydW4gc3luY2hyb25vdXNseVxuZnVuY3Rpb24gY3JlYXRlRnhOb3coKSB7XG5cdHdpbmRvdy5zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHtcblx0XHRmeE5vdyA9IHVuZGVmaW5lZDtcblx0fSApO1xuXHRyZXR1cm4gKCBmeE5vdyA9IERhdGUubm93KCkgKTtcbn1cblxuLy8gR2VuZXJhdGUgcGFyYW1ldGVycyB0byBjcmVhdGUgYSBzdGFuZGFyZCBhbmltYXRpb25cbmZ1bmN0aW9uIGdlbkZ4KCB0eXBlLCBpbmNsdWRlV2lkdGggKSB7XG5cdHZhciB3aGljaCxcblx0XHRpID0gMCxcblx0XHRhdHRycyA9IHsgaGVpZ2h0OiB0eXBlIH07XG5cblx0Ly8gSWYgd2UgaW5jbHVkZSB3aWR0aCwgc3RlcCB2YWx1ZSBpcyAxIHRvIGRvIGFsbCBjc3NFeHBhbmQgdmFsdWVzLFxuXHQvLyBvdGhlcndpc2Ugc3RlcCB2YWx1ZSBpcyAyIHRvIHNraXAgb3ZlciBMZWZ0IGFuZCBSaWdodFxuXHRpbmNsdWRlV2lkdGggPSBpbmNsdWRlV2lkdGggPyAxIDogMDtcblx0Zm9yICggOyBpIDwgNDsgaSArPSAyIC0gaW5jbHVkZVdpZHRoICkge1xuXHRcdHdoaWNoID0gY3NzRXhwYW5kWyBpIF07XG5cdFx0YXR0cnNbIFwibWFyZ2luXCIgKyB3aGljaCBdID0gYXR0cnNbIFwicGFkZGluZ1wiICsgd2hpY2ggXSA9IHR5cGU7XG5cdH1cblxuXHRpZiAoIGluY2x1ZGVXaWR0aCApIHtcblx0XHRhdHRycy5vcGFjaXR5ID0gYXR0cnMud2lkdGggPSB0eXBlO1xuXHR9XG5cblx0cmV0dXJuIGF0dHJzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVUd2VlbiggdmFsdWUsIHByb3AsIGFuaW1hdGlvbiApIHtcblx0dmFyIHR3ZWVuLFxuXHRcdGNvbGxlY3Rpb24gPSAoIEFuaW1hdGlvbi50d2VlbmVyc1sgcHJvcCBdIHx8IFtdICkuY29uY2F0KCBBbmltYXRpb24udHdlZW5lcnNbIFwiKlwiIF0gKSxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG5cdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0aWYgKCAoIHR3ZWVuID0gY29sbGVjdGlvblsgaW5kZXggXS5jYWxsKCBhbmltYXRpb24sIHByb3AsIHZhbHVlICkgKSApIHtcblxuXHRcdFx0Ly8gV2UncmUgZG9uZSB3aXRoIHRoaXMgcHJvcGVydHlcblx0XHRcdHJldHVybiB0d2Vlbjtcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gZGVmYXVsdFByZWZpbHRlciggZWxlbSwgcHJvcHMsIG9wdHMgKSB7XG5cdHZhciBwcm9wLCB2YWx1ZSwgdG9nZ2xlLCBob29rcywgb2xkZmlyZSwgcHJvcFR3ZWVuLCByZXN0b3JlRGlzcGxheSwgZGlzcGxheSxcblx0XHRpc0JveCA9IFwid2lkdGhcIiBpbiBwcm9wcyB8fCBcImhlaWdodFwiIGluIHByb3BzLFxuXHRcdGFuaW0gPSB0aGlzLFxuXHRcdG9yaWcgPSB7fSxcblx0XHRzdHlsZSA9IGVsZW0uc3R5bGUsXG5cdFx0aGlkZGVuID0gZWxlbS5ub2RlVHlwZSAmJiBpc0hpZGRlbldpdGhpblRyZWUoIGVsZW0gKSxcblx0XHRkYXRhU2hvdyA9IGRhdGFQcml2LmdldCggZWxlbSwgXCJmeHNob3dcIiApO1xuXG5cdC8vIFF1ZXVlLXNraXBwaW5nIGFuaW1hdGlvbnMgaGlqYWNrIHRoZSBmeCBob29rc1xuXHRpZiAoICFvcHRzLnF1ZXVlICkge1xuXHRcdGhvb2tzID0galF1ZXJ5Ll9xdWV1ZUhvb2tzKCBlbGVtLCBcImZ4XCIgKTtcblx0XHRpZiAoIGhvb2tzLnVucXVldWVkID09IG51bGwgKSB7XG5cdFx0XHRob29rcy51bnF1ZXVlZCA9IDA7XG5cdFx0XHRvbGRmaXJlID0gaG9va3MuZW1wdHkuZmlyZTtcblx0XHRcdGhvb2tzLmVtcHR5LmZpcmUgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCAhaG9va3MudW5xdWV1ZWQgKSB7XG5cdFx0XHRcdFx0b2xkZmlyZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH1cblx0XHRob29rcy51bnF1ZXVlZCsrO1xuXG5cdFx0YW5pbS5hbHdheXMoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBFbnN1cmUgdGhlIGNvbXBsZXRlIGhhbmRsZXIgaXMgY2FsbGVkIGJlZm9yZSB0aGlzIGNvbXBsZXRlc1xuXHRcdFx0YW5pbS5hbHdheXMoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRob29rcy51bnF1ZXVlZC0tO1xuXHRcdFx0XHRpZiAoICFqUXVlcnkucXVldWUoIGVsZW0sIFwiZnhcIiApLmxlbmd0aCApIHtcblx0XHRcdFx0XHRob29rcy5lbXB0eS5maXJlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0XHR9ICk7XG5cdH1cblxuXHQvLyBEZXRlY3Qgc2hvdy9oaWRlIGFuaW1hdGlvbnNcblx0Zm9yICggcHJvcCBpbiBwcm9wcyApIHtcblx0XHR2YWx1ZSA9IHByb3BzWyBwcm9wIF07XG5cdFx0aWYgKCByZnh0eXBlcy50ZXN0KCB2YWx1ZSApICkge1xuXHRcdFx0ZGVsZXRlIHByb3BzWyBwcm9wIF07XG5cdFx0XHR0b2dnbGUgPSB0b2dnbGUgfHwgdmFsdWUgPT09IFwidG9nZ2xlXCI7XG5cdFx0XHRpZiAoIHZhbHVlID09PSAoIGhpZGRlbiA/IFwiaGlkZVwiIDogXCJzaG93XCIgKSApIHtcblxuXHRcdFx0XHQvLyBQcmV0ZW5kIHRvIGJlIGhpZGRlbiBpZiB0aGlzIGlzIGEgXCJzaG93XCIgYW5kXG5cdFx0XHRcdC8vIHRoZXJlIGlzIHN0aWxsIGRhdGEgZnJvbSBhIHN0b3BwZWQgc2hvdy9oaWRlXG5cdFx0XHRcdGlmICggdmFsdWUgPT09IFwic2hvd1wiICYmIGRhdGFTaG93ICYmIGRhdGFTaG93WyBwcm9wIF0gIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRoaWRkZW4gPSB0cnVlO1xuXG5cdFx0XHRcdC8vIElnbm9yZSBhbGwgb3RoZXIgbm8tb3Agc2hvdy9oaWRlIGRhdGFcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0b3JpZ1sgcHJvcCBdID0gZGF0YVNob3cgJiYgZGF0YVNob3dbIHByb3AgXSB8fCBqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AgKTtcblx0XHR9XG5cdH1cblxuXHQvLyBCYWlsIG91dCBpZiB0aGlzIGlzIGEgbm8tb3AgbGlrZSAuaGlkZSgpLmhpZGUoKVxuXHRwcm9wVHdlZW4gPSAhalF1ZXJ5LmlzRW1wdHlPYmplY3QoIHByb3BzICk7XG5cdGlmICggIXByb3BUd2VlbiAmJiBqUXVlcnkuaXNFbXB0eU9iamVjdCggb3JpZyApICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIFJlc3RyaWN0IFwib3ZlcmZsb3dcIiBhbmQgXCJkaXNwbGF5XCIgc3R5bGVzIGR1cmluZyBib3ggYW5pbWF0aW9uc1xuXHRpZiAoIGlzQm94ICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA8PTkgLSAxMSwgRWRnZSAxMiAtIDE1XG5cdFx0Ly8gUmVjb3JkIGFsbCAzIG92ZXJmbG93IGF0dHJpYnV0ZXMgYmVjYXVzZSBJRSBkb2VzIG5vdCBpbmZlciB0aGUgc2hvcnRoYW5kXG5cdFx0Ly8gZnJvbSBpZGVudGljYWxseS12YWx1ZWQgb3ZlcmZsb3dYIGFuZCBvdmVyZmxvd1kgYW5kIEVkZ2UganVzdCBtaXJyb3JzXG5cdFx0Ly8gdGhlIG92ZXJmbG93WCB2YWx1ZSB0aGVyZS5cblx0XHRvcHRzLm92ZXJmbG93ID0gWyBzdHlsZS5vdmVyZmxvdywgc3R5bGUub3ZlcmZsb3dYLCBzdHlsZS5vdmVyZmxvd1kgXTtcblxuXHRcdC8vIElkZW50aWZ5IGEgZGlzcGxheSB0eXBlLCBwcmVmZXJyaW5nIG9sZCBzaG93L2hpZGUgZGF0YSBvdmVyIHRoZSBDU1MgY2FzY2FkZVxuXHRcdHJlc3RvcmVEaXNwbGF5ID0gZGF0YVNob3cgJiYgZGF0YVNob3cuZGlzcGxheTtcblx0XHRpZiAoIHJlc3RvcmVEaXNwbGF5ID09IG51bGwgKSB7XG5cdFx0XHRyZXN0b3JlRGlzcGxheSA9IGRhdGFQcml2LmdldCggZWxlbSwgXCJkaXNwbGF5XCIgKTtcblx0XHR9XG5cdFx0ZGlzcGxheSA9IGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiICk7XG5cdFx0aWYgKCBkaXNwbGF5ID09PSBcIm5vbmVcIiApIHtcblx0XHRcdGlmICggcmVzdG9yZURpc3BsYXkgKSB7XG5cdFx0XHRcdGRpc3BsYXkgPSByZXN0b3JlRGlzcGxheTtcblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0Ly8gR2V0IG5vbmVtcHR5IHZhbHVlKHMpIGJ5IHRlbXBvcmFyaWx5IGZvcmNpbmcgdmlzaWJpbGl0eVxuXHRcdFx0XHRzaG93SGlkZSggWyBlbGVtIF0sIHRydWUgKTtcblx0XHRcdFx0cmVzdG9yZURpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXkgfHwgcmVzdG9yZURpc3BsYXk7XG5cdFx0XHRcdGRpc3BsYXkgPSBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApO1xuXHRcdFx0XHRzaG93SGlkZSggWyBlbGVtIF0gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBBbmltYXRlIGlubGluZSBlbGVtZW50cyBhcyBpbmxpbmUtYmxvY2tcblx0XHRpZiAoIGRpc3BsYXkgPT09IFwiaW5saW5lXCIgfHwgZGlzcGxheSA9PT0gXCJpbmxpbmUtYmxvY2tcIiAmJiByZXN0b3JlRGlzcGxheSAhPSBudWxsICkge1xuXHRcdFx0aWYgKCBqUXVlcnkuY3NzKCBlbGVtLCBcImZsb2F0XCIgKSA9PT0gXCJub25lXCIgKSB7XG5cblx0XHRcdFx0Ly8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgZGlzcGxheSB2YWx1ZSBhdCB0aGUgZW5kIG9mIHB1cmUgc2hvdy9oaWRlIGFuaW1hdGlvbnNcblx0XHRcdFx0aWYgKCAhcHJvcFR3ZWVuICkge1xuXHRcdFx0XHRcdGFuaW0uZG9uZSggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRzdHlsZS5kaXNwbGF5ID0gcmVzdG9yZURpc3BsYXk7XG5cdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdGlmICggcmVzdG9yZURpc3BsYXkgPT0gbnVsbCApIHtcblx0XHRcdFx0XHRcdGRpc3BsYXkgPSBzdHlsZS5kaXNwbGF5O1xuXHRcdFx0XHRcdFx0cmVzdG9yZURpc3BsYXkgPSBkaXNwbGF5ID09PSBcIm5vbmVcIiA/IFwiXCIgOiBkaXNwbGF5O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRzdHlsZS5kaXNwbGF5ID0gXCJpbmxpbmUtYmxvY2tcIjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpZiAoIG9wdHMub3ZlcmZsb3cgKSB7XG5cdFx0c3R5bGUub3ZlcmZsb3cgPSBcImhpZGRlblwiO1xuXHRcdGFuaW0uYWx3YXlzKCBmdW5jdGlvbigpIHtcblx0XHRcdHN0eWxlLm92ZXJmbG93ID0gb3B0cy5vdmVyZmxvd1sgMCBdO1xuXHRcdFx0c3R5bGUub3ZlcmZsb3dYID0gb3B0cy5vdmVyZmxvd1sgMSBdO1xuXHRcdFx0c3R5bGUub3ZlcmZsb3dZID0gb3B0cy5vdmVyZmxvd1sgMiBdO1xuXHRcdH0gKTtcblx0fVxuXG5cdC8vIEltcGxlbWVudCBzaG93L2hpZGUgYW5pbWF0aW9uc1xuXHRwcm9wVHdlZW4gPSBmYWxzZTtcblx0Zm9yICggcHJvcCBpbiBvcmlnICkge1xuXG5cdFx0Ly8gR2VuZXJhbCBzaG93L2hpZGUgc2V0dXAgZm9yIHRoaXMgZWxlbWVudCBhbmltYXRpb25cblx0XHRpZiAoICFwcm9wVHdlZW4gKSB7XG5cdFx0XHRpZiAoIGRhdGFTaG93ICkge1xuXHRcdFx0XHRpZiAoIFwiaGlkZGVuXCIgaW4gZGF0YVNob3cgKSB7XG5cdFx0XHRcdFx0aGlkZGVuID0gZGF0YVNob3cuaGlkZGVuO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhU2hvdyA9IGRhdGFQcml2LmFjY2VzcyggZWxlbSwgXCJmeHNob3dcIiwgeyBkaXNwbGF5OiByZXN0b3JlRGlzcGxheSB9ICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN0b3JlIGhpZGRlbi92aXNpYmxlIGZvciB0b2dnbGUgc28gYC5zdG9wKCkudG9nZ2xlKClgIFwicmV2ZXJzZXNcIlxuXHRcdFx0aWYgKCB0b2dnbGUgKSB7XG5cdFx0XHRcdGRhdGFTaG93LmhpZGRlbiA9ICFoaWRkZW47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNob3cgZWxlbWVudHMgYmVmb3JlIGFuaW1hdGluZyB0aGVtXG5cdFx0XHRpZiAoIGhpZGRlbiApIHtcblx0XHRcdFx0c2hvd0hpZGUoIFsgZWxlbSBdLCB0cnVlICk7XG5cdFx0XHR9XG5cblx0XHRcdC8qIGVzbGludC1kaXNhYmxlIG5vLWxvb3AtZnVuYyAqL1xuXG5cdFx0XHRhbmltLmRvbmUoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvKiBlc2xpbnQtZW5hYmxlIG5vLWxvb3AtZnVuYyAqL1xuXG5cdFx0XHRcdC8vIFRoZSBmaW5hbCBzdGVwIG9mIGEgXCJoaWRlXCIgYW5pbWF0aW9uIGlzIGFjdHVhbGx5IGhpZGluZyB0aGUgZWxlbWVudFxuXHRcdFx0XHRpZiAoICFoaWRkZW4gKSB7XG5cdFx0XHRcdFx0c2hvd0hpZGUoIFsgZWxlbSBdICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBlbGVtLCBcImZ4c2hvd1wiICk7XG5cdFx0XHRcdGZvciAoIHByb3AgaW4gb3JpZyApIHtcblx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AsIG9yaWdbIHByb3AgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0Ly8gUGVyLXByb3BlcnR5IHNldHVwXG5cdFx0cHJvcFR3ZWVuID0gY3JlYXRlVHdlZW4oIGhpZGRlbiA/IGRhdGFTaG93WyBwcm9wIF0gOiAwLCBwcm9wLCBhbmltICk7XG5cdFx0aWYgKCAhKCBwcm9wIGluIGRhdGFTaG93ICkgKSB7XG5cdFx0XHRkYXRhU2hvd1sgcHJvcCBdID0gcHJvcFR3ZWVuLnN0YXJ0O1xuXHRcdFx0aWYgKCBoaWRkZW4gKSB7XG5cdFx0XHRcdHByb3BUd2Vlbi5lbmQgPSBwcm9wVHdlZW4uc3RhcnQ7XG5cdFx0XHRcdHByb3BUd2Vlbi5zdGFydCA9IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIHByb3BGaWx0ZXIoIHByb3BzLCBzcGVjaWFsRWFzaW5nICkge1xuXHR2YXIgaW5kZXgsIG5hbWUsIGVhc2luZywgdmFsdWUsIGhvb2tzO1xuXG5cdC8vIGNhbWVsQ2FzZSwgc3BlY2lhbEVhc2luZyBhbmQgZXhwYW5kIGNzc0hvb2sgcGFzc1xuXHRmb3IgKCBpbmRleCBpbiBwcm9wcyApIHtcblx0XHRuYW1lID0gY2FtZWxDYXNlKCBpbmRleCApO1xuXHRcdGVhc2luZyA9IHNwZWNpYWxFYXNpbmdbIG5hbWUgXTtcblx0XHR2YWx1ZSA9IHByb3BzWyBpbmRleCBdO1xuXHRcdGlmICggQXJyYXkuaXNBcnJheSggdmFsdWUgKSApIHtcblx0XHRcdGVhc2luZyA9IHZhbHVlWyAxIF07XG5cdFx0XHR2YWx1ZSA9IHByb3BzWyBpbmRleCBdID0gdmFsdWVbIDAgXTtcblx0XHR9XG5cblx0XHRpZiAoIGluZGV4ICE9PSBuYW1lICkge1xuXHRcdFx0cHJvcHNbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0ZGVsZXRlIHByb3BzWyBpbmRleCBdO1xuXHRcdH1cblxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF07XG5cdFx0aWYgKCBob29rcyAmJiBcImV4cGFuZFwiIGluIGhvb2tzICkge1xuXHRcdFx0dmFsdWUgPSBob29rcy5leHBhbmQoIHZhbHVlICk7XG5cdFx0XHRkZWxldGUgcHJvcHNbIG5hbWUgXTtcblxuXHRcdFx0Ly8gTm90IHF1aXRlICQuZXh0ZW5kLCB0aGlzIHdvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBrZXlzLlxuXHRcdFx0Ly8gUmV1c2luZyAnaW5kZXgnIGJlY2F1c2Ugd2UgaGF2ZSB0aGUgY29ycmVjdCBcIm5hbWVcIlxuXHRcdFx0Zm9yICggaW5kZXggaW4gdmFsdWUgKSB7XG5cdFx0XHRcdGlmICggISggaW5kZXggaW4gcHJvcHMgKSApIHtcblx0XHRcdFx0XHRwcm9wc1sgaW5kZXggXSA9IHZhbHVlWyBpbmRleCBdO1xuXHRcdFx0XHRcdHNwZWNpYWxFYXNpbmdbIGluZGV4IF0gPSBlYXNpbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0c3BlY2lhbEVhc2luZ1sgbmFtZSBdID0gZWFzaW5nO1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBBbmltYXRpb24oIGVsZW0sIHByb3BlcnRpZXMsIG9wdGlvbnMgKSB7XG5cdHZhciByZXN1bHQsXG5cdFx0c3RvcHBlZCxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gQW5pbWF0aW9uLnByZWZpbHRlcnMubGVuZ3RoLFxuXHRcdGRlZmVycmVkID0galF1ZXJ5LkRlZmVycmVkKCkuYWx3YXlzKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gRG9uJ3QgbWF0Y2ggZWxlbSBpbiB0aGUgOmFuaW1hdGVkIHNlbGVjdG9yXG5cdFx0XHRkZWxldGUgdGljay5lbGVtO1xuXHRcdH0gKSxcblx0XHR0aWNrID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIHN0b3BwZWQgKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRcdHZhciBjdXJyZW50VGltZSA9IGZ4Tm93IHx8IGNyZWF0ZUZ4Tm93KCksXG5cdFx0XHRcdHJlbWFpbmluZyA9IE1hdGgubWF4KCAwLCBhbmltYXRpb24uc3RhcnRUaW1lICsgYW5pbWF0aW9uLmR1cmF0aW9uIC0gY3VycmVudFRpbWUgKSxcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDIuMyBvbmx5XG5cdFx0XHRcdC8vIEFyY2hhaWMgY3Jhc2ggYnVnIHdvbid0IGFsbG93IHVzIHRvIHVzZSBgMSAtICggMC41IHx8IDAgKWAgKCMxMjQ5Nylcblx0XHRcdFx0dGVtcCA9IHJlbWFpbmluZyAvIGFuaW1hdGlvbi5kdXJhdGlvbiB8fCAwLFxuXHRcdFx0XHRwZXJjZW50ID0gMSAtIHRlbXAsXG5cdFx0XHRcdGluZGV4ID0gMCxcblx0XHRcdFx0bGVuZ3RoID0gYW5pbWF0aW9uLnR3ZWVucy5sZW5ndGg7XG5cblx0XHRcdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0XHRcdGFuaW1hdGlvbi50d2VlbnNbIGluZGV4IF0ucnVuKCBwZXJjZW50ICk7XG5cdFx0XHR9XG5cblx0XHRcdGRlZmVycmVkLm5vdGlmeVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCBwZXJjZW50LCByZW1haW5pbmcgXSApO1xuXG5cdFx0XHQvLyBJZiB0aGVyZSdzIG1vcmUgdG8gZG8sIHlpZWxkXG5cdFx0XHRpZiAoIHBlcmNlbnQgPCAxICYmIGxlbmd0aCApIHtcblx0XHRcdFx0cmV0dXJuIHJlbWFpbmluZztcblx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgdGhpcyB3YXMgYW4gZW1wdHkgYW5pbWF0aW9uLCBzeW50aGVzaXplIGEgZmluYWwgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uXG5cdFx0XHRpZiAoICFsZW5ndGggKSB7XG5cdFx0XHRcdGRlZmVycmVkLm5vdGlmeVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCAxLCAwIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmVzb2x2ZSB0aGUgYW5pbWF0aW9uIGFuZCByZXBvcnQgaXRzIGNvbmNsdXNpb25cblx0XHRcdGRlZmVycmVkLnJlc29sdmVXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiBdICk7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fSxcblx0XHRhbmltYXRpb24gPSBkZWZlcnJlZC5wcm9taXNlKCB7XG5cdFx0XHRlbGVtOiBlbGVtLFxuXHRcdFx0cHJvcHM6IGpRdWVyeS5leHRlbmQoIHt9LCBwcm9wZXJ0aWVzICksXG5cdFx0XHRvcHRzOiBqUXVlcnkuZXh0ZW5kKCB0cnVlLCB7XG5cdFx0XHRcdHNwZWNpYWxFYXNpbmc6IHt9LFxuXHRcdFx0XHRlYXNpbmc6IGpRdWVyeS5lYXNpbmcuX2RlZmF1bHRcblx0XHRcdH0sIG9wdGlvbnMgKSxcblx0XHRcdG9yaWdpbmFsUHJvcGVydGllczogcHJvcGVydGllcyxcblx0XHRcdG9yaWdpbmFsT3B0aW9uczogb3B0aW9ucyxcblx0XHRcdHN0YXJ0VGltZTogZnhOb3cgfHwgY3JlYXRlRnhOb3coKSxcblx0XHRcdGR1cmF0aW9uOiBvcHRpb25zLmR1cmF0aW9uLFxuXHRcdFx0dHdlZW5zOiBbXSxcblx0XHRcdGNyZWF0ZVR3ZWVuOiBmdW5jdGlvbiggcHJvcCwgZW5kICkge1xuXHRcdFx0XHR2YXIgdHdlZW4gPSBqUXVlcnkuVHdlZW4oIGVsZW0sIGFuaW1hdGlvbi5vcHRzLCBwcm9wLCBlbmQsXG5cdFx0XHRcdFx0XHRhbmltYXRpb24ub3B0cy5zcGVjaWFsRWFzaW5nWyBwcm9wIF0gfHwgYW5pbWF0aW9uLm9wdHMuZWFzaW5nICk7XG5cdFx0XHRcdGFuaW1hdGlvbi50d2VlbnMucHVzaCggdHdlZW4gKTtcblx0XHRcdFx0cmV0dXJuIHR3ZWVuO1xuXHRcdFx0fSxcblx0XHRcdHN0b3A6IGZ1bmN0aW9uKCBnb3RvRW5kICkge1xuXHRcdFx0XHR2YXIgaW5kZXggPSAwLFxuXG5cdFx0XHRcdFx0Ly8gSWYgd2UgYXJlIGdvaW5nIHRvIHRoZSBlbmQsIHdlIHdhbnQgdG8gcnVuIGFsbCB0aGUgdHdlZW5zXG5cdFx0XHRcdFx0Ly8gb3RoZXJ3aXNlIHdlIHNraXAgdGhpcyBwYXJ0XG5cdFx0XHRcdFx0bGVuZ3RoID0gZ290b0VuZCA/IGFuaW1hdGlvbi50d2VlbnMubGVuZ3RoIDogMDtcblx0XHRcdFx0aWYgKCBzdG9wcGVkICkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHN0b3BwZWQgPSB0cnVlO1xuXHRcdFx0XHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdFx0XHRcdGFuaW1hdGlvbi50d2VlbnNbIGluZGV4IF0ucnVuKCAxICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBSZXNvbHZlIHdoZW4gd2UgcGxheWVkIHRoZSBsYXN0IGZyYW1lOyBvdGhlcndpc2UsIHJlamVjdFxuXHRcdFx0XHRpZiAoIGdvdG9FbmQgKSB7XG5cdFx0XHRcdFx0ZGVmZXJyZWQubm90aWZ5V2l0aCggZWxlbSwgWyBhbmltYXRpb24sIDEsIDAgXSApO1xuXHRcdFx0XHRcdGRlZmVycmVkLnJlc29sdmVXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgZ290b0VuZCBdICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZGVmZXJyZWQucmVqZWN0V2l0aCggZWxlbSwgWyBhbmltYXRpb24sIGdvdG9FbmQgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0gKSxcblx0XHRwcm9wcyA9IGFuaW1hdGlvbi5wcm9wcztcblxuXHRwcm9wRmlsdGVyKCBwcm9wcywgYW5pbWF0aW9uLm9wdHMuc3BlY2lhbEVhc2luZyApO1xuXG5cdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0cmVzdWx0ID0gQW5pbWF0aW9uLnByZWZpbHRlcnNbIGluZGV4IF0uY2FsbCggYW5pbWF0aW9uLCBlbGVtLCBwcm9wcywgYW5pbWF0aW9uLm9wdHMgKTtcblx0XHRpZiAoIHJlc3VsdCApIHtcblx0XHRcdGlmICggaXNGdW5jdGlvbiggcmVzdWx0LnN0b3AgKSApIHtcblx0XHRcdFx0alF1ZXJ5Ll9xdWV1ZUhvb2tzKCBhbmltYXRpb24uZWxlbSwgYW5pbWF0aW9uLm9wdHMucXVldWUgKS5zdG9wID1cblx0XHRcdFx0XHRyZXN1bHQuc3RvcC5iaW5kKCByZXN1bHQgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fVxuXHR9XG5cblx0alF1ZXJ5Lm1hcCggcHJvcHMsIGNyZWF0ZVR3ZWVuLCBhbmltYXRpb24gKTtcblxuXHRpZiAoIGlzRnVuY3Rpb24oIGFuaW1hdGlvbi5vcHRzLnN0YXJ0ICkgKSB7XG5cdFx0YW5pbWF0aW9uLm9wdHMuc3RhcnQuY2FsbCggZWxlbSwgYW5pbWF0aW9uICk7XG5cdH1cblxuXHQvLyBBdHRhY2ggY2FsbGJhY2tzIGZyb20gb3B0aW9uc1xuXHRhbmltYXRpb25cblx0XHQucHJvZ3Jlc3MoIGFuaW1hdGlvbi5vcHRzLnByb2dyZXNzIClcblx0XHQuZG9uZSggYW5pbWF0aW9uLm9wdHMuZG9uZSwgYW5pbWF0aW9uLm9wdHMuY29tcGxldGUgKVxuXHRcdC5mYWlsKCBhbmltYXRpb24ub3B0cy5mYWlsIClcblx0XHQuYWx3YXlzKCBhbmltYXRpb24ub3B0cy5hbHdheXMgKTtcblxuXHRqUXVlcnkuZngudGltZXIoXG5cdFx0alF1ZXJ5LmV4dGVuZCggdGljaywge1xuXHRcdFx0ZWxlbTogZWxlbSxcblx0XHRcdGFuaW06IGFuaW1hdGlvbixcblx0XHRcdHF1ZXVlOiBhbmltYXRpb24ub3B0cy5xdWV1ZVxuXHRcdH0gKVxuXHQpO1xuXG5cdHJldHVybiBhbmltYXRpb247XG59XG5cbmpRdWVyeS5BbmltYXRpb24gPSBqUXVlcnkuZXh0ZW5kKCBBbmltYXRpb24sIHtcblxuXHR0d2VlbmVyczoge1xuXHRcdFwiKlwiOiBbIGZ1bmN0aW9uKCBwcm9wLCB2YWx1ZSApIHtcblx0XHRcdHZhciB0d2VlbiA9IHRoaXMuY3JlYXRlVHdlZW4oIHByb3AsIHZhbHVlICk7XG5cdFx0XHRhZGp1c3RDU1MoIHR3ZWVuLmVsZW0sIHByb3AsIHJjc3NOdW0uZXhlYyggdmFsdWUgKSwgdHdlZW4gKTtcblx0XHRcdHJldHVybiB0d2Vlbjtcblx0XHR9IF1cblx0fSxcblxuXHR0d2VlbmVyOiBmdW5jdGlvbiggcHJvcHMsIGNhbGxiYWNrICkge1xuXHRcdGlmICggaXNGdW5jdGlvbiggcHJvcHMgKSApIHtcblx0XHRcdGNhbGxiYWNrID0gcHJvcHM7XG5cdFx0XHRwcm9wcyA9IFsgXCIqXCIgXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cHJvcHMgPSBwcm9wcy5tYXRjaCggcm5vdGh0bWx3aGl0ZSApO1xuXHRcdH1cblxuXHRcdHZhciBwcm9wLFxuXHRcdFx0aW5kZXggPSAwLFxuXHRcdFx0bGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG5cdFx0Zm9yICggOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRcdHByb3AgPSBwcm9wc1sgaW5kZXggXTtcblx0XHRcdEFuaW1hdGlvbi50d2VlbmVyc1sgcHJvcCBdID0gQW5pbWF0aW9uLnR3ZWVuZXJzWyBwcm9wIF0gfHwgW107XG5cdFx0XHRBbmltYXRpb24udHdlZW5lcnNbIHByb3AgXS51bnNoaWZ0KCBjYWxsYmFjayApO1xuXHRcdH1cblx0fSxcblxuXHRwcmVmaWx0ZXJzOiBbIGRlZmF1bHRQcmVmaWx0ZXIgXSxcblxuXHRwcmVmaWx0ZXI6IGZ1bmN0aW9uKCBjYWxsYmFjaywgcHJlcGVuZCApIHtcblx0XHRpZiAoIHByZXBlbmQgKSB7XG5cdFx0XHRBbmltYXRpb24ucHJlZmlsdGVycy51bnNoaWZ0KCBjYWxsYmFjayApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRBbmltYXRpb24ucHJlZmlsdGVycy5wdXNoKCBjYWxsYmFjayApO1xuXHRcdH1cblx0fVxufSApO1xuXG5qUXVlcnkuc3BlZWQgPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgZm4gKSB7XG5cdHZhciBvcHQgPSBzcGVlZCAmJiB0eXBlb2Ygc3BlZWQgPT09IFwib2JqZWN0XCIgPyBqUXVlcnkuZXh0ZW5kKCB7fSwgc3BlZWQgKSA6IHtcblx0XHRjb21wbGV0ZTogZm4gfHwgIWZuICYmIGVhc2luZyB8fFxuXHRcdFx0aXNGdW5jdGlvbiggc3BlZWQgKSAmJiBzcGVlZCxcblx0XHRkdXJhdGlvbjogc3BlZWQsXG5cdFx0ZWFzaW5nOiBmbiAmJiBlYXNpbmcgfHwgZWFzaW5nICYmICFpc0Z1bmN0aW9uKCBlYXNpbmcgKSAmJiBlYXNpbmdcblx0fTtcblxuXHQvLyBHbyB0byB0aGUgZW5kIHN0YXRlIGlmIGZ4IGFyZSBvZmZcblx0aWYgKCBqUXVlcnkuZngub2ZmICkge1xuXHRcdG9wdC5kdXJhdGlvbiA9IDA7XG5cblx0fSBlbHNlIHtcblx0XHRpZiAoIHR5cGVvZiBvcHQuZHVyYXRpb24gIT09IFwibnVtYmVyXCIgKSB7XG5cdFx0XHRpZiAoIG9wdC5kdXJhdGlvbiBpbiBqUXVlcnkuZnguc3BlZWRzICkge1xuXHRcdFx0XHRvcHQuZHVyYXRpb24gPSBqUXVlcnkuZnguc3BlZWRzWyBvcHQuZHVyYXRpb24gXTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b3B0LmR1cmF0aW9uID0galF1ZXJ5LmZ4LnNwZWVkcy5fZGVmYXVsdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBOb3JtYWxpemUgb3B0LnF1ZXVlIC0gdHJ1ZS91bmRlZmluZWQvbnVsbCAtPiBcImZ4XCJcblx0aWYgKCBvcHQucXVldWUgPT0gbnVsbCB8fCBvcHQucXVldWUgPT09IHRydWUgKSB7XG5cdFx0b3B0LnF1ZXVlID0gXCJmeFwiO1xuXHR9XG5cblx0Ly8gUXVldWVpbmdcblx0b3B0Lm9sZCA9IG9wdC5jb21wbGV0ZTtcblxuXHRvcHQuY29tcGxldGUgPSBmdW5jdGlvbigpIHtcblx0XHRpZiAoIGlzRnVuY3Rpb24oIG9wdC5vbGQgKSApIHtcblx0XHRcdG9wdC5vbGQuY2FsbCggdGhpcyApO1xuXHRcdH1cblxuXHRcdGlmICggb3B0LnF1ZXVlICkge1xuXHRcdFx0alF1ZXJ5LmRlcXVldWUoIHRoaXMsIG9wdC5xdWV1ZSApO1xuXHRcdH1cblx0fTtcblxuXHRyZXR1cm4gb3B0O1xufTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRmYWRlVG86IGZ1bmN0aW9uKCBzcGVlZCwgdG8sIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cblx0XHQvLyBTaG93IGFueSBoaWRkZW4gZWxlbWVudHMgYWZ0ZXIgc2V0dGluZyBvcGFjaXR5IHRvIDBcblx0XHRyZXR1cm4gdGhpcy5maWx0ZXIoIGlzSGlkZGVuV2l0aGluVHJlZSApLmNzcyggXCJvcGFjaXR5XCIsIDAgKS5zaG93KClcblxuXHRcdFx0Ly8gQW5pbWF0ZSB0byB0aGUgdmFsdWUgc3BlY2lmaWVkXG5cdFx0XHQuZW5kKCkuYW5pbWF0ZSggeyBvcGFjaXR5OiB0byB9LCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApO1xuXHR9LFxuXHRhbmltYXRlOiBmdW5jdGlvbiggcHJvcCwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cdFx0dmFyIGVtcHR5ID0galF1ZXJ5LmlzRW1wdHlPYmplY3QoIHByb3AgKSxcblx0XHRcdG9wdGFsbCA9IGpRdWVyeS5zcGVlZCggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSxcblx0XHRcdGRvQW5pbWF0aW9uID0gZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0Ly8gT3BlcmF0ZSBvbiBhIGNvcHkgb2YgcHJvcCBzbyBwZXItcHJvcGVydHkgZWFzaW5nIHdvbid0IGJlIGxvc3Rcblx0XHRcdFx0dmFyIGFuaW0gPSBBbmltYXRpb24oIHRoaXMsIGpRdWVyeS5leHRlbmQoIHt9LCBwcm9wICksIG9wdGFsbCApO1xuXG5cdFx0XHRcdC8vIEVtcHR5IGFuaW1hdGlvbnMsIG9yIGZpbmlzaGluZyByZXNvbHZlcyBpbW1lZGlhdGVseVxuXHRcdFx0XHRpZiAoIGVtcHR5IHx8IGRhdGFQcml2LmdldCggdGhpcywgXCJmaW5pc2hcIiApICkge1xuXHRcdFx0XHRcdGFuaW0uc3RvcCggdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0ZG9BbmltYXRpb24uZmluaXNoID0gZG9BbmltYXRpb247XG5cblx0XHRyZXR1cm4gZW1wdHkgfHwgb3B0YWxsLnF1ZXVlID09PSBmYWxzZSA/XG5cdFx0XHR0aGlzLmVhY2goIGRvQW5pbWF0aW9uICkgOlxuXHRcdFx0dGhpcy5xdWV1ZSggb3B0YWxsLnF1ZXVlLCBkb0FuaW1hdGlvbiApO1xuXHR9LFxuXHRzdG9wOiBmdW5jdGlvbiggdHlwZSwgY2xlYXJRdWV1ZSwgZ290b0VuZCApIHtcblx0XHR2YXIgc3RvcFF1ZXVlID0gZnVuY3Rpb24oIGhvb2tzICkge1xuXHRcdFx0dmFyIHN0b3AgPSBob29rcy5zdG9wO1xuXHRcdFx0ZGVsZXRlIGhvb2tzLnN0b3A7XG5cdFx0XHRzdG9wKCBnb3RvRW5kICk7XG5cdFx0fTtcblxuXHRcdGlmICggdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRnb3RvRW5kID0gY2xlYXJRdWV1ZTtcblx0XHRcdGNsZWFyUXVldWUgPSB0eXBlO1xuXHRcdFx0dHlwZSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0aWYgKCBjbGVhclF1ZXVlICkge1xuXHRcdFx0dGhpcy5xdWV1ZSggdHlwZSB8fCBcImZ4XCIsIFtdICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgZGVxdWV1ZSA9IHRydWUsXG5cdFx0XHRcdGluZGV4ID0gdHlwZSAhPSBudWxsICYmIHR5cGUgKyBcInF1ZXVlSG9va3NcIixcblx0XHRcdFx0dGltZXJzID0galF1ZXJ5LnRpbWVycyxcblx0XHRcdFx0ZGF0YSA9IGRhdGFQcml2LmdldCggdGhpcyApO1xuXG5cdFx0XHRpZiAoIGluZGV4ICkge1xuXHRcdFx0XHRpZiAoIGRhdGFbIGluZGV4IF0gJiYgZGF0YVsgaW5kZXggXS5zdG9wICkge1xuXHRcdFx0XHRcdHN0b3BRdWV1ZSggZGF0YVsgaW5kZXggXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRmb3IgKCBpbmRleCBpbiBkYXRhICkge1xuXHRcdFx0XHRcdGlmICggZGF0YVsgaW5kZXggXSAmJiBkYXRhWyBpbmRleCBdLnN0b3AgJiYgcnJ1bi50ZXN0KCBpbmRleCApICkge1xuXHRcdFx0XHRcdFx0c3RvcFF1ZXVlKCBkYXRhWyBpbmRleCBdICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGZvciAoIGluZGV4ID0gdGltZXJzLmxlbmd0aDsgaW5kZXgtLTsgKSB7XG5cdFx0XHRcdGlmICggdGltZXJzWyBpbmRleCBdLmVsZW0gPT09IHRoaXMgJiZcblx0XHRcdFx0XHQoIHR5cGUgPT0gbnVsbCB8fCB0aW1lcnNbIGluZGV4IF0ucXVldWUgPT09IHR5cGUgKSApIHtcblxuXHRcdFx0XHRcdHRpbWVyc1sgaW5kZXggXS5hbmltLnN0b3AoIGdvdG9FbmQgKTtcblx0XHRcdFx0XHRkZXF1ZXVlID0gZmFsc2U7XG5cdFx0XHRcdFx0dGltZXJzLnNwbGljZSggaW5kZXgsIDEgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdGFydCB0aGUgbmV4dCBpbiB0aGUgcXVldWUgaWYgdGhlIGxhc3Qgc3RlcCB3YXNuJ3QgZm9yY2VkLlxuXHRcdFx0Ly8gVGltZXJzIGN1cnJlbnRseSB3aWxsIGNhbGwgdGhlaXIgY29tcGxldGUgY2FsbGJhY2tzLCB3aGljaFxuXHRcdFx0Ly8gd2lsbCBkZXF1ZXVlIGJ1dCBvbmx5IGlmIHRoZXkgd2VyZSBnb3RvRW5kLlxuXHRcdFx0aWYgKCBkZXF1ZXVlIHx8ICFnb3RvRW5kICkge1xuXHRcdFx0XHRqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblx0ZmluaXNoOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRpZiAoIHR5cGUgIT09IGZhbHNlICkge1xuXHRcdFx0dHlwZSA9IHR5cGUgfHwgXCJmeFwiO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBpbmRleCxcblx0XHRcdFx0ZGF0YSA9IGRhdGFQcml2LmdldCggdGhpcyApLFxuXHRcdFx0XHRxdWV1ZSA9IGRhdGFbIHR5cGUgKyBcInF1ZXVlXCIgXSxcblx0XHRcdFx0aG9va3MgPSBkYXRhWyB0eXBlICsgXCJxdWV1ZUhvb2tzXCIgXSxcblx0XHRcdFx0dGltZXJzID0galF1ZXJ5LnRpbWVycyxcblx0XHRcdFx0bGVuZ3RoID0gcXVldWUgPyBxdWV1ZS5sZW5ndGggOiAwO1xuXG5cdFx0XHQvLyBFbmFibGUgZmluaXNoaW5nIGZsYWcgb24gcHJpdmF0ZSBkYXRhXG5cdFx0XHRkYXRhLmZpbmlzaCA9IHRydWU7XG5cblx0XHRcdC8vIEVtcHR5IHRoZSBxdWV1ZSBmaXJzdFxuXHRcdFx0alF1ZXJ5LnF1ZXVlKCB0aGlzLCB0eXBlLCBbXSApO1xuXG5cdFx0XHRpZiAoIGhvb2tzICYmIGhvb2tzLnN0b3AgKSB7XG5cdFx0XHRcdGhvb2tzLnN0b3AuY2FsbCggdGhpcywgdHJ1ZSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBMb29rIGZvciBhbnkgYWN0aXZlIGFuaW1hdGlvbnMsIGFuZCBmaW5pc2ggdGhlbVxuXHRcdFx0Zm9yICggaW5kZXggPSB0aW1lcnMubGVuZ3RoOyBpbmRleC0tOyApIHtcblx0XHRcdFx0aWYgKCB0aW1lcnNbIGluZGV4IF0uZWxlbSA9PT0gdGhpcyAmJiB0aW1lcnNbIGluZGV4IF0ucXVldWUgPT09IHR5cGUgKSB7XG5cdFx0XHRcdFx0dGltZXJzWyBpbmRleCBdLmFuaW0uc3RvcCggdHJ1ZSApO1xuXHRcdFx0XHRcdHRpbWVycy5zcGxpY2UoIGluZGV4LCAxICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gTG9vayBmb3IgYW55IGFuaW1hdGlvbnMgaW4gdGhlIG9sZCBxdWV1ZSBhbmQgZmluaXNoIHRoZW1cblx0XHRcdGZvciAoIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0XHRcdGlmICggcXVldWVbIGluZGV4IF0gJiYgcXVldWVbIGluZGV4IF0uZmluaXNoICkge1xuXHRcdFx0XHRcdHF1ZXVlWyBpbmRleCBdLmZpbmlzaC5jYWxsKCB0aGlzICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gVHVybiBvZmYgZmluaXNoaW5nIGZsYWdcblx0XHRcdGRlbGV0ZSBkYXRhLmZpbmlzaDtcblx0XHR9ICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmVhY2goIFsgXCJ0b2dnbGVcIiwgXCJzaG93XCIsIFwiaGlkZVwiIF0sIGZ1bmN0aW9uKCBfaSwgbmFtZSApIHtcblx0dmFyIGNzc0ZuID0galF1ZXJ5LmZuWyBuYW1lIF07XG5cdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBzcGVlZCA9PSBudWxsIHx8IHR5cGVvZiBzcGVlZCA9PT0gXCJib29sZWFuXCIgP1xuXHRcdFx0Y3NzRm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApIDpcblx0XHRcdHRoaXMuYW5pbWF0ZSggZ2VuRngoIG5hbWUsIHRydWUgKSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTtcblx0fTtcbn0gKTtcblxuLy8gR2VuZXJhdGUgc2hvcnRjdXRzIGZvciBjdXN0b20gYW5pbWF0aW9uc1xualF1ZXJ5LmVhY2goIHtcblx0c2xpZGVEb3duOiBnZW5GeCggXCJzaG93XCIgKSxcblx0c2xpZGVVcDogZ2VuRngoIFwiaGlkZVwiICksXG5cdHNsaWRlVG9nZ2xlOiBnZW5GeCggXCJ0b2dnbGVcIiApLFxuXHRmYWRlSW46IHsgb3BhY2l0eTogXCJzaG93XCIgfSxcblx0ZmFkZU91dDogeyBvcGFjaXR5OiBcImhpZGVcIiB9LFxuXHRmYWRlVG9nZ2xlOiB7IG9wYWNpdHk6IFwidG9nZ2xlXCIgfVxufSwgZnVuY3Rpb24oIG5hbWUsIHByb3BzICkge1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4gdGhpcy5hbmltYXRlKCBwcm9wcywgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTtcblx0fTtcbn0gKTtcblxualF1ZXJ5LnRpbWVycyA9IFtdO1xualF1ZXJ5LmZ4LnRpY2sgPSBmdW5jdGlvbigpIHtcblx0dmFyIHRpbWVyLFxuXHRcdGkgPSAwLFxuXHRcdHRpbWVycyA9IGpRdWVyeS50aW1lcnM7XG5cblx0ZnhOb3cgPSBEYXRlLm5vdygpO1xuXG5cdGZvciAoIDsgaSA8IHRpbWVycy5sZW5ndGg7IGkrKyApIHtcblx0XHR0aW1lciA9IHRpbWVyc1sgaSBdO1xuXG5cdFx0Ly8gUnVuIHRoZSB0aW1lciBhbmQgc2FmZWx5IHJlbW92ZSBpdCB3aGVuIGRvbmUgKGFsbG93aW5nIGZvciBleHRlcm5hbCByZW1vdmFsKVxuXHRcdGlmICggIXRpbWVyKCkgJiYgdGltZXJzWyBpIF0gPT09IHRpbWVyICkge1xuXHRcdFx0dGltZXJzLnNwbGljZSggaS0tLCAxICk7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCAhdGltZXJzLmxlbmd0aCApIHtcblx0XHRqUXVlcnkuZnguc3RvcCgpO1xuXHR9XG5cdGZ4Tm93ID0gdW5kZWZpbmVkO1xufTtcblxualF1ZXJ5LmZ4LnRpbWVyID0gZnVuY3Rpb24oIHRpbWVyICkge1xuXHRqUXVlcnkudGltZXJzLnB1c2goIHRpbWVyICk7XG5cdGpRdWVyeS5meC5zdGFydCgpO1xufTtcblxualF1ZXJ5LmZ4LmludGVydmFsID0gMTM7XG5qUXVlcnkuZnguc3RhcnQgPSBmdW5jdGlvbigpIHtcblx0aWYgKCBpblByb2dyZXNzICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGluUHJvZ3Jlc3MgPSB0cnVlO1xuXHRzY2hlZHVsZSgpO1xufTtcblxualF1ZXJ5LmZ4LnN0b3AgPSBmdW5jdGlvbigpIHtcblx0aW5Qcm9ncmVzcyA9IG51bGw7XG59O1xuXG5qUXVlcnkuZnguc3BlZWRzID0ge1xuXHRzbG93OiA2MDAsXG5cdGZhc3Q6IDIwMCxcblxuXHQvLyBEZWZhdWx0IHNwZWVkXG5cdF9kZWZhdWx0OiA0MDBcbn07XG5cblxuLy8gQmFzZWQgb2ZmIG9mIHRoZSBwbHVnaW4gYnkgQ2xpbnQgSGVsZmVycywgd2l0aCBwZXJtaXNzaW9uLlxuLy8gaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTAwMzI0MDE0NzQ3L2h0dHA6Ly9ibGluZHNpZ25hbHMuY29tL2luZGV4LnBocC8yMDA5LzA3L2pxdWVyeS1kZWxheS9cbmpRdWVyeS5mbi5kZWxheSA9IGZ1bmN0aW9uKCB0aW1lLCB0eXBlICkge1xuXHR0aW1lID0galF1ZXJ5LmZ4ID8galF1ZXJ5LmZ4LnNwZWVkc1sgdGltZSBdIHx8IHRpbWUgOiB0aW1lO1xuXHR0eXBlID0gdHlwZSB8fCBcImZ4XCI7XG5cblx0cmV0dXJuIHRoaXMucXVldWUoIHR5cGUsIGZ1bmN0aW9uKCBuZXh0LCBob29rcyApIHtcblx0XHR2YXIgdGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCBuZXh0LCB0aW1lICk7XG5cdFx0aG9va3Muc3RvcCA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0d2luZG93LmNsZWFyVGltZW91dCggdGltZW91dCApO1xuXHRcdH07XG5cdH0gKTtcbn07XG5cblxuKCBmdW5jdGlvbigpIHtcblx0dmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJpbnB1dFwiICksXG5cdFx0c2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJzZWxlY3RcIiApLFxuXHRcdG9wdCA9IHNlbGVjdC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJvcHRpb25cIiApICk7XG5cblx0aW5wdXQudHlwZSA9IFwiY2hlY2tib3hcIjtcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4zIG9ubHlcblx0Ly8gRGVmYXVsdCB2YWx1ZSBmb3IgYSBjaGVja2JveCBzaG91bGQgYmUgXCJvblwiXG5cdHN1cHBvcnQuY2hlY2tPbiA9IGlucHV0LnZhbHVlICE9PSBcIlwiO1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHQvLyBNdXN0IGFjY2VzcyBzZWxlY3RlZEluZGV4IHRvIG1ha2UgZGVmYXVsdCBvcHRpb25zIHNlbGVjdFxuXHRzdXBwb3J0Lm9wdFNlbGVjdGVkID0gb3B0LnNlbGVjdGVkO1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHQvLyBBbiBpbnB1dCBsb3NlcyBpdHMgdmFsdWUgYWZ0ZXIgYmVjb21pbmcgYSByYWRpb1xuXHRpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApO1xuXHRpbnB1dC52YWx1ZSA9IFwidFwiO1xuXHRpbnB1dC50eXBlID0gXCJyYWRpb1wiO1xuXHRzdXBwb3J0LnJhZGlvVmFsdWUgPSBpbnB1dC52YWx1ZSA9PT0gXCJ0XCI7XG59ICkoKTtcblxuXG52YXIgYm9vbEhvb2ssXG5cdGF0dHJIYW5kbGUgPSBqUXVlcnkuZXhwci5hdHRySGFuZGxlO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGF0dHI6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBqUXVlcnkuYXR0ciwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH0sXG5cblx0cmVtb3ZlQXR0cjogZnVuY3Rpb24oIG5hbWUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkucmVtb3ZlQXR0ciggdGhpcywgbmFtZSApO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdGF0dHI6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSApIHtcblx0XHR2YXIgcmV0LCBob29rcyxcblx0XHRcdG5UeXBlID0gZWxlbS5ub2RlVHlwZTtcblxuXHRcdC8vIERvbid0IGdldC9zZXQgYXR0cmlidXRlcyBvbiB0ZXh0LCBjb21tZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXNcblx0XHRpZiAoIG5UeXBlID09PSAzIHx8IG5UeXBlID09PSA4IHx8IG5UeXBlID09PSAyICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIEZhbGxiYWNrIHRvIHByb3Agd2hlbiBhdHRyaWJ1dGVzIGFyZSBub3Qgc3VwcG9ydGVkXG5cdFx0aWYgKCB0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGUgPT09IFwidW5kZWZpbmVkXCIgKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LnByb3AoIGVsZW0sIG5hbWUsIHZhbHVlICk7XG5cdFx0fVxuXG5cdFx0Ly8gQXR0cmlidXRlIGhvb2tzIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSBsb3dlcmNhc2UgdmVyc2lvblxuXHRcdC8vIEdyYWIgbmVjZXNzYXJ5IGhvb2sgaWYgb25lIGlzIGRlZmluZWRcblx0XHRpZiAoIG5UeXBlICE9PSAxIHx8ICFqUXVlcnkuaXNYTUxEb2MoIGVsZW0gKSApIHtcblx0XHRcdGhvb2tzID0galF1ZXJ5LmF0dHJIb29rc1sgbmFtZS50b0xvd2VyQ2FzZSgpIF0gfHxcblx0XHRcdFx0KCBqUXVlcnkuZXhwci5tYXRjaC5ib29sLnRlc3QoIG5hbWUgKSA/IGJvb2xIb29rIDogdW5kZWZpbmVkICk7XG5cdFx0fVxuXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0aWYgKCB2YWx1ZSA9PT0gbnVsbCApIHtcblx0XHRcdFx0alF1ZXJ5LnJlbW92ZUF0dHIoIGVsZW0sIG5hbWUgKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIGhvb2tzICYmIFwic2V0XCIgaW4gaG9va3MgJiZcblx0XHRcdFx0KCByZXQgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlLCBuYW1lICkgKSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRyZXR1cm4gcmV0O1xuXHRcdFx0fVxuXG5cdFx0XHRlbGVtLnNldEF0dHJpYnV0ZSggbmFtZSwgdmFsdWUgKyBcIlwiICk7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXG5cdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmICggcmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBuYW1lICkgKSAhPT0gbnVsbCApIHtcblx0XHRcdHJldHVybiByZXQ7XG5cdFx0fVxuXG5cdFx0cmV0ID0galF1ZXJ5LmZpbmQuYXR0ciggZWxlbSwgbmFtZSApO1xuXG5cdFx0Ly8gTm9uLWV4aXN0ZW50IGF0dHJpYnV0ZXMgcmV0dXJuIG51bGwsIHdlIG5vcm1hbGl6ZSB0byB1bmRlZmluZWRcblx0XHRyZXR1cm4gcmV0ID09IG51bGwgPyB1bmRlZmluZWQgOiByZXQ7XG5cdH0sXG5cblx0YXR0ckhvb2tzOiB7XG5cdFx0dHlwZToge1xuXHRcdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0XHRcdGlmICggIXN1cHBvcnQucmFkaW9WYWx1ZSAmJiB2YWx1ZSA9PT0gXCJyYWRpb1wiICYmXG5cdFx0XHRcdFx0bm9kZU5hbWUoIGVsZW0sIFwiaW5wdXRcIiApICkge1xuXHRcdFx0XHRcdHZhciB2YWwgPSBlbGVtLnZhbHVlO1xuXHRcdFx0XHRcdGVsZW0uc2V0QXR0cmlidXRlKCBcInR5cGVcIiwgdmFsdWUgKTtcblx0XHRcdFx0XHRpZiAoIHZhbCApIHtcblx0XHRcdFx0XHRcdGVsZW0udmFsdWUgPSB2YWw7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHRyZW1vdmVBdHRyOiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0dmFyIG5hbWUsXG5cdFx0XHRpID0gMCxcblxuXHRcdFx0Ly8gQXR0cmlidXRlIG5hbWVzIGNhbiBjb250YWluIG5vbi1IVE1MIHdoaXRlc3BhY2UgY2hhcmFjdGVyc1xuXHRcdFx0Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc3ludGF4Lmh0bWwjYXR0cmlidXRlcy0yXG5cdFx0XHRhdHRyTmFtZXMgPSB2YWx1ZSAmJiB2YWx1ZS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApO1xuXG5cdFx0aWYgKCBhdHRyTmFtZXMgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdHdoaWxlICggKCBuYW1lID0gYXR0ck5hbWVzWyBpKysgXSApICkge1xuXHRcdFx0XHRlbGVtLnJlbW92ZUF0dHJpYnV0ZSggbmFtZSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSApO1xuXG4vLyBIb29rcyBmb3IgYm9vbGVhbiBhdHRyaWJ1dGVzXG5ib29sSG9vayA9IHtcblx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUsIG5hbWUgKSB7XG5cdFx0aWYgKCB2YWx1ZSA9PT0gZmFsc2UgKSB7XG5cblx0XHRcdC8vIFJlbW92ZSBib29sZWFuIGF0dHJpYnV0ZXMgd2hlbiBzZXQgdG8gZmFsc2Vcblx0XHRcdGpRdWVyeS5yZW1vdmVBdHRyKCBlbGVtLCBuYW1lICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGVsZW0uc2V0QXR0cmlidXRlKCBuYW1lLCBuYW1lICk7XG5cdFx0fVxuXHRcdHJldHVybiBuYW1lO1xuXHR9XG59O1xuXG5qUXVlcnkuZWFjaCggalF1ZXJ5LmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goIC9cXHcrL2cgKSwgZnVuY3Rpb24oIF9pLCBuYW1lICkge1xuXHR2YXIgZ2V0dGVyID0gYXR0ckhhbmRsZVsgbmFtZSBdIHx8IGpRdWVyeS5maW5kLmF0dHI7XG5cblx0YXR0ckhhbmRsZVsgbmFtZSBdID0gZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGlzWE1MICkge1xuXHRcdHZhciByZXQsIGhhbmRsZSxcblx0XHRcdGxvd2VyY2FzZU5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XG5cblx0XHRpZiAoICFpc1hNTCApIHtcblxuXHRcdFx0Ly8gQXZvaWQgYW4gaW5maW5pdGUgbG9vcCBieSB0ZW1wb3JhcmlseSByZW1vdmluZyB0aGlzIGZ1bmN0aW9uIGZyb20gdGhlIGdldHRlclxuXHRcdFx0aGFuZGxlID0gYXR0ckhhbmRsZVsgbG93ZXJjYXNlTmFtZSBdO1xuXHRcdFx0YXR0ckhhbmRsZVsgbG93ZXJjYXNlTmFtZSBdID0gcmV0O1xuXHRcdFx0cmV0ID0gZ2V0dGVyKCBlbGVtLCBuYW1lLCBpc1hNTCApICE9IG51bGwgP1xuXHRcdFx0XHRsb3dlcmNhc2VOYW1lIDpcblx0XHRcdFx0bnVsbDtcblx0XHRcdGF0dHJIYW5kbGVbIGxvd2VyY2FzZU5hbWUgXSA9IGhhbmRsZTtcblx0XHR9XG5cdFx0cmV0dXJuIHJldDtcblx0fTtcbn0gKTtcblxuXG5cblxudmFyIHJmb2N1c2FibGUgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLFxuXHRyY2xpY2thYmxlID0gL14oPzphfGFyZWEpJC9pO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHByb3A6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBqUXVlcnkucHJvcCwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH0sXG5cblx0cmVtb3ZlUHJvcDogZnVuY3Rpb24oIG5hbWUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRkZWxldGUgdGhpc1sgalF1ZXJ5LnByb3BGaXhbIG5hbWUgXSB8fCBuYW1lIF07XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5leHRlbmQoIHtcblx0cHJvcDogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xuXHRcdHZhciByZXQsIGhvb2tzLFxuXHRcdFx0blR5cGUgPSBlbGVtLm5vZGVUeXBlO1xuXG5cdFx0Ly8gRG9uJ3QgZ2V0L3NldCBwcm9wZXJ0aWVzIG9uIHRleHQsIGNvbW1lbnQgYW5kIGF0dHJpYnV0ZSBub2Rlc1xuXHRcdGlmICggblR5cGUgPT09IDMgfHwgblR5cGUgPT09IDggfHwgblR5cGUgPT09IDIgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCBuVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICkgKSB7XG5cblx0XHRcdC8vIEZpeCBuYW1lIGFuZCBhdHRhY2ggaG9va3Ncblx0XHRcdG5hbWUgPSBqUXVlcnkucHJvcEZpeFsgbmFtZSBdIHx8IG5hbWU7XG5cdFx0XHRob29rcyA9IGpRdWVyeS5wcm9wSG9va3NbIG5hbWUgXTtcblx0XHR9XG5cblx0XHRpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRpZiAoIGhvb2tzICYmIFwic2V0XCIgaW4gaG9va3MgJiZcblx0XHRcdFx0KCByZXQgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlLCBuYW1lICkgKSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRyZXR1cm4gcmV0O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gKCBlbGVtWyBuYW1lIF0gPSB2YWx1ZSApO1xuXHRcdH1cblxuXHRcdGlmICggaG9va3MgJiYgXCJnZXRcIiBpbiBob29rcyAmJiAoIHJldCA9IGhvb2tzLmdldCggZWxlbSwgbmFtZSApICkgIT09IG51bGwgKSB7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH1cblxuXHRcdHJldHVybiBlbGVtWyBuYW1lIF07XG5cdH0sXG5cblx0cHJvcEhvb2tzOiB7XG5cdFx0dGFiSW5kZXg6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTEgb25seVxuXHRcdFx0XHQvLyBlbGVtLnRhYkluZGV4IGRvZXNuJ3QgYWx3YXlzIHJldHVybiB0aGVcblx0XHRcdFx0Ly8gY29ycmVjdCB2YWx1ZSB3aGVuIGl0IGhhc24ndCBiZWVuIGV4cGxpY2l0bHkgc2V0XG5cdFx0XHRcdC8vIGh0dHBzOi8vd2ViLmFyY2hpdmUub3JnL3dlYi8yMDE0MTExNjIzMzM0Ny9odHRwOi8vZmx1aWRwcm9qZWN0Lm9yZy9ibG9nLzIwMDgvMDEvMDkvZ2V0dGluZy1zZXR0aW5nLWFuZC1yZW1vdmluZy10YWJpbmRleC12YWx1ZXMtd2l0aC1qYXZhc2NyaXB0L1xuXHRcdFx0XHQvLyBVc2UgcHJvcGVyIGF0dHJpYnV0ZSByZXRyaWV2YWwoIzEyMDcyKVxuXHRcdFx0XHR2YXIgdGFiaW5kZXggPSBqUXVlcnkuZmluZC5hdHRyKCBlbGVtLCBcInRhYmluZGV4XCIgKTtcblxuXHRcdFx0XHRpZiAoIHRhYmluZGV4ICkge1xuXHRcdFx0XHRcdHJldHVybiBwYXJzZUludCggdGFiaW5kZXgsIDEwICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0cmZvY3VzYWJsZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgfHxcblx0XHRcdFx0XHRyY2xpY2thYmxlLnRlc3QoIGVsZW0ubm9kZU5hbWUgKSAmJlxuXHRcdFx0XHRcdGVsZW0uaHJlZlxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRyZXR1cm4gMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiAtMTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0cHJvcEZpeDoge1xuXHRcdFwiZm9yXCI6IFwiaHRtbEZvclwiLFxuXHRcdFwiY2xhc3NcIjogXCJjbGFzc05hbWVcIlxuXHR9XG59ICk7XG5cbi8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuLy8gQWNjZXNzaW5nIHRoZSBzZWxlY3RlZEluZGV4IHByb3BlcnR5XG4vLyBmb3JjZXMgdGhlIGJyb3dzZXIgdG8gcmVzcGVjdCBzZXR0aW5nIHNlbGVjdGVkXG4vLyBvbiB0aGUgb3B0aW9uXG4vLyBUaGUgZ2V0dGVyIGVuc3VyZXMgYSBkZWZhdWx0IG9wdGlvbiBpcyBzZWxlY3RlZFxuLy8gd2hlbiBpbiBhbiBvcHRncm91cFxuLy8gZXNsaW50IHJ1bGUgXCJuby11bnVzZWQtZXhwcmVzc2lvbnNcIiBpcyBkaXNhYmxlZCBmb3IgdGhpcyBjb2RlXG4vLyBzaW5jZSBpdCBjb25zaWRlcnMgc3VjaCBhY2Nlc3Npb25zIG5vb3BcbmlmICggIXN1cHBvcnQub3B0U2VsZWN0ZWQgKSB7XG5cdGpRdWVyeS5wcm9wSG9va3Muc2VsZWN0ZWQgPSB7XG5cdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdFx0LyogZXNsaW50IG5vLXVudXNlZC1leHByZXNzaW9uczogXCJvZmZcIiAqL1xuXG5cdFx0XHR2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlO1xuXHRcdFx0aWYgKCBwYXJlbnQgJiYgcGFyZW50LnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdHBhcmVudC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXg7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9LFxuXHRcdHNldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdC8qIGVzbGludCBuby11bnVzZWQtZXhwcmVzc2lvbnM6IFwib2ZmXCIgKi9cblxuXHRcdFx0dmFyIHBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZTtcblx0XHRcdGlmICggcGFyZW50ICkge1xuXHRcdFx0XHRwYXJlbnQuc2VsZWN0ZWRJbmRleDtcblxuXHRcdFx0XHRpZiAoIHBhcmVudC5wYXJlbnROb2RlICkge1xuXHRcdFx0XHRcdHBhcmVudC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH07XG59XG5cbmpRdWVyeS5lYWNoKCBbXG5cdFwidGFiSW5kZXhcIixcblx0XCJyZWFkT25seVwiLFxuXHRcIm1heExlbmd0aFwiLFxuXHRcImNlbGxTcGFjaW5nXCIsXG5cdFwiY2VsbFBhZGRpbmdcIixcblx0XCJyb3dTcGFuXCIsXG5cdFwiY29sU3BhblwiLFxuXHRcInVzZU1hcFwiLFxuXHRcImZyYW1lQm9yZGVyXCIsXG5cdFwiY29udGVudEVkaXRhYmxlXCJcbl0sIGZ1bmN0aW9uKCkge1xuXHRqUXVlcnkucHJvcEZpeFsgdGhpcy50b0xvd2VyQ2FzZSgpIF0gPSB0aGlzO1xufSApO1xuXG5cblxuXG5cdC8vIFN0cmlwIGFuZCBjb2xsYXBzZSB3aGl0ZXNwYWNlIGFjY29yZGluZyB0byBIVE1MIHNwZWNcblx0Ly8gaHR0cHM6Ly9pbmZyYS5zcGVjLndoYXR3Zy5vcmcvI3N0cmlwLWFuZC1jb2xsYXBzZS1hc2NpaS13aGl0ZXNwYWNlXG5cdGZ1bmN0aW9uIHN0cmlwQW5kQ29sbGFwc2UoIHZhbHVlICkge1xuXHRcdHZhciB0b2tlbnMgPSB2YWx1ZS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFtdO1xuXHRcdHJldHVybiB0b2tlbnMuam9pbiggXCIgXCIgKTtcblx0fVxuXG5cbmZ1bmN0aW9uIGdldENsYXNzKCBlbGVtICkge1xuXHRyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUgJiYgZWxlbS5nZXRBdHRyaWJ1dGUoIFwiY2xhc3NcIiApIHx8IFwiXCI7XG59XG5cbmZ1bmN0aW9uIGNsYXNzZXNUb0FycmF5KCB2YWx1ZSApIHtcblx0aWYgKCBBcnJheS5pc0FycmF5KCB2YWx1ZSApICkge1xuXHRcdHJldHVybiB2YWx1ZTtcblx0fVxuXHRpZiAoIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRyZXR1cm4gdmFsdWUubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbXTtcblx0fVxuXHRyZXR1cm4gW107XG59XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0YWRkQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHR2YXIgY2xhc3NlcywgZWxlbSwgY3VyLCBjdXJWYWx1ZSwgY2xhenosIGosIGZpbmFsVmFsdWUsXG5cdFx0XHRpID0gMDtcblxuXHRcdGlmICggaXNGdW5jdGlvbiggdmFsdWUgKSApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCBqICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5hZGRDbGFzcyggdmFsdWUuY2FsbCggdGhpcywgaiwgZ2V0Q2xhc3MoIHRoaXMgKSApICk7XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0Y2xhc3NlcyA9IGNsYXNzZXNUb0FycmF5KCB2YWx1ZSApO1xuXG5cdFx0aWYgKCBjbGFzc2VzLmxlbmd0aCApIHtcblx0XHRcdHdoaWxlICggKCBlbGVtID0gdGhpc1sgaSsrIF0gKSApIHtcblx0XHRcdFx0Y3VyVmFsdWUgPSBnZXRDbGFzcyggZWxlbSApO1xuXHRcdFx0XHRjdXIgPSBlbGVtLm5vZGVUeXBlID09PSAxICYmICggXCIgXCIgKyBzdHJpcEFuZENvbGxhcHNlKCBjdXJWYWx1ZSApICsgXCIgXCIgKTtcblxuXHRcdFx0XHRpZiAoIGN1ciApIHtcblx0XHRcdFx0XHRqID0gMDtcblx0XHRcdFx0XHR3aGlsZSAoICggY2xhenogPSBjbGFzc2VzWyBqKysgXSApICkge1xuXHRcdFx0XHRcdFx0aWYgKCBjdXIuaW5kZXhPZiggXCIgXCIgKyBjbGF6eiArIFwiIFwiICkgPCAwICkge1xuXHRcdFx0XHRcdFx0XHRjdXIgKz0gY2xhenogKyBcIiBcIjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBPbmx5IGFzc2lnbiBpZiBkaWZmZXJlbnQgdG8gYXZvaWQgdW5uZWVkZWQgcmVuZGVyaW5nLlxuXHRcdFx0XHRcdGZpbmFsVmFsdWUgPSBzdHJpcEFuZENvbGxhcHNlKCBjdXIgKTtcblx0XHRcdFx0XHRpZiAoIGN1clZhbHVlICE9PSBmaW5hbFZhbHVlICkge1xuXHRcdFx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIFwiY2xhc3NcIiwgZmluYWxWYWx1ZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdHJlbW92ZUNsYXNzOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0dmFyIGNsYXNzZXMsIGVsZW0sIGN1ciwgY3VyVmFsdWUsIGNsYXp6LCBqLCBmaW5hbFZhbHVlLFxuXHRcdFx0aSA9IDA7XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaiApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkucmVtb3ZlQ2xhc3MoIHZhbHVlLmNhbGwoIHRoaXMsIGosIGdldENsYXNzKCB0aGlzICkgKSApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdGlmICggIWFyZ3VtZW50cy5sZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5hdHRyKCBcImNsYXNzXCIsIFwiXCIgKTtcblx0XHR9XG5cblx0XHRjbGFzc2VzID0gY2xhc3Nlc1RvQXJyYXkoIHZhbHVlICk7XG5cblx0XHRpZiAoIGNsYXNzZXMubGVuZ3RoICkge1xuXHRcdFx0d2hpbGUgKCAoIGVsZW0gPSB0aGlzWyBpKysgXSApICkge1xuXHRcdFx0XHRjdXJWYWx1ZSA9IGdldENsYXNzKCBlbGVtICk7XG5cblx0XHRcdFx0Ly8gVGhpcyBleHByZXNzaW9uIGlzIGhlcmUgZm9yIGJldHRlciBjb21wcmVzc2liaWxpdHkgKHNlZSBhZGRDbGFzcylcblx0XHRcdFx0Y3VyID0gZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAoIFwiIFwiICsgc3RyaXBBbmRDb2xsYXBzZSggY3VyVmFsdWUgKSArIFwiIFwiICk7XG5cblx0XHRcdFx0aWYgKCBjdXIgKSB7XG5cdFx0XHRcdFx0aiA9IDA7XG5cdFx0XHRcdFx0d2hpbGUgKCAoIGNsYXp6ID0gY2xhc3Nlc1sgaisrIF0gKSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gUmVtb3ZlICphbGwqIGluc3RhbmNlc1xuXHRcdFx0XHRcdFx0d2hpbGUgKCBjdXIuaW5kZXhPZiggXCIgXCIgKyBjbGF6eiArIFwiIFwiICkgPiAtMSApIHtcblx0XHRcdFx0XHRcdFx0Y3VyID0gY3VyLnJlcGxhY2UoIFwiIFwiICsgY2xhenogKyBcIiBcIiwgXCIgXCIgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBPbmx5IGFzc2lnbiBpZiBkaWZmZXJlbnQgdG8gYXZvaWQgdW5uZWVkZWQgcmVuZGVyaW5nLlxuXHRcdFx0XHRcdGZpbmFsVmFsdWUgPSBzdHJpcEFuZENvbGxhcHNlKCBjdXIgKTtcblx0XHRcdFx0XHRpZiAoIGN1clZhbHVlICE9PSBmaW5hbFZhbHVlICkge1xuXHRcdFx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIFwiY2xhc3NcIiwgZmluYWxWYWx1ZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdHRvZ2dsZUNsYXNzOiBmdW5jdGlvbiggdmFsdWUsIHN0YXRlVmFsICkge1xuXHRcdHZhciB0eXBlID0gdHlwZW9mIHZhbHVlLFxuXHRcdFx0aXNWYWxpZFZhbHVlID0gdHlwZSA9PT0gXCJzdHJpbmdcIiB8fCBBcnJheS5pc0FycmF5KCB2YWx1ZSApO1xuXG5cdFx0aWYgKCB0eXBlb2Ygc3RhdGVWYWwgPT09IFwiYm9vbGVhblwiICYmIGlzVmFsaWRWYWx1ZSApIHtcblx0XHRcdHJldHVybiBzdGF0ZVZhbCA/IHRoaXMuYWRkQ2xhc3MoIHZhbHVlICkgOiB0aGlzLnJlbW92ZUNsYXNzKCB2YWx1ZSApO1xuXHRcdH1cblxuXHRcdGlmICggaXNGdW5jdGlvbiggdmFsdWUgKSApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS50b2dnbGVDbGFzcyhcblx0XHRcdFx0XHR2YWx1ZS5jYWxsKCB0aGlzLCBpLCBnZXRDbGFzcyggdGhpcyApLCBzdGF0ZVZhbCApLFxuXHRcdFx0XHRcdHN0YXRlVmFsXG5cdFx0XHRcdCk7XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgY2xhc3NOYW1lLCBpLCBzZWxmLCBjbGFzc05hbWVzO1xuXG5cdFx0XHRpZiAoIGlzVmFsaWRWYWx1ZSApIHtcblxuXHRcdFx0XHQvLyBUb2dnbGUgaW5kaXZpZHVhbCBjbGFzcyBuYW1lc1xuXHRcdFx0XHRpID0gMDtcblx0XHRcdFx0c2VsZiA9IGpRdWVyeSggdGhpcyApO1xuXHRcdFx0XHRjbGFzc05hbWVzID0gY2xhc3Nlc1RvQXJyYXkoIHZhbHVlICk7XG5cblx0XHRcdFx0d2hpbGUgKCAoIGNsYXNzTmFtZSA9IGNsYXNzTmFtZXNbIGkrKyBdICkgKSB7XG5cblx0XHRcdFx0XHQvLyBDaGVjayBlYWNoIGNsYXNzTmFtZSBnaXZlbiwgc3BhY2Ugc2VwYXJhdGVkIGxpc3Rcblx0XHRcdFx0XHRpZiAoIHNlbGYuaGFzQ2xhc3MoIGNsYXNzTmFtZSApICkge1xuXHRcdFx0XHRcdFx0c2VsZi5yZW1vdmVDbGFzcyggY2xhc3NOYW1lICk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHNlbGYuYWRkQ2xhc3MoIGNsYXNzTmFtZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHQvLyBUb2dnbGUgd2hvbGUgY2xhc3MgbmFtZVxuXHRcdFx0fSBlbHNlIGlmICggdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0eXBlID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRcdFx0Y2xhc3NOYW1lID0gZ2V0Q2xhc3MoIHRoaXMgKTtcblx0XHRcdFx0aWYgKCBjbGFzc05hbWUgKSB7XG5cblx0XHRcdFx0XHQvLyBTdG9yZSBjbGFzc05hbWUgaWYgc2V0XG5cdFx0XHRcdFx0ZGF0YVByaXYuc2V0KCB0aGlzLCBcIl9fY2xhc3NOYW1lX19cIiwgY2xhc3NOYW1lICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBJZiB0aGUgZWxlbWVudCBoYXMgYSBjbGFzcyBuYW1lIG9yIGlmIHdlJ3JlIHBhc3NlZCBgZmFsc2VgLFxuXHRcdFx0XHQvLyB0aGVuIHJlbW92ZSB0aGUgd2hvbGUgY2xhc3NuYW1lIChpZiB0aGVyZSB3YXMgb25lLCB0aGUgYWJvdmUgc2F2ZWQgaXQpLlxuXHRcdFx0XHQvLyBPdGhlcndpc2UgYnJpbmcgYmFjayB3aGF0ZXZlciB3YXMgcHJldmlvdXNseSBzYXZlZCAoaWYgYW55dGhpbmcpLFxuXHRcdFx0XHQvLyBmYWxsaW5nIGJhY2sgdG8gdGhlIGVtcHR5IHN0cmluZyBpZiBub3RoaW5nIHdhcyBzdG9yZWQuXG5cdFx0XHRcdGlmICggdGhpcy5zZXRBdHRyaWJ1dGUgKSB7XG5cdFx0XHRcdFx0dGhpcy5zZXRBdHRyaWJ1dGUoIFwiY2xhc3NcIixcblx0XHRcdFx0XHRcdGNsYXNzTmFtZSB8fCB2YWx1ZSA9PT0gZmFsc2UgP1xuXHRcdFx0XHRcdFx0XCJcIiA6XG5cdFx0XHRcdFx0XHRkYXRhUHJpdi5nZXQoIHRoaXMsIFwiX19jbGFzc05hbWVfX1wiICkgfHwgXCJcIlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0aGFzQ2xhc3M6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHR2YXIgY2xhc3NOYW1lLCBlbGVtLFxuXHRcdFx0aSA9IDA7XG5cblx0XHRjbGFzc05hbWUgPSBcIiBcIiArIHNlbGVjdG9yICsgXCIgXCI7XG5cdFx0d2hpbGUgKCAoIGVsZW0gPSB0aGlzWyBpKysgXSApICkge1xuXHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICYmXG5cdFx0XHRcdCggXCIgXCIgKyBzdHJpcEFuZENvbGxhcHNlKCBnZXRDbGFzcyggZWxlbSApICkgKyBcIiBcIiApLmluZGV4T2YoIGNsYXNzTmFtZSApID4gLTEgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG59ICk7XG5cblxuXG5cbnZhciBycmV0dXJuID0gL1xcci9nO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHZhbDogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHZhciBob29rcywgcmV0LCB2YWx1ZUlzRnVuY3Rpb24sXG5cdFx0XHRlbGVtID0gdGhpc1sgMCBdO1xuXG5cdFx0aWYgKCAhYXJndW1lbnRzLmxlbmd0aCApIHtcblx0XHRcdGlmICggZWxlbSApIHtcblx0XHRcdFx0aG9va3MgPSBqUXVlcnkudmFsSG9va3NbIGVsZW0udHlwZSBdIHx8XG5cdFx0XHRcdFx0alF1ZXJ5LnZhbEhvb2tzWyBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgXTtcblxuXHRcdFx0XHRpZiAoIGhvb2tzICYmXG5cdFx0XHRcdFx0XCJnZXRcIiBpbiBob29rcyAmJlxuXHRcdFx0XHRcdCggcmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBcInZhbHVlXCIgKSApICE9PSB1bmRlZmluZWRcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldCA9IGVsZW0udmFsdWU7XG5cblx0XHRcdFx0Ly8gSGFuZGxlIG1vc3QgY29tbW9uIHN0cmluZyBjYXNlc1xuXHRcdFx0XHRpZiAoIHR5cGVvZiByZXQgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJldC5yZXBsYWNlKCBycmV0dXJuLCBcIlwiICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBIYW5kbGUgY2FzZXMgd2hlcmUgdmFsdWUgaXMgbnVsbC91bmRlZiBvciBudW1iZXJcblx0XHRcdFx0cmV0dXJuIHJldCA9PSBudWxsID8gXCJcIiA6IHJldDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHZhbHVlSXNGdW5jdGlvbiA9IGlzRnVuY3Rpb24oIHZhbHVlICk7XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaSApIHtcblx0XHRcdHZhciB2YWw7XG5cblx0XHRcdGlmICggdGhpcy5ub2RlVHlwZSAhPT0gMSApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIHZhbHVlSXNGdW5jdGlvbiApIHtcblx0XHRcdFx0dmFsID0gdmFsdWUuY2FsbCggdGhpcywgaSwgalF1ZXJ5KCB0aGlzICkudmFsKCkgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHZhbCA9IHZhbHVlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBUcmVhdCBudWxsL3VuZGVmaW5lZCBhcyBcIlwiOyBjb252ZXJ0IG51bWJlcnMgdG8gc3RyaW5nXG5cdFx0XHRpZiAoIHZhbCA9PSBudWxsICkge1xuXHRcdFx0XHR2YWwgPSBcIlwiO1xuXG5cdFx0XHR9IGVsc2UgaWYgKCB0eXBlb2YgdmFsID09PSBcIm51bWJlclwiICkge1xuXHRcdFx0XHR2YWwgKz0gXCJcIjtcblxuXHRcdFx0fSBlbHNlIGlmICggQXJyYXkuaXNBcnJheSggdmFsICkgKSB7XG5cdFx0XHRcdHZhbCA9IGpRdWVyeS5tYXAoIHZhbCwgZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0XHRcdHJldHVybiB2YWx1ZSA9PSBudWxsID8gXCJcIiA6IHZhbHVlICsgXCJcIjtcblx0XHRcdFx0fSApO1xuXHRcdFx0fVxuXG5cdFx0XHRob29rcyA9IGpRdWVyeS52YWxIb29rc1sgdGhpcy50eXBlIF0gfHwgalF1ZXJ5LnZhbEhvb2tzWyB0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgXTtcblxuXHRcdFx0Ly8gSWYgc2V0IHJldHVybnMgdW5kZWZpbmVkLCBmYWxsIGJhY2sgdG8gbm9ybWFsIHNldHRpbmdcblx0XHRcdGlmICggIWhvb2tzIHx8ICEoIFwic2V0XCIgaW4gaG9va3MgKSB8fCBob29rcy5zZXQoIHRoaXMsIHZhbCwgXCJ2YWx1ZVwiICkgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0dGhpcy52YWx1ZSA9IHZhbDtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmV4dGVuZCgge1xuXHR2YWxIb29rczoge1xuXHRcdG9wdGlvbjoge1xuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSApIHtcblxuXHRcdFx0XHR2YXIgdmFsID0galF1ZXJ5LmZpbmQuYXR0ciggZWxlbSwgXCJ2YWx1ZVwiICk7XG5cdFx0XHRcdHJldHVybiB2YWwgIT0gbnVsbCA/XG5cdFx0XHRcdFx0dmFsIDpcblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9MTAgLSAxMSBvbmx5XG5cdFx0XHRcdFx0Ly8gb3B0aW9uLnRleHQgdGhyb3dzIGV4Y2VwdGlvbnMgKCMxNDY4NiwgIzE0ODU4KVxuXHRcdFx0XHRcdC8vIFN0cmlwIGFuZCBjb2xsYXBzZSB3aGl0ZXNwYWNlXG5cdFx0XHRcdFx0Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jc3RyaXAtYW5kLWNvbGxhcHNlLXdoaXRlc3BhY2Vcblx0XHRcdFx0XHRzdHJpcEFuZENvbGxhcHNlKCBqUXVlcnkudGV4dCggZWxlbSApICk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRzZWxlY3Q6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHZhciB2YWx1ZSwgb3B0aW9uLCBpLFxuXHRcdFx0XHRcdG9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsXG5cdFx0XHRcdFx0aW5kZXggPSBlbGVtLnNlbGVjdGVkSW5kZXgsXG5cdFx0XHRcdFx0b25lID0gZWxlbS50eXBlID09PSBcInNlbGVjdC1vbmVcIixcblx0XHRcdFx0XHR2YWx1ZXMgPSBvbmUgPyBudWxsIDogW10sXG5cdFx0XHRcdFx0bWF4ID0gb25lID8gaW5kZXggKyAxIDogb3B0aW9ucy5sZW5ndGg7XG5cblx0XHRcdFx0aWYgKCBpbmRleCA8IDAgKSB7XG5cdFx0XHRcdFx0aSA9IG1heDtcblxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGkgPSBvbmUgPyBpbmRleCA6IDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBMb29wIHRocm91Z2ggYWxsIHRoZSBzZWxlY3RlZCBvcHRpb25zXG5cdFx0XHRcdGZvciAoIDsgaSA8IG1heDsgaSsrICkge1xuXHRcdFx0XHRcdG9wdGlvbiA9IG9wdGlvbnNbIGkgXTtcblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5cdFx0XHRcdFx0Ly8gSUU4LTkgZG9lc24ndCB1cGRhdGUgc2VsZWN0ZWQgYWZ0ZXIgZm9ybSByZXNldCAoIzI1NTEpXG5cdFx0XHRcdFx0aWYgKCAoIG9wdGlvbi5zZWxlY3RlZCB8fCBpID09PSBpbmRleCApICYmXG5cblx0XHRcdFx0XHRcdFx0Ly8gRG9uJ3QgcmV0dXJuIG9wdGlvbnMgdGhhdCBhcmUgZGlzYWJsZWQgb3IgaW4gYSBkaXNhYmxlZCBvcHRncm91cFxuXHRcdFx0XHRcdFx0XHQhb3B0aW9uLmRpc2FibGVkICYmXG5cdFx0XHRcdFx0XHRcdCggIW9wdGlvbi5wYXJlbnROb2RlLmRpc2FibGVkIHx8XG5cdFx0XHRcdFx0XHRcdFx0IW5vZGVOYW1lKCBvcHRpb24ucGFyZW50Tm9kZSwgXCJvcHRncm91cFwiICkgKSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gR2V0IHRoZSBzcGVjaWZpYyB2YWx1ZSBmb3IgdGhlIG9wdGlvblxuXHRcdFx0XHRcdFx0dmFsdWUgPSBqUXVlcnkoIG9wdGlvbiApLnZhbCgpO1xuXG5cdFx0XHRcdFx0XHQvLyBXZSBkb24ndCBuZWVkIGFuIGFycmF5IGZvciBvbmUgc2VsZWN0c1xuXHRcdFx0XHRcdFx0aWYgKCBvbmUgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gTXVsdGktU2VsZWN0cyByZXR1cm4gYW4gYXJyYXlcblx0XHRcdFx0XHRcdHZhbHVlcy5wdXNoKCB2YWx1ZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB2YWx1ZXM7XG5cdFx0XHR9LFxuXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHtcblx0XHRcdFx0dmFyIG9wdGlvblNldCwgb3B0aW9uLFxuXHRcdFx0XHRcdG9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsXG5cdFx0XHRcdFx0dmFsdWVzID0galF1ZXJ5Lm1ha2VBcnJheSggdmFsdWUgKSxcblx0XHRcdFx0XHRpID0gb3B0aW9ucy5sZW5ndGg7XG5cblx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0b3B0aW9uID0gb3B0aW9uc1sgaSBdO1xuXG5cdFx0XHRcdFx0LyogZXNsaW50LWRpc2FibGUgbm8tY29uZC1hc3NpZ24gKi9cblxuXHRcdFx0XHRcdGlmICggb3B0aW9uLnNlbGVjdGVkID1cblx0XHRcdFx0XHRcdGpRdWVyeS5pbkFycmF5KCBqUXVlcnkudmFsSG9va3Mub3B0aW9uLmdldCggb3B0aW9uICksIHZhbHVlcyApID4gLTFcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdG9wdGlvblNldCA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0LyogZXNsaW50LWVuYWJsZSBuby1jb25kLWFzc2lnbiAqL1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gRm9yY2UgYnJvd3NlcnMgdG8gYmVoYXZlIGNvbnNpc3RlbnRseSB3aGVuIG5vbi1tYXRjaGluZyB2YWx1ZSBpcyBzZXRcblx0XHRcdFx0aWYgKCAhb3B0aW9uU2V0ICkge1xuXHRcdFx0XHRcdGVsZW0uc2VsZWN0ZWRJbmRleCA9IC0xO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB2YWx1ZXM7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59ICk7XG5cbi8vIFJhZGlvcyBhbmQgY2hlY2tib3hlcyBnZXR0ZXIvc2V0dGVyXG5qUXVlcnkuZWFjaCggWyBcInJhZGlvXCIsIFwiY2hlY2tib3hcIiBdLCBmdW5jdGlvbigpIHtcblx0alF1ZXJ5LnZhbEhvb2tzWyB0aGlzIF0gPSB7XG5cdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0XHRpZiAoIEFycmF5LmlzQXJyYXkoIHZhbHVlICkgKSB7XG5cdFx0XHRcdHJldHVybiAoIGVsZW0uY2hlY2tlZCA9IGpRdWVyeS5pbkFycmF5KCBqUXVlcnkoIGVsZW0gKS52YWwoKSwgdmFsdWUgKSA+IC0xICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXHRpZiAoICFzdXBwb3J0LmNoZWNrT24gKSB7XG5cdFx0alF1ZXJ5LnZhbEhvb2tzWyB0aGlzIF0uZ2V0ID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoIFwidmFsdWVcIiApID09PSBudWxsID8gXCJvblwiIDogZWxlbS52YWx1ZTtcblx0XHR9O1xuXHR9XG59ICk7XG5cblxuXG5cbi8vIFJldHVybiBqUXVlcnkgZm9yIGF0dHJpYnV0ZXMtb25seSBpbmNsdXNpb25cblxuXG5zdXBwb3J0LmZvY3VzaW4gPSBcIm9uZm9jdXNpblwiIGluIHdpbmRvdztcblxuXG52YXIgcmZvY3VzTW9ycGggPSAvXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sXG5cdHN0b3BQcm9wYWdhdGlvbkNhbGxiYWNrID0gZnVuY3Rpb24oIGUgKSB7XG5cdFx0ZS5zdG9wUHJvcGFnYXRpb24oKTtcblx0fTtcblxualF1ZXJ5LmV4dGVuZCggalF1ZXJ5LmV2ZW50LCB7XG5cblx0dHJpZ2dlcjogZnVuY3Rpb24oIGV2ZW50LCBkYXRhLCBlbGVtLCBvbmx5SGFuZGxlcnMgKSB7XG5cblx0XHR2YXIgaSwgY3VyLCB0bXAsIGJ1YmJsZVR5cGUsIG9udHlwZSwgaGFuZGxlLCBzcGVjaWFsLCBsYXN0RWxlbWVudCxcblx0XHRcdGV2ZW50UGF0aCA9IFsgZWxlbSB8fCBkb2N1bWVudCBdLFxuXHRcdFx0dHlwZSA9IGhhc093bi5jYWxsKCBldmVudCwgXCJ0eXBlXCIgKSA/IGV2ZW50LnR5cGUgOiBldmVudCxcblx0XHRcdG5hbWVzcGFjZXMgPSBoYXNPd24uY2FsbCggZXZlbnQsIFwibmFtZXNwYWNlXCIgKSA/IGV2ZW50Lm5hbWVzcGFjZS5zcGxpdCggXCIuXCIgKSA6IFtdO1xuXG5cdFx0Y3VyID0gbGFzdEVsZW1lbnQgPSB0bXAgPSBlbGVtID0gZWxlbSB8fCBkb2N1bWVudDtcblxuXHRcdC8vIERvbid0IGRvIGV2ZW50cyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzXG5cdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gZm9jdXMvYmx1ciBtb3JwaHMgdG8gZm9jdXNpbi9vdXQ7IGVuc3VyZSB3ZSdyZSBub3QgZmlyaW5nIHRoZW0gcmlnaHQgbm93XG5cdFx0aWYgKCByZm9jdXNNb3JwaC50ZXN0KCB0eXBlICsgalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICggdHlwZS5pbmRleE9mKCBcIi5cIiApID4gLTEgKSB7XG5cblx0XHRcdC8vIE5hbWVzcGFjZWQgdHJpZ2dlcjsgY3JlYXRlIGEgcmVnZXhwIHRvIG1hdGNoIGV2ZW50IHR5cGUgaW4gaGFuZGxlKClcblx0XHRcdG5hbWVzcGFjZXMgPSB0eXBlLnNwbGl0KCBcIi5cIiApO1xuXHRcdFx0dHlwZSA9IG5hbWVzcGFjZXMuc2hpZnQoKTtcblx0XHRcdG5hbWVzcGFjZXMuc29ydCgpO1xuXHRcdH1cblx0XHRvbnR5cGUgPSB0eXBlLmluZGV4T2YoIFwiOlwiICkgPCAwICYmIFwib25cIiArIHR5cGU7XG5cblx0XHQvLyBDYWxsZXIgY2FuIHBhc3MgaW4gYSBqUXVlcnkuRXZlbnQgb2JqZWN0LCBPYmplY3QsIG9yIGp1c3QgYW4gZXZlbnQgdHlwZSBzdHJpbmdcblx0XHRldmVudCA9IGV2ZW50WyBqUXVlcnkuZXhwYW5kbyBdID9cblx0XHRcdGV2ZW50IDpcblx0XHRcdG5ldyBqUXVlcnkuRXZlbnQoIHR5cGUsIHR5cGVvZiBldmVudCA9PT0gXCJvYmplY3RcIiAmJiBldmVudCApO1xuXG5cdFx0Ly8gVHJpZ2dlciBiaXRtYXNrOiAmIDEgZm9yIG5hdGl2ZSBoYW5kbGVyczsgJiAyIGZvciBqUXVlcnkgKGFsd2F5cyB0cnVlKVxuXHRcdGV2ZW50LmlzVHJpZ2dlciA9IG9ubHlIYW5kbGVycyA/IDIgOiAzO1xuXHRcdGV2ZW50Lm5hbWVzcGFjZSA9IG5hbWVzcGFjZXMuam9pbiggXCIuXCIgKTtcblx0XHRldmVudC5ybmFtZXNwYWNlID0gZXZlbnQubmFtZXNwYWNlID9cblx0XHRcdG5ldyBSZWdFeHAoIFwiKF58XFxcXC4pXCIgKyBuYW1lc3BhY2VzLmpvaW4oIFwiXFxcXC4oPzouKlxcXFwufClcIiApICsgXCIoXFxcXC58JClcIiApIDpcblx0XHRcdG51bGw7XG5cblx0XHQvLyBDbGVhbiB1cCB0aGUgZXZlbnQgaW4gY2FzZSBpdCBpcyBiZWluZyByZXVzZWRcblx0XHRldmVudC5yZXN1bHQgPSB1bmRlZmluZWQ7XG5cdFx0aWYgKCAhZXZlbnQudGFyZ2V0ICkge1xuXHRcdFx0ZXZlbnQudGFyZ2V0ID0gZWxlbTtcblx0XHR9XG5cblx0XHQvLyBDbG9uZSBhbnkgaW5jb21pbmcgZGF0YSBhbmQgcHJlcGVuZCB0aGUgZXZlbnQsIGNyZWF0aW5nIHRoZSBoYW5kbGVyIGFyZyBsaXN0XG5cdFx0ZGF0YSA9IGRhdGEgPT0gbnVsbCA/XG5cdFx0XHRbIGV2ZW50IF0gOlxuXHRcdFx0alF1ZXJ5Lm1ha2VBcnJheSggZGF0YSwgWyBldmVudCBdICk7XG5cblx0XHQvLyBBbGxvdyBzcGVjaWFsIGV2ZW50cyB0byBkcmF3IG91dHNpZGUgdGhlIGxpbmVzXG5cdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307XG5cdFx0aWYgKCAhb25seUhhbmRsZXJzICYmIHNwZWNpYWwudHJpZ2dlciAmJiBzcGVjaWFsLnRyaWdnZXIuYXBwbHkoIGVsZW0sIGRhdGEgKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gRGV0ZXJtaW5lIGV2ZW50IHByb3BhZ2F0aW9uIHBhdGggaW4gYWR2YW5jZSwgcGVyIFczQyBldmVudHMgc3BlYyAoIzk5NTEpXG5cdFx0Ly8gQnViYmxlIHVwIHRvIGRvY3VtZW50LCB0aGVuIHRvIHdpbmRvdzsgd2F0Y2ggZm9yIGEgZ2xvYmFsIG93bmVyRG9jdW1lbnQgdmFyICgjOTcyNClcblx0XHRpZiAoICFvbmx5SGFuZGxlcnMgJiYgIXNwZWNpYWwubm9CdWJibGUgJiYgIWlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdGJ1YmJsZVR5cGUgPSBzcGVjaWFsLmRlbGVnYXRlVHlwZSB8fCB0eXBlO1xuXHRcdFx0aWYgKCAhcmZvY3VzTW9ycGgudGVzdCggYnViYmxlVHlwZSArIHR5cGUgKSApIHtcblx0XHRcdFx0Y3VyID0gY3VyLnBhcmVudE5vZGU7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKCA7IGN1cjsgY3VyID0gY3VyLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdGV2ZW50UGF0aC5wdXNoKCBjdXIgKTtcblx0XHRcdFx0dG1wID0gY3VyO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBPbmx5IGFkZCB3aW5kb3cgaWYgd2UgZ290IHRvIGRvY3VtZW50IChlLmcuLCBub3QgcGxhaW4gb2JqIG9yIGRldGFjaGVkIERPTSlcblx0XHRcdGlmICggdG1wID09PSAoIGVsZW0ub3duZXJEb2N1bWVudCB8fCBkb2N1bWVudCApICkge1xuXHRcdFx0XHRldmVudFBhdGgucHVzaCggdG1wLmRlZmF1bHRWaWV3IHx8IHRtcC5wYXJlbnRXaW5kb3cgfHwgd2luZG93ICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRmlyZSBoYW5kbGVycyBvbiB0aGUgZXZlbnQgcGF0aFxuXHRcdGkgPSAwO1xuXHRcdHdoaWxlICggKCBjdXIgPSBldmVudFBhdGhbIGkrKyBdICkgJiYgIWV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cdFx0XHRsYXN0RWxlbWVudCA9IGN1cjtcblx0XHRcdGV2ZW50LnR5cGUgPSBpID4gMSA/XG5cdFx0XHRcdGJ1YmJsZVR5cGUgOlxuXHRcdFx0XHRzcGVjaWFsLmJpbmRUeXBlIHx8IHR5cGU7XG5cblx0XHRcdC8vIGpRdWVyeSBoYW5kbGVyXG5cdFx0XHRoYW5kbGUgPSAoXG5cdFx0XHRcdFx0ZGF0YVByaXYuZ2V0KCBjdXIsIFwiZXZlbnRzXCIgKSB8fCBPYmplY3QuY3JlYXRlKCBudWxsIClcblx0XHRcdFx0KVsgZXZlbnQudHlwZSBdICYmXG5cdFx0XHRcdGRhdGFQcml2LmdldCggY3VyLCBcImhhbmRsZVwiICk7XG5cdFx0XHRpZiAoIGhhbmRsZSApIHtcblx0XHRcdFx0aGFuZGxlLmFwcGx5KCBjdXIsIGRhdGEgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTmF0aXZlIGhhbmRsZXJcblx0XHRcdGhhbmRsZSA9IG9udHlwZSAmJiBjdXJbIG9udHlwZSBdO1xuXHRcdFx0aWYgKCBoYW5kbGUgJiYgaGFuZGxlLmFwcGx5ICYmIGFjY2VwdERhdGEoIGN1ciApICkge1xuXHRcdFx0XHRldmVudC5yZXN1bHQgPSBoYW5kbGUuYXBwbHkoIGN1ciwgZGF0YSApO1xuXHRcdFx0XHRpZiAoIGV2ZW50LnJlc3VsdCA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRldmVudC50eXBlID0gdHlwZTtcblxuXHRcdC8vIElmIG5vYm9keSBwcmV2ZW50ZWQgdGhlIGRlZmF1bHQgYWN0aW9uLCBkbyBpdCBub3dcblx0XHRpZiAoICFvbmx5SGFuZGxlcnMgJiYgIWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkge1xuXG5cdFx0XHRpZiAoICggIXNwZWNpYWwuX2RlZmF1bHQgfHxcblx0XHRcdFx0c3BlY2lhbC5fZGVmYXVsdC5hcHBseSggZXZlbnRQYXRoLnBvcCgpLCBkYXRhICkgPT09IGZhbHNlICkgJiZcblx0XHRcdFx0YWNjZXB0RGF0YSggZWxlbSApICkge1xuXG5cdFx0XHRcdC8vIENhbGwgYSBuYXRpdmUgRE9NIG1ldGhvZCBvbiB0aGUgdGFyZ2V0IHdpdGggdGhlIHNhbWUgbmFtZSBhcyB0aGUgZXZlbnQuXG5cdFx0XHRcdC8vIERvbid0IGRvIGRlZmF1bHQgYWN0aW9ucyBvbiB3aW5kb3csIHRoYXQncyB3aGVyZSBnbG9iYWwgdmFyaWFibGVzIGJlICgjNjE3MClcblx0XHRcdFx0aWYgKCBvbnR5cGUgJiYgaXNGdW5jdGlvbiggZWxlbVsgdHlwZSBdICkgJiYgIWlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdFx0XHQvLyBEb24ndCByZS10cmlnZ2VyIGFuIG9uRk9PIGV2ZW50IHdoZW4gd2UgY2FsbCBpdHMgRk9PKCkgbWV0aG9kXG5cdFx0XHRcdFx0dG1wID0gZWxlbVsgb250eXBlIF07XG5cblx0XHRcdFx0XHRpZiAoIHRtcCApIHtcblx0XHRcdFx0XHRcdGVsZW1bIG9udHlwZSBdID0gbnVsbDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBQcmV2ZW50IHJlLXRyaWdnZXJpbmcgb2YgdGhlIHNhbWUgZXZlbnQsIHNpbmNlIHdlIGFscmVhZHkgYnViYmxlZCBpdCBhYm92ZVxuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB0eXBlO1xuXG5cdFx0XHRcdFx0aWYgKCBldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICkge1xuXHRcdFx0XHRcdFx0bGFzdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggdHlwZSwgc3RvcFByb3BhZ2F0aW9uQ2FsbGJhY2sgKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRlbGVtWyB0eXBlIF0oKTtcblxuXHRcdFx0XHRcdGlmICggZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHtcblx0XHRcdFx0XHRcdGxhc3RFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIHR5cGUsIHN0b3BQcm9wYWdhdGlvbkNhbGxiYWNrICk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA9IHVuZGVmaW5lZDtcblxuXHRcdFx0XHRcdGlmICggdG1wICkge1xuXHRcdFx0XHRcdFx0ZWxlbVsgb250eXBlIF0gPSB0bXA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGV2ZW50LnJlc3VsdDtcblx0fSxcblxuXHQvLyBQaWdneWJhY2sgb24gYSBkb25vciBldmVudCB0byBzaW11bGF0ZSBhIGRpZmZlcmVudCBvbmVcblx0Ly8gVXNlZCBvbmx5IGZvciBgZm9jdXMoaW4gfCBvdXQpYCBldmVudHNcblx0c2ltdWxhdGU6IGZ1bmN0aW9uKCB0eXBlLCBlbGVtLCBldmVudCApIHtcblx0XHR2YXIgZSA9IGpRdWVyeS5leHRlbmQoXG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCksXG5cdFx0XHRldmVudCxcblx0XHRcdHtcblx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0aXNTaW11bGF0ZWQ6IHRydWVcblx0XHRcdH1cblx0XHQpO1xuXG5cdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoIGUsIG51bGwsIGVsZW0gKTtcblx0fVxuXG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblxuXHR0cmlnZ2VyOiBmdW5jdGlvbiggdHlwZSwgZGF0YSApIHtcblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyKCB0eXBlLCBkYXRhLCB0aGlzICk7XG5cdFx0fSApO1xuXHR9LFxuXHR0cmlnZ2VySGFuZGxlcjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7XG5cdFx0dmFyIGVsZW0gPSB0aGlzWyAwIF07XG5cdFx0aWYgKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5ldmVudC50cmlnZ2VyKCB0eXBlLCBkYXRhLCBlbGVtLCB0cnVlICk7XG5cdFx0fVxuXHR9XG59ICk7XG5cblxuLy8gU3VwcG9ydDogRmlyZWZveCA8PTQ0XG4vLyBGaXJlZm94IGRvZXNuJ3QgaGF2ZSBmb2N1cyhpbiB8IG91dCkgZXZlbnRzXG4vLyBSZWxhdGVkIHRpY2tldCAtIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Nzc4N1xuLy9cbi8vIFN1cHBvcnQ6IENocm9tZSA8PTQ4IC0gNDksIFNhZmFyaSA8PTkuMCAtIDkuMVxuLy8gZm9jdXMoaW4gfCBvdXQpIGV2ZW50cyBmaXJlIGFmdGVyIGZvY3VzICYgYmx1ciBldmVudHMsXG4vLyB3aGljaCBpcyBzcGVjIHZpb2xhdGlvbiAtIGh0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUV2ZW50cy8jZXZlbnRzLWZvY3VzZXZlbnQtZXZlbnQtb3JkZXJcbi8vIFJlbGF0ZWQgdGlja2V0IC0gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDQ5ODU3XG5pZiAoICFzdXBwb3J0LmZvY3VzaW4gKSB7XG5cdGpRdWVyeS5lYWNoKCB7IGZvY3VzOiBcImZvY3VzaW5cIiwgYmx1cjogXCJmb2N1c291dFwiIH0sIGZ1bmN0aW9uKCBvcmlnLCBmaXggKSB7XG5cblx0XHQvLyBBdHRhY2ggYSBzaW5nbGUgY2FwdHVyaW5nIGhhbmRsZXIgb24gdGhlIGRvY3VtZW50IHdoaWxlIHNvbWVvbmUgd2FudHMgZm9jdXNpbi9mb2N1c291dFxuXHRcdHZhciBoYW5kbGVyID0gZnVuY3Rpb24oIGV2ZW50ICkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnNpbXVsYXRlKCBmaXgsIGV2ZW50LnRhcmdldCwgalF1ZXJ5LmV2ZW50LmZpeCggZXZlbnQgKSApO1xuXHRcdH07XG5cblx0XHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgZml4IF0gPSB7XG5cdFx0XHRzZXR1cDogZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0Ly8gSGFuZGxlOiByZWd1bGFyIG5vZGVzICh2aWEgYHRoaXMub3duZXJEb2N1bWVudGApLCB3aW5kb3dcblx0XHRcdFx0Ly8gKHZpYSBgdGhpcy5kb2N1bWVudGApICYgZG9jdW1lbnQgKHZpYSBgdGhpc2ApLlxuXHRcdFx0XHR2YXIgZG9jID0gdGhpcy5vd25lckRvY3VtZW50IHx8IHRoaXMuZG9jdW1lbnQgfHwgdGhpcyxcblx0XHRcdFx0XHRhdHRhY2hlcyA9IGRhdGFQcml2LmFjY2VzcyggZG9jLCBmaXggKTtcblxuXHRcdFx0XHRpZiAoICFhdHRhY2hlcyApIHtcblx0XHRcdFx0XHRkb2MuYWRkRXZlbnRMaXN0ZW5lciggb3JpZywgaGFuZGxlciwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRhdGFQcml2LmFjY2VzcyggZG9jLCBmaXgsICggYXR0YWNoZXMgfHwgMCApICsgMSApO1xuXHRcdFx0fSxcblx0XHRcdHRlYXJkb3duOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0dmFyIGRvYyA9IHRoaXMub3duZXJEb2N1bWVudCB8fCB0aGlzLmRvY3VtZW50IHx8IHRoaXMsXG5cdFx0XHRcdFx0YXR0YWNoZXMgPSBkYXRhUHJpdi5hY2Nlc3MoIGRvYywgZml4ICkgLSAxO1xuXG5cdFx0XHRcdGlmICggIWF0dGFjaGVzICkge1xuXHRcdFx0XHRcdGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCBvcmlnLCBoYW5kbGVyLCB0cnVlICk7XG5cdFx0XHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBkb2MsIGZpeCApO1xuXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZGF0YVByaXYuYWNjZXNzKCBkb2MsIGZpeCwgYXR0YWNoZXMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH0gKTtcbn1cbnZhciBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbjtcblxudmFyIG5vbmNlID0geyBndWlkOiBEYXRlLm5vdygpIH07XG5cbnZhciBycXVlcnkgPSAoIC9cXD8vICk7XG5cblxuXG4vLyBDcm9zcy1icm93c2VyIHhtbCBwYXJzaW5nXG5qUXVlcnkucGFyc2VYTUwgPSBmdW5jdGlvbiggZGF0YSApIHtcblx0dmFyIHhtbDtcblx0aWYgKCAhZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8vIFN1cHBvcnQ6IElFIDkgLSAxMSBvbmx5XG5cdC8vIElFIHRocm93cyBvbiBwYXJzZUZyb21TdHJpbmcgd2l0aCBpbnZhbGlkIGlucHV0LlxuXHR0cnkge1xuXHRcdHhtbCA9ICggbmV3IHdpbmRvdy5ET01QYXJzZXIoKSApLnBhcnNlRnJvbVN0cmluZyggZGF0YSwgXCJ0ZXh0L3htbFwiICk7XG5cdH0gY2F0Y2ggKCBlICkge1xuXHRcdHhtbCA9IHVuZGVmaW5lZDtcblx0fVxuXG5cdGlmICggIXhtbCB8fCB4bWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIFwicGFyc2VyZXJyb3JcIiApLmxlbmd0aCApIHtcblx0XHRqUXVlcnkuZXJyb3IoIFwiSW52YWxpZCBYTUw6IFwiICsgZGF0YSApO1xuXHR9XG5cdHJldHVybiB4bWw7XG59O1xuXG5cbnZhclxuXHRyYnJhY2tldCA9IC9cXFtcXF0kLyxcblx0ckNSTEYgPSAvXFxyP1xcbi9nLFxuXHRyc3VibWl0dGVyVHlwZXMgPSAvXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksXG5cdHJzdWJtaXR0YWJsZSA9IC9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtcblxuZnVuY3Rpb24gYnVpbGRQYXJhbXMoIHByZWZpeCwgb2JqLCB0cmFkaXRpb25hbCwgYWRkICkge1xuXHR2YXIgbmFtZTtcblxuXHRpZiAoIEFycmF5LmlzQXJyYXkoIG9iaiApICkge1xuXG5cdFx0Ly8gU2VyaWFsaXplIGFycmF5IGl0ZW0uXG5cdFx0alF1ZXJ5LmVhY2goIG9iaiwgZnVuY3Rpb24oIGksIHYgKSB7XG5cdFx0XHRpZiAoIHRyYWRpdGlvbmFsIHx8IHJicmFja2V0LnRlc3QoIHByZWZpeCApICkge1xuXG5cdFx0XHRcdC8vIFRyZWF0IGVhY2ggYXJyYXkgaXRlbSBhcyBhIHNjYWxhci5cblx0XHRcdFx0YWRkKCBwcmVmaXgsIHYgKTtcblxuXHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHQvLyBJdGVtIGlzIG5vbi1zY2FsYXIgKGFycmF5IG9yIG9iamVjdCksIGVuY29kZSBpdHMgbnVtZXJpYyBpbmRleC5cblx0XHRcdFx0YnVpbGRQYXJhbXMoXG5cdFx0XHRcdFx0cHJlZml4ICsgXCJbXCIgKyAoIHR5cGVvZiB2ID09PSBcIm9iamVjdFwiICYmIHYgIT0gbnVsbCA/IGkgOiBcIlwiICkgKyBcIl1cIixcblx0XHRcdFx0XHR2LFxuXHRcdFx0XHRcdHRyYWRpdGlvbmFsLFxuXHRcdFx0XHRcdGFkZFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHR9IGVsc2UgaWYgKCAhdHJhZGl0aW9uYWwgJiYgdG9UeXBlKCBvYmogKSA9PT0gXCJvYmplY3RcIiApIHtcblxuXHRcdC8vIFNlcmlhbGl6ZSBvYmplY3QgaXRlbS5cblx0XHRmb3IgKCBuYW1lIGluIG9iaiApIHtcblx0XHRcdGJ1aWxkUGFyYW1zKCBwcmVmaXggKyBcIltcIiArIG5hbWUgKyBcIl1cIiwgb2JqWyBuYW1lIF0sIHRyYWRpdGlvbmFsLCBhZGQgKTtcblx0XHR9XG5cblx0fSBlbHNlIHtcblxuXHRcdC8vIFNlcmlhbGl6ZSBzY2FsYXIgaXRlbS5cblx0XHRhZGQoIHByZWZpeCwgb2JqICk7XG5cdH1cbn1cblxuLy8gU2VyaWFsaXplIGFuIGFycmF5IG9mIGZvcm0gZWxlbWVudHMgb3IgYSBzZXQgb2Zcbi8vIGtleS92YWx1ZXMgaW50byBhIHF1ZXJ5IHN0cmluZ1xualF1ZXJ5LnBhcmFtID0gZnVuY3Rpb24oIGEsIHRyYWRpdGlvbmFsICkge1xuXHR2YXIgcHJlZml4LFxuXHRcdHMgPSBbXSxcblx0XHRhZGQgPSBmdW5jdGlvbigga2V5LCB2YWx1ZU9yRnVuY3Rpb24gKSB7XG5cblx0XHRcdC8vIElmIHZhbHVlIGlzIGEgZnVuY3Rpb24sIGludm9rZSBpdCBhbmQgdXNlIGl0cyByZXR1cm4gdmFsdWVcblx0XHRcdHZhciB2YWx1ZSA9IGlzRnVuY3Rpb24oIHZhbHVlT3JGdW5jdGlvbiApID9cblx0XHRcdFx0dmFsdWVPckZ1bmN0aW9uKCkgOlxuXHRcdFx0XHR2YWx1ZU9yRnVuY3Rpb247XG5cblx0XHRcdHNbIHMubGVuZ3RoIF0gPSBlbmNvZGVVUklDb21wb25lbnQoIGtleSApICsgXCI9XCIgK1xuXHRcdFx0XHRlbmNvZGVVUklDb21wb25lbnQoIHZhbHVlID09IG51bGwgPyBcIlwiIDogdmFsdWUgKTtcblx0XHR9O1xuXG5cdGlmICggYSA9PSBudWxsICkge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cblx0Ly8gSWYgYW4gYXJyYXkgd2FzIHBhc3NlZCBpbiwgYXNzdW1lIHRoYXQgaXQgaXMgYW4gYXJyYXkgb2YgZm9ybSBlbGVtZW50cy5cblx0aWYgKCBBcnJheS5pc0FycmF5KCBhICkgfHwgKCBhLmpxdWVyeSAmJiAhalF1ZXJ5LmlzUGxhaW5PYmplY3QoIGEgKSApICkge1xuXG5cdFx0Ly8gU2VyaWFsaXplIHRoZSBmb3JtIGVsZW1lbnRzXG5cdFx0alF1ZXJ5LmVhY2goIGEsIGZ1bmN0aW9uKCkge1xuXHRcdFx0YWRkKCB0aGlzLm5hbWUsIHRoaXMudmFsdWUgKTtcblx0XHR9ICk7XG5cblx0fSBlbHNlIHtcblxuXHRcdC8vIElmIHRyYWRpdGlvbmFsLCBlbmNvZGUgdGhlIFwib2xkXCIgd2F5ICh0aGUgd2F5IDEuMy4yIG9yIG9sZGVyXG5cdFx0Ly8gZGlkIGl0KSwgb3RoZXJ3aXNlIGVuY29kZSBwYXJhbXMgcmVjdXJzaXZlbHkuXG5cdFx0Zm9yICggcHJlZml4IGluIGEgKSB7XG5cdFx0XHRidWlsZFBhcmFtcyggcHJlZml4LCBhWyBwcmVmaXggXSwgdHJhZGl0aW9uYWwsIGFkZCApO1xuXHRcdH1cblx0fVxuXG5cdC8vIFJldHVybiB0aGUgcmVzdWx0aW5nIHNlcmlhbGl6YXRpb25cblx0cmV0dXJuIHMuam9pbiggXCImXCIgKTtcbn07XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0c2VyaWFsaXplOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4galF1ZXJ5LnBhcmFtKCB0aGlzLnNlcmlhbGl6ZUFycmF5KCkgKTtcblx0fSxcblx0c2VyaWFsaXplQXJyYXk6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLm1hcCggZnVuY3Rpb24oKSB7XG5cblx0XHRcdC8vIENhbiBhZGQgcHJvcEhvb2sgZm9yIFwiZWxlbWVudHNcIiB0byBmaWx0ZXIgb3IgYWRkIGZvcm0gZWxlbWVudHNcblx0XHRcdHZhciBlbGVtZW50cyA9IGpRdWVyeS5wcm9wKCB0aGlzLCBcImVsZW1lbnRzXCIgKTtcblx0XHRcdHJldHVybiBlbGVtZW50cyA/IGpRdWVyeS5tYWtlQXJyYXkoIGVsZW1lbnRzICkgOiB0aGlzO1xuXHRcdH0gKVxuXHRcdC5maWx0ZXIoIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIHR5cGUgPSB0aGlzLnR5cGU7XG5cblx0XHRcdC8vIFVzZSAuaXMoIFwiOmRpc2FibGVkXCIgKSBzbyB0aGF0IGZpZWxkc2V0W2Rpc2FibGVkXSB3b3Jrc1xuXHRcdFx0cmV0dXJuIHRoaXMubmFtZSAmJiAhalF1ZXJ5KCB0aGlzICkuaXMoIFwiOmRpc2FibGVkXCIgKSAmJlxuXHRcdFx0XHRyc3VibWl0dGFibGUudGVzdCggdGhpcy5ub2RlTmFtZSApICYmICFyc3VibWl0dGVyVHlwZXMudGVzdCggdHlwZSApICYmXG5cdFx0XHRcdCggdGhpcy5jaGVja2VkIHx8ICFyY2hlY2thYmxlVHlwZS50ZXN0KCB0eXBlICkgKTtcblx0XHR9IClcblx0XHQubWFwKCBmdW5jdGlvbiggX2ksIGVsZW0gKSB7XG5cdFx0XHR2YXIgdmFsID0galF1ZXJ5KCB0aGlzICkudmFsKCk7XG5cblx0XHRcdGlmICggdmFsID09IG51bGwgKSB7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIEFycmF5LmlzQXJyYXkoIHZhbCApICkge1xuXHRcdFx0XHRyZXR1cm4galF1ZXJ5Lm1hcCggdmFsLCBmdW5jdGlvbiggdmFsICkge1xuXHRcdFx0XHRcdHJldHVybiB7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgXCJcXHJcXG5cIiApIH07XG5cdFx0XHRcdH0gKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHsgbmFtZTogZWxlbS5uYW1lLCB2YWx1ZTogdmFsLnJlcGxhY2UoIHJDUkxGLCBcIlxcclxcblwiICkgfTtcblx0XHR9ICkuZ2V0KCk7XG5cdH1cbn0gKTtcblxuXG52YXJcblx0cjIwID0gLyUyMC9nLFxuXHRyaGFzaCA9IC8jLiokLyxcblx0cmFudGlDYWNoZSA9IC8oWz8mXSlfPVteJl0qLyxcblx0cmhlYWRlcnMgPSAvXiguKj8pOlsgXFx0XSooW15cXHJcXG5dKikkL21nLFxuXG5cdC8vICM3NjUzLCAjODEyNSwgIzgxNTI6IGxvY2FsIHByb3RvY29sIGRldGVjdGlvblxuXHRybG9jYWxQcm90b2NvbCA9IC9eKD86YWJvdXR8YXBwfGFwcC1zdG9yYWdlfC4rLWV4dGVuc2lvbnxmaWxlfHJlc3x3aWRnZXQpOiQvLFxuXHRybm9Db250ZW50ID0gL14oPzpHRVR8SEVBRCkkLyxcblx0cnByb3RvY29sID0gL15cXC9cXC8vLFxuXG5cdC8qIFByZWZpbHRlcnNcblx0ICogMSkgVGhleSBhcmUgdXNlZnVsIHRvIGludHJvZHVjZSBjdXN0b20gZGF0YVR5cGVzIChzZWUgYWpheC9qc29ucC5qcyBmb3IgYW4gZXhhbXBsZSlcblx0ICogMikgVGhlc2UgYXJlIGNhbGxlZDpcblx0ICogICAgLSBCRUZPUkUgYXNraW5nIGZvciBhIHRyYW5zcG9ydFxuXHQgKiAgICAtIEFGVEVSIHBhcmFtIHNlcmlhbGl6YXRpb24gKHMuZGF0YSBpcyBhIHN0cmluZyBpZiBzLnByb2Nlc3NEYXRhIGlzIHRydWUpXG5cdCAqIDMpIGtleSBpcyB0aGUgZGF0YVR5cGVcblx0ICogNCkgdGhlIGNhdGNoYWxsIHN5bWJvbCBcIipcIiBjYW4gYmUgdXNlZFxuXHQgKiA1KSBleGVjdXRpb24gd2lsbCBzdGFydCB3aXRoIHRyYW5zcG9ydCBkYXRhVHlwZSBhbmQgVEhFTiBjb250aW51ZSBkb3duIHRvIFwiKlwiIGlmIG5lZWRlZFxuXHQgKi9cblx0cHJlZmlsdGVycyA9IHt9LFxuXG5cdC8qIFRyYW5zcG9ydHMgYmluZGluZ3Ncblx0ICogMSkga2V5IGlzIHRoZSBkYXRhVHlwZVxuXHQgKiAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sIFwiKlwiIGNhbiBiZSB1c2VkXG5cdCAqIDMpIHNlbGVjdGlvbiB3aWxsIHN0YXJ0IHdpdGggdHJhbnNwb3J0IGRhdGFUeXBlIGFuZCBUSEVOIGdvIHRvIFwiKlwiIGlmIG5lZWRlZFxuXHQgKi9cblx0dHJhbnNwb3J0cyA9IHt9LFxuXG5cdC8vIEF2b2lkIGNvbW1lbnQtcHJvbG9nIGNoYXIgc2VxdWVuY2UgKCMxMDA5OCk7IG11c3QgYXBwZWFzZSBsaW50IGFuZCBldmFkZSBjb21wcmVzc2lvblxuXHRhbGxUeXBlcyA9IFwiKi9cIi5jb25jYXQoIFwiKlwiICksXG5cblx0Ly8gQW5jaG9yIHRhZyBmb3IgcGFyc2luZyB0aGUgZG9jdW1lbnQgb3JpZ2luXG5cdG9yaWdpbkFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiYVwiICk7XG5cdG9yaWdpbkFuY2hvci5ocmVmID0gbG9jYXRpb24uaHJlZjtcblxuLy8gQmFzZSBcImNvbnN0cnVjdG9yXCIgZm9yIGpRdWVyeS5hamF4UHJlZmlsdGVyIGFuZCBqUXVlcnkuYWpheFRyYW5zcG9ydFxuZnVuY3Rpb24gYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBzdHJ1Y3R1cmUgKSB7XG5cblx0Ly8gZGF0YVR5cGVFeHByZXNzaW9uIGlzIG9wdGlvbmFsIGFuZCBkZWZhdWx0cyB0byBcIipcIlxuXHRyZXR1cm4gZnVuY3Rpb24oIGRhdGFUeXBlRXhwcmVzc2lvbiwgZnVuYyApIHtcblxuXHRcdGlmICggdHlwZW9mIGRhdGFUeXBlRXhwcmVzc2lvbiAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGZ1bmMgPSBkYXRhVHlwZUV4cHJlc3Npb247XG5cdFx0XHRkYXRhVHlwZUV4cHJlc3Npb24gPSBcIipcIjtcblx0XHR9XG5cblx0XHR2YXIgZGF0YVR5cGUsXG5cdFx0XHRpID0gMCxcblx0XHRcdGRhdGFUeXBlcyA9IGRhdGFUeXBlRXhwcmVzc2lvbi50b0xvd2VyQ2FzZSgpLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgW107XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIGZ1bmMgKSApIHtcblxuXHRcdFx0Ly8gRm9yIGVhY2ggZGF0YVR5cGUgaW4gdGhlIGRhdGFUeXBlRXhwcmVzc2lvblxuXHRcdFx0d2hpbGUgKCAoIGRhdGFUeXBlID0gZGF0YVR5cGVzWyBpKysgXSApICkge1xuXG5cdFx0XHRcdC8vIFByZXBlbmQgaWYgcmVxdWVzdGVkXG5cdFx0XHRcdGlmICggZGF0YVR5cGVbIDAgXSA9PT0gXCIrXCIgKSB7XG5cdFx0XHRcdFx0ZGF0YVR5cGUgPSBkYXRhVHlwZS5zbGljZSggMSApIHx8IFwiKlwiO1xuXHRcdFx0XHRcdCggc3RydWN0dXJlWyBkYXRhVHlwZSBdID0gc3RydWN0dXJlWyBkYXRhVHlwZSBdIHx8IFtdICkudW5zaGlmdCggZnVuYyApO1xuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSBhcHBlbmRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQoIHN0cnVjdHVyZVsgZGF0YVR5cGUgXSA9IHN0cnVjdHVyZVsgZGF0YVR5cGUgXSB8fCBbXSApLnB1c2goIGZ1bmMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fTtcbn1cblxuLy8gQmFzZSBpbnNwZWN0aW9uIGZ1bmN0aW9uIGZvciBwcmVmaWx0ZXJzIGFuZCB0cmFuc3BvcnRzXG5mdW5jdGlvbiBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggc3RydWN0dXJlLCBvcHRpb25zLCBvcmlnaW5hbE9wdGlvbnMsIGpxWEhSICkge1xuXG5cdHZhciBpbnNwZWN0ZWQgPSB7fSxcblx0XHRzZWVraW5nVHJhbnNwb3J0ID0gKCBzdHJ1Y3R1cmUgPT09IHRyYW5zcG9ydHMgKTtcblxuXHRmdW5jdGlvbiBpbnNwZWN0KCBkYXRhVHlwZSApIHtcblx0XHR2YXIgc2VsZWN0ZWQ7XG5cdFx0aW5zcGVjdGVkWyBkYXRhVHlwZSBdID0gdHJ1ZTtcblx0XHRqUXVlcnkuZWFjaCggc3RydWN0dXJlWyBkYXRhVHlwZSBdIHx8IFtdLCBmdW5jdGlvbiggXywgcHJlZmlsdGVyT3JGYWN0b3J5ICkge1xuXHRcdFx0dmFyIGRhdGFUeXBlT3JUcmFuc3BvcnQgPSBwcmVmaWx0ZXJPckZhY3RvcnkoIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIgKTtcblx0XHRcdGlmICggdHlwZW9mIGRhdGFUeXBlT3JUcmFuc3BvcnQgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdFx0IXNlZWtpbmdUcmFuc3BvcnQgJiYgIWluc3BlY3RlZFsgZGF0YVR5cGVPclRyYW5zcG9ydCBdICkge1xuXG5cdFx0XHRcdG9wdGlvbnMuZGF0YVR5cGVzLnVuc2hpZnQoIGRhdGFUeXBlT3JUcmFuc3BvcnQgKTtcblx0XHRcdFx0aW5zcGVjdCggZGF0YVR5cGVPclRyYW5zcG9ydCApO1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9IGVsc2UgaWYgKCBzZWVraW5nVHJhbnNwb3J0ICkge1xuXHRcdFx0XHRyZXR1cm4gISggc2VsZWN0ZWQgPSBkYXRhVHlwZU9yVHJhbnNwb3J0ICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHRcdHJldHVybiBzZWxlY3RlZDtcblx0fVxuXG5cdHJldHVybiBpbnNwZWN0KCBvcHRpb25zLmRhdGFUeXBlc1sgMCBdICkgfHwgIWluc3BlY3RlZFsgXCIqXCIgXSAmJiBpbnNwZWN0KCBcIipcIiApO1xufVxuXG4vLyBBIHNwZWNpYWwgZXh0ZW5kIGZvciBhamF4IG9wdGlvbnNcbi8vIHRoYXQgdGFrZXMgXCJmbGF0XCIgb3B0aW9ucyAobm90IHRvIGJlIGRlZXAgZXh0ZW5kZWQpXG4vLyBGaXhlcyAjOTg4N1xuZnVuY3Rpb24gYWpheEV4dGVuZCggdGFyZ2V0LCBzcmMgKSB7XG5cdHZhciBrZXksIGRlZXAsXG5cdFx0ZmxhdE9wdGlvbnMgPSBqUXVlcnkuYWpheFNldHRpbmdzLmZsYXRPcHRpb25zIHx8IHt9O1xuXG5cdGZvciAoIGtleSBpbiBzcmMgKSB7XG5cdFx0aWYgKCBzcmNbIGtleSBdICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHQoIGZsYXRPcHRpb25zWyBrZXkgXSA/IHRhcmdldCA6ICggZGVlcCB8fCAoIGRlZXAgPSB7fSApICkgKVsga2V5IF0gPSBzcmNbIGtleSBdO1xuXHRcdH1cblx0fVxuXHRpZiAoIGRlZXAgKSB7XG5cdFx0alF1ZXJ5LmV4dGVuZCggdHJ1ZSwgdGFyZ2V0LCBkZWVwICk7XG5cdH1cblxuXHRyZXR1cm4gdGFyZ2V0O1xufVxuXG4vKiBIYW5kbGVzIHJlc3BvbnNlcyB0byBhbiBhamF4IHJlcXVlc3Q6XG4gKiAtIGZpbmRzIHRoZSByaWdodCBkYXRhVHlwZSAobWVkaWF0ZXMgYmV0d2VlbiBjb250ZW50LXR5cGUgYW5kIGV4cGVjdGVkIGRhdGFUeXBlKVxuICogLSByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlXG4gKi9cbmZ1bmN0aW9uIGFqYXhIYW5kbGVSZXNwb25zZXMoIHMsIGpxWEhSLCByZXNwb25zZXMgKSB7XG5cblx0dmFyIGN0LCB0eXBlLCBmaW5hbERhdGFUeXBlLCBmaXJzdERhdGFUeXBlLFxuXHRcdGNvbnRlbnRzID0gcy5jb250ZW50cyxcblx0XHRkYXRhVHlwZXMgPSBzLmRhdGFUeXBlcztcblxuXHQvLyBSZW1vdmUgYXV0byBkYXRhVHlwZSBhbmQgZ2V0IGNvbnRlbnQtdHlwZSBpbiB0aGUgcHJvY2Vzc1xuXHR3aGlsZSAoIGRhdGFUeXBlc1sgMCBdID09PSBcIipcIiApIHtcblx0XHRkYXRhVHlwZXMuc2hpZnQoKTtcblx0XHRpZiAoIGN0ID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRjdCA9IHMubWltZVR5cGUgfHwganFYSFIuZ2V0UmVzcG9uc2VIZWFkZXIoIFwiQ29udGVudC1UeXBlXCIgKTtcblx0XHR9XG5cdH1cblxuXHQvLyBDaGVjayBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBrbm93biBjb250ZW50LXR5cGVcblx0aWYgKCBjdCApIHtcblx0XHRmb3IgKCB0eXBlIGluIGNvbnRlbnRzICkge1xuXHRcdFx0aWYgKCBjb250ZW50c1sgdHlwZSBdICYmIGNvbnRlbnRzWyB0eXBlIF0udGVzdCggY3QgKSApIHtcblx0XHRcdFx0ZGF0YVR5cGVzLnVuc2hpZnQoIHR5cGUgKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgYSByZXNwb25zZSBmb3IgdGhlIGV4cGVjdGVkIGRhdGFUeXBlXG5cdGlmICggZGF0YVR5cGVzWyAwIF0gaW4gcmVzcG9uc2VzICkge1xuXHRcdGZpbmFsRGF0YVR5cGUgPSBkYXRhVHlwZXNbIDAgXTtcblx0fSBlbHNlIHtcblxuXHRcdC8vIFRyeSBjb252ZXJ0aWJsZSBkYXRhVHlwZXNcblx0XHRmb3IgKCB0eXBlIGluIHJlc3BvbnNlcyApIHtcblx0XHRcdGlmICggIWRhdGFUeXBlc1sgMCBdIHx8IHMuY29udmVydGVyc1sgdHlwZSArIFwiIFwiICsgZGF0YVR5cGVzWyAwIF0gXSApIHtcblx0XHRcdFx0ZmluYWxEYXRhVHlwZSA9IHR5cGU7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCAhZmlyc3REYXRhVHlwZSApIHtcblx0XHRcdFx0Zmlyc3REYXRhVHlwZSA9IHR5cGU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gT3IganVzdCB1c2UgZmlyc3Qgb25lXG5cdFx0ZmluYWxEYXRhVHlwZSA9IGZpbmFsRGF0YVR5cGUgfHwgZmlyc3REYXRhVHlwZTtcblx0fVxuXG5cdC8vIElmIHdlIGZvdW5kIGEgZGF0YVR5cGVcblx0Ly8gV2UgYWRkIHRoZSBkYXRhVHlwZSB0byB0aGUgbGlzdCBpZiBuZWVkZWRcblx0Ly8gYW5kIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZVxuXHRpZiAoIGZpbmFsRGF0YVR5cGUgKSB7XG5cdFx0aWYgKCBmaW5hbERhdGFUeXBlICE9PSBkYXRhVHlwZXNbIDAgXSApIHtcblx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCBmaW5hbERhdGFUeXBlICk7XG5cdFx0fVxuXHRcdHJldHVybiByZXNwb25zZXNbIGZpbmFsRGF0YVR5cGUgXTtcblx0fVxufVxuXG4vKiBDaGFpbiBjb252ZXJzaW9ucyBnaXZlbiB0aGUgcmVxdWVzdCBhbmQgdGhlIG9yaWdpbmFsIHJlc3BvbnNlXG4gKiBBbHNvIHNldHMgdGhlIHJlc3BvbnNlWFhYIGZpZWxkcyBvbiB0aGUganFYSFIgaW5zdGFuY2VcbiAqL1xuZnVuY3Rpb24gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlLCBqcVhIUiwgaXNTdWNjZXNzICkge1xuXHR2YXIgY29udjIsIGN1cnJlbnQsIGNvbnYsIHRtcCwgcHJldixcblx0XHRjb252ZXJ0ZXJzID0ge30sXG5cblx0XHQvLyBXb3JrIHdpdGggYSBjb3B5IG9mIGRhdGFUeXBlcyBpbiBjYXNlIHdlIG5lZWQgdG8gbW9kaWZ5IGl0IGZvciBjb252ZXJzaW9uXG5cdFx0ZGF0YVR5cGVzID0gcy5kYXRhVHlwZXMuc2xpY2UoKTtcblxuXHQvLyBDcmVhdGUgY29udmVydGVycyBtYXAgd2l0aCBsb3dlcmNhc2VkIGtleXNcblx0aWYgKCBkYXRhVHlwZXNbIDEgXSApIHtcblx0XHRmb3IgKCBjb252IGluIHMuY29udmVydGVycyApIHtcblx0XHRcdGNvbnZlcnRlcnNbIGNvbnYudG9Mb3dlckNhc2UoKSBdID0gcy5jb252ZXJ0ZXJzWyBjb252IF07XG5cdFx0fVxuXHR9XG5cblx0Y3VycmVudCA9IGRhdGFUeXBlcy5zaGlmdCgpO1xuXG5cdC8vIENvbnZlcnQgdG8gZWFjaCBzZXF1ZW50aWFsIGRhdGFUeXBlXG5cdHdoaWxlICggY3VycmVudCApIHtcblxuXHRcdGlmICggcy5yZXNwb25zZUZpZWxkc1sgY3VycmVudCBdICkge1xuXHRcdFx0anFYSFJbIHMucmVzcG9uc2VGaWVsZHNbIGN1cnJlbnQgXSBdID0gcmVzcG9uc2U7XG5cdFx0fVxuXG5cdFx0Ly8gQXBwbHkgdGhlIGRhdGFGaWx0ZXIgaWYgcHJvdmlkZWRcblx0XHRpZiAoICFwcmV2ICYmIGlzU3VjY2VzcyAmJiBzLmRhdGFGaWx0ZXIgKSB7XG5cdFx0XHRyZXNwb25zZSA9IHMuZGF0YUZpbHRlciggcmVzcG9uc2UsIHMuZGF0YVR5cGUgKTtcblx0XHR9XG5cblx0XHRwcmV2ID0gY3VycmVudDtcblx0XHRjdXJyZW50ID0gZGF0YVR5cGVzLnNoaWZ0KCk7XG5cblx0XHRpZiAoIGN1cnJlbnQgKSB7XG5cblx0XHRcdC8vIFRoZXJlJ3Mgb25seSB3b3JrIHRvIGRvIGlmIGN1cnJlbnQgZGF0YVR5cGUgaXMgbm9uLWF1dG9cblx0XHRcdGlmICggY3VycmVudCA9PT0gXCIqXCIgKSB7XG5cblx0XHRcdFx0Y3VycmVudCA9IHByZXY7XG5cblx0XHRcdC8vIENvbnZlcnQgcmVzcG9uc2UgaWYgcHJldiBkYXRhVHlwZSBpcyBub24tYXV0byBhbmQgZGlmZmVycyBmcm9tIGN1cnJlbnRcblx0XHRcdH0gZWxzZSBpZiAoIHByZXYgIT09IFwiKlwiICYmIHByZXYgIT09IGN1cnJlbnQgKSB7XG5cblx0XHRcdFx0Ly8gU2VlayBhIGRpcmVjdCBjb252ZXJ0ZXJcblx0XHRcdFx0Y29udiA9IGNvbnZlcnRlcnNbIHByZXYgKyBcIiBcIiArIGN1cnJlbnQgXSB8fCBjb252ZXJ0ZXJzWyBcIiogXCIgKyBjdXJyZW50IF07XG5cblx0XHRcdFx0Ly8gSWYgbm9uZSBmb3VuZCwgc2VlayBhIHBhaXJcblx0XHRcdFx0aWYgKCAhY29udiApIHtcblx0XHRcdFx0XHRmb3IgKCBjb252MiBpbiBjb252ZXJ0ZXJzICkge1xuXG5cdFx0XHRcdFx0XHQvLyBJZiBjb252MiBvdXRwdXRzIGN1cnJlbnRcblx0XHRcdFx0XHRcdHRtcCA9IGNvbnYyLnNwbGl0KCBcIiBcIiApO1xuXHRcdFx0XHRcdFx0aWYgKCB0bXBbIDEgXSA9PT0gY3VycmVudCApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBJZiBwcmV2IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYWNjZXB0ZWQgaW5wdXRcblx0XHRcdFx0XHRcdFx0Y29udiA9IGNvbnZlcnRlcnNbIHByZXYgKyBcIiBcIiArIHRtcFsgMCBdIF0gfHxcblx0XHRcdFx0XHRcdFx0XHRjb252ZXJ0ZXJzWyBcIiogXCIgKyB0bXBbIDAgXSBdO1xuXHRcdFx0XHRcdFx0XHRpZiAoIGNvbnYgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBDb25kZW5zZSBlcXVpdmFsZW5jZSBjb252ZXJ0ZXJzXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBjb252ID09PSB0cnVlICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29udiA9IGNvbnZlcnRlcnNbIGNvbnYyIF07XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBPdGhlcndpc2UsIGluc2VydCB0aGUgaW50ZXJtZWRpYXRlIGRhdGFUeXBlXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggY29udmVydGVyc1sgY29udjIgXSAhPT0gdHJ1ZSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGN1cnJlbnQgPSB0bXBbIDAgXTtcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCB0bXBbIDEgXSApO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEFwcGx5IGNvbnZlcnRlciAoaWYgbm90IGFuIGVxdWl2YWxlbmNlKVxuXHRcdFx0XHRpZiAoIGNvbnYgIT09IHRydWUgKSB7XG5cblx0XHRcdFx0XHQvLyBVbmxlc3MgZXJyb3JzIGFyZSBhbGxvd2VkIHRvIGJ1YmJsZSwgY2F0Y2ggYW5kIHJldHVybiB0aGVtXG5cdFx0XHRcdFx0aWYgKCBjb252ICYmIHMudGhyb3dzICkge1xuXHRcdFx0XHRcdFx0cmVzcG9uc2UgPSBjb252KCByZXNwb25zZSApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRyZXNwb25zZSA9IGNvbnYoIHJlc3BvbnNlICk7XG5cdFx0XHRcdFx0XHR9IGNhdGNoICggZSApIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0XHRzdGF0ZTogXCJwYXJzZXJlcnJvclwiLFxuXHRcdFx0XHRcdFx0XHRcdGVycm9yOiBjb252ID8gZSA6IFwiTm8gY29udmVyc2lvbiBmcm9tIFwiICsgcHJldiArIFwiIHRvIFwiICsgY3VycmVudFxuXHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7IHN0YXRlOiBcInN1Y2Nlc3NcIiwgZGF0YTogcmVzcG9uc2UgfTtcbn1cblxualF1ZXJ5LmV4dGVuZCgge1xuXG5cdC8vIENvdW50ZXIgZm9yIGhvbGRpbmcgdGhlIG51bWJlciBvZiBhY3RpdmUgcXVlcmllc1xuXHRhY3RpdmU6IDAsXG5cblx0Ly8gTGFzdC1Nb2RpZmllZCBoZWFkZXIgY2FjaGUgZm9yIG5leHQgcmVxdWVzdFxuXHRsYXN0TW9kaWZpZWQ6IHt9LFxuXHRldGFnOiB7fSxcblxuXHRhamF4U2V0dGluZ3M6IHtcblx0XHR1cmw6IGxvY2F0aW9uLmhyZWYsXG5cdFx0dHlwZTogXCJHRVRcIixcblx0XHRpc0xvY2FsOiBybG9jYWxQcm90b2NvbC50ZXN0KCBsb2NhdGlvbi5wcm90b2NvbCApLFxuXHRcdGdsb2JhbDogdHJ1ZSxcblx0XHRwcm9jZXNzRGF0YTogdHJ1ZSxcblx0XHRhc3luYzogdHJ1ZSxcblx0XHRjb250ZW50VHlwZTogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLThcIixcblxuXHRcdC8qXG5cdFx0dGltZW91dDogMCxcblx0XHRkYXRhOiBudWxsLFxuXHRcdGRhdGFUeXBlOiBudWxsLFxuXHRcdHVzZXJuYW1lOiBudWxsLFxuXHRcdHBhc3N3b3JkOiBudWxsLFxuXHRcdGNhY2hlOiBudWxsLFxuXHRcdHRocm93czogZmFsc2UsXG5cdFx0dHJhZGl0aW9uYWw6IGZhbHNlLFxuXHRcdGhlYWRlcnM6IHt9LFxuXHRcdCovXG5cblx0XHRhY2NlcHRzOiB7XG5cdFx0XHRcIipcIjogYWxsVHlwZXMsXG5cdFx0XHR0ZXh0OiBcInRleHQvcGxhaW5cIixcblx0XHRcdGh0bWw6IFwidGV4dC9odG1sXCIsXG5cdFx0XHR4bWw6IFwiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbFwiLFxuXHRcdFx0anNvbjogXCJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L2phdmFzY3JpcHRcIlxuXHRcdH0sXG5cblx0XHRjb250ZW50czoge1xuXHRcdFx0eG1sOiAvXFxieG1sXFxiLyxcblx0XHRcdGh0bWw6IC9cXGJodG1sLyxcblx0XHRcdGpzb246IC9cXGJqc29uXFxiL1xuXHRcdH0sXG5cblx0XHRyZXNwb25zZUZpZWxkczoge1xuXHRcdFx0eG1sOiBcInJlc3BvbnNlWE1MXCIsXG5cdFx0XHR0ZXh0OiBcInJlc3BvbnNlVGV4dFwiLFxuXHRcdFx0anNvbjogXCJyZXNwb25zZUpTT05cIlxuXHRcdH0sXG5cblx0XHQvLyBEYXRhIGNvbnZlcnRlcnNcblx0XHQvLyBLZXlzIHNlcGFyYXRlIHNvdXJjZSAob3IgY2F0Y2hhbGwgXCIqXCIpIGFuZCBkZXN0aW5hdGlvbiB0eXBlcyB3aXRoIGEgc2luZ2xlIHNwYWNlXG5cdFx0Y29udmVydGVyczoge1xuXG5cdFx0XHQvLyBDb252ZXJ0IGFueXRoaW5nIHRvIHRleHRcblx0XHRcdFwiKiB0ZXh0XCI6IFN0cmluZyxcblxuXHRcdFx0Ly8gVGV4dCB0byBodG1sICh0cnVlID0gbm8gdHJhbnNmb3JtYXRpb24pXG5cdFx0XHRcInRleHQgaHRtbFwiOiB0cnVlLFxuXG5cdFx0XHQvLyBFdmFsdWF0ZSB0ZXh0IGFzIGEganNvbiBleHByZXNzaW9uXG5cdFx0XHRcInRleHQganNvblwiOiBKU09OLnBhcnNlLFxuXG5cdFx0XHQvLyBQYXJzZSB0ZXh0IGFzIHhtbFxuXHRcdFx0XCJ0ZXh0IHhtbFwiOiBqUXVlcnkucGFyc2VYTUxcblx0XHR9LFxuXG5cdFx0Ly8gRm9yIG9wdGlvbnMgdGhhdCBzaG91bGRuJ3QgYmUgZGVlcCBleHRlbmRlZDpcblx0XHQvLyB5b3UgY2FuIGFkZCB5b3VyIG93biBjdXN0b20gb3B0aW9ucyBoZXJlIGlmXG5cdFx0Ly8gYW5kIHdoZW4geW91IGNyZWF0ZSBvbmUgdGhhdCBzaG91bGRuJ3QgYmVcblx0XHQvLyBkZWVwIGV4dGVuZGVkIChzZWUgYWpheEV4dGVuZClcblx0XHRmbGF0T3B0aW9uczoge1xuXHRcdFx0dXJsOiB0cnVlLFxuXHRcdFx0Y29udGV4dDogdHJ1ZVxuXHRcdH1cblx0fSxcblxuXHQvLyBDcmVhdGVzIGEgZnVsbCBmbGVkZ2VkIHNldHRpbmdzIG9iamVjdCBpbnRvIHRhcmdldFxuXHQvLyB3aXRoIGJvdGggYWpheFNldHRpbmdzIGFuZCBzZXR0aW5ncyBmaWVsZHMuXG5cdC8vIElmIHRhcmdldCBpcyBvbWl0dGVkLCB3cml0ZXMgaW50byBhamF4U2V0dGluZ3MuXG5cdGFqYXhTZXR1cDogZnVuY3Rpb24oIHRhcmdldCwgc2V0dGluZ3MgKSB7XG5cdFx0cmV0dXJuIHNldHRpbmdzID9cblxuXHRcdFx0Ly8gQnVpbGRpbmcgYSBzZXR0aW5ncyBvYmplY3Rcblx0XHRcdGFqYXhFeHRlbmQoIGFqYXhFeHRlbmQoIHRhcmdldCwgalF1ZXJ5LmFqYXhTZXR0aW5ncyApLCBzZXR0aW5ncyApIDpcblxuXHRcdFx0Ly8gRXh0ZW5kaW5nIGFqYXhTZXR0aW5nc1xuXHRcdFx0YWpheEV4dGVuZCggalF1ZXJ5LmFqYXhTZXR0aW5ncywgdGFyZ2V0ICk7XG5cdH0sXG5cblx0YWpheFByZWZpbHRlcjogYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBwcmVmaWx0ZXJzICksXG5cdGFqYXhUcmFuc3BvcnQ6IGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cyApLFxuXG5cdC8vIE1haW4gbWV0aG9kXG5cdGFqYXg6IGZ1bmN0aW9uKCB1cmwsIG9wdGlvbnMgKSB7XG5cblx0XHQvLyBJZiB1cmwgaXMgYW4gb2JqZWN0LCBzaW11bGF0ZSBwcmUtMS41IHNpZ25hdHVyZVxuXHRcdGlmICggdHlwZW9mIHVybCA9PT0gXCJvYmplY3RcIiApIHtcblx0XHRcdG9wdGlvbnMgPSB1cmw7XG5cdFx0XHR1cmwgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0Ly8gRm9yY2Ugb3B0aW9ucyB0byBiZSBhbiBvYmplY3Rcblx0XHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuXHRcdHZhciB0cmFuc3BvcnQsXG5cblx0XHRcdC8vIFVSTCB3aXRob3V0IGFudGktY2FjaGUgcGFyYW1cblx0XHRcdGNhY2hlVVJMLFxuXG5cdFx0XHQvLyBSZXNwb25zZSBoZWFkZXJzXG5cdFx0XHRyZXNwb25zZUhlYWRlcnNTdHJpbmcsXG5cdFx0XHRyZXNwb25zZUhlYWRlcnMsXG5cblx0XHRcdC8vIHRpbWVvdXQgaGFuZGxlXG5cdFx0XHR0aW1lb3V0VGltZXIsXG5cblx0XHRcdC8vIFVybCBjbGVhbnVwIHZhclxuXHRcdFx0dXJsQW5jaG9yLFxuXG5cdFx0XHQvLyBSZXF1ZXN0IHN0YXRlIChiZWNvbWVzIGZhbHNlIHVwb24gc2VuZCBhbmQgdHJ1ZSB1cG9uIGNvbXBsZXRpb24pXG5cdFx0XHRjb21wbGV0ZWQsXG5cblx0XHRcdC8vIFRvIGtub3cgaWYgZ2xvYmFsIGV2ZW50cyBhcmUgdG8gYmUgZGlzcGF0Y2hlZFxuXHRcdFx0ZmlyZUdsb2JhbHMsXG5cblx0XHRcdC8vIExvb3AgdmFyaWFibGVcblx0XHRcdGksXG5cblx0XHRcdC8vIHVuY2FjaGVkIHBhcnQgb2YgdGhlIHVybFxuXHRcdFx0dW5jYWNoZWQsXG5cblx0XHRcdC8vIENyZWF0ZSB0aGUgZmluYWwgb3B0aW9ucyBvYmplY3Rcblx0XHRcdHMgPSBqUXVlcnkuYWpheFNldHVwKCB7fSwgb3B0aW9ucyApLFxuXG5cdFx0XHQvLyBDYWxsYmFja3MgY29udGV4dFxuXHRcdFx0Y2FsbGJhY2tDb250ZXh0ID0gcy5jb250ZXh0IHx8IHMsXG5cblx0XHRcdC8vIENvbnRleHQgZm9yIGdsb2JhbCBldmVudHMgaXMgY2FsbGJhY2tDb250ZXh0IGlmIGl0IGlzIGEgRE9NIG5vZGUgb3IgalF1ZXJ5IGNvbGxlY3Rpb25cblx0XHRcdGdsb2JhbEV2ZW50Q29udGV4dCA9IHMuY29udGV4dCAmJlxuXHRcdFx0XHQoIGNhbGxiYWNrQ29udGV4dC5ub2RlVHlwZSB8fCBjYWxsYmFja0NvbnRleHQuanF1ZXJ5ICkgP1xuXHRcdFx0XHRcdGpRdWVyeSggY2FsbGJhY2tDb250ZXh0ICkgOlxuXHRcdFx0XHRcdGpRdWVyeS5ldmVudCxcblxuXHRcdFx0Ly8gRGVmZXJyZWRzXG5cdFx0XHRkZWZlcnJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpLFxuXHRcdFx0Y29tcGxldGVEZWZlcnJlZCA9IGpRdWVyeS5DYWxsYmFja3MoIFwib25jZSBtZW1vcnlcIiApLFxuXG5cdFx0XHQvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrc1xuXHRcdFx0c3RhdHVzQ29kZSA9IHMuc3RhdHVzQ29kZSB8fCB7fSxcblxuXHRcdFx0Ly8gSGVhZGVycyAodGhleSBhcmUgc2VudCBhbGwgYXQgb25jZSlcblx0XHRcdHJlcXVlc3RIZWFkZXJzID0ge30sXG5cdFx0XHRyZXF1ZXN0SGVhZGVyc05hbWVzID0ge30sXG5cblx0XHRcdC8vIERlZmF1bHQgYWJvcnQgbWVzc2FnZVxuXHRcdFx0c3RyQWJvcnQgPSBcImNhbmNlbGVkXCIsXG5cblx0XHRcdC8vIEZha2UgeGhyXG5cdFx0XHRqcVhIUiA9IHtcblx0XHRcdFx0cmVhZHlTdGF0ZTogMCxcblxuXHRcdFx0XHQvLyBCdWlsZHMgaGVhZGVycyBoYXNodGFibGUgaWYgbmVlZGVkXG5cdFx0XHRcdGdldFJlc3BvbnNlSGVhZGVyOiBmdW5jdGlvbigga2V5ICkge1xuXHRcdFx0XHRcdHZhciBtYXRjaDtcblx0XHRcdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0XHRcdGlmICggIXJlc3BvbnNlSGVhZGVycyApIHtcblx0XHRcdFx0XHRcdFx0cmVzcG9uc2VIZWFkZXJzID0ge307XG5cdFx0XHRcdFx0XHRcdHdoaWxlICggKCBtYXRjaCA9IHJoZWFkZXJzLmV4ZWMoIHJlc3BvbnNlSGVhZGVyc1N0cmluZyApICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzcG9uc2VIZWFkZXJzWyBtYXRjaFsgMSBdLnRvTG93ZXJDYXNlKCkgKyBcIiBcIiBdID1cblx0XHRcdFx0XHRcdFx0XHRcdCggcmVzcG9uc2VIZWFkZXJzWyBtYXRjaFsgMSBdLnRvTG93ZXJDYXNlKCkgKyBcIiBcIiBdIHx8IFtdIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LmNvbmNhdCggbWF0Y2hbIDIgXSApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRtYXRjaCA9IHJlc3BvbnNlSGVhZGVyc1sga2V5LnRvTG93ZXJDYXNlKCkgKyBcIiBcIiBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gbWF0Y2ggPT0gbnVsbCA/IG51bGwgOiBtYXRjaC5qb2luKCBcIiwgXCIgKTtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBSYXcgc3RyaW5nXG5cdFx0XHRcdGdldEFsbFJlc3BvbnNlSGVhZGVyczogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGNvbXBsZXRlZCA/IHJlc3BvbnNlSGVhZGVyc1N0cmluZyA6IG51bGw7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gQ2FjaGVzIHRoZSBoZWFkZXJcblx0XHRcdFx0c2V0UmVxdWVzdEhlYWRlcjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkge1xuXHRcdFx0XHRcdGlmICggY29tcGxldGVkID09IG51bGwgKSB7XG5cdFx0XHRcdFx0XHRuYW1lID0gcmVxdWVzdEhlYWRlcnNOYW1lc1sgbmFtZS50b0xvd2VyQ2FzZSgpIF0gPVxuXHRcdFx0XHRcdFx0XHRyZXF1ZXN0SGVhZGVyc05hbWVzWyBuYW1lLnRvTG93ZXJDYXNlKCkgXSB8fCBuYW1lO1xuXHRcdFx0XHRcdFx0cmVxdWVzdEhlYWRlcnNbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBPdmVycmlkZXMgcmVzcG9uc2UgY29udGVudC10eXBlIGhlYWRlclxuXHRcdFx0XHRvdmVycmlkZU1pbWVUeXBlOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRcdFx0XHRpZiAoIGNvbXBsZXRlZCA9PSBudWxsICkge1xuXHRcdFx0XHRcdFx0cy5taW1lVHlwZSA9IHR5cGU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzXG5cdFx0XHRcdHN0YXR1c0NvZGU6IGZ1bmN0aW9uKCBtYXAgKSB7XG5cdFx0XHRcdFx0dmFyIGNvZGU7XG5cdFx0XHRcdFx0aWYgKCBtYXAgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBFeGVjdXRlIHRoZSBhcHByb3ByaWF0ZSBjYWxsYmFja3Ncblx0XHRcdFx0XHRcdFx0anFYSFIuYWx3YXlzKCBtYXBbIGpxWEhSLnN0YXR1cyBdICk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdC8vIExhenktYWRkIHRoZSBuZXcgY2FsbGJhY2tzIGluIGEgd2F5IHRoYXQgcHJlc2VydmVzIG9sZCBvbmVzXG5cdFx0XHRcdFx0XHRcdGZvciAoIGNvZGUgaW4gbWFwICkge1xuXHRcdFx0XHRcdFx0XHRcdHN0YXR1c0NvZGVbIGNvZGUgXSA9IFsgc3RhdHVzQ29kZVsgY29kZSBdLCBtYXBbIGNvZGUgXSBdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIENhbmNlbCB0aGUgcmVxdWVzdFxuXHRcdFx0XHRhYm9ydDogZnVuY3Rpb24oIHN0YXR1c1RleHQgKSB7XG5cdFx0XHRcdFx0dmFyIGZpbmFsVGV4dCA9IHN0YXR1c1RleHQgfHwgc3RyQWJvcnQ7XG5cdFx0XHRcdFx0aWYgKCB0cmFuc3BvcnQgKSB7XG5cdFx0XHRcdFx0XHR0cmFuc3BvcnQuYWJvcnQoIGZpbmFsVGV4dCApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRkb25lKCAwLCBmaW5hbFRleHQgKTtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fVxuXHRcdFx0fTtcblxuXHRcdC8vIEF0dGFjaCBkZWZlcnJlZHNcblx0XHRkZWZlcnJlZC5wcm9taXNlKCBqcVhIUiApO1xuXG5cdFx0Ly8gQWRkIHByb3RvY29sIGlmIG5vdCBwcm92aWRlZCAocHJlZmlsdGVycyBtaWdodCBleHBlY3QgaXQpXG5cdFx0Ly8gSGFuZGxlIGZhbHN5IHVybCBpbiB0aGUgc2V0dGluZ3Mgb2JqZWN0ICgjMTAwOTM6IGNvbnNpc3RlbmN5IHdpdGggb2xkIHNpZ25hdHVyZSlcblx0XHQvLyBXZSBhbHNvIHVzZSB0aGUgdXJsIHBhcmFtZXRlciBpZiBhdmFpbGFibGVcblx0XHRzLnVybCA9ICggKCB1cmwgfHwgcy51cmwgfHwgbG9jYXRpb24uaHJlZiApICsgXCJcIiApXG5cdFx0XHQucmVwbGFjZSggcnByb3RvY29sLCBsb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiApO1xuXG5cdFx0Ly8gQWxpYXMgbWV0aG9kIG9wdGlvbiB0byB0eXBlIGFzIHBlciB0aWNrZXQgIzEyMDA0XG5cdFx0cy50eXBlID0gb3B0aW9ucy5tZXRob2QgfHwgb3B0aW9ucy50eXBlIHx8IHMubWV0aG9kIHx8IHMudHlwZTtcblxuXHRcdC8vIEV4dHJhY3QgZGF0YVR5cGVzIGxpc3Rcblx0XHRzLmRhdGFUeXBlcyA9ICggcy5kYXRhVHlwZSB8fCBcIipcIiApLnRvTG93ZXJDYXNlKCkubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbIFwiXCIgXTtcblxuXHRcdC8vIEEgY3Jvc3MtZG9tYWluIHJlcXVlc3QgaXMgaW4gb3JkZXIgd2hlbiB0aGUgb3JpZ2luIGRvZXNuJ3QgbWF0Y2ggdGhlIGN1cnJlbnQgb3JpZ2luLlxuXHRcdGlmICggcy5jcm9zc0RvbWFpbiA9PSBudWxsICkge1xuXHRcdFx0dXJsQW5jaG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJhXCIgKTtcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgPD04IC0gMTEsIEVkZ2UgMTIgLSAxNVxuXHRcdFx0Ly8gSUUgdGhyb3dzIGV4Y2VwdGlvbiBvbiBhY2Nlc3NpbmcgdGhlIGhyZWYgcHJvcGVydHkgaWYgdXJsIGlzIG1hbGZvcm1lZCxcblx0XHRcdC8vIGUuZy4gaHR0cDovL2V4YW1wbGUuY29tOjgweC9cblx0XHRcdHRyeSB7XG5cdFx0XHRcdHVybEFuY2hvci5ocmVmID0gcy51cmw7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD04IC0gMTEgb25seVxuXHRcdFx0XHQvLyBBbmNob3IncyBob3N0IHByb3BlcnR5IGlzbid0IGNvcnJlY3RseSBzZXQgd2hlbiBzLnVybCBpcyByZWxhdGl2ZVxuXHRcdFx0XHR1cmxBbmNob3IuaHJlZiA9IHVybEFuY2hvci5ocmVmO1xuXHRcdFx0XHRzLmNyb3NzRG9tYWluID0gb3JpZ2luQW5jaG9yLnByb3RvY29sICsgXCIvL1wiICsgb3JpZ2luQW5jaG9yLmhvc3QgIT09XG5cdFx0XHRcdFx0dXJsQW5jaG9yLnByb3RvY29sICsgXCIvL1wiICsgdXJsQW5jaG9yLmhvc3Q7XG5cdFx0XHR9IGNhdGNoICggZSApIHtcblxuXHRcdFx0XHQvLyBJZiB0aGVyZSBpcyBhbiBlcnJvciBwYXJzaW5nIHRoZSBVUkwsIGFzc3VtZSBpdCBpcyBjcm9zc0RvbWFpbixcblx0XHRcdFx0Ly8gaXQgY2FuIGJlIHJlamVjdGVkIGJ5IHRoZSB0cmFuc3BvcnQgaWYgaXQgaXMgaW52YWxpZFxuXHRcdFx0XHRzLmNyb3NzRG9tYWluID0gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBDb252ZXJ0IGRhdGEgaWYgbm90IGFscmVhZHkgYSBzdHJpbmdcblx0XHRpZiAoIHMuZGF0YSAmJiBzLnByb2Nlc3NEYXRhICYmIHR5cGVvZiBzLmRhdGEgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRzLmRhdGEgPSBqUXVlcnkucGFyYW0oIHMuZGF0YSwgcy50cmFkaXRpb25hbCApO1xuXHRcdH1cblxuXHRcdC8vIEFwcGx5IHByZWZpbHRlcnNcblx0XHRpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggcHJlZmlsdGVycywgcywgb3B0aW9ucywganFYSFIgKTtcblxuXHRcdC8vIElmIHJlcXVlc3Qgd2FzIGFib3J0ZWQgaW5zaWRlIGEgcHJlZmlsdGVyLCBzdG9wIHRoZXJlXG5cdFx0aWYgKCBjb21wbGV0ZWQgKSB7XG5cdFx0XHRyZXR1cm4ganFYSFI7XG5cdFx0fVxuXG5cdFx0Ly8gV2UgY2FuIGZpcmUgZ2xvYmFsIGV2ZW50cyBhcyBvZiBub3cgaWYgYXNrZWQgdG9cblx0XHQvLyBEb24ndCBmaXJlIGV2ZW50cyBpZiBqUXVlcnkuZXZlbnQgaXMgdW5kZWZpbmVkIGluIGFuIEFNRC11c2FnZSBzY2VuYXJpbyAoIzE1MTE4KVxuXHRcdGZpcmVHbG9iYWxzID0galF1ZXJ5LmV2ZW50ICYmIHMuZ2xvYmFsO1xuXG5cdFx0Ly8gV2F0Y2ggZm9yIGEgbmV3IHNldCBvZiByZXF1ZXN0c1xuXHRcdGlmICggZmlyZUdsb2JhbHMgJiYgalF1ZXJ5LmFjdGl2ZSsrID09PSAwICkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoIFwiYWpheFN0YXJ0XCIgKTtcblx0XHR9XG5cblx0XHQvLyBVcHBlcmNhc2UgdGhlIHR5cGVcblx0XHRzLnR5cGUgPSBzLnR5cGUudG9VcHBlckNhc2UoKTtcblxuXHRcdC8vIERldGVybWluZSBpZiByZXF1ZXN0IGhhcyBjb250ZW50XG5cdFx0cy5oYXNDb250ZW50ID0gIXJub0NvbnRlbnQudGVzdCggcy50eXBlICk7XG5cblx0XHQvLyBTYXZlIHRoZSBVUkwgaW4gY2FzZSB3ZSdyZSB0b3lpbmcgd2l0aCB0aGUgSWYtTW9kaWZpZWQtU2luY2Vcblx0XHQvLyBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIgbGF0ZXIgb25cblx0XHQvLyBSZW1vdmUgaGFzaCB0byBzaW1wbGlmeSB1cmwgbWFuaXB1bGF0aW9uXG5cdFx0Y2FjaGVVUkwgPSBzLnVybC5yZXBsYWNlKCByaGFzaCwgXCJcIiApO1xuXG5cdFx0Ly8gTW9yZSBvcHRpb25zIGhhbmRsaW5nIGZvciByZXF1ZXN0cyB3aXRoIG5vIGNvbnRlbnRcblx0XHRpZiAoICFzLmhhc0NvbnRlbnQgKSB7XG5cblx0XHRcdC8vIFJlbWVtYmVyIHRoZSBoYXNoIHNvIHdlIGNhbiBwdXQgaXQgYmFja1xuXHRcdFx0dW5jYWNoZWQgPSBzLnVybC5zbGljZSggY2FjaGVVUkwubGVuZ3RoICk7XG5cblx0XHRcdC8vIElmIGRhdGEgaXMgYXZhaWxhYmxlIGFuZCBzaG91bGQgYmUgcHJvY2Vzc2VkLCBhcHBlbmQgZGF0YSB0byB1cmxcblx0XHRcdGlmICggcy5kYXRhICYmICggcy5wcm9jZXNzRGF0YSB8fCB0eXBlb2Ygcy5kYXRhID09PSBcInN0cmluZ1wiICkgKSB7XG5cdFx0XHRcdGNhY2hlVVJMICs9ICggcnF1ZXJ5LnRlc3QoIGNhY2hlVVJMICkgPyBcIiZcIiA6IFwiP1wiICkgKyBzLmRhdGE7XG5cblx0XHRcdFx0Ly8gIzk2ODI6IHJlbW92ZSBkYXRhIHNvIHRoYXQgaXQncyBub3QgdXNlZCBpbiBhbiBldmVudHVhbCByZXRyeVxuXHRcdFx0XHRkZWxldGUgcy5kYXRhO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBZGQgb3IgdXBkYXRlIGFudGktY2FjaGUgcGFyYW0gaWYgbmVlZGVkXG5cdFx0XHRpZiAoIHMuY2FjaGUgPT09IGZhbHNlICkge1xuXHRcdFx0XHRjYWNoZVVSTCA9IGNhY2hlVVJMLnJlcGxhY2UoIHJhbnRpQ2FjaGUsIFwiJDFcIiApO1xuXHRcdFx0XHR1bmNhY2hlZCA9ICggcnF1ZXJ5LnRlc3QoIGNhY2hlVVJMICkgPyBcIiZcIiA6IFwiP1wiICkgKyBcIl89XCIgKyAoIG5vbmNlLmd1aWQrKyApICtcblx0XHRcdFx0XHR1bmNhY2hlZDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUHV0IGhhc2ggYW5kIGFudGktY2FjaGUgb24gdGhlIFVSTCB0aGF0IHdpbGwgYmUgcmVxdWVzdGVkIChnaC0xNzMyKVxuXHRcdFx0cy51cmwgPSBjYWNoZVVSTCArIHVuY2FjaGVkO1xuXG5cdFx0Ly8gQ2hhbmdlICclMjAnIHRvICcrJyBpZiB0aGlzIGlzIGVuY29kZWQgZm9ybSBib2R5IGNvbnRlbnQgKGdoLTI2NTgpXG5cdFx0fSBlbHNlIGlmICggcy5kYXRhICYmIHMucHJvY2Vzc0RhdGEgJiZcblx0XHRcdCggcy5jb250ZW50VHlwZSB8fCBcIlwiICkuaW5kZXhPZiggXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiApID09PSAwICkge1xuXHRcdFx0cy5kYXRhID0gcy5kYXRhLnJlcGxhY2UoIHIyMCwgXCIrXCIgKTtcblx0XHR9XG5cblx0XHQvLyBTZXQgdGhlIElmLU1vZGlmaWVkLVNpbmNlIGFuZC9vciBJZi1Ob25lLU1hdGNoIGhlYWRlciwgaWYgaW4gaWZNb2RpZmllZCBtb2RlLlxuXHRcdGlmICggcy5pZk1vZGlmaWVkICkge1xuXHRcdFx0aWYgKCBqUXVlcnkubGFzdE1vZGlmaWVkWyBjYWNoZVVSTCBdICkge1xuXHRcdFx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKCBcIklmLU1vZGlmaWVkLVNpbmNlXCIsIGpRdWVyeS5sYXN0TW9kaWZpZWRbIGNhY2hlVVJMIF0gKTtcblx0XHRcdH1cblx0XHRcdGlmICggalF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gKSB7XG5cdFx0XHRcdGpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIFwiSWYtTm9uZS1NYXRjaFwiLCBqUXVlcnkuZXRhZ1sgY2FjaGVVUkwgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgY29ycmVjdCBoZWFkZXIsIGlmIGRhdGEgaXMgYmVpbmcgc2VudFxuXHRcdGlmICggcy5kYXRhICYmIHMuaGFzQ29udGVudCAmJiBzLmNvbnRlbnRUeXBlICE9PSBmYWxzZSB8fCBvcHRpb25zLmNvbnRlbnRUeXBlICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggXCJDb250ZW50LVR5cGVcIiwgcy5jb250ZW50VHlwZSApO1xuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgQWNjZXB0cyBoZWFkZXIgZm9yIHRoZSBzZXJ2ZXIsIGRlcGVuZGluZyBvbiB0aGUgZGF0YVR5cGVcblx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKFxuXHRcdFx0XCJBY2NlcHRcIixcblx0XHRcdHMuZGF0YVR5cGVzWyAwIF0gJiYgcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1sgMCBdIF0gP1xuXHRcdFx0XHRzLmFjY2VwdHNbIHMuZGF0YVR5cGVzWyAwIF0gXSArXG5cdFx0XHRcdFx0KCBzLmRhdGFUeXBlc1sgMCBdICE9PSBcIipcIiA/IFwiLCBcIiArIGFsbFR5cGVzICsgXCI7IHE9MC4wMVwiIDogXCJcIiApIDpcblx0XHRcdFx0cy5hY2NlcHRzWyBcIipcIiBdXG5cdFx0KTtcblxuXHRcdC8vIENoZWNrIGZvciBoZWFkZXJzIG9wdGlvblxuXHRcdGZvciAoIGkgaW4gcy5oZWFkZXJzICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggaSwgcy5oZWFkZXJzWyBpIF0gKTtcblx0XHR9XG5cblx0XHQvLyBBbGxvdyBjdXN0b20gaGVhZGVycy9taW1ldHlwZXMgYW5kIGVhcmx5IGFib3J0XG5cdFx0aWYgKCBzLmJlZm9yZVNlbmQgJiZcblx0XHRcdCggcy5iZWZvcmVTZW5kLmNhbGwoIGNhbGxiYWNrQ29udGV4dCwganFYSFIsIHMgKSA9PT0gZmFsc2UgfHwgY29tcGxldGVkICkgKSB7XG5cblx0XHRcdC8vIEFib3J0IGlmIG5vdCBkb25lIGFscmVhZHkgYW5kIHJldHVyblxuXHRcdFx0cmV0dXJuIGpxWEhSLmFib3J0KCk7XG5cdFx0fVxuXG5cdFx0Ly8gQWJvcnRpbmcgaXMgbm8gbG9uZ2VyIGEgY2FuY2VsbGF0aW9uXG5cdFx0c3RyQWJvcnQgPSBcImFib3J0XCI7XG5cblx0XHQvLyBJbnN0YWxsIGNhbGxiYWNrcyBvbiBkZWZlcnJlZHNcblx0XHRjb21wbGV0ZURlZmVycmVkLmFkZCggcy5jb21wbGV0ZSApO1xuXHRcdGpxWEhSLmRvbmUoIHMuc3VjY2VzcyApO1xuXHRcdGpxWEhSLmZhaWwoIHMuZXJyb3IgKTtcblxuXHRcdC8vIEdldCB0cmFuc3BvcnRcblx0XHR0cmFuc3BvcnQgPSBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cywgcywgb3B0aW9ucywganFYSFIgKTtcblxuXHRcdC8vIElmIG5vIHRyYW5zcG9ydCwgd2UgYXV0by1hYm9ydFxuXHRcdGlmICggIXRyYW5zcG9ydCApIHtcblx0XHRcdGRvbmUoIC0xLCBcIk5vIFRyYW5zcG9ydFwiICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSAxO1xuXG5cdFx0XHQvLyBTZW5kIGdsb2JhbCBldmVudFxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIFwiYWpheFNlbmRcIiwgWyBqcVhIUiwgcyBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIHJlcXVlc3Qgd2FzIGFib3J0ZWQgaW5zaWRlIGFqYXhTZW5kLCBzdG9wIHRoZXJlXG5cdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0cmV0dXJuIGpxWEhSO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBUaW1lb3V0XG5cdFx0XHRpZiAoIHMuYXN5bmMgJiYgcy50aW1lb3V0ID4gMCApIHtcblx0XHRcdFx0dGltZW91dFRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGpxWEhSLmFib3J0KCBcInRpbWVvdXRcIiApO1xuXHRcdFx0XHR9LCBzLnRpbWVvdXQgKTtcblx0XHRcdH1cblxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29tcGxldGVkID0gZmFsc2U7XG5cdFx0XHRcdHRyYW5zcG9ydC5zZW5kKCByZXF1ZXN0SGVhZGVycywgZG9uZSApO1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cblx0XHRcdFx0Ly8gUmV0aHJvdyBwb3N0LWNvbXBsZXRpb24gZXhjZXB0aW9uc1xuXHRcdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUHJvcGFnYXRlIG90aGVycyBhcyByZXN1bHRzXG5cdFx0XHRcdGRvbmUoIC0xLCBlICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsbGJhY2sgZm9yIHdoZW4gZXZlcnl0aGluZyBpcyBkb25lXG5cdFx0ZnVuY3Rpb24gZG9uZSggc3RhdHVzLCBuYXRpdmVTdGF0dXNUZXh0LCByZXNwb25zZXMsIGhlYWRlcnMgKSB7XG5cdFx0XHR2YXIgaXNTdWNjZXNzLCBzdWNjZXNzLCBlcnJvciwgcmVzcG9uc2UsIG1vZGlmaWVkLFxuXHRcdFx0XHRzdGF0dXNUZXh0ID0gbmF0aXZlU3RhdHVzVGV4dDtcblxuXHRcdFx0Ly8gSWdub3JlIHJlcGVhdCBpbnZvY2F0aW9uc1xuXHRcdFx0aWYgKCBjb21wbGV0ZWQgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29tcGxldGVkID0gdHJ1ZTtcblxuXHRcdFx0Ly8gQ2xlYXIgdGltZW91dCBpZiBpdCBleGlzdHNcblx0XHRcdGlmICggdGltZW91dFRpbWVyICkge1xuXHRcdFx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KCB0aW1lb3V0VGltZXIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRGVyZWZlcmVuY2UgdHJhbnNwb3J0IGZvciBlYXJseSBnYXJiYWdlIGNvbGxlY3Rpb25cblx0XHRcdC8vIChubyBtYXR0ZXIgaG93IGxvbmcgdGhlIGpxWEhSIG9iamVjdCB3aWxsIGJlIHVzZWQpXG5cdFx0XHR0cmFuc3BvcnQgPSB1bmRlZmluZWQ7XG5cblx0XHRcdC8vIENhY2hlIHJlc3BvbnNlIGhlYWRlcnNcblx0XHRcdHJlc3BvbnNlSGVhZGVyc1N0cmluZyA9IGhlYWRlcnMgfHwgXCJcIjtcblxuXHRcdFx0Ly8gU2V0IHJlYWR5U3RhdGVcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSBzdGF0dXMgPiAwID8gNCA6IDA7XG5cblx0XHRcdC8vIERldGVybWluZSBpZiBzdWNjZXNzZnVsXG5cdFx0XHRpc1N1Y2Nlc3MgPSBzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCB8fCBzdGF0dXMgPT09IDMwNDtcblxuXHRcdFx0Ly8gR2V0IHJlc3BvbnNlIGRhdGFcblx0XHRcdGlmICggcmVzcG9uc2VzICkge1xuXHRcdFx0XHRyZXNwb25zZSA9IGFqYXhIYW5kbGVSZXNwb25zZXMoIHMsIGpxWEhSLCByZXNwb25zZXMgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gVXNlIGEgbm9vcCBjb252ZXJ0ZXIgZm9yIG1pc3Npbmcgc2NyaXB0XG5cdFx0XHRpZiAoICFpc1N1Y2Nlc3MgJiYgalF1ZXJ5LmluQXJyYXkoIFwic2NyaXB0XCIsIHMuZGF0YVR5cGVzICkgPiAtMSApIHtcblx0XHRcdFx0cy5jb252ZXJ0ZXJzWyBcInRleHQgc2NyaXB0XCIgXSA9IGZ1bmN0aW9uKCkge307XG5cdFx0XHR9XG5cblx0XHRcdC8vIENvbnZlcnQgbm8gbWF0dGVyIHdoYXQgKHRoYXQgd2F5IHJlc3BvbnNlWFhYIGZpZWxkcyBhcmUgYWx3YXlzIHNldClcblx0XHRcdHJlc3BvbnNlID0gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlLCBqcVhIUiwgaXNTdWNjZXNzICk7XG5cblx0XHRcdC8vIElmIHN1Y2Nlc3NmdWwsIGhhbmRsZSB0eXBlIGNoYWluaW5nXG5cdFx0XHRpZiAoIGlzU3VjY2VzcyApIHtcblxuXHRcdFx0XHQvLyBTZXQgdGhlIElmLU1vZGlmaWVkLVNpbmNlIGFuZC9vciBJZi1Ob25lLU1hdGNoIGhlYWRlciwgaWYgaW4gaWZNb2RpZmllZCBtb2RlLlxuXHRcdFx0XHRpZiAoIHMuaWZNb2RpZmllZCApIHtcblx0XHRcdFx0XHRtb2RpZmllZCA9IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKCBcIkxhc3QtTW9kaWZpZWRcIiApO1xuXHRcdFx0XHRcdGlmICggbW9kaWZpZWQgKSB7XG5cdFx0XHRcdFx0XHRqUXVlcnkubGFzdE1vZGlmaWVkWyBjYWNoZVVSTCBdID0gbW9kaWZpZWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdG1vZGlmaWVkID0ganFYSFIuZ2V0UmVzcG9uc2VIZWFkZXIoIFwiZXRhZ1wiICk7XG5cdFx0XHRcdFx0aWYgKCBtb2RpZmllZCApIHtcblx0XHRcdFx0XHRcdGpRdWVyeS5ldGFnWyBjYWNoZVVSTCBdID0gbW9kaWZpZWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gaWYgbm8gY29udGVudFxuXHRcdFx0XHRpZiAoIHN0YXR1cyA9PT0gMjA0IHx8IHMudHlwZSA9PT0gXCJIRUFEXCIgKSB7XG5cdFx0XHRcdFx0c3RhdHVzVGV4dCA9IFwibm9jb250ZW50XCI7XG5cblx0XHRcdFx0Ly8gaWYgbm90IG1vZGlmaWVkXG5cdFx0XHRcdH0gZWxzZSBpZiAoIHN0YXR1cyA9PT0gMzA0ICkge1xuXHRcdFx0XHRcdHN0YXR1c1RleHQgPSBcIm5vdG1vZGlmaWVkXCI7XG5cblx0XHRcdFx0Ly8gSWYgd2UgaGF2ZSBkYXRhLCBsZXQncyBjb252ZXJ0IGl0XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c3RhdHVzVGV4dCA9IHJlc3BvbnNlLnN0YXRlO1xuXHRcdFx0XHRcdHN1Y2Nlc3MgPSByZXNwb25zZS5kYXRhO1xuXHRcdFx0XHRcdGVycm9yID0gcmVzcG9uc2UuZXJyb3I7XG5cdFx0XHRcdFx0aXNTdWNjZXNzID0gIWVycm9yO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdC8vIEV4dHJhY3QgZXJyb3IgZnJvbSBzdGF0dXNUZXh0IGFuZCBub3JtYWxpemUgZm9yIG5vbi1hYm9ydHNcblx0XHRcdFx0ZXJyb3IgPSBzdGF0dXNUZXh0O1xuXHRcdFx0XHRpZiAoIHN0YXR1cyB8fCAhc3RhdHVzVGV4dCApIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gXCJlcnJvclwiO1xuXHRcdFx0XHRcdGlmICggc3RhdHVzIDwgMCApIHtcblx0XHRcdFx0XHRcdHN0YXR1cyA9IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNldCBkYXRhIGZvciB0aGUgZmFrZSB4aHIgb2JqZWN0XG5cdFx0XHRqcVhIUi5zdGF0dXMgPSBzdGF0dXM7XG5cdFx0XHRqcVhIUi5zdGF0dXNUZXh0ID0gKCBuYXRpdmVTdGF0dXNUZXh0IHx8IHN0YXR1c1RleHQgKSArIFwiXCI7XG5cblx0XHRcdC8vIFN1Y2Nlc3MvRXJyb3Jcblx0XHRcdGlmICggaXNTdWNjZXNzICkge1xuXHRcdFx0XHRkZWZlcnJlZC5yZXNvbHZlV2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIHN1Y2Nlc3MsIHN0YXR1c1RleHQsIGpxWEhSIF0gKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGRlZmVycmVkLnJlamVjdFdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBqcVhIUiwgc3RhdHVzVGV4dCwgZXJyb3IgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrc1xuXHRcdFx0anFYSFIuc3RhdHVzQ29kZSggc3RhdHVzQ29kZSApO1xuXHRcdFx0c3RhdHVzQ29kZSA9IHVuZGVmaW5lZDtcblxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIGlzU3VjY2VzcyA/IFwiYWpheFN1Y2Nlc3NcIiA6IFwiYWpheEVycm9yXCIsXG5cdFx0XHRcdFx0WyBqcVhIUiwgcywgaXNTdWNjZXNzID8gc3VjY2VzcyA6IGVycm9yIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ29tcGxldGVcblx0XHRcdGNvbXBsZXRlRGVmZXJyZWQuZmlyZVdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBqcVhIUiwgc3RhdHVzVGV4dCBdICk7XG5cblx0XHRcdGlmICggZmlyZUdsb2JhbHMgKSB7XG5cdFx0XHRcdGdsb2JhbEV2ZW50Q29udGV4dC50cmlnZ2VyKCBcImFqYXhDb21wbGV0ZVwiLCBbIGpxWEhSLCBzIF0gKTtcblxuXHRcdFx0XHQvLyBIYW5kbGUgdGhlIGdsb2JhbCBBSkFYIGNvdW50ZXJcblx0XHRcdFx0aWYgKCAhKCAtLWpRdWVyeS5hY3RpdmUgKSApIHtcblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlciggXCJhamF4U3RvcFwiICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4ganFYSFI7XG5cdH0sXG5cblx0Z2V0SlNPTjogZnVuY3Rpb24oIHVybCwgZGF0YSwgY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5nZXQoIHVybCwgZGF0YSwgY2FsbGJhY2ssIFwianNvblwiICk7XG5cdH0sXG5cblx0Z2V0U2NyaXB0OiBmdW5jdGlvbiggdXJsLCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmdldCggdXJsLCB1bmRlZmluZWQsIGNhbGxiYWNrLCBcInNjcmlwdFwiICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmVhY2goIFsgXCJnZXRcIiwgXCJwb3N0XCIgXSwgZnVuY3Rpb24oIF9pLCBtZXRob2QgKSB7XG5cdGpRdWVyeVsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjaywgdHlwZSApIHtcblxuXHRcdC8vIFNoaWZ0IGFyZ3VtZW50cyBpZiBkYXRhIGFyZ3VtZW50IHdhcyBvbWl0dGVkXG5cdFx0aWYgKCBpc0Z1bmN0aW9uKCBkYXRhICkgKSB7XG5cdFx0XHR0eXBlID0gdHlwZSB8fCBjYWxsYmFjaztcblx0XHRcdGNhbGxiYWNrID0gZGF0YTtcblx0XHRcdGRhdGEgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0Ly8gVGhlIHVybCBjYW4gYmUgYW4gb3B0aW9ucyBvYmplY3QgKHdoaWNoIHRoZW4gbXVzdCBoYXZlIC51cmwpXG5cdFx0cmV0dXJuIGpRdWVyeS5hamF4KCBqUXVlcnkuZXh0ZW5kKCB7XG5cdFx0XHR1cmw6IHVybCxcblx0XHRcdHR5cGU6IG1ldGhvZCxcblx0XHRcdGRhdGFUeXBlOiB0eXBlLFxuXHRcdFx0ZGF0YTogZGF0YSxcblx0XHRcdHN1Y2Nlc3M6IGNhbGxiYWNrXG5cdFx0fSwgalF1ZXJ5LmlzUGxhaW5PYmplY3QoIHVybCApICYmIHVybCApICk7XG5cdH07XG59ICk7XG5cbmpRdWVyeS5hamF4UHJlZmlsdGVyKCBmdW5jdGlvbiggcyApIHtcblx0dmFyIGk7XG5cdGZvciAoIGkgaW4gcy5oZWFkZXJzICkge1xuXHRcdGlmICggaS50b0xvd2VyQ2FzZSgpID09PSBcImNvbnRlbnQtdHlwZVwiICkge1xuXHRcdFx0cy5jb250ZW50VHlwZSA9IHMuaGVhZGVyc1sgaSBdIHx8IFwiXCI7XG5cdFx0fVxuXHR9XG59ICk7XG5cblxualF1ZXJ5Ll9ldmFsVXJsID0gZnVuY3Rpb24oIHVybCwgb3B0aW9ucywgZG9jICkge1xuXHRyZXR1cm4galF1ZXJ5LmFqYXgoIHtcblx0XHR1cmw6IHVybCxcblxuXHRcdC8vIE1ha2UgdGhpcyBleHBsaWNpdCwgc2luY2UgdXNlciBjYW4gb3ZlcnJpZGUgdGhpcyB0aHJvdWdoIGFqYXhTZXR1cCAoIzExMjY0KVxuXHRcdHR5cGU6IFwiR0VUXCIsXG5cdFx0ZGF0YVR5cGU6IFwic2NyaXB0XCIsXG5cdFx0Y2FjaGU6IHRydWUsXG5cdFx0YXN5bmM6IGZhbHNlLFxuXHRcdGdsb2JhbDogZmFsc2UsXG5cblx0XHQvLyBPbmx5IGV2YWx1YXRlIHRoZSByZXNwb25zZSBpZiBpdCBpcyBzdWNjZXNzZnVsIChnaC00MTI2KVxuXHRcdC8vIGRhdGFGaWx0ZXIgaXMgbm90IGludm9rZWQgZm9yIGZhaWx1cmUgcmVzcG9uc2VzLCBzbyB1c2luZyBpdCBpbnN0ZWFkXG5cdFx0Ly8gb2YgdGhlIGRlZmF1bHQgY29udmVydGVyIGlzIGtsdWRneSBidXQgaXQgd29ya3MuXG5cdFx0Y29udmVydGVyczoge1xuXHRcdFx0XCJ0ZXh0IHNjcmlwdFwiOiBmdW5jdGlvbigpIHt9XG5cdFx0fSxcblx0XHRkYXRhRmlsdGVyOiBmdW5jdGlvbiggcmVzcG9uc2UgKSB7XG5cdFx0XHRqUXVlcnkuZ2xvYmFsRXZhbCggcmVzcG9uc2UsIG9wdGlvbnMsIGRvYyApO1xuXHRcdH1cblx0fSApO1xufTtcblxuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdHdyYXBBbGw6IGZ1bmN0aW9uKCBodG1sICkge1xuXHRcdHZhciB3cmFwO1xuXG5cdFx0aWYgKCB0aGlzWyAwIF0gKSB7XG5cdFx0XHRpZiAoIGlzRnVuY3Rpb24oIGh0bWwgKSApIHtcblx0XHRcdFx0aHRtbCA9IGh0bWwuY2FsbCggdGhpc1sgMCBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFRoZSBlbGVtZW50cyB0byB3cmFwIHRoZSB0YXJnZXQgYXJvdW5kXG5cdFx0XHR3cmFwID0galF1ZXJ5KCBodG1sLCB0aGlzWyAwIF0ub3duZXJEb2N1bWVudCApLmVxKCAwICkuY2xvbmUoIHRydWUgKTtcblxuXHRcdFx0aWYgKCB0aGlzWyAwIF0ucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0d3JhcC5pbnNlcnRCZWZvcmUoIHRoaXNbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHR3cmFwLm1hcCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHZhciBlbGVtID0gdGhpcztcblxuXHRcdFx0XHR3aGlsZSAoIGVsZW0uZmlyc3RFbGVtZW50Q2hpbGQgKSB7XG5cdFx0XHRcdFx0ZWxlbSA9IGVsZW0uZmlyc3RFbGVtZW50Q2hpbGQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gZWxlbTtcblx0XHRcdH0gKS5hcHBlbmQoIHRoaXMgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHR3cmFwSW5uZXI6IGZ1bmN0aW9uKCBodG1sICkge1xuXHRcdGlmICggaXNGdW5jdGlvbiggaHRtbCApICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLndyYXBJbm5lciggaHRtbC5jYWxsKCB0aGlzLCBpICkgKTtcblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBzZWxmID0galF1ZXJ5KCB0aGlzICksXG5cdFx0XHRcdGNvbnRlbnRzID0gc2VsZi5jb250ZW50cygpO1xuXG5cdFx0XHRpZiAoIGNvbnRlbnRzLmxlbmd0aCApIHtcblx0XHRcdFx0Y29udGVudHMud3JhcEFsbCggaHRtbCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzZWxmLmFwcGVuZCggaHRtbCApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHR3cmFwOiBmdW5jdGlvbiggaHRtbCApIHtcblx0XHR2YXIgaHRtbElzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uKCBodG1sICk7XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaSApIHtcblx0XHRcdGpRdWVyeSggdGhpcyApLndyYXBBbGwoIGh0bWxJc0Z1bmN0aW9uID8gaHRtbC5jYWxsKCB0aGlzLCBpICkgOiBodG1sICk7XG5cdFx0fSApO1xuXHR9LFxuXG5cdHVud3JhcDogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHRoaXMucGFyZW50KCBzZWxlY3RvciApLm5vdCggXCJib2R5XCIgKS5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdGpRdWVyeSggdGhpcyApLnJlcGxhY2VXaXRoKCB0aGlzLmNoaWxkTm9kZXMgKTtcblx0XHR9ICk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cbn0gKTtcblxuXG5qUXVlcnkuZXhwci5wc2V1ZG9zLmhpZGRlbiA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRyZXR1cm4gIWpRdWVyeS5leHByLnBzZXVkb3MudmlzaWJsZSggZWxlbSApO1xufTtcbmpRdWVyeS5leHByLnBzZXVkb3MudmlzaWJsZSA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRyZXR1cm4gISEoIGVsZW0ub2Zmc2V0V2lkdGggfHwgZWxlbS5vZmZzZXRIZWlnaHQgfHwgZWxlbS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCApO1xufTtcblxuXG5cblxualF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIgPSBmdW5jdGlvbigpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gbmV3IHdpbmRvdy5YTUxIdHRwUmVxdWVzdCgpO1xuXHR9IGNhdGNoICggZSApIHt9XG59O1xuXG52YXIgeGhyU3VjY2Vzc1N0YXR1cyA9IHtcblxuXHRcdC8vIEZpbGUgcHJvdG9jb2wgYWx3YXlzIHlpZWxkcyBzdGF0dXMgY29kZSAwLCBhc3N1bWUgMjAwXG5cdFx0MDogMjAwLFxuXG5cdFx0Ly8gU3VwcG9ydDogSUUgPD05IG9ubHlcblx0XHQvLyAjMTQ1MDogc29tZXRpbWVzIElFIHJldHVybnMgMTIyMyB3aGVuIGl0IHNob3VsZCBiZSAyMDRcblx0XHQxMjIzOiAyMDRcblx0fSxcblx0eGhyU3VwcG9ydGVkID0galF1ZXJ5LmFqYXhTZXR0aW5ncy54aHIoKTtcblxuc3VwcG9ydC5jb3JzID0gISF4aHJTdXBwb3J0ZWQgJiYgKCBcIndpdGhDcmVkZW50aWFsc1wiIGluIHhoclN1cHBvcnRlZCApO1xuc3VwcG9ydC5hamF4ID0geGhyU3VwcG9ydGVkID0gISF4aHJTdXBwb3J0ZWQ7XG5cbmpRdWVyeS5hamF4VHJhbnNwb3J0KCBmdW5jdGlvbiggb3B0aW9ucyApIHtcblx0dmFyIGNhbGxiYWNrLCBlcnJvckNhbGxiYWNrO1xuXG5cdC8vIENyb3NzIGRvbWFpbiBvbmx5IGFsbG93ZWQgaWYgc3VwcG9ydGVkIHRocm91Z2ggWE1MSHR0cFJlcXVlc3Rcblx0aWYgKCBzdXBwb3J0LmNvcnMgfHwgeGhyU3VwcG9ydGVkICYmICFvcHRpb25zLmNyb3NzRG9tYWluICkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRzZW5kOiBmdW5jdGlvbiggaGVhZGVycywgY29tcGxldGUgKSB7XG5cdFx0XHRcdHZhciBpLFxuXHRcdFx0XHRcdHhociA9IG9wdGlvbnMueGhyKCk7XG5cblx0XHRcdFx0eGhyLm9wZW4oXG5cdFx0XHRcdFx0b3B0aW9ucy50eXBlLFxuXHRcdFx0XHRcdG9wdGlvbnMudXJsLFxuXHRcdFx0XHRcdG9wdGlvbnMuYXN5bmMsXG5cdFx0XHRcdFx0b3B0aW9ucy51c2VybmFtZSxcblx0XHRcdFx0XHRvcHRpb25zLnBhc3N3b3JkXG5cdFx0XHRcdCk7XG5cblx0XHRcdFx0Ly8gQXBwbHkgY3VzdG9tIGZpZWxkcyBpZiBwcm92aWRlZFxuXHRcdFx0XHRpZiAoIG9wdGlvbnMueGhyRmllbGRzICkge1xuXHRcdFx0XHRcdGZvciAoIGkgaW4gb3B0aW9ucy54aHJGaWVsZHMgKSB7XG5cdFx0XHRcdFx0XHR4aHJbIGkgXSA9IG9wdGlvbnMueGhyRmllbGRzWyBpIF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gT3ZlcnJpZGUgbWltZSB0eXBlIGlmIG5lZWRlZFxuXHRcdFx0XHRpZiAoIG9wdGlvbnMubWltZVR5cGUgJiYgeGhyLm92ZXJyaWRlTWltZVR5cGUgKSB7XG5cdFx0XHRcdFx0eGhyLm92ZXJyaWRlTWltZVR5cGUoIG9wdGlvbnMubWltZVR5cGUgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFgtUmVxdWVzdGVkLVdpdGggaGVhZGVyXG5cdFx0XHRcdC8vIEZvciBjcm9zcy1kb21haW4gcmVxdWVzdHMsIHNlZWluZyBhcyBjb25kaXRpb25zIGZvciBhIHByZWZsaWdodCBhcmVcblx0XHRcdFx0Ly8gYWtpbiB0byBhIGppZ3NhdyBwdXp6bGUsIHdlIHNpbXBseSBuZXZlciBzZXQgaXQgdG8gYmUgc3VyZS5cblx0XHRcdFx0Ly8gKGl0IGNhbiBhbHdheXMgYmUgc2V0IG9uIGEgcGVyLXJlcXVlc3QgYmFzaXMgb3IgZXZlbiB1c2luZyBhamF4U2V0dXApXG5cdFx0XHRcdC8vIEZvciBzYW1lLWRvbWFpbiByZXF1ZXN0cywgd29uJ3QgY2hhbmdlIGhlYWRlciBpZiBhbHJlYWR5IHByb3ZpZGVkLlxuXHRcdFx0XHRpZiAoICFvcHRpb25zLmNyb3NzRG9tYWluICYmICFoZWFkZXJzWyBcIlgtUmVxdWVzdGVkLVdpdGhcIiBdICkge1xuXHRcdFx0XHRcdGhlYWRlcnNbIFwiWC1SZXF1ZXN0ZWQtV2l0aFwiIF0gPSBcIlhNTEh0dHBSZXF1ZXN0XCI7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTZXQgaGVhZGVyc1xuXHRcdFx0XHRmb3IgKCBpIGluIGhlYWRlcnMgKSB7XG5cdFx0XHRcdFx0eGhyLnNldFJlcXVlc3RIZWFkZXIoIGksIGhlYWRlcnNbIGkgXSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gQ2FsbGJhY2tcblx0XHRcdFx0Y2FsbGJhY2sgPSBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRcdFx0XHRyZXR1cm4gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRpZiAoIGNhbGxiYWNrICkge1xuXHRcdFx0XHRcdFx0XHRjYWxsYmFjayA9IGVycm9yQ2FsbGJhY2sgPSB4aHIub25sb2FkID1cblx0XHRcdFx0XHRcdFx0XHR4aHIub25lcnJvciA9IHhoci5vbmFib3J0ID0geGhyLm9udGltZW91dCA9XG5cdFx0XHRcdFx0XHRcdFx0XHR4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDtcblxuXHRcdFx0XHRcdFx0XHRpZiAoIHR5cGUgPT09IFwiYWJvcnRcIiApIHtcblx0XHRcdFx0XHRcdFx0XHR4aHIuYWJvcnQoKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggdHlwZSA9PT0gXCJlcnJvclwiICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IG9ubHlcblx0XHRcdFx0XHRcdFx0XHQvLyBPbiBhIG1hbnVhbCBuYXRpdmUgYWJvcnQsIElFOSB0aHJvd3Ncblx0XHRcdFx0XHRcdFx0XHQvLyBlcnJvcnMgb24gYW55IHByb3BlcnR5IGFjY2VzcyB0aGF0IGlzIG5vdCByZWFkeVN0YXRlXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCB0eXBlb2YgeGhyLnN0YXR1cyAhPT0gXCJudW1iZXJcIiApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbXBsZXRlKCAwLCBcImVycm9yXCIgKTtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29tcGxldGUoXG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gRmlsZTogcHJvdG9jb2wgYWx3YXlzIHlpZWxkcyBzdGF0dXMgMDsgc2VlICM4NjA1LCAjMTQyMDdcblx0XHRcdFx0XHRcdFx0XHRcdFx0eGhyLnN0YXR1cyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0eGhyLnN0YXR1c1RleHRcblx0XHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdGNvbXBsZXRlKFxuXHRcdFx0XHRcdFx0XHRcdFx0eGhyU3VjY2Vzc1N0YXR1c1sgeGhyLnN0YXR1cyBdIHx8IHhoci5zdGF0dXMsXG5cdFx0XHRcdFx0XHRcdFx0XHR4aHIuc3RhdHVzVGV4dCxcblxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05IG9ubHlcblx0XHRcdFx0XHRcdFx0XHRcdC8vIElFOSBoYXMgbm8gWEhSMiBidXQgdGhyb3dzIG9uIGJpbmFyeSAodHJhYy0xMTQyNilcblx0XHRcdFx0XHRcdFx0XHRcdC8vIEZvciBYSFIyIG5vbi10ZXh0LCBsZXQgdGhlIGNhbGxlciBoYW5kbGUgaXQgKGdoLTI0OTgpXG5cdFx0XHRcdFx0XHRcdFx0XHQoIHhoci5yZXNwb25zZVR5cGUgfHwgXCJ0ZXh0XCIgKSAhPT0gXCJ0ZXh0XCIgIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlb2YgeGhyLnJlc3BvbnNlVGV4dCAhPT0gXCJzdHJpbmdcIiA/XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgYmluYXJ5OiB4aHIucmVzcG9uc2UgfSA6XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHsgdGV4dDogeGhyLnJlc3BvbnNlVGV4dCB9LFxuXHRcdFx0XHRcdFx0XHRcdFx0eGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpXG5cdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH07XG5cblx0XHRcdFx0Ly8gTGlzdGVuIHRvIGV2ZW50c1xuXHRcdFx0XHR4aHIub25sb2FkID0gY2FsbGJhY2soKTtcblx0XHRcdFx0ZXJyb3JDYWxsYmFjayA9IHhoci5vbmVycm9yID0geGhyLm9udGltZW91dCA9IGNhbGxiYWNrKCBcImVycm9yXCIgKTtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA5IG9ubHlcblx0XHRcdFx0Ly8gVXNlIG9ucmVhZHlzdGF0ZWNoYW5nZSB0byByZXBsYWNlIG9uYWJvcnRcblx0XHRcdFx0Ly8gdG8gaGFuZGxlIHVuY2F1Z2h0IGFib3J0c1xuXHRcdFx0XHRpZiAoIHhoci5vbmFib3J0ICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0eGhyLm9uYWJvcnQgPSBlcnJvckNhbGxiYWNrO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHtcblxuXHRcdFx0XHRcdFx0Ly8gQ2hlY2sgcmVhZHlTdGF0ZSBiZWZvcmUgdGltZW91dCBhcyBpdCBjaGFuZ2VzXG5cdFx0XHRcdFx0XHRpZiAoIHhoci5yZWFkeVN0YXRlID09PSA0ICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIEFsbG93IG9uZXJyb3IgdG8gYmUgY2FsbGVkIGZpcnN0LFxuXHRcdFx0XHRcdFx0XHQvLyBidXQgdGhhdCB3aWxsIG5vdCBoYW5kbGUgYSBuYXRpdmUgYWJvcnRcblx0XHRcdFx0XHRcdFx0Ly8gQWxzbywgc2F2ZSBlcnJvckNhbGxiYWNrIHRvIGEgdmFyaWFibGVcblx0XHRcdFx0XHRcdFx0Ly8gYXMgeGhyLm9uZXJyb3IgY2Fubm90IGJlIGFjY2Vzc2VkXG5cdFx0XHRcdFx0XHRcdHdpbmRvdy5zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIGNhbGxiYWNrICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3JDYWxsYmFjaygpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBDcmVhdGUgdGhlIGFib3J0IGNhbGxiYWNrXG5cdFx0XHRcdGNhbGxiYWNrID0gY2FsbGJhY2soIFwiYWJvcnRcIiApO1xuXG5cdFx0XHRcdHRyeSB7XG5cblx0XHRcdFx0XHQvLyBEbyBzZW5kIHRoZSByZXF1ZXN0ICh0aGlzIG1heSByYWlzZSBhbiBleGNlcHRpb24pXG5cdFx0XHRcdFx0eGhyLnNlbmQoIG9wdGlvbnMuaGFzQ29udGVudCAmJiBvcHRpb25zLmRhdGEgfHwgbnVsbCApO1xuXHRcdFx0XHR9IGNhdGNoICggZSApIHtcblxuXHRcdFx0XHRcdC8vICMxNDY4MzogT25seSByZXRocm93IGlmIHRoaXMgaGFzbid0IGJlZW4gbm90aWZpZWQgYXMgYW4gZXJyb3IgeWV0XG5cdFx0XHRcdFx0aWYgKCBjYWxsYmFjayApIHtcblx0XHRcdFx0XHRcdHRocm93IGU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHRhYm9ydDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0Y2FsbGJhY2soKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH1cbn0gKTtcblxuXG5cblxuLy8gUHJldmVudCBhdXRvLWV4ZWN1dGlvbiBvZiBzY3JpcHRzIHdoZW4gbm8gZXhwbGljaXQgZGF0YVR5cGUgd2FzIHByb3ZpZGVkIChTZWUgZ2gtMjQzMilcbmpRdWVyeS5hamF4UHJlZmlsdGVyKCBmdW5jdGlvbiggcyApIHtcblx0aWYgKCBzLmNyb3NzRG9tYWluICkge1xuXHRcdHMuY29udGVudHMuc2NyaXB0ID0gZmFsc2U7XG5cdH1cbn0gKTtcblxuLy8gSW5zdGFsbCBzY3JpcHQgZGF0YVR5cGVcbmpRdWVyeS5hamF4U2V0dXAoIHtcblx0YWNjZXB0czoge1xuXHRcdHNjcmlwdDogXCJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIFwiICtcblx0XHRcdFwiYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0XCJcblx0fSxcblx0Y29udGVudHM6IHtcblx0XHRzY3JpcHQ6IC9cXGIoPzpqYXZhfGVjbWEpc2NyaXB0XFxiL1xuXHR9LFxuXHRjb252ZXJ0ZXJzOiB7XG5cdFx0XCJ0ZXh0IHNjcmlwdFwiOiBmdW5jdGlvbiggdGV4dCApIHtcblx0XHRcdGpRdWVyeS5nbG9iYWxFdmFsKCB0ZXh0ICk7XG5cdFx0XHRyZXR1cm4gdGV4dDtcblx0XHR9XG5cdH1cbn0gKTtcblxuLy8gSGFuZGxlIGNhY2hlJ3Mgc3BlY2lhbCBjYXNlIGFuZCBjcm9zc0RvbWFpblxualF1ZXJ5LmFqYXhQcmVmaWx0ZXIoIFwic2NyaXB0XCIsIGZ1bmN0aW9uKCBzICkge1xuXHRpZiAoIHMuY2FjaGUgPT09IHVuZGVmaW5lZCApIHtcblx0XHRzLmNhY2hlID0gZmFsc2U7XG5cdH1cblx0aWYgKCBzLmNyb3NzRG9tYWluICkge1xuXHRcdHMudHlwZSA9IFwiR0VUXCI7XG5cdH1cbn0gKTtcblxuLy8gQmluZCBzY3JpcHQgdGFnIGhhY2sgdHJhbnNwb3J0XG5qUXVlcnkuYWpheFRyYW5zcG9ydCggXCJzY3JpcHRcIiwgZnVuY3Rpb24oIHMgKSB7XG5cblx0Ly8gVGhpcyB0cmFuc3BvcnQgb25seSBkZWFscyB3aXRoIGNyb3NzIGRvbWFpbiBvciBmb3JjZWQtYnktYXR0cnMgcmVxdWVzdHNcblx0aWYgKCBzLmNyb3NzRG9tYWluIHx8IHMuc2NyaXB0QXR0cnMgKSB7XG5cdFx0dmFyIHNjcmlwdCwgY2FsbGJhY2s7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHNlbmQ6IGZ1bmN0aW9uKCBfLCBjb21wbGV0ZSApIHtcblx0XHRcdFx0c2NyaXB0ID0galF1ZXJ5KCBcIjxzY3JpcHQ+XCIgKVxuXHRcdFx0XHRcdC5hdHRyKCBzLnNjcmlwdEF0dHJzIHx8IHt9IClcblx0XHRcdFx0XHQucHJvcCggeyBjaGFyc2V0OiBzLnNjcmlwdENoYXJzZXQsIHNyYzogcy51cmwgfSApXG5cdFx0XHRcdFx0Lm9uKCBcImxvYWQgZXJyb3JcIiwgY2FsbGJhY2sgPSBmdW5jdGlvbiggZXZ0ICkge1xuXHRcdFx0XHRcdFx0c2NyaXB0LnJlbW92ZSgpO1xuXHRcdFx0XHRcdFx0Y2FsbGJhY2sgPSBudWxsO1xuXHRcdFx0XHRcdFx0aWYgKCBldnQgKSB7XG5cdFx0XHRcdFx0XHRcdGNvbXBsZXRlKCBldnQudHlwZSA9PT0gXCJlcnJvclwiID8gNDA0IDogMjAwLCBldnQudHlwZSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gKTtcblxuXHRcdFx0XHQvLyBVc2UgbmF0aXZlIERPTSBtYW5pcHVsYXRpb24gdG8gYXZvaWQgb3VyIGRvbU1hbmlwIEFKQVggdHJpY2tlcnlcblx0XHRcdFx0ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCggc2NyaXB0WyAwIF0gKTtcblx0XHRcdH0sXG5cdFx0XHRhYm9ydDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0Y2FsbGJhY2soKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH1cbn0gKTtcblxuXG5cblxudmFyIG9sZENhbGxiYWNrcyA9IFtdLFxuXHRyanNvbnAgPSAvKD0pXFw/KD89JnwkKXxcXD9cXD8vO1xuXG4vLyBEZWZhdWx0IGpzb25wIHNldHRpbmdzXG5qUXVlcnkuYWpheFNldHVwKCB7XG5cdGpzb25wOiBcImNhbGxiYWNrXCIsXG5cdGpzb25wQ2FsbGJhY2s6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBjYWxsYmFjayA9IG9sZENhbGxiYWNrcy5wb3AoKSB8fCAoIGpRdWVyeS5leHBhbmRvICsgXCJfXCIgKyAoIG5vbmNlLmd1aWQrKyApICk7XG5cdFx0dGhpc1sgY2FsbGJhY2sgXSA9IHRydWU7XG5cdFx0cmV0dXJuIGNhbGxiYWNrO1xuXHR9XG59ICk7XG5cbi8vIERldGVjdCwgbm9ybWFsaXplIG9wdGlvbnMgYW5kIGluc3RhbGwgY2FsbGJhY2tzIGZvciBqc29ucCByZXF1ZXN0c1xualF1ZXJ5LmFqYXhQcmVmaWx0ZXIoIFwianNvbiBqc29ucFwiLCBmdW5jdGlvbiggcywgb3JpZ2luYWxTZXR0aW5ncywganFYSFIgKSB7XG5cblx0dmFyIGNhbGxiYWNrTmFtZSwgb3ZlcndyaXR0ZW4sIHJlc3BvbnNlQ29udGFpbmVyLFxuXHRcdGpzb25Qcm9wID0gcy5qc29ucCAhPT0gZmFsc2UgJiYgKCByanNvbnAudGVzdCggcy51cmwgKSA/XG5cdFx0XHRcInVybFwiIDpcblx0XHRcdHR5cGVvZiBzLmRhdGEgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdFx0KCBzLmNvbnRlbnRUeXBlIHx8IFwiXCIgKVxuXHRcdFx0XHRcdC5pbmRleE9mKCBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiICkgPT09IDAgJiZcblx0XHRcdFx0cmpzb25wLnRlc3QoIHMuZGF0YSApICYmIFwiZGF0YVwiXG5cdFx0KTtcblxuXHQvLyBIYW5kbGUgaWZmIHRoZSBleHBlY3RlZCBkYXRhIHR5cGUgaXMgXCJqc29ucFwiIG9yIHdlIGhhdmUgYSBwYXJhbWV0ZXIgdG8gc2V0XG5cdGlmICgganNvblByb3AgfHwgcy5kYXRhVHlwZXNbIDAgXSA9PT0gXCJqc29ucFwiICkge1xuXG5cdFx0Ly8gR2V0IGNhbGxiYWNrIG5hbWUsIHJlbWVtYmVyaW5nIHByZWV4aXN0aW5nIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBpdFxuXHRcdGNhbGxiYWNrTmFtZSA9IHMuanNvbnBDYWxsYmFjayA9IGlzRnVuY3Rpb24oIHMuanNvbnBDYWxsYmFjayApID9cblx0XHRcdHMuanNvbnBDYWxsYmFjaygpIDpcblx0XHRcdHMuanNvbnBDYWxsYmFjaztcblxuXHRcdC8vIEluc2VydCBjYWxsYmFjayBpbnRvIHVybCBvciBmb3JtIGRhdGFcblx0XHRpZiAoIGpzb25Qcm9wICkge1xuXHRcdFx0c1sganNvblByb3AgXSA9IHNbIGpzb25Qcm9wIF0ucmVwbGFjZSggcmpzb25wLCBcIiQxXCIgKyBjYWxsYmFja05hbWUgKTtcblx0XHR9IGVsc2UgaWYgKCBzLmpzb25wICE9PSBmYWxzZSApIHtcblx0XHRcdHMudXJsICs9ICggcnF1ZXJ5LnRlc3QoIHMudXJsICkgPyBcIiZcIiA6IFwiP1wiICkgKyBzLmpzb25wICsgXCI9XCIgKyBjYWxsYmFja05hbWU7XG5cdFx0fVxuXG5cdFx0Ly8gVXNlIGRhdGEgY29udmVydGVyIHRvIHJldHJpZXZlIGpzb24gYWZ0ZXIgc2NyaXB0IGV4ZWN1dGlvblxuXHRcdHMuY29udmVydGVyc1sgXCJzY3JpcHQganNvblwiIF0gPSBmdW5jdGlvbigpIHtcblx0XHRcdGlmICggIXJlc3BvbnNlQ29udGFpbmVyICkge1xuXHRcdFx0XHRqUXVlcnkuZXJyb3IoIGNhbGxiYWNrTmFtZSArIFwiIHdhcyBub3QgY2FsbGVkXCIgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXNwb25zZUNvbnRhaW5lclsgMCBdO1xuXHRcdH07XG5cblx0XHQvLyBGb3JjZSBqc29uIGRhdGFUeXBlXG5cdFx0cy5kYXRhVHlwZXNbIDAgXSA9IFwianNvblwiO1xuXG5cdFx0Ly8gSW5zdGFsbCBjYWxsYmFja1xuXHRcdG92ZXJ3cml0dGVuID0gd2luZG93WyBjYWxsYmFja05hbWUgXTtcblx0XHR3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXNwb25zZUNvbnRhaW5lciA9IGFyZ3VtZW50cztcblx0XHR9O1xuXG5cdFx0Ly8gQ2xlYW4tdXAgZnVuY3Rpb24gKGZpcmVzIGFmdGVyIGNvbnZlcnRlcnMpXG5cdFx0anFYSFIuYWx3YXlzKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gSWYgcHJldmlvdXMgdmFsdWUgZGlkbid0IGV4aXN0IC0gcmVtb3ZlIGl0XG5cdFx0XHRpZiAoIG92ZXJ3cml0dGVuID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdGpRdWVyeSggd2luZG93ICkucmVtb3ZlUHJvcCggY2FsbGJhY2tOYW1lICk7XG5cblx0XHRcdC8vIE90aGVyd2lzZSByZXN0b3JlIHByZWV4aXN0aW5nIHZhbHVlXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gb3ZlcndyaXR0ZW47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNhdmUgYmFjayBhcyBmcmVlXG5cdFx0XHRpZiAoIHNbIGNhbGxiYWNrTmFtZSBdICkge1xuXG5cdFx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHJlLXVzaW5nIHRoZSBvcHRpb25zIGRvZXNuJ3Qgc2NyZXcgdGhpbmdzIGFyb3VuZFxuXHRcdFx0XHRzLmpzb25wQ2FsbGJhY2sgPSBvcmlnaW5hbFNldHRpbmdzLmpzb25wQ2FsbGJhY2s7XG5cblx0XHRcdFx0Ly8gU2F2ZSB0aGUgY2FsbGJhY2sgbmFtZSBmb3IgZnV0dXJlIHVzZVxuXHRcdFx0XHRvbGRDYWxsYmFja3MucHVzaCggY2FsbGJhY2tOYW1lICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENhbGwgaWYgaXQgd2FzIGEgZnVuY3Rpb24gYW5kIHdlIGhhdmUgYSByZXNwb25zZVxuXHRcdFx0aWYgKCByZXNwb25zZUNvbnRhaW5lciAmJiBpc0Z1bmN0aW9uKCBvdmVyd3JpdHRlbiApICkge1xuXHRcdFx0XHRvdmVyd3JpdHRlbiggcmVzcG9uc2VDb250YWluZXJbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXNwb25zZUNvbnRhaW5lciA9IG92ZXJ3cml0dGVuID0gdW5kZWZpbmVkO1xuXHRcdH0gKTtcblxuXHRcdC8vIERlbGVnYXRlIHRvIHNjcmlwdFxuXHRcdHJldHVybiBcInNjcmlwdFwiO1xuXHR9XG59ICk7XG5cblxuXG5cbi8vIFN1cHBvcnQ6IFNhZmFyaSA4IG9ubHlcbi8vIEluIFNhZmFyaSA4IGRvY3VtZW50cyBjcmVhdGVkIHZpYSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnRcbi8vIGNvbGxhcHNlIHNpYmxpbmcgZm9ybXM6IHRoZSBzZWNvbmQgb25lIGJlY29tZXMgYSBjaGlsZCBvZiB0aGUgZmlyc3Qgb25lLlxuLy8gQmVjYXVzZSBvZiB0aGF0LCB0aGlzIHNlY3VyaXR5IG1lYXN1cmUgaGFzIHRvIGJlIGRpc2FibGVkIGluIFNhZmFyaSA4LlxuLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzMzN1xuc3VwcG9ydC5jcmVhdGVIVE1MRG9jdW1lbnQgPSAoIGZ1bmN0aW9uKCkge1xuXHR2YXIgYm9keSA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCggXCJcIiApLmJvZHk7XG5cdGJvZHkuaW5uZXJIVE1MID0gXCI8Zm9ybT48L2Zvcm0+PGZvcm0+PC9mb3JtPlwiO1xuXHRyZXR1cm4gYm9keS5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMjtcbn0gKSgpO1xuXG5cbi8vIEFyZ3VtZW50IFwiZGF0YVwiIHNob3VsZCBiZSBzdHJpbmcgb2YgaHRtbFxuLy8gY29udGV4dCAob3B0aW9uYWwpOiBJZiBzcGVjaWZpZWQsIHRoZSBmcmFnbWVudCB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhpcyBjb250ZXh0LFxuLy8gZGVmYXVsdHMgdG8gZG9jdW1lbnRcbi8vIGtlZXBTY3JpcHRzIChvcHRpb25hbCk6IElmIHRydWUsIHdpbGwgaW5jbHVkZSBzY3JpcHRzIHBhc3NlZCBpbiB0aGUgaHRtbCBzdHJpbmdcbmpRdWVyeS5wYXJzZUhUTUwgPSBmdW5jdGlvbiggZGF0YSwgY29udGV4dCwga2VlcFNjcmlwdHMgKSB7XG5cdGlmICggdHlwZW9mIGRhdGEgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0cmV0dXJuIFtdO1xuXHR9XG5cdGlmICggdHlwZW9mIGNvbnRleHQgPT09IFwiYm9vbGVhblwiICkge1xuXHRcdGtlZXBTY3JpcHRzID0gY29udGV4dDtcblx0XHRjb250ZXh0ID0gZmFsc2U7XG5cdH1cblxuXHR2YXIgYmFzZSwgcGFyc2VkLCBzY3JpcHRzO1xuXG5cdGlmICggIWNvbnRleHQgKSB7XG5cblx0XHQvLyBTdG9wIHNjcmlwdHMgb3IgaW5saW5lIGV2ZW50IGhhbmRsZXJzIGZyb20gYmVpbmcgZXhlY3V0ZWQgaW1tZWRpYXRlbHlcblx0XHQvLyBieSB1c2luZyBkb2N1bWVudC5pbXBsZW1lbnRhdGlvblxuXHRcdGlmICggc3VwcG9ydC5jcmVhdGVIVE1MRG9jdW1lbnQgKSB7XG5cdFx0XHRjb250ZXh0ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCBcIlwiICk7XG5cblx0XHRcdC8vIFNldCB0aGUgYmFzZSBocmVmIGZvciB0aGUgY3JlYXRlZCBkb2N1bWVudFxuXHRcdFx0Ly8gc28gYW55IHBhcnNlZCBlbGVtZW50cyB3aXRoIFVSTHNcblx0XHRcdC8vIGFyZSBiYXNlZCBvbiB0aGUgZG9jdW1lbnQncyBVUkwgKGdoLTI5NjUpXG5cdFx0XHRiYXNlID0gY29udGV4dC5jcmVhdGVFbGVtZW50KCBcImJhc2VcIiApO1xuXHRcdFx0YmFzZS5ocmVmID0gZG9jdW1lbnQubG9jYXRpb24uaHJlZjtcblx0XHRcdGNvbnRleHQuaGVhZC5hcHBlbmRDaGlsZCggYmFzZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb250ZXh0ID0gZG9jdW1lbnQ7XG5cdFx0fVxuXHR9XG5cblx0cGFyc2VkID0gcnNpbmdsZVRhZy5leGVjKCBkYXRhICk7XG5cdHNjcmlwdHMgPSAha2VlcFNjcmlwdHMgJiYgW107XG5cblx0Ly8gU2luZ2xlIHRhZ1xuXHRpZiAoIHBhcnNlZCApIHtcblx0XHRyZXR1cm4gWyBjb250ZXh0LmNyZWF0ZUVsZW1lbnQoIHBhcnNlZFsgMSBdICkgXTtcblx0fVxuXG5cdHBhcnNlZCA9IGJ1aWxkRnJhZ21lbnQoIFsgZGF0YSBdLCBjb250ZXh0LCBzY3JpcHRzICk7XG5cblx0aWYgKCBzY3JpcHRzICYmIHNjcmlwdHMubGVuZ3RoICkge1xuXHRcdGpRdWVyeSggc2NyaXB0cyApLnJlbW92ZSgpO1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeS5tZXJnZSggW10sIHBhcnNlZC5jaGlsZE5vZGVzICk7XG59O1xuXG5cbi8qKlxuICogTG9hZCBhIHVybCBpbnRvIGEgcGFnZVxuICovXG5qUXVlcnkuZm4ubG9hZCA9IGZ1bmN0aW9uKCB1cmwsIHBhcmFtcywgY2FsbGJhY2sgKSB7XG5cdHZhciBzZWxlY3RvciwgdHlwZSwgcmVzcG9uc2UsXG5cdFx0c2VsZiA9IHRoaXMsXG5cdFx0b2ZmID0gdXJsLmluZGV4T2YoIFwiIFwiICk7XG5cblx0aWYgKCBvZmYgPiAtMSApIHtcblx0XHRzZWxlY3RvciA9IHN0cmlwQW5kQ29sbGFwc2UoIHVybC5zbGljZSggb2ZmICkgKTtcblx0XHR1cmwgPSB1cmwuc2xpY2UoIDAsIG9mZiApO1xuXHR9XG5cblx0Ly8gSWYgaXQncyBhIGZ1bmN0aW9uXG5cdGlmICggaXNGdW5jdGlvbiggcGFyYW1zICkgKSB7XG5cblx0XHQvLyBXZSBhc3N1bWUgdGhhdCBpdCdzIHRoZSBjYWxsYmFja1xuXHRcdGNhbGxiYWNrID0gcGFyYW1zO1xuXHRcdHBhcmFtcyA9IHVuZGVmaW5lZDtcblxuXHQvLyBPdGhlcndpc2UsIGJ1aWxkIGEgcGFyYW0gc3RyaW5nXG5cdH0gZWxzZSBpZiAoIHBhcmFtcyAmJiB0eXBlb2YgcGFyYW1zID09PSBcIm9iamVjdFwiICkge1xuXHRcdHR5cGUgPSBcIlBPU1RcIjtcblx0fVxuXG5cdC8vIElmIHdlIGhhdmUgZWxlbWVudHMgdG8gbW9kaWZ5LCBtYWtlIHRoZSByZXF1ZXN0XG5cdGlmICggc2VsZi5sZW5ndGggPiAwICkge1xuXHRcdGpRdWVyeS5hamF4KCB7XG5cdFx0XHR1cmw6IHVybCxcblxuXHRcdFx0Ly8gSWYgXCJ0eXBlXCIgdmFyaWFibGUgaXMgdW5kZWZpbmVkLCB0aGVuIFwiR0VUXCIgbWV0aG9kIHdpbGwgYmUgdXNlZC5cblx0XHRcdC8vIE1ha2UgdmFsdWUgb2YgdGhpcyBmaWVsZCBleHBsaWNpdCBzaW5jZVxuXHRcdFx0Ly8gdXNlciBjYW4gb3ZlcnJpZGUgaXQgdGhyb3VnaCBhamF4U2V0dXAgbWV0aG9kXG5cdFx0XHR0eXBlOiB0eXBlIHx8IFwiR0VUXCIsXG5cdFx0XHRkYXRhVHlwZTogXCJodG1sXCIsXG5cdFx0XHRkYXRhOiBwYXJhbXNcblx0XHR9ICkuZG9uZSggZnVuY3Rpb24oIHJlc3BvbnNlVGV4dCApIHtcblxuXHRcdFx0Ly8gU2F2ZSByZXNwb25zZSBmb3IgdXNlIGluIGNvbXBsZXRlIGNhbGxiYWNrXG5cdFx0XHRyZXNwb25zZSA9IGFyZ3VtZW50cztcblxuXHRcdFx0c2VsZi5odG1sKCBzZWxlY3RvciA/XG5cblx0XHRcdFx0Ly8gSWYgYSBzZWxlY3RvciB3YXMgc3BlY2lmaWVkLCBsb2NhdGUgdGhlIHJpZ2h0IGVsZW1lbnRzIGluIGEgZHVtbXkgZGl2XG5cdFx0XHRcdC8vIEV4Y2x1ZGUgc2NyaXB0cyB0byBhdm9pZCBJRSAnUGVybWlzc2lvbiBEZW5pZWQnIGVycm9yc1xuXHRcdFx0XHRqUXVlcnkoIFwiPGRpdj5cIiApLmFwcGVuZCggalF1ZXJ5LnBhcnNlSFRNTCggcmVzcG9uc2VUZXh0ICkgKS5maW5kKCBzZWxlY3RvciApIDpcblxuXHRcdFx0XHQvLyBPdGhlcndpc2UgdXNlIHRoZSBmdWxsIHJlc3VsdFxuXHRcdFx0XHRyZXNwb25zZVRleHQgKTtcblxuXHRcdC8vIElmIHRoZSByZXF1ZXN0IHN1Y2NlZWRzLCB0aGlzIGZ1bmN0aW9uIGdldHMgXCJkYXRhXCIsIFwic3RhdHVzXCIsIFwianFYSFJcIlxuXHRcdC8vIGJ1dCB0aGV5IGFyZSBpZ25vcmVkIGJlY2F1c2UgcmVzcG9uc2Ugd2FzIHNldCBhYm92ZS5cblx0XHQvLyBJZiBpdCBmYWlscywgdGhpcyBmdW5jdGlvbiBnZXRzIFwianFYSFJcIiwgXCJzdGF0dXNcIiwgXCJlcnJvclwiXG5cdFx0fSApLmFsd2F5cyggY2FsbGJhY2sgJiYgZnVuY3Rpb24oIGpxWEhSLCBzdGF0dXMgKSB7XG5cdFx0XHRzZWxmLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRjYWxsYmFjay5hcHBseSggdGhpcywgcmVzcG9uc2UgfHwgWyBqcVhIUi5yZXNwb25zZVRleHQsIHN0YXR1cywganFYSFIgXSApO1xuXHRcdFx0fSApO1xuXHRcdH0gKTtcblx0fVxuXG5cdHJldHVybiB0aGlzO1xufTtcblxuXG5cblxualF1ZXJ5LmV4cHIucHNldWRvcy5hbmltYXRlZCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRyZXR1cm4galF1ZXJ5LmdyZXAoIGpRdWVyeS50aW1lcnMsIGZ1bmN0aW9uKCBmbiApIHtcblx0XHRyZXR1cm4gZWxlbSA9PT0gZm4uZWxlbTtcblx0fSApLmxlbmd0aDtcbn07XG5cblxuXG5cbmpRdWVyeS5vZmZzZXQgPSB7XG5cdHNldE9mZnNldDogZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIGkgKSB7XG5cdFx0dmFyIGN1clBvc2l0aW9uLCBjdXJMZWZ0LCBjdXJDU1NUb3AsIGN1clRvcCwgY3VyT2Zmc2V0LCBjdXJDU1NMZWZ0LCBjYWxjdWxhdGVQb3NpdGlvbixcblx0XHRcdHBvc2l0aW9uID0galF1ZXJ5LmNzcyggZWxlbSwgXCJwb3NpdGlvblwiICksXG5cdFx0XHRjdXJFbGVtID0galF1ZXJ5KCBlbGVtICksXG5cdFx0XHRwcm9wcyA9IHt9O1xuXG5cdFx0Ly8gU2V0IHBvc2l0aW9uIGZpcnN0LCBpbi1jYXNlIHRvcC9sZWZ0IGFyZSBzZXQgZXZlbiBvbiBzdGF0aWMgZWxlbVxuXHRcdGlmICggcG9zaXRpb24gPT09IFwic3RhdGljXCIgKSB7XG5cdFx0XHRlbGVtLnN0eWxlLnBvc2l0aW9uID0gXCJyZWxhdGl2ZVwiO1xuXHRcdH1cblxuXHRcdGN1ck9mZnNldCA9IGN1ckVsZW0ub2Zmc2V0KCk7XG5cdFx0Y3VyQ1NTVG9wID0galF1ZXJ5LmNzcyggZWxlbSwgXCJ0b3BcIiApO1xuXHRcdGN1ckNTU0xlZnQgPSBqUXVlcnkuY3NzKCBlbGVtLCBcImxlZnRcIiApO1xuXHRcdGNhbGN1bGF0ZVBvc2l0aW9uID0gKCBwb3NpdGlvbiA9PT0gXCJhYnNvbHV0ZVwiIHx8IHBvc2l0aW9uID09PSBcImZpeGVkXCIgKSAmJlxuXHRcdFx0KCBjdXJDU1NUb3AgKyBjdXJDU1NMZWZ0ICkuaW5kZXhPZiggXCJhdXRvXCIgKSA+IC0xO1xuXG5cdFx0Ly8gTmVlZCB0byBiZSBhYmxlIHRvIGNhbGN1bGF0ZSBwb3NpdGlvbiBpZiBlaXRoZXJcblx0XHQvLyB0b3Agb3IgbGVmdCBpcyBhdXRvIGFuZCBwb3NpdGlvbiBpcyBlaXRoZXIgYWJzb2x1dGUgb3IgZml4ZWRcblx0XHRpZiAoIGNhbGN1bGF0ZVBvc2l0aW9uICkge1xuXHRcdFx0Y3VyUG9zaXRpb24gPSBjdXJFbGVtLnBvc2l0aW9uKCk7XG5cdFx0XHRjdXJUb3AgPSBjdXJQb3NpdGlvbi50b3A7XG5cdFx0XHRjdXJMZWZ0ID0gY3VyUG9zaXRpb24ubGVmdDtcblxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjdXJUb3AgPSBwYXJzZUZsb2F0KCBjdXJDU1NUb3AgKSB8fCAwO1xuXHRcdFx0Y3VyTGVmdCA9IHBhcnNlRmxvYXQoIGN1ckNTU0xlZnQgKSB8fCAwO1xuXHRcdH1cblxuXHRcdGlmICggaXNGdW5jdGlvbiggb3B0aW9ucyApICkge1xuXG5cdFx0XHQvLyBVc2UgalF1ZXJ5LmV4dGVuZCBoZXJlIHRvIGFsbG93IG1vZGlmaWNhdGlvbiBvZiBjb29yZGluYXRlcyBhcmd1bWVudCAoZ2gtMTg0OClcblx0XHRcdG9wdGlvbnMgPSBvcHRpb25zLmNhbGwoIGVsZW0sIGksIGpRdWVyeS5leHRlbmQoIHt9LCBjdXJPZmZzZXQgKSApO1xuXHRcdH1cblxuXHRcdGlmICggb3B0aW9ucy50b3AgIT0gbnVsbCApIHtcblx0XHRcdHByb3BzLnRvcCA9ICggb3B0aW9ucy50b3AgLSBjdXJPZmZzZXQudG9wICkgKyBjdXJUb3A7XG5cdFx0fVxuXHRcdGlmICggb3B0aW9ucy5sZWZ0ICE9IG51bGwgKSB7XG5cdFx0XHRwcm9wcy5sZWZ0ID0gKCBvcHRpb25zLmxlZnQgLSBjdXJPZmZzZXQubGVmdCApICsgY3VyTGVmdDtcblx0XHR9XG5cblx0XHRpZiAoIFwidXNpbmdcIiBpbiBvcHRpb25zICkge1xuXHRcdFx0b3B0aW9ucy51c2luZy5jYWxsKCBlbGVtLCBwcm9wcyApO1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmICggdHlwZW9mIHByb3BzLnRvcCA9PT0gXCJudW1iZXJcIiApIHtcblx0XHRcdFx0cHJvcHMudG9wICs9IFwicHhcIjtcblx0XHRcdH1cblx0XHRcdGlmICggdHlwZW9mIHByb3BzLmxlZnQgPT09IFwibnVtYmVyXCIgKSB7XG5cdFx0XHRcdHByb3BzLmxlZnQgKz0gXCJweFwiO1xuXHRcdFx0fVxuXHRcdFx0Y3VyRWxlbS5jc3MoIHByb3BzICk7XG5cdFx0fVxuXHR9XG59O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cblx0Ly8gb2Zmc2V0KCkgcmVsYXRlcyBhbiBlbGVtZW50J3MgYm9yZGVyIGJveCB0byB0aGUgZG9jdW1lbnQgb3JpZ2luXG5cdG9mZnNldDogZnVuY3Rpb24oIG9wdGlvbnMgKSB7XG5cblx0XHQvLyBQcmVzZXJ2ZSBjaGFpbmluZyBmb3Igc2V0dGVyXG5cdFx0aWYgKCBhcmd1bWVudHMubGVuZ3RoICkge1xuXHRcdFx0cmV0dXJuIG9wdGlvbnMgPT09IHVuZGVmaW5lZCA/XG5cdFx0XHRcdHRoaXMgOlxuXHRcdFx0XHR0aGlzLmVhY2goIGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0XHRcdGpRdWVyeS5vZmZzZXQuc2V0T2Zmc2V0KCB0aGlzLCBvcHRpb25zLCBpICk7XG5cdFx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHR2YXIgcmVjdCwgd2luLFxuXHRcdFx0ZWxlbSA9IHRoaXNbIDAgXTtcblxuXHRcdGlmICggIWVsZW0gKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gUmV0dXJuIHplcm9zIGZvciBkaXNjb25uZWN0ZWQgYW5kIGhpZGRlbiAoZGlzcGxheTogbm9uZSkgZWxlbWVudHMgKGdoLTIzMTApXG5cdFx0Ly8gU3VwcG9ydDogSUUgPD0xMSBvbmx5XG5cdFx0Ly8gUnVubmluZyBnZXRCb3VuZGluZ0NsaWVudFJlY3Qgb24gYVxuXHRcdC8vIGRpc2Nvbm5lY3RlZCBub2RlIGluIElFIHRocm93cyBhbiBlcnJvclxuXHRcdGlmICggIWVsZW0uZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggKSB7XG5cdFx0XHRyZXR1cm4geyB0b3A6IDAsIGxlZnQ6IDAgfTtcblx0XHR9XG5cblx0XHQvLyBHZXQgZG9jdW1lbnQtcmVsYXRpdmUgcG9zaXRpb24gYnkgYWRkaW5nIHZpZXdwb3J0IHNjcm9sbCB0byB2aWV3cG9ydC1yZWxhdGl2ZSBnQkNSXG5cdFx0cmVjdCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cdFx0d2luID0gZWxlbS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O1xuXHRcdHJldHVybiB7XG5cdFx0XHR0b3A6IHJlY3QudG9wICsgd2luLnBhZ2VZT2Zmc2V0LFxuXHRcdFx0bGVmdDogcmVjdC5sZWZ0ICsgd2luLnBhZ2VYT2Zmc2V0XG5cdFx0fTtcblx0fSxcblxuXHQvLyBwb3NpdGlvbigpIHJlbGF0ZXMgYW4gZWxlbWVudCdzIG1hcmdpbiBib3ggdG8gaXRzIG9mZnNldCBwYXJlbnQncyBwYWRkaW5nIGJveFxuXHQvLyBUaGlzIGNvcnJlc3BvbmRzIHRvIHRoZSBiZWhhdmlvciBvZiBDU1MgYWJzb2x1dGUgcG9zaXRpb25pbmdcblx0cG9zaXRpb246IGZ1bmN0aW9uKCkge1xuXHRcdGlmICggIXRoaXNbIDAgXSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR2YXIgb2Zmc2V0UGFyZW50LCBvZmZzZXQsIGRvYyxcblx0XHRcdGVsZW0gPSB0aGlzWyAwIF0sXG5cdFx0XHRwYXJlbnRPZmZzZXQgPSB7IHRvcDogMCwgbGVmdDogMCB9O1xuXG5cdFx0Ly8gcG9zaXRpb246Zml4ZWQgZWxlbWVudHMgYXJlIG9mZnNldCBmcm9tIHRoZSB2aWV3cG9ydCwgd2hpY2ggaXRzZWxmIGFsd2F5cyBoYXMgemVybyBvZmZzZXRcblx0XHRpZiAoIGpRdWVyeS5jc3MoIGVsZW0sIFwicG9zaXRpb25cIiApID09PSBcImZpeGVkXCIgKSB7XG5cblx0XHRcdC8vIEFzc3VtZSBwb3NpdGlvbjpmaXhlZCBpbXBsaWVzIGF2YWlsYWJpbGl0eSBvZiBnZXRCb3VuZGluZ0NsaWVudFJlY3Rcblx0XHRcdG9mZnNldCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cblx0XHR9IGVsc2Uge1xuXHRcdFx0b2Zmc2V0ID0gdGhpcy5vZmZzZXQoKTtcblxuXHRcdFx0Ly8gQWNjb3VudCBmb3IgdGhlICpyZWFsKiBvZmZzZXQgcGFyZW50LCB3aGljaCBjYW4gYmUgdGhlIGRvY3VtZW50IG9yIGl0cyByb290IGVsZW1lbnRcblx0XHRcdC8vIHdoZW4gYSBzdGF0aWNhbGx5IHBvc2l0aW9uZWQgZWxlbWVudCBpcyBpZGVudGlmaWVkXG5cdFx0XHRkb2MgPSBlbGVtLm93bmVyRG9jdW1lbnQ7XG5cdFx0XHRvZmZzZXRQYXJlbnQgPSBlbGVtLm9mZnNldFBhcmVudCB8fCBkb2MuZG9jdW1lbnRFbGVtZW50O1xuXHRcdFx0d2hpbGUgKCBvZmZzZXRQYXJlbnQgJiZcblx0XHRcdFx0KCBvZmZzZXRQYXJlbnQgPT09IGRvYy5ib2R5IHx8IG9mZnNldFBhcmVudCA9PT0gZG9jLmRvY3VtZW50RWxlbWVudCApICYmXG5cdFx0XHRcdGpRdWVyeS5jc3MoIG9mZnNldFBhcmVudCwgXCJwb3NpdGlvblwiICkgPT09IFwic3RhdGljXCIgKSB7XG5cblx0XHRcdFx0b2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50LnBhcmVudE5vZGU7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIG9mZnNldFBhcmVudCAmJiBvZmZzZXRQYXJlbnQgIT09IGVsZW0gJiYgb2Zmc2V0UGFyZW50Lm5vZGVUeXBlID09PSAxICkge1xuXG5cdFx0XHRcdC8vIEluY29ycG9yYXRlIGJvcmRlcnMgaW50byBpdHMgb2Zmc2V0LCBzaW5jZSB0aGV5IGFyZSBvdXRzaWRlIGl0cyBjb250ZW50IG9yaWdpblxuXHRcdFx0XHRwYXJlbnRPZmZzZXQgPSBqUXVlcnkoIG9mZnNldFBhcmVudCApLm9mZnNldCgpO1xuXHRcdFx0XHRwYXJlbnRPZmZzZXQudG9wICs9IGpRdWVyeS5jc3MoIG9mZnNldFBhcmVudCwgXCJib3JkZXJUb3BXaWR0aFwiLCB0cnVlICk7XG5cdFx0XHRcdHBhcmVudE9mZnNldC5sZWZ0ICs9IGpRdWVyeS5jc3MoIG9mZnNldFBhcmVudCwgXCJib3JkZXJMZWZ0V2lkdGhcIiwgdHJ1ZSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFN1YnRyYWN0IHBhcmVudCBvZmZzZXRzIGFuZCBlbGVtZW50IG1hcmdpbnNcblx0XHRyZXR1cm4ge1xuXHRcdFx0dG9wOiBvZmZzZXQudG9wIC0gcGFyZW50T2Zmc2V0LnRvcCAtIGpRdWVyeS5jc3MoIGVsZW0sIFwibWFyZ2luVG9wXCIsIHRydWUgKSxcblx0XHRcdGxlZnQ6IG9mZnNldC5sZWZ0IC0gcGFyZW50T2Zmc2V0LmxlZnQgLSBqUXVlcnkuY3NzKCBlbGVtLCBcIm1hcmdpbkxlZnRcIiwgdHJ1ZSApXG5cdFx0fTtcblx0fSxcblxuXHQvLyBUaGlzIG1ldGhvZCB3aWxsIHJldHVybiBkb2N1bWVudEVsZW1lbnQgaW4gdGhlIGZvbGxvd2luZyBjYXNlczpcblx0Ly8gMSkgRm9yIHRoZSBlbGVtZW50IGluc2lkZSB0aGUgaWZyYW1lIHdpdGhvdXQgb2Zmc2V0UGFyZW50LCB0aGlzIG1ldGhvZCB3aWxsIHJldHVyblxuXHQvLyAgICBkb2N1bWVudEVsZW1lbnQgb2YgdGhlIHBhcmVudCB3aW5kb3dcblx0Ly8gMikgRm9yIHRoZSBoaWRkZW4gb3IgZGV0YWNoZWQgZWxlbWVudFxuXHQvLyAzKSBGb3IgYm9keSBvciBodG1sIGVsZW1lbnQsIGkuZS4gaW4gY2FzZSBvZiB0aGUgaHRtbCBub2RlIC0gaXQgd2lsbCByZXR1cm4gaXRzZWxmXG5cdC8vXG5cdC8vIGJ1dCB0aG9zZSBleGNlcHRpb25zIHdlcmUgbmV2ZXIgcHJlc2VudGVkIGFzIGEgcmVhbCBsaWZlIHVzZS1jYXNlc1xuXHQvLyBhbmQgbWlnaHQgYmUgY29uc2lkZXJlZCBhcyBtb3JlIHByZWZlcmFibGUgcmVzdWx0cy5cblx0Ly9cblx0Ly8gVGhpcyBsb2dpYywgaG93ZXZlciwgaXMgbm90IGd1YXJhbnRlZWQgYW5kIGNhbiBjaGFuZ2UgYXQgYW55IHBvaW50IGluIHRoZSBmdXR1cmVcblx0b2Zmc2V0UGFyZW50OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5tYXAoIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIG9mZnNldFBhcmVudCA9IHRoaXMub2Zmc2V0UGFyZW50O1xuXG5cdFx0XHR3aGlsZSAoIG9mZnNldFBhcmVudCAmJiBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnQsIFwicG9zaXRpb25cIiApID09PSBcInN0YXRpY1wiICkge1xuXHRcdFx0XHRvZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gb2Zmc2V0UGFyZW50IHx8IGRvY3VtZW50RWxlbWVudDtcblx0XHR9ICk7XG5cdH1cbn0gKTtcblxuLy8gQ3JlYXRlIHNjcm9sbExlZnQgYW5kIHNjcm9sbFRvcCBtZXRob2RzXG5qUXVlcnkuZWFjaCggeyBzY3JvbGxMZWZ0OiBcInBhZ2VYT2Zmc2V0XCIsIHNjcm9sbFRvcDogXCJwYWdlWU9mZnNldFwiIH0sIGZ1bmN0aW9uKCBtZXRob2QsIHByb3AgKSB7XG5cdHZhciB0b3AgPSBcInBhZ2VZT2Zmc2V0XCIgPT09IHByb3A7XG5cblx0alF1ZXJ5LmZuWyBtZXRob2QgXSA9IGZ1bmN0aW9uKCB2YWwgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIGVsZW0sIG1ldGhvZCwgdmFsICkge1xuXG5cdFx0XHQvLyBDb2FsZXNjZSBkb2N1bWVudHMgYW5kIHdpbmRvd3Ncblx0XHRcdHZhciB3aW47XG5cdFx0XHRpZiAoIGlzV2luZG93KCBlbGVtICkgKSB7XG5cdFx0XHRcdHdpbiA9IGVsZW07XG5cdFx0XHR9IGVsc2UgaWYgKCBlbGVtLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHR3aW4gPSBlbGVtLmRlZmF1bHRWaWV3O1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIHZhbCA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRyZXR1cm4gd2luID8gd2luWyBwcm9wIF0gOiBlbGVtWyBtZXRob2QgXTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCB3aW4gKSB7XG5cdFx0XHRcdHdpbi5zY3JvbGxUbyhcblx0XHRcdFx0XHQhdG9wID8gdmFsIDogd2luLnBhZ2VYT2Zmc2V0LFxuXHRcdFx0XHRcdHRvcCA/IHZhbCA6IHdpbi5wYWdlWU9mZnNldFxuXHRcdFx0XHQpO1xuXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRlbGVtWyBtZXRob2QgXSA9IHZhbDtcblx0XHRcdH1cblx0XHR9LCBtZXRob2QsIHZhbCwgYXJndW1lbnRzLmxlbmd0aCApO1xuXHR9O1xufSApO1xuXG4vLyBTdXBwb3J0OiBTYWZhcmkgPD03IC0gOS4xLCBDaHJvbWUgPD0zNyAtIDQ5XG4vLyBBZGQgdGhlIHRvcC9sZWZ0IGNzc0hvb2tzIHVzaW5nIGpRdWVyeS5mbi5wb3NpdGlvblxuLy8gV2Via2l0IGJ1ZzogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDg0XG4vLyBCbGluayBidWc6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTU4OTM0N1xuLy8gZ2V0Q29tcHV0ZWRTdHlsZSByZXR1cm5zIHBlcmNlbnQgd2hlbiBzcGVjaWZpZWQgZm9yIHRvcC9sZWZ0L2JvdHRvbS9yaWdodDtcbi8vIHJhdGhlciB0aGFuIG1ha2UgdGhlIGNzcyBtb2R1bGUgZGVwZW5kIG9uIHRoZSBvZmZzZXQgbW9kdWxlLCBqdXN0IGNoZWNrIGZvciBpdCBoZXJlXG5qUXVlcnkuZWFjaCggWyBcInRvcFwiLCBcImxlZnRcIiBdLCBmdW5jdGlvbiggX2ksIHByb3AgKSB7XG5cdGpRdWVyeS5jc3NIb29rc1sgcHJvcCBdID0gYWRkR2V0SG9va0lmKCBzdXBwb3J0LnBpeGVsUG9zaXRpb24sXG5cdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkge1xuXHRcdFx0aWYgKCBjb21wdXRlZCApIHtcblx0XHRcdFx0Y29tcHV0ZWQgPSBjdXJDU1MoIGVsZW0sIHByb3AgKTtcblxuXHRcdFx0XHQvLyBJZiBjdXJDU1MgcmV0dXJucyBwZXJjZW50YWdlLCBmYWxsYmFjayB0byBvZmZzZXRcblx0XHRcdFx0cmV0dXJuIHJudW1ub25weC50ZXN0KCBjb21wdXRlZCApID9cblx0XHRcdFx0XHRqUXVlcnkoIGVsZW0gKS5wb3NpdGlvbigpWyBwcm9wIF0gKyBcInB4XCIgOlxuXHRcdFx0XHRcdGNvbXB1dGVkO1xuXHRcdFx0fVxuXHRcdH1cblx0KTtcbn0gKTtcblxuXG4vLyBDcmVhdGUgaW5uZXJIZWlnaHQsIGlubmVyV2lkdGgsIGhlaWdodCwgd2lkdGgsIG91dGVySGVpZ2h0IGFuZCBvdXRlcldpZHRoIG1ldGhvZHNcbmpRdWVyeS5lYWNoKCB7IEhlaWdodDogXCJoZWlnaHRcIiwgV2lkdGg6IFwid2lkdGhcIiB9LCBmdW5jdGlvbiggbmFtZSwgdHlwZSApIHtcblx0alF1ZXJ5LmVhY2goIHsgcGFkZGluZzogXCJpbm5lclwiICsgbmFtZSwgY29udGVudDogdHlwZSwgXCJcIjogXCJvdXRlclwiICsgbmFtZSB9LFxuXHRcdGZ1bmN0aW9uKCBkZWZhdWx0RXh0cmEsIGZ1bmNOYW1lICkge1xuXG5cdFx0Ly8gTWFyZ2luIGlzIG9ubHkgZm9yIG91dGVySGVpZ2h0LCBvdXRlcldpZHRoXG5cdFx0alF1ZXJ5LmZuWyBmdW5jTmFtZSBdID0gZnVuY3Rpb24oIG1hcmdpbiwgdmFsdWUgKSB7XG5cdFx0XHR2YXIgY2hhaW5hYmxlID0gYXJndW1lbnRzLmxlbmd0aCAmJiAoIGRlZmF1bHRFeHRyYSB8fCB0eXBlb2YgbWFyZ2luICE9PSBcImJvb2xlYW5cIiApLFxuXHRcdFx0XHRleHRyYSA9IGRlZmF1bHRFeHRyYSB8fCAoIG1hcmdpbiA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gdHJ1ZSA/IFwibWFyZ2luXCIgOiBcImJvcmRlclwiICk7XG5cblx0XHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCB2YWx1ZSApIHtcblx0XHRcdFx0dmFyIGRvYztcblxuXHRcdFx0XHRpZiAoIGlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdFx0XHQvLyAkKCB3aW5kb3cgKS5vdXRlcldpZHRoL0hlaWdodCByZXR1cm4gdy9oIGluY2x1ZGluZyBzY3JvbGxiYXJzIChnaC0xNzI5KVxuXHRcdFx0XHRcdHJldHVybiBmdW5jTmFtZS5pbmRleE9mKCBcIm91dGVyXCIgKSA9PT0gMCA/XG5cdFx0XHRcdFx0XHRlbGVtWyBcImlubmVyXCIgKyBuYW1lIF0gOlxuXHRcdFx0XHRcdFx0ZWxlbS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbIFwiY2xpZW50XCIgKyBuYW1lIF07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBHZXQgZG9jdW1lbnQgd2lkdGggb3IgaGVpZ2h0XG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0XHRkb2MgPSBlbGVtLmRvY3VtZW50RWxlbWVudDtcblxuXHRcdFx0XHRcdC8vIEVpdGhlciBzY3JvbGxbV2lkdGgvSGVpZ2h0XSBvciBvZmZzZXRbV2lkdGgvSGVpZ2h0XSBvciBjbGllbnRbV2lkdGgvSGVpZ2h0XSxcblx0XHRcdFx0XHQvLyB3aGljaGV2ZXIgaXMgZ3JlYXRlc3Rcblx0XHRcdFx0XHRyZXR1cm4gTWF0aC5tYXgoXG5cdFx0XHRcdFx0XHRlbGVtLmJvZHlbIFwic2Nyb2xsXCIgKyBuYW1lIF0sIGRvY1sgXCJzY3JvbGxcIiArIG5hbWUgXSxcblx0XHRcdFx0XHRcdGVsZW0uYm9keVsgXCJvZmZzZXRcIiArIG5hbWUgXSwgZG9jWyBcIm9mZnNldFwiICsgbmFtZSBdLFxuXHRcdFx0XHRcdFx0ZG9jWyBcImNsaWVudFwiICsgbmFtZSBdXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID9cblxuXHRcdFx0XHRcdC8vIEdldCB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnQsIHJlcXVlc3RpbmcgYnV0IG5vdCBmb3JjaW5nIHBhcnNlRmxvYXRcblx0XHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCB0eXBlLCBleHRyYSApIDpcblxuXHRcdFx0XHRcdC8vIFNldCB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnRcblx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHR5cGUsIHZhbHVlLCBleHRyYSApO1xuXHRcdFx0fSwgdHlwZSwgY2hhaW5hYmxlID8gbWFyZ2luIDogdW5kZWZpbmVkLCBjaGFpbmFibGUgKTtcblx0XHR9O1xuXHR9ICk7XG59ICk7XG5cblxualF1ZXJ5LmVhY2goIFtcblx0XCJhamF4U3RhcnRcIixcblx0XCJhamF4U3RvcFwiLFxuXHRcImFqYXhDb21wbGV0ZVwiLFxuXHRcImFqYXhFcnJvclwiLFxuXHRcImFqYXhTdWNjZXNzXCIsXG5cdFwiYWpheFNlbmRcIlxuXSwgZnVuY3Rpb24oIF9pLCB0eXBlICkge1xuXHRqUXVlcnkuZm5bIHR5cGUgXSA9IGZ1bmN0aW9uKCBmbiApIHtcblx0XHRyZXR1cm4gdGhpcy5vbiggdHlwZSwgZm4gKTtcblx0fTtcbn0gKTtcblxuXG5cblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXG5cdGJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBudWxsLCBkYXRhLCBmbiApO1xuXHR9LFxuXHR1bmJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub2ZmKCB0eXBlcywgbnVsbCwgZm4gKTtcblx0fSxcblxuXHRkZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKTtcblx0fSxcblx0dW5kZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZm4gKSB7XG5cblx0XHQvLyAoIG5hbWVzcGFjZSApIG9yICggc2VsZWN0b3IsIHR5cGVzIFssIGZuXSApXG5cdFx0cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPT09IDEgP1xuXHRcdFx0dGhpcy5vZmYoIHNlbGVjdG9yLCBcIioqXCIgKSA6XG5cdFx0XHR0aGlzLm9mZiggdHlwZXMsIHNlbGVjdG9yIHx8IFwiKipcIiwgZm4gKTtcblx0fSxcblxuXHRob3ZlcjogZnVuY3Rpb24oIGZuT3ZlciwgZm5PdXQgKSB7XG5cdFx0cmV0dXJuIHRoaXMubW91c2VlbnRlciggZm5PdmVyICkubW91c2VsZWF2ZSggZm5PdXQgfHwgZm5PdmVyICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmVhY2goICggXCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBcIiArXG5cdFwibW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgXCIgK1xuXHRcImNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgY29udGV4dG1lbnVcIiApLnNwbGl0KCBcIiBcIiApLFxuXHRmdW5jdGlvbiggX2ksIG5hbWUgKSB7XG5cblx0XHQvLyBIYW5kbGUgZXZlbnQgYmluZGluZ1xuXHRcdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIGRhdGEsIGZuICkge1xuXHRcdFx0cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPiAwID9cblx0XHRcdFx0dGhpcy5vbiggbmFtZSwgbnVsbCwgZGF0YSwgZm4gKSA6XG5cdFx0XHRcdHRoaXMudHJpZ2dlciggbmFtZSApO1xuXHRcdH07XG5cdH0gKTtcblxuXG5cblxuLy8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMCBvbmx5XG4vLyBNYWtlIHN1cmUgd2UgdHJpbSBCT00gYW5kIE5CU1BcbnZhciBydHJpbSA9IC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZztcblxuLy8gQmluZCBhIGZ1bmN0aW9uIHRvIGEgY29udGV4dCwgb3B0aW9uYWxseSBwYXJ0aWFsbHkgYXBwbHlpbmcgYW55XG4vLyBhcmd1bWVudHMuXG4vLyBqUXVlcnkucHJveHkgaXMgZGVwcmVjYXRlZCB0byBwcm9tb3RlIHN0YW5kYXJkcyAoc3BlY2lmaWNhbGx5IEZ1bmN0aW9uI2JpbmQpXG4vLyBIb3dldmVyLCBpdCBpcyBub3Qgc2xhdGVkIGZvciByZW1vdmFsIGFueSB0aW1lIHNvb25cbmpRdWVyeS5wcm94eSA9IGZ1bmN0aW9uKCBmbiwgY29udGV4dCApIHtcblx0dmFyIHRtcCwgYXJncywgcHJveHk7XG5cblx0aWYgKCB0eXBlb2YgY29udGV4dCA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHR0bXAgPSBmblsgY29udGV4dCBdO1xuXHRcdGNvbnRleHQgPSBmbjtcblx0XHRmbiA9IHRtcDtcblx0fVxuXG5cdC8vIFF1aWNrIGNoZWNrIHRvIGRldGVybWluZSBpZiB0YXJnZXQgaXMgY2FsbGFibGUsIGluIHRoZSBzcGVjXG5cdC8vIHRoaXMgdGhyb3dzIGEgVHlwZUVycm9yLCBidXQgd2Ugd2lsbCBqdXN0IHJldHVybiB1bmRlZmluZWQuXG5cdGlmICggIWlzRnVuY3Rpb24oIGZuICkgKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdC8vIFNpbXVsYXRlZCBiaW5kXG5cdGFyZ3MgPSBzbGljZS5jYWxsKCBhcmd1bWVudHMsIDIgKTtcblx0cHJveHkgPSBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZm4uYXBwbHkoIGNvbnRleHQgfHwgdGhpcywgYXJncy5jb25jYXQoIHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApICkgKTtcblx0fTtcblxuXHQvLyBTZXQgdGhlIGd1aWQgb2YgdW5pcXVlIGhhbmRsZXIgdG8gdGhlIHNhbWUgb2Ygb3JpZ2luYWwgaGFuZGxlciwgc28gaXQgY2FuIGJlIHJlbW92ZWRcblx0cHJveHkuZ3VpZCA9IGZuLmd1aWQgPSBmbi5ndWlkIHx8IGpRdWVyeS5ndWlkKys7XG5cblx0cmV0dXJuIHByb3h5O1xufTtcblxualF1ZXJ5LmhvbGRSZWFkeSA9IGZ1bmN0aW9uKCBob2xkICkge1xuXHRpZiAoIGhvbGQgKSB7XG5cdFx0alF1ZXJ5LnJlYWR5V2FpdCsrO1xuXHR9IGVsc2Uge1xuXHRcdGpRdWVyeS5yZWFkeSggdHJ1ZSApO1xuXHR9XG59O1xualF1ZXJ5LmlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xualF1ZXJ5LnBhcnNlSlNPTiA9IEpTT04ucGFyc2U7XG5qUXVlcnkubm9kZU5hbWUgPSBub2RlTmFtZTtcbmpRdWVyeS5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjtcbmpRdWVyeS5pc1dpbmRvdyA9IGlzV2luZG93O1xualF1ZXJ5LmNhbWVsQ2FzZSA9IGNhbWVsQ2FzZTtcbmpRdWVyeS50eXBlID0gdG9UeXBlO1xuXG5qUXVlcnkubm93ID0gRGF0ZS5ub3c7XG5cbmpRdWVyeS5pc051bWVyaWMgPSBmdW5jdGlvbiggb2JqICkge1xuXG5cdC8vIEFzIG9mIGpRdWVyeSAzLjAsIGlzTnVtZXJpYyBpcyBsaW1pdGVkIHRvXG5cdC8vIHN0cmluZ3MgYW5kIG51bWJlcnMgKHByaW1pdGl2ZXMgb3Igb2JqZWN0cylcblx0Ly8gdGhhdCBjYW4gYmUgY29lcmNlZCB0byBmaW5pdGUgbnVtYmVycyAoZ2gtMjY2Milcblx0dmFyIHR5cGUgPSBqUXVlcnkudHlwZSggb2JqICk7XG5cdHJldHVybiAoIHR5cGUgPT09IFwibnVtYmVyXCIgfHwgdHlwZSA9PT0gXCJzdHJpbmdcIiApICYmXG5cblx0XHQvLyBwYXJzZUZsb2F0IE5hTnMgbnVtZXJpYy1jYXN0IGZhbHNlIHBvc2l0aXZlcyAoXCJcIilcblx0XHQvLyAuLi5idXQgbWlzaW50ZXJwcmV0cyBsZWFkaW5nLW51bWJlciBzdHJpbmdzLCBwYXJ0aWN1bGFybHkgaGV4IGxpdGVyYWxzIChcIjB4Li4uXCIpXG5cdFx0Ly8gc3VidHJhY3Rpb24gZm9yY2VzIGluZmluaXRpZXMgdG8gTmFOXG5cdFx0IWlzTmFOKCBvYmogLSBwYXJzZUZsb2F0KCBvYmogKSApO1xufTtcblxualF1ZXJ5LnRyaW0gPSBmdW5jdGlvbiggdGV4dCApIHtcblx0cmV0dXJuIHRleHQgPT0gbnVsbCA/XG5cdFx0XCJcIiA6XG5cdFx0KCB0ZXh0ICsgXCJcIiApLnJlcGxhY2UoIHJ0cmltLCBcIlwiICk7XG59O1xuXG5cblxuLy8gUmVnaXN0ZXIgYXMgYSBuYW1lZCBBTUQgbW9kdWxlLCBzaW5jZSBqUXVlcnkgY2FuIGJlIGNvbmNhdGVuYXRlZCB3aXRoIG90aGVyXG4vLyBmaWxlcyB0aGF0IG1heSB1c2UgZGVmaW5lLCBidXQgbm90IHZpYSBhIHByb3BlciBjb25jYXRlbmF0aW9uIHNjcmlwdCB0aGF0XG4vLyB1bmRlcnN0YW5kcyBhbm9ueW1vdXMgQU1EIG1vZHVsZXMuIEEgbmFtZWQgQU1EIGlzIHNhZmVzdCBhbmQgbW9zdCByb2J1c3Rcbi8vIHdheSB0byByZWdpc3Rlci4gTG93ZXJjYXNlIGpxdWVyeSBpcyB1c2VkIGJlY2F1c2UgQU1EIG1vZHVsZSBuYW1lcyBhcmVcbi8vIGRlcml2ZWQgZnJvbSBmaWxlIG5hbWVzLCBhbmQgalF1ZXJ5IGlzIG5vcm1hbGx5IGRlbGl2ZXJlZCBpbiBhIGxvd2VyY2FzZVxuLy8gZmlsZSBuYW1lLiBEbyB0aGlzIGFmdGVyIGNyZWF0aW5nIHRoZSBnbG9iYWwgc28gdGhhdCBpZiBhbiBBTUQgbW9kdWxlIHdhbnRzXG4vLyB0byBjYWxsIG5vQ29uZmxpY3QgdG8gaGlkZSB0aGlzIHZlcnNpb24gb2YgalF1ZXJ5LCBpdCB3aWxsIHdvcmsuXG5cbi8vIE5vdGUgdGhhdCBmb3IgbWF4aW11bSBwb3J0YWJpbGl0eSwgbGlicmFyaWVzIHRoYXQgYXJlIG5vdCBqUXVlcnkgc2hvdWxkXG4vLyBkZWNsYXJlIHRoZW1zZWx2ZXMgYXMgYW5vbnltb3VzIG1vZHVsZXMsIGFuZCBhdm9pZCBzZXR0aW5nIGEgZ2xvYmFsIGlmIGFuXG4vLyBBTUQgbG9hZGVyIGlzIHByZXNlbnQuIGpRdWVyeSBpcyBhIHNwZWNpYWwgY2FzZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2pyYnVya2UvcmVxdWlyZWpzL3dpa2kvVXBkYXRpbmctZXhpc3RpbmctbGlicmFyaWVzI3dpa2ktYW5vblxuXG5pZiAoIHR5cGVvZiBkZWZpbmUgPT09IFwiZnVuY3Rpb25cIiAmJiBkZWZpbmUuYW1kICkge1xuXHRkZWZpbmUoIFwianF1ZXJ5XCIsIFtdLCBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4galF1ZXJ5O1xuXHR9ICk7XG59XG5cblxuXG5cbnZhclxuXG5cdC8vIE1hcCBvdmVyIGpRdWVyeSBpbiBjYXNlIG9mIG92ZXJ3cml0ZVxuXHRfalF1ZXJ5ID0gd2luZG93LmpRdWVyeSxcblxuXHQvLyBNYXAgb3ZlciB0aGUgJCBpbiBjYXNlIG9mIG92ZXJ3cml0ZVxuXHRfJCA9IHdpbmRvdy4kO1xuXG5qUXVlcnkubm9Db25mbGljdCA9IGZ1bmN0aW9uKCBkZWVwICkge1xuXHRpZiAoIHdpbmRvdy4kID09PSBqUXVlcnkgKSB7XG5cdFx0d2luZG93LiQgPSBfJDtcblx0fVxuXG5cdGlmICggZGVlcCAmJiB3aW5kb3cualF1ZXJ5ID09PSBqUXVlcnkgKSB7XG5cdFx0d2luZG93LmpRdWVyeSA9IF9qUXVlcnk7XG5cdH1cblxuXHRyZXR1cm4galF1ZXJ5O1xufTtcblxuLy8gRXhwb3NlIGpRdWVyeSBhbmQgJCBpZGVudGlmaWVycywgZXZlbiBpbiBBTURcbi8vICgjNzEwMiNjb21tZW50OjEwLCBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9wdWxsLzU1Nylcbi8vIGFuZCBDb21tb25KUyBmb3IgYnJvd3NlciBlbXVsYXRvcnMgKCMxMzU2NilcbmlmICggdHlwZW9mIG5vR2xvYmFsID09PSBcInVuZGVmaW5lZFwiICkge1xuXHR3aW5kb3cualF1ZXJ5ID0gd2luZG93LiQgPSBqUXVlcnk7XG59XG5cblxuXG5cbnJldHVybiBqUXVlcnk7XG59ICk7XG4iLCJpbXBvcnQgcm9vdCBmcm9tICcuL19yb290LmpzJztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBleHBvcnRzYC4gKi9cbnZhciBmcmVlRXhwb3J0cyA9IHR5cGVvZiBleHBvcnRzID09ICdvYmplY3QnICYmIGV4cG9ydHMgJiYgIWV4cG9ydHMubm9kZVR5cGUgJiYgZXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBtb2R1bGVgLiAqL1xudmFyIGZyZWVNb2R1bGUgPSBmcmVlRXhwb3J0cyAmJiB0eXBlb2YgbW9kdWxlID09ICdvYmplY3QnICYmIG1vZHVsZSAmJiAhbW9kdWxlLm5vZGVUeXBlICYmIG1vZHVsZTtcblxuLyoqIERldGVjdCB0aGUgcG9wdWxhciBDb21tb25KUyBleHRlbnNpb24gYG1vZHVsZS5leHBvcnRzYC4gKi9cbnZhciBtb2R1bGVFeHBvcnRzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLmV4cG9ydHMgPT09IGZyZWVFeHBvcnRzO1xuXG4vKiogQnVpbHQtaW4gdmFsdWUgcmVmZXJlbmNlcy4gKi9cbnZhciBCdWZmZXIgPSBtb2R1bGVFeHBvcnRzID8gcm9vdC5CdWZmZXIgOiB1bmRlZmluZWQsXG4gICAgYWxsb2NVbnNhZmUgPSBCdWZmZXIgPyBCdWZmZXIuYWxsb2NVbnNhZmUgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGNsb25lIG9mICBgYnVmZmVyYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtCdWZmZXJ9IGJ1ZmZlciBUaGUgYnVmZmVyIHRvIGNsb25lLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNEZWVwXSBTcGVjaWZ5IGEgZGVlcCBjbG9uZS5cbiAqIEByZXR1cm5zIHtCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGNsb25lQnVmZmVyKGJ1ZmZlciwgaXNEZWVwKSB7XG4gIGlmIChpc0RlZXApIHtcbiAgICByZXR1cm4gYnVmZmVyLnNsaWNlKCk7XG4gIH1cbiAgdmFyIGxlbmd0aCA9IGJ1ZmZlci5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBhbGxvY1Vuc2FmZSA/IGFsbG9jVW5zYWZlKGxlbmd0aCkgOiBuZXcgYnVmZmVyLmNvbnN0cnVjdG9yKGxlbmd0aCk7XG5cbiAgYnVmZmVyLmNvcHkocmVzdWx0KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xvbmVCdWZmZXI7XG4iLCIvKiogRGV0ZWN0IGZyZWUgdmFyaWFibGUgYGdsb2JhbGAgZnJvbSBOb2RlLmpzLiAqL1xudmFyIGZyZWVHbG9iYWwgPSB0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbCAmJiBnbG9iYWwuT2JqZWN0ID09PSBPYmplY3QgJiYgZ2xvYmFsO1xuXG5leHBvcnQgZGVmYXVsdCBmcmVlR2xvYmFsO1xuIiwiaW1wb3J0IGZyZWVHbG9iYWwgZnJvbSAnLi9fZnJlZUdsb2JhbC5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIERldGVjdCBmcmVlIHZhcmlhYmxlIGBwcm9jZXNzYCBmcm9tIE5vZGUuanMuICovXG52YXIgZnJlZVByb2Nlc3MgPSBtb2R1bGVFeHBvcnRzICYmIGZyZWVHbG9iYWwucHJvY2VzcztcblxuLyoqIFVzZWQgdG8gYWNjZXNzIGZhc3RlciBOb2RlLmpzIGhlbHBlcnMuICovXG52YXIgbm9kZVV0aWwgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgLy8gVXNlIGB1dGlsLnR5cGVzYCBmb3IgTm9kZS5qcyAxMCsuXG4gICAgdmFyIHR5cGVzID0gZnJlZU1vZHVsZSAmJiBmcmVlTW9kdWxlLnJlcXVpcmUgJiYgZnJlZU1vZHVsZS5yZXF1aXJlKCd1dGlsJykudHlwZXM7XG5cbiAgICBpZiAodHlwZXMpIHtcbiAgICAgIHJldHVybiB0eXBlcztcbiAgICB9XG5cbiAgICAvLyBMZWdhY3kgYHByb2Nlc3MuYmluZGluZygndXRpbCcpYCBmb3IgTm9kZS5qcyA8IDEwLlxuICAgIHJldHVybiBmcmVlUHJvY2VzcyAmJiBmcmVlUHJvY2Vzcy5iaW5kaW5nICYmIGZyZWVQcm9jZXNzLmJpbmRpbmcoJ3V0aWwnKTtcbiAgfSBjYXRjaCAoZSkge31cbn0oKSk7XG5cbmV4cG9ydCBkZWZhdWx0IG5vZGVVdGlsO1xuIiwiaW1wb3J0IGZyZWVHbG9iYWwgZnJvbSAnLi9fZnJlZUdsb2JhbC5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgc2VsZmAuICovXG52YXIgZnJlZVNlbGYgPSB0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmICYmIHNlbGYuT2JqZWN0ID09PSBPYmplY3QgJiYgc2VsZjtcblxuLyoqIFVzZWQgYXMgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QuICovXG52YXIgcm9vdCA9IGZyZWVHbG9iYWwgfHwgZnJlZVNlbGYgfHwgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblxuZXhwb3J0IGRlZmF1bHQgcm9vdDtcbiIsImltcG9ydCByb290IGZyb20gJy4vX3Jvb3QuanMnO1xuaW1wb3J0IHN0dWJGYWxzZSBmcm9tICcuL3N0dWJGYWxzZS5qcyc7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgZXhwb3J0c2AuICovXG52YXIgZnJlZUV4cG9ydHMgPSB0eXBlb2YgZXhwb3J0cyA9PSAnb2JqZWN0JyAmJiBleHBvcnRzICYmICFleHBvcnRzLm5vZGVUeXBlICYmIGV4cG9ydHM7XG5cbi8qKiBEZXRlY3QgZnJlZSB2YXJpYWJsZSBgbW9kdWxlYC4gKi9cbnZhciBmcmVlTW9kdWxlID0gZnJlZUV4cG9ydHMgJiYgdHlwZW9mIG1vZHVsZSA9PSAnb2JqZWN0JyAmJiBtb2R1bGUgJiYgIW1vZHVsZS5ub2RlVHlwZSAmJiBtb2R1bGU7XG5cbi8qKiBEZXRlY3QgdGhlIHBvcHVsYXIgQ29tbW9uSlMgZXh0ZW5zaW9uIGBtb2R1bGUuZXhwb3J0c2AuICovXG52YXIgbW9kdWxlRXhwb3J0cyA9IGZyZWVNb2R1bGUgJiYgZnJlZU1vZHVsZS5leHBvcnRzID09PSBmcmVlRXhwb3J0cztcblxuLyoqIEJ1aWx0LWluIHZhbHVlIHJlZmVyZW5jZXMuICovXG52YXIgQnVmZmVyID0gbW9kdWxlRXhwb3J0cyA/IHJvb3QuQnVmZmVyIDogdW5kZWZpbmVkO1xuXG4vKiBCdWlsdC1pbiBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlSXNCdWZmZXIgPSBCdWZmZXIgPyBCdWZmZXIuaXNCdWZmZXIgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBzaW5jZSA0LjMuMFxuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBidWZmZXIsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0J1ZmZlcihuZXcgQnVmZmVyKDIpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQnVmZmVyKG5ldyBVaW50OEFycmF5KDIpKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbnZhciBpc0J1ZmZlciA9IG5hdGl2ZUlzQnVmZmVyIHx8IHN0dWJGYWxzZTtcblxuZXhwb3J0IGRlZmF1bHQgaXNCdWZmZXI7XG4iLCIvKipcbiAqIFRoaXMgbWV0aG9kIHJldHVybnMgYGZhbHNlYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQHNpbmNlIDQuMTMuMFxuICogQGNhdGVnb3J5IFV0aWxcbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8udGltZXMoMiwgXy5zdHViRmFsc2UpO1xuICogLy8gPT4gW2ZhbHNlLCBmYWxzZV1cbiAqL1xuZnVuY3Rpb24gc3R1YkZhbHNlKCkge1xuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0dWJGYWxzZTtcbiIsIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgTWluaVNpZ25hbEJpbmRpbmcgPSAoZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBNaW5pU2lnbmFsQmluZGluZyhmbiwgb25jZSwgdGhpc0FyZykge1xuICAgIGlmIChvbmNlID09PSB1bmRlZmluZWQpIG9uY2UgPSBmYWxzZTtcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBNaW5pU2lnbmFsQmluZGluZyk7XG5cbiAgICB0aGlzLl9mbiA9IGZuO1xuICAgIHRoaXMuX29uY2UgPSBvbmNlO1xuICAgIHRoaXMuX3RoaXNBcmcgPSB0aGlzQXJnO1xuICAgIHRoaXMuX25leHQgPSB0aGlzLl9wcmV2ID0gdGhpcy5fb3duZXIgPSBudWxsO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKE1pbmlTaWduYWxCaW5kaW5nLCBbe1xuICAgIGtleTogJ2RldGFjaCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGRldGFjaCgpIHtcbiAgICAgIGlmICh0aGlzLl9vd25lciA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICAgICAgdGhpcy5fb3duZXIuZGV0YWNoKHRoaXMpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIE1pbmlTaWduYWxCaW5kaW5nO1xufSkoKTtcblxuZnVuY3Rpb24gX2FkZE1pbmlTaWduYWxCaW5kaW5nKHNlbGYsIG5vZGUpIHtcbiAgaWYgKCFzZWxmLl9oZWFkKSB7XG4gICAgc2VsZi5faGVhZCA9IG5vZGU7XG4gICAgc2VsZi5fdGFpbCA9IG5vZGU7XG4gIH0gZWxzZSB7XG4gICAgc2VsZi5fdGFpbC5fbmV4dCA9IG5vZGU7XG4gICAgbm9kZS5fcHJldiA9IHNlbGYuX3RhaWw7XG4gICAgc2VsZi5fdGFpbCA9IG5vZGU7XG4gIH1cblxuICBub2RlLl9vd25lciA9IHNlbGY7XG5cbiAgcmV0dXJuIG5vZGU7XG59XG5cbnZhciBNaW5pU2lnbmFsID0gKGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gTWluaVNpZ25hbCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWluaVNpZ25hbCk7XG5cbiAgICB0aGlzLl9oZWFkID0gdGhpcy5fdGFpbCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhNaW5pU2lnbmFsLCBbe1xuICAgIGtleTogJ2hhbmRsZXJzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFuZGxlcnMoKSB7XG4gICAgICB2YXIgZXhpc3RzID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBhcmd1bWVudHNbMF07XG5cbiAgICAgIHZhciBub2RlID0gdGhpcy5faGVhZDtcblxuICAgICAgaWYgKGV4aXN0cykgcmV0dXJuICEhbm9kZTtcblxuICAgICAgdmFyIGVlID0gW107XG5cbiAgICAgIHdoaWxlIChub2RlKSB7XG4gICAgICAgIGVlLnB1c2gobm9kZSk7XG4gICAgICAgIG5vZGUgPSBub2RlLl9uZXh0O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZWU7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnaGFzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFzKG5vZGUpIHtcbiAgICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBNaW5pU2lnbmFsQmluZGluZykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaW5pU2lnbmFsI2hhcygpOiBGaXJzdCBhcmcgbXVzdCBiZSBhIE1pbmlTaWduYWxCaW5kaW5nIG9iamVjdC4nKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5vZGUuX293bmVyID09PSB0aGlzO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2Rpc3BhdGNoJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZGlzcGF0Y2goKSB7XG4gICAgICB2YXIgbm9kZSA9IHRoaXMuX2hlYWQ7XG5cbiAgICAgIGlmICghbm9kZSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICB3aGlsZSAobm9kZSkge1xuICAgICAgICBpZiAobm9kZS5fb25jZSkgdGhpcy5kZXRhY2gobm9kZSk7XG4gICAgICAgIG5vZGUuX2ZuLmFwcGx5KG5vZGUuX3RoaXNBcmcsIGFyZ3VtZW50cyk7XG4gICAgICAgIG5vZGUgPSBub2RlLl9uZXh0O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdhZGQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGQoZm4pIHtcbiAgICAgIHZhciB0aGlzQXJnID0gYXJndW1lbnRzLmxlbmd0aCA8PSAxIHx8IGFyZ3VtZW50c1sxXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGFyZ3VtZW50c1sxXTtcblxuICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pbmlTaWduYWwjYWRkKCk6IEZpcnN0IGFyZyBtdXN0IGJlIGEgRnVuY3Rpb24uJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gX2FkZE1pbmlTaWduYWxCaW5kaW5nKHRoaXMsIG5ldyBNaW5pU2lnbmFsQmluZGluZyhmbiwgZmFsc2UsIHRoaXNBcmcpKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdvbmNlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gb25jZShmbikge1xuICAgICAgdmFyIHRoaXNBcmcgPSBhcmd1bWVudHMubGVuZ3RoIDw9IDEgfHwgYXJndW1lbnRzWzFdID09PSB1bmRlZmluZWQgPyBudWxsIDogYXJndW1lbnRzWzFdO1xuXG4gICAgICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTWluaVNpZ25hbCNvbmNlKCk6IEZpcnN0IGFyZyBtdXN0IGJlIGEgRnVuY3Rpb24uJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gX2FkZE1pbmlTaWduYWxCaW5kaW5nKHRoaXMsIG5ldyBNaW5pU2lnbmFsQmluZGluZyhmbiwgdHJ1ZSwgdGhpc0FyZykpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2RldGFjaCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGRldGFjaChub2RlKSB7XG4gICAgICBpZiAoIShub2RlIGluc3RhbmNlb2YgTWluaVNpZ25hbEJpbmRpbmcpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTWluaVNpZ25hbCNkZXRhY2goKTogRmlyc3QgYXJnIG11c3QgYmUgYSBNaW5pU2lnbmFsQmluZGluZyBvYmplY3QuJyk7XG4gICAgICB9XG4gICAgICBpZiAobm9kZS5fb3duZXIgIT09IHRoaXMpIHJldHVybiB0aGlzO1xuXG4gICAgICBpZiAobm9kZS5fcHJldikgbm9kZS5fcHJldi5fbmV4dCA9IG5vZGUuX25leHQ7XG4gICAgICBpZiAobm9kZS5fbmV4dCkgbm9kZS5fbmV4dC5fcHJldiA9IG5vZGUuX3ByZXY7XG5cbiAgICAgIGlmIChub2RlID09PSB0aGlzLl9oZWFkKSB7XG4gICAgICAgIHRoaXMuX2hlYWQgPSBub2RlLl9uZXh0O1xuICAgICAgICBpZiAobm9kZS5fbmV4dCA9PT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuX3RhaWwgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKG5vZGUgPT09IHRoaXMuX3RhaWwpIHtcbiAgICAgICAgdGhpcy5fdGFpbCA9IG5vZGUuX3ByZXY7XG4gICAgICAgIHRoaXMuX3RhaWwuX25leHQgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICBub2RlLl9vd25lciA9IG51bGw7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdkZXRhY2hBbGwnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBkZXRhY2hBbGwoKSB7XG4gICAgICB2YXIgbm9kZSA9IHRoaXMuX2hlYWQ7XG4gICAgICBpZiAoIW5vZGUpIHJldHVybiB0aGlzO1xuXG4gICAgICB0aGlzLl9oZWFkID0gdGhpcy5fdGFpbCA9IG51bGw7XG5cbiAgICAgIHdoaWxlIChub2RlKSB7XG4gICAgICAgIG5vZGUuX293bmVyID0gbnVsbDtcbiAgICAgICAgbm9kZSA9IG5vZGUuX25leHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gTWluaVNpZ25hbDtcbn0pKCk7XG5cbk1pbmlTaWduYWwuTWluaVNpZ25hbEJpbmRpbmcgPSBNaW5pU2lnbmFsQmluZGluZztcblxuZXhwb3J0c1snZGVmYXVsdCddID0gTWluaVNpZ25hbDtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgYWYgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdhZicsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbnVhcmllX0ZlYnJ1YXJpZV9NYWFydF9BcHJpbF9NZWlfSnVuaWVfSnVsaWVfQXVndXN0dXNfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGVzZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ0phbl9GZWJfTXJ0X0Fwcl9NZWlfSnVuX0p1bF9BdWdfU2VwX09rdF9Ob3ZfRGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdTb25kYWdfTWFhbmRhZ19EaW5zZGFnX1dvZW5zZGFnX0RvbmRlcmRhZ19WcnlkYWdfU2F0ZXJkYWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnU29uX01hYV9EaW5fV29lX0Rvbl9WcnlfU2F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdTb19NYV9EaV9Xb19Eb19Wcl9TYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL3ZtfG5tL2ksXG4gICAgICAgIGlzUE0gOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXm5tJC9pLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICd2bScgOiAnVk0nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdubScgOiAnTk0nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdbVmFuZGFnIG9tXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1tNw7RyZSBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW0dpc3RlciBvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW0xhYXNdIGRkZGQgW29tXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnb29yICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgZ2VsZWRlJyxcbiAgICAgICAgICAgIHMgOiAnXFwnbiBwYWFyIHNla29uZGVzJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNla29uZGVzJyxcbiAgICAgICAgICAgIG0gOiAnXFwnbiBtaW51dXQnLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXRlJyxcbiAgICAgICAgICAgIGggOiAnXFwnbiB1dXInLFxuICAgICAgICAgICAgaGggOiAnJWQgdXJlJyxcbiAgICAgICAgICAgIGQgOiAnXFwnbiBkYWcnLFxuICAgICAgICAgICAgZGQgOiAnJWQgZGFlJyxcbiAgICAgICAgICAgIE0gOiAnXFwnbiBtYWFuZCcsXG4gICAgICAgICAgICBNTSA6ICclZCBtYWFuZGUnLFxuICAgICAgICAgICAgeSA6ICdcXCduIGphYXInLFxuICAgICAgICAgICAgeXkgOiAnJWQgamFhcidcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0ZXxkZSkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICgobnVtYmVyID09PSAxIHx8IG51bWJlciA9PT0gOCB8fCBudW1iZXIgPj0gMjApID8gJ3N0ZScgOiAnZGUnKTsgLy8gVGhhbmtzIHRvIEpvcmlzIFLDtmxpbmcgOiBodHRwczovL2dpdGh1Yi5jb20vamp1cGl0ZXJcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1hYW5kYWcgaXMgZGllIGVlcnN0ZSBkYWcgdmFuIGRpZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gRGllIHdlZWsgd2F0IGRpZSA0ZGUgSmFudWFyaWUgYmV2YXQgaXMgZGllIGVlcnN0ZSB3ZWVrIHZhbiBkaWUgamFhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFmO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgYXJEeiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLWR6Jywge1xuICAgICAgICBtb250aHMgOiAn2KzYp9mG2YHZil/ZgdmK2YHYsdmKX9mF2KfYsdizX9ij2YHYsdmK2YRf2YXYp9mKX9is2YjYp9mGX9is2YjZitmE2YrYqV/Yo9mI2Kpf2LPYqNiq2YXYqNixX9ij2YPYqtmI2KjYsV/ZhtmI2YHZhdio2LFf2K/Zitiz2YXYqNixJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICfYrNin2YbZgdmKX9mB2YrZgdix2Ypf2YXYp9ix2LNf2KPZgdix2YrZhF/Zhdin2Ypf2KzZiNin2YZf2KzZiNmK2YTZitipX9ij2YjYql/Ys9io2KrZhdio2LFf2KPZg9iq2YjYqNixX9mG2YjZgdmF2KjYsV/Yr9mK2LPZhdio2LEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ9in2YTYo9it2K9f2KfZhNil2KvZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfYp9it2K9f2KfYq9mG2YrZhl/Yq9mE2KfYq9in2KFf2KfYsdio2LnYp9ihX9iu2YXZitizX9is2YXYudipX9iz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn2KPYrV/YpdirX9ir2YTYp1/Yo9ixX9iu2YVf2KzZhV/Ys9ioJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2Kcg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9ij2YXYsyDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9i52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ9mB2YogJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICfZhdmG2LAgJXMnLFxuICAgICAgICAgICAgcyA6ICfYq9mI2KfZhicsXG4gICAgICAgICAgICBzcyA6ICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIG0gOiAn2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICBtbSA6ICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgIGggOiAn2LPYp9i52KknLFxuICAgICAgICAgICAgaGggOiAnJWQg2LPYp9i52KfYqicsXG4gICAgICAgICAgICBkIDogJ9mK2YjZhScsXG4gICAgICAgICAgICBkZCA6ICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICBNIDogJ9i02YfYsScsXG4gICAgICAgICAgICBNTSA6ICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICB5IDogJ9iz2YbYqScsXG4gICAgICAgICAgICB5eSA6ICclZCDYs9mG2YjYp9iqJ1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhckR6O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgYXJLdyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLWt3Jywge1xuICAgICAgICBtb250aHMgOiAn2YrZhtin2YrYsV/Zgdio2LHYp9mK2LFf2YXYp9ix2LNf2KPYqNix2YrZhF/Zhdin2Ypf2YrZiNmG2YrZiF/ZitmI2YTZitmI2LJf2LrYtNiqX9i02KrZhtio2LFf2KPZg9iq2YjYqNixX9mG2YjZhtio2LFf2K/YrNmG2KjYsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn2YrZhtin2YrYsV/Zgdio2LHYp9mK2LFf2YXYp9ix2LNf2KPYqNix2YrZhF/Zhdin2Ypf2YrZiNmG2YrZiF/ZitmI2YTZitmI2LJf2LrYtNiqX9i02KrZhtio2LFf2KPZg9iq2YjYqNixX9mG2YjZhtio2LFf2K/YrNmG2KjYsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAn2KfZhNij2K3Yr1/Yp9mE2KXYqtmG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ9in2K3Yr1/Yp9iq2YbZitmGX9ir2YTYp9ir2KfYoV/Yp9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfYrV/Zhl/Yq1/YsV/Yrl/YrF/Ysycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9inINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICfZgdmKICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHMgOiAn2KvZiNin2YYnLFxuICAgICAgICAgICAgc3MgOiAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICBtIDogJ9iv2YLZitmC2KknLFxuICAgICAgICAgICAgbW0gOiAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICBoIDogJ9iz2KfYudipJyxcbiAgICAgICAgICAgIGhoIDogJyVkINiz2KfYudin2KonLFxuICAgICAgICAgICAgZCA6ICfZitmI2YUnLFxuICAgICAgICAgICAgZGQgOiAnJWQg2KPZitin2YUnLFxuICAgICAgICAgICAgTSA6ICfYtNmH2LEnLFxuICAgICAgICAgICAgTU0gOiAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgeSA6ICfYs9mG2KknLFxuICAgICAgICAgICAgeXkgOiAnJWQg2LPZhtmI2KfYqidcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogMTIgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhckt3O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAnMSc6ICcxJyxcbiAgICAgICAgJzInOiAnMicsXG4gICAgICAgICczJzogJzMnLFxuICAgICAgICAnNCc6ICc0JyxcbiAgICAgICAgJzUnOiAnNScsXG4gICAgICAgICc2JzogJzYnLFxuICAgICAgICAnNyc6ICc3JyxcbiAgICAgICAgJzgnOiAnOCcsXG4gICAgICAgICc5JzogJzknLFxuICAgICAgICAnMCc6ICcwJ1xuICAgIH0sIHBsdXJhbEZvcm0gPSBmdW5jdGlvbiAobikge1xuICAgICAgICByZXR1cm4gbiA9PT0gMCA/IDAgOiBuID09PSAxID8gMSA6IG4gPT09IDIgPyAyIDogbiAlIDEwMCA+PSAzICYmIG4gJSAxMDAgPD0gMTAgPyAzIDogbiAlIDEwMCA+PSAxMSA/IDQgOiA1O1xuICAgIH0sIHBsdXJhbHMgPSB7XG4gICAgICAgIHMgOiBbJ9ij2YLZhCDZhdmGINir2KfZhtmK2KknLCAn2KvYp9mG2YrYqSDZiNin2K3Yr9ipJywgWyfYq9in2YbZitiq2KfZhicsICfYq9in2YbZitiq2YrZhiddLCAnJWQg2KvZiNin2YYnLCAnJWQg2KvYp9mG2YrYqScsICclZCDYq9in2YbZitipJ10sXG4gICAgICAgIG0gOiBbJ9ij2YLZhCDZhdmGINiv2YLZitmC2KknLCAn2K/ZgtmK2YLYqSDZiNin2K3Yr9ipJywgWyfYr9mC2YrZgtiq2KfZhicsICfYr9mC2YrZgtiq2YrZhiddLCAnJWQg2K/Zgtin2KbZgicsICclZCDYr9mC2YrZgtipJywgJyVkINiv2YLZitmC2KknXSxcbiAgICAgICAgaCA6IFsn2KPZgtmEINmF2YYg2LPYp9i52KknLCAn2LPYp9i52Kkg2YjYp9it2K/YqScsIFsn2LPYp9i52KrYp9mGJywgJ9iz2KfYudiq2YrZhiddLCAnJWQg2LPYp9i52KfYqicsICclZCDYs9in2LnYqScsICclZCDYs9in2LnYqSddLFxuICAgICAgICBkIDogWyfYo9mC2YQg2YXZhiDZitmI2YUnLCAn2YrZiNmFINmI2KfYrdivJywgWyfZitmI2YXYp9mGJywgJ9mK2YjZhdmK2YYnXSwgJyVkINij2YrYp9mFJywgJyVkINmK2YjZhdmL2KcnLCAnJWQg2YrZiNmFJ10sXG4gICAgICAgIE0gOiBbJ9ij2YLZhCDZhdmGINi02YfYsScsICfYtNmH2LEg2YjYp9it2K8nLCBbJ9i02YfYsdin2YYnLCAn2LTZh9ix2YrZhiddLCAnJWQg2KPYtNmH2LEnLCAnJWQg2LTZh9ix2KcnLCAnJWQg2LTZh9ixJ10sXG4gICAgICAgIHkgOiBbJ9ij2YLZhCDZhdmGINi52KfZhScsICfYudin2YUg2YjYp9it2K8nLCBbJ9i52KfZhdin2YYnLCAn2LnYp9mF2YrZhiddLCAnJWQg2KPYudmI2KfZhScsICclZCDYudin2YXZi9inJywgJyVkINi52KfZhSddXG4gICAgfSwgcGx1cmFsaXplID0gZnVuY3Rpb24gKHUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgIHZhciBmID0gcGx1cmFsRm9ybShudW1iZXIpLFxuICAgICAgICAgICAgICAgIHN0ciA9IHBsdXJhbHNbdV1bcGx1cmFsRm9ybShudW1iZXIpXTtcbiAgICAgICAgICAgIGlmIChmID09PSAyKSB7XG4gICAgICAgICAgICAgICAgc3RyID0gc3RyW3dpdGhvdXRTdWZmaXggPyAwIDogMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyVkL2ksIG51bWJlcik7XG4gICAgICAgIH07XG4gICAgfSwgbW9udGhzID0gW1xuICAgICAgICAn2YrZhtin2YrYsScsXG4gICAgICAgICfZgdio2LHYp9mK2LEnLFxuICAgICAgICAn2YXYp9ix2LMnLFxuICAgICAgICAn2KPYqNix2YrZhCcsXG4gICAgICAgICfZhdin2YrZiCcsXG4gICAgICAgICfZitmI2YbZitmIJyxcbiAgICAgICAgJ9mK2YjZhNmK2YgnLFxuICAgICAgICAn2KPYutiz2LfYsycsXG4gICAgICAgICfYs9io2KrZhdio2LEnLFxuICAgICAgICAn2KPZg9iq2YjYqNixJyxcbiAgICAgICAgJ9mG2YjZgdmF2KjYsScsXG4gICAgICAgICfYr9mK2LPZhdio2LEnXG4gICAgXTtcblxuICAgIHZhciBhckx5ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYXItbHknLCB7XG4gICAgICAgIG1vbnRocyA6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQgOiBtb250aHMsXG4gICAgICAgIHdlZWtkYXlzIDogJ9in2YTYo9it2K9f2KfZhNil2KvZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfYo9it2K9f2KXYq9mG2YrZhl/Yq9mE2KfYq9in2KFf2KPYsdio2LnYp9ihX9iu2YXZitizX9is2YXYudipX9iz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn2K1f2YZf2Ktf2LFf2K5f2Kxf2LMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnRC9cXHUyMDBGTS9cXHUyMDBGWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2LV82YUvLFxuICAgICAgICBpc1BNIDogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ9mFJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtIDogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9mFJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2YvYpyDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW9i52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb2KPZhdizINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAn2KjYudivICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHMgOiBwbHVyYWxpemUoJ3MnKSxcbiAgICAgICAgICAgIHNzIDogcGx1cmFsaXplKCdzJyksXG4gICAgICAgICAgICBtIDogcGx1cmFsaXplKCdtJyksXG4gICAgICAgICAgICBtbSA6IHBsdXJhbGl6ZSgnbScpLFxuICAgICAgICAgICAgaCA6IHBsdXJhbGl6ZSgnaCcpLFxuICAgICAgICAgICAgaGggOiBwbHVyYWxpemUoJ2gnKSxcbiAgICAgICAgICAgIGQgOiBwbHVyYWxpemUoJ2QnKSxcbiAgICAgICAgICAgIGRkIDogcGx1cmFsaXplKCdkJyksXG4gICAgICAgICAgICBNIDogcGx1cmFsaXplKCdNJyksXG4gICAgICAgICAgICBNTSA6IHBsdXJhbGl6ZSgnTScpLFxuICAgICAgICAgICAgeSA6IHBsdXJhbGl6ZSgneScpLFxuICAgICAgICAgICAgeXkgOiBwbHVyYWxpemUoJ3knKVxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogMTIgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhckx5O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgYXJNYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLW1hJywge1xuICAgICAgICBtb250aHMgOiAn2YrZhtin2YrYsV/Zgdio2LHYp9mK2LFf2YXYp9ix2LNf2KPYqNix2YrZhF/Zhdin2Ypf2YrZiNmG2YrZiF/ZitmI2YTZitmI2LJf2LrYtNiqX9i02KrZhtio2LFf2KPZg9iq2YjYqNixX9mG2YjZhtio2LFf2K/YrNmG2KjYsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn2YrZhtin2YrYsV/Zgdio2LHYp9mK2LFf2YXYp9ix2LNf2KPYqNix2YrZhF/Zhdin2Ypf2YrZiNmG2YrZiF/ZitmI2YTZitmI2LJf2LrYtNiqX9i02KrZhtio2LFf2KPZg9iq2YjYqNixX9mG2YjZhtio2LFf2K/YrNmG2KjYsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAn2KfZhNij2K3Yr1/Yp9mE2KXYqtmG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ9in2K3Yr1/Yp9iq2YbZitmGX9ir2YTYp9ir2KfYoV/Yp9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfYrV/Zhl/Yq1/YsV/Yrl/YrF/Ysycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9inINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICfZgdmKICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHMgOiAn2KvZiNin2YYnLFxuICAgICAgICAgICAgc3MgOiAnJWQg2KvYp9mG2YrYqScsXG4gICAgICAgICAgICBtIDogJ9iv2YLZitmC2KknLFxuICAgICAgICAgICAgbW0gOiAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICBoIDogJ9iz2KfYudipJyxcbiAgICAgICAgICAgIGhoIDogJyVkINiz2KfYudin2KonLFxuICAgICAgICAgICAgZCA6ICfZitmI2YUnLFxuICAgICAgICAgICAgZGQgOiAnJWQg2KPZitin2YUnLFxuICAgICAgICAgICAgTSA6ICfYtNmH2LEnLFxuICAgICAgICAgICAgTU0gOiAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgeSA6ICfYs9mG2KknLFxuICAgICAgICAgICAgeXkgOiAnJWQg2LPZhtmI2KfYqidcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDYsIC8vIFNhdHVyZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiAxMiAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGFyTWE7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICcxJzogJ9mhJyxcbiAgICAgICAgJzInOiAn2aInLFxuICAgICAgICAnMyc6ICfZoycsXG4gICAgICAgICc0JzogJ9mkJyxcbiAgICAgICAgJzUnOiAn2aUnLFxuICAgICAgICAnNic6ICfZpicsXG4gICAgICAgICc3JzogJ9mnJyxcbiAgICAgICAgJzgnOiAn2agnLFxuICAgICAgICAnOSc6ICfZqScsXG4gICAgICAgICcwJzogJ9mgJ1xuICAgIH0sIG51bWJlck1hcCA9IHtcbiAgICAgICAgJ9mhJzogJzEnLFxuICAgICAgICAn2aInOiAnMicsXG4gICAgICAgICfZoyc6ICczJyxcbiAgICAgICAgJ9mkJzogJzQnLFxuICAgICAgICAn2aUnOiAnNScsXG4gICAgICAgICfZpic6ICc2JyxcbiAgICAgICAgJ9mnJzogJzcnLFxuICAgICAgICAn2agnOiAnOCcsXG4gICAgICAgICfZqSc6ICc5JyxcbiAgICAgICAgJ9mgJzogJzAnXG4gICAgfTtcblxuICAgIHZhciBhclNhID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYXItc2EnLCB7XG4gICAgICAgIG1vbnRocyA6ICfZitmG2KfZitixX9mB2KjYsdin2YrYsV/Zhdin2LHYs1/Yo9io2LHZitmEX9mF2KfZitmIX9mK2YjZhtmK2Yhf2YrZiNmE2YrZiF/Yo9i62LPYt9izX9iz2KjYqtmF2KjYsV/Yo9mD2KrZiNio2LFf2YbZiNmB2YXYqNixX9iv2YrYs9mF2KjYsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn2YrZhtin2YrYsV/Zgdio2LHYp9mK2LFf2YXYp9ix2LNf2KPYqNix2YrZhF/Zhdin2YrZiF/ZitmI2YbZitmIX9mK2YjZhNmK2Yhf2KPYutiz2LfYs1/Ys9io2KrZhdio2LFf2KPZg9iq2YjYqNixX9mG2YjZgdmF2KjYsV/Yr9mK2LPZhdio2LEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ9in2YTYo9it2K9f2KfZhNil2KvZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfYo9it2K9f2KXYq9mG2YrZhl/Yq9mE2KfYq9in2KFf2KPYsdio2LnYp9ihX9iu2YXZitizX9is2YXYudipX9iz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn2K1f2YZf2Ktf2LFf2K5f2Kxf2LMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2LV82YUvLFxuICAgICAgICBpc1BNIDogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ9mFJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtIDogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9mFJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9in2YTZitmI2YUg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYutiv2Kcg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9ij2YXYsyDYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW9i52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ9mB2YogJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICfZhdmG2LAgJXMnLFxuICAgICAgICAgICAgcyA6ICfYq9mI2KfZhicsXG4gICAgICAgICAgICBzcyA6ICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIG0gOiAn2K/ZgtmK2YLYqScsXG4gICAgICAgICAgICBtbSA6ICclZCDYr9mC2KfYptmCJyxcbiAgICAgICAgICAgIGggOiAn2LPYp9i52KknLFxuICAgICAgICAgICAgaGggOiAnJWQg2LPYp9i52KfYqicsXG4gICAgICAgICAgICBkIDogJ9mK2YjZhScsXG4gICAgICAgICAgICBkZCA6ICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICBNIDogJ9i02YfYsScsXG4gICAgICAgICAgICBNTSA6ICclZCDYo9i02YfYsScsXG4gICAgICAgICAgICB5IDogJ9iz2YbYqScsXG4gICAgICAgICAgICB5eSA6ICclZCDYs9mG2YjYp9iqJ1xuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b2aHZotmj2aTZpdmm2afZqNmp2aBdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSkucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KS5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA2ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhclNhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgYXJUbiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2FyLXRuJywge1xuICAgICAgICBtb250aHM6ICfYrNin2YbZgdmKX9mB2YrZgdix2Ypf2YXYp9ix2LNf2KPZgdix2YrZhF/Zhdin2Ypf2KzZiNin2YZf2KzZiNmK2YTZitipX9ij2YjYql/Ys9io2KrZhdio2LFf2KPZg9iq2YjYqNixX9mG2YjZgdmF2KjYsV/Yr9mK2LPZhdio2LEnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn2KzYp9mG2YHZil/ZgdmK2YHYsdmKX9mF2KfYsdizX9ij2YHYsdmK2YRf2YXYp9mKX9is2YjYp9mGX9is2YjZitmE2YrYqV/Yo9mI2Kpf2LPYqNiq2YXYqNixX9ij2YPYqtmI2KjYsV/ZhtmI2YHZhdio2LFf2K/Zitiz2YXYqNixJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ9in2YTYo9it2K9f2KfZhNil2KvZhtmK2YZf2KfZhNir2YTYp9ir2KfYoV/Yp9mE2KPYsdio2LnYp9ihX9in2YTYrtmF2YrYs1/Yp9mE2KzZhdi52Klf2KfZhNiz2KjYqicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9ij2K3Yr1/Ypdir2YbZitmGX9ir2YTYp9ir2KfYoV/Yo9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ9itX9mGX9irX9ixX9iuX9isX9izJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vYp9mE2YrZiNmFINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb2LrYr9inINi52YTZiSDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhNmJINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmE2Ykg2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAn2YHZiiAlcycsXG4gICAgICAgICAgICBwYXN0OiAn2YXZhtiwICVzJyxcbiAgICAgICAgICAgIHM6ICfYq9mI2KfZhicsXG4gICAgICAgICAgICBzcyA6ICclZCDYq9in2YbZitipJyxcbiAgICAgICAgICAgIG06ICfYr9mC2YrZgtipJyxcbiAgICAgICAgICAgIG1tOiAnJWQg2K/Zgtin2KbZgicsXG4gICAgICAgICAgICBoOiAn2LPYp9i52KknLFxuICAgICAgICAgICAgaGg6ICclZCDYs9in2LnYp9iqJyxcbiAgICAgICAgICAgIGQ6ICfZitmI2YUnLFxuICAgICAgICAgICAgZGQ6ICclZCDYo9mK2KfZhScsXG4gICAgICAgICAgICBNOiAn2LTZh9ixJyxcbiAgICAgICAgICAgIE1NOiAnJWQg2KPYtNmH2LEnLFxuICAgICAgICAgICAgeTogJ9iz2YbYqScsXG4gICAgICAgICAgICB5eTogJyVkINiz2YbZiNin2KonXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXJUbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgJzEnOiAn2aEnLFxuICAgICAgICAnMic6ICfZoicsXG4gICAgICAgICczJzogJ9mjJyxcbiAgICAgICAgJzQnOiAn2aQnLFxuICAgICAgICAnNSc6ICfZpScsXG4gICAgICAgICc2JzogJ9mmJyxcbiAgICAgICAgJzcnOiAn2acnLFxuICAgICAgICAnOCc6ICfZqCcsXG4gICAgICAgICc5JzogJ9mpJyxcbiAgICAgICAgJzAnOiAn2aAnXG4gICAgfSwgbnVtYmVyTWFwID0ge1xuICAgICAgICAn2aEnOiAnMScsXG4gICAgICAgICfZoic6ICcyJyxcbiAgICAgICAgJ9mjJzogJzMnLFxuICAgICAgICAn2aQnOiAnNCcsXG4gICAgICAgICfZpSc6ICc1JyxcbiAgICAgICAgJ9mmJzogJzYnLFxuICAgICAgICAn2acnOiAnNycsXG4gICAgICAgICfZqCc6ICc4JyxcbiAgICAgICAgJ9mpJzogJzknLFxuICAgICAgICAn2aAnOiAnMCdcbiAgICB9LCBwbHVyYWxGb3JtID0gZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgcmV0dXJuIG4gPT09IDAgPyAwIDogbiA9PT0gMSA/IDEgOiBuID09PSAyID8gMiA6IG4gJSAxMDAgPj0gMyAmJiBuICUgMTAwIDw9IDEwID8gMyA6IG4gJSAxMDAgPj0gMTEgPyA0IDogNTtcbiAgICB9LCBwbHVyYWxzID0ge1xuICAgICAgICBzIDogWyfYo9mC2YQg2YXZhiDYq9in2YbZitipJywgJ9ir2KfZhtmK2Kkg2YjYp9it2K/YqScsIFsn2KvYp9mG2YrYqtin2YYnLCAn2KvYp9mG2YrYqtmK2YYnXSwgJyVkINir2YjYp9mGJywgJyVkINir2KfZhtmK2KknLCAnJWQg2KvYp9mG2YrYqSddLFxuICAgICAgICBtIDogWyfYo9mC2YQg2YXZhiDYr9mC2YrZgtipJywgJ9iv2YLZitmC2Kkg2YjYp9it2K/YqScsIFsn2K/ZgtmK2YLYqtin2YYnLCAn2K/ZgtmK2YLYqtmK2YYnXSwgJyVkINiv2YLYp9im2YInLCAnJWQg2K/ZgtmK2YLYqScsICclZCDYr9mC2YrZgtipJ10sXG4gICAgICAgIGggOiBbJ9ij2YLZhCDZhdmGINiz2KfYudipJywgJ9iz2KfYudipINmI2KfYrdiv2KknLCBbJ9iz2KfYudiq2KfZhicsICfYs9in2LnYqtmK2YYnXSwgJyVkINiz2KfYudin2KonLCAnJWQg2LPYp9i52KknLCAnJWQg2LPYp9i52KknXSxcbiAgICAgICAgZCA6IFsn2KPZgtmEINmF2YYg2YrZiNmFJywgJ9mK2YjZhSDZiNin2K3YrycsIFsn2YrZiNmF2KfZhicsICfZitmI2YXZitmGJ10sICclZCDYo9mK2KfZhScsICclZCDZitmI2YXZi9inJywgJyVkINmK2YjZhSddLFxuICAgICAgICBNIDogWyfYo9mC2YQg2YXZhiDYtNmH2LEnLCAn2LTZh9ixINmI2KfYrdivJywgWyfYtNmH2LHYp9mGJywgJ9i02YfYsdmK2YYnXSwgJyVkINij2LTZh9ixJywgJyVkINi02YfYsdinJywgJyVkINi02YfYsSddLFxuICAgICAgICB5IDogWyfYo9mC2YQg2YXZhiDYudin2YUnLCAn2LnYp9mFINmI2KfYrdivJywgWyfYudin2YXYp9mGJywgJ9i52KfZhdmK2YYnXSwgJyVkINij2LnZiNin2YUnLCAnJWQg2LnYp9mF2YvYpycsICclZCDYudin2YUnXVxuICAgIH0sIHBsdXJhbGl6ZSA9IGZ1bmN0aW9uICh1KSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSB7XG4gICAgICAgICAgICB2YXIgZiA9IHBsdXJhbEZvcm0obnVtYmVyKSxcbiAgICAgICAgICAgICAgICBzdHIgPSBwbHVyYWxzW3VdW3BsdXJhbEZvcm0obnVtYmVyKV07XG4gICAgICAgICAgICBpZiAoZiA9PT0gMikge1xuICAgICAgICAgICAgICAgIHN0ciA9IHN0clt3aXRob3V0U3VmZml4ID8gMCA6IDFdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8lZC9pLCBudW1iZXIpO1xuICAgICAgICB9O1xuICAgIH0sIG1vbnRocyA9IFtcbiAgICAgICAgJ9mK2YbYp9mK2LEnLFxuICAgICAgICAn2YHYqNix2KfZitixJyxcbiAgICAgICAgJ9mF2KfYsdizJyxcbiAgICAgICAgJ9ij2KjYsdmK2YQnLFxuICAgICAgICAn2YXYp9mK2YgnLFxuICAgICAgICAn2YrZiNmG2YrZiCcsXG4gICAgICAgICfZitmI2YTZitmIJyxcbiAgICAgICAgJ9ij2LrYs9i32LMnLFxuICAgICAgICAn2LPYqNiq2YXYqNixJyxcbiAgICAgICAgJ9ij2YPYqtmI2KjYsScsXG4gICAgICAgICfZhtmI2YHZhdio2LEnLFxuICAgICAgICAn2K/Zitiz2YXYqNixJ1xuICAgIF07XG5cbiAgICB2YXIgYXIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdhcicsIHtcbiAgICAgICAgbW9udGhzIDogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydCA6IG1vbnRocyxcbiAgICAgICAgd2Vla2RheXMgOiAn2KfZhNij2K3Yr1/Yp9mE2KXYq9mG2YrZhl/Yp9mE2KvZhNin2KvYp9ihX9in2YTYo9ix2KjYudin2KFf2KfZhNiu2YXZitizX9in2YTYrNmF2LnYqV/Yp9mE2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ9ij2K3Yr1/Ypdir2YbZitmGX9ir2YTYp9ir2KfYoV/Yo9ix2KjYudin2KFf2K7ZhdmK2LNf2KzZhdi52Klf2LPYqNiqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfYrV/Zhl/Yq1/YsV/Yrl/YrF/Ysycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdEL1xcdTIwMEZNL1xcdTIwMEZZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/YtXzZhS8sXG4gICAgICAgIGlzUE0gOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAn2YUnID09PSBpbnB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYtSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2YUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb2KfZhNmK2YjZhSDYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9i62K/Zi9inINi52YbYryDYp9mE2LPYp9i52KldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYo9mF2LMg2LnZhtivINin2YTYs9in2LnYqV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvYudmG2K8g2KfZhNiz2KfYudipXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICfYqNi52K8gJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICfZhdmG2LAgJXMnLFxuICAgICAgICAgICAgcyA6IHBsdXJhbGl6ZSgncycpLFxuICAgICAgICAgICAgc3MgOiBwbHVyYWxpemUoJ3MnKSxcbiAgICAgICAgICAgIG0gOiBwbHVyYWxpemUoJ20nKSxcbiAgICAgICAgICAgIG1tIDogcGx1cmFsaXplKCdtJyksXG4gICAgICAgICAgICBoIDogcGx1cmFsaXplKCdoJyksXG4gICAgICAgICAgICBoaCA6IHBsdXJhbGl6ZSgnaCcpLFxuICAgICAgICAgICAgZCA6IHBsdXJhbGl6ZSgnZCcpLFxuICAgICAgICAgICAgZGQgOiBwbHVyYWxpemUoJ2QnKSxcbiAgICAgICAgICAgIE0gOiBwbHVyYWxpemUoJ00nKSxcbiAgICAgICAgICAgIE1NIDogcGx1cmFsaXplKCdNJyksXG4gICAgICAgICAgICB5IDogcGx1cmFsaXplKCd5JyksXG4gICAgICAgICAgICB5eSA6IHBsdXJhbGl6ZSgneScpXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vZodmi2aPZpNml2abZp9mo2anZoF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KS5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogMTIgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhcjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHN1ZmZpeGVzID0ge1xuICAgICAgICAxOiAnLWluY2knLFxuICAgICAgICA1OiAnLWluY2knLFxuICAgICAgICA4OiAnLWluY2knLFxuICAgICAgICA3MDogJy1pbmNpJyxcbiAgICAgICAgODA6ICctaW5jaScsXG4gICAgICAgIDI6ICctbmNpJyxcbiAgICAgICAgNzogJy1uY2knLFxuICAgICAgICAyMDogJy1uY2knLFxuICAgICAgICA1MDogJy1uY2knLFxuICAgICAgICAzOiAnLcO8bmPDvCcsXG4gICAgICAgIDQ6ICctw7xuY8O8JyxcbiAgICAgICAgMTAwOiAnLcO8bmPDvCcsXG4gICAgICAgIDY6ICctbmPEsScsXG4gICAgICAgIDk6ICctdW5jdScsXG4gICAgICAgIDEwOiAnLXVuY3UnLFxuICAgICAgICAzMDogJy11bmN1JyxcbiAgICAgICAgNjA6ICctxLFuY8SxJyxcbiAgICAgICAgOTA6ICctxLFuY8SxJ1xuICAgIH07XG5cbiAgICB2YXIgYXogPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdheicsIHtcbiAgICAgICAgbW9udGhzIDogJ3lhbnZhcl9mZXZyYWxfbWFydF9hcHJlbF9tYXlfaXl1bl9peXVsX2F2cXVzdF9zZW50eWFicl9va3R5YWJyX25veWFicl9kZWthYnInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ3lhbl9mZXZfbWFyX2Fwcl9tYXlfaXluX2l5bF9hdnFfc2VuX29rdF9ub3lfZGVrJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdCYXphcl9CYXphciBlcnTJmXNpX8OHyZlyxZ/JmW5iyZkgYXjFn2FtxLFfw4fJmXLFn8mZbmLJmV9Dw7xtyZkgYXjFn2FtxLFfQ8O8bcmZX8WeyZluYsmZJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ0Jhel9CekVfw4dBeF/Dh8mZcl9DQXhfQ8O8bV/FnsmZbicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnQnpfQkVfw4dBX8OHyZlfQ0FfQ8O8X8WeyZknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1tidWfDvG4gc2FhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbc2FiYWggc2FhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnW2fJmWzJmW4gaMmZZnTJmV0gZGRkZCBbc2FhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbZMO8bsmZbl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW2tlw6fJmW4gaMmZZnTJmV0gZGRkZCBbc2FhdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJyVzIHNvbnJhJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgyZl2dsmZbCcsXG4gICAgICAgICAgICBzIDogJ2Jpcm5lw6fJmSBzYW5pecmZJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNhbml5yZknLFxuICAgICAgICAgICAgbSA6ICdiaXIgZMmZcWlxyZknLFxuICAgICAgICAgICAgbW0gOiAnJWQgZMmZcWlxyZknLFxuICAgICAgICAgICAgaCA6ICdiaXIgc2FhdCcsXG4gICAgICAgICAgICBoaCA6ICclZCBzYWF0JyxcbiAgICAgICAgICAgIGQgOiAnYmlyIGfDvG4nLFxuICAgICAgICAgICAgZGQgOiAnJWQgZ8O8bicsXG4gICAgICAgICAgICBNIDogJ2JpciBheScsXG4gICAgICAgICAgICBNTSA6ICclZCBheScsXG4gICAgICAgICAgICB5IDogJ2JpciBpbCcsXG4gICAgICAgICAgICB5eSA6ICclZCBpbCdcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2dlY8mZfHPJmWjJmXJ8Z8O8bmTDvHp8YXjFn2FtLyxcbiAgICAgICAgaXNQTSA6IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9eKGfDvG5kw7x6fGF4xZ9hbSkkLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2dlY8mZJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzyZloyZlyJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdnw7xuZMO8eic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnYXjFn2FtJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjEsW5jxLF8aW5jaXxuY2l8w7xuY8O8fG5jxLF8dW5jdSkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMCkgeyAgLy8gc3BlY2lhbCBjYXNlIGZvciB6ZXJvXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICctxLFuY8SxJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBhID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgYiA9IG51bWJlciAlIDEwMCAtIGEsXG4gICAgICAgICAgICAgICAgYyA9IG51bWJlciA+PSAxMDAgPyAxMDAgOiBudWxsO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChzdWZmaXhlc1thXSB8fCBzdWZmaXhlc1tiXSB8fCBzdWZmaXhlc1tjXSk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDcgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGF6O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICBmdW5jdGlvbiBwbHVyYWwod29yZCwgbnVtKSB7XG4gICAgICAgIHZhciBmb3JtcyA9IHdvcmQuc3BsaXQoJ18nKTtcbiAgICAgICAgcmV0dXJuIG51bSAlIDEwID09PSAxICYmIG51bSAlIDEwMCAhPT0gMTEgPyBmb3Jtc1swXSA6IChudW0gJSAxMCA+PSAyICYmIG51bSAlIDEwIDw9IDQgJiYgKG51bSAlIDEwMCA8IDEwIHx8IG51bSAlIDEwMCA+PSAyMCkgPyBmb3Jtc1sxXSA6IGZvcm1zWzJdKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lV2l0aFBsdXJhbChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgJ3NzJzogd2l0aG91dFN1ZmZpeCA/ICfRgdC10LrRg9C90LTQsF/RgdC10LrRg9C90LTRi1/RgdC10LrRg9C90LQnIDogJ9GB0LXQutGD0L3QtNGDX9GB0LXQutGD0L3QtNGLX9GB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICAnbW0nOiB3aXRob3V0U3VmZml4ID8gJ9GF0LLRltC70ZbQvdCwX9GF0LLRltC70ZbQvdGLX9GF0LLRltC70ZbQvScgOiAn0YXQstGW0LvRltC90YNf0YXQstGW0LvRltC90Ytf0YXQstGW0LvRltC9JyxcbiAgICAgICAgICAgICdoaCc6IHdpdGhvdXRTdWZmaXggPyAn0LPQsNC00LfRltC90LBf0LPQsNC00LfRltC90Ytf0LPQsNC00LfRltC9JyA6ICfQs9Cw0LTQt9GW0L3Rg1/Qs9Cw0LTQt9GW0L3Ri1/Qs9Cw0LTQt9GW0L0nLFxuICAgICAgICAgICAgJ2RkJzogJ9C00LfQtdC90Yxf0LTQvdGWX9C00LfRkdC9JyxcbiAgICAgICAgICAgICdNTSc6ICfQvNC10YHRj9GGX9C80LXRgdGP0YbRi1/QvNC10YHRj9GG0LDRnicsXG4gICAgICAgICAgICAneXknOiAn0LPQvtC0X9Cz0LDQtNGLX9Cz0LDQtNC+0Z4nXG4gICAgICAgIH07XG4gICAgICAgIGlmIChrZXkgPT09ICdtJykge1xuICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAn0YXQstGW0LvRltC90LAnIDogJ9GF0LLRltC70ZbQvdGDJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChrZXkgPT09ICdoJykge1xuICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAn0LPQsNC00LfRltC90LAnIDogJ9Cz0LDQtNC30ZbQvdGDJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnICcgKyBwbHVyYWwoZm9ybWF0W2tleV0sICtudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGJlID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYmUnLCB7XG4gICAgICAgIG1vbnRocyA6IHtcbiAgICAgICAgICAgIGZvcm1hdDogJ9GB0YLRg9C00LfQtdC90Y9f0LvRjtGC0LDQs9CwX9GB0LDQutCw0LLRltC60LBf0LrRgNCw0YHQsNCy0ZbQutCwX9GC0YDQsNGe0L3Rj1/Rh9GN0YDQstC10L3Rj1/Qu9GW0L/QtdC90Y9f0LbQvdGW0Z7QvdGPX9Cy0LXRgNCw0YHQvdGPX9C60LDRgdGC0YDRi9GH0L3RltC60LBf0LvRltGB0YLQsNC/0LDQtNCwX9GB0L3QtdC20L3Rjycuc3BsaXQoJ18nKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICfRgdGC0YPQtNC30LXQvdGMX9C70Y7RgtGLX9GB0LDQutCw0LLRltC6X9C60YDQsNGB0LDQstGW0Lpf0YLRgNCw0LLQtdC90Yxf0YfRjdGA0LLQtdC90Yxf0LvRltC/0LXQvdGMX9C20L3RltCy0LXQvdGMX9Cy0LXRgNCw0YHQtdC90Yxf0LrQsNGB0YLRgNGL0YfQvdGW0Lpf0LvRltGB0YLQsNC/0LDQtF/RgdC90LXQttCw0L3RjCcuc3BsaXQoJ18nKVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydCA6ICfRgdGC0YPQtF/Qu9GO0YJf0YHQsNC6X9C60YDQsNGBX9GC0YDQsNCyX9GH0Y3RgNCyX9C70ZbQv1/QttC90ZbQsl/QstC10YBf0LrQsNGB0YJf0LvRltGB0YJf0YHQvdC10LYnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDoge1xuICAgICAgICAgICAgZm9ybWF0OiAn0L3Rj9C00LfQtdC70Y5f0L/QsNC90Y/QtNC30LXQu9Cw0Lpf0LDRntGC0L7RgNCw0Lpf0YHQtdGA0LDQtNGDX9GH0LDRhtCy0LXRgF/Qv9GP0YLQvdGW0YbRg1/RgdGD0LHQvtGC0YMnLnNwbGl0KCdfJyksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAn0L3Rj9C00LfQtdC70Y9f0L/QsNC90Y/QtNC30LXQu9Cw0Lpf0LDRntGC0L7RgNCw0Lpf0YHQtdGA0LDQtNCwX9GH0LDRhtCy0LXRgF/Qv9GP0YLQvdGW0YbQsF/RgdGD0LHQvtGC0LAnLnNwbGl0KCdfJyksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL1xcWyA/W9Cj0YPRnl0gPyg/OtC80ZbQvdGD0LvRg9GOfNC90LDRgdGC0YPQv9C90YPRjik/ID9cXF0gP2RkZGQvXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn0L3QtF/Qv9C9X9Cw0YJf0YHRgF/Rh9GGX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn0L3QtF/Qv9C9X9Cw0YJf0YHRgF/Rh9GGX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZINCzLicsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkg0LMuLCBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZINCzLiwgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vQodGR0L3QvdGPINGeXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9CX0LDRntGC0YDQsCDRnl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vQo9GH0L7RgNCwINGeXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW9CjXSBkZGRkIFvRnl0gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CjINC80ZbQvdGD0LvRg9GOXSBkZGRkIFvRnl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0KMg0LzRltC90YPQu9GLXSBkZGRkIFvRnl0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICfQv9GA0LDQtyAlcycsXG4gICAgICAgICAgICBwYXN0IDogJyVzINGC0LDQvNGDJyxcbiAgICAgICAgICAgIHMgOiAn0L3QtdC60LDQu9GM0LrRliDRgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgbSA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtbSA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBoIDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGhoIDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGQgOiAn0LTQt9C10L3RjCcsXG4gICAgICAgICAgICBkZCA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBNIDogJ9C80LXRgdGP0YYnLFxuICAgICAgICAgICAgTU0gOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgeSA6ICfQs9C+0LQnLFxuICAgICAgICAgICAgeXkgOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/QvdC+0YfRi3zRgNCw0L3RltGG0Yt80LTQvdGPfNCy0LXRh9Cw0YDQsC8sXG4gICAgICAgIGlzUE0gOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXijQtNC90Y980LLQtdGH0LDRgNCwKSQvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0L3QvtGH0YsnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9GA0LDQvdGW0YbRiyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0LTQvdGPJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQstC10YfQsNGA0LAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNGWfNGLfNCz0LApLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAobnVtYmVyICUgMTAgPT09IDIgfHwgbnVtYmVyICUgMTAgPT09IDMpICYmIChudW1iZXIgJSAxMDAgIT09IDEyICYmIG51bWJlciAlIDEwMCAhPT0gMTMpID8gbnVtYmVyICsgJy3RlicgOiBudW1iZXIgKyAnLdGLJztcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LPQsCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNyAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYmU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBiZyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2JnJywge1xuICAgICAgICBtb250aHMgOiAn0Y/QvdGD0LDRgNC4X9GE0LXQstGA0YPQsNGA0Lhf0LzQsNGA0YJf0LDQv9GA0LjQu1/QvNCw0Llf0Y7QvdC4X9GO0LvQuF/QsNCy0LPRg9GB0YJf0YHQtdC/0YLQtdC80LLRgNC4X9C+0LrRgtC+0LzQstGA0Lhf0L3QvtC10LzQstGA0Lhf0LTQtdC60LXQvNCy0YDQuCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn0Y/QvdGAX9GE0LXQsl/QvNCw0YBf0LDQv9GAX9C80LDQuV/RjtC90Lhf0Y7Qu9C4X9Cw0LLQs1/RgdC10L9f0L7QutGCX9C90L7QtV/QtNC10LonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ9C90LXQtNC10LvRj1/Qv9C+0L3QtdC00LXQu9C90LjQul/QstGC0L7RgNC90LjQul/RgdGA0Y/QtNCwX9GH0LXRgtCy0YrRgNGC0YrQul/Qv9C10YLRitC6X9GB0YrQsdC+0YLQsCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfQvdC10LRf0L/QvtC9X9Cy0YLQvl/RgdGA0Y9f0YfQtdGCX9C/0LXRgl/RgdGK0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ9C90LRf0L/QvV/QstGCX9GB0YBf0YfRgl/Qv9GCX9GB0LEnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0QuTU0uWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZIEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdb0JTQvdC10YEg0LJdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW9Cj0YLRgNC1INCyXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFvQsl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdb0JLRh9C10YDQsCDQsl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkiDQuNC30LzQuNC90LDQu9Cw0YLQsF0gZGRkZCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JIg0LjQt9C80LjQvdCw0LvQuNGPXSBkZGRkIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAn0YHQu9C10LQgJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICfQv9GA0LXQtNC4ICVzJyxcbiAgICAgICAgICAgIHMgOiAn0L3Rj9C60L7Qu9C60L4g0YHQtdC60YPQvdC00LgnLFxuICAgICAgICAgICAgc3MgOiAnJWQg0YHQtdC60YPQvdC00LgnLFxuICAgICAgICAgICAgbSA6ICfQvNC40L3Rg9GC0LAnLFxuICAgICAgICAgICAgbW0gOiAnJWQg0LzQuNC90YPRgtC4JyxcbiAgICAgICAgICAgIGggOiAn0YfQsNGBJyxcbiAgICAgICAgICAgIGhoIDogJyVkINGH0LDRgdCwJyxcbiAgICAgICAgICAgIGQgOiAn0LTQtdC9JyxcbiAgICAgICAgICAgIGRkIDogJyVkINC00L3QuCcsXG4gICAgICAgICAgICBNIDogJ9C80LXRgdC10YYnLFxuICAgICAgICAgICAgTU0gOiAnJWQg0LzQtdGB0LXRhtCwJyxcbiAgICAgICAgICAgIHkgOiAn0LPQvtC00LjQvdCwJyxcbiAgICAgICAgICAgIHl5IDogJyVkINCz0L7QtNC40L3QuCdcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjQtdCyfNC10L180YLQuHzQstC4fNGA0Lh80LzQuCkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGxhc3REaWdpdCA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIGxhc3QyRGlnaXRzID0gbnVtYmVyICUgMTAwO1xuICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC10LInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0MkRpZ2l0cyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC10L0nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0MkRpZ2l0cyA+IDEwICYmIGxhc3QyRGlnaXRzIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3RgtC4JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdERpZ2l0ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LLQuCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3REaWdpdCA9PT0gMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGA0LgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0RGlnaXQgPT09IDcgfHwgbGFzdERpZ2l0ID09PSA4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LzQuCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGC0LgnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA3ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBiZztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIGJtID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYm0nLCB7XG4gICAgICAgIG1vbnRocyA6ICdaYW53dXlla2Fsb19GZXd1cnV5ZWthbG9fTWFyaXNpa2Fsb19Bd2lyaWxpa2Fsb19NyZtrYWxvX1p1d8mbbmthbG9fWnVsdXlla2Fsb19VdGlrYWxvX1PJm3RhbmJ1cnVrYWxvX8mUa3V0yZRidXJ1a2Fsb19Ob3dhbmJ1cnVrYWxvX0Rlc2FuYnVydWthbG8nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ1phbl9GZXdfTWFyX0F3aV9NyZtfWnV3X1p1bF9VdGlfU8mbdF/JlGt1X05vd19EZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ0thcmlfTnTJm27Jm25fVGFyYXRhX0FyYWJhX0FsYW1pc2FfSnVtYV9TaWJpcmknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnS2FyX050yZtfVGFyX0FyYV9BbGFfSnVtX1NpYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnS2FfTnRfVGFfQXJfQWxfSnVfU2knLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdNTU1NIFt0aWxlXSBEIFtzYW5dIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ01NTU0gW3RpbGVdIEQgW3Nhbl0gWVlZWSBbbMmbcsmbXSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQgTU1NTSBbdGlsZV0gRCBbc2FuXSBZWVlZIFtsyZtyyZtdIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW0JpIGzJm3LJm10gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbU2luaSBsyZtyyZtdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW2RvbiBsyZtyyZtdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW0t1bnUgbMmbcsmbXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdkZGRkIFt0yZttyZtuZW4gbMmbcsmbXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnJXMga8mUbsmUJyxcbiAgICAgICAgICAgIHBhc3QgOiAnYSBiyZsgJXMgYsmUJyxcbiAgICAgICAgICAgIHMgOiAnc2FuZ2EgZGFtYSBkYW1hJyxcbiAgICAgICAgICAgIHNzIDogJ3Nla29uZGkgJWQnLFxuICAgICAgICAgICAgbSA6ICdtaW5pdGkga2VsZW4nLFxuICAgICAgICAgICAgbW0gOiAnbWluaXRpICVkJyxcbiAgICAgICAgICAgIGggOiAnbMmbcsmbIGtlbGVuJyxcbiAgICAgICAgICAgIGhoIDogJ2zJm3LJmyAlZCcsXG4gICAgICAgICAgICBkIDogJ3RpbGUga2VsZW4nLFxuICAgICAgICAgICAgZGQgOiAndGlsZSAlZCcsXG4gICAgICAgICAgICBNIDogJ2thbG8ga2VsZW4nLFxuICAgICAgICAgICAgTU0gOiAna2FsbyAlZCcsXG4gICAgICAgICAgICB5IDogJ3NhbiBrZWxlbicsXG4gICAgICAgICAgICB5eSA6ICdzYW4gJWQnXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJtO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAnMSc6ICfgp6cnLFxuICAgICAgICAnMic6ICfgp6gnLFxuICAgICAgICAnMyc6ICfgp6knLFxuICAgICAgICAnNCc6ICfgp6onLFxuICAgICAgICAnNSc6ICfgp6snLFxuICAgICAgICAnNic6ICfgp6wnLFxuICAgICAgICAnNyc6ICfgp60nLFxuICAgICAgICAnOCc6ICfgp64nLFxuICAgICAgICAnOSc6ICfgp68nLFxuICAgICAgICAnMCc6ICfgp6YnXG4gICAgfSxcbiAgICBudW1iZXJNYXAgPSB7XG4gICAgICAgICfgp6cnOiAnMScsXG4gICAgICAgICfgp6gnOiAnMicsXG4gICAgICAgICfgp6knOiAnMycsXG4gICAgICAgICfgp6onOiAnNCcsXG4gICAgICAgICfgp6snOiAnNScsXG4gICAgICAgICfgp6wnOiAnNicsXG4gICAgICAgICfgp60nOiAnNycsXG4gICAgICAgICfgp64nOiAnOCcsXG4gICAgICAgICfgp68nOiAnOScsXG4gICAgICAgICfgp6YnOiAnMCdcbiAgICB9O1xuXG4gICAgdmFyIGJuID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYm4nLCB7XG4gICAgICAgIG1vbnRocyA6ICfgppzgpr7gpqjgp4Hgp5/gpr7gprDgp4Bf4Kar4KeH4Kas4KeN4Kaw4KeB4Kef4Ka+4Kaw4Ka/X+CmruCmvuCmsOCnjeCmml/gpo/gpqrgp43gprDgpr/gprJf4Kau4KeHX+CmnOCngeCmqF/gppzgp4HgprLgpr7gpodf4KaG4KaX4Ka44KeN4KafX+CmuOCnh+CmquCnjeCmn+Cnh+CmruCnjeCmrOCmsF/gpoXgppXgp43gpp/gp4vgpqzgprBf4Kao4Kat4KeH4Kau4KeN4Kas4KawX+CmoeCmv+CmuOCnh+CmruCnjeCmrOCmsCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn4Kac4Ka+4Kao4KeBX+Cmq+Cnh+CmrF/gpq7gpr7gprDgp43gpppf4KaP4Kaq4KeN4KawX+CmruCnh1/gppzgp4Hgpqhf4Kac4KeB4KayX+CmhuCml1/gprjgp4fgpqrgp43gpp9f4KaF4KaV4KeN4Kaf4KeLX+CmqOCmreCnh1/gpqHgpr/gprjgp4cnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ+CmsOCmrOCmv+CmrOCmvuCmsF/gprjgp4vgpq7gpqzgpr7gprBf4Kau4KaZ4KeN4KaX4Kay4Kas4Ka+4KawX+CmrOCngeCmp+CmrOCmvuCmsF/gpqzgp4Pgprngprjgp43gpqrgpqTgpr/gpqzgpr7gprBf4Ka24KeB4KaV4KeN4Kaw4Kas4Ka+4KawX+CmtuCmqOCmv+CmrOCmvuCmsCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfgprDgpqzgpr9f4Ka44KeL4KauX+CmruCmmeCnjeCml+Cmsl/gpqzgp4Hgpqdf4Kas4KeD4Ka54Ka44KeN4Kaq4Kak4Ka/X+CmtuCngeCmleCnjeCmsF/gprbgpqjgpr8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ+CmsOCmrOCmv1/gprjgp4vgpq5f4Kau4KaZ4KeN4KaXX+CmrOCngeCmp1/gpqzgp4PgprngpoNf4Ka24KeB4KaV4KeN4KawX+CmtuCmqOCmvycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdBIGg6bW0g4Ka44Kau4KefJyxcbiAgICAgICAgICAgIExUUyA6ICdBIGg6bW06c3Mg4Ka44Kau4KefJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVksIEEgaDptbSDgprjgpq7gp58nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIOCmuOCmruCnnydcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1vgpobgppxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW+CmhuCml+CmvuCmruCngOCmleCmvuCmsl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdb4KaX4Kak4KaV4Ka+4KayXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdb4KaX4KakXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnJXMg4Kaq4Kaw4KeHJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMg4KaG4KaX4KeHJyxcbiAgICAgICAgICAgIHMgOiAn4KaV4Kef4KeH4KaVIOCmuOCnh+CmleCnh+CmqOCnjeCmoScsXG4gICAgICAgICAgICBzcyA6ICclZCDgprjgp4fgppXgp4fgpqjgp43gpqEnLFxuICAgICAgICAgICAgbSA6ICfgpo/gppUg4Kau4Ka/4Kao4Ka/4KafJyxcbiAgICAgICAgICAgIG1tIDogJyVkIOCmruCmv+CmqOCmv+CmnycsXG4gICAgICAgICAgICBoIDogJ+Cmj+CmlSDgppjgpqjgp43gpp/gpr4nLFxuICAgICAgICAgICAgaGggOiAnJWQg4KaY4Kao4KeN4Kaf4Ka+JyxcbiAgICAgICAgICAgIGQgOiAn4KaP4KaVIOCmpuCmv+CmqCcsXG4gICAgICAgICAgICBkZCA6ICclZCDgpqbgpr/gpqgnLFxuICAgICAgICAgICAgTSA6ICfgpo/gppUg4Kau4Ka+4Ka4JyxcbiAgICAgICAgICAgIE1NIDogJyVkIOCmruCmvuCmuCcsXG4gICAgICAgICAgICB5IDogJ+Cmj+CmlSDgpqzgppvgprAnLFxuICAgICAgICAgICAgeXkgOiAnJWQg4Kas4Kab4KawJ1xuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4Ken4Keo4Kep4Keq4Ker4Kes4Ket4Keu4Kev4KemXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4Kaw4Ka+4KakfOCmuOCmleCmvuCmsnzgpqbgp4Hgpqrgp4HgprB84Kas4Ka/4KaV4Ka+4KayfOCmsOCmvuCmpC8sXG4gICAgICAgIG1lcmlkaWVtSG91ciA6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKG1lcmlkaWVtID09PSAn4Kaw4Ka+4KakJyAmJiBob3VyID49IDQpIHx8XG4gICAgICAgICAgICAgICAgICAgIChtZXJpZGllbSA9PT0gJ+CmpuCngeCmquCngeCmsCcgJiYgaG91ciA8IDUpIHx8XG4gICAgICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn4Kas4Ka/4KaV4Ka+4KayJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kaw4Ka+4KakJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgprjgppXgpr7gprInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CmpuCngeCmquCngeCmsCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kas4Ka/4KaV4Ka+4KayJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgprDgpr7gpqQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA2ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBibjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgJzEnOiAn4LyhJyxcbiAgICAgICAgJzInOiAn4LyiJyxcbiAgICAgICAgJzMnOiAn4LyjJyxcbiAgICAgICAgJzQnOiAn4LykJyxcbiAgICAgICAgJzUnOiAn4LylJyxcbiAgICAgICAgJzYnOiAn4LymJyxcbiAgICAgICAgJzcnOiAn4LynJyxcbiAgICAgICAgJzgnOiAn4LyoJyxcbiAgICAgICAgJzknOiAn4LypJyxcbiAgICAgICAgJzAnOiAn4LygJ1xuICAgIH0sXG4gICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAn4LyhJzogJzEnLFxuICAgICAgICAn4LyiJzogJzInLFxuICAgICAgICAn4LyjJzogJzMnLFxuICAgICAgICAn4LykJzogJzQnLFxuICAgICAgICAn4LylJzogJzUnLFxuICAgICAgICAn4LymJzogJzYnLFxuICAgICAgICAn4LynJzogJzcnLFxuICAgICAgICAn4LyoJzogJzgnLFxuICAgICAgICAn4LypJzogJzknLFxuICAgICAgICAn4LygJzogJzAnXG4gICAgfTtcblxuICAgIHZhciBibyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2JvJywge1xuICAgICAgICBtb250aHMgOiAn4L2f4L6z4LyL4L2W4LyL4L2R4L2E4LyL4L2U4L28X+C9n+C+s+C8i+C9luC8i+C9guC9ieC9suC9puC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvYLgvabgvbTgvZjgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2e4L2y4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9o+C+lOC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZHgvrLgvbTgvYLgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2R4L204L2T4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9ouC+kuC+seC9keC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZHgvYLgvbTgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2F4L204LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9heC9tOC8i+C9guC9heC9suC9guC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZbgvYXgvbTgvIvgvYLgvYngvbLgvabgvIvgvZQnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ+C9n+C+s+C8i+C9luC8i+C9keC9hOC8i+C9lOC9vF/gvZ/gvrPgvIvgvZbgvIvgvYLgvYngvbLgvabgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2C4L2m4L204L2Y4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9nuC9suC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvaPgvpTgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2R4L6y4L204L2C4LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9keC9tOC9k+C8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZbgvaLgvpLgvrHgvZHgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2R4L2C4L204LyL4L2UX+C9n+C+s+C8i+C9luC8i+C9luC9heC9tOC8i+C9lF/gvZ/gvrPgvIvgvZbgvIvgvZbgvYXgvbTgvIvgvYLgvYXgvbLgvYLgvIvgvZRf4L2f4L6z4LyL4L2W4LyL4L2W4L2F4L204LyL4L2C4L2J4L2y4L2m4LyL4L2UJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICfgvYLgvZ/gvaDgvIvgvYngvbLgvIvgvZjgvItf4L2C4L2f4L2g4LyL4L2f4L6z4LyL4L2W4LyLX+C9guC9n+C9oOC8i+C9mOC9suC9guC8i+C9keC9mOC9ouC8i1/gvYLgvZ/gvaDgvIvgvaPgvrfgvYLgvIvgvZTgvItf4L2C4L2f4L2g4LyL4L2V4L204L2i4LyL4L2W4L20X+C9guC9n+C9oOC8i+C9lOC8i+C9puC9hOC9puC8i1/gvYLgvZ/gvaDgvIvgvabgvqTgvbrgvZPgvIvgvZTgvIsnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn4L2J4L2y4LyL4L2Y4LyLX+C9n+C+s+C8i+C9luC8i1/gvZjgvbLgvYLgvIvgvZHgvZjgvaLgvItf4L2j4L634L2C4LyL4L2U4LyLX+C9leC9tOC9ouC8i+C9luC9tF/gvZTgvIvgvabgvYTgvabgvItf4L2m4L6k4L264L2T4LyL4L2U4LyLJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfgvYngvbLgvIvgvZjgvItf4L2f4L6z4LyL4L2W4LyLX+C9mOC9suC9guC8i+C9keC9mOC9ouC8i1/gvaPgvrfgvYLgvIvgvZTgvItf4L2V4L204L2i4LyL4L2W4L20X+C9lOC8i+C9puC9hOC9puC8i1/gvabgvqTgvbrgvZPgvIvgvZTgvIsnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnQSBoOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdBIGg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSwgQSBoOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1vgvZHgvbLgvIvgvaLgvbLgvYRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW+C9puC9hOC8i+C9ieC9suC9k10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnW+C9luC9keC9tOC9k+C8i+C9leC+suC9guC8i+C9ouC+l+C9uuC9puC8i+C9mF0sIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW+C9geC8i+C9puC9hF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW+C9luC9keC9tOC9k+C8i+C9leC+suC9guC8i+C9mOC9kOC9oOC8i+C9mF0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJyVzIOC9o+C8iycsXG4gICAgICAgICAgICBwYXN0IDogJyVzIOC9puC+lOC9k+C8i+C9oycsXG4gICAgICAgICAgICBzIDogJ+C9o+C9mOC8i+C9puC9hCcsXG4gICAgICAgICAgICBzcyA6ICclZCDgvabgvpDgvaLgvIvgvYbgvI0nLFxuICAgICAgICAgICAgbSA6ICfgvabgvpDgvaLgvIvgvZjgvIvgvYLgvYXgvbLgvYInLFxuICAgICAgICAgICAgbW0gOiAnJWQg4L2m4L6Q4L2i4LyL4L2YJyxcbiAgICAgICAgICAgIGggOiAn4L2G4L204LyL4L2a4L284L2R4LyL4L2C4L2F4L2y4L2CJyxcbiAgICAgICAgICAgIGhoIDogJyVkIOC9huC9tOC8i+C9muC9vOC9kScsXG4gICAgICAgICAgICBkIDogJ+C9ieC9suC9k+C8i+C9guC9heC9suC9gicsXG4gICAgICAgICAgICBkZCA6ICclZCDgvYngvbLgvZPgvIsnLFxuICAgICAgICAgICAgTSA6ICfgvZ/gvrPgvIvgvZbgvIvgvYLgvYXgvbLgvYInLFxuICAgICAgICAgICAgTU0gOiAnJWQg4L2f4L6z4LyL4L2WJyxcbiAgICAgICAgICAgIHkgOiAn4L2j4L284LyL4L2C4L2F4L2y4L2CJyxcbiAgICAgICAgICAgIHl5IDogJyVkIOC9o+C9vCdcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+C8oeC8ouC8o+C8pOC8peC8puC8p+C8qOC8qeC8oF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+C9mOC9muC9k+C8i+C9mOC9vHzgvZ7gvbzgvYLgvabgvIvgvYDgvaZ84L2J4L2y4L2T4LyL4L2C4L204L2EfOC9keC9guC9vOC9hOC8i+C9keC9gnzgvZjgvZrgvZPgvIvgvZjgvbwvLFxuICAgICAgICBtZXJpZGllbUhvdXIgOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKChtZXJpZGllbSA9PT0gJ+C9mOC9muC9k+C8i+C9mOC9vCcgJiYgaG91ciA+PSA0KSB8fFxuICAgICAgICAgICAgICAgICAgICAobWVyaWRpZW0gPT09ICfgvYngvbLgvZPgvIvgvYLgvbTgvYQnICYmIGhvdXIgPCA1KSB8fFxuICAgICAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ+C9keC9guC9vOC9hOC8i+C9keC9gicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C9mOC9muC9k+C8i+C9mOC9vCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4L2e4L284L2C4L2m4LyL4L2A4L2mJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgvYngvbLgvZPgvIvgvYLgvbTgvYQnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C9keC9guC9vOC9hOC8i+C9keC9gic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4L2Y4L2a4L2T4LyL4L2Y4L28JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNiAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYm87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhNdXRhdGlvbihudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgJ21tJzogJ211bnV0ZW5uJyxcbiAgICAgICAgICAgICdNTSc6ICdtaXonLFxuICAgICAgICAgICAgJ2RkJzogJ2RldmV6aCdcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG51bWJlciArICcgJyArIG11dGF0aW9uKGZvcm1hdFtrZXldLCBudW1iZXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzcGVjaWFsTXV0YXRpb25Gb3JZZWFycyhudW1iZXIpIHtcbiAgICAgICAgc3dpdGNoIChsYXN0TnVtYmVyKG51bWJlcikpIHtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyBibG9heic7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnIHZsb2F6JztcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBsYXN0TnVtYmVyKG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyID4gOSkge1xuICAgICAgICAgICAgcmV0dXJuIGxhc3ROdW1iZXIobnVtYmVyICUgMTApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG11dGF0aW9uKHRleHQsIG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICByZXR1cm4gc29mdE11dGF0aW9uKHRleHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZXh0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBzb2Z0TXV0YXRpb24odGV4dCkge1xuICAgICAgICB2YXIgbXV0YXRpb25UYWJsZSA9IHtcbiAgICAgICAgICAgICdtJzogJ3YnLFxuICAgICAgICAgICAgJ2InOiAndicsXG4gICAgICAgICAgICAnZCc6ICd6J1xuICAgICAgICB9O1xuICAgICAgICBpZiAobXV0YXRpb25UYWJsZVt0ZXh0LmNoYXJBdCgwKV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG11dGF0aW9uVGFibGVbdGV4dC5jaGFyQXQoMCldICsgdGV4dC5zdWJzdHJpbmcoMSk7XG4gICAgfVxuXG4gICAgdmFyIGJyID0gbW9tZW50LmRlZmluZUxvY2FsZSgnYnInLCB7XG4gICAgICAgIG1vbnRocyA6ICdHZW52ZXJfQ1xcJ2h3ZXZyZXJfTWV1cnpoX0VicmVsX01hZV9NZXpoZXZlbl9Hb3VlcmVfRW9zdF9Hd2VuZ29sb19IZXJlX0R1X0tlcnp1Jy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdHZW5fQ1xcJ2h3ZV9NZXVfRWJyX01hZV9FdmVfR291X0Vvc19Hd2VfSGVyX0R1X0tlcicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnU3VsX0x1bl9NZXVyemhfTWVyY1xcJ2hlcl9ZYW91X0d3ZW5lcl9TYWRvcm4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnU3VsX0x1bl9NZXVfTWVyX1lhb19Hd2VfU2FkJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdTdV9MdV9NZV9NZXJfWWFfR3dfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnaFtlXW1tIEEnLFxuICAgICAgICAgICAgTFRTIDogJ2hbZV1tbTpzcyBBJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIFthIHZpel0gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIFthIHZpel0gTU1NTSBZWVlZIGhbZV1tbSBBJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBbYSB2aXpdIE1NTU0gWVlZWSBoW2VdbW0gQSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1tIaXppdiBkYV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbV2FyY1xcJ2hvYXpoIGRhXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFtkYV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbRGVjXFwnaCBkYV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnZGRkZCBbcGFzZXQgZGFdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdhLWJlbm4gJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyBcXCd6bycsXG4gICAgICAgICAgICBzIDogJ3VuIG5lYmV1ZCBzZWdvbmRlbm5vw7knLFxuICAgICAgICAgICAgc3MgOiAnJWQgZWlsZW5uJyxcbiAgICAgICAgICAgIG0gOiAndXIgdnVudXRlbm4nLFxuICAgICAgICAgICAgbW0gOiByZWxhdGl2ZVRpbWVXaXRoTXV0YXRpb24sXG4gICAgICAgICAgICBoIDogJ3VuIGV1cicsXG4gICAgICAgICAgICBoaCA6ICclZCBldXInLFxuICAgICAgICAgICAgZCA6ICd1biBkZXZlemgnLFxuICAgICAgICAgICAgZGQgOiByZWxhdGl2ZVRpbWVXaXRoTXV0YXRpb24sXG4gICAgICAgICAgICBNIDogJ3VyIG1peicsXG4gICAgICAgICAgICBNTSA6IHJlbGF0aXZlVGltZVdpdGhNdXRhdGlvbixcbiAgICAgICAgICAgIHkgOiAndXIgYmxvYXonLFxuICAgICAgICAgICAgeXkgOiBzcGVjaWFsTXV0YXRpb25Gb3JZZWFyc1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oYcOxfHZldCkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9IChudW1iZXIgPT09IDEpID8gJ2HDsScgOiAndmV0JztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3Nla3VuZGUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdqZWRuYSBtaW51dGEnIDogJ2plZG5lIG1pbnV0ZSc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21pbnV0YSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21pbnV0ZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtaW51dGEnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnamVkYW4gc2F0JyA6ICdqZWRub2cgc2F0YSc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3NhdCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIgfHwgbnVtYmVyID09PSAzIHx8IG51bWJlciA9PT0gNCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3NhdGEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2F0aSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2Rhbic7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdkYW5hJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWplc2VjJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWplc2VjYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtamVzZWNpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZ29kaW5hJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZ29kaW5lJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2dvZGluYSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgYnMgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdicycsIHtcbiAgICAgICAgbW9udGhzIDogJ2phbnVhcl9mZWJydWFyX21hcnRfYXByaWxfbWFqX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmFyX29rdG9iYXJfbm92ZW1iYXJfZGVjZW1iYXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ2phbi5fZmViLl9tYXIuX2Fwci5fbWFqLl9qdW4uX2p1bC5fYXVnLl9zZXAuX29rdC5fbm92Ll9kZWMuJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5cyA6ICduZWRqZWxqYV9wb25lZGplbGpha191dG9yYWtfc3JpamVkYV/EjWV0dnJ0YWtfcGV0YWtfc3Vib3RhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ25lZC5fcG9uLl91dG8uX3NyaS5fxI1ldC5fcGV0Ll9zdWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICduZV9wb191dF9zcl/EjWVfcGVfc3UnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEwgOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgIDogJ1tkYW5hcyB1XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5ICA6ICdbc3V0cmEgdV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtuZWRqZWxqdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3NyaWplZHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzdWJvdHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheSAgOiAnW2p1xI1lciB1XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWx1XSBkZGRkIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbGVdIFtzdWJvdGVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbGldIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ3phICVzJyxcbiAgICAgICAgICAgIHBhc3QgICA6ICdwcmlqZSAlcycsXG4gICAgICAgICAgICBzICAgICAgOiAncGFyIHNla3VuZGknLFxuICAgICAgICAgICAgc3MgICAgIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbSAgICAgIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW0gICAgIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaCAgICAgIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGggICAgIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZCAgICAgIDogJ2RhbicsXG4gICAgICAgICAgICBkZCAgICAgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNICAgICAgOiAnbWplc2VjJyxcbiAgICAgICAgICAgIE1NICAgICA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHkgICAgICA6ICdnb2RpbnUnLFxuICAgICAgICAgICAgeXkgICAgIDogdHJhbnNsYXRlXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWwgOiAnJWQuJyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNyAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYnM7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBjYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2NhJywge1xuICAgICAgICBtb250aHMgOiB7XG4gICAgICAgICAgICBzdGFuZGFsb25lOiAnZ2VuZXJfZmVicmVyX21hcsOnX2FicmlsX21haWdfanVueV9qdWxpb2xfYWdvc3Rfc2V0ZW1icmVfb2N0dWJyZV9ub3ZlbWJyZV9kZXNlbWJyZScuc3BsaXQoJ18nKSxcbiAgICAgICAgICAgIGZvcm1hdDogJ2RlIGdlbmVyX2RlIGZlYnJlcl9kZSBtYXLDp19kXFwnYWJyaWxfZGUgbWFpZ19kZSBqdW55X2RlIGp1bGlvbF9kXFwnYWdvc3RfZGUgc2V0ZW1icmVfZFxcJ29jdHVicmVfZGUgbm92ZW1icmVfZGUgZGVzZW1icmUnLnNwbGl0KCdfJyksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL0Rbb0RdPyhcXHMpK01NTU0vXG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ2dlbi5fZmVici5fbWFyw6dfYWJyLl9tYWlnX2p1bnlfanVsLl9hZy5fc2V0Ll9vY3QuX25vdi5fZGVzLicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzIDogJ2RpdW1lbmdlX2RpbGx1bnNfZGltYXJ0c19kaW1lY3Jlc19kaWpvdXNfZGl2ZW5kcmVzX2Rpc3NhYnRlJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ2RnLl9kbC5fZHQuX2RjLl9kai5fZHYuX2RzLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnZGdfZGxfZHRfZGNfZGpfZHZfZHMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBsbCA6ICdEIE1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gW2RlXSBZWVlZIFthIGxlc10gSDptbScsXG4gICAgICAgICAgICBsbGwgOiAnRCBNTU0gWVlZWSwgSDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQgRCBNTU1NIFtkZV0gWVlZWSBbYSBsZXNdIEg6bW0nLFxuICAgICAgICAgICAgbGxsbCA6ICdkZGQgRCBNTU0gWVlZWSwgSDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2F2dWkgYSAnICsgKCh0aGlzLmhvdXJzKCkgIT09IDEpID8gJ2xlcycgOiAnbGEnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RGF5IDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2RlbcOgIGEgJyArICgodGhpcy5ob3VycygpICE9PSAxKSA/ICdsZXMnIDogJ2xhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dFdlZWsgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIFthICcgKyAoKHRoaXMuaG91cnMoKSAhPT0gMSkgPyAnbGVzJyA6ICdsYScpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXkgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbYWhpciBhICcgKyAoKHRoaXMuaG91cnMoKSAhPT0gMSkgPyAnbGVzJyA6ICdsYScpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2VsXSBkZGRkIFtwYXNzYXQgYSAnICsgKCh0aGlzLmhvdXJzKCkgIT09IDEpID8gJ2xlcycgOiAnbGEnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnZFxcJ2FxdcOtICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnZmEgJXMnLFxuICAgICAgICAgICAgcyA6ICd1bnMgc2Vnb25zJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNlZ29ucycsXG4gICAgICAgICAgICBtIDogJ3VuIG1pbnV0JyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0cycsXG4gICAgICAgICAgICBoIDogJ3VuYSBob3JhJyxcbiAgICAgICAgICAgIGhoIDogJyVkIGhvcmVzJyxcbiAgICAgICAgICAgIGQgOiAndW4gZGlhJyxcbiAgICAgICAgICAgIGRkIDogJyVkIGRpZXMnLFxuICAgICAgICAgICAgTSA6ICd1biBtZXMnLFxuICAgICAgICAgICAgTU0gOiAnJWQgbWVzb3MnLFxuICAgICAgICAgICAgeSA6ICd1biBhbnknLFxuICAgICAgICAgICAgeXkgOiAnJWQgYW55cydcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHJ8bnx0fMOofGEpLyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9IChudW1iZXIgPT09IDEpID8gJ3InIDpcbiAgICAgICAgICAgICAgICAobnVtYmVyID09PSAyKSA/ICduJyA6XG4gICAgICAgICAgICAgICAgKG51bWJlciA9PT0gMykgPyAncicgOlxuICAgICAgICAgICAgICAgIChudW1iZXIgPT09IDQpID8gJ3QnIDogJ8OoJztcbiAgICAgICAgICAgIGlmIChwZXJpb2QgPT09ICd3JyB8fCBwZXJpb2QgPT09ICdXJykge1xuICAgICAgICAgICAgICAgIG91dHB1dCA9ICdhJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgbW9udGhzID0gJ2xlZGVuX8O6bm9yX2LFmWV6ZW5fZHViZW5fa3bEm3Rlbl/EjWVydmVuX8SNZXJ2ZW5lY19zcnBlbl96w6HFmcOtX8WZw61qZW5fbGlzdG9wYWRfcHJvc2luZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gJ2xlZF/Dum5vX2LFmWVfZHViX2t2xJtfxI12bl/EjXZjX3NycF96w6HFmV/FmcOtal9saXNfcHJvJy5zcGxpdCgnXycpO1xuXG4gICAgdmFyIG1vbnRoc1BhcnNlID0gWy9ebGVkL2ksIC9ew7puby9pLCAvXmLFmWUvaSwgL15kdWIvaSwgL15rdsSbL2ksIC9eKMSNdm58xI1lcnZlbiR8xI1lcnZuYSkvaSwgL14oxI12Y3zEjWVydmVuZWN8xI1lcnZlbmNlKS9pLCAvXnNycC9pLCAvXnrDocWZL2ksIC9exZnDrWovaSwgL15saXMvaSwgL15wcm8vaV07XG4gICAgLy8gTk9URTogJ8SNZXJ2ZW4nIGlzIHN1YnN0cmluZyBvZiAnxI1lcnZlbmVjJzsgdGhlcmVmb3JlICfEjWVydmVuZWMnIG11c3QgcHJlY2VkZSAnxI1lcnZlbicgaW4gdGhlIHJlZ2V4IHRvIGJlIGZ1bGx5IG1hdGNoZWQuXG4gICAgLy8gT3RoZXJ3aXNlIHBhcnNlciBtYXRjaGVzICcxLiDEjWVydmVuZWMnIGFzICcxLiDEjWVydmVuJyArICdlYycuXG4gICAgdmFyIG1vbnRoc1JlZ2V4ID0gL14obGVkZW58w7pub3J8YsWZZXplbnxkdWJlbnxrdsSbdGVufMSNZXJ2ZW5lY3zEjWVydmVuY2V8xI1lcnZlbnzEjWVydm5hfHNycGVufHrDocWZw618xZnDrWplbnxsaXN0b3BhZHxwcm9zaW5lY3xsZWR8w7pub3xixZllfGR1YnxrdsSbfMSNdm58xI12Y3xzcnB8esOhxZl8xZnDrWp8bGlzfHBybykvaTtcblxuICAgIGZ1bmN0aW9uIHBsdXJhbChuKSB7XG4gICAgICAgIHJldHVybiAobiA+IDEpICYmIChuIDwgNSkgJiYgKH5+KG4gLyAxMCkgIT09IDEpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzJzogIC8vIGEgZmV3IHNlY29uZHMgLyBpbiBhIGZldyBzZWNvbmRzIC8gYSBmZXcgc2Vjb25kcyBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpID8gJ3DDoXIgc2VrdW5kJyA6ICdww6FyIHNla3VuZGFtaSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6IC8vIDkgc2Vjb25kcyAvIGluIDkgc2Vjb25kcyAvIDkgc2Vjb25kcyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ3Nla3VuZHknIDogJ3Nla3VuZCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnc2VrdW5kYW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtJzogIC8vIGEgbWludXRlIC8gaW4gYSBtaW51dGUgLyBhIG1pbnV0ZSBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdtaW51dGEnIDogKGlzRnV0dXJlID8gJ21pbnV0dScgOiAnbWludXRvdScpO1xuICAgICAgICAgICAgY2FzZSAnbW0nOiAvLyA5IG1pbnV0ZXMgLyBpbiA5IG1pbnV0ZXMgLyA5IG1pbnV0ZXMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdtaW51dHknIDogJ21pbnV0Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtaW51dGFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaCc6ICAvLyBhbiBob3VyIC8gaW4gYW4gaG91ciAvIGFuIGhvdXIgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnaG9kaW5hJyA6IChpc0Z1dHVyZSA/ICdob2RpbnUnIDogJ2hvZGlub3UnKTtcbiAgICAgICAgICAgIGNhc2UgJ2hoJzogLy8gOSBob3VycyAvIGluIDkgaG91cnMgLyA5IGhvdXJzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnaG9kaW55JyA6ICdob2RpbicpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnaG9kaW5hbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2QnOiAgLy8gYSBkYXkgLyBpbiBhIGRheSAvIGEgZGF5IGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkgPyAnZGVuJyA6ICdkbmVtJztcbiAgICAgICAgICAgIGNhc2UgJ2RkJzogLy8gOSBkYXlzIC8gaW4gOSBkYXlzIC8gOSBkYXlzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnZG55JyA6ICdkbsOtJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdkbnknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ00nOiAgLy8gYSBtb250aCAvIGluIGEgbW9udGggLyBhIG1vbnRoIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkgPyAnbcSbc8OtYycgOiAnbcSbc8OtY2VtJztcbiAgICAgICAgICAgIGNhc2UgJ01NJzogLy8gOSBtb250aHMgLyBpbiA5IG1vbnRocyAvIDkgbW9udGhzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnbcSbc8OtY2UnIDogJ23Em3PDrWPFrycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbcSbc8OtY2knO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3knOiAgLy8gYSB5ZWFyIC8gaW4gYSB5ZWFyIC8gYSB5ZWFyIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkgPyAncm9rJyA6ICdyb2tlbSc7XG4gICAgICAgICAgICBjYXNlICd5eSc6IC8vIDkgeWVhcnMgLyBpbiA5IHllYXJzIC8gOSB5ZWFycyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ3Jva3knIDogJ2xldCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbGV0eSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGNzID0gbW9tZW50LmRlZmluZUxvY2FsZSgnY3MnLCB7XG4gICAgICAgIG1vbnRocyA6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQgOiBtb250aHNTaG9ydCxcbiAgICAgICAgbW9udGhzUmVnZXggOiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU2hvcnRSZWdleCA6IG1vbnRoc1JlZ2V4LFxuICAgICAgICAvLyBOT1RFOiAnxI1lcnZlbicgaXMgc3Vic3RyaW5nIG9mICfEjWVydmVuZWMnOyB0aGVyZWZvcmUgJ8SNZXJ2ZW5lYycgbXVzdCBwcmVjZWRlICfEjWVydmVuJyBpbiB0aGUgcmVnZXggdG8gYmUgZnVsbHkgbWF0Y2hlZC5cbiAgICAgICAgLy8gT3RoZXJ3aXNlIHBhcnNlciBtYXRjaGVzICcxLiDEjWVydmVuZWMnIGFzICcxLiDEjWVydmVuJyArICdlYycuXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4IDogL14obGVkZW58bGVkbmF8w7pub3JhfMO6bm9yfGLFmWV6ZW58YsWZZXpuYXxkdWJlbnxkdWJuYXxrdsSbdGVufGt2xJt0bmF8xI1lcnZlbmVjfMSNZXJ2ZW5jZXzEjWVydmVufMSNZXJ2bmF8c3JwZW58c3JwbmF8esOhxZnDrXzFmcOtamVufMWZw61qbmF8bGlzdG9wYWR1fGxpc3RvcGFkfHByb3NpbmVjfHByb3NpbmNlKS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4IDogL14obGVkfMO6bm98YsWZZXxkdWJ8a3bEm3zEjXZufMSNdmN8c3JwfHrDocWZfMWZw61qfGxpc3xwcm8pL2ksXG4gICAgICAgIG1vbnRoc1BhcnNlIDogbW9udGhzUGFyc2UsXG4gICAgICAgIGxvbmdNb250aHNQYXJzZSA6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlIDogbW9udGhzUGFyc2UsXG4gICAgICAgIHdlZWtkYXlzIDogJ25lZMSbbGVfcG9uZMSbbMOtX8O6dGVyw71fc3TFmWVkYV/EjXR2cnRla19ww6F0ZWtfc29ib3RhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ25lX3BvX8O6dF9zdF/EjXRfcMOhX3NvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICduZV9wb1/DunRfc3RfxI10X3DDoV9zbycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkIEQuIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIGwgOiAnRC4gTS4gWVlZWSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2RuZXMgdl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1t6w610cmEgdl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdiBuZWTEm2xpIHZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2XSBkZGRkIFt2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZlIHN0xZllZHUgdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2ZSDEjXR2cnRlayB2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3YgcMOhdGVrIHZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdiBzb2JvdHUgdl0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW3bEjWVyYSB2XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bG91IG5lZMSbbGkgdl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsw6ldIGRkZGQgW3ZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWxvdSBzdMWZZWR1IHZdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bMO9XSBkZGRkIFt2XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsb3Ugc29ib3R1IHZdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICdwxZllZCAlcycsXG4gICAgICAgICAgICBzIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgc3MgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW0gOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGggOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZGQgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTU0gOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5IDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeXkgOiB0cmFuc2xhdGVcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZSA6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWwgOiAnJWQuJyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY3M7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBjdiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2N2Jywge1xuICAgICAgICBtb250aHMgOiAn0LrTkdGA0LvQsNGHX9C90LDRgNOR0YFf0L/Rg9GIX9Cw0LrQsF/QvNCw0Llf0qvTl9GA0YLQvNC1X9GD0YLTkV/Sq9GD0YDQu9CwX9Cw0LLTkdC9X9GO0L/QsF/Rh9Oz0Lpf0YDQsNGI0YLQsNCyJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICfQutOR0YBf0L3QsNGAX9C/0YPRiF/QsNC60LBf0LzQsNC5X9Kr05fRgF/Rg9GC05Ff0qvRg9GAX9Cw0LLQvV/RjtC/0LBf0YfTs9C6X9GA0LDRiCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAn0LLRi9GA0YHQsNGA0L3QuNC60YPQvV/RgtGD0L3RgtC40LrRg9C9X9GL0YLQu9Cw0YDQuNC60YPQvV/RjtC90LrRg9C9X9C605fSq9C90LXRgNC90LjQutGD0L1f0Y3RgNC90LXQutGD0L1f0YjTkdC80LDRgtC60YPQvScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfQstGL0YBf0YLRg9C9X9GL0YLQu1/RjtC9X9C605fSq1/RjdGA0L1f0YjTkdC8Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfQstGAX9GC0L1f0YvRgl/RjtC9X9C60qtf0Y3RgF/RiNC8Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0RELU1NLVlZWVknLFxuICAgICAgICAgICAgTEwgOiAnWVlZWSBb0qvRg9C70YXQuF0gTU1NTSBb0YPQudOR0YXTl9C9XSBEWy3QvNOX0YjTl10nLFxuICAgICAgICAgICAgTExMIDogJ1lZWVkgW9Kr0YPQu9GF0LhdIE1NTU0gW9GD0LnTkdGF05fQvV0gRFst0LzTl9GI05ddLCBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIFlZWVkgW9Kr0YPQu9GF0LhdIE1NTU0gW9GD0LnTkdGF05fQvV0gRFst0LzTl9GI05ddLCBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9Cf0LDRj9C9XSBMVCBb0YHQtdGF0LXRgtGA0LVdJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0KvRgNCw0L1dIExUIFvRgdC10YXQtdGC0YDQtV0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1vTltC90LXRgF0gTFQgW9GB0LXRhdC10YLRgNC1XScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vSqtC40YLQtdGBXSBkZGRkIExUIFvRgdC10YXQtdGC0YDQtV0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb0JjRgNGC0L3Tl10gZGRkZCBMVCBb0YHQtdGF0LXRgtGA0LVdJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogZnVuY3Rpb24gKG91dHB1dCkge1xuICAgICAgICAgICAgICAgIHZhciBhZmZpeCA9IC/RgdC10YXQtdGCJC9pLmV4ZWMob3V0cHV0KSA/ICfRgNC10L0nIDogL9Kr0YPQuyQvaS5leGVjKG91dHB1dCkgPyAn0YLQsNC9JyA6ICfRgNCw0L0nO1xuICAgICAgICAgICAgICAgIHJldHVybiBvdXRwdXQgKyBhZmZpeDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXN0IDogJyVzINC60LDRj9C70LvQsCcsXG4gICAgICAgICAgICBzIDogJ9C/05fRgC3QuNC6INKr0LXQutC60YPQvdGCJyxcbiAgICAgICAgICAgIHNzIDogJyVkINKr0LXQutC60YPQvdGCJyxcbiAgICAgICAgICAgIG0gOiAn0L/Tl9GAINC80LjQvdGD0YInLFxuICAgICAgICAgICAgbW0gOiAnJWQg0LzQuNC90YPRgicsXG4gICAgICAgICAgICBoIDogJ9C/05fRgCDRgdC10YXQtdGCJyxcbiAgICAgICAgICAgIGhoIDogJyVkINGB0LXRhdC10YInLFxuICAgICAgICAgICAgZCA6ICfQv9OX0YAg0LrRg9C9JyxcbiAgICAgICAgICAgIGRkIDogJyVkINC60YPQvScsXG4gICAgICAgICAgICBNIDogJ9C/05fRgCDRg9C505HRhScsXG4gICAgICAgICAgICBNTSA6ICclZCDRg9C505HRhScsXG4gICAgICAgICAgICB5IDogJ9C/05fRgCDSq9GD0LsnLFxuICAgICAgICAgICAgeXkgOiAnJWQg0qvRg9C7J1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0t0LzTl9GILyxcbiAgICAgICAgb3JkaW5hbCA6ICclZC3QvNOX0YgnLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA3ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjdjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIGN5ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnY3knLCB7XG4gICAgICAgIG1vbnRoczogJ0lvbmF3cl9DaHdlZnJvcl9NYXdydGhfRWJyaWxsX01haV9NZWhlZmluX0dvcmZmZW5uYWZfQXdzdF9NZWRpX0h5ZHJlZl9UYWNod2VkZF9SaGFnZnlyJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydDogJ0lvbl9DaHdlX01hd19FYnJfTWFpX01laF9Hb3JfQXdzX01lZF9IeWRfVGFjaF9SaGFnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5czogJ0R5ZGQgU3VsX0R5ZGQgTGx1bl9EeWRkIE1hd3J0aF9EeWRkIE1lcmNoZXJfRHlkZCBJYXVfRHlkZCBHd2VuZXJfRHlkZCBTYWR3cm4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTdWxfTGx1bl9NYXdfTWVyX0lhdV9Hd2VfU2FkJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ1N1X0xsX01hX01lX0lhX0d3X1NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICAvLyB0aW1lIGZvcm1hdHMgYXJlIHRoZSBzYW1lIGFzIGVuLWdiXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSGVkZGl3IGFtXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW1lmb3J5IGFtXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2FtXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0Rkb2UgYW1dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbZGl3ZXRoYWYgYW1dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdtZXduICVzJyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyB5biDDtGwnLFxuICAgICAgICAgICAgczogJ3ljaHlkaWcgZWlsaWFkYXUnLFxuICAgICAgICAgICAgc3M6ICclZCBlaWxpYWQnLFxuICAgICAgICAgICAgbTogJ211bnVkJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbXVudWQnLFxuICAgICAgICAgICAgaDogJ2F3cicsXG4gICAgICAgICAgICBoaDogJyVkIGF3cicsXG4gICAgICAgICAgICBkOiAnZGl3cm5vZCcsXG4gICAgICAgICAgICBkZDogJyVkIGRpd3Jub2QnLFxuICAgICAgICAgICAgTTogJ21pcycsXG4gICAgICAgICAgICBNTTogJyVkIG1pcycsXG4gICAgICAgICAgICB5OiAnYmx3eWRkeW4nLFxuICAgICAgICAgICAgeXk6ICclZCBmbHluZWRkJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZmVkfGFpbnxhZnxpbHx5ZGR8ZWR8ZWcpLyxcbiAgICAgICAgLy8gdHJhZGl0aW9uYWwgb3JkaW5hbCBudW1iZXJzIGFib3ZlIDMxIGFyZSBub3QgY29tbW9ubHkgdXNlZCBpbiBjb2xsb3F1aWFsIFdlbHNoXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICcnLFxuICAgICAgICAgICAgICAgIGxvb2t1cCA9IFtcbiAgICAgICAgICAgICAgICAgICAgJycsICdhZicsICdpbCcsICd5ZGQnLCAneWRkJywgJ2VkJywgJ2VkJywgJ2VkJywgJ2ZlZCcsICdmZWQnLCAnZmVkJywgLy8gMWFmIHRvIDEwZmVkXG4gICAgICAgICAgICAgICAgICAgICdlZycsICdmZWQnLCAnZWcnLCAnZWcnLCAnZmVkJywgJ2VnJywgJ2VnJywgJ2ZlZCcsICdlZycsICdmZWQnIC8vIDExZWcgdG8gMjBmZWRcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgaWYgKGIgPiAyMCkge1xuICAgICAgICAgICAgICAgIGlmIChiID09PSA0MCB8fCBiID09PSA1MCB8fCBiID09PSA2MCB8fCBiID09PSA4MCB8fCBiID09PSAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ2ZlZCc7IC8vIG5vdCAzMGFpbiwgNzBhaW4gb3IgOTBhaW5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnYWluJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGIgPiAwKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gbG9va3VwW2JdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY3k7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBkYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2RhJywge1xuICAgICAgICBtb250aHMgOiAnamFudWFyX2ZlYnJ1YXJfbWFydHNfYXByaWxfbWFqX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ2phbl9mZWJfbWFyX2Fwcl9tYWpfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdzw7huZGFnX21hbmRhZ190aXJzZGFnX29uc2RhZ190b3JzZGFnX2ZyZWRhZ19sw7hyZGFnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ3PDuG5fbWFuX3Rpcl9vbnNfdG9yX2ZyZV9sw7hyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdzw7hfbWFfdGlfb25fdG9fZnJfbMO4Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEwgOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkIFtkLl0gRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW2kgZGFnIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbaSBtb3JnZW4ga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdww6UgZGRkZCBba2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1tpIGfDpXIga2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdbaV0gZGRkZFtzIGtsLl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ29tICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgc2lkZW4nLFxuICAgICAgICAgICAgcyA6ICdmw6Ugc2VrdW5kZXInLFxuICAgICAgICAgICAgc3MgOiAnJWQgc2VrdW5kZXInLFxuICAgICAgICAgICAgbSA6ICdldCBtaW51dCcsXG4gICAgICAgICAgICBtbSA6ICclZCBtaW51dHRlcicsXG4gICAgICAgICAgICBoIDogJ2VuIHRpbWUnLFxuICAgICAgICAgICAgaGggOiAnJWQgdGltZXInLFxuICAgICAgICAgICAgZCA6ICdlbiBkYWcnLFxuICAgICAgICAgICAgZGQgOiAnJWQgZGFnZScsXG4gICAgICAgICAgICBNIDogJ2VuIG3DpW5lZCcsXG4gICAgICAgICAgICBNTSA6ICclZCBtw6VuZWRlcicsXG4gICAgICAgICAgICB5IDogJ2V0IMOlcicsXG4gICAgICAgICAgICB5eSA6ICclZCDDpXInXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWwgOiAnJWQuJyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGE7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICAnbSc6IFsnZWluZSBNaW51dGUnLCAnZWluZXIgTWludXRlJ10sXG4gICAgICAgICAgICAnaCc6IFsnZWluZSBTdHVuZGUnLCAnZWluZXIgU3R1bmRlJ10sXG4gICAgICAgICAgICAnZCc6IFsnZWluIFRhZycsICdlaW5lbSBUYWcnXSxcbiAgICAgICAgICAgICdkZCc6IFtudW1iZXIgKyAnIFRhZ2UnLCBudW1iZXIgKyAnIFRhZ2VuJ10sXG4gICAgICAgICAgICAnTSc6IFsnZWluIE1vbmF0JywgJ2VpbmVtIE1vbmF0J10sXG4gICAgICAgICAgICAnTU0nOiBbbnVtYmVyICsgJyBNb25hdGUnLCBudW1iZXIgKyAnIE1vbmF0ZW4nXSxcbiAgICAgICAgICAgICd5JzogWydlaW4gSmFocicsICdlaW5lbSBKYWhyJ10sXG4gICAgICAgICAgICAneXknOiBbbnVtYmVyICsgJyBKYWhyZScsIG51bWJlciArICcgSmFocmVuJ11cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyBmb3JtYXRba2V5XVswXSA6IGZvcm1hdFtrZXldWzFdO1xuICAgIH1cblxuICAgIHZhciBkZUF0ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZGUtYXQnLCB7XG4gICAgICAgIG1vbnRocyA6ICdKw6RubmVyX0ZlYnJ1YXJfTcOkcnpfQXByaWxfTWFpX0p1bmlfSnVsaV9BdWd1c3RfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGV6ZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ0rDpG4uX0ZlYi5fTcOkcnpfQXByLl9NYWlfSnVuaV9KdWxpX0F1Zy5fU2VwLl9Pa3QuX05vdi5fRGV6Licuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzIDogJ1Nvbm50YWdfTW9udGFnX0RpZW5zdGFnX01pdHR3b2NoX0Rvbm5lcnN0YWdfRnJlaXRhZ19TYW1zdGFnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ1NvLl9Nby5fRGkuX01pLl9Eby5fRnIuX1NhLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnU29fTW9fRGlfTWlfRG9fRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEwgOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdELiBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheTogJ1toZXV0ZSB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbbW9yZ2VuIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3VtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2dlc3Rlcm4gdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2xldHp0ZW5dIGRkZGQgW3VtXSBMVCBbVWhyXSdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAndm9yICVzJyxcbiAgICAgICAgICAgIHMgOiAnZWluIHBhYXIgU2VrdW5kZW4nLFxuICAgICAgICAgICAgc3MgOiAnJWQgU2VrdW5kZW4nLFxuICAgICAgICAgICAgbSA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbSA6ICclZCBNaW51dGVuJyxcbiAgICAgICAgICAgIGggOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGggOiAnJWQgU3R1bmRlbicsXG4gICAgICAgICAgICBkIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE0gOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU0gOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeSA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eSA6IHByb2Nlc3NSZWxhdGl2ZVRpbWVcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbCA6ICclZC4nLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkZUF0O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICBmdW5jdGlvbiBwcm9jZXNzUmVsYXRpdmVUaW1lKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgZm9ybWF0ID0ge1xuICAgICAgICAgICAgJ20nOiBbJ2VpbmUgTWludXRlJywgJ2VpbmVyIE1pbnV0ZSddLFxuICAgICAgICAgICAgJ2gnOiBbJ2VpbmUgU3R1bmRlJywgJ2VpbmVyIFN0dW5kZSddLFxuICAgICAgICAgICAgJ2QnOiBbJ2VpbiBUYWcnLCAnZWluZW0gVGFnJ10sXG4gICAgICAgICAgICAnZGQnOiBbbnVtYmVyICsgJyBUYWdlJywgbnVtYmVyICsgJyBUYWdlbiddLFxuICAgICAgICAgICAgJ00nOiBbJ2VpbiBNb25hdCcsICdlaW5lbSBNb25hdCddLFxuICAgICAgICAgICAgJ01NJzogW251bWJlciArICcgTW9uYXRlJywgbnVtYmVyICsgJyBNb25hdGVuJ10sXG4gICAgICAgICAgICAneSc6IFsnZWluIEphaHInLCAnZWluZW0gSmFociddLFxuICAgICAgICAgICAgJ3l5JzogW251bWJlciArICcgSmFocmUnLCBudW1iZXIgKyAnIEphaHJlbiddXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gZm9ybWF0W2tleV1bMF0gOiBmb3JtYXRba2V5XVsxXTtcbiAgICB9XG5cbiAgICB2YXIgZGVDaCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2RlLWNoJywge1xuICAgICAgICBtb250aHMgOiAnSmFudWFyX0ZlYnJ1YXJfTcOkcnpfQXByaWxfTWFpX0p1bmlfSnVsaV9BdWd1c3RfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGV6ZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ0phbi5fRmViLl9Nw6Ryel9BcHIuX01haV9KdW5pX0p1bGlfQXVnLl9TZXAuX09rdC5fTm92Ll9EZXouJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiAnU29ubnRhZ19Nb250YWdfRGllbnN0YWdfTWl0dHdvY2hfRG9ubmVyc3RhZ19GcmVpdGFnX1NhbXN0YWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnU29fTW9fRGlfTWlfRG9fRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ1NvX01vX0RpX01pX0RvX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRC4gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbaGV1dGUgdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW21vcmdlbiB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFt1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1tnZXN0ZXJuIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tsZXR6dGVuXSBkZGRkIFt1bV0gTFQgW1Vocl0nXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0IDogJ3ZvciAlcycsXG4gICAgICAgICAgICBzIDogJ2VpbiBwYWFyIFNla3VuZGVuJyxcbiAgICAgICAgICAgIHNzIDogJyVkIFNla3VuZGVuJyxcbiAgICAgICAgICAgIG0gOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW0gOiAnJWQgTWludXRlbicsXG4gICAgICAgICAgICBoIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoIDogJyVkIFN0dW5kZW4nLFxuICAgICAgICAgICAgZCA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZCA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHkgOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXkgOiBwcm9jZXNzUmVsYXRpdmVUaW1lXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWwgOiAnJWQuJyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGVDaDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgICdtJzogWydlaW5lIE1pbnV0ZScsICdlaW5lciBNaW51dGUnXSxcbiAgICAgICAgICAgICdoJzogWydlaW5lIFN0dW5kZScsICdlaW5lciBTdHVuZGUnXSxcbiAgICAgICAgICAgICdkJzogWydlaW4gVGFnJywgJ2VpbmVtIFRhZyddLFxuICAgICAgICAgICAgJ2RkJzogW251bWJlciArICcgVGFnZScsIG51bWJlciArICcgVGFnZW4nXSxcbiAgICAgICAgICAgICdNJzogWydlaW4gTW9uYXQnLCAnZWluZW0gTW9uYXQnXSxcbiAgICAgICAgICAgICdNTSc6IFtudW1iZXIgKyAnIE1vbmF0ZScsIG51bWJlciArICcgTW9uYXRlbiddLFxuICAgICAgICAgICAgJ3knOiBbJ2VpbiBKYWhyJywgJ2VpbmVtIEphaHInXSxcbiAgICAgICAgICAgICd5eSc6IFtudW1iZXIgKyAnIEphaHJlJywgbnVtYmVyICsgJyBKYWhyZW4nXVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGRlID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZGUnLCB7XG4gICAgICAgIG1vbnRocyA6ICdKYW51YXJfRmVicnVhcl9Nw6Ryel9BcHJpbF9NYWlfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXplbWJlcicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnSmFuLl9GZWIuX03DpHJ6X0Fwci5fTWFpX0p1bmlfSnVsaV9BdWcuX1NlcC5fT2t0Ll9Ob3YuX0Rlei4nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICB3ZWVrZGF5cyA6ICdTb25udGFnX01vbnRhZ19EaWVuc3RhZ19NaXR0d29jaF9Eb25uZXJzdGFnX0ZyZWl0YWdfU2Ftc3RhZycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdTby5fTW8uX0RpLl9NaS5fRG8uX0ZyLl9TYS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ1NvX01vX0RpX01pX0RvX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRC4gTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbaGV1dGUgdW1dIExUIFtVaHJdJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW21vcmdlbiB1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFt1bV0gTFQgW1Vocl0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1tnZXN0ZXJuIHVtXSBMVCBbVWhyXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tsZXR6dGVuXSBkZGRkIFt1bV0gTFQgW1Vocl0nXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0IDogJ3ZvciAlcycsXG4gICAgICAgICAgICBzIDogJ2VpbiBwYWFyIFNla3VuZGVuJyxcbiAgICAgICAgICAgIHNzIDogJyVkIFNla3VuZGVuJyxcbiAgICAgICAgICAgIG0gOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW0gOiAnJWQgTWludXRlbicsXG4gICAgICAgICAgICBoIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoIDogJyVkIFN0dW5kZW4nLFxuICAgICAgICAgICAgZCA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZCA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHkgOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXkgOiBwcm9jZXNzUmVsYXRpdmVUaW1lXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWwgOiAnJWQuJyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBtb250aHMgPSBbXG4gICAgICAgICfelt6s3oLeqt6H3qbeg96pJyxcbiAgICAgICAgJ96K3qzehN6w3oPeqt6H3qbeg96pJyxcbiAgICAgICAgJ96J3qfeg96o3pfeqicsXG4gICAgICAgICfeh96t3pXesN6D3qnejd6qJyxcbiAgICAgICAgJ96J3q0nLFxuICAgICAgICAn3pbeq96C3rAnLFxuICAgICAgICAn3pbeqt6N3qbeh96oJyxcbiAgICAgICAgJ96H3q/ejt6m3pDesN6T3qonLFxuICAgICAgICAn3pDerN6V3rDek96s3onesN6E3qbeg96qJyxcbiAgICAgICAgJ96H3q7eht6w3pPer96E3qbeg96qJyxcbiAgICAgICAgJ96C3q7eiN6s3onesN6E3qbeg96qJyxcbiAgICAgICAgJ96R3qjekN6s3onesN6E3qbeg96qJ1xuICAgIF0sIHdlZWtkYXlzID0gW1xuICAgICAgICAn3ofep96L3qjeh96w3ozepicsXG4gICAgICAgICfegN6v3onepicsXG4gICAgICAgICfeh96m3oLesN6O3qfeg96mJyxcbiAgICAgICAgJ96E3qrei96mJyxcbiAgICAgICAgJ96E3qreg96n3pDesN6K3qbejN6oJyxcbiAgICAgICAgJ96A3qreht6q3oPeqicsXG4gICAgICAgICfegN6u3oLeqN6A3qjeg96qJ1xuICAgIF07XG5cbiAgICB2YXIgZHYgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdkdicsIHtcbiAgICAgICAgbW9udGhzIDogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydCA6IG1vbnRocyxcbiAgICAgICAgd2Vla2RheXMgOiB3ZWVrZGF5cyxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6IHdlZWtkYXlzLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfeh96n3oveqF/egN6v3onepl/eh96m3oLesF/ehN6q3ovepl/ehN6q3oPep1/egN6q3obeql/egN6u3oLeqCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG5cbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0QvTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/eid6GfN6J3oovLFxuICAgICAgICBpc1BNIDogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ96J3oonID09PSBpbnB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfeid6GJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfeid6KJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1veid6o3ofept6L3qpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW96J3qfei96m3onep10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1veh96o3ofesN6U3qxdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1veit6n3ofeqN6M3qreiN6oXSBkZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICfejN6s3oPerd6O3qbeh96oICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAn3obeqt6D3qjegt6wICVzJyxcbiAgICAgICAgICAgIHMgOiAn3pDeqN6G3qregt6w3ozeqt6G3q7ehd6s3ofesCcsXG4gICAgICAgICAgICBzcyA6ICdkJSDekN6o3obeqt6C3rDejN6qJyxcbiAgICAgICAgICAgIG0gOiAn3oneqN6C3qjek96s3ofesCcsXG4gICAgICAgICAgICBtbSA6ICfeid6o3oLeqN6T3qogJWQnLFxuICAgICAgICAgICAgaCA6ICfejt6m3pHeqN6H3qjeg96s3ofesCcsXG4gICAgICAgICAgICBoaCA6ICfejt6m3pHeqN6H3qjeg96qICVkJyxcbiAgICAgICAgICAgIGQgOiAn3oveqt6I3qbegN6s3ofesCcsXG4gICAgICAgICAgICBkZCA6ICfei96q3ojept6Q3rAgJWQnLFxuICAgICAgICAgICAgTSA6ICfeid6m3oDerN6H3rAnLFxuICAgICAgICAgICAgTU0gOiAn3onept6Q3rAgJWQnLFxuICAgICAgICAgICAgeSA6ICfeh96m3oDept6D3qzeh96wJyxcbiAgICAgICAgICAgIHl5IDogJ96H3qbegN6m3oPeqiAlZCdcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogNywgIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogMTIgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkdjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0IGluc3RhbmNlb2YgRnVuY3Rpb24gfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcbiAgICB9XG5cblxuICAgIHZhciBlbCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VsJywge1xuICAgICAgICBtb250aHNOb21pbmF0aXZlRWwgOiAnzpnOsc69zr/Phc6sz4HOuc6/z4JfzqbOtc6yz4HOv8+FzqzPgc65zr/Pgl/OnM6sz4HPhM65zr/Pgl/Okc+Az4HOr867zrnOv8+CX86czqzOuc6/z4JfzpnOv8+Nzr3Ouc6/z4JfzpnOv8+NzrvOuc6/z4JfzpHPjc6zzr/Phc+Dz4TOv8+CX86jzrXPgM+Ezq3OvM6yz4HOuc6/z4Jfzp/Ous+Ez47Oss+BzrnOv8+CX86dzr/Orc68zrLPgc65zr/Pgl/OlM61zrrOrc68zrLPgc65zr/Pgicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzR2VuaXRpdmVFbCA6ICfOmc6xzr3Ov8+FzrHPgc6vzr/PhV/Ops61zrLPgc6/z4XOsc+Bzq/Ov8+FX86czrHPgc+Ezq/Ov8+FX86Rz4DPgc65zrvOr86/z4VfzpzOsc6Qzr/PhV/Omc6/z4XOvc6vzr/PhV/Omc6/z4XOu86vzr/PhV/Okc+FzrPOv8+Nz4PPhM6/z4VfzqPOtc+Az4TOtc68zrLPgc6vzr/PhV/On866z4TPic6yz4HOr86/z4Vfzp3Ov861zrzOss+Bzq/Ov8+FX86UzrXOus61zrzOss+Bzq/Ov8+FJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHMgOiBmdW5jdGlvbiAobW9tZW50VG9Gb3JtYXQsIGZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKCFtb21lbnRUb0Zvcm1hdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNOb21pbmF0aXZlRWw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBmb3JtYXQgPT09ICdzdHJpbmcnICYmIC9ELy50ZXN0KGZvcm1hdC5zdWJzdHJpbmcoMCwgZm9ybWF0LmluZGV4T2YoJ01NTU0nKSkpKSB7IC8vIGlmIHRoZXJlIGlzIGEgZGF5IG51bWJlciBiZWZvcmUgJ01NTU0nXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc0dlbml0aXZlRWxbbW9tZW50VG9Gb3JtYXQubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNOb21pbmF0aXZlRWxbbW9tZW50VG9Gb3JtYXQubW9udGgoKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ86ZzrHOvV/Ops61zrJfzpzOsc+BX86Rz4DPgV/OnM6xz4pfzpnOv8+Fzr1fzpnOv8+FzrtfzpHPhc6zX86jzrXPgF/On866z4Rfzp3Ov861X86UzrXOuicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnzprPhc+BzrnOsc66zq5fzpTOtc+Fz4TOrc+BzrFfzqTPgc6vz4TOt1/OpM61z4TOrM+Bz4TOt1/OoM6tzrzPgM+EzrdfzqDOsc+BzrHPg866zrXPhc6uX86jzqzOss6yzrHPhM6/Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ86az4XPgV/OlM61z4VfzqTPgc65X86kzrXPhF/OoM61zrxfzqDOsc+BX86jzrHOsicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnzprPhV/OlM61X86kz4FfzqTOtV/OoM61X86gzrFfzqPOsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnzrzOvCcgOiAnzpzOnCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ8+AzrwnIDogJ86gzpwnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBpc1BNIDogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gKChpbnB1dCArICcnKS50b0xvd2VyQ2FzZSgpWzBdID09PSAnzrwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZSA6IC9bzqDOnF1cXC4/zpw/XFwuPy9pLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFMgOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhckVsIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdbzqPOrs68zrXPgc6xIHt9XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vOkc+Nz4HOuc6/IHt9XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFt7fV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbzqfOuM61z4Ige31dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vPhM6/IM+Az4HOv863zrPOv8+NzrzOtc69zr9dIGRkZGQgW3t9XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vPhM63zr0gz4DPgc6/zrfOs86/z43OvM61zr3Ot10gZGRkZCBbe31dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiBmdW5jdGlvbiAoa2V5LCBtb20pIHtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPSB0aGlzLl9jYWxlbmRhckVsW2tleV0sXG4gICAgICAgICAgICAgICAgaG91cnMgPSBtb20gJiYgbW9tLmhvdXJzKCk7XG4gICAgICAgICAgICBpZiAoaXNGdW5jdGlvbihvdXRwdXQpKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gb3V0cHV0LmFwcGx5KG1vbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0LnJlcGxhY2UoJ3t9JywgKGhvdXJzICUgMTIgPT09IDEgPyAnz4PPhM63JyA6ICfPg8+EzrnPgicpKTtcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ8+DzrUgJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyDPgM+BzrnOvScsXG4gICAgICAgICAgICBzIDogJ867zq/Os86xIM60zrXPhc+EzrXPgc+MzrvOtc+Az4TOsScsXG4gICAgICAgICAgICBzcyA6ICclZCDOtM61z4XPhM61z4HPjM67zrXPgM+EzrEnLFxuICAgICAgICAgICAgbSA6ICfOrc69zrEgzrvOtc+Az4TPjCcsXG4gICAgICAgICAgICBtbSA6ICclZCDOu861z4DPhM6sJyxcbiAgICAgICAgICAgIGggOiAnzrzOr86xIM+Oz4HOsScsXG4gICAgICAgICAgICBoaCA6ICclZCDPjs+BzrXPgicsXG4gICAgICAgICAgICBkIDogJ868zq/OsSDOvM6tz4HOsScsXG4gICAgICAgICAgICBkZCA6ICclZCDOvM6tz4HOtc+CJyxcbiAgICAgICAgICAgIE0gOiAnzq3Ovc6xz4IgzrzOrs69zrHPgicsXG4gICAgICAgICAgICBNTSA6ICclZCDOvM6uzr3Otc+CJyxcbiAgICAgICAgICAgIHkgOiAnzq3Ovc6xz4Igz4fPgc+Mzr3Ov8+CJyxcbiAgICAgICAgICAgIHl5IDogJyVkIM+Hz4HPjM69zrnOsSdcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9zrcvLFxuICAgICAgICBvcmRpbmFsOiAnJWTOtycsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDRzdCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVsO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgZW5TRyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLVNHJywge1xuICAgICAgICBtb250aHMgOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHMgOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG0gOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoIDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGggOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZCA6ICdhIGRheScsXG4gICAgICAgICAgICBkZCA6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE0gOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTSA6ICclZCBtb250aHMnLFxuICAgICAgICAgICAgeSA6ICdhIHllYXInLFxuICAgICAgICAgICAgeXkgOiAnJWQgeWVhcnMnXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAofn4obnVtYmVyICUgMTAwIC8gMTApID09PSAxKSA/ICd0aCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAxKSA/ICdzdCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAyKSA/ICduZCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAzKSA/ICdyZCcgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5TRztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIGVuQXUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1hdScsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFMgOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyBhZ28nLFxuICAgICAgICAgICAgcyA6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNlY29uZHMnLFxuICAgICAgICAgICAgbSA6ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbSA6ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGggOiAnYW4gaG91cicsXG4gICAgICAgICAgICBoaCA6ICclZCBob3VycycsXG4gICAgICAgICAgICBkIDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkIDogJyVkIGRheXMnLFxuICAgICAgICAgICAgTSA6ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NIDogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5IDogJ2EgeWVhcicsXG4gICAgICAgICAgICB5eSA6ICclZCB5ZWFycydcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWwgOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh+fihudW1iZXIgJSAxMDAgLyAxMCkgPT09IDEpID8gJ3RoJyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDEpID8gJ3N0JyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDIpID8gJ25kJyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDMpID8gJ3JkJyA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBlbkF1O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgZW5DYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLWNhJywge1xuICAgICAgICBtb250aHMgOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUyA6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTCA6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIExMIDogJ01NTU0gRCwgWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnTU1NTSBELCBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEnXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0IDogJyVzIGFnbycsXG4gICAgICAgICAgICBzIDogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICAgICAgc3MgOiAnJWQgc2Vjb25kcycsXG4gICAgICAgICAgICBtIDogJ2EgbWludXRlJyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaCA6ICdhbiBob3VyJyxcbiAgICAgICAgICAgIGhoIDogJyVkIGhvdXJzJyxcbiAgICAgICAgICAgIGQgOiAnYSBkYXknLFxuICAgICAgICAgICAgZGQgOiAnJWQgZGF5cycsXG4gICAgICAgICAgICBNIDogJ2EgbW9udGgnLFxuICAgICAgICAgICAgTU0gOiAnJWQgbW9udGhzJyxcbiAgICAgICAgICAgIHkgOiAnYSB5ZWFyJyxcbiAgICAgICAgICAgIHl5IDogJyVkIHllYXJzJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3R8bmR8cmR8dGgpLyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gKH5+KG51bWJlciAlIDEwMCAvIDEwKSA9PT0gMSkgPyAndGgnIDpcbiAgICAgICAgICAgICAgICAoYiA9PT0gMSkgPyAnc3QnIDpcbiAgICAgICAgICAgICAgICAoYiA9PT0gMikgPyAnbmQnIDpcbiAgICAgICAgICAgICAgICAoYiA9PT0gMykgPyAncmQnIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBlbkNhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgZW5HYiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VuLWdiJywge1xuICAgICAgICBtb250aHMgOiAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnU3VfTW9fVHVfV2VfVGhfRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHMgOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG0gOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoIDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGggOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZCA6ICdhIGRheScsXG4gICAgICAgICAgICBkZCA6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE0gOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTSA6ICclZCBtb250aHMnLFxuICAgICAgICAgICAgeSA6ICdhIHllYXInLFxuICAgICAgICAgICAgeXkgOiAnJWQgeWVhcnMnXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAofn4obnVtYmVyICUgMTAwIC8gMTApID09PSAxKSA/ICd0aCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAxKSA/ICdzdCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAyKSA/ICduZCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAzKSA/ICdyZCcgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5HYjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIGVuSWUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1pZScsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1tUb2RheSBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1tZZXN0ZXJkYXkgYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ2luICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgYWdvJyxcbiAgICAgICAgICAgIHMgOiAnYSBmZXcgc2Vjb25kcycsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgICAgIG0gOiAnYSBtaW51dGUnLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoIDogJ2FuIGhvdXInLFxuICAgICAgICAgICAgaGggOiAnJWQgaG91cnMnLFxuICAgICAgICAgICAgZCA6ICdhIGRheScsXG4gICAgICAgICAgICBkZCA6ICclZCBkYXlzJyxcbiAgICAgICAgICAgIE0gOiAnYSBtb250aCcsXG4gICAgICAgICAgICBNTSA6ICclZCBtb250aHMnLFxuICAgICAgICAgICAgeSA6ICdhIHllYXInLFxuICAgICAgICAgICAgeXkgOiAnJWQgeWVhcnMnXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAofn4obnVtYmVyICUgMTAwIC8gMTApID09PSAxKSA/ICd0aCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAxKSA/ICdzdCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAyKSA/ICduZCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAzKSA/ICdyZCcgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5JZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIGVuSWwgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1pbCcsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFthdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdpbiAlcycsXG4gICAgICAgICAgICBwYXN0IDogJyVzIGFnbycsXG4gICAgICAgICAgICBzIDogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICAgICAgbSA6ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbSA6ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGggOiAnYW4gaG91cicsXG4gICAgICAgICAgICBoaCA6ICclZCBob3VycycsXG4gICAgICAgICAgICBkIDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkIDogJyVkIGRheXMnLFxuICAgICAgICAgICAgTSA6ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NIDogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5IDogJ2EgeWVhcicsXG4gICAgICAgICAgICB5eSA6ICclZCB5ZWFycydcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWwgOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh+fihudW1iZXIgJSAxMDAgLyAxMCkgPT09IDEpID8gJ3RoJyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDEpID8gJ3N0JyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDIpID8gJ25kJyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDMpID8gJ3JkJyA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZW5JbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIGVuTnogPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbi1ueicsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFMgOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1tUb21vcnJvdyBhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW0xhc3RdIGRkZGQgW2F0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnaW4gJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyBhZ28nLFxuICAgICAgICAgICAgcyA6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNlY29uZHMnLFxuICAgICAgICAgICAgbSA6ICdhIG1pbnV0ZScsXG4gICAgICAgICAgICBtbSA6ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGggOiAnYW4gaG91cicsXG4gICAgICAgICAgICBoaCA6ICclZCBob3VycycsXG4gICAgICAgICAgICBkIDogJ2EgZGF5JyxcbiAgICAgICAgICAgIGRkIDogJyVkIGRheXMnLFxuICAgICAgICAgICAgTSA6ICdhIG1vbnRoJyxcbiAgICAgICAgICAgIE1NIDogJyVkIG1vbnRocycsXG4gICAgICAgICAgICB5IDogJ2EgeWVhcicsXG4gICAgICAgICAgICB5eSA6ICclZCB5ZWFycydcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0fG5kfHJkfHRoKS8sXG4gICAgICAgIG9yZGluYWwgOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh+fihudW1iZXIgJSAxMDAgLyAxMCkgPT09IDEpID8gJ3RoJyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDEpID8gJ3N0JyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDIpID8gJ25kJyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDMpID8gJ3JkJyA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBlbk56O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgZW8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlbycsIHtcbiAgICAgICAgbW9udGhzIDogJ2phbnVhcm9fZmVicnVhcm9fbWFydG9fYXByaWxvX21ham9fanVuaW9fanVsaW9fYcWtZ3VzdG9fc2VwdGVtYnJvX29rdG9icm9fbm92ZW1icm9fZGVjZW1icm8nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ2phbl9mZWJfbWFyX2Fwcl9tYWpfanVuX2p1bF9hxa1nX3NlcF9va3Rfbm92X2RlYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnZGltYW7EiW9fbHVuZG9fbWFyZG9fbWVya3JlZG9fxLVhxa1kb192ZW5kcmVkb19zYWJhdG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnZGltX2x1bl9tYXJkX21lcmtfxLVhxa1fdmVuX3NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnZGlfbHVfbWFfbWVfxLVhX3ZlX3NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEwgOiAnRFstYSBkZV0gTU1NTSwgWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRFstYSBkZV0gTU1NTSwgWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIFtsYV0gRFstYSBkZV0gTU1NTSwgWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL1thcF1cXC50XFwubS9pLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dC5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSA9PT0gJ3AnO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzID4gMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdwLnQubS4nIDogJ1AuVC5NLic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ2EudC5tLicgOiAnQS5ULk0uJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1tIb2RpYcWtIGplXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1tNb3JnYcWtIGplXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFtqZV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbSGllcmHFrSBqZV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW3Bhc2ludGFdIGRkZGQgW2plXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAncG9zdCAlcycsXG4gICAgICAgICAgICBwYXN0IDogJ2FudGHFrSAlcycsXG4gICAgICAgICAgICBzIDogJ3Nla3VuZG9qJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNla3VuZG9qJyxcbiAgICAgICAgICAgIG0gOiAnbWludXRvJyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0b2onLFxuICAgICAgICAgICAgaCA6ICdob3JvJyxcbiAgICAgICAgICAgIGhoIDogJyVkIGhvcm9qJyxcbiAgICAgICAgICAgIGQgOiAndGFnbycsLy9uZSAnZGl1cm5vJywgxIlhciBlc3RhcyB1eml0YSBwb3IgcHJva3NpbXVtb1xuICAgICAgICAgICAgZGQgOiAnJWQgdGFnb2onLFxuICAgICAgICAgICAgTSA6ICdtb25hdG8nLFxuICAgICAgICAgICAgTU0gOiAnJWQgbW9uYXRvaicsXG4gICAgICAgICAgICB5IDogJ2phcm8nLFxuICAgICAgICAgICAgeXkgOiAnJWQgamFyb2onXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfWEvLFxuICAgICAgICBvcmRpbmFsIDogJyVkYScsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDcgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgbW9udGhzU2hvcnREb3QgPSAnZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0ID0gJ2VuZV9mZWJfbWFyX2Ficl9tYXlfanVuX2p1bF9hZ29fc2VwX29jdF9ub3ZfZGljJy5zcGxpdCgnXycpO1xuXG4gICAgdmFyIG1vbnRoc1BhcnNlID0gWy9eZW5lL2ksIC9eZmViL2ksIC9ebWFyL2ksIC9eYWJyL2ksIC9ebWF5L2ksIC9eanVuL2ksIC9eanVsL2ksIC9eYWdvL2ksIC9ec2VwL2ksIC9eb2N0L2ksIC9ebm92L2ksIC9eZGljL2ldO1xuICAgIHZhciBtb250aHNSZWdleCA9IC9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmV8ZW5lXFwuP3xmZWJcXC4/fG1hclxcLj98YWJyXFwuP3xtYXlcXC4/fGp1blxcLj98anVsXFwuP3xhZ29cXC4/fHNlcFxcLj98b2N0XFwuP3xub3ZcXC4/fGRpY1xcLj8pL2k7XG5cbiAgICB2YXIgZXNEbyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VzLWRvJywge1xuICAgICAgICBtb250aHMgOiAnZW5lcm9fZmVicmVyb19tYXJ6b19hYnJpbF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3Q7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8tTU1NLS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0W20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydERvdFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogL14oZW5lXFwuP3xmZWJcXC4/fG1hclxcLj98YWJyXFwuP3xtYXlcXC4/fGp1blxcLj98anVsXFwuP3xhZ29cXC4/fHNlcFxcLj98b2N0XFwuP3xub3ZcXC4/fGRpY1xcLj8pL2ksXG4gICAgICAgIG1vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHdlZWtkYXlzIDogJ2RvbWluZ29fbHVuZXNfbWFydGVzX21pw6lyY29sZXNfanVldmVzX3ZpZXJuZXNfc8OhYmFkbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdkb20uX2x1bi5fbWFyLl9tacOpLl9qdWUuX3ZpZS5fc8OhYi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ2RvX2x1X21hX21pX2p1X3ZpX3PDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTIDogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2hveSBhIGxhJyArICgodGhpcy5ob3VycygpICE9PSAxKSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0RGF5IDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW21hw7FhbmEgYSBsYScgKyAoKHRoaXMuaG91cnMoKSAhPT0gMSkgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dFdlZWsgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIFthIGxhJyArICgodGhpcy5ob3VycygpICE9PSAxKSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5IDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2F5ZXIgYSBsYScgKyAoKHRoaXMuaG91cnMoKSAhPT0gMSkgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWsgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbZWxdIGRkZGQgW3Bhc2FkbyBhIGxhJyArICgodGhpcy5ob3VycygpICE9PSAxKSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnZW4gJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICdoYWNlICVzJyxcbiAgICAgICAgICAgIHMgOiAndW5vcyBzZWd1bmRvcycsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWd1bmRvcycsXG4gICAgICAgICAgICBtIDogJ3VuIG1pbnV0bycsXG4gICAgICAgICAgICBtbSA6ICclZCBtaW51dG9zJyxcbiAgICAgICAgICAgIGggOiAndW5hIGhvcmEnLFxuICAgICAgICAgICAgaGggOiAnJWQgaG9yYXMnLFxuICAgICAgICAgICAgZCA6ICd1biBkw61hJyxcbiAgICAgICAgICAgIGRkIDogJyVkIGTDrWFzJyxcbiAgICAgICAgICAgIE0gOiAndW4gbWVzJyxcbiAgICAgICAgICAgIE1NIDogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHkgOiAndW4gYcOxbycsXG4gICAgICAgICAgICB5eSA6ICclZCBhw7FvcydcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZSA6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbCA6ICclZMK6JyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXNEbztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIG1vbnRoc1Nob3J0RG90ID0gJ2VuZS5fZmViLl9tYXIuX2Fici5fbWF5Ll9qdW4uX2p1bC5fYWdvLl9zZXAuX29jdC5fbm92Ll9kaWMuJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA9ICdlbmVfZmViX21hcl9hYnJfbWF5X2p1bl9qdWxfYWdvX3NlcF9vY3Rfbm92X2RpYycuc3BsaXQoJ18nKTtcblxuICAgIHZhciBtb250aHNQYXJzZSA9IFsvXmVuZS9pLCAvXmZlYi9pLCAvXm1hci9pLCAvXmFici9pLCAvXm1heS9pLCAvXmp1bi9pLCAvXmp1bC9pLCAvXmFnby9pLCAvXnNlcC9pLCAvXm9jdC9pLCAvXm5vdi9pLCAvXmRpYy9pXTtcbiAgICB2YXIgbW9udGhzUmVnZXggPSAvXihlbmVyb3xmZWJyZXJvfG1hcnpvfGFicmlsfG1heW98anVuaW98anVsaW98YWdvc3RvfHNlcHRpZW1icmV8b2N0dWJyZXxub3ZpZW1icmV8ZGljaWVtYnJlfGVuZVxcLj98ZmViXFwuP3xtYXJcXC4/fGFiclxcLj98bWF5XFwuP3xqdW5cXC4/fGp1bFxcLj98YWdvXFwuP3xzZXBcXC4/fG9jdFxcLj98bm92XFwuP3xkaWNcXC4/KS9pO1xuXG4gICAgdmFyIGVzVXMgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdlcy11cycsIHtcbiAgICAgICAgbW9udGhzIDogJ2VuZXJvX2ZlYnJlcm9fbWFyem9fYWJyaWxfbWF5b19qdW5pb19qdWxpb19hZ29zdG9fc2VwdGllbWJyZV9vY3R1YnJlX25vdmllbWJyZV9kaWNpZW1icmUnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogZnVuY3Rpb24gKG0sIGZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0RG90O1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvLU1NTS0vLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3RbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzUmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IC9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmUpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IC9eKGVuZVxcLj98ZmViXFwuP3xtYXJcXC4/fGFiclxcLj98bWF5XFwuP3xqdW5cXC4/fGp1bFxcLj98YWdvXFwuP3xzZXBcXC4/fG9jdFxcLj98bm92XFwuP3xkaWNcXC4/KS9pLFxuICAgICAgICBtb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIGxvbmdNb250aHNQYXJzZTogbW9udGhzUGFyc2UsXG4gICAgICAgIHNob3J0TW9udGhzUGFyc2U6IG1vbnRoc1BhcnNlLFxuICAgICAgICB3ZWVrZGF5cyA6ICdkb21pbmdvX2x1bmVzX21hcnRlc19tacOpcmNvbGVzX2p1ZXZlc192aWVybmVzX3PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnZG9tLl9sdW4uX21hci5fbWnDqS5fanVlLl92aWUuX3PDoWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdkb19sdV9tYV9taV9qdV92aV9zw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUyA6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTCA6ICdNTS9ERC9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBoOm1tIEEnXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tob3kgYSBsYScgKyAoKHRoaXMuaG91cnMoKSAhPT0gMSkgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dERheSA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1ttYcOxYW5hIGEgbGEnICsgKCh0aGlzLmhvdXJzKCkgIT09IDEpID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHRXZWVrIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBbYSBsYScgKyAoKHRoaXMuaG91cnMoKSAhPT0gMSkgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheSA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1theWVyIGEgbGEnICsgKCh0aGlzLmhvdXJzKCkgIT09IDEpID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2VsXSBkZGRkIFtwYXNhZG8gYSBsYScgKyAoKHRoaXMuaG91cnMoKSAhPT0gMSkgPyAncycgOiAnJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ2VuICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnaGFjZSAlcycsXG4gICAgICAgICAgICBzIDogJ3Vub3Mgc2VndW5kb3MnLFxuICAgICAgICAgICAgc3MgOiAnJWQgc2VndW5kb3MnLFxuICAgICAgICAgICAgbSA6ICd1biBtaW51dG8nLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXRvcycsXG4gICAgICAgICAgICBoIDogJ3VuYSBob3JhJyxcbiAgICAgICAgICAgIGhoIDogJyVkIGhvcmFzJyxcbiAgICAgICAgICAgIGQgOiAndW4gZMOtYScsXG4gICAgICAgICAgICBkZCA6ICclZCBkw61hcycsXG4gICAgICAgICAgICBNIDogJ3VuIG1lcycsXG4gICAgICAgICAgICBNTSA6ICclZCBtZXNlcycsXG4gICAgICAgICAgICB5IDogJ3VuIGHDsW8nLFxuICAgICAgICAgICAgeXkgOiAnJWQgYcOxb3MnXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2UgOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWwgOiAnJWTCuicsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDYgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGVzVXM7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBtb250aHNTaG9ydERvdCA9ICdlbmUuX2ZlYi5fbWFyLl9hYnIuX21heS5fanVuLl9qdWwuX2Fnby5fc2VwLl9vY3QuX25vdi5fZGljLicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgPSAnZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMnLnNwbGl0KCdfJyk7XG5cbiAgICB2YXIgbW9udGhzUGFyc2UgPSBbL15lbmUvaSwgL15mZWIvaSwgL15tYXIvaSwgL15hYnIvaSwgL15tYXkvaSwgL15qdW4vaSwgL15qdWwvaSwgL15hZ28vaSwgL15zZXAvaSwgL15vY3QvaSwgL15ub3YvaSwgL15kaWMvaV07XG4gICAgdmFyIG1vbnRoc1JlZ2V4ID0gL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZXxlbmVcXC4/fGZlYlxcLj98bWFyXFwuP3xhYnJcXC4/fG1heVxcLj98anVuXFwuP3xqdWxcXC4/fGFnb1xcLj98c2VwXFwuP3xvY3RcXC4/fG5vdlxcLj98ZGljXFwuPykvaTtcblxuICAgIHZhciBlcyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2VzJywge1xuICAgICAgICBtb250aHMgOiAnZW5lcm9fZmVicmVyb19tYXJ6b19hYnJpbF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnREb3Q7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8tTU1NLS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0W20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydERvdFttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNSZWdleCA6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4IDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1N0cmljdFJlZ2V4IDogL14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleCA6IC9eKGVuZVxcLj98ZmViXFwuP3xtYXJcXC4/fGFiclxcLj98bWF5XFwuP3xqdW5cXC4/fGp1bFxcLj98YWdvXFwuP3xzZXBcXC4/fG9jdFxcLj98bm92XFwuP3xkaWNcXC4/KS9pLFxuICAgICAgICBtb250aHNQYXJzZSA6IG1vbnRoc1BhcnNlLFxuICAgICAgICBsb25nTW9udGhzUGFyc2UgOiBtb250aHNQYXJzZSxcbiAgICAgICAgc2hvcnRNb250aHNQYXJzZSA6IG1vbnRoc1BhcnNlLFxuICAgICAgICB3ZWVrZGF5cyA6ICdkb21pbmdvX2x1bmVzX21hcnRlc19tacOpcmNvbGVzX2p1ZXZlc192aWVybmVzX3PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnZG9tLl9sdW4uX21hci5fbWnDqS5fanVlLl92aWUuX3PDoWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdkb19sdV9tYV9taV9qdV92aV9zw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbaG95IGEgbGEnICsgKCh0aGlzLmhvdXJzKCkgIT09IDEpID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5leHREYXkgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbbWHDsWFuYSBhIGxhJyArICgodGhpcy5ob3VycygpICE9PSAxKSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuZXh0V2VlayA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RkZGQgW2EgbGEnICsgKCh0aGlzLmhvdXJzKCkgIT09IDEpID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXkgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbYXllciBhIGxhJyArICgodGhpcy5ob3VycygpICE9PSAxKSA/ICdzJyA6ICcnKSArICddIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlayA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1tlbF0gZGRkZCBbcGFzYWRvIGEgbGEnICsgKCh0aGlzLmhvdXJzKCkgIT09IDEpID8gJ3MnIDogJycpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdlbiAlcycsXG4gICAgICAgICAgICBwYXN0IDogJ2hhY2UgJXMnLFxuICAgICAgICAgICAgcyA6ICd1bm9zIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIG0gOiAndW4gbWludXRvJyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0b3MnLFxuICAgICAgICAgICAgaCA6ICd1bmEgaG9yYScsXG4gICAgICAgICAgICBoaCA6ICclZCBob3JhcycsXG4gICAgICAgICAgICBkIDogJ3VuIGTDrWEnLFxuICAgICAgICAgICAgZGQgOiAnJWQgZMOtYXMnLFxuICAgICAgICAgICAgTSA6ICd1biBtZXMnLFxuICAgICAgICAgICAgTU0gOiAnJWQgbWVzZXMnLFxuICAgICAgICAgICAgeSA6ICd1biBhw7FvJyxcbiAgICAgICAgICAgIHl5IDogJyVkIGHDsW9zJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlIDogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsIDogJyVkwronLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBlcztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgICdzJyA6IFsnbcO1bmUgc2VrdW5kaScsICdtw7VuaSBzZWt1bmQnLCAncGFhciBzZWt1bmRpdCddLFxuICAgICAgICAgICAgJ3NzJzogW251bWJlciArICdzZWt1bmRpJywgbnVtYmVyICsgJ3Nla3VuZGl0J10sXG4gICAgICAgICAgICAnbScgOiBbJ8O8aGUgbWludXRpJywgJ8O8a3MgbWludXQnXSxcbiAgICAgICAgICAgICdtbSc6IFtudW1iZXIgKyAnIG1pbnV0aScsIG51bWJlciArICcgbWludXRpdCddLFxuICAgICAgICAgICAgJ2gnIDogWyfDvGhlIHR1bm5pJywgJ3R1bmQgYWVnYScsICfDvGtzIHR1bmQnXSxcbiAgICAgICAgICAgICdoaCc6IFtudW1iZXIgKyAnIHR1bm5pJywgbnVtYmVyICsgJyB0dW5kaSddLFxuICAgICAgICAgICAgJ2QnIDogWyfDvGhlIHDDpGV2YScsICfDvGtzIHDDpGV2J10sXG4gICAgICAgICAgICAnTScgOiBbJ2t1dSBhamEnLCAna3V1IGFlZ2EnLCAnw7xrcyBrdXUnXSxcbiAgICAgICAgICAgICdNTSc6IFtudW1iZXIgKyAnIGt1dScsIG51bWJlciArICcga3V1ZCddLFxuICAgICAgICAgICAgJ3knIDogWyfDvGhlIGFhc3RhJywgJ2Fhc3RhJywgJ8O8a3MgYWFzdGEnXSxcbiAgICAgICAgICAgICd5eSc6IFtudW1iZXIgKyAnIGFhc3RhJywgbnVtYmVyICsgJyBhYXN0YXQnXVxuICAgICAgICB9O1xuICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdFtrZXldWzJdID8gZm9ybWF0W2tleV1bMl0gOiBmb3JtYXRba2V5XVsxXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyBmb3JtYXRba2V5XVswXSA6IGZvcm1hdFtrZXldWzFdO1xuICAgIH1cblxuICAgIHZhciBldCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2V0Jywge1xuICAgICAgICBtb250aHMgICAgICAgIDogJ2phYW51YXJfdmVlYnJ1YXJfbcOkcnRzX2FwcmlsbF9tYWlfanV1bmlfanV1bGlfYXVndXN0X3NlcHRlbWJlcl9va3Rvb2Jlcl9ub3ZlbWJlcl9kZXRzZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0ICAgOiAnamFhbl92ZWVicl9tw6RydHNfYXByX21haV9qdXVuaV9qdXVsaV9hdWdfc2VwdF9va3Rfbm92X2RldHMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzICAgICAgOiAncMO8aGFww6Rldl9lc21hc3DDpGV2X3RlaXNpcMOkZXZfa29sbWFww6Rldl9uZWxqYXDDpGV2X3JlZWRlX2xhdXDDpGV2Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ1BfRV9UX0tfTl9SX0wnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluICAgOiAnUF9FX1RfS19OX1JfTCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCAgIDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTCAgICA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMICAgOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCAgOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBELiBNTU1NIFlZWVkgSDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5ICA6ICdbVMOkbmEsXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5ICA6ICdbSG9tbWUsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdbSsOkcmdtaW5lXSBkZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgIDogJ1tFaWxlLF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW0VlbG1pbmVdIGRkZGQgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJyVzIHDDpHJhc3QnLFxuICAgICAgICAgICAgcGFzdCAgIDogJyVzIHRhZ2FzaScsXG4gICAgICAgICAgICBzICAgICAgOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgc3MgICAgIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG0gICAgICA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtbSAgICAgOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaCAgICAgIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGhoICAgICA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkICAgICAgOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZGQgICAgIDogJyVkIHDDpGV2YScsXG4gICAgICAgICAgICBNICAgICAgOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU0gICAgIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHkgICAgICA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eSAgICAgOiBwcm9jZXNzUmVsYXRpdmVUaW1lXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWwgOiAnJWQuJyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZXQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBldSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2V1Jywge1xuICAgICAgICBtb250aHMgOiAndXJ0YXJyaWxhX290c2FpbGFfbWFydHhvYV9hcGlyaWxhX21haWF0emFfZWthaW5hX3V6dGFpbGFfYWJ1enR1YV9pcmFpbGFfdXJyaWFfYXphcm9hX2FiZW5kdWEnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ3VydC5fb3RzLl9tYXIuX2FwaS5fbWFpLl9la2EuX3V6dC5fYWJ1Ll9pcmEuX3Vyci5fYXphLl9hYmUuJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiAnaWdhbmRlYV9hc3RlbGVoZW5hX2FzdGVhcnRlYV9hc3RlYXprZW5hX29zdGVndW5hX29zdGlyYWxhX2xhcnVuYmF0YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdpZy5fYWwuX2FyLl9hei5fb2cuX29sLl9sci4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ2lnX2FsX2FyX2F6X29nX29sX2xyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEwgOiAnWVlZWVtrb10gTU1NTVtyZW5dIERbYV0nLFxuICAgICAgICAgICAgTExMIDogJ1lZWVlba29dIE1NTU1bcmVuXSBEW2FdIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgWVlZWVtrb10gTU1NTVtyZW5dIERbYV0gSEg6bW0nLFxuICAgICAgICAgICAgbCA6ICdZWVlZLU0tRCcsXG4gICAgICAgICAgICBsbCA6ICdZWVlZW2tvXSBNTU0gRFthXScsXG4gICAgICAgICAgICBsbGwgOiAnWVlZWVtrb10gTU1NIERbYV0gSEg6bW0nLFxuICAgICAgICAgICAgbGxsbCA6ICdkZGQsIFlZWVlba29dIE1NTSBEW2FdIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW2dhdXJdIExUW2V0YW5dJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW2JpaGFyXSBMVFtldGFuXScsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIExUW2V0YW5dJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW2F0em9dIExUW2V0YW5dJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1thdXJyZWtvXSBkZGRkIExUW2V0YW5dJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICclcyBiYXJydScsXG4gICAgICAgICAgICBwYXN0IDogJ2R1ZWxhICVzJyxcbiAgICAgICAgICAgIHMgOiAnc2VndW5kbyBiYXR6dWsnLFxuICAgICAgICAgICAgc3MgOiAnJWQgc2VndW5kbycsXG4gICAgICAgICAgICBtIDogJ21pbnV0dSBiYXQnLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXR1JyxcbiAgICAgICAgICAgIGggOiAnb3JkdSBiYXQnLFxuICAgICAgICAgICAgaGggOiAnJWQgb3JkdScsXG4gICAgICAgICAgICBkIDogJ2VndW4gYmF0JyxcbiAgICAgICAgICAgIGRkIDogJyVkIGVndW4nLFxuICAgICAgICAgICAgTSA6ICdoaWxhYmV0ZSBiYXQnLFxuICAgICAgICAgICAgTU0gOiAnJWQgaGlsYWJldGUnLFxuICAgICAgICAgICAgeSA6ICd1cnRlIGJhdCcsXG4gICAgICAgICAgICB5eSA6ICclZCB1cnRlJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsIDogJyVkLicsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDcgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGV1O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAnMSc6ICfbsScsXG4gICAgICAgICcyJzogJ9uyJyxcbiAgICAgICAgJzMnOiAn27MnLFxuICAgICAgICAnNCc6ICfbtCcsXG4gICAgICAgICc1JzogJ9u1JyxcbiAgICAgICAgJzYnOiAn27YnLFxuICAgICAgICAnNyc6ICfbtycsXG4gICAgICAgICc4JzogJ9u4JyxcbiAgICAgICAgJzknOiAn27knLFxuICAgICAgICAnMCc6ICfbsCdcbiAgICB9LCBudW1iZXJNYXAgPSB7XG4gICAgICAgICfbsSc6ICcxJyxcbiAgICAgICAgJ9uyJzogJzInLFxuICAgICAgICAn27MnOiAnMycsXG4gICAgICAgICfbtCc6ICc0JyxcbiAgICAgICAgJ9u1JzogJzUnLFxuICAgICAgICAn27YnOiAnNicsXG4gICAgICAgICfbtyc6ICc3JyxcbiAgICAgICAgJ9u4JzogJzgnLFxuICAgICAgICAn27knOiAnOScsXG4gICAgICAgICfbsCc6ICcwJ1xuICAgIH07XG5cbiAgICB2YXIgZmEgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmYScsIHtcbiAgICAgICAgbW9udGhzIDogJ9qY2KfZhtmI24zZh1/ZgdmI2LHbjNmHX9mF2KfYsdizX9ii2YjYsduM2YRf2YXZh1/amNmI2KbZhl/amNmI2KbbjNmHX9in2YjYql/Ys9m+2KrYp9mF2KjYsV/Yp9qp2KrYqNixX9mG2YjYp9mF2KjYsV/Yr9iz2KfZhdio2LEnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ9qY2KfZhtmI24zZh1/ZgdmI2LHbjNmHX9mF2KfYsdizX9ii2YjYsduM2YRf2YXZh1/amNmI2KbZhl/amNmI2KbbjNmHX9in2YjYql/Ys9m+2KrYp9mF2KjYsV/Yp9qp2KrYqNixX9mG2YjYp9mF2KjYsV/Yr9iz2KfZhdio2LEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ9uM2qlcXHUyMDBj2LTZhtio2Ydf2K/ZiNi02YbYqNmHX9iz2YdcXHUyMDBj2LTZhtio2Ydf2obZh9in2LHYtNmG2KjZh1/ZvtmG2KxcXHUyMDBj2LTZhtio2Ydf2KzZhdi52Ydf2LTZhtio2YcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn24zaqVxcdTIwMGPYtNmG2KjZh1/Yr9mI2LTZhtio2Ydf2LPZh1xcdTIwMGPYtNmG2KjZh1/ahtmH2KfYsdi02YbYqNmHX9m+2YbYrFxcdTIwMGPYtNmG2KjZh1/YrNmF2LnZh1/YtNmG2KjZhycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn24xf2K9f2LNf2oZf2b5f2Kxf2LQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9mC2KjZhCDYp9iyINi42YfYsXzYqNi52K8g2KfYsiDYuNmH2LEvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAv2KjYudivINin2LIg2LjZh9ixLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfZgtio2YQg2KfYsiDYuNmH2LEnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9io2LnYryDYp9iyINi42YfYsSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdb2KfZhdix2YjYsiDYs9in2LnYql0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdb2YHYsdiv2Kcg2LPYp9i52KpdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW9iz2KfYudiqXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vYr9uM2LHZiNiyINiz2KfYudiqXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdkZGRkIFvZvtuM2LRdIFvYs9in2LnYql0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ9iv2LEgJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyDZvtuM2LQnLFxuICAgICAgICAgICAgcyA6ICfahtmG2K8g2KvYp9mG24zZhycsXG4gICAgICAgICAgICBzcyA6ICfYq9in2YbbjNmHIGQlJyxcbiAgICAgICAgICAgIG0gOiAn24zaqSDYr9mC24zZgtmHJyxcbiAgICAgICAgICAgIG1tIDogJyVkINiv2YLbjNmC2YcnLFxuICAgICAgICAgICAgaCA6ICfbjNqpINiz2KfYudiqJyxcbiAgICAgICAgICAgIGhoIDogJyVkINiz2KfYudiqJyxcbiAgICAgICAgICAgIGQgOiAn24zaqSDYsdmI2LInLFxuICAgICAgICAgICAgZGQgOiAnJWQg2LHZiNiyJyxcbiAgICAgICAgICAgIE0gOiAn24zaqSDZhdin2YcnLFxuICAgICAgICAgICAgTU0gOiAnJWQg2YXYp9mHJyxcbiAgICAgICAgICAgIHkgOiAn24zaqSDYs9in2YQnLFxuICAgICAgICAgICAgeXkgOiAnJWQg2LPYp9mEJ1xuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b27At27ldL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSkucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KS5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3ZhS8sXG4gICAgICAgIG9yZGluYWwgOiAnJWTZhScsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogMTIgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgbnVtYmVyc1Bhc3QgPSAnbm9sbGEgeWtzaSBrYWtzaSBrb2xtZSBuZWxqw6Qgdmlpc2kga3V1c2kgc2VpdHNlbcOkbiBrYWhkZWtzYW4geWhkZWtzw6RuJy5zcGxpdCgnICcpLFxuICAgICAgICBudW1iZXJzRnV0dXJlID0gW1xuICAgICAgICAgICAgJ25vbGxhJywgJ3loZGVuJywgJ2thaGRlbicsICdrb2xtZW4nLCAnbmVsasOkbicsICd2aWlkZW4nLCAna3V1ZGVuJyxcbiAgICAgICAgICAgIG51bWJlcnNQYXN0WzddLCBudW1iZXJzUGFzdFs4XSwgbnVtYmVyc1Bhc3RbOV1cbiAgICAgICAgXTtcbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSAnJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdtdXV0YW1hbiBzZWt1bm5pbicgOiAnbXV1dGFtYSBzZWt1bnRpJztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAnc2VrdW5uaW4nIDogJ3Nla3VudGlhJztcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdtaW51dXRpbicgOiAnbWludXV0dGknO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzRnV0dXJlID8gJ21pbnV1dGluJyA6ICdtaW51dXR0aWEnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ3R1bm5pbicgOiAndHVudGknO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzRnV0dXJlID8gJ3R1bm5pbicgOiAndHVudGlhJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdww6RpdsOkbicgOiAncMOkaXbDpCc7XG4gICAgICAgICAgICBjYXNlICdkZCc6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNGdXR1cmUgPyAncMOkaXbDpG4nIDogJ3DDpGl2w6TDpCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNGdXR1cmUgPyAna3V1a2F1ZGVuJyA6ICdrdXVrYXVzaSc7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaXNGdXR1cmUgPyAna3V1a2F1ZGVuJyA6ICdrdXVrYXV0dGEnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAneSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gJ3Z1b2RlbicgOiAndnVvc2knO1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGlzRnV0dXJlID8gJ3Z1b2RlbicgOiAndnVvdHRhJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgPSB2ZXJiYWxOdW1iZXIobnVtYmVyLCBpc0Z1dHVyZSkgKyAnICcgKyByZXN1bHQ7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZlcmJhbE51bWJlcihudW1iZXIsIGlzRnV0dXJlKSB7XG4gICAgICAgIHJldHVybiBudW1iZXIgPCAxMCA/IChpc0Z1dHVyZSA/IG51bWJlcnNGdXR1cmVbbnVtYmVyXSA6IG51bWJlcnNQYXN0W251bWJlcl0pIDogbnVtYmVyO1xuICAgIH1cblxuICAgIHZhciBmaSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZpJywge1xuICAgICAgICBtb250aHMgOiAndGFtbWlrdXVfaGVsbWlrdXVfbWFhbGlza3V1X2h1aHRpa3V1X3RvdWtva3V1X2tlc8Oka3V1X2hlaW7DpGt1dV9lbG9rdXVfc3l5c2t1dV9sb2tha3V1X21hcnJhc2t1dV9qb3VsdWt1dScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAndGFtbWlfaGVsbWlfbWFhbGlzX2h1aHRpX3RvdWtvX2tlc8OkX2hlaW7DpF9lbG9fc3l5c19sb2thX21hcnJhc19qb3VsdScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnc3VubnVudGFpX21hYW5hbnRhaV90aWlzdGFpX2tlc2tpdmlpa2tvX3RvcnN0YWlfcGVyamFudGFpX2xhdWFudGFpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ3N1X21hX3RpX2tlX3RvX3BlX2xhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdzdV9tYV90aV9rZV90b19wZV9sYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISC5tbScsXG4gICAgICAgICAgICBMVFMgOiAnSEgubW0uc3MnLFxuICAgICAgICAgICAgTCA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0RvIE1NTU1bdGFdIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0RvIE1NTU1bdGFdIFlZWVksIFtrbG9dIEhILm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRG8gTU1NTVt0YV0gWVlZWSwgW2tsb10gSEgubW0nLFxuICAgICAgICAgICAgbCA6ICdELk0uWVlZWScsXG4gICAgICAgICAgICBsbCA6ICdEbyBNTU0gWVlZWScsXG4gICAgICAgICAgICBsbGwgOiAnRG8gTU1NIFlZWVksIFtrbG9dIEhILm1tJyxcbiAgICAgICAgICAgIGxsbGwgOiAnZGRkLCBEbyBNTU0gWVlZWSwgW2tsb10gSEgubW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdbdMOkbsOkw6RuXSBba2xvXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1todW9tZW5uYV0gW2tsb10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBba2xvXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1tlaWxlbl0gW2tsb10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW3ZpaW1lXSBkZGRkW25hXSBba2xvXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnJXMgcMOkw6RzdMOkJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgc2l0dGVuJyxcbiAgICAgICAgICAgIHMgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBzcyA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG0gOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbSA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGggOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoaCA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkZCA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE0gOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTSA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHkgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5eSA6IHRyYW5zbGF0ZVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsIDogJyVkLicsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgZm8gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmbycsIHtcbiAgICAgICAgbW9udGhzIDogJ2phbnVhcl9mZWJydWFyX21hcnNfYXByw61sX21haV9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2Rlc2VtYmVyJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdqYW5fZmViX21hcl9hcHJfbWFpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnc3VubnVkYWd1cl9tw6FuYWRhZ3VyX3TDvXNkYWd1cl9taWt1ZGFndXJfaMOzc2RhZ3VyX2Zyw61nZ2phZGFndXJfbGV5Z2FyZGFndXInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnc3VuX23DoW5fdMO9c19taWtfaMOzc19mcsOtX2xleScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnc3VfbcOhX3TDvV9taV9ow7NfZnJfbGUnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkIEQuIE1NTU0sIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdbw40gZGFnIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbw40gbW9yZ2luIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBba2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vDjSBnasOhciBrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1tzw63DsHN0dV0gZGRkZCBba2xdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICd1bSAlcycsXG4gICAgICAgICAgICBwYXN0IDogJyVzIHPDrcOwYW5pJyxcbiAgICAgICAgICAgIHMgOiAnZsOhIHNla3VuZCcsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWt1bmRpcicsXG4gICAgICAgICAgICBtIDogJ2VpbiBtaW51dHR1cicsXG4gICAgICAgICAgICBtbSA6ICclZCBtaW51dHRpcicsXG4gICAgICAgICAgICBoIDogJ2VpbiB0w61taScsXG4gICAgICAgICAgICBoaCA6ICclZCB0w61tYXInLFxuICAgICAgICAgICAgZCA6ICdlaW4gZGFndXInLFxuICAgICAgICAgICAgZGQgOiAnJWQgZGFnYXInLFxuICAgICAgICAgICAgTSA6ICdlaW4gbcOhbmHDsHVyJyxcbiAgICAgICAgICAgIE1NIDogJyVkIG3DoW5hw7BpcicsXG4gICAgICAgICAgICB5IDogJ2VpdHQgw6FyJyxcbiAgICAgICAgICAgIHl5IDogJyVkIMOhcidcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbCA6ICclZC4nLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmbztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIGZyQ2EgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdmci1jYScsIHtcbiAgICAgICAgbW9udGhzIDogJ2phbnZpZXJfZsOpdnJpZXJfbWFyc19hdnJpbF9tYWlfanVpbl9qdWlsbGV0X2Fvw7t0X3NlcHRlbWJyZV9vY3RvYnJlX25vdmVtYnJlX2TDqWNlbWJyZScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnamFudi5fZsOpdnIuX21hcnNfYXZyLl9tYWlfanVpbl9qdWlsLl9hb8O7dF9zZXB0Ll9vY3QuX25vdi5fZMOpYy4nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICB3ZWVrZGF5cyA6ICdkaW1hbmNoZV9sdW5kaV9tYXJkaV9tZXJjcmVkaV9qZXVkaV92ZW5kcmVkaV9zYW1lZGknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnZGltLl9sdW4uX21hci5fbWVyLl9qZXUuX3Zlbi5fc2FtLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnZGlfbHVfbWFfbWVfamVfdmVfc2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW0F1am91cmTigJlodWkgw6BdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW0RlbWFpbiDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBbw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW0hpZXIgw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ2RkZGQgW2Rlcm5pZXIgw6BdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdkYW5zICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnaWwgeSBhICVzJyxcbiAgICAgICAgICAgIHMgOiAncXVlbHF1ZXMgc2Vjb25kZXMnLFxuICAgICAgICAgICAgc3MgOiAnJWQgc2Vjb25kZXMnLFxuICAgICAgICAgICAgbSA6ICd1bmUgbWludXRlJyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0ZXMnLFxuICAgICAgICAgICAgaCA6ICd1bmUgaGV1cmUnLFxuICAgICAgICAgICAgaGggOiAnJWQgaGV1cmVzJyxcbiAgICAgICAgICAgIGQgOiAndW4gam91cicsXG4gICAgICAgICAgICBkZCA6ICclZCBqb3VycycsXG4gICAgICAgICAgICBNIDogJ3VuIG1vaXMnLFxuICAgICAgICAgICAgTU0gOiAnJWQgbW9pcycsXG4gICAgICAgICAgICB5IDogJ3VuIGFuJyxcbiAgICAgICAgICAgIHl5IDogJyVkIGFucydcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KGVyfGUpLyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICAvLyBXb3JkcyB3aXRoIG1hc2N1bGluZSBncmFtbWF0aWNhbCBnZW5kZXI6IG1vaXMsIHRyaW1lc3RyZSwgam91clxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnUSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChudW1iZXIgPT09IDEgPyAnZXInIDogJ2UnKTtcblxuICAgICAgICAgICAgICAgIC8vIFdvcmRzIHdpdGggZmVtaW5pbmUgZ3JhbW1hdGljYWwgZ2VuZGVyOiBzZW1haW5lXG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAobnVtYmVyID09PSAxID8gJ3JlJyA6ICdlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmckNhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgZnJDaCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2ZyLWNoJywge1xuICAgICAgICBtb250aHMgOiAnamFudmllcl9mw6l2cmllcl9tYXJzX2F2cmlsX21haV9qdWluX2p1aWxsZXRfYW/Du3Rfc2VwdGVtYnJlX29jdG9icmVfbm92ZW1icmVfZMOpY2VtYnJlJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdqYW52Ll9mw6l2ci5fbWFyc19hdnIuX21haV9qdWluX2p1aWwuX2Fvw7t0X3NlcHQuX29jdC5fbm92Ll9kw6ljLicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzIDogJ2RpbWFuY2hlX2x1bmRpX21hcmRpX21lcmNyZWRpX2pldWRpX3ZlbmRyZWRpX3NhbWVkaScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdkaW0uX2x1bi5fbWFyLl9tZXIuX2pldS5fdmVuLl9zYW0uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdkaV9sdV9tYV9tZV9qZV92ZV9zYScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdbQXVqb3VyZOKAmWh1aSDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbRGVtYWluIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFvDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbSGllciDDoF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnZGRkZCBbZGVybmllciDDoF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ2RhbnMgJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICdpbCB5IGEgJXMnLFxuICAgICAgICAgICAgcyA6ICdxdWVscXVlcyBzZWNvbmRlcycsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWNvbmRlcycsXG4gICAgICAgICAgICBtIDogJ3VuZSBtaW51dGUnLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXRlcycsXG4gICAgICAgICAgICBoIDogJ3VuZSBoZXVyZScsXG4gICAgICAgICAgICBoaCA6ICclZCBoZXVyZXMnLFxuICAgICAgICAgICAgZCA6ICd1biBqb3VyJyxcbiAgICAgICAgICAgIGRkIDogJyVkIGpvdXJzJyxcbiAgICAgICAgICAgIE0gOiAndW4gbW9pcycsXG4gICAgICAgICAgICBNTSA6ICclZCBtb2lzJyxcbiAgICAgICAgICAgIHkgOiAndW4gYW4nLFxuICAgICAgICAgICAgeXkgOiAnJWQgYW5zJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZXJ8ZSkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIC8vIFdvcmRzIHdpdGggbWFzY3VsaW5lIGdyYW1tYXRpY2FsIGdlbmRlcjogbW9pcywgdHJpbWVzdHJlLCBqb3VyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdRJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKG51bWJlciA9PT0gMSA/ICdlcicgOiAnZScpO1xuXG4gICAgICAgICAgICAgICAgLy8gV29yZHMgd2l0aCBmZW1pbmluZSBncmFtbWF0aWNhbCBnZW5kZXI6IHNlbWFpbmVcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChudW1iZXIgPT09IDEgPyAncmUnIDogJ2UnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZnJDaDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIGZyID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZnInLCB7XG4gICAgICAgIG1vbnRocyA6ICdqYW52aWVyX2bDqXZyaWVyX21hcnNfYXZyaWxfbWFpX2p1aW5fanVpbGxldF9hb8O7dF9zZXB0ZW1icmVfb2N0b2JyZV9ub3ZlbWJyZV9kw6ljZW1icmUnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ2phbnYuX2bDqXZyLl9tYXJzX2F2ci5fbWFpX2p1aW5fanVpbC5fYW/Du3Rfc2VwdC5fb2N0Ll9ub3YuX2TDqWMuJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiAnZGltYW5jaGVfbHVuZGlfbWFyZGlfbWVyY3JlZGlfamV1ZGlfdmVuZHJlZGlfc2FtZWRpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ2RpbS5fbHVuLl9tYXIuX21lci5famV1Ll92ZW4uX3NhbS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ2RpX2x1X21hX21lX2plX3ZlX3NhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1tBdWpvdXJk4oCZaHVpIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1tEZW1haW4gw6BdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW8OgXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1tIaWVyIMOgXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdkZGRkIFtkZXJuaWVyIMOgXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnZGFucyAlcycsXG4gICAgICAgICAgICBwYXN0IDogJ2lsIHkgYSAlcycsXG4gICAgICAgICAgICBzIDogJ3F1ZWxxdWVzIHNlY29uZGVzJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNlY29uZGVzJyxcbiAgICAgICAgICAgIG0gOiAndW5lIG1pbnV0ZScsXG4gICAgICAgICAgICBtbSA6ICclZCBtaW51dGVzJyxcbiAgICAgICAgICAgIGggOiAndW5lIGhldXJlJyxcbiAgICAgICAgICAgIGhoIDogJyVkIGhldXJlcycsXG4gICAgICAgICAgICBkIDogJ3VuIGpvdXInLFxuICAgICAgICAgICAgZGQgOiAnJWQgam91cnMnLFxuICAgICAgICAgICAgTSA6ICd1biBtb2lzJyxcbiAgICAgICAgICAgIE1NIDogJyVkIG1vaXMnLFxuICAgICAgICAgICAgeSA6ICd1biBhbicsXG4gICAgICAgICAgICB5eSA6ICclZCBhbnMnXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShlcnwpLyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBSZXR1cm4gJ2UnIHdoZW4gZGF5IG9mIG1vbnRoID4gMS4gTW92ZSB0aGlzIGNhc2UgaW5zaWRlXG4gICAgICAgICAgICAgICAgLy8gYmxvY2sgZm9yIG1hc2N1bGluZSB3b3JkcyBiZWxvdy5cbiAgICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvaXNzdWVzLzMzNzVcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChudW1iZXIgPT09IDEgPyAnZXInIDogJycpO1xuXG4gICAgICAgICAgICAgICAgLy8gV29yZHMgd2l0aCBtYXNjdWxpbmUgZ3JhbW1hdGljYWwgZ2VuZGVyOiBtb2lzLCB0cmltZXN0cmUsIGpvdXJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1EnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAobnVtYmVyID09PSAxID8gJ2VyJyA6ICdlJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBXb3JkcyB3aXRoIGZlbWluaW5lIGdyYW1tYXRpY2FsIGdlbmRlcjogc2VtYWluZVxuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKG51bWJlciA9PT0gMSA/ICdyZScgOiAnZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmcjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIG1vbnRoc1Nob3J0V2l0aERvdHMgPSAnamFuLl9mZWIuX21ydC5fYXByLl9tYWlfanVuLl9qdWwuX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVzLicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnRXaXRob3V0RG90cyA9ICdqYW5fZmViX21ydF9hcHJfbWFpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2Rlcycuc3BsaXQoJ18nKTtcblxuICAgIHZhciBmeSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2Z5Jywge1xuICAgICAgICBtb250aHMgOiAnamFubmV3YXJpc19mZWJyZXdhcmlzX21hYXJ0X2FwcmlsX21hYWllX2p1bnlfanVseV9hdWd1c3R1c19zZXB0aW1iZXJfb2t0b2Jlcl9ub3ZpbWJlcl9kZXNpbWJlcicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiBmdW5jdGlvbiAobSwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRoRG90cztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoLy1NTU0tLy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRob3V0RG90c1ttLm1vbnRoKCldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU2hvcnRXaXRoRG90c1ttLm1vbnRoKCldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiAnc25laW5fbW9hbmRlaV90aWlzZGVpX3dvYW5zZGVpX3RvbmdlcnNkZWlfZnJlZWRfc25lb24nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnc2kuX21vLl90aS5fd28uX3RvLl9mci5fc28uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdTaV9Nb19UaV9Xb19Ub19Gcl9Tbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC1NTS1ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheTogJ1toam9lZCBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1ttb2FybiBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tqdXN0ZXIgb21dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW8O0ZnLDu25lXSBkZGRkIFtvbV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnb2VyICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgbHluJyxcbiAgICAgICAgICAgIHMgOiAnaW4gcGVhciBzZWtvbmRlbicsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWtvbmRlbicsXG4gICAgICAgICAgICBtIDogJ2llbiBtaW7DunQnLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXRlbicsXG4gICAgICAgICAgICBoIDogJ2llbiBvZXJlJyxcbiAgICAgICAgICAgIGhoIDogJyVkIG9lcmVuJyxcbiAgICAgICAgICAgIGQgOiAnaWVuIGRlaScsXG4gICAgICAgICAgICBkZCA6ICclZCBkYWdlbicsXG4gICAgICAgICAgICBNIDogJ2llbiBtb2FubmUnLFxuICAgICAgICAgICAgTU0gOiAnJWQgbW9hbm5lbicsXG4gICAgICAgICAgICB5IDogJ2llbiBqaWVyJyxcbiAgICAgICAgICAgIHl5IDogJyVkIGppZXJyZW4nXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdGV8ZGUpLyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAoKG51bWJlciA9PT0gMSB8fCBudW1iZXIgPT09IDggfHwgbnVtYmVyID49IDIwKSA/ICdzdGUnIDogJ2RlJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZ5O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cblxuICAgIHZhciBtb250aHMgPSBbXG4gICAgICAgICdFYW7DoWlyJywgJ0ZlYWJocmEnLCAnTcOhcnRhJywgJ0FpYnJlw6FuJywgJ0JlYWx0YWluZScsICdNw6lpdGhlYW1oJywgJ0nDumlsJywgJ0zDum5hc2EnLCAnTWXDoW4gRsOzbWhhaXInLCAnRGVhaXJlYWRoIEbDs21oYWlyJywgJ1NhbWhhaW4nLCAnTm9sbGFpZydcbiAgICBdO1xuXG4gICAgdmFyIG1vbnRoc1Nob3J0ID0gWydFYW7DoScsICdGZWFiJywgJ03DoXJ0JywgJ0FpYnInLCAnQmVhbCcsICdNw6lpdCcsICdJw7ppbCcsICdMw7puYScsICdNZcOhbicsICdEZWFpJywgJ1NhbWgnLCAnTm9sbCddO1xuXG4gICAgdmFyIHdlZWtkYXlzID0gWydEw6kgRG9taG5haWdoJywgJ0TDqSBMdWFpbicsICdEw6kgTcOhaXJ0JywgJ0TDqSBDw6lhZGFvaW4nLCAnRMOpYXJkYW9pbicsICdEw6kgaEFvaW5lJywgJ0TDqSBTYXRoYXJuJ107XG5cbiAgICB2YXIgd2Vla2RheXNTaG9ydCA9IFsnRG9tJywgJ0x1YScsICdNw6FpJywgJ0PDqWEnLCAnRMOpYScsICdoQW8nLCAnU2F0J107XG5cbiAgICB2YXIgd2Vla2RheXNNaW4gPSBbJ0RvJywgJ0x1JywgJ03DoScsICdDZScsICdEw6knLCAnaEEnLCAnU2EnXTtcblxuICAgIHZhciBnYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2dhJywge1xuICAgICAgICBtb250aHM6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IG1vbnRoc1Nob3J0LFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogd2Vla2RheXMsXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6IHdlZWtkYXlzU2hvcnQsXG4gICAgICAgIHdlZWtkYXlzTWluOiB3ZWVrZGF5c01pbixcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0lubml1IGFnXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0Ftw6FyYWNoIGFnXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2FnXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0lubsOpIGFpZ10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtzZW8gY2FpdGVdIFthZ10gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ2kgJXMnLFxuICAgICAgICAgICAgcGFzdDogJyVzIMOzIHNoaW4nLFxuICAgICAgICAgICAgczogJ2PDunBsYSBzb2ljaW5kJyxcbiAgICAgICAgICAgIHNzOiAnJWQgc29pY2luZCcsXG4gICAgICAgICAgICBtOiAnbsOzaW3DqWFkJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbsOzaW3DqWFkJyxcbiAgICAgICAgICAgIGg6ICd1YWlyIGFuIGNobG9pZycsXG4gICAgICAgICAgICBoaDogJyVkIHVhaXIgYW4gY2hsb2lnJyxcbiAgICAgICAgICAgIGQ6ICdsw6EnLFxuICAgICAgICAgICAgZGQ6ICclZCBsw6EnLFxuICAgICAgICAgICAgTTogJ23DrScsXG4gICAgICAgICAgICBNTTogJyVkIG3DrScsXG4gICAgICAgICAgICB5OiAnYmxpYWluJyxcbiAgICAgICAgICAgIHl5OiAnJWQgYmxpYWluJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oZHxuYXxtaCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gbnVtYmVyID09PSAxID8gJ2QnIDogbnVtYmVyICUgMTAgPT09IDIgPyAnbmEnIDogJ21oJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgbW9udGhzID0gW1xuICAgICAgICAnQW0gRmFvaWxsZWFjaCcsICdBbiBHZWFycmFuJywgJ0FtIE3DoHJ0JywgJ0FuIEdpYmxlYW4nLCAnQW4gQ8OoaXRlYW4nLCAnQW4gdC3DkmdtaGlvcycsICdBbiB0LUl1Y2hhcicsICdBbiBMw7luYXN0YWwnLCAnQW4gdC1TdWx0YWluJywgJ0FuIETDoG1oYWlyJywgJ0FuIHQtU2FtaGFpbicsICdBbiBEw7liaGxhY2hkJ1xuICAgIF07XG5cbiAgICB2YXIgbW9udGhzU2hvcnQgPSBbJ0Zhb2knLCAnR2VhcicsICdNw6BydCcsICdHaWJsJywgJ0PDqGl0JywgJ8OSZ21oJywgJ0l1Y2gnLCAnTMO5bicsICdTdWx0JywgJ0TDoG1oJywgJ1NhbWgnLCAnRMO5YmgnXTtcblxuICAgIHZhciB3ZWVrZGF5cyA9IFsnRGlkw7JtaG5haWNoJywgJ0RpbHVhaW4nLCAnRGltw6BpcnQnLCAnRGljaWFkYWluJywgJ0RpYXJkYW9pbicsICdEaWhhb2luZScsICdEaXNhdGhhaXJuZSddO1xuXG4gICAgdmFyIHdlZWtkYXlzU2hvcnQgPSBbJ0RpZCcsICdEaWwnLCAnRGltJywgJ0RpYycsICdEaWEnLCAnRGloJywgJ0RpcyddO1xuXG4gICAgdmFyIHdlZWtkYXlzTWluID0gWydEw7InLCAnTHUnLCAnTcOgJywgJ0NpJywgJ0FyJywgJ0hhJywgJ1NhJ107XG5cbiAgICB2YXIgZ2QgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdnZCcsIHtcbiAgICAgICAgbW9udGhzIDogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydCA6IG1vbnRoc1Nob3J0LFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiB3ZWVrZGF5cyxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6IHdlZWtkYXlzU2hvcnQsXG4gICAgICAgIHdlZWtkYXlzTWluIDogd2Vla2RheXNNaW4sXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1tBbi1kaXVnaCBhaWddIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW0EtbcOgaXJlYWNoIGFpZ10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBbYWlnXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1tBbi1kw6ggYWlnXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdkZGRkIFtzZW8gY2hhaWRoXSBbYWlnXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnYW5uIGFuICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnYmhvIGNoaW9ubiAlcycsXG4gICAgICAgICAgICBzIDogJ2JlYWdhbiBkaW9nYW4nLFxuICAgICAgICAgICAgc3MgOiAnJWQgZGlvZ2FuJyxcbiAgICAgICAgICAgIG0gOiAnbWlvbmFpZCcsXG4gICAgICAgICAgICBtbSA6ICclZCBtaW9uYWlkZWFuJyxcbiAgICAgICAgICAgIGggOiAndWFpcicsXG4gICAgICAgICAgICBoaCA6ICclZCB1YWlyZWFuJyxcbiAgICAgICAgICAgIGQgOiAnbGF0aGEnLFxuICAgICAgICAgICAgZGQgOiAnJWQgbGF0aGEnLFxuICAgICAgICAgICAgTSA6ICdtw6xvcycsXG4gICAgICAgICAgICBNTSA6ICclZCBtw6xvc2FuJyxcbiAgICAgICAgICAgIHkgOiAnYmxpYWRobmEnLFxuICAgICAgICAgICAgeXkgOiAnJWQgYmxpYWRobmEnXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2UgOiAvXFxkezEsMn0oZHxuYXxtaCkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIG91dHB1dCA9IG51bWJlciA9PT0gMSA/ICdkJyA6IG51bWJlciAlIDEwID09PSAyID8gJ25hJyA6ICdtaCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBnZDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIGdsID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZ2wnLCB7XG4gICAgICAgIG1vbnRocyA6ICd4YW5laXJvX2ZlYnJlaXJvX21hcnpvX2FicmlsX21haW9feHXDsW9feHVsbG9fYWdvc3RvX3NldGVtYnJvX291dHVicm9fbm92ZW1icm9fZGVjZW1icm8nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ3hhbi5fZmViLl9tYXIuX2Fici5fbWFpLl94dcOxLl94dWwuX2Fnby5fc2V0Ll9vdXQuX25vdi5fZGVjLicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiAnZG9taW5nb19sdW5zX21hcnRlc19tw6lyY29yZXNfeG92ZXNfdmVucmVzX3PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnZG9tLl9sdW4uX21hci5fbcOpci5feG92Ll92ZW4uX3PDoWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdkb19sdV9tYV9tw6lfeG9fdmVfc8OhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnW2hveGUgJyArICgodGhpcy5ob3VycygpICE9PSAxKSA/ICfDoXMnIDogJ8OhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dERheSA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1ttYcOxw6EgJyArICgodGhpcy5ob3VycygpICE9PSAxKSA/ICfDoXMnIDogJ8OhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmV4dFdlZWsgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIFsnICsgKCh0aGlzLmhvdXJzKCkgIT09IDEpID8gJ8OhcycgOiAnYScpICsgJ10gTFQnO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXkgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbb250ZSAnICsgKCh0aGlzLmhvdXJzKCkgIT09IDEpID8gJ8OhJyA6ICdhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWsgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbb10gZGRkZCBbcGFzYWRvICcgKyAoKHRoaXMuaG91cnMoKSAhPT0gMSkgPyAnw6FzJyA6ICdhJykgKyAnXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogZnVuY3Rpb24gKHN0cikge1xuICAgICAgICAgICAgICAgIGlmIChzdHIuaW5kZXhPZigndW4nKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ24nICsgc3RyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VuICcgKyBzdHI7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFzdCA6ICdoYWkgJXMnLFxuICAgICAgICAgICAgcyA6ICd1bnMgc2VndW5kb3MnLFxuICAgICAgICAgICAgc3MgOiAnJWQgc2VndW5kb3MnLFxuICAgICAgICAgICAgbSA6ICd1biBtaW51dG8nLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXRvcycsXG4gICAgICAgICAgICBoIDogJ3VuaGEgaG9yYScsXG4gICAgICAgICAgICBoaCA6ICclZCBob3JhcycsXG4gICAgICAgICAgICBkIDogJ3VuIGTDrWEnLFxuICAgICAgICAgICAgZGQgOiAnJWQgZMOtYXMnLFxuICAgICAgICAgICAgTSA6ICd1biBtZXMnLFxuICAgICAgICAgICAgTU0gOiAnJWQgbWVzZXMnLFxuICAgICAgICAgICAgeSA6ICd1biBhbm8nLFxuICAgICAgICAgICAgeXkgOiAnJWQgYW5vcydcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZSA6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbCA6ICclZMK6JyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ2w7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICAncyc6IFsndGhvZGRlIHNlY29uZGFuaW0nLCAndGhvZGRlIHNlY29uZCddLFxuICAgICAgICAgICAgJ3NzJzogW251bWJlciArICcgc2Vjb25kYW5pbScsIG51bWJlciArICcgc2Vjb25kJ10sXG4gICAgICAgICAgICAnbSc6IFsnZWthIG1pbnRhbicsICdlayBtaW51dGUnXSxcbiAgICAgICAgICAgICdtbSc6IFtudW1iZXIgKyAnIG1pbnRhbmltJywgbnVtYmVyICsgJyBtaW50YW0nXSxcbiAgICAgICAgICAgICdoJzogWydla2Egdm9yYW4nLCAnZWsgdm9yJ10sXG4gICAgICAgICAgICAnaGgnOiBbbnVtYmVyICsgJyB2b3JhbmltJywgbnVtYmVyICsgJyB2b3JhbSddLFxuICAgICAgICAgICAgJ2QnOiBbJ2VrYSBkaXNhbicsICdlayBkaXMnXSxcbiAgICAgICAgICAgICdkZCc6IFtudW1iZXIgKyAnIGRpc2FuaW0nLCBudW1iZXIgKyAnIGRpcyddLFxuICAgICAgICAgICAgJ00nOiBbJ2VrYSBtaG9pbmVhbicsICdlayBtaG9pbm8nXSxcbiAgICAgICAgICAgICdNTSc6IFtudW1iZXIgKyAnIG1ob2luZWFuaW0nLCBudW1iZXIgKyAnIG1ob2luZSddLFxuICAgICAgICAgICAgJ3knOiBbJ2VrYSB2b3JzYW4nLCAnZWsgdm9yb3MnXSxcbiAgICAgICAgICAgICd5eSc6IFtudW1iZXIgKyAnIHZvcnNhbmltJywgbnVtYmVyICsgJyB2b3JzYW0nXVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuXG4gICAgdmFyIGdvbUxhdG4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdnb20tbGF0bicsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbmVyX0ZlYnJlcl9NYXJzX0FicmlsX01haV9KdW5fSnVsYWlfQWdvc3RfU2V0ZW1icl9PdHVicl9Ob3ZlbWJyX0RlemVtYnInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ0phbi5fRmViLl9NYXJzX0Fici5fTWFpX0p1bl9KdWwuX0Fnby5fU2V0Ll9PdHUuX05vdi5fRGV6Licuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzIDogJ0FpdGFyX1NvbWFyX01vbmdsbGFyX0J1ZHZhcl9CcmVzdGFyX1N1a3Jhcl9Tb25cXCd2YXInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnQWl0Ll9Tb20uX01vbi5fQnVkLl9CcmUuX1N1ay5fU29uLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnQWlfU21fTW9fQnVfQnJfU3VfU24nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnQSBoOm1tIFt2YXp0YV0nLFxuICAgICAgICAgICAgTFRTIDogJ0EgaDptbTpzcyBbdmF6dGFdJyxcbiAgICAgICAgICAgIEwgOiAnREQtTU0tWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgQSBoOm1tIFt2YXp0YV0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBNTU1NW2FjaGVhXSBEbywgWVlZWSwgQSBoOm1tIFt2YXp0YV0nLFxuICAgICAgICAgICAgbGxsbDogJ2RkZCwgRCBNTU0gWVlZWSwgQSBoOm1tIFt2YXp0YV0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tBaXpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbRmFsZWFtXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1tJZXRhIHRvXSBkZGRkWyxdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbS2FsXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tGYXRsb10gZGRkZFssXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICclcycsXG4gICAgICAgICAgICBwYXN0IDogJyVzIGFkaW0nLFxuICAgICAgICAgICAgcyA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBzcyA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGggOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGggOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZCA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkZCA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE1NIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHkgOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeXkgOiBwcm9jZXNzUmVsYXRpdmVUaW1lXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2UgOiAvXFxkezEsMn0oZXIpLyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICAvLyB0aGUgb3JkaW5hbCAnZXInIG9ubHkgYXBwbGllcyB0byBkYXkgb2YgdGhlIG1vbnRoXG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnZXInO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnUSc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvcmF0aXxzb2thbGxpfGRvbnBhcmFtfHNhbmplLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyIDogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ3JhdGknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdzb2thbGxpJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ2RvbnBhcmFtJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID4gMTIgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3NhbmplJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtIDogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdyYXRpJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzb2thbGxpJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE2KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkb25wYXJhbSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc2FuamUnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3JhdGknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZ29tTGF0bjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgICAgICcxJzogJ+CrpycsXG4gICAgICAgICAgICAnMic6ICfgq6gnLFxuICAgICAgICAgICAgJzMnOiAn4KupJyxcbiAgICAgICAgICAgICc0JzogJ+CrqicsXG4gICAgICAgICAgICAnNSc6ICfgq6snLFxuICAgICAgICAgICAgJzYnOiAn4KusJyxcbiAgICAgICAgICAgICc3JzogJ+CrrScsXG4gICAgICAgICAgICAnOCc6ICfgq64nLFxuICAgICAgICAgICAgJzknOiAn4KuvJyxcbiAgICAgICAgICAgICcwJzogJ+CrpidcbiAgICAgICAgfSxcbiAgICAgICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAgICAgJ+Crpyc6ICcxJyxcbiAgICAgICAgICAgICfgq6gnOiAnMicsXG4gICAgICAgICAgICAn4KupJzogJzMnLFxuICAgICAgICAgICAgJ+Crqic6ICc0JyxcbiAgICAgICAgICAgICfgq6snOiAnNScsXG4gICAgICAgICAgICAn4KusJzogJzYnLFxuICAgICAgICAgICAgJ+CrrSc6ICc3JyxcbiAgICAgICAgICAgICfgq64nOiAnOCcsXG4gICAgICAgICAgICAn4KuvJzogJzknLFxuICAgICAgICAgICAgJ+Crpic6ICcwJ1xuICAgICAgICB9O1xuXG4gICAgdmFyIGd1ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnZ3UnLCB7XG4gICAgICAgIG1vbnRoczogJ+CqnOCqvuCqqOCrjeCqr+CrgeCqhuCqsOCrgF/gqqvgq4fgqqzgq43gqrDgq4HgqobgqrDgq4Bf4Kqu4Kq+4Kqw4KuN4KqaX+Cqj+CqquCrjeCqsOCqv+Cqsl/gqq7gq4df4Kqc4KuC4KqoX+CqnOCrgeCqsuCqvuCqiF/gqpHgqpfgqrjgq43gqp9f4Kq44Kqq4KuN4Kqf4KuH4Kqu4KuN4Kqs4KqwX+CqkeCqleCrjeCqn+CrjeCqrOCqsF/gqqjgqrXgq4fgqq7gq43gqqzgqrBf4Kqh4Kq/4Kq44KuH4Kqu4KuN4Kqs4KqwJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydDogJ+CqnOCqvuCqqOCrjeCqr+CrgS5f4Kqr4KuH4Kqs4KuN4Kqw4KuBLl/gqq7gqr7gqrDgq43gqppf4KqP4Kqq4KuN4Kqw4Kq/Ll/gqq7gq4df4Kqc4KuC4KqoX+CqnOCrgeCqsuCqvi5f4KqR4KqXLl/gqrjgqqrgq43gqp/gq4cuX+CqkeCqleCrjeCqn+CrjS5f4Kqo4Kq14KuHLl/gqqHgqr/gqrjgq4cuJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ+CqsOCqteCqv+CqteCqvuCqsF/gqrjgq4vgqq7gqrXgqr7gqrBf4Kqu4KqC4KqX4Kqz4Kq14Kq+4KqwX+CqrOCrgeCqp+CrjeCqteCqvuCqsF/gqpfgq4HgqrDgq4HgqrXgqr7gqrBf4Kq24KuB4KqV4KuN4Kqw4Kq14Kq+4KqwX+CqtuCqqOCqv+CqteCqvuCqsCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+CqsOCqteCqv1/gqrjgq4vgqq5f4Kqu4KqC4KqX4KqzX+CqrOCrgeCqp+CrjV/gqpfgq4HgqrDgq4Ff4Kq24KuB4KqV4KuN4KqwX+CqtuCqqOCqvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfgqrBf4Kq44KuLX+CqruCqgl/gqqzgq4Ff4KqX4KuBX+CqtuCrgV/gqrYnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0EgaDptbSDgqrXgqr7gqpfgq43gqq/gq4cnLFxuICAgICAgICAgICAgTFRTOiAnQSBoOm1tOnNzIOCqteCqvuCql+CrjeCqr+CrhycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0g4Kq14Kq+4KqX4KuN4Kqv4KuHJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIOCqteCqvuCql+CrjeCqr+CrhydcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdb4KqG4KqcXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+CqleCqvuCqsuCrh10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+Cql+Cqh+CqleCqvuCqsuCrh10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb4Kqq4Kq+4Kqb4Kqy4Kq+XSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXMg4Kqu4Kq+JyxcbiAgICAgICAgICAgIHBhc3Q6ICclcyDgqqrgq4fgqrngqrLgqr4nLFxuICAgICAgICAgICAgczogJ+CqheCqruCrgeCqlSDgqqrgqrPgq4snLFxuICAgICAgICAgICAgc3M6ICclZCDgqrjgq4fgqpXgqoLgqqEnLFxuICAgICAgICAgICAgbTogJ+Cqj+CqlSDgqq7gqr/gqqjgqr/gqp8nLFxuICAgICAgICAgICAgbW06ICclZCDgqq7gqr/gqqjgqr/gqp8nLFxuICAgICAgICAgICAgaDogJ+Cqj+CqlSDgqpXgqrLgqr7gqpUnLFxuICAgICAgICAgICAgaGg6ICclZCDgqpXgqrLgqr7gqpUnLFxuICAgICAgICAgICAgZDogJ+Cqj+CqlSDgqqbgqr/gqrXgqrgnLFxuICAgICAgICAgICAgZGQ6ICclZCDgqqbgqr/gqrXgqrgnLFxuICAgICAgICAgICAgTTogJ+Cqj+CqlSDgqq7gqrngqr/gqqjgq4snLFxuICAgICAgICAgICAgTU06ICclZCDgqq7gqrngqr/gqqjgq4snLFxuICAgICAgICAgICAgeTogJ+Cqj+CqlSDgqrXgqrDgq43gqrcnLFxuICAgICAgICAgICAgeXk6ICclZCDgqrXgqrDgq43gqrcnXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgq6fgq6jgq6ngq6rgq6vgq6zgq63gq67gq6/gq6ZdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIC8vIEd1amFyYXRpIG5vdGF0aW9uIGZvciBtZXJpZGllbXMgYXJlIHF1aXRlIGZ1enp5IGluIHByYWN0aWNlLiBXaGlsZSB0aGVyZSBleGlzdHNcbiAgICAgICAgLy8gYSByaWdpZCBub3Rpb24gb2YgYSAnUGFoYXInIGl0IGlzIG5vdCB1c2VkIGFzIHJpZ2lkbHkgaW4gbW9kZXJuIEd1amFyYXRpLlxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4Kqw4Kq+4KqkfOCqrOCqquCri+CqsHzgqrjgqrXgqr7gqrB84Kq44Kq+4KqC4KqcLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn4Kqw4Kq+4KqkJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Kq44Kq14Kq+4KqwJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CqrOCqquCri+CqsCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Kq44Kq+4KqC4KqcJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CqsOCqvuCqpCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kq44Kq14Kq+4KqwJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqqzgqqrgq4vgqrAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CquOCqvuCqguCqnCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kqw4Kq+4KqkJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNiAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBndTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIGhlID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaGUnLCB7XG4gICAgICAgIG1vbnRocyA6ICfXmdeg15XXkNeoX9ek15HXqNeV15DXqF/Xnteo16Vf15DXpNeo15nXnF/XnteQ15lf15nXldeg15lf15nXldec15lf15DXldeS15XXodeYX9eh16TXmNee15HXqF/XkNeV16fXmNeV15HXqF/XoNeV15HXnteR16hf15PXptee15HXqCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn15nXoNeV17Nf16TXkdeo17Nf157XqNelX9eQ16TXqNezX9ee15DXmV/XmdeV16DXmV/XmdeV15zXmV/XkNeV15LXs1/Xodek15jXs1/XkNeV16fXs1/XoNeV15HXs1/Xk9em157Xsycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAn16jXkNep15XXn1/Xqdeg15lf16nXnNeZ16nXmV/XqNeR15nXoteZX9eX157Xmdep15lf16nXmdep15lf16nXkdeqJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ9eQ17Nf15HXs1/XktezX9eT17Nf15TXs1/XldezX9ep17MnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ9eQX9eRX9eSX9eTX9eUX9eVX9epJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBb15FdTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIFvXkV1NTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIFvXkV1NTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgbCA6ICdEL00vWVlZWScsXG4gICAgICAgICAgICBsbCA6ICdEIE1NTSBZWVlZJyxcbiAgICAgICAgICAgIGxsbCA6ICdEIE1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGwgOiAnZGRkLCBEIE1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW9eU15nXldedINeR1r5dTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdb157Xl9eoINeR1r5dTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBb15HXqdei15RdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW9eQ16rXnteV15wg15HWvl1MVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdb15HXmdeV151dIGRkZGQgW9eU15DXl9eo15XXnyDXkdep16LXlF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ9eR16LXldeTICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAn15zXpNeg15kgJXMnLFxuICAgICAgICAgICAgcyA6ICfXnteh16TXqCDXqdeg15nXldeqJyxcbiAgICAgICAgICAgIHNzIDogJyVkINep16DXmdeV16onLFxuICAgICAgICAgICAgbSA6ICfXk9en15QnLFxuICAgICAgICAgICAgbW0gOiAnJWQg15PXp9eV16onLFxuICAgICAgICAgICAgaCA6ICfXqdei15QnLFxuICAgICAgICAgICAgaGggOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ9ep16LXqteZ15nXnSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnINep16LXldeqJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkIDogJ9eZ15XXnScsXG4gICAgICAgICAgICBkZCA6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAn15nXldee15nXmdedJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg15nXnteZ150nO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIE0gOiAn15fXldeT16knLFxuICAgICAgICAgICAgTU0gOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ9eX15XXk9ep15nXmdedJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg15fXldeT16nXmdedJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB5IDogJ9ep16DXlCcsXG4gICAgICAgICAgICB5eSA6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAn16nXoNeq15nXmdedJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciAlIDEwID09PSAwICYmIG51bWJlciAhPT0gMTApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg16nXoNeUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg16nXoNeZ150nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv15DXl9eUXCLXpnzXnNek16DXlFwi16Z815DXl9eo15kg15TXpteU16jXmdeZ151815zXpNeg15kg15TXpteU16jXmdeZ151815zXpNeg15XXqiDXkdeV16fXqHzXkdeR15XXp9eofNeR16LXqNeRL2ksXG4gICAgICAgIGlzUE0gOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAvXijXkNeX15RcItemfNeQ15fXqNeZINeU16bXlNeo15nXmdedfNeR16LXqNeRKSQvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn15zXpNeg15XXqiDXkdeV16fXqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn15HXkdeV16fXqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ9ec16TXoNeUXCLXpicgOiAn15zXpNeg15kg15TXpteU16jXmdeZ150nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICfXkNeX15RcItemJyA6ICfXkNeX16jXmSDXlNem15TXqNeZ15nXnSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn15HXoteo15EnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaGU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICcxJzogJ+ClpycsXG4gICAgICAgICcyJzogJ+ClqCcsXG4gICAgICAgICczJzogJ+ClqScsXG4gICAgICAgICc0JzogJ+ClqicsXG4gICAgICAgICc1JzogJ+ClqycsXG4gICAgICAgICc2JzogJ+ClrCcsXG4gICAgICAgICc3JzogJ+ClrScsXG4gICAgICAgICc4JzogJ+ClricsXG4gICAgICAgICc5JzogJ+ClrycsXG4gICAgICAgICcwJzogJ+ClpidcbiAgICB9LFxuICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgJ+Clpyc6ICcxJyxcbiAgICAgICAgJ+ClqCc6ICcyJyxcbiAgICAgICAgJ+ClqSc6ICczJyxcbiAgICAgICAgJ+Clqic6ICc0JyxcbiAgICAgICAgJ+Clqyc6ICc1JyxcbiAgICAgICAgJ+ClrCc6ICc2JyxcbiAgICAgICAgJ+ClrSc6ICc3JyxcbiAgICAgICAgJ+Clric6ICc4JyxcbiAgICAgICAgJ+Clryc6ICc5JyxcbiAgICAgICAgJ+Clpic6ICcwJ1xuICAgIH07XG5cbiAgICB2YXIgaGkgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdoaScsIHtcbiAgICAgICAgbW9udGhzIDogJ+CknOCkqOCkteCksOClgF/gpKvgpLzgpLDgpLXgpLDgpYBf4KSu4KS+4KSw4KWN4KSaX+CkheCkquCljeCksOCliOCksl/gpK7gpIhf4KSc4KWC4KSoX+CknOClgeCksuCkvuCkiF/gpIXgpJfgpLjgpY3gpKRf4KS44KS/4KSk4KSu4KWN4KSs4KSwX+CkheCkleCljeCkn+ClguCkrOCksF/gpKjgpLXgpK7gpY3gpKzgpLBf4KSm4KS/4KS44KSu4KWN4KSs4KSwJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICfgpJzgpKguX+Ckq+CkvOCksC5f4KSu4KS+4KSw4KWN4KSaX+CkheCkquCljeCksOCliC5f4KSu4KSIX+CknOClguCkqF/gpJzgpYHgpLIuX+CkheCkly5f4KS44KS/4KSkLl/gpIXgpJXgpY3gpJ/gpYIuX+CkqOCktS5f4KSm4KS/4KS4Licuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiAn4KSw4KS14KS/4KS14KS+4KSwX+CkuOCli+CkruCkteCkvuCksF/gpK7gpILgpJfgpLLgpLXgpL7gpLBf4KSs4KWB4KSn4KS14KS+4KSwX+Ckl+ClgeCksOClguCkteCkvuCksF/gpLbgpYHgpJXgpY3gpLDgpLXgpL7gpLBf4KS24KSo4KS/4KS14KS+4KSwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ+CksOCkteCkv1/gpLjgpYvgpK5f4KSu4KSC4KSX4KSyX+CkrOClgeCkp1/gpJfgpYHgpLDgpYJf4KS24KWB4KSV4KWN4KSwX+CktuCkqOCkvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn4KSwX+CkuOCli1/gpK7gpIJf4KSs4KWBX+Ckl+ClgV/gpLbgpYFf4KS2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0EgaDptbSDgpKzgpJzgpYcnLFxuICAgICAgICAgICAgTFRTIDogJ0EgaDptbTpzcyDgpKzgpJzgpYcnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSwgQSBoOm1tIOCkrOCknOClhycsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0g4KSs4KSc4KWHJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW+CkhuCknF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdb4KSV4KSyXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vgpJXgpLJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1vgpKrgpL/gpJvgpLLgpYddIGRkZGQsIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICclcyDgpK7gpYfgpIInLFxuICAgICAgICAgICAgcGFzdCA6ICclcyDgpKrgpLngpLLgpYcnLFxuICAgICAgICAgICAgcyA6ICfgpJXgpYHgpJsg4KS54KWAIOCkleCljeCkt+CkoycsXG4gICAgICAgICAgICBzcyA6ICclZCDgpLjgpYfgpJXgpILgpKEnLFxuICAgICAgICAgICAgbSA6ICfgpI/gpJUg4KSu4KS/4KSo4KSfJyxcbiAgICAgICAgICAgIG1tIDogJyVkIOCkruCkv+CkqOCknycsXG4gICAgICAgICAgICBoIDogJ+Ckj+CklSDgpJjgpILgpJ/gpL4nLFxuICAgICAgICAgICAgaGggOiAnJWQg4KSY4KSC4KSf4KWHJyxcbiAgICAgICAgICAgIGQgOiAn4KSP4KSVIOCkpuCkv+CkqCcsXG4gICAgICAgICAgICBkZCA6ICclZCDgpKbgpL/gpKgnLFxuICAgICAgICAgICAgTSA6ICfgpI/gpJUg4KSu4KS54KWA4KSo4KWHJyxcbiAgICAgICAgICAgIE1NIDogJyVkIOCkruCkueClgOCkqOClhycsXG4gICAgICAgICAgICB5IDogJ+Ckj+CklSDgpLXgpLDgpY3gpLcnLFxuICAgICAgICAgICAgeXkgOiAnJWQg4KS14KSw4KWN4KS3J1xuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4KWn4KWo4KWp4KWq4KWr4KWs4KWt4KWu4KWv4KWmXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICAvLyBIaW5kaSBub3RhdGlvbiBmb3IgbWVyaWRpZW1zIGFyZSBxdWl0ZSBmdXp6eSBpbiBwcmFjdGljZS4gV2hpbGUgdGhlcmUgZXhpc3RzXG4gICAgICAgIC8vIGEgcmlnaWQgbm90aW9uIG9mIGEgJ1BhaGFyJyBpdCBpcyBub3QgdXNlZCBhcyByaWdpZGx5IGluIG1vZGVybiBIaW5kaS5cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CksOCkvuCkpHzgpLjgpYHgpKzgpLl84KSm4KWL4KSq4KS54KSwfOCktuCkvuCkri8sXG4gICAgICAgIG1lcmlkaWVtSG91ciA6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgpLDgpL7gpKQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpLjgpYHgpKzgpLknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4KSm4KWL4KSq4KS54KSwJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDEwID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpLbgpL7gpK4nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CksOCkvuCkpCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KS44KWB4KSs4KS5JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpKbgpYvgpKrgpLngpLAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CktuCkvuCkric7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSw4KS+4KSkJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNiAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaGk7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVtYmVyICsgJyAnO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzZWt1bmRhJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2VrdW5kZSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzZWt1bmRpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2plZG5hIG1pbnV0YScgOiAnamVkbmUgbWludXRlJztcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWludXRhJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnbWludXRlJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21pbnV0YSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdqZWRhbiBzYXQnIDogJ2plZG5vZyBzYXRhJztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2F0JztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMiB8fCBudW1iZXIgPT09IDMgfHwgbnVtYmVyID09PSA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnc2F0YSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdzYXRpJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZGFuJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ2RhbmEnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtamVzZWMnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdtamVzZWNhJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ21qZXNlY2knO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdnb2RpbmEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyIHx8IG51bWJlciA9PT0gMyB8fCBudW1iZXIgPT09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICdnb2RpbmUnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAnZ29kaW5hJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBociA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2hyJywge1xuICAgICAgICBtb250aHMgOiB7XG4gICAgICAgICAgICBmb3JtYXQ6ICdzaWplxI1uamFfdmVsamHEjWVfb8W+dWprYV90cmF2bmphX3N2aWJuamFfbGlwbmphX3NycG5qYV9rb2xvdm96YV9ydWpuYV9saXN0b3BhZGFfc3R1ZGVub2dhX3Byb3NpbmNhJy5zcGxpdCgnXycpLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ3NpamXEjWFual92ZWxqYcSNYV9vxb51amFrX3RyYXZhbmpfc3ZpYmFual9saXBhbmpfc3JwYW5qX2tvbG92b3pfcnVqYW5fbGlzdG9wYWRfc3R1ZGVuaV9wcm9zaW5hYycuc3BsaXQoJ18nKVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydCA6ICdzaWouX3ZlbGouX2/FvnUuX3RyYS5fc3ZpLl9saXAuX3NycC5fa29sLl9ydWouX2xpcy5fc3R1Ll9wcm8uJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5cyA6ICduZWRqZWxqYV9wb25lZGplbGpha191dG9yYWtfc3JpamVkYV/EjWV0dnJ0YWtfcGV0YWtfc3Vib3RhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ25lZC5fcG9uLl91dG8uX3NyaS5fxI1ldC5fcGV0Ll9zdWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICduZV9wb191dF9zcl/EjWVfcGVfc3UnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEwgOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgIDogJ1tkYW5hcyB1XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5ICA6ICdbc3V0cmEgdV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtuZWRqZWxqdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3NyaWplZHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzdWJvdHVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheSAgOiAnW2p1xI1lciB1XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcm/FoWx1XSBkZGRkIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbGVdIFtzdWJvdGVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3Byb8WhbGldIGRkZGQgW3VdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ3phICVzJyxcbiAgICAgICAgICAgIHBhc3QgICA6ICdwcmlqZSAlcycsXG4gICAgICAgICAgICBzICAgICAgOiAncGFyIHNla3VuZGknLFxuICAgICAgICAgICAgc3MgICAgIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbSAgICAgIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW0gICAgIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaCAgICAgIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGggICAgIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZCAgICAgIDogJ2RhbicsXG4gICAgICAgICAgICBkZCAgICAgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNICAgICAgOiAnbWplc2VjJyxcbiAgICAgICAgICAgIE1NICAgICA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHkgICAgICA6ICdnb2RpbnUnLFxuICAgICAgICAgICAgeXkgICAgIDogdHJhbnNsYXRlXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWwgOiAnJWQuJyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNyAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaHI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciB3ZWVrRW5kaW5ncyA9ICd2YXPDoXJuYXAgaMOpdGbFkW4ga2VkZGVuIHN6ZXJkw6FuIGNzw7x0w7ZydMO2a8O2biBww6ludGVrZW4gc3pvbWJhdG9uJy5zcGxpdCgnICcpO1xuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIG51bSA9IG51bWJlcjtcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCkgPyAnbsOpaMOhbnkgbcOhc29kcGVyYycgOiAnbsOpaMOhbnkgbcOhc29kcGVyY2UnO1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW0gKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCkgPyAnIG3DoXNvZHBlcmMnIDogJyBtw6Fzb2RwZXJjZSc7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VneScgKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgcGVyYycgOiAnIHBlcmNlJyk7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bSArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyBwZXJjJyA6ICcgcGVyY2UnKTtcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZWd5JyArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyDDs3JhJyA6ICcgw7Nyw6FqYScpO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW0gKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgw7NyYScgOiAnIMOzcsOhamEnKTtcbiAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZWd5JyArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyBuYXAnIDogJyBuYXBqYScpO1xuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW0gKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgbmFwJyA6ICcgbmFwamEnKTtcbiAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZWd5JyArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyBow7NuYXAnIDogJyBow7NuYXBqYScpO1xuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW0gKyAoaXNGdXR1cmUgfHwgd2l0aG91dFN1ZmZpeCA/ICcgaMOzbmFwJyA6ICcgaMOzbmFwamEnKTtcbiAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZWd5JyArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyDDqXYnIDogJyDDqXZlJyk7XG4gICAgICAgICAgICBjYXNlICd5eSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bSArIChpc0Z1dHVyZSB8fCB3aXRob3V0U3VmZml4ID8gJyDDqXYnIDogJyDDqXZlJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3ZWVrKGlzRnV0dXJlKSB7XG4gICAgICAgIHJldHVybiAoaXNGdXR1cmUgPyAnJyA6ICdbbcO6bHRdICcpICsgJ1snICsgd2Vla0VuZGluZ3NbdGhpcy5kYXkoKV0gKyAnXSBMVFsta29yXSc7XG4gICAgfVxuXG4gICAgdmFyIGh1ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaHUnLCB7XG4gICAgICAgIG1vbnRocyA6ICdqYW51w6FyX2ZlYnJ1w6FyX23DoXJjaXVzX8OhcHJpbGlzX23DoWp1c19qw7puaXVzX2rDumxpdXNfYXVndXN6dHVzX3N6ZXB0ZW1iZXJfb2t0w7NiZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ2phbl9mZWJfbcOhcmNfw6Fwcl9tw6FqX2rDum5fasO6bF9hdWdfc3plcHRfb2t0X25vdl9kZWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ3Zhc8Ohcm5hcF9ow6l0ZsWRX2tlZGRfc3plcmRhX2Nzw7x0w7ZydMO2a19ww6ludGVrX3N6b21iYXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAndmFzX2jDqXRfa2VkZF9zemVfY3PDvHRfcMOpbl9zem8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ3ZfaF9rX3N6ZV9jc19wX3N6bycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnWVlZWS5NTS5ERC4nLFxuICAgICAgICAgICAgTEwgOiAnWVlZWS4gTU1NTSBELicsXG4gICAgICAgICAgICBMTEwgOiAnWVlZWS4gTU1NTSBELiBIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnWVlZWS4gTU1NTSBELiwgZGRkZCBIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvZGV8ZHUvaSxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQuY2hhckF0KDEpLnRvTG93ZXJDYXNlKCkgPT09ICd1JztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPT09IHRydWUgPyAnZGUnIDogJ0RFJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPT09IHRydWUgPyAnZHUnIDogJ0RVJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1ttYV0gTFRbLWtvcl0nLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbaG9sbmFwXSBMVFsta29yXScsXG4gICAgICAgICAgICBuZXh0V2VlayA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2Vlay5jYWxsKHRoaXMsIHRydWUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW3RlZ25hcF0gTFRbLWtvcl0nLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdlZWsuY2FsbCh0aGlzLCBmYWxzZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJyVzIG3Dumx2YScsXG4gICAgICAgICAgICBwYXN0IDogJyVzJyxcbiAgICAgICAgICAgIHMgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBzcyA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG0gOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtbSA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGggOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoaCA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkZCA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE0gOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTSA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHkgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5eSA6IHRyYW5zbGF0ZVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsIDogJyVkLicsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGh1O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgaHlBbSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2h5LWFtJywge1xuICAgICAgICBtb250aHMgOiB7XG4gICAgICAgICAgICBmb3JtYXQ6ICfVsNW41oLVttW+1aHWgNWrX9aD1aXVv9aA1b7VodaA1atf1bTVodaA1b/Vq1/VodW61oDVq9Ws1atf1bTVodW11avVvdWrX9Ww1bjWgtW21avVvdWrX9Ww1bjWgtWs1avVvdWrX9aF1aPVuNW91b/VuNW91atf1b3VpdW61b/VpdW01aLVpdaA1atf1bDVuNWv1b/VpdW01aLVpdaA1atf1bbVuNW11aXVtNWi1aXWgNWrX9Wk1aXVr9W/1aXVtNWi1aXWgNWrJy5zcGxpdCgnXycpLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ9Ww1bjWgtW21b7VodaAX9aD1aXVv9aA1b7VodaAX9W01aHWgNW/X9Wh1brWgNWr1axf1bTVodW11avVvV/VsNW41oLVttWr1b1f1bDVuNaC1azVq9W9X9aF1aPVuNW91b/VuNW9X9W91aXVutW/1aXVtNWi1aXWgF/VsNW41a/Vv9Wl1bTVotWl1oBf1bbVuNW11aXVtNWi1aXWgF/VpNWl1a/Vv9Wl1bTVotWl1oAnLnNwbGl0KCdfJylcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn1bDVttW+X9aD1b/WgF/VtNaA1b9f1aHVutaAX9W01bXVvV/VsNW21b1f1bDVrNW9X9aF1aPVvV/VvdW61b9f1bDVr9W/X9W21bTVol/VpNWv1b8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ9Wv1avWgNWh1a/Vq1/VpdaA1a/VuNaC1bfVodWi1anVq1/VpdaA1aXWhNW31aHVotWp1atf1bnVuNaA1aXWhNW31aHVotWp1atf1bDVq9W21aPVt9Wh1aLVqdWrX9W41oLWgNWi1aHVqV/Vt9Wh1aLVodWpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ9Wv1oDVr1/VpdaA1a9f1aXWgNaEX9W51oDWhF/VsNW21aNf1bjWgtaA1aJf1bfVotWpJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfVr9aA1a9f1aXWgNWvX9Wl1oDWhF/VudaA1oRf1bDVttWjX9W41oLWgNWiX9W31aLVqScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZINWpLicsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkg1akuLCBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZINWpLiwgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vVodW11b3WhdaAXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW9W+1aHVstWoXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9Wl1oDVpdWvXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZGRkZCBb1oXWgNWoINWq1aHVtNWoXSBMVCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ1vVodW21oHVodWuXSBkZGRkIFvWhdaA1agg1arVodW01ahdIExUJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICclcyDVsNWl1b/VuCcsXG4gICAgICAgICAgICBwYXN0IDogJyVzINWh1bzVodW7JyxcbiAgICAgICAgICAgIHMgOiAn1bTVqyDWhNWh1bbVqyDVvtWh1bXWgNWv1bXVodW2JyxcbiAgICAgICAgICAgIHNzIDogJyVkINW+1aHVtdaA1a/VtdWh1bYnLFxuICAgICAgICAgICAgbSA6ICfWgNW41brVpScsXG4gICAgICAgICAgICBtbSA6ICclZCDWgNW41brVpScsXG4gICAgICAgICAgICBoIDogJ9Wq1aHVtCcsXG4gICAgICAgICAgICBoaCA6ICclZCDVqtWh1bQnLFxuICAgICAgICAgICAgZCA6ICfWhdaAJyxcbiAgICAgICAgICAgIGRkIDogJyVkINaF1oAnLFxuICAgICAgICAgICAgTSA6ICfVodW01avVvScsXG4gICAgICAgICAgICBNTSA6ICclZCDVodW01avVvScsXG4gICAgICAgICAgICB5IDogJ9W/1aHWgNWrJyxcbiAgICAgICAgICAgIHl5IDogJyVkINW/1aHWgNWrJ1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv1aPVq9W31aXWgNW+1aF81aHVvNWh1b7VuNW/1b7VoXzWgdWl1oDVpdWv1b7VoXzVpdaA1aXVr9W41bXVodW2LyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gL14o1oHVpdaA1aXVr9W+1aF81aXWgNWl1a/VuNW11aHVtikkLy50ZXN0KGlucHV0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91cikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfVo9Wr1bfVpdaA1b7VoSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn1aHVvNWh1b7VuNW/1b7VoSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn1oHVpdaA1aXVr9W+1aEnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9Wl1oDVpdWv1bjVtdWh1bYnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn18XFxkezEsMn0tKNWr1bZ81oDVpCkvLFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICBjYXNlICdERERvJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct1avVtic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct1oDVpCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNyAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaHlBbTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIGlkID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaWQnLCB7XG4gICAgICAgIG1vbnRocyA6ICdKYW51YXJpX0ZlYnJ1YXJpX01hcmV0X0FwcmlsX01laV9KdW5pX0p1bGlfQWd1c3R1c19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXNlbWJlcicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnSmFuX0ZlYl9NYXJfQXByX01laV9KdW5fSnVsX0FndF9TZXBfT2t0X05vdl9EZXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ01pbmdndV9TZW5pbl9TZWxhc2FfUmFidV9LYW1pc19KdW1hdF9TYWJ0dScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdNaW5fU2VuX1NlbF9SYWJfS2FtX0p1bV9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ01nX1NuX1NsX1JiX0ttX0ptX1NiJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hILm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISC5tbS5zcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tJ1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvcGFnaXxzaWFuZ3xzb3JlfG1hbGFtLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyIDogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ3BhZ2knKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnc2lhbmcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3NvcmUnIHx8IG1lcmlkaWVtID09PSAnbWFsYW0nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdwYWdpJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnc2lhbmcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdzb3JlJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdtYWxhbSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdbSGFyaSBpbmkgcHVrdWxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW0Jlc29rIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFtwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbS2VtYXJpbiBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnZGRkZCBbbGFsdSBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ2RhbGFtICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgeWFuZyBsYWx1JyxcbiAgICAgICAgICAgIHMgOiAnYmViZXJhcGEgZGV0aWsnLFxuICAgICAgICAgICAgc3MgOiAnJWQgZGV0aWsnLFxuICAgICAgICAgICAgbSA6ICdzZW1lbml0JyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1lbml0JyxcbiAgICAgICAgICAgIGggOiAnc2VqYW0nLFxuICAgICAgICAgICAgaGggOiAnJWQgamFtJyxcbiAgICAgICAgICAgIGQgOiAnc2VoYXJpJyxcbiAgICAgICAgICAgIGRkIDogJyVkIGhhcmknLFxuICAgICAgICAgICAgTSA6ICdzZWJ1bGFuJyxcbiAgICAgICAgICAgIE1NIDogJyVkIGJ1bGFuJyxcbiAgICAgICAgICAgIHkgOiAnc2V0YWh1bicsXG4gICAgICAgICAgICB5eSA6ICclZCB0YWh1bidcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNyAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaWQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIGZ1bmN0aW9uIHBsdXJhbChuKSB7XG4gICAgICAgIGlmIChuICUgMTAwID09PSAxMSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAobiAlIDEwID09PSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG51bWJlciArICcgJztcbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ25va2tyYXIgc2Vrw7puZHVyJyA6ICdub2trcnVtIHNla8O6bmR1bSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbChudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdzZWvDum5kdXInIDogJ3Nla8O6bmR1bScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ3Nla8O6bmRhJztcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ23DrW7DunRhJyA6ICdtw61uw7p0dSc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbChudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtw61uw7p0dXInIDogJ23DrW7DunR1bScpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ23DrW7DunRhJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtw61uw7p0dSc7XG4gICAgICAgICAgICBjYXNlICdoaCc6XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbChudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdrbHVra3VzdHVuZGlyJyA6ICdrbHVra3VzdHVuZHVtJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAna2x1a2t1c3R1bmQnO1xuICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkYWd1cic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdkYWcnIDogJ2RlZ2knO1xuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIGlmIChwbHVyYWwobnVtYmVyKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdkYWdhcic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChpc0Z1dHVyZSA/ICdkYWdhJyA6ICdkw7ZndW0nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdkYWd1cic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoaXNGdXR1cmUgPyAnZGFnJyA6ICdkZWdpJyk7XG4gICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ23DoW51w7B1cic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdtw6FudcOwJyA6ICdtw6FudcOwaSc7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgaWYgKHBsdXJhbChudW1iZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ23DoW51w7Bpcic7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChpc0Z1dHVyZSA/ICdtw6FudcOwaScgOiAnbcOhbnXDsHVtJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh3aXRob3V0U3VmZml4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnbcOhbnXDsHVyJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChpc0Z1dHVyZSA/ICdtw6FudcOwJyA6ICdtw6FudcOwaScpO1xuICAgICAgICAgICAgY2FzZSAneSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnw6FyJyA6ICfDoXJpJztcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICBpZiAocGx1cmFsKG51bWJlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ8OhcicgOiAnw6FydW0nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ8OhcicgOiAnw6FyaScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGlzID0gbW9tZW50LmRlZmluZUxvY2FsZSgnaXMnLCB7XG4gICAgICAgIG1vbnRocyA6ICdqYW7DumFyX2ZlYnLDumFyX21hcnNfYXByw61sX21hw61fasO6bsOtX2rDumzDrV/DoWfDunN0X3NlcHRlbWJlcl9va3TDs2Jlcl9uw7N2ZW1iZXJfZGVzZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ2phbl9mZWJfbWFyX2Fwcl9tYcOtX2rDum5fasO6bF/DoWfDul9zZXBfb2t0X27Ds3ZfZGVzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdzdW5udWRhZ3VyX23DoW51ZGFndXJfw75yacOwanVkYWd1cl9tacOwdmlrdWRhZ3VyX2ZpbW10dWRhZ3VyX2bDtnN0dWRhZ3VyX2xhdWdhcmRhZ3VyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ3N1bl9tw6FuX8O+cmlfbWnDsF9maW1fZsO2c19sYXUnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ1N1X03DoV/DnnJfTWlfRmlfRsO2X0xhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRC4gTU1NTSBZWVlZIFtrbC5dIEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBELiBNTU1NIFlZWVkgW2tsLl0gSDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1vDrSBkYWcga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vDoSBtb3JndW4ga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFtrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW8OtIGfDpnIga2wuXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdbc8Otw7Bhc3RhXSBkZGRkIFtrbC5dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdlZnRpciAlcycsXG4gICAgICAgICAgICBwYXN0IDogJ2Z5cmlyICVzIHPDrcOwYW4nLFxuICAgICAgICAgICAgcyA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHNzIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbSA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaCA6ICdrbHVra3VzdHVuZCcsXG4gICAgICAgICAgICBoaCA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkZCA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE0gOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBNTSA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHkgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5eSA6IHRyYW5zbGF0ZVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsIDogJyVkLicsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGlzO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgaXRDaCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2l0LWNoJywge1xuICAgICAgICBtb250aHMgOiAnZ2VubmFpb19mZWJicmFpb19tYXJ6b19hcHJpbGVfbWFnZ2lvX2dpdWdub19sdWdsaW9fYWdvc3RvX3NldHRlbWJyZV9vdHRvYnJlX25vdmVtYnJlX2RpY2VtYnJlJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdnZW5fZmViX21hcl9hcHJfbWFnX2dpdV9sdWdfYWdvX3NldF9vdHRfbm92X2RpYycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnZG9tZW5pY2FfbHVuZWTDrF9tYXJ0ZWTDrF9tZXJjb2xlZMOsX2dpb3ZlZMOsX3ZlbmVyZMOsX3NhYmF0bycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdkb21fbHVuX21hcl9tZXJfZ2lvX3Zlbl9zYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ2RvX2x1X21hX21lX2dpX3ZlX3NhJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW09nZ2kgYWxsZV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tEb21hbmkgYWxsZV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFthbGxlXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0llcmkgYWxsZV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbGEgc2NvcnNhXSBkZGRkIFthbGxlXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tsbyBzY29yc29dIGRkZGQgW2FsbGVdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiBmdW5jdGlvbiAocykge1xuICAgICAgICAgICAgICAgIHJldHVybiAoKC9eWzAtOV0uKyQvKS50ZXN0KHMpID8gJ3RyYScgOiAnaW4nKSArICcgJyArIHM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFzdCA6ICclcyBmYScsXG4gICAgICAgICAgICBzIDogJ2FsY3VuaSBzZWNvbmRpJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNlY29uZGknLFxuICAgICAgICAgICAgbSA6ICd1biBtaW51dG8nLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXRpJyxcbiAgICAgICAgICAgIGggOiAndW5cXCdvcmEnLFxuICAgICAgICAgICAgaGggOiAnJWQgb3JlJyxcbiAgICAgICAgICAgIGQgOiAndW4gZ2lvcm5vJyxcbiAgICAgICAgICAgIGRkIDogJyVkIGdpb3JuaScsXG4gICAgICAgICAgICBNIDogJ3VuIG1lc2UnLFxuICAgICAgICAgICAgTU0gOiAnJWQgbWVzaScsXG4gICAgICAgICAgICB5IDogJ3VuIGFubm8nLFxuICAgICAgICAgICAgeXkgOiAnJWQgYW5uaSdcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZSA6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbDogJyVkwronLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBpdENoO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgaXQgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdpdCcsIHtcbiAgICAgICAgbW9udGhzIDogJ2dlbm5haW9fZmViYnJhaW9fbWFyem9fYXByaWxlX21hZ2dpb19naXVnbm9fbHVnbGlvX2Fnb3N0b19zZXR0ZW1icmVfb3R0b2JyZV9ub3ZlbWJyZV9kaWNlbWJyZScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnZ2VuX2ZlYl9tYXJfYXByX21hZ19naXVfbHVnX2Fnb19zZXRfb3R0X25vdl9kaWMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ2RvbWVuaWNhX2x1bmVkw6xfbWFydGVkw6xfbWVyY29sZWTDrF9naW92ZWTDrF92ZW5lcmTDrF9zYWJhdG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnZG9tX2x1bl9tYXJfbWVyX2dpb192ZW5fc2FiJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdkb19sdV9tYV9tZV9naV92ZV9zYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tPZ2dpIGFsbGVdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbRG9tYW5pIGFsbGVdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbYWxsZV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tJZXJpIGFsbGVdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW2xhIHNjb3JzYV0gZGRkZCBbYWxsZV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbG8gc2NvcnNvXSBkZGRkIFthbGxlXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKCgvXlswLTldLiskLykudGVzdChzKSA/ICd0cmEnIDogJ2luJykgKyAnICcgKyBzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgZmEnLFxuICAgICAgICAgICAgcyA6ICdhbGN1bmkgc2Vjb25kaScsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWNvbmRpJyxcbiAgICAgICAgICAgIG0gOiAndW4gbWludXRvJyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0aScsXG4gICAgICAgICAgICBoIDogJ3VuXFwnb3JhJyxcbiAgICAgICAgICAgIGhoIDogJyVkIG9yZScsXG4gICAgICAgICAgICBkIDogJ3VuIGdpb3JubycsXG4gICAgICAgICAgICBkZCA6ICclZCBnaW9ybmknLFxuICAgICAgICAgICAgTSA6ICd1biBtZXNlJyxcbiAgICAgICAgICAgIE1NIDogJyVkIG1lc2knLFxuICAgICAgICAgICAgeSA6ICd1biBhbm5vJyxcbiAgICAgICAgICAgIHl5IDogJyVkIGFubmknXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2UgOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWw6ICclZMK6JyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBqYSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2phJywge1xuICAgICAgICBtb250aHMgOiAn5LiA5pyIX+S6jOaciF/kuInmnIhf5Zub5pyIX+S6lOaciF/lha3mnIhf5LiD5pyIX+WFq+aciF/kuZ3mnIhf5Y2B5pyIX+WNgeS4gOaciF/ljYHkuozmnIgnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJzHmnIhfMuaciF8z5pyIXzTmnIhfNeaciF825pyIXzfmnIhfOOaciF855pyIXzEw5pyIXzEx5pyIXzEy5pyIJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICfml6Xmm5zml6Vf5pyI5puc5pelX+eBq+abnOaXpV/msLTmm5zml6Vf5pyo5puc5pelX+mHkeabnOaXpV/lnJ/mm5zml6UnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn5pelX+aciF/ngatf5rC0X+acqF/ph5Ff5ZyfJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfml6Vf5pyIX+eBq1/msLRf5pyoX+mHkV/lnJ8nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnWVlZWS9NTS9ERCcsXG4gICAgICAgICAgICBMTCA6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgTExMIDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ1lZWVnlubRN5pyIROaXpSBkZGRkIEhIOm1tJyxcbiAgICAgICAgICAgIGwgOiAnWVlZWS9NTS9ERCcsXG4gICAgICAgICAgICBsbCA6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgbGxsIDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBsbGxsIDogJ1lZWVnlubRN5pyIROaXpShkZGQpIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv5Y2I5YmNfOWNiOW+jC9pLFxuICAgICAgICBpc1BNIDogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgPT09ICfljYjlvownO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+WNiOWJjSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5Y2I5b6MJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1vku4rml6VdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW+aYjuaXpV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiBmdW5jdGlvbiAobm93KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5vdy53ZWVrKCkgPCB0aGlzLndlZWsoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vmnaXpgLFdZGRkZCBMVCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkZGRkIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGFzdERheSA6ICdb5pio5pelXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6IGZ1bmN0aW9uIChub3cpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy53ZWVrKCkgPCBub3cud2VlaygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnW+WFiOmAsV1kZGRkIExUJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2RkZGQgTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlIDogL1xcZHsxLDJ95pelLyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aXpSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJyVz5b6MJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXPliY0nLFxuICAgICAgICAgICAgcyA6ICfmlbDnp5InLFxuICAgICAgICAgICAgc3MgOiAnJWTnp5InLFxuICAgICAgICAgICAgbSA6ICcx5YiGJyxcbiAgICAgICAgICAgIG1tIDogJyVk5YiGJyxcbiAgICAgICAgICAgIGggOiAnMeaZgumWkycsXG4gICAgICAgICAgICBoaCA6ICclZOaZgumWkycsXG4gICAgICAgICAgICBkIDogJzHml6UnLFxuICAgICAgICAgICAgZGQgOiAnJWTml6UnLFxuICAgICAgICAgICAgTSA6ICcx44O25pyIJyxcbiAgICAgICAgICAgIE1NIDogJyVk44O25pyIJyxcbiAgICAgICAgICAgIHkgOiAnMeW5tCcsXG4gICAgICAgICAgICB5eSA6ICclZOW5tCdcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGphO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIganYgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdqdicsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbnVhcmlfRmVicnVhcmlfTWFyZXRfQXByaWxfTWVpX0p1bmlfSnVsaV9BZ3VzdHVzX1NlcHRlbWJlcl9Pa3RvYmVyX05vcGVtYmVyX0Rlc2VtYmVyJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdKYW5fRmViX01hcl9BcHJfTWVpX0p1bl9KdWxfQWdzX1NlcF9Pa3RfTm9wX0Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnTWluZ2d1X1NlbmVuX1NlbG9zb19SZWJ1X0tlbWlzX0plbXV3YWhfU2VwdHUnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnTWluX1Nlbl9TZWxfUmViX0tlbV9KZW1fU2VwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdNZ19Tbl9TbF9SYl9LbV9KbV9TcCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISC5tbScsXG4gICAgICAgICAgICBMVFMgOiAnSEgubW0uc3MnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSdcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2VuamluZ3xzaXlhbmd8c29udGVufG5kYWx1LyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyIDogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ2VuamluZycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICdzaXlhbmcnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3NvbnRlbicgfHwgbWVyaWRpZW0gPT09ICduZGFsdScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2VuamluZyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NpeWFuZyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3NvbnRlbic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnbmRhbHUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW0RpbnRlbiBwdW5pa28gcHVrdWxdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW01iZW5qYW5nIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFtwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbS2FsYSB3aW5naSBwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnZGRkZCBba2VwZW5na2VyIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnd29udGVuIGluZyAlcycsXG4gICAgICAgICAgICBwYXN0IDogJyVzIGluZ2thbmcga2VwZW5na2VyJyxcbiAgICAgICAgICAgIHMgOiAnc2F3ZXRhd2lzIGRldGlrJyxcbiAgICAgICAgICAgIHNzIDogJyVkIGRldGlrJyxcbiAgICAgICAgICAgIG0gOiAnc2V0dW5nZ2FsIG1lbml0JyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1lbml0JyxcbiAgICAgICAgICAgIGggOiAnc2V0dW5nZ2FsIGphbScsXG4gICAgICAgICAgICBoaCA6ICclZCBqYW0nLFxuICAgICAgICAgICAgZCA6ICdzZWRpbnRlbicsXG4gICAgICAgICAgICBkZCA6ICclZCBkaW50ZW4nLFxuICAgICAgICAgICAgTSA6ICdzZXd1bGFuJyxcbiAgICAgICAgICAgIE1NIDogJyVkIHd1bGFuJyxcbiAgICAgICAgICAgIHkgOiAnc2V0YXVuJyxcbiAgICAgICAgICAgIHl5IDogJyVkIHRhdW4nXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDcgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGp2O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIga2EgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdrYScsIHtcbiAgICAgICAgbW9udGhzIDoge1xuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ+GDmOGDkOGDnOGDleGDkOGDoOGDmF/hg5fhg5Thg5Hhg5Thg6Dhg5Xhg5Dhg5rhg5hf4YOb4YOQ4YOg4YOi4YOYX+GDkOGDnuGDoOGDmOGDmuGDmF/hg5vhg5Dhg5jhg6Hhg5hf4YOY4YOV4YOc4YOY4YOh4YOYX+GDmOGDleGDmuGDmOGDoeGDmF/hg5Dhg5Lhg5Xhg5jhg6Hhg6Lhg51f4YOh4YOU4YOl4YOi4YOU4YOb4YOR4YOU4YOg4YOYX+GDneGDpeGDouGDneGDm+GDkeGDlOGDoOGDmF/hg5zhg53hg5Thg5vhg5Hhg5Thg6Dhg5hf4YOT4YOU4YOZ4YOU4YOb4YOR4YOU4YOg4YOYJy5zcGxpdCgnXycpLFxuICAgICAgICAgICAgZm9ybWF0OiAn4YOY4YOQ4YOc4YOV4YOQ4YOg4YOhX+GDl+GDlOGDkeGDlOGDoOGDleGDkOGDmuGDoV/hg5vhg5Dhg6Dhg6Lhg6Ff4YOQ4YOe4YOg4YOY4YOa4YOY4YOhX+GDm+GDkOGDmOGDoeGDoV/hg5jhg5Xhg5zhg5jhg6Hhg6Ff4YOY4YOV4YOa4YOY4YOh4YOhX+GDkOGDkuGDleGDmOGDoeGDouGDoV/hg6Hhg5Thg6Xhg6Lhg5Thg5vhg5Hhg5Thg6Dhg6Ff4YOd4YOl4YOi4YOd4YOb4YOR4YOU4YOg4YOhX+GDnOGDneGDlOGDm+GDkeGDlOGDoOGDoV/hg5Phg5Thg5nhg5Thg5vhg5Hhg5Thg6Dhg6EnLnNwbGl0KCdfJylcbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn4YOY4YOQ4YOcX+GDl+GDlOGDkV/hg5vhg5Dhg6Bf4YOQ4YOe4YOgX+GDm+GDkOGDmF/hg5jhg5Xhg5xf4YOY4YOV4YOaX+GDkOGDkuGDlV/hg6Hhg5Thg6Vf4YOd4YOl4YOiX+GDnOGDneGDlF/hg5Phg5Thg5knLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDoge1xuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ+GDmeGDleGDmOGDoOGDkF/hg53hg6Dhg6jhg5Dhg5Hhg5Dhg5fhg5hf4YOh4YOQ4YOb4YOo4YOQ4YOR4YOQ4YOX4YOYX+GDneGDl+GDruGDqOGDkOGDkeGDkOGDl+GDmF/hg67hg6Phg5fhg6jhg5Dhg5Hhg5Dhg5fhg5hf4YOe4YOQ4YOg4YOQ4YOh4YOZ4YOU4YOV4YOYX+GDqOGDkOGDkeGDkOGDl+GDmCcuc3BsaXQoJ18nKSxcbiAgICAgICAgICAgIGZvcm1hdDogJ+GDmeGDleGDmOGDoOGDkOGDoV/hg53hg6Dhg6jhg5Dhg5Hhg5Dhg5fhg6Ff4YOh4YOQ4YOb4YOo4YOQ4YOR4YOQ4YOX4YOhX+GDneGDl+GDruGDqOGDkOGDkeGDkOGDl+GDoV/hg67hg6Phg5fhg6jhg5Dhg5Hhg5Dhg5fhg6Ff4YOe4YOQ4YOg4YOQ4YOh4YOZ4YOU4YOV4YOhX+GDqOGDkOGDkeGDkOGDl+GDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgICAgIGlzRm9ybWF0OiAvKOGDrOGDmOGDnOGDkHzhg6jhg5Thg5vhg5Phg5Thg5IpL1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ+GDmeGDleGDmF/hg53hg6Dhg6hf4YOh4YOQ4YObX+GDneGDl+GDrl/hg67hg6Phg5df4YOe4YOQ4YOgX+GDqOGDkOGDkScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn4YOZ4YOVX+GDneGDoF/hg6Hhg5Bf4YOd4YOXX+GDruGDo1/hg57hg5Bf4YOo4YOQJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ2g6bW0gQScsXG4gICAgICAgICAgICBMVFMgOiAnaDptbTpzcyBBJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgaDptbSBBJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW+GDk+GDpuGDlOGDoV0gTFRbLeGDluGDlF0nLFxuICAgICAgICAgICAgbmV4dERheSA6ICdb4YOu4YOV4YOQ4YOaXSBMVFst4YOW4YOUXScsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vhg5Lhg6Phg6jhg5jhg5xdIExUWy3hg5bhg5RdJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ1vhg6jhg5Thg5vhg5Phg5Thg5JdIGRkZGQgTFRbLeGDluGDlF0nLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW+GDrOGDmOGDnOGDkF0gZGRkZCBMVC3hg5bhg5QnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogZnVuY3Rpb24gKHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKC8o4YOs4YOQ4YOb4YOYfOGDrOGDo+GDl+GDmHzhg6Hhg5Dhg5Dhg5fhg5h84YOs4YOU4YOa4YOYKS8pLnRlc3QocykgP1xuICAgICAgICAgICAgICAgICAgICBzLnJlcGxhY2UoL+GDmCQvLCAn4YOo4YOYJykgOlxuICAgICAgICAgICAgICAgICAgICBzICsgJ+GDqOGDmCc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFzdCA6IGZ1bmN0aW9uIChzKSB7XG4gICAgICAgICAgICAgICAgaWYgKCgvKOGDrOGDkOGDm+GDmHzhg6zhg6Phg5fhg5h84YOh4YOQ4YOQ4YOX4YOYfOGDk+GDpuGDlHzhg5fhg5Xhg5QpLykudGVzdChzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcy5yZXBsYWNlKC8o4YOYfOGDlCkkLywgJ+GDmOGDoSDhg6zhg5jhg5wnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCgv4YOs4YOU4YOa4YOYLykudGVzdChzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcy5yZXBsYWNlKC/hg6zhg5Thg5rhg5gkLywgJ+GDrOGDmuGDmOGDoSDhg6zhg5jhg5wnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcyA6ICfhg6Dhg5Dhg5vhg5Phg5Thg5zhg5jhg5vhg5Qg4YOs4YOQ4YOb4YOYJyxcbiAgICAgICAgICAgIHNzIDogJyVkIOGDrOGDkOGDm+GDmCcsXG4gICAgICAgICAgICBtIDogJ+GDrOGDo+GDl+GDmCcsXG4gICAgICAgICAgICBtbSA6ICclZCDhg6zhg6Phg5fhg5gnLFxuICAgICAgICAgICAgaCA6ICfhg6Hhg5Dhg5Dhg5fhg5gnLFxuICAgICAgICAgICAgaGggOiAnJWQg4YOh4YOQ4YOQ4YOX4YOYJyxcbiAgICAgICAgICAgIGQgOiAn4YOT4YOm4YOUJyxcbiAgICAgICAgICAgIGRkIDogJyVkIOGDk+GDpuGDlCcsXG4gICAgICAgICAgICBNIDogJ+GDl+GDleGDlCcsXG4gICAgICAgICAgICBNTSA6ICclZCDhg5fhg5Xhg5QnLFxuICAgICAgICAgICAgeSA6ICfhg6zhg5Thg5rhg5gnLFxuICAgICAgICAgICAgeXkgOiAnJWQg4YOs4YOU4YOa4YOYJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvMHwxLeGDmuGDmHzhg5vhg5QtXFxkezEsMn18XFxkezEsMn0t4YOULyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLeGDmuGDmCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKG51bWJlciA8IDIwKSB8fCAobnVtYmVyIDw9IDEwMCAmJiAobnVtYmVyICUgMjAgPT09IDApKSB8fCAobnVtYmVyICUgMTAwID09PSAwKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4YOb4YOULScgKyBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3hg5QnO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSxcbiAgICAgICAgICAgIGRveSA6IDdcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGthO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgc3VmZml4ZXMgPSB7XG4gICAgICAgIDA6ICct0YjRlicsXG4gICAgICAgIDE6ICct0YjRlicsXG4gICAgICAgIDI6ICct0YjRlicsXG4gICAgICAgIDM6ICct0YjRlicsXG4gICAgICAgIDQ6ICct0YjRlicsXG4gICAgICAgIDU6ICct0YjRlicsXG4gICAgICAgIDY6ICct0YjRiycsXG4gICAgICAgIDc6ICct0YjRlicsXG4gICAgICAgIDg6ICct0YjRlicsXG4gICAgICAgIDk6ICct0YjRiycsXG4gICAgICAgIDEwOiAnLdGI0YsnLFxuICAgICAgICAyMDogJy3RiNGLJyxcbiAgICAgICAgMzA6ICct0YjRiycsXG4gICAgICAgIDQwOiAnLdGI0YsnLFxuICAgICAgICA1MDogJy3RiNGWJyxcbiAgICAgICAgNjA6ICct0YjRiycsXG4gICAgICAgIDcwOiAnLdGI0ZYnLFxuICAgICAgICA4MDogJy3RiNGWJyxcbiAgICAgICAgOTA6ICct0YjRiycsXG4gICAgICAgIDEwMDogJy3RiNGWJ1xuICAgIH07XG5cbiAgICB2YXIga2sgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdraycsIHtcbiAgICAgICAgbW9udGhzIDogJ9Kb0LDSo9GC0LDRgF/QsNKb0L/QsNC9X9C90LDRg9GA0YvQt1/RgdOZ0YPRltGAX9C80LDQvNGL0YBf0LzQsNGD0YHRi9C8X9GI0ZbQu9C00LVf0YLQsNC80YvQt1/Sm9GL0YDQutKv0LnQtdC6X9Kb0LDQt9Cw0L1f0pvQsNGA0LDRiNCwX9C20LXQu9GC0L7Sm9GB0LDQvScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn0pvQsNKjX9Cw0pvQv1/QvdCw0YNf0YHTmdGDX9C80LDQvF/QvNCw0YNf0YjRltC7X9GC0LDQvF/Sm9GL0YBf0pvQsNC3X9Kb0LDRgF/QttC10LsnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ9C20LXQutGB0LXQvdCx0ZZf0LTSr9C50YHQtdC90LHRll/RgdC10LnRgdC10L3QsdGWX9GB05nRgNGB0LXQvdCx0ZZf0LHQtdC50YHQtdC90LHRll/QttKx0LzQsF/RgdC10L3QsdGWJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ9C20LXQul/QtNKv0Llf0YHQtdC5X9GB05nRgF/QsdC10Llf0LbSsdC8X9GB0LXQvScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn0LbQul/QtNC5X9GB0Llf0YHRgF/QsdC5X9C20Lxf0YHQvScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW9CR0q/Qs9GW0L0g0YHQsNKT0LDRgl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdb0JXRgNGC0LXSoyDRgdCw0pPQsNGCXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFvRgdCw0pPQsNGCXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vQmtC10YjQtSDRgdCw0pPQsNGCXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdb06jRgtC60LXQvSDQsNC/0YLQsNC90YvSo10gZGRkZCBb0YHQsNKT0LDRgl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJyVzINGW0YjRltC90LTQtScsXG4gICAgICAgICAgICBwYXN0IDogJyVzINCx0rHRgNGL0L0nLFxuICAgICAgICAgICAgcyA6ICfQsdGW0YDQvdC10YjQtSDRgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgc3MgOiAnJWQg0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIG0gOiAn0LHRltGAINC80LjQvdGD0YInLFxuICAgICAgICAgICAgbW0gOiAnJWQg0LzQuNC90YPRgicsXG4gICAgICAgICAgICBoIDogJ9Cx0ZbRgCDRgdCw0pPQsNGCJyxcbiAgICAgICAgICAgIGhoIDogJyVkINGB0LDSk9Cw0YInLFxuICAgICAgICAgICAgZCA6ICfQsdGW0YAg0LrSr9C9JyxcbiAgICAgICAgICAgIGRkIDogJyVkINC60q/QvScsXG4gICAgICAgICAgICBNIDogJ9Cx0ZbRgCDQsNC5JyxcbiAgICAgICAgICAgIE1NIDogJyVkINCw0LknLFxuICAgICAgICAgICAgeSA6ICfQsdGW0YAg0LbRi9C7JyxcbiAgICAgICAgICAgIHl5IDogJyVkINC20YvQuydcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjRiNGWfNGI0YspLyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBhID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgYiA9IG51bWJlciA+PSAxMDAgPyAxMDAgOiBudWxsO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIChzdWZmaXhlc1tudW1iZXJdIHx8IHN1ZmZpeGVzW2FdIHx8IHN1ZmZpeGVzW2JdKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNyAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4ga2s7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICcxJzogJ+GfoScsXG4gICAgICAgICcyJzogJ+GfoicsXG4gICAgICAgICczJzogJ+GfoycsXG4gICAgICAgICc0JzogJ+GfpCcsXG4gICAgICAgICc1JzogJ+GfpScsXG4gICAgICAgICc2JzogJ+GfpicsXG4gICAgICAgICc3JzogJ+GfpycsXG4gICAgICAgICc4JzogJ+GfqCcsXG4gICAgICAgICc5JzogJ+GfqScsXG4gICAgICAgICcwJzogJ+GfoCdcbiAgICB9LCBudW1iZXJNYXAgPSB7XG4gICAgICAgICfhn6EnOiAnMScsXG4gICAgICAgICfhn6InOiAnMicsXG4gICAgICAgICfhn6MnOiAnMycsXG4gICAgICAgICfhn6QnOiAnNCcsXG4gICAgICAgICfhn6UnOiAnNScsXG4gICAgICAgICfhn6YnOiAnNicsXG4gICAgICAgICfhn6cnOiAnNycsXG4gICAgICAgICfhn6gnOiAnOCcsXG4gICAgICAgICfhn6knOiAnOScsXG4gICAgICAgICfhn6AnOiAnMCdcbiAgICB9O1xuXG4gICAgdmFyIGttID0gbW9tZW50LmRlZmluZUxvY2FsZSgna20nLCB7XG4gICAgICAgIG1vbnRoczogJ+GemOGegOGemuGetl/hnoDhnrvhnpjhn5Lhnpfhn4hf4Z6Y4Z644Z6T4Z62X+GemOGfgeGen+Getl/hnqfhnp/hnpfhnrZf4Z6Y4Z634Z6Q4Z674Z6T4Z62X+GegOGegOGfkuGegOGeiuGetl/hnp/hnrjhnqDhnrZf4Z6A4Z6J4Z+S4Z6J4Z62X+Gej+Geu+Gem+Getl/hnpzhnrfhnoXhn5LhnobhnrfhnoDhnrZf4Z6S4Z+S4Z6T4Z68Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICBtb250aHNTaG9ydDogJ+GemOGegOGemuGetl/hnoDhnrvhnpjhn5Lhnpfhn4hf4Z6Y4Z644Z6T4Z62X+GemOGfgeGen+Getl/hnqfhnp/hnpfhnrZf4Z6Y4Z634Z6Q4Z674Z6T4Z62X+GegOGegOGfkuGegOGeiuGetl/hnp/hnrjhnqDhnrZf4Z6A4Z6J4Z+S4Z6J4Z62X+Gej+Geu+Gem+Getl/hnpzhnrfhnoXhn5LhnobhnrfhnoDhnrZf4Z6S4Z+S4Z6T4Z68Jy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5czogJ+GeouGetuGekeGet+Gej+GfkuGemV/hnoXhn5DhnpPhn5LhnpFf4Z6i4Z6E4Z+S4Z6C4Z624Z6aX+GeluGeu+Gekl/hnpbhn5LhnprhnqDhnp/hn5LhnpThno/hnrfhn41f4Z6f4Z674Z6A4Z+S4Z6aX+Gen+GfheGemuGfjScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ+GeouGetl/hnoVf4Z6iX+Gell/hnpbhn5Lhnppf4Z6f4Z67X+Genycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfhnqLhnrZf4Z6FX+Geol/hnpZf4Z6W4Z+S4Z6aX+Gen+Geu1/hnp8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEw6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/hnpbhn5LhnprhnrnhnoB84Z6b4Z+S4Z6E4Z624Z6FLyxcbiAgICAgICAgaXNQTTogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgPT09ICfhnpvhn5LhnoThnrbhnoUnO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Z6W4Z+S4Z6a4Z654Z6AJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfhnpvhn5LhnoThnrbhnoUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1vhnpDhn5LhnoThn4PhnpPhn4Hhn4cg4Z6Y4Z+J4Z+E4Z6EXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW+Gen+GfkuGeouGfguGegCDhnpjhn4nhn4ThnoRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBb4Z6Y4Z+J4Z+E4Z6EXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW+GemOGfkuGen+Get+Gem+GemOGet+GeiSDhnpjhn4nhn4ThnoRdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBb4Z6f4Z6U4Z+S4Z6P4Z624Z6g4Z+N4Z6Y4Z674Z6TXSBb4Z6Y4Z+J4Z+E4Z6EXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZToge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPhnpHhn4Dhno8nLFxuICAgICAgICAgICAgcGFzdDogJyVz4Z6Y4Z674Z6TJyxcbiAgICAgICAgICAgIHM6ICfhnpThn4nhnrvhnpPhn5LhnpjhnrbhnpPhnpzhnrfhnpPhnrbhnpHhnrgnLFxuICAgICAgICAgICAgc3M6ICclZCDhnpzhnrfhnpPhnrbhnpHhnrgnLFxuICAgICAgICAgICAgbTogJ+GemOGeveGemeGek+GetuGekeGeuCcsXG4gICAgICAgICAgICBtbTogJyVkIOGek+GetuGekeGeuCcsXG4gICAgICAgICAgICBoOiAn4Z6Y4Z694Z6Z4Z6Y4Z+J4Z+E4Z6EJyxcbiAgICAgICAgICAgIGhoOiAnJWQg4Z6Y4Z+J4Z+E4Z6EJyxcbiAgICAgICAgICAgIGQ6ICfhnpjhnr3hnpnhnpDhn5LhnoThn4MnLFxuICAgICAgICAgICAgZGQ6ICclZCDhnpDhn5LhnoThn4MnLFxuICAgICAgICAgICAgTTogJ+GemOGeveGemeGegeGfgicsXG4gICAgICAgICAgICBNTTogJyVkIOGegeGfgicsXG4gICAgICAgICAgICB5OiAn4Z6Y4Z694Z6Z4Z6G4Z+S4Z6T4Z624Z+GJyxcbiAgICAgICAgICAgIHl5OiAnJWQg4Z6G4Z+S4Z6T4Z624Z+GJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlIDogL+GekeGeuFxcZHsxLDJ9LyxcbiAgICAgICAgb3JkaW5hbCA6ICfhnpHhnrglZCcsXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vhn6Hhn6Lhn6Phn6Thn6Xhn6bhn6fhn6jhn6nhn6BdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWs6IHtcbiAgICAgICAgICAgIGRvdzogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3k6IDQgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4ga207XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICcxJzogJ+CzpycsXG4gICAgICAgICcyJzogJ+CzqCcsXG4gICAgICAgICczJzogJ+CzqScsXG4gICAgICAgICc0JzogJ+CzqicsXG4gICAgICAgICc1JzogJ+CzqycsXG4gICAgICAgICc2JzogJ+CzrCcsXG4gICAgICAgICc3JzogJ+CzrScsXG4gICAgICAgICc4JzogJ+CzricsXG4gICAgICAgICc5JzogJ+CzrycsXG4gICAgICAgICcwJzogJ+CzpidcbiAgICB9LFxuICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgJ+Czpyc6ICcxJyxcbiAgICAgICAgJ+CzqCc6ICcyJyxcbiAgICAgICAgJ+CzqSc6ICczJyxcbiAgICAgICAgJ+Czqic6ICc0JyxcbiAgICAgICAgJ+Czqyc6ICc1JyxcbiAgICAgICAgJ+CzrCc6ICc2JyxcbiAgICAgICAgJ+CzrSc6ICc3JyxcbiAgICAgICAgJ+Czric6ICc4JyxcbiAgICAgICAgJ+Czryc6ICc5JyxcbiAgICAgICAgJ+Czpic6ICcwJ1xuICAgIH07XG5cbiAgICB2YXIga24gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdrbicsIHtcbiAgICAgICAgbW9udGhzIDogJ+CynOCyqOCyteCysOCyv1/gsqvgs4bgsqzgs43gsrDgsrXgsrDgsr9f4LKu4LK+4LKw4LON4LKa4LONX+Cyj+CyquCzjeCysOCyv+CysuCzjV/gsq7gs4bgs5Vf4LKc4LOC4LKo4LONX+CynOCzgeCysuCzhuCzll/gsobgspfgsrjgs43gsp/gs41f4LK44LOG4LKq4LON4LKf4LOG4LKC4LKs4LKw4LONX+CyheCyleCzjeCyn+CzhuCzguCzleCyrOCysOCzjV/gsqjgsrXgs4bgsoLgsqzgsrDgs41f4LKh4LK/4LK44LOG4LKC4LKs4LKw4LONJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICfgspzgsqhf4LKr4LOG4LKs4LON4LKwX+CyruCyvuCysOCzjeCymuCzjV/gso/gsqrgs43gsrDgsr/gsrLgs41f4LKu4LOG4LOVX+CynOCzguCyqOCzjV/gspzgs4HgsrLgs4bgs5Zf4LKG4LKX4LK44LON4LKf4LONX+CyuOCzhuCyquCzjeCyn+CzhuCygl/gsoXgspXgs43gsp/gs4bgs4Lgs5Vf4LKo4LK14LOG4LKCX+CyoeCyv+CyuOCzhuCygicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiAn4LKt4LK+4LKo4LOB4LK14LK+4LKwX+CyuOCzhuCzguCzleCyruCyteCyvuCysF/gsq7gsoLgspfgsrPgsrXgsr7gsrBf4LKs4LOB4LKn4LK14LK+4LKwX+Cyl+CzgeCysOCzgeCyteCyvuCysF/gsrbgs4HgspXgs43gsrDgsrXgsr7gsrBf4LK24LKo4LK/4LK14LK+4LKwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ+CyreCyvuCyqOCzgV/gsrjgs4bgs4Lgs5Xgsq5f4LKu4LKC4LKX4LKzX+CyrOCzgeCyp1/gspfgs4HgsrDgs4Ff4LK24LOB4LKV4LON4LKwX+CytuCyqOCyvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn4LKt4LK+X+CyuOCzhuCzguCzlV/gsq7gsoJf4LKs4LOBX+Cyl+CzgV/gsrbgs4Ff4LK2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0EgaDptbScsXG4gICAgICAgICAgICBMVFMgOiAnQSBoOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVksIEEgaDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdb4LKH4LKC4LKm4LOBXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vgsqjgsr7gsrPgs4ZdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQsIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW+CyqOCyv+CyqOCzjeCyqOCzhl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW+CyleCzhuCzguCyqOCzhuCyr10gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJyVzIOCyqOCyguCypOCysCcsXG4gICAgICAgICAgICBwYXN0IDogJyVzIOCyueCyv+CyguCypuCzhicsXG4gICAgICAgICAgICBzIDogJ+CyleCzhuCysuCyteCzgSDgspXgs43gsrfgsqPgspfgsrPgs4EnLFxuICAgICAgICAgICAgc3MgOiAnJWQg4LK44LOG4LKV4LOG4LKC4LKh4LOB4LKX4LKz4LOBJyxcbiAgICAgICAgICAgIG0gOiAn4LKS4LKC4LKm4LOBIOCyqOCyv+CyruCyv+CytycsXG4gICAgICAgICAgICBtbSA6ICclZCDgsqjgsr/gsq7gsr/gsrcnLFxuICAgICAgICAgICAgaCA6ICfgspLgsoLgsqbgs4Eg4LKX4LKC4LKf4LOGJyxcbiAgICAgICAgICAgIGhoIDogJyVkIOCyl+CyguCyn+CzhicsXG4gICAgICAgICAgICBkIDogJ+CykuCyguCypuCzgSDgsqbgsr/gsqgnLFxuICAgICAgICAgICAgZGQgOiAnJWQg4LKm4LK/4LKoJyxcbiAgICAgICAgICAgIE0gOiAn4LKS4LKC4LKm4LOBIOCypOCyv+CyguCyl+Cys+CzgScsXG4gICAgICAgICAgICBNTSA6ICclZCDgsqTgsr/gsoLgspfgsrPgs4EnLFxuICAgICAgICAgICAgeSA6ICfgspLgsoLgsqbgs4Eg4LK14LKw4LON4LK3JyxcbiAgICAgICAgICAgIHl5IDogJyVkIOCyteCysOCzjeCytydcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+Czp+CzqOCzqeCzquCzq+CzrOCzreCzruCzr+Czpl0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CysOCyvuCypOCzjeCysOCyv3zgsqzgs4bgsrPgsr/gspfgs43gspfgs4Z84LKu4LKn4LON4LKv4LK+4LK54LON4LKofOCyuOCyguCynOCzhi8sXG4gICAgICAgIG1lcmlkaWVtSG91ciA6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgsrDgsr7gsqTgs43gsrDgsr8nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgsqzgs4bgsrPgsr/gspfgs43gspfgs4YnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4LKu4LKn4LON4LKv4LK+4LK54LON4LKoJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDEwID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgsrjgsoLgspzgs4YnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CysOCyvuCypOCzjeCysOCyvyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LKs4LOG4LKz4LK/4LKX4LON4LKX4LOGJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsq7gsqfgs43gsq/gsr7gsrngs43gsqgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CyuOCyguCynOCzhic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LKw4LK+4LKk4LON4LKw4LK/JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KOCyqOCzhuCzlSkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfgsqjgs4bgs5UnO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA2ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBrbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIGtvID0gbW9tZW50LmRlZmluZUxvY2FsZSgna28nLCB7XG4gICAgICAgIG1vbnRocyA6ICcx7JuUXzLsm5RfM+yblF807JuUXzXsm5RfNuyblF837JuUXzjsm5RfOeyblF8xMOyblF8xMeyblF8xMuyblCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnMeyblF8y7JuUXzPsm5RfNOyblF817JuUXzbsm5RfN+yblF847JuUXznsm5RfMTDsm5RfMTHsm5RfMTLsm5QnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ+ydvOyalOydvF/sm5TsmpTsnbxf7ZmU7JqU7J28X+yImOyalOydvF/rqqnsmpTsnbxf6riI7JqU7J28X+2GoOyalOydvCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfsnbxf7JuUX+2ZlF/siJhf66qpX+q4iF/thqAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ+ydvF/sm5Rf7ZmUX+yImF/rqqlf6riIX+2GoCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdBIGg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0EgaDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ1lZWVkuTU0uREQuJyxcbiAgICAgICAgICAgIExMIDogJ1lZWVnrhYQgTU1NTSBE7J28JyxcbiAgICAgICAgICAgIExMTCA6ICdZWVlZ64WEIE1NTU0gROydvCBBIGg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdZWVlZ64WEIE1NTU0gROydvCBkZGRkIEEgaDptbScsXG4gICAgICAgICAgICBsIDogJ1lZWVkuTU0uREQuJyxcbiAgICAgICAgICAgIGxsIDogJ1lZWVnrhYQgTU1NTSBE7J28JyxcbiAgICAgICAgICAgIGxsbCA6ICdZWVlZ64WEIE1NTU0gROydvCBBIGg6bW0nLFxuICAgICAgICAgICAgbGxsbCA6ICdZWVlZ64WEIE1NTU0gROydvCBkZGRkIEEgaDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ+yYpOuKmCBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ+uCtOydvCBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAn7Ja07KCcIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ+yngOuCnOyjvCBkZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICclcyDtm4QnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyDsoIQnLFxuICAgICAgICAgICAgcyA6ICfrqocg7LSIJyxcbiAgICAgICAgICAgIHNzIDogJyVk7LSIJyxcbiAgICAgICAgICAgIG0gOiAnMeu2hCcsXG4gICAgICAgICAgICBtbSA6ICclZOu2hCcsXG4gICAgICAgICAgICBoIDogJ+2VnCDsi5zqsIQnLFxuICAgICAgICAgICAgaGggOiAnJWTsi5zqsIQnLFxuICAgICAgICAgICAgZCA6ICftlZjro6gnLFxuICAgICAgICAgICAgZGQgOiAnJWTsnbwnLFxuICAgICAgICAgICAgTSA6ICftlZwg64usJyxcbiAgICAgICAgICAgIE1NIDogJyVk64usJyxcbiAgICAgICAgICAgIHkgOiAn7J28IOuFhCcsXG4gICAgICAgICAgICB5eSA6ICclZOuFhCdcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZSA6IC9cXGR7MSwyfSjsnbx87JuUfOyjvCkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn7J28JztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfsm5QnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+yjvCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZSA6IC/smKTsoIR87Jik7ZuELyxcbiAgICAgICAgaXNQTSA6IGZ1bmN0aW9uICh0b2tlbikge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuID09PSAn7Jik7ZuEJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc1VwcGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gaG91ciA8IDEyID8gJ+yYpOyghCcgOiAn7Jik7ZuEJztcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGtvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAnMSc6ICfZoScsXG4gICAgICAgICcyJzogJ9miJyxcbiAgICAgICAgJzMnOiAn2aMnLFxuICAgICAgICAnNCc6ICfZpCcsXG4gICAgICAgICc1JzogJ9mlJyxcbiAgICAgICAgJzYnOiAn2aYnLFxuICAgICAgICAnNyc6ICfZpycsXG4gICAgICAgICc4JzogJ9moJyxcbiAgICAgICAgJzknOiAn2aknLFxuICAgICAgICAnMCc6ICfZoCdcbiAgICB9LCBudW1iZXJNYXAgPSB7XG4gICAgICAgICfZoSc6ICcxJyxcbiAgICAgICAgJ9miJzogJzInLFxuICAgICAgICAn2aMnOiAnMycsXG4gICAgICAgICfZpCc6ICc0JyxcbiAgICAgICAgJ9mlJzogJzUnLFxuICAgICAgICAn2aYnOiAnNicsXG4gICAgICAgICfZpyc6ICc3JyxcbiAgICAgICAgJ9moJzogJzgnLFxuICAgICAgICAn2aknOiAnOScsXG4gICAgICAgICfZoCc6ICcwJ1xuICAgIH0sXG4gICAgbW9udGhzID0gW1xuICAgICAgICAn2qnYp9mG2YjZhtuMINiv2YjZiNuV2YUnLFxuICAgICAgICAn2LTZiNio2KfYqicsXG4gICAgICAgICfYptin2LLYp9ixJyxcbiAgICAgICAgJ9mG24zYs9in2YYnLFxuICAgICAgICAn2KbYp9uM2KfYsScsXG4gICAgICAgICfYrdmI2LLblduM2LHYp9mGJyxcbiAgICAgICAgJ9iq25XZhdmF2YjYsicsXG4gICAgICAgICfYptin2KgnLFxuICAgICAgICAn2KbblduM2YTZiNmI2YQnLFxuICAgICAgICAn2KrYtNix24zZhtuMINuM25XZg9uV2YUnLFxuICAgICAgICAn2KrYtNix24zZhtuMINiv2YjZiNuV2YUnLFxuICAgICAgICAn2YPYp9mG2YjZhtuMINuM25XaqduV2YUnXG4gICAgXTtcblxuXG4gICAgdmFyIGt1ID0gbW9tZW50LmRlZmluZUxvY2FsZSgna3UnLCB7XG4gICAgICAgIG1vbnRocyA6IG1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQgOiBtb250aHMsXG4gICAgICAgIHdlZWtkYXlzIDogJ9uM2YfigIzZg9i02YfigIzZhdmF2YfigIxf2K/ZiNmI2LTZh+KAjNmF2YXZh+KAjF/Ys9uO2LTZh+KAjNmF2YXZh+KAjF/ahtmI2KfYsdi02YfigIzZhdmF2YfigIxf2b7bjtmG2KzYtNmH4oCM2YXZhdmH4oCMX9mH2YfigIzbjNmG24xf2LTZh+KAjNmF2YXZh+KAjCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfbjNmH4oCM2YPYtNmH4oCM2YVf2K/ZiNmI2LTZh+KAjNmFX9iz247YtNmH4oCM2YVf2obZiNin2LHYtNmH4oCM2YVf2b7bjtmG2KzYtNmH4oCM2YVf2YfZh+KAjNuM2YbbjF/YtNmH4oCM2YXZhdmH4oCMJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfbjF/Yr1/Ys1/ahl/Zvl/Zh1/YtCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2KbbjtmI2KfYsdmH4oCMfNio2YfigIzbjNin2YbbjC8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC/YptuO2YjYp9ix2YfigIwvLnRlc3QoaW5wdXQpO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMTIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9io2YfigIzbjNin2YbbjCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2KbbjtmI2KfYsdmH4oCMJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1vYptmH4oCM2YXYsduGINmD2KfYqtqY2YXbjtixXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vYqNmH4oCM24zYp9mG24wg2YPYp9iq2pjZhduO2LFdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW9mD2KfYqtqY2YXbjtixXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vYr9mI247ZhtuOINmD2KfYqtqY2YXbjtixXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdkZGRkIFvZg9in2KramNmF247YsV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ9mE2YfigIwgJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcycsXG4gICAgICAgICAgICBzIDogJ9qG2YfigIzZhtivINqG2LHZg9mH4oCM24zZh+KAjNmDJyxcbiAgICAgICAgICAgIHNzIDogJ9qG2LHZg9mH4oCMICVkJyxcbiAgICAgICAgICAgIG0gOiAn24zZh+KAjNmDINiu2YjZhNmH4oCM2YMnLFxuICAgICAgICAgICAgbW0gOiAnJWQg2K7ZiNmE2YfigIzZgycsXG4gICAgICAgICAgICBoIDogJ9uM2YfigIzZgyDZg9in2KramNmF247YsScsXG4gICAgICAgICAgICBoaCA6ICclZCDZg9in2KramNmF247YsScsXG4gICAgICAgICAgICBkIDogJ9uM2YfigIzZgyDalduG2pgnLFxuICAgICAgICAgICAgZGQgOiAnJWQg2pXbhtqYJyxcbiAgICAgICAgICAgIE0gOiAn24zZh+KAjNmDINmF2KfZhtqvJyxcbiAgICAgICAgICAgIE1NIDogJyVkINmF2KfZhtqvJyxcbiAgICAgICAgICAgIHkgOiAn24zZh+KAjNmDINiz2KfatScsXG4gICAgICAgICAgICB5eSA6ICclZCDYs9in2rUnXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vZodmi2aPZpNml2abZp9mo2anZoF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KS5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogMTIgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGt1O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgc3VmZml4ZXMgPSB7XG4gICAgICAgIDA6ICct0YfSrycsXG4gICAgICAgIDE6ICct0YfQuCcsXG4gICAgICAgIDI6ICct0YfQuCcsXG4gICAgICAgIDM6ICct0YfSrycsXG4gICAgICAgIDQ6ICct0YfSrycsXG4gICAgICAgIDU6ICct0YfQuCcsXG4gICAgICAgIDY6ICct0YfRiycsXG4gICAgICAgIDc6ICct0YfQuCcsXG4gICAgICAgIDg6ICct0YfQuCcsXG4gICAgICAgIDk6ICct0YfRgycsXG4gICAgICAgIDEwOiAnLdGH0YMnLFxuICAgICAgICAyMDogJy3Rh9GLJyxcbiAgICAgICAgMzA6ICct0YfRgycsXG4gICAgICAgIDQwOiAnLdGH0YsnLFxuICAgICAgICA1MDogJy3Rh9KvJyxcbiAgICAgICAgNjA6ICct0YfRiycsXG4gICAgICAgIDcwOiAnLdGH0LgnLFxuICAgICAgICA4MDogJy3Rh9C4JyxcbiAgICAgICAgOTA6ICct0YfRgycsXG4gICAgICAgIDEwMDogJy3Rh9KvJ1xuICAgIH07XG5cbiAgICB2YXIga3kgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdreScsIHtcbiAgICAgICAgbW9udGhzIDogJ9GP0L3QstCw0YDRjF/RhNC10LLRgNCw0LvRjF/QvNCw0YDRgl/QsNC/0YDQtdC70Yxf0LzQsNC5X9C40Y7QvdGMX9C40Y7Qu9GMX9Cw0LLQs9GD0YHRgl/RgdC10L3RgtGP0LHRgNGMX9C+0LrRgtGP0LHRgNGMX9C90L7Rj9Cx0YDRjF/QtNC10LrQsNCx0YDRjCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn0Y/QvdCyX9GE0LXQsl/QvNCw0YDRgl/QsNC/0YBf0LzQsNC5X9C40Y7QvdGMX9C40Y7Qu9GMX9Cw0LLQs1/RgdC10L1f0L7QutGCX9C90L7Rj1/QtNC10LonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ9CW0LXQutGI0LXQvNCx0Lhf0JTSr9C50YjTqdC80LHSr1/QqNC10LnRiNC10LzQsdC4X9Co0LDRgNGI0LXQvNCx0Lhf0JHQtdC50YjQtdC80LHQuF/QltGD0LzQsF/QmNGI0LXQvNCx0LgnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn0JbQtdC6X9CU0q/QuV/QqNC10Llf0KjQsNGAX9CR0LXQuV/QltGD0Lxf0JjRiNC1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfQltC6X9CU0Llf0KjQuV/QqNGAX9CR0Llf0JbQvF/QmNGIJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdb0JHSr9Cz0q/QvSDRgdCw0LDRgl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdb0K3RgNGC0LXSoyDRgdCw0LDRgl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBb0YHQsNCw0YJdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW9Ca0LXRh9GN0Y0g0YHQsNCw0YJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1vTqNGC0LrTqdC9INCw0L/RgtCw0L3Ri9C9XSBkZGRkIFvQutKv0L3Sr10gW9GB0LDQsNGCXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnJXMg0LjRh9C40L3QtNC1JyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMg0LzRg9GA0YPQvScsXG4gICAgICAgICAgICBzIDogJ9Cx0LjRgNC90LXRh9C1INGB0LXQutGD0L3QtCcsXG4gICAgICAgICAgICBzcyA6ICclZCDRgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgbSA6ICfQsdC40YAg0LzSr9C906nRgicsXG4gICAgICAgICAgICBtbSA6ICclZCDQvNKv0L3TqdGCJyxcbiAgICAgICAgICAgIGggOiAn0LHQuNGAINGB0LDQsNGCJyxcbiAgICAgICAgICAgIGhoIDogJyVkINGB0LDQsNGCJyxcbiAgICAgICAgICAgIGQgOiAn0LHQuNGAINC60q/QvScsXG4gICAgICAgICAgICBkZCA6ICclZCDQutKv0L0nLFxuICAgICAgICAgICAgTSA6ICfQsdC40YAg0LDQuScsXG4gICAgICAgICAgICBNTSA6ICclZCDQsNC5JyxcbiAgICAgICAgICAgIHkgOiAn0LHQuNGAINC20YvQuycsXG4gICAgICAgICAgICB5eSA6ICclZCDQttGL0LsnXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfS0o0YfQuHzRh9GLfNGH0q980YfRgykvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGEgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBiID0gbnVtYmVyID49IDEwMCA/IDEwMCA6IG51bGw7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHN1ZmZpeGVzW251bWJlcl0gfHwgc3VmZml4ZXNbYV0gfHwgc3VmZml4ZXNbYl0pO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA3ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBreTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgZnVuY3Rpb24gcHJvY2Vzc1JlbGF0aXZlVGltZShudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleSwgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgICdtJzogWydlbmcgTWludXR0JywgJ2VuZ2VyIE1pbnV0dCddLFxuICAgICAgICAgICAgJ2gnOiBbJ2VuZyBTdG9ubicsICdlbmdlciBTdG9ubiddLFxuICAgICAgICAgICAgJ2QnOiBbJ2VlbiBEYWcnLCAnZW5nZW0gRGFnJ10sXG4gICAgICAgICAgICAnTSc6IFsnZWUgTW91bnQnLCAnZW5nZW0gTW91bnQnXSxcbiAgICAgICAgICAgICd5JzogWydlZSBKb2VyJywgJ2VuZ2VtIEpvZXInXVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NGdXR1cmVUaW1lKHN0cmluZykge1xuICAgICAgICB2YXIgbnVtYmVyID0gc3RyaW5nLnN1YnN0cigwLCBzdHJpbmcuaW5kZXhPZignICcpKTtcbiAgICAgICAgaWYgKGVpZmVsZXJSZWdlbEFwcGxpZXNUb051bWJlcihudW1iZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2EgJyArIHN0cmluZztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ2FuICcgKyBzdHJpbmc7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NQYXN0VGltZShzdHJpbmcpIHtcbiAgICAgICAgdmFyIG51bWJlciA9IHN0cmluZy5zdWJzdHIoMCwgc3RyaW5nLmluZGV4T2YoJyAnKSk7XG4gICAgICAgIGlmIChlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIobnVtYmVyKSkge1xuICAgICAgICAgICAgcmV0dXJuICd2aXJ1ICcgKyBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICd2aXJ1biAnICsgc3RyaW5nO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHdvcmQgYmVmb3JlIHRoZSBnaXZlbiBudW1iZXIgbG9zZXMgdGhlICctbicgZW5kaW5nLlxuICAgICAqIGUuZy4gJ2FuIDEwIERlZWcnIGJ1dCAnYSA1IERlZWcnXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbnVtYmVyIHtpbnRlZ2VyfVxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGVpZmVsZXJSZWdlbEFwcGxpZXNUb051bWJlcihudW1iZXIpIHtcbiAgICAgICAgbnVtYmVyID0gcGFyc2VJbnQobnVtYmVyLCAxMCk7XG4gICAgICAgIGlmIChpc05hTihudW1iZXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIC8vIE5lZ2F0aXZlIE51bWJlciAtLT4gYWx3YXlzIHRydWVcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDEwKSB7XG4gICAgICAgICAgICAvLyBPbmx5IDEgZGlnaXRcbiAgICAgICAgICAgIGlmICg0IDw9IG51bWJlciAmJiBudW1iZXIgPD0gNykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDEwMCkge1xuICAgICAgICAgICAgLy8gMiBkaWdpdHNcbiAgICAgICAgICAgIHZhciBsYXN0RGlnaXQgPSBudW1iZXIgJSAxMCwgZmlyc3REaWdpdCA9IG51bWJlciAvIDEwO1xuICAgICAgICAgICAgaWYgKGxhc3REaWdpdCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIoZmlyc3REaWdpdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyKGxhc3REaWdpdCk7XG4gICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgMTAwMDApIHtcbiAgICAgICAgICAgIC8vIDMgb3IgNCBkaWdpdHMgLS0+IHJlY3Vyc2l2ZWx5IGNoZWNrIGZpcnN0IGRpZ2l0XG4gICAgICAgICAgICB3aGlsZSAobnVtYmVyID49IDEwKSB7XG4gICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyIC8gMTA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZWlmZWxlclJlZ2VsQXBwbGllc1RvTnVtYmVyKG51bWJlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBBbnl0aGluZyBsYXJnZXIgdGhhbiA0IGRpZ2l0czogcmVjdXJzaXZlbHkgY2hlY2sgZmlyc3Qgbi0zIGRpZ2l0c1xuICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyIC8gMTAwMDtcbiAgICAgICAgICAgIHJldHVybiBlaWZlbGVyUmVnZWxBcHBsaWVzVG9OdW1iZXIobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBsYiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2xiJywge1xuICAgICAgICBtb250aHM6ICdKYW51YXJfRmVicnVhcl9Nw6RlcnpfQWJyw6tsbF9NZWVfSnVuaV9KdWxpX0F1Z3VzdF9TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXplbWJlcicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdKYW4uX0ZlYnIuX01yei5fQWJyLl9NZWVfSnVuLl9KdWwuX0F1Zy5fU2VwdC5fT2t0Ll9Ob3YuX0Rlei4nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ1Nvbm5kZWdfTcOpaW5kZWdfRMOrbnNjaGRlZ19Nw6t0dHdvY2hfRG9ubmVzY2hkZWdfRnJlaWRlZ19TYW1zY2hkZWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdTby5fTcOpLl9Ew6suX03Dqy5fRG8uX0ZyLl9TYS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnU29fTcOpX0TDq19Nw6tfRG9fRnJfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0gW0F1ZXJdJyxcbiAgICAgICAgICAgIExUUzogJ0g6bW06c3MgW0F1ZXJdJyxcbiAgICAgICAgICAgIEw6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QuIE1NTU0gWVlZWSBIOm1tIFtBdWVyXScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0gW0F1ZXJdJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tIYXV0IHVtXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tNdWVyIHVtXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3VtXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW0fDq3NjaHRlciB1bV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAvLyBEaWZmZXJlbnQgZGF0ZSBzdHJpbmcgZm9yICdEw6tuc2NoZGVnJyAoVHVlc2RheSkgYW5kICdEb25uZXNjaGRlZycgKFRodXJzZGF5KSBkdWUgdG8gcGhvbm9sb2dpY2FsIHJ1bGVcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tMZXNjaHRlbl0gZGRkZCBbdW1dIExUJztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW0xlc2NodGVdIGRkZGQgW3VtXSBMVCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiBwcm9jZXNzRnV0dXJlVGltZSxcbiAgICAgICAgICAgIHBhc3QgOiBwcm9jZXNzUGFzdFRpbWUsXG4gICAgICAgICAgICBzIDogJ2UgcHVlciBTZWtvbm5lbicsXG4gICAgICAgICAgICBzcyA6ICclZCBTZWtvbm5lbicsXG4gICAgICAgICAgICBtIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG1tIDogJyVkIE1pbnV0dGVuJyxcbiAgICAgICAgICAgIGggOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaGggOiAnJWQgU3Rvbm5lbicsXG4gICAgICAgICAgICBkIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkIDogJyVkIERlZWcnLFxuICAgICAgICAgICAgTSA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNTSA6ICclZCBNw6lpbnQnLFxuICAgICAgICAgICAgeSA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eSA6ICclZCBKb2VyJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsOiAnJWQuJyxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbGI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBsbyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2xvJywge1xuICAgICAgICBtb250aHMgOiAn4Lqh4Lqx4LqH4LqB4Lqt4LqZX+C6geC6uOC6oeC6nuC6sl/guqHgurXgupngurJf4LuA4Lqh4Lqq4LqyX+C6nuC6tuC6lOC6quC6sOC6nuC6sl/guqHgurTgupbgurjgupngurJf4LqB4LuN4Lql4Lqw4LqB4Lq74LqUX+C6quC6tOC6h+C6q+C6sl/guoHgurHgupnguo3gurJf4LqV4Lq44Lql4LqyX+C6nuC6sOC6iOC6tOC6gV/gupfgurHgupnguqfgurInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ+C6oeC6seC6h+C6geC6reC6mV/guoHgurjguqHgup7gurJf4Lqh4Lq14LqZ4LqyX+C7gOC6oeC6quC6sl/gup7gurbgupTguqrgurDgup7gurJf4Lqh4Lq04LqW4Lq44LqZ4LqyX+C6geC7jeC6peC6sOC6geC6u+C6lF/guqrgurTguofguqvgurJf4LqB4Lqx4LqZ4LqN4LqyX+C6leC6uOC6peC6sl/gup7gurDguojgurTguoFf4LqX4Lqx4LqZ4Lqn4LqyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICfguq3gurLgupfgurTgupRf4LqI4Lqx4LqZX+C6reC6seC6h+C6hOC6suC6mV/gup7gurjgupRf4Lqe4Lqw4Lqr4Lqx4LqUX+C6quC6uOC6gV/gu4DguqrgurvgurInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn4LqX4Lq04LqUX+C6iOC6seC6mV/guq3gurHguofguoTgurLguplf4Lqe4Lq44LqUX+C6nuC6sOC6q+C6seC6lF/guqrgurjguoFf4LuA4Lqq4Lq74LqyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfgupdf4LqIX+C6reC6hF/gup5f4Lqe4LqrX+C6quC6gV/guqonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICfguqfgurHguplkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4LqV4Lqt4LqZ4LuA4LqK4Lq74LuJ4LqyfOC6leC6reC6meC7geC6peC6hy8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn4LqV4Lqt4LqZ4LuB4Lql4LqHJztcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgupXguq3gupngu4Dguorgurvgu4ngurInO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C6leC6reC6meC7geC6peC6hyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdb4Lqh4Lq34LuJ4LqZ4Lq14LuJ4LuA4Lqn4Lql4LqyXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vguqHgurfgu4nguq3gurfgu4jgupngu4DguqfguqXgurJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ1vguqfgurHgupldZGRkZFvgu5zgu4ngurLgu4DguqfguqXgurJdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW+C6oeC6t+C7ieC6p+C6suC6meC6meC6teC7ieC7gOC6p+C6peC6sl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW+C6p+C6seC6mV1kZGRkW+C7geC6peC7ieC6p+C6meC6teC7ieC7gOC6p+C6peC6sl0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ+C6reC6teC6gSAlcycsXG4gICAgICAgICAgICBwYXN0IDogJyVz4Lqc4LuI4Lqy4LqZ4Lqh4LqyJyxcbiAgICAgICAgICAgIHMgOiAn4Lqa4LuN4LuI4LuA4LqX4Lq74LuI4Lqy4LuD4LqU4Lqn4Lq04LqZ4Lqy4LqX4Lq1JyxcbiAgICAgICAgICAgIHNzIDogJyVkIOC6p+C6tOC6meC6suC6l+C6tScgLFxuICAgICAgICAgICAgbSA6ICcxIOC6meC6suC6l+C6tScsXG4gICAgICAgICAgICBtbSA6ICclZCDgupngurLgupfgurUnLFxuICAgICAgICAgICAgaCA6ICcxIOC6iuC6u+C7iOC6p+C7guC6oeC6hycsXG4gICAgICAgICAgICBoaCA6ICclZCDguorgurvgu4jguqfgu4LguqHguocnLFxuICAgICAgICAgICAgZCA6ICcxIOC6oeC6t+C7iScsXG4gICAgICAgICAgICBkZCA6ICclZCDguqHgurfgu4knLFxuICAgICAgICAgICAgTSA6ICcxIOC7gOC6lOC6t+C6reC6mScsXG4gICAgICAgICAgICBNTSA6ICclZCDgu4DgupTgurfguq3gupknLFxuICAgICAgICAgICAgeSA6ICcxIOC6m+C6tScsXG4gICAgICAgICAgICB5eSA6ICclZCDgupvgurUnXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC8o4LqX4Lq14LuIKVxcZHsxLDJ9LyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiAn4LqX4Lq14LuIJyArIG51bWJlcjtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGxvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgdW5pdHMgPSB7XG4gICAgICAgICdzcycgOiAnc2VrdW5kxJdfc2VrdW5kxb5pxbNfc2VrdW5kZXMnLFxuICAgICAgICAnbScgOiAnbWludXTEl19taW51dMSXc19taW51dMSZJyxcbiAgICAgICAgJ21tJzogJ21pbnV0xJdzX21pbnXEjWnFs19taW51dGVzJyxcbiAgICAgICAgJ2gnIDogJ3ZhbGFuZGFfdmFsYW5kb3NfdmFsYW5kxIUnLFxuICAgICAgICAnaGgnOiAndmFsYW5kb3NfdmFsYW5kxbNfdmFsYW5kYXMnLFxuICAgICAgICAnZCcgOiAnZGllbmFfZGllbm9zX2RpZW7EhScsXG4gICAgICAgICdkZCc6ICdkaWVub3NfZGllbsWzX2RpZW5hcycsXG4gICAgICAgICdNJyA6ICdtxJdudW9fbcSXbmVzaW9fbcSXbmVzxK8nLFxuICAgICAgICAnTU0nOiAnbcSXbmVzaWFpX23El25lc2nFs19txJduZXNpdXMnLFxuICAgICAgICAneScgOiAnbWV0YWlfbWV0xbNfbWV0dXMnLFxuICAgICAgICAneXknOiAnbWV0YWlfbWV0xbNfbWV0dXMnXG4gICAgfTtcbiAgICBmdW5jdGlvbiB0cmFuc2xhdGVTZWNvbmRzKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgcmV0dXJuICdrZWxpb3Mgc2VrdW5kxJdzJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpc0Z1dHVyZSA/ICdrZWxpxbMgc2VrdW5kxb5pxbMnIDogJ2tlbGlhcyBzZWt1bmRlcyc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlU2luZ3VsYXIobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gZm9ybXMoa2V5KVswXSA6IChpc0Z1dHVyZSA/IGZvcm1zKGtleSlbMV0gOiBmb3JtcyhrZXkpWzJdKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3BlY2lhbChudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIG51bWJlciAlIDEwID09PSAwIHx8IChudW1iZXIgPiAxMCAmJiBudW1iZXIgPCAyMCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZvcm1zKGtleSkge1xuICAgICAgICByZXR1cm4gdW5pdHNba2V5XS5zcGxpdCgnXycpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyB0cmFuc2xhdGVTaW5ndWxhcihudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGtleVswXSwgaXNGdXR1cmUpO1xuICAgICAgICB9IGVsc2UgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoc3BlY2lhbChudW1iZXIpID8gZm9ybXMoa2V5KVsxXSA6IGZvcm1zKGtleSlbMF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIGZvcm1zKGtleSlbMV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoc3BlY2lhbChudW1iZXIpID8gZm9ybXMoa2V5KVsxXSA6IGZvcm1zKGtleSlbMl0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHZhciBsdCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2x0Jywge1xuICAgICAgICBtb250aHMgOiB7XG4gICAgICAgICAgICBmb3JtYXQ6ICdzYXVzaW9fdmFzYXJpb19rb3ZvX2JhbGFuZMW+aW9fZ2VndcW+xJdzX2JpcsW+ZWxpb19saWVwb3NfcnVncGrFq8SNaW9fcnVnc8SXam9fc3BhbGlvX2xhcGtyacSNaW9fZ3J1b2TFvmlvJy5zcGxpdCgnXycpLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ3NhdXNpc192YXNhcmlzX2tvdmFzX2JhbGFuZGlzX2dlZ3XFvsSXX2JpcsW+ZWxpc19saWVwYV9ydWdwasWrdGlzX3J1Z3PEl2ppc19zcGFsaXNfbGFwa3JpdGlzX2dydW9kaXMnLnNwbGl0KCdfJyksXG4gICAgICAgICAgICBpc0Zvcm1hdDogL0Rbb0RdPyhcXFtbXlxcW1xcXV0qXFxdfFxccykrTU1NTT98TU1NTT8oXFxbW15cXFtcXF1dKlxcXXxcXHMpK0Rbb0RdPy9cbiAgICAgICAgfSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnc2F1X3Zhc19rb3ZfYmFsX2dlZ19iaXJfbGllX3JncF9yZ3Nfc3BhX2xhcF9ncmQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDoge1xuICAgICAgICAgICAgZm9ybWF0OiAnc2VrbWFkaWVuxK9fcGlybWFkaWVuxK9fYW50cmFkaWVuxK9fdHJlxI1pYWRpZW7Er19rZXR2aXJ0YWRpZW7Er19wZW5rdGFkaWVuxK9fxaFlxaF0YWRpZW7Erycuc3BsaXQoJ18nKSxcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICdzZWttYWRpZW5pc19waXJtYWRpZW5pc19hbnRyYWRpZW5pc190cmXEjWlhZGllbmlzX2tldHZpcnRhZGllbmlzX3Blbmt0YWRpZW5pc1/FoWXFoXRhZGllbmlzJy5zcGxpdCgnXycpLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9kZGRkIEhIOm1tL1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ1Nla19QaXJfQW50X1RyZV9LZXRfUGVuX8WgZcWhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdTX1BfQV9UX0tfUG5fxaAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTCA6ICdZWVlZIFttLl0gTU1NTSBEIFtkLl0nLFxuICAgICAgICAgICAgTExMIDogJ1lZWVkgW20uXSBNTU1NIEQgW2QuXSwgSEg6bW0gW3ZhbC5dJyxcbiAgICAgICAgICAgIExMTEwgOiAnWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBkZGRkLCBISDptbSBbdmFsLl0nLFxuICAgICAgICAgICAgbCA6ICdZWVlZLU1NLUREJyxcbiAgICAgICAgICAgIGxsIDogJ1lZWVkgW20uXSBNTU1NIEQgW2QuXScsXG4gICAgICAgICAgICBsbGwgOiAnWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBISDptbSBbdmFsLl0nLFxuICAgICAgICAgICAgbGxsbCA6ICdZWVlZIFttLl0gTU1NTSBEIFtkLl0sIGRkZCwgSEg6bW0gW3ZhbC5dJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW8WgaWFuZGllbl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbUnl0b2pdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbVmFrYXJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1tQcmHEl2p1c8SvXSBkZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdwbyAlcycsXG4gICAgICAgICAgICBwYXN0IDogJ3ByaWXFoSAlcycsXG4gICAgICAgICAgICBzIDogdHJhbnNsYXRlU2Vjb25kcyxcbiAgICAgICAgICAgIHNzIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbSA6IHRyYW5zbGF0ZVNpbmd1bGFyLFxuICAgICAgICAgICAgbW0gOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoIDogdHJhbnNsYXRlU2luZ3VsYXIsXG4gICAgICAgICAgICBoaCA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQgOiB0cmFuc2xhdGVTaW5ndWxhcixcbiAgICAgICAgICAgIGRkIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTSA6IHRyYW5zbGF0ZVNpbmd1bGFyLFxuICAgICAgICAgICAgTU0gOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICB5IDogdHJhbnNsYXRlU2luZ3VsYXIsXG4gICAgICAgICAgICB5eSA6IHRyYW5zbGF0ZVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tb2ppLyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLW9qaSc7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGx0O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgdW5pdHMgPSB7XG4gICAgICAgICdzcyc6ICdzZWt1bmRlc19zZWt1bmTEk21fc2VrdW5kZV9zZWt1bmRlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgJ20nOiAnbWluxat0ZXNfbWluxat0xJNtX21pbsWrdGVfbWluxat0ZXMnLnNwbGl0KCdfJyksXG4gICAgICAgICdtbSc6ICdtaW7Fq3Rlc19taW7Fq3TEk21fbWluxat0ZV9taW7Fq3Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgJ2gnOiAnc3R1bmRhc19zdHVuZMSBbV9zdHVuZGFfc3R1bmRhcycuc3BsaXQoJ18nKSxcbiAgICAgICAgJ2hoJzogJ3N0dW5kYXNfc3R1bmTEgW1fc3R1bmRhX3N0dW5kYXMnLnNwbGl0KCdfJyksXG4gICAgICAgICdkJzogJ2RpZW5hc19kaWVuxIFtX2RpZW5hX2RpZW5hcycuc3BsaXQoJ18nKSxcbiAgICAgICAgJ2RkJzogJ2RpZW5hc19kaWVuxIFtX2RpZW5hX2RpZW5hcycuc3BsaXQoJ18nKSxcbiAgICAgICAgJ00nOiAnbcSTbmXFoWFfbcSTbmXFoWllbV9txJNuZXNpc19txJNuZcWhaScuc3BsaXQoJ18nKSxcbiAgICAgICAgJ01NJzogJ23Ek25lxaFhX23Ek25lxaFpZW1fbcSTbmVzaXNfbcSTbmXFoWknLnNwbGl0KCdfJyksXG4gICAgICAgICd5JzogJ2dhZGFfZ2FkaWVtX2dhZHNfZ2FkaScuc3BsaXQoJ18nKSxcbiAgICAgICAgJ3l5JzogJ2dhZGFfZ2FkaWVtX2dhZHNfZ2FkaScuc3BsaXQoJ18nKVxuICAgIH07XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHdpdGhvdXRTdWZmaXggYm9vbGVhbiB0cnVlID0gYSBsZW5ndGggb2YgdGltZTsgZmFsc2UgPSBiZWZvcmUvYWZ0ZXIgYSBwZXJpb2Qgb2YgdGltZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBmb3JtYXQoZm9ybXMsIG51bWJlciwgd2l0aG91dFN1ZmZpeCkge1xuICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICAgICAgLy8gRS5nLiBcIjIxIG1pbsWrdGVcIiwgXCIzIG1pbsWrdGVzXCIuXG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICUgMTAgPT09IDEgJiYgbnVtYmVyICUgMTAwICE9PSAxMSA/IGZvcm1zWzJdIDogZm9ybXNbM107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBFLmcuIFwiMjEgbWluxat0ZXNcIiBhcyBpbiBcInDEk2MgMjEgbWluxat0ZXNcIi5cbiAgICAgICAgICAgIC8vIEUuZy4gXCIzIG1pbsWrdMSTbVwiIGFzIGluIFwicMSTYyAzIG1pbsWrdMSTbVwiLlxuICAgICAgICAgICAgcmV0dXJuIG51bWJlciAlIDEwID09PSAxICYmIG51bWJlciAlIDEwMCAhPT0gMTEgPyBmb3Jtc1swXSA6IGZvcm1zWzFdO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhQbHVyYWwobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIG51bWJlciArICcgJyArIGZvcm1hdCh1bml0c1trZXldLCBudW1iZXIsIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoU2luZ3VsYXIobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIGZvcm1hdCh1bml0c1trZXldLCBudW1iZXIsIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVNlY29uZHMobnVtYmVyLCB3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2Rhxb5hcyBzZWt1bmRlcycgOiAnZGHFvsSBbSBzZWt1bmTEk20nO1xuICAgIH1cblxuICAgIHZhciBsdiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ2x2Jywge1xuICAgICAgICBtb250aHMgOiAnamFudsSBcmlzX2ZlYnJ1xIFyaXNfbWFydHNfYXByxKtsaXNfbWFpanNfasWrbmlqc19qxatsaWpzX2F1Z3VzdHNfc2VwdGVtYnJpc19va3RvYnJpc19ub3ZlbWJyaXNfZGVjZW1icmlzJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdqYW5fZmViX21hcl9hcHJfbWFpX2rFq25fasWrbF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdzdsSTdGRpZW5hX3Bpcm1kaWVuYV9vdHJkaWVuYV90cmXFoWRpZW5hX2NldHVydGRpZW5hX3BpZWt0ZGllbmFfc2VzdGRpZW5hJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ1N2X1BfT19UX0NfUGtfUycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnU3ZfUF9PX1RfQ19Qa19TJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0RELk1NLllZWVkuJyxcbiAgICAgICAgICAgIExMIDogJ1lZWVkuIFtnYWRhXSBELiBNTU1NJyxcbiAgICAgICAgICAgIExMTCA6ICdZWVlZLiBbZ2FkYV0gRC4gTU1NTSwgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdZWVlZLiBbZ2FkYV0gRC4gTU1NTSwgZGRkZCwgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdbxaBvZGllbiBwdWxrc3Rlbl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbUsSrdCBwdWxrc3Rlbl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBbcHVsa3N0ZW5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW1Zha2FyIHB1bGtzdGVuXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdbUGFnxIFqdcWhxIFdIGRkZGQgW3B1bGtzdGVuXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAncMSTYyAlcycsXG4gICAgICAgICAgICBwYXN0IDogJ3Bpcm1zICVzJyxcbiAgICAgICAgICAgIHMgOiByZWxhdGl2ZVNlY29uZHMsXG4gICAgICAgICAgICBzcyA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtIDogcmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyLFxuICAgICAgICAgICAgbW0gOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgaCA6IHJlbGF0aXZlVGltZVdpdGhTaW5ndWxhcixcbiAgICAgICAgICAgIGhoIDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIGQgOiByZWxhdGl2ZVRpbWVXaXRoU2luZ3VsYXIsXG4gICAgICAgICAgICBkZCA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBNIDogcmVsYXRpdmVUaW1lV2l0aFNpbmd1bGFyLFxuICAgICAgICAgICAgTU0gOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgeSA6IHJlbGF0aXZlVGltZVdpdGhTaW5ndWxhcixcbiAgICAgICAgICAgIHl5IDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbFxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsIDogJyVkLicsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGx2O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgdHJhbnNsYXRvciA9IHtcbiAgICAgICAgd29yZHM6IHsgLy9EaWZmZXJlbnQgZ3JhbW1hdGljYWwgY2FzZXNcbiAgICAgICAgICAgIHNzOiBbJ3Nla3VuZCcsICdzZWt1bmRhJywgJ3Nla3VuZGknXSxcbiAgICAgICAgICAgIG06IFsnamVkYW4gbWludXQnLCAnamVkbm9nIG1pbnV0YSddLFxuICAgICAgICAgICAgbW06IFsnbWludXQnLCAnbWludXRhJywgJ21pbnV0YSddLFxuICAgICAgICAgICAgaDogWydqZWRhbiBzYXQnLCAnamVkbm9nIHNhdGEnXSxcbiAgICAgICAgICAgIGhoOiBbJ3NhdCcsICdzYXRhJywgJ3NhdGknXSxcbiAgICAgICAgICAgIGRkOiBbJ2RhbicsICdkYW5hJywgJ2RhbmEnXSxcbiAgICAgICAgICAgIE1NOiBbJ21qZXNlYycsICdtamVzZWNhJywgJ21qZXNlY2knXSxcbiAgICAgICAgICAgIHl5OiBbJ2dvZGluYScsICdnb2RpbmUnLCAnZ29kaW5hJ11cbiAgICAgICAgfSxcbiAgICAgICAgY29ycmVjdEdyYW1tYXRpY2FsQ2FzZTogZnVuY3Rpb24gKG51bWJlciwgd29yZEtleSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciA9PT0gMSA/IHdvcmRLZXlbMF0gOiAobnVtYmVyID49IDIgJiYgbnVtYmVyIDw9IDQgPyB3b3JkS2V5WzFdIDogd29yZEtleVsyXSk7XG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zbGF0ZTogZnVuY3Rpb24gKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgICAgICB2YXIgd29yZEtleSA9IHRyYW5zbGF0b3Iud29yZHNba2V5XTtcbiAgICAgICAgICAgIGlmIChrZXkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyB3b3JkS2V5WzBdIDogd29yZEtleVsxXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcgJyArIHRyYW5zbGF0b3IuY29ycmVjdEdyYW1tYXRpY2FsQ2FzZShudW1iZXIsIHdvcmRLZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHZhciBtZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21lJywge1xuICAgICAgICBtb250aHM6ICdqYW51YXJfZmVicnVhcl9tYXJ0X2FwcmlsX21hal9qdW5fanVsX2F2Z3VzdF9zZXB0ZW1iYXJfb2t0b2Jhcl9ub3ZlbWJhcl9kZWNlbWJhcicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICdqYW4uX2ZlYi5fbWFyLl9hcHIuX21hal9qdW5fanVsX2F2Zy5fc2VwLl9va3QuX25vdi5fZGVjLicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzOiAnbmVkamVsamFfcG9uZWRqZWxqYWtfdXRvcmFrX3NyaWplZGFfxI1ldHZydGFrX3BldGFrX3N1Ym90YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ25lZC5fcG9uLl91dG8uX3NyaS5fxI1ldC5fcGV0Ll9zdWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ25lX3BvX3V0X3NyX8SNZV9wZV9zdScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2RhbmFzIHVdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbc2p1dHJhIHVdIExUJyxcblxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW25lZGplbGp1XSBbdV0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t1XSBbc3JpamVkdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3N1Ym90dV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gZGRkZCBbdV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5ICA6ICdbanXEjWUgdV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxhc3RXZWVrRGF5cyA9IFtcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxlXSBbbmVkamVsamVdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsb2ddIFtwb25lZGplbGprYV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW3V0b3JrYV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxlXSBbc3JpamVkZV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW8SNZXR2cnRrYV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW3BldGthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbGVdIFtzdWJvdGVdIFt1XSBMVCdcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIHJldHVybiBsYXN0V2Vla0RheXNbdGhpcy5kYXkoKV07XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ3phICVzJyxcbiAgICAgICAgICAgIHBhc3QgICA6ICdwcmlqZSAlcycsXG4gICAgICAgICAgICBzICAgICAgOiAnbmVrb2xpa28gc2VrdW5kaScsXG4gICAgICAgICAgICBzcyAgICAgOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG0gICAgICA6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgbW0gICAgIDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBoICAgICAgOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoICAgICA6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgZCAgICAgIDogJ2RhbicsXG4gICAgICAgICAgICBkZCAgICAgOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE0gICAgICA6ICdtamVzZWMnLFxuICAgICAgICAgICAgTU0gICAgIDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICB5ICAgICAgOiAnZ29kaW51JyxcbiAgICAgICAgICAgIHl5ICAgICA6IHRyYW5zbGF0b3IudHJhbnNsYXRlXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWwgOiAnJWQuJyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNyAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBtaSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21pJywge1xuICAgICAgICBtb250aHM6ICdLb2hpLXTEgXRlX0h1aS10YW5ndXJ1X1BvdXTFqy10ZS1yYW5naV9QYWVuZ2Etd2jEgXdoxIFfSGFyYXR1YV9QaXBpcmlfSMWNbmdvaW5nb2lfSGVyZS10dXJpLWvFjWvEgV9NYWh1cnVfV2hpcmluZ2EtxIEtbnVrdV9XaGlyaW5nYS3EgS1yYW5naV9IYWtpaGVhJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydDogJ0tvaGlfSHVpX1BvdV9QYWVfSGFyYV9QaXBpX0jFjW5nb2lfSGVyZV9NYWh1X1doaS1udV9XaGktcmFfSGFraScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUmVnZXg6IC8oPzpbJ2EtelxcdTAxMDFcXHUwMTREXFx1MDE2Ql0rXFwtPyl7MSwzfS9pLFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogLyg/OlsnYS16XFx1MDEwMVxcdTAxNERcXHUwMTZCXStcXC0/KXsxLDN9L2ksXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IC8oPzpbJ2EtelxcdTAxMDFcXHUwMTREXFx1MDE2Ql0rXFwtPyl7MSwzfS9pLFxuICAgICAgICBtb250aHNTaG9ydFN0cmljdFJlZ2V4OiAvKD86WydhLXpcXHUwMTAxXFx1MDE0RFxcdTAxNkJdK1xcLT8pezEsMn0vaSxcbiAgICAgICAgd2Vla2RheXM6ICdSxIF0YXB1X01hbmVfVMWrcmVpX1dlbmVyZWlfVMSBaXRlX1BhcmFpcmVfSMSBdGFyZWknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICdUYV9NYV9UxatfV2VfVMSBaV9QYV9IxIEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAnVGFfTWFfVMWrX1dlX1TEgWlfUGFfSMSBJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTDogJ0QgTU1NTSBZWVlZIFtpXSBISDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRCBNTU1NIFlZWVkgW2ldIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhcjoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tpIHRlaWUgbWFoYW5hLCBpXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2Fwb3BvIGldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbaV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tpbmFuYWhpIGldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbd2hha2FtdXR1bmdhIGldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiB7XG4gICAgICAgICAgICBmdXR1cmU6ICdpIHJvdG8gaSAlcycsXG4gICAgICAgICAgICBwYXN0OiAnJXMgaSBtdWEnLFxuICAgICAgICAgICAgczogJ3RlIGjEk2tvbmEgcnVhcnVhJyxcbiAgICAgICAgICAgIHNzOiAnJWQgaMSTa29uYScsXG4gICAgICAgICAgICBtOiAnaGUgbWVuZXRpJyxcbiAgICAgICAgICAgIG1tOiAnJWQgbWVuZXRpJyxcbiAgICAgICAgICAgIGg6ICd0ZSBoYW9yYScsXG4gICAgICAgICAgICBoaDogJyVkIGhhb3JhJyxcbiAgICAgICAgICAgIGQ6ICdoZSByYScsXG4gICAgICAgICAgICBkZDogJyVkIHJhJyxcbiAgICAgICAgICAgIE06ICdoZSBtYXJhbWEnLFxuICAgICAgICAgICAgTU06ICclZCBtYXJhbWEnLFxuICAgICAgICAgICAgeTogJ2hlIHRhdScsXG4gICAgICAgICAgICB5eTogJyVkIHRhdSdcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1pO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgbWsgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtaycsIHtcbiAgICAgICAgbW9udGhzIDogJ9GY0LDQvdGD0LDRgNC4X9GE0LXQstGA0YPQsNGA0Lhf0LzQsNGA0YJf0LDQv9GA0LjQu1/QvNCw0Zhf0ZjRg9C90Lhf0ZjRg9C70Lhf0LDQstCz0YPRgdGCX9GB0LXQv9GC0LXQvNCy0YDQuF/QvtC60YLQvtC80LLRgNC4X9C90L7QtdC80LLRgNC4X9C00LXQutC10LzQstGA0LgnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ9GY0LDQvV/RhNC10LJf0LzQsNGAX9Cw0L/RgF/QvNCw0Zhf0ZjRg9C9X9GY0YPQu1/QsNCy0LNf0YHQtdC/X9C+0LrRgl/QvdC+0LVf0LTQtdC6Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICfQvdC10LTQtdC70LBf0L/QvtC90LXQtNC10LvQvdC40Lpf0LLRgtC+0YDQvdC40Lpf0YHRgNC10LTQsF/Rh9C10YLQstGA0YLQvtC6X9C/0LXRgtC+0Lpf0YHQsNCx0L7RgtCwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ9C90LXQtF/Qv9C+0L1f0LLRgtC+X9GB0YDQtV/Rh9C10YJf0L/QtdGCX9GB0LDQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn0L1lX9C/b1/QstGCX9GB0YBf0YfQtV/Qv9C1X9GBYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnRC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVkgSDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1vQlNC10L3QtdGBINCy0L5dIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW9Cj0YLRgNC1INCy0L5dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ1vQktC+XSBkZGRkIFvQstC+XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vQktGH0LXRgNCwINCy0L5dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JjQt9C80LjQvdCw0YLQsNGC0LBdIGRkZGQgW9Cy0L5dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JjQt9C80LjQvdCw0YLQuNC+0YJdIGRkZGQgW9Cy0L5dIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ9C/0L7RgdC70LUgJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICfQv9GA0LXQtCAlcycsXG4gICAgICAgICAgICBzIDogJ9C90LXQutC+0LvQutGDINGB0LXQutGD0L3QtNC4JyxcbiAgICAgICAgICAgIHNzIDogJyVkINGB0LXQutGD0L3QtNC4JyxcbiAgICAgICAgICAgIG0gOiAn0LzQuNC90YPRgtCwJyxcbiAgICAgICAgICAgIG1tIDogJyVkINC80LjQvdGD0YLQuCcsXG4gICAgICAgICAgICBoIDogJ9GH0LDRgScsXG4gICAgICAgICAgICBoaCA6ICclZCDRh9Cw0YHQsCcsXG4gICAgICAgICAgICBkIDogJ9C00LXQvScsXG4gICAgICAgICAgICBkZCA6ICclZCDQtNC10L3QsCcsXG4gICAgICAgICAgICBNIDogJ9C80LXRgdC10YYnLFxuICAgICAgICAgICAgTU0gOiAnJWQg0LzQtdGB0LXRhtC4JyxcbiAgICAgICAgICAgIHkgOiAn0LPQvtC00LjQvdCwJyxcbiAgICAgICAgICAgIHl5IDogJyVkINCz0L7QtNC40L3QuCdcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjQtdCyfNC10L180YLQuHzQstC4fNGA0Lh80LzQuCkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGxhc3REaWdpdCA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIGxhc3QyRGlnaXRzID0gbnVtYmVyICUgMTAwO1xuICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC10LInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0MkRpZ2l0cyA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC10L0nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0MkRpZ2l0cyA+IDEwICYmIGxhc3QyRGlnaXRzIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3RgtC4JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGFzdERpZ2l0ID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LLQuCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxhc3REaWdpdCA9PT0gMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGA0LgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsYXN0RGlnaXQgPT09IDcgfHwgbGFzdERpZ2l0ID09PSA4KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LzQuCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdGC0LgnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA3ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtaztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIG1sID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbWwnLCB7XG4gICAgICAgIG1vbnRocyA6ICfgtJzgtKjgtYHgtLXgtLDgtL9f4LSr4LWG4LSs4LWN4LSw4LWB4LS14LSw4LS/X+C0ruC0vuC1vOC0muC1jeC0muC1jV/gtI/gtKrgtY3gtLDgtL/gtb1f4LSu4LWH4LSv4LWNX+C0nOC1guC1ul/gtJzgtYLgtLLgtYhf4LST4LSX4LS44LWN4LSx4LWN4LSx4LWNX+C0uOC1huC0quC1jeC0seC1jeC0seC0guC0rOC1vF/gtJLgtJXgtY3gtJ/gtYvgtKzgtbxf4LSo4LS14LSC4LSs4LW8X+C0oeC0v+C0uOC0guC0rOC1vCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn4LSc4LSo4LWBLl/gtKvgtYbgtKzgtY3gtLDgtYEuX+C0ruC0vuC1vC5f4LSP4LSq4LWN4LSw4LS/Ll/gtK7gtYfgtK/gtY1f4LSc4LWC4LW6X+C0nOC1guC0suC1iC5f4LST4LSXLl/gtLjgtYbgtKrgtY3gtLHgtY3gtLEuX+C0kuC0leC1jeC0n+C1iy5f4LSo4LS14LSCLl/gtKHgtL/gtLjgtIIuJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiAn4LSe4LS+4LSv4LSx4LS+4LS04LWN4LSaX+C0pOC0v+C0meC1jeC0leC0s+C0vuC0tOC1jeC0ml/gtJrgtYrgtLXgtY3gtLXgtL7gtLTgtY3gtJpf4LSs4LWB4LSn4LSo4LS+4LS04LWN4LSaX+C0teC1jeC0r+C0vuC0tOC0vuC0tOC1jeC0ml/gtLXgtYbgtLPgtY3gtLPgtL/gtK/gtL7gtLTgtY3gtJpf4LS24LSo4LS/4LSv4LS+4LS04LWN4LSaJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ+C0nuC0vuC0r+C1vF/gtKTgtL/gtJngtY3gtJXgtb5f4LSa4LWK4LS14LWN4LS1X+C0rOC1geC0p+C1u1/gtLXgtY3gtK/gtL7gtLTgtIJf4LS14LWG4LSz4LWN4LSz4LS/X+C0tuC0qOC0vycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn4LSe4LS+X+C0pOC0v1/gtJrgtYpf4LSs4LWBX+C0teC1jeC0r+C0vl/gtLXgtYZf4LS2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0EgaDptbSAt4LSo4LWBJyxcbiAgICAgICAgICAgIExUUyA6ICdBIGg6bW06c3MgLeC0qOC1gScsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZLCBBIGg6bW0gLeC0qOC1gScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gLeC0qOC1gSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1vgtIfgtKjgtY3gtKjgtY1dIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW+C0qOC0vuC0s+C1hl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCwgTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdb4LSH4LSo4LWN4LSo4LSy4LWGXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdb4LSV4LS04LS/4LSe4LWN4LSeXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnJXMg4LSV4LS04LS/4LSe4LWN4LSe4LWNJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMg4LSu4LWB4LW74LSq4LWNJyxcbiAgICAgICAgICAgIHMgOiAn4LSF4LW94LSqIOC0qOC0v+C0ruC0v+C0t+C0meC1jeC0meC1vicsXG4gICAgICAgICAgICBzcyA6ICclZCDgtLjgtYbgtJXgtY3gtJXgtbvgtKHgtY0nLFxuICAgICAgICAgICAgbSA6ICfgtJLgtLDgtYEg4LSu4LS/4LSo4LS/4LSx4LWN4LSx4LWNJyxcbiAgICAgICAgICAgIG1tIDogJyVkIOC0ruC0v+C0qOC0v+C0seC1jeC0seC1jScsXG4gICAgICAgICAgICBoIDogJ+C0kuC0sOC1gSDgtK7gtKPgtL/gtJXgtY3gtJXgtYLgtbwnLFxuICAgICAgICAgICAgaGggOiAnJWQg4LSu4LSj4LS/4LSV4LWN4LSV4LWC4LW8JyxcbiAgICAgICAgICAgIGQgOiAn4LSS4LSw4LWBIOC0puC0v+C0teC0uOC0gicsXG4gICAgICAgICAgICBkZCA6ICclZCDgtKbgtL/gtLXgtLjgtIInLFxuICAgICAgICAgICAgTSA6ICfgtJLgtLDgtYEg4LSu4LS+4LS44LSCJyxcbiAgICAgICAgICAgIE1NIDogJyVkIOC0ruC0vuC0uOC0gicsXG4gICAgICAgICAgICB5IDogJ+C0kuC0sOC1gSDgtLXgtbzgtLfgtIInLFxuICAgICAgICAgICAgeXkgOiAnJWQg4LS14LW84LS34LSCJ1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4LSw4LS+4LSk4LWN4LSw4LS/fOC0sOC0vuC0teC0v+C0suC1hnzgtIngtJrgtY3gtJog4LSV4LS04LS/4LSe4LWN4LSe4LWNfOC0teC1iOC0leC1geC0qOC1jeC0qOC1h+C0sOC0gnzgtLDgtL7gtKTgtY3gtLDgtL8vaSxcbiAgICAgICAgbWVyaWRpZW1Ib3VyIDogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgobWVyaWRpZW0gPT09ICfgtLDgtL7gtKTgtY3gtLDgtL8nICYmIGhvdXIgPj0gNCkgfHxcbiAgICAgICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfgtIngtJrgtY3gtJog4LSV4LS04LS/4LSe4LWN4LSe4LWNJyB8fFxuICAgICAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ+C0teC1iOC0leC1geC0qOC1jeC0qOC1h+C0sOC0gicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C0sOC0vuC0pOC1jeC0sOC0vyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LSw4LS+4LS14LS/4LSy4LWGJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgtIngtJrgtY3gtJog4LSV4LS04LS/4LSe4LWN4LSe4LWNJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgtLXgtYjgtJXgtYHgtKjgtY3gtKjgtYfgtLDgtIInO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+C0sOC0vuC0pOC1jeC0sOC0vyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAn0YXRjdC00YXRjdC9INGB0LXQutGD0L3QtCcgOiAn0YXRjdC00YXRjdC9INGB0LXQutGD0L3QtNGL0L0nO1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAod2l0aG91dFN1ZmZpeCA/ICcg0YHQtdC60YPQvdC0JyA6ICcg0YHQtdC60YPQvdC00YvQvScpO1xuICAgICAgICAgICAgY2FzZSAnbSc6XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICh3aXRob3V0U3VmZml4ID8gJyDQvNC40L3Rg9GCJyA6ICcg0LzQuNC90YPRgtGL0L0nKTtcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAod2l0aG91dFN1ZmZpeCA/ICcg0YbQsNCzJyA6ICcg0YbQsNCz0LjQudC9Jyk7XG4gICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgIGNhc2UgJ2RkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHdpdGhvdXRTdWZmaXggPyAnINOp0LTTqdGAJyA6ICcg06nQtNGA0LjQudC9Jyk7XG4gICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgIGNhc2UgJ01NJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHdpdGhvdXRTdWZmaXggPyAnINGB0LDRgCcgOiAnINGB0LDRgNGL0L0nKTtcbiAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAod2l0aG91dFN1ZmZpeCA/ICcg0LbQuNC7JyA6ICcg0LbQuNC70LjQudC9Jyk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbW4gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtbicsIHtcbiAgICAgICAgbW9udGhzIDogJ9Cd0Y3Qs9C00q/Qs9GN0Y3RgCDRgdCw0YBf0KXQvtGR0YDQtNGD0LPQsNCw0YAg0YHQsNGAX9CT0YPRgNCw0LLQtNGD0LPQsNCw0YAg0YHQsNGAX9CU06nRgNOp0LLQtNKv0LPRjdGN0YAg0YHQsNGAX9Ci0LDQstC00YPQs9Cw0LDRgCDRgdCw0YBf0JfRg9GA0LPQsNC00YPQs9Cw0LDRgCDRgdCw0YBf0JTQvtC70LTRg9Cz0LDQsNGAINGB0LDRgF/QndCw0LnQvNC00YPQs9Cw0LDRgCDRgdCw0YBf0JXRgdC00q/Qs9GN0Y3RgCDRgdCw0YBf0JDRgNCw0LLQtNGD0LPQsNCw0YAg0YHQsNGAX9CQ0YDQstCw0L0g0L3RjdCz0LTSr9Cz0Y3RjdGAINGB0LDRgF/QkNGA0LLQsNC9INGF0L7RkdGA0LTRg9Cz0LDQsNGAINGB0LDRgCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnMSDRgdCw0YBfMiDRgdCw0YBfMyDRgdCw0YBfNCDRgdCw0YBfNSDRgdCw0YBfNiDRgdCw0YBfNyDRgdCw0YBfOCDRgdCw0YBfOSDRgdCw0YBfMTAg0YHQsNGAXzExINGB0LDRgF8xMiDRgdCw0YAnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICB3ZWVrZGF5cyA6ICfQndGP0Lxf0JTQsNCy0LDQsF/QnNGP0LPQvNCw0YBf0JvRhdCw0LPQstCwX9Cf0q/RgNGN0LJf0JHQsNCw0YHQsNC9X9CR0Y/QvNCx0LAnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn0J3Rj9C8X9CU0LDQsl/QnNGP0LNf0JvRhdCwX9Cf0q/RgF/QkdCw0LBf0JHRj9C8Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfQndGPX9CU0LBf0JzRj1/Qm9GFX9Cf0q9f0JHQsF/QkdGPJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ1lZWVktTU0tREQnLFxuICAgICAgICAgICAgTEwgOiAnWVlZWSDQvtC90YsgTU1NTdGL0L0gRCcsXG4gICAgICAgICAgICBMTEwgOiAnWVlZWSDQvtC90YsgTU1NTdGL0L0gRCBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIFlZWVkg0L7QvdGLIE1NTU3Ri9C9IEQgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/SrtOofNKu0KUvaSxcbiAgICAgICAgaXNQTSA6IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn0q7QpSc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtIDogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0q7TqCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0q7QpSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdb06jQvdOp06nQtNOp0YBdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW9Cc0LDRgNCz0LDQsNGIXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdb0JjRgNGN0YVdIGRkZGQgTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdb06jRh9C40LPQtNOp0YBdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1vTqNC90LPTqdGA0YHTqdC9XSBkZGRkIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICclcyDQtNCw0YDQsNCwJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMg06nQvNC906knLFxuICAgICAgICAgICAgcyA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHNzIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbSA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaCA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZCA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGRkIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTSA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE1NIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeSA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHl5IDogdHJhbnNsYXRlXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSDTqdC006nRgC8sXG4gICAgICAgIG9yZGluYWwgOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcg06nQtNOp0YAnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgJzEnOiAn4KWnJyxcbiAgICAgICAgJzInOiAn4KWoJyxcbiAgICAgICAgJzMnOiAn4KWpJyxcbiAgICAgICAgJzQnOiAn4KWqJyxcbiAgICAgICAgJzUnOiAn4KWrJyxcbiAgICAgICAgJzYnOiAn4KWsJyxcbiAgICAgICAgJzcnOiAn4KWtJyxcbiAgICAgICAgJzgnOiAn4KWuJyxcbiAgICAgICAgJzknOiAn4KWvJyxcbiAgICAgICAgJzAnOiAn4KWmJ1xuICAgIH0sXG4gICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAn4KWnJzogJzEnLFxuICAgICAgICAn4KWoJzogJzInLFxuICAgICAgICAn4KWpJzogJzMnLFxuICAgICAgICAn4KWqJzogJzQnLFxuICAgICAgICAn4KWrJzogJzUnLFxuICAgICAgICAn4KWsJzogJzYnLFxuICAgICAgICAn4KWtJzogJzcnLFxuICAgICAgICAn4KWuJzogJzgnLFxuICAgICAgICAn4KWvJzogJzknLFxuICAgICAgICAn4KWmJzogJzAnXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZU1yKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSlcbiAgICB7XG4gICAgICAgIHZhciBvdXRwdXQgPSAnJztcbiAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXgpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoc3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAncyc6IG91dHB1dCA9ICfgpJXgpL7gpLngpYAg4KS44KWH4KSV4KSC4KSmJzsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3MnOiBvdXRwdXQgPSAnJWQg4KS44KWH4KSV4KSC4KSmJzsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbSc6IG91dHB1dCA9ICfgpI/gpJUg4KSu4KS/4KSo4KS/4KSfJzsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbW0nOiBvdXRwdXQgPSAnJWQg4KSu4KS/4KSo4KS/4KSf4KWHJzsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnaCc6IG91dHB1dCA9ICfgpI/gpJUg4KSk4KS+4KS4JzsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnaGgnOiBvdXRwdXQgPSAnJWQg4KSk4KS+4KS4JzsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6IG91dHB1dCA9ICfgpI/gpJUg4KSm4KS/4KS14KS4JzsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZGQnOiBvdXRwdXQgPSAnJWQg4KSm4KS/4KS14KS4JzsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6IG91dHB1dCA9ICfgpI/gpJUg4KSu4KS54KS/4KSo4KS+JzsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnTU0nOiBvdXRwdXQgPSAnJWQg4KSu4KS54KS/4KSo4KWHJzsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAneSc6IG91dHB1dCA9ICfgpI/gpJUg4KS14KSw4KWN4KS3JzsgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAneXknOiBvdXRwdXQgPSAnJWQg4KS14KSw4KWN4KS34KWHJzsgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHN0cmluZykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3MnOiBvdXRwdXQgPSAn4KSV4KS+4KS54KWAIOCkuOClh+CkleCkguCkpuCkvuCkgic7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NzJzogb3V0cHV0ID0gJyVkIOCkuOClh+CkleCkguCkpuCkvuCkgic7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ20nOiBvdXRwdXQgPSAn4KSP4KSV4KS+IOCkruCkv+CkqOCkv+Ckn+Ckvic7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ21tJzogb3V0cHV0ID0gJyVkIOCkruCkv+CkqOCkv+Ckn+CkvuCkgic7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2gnOiBvdXRwdXQgPSAn4KSP4KSV4KS+IOCkpOCkvuCkuOCkvic7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2hoJzogb3V0cHV0ID0gJyVkIOCkpOCkvuCkuOCkvuCkgic7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOiBvdXRwdXQgPSAn4KSP4KSV4KS+IOCkpuCkv+CkteCkuOCkvic7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RkJzogb3V0cHV0ID0gJyVkIOCkpuCkv+CkteCkuOCkvuCkgic7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOiBvdXRwdXQgPSAn4KSP4KSV4KS+IOCkruCkueCkv+CkqOCljeCkr+Ckvic7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ01NJzogb3V0cHV0ID0gJyVkIOCkruCkueCkv+CkqOCljeCkr+CkvuCkgic7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3knOiBvdXRwdXQgPSAn4KSP4KSV4KS+IOCkteCksOCljeCkt+Ckvic7IGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3l5Jzogb3V0cHV0ID0gJyVkIOCkteCksOCljeCkt+CkvuCkgic7IGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQucmVwbGFjZSgvJWQvaSwgbnVtYmVyKTtcbiAgICB9XG5cbiAgICB2YXIgbXIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtcicsIHtcbiAgICAgICAgbW9udGhzIDogJ+CknOCkvuCkqOClh+CkteCkvuCksOClgF/gpKvgpYfgpKzgpY3gpLDgpYHgpLXgpL7gpLDgpYBf4KSu4KS+4KSw4KWN4KSaX+Ckj+CkquCljeCksOCkv+Cksl/gpK7gpYdf4KSc4KWC4KSoX+CknOClgeCksuCliF/gpJHgpJfgpLjgpY3gpJ9f4KS44KSq4KWN4KSf4KWH4KSC4KSs4KSwX+CkkeCkleCljeCkn+Cli+CkrOCksF/gpKjgpYvgpLXgpY3gpLngpYfgpILgpKzgpLBf4KSh4KS/4KS44KWH4KSC4KSs4KSwJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydDogJ+CknOCkvuCkqOClhy5f4KSr4KWH4KSs4KWN4KSw4KWBLl/gpK7gpL7gpLDgpY3gpJouX+Ckj+CkquCljeCksOCkvy5f4KSu4KWHLl/gpJzgpYLgpKguX+CknOClgeCksuCliC5f4KSR4KSXLl/gpLjgpKrgpY3gpJ/gpYfgpIIuX+CkkeCkleCljeCkn+Cliy5f4KSo4KWL4KS14KWN4KS54KWH4KSCLl/gpKHgpL/gpLjgpYfgpIIuJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiAn4KSw4KS14KS/4KS14KS+4KSwX+CkuOCli+CkruCkteCkvuCksF/gpK7gpILgpJfgpLPgpLXgpL7gpLBf4KSs4KWB4KSn4KS14KS+4KSwX+Ckl+ClgeCksOClguCkteCkvuCksF/gpLbgpYHgpJXgpY3gpLDgpLXgpL7gpLBf4KS24KSo4KS/4KS14KS+4KSwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ+CksOCkteCkv1/gpLjgpYvgpK5f4KSu4KSC4KSX4KSzX+CkrOClgeCkp1/gpJfgpYHgpLDgpYJf4KS24KWB4KSV4KWN4KSwX+CktuCkqOCkvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn4KSwX+CkuOCli1/gpK7gpIJf4KSs4KWBX+Ckl+ClgV/gpLbgpYFf4KS2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0EgaDptbSDgpLXgpL7gpJzgpKTgpL4nLFxuICAgICAgICAgICAgTFRTIDogJ0EgaDptbTpzcyDgpLXgpL7gpJzgpKTgpL4nLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSwgQSBoOm1tIOCkteCkvuCknOCkpOCkvicsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0g4KS14KS+4KSc4KSk4KS+J1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW+CkhuCknF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdb4KSJ4KSm4KWN4KSv4KS+XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vgpJXgpL7gpLJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW+CkruCkvuCkl+ClgOCksl0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlOiAnJXPgpK7gpKfgpY3gpK/gpYcnLFxuICAgICAgICAgICAgcGFzdDogJyVz4KSq4KWC4KSw4KWN4KS14KWAJyxcbiAgICAgICAgICAgIHM6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgc3M6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgbTogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBtbTogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBoOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIGhoOiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIGQ6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgZGQ6IHJlbGF0aXZlVGltZU1yLFxuICAgICAgICAgICAgTTogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICBNTTogcmVsYXRpdmVUaW1lTXIsXG4gICAgICAgICAgICB5OiByZWxhdGl2ZVRpbWVNcixcbiAgICAgICAgICAgIHl5OiByZWxhdGl2ZVRpbWVNclxuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4KWn4KWo4KWp4KWq4KWr4KWs4KWt4KWu4KWv4KWmXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4KSw4KS+4KSk4KWN4KSw4KWAfOCkuOCkleCkvuCks+ClgHzgpKbgpYHgpKrgpL7gpLDgpYB84KS44KS+4KSv4KSC4KSV4KS+4KSz4KWALyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyIDogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CksOCkvuCkpOCljeCksOClgCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkuOCkleCkvuCks+ClgCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpKbgpYHgpKrgpL7gpLDgpYAnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkuOCkvuCkr+CkguCkleCkvuCks+ClgCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbTogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKTgpY3gpLDgpYAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkuOCkleCkvuCks+ClgCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSm4KWB4KSq4KS+4KSw4KWAJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLjgpL7gpK/gpILgpJXgpL7gpLPgpYAnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CksOCkvuCkpOCljeCksOClgCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDYgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1yO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgbXNNeSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21zLW15Jywge1xuICAgICAgICBtb250aHMgOiAnSmFudWFyaV9GZWJydWFyaV9NYWNfQXByaWxfTWVpX0p1bl9KdWxhaV9PZ29zX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0Rpc2VtYmVyJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdKYW5fRmViX01hY19BcHJfTWVpX0p1bl9KdWxfT2dzX1NlcF9Pa3RfTm92X0Rpcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnQWhhZF9Jc25pbl9TZWxhc2FfUmFidV9LaGFtaXNfSnVtYWF0X1NhYnR1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ0FoZF9Jc25fU2VsX1JhYl9LaGFfSnVtX1NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnQWhfSXNfU2xfUmJfS21fSm1fU2InLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEgubW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hILm1tLnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9wYWdpfHRlbmdhaGFyaXxwZXRhbmd8bWFsYW0vLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICdwYWdpJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3RlbmdhaGFyaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAncGV0YW5nJyB8fCBtZXJpZGllbSA9PT0gJ21hbGFtJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtIDogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAncGFnaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RlbmdhaGFyaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3BldGFuZyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnbWFsYW0nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW0hhcmkgaW5pIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1tFc29rIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFtwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbS2VsbWFyaW4gcHVrdWxdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ2RkZGQgW2xlcGFzIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnZGFsYW0gJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyB5YW5nIGxlcGFzJyxcbiAgICAgICAgICAgIHMgOiAnYmViZXJhcGEgc2FhdCcsXG4gICAgICAgICAgICBzcyA6ICclZCBzYWF0JyxcbiAgICAgICAgICAgIG0gOiAnc2VtaW5pdCcsXG4gICAgICAgICAgICBtbSA6ICclZCBtaW5pdCcsXG4gICAgICAgICAgICBoIDogJ3NlamFtJyxcbiAgICAgICAgICAgIGhoIDogJyVkIGphbScsXG4gICAgICAgICAgICBkIDogJ3NlaGFyaScsXG4gICAgICAgICAgICBkZCA6ICclZCBoYXJpJyxcbiAgICAgICAgICAgIE0gOiAnc2VidWxhbicsXG4gICAgICAgICAgICBNTSA6ICclZCBidWxhbicsXG4gICAgICAgICAgICB5IDogJ3NldGFodW4nLFxuICAgICAgICAgICAgeXkgOiAnJWQgdGFodW4nXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDcgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1zTXk7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBtcyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ21zJywge1xuICAgICAgICBtb250aHMgOiAnSmFudWFyaV9GZWJydWFyaV9NYWNfQXByaWxfTWVpX0p1bl9KdWxhaV9PZ29zX1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0Rpc2VtYmVyJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdKYW5fRmViX01hY19BcHJfTWVpX0p1bl9KdWxfT2dzX1NlcF9Pa3RfTm92X0Rpcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnQWhhZF9Jc25pbl9TZWxhc2FfUmFidV9LaGFtaXNfSnVtYWF0X1NhYnR1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ0FoZF9Jc25fU2VsX1JhYl9LaGFfSnVtX1NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnQWhfSXNfU2xfUmJfS21fSm1fU2InLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEgubW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hILm1tLnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZIFtwdWt1bF0gSEgubW0nXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9wYWdpfHRlbmdhaGFyaXxwZXRhbmd8bWFsYW0vLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICdwYWdpJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ3RlbmdhaGFyaScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAncGV0YW5nJyB8fCBtZXJpZGllbSA9PT0gJ21hbGFtJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtIDogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAncGFnaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RlbmdhaGFyaSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXJzIDwgMTkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3BldGFuZyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnbWFsYW0nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW0hhcmkgaW5pIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1tFc29rIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFtwdWt1bF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbS2VsbWFyaW4gcHVrdWxdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ2RkZGQgW2xlcGFzIHB1a3VsXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnZGFsYW0gJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyB5YW5nIGxlcGFzJyxcbiAgICAgICAgICAgIHMgOiAnYmViZXJhcGEgc2FhdCcsXG4gICAgICAgICAgICBzcyA6ICclZCBzYWF0JyxcbiAgICAgICAgICAgIG0gOiAnc2VtaW5pdCcsXG4gICAgICAgICAgICBtbSA6ICclZCBtaW5pdCcsXG4gICAgICAgICAgICBoIDogJ3NlamFtJyxcbiAgICAgICAgICAgIGhoIDogJyVkIGphbScsXG4gICAgICAgICAgICBkIDogJ3NlaGFyaScsXG4gICAgICAgICAgICBkZCA6ICclZCBoYXJpJyxcbiAgICAgICAgICAgIE0gOiAnc2VidWxhbicsXG4gICAgICAgICAgICBNTSA6ICclZCBidWxhbicsXG4gICAgICAgICAgICB5IDogJ3NldGFodW4nLFxuICAgICAgICAgICAgeXkgOiAnJWQgdGFodW4nXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDcgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1zO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgbXQgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdtdCcsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbm5hcl9GcmFyX01hcnp1X0FwcmlsX01lamp1X8SgdW5qdV9MdWxqdV9Bd3dpc3N1X1NldHRlbWJydV9PdHR1YnJ1X05vdmVtYnJ1X0RpxItlbWJydScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnSmFuX0ZyYV9NYXJfQXByX01lal/EoHVuX0x1bF9Bd3dfU2V0X090dF9Ob3ZfRGnEiycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnSWwtxKZhZGRfSXQtVG5lam5fSXQtVGxpZXRhX0wtRXJiZ8SnYV9JbC3EpmFtaXNfSWwtxKBpbWfEp2FfSXMtU2lidCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfEpmFkX1RuZV9UbGlfRXJiX8SmYW1fxKBpbV9TaWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ8SmYV9Ubl9UbF9Fcl/EpmFfxKBpX1NpJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdbSWxsdW0gZmlsLV1MVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1tHxKdhZGEgZmlsLV1MVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFtmaWwtXUxUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW0lsLWJpZXJhxKcgZmlsLV1MVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdkZGRkIFtsaSBnxKdhZGRhXSBbZmlsLV1MVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnZuKAmSAlcycsXG4gICAgICAgICAgICBwYXN0IDogJyVzIGlsdScsXG4gICAgICAgICAgICBzIDogJ2Z0aXQgc2Vrb25kaScsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWtvbmRpJyxcbiAgICAgICAgICAgIG0gOiAnbWludXRhJyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0aScsXG4gICAgICAgICAgICBoIDogJ3NpZWfEp2EnLFxuICAgICAgICAgICAgaGggOiAnJWQgc2llZ8SnYXQnLFxuICAgICAgICAgICAgZCA6ICfEoXVybmF0YScsXG4gICAgICAgICAgICBkZCA6ICclZCDEoXJhbmV0JyxcbiAgICAgICAgICAgIE0gOiAneGFoYXInLFxuICAgICAgICAgICAgTU0gOiAnJWQgeGh1cicsXG4gICAgICAgICAgICB5IDogJ3NlbmEnLFxuICAgICAgICAgICAgeXkgOiAnJWQgc25pJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlIDogL1xcZHsxLDJ9wrovLFxuICAgICAgICBvcmRpbmFsOiAnJWTCuicsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG10O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAnMSc6ICfhgYEnLFxuICAgICAgICAnMic6ICfhgYInLFxuICAgICAgICAnMyc6ICfhgYMnLFxuICAgICAgICAnNCc6ICfhgYQnLFxuICAgICAgICAnNSc6ICfhgYUnLFxuICAgICAgICAnNic6ICfhgYYnLFxuICAgICAgICAnNyc6ICfhgYcnLFxuICAgICAgICAnOCc6ICfhgYgnLFxuICAgICAgICAnOSc6ICfhgYknLFxuICAgICAgICAnMCc6ICfhgYAnXG4gICAgfSwgbnVtYmVyTWFwID0ge1xuICAgICAgICAn4YGBJzogJzEnLFxuICAgICAgICAn4YGCJzogJzInLFxuICAgICAgICAn4YGDJzogJzMnLFxuICAgICAgICAn4YGEJzogJzQnLFxuICAgICAgICAn4YGFJzogJzUnLFxuICAgICAgICAn4YGGJzogJzYnLFxuICAgICAgICAn4YGHJzogJzcnLFxuICAgICAgICAn4YGIJzogJzgnLFxuICAgICAgICAn4YGJJzogJzknLFxuICAgICAgICAn4YGAJzogJzAnXG4gICAgfTtcblxuICAgIHZhciBteSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ215Jywge1xuICAgICAgICBtb250aHM6ICfhgIfhgJThgLrhgJThgJ3hgKvhgJvhgK5f4YCW4YCx4YCW4YCx4YCs4YC64YCd4YCr4YCb4YCuX+GAmeGAkOGAul/hgKfhgJXhgLzhgK5f4YCZ4YCxX+GAh+GAveGAlOGAul/hgIfhgLDhgJzhgK3hgK/hgIThgLpf4YCe4YC84YCC4YCv4YCQ4YC6X+GAheGAgOGAuuGAkOGAhOGAuuGAmOGArF/hgKHhgLHhgKzhgIDhgLrhgJDhgK3hgK/hgJjhgKxf4YCU4YCt4YCv4YCd4YCE4YC64YCY4YCsX+GAkuGAruGAh+GAhOGAuuGAmOGArCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQ6ICfhgIfhgJThgLpf4YCW4YCxX+GAmeGAkOGAul/hgJXhgLzhgK5f4YCZ4YCxX+GAh+GAveGAlOGAul/hgJzhgK3hgK/hgIThgLpf4YCe4YC8X+GAheGAgOGAul/hgKHhgLHhgKzhgIDhgLpf4YCU4YCt4YCvX+GAkuGAricuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXM6ICfhgJDhgJThgIThgLrhgLnhgILhgJThgL3hgLFf4YCQ4YCU4YCE4YC64YC54YCc4YCsX+GAoeGAhOGAuuGAueGAguGAq1/hgJfhgK/hgJLhgLnhgJPhgJ/hgLDhgLhf4YCA4YC84YCs4YCe4YCV4YCQ4YCx4YC4X+GAnuGAseGArOGAgOGAvOGArF/hgIXhgJThgLEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQ6ICfhgJThgL3hgLFf4YCc4YCsX+GAguGAq1/hgJ/hgLDhgLhf4YCA4YC84YCsX+GAnuGAseGArF/hgJThgLEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn4YCU4YC94YCxX+GAnOGArF/hgILhgKtf4YCf4YCw4YC4X+GAgOGAvOGArF/hgJ7hgLHhgKxf4YCU4YCxJy5zcGxpdCgnXycpLFxuXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiB7XG4gICAgICAgICAgICBMVDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUzogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEw6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTDogJ2RkZGQgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+GAmuGAlOGAsS5dIExUIFvhgJnhgL7hgKxdJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4YCZ4YCU4YCA4YC64YCW4YC84YCU4YC6XSBMVCBb4YCZ4YC+4YCsXScsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgTFQgW+GAmeGAvuGArF0nLFxuICAgICAgICAgICAgbGFzdERheTogJ1vhgJnhgJThgLEu4YCAXSBMVCBb4YCZ4YC+4YCsXScsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1vhgJXhgLzhgK7hgLjhgIHhgLLhgLfhgJ7hgLHhgKxdIGRkZGQgTFQgW+GAmeGAvuGArF0nLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJ+GAnOGArOGAmeGAiuGAuuGAtyAlcyDhgJnhgL7hgKwnLFxuICAgICAgICAgICAgcGFzdDogJ+GAnOGAveGAlOGAuuGAgeGAsuGAt+GAnuGAseGArCAlcyDhgIAnLFxuICAgICAgICAgICAgczogJ+GAheGAgOGAueGAgOGAlOGAui7hgKHhgJThgIrhgLrhgLjhgIThgJrhgLonLFxuICAgICAgICAgICAgc3MgOiAnJWQg4YCF4YCA4YC54YCA4YCU4YC34YC6JyxcbiAgICAgICAgICAgIG06ICfhgJDhgIXhgLrhgJnhgK3hgJThgIXhgLonLFxuICAgICAgICAgICAgbW06ICclZCDhgJnhgK3hgJThgIXhgLonLFxuICAgICAgICAgICAgaDogJ+GAkOGAheGAuuGAlOGArOGAm+GAricsXG4gICAgICAgICAgICBoaDogJyVkIOGAlOGArOGAm+GAricsXG4gICAgICAgICAgICBkOiAn4YCQ4YCF4YC64YCb4YCA4YC6JyxcbiAgICAgICAgICAgIGRkOiAnJWQg4YCb4YCA4YC6JyxcbiAgICAgICAgICAgIE06ICfhgJDhgIXhgLrhgJwnLFxuICAgICAgICAgICAgTU06ICclZCDhgJwnLFxuICAgICAgICAgICAgeTogJ+GAkOGAheGAuuGAlOGAvuGAheGAuicsXG4gICAgICAgICAgICB5eTogJyVkIOGAlOGAvuGAheGAuidcbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvW+GBgeGBguGBg+GBhOGBheGBhuGBh+GBiOGBieGBgF0vZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlck1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9cXGQvZywgZnVuY3Rpb24gKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN5bWJvbE1hcFttYXRjaF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgd2Vlazoge1xuICAgICAgICAgICAgZG93OiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveTogNCAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBteTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIG5iID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbmInLCB7XG4gICAgICAgIG1vbnRocyA6ICdqYW51YXJfZmVicnVhcl9tYXJzX2FwcmlsX21haV9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2Rlc2VtYmVyJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdqYW4uX2ZlYi5fbWFyc19hcHJpbF9tYWlfanVuaV9qdWxpX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVzLicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzIDogJ3PDuG5kYWdfbWFuZGFnX3RpcnNkYWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2zDuHJkYWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnc8O4Ll9tYS5fdGkuX29uLl90by5fZnIuX2zDuC4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ3PDuF9tYV90aV9vbl90b19mcl9sw7gnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QuIE1NTU0gWVlZWSBba2wuXSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQgRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbaSBkYWcga2wuXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW2kgbW9yZ2VuIGtsLl0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtrbC5dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbaSBnw6VyIGtsLl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdbZm9ycmlnZV0gZGRkZCBba2wuXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdvbSAlcycsXG4gICAgICAgICAgICBwYXN0IDogJyVzIHNpZGVuJyxcbiAgICAgICAgICAgIHMgOiAnbm9lbiBzZWt1bmRlcicsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWt1bmRlcicsXG4gICAgICAgICAgICBtIDogJ2V0dCBtaW51dHQnLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXR0ZXInLFxuICAgICAgICAgICAgaCA6ICdlbiB0aW1lJyxcbiAgICAgICAgICAgIGhoIDogJyVkIHRpbWVyJyxcbiAgICAgICAgICAgIGQgOiAnZW4gZGFnJyxcbiAgICAgICAgICAgIGRkIDogJyVkIGRhZ2VyJyxcbiAgICAgICAgICAgIE0gOiAnZW4gbcOlbmVkJyxcbiAgICAgICAgICAgIE1NIDogJyVkIG3DpW5lZGVyJyxcbiAgICAgICAgICAgIHkgOiAnZXR0IMOlcicsXG4gICAgICAgICAgICB5eSA6ICclZCDDpXInXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWwgOiAnJWQuJyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmI7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBzeW1ib2xNYXAgPSB7XG4gICAgICAgICcxJzogJ+ClpycsXG4gICAgICAgICcyJzogJ+ClqCcsXG4gICAgICAgICczJzogJ+ClqScsXG4gICAgICAgICc0JzogJ+ClqicsXG4gICAgICAgICc1JzogJ+ClqycsXG4gICAgICAgICc2JzogJ+ClrCcsXG4gICAgICAgICc3JzogJ+ClrScsXG4gICAgICAgICc4JzogJ+ClricsXG4gICAgICAgICc5JzogJ+ClrycsXG4gICAgICAgICcwJzogJ+ClpidcbiAgICB9LFxuICAgIG51bWJlck1hcCA9IHtcbiAgICAgICAgJ+Clpyc6ICcxJyxcbiAgICAgICAgJ+ClqCc6ICcyJyxcbiAgICAgICAgJ+ClqSc6ICczJyxcbiAgICAgICAgJ+Clqic6ICc0JyxcbiAgICAgICAgJ+Clqyc6ICc1JyxcbiAgICAgICAgJ+ClrCc6ICc2JyxcbiAgICAgICAgJ+ClrSc6ICc3JyxcbiAgICAgICAgJ+Clric6ICc4JyxcbiAgICAgICAgJ+Clryc6ICc5JyxcbiAgICAgICAgJ+Clpic6ICcwJ1xuICAgIH07XG5cbiAgICB2YXIgbmUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCduZScsIHtcbiAgICAgICAgbW9udGhzIDogJ+CknOCkqOCkteCksOClgF/gpKvgpYfgpKzgpY3gpLDgpYHgpLXgpLDgpYBf4KSu4KS+4KSw4KWN4KSaX+CkheCkquCljeCksOCkv+Cksl/gpK7gpIhf4KSc4KWB4KSoX+CknOClgeCksuCkvuCkiF/gpIXgpJfgpLfgpY3gpJ9f4KS44KWH4KSq4KWN4KSf4KWH4KSu4KWN4KSs4KSwX+CkheCkleCljeCkn+Cli+CkrOCksF/gpKjgpYvgpK3gpYfgpK7gpY3gpKzgpLBf4KSh4KS/4KS44KWH4KSu4KWN4KSs4KSwJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICfgpJzgpKguX+Ckq+Clh+CkrOCljeCksOClgS5f4KSu4KS+4KSw4KWN4KSaX+CkheCkquCljeCksOCkvy5f4KSu4KSIX+CknOClgeCkqF/gpJzgpYHgpLLgpL7gpIguX+CkheCkly5f4KS44KWH4KSq4KWN4KSfLl/gpIXgpJXgpY3gpJ/gpYsuX+CkqOCli+CkreClhy5f4KSh4KS/4KS44KWHLicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzIDogJ+CkhuCkh+CkpOCkrOCkvuCksF/gpLjgpYvgpK7gpKzgpL7gpLBf4KSu4KSZ4KWN4KSX4KSy4KSs4KS+4KSwX+CkrOClgeCkp+CkrOCkvuCksF/gpKzgpL/gpLngpL/gpKzgpL7gpLBf4KS24KWB4KSV4KWN4KSw4KSs4KS+4KSwX+CktuCkqOCkv+CkrOCkvuCksCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfgpIbgpIfgpKQuX+CkuOCli+Ckri5f4KSu4KSZ4KWN4KSX4KSyLl/gpKzgpYHgpKcuX+CkrOCkv+CkueCkvy5f4KS24KWB4KSV4KWN4KSwLl/gpLbgpKjgpL8uJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfgpIYuX+CkuOCliy5f4KSu4KSCLl/gpKzgpYEuX+CkrOCkvy5f4KS24KWBLl/gpLYuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0HgpJXgpYsgaDptbSDgpKzgpJzgpYcnLFxuICAgICAgICAgICAgTFRTIDogJ0HgpJXgpYsgaDptbTpzcyDgpKzgpJzgpYcnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSwgQeCkleCliyBoOm1tIOCkrOCknOClhycsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBB4KSV4KWLIGg6bW0g4KSs4KSc4KWHJ1xuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4KWn4KWo4KWp4KWq4KWr4KWs4KWt4KWu4KWv4KWmXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4KSw4KS+4KSk4KS/fOCkrOCkv+CkueCkvuCkqHzgpKbgpL/gpIngpIHgpLjgpYt84KS44KS+4KSB4KSdLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyIDogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CksOCkvuCkpOCkvycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkrOCkv+CkueCkvuCkqCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgpKbgpL/gpIngpIHgpLjgpYsnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CkuOCkvuCkgeCknScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgMykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KSw4KS+4KSk4KS/JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpKzgpL/gpLngpL7gpKgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CkpuCkv+CkieCkgeCkuOCliyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4KS44KS+4KSB4KSdJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgpLDgpL7gpKTgpL8nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW+CkhuCknF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdb4KSt4KWL4KSy4KS/XSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdb4KSG4KSJ4KSB4KSm4KWLXSBkZGRkWyxdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW+CkueCkv+CknOCli10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW+Ckl+Ckj+CkleCli10gZGRkZFssXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnJXPgpK7gpL4nLFxuICAgICAgICAgICAgcGFzdCA6ICclcyDgpIXgpJfgpL7gpKHgpL8nLFxuICAgICAgICAgICAgcyA6ICfgpJXgpYfgpLngpYAg4KSV4KWN4KS34KSjJyxcbiAgICAgICAgICAgIHNzIDogJyVkIOCkuOClh+CkleClh+Cko+CljeCkoScsXG4gICAgICAgICAgICBtIDogJ+Ckj+CklSDgpK7gpL/gpKjgpYfgpJ8nLFxuICAgICAgICAgICAgbW0gOiAnJWQg4KSu4KS/4KSo4KWH4KSfJyxcbiAgICAgICAgICAgIGggOiAn4KSP4KSVIOCkmOCko+CljeCkn+CkvicsXG4gICAgICAgICAgICBoaCA6ICclZCDgpJjgpKPgpY3gpJ/gpL4nLFxuICAgICAgICAgICAgZCA6ICfgpI/gpJUg4KSm4KS/4KSoJyxcbiAgICAgICAgICAgIGRkIDogJyVkIOCkpuCkv+CkqCcsXG4gICAgICAgICAgICBNIDogJ+Ckj+CklSDgpK7gpLngpL/gpKjgpL4nLFxuICAgICAgICAgICAgTU0gOiAnJWQg4KSu4KS54KS/4KSo4KS+JyxcbiAgICAgICAgICAgIHkgOiAn4KSP4KSVIOCkrOCksOCljeCktycsXG4gICAgICAgICAgICB5eSA6ICclZCDgpKzgpLDgpY3gpLcnXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDYgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5lO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgbW9udGhzU2hvcnRXaXRoRG90cyA9ICdqYW4uX2ZlYi5fbXJ0Ll9hcHIuX21laV9qdW4uX2p1bC5fYXVnLl9zZXAuX29rdC5fbm92Ll9kZWMuJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydFdpdGhvdXREb3RzID0gJ2phbl9mZWJfbXJ0X2Fwcl9tZWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpO1xuXG4gICAgdmFyIG1vbnRoc1BhcnNlID0gWy9eamFuL2ksIC9eZmViL2ksIC9ebWFhcnR8bXJ0Lj8kL2ksIC9eYXByL2ksIC9ebWVpJC9pLCAvXmp1bltpLl0/JC9pLCAvXmp1bFtpLl0/JC9pLCAvXmF1Zy9pLCAvXnNlcC9pLCAvXm9rdC9pLCAvXm5vdi9pLCAvXmRlYy9pXTtcbiAgICB2YXIgbW9udGhzUmVnZXggPSAvXihqYW51YXJpfGZlYnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVzfHNlcHRlbWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyfGphblxcLj98ZmViXFwuP3xtcnRcXC4/fGFwclxcLj98anVbbmxdXFwuP3xhdWdcXC4/fHNlcFxcLj98b2t0XFwuP3xub3ZcXC4/fGRlY1xcLj8pL2k7XG5cbiAgICB2YXIgbmxCZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ25sLWJlJywge1xuICAgICAgICBtb250aHMgOiAnamFudWFyaV9mZWJydWFyaV9tYWFydF9hcHJpbF9tZWlfanVuaV9qdWxpX2F1Z3VzdHVzX3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2RlY2VtYmVyJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6IGZ1bmN0aW9uIChtLCBmb3JtYXQpIHtcbiAgICAgICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhEb3RzO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvLU1NTS0vLnRlc3QoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhvdXREb3RzW20ubW9udGgoKV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBtb250aHNTaG9ydFdpdGhEb3RzW20ubW9udGgoKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgbW9udGhzUmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTaG9ydFJlZ2V4OiBtb250aHNSZWdleCxcbiAgICAgICAgbW9udGhzU3RyaWN0UmVnZXg6IC9eKGphbnVhcml8ZmVicnVhcml8bWFhcnR8YXByaWx8bWVpfGp1W25sXWl8YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2ksXG4gICAgICAgIG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IC9eKGphblxcLj98ZmViXFwuP3xtcnRcXC4/fGFwclxcLj98bWVpfGp1W25sXVxcLj98YXVnXFwuP3xzZXBcXC4/fG9rdFxcLj98bm92XFwuP3xkZWNcXC4/KS9pLFxuXG4gICAgICAgIG1vbnRoc1BhcnNlIDogbW9udGhzUGFyc2UsXG4gICAgICAgIGxvbmdNb250aHNQYXJzZSA6IG1vbnRoc1BhcnNlLFxuICAgICAgICBzaG9ydE1vbnRoc1BhcnNlIDogbW9udGhzUGFyc2UsXG5cbiAgICAgICAgd2Vla2RheXMgOiAnem9uZGFnX21hYW5kYWdfZGluc2RhZ193b2Vuc2RhZ19kb25kZXJkYWdfdnJpamRhZ196YXRlcmRhZycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICd6by5fbWEuX2RpLl93by5fZG8uX3ZyLl96YS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ3pvX21hX2RpX3dvX2RvX3ZyX3phJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW3ZhbmRhYWcgb21dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbbW9yZ2VuIG9tXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW29tXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2dpc3RlcmVuIG9tXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1thZmdlbG9wZW5dIGRkZGQgW29tXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdvdmVyICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgZ2VsZWRlbicsXG4gICAgICAgICAgICBzIDogJ2VlbiBwYWFyIHNlY29uZGVuJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNlY29uZGVuJyxcbiAgICAgICAgICAgIG0gOiAnw6nDqW4gbWludXV0JyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0ZW4nLFxuICAgICAgICAgICAgaCA6ICfDqcOpbiB1dXInLFxuICAgICAgICAgICAgaGggOiAnJWQgdXVyJyxcbiAgICAgICAgICAgIGQgOiAnw6nDqW4gZGFnJyxcbiAgICAgICAgICAgIGRkIDogJyVkIGRhZ2VuJyxcbiAgICAgICAgICAgIE0gOiAnw6nDqW4gbWFhbmQnLFxuICAgICAgICAgICAgTU0gOiAnJWQgbWFhbmRlbicsXG4gICAgICAgICAgICB5IDogJ8Opw6luIGphYXInLFxuICAgICAgICAgICAgeXkgOiAnJWQgamFhcidcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHN0ZXxkZSkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICgobnVtYmVyID09PSAxIHx8IG51bWJlciA9PT0gOCB8fCBudW1iZXIgPj0gMjApID8gJ3N0ZScgOiAnZGUnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmxCZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIG1vbnRoc1Nob3J0V2l0aERvdHMgPSAnamFuLl9mZWIuX21ydC5fYXByLl9tZWlfanVuLl9qdWwuX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVjLicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnRXaXRob3V0RG90cyA9ICdqYW5fZmViX21ydF9hcHJfbWVpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2RlYycuc3BsaXQoJ18nKTtcblxuICAgIHZhciBtb250aHNQYXJzZSA9IFsvXmphbi9pLCAvXmZlYi9pLCAvXm1hYXJ0fG1ydC4/JC9pLCAvXmFwci9pLCAvXm1laSQvaSwgL15qdW5baS5dPyQvaSwgL15qdWxbaS5dPyQvaSwgL15hdWcvaSwgL15zZXAvaSwgL15va3QvaSwgL15ub3YvaSwgL15kZWMvaV07XG4gICAgdmFyIG1vbnRoc1JlZ2V4ID0gL14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcnxqYW5cXC4/fGZlYlxcLj98bXJ0XFwuP3xhcHJcXC4/fGp1W25sXVxcLj98YXVnXFwuP3xzZXBcXC4/fG9rdFxcLj98bm92XFwuP3xkZWNcXC4/KS9pO1xuXG4gICAgdmFyIG5sID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbmwnLCB7XG4gICAgICAgIG1vbnRocyA6ICdqYW51YXJpX2ZlYnJ1YXJpX21hYXJ0X2FwcmlsX21laV9qdW5pX2p1bGlfYXVndXN0dXNfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogZnVuY3Rpb24gKG0sIGZvcm1hdCkge1xuICAgICAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0V2l0aERvdHM7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKC8tTU1NLS8udGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0V2l0aG91dERvdHNbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc1Nob3J0V2l0aERvdHNbbS5tb250aCgpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBtb250aHNSZWdleDogbW9udGhzUmVnZXgsXG4gICAgICAgIG1vbnRoc1Nob3J0UmVnZXg6IG1vbnRoc1JlZ2V4LFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogL14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3ZlbWJlcnxkZWNlbWJlcikvaSxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogL14oamFuXFwuP3xmZWJcXC4/fG1ydFxcLj98YXByXFwuP3xtZWl8anVbbmxdXFwuP3xhdWdcXC4/fHNlcFxcLj98b2t0XFwuP3xub3ZcXC4/fGRlY1xcLj8pL2ksXG5cbiAgICAgICAgbW9udGhzUGFyc2UgOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlIDogbW9udGhzUGFyc2UsXG4gICAgICAgIHNob3J0TW9udGhzUGFyc2UgOiBtb250aHNQYXJzZSxcblxuICAgICAgICB3ZWVrZGF5cyA6ICd6b25kYWdfbWFhbmRhZ19kaW5zZGFnX3dvZW5zZGFnX2RvbmRlcmRhZ192cmlqZGFnX3phdGVyZGFnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ3pvLl9tYS5fZGkuX3dvLl9kby5fdnIuX3phLicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnem9fbWFfZGlfd29fZG9fdnJfemEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQtTU0tWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbdmFuZGFhZyBvbV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1ttb3JnZW4gb21dIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbZ2lzdGVyZW4gb21dIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW2FmZ2Vsb3Blbl0gZGRkZCBbb21dIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ292ZXIgJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyBnZWxlZGVuJyxcbiAgICAgICAgICAgIHMgOiAnZWVuIHBhYXIgc2Vjb25kZW4nLFxuICAgICAgICAgICAgc3MgOiAnJWQgc2Vjb25kZW4nLFxuICAgICAgICAgICAgbSA6ICfDqcOpbiBtaW51dXQnLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXRlbicsXG4gICAgICAgICAgICBoIDogJ8Opw6luIHV1cicsXG4gICAgICAgICAgICBoaCA6ICclZCB1dXInLFxuICAgICAgICAgICAgZCA6ICfDqcOpbiBkYWcnLFxuICAgICAgICAgICAgZGQgOiAnJWQgZGFnZW4nLFxuICAgICAgICAgICAgTSA6ICfDqcOpbiBtYWFuZCcsXG4gICAgICAgICAgICBNTSA6ICclZCBtYWFuZGVuJyxcbiAgICAgICAgICAgIHkgOiAnw6nDqW4gamFhcicsXG4gICAgICAgICAgICB5eSA6ICclZCBqYWFyJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oc3RlfGRlKS8sXG4gICAgICAgIG9yZGluYWwgOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKChudW1iZXIgPT09IDEgfHwgbnVtYmVyID09PSA4IHx8IG51bWJlciA+PSAyMCkgPyAnc3RlJyA6ICdkZScpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBubDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIG5uID0gbW9tZW50LmRlZmluZUxvY2FsZSgnbm4nLCB7XG4gICAgICAgIG1vbnRocyA6ICdqYW51YXJfZmVicnVhcl9tYXJzX2FwcmlsX21haV9qdW5pX2p1bGlfYXVndXN0X3NlcHRlbWJlcl9va3RvYmVyX25vdmVtYmVyX2Rlc2VtYmVyJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdqYW5fZmViX21hcl9hcHJfbWFpX2p1bl9qdWxfYXVnX3NlcF9va3Rfbm92X2Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnc3VuZGFnX23DpW5kYWdfdHlzZGFnX29uc2RhZ190b3JzZGFnX2ZyZWRhZ19sYXVyZGFnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ3N1bl9tw6VuX3R5c19vbnNfdG9yX2ZyZV9sYXUnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ3N1X23DpV90eV9vbl90b19mcl9sw7gnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdELiBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QuIE1NTU0gWVlZWSBba2wuXSBIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCBELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tJIGRhZyBrbG9ra2FdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbSSBtb3Jnb24ga2xva2thXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2tsb2trYV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tJIGfDpXIga2xva2thXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tGw7hyZWfDpWFuZGVdIGRkZGQgW2tsb2trYV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnb20gJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyBzaWRhbicsXG4gICAgICAgICAgICBzIDogJ25va3JlIHNla3VuZCcsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWt1bmQnLFxuICAgICAgICAgICAgbSA6ICdlaXQgbWludXR0JyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0dCcsXG4gICAgICAgICAgICBoIDogJ2VpbiB0aW1lJyxcbiAgICAgICAgICAgIGhoIDogJyVkIHRpbWFyJyxcbiAgICAgICAgICAgIGQgOiAnZWluIGRhZycsXG4gICAgICAgICAgICBkZCA6ICclZCBkYWdhcicsXG4gICAgICAgICAgICBNIDogJ2VpbiBtw6VuYWQnLFxuICAgICAgICAgICAgTU0gOiAnJWQgbcOlbmFkZXInLFxuICAgICAgICAgICAgeSA6ICdlaXQgw6VyJyxcbiAgICAgICAgICAgIHl5IDogJyVkIMOlcidcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbCA6ICclZC4nLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBubjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHN5bWJvbE1hcCA9IHtcbiAgICAgICAgJzEnOiAn4KmnJyxcbiAgICAgICAgJzInOiAn4KmoJyxcbiAgICAgICAgJzMnOiAn4KmpJyxcbiAgICAgICAgJzQnOiAn4KmqJyxcbiAgICAgICAgJzUnOiAn4KmrJyxcbiAgICAgICAgJzYnOiAn4KmsJyxcbiAgICAgICAgJzcnOiAn4KmtJyxcbiAgICAgICAgJzgnOiAn4KmuJyxcbiAgICAgICAgJzknOiAn4KmvJyxcbiAgICAgICAgJzAnOiAn4KmmJ1xuICAgIH0sXG4gICAgbnVtYmVyTWFwID0ge1xuICAgICAgICAn4KmnJzogJzEnLFxuICAgICAgICAn4KmoJzogJzInLFxuICAgICAgICAn4KmpJzogJzMnLFxuICAgICAgICAn4KmqJzogJzQnLFxuICAgICAgICAn4KmrJzogJzUnLFxuICAgICAgICAn4KmsJzogJzYnLFxuICAgICAgICAn4KmtJzogJzcnLFxuICAgICAgICAn4KmuJzogJzgnLFxuICAgICAgICAn4KmvJzogJzknLFxuICAgICAgICAn4KmmJzogJzAnXG4gICAgfTtcblxuICAgIHZhciBwYUluID0gbW9tZW50LmRlZmluZUxvY2FsZSgncGEtaW4nLCB7XG4gICAgICAgIC8vIFRoZXJlIGFyZSBtb250aHMgbmFtZSBhcyBwZXIgTmFuYWtzaGFoaSBDYWxlbmRhciBidXQgdGhleSBhcmUgbm90IHVzZWQgYXMgcmlnaWRseSBpbiBtb2Rlcm4gUHVuamFiaS5cbiAgICAgICAgbW9udGhzIDogJ+ConOCoqOCoteCosOCpgF/gqKvgqLzgqLDgqLXgqLDgqYBf4Kiu4Ki+4Kiw4KiaX+CoheCoquCpjeCosOCpiOCosl/gqK7gqIhf4Kic4KmC4KioX+ConOCpgeCosuCovuCoiF/gqIXgqJfgqLjgqKRf4Ki44Kik4Kmw4Kis4KiwX+CoheColeCopOCpguCorOCosF/gqKjgqLXgqbDgqKzgqLBf4Kim4Ki44Kmw4Kis4KiwJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICfgqJzgqKjgqLXgqLDgqYBf4Kir4Ki84Kiw4Ki14Kiw4KmAX+CoruCovuCosOComl/gqIXgqKrgqY3gqLDgqYjgqLJf4Kiu4KiIX+ConOCpguCoqF/gqJzgqYHgqLLgqL7gqIhf4KiF4KiX4Ki44KikX+CouOCopOCpsOCorOCosF/gqIXgqJXgqKTgqYLgqKzgqLBf4Kio4Ki14Kmw4Kis4KiwX+CopuCouOCpsOCorOCosCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAn4KiQ4Kik4Ki14Ki+4KiwX+CouOCpi+CoruCoteCovuCosF/gqK7gqbDgqJfgqLLgqLXgqL7gqLBf4Kis4KmB4Kin4Ki14Ki+4KiwX+CoteCpgOCosOCoteCovuCosF/gqLjgqLzgqYHgqbHgqJXgqLDgqLXgqL7gqLBf4Ki44Ki84Kio4KmA4Kia4Kiw4Ki14Ki+4KiwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ+CokOCopF/gqLjgqYvgqK5f4Kiu4Kmw4KiX4KiyX+CorOCpgeCop1/gqLXgqYDgqLBf4Ki44Ki84KmB4KiV4KiwX+CouOCovOCoqOCpgCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn4KiQ4KikX+CouOCpi+Corl/gqK7gqbDgqJfgqLJf4Kis4KmB4KinX+CoteCpgOCosF/gqLjgqLzgqYHgqJXgqLBf4Ki44Ki84Kio4KmAJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0EgaDptbSDgqLXgqJzgqYcnLFxuICAgICAgICAgICAgTFRTIDogJ0EgaDptbTpzcyDgqLXgqJzgqYcnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSwgQSBoOm1tIOCoteConOCphycsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0g4Ki14Kic4KmHJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW+CoheConF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdb4KiV4KiyXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdb4KiF4KiX4Kiy4Ki+XSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vgqJXgqLJdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1vgqKrgqL/gqJvgqLLgqYddIGRkZGQsIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICclcyDgqLXgqL/gqbHgqJonLFxuICAgICAgICAgICAgcGFzdCA6ICclcyDgqKrgqL/gqJvgqLLgqYcnLFxuICAgICAgICAgICAgcyA6ICfgqJXgqYHgqJ0g4Ki44KiV4Ki/4Kmw4KifJyxcbiAgICAgICAgICAgIHNzIDogJyVkIOCouOColeCov+CpsOConycsXG4gICAgICAgICAgICBtIDogJ+Coh+ColSDgqK7gqL/gqbDgqJ8nLFxuICAgICAgICAgICAgbW0gOiAnJWQg4Kiu4Ki/4Kmw4KifJyxcbiAgICAgICAgICAgIGggOiAn4KiH4Kmx4KiVIOComOCpsOCon+CovicsXG4gICAgICAgICAgICBoaCA6ICclZCDgqJjgqbDgqJ/gqYcnLFxuICAgICAgICAgICAgZCA6ICfgqIfgqbHgqJUg4Kim4Ki/4KioJyxcbiAgICAgICAgICAgIGRkIDogJyVkIOCopuCov+CoqCcsXG4gICAgICAgICAgICBNIDogJ+Coh+CpseColSDgqK7gqLngqYDgqKjgqL4nLFxuICAgICAgICAgICAgTU0gOiAnJWQg4Kiu4Ki54KmA4Kio4KmHJyxcbiAgICAgICAgICAgIHkgOiAn4KiH4Kmx4KiVIOCouOCovuCosicsXG4gICAgICAgICAgICB5eSA6ICclZCDgqLjgqL7gqLInXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1vgqafgqajgqangqargqavgqazgqa3gqa7gqa/gqaZdL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvXFxkL2csIGZ1bmN0aW9uIChtYXRjaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xNYXBbbWF0Y2hdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIC8vIFB1bmphYmkgbm90YXRpb24gZm9yIG1lcmlkaWVtcyBhcmUgcXVpdGUgZnV6enkgaW4gcHJhY3RpY2UuIFdoaWxlIHRoZXJlIGV4aXN0c1xuICAgICAgICAvLyBhIHJpZ2lkIG5vdGlvbiBvZiBhICdQYWhhcicgaXQgaXMgbm90IHVzZWQgYXMgcmlnaWRseSBpbiBtb2Rlcm4gUHVuamFiaS5cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+CosOCovuCopHzgqLjgqLXgqYfgqLB84Kim4KmB4Kiq4Ki54Ki/4KiwfOCouOCovOCovuCori8sXG4gICAgICAgIG1lcmlkaWVtSG91ciA6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgqLDgqL7gqKQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCA0ID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgqLjgqLXgqYfgqLAnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn4Kim4KmB4Kiq4Ki54Ki/4KiwJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDEwID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgqLjgqLzgqL7gqK4nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CosOCovuCopCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Ki44Ki14KmH4KiwJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDE3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgqKbgqYHgqKrgqLngqL/gqLAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMjApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CouOCovOCovuCoric7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4Kiw4Ki+4KikJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNiAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNnRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGFJbjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIG1vbnRoc05vbWluYXRpdmUgPSAnc3R5Y3plxYRfbHV0eV9tYXJ6ZWNfa3dpZWNpZcWEX21hal9jemVyd2llY19saXBpZWNfc2llcnBpZcWEX3dyemVzaWXFhF9wYcW6ZHppZXJuaWtfbGlzdG9wYWRfZ3J1ZHppZcWEJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTdWJqZWN0aXZlID0gJ3N0eWN6bmlhX2x1dGVnb19tYXJjYV9rd2lldG5pYV9tYWphX2N6ZXJ3Y2FfbGlwY2Ffc2llcnBuaWFfd3J6ZcWbbmlhX3Bhxbpkemllcm5pa2FfbGlzdG9wYWRhX2dydWRuaWEnLnNwbGl0KCdfJyk7XG4gICAgZnVuY3Rpb24gcGx1cmFsKG4pIHtcbiAgICAgICAgcmV0dXJuIChuICUgMTAgPCA1KSAmJiAobiAlIDEwID4gMSkgJiYgKCh+fihuIC8gMTApICUgMTApICE9PSAxKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdzZWt1bmR5JyA6ICdzZWt1bmQnKTtcbiAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ21pbnV0YScgOiAnbWludXTEmSc7XG4gICAgICAgICAgICBjYXNlICdtbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdtaW51dHknIDogJ21pbnV0Jyk7XG4gICAgICAgICAgICBjYXNlICdoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCAgPyAnZ29kemluYScgIDogJ2dvZHppbsSZJztcbiAgICAgICAgICAgIGNhc2UgJ2hoJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ2dvZHppbnknIDogJ2dvZHppbicpO1xuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnbWllc2nEhWNlJyA6ICdtaWVzacSZY3knKTtcbiAgICAgICAgICAgIGNhc2UgJ3l5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ2xhdGEnIDogJ2xhdCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIHBsID0gbW9tZW50LmRlZmluZUxvY2FsZSgncGwnLCB7XG4gICAgICAgIG1vbnRocyA6IGZ1bmN0aW9uIChtb21lbnRUb0Zvcm1hdCwgZm9ybWF0KSB7XG4gICAgICAgICAgICBpZiAoIW1vbWVudFRvRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc05vbWluYXRpdmU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICAvLyBIYWNrOiBpZiBmb3JtYXQgZW1wdHkgd2Uga25vdyB0aGlzIGlzIHVzZWQgdG8gZ2VuZXJhdGVcbiAgICAgICAgICAgICAgICAvLyBSZWdFeHAgYnkgbW9tZW50LiBHaXZlIHRoZW4gYmFjayBib3RoIHZhbGlkIGZvcm1zIG9mIG1vbnRoc1xuICAgICAgICAgICAgICAgIC8vIGluIFJlZ0V4cCByZWFkeSBmb3JtYXQuXG4gICAgICAgICAgICAgICAgcmV0dXJuICcoJyArIG1vbnRoc1N1YmplY3RpdmVbbW9tZW50VG9Gb3JtYXQubW9udGgoKV0gKyAnfCcgKyBtb250aHNOb21pbmF0aXZlW21vbWVudFRvRm9ybWF0Lm1vbnRoKCldICsgJyknO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgvRCBNTU1NLy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW9udGhzU3ViamVjdGl2ZVttb21lbnRUb0Zvcm1hdC5tb250aCgpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1vbnRoc05vbWluYXRpdmVbbW9tZW50VG9Gb3JtYXQubW9udGgoKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ3N0eV9sdXRfbWFyX2t3aV9tYWpfY3plX2xpcF9zaWVfd3J6X3BhxbpfbGlzX2dydScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnbmllZHppZWxhX3BvbmllZHppYcWCZWtfd3RvcmVrX8Wbcm9kYV9jendhcnRla19wacSFdGVrX3NvYm90YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICduZHpfcG9uX3d0X8Wbcl9jendfcHRfc29iJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdOZF9Qbl9XdF/FmnJfQ3pfUHRfU28nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0R6acWbIG9dIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbSnV0cm8gb10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbVyBuaWVkemllbMSZIG9dIExUJztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1tXZSB3dG9yZWsgb10gTFQnO1xuXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgxZtyb2TEmSBvXSBMVCc7XG5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbVyBzb2JvdMSZIG9dIExUJztcblxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbV10gZGRkZCBbb10gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW1djem9yYWogb10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbVyB6ZXN6xYLEhSBuaWVkemllbMSZIG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbVyB6ZXN6xYLEhSDFm3JvZMSZIG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbVyB6ZXN6xYLEhSBzb2JvdMSZIG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW1cgemVzesWCeV0gZGRkZCBbb10gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICd6YSAlcycsXG4gICAgICAgICAgICBwYXN0IDogJyVzIHRlbXUnLFxuICAgICAgICAgICAgcyA6ICdraWxrYSBzZWt1bmQnLFxuICAgICAgICAgICAgc3MgOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBtIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbW0gOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBoIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaGggOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkIDogJzEgZHppZcWEJyxcbiAgICAgICAgICAgIGRkIDogJyVkIGRuaScsXG4gICAgICAgICAgICBNIDogJ21pZXNpxIVjJyxcbiAgICAgICAgICAgIE1NIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeSA6ICdyb2snLFxuICAgICAgICAgICAgeXkgOiB0cmFuc2xhdGVcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbCA6ICclZC4nLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBwbDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHB0QnIgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdwdC1icicsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbmVpcm9fRmV2ZXJlaXJvX01hcsOnb19BYnJpbF9NYWlvX0p1bmhvX0p1bGhvX0Fnb3N0b19TZXRlbWJyb19PdXR1YnJvX05vdmVtYnJvX0RlemVtYnJvJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdKYW5fRmV2X01hcl9BYnJfTWFpX0p1bl9KdWxfQWdvX1NldF9PdXRfTm92X0Rleicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnRG9taW5nb19TZWd1bmRhLWZlaXJhX1RlcsOnYS1mZWlyYV9RdWFydGEtZmVpcmFfUXVpbnRhLWZlaXJhX1NleHRhLWZlaXJhX1PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnRG9tX1NlZ19UZXJfUXVhX1F1aV9TZXhfU8OhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnRG9fMsKqXzPCql80wqpfNcKqXzbCql9Tw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWSBbw6BzXSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBbw6BzXSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hvamUgw6BzXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0FtYW5ow6Mgw6BzXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW8Ogc10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tPbnRlbSDDoHNdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLmRheSgpID09PSAwIHx8IHRoaXMuZGF5KCkgPT09IDYpID9cbiAgICAgICAgICAgICAgICAgICAgJ1vDmmx0aW1vXSBkZGRkIFvDoHNdIExUJyA6IC8vIFNhdHVyZGF5ICsgU3VuZGF5XG4gICAgICAgICAgICAgICAgICAgICdbw5psdGltYV0gZGRkZCBbw6BzXSBMVCc7IC8vIE1vbmRheSAtIEZyaWRheVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ2VtICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnaMOhICVzJyxcbiAgICAgICAgICAgIHMgOiAncG91Y29zIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNlZ3VuZG9zJyxcbiAgICAgICAgICAgIG0gOiAndW0gbWludXRvJyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0b3MnLFxuICAgICAgICAgICAgaCA6ICd1bWEgaG9yYScsXG4gICAgICAgICAgICBoaCA6ICclZCBob3JhcycsXG4gICAgICAgICAgICBkIDogJ3VtIGRpYScsXG4gICAgICAgICAgICBkZCA6ICclZCBkaWFzJyxcbiAgICAgICAgICAgIE0gOiAndW0gbcOqcycsXG4gICAgICAgICAgICBNTSA6ICclZCBtZXNlcycsXG4gICAgICAgICAgICB5IDogJ3VtIGFubycsXG4gICAgICAgICAgICB5eSA6ICclZCBhbm9zJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3Cui8sXG4gICAgICAgIG9yZGluYWwgOiAnJWTCuidcbiAgICB9KTtcblxuICAgIHJldHVybiBwdEJyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgcHQgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdwdCcsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbmVpcm9fRmV2ZXJlaXJvX01hcsOnb19BYnJpbF9NYWlvX0p1bmhvX0p1bGhvX0Fnb3N0b19TZXRlbWJyb19PdXR1YnJvX05vdmVtYnJvX0RlemVtYnJvJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdKYW5fRmV2X01hcl9BYnJfTWFpX0p1bl9KdWxfQWdvX1NldF9PdXRfTm92X0Rleicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnRG9taW5nb19TZWd1bmRhLWZlaXJhX1RlcsOnYS1mZWlyYV9RdWFydGEtZmVpcmFfUXVpbnRhLWZlaXJhX1NleHRhLWZlaXJhX1PDoWJhZG8nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnRG9tX1NlZ19UZXJfUXVhX1F1aV9TZXhfU8OhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnRG9fMsKqXzPCql80wqpfNcKqXzbCql9Tw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIFtkZV0gTU1NTSBbZGVdIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgW2RlXSBNTU1NIFtkZV0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgW2RlXSBNTU1NIFtkZV0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW0hvamUgw6BzXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0FtYW5ow6Mgw6BzXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW8Ogc10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tPbnRlbSDDoHNdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLmRheSgpID09PSAwIHx8IHRoaXMuZGF5KCkgPT09IDYpID9cbiAgICAgICAgICAgICAgICAgICAgJ1vDmmx0aW1vXSBkZGRkIFvDoHNdIExUJyA6IC8vIFNhdHVyZGF5ICsgU3VuZGF5XG4gICAgICAgICAgICAgICAgICAgICdbw5psdGltYV0gZGRkZCBbw6BzXSBMVCc7IC8vIE1vbmRheSAtIEZyaWRheVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ2VtICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnaMOhICVzJyxcbiAgICAgICAgICAgIHMgOiAnc2VndW5kb3MnLFxuICAgICAgICAgICAgc3MgOiAnJWQgc2VndW5kb3MnLFxuICAgICAgICAgICAgbSA6ICd1bSBtaW51dG8nLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXRvcycsXG4gICAgICAgICAgICBoIDogJ3VtYSBob3JhJyxcbiAgICAgICAgICAgIGhoIDogJyVkIGhvcmFzJyxcbiAgICAgICAgICAgIGQgOiAndW0gZGlhJyxcbiAgICAgICAgICAgIGRkIDogJyVkIGRpYXMnLFxuICAgICAgICAgICAgTSA6ICd1bSBtw6pzJyxcbiAgICAgICAgICAgIE1NIDogJyVkIG1lc2VzJyxcbiAgICAgICAgICAgIHkgOiAndW0gYW5vJyxcbiAgICAgICAgICAgIHl5IDogJyVkIGFub3MnXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfcK6LyxcbiAgICAgICAgb3JkaW5hbCA6ICclZMK6JyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHQ7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhQbHVyYWwobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgICAgICAnc3MnOiAnc2VjdW5kZScsXG4gICAgICAgICAgICAgICAgJ21tJzogJ21pbnV0ZScsXG4gICAgICAgICAgICAgICAgJ2hoJzogJ29yZScsXG4gICAgICAgICAgICAgICAgJ2RkJzogJ3ppbGUnLFxuICAgICAgICAgICAgICAgICdNTSc6ICdsdW5pJyxcbiAgICAgICAgICAgICAgICAneXknOiAnYW5pJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNlcGFyYXRvciA9ICcgJztcbiAgICAgICAgaWYgKG51bWJlciAlIDEwMCA+PSAyMCB8fCAobnVtYmVyID49IDEwMCAmJiBudW1iZXIgJSAxMDAgPT09IDApKSB7XG4gICAgICAgICAgICBzZXBhcmF0b3IgPSAnIGRlICc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bWJlciArIHNlcGFyYXRvciArIGZvcm1hdFtrZXldO1xuICAgIH1cblxuICAgIHZhciBybyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3JvJywge1xuICAgICAgICBtb250aHMgOiAnaWFudWFyaWVfZmVicnVhcmllX21hcnRpZV9hcHJpbGllX21haV9pdW5pZV9pdWxpZV9hdWd1c3Rfc2VwdGVtYnJpZV9vY3RvbWJyaWVfbm9pZW1icmllX2RlY2VtYnJpZScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnaWFuLl9mZWJyLl9tYXJ0Ll9hcHIuX21haV9pdW4uX2l1bC5fYXVnLl9zZXB0Ll9vY3QuX25vdi5fZGVjLicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2VFeGFjdDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiAnZHVtaW5pY8SDX2x1bmlfbWFyyJtpX21pZXJjdXJpX2pvaV92aW5lcmlfc8OibWLEg3TEgycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdEdW1fTHVuX01hcl9NaWVfSm9pX1Zpbl9Tw6JtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdEdV9MdV9NYV9NaV9Kb19WaV9Tw6InLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSBIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbYXppIGxhXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW23DomluZSBsYV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFtsYV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tpZXJpIGxhXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tmb3N0YV0gZGRkZCBbbGFdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ3Blc3RlICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgw65uIHVybcSDJyxcbiAgICAgICAgICAgIHMgOiAnY8OidGV2YSBzZWN1bmRlJyxcbiAgICAgICAgICAgIHNzIDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIG0gOiAndW4gbWludXQnLFxuICAgICAgICAgICAgbW0gOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgaCA6ICdvIG9yxIMnLFxuICAgICAgICAgICAgaGggOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgZCA6ICdvIHppJyxcbiAgICAgICAgICAgIGRkIDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIE0gOiAnbyBsdW7EgycsXG4gICAgICAgICAgICBNTSA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICB5IDogJ3VuIGFuJyxcbiAgICAgICAgICAgIHl5IDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbFxuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA3ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBybztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgZnVuY3Rpb24gcGx1cmFsKHdvcmQsIG51bSkge1xuICAgICAgICB2YXIgZm9ybXMgPSB3b3JkLnNwbGl0KCdfJyk7XG4gICAgICAgIHJldHVybiBudW0gJSAxMCA9PT0gMSAmJiBudW0gJSAxMDAgIT09IDExID8gZm9ybXNbMF0gOiAobnVtICUgMTAgPj0gMiAmJiBudW0gJSAxMCA8PSA0ICYmIChudW0gJSAxMDAgPCAxMCB8fCBudW0gJSAxMDAgPj0gMjApID8gZm9ybXNbMV0gOiBmb3Jtc1syXSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbGF0aXZlVGltZVdpdGhQbHVyYWwobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHtcbiAgICAgICAgICAgICdzcyc6IHdpdGhvdXRTdWZmaXggPyAn0YHQtdC60YPQvdC00LBf0YHQtdC60YPQvdC00Ytf0YHQtdC60YPQvdC0JyA6ICfRgdC10LrRg9C90LTRg1/RgdC10LrRg9C90LTRi1/RgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgJ21tJzogd2l0aG91dFN1ZmZpeCA/ICfQvNC40L3Rg9GC0LBf0LzQuNC90YPRgtGLX9C80LjQvdGD0YInIDogJ9C80LjQvdGD0YLRg1/QvNC40L3Rg9GC0Ytf0LzQuNC90YPRgicsXG4gICAgICAgICAgICAnaGgnOiAn0YfQsNGBX9GH0LDRgdCwX9GH0LDRgdC+0LInLFxuICAgICAgICAgICAgJ2RkJzogJ9C00LXQvdGMX9C00L3Rj1/QtNC90LXQuScsXG4gICAgICAgICAgICAnTU0nOiAn0LzQtdGB0Y/Rhl/QvNC10YHRj9GG0LBf0LzQtdGB0Y/RhtC10LInLFxuICAgICAgICAgICAgJ3l5JzogJ9Cz0L7QtF/Qs9C+0LTQsF/Qu9C10YInXG4gICAgICAgIH07XG4gICAgICAgIGlmIChrZXkgPT09ICdtJykge1xuICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAn0LzQuNC90YPRgtCwJyA6ICfQvNC40L3Rg9GC0YMnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICcgJyArIHBsdXJhbChmb3JtYXRba2V5XSwgK251bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdmFyIG1vbnRoc1BhcnNlID0gWy9e0Y/QvdCyL2ksIC9e0YTQtdCyL2ksIC9e0LzQsNGAL2ksIC9e0LDQv9GAL2ksIC9e0LzQsFvQudGPXS9pLCAvXtC40Y7QvS9pLCAvXtC40Y7Quy9pLCAvXtCw0LLQsy9pLCAvXtGB0LXQvS9pLCAvXtC+0LrRgi9pLCAvXtC90L7Rjy9pLCAvXtC00LXQui9pXTtcblxuICAgIC8vIGh0dHA6Ly9uZXcuZ3JhbW90YS5ydS9zcHJhdmthL3J1bGVzLzEzOS1wcm9wIDogwqcgMTAzXG4gICAgLy8g0KHQvtC60YDQsNGJ0LXQvdC40Y8g0LzQtdGB0Y/RhtC10LI6IGh0dHA6Ly9uZXcuZ3JhbW90YS5ydS9zcHJhdmthL2J1cm8vc2VhcmNoLWFuc3dlcj9zPTI0MjYzN1xuICAgIC8vIENMRFIgZGF0YTogICAgICAgICAgaHR0cDovL3d3dy51bmljb2RlLm9yZy9jbGRyL2NoYXJ0cy8yOC9zdW1tYXJ5L3J1Lmh0bWwjMTc1M1xuICAgIHZhciBydSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3J1Jywge1xuICAgICAgICBtb250aHMgOiB7XG4gICAgICAgICAgICBmb3JtYXQ6ICfRj9C90LLQsNGA0Y9f0YTQtdCy0YDQsNC70Y9f0LzQsNGA0YLQsF/QsNC/0YDQtdC70Y9f0LzQsNGPX9C40Y7QvdGPX9C40Y7Qu9GPX9Cw0LLQs9GD0YHRgtCwX9GB0LXQvdGC0Y/QsdGA0Y9f0L7QutGC0Y/QsdGA0Y9f0L3QvtGP0LHRgNGPX9C00LXQutCw0LHRgNGPJy5zcGxpdCgnXycpLFxuICAgICAgICAgICAgc3RhbmRhbG9uZTogJ9GP0L3QstCw0YDRjF/RhNC10LLRgNCw0LvRjF/QvNCw0YDRgl/QsNC/0YDQtdC70Yxf0LzQsNC5X9C40Y7QvdGMX9C40Y7Qu9GMX9Cw0LLQs9GD0YHRgl/RgdC10L3RgtGP0LHRgNGMX9C+0LrRgtGP0LHRgNGMX9C90L7Rj9Cx0YDRjF/QtNC10LrQsNCx0YDRjCcuc3BsaXQoJ18nKVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydCA6IHtcbiAgICAgICAgICAgIC8vINC/0L4gQ0xEUiDQuNC80LXQvdC90L4gXCLQuNGO0LsuXCIg0LggXCLQuNGO0L0uXCIsINC90L4g0LrQsNC60L7QuSDRgdC80YvRgdC7INC80LXQvdGP0YLRjCDQsdGD0LrQstGDINC90LAg0YLQvtGH0LrRgyA/XG4gICAgICAgICAgICBmb3JtYXQ6ICfRj9C90LIuX9GE0LXQstGALl/QvNCw0YAuX9Cw0L/RgC5f0LzQsNGPX9C40Y7QvdGPX9C40Y7Qu9GPX9Cw0LLQsy5f0YHQtdC90YIuX9C+0LrRgi5f0L3QvtGP0LEuX9C00LXQui4nLnNwbGl0KCdfJyksXG4gICAgICAgICAgICBzdGFuZGFsb25lOiAn0Y/QvdCyLl/RhNC10LLRgC5f0LzQsNGA0YJf0LDQv9GALl/QvNCw0Llf0LjRjtC90Yxf0LjRjtC70Yxf0LDQstCzLl/RgdC10L3Rgi5f0L7QutGCLl/QvdC+0Y/QsS5f0LTQtdC6Licuc3BsaXQoJ18nKVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrZGF5cyA6IHtcbiAgICAgICAgICAgIHN0YW5kYWxvbmU6ICfQstC+0YHQutGA0LXRgdC10L3RjNC1X9C/0L7QvdC10LTQtdC70YzQvdC40Lpf0LLRgtC+0YDQvdC40Lpf0YHRgNC10LTQsF/Rh9C10YLQstC10YDQs1/Qv9GP0YLQvdC40YbQsF/RgdGD0LHQsdC+0YLQsCcuc3BsaXQoJ18nKSxcbiAgICAgICAgICAgIGZvcm1hdDogJ9Cy0L7RgdC60YDQtdGB0LXQvdGM0LVf0L/QvtC90LXQtNC10LvRjNC90LjQul/QstGC0L7RgNC90LjQul/RgdGA0LXQtNGDX9GH0LXRgtCy0LXRgNCzX9C/0Y/RgtC90LjRhtGDX9GB0YPQsdCx0L7RgtGDJy5zcGxpdCgnXycpLFxuICAgICAgICAgICAgaXNGb3JtYXQ6IC9cXFsgP1vQktCyXSA/KD860L/RgNC+0YjQu9GD0Y580YHQu9C10LTRg9GO0YnRg9GOfNGN0YLRgyk/ID9cXF0gP2RkZGQvXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn0LLRgV/Qv9C9X9Cy0YJf0YHRgF/Rh9GCX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn0LLRgV/Qv9C9X9Cy0YJf0YHRgF/Rh9GCX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzUGFyc2UgOiBtb250aHNQYXJzZSxcbiAgICAgICAgbG9uZ01vbnRoc1BhcnNlIDogbW9udGhzUGFyc2UsXG4gICAgICAgIHNob3J0TW9udGhzUGFyc2UgOiBtb250aHNQYXJzZSxcblxuICAgICAgICAvLyDQv9C+0LvQvdGL0LUg0L3QsNC30LLQsNC90LjRjyDRgSDQv9Cw0LTQtdC20LDQvNC4LCDQv9C+INGC0YDQuCDQsdGD0LrQstGLLCDQtNC70Y8g0L3QtdC60L7RgtC+0YDRi9GFLCDQv9C+IDQg0LHRg9C60LLRiywg0YHQvtC60YDQsNGJ0LXQvdC40Y8g0YEg0YLQvtGH0LrQvtC5INC4INCx0LXQtyDRgtC+0YfQutC4XG4gICAgICAgIG1vbnRoc1JlZ2V4OiAvXijRj9C90LLQsNGAW9GM0Y9dfNGP0L3QslxcLj980YTQtdCy0YDQsNC7W9GM0Y9dfNGE0LXQstGAP1xcLj980LzQsNGA0YLQsD980LzQsNGAXFwuP3zQsNC/0YDQtdC7W9GM0Y9dfNCw0L/RgFxcLj980LzQsFvQudGPXXzQuNGO0L1b0YzRj1180LjRjtC9XFwuP3zQuNGO0Ltb0YzRj1180LjRjtC7XFwuP3zQsNCy0LPRg9GB0YLQsD980LDQstCzXFwuP3zRgdC10L3RgtGP0LHRgFvRjNGPXXzRgdC10L3Rgj9cXC4/fNC+0LrRgtGP0LHRgFvRjNGPXXzQvtC60YJcXC4/fNC90L7Rj9Cx0YBb0YzRj1180L3QvtGP0LE/XFwuP3zQtNC10LrQsNCx0YBb0YzRj1180LTQtdC6XFwuPykvaSxcblxuICAgICAgICAvLyDQutC+0L/QuNGPINC/0YDQtdC00YvQtNGD0YnQtdCz0L5cbiAgICAgICAgbW9udGhzU2hvcnRSZWdleDogL14o0Y/QvdCy0LDRgFvRjNGPXXzRj9C90LJcXC4/fNGE0LXQstGA0LDQu1vRjNGPXXzRhNC10LLRgD9cXC4/fNC80LDRgNGC0LA/fNC80LDRgFxcLj980LDQv9GA0LXQu1vRjNGPXXzQsNC/0YBcXC4/fNC80LBb0LnRj1180LjRjtC9W9GM0Y9dfNC40Y7QvVxcLj980LjRjtC7W9GM0Y9dfNC40Y7Qu1xcLj980LDQstCz0YPRgdGC0LA/fNCw0LLQs1xcLj980YHQtdC90YLRj9Cx0YBb0YzRj1180YHQtdC90YI/XFwuP3zQvtC60YLRj9Cx0YBb0YzRj1180L7QutGCXFwuP3zQvdC+0Y/QsdGAW9GM0Y9dfNC90L7Rj9CxP1xcLj980LTQtdC60LDQsdGAW9GM0Y9dfNC00LXQulxcLj8pL2ksXG5cbiAgICAgICAgLy8g0L/QvtC70L3Ri9C1INC90LDQt9Cy0LDQvdC40Y8g0YEg0L/QsNC00LXQttCw0LzQuFxuICAgICAgICBtb250aHNTdHJpY3RSZWdleDogL14o0Y/QvdCy0LDRgFvRj9GMXXzRhNC10LLRgNCw0Ltb0Y/RjF180LzQsNGA0YLQsD980LDQv9GA0LXQu1vRj9GMXXzQvNCwW9GP0LldfNC40Y7QvVvRj9GMXXzQuNGO0Ltb0Y/RjF180LDQstCz0YPRgdGC0LA/fNGB0LXQvdGC0Y/QsdGAW9GP0YxdfNC+0LrRgtGP0LHRgFvRj9GMXXzQvdC+0Y/QsdGAW9GP0YxdfNC00LXQutCw0LHRgFvRj9GMXSkvaSxcblxuICAgICAgICAvLyDQktGL0YDQsNC20LXQvdC40LUsINC60L7RgtC+0YDQvtC1INGB0L7QvtGC0LLQtdGB0YLQstGD0LXRgiDRgtC+0LvRjNC60L4g0YHQvtC60YDQsNGJ0ZHQvdC90YvQvCDRhNC+0YDQvNCw0LxcbiAgICAgICAgbW9udGhzU2hvcnRTdHJpY3RSZWdleDogL14o0Y/QvdCyXFwufNGE0LXQstGAP1xcLnzQvNCw0YBb0YIuXXzQsNC/0YBcXC580LzQsFvRj9C5XXzQuNGO0L1b0YzRjy5dfNC40Y7Qu1vRjNGPLl180LDQstCzXFwufNGB0LXQvdGCP1xcLnzQvtC60YJcXC580L3QvtGP0LE/XFwufNC00LXQulxcLikvaSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWSDQsy4nLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZINCzLiwgSDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZINCzLiwgSDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9Ch0LXQs9C+0LTQvdGPLCDQsl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vQl9Cw0LLRgtGA0LAsINCyXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW9CS0YfQtdGA0LAsINCyXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKG5vdykge1xuICAgICAgICAgICAgICAgIGlmIChub3cud2VlaygpICE9PSB0aGlzLndlZWsoKSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkiDRgdC70LXQtNGD0Y7RidC10LVdIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSINGB0LvQtdC00YPRjtGJ0LjQuV0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JIg0YHQu9C10LTRg9GO0YnRg9GOXSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRheSgpID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQktC+XSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSXSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKG5vdykge1xuICAgICAgICAgICAgICAgIGlmIChub3cud2VlaygpICE9PSB0aGlzLndlZWsoKSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQkiDQv9GA0L7RiNC70L7QtV0gZGRkZCwgW9CyXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0JIg0L/RgNC+0YjQu9GL0LldIGRkZGQsIFvQsl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSINC/0YDQvtGI0LvRg9GOXSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRheSgpID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vQktC+XSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9CSXSBkZGRkLCBb0LJdIExUJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICfRh9C10YDQtdC3ICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMg0L3QsNC30LDQtCcsXG4gICAgICAgICAgICBzIDogJ9C90LXRgdC60L7Qu9GM0LrQviDRgdC10LrRg9C90LQnLFxuICAgICAgICAgICAgc3MgOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgbSA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBtbSA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBoIDogJ9GH0LDRgScsXG4gICAgICAgICAgICBoaCA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBkIDogJ9C00LXQvdGMJyxcbiAgICAgICAgICAgIGRkIDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIE0gOiAn0LzQtdGB0Y/RhicsXG4gICAgICAgICAgICBNTSA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICB5IDogJ9Cz0L7QtCcsXG4gICAgICAgICAgICB5eSA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWxcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9C90L7Rh9C4fNGD0YLRgNCwfNC00L3Rj3zQstC10YfQtdGA0LAvaSxcbiAgICAgICAgaXNQTSA6IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9eKNC00L3Rj3zQstC10YfQtdGA0LApJC8udGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtIDogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQvdC+0YfQuCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YPRgtGA0LAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9C00L3Rjyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0LLQtdGH0LXRgNCwJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjQuXzQs9C+fNGPKS8sXG4gICAgICAgIG9yZGluYWw6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdEREQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3QuSc7XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdCz0L4nO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJy3Rjyc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcnU7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBtb250aHMgPSBbXG4gICAgICAgICfYrNmG2YjYsdmKJyxcbiAgICAgICAgJ9mB2YrYqNix2YjYsdmKJyxcbiAgICAgICAgJ9mF2KfYsdqGJyxcbiAgICAgICAgJ9in2b7YsdmK2YQnLFxuICAgICAgICAn2YXYptmKJyxcbiAgICAgICAgJ9is2YjZhicsXG4gICAgICAgICfYrNmI2YTYp9ih2ZAnLFxuICAgICAgICAn2KLar9iz2b0nLFxuICAgICAgICAn2LPZitm+2b3Zhdio2LEnLFxuICAgICAgICAn2KLaqtm92YjYqNixJyxcbiAgICAgICAgJ9mG2YjZhdio2LEnLFxuICAgICAgICAn2orYs9mF2KjYsSdcbiAgICBdO1xuICAgIHZhciBkYXlzID0gW1xuICAgICAgICAn2KLahtixJyxcbiAgICAgICAgJ9iz2YjZhdixJyxcbiAgICAgICAgJ9in2rHYp9ix2YgnLFxuICAgICAgICAn2KfYsdio2LknLFxuICAgICAgICAn2K7ZhdmK2LMnLFxuICAgICAgICAn2KzZhdi5JyxcbiAgICAgICAgJ9qH2Ybah9ixJ1xuICAgIF07XG5cbiAgICB2YXIgc2QgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzZCcsIHtcbiAgICAgICAgbW9udGhzIDogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydCA6IG1vbnRocyxcbiAgICAgICAgd2Vla2RheXMgOiBkYXlzLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogZGF5cyxcbiAgICAgICAgd2Vla2RheXNNaW4gOiBkYXlzLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZNiMIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2LXYqNitfNi02KfZhS8sXG4gICAgICAgIGlzUE0gOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAn2LTYp9mFJyA9PT0gaW5wdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtIDogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LXYqNitJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAn2LTYp9mFJztcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1vYp9qEXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vYs9qA2Kfau9mKXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFvYp9qz2YrZhiDZh9mB2KrZiiDYqtmKXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vaqtin2YTZh9mHXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdb2q/Ystix2YrZhCDZh9mB2KrZil0gZGRkZCBb2KrZil0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJyVzINm+2YjYoScsXG4gICAgICAgICAgICBwYXN0IDogJyVzINin2rMnLFxuICAgICAgICAgICAgcyA6ICfahtmG2K8g2LPZitqq2YbaiicsXG4gICAgICAgICAgICBzcyA6ICclZCDYs9mK2qrZhtqKJyxcbiAgICAgICAgICAgIG0gOiAn2YfaqiDZhdmG2b0nLFxuICAgICAgICAgICAgbW0gOiAnJWQg2YXZhtm9JyxcbiAgICAgICAgICAgIGggOiAn2YfaqiDaqtmE2KfaqicsXG4gICAgICAgICAgICBoaCA6ICclZCDaqtmE2KfaqicsXG4gICAgICAgICAgICBkIDogJ9mH2qog2o/ZitmG2YfZhicsXG4gICAgICAgICAgICBkZCA6ICclZCDaj9mK2YbZh9mGJyxcbiAgICAgICAgICAgIE0gOiAn2YfaqiDZhdmH2YrZhtmIJyxcbiAgICAgICAgICAgIE1NIDogJyVkINmF2YfZitmG2KcnLFxuICAgICAgICAgICAgeSA6ICfZh9qqINiz2KfZhCcsXG4gICAgICAgICAgICB5eSA6ICclZCDYs9in2YQnXG4gICAgICAgIH0sXG4gICAgICAgIHByZXBhcnNlOiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL9iML2csICcsJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHBvc3Rmb3JtYXQ6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgvLC9nLCAn2IwnKTtcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2Q7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBzZSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NlJywge1xuICAgICAgICBtb250aHMgOiAnb8SRxJFhamFnZW3DoW5udV9ndW92dmFtw6FubnVfbmp1a8SNYW3DoW5udV9jdW/Fi29tw6FubnVfbWllc3NlbcOhbm51X2dlYXNzZW3DoW5udV9zdW9pZG5lbcOhbm51X2JvcmdlbcOhbm51X8SNYWvEjWFtw6FubnVfZ29sZ2dvdG3DoW5udV9za8OhYm1hbcOhbm51X2p1b3ZsYW3DoW5udScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnb8SRxJFqX2d1b3Zfbmp1a19jdW9fbWllc19nZWFzX3N1b2lfYm9yZ1/EjWFrxI1fZ29sZ19za8OhYl9qdW92Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdzb3RuYWJlYWl2aV92dW9zc8OhcmdhX21hxYvFi2Viw6FyZ2FfZ2Fza2F2YWhra3VfZHVvcmFzdGF0X2JlYXJqYWRhdF9sw6F2dmFyZGF0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ3NvdG5fdnVvc19tYcWLX2dhc2tfZHVvcl9iZWFyX2zDoXYnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ3Nfdl9tX2dfZF9iX0wnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdNTU1NIEQuIFtiLl0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnTU1NTSBELiBbYi5dIFlZWVkgW3RpLl0gSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBNTU1NIEQuIFtiLl0gWVlZWSBbdGkuXSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW290bmUgdGldIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbaWh0dGluIHRpXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW3RpXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5OiAnW2lrdGUgdGldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnW292ZGRpdF0gZGRkZCBbdGldIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJyVzIGdlYcW+ZXMnLFxuICAgICAgICAgICAgcGFzdCA6ICdtYcWLaXQgJXMnLFxuICAgICAgICAgICAgcyA6ICdtb2FkZGUgc2VrdW5kZGF0JyxcbiAgICAgICAgICAgIHNzOiAnJWQgc2VrdW5kZGF0JyxcbiAgICAgICAgICAgIG0gOiAnb2t0YSBtaW51aHRhJyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnVodGF0JyxcbiAgICAgICAgICAgIGggOiAnb2t0YSBkaWltbXUnLFxuICAgICAgICAgICAgaGggOiAnJWQgZGlpbW11dCcsXG4gICAgICAgICAgICBkIDogJ29rdGEgYmVhaXZpJyxcbiAgICAgICAgICAgIGRkIDogJyVkIGJlYWl2dml0JyxcbiAgICAgICAgICAgIE0gOiAnb2t0YSBtw6FubnUnLFxuICAgICAgICAgICAgTU0gOiAnJWQgbcOhbnV0JyxcbiAgICAgICAgICAgIHkgOiAnb2t0YSBqYWhraScsXG4gICAgICAgICAgICB5eSA6ICclZCBqYWdpdCdcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbCA6ICclZC4nLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgLypqc2hpbnQgLVcxMDAqL1xuICAgIHZhciBzaSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NpJywge1xuICAgICAgICBtb250aHMgOiAn4Lai4Lax4LeA4LeP4La74LeSX+C2tOC3meC2tuC2u+C3gOC3j+C2u+C3kl/gtrjgt4/gtrvgt4rgtq3gt5Rf4LaF4La04LeK4oCN4La74Lea4La94LeKX+C2uOC3kOC2uuC3kl/gtqLgt5bgtrHgt5Jf4Lai4LeW4La94LeSX+C2heC2nOC3neC3g+C3iuC2reC3lF/gt4Pgt5DgtrTgt4rgtq3gt5Dgtrjgt4rgtrbgtrvgt4pf4LaU4Laa4LeK4Lat4Led4La24La74LeKX+C2seC3nOC3gOC3kOC2uOC3iuC2tuC2u+C3il/gtq/gt5ngt4Pgt5Dgtrjgt4rgtrbgtrvgt4onLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ+C2ouC2sV/gtrTgt5ngtrZf4La44LeP4La74LeKX+C2heC2tOC3il/gtrjgt5Dgtrrgt5Jf4Lai4LeW4Lax4LeSX+C2ouC3luC2veC3kl/gtoXgtpzgt51f4LeD4LeQ4La04LeKX+C2lOC2muC3il/gtrHgt5zgt4Dgt5Bf4Lav4LeZ4LeD4LeQJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICfgtongtrvgt5Lgtq/gt49f4LeD4Laz4LeU4Lav4LePX+C2heC2n+C3hOC2u+C3lOC3gOC3j+C2r+C3j1/gtrbgtq/gt4/gtq/gt49f4La24LeK4oCN4La74LeE4LeD4LeK4La04Lat4LeS4Lax4LeK4Lav4LePX+C3g+C3kuC2muC3lOC2u+C3j+C2r+C3j1/gt4Pgt5ngtrHgt4Pgt5Tgtrvgt4/gtq/gt48nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn4LaJ4La74LeSX+C3g+C2s+C3lF/gtoXgtp9f4La24Lav4LePX+C2tuC3iuKAjeC2u+C3hF/gt4Pgt5Lgtprgt5Rf4LeD4LeZ4LaxJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfgtolf4LeDX+C2hV/gtrZf4La24LeK4oCN4La7X+C3g+C3kl/gt4Pgt5knLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnYSBoOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdhIGg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdZWVlZL01NL0REJyxcbiAgICAgICAgICAgIExMIDogJ1lZWVkgTU1NTSBEJyxcbiAgICAgICAgICAgIExMTCA6ICdZWVlZIE1NTU0gRCwgYSBoOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnWVlZWSBNTU1NIEQgW+C3gOC3kOC2seC3kl0gZGRkZCwgYSBoOm1tOnNzJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW+C2heC2r10gTFRb4LanXScsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vgt4Tgt5ngtqddIExUW+C2p10nLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBMVFvgtqddJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW+C2iuC2uuC3ml0gTFRb4LanXScsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdb4La04LeD4LeU4Lac4LeS4La6XSBkZGRkIExUW+C2p10nLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJyVz4Laa4LeS4Lax4LeKJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXPgtprgtqcg4La04LeZ4La7JyxcbiAgICAgICAgICAgIHMgOiAn4Lat4Lat4LeK4La04La7IOC2muC3kuC3hOC3kuC2tOC2uicsXG4gICAgICAgICAgICBzcyA6ICfgtq3gtq3gt4rgtrTgtrsgJWQnLFxuICAgICAgICAgICAgbSA6ICfgtrjgt5LgtrHgt5Lgtq3gt4rgtq3gt5Tgt4AnLFxuICAgICAgICAgICAgbW0gOiAn4La44LeS4Lax4LeS4Lat4LeK4Lat4LeUICVkJyxcbiAgICAgICAgICAgIGggOiAn4La04LeQ4La6JyxcbiAgICAgICAgICAgIGhoIDogJ+C2tOC3kOC2uiAlZCcsXG4gICAgICAgICAgICBkIDogJ+C2r+C3kuC2seC2uicsXG4gICAgICAgICAgICBkZCA6ICfgtq/gt5LgtrEgJWQnLFxuICAgICAgICAgICAgTSA6ICfgtrjgt4/gt4PgtronLFxuICAgICAgICAgICAgTU0gOiAn4La44LeP4LeDICVkJyxcbiAgICAgICAgICAgIHkgOiAn4LeA4LeD4La7JyxcbiAgICAgICAgICAgIHl5IDogJ+C3gOC3g+C2uyAlZCdcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9IOC3gOC3kOC2seC3ki8sXG4gICAgICAgIG9yZGluYWwgOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyDgt4Dgt5DgtrHgt5InO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlIDogL+C2tOC3meC2uyDgt4Dgtrvgt5R84La04LeD4LeKIOC3gOC2u+C3lHzgtrTgt5ku4LeAfOC2tC7gt4AuLyxcbiAgICAgICAgaXNQTSA6IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ID09PSAn4La0LuC3gC4nIHx8IGlucHV0ID09PSAn4La04LeD4LeKIOC3gOC2u+C3lCc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtIDogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPiAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ+C2tC7gt4AuJyA6ICfgtrTgt4Pgt4og4LeA4La74LeUJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAn4La04LeZLuC3gC4nIDogJ+C2tOC3meC2uyDgt4Dgtrvgt5QnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2k7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBtb250aHMgPSAnamFudcOhcl9mZWJydcOhcl9tYXJlY19hcHLDrWxfbcOhal9qw7puX2rDumxfYXVndXN0X3NlcHRlbWJlcl9va3TDs2Jlcl9ub3ZlbWJlcl9kZWNlbWJlcicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgPSAnamFuX2ZlYl9tYXJfYXByX23DoWpfasO6bl9qw7psX2F1Z19zZXBfb2t0X25vdl9kZWMnLnNwbGl0KCdfJyk7XG4gICAgZnVuY3Rpb24gcGx1cmFsKG4pIHtcbiAgICAgICAgcmV0dXJuIChuID4gMSkgJiYgKG4gPCA1KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5LCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbnVtYmVyICsgJyAnO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAncyc6ICAvLyBhIGZldyBzZWNvbmRzIC8gaW4gYSBmZXcgc2Vjb25kcyAvIGEgZmV3IHNlY29uZHMgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSA/ICdww6FyIHNla8O6bmQnIDogJ3DDoXIgc2VrdW5kYW1pJztcbiAgICAgICAgICAgIGNhc2UgJ3NzJzogLy8gOSBzZWNvbmRzIC8gaW4gOSBzZWNvbmRzIC8gOSBzZWNvbmRzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnc2VrdW5keScgOiAnc2Vrw7puZCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAnc2VrdW5kYW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtJzogIC8vIGEgbWludXRlIC8gaW4gYSBtaW51dGUgLyBhIG1pbnV0ZSBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdtaW7DunRhJyA6IChpc0Z1dHVyZSA/ICdtaW7DunR1JyA6ICdtaW7DunRvdScpO1xuICAgICAgICAgICAgY2FzZSAnbW0nOiAvLyA5IG1pbnV0ZXMgLyBpbiA5IG1pbnV0ZXMgLyA5IG1pbnV0ZXMgYWdvXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChwbHVyYWwobnVtYmVyKSA/ICdtaW7DunR5JyA6ICdtaW7DunQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ21pbsO6dGFtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaCc6ICAvLyBhbiBob3VyIC8gaW4gYW4gaG91ciAvIGFuIGhvdXIgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggPyAnaG9kaW5hJyA6IChpc0Z1dHVyZSA/ICdob2RpbnUnIDogJ2hvZGlub3UnKTtcbiAgICAgICAgICAgIGNhc2UgJ2hoJzogLy8gOSBob3VycyAvIGluIDkgaG91cnMgLyA5IGhvdXJzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnaG9kaW55JyA6ICdob2TDrW4nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ2hvZGluYW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkJzogIC8vIGEgZGF5IC8gaW4gYSBkYXkgLyBhIGRheSBhZ29cbiAgICAgICAgICAgICAgICByZXR1cm4gKHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUpID8gJ2RlxYgnIDogJ2TFiG9tJztcbiAgICAgICAgICAgIGNhc2UgJ2RkJzogLy8gOSBkYXlzIC8gaW4gOSBkYXlzIC8gOSBkYXlzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAnZG5pJyA6ICdkbsOtJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdkxYhhbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ00nOiAgLy8gYSBtb250aCAvIGluIGEgbW9udGggLyBhIG1vbnRoIGFnb1xuICAgICAgICAgICAgICAgIHJldHVybiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkgPyAnbWVzaWFjJyA6ICdtZXNpYWNvbSc7XG4gICAgICAgICAgICBjYXNlICdNTSc6IC8vIDkgbW9udGhzIC8gaW4gOSBtb250aHMgLyA5IG1vbnRocyBhZ29cbiAgICAgICAgICAgICAgICBpZiAod2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgKHBsdXJhbChudW1iZXIpID8gJ21lc2lhY2UnIDogJ21lc2lhY292Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArICdtZXNpYWNtaSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAneSc6ICAvLyBhIHllYXIgLyBpbiBhIHllYXIgLyBhIHllYXIgYWdvXG4gICAgICAgICAgICAgICAgcmV0dXJuICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSA/ICdyb2snIDogJ3Jva29tJztcbiAgICAgICAgICAgIGNhc2UgJ3l5JzogLy8gOSB5ZWFycyAvIGluIDkgeWVhcnMgLyA5IHllYXJzIGFnb1xuICAgICAgICAgICAgICAgIGlmICh3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAocGx1cmFsKG51bWJlcikgPyAncm9reScgOiAncm9rb3YnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgJ3Jva21pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgc2sgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzaycsIHtcbiAgICAgICAgbW9udGhzIDogbW9udGhzLFxuICAgICAgICBtb250aHNTaG9ydCA6IG1vbnRoc1Nob3J0LFxuICAgICAgICB3ZWVrZGF5cyA6ICduZWRlxL5hX3BvbmRlbG9rX3V0b3Jva19zdHJlZGFfxaF0dnJ0b2tfcGlhdG9rX3NvYm90YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICduZV9wb191dF9zdF/FoXRfcGlfc28nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ25lX3BvX3V0X3N0X8WhdF9waV9zbycuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVDogJ0g6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0g6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRC4gTU1NTSBZWVlZIEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkIEQuIE1NTU0gWVlZWSBIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbZG5lcyBvXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW3phanRyYSBvXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2IG5lZGXEvnUgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZdIGRkZGQgW29dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdiBzdHJlZHUgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2byDFoXR2cnRvayBvXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3YgcGlhdG9rIG9dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdiBzb2JvdHUgb10gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5OiAnW3bEjWVyYSBvXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1ttaW51bMO6IG5lZGXEvnUgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsw71dIGRkZGQgW29dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWzDuiBzdHJlZHUgb10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW21pbnVsw71dIGRkZGQgW29dIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbbWludWzDuiBzb2JvdHUgb10gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICd6YSAlcycsXG4gICAgICAgICAgICBwYXN0IDogJ3ByZWQgJXMnLFxuICAgICAgICAgICAgcyA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHNzIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgbSA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaCA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgZCA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGRkIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgTSA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE1NIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeSA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHl5IDogdHJhbnNsYXRlXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWwgOiAnJWQuJyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2s7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBudW1iZXIgKyAnICc7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICduZWthaiBzZWt1bmQnIDogJ25la2FqIHNla3VuZGFtaSc7XG4gICAgICAgICAgICBjYXNlICdzcyc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCA/ICdzZWt1bmRvJyA6ICdzZWt1bmRpJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdzZWt1bmRpJyA6ICdzZWt1bmRhaCc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCA1KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3Nla3VuZGUnIDogJ3Nla3VuZGFoJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJ3Nla3VuZCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICdlbmEgbWludXRhJyA6ICdlbm8gbWludXRvJztcbiAgICAgICAgICAgIGNhc2UgJ21tJzpcbiAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4ID8gJ21pbnV0YScgOiAnbWludXRvJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtaW51dGknIDogJ21pbnV0YW1hJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA8IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbWludXRlJyA6ICdtaW51dGFtaSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbWludXQnIDogJ21pbnV0YW1pJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIGNhc2UgJ2gnOlxuICAgICAgICAgICAgICAgIHJldHVybiB3aXRob3V0U3VmZml4ID8gJ2VuYSB1cmEnIDogJ2VubyB1cm8nO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggPyAndXJhJyA6ICd1cm8nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ3VyaScgOiAndXJhbWEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgNSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICd1cmUnIDogJ3VyYW1pJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICd1cicgOiAndXJhbWknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZW4gZGFuJyA6ICdlbmltIGRuZW0nO1xuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZGFuJyA6ICdkbmVtJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG51bWJlciA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdkbmknIDogJ2RuZXZvbWEnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2RuaScgOiAnZG5ldmknO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZW4gbWVzZWMnIDogJ2VuaW0gbWVzZWNlbSc7XG4gICAgICAgICAgICBjYXNlICdNTSc6XG4gICAgICAgICAgICAgICAgaWYgKG51bWJlciA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtZXNlYycgOiAnbWVzZWNlbSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbWVzZWNhJyA6ICdtZXNlY2VtYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCA1KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ21lc2VjZScgOiAnbWVzZWNpJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gd2l0aG91dFN1ZmZpeCB8fCBpc0Z1dHVyZSA/ICdtZXNlY2V2JyA6ICdtZXNlY2knO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgY2FzZSAneSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnZW5vIGxldG8nIDogJ2VuaW0gbGV0b20nO1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIGlmIChudW1iZXIgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHdpdGhvdXRTdWZmaXggfHwgaXNGdXR1cmUgPyAnbGV0bycgOiAnbGV0b20nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnVtYmVyID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2xldGknIDogJ2xldG9tYSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChudW1iZXIgPCA1KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2xldGEnIDogJ2xldGknO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSB3aXRob3V0U3VmZml4IHx8IGlzRnV0dXJlID8gJ2xldCcgOiAnbGV0aSc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgc2wgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzbCcsIHtcbiAgICAgICAgbW9udGhzIDogJ2phbnVhcl9mZWJydWFyX21hcmVjX2FwcmlsX21hal9qdW5pal9qdWxpal9hdmd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ2phbi5fZmViLl9tYXIuX2Fwci5fbWFqLl9qdW4uX2p1bC5fYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5cyA6ICduZWRlbGphX3BvbmVkZWxqZWtfdG9yZWtfc3JlZGFfxI1ldHJ0ZWtfcGV0ZWtfc29ib3RhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ25lZC5fcG9uLl90b3IuX3NyZS5fxI1ldC5fcGV0Ll9zb2IuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICduZV9wb190b19zcl/EjWVfcGVfc28nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEwgOiAnRC4gTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQuIE1NTU0gWVlZWSBIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgIDogJ1tkYW5lcyBvYl0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSAgOiAnW2p1dHJpIG9iXSBMVCcsXG5cbiAgICAgICAgICAgIG5leHRXZWVrIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2XSBbbmVkZWxqb10gW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZdIFtzcmVkb10gW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ZdIFtzb2JvdG9dIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1t2XSBkZGRkIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5ICA6ICdbdsSNZXJhaiBvYl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0aGlzLmRheSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ByZWrFoW5qb10gW25lZGVsam9dIFtvYl0gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1twcmVqxaFuam9dIFtzcmVkb10gW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ByZWrFoW5qb10gW3NvYm90b10gW29iXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3ByZWrFoW5qaV0gZGRkZCBbb2JdIExUJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ8SNZXogJXMnLFxuICAgICAgICAgICAgcGFzdCAgIDogJ3ByZWQgJXMnLFxuICAgICAgICAgICAgcyAgICAgIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHNzICAgICA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBtICAgICAgOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW0gICAgIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGggICAgICA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaCAgICAgOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgZCAgICAgIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkICAgICA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBNICAgICAgOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU0gICAgIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHkgICAgICA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eSAgICAgOiBwcm9jZXNzUmVsYXRpdmVUaW1lXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfVxcLi8sXG4gICAgICAgIG9yZGluYWwgOiAnJWQuJyxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNyAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2w7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBzcSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NxJywge1xuICAgICAgICBtb250aHMgOiAnSmFuYXJfU2hrdXJ0X01hcnNfUHJpbGxfTWFqX1FlcnNob3JfS29ycmlrX0d1c2h0X1NodGF0b3JfVGV0b3JfTsOrbnRvcl9EaGpldG9yJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdKYW5fU2hrX01hcl9QcmlfTWFqX1Flcl9Lb3JfR3VzX1NodF9UZXRfTsOrbl9EaGonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ0UgRGllbF9FIEjDq27Dq19FIE1hcnTDq19FIE3Dq3JrdXLDq19FIEVuanRlX0UgUHJlbXRlX0UgU2h0dW7Dqycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdEaWVfSMOrbl9NYXJfTcOrcl9FbmpfUHJlX1NodCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnRF9IX01hX03Dq19FX1BfU2gnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9QRHxNRC8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0LmNoYXJBdCgwKSA9PT0gJ00nO1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICAgICAgcmV0dXJuIGhvdXJzIDwgMTIgPyAnUEQnIDogJ01EJztcbiAgICAgICAgfSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW1NvdCBuw6tdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW05lc8OrciBuw6tdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW27Dq10gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbRGplIG7Dq10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnZGRkZCBbZSBrYWx1YXIgbsOrXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnbsOrICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMgbcOrIHBhcsOrJyxcbiAgICAgICAgICAgIHMgOiAnZGlzYSBzZWtvbmRhJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNla29uZGEnLFxuICAgICAgICAgICAgbSA6ICduasOrIG1pbnV0w6snLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludXRhJyxcbiAgICAgICAgICAgIGggOiAnbmrDqyBvcsOrJyxcbiAgICAgICAgICAgIGhoIDogJyVkIG9yw6snLFxuICAgICAgICAgICAgZCA6ICduasOrIGRpdMOrJyxcbiAgICAgICAgICAgIGRkIDogJyVkIGRpdMOrJyxcbiAgICAgICAgICAgIE0gOiAnbmrDqyBtdWFqJyxcbiAgICAgICAgICAgIE1NIDogJyVkIG11YWonLFxuICAgICAgICAgICAgeSA6ICduasOrIHZpdCcsXG4gICAgICAgICAgICB5eSA6ICclZCB2aXRlJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn1cXC4vLFxuICAgICAgICBvcmRpbmFsIDogJyVkLicsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNxO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgdHJhbnNsYXRvciA9IHtcbiAgICAgICAgd29yZHM6IHsgLy9EaWZmZXJlbnQgZ3JhbW1hdGljYWwgY2FzZXNcbiAgICAgICAgICAgIHNzOiBbJ9GB0LXQutGD0L3QtNCwJywgJ9GB0LXQutGD0L3QtNC1JywgJ9GB0LXQutGD0L3QtNC4J10sXG4gICAgICAgICAgICBtOiBbJ9GY0LXQtNCw0L0g0LzQuNC90YPRgicsICfRmNC10LTQvdC1INC80LjQvdGD0YLQtSddLFxuICAgICAgICAgICAgbW06IFsn0LzQuNC90YPRgicsICfQvNC40L3Rg9GC0LUnLCAn0LzQuNC90YPRgtCwJ10sXG4gICAgICAgICAgICBoOiBbJ9GY0LXQtNCw0L0g0YHQsNGCJywgJ9GY0LXQtNC90L7QsyDRgdCw0YLQsCddLFxuICAgICAgICAgICAgaGg6IFsn0YHQsNGCJywgJ9GB0LDRgtCwJywgJ9GB0LDRgtC4J10sXG4gICAgICAgICAgICBkZDogWyfQtNCw0L0nLCAn0LTQsNC90LAnLCAn0LTQsNC90LAnXSxcbiAgICAgICAgICAgIE1NOiBbJ9C80LXRgdC10YYnLCAn0LzQtdGB0LXRhtCwJywgJ9C80LXRgdC10YbQuCddLFxuICAgICAgICAgICAgeXk6IFsn0LPQvtC00LjQvdCwJywgJ9Cz0L7QtNC40L3QtScsICfQs9C+0LTQuNC90LAnXVxuICAgICAgICB9LFxuICAgICAgICBjb3JyZWN0R3JhbW1hdGljYWxDYXNlOiBmdW5jdGlvbiAobnVtYmVyLCB3b3JkS2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyID09PSAxID8gd29yZEtleVswXSA6IChudW1iZXIgPj0gMiAmJiBudW1iZXIgPD0gNCA/IHdvcmRLZXlbMV0gOiB3b3JkS2V5WzJdKTtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgICAgIHZhciB3b3JkS2V5ID0gdHJhbnNsYXRvci53b3Jkc1trZXldO1xuICAgICAgICAgICAgaWYgKGtleS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IHdvcmRLZXlbMF0gOiB3b3JkS2V5WzFdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyAnICsgdHJhbnNsYXRvci5jb3JyZWN0R3JhbW1hdGljYWxDYXNlKG51bWJlciwgd29yZEtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFyIHNyQ3lybCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3NyLWN5cmwnLCB7XG4gICAgICAgIG1vbnRoczogJ9GY0LDQvdGD0LDRgF/RhNC10LHRgNGD0LDRgF/QvNCw0YDRgl/QsNC/0YDQuNC7X9C80LDRmF/RmNGD0L1f0ZjRg9C7X9Cw0LLQs9GD0YHRgl/RgdC10L/RgtC10LzQsdCw0YBf0L7QutGC0L7QsdCw0YBf0L3QvtCy0LXQvNCx0LDRgF/QtNC10YbQtdC80LHQsNGAJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydDogJ9GY0LDQvS5f0YTQtdCxLl/QvNCw0YAuX9Cw0L/RgC5f0LzQsNGYX9GY0YPQvV/RmNGD0Ltf0LDQstCzLl/RgdC10L8uX9C+0LrRgi5f0L3QvtCyLl/QtNC10YYuJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ9C90LXQtNC10ZnQsF/Qv9C+0L3QtdC00LXRmdCw0Lpf0YPRgtC+0YDQsNC6X9GB0YDQtdC00LBf0YfQtdGC0LLRgNGC0LDQul/Qv9C10YLQsNC6X9GB0YPQsdC+0YLQsCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ9C90LXQtC5f0L/QvtC9Ll/Rg9GC0L4uX9GB0YDQtS5f0YfQtdGCLl/Qv9C10YIuX9GB0YPQsS4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluOiAn0L3QtV/Qv9C+X9GD0YJf0YHRgF/Rh9C1X9C/0LVf0YHRgycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9C00LDQvdCw0YEg0YNdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb0YHRg9GC0YDQsCDRg10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdb0YNdIFvQvdC10LTQtdGZ0YNdIFvRg10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vRg10gW9GB0YDQtdC00YNdIFvRg10gTFQnO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1vRg10gW9GB0YPQsdC+0YLRg10gW9GDXSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW9GDXSBkZGRkIFvRg10gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5ICA6ICdb0ZjRg9GH0LUg0YNdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBsYXN0V2Vla0RheXMgPSBbXG4gICAgICAgICAgICAgICAgICAgICdb0L/RgNC+0YjQu9C1XSBb0L3QtdC00LXRmdC1XSBb0YNdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1vQv9GA0L7RiNC70L7Qs10gW9C/0L7QvdC10LTQtdGZ0LrQsF0gW9GDXSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdb0L/RgNC+0YjQu9C+0LNdIFvRg9GC0L7RgNC60LBdIFvRg10gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW9C/0YDQvtGI0LvQtV0gW9GB0YDQtdC00LVdIFvRg10gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW9C/0YDQvtGI0LvQvtCzXSBb0YfQtdGC0LLRgNGC0LrQsF0gW9GDXSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdb0L/RgNC+0YjQu9C+0LNdIFvQv9C10YLQutCwXSBb0YNdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1vQv9GA0L7RiNC70LVdIFvRgdGD0LHQvtGC0LVdIFvRg10gTFQnXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFzdFdlZWtEYXlzW3RoaXMuZGF5KCldO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICfQt9CwICVzJyxcbiAgICAgICAgICAgIHBhc3QgICA6ICfQv9GA0LUgJXMnLFxuICAgICAgICAgICAgcyAgICAgIDogJ9C90LXQutC+0LvQuNC60L4g0YHQtdC60YPQvdC00LgnLFxuICAgICAgICAgICAgc3MgICAgIDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBtICAgICAgOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG1tICAgICA6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgaCAgICAgIDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBoaCAgICAgOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGQgICAgICA6ICfQtNCw0L0nLFxuICAgICAgICAgICAgZGQgICAgIDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBNICAgICAgOiAn0LzQtdGB0LXRhicsXG4gICAgICAgICAgICBNTSAgICAgOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHkgICAgICA6ICfQs9C+0LTQuNC90YMnLFxuICAgICAgICAgICAgeXkgICAgIDogdHJhbnNsYXRvci50cmFuc2xhdGVcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbCA6ICclZC4nLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA3ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzckN5cmw7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciB0cmFuc2xhdG9yID0ge1xuICAgICAgICB3b3JkczogeyAvL0RpZmZlcmVudCBncmFtbWF0aWNhbCBjYXNlc1xuICAgICAgICAgICAgc3M6IFsnc2VrdW5kYScsICdzZWt1bmRlJywgJ3Nla3VuZGknXSxcbiAgICAgICAgICAgIG06IFsnamVkYW4gbWludXQnLCAnamVkbmUgbWludXRlJ10sXG4gICAgICAgICAgICBtbTogWydtaW51dCcsICdtaW51dGUnLCAnbWludXRhJ10sXG4gICAgICAgICAgICBoOiBbJ2plZGFuIHNhdCcsICdqZWRub2cgc2F0YSddLFxuICAgICAgICAgICAgaGg6IFsnc2F0JywgJ3NhdGEnLCAnc2F0aSddLFxuICAgICAgICAgICAgZGQ6IFsnZGFuJywgJ2RhbmEnLCAnZGFuYSddLFxuICAgICAgICAgICAgTU06IFsnbWVzZWMnLCAnbWVzZWNhJywgJ21lc2VjaSddLFxuICAgICAgICAgICAgeXk6IFsnZ29kaW5hJywgJ2dvZGluZScsICdnb2RpbmEnXVxuICAgICAgICB9LFxuICAgICAgICBjb3JyZWN0R3JhbW1hdGljYWxDYXNlOiBmdW5jdGlvbiAobnVtYmVyLCB3b3JkS2V5KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyID09PSAxID8gd29yZEtleVswXSA6IChudW1iZXIgPj0gMiAmJiBudW1iZXIgPD0gNCA/IHdvcmRLZXlbMV0gOiB3b3JkS2V5WzJdKTtcbiAgICAgICAgfSxcbiAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbiAobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXkpIHtcbiAgICAgICAgICAgIHZhciB3b3JkS2V5ID0gdHJhbnNsYXRvci53b3Jkc1trZXldO1xuICAgICAgICAgICAgaWYgKGtleS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/IHdvcmRLZXlbMF0gOiB3b3JkS2V5WzFdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyAnICsgdHJhbnNsYXRvci5jb3JyZWN0R3JhbW1hdGljYWxDYXNlKG51bWJlciwgd29yZEtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFyIHNyID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc3InLCB7XG4gICAgICAgIG1vbnRoczogJ2phbnVhcl9mZWJydWFyX21hcnRfYXByaWxfbWFqX2p1bl9qdWxfYXZndXN0X3NlcHRlbWJhcl9va3RvYmFyX25vdmVtYmFyX2RlY2VtYmFyJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydDogJ2phbi5fZmViLl9tYXIuX2Fwci5fbWFqX2p1bl9qdWxfYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0OiB0cnVlLFxuICAgICAgICB3ZWVrZGF5czogJ25lZGVsamFfcG9uZWRlbGpha191dG9yYWtfc3JlZGFfxI1ldHZydGFrX3BldGFrX3N1Ym90YScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydDogJ25lZC5fcG9uLl91dG8uX3NyZS5fxI1ldC5fcGV0Ll9zdWIuJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbjogJ25lX3BvX3V0X3NyX8SNZV9wZV9zdScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQ6IHtcbiAgICAgICAgICAgIExUOiAnSDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTDogJ0QuIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEw6ICdELiBNTU1NIFlZWVkgSDptbScsXG4gICAgICAgICAgICBMTExMOiAnZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW2RhbmFzIHVdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbc3V0cmEgdV0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF5KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW25lZGVsanVdIFt1XSBMVCc7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnW3VdIFtzcmVkdV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gW3N1Ym90dV0gW3VdIExUJztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdbdV0gZGRkZCBbdV0gTFQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsYXN0RGF5ICA6ICdbanXEjWUgdV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIGxhc3RXZWVrRGF5cyA9IFtcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxlXSBbbmVkZWxqZV0gW3VdIExUJyxcbiAgICAgICAgICAgICAgICAgICAgJ1twcm/FoWxvZ10gW3BvbmVkZWxqa2FdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsb2ddIFt1dG9ya2FdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsZV0gW3NyZWRlXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbxI1ldHZydGthXSBbdV0gTFQnLFxuICAgICAgICAgICAgICAgICAgICAnW3Byb8WhbG9nXSBbcGV0a2FdIFt1XSBMVCcsXG4gICAgICAgICAgICAgICAgICAgICdbcHJvxaFsZV0gW3N1Ym90ZV0gW3VdIExUJ1xuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RXZWVrRGF5c1t0aGlzLmRheSgpXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnemEgJXMnLFxuICAgICAgICAgICAgcGFzdCAgIDogJ3ByZSAlcycsXG4gICAgICAgICAgICBzICAgICAgOiAnbmVrb2xpa28gc2VrdW5kaScsXG4gICAgICAgICAgICBzcyAgICAgOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG0gICAgICA6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgbW0gICAgIDogdHJhbnNsYXRvci50cmFuc2xhdGUsXG4gICAgICAgICAgICBoICAgICAgOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIGhoICAgICA6IHRyYW5zbGF0b3IudHJhbnNsYXRlLFxuICAgICAgICAgICAgZCAgICAgIDogJ2RhbicsXG4gICAgICAgICAgICBkZCAgICAgOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE0gICAgICA6ICdtZXNlYycsXG4gICAgICAgICAgICBNTSAgICAgOiB0cmFuc2xhdG9yLnRyYW5zbGF0ZSxcbiAgICAgICAgICAgIHkgICAgICA6ICdnb2RpbnUnLFxuICAgICAgICAgICAgeXkgICAgIDogdHJhbnNsYXRvci50cmFuc2xhdGVcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbCA6ICclZC4nLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA3ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzcjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHNzID0gbW9tZW50LmRlZmluZUxvY2FsZSgnc3MnLCB7XG4gICAgICAgIG1vbnRocyA6IFwiQmhpbWJpZHZ3YW5lX0luZGxvdmFuYV9JbmRsb3YnbGVua2h1bHVfTWFiYXNhX0lua2h3ZWtod2V0aV9JbmhsYWJhX0tob2x3YW5lX0luZ2NpX0lueW9uaV9JbXBoYWxhX0x3ZXRpX0luZ29uZ29uaVwiLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ0JoaV9JbmFfSW51X01hYl9JbmtfSW5oX0tob19JZ2NfSW55X0ltcF9Md2VfSWdvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdMaXNvbnRmb19VbXNvbWJ1bHVrb19MZXNpYmlsaV9MZXNpdHNhdGZ1X0xlc2luZV9MZXNpaGxhbnVfVW1nY2liZWxvJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ0xpc19VbWJfTHNiX0xlc19Mc2lfTHNoX1VtZycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnTGlfVXNfTGJfTHRfTHNfTGhfVWcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnaDptbSBBJyxcbiAgICAgICAgICAgIExUUyA6ICdoOm1tOnNzIEEnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBoOm1tIEEnLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEnXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdbTmFtdWhsYSBuZ2FdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW0t1c2FzYSBuZ2FdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW25nYV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbSXRvbG8gbmdhXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdkZGRkIFtsZWxpcGhlbGlsZV0gW25nYV0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ25nYSAlcycsXG4gICAgICAgICAgICBwYXN0IDogJ3dlbnRla2EgbmdhICVzJyxcbiAgICAgICAgICAgIHMgOiAnZW1penV6d2FuYSBsb21jYW5lJyxcbiAgICAgICAgICAgIHNzIDogJyVkIG16dXp3YW5hJyxcbiAgICAgICAgICAgIG0gOiAndW16dXp1JyxcbiAgICAgICAgICAgIG1tIDogJyVkIGVtaXp1enUnLFxuICAgICAgICAgICAgaCA6ICdsaWhvcmEnLFxuICAgICAgICAgICAgaGggOiAnJWQgZW1haG9yYScsXG4gICAgICAgICAgICBkIDogJ2xpbGFuZ2EnLFxuICAgICAgICAgICAgZGQgOiAnJWQgZW1hbGFuZ2EnLFxuICAgICAgICAgICAgTSA6ICdpbnlhbmdhJyxcbiAgICAgICAgICAgIE1NIDogJyVkIHRpbnlhbmdhJyxcbiAgICAgICAgICAgIHkgOiAndW1ueWFrYScsXG4gICAgICAgICAgICB5eSA6ICclZCBpbWlueWFrYSdcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL2VrdXNlbml8ZW1pbml8ZW50c2FtYmFtYXxlYnVzdWt1LyxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA8IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdla3VzZW5pJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91cnMgPCAxNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZW1pbmknO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VycyA8IDE5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlbnRzYW1iYW1hJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlYnVzdWt1JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1Ib3VyIDogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ2VrdXNlbmknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAnZW1pbmknKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ2VudHNhbWJhbWEnIHx8IG1lcmlkaWVtID09PSAnZWJ1c3VrdScpIHtcbiAgICAgICAgICAgICAgICBpZiAoaG91ciA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LyxcbiAgICAgICAgb3JkaW5hbCA6ICclZCcsXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHNzO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgc3YgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzdicsIHtcbiAgICAgICAgbW9udGhzIDogJ2phbnVhcmlfZmVicnVhcmlfbWFyc19hcHJpbF9tYWpfanVuaV9qdWxpX2F1Z3VzdGlfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ2phbl9mZWJfbWFyX2Fwcl9tYWpfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdzw7ZuZGFnX23DpW5kYWdfdGlzZGFnX29uc2RhZ190b3JzZGFnX2ZyZWRhZ19sw7ZyZGFnJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ3PDtm5fbcOlbl90aXNfb25zX3Rvcl9mcmVfbMO2cicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnc8O2X23DpV90aV9vbl90b19mcl9sw7YnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgW2tsLl0gSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkIEQgTU1NTSBZWVlZIFtrbC5dIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbCA6ICdEIE1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGwgOiAnZGRkIEQgTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tJZGFnXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0ltb3Jnb25dIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbSWfDpXJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnW1DDpV0gZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ1tJXSBkZGRkW3NdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ29tICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnZsO2ciAlcyBzZWRhbicsXG4gICAgICAgICAgICBzIDogJ27DpWdyYSBzZWt1bmRlcicsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWt1bmRlcicsXG4gICAgICAgICAgICBtIDogJ2VuIG1pbnV0JyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0ZXInLFxuICAgICAgICAgICAgaCA6ICdlbiB0aW1tZScsXG4gICAgICAgICAgICBoaCA6ICclZCB0aW1tYXInLFxuICAgICAgICAgICAgZCA6ICdlbiBkYWcnLFxuICAgICAgICAgICAgZGQgOiAnJWQgZGFnYXInLFxuICAgICAgICAgICAgTSA6ICdlbiBtw6VuYWQnLFxuICAgICAgICAgICAgTU0gOiAnJWQgbcOlbmFkZXInLFxuICAgICAgICAgICAgeSA6ICdldHQgw6VyJyxcbiAgICAgICAgICAgIHl5IDogJyVkIMOlcidcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KGV8YSkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAofn4obnVtYmVyICUgMTAwIC8gMTApID09PSAxKSA/ICdlJyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDEpID8gJ2EnIDpcbiAgICAgICAgICAgICAgICAoYiA9PT0gMikgPyAnYScgOlxuICAgICAgICAgICAgICAgIChiID09PSAzKSA/ICdlJyA6ICdlJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN2O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgc3cgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCdzdycsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbnVhcmlfRmVicnVhcmlfTWFjaGlfQXByaWxpX01laV9KdW5pX0p1bGFpX0Fnb3N0aV9TZXB0ZW1iYV9Pa3RvYmFfTm92ZW1iYV9EZXNlbWJhJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdKYW5fRmViX01hY19BcHJfTWVpX0p1bl9KdWxfQWdvX1NlcF9Pa3RfTm92X0Rlcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnSnVtYXBpbGlfSnVtYXRhdHVfSnVtYW5uZV9KdW1hdGFub19BbGhhbWlzaV9JanVtYWFfSnVtYW1vc2knLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnSnBsX0p0YXRfSm5uZV9KdGFuX0FsaF9Jam1fSm1vcycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnSjJfSjNfSjRfSjVfQWxfSWpfSjEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1tsZW8gc2FhXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1trZXNobyBzYWFdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ1t3aWtpIGlqYXlvXSBkZGRkIFtzYWF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1tqYW5hXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdbd2lraSBpbGl5b3BpdGFdIGRkZGQgW3NhYXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICclcyBiYWFkYXllJyxcbiAgICAgICAgICAgIHBhc3QgOiAndG9rZWEgJXMnLFxuICAgICAgICAgICAgcyA6ICdoaXZpIHB1bmRlJyxcbiAgICAgICAgICAgIHNzIDogJ3Nla3VuZGUgJWQnLFxuICAgICAgICAgICAgbSA6ICdkYWtpa2EgbW9qYScsXG4gICAgICAgICAgICBtbSA6ICdkYWtpa2EgJWQnLFxuICAgICAgICAgICAgaCA6ICdzYWEgbGltb2phJyxcbiAgICAgICAgICAgIGhoIDogJ21hc2FhICVkJyxcbiAgICAgICAgICAgIGQgOiAnc2lrdSBtb2phJyxcbiAgICAgICAgICAgIGRkIDogJ21hc2lrdSAlZCcsXG4gICAgICAgICAgICBNIDogJ213ZXppIG1tb2phJyxcbiAgICAgICAgICAgIE1NIDogJ21pZXppICVkJyxcbiAgICAgICAgICAgIHkgOiAnbXdha2EgbW1vamEnLFxuICAgICAgICAgICAgeXkgOiAnbWlha2EgJWQnXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDcgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDd0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN3O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgc3ltYm9sTWFwID0ge1xuICAgICAgICAnMSc6ICfgr6cnLFxuICAgICAgICAnMic6ICfgr6gnLFxuICAgICAgICAnMyc6ICfgr6knLFxuICAgICAgICAnNCc6ICfgr6onLFxuICAgICAgICAnNSc6ICfgr6snLFxuICAgICAgICAnNic6ICfgr6wnLFxuICAgICAgICAnNyc6ICfgr60nLFxuICAgICAgICAnOCc6ICfgr64nLFxuICAgICAgICAnOSc6ICfgr68nLFxuICAgICAgICAnMCc6ICfgr6YnXG4gICAgfSwgbnVtYmVyTWFwID0ge1xuICAgICAgICAn4K+nJzogJzEnLFxuICAgICAgICAn4K+oJzogJzInLFxuICAgICAgICAn4K+pJzogJzMnLFxuICAgICAgICAn4K+qJzogJzQnLFxuICAgICAgICAn4K+rJzogJzUnLFxuICAgICAgICAn4K+sJzogJzYnLFxuICAgICAgICAn4K+tJzogJzcnLFxuICAgICAgICAn4K+uJzogJzgnLFxuICAgICAgICAn4K+vJzogJzknLFxuICAgICAgICAn4K+mJzogJzAnXG4gICAgfTtcblxuICAgIHZhciB0YSA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RhJywge1xuICAgICAgICBtb250aHMgOiAn4K6c4K6p4K614K6w4K6/X+CuquCuv+CuquCvjeCusOCuteCusOCuv1/grq7grr7grrDgr43grprgr41f4K6P4K6q4K+N4K6w4K6y4K+NX+CuruCvh1/grpzgr4Lgrqngr41f4K6c4K+C4K6y4K+IX+CuhuCuleCuuOCvjeCun+CvjV/grprgr4bgrqrgr43grp/gr4bgrq7gr43grqrgrrDgr41f4K6F4K6V4K+N4K6f4K+H4K6+4K6q4K6w4K+NX+CuqOCuteCuruCvjeCuquCusOCvjV/grp/grr/grprgrq7gr43grqrgrrDgr40nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ+CunOCuqeCuteCusOCuv1/grqrgrr/grqrgr43grrDgrrXgrrDgrr9f4K6u4K6+4K6w4K+N4K6a4K+NX+Cuj+CuquCvjeCusOCusuCvjV/grq7gr4df4K6c4K+C4K6p4K+NX+CunOCvguCusuCviF/grobgrpXgrrjgr43grp/gr41f4K6a4K+G4K6q4K+N4K6f4K+G4K6u4K+N4K6q4K6w4K+NX+CuheCuleCvjeCun+Cvh+CuvuCuquCusOCvjV/grqjgrrXgrq7gr43grqrgrrDgr41f4K6f4K6/4K6a4K6u4K+N4K6q4K6w4K+NJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICfgrp7grr7grq/grr/grrHgr43grrHgr4HgrpXgr43grpXgrr/grrTgrq7gr4hf4K6k4K6/4K6Z4K+N4K6V4K6f4K+N4K6V4K6/4K604K6u4K+IX+CumuCvhuCuteCvjeCuteCuvuCur+CvjeCuleCuv+CutOCuruCviF/grqrgr4HgrqTgrqngr43grpXgrr/grrTgrq7gr4hf4K614K6/4K6v4K6+4K604K6V4K+N4K6V4K6/4K604K6u4K+IX+CuteCvhuCus+CvjeCus+Cuv+CuleCvjeCuleCuv+CutOCuruCviF/grprgrqngrr/grpXgr43grpXgrr/grrTgrq7gr4gnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn4K6e4K6+4K6v4K6/4K6x4K+BX+CupOCuv+CumeCvjeCuleCus+CvjV/grprgr4bgrrXgr43grrXgrr7grq/gr41f4K6q4K+B4K6k4K6p4K+NX+CuteCuv+Cur+CuvuCutOCuqeCvjV/grrXgr4bgrrPgr43grrPgrr9f4K6a4K6p4K6/Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfgrp7grr5f4K6k4K6/X+CumuCvhl/grqrgr4Ff4K614K6/X+CuteCvhl/grponLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVksIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVksIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW+Cuh+CuqeCvjeCuseCvgV0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdb4K6o4K6+4K6z4K+IXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkLCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vgrqjgr4fgrrHgr43grrHgr4FdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1vgrpXgrp/grqjgr43grqQg4K614K6+4K6w4K6u4K+NXSBkZGRkLCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnJXMg4K6H4K6y4K+NJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMg4K6u4K+B4K6p4K+NJyxcbiAgICAgICAgICAgIHMgOiAn4K6S4K6w4K+BIOCumuCuv+CusiDgrrXgrr/grqjgrr7grp/grr/grpXgrrPgr40nLFxuICAgICAgICAgICAgc3MgOiAnJWQg4K614K6/4K6o4K6+4K6f4K6/4K6V4K6z4K+NJyxcbiAgICAgICAgICAgIG0gOiAn4K6S4K6w4K+BIOCuqOCuv+CuruCuv+Cun+CuruCvjScsXG4gICAgICAgICAgICBtbSA6ICclZCDgrqjgrr/grq7grr/grp/grpngr43grpXgrrPgr40nLFxuICAgICAgICAgICAgaCA6ICfgrpLgrrDgr4Eg4K6u4K6j4K6/IOCuqOCvh+CusOCuruCvjScsXG4gICAgICAgICAgICBoaCA6ICclZCDgrq7grqPgrr8g4K6o4K+H4K6w4K6u4K+NJyxcbiAgICAgICAgICAgIGQgOiAn4K6S4K6w4K+BIOCuqOCuvuCus+CvjScsXG4gICAgICAgICAgICBkZCA6ICclZCDgrqjgrr7grp/gr43grpXgrrPgr40nLFxuICAgICAgICAgICAgTSA6ICfgrpLgrrDgr4Eg4K6u4K6+4K6k4K6u4K+NJyxcbiAgICAgICAgICAgIE1NIDogJyVkIOCuruCuvuCupOCumeCvjeCuleCus+CvjScsXG4gICAgICAgICAgICB5IDogJ+CukuCusOCvgSDgrrXgrrDgr4Hgrp/grq7gr40nLFxuICAgICAgICAgICAgeXkgOiAnJWQg4K6G4K6j4K+N4K6f4K+B4K6V4K6z4K+NJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn3grrXgrqTgr4EvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfgrrXgrqTgr4EnO1xuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9b4K+n4K+o4K+p4K+q4K+r4K+s4K+t4K+u4K+v4K+mXS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoL1xcZC9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9sTWFwW21hdGNoXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICAvLyByZWZlciBodHRwOi8vdGEud2lraXBlZGlhLm9yZy9zLzFlcjFcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+Cur+CuvuCuruCuruCvjXzgrrXgr4jgrpXgrrHgr4h84K6V4K6+4K6y4K+IfOCuqOCuo+CvjeCuquCuleCusuCvjXzgro7grrHgr43grqrgrr7grp/gr4F84K6u4K6+4K6y4K+ILyxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyDgrq/grr7grq7grq7gr40nO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgNikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCuteCviOCuleCuseCviCc7ICAvLyDgrrXgr4jgrpXgrrHgr4hcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcg4K6V4K6+4K6y4K+IJzsgLy8g4K6V4K6+4K6y4K+IXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCuqOCuo+CvjeCuquCuleCusuCvjSc7IC8vIOCuqOCuo+CvjeCuquCuleCusuCvjVxuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyDgro7grrHgr43grqrgrr7grp/gr4EnOyAvLyDgro7grrHgr43grqrgrr7grp/gr4FcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDIyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcg4K6u4K6+4K6y4K+IJzsgLy8g4K6u4K6+4K6y4K+IXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnIOCur+CuvuCuruCuruCvjSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtSG91ciA6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICfgrq/grr7grq7grq7gr40nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPCAyID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgrrXgr4jgrpXgrrHgr4gnIHx8IG1lcmlkaWVtID09PSAn4K6V4K6+4K6y4K+IJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CuqOCuo+CvjeCuquCuleCusuCvjScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAwLCAvLyBTdW5kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDYgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDZ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRhO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgdGUgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0ZScsIHtcbiAgICAgICAgbW9udGhzIDogJ+CwnOCwqOCwteCwsOCwv1/gsKvgsL/gsKzgsY3gsLDgsLXgsLDgsL9f4LCu4LC+4LCw4LGN4LCa4LC/X+Cwj+CwquCxjeCwsOCwv+CwsuCxjV/gsK7gsYdf4LCc4LGC4LCo4LGNX+CwnOCxgeCwsuCxiF/gsIbgsJfgsLjgsY3gsJ/gsYFf4LC44LGG4LCq4LGN4LCf4LGG4LCC4LCs4LCw4LGNX+CwheCwleCxjeCwn+Cxi+CwrOCwsOCxjV/gsKjgsLXgsILgsKzgsLDgsY1f4LCh4LC/4LC44LGG4LCC4LCs4LCw4LGNJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICfgsJzgsKguX+Cwq+Cwv+CwrOCxjeCwsC5f4LCu4LC+4LCw4LGN4LCa4LC/X+Cwj+CwquCxjeCwsOCwvy5f4LCu4LGHX+CwnOCxguCwqOCxjV/gsJzgsYHgsLLgsYhf4LCG4LCXLl/gsLjgsYbgsKrgsY0uX+CwheCwleCxjeCwn+Cxiy5f4LCo4LC1Ll/gsKHgsL/gsLjgsYYuJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiAn4LCG4LCm4LC/4LC14LC+4LCw4LCCX+CwuOCxi+CwruCwteCwvuCwsOCwgl/gsK7gsILgsJfgsLPgsLXgsL7gsLDgsIJf4LCs4LGB4LCn4LC14LC+4LCw4LCCX+Cwl+CxgeCwsOCxgeCwteCwvuCwsOCwgl/gsLbgsYHgsJXgsY3gsLDgsLXgsL7gsLDgsIJf4LC24LCo4LC/4LC14LC+4LCw4LCCJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ+CwhuCwpuCwv1/gsLjgsYvgsK5f4LCu4LCC4LCX4LCzX+CwrOCxgeCwp1/gsJfgsYHgsLDgsYFf4LC24LGB4LCV4LGN4LCwX+CwtuCwqOCwvycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn4LCGX+CwuOCxi1/gsK7gsIJf4LCs4LGBX+Cwl+CxgV/gsLbgsYFf4LC2Jy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0EgaDptbScsXG4gICAgICAgICAgICBMVFMgOiAnQSBoOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVksIEEgaDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdb4LCo4LGH4LCh4LGBXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vgsLDgsYfgsKrgsYFdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQsIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW+CwqOCwv+CwqOCxjeCwqF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW+Cwl+CwpF0gZGRkZCwgTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJyVzIOCwsuCxiycsXG4gICAgICAgICAgICBwYXN0IDogJyVzIOCwleCxjeCwsOCwv+CwpOCwgicsXG4gICAgICAgICAgICBzIDogJ+CwleCxiuCwqOCxjeCwqOCwvyDgsJXgsY3gsLfgsKPgsL7gsLLgsYEnLFxuICAgICAgICAgICAgc3MgOiAnJWQg4LC44LGG4LCV4LCo4LGN4LCy4LGBJyxcbiAgICAgICAgICAgIG0gOiAn4LCS4LCVIOCwqOCwv+CwruCwv+Cwt+CwgicsXG4gICAgICAgICAgICBtbSA6ICclZCDgsKjgsL/gsK7gsL/gsLfgsL7gsLLgsYEnLFxuICAgICAgICAgICAgaCA6ICfgsJLgsJUg4LCX4LCC4LCfJyxcbiAgICAgICAgICAgIGhoIDogJyVkIOCwl+CwguCwn+CwsuCxgScsXG4gICAgICAgICAgICBkIDogJ+CwkuCwlSDgsLDgsYvgsJzgsYEnLFxuICAgICAgICAgICAgZGQgOiAnJWQg4LCw4LGL4LCc4LGB4LCy4LGBJyxcbiAgICAgICAgICAgIE0gOiAn4LCS4LCVIOCwqOCxhuCwsicsXG4gICAgICAgICAgICBNTSA6ICclZCDgsKjgsYbgsLLgsLLgsYEnLFxuICAgICAgICAgICAgeSA6ICfgsJLgsJUg4LC44LCC4LC14LCk4LGN4LC44LCw4LCCJyxcbiAgICAgICAgICAgIHl5IDogJyVkIOCwuOCwguCwteCwpOCxjeCwuOCwsOCwvuCwsuCxgSdcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZSA6IC9cXGR7MSwyfeCwtS8sXG4gICAgICAgIG9yZGluYWwgOiAnJWTgsLUnLFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv4LCw4LC+4LCk4LGN4LCw4LC/fOCwieCwpuCwr+CwgnzgsK7gsKfgsY3gsK/gsL7gsLngsY3gsKjgsIJ84LC44LC+4LCv4LCC4LCk4LGN4LCw4LCCLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyIDogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+CwsOCwvuCwpOCxjeCwsOCwvycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA8IDQgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CwieCwpuCwr+CwgicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfgsK7gsKfgsY3gsK/gsL7gsLngsY3gsKjgsIInKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTAgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+CwuOCwvuCwr+CwguCwpOCxjeCwsOCwgicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VyIDwgNCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LCw4LC+4LCk4LGN4LCw4LC/JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG91ciA8IDEwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsIngsKbgsK/gsIInO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+CwruCwp+CxjeCwr+CwvuCwueCxjeCwqOCwgic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAyMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LC44LC+4LCv4LCC4LCk4LGN4LCw4LCCJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfgsLDgsL7gsKTgsY3gsLDgsL8nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA2ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0ZTtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHRldCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RldCcsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbmVpcnVfRmV2ZXJlaXJ1X01hcnN1X0FicmlsX01haXVfSnXDsXVfSnVsbHVfQWd1c3R1X1NldGVtYnJ1X091dHVicnVfTm92ZW1icnVfRGV6ZW1icnUnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ0phbl9GZXZfTWFyX0Ficl9NYWlfSnVuX0p1bF9BZ29fU2V0X091dF9Ob3ZfRGV6Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdEb21pbmd1X1NlZ3VuZGFfVGVyc2FfS3VhcnRhX0tpbnRhX1Nlc3RhX1NhYmFkdScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdEb21fU2VnX1RlcnNfS3VhX0tpbnRfU2VzdF9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ0RvX1NlZ19UZV9LdV9LaV9TZXNfU2EnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW09oaW4gaWhhXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0FiYW4gaWhhXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ2RkZGQgW2loYV0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tIb3Jpc2VpayBpaGFdIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrOiAnZGRkZCBbc2VtYW5hIGtvdHVrXSBbaWhhXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdpaGEgJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyBsaXViYScsXG4gICAgICAgICAgICBzIDogJ21pbnV0dSBiYWx1bicsXG4gICAgICAgICAgICBzcyA6ICdtaW51dHUgJWQnLFxuICAgICAgICAgICAgbSA6ICdtaW51dHUgaWRhJyxcbiAgICAgICAgICAgIG1tIDogJ21pbnV0dSAlZCcsXG4gICAgICAgICAgICBoIDogJ29yYXMgaWRhJyxcbiAgICAgICAgICAgIGhoIDogJ29yYXMgJWQnLFxuICAgICAgICAgICAgZCA6ICdsb3JvbiBpZGEnLFxuICAgICAgICAgICAgZGQgOiAnbG9yb24gJWQnLFxuICAgICAgICAgICAgTSA6ICdmdWxhbiBpZGEnLFxuICAgICAgICAgICAgTU0gOiAnZnVsYW4gJWQnLFxuICAgICAgICAgICAgeSA6ICd0aW5hbiBpZGEnLFxuICAgICAgICAgICAgeXkgOiAndGluYW4gJWQnXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfShzdHxuZHxyZHx0aCkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGIgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBvdXRwdXQgPSAofn4obnVtYmVyICUgMTAwIC8gMTApID09PSAxKSA/ICd0aCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAxKSA/ICdzdCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAyKSA/ICduZCcgOlxuICAgICAgICAgICAgICAgIChiID09PSAzKSA/ICdyZCcgOiAndGgnO1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlciArIG91dHB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGV0O1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgc3VmZml4ZXMgPSB7XG4gICAgICAgIDA6ICct0YPQvCcsXG4gICAgICAgIDE6ICct0YPQvCcsXG4gICAgICAgIDI6ICct0Y7QvCcsXG4gICAgICAgIDM6ICct0Y7QvCcsXG4gICAgICAgIDQ6ICct0YPQvCcsXG4gICAgICAgIDU6ICct0YPQvCcsXG4gICAgICAgIDY6ICct0YPQvCcsXG4gICAgICAgIDc6ICct0YPQvCcsXG4gICAgICAgIDg6ICct0YPQvCcsXG4gICAgICAgIDk6ICct0YPQvCcsXG4gICAgICAgIDEwOiAnLdGD0LwnLFxuICAgICAgICAxMjogJy3Rg9C8JyxcbiAgICAgICAgMTM6ICct0YPQvCcsXG4gICAgICAgIDIwOiAnLdGD0LwnLFxuICAgICAgICAzMDogJy3RjtC8JyxcbiAgICAgICAgNDA6ICct0YPQvCcsXG4gICAgICAgIDUwOiAnLdGD0LwnLFxuICAgICAgICA2MDogJy3Rg9C8JyxcbiAgICAgICAgNzA6ICct0YPQvCcsXG4gICAgICAgIDgwOiAnLdGD0LwnLFxuICAgICAgICA5MDogJy3Rg9C8JyxcbiAgICAgICAgMTAwOiAnLdGD0LwnXG4gICAgfTtcblxuICAgIHZhciB0ZyA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RnJywge1xuICAgICAgICBtb250aHMgOiAn0Y/QvdCy0LDRgF/RhNC10LLRgNCw0Ltf0LzQsNGA0YJf0LDQv9GA0LXQu1/QvNCw0Llf0LjRjtC9X9C40Y7Qu1/QsNCy0LPRg9GB0YJf0YHQtdC90YLRj9Cx0YBf0L7QutGC0Y/QsdGAX9C90L7Rj9Cx0YBf0LTQtdC60LDQsdGAJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICfRj9C90LJf0YTQtdCyX9C80LDRgF/QsNC/0YBf0LzQsNC5X9C40Y7QvV/QuNGO0Ltf0LDQstCzX9GB0LXQvV/QvtC60YJf0L3QvtGPX9C00LXQuicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAn0Y/QutGI0LDQvdCx0LVf0LTRg9GI0LDQvdCx0LVf0YHQtdGI0LDQvdCx0LVf0YfQvtGA0YjQsNC90LHQtV/Qv9Cw0L3St9GI0LDQvdCx0LVf0rfRg9C80YrQsF/RiNCw0L3QsdC1Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ9GP0YjQsV/QtNGI0LFf0YHRiNCxX9GH0YjQsV/Qv9GI0LFf0rfRg9C8X9GI0L3QsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn0Y/RiF/QtNGIX9GB0Yhf0YfRiF/Qv9GIX9K30Lxf0YjQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW9CY0LzRgNOv0Lcg0YHQvtCw0YLQuF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdb0J/QsNCz0L7SsyDRgdC+0LDRgtC4XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vQlNC40YDTr9C3INGB0L7QsNGC0LhdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGRb0LhdIFvSs9Cw0YTRgtCw0Lgg0L7Rj9C90LTQsCDRgdC+0LDRgtC4XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdkZGRkW9C4XSBb0rPQsNGE0YLQsNC4INCz0YPQt9Cw0YjRgtCwINGB0L7QsNGC0LhdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICfQsdCw0YrQtNC4ICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMg0L/QtdGIJyxcbiAgICAgICAgICAgIHMgOiAn0Y/QutGH0LDQvdC0INGB0L7QvdC40Y8nLFxuICAgICAgICAgICAgbSA6ICfRj9C6INC00LDSm9C40pvQsCcsXG4gICAgICAgICAgICBtbSA6ICclZCDQtNCw0pvQuNKb0LAnLFxuICAgICAgICAgICAgaCA6ICfRj9C6INGB0L7QsNGCJyxcbiAgICAgICAgICAgIGhoIDogJyVkINGB0L7QsNGCJyxcbiAgICAgICAgICAgIGQgOiAn0Y/QuiDRgNOv0LcnLFxuICAgICAgICAgICAgZGQgOiAnJWQg0YDTr9C3JyxcbiAgICAgICAgICAgIE0gOiAn0Y/QuiDQvNC+0rMnLFxuICAgICAgICAgICAgTU0gOiAnJWQg0LzQvtKzJyxcbiAgICAgICAgICAgIHkgOiAn0Y/QuiDRgdC+0LsnLFxuICAgICAgICAgICAgeXkgOiAnJWQg0YHQvtC7J1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv0YjQsNCxfNGB0YPQsdKzfNGA06/Qt3zQsdC10LPQvtKzLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn0YjQsNCxJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyIDwgNCA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn0YHRg9Cx0rMnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn0YDTr9C3Jykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfQsdC10LPQvtKzJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9GI0LDQsSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YHRg9Cx0rMnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChob3VyIDwgMTYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9GA06/Qtyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxOSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0LHQtdCz0L7Ssyc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YjQsNCxJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9LSjRg9C8fNGO0LwpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgdmFyIGEgPSBudW1iZXIgJSAxMCxcbiAgICAgICAgICAgICAgICBiID0gbnVtYmVyID49IDEwMCA/IDEwMCA6IG51bGw7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgKHN1ZmZpeGVzW251bWJlcl0gfHwgc3VmZml4ZXNbYV0gfHwgc3VmZml4ZXNbYl0pO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA3ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiAxdGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0ZztcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHRoID0gbW9tZW50LmRlZmluZUxvY2FsZSgndGgnLCB7XG4gICAgICAgIG1vbnRocyA6ICfguKHguIHguKPguLLguITguKFf4LiB4Li44Lih4Lig4Liy4Lie4Lix4LiZ4LiY4LmMX+C4oeC4teC4meC4suC4hOC4oV/guYDguKHguKnguLLguKLguJlf4Lie4Lik4Lip4Lig4Liy4LiE4LihX+C4oeC4tOC4luC4uOC4meC4suC4ouC4mV/guIHguKPguIHguI7guLLguITguKFf4Liq4Li04LiH4Lir4Liy4LiE4LihX+C4geC4seC4meC4ouC4suC4ouC4mV/guJXguLjguKXguLLguITguKFf4Lie4Lik4Lio4LiI4Li04LiB4Liy4Lii4LiZX+C4mOC4seC4meC4p+C4suC4hOC4oScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn4LihLuC4hC5f4LiBLuC4ni5f4Lih4Li1LuC4hC5f4LmA4LihLuC4oi5f4LieLuC4hC5f4Lih4Li0LuC4oi5f4LiBLuC4hC5f4LiqLuC4hC5f4LiBLuC4oi5f4LiVLuC4hC5f4LieLuC4oi5f4LiYLuC4hC4nLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3Q6IHRydWUsXG4gICAgICAgIHdlZWtkYXlzIDogJ+C4reC4suC4l+C4tOC4leC4ouC5jF/guIjguLHguJnguJfguKPguYxf4Lit4Lix4LiH4LiE4Liy4LijX+C4nuC4uOC4mF/guJ7guKTguKvguLHguKrguJrguJTguLVf4Lio4Li44LiB4Lij4LmMX+C5gOC4quC4suC4o+C5jCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfguK3guLLguJfguLTguJXguKLguYxf4LiI4Lix4LiZ4LiX4Lij4LmMX+C4reC4seC4h+C4hOC4suC4o1/guJ7guLjguJhf4Lie4Lik4Lir4Lix4LiqX+C4qOC4uOC4geC4o+C5jF/guYDguKrguLLguKPguYwnLnNwbGl0KCdfJyksIC8vIHllcywgdGhyZWUgY2hhcmFjdGVycyBkaWZmZXJlbmNlXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ+C4reC4si5f4LiILl/guK0uX+C4ni5f4Lie4LikLl/guKguX+C4qi4nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIOC5gOC4p+C4peC4siBIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAn4Lin4Lix4LiZZGRkZOC4l+C4teC5iCBEIE1NTU0gWVlZWSDguYDguKfguKXguLIgSDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+C4geC5iOC4reC4meC5gOC4l+C4teC5iOC4ouC4h3zguKvguKXguLHguIfguYDguJfguLXguYjguKLguIcvLFxuICAgICAgICBpc1BNOiBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCA9PT0gJ+C4q+C4peC4seC4h+C5gOC4l+C4teC5iOC4ouC4hyc7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtIDogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn4LiB4LmI4Lit4LiZ4LmA4LiX4Li14LmI4Lii4LiHJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfguKvguKXguLHguIfguYDguJfguLXguYjguKLguIcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW+C4p+C4seC4meC4meC4teC5iSDguYDguKfguKXguLJdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW+C4nuC4o+C4uOC5iOC4h+C4meC4teC5iSDguYDguKfguKXguLJdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGRb4Lir4LiZ4LmJ4LiyIOC5gOC4p+C4peC4sl0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdb4LmA4Lih4Li34LmI4Lit4Lin4Liy4LiZ4LiZ4Li14LmJIOC5gOC4p+C4peC4sl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW+C4p+C4seC4mV1kZGRkW+C4l+C4teC5iOC5geC4peC5ieC4pyDguYDguKfguKXguLJdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICfguK3guLXguIEgJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclc+C4l+C4teC5iOC5geC4peC5ieC4pycsXG4gICAgICAgICAgICBzIDogJ+C5hOC4oeC5iOC4geC4teC5iOC4p+C4tOC4meC4suC4l+C4tScsXG4gICAgICAgICAgICBzcyA6ICclZCDguKfguLTguJnguLLguJfguLUnLFxuICAgICAgICAgICAgbSA6ICcxIOC4meC4suC4l+C4tScsXG4gICAgICAgICAgICBtbSA6ICclZCDguJnguLLguJfguLUnLFxuICAgICAgICAgICAgaCA6ICcxIOC4iuC4seC5iOC4p+C5guC4oeC4hycsXG4gICAgICAgICAgICBoaCA6ICclZCDguIrguLHguYjguKfguYLguKHguIcnLFxuICAgICAgICAgICAgZCA6ICcxIOC4p+C4seC4mScsXG4gICAgICAgICAgICBkZCA6ICclZCDguKfguLHguJknLFxuICAgICAgICAgICAgTSA6ICcxIOC5gOC4lOC4t+C4reC4mScsXG4gICAgICAgICAgICBNTSA6ICclZCDguYDguJTguLfguK3guJknLFxuICAgICAgICAgICAgeSA6ICcxIOC4m+C4tScsXG4gICAgICAgICAgICB5eSA6ICclZCDguJvguLUnXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0aDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHRsUGggPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0bC1waCcsIHtcbiAgICAgICAgbW9udGhzIDogJ0VuZXJvX1BlYnJlcm9fTWFyc29fQWJyaWxfTWF5b19IdW55b19IdWx5b19BZ29zdG9fU2V0eWVtYnJlX09rdHVicmVfTm9ieWVtYnJlX0Rpc3llbWJyZScuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnRW5lX1BlYl9NYXJfQWJyX01heV9IdW5fSHVsX0Fnb19TZXRfT2t0X05vYl9EaXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ0xpbmdnb19MdW5lc19NYXJ0ZXNfTWl5ZXJrdWxlc19IdXdlYmVzX0JpeWVybmVzX1NhYmFkbycuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdMaW5fTHVuX01hcl9NaXlfSHV3X0JpeV9TYWInLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ0xpX0x1X01hX01pX0h1X0JpX1NhYicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdNTS9EL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnTU1NTSBELCBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdNTU1NIEQsIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBNTU1NIERELCBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdMVCBbbmdheW9uZyBhcmF3XScsXG4gICAgICAgICAgICBuZXh0RGF5OiAnW0J1a2FzIG5nXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ0xUIFtzYSBzdXN1bm9kIG5hXSBkZGRkJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdMVCBba2FoYXBvbl0nLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdMVCBbbm9vbmcgbmFrYXJhYW5nXSBkZGRkJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ3NhIGxvb2IgbmcgJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyBhbmcgbmFrYWxpcGFzJyxcbiAgICAgICAgICAgIHMgOiAnaWxhbmcgc2VndW5kbycsXG4gICAgICAgICAgICBzcyA6ICclZCBzZWd1bmRvJyxcbiAgICAgICAgICAgIG0gOiAnaXNhbmcgbWludXRvJyxcbiAgICAgICAgICAgIG1tIDogJyVkIG1pbnV0bycsXG4gICAgICAgICAgICBoIDogJ2lzYW5nIG9yYXMnLFxuICAgICAgICAgICAgaGggOiAnJWQgb3JhcycsXG4gICAgICAgICAgICBkIDogJ2lzYW5nIGFyYXcnLFxuICAgICAgICAgICAgZGQgOiAnJWQgYXJhdycsXG4gICAgICAgICAgICBNIDogJ2lzYW5nIGJ1d2FuJyxcbiAgICAgICAgICAgIE1NIDogJyVkIGJ1d2FuJyxcbiAgICAgICAgICAgIHkgOiAnaXNhbmcgdGFvbicsXG4gICAgICAgICAgICB5eSA6ICclZCB0YW9uJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0vLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGxQaDtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIG51bWJlcnNOb3VucyA9ICdwYWdoX3dh4oCZX2NoYeKAmV93ZWpfbG9TX3ZhZ2hfamF2X1NvY2hfY2hvcmdoX0h1dCcuc3BsaXQoJ18nKTtcblxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZUZ1dHVyZShvdXRwdXQpIHtcbiAgICAgICAgdmFyIHRpbWUgPSBvdXRwdXQ7XG4gICAgICAgIHRpbWUgPSAob3V0cHV0LmluZGV4T2YoJ2phaicpICE9PSAtMSkgP1xuICAgICAgICB0aW1lLnNsaWNlKDAsIC0zKSArICdsZVMnIDpcbiAgICAgICAgKG91dHB1dC5pbmRleE9mKCdqYXInKSAhPT0gLTEpID9cbiAgICAgICAgdGltZS5zbGljZSgwLCAtMykgKyAnd2FRJyA6XG4gICAgICAgIChvdXRwdXQuaW5kZXhPZignRElTJykgIT09IC0xKSA/XG4gICAgICAgIHRpbWUuc2xpY2UoMCwgLTMpICsgJ25lbScgOlxuICAgICAgICB0aW1lICsgJyBwSXEnO1xuICAgICAgICByZXR1cm4gdGltZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGVQYXN0KG91dHB1dCkge1xuICAgICAgICB2YXIgdGltZSA9IG91dHB1dDtcbiAgICAgICAgdGltZSA9IChvdXRwdXQuaW5kZXhPZignamFqJykgIT09IC0xKSA/XG4gICAgICAgIHRpbWUuc2xpY2UoMCwgLTMpICsgJ0h14oCZJyA6XG4gICAgICAgIChvdXRwdXQuaW5kZXhPZignamFyJykgIT09IC0xKSA/XG4gICAgICAgIHRpbWUuc2xpY2UoMCwgLTMpICsgJ3dlbicgOlxuICAgICAgICAob3V0cHV0LmluZGV4T2YoJ0RJUycpICE9PSAtMSkgP1xuICAgICAgICB0aW1lLnNsaWNlKDAsIC0zKSArICdiZW4nIDpcbiAgICAgICAgdGltZSArICcgcmV0JztcbiAgICAgICAgcmV0dXJuIHRpbWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNsYXRlKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgbnVtYmVyTm91biA9IG51bWJlckFzTm91bihudW1iZXIpO1xuICAgICAgICBzd2l0Y2ggKHN0cmluZykge1xuICAgICAgICAgICAgY2FzZSAnc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJOb3VuICsgJyBsdXAnO1xuICAgICAgICAgICAgY2FzZSAnbW0nOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJOb3VuICsgJyB0dXAnO1xuICAgICAgICAgICAgY2FzZSAnaGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJOb3VuICsgJyByZXAnO1xuICAgICAgICAgICAgY2FzZSAnZGQnOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJOb3VuICsgJyBqYWonO1xuICAgICAgICAgICAgY2FzZSAnTU0nOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJOb3VuICsgJyBqYXInO1xuICAgICAgICAgICAgY2FzZSAneXknOlxuICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXJOb3VuICsgJyBESVMnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbnVtYmVyQXNOb3VuKG51bWJlcikge1xuICAgICAgICB2YXIgaHVuZHJlZCA9IE1hdGguZmxvb3IoKG51bWJlciAlIDEwMDApIC8gMTAwKSxcbiAgICAgICAgdGVuID0gTWF0aC5mbG9vcigobnVtYmVyICUgMTAwKSAvIDEwKSxcbiAgICAgICAgb25lID0gbnVtYmVyICUgMTAsXG4gICAgICAgIHdvcmQgPSAnJztcbiAgICAgICAgaWYgKGh1bmRyZWQgPiAwKSB7XG4gICAgICAgICAgICB3b3JkICs9IG51bWJlcnNOb3Vuc1todW5kcmVkXSArICd2YXRsaCc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRlbiA+IDApIHtcbiAgICAgICAgICAgIHdvcmQgKz0gKCh3b3JkICE9PSAnJykgPyAnICcgOiAnJykgKyBudW1iZXJzTm91bnNbdGVuXSArICdtYUgnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvbmUgPiAwKSB7XG4gICAgICAgICAgICB3b3JkICs9ICgod29yZCAhPT0gJycpID8gJyAnIDogJycpICsgbnVtYmVyc05vdW5zW29uZV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICh3b3JkID09PSAnJykgPyAncGFnaCcgOiB3b3JkO1xuICAgIH1cblxuICAgIHZhciB0bGggPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0bGgnLCB7XG4gICAgICAgIG1vbnRocyA6ICd0ZXJh4oCZIGphciB3YeKAmV90ZXJh4oCZIGphciBjaGHigJlfdGVyYeKAmSBqYXIgd2VqX3RlcmHigJkgamFyIGxvU190ZXJh4oCZIGphciB2YWdoX3RlcmHigJkgamFyIGphdl90ZXJh4oCZIGphciBTb2NoX3RlcmHigJkgamFyIGNob3JnaF90ZXJh4oCZIGphciBIdXRfdGVyYeKAmSBqYXIgd2HigJltYUhfdGVyYeKAmSBqYXIgd2HigJltYUggd2HigJlfdGVyYeKAmSBqYXIgd2HigJltYUggY2hh4oCZJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdqYXIgd2HigJlfamFyIGNoYeKAmV9qYXIgd2VqX2phciBsb1NfamFyIHZhZ2hfamFyIGphdl9qYXIgU29jaF9qYXIgY2hvcmdoX2phciBIdXRfamFyIHdh4oCZbWFIX2phciB3YeKAmW1hSCB3YeKAmV9qYXIgd2HigJltYUggY2hh4oCZJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNQYXJzZUV4YWN0IDogdHJ1ZSxcbiAgICAgICAgd2Vla2RheXMgOiAnbG9qbUl0amFqX0RhU2phal9wb3ZqYWpfZ2hJdGxoamFqX2xvZ2hqYWpfYnVxamFqX2doSW5qYWonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnbG9qbUl0amFqX0RhU2phal9wb3ZqYWpfZ2hJdGxoamFqX2xvZ2hqYWpfYnVxamFqX2doSW5qYWonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ2xvam1JdGphal9EYVNqYWpfcG92amFqX2doSXRsaGphal9sb2doamFqX2J1cWphal9naEluamFqJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdCA6IHtcbiAgICAgICAgICAgIExUIDogJ0hIOm1tJyxcbiAgICAgICAgICAgIExUUyA6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0RELk1NLllZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheTogJ1tEYUhqYWpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdbd2HigJlsZVNdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnTExMJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdbd2HigJlIdeKAmV0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdMTEwnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiB0cmFuc2xhdGVGdXR1cmUsXG4gICAgICAgICAgICBwYXN0IDogdHJhbnNsYXRlUGFzdCxcbiAgICAgICAgICAgIHMgOiAncHVTIGx1cCcsXG4gICAgICAgICAgICBzcyA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIG0gOiAnd2HigJkgdHVwJyxcbiAgICAgICAgICAgIG1tIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgaCA6ICd3YeKAmSByZXAnLFxuICAgICAgICAgICAgaGggOiB0cmFuc2xhdGUsXG4gICAgICAgICAgICBkIDogJ3dh4oCZIGphaicsXG4gICAgICAgICAgICBkZCA6IHRyYW5zbGF0ZSxcbiAgICAgICAgICAgIE0gOiAnd2HigJkgamFyJyxcbiAgICAgICAgICAgIE1NIDogdHJhbnNsYXRlLFxuICAgICAgICAgICAgeSA6ICd3YeKAmSBESVMnLFxuICAgICAgICAgICAgeXkgOiB0cmFuc2xhdGVcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbCA6ICclZC4nLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0bGg7XG5cbn0pKSk7XG4iLCJcbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgc3VmZml4ZXMgPSB7XG4gICAgICAgIDE6ICdcXCdpbmNpJyxcbiAgICAgICAgNTogJ1xcJ2luY2knLFxuICAgICAgICA4OiAnXFwnaW5jaScsXG4gICAgICAgIDcwOiAnXFwnaW5jaScsXG4gICAgICAgIDgwOiAnXFwnaW5jaScsXG4gICAgICAgIDI6ICdcXCduY2knLFxuICAgICAgICA3OiAnXFwnbmNpJyxcbiAgICAgICAgMjA6ICdcXCduY2knLFxuICAgICAgICA1MDogJ1xcJ25jaScsXG4gICAgICAgIDM6ICdcXCfDvG5jw7wnLFxuICAgICAgICA0OiAnXFwnw7xuY8O8JyxcbiAgICAgICAgMTAwOiAnXFwnw7xuY8O8JyxcbiAgICAgICAgNjogJ1xcJ25jxLEnLFxuICAgICAgICA5OiAnXFwndW5jdScsXG4gICAgICAgIDEwOiAnXFwndW5jdScsXG4gICAgICAgIDMwOiAnXFwndW5jdScsXG4gICAgICAgIDYwOiAnXFwnxLFuY8SxJyxcbiAgICAgICAgOTA6ICdcXCfEsW5jxLEnXG4gICAgfTtcblxuICAgIHZhciB0ciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3RyJywge1xuICAgICAgICBtb250aHMgOiAnT2Nha1/FnnViYXRfTWFydF9OaXNhbl9NYXnEsXNfSGF6aXJhbl9UZW1tdXpfQcSfdXN0b3NfRXlsw7xsX0VraW1fS2FzxLFtX0FyYWzEsWsnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ09jYV/FnnViX01hcl9OaXNfTWF5X0hhel9UZW1fQcSfdV9FeWxfRWtpX0thc19BcmEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ1BhemFyX1BhemFydGVzaV9TYWzEsV/Dh2FyxZ9hbWJhX1BlcsWfZW1iZV9DdW1hX0N1bWFydGVzaScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdQYXpfUHRzX1NhbF/Dh2FyX1Blcl9DdW1fQ3RzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdQel9QdF9TYV/Dh2FfUGVfQ3VfQ3QnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQuTU0uWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkLCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1tidWfDvG4gc2FhdF0gTFQnLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbeWFyxLFuIHNhYXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ1tnZWxlY2VrXSBkZGRkIFtzYWF0XSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1tkw7xuXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdbZ2XDp2VuXSBkZGRkIFtzYWF0XSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnJXMgc29ucmEnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyDDtm5jZScsXG4gICAgICAgICAgICBzIDogJ2Jpcmthw6cgc2FuaXllJyxcbiAgICAgICAgICAgIHNzIDogJyVkIHNhbml5ZScsXG4gICAgICAgICAgICBtIDogJ2JpciBkYWtpa2EnLFxuICAgICAgICAgICAgbW0gOiAnJWQgZGFraWthJyxcbiAgICAgICAgICAgIGggOiAnYmlyIHNhYXQnLFxuICAgICAgICAgICAgaGggOiAnJWQgc2FhdCcsXG4gICAgICAgICAgICBkIDogJ2JpciBnw7xuJyxcbiAgICAgICAgICAgIGRkIDogJyVkIGfDvG4nLFxuICAgICAgICAgICAgTSA6ICdiaXIgYXknLFxuICAgICAgICAgICAgTU0gOiAnJWQgYXknLFxuICAgICAgICAgICAgeSA6ICdiaXIgecSxbCcsXG4gICAgICAgICAgICB5eSA6ICclZCB5xLFsJ1xuICAgICAgICB9LFxuICAgICAgICBvcmRpbmFsOiBmdW5jdGlvbiAobnVtYmVyLCBwZXJpb2QpIHtcbiAgICAgICAgICAgIHN3aXRjaCAocGVyaW9kKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnZCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnRG8nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0REJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAobnVtYmVyID09PSAwKSB7ICAvLyBzcGVjaWFsIGNhc2UgZm9yIHplcm9cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnXFwnxLFuY8SxJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgYSA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgYiA9IG51bWJlciAlIDEwMCAtIGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBjID0gbnVtYmVyID49IDEwMCA/IDEwMCA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAoc3VmZml4ZXNbYV0gfHwgc3VmZml4ZXNbYl0gfHwgc3VmZml4ZXNbY10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA3ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA3dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0cjtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgLy8gQWZ0ZXIgdGhlIHllYXIgdGhlcmUgc2hvdWxkIGJlIGEgc2xhc2ggYW5kIHRoZSBhbW91bnQgb2YgeWVhcnMgc2luY2UgRGVjZW1iZXIgMjYsIDE5NzkgaW4gUm9tYW4gbnVtZXJhbHMuXG4gICAgLy8gVGhpcyBpcyBjdXJyZW50bHkgdG9vIGRpZmZpY3VsdCAobWF5YmUgZXZlbiBpbXBvc3NpYmxlKSB0byBhZGQuXG4gICAgdmFyIHR6bCA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3R6bCcsIHtcbiAgICAgICAgbW9udGhzIDogJ0phbnVhcl9GZXZyYWdsaF9NYXLDp19BdnLDr3VfTWFpX0fDvG5fSnVsaWFfR3VzY2h0X1NldGVtdmFyX0xpc3RvcMOkdHNfTm9lbXZhcl9aZWNlbXZhcicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnSmFuX0Zldl9NYXJfQXZyX01haV9Hw7xuX0p1bF9HdXNfU2V0X0xpc19Ob2VfWmVjJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdTw7psYWRpX0zDum5lw6dpX01haXR6aV9Nw6FyY3VyaV9YaMO6YWRpX1Zpw6luZXLDp2lfU8OhdHVyaScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICdTw7psX0zDum5fTWFpX03DoXJfWGjDul9WacOpX1PDoXQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ1PDul9Mw7pfTWFfTcOhX1hoX1ZpX1PDoScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISC5tbScsXG4gICAgICAgICAgICBMVFMgOiAnSEgubW0uc3MnLFxuICAgICAgICAgICAgTCA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QuIE1NTU0gW2RhbGxhc10gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRC4gTU1NTSBbZGFsbGFzXSBZWVlZIEhILm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCwgW2xpXSBELiBNTU1NIFtkYWxsYXNdIFlZWVkgSEgubW0nXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC9kXFwnb3xkXFwnYS9pLFxuICAgICAgICBpc1BNIDogZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ2RcXCdvJyA9PT0gaW5wdXQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91cnMsIG1pbnV0ZXMsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnZFxcJ28nIDogJ0RcXCdPJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnZFxcJ2EnIDogJ0RcXCdBJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1tveGhpIMOgXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1tkZW3DoCDDoF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBbw6BdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW2llaXJpIMOgXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdbc8O8ciBlbF0gZGRkZCBbbGFzdGV1IMOgXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnb3NwcmVpICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAnamElcycsXG4gICAgICAgICAgICBzIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIHNzIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIG0gOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgbW0gOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgaCA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBoaCA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICBkIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIGRkIDogcHJvY2Vzc1JlbGF0aXZlVGltZSxcbiAgICAgICAgICAgIE0gOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgTU0gOiBwcm9jZXNzUmVsYXRpdmVUaW1lLFxuICAgICAgICAgICAgeSA6IHByb2Nlc3NSZWxhdGl2ZVRpbWUsXG4gICAgICAgICAgICB5eSA6IHByb2Nlc3NSZWxhdGl2ZVRpbWVcbiAgICAgICAgfSxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9XFwuLyxcbiAgICAgICAgb3JkaW5hbCA6ICclZC4nLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIHByb2Nlc3NSZWxhdGl2ZVRpbWUobnVtYmVyLCB3aXRob3V0U3VmZml4LCBrZXksIGlzRnV0dXJlKSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICAncyc6IFsndmllbnNhcyBzZWN1bmRzJywgJ1xcJ2llbnNhcyBzZWN1bmRzJ10sXG4gICAgICAgICAgICAnc3MnOiBbbnVtYmVyICsgJyBzZWN1bmRzJywgJycgKyBudW1iZXIgKyAnIHNlY3VuZHMnXSxcbiAgICAgICAgICAgICdtJzogWydcXCduIG3DrXV0JywgJ1xcJ2llbnMgbcOtdXQnXSxcbiAgICAgICAgICAgICdtbSc6IFtudW1iZXIgKyAnIG3DrXV0cycsICcnICsgbnVtYmVyICsgJyBtw611dHMnXSxcbiAgICAgICAgICAgICdoJzogWydcXCduIMO+b3JhJywgJ1xcJ2llbnNhIMO+b3JhJ10sXG4gICAgICAgICAgICAnaGgnOiBbbnVtYmVyICsgJyDDvm9yYXMnLCAnJyArIG51bWJlciArICcgw75vcmFzJ10sXG4gICAgICAgICAgICAnZCc6IFsnXFwnbiB6aXVhJywgJ1xcJ2llbnNhIHppdWEnXSxcbiAgICAgICAgICAgICdkZCc6IFtudW1iZXIgKyAnIHppdWFzJywgJycgKyBudW1iZXIgKyAnIHppdWFzJ10sXG4gICAgICAgICAgICAnTSc6IFsnXFwnbiBtZXMnLCAnXFwnaWVucyBtZXMnXSxcbiAgICAgICAgICAgICdNTSc6IFtudW1iZXIgKyAnIG1lc2VuJywgJycgKyBudW1iZXIgKyAnIG1lc2VuJ10sXG4gICAgICAgICAgICAneSc6IFsnXFwnbiBhcicsICdcXCdpZW5zIGFyJ10sXG4gICAgICAgICAgICAneXknOiBbbnVtYmVyICsgJyBhcnMnLCAnJyArIG51bWJlciArICcgYXJzJ11cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGlzRnV0dXJlID8gZm9ybWF0W2tleV1bMF0gOiAod2l0aG91dFN1ZmZpeCA/IGZvcm1hdFtrZXldWzBdIDogZm9ybWF0W2tleV1bMV0pO1xuICAgIH1cblxuICAgIHJldHVybiB0emw7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciB0em1MYXRuID0gbW9tZW50LmRlZmluZUxvY2FsZSgndHptLWxhdG4nLCB7XG4gICAgICAgIG1vbnRocyA6ICdpbm5heXJfYnLLpGF5csukX21hcsukc8ukX2licmlyX21heXl3X3l3bnl3X3l3bHl3el/Jo3fFoXRfxaF3dGFuYmlyX2t0y6R3YnLLpF9ud3dhbmJpcl9kd2puYmlyJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdpbm5heXJfYnLLpGF5csukX21hcsukc8ukX2licmlyX21heXl3X3l3bnl3X3l3bHl3el/Jo3fFoXRfxaF3dGFuYmlyX2t0y6R3YnLLpF9ud3dhbmJpcl9kd2puYmlyJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdhc2FtYXNfYXluYXNfYXNpbmFzX2FrcmFzX2Frd2FzX2FzaW13YXNfYXNp4biNeWFzJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ2FzYW1hc19heW5hc19hc2luYXNfYWtyYXNfYWt3YXNfYXNpbXdhc19hc2nhuI15YXMnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ2FzYW1hc19heW5hc19hc2luYXNfYWtyYXNfYWt3YXNfYXNpbXdhc19hc2nhuI15YXMnLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRkIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbYXNka2ggZ10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1thc2thIGddIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrOiAnZGRkZCBbZ10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1thc3NhbnQgZ10gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFtnXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdkYWRraCBzIHlhbiAlcycsXG4gICAgICAgICAgICBwYXN0IDogJ3lhbiAlcycsXG4gICAgICAgICAgICBzIDogJ2ltaWsnLFxuICAgICAgICAgICAgc3MgOiAnJWQgaW1paycsXG4gICAgICAgICAgICBtIDogJ21pbnXhuI0nLFxuICAgICAgICAgICAgbW0gOiAnJWQgbWludeG4jScsXG4gICAgICAgICAgICBoIDogJ3NhyZthJyxcbiAgICAgICAgICAgIGhoIDogJyVkIHRhc3NhyZtpbicsXG4gICAgICAgICAgICBkIDogJ2FzcycsXG4gICAgICAgICAgICBkZCA6ICclZCBvc3NhbicsXG4gICAgICAgICAgICBNIDogJ2F5b3dyJyxcbiAgICAgICAgICAgIE1NIDogJyVkIGl5eWlybicsXG4gICAgICAgICAgICB5IDogJ2FzZ2FzJyxcbiAgICAgICAgICAgIHl5IDogJyVkIGlzZ2FzbidcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDYsIC8vIFNhdHVyZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiAxMiAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gMTJ0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHR6bUxhdG47XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciB0em0gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd0em0nLCB7XG4gICAgICAgIG1vbnRocyA6ICfitYnitY/itY/itLDitaLitZRf4rSx4rWV4rSw4rWi4rWVX+K1juK0sOK1leK1ml/itYnitLHitZTitYnitZRf4rWO4rSw4rWi4rWi4rWTX+K1ouK1k+K1j+K1ouK1k1/itaLitZPitY3itaLitZPitaNf4rWW4rWT4rWb4rWcX+K1m+K1k+K1nOK0sOK1j+K0seK1ieK1lF/itL3itZ/itZPitLHitZVf4rWP4rWT4rWh4rSw4rWP4rSx4rWJ4rWUX+K0t+K1k+K1iuK1j+K0seK1ieK1lCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn4rWJ4rWP4rWP4rSw4rWi4rWUX+K0seK1leK0sOK1ouK1lV/itY7itLDitZXitZpf4rWJ4rSx4rWU4rWJ4rWUX+K1juK0sOK1ouK1ouK1k1/itaLitZPitY/itaLitZNf4rWi4rWT4rWN4rWi4rWT4rWjX+K1luK1k+K1m+K1nF/itZvitZPitZzitLDitY/itLHitYnitZRf4rS94rWf4rWT4rSx4rWVX+K1j+K1k+K1oeK0sOK1j+K0seK1ieK1lF/itLfitZPitYritY/itLHitYnitZQnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ+K0sOK1meK0sOK1juK0sOK1mV/itLDitaLitY/itLDitZlf4rSw4rWZ4rWJ4rWP4rSw4rWZX+K0sOK0veK1lOK0sOK1mV/itLDitL3itaHitLDitZlf4rSw4rWZ4rWJ4rWO4rWh4rSw4rWZX+K0sOK1meK1ieK0ueK1ouK0sOK1mScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfitLDitZnitLDitY7itLDitZlf4rSw4rWi4rWP4rSw4rWZX+K0sOK1meK1ieK1j+K0sOK1mV/itLDitL3itZTitLDitZlf4rSw4rS94rWh4rSw4rWZX+K0sOK1meK1ieK1juK1oeK0sOK1mV/itLDitZnitYnitLnitaLitLDitZknLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ+K0sOK1meK0sOK1juK0sOK1mV/itLDitaLitY/itLDitZlf4rSw4rWZ4rWJ4rWP4rSw4rWZX+K0sOK0veK1lOK0sOK1mV/itLDitL3itaHitLDitZlf4rSw4rWZ4rWJ4rWO4rWh4rSw4rWZX+K0sOK1meK1ieK0ueK1ouK0sOK1mScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnZGRkZCBEIE1NTU0gWVlZWSBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW+K0sOK1meK0t+K1hSDitLRdIExUJyxcbiAgICAgICAgICAgIG5leHREYXk6ICdb4rSw4rWZ4rS94rSwIOK0tF0gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFvitLRdIExUJyxcbiAgICAgICAgICAgIGxhc3REYXk6ICdb4rSw4rWa4rSw4rWP4rWcIOK0tF0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdkZGRkIFvitLRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ+K0t+K0sOK0t+K1hSDitZkg4rWi4rSw4rWPICVzJyxcbiAgICAgICAgICAgIHBhc3QgOiAn4rWi4rSw4rWPICVzJyxcbiAgICAgICAgICAgIHMgOiAn4rWJ4rWO4rWJ4rS9JyxcbiAgICAgICAgICAgIHNzIDogJyVkIOK1ieK1juK1ieK0vScsXG4gICAgICAgICAgICBtIDogJ+K1juK1ieK1j+K1k+K0uicsXG4gICAgICAgICAgICBtbSA6ICclZCDitY7itYnitY/itZPitLonLFxuICAgICAgICAgICAgaCA6ICfitZnitLDitYTitLAnLFxuICAgICAgICAgICAgaGggOiAnJWQg4rWc4rSw4rWZ4rWZ4rSw4rWE4rWJ4rWPJyxcbiAgICAgICAgICAgIGQgOiAn4rSw4rWZ4rWZJyxcbiAgICAgICAgICAgIGRkIDogJyVkIG/itZnitZnitLDitY8nLFxuICAgICAgICAgICAgTSA6ICfitLDitaJv4rWT4rWUJyxcbiAgICAgICAgICAgIE1NIDogJyVkIOK1ieK1ouK1ouK1ieK1lOK1jycsXG4gICAgICAgICAgICB5IDogJ+K0sOK1meK0s+K0sOK1mScsXG4gICAgICAgICAgICB5eSA6ICclZCDitYnitZnitLPitLDitZnitY8nXG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiA2LCAvLyBTYXR1cmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogMTIgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDEydGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0em07XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxhbmd1YWdlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHVnQ24gPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd1Zy1jbicsIHtcbiAgICAgICAgbW9udGhzOiAn2YrYp9mG24vYp9ixX9mB25Dbi9ix2KfZhF/Zhdin2LHYql/Yptin2b7YsduQ2YRf2YXYp9mKX9im2YnZituH2YZf2KbZidmK24fZhF/Yptin24vYutuH2LPYql/Ys9uQ2YbYqtuV2KjZidixX9im24bZg9iq25XYqNmJ2LFf2YbZiNmK2KfYqNmJ2LFf2K/bkNmD2KfYqNmJ2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIG1vbnRoc1Nob3J0OiAn2YrYp9mG24vYp9ixX9mB25Dbi9ix2KfZhF/Zhdin2LHYql/Yptin2b7YsduQ2YRf2YXYp9mKX9im2YnZituH2YZf2KbZidmK24fZhF/Yptin24vYutuH2LPYql/Ys9uQ2YbYqtuV2KjZidixX9im24bZg9iq25XYqNmJ2LFf2YbZiNmK2KfYqNmJ2LFf2K/bkNmD2KfYqNmJ2LEnLnNwbGl0KFxuICAgICAgICAgICAgJ18nXG4gICAgICAgICksXG4gICAgICAgIHdlZWtkYXlzOiAn2YrbldmD2LTbldmG2KjblV/Yr9uI2LTbldmG2KjblV/Ys9uV2YrYtNuV2YbYqNuVX9qG2KfYsdi025XZhtio25Vf2b7bldmK2LTbldmG2KjblV/YrNuI2YXblV/YtNuV2YbYqNuVJy5zcGxpdChcbiAgICAgICAgICAgICdfJ1xuICAgICAgICApLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiAn2YrblV/Yr9uIX9iz25Vf2obYp1/ZvtuVX9is24hf2LTblScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW46ICfZituVX9iv24hf2LPblV/ahtinX9m+25Vf2KzbiF/YtNuVJy5zcGxpdCgnXycpLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDoge1xuICAgICAgICAgICAgTFQ6ICdISDptbScsXG4gICAgICAgICAgICBMVFM6ICdISDptbTpzcycsXG4gICAgICAgICAgICBMOiAnWVlZWS1NTS1ERCcsXG4gICAgICAgICAgICBMTDogJ1lZWVkt2YrZidmE2YlNLdim2KfZitmG2YnarUQt2YPbiNmG2YknLFxuICAgICAgICAgICAgTExMOiAnWVlZWS3ZitmJ2YTZiU0t2KbYp9mK2YbZidqtRC3Zg9uI2YbZidiMIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEw6ICdkZGRk2IwgWVlZWS3ZitmJ2YTZiU0t2KbYp9mK2YbZidqtRC3Zg9uI2YbZidiMIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAv2YrbkNix2YnZhSDZg9uQ2obblXzYs9uV2r7bldixfNqG24jYtNiq2YnZhiDYqNuH2LHbh9mGfNqG24jYtHzahtuI2LTYqtmJ2YYg2YPbkNmK2YnZhnzZg9uV2oYvLFxuICAgICAgICBtZXJpZGllbUhvdXI6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfZituQ2LHZidmFINmD25DahtuVJyB8fFxuICAgICAgICAgICAgICAgIG1lcmlkaWVtID09PSAn2LPbldq+25XYsScgfHxcbiAgICAgICAgICAgICAgICBtZXJpZGllbSA9PT0gJ9qG24jYtNiq2YnZhiDYqNuH2LHbh9mGJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn2obbiNi02KrZidmGINmD25DZitmJ2YYnIHx8IG1lcmlkaWVtID09PSAn2YPbldqGJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW06IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHZhciBobSA9IGhvdXIgKiAxMDAgKyBtaW51dGU7XG4gICAgICAgICAgICBpZiAoaG0gPCA2MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9mK25DYsdmJ2YUg2YPbkNqG25UnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDkwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2LPbldq+25XYsSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTEzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2obbiNi02KrZidmGINio24fYsduH2YYnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDEyMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9qG24jYtCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTgwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn2obbiNi02KrZidmGINmD25DZitmJ2YYnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ9mD25Xahic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICBzYW1lRGF5OiAnW9io24jar9uI2YYg2LPYp9im25XYql0gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1vYptuV2KrblSDYs9in2KbbldiqXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlazogJ1vZg9uQ2YTbldix2YPZiV0gZGRkZCBb2LPYp9im25XYql0gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1vYqtuG2YbbiNqv24jZhl0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWs6ICdb2KbYp9mE2K/ZidmG2YLZiV0gZGRkZCBb2LPYp9im25XYql0gTFQnLFxuICAgICAgICAgICAgc2FtZUVsc2U6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWU6IHtcbiAgICAgICAgICAgIGZ1dHVyZTogJyVzINmD25DZitmJ2YYnLFxuICAgICAgICAgICAgcGFzdDogJyVzINio24fYsduH2YYnLFxuICAgICAgICAgICAgczogJ9mG25XahtqG25Ug2LPbkNmD2YjZhtiqJyxcbiAgICAgICAgICAgIHNzOiAnJWQg2LPbkNmD2YjZhtiqJyxcbiAgICAgICAgICAgIG06ICfYqNmJ2LEg2YXZidmG24fYqicsXG4gICAgICAgICAgICBtbTogJyVkINmF2YnZhtuH2KonLFxuICAgICAgICAgICAgaDogJ9io2YnYsSDYs9in2KbbldiqJyxcbiAgICAgICAgICAgIGhoOiAnJWQg2LPYp9im25XYqicsXG4gICAgICAgICAgICBkOiAn2KjZidixINmD24jZhicsXG4gICAgICAgICAgICBkZDogJyVkINmD24jZhicsXG4gICAgICAgICAgICBNOiAn2KjZidixINim2KfZiicsXG4gICAgICAgICAgICBNTTogJyVkINim2KfZiicsXG4gICAgICAgICAgICB5OiAn2KjZidixINmK2YnZhCcsXG4gICAgICAgICAgICB5eTogJyVkINmK2YnZhCdcbiAgICAgICAgfSxcblxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0oLdmD24jZhtmJfC3Yptin2Yp8Ldq+25XZvtiq25UpLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdmD24jZhtmJJztcbiAgICAgICAgICAgICAgICBjYXNlICd3JzpcbiAgICAgICAgICAgICAgICBjYXNlICdXJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct2r7bldm+2KrblSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcHJlcGFyc2U6IGZ1bmN0aW9uIChzdHJpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJpbmcucmVwbGFjZSgv2IwvZywgJywnKTtcbiAgICAgICAgfSxcbiAgICAgICAgcG9zdGZvcm1hdDogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC8sL2csICfYjCcpO1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrOiB7XG4gICAgICAgICAgICAvLyBHQi9UIDc0MDgtMTk5NOOAiuaVsOaNruWFg+WSjOS6pOaNouagvOW8j8K35L+h5oGv5Lqk5o2iwrfml6XmnJ/lkozml7bpl7TooajnpLrms5XjgIvkuI5JU08gODYwMToxOTg4562J5pWIXG4gICAgICAgICAgICBkb3c6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95OiA3IC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDFzdCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVnQ247XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIGZ1bmN0aW9uIHBsdXJhbCh3b3JkLCBudW0pIHtcbiAgICAgICAgdmFyIGZvcm1zID0gd29yZC5zcGxpdCgnXycpO1xuICAgICAgICByZXR1cm4gbnVtICUgMTAgPT09IDEgJiYgbnVtICUgMTAwICE9PSAxMSA/IGZvcm1zWzBdIDogKG51bSAlIDEwID49IDIgJiYgbnVtICUgMTAgPD0gNCAmJiAobnVtICUgMTAwIDwgMTAgfHwgbnVtICUgMTAwID49IDIwKSA/IGZvcm1zWzFdIDogZm9ybXNbMl0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsKG51bWJlciwgd2l0aG91dFN1ZmZpeCwga2V5KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB7XG4gICAgICAgICAgICAnc3MnOiB3aXRob3V0U3VmZml4ID8gJ9GB0LXQutGD0L3QtNCwX9GB0LXQutGD0L3QtNC4X9GB0LXQutGD0L3QtCcgOiAn0YHQtdC60YPQvdC00YNf0YHQtdC60YPQvdC00Lhf0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgICdtbSc6IHdpdGhvdXRTdWZmaXggPyAn0YXQstC40LvQuNC90LBf0YXQstC40LvQuNC90Lhf0YXQstC40LvQuNC9JyA6ICfRhdCy0LjQu9C40L3Rg1/RhdCy0LjQu9C40L3QuF/RhdCy0LjQu9C40L0nLFxuICAgICAgICAgICAgJ2hoJzogd2l0aG91dFN1ZmZpeCA/ICfQs9C+0LTQuNC90LBf0LPQvtC00LjQvdC4X9Cz0L7QtNC40L0nIDogJ9Cz0L7QtNC40L3Rg1/Qs9C+0LTQuNC90Lhf0LPQvtC00LjQvScsXG4gICAgICAgICAgICAnZGQnOiAn0LTQtdC90Yxf0LTQvdGWX9C00L3RltCyJyxcbiAgICAgICAgICAgICdNTSc6ICfQvNGW0YHRj9GG0Yxf0LzRltGB0Y/RhtGWX9C80ZbRgdGP0YbRltCyJyxcbiAgICAgICAgICAgICd5eSc6ICfRgNGW0Lpf0YDQvtC60Lhf0YDQvtC60ZbQsidcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGtleSA9PT0gJ20nKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICfRhdCy0LjQu9C40L3QsCcgOiAn0YXQstC40LvQuNC90YMnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGtleSA9PT0gJ2gnKSB7XG4gICAgICAgICAgICByZXR1cm4gd2l0aG91dFN1ZmZpeCA/ICfQs9C+0LTQuNC90LAnIDogJ9Cz0L7QtNC40L3Rgyc7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJyAnICsgcGx1cmFsKGZvcm1hdFtrZXldLCArbnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB3ZWVrZGF5c0Nhc2VSZXBsYWNlKG0sIGZvcm1hdCkge1xuICAgICAgICB2YXIgd2Vla2RheXMgPSB7XG4gICAgICAgICAgICAnbm9taW5hdGl2ZSc6ICfQvdC10LTRltC70Y9f0L/QvtC90LXQtNGW0LvQvtC6X9Cy0ZbQstGC0L7RgNC+0Lpf0YHQtdGA0LXQtNCwX9GH0LXRgtCy0LXRgF/Qv+KAmdGP0YLQvdC40YbRj1/RgdGD0LHQvtGC0LAnLnNwbGl0KCdfJyksXG4gICAgICAgICAgICAnYWNjdXNhdGl2ZSc6ICfQvdC10LTRltC70Y5f0L/QvtC90LXQtNGW0LvQvtC6X9Cy0ZbQstGC0L7RgNC+0Lpf0YHQtdGA0LXQtNGDX9GH0LXRgtCy0LXRgF/Qv+KAmdGP0YLQvdC40YbRjl/RgdGD0LHQvtGC0YMnLnNwbGl0KCdfJyksXG4gICAgICAgICAgICAnZ2VuaXRpdmUnOiAn0L3QtdC00ZbQu9GWX9C/0L7QvdC10LTRltC70LrQsF/QstGW0LLRgtC+0YDQutCwX9GB0LXRgNC10LTQuF/Rh9C10YLQstC10YDQs9CwX9C/4oCZ0Y/RgtC90LjRhtGWX9GB0YPQsdC+0YLQuCcuc3BsaXQoJ18nKVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChtID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheXNbJ25vbWluYXRpdmUnXS5zbGljZSgxLCA3KS5jb25jYXQod2Vla2RheXNbJ25vbWluYXRpdmUnXS5zbGljZSgwLCAxKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICByZXR1cm4gd2Vla2RheXNbJ25vbWluYXRpdmUnXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBub3VuQ2FzZSA9ICgvKFxcW1vQktCy0KPRg11cXF0pID9kZGRkLykudGVzdChmb3JtYXQpID9cbiAgICAgICAgICAgICdhY2N1c2F0aXZlJyA6XG4gICAgICAgICAgICAoKC9cXFs/KD860LzQuNC90YPQu9C+0Zd80L3QsNGB0YLRg9C/0L3QvtGXKT8gP1xcXSA/ZGRkZC8pLnRlc3QoZm9ybWF0KSA/XG4gICAgICAgICAgICAgICAgJ2dlbml0aXZlJyA6XG4gICAgICAgICAgICAgICAgJ25vbWluYXRpdmUnKTtcbiAgICAgICAgcmV0dXJuIHdlZWtkYXlzW25vdW5DYXNlXVttLmRheSgpXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJvY2Vzc0hvdXJzRnVuY3Rpb24oc3RyKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyICsgJ9C+JyArICh0aGlzLmhvdXJzKCkgPT09IDExID8gJ9CxJyA6ICcnKSArICddIExUJztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgdWsgPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd1aycsIHtcbiAgICAgICAgbW9udGhzIDoge1xuICAgICAgICAgICAgJ2Zvcm1hdCc6ICfRgdGW0YfQvdGPX9C70Y7RgtC+0LPQvl/QsdC10YDQtdC30L3Rj1/QutCy0ZbRgtC90Y9f0YLRgNCw0LLQvdGPX9GH0LXRgNCy0L3Rj1/Qu9C40L/QvdGPX9GB0LXRgNC/0L3Rj1/QstC10YDQtdGB0L3Rj1/QttC+0LLRgtC90Y9f0LvQuNGB0YLQvtC/0LDQtNCwX9Cz0YDRg9C00L3Rjycuc3BsaXQoJ18nKSxcbiAgICAgICAgICAgICdzdGFuZGFsb25lJzogJ9GB0ZbRh9C10L3RjF/Qu9GO0YLQuNC5X9Cx0LXRgNC10LfQtdC90Yxf0LrQstGW0YLQtdC90Yxf0YLRgNCw0LLQtdC90Yxf0YfQtdGA0LLQtdC90Yxf0LvQuNC/0LXQvdGMX9GB0LXRgNC/0LXQvdGMX9Cy0LXRgNC10YHQtdC90Yxf0LbQvtCy0YLQtdC90Yxf0LvQuNGB0YLQvtC/0LDQtF/Qs9GA0YPQtNC10L3RjCcuc3BsaXQoJ18nKVxuICAgICAgICB9LFxuICAgICAgICBtb250aHNTaG9ydCA6ICfRgdGW0Ydf0LvRjtGCX9Cx0LXRgF/QutCy0ZbRgl/RgtGA0LDQsl/Rh9C10YDQsl/Qu9C40L9f0YHQtdGA0L9f0LLQtdGAX9C20L7QstGCX9C70LjRgdGCX9Cz0YDRg9C0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6IHdlZWtkYXlzQ2FzZVJlcGxhY2UsXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn0L3QtF/Qv9C9X9Cy0YJf0YHRgF/Rh9GCX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn0L3QtF/Qv9C9X9Cy0YJf0YHRgF/Rh9GCX9C/0YJf0YHQsScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC5NTS5ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZINGALicsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkg0YAuLCBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZINGALiwgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheTogcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQodGM0L7Qs9C+0LTQvdGWICcpLFxuICAgICAgICAgICAgbmV4dERheTogcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQl9Cw0LLRgtGA0LAgJyksXG4gICAgICAgICAgICBsYXN0RGF5OiBwcm9jZXNzSG91cnNGdW5jdGlvbignW9CS0YfQvtGA0LAgJyksXG4gICAgICAgICAgICBuZXh0V2VlazogcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQo10gZGRkZCBbJyksXG4gICAgICAgICAgICBsYXN0V2VlazogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5kYXkoKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc0hvdXJzRnVuY3Rpb24oJ1vQnNC40L3Rg9C70L7Rl10gZGRkZCBbJykuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzSG91cnNGdW5jdGlvbignW9Cc0LjQvdGD0LvQvtCz0L5dIGRkZGQgWycpLmNhbGwodGhpcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbWVFbHNlOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ9C30LAgJXMnLFxuICAgICAgICAgICAgcGFzdCA6ICclcyDRgtC+0LzRgycsXG4gICAgICAgICAgICBzIDogJ9C00LXQutGW0LvRjNC60LAg0YHQtdC60YPQvdC0JyxcbiAgICAgICAgICAgIHNzIDogcmVsYXRpdmVUaW1lV2l0aFBsdXJhbCxcbiAgICAgICAgICAgIG0gOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgbW0gOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgaCA6ICfQs9C+0LTQuNC90YMnLFxuICAgICAgICAgICAgaGggOiByZWxhdGl2ZVRpbWVXaXRoUGx1cmFsLFxuICAgICAgICAgICAgZCA6ICfQtNC10L3RjCcsXG4gICAgICAgICAgICBkZCA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICBNIDogJ9C80ZbRgdGP0YbRjCcsXG4gICAgICAgICAgICBNTSA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWwsXG4gICAgICAgICAgICB5IDogJ9GA0ZbQuicsXG4gICAgICAgICAgICB5eSA6IHJlbGF0aXZlVGltZVdpdGhQbHVyYWxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gTS4gRS46IHRob3NlIHR3byBhcmUgdmlydHVhbGx5IHVudXNlZCBidXQgYSB1c2VyIG1pZ2h0IHdhbnQgdG8gaW1wbGVtZW50IHRoZW0gZm9yIGhpcy9oZXIgd2Vic2l0ZSBmb3Igc29tZSByZWFzb25cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL9C90L7Rh9GWfNGA0LDQvdC60YN80LTQvdGPfNCy0LXRh9C+0YDQsC8sXG4gICAgICAgIGlzUE06IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9eKNC00L3Rj3zQstC10YfQvtGA0LApJC8udGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtIDogZnVuY3Rpb24gKGhvdXIsIG1pbnV0ZSwgaXNMb3dlcikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPCA0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQvdC+0YfRlic7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0YDQsNC90LrRgyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhvdXIgPCAxNykge1xuICAgICAgICAgICAgICAgIHJldHVybiAn0LTQvdGPJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfQstC10YfQvtGA0LAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0tKNC5fNCz0L4pLyxcbiAgICAgICAgb3JkaW5hbDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ00nOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnVyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAnLdC5JztcbiAgICAgICAgICAgICAgICBjYXNlICdEJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICct0LPQvic7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNyAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdWs7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciBtb250aHMgPSBbXG4gICAgICAgICfYrNmG2YjYsduMJyxcbiAgICAgICAgJ9mB2LHZiNix24wnLFxuICAgICAgICAn2YXYp9ix2oYnLFxuICAgICAgICAn2KfZvtix24zZhCcsXG4gICAgICAgICfZhdim24wnLFxuICAgICAgICAn2KzZiNmGJyxcbiAgICAgICAgJ9is2YjZhNin2KbbjCcsXG4gICAgICAgICfYp9qv2LPYqicsXG4gICAgICAgICfYs9iq2YXYqNixJyxcbiAgICAgICAgJ9in2qnYqtmI2KjYsScsXG4gICAgICAgICfZhtmI2YXYqNixJyxcbiAgICAgICAgJ9iv2LPZhdio2LEnXG4gICAgXTtcbiAgICB2YXIgZGF5cyA9IFtcbiAgICAgICAgJ9in2KrZiNin2LEnLFxuICAgICAgICAn2b7bjNixJyxcbiAgICAgICAgJ9mF2Ybar9mEJyxcbiAgICAgICAgJ9io2K/avicsXG4gICAgICAgICfYrNmF2LnYsdin2KonLFxuICAgICAgICAn2KzZhdi524EnLFxuICAgICAgICAn24HZgdiq24EnXG4gICAgXTtcblxuICAgIHZhciB1ciA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3VyJywge1xuICAgICAgICBtb250aHMgOiBtb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0IDogbW9udGhzLFxuICAgICAgICB3ZWVrZGF5cyA6IGRheXMsXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiBkYXlzLFxuICAgICAgICB3ZWVrZGF5c01pbiA6IGRheXMsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gWVlZWScsXG4gICAgICAgICAgICBMTEwgOiAnRCBNTU1NIFlZWVkgSEg6bW0nLFxuICAgICAgICAgICAgTExMTCA6ICdkZGRk2IwgRCBNTU1NIFlZWVkgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/Ytdio2K182LTYp9mFLyxcbiAgICAgICAgaXNQTSA6IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuICfYtNin2YUnID09PSBpbnB1dDtcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfYtdio2K0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICfYtNin2YUnO1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW9ii2Kwg2KjZiNmC2KpdIExUJyxcbiAgICAgICAgICAgIG5leHREYXkgOiAnW9qp2YQg2KjZiNmC2KpdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW9io2YjZgtiqXSBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1var9iw2LTYqtuBINix2YjYsiDYqNmI2YLYql0gTFQnLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW9qv2LDYtNiq24FdIGRkZGQgW9io2YjZgtiqXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnJXMg2KjYudivJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXMg2YLYqNmEJyxcbiAgICAgICAgICAgIHMgOiAn2obZhtivINiz24zaqdmG2ognLFxuICAgICAgICAgICAgc3MgOiAnJWQg2LPbjNqp2YbaiCcsXG4gICAgICAgICAgICBtIDogJ9in24zaqSDZhdmG2bknLFxuICAgICAgICAgICAgbW0gOiAnJWQg2YXZhtm5JyxcbiAgICAgICAgICAgIGggOiAn2KfbjNqpINqv2r7Zhtm524EnLFxuICAgICAgICAgICAgaGggOiAnJWQg2q/avtmG2bnbkicsXG4gICAgICAgICAgICBkIDogJ9in24zaqSDYr9mGJyxcbiAgICAgICAgICAgIGRkIDogJyVkINiv2YYnLFxuICAgICAgICAgICAgTSA6ICfYp9uM2qkg2YXYp9uBJyxcbiAgICAgICAgICAgIE1NIDogJyVkINmF2KfbgScsXG4gICAgICAgICAgICB5IDogJ9in24zaqSDYs9in2YQnLFxuICAgICAgICAgICAgeXkgOiAnJWQg2LPYp9mEJ1xuICAgICAgICB9LFxuICAgICAgICBwcmVwYXJzZTogZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC/YjC9nLCAnLCcpO1xuICAgICAgICB9LFxuICAgICAgICBwb3N0Zm9ybWF0OiBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoLywvZywgJ9iMJyk7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVyO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgdXpMYXRuID0gbW9tZW50LmRlZmluZUxvY2FsZSgndXotbGF0bicsIHtcbiAgICAgICAgbW9udGhzIDogJ1lhbnZhcl9GZXZyYWxfTWFydF9BcHJlbF9NYXlfSXl1bl9JeXVsX0F2Z3VzdF9TZW50YWJyX09rdGFicl9Ob3lhYnJfRGVrYWJyJy5zcGxpdCgnXycpLFxuICAgICAgICBtb250aHNTaG9ydCA6ICdZYW5fRmV2X01hcl9BcHJfTWF5X0l5dW5fSXl1bF9BdmdfU2VuX09rdF9Ob3lfRGVrJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICdZYWtzaGFuYmFfRHVzaGFuYmFfU2VzaGFuYmFfQ2hvcnNoYW5iYV9QYXlzaGFuYmFfSnVtYV9TaGFuYmEnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnWWFrX0R1c2hfU2VzaF9DaG9yX1BheV9KdW1fU2hhbicuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnWWFfRHVfU2VfQ2hvX1BhX0p1X1NoYScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ0QgTU1NTSBZWVlZLCBkZGRkIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW0J1Z3VuIHNvYXRdIExUIFtkYV0nLFxuICAgICAgICAgICAgbmV4dERheSA6ICdbRXJ0YWdhXSBMVCBbZGFdJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW2t1bmkgc29hdF0gTFQgW2RhXScsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1tLZWNoYSBzb2F0XSBMVCBbZGFdJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1tPXFwndGdhbl0gZGRkZCBba3VuaSBzb2F0XSBMVCBbZGFdJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICdZYXFpbiAlcyBpY2hpZGEnLFxuICAgICAgICAgICAgcGFzdCA6ICdCaXIgbmVjaGEgJXMgb2xkaW4nLFxuICAgICAgICAgICAgcyA6ICdzb25peWEnLFxuICAgICAgICAgICAgc3MgOiAnJWQgc29uaXlhJyxcbiAgICAgICAgICAgIG0gOiAnYmlyIGRhcWlxYScsXG4gICAgICAgICAgICBtbSA6ICclZCBkYXFpcWEnLFxuICAgICAgICAgICAgaCA6ICdiaXIgc29hdCcsXG4gICAgICAgICAgICBoaCA6ICclZCBzb2F0JyxcbiAgICAgICAgICAgIGQgOiAnYmlyIGt1bicsXG4gICAgICAgICAgICBkZCA6ICclZCBrdW4nLFxuICAgICAgICAgICAgTSA6ICdiaXIgb3knLFxuICAgICAgICAgICAgTU0gOiAnJWQgb3knLFxuICAgICAgICAgICAgeSA6ICdiaXIgeWlsJyxcbiAgICAgICAgICAgIHl5IDogJyVkIHlpbCdcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNyAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gN3RoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdXpMYXRuO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgdXogPSBtb21lbnQuZGVmaW5lTG9jYWxlKCd1eicsIHtcbiAgICAgICAgbW9udGhzIDogJ9GP0L3QstCw0YBf0YTQtdCy0YDQsNC7X9C80LDRgNGCX9Cw0L/RgNC10Ltf0LzQsNC5X9C40Y7QvV/QuNGO0Ltf0LDQstCz0YPRgdGCX9GB0LXQvdGC0Y/QsdGAX9C+0LrRgtGP0LHRgF/QvdC+0Y/QsdGAX9C00LXQutCw0LHRgCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAn0Y/QvdCyX9GE0LXQsl/QvNCw0YBf0LDQv9GAX9C80LDQuV/QuNGO0L1f0LjRjtC7X9Cw0LLQs1/RgdC10L1f0L7QutGCX9C90L7Rj1/QtNC10LonLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ9Cv0LrRiNCw0L3QsdCwX9CU0YPRiNCw0L3QsdCwX9Ch0LXRiNCw0L3QsdCwX9Cn0L7RgNGI0LDQvdCx0LBf0J/QsNC50YjQsNC90LHQsF/QltGD0LzQsF/QqNCw0L3QsdCwJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ9Cv0LrRiF/QlNGD0Yhf0KHQtdGIX9Cn0L7RgF/Qn9Cw0Llf0JbRg9C8X9Co0LDQvScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAn0K/Qul/QlNGDX9Ch0LVf0KfQvl/Qn9CwX9CW0YNf0KjQsCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ0QgTU1NTSBZWVlZLCBkZGRkIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW9CR0YPQs9GD0L0g0YHQvtCw0YJdIExUIFvQtNCwXScsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vQrdGA0YLQsNCz0LBdIExUIFvQtNCwXScsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFvQutGD0L3QuCDRgdC+0LDRgl0gTFQgW9C00LBdJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW9Ca0LXRh9CwINGB0L7QsNGCXSBMVCBb0LTQsF0nLFxuICAgICAgICAgICAgbGFzdFdlZWsgOiAnW9Cj0YLQs9Cw0L1dIGRkZGQgW9C60YPQvdC4INGB0L7QsNGCXSBMVCBb0LTQsF0nLFxuICAgICAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJ9Cv0LrQuNC9ICVzINC40YfQuNC00LAnLFxuICAgICAgICAgICAgcGFzdCA6ICfQkdC40YAg0L3QtdGH0LAgJXMg0L7Qu9C00LjQvScsXG4gICAgICAgICAgICBzIDogJ9GE0YPRgNGB0LDRgicsXG4gICAgICAgICAgICBzcyA6ICclZCDRhNGD0YDRgdCw0YInLFxuICAgICAgICAgICAgbSA6ICfQsdC40YAg0LTQsNC60LjQutCwJyxcbiAgICAgICAgICAgIG1tIDogJyVkINC00LDQutC40LrQsCcsXG4gICAgICAgICAgICBoIDogJ9Cx0LjRgCDRgdC+0LDRgicsXG4gICAgICAgICAgICBoaCA6ICclZCDRgdC+0LDRgicsXG4gICAgICAgICAgICBkIDogJ9Cx0LjRgCDQutGD0L0nLFxuICAgICAgICAgICAgZGQgOiAnJWQg0LrRg9C9JyxcbiAgICAgICAgICAgIE0gOiAn0LHQuNGAINC+0LknLFxuICAgICAgICAgICAgTU0gOiAnJWQg0L7QuScsXG4gICAgICAgICAgICB5IDogJ9Cx0LjRgCDQudC40LsnLFxuICAgICAgICAgICAgeXkgOiAnJWQg0LnQuNC7J1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA3ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB1ejtcblxufSkpKTtcbiIsIi8vISBtb21lbnQuanMgbG9jYWxlIGNvbmZpZ3VyYXRpb25cblxuOyhmdW5jdGlvbiAoZ2xvYmFsLCBmYWN0b3J5KSB7XG4gICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gJ2Z1bmN0aW9uJyA/IGZhY3RvcnkocmVxdWlyZSgnLi4vbW9tZW50JykpIDpcbiAgIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbJy4uL21vbWVudCddLCBmYWN0b3J5KSA6XG4gICBmYWN0b3J5KGdsb2JhbC5tb21lbnQpXG59KHRoaXMsIChmdW5jdGlvbiAobW9tZW50KSB7ICd1c2Ugc3RyaWN0JztcblxuXG4gICAgdmFyIHZpID0gbW9tZW50LmRlZmluZUxvY2FsZSgndmknLCB7XG4gICAgICAgIG1vbnRocyA6ICd0aMOhbmcgMV90aMOhbmcgMl90aMOhbmcgM190aMOhbmcgNF90aMOhbmcgNV90aMOhbmcgNl90aMOhbmcgN190aMOhbmcgOF90aMOhbmcgOV90aMOhbmcgMTBfdGjDoW5nIDExX3Row6FuZyAxMicuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnVGgwMV9UaDAyX1RoMDNfVGgwNF9UaDA1X1RoMDZfVGgwN19UaDA4X1RoMDlfVGgxMF9UaDExX1RoMTInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICB3ZWVrZGF5cyA6ICdjaOG7pyBuaOG6rXRfdGjhu6kgaGFpX3Ro4bupIGJhX3Ro4bupIHTGsF90aOG7qSBuxINtX3Ro4bupIHPDoXVfdGjhu6kgYuG6o3knLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAnQ05fVDJfVDNfVDRfVDVfVDZfVDcnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ0NOX1QyX1QzX1Q0X1Q1X1Q2X1Q3Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICBtZXJpZGllbVBhcnNlOiAvc2F8Y2gvaSxcbiAgICAgICAgaXNQTSA6IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIC9eY2gkL2kudGVzdChpbnB1dCk7XG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtIDogZnVuY3Rpb24gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICBpZiAoaG91cnMgPCAxMikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ3NhJyA6ICdTQSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ2NoJyA6ICdDSCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICBMTCA6ICdEIE1NTU0gW27Eg21dIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBbbsSDbV0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBbbsSDbV0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBsIDogJ0REL00vWVlZWScsXG4gICAgICAgICAgICBsbCA6ICdEIE1NTSBZWVlZJyxcbiAgICAgICAgICAgIGxsbCA6ICdEIE1NTSBZWVlZIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGwgOiAnZGRkLCBEIE1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXk6ICdbSMO0bSBuYXkgbMO6Y10gTFQnLFxuICAgICAgICAgICAgbmV4dERheTogJ1tOZ8OgeSBtYWkgbMO6Y10gTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWs6ICdkZGRkIFt0deG6p24gdOG7m2kgbMO6Y10gTFQnLFxuICAgICAgICAgICAgbGFzdERheTogJ1tIw7RtIHF1YSBsw7pjXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlazogJ2RkZGQgW3R14bqnbiBy4buTaSBsw7pjXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZTogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICclcyB04bubaScsXG4gICAgICAgICAgICBwYXN0IDogJyVzIHRyxrDhu5tjJyxcbiAgICAgICAgICAgIHMgOiAndsOgaSBnacOieScsXG4gICAgICAgICAgICBzcyA6ICclZCBnacOieScgLFxuICAgICAgICAgICAgbSA6ICdt4buZdCBwaMO6dCcsXG4gICAgICAgICAgICBtbSA6ICclZCBwaMO6dCcsXG4gICAgICAgICAgICBoIDogJ23hu5l0IGdp4budJyxcbiAgICAgICAgICAgIGhoIDogJyVkIGdp4budJyxcbiAgICAgICAgICAgIGQgOiAnbeG7mXQgbmfDoHknLFxuICAgICAgICAgICAgZGQgOiAnJWQgbmfDoHknLFxuICAgICAgICAgICAgTSA6ICdt4buZdCB0aMOhbmcnLFxuICAgICAgICAgICAgTU0gOiAnJWQgdGjDoW5nJyxcbiAgICAgICAgICAgIHkgOiAnbeG7mXQgbsSDbScsXG4gICAgICAgICAgICB5eSA6ICclZCBuxINtJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0vLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgfSxcbiAgICAgICAgd2VlayA6IHtcbiAgICAgICAgICAgIGRvdyA6IDEsIC8vIE1vbmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICAgICAgZG95IDogNCAgLy8gVGhlIHdlZWsgdGhhdCBjb250YWlucyBKYW4gNHRoIGlzIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSB5ZWFyLlxuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmk7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciB4UHNldWRvID0gbW9tZW50LmRlZmluZUxvY2FsZSgneC1wc2V1ZG8nLCB7XG4gICAgICAgIG1vbnRocyA6ICdKfsOhw7HDusOhfnLDvV9GfsOpYnLDun7DoXLDvV9+TcOhcmN+aF/DgXB+csOtbF9+TcOhw71ffkrDusOxw6l+X0rDumx+w71fw4HDun5nw7pzdH5fU8OpcH50w6ltYn7DqXJfw5N+Y3TDs2J+w6lyX8ORfsOzdsOpbX5iw6lyX35Ew6ljw6l+bWLDqXInLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ0p+w6HDsV9+RsOpYl9+TcOhcl9+w4Fwcl9+TcOhw71ffkrDusOxX35Kw7psX37DgcO6Z19+U8OpcF9+w5NjdF9+w5HDs3ZffkTDqWMnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1BhcnNlRXhhY3QgOiB0cnVlLFxuICAgICAgICB3ZWVrZGF5cyA6ICdTfsO6w7Fkw6F+w71fTcOzfsOxZMOhw71+X1TDusOpfnNkw6HDvX5fV8OpZH7DscOpc2R+w6HDvV9UfmjDunJzfmTDocO9X35GcsOtZH7DocO9X1N+w6F0w7pyfmTDocO9Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ1N+w7rDsV9+TcOzw7FfflTDusOpX35Xw6lkX35UaMO6X35GcsOtX35Tw6F0Jy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICdTfsO6X03Ds35fVMO6X35Xw6lfVH5oX0Zyfl9Tw6EnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzUGFyc2VFeGFjdCA6IHRydWUsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTCA6ICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgIExMIDogJ0QgTU1NTSBZWVlZJyxcbiAgICAgICAgICAgIExMTCA6ICdEIE1NTU0gWVlZWSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZIEhIOm1tJ1xuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW1R+w7Nkw6F+w70gw6F0XSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1tUfsOzbcOzfnJyw7N+dyDDoXRdIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW8OhdF0gTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdbw51+w6lzdH7DqXJkw6F+w70gw6F0XSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdbTH7DoXN0XSBkZGRkIFvDoXRdIExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICfDrX7DsSAlcycsXG4gICAgICAgICAgICBwYXN0IDogJyVzIMOhfmfDsycsXG4gICAgICAgICAgICBzIDogJ8OhIH5mw6l3IH5zw6ljw7N+w7FkcycsXG4gICAgICAgICAgICBzcyA6ICclZCBzfsOpY8Ozw7F+ZHMnLFxuICAgICAgICAgICAgbSA6ICfDoSB+bcOtw7F+w7p0w6knLFxuICAgICAgICAgICAgbW0gOiAnJWQgbX7DrcOxw7p+dMOpcycsXG4gICAgICAgICAgICBoIDogJ8OhfsOxIGjDs37DunInLFxuICAgICAgICAgICAgaGggOiAnJWQgaH7Ds8O6cnMnLFxuICAgICAgICAgICAgZCA6ICfDoSB+ZMOhw70nLFxuICAgICAgICAgICAgZGQgOiAnJWQgZH7DocO9cycsXG4gICAgICAgICAgICBNIDogJ8OhIH5tw7PDsX50aCcsXG4gICAgICAgICAgICBNTSA6ICclZCBtfsOzw7F0fmhzJyxcbiAgICAgICAgICAgIHkgOiAnw6EgfsO9w6nDoXInLFxuICAgICAgICAgICAgeXkgOiAnJWQgw71+w6nDoXJzJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0odGh8c3R8bmR8cmQpLyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gKH5+KG51bWJlciAlIDEwMCAvIDEwKSA9PT0gMSkgPyAndGgnIDpcbiAgICAgICAgICAgICAgICAoYiA9PT0gMSkgPyAnc3QnIDpcbiAgICAgICAgICAgICAgICAoYiA9PT0gMikgPyAnbmQnIDpcbiAgICAgICAgICAgICAgICAoYiA9PT0gMykgPyAncmQnIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH0sXG4gICAgICAgIHdlZWsgOiB7XG4gICAgICAgICAgICBkb3cgOiAxLCAvLyBNb25kYXkgaXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgICAgICAgIGRveSA6IDQgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHhQc2V1ZG87XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciB5byA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3lvJywge1xuICAgICAgICBtb250aHMgOiAnU+G6ucyBcuG6ucyBX0XMgHJlzIBsZcyAX+G6uHLhurnMgG5hzIBfScyAZ2JlzIFfRcyAYmliaV9PzIBrdcyAZHVfQWfhurltb19PzIBndcyBbl9Pd2V3ZV/hu4zMgHdhzIByYcyAX0JlzIFsdcyBX+G7jMyAcOG6ucyAzIAnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJ1PhurnMgXJfRcyAcmxf4bq4cm5fScyAZ2JfRcyAYmlfT8yAa3XMgF9BZ+G6uV9PzIBndcyBX093ZV/hu4zMgHdhzIBfQmXMgWxf4buMzIBw4bq5zIDMgCcuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXMgOiAnQcyAacyAa3XMgV9BamXMgV9JzIBz4bq5zIFndW5f4buMauG7jcyBcnXMgV/hu4xq4buNzIFi4buNX+G6uHRpzIBfQcyAYmHMgW3hurnMgXRhJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0IDogJ0HMgGnMgGtfQWplzIFfScyAc+G6ucyBX+G7jGpyX+G7jGpiX+G6uHRpzIBfQcyAYmHMgScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNNaW4gOiAnQcyAacyAX0FqX0nMgHNf4buMcl/hu4xiX+G6uHRfQcyAYicuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdoOm1tIEEnLFxuICAgICAgICAgICAgTFRTIDogJ2g6bW06c3MgQScsXG4gICAgICAgICAgICBMIDogJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgTEwgOiAnRCBNTU1NIFlZWVknLFxuICAgICAgICAgICAgTExMIDogJ0QgTU1NTSBZWVlZIGg6bW0gQScsXG4gICAgICAgICAgICBMTExMIDogJ2RkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQSdcbiAgICAgICAgfSxcbiAgICAgICAgY2FsZW5kYXIgOiB7XG4gICAgICAgICAgICBzYW1lRGF5IDogJ1tPzIBuacyAIG5pXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vhu4zMgGxhIG5pXSBMVCcsXG4gICAgICAgICAgICBuZXh0V2VlayA6ICdkZGRkIFvhu4xz4bq5zIAgdG/MgW5cXCdi4buNXSBbbmldIExUJyxcbiAgICAgICAgICAgIGxhc3REYXkgOiAnW0HMgG5hIG5pXSBMVCcsXG4gICAgICAgICAgICBsYXN0V2VlayA6ICdkZGRkIFvhu4xz4bq5zIAgdG/MgWzhu43MgV0gW25pXSBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnbmnMgSAlcycsXG4gICAgICAgICAgICBwYXN0IDogJyVzIGvhu41qYcyBJyxcbiAgICAgICAgICAgIHMgOiAnacyAc+G6uWp1zIEgYWF5YcyBIGRpZScsXG4gICAgICAgICAgICBzcyA6J2FheWHMgSAlZCcsXG4gICAgICAgICAgICBtIDogJ2nMgHPhurlqdcyBIGthbicsXG4gICAgICAgICAgICBtbSA6ICdpzIBz4bq5anXMgSAlZCcsXG4gICAgICAgICAgICBoIDogJ3dhzIFrYXRpIGthbicsXG4gICAgICAgICAgICBoaCA6ICd3YcyBa2F0aSAlZCcsXG4gICAgICAgICAgICBkIDogJ+G7jWrhu43MgSBrYW4nLFxuICAgICAgICAgICAgZGQgOiAn4buNauG7jcyBICVkJyxcbiAgICAgICAgICAgIE0gOiAnb3N1zIAga2FuJyxcbiAgICAgICAgICAgIE1NIDogJ29zdcyAICVkJyxcbiAgICAgICAgICAgIHkgOiAn4buNZHXMgW4ga2FuJyxcbiAgICAgICAgICAgIHl5IDogJ+G7jWR1zIFuICVkJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlIDogL+G7jWrhu43MgVxcc1xcZHsxLDJ9LyxcbiAgICAgICAgb3JkaW5hbCA6ICfhu41q4buNzIEgJWQnLFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0IC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDR0aCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHlvO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgemhDbiA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3poLWNuJywge1xuICAgICAgICBtb250aHMgOiAn5LiA5pyIX+S6jOaciF/kuInmnIhf5Zub5pyIX+S6lOaciF/lha3mnIhf5LiD5pyIX+WFq+aciF/kuZ3mnIhf5Y2B5pyIX+WNgeS4gOaciF/ljYHkuozmnIgnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJzHmnIhfMuaciF8z5pyIXzTmnIhfNeaciF825pyIXzfmnIhfOOaciF855pyIXzEw5pyIXzEx5pyIXzEy5pyIJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICfmmJ/mnJ/ml6Vf5pif5pyf5LiAX+aYn+acn+S6jF/mmJ/mnJ/kuIlf5pif5pyf5ZubX+aYn+acn+S6lF/mmJ/mnJ/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn5ZGo5pelX+WRqOS4gF/lkajkuoxf5ZGo5LiJX+WRqOWbm1/lkajkupRf5ZGo5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfml6Vf5LiAX+S6jF/kuIlf5ZubX+S6lF/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnWVlZWS9NTS9ERCcsXG4gICAgICAgICAgICBMTCA6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgTExMIDogJ1lZWVnlubRN5pyIROaXpUFo54K5bW3liIYnLFxuICAgICAgICAgICAgTExMTCA6ICdZWVlZ5bm0TeaciETml6VkZGRkQWjngrltbeWIhicsXG4gICAgICAgICAgICBsIDogJ1lZWVkvTS9EJyxcbiAgICAgICAgICAgIGxsIDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBsbGwgOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGwgOiAnWVlZWeW5tE3mnIhE5pelZGRkZCBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+WHjOaZqHzml6nkuIp85LiK5Y2IfOS4reWNiHzkuIvljYh85pma5LiKLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyOiBmdW5jdGlvbiAoaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1lcmlkaWVtID09PSAn5YeM5pmoJyB8fCBtZXJpZGllbSA9PT0gJ+aXqeS4iicgfHxcbiAgICAgICAgICAgICAgICAgICAgbWVyaWRpZW0gPT09ICfkuIrljYgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn5LiL5Y2IJyB8fCBtZXJpZGllbSA9PT0gJ+aZmuS4iicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyAn5Lit5Y2IJ1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyID49IDExID8gaG91ciA6IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICB2YXIgaG0gPSBob3VyICogMTAwICsgbWludXRlO1xuICAgICAgICAgICAgaWYgKGhtIDwgNjAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICflh4zmmagnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDkwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5pep5LiKJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMTMwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIrljYgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDEyMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4reWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTgwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5LiL5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfmmZrkuIonO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW+S7iuWkqV1MVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vmmI7lpKldTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnW+S4i11kZGRkTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdb5pio5aSpXUxUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1vkuIpdZGRkZExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSjml6V85pyIfOWRqCkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pelJztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfmnIgnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3cnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+WRqCc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVsYXRpdmVUaW1lIDoge1xuICAgICAgICAgICAgZnV0dXJlIDogJyVz5YaFJyxcbiAgICAgICAgICAgIHBhc3QgOiAnJXPliY0nLFxuICAgICAgICAgICAgcyA6ICflh6Dnp5InLFxuICAgICAgICAgICAgc3MgOiAnJWQg56eSJyxcbiAgICAgICAgICAgIG0gOiAnMSDliIbpkp8nLFxuICAgICAgICAgICAgbW0gOiAnJWQg5YiG6ZKfJyxcbiAgICAgICAgICAgIGggOiAnMSDlsI/ml7YnLFxuICAgICAgICAgICAgaGggOiAnJWQg5bCP5pe2JyxcbiAgICAgICAgICAgIGQgOiAnMSDlpKknLFxuICAgICAgICAgICAgZGQgOiAnJWQg5aSpJyxcbiAgICAgICAgICAgIE0gOiAnMSDkuKrmnIgnLFxuICAgICAgICAgICAgTU0gOiAnJWQg5Liq5pyIJyxcbiAgICAgICAgICAgIHkgOiAnMSDlubQnLFxuICAgICAgICAgICAgeXkgOiAnJWQg5bm0J1xuICAgICAgICB9LFxuICAgICAgICB3ZWVrIDoge1xuICAgICAgICAgICAgLy8gR0IvVCA3NDA4LTE5OTTjgIrmlbDmja7lhYPlkozkuqTmjaLmoLzlvI/Ct+S/oeaBr+S6pOaNosK35pel5pyf5ZKM5pe26Ze06KGo56S65rOV44CL5LiOSVNPIDg2MDE6MTk4OOetieaViFxuICAgICAgICAgICAgZG93IDogMSwgLy8gTW9uZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgICAgICBkb3kgOiA0ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA0dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB6aENuO1xuXG59KSkpO1xuIiwiLy8hIG1vbWVudC5qcyBsb2NhbGUgY29uZmlndXJhdGlvblxuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICYmIHR5cGVvZiByZXF1aXJlID09PSAnZnVuY3Rpb24nID8gZmFjdG9yeShyZXF1aXJlKCcuLi9tb21lbnQnKSkgOlxuICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKFsnLi4vbW9tZW50J10sIGZhY3RvcnkpIDpcbiAgIGZhY3RvcnkoZ2xvYmFsLm1vbWVudClcbn0odGhpcywgKGZ1bmN0aW9uIChtb21lbnQpIHsgJ3VzZSBzdHJpY3QnO1xuXG5cbiAgICB2YXIgemhIayA9IG1vbWVudC5kZWZpbmVMb2NhbGUoJ3poLWhrJywge1xuICAgICAgICBtb250aHMgOiAn5LiA5pyIX+S6jOaciF/kuInmnIhf5Zub5pyIX+S6lOaciF/lha3mnIhf5LiD5pyIX+WFq+aciF/kuZ3mnIhf5Y2B5pyIX+WNgeS4gOaciF/ljYHkuozmnIgnLnNwbGl0KCdfJyksXG4gICAgICAgIG1vbnRoc1Nob3J0IDogJzHmnIhfMuaciF8z5pyIXzTmnIhfNeaciF825pyIXzfmnIhfOOaciF855pyIXzEw5pyIXzEx5pyIXzEy5pyIJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5cyA6ICfmmJ/mnJ/ml6Vf5pif5pyf5LiAX+aYn+acn+S6jF/mmJ/mnJ/kuIlf5pif5pyf5ZubX+aYn+acn+S6lF/mmJ/mnJ/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzU2hvcnQgOiAn6YCx5pelX+mAseS4gF/pgLHkuoxf6YCx5LiJX+mAseWbm1/pgLHkupRf6YCx5YWtJy5zcGxpdCgnXycpLFxuICAgICAgICB3ZWVrZGF5c01pbiA6ICfml6Vf5LiAX+S6jF/kuIlf5ZubX+S6lF/lha0nLnNwbGl0KCdfJyksXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0IDoge1xuICAgICAgICAgICAgTFQgOiAnSEg6bW0nLFxuICAgICAgICAgICAgTFRTIDogJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgIEwgOiAnWVlZWS9NTS9ERCcsXG4gICAgICAgICAgICBMTCA6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgTExMIDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBMTExMIDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nLFxuICAgICAgICAgICAgbCA6ICdZWVlZL00vRCcsXG4gICAgICAgICAgICBsbCA6ICdZWVlZ5bm0TeaciETml6UnLFxuICAgICAgICAgICAgbGxsIDogJ1lZWVnlubRN5pyIROaXpSBISDptbScsXG4gICAgICAgICAgICBsbGxsIDogJ1lZWVnlubRN5pyIROaXpWRkZGQgSEg6bW0nXG4gICAgICAgIH0sXG4gICAgICAgIG1lcmlkaWVtUGFyc2U6IC/lh4zmmah85pep5LiKfOS4iuWNiHzkuK3ljYh85LiL5Y2IfOaZmuS4ii8sXG4gICAgICAgIG1lcmlkaWVtSG91ciA6IGZ1bmN0aW9uIChob3VyLCBtZXJpZGllbSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWVyaWRpZW0gPT09ICflh4zmmagnIHx8IG1lcmlkaWVtID09PSAn5pep5LiKJyB8fCBtZXJpZGllbSA9PT0gJ+S4iuWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVyaWRpZW0gPT09ICfkuK3ljYgnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgPj0gMTEgPyBob3VyIDogaG91ciArIDEyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+S4i+WNiCcgfHwgbWVyaWRpZW0gPT09ICfmmZrkuIonKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW0gOiBmdW5jdGlvbiAoaG91ciwgbWludXRlLCBpc0xvd2VyKSB7XG4gICAgICAgICAgICB2YXIgaG0gPSBob3VyICogMTAwICsgbWludXRlO1xuICAgICAgICAgICAgaWYgKGhtIDwgNjAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICflh4zmmagnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDkwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5pep5LiKJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxMTMwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIrljYgnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDEyMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4reWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTgwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5LiL5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfmmZrkuIonO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjYWxlbmRhciA6IHtcbiAgICAgICAgICAgIHNhbWVEYXkgOiAnW+S7iuWkqV1MVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vmmI7lpKldTFQnLFxuICAgICAgICAgICAgbmV4dFdlZWsgOiAnW+S4i11kZGRkTFQnLFxuICAgICAgICAgICAgbGFzdERheSA6ICdb5pio5aSpXUxUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1vkuIpdZGRkZExUJyxcbiAgICAgICAgICAgIHNhbWVFbHNlIDogJ0wnXG4gICAgICAgIH0sXG4gICAgICAgIGRheU9mTW9udGhPcmRpbmFsUGFyc2U6IC9cXGR7MSwyfSjml6V85pyIfOmAsSkvLFxuICAgICAgICBvcmRpbmFsIDogZnVuY3Rpb24gKG51bWJlciwgcGVyaW9kKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHBlcmlvZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2QnIDpcbiAgICAgICAgICAgICAgICBjYXNlICdEJyA6XG4gICAgICAgICAgICAgICAgY2FzZSAnREREJyA6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pelJztcbiAgICAgICAgICAgICAgICBjYXNlICdNJyA6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyAn5pyIJztcbiAgICAgICAgICAgICAgICBjYXNlICd3JyA6XG4gICAgICAgICAgICAgICAgY2FzZSAnVycgOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+mAsSc7XG4gICAgICAgICAgICAgICAgZGVmYXVsdCA6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlbGF0aXZlVGltZSA6IHtcbiAgICAgICAgICAgIGZ1dHVyZSA6ICclc+WFpycsXG4gICAgICAgICAgICBwYXN0IDogJyVz5YmNJyxcbiAgICAgICAgICAgIHMgOiAn5bm+56eSJyxcbiAgICAgICAgICAgIHNzIDogJyVkIOenkicsXG4gICAgICAgICAgICBtIDogJzEg5YiG6ZCYJyxcbiAgICAgICAgICAgIG1tIDogJyVkIOWIhumQmCcsXG4gICAgICAgICAgICBoIDogJzEg5bCP5pmCJyxcbiAgICAgICAgICAgIGhoIDogJyVkIOWwj+aZgicsXG4gICAgICAgICAgICBkIDogJzEg5aSpJyxcbiAgICAgICAgICAgIGRkIDogJyVkIOWkqScsXG4gICAgICAgICAgICBNIDogJzEg5YCL5pyIJyxcbiAgICAgICAgICAgIE1NIDogJyVkIOWAi+aciCcsXG4gICAgICAgICAgICB5IDogJzEg5bm0JyxcbiAgICAgICAgICAgIHl5IDogJyVkIOW5tCdcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHpoSGs7XG5cbn0pKSk7XG4iLCIvLyEgbW9tZW50LmpzIGxvY2FsZSBjb25maWd1cmF0aW9uXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicgPyBmYWN0b3J5KHJlcXVpcmUoJy4uL21vbWVudCcpKSA6XG4gICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoWycuLi9tb21lbnQnXSwgZmFjdG9yeSkgOlxuICAgZmFjdG9yeShnbG9iYWwubW9tZW50KVxufSh0aGlzLCAoZnVuY3Rpb24gKG1vbWVudCkgeyAndXNlIHN0cmljdCc7XG5cblxuICAgIHZhciB6aFR3ID0gbW9tZW50LmRlZmluZUxvY2FsZSgnemgtdHcnLCB7XG4gICAgICAgIG1vbnRocyA6ICfkuIDmnIhf5LqM5pyIX+S4ieaciF/lm5vmnIhf5LqU5pyIX+WFreaciF/kuIPmnIhf5YWr5pyIX+S5neaciF/ljYHmnIhf5Y2B5LiA5pyIX+WNgeS6jOaciCcuc3BsaXQoJ18nKSxcbiAgICAgICAgbW9udGhzU2hvcnQgOiAnMeaciF8y5pyIXzPmnIhfNOaciF815pyIXzbmnIhfN+aciF845pyIXznmnIhfMTDmnIhfMTHmnIhfMTLmnIgnLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzIDogJ+aYn+acn+aXpV/mmJ/mnJ/kuIBf5pif5pyf5LqMX+aYn+acn+S4iV/mmJ/mnJ/lm5tf5pif5pyf5LqUX+aYn+acn+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgd2Vla2RheXNTaG9ydCA6ICfpgLHml6Vf6YCx5LiAX+mAseS6jF/pgLHkuIlf6YCx5ZubX+mAseS6lF/pgLHlha0nLnNwbGl0KCdfJyksXG4gICAgICAgIHdlZWtkYXlzTWluIDogJ+aXpV/kuIBf5LqMX+S4iV/lm5tf5LqUX+WFrScuc3BsaXQoJ18nKSxcbiAgICAgICAgbG9uZ0RhdGVGb3JtYXQgOiB7XG4gICAgICAgICAgICBMVCA6ICdISDptbScsXG4gICAgICAgICAgICBMVFMgOiAnSEg6bW06c3MnLFxuICAgICAgICAgICAgTCA6ICdZWVlZL01NL0REJyxcbiAgICAgICAgICAgIExMIDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBMTEwgOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIExMTEwgOiAnWVlZWeW5tE3mnIhE5pelZGRkZCBISDptbScsXG4gICAgICAgICAgICBsIDogJ1lZWVkvTS9EJyxcbiAgICAgICAgICAgIGxsIDogJ1lZWVnlubRN5pyIROaXpScsXG4gICAgICAgICAgICBsbGwgOiAnWVlZWeW5tE3mnIhE5pelIEhIOm1tJyxcbiAgICAgICAgICAgIGxsbGwgOiAnWVlZWeW5tE3mnIhE5pelZGRkZCBISDptbSdcbiAgICAgICAgfSxcbiAgICAgICAgbWVyaWRpZW1QYXJzZTogL+WHjOaZqHzml6nkuIp85LiK5Y2IfOS4reWNiHzkuIvljYh85pma5LiKLyxcbiAgICAgICAgbWVyaWRpZW1Ib3VyIDogZnVuY3Rpb24gKGhvdXIsIG1lcmlkaWVtKSB7XG4gICAgICAgICAgICBpZiAoaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGllbSA9PT0gJ+WHjOaZqCcgfHwgbWVyaWRpZW0gPT09ICfml6nkuIonIHx8IG1lcmlkaWVtID09PSAn5LiK5Y2IJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXJpZGllbSA9PT0gJ+S4reWNiCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciA+PSAxMSA/IGhvdXIgOiBob3VyICsgMTI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lcmlkaWVtID09PSAn5LiL5Y2IJyB8fCBtZXJpZGllbSA9PT0gJ+aZmuS4iicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaG91ciArIDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtZXJpZGllbSA6IGZ1bmN0aW9uIChob3VyLCBtaW51dGUsIGlzTG93ZXIpIHtcbiAgICAgICAgICAgIHZhciBobSA9IGhvdXIgKiAxMDAgKyBtaW51dGU7XG4gICAgICAgICAgICBpZiAoaG0gPCA2MDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+WHjOaZqCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgOTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfml6nkuIonO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChobSA8IDExMzApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+S4iuWNiCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhtIDwgMTIzMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAn5Lit5Y2IJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaG0gPCAxODAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICfkuIvljYgnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ+aZmuS4iic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNhbGVuZGFyIDoge1xuICAgICAgICAgICAgc2FtZURheSA6ICdb5LuK5aSpXSBMVCcsXG4gICAgICAgICAgICBuZXh0RGF5IDogJ1vmmI7lpKldIExUJyxcbiAgICAgICAgICAgIG5leHRXZWVrIDogJ1vkuItdZGRkZCBMVCcsXG4gICAgICAgICAgICBsYXN0RGF5IDogJ1vmmKjlpKldIExUJyxcbiAgICAgICAgICAgIGxhc3RXZWVrIDogJ1vkuIpdZGRkZCBMVCcsXG4gICAgICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgICAgICB9LFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0o5pelfOaciHzpgLEpLyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIsIHBlcmlvZCkge1xuICAgICAgICAgICAgc3dpdGNoIChwZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJyA6XG4gICAgICAgICAgICAgICAgY2FzZSAnRCcgOlxuICAgICAgICAgICAgICAgIGNhc2UgJ0RERCcgOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aXpSc7XG4gICAgICAgICAgICAgICAgY2FzZSAnTScgOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgJ+aciCc7XG4gICAgICAgICAgICAgICAgY2FzZSAndycgOlxuICAgICAgICAgICAgICAgIGNhc2UgJ1cnIDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlciArICfpgLEnO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQgOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZWxhdGl2ZVRpbWUgOiB7XG4gICAgICAgICAgICBmdXR1cmUgOiAnJXPlhacnLFxuICAgICAgICAgICAgcGFzdCA6ICclc+WJjScsXG4gICAgICAgICAgICBzIDogJ+W5vuenkicsXG4gICAgICAgICAgICBzcyA6ICclZCDnp5InLFxuICAgICAgICAgICAgbSA6ICcxIOWIhumQmCcsXG4gICAgICAgICAgICBtbSA6ICclZCDliIbpkJgnLFxuICAgICAgICAgICAgaCA6ICcxIOWwj+aZgicsXG4gICAgICAgICAgICBoaCA6ICclZCDlsI/mmYInLFxuICAgICAgICAgICAgZCA6ICcxIOWkqScsXG4gICAgICAgICAgICBkZCA6ICclZCDlpKknLFxuICAgICAgICAgICAgTSA6ICcxIOWAi+aciCcsXG4gICAgICAgICAgICBNTSA6ICclZCDlgIvmnIgnLFxuICAgICAgICAgICAgeSA6ICcxIOW5tCcsXG4gICAgICAgICAgICB5eSA6ICclZCDlubQnXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB6aFR3O1xuXG59KSkpO1xuIiwidmFyIG1hcCA9IHtcblx0XCIuL2FmXCI6IDkwMTM3LFxuXHRcIi4vYWYuanNcIjogOTAxMzcsXG5cdFwiLi9hclwiOiA3NTM3OCxcblx0XCIuL2FyLWR6XCI6IDg4NDY0LFxuXHRcIi4vYXItZHouanNcIjogODg0NjQsXG5cdFwiLi9hci1rd1wiOiAyMjQ3Nyxcblx0XCIuL2FyLWt3LmpzXCI6IDIyNDc3LFxuXHRcIi4vYXItbHlcIjogNzk1MDAsXG5cdFwiLi9hci1seS5qc1wiOiA3OTUwMCxcblx0XCIuL2FyLW1hXCI6IDQ5NTQ4LFxuXHRcIi4vYXItbWEuanNcIjogNDk1NDgsXG5cdFwiLi9hci1zYVwiOiA0NTQ2Myxcblx0XCIuL2FyLXNhLmpzXCI6IDQ1NDYzLFxuXHRcIi4vYXItdG5cIjogMzkwNjYsXG5cdFwiLi9hci10bi5qc1wiOiAzOTA2Nixcblx0XCIuL2FyLmpzXCI6IDc1Mzc4LFxuXHRcIi4vYXpcIjogNTE2MzYsXG5cdFwiLi9hei5qc1wiOiA1MTYzNixcblx0XCIuL2JlXCI6IDM5NjA5LFxuXHRcIi4vYmUuanNcIjogMzk2MDksXG5cdFwiLi9iZ1wiOiA2MzA2OSxcblx0XCIuL2JnLmpzXCI6IDYzMDY5LFxuXHRcIi4vYm1cIjogMzU1NTQsXG5cdFwiLi9ibS5qc1wiOiAzNTU1NCxcblx0XCIuL2JuXCI6IDc1MjIxLFxuXHRcIi4vYm4uanNcIjogNzUyMjEsXG5cdFwiLi9ib1wiOiAyOTgzMixcblx0XCIuL2JvLmpzXCI6IDI5ODMyLFxuXHRcIi4vYnJcIjogNjg2ODUsXG5cdFwiLi9ici5qc1wiOiA2ODY4NSxcblx0XCIuL2JzXCI6IDEzMjIsXG5cdFwiLi9icy5qc1wiOiAxMzIyLFxuXHRcIi4vY2FcIjogMjEwODEsXG5cdFwiLi9jYS5qc1wiOiAyMTA4MSxcblx0XCIuL2NzXCI6IDc4OTk4LFxuXHRcIi4vY3MuanNcIjogNzg5OTgsXG5cdFwiLi9jdlwiOiA2MDQ5NCxcblx0XCIuL2N2LmpzXCI6IDYwNDk0LFxuXHRcIi4vY3lcIjogNjYwMzUsXG5cdFwiLi9jeS5qc1wiOiA2NjAzNSxcblx0XCIuL2RhXCI6IDI2MDM2LFxuXHRcIi4vZGEuanNcIjogMjYwMzYsXG5cdFwiLi9kZVwiOiAxMzAzOSxcblx0XCIuL2RlLWF0XCI6IDU3NDUsXG5cdFwiLi9kZS1hdC5qc1wiOiA1NzQ1LFxuXHRcIi4vZGUtY2hcIjogODkwNjEsXG5cdFwiLi9kZS1jaC5qc1wiOiA4OTA2MSxcblx0XCIuL2RlLmpzXCI6IDEzMDM5LFxuXHRcIi4vZHZcIjogNTcwMzYsXG5cdFwiLi9kdi5qc1wiOiA1NzAzNixcblx0XCIuL2VsXCI6IDU1NTUzLFxuXHRcIi4vZWwuanNcIjogNTU1NTMsXG5cdFwiLi9lbi1TR1wiOiA4NTE5Mixcblx0XCIuL2VuLVNHLmpzXCI6IDg1MTkyLFxuXHRcIi4vZW4tYXVcIjogODY2OTUsXG5cdFwiLi9lbi1hdS5qc1wiOiA4NjY5NSxcblx0XCIuL2VuLWNhXCI6IDI0NDkxLFxuXHRcIi4vZW4tY2EuanNcIjogMjQ0OTEsXG5cdFwiLi9lbi1nYlwiOiAzMTcyNCxcblx0XCIuL2VuLWdiLmpzXCI6IDMxNzI0LFxuXHRcIi4vZW4taWVcIjogMjg3OTAsXG5cdFwiLi9lbi1pZS5qc1wiOiAyODc5MCxcblx0XCIuL2VuLWlsXCI6IDE0MTY2LFxuXHRcIi4vZW4taWwuanNcIjogMTQxNjYsXG5cdFwiLi9lbi1uelwiOiA5Njk3MCxcblx0XCIuL2VuLW56LmpzXCI6IDk2OTcwLFxuXHRcIi4vZW9cIjogMTgwNzYsXG5cdFwiLi9lby5qc1wiOiAxODA3Nixcblx0XCIuL2VzXCI6IDI3Nzc3LFxuXHRcIi4vZXMtZG9cIjogMjQ5MDIsXG5cdFwiLi9lcy1kby5qc1wiOiAyNDkwMixcblx0XCIuL2VzLXVzXCI6IDkyOTA1LFxuXHRcIi4vZXMtdXMuanNcIjogOTI5MDUsXG5cdFwiLi9lcy5qc1wiOiAyNzc3Nyxcblx0XCIuL2V0XCI6IDI1MzA5LFxuXHRcIi4vZXQuanNcIjogMjUzMDksXG5cdFwiLi9ldVwiOiAzNjM1NCxcblx0XCIuL2V1LmpzXCI6IDM2MzU0LFxuXHRcIi4vZmFcIjogMjg1MDcsXG5cdFwiLi9mYS5qc1wiOiAyODUwNyxcblx0XCIuL2ZpXCI6IDc1NjkxLFxuXHRcIi4vZmkuanNcIjogNzU2OTEsXG5cdFwiLi9mb1wiOiA0ODE1NSxcblx0XCIuL2ZvLmpzXCI6IDQ4MTU1LFxuXHRcIi4vZnJcIjogODM2NzEsXG5cdFwiLi9mci1jYVwiOiA5Mzc3Myxcblx0XCIuL2ZyLWNhLmpzXCI6IDkzNzczLFxuXHRcIi4vZnItY2hcIjogMjEzMzMsXG5cdFwiLi9mci1jaC5qc1wiOiAyMTMzMyxcblx0XCIuL2ZyLmpzXCI6IDgzNjcxLFxuXHRcIi4vZnlcIjogNDQ3MzEsXG5cdFwiLi9meS5qc1wiOiA0NDczMSxcblx0XCIuL2dhXCI6IDQ3Mzg5LFxuXHRcIi4vZ2EuanNcIjogNDczODksXG5cdFwiLi9nZFwiOiAxMDAwMixcblx0XCIuL2dkLmpzXCI6IDEwMDAyLFxuXHRcIi4vZ2xcIjogOTE4MTIsXG5cdFwiLi9nbC5qc1wiOiA5MTgxMixcblx0XCIuL2dvbS1sYXRuXCI6IDg5NTgsXG5cdFwiLi9nb20tbGF0bi5qc1wiOiA4OTU4LFxuXHRcIi4vZ3VcIjogODAyOTUsXG5cdFwiLi9ndS5qc1wiOiA4MDI5NSxcblx0XCIuL2hlXCI6IDQ4NzY3LFxuXHRcIi4vaGUuanNcIjogNDg3NjcsXG5cdFwiLi9oaVwiOiA5NTU0Myxcblx0XCIuL2hpLmpzXCI6IDk1NTQzLFxuXHRcIi4vaHJcIjogMjQ3MDYsXG5cdFwiLi9oci5qc1wiOiAyNDcwNixcblx0XCIuL2h1XCI6IDcyMTc3LFxuXHRcIi4vaHUuanNcIjogNzIxNzcsXG5cdFwiLi9oeS1hbVwiOiA1NDc0OCxcblx0XCIuL2h5LWFtLmpzXCI6IDU0NzQ4LFxuXHRcIi4vaWRcIjogNTg3MTMsXG5cdFwiLi9pZC5qc1wiOiA1ODcxMyxcblx0XCIuL2lzXCI6IDk0MzM2LFxuXHRcIi4vaXMuanNcIjogOTQzMzYsXG5cdFwiLi9pdFwiOiA0ODMyOCxcblx0XCIuL2l0LWNoXCI6IDE4NTYyLFxuXHRcIi4vaXQtY2guanNcIjogMTg1NjIsXG5cdFwiLi9pdC5qc1wiOiA0ODMyOCxcblx0XCIuL2phXCI6IDMxNTYwLFxuXHRcIi4vamEuanNcIjogMzE1NjAsXG5cdFwiLi9qdlwiOiAzNDQwNCxcblx0XCIuL2p2LmpzXCI6IDM0NDA0LFxuXHRcIi4va2FcIjogNzU5ODksXG5cdFwiLi9rYS5qc1wiOiA3NTk4OSxcblx0XCIuL2trXCI6IDIwNzQ3LFxuXHRcIi4va2suanNcIjogMjA3NDcsXG5cdFwiLi9rbVwiOiAyMTg2OCxcblx0XCIuL2ttLmpzXCI6IDIxODY4LFxuXHRcIi4va25cIjogOTQ5OTcsXG5cdFwiLi9rbi5qc1wiOiA5NDk5Nyxcblx0XCIuL2tvXCI6IDg5MTU0LFxuXHRcIi4va28uanNcIjogODkxNTQsXG5cdFwiLi9rdVwiOiA0ODIyMCxcblx0XCIuL2t1LmpzXCI6IDQ4MjIwLFxuXHRcIi4va3lcIjogNzM2NjUsXG5cdFwiLi9reS5qc1wiOiA3MzY2NSxcblx0XCIuL2xiXCI6IDUzNTgsXG5cdFwiLi9sYi5qc1wiOiA1MzU4LFxuXHRcIi4vbG9cIjogNTA0Nyxcblx0XCIuL2xvLmpzXCI6IDUwNDcsXG5cdFwiLi9sdFwiOiA2MzU3Mixcblx0XCIuL2x0LmpzXCI6IDYzNTcyLFxuXHRcIi4vbHZcIjogMzY2MzgsXG5cdFwiLi9sdi5qc1wiOiAzNjYzOCxcblx0XCIuL21lXCI6IDE5OTc4LFxuXHRcIi4vbWUuanNcIjogMTk5NzgsXG5cdFwiLi9taVwiOiAxNzQ3Mixcblx0XCIuL21pLmpzXCI6IDE3NDcyLFxuXHRcIi4vbWtcIjogNjA5NjgsXG5cdFwiLi9tay5qc1wiOiA2MDk2OCxcblx0XCIuL21sXCI6IDUzMTI2LFxuXHRcIi4vbWwuanNcIjogNTMxMjYsXG5cdFwiLi9tblwiOiA3NDI3Nyxcblx0XCIuL21uLmpzXCI6IDc0Mjc3LFxuXHRcIi4vbXJcIjogMjYwNzgsXG5cdFwiLi9tci5qc1wiOiAyNjA3OCxcblx0XCIuL21zXCI6IDUyMzY0LFxuXHRcIi4vbXMtbXlcIjogMzAxNDEsXG5cdFwiLi9tcy1teS5qc1wiOiAzMDE0MSxcblx0XCIuL21zLmpzXCI6IDUyMzY0LFxuXHRcIi4vbXRcIjogOTI5MTQsXG5cdFwiLi9tdC5qc1wiOiA5MjkxNCxcblx0XCIuL215XCI6IDE1MzM0LFxuXHRcIi4vbXkuanNcIjogMTUzMzQsXG5cdFwiLi9uYlwiOiA5MzQxNyxcblx0XCIuL25iLmpzXCI6IDkzNDE3LFxuXHRcIi4vbmVcIjogNjk0NTksXG5cdFwiLi9uZS5qc1wiOiA2OTQ1OSxcblx0XCIuL25sXCI6IDgyMDU0LFxuXHRcIi4vbmwtYmVcIjogMjIzNzQsXG5cdFwiLi9ubC1iZS5qc1wiOiAyMjM3NCxcblx0XCIuL25sLmpzXCI6IDgyMDU0LFxuXHRcIi4vbm5cIjogMzQyOTUsXG5cdFwiLi9ubi5qc1wiOiAzNDI5NSxcblx0XCIuL3BhLWluXCI6IDI5MDc0LFxuXHRcIi4vcGEtaW4uanNcIjogMjkwNzQsXG5cdFwiLi9wbFwiOiAxNTk2Myxcblx0XCIuL3BsLmpzXCI6IDE1OTYzLFxuXHRcIi4vcHRcIjogMzcyNTksXG5cdFwiLi9wdC1iclwiOiA2MzM0NCxcblx0XCIuL3B0LWJyLmpzXCI6IDYzMzQ0LFxuXHRcIi4vcHQuanNcIjogMzcyNTksXG5cdFwiLi9yb1wiOiAxMTQ1MSxcblx0XCIuL3JvLmpzXCI6IDExNDUxLFxuXHRcIi4vcnVcIjogOTM2MTIsXG5cdFwiLi9ydS5qc1wiOiA5MzYxMixcblx0XCIuL3NkXCI6IDY3OTU4LFxuXHRcIi4vc2QuanNcIjogNjc5NTgsXG5cdFwiLi9zZVwiOiAxNzY1Mixcblx0XCIuL3NlLmpzXCI6IDE3NjUyLFxuXHRcIi4vc2lcIjogMTAzMTQsXG5cdFwiLi9zaS5qc1wiOiAxMDMxNCxcblx0XCIuL3NrXCI6IDU1Mzg2LFxuXHRcIi4vc2suanNcIjogNTUzODYsXG5cdFwiLi9zbFwiOiA0ODczOCxcblx0XCIuL3NsLmpzXCI6IDQ4NzM4LFxuXHRcIi4vc3FcIjogNTMzNDMsXG5cdFwiLi9zcS5qc1wiOiA1MzM0Myxcblx0XCIuL3NyXCI6IDE5NTgzLFxuXHRcIi4vc3ItY3lybFwiOiA4NTc4NCxcblx0XCIuL3NyLWN5cmwuanNcIjogODU3ODQsXG5cdFwiLi9zci5qc1wiOiAxOTU4Myxcblx0XCIuL3NzXCI6IDk1MTQ4LFxuXHRcIi4vc3MuanNcIjogOTUxNDgsXG5cdFwiLi9zdlwiOiAxNjA5LFxuXHRcIi4vc3YuanNcIjogMTYwOSxcblx0XCIuL3N3XCI6IDE4Nzg1LFxuXHRcIi4vc3cuanNcIjogMTg3ODUsXG5cdFwiLi90YVwiOiA5MDAyNSxcblx0XCIuL3RhLmpzXCI6IDkwMDI1LFxuXHRcIi4vdGVcIjogMTYyMjgsXG5cdFwiLi90ZS5qc1wiOiAxNjIyOCxcblx0XCIuL3RldFwiOiAyNjEzNixcblx0XCIuL3RldC5qc1wiOiAyNjEzNixcblx0XCIuL3RnXCI6IDE2MTQsXG5cdFwiLi90Zy5qc1wiOiAxNjE0LFxuXHRcIi4vdGhcIjogMTgzOCxcblx0XCIuL3RoLmpzXCI6IDE4MzgsXG5cdFwiLi90bC1waFwiOiAzOTk2NCxcblx0XCIuL3RsLXBoLmpzXCI6IDM5OTY0LFxuXHRcIi4vdGxoXCI6IDc3NTYxLFxuXHRcIi4vdGxoLmpzXCI6IDc3NTYxLFxuXHRcIi4vdHJcIjogMjgzNjcsXG5cdFwiLi90ci5qc1wiOiAyODM2Nyxcblx0XCIuL3R6bFwiOiA3NDAwMSxcblx0XCIuL3R6bC5qc1wiOiA3NDAwMSxcblx0XCIuL3R6bVwiOiA2NzUxOSxcblx0XCIuL3R6bS1sYXRuXCI6IDE5MTgzLFxuXHRcIi4vdHptLWxhdG4uanNcIjogMTkxODMsXG5cdFwiLi90em0uanNcIjogNjc1MTksXG5cdFwiLi91Zy1jblwiOiAzNTA0Nixcblx0XCIuL3VnLWNuLmpzXCI6IDM1MDQ2LFxuXHRcIi4vdWtcIjogMTk1MDYsXG5cdFwiLi91ay5qc1wiOiAxOTUwNixcblx0XCIuL3VyXCI6IDc3ODE1LFxuXHRcIi4vdXIuanNcIjogNzc4MTUsXG5cdFwiLi91elwiOiA4Nzk0Nyxcblx0XCIuL3V6LWxhdG5cIjogNDc4MTcsXG5cdFwiLi91ei1sYXRuLmpzXCI6IDQ3ODE3LFxuXHRcIi4vdXouanNcIjogODc5NDcsXG5cdFwiLi92aVwiOiA2NDgsXG5cdFwiLi92aS5qc1wiOiA2NDgsXG5cdFwiLi94LXBzZXVkb1wiOiAyNjY3MSxcblx0XCIuL3gtcHNldWRvLmpzXCI6IDI2NjcxLFxuXHRcIi4veW9cIjogODc4NTgsXG5cdFwiLi95by5qc1wiOiA4Nzg1OCxcblx0XCIuL3poLWNuXCI6IDM4OTUsXG5cdFwiLi96aC1jbi5qc1wiOiAzODk1LFxuXHRcIi4vemgtaGtcIjogMjIzNTcsXG5cdFwiLi96aC1oay5qc1wiOiAyMjM1Nyxcblx0XCIuL3poLXR3XCI6IDgxODMzLFxuXHRcIi4vemgtdHcuanNcIjogODE4MzNcbn07XG5cblxuZnVuY3Rpb24gd2VicGFja0NvbnRleHQocmVxKSB7XG5cdHZhciBpZCA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZShyZXEpO1xuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhpZCk7XG59XG5mdW5jdGlvbiB3ZWJwYWNrQ29udGV4dFJlc29sdmUocmVxKSB7XG5cdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8obWFwLCByZXEpKSB7XG5cdFx0dmFyIGUgPSBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiICsgcmVxICsgXCInXCIpO1xuXHRcdGUuY29kZSA9ICdNT0RVTEVfTk9UX0ZPVU5EJztcblx0XHR0aHJvdyBlO1xuXHR9XG5cdHJldHVybiBtYXBbcmVxXTtcbn1cbndlYnBhY2tDb250ZXh0LmtleXMgPSBmdW5jdGlvbiB3ZWJwYWNrQ29udGV4dEtleXMoKSB7XG5cdHJldHVybiBPYmplY3Qua2V5cyhtYXApO1xufTtcbndlYnBhY2tDb250ZXh0LnJlc29sdmUgPSB3ZWJwYWNrQ29udGV4dFJlc29sdmU7XG5tb2R1bGUuZXhwb3J0cyA9IHdlYnBhY2tDb250ZXh0O1xud2VicGFja0NvbnRleHQuaWQgPSA5OTQ1OTsiLCIvLyEgbW9tZW50LmpzXG5cbjsoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyA/IG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpIDpcbiAgICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoZmFjdG9yeSkgOlxuICAgIGdsb2JhbC5tb21lbnQgPSBmYWN0b3J5KClcbn0odGhpcywgKGZ1bmN0aW9uICgpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gICAgdmFyIGhvb2tDYWxsYmFjaztcblxuICAgIGZ1bmN0aW9uIGhvb2tzICgpIHtcbiAgICAgICAgcmV0dXJuIGhvb2tDYWxsYmFjay5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIH1cblxuICAgIC8vIFRoaXMgaXMgZG9uZSB0byByZWdpc3RlciB0aGUgbWV0aG9kIGNhbGxlZCB3aXRoIG1vbWVudCgpXG4gICAgLy8gd2l0aG91dCBjcmVhdGluZyBjaXJjdWxhciBkZXBlbmRlbmNpZXMuXG4gICAgZnVuY3Rpb24gc2V0SG9va0NhbGxiYWNrIChjYWxsYmFjaykge1xuICAgICAgICBob29rQ2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0FycmF5KGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dCBpbnN0YW5jZW9mIEFycmF5IHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpbnB1dCkgPT09ICdbb2JqZWN0IEFycmF5XSc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNPYmplY3QoaW5wdXQpIHtcbiAgICAgICAgLy8gSUU4IHdpbGwgdHJlYXQgdW5kZWZpbmVkIGFuZCBudWxsIGFzIG9iamVjdCBpZiBpdCB3YXNuJ3QgZm9yXG4gICAgICAgIC8vIGlucHV0ICE9IG51bGxcbiAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgJiYgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgT2JqZWN0XSc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNPYmplY3RFbXB0eShvYmopIHtcbiAgICAgICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikubGVuZ3RoID09PSAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBrO1xuICAgICAgICAgICAgZm9yIChrIGluIG9iaikge1xuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoaykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVbmRlZmluZWQoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0ID09PSB2b2lkIDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNOdW1iZXIoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgTnVtYmVyXSc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEYXRlKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dCBpbnN0YW5jZW9mIERhdGUgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgRGF0ZV0nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1hcChhcnIsIGZuKSB7XG4gICAgICAgIHZhciByZXMgPSBbXSwgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGFyci5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgcmVzLnB1c2goZm4oYXJyW2ldLCBpKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYXNPd25Qcm9wKGEsIGIpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLCBiKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBleHRlbmQoYSwgYikge1xuICAgICAgICBmb3IgKHZhciBpIGluIGIpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGIsIGkpKSB7XG4gICAgICAgICAgICAgICAgYVtpXSA9IGJbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzT3duUHJvcChiLCAndG9TdHJpbmcnKSkge1xuICAgICAgICAgICAgYS50b1N0cmluZyA9IGIudG9TdHJpbmc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzT3duUHJvcChiLCAndmFsdWVPZicpKSB7XG4gICAgICAgICAgICBhLnZhbHVlT2YgPSBiLnZhbHVlT2Y7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVVVEMgKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0KSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbE9yVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0LCB0cnVlKS51dGMoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkZWZhdWx0UGFyc2luZ0ZsYWdzKCkge1xuICAgICAgICAvLyBXZSBuZWVkIHRvIGRlZXAgY2xvbmUgdGhpcyBvYmplY3QuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbXB0eSAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgIHVudXNlZFRva2VucyAgICA6IFtdLFxuICAgICAgICAgICAgdW51c2VkSW5wdXQgICAgIDogW10sXG4gICAgICAgICAgICBvdmVyZmxvdyAgICAgICAgOiAtMixcbiAgICAgICAgICAgIGNoYXJzTGVmdE92ZXIgICA6IDAsXG4gICAgICAgICAgICBudWxsSW5wdXQgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgIGludmFsaWRNb250aCAgICA6IG51bGwsXG4gICAgICAgICAgICBpbnZhbGlkRm9ybWF0ICAgOiBmYWxzZSxcbiAgICAgICAgICAgIHVzZXJJbnZhbGlkYXRlZCA6IGZhbHNlLFxuICAgICAgICAgICAgaXNvICAgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgICBwYXJzZWREYXRlUGFydHMgOiBbXSxcbiAgICAgICAgICAgIG1lcmlkaWVtICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICByZmMyODIyICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgIHdlZWtkYXlNaXNtYXRjaCA6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UGFyc2luZ0ZsYWdzKG0pIHtcbiAgICAgICAgaWYgKG0uX3BmID09IG51bGwpIHtcbiAgICAgICAgICAgIG0uX3BmID0gZGVmYXVsdFBhcnNpbmdGbGFncygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtLl9wZjtcbiAgICB9XG5cbiAgICB2YXIgc29tZTtcbiAgICBpZiAoQXJyYXkucHJvdG90eXBlLnNvbWUpIHtcbiAgICAgICAgc29tZSA9IEFycmF5LnByb3RvdHlwZS5zb21lO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNvbWUgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgICAgICAgICB2YXIgdCA9IE9iamVjdCh0aGlzKTtcbiAgICAgICAgICAgIHZhciBsZW4gPSB0Lmxlbmd0aCA+Pj4gMDtcblxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChpIGluIHQgJiYgZnVuLmNhbGwodGhpcywgdFtpXSwgaSwgdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZChtKSB7XG4gICAgICAgIGlmIChtLl9pc1ZhbGlkID09IG51bGwpIHtcbiAgICAgICAgICAgIHZhciBmbGFncyA9IGdldFBhcnNpbmdGbGFncyhtKTtcbiAgICAgICAgICAgIHZhciBwYXJzZWRQYXJ0cyA9IHNvbWUuY2FsbChmbGFncy5wYXJzZWREYXRlUGFydHMsIGZ1bmN0aW9uIChpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGkgIT0gbnVsbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdmFyIGlzTm93VmFsaWQgPSAhaXNOYU4obS5fZC5nZXRUaW1lKCkpICYmXG4gICAgICAgICAgICAgICAgZmxhZ3Mub3ZlcmZsb3cgPCAwICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLmVtcHR5ICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRNb250aCAmJlxuICAgICAgICAgICAgICAgICFmbGFncy5pbnZhbGlkV2Vla2RheSAmJlxuICAgICAgICAgICAgICAgICFmbGFncy53ZWVrZGF5TWlzbWF0Y2ggJiZcbiAgICAgICAgICAgICAgICAhZmxhZ3MubnVsbElucHV0ICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLmludmFsaWRGb3JtYXQgJiZcbiAgICAgICAgICAgICAgICAhZmxhZ3MudXNlckludmFsaWRhdGVkICYmXG4gICAgICAgICAgICAgICAgKCFmbGFncy5tZXJpZGllbSB8fCAoZmxhZ3MubWVyaWRpZW0gJiYgcGFyc2VkUGFydHMpKTtcblxuICAgICAgICAgICAgaWYgKG0uX3N0cmljdCkge1xuICAgICAgICAgICAgICAgIGlzTm93VmFsaWQgPSBpc05vd1ZhbGlkICYmXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLmNoYXJzTGVmdE92ZXIgPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgZmxhZ3MudW51c2VkVG9rZW5zLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAgICAgICAgICAgICBmbGFncy5iaWdIb3VyID09PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChPYmplY3QuaXNGcm96ZW4gPT0gbnVsbCB8fCAhT2JqZWN0LmlzRnJvemVuKG0pKSB7XG4gICAgICAgICAgICAgICAgbS5faXNWYWxpZCA9IGlzTm93VmFsaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNOb3dWYWxpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbS5faXNWYWxpZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVJbnZhbGlkIChmbGFncykge1xuICAgICAgICB2YXIgbSA9IGNyZWF0ZVVUQyhOYU4pO1xuICAgICAgICBpZiAoZmxhZ3MgIT0gbnVsbCkge1xuICAgICAgICAgICAgZXh0ZW5kKGdldFBhcnNpbmdGbGFncyhtKSwgZmxhZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKG0pLnVzZXJJbnZhbGlkYXRlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICAvLyBQbHVnaW5zIHRoYXQgYWRkIHByb3BlcnRpZXMgc2hvdWxkIGFsc28gYWRkIHRoZSBrZXkgaGVyZSAobnVsbCB2YWx1ZSksXG4gICAgLy8gc28gd2UgY2FuIHByb3Blcmx5IGNsb25lIG91cnNlbHZlcy5cbiAgICB2YXIgbW9tZW50UHJvcGVydGllcyA9IGhvb2tzLm1vbWVudFByb3BlcnRpZXMgPSBbXTtcblxuICAgIGZ1bmN0aW9uIGNvcHlDb25maWcodG8sIGZyb20pIHtcbiAgICAgICAgdmFyIGksIHByb3AsIHZhbDtcblxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2lzQU1vbWVudE9iamVjdCkpIHtcbiAgICAgICAgICAgIHRvLl9pc0FNb21lbnRPYmplY3QgPSBmcm9tLl9pc0FNb21lbnRPYmplY3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9pKSkge1xuICAgICAgICAgICAgdG8uX2kgPSBmcm9tLl9pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fZikpIHtcbiAgICAgICAgICAgIHRvLl9mID0gZnJvbS5fZjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2wpKSB7XG4gICAgICAgICAgICB0by5fbCA9IGZyb20uX2w7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9zdHJpY3QpKSB7XG4gICAgICAgICAgICB0by5fc3RyaWN0ID0gZnJvbS5fc3RyaWN0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fdHptKSkge1xuICAgICAgICAgICAgdG8uX3R6bSA9IGZyb20uX3R6bTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2lzVVRDKSkge1xuICAgICAgICAgICAgdG8uX2lzVVRDID0gZnJvbS5faXNVVEM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9vZmZzZXQpKSB7XG4gICAgICAgICAgICB0by5fb2Zmc2V0ID0gZnJvbS5fb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fcGYpKSB7XG4gICAgICAgICAgICB0by5fcGYgPSBnZXRQYXJzaW5nRmxhZ3MoZnJvbSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9sb2NhbGUpKSB7XG4gICAgICAgICAgICB0by5fbG9jYWxlID0gZnJvbS5fbG9jYWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vbWVudFByb3BlcnRpZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG1vbWVudFByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBwcm9wID0gbW9tZW50UHJvcGVydGllc1tpXTtcbiAgICAgICAgICAgICAgICB2YWwgPSBmcm9tW3Byb3BdO1xuICAgICAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQodmFsKSkge1xuICAgICAgICAgICAgICAgICAgICB0b1twcm9wXSA9IHZhbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdG87XG4gICAgfVxuXG4gICAgdmFyIHVwZGF0ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICAgIC8vIE1vbWVudCBwcm90b3R5cGUgb2JqZWN0XG4gICAgZnVuY3Rpb24gTW9tZW50KGNvbmZpZykge1xuICAgICAgICBjb3B5Q29uZmlnKHRoaXMsIGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2QgPSBuZXcgRGF0ZShjb25maWcuX2QgIT0gbnVsbCA/IGNvbmZpZy5fZC5nZXRUaW1lKCkgOiBOYU4pO1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9kID0gbmV3IERhdGUoTmFOKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQcmV2ZW50IGluZmluaXRlIGxvb3AgaW4gY2FzZSB1cGRhdGVPZmZzZXQgY3JlYXRlcyBuZXcgbW9tZW50XG4gICAgICAgIC8vIG9iamVjdHMuXG4gICAgICAgIGlmICh1cGRhdGVJblByb2dyZXNzID09PSBmYWxzZSkge1xuICAgICAgICAgICAgdXBkYXRlSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcyk7XG4gICAgICAgICAgICB1cGRhdGVJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc01vbWVudCAob2JqKSB7XG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBNb21lbnQgfHwgKG9iaiAhPSBudWxsICYmIG9iai5faXNBTW9tZW50T2JqZWN0ICE9IG51bGwpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFic0Zsb29yIChudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIC8vIC0wIC0+IDBcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwobnVtYmVyKSB8fCAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSW50KGFyZ3VtZW50Rm9yQ29lcmNpb24pIHtcbiAgICAgICAgdmFyIGNvZXJjZWROdW1iZXIgPSArYXJndW1lbnRGb3JDb2VyY2lvbixcbiAgICAgICAgICAgIHZhbHVlID0gMDtcblxuICAgICAgICBpZiAoY29lcmNlZE51bWJlciAhPT0gMCAmJiBpc0Zpbml0ZShjb2VyY2VkTnVtYmVyKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBhYnNGbG9vcihjb2VyY2VkTnVtYmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBjb21wYXJlIHR3byBhcnJheXMsIHJldHVybiB0aGUgbnVtYmVyIG9mIGRpZmZlcmVuY2VzXG4gICAgZnVuY3Rpb24gY29tcGFyZUFycmF5cyhhcnJheTEsIGFycmF5MiwgZG9udENvbnZlcnQpIHtcbiAgICAgICAgdmFyIGxlbiA9IE1hdGgubWluKGFycmF5MS5sZW5ndGgsIGFycmF5Mi5sZW5ndGgpLFxuICAgICAgICAgICAgbGVuZ3RoRGlmZiA9IE1hdGguYWJzKGFycmF5MS5sZW5ndGggLSBhcnJheTIubGVuZ3RoKSxcbiAgICAgICAgICAgIGRpZmZzID0gMCxcbiAgICAgICAgICAgIGk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgaWYgKChkb250Q29udmVydCAmJiBhcnJheTFbaV0gIT09IGFycmF5MltpXSkgfHxcbiAgICAgICAgICAgICAgICAoIWRvbnRDb252ZXJ0ICYmIHRvSW50KGFycmF5MVtpXSkgIT09IHRvSW50KGFycmF5MltpXSkpKSB7XG4gICAgICAgICAgICAgICAgZGlmZnMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGlmZnMgKyBsZW5ndGhEaWZmO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdhcm4obXNnKSB7XG4gICAgICAgIGlmIChob29rcy5zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ3MgPT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgKHR5cGVvZiBjb25zb2xlICE9PSAgJ3VuZGVmaW5lZCcpICYmIGNvbnNvbGUud2Fybikge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdEZXByZWNhdGlvbiB3YXJuaW5nOiAnICsgbXNnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRlcHJlY2F0ZShtc2csIGZuKSB7XG4gICAgICAgIHZhciBmaXJzdFRpbWUgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiBleHRlbmQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlciAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyKG51bGwsIG1zZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZmlyc3RUaW1lKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICB2YXIgYXJnO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZyA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1tpXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyArPSAnXFxuWycgKyBpICsgJ10gJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBhcmd1bWVudHNbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcgKz0ga2V5ICsgJzogJyArIGFyZ3VtZW50c1swXVtrZXldICsgJywgJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZy5zbGljZSgwLCAtMik7IC8vIFJlbW92ZSB0cmFpbGluZyBjb21tYSBhbmQgc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBhcmdzLnB1c2goYXJnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgd2Fybihtc2cgKyAnXFxuQXJndW1lbnRzOiAnICsgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJncykuam9pbignJykgKyAnXFxuJyArIChuZXcgRXJyb3IoKSkuc3RhY2spO1xuICAgICAgICAgICAgICAgIGZpcnN0VGltZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIH0sIGZuKTtcbiAgICB9XG5cbiAgICB2YXIgZGVwcmVjYXRpb25zID0ge307XG5cbiAgICBmdW5jdGlvbiBkZXByZWNhdGVTaW1wbGUobmFtZSwgbXNnKSB7XG4gICAgICAgIGlmIChob29rcy5kZXByZWNhdGlvbkhhbmRsZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyKG5hbWUsIG1zZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFkZXByZWNhdGlvbnNbbmFtZV0pIHtcbiAgICAgICAgICAgIHdhcm4obXNnKTtcbiAgICAgICAgICAgIGRlcHJlY2F0aW9uc1tuYW1lXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBob29rcy5zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ3MgPSBmYWxzZTtcbiAgICBob29rcy5kZXByZWNhdGlvbkhhbmRsZXIgPSBudWxsO1xuXG4gICAgZnVuY3Rpb24gaXNGdW5jdGlvbihpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgaW5zdGFuY2VvZiBGdW5jdGlvbiB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldCAoY29uZmlnKSB7XG4gICAgICAgIHZhciBwcm9wLCBpO1xuICAgICAgICBmb3IgKGkgaW4gY29uZmlnKSB7XG4gICAgICAgICAgICBwcm9wID0gY29uZmlnW2ldO1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24ocHJvcCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzW2ldID0gcHJvcDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpc1snXycgKyBpXSA9IHByb3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgICAvLyBMZW5pZW50IG9yZGluYWwgcGFyc2luZyBhY2NlcHRzIGp1c3QgYSBudW1iZXIgaW4gYWRkaXRpb24gdG9cbiAgICAgICAgLy8gbnVtYmVyICsgKHBvc3NpYmx5KSBzdHVmZiBjb21pbmcgZnJvbSBfZGF5T2ZNb250aE9yZGluYWxQYXJzZS5cbiAgICAgICAgLy8gVE9ETzogUmVtb3ZlIFwib3JkaW5hbFBhcnNlXCIgZmFsbGJhY2sgaW4gbmV4dCBtYWpvciByZWxlYXNlLlxuICAgICAgICB0aGlzLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlTGVuaWVudCA9IG5ldyBSZWdFeHAoXG4gICAgICAgICAgICAodGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZS5zb3VyY2UgfHwgdGhpcy5fb3JkaW5hbFBhcnNlLnNvdXJjZSkgK1xuICAgICAgICAgICAgICAgICd8JyArICgvXFxkezEsMn0vKS5zb3VyY2UpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNoaWxkQ29uZmlnKSB7XG4gICAgICAgIHZhciByZXMgPSBleHRlbmQoe30sIHBhcmVudENvbmZpZyksIHByb3A7XG4gICAgICAgIGZvciAocHJvcCBpbiBjaGlsZENvbmZpZykge1xuICAgICAgICAgICAgaWYgKGhhc093blByb3AoY2hpbGRDb25maWcsIHByb3ApKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzT2JqZWN0KHBhcmVudENvbmZpZ1twcm9wXSkgJiYgaXNPYmplY3QoY2hpbGRDb25maWdbcHJvcF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBleHRlbmQocmVzW3Byb3BdLCBwYXJlbnRDb25maWdbcHJvcF0pO1xuICAgICAgICAgICAgICAgICAgICBleHRlbmQocmVzW3Byb3BdLCBjaGlsZENvbmZpZ1twcm9wXSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZENvbmZpZ1twcm9wXSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IGNoaWxkQ29uZmlnW3Byb3BdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSByZXNbcHJvcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAocHJvcCBpbiBwYXJlbnRDb25maWcpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKHBhcmVudENvbmZpZywgcHJvcCkgJiZcbiAgICAgICAgICAgICAgICAgICAgIWhhc093blByb3AoY2hpbGRDb25maWcsIHByb3ApICYmXG4gICAgICAgICAgICAgICAgICAgIGlzT2JqZWN0KHBhcmVudENvbmZpZ1twcm9wXSkpIHtcbiAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgY2hhbmdlcyB0byBwcm9wZXJ0aWVzIGRvbid0IG1vZGlmeSBwYXJlbnQgY29uZmlnXG4gICAgICAgICAgICAgICAgcmVzW3Byb3BdID0gZXh0ZW5kKHt9LCByZXNbcHJvcF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gTG9jYWxlKGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0KGNvbmZpZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIga2V5cztcblxuICAgIGlmIChPYmplY3Qua2V5cykge1xuICAgICAgICBrZXlzID0gT2JqZWN0LmtleXM7XG4gICAgfSBlbHNlIHtcbiAgICAgICAga2V5cyA9IGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgICAgIHZhciBpLCByZXMgPSBbXTtcbiAgICAgICAgICAgIGZvciAoaSBpbiBvYmopIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzT3duUHJvcChvYmosIGkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRDYWxlbmRhciA9IHtcbiAgICAgICAgc2FtZURheSA6ICdbVG9kYXkgYXRdIExUJyxcbiAgICAgICAgbmV4dERheSA6ICdbVG9tb3Jyb3cgYXRdIExUJyxcbiAgICAgICAgbmV4dFdlZWsgOiAnZGRkZCBbYXRdIExUJyxcbiAgICAgICAgbGFzdERheSA6ICdbWWVzdGVyZGF5IGF0XSBMVCcsXG4gICAgICAgIGxhc3RXZWVrIDogJ1tMYXN0XSBkZGRkIFthdF0gTFQnLFxuICAgICAgICBzYW1lRWxzZSA6ICdMJ1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBjYWxlbmRhciAoa2V5LCBtb20sIG5vdykge1xuICAgICAgICB2YXIgb3V0cHV0ID0gdGhpcy5fY2FsZW5kYXJba2V5XSB8fCB0aGlzLl9jYWxlbmRhclsnc2FtZUVsc2UnXTtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24ob3V0cHV0KSA/IG91dHB1dC5jYWxsKG1vbSwgbm93KSA6IG91dHB1dDtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvbmdEYXRlRm9ybWF0ID0ge1xuICAgICAgICBMVFMgIDogJ2g6bW06c3MgQScsXG4gICAgICAgIExUICAgOiAnaDptbSBBJyxcbiAgICAgICAgTCAgICA6ICdNTS9ERC9ZWVlZJyxcbiAgICAgICAgTEwgICA6ICdNTU1NIEQsIFlZWVknLFxuICAgICAgICBMTEwgIDogJ01NTU0gRCwgWVlZWSBoOm1tIEEnLFxuICAgICAgICBMTExMIDogJ2RkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEnXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGxvbmdEYXRlRm9ybWF0IChrZXkpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV0sXG4gICAgICAgICAgICBmb3JtYXRVcHBlciA9IHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleS50b1VwcGVyQ2FzZSgpXTtcblxuICAgICAgICBpZiAoZm9ybWF0IHx8ICFmb3JtYXRVcHBlcikge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV0gPSBmb3JtYXRVcHBlci5yZXBsYWNlKC9NTU1NfE1NfEREfGRkZGQvZywgZnVuY3Rpb24gKHZhbCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbC5zbGljZSgxKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV07XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRJbnZhbGlkRGF0ZSA9ICdJbnZhbGlkIGRhdGUnO1xuXG4gICAgZnVuY3Rpb24gaW52YWxpZERhdGUgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW52YWxpZERhdGU7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRPcmRpbmFsID0gJyVkJztcbiAgICB2YXIgZGVmYXVsdERheU9mTW9udGhPcmRpbmFsUGFyc2UgPSAvXFxkezEsMn0vO1xuXG4gICAgZnVuY3Rpb24gb3JkaW5hbCAobnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcmRpbmFsLnJlcGxhY2UoJyVkJywgbnVtYmVyKTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdFJlbGF0aXZlVGltZSA9IHtcbiAgICAgICAgZnV0dXJlIDogJ2luICVzJyxcbiAgICAgICAgcGFzdCAgIDogJyVzIGFnbycsXG4gICAgICAgIHMgIDogJ2EgZmV3IHNlY29uZHMnLFxuICAgICAgICBzcyA6ICclZCBzZWNvbmRzJyxcbiAgICAgICAgbSAgOiAnYSBtaW51dGUnLFxuICAgICAgICBtbSA6ICclZCBtaW51dGVzJyxcbiAgICAgICAgaCAgOiAnYW4gaG91cicsXG4gICAgICAgIGhoIDogJyVkIGhvdXJzJyxcbiAgICAgICAgZCAgOiAnYSBkYXknLFxuICAgICAgICBkZCA6ICclZCBkYXlzJyxcbiAgICAgICAgTSAgOiAnYSBtb250aCcsXG4gICAgICAgIE1NIDogJyVkIG1vbnRocycsXG4gICAgICAgIHkgIDogJ2EgeWVhcicsXG4gICAgICAgIHl5IDogJyVkIHllYXJzJ1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZWxhdGl2ZVRpbWUgKG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkge1xuICAgICAgICB2YXIgb3V0cHV0ID0gdGhpcy5fcmVsYXRpdmVUaW1lW3N0cmluZ107XG4gICAgICAgIHJldHVybiAoaXNGdW5jdGlvbihvdXRwdXQpKSA/XG4gICAgICAgICAgICBvdXRwdXQobnVtYmVyLCB3aXRob3V0U3VmZml4LCBzdHJpbmcsIGlzRnV0dXJlKSA6XG4gICAgICAgICAgICBvdXRwdXQucmVwbGFjZSgvJWQvaSwgbnVtYmVyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXN0RnV0dXJlIChkaWZmLCBvdXRwdXQpIHtcbiAgICAgICAgdmFyIGZvcm1hdCA9IHRoaXMuX3JlbGF0aXZlVGltZVtkaWZmID4gMCA/ICdmdXR1cmUnIDogJ3Bhc3QnXTtcbiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24oZm9ybWF0KSA/IGZvcm1hdChvdXRwdXQpIDogZm9ybWF0LnJlcGxhY2UoLyVzL2ksIG91dHB1dCk7XG4gICAgfVxuXG4gICAgdmFyIGFsaWFzZXMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFVuaXRBbGlhcyAodW5pdCwgc2hvcnRoYW5kKSB7XG4gICAgICAgIHZhciBsb3dlckNhc2UgPSB1bml0LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGFsaWFzZXNbbG93ZXJDYXNlXSA9IGFsaWFzZXNbbG93ZXJDYXNlICsgJ3MnXSA9IGFsaWFzZXNbc2hvcnRoYW5kXSA9IHVuaXQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplVW5pdHModW5pdHMpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB1bml0cyA9PT0gJ3N0cmluZycgPyBhbGlhc2VzW3VuaXRzXSB8fCBhbGlhc2VzW3VuaXRzLnRvTG93ZXJDYXNlKCldIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZU9iamVjdFVuaXRzKGlucHV0T2JqZWN0KSB7XG4gICAgICAgIHZhciBub3JtYWxpemVkSW5wdXQgPSB7fSxcbiAgICAgICAgICAgIG5vcm1hbGl6ZWRQcm9wLFxuICAgICAgICAgICAgcHJvcDtcblxuICAgICAgICBmb3IgKHByb3AgaW4gaW5wdXRPYmplY3QpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGlucHV0T2JqZWN0LCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRQcm9wID0gbm9ybWFsaXplVW5pdHMocHJvcCk7XG4gICAgICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWRQcm9wKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWRJbnB1dFtub3JtYWxpemVkUHJvcF0gPSBpbnB1dE9iamVjdFtwcm9wXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9ybWFsaXplZElucHV0O1xuICAgIH1cblxuICAgIHZhciBwcmlvcml0aWVzID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRVbml0UHJpb3JpdHkodW5pdCwgcHJpb3JpdHkpIHtcbiAgICAgICAgcHJpb3JpdGllc1t1bml0XSA9IHByaW9yaXR5O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFByaW9yaXRpemVkVW5pdHModW5pdHNPYmopIHtcbiAgICAgICAgdmFyIHVuaXRzID0gW107XG4gICAgICAgIGZvciAodmFyIHUgaW4gdW5pdHNPYmopIHtcbiAgICAgICAgICAgIHVuaXRzLnB1c2goe3VuaXQ6IHUsIHByaW9yaXR5OiBwcmlvcml0aWVzW3VdfSk7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMuc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgcmV0dXJuIGEucHJpb3JpdHkgLSBiLnByaW9yaXR5O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHVuaXRzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHplcm9GaWxsKG51bWJlciwgdGFyZ2V0TGVuZ3RoLCBmb3JjZVNpZ24pIHtcbiAgICAgICAgdmFyIGFic051bWJlciA9ICcnICsgTWF0aC5hYnMobnVtYmVyKSxcbiAgICAgICAgICAgIHplcm9zVG9GaWxsID0gdGFyZ2V0TGVuZ3RoIC0gYWJzTnVtYmVyLmxlbmd0aCxcbiAgICAgICAgICAgIHNpZ24gPSBudW1iZXIgPj0gMDtcbiAgICAgICAgcmV0dXJuIChzaWduID8gKGZvcmNlU2lnbiA/ICcrJyA6ICcnKSA6ICctJykgK1xuICAgICAgICAgICAgTWF0aC5wb3coMTAsIE1hdGgubWF4KDAsIHplcm9zVG9GaWxsKSkudG9TdHJpbmcoKS5zdWJzdHIoMSkgKyBhYnNOdW1iZXI7XG4gICAgfVxuXG4gICAgdmFyIGZvcm1hdHRpbmdUb2tlbnMgPSAvKFxcW1teXFxbXSpcXF0pfChcXFxcKT8oW0hoXW1tKHNzKT98TW98TU0/TT9NP3xEb3xERERvfEREP0Q/RD98ZGRkP2Q/fGRvP3x3W298d10/fFdbb3xXXT98UW8/fFlZWVlZWXxZWVlZWXxZWVlZfFlZfGdnKGdnZz8pP3xHRyhHR0c/KT98ZXxFfGF8QXxoaD98SEg/fGtrP3xtbT98c3M/fFN7MSw5fXx4fFh8eno/fFpaP3wuKS9nO1xuXG4gICAgdmFyIGxvY2FsRm9ybWF0dGluZ1Rva2VucyA9IC8oXFxbW15cXFtdKlxcXSl8KFxcXFwpPyhMVFN8TFR8TEw/TD9MP3xsezEsNH0pL2c7XG5cbiAgICB2YXIgZm9ybWF0RnVuY3Rpb25zID0ge307XG5cbiAgICB2YXIgZm9ybWF0VG9rZW5GdW5jdGlvbnMgPSB7fTtcblxuICAgIC8vIHRva2VuOiAgICAnTSdcbiAgICAvLyBwYWRkZWQ6ICAgWydNTScsIDJdXG4gICAgLy8gb3JkaW5hbDogICdNbydcbiAgICAvLyBjYWxsYmFjazogZnVuY3Rpb24gKCkgeyB0aGlzLm1vbnRoKCkgKyAxIH1cbiAgICBmdW5jdGlvbiBhZGRGb3JtYXRUb2tlbiAodG9rZW4sIHBhZGRlZCwgb3JkaW5hbCwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGZ1bmMgPSBjYWxsYmFjaztcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbY2FsbGJhY2tdKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbdG9rZW5dID0gZnVuYztcbiAgICAgICAgfVxuICAgICAgICBpZiAocGFkZGVkKSB7XG4gICAgICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1twYWRkZWRbMF1dID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB6ZXJvRmlsbChmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksIHBhZGRlZFsxXSwgcGFkZGVkWzJdKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9yZGluYWwpIHtcbiAgICAgICAgICAgIGZvcm1hdFRva2VuRnVuY3Rpb25zW29yZGluYWxdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5vcmRpbmFsKGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKSwgdG9rZW4pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbW92ZUZvcm1hdHRpbmdUb2tlbnMoaW5wdXQpIHtcbiAgICAgICAgaWYgKGlucHV0Lm1hdGNoKC9cXFtbXFxzXFxTXS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXlxcW3xcXF0kL2csICcnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5wdXQucmVwbGFjZSgvXFxcXC9nLCAnJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUZvcm1hdEZ1bmN0aW9uKGZvcm1hdCkge1xuICAgICAgICB2YXIgYXJyYXkgPSBmb3JtYXQubWF0Y2goZm9ybWF0dGluZ1Rva2VucyksIGksIGxlbmd0aDtcblxuICAgICAgICBmb3IgKGkgPSAwLCBsZW5ndGggPSBhcnJheS5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGZvcm1hdFRva2VuRnVuY3Rpb25zW2FycmF5W2ldXSkge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gZm9ybWF0VG9rZW5GdW5jdGlvbnNbYXJyYXlbaV1dO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHJlbW92ZUZvcm1hdHRpbmdUb2tlbnMoYXJyYXlbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChtb20pIHtcbiAgICAgICAgICAgIHZhciBvdXRwdXQgPSAnJywgaTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIG91dHB1dCArPSBpc0Z1bmN0aW9uKGFycmF5W2ldKSA/IGFycmF5W2ldLmNhbGwobW9tLCBmb3JtYXQpIDogYXJyYXlbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIGZvcm1hdCBkYXRlIHVzaW5nIG5hdGl2ZSBkYXRlIG9iamVjdFxuICAgIGZ1bmN0aW9uIGZvcm1hdE1vbWVudChtLCBmb3JtYXQpIHtcbiAgICAgICAgaWYgKCFtLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG0ubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtYXQgPSBleHBhbmRGb3JtYXQoZm9ybWF0LCBtLmxvY2FsZURhdGEoKSk7XG4gICAgICAgIGZvcm1hdEZ1bmN0aW9uc1tmb3JtYXRdID0gZm9ybWF0RnVuY3Rpb25zW2Zvcm1hdF0gfHwgbWFrZUZvcm1hdEZ1bmN0aW9uKGZvcm1hdCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdEZ1bmN0aW9uc1tmb3JtYXRdKG0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGV4cGFuZEZvcm1hdChmb3JtYXQsIGxvY2FsZSkge1xuICAgICAgICB2YXIgaSA9IDU7XG5cbiAgICAgICAgZnVuY3Rpb24gcmVwbGFjZUxvbmdEYXRlRm9ybWF0VG9rZW5zKGlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLmxvbmdEYXRlRm9ybWF0KGlucHV0KSB8fCBpbnB1dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwO1xuICAgICAgICB3aGlsZSAoaSA+PSAwICYmIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy50ZXN0KGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKGxvY2FsRm9ybWF0dGluZ1Rva2VucywgcmVwbGFjZUxvbmdEYXRlRm9ybWF0VG9rZW5zKTtcbiAgICAgICAgICAgIGxvY2FsRm9ybWF0dGluZ1Rva2Vucy5sYXN0SW5kZXggPSAwO1xuICAgICAgICAgICAgaSAtPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9XG5cbiAgICB2YXIgbWF0Y2gxICAgICAgICAgPSAvXFxkLzsgICAgICAgICAgICAvLyAgICAgICAwIC0gOVxuICAgIHZhciBtYXRjaDIgICAgICAgICA9IC9cXGRcXGQvOyAgICAgICAgICAvLyAgICAgIDAwIC0gOTlcbiAgICB2YXIgbWF0Y2gzICAgICAgICAgPSAvXFxkezN9LzsgICAgICAgICAvLyAgICAgMDAwIC0gOTk5XG4gICAgdmFyIG1hdGNoNCAgICAgICAgID0gL1xcZHs0fS87ICAgICAgICAgLy8gICAgMDAwMCAtIDk5OTlcbiAgICB2YXIgbWF0Y2g2ICAgICAgICAgPSAvWystXT9cXGR7Nn0vOyAgICAvLyAtOTk5OTk5IC0gOTk5OTk5XG4gICAgdmFyIG1hdGNoMXRvMiAgICAgID0gL1xcZFxcZD8vOyAgICAgICAgIC8vICAgICAgIDAgLSA5OVxuICAgIHZhciBtYXRjaDN0bzQgICAgICA9IC9cXGRcXGRcXGRcXGQ/LzsgICAgIC8vICAgICA5OTkgLSA5OTk5XG4gICAgdmFyIG1hdGNoNXRvNiAgICAgID0gL1xcZFxcZFxcZFxcZFxcZFxcZD8vOyAvLyAgIDk5OTk5IC0gOTk5OTk5XG4gICAgdmFyIG1hdGNoMXRvMyAgICAgID0gL1xcZHsxLDN9LzsgICAgICAgLy8gICAgICAgMCAtIDk5OVxuICAgIHZhciBtYXRjaDF0bzQgICAgICA9IC9cXGR7MSw0fS87ICAgICAgIC8vICAgICAgIDAgLSA5OTk5XG4gICAgdmFyIG1hdGNoMXRvNiAgICAgID0gL1srLV0/XFxkezEsNn0vOyAgLy8gLTk5OTk5OSAtIDk5OTk5OVxuXG4gICAgdmFyIG1hdGNoVW5zaWduZWQgID0gL1xcZCsvOyAgICAgICAgICAgLy8gICAgICAgMCAtIGluZlxuICAgIHZhciBtYXRjaFNpZ25lZCAgICA9IC9bKy1dP1xcZCsvOyAgICAgIC8vICAgIC1pbmYgLSBpbmZcblxuICAgIHZhciBtYXRjaE9mZnNldCAgICA9IC9afFsrLV1cXGRcXGQ6P1xcZFxcZC9naTsgLy8gKzAwOjAwIC0wMDowMCArMDAwMCAtMDAwMCBvciBaXG4gICAgdmFyIG1hdGNoU2hvcnRPZmZzZXQgPSAvWnxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPy9naTsgLy8gKzAwIC0wMCArMDA6MDAgLTAwOjAwICswMDAwIC0wMDAwIG9yIFpcblxuICAgIHZhciBtYXRjaFRpbWVzdGFtcCA9IC9bKy1dP1xcZCsoXFwuXFxkezEsM30pPy87IC8vIDEyMzQ1Njc4OSAxMjM0NTY3ODkuMTIzXG5cbiAgICAvLyBhbnkgd29yZCAob3IgdHdvKSBjaGFyYWN0ZXJzIG9yIG51bWJlcnMgaW5jbHVkaW5nIHR3by90aHJlZSB3b3JkIG1vbnRoIGluIGFyYWJpYy5cbiAgICAvLyBpbmNsdWRlcyBzY290dGlzaCBnYWVsaWMgdHdvIHdvcmQgYW5kIGh5cGhlbmF0ZWQgbW9udGhzXG4gICAgdmFyIG1hdGNoV29yZCA9IC9bMC05XXswLDI1Nn1bJ2EtelxcdTAwQTAtXFx1MDVGRlxcdTA3MDAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkYwN1xcdUZGMTAtXFx1RkZFRl17MSwyNTZ9fFtcXHUwNjAwLVxcdTA2RkZcXC9dezEsMjU2fShcXHMqP1tcXHUwNjAwLVxcdTA2RkZdezEsMjU2fSl7MSwyfS9pO1xuXG4gICAgdmFyIHJlZ2V4ZXMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFJlZ2V4VG9rZW4gKHRva2VuLCByZWdleCwgc3RyaWN0UmVnZXgpIHtcbiAgICAgICAgcmVnZXhlc1t0b2tlbl0gPSBpc0Z1bmN0aW9uKHJlZ2V4KSA/IHJlZ2V4IDogZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGVEYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gKGlzU3RyaWN0ICYmIHN0cmljdFJlZ2V4KSA/IHN0cmljdFJlZ2V4IDogcmVnZXg7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UGFyc2VSZWdleEZvclRva2VuICh0b2tlbiwgY29uZmlnKSB7XG4gICAgICAgIGlmICghaGFzT3duUHJvcChyZWdleGVzLCB0b2tlbikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHVuZXNjYXBlRm9ybWF0KHRva2VuKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVnZXhlc1t0b2tlbl0oY29uZmlnLl9zdHJpY3QsIGNvbmZpZy5fbG9jYWxlKTtcbiAgICB9XG5cbiAgICAvLyBDb2RlIGZyb20gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNTYxNDkzL2lzLXRoZXJlLWEtcmVnZXhwLWVzY2FwZS1mdW5jdGlvbi1pbi1qYXZhc2NyaXB0XG4gICAgZnVuY3Rpb24gdW5lc2NhcGVGb3JtYXQocykge1xuICAgICAgICByZXR1cm4gcmVnZXhFc2NhcGUocy5yZXBsYWNlKCdcXFxcJywgJycpLnJlcGxhY2UoL1xcXFwoXFxbKXxcXFxcKFxcXSl8XFxbKFteXFxdXFxbXSopXFxdfFxcXFwoLikvZywgZnVuY3Rpb24gKG1hdGNoZWQsIHAxLCBwMiwgcDMsIHA0KSB7XG4gICAgICAgICAgICByZXR1cm4gcDEgfHwgcDIgfHwgcDMgfHwgcDQ7XG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZWdleEVzY2FwZShzKSB7XG4gICAgICAgIHJldHVybiBzLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xuICAgIH1cblxuICAgIHZhciB0b2tlbnMgPSB7fTtcblxuICAgIGZ1bmN0aW9uIGFkZFBhcnNlVG9rZW4gKHRva2VuLCBjYWxsYmFjaykge1xuICAgICAgICB2YXIgaSwgZnVuYyA9IGNhbGxiYWNrO1xuICAgICAgICBpZiAodHlwZW9mIHRva2VuID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdG9rZW4gPSBbdG9rZW5dO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc051bWJlcihjYWxsYmFjaykpIHtcbiAgICAgICAgICAgIGZ1bmMgPSBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbY2FsbGJhY2tdID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdG9rZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRva2Vuc1t0b2tlbltpXV0gPSBmdW5jO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkV2Vla1BhcnNlVG9rZW4gKHRva2VuLCBjYWxsYmFjaykge1xuICAgICAgICBhZGRQYXJzZVRva2VuKHRva2VuLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgICAgICBjb25maWcuX3cgPSBjb25maWcuX3cgfHwge307XG4gICAgICAgICAgICBjYWxsYmFjayhpbnB1dCwgY29uZmlnLl93LCBjb25maWcsIHRva2VuKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkVGltZVRvQXJyYXlGcm9tVG9rZW4odG9rZW4sIGlucHV0LCBjb25maWcpIHtcbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwgJiYgaGFzT3duUHJvcCh0b2tlbnMsIHRva2VuKSkge1xuICAgICAgICAgICAgdG9rZW5zW3Rva2VuXShpbnB1dCwgY29uZmlnLl9hLCBjb25maWcsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBZRUFSID0gMDtcbiAgICB2YXIgTU9OVEggPSAxO1xuICAgIHZhciBEQVRFID0gMjtcbiAgICB2YXIgSE9VUiA9IDM7XG4gICAgdmFyIE1JTlVURSA9IDQ7XG4gICAgdmFyIFNFQ09ORCA9IDU7XG4gICAgdmFyIE1JTExJU0VDT05EID0gNjtcbiAgICB2YXIgV0VFSyA9IDc7XG4gICAgdmFyIFdFRUtEQVkgPSA4O1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1knLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB5ID0gdGhpcy55ZWFyKCk7XG4gICAgICAgIHJldHVybiB5IDw9IDk5OTkgPyAnJyArIHkgOiAnKycgKyB5O1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWScsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnllYXIoKSAlIDEwMDtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnWVlZWScsICAgNF0sICAgICAgIDAsICd5ZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZWScsICA1XSwgICAgICAgMCwgJ3llYXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1lZWVlZWScsIDYsIHRydWVdLCAwLCAneWVhcicpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCd5ZWFyJywgJ3knKTtcblxuICAgIC8vIFBSSU9SSVRJRVNcblxuICAgIGFkZFVuaXRQcmlvcml0eSgneWVhcicsIDEpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignWScsICAgICAgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1lZJywgICAgIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdZWVlZJywgICBtYXRjaDF0bzQsIG1hdGNoNCk7XG4gICAgYWRkUmVnZXhUb2tlbignWVlZWVknLCAgbWF0Y2gxdG82LCBtYXRjaDYpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1lZWVlZWScsIG1hdGNoMXRvNiwgbWF0Y2g2KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydZWVlZWScsICdZWVlZWVknXSwgWUVBUik7XG4gICAgYWRkUGFyc2VUb2tlbignWVlZWScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbWUVBUl0gPSBpbnB1dC5sZW5ndGggPT09IDIgPyBob29rcy5wYXJzZVR3b0RpZ2l0WWVhcihpbnB1dCkgOiB0b0ludChpbnB1dCk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignWVknLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W1lFQVJdID0gaG9va3MucGFyc2VUd29EaWdpdFllYXIoaW5wdXQpO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1knLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W1lFQVJdID0gcGFyc2VJbnQoaW5wdXQsIDEwKTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIGZ1bmN0aW9uIGRheXNJblllYXIoeWVhcikge1xuICAgICAgICByZXR1cm4gaXNMZWFwWWVhcih5ZWFyKSA/IDM2NiA6IDM2NTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0xlYXBZZWFyKHllYXIpIHtcbiAgICAgICAgcmV0dXJuICh5ZWFyICUgNCA9PT0gMCAmJiB5ZWFyICUgMTAwICE9PSAwKSB8fCB5ZWFyICUgNDAwID09PSAwO1xuICAgIH1cblxuICAgIC8vIEhPT0tTXG5cbiAgICBob29rcy5wYXJzZVR3b0RpZ2l0WWVhciA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gdG9JbnQoaW5wdXQpICsgKHRvSW50KGlucHV0KSA+IDY4ID8gMTkwMCA6IDIwMDApO1xuICAgIH07XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0WWVhciA9IG1ha2VHZXRTZXQoJ0Z1bGxZZWFyJywgdHJ1ZSk7XG5cbiAgICBmdW5jdGlvbiBnZXRJc0xlYXBZZWFyICgpIHtcbiAgICAgICAgcmV0dXJuIGlzTGVhcFllYXIodGhpcy55ZWFyKCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1ha2VHZXRTZXQgKHVuaXQsIGtlZXBUaW1lKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0JDEodGhpcywgdW5pdCwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCBrZWVwVGltZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXQodGhpcywgdW5pdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0IChtb20sIHVuaXQpIHtcbiAgICAgICAgcmV0dXJuIG1vbS5pc1ZhbGlkKCkgP1xuICAgICAgICAgICAgbW9tLl9kWydnZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArIHVuaXRdKCkgOiBOYU47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0JDEgKG1vbSwgdW5pdCwgdmFsdWUpIHtcbiAgICAgICAgaWYgKG1vbS5pc1ZhbGlkKCkgJiYgIWlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgICAgaWYgKHVuaXQgPT09ICdGdWxsWWVhcicgJiYgaXNMZWFwWWVhcihtb20ueWVhcigpKSAmJiBtb20ubW9udGgoKSA9PT0gMSAmJiBtb20uZGF0ZSgpID09PSAyOSkge1xuICAgICAgICAgICAgICAgIG1vbS5fZFsnc2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyB1bml0XSh2YWx1ZSwgbW9tLm1vbnRoKCksIGRheXNJbk1vbnRoKHZhbHVlLCBtb20ubW9udGgoKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9tLl9kWydzZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArIHVuaXRdKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIHN0cmluZ0dldCAodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXNbdW5pdHNdKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbdW5pdHNdKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG5cbiAgICBmdW5jdGlvbiBzdHJpbmdTZXQgKHVuaXRzLCB2YWx1ZSkge1xuICAgICAgICBpZiAodHlwZW9mIHVuaXRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgdW5pdHMgPSBub3JtYWxpemVPYmplY3RVbml0cyh1bml0cyk7XG4gICAgICAgICAgICB2YXIgcHJpb3JpdGl6ZWQgPSBnZXRQcmlvcml0aXplZFVuaXRzKHVuaXRzKTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJpb3JpdGl6ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzW3ByaW9yaXRpemVkW2ldLnVuaXRdKHVuaXRzW3ByaW9yaXRpemVkW2ldLnVuaXRdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24odGhpc1t1bml0c10pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbdW5pdHNdKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb2QobiwgeCkge1xuICAgICAgICByZXR1cm4gKChuICUgeCkgKyB4KSAlIHg7XG4gICAgfVxuXG4gICAgdmFyIGluZGV4T2Y7XG5cbiAgICBpZiAoQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHtcbiAgICAgICAgaW5kZXhPZiA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGluZGV4T2YgPSBmdW5jdGlvbiAobykge1xuICAgICAgICAgICAgLy8gSSBrbm93XG4gICAgICAgICAgICB2YXIgaTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXNbaV0gPT09IG8pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRheXNJbk1vbnRoKHllYXIsIG1vbnRoKSB7XG4gICAgICAgIGlmIChpc05hTih5ZWFyKSB8fCBpc05hTihtb250aCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG1vZE1vbnRoID0gbW9kKG1vbnRoLCAxMik7XG4gICAgICAgIHllYXIgKz0gKG1vbnRoIC0gbW9kTW9udGgpIC8gMTI7XG4gICAgICAgIHJldHVybiBtb2RNb250aCA9PT0gMSA/IChpc0xlYXBZZWFyKHllYXIpID8gMjkgOiAyOCkgOiAoMzEgLSBtb2RNb250aCAlIDcgJSAyKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignTScsIFsnTU0nLCAyXSwgJ01vJywgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb250aCgpICsgMTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdNTU0nLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHNTaG9ydCh0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ01NTU0nLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHModGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbW9udGgnLCAnTScpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnbW9udGgnLCA4KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ00nLCAgICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ01NJywgICBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignTU1NJywgIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUubW9udGhzU2hvcnRSZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG4gICAgYWRkUmVnZXhUb2tlbignTU1NTScsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUubW9udGhzUmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ00nLCAnTU0nXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtNT05USF0gPSB0b0ludChpbnB1dCkgLSAxO1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ01NTScsICdNTU1NJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgdmFyIG1vbnRoID0gY29uZmlnLl9sb2NhbGUubW9udGhzUGFyc2UoaW5wdXQsIHRva2VuLCBjb25maWcuX3N0cmljdCk7XG4gICAgICAgIC8vIGlmIHdlIGRpZG4ndCBmaW5kIGEgbW9udGggbmFtZSwgbWFyayB0aGUgZGF0ZSBhcyBpbnZhbGlkLlxuICAgICAgICBpZiAobW9udGggIT0gbnVsbCkge1xuICAgICAgICAgICAgYXJyYXlbTU9OVEhdID0gbW9udGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkTW9udGggPSBpbnB1dDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgdmFyIE1PTlRIU19JTl9GT1JNQVQgPSAvRFtvRF0/KFxcW1teXFxbXFxdXSpcXF18XFxzKStNTU1NPy87XG4gICAgdmFyIGRlZmF1bHRMb2NhbGVNb250aHMgPSAnSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlcicuc3BsaXQoJ18nKTtcbiAgICBmdW5jdGlvbiBsb2NhbGVNb250aHMgKG0sIGZvcm1hdCkge1xuICAgICAgICBpZiAoIW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRocykgPyB0aGlzLl9tb250aHMgOlxuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1snc3RhbmRhbG9uZSddO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0FycmF5KHRoaXMuX21vbnRocykgPyB0aGlzLl9tb250aHNbbS5tb250aCgpXSA6XG4gICAgICAgICAgICB0aGlzLl9tb250aHNbKHRoaXMuX21vbnRocy5pc0Zvcm1hdCB8fCBNT05USFNfSU5fRk9STUFUKS50ZXN0KGZvcm1hdCkgPyAnZm9ybWF0JyA6ICdzdGFuZGFsb25lJ11bbS5tb250aCgpXTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0ID0gJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdCgnXycpO1xuICAgIGZ1bmN0aW9uIGxvY2FsZU1vbnRoc1Nob3J0IChtLCBmb3JtYXQpIHtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl9tb250aHNTaG9ydCkgPyB0aGlzLl9tb250aHNTaG9ydCA6XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRbJ3N0YW5kYWxvbmUnXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl9tb250aHNTaG9ydCkgPyB0aGlzLl9tb250aHNTaG9ydFttLm1vbnRoKCldIDpcbiAgICAgICAgICAgIHRoaXMuX21vbnRoc1Nob3J0W01PTlRIU19JTl9GT1JNQVQudGVzdChmb3JtYXQpID8gJ2Zvcm1hdCcgOiAnc3RhbmRhbG9uZSddW20ubW9udGgoKV07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlU3RyaWN0UGFyc2UobW9udGhOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgICAgICB2YXIgaSwgaWksIG1vbSwgbGxjID0gbW9udGhOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghdGhpcy5fbW9udGhzUGFyc2UpIHtcbiAgICAgICAgICAgIC8vIHRoaXMgaXMgbm90IHVzZWRcbiAgICAgICAgICAgIHRoaXMuX21vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3J0TW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgKytpKSB7XG4gICAgICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCBpXSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZVtpXSA9IHRoaXMubW9udGhzU2hvcnQobW9tLCAnJykudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSB0aGlzLm1vbnRocyhtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ01NTScpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ01NTScpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbGVNb250aHNQYXJzZSAobW9udGhOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgICAgICB2YXIgaSwgbW9tLCByZWdleDtcblxuICAgICAgICBpZiAodGhpcy5fbW9udGhzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgcmV0dXJuIGhhbmRsZVN0cmljdFBhcnNlLmNhbGwodGhpcywgbW9udGhOYW1lLCBmb3JtYXQsIHN0cmljdCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX21vbnRoc1BhcnNlKSB7XG4gICAgICAgICAgICB0aGlzLl9tb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlID0gW107XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUT0RPOiBhZGQgc29ydGluZ1xuICAgICAgICAvLyBTb3J0aW5nIG1ha2VzIHN1cmUgaWYgb25lIG1vbnRoIChvciBhYmJyKSBpcyBhIHByZWZpeCBvZiBhbm90aGVyXG4gICAgICAgIC8vIHNlZSBzb3J0aW5nIGluIGNvbXB1dGVNb250aHNQYXJzZVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgLy8gbWFrZSB0aGUgcmVnZXggaWYgd2UgZG9uJ3QgaGF2ZSBpdCBhbHJlYWR5XG4gICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIGldKTtcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgIXRoaXMuX2xvbmdNb250aHNQYXJzZVtpXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoJ14nICsgdGhpcy5tb250aHMobW9tLCAnJykucmVwbGFjZSgnLicsICcnKSArICckJywgJ2knKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cCgnXicgKyB0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnJykgKyAnJCcsICdpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXN0cmljdCAmJiAhdGhpcy5fbW9udGhzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICByZWdleCA9ICdeJyArIHRoaXMubW9udGhzKG1vbSwgJycpICsgJ3xeJyArIHRoaXMubW9udGhzU2hvcnQobW9tLCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKHJlZ2V4LnJlcGxhY2UoJy4nLCAnJyksICdpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB0ZXN0IHRoZSByZWdleFxuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBmb3JtYXQgPT09ICdNTU1NJyAmJiB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0udGVzdChtb250aE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmljdCAmJiBmb3JtYXQgPT09ICdNTU0nICYmIHRoaXMuX3Nob3J0TW9udGhzUGFyc2VbaV0udGVzdChtb250aE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFzdHJpY3QgJiYgdGhpcy5fbW9udGhzUGFyc2VbaV0udGVzdChtb250aE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBzZXRNb250aCAobW9tLCB2YWx1ZSkge1xuICAgICAgICB2YXIgZGF5T2ZNb250aDtcblxuICAgICAgICBpZiAoIW1vbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIC8vIE5vIG9wXG4gICAgICAgICAgICByZXR1cm4gbW9tO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICgvXlxcZCskLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdG9JbnQodmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IG1vbS5sb2NhbGVEYXRhKCkubW9udGhzUGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IEFub3RoZXIgc2lsZW50IGZhaWx1cmU/XG4gICAgICAgICAgICAgICAgaWYgKCFpc051bWJlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1vbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkYXlPZk1vbnRoID0gTWF0aC5taW4obW9tLmRhdGUoKSwgZGF5c0luTW9udGgobW9tLnllYXIoKSwgdmFsdWUpKTtcbiAgICAgICAgbW9tLl9kWydzZXQnICsgKG1vbS5faXNVVEMgPyAnVVRDJyA6ICcnKSArICdNb250aCddKHZhbHVlLCBkYXlPZk1vbnRoKTtcbiAgICAgICAgcmV0dXJuIG1vbTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRNb250aCAodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHNldE1vbnRoKHRoaXMsIHZhbHVlKTtcbiAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCB0cnVlKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGdldCh0aGlzLCAnTW9udGgnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldERheXNJbk1vbnRoICgpIHtcbiAgICAgICAgcmV0dXJuIGRheXNJbk1vbnRoKHRoaXMueWVhcigpLCB0aGlzLm1vbnRoKCkpO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TW9udGhzU2hvcnRSZWdleCA9IG1hdGNoV29yZDtcbiAgICBmdW5jdGlvbiBtb250aHNTaG9ydFJlZ2V4IChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fbW9udGhzUGFyc2VFeGFjdCkge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVNb250aHNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzU2hvcnRSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRSZWdleCA9IGRlZmF1bHRNb250aHNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXggJiYgaXNTdHJpY3QgP1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXggOiB0aGlzLl9tb250aHNTaG9ydFJlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRNb250aHNSZWdleCA9IG1hdGNoV29yZDtcbiAgICBmdW5jdGlvbiBtb250aHNSZWdleCAoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlTW9udGhzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfbW9udGhzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1JlZ2V4ID0gZGVmYXVsdE1vbnRoc1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4ICYmIGlzU3RyaWN0ID9cbiAgICAgICAgICAgICAgICB0aGlzLl9tb250aHNTdHJpY3RSZWdleCA6IHRoaXMuX21vbnRoc1JlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29tcHV0ZU1vbnRoc1BhcnNlICgpIHtcbiAgICAgICAgZnVuY3Rpb24gY21wTGVuUmV2KGEsIGIpIHtcbiAgICAgICAgICAgIHJldHVybiBiLmxlbmd0aCAtIGEubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHNob3J0UGllY2VzID0gW10sIGxvbmdQaWVjZXMgPSBbXSwgbWl4ZWRQaWVjZXMgPSBbXSxcbiAgICAgICAgICAgIGksIG1vbTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCBpXSk7XG4gICAgICAgICAgICBzaG9ydFBpZWNlcy5wdXNoKHRoaXMubW9udGhzU2hvcnQobW9tLCAnJykpO1xuICAgICAgICAgICAgbG9uZ1BpZWNlcy5wdXNoKHRoaXMubW9udGhzKG1vbSwgJycpKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2godGhpcy5tb250aHMobW9tLCAnJykpO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaCh0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBTb3J0aW5nIG1ha2VzIHN1cmUgaWYgb25lIG1vbnRoIChvciBhYmJyKSBpcyBhIHByZWZpeCBvZiBhbm90aGVyIGl0XG4gICAgICAgIC8vIHdpbGwgbWF0Y2ggdGhlIGxvbmdlciBwaWVjZS5cbiAgICAgICAgc2hvcnRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBsb25nUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbWl4ZWRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgc2hvcnRQaWVjZXNbaV0gPSByZWdleEVzY2FwZShzaG9ydFBpZWNlc1tpXSk7XG4gICAgICAgICAgICBsb25nUGllY2VzW2ldID0gcmVnZXhFc2NhcGUobG9uZ1BpZWNlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDI0OyBpKyspIHtcbiAgICAgICAgICAgIG1peGVkUGllY2VzW2ldID0gcmVnZXhFc2NhcGUobWl4ZWRQaWVjZXNbaV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbW9udGhzUmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBtaXhlZFBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX21vbnRoc1Nob3J0UmVnZXggPSB0aGlzLl9tb250aHNSZWdleDtcbiAgICAgICAgdGhpcy5fbW9udGhzU3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBsb25nUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIHNob3J0UGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVEYXRlICh5LCBtLCBkLCBoLCBNLCBzLCBtcykge1xuICAgICAgICAvLyBjYW4ndCBqdXN0IGFwcGx5KCkgdG8gY3JlYXRlIGEgZGF0ZTpcbiAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xLzE4MTM0OFxuICAgICAgICB2YXIgZGF0ZTtcbiAgICAgICAgLy8gdGhlIGRhdGUgY29uc3RydWN0b3IgcmVtYXBzIHllYXJzIDAtOTkgdG8gMTkwMC0xOTk5XG4gICAgICAgIGlmICh5IDwgMTAwICYmIHkgPj0gMCkge1xuICAgICAgICAgICAgLy8gcHJlc2VydmUgbGVhcCB5ZWFycyB1c2luZyBhIGZ1bGwgNDAwIHllYXIgY3ljbGUsIHRoZW4gcmVzZXRcbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZSh5ICsgNDAwLCBtLCBkLCBoLCBNLCBzLCBtcyk7XG4gICAgICAgICAgICBpZiAoaXNGaW5pdGUoZGF0ZS5nZXRGdWxsWWVhcigpKSkge1xuICAgICAgICAgICAgICAgIGRhdGUuc2V0RnVsbFllYXIoeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRlID0gbmV3IERhdGUoeSwgbSwgZCwgaCwgTSwgcywgbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlVVRDRGF0ZSAoeSkge1xuICAgICAgICB2YXIgZGF0ZTtcbiAgICAgICAgLy8gdGhlIERhdGUuVVRDIGZ1bmN0aW9uIHJlbWFwcyB5ZWFycyAwLTk5IHRvIDE5MDAtMTk5OVxuICAgICAgICBpZiAoeSA8IDEwMCAmJiB5ID49IDApIHtcbiAgICAgICAgICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcbiAgICAgICAgICAgIC8vIHByZXNlcnZlIGxlYXAgeWVhcnMgdXNpbmcgYSBmdWxsIDQwMCB5ZWFyIGN5Y2xlLCB0aGVuIHJlc2V0XG4gICAgICAgICAgICBhcmdzWzBdID0geSArIDQwMDtcbiAgICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQy5hcHBseShudWxsLCBhcmdzKSk7XG4gICAgICAgICAgICBpZiAoaXNGaW5pdGUoZGF0ZS5nZXRVVENGdWxsWWVhcigpKSkge1xuICAgICAgICAgICAgICAgIGRhdGUuc2V0VVRDRnVsbFllYXIoeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMuYXBwbHkobnVsbCwgYXJndW1lbnRzKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICB9XG5cbiAgICAvLyBzdGFydC1vZi1maXJzdC13ZWVrIC0gc3RhcnQtb2YteWVhclxuICAgIGZ1bmN0aW9uIGZpcnN0V2Vla09mZnNldCh5ZWFyLCBkb3csIGRveSkge1xuICAgICAgICB2YXIgLy8gZmlyc3Qtd2VlayBkYXkgLS0gd2hpY2ggamFudWFyeSBpcyBhbHdheXMgaW4gdGhlIGZpcnN0IHdlZWsgKDQgZm9yIGlzbywgMSBmb3Igb3RoZXIpXG4gICAgICAgICAgICBmd2QgPSA3ICsgZG93IC0gZG95LFxuICAgICAgICAgICAgLy8gZmlyc3Qtd2VlayBkYXkgbG9jYWwgd2Vla2RheSAtLSB3aGljaCBsb2NhbCB3ZWVrZGF5IGlzIGZ3ZFxuICAgICAgICAgICAgZndkbHcgPSAoNyArIGNyZWF0ZVVUQ0RhdGUoeWVhciwgMCwgZndkKS5nZXRVVENEYXkoKSAtIGRvdykgJSA3O1xuXG4gICAgICAgIHJldHVybiAtZndkbHcgKyBmd2QgLSAxO1xuICAgIH1cblxuICAgIC8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGUjQ2FsY3VsYXRpbmdfYV9kYXRlX2dpdmVuX3RoZV95ZWFyLjJDX3dlZWtfbnVtYmVyX2FuZF93ZWVrZGF5XG4gICAgZnVuY3Rpb24gZGF5T2ZZZWFyRnJvbVdlZWtzKHllYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KSB7XG4gICAgICAgIHZhciBsb2NhbFdlZWtkYXkgPSAoNyArIHdlZWtkYXkgLSBkb3cpICUgNyxcbiAgICAgICAgICAgIHdlZWtPZmZzZXQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciwgZG93LCBkb3kpLFxuICAgICAgICAgICAgZGF5T2ZZZWFyID0gMSArIDcgKiAod2VlayAtIDEpICsgbG9jYWxXZWVrZGF5ICsgd2Vla09mZnNldCxcbiAgICAgICAgICAgIHJlc1llYXIsIHJlc0RheU9mWWVhcjtcblxuICAgICAgICBpZiAoZGF5T2ZZZWFyIDw9IDApIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSB5ZWFyIC0gMTtcbiAgICAgICAgICAgIHJlc0RheU9mWWVhciA9IGRheXNJblllYXIocmVzWWVhcikgKyBkYXlPZlllYXI7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF5T2ZZZWFyID4gZGF5c0luWWVhcih5ZWFyKSkge1xuICAgICAgICAgICAgcmVzWWVhciA9IHllYXIgKyAxO1xuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyID0gZGF5T2ZZZWFyIC0gZGF5c0luWWVhcih5ZWFyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSB5ZWFyO1xuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyID0gZGF5T2ZZZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHllYXI6IHJlc1llYXIsXG4gICAgICAgICAgICBkYXlPZlllYXI6IHJlc0RheU9mWWVhclxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtPZlllYXIobW9tLCBkb3csIGRveSkge1xuICAgICAgICB2YXIgd2Vla09mZnNldCA9IGZpcnN0V2Vla09mZnNldChtb20ueWVhcigpLCBkb3csIGRveSksXG4gICAgICAgICAgICB3ZWVrID0gTWF0aC5mbG9vcigobW9tLmRheU9mWWVhcigpIC0gd2Vla09mZnNldCAtIDEpIC8gNykgKyAxLFxuICAgICAgICAgICAgcmVzV2VlaywgcmVzWWVhcjtcblxuICAgICAgICBpZiAod2VlayA8IDEpIHtcbiAgICAgICAgICAgIHJlc1llYXIgPSBtb20ueWVhcigpIC0gMTtcbiAgICAgICAgICAgIHJlc1dlZWsgPSB3ZWVrICsgd2Vla3NJblllYXIocmVzWWVhciwgZG93LCBkb3kpO1xuICAgICAgICB9IGVsc2UgaWYgKHdlZWsgPiB3ZWVrc0luWWVhcihtb20ueWVhcigpLCBkb3csIGRveSkpIHtcbiAgICAgICAgICAgIHJlc1dlZWsgPSB3ZWVrIC0gd2Vla3NJblllYXIobW9tLnllYXIoKSwgZG93LCBkb3kpO1xuICAgICAgICAgICAgcmVzWWVhciA9IG1vbS55ZWFyKCkgKyAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzWWVhciA9IG1vbS55ZWFyKCk7XG4gICAgICAgICAgICByZXNXZWVrID0gd2VlaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB3ZWVrOiByZXNXZWVrLFxuICAgICAgICAgICAgeWVhcjogcmVzWWVhclxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdlZWtzSW5ZZWFyKHllYXIsIGRvdywgZG95KSB7XG4gICAgICAgIHZhciB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSxcbiAgICAgICAgICAgIHdlZWtPZmZzZXROZXh0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIgKyAxLCBkb3csIGRveSk7XG4gICAgICAgIHJldHVybiAoZGF5c0luWWVhcih5ZWFyKSAtIHdlZWtPZmZzZXQgKyB3ZWVrT2Zmc2V0TmV4dCkgLyA3O1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCd3JywgWyd3dycsIDJdLCAnd28nLCAnd2VlaycpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdXJywgWydXVycsIDJdLCAnV28nLCAnaXNvV2VlaycpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrJywgJ3cnKTtcbiAgICBhZGRVbml0QWxpYXMoJ2lzb1dlZWsnLCAnVycpO1xuXG4gICAgLy8gUFJJT1JJVElFU1xuXG4gICAgYWRkVW5pdFByaW9yaXR5KCd3ZWVrJywgNSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrJywgNSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCd3JywgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignd3cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignVycsICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1dXJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWyd3JywgJ3d3JywgJ1cnLCAnV1cnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHdlZWtbdG9rZW4uc3Vic3RyKDAsIDEpXSA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIC8vIExPQ0FMRVNcblxuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWsgKG1vbSkge1xuICAgICAgICByZXR1cm4gd2Vla09mWWVhcihtb20sIHRoaXMuX3dlZWsuZG93LCB0aGlzLl93ZWVrLmRveSkud2VlaztcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZVdlZWsgPSB7XG4gICAgICAgIGRvdyA6IDAsIC8vIFN1bmRheSBpcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAgICBkb3kgOiA2ICAvLyBUaGUgd2VlayB0aGF0IGNvbnRhaW5zIEphbiA2dGggaXMgdGhlIGZpcnN0IHdlZWsgb2YgdGhlIHllYXIuXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGxvY2FsZUZpcnN0RGF5T2ZXZWVrICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWsuZG93O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZUZpcnN0RGF5T2ZZZWFyICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWsuZG95O1xuICAgIH1cblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldFdlZWsgKGlucHV0KSB7XG4gICAgICAgIHZhciB3ZWVrID0gdGhpcy5sb2NhbGVEYXRhKCkud2Vlayh0aGlzKTtcbiAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyB3ZWVrIDogdGhpcy5hZGQoKGlucHV0IC0gd2VlaykgKiA3LCAnZCcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldElTT1dlZWsgKGlucHV0KSB7XG4gICAgICAgIHZhciB3ZWVrID0gd2Vla09mWWVhcih0aGlzLCAxLCA0KS53ZWVrO1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWsgOiB0aGlzLmFkZCgoaW5wdXQgLSB3ZWVrKSAqIDcsICdkJyk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2QnLCAwLCAnZG8nLCAnZGF5Jyk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignZGQnLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5c01pbih0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2RkZCcsIDAsIDAsIGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzU2hvcnQodGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdkZGRkJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXModGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdlJywgMCwgMCwgJ3dlZWtkYXknKTtcbiAgICBhZGRGb3JtYXRUb2tlbignRScsIDAsIDAsICdpc29XZWVrZGF5Jyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2RheScsICdkJyk7XG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrZGF5JywgJ2UnKTtcbiAgICBhZGRVbml0QWxpYXMoJ2lzb1dlZWtkYXknLCAnRScpO1xuXG4gICAgLy8gUFJJT1JJVFlcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2RheScsIDExKTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ3dlZWtkYXknLCAxMSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrZGF5JywgMTEpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignZCcsICAgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignZScsICAgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignRScsICAgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignZGQnLCAgIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUud2Vla2RheXNNaW5SZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG4gICAgYWRkUmVnZXhUb2tlbignZGRkJywgICBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzU2hvcnRSZWdleChpc1N0cmljdCk7XG4gICAgfSk7XG4gICAgYWRkUmVnZXhUb2tlbignZGRkZCcsICAgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS53ZWVrZGF5c1JlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZGQnLCAnZGRkJywgJ2RkZGQnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHZhciB3ZWVrZGF5ID0gY29uZmlnLl9sb2NhbGUud2Vla2RheXNQYXJzZShpbnB1dCwgdG9rZW4sIGNvbmZpZy5fc3RyaWN0KTtcbiAgICAgICAgLy8gaWYgd2UgZGlkbid0IGdldCBhIHdlZWtkYXkgbmFtZSwgbWFyayB0aGUgZGF0ZSBhcyBpbnZhbGlkXG4gICAgICAgIGlmICh3ZWVrZGF5ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHdlZWsuZCA9IHdlZWtkYXk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkV2Vla2RheSA9IGlucHV0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBhZGRXZWVrUGFyc2VUb2tlbihbJ2QnLCAnZScsICdFJ10sIGZ1bmN0aW9uIChpbnB1dCwgd2VlaywgY29uZmlnLCB0b2tlbikge1xuICAgICAgICB3ZWVrW3Rva2VuXSA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIGZ1bmN0aW9uIHBhcnNlV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzTmFOKGlucHV0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KGlucHV0LCAxMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCA9IGxvY2FsZS53ZWVrZGF5c1BhcnNlKGlucHV0KTtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlSXNvV2Vla2RheShpbnB1dCwgbG9jYWxlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQpICUgNyB8fCA3O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc05hTihpbnB1dCkgPyBudWxsIDogaW5wdXQ7XG4gICAgfVxuXG4gICAgLy8gTE9DQUxFU1xuICAgIGZ1bmN0aW9uIHNoaWZ0V2Vla2RheXMgKHdzLCBuKSB7XG4gICAgICAgIHJldHVybiB3cy5zbGljZShuLCA3KS5jb25jYXQod3Muc2xpY2UoMCwgbikpO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TG9jYWxlV2Vla2RheXMgPSAnU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXknLnNwbGl0KCdfJyk7XG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXMgKG0sIGZvcm1hdCkge1xuICAgICAgICB2YXIgd2Vla2RheXMgPSBpc0FycmF5KHRoaXMuX3dlZWtkYXlzKSA/IHRoaXMuX3dlZWtkYXlzIDpcbiAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzWyhtICYmIG0gIT09IHRydWUgJiYgdGhpcy5fd2Vla2RheXMuaXNGb3JtYXQudGVzdChmb3JtYXQpKSA/ICdmb3JtYXQnIDogJ3N0YW5kYWxvbmUnXTtcbiAgICAgICAgcmV0dXJuIChtID09PSB0cnVlKSA/IHNoaWZ0V2Vla2RheXMod2Vla2RheXMsIHRoaXMuX3dlZWsuZG93KVxuICAgICAgICAgICAgOiAobSkgPyB3ZWVrZGF5c1ttLmRheSgpXSA6IHdlZWtkYXlzO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TG9jYWxlV2Vla2RheXNTaG9ydCA9ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KCdfJyk7XG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNTaG9ydCAobSkge1xuICAgICAgICByZXR1cm4gKG0gPT09IHRydWUpID8gc2hpZnRXZWVrZGF5cyh0aGlzLl93ZWVrZGF5c1Nob3J0LCB0aGlzLl93ZWVrLmRvdylcbiAgICAgICAgICAgIDogKG0pID8gdGhpcy5fd2Vla2RheXNTaG9ydFttLmRheSgpXSA6IHRoaXMuX3dlZWtkYXlzU2hvcnQ7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVXZWVrZGF5c01pbiA9ICdTdV9Nb19UdV9XZV9UaF9Gcl9TYScuc3BsaXQoJ18nKTtcbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrZGF5c01pbiAobSkge1xuICAgICAgICByZXR1cm4gKG0gPT09IHRydWUpID8gc2hpZnRXZWVrZGF5cyh0aGlzLl93ZWVrZGF5c01pbiwgdGhpcy5fd2Vlay5kb3cpXG4gICAgICAgICAgICA6IChtKSA/IHRoaXMuX3dlZWtkYXlzTWluW20uZGF5KCldIDogdGhpcy5fd2Vla2RheXNNaW47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlU3RyaWN0UGFyc2UkMSh3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksIGlpLCBtb20sIGxsYyA9IHdlZWtkYXlOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghdGhpcy5fd2Vla2RheXNQYXJzZSkge1xuICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlID0gW107XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyArK2kpIHtcbiAgICAgICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIDFdKS5kYXkoaSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXSA9IHRoaXMud2Vla2RheXNNaW4obW9tLCAnJykudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0gPSB0aGlzLndlZWtkYXlzU2hvcnQobW9tLCAnJykudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldID0gdGhpcy53ZWVrZGF5cyhtb20sICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0cmljdCkge1xuICAgICAgICAgICAgaWYgKGZvcm1hdCA9PT0gJ2RkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdkZGRkJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlV2Vla2RheXNQYXJzZSAod2Vla2RheU5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLCBtb20sIHJlZ2V4O1xuXG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVTdHJpY3RQYXJzZSQxLmNhbGwodGhpcywgd2Vla2RheU5hbWUsIGZvcm1hdCwgc3RyaWN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fd2Vla2RheXNQYXJzZSkge1xuICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9mdWxsV2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgLy8gbWFrZSB0aGUgcmVnZXggaWYgd2UgZG9uJ3QgaGF2ZSBpdCBhbHJlYWR5XG5cbiAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgMV0pLmRheShpKTtcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgIXRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKCdeJyArIHRoaXMud2Vla2RheXMobW9tLCAnJykucmVwbGFjZSgnLicsICdcXFxcLj8nKSArICckJywgJ2knKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKCdeJyArIHRoaXMud2Vla2RheXNTaG9ydChtb20sICcnKS5yZXBsYWNlKCcuJywgJ1xcXFwuPycpICsgJyQnLCAnaScpO1xuICAgICAgICAgICAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKCdeJyArIHRoaXMud2Vla2RheXNNaW4obW9tLCAnJykucmVwbGFjZSgnLicsICdcXFxcLj8nKSArICckJywgJ2knKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5fd2Vla2RheXNQYXJzZVtpXSkge1xuICAgICAgICAgICAgICAgIHJlZ2V4ID0gJ14nICsgdGhpcy53ZWVrZGF5cyhtb20sICcnKSArICd8XicgKyB0aGlzLndlZWtkYXlzU2hvcnQobW9tLCAnJykgKyAnfF4nICsgdGhpcy53ZWVrZGF5c01pbihtb20sICcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cChyZWdleC5yZXBsYWNlKCcuJywgJycpLCAnaScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gdGVzdCB0aGUgcmVnZXhcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnZGRkZCcgJiYgdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RyaWN0ICYmIGZvcm1hdCA9PT0gJ2RkZCcgJiYgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmljdCAmJiBmb3JtYXQgPT09ICdkZCcgJiYgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyaWN0ICYmIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldERheU9mV2VlayAoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkYXkgPSB0aGlzLl9pc1VUQyA/IHRoaXMuX2QuZ2V0VVRDRGF5KCkgOiB0aGlzLl9kLmdldERheSgpO1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaW5wdXQgPSBwYXJzZVdlZWtkYXkoaW5wdXQsIHRoaXMubG9jYWxlRGF0YSgpKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZChpbnB1dCAtIGRheSwgJ2QnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBkYXk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRMb2NhbGVEYXlPZldlZWsgKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgd2Vla2RheSA9ICh0aGlzLmRheSgpICsgNyAtIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRvdykgJSA3O1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWtkYXkgOiB0aGlzLmFkZChpbnB1dCAtIHdlZWtkYXksICdkJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0SVNPRGF5T2ZXZWVrIChpbnB1dCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgIT0gbnVsbCA/IHRoaXMgOiBOYU47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBiZWhhdmVzIHRoZSBzYW1lIGFzIG1vbWVudCNkYXkgZXhjZXB0XG4gICAgICAgIC8vIGFzIGEgZ2V0dGVyLCByZXR1cm5zIDcgaW5zdGVhZCBvZiAwICgxLTcgcmFuZ2UgaW5zdGVhZCBvZiAwLTYpXG4gICAgICAgIC8vIGFzIGEgc2V0dGVyLCBzdW5kYXkgc2hvdWxkIGJlbG9uZyB0byB0aGUgcHJldmlvdXMgd2Vlay5cblxuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIHdlZWtkYXkgPSBwYXJzZUlzb1dlZWtkYXkoaW5wdXQsIHRoaXMubG9jYWxlRGF0YSgpKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRheSh0aGlzLmRheSgpICUgNyA/IHdlZWtkYXkgOiB3ZWVrZGF5IC0gNyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXkoKSB8fCA3O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRXZWVrZGF5c1JlZ2V4ID0gbWF0Y2hXb3JkO1xuICAgIGZ1bmN0aW9uIHdlZWtkYXlzUmVnZXggKGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVXZWVrZGF5c1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1JlZ2V4ID0gZGVmYXVsdFdlZWtkYXlzUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleCAmJiBpc1N0cmljdCA/XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleCA6IHRoaXMuX3dlZWtkYXlzUmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdFdlZWtkYXlzU2hvcnRSZWdleCA9IG1hdGNoV29yZDtcbiAgICBmdW5jdGlvbiB3ZWVrZGF5c1Nob3J0UmVnZXggKGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVXZWVrZGF5c1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNTaG9ydFJlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXggPSBkZWZhdWx0V2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCAmJiBpc1N0cmljdCA/XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4IDogdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRXZWVrZGF5c01pblJlZ2V4ID0gbWF0Y2hXb3JkO1xuICAgIGZ1bmN0aW9uIHdlZWtkYXlzTWluUmVnZXggKGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVXZWVrZGF5c1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c01pblJlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl93ZWVrZGF5c01pblJlZ2V4ID0gZGVmYXVsdFdlZWtkYXlzTWluUmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleCAmJiBpc1N0cmljdCA/XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleCA6IHRoaXMuX3dlZWtkYXlzTWluUmVnZXg7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIGZ1bmN0aW9uIGNvbXB1dGVXZWVrZGF5c1BhcnNlICgpIHtcbiAgICAgICAgZnVuY3Rpb24gY21wTGVuUmV2KGEsIGIpIHtcbiAgICAgICAgICAgIHJldHVybiBiLmxlbmd0aCAtIGEubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG1pblBpZWNlcyA9IFtdLCBzaG9ydFBpZWNlcyA9IFtdLCBsb25nUGllY2VzID0gW10sIG1peGVkUGllY2VzID0gW10sXG4gICAgICAgICAgICBpLCBtb20sIG1pbnAsIHNob3J0cCwgbG9uZ3A7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICAgICAgbWlucCA9IHRoaXMud2Vla2RheXNNaW4obW9tLCAnJyk7XG4gICAgICAgICAgICBzaG9ydHAgPSB0aGlzLndlZWtkYXlzU2hvcnQobW9tLCAnJyk7XG4gICAgICAgICAgICBsb25ncCA9IHRoaXMud2Vla2RheXMobW9tLCAnJyk7XG4gICAgICAgICAgICBtaW5QaWVjZXMucHVzaChtaW5wKTtcbiAgICAgICAgICAgIHNob3J0UGllY2VzLnB1c2goc2hvcnRwKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXMucHVzaChsb25ncCk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKG1pbnApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChzaG9ydHApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChsb25ncCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSB3ZWVrZGF5IChvciBhYmJyKSBpcyBhIHByZWZpeCBvZiBhbm90aGVyIGl0XG4gICAgICAgIC8vIHdpbGwgbWF0Y2ggdGhlIGxvbmdlciBwaWVjZS5cbiAgICAgICAgbWluUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgc2hvcnRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBsb25nUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbWl4ZWRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICBzaG9ydFBpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKHNob3J0UGllY2VzW2ldKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXNbaV0gPSByZWdleEVzY2FwZShsb25nUGllY2VzW2ldKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzW2ldID0gcmVnZXhFc2NhcGUobWl4ZWRQaWVjZXNbaV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fd2Vla2RheXNSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIG1peGVkUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4ID0gdGhpcy5fd2Vla2RheXNSZWdleDtcbiAgICAgICAgdGhpcy5fd2Vla2RheXNNaW5SZWdleCA9IHRoaXMuX3dlZWtkYXlzUmVnZXg7XG5cbiAgICAgICAgdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoJ14oJyArIGxvbmdQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBzaG9ydFBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBtaW5QaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGZ1bmN0aW9uIGhGb3JtYXQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvdXJzKCkgJSAxMiB8fCAxMjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBrRm9ybWF0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3VycygpIHx8IDI0O1xuICAgIH1cblxuICAgIGFkZEZvcm1hdFRva2VuKCdIJywgWydISCcsIDJdLCAwLCAnaG91cicpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdoJywgWydoaCcsIDJdLCAwLCBoRm9ybWF0KTtcbiAgICBhZGRGb3JtYXRUb2tlbignaycsIFsna2snLCAyXSwgMCwga0Zvcm1hdCk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignaG1tJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJycgKyBoRm9ybWF0LmFwcGx5KHRoaXMpICsgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2htbXNzJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJycgKyBoRm9ybWF0LmFwcGx5KHRoaXMpICsgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpICtcbiAgICAgICAgICAgIHplcm9GaWxsKHRoaXMuc2Vjb25kcygpLCAyKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdIbW0nLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnJyArIHRoaXMuaG91cnMoKSArIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdIbW1zcycsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICcnICsgdGhpcy5ob3VycygpICsgemVyb0ZpbGwodGhpcy5taW51dGVzKCksIDIpICtcbiAgICAgICAgICAgIHplcm9GaWxsKHRoaXMuc2Vjb25kcygpLCAyKTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1lcmlkaWVtICh0b2tlbiwgbG93ZXJjYXNlKSB7XG4gICAgICAgIGFkZEZvcm1hdFRva2VuKHRva2VuLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubWVyaWRpZW0odGhpcy5ob3VycygpLCB0aGlzLm1pbnV0ZXMoKSwgbG93ZXJjYXNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbWVyaWRpZW0oJ2EnLCB0cnVlKTtcbiAgICBtZXJpZGllbSgnQScsIGZhbHNlKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnaG91cicsICdoJyk7XG5cbiAgICAvLyBQUklPUklUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnaG91cicsIDEzKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGZ1bmN0aW9uIG1hdGNoTWVyaWRpZW0gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5fbWVyaWRpZW1QYXJzZTtcbiAgICB9XG5cbiAgICBhZGRSZWdleFRva2VuKCdhJywgIG1hdGNoTWVyaWRpZW0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0EnLCAgbWF0Y2hNZXJpZGllbSk7XG4gICAgYWRkUmVnZXhUb2tlbignSCcsICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2gnLCAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdrJywgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignSEgnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignaGgnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbigna2snLCBtYXRjaDF0bzIsIG1hdGNoMik7XG5cbiAgICBhZGRSZWdleFRva2VuKCdobW0nLCBtYXRjaDN0bzQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2htbXNzJywgbWF0Y2g1dG82KTtcbiAgICBhZGRSZWdleFRva2VuKCdIbW0nLCBtYXRjaDN0bzQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0htbXNzJywgbWF0Y2g1dG82KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydIJywgJ0hIJ10sIEhPVVIpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydrJywgJ2trJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIga0lucHV0ID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICBhcnJheVtIT1VSXSA9IGtJbnB1dCA9PT0gMjQgPyAwIDoga0lucHV0O1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oWydhJywgJ0EnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5faXNQbSA9IGNvbmZpZy5fbG9jYWxlLmlzUE0oaW5wdXQpO1xuICAgICAgICBjb25maWcuX21lcmlkaWVtID0gaW5wdXQ7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ2gnLCAnaGgnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQpO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdobW0nLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIHBvcyA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvcykpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvcykpO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdobW1zcycsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zMSA9IGlucHV0Lmxlbmd0aCAtIDQ7XG4gICAgICAgIHZhciBwb3MyID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zMSkpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczEsIDIpKTtcbiAgICAgICAgYXJyYXlbU0VDT05EXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MyKSk7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB0cnVlO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ0htbScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICB2YXIgcG9zID0gaW5wdXQubGVuZ3RoIC0gMjtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSB0b0ludChpbnB1dC5zdWJzdHIoMCwgcG9zKSk7XG4gICAgICAgIGFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zKSk7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignSG1tc3MnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIHBvczEgPSBpbnB1dC5sZW5ndGggLSA0O1xuICAgICAgICB2YXIgcG9zMiA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvczEpKTtcbiAgICAgICAgYXJyYXlbTUlOVVRFXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MxLCAyKSk7XG4gICAgICAgIGFycmF5W1NFQ09ORF0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zMikpO1xuICAgIH0pO1xuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlSXNQTSAoaW5wdXQpIHtcbiAgICAgICAgLy8gSUU4IFF1aXJrcyBNb2RlICYgSUU3IFN0YW5kYXJkcyBNb2RlIGRvIG5vdCBhbGxvdyBhY2Nlc3Npbmcgc3RyaW5ncyBsaWtlIGFycmF5c1xuICAgICAgICAvLyBVc2luZyBjaGFyQXQgc2hvdWxkIGJlIG1vcmUgY29tcGF0aWJsZS5cbiAgICAgICAgcmV0dXJuICgoaW5wdXQgKyAnJykudG9Mb3dlckNhc2UoKS5jaGFyQXQoMCkgPT09ICdwJyk7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVNZXJpZGllbVBhcnNlID0gL1thcF1cXC4/bT9cXC4/L2k7XG4gICAgZnVuY3Rpb24gbG9jYWxlTWVyaWRpZW0gKGhvdXJzLCBtaW51dGVzLCBpc0xvd2VyKSB7XG4gICAgICAgIGlmIChob3VycyA+IDExKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNMb3dlciA/ICdwbScgOiAnUE0nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAnYW0nIDogJ0FNJztcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgLy8gU2V0dGluZyB0aGUgaG91ciBzaG91bGQga2VlcCB0aGUgdGltZSwgYmVjYXVzZSB0aGUgdXNlciBleHBsaWNpdGx5XG4gICAgLy8gc3BlY2lmaWVkIHdoaWNoIGhvdXIgdGhleSB3YW50LiBTbyB0cnlpbmcgdG8gbWFpbnRhaW4gdGhlIHNhbWUgaG91ciAoaW5cbiAgICAvLyBhIG5ldyB0aW1lem9uZSkgbWFrZXMgc2Vuc2UuIEFkZGluZy9zdWJ0cmFjdGluZyBob3VycyBkb2VzIG5vdCBmb2xsb3dcbiAgICAvLyB0aGlzIHJ1bGUuXG4gICAgdmFyIGdldFNldEhvdXIgPSBtYWtlR2V0U2V0KCdIb3VycycsIHRydWUpO1xuXG4gICAgdmFyIGJhc2VDb25maWcgPSB7XG4gICAgICAgIGNhbGVuZGFyOiBkZWZhdWx0Q2FsZW5kYXIsXG4gICAgICAgIGxvbmdEYXRlRm9ybWF0OiBkZWZhdWx0TG9uZ0RhdGVGb3JtYXQsXG4gICAgICAgIGludmFsaWREYXRlOiBkZWZhdWx0SW52YWxpZERhdGUsXG4gICAgICAgIG9yZGluYWw6IGRlZmF1bHRPcmRpbmFsLFxuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiBkZWZhdWx0RGF5T2ZNb250aE9yZGluYWxQYXJzZSxcbiAgICAgICAgcmVsYXRpdmVUaW1lOiBkZWZhdWx0UmVsYXRpdmVUaW1lLFxuXG4gICAgICAgIG1vbnRoczogZGVmYXVsdExvY2FsZU1vbnRocyxcbiAgICAgICAgbW9udGhzU2hvcnQ6IGRlZmF1bHRMb2NhbGVNb250aHNTaG9ydCxcblxuICAgICAgICB3ZWVrOiBkZWZhdWx0TG9jYWxlV2VlayxcblxuICAgICAgICB3ZWVrZGF5czogZGVmYXVsdExvY2FsZVdlZWtkYXlzLFxuICAgICAgICB3ZWVrZGF5c01pbjogZGVmYXVsdExvY2FsZVdlZWtkYXlzTWluLFxuICAgICAgICB3ZWVrZGF5c1Nob3J0OiBkZWZhdWx0TG9jYWxlV2Vla2RheXNTaG9ydCxcblxuICAgICAgICBtZXJpZGllbVBhcnNlOiBkZWZhdWx0TG9jYWxlTWVyaWRpZW1QYXJzZVxuICAgIH07XG5cbiAgICAvLyBpbnRlcm5hbCBzdG9yYWdlIGZvciBsb2NhbGUgY29uZmlnIGZpbGVzXG4gICAgdmFyIGxvY2FsZXMgPSB7fTtcbiAgICB2YXIgbG9jYWxlRmFtaWxpZXMgPSB7fTtcbiAgICB2YXIgZ2xvYmFsTG9jYWxlO1xuXG4gICAgZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlKGtleSkge1xuICAgICAgICByZXR1cm4ga2V5ID8ga2V5LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgnXycsICctJykgOiBrZXk7XG4gICAgfVxuXG4gICAgLy8gcGljayB0aGUgbG9jYWxlIGZyb20gdGhlIGFycmF5XG4gICAgLy8gdHJ5IFsnZW4tYXUnLCAnZW4tZ2InXSBhcyAnZW4tYXUnLCAnZW4tZ2InLCAnZW4nLCBhcyBpbiBtb3ZlIHRocm91Z2ggdGhlIGxpc3QgdHJ5aW5nIGVhY2hcbiAgICAvLyBzdWJzdHJpbmcgZnJvbSBtb3N0IHNwZWNpZmljIHRvIGxlYXN0LCBidXQgbW92ZSB0byB0aGUgbmV4dCBhcnJheSBpdGVtIGlmIGl0J3MgYSBtb3JlIHNwZWNpZmljIHZhcmlhbnQgdGhhbiB0aGUgY3VycmVudCByb290XG4gICAgZnVuY3Rpb24gY2hvb3NlTG9jYWxlKG5hbWVzKSB7XG4gICAgICAgIHZhciBpID0gMCwgaiwgbmV4dCwgbG9jYWxlLCBzcGxpdDtcblxuICAgICAgICB3aGlsZSAoaSA8IG5hbWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgc3BsaXQgPSBub3JtYWxpemVMb2NhbGUobmFtZXNbaV0pLnNwbGl0KCctJyk7XG4gICAgICAgICAgICBqID0gc3BsaXQubGVuZ3RoO1xuICAgICAgICAgICAgbmV4dCA9IG5vcm1hbGl6ZUxvY2FsZShuYW1lc1tpICsgMV0pO1xuICAgICAgICAgICAgbmV4dCA9IG5leHQgPyBuZXh0LnNwbGl0KCctJykgOiBudWxsO1xuICAgICAgICAgICAgd2hpbGUgKGogPiAwKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxlID0gbG9hZExvY2FsZShzcGxpdC5zbGljZSgwLCBqKS5qb2luKCctJykpO1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5leHQgJiYgbmV4dC5sZW5ndGggPj0gaiAmJiBjb21wYXJlQXJyYXlzKHNwbGl0LCBuZXh0LCB0cnVlKSA+PSBqIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAvL3RoZSBuZXh0IGFycmF5IGl0ZW0gaXMgYmV0dGVyIHRoYW4gYSBzaGFsbG93ZXIgc3Vic3RyaW5nIG9mIHRoaXMgb25lXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBqLS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdsb2JhbExvY2FsZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2FkTG9jYWxlKG5hbWUpIHtcbiAgICAgICAgdmFyIG9sZExvY2FsZSA9IG51bGw7XG4gICAgICAgIC8vIFRPRE86IEZpbmQgYSBiZXR0ZXIgd2F5IHRvIHJlZ2lzdGVyIGFuZCBsb2FkIGFsbCB0aGUgbG9jYWxlcyBpbiBOb2RlXG4gICAgICAgIGlmICghbG9jYWxlc1tuYW1lXSAmJiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpICYmXG4gICAgICAgICAgICAgICAgbW9kdWxlICYmIG1vZHVsZS5leHBvcnRzKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIG9sZExvY2FsZSA9IGdsb2JhbExvY2FsZS5fYWJicjtcbiAgICAgICAgICAgICAgICB2YXIgYWxpYXNlZFJlcXVpcmUgPSByZXF1aXJlO1xuICAgICAgICAgICAgICAgIGFsaWFzZWRSZXF1aXJlKCcuL2xvY2FsZS8nICsgbmFtZSk7XG4gICAgICAgICAgICAgICAgZ2V0U2V0R2xvYmFsTG9jYWxlKG9sZExvY2FsZSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb2NhbGVzW25hbWVdO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBsb2FkIGxvY2FsZSBhbmQgdGhlbiBzZXQgdGhlIGdsb2JhbCBsb2NhbGUuICBJZlxuICAgIC8vIG5vIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGluLCBpdCB3aWxsIHNpbXBseSByZXR1cm4gdGhlIGN1cnJlbnQgZ2xvYmFsXG4gICAgLy8gbG9jYWxlIGtleS5cbiAgICBmdW5jdGlvbiBnZXRTZXRHbG9iYWxMb2NhbGUgKGtleSwgdmFsdWVzKSB7XG4gICAgICAgIHZhciBkYXRhO1xuICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICBpZiAoaXNVbmRlZmluZWQodmFsdWVzKSkge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBnZXRMb2NhbGUoa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGRhdGEgPSBkZWZpbmVMb2NhbGUoa2V5LCB2YWx1ZXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIC8vIG1vbWVudC5kdXJhdGlvbi5fbG9jYWxlID0gbW9tZW50Ll9sb2NhbGUgPSBkYXRhO1xuICAgICAgICAgICAgICAgIGdsb2JhbExvY2FsZSA9IGRhdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoKHR5cGVvZiBjb25zb2xlICE9PSAgJ3VuZGVmaW5lZCcpICYmIGNvbnNvbGUud2Fybikge1xuICAgICAgICAgICAgICAgICAgICAvL3dhcm4gdXNlciBpZiBhcmd1bWVudHMgYXJlIHBhc3NlZCBidXQgdGhlIGxvY2FsZSBjb3VsZCBub3QgYmUgc2V0XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignTG9jYWxlICcgKyBrZXkgKyAgJyBub3QgZm91bmQuIERpZCB5b3UgZm9yZ2V0IHRvIGxvYWQgaXQ/Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdsb2JhbExvY2FsZS5fYWJicjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkZWZpbmVMb2NhbGUgKG5hbWUsIGNvbmZpZykge1xuICAgICAgICBpZiAoY29uZmlnICE9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgbG9jYWxlLCBwYXJlbnRDb25maWcgPSBiYXNlQ29uZmlnO1xuICAgICAgICAgICAgY29uZmlnLmFiYnIgPSBuYW1lO1xuICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRlcHJlY2F0ZVNpbXBsZSgnZGVmaW5lTG9jYWxlT3ZlcnJpZGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBtb21lbnQudXBkYXRlTG9jYWxlKGxvY2FsZU5hbWUsIGNvbmZpZykgdG8gY2hhbmdlICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2FuIGV4aXN0aW5nIGxvY2FsZS4gbW9tZW50LmRlZmluZUxvY2FsZShsb2NhbGVOYW1lLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdjb25maWcpIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIGNyZWF0aW5nIGEgbmV3IGxvY2FsZSAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9kZWZpbmUtbG9jYWxlLyBmb3IgbW9yZSBpbmZvLicpO1xuICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IGxvY2FsZXNbbmFtZV0uX2NvbmZpZztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLnBhcmVudExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsZXNbY29uZmlnLnBhcmVudExvY2FsZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdLl9jb25maWc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlID0gbG9hZExvY2FsZShjb25maWcucGFyZW50TG9jYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGUuX2NvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbG9jYWxlRmFtaWxpZXNbY29uZmlnLnBhcmVudExvY2FsZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tjb25maWcucGFyZW50TG9jYWxlXSA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlRmFtaWxpZXNbY29uZmlnLnBhcmVudExvY2FsZV0ucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBuZXcgTG9jYWxlKG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNvbmZpZykpO1xuXG4gICAgICAgICAgICBpZiAobG9jYWxlRmFtaWxpZXNbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICBsb2NhbGVGYW1pbGllc1tuYW1lXS5mb3JFYWNoKGZ1bmN0aW9uICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmluZUxvY2FsZSh4Lm5hbWUsIHguY29uZmlnKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdCBmb3Igbm93OiBhbHNvIHNldCB0aGUgbG9jYWxlXG4gICAgICAgICAgICAvLyBtYWtlIHN1cmUgd2Ugc2V0IHRoZSBsb2NhbGUgQUZURVIgYWxsIGNoaWxkIGxvY2FsZXMgaGF2ZSBiZWVuXG4gICAgICAgICAgICAvLyBjcmVhdGVkLCBzbyB3ZSB3b24ndCBlbmQgdXAgd2l0aCB0aGUgY2hpbGQgbG9jYWxlIHNldC5cbiAgICAgICAgICAgIGdldFNldEdsb2JhbExvY2FsZShuYW1lKTtcblxuXG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHVzZWZ1bCBmb3IgdGVzdGluZ1xuICAgICAgICAgICAgZGVsZXRlIGxvY2FsZXNbbmFtZV07XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVwZGF0ZUxvY2FsZShuYW1lLCBjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZyAhPSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgbG9jYWxlLCB0bXBMb2NhbGUsIHBhcmVudENvbmZpZyA9IGJhc2VDb25maWc7XG4gICAgICAgICAgICAvLyBNRVJHRVxuICAgICAgICAgICAgdG1wTG9jYWxlID0gbG9hZExvY2FsZShuYW1lKTtcbiAgICAgICAgICAgIGlmICh0bXBMb2NhbGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHBhcmVudENvbmZpZyA9IHRtcExvY2FsZS5fY29uZmlnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uZmlnID0gbWVyZ2VDb25maWdzKHBhcmVudENvbmZpZywgY29uZmlnKTtcbiAgICAgICAgICAgIGxvY2FsZSA9IG5ldyBMb2NhbGUoY29uZmlnKTtcbiAgICAgICAgICAgIGxvY2FsZS5wYXJlbnRMb2NhbGUgPSBsb2NhbGVzW25hbWVdO1xuICAgICAgICAgICAgbG9jYWxlc1tuYW1lXSA9IGxvY2FsZTtcblxuICAgICAgICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdCBmb3Igbm93OiBhbHNvIHNldCB0aGUgbG9jYWxlXG4gICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUobmFtZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBwYXNzIG51bGwgZm9yIGNvbmZpZyB0byB1bnVwZGF0ZSwgdXNlZnVsIGZvciB0ZXN0c1xuICAgICAgICAgICAgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGVzW25hbWVdLnBhcmVudExvY2FsZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBsb2NhbGVzW25hbWVdLnBhcmVudExvY2FsZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvY2FsZXNbbmFtZV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG4gICAgfVxuXG4gICAgLy8gcmV0dXJucyBsb2NhbGUgZGF0YVxuICAgIGZ1bmN0aW9uIGdldExvY2FsZSAoa2V5KSB7XG4gICAgICAgIHZhciBsb2NhbGU7XG5cbiAgICAgICAgaWYgKGtleSAmJiBrZXkuX2xvY2FsZSAmJiBrZXkuX2xvY2FsZS5fYWJicikge1xuICAgICAgICAgICAga2V5ID0ga2V5Ll9sb2NhbGUuX2FiYnI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWtleSkge1xuICAgICAgICAgICAgcmV0dXJuIGdsb2JhbExvY2FsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNBcnJheShrZXkpKSB7XG4gICAgICAgICAgICAvL3Nob3J0LWNpcmN1aXQgZXZlcnl0aGluZyBlbHNlXG4gICAgICAgICAgICBsb2NhbGUgPSBsb2FkTG9jYWxlKGtleSk7XG4gICAgICAgICAgICBpZiAobG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGtleSA9IFtrZXldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNob29zZUxvY2FsZShrZXkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RMb2NhbGVzKCkge1xuICAgICAgICByZXR1cm4ga2V5cyhsb2NhbGVzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja092ZXJmbG93IChtKSB7XG4gICAgICAgIHZhciBvdmVyZmxvdztcbiAgICAgICAgdmFyIGEgPSBtLl9hO1xuXG4gICAgICAgIGlmIChhICYmIGdldFBhcnNpbmdGbGFncyhtKS5vdmVyZmxvdyA9PT0gLTIpIHtcbiAgICAgICAgICAgIG92ZXJmbG93ID1cbiAgICAgICAgICAgICAgICBhW01PTlRIXSAgICAgICA8IDAgfHwgYVtNT05USF0gICAgICAgPiAxMSAgPyBNT05USCA6XG4gICAgICAgICAgICAgICAgYVtEQVRFXSAgICAgICAgPCAxIHx8IGFbREFURV0gICAgICAgID4gZGF5c0luTW9udGgoYVtZRUFSXSwgYVtNT05USF0pID8gREFURSA6XG4gICAgICAgICAgICAgICAgYVtIT1VSXSAgICAgICAgPCAwIHx8IGFbSE9VUl0gICAgICAgID4gMjQgfHwgKGFbSE9VUl0gPT09IDI0ICYmIChhW01JTlVURV0gIT09IDAgfHwgYVtTRUNPTkRdICE9PSAwIHx8IGFbTUlMTElTRUNPTkRdICE9PSAwKSkgPyBIT1VSIDpcbiAgICAgICAgICAgICAgICBhW01JTlVURV0gICAgICA8IDAgfHwgYVtNSU5VVEVdICAgICAgPiA1OSAgPyBNSU5VVEUgOlxuICAgICAgICAgICAgICAgIGFbU0VDT05EXSAgICAgIDwgMCB8fCBhW1NFQ09ORF0gICAgICA+IDU5ICA/IFNFQ09ORCA6XG4gICAgICAgICAgICAgICAgYVtNSUxMSVNFQ09ORF0gPCAwIHx8IGFbTUlMTElTRUNPTkRdID4gOTk5ID8gTUlMTElTRUNPTkQgOlxuICAgICAgICAgICAgICAgIC0xO1xuXG4gICAgICAgICAgICBpZiAoZ2V0UGFyc2luZ0ZsYWdzKG0pLl9vdmVyZmxvd0RheU9mWWVhciAmJiAob3ZlcmZsb3cgPCBZRUFSIHx8IG92ZXJmbG93ID4gREFURSkpIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdyA9IERBVEU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZ2V0UGFyc2luZ0ZsYWdzKG0pLl9vdmVyZmxvd1dlZWtzICYmIG92ZXJmbG93ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93ID0gV0VFSztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChnZXRQYXJzaW5nRmxhZ3MobSkuX292ZXJmbG93V2Vla2RheSAmJiBvdmVyZmxvdyA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdyA9IFdFRUtEQVk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhtKS5vdmVyZmxvdyA9IG92ZXJmbG93O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgLy8gUGljayB0aGUgZmlyc3QgZGVmaW5lZCBvZiB0d28gb3IgdGhyZWUgYXJndW1lbnRzLlxuICAgIGZ1bmN0aW9uIGRlZmF1bHRzKGEsIGIsIGMpIHtcbiAgICAgICAgaWYgKGEgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGIgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3VycmVudERhdGVBcnJheShjb25maWcpIHtcbiAgICAgICAgLy8gaG9va3MgaXMgYWN0dWFsbHkgdGhlIGV4cG9ydGVkIG1vbWVudCBvYmplY3RcbiAgICAgICAgdmFyIG5vd1ZhbHVlID0gbmV3IERhdGUoaG9va3Mubm93KCkpO1xuICAgICAgICBpZiAoY29uZmlnLl91c2VVVEMpIHtcbiAgICAgICAgICAgIHJldHVybiBbbm93VmFsdWUuZ2V0VVRDRnVsbFllYXIoKSwgbm93VmFsdWUuZ2V0VVRDTW9udGgoKSwgbm93VmFsdWUuZ2V0VVRDRGF0ZSgpXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW25vd1ZhbHVlLmdldEZ1bGxZZWFyKCksIG5vd1ZhbHVlLmdldE1vbnRoKCksIG5vd1ZhbHVlLmdldERhdGUoKV07XG4gICAgfVxuXG4gICAgLy8gY29udmVydCBhbiBhcnJheSB0byBhIGRhdGUuXG4gICAgLy8gdGhlIGFycmF5IHNob3VsZCBtaXJyb3IgdGhlIHBhcmFtZXRlcnMgYmVsb3dcbiAgICAvLyBub3RlOiBhbGwgdmFsdWVzIHBhc3QgdGhlIHllYXIgYXJlIG9wdGlvbmFsIGFuZCB3aWxsIGRlZmF1bHQgdG8gdGhlIGxvd2VzdCBwb3NzaWJsZSB2YWx1ZS5cbiAgICAvLyBbeWVhciwgbW9udGgsIGRheSAsIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBtaWxsaXNlY29uZF1cbiAgICBmdW5jdGlvbiBjb25maWdGcm9tQXJyYXkgKGNvbmZpZykge1xuICAgICAgICB2YXIgaSwgZGF0ZSwgaW5wdXQgPSBbXSwgY3VycmVudERhdGUsIGV4cGVjdGVkV2Vla2RheSwgeWVhclRvVXNlO1xuXG4gICAgICAgIGlmIChjb25maWcuX2QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnREYXRlID0gY3VycmVudERhdGVBcnJheShjb25maWcpO1xuXG4gICAgICAgIC8vY29tcHV0ZSBkYXkgb2YgdGhlIHllYXIgZnJvbSB3ZWVrcyBhbmQgd2Vla2RheXNcbiAgICAgICAgaWYgKGNvbmZpZy5fdyAmJiBjb25maWcuX2FbREFURV0gPT0gbnVsbCAmJiBjb25maWcuX2FbTU9OVEhdID09IG51bGwpIHtcbiAgICAgICAgICAgIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9pZiB0aGUgZGF5IG9mIHRoZSB5ZWFyIGlzIHNldCwgZmlndXJlIG91dCB3aGF0IGl0IGlzXG4gICAgICAgIGlmIChjb25maWcuX2RheU9mWWVhciAhPSBudWxsKSB7XG4gICAgICAgICAgICB5ZWFyVG9Vc2UgPSBkZWZhdWx0cyhjb25maWcuX2FbWUVBUl0sIGN1cnJlbnREYXRlW1lFQVJdKTtcblxuICAgICAgICAgICAgaWYgKGNvbmZpZy5fZGF5T2ZZZWFyID4gZGF5c0luWWVhcih5ZWFyVG9Vc2UpIHx8IGNvbmZpZy5fZGF5T2ZZZWFyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuX292ZXJmbG93RGF5T2ZZZWFyID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGF0ZSA9IGNyZWF0ZVVUQ0RhdGUoeWVhclRvVXNlLCAwLCBjb25maWcuX2RheU9mWWVhcik7XG4gICAgICAgICAgICBjb25maWcuX2FbTU9OVEhdID0gZGF0ZS5nZXRVVENNb250aCgpO1xuICAgICAgICAgICAgY29uZmlnLl9hW0RBVEVdID0gZGF0ZS5nZXRVVENEYXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWZhdWx0IHRvIGN1cnJlbnQgZGF0ZS5cbiAgICAgICAgLy8gKiBpZiBubyB5ZWFyLCBtb250aCwgZGF5IG9mIG1vbnRoIGFyZSBnaXZlbiwgZGVmYXVsdCB0byB0b2RheVxuICAgICAgICAvLyAqIGlmIGRheSBvZiBtb250aCBpcyBnaXZlbiwgZGVmYXVsdCBtb250aCBhbmQgeWVhclxuICAgICAgICAvLyAqIGlmIG1vbnRoIGlzIGdpdmVuLCBkZWZhdWx0IG9ubHkgeWVhclxuICAgICAgICAvLyAqIGlmIHllYXIgaXMgZ2l2ZW4sIGRvbid0IGRlZmF1bHQgYW55dGhpbmdcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDMgJiYgY29uZmlnLl9hW2ldID09IG51bGw7ICsraSkge1xuICAgICAgICAgICAgY29uZmlnLl9hW2ldID0gaW5wdXRbaV0gPSBjdXJyZW50RGF0ZVtpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFplcm8gb3V0IHdoYXRldmVyIHdhcyBub3QgZGVmYXVsdGVkLCBpbmNsdWRpbmcgdGltZVxuICAgICAgICBmb3IgKDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgY29uZmlnLl9hW2ldID0gaW5wdXRbaV0gPSAoY29uZmlnLl9hW2ldID09IG51bGwpID8gKGkgPT09IDIgPyAxIDogMCkgOiBjb25maWcuX2FbaV07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBmb3IgMjQ6MDA6MDAuMDAwXG4gICAgICAgIGlmIChjb25maWcuX2FbSE9VUl0gPT09IDI0ICYmXG4gICAgICAgICAgICAgICAgY29uZmlnLl9hW01JTlVURV0gPT09IDAgJiZcbiAgICAgICAgICAgICAgICBjb25maWcuX2FbU0VDT05EXSA9PT0gMCAmJlxuICAgICAgICAgICAgICAgIGNvbmZpZy5fYVtNSUxMSVNFQ09ORF0gPT09IDApIHtcbiAgICAgICAgICAgIGNvbmZpZy5fbmV4dERheSA9IHRydWU7XG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uZmlnLl9kID0gKGNvbmZpZy5fdXNlVVRDID8gY3JlYXRlVVRDRGF0ZSA6IGNyZWF0ZURhdGUpLmFwcGx5KG51bGwsIGlucHV0KTtcbiAgICAgICAgZXhwZWN0ZWRXZWVrZGF5ID0gY29uZmlnLl91c2VVVEMgPyBjb25maWcuX2QuZ2V0VVRDRGF5KCkgOiBjb25maWcuX2QuZ2V0RGF5KCk7XG5cbiAgICAgICAgLy8gQXBwbHkgdGltZXpvbmUgb2Zmc2V0IGZyb20gaW5wdXQuIFRoZSBhY3R1YWwgdXRjT2Zmc2V0IGNhbiBiZSBjaGFuZ2VkXG4gICAgICAgIC8vIHdpdGggcGFyc2Vab25lLlxuICAgICAgICBpZiAoY29uZmlnLl90em0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uZmlnLl9kLnNldFVUQ01pbnV0ZXMoY29uZmlnLl9kLmdldFVUQ01pbnV0ZXMoKSAtIGNvbmZpZy5fdHptKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb25maWcuX25leHREYXkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtIT1VSXSA9IDI0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2hlY2sgZm9yIG1pc21hdGNoaW5nIGRheSBvZiB3ZWVrXG4gICAgICAgIGlmIChjb25maWcuX3cgJiYgdHlwZW9mIGNvbmZpZy5fdy5kICE9PSAndW5kZWZpbmVkJyAmJiBjb25maWcuX3cuZCAhPT0gZXhwZWN0ZWRXZWVrZGF5KSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS53ZWVrZGF5TWlzbWF0Y2ggPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGF5T2ZZZWFyRnJvbVdlZWtJbmZvKGNvbmZpZykge1xuICAgICAgICB2YXIgdywgd2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95LCB0ZW1wLCB3ZWVrZGF5T3ZlcmZsb3c7XG5cbiAgICAgICAgdyA9IGNvbmZpZy5fdztcbiAgICAgICAgaWYgKHcuR0cgIT0gbnVsbCB8fCB3LlcgIT0gbnVsbCB8fCB3LkUgIT0gbnVsbCkge1xuICAgICAgICAgICAgZG93ID0gMTtcbiAgICAgICAgICAgIGRveSA9IDQ7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IFdlIG5lZWQgdG8gdGFrZSB0aGUgY3VycmVudCBpc29XZWVrWWVhciwgYnV0IHRoYXQgZGVwZW5kcyBvblxuICAgICAgICAgICAgLy8gaG93IHdlIGludGVycHJldCBub3cgKGxvY2FsLCB1dGMsIGZpeGVkIG9mZnNldCkuIFNvIGNyZWF0ZVxuICAgICAgICAgICAgLy8gYSBub3cgdmVyc2lvbiBvZiBjdXJyZW50IGNvbmZpZyAodGFrZSBsb2NhbC91dGMvb2Zmc2V0IGZsYWdzLCBhbmRcbiAgICAgICAgICAgIC8vIGNyZWF0ZSBub3cpLlxuICAgICAgICAgICAgd2Vla1llYXIgPSBkZWZhdWx0cyh3LkdHLCBjb25maWcuX2FbWUVBUl0sIHdlZWtPZlllYXIoY3JlYXRlTG9jYWwoKSwgMSwgNCkueWVhcik7XG4gICAgICAgICAgICB3ZWVrID0gZGVmYXVsdHMody5XLCAxKTtcbiAgICAgICAgICAgIHdlZWtkYXkgPSBkZWZhdWx0cyh3LkUsIDEpO1xuICAgICAgICAgICAgaWYgKHdlZWtkYXkgPCAxIHx8IHdlZWtkYXkgPiA3KSB7XG4gICAgICAgICAgICAgICAgd2Vla2RheU92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGRvdyA9IGNvbmZpZy5fbG9jYWxlLl93ZWVrLmRvdztcbiAgICAgICAgICAgIGRveSA9IGNvbmZpZy5fbG9jYWxlLl93ZWVrLmRveTtcblxuICAgICAgICAgICAgdmFyIGN1cldlZWsgPSB3ZWVrT2ZZZWFyKGNyZWF0ZUxvY2FsKCksIGRvdywgZG95KTtcblxuICAgICAgICAgICAgd2Vla1llYXIgPSBkZWZhdWx0cyh3LmdnLCBjb25maWcuX2FbWUVBUl0sIGN1cldlZWsueWVhcik7XG5cbiAgICAgICAgICAgIC8vIERlZmF1bHQgdG8gY3VycmVudCB3ZWVrLlxuICAgICAgICAgICAgd2VlayA9IGRlZmF1bHRzKHcudywgY3VyV2Vlay53ZWVrKTtcblxuICAgICAgICAgICAgaWYgKHcuZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gd2Vla2RheSAtLSBsb3cgZGF5IG51bWJlcnMgYXJlIGNvbnNpZGVyZWQgbmV4dCB3ZWVrXG4gICAgICAgICAgICAgICAgd2Vla2RheSA9IHcuZDtcbiAgICAgICAgICAgICAgICBpZiAod2Vla2RheSA8IDAgfHwgd2Vla2RheSA+IDYpIHtcbiAgICAgICAgICAgICAgICAgICAgd2Vla2RheU92ZXJmbG93ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHcuZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gbG9jYWwgd2Vla2RheSAtLSBjb3VudGluZyBzdGFydHMgZnJvbSBiZWdpbm5pbmcgb2Ygd2Vla1xuICAgICAgICAgICAgICAgIHdlZWtkYXkgPSB3LmUgKyBkb3c7XG4gICAgICAgICAgICAgICAgaWYgKHcuZSA8IDAgfHwgdy5lID4gNikge1xuICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5T3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byBiZWdpbm5pbmcgb2Ygd2Vla1xuICAgICAgICAgICAgICAgIHdlZWtkYXkgPSBkb3c7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdlZWsgPCAxIHx8IHdlZWsgPiB3ZWVrc0luWWVhcih3ZWVrWWVhciwgZG93LCBkb3kpKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5fb3ZlcmZsb3dXZWVrcyA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAod2Vla2RheU92ZXJmbG93ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd1dlZWtkYXkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGVtcCA9IGRheU9mWWVhckZyb21XZWVrcyh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpO1xuICAgICAgICAgICAgY29uZmlnLl9hW1lFQVJdID0gdGVtcC55ZWFyO1xuICAgICAgICAgICAgY29uZmlnLl9kYXlPZlllYXIgPSB0ZW1wLmRheU9mWWVhcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGlzbyA4NjAxIHJlZ2V4XG4gICAgLy8gMDAwMC0wMC0wMCAwMDAwLVcwMCBvciAwMDAwLVcwMC0wICsgVCArIDAwIG9yIDAwOjAwIG9yIDAwOjAwOjAwIG9yIDAwOjAwOjAwLjAwMCArICswMDowMCBvciArMDAwMCBvciArMDApXG4gICAgdmFyIGV4dGVuZGVkSXNvUmVnZXggPSAvXlxccyooKD86WystXVxcZHs2fXxcXGR7NH0pLSg/OlxcZFxcZC1cXGRcXGR8V1xcZFxcZC1cXGR8V1xcZFxcZHxcXGRcXGRcXGR8XFxkXFxkKSkoPzooVHwgKShcXGRcXGQoPzo6XFxkXFxkKD86OlxcZFxcZCg/OlsuLF1cXGQrKT8pPyk/KShbXFwrXFwtXVxcZFxcZCg/Ojo/XFxkXFxkKT98XFxzKlopPyk/JC87XG4gICAgdmFyIGJhc2ljSXNvUmVnZXggPSAvXlxccyooKD86WystXVxcZHs2fXxcXGR7NH0pKD86XFxkXFxkXFxkXFxkfFdcXGRcXGRcXGR8V1xcZFxcZHxcXGRcXGRcXGR8XFxkXFxkKSkoPzooVHwgKShcXGRcXGQoPzpcXGRcXGQoPzpcXGRcXGQoPzpbLixdXFxkKyk/KT8pPykoW1xcK1xcLV1cXGRcXGQoPzo6P1xcZFxcZCk/fFxccypaKT8pPyQvO1xuXG4gICAgdmFyIHR6UmVnZXggPSAvWnxbKy1dXFxkXFxkKD86Oj9cXGRcXGQpPy87XG5cbiAgICB2YXIgaXNvRGF0ZXMgPSBbXG4gICAgICAgIFsnWVlZWVlZLU1NLUREJywgL1srLV1cXGR7Nn0tXFxkXFxkLVxcZFxcZC9dLFxuICAgICAgICBbJ1lZWVktTU0tREQnLCAvXFxkezR9LVxcZFxcZC1cXGRcXGQvXSxcbiAgICAgICAgWydHR0dHLVtXXVdXLUUnLCAvXFxkezR9LVdcXGRcXGQtXFxkL10sXG4gICAgICAgIFsnR0dHRy1bV11XVycsIC9cXGR7NH0tV1xcZFxcZC8sIGZhbHNlXSxcbiAgICAgICAgWydZWVlZLURERCcsIC9cXGR7NH0tXFxkezN9L10sXG4gICAgICAgIFsnWVlZWS1NTScsIC9cXGR7NH0tXFxkXFxkLywgZmFsc2VdLFxuICAgICAgICBbJ1lZWVlZWU1NREQnLCAvWystXVxcZHsxMH0vXSxcbiAgICAgICAgWydZWVlZTU1ERCcsIC9cXGR7OH0vXSxcbiAgICAgICAgLy8gWVlZWU1NIGlzIE5PVCBhbGxvd2VkIGJ5IHRoZSBzdGFuZGFyZFxuICAgICAgICBbJ0dHR0dbV11XV0UnLCAvXFxkezR9V1xcZHszfS9dLFxuICAgICAgICBbJ0dHR0dbV11XVycsIC9cXGR7NH1XXFxkezJ9LywgZmFsc2VdLFxuICAgICAgICBbJ1lZWVlEREQnLCAvXFxkezd9L11cbiAgICBdO1xuXG4gICAgLy8gaXNvIHRpbWUgZm9ybWF0cyBhbmQgcmVnZXhlc1xuICAgIHZhciBpc29UaW1lcyA9IFtcbiAgICAgICAgWydISDptbTpzcy5TU1NTJywgL1xcZFxcZDpcXGRcXGQ6XFxkXFxkXFwuXFxkKy9dLFxuICAgICAgICBbJ0hIOm1tOnNzLFNTU1MnLCAvXFxkXFxkOlxcZFxcZDpcXGRcXGQsXFxkKy9dLFxuICAgICAgICBbJ0hIOm1tOnNzJywgL1xcZFxcZDpcXGRcXGQ6XFxkXFxkL10sXG4gICAgICAgIFsnSEg6bW0nLCAvXFxkXFxkOlxcZFxcZC9dLFxuICAgICAgICBbJ0hIbW1zcy5TU1NTJywgL1xcZFxcZFxcZFxcZFxcZFxcZFxcLlxcZCsvXSxcbiAgICAgICAgWydISG1tc3MsU1NTUycsIC9cXGRcXGRcXGRcXGRcXGRcXGQsXFxkKy9dLFxuICAgICAgICBbJ0hIbW1zcycsIC9cXGRcXGRcXGRcXGRcXGRcXGQvXSxcbiAgICAgICAgWydISG1tJywgL1xcZFxcZFxcZFxcZC9dLFxuICAgICAgICBbJ0hIJywgL1xcZFxcZC9dXG4gICAgXTtcblxuICAgIHZhciBhc3BOZXRKc29uUmVnZXggPSAvXlxcLz9EYXRlXFwoKFxcLT9cXGQrKS9pO1xuXG4gICAgLy8gZGF0ZSBmcm9tIGlzbyBmb3JtYXRcbiAgICBmdW5jdGlvbiBjb25maWdGcm9tSVNPKGNvbmZpZykge1xuICAgICAgICB2YXIgaSwgbCxcbiAgICAgICAgICAgIHN0cmluZyA9IGNvbmZpZy5faSxcbiAgICAgICAgICAgIG1hdGNoID0gZXh0ZW5kZWRJc29SZWdleC5leGVjKHN0cmluZykgfHwgYmFzaWNJc29SZWdleC5leGVjKHN0cmluZyksXG4gICAgICAgICAgICBhbGxvd1RpbWUsIGRhdGVGb3JtYXQsIHRpbWVGb3JtYXQsIHR6Rm9ybWF0O1xuXG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaXNvID0gdHJ1ZTtcblxuICAgICAgICAgICAgZm9yIChpID0gMCwgbCA9IGlzb0RhdGVzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChpc29EYXRlc1tpXVsxXS5leGVjKG1hdGNoWzFdKSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ID0gaXNvRGF0ZXNbaV1bMF07XG4gICAgICAgICAgICAgICAgICAgIGFsbG93VGltZSA9IGlzb0RhdGVzW2ldWzJdICE9PSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGVGb3JtYXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaFszXSkge1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IDAsIGwgPSBpc29UaW1lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzb1RpbWVzW2ldWzFdLmV4ZWMobWF0Y2hbM10pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXRjaFsyXSBzaG91bGQgYmUgJ1QnIG9yIHNwYWNlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lRm9ybWF0ID0gKG1hdGNoWzJdIHx8ICcgJykgKyBpc29UaW1lc1tpXVswXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aW1lRm9ybWF0ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWFsbG93VGltZSAmJiB0aW1lRm9ybWF0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2hbNF0pIHtcbiAgICAgICAgICAgICAgICBpZiAodHpSZWdleC5leGVjKG1hdGNoWzRdKSkge1xuICAgICAgICAgICAgICAgICAgICB0ekZvcm1hdCA9ICdaJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbmZpZy5fZiA9IGRhdGVGb3JtYXQgKyAodGltZUZvcm1hdCB8fCAnJykgKyAodHpGb3JtYXQgfHwgJycpO1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSRkMgMjgyMiByZWdleDogRm9yIGRldGFpbHMgc2VlIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyODIyI3NlY3Rpb24tMy4zXG4gICAgdmFyIHJmYzI4MjIgPSAvXig/OihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLD9cXHMpPyhcXGR7MSwyfSlcXHMoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpXFxzKFxcZHsyLDR9KVxccyhcXGRcXGQpOihcXGRcXGQpKD86OihcXGRcXGQpKT9cXHMoPzooVVR8R01UfFtFQ01QXVtTRF1UKXwoW1p6XSl8KFsrLV1cXGR7NH0pKSQvO1xuXG4gICAgZnVuY3Rpb24gZXh0cmFjdEZyb21SRkMyODIyU3RyaW5ncyh5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyLCBob3VyU3RyLCBtaW51dGVTdHIsIHNlY29uZFN0cikge1xuICAgICAgICB2YXIgcmVzdWx0ID0gW1xuICAgICAgICAgICAgdW50cnVuY2F0ZVllYXIoeWVhclN0ciksXG4gICAgICAgICAgICBkZWZhdWx0TG9jYWxlTW9udGhzU2hvcnQuaW5kZXhPZihtb250aFN0ciksXG4gICAgICAgICAgICBwYXJzZUludChkYXlTdHIsIDEwKSxcbiAgICAgICAgICAgIHBhcnNlSW50KGhvdXJTdHIsIDEwKSxcbiAgICAgICAgICAgIHBhcnNlSW50KG1pbnV0ZVN0ciwgMTApXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKHNlY29uZFN0cikge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2gocGFyc2VJbnQoc2Vjb25kU3RyLCAxMCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1bnRydW5jYXRlWWVhcih5ZWFyU3RyKSB7XG4gICAgICAgIHZhciB5ZWFyID0gcGFyc2VJbnQoeWVhclN0ciwgMTApO1xuICAgICAgICBpZiAoeWVhciA8PSA0OSkge1xuICAgICAgICAgICAgcmV0dXJuIDIwMDAgKyB5ZWFyO1xuICAgICAgICB9IGVsc2UgaWYgKHllYXIgPD0gOTk5KSB7XG4gICAgICAgICAgICByZXR1cm4gMTkwMCArIHllYXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHllYXI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJlcHJvY2Vzc1JGQzI4MjIocykge1xuICAgICAgICAvLyBSZW1vdmUgY29tbWVudHMgYW5kIGZvbGRpbmcgd2hpdGVzcGFjZSBhbmQgcmVwbGFjZSBtdWx0aXBsZS1zcGFjZXMgd2l0aCBhIHNpbmdsZSBzcGFjZVxuICAgICAgICByZXR1cm4gcy5yZXBsYWNlKC9cXChbXildKlxcKXxbXFxuXFx0XS9nLCAnICcpLnJlcGxhY2UoLyhcXHNcXHMrKS9nLCAnICcpLnJlcGxhY2UoL15cXHNcXHMqLywgJycpLnJlcGxhY2UoL1xcc1xccyokLywgJycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrV2Vla2RheSh3ZWVrZGF5U3RyLCBwYXJzZWRJbnB1dCwgY29uZmlnKSB7XG4gICAgICAgIGlmICh3ZWVrZGF5U3RyKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBSZXBsYWNlIHRoZSB2YW5pbGxhIEpTIERhdGUgb2JqZWN0IHdpdGggYW4gaW5kZXBlbnRlbnQgZGF5LW9mLXdlZWsgY2hlY2suXG4gICAgICAgICAgICB2YXIgd2Vla2RheVByb3ZpZGVkID0gZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQuaW5kZXhPZih3ZWVrZGF5U3RyKSxcbiAgICAgICAgICAgICAgICB3ZWVrZGF5QWN0dWFsID0gbmV3IERhdGUocGFyc2VkSW5wdXRbMF0sIHBhcnNlZElucHV0WzFdLCBwYXJzZWRJbnB1dFsyXSkuZ2V0RGF5KCk7XG4gICAgICAgICAgICBpZiAod2Vla2RheVByb3ZpZGVkICE9PSB3ZWVrZGF5QWN0dWFsKSB7XG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykud2Vla2RheU1pc21hdGNoID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmFyIG9ic09mZnNldHMgPSB7XG4gICAgICAgIFVUOiAwLFxuICAgICAgICBHTVQ6IDAsXG4gICAgICAgIEVEVDogLTQgKiA2MCxcbiAgICAgICAgRVNUOiAtNSAqIDYwLFxuICAgICAgICBDRFQ6IC01ICogNjAsXG4gICAgICAgIENTVDogLTYgKiA2MCxcbiAgICAgICAgTURUOiAtNiAqIDYwLFxuICAgICAgICBNU1Q6IC03ICogNjAsXG4gICAgICAgIFBEVDogLTcgKiA2MCxcbiAgICAgICAgUFNUOiAtOCAqIDYwXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGNhbGN1bGF0ZU9mZnNldChvYnNPZmZzZXQsIG1pbGl0YXJ5T2Zmc2V0LCBudW1PZmZzZXQpIHtcbiAgICAgICAgaWYgKG9ic09mZnNldCkge1xuICAgICAgICAgICAgcmV0dXJuIG9ic09mZnNldHNbb2JzT2Zmc2V0XTtcbiAgICAgICAgfSBlbHNlIGlmIChtaWxpdGFyeU9mZnNldCkge1xuICAgICAgICAgICAgLy8gdGhlIG9ubHkgYWxsb3dlZCBtaWxpdGFyeSB0eiBpcyBaXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBobSA9IHBhcnNlSW50KG51bU9mZnNldCwgMTApO1xuICAgICAgICAgICAgdmFyIG0gPSBobSAlIDEwMCwgaCA9IChobSAtIG0pIC8gMTAwO1xuICAgICAgICAgICAgcmV0dXJuIGggKiA2MCArIG07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkYXRlIGFuZCB0aW1lIGZyb20gcmVmIDI4MjIgZm9ybWF0XG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnKSB7XG4gICAgICAgIHZhciBtYXRjaCA9IHJmYzI4MjIuZXhlYyhwcmVwcm9jZXNzUkZDMjgyMihjb25maWcuX2kpKTtcbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICB2YXIgcGFyc2VkQXJyYXkgPSBleHRyYWN0RnJvbVJGQzI4MjJTdHJpbmdzKG1hdGNoWzRdLCBtYXRjaFszXSwgbWF0Y2hbMl0sIG1hdGNoWzVdLCBtYXRjaFs2XSwgbWF0Y2hbN10pO1xuICAgICAgICAgICAgaWYgKCFjaGVja1dlZWtkYXkobWF0Y2hbMV0sIHBhcnNlZEFycmF5LCBjb25maWcpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25maWcuX2EgPSBwYXJzZWRBcnJheTtcbiAgICAgICAgICAgIGNvbmZpZy5fdHptID0gY2FsY3VsYXRlT2Zmc2V0KG1hdGNoWzhdLCBtYXRjaFs5XSwgbWF0Y2hbMTBdKTtcblxuICAgICAgICAgICAgY29uZmlnLl9kID0gY3JlYXRlVVRDRGF0ZS5hcHBseShudWxsLCBjb25maWcuX2EpO1xuICAgICAgICAgICAgY29uZmlnLl9kLnNldFVUQ01pbnV0ZXMoY29uZmlnLl9kLmdldFVUQ01pbnV0ZXMoKSAtIGNvbmZpZy5fdHptKTtcblxuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykucmZjMjgyMiA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRhdGUgZnJvbSBpc28gZm9ybWF0IG9yIGZhbGxiYWNrXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZyhjb25maWcpIHtcbiAgICAgICAgdmFyIG1hdGNoZWQgPSBhc3BOZXRKc29uUmVnZXguZXhlYyhjb25maWcuX2kpO1xuXG4gICAgICAgIGlmIChtYXRjaGVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSgrbWF0Y2hlZFsxXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWdGcm9tSVNPKGNvbmZpZyk7XG4gICAgICAgIGlmIChjb25maWcuX2lzVmFsaWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBkZWxldGUgY29uZmlnLl9pc1ZhbGlkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnKTtcbiAgICAgICAgaWYgKGNvbmZpZy5faXNWYWxpZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBjb25maWcuX2lzVmFsaWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaW5hbCBhdHRlbXB0LCB1c2UgSW5wdXQgRmFsbGJhY2tcbiAgICAgICAgaG9va3MuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soY29uZmlnKTtcbiAgICB9XG5cbiAgICBob29rcy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ3ZhbHVlIHByb3ZpZGVkIGlzIG5vdCBpbiBhIHJlY29nbml6ZWQgUkZDMjgyMiBvciBJU08gZm9ybWF0LiBtb21lbnQgY29uc3RydWN0aW9uIGZhbGxzIGJhY2sgdG8ganMgRGF0ZSgpLCAnICtcbiAgICAgICAgJ3doaWNoIGlzIG5vdCByZWxpYWJsZSBhY3Jvc3MgYWxsIGJyb3dzZXJzIGFuZCB2ZXJzaW9ucy4gTm9uIFJGQzI4MjIvSVNPIGRhdGUgZm9ybWF0cyBhcmUgJyArXG4gICAgICAgICdkaXNjb3VyYWdlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIG1ham9yIHJlbGVhc2UuIFBsZWFzZSByZWZlciB0byAnICtcbiAgICAgICAgJ2h0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvanMtZGF0ZS8gZm9yIG1vcmUgaW5mby4nLFxuICAgICAgICBmdW5jdGlvbiAoY29uZmlnKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShjb25maWcuX2kgKyAoY29uZmlnLl91c2VVVEMgPyAnIFVUQycgOiAnJykpO1xuICAgICAgICB9XG4gICAgKTtcblxuICAgIC8vIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHRoZSBJU08gc3RhbmRhcmRcbiAgICBob29rcy5JU09fODYwMSA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgLy8gY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gdGhlIFJGQyAyODIyIGZvcm1cbiAgICBob29rcy5SRkNfMjgyMiA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgLy8gZGF0ZSBmcm9tIHN0cmluZyBhbmQgZm9ybWF0IHN0cmluZ1xuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnKSB7XG4gICAgICAgIC8vIFRPRE86IE1vdmUgdGhpcyB0byBhbm90aGVyIHBhcnQgb2YgdGhlIGNyZWF0aW9uIGZsb3cgdG8gcHJldmVudCBjaXJjdWxhciBkZXBzXG4gICAgICAgIGlmIChjb25maWcuX2YgPT09IGhvb2tzLklTT184NjAxKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tSVNPKGNvbmZpZyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy5fZiA9PT0gaG9va3MuUkZDXzI4MjIpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21SRkMyODIyKGNvbmZpZyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uZmlnLl9hID0gW107XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmVtcHR5ID0gdHJ1ZTtcblxuICAgICAgICAvLyBUaGlzIGFycmF5IGlzIHVzZWQgdG8gbWFrZSBhIERhdGUsIGVpdGhlciB3aXRoIGBuZXcgRGF0ZWAgb3IgYERhdGUuVVRDYFxuICAgICAgICB2YXIgc3RyaW5nID0gJycgKyBjb25maWcuX2ksXG4gICAgICAgICAgICBpLCBwYXJzZWRJbnB1dCwgdG9rZW5zLCB0b2tlbiwgc2tpcHBlZCxcbiAgICAgICAgICAgIHN0cmluZ0xlbmd0aCA9IHN0cmluZy5sZW5ndGgsXG4gICAgICAgICAgICB0b3RhbFBhcnNlZElucHV0TGVuZ3RoID0gMDtcblxuICAgICAgICB0b2tlbnMgPSBleHBhbmRGb3JtYXQoY29uZmlnLl9mLCBjb25maWcuX2xvY2FsZSkubWF0Y2goZm9ybWF0dGluZ1Rva2VucykgfHwgW107XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdG9rZW4gPSB0b2tlbnNbaV07XG4gICAgICAgICAgICBwYXJzZWRJbnB1dCA9IChzdHJpbmcubWF0Y2goZ2V0UGFyc2VSZWdleEZvclRva2VuKHRva2VuLCBjb25maWcpKSB8fCBbXSlbMF07XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygndG9rZW4nLCB0b2tlbiwgJ3BhcnNlZElucHV0JywgcGFyc2VkSW5wdXQsXG4gICAgICAgICAgICAvLyAgICAgICAgICdyZWdleCcsIGdldFBhcnNlUmVnZXhGb3JUb2tlbih0b2tlbiwgY29uZmlnKSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICBza2lwcGVkID0gc3RyaW5nLnN1YnN0cigwLCBzdHJpbmcuaW5kZXhPZihwYXJzZWRJbnB1dCkpO1xuICAgICAgICAgICAgICAgIGlmIChza2lwcGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkSW5wdXQucHVzaChza2lwcGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nLnNsaWNlKHN0cmluZy5pbmRleE9mKHBhcnNlZElucHV0KSArIHBhcnNlZElucHV0Lmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgdG90YWxQYXJzZWRJbnB1dExlbmd0aCArPSBwYXJzZWRJbnB1dC5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBkb24ndCBwYXJzZSBpZiBpdCdzIG5vdCBhIGtub3duIHRva2VuXG4gICAgICAgICAgICBpZiAoZm9ybWF0VG9rZW5GdW5jdGlvbnNbdG9rZW5dKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlZElucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmVtcHR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGFkZFRpbWVUb0FycmF5RnJvbVRva2VuKHRva2VuLCBwYXJzZWRJbnB1dCwgY29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNvbmZpZy5fc3RyaWN0ICYmICFwYXJzZWRJbnB1dCkge1xuICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZFRva2Vucy5wdXNoKHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFkZCByZW1haW5pbmcgdW5wYXJzZWQgaW5wdXQgbGVuZ3RoIHRvIHRoZSBzdHJpbmdcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuY2hhcnNMZWZ0T3ZlciA9IHN0cmluZ0xlbmd0aCAtIHRvdGFsUGFyc2VkSW5wdXRMZW5ndGg7XG4gICAgICAgIGlmIChzdHJpbmcubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkSW5wdXQucHVzaChzdHJpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY2xlYXIgXzEyaCBmbGFnIGlmIGhvdXIgaXMgPD0gMTJcbiAgICAgICAgaWYgKGNvbmZpZy5fYVtIT1VSXSA8PSAxMiAmJlxuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuYmlnSG91ciA9PT0gdHJ1ZSAmJlxuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdID4gMCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuYmlnSG91ciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnBhcnNlZERhdGVQYXJ0cyA9IGNvbmZpZy5fYS5zbGljZSgwKTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykubWVyaWRpZW0gPSBjb25maWcuX21lcmlkaWVtO1xuICAgICAgICAvLyBoYW5kbGUgbWVyaWRpZW1cbiAgICAgICAgY29uZmlnLl9hW0hPVVJdID0gbWVyaWRpZW1GaXhXcmFwKGNvbmZpZy5fbG9jYWxlLCBjb25maWcuX2FbSE9VUl0sIGNvbmZpZy5fbWVyaWRpZW0pO1xuXG4gICAgICAgIGNvbmZpZ0Zyb21BcnJheShjb25maWcpO1xuICAgICAgICBjaGVja092ZXJmbG93KGNvbmZpZyk7XG4gICAgfVxuXG5cbiAgICBmdW5jdGlvbiBtZXJpZGllbUZpeFdyYXAgKGxvY2FsZSwgaG91ciwgbWVyaWRpZW0pIHtcbiAgICAgICAgdmFyIGlzUG07XG5cbiAgICAgICAgaWYgKG1lcmlkaWVtID09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG9cbiAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb2NhbGUubWVyaWRpZW1Ib3VyICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbGUubWVyaWRpZW1Ib3VyKGhvdXIsIG1lcmlkaWVtKTtcbiAgICAgICAgfSBlbHNlIGlmIChsb2NhbGUuaXNQTSAhPSBudWxsKSB7XG4gICAgICAgICAgICAvLyBGYWxsYmFja1xuICAgICAgICAgICAgaXNQbSA9IGxvY2FsZS5pc1BNKG1lcmlkaWVtKTtcbiAgICAgICAgICAgIGlmIChpc1BtICYmIGhvdXIgPCAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgKz0gMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzUG0gJiYgaG91ciA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyBub3Qgc3VwcG9zZWQgdG8gaGFwcGVuXG4gICAgICAgICAgICByZXR1cm4gaG91cjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRhdGUgZnJvbSBzdHJpbmcgYW5kIGFycmF5IG9mIGZvcm1hdCBzdHJpbmdzXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZ0FuZEFycmF5KGNvbmZpZykge1xuICAgICAgICB2YXIgdGVtcENvbmZpZyxcbiAgICAgICAgICAgIGJlc3RNb21lbnQsXG5cbiAgICAgICAgICAgIHNjb3JlVG9CZWF0LFxuICAgICAgICAgICAgaSxcbiAgICAgICAgICAgIGN1cnJlbnRTY29yZTtcblxuICAgICAgICBpZiAoY29uZmlnLl9mLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZEZvcm1hdCA9IHRydWU7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShOYU4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGNvbmZpZy5fZi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY3VycmVudFNjb3JlID0gMDtcbiAgICAgICAgICAgIHRlbXBDb25maWcgPSBjb3B5Q29uZmlnKHt9LCBjb25maWcpO1xuICAgICAgICAgICAgaWYgKGNvbmZpZy5fdXNlVVRDICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0ZW1wQ29uZmlnLl91c2VVVEMgPSBjb25maWcuX3VzZVVUQztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRlbXBDb25maWcuX2YgPSBjb25maWcuX2ZbaV07XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KHRlbXBDb25maWcpO1xuXG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQodGVtcENvbmZpZykpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgYW55IGlucHV0IHRoYXQgd2FzIG5vdCBwYXJzZWQgYWRkIGEgcGVuYWx0eSBmb3IgdGhhdCBmb3JtYXRcbiAgICAgICAgICAgIGN1cnJlbnRTY29yZSArPSBnZXRQYXJzaW5nRmxhZ3ModGVtcENvbmZpZykuY2hhcnNMZWZ0T3ZlcjtcblxuICAgICAgICAgICAgLy9vciB0b2tlbnNcbiAgICAgICAgICAgIGN1cnJlbnRTY29yZSArPSBnZXRQYXJzaW5nRmxhZ3ModGVtcENvbmZpZykudW51c2VkVG9rZW5zLmxlbmd0aCAqIDEwO1xuXG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3ModGVtcENvbmZpZykuc2NvcmUgPSBjdXJyZW50U2NvcmU7XG5cbiAgICAgICAgICAgIGlmIChzY29yZVRvQmVhdCA9PSBudWxsIHx8IGN1cnJlbnRTY29yZSA8IHNjb3JlVG9CZWF0KSB7XG4gICAgICAgICAgICAgICAgc2NvcmVUb0JlYXQgPSBjdXJyZW50U2NvcmU7XG4gICAgICAgICAgICAgICAgYmVzdE1vbWVudCA9IHRlbXBDb25maWc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHRlbmQoY29uZmlnLCBiZXN0TW9tZW50IHx8IHRlbXBDb25maWcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21PYmplY3QoY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcuX2QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBpID0gbm9ybWFsaXplT2JqZWN0VW5pdHMoY29uZmlnLl9pKTtcbiAgICAgICAgY29uZmlnLl9hID0gbWFwKFtpLnllYXIsIGkubW9udGgsIGkuZGF5IHx8IGkuZGF0ZSwgaS5ob3VyLCBpLm1pbnV0ZSwgaS5zZWNvbmQsIGkubWlsbGlzZWNvbmRdLCBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqICYmIHBhcnNlSW50KG9iaiwgMTApO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVGcm9tQ29uZmlnIChjb25maWcpIHtcbiAgICAgICAgdmFyIHJlcyA9IG5ldyBNb21lbnQoY2hlY2tPdmVyZmxvdyhwcmVwYXJlQ29uZmlnKGNvbmZpZykpKTtcbiAgICAgICAgaWYgKHJlcy5fbmV4dERheSkge1xuICAgICAgICAgICAgLy8gQWRkaW5nIGlzIHNtYXJ0IGVub3VnaCBhcm91bmQgRFNUXG4gICAgICAgICAgICByZXMuYWRkKDEsICdkJyk7XG4gICAgICAgICAgICByZXMuX25leHREYXkgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByZXBhcmVDb25maWcgKGNvbmZpZykge1xuICAgICAgICB2YXIgaW5wdXQgPSBjb25maWcuX2ksXG4gICAgICAgICAgICBmb3JtYXQgPSBjb25maWcuX2Y7XG5cbiAgICAgICAgY29uZmlnLl9sb2NhbGUgPSBjb25maWcuX2xvY2FsZSB8fCBnZXRMb2NhbGUoY29uZmlnLl9sKTtcblxuICAgICAgICBpZiAoaW5wdXQgPT09IG51bGwgfHwgKGZvcm1hdCA9PT0gdW5kZWZpbmVkICYmIGlucHV0ID09PSAnJykpIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVJbnZhbGlkKHtudWxsSW5wdXQ6IHRydWV9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25maWcuX2kgPSBpbnB1dCA9IGNvbmZpZy5fbG9jYWxlLnByZXBhcnNlKGlucHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc01vbWVudChpbnB1dCkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTW9tZW50KGNoZWNrT3ZlcmZsb3coaW5wdXQpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0RhdGUoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBpbnB1dDtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRBcnJheShjb25maWcpO1xuICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdCkge1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpO1xuICAgICAgICB9ICBlbHNlIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21JbnB1dChjb25maWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc1ZhbGlkKGNvbmZpZykpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21JbnB1dChjb25maWcpIHtcbiAgICAgICAgdmFyIGlucHV0ID0gY29uZmlnLl9pO1xuICAgICAgICBpZiAoaXNVbmRlZmluZWQoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShob29rcy5ub3coKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEYXRlKGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoaW5wdXQudmFsdWVPZigpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nKGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNBcnJheShpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYSA9IG1hcChpbnB1dC5zbGljZSgwKSwgZnVuY3Rpb24gKG9iaikge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUludChvYmosIDEwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uZmlnRnJvbUFycmF5KGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWdGcm9tT2JqZWN0KGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIoaW5wdXQpKSB7XG4gICAgICAgICAgICAvLyBmcm9tIG1pbGxpc2Vjb25kc1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUoaW5wdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaG9va3MuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soY29uZmlnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUxvY2FsT3JVVEMgKGlucHV0LCBmb3JtYXQsIGxvY2FsZSwgc3RyaWN0LCBpc1VUQykge1xuICAgICAgICB2YXIgYyA9IHt9O1xuXG4gICAgICAgIGlmIChsb2NhbGUgPT09IHRydWUgfHwgbG9jYWxlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgc3RyaWN0ID0gbG9jYWxlO1xuICAgICAgICAgICAgbG9jYWxlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKChpc09iamVjdChpbnB1dCkgJiYgaXNPYmplY3RFbXB0eShpbnB1dCkpIHx8XG4gICAgICAgICAgICAgICAgKGlzQXJyYXkoaW5wdXQpICYmIGlucHV0Lmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgICAgIGlucHV0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vIG9iamVjdCBjb25zdHJ1Y3Rpb24gbXVzdCBiZSBkb25lIHRoaXMgd2F5LlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMTQyM1xuICAgICAgICBjLl9pc0FNb21lbnRPYmplY3QgPSB0cnVlO1xuICAgICAgICBjLl91c2VVVEMgPSBjLl9pc1VUQyA9IGlzVVRDO1xuICAgICAgICBjLl9sID0gbG9jYWxlO1xuICAgICAgICBjLl9pID0gaW5wdXQ7XG4gICAgICAgIGMuX2YgPSBmb3JtYXQ7XG4gICAgICAgIGMuX3N0cmljdCA9IHN0cmljdDtcblxuICAgICAgICByZXR1cm4gY3JlYXRlRnJvbUNvbmZpZyhjKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVMb2NhbCAoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsT3JVVEMoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QsIGZhbHNlKTtcbiAgICB9XG5cbiAgICB2YXIgcHJvdG90eXBlTWluID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9tZW50KCkubWluIGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQubWF4IGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvbWluLW1heC8nLFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgb3RoZXIgPSBjcmVhdGVMb2NhbC5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpICYmIG90aGVyLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvdGhlciA8IHRoaXMgPyB0aGlzIDogb3RoZXI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVJbnZhbGlkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgdmFyIHByb3RvdHlwZU1heCA9IGRlcHJlY2F0ZShcbiAgICAgICAgJ21vbWVudCgpLm1heCBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50Lm1pbiBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL21pbi1tYXgvJyxcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlTG9jYWwuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSAmJiBvdGhlci5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXIgPiB0aGlzID8gdGhpcyA6IG90aGVyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlSW52YWxpZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgKTtcblxuICAgIC8vIFBpY2sgYSBtb21lbnQgbSBmcm9tIG1vbWVudHMgc28gdGhhdCBtW2ZuXShvdGhlcikgaXMgdHJ1ZSBmb3IgYWxsXG4gICAgLy8gb3RoZXIuIFRoaXMgcmVsaWVzIG9uIHRoZSBmdW5jdGlvbiBmbiB0byBiZSB0cmFuc2l0aXZlLlxuICAgIC8vXG4gICAgLy8gbW9tZW50cyBzaG91bGQgZWl0aGVyIGJlIGFuIGFycmF5IG9mIG1vbWVudCBvYmplY3RzIG9yIGFuIGFycmF5LCB3aG9zZVxuICAgIC8vIGZpcnN0IGVsZW1lbnQgaXMgYW4gYXJyYXkgb2YgbW9tZW50IG9iamVjdHMuXG4gICAgZnVuY3Rpb24gcGlja0J5KGZuLCBtb21lbnRzKSB7XG4gICAgICAgIHZhciByZXMsIGk7XG4gICAgICAgIGlmIChtb21lbnRzLmxlbmd0aCA9PT0gMSAmJiBpc0FycmF5KG1vbWVudHNbMF0pKSB7XG4gICAgICAgICAgICBtb21lbnRzID0gbW9tZW50c1swXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW1vbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWwoKTtcbiAgICAgICAgfVxuICAgICAgICByZXMgPSBtb21lbnRzWzBdO1xuICAgICAgICBmb3IgKGkgPSAxOyBpIDwgbW9tZW50cy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgaWYgKCFtb21lbnRzW2ldLmlzVmFsaWQoKSB8fCBtb21lbnRzW2ldW2ZuXShyZXMpKSB7XG4gICAgICAgICAgICAgICAgcmVzID0gbW9tZW50c1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIC8vIFRPRE86IFVzZSBbXS5zb3J0IGluc3RlYWQ/XG4gICAgZnVuY3Rpb24gbWluICgpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCk7XG5cbiAgICAgICAgcmV0dXJuIHBpY2tCeSgnaXNCZWZvcmUnLCBhcmdzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXggKCkge1xuICAgICAgICB2YXIgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTtcblxuICAgICAgICByZXR1cm4gcGlja0J5KCdpc0FmdGVyJywgYXJncyk7XG4gICAgfVxuXG4gICAgdmFyIG5vdyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIERhdGUubm93ID8gRGF0ZS5ub3coKSA6ICsobmV3IERhdGUoKSk7XG4gICAgfTtcblxuICAgIHZhciBvcmRlcmluZyA9IFsneWVhcicsICdxdWFydGVyJywgJ21vbnRoJywgJ3dlZWsnLCAnZGF5JywgJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCcsICdtaWxsaXNlY29uZCddO1xuXG4gICAgZnVuY3Rpb24gaXNEdXJhdGlvblZhbGlkKG0pIHtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIG0pIHtcbiAgICAgICAgICAgIGlmICghKGluZGV4T2YuY2FsbChvcmRlcmluZywga2V5KSAhPT0gLTEgJiYgKG1ba2V5XSA9PSBudWxsIHx8ICFpc05hTihtW2tleV0pKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgdW5pdEhhc0RlY2ltYWwgPSBmYWxzZTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcmRlcmluZy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgaWYgKG1bb3JkZXJpbmdbaV1dKSB7XG4gICAgICAgICAgICAgICAgaWYgKHVuaXRIYXNEZWNpbWFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gb25seSBhbGxvdyBub24taW50ZWdlcnMgZm9yIHNtYWxsZXN0IHVuaXRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBhcnNlRmxvYXQobVtvcmRlcmluZ1tpXV0pICE9PSB0b0ludChtW29yZGVyaW5nW2ldXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdW5pdEhhc0RlY2ltYWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVmFsaWQkMSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmFsaWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlSW52YWxpZCQxKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oTmFOKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBEdXJhdGlvbiAoZHVyYXRpb24pIHtcbiAgICAgICAgdmFyIG5vcm1hbGl6ZWRJbnB1dCA9IG5vcm1hbGl6ZU9iamVjdFVuaXRzKGR1cmF0aW9uKSxcbiAgICAgICAgICAgIHllYXJzID0gbm9ybWFsaXplZElucHV0LnllYXIgfHwgMCxcbiAgICAgICAgICAgIHF1YXJ0ZXJzID0gbm9ybWFsaXplZElucHV0LnF1YXJ0ZXIgfHwgMCxcbiAgICAgICAgICAgIG1vbnRocyA9IG5vcm1hbGl6ZWRJbnB1dC5tb250aCB8fCAwLFxuICAgICAgICAgICAgd2Vla3MgPSBub3JtYWxpemVkSW5wdXQud2VlayB8fCBub3JtYWxpemVkSW5wdXQuaXNvV2VlayB8fCAwLFxuICAgICAgICAgICAgZGF5cyA9IG5vcm1hbGl6ZWRJbnB1dC5kYXkgfHwgMCxcbiAgICAgICAgICAgIGhvdXJzID0gbm9ybWFsaXplZElucHV0LmhvdXIgfHwgMCxcbiAgICAgICAgICAgIG1pbnV0ZXMgPSBub3JtYWxpemVkSW5wdXQubWludXRlIHx8IDAsXG4gICAgICAgICAgICBzZWNvbmRzID0gbm9ybWFsaXplZElucHV0LnNlY29uZCB8fCAwLFxuICAgICAgICAgICAgbWlsbGlzZWNvbmRzID0gbm9ybWFsaXplZElucHV0Lm1pbGxpc2Vjb25kIHx8IDA7XG5cbiAgICAgICAgdGhpcy5faXNWYWxpZCA9IGlzRHVyYXRpb25WYWxpZChub3JtYWxpemVkSW5wdXQpO1xuXG4gICAgICAgIC8vIHJlcHJlc2VudGF0aW9uIGZvciBkYXRlQWRkUmVtb3ZlXG4gICAgICAgIHRoaXMuX21pbGxpc2Vjb25kcyA9ICttaWxsaXNlY29uZHMgK1xuICAgICAgICAgICAgc2Vjb25kcyAqIDFlMyArIC8vIDEwMDBcbiAgICAgICAgICAgIG1pbnV0ZXMgKiA2ZTQgKyAvLyAxMDAwICogNjBcbiAgICAgICAgICAgIGhvdXJzICogMTAwMCAqIDYwICogNjA7IC8vdXNpbmcgMTAwMCAqIDYwICogNjAgaW5zdGVhZCBvZiAzNmU1IHRvIGF2b2lkIGZsb2F0aW5nIHBvaW50IHJvdW5kaW5nIGVycm9ycyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMjk3OFxuICAgICAgICAvLyBCZWNhdXNlIG9mIGRhdGVBZGRSZW1vdmUgdHJlYXRzIDI0IGhvdXJzIGFzIGRpZmZlcmVudCBmcm9tIGFcbiAgICAgICAgLy8gZGF5IHdoZW4gd29ya2luZyBhcm91bmQgRFNULCB3ZSBuZWVkIHRvIHN0b3JlIHRoZW0gc2VwYXJhdGVseVxuICAgICAgICB0aGlzLl9kYXlzID0gK2RheXMgK1xuICAgICAgICAgICAgd2Vla3MgKiA3O1xuICAgICAgICAvLyBJdCBpcyBpbXBvc3NpYmxlIHRvIHRyYW5zbGF0ZSBtb250aHMgaW50byBkYXlzIHdpdGhvdXQga25vd2luZ1xuICAgICAgICAvLyB3aGljaCBtb250aHMgeW91IGFyZSBhcmUgdGFsa2luZyBhYm91dCwgc28gd2UgaGF2ZSB0byBzdG9yZVxuICAgICAgICAvLyBpdCBzZXBhcmF0ZWx5LlxuICAgICAgICB0aGlzLl9tb250aHMgPSArbW9udGhzICtcbiAgICAgICAgICAgIHF1YXJ0ZXJzICogMyArXG4gICAgICAgICAgICB5ZWFycyAqIDEyO1xuXG4gICAgICAgIHRoaXMuX2RhdGEgPSB7fTtcblxuICAgICAgICB0aGlzLl9sb2NhbGUgPSBnZXRMb2NhbGUoKTtcblxuICAgICAgICB0aGlzLl9idWJibGUoKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0R1cmF0aW9uIChvYmopIHtcbiAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIER1cmF0aW9uO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFic1JvdW5kIChudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLnJvdW5kKC0xICogbnVtYmVyKSAqIC0xO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobnVtYmVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGZ1bmN0aW9uIG9mZnNldCAodG9rZW4sIHNlcGFyYXRvcikge1xuICAgICAgICBhZGRGb3JtYXRUb2tlbih0b2tlbiwgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIG9mZnNldCA9IHRoaXMudXRjT2Zmc2V0KCk7XG4gICAgICAgICAgICB2YXIgc2lnbiA9ICcrJztcbiAgICAgICAgICAgIGlmIChvZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gLW9mZnNldDtcbiAgICAgICAgICAgICAgICBzaWduID0gJy0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNpZ24gKyB6ZXJvRmlsbCh+fihvZmZzZXQgLyA2MCksIDIpICsgc2VwYXJhdG9yICsgemVyb0ZpbGwofn4ob2Zmc2V0KSAlIDYwLCAyKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb2Zmc2V0KCdaJywgJzonKTtcbiAgICBvZmZzZXQoJ1paJywgJycpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignWicsICBtYXRjaFNob3J0T2Zmc2V0KTtcbiAgICBhZGRSZWdleFRva2VuKCdaWicsIG1hdGNoU2hvcnRPZmZzZXQpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydaJywgJ1paJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX3VzZVVUQyA9IHRydWU7XG4gICAgICAgIGNvbmZpZy5fdHptID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaFNob3J0T2Zmc2V0LCBpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICAvLyB0aW1lem9uZSBjaHVua2VyXG4gICAgLy8gJysxMDowMCcgPiBbJzEwJywgICcwMCddXG4gICAgLy8gJy0xNTMwJyAgPiBbJy0xNScsICczMCddXG4gICAgdmFyIGNodW5rT2Zmc2V0ID0gLyhbXFwrXFwtXXxcXGRcXGQpL2dpO1xuXG4gICAgZnVuY3Rpb24gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaGVyLCBzdHJpbmcpIHtcbiAgICAgICAgdmFyIG1hdGNoZXMgPSAoc3RyaW5nIHx8ICcnKS5tYXRjaChtYXRjaGVyKTtcblxuICAgICAgICBpZiAobWF0Y2hlcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgY2h1bmsgICA9IG1hdGNoZXNbbWF0Y2hlcy5sZW5ndGggLSAxXSB8fCBbXTtcbiAgICAgICAgdmFyIHBhcnRzICAgPSAoY2h1bmsgKyAnJykubWF0Y2goY2h1bmtPZmZzZXQpIHx8IFsnLScsIDAsIDBdO1xuICAgICAgICB2YXIgbWludXRlcyA9ICsocGFydHNbMV0gKiA2MCkgKyB0b0ludChwYXJ0c1syXSk7XG5cbiAgICAgICAgcmV0dXJuIG1pbnV0ZXMgPT09IDAgP1xuICAgICAgICAgIDAgOlxuICAgICAgICAgIHBhcnRzWzBdID09PSAnKycgPyBtaW51dGVzIDogLW1pbnV0ZXM7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIGEgbW9tZW50IGZyb20gaW5wdXQsIHRoYXQgaXMgbG9jYWwvdXRjL3pvbmUgZXF1aXZhbGVudCB0byBtb2RlbC5cbiAgICBmdW5jdGlvbiBjbG9uZVdpdGhPZmZzZXQoaW5wdXQsIG1vZGVsKSB7XG4gICAgICAgIHZhciByZXMsIGRpZmY7XG4gICAgICAgIGlmIChtb2RlbC5faXNVVEMpIHtcbiAgICAgICAgICAgIHJlcyA9IG1vZGVsLmNsb25lKCk7XG4gICAgICAgICAgICBkaWZmID0gKGlzTW9tZW50KGlucHV0KSB8fCBpc0RhdGUoaW5wdXQpID8gaW5wdXQudmFsdWVPZigpIDogY3JlYXRlTG9jYWwoaW5wdXQpLnZhbHVlT2YoKSkgLSByZXMudmFsdWVPZigpO1xuICAgICAgICAgICAgLy8gVXNlIGxvdy1sZXZlbCBhcGksIGJlY2F1c2UgdGhpcyBmbiBpcyBsb3ctbGV2ZWwgYXBpLlxuICAgICAgICAgICAgcmVzLl9kLnNldFRpbWUocmVzLl9kLnZhbHVlT2YoKSArIGRpZmYpO1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHJlcywgZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVMb2NhbChpbnB1dCkubG9jYWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldERhdGVPZmZzZXQgKG0pIHtcbiAgICAgICAgLy8gT24gRmlyZWZveC4yNCBEYXRlI2dldFRpbWV6b25lT2Zmc2V0IHJldHVybnMgYSBmbG9hdGluZyBwb2ludC5cbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvcHVsbC8xODcxXG4gICAgICAgIHJldHVybiAtTWF0aC5yb3VuZChtLl9kLmdldFRpbWV6b25lT2Zmc2V0KCkgLyAxNSkgKiAxNTtcbiAgICB9XG5cbiAgICAvLyBIT09LU1xuXG4gICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciBhIG1vbWVudCBpcyBtdXRhdGVkLlxuICAgIC8vIEl0IGlzIGludGVuZGVkIHRvIGtlZXAgdGhlIG9mZnNldCBpbiBzeW5jIHdpdGggdGhlIHRpbWV6b25lLlxuICAgIGhvb2tzLnVwZGF0ZU9mZnNldCA9IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgLy8ga2VlcExvY2FsVGltZSA9IHRydWUgbWVhbnMgb25seSBjaGFuZ2UgdGhlIHRpbWV6b25lLCB3aXRob3V0XG4gICAgLy8gYWZmZWN0aW5nIHRoZSBsb2NhbCBob3VyLiBTbyA1OjMxOjI2ICswMzAwIC0tW3V0Y09mZnNldCgyLCB0cnVlKV0tLT5cbiAgICAvLyA1OjMxOjI2ICswMjAwIEl0IGlzIHBvc3NpYmxlIHRoYXQgNTozMToyNiBkb2Vzbid0IGV4aXN0IHdpdGggb2Zmc2V0XG4gICAgLy8gKzAyMDAsIHNvIHdlIGFkanVzdCB0aGUgdGltZSBhcyBuZWVkZWQsIHRvIGJlIHZhbGlkLlxuICAgIC8vXG4gICAgLy8gS2VlcGluZyB0aGUgdGltZSBhY3R1YWxseSBhZGRzL3N1YnRyYWN0cyAob25lIGhvdXIpXG4gICAgLy8gZnJvbSB0aGUgYWN0dWFsIHJlcHJlc2VudGVkIHRpbWUuIFRoYXQgaXMgd2h5IHdlIGNhbGwgdXBkYXRlT2Zmc2V0XG4gICAgLy8gYSBzZWNvbmQgdGltZS4gSW4gY2FzZSBpdCB3YW50cyB1cyB0byBjaGFuZ2UgdGhlIG9mZnNldCBhZ2FpblxuICAgIC8vIF9jaGFuZ2VJblByb2dyZXNzID09IHRydWUgY2FzZSwgdGhlbiB3ZSBoYXZlIHRvIGFkanVzdCwgYmVjYXVzZVxuICAgIC8vIHRoZXJlIGlzIG5vIHN1Y2ggdGltZSBpbiB0aGUgZ2l2ZW4gdGltZXpvbmUuXG4gICAgZnVuY3Rpb24gZ2V0U2V0T2Zmc2V0IChpbnB1dCwga2VlcExvY2FsVGltZSwga2VlcE1pbnV0ZXMpIHtcbiAgICAgICAgdmFyIG9mZnNldCA9IHRoaXMuX29mZnNldCB8fCAwLFxuICAgICAgICAgICAgbG9jYWxBZGp1c3Q7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpbnB1dCA9IG9mZnNldEZyb21TdHJpbmcobWF0Y2hTaG9ydE9mZnNldCwgaW5wdXQpO1xuICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKE1hdGguYWJzKGlucHV0KSA8IDE2ICYmICFrZWVwTWludXRlcykge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gaW5wdXQgKiA2MDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5faXNVVEMgJiYga2VlcExvY2FsVGltZSkge1xuICAgICAgICAgICAgICAgIGxvY2FsQWRqdXN0ID0gZ2V0RGF0ZU9mZnNldCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX29mZnNldCA9IGlucHV0O1xuICAgICAgICAgICAgdGhpcy5faXNVVEMgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKGxvY2FsQWRqdXN0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZChsb2NhbEFkanVzdCwgJ20nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvZmZzZXQgIT09IGlucHV0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFrZWVwTG9jYWxUaW1lIHx8IHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkU3VidHJhY3QodGhpcywgY3JlYXRlRHVyYXRpb24oaW5wdXQgLSBvZmZzZXQsICdtJyksIDEsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLl9jaGFuZ2VJblByb2dyZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lzVVRDID8gb2Zmc2V0IDogZ2V0RGF0ZU9mZnNldCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldFpvbmUgKGlucHV0LCBrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gLWlucHV0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldChpbnB1dCwga2VlcExvY2FsVGltZSk7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIC10aGlzLnV0Y09mZnNldCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0T2Zmc2V0VG9VVEMgKGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXRjT2Zmc2V0KDAsIGtlZXBMb2NhbFRpbWUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldE9mZnNldFRvTG9jYWwgKGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzVVRDKSB7XG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgwLCBrZWVwTG9jYWxUaW1lKTtcbiAgICAgICAgICAgIHRoaXMuX2lzVVRDID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJ0cmFjdChnZXREYXRlT2Zmc2V0KHRoaXMpLCAnbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldE9mZnNldFRvUGFyc2VkT2Zmc2V0ICgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3R6bSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnV0Y09mZnNldCh0aGlzLl90em0sIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5faSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhciB0Wm9uZSA9IG9mZnNldEZyb21TdHJpbmcobWF0Y2hPZmZzZXQsIHRoaXMuX2kpO1xuICAgICAgICAgICAgaWYgKHRab25lICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnV0Y09mZnNldCh0Wm9uZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnV0Y09mZnNldCgwLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYXNBbGlnbmVkSG91ck9mZnNldCAoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlucHV0ID0gaW5wdXQgPyBjcmVhdGVMb2NhbChpbnB1dCkudXRjT2Zmc2V0KCkgOiAwO1xuXG4gICAgICAgIHJldHVybiAodGhpcy51dGNPZmZzZXQoKSAtIGlucHV0KSAlIDYwID09PSAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRGF5bGlnaHRTYXZpbmdUaW1lICgpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KCkgPiB0aGlzLmNsb25lKCkubW9udGgoMCkudXRjT2Zmc2V0KCkgfHxcbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KCkgPiB0aGlzLmNsb25lKCkubW9udGgoNSkudXRjT2Zmc2V0KClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0RheWxpZ2h0U2F2aW5nVGltZVNoaWZ0ZWQgKCkge1xuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHRoaXMuX2lzRFNUU2hpZnRlZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pc0RTVFNoaWZ0ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgYyA9IHt9O1xuXG4gICAgICAgIGNvcHlDb25maWcoYywgdGhpcyk7XG4gICAgICAgIGMgPSBwcmVwYXJlQ29uZmlnKGMpO1xuXG4gICAgICAgIGlmIChjLl9hKSB7XG4gICAgICAgICAgICB2YXIgb3RoZXIgPSBjLl9pc1VUQyA/IGNyZWF0ZVVUQyhjLl9hKSA6IGNyZWF0ZUxvY2FsKGMuX2EpO1xuICAgICAgICAgICAgdGhpcy5faXNEU1RTaGlmdGVkID0gdGhpcy5pc1ZhbGlkKCkgJiZcbiAgICAgICAgICAgICAgICBjb21wYXJlQXJyYXlzKGMuX2EsIG90aGVyLnRvQXJyYXkoKSkgPiAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faXNEU1RTaGlmdGVkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5faXNEU1RTaGlmdGVkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTG9jYWwgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyAhdGhpcy5faXNVVEMgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1V0Y09mZnNldCAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMuX2lzVVRDIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNVdGMgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLl9pc1VUQyAmJiB0aGlzLl9vZmZzZXQgPT09IDAgOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBBU1AuTkVUIGpzb24gZGF0ZSBmb3JtYXQgcmVnZXhcbiAgICB2YXIgYXNwTmV0UmVnZXggPSAvXihcXC18XFwrKT8oPzooXFxkKilbLiBdKT8oXFxkKylcXDooXFxkKykoPzpcXDooXFxkKykoXFwuXFxkKik/KT8kLztcblxuICAgIC8vIGZyb20gaHR0cDovL2RvY3MuY2xvc3VyZS1saWJyYXJ5Lmdvb2dsZWNvZGUuY29tL2dpdC9jbG9zdXJlX2dvb2dfZGF0ZV9kYXRlLmpzLnNvdXJjZS5odG1sXG4gICAgLy8gc29tZXdoYXQgbW9yZSBpbiBsaW5lIHdpdGggNC40LjMuMiAyMDA0IHNwZWMsIGJ1dCBhbGxvd3MgZGVjaW1hbCBhbnl3aGVyZVxuICAgIC8vIGFuZCBmdXJ0aGVyIG1vZGlmaWVkIHRvIGFsbG93IGZvciBzdHJpbmdzIGNvbnRhaW5pbmcgYm90aCB3ZWVrIGFuZCBkYXlcbiAgICB2YXIgaXNvUmVnZXggPSAvXigtfFxcKyk/UCg/OihbLStdP1swLTksLl0qKVkpPyg/OihbLStdP1swLTksLl0qKU0pPyg/OihbLStdP1swLTksLl0qKVcpPyg/OihbLStdP1swLTksLl0qKUQpPyg/OlQoPzooWy0rXT9bMC05LC5dKilIKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilTKT8pPyQvO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlRHVyYXRpb24gKGlucHV0LCBrZXkpIHtcbiAgICAgICAgdmFyIGR1cmF0aW9uID0gaW5wdXQsXG4gICAgICAgICAgICAvLyBtYXRjaGluZyBhZ2FpbnN0IHJlZ2V4cCBpcyBleHBlbnNpdmUsIGRvIGl0IG9uIGRlbWFuZFxuICAgICAgICAgICAgbWF0Y2ggPSBudWxsLFxuICAgICAgICAgICAgc2lnbixcbiAgICAgICAgICAgIHJldCxcbiAgICAgICAgICAgIGRpZmZSZXM7XG5cbiAgICAgICAgaWYgKGlzRHVyYXRpb24oaW5wdXQpKSB7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHtcbiAgICAgICAgICAgICAgICBtcyA6IGlucHV0Ll9taWxsaXNlY29uZHMsXG4gICAgICAgICAgICAgICAgZCAgOiBpbnB1dC5fZGF5cyxcbiAgICAgICAgICAgICAgICBNICA6IGlucHV0Ll9tb250aHNcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIoaW5wdXQpKSB7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHt9O1xuICAgICAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uW2tleV0gPSBpbnB1dDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb24ubWlsbGlzZWNvbmRzID0gaW5wdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoISEobWF0Y2ggPSBhc3BOZXRSZWdleC5leGVjKGlucHV0KSkpIHtcbiAgICAgICAgICAgIHNpZ24gPSAobWF0Y2hbMV0gPT09ICctJykgPyAtMSA6IDE7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB5ICA6IDAsXG4gICAgICAgICAgICAgICAgZCAgOiB0b0ludChtYXRjaFtEQVRFXSkgICAgICAgICAgICAgICAgICAgICAgICAgKiBzaWduLFxuICAgICAgICAgICAgICAgIGggIDogdG9JbnQobWF0Y2hbSE9VUl0pICAgICAgICAgICAgICAgICAgICAgICAgICogc2lnbixcbiAgICAgICAgICAgICAgICBtICA6IHRvSW50KG1hdGNoW01JTlVURV0pICAgICAgICAgICAgICAgICAgICAgICAqIHNpZ24sXG4gICAgICAgICAgICAgICAgcyAgOiB0b0ludChtYXRjaFtTRUNPTkRdKSAgICAgICAgICAgICAgICAgICAgICAgKiBzaWduLFxuICAgICAgICAgICAgICAgIG1zIDogdG9JbnQoYWJzUm91bmQobWF0Y2hbTUlMTElTRUNPTkRdICogMTAwMCkpICogc2lnbiAvLyB0aGUgbWlsbGlzZWNvbmQgZGVjaW1hbCBwb2ludCBpcyBpbmNsdWRlZCBpbiB0aGUgbWF0Y2hcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAoISEobWF0Y2ggPSBpc29SZWdleC5leGVjKGlucHV0KSkpIHtcbiAgICAgICAgICAgIHNpZ24gPSAobWF0Y2hbMV0gPT09ICctJykgPyAtMSA6IDE7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB5IDogcGFyc2VJc28obWF0Y2hbMl0sIHNpZ24pLFxuICAgICAgICAgICAgICAgIE0gOiBwYXJzZUlzbyhtYXRjaFszXSwgc2lnbiksXG4gICAgICAgICAgICAgICAgdyA6IHBhcnNlSXNvKG1hdGNoWzRdLCBzaWduKSxcbiAgICAgICAgICAgICAgICBkIDogcGFyc2VJc28obWF0Y2hbNV0sIHNpZ24pLFxuICAgICAgICAgICAgICAgIGggOiBwYXJzZUlzbyhtYXRjaFs2XSwgc2lnbiksXG4gICAgICAgICAgICAgICAgbSA6IHBhcnNlSXNvKG1hdGNoWzddLCBzaWduKSxcbiAgICAgICAgICAgICAgICBzIDogcGFyc2VJc28obWF0Y2hbOF0sIHNpZ24pXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKGR1cmF0aW9uID09IG51bGwpIHsvLyBjaGVja3MgZm9yIG51bGwgb3IgdW5kZWZpbmVkXG4gICAgICAgICAgICBkdXJhdGlvbiA9IHt9O1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkdXJhdGlvbiA9PT0gJ29iamVjdCcgJiYgKCdmcm9tJyBpbiBkdXJhdGlvbiB8fCAndG8nIGluIGR1cmF0aW9uKSkge1xuICAgICAgICAgICAgZGlmZlJlcyA9IG1vbWVudHNEaWZmZXJlbmNlKGNyZWF0ZUxvY2FsKGR1cmF0aW9uLmZyb20pLCBjcmVhdGVMb2NhbChkdXJhdGlvbi50bykpO1xuXG4gICAgICAgICAgICBkdXJhdGlvbiA9IHt9O1xuICAgICAgICAgICAgZHVyYXRpb24ubXMgPSBkaWZmUmVzLm1pbGxpc2Vjb25kcztcbiAgICAgICAgICAgIGR1cmF0aW9uLk0gPSBkaWZmUmVzLm1vbnRocztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldCA9IG5ldyBEdXJhdGlvbihkdXJhdGlvbik7XG5cbiAgICAgICAgaWYgKGlzRHVyYXRpb24oaW5wdXQpICYmIGhhc093blByb3AoaW5wdXQsICdfbG9jYWxlJykpIHtcbiAgICAgICAgICAgIHJldC5fbG9jYWxlID0gaW5wdXQuX2xvY2FsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuXG4gICAgY3JlYXRlRHVyYXRpb24uZm4gPSBEdXJhdGlvbi5wcm90b3R5cGU7XG4gICAgY3JlYXRlRHVyYXRpb24uaW52YWxpZCA9IGNyZWF0ZUludmFsaWQkMTtcblxuICAgIGZ1bmN0aW9uIHBhcnNlSXNvIChpbnAsIHNpZ24pIHtcbiAgICAgICAgLy8gV2UnZCBub3JtYWxseSB1c2Ugfn5pbnAgZm9yIHRoaXMsIGJ1dCB1bmZvcnR1bmF0ZWx5IGl0IGFsc29cbiAgICAgICAgLy8gY29udmVydHMgZmxvYXRzIHRvIGludHMuXG4gICAgICAgIC8vIGlucCBtYXkgYmUgdW5kZWZpbmVkLCBzbyBjYXJlZnVsIGNhbGxpbmcgcmVwbGFjZSBvbiBpdC5cbiAgICAgICAgdmFyIHJlcyA9IGlucCAmJiBwYXJzZUZsb2F0KGlucC5yZXBsYWNlKCcsJywgJy4nKSk7XG4gICAgICAgIC8vIGFwcGx5IHNpZ24gd2hpbGUgd2UncmUgYXQgaXRcbiAgICAgICAgcmV0dXJuIChpc05hTihyZXMpID8gMCA6IHJlcykgKiBzaWduO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2UoYmFzZSwgb3RoZXIpIHtcbiAgICAgICAgdmFyIHJlcyA9IHt9O1xuXG4gICAgICAgIHJlcy5tb250aHMgPSBvdGhlci5tb250aCgpIC0gYmFzZS5tb250aCgpICtcbiAgICAgICAgICAgIChvdGhlci55ZWFyKCkgLSBiYXNlLnllYXIoKSkgKiAxMjtcbiAgICAgICAgaWYgKGJhc2UuY2xvbmUoKS5hZGQocmVzLm1vbnRocywgJ00nKS5pc0FmdGVyKG90aGVyKSkge1xuICAgICAgICAgICAgLS1yZXMubW9udGhzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzLm1pbGxpc2Vjb25kcyA9ICtvdGhlciAtICsoYmFzZS5jbG9uZSgpLmFkZChyZXMubW9udGhzLCAnTScpKTtcblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbWVudHNEaWZmZXJlbmNlKGJhc2UsIG90aGVyKSB7XG4gICAgICAgIHZhciByZXM7XG4gICAgICAgIGlmICghKGJhc2UuaXNWYWxpZCgpICYmIG90aGVyLmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiB7bWlsbGlzZWNvbmRzOiAwLCBtb250aHM6IDB9O1xuICAgICAgICB9XG5cbiAgICAgICAgb3RoZXIgPSBjbG9uZVdpdGhPZmZzZXQob3RoZXIsIGJhc2UpO1xuICAgICAgICBpZiAoYmFzZS5pc0JlZm9yZShvdGhlcikpIHtcbiAgICAgICAgICAgIHJlcyA9IHBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2UoYmFzZSwgb3RoZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzID0gcG9zaXRpdmVNb21lbnRzRGlmZmVyZW5jZShvdGhlciwgYmFzZSk7XG4gICAgICAgICAgICByZXMubWlsbGlzZWNvbmRzID0gLXJlcy5taWxsaXNlY29uZHM7XG4gICAgICAgICAgICByZXMubW9udGhzID0gLXJlcy5tb250aHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIC8vIFRPRE86IHJlbW92ZSAnbmFtZScgYXJnIGFmdGVyIGRlcHJlY2F0aW9uIGlzIHJlbW92ZWRcbiAgICBmdW5jdGlvbiBjcmVhdGVBZGRlcihkaXJlY3Rpb24sIG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2YWwsIHBlcmlvZCkge1xuICAgICAgICAgICAgdmFyIGR1ciwgdG1wO1xuICAgICAgICAgICAgLy9pbnZlcnQgdGhlIGFyZ3VtZW50cywgYnV0IGNvbXBsYWluIGFib3V0IGl0XG4gICAgICAgICAgICBpZiAocGVyaW9kICE9PSBudWxsICYmICFpc05hTigrcGVyaW9kKSkge1xuICAgICAgICAgICAgICAgIGRlcHJlY2F0ZVNpbXBsZShuYW1lLCAnbW9tZW50KCkuJyArIG5hbWUgICsgJyhwZXJpb2QsIG51bWJlcikgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBtb21lbnQoKS4nICsgbmFtZSArICcobnVtYmVyLCBwZXJpb2QpLiAnICtcbiAgICAgICAgICAgICAgICAnU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvYWRkLWludmVydGVkLXBhcmFtLyBmb3IgbW9yZSBpbmZvLicpO1xuICAgICAgICAgICAgICAgIHRtcCA9IHZhbDsgdmFsID0gcGVyaW9kOyBwZXJpb2QgPSB0bXA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhbCA9IHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnID8gK3ZhbCA6IHZhbDtcbiAgICAgICAgICAgIGR1ciA9IGNyZWF0ZUR1cmF0aW9uKHZhbCwgcGVyaW9kKTtcbiAgICAgICAgICAgIGFkZFN1YnRyYWN0KHRoaXMsIGR1ciwgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZFN1YnRyYWN0IChtb20sIGR1cmF0aW9uLCBpc0FkZGluZywgdXBkYXRlT2Zmc2V0KSB7XG4gICAgICAgIHZhciBtaWxsaXNlY29uZHMgPSBkdXJhdGlvbi5fbWlsbGlzZWNvbmRzLFxuICAgICAgICAgICAgZGF5cyA9IGFic1JvdW5kKGR1cmF0aW9uLl9kYXlzKSxcbiAgICAgICAgICAgIG1vbnRocyA9IGFic1JvdW5kKGR1cmF0aW9uLl9tb250aHMpO1xuXG4gICAgICAgIGlmICghbW9tLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgLy8gTm8gb3BcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZU9mZnNldCA9IHVwZGF0ZU9mZnNldCA9PSBudWxsID8gdHJ1ZSA6IHVwZGF0ZU9mZnNldDtcblxuICAgICAgICBpZiAobW9udGhzKSB7XG4gICAgICAgICAgICBzZXRNb250aChtb20sIGdldChtb20sICdNb250aCcpICsgbW9udGhzICogaXNBZGRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXlzKSB7XG4gICAgICAgICAgICBzZXQkMShtb20sICdEYXRlJywgZ2V0KG1vbSwgJ0RhdGUnKSArIGRheXMgKiBpc0FkZGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1pbGxpc2Vjb25kcykge1xuICAgICAgICAgICAgbW9tLl9kLnNldFRpbWUobW9tLl9kLnZhbHVlT2YoKSArIG1pbGxpc2Vjb25kcyAqIGlzQWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXBkYXRlT2Zmc2V0KSB7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQobW9tLCBkYXlzIHx8IG1vbnRocyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgYWRkICAgICAgPSBjcmVhdGVBZGRlcigxLCAnYWRkJyk7XG4gICAgdmFyIHN1YnRyYWN0ID0gY3JlYXRlQWRkZXIoLTEsICdzdWJ0cmFjdCcpO1xuXG4gICAgZnVuY3Rpb24gZ2V0Q2FsZW5kYXJGb3JtYXQobXlNb21lbnQsIG5vdykge1xuICAgICAgICB2YXIgZGlmZiA9IG15TW9tZW50LmRpZmYobm93LCAnZGF5cycsIHRydWUpO1xuICAgICAgICByZXR1cm4gZGlmZiA8IC02ID8gJ3NhbWVFbHNlJyA6XG4gICAgICAgICAgICAgICAgZGlmZiA8IC0xID8gJ2xhc3RXZWVrJyA6XG4gICAgICAgICAgICAgICAgZGlmZiA8IDAgPyAnbGFzdERheScgOlxuICAgICAgICAgICAgICAgIGRpZmYgPCAxID8gJ3NhbWVEYXknIDpcbiAgICAgICAgICAgICAgICBkaWZmIDwgMiA/ICduZXh0RGF5JyA6XG4gICAgICAgICAgICAgICAgZGlmZiA8IDcgPyAnbmV4dFdlZWsnIDogJ3NhbWVFbHNlJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjYWxlbmRhciQxICh0aW1lLCBmb3JtYXRzKSB7XG4gICAgICAgIC8vIFdlIHdhbnQgdG8gY29tcGFyZSB0aGUgc3RhcnQgb2YgdG9kYXksIHZzIHRoaXMuXG4gICAgICAgIC8vIEdldHRpbmcgc3RhcnQtb2YtdG9kYXkgZGVwZW5kcyBvbiB3aGV0aGVyIHdlJ3JlIGxvY2FsL3V0Yy9vZmZzZXQgb3Igbm90LlxuICAgICAgICB2YXIgbm93ID0gdGltZSB8fCBjcmVhdGVMb2NhbCgpLFxuICAgICAgICAgICAgc29kID0gY2xvbmVXaXRoT2Zmc2V0KG5vdywgdGhpcykuc3RhcnRPZignZGF5JyksXG4gICAgICAgICAgICBmb3JtYXQgPSBob29rcy5jYWxlbmRhckZvcm1hdCh0aGlzLCBzb2QpIHx8ICdzYW1lRWxzZSc7XG5cbiAgICAgICAgdmFyIG91dHB1dCA9IGZvcm1hdHMgJiYgKGlzRnVuY3Rpb24oZm9ybWF0c1tmb3JtYXRdKSA/IGZvcm1hdHNbZm9ybWF0XS5jYWxsKHRoaXMsIG5vdykgOiBmb3JtYXRzW2Zvcm1hdF0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdChvdXRwdXQgfHwgdGhpcy5sb2NhbGVEYXRhKCkuY2FsZW5kYXIoZm9ybWF0LCB0aGlzLCBjcmVhdGVMb2NhbChub3cpKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2xvbmUgKCkge1xuICAgICAgICByZXR1cm4gbmV3IE1vbWVudCh0aGlzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0FmdGVyIChpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KTtcbiAgICAgICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxJbnB1dC5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cykgfHwgJ21pbGxpc2Vjb25kJztcbiAgICAgICAgaWYgKHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPiBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbElucHV0LnZhbHVlT2YoKSA8IHRoaXMuY2xvbmUoKS5zdGFydE9mKHVuaXRzKS52YWx1ZU9mKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0JlZm9yZSAoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHZhciBsb2NhbElucHV0ID0gaXNNb21lbnQoaW5wdXQpID8gaW5wdXQgOiBjcmVhdGVMb2NhbChpbnB1dCk7XG4gICAgICAgIGlmICghKHRoaXMuaXNWYWxpZCgpICYmIGxvY2FsSW5wdXQuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpIHx8ICdtaWxsaXNlY29uZCc7XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpIDwgbG9jYWxJbnB1dC52YWx1ZU9mKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmVuZE9mKHVuaXRzKS52YWx1ZU9mKCkgPCBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQmV0d2VlbiAoZnJvbSwgdG8sIHVuaXRzLCBpbmNsdXNpdml0eSkge1xuICAgICAgICB2YXIgbG9jYWxGcm9tID0gaXNNb21lbnQoZnJvbSkgPyBmcm9tIDogY3JlYXRlTG9jYWwoZnJvbSksXG4gICAgICAgICAgICBsb2NhbFRvID0gaXNNb21lbnQodG8pID8gdG8gOiBjcmVhdGVMb2NhbCh0byk7XG4gICAgICAgIGlmICghKHRoaXMuaXNWYWxpZCgpICYmIGxvY2FsRnJvbS5pc1ZhbGlkKCkgJiYgbG9jYWxUby5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaW5jbHVzaXZpdHkgPSBpbmNsdXNpdml0eSB8fCAnKCknO1xuICAgICAgICByZXR1cm4gKGluY2x1c2l2aXR5WzBdID09PSAnKCcgPyB0aGlzLmlzQWZ0ZXIobG9jYWxGcm9tLCB1bml0cykgOiAhdGhpcy5pc0JlZm9yZShsb2NhbEZyb20sIHVuaXRzKSkgJiZcbiAgICAgICAgICAgIChpbmNsdXNpdml0eVsxXSA9PT0gJyknID8gdGhpcy5pc0JlZm9yZShsb2NhbFRvLCB1bml0cykgOiAhdGhpcy5pc0FmdGVyKGxvY2FsVG8sIHVuaXRzKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNTYW1lIChpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KSxcbiAgICAgICAgICAgIGlucHV0TXM7XG4gICAgICAgIGlmICghKHRoaXMuaXNWYWxpZCgpICYmIGxvY2FsSW5wdXQuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpIHx8ICdtaWxsaXNlY29uZCc7XG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21pbGxpc2Vjb25kJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpID09PSBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlucHV0TXMgPSBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsb25lKCkuc3RhcnRPZih1bml0cykudmFsdWVPZigpIDw9IGlucHV0TXMgJiYgaW5wdXRNcyA8PSB0aGlzLmNsb25lKCkuZW5kT2YodW5pdHMpLnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzU2FtZU9yQWZ0ZXIgKGlucHV0LCB1bml0cykge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoaW5wdXQsIHVuaXRzKSB8fCB0aGlzLmlzQWZ0ZXIoaW5wdXQsIHVuaXRzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWVPckJlZm9yZSAoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShpbnB1dCwgdW5pdHMpIHx8IHRoaXMuaXNCZWZvcmUoaW5wdXQsIHVuaXRzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkaWZmIChpbnB1dCwgdW5pdHMsIGFzRmxvYXQpIHtcbiAgICAgICAgdmFyIHRoYXQsXG4gICAgICAgICAgICB6b25lRGVsdGEsXG4gICAgICAgICAgICBvdXRwdXQ7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoYXQgPSBjbG9uZVdpdGhPZmZzZXQoaW5wdXQsIHRoaXMpO1xuXG4gICAgICAgIGlmICghdGhhdC5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cblxuICAgICAgICB6b25lRGVsdGEgPSAodGhhdC51dGNPZmZzZXQoKSAtIHRoaXMudXRjT2Zmc2V0KCkpICogNmU0O1xuXG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuXG4gICAgICAgIHN3aXRjaCAodW5pdHMpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOiBvdXRwdXQgPSBtb250aERpZmYodGhpcywgdGhhdCkgLyAxMjsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6IG91dHB1dCA9IG1vbnRoRGlmZih0aGlzLCB0aGF0KTsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzogb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMzsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZWNvbmQnOiBvdXRwdXQgPSAodGhpcyAtIHRoYXQpIC8gMWUzOyBicmVhazsgLy8gMTAwMFxuICAgICAgICAgICAgY2FzZSAnbWludXRlJzogb3V0cHV0ID0gKHRoaXMgLSB0aGF0KSAvIDZlNDsgYnJlYWs7IC8vIDEwMDAgKiA2MFxuICAgICAgICAgICAgY2FzZSAnaG91cic6IG91dHB1dCA9ICh0aGlzIC0gdGhhdCkgLyAzNmU1OyBicmVhazsgLy8gMTAwMCAqIDYwICogNjBcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6IG91dHB1dCA9ICh0aGlzIC0gdGhhdCAtIHpvbmVEZWx0YSkgLyA4NjRlNTsgYnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwICogMjQsIG5lZ2F0ZSBkc3RcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOiBvdXRwdXQgPSAodGhpcyAtIHRoYXQgLSB6b25lRGVsdGEpIC8gNjA0OGU1OyBicmVhazsgLy8gMTAwMCAqIDYwICogNjAgKiAyNCAqIDcsIG5lZ2F0ZSBkc3RcbiAgICAgICAgICAgIGRlZmF1bHQ6IG91dHB1dCA9IHRoaXMgLSB0aGF0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFzRmxvYXQgPyBvdXRwdXQgOiBhYnNGbG9vcihvdXRwdXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoRGlmZiAoYSwgYikge1xuICAgICAgICAvLyBkaWZmZXJlbmNlIGluIG1vbnRoc1xuICAgICAgICB2YXIgd2hvbGVNb250aERpZmYgPSAoKGIueWVhcigpIC0gYS55ZWFyKCkpICogMTIpICsgKGIubW9udGgoKSAtIGEubW9udGgoKSksXG4gICAgICAgICAgICAvLyBiIGlzIGluIChhbmNob3IgLSAxIG1vbnRoLCBhbmNob3IgKyAxIG1vbnRoKVxuICAgICAgICAgICAgYW5jaG9yID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiwgJ21vbnRocycpLFxuICAgICAgICAgICAgYW5jaG9yMiwgYWRqdXN0O1xuXG4gICAgICAgIGlmIChiIC0gYW5jaG9yIDwgMCkge1xuICAgICAgICAgICAgYW5jaG9yMiA9IGEuY2xvbmUoKS5hZGQod2hvbGVNb250aERpZmYgLSAxLCAnbW9udGhzJyk7XG4gICAgICAgICAgICAvLyBsaW5lYXIgYWNyb3NzIHRoZSBtb250aFxuICAgICAgICAgICAgYWRqdXN0ID0gKGIgLSBhbmNob3IpIC8gKGFuY2hvciAtIGFuY2hvcjIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYW5jaG9yMiA9IGEuY2xvbmUoKS5hZGQod2hvbGVNb250aERpZmYgKyAxLCAnbW9udGhzJyk7XG4gICAgICAgICAgICAvLyBsaW5lYXIgYWNyb3NzIHRoZSBtb250aFxuICAgICAgICAgICAgYWRqdXN0ID0gKGIgLSBhbmNob3IpIC8gKGFuY2hvcjIgLSBhbmNob3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9jaGVjayBmb3IgbmVnYXRpdmUgemVybywgcmV0dXJuIHplcm8gaWYgbmVnYXRpdmUgemVyb1xuICAgICAgICByZXR1cm4gLSh3aG9sZU1vbnRoRGlmZiArIGFkanVzdCkgfHwgMDtcbiAgICB9XG5cbiAgICBob29rcy5kZWZhdWx0Rm9ybWF0ID0gJ1lZWVktTU0tRERUSEg6bW06c3NaJztcbiAgICBob29rcy5kZWZhdWx0Rm9ybWF0VXRjID0gJ1lZWVktTU0tRERUSEg6bW06c3NbWl0nO1xuXG4gICAgZnVuY3Rpb24gdG9TdHJpbmcgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmxvY2FsZSgnZW4nKS5mb3JtYXQoJ2RkZCBNTU0gREQgWVlZWSBISDptbTpzcyBbR01UXVpaJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9JU09TdHJpbmcoa2VlcE9mZnNldCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdXRjID0ga2VlcE9mZnNldCAhPT0gdHJ1ZTtcbiAgICAgICAgdmFyIG0gPSB1dGMgPyB0aGlzLmNsb25lKCkudXRjKCkgOiB0aGlzO1xuICAgICAgICBpZiAobS55ZWFyKCkgPCAwIHx8IG0ueWVhcigpID4gOTk5OSkge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdE1vbWVudChtLCB1dGMgPyAnWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTW1pdJyA6ICdZWVlZWVktTU0tRERbVF1ISDptbTpzcy5TU1NaJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRnVuY3Rpb24oRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcpKSB7XG4gICAgICAgICAgICAvLyBuYXRpdmUgaW1wbGVtZW50YXRpb24gaXMgfjUweCBmYXN0ZXIsIHVzZSBpdCB3aGVuIHdlIGNhblxuICAgICAgICAgICAgaWYgKHV0Yykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSArIHRoaXMudXRjT2Zmc2V0KCkgKiA2MCAqIDEwMDApLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgnWicsIGZvcm1hdE1vbWVudChtLCAnWicpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm9ybWF0TW9tZW50KG0sIHV0YyA/ICdZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTW1pdJyA6ICdZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTWicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIGh1bWFuIHJlYWRhYmxlIHJlcHJlc2VudGF0aW9uIG9mIGEgbW9tZW50IHRoYXQgY2FuXG4gICAgICogYWxzbyBiZSBldmFsdWF0ZWQgdG8gZ2V0IGEgbmV3IG1vbWVudCB3aGljaCBpcyB0aGUgc2FtZVxuICAgICAqXG4gICAgICogQGxpbmsgaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvbGF0ZXN0L2RvY3MvYXBpL3V0aWwuaHRtbCN1dGlsX2N1c3RvbV9pbnNwZWN0X2Z1bmN0aW9uX29uX29iamVjdHNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbnNwZWN0ICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuICdtb21lbnQuaW52YWxpZCgvKiAnICsgdGhpcy5faSArICcgKi8pJztcbiAgICAgICAgfVxuICAgICAgICB2YXIgZnVuYyA9ICdtb21lbnQnO1xuICAgICAgICB2YXIgem9uZSA9ICcnO1xuICAgICAgICBpZiAoIXRoaXMuaXNMb2NhbCgpKSB7XG4gICAgICAgICAgICBmdW5jID0gdGhpcy51dGNPZmZzZXQoKSA9PT0gMCA/ICdtb21lbnQudXRjJyA6ICdtb21lbnQucGFyc2Vab25lJztcbiAgICAgICAgICAgIHpvbmUgPSAnWic7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHByZWZpeCA9ICdbJyArIGZ1bmMgKyAnKFwiXSc7XG4gICAgICAgIHZhciB5ZWFyID0gKDAgPD0gdGhpcy55ZWFyKCkgJiYgdGhpcy55ZWFyKCkgPD0gOTk5OSkgPyAnWVlZWScgOiAnWVlZWVlZJztcbiAgICAgICAgdmFyIGRhdGV0aW1lID0gJy1NTS1ERFtUXUhIOm1tOnNzLlNTUyc7XG4gICAgICAgIHZhciBzdWZmaXggPSB6b25lICsgJ1tcIildJztcblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXQocHJlZml4ICsgeWVhciArIGRhdGV0aW1lICsgc3VmZml4KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmb3JtYXQgKGlucHV0U3RyaW5nKSB7XG4gICAgICAgIGlmICghaW5wdXRTdHJpbmcpIHtcbiAgICAgICAgICAgIGlucHV0U3RyaW5nID0gdGhpcy5pc1V0YygpID8gaG9va3MuZGVmYXVsdEZvcm1hdFV0YyA6IGhvb2tzLmRlZmF1bHRGb3JtYXQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG91dHB1dCA9IGZvcm1hdE1vbWVudCh0aGlzLCBpbnB1dFN0cmluZyk7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5wb3N0Zm9ybWF0KG91dHB1dCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZnJvbSAodGltZSwgd2l0aG91dFN1ZmZpeCkge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiZcbiAgICAgICAgICAgICAgICAoKGlzTW9tZW50KHRpbWUpICYmIHRpbWUuaXNWYWxpZCgpKSB8fFxuICAgICAgICAgICAgICAgICBjcmVhdGVMb2NhbCh0aW1lKS5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oe3RvOiB0aGlzLCBmcm9tOiB0aW1lfSkubG9jYWxlKHRoaXMubG9jYWxlKCkpLmh1bWFuaXplKCF3aXRob3V0U3VmZml4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZnJvbU5vdyAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tKGNyZWF0ZUxvY2FsKCksIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvICh0aW1lLCB3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSAmJlxuICAgICAgICAgICAgICAgICgoaXNNb21lbnQodGltZSkgJiYgdGltZS5pc1ZhbGlkKCkpIHx8XG4gICAgICAgICAgICAgICAgIGNyZWF0ZUxvY2FsKHRpbWUpLmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbih7ZnJvbTogdGhpcywgdG86IHRpbWV9KS5sb2NhbGUodGhpcy5sb2NhbGUoKSkuaHVtYW5pemUoIXdpdGhvdXRTdWZmaXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b05vdyAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gdGhpcy50byhjcmVhdGVMb2NhbCgpLCB3aXRob3V0U3VmZml4KTtcbiAgICB9XG5cbiAgICAvLyBJZiBwYXNzZWQgYSBsb2NhbGUga2V5LCBpdCB3aWxsIHNldCB0aGUgbG9jYWxlIGZvciB0aGlzXG4gICAgLy8gaW5zdGFuY2UuICBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBsb2NhbGUgY29uZmlndXJhdGlvblxuICAgIC8vIHZhcmlhYmxlcyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICBmdW5jdGlvbiBsb2NhbGUgKGtleSkge1xuICAgICAgICB2YXIgbmV3TG9jYWxlRGF0YTtcblxuICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGUuX2FiYnI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdMb2NhbGVEYXRhID0gZ2V0TG9jYWxlKGtleSk7XG4gICAgICAgICAgICBpZiAobmV3TG9jYWxlRGF0YSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9jYWxlID0gbmV3TG9jYWxlRGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGxhbmcgPSBkZXByZWNhdGUoXG4gICAgICAgICdtb21lbnQoKS5sYW5nKCkgaXMgZGVwcmVjYXRlZC4gSW5zdGVhZCwgdXNlIG1vbWVudCgpLmxvY2FsZURhdGEoKSB0byBnZXQgdGhlIGxhbmd1YWdlIGNvbmZpZ3VyYXRpb24uIFVzZSBtb21lbnQoKS5sb2NhbGUoKSB0byBjaGFuZ2UgbGFuZ3VhZ2VzLicsXG4gICAgICAgIGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlRGF0YSAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gICAgfVxuXG4gICAgdmFyIE1TX1BFUl9TRUNPTkQgPSAxMDAwO1xuICAgIHZhciBNU19QRVJfTUlOVVRFID0gNjAgKiBNU19QRVJfU0VDT05EO1xuICAgIHZhciBNU19QRVJfSE9VUiA9IDYwICogTVNfUEVSX01JTlVURTtcbiAgICB2YXIgTVNfUEVSXzQwMF9ZRUFSUyA9ICgzNjUgKiA0MDAgKyA5NykgKiAyNCAqIE1TX1BFUl9IT1VSO1xuXG4gICAgLy8gYWN0dWFsIG1vZHVsbyAtIGhhbmRsZXMgbmVnYXRpdmUgbnVtYmVycyAoZm9yIGRhdGVzIGJlZm9yZSAxOTcwKTpcbiAgICBmdW5jdGlvbiBtb2QkMShkaXZpZGVuZCwgZGl2aXNvcikge1xuICAgICAgICByZXR1cm4gKGRpdmlkZW5kICUgZGl2aXNvciArIGRpdmlzb3IpICUgZGl2aXNvcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb2NhbFN0YXJ0T2ZEYXRlKHksIG0sIGQpIHtcbiAgICAgICAgLy8gdGhlIGRhdGUgY29uc3RydWN0b3IgcmVtYXBzIHllYXJzIDAtOTkgdG8gMTkwMC0xOTk5XG4gICAgICAgIGlmICh5IDwgMTAwICYmIHkgPj0gMCkge1xuICAgICAgICAgICAgLy8gcHJlc2VydmUgbGVhcCB5ZWFycyB1c2luZyBhIGZ1bGwgNDAwIHllYXIgY3ljbGUsIHRoZW4gcmVzZXRcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh5ICsgNDAwLCBtLCBkKSAtIE1TX1BFUl80MDBfWUVBUlM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoeSwgbSwgZCkudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdXRjU3RhcnRPZkRhdGUoeSwgbSwgZCkge1xuICAgICAgICAvLyBEYXRlLlVUQyByZW1hcHMgeWVhcnMgMC05OSB0byAxOTAwLTE5OTlcbiAgICAgICAgaWYgKHkgPCAxMDAgJiYgeSA+PSAwKSB7XG4gICAgICAgICAgICAvLyBwcmVzZXJ2ZSBsZWFwIHllYXJzIHVzaW5nIGEgZnVsbCA0MDAgeWVhciBjeWNsZSwgdGhlbiByZXNldFxuICAgICAgICAgICAgcmV0dXJuIERhdGUuVVRDKHkgKyA0MDAsIG0sIGQpIC0gTVNfUEVSXzQwMF9ZRUFSUztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBEYXRlLlVUQyh5LCBtLCBkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0YXJ0T2YgKHVuaXRzKSB7XG4gICAgICAgIHZhciB0aW1lO1xuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgaWYgKHVuaXRzID09PSB1bmRlZmluZWQgfHwgdW5pdHMgPT09ICdtaWxsaXNlY29uZCcgfHwgIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzdGFydE9mRGF0ZSA9IHRoaXMuX2lzVVRDID8gdXRjU3RhcnRPZkRhdGUgOiBsb2NhbFN0YXJ0T2ZEYXRlO1xuXG4gICAgICAgIHN3aXRjaCAodW5pdHMpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZSh0aGlzLnllYXIoKSwgMCwgMSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSAtIHRoaXMubW9udGgoKSAlIDMsIDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZSh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpLCAxKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZSh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpLCB0aGlzLmRhdGUoKSAtIHRoaXMud2Vla2RheSgpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2lzb1dlZWsnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZSh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpLCB0aGlzLmRhdGUoKSAtICh0aGlzLmlzb1dlZWtkYXkoKSAtIDEpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSwgdGhpcy5kYXRlKCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgdGltZSA9IHRoaXMuX2QudmFsdWVPZigpO1xuICAgICAgICAgICAgICAgIHRpbWUgLT0gbW9kJDEodGltZSArICh0aGlzLl9pc1VUQyA/IDAgOiB0aGlzLnV0Y09mZnNldCgpICogTVNfUEVSX01JTlVURSksIE1TX1BFUl9IT1VSKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgICAgICAgICAgdGltZSA9IHRoaXMuX2QudmFsdWVPZigpO1xuICAgICAgICAgICAgICAgIHRpbWUgLT0gbW9kJDEodGltZSwgTVNfUEVSX01JTlVURSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lIC09IG1vZCQxKHRpbWUsIE1TX1BFUl9TRUNPTkQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZC5zZXRUaW1lKHRpbWUpO1xuICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGVuZE9mICh1bml0cykge1xuICAgICAgICB2YXIgdGltZTtcbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgIGlmICh1bml0cyA9PT0gdW5kZWZpbmVkIHx8IHVuaXRzID09PSAnbWlsbGlzZWNvbmQnIHx8ICF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgc3RhcnRPZkRhdGUgPSB0aGlzLl9pc1VUQyA/IHV0Y1N0YXJ0T2ZEYXRlIDogbG9jYWxTdGFydE9mRGF0ZTtcblxuICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCkgKyAxLCAwLCAxKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSAtIHRoaXMubW9udGgoKSAlIDMgKyAzLCAxKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGltZSA9IHN0YXJ0T2ZEYXRlKHRoaXMueWVhcigpLCB0aGlzLm1vbnRoKCkgKyAxLCAxKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICAgICAgICB0aW1lID0gc3RhcnRPZkRhdGUodGhpcy55ZWFyKCksIHRoaXMubW9udGgoKSwgdGhpcy5kYXRlKCkgLSB0aGlzLndlZWtkYXkoKSArIDcpIC0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2lzb1dlZWsnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZSh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpLCB0aGlzLmRhdGUoKSAtICh0aGlzLmlzb1dlZWtkYXkoKSAtIDEpICsgNykgLSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSBzdGFydE9mRGF0ZSh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpLCB0aGlzLmRhdGUoKSArIDEpIC0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lICs9IE1TX1BFUl9IT1VSIC0gbW9kJDEodGltZSArICh0aGlzLl9pc1VUQyA/IDAgOiB0aGlzLnV0Y09mZnNldCgpICogTVNfUEVSX01JTlVURSksIE1TX1BFUl9IT1VSKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lICs9IE1TX1BFUl9NSU5VVEUgLSBtb2QkMSh0aW1lLCBNU19QRVJfTUlOVVRFKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICAgICAgICAgIHRpbWUgPSB0aGlzLl9kLnZhbHVlT2YoKTtcbiAgICAgICAgICAgICAgICB0aW1lICs9IE1TX1BFUl9TRUNPTkQgLSBtb2QkMSh0aW1lLCBNU19QRVJfU0VDT05EKSAtIDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kLnNldFRpbWUodGltZSk7XG4gICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdmFsdWVPZiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kLnZhbHVlT2YoKSAtICgodGhpcy5fb2Zmc2V0IHx8IDApICogNjAwMDApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVuaXggKCkge1xuICAgICAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLnZhbHVlT2YoKSAvIDEwMDApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvRGF0ZSAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9BcnJheSAoKSB7XG4gICAgICAgIHZhciBtID0gdGhpcztcbiAgICAgICAgcmV0dXJuIFttLnllYXIoKSwgbS5tb250aCgpLCBtLmRhdGUoKSwgbS5ob3VyKCksIG0ubWludXRlKCksIG0uc2Vjb25kKCksIG0ubWlsbGlzZWNvbmQoKV07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9PYmplY3QgKCkge1xuICAgICAgICB2YXIgbSA9IHRoaXM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB5ZWFyczogbS55ZWFyKCksXG4gICAgICAgICAgICBtb250aHM6IG0ubW9udGgoKSxcbiAgICAgICAgICAgIGRhdGU6IG0uZGF0ZSgpLFxuICAgICAgICAgICAgaG91cnM6IG0uaG91cnMoKSxcbiAgICAgICAgICAgIG1pbnV0ZXM6IG0ubWludXRlcygpLFxuICAgICAgICAgICAgc2Vjb25kczogbS5zZWNvbmRzKCksXG4gICAgICAgICAgICBtaWxsaXNlY29uZHM6IG0ubWlsbGlzZWNvbmRzKClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0pTT04gKCkge1xuICAgICAgICAvLyBuZXcgRGF0ZShOYU4pLnRvSlNPTigpID09PSBudWxsXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMudG9JU09TdHJpbmcoKSA6IG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZCQyICgpIHtcbiAgICAgICAgcmV0dXJuIGlzVmFsaWQodGhpcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2luZ0ZsYWdzICgpIHtcbiAgICAgICAgcmV0dXJuIGV4dGVuZCh7fSwgZ2V0UGFyc2luZ0ZsYWdzKHRoaXMpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbnZhbGlkQXQgKCkge1xuICAgICAgICByZXR1cm4gZ2V0UGFyc2luZ0ZsYWdzKHRoaXMpLm92ZXJmbG93O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0aW9uRGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlucHV0OiB0aGlzLl9pLFxuICAgICAgICAgICAgZm9ybWF0OiB0aGlzLl9mLFxuICAgICAgICAgICAgbG9jYWxlOiB0aGlzLl9sb2NhbGUsXG4gICAgICAgICAgICBpc1VUQzogdGhpcy5faXNVVEMsXG4gICAgICAgICAgICBzdHJpY3Q6IHRoaXMuX3N0cmljdFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnZ2cnLCAyXSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy53ZWVrWWVhcigpICUgMTAwO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydHRycsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzb1dlZWtZZWFyKCkgJSAxMDA7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBhZGRXZWVrWWVhckZvcm1hdFRva2VuICh0b2tlbiwgZ2V0dGVyKSB7XG4gICAgICAgIGFkZEZvcm1hdFRva2VuKDAsIFt0b2tlbiwgdG9rZW4ubGVuZ3RoXSwgMCwgZ2V0dGVyKTtcbiAgICB9XG5cbiAgICBhZGRXZWVrWWVhckZvcm1hdFRva2VuKCdnZ2dnJywgICAgICd3ZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ2dnZ2dnJywgICAgJ3dlZWtZZWFyJyk7XG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignR0dHRycsICAnaXNvV2Vla1llYXInKTtcbiAgICBhZGRXZWVrWWVhckZvcm1hdFRva2VuKCdHR0dHRycsICdpc29XZWVrWWVhcicpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCd3ZWVrWWVhcicsICdnZycpO1xuICAgIGFkZFVuaXRBbGlhcygnaXNvV2Vla1llYXInLCAnR0cnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3dlZWtZZWFyJywgMSk7XG4gICAgYWRkVW5pdFByaW9yaXR5KCdpc29XZWVrWWVhcicsIDEpO1xuXG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdHJywgICAgICBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignZycsICAgICAgbWF0Y2hTaWduZWQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0dHJywgICAgIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdnZycsICAgICBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignR0dHRycsICAgbWF0Y2gxdG80LCBtYXRjaDQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2dnZ2cnLCAgIG1hdGNoMXRvNCwgbWF0Y2g0KTtcbiAgICBhZGRSZWdleFRva2VuKCdHR0dHRycsICBtYXRjaDF0bzYsIG1hdGNoNik7XG4gICAgYWRkUmVnZXhUb2tlbignZ2dnZ2cnLCAgbWF0Y2gxdG82LCBtYXRjaDYpO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWydnZ2dnJywgJ2dnZ2dnJywgJ0dHR0cnLCAnR0dHR0cnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHdlZWtbdG9rZW4uc3Vic3RyKDAsIDIpXSA9IHRvSW50KGlucHV0KTtcbiAgICB9KTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZ2cnLCAnR0cnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHdlZWtbdG9rZW5dID0gaG9va3MucGFyc2VUd29EaWdpdFllYXIoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0V2Vla1llYXIgKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBnZXRTZXRXZWVrWWVhckhlbHBlci5jYWxsKHRoaXMsXG4gICAgICAgICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgICAgICAgdGhpcy53ZWVrKCksXG4gICAgICAgICAgICAgICAgdGhpcy53ZWVrZGF5KCksXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG93LFxuICAgICAgICAgICAgICAgIHRoaXMubG9jYWxlRGF0YSgpLl93ZWVrLmRveSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0SVNPV2Vla1llYXIgKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBnZXRTZXRXZWVrWWVhckhlbHBlci5jYWxsKHRoaXMsXG4gICAgICAgICAgICAgICAgaW5wdXQsIHRoaXMuaXNvV2VlaygpLCB0aGlzLmlzb1dlZWtkYXkoKSwgMSwgNCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0SVNPV2Vla3NJblllYXIgKCkge1xuICAgICAgICByZXR1cm4gd2Vla3NJblllYXIodGhpcy55ZWFyKCksIDEsIDQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFdlZWtzSW5ZZWFyICgpIHtcbiAgICAgICAgdmFyIHdlZWtJbmZvID0gdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWs7XG4gICAgICAgIHJldHVybiB3ZWVrc0luWWVhcih0aGlzLnllYXIoKSwgd2Vla0luZm8uZG93LCB3ZWVrSW5mby5kb3kpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldFdlZWtZZWFySGVscGVyKGlucHV0LCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSkge1xuICAgICAgICB2YXIgd2Vla3NUYXJnZXQ7XG4gICAgICAgIGlmIChpbnB1dCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gd2Vla09mWWVhcih0aGlzLCBkb3csIGRveSkueWVhcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHdlZWtzVGFyZ2V0ID0gd2Vla3NJblllYXIoaW5wdXQsIGRvdywgZG95KTtcbiAgICAgICAgICAgIGlmICh3ZWVrID4gd2Vla3NUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICB3ZWVrID0gd2Vla3NUYXJnZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc2V0V2Vla0FsbC5jYWxsKHRoaXMsIGlucHV0LCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRXZWVrQWxsKHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSkge1xuICAgICAgICB2YXIgZGF5T2ZZZWFyRGF0YSA9IGRheU9mWWVhckZyb21XZWVrcyh3ZWVrWWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpLFxuICAgICAgICAgICAgZGF0ZSA9IGNyZWF0ZVVUQ0RhdGUoZGF5T2ZZZWFyRGF0YS55ZWFyLCAwLCBkYXlPZlllYXJEYXRhLmRheU9mWWVhcik7XG5cbiAgICAgICAgdGhpcy55ZWFyKGRhdGUuZ2V0VVRDRnVsbFllYXIoKSk7XG4gICAgICAgIHRoaXMubW9udGgoZGF0ZS5nZXRVVENNb250aCgpKTtcbiAgICAgICAgdGhpcy5kYXRlKGRhdGUuZ2V0VVRDRGF0ZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1EnLCAwLCAnUW8nLCAncXVhcnRlcicpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdxdWFydGVyJywgJ1EnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3F1YXJ0ZXInLCA3KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ1EnLCBtYXRjaDEpO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1EnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W01PTlRIXSA9ICh0b0ludChpbnB1dCkgLSAxKSAqIDM7XG4gICAgfSk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRTZXRRdWFydGVyIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IE1hdGguY2VpbCgodGhpcy5tb250aCgpICsgMSkgLyAzKSA6IHRoaXMubW9udGgoKGlucHV0IC0gMSkgKiAzICsgdGhpcy5tb250aCgpICUgMyk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ0QnLCBbJ0REJywgMl0sICdEbycsICdkYXRlJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2RhdGUnLCAnRCcpO1xuXG4gICAgLy8gUFJJT1JJVFlcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2RhdGUnLCA5KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ0QnLCAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdERCcsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdEbycsIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBcIm9yZGluYWxQYXJzZVwiIGZhbGxiYWNrIGluIG5leHQgbWFqb3IgcmVsZWFzZS5cbiAgICAgICAgcmV0dXJuIGlzU3RyaWN0ID9cbiAgICAgICAgICAobG9jYWxlLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlIHx8IGxvY2FsZS5fb3JkaW5hbFBhcnNlKSA6XG4gICAgICAgICAgbG9jYWxlLl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlTGVuaWVudDtcbiAgICB9KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydEJywgJ0REJ10sIERBVEUpO1xuICAgIGFkZFBhcnNlVG9rZW4oJ0RvJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtEQVRFXSA9IHRvSW50KGlucHV0Lm1hdGNoKG1hdGNoMXRvMilbMF0pO1xuICAgIH0pO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldERheU9mTW9udGggPSBtYWtlR2V0U2V0KCdEYXRlJywgdHJ1ZSk7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignREREJywgWydEREREJywgM10sICdERERvJywgJ2RheU9mWWVhcicpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdkYXlPZlllYXInLCAnREREJyk7XG5cbiAgICAvLyBQUklPUklUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnZGF5T2ZZZWFyJywgNCk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdEREQnLCAgbWF0Y2gxdG8zKTtcbiAgICBhZGRSZWdleFRva2VuKCdEREREJywgbWF0Y2gzKTtcbiAgICBhZGRQYXJzZVRva2VuKFsnREREJywgJ0REREQnXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5fZGF5T2ZZZWFyID0gdG9JbnQoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0RGF5T2ZZZWFyIChpbnB1dCkge1xuICAgICAgICB2YXIgZGF5T2ZZZWFyID0gTWF0aC5yb3VuZCgodGhpcy5jbG9uZSgpLnN0YXJ0T2YoJ2RheScpIC0gdGhpcy5jbG9uZSgpLnN0YXJ0T2YoJ3llYXInKSkgLyA4NjRlNSkgKyAxO1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IGRheU9mWWVhciA6IHRoaXMuYWRkKChpbnB1dCAtIGRheU9mWWVhciksICdkJyk7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ20nLCBbJ21tJywgMl0sIDAsICdtaW51dGUnKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbWludXRlJywgJ20nKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ21pbnV0ZScsIDE0KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ20nLCAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdtbScsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRQYXJzZVRva2VuKFsnbScsICdtbSddLCBNSU5VVEUpO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldE1pbnV0ZSA9IG1ha2VHZXRTZXQoJ01pbnV0ZXMnLCBmYWxzZSk7XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbigncycsIFsnc3MnLCAyXSwgMCwgJ3NlY29uZCcpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdzZWNvbmQnLCAncycpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnc2Vjb25kJywgMTUpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbigncycsICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ3NzJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydzJywgJ3NzJ10sIFNFQ09ORCk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0U2Vjb25kID0gbWFrZUdldFNldCgnU2Vjb25kcycsIGZhbHNlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdTJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gfn4odGhpcy5taWxsaXNlY29uZCgpIC8gMTAwKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1MnLCAyXSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gfn4odGhpcy5taWxsaXNlY29uZCgpIC8gMTApO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1MnLCAzXSwgMCwgJ21pbGxpc2Vjb25kJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTJywgNF0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1MnLCA1XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1NTJywgNl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTJywgN10sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDAwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1NTU1MnLCA4XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDAwO1xuICAgIH0pO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnU1NTU1NTU1NTJywgOV0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWlsbGlzZWNvbmQoKSAqIDEwMDAwMDA7XG4gICAgfSk7XG5cblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnbWlsbGlzZWNvbmQnLCAnbXMnKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ21pbGxpc2Vjb25kJywgMTYpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignUycsICAgIG1hdGNoMXRvMywgbWF0Y2gxKTtcbiAgICBhZGRSZWdleFRva2VuKCdTUycsICAgbWF0Y2gxdG8zLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1NTUycsICBtYXRjaDF0bzMsIG1hdGNoMyk7XG5cbiAgICB2YXIgdG9rZW47XG4gICAgZm9yICh0b2tlbiA9ICdTU1NTJzsgdG9rZW4ubGVuZ3RoIDw9IDk7IHRva2VuICs9ICdTJykge1xuICAgICAgICBhZGRSZWdleFRva2VuKHRva2VuLCBtYXRjaFVuc2lnbmVkKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU1zKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtNSUxMSVNFQ09ORF0gPSB0b0ludCgoJzAuJyArIGlucHV0KSAqIDEwMDApO1xuICAgIH1cblxuICAgIGZvciAodG9rZW4gPSAnUyc7IHRva2VuLmxlbmd0aCA8PSA5OyB0b2tlbiArPSAnUycpIHtcbiAgICAgICAgYWRkUGFyc2VUb2tlbih0b2tlbiwgcGFyc2VNcyk7XG4gICAgfVxuICAgIC8vIE1PTUVOVFNcblxuICAgIHZhciBnZXRTZXRNaWxsaXNlY29uZCA9IG1ha2VHZXRTZXQoJ01pbGxpc2Vjb25kcycsIGZhbHNlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCd6JywgIDAsIDAsICd6b25lQWJicicpO1xuICAgIGFkZEZvcm1hdFRva2VuKCd6eicsIDAsIDAsICd6b25lTmFtZScpO1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0Wm9uZUFiYnIgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnVVRDJyA6ICcnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFpvbmVOYW1lICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVVRDID8gJ0Nvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lJyA6ICcnO1xuICAgIH1cblxuICAgIHZhciBwcm90byA9IE1vbWVudC5wcm90b3R5cGU7XG5cbiAgICBwcm90by5hZGQgICAgICAgICAgICAgICA9IGFkZDtcbiAgICBwcm90by5jYWxlbmRhciAgICAgICAgICA9IGNhbGVuZGFyJDE7XG4gICAgcHJvdG8uY2xvbmUgICAgICAgICAgICAgPSBjbG9uZTtcbiAgICBwcm90by5kaWZmICAgICAgICAgICAgICA9IGRpZmY7XG4gICAgcHJvdG8uZW5kT2YgICAgICAgICAgICAgPSBlbmRPZjtcbiAgICBwcm90by5mb3JtYXQgICAgICAgICAgICA9IGZvcm1hdDtcbiAgICBwcm90by5mcm9tICAgICAgICAgICAgICA9IGZyb207XG4gICAgcHJvdG8uZnJvbU5vdyAgICAgICAgICAgPSBmcm9tTm93O1xuICAgIHByb3RvLnRvICAgICAgICAgICAgICAgID0gdG87XG4gICAgcHJvdG8udG9Ob3cgICAgICAgICAgICAgPSB0b05vdztcbiAgICBwcm90by5nZXQgICAgICAgICAgICAgICA9IHN0cmluZ0dldDtcbiAgICBwcm90by5pbnZhbGlkQXQgICAgICAgICA9IGludmFsaWRBdDtcbiAgICBwcm90by5pc0FmdGVyICAgICAgICAgICA9IGlzQWZ0ZXI7XG4gICAgcHJvdG8uaXNCZWZvcmUgICAgICAgICAgPSBpc0JlZm9yZTtcbiAgICBwcm90by5pc0JldHdlZW4gICAgICAgICA9IGlzQmV0d2VlbjtcbiAgICBwcm90by5pc1NhbWUgICAgICAgICAgICA9IGlzU2FtZTtcbiAgICBwcm90by5pc1NhbWVPckFmdGVyICAgICA9IGlzU2FtZU9yQWZ0ZXI7XG4gICAgcHJvdG8uaXNTYW1lT3JCZWZvcmUgICAgPSBpc1NhbWVPckJlZm9yZTtcbiAgICBwcm90by5pc1ZhbGlkICAgICAgICAgICA9IGlzVmFsaWQkMjtcbiAgICBwcm90by5sYW5nICAgICAgICAgICAgICA9IGxhbmc7XG4gICAgcHJvdG8ubG9jYWxlICAgICAgICAgICAgPSBsb2NhbGU7XG4gICAgcHJvdG8ubG9jYWxlRGF0YSAgICAgICAgPSBsb2NhbGVEYXRhO1xuICAgIHByb3RvLm1heCAgICAgICAgICAgICAgID0gcHJvdG90eXBlTWF4O1xuICAgIHByb3RvLm1pbiAgICAgICAgICAgICAgID0gcHJvdG90eXBlTWluO1xuICAgIHByb3RvLnBhcnNpbmdGbGFncyAgICAgID0gcGFyc2luZ0ZsYWdzO1xuICAgIHByb3RvLnNldCAgICAgICAgICAgICAgID0gc3RyaW5nU2V0O1xuICAgIHByb3RvLnN0YXJ0T2YgICAgICAgICAgID0gc3RhcnRPZjtcbiAgICBwcm90by5zdWJ0cmFjdCAgICAgICAgICA9IHN1YnRyYWN0O1xuICAgIHByb3RvLnRvQXJyYXkgICAgICAgICAgID0gdG9BcnJheTtcbiAgICBwcm90by50b09iamVjdCAgICAgICAgICA9IHRvT2JqZWN0O1xuICAgIHByb3RvLnRvRGF0ZSAgICAgICAgICAgID0gdG9EYXRlO1xuICAgIHByb3RvLnRvSVNPU3RyaW5nICAgICAgID0gdG9JU09TdHJpbmc7XG4gICAgcHJvdG8uaW5zcGVjdCAgICAgICAgICAgPSBpbnNwZWN0O1xuICAgIHByb3RvLnRvSlNPTiAgICAgICAgICAgID0gdG9KU09OO1xuICAgIHByb3RvLnRvU3RyaW5nICAgICAgICAgID0gdG9TdHJpbmc7XG4gICAgcHJvdG8udW5peCAgICAgICAgICAgICAgPSB1bml4O1xuICAgIHByb3RvLnZhbHVlT2YgICAgICAgICAgID0gdmFsdWVPZjtcbiAgICBwcm90by5jcmVhdGlvbkRhdGEgICAgICA9IGNyZWF0aW9uRGF0YTtcbiAgICBwcm90by55ZWFyICAgICAgID0gZ2V0U2V0WWVhcjtcbiAgICBwcm90by5pc0xlYXBZZWFyID0gZ2V0SXNMZWFwWWVhcjtcbiAgICBwcm90by53ZWVrWWVhciAgICA9IGdldFNldFdlZWtZZWFyO1xuICAgIHByb3RvLmlzb1dlZWtZZWFyID0gZ2V0U2V0SVNPV2Vla1llYXI7XG4gICAgcHJvdG8ucXVhcnRlciA9IHByb3RvLnF1YXJ0ZXJzID0gZ2V0U2V0UXVhcnRlcjtcbiAgICBwcm90by5tb250aCAgICAgICA9IGdldFNldE1vbnRoO1xuICAgIHByb3RvLmRheXNJbk1vbnRoID0gZ2V0RGF5c0luTW9udGg7XG4gICAgcHJvdG8ud2VlayAgICAgICAgICAgPSBwcm90by53ZWVrcyAgICAgICAgPSBnZXRTZXRXZWVrO1xuICAgIHByb3RvLmlzb1dlZWsgICAgICAgID0gcHJvdG8uaXNvV2Vla3MgICAgID0gZ2V0U2V0SVNPV2VlaztcbiAgICBwcm90by53ZWVrc0luWWVhciAgICA9IGdldFdlZWtzSW5ZZWFyO1xuICAgIHByb3RvLmlzb1dlZWtzSW5ZZWFyID0gZ2V0SVNPV2Vla3NJblllYXI7XG4gICAgcHJvdG8uZGF0ZSAgICAgICA9IGdldFNldERheU9mTW9udGg7XG4gICAgcHJvdG8uZGF5ICAgICAgICA9IHByb3RvLmRheXMgICAgICAgICAgICAgPSBnZXRTZXREYXlPZldlZWs7XG4gICAgcHJvdG8ud2Vla2RheSAgICA9IGdldFNldExvY2FsZURheU9mV2VlaztcbiAgICBwcm90by5pc29XZWVrZGF5ID0gZ2V0U2V0SVNPRGF5T2ZXZWVrO1xuICAgIHByb3RvLmRheU9mWWVhciAgPSBnZXRTZXREYXlPZlllYXI7XG4gICAgcHJvdG8uaG91ciA9IHByb3RvLmhvdXJzID0gZ2V0U2V0SG91cjtcbiAgICBwcm90by5taW51dGUgPSBwcm90by5taW51dGVzID0gZ2V0U2V0TWludXRlO1xuICAgIHByb3RvLnNlY29uZCA9IHByb3RvLnNlY29uZHMgPSBnZXRTZXRTZWNvbmQ7XG4gICAgcHJvdG8ubWlsbGlzZWNvbmQgPSBwcm90by5taWxsaXNlY29uZHMgPSBnZXRTZXRNaWxsaXNlY29uZDtcbiAgICBwcm90by51dGNPZmZzZXQgICAgICAgICAgICA9IGdldFNldE9mZnNldDtcbiAgICBwcm90by51dGMgICAgICAgICAgICAgICAgICA9IHNldE9mZnNldFRvVVRDO1xuICAgIHByb3RvLmxvY2FsICAgICAgICAgICAgICAgID0gc2V0T2Zmc2V0VG9Mb2NhbDtcbiAgICBwcm90by5wYXJzZVpvbmUgICAgICAgICAgICA9IHNldE9mZnNldFRvUGFyc2VkT2Zmc2V0O1xuICAgIHByb3RvLmhhc0FsaWduZWRIb3VyT2Zmc2V0ID0gaGFzQWxpZ25lZEhvdXJPZmZzZXQ7XG4gICAgcHJvdG8uaXNEU1QgICAgICAgICAgICAgICAgPSBpc0RheWxpZ2h0U2F2aW5nVGltZTtcbiAgICBwcm90by5pc0xvY2FsICAgICAgICAgICAgICA9IGlzTG9jYWw7XG4gICAgcHJvdG8uaXNVdGNPZmZzZXQgICAgICAgICAgPSBpc1V0Y09mZnNldDtcbiAgICBwcm90by5pc1V0YyAgICAgICAgICAgICAgICA9IGlzVXRjO1xuICAgIHByb3RvLmlzVVRDICAgICAgICAgICAgICAgID0gaXNVdGM7XG4gICAgcHJvdG8uem9uZUFiYnIgPSBnZXRab25lQWJicjtcbiAgICBwcm90by56b25lTmFtZSA9IGdldFpvbmVOYW1lO1xuICAgIHByb3RvLmRhdGVzICA9IGRlcHJlY2F0ZSgnZGF0ZXMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIGRhdGUgaW5zdGVhZC4nLCBnZXRTZXREYXlPZk1vbnRoKTtcbiAgICBwcm90by5tb250aHMgPSBkZXByZWNhdGUoJ21vbnRocyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgbW9udGggaW5zdGVhZCcsIGdldFNldE1vbnRoKTtcbiAgICBwcm90by55ZWFycyAgPSBkZXByZWNhdGUoJ3llYXJzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSB5ZWFyIGluc3RlYWQnLCBnZXRTZXRZZWFyKTtcbiAgICBwcm90by56b25lICAgPSBkZXByZWNhdGUoJ21vbWVudCgpLnpvbmUgaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudCgpLnV0Y09mZnNldCBpbnN0ZWFkLiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL3pvbmUvJywgZ2V0U2V0Wm9uZSk7XG4gICAgcHJvdG8uaXNEU1RTaGlmdGVkID0gZGVwcmVjYXRlKCdpc0RTVFNoaWZ0ZWQgaXMgZGVwcmVjYXRlZC4gU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvZHN0LXNoaWZ0ZWQvIGZvciBtb3JlIGluZm9ybWF0aW9uJywgaXNEYXlsaWdodFNhdmluZ1RpbWVTaGlmdGVkKTtcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVVuaXggKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbChpbnB1dCAqIDEwMDApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUluWm9uZSAoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVMb2NhbC5hcHBseShudWxsLCBhcmd1bWVudHMpLnBhcnNlWm9uZSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByZVBhcnNlUG9zdEZvcm1hdCAoc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBzdHJpbmc7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvJDEgPSBMb2NhbGUucHJvdG90eXBlO1xuXG4gICAgcHJvdG8kMS5jYWxlbmRhciAgICAgICAgPSBjYWxlbmRhcjtcbiAgICBwcm90byQxLmxvbmdEYXRlRm9ybWF0ICA9IGxvbmdEYXRlRm9ybWF0O1xuICAgIHByb3RvJDEuaW52YWxpZERhdGUgICAgID0gaW52YWxpZERhdGU7XG4gICAgcHJvdG8kMS5vcmRpbmFsICAgICAgICAgPSBvcmRpbmFsO1xuICAgIHByb3RvJDEucHJlcGFyc2UgICAgICAgID0gcHJlUGFyc2VQb3N0Rm9ybWF0O1xuICAgIHByb3RvJDEucG9zdGZvcm1hdCAgICAgID0gcHJlUGFyc2VQb3N0Rm9ybWF0O1xuICAgIHByb3RvJDEucmVsYXRpdmVUaW1lICAgID0gcmVsYXRpdmVUaW1lO1xuICAgIHByb3RvJDEucGFzdEZ1dHVyZSAgICAgID0gcGFzdEZ1dHVyZTtcbiAgICBwcm90byQxLnNldCAgICAgICAgICAgICA9IHNldDtcblxuICAgIHByb3RvJDEubW9udGhzICAgICAgICAgICAgPSAgICAgICAgbG9jYWxlTW9udGhzO1xuICAgIHByb3RvJDEubW9udGhzU2hvcnQgICAgICAgPSAgICAgICAgbG9jYWxlTW9udGhzU2hvcnQ7XG4gICAgcHJvdG8kMS5tb250aHNQYXJzZSAgICAgICA9ICAgICAgICBsb2NhbGVNb250aHNQYXJzZTtcbiAgICBwcm90byQxLm1vbnRoc1JlZ2V4ICAgICAgID0gbW9udGhzUmVnZXg7XG4gICAgcHJvdG8kMS5tb250aHNTaG9ydFJlZ2V4ICA9IG1vbnRoc1Nob3J0UmVnZXg7XG4gICAgcHJvdG8kMS53ZWVrID0gbG9jYWxlV2VlaztcbiAgICBwcm90byQxLmZpcnN0RGF5T2ZZZWFyID0gbG9jYWxlRmlyc3REYXlPZlllYXI7XG4gICAgcHJvdG8kMS5maXJzdERheU9mV2VlayA9IGxvY2FsZUZpcnN0RGF5T2ZXZWVrO1xuXG4gICAgcHJvdG8kMS53ZWVrZGF5cyAgICAgICA9ICAgICAgICBsb2NhbGVXZWVrZGF5cztcbiAgICBwcm90byQxLndlZWtkYXlzTWluICAgID0gICAgICAgIGxvY2FsZVdlZWtkYXlzTWluO1xuICAgIHByb3RvJDEud2Vla2RheXNTaG9ydCAgPSAgICAgICAgbG9jYWxlV2Vla2RheXNTaG9ydDtcbiAgICBwcm90byQxLndlZWtkYXlzUGFyc2UgID0gICAgICAgIGxvY2FsZVdlZWtkYXlzUGFyc2U7XG5cbiAgICBwcm90byQxLndlZWtkYXlzUmVnZXggICAgICAgPSAgICAgICAgd2Vla2RheXNSZWdleDtcbiAgICBwcm90byQxLndlZWtkYXlzU2hvcnRSZWdleCAgPSAgICAgICAgd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgIHByb3RvJDEud2Vla2RheXNNaW5SZWdleCAgICA9ICAgICAgICB3ZWVrZGF5c01pblJlZ2V4O1xuXG4gICAgcHJvdG8kMS5pc1BNID0gbG9jYWxlSXNQTTtcbiAgICBwcm90byQxLm1lcmlkaWVtID0gbG9jYWxlTWVyaWRpZW07XG5cbiAgICBmdW5jdGlvbiBnZXQkMSAoZm9ybWF0LCBpbmRleCwgZmllbGQsIHNldHRlcikge1xuICAgICAgICB2YXIgbG9jYWxlID0gZ2V0TG9jYWxlKCk7XG4gICAgICAgIHZhciB1dGMgPSBjcmVhdGVVVEMoKS5zZXQoc2V0dGVyLCBpbmRleCk7XG4gICAgICAgIHJldHVybiBsb2NhbGVbZmllbGRdKHV0YywgZm9ybWF0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TW9udGhzSW1wbCAoZm9ybWF0LCBpbmRleCwgZmllbGQpIHtcbiAgICAgICAgaWYgKGlzTnVtYmVyKGZvcm1hdCkpIHtcbiAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybWF0ID0gZm9ybWF0IHx8ICcnO1xuXG4gICAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0JDEoZm9ybWF0LCBpbmRleCwgZmllbGQsICdtb250aCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGk7XG4gICAgICAgIHZhciBvdXQgPSBbXTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIG91dFtpXSA9IGdldCQxKGZvcm1hdCwgaSwgZmllbGQsICdtb250aCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuXG4gICAgLy8gKClcbiAgICAvLyAoNSlcbiAgICAvLyAoZm10LCA1KVxuICAgIC8vIChmbXQpXG4gICAgLy8gKHRydWUpXG4gICAgLy8gKHRydWUsIDUpXG4gICAgLy8gKHRydWUsIGZtdCwgNSlcbiAgICAvLyAodHJ1ZSwgZm10KVxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5c0ltcGwgKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgZmllbGQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsb2NhbGVTb3J0ZWQgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvcm1hdCA9IGxvY2FsZVNvcnRlZDtcbiAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgbG9jYWxlU29ydGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGlmIChpc051bWJlcihmb3JtYXQpKSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBmb3JtYXQ7XG4gICAgICAgICAgICAgICAgZm9ybWF0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQgfHwgJyc7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbG9jYWxlID0gZ2V0TG9jYWxlKCksXG4gICAgICAgICAgICBzaGlmdCA9IGxvY2FsZVNvcnRlZCA/IGxvY2FsZS5fd2Vlay5kb3cgOiAwO1xuXG4gICAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0JDEoZm9ybWF0LCAoaW5kZXggKyBzaGlmdCkgJSA3LCBmaWVsZCwgJ2RheScpO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGk7XG4gICAgICAgIHZhciBvdXQgPSBbXTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgb3V0W2ldID0gZ2V0JDEoZm9ybWF0LCAoaSArIHNoaWZ0KSAlIDcsIGZpZWxkLCAnZGF5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TW9udGhzIChmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0TW9udGhzSW1wbChmb3JtYXQsIGluZGV4LCAnbW9udGhzJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdE1vbnRoc1Nob3J0IChmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0TW9udGhzSW1wbChmb3JtYXQsIGluZGV4LCAnbW9udGhzU2hvcnQnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0V2Vla2RheXMgKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5cycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5c1Nob3J0IChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RXZWVrZGF5c0ltcGwobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4LCAnd2Vla2RheXNTaG9ydCcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5c01pbiAobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgJ3dlZWtkYXlzTWluJyk7XG4gICAgfVxuXG4gICAgZ2V0U2V0R2xvYmFsTG9jYWxlKCdlbicsIHtcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogL1xcZHsxLDJ9KHRofHN0fG5kfHJkKS8sXG4gICAgICAgIG9yZGluYWwgOiBmdW5jdGlvbiAobnVtYmVyKSB7XG4gICAgICAgICAgICB2YXIgYiA9IG51bWJlciAlIDEwLFxuICAgICAgICAgICAgICAgIG91dHB1dCA9ICh0b0ludChudW1iZXIgJSAxMDAgLyAxMCkgPT09IDEpID8gJ3RoJyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDEpID8gJ3N0JyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDIpID8gJ25kJyA6XG4gICAgICAgICAgICAgICAgKGIgPT09IDMpID8gJ3JkJyA6ICd0aCc7XG4gICAgICAgICAgICByZXR1cm4gbnVtYmVyICsgb3V0cHV0O1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBTaWRlIGVmZmVjdCBpbXBvcnRzXG5cbiAgICBob29rcy5sYW5nID0gZGVwcmVjYXRlKCdtb21lbnQubGFuZyBpcyBkZXByZWNhdGVkLiBVc2UgbW9tZW50LmxvY2FsZSBpbnN0ZWFkLicsIGdldFNldEdsb2JhbExvY2FsZSk7XG4gICAgaG9va3MubGFuZ0RhdGEgPSBkZXByZWNhdGUoJ21vbWVudC5sYW5nRGF0YSBpcyBkZXByZWNhdGVkLiBVc2UgbW9tZW50LmxvY2FsZURhdGEgaW5zdGVhZC4nLCBnZXRMb2NhbGUpO1xuXG4gICAgdmFyIG1hdGhBYnMgPSBNYXRoLmFicztcblxuICAgIGZ1bmN0aW9uIGFicyAoKSB7XG4gICAgICAgIHZhciBkYXRhICAgICAgICAgICA9IHRoaXMuX2RhdGE7XG5cbiAgICAgICAgdGhpcy5fbWlsbGlzZWNvbmRzID0gbWF0aEFicyh0aGlzLl9taWxsaXNlY29uZHMpO1xuICAgICAgICB0aGlzLl9kYXlzICAgICAgICAgPSBtYXRoQWJzKHRoaXMuX2RheXMpO1xuICAgICAgICB0aGlzLl9tb250aHMgICAgICAgPSBtYXRoQWJzKHRoaXMuX21vbnRocyk7XG5cbiAgICAgICAgZGF0YS5taWxsaXNlY29uZHMgID0gbWF0aEFicyhkYXRhLm1pbGxpc2Vjb25kcyk7XG4gICAgICAgIGRhdGEuc2Vjb25kcyAgICAgICA9IG1hdGhBYnMoZGF0YS5zZWNvbmRzKTtcbiAgICAgICAgZGF0YS5taW51dGVzICAgICAgID0gbWF0aEFicyhkYXRhLm1pbnV0ZXMpO1xuICAgICAgICBkYXRhLmhvdXJzICAgICAgICAgPSBtYXRoQWJzKGRhdGEuaG91cnMpO1xuICAgICAgICBkYXRhLm1vbnRocyAgICAgICAgPSBtYXRoQWJzKGRhdGEubW9udGhzKTtcbiAgICAgICAgZGF0YS55ZWFycyAgICAgICAgID0gbWF0aEFicyhkYXRhLnllYXJzKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRTdWJ0cmFjdCQxIChkdXJhdGlvbiwgaW5wdXQsIHZhbHVlLCBkaXJlY3Rpb24pIHtcbiAgICAgICAgdmFyIG90aGVyID0gY3JlYXRlRHVyYXRpb24oaW5wdXQsIHZhbHVlKTtcblxuICAgICAgICBkdXJhdGlvbi5fbWlsbGlzZWNvbmRzICs9IGRpcmVjdGlvbiAqIG90aGVyLl9taWxsaXNlY29uZHM7XG4gICAgICAgIGR1cmF0aW9uLl9kYXlzICAgICAgICAgKz0gZGlyZWN0aW9uICogb3RoZXIuX2RheXM7XG4gICAgICAgIGR1cmF0aW9uLl9tb250aHMgICAgICAgKz0gZGlyZWN0aW9uICogb3RoZXIuX21vbnRocztcblxuICAgICAgICByZXR1cm4gZHVyYXRpb24uX2J1YmJsZSgpO1xuICAgIH1cblxuICAgIC8vIHN1cHBvcnRzIG9ubHkgMi4wLXN0eWxlIGFkZCgxLCAncycpIG9yIGFkZChkdXJhdGlvbilcbiAgICBmdW5jdGlvbiBhZGQkMSAoaW5wdXQsIHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBhZGRTdWJ0cmFjdCQxKHRoaXMsIGlucHV0LCB2YWx1ZSwgMSk7XG4gICAgfVxuXG4gICAgLy8gc3VwcG9ydHMgb25seSAyLjAtc3R5bGUgc3VidHJhY3QoMSwgJ3MnKSBvciBzdWJ0cmFjdChkdXJhdGlvbilcbiAgICBmdW5jdGlvbiBzdWJ0cmFjdCQxIChpbnB1dCwgdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGFkZFN1YnRyYWN0JDEodGhpcywgaW5wdXQsIHZhbHVlLCAtMSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWJzQ2VpbCAobnVtYmVyKSB7XG4gICAgICAgIGlmIChudW1iZXIgPCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihudW1iZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGguY2VpbChudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYnViYmxlICgpIHtcbiAgICAgICAgdmFyIG1pbGxpc2Vjb25kcyA9IHRoaXMuX21pbGxpc2Vjb25kcztcbiAgICAgICAgdmFyIGRheXMgICAgICAgICA9IHRoaXMuX2RheXM7XG4gICAgICAgIHZhciBtb250aHMgICAgICAgPSB0aGlzLl9tb250aHM7XG4gICAgICAgIHZhciBkYXRhICAgICAgICAgPSB0aGlzLl9kYXRhO1xuICAgICAgICB2YXIgc2Vjb25kcywgbWludXRlcywgaG91cnMsIHllYXJzLCBtb250aHNGcm9tRGF5cztcblxuICAgICAgICAvLyBpZiB3ZSBoYXZlIGEgbWl4IG9mIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSB2YWx1ZXMsIGJ1YmJsZSBkb3duIGZpcnN0XG4gICAgICAgIC8vIGNoZWNrOiBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9pc3N1ZXMvMjE2NlxuICAgICAgICBpZiAoISgobWlsbGlzZWNvbmRzID49IDAgJiYgZGF5cyA+PSAwICYmIG1vbnRocyA+PSAwKSB8fFxuICAgICAgICAgICAgICAgIChtaWxsaXNlY29uZHMgPD0gMCAmJiBkYXlzIDw9IDAgJiYgbW9udGhzIDw9IDApKSkge1xuICAgICAgICAgICAgbWlsbGlzZWNvbmRzICs9IGFic0NlaWwobW9udGhzVG9EYXlzKG1vbnRocykgKyBkYXlzKSAqIDg2NGU1O1xuICAgICAgICAgICAgZGF5cyA9IDA7XG4gICAgICAgICAgICBtb250aHMgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjb2RlIGJ1YmJsZXMgdXAgdmFsdWVzLCBzZWUgdGhlIHRlc3RzIGZvclxuICAgICAgICAvLyBleGFtcGxlcyBvZiB3aGF0IHRoYXQgbWVhbnMuXG4gICAgICAgIGRhdGEubWlsbGlzZWNvbmRzID0gbWlsbGlzZWNvbmRzICUgMTAwMDtcblxuICAgICAgICBzZWNvbmRzICAgICAgICAgICA9IGFic0Zsb29yKG1pbGxpc2Vjb25kcyAvIDEwMDApO1xuICAgICAgICBkYXRhLnNlY29uZHMgICAgICA9IHNlY29uZHMgJSA2MDtcblxuICAgICAgICBtaW51dGVzICAgICAgICAgICA9IGFic0Zsb29yKHNlY29uZHMgLyA2MCk7XG4gICAgICAgIGRhdGEubWludXRlcyAgICAgID0gbWludXRlcyAlIDYwO1xuXG4gICAgICAgIGhvdXJzICAgICAgICAgICAgID0gYWJzRmxvb3IobWludXRlcyAvIDYwKTtcbiAgICAgICAgZGF0YS5ob3VycyAgICAgICAgPSBob3VycyAlIDI0O1xuXG4gICAgICAgIGRheXMgKz0gYWJzRmxvb3IoaG91cnMgLyAyNCk7XG5cbiAgICAgICAgLy8gY29udmVydCBkYXlzIHRvIG1vbnRoc1xuICAgICAgICBtb250aHNGcm9tRGF5cyA9IGFic0Zsb29yKGRheXNUb01vbnRocyhkYXlzKSk7XG4gICAgICAgIG1vbnRocyArPSBtb250aHNGcm9tRGF5cztcbiAgICAgICAgZGF5cyAtPSBhYnNDZWlsKG1vbnRoc1RvRGF5cyhtb250aHNGcm9tRGF5cykpO1xuXG4gICAgICAgIC8vIDEyIG1vbnRocyAtPiAxIHllYXJcbiAgICAgICAgeWVhcnMgPSBhYnNGbG9vcihtb250aHMgLyAxMik7XG4gICAgICAgIG1vbnRocyAlPSAxMjtcblxuICAgICAgICBkYXRhLmRheXMgICA9IGRheXM7XG4gICAgICAgIGRhdGEubW9udGhzID0gbW9udGhzO1xuICAgICAgICBkYXRhLnllYXJzICA9IHllYXJzO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRheXNUb01vbnRocyAoZGF5cykge1xuICAgICAgICAvLyA0MDAgeWVhcnMgaGF2ZSAxNDYwOTcgZGF5cyAodGFraW5nIGludG8gYWNjb3VudCBsZWFwIHllYXIgcnVsZXMpXG4gICAgICAgIC8vIDQwMCB5ZWFycyBoYXZlIDEyIG1vbnRocyA9PT0gNDgwMFxuICAgICAgICByZXR1cm4gZGF5cyAqIDQ4MDAgLyAxNDYwOTc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW9udGhzVG9EYXlzIChtb250aHMpIHtcbiAgICAgICAgLy8gdGhlIHJldmVyc2Ugb2YgZGF5c1RvTW9udGhzXG4gICAgICAgIHJldHVybiBtb250aHMgKiAxNDYwOTcgLyA0ODAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFzICh1bml0cykge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhciBkYXlzO1xuICAgICAgICB2YXIgbW9udGhzO1xuICAgICAgICB2YXIgbWlsbGlzZWNvbmRzID0gdGhpcy5fbWlsbGlzZWNvbmRzO1xuXG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuXG4gICAgICAgIGlmICh1bml0cyA9PT0gJ21vbnRoJyB8fCB1bml0cyA9PT0gJ3F1YXJ0ZXInIHx8IHVuaXRzID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIGRheXMgPSB0aGlzLl9kYXlzICsgbWlsbGlzZWNvbmRzIC8gODY0ZTU7XG4gICAgICAgICAgICBtb250aHMgPSB0aGlzLl9tb250aHMgKyBkYXlzVG9Nb250aHMoZGF5cyk7XG4gICAgICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnbW9udGgnOiAgIHJldHVybiBtb250aHM7XG4gICAgICAgICAgICAgICAgY2FzZSAncXVhcnRlcic6IHJldHVybiBtb250aHMgLyAzO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3llYXInOiAgICByZXR1cm4gbW9udGhzIC8gMTI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBoYW5kbGUgbWlsbGlzZWNvbmRzIHNlcGFyYXRlbHkgYmVjYXVzZSBvZiBmbG9hdGluZyBwb2ludCBtYXRoIGVycm9ycyAoaXNzdWUgIzE4NjcpXG4gICAgICAgICAgICBkYXlzID0gdGhpcy5fZGF5cyArIE1hdGgucm91bmQobW9udGhzVG9EYXlzKHRoaXMuX21vbnRocykpO1xuICAgICAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3dlZWsnICAgOiByZXR1cm4gZGF5cyAvIDcgICAgICsgbWlsbGlzZWNvbmRzIC8gNjA0OGU1O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RheScgICAgOiByZXR1cm4gZGF5cyAgICAgICAgICsgbWlsbGlzZWNvbmRzIC8gODY0ZTU7XG4gICAgICAgICAgICAgICAgY2FzZSAnaG91cicgICA6IHJldHVybiBkYXlzICogMjQgICAgKyBtaWxsaXNlY29uZHMgLyAzNmU1O1xuICAgICAgICAgICAgICAgIGNhc2UgJ21pbnV0ZScgOiByZXR1cm4gZGF5cyAqIDE0NDAgICsgbWlsbGlzZWNvbmRzIC8gNmU0O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NlY29uZCcgOiByZXR1cm4gZGF5cyAqIDg2NDAwICsgbWlsbGlzZWNvbmRzIC8gMTAwMDtcbiAgICAgICAgICAgICAgICAvLyBNYXRoLmZsb29yIHByZXZlbnRzIGZsb2F0aW5nIHBvaW50IG1hdGggZXJyb3JzIGhlcmVcbiAgICAgICAgICAgICAgICBjYXNlICdtaWxsaXNlY29uZCc6IHJldHVybiBNYXRoLmZsb29yKGRheXMgKiA4NjRlNSkgKyBtaWxsaXNlY29uZHM7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHVuaXQgJyArIHVuaXRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IFVzZSB0aGlzLmFzKCdtcycpP1xuICAgIGZ1bmN0aW9uIHZhbHVlT2YkMSAoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuX21pbGxpc2Vjb25kcyArXG4gICAgICAgICAgICB0aGlzLl9kYXlzICogODY0ZTUgK1xuICAgICAgICAgICAgKHRoaXMuX21vbnRocyAlIDEyKSAqIDI1OTJlNiArXG4gICAgICAgICAgICB0b0ludCh0aGlzLl9tb250aHMgLyAxMikgKiAzMTUzNmU2XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUFzIChhbGlhcykge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXMoYWxpYXMpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHZhciBhc01pbGxpc2Vjb25kcyA9IG1ha2VBcygnbXMnKTtcbiAgICB2YXIgYXNTZWNvbmRzICAgICAgPSBtYWtlQXMoJ3MnKTtcbiAgICB2YXIgYXNNaW51dGVzICAgICAgPSBtYWtlQXMoJ20nKTtcbiAgICB2YXIgYXNIb3VycyAgICAgICAgPSBtYWtlQXMoJ2gnKTtcbiAgICB2YXIgYXNEYXlzICAgICAgICAgPSBtYWtlQXMoJ2QnKTtcbiAgICB2YXIgYXNXZWVrcyAgICAgICAgPSBtYWtlQXMoJ3cnKTtcbiAgICB2YXIgYXNNb250aHMgICAgICAgPSBtYWtlQXMoJ00nKTtcbiAgICB2YXIgYXNRdWFydGVycyAgICAgPSBtYWtlQXMoJ1EnKTtcbiAgICB2YXIgYXNZZWFycyAgICAgICAgPSBtYWtlQXMoJ3knKTtcblxuICAgIGZ1bmN0aW9uIGNsb25lJDEgKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24odGhpcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0JDIgKHVuaXRzKSB7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzW3VuaXRzICsgJ3MnXSgpIDogTmFOO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1ha2VHZXR0ZXIobmFtZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy5fZGF0YVtuYW1lXSA6IE5hTjtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgbWlsbGlzZWNvbmRzID0gbWFrZUdldHRlcignbWlsbGlzZWNvbmRzJyk7XG4gICAgdmFyIHNlY29uZHMgICAgICA9IG1ha2VHZXR0ZXIoJ3NlY29uZHMnKTtcbiAgICB2YXIgbWludXRlcyAgICAgID0gbWFrZUdldHRlcignbWludXRlcycpO1xuICAgIHZhciBob3VycyAgICAgICAgPSBtYWtlR2V0dGVyKCdob3VycycpO1xuICAgIHZhciBkYXlzICAgICAgICAgPSBtYWtlR2V0dGVyKCdkYXlzJyk7XG4gICAgdmFyIG1vbnRocyAgICAgICA9IG1ha2VHZXR0ZXIoJ21vbnRocycpO1xuICAgIHZhciB5ZWFycyAgICAgICAgPSBtYWtlR2V0dGVyKCd5ZWFycycpO1xuXG4gICAgZnVuY3Rpb24gd2Vla3MgKCkge1xuICAgICAgICByZXR1cm4gYWJzRmxvb3IodGhpcy5kYXlzKCkgLyA3KTtcbiAgICB9XG5cbiAgICB2YXIgcm91bmQgPSBNYXRoLnJvdW5kO1xuICAgIHZhciB0aHJlc2hvbGRzID0ge1xuICAgICAgICBzczogNDQsICAgICAgICAgLy8gYSBmZXcgc2Vjb25kcyB0byBzZWNvbmRzXG4gICAgICAgIHMgOiA0NSwgICAgICAgICAvLyBzZWNvbmRzIHRvIG1pbnV0ZVxuICAgICAgICBtIDogNDUsICAgICAgICAgLy8gbWludXRlcyB0byBob3VyXG4gICAgICAgIGggOiAyMiwgICAgICAgICAvLyBob3VycyB0byBkYXlcbiAgICAgICAgZCA6IDI2LCAgICAgICAgIC8vIGRheXMgdG8gbW9udGhcbiAgICAgICAgTSA6IDExICAgICAgICAgIC8vIG1vbnRocyB0byB5ZWFyXG4gICAgfTtcblxuICAgIC8vIGhlbHBlciBmdW5jdGlvbiBmb3IgbW9tZW50LmZuLmZyb20sIG1vbWVudC5mbi5mcm9tTm93LCBhbmQgbW9tZW50LmR1cmF0aW9uLmZuLmh1bWFuaXplXG4gICAgZnVuY3Rpb24gc3Vic3RpdHV0ZVRpbWVBZ28oc3RyaW5nLCBudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGlzRnV0dXJlLCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5yZWxhdGl2ZVRpbWUobnVtYmVyIHx8IDEsICEhd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lJDEgKHBvc05lZ0R1cmF0aW9uLCB3aXRob3V0U3VmZml4LCBsb2NhbGUpIHtcbiAgICAgICAgdmFyIGR1cmF0aW9uID0gY3JlYXRlRHVyYXRpb24ocG9zTmVnRHVyYXRpb24pLmFicygpO1xuICAgICAgICB2YXIgc2Vjb25kcyAgPSByb3VuZChkdXJhdGlvbi5hcygncycpKTtcbiAgICAgICAgdmFyIG1pbnV0ZXMgID0gcm91bmQoZHVyYXRpb24uYXMoJ20nKSk7XG4gICAgICAgIHZhciBob3VycyAgICA9IHJvdW5kKGR1cmF0aW9uLmFzKCdoJykpO1xuICAgICAgICB2YXIgZGF5cyAgICAgPSByb3VuZChkdXJhdGlvbi5hcygnZCcpKTtcbiAgICAgICAgdmFyIG1vbnRocyAgID0gcm91bmQoZHVyYXRpb24uYXMoJ00nKSk7XG4gICAgICAgIHZhciB5ZWFycyAgICA9IHJvdW5kKGR1cmF0aW9uLmFzKCd5JykpO1xuXG4gICAgICAgIHZhciBhID0gc2Vjb25kcyA8PSB0aHJlc2hvbGRzLnNzICYmIFsncycsIHNlY29uZHNdICB8fFxuICAgICAgICAgICAgICAgIHNlY29uZHMgPCB0aHJlc2hvbGRzLnMgICAmJiBbJ3NzJywgc2Vjb25kc10gfHxcbiAgICAgICAgICAgICAgICBtaW51dGVzIDw9IDEgICAgICAgICAgICAgJiYgWydtJ10gICAgICAgICAgIHx8XG4gICAgICAgICAgICAgICAgbWludXRlcyA8IHRocmVzaG9sZHMubSAgICYmIFsnbW0nLCBtaW51dGVzXSB8fFxuICAgICAgICAgICAgICAgIGhvdXJzICAgPD0gMSAgICAgICAgICAgICAmJiBbJ2gnXSAgICAgICAgICAgfHxcbiAgICAgICAgICAgICAgICBob3VycyAgIDwgdGhyZXNob2xkcy5oICAgJiYgWydoaCcsIGhvdXJzXSAgIHx8XG4gICAgICAgICAgICAgICAgZGF5cyAgICA8PSAxICAgICAgICAgICAgICYmIFsnZCddICAgICAgICAgICB8fFxuICAgICAgICAgICAgICAgIGRheXMgICAgPCB0aHJlc2hvbGRzLmQgICAmJiBbJ2RkJywgZGF5c10gICAgfHxcbiAgICAgICAgICAgICAgICBtb250aHMgIDw9IDEgICAgICAgICAgICAgJiYgWydNJ10gICAgICAgICAgIHx8XG4gICAgICAgICAgICAgICAgbW9udGhzICA8IHRocmVzaG9sZHMuTSAgICYmIFsnTU0nLCBtb250aHNdICB8fFxuICAgICAgICAgICAgICAgIHllYXJzICAgPD0gMSAgICAgICAgICAgICAmJiBbJ3knXSAgICAgICAgICAgfHwgWyd5eScsIHllYXJzXTtcblxuICAgICAgICBhWzJdID0gd2l0aG91dFN1ZmZpeDtcbiAgICAgICAgYVszXSA9ICtwb3NOZWdEdXJhdGlvbiA+IDA7XG4gICAgICAgIGFbNF0gPSBsb2NhbGU7XG4gICAgICAgIHJldHVybiBzdWJzdGl0dXRlVGltZUFnby5hcHBseShudWxsLCBhKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gc2V0IHRoZSByb3VuZGluZyBmdW5jdGlvbiBmb3IgcmVsYXRpdmUgdGltZSBzdHJpbmdzXG4gICAgZnVuY3Rpb24gZ2V0U2V0UmVsYXRpdmVUaW1lUm91bmRpbmcgKHJvdW5kaW5nRnVuY3Rpb24pIHtcbiAgICAgICAgaWYgKHJvdW5kaW5nRnVuY3Rpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHJvdW5kO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Yocm91bmRpbmdGdW5jdGlvbikgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJvdW5kID0gcm91bmRpbmdGdW5jdGlvbjtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gc2V0IGEgdGhyZXNob2xkIGZvciByZWxhdGl2ZSB0aW1lIHN0cmluZ3NcbiAgICBmdW5jdGlvbiBnZXRTZXRSZWxhdGl2ZVRpbWVUaHJlc2hvbGQgKHRocmVzaG9sZCwgbGltaXQpIHtcbiAgICAgICAgaWYgKHRocmVzaG9sZHNbdGhyZXNob2xkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbWl0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJlc2hvbGRzW3RocmVzaG9sZF07XG4gICAgICAgIH1cbiAgICAgICAgdGhyZXNob2xkc1t0aHJlc2hvbGRdID0gbGltaXQ7XG4gICAgICAgIGlmICh0aHJlc2hvbGQgPT09ICdzJykge1xuICAgICAgICAgICAgdGhyZXNob2xkcy5zcyA9IGxpbWl0IC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBodW1hbml6ZSAod2l0aFN1ZmZpeCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBsb2NhbGUgPSB0aGlzLmxvY2FsZURhdGEoKTtcbiAgICAgICAgdmFyIG91dHB1dCA9IHJlbGF0aXZlVGltZSQxKHRoaXMsICF3aXRoU3VmZml4LCBsb2NhbGUpO1xuXG4gICAgICAgIGlmICh3aXRoU3VmZml4KSB7XG4gICAgICAgICAgICBvdXRwdXQgPSBsb2NhbGUucGFzdEZ1dHVyZSgrdGhpcywgb3V0cHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsb2NhbGUucG9zdGZvcm1hdChvdXRwdXQpO1xuICAgIH1cblxuICAgIHZhciBhYnMkMSA9IE1hdGguYWJzO1xuXG4gICAgZnVuY3Rpb24gc2lnbih4KSB7XG4gICAgICAgIHJldHVybiAoKHggPiAwKSAtICh4IDwgMCkpIHx8ICt4O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSVNPU3RyaW5nJDEoKSB7XG4gICAgICAgIC8vIGZvciBJU08gc3RyaW5ncyB3ZSBkbyBub3QgdXNlIHRoZSBub3JtYWwgYnViYmxpbmcgcnVsZXM6XG4gICAgICAgIC8vICAqIG1pbGxpc2Vjb25kcyBidWJibGUgdXAgdW50aWwgdGhleSBiZWNvbWUgaG91cnNcbiAgICAgICAgLy8gICogZGF5cyBkbyBub3QgYnViYmxlIGF0IGFsbFxuICAgICAgICAvLyAgKiBtb250aHMgYnViYmxlIHVwIHVudGlsIHRoZXkgYmVjb21lIHllYXJzXG4gICAgICAgIC8vIFRoaXMgaXMgYmVjYXVzZSB0aGVyZSBpcyBubyBjb250ZXh0LWZyZWUgY29udmVyc2lvbiBiZXR3ZWVuIGhvdXJzIGFuZCBkYXlzXG4gICAgICAgIC8vICh0aGluayBvZiBjbG9jayBjaGFuZ2VzKVxuICAgICAgICAvLyBhbmQgYWxzbyBub3QgYmV0d2VlbiBkYXlzIGFuZCBtb250aHMgKDI4LTMxIGRheXMgcGVyIG1vbnRoKVxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzZWNvbmRzID0gYWJzJDEodGhpcy5fbWlsbGlzZWNvbmRzKSAvIDEwMDA7XG4gICAgICAgIHZhciBkYXlzICAgICAgICAgPSBhYnMkMSh0aGlzLl9kYXlzKTtcbiAgICAgICAgdmFyIG1vbnRocyAgICAgICA9IGFicyQxKHRoaXMuX21vbnRocyk7XG4gICAgICAgIHZhciBtaW51dGVzLCBob3VycywgeWVhcnM7XG5cbiAgICAgICAgLy8gMzYwMCBzZWNvbmRzIC0+IDYwIG1pbnV0ZXMgLT4gMSBob3VyXG4gICAgICAgIG1pbnV0ZXMgICAgICAgICAgID0gYWJzRmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgICAgICAgaG91cnMgICAgICAgICAgICAgPSBhYnNGbG9vcihtaW51dGVzIC8gNjApO1xuICAgICAgICBzZWNvbmRzICU9IDYwO1xuICAgICAgICBtaW51dGVzICU9IDYwO1xuXG4gICAgICAgIC8vIDEyIG1vbnRocyAtPiAxIHllYXJcbiAgICAgICAgeWVhcnMgID0gYWJzRmxvb3IobW9udGhzIC8gMTIpO1xuICAgICAgICBtb250aHMgJT0gMTI7XG5cblxuICAgICAgICAvLyBpbnNwaXJlZCBieSBodHRwczovL2dpdGh1Yi5jb20vZG9yZGlsbGUvbW9tZW50LWlzb2R1cmF0aW9uL2Jsb2IvbWFzdGVyL21vbWVudC5pc29kdXJhdGlvbi5qc1xuICAgICAgICB2YXIgWSA9IHllYXJzO1xuICAgICAgICB2YXIgTSA9IG1vbnRocztcbiAgICAgICAgdmFyIEQgPSBkYXlzO1xuICAgICAgICB2YXIgaCA9IGhvdXJzO1xuICAgICAgICB2YXIgbSA9IG1pbnV0ZXM7XG4gICAgICAgIHZhciBzID0gc2Vjb25kcyA/IHNlY29uZHMudG9GaXhlZCgzKS5yZXBsYWNlKC9cXC4/MCskLywgJycpIDogJyc7XG4gICAgICAgIHZhciB0b3RhbCA9IHRoaXMuYXNTZWNvbmRzKCk7XG5cbiAgICAgICAgaWYgKCF0b3RhbCkge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgc2FtZSBhcyBDIydzIChOb2RhKSBhbmQgcHl0aG9uIChpc29kYXRlKS4uLlxuICAgICAgICAgICAgLy8gYnV0IG5vdCBvdGhlciBKUyAoZ29vZy5kYXRlKVxuICAgICAgICAgICAgcmV0dXJuICdQMEQnO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHRvdGFsU2lnbiA9IHRvdGFsIDwgMCA/ICctJyA6ICcnO1xuICAgICAgICB2YXIgeW1TaWduID0gc2lnbih0aGlzLl9tb250aHMpICE9PSBzaWduKHRvdGFsKSA/ICctJyA6ICcnO1xuICAgICAgICB2YXIgZGF5c1NpZ24gPSBzaWduKHRoaXMuX2RheXMpICE9PSBzaWduKHRvdGFsKSA/ICctJyA6ICcnO1xuICAgICAgICB2YXIgaG1zU2lnbiA9IHNpZ24odGhpcy5fbWlsbGlzZWNvbmRzKSAhPT0gc2lnbih0b3RhbCkgPyAnLScgOiAnJztcblxuICAgICAgICByZXR1cm4gdG90YWxTaWduICsgJ1AnICtcbiAgICAgICAgICAgIChZID8geW1TaWduICsgWSArICdZJyA6ICcnKSArXG4gICAgICAgICAgICAoTSA/IHltU2lnbiArIE0gKyAnTScgOiAnJykgK1xuICAgICAgICAgICAgKEQgPyBkYXlzU2lnbiArIEQgKyAnRCcgOiAnJykgK1xuICAgICAgICAgICAgKChoIHx8IG0gfHwgcykgPyAnVCcgOiAnJykgK1xuICAgICAgICAgICAgKGggPyBobXNTaWduICsgaCArICdIJyA6ICcnKSArXG4gICAgICAgICAgICAobSA/IGhtc1NpZ24gKyBtICsgJ00nIDogJycpICtcbiAgICAgICAgICAgIChzID8gaG1zU2lnbiArIHMgKyAnUycgOiAnJyk7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvJDIgPSBEdXJhdGlvbi5wcm90b3R5cGU7XG5cbiAgICBwcm90byQyLmlzVmFsaWQgICAgICAgID0gaXNWYWxpZCQxO1xuICAgIHByb3RvJDIuYWJzICAgICAgICAgICAgPSBhYnM7XG4gICAgcHJvdG8kMi5hZGQgICAgICAgICAgICA9IGFkZCQxO1xuICAgIHByb3RvJDIuc3VidHJhY3QgICAgICAgPSBzdWJ0cmFjdCQxO1xuICAgIHByb3RvJDIuYXMgICAgICAgICAgICAgPSBhcztcbiAgICBwcm90byQyLmFzTWlsbGlzZWNvbmRzID0gYXNNaWxsaXNlY29uZHM7XG4gICAgcHJvdG8kMi5hc1NlY29uZHMgICAgICA9IGFzU2Vjb25kcztcbiAgICBwcm90byQyLmFzTWludXRlcyAgICAgID0gYXNNaW51dGVzO1xuICAgIHByb3RvJDIuYXNIb3VycyAgICAgICAgPSBhc0hvdXJzO1xuICAgIHByb3RvJDIuYXNEYXlzICAgICAgICAgPSBhc0RheXM7XG4gICAgcHJvdG8kMi5hc1dlZWtzICAgICAgICA9IGFzV2Vla3M7XG4gICAgcHJvdG8kMi5hc01vbnRocyAgICAgICA9IGFzTW9udGhzO1xuICAgIHByb3RvJDIuYXNRdWFydGVycyAgICAgPSBhc1F1YXJ0ZXJzO1xuICAgIHByb3RvJDIuYXNZZWFycyAgICAgICAgPSBhc1llYXJzO1xuICAgIHByb3RvJDIudmFsdWVPZiAgICAgICAgPSB2YWx1ZU9mJDE7XG4gICAgcHJvdG8kMi5fYnViYmxlICAgICAgICA9IGJ1YmJsZTtcbiAgICBwcm90byQyLmNsb25lICAgICAgICAgID0gY2xvbmUkMTtcbiAgICBwcm90byQyLmdldCAgICAgICAgICAgID0gZ2V0JDI7XG4gICAgcHJvdG8kMi5taWxsaXNlY29uZHMgICA9IG1pbGxpc2Vjb25kcztcbiAgICBwcm90byQyLnNlY29uZHMgICAgICAgID0gc2Vjb25kcztcbiAgICBwcm90byQyLm1pbnV0ZXMgICAgICAgID0gbWludXRlcztcbiAgICBwcm90byQyLmhvdXJzICAgICAgICAgID0gaG91cnM7XG4gICAgcHJvdG8kMi5kYXlzICAgICAgICAgICA9IGRheXM7XG4gICAgcHJvdG8kMi53ZWVrcyAgICAgICAgICA9IHdlZWtzO1xuICAgIHByb3RvJDIubW9udGhzICAgICAgICAgPSBtb250aHM7XG4gICAgcHJvdG8kMi55ZWFycyAgICAgICAgICA9IHllYXJzO1xuICAgIHByb3RvJDIuaHVtYW5pemUgICAgICAgPSBodW1hbml6ZTtcbiAgICBwcm90byQyLnRvSVNPU3RyaW5nICAgID0gdG9JU09TdHJpbmckMTtcbiAgICBwcm90byQyLnRvU3RyaW5nICAgICAgID0gdG9JU09TdHJpbmckMTtcbiAgICBwcm90byQyLnRvSlNPTiAgICAgICAgID0gdG9JU09TdHJpbmckMTtcbiAgICBwcm90byQyLmxvY2FsZSAgICAgICAgID0gbG9jYWxlO1xuICAgIHByb3RvJDIubG9jYWxlRGF0YSAgICAgPSBsb2NhbGVEYXRhO1xuXG4gICAgcHJvdG8kMi50b0lzb1N0cmluZyA9IGRlcHJlY2F0ZSgndG9Jc29TdHJpbmcoKSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIHRvSVNPU3RyaW5nKCkgaW5zdGVhZCAobm90aWNlIHRoZSBjYXBpdGFscyknLCB0b0lTT1N0cmluZyQxKTtcbiAgICBwcm90byQyLmxhbmcgPSBsYW5nO1xuXG4gICAgLy8gU2lkZSBlZmZlY3QgaW1wb3J0c1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1gnLCAwLCAwLCAndW5peCcpO1xuICAgIGFkZEZvcm1hdFRva2VuKCd4JywgMCwgMCwgJ3ZhbHVlT2YnKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ3gnLCBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignWCcsIG1hdGNoVGltZXN0YW1wKTtcbiAgICBhZGRQYXJzZVRva2VuKCdYJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKHBhcnNlRmxvYXQoaW5wdXQsIDEwKSAqIDEwMDApO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ3gnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUodG9JbnQoaW5wdXQpKTtcbiAgICB9KTtcblxuICAgIC8vIFNpZGUgZWZmZWN0IGltcG9ydHNcblxuXG4gICAgaG9va3MudmVyc2lvbiA9ICcyLjI0LjAnO1xuXG4gICAgc2V0SG9va0NhbGxiYWNrKGNyZWF0ZUxvY2FsKTtcblxuICAgIGhvb2tzLmZuICAgICAgICAgICAgICAgICAgICA9IHByb3RvO1xuICAgIGhvb2tzLm1pbiAgICAgICAgICAgICAgICAgICA9IG1pbjtcbiAgICBob29rcy5tYXggICAgICAgICAgICAgICAgICAgPSBtYXg7XG4gICAgaG9va3Mubm93ICAgICAgICAgICAgICAgICAgID0gbm93O1xuICAgIGhvb2tzLnV0YyAgICAgICAgICAgICAgICAgICA9IGNyZWF0ZVVUQztcbiAgICBob29rcy51bml4ICAgICAgICAgICAgICAgICAgPSBjcmVhdGVVbml4O1xuICAgIGhvb2tzLm1vbnRocyAgICAgICAgICAgICAgICA9IGxpc3RNb250aHM7XG4gICAgaG9va3MuaXNEYXRlICAgICAgICAgICAgICAgID0gaXNEYXRlO1xuICAgIGhvb2tzLmxvY2FsZSAgICAgICAgICAgICAgICA9IGdldFNldEdsb2JhbExvY2FsZTtcbiAgICBob29rcy5pbnZhbGlkICAgICAgICAgICAgICAgPSBjcmVhdGVJbnZhbGlkO1xuICAgIGhvb2tzLmR1cmF0aW9uICAgICAgICAgICAgICA9IGNyZWF0ZUR1cmF0aW9uO1xuICAgIGhvb2tzLmlzTW9tZW50ICAgICAgICAgICAgICA9IGlzTW9tZW50O1xuICAgIGhvb2tzLndlZWtkYXlzICAgICAgICAgICAgICA9IGxpc3RXZWVrZGF5cztcbiAgICBob29rcy5wYXJzZVpvbmUgICAgICAgICAgICAgPSBjcmVhdGVJblpvbmU7XG4gICAgaG9va3MubG9jYWxlRGF0YSAgICAgICAgICAgID0gZ2V0TG9jYWxlO1xuICAgIGhvb2tzLmlzRHVyYXRpb24gICAgICAgICAgICA9IGlzRHVyYXRpb247XG4gICAgaG9va3MubW9udGhzU2hvcnQgICAgICAgICAgID0gbGlzdE1vbnRoc1Nob3J0O1xuICAgIGhvb2tzLndlZWtkYXlzTWluICAgICAgICAgICA9IGxpc3RXZWVrZGF5c01pbjtcbiAgICBob29rcy5kZWZpbmVMb2NhbGUgICAgICAgICAgPSBkZWZpbmVMb2NhbGU7XG4gICAgaG9va3MudXBkYXRlTG9jYWxlICAgICAgICAgID0gdXBkYXRlTG9jYWxlO1xuICAgIGhvb2tzLmxvY2FsZXMgICAgICAgICAgICAgICA9IGxpc3RMb2NhbGVzO1xuICAgIGhvb2tzLndlZWtkYXlzU2hvcnQgICAgICAgICA9IGxpc3RXZWVrZGF5c1Nob3J0O1xuICAgIGhvb2tzLm5vcm1hbGl6ZVVuaXRzICAgICAgICA9IG5vcm1hbGl6ZVVuaXRzO1xuICAgIGhvb2tzLnJlbGF0aXZlVGltZVJvdW5kaW5nICA9IGdldFNldFJlbGF0aXZlVGltZVJvdW5kaW5nO1xuICAgIGhvb2tzLnJlbGF0aXZlVGltZVRocmVzaG9sZCA9IGdldFNldFJlbGF0aXZlVGltZVRocmVzaG9sZDtcbiAgICBob29rcy5jYWxlbmRhckZvcm1hdCAgICAgICAgPSBnZXRDYWxlbmRhckZvcm1hdDtcbiAgICBob29rcy5wcm90b3R5cGUgICAgICAgICAgICAgPSBwcm90bztcblxuICAgIC8vIGN1cnJlbnRseSBIVE1MNSBpbnB1dCB0eXBlIG9ubHkgc3VwcG9ydHMgMjQtaG91ciBmb3JtYXRzXG4gICAgaG9va3MuSFRNTDVfRk1UID0ge1xuICAgICAgICBEQVRFVElNRV9MT0NBTDogJ1lZWVktTU0tRERUSEg6bW0nLCAgICAgICAgICAgICAvLyA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgLz5cbiAgICAgICAgREFURVRJTUVfTE9DQUxfU0VDT05EUzogJ1lZWVktTU0tRERUSEg6bW06c3MnLCAgLy8gPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIHN0ZXA9XCIxXCIgLz5cbiAgICAgICAgREFURVRJTUVfTE9DQUxfTVM6ICdZWVlZLU1NLUREVEhIOm1tOnNzLlNTUycsICAgLy8gPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIHN0ZXA9XCIwLjAwMVwiIC8+XG4gICAgICAgIERBVEU6ICdZWVlZLU1NLUREJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIC8+XG4gICAgICAgIFRJTUU6ICdISDptbScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDxpbnB1dCB0eXBlPVwidGltZVwiIC8+XG4gICAgICAgIFRJTUVfU0VDT05EUzogJ0hIOm1tOnNzJywgICAgICAgICAgICAgICAgICAgICAgIC8vIDxpbnB1dCB0eXBlPVwidGltZVwiIHN0ZXA9XCIxXCIgLz5cbiAgICAgICAgVElNRV9NUzogJ0hIOm1tOnNzLlNTUycsICAgICAgICAgICAgICAgICAgICAgICAgLy8gPGlucHV0IHR5cGU9XCJ0aW1lXCIgc3RlcD1cIjAuMDAxXCIgLz5cbiAgICAgICAgV0VFSzogJ0dHR0ctW1ddV1cnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gPGlucHV0IHR5cGU9XCJ3ZWVrXCIgLz5cbiAgICAgICAgTU9OVEg6ICdZWVlZLU1NJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gPGlucHV0IHR5cGU9XCJtb250aFwiIC8+XG4gICAgfTtcblxuICAgIHJldHVybiBob29rcztcblxufSkpKTtcbiIsIi8qXG5vYmplY3QtYXNzaWduXG4oYykgU2luZHJlIFNvcmh1c1xuQGxpY2Vuc2UgTUlUXG4qL1xuXG4ndXNlIHN0cmljdCc7XG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xudmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIHByb3BJc0VudW1lcmFibGUgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xuXG5mdW5jdGlvbiB0b09iamVjdCh2YWwpIHtcblx0aWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkJyk7XG5cdH1cblxuXHRyZXR1cm4gT2JqZWN0KHZhbCk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFVzZU5hdGl2ZSgpIHtcblx0dHJ5IHtcblx0XHRpZiAoIU9iamVjdC5hc3NpZ24pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBEZXRlY3QgYnVnZ3kgcHJvcGVydHkgZW51bWVyYXRpb24gb3JkZXIgaW4gb2xkZXIgVjggdmVyc2lvbnMuXG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD00MTE4XG5cdFx0dmFyIHRlc3QxID0gbmV3IFN0cmluZygnYWJjJyk7ICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLW5ldy13cmFwcGVyc1xuXHRcdHRlc3QxWzVdID0gJ2RlJztcblx0XHRpZiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGVzdDEpWzBdID09PSAnNScpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHQvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMDU2XG5cdFx0dmFyIHRlc3QyID0ge307XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XG5cdFx0XHR0ZXN0MlsnXycgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpXSA9IGk7XG5cdFx0fVxuXHRcdHZhciBvcmRlcjIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0ZXN0MikubWFwKGZ1bmN0aW9uIChuKSB7XG5cdFx0XHRyZXR1cm4gdGVzdDJbbl07XG5cdFx0fSk7XG5cdFx0aWYgKG9yZGVyMi5qb2luKCcnKSAhPT0gJzAxMjM0NTY3ODknKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0Ly8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3Y4L2lzc3Vlcy9kZXRhaWw/aWQ9MzA1NlxuXHRcdHZhciB0ZXN0MyA9IHt9O1xuXHRcdCdhYmNkZWZnaGlqa2xtbm9wcXJzdCcuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGxldHRlcikge1xuXHRcdFx0dGVzdDNbbGV0dGVyXSA9IGxldHRlcjtcblx0XHR9KTtcblx0XHRpZiAoT2JqZWN0LmtleXMoT2JqZWN0LmFzc2lnbih7fSwgdGVzdDMpKS5qb2luKCcnKSAhPT1cblx0XHRcdFx0J2FiY2RlZmdoaWprbG1ub3BxcnN0Jykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0cnVlO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyBXZSBkb24ndCBleHBlY3QgYW55IG9mIHRoZSBhYm92ZSB0byB0aHJvdywgYnV0IGJldHRlciB0byBiZSBzYWZlLlxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNob3VsZFVzZU5hdGl2ZSgpID8gT2JqZWN0LmFzc2lnbiA6IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSkge1xuXHR2YXIgZnJvbTtcblx0dmFyIHRvID0gdG9PYmplY3QodGFyZ2V0KTtcblx0dmFyIHN5bWJvbHM7XG5cblx0Zm9yICh2YXIgcyA9IDE7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspIHtcblx0XHRmcm9tID0gT2JqZWN0KGFyZ3VtZW50c1tzXSk7XG5cblx0XHRmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuXHRcdFx0aWYgKGhhc093blByb3BlcnR5LmNhbGwoZnJvbSwga2V5KSkge1xuXHRcdFx0XHR0b1trZXldID0gZnJvbVtrZXldO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChnZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHtcblx0XHRcdHN5bWJvbHMgPSBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZnJvbSk7XG5cdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IHN5bWJvbHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKHByb3BJc0VudW1lcmFibGUuY2FsbChmcm9tLCBzeW1ib2xzW2ldKSkge1xuXHRcdFx0XHRcdHRvW3N5bWJvbHNbaV1dID0gZnJvbVtzeW1ib2xzW2ldXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB0bztcbn07XG4iLCIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBwYXJzZVVSSSAoc3RyLCBvcHRzKSB7XG4gIG9wdHMgPSBvcHRzIHx8IHt9XG5cbiAgdmFyIG8gPSB7XG4gICAga2V5OiBbJ3NvdXJjZScsICdwcm90b2NvbCcsICdhdXRob3JpdHknLCAndXNlckluZm8nLCAndXNlcicsICdwYXNzd29yZCcsICdob3N0JywgJ3BvcnQnLCAncmVsYXRpdmUnLCAncGF0aCcsICdkaXJlY3RvcnknLCAnZmlsZScsICdxdWVyeScsICdhbmNob3InXSxcbiAgICBxOiB7XG4gICAgICBuYW1lOiAncXVlcnlLZXknLFxuICAgICAgcGFyc2VyOiAvKD86XnwmKShbXiY9XSopPT8oW14mXSopL2dcbiAgICB9LFxuICAgIHBhcnNlcjoge1xuICAgICAgc3RyaWN0OiAvXig/OihbXjpcXC8/I10rKTopPyg/OlxcL1xcLygoPzooKFteOkBdKikoPzo6KFteOkBdKikpPyk/QCk/KFteOlxcLz8jXSopKD86OihcXGQqKSk/KSk/KCgoKD86W14/I1xcL10qXFwvKSopKFtePyNdKikpKD86XFw/KFteI10qKSk/KD86IyguKikpPykvLFxuICAgICAgbG9vc2U6IC9eKD86KD8hW146QF0rOlteOkBcXC9dKkApKFteOlxcLz8jLl0rKTopPyg/OlxcL1xcLyk/KCg/OigoW146QF0qKSg/OjooW146QF0qKSk/KT9AKT8oW146XFwvPyNdKikoPzo6KFxcZCopKT8pKCgoXFwvKD86W14/I10oPyFbXj8jXFwvXSpcXC5bXj8jXFwvLl0rKD86Wz8jXXwkKSkpKlxcLz8pPyhbXj8jXFwvXSopKSg/OlxcPyhbXiNdKikpPyg/OiMoLiopKT8pL1xuICAgIH1cbiAgfVxuXG4gIHZhciBtID0gby5wYXJzZXJbb3B0cy5zdHJpY3RNb2RlID8gJ3N0cmljdCcgOiAnbG9vc2UnXS5leGVjKHN0cilcbiAgdmFyIHVyaSA9IHt9XG4gIHZhciBpID0gMTRcblxuICB3aGlsZSAoaS0tKSB1cmlbby5rZXlbaV1dID0gbVtpXSB8fCAnJ1xuXG4gIHVyaVtvLnEubmFtZV0gPSB7fVxuICB1cmlbby5rZXlbMTJdXS5yZXBsYWNlKG8ucS5wYXJzZXIsIGZ1bmN0aW9uICgkMCwgJDEsICQyKSB7XG4gICAgaWYgKCQxKSB1cmlbby5xLm5hbWVdWyQxXSA9ICQyXG4gIH0pXG5cbiAgcmV0dXJuIHVyaVxufVxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAxOCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vcGhvdG9uc3Rvcm0vcGhhc2VyL2Jsb2IvbWFzdGVyL2xpY2Vuc2UudHh0fE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3NyYy91dGlscy9DbGFzcycpO1xyXG52YXIgTWF0cml4NCA9IHJlcXVpcmUoJy4uLy4uLy4uL3NyYy9tYXRoL01hdHJpeDQnKTtcclxudmFyIFJhbmRvbVhZWiA9IHJlcXVpcmUoJy4uLy4uLy4uL3NyYy9tYXRoL1JhbmRvbVhZWicpO1xyXG52YXIgUmFuZG9tWFlaVyA9IHJlcXVpcmUoJy4uLy4uLy4uL3NyYy9tYXRoL1JhbmRvbVhZWlcnKTtcclxudmFyIFJvdGF0ZVZlYzMgPSByZXF1aXJlKCcuLi8uLi8uLi9zcmMvbWF0aC9Sb3RhdGVWZWMzJyk7XHJcbnZhciBTZXQgPSByZXF1aXJlKCcuLi8uLi8uLi9zcmMvc3RydWN0cy9TZXQnKTtcclxudmFyIFNwcml0ZTNEID0gcmVxdWlyZSgnLi9zcHJpdGUzZC9TcHJpdGUzRCcpO1xyXG52YXIgVmVjdG9yMiA9IHJlcXVpcmUoJy4uLy4uLy4uL3NyYy9tYXRoL1ZlY3RvcjInKTtcclxudmFyIFZlY3RvcjMgPSByZXF1aXJlKCcuLi8uLi8uLi9zcmMvbWF0aC9WZWN0b3IzJyk7XHJcbnZhciBWZWN0b3I0ID0gcmVxdWlyZSgnLi4vLi4vLi4vc3JjL21hdGgvVmVjdG9yNCcpO1xyXG5cclxuLy8gIExvY2FsIGNhY2hlIHZhcnNcclxudmFyIHRtcFZlYzMgPSBuZXcgVmVjdG9yMygpO1xyXG52YXIgdG1wVmVjNCA9IG5ldyBWZWN0b3I0KCk7XHJcbnZhciBkaXJ2ZWMgPSBuZXcgVmVjdG9yMygpO1xyXG52YXIgcmlnaHR2ZWMgPSBuZXcgVmVjdG9yMygpO1xyXG52YXIgYmlsbGJvYXJkTWF0cml4ID0gbmV3IE1hdHJpeDQoKTtcclxuXHJcbi8vICBAYXV0aG9yIGF0dHJpYnV0ZSBodHRwczovL2dpdGh1Yi5jb20vbWF0dGRlc2wvY2FtM2Qvd2lraVxyXG5cclxuLyoqXHJcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFJheURlZlxyXG4gKlxyXG4gKiBAcHJvcGVydHkge1BoYXNlci5NYXRoLlZlY3RvcjN9IG9yaWdpbiAtIFtkZXNjcmlwdGlvbl1cclxuICogQHByb3BlcnR5IHtQaGFzZXIuTWF0aC5WZWN0b3IzfSBkaXJlY3Rpb24gLSBbZGVzY3JpcHRpb25dXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogW2Rlc2NyaXB0aW9uXVxyXG4gKlxyXG4gKiBAY2xhc3MgQ2FtZXJhXHJcbiAqIEBtZW1iZXJPZiBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRFxyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFtkZXNjcmlwdGlvbl1cclxuICovXHJcbnZhciBDYW1lcmEgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gQ2FtZXJhIChzY2VuZSlcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRCNzY2VuZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU2NlbmV9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zY2VuZSA9IHNjZW5lO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRCNkaXNwbGF5TGlzdFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuRGlzcGxheUxpc3R9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TGlzdCA9IHNjZW5lLnN5cy5kaXNwbGF5TGlzdDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QjdXBkYXRlTGlzdFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuVXBkYXRlTGlzdH1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnVwZGF0ZUxpc3QgPSBzY2VuZS5zeXMudXBkYXRlTGlzdDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QjbmFtZVxyXG4gICAgICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgICAgICogQGRlZmF1bHQgJydcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm5hbWUgPSAnJztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QjZGlyZWN0aW9uXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjN9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBuZXcgVmVjdG9yMygwLCAwLCAtMSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNEI3VwXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjN9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy51cCA9IG5ldyBWZWN0b3IzKDAsIDEsIDApO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRCNwb3NpdGlvblxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuTWF0aC5WZWN0b3IzfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucG9zaXRpb24gPSBuZXcgVmVjdG9yMygpO1xyXG5cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogIFRoZSBtYXBwaW5nIGZyb20gM0Qgc2l6ZSB1bml0cyB0byBwaXhlbHMuXHJcbiAgICAgICAgICogIEluIHRoZSBkZWZhdWx0IGNhc2UgMSAzRCB1bml0ID0gMTI4IHBpeGVscy4gU28gYSBzcHJpdGUgdGhhdCBpc1xyXG4gICAgICAgICAqICAyNTYgeCAxMjggcHggaW4gc2l6ZSB3aWxsIGJlIDIgeCAxIHVuaXRzLlxyXG4gICAgICAgICAqICBDaGFuZ2UgdG8gd2hhdGV2ZXIgYmVzdCBmaXRzIHlvdXIgZ2FtZSBhc3NldHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRCNwaXhlbFNjYWxlXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBpeGVsU2NhbGUgPSAxMjg7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNEI3Byb2plY3Rpb25cclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguTWF0cml4NH1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnByb2plY3Rpb24gPSBuZXcgTWF0cml4NCgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRCN2aWV3XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLk1hdHJpeDR9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy52aWV3ID0gbmV3IE1hdHJpeDQoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QjY29tYmluZWRcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguTWF0cml4NH1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNvbWJpbmVkID0gbmV3IE1hdHJpeDQoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QjaW52UHJvamVjdGlvblZpZXdcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguTWF0cml4NH1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmludlByb2plY3Rpb25WaWV3ID0gbmV3IE1hdHJpeDQoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QjbmVhclxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubmVhciA9IDE7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNEI2ZhclxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5mYXIgPSAxMDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNEI3JheVxyXG4gICAgICAgICAqIEB0eXBlIHtSYXlEZWZ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yYXkgPSB7XHJcbiAgICAgICAgICAgIG9yaWdpbjogbmV3IFZlY3RvcjMoKSxcclxuICAgICAgICAgICAgZGlyZWN0aW9uOiBuZXcgVmVjdG9yMygpXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0Qjdmlld3BvcnRXaWR0aFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudmlld3BvcnRXaWR0aCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNEI3ZpZXdwb3J0SGVpZ2h0XHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy52aWV3cG9ydEhlaWdodCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNEI2JpbGxib2FyZE1hdHJpeERpcnR5XHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYmlsbGJvYXJkTWF0cml4RGlydHkgPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRCNjaGlsZHJlblxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU3RydWN0cy5TZXQuPFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Pn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNoaWxkcmVuID0gbmV3IFNldCgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYSNzZXRQb3NpdGlvblxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB6IC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYX0gVGhpcyBDYW1lcmEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRQb3NpdGlvbjogZnVuY3Rpb24gKHgsIHksIHopXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbi5zZXQoeCwgeSwgeik7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYSNzZXRTY2VuZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYX0gVGhpcyBDYW1lcmEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRTY2VuZTogZnVuY3Rpb24gKHNjZW5lKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuc2NlbmUgPSBzY2VuZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI3NldFBpeGVsU2NhbGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmF9IFRoaXMgQ2FtZXJhIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0UGl4ZWxTY2FsZTogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMucGl4ZWxTY2FsZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmEjYWRkXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGUzRH0gc3ByaXRlM0QgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZTNEfSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIGFkZDogZnVuY3Rpb24gKHNwcml0ZTNEKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4uc2V0KHNwcml0ZTNEKTtcclxuXHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TGlzdC5hZGQoc3ByaXRlM0QuZ2FtZU9iamVjdCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaXN0LmFkZChzcHJpdGUzRC5nYW1lT2JqZWN0KTtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbigpO1xyXG5cclxuICAgICAgICByZXR1cm4gc3ByaXRlM0Q7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI3JlbW92ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gY2hpbGQgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhfSBUaGlzIENhbWVyYSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZTogZnVuY3Rpb24gKGNoaWxkKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUxpc3QucmVtb3ZlKGNoaWxkLmdhbWVPYmplY3QpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlzdC5yZW1vdmUoY2hpbGQuZ2FtZU9iamVjdCk7XHJcblxyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZGVsZXRlKGNoaWxkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI2NsZWFyXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmF9IFRoaXMgQ2FtZXJhIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgY2xlYXI6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5nZXRDaGlsZHJlbigpO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmUoY2hpbGRyZW5baV0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI2dldENoaWxkcmVuXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHthcnJheX0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBnZXRDaGlsZHJlbjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5lbnRyaWVzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYSNjcmVhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geiAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8bnVtYmVyKX0gZnJhbWUgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt2aXNpYmxlPXRydWVdIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGUzRH0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBjcmVhdGU6IGZ1bmN0aW9uICh4LCB5LCB6LCBrZXksIGZyYW1lLCB2aXNpYmxlKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh2aXNpYmxlID09PSB1bmRlZmluZWQpIHsgdmlzaWJsZSA9IHRydWU7IH1cclxuXHJcbiAgICAgICAgdmFyIGNoaWxkID0gbmV3IFNwcml0ZTNEKHRoaXMuc2NlbmUsIHgsIHksIHosIGtleSwgZnJhbWUpO1xyXG5cclxuICAgICAgICB0aGlzLmRpc3BsYXlMaXN0LmFkZChjaGlsZC5nYW1lT2JqZWN0KTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpc3QuYWRkKGNoaWxkLmdhbWVPYmplY3QpO1xyXG5cclxuICAgICAgICBjaGlsZC52aXNpYmxlID0gdmlzaWJsZTtcclxuXHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5zZXQoY2hpbGQpO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuKCk7XHJcblxyXG4gICAgICAgIHJldHVybiBjaGlsZDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmEjY3JlYXRlTXVsdGlwbGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBxdWFudGl0eSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8bnVtYmVyKX0gZnJhbWUgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt2aXNpYmxlPXRydWVdIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGUzRFtdfSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZU11bHRpcGxlOiBmdW5jdGlvbiAocXVhbnRpdHksIGtleSwgZnJhbWUsIHZpc2libGUpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHZpc2libGUgPT09IHVuZGVmaW5lZCkgeyB2aXNpYmxlID0gdHJ1ZTsgfVxyXG5cclxuICAgICAgICB2YXIgb3V0cHV0ID0gW107XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVhbnRpdHk7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBjaGlsZCA9IG5ldyBTcHJpdGUzRCh0aGlzLnNjZW5lLCAwLCAwLCAwLCBrZXksIGZyYW1lKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheUxpc3QuYWRkKGNoaWxkLmdhbWVPYmplY3QpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxpc3QuYWRkKGNoaWxkLmdhbWVPYmplY3QpO1xyXG5cclxuICAgICAgICAgICAgY2hpbGQudmlzaWJsZSA9IHZpc2libGU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuLnNldChjaGlsZCk7XHJcblxyXG4gICAgICAgICAgICBvdXRwdXQucHVzaChjaGlsZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3V0cHV0O1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyAgQ3JlYXRlIGEgYnVuY2ggb2YgU3ByaXRlM0Qgb2JqZWN0cyBpbiBhIHJlY3RhbmdsZVxyXG4gICAgLy8gIHNpemUgYW5kIHNwYWNpbmcgYXJlIFZlYzNzIChvciBpZiBpbnRlZ2VycyBhcmUgY29udmVydGVkIHRvIHZlYzNzKVxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmEjY3JlYXRlUmVjdFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsobnVtYmVyfHt4Om51bWJlcix5Om51bWJlcn0pfSBzaXplIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtIHsobnVtYmVyfHt4Om51bWJlcix5Om51bWJlcix6Om51bWJlcn0pfSBzcGFjaW5nIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xudW1iZXIpfSBbZnJhbWVdIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGUzRFtdfSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZVJlY3Q6IGZ1bmN0aW9uIChzaXplLCBzcGFjaW5nLCBrZXksIGZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygc2l6ZSA9PT0gJ251bWJlcicpIHsgc2l6ZSA9IHsgeDogc2l6ZSwgeTogc2l6ZSwgejogc2l6ZSB9OyB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBzcGFjaW5nID09PSAnbnVtYmVyJykgeyBzcGFjaW5nID0geyB4OiBzcGFjaW5nLCB5OiBzcGFjaW5nLCB6OiBzcGFjaW5nIH07IH1cclxuXHJcbiAgICAgICAgdmFyIHF1YW50aXR5ID0gc2l6ZS54ICogc2l6ZS55ICogc2l6ZS56O1xyXG5cclxuICAgICAgICB2YXIgc3ByaXRlcyA9IHRoaXMuY3JlYXRlTXVsdGlwbGUocXVhbnRpdHksIGtleSwgZnJhbWUpO1xyXG5cclxuICAgICAgICB2YXIgaSA9IDA7XHJcblxyXG4gICAgICAgIGZvciAodmFyIHogPSAwLjUgLSAoc2l6ZS56IC8gMik7IHogPCAoc2l6ZS56IC8gMik7IHorKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIHkgPSAwLjUgLSAoc2l6ZS55IC8gMik7IHkgPCAoc2l6ZS55IC8gMik7IHkrKylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZm9yICh2YXIgeCA9IDAuNSAtIChzaXplLnggLyAyKTsgeCA8IChzaXplLnggLyAyKTsgeCsrKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBieCA9ICh4ICogc3BhY2luZy54KTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgYnkgPSAoeSAqIHNwYWNpbmcueSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGJ6ID0gKHogKiBzcGFjaW5nLnopO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBzcHJpdGVzW2ldLnBvc2l0aW9uLnNldChieCwgYnksIGJ6KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaSsrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gc3ByaXRlcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmEjcmFuZG9tU3BoZXJlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3JhZGl1cz0xXSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZTNEW119IFtzcHJpdGVzXSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmF9IFRoaXMgQ2FtZXJhIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcmFuZG9tU3BoZXJlOiBmdW5jdGlvbiAocmFkaXVzLCBzcHJpdGVzKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChzcHJpdGVzID09PSB1bmRlZmluZWQpIHsgc3ByaXRlcyA9IHRoaXMuZ2V0Q2hpbGRyZW4oKTsgfVxyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNwcml0ZXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBSYW5kb21YWVooc3ByaXRlc1tpXS5wb3NpdGlvbiwgcmFkaXVzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYSNyYW5kb21DdWJlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NjYWxlPTFdIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuU3ByaXRlM0RbXX0gW3Nwcml0ZXNdIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYX0gVGhpcyBDYW1lcmEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICByYW5kb21DdWJlOiBmdW5jdGlvbiAoc2NhbGUsIHNwcml0ZXMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHNwcml0ZXMgPT09IHVuZGVmaW5lZCkgeyBzcHJpdGVzID0gdGhpcy5nZXRDaGlsZHJlbigpOyB9XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3ByaXRlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIFJhbmRvbVhZWlcoc3ByaXRlc1tpXS5wb3NpdGlvbiwgc2NhbGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI3RyYW5zbGF0ZUNoaWxkcmVuXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjN9IHZlYzMgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGUzRFtdfSBzcHJpdGVzIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYX0gVGhpcyBDYW1lcmEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICB0cmFuc2xhdGVDaGlsZHJlbjogZnVuY3Rpb24gKHZlYzMsIHNwcml0ZXMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHNwcml0ZXMgPT09IHVuZGVmaW5lZCkgeyBzcHJpdGVzID0gdGhpcy5nZXRDaGlsZHJlbigpOyB9XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3ByaXRlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHNwcml0ZXNbaV0ucG9zaXRpb24uYWRkKHZlYzMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI3RyYW5zZm9ybUNoaWxkcmVuXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLk1hdHJpeDR9IG1hdDQgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGUzRFtdfSBzcHJpdGVzIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYX0gVGhpcyBDYW1lcmEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICB0cmFuc2Zvcm1DaGlsZHJlbjogZnVuY3Rpb24gKG1hdDQsIHNwcml0ZXMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHNwcml0ZXMgPT09IHVuZGVmaW5lZCkgeyBzcHJpdGVzID0gdGhpcy5nZXRDaGlsZHJlbigpOyB9XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3ByaXRlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHNwcml0ZXNbaV0ucG9zaXRpb24udHJhbnNmb3JtTWF0NChtYXQ0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0LiBEb2VzIG5vdCB1cGRhdGUgYW55IG1hdHJpY2VzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI3NldFZpZXdwb3J0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYX0gVGhpcyBDYW1lcmEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRWaWV3cG9ydDogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy52aWV3cG9ydFdpZHRoID0gd2lkdGg7XHJcbiAgICAgICAgdGhpcy52aWV3cG9ydEhlaWdodCA9IGhlaWdodDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhbnNsYXRlcyB0aGlzIGNhbWVyYSBieSBhIHNwZWNpZmllZCBWZWN0b3IzIG9iamVjdFxyXG4gICAgICogb3IgeCwgeSwgeiBwYXJhbWV0ZXJzLiBBbnkgdW5kZWZpbmVkIHggeSB6IHZhbHVlcyB3aWxsXHJcbiAgICAgKiBkZWZhdWx0IHRvIHplcm8sIGxlYXZpbmcgdGhhdCBjb21wb25lbnQgdW5hZmZlY3RlZC5cclxuICAgICAqIElmIHlvdSB3aXNoIHRvIHNldCB0aGUgY2FtZXJhIHBvc2l0aW9uIGRpcmVjdGx5IGNhbGwgc2V0UG9zaXRpb24gaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYSN0cmFuc2xhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KG51bWJlcnxvYmplY3QpfSB4IC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5XSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbel0gLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhfSBUaGlzIENhbWVyYSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHRyYW5zbGF0ZTogZnVuY3Rpb24gKHgsIHksIHopXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB4ID09PSAnb2JqZWN0JylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24ueCArPSB4LnggfHwgMDtcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbi55ICs9IHgueSB8fCAwO1xyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLnogKz0geC56IHx8IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24ueCArPSB4IHx8IDA7XHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24ueSArPSB5IHx8IDA7XHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24ueiArPSB6IHx8IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmEjbG9va0F0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhudW1iZXJ8b2JqZWN0KX0geCAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeV0gLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3pdIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYX0gVGhpcyBDYW1lcmEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBsb29rQXQ6IGZ1bmN0aW9uICh4LCB5LCB6KVxyXG4gICAge1xyXG4gICAgICAgIHZhciBkaXIgPSB0aGlzLmRpcmVjdGlvbjtcclxuICAgICAgICB2YXIgdXAgPSB0aGlzLnVwO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIHggPT09ICdvYmplY3QnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZGlyLmNvcHkoeCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGRpci5zZXQoeCwgeSwgeik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkaXIuc3VidHJhY3QodGhpcy5wb3NpdGlvbikubm9ybWFsaXplKCk7XHJcblxyXG4gICAgICAgIC8vICBDYWxjdWxhdGUgcmlnaHQgdmVjdG9yXHJcbiAgICAgICAgdG1wVmVjMy5jb3B5KGRpcikuY3Jvc3ModXApLm5vcm1hbGl6ZSgpO1xyXG5cclxuICAgICAgICAvLyAgQ2FsY3VsYXRlIHVwIHZlY3RvclxyXG4gICAgICAgIHVwLmNvcHkodG1wVmVjMykuY3Jvc3MoZGlyKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI3JvdGF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHJhZGlhbnMgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjN9IGF4aXMgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhfSBUaGlzIENhbWVyYSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHJvdGF0ZTogZnVuY3Rpb24gKHJhZGlhbnMsIGF4aXMpXHJcbiAgICB7XHJcbiAgICAgICAgUm90YXRlVmVjMyh0aGlzLmRpcmVjdGlvbiwgYXhpcywgcmFkaWFucyk7XHJcbiAgICAgICAgUm90YXRlVmVjMyh0aGlzLnVwLCBheGlzLCByYWRpYW5zKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI3JvdGF0ZUFyb3VuZFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IzfSBwb2ludCAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByYWRpYW5zIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IzfSBheGlzIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYX0gVGhpcyBDYW1lcmEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICByb3RhdGVBcm91bmQ6IGZ1bmN0aW9uIChwb2ludCwgcmFkaWFucywgYXhpcylcclxuICAgIHtcclxuICAgICAgICB0bXBWZWMzLmNvcHkocG9pbnQpLnN1YnRyYWN0KHRoaXMucG9zaXRpb24pO1xyXG5cclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZSh0bXBWZWMzKTtcclxuICAgICAgICB0aGlzLnJvdGF0ZShyYWRpYW5zLCBheGlzKTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZSh0bXBWZWMzLm5lZ2F0ZSgpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI3Byb2plY3RcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLk1hdGguVmVjdG9yM30gdmVjIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3I0fSBvdXQgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLk1hdGguVmVjdG9yNH0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBwcm9qZWN0OiBmdW5jdGlvbiAodmVjLCBvdXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG91dCA9PT0gdW5kZWZpbmVkKSB7IG91dCA9IG5ldyBWZWN0b3I0KCk7IH1cclxuXHJcbiAgICAgICAgLy8gIFRPRE86IHN1cHBvcnQgdmlld3BvcnQgWFlcclxuICAgICAgICB2YXIgdmlld3BvcnRXaWR0aCA9IHRoaXMudmlld3BvcnRXaWR0aDtcclxuICAgICAgICB2YXIgdmlld3BvcnRIZWlnaHQgPSB0aGlzLnZpZXdwb3J0SGVpZ2h0O1xyXG4gICAgICAgIHZhciBuID0gQ2FtZXJhLk5FQVJfUkFOR0U7XHJcbiAgICAgICAgdmFyIGYgPSBDYW1lcmEuRkFSX1JBTkdFO1xyXG5cclxuICAgICAgICAvLyAgRm9yIHVzZWZ1bCBaIGFuZCBXIHZhbHVlcyB3ZSBzaG91bGQgZG8gdGhlIHVzdWFsIHN0ZXBzOiBjbGlwIHNwYWNlIC0+IE5EQyAtPiB3aW5kb3cgY29vcmRzXHJcblxyXG4gICAgICAgIC8vICBJbXBsaWNpdCAxLjAgZm9yIHcgY29tcG9uZW50XHJcbiAgICAgICAgdG1wVmVjNC5zZXQodmVjLngsIHZlYy55LCB2ZWMueiwgMS4wKTtcclxuXHJcbiAgICAgICAgLy8gIFRyYW5zZm9ybSBpbnRvIGNsaXAgc3BhY2VcclxuICAgICAgICB0bXBWZWM0LnRyYW5zZm9ybU1hdDQodGhpcy5jb21iaW5lZCk7XHJcblxyXG4gICAgICAgIC8vICBBdm9pZCBkaXZpZGUgYnkgemVybyB3aGVuIDB4MHgwIGNhbWVyYSBwcm9qZWN0cyB0byBhIDB4MHgwIHZlYzNcclxuICAgICAgICBpZiAodG1wVmVjNC53ID09PSAwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdG1wVmVjNC53ID0gMTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBOb3cgaW50byBORENcclxuICAgICAgICB0bXBWZWM0LnggPSB0bXBWZWM0LnggLyB0bXBWZWM0Lnc7XHJcbiAgICAgICAgdG1wVmVjNC55ID0gdG1wVmVjNC55IC8gdG1wVmVjNC53O1xyXG4gICAgICAgIHRtcFZlYzQueiA9IHRtcFZlYzQueiAvIHRtcFZlYzQudztcclxuXHJcbiAgICAgICAgLy8gIEFuZCBmaW5hbGx5IGludG8gd2luZG93IGNvb3JkaW5hdGVzXHJcbiAgICAgICAgb3V0LnggPSB2aWV3cG9ydFdpZHRoIC8gMiAqIHRtcFZlYzQueCArICgwICsgdmlld3BvcnRXaWR0aCAvIDIpO1xyXG4gICAgICAgIG91dC55ID0gdmlld3BvcnRIZWlnaHQgLyAyICogdG1wVmVjNC55ICsgKDAgKyB2aWV3cG9ydEhlaWdodCAvIDIpO1xyXG4gICAgICAgIG91dC56ID0gKGYgLSBuKSAvIDIgKiB0bXBWZWM0LnogKyAoZiArIG4pIC8gMjtcclxuXHJcbiAgICAgICAgLy8gIElmIHRoZSBvdXQgdmVjdG9yIGhhcyBhIGZvdXJ0aCBjb21wb25lbnQsIHdlIGFsc28gc3RvcmUgKDEvY2xpcC53KSwgc2FtZSBpZGVhIGFzIGdsX0ZyYWdDb29yZC53XHJcbiAgICAgICAgaWYgKG91dC53ID09PSAwIHx8IG91dC53KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgb3V0LncgPSAxIC8gdG1wVmVjNC53O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG91dDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmEjdW5wcm9qZWN0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjR9IHZlYyAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLk1hdGguVmVjdG9yM30gb3V0IC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjN9IFtkZXNjcmlwdGlvbl1cclxuICAgICAqL1xyXG4gICAgdW5wcm9qZWN0OiBmdW5jdGlvbiAodmVjLCBvdXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG91dCA9PT0gdW5kZWZpbmVkKSB7IG91dCA9IG5ldyBWZWN0b3IzKCk7IH1cclxuXHJcbiAgICAgICAgdmFyIHZpZXdwb3J0ID0gdG1wVmVjNC5zZXQoMCwgMCwgdGhpcy52aWV3cG9ydFdpZHRoLCB0aGlzLnZpZXdwb3J0SGVpZ2h0KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG91dC5jb3B5KHZlYykudW5wcm9qZWN0KHZpZXdwb3J0LCB0aGlzLmludlByb2plY3Rpb25WaWV3KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmEjZ2V0UGlja1JheVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ldIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1JheURlZn0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBnZXRQaWNrUmF5OiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICB2YXIgb3JpZ2luID0gdGhpcy5yYXkub3JpZ2luLnNldCh4LCB5LCAwKTtcclxuICAgICAgICB2YXIgZGlyZWN0aW9uID0gdGhpcy5yYXkuZGlyZWN0aW9uLnNldCh4LCB5LCAxKTtcclxuICAgICAgICB2YXIgdmlld3BvcnQgPSB0bXBWZWM0LnNldCgwLCAwLCB0aGlzLnZpZXdwb3J0V2lkdGgsIHRoaXMudmlld3BvcnRIZWlnaHQpO1xyXG4gICAgICAgIHZhciBtdHggPSB0aGlzLmludlByb2plY3Rpb25WaWV3O1xyXG5cclxuICAgICAgICBvcmlnaW4udW5wcm9qZWN0KHZpZXdwb3J0LCBtdHgpO1xyXG5cclxuICAgICAgICBkaXJlY3Rpb24udW5wcm9qZWN0KHZpZXdwb3J0LCBtdHgpO1xyXG5cclxuICAgICAgICBkaXJlY3Rpb24uc3VidHJhY3Qob3JpZ2luKS5ub3JtYWxpemUoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmF5O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYSN1cGRhdGVDaGlsZHJlblxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhfSBUaGlzIENhbWVyYSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZUNoaWxkcmVuOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW4uZW50cmllcztcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuW2ldLnByb2plY3QodGhpcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLy8gIE92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlc1xyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmEjdXBkYXRlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmF9IFRoaXMgQ2FtZXJhIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUNoaWxkcmVuKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI3VwZGF0ZUJpbGxib2FyZE1hdHJpeFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZUJpbGxib2FyZE1hdHJpeDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgZGlyID0gZGlydmVjLnNldCh0aGlzLmRpcmVjdGlvbikubmVnYXRlKCk7XHJcblxyXG4gICAgICAgIC8vIEJldHRlciB2aWV3LWFsaWduZWQgYmlsbGJvYXJkcyBtaWdodCB1c2UgdGhpczpcclxuICAgICAgICAvLyB2YXIgZGlyID0gdG1wLnNldChjYW1lcmEucG9zaXRpb24pLnN1YnRyYWN0KHApLm5vcm1hbGl6ZSgpO1xyXG5cclxuICAgICAgICB2YXIgcmlnaHQgPSByaWdodHZlYy5zZXQodGhpcy51cCkuY3Jvc3MoZGlyKS5ub3JtYWxpemUoKTtcclxuICAgICAgICB2YXIgdXAgPSB0bXBWZWMzLnNldChkaXIpLmNyb3NzKHJpZ2h0KS5ub3JtYWxpemUoKTtcclxuXHJcbiAgICAgICAgdmFyIG91dCA9IGJpbGxib2FyZE1hdHJpeC52YWw7XHJcblxyXG4gICAgICAgIG91dFswXSA9IHJpZ2h0Lng7XHJcbiAgICAgICAgb3V0WzFdID0gcmlnaHQueTtcclxuICAgICAgICBvdXRbMl0gPSByaWdodC56O1xyXG4gICAgICAgIG91dFszXSA9IDA7XHJcblxyXG4gICAgICAgIG91dFs0XSA9IHVwLng7XHJcbiAgICAgICAgb3V0WzVdID0gdXAueTtcclxuICAgICAgICBvdXRbNl0gPSB1cC56O1xyXG4gICAgICAgIG91dFs3XSA9IDA7XHJcblxyXG4gICAgICAgIG91dFs4XSA9IGRpci54O1xyXG4gICAgICAgIG91dFs5XSA9IGRpci55O1xyXG4gICAgICAgIG91dFsxMF0gPSBkaXIuejtcclxuICAgICAgICBvdXRbMTFdID0gMDtcclxuXHJcbiAgICAgICAgb3V0WzEyXSA9IDA7XHJcbiAgICAgICAgb3V0WzEzXSA9IDA7XHJcbiAgICAgICAgb3V0WzE0XSA9IDA7XHJcbiAgICAgICAgb3V0WzE1XSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuYmlsbGJvYXJkTWF0cml4RGlydHkgPSBmYWxzZTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBmb3IgY2FudmFzIDNEIHJlbmRlcmluZyxcclxuICAgICAqIHdoaWNoIGRldGVybWluZXMgdGhlIFwicG9pbnQgc2l6ZVwiIG9mIGEgY2FtZXJhLWZhY2luZ1xyXG4gICAgICogc3ByaXRlIGJpbGxib2FyZCBnaXZlbiBpdHMgM0Qgd29ybGQgcG9zaXRpb25cclxuICAgICAqIChvcmlnaW4gYXQgY2VudGVyIG9mIHNwcml0ZSkgYW5kIGl0cyB3b3JsZCB3aWR0aFxyXG4gICAgICogYW5kIGhlaWdodCBpbiB4L3kuXHJcbiAgICAgKlxyXG4gICAgICogV2UgcGxhY2UgaW50byB0aGUgb3V0cHV0IFZlY3RvcjIgdGhlIHNjYWxlZCB3aWR0aFxyXG4gICAgICogYW5kIGhlaWdodC4gSWYgbm8gYG91dGAgaXMgc3BlY2lmaWVkLCBhIG5ldyBWZWN0b3IyXHJcbiAgICAgKiB3aWxsIGJlIGNyZWF0ZWQgZm9yIGNvbnZlbmllbmNlICh0aGlzIHNob3VsZCBiZSBhdm9pZGVkXHJcbiAgICAgKiBpbiB0aWdodCBsb29wcykuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmEjZ2V0UG9pbnRTaXplXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IHZlYyAtIFRoZSBwb3NpdGlvbiBvZiB0aGUgM0QgU3ByaXRlLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBzaXplIC0gVGhlIHggYW5kIHkgZGltZW5zaW9ucy5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLk1hdGguVmVjdG9yMn0gb3V0IC0gVGhlIHJlc3VsdCwgc2NhbGVkIHggYW5kIHkgZGltZW5zaW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIGdldFBvaW50U2l6ZTogZnVuY3Rpb24gKHZlYywgc2l6ZSwgb3V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZCkgeyBvdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIC8vIFRPRE86IG9wdGltaXplIHRoaXMgd2l0aCBhIHNpbXBsZSBkaXN0YW5jZSBjYWxjdWxhdGlvbjpcclxuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci52YWx2ZXNvZnR3YXJlLmNvbS93aWtpL0ZpZWxkX29mX1ZpZXdcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYmlsbGJvYXJkTWF0cml4RGlydHkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJpbGxib2FyZE1hdHJpeCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIHRtcCA9IHRtcFZlYzM7XHJcblxyXG4gICAgICAgIHZhciBkeCA9IChzaXplLnggLyB0aGlzLnBpeGVsU2NhbGUpIC8gMjtcclxuICAgICAgICB2YXIgZHkgPSAoc2l6ZS55IC8gdGhpcy5waXhlbFNjYWxlKSAvIDI7XHJcblxyXG4gICAgICAgIHRtcC5zZXQoLWR4LCAtZHksIDApLnRyYW5zZm9ybU1hdDQoYmlsbGJvYXJkTWF0cml4KS5hZGQodmVjKTtcclxuXHJcbiAgICAgICAgdGhpcy5wcm9qZWN0KHRtcCwgdG1wKTtcclxuXHJcbiAgICAgICAgdmFyIHRseCA9IHRtcC54O1xyXG4gICAgICAgIHZhciB0bHkgPSB0bXAueTtcclxuXHJcbiAgICAgICAgdG1wLnNldChkeCwgZHksIDApLnRyYW5zZm9ybU1hdDQoYmlsbGJvYXJkTWF0cml4KS5hZGQodmVjKTtcclxuXHJcbiAgICAgICAgdGhpcy5wcm9qZWN0KHRtcCwgdG1wKTtcclxuXHJcbiAgICAgICAgdmFyIGJyeCA9IHRtcC54O1xyXG4gICAgICAgIHZhciBicnkgPSB0bXAueTtcclxuXHJcbiAgICAgICAgLy8gdmFyIHcgPSBNYXRoLmFicyhicnggLSB0bHgpO1xyXG4gICAgICAgIC8vIHZhciBoID0gTWF0aC5hYnMoYnJ5IC0gdGx5KTtcclxuXHJcbiAgICAgICAgLy8gIEFsbG93IHRoZSBwcm9qZWN0aW9uIHRvIGdldCBuZWdhdGl2ZSAuLi5cclxuICAgICAgICB2YXIgdyA9IGJyeCAtIHRseDtcclxuICAgICAgICB2YXIgaCA9IGJyeSAtIHRseTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG91dC5zZXQodywgaCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI2Rlc3Ryb3lcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4uY2xlYXIoKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY2VuZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuID0gdW5kZWZpbmVkO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYSNzZXRYXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhfSBUaGlzIENhbWVyYSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldFg6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnBvc2l0aW9uLnggPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI3NldFlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmF9IFRoaXMgQ2FtZXJhIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0WTogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMucG9zaXRpb24ueSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmEjc2V0WlxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYX0gVGhpcyBDYW1lcmEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRaOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbi56ID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmEjeFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB4OiB7XHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9zaXRpb24ueDtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24ueCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhI3lcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgeToge1xyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uLnk7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLnkgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYSN6XHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHo6IHtcclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wb3NpdGlvbi56O1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbi56ID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5DYW1lcmEuRkFSX1JBTkdFID0gMS4wO1xyXG5DYW1lcmEuTkVBUl9SQU5HRSA9IDAuMDtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQ2FtZXJhO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDE4IFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9waG90b25zdG9ybS9waGFzZXIvYmxvYi9tYXN0ZXIvbGljZW5zZS50eHR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vLi4vc3JjL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBPcnRob2dyYXBoaWNDYW1lcmEgPSByZXF1aXJlKCcuL09ydGhvZ3JhcGhpY0NhbWVyYScpO1xyXG52YXIgUGVyc3BlY3RpdmVDYW1lcmEgPSByZXF1aXJlKCcuL1BlcnNwZWN0aXZlQ2FtZXJhJyk7XHJcbnZhciBQbHVnaW5DYWNoZSA9IHJlcXVpcmUoJy4uLy4uLy4uL3NyYy9wbHVnaW5zL1BsdWdpbkNhY2hlJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBbZGVzY3JpcHRpb25dXHJcbiAqXHJcbiAqIEBjbGFzcyBDYW1lcmFNYW5hZ2VyXHJcbiAqIEBtZW1iZXJPZiBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRFxyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFtkZXNjcmlwdGlvbl1cclxuICovXHJcbnZhciBDYW1lcmFNYW5hZ2VyID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIENhbWVyYU1hbmFnZXIgKHNjZW5lKVxyXG4gICAge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYU1hbmFnZXIjc2NlbmVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlNjZW5lfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2NlbmUgPSBzY2VuZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhTWFuYWdlciNzeXN0ZW1zXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5TY2VuZXMuU3lzdGVtc31cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnN5c3RlbXMgPSBzY2VuZS5zeXM7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIEFycmF5IG9mIHRoZSBDYW1lcmEgb2JqZWN0cyBiZWluZyBtYW5hZ2VkIGJ5IHRoaXMgQ2FtZXJhIE1hbmFnZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmFNYW5hZ2VyI2NhbWVyYXNcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhW119XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jYW1lcmFzID0gW107XHJcblxyXG4gICAgICAgIHNjZW5lLnN5cy5ldmVudHMub25jZSgnYm9vdCcsIHRoaXMuYm9vdCwgdGhpcyk7XHJcbiAgICAgICAgc2NlbmUuc3lzLmV2ZW50cy5vbignc3RhcnQnLCB0aGlzLnN0YXJ0LCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSwgb25seSBvbmNlLCB3aGVuIHRoZSBTY2VuZSBpcyBmaXJzdCBjcmVhdGVkLlxyXG4gICAgICogRG8gbm90IGludm9rZSBpdCBkaXJlY3RseS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lM0QuQ2FtZXJhTWFuYWdlciNib290XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuNS4xXHJcbiAgICAgKi9cclxuICAgIGJvb3Q6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zeXN0ZW1zLmV2ZW50cy5vbmNlKCdkZXN0cm95JywgdGhpcy5kZXN0cm95LCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgU2NlbmUgd2hlbiBpdCBpcyBzdGFydGluZyB1cC5cclxuICAgICAqIEl0IGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBsb2NhbCBzeXN0ZW1zLCBwcm9wZXJ0aWVzIGFuZCBsaXN0ZW5pbmcgZm9yIFNjZW5lIGV2ZW50cy5cclxuICAgICAqIERvIG5vdCBpbnZva2UgaXQgZGlyZWN0bHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmFNYW5hZ2VyI3N0YXJ0XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgKi9cclxuICAgIHN0YXJ0OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBldmVudEVtaXR0ZXIgPSB0aGlzLnN5c3RlbXMuZXZlbnRzO1xyXG5cclxuICAgICAgICBldmVudEVtaXR0ZXIub24oJ3VwZGF0ZScsIHRoaXMudXBkYXRlLCB0aGlzKTtcclxuICAgICAgICBldmVudEVtaXR0ZXIub25jZSgnc2h1dGRvd24nLCB0aGlzLnNodXRkb3duLCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmFNYW5hZ2VyI2FkZFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmaWVsZE9mVmlldz04MF0gLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3dpZHRoXSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbaGVpZ2h0XSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5QZXJzcGVjdGl2ZUNhbWVyYX0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBhZGQ6IGZ1bmN0aW9uIChmaWVsZE9mVmlldywgd2lkdGgsIGhlaWdodClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hZGRQZXJzcGVjdGl2ZUNhbWVyYShmaWVsZE9mVmlldywgd2lkdGgsIGhlaWdodCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhTWFuYWdlciNhZGRPcnRob2dyYXBoaWNDYW1lcmFcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuT3J0aG9ncmFwaGljQ2FtZXJhfSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIGFkZE9ydGhvZ3JhcGhpY0NhbWVyYTogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGNvbmZpZyA9IHRoaXMuc2NlbmUuc3lzLmdhbWUuY29uZmlnO1xyXG5cclxuICAgICAgICBpZiAod2lkdGggPT09IHVuZGVmaW5lZCkgeyB3aWR0aCA9IGNvbmZpZy53aWR0aDsgfVxyXG4gICAgICAgIGlmIChoZWlnaHQgPT09IHVuZGVmaW5lZCkgeyBoZWlnaHQgPSBjb25maWcuaGVpZ2h0OyB9XHJcblxyXG4gICAgICAgIHZhciBjYW1lcmEgPSBuZXcgT3J0aG9ncmFwaGljQ2FtZXJhKHRoaXMuc2NlbmUsIHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICAgICAgICB0aGlzLmNhbWVyYXMucHVzaChjYW1lcmEpO1xyXG5cclxuICAgICAgICByZXR1cm4gY2FtZXJhO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYU1hbmFnZXIjYWRkUGVyc3BlY3RpdmVDYW1lcmFcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZmllbGRPZlZpZXc9ODBdIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt3aWR0aF0gLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2hlaWdodF0gLSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuUGVyc3BlY3RpdmVDYW1lcmF9IFtkZXNjcmlwdGlvbl1cclxuICAgICAqL1xyXG4gICAgYWRkUGVyc3BlY3RpdmVDYW1lcmE6IGZ1bmN0aW9uIChmaWVsZE9mVmlldywgd2lkdGgsIGhlaWdodClcclxuICAgIHtcclxuICAgICAgICB2YXIgY29uZmlnID0gdGhpcy5zY2VuZS5zeXMuZ2FtZS5jb25maWc7XHJcblxyXG4gICAgICAgIGlmIChmaWVsZE9mVmlldyA9PT0gdW5kZWZpbmVkKSB7IGZpZWxkT2ZWaWV3ID0gODA7IH1cclxuICAgICAgICBpZiAod2lkdGggPT09IHVuZGVmaW5lZCkgeyB3aWR0aCA9IGNvbmZpZy53aWR0aDsgfVxyXG4gICAgICAgIGlmIChoZWlnaHQgPT09IHVuZGVmaW5lZCkgeyBoZWlnaHQgPSBjb25maWcuaGVpZ2h0OyB9XHJcblxyXG4gICAgICAgIHZhciBjYW1lcmEgPSBuZXcgUGVyc3BlY3RpdmVDYW1lcmEodGhpcy5zY2VuZSwgZmllbGRPZlZpZXcsIHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICAgICAgICB0aGlzLmNhbWVyYXMucHVzaChjYW1lcmEpO1xyXG5cclxuICAgICAgICByZXR1cm4gY2FtZXJhO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELkNhbWVyYU1hbmFnZXIjZ2V0Q2FtZXJhXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHsoUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuT3J0aG9ncmFwaGljQ2FtZXJhfFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELlBlcnNwZWN0aXZlQ2FtZXJhKX0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBnZXRDYW1lcmE6IGZ1bmN0aW9uIChuYW1lKVxyXG4gICAge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jYW1lcmFzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY2FtZXJhc1tpXS5uYW1lID09PSBuYW1lKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jYW1lcmFzW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmFNYW5hZ2VyI3JlbW92ZUNhbWVyYVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuT3J0aG9ncmFwaGljQ2FtZXJhfFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELlBlcnNwZWN0aXZlQ2FtZXJhKX0gY2FtZXJhIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICByZW1vdmVDYW1lcmE6IGZ1bmN0aW9uIChjYW1lcmEpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGNhbWVyYUluZGV4ID0gdGhpcy5jYW1lcmFzLmluZGV4T2YoY2FtZXJhKTtcclxuXHJcbiAgICAgICAgaWYgKGNhbWVyYUluZGV4ICE9PSAtMSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FtZXJhcy5zcGxpY2UoY2FtZXJhSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmFNYW5hZ2VyI3JlbW92ZUFsbFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7KFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELk9ydGhvZ3JhcGhpY0NhbWVyYXxQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5QZXJzcGVjdGl2ZUNhbWVyYSl9IFtkZXNjcmlwdGlvbl1cclxuICAgICAqL1xyXG4gICAgcmVtb3ZlQWxsOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHdoaWxlICh0aGlzLmNhbWVyYXMubGVuZ3RoID4gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBjYW1lcmEgPSB0aGlzLmNhbWVyYXMucG9wKCk7XHJcblxyXG4gICAgICAgICAgICBjYW1lcmEuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWFpbjtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmFNYW5hZ2VyI3VwZGF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWVzdGVwIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlbHRhIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICB1cGRhdGU6IGZ1bmN0aW9uICh0aW1lc3RlcCwgZGVsdGEpXHJcbiAgICB7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSB0aGlzLmNhbWVyYXMubGVuZ3RoOyBpIDwgbDsgKytpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jYW1lcmFzW2ldLnVwZGF0ZSh0aW1lc3RlcCwgZGVsdGEpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgU2NlbmUgdGhhdCBvd25zIHRoaXMgcGx1Z2luIGlzIHNodXR0aW5nIGRvd24uXHJcbiAgICAgKiBXZSBuZWVkIHRvIGtpbGwgYW5kIHJlc2V0IGFsbCBpbnRlcm5hbCBwcm9wZXJ0aWVzIGFzIHdlbGwgYXMgc3RvcCBsaXN0ZW5pbmcgdG8gU2NlbmUgZXZlbnRzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhTWFuYWdlciNzaHV0ZG93blxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBzaHV0ZG93bjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgZXZlbnRFbWl0dGVyID0gdGhpcy5zeXN0ZW1zLmV2ZW50cztcclxuXHJcbiAgICAgICAgZXZlbnRFbWl0dGVyLm9mZigndXBkYXRlJywgdGhpcy51cGRhdGUsIHRoaXMpO1xyXG4gICAgICAgIGV2ZW50RW1pdHRlci5vZmYoJ3NodXRkb3duJywgdGhpcy5zaHV0ZG93biwgdGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMucmVtb3ZlQWxsKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFNjZW5lIHRoYXQgb3ducyB0aGlzIHBsdWdpbiBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAgICAgKiBXZSBuZWVkIHRvIHNodXRkb3duIGFuZCB0aGVuIGtpbGwgb2ZmIGFsbCBleHRlcm5hbCByZWZlcmVuY2VzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhTWFuYWdlciNkZXN0cm95XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zaHV0ZG93bigpO1xyXG5cclxuICAgICAgICB0aGlzLnNjZW5lLnN5cy5ldmVudHMub2ZmKCdzdGFydCcsIHRoaXMuc3RhcnQsIHRoaXMpO1xyXG5cclxuICAgICAgICB0aGlzLnNjZW5lID0gbnVsbDtcclxuICAgICAgICB0aGlzLnN5c3RlbXMgPSBudWxsO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5QbHVnaW5DYWNoZS5yZWdpc3RlcignQ2FtZXJhTWFuYWdlcjNEJywgQ2FtZXJhTWFuYWdlciwgJ2NhbWVyYXMzZCcpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDYW1lcmFNYW5hZ2VyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDE4IFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9waG90b25zdG9ybS9waGFzZXIvYmxvYi9tYXN0ZXIvbGljZW5zZS50eHR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENhbWVyYSA9IHJlcXVpcmUoJy4vQ2FtZXJhJyk7XHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3NyYy91dGlscy9DbGFzcycpO1xyXG52YXIgVmVjdG9yMyA9IHJlcXVpcmUoJy4uLy4uLy4uL3NyYy9tYXRoL1ZlY3RvcjMnKTtcclxuXHJcbi8vICBMb2NhbCBjYWNoZSB2YXJzXHJcbnZhciB0bXBWZWMzID0gbmV3IFZlY3RvcjMoKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIFtkZXNjcmlwdGlvbl1cclxuICpcclxuICogQGNsYXNzIE9ydGhvZ3JhcGhpY0NhbWVyYVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5DYW1lcmFcclxuICogQG1lbWJlck9mIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNEXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gW2Rlc2NyaXB0aW9uXVxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFt2aWV3cG9ydFdpZHRoPTBdIC0gW2Rlc2NyaXB0aW9uXVxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFt2aWV3cG9ydEhlaWdodD0wXSAtIFtkZXNjcmlwdGlvbl1cclxuICovXHJcbnZhciBPcnRob2dyYXBoaWNDYW1lcmEgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IENhbWVyYSxcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIE9ydGhvZ3JhcGhpY0NhbWVyYSAoc2NlbmUsIHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh2aWV3cG9ydFdpZHRoID09PSB1bmRlZmluZWQpIHsgdmlld3BvcnRXaWR0aCA9IDA7IH1cclxuICAgICAgICBpZiAodmlld3BvcnRIZWlnaHQgPT09IHVuZGVmaW5lZCkgeyB2aWV3cG9ydEhlaWdodCA9IDA7IH1cclxuXHJcbiAgICAgICAgQ2FtZXJhLmNhbGwodGhpcywgc2NlbmUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5PcnRob2dyYXBoaWNDYW1lcmEjdmlld3BvcnRXaWR0aFxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudmlld3BvcnRXaWR0aCA9IHZpZXdwb3J0V2lkdGg7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELk9ydGhvZ3JhcGhpY0NhbWVyYSN2aWV3cG9ydEhlaWdodFxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudmlld3BvcnRIZWlnaHQgPSB2aWV3cG9ydEhlaWdodDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuT3J0aG9ncmFwaGljQ2FtZXJhI196b29tXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3pvb20gPSAxLjA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELk9ydGhvZ3JhcGhpY0NhbWVyYSNuZWFyXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5uZWFyID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5PcnRob2dyYXBoaWNDYW1lcmEjc2V0VG9PcnRob1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHlEb3duIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt2aWV3cG9ydFdpZHRoXSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbdmlld3BvcnRIZWlnaHRdIC0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNwcml0ZTNELk9ydGhvZ3JhcGhpY0NhbWVyYX0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBzZXRUb09ydGhvOiBmdW5jdGlvbiAoeURvd24sIHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh2aWV3cG9ydFdpZHRoID09PSB1bmRlZmluZWQpIHsgdmlld3BvcnRXaWR0aCA9IHRoaXMudmlld3BvcnRXaWR0aDsgfVxyXG4gICAgICAgIGlmICh2aWV3cG9ydEhlaWdodCA9PT0gdW5kZWZpbmVkKSB7IHZpZXdwb3J0SGVpZ2h0ID0gdGhpcy52aWV3cG9ydEhlaWdodDsgfVxyXG5cclxuICAgICAgICB2YXIgem9vbSA9IHRoaXMuem9vbTtcclxuXHJcbiAgICAgICAgdGhpcy51cC5zZXQoMCwgKHlEb3duKSA/IC0xIDogMSwgMCk7XHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24uc2V0KDAsIDAsICh5RG93bikgPyAxIDogLTEpO1xyXG4gICAgICAgIHRoaXMucG9zaXRpb24uc2V0KHpvb20gKiB2aWV3cG9ydFdpZHRoIC8gMiwgem9vbSAqIHZpZXdwb3J0SGVpZ2h0IC8gMiwgMCk7XHJcblxyXG4gICAgICAgIHRoaXMudmlld3BvcnRXaWR0aCA9IHZpZXdwb3J0V2lkdGg7XHJcbiAgICAgICAgdGhpcy52aWV3cG9ydEhlaWdodCA9IHZpZXdwb3J0SGVpZ2h0O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5PcnRob2dyYXBoaWNDYW1lcmEjdXBkYXRlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5PcnRob2dyYXBoaWNDYW1lcmF9IFtkZXNjcmlwdGlvbl1cclxuICAgICAqL1xyXG4gICAgdXBkYXRlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciB3ID0gdGhpcy52aWV3cG9ydFdpZHRoO1xyXG4gICAgICAgIHZhciBoID0gdGhpcy52aWV3cG9ydEhlaWdodDtcclxuICAgICAgICB2YXIgbmVhciA9IE1hdGguYWJzKHRoaXMubmVhcik7XHJcbiAgICAgICAgdmFyIGZhciA9IE1hdGguYWJzKHRoaXMuZmFyKTtcclxuICAgICAgICB2YXIgem9vbSA9IHRoaXMuem9vbTtcclxuXHJcbiAgICAgICAgaWYgKHcgPT09IDAgfHwgaCA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBXaGF0IHRvIGRvIGhlcmUuLi4gaG1tP1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucHJvamVjdGlvbi5vcnRobyhcclxuICAgICAgICAgICAgem9vbSAqIC13IC8gMiwgem9vbSAqIHcgLyAyLFxyXG4gICAgICAgICAgICB6b29tICogLWggLyAyLCB6b29tICogaCAvIDIsXHJcbiAgICAgICAgICAgIG5lYXIsXHJcbiAgICAgICAgICAgIGZhclxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIC8vICBCdWlsZCB0aGUgdmlldyBtYXRyaXhcclxuICAgICAgICB0bXBWZWMzLmNvcHkodGhpcy5wb3NpdGlvbikuYWRkKHRoaXMuZGlyZWN0aW9uKTtcclxuXHJcbiAgICAgICAgdGhpcy52aWV3Lmxvb2tBdCh0aGlzLnBvc2l0aW9uLCB0bXBWZWMzLCB0aGlzLnVwKTtcclxuXHJcbiAgICAgICAgLy8gIFByb2plY3Rpb24gKiB2aWV3IG1hdHJpeFxyXG4gICAgICAgIHRoaXMuY29tYmluZWQuY29weSh0aGlzLnByb2plY3Rpb24pLm11bHRpcGx5KHRoaXMudmlldyk7XHJcblxyXG4gICAgICAgIC8vICBJbnZlcnQgY29tYmluZWQgbWF0cml4LCB1c2VkIGZvciB1bnByb2plY3RcclxuICAgICAgICB0aGlzLmludlByb2plY3Rpb25WaWV3LmNvcHkodGhpcy5jb21iaW5lZCkuaW52ZXJ0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuYmlsbGJvYXJkTWF0cml4RGlydHkgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5PcnRob2dyYXBoaWNDYW1lcmEjem9vbVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB6b29tOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl96b29tO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fem9vbSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBPcnRob2dyYXBoaWNDYW1lcmE7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMTggUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Bob3RvbnN0b3JtL3BoYXNlci9ibG9iL21hc3Rlci9saWNlbnNlLnR4dHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2FtZXJhID0gcmVxdWlyZSgnLi9DYW1lcmEnKTtcclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vLi4vc3JjL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBWZWN0b3IzID0gcmVxdWlyZSgnLi4vLi4vLi4vc3JjL21hdGgvVmVjdG9yMycpO1xyXG5cclxuLy8gIExvY2FsIGNhY2hlIHZhcnNcclxudmFyIHRtcFZlYzMgPSBuZXcgVmVjdG9yMygpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogW2Rlc2NyaXB0aW9uXVxyXG4gKlxyXG4gKiBAY2xhc3MgUGVyc3BlY3RpdmVDYW1lcmFcclxuICogQGV4dGVuZHMgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhXHJcbiAqIEBtZW1iZXJPZiBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRFxyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFtkZXNjcmlwdGlvbl1cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbZmllbGRPZlZpZXc9ODBdIC0gW2Rlc2NyaXB0aW9uXVxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFt2aWV3cG9ydFdpZHRoPTBdIC0gW2Rlc2NyaXB0aW9uXVxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFt2aWV3cG9ydEhlaWdodD0wXSAtIFtkZXNjcmlwdGlvbl1cclxuICovXHJcbnZhciBQZXJzcGVjdGl2ZUNhbWVyYSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogQ2FtZXJhLFxyXG5cclxuICAgIC8vICBGT1YgaXMgY29udmVydGVkIHRvIHJhZGlhbnMgYXV0b21hdGljYWxseVxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBQZXJzcGVjdGl2ZUNhbWVyYSAoc2NlbmUsIGZpZWxkT2ZWaWV3LCB2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodClcclxuICAgIHtcclxuICAgICAgICBpZiAoZmllbGRPZlZpZXcgPT09IHVuZGVmaW5lZCkgeyBmaWVsZE9mVmlldyA9IDgwOyB9XHJcbiAgICAgICAgaWYgKHZpZXdwb3J0V2lkdGggPT09IHVuZGVmaW5lZCkgeyB2aWV3cG9ydFdpZHRoID0gMDsgfVxyXG4gICAgICAgIGlmICh2aWV3cG9ydEhlaWdodCA9PT0gdW5kZWZpbmVkKSB7IHZpZXdwb3J0SGVpZ2h0ID0gMDsgfVxyXG5cclxuICAgICAgICBDYW1lcmEuY2FsbCh0aGlzLCBzY2VuZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFtkZXNjcmlwdGlvbl1cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNELlBlcnNwZWN0aXZlQ2FtZXJhI3ZpZXdwb3J0V2lkdGhcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy52aWV3cG9ydFdpZHRoID0gdmlld3BvcnRXaWR0aDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogW2Rlc2NyaXB0aW9uXVxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuUGVyc3BlY3RpdmVDYW1lcmEjdmlld3BvcnRIZWlnaHRcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy52aWV3cG9ydEhlaWdodCA9IHZpZXdwb3J0SGVpZ2h0O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5QZXJzcGVjdGl2ZUNhbWVyYSNmaWVsZE9mVmlld1xyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDgwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5maWVsZE9mVmlldyA9IGZpZWxkT2ZWaWV3ICogTWF0aC5QSSAvIDE4MDtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5QZXJzcGVjdGl2ZUNhbWVyYSNzZXRGT1ZcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFtkZXNjcmlwdGlvbl1cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5QZXJzcGVjdGl2ZUNhbWVyYX0gW2Rlc2NyaXB0aW9uXVxyXG4gICAgICovXHJcbiAgICBzZXRGT1Y6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmZpZWxkT2ZWaWV3ID0gdmFsdWUgKiBNYXRoLlBJIC8gMTgwO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3JpcHRpb25dXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TcHJpdGUzRC5QZXJzcGVjdGl2ZUNhbWVyYSN1cGRhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNwcml0ZTNELlBlcnNwZWN0aXZlQ2FtZXJhfSBbZGVzY3JpcHRpb25dXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgYXNwZWN0ID0gdGhpcy52aWV3cG9ydFdpZHRoIC8gdGhpcy52aWV3cG9ydEhlaWdodDtcclxuXHJcbiAgICAgICAgLy8gIENyZWF0ZSBhIHBlcnNwZWN0aXZlIG1hdHJpeCBmb3Igb3VyIGNhbWVyYVxyXG4gICAgICAgIHRoaXMucHJvamVjdGlvbi5wZXJzcGVjdGl2ZShcclxuICAgICAgICAgICAgdGhpcy5maWVsZE9mVmlldyxcclxuICAgICAgICAgICAgYXNwZWN0LFxyXG4gICAgICAgICAgICBNYXRoLmFicyh0aGlzLm5lYXIpLFxyXG4gICAgICAgICAgICBNYXRoLmFicyh0aGlzLmZhcilcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICAvLyAgQnVpbGQgdGhlIHZpZXcgbWF0cml4XHJcbiAgICAgICAgdG1wVmVjMy5jb3B5KHRoaXMucG9zaXRpb24pLmFkZCh0aGlzLmRpcmVjdGlvbik7XHJcblxyXG4gICAgICAgIHRoaXMudmlldy5sb29rQXQodGhpcy5wb3NpdGlvbiwgdG1wVmVjMywgdGhpcy51cCk7XHJcblxyXG4gICAgICAgIC8vICBQcm9qZWN0aW9uICogdmlldyBtYXRyaXhcclxuICAgICAgICB0aGlzLmNvbWJpbmVkLmNvcHkodGhpcy5wcm9qZWN0aW9uKS5tdWx0aXBseSh0aGlzLnZpZXcpO1xyXG5cclxuICAgICAgICAvLyAgSW52ZXJ0IGNvbWJpbmVkIG1hdHJpeCwgdXNlZCBmb3IgdW5wcm9qZWN0XHJcbiAgICAgICAgdGhpcy5pbnZQcm9qZWN0aW9uVmlldy5jb3B5KHRoaXMuY29tYmluZWQpLmludmVydCgpO1xyXG5cclxuICAgICAgICB0aGlzLmJpbGxib2FyZE1hdHJpeERpcnR5ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbigpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQZXJzcGVjdGl2ZUNhbWVyYTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAxOCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vcGhvdG9uc3Rvcm0vcGhhc2VyL2Jsb2IvbWFzdGVyL2xpY2Vuc2UudHh0fE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5DYW1lcmFzLlNwcml0ZTNEXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgQ2FtZXJhOiByZXF1aXJlKCcuL0NhbWVyYScpLFxyXG4gICAgQ2FtZXJhTWFuYWdlcjogcmVxdWlyZSgnLi9DYW1lcmFNYW5hZ2VyJyksXHJcbiAgICBPcnRob2dyYXBoaWNDYW1lcmE6IHJlcXVpcmUoJy4vT3J0aG9ncmFwaGljQ2FtZXJhJyksXHJcbiAgICBQZXJzcGVjdGl2ZUNhbWVyYTogcmVxdWlyZSgnLi9QZXJzcGVjdGl2ZUNhbWVyYScpXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDE4IFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9waG90b25zdG9ybS9waGFzZXIvYmxvYi9tYXN0ZXIvbGljZW5zZS50eHR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vLi4vLi4vc3JjL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBHYW1lT2JqZWN0ID0gcmVxdWlyZSgnLi4vLi4vLi4vLi4vc3JjL2dhbWVvYmplY3RzL0dhbWVPYmplY3QnKTtcclxudmFyIFNwcml0ZSA9IHJlcXVpcmUoJy4uLy4uLy4uLy4uL3NyYy9nYW1lb2JqZWN0cy9zcHJpdGUvU3ByaXRlJyk7XHJcbnZhciBWZWN0b3IyID0gcmVxdWlyZSgnLi4vLi4vLi4vLi4vc3JjL21hdGgvVmVjdG9yMicpO1xyXG52YXIgVmVjdG9yNCA9IHJlcXVpcmUoJy4uLy4uLy4uLy4uL3NyYy9tYXRoL1ZlY3RvcjQnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgU3ByaXRlIDNEIEdhbWUgT2JqZWN0LlxyXG4gKlxyXG4gKiBUaGUgU3ByaXRlIDNEIG9iamVjdCBpcyBhbiBlbmNhcHN1bGF0aW9uIG9mIGEgc3RhbmRhcmQgU3ByaXRlIG9iamVjdCwgd2l0aCBhZGRpdGlvbmFsIG1ldGhvZHMgdG8gYWxsb3dcclxuICogaXQgdG8gYmUgcmVuZGVyZWQgYnkgYSAzRCBDYW1lcmEuIFRoZSBTcHJpdGUgY2FuIGJlIHBvc2l0aW9uZWQgYW55d2hlcmUgd2l0aGluIDNEIHNwYWNlLlxyXG4gKlxyXG4gKiBAY2xhc3MgU3ByaXRlM0RcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RcclxuICogQG1lbWJlck9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSB0byB3aGljaCB0aGlzIEdhbWUgT2JqZWN0IGJlbG9uZ3MuIEEgR2FtZSBPYmplY3QgY2FuIG9ubHkgYmVsb25nIHRvIG9uZSBTY2VuZSBhdCBhIHRpbWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge251bWJlcn0geiAtIFRoZSB6IHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0dXJlIC0gVGhlIGtleSBvZiB0aGUgVGV4dHVyZSB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIHJlbmRlciB3aXRoLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBbZnJhbWVdIC0gQW4gb3B0aW9uYWwgZnJhbWUgZnJvbSB0aGUgVGV4dHVyZSB0aGlzIEdhbWUgT2JqZWN0IGlzIHJlbmRlcmluZyB3aXRoLlxyXG4gKi9cclxudmFyIFNwcml0ZTNEID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBFeHRlbmRzOiBHYW1lT2JqZWN0LFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gU3ByaXRlM0QgKHNjZW5lLCB4LCB5LCB6LCB0ZXh0dXJlLCBmcmFtZSlcclxuICAgIHtcclxuICAgICAgICBHYW1lT2JqZWN0LmNhbGwodGhpcywgc2NlbmUsICdTcHJpdGUzRCcpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZW5jYXBzdWxhdGVkIFNwcml0ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGUzRCNnYW1lT2JqZWN0XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZ2FtZU9iamVjdCA9IG5ldyBTcHJpdGUoc2NlbmUsIDAsIDAsIHRleHR1cmUsIGZyYW1lKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBTcHJpdGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU3ByaXRlM0QjcG9zaXRpb25cclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguVmVjdG9yNH1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBvc2l0aW9uID0gbmV3IFZlY3RvcjQoeCwgeSwgeik7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSAyRCBzaXplIG9mIHRoZSBTcHJpdGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU3ByaXRlM0Qjc2l6ZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuTWF0aC5WZWN0b3IyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9IG5ldyBWZWN0b3IyKHRoaXMuZ2FtZU9iamVjdC53aWR0aCwgdGhpcy5nYW1lT2JqZWN0LmhlaWdodCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSAyRCBzY2FsZSBvZiB0aGUgU3ByaXRlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZTNEI3NjYWxlXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zY2FsZSA9IG5ldyBWZWN0b3IyKDEsIDEpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgc2V0IHRoZSBob3Jpem9udGFsIHNjYWxlIG9mIHRoZSBlbmNhcHN1bGF0ZWQgU3ByaXRlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZTNEI2FkanVzdFNjYWxlWFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFkanVzdFNjYWxlWCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBzZXQgdGhlIHZlcnRpY2FsIHNjYWxlIG9mIHRoZSBlbmNhcHN1bGF0ZWQgU3ByaXRlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZTNEI2FkanVzdFNjYWxlWVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFkanVzdFNjYWxlWSA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB2aXNpYmxlIHN0YXRlIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGUzRCNfdmlzaWJsZVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB0cnVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2plY3QgdGhpcyBTcHJpdGUgb250byB0aGUgZ2l2ZW4gM0QgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZTNEI3Byb2plY3RcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU3ByaXRlM0QuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgM0QgQ2FtZXJhIG9udG8gd2hpY2ggdG8gcHJvamVjdCB0aGlzIFNwcml0ZS5cclxuICAgICAqL1xyXG4gICAgcHJvamVjdDogZnVuY3Rpb24gKGNhbWVyYSlcclxuICAgIHtcclxuICAgICAgICB2YXIgcG9zID0gdGhpcy5wb3NpdGlvbjtcclxuXHJcbiAgICAgICAgdmFyIGdhbWVPYmplY3QgPSB0aGlzLmdhbWVPYmplY3Q7XHJcblxyXG4gICAgICAgIGNhbWVyYS5wcm9qZWN0KHBvcywgZ2FtZU9iamVjdCk7XHJcblxyXG4gICAgICAgIGNhbWVyYS5nZXRQb2ludFNpemUocG9zLCB0aGlzLnNpemUsIHRoaXMuc2NhbGUpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zY2FsZS54IDw9IDAgfHwgdGhpcy5zY2FsZS55IDw9IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBnYW1lT2JqZWN0LnNldFZpc2libGUoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoIWdhbWVPYmplY3QudmlzaWJsZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZ2FtZU9iamVjdC5zZXRWaXNpYmxlKHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5hZGp1c3RTY2FsZVgpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGdhbWVPYmplY3Quc2NhbGVYID0gdGhpcy5zY2FsZS54O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5hZGp1c3RTY2FsZVkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGdhbWVPYmplY3Quc2NhbGVZID0gdGhpcy5zY2FsZS55O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBnYW1lT2JqZWN0LnNldERlcHRoKGdhbWVPYmplY3QueiAqIC0xKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSB2aXNpYmxlIHN0YXRlIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGUzRCNzZXRWaXNpYmxlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbHVlIC0gVGhlIHZpc2libGUgc3RhdGUgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGUzRH0gVGhpcyBTcHJpdGUzRCBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldFZpc2libGU6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHZpc2libGUgc3RhdGUgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEFuIGludmlzaWJsZSBHYW1lIE9iamVjdCB3aWxsIHNraXAgcmVuZGVyaW5nLCBidXQgd2lsbCBzdGlsbCBwcm9jZXNzIHVwZGF0ZSBsb2dpYy5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU3ByaXRlM0QjdmlzaWJsZVxyXG4gICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgdmlzaWJsZToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5nYW1lT2JqZWN0LnZpc2libGUgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB4IHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZTNEI3hcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgeDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wb3NpdGlvbi54O1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbi54ID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgeSBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGUzRCN5XHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHk6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9zaXRpb24ueTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24ueSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHogcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU3ByaXRlM0QjelxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB6OiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uLno7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLnogPSB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFNwcml0ZTNEO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDE4IFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9waG90b25zdG9ybS9waGFzZXIvYmxvYi9tYXN0ZXIvbGljZW5zZS50eHR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEJ1aWxkR2FtZU9iamVjdCA9IHJlcXVpcmUoJy4uLy4uLy4uLy4uL3NyYy9nYW1lb2JqZWN0cy9CdWlsZEdhbWVPYmplY3QnKTtcclxudmFyIEJ1aWxkR2FtZU9iamVjdEFuaW1hdGlvbiA9IHJlcXVpcmUoJy4uLy4uLy4uLy4uL3NyYy9nYW1lb2JqZWN0cy9CdWlsZEdhbWVPYmplY3RBbmltYXRpb24nKTtcclxudmFyIEdhbWVPYmplY3RDcmVhdG9yID0gcmVxdWlyZSgnLi4vLi4vLi4vLi4vc3JjL2dhbWVvYmplY3RzL0dhbWVPYmplY3RDcmVhdG9yJyk7XHJcbnZhciBHZXRBZHZhbmNlZFZhbHVlID0gcmVxdWlyZSgnLi4vLi4vLi4vLi4vc3JjL3V0aWxzL29iamVjdC9HZXRBZHZhbmNlZFZhbHVlJyk7XHJcbnZhciBTcHJpdGUzRCA9IHJlcXVpcmUoJy4vU3ByaXRlM0QnKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IFNwcml0ZTNEIEdhbWUgT2JqZWN0IGFuZCByZXR1cm5zIGl0LlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBTcHJpdGUzRCBHYW1lIE9iamVjdCBoYXMgYmVlbiBidWlsdCBpbnRvIFBoYXNlci5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdENyZWF0b3Ijc3ByaXRlM0RcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiBvYmplY3QgdGhpcyBHYW1lIE9iamVjdCB3aWxsIHVzZSB0byBjcmVhdGUgaXRzZWxmLlxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFthZGRUb1NjZW5lXSAtIEFkZCB0aGlzIEdhbWUgT2JqZWN0IHRvIHRoZSBTY2VuZSBhZnRlciBjcmVhdGluZyBpdD8gSWYgc2V0IHRoaXMgYXJndW1lbnQgb3ZlcnJpZGVzIHRoZSBgYWRkYCBwcm9wZXJ0eSBpbiB0aGUgY29uZmlnIG9iamVjdC5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZTNEfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RDcmVhdG9yLnJlZ2lzdGVyKCdzcHJpdGUzRCcsIGZ1bmN0aW9uIChjb25maWcsIGFkZFRvU2NlbmUpXHJcbntcclxuICAgIGlmIChjb25maWcgPT09IHVuZGVmaW5lZCkgeyBjb25maWcgPSB7fTsgfVxyXG5cclxuICAgIHZhciBrZXkgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ2tleScsIG51bGwpO1xyXG4gICAgdmFyIGZyYW1lID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdmcmFtZScsIG51bGwpO1xyXG5cclxuICAgIHZhciBzcHJpdGUgPSBuZXcgU3ByaXRlM0QodGhpcy5zY2VuZSwgMCwgMCwga2V5LCBmcmFtZSk7XHJcblxyXG4gICAgaWYgKGFkZFRvU2NlbmUgIT09IHVuZGVmaW5lZClcclxuICAgIHtcclxuICAgICAgICBjb25maWcuYWRkID0gYWRkVG9TY2VuZTtcclxuICAgIH1cclxuXHJcbiAgICBCdWlsZEdhbWVPYmplY3QodGhpcy5zY2VuZSwgc3ByaXRlLCBjb25maWcpO1xyXG5cclxuICAgIC8vICBTcHJpdGUgc3BlY2lmaWMgY29uZmlnIG9wdGlvbnM6XHJcblxyXG4gICAgQnVpbGRHYW1lT2JqZWN0QW5pbWF0aW9uKHNwcml0ZSwgY29uZmlnKTtcclxuXHJcbiAgICByZXR1cm4gc3ByaXRlO1xyXG59KTtcclxuXHJcbi8vICBXaGVuIHJlZ2lzdGVyaW5nIGEgZmFjdG9yeSBmdW5jdGlvbiAndGhpcycgcmVmZXJzIHRvIHRoZSBHYW1lT2JqZWN0Q3JlYXRvciBjb250ZXh0LlxyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDE4IFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9waG90b25zdG9ybS9waGFzZXIvYmxvYi9tYXN0ZXIvbGljZW5zZS50eHR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFNwcml0ZTNEID0gcmVxdWlyZSgnLi9TcHJpdGUzRCcpO1xyXG52YXIgR2FtZU9iamVjdEZhY3RvcnkgPSByZXF1aXJlKCcuLi8uLi8uLi8uLi9zcmMvZ2FtZW9iamVjdHMvR2FtZU9iamVjdEZhY3RvcnknKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IFNwcml0ZTNEIEdhbWUgT2JqZWN0IGFuZCBhZGRzIGl0IHRvIHRoZSBTY2VuZS5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgU3ByaXRlM0QgR2FtZSBPYmplY3QgaGFzIGJlZW4gYnVpbHQgaW50byBQaGFzZXIuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5I3Nwcml0ZTNEXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB6IC0gVGhlIHogcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtzdHJpbmd9IHRleHR1cmUgLSBUaGUga2V5IG9mIHRoZSBUZXh0dXJlIHRoaXMgR2FtZSBPYmplY3Qgd2lsbCB1c2UgdG8gcmVuZGVyIHdpdGgsIGFzIHN0b3JlZCBpbiB0aGUgVGV4dHVyZSBNYW5hZ2VyLlxyXG4gKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcil9IFtmcmFtZV0gLSBBbiBvcHRpb25hbCBmcmFtZSBmcm9tIHRoZSBUZXh0dXJlIHRoaXMgR2FtZSBPYmplY3QgaXMgcmVuZGVyaW5nIHdpdGguXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGUzRH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0RmFjdG9yeS5yZWdpc3Rlcignc3ByaXRlM0QnLCBmdW5jdGlvbiAoeCwgeSwgeiwga2V5LCBmcmFtZSlcclxue1xyXG4gICAgdmFyIHNwcml0ZSA9IG5ldyBTcHJpdGUzRCh0aGlzLnNjZW5lLCB4LCB5LCB6LCBrZXksIGZyYW1lKTtcclxuXHJcbiAgICB0aGlzLmRpc3BsYXlMaXN0LmFkZChzcHJpdGUuZ2FtZU9iamVjdCk7XHJcbiAgICB0aGlzLnVwZGF0ZUxpc3QuYWRkKHNwcml0ZS5nYW1lT2JqZWN0KTtcclxuXHJcbiAgICByZXR1cm4gc3ByaXRlO1xyXG59KTtcclxuXHJcbi8vICBXaGVuIHJlZ2lzdGVyaW5nIGEgZmFjdG9yeSBmdW5jdGlvbiAndGhpcycgcmVmZXJzIHRvIHRoZSBHYW1lT2JqZWN0RmFjdG9yeSBjb250ZXh0LlxyXG4vL1xyXG4vLyAgVGhlcmUgYXJlIHNldmVyYWwgcHJvcGVydGllcyBhdmFpbGFibGUgdG8gdXNlOlxyXG4vL1xyXG4vLyAgdGhpcy5zY2VuZSAtIGEgcmVmZXJlbmNlIHRvIHRoZSBTY2VuZSB0aGF0IG93bnMgdGhlIEdhbWVPYmplY3RGYWN0b3J5XHJcbi8vICB0aGlzLmRpc3BsYXlMaXN0IC0gYSByZWZlcmVuY2UgdG8gdGhlIERpc3BsYXkgTGlzdCB0aGUgU2NlbmUgb3duc1xyXG4vLyAgdGhpcy51cGRhdGVMaXN0IC0gYSByZWZlcmVuY2UgdG8gdGhlIFVwZGF0ZSBMaXN0IHRoZSBTY2VuZSBvd25zXHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMTggUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Bob3RvbnN0b3JtL3BoYXNlci9ibG9iL21hc3Rlci9saWNlbnNlLnR4dHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQHR5cGVkZWYge29iamVjdH0gQWRJbnN0YW5jZVxyXG4gKlxyXG4gKiBAcHJvcGVydHkge2FueX0gaW5zdGFuY2UgLSBSZXByZXNlbnRzIGFuIGluc3RhbmNlIG9mIGFuIGFkLlxyXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcGxhY2VtZW50SUQgLSBUaGUgQXVkaWVuY2UgTmV0d29yayBwbGFjZW1lbnQgSUQgb2YgdGhpcyBhZCBpbnN0YW5jZS5cclxuICogQHByb3BlcnR5IHtib29sZWFufSBzaG93biAtIEhhcyB0aGlzIGFkIGFscmVhZHkgYmVlbiBzaG93biBpbi1nYW1lP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHZpZGVvIC0gSXMgdGhpcyBhIHZpZGVvIGFkP1xyXG4gKi9cclxuXHJcbnZhciBBZEluc3RhbmNlID0gZnVuY3Rpb24gKHBsYWNlbWVudElELCBpbnN0YW5jZSwgdmlkZW8pXHJcbntcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5zdGFuY2U6IGluc3RhbmNlLFxyXG4gICAgICAgIHBsYWNlbWVudElEOiBwbGFjZW1lbnRJRCxcclxuICAgICAgICBzaG93bjogZmFsc2UsXHJcbiAgICAgICAgdmlkZW86IHZpZGVvXHJcbiAgICB9O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBBZEluc3RhbmNlO1xyXG4iLCIvKiBlc2xpbnQgbm8tY29uc29sZTogMCAqL1xyXG5cclxuLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAxOCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vcGhvdG9uc3Rvcm0vcGhhc2VyL2Jsb2IvbWFzdGVyL2xpY2Vuc2UudHh0fE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBBZEluc3RhbmNlID0gcmVxdWlyZSgnLi9BZEluc3RhbmNlJyk7XHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3NyYy91dGlscy9DbGFzcycpO1xyXG52YXIgRGF0YU1hbmFnZXIgPSByZXF1aXJlKCcuLi8uLi8uLi9zcmMvZGF0YS9EYXRhTWFuYWdlcicpO1xyXG52YXIgRXZlbnRFbWl0dGVyID0gcmVxdWlyZSgnZXZlbnRlbWl0dGVyMycpO1xyXG52YXIgTGVhZGVyYm9hcmQgPSByZXF1aXJlKCcuL0xlYWRlcmJvYXJkJyk7XHJcbnZhciBQcm9kdWN0ID0gcmVxdWlyZSgnLi9Qcm9kdWN0Jyk7XHJcbnZhciBQdXJjaGFzZSA9IHJlcXVpcmUoJy4vUHVyY2hhc2UnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIFRoZSBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbiBmb3IgUGhhc2VyIDMgcHJvdmlkZXMgYSBzZWFtbGVzcyBicmlkZ2UgYmV0d2VlbiBQaGFzZXJcclxuICogYW5kIHRoZSBGYWNlYm9vayBJbnN0YW50IEdhbWVzIEFQSSB2ZXJzaW9uIDYuMi5cclxuICogXHJcbiAqIFlvdSBjYW4gYWNjZXNzIHRoaXMgcGx1Z2luIHZpYSB0aGUgYGZhY2Vib29rYCBwcm9wZXJ0eSBpbiBhIFNjZW5lLCBpLmU6XHJcbiAqIFxyXG4gKiBgYGBqYXZhc2NyaXB0XHJcbiAqIHRoaXMuZmFjZWJvb2suZ2V0UGxhdGZvcm0oKTtcclxuICogYGBgXHJcbiAqIFxyXG4gKiBJZiB0aGlzIGlzIHVuYXZhaWxhYmxlIHBsZWFzZSBjaGVjayB0byBtYWtlIHN1cmUgeW91J3JlIHVzaW5nIGEgYnVpbGQgb2YgUGhhc2VyIHRoYXQgaGFzXHJcbiAqIHRoaXMgcGx1Z2luIHdpdGhpbiBpdC4gWW91IGNhbiBxdWlja2x5IGNoZWNrIHRoaXMgYnkgbG9va2luZyBhdCB0aGUgZGV2IHRvb2xzIGNvbnNvbGVcclxuICogaGVhZGVyIC0gdGhlIFBoYXNlciB2ZXJzaW9uIG51bWJlciB3aWxsIGhhdmUgYC1GQmAgYWZ0ZXIgaXQgaWYgdGhpcyBwbHVnaW4gaXMgbG9hZGVkLlxyXG4gKlxyXG4gKiBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgb3duIHZlcnNpb24gb2YgUGhhc2VyIHRoZW4gdXNlIHRoaXMgV2VicGFjayBEZWZpbmVQbHVnaW4gZmxhZzpcclxuICogXHJcbiAqIGBcInR5cGVvZiBQTFVHSU5fRkJJTlNUQU5UXCI6IEpTT04uc3RyaW5naWZ5KHRydWUpYFxyXG4gKiBcclxuICogWW91IHdpbGwgZmluZCB0aGF0IGV2ZXJ5IEluc3RhbnQgR2FtZXMgQVBJIG1ldGhvZCBoYXMgYSBtYXBwaW5nIGluIHRoaXMgcGx1Z2luLlxyXG4gKiBGb3IgYSBmdWxsIGxpc3QgcGxlYXNlIGNvbnN1bHQgZWl0aGVyIHRoZSBwbHVnaW4gZG9jdW1lbnRhdGlvbiwgb3IgdGhlIDYuMiBTREsgZG9jdW1lbnRhdGlvblxyXG4gKiBhdCBodHRwczovL2RldmVsb3BlcnMuZmFjZWJvb2suY29tL2RvY3MvZ2FtZXMvaW5zdGFudC1nYW1lcy9zZGsvZmJpbnN0YW50Ni4yXHJcbiAqIFxyXG4gKiBJbnRlcm5hbGx5IHRoaXMgcGx1Z2luIHVzZXMgaXRzIG93biBEYXRhIE1hbmFnZXIgdG8gaGFuZGxlIHNlYW1sZXNzIHVzZXIgZGF0YSB1cGRhdGVzIGFuZCBwcm92aWRlc1xyXG4gKiBoYW5keSBmdW5jdGlvbnMgZm9yIGFkdmVydGlzZW1lbnQgZGlzcGxheWluZywgb3BlbmluZyBzaGFyZSBkaWFsb2dzLCBsb2dnaW5nLCBsZWFkZXJib2FyZHMsIHB1cmNoYXNlIEFQSSByZXF1ZXN0cyxcclxuICogbG9hZGVyIGludGVncmF0aW9uIGFuZCBtb3JlLlxyXG4gKiBcclxuICogVG8gZ2V0IHN0YXJ0ZWQgd2l0aCBGYWNlYm9vayBJbnN0YW50IEdhbWVzIHlvdSB3aWxsIG5lZWQgdG8gcmVnaXN0ZXIgb24gRmFjZWJvb2sgYW5kIGNyZWF0ZSBhIG5ldyBJbnN0YW50XHJcbiAqIEdhbWUgYXBwIHRoYXQgaGFzIGl0cyBvd24gdW5pcXVlIGFwcCBJRC4gRmFjZWJvb2sgaGF2ZSBhbHNvIHByb3ZpZGVkIGEgZGFzaGJvYXJkIGludGVyZmFjZSBmb3Igc2V0dGluZyB1cFxyXG4gKiB2YXJpb3VzIGZlYXR1cmVzIGZvciB5b3VyIGdhbWUsIGluY2x1ZGluZyBsZWFkZXJib2FyZHMsIGFkIHJlcXVlc3RzIGFuZCB0aGUgcGF5bWVudHMgQVBJLiBUaGVyZSBhcmUgbG90c1xyXG4gKiBvZiBndWlkZXMgb24gdGhlIEZhY2Vib29rIERldmVsb3BlcnMgcG9ydGFsIHRvIGFzc2lzdCB3aXRoIHNldHRpbmcgdGhlc2VcclxuICogdmFyaW91cyBzeXN0ZW1zIHVwOiBodHRwczovL2RldmVsb3BlcnMuZmFjZWJvb2suY29tL2RvY3MvZ2FtZXMvaW5zdGFudC1nYW1lcy9ndWlkZXNcclxuICogXHJcbiAqIEZvciBtb3JlIGRldGFpbHMgZm9sbG93IHRoZSBRdWljayBTdGFydCBndWlkZSBoZXJlOiBodHRwczovL2RldmVsb3BlcnMuZmFjZWJvb2suY29tL2RvY3MvZ2FtZXMvaW5zdGFudC1nYW1lc1xyXG4gKlxyXG4gKiBAY2xhc3MgRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW5cclxuICogQG1lbWJlck9mIFBoYXNlclxyXG4gKiBAY29uc3RydWN0b3JcclxuICogQGV4dGVuZHMgUGhhc2VyLkV2ZW50cy5FdmVudEVtaXR0ZXJcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lfSBnYW1lIC0gQSByZWZlcmVuY2UgdG8gdGhlIFBoYXNlci5HYW1lIGluc3RhbmNlLlxyXG4gKi9cclxudmFyIEZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBFeHRlbmRzOiBFdmVudEVtaXR0ZXIsXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBGYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiAoZ2FtZSlcclxuICAgIHtcclxuICAgICAgICBFdmVudEVtaXR0ZXIuY2FsbCh0aGlzKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFBoYXNlci5HYW1lIGluc3RhbmNlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI2dhbWVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWV9XHJcbiAgICAgICAgICogQHJlYWRPbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZ2FtZSA9IGdhbWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgRGF0YSBNYW5hZ2VyIGluc3RhbmNlLlxyXG4gICAgICAgICAqIEl0IGFsbG93cyB5b3UgdG8gc3RvcmUsIHF1ZXJ5IGFuZCByZXRyaWV2ZSBhbnkga2V5L3ZhbHVlIGRhdGEgeW91IG1heSBuZWVkIHRvIHN0b3JlLlxyXG4gICAgICAgICAqIEl0J3MgYWxzbyB1c2VkIGludGVybmFsbHkgYnkgdGhlIHBsdWdpbiB0byBzdG9yZSBGQklHIEFQSSBkYXRhLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI2RhdGFcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkRhdGEuRGF0YU1hbmFnZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IG5ldyBEYXRhTWFuYWdlcih0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5vbignc2V0ZGF0YScsIHRoaXMuc2V0RGF0YUhhbmRsZXIsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMub24oJ2NoYW5nZWRhdGEnLCB0aGlzLmNoYW5nZURhdGFIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSGFzIHRoZSBGYWNlYm9vayBJbnN0YW50IEdhbWVzIEFQSSBsb2FkZWQgeWV0P1xyXG4gICAgICAgICAqIFRoaXMgaXMgc2V0IGF1dG9tYXRpY2FsbHkgZHVyaW5nIHRoZSBib290IHByb2Nlc3MuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jaGFzTG9hZGVkXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaGFzTG9hZGVkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElzIHRoZSBEYXRhIE1hbmFnZXIgY3VycmVudGx5IGxvY2tlZD9cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNkYXRhTG9ja2VkXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGF0YUxvY2tlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIGxpc3Qgb2YgdGhlIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgQVBJcyB0aGF0IGFyZSBhdmFpbGFibGUsXHJcbiAgICAgICAgICogYmFzZWQgb24gdGhlIGdpdmVuIHBsYXRmb3JtLCBjb250ZXh0IGFuZCB1c2VyIHByaXZhY3kgc2V0dGluZ3MuXHJcbiAgICAgICAgICogVGhpcyB2YWx1ZSBpcyBwb3B1bGF0ZWQgYXV0b21hdGljYWxseSBkdXJpbmcgYm9vdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNzdXBwb3J0ZWRBUElzXHJcbiAgICAgICAgICogQHR5cGUge3N0cmluZ1tdfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnN1cHBvcnRlZEFQSXMgPSBbXTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSG9sZHMgdGhlIGVudHJ5IHBvaW50IHRoYXQgdGhlIGdhbWUgd2FzIGxhdW5jaGVkIGZyb20uXHJcbiAgICAgICAgICogVGhpcyB2YWx1ZSBpcyBwb3B1bGF0ZWQgYXV0b21hdGljYWxseSBkdXJpbmcgYm9vdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNlbnRyeVBvaW50XHJcbiAgICAgICAgICogQHR5cGUge3N0cmluZ31cclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5lbnRyeVBvaW50ID0gJyc7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIGFueSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgZW50cnkgcG9pbnQgdGhhdCB0aGUgZ2FtZSB3YXMgbGF1bmNoZWQgZnJvbS5cclxuICAgICAgICAgKiBUaGUgY29udGVudHMgb2YgdGhlIG9iamVjdCBhcmUgZGV2ZWxvcGVyLWRlZmluZWQsIGFuZCBjYW4gb2NjdXIgZnJvbSBlbnRyeSBwb2ludHMgb24gZGlmZmVyZW50IHBsYXRmb3Jtcy5cclxuICAgICAgICAgKiBUaGlzIHdpbGwgcmV0dXJuIG51bGwgZm9yIG9sZGVyIG1vYmlsZSBjbGllbnRzLCBhcyB3ZWxsIGFzIHdoZW4gdGhlcmUgaXMgbm8gZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIHBhcnRpY3VsYXIgZW50cnkgcG9pbnQuXHJcbiAgICAgICAgICogVGhpcyB2YWx1ZSBpcyBwb3B1bGF0ZWQgYXV0b21hdGljYWxseSBkdXJpbmcgYm9vdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNlbnRyeVBvaW50RGF0YVxyXG4gICAgICAgICAqIEB0eXBlIHthbnl9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZW50cnlQb2ludERhdGEgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY3VycmVudCBnYW1lIGNvbnRleHQuIFRoaXMgcmVwcmVzZW50cyBhIHNwZWNpZmljIGNvbnRleHRcclxuICAgICAgICAgKiB0aGF0IHRoZSBnYW1lIGlzIGJlaW5nIHBsYXllZCBpbiAoZm9yIGV4YW1wbGUsIGEgcGFydGljdWxhciBtZXNzZW5nZXIgY29udmVyc2F0aW9uIG9yIGZhY2Vib29rIHBvc3QpLlxyXG4gICAgICAgICAqIFRoZSBpZGVudGlmaWVyIHdpbGwgYmUgbnVsbCBpZiBnYW1lIGlzIGJlaW5nIHBsYXllZCBpbiBhIHNvbG8gY29udGV4dC5cclxuICAgICAgICAgKiBUaGlzIHZhbHVlIGlzIHBvcHVsYXRlZCBhdXRvbWF0aWNhbGx5IGR1cmluZyBib290LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI2NvbnRleHRJRFxyXG4gICAgICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY29udGV4dElEID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGN1cnJlbnQgY29udGV4dCBpbiB3aGljaCB5b3VyIGdhbWUgaXMgcnVubmluZy4gVGhpcyBjYW4gYmUgZWl0aGVyIGBudWxsYCBvclxyXG4gICAgICAgICAqIG9uZSBvZjpcclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBgUE9TVGAgLSBUaGUgZ2FtZSBpcyBydW5uaW5nIGluc2lkZSBvZiBhIEZhY2Vib29rIHBvc3QuXHJcbiAgICAgICAgICogYFRIUkVBRGAgLSBUaGUgZ2FtZSBpcyBydW5uaW5nIGluc2lkZSBhIEZhY2Vib29rIE1lc3NlbmdlciB0aHJlYWQuXHJcbiAgICAgICAgICogYEdST1VQYCAtIFRoZSBnYW1lIGlzIHJ1bm5pbmcgaW5zaWRlIGEgRmFjZWJvb2sgR3JvdXAuXHJcbiAgICAgICAgICogYFNPTE9gIC0gVGhpcyBpcyB0aGUgZGVmYXVsdCBjb250ZXh0LCB0aGUgcGxheWVyIGlzIHRoZSBvbmx5IHBhcnRpY2lwYW50LlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIFRoaXMgdmFsdWUgaXMgcG9wdWxhdGVkIGF1dG9tYXRpY2FsbHkgZHVyaW5nIGJvb3QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jY29udGV4dFR5cGVcclxuICAgICAgICAgKiBAdHlwZSB7P3N0cmluZ31cclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb250ZXh0VHlwZSA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjdXJyZW50IGxvY2FsZS5cclxuICAgICAgICAgKiBTZWUgaHR0cHM6Ly9vcmlnaW5jYWNoZS5mYWNlYm9vay5jb20vZGV2ZWxvcGVycy9yZXNvdXJjZXMvP2lkPUZhY2Vib29rTG9jYWxlcy54bWwgZm9yIGEgY29tcGxldGUgbGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlIHZhbHVlcy5cclxuICAgICAgICAgKiBVc2UgdGhpcyB0byBkZXRlcm1pbmUgd2hhdCBsYW5ndWFnZXMgdGhlIGN1cnJlbnQgZ2FtZSBzaG91bGQgYmUgbG9jYWxpemVkIHdpdGguXHJcbiAgICAgICAgICogVGhpcyB2YWx1ZSBpcyBwb3B1bGF0ZWQgYXV0b21hdGljYWxseSBkdXJpbmcgYm9vdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNsb2NhbGVcclxuICAgICAgICAgKiBAdHlwZSB7P3N0cmluZ31cclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgcGxhdGZvcm0gb24gd2hpY2ggdGhlIGdhbWUgaXMgY3VycmVudGx5IHJ1bm5pbmcsIGkuZS4gYElPU2AuXHJcbiAgICAgICAgICogVGhpcyB2YWx1ZSBpcyBwb3B1bGF0ZWQgYXV0b21hdGljYWxseSBkdXJpbmcgYm9vdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNwbGF0Zm9ybVxyXG4gICAgICAgICAqIEB0eXBlIHs/c3RyaW5nfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBsYXRmb3JtID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBTREsgdmVyc2lvbiBiZWluZyB1c2VkLlxyXG4gICAgICAgICAqIFRoaXMgdmFsdWUgaXMgcG9wdWxhdGVkIGF1dG9tYXRpY2FsbHkgZHVyaW5nIGJvb3QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jdmVyc2lvblxyXG4gICAgICAgICAqIEB0eXBlIHs/c3RyaW5nfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnZlcnNpb24gPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBIb2xkcyB0aGUgaWQgb2YgdGhlIHBsYXllci4gVGhpcyBpcyBhIHN0cmluZyBiYXNlZCBJRCwgdGhlIHNhbWUgYXMgYEZCSW5zdGFudC5wbGF5ZXIuZ2V0SUQoKWAuXHJcbiAgICAgICAgICogVGhpcyB2YWx1ZSBpcyBwb3B1bGF0ZWQgYXV0b21hdGljYWxseSBkdXJpbmcgYm9vdCBpZiB0aGUgQVBJIGlzIHN1cHBvcnRlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNwbGF5ZXJJRFxyXG4gICAgICAgICAqIEB0eXBlIHs/c3RyaW5nfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBsYXllcklEID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHBsYXllcidzIGxvY2FsaXplZCBkaXNwbGF5IG5hbWUuXHJcbiAgICAgICAgICogVGhpcyB2YWx1ZSBpcyBwb3B1bGF0ZWQgYXV0b21hdGljYWxseSBkdXJpbmcgYm9vdCBpZiB0aGUgQVBJIGlzIHN1cHBvcnRlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNwbGF5ZXJOYW1lXHJcbiAgICAgICAgICogQHR5cGUgez9zdHJpbmd9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucGxheWVyTmFtZSA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgdXJsIHRvIHRoZSBwbGF5ZXIncyBwdWJsaWMgcHJvZmlsZSBwaG90by4gVGhlIHBob3RvIHdpbGwgYWx3YXlzIGJlIGEgc3F1YXJlLCBhbmQgd2l0aCBkaW1lbnNpb25zXHJcbiAgICAgICAgICogb2YgYXQgbGVhc3QgMjAweDIwMC4gV2hlbiByZW5kZXJpbmcgaXQgaW4gdGhlIGdhbWUsIHRoZSBleGFjdCBkaW1lbnNpb25zIHNob3VsZCBuZXZlciBiZSBhc3N1bWVkIHRvIGJlIGNvbnN0YW50LlxyXG4gICAgICAgICAqIEl0J3MgcmVjb21tZW5kZWQgdG8gYWx3YXlzIHNjYWxlIHRoZSBpbWFnZSB0byBhIGRlc2lyZWQgc2l6ZSBiZWZvcmUgcmVuZGVyaW5nLlxyXG4gICAgICAgICAqIFRoaXMgdmFsdWUgaXMgcG9wdWxhdGVkIGF1dG9tYXRpY2FsbHkgZHVyaW5nIGJvb3QgaWYgdGhlIEFQSSBpcyBzdXBwb3J0ZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jcGxheWVyUGhvdG9VUkxcclxuICAgICAgICAgKiBAdHlwZSB7P3N0cmluZ31cclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wbGF5ZXJQaG90b1VSTCA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFdoZXRoZXIgYSBwbGF5ZXIgY2FuIHN1YnNjcmliZSB0byB0aGUgZ2FtZSBib3Qgb3Igbm90LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI3BsYXllckNhblN1YnNjcmliZUJvdFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBsYXllckNhblN1YnNjcmliZUJvdCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBEb2VzIHRoZSBjdXJyZW50IHBsYXRmb3JtIGFuZCBjb250ZXh0IGFsbG93IGZvciB1c2Ugb2YgdGhlIHBheW1lbnRzIEFQST9cclxuICAgICAgICAgKiBDdXJyZW50bHkgdGhpcyBpcyBvbmx5IGF2YWlsYWJsZSBvbiBGYWNlYm9vay5jb20gYW5kIEFuZHJvaWQgNisuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jcGF5bWVudHNSZWFkeVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBheW1lbnRzUmVhZHkgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHNldCBvZiBwcm9kdWN0cyB0aGF0IGFyZSByZWdpc3RlcmVkIHRvIHRoZSBnYW1lLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI2NhdGFsb2dcclxuICAgICAgICAgKiBAdHlwZSB7UHJvZHVjdFtdfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNhdGFsb2cgPSBbXTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ29udGFpbnMgYWxsIG9mIHRoZSBwbGF5ZXIncyB1bmNvbnN1bWVkIHB1cmNoYXNlcy5cclxuICAgICAgICAgKiBUaGUgZ2FtZSBtdXN0IGZldGNoIHRoZSBjdXJyZW50IHBsYXllcidzIHB1cmNoYXNlcyBhcyBzb29uIGFzIHRoZSBjbGllbnQgaW5kaWNhdGVzIHRoYXQgaXQgaXMgcmVhZHkgdG8gcGVyZm9ybSBwYXltZW50cy1yZWxhdGVkIG9wZXJhdGlvbnMsXHJcbiAgICAgICAgICogaS5lLiBhdCBnYW1lIHN0YXJ0LiBUaGUgZ2FtZSBjYW4gdGhlbiBwcm9jZXNzIGFuZCBjb25zdW1lIGFueSBwdXJjaGFzZXMgdGhhdCBhcmUgd2FpdGluZyB0byBiZSBjb25zdW1lZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNwdXJjaGFzZXNcclxuICAgICAgICAgKiBAdHlwZSB7UHVyY2hhc2VbXX1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wdXJjaGFzZXMgPSBbXTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ29udGFpbnMgYWxsIG9mIHRoZSBsZWFkZXJib2FyZCBkYXRhLCBhcyBwb3B1bGF0ZWQgYnkgdGhlIGBnZXRMZWFkZXJib2FyZCgpYCBtZXRob2QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jbGVhZGVyYm9hcmRzXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc0xlYWRlcmJvYXJkW119XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubGVhZGVyYm9hcmRzID0ge307XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvbnRhaW5zIEFkSW5zdGFuY2Ugb2JqZWN0cywgYXMgY3JlYXRlZCBieSB0aGUgYHByZWxvYWRBZHMoKWAgbWV0aG9kLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI2Fkc1xyXG4gICAgICAgICAqIEB0eXBlIHtBZEluc3RhbmNlW119XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWRzID0gW107XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgc2V0IGRhdGEgaGFuZGxlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNzZXREYXRhSGFuZGxlclxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5EYXRhLkRhdGFNYW5hZ2VyfSBwYXJlbnQgLSBUaGUgcGFyZW50IERhdGEgTWFuYWdlciBpbnN0YW5jZS5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBkYXRhLlxyXG4gICAgICogQHBhcmFtIHthbnl9IHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBkYXRhLlxyXG4gICAgICovXHJcbiAgICBzZXREYXRhSGFuZGxlcjogZnVuY3Rpb24gKHBhcmVudCwga2V5LCB2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5kYXRhTG9ja2VkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGRhdGEgPSB7fTtcclxuXHJcbiAgICAgICAgZGF0YVtrZXldID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIEZCSW5zdGFudC5wbGF5ZXIuc2V0RGF0YUFzeW5jKGRhdGEpLnRoZW4oZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ3NhdmVkYXRhJywgZGF0YSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgY2hhbmdlIGRhdGEgaGFuZGxlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNjaGFuZ2VEYXRhSGFuZGxlclxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5EYXRhLkRhdGFNYW5hZ2VyfSBwYXJlbnQgLSBUaGUgcGFyZW50IERhdGEgTWFuYWdlciBpbnN0YW5jZS5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBkYXRhLlxyXG4gICAgICogQHBhcmFtIHthbnl9IHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBkYXRhLlxyXG4gICAgICovXHJcbiAgICBjaGFuZ2VEYXRhSGFuZGxlcjogZnVuY3Rpb24gKHBhcmVudCwga2V5LCB2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5kYXRhTG9ja2VkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGRhdGEgPSB7fTtcclxuXHJcbiAgICAgICAgZGF0YVtrZXldID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIEZCSW5zdGFudC5wbGF5ZXIuc2V0RGF0YUFzeW5jKGRhdGEpLnRoZW4oZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ3NhdmVkYXRhJywgZGF0YSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbCB0aGlzIG1ldGhvZCBmcm9tIHlvdXIgYFNjZW5lLnByZWxvYWRgIGluIG9yZGVyIHRvIHN5bmMgdGhlIGxvYWQgcHJvZ3Jlc3NcclxuICAgICAqIG9mIHRoZSBQaGFzZXIgTG9hZGVyIHdpdGggdGhlIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgbG9hZGVyIGRpc3BsYXksIGkuZS46XHJcbiAgICAgKiBcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIHRoaXMuZmFjZWJvb2suc2hvd0xvYWRQcm9ncmVzcyh0aGlzKTtcclxuICAgICAqIHRoaXMuZmFjZWJvb2sub25jZSgnc3RhcnRnYW1lJywgdGhpcy5zdGFydEdhbWUsIHRoaXMpO1xyXG4gICAgICogYGBgXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jc2hvd0xvYWRQcm9ncmVzc1xyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSBmb3Igd2hpY2ggeW91IHdhbnQgdG8gc2hvdyBsb2FkZXIgcHJvZ3Jlc3MgZm9yLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzaG93TG9hZFByb2dyZXNzOiBmdW5jdGlvbiAoc2NlbmUpXHJcbiAgICB7XHJcbiAgICAgICAgc2NlbmUubG9hZC5vbigncHJvZ3Jlc3MnLCBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaGFzTG9hZGVkKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBGQkluc3RhbnQuc2V0TG9hZGluZ1Byb2dyZXNzKHZhbHVlICogMTAwKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9LCB0aGlzKTtcclxuXHJcbiAgICAgICAgc2NlbmUubG9hZC5vbignY29tcGxldGUnLCBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmhhc0xvYWRlZClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYXNMb2FkZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIEZCSW5zdGFudC5zdGFydEdhbWVBc3luYygpLnRoZW4odGhpcy5nYW1lU3RhcnRlZEhhbmRsZXIuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfSwgdGhpcyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIGdhbWUgaGFzIGZpbmlzaGVkIGxvYWRpbmcsXHJcbiAgICAgKiBpZiB5b3UgdXNlZCB0aGUgYHNob3dMb2FkUHJvZ3Jlc3NgIG1ldGhvZC4gSWYgeW91ciBnYW1lIGRvZXNuJ3QgbmVlZCB0b1xyXG4gICAgICogbG9hZCBhbnkgYXNzZXRzLCBvciB5b3UncmUgbWFuYWdpbmcgdGhlIGxvYWQgeW91cnNlbGYsIHRoZW4gY2FsbCB0aGlzXHJcbiAgICAgKiBtZXRob2QgZGlyZWN0bHkgdG8gc3RhcnQgdGhlIEFQSSBydW5uaW5nLlxyXG4gICAgICogXHJcbiAgICAgKiBXaGVuIHRoZSBBUEkgaGFzIGZpbmlzaGVkIHN0YXJ0aW5nIHRoaXMgcGx1Z2luIHdpbGwgZW1pdCBhIGBzdGFydGdhbWVgIGV2ZW50XHJcbiAgICAgKiB3aGljaCB5b3Ugc2hvdWxkIGxpc3RlbiBmb3IuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jZ2FtZVN0YXJ0ZWRcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqL1xyXG4gICAgZ2FtZVN0YXJ0ZWQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc0xvYWRlZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzTG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIEZCSW5zdGFudC5zdGFydEdhbWVBc3luYygpLnRoZW4odGhpcy5nYW1lU3RhcnRlZEhhbmRsZXIuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2FtZVN0YXJ0ZWRIYW5kbGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBpbnRlcm5hbCBnYW1lU3RhcnRlZCBoYW5kbGVyLlxyXG4gICAgICogXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNnYW1lU3RhcnRlZEhhbmRsZXJcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4yMC4wXHJcbiAgICAgKi9cclxuICAgIGdhbWVTdGFydGVkSGFuZGxlcjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgQVBJcyA9IEZCSW5zdGFudC5nZXRTdXBwb3J0ZWRBUElzKCk7XHJcblxyXG4gICAgICAgIHZhciBzdXBwb3J0ZWQgPSB7fTtcclxuXHJcbiAgICAgICAgdmFyIGRvdFRvVXBwZXIgPSBmdW5jdGlvbiAobWF0Y2gpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hbMV0udG9VcHBlckNhc2UoKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBBUElzLmZvckVhY2goZnVuY3Rpb24gKGFwaSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGFwaSA9IGFwaS5yZXBsYWNlKC9cXC4uL2csIGRvdFRvVXBwZXIpO1xyXG5cclxuICAgICAgICAgICAgc3VwcG9ydGVkW2FwaV0gPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnN1cHBvcnRlZEFQSXMgPSBzdXBwb3J0ZWQ7XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0SUQoKTtcclxuICAgICAgICB0aGlzLmdldFR5cGUoKTtcclxuICAgICAgICB0aGlzLmdldExvY2FsZSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0UGxhdGZvcm0oKTtcclxuICAgICAgICB0aGlzLmdldFNES1ZlcnNpb24oKTtcclxuXHJcbiAgICAgICAgdGhpcy5nZXRQbGF5ZXJJRCgpO1xyXG4gICAgICAgIHRoaXMuZ2V0UGxheWVyTmFtZSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0UGxheWVyUGhvdG9VUkwoKTtcclxuXHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgRkJJbnN0YW50Lm9uUGF1c2UoZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ3BhdXNlJyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIEZCSW5zdGFudC5nZXRFbnRyeVBvaW50QXN5bmMoKS50aGVuKGZ1bmN0aW9uIChlbnRyeXBvaW50KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW50cnlQb2ludCA9IGVudHJ5cG9pbnQ7XHJcbiAgICAgICAgICAgIF90aGlzLmVudHJ5UG9pbnREYXRhID0gRkJJbnN0YW50LmdldEVudHJ5UG9pbnREYXRhKCk7XHJcblxyXG4gICAgICAgICAgICBfdGhpcy5lbWl0KCdzdGFydGdhbWUnKTtcclxuXHJcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vICBGYWNlYm9vay5jb20gYW5kIEFuZHJvaWQgNiBvbmx5XHJcbiAgICAgICAgaWYgKHRoaXMuc3VwcG9ydGVkQVBJcy5wYXltZW50c1B1cmNoYXNlQXN5bmMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBGQkluc3RhbnQucGF5bWVudHMub25SZWFkeShmdW5jdGlvbiAoKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5wYXltZW50c1JlYWR5ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3MgdG8gc2VlIGlmIGEgZ2l2ZW4gRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBBUEkgaXMgYXZhaWxhYmxlIG9yIG5vdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNjaGVja0FQSVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpIC0gVGhlIEFQSSB0byBjaGVjayBmb3IsIGkuZS4gYHBsYXllci5nZXRJRGAuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgQVBJIGlzIHN1cHBvcnRlZCwgb3RoZXJ3aXNlIGBmYWxzZWAuXHJcbiAgICAgKi9cclxuICAgIGNoZWNrQVBJOiBmdW5jdGlvbiAoYXBpKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5zdXBwb3J0ZWRBUElzW2FwaV0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGN1cnJlbnQgZ2FtZSBjb250ZXh0LiBUaGlzIHJlcHJlc2VudHMgYSBzcGVjaWZpYyBjb250ZXh0XHJcbiAgICAgKiB0aGF0IHRoZSBnYW1lIGlzIGJlaW5nIHBsYXllZCBpbiAoZm9yIGV4YW1wbGUsIGEgcGFydGljdWxhciBtZXNzZW5nZXIgY29udmVyc2F0aW9uIG9yIGZhY2Vib29rIHBvc3QpLlxyXG4gICAgICogVGhlIGlkZW50aWZpZXIgd2lsbCBiZSBudWxsIGlmIGdhbWUgaXMgYmVpbmcgcGxheWVkIGluIGEgc29sbyBjb250ZXh0LlxyXG4gICAgICogXHJcbiAgICAgKiBJdCBpcyBvbmx5IHBvcHVsYXRlZCBpZiBgY29udGV4dEdldElEYCBpcyBpbiB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgQVBJcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNnZXRJRFxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBjb250ZXh0IElELlxyXG4gICAgICovXHJcbiAgICBnZXRJRDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuY29udGV4dElEICYmIHRoaXMuc3VwcG9ydGVkQVBJcy5jb250ZXh0R2V0SUQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHRJRCA9IEZCSW5zdGFudC5jb250ZXh0LmdldElEKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0SUQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBjb250ZXh0IGluIHdoaWNoIHlvdXIgZ2FtZSBpcyBydW5uaW5nLiBUaGlzIGNhbiBiZSBlaXRoZXIgYG51bGxgIG9yIG9uZSBvZjpcclxuICAgICAqIFxyXG4gICAgICogYFBPU1RgIC0gVGhlIGdhbWUgaXMgcnVubmluZyBpbnNpZGUgb2YgYSBGYWNlYm9vayBwb3N0LlxyXG4gICAgICogYFRIUkVBRGAgLSBUaGUgZ2FtZSBpcyBydW5uaW5nIGluc2lkZSBhIEZhY2Vib29rIE1lc3NlbmdlciB0aHJlYWQuXHJcbiAgICAgKiBgR1JPVVBgIC0gVGhlIGdhbWUgaXMgcnVubmluZyBpbnNpZGUgYSBGYWNlYm9vayBHcm91cC5cclxuICAgICAqIGBTT0xPYCAtIFRoaXMgaXMgdGhlIGRlZmF1bHQgY29udGV4dCwgdGhlIHBsYXllciBpcyB0aGUgb25seSBwYXJ0aWNpcGFudC5cclxuICAgICAqIFxyXG4gICAgICogSXQgaXMgb25seSBwb3B1bGF0ZWQgaWYgYGNvbnRleHRHZXRUeXBlYCBpcyBpbiB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgQVBJcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNnZXRUeXBlXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4gez9zdHJpbmd9IFRoZSBjb250ZXh0IHR5cGUuXHJcbiAgICAgKi9cclxuICAgIGdldFR5cGU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvbnRleHRUeXBlICYmIHRoaXMuc3VwcG9ydGVkQVBJcy5jb250ZXh0R2V0VHlwZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dFR5cGUgPSBGQkluc3RhbnQuY29udGV4dC5nZXRUeXBlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0VHlwZTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGxvY2FsZS5cclxuICAgICAqIFNlZSBodHRwczovL29yaWdpbmNhY2hlLmZhY2Vib29rLmNvbS9kZXZlbG9wZXJzL3Jlc291cmNlcy8/aWQ9RmFjZWJvb2tMb2NhbGVzLnhtbCBmb3IgYSBjb21wbGV0ZSBsaXN0IG9mIHN1cHBvcnRlZCBsb2NhbGUgdmFsdWVzLlxyXG4gICAgICogVXNlIHRoaXMgdG8gZGV0ZXJtaW5lIHdoYXQgbGFuZ3VhZ2VzIHRoZSBjdXJyZW50IGdhbWUgc2hvdWxkIGJlIGxvY2FsaXplZCB3aXRoLlxyXG4gICAgICogSXQgaXMgb25seSBwb3B1bGF0ZWQgaWYgYGdldExvY2FsZWAgaXMgaW4gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIEFQSXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jZ2V0TG9jYWxlXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4gez9zdHJpbmd9IFRoZSBjdXJyZW50IGxvY2FsZS5cclxuICAgICAqL1xyXG4gICAgZ2V0TG9jYWxlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5sb2NhbGUgJiYgdGhpcy5zdXBwb3J0ZWRBUElzLmdldExvY2FsZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYWxlID0gRkJJbnN0YW50LmdldExvY2FsZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIHBsYXRmb3JtIG9uIHdoaWNoIHRoZSBnYW1lIGlzIGN1cnJlbnRseSBydW5uaW5nLCBpLmUuIGBJT1NgLlxyXG4gICAgICogSXQgaXMgb25seSBwb3B1bGF0ZWQgaWYgYGdldFBsYXRmb3JtYCBpcyBpbiB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgQVBJcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNnZXRQbGF0Zm9ybVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHs/c3RyaW5nfSBUaGUgY3VycmVudCBwbGF0Zm9ybS5cclxuICAgICAqL1xyXG4gICAgZ2V0UGxhdGZvcm06IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnBsYXRmb3JtICYmIHRoaXMuc3VwcG9ydGVkQVBJcy5nZXRQbGF0Zm9ybSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucGxhdGZvcm0gPSBGQkluc3RhbnQuZ2V0UGxhdGZvcm0oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnBsYXRmb3JtO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBTREsgdmVyc2lvbiBiZWluZyB1c2VkLlxyXG4gICAgICogSXQgaXMgb25seSBwb3B1bGF0ZWQgaWYgYGdldFNES1ZlcnNpb25gIGlzIGluIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBBUElzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI2dldFNES1ZlcnNpb25cclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7P3N0cmluZ30gVGhlIHNkayB2ZXJzaW9uLlxyXG4gICAgICovXHJcbiAgICBnZXRTREtWZXJzaW9uOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy52ZXJzaW9uICYmIHRoaXMuc3VwcG9ydGVkQVBJcy5nZXRTREtWZXJzaW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy52ZXJzaW9uID0gRkJJbnN0YW50LmdldFNES1ZlcnNpb24oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnZlcnNpb247XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgaWQgb2YgdGhlIHBsYXllci4gVGhpcyBpcyBhIHN0cmluZyBiYXNlZCBJRCwgdGhlIHNhbWUgYXMgYEZCSW5zdGFudC5wbGF5ZXIuZ2V0SUQoKWAuXHJcbiAgICAgKiBJdCBpcyBvbmx5IHBvcHVsYXRlZCBpZiBgcGxheWVyR2V0SURgIGlzIGluIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBBUElzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI2dldFBsYXllcklEXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4gez9zdHJpbmd9IFRoZSBwbGF5ZXIgSUQuXHJcbiAgICAgKi9cclxuICAgIGdldFBsYXllcklEOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5wbGF5ZXJJRCAmJiB0aGlzLnN1cHBvcnRlZEFQSXMucGxheWVyR2V0SUQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXllcklEID0gRkJJbnN0YW50LnBsYXllci5nZXRJRCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheWVySUQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgcGxheWVyJ3MgbG9jYWxpemVkIGRpc3BsYXkgbmFtZS5cclxuICAgICAqIEl0IGlzIG9ubHkgcG9wdWxhdGVkIGlmIGBwbGF5ZXJHZXROYW1lYCBpcyBpbiB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgQVBJcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNnZXRQbGF5ZXJOYW1lXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4gez9zdHJpbmd9IFRoZSBwbGF5ZXIncyBsb2NhbGl6ZWQgZGlzcGxheSBuYW1lLlxyXG4gICAgICovXHJcbiAgICBnZXRQbGF5ZXJOYW1lOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5wbGF5ZXJOYW1lICYmIHRoaXMuc3VwcG9ydGVkQVBJcy5wbGF5ZXJHZXROYW1lKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wbGF5ZXJOYW1lID0gRkJJbnN0YW50LnBsYXllci5nZXROYW1lKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wbGF5ZXJOYW1lO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIHVybCB0byB0aGUgcGxheWVyJ3MgcHVibGljIHByb2ZpbGUgcGhvdG8uIFRoZSBwaG90byB3aWxsIGFsd2F5cyBiZSBhIHNxdWFyZSwgYW5kIHdpdGggZGltZW5zaW9uc1xyXG4gICAgICogb2YgYXQgbGVhc3QgMjAweDIwMC4gV2hlbiByZW5kZXJpbmcgaXQgaW4gdGhlIGdhbWUsIHRoZSBleGFjdCBkaW1lbnNpb25zIHNob3VsZCBuZXZlciBiZSBhc3N1bWVkIHRvIGJlIGNvbnN0YW50LlxyXG4gICAgICogSXQncyByZWNvbW1lbmRlZCB0byBhbHdheXMgc2NhbGUgdGhlIGltYWdlIHRvIGEgZGVzaXJlZCBzaXplIGJlZm9yZSByZW5kZXJpbmcuXHJcbiAgICAgKiBJdCBpcyBvbmx5IHBvcHVsYXRlZCBpZiBgcGxheWVyR2V0UGhvdG9gIGlzIGluIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBBUElzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI2dldFBsYXllclBob3RvVVJMXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4gez9zdHJpbmd9IFRoZSBwbGF5ZXIncyBwaG90byB1cmwuXHJcbiAgICAgKi9cclxuICAgIGdldFBsYXllclBob3RvVVJMOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5wbGF5ZXJQaG90b1VSTCAmJiB0aGlzLnN1cHBvcnRlZEFQSXMucGxheWVyR2V0UGhvdG8pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnBsYXllclBob3RvVVJMID0gRkJJbnN0YW50LnBsYXllci5nZXRQaG90bygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGxheWVyUGhvdG9VUkw7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTG9hZCB0aGUgcGxheWVyJ3MgcGhvdG8gYW5kIHN0b3JlIGl0IGluIHRoZSBUZXh0dXJlIE1hbmFnZXIsIHJlYWR5IGZvciB1c2UgaW4tZ2FtZS5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyBtZXRob2Qgd29ya3MgYnkgdXNpbmcgYSBTY2VuZSBMb2FkZXIgaW5zdGFuY2UgYW5kIHRoZW4gYXNraW5nIHRoZSBMb2FkZXIgdG9cclxuICAgICAqIHJldHJpZXZlIHRoZSBpbWFnZS5cclxuICAgICAqIFxyXG4gICAgICogV2hlbiBjb21wbGV0ZSB0aGUgcGx1Z2luIHdpbGwgZW1pdCBhIGBwaG90b2NvbXBsZXRlYCBldmVudCwgYWxvbmcgd2l0aCB0aGUga2V5IG9mIHRoZSBwaG90by5cclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogdGhpcy5mYWNlYm9vay5sb2FkUGxheWVyUGhvdG8odGhpcywgJ3BsYXllcicpLm9uY2UoJ3Bob3RvY29tcGxldGUnLCBmdW5jdGlvbiAoa2V5KSB7XHJcbiAgICAgKiAgIHRoaXMuYWRkLmltYWdlKHgsIHksICdwbGF5ZXInKTtcclxuICAgICAqIH0sIHRoaXMpO1xyXG4gICAgICogYGBgXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jbG9hZFBsYXllclBob3RvXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSB0aGF0IHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIGxvYWRpbmcgdGhpcyBwaG90by5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IHRvIHVzZSB3aGVuIHN0b3JpbmcgdGhlIHBob3RvIGluIHRoZSBUZXh0dXJlIE1hbmFnZXIuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBQbHVnaW4gaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGxvYWRQbGF5ZXJQaG90bzogZnVuY3Rpb24gKHNjZW5lLCBrZXkpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMucGxheWVyUGhvdG9VUkwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzY2VuZS5sb2FkLnNldENPUlMoJ2Fub255bW91cycpO1xyXG4gICAgXHJcbiAgICAgICAgICAgIHNjZW5lLmxvYWQuaW1hZ2Uoa2V5LCB0aGlzLnBsYXllclBob3RvVVJMKTtcclxuICAgIFxyXG4gICAgICAgICAgICBzY2VuZS5sb2FkLm9uY2UoJ2ZpbGVjb21wbGV0ZS1pbWFnZS0nICsga2V5LCBmdW5jdGlvbiAoKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXQoJ3Bob3RvY29tcGxldGUnLCBrZXkpO1xyXG5cclxuICAgICAgICAgICAgfSwgdGhpcyk7XHJcbiAgICBcclxuICAgICAgICAgICAgc2NlbmUubG9hZC5zdGFydCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IHBsYXllciBjYW4gc3Vic2NyaWJlIHRvIHRoZSBnYW1lIGJvdC5cclxuICAgICAqIFxyXG4gICAgICogSXQgbWFrZXMgYW4gYXN5bmMgY2FsbCB0byB0aGUgQVBJLCBzbyB0aGUgcmVzdWx0IGlzbid0IGF2YWlsYWJsZSBpbW1lZGlhdGVseS5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhleSBjYW4gc3Vic2NyaWJlLCB0aGUgYHBsYXllckNhblN1YnNjcmliZUJvdGAgcHJvcGVydHkgaXMgc2V0IHRvIGB0cnVlYFxyXG4gICAgICogYW5kIHRoaXMgcGx1Z2luIHdpbGwgZW1pdCB0aGUgYGNhbnN1YnNjcmliZWJvdGAgZXZlbnQuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZXkgY2Fubm90LCBpLmUuIGl0J3Mgbm90IGluIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBBUElzLCBvciB0aGUgcmVxdWVzdFxyXG4gICAgICogd2FzIHJlamVjdGVkLCBpdCB3aWxsIGVtaXQgYSBgY2Fuc3Vic2NyaWJlYm90ZmFpbGAgZXZlbnQgaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNjYW5TdWJzY3JpYmVCb3RcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbiBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgY2FuU3Vic2NyaWJlQm90OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLnN1cHBvcnRlZEFQSXMucGxheWVyQ2FuU3Vic2NyaWJlQm90QXN5bmMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICAgICAgRkJJbnN0YW50LnBsYXllci5jYW5TdWJzY3JpYmVCb3RBc3luYygpLnRoZW4oZnVuY3Rpb24gKClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMucGxheWVyQ2FuU3Vic2NyaWJlQm90ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdjYW5zdWJzY3JpYmVib3QnKTtcclxuXHJcbiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdjYW5zdWJzY3JpYmVib3RmYWlsJywgZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmVtaXQoJ2NhbnN1YnNjcmliZWJvdGZhaWwnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmliZXMgdGhlIGN1cnJlbnQgcGxheWVyIHRvIHRoZSBnYW1lIGJvdC5cclxuICAgICAqIFxyXG4gICAgICogSXQgbWFrZXMgYW4gYXN5bmMgY2FsbCB0byB0aGUgQVBJLCBzbyB0aGUgcmVzdWx0IGlzbid0IGF2YWlsYWJsZSBpbW1lZGlhdGVseS5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhleSBhcmUgc3VjY2Vzc2Z1bGx5IHN1YnNjcmliZWQgdGhpcyBwbHVnaW4gd2lsbCBlbWl0IHRoZSBgc3Vic2NyaWJlYm90YCBldmVudC5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhleSBjYW5ub3QsIGkuZS4gaXQncyBub3QgaW4gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIEFQSXMsIG9yIHRoZSByZXF1ZXN0XHJcbiAgICAgKiB3YXMgcmVqZWN0ZWQsIGl0IHdpbGwgZW1pdCBhIGBzdWJzY3JpYmVib3RmYWlsYCBldmVudCBpbnN0ZWFkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI3N1YnNjcmliZUJvdFxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzdWJzY3JpYmVCb3Q6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMucGxheWVyQ2FuU3Vic2NyaWJlQm90KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgICAgIEZCSW5zdGFudC5wbGF5ZXIuc3Vic2NyaWJlQm90QXN5bmMoKS50aGVuKGZ1bmN0aW9uICgpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIF90aGlzLmVtaXQoJ3N1YnNjcmliZWJvdCcpO1xyXG5cclxuICAgICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIF90aGlzLmVtaXQoJ3N1YnNjcmliZWJvdGZhaWwnLCBlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZW1pdCgnc3Vic2NyaWJlYm90ZmFpbCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgYXNzb2NpYXRlZCBkYXRhIGZyb20gdGhlIHBsYXllciBiYXNlZCBvbiB0aGUgZ2l2ZW4ga2V5LCBvciBhcnJheSBvZiBrZXlzLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgZGF0YSBpcyByZXF1ZXN0ZWQgaW4gYW4gYXN5bmMgY2FsbCwgc28gdGhlIHJlc3VsdCBpc24ndCBhdmFpbGFibGUgaW1tZWRpYXRlbHkuXHJcbiAgICAgKiBcclxuICAgICAqIFdoZW4gdGhlIGNhbGwgY29tcGxldGVzIHRoZSBkYXRhIGlzIHNldCBpbnRvIHRoaXMgcGx1Z2lucyBEYXRhIE1hbmFnZXIgYW5kIHRoZVxyXG4gICAgICogYGdldGRhdGFgIGV2ZW50IHdpbGwgYmUgZW1pdHRlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNnZXREYXRhXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xzdHJpbmdbXSl9IGtleXMgLSBUaGUga2V5L3Mgb2YgdGhlIGRhdGEgdG8gcmV0cmlldmUuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBQbHVnaW4gaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGdldERhdGE6IGZ1bmN0aW9uIChrZXlzKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5jaGVja0FQSSgncGxheWVyR2V0RGF0YUFzeW5jJykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShrZXlzKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGtleXMgPSBbIGtleXMgXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIEZCSW5zdGFudC5wbGF5ZXIuZ2V0RGF0YUFzeW5jKGtleXMpLnRoZW4oZnVuY3Rpb24gKGRhdGEpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBfdGhpcy5kYXRhTG9ja2VkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBkYXRhKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5kYXRhLnNldChrZXksIGRhdGFba2V5XSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIF90aGlzLmRhdGFMb2NrZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ2dldGRhdGEnLCBkYXRhKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IGRhdGEgdG8gYmUgc2F2ZWQgdG8gdGhlIGRlc2lnbmF0ZWQgY2xvdWQgc3RvcmFnZSBvZiB0aGUgY3VycmVudCBwbGF5ZXIuIFRoZSBnYW1lIGNhbiBzdG9yZSB1cCB0byAxTUIgb2YgZGF0YSBmb3IgZWFjaCB1bmlxdWUgcGxheWVyLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgZGF0YSBzYXZlIGlzIHJlcXVlc3RlZCBpbiBhbiBhc3luYyBjYWxsLCBzbyB0aGUgcmVzdWx0IGlzbid0IGF2YWlsYWJsZSBpbW1lZGlhdGVseS5cclxuICAgICAqIFxyXG4gICAgICogRGF0YSBtYW5hZ2VkIHZpYSB0aGlzIHBsdWdpbnMgRGF0YSBNYW5hZ2VyIGluc3RhbmNlIGlzIGF1dG9tYXRpY2FsbHkgc3luY2VkIHdpdGggRmFjZWJvb2suIEhvd2V2ZXIsIHlvdSBjYW4gY2FsbCB0aGlzXHJcbiAgICAgKiBtZXRob2QgZGlyZWN0bHkgaWYgeW91IG5lZWQgdG8gcmVwbGFjZSB0aGUgZGF0YSBvYmplY3QgZGlyZWN0bHkuXHJcbiAgICAgKiBcclxuICAgICAqIFdoZW4gdGhlIEFQSXMgYHNldERhdGFBc3luY2AgY2FsbCByZXNvbHZlcyBpdCB3aWxsIGVtaXQgdGhlIGBzYXZlZGF0YWAgZXZlbnQgZnJvbSB0aGlzIHBsdWdpbi4gSWYgdGhlIGNhbGwgZmFpbHMgZm9yIHNvbWVcclxuICAgICAqIHJlYXNvbiBpdCB3aWxsIGVtaXQgYHNhdmVkYXRhZmFpbGAgaW5zdGVhZC5cclxuICAgICAqIFxyXG4gICAgICogVGhlIGNhbGwgcmVzb2x2aW5nIGRvZXMgbm90IG5lY2Vzc2FyaWx5IG1lYW4gdGhhdCB0aGUgaW5wdXQgaGFzIGFscmVhZHkgYmVlbiBwZXJzaXN0ZWQuIFJhdGhlciwgaXQgbWVhbnMgdGhhdCB0aGUgZGF0YSB3YXMgdmFsaWQgYW5kXHJcbiAgICAgKiBoYXMgYmVlbiBzY2hlZHVsZWQgdG8gYmUgc2F2ZWQuIEl0IGFsc28gZ3VhcmFudGVlcyB0aGF0IGFsbCB2YWx1ZXMgdGhhdCB3ZXJlIHNldCBhcmUgbm93IGF2YWlsYWJsZSBpbiBgZ2V0RGF0YWAuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jc2F2ZURhdGFcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGRhdGEgLSBBbiBvYmplY3QgY29udGFpbmluZyBhIHNldCBvZiBrZXktdmFsdWUgcGFpcnMgdGhhdCBzaG91bGQgYmUgcGVyc2lzdGVkIHRvIGNsb3VkIHN0b3JhZ2UuXHJcbiAgICAgKiBUaGUgb2JqZWN0IG11c3QgY29udGFpbiBvbmx5IHNlcmlhbGl6YWJsZSB2YWx1ZXMgLSBhbnkgbm9uLXNlcmlhbGl6YWJsZSB2YWx1ZXMgd2lsbCBjYXVzZSB0aGUgZW50aXJlIG1vZGlmaWNhdGlvbiB0byBiZSByZWplY3RlZC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbiBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2F2ZURhdGE6IGZ1bmN0aW9uIChkYXRhKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5jaGVja0FQSSgncGxheWVyU2V0RGF0YUFzeW5jJykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIEZCSW5zdGFudC5wbGF5ZXIuc2V0RGF0YUFzeW5jKGRhdGEpLnRoZW4oZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ3NhdmVkYXRhJywgZGF0YSk7XHJcblxyXG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgnc2F2ZWRhdGFmYWlsJywgZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEltbWVkaWF0ZWx5IGZsdXNoZXMgYW55IGNoYW5nZXMgdG8gdGhlIHBsYXllciBkYXRhIHRvIHRoZSBkZXNpZ25hdGVkIGNsb3VkIHN0b3JhZ2UuXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGV4cGVuc2l2ZSwgYW5kIHNob3VsZCBwcmltYXJpbHkgYmUgdXNlZCBmb3IgY3JpdGljYWwgY2hhbmdlcyB3aGVyZSBwZXJzaXN0ZW5jZSBuZWVkcyB0byBiZSBpbW1lZGlhdGVcclxuICAgICAqIGFuZCBrbm93biBieSB0aGUgZ2FtZS4gTm9uLWNyaXRpY2FsIGNoYW5nZXMgc2hvdWxkIHJlbHkgb24gdGhlIHBsYXRmb3JtIHRvIHBlcnNpc3QgdGhlbSBpbiB0aGUgYmFja2dyb3VuZC5cclxuICAgICAqIE5PVEU6IENhbGxzIHRvIHBsYXllci5zZXREYXRhQXN5bmMgd2lsbCBiZSByZWplY3RlZCB3aGlsZSB0aGlzIGZ1bmN0aW9uJ3MgcmVzdWx0IGlzIHBlbmRpbmcuXHJcbiAgICAgKiBcclxuICAgICAqIERhdGEgbWFuYWdlZCB2aWEgdGhpcyBwbHVnaW5zIERhdGEgTWFuYWdlciBpbnN0YW5jZSBpcyBhdXRvbWF0aWNhbGx5IHN5bmNlZCB3aXRoIEZhY2Vib29rLiBIb3dldmVyLCB5b3UgY2FuIGNhbGwgdGhpc1xyXG4gICAgICogbWV0aG9kIGRpcmVjdGx5IGlmIHlvdSBuZWVkIHRvIGZsdXNoIHRoZSBkYXRhIGRpcmVjdGx5LlxyXG4gICAgICogXHJcbiAgICAgKiBXaGVuIHRoZSBBUElzIGBmbHVzaERhdGFBc3luY2AgY2FsbCByZXNvbHZlcyBpdCB3aWxsIGVtaXQgdGhlIGBmbHVzaGRhdGFgIGV2ZW50IGZyb20gdGhpcyBwbHVnaW4uIElmIHRoZSBjYWxsIGZhaWxzIGZvciBzb21lXHJcbiAgICAgKiByZWFzb24gaXQgd2lsbCBlbWl0IGBmbHVzaGRhdGFmYWlsYCBpbnN0ZWFkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI2ZsdXNoRGF0YVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBmbHVzaERhdGE6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNrQVBJKCdwbGF5ZXJGbHVzaERhdGFBc3luYycpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICBGQkluc3RhbnQucGxheWVyLmZsdXNoRGF0YUFzeW5jKCkudGhlbihmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgnZmx1c2hkYXRhJyk7XHJcblxyXG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgnZmx1c2hkYXRhZmFpbCcsIGUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZSBzdGF0cyBmcm9tIHRoZSBkZXNpZ25hdGVkIGNsb3VkIHN0b3JhZ2Ugb2YgdGhlIGN1cnJlbnQgcGxheWVyLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgZGF0YSBpcyByZXF1ZXN0ZWQgaW4gYW4gYXN5bmMgY2FsbCwgc28gdGhlIHJlc3VsdCBpc24ndCBhdmFpbGFibGUgaW1tZWRpYXRlbHkuXHJcbiAgICAgKiBcclxuICAgICAqIFdoZW4gdGhlIGNhbGwgY29tcGxldGVzIHRoZSBgZ2V0c3RhdHNgIGV2ZW50IHdpbGwgYmUgZW1pdHRlZCBhbG9uZyB3aXRoIHRoZSBkYXRhIG9iamVjdCByZXR1cm5lZC5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhlIGNhbGwgZmFpbHMsIGkuZS4gaXQncyBub3QgaW4gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIEFQSXMsIG9yIHRoZSByZXF1ZXN0IHdhcyByZWplY3RlZCxcclxuICAgICAqIGl0IHdpbGwgZW1pdCBhIGBnZXRzdGF0c2ZhaWxgIGV2ZW50IGluc3RlYWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jZ2V0U3RhdHNcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gW2tleXNdIC0gQW4gb3B0aW9uYWwgYXJyYXkgb2YgdW5pcXVlIGtleXMgdG8gcmV0cmlldmUgc3RhdHMgZm9yLiBJZiB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGhvdXQgaXQsIGl0IHdpbGwgZmV0Y2ggYWxsIHN0YXRzLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBnZXRTdGF0czogZnVuY3Rpb24gKGtleXMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNrQVBJKCdwbGF5ZXJHZXRTdGF0c0FzeW5jJykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIEZCSW5zdGFudC5wbGF5ZXIuZ2V0U3RhdHNBc3luYyhrZXlzKS50aGVuKGZ1bmN0aW9uIChkYXRhKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgnZ2V0c3RhdHMnLCBkYXRhKTtcclxuXHJcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBfdGhpcy5lbWl0KCdnZXRzdGF0c2ZhaWwnLCBlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2F2ZSB0aGUgc3RhdHMgb2YgdGhlIGN1cnJlbnQgcGxheWVyIHRvIHRoZSBkZXNpZ25hdGVkIGNsb3VkIHN0b3JhZ2UuXHJcbiAgICAgKiBcclxuICAgICAqIFN0YXRzIGluIHRoZSBGYWNlYm9vayBJbnN0YW50IEdhbWVzIEFQSSBhcmUgcHVyZWx5IG51bWVyaWNhbCB2YWx1ZXMgcGFpcmVkIHdpdGggYSBzdHJpbmctYmFzZWQga2V5LiBPbmx5IG51bWJlcnMgY2FuIGJlIHNhdmVkIGFzIHN0YXRzLFxyXG4gICAgICogYWxsIG90aGVyIGRhdGEgdHlwZXMgd2lsbCBiZSBpZ25vcmVkLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgZGF0YSBpcyByZXF1ZXN0ZWQgaW4gYW4gYXN5bmMgY2FsbCwgc28gdGhlIHJlc3VsdCBpc24ndCBhdmFpbGFibGUgaW1tZWRpYXRlbHkuXHJcbiAgICAgKiBcclxuICAgICAqIFdoZW4gdGhlIGNhbGwgY29tcGxldGVzIHRoZSBgc2F2ZXN0YXRzYCBldmVudCB3aWxsIGJlIGVtaXR0ZWQgYWxvbmcgd2l0aCB0aGUgZGF0YSBvYmplY3QgcmV0dXJuZWQuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZSBjYWxsIGZhaWxzLCBpLmUuIGl0J3Mgbm90IGluIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBBUElzLCBvciB0aGUgcmVxdWVzdCB3YXMgcmVqZWN0ZWQsXHJcbiAgICAgKiBpdCB3aWxsIGVtaXQgYSBgc2F2ZXN0YXRzZmFpbGAgZXZlbnQgaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNzYXZlU3RhdHNcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGRhdGEgLSBBbiBvYmplY3QgY29udGFpbmluZyBhIHNldCBvZiBrZXktdmFsdWUgcGFpcnMgdGhhdCBzaG91bGQgYmUgcGVyc2lzdGVkIHRvIGNsb3VkIHN0b3JhZ2UgYXMgc3RhdHMuIE5vdGUgdGhhdCBvbmx5IG51bWVyaWNhbCB2YWx1ZXMgYXJlIHN0b3JlZC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbiBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2F2ZVN0YXRzOiBmdW5jdGlvbiAoZGF0YSlcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tBUEkoJ3BsYXllclNldFN0YXRzQXN5bmMnKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIG91dHB1dCA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gZGF0YSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZGF0YVtrZXldID09PSAnbnVtYmVyJylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgb3V0cHV0W2tleV0gPSBkYXRhW2tleV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIEZCSW5zdGFudC5wbGF5ZXIuc2V0U3RhdHNBc3luYyhvdXRwdXQpLnRoZW4oZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ3NhdmVzdGF0cycsIG91dHB1dCk7XHJcblxyXG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgnc2F2ZXN0YXRzZmFpbCcsIGUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmNyZW1lbnQgdGhlIHN0YXRzIG9mIHRoZSBjdXJyZW50IHBsYXllciBhbmQgc2F2ZSB0aGVtIHRvIHRoZSBkZXNpZ25hdGVkIGNsb3VkIHN0b3JhZ2UuXHJcbiAgICAgKiBcclxuICAgICAqIFN0YXRzIGluIHRoZSBGYWNlYm9vayBJbnN0YW50IEdhbWVzIEFQSSBhcmUgcHVyZWx5IG51bWVyaWNhbCB2YWx1ZXMgcGFpcmVkIHdpdGggYSBzdHJpbmctYmFzZWQga2V5LiBPbmx5IG51bWJlcnMgY2FuIGJlIHNhdmVkIGFzIHN0YXRzLFxyXG4gICAgICogYWxsIG90aGVyIGRhdGEgdHlwZXMgd2lsbCBiZSBpZ25vcmVkLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgZGF0YSBvYmplY3QgcHJvdmlkZWQgZm9yIHRoaXMgY2FsbCBzaG91bGQgY29udGFpbiBvZmZzZXRzIGZvciBob3cgbXVjaCB0byBtb2RpZnkgdGhlIHN0YXRzIGJ5OlxyXG4gICAgICogXHJcbiAgICAgKiBgYGBqYXZhc2NyaXB0XHJcbiAgICAgKiB0aGlzLmZhY2Vib29rLmluY1N0YXRzKHtcclxuICAgICAqICAgICBsZXZlbDogMSxcclxuICAgICAqICAgICB6b21iaWVzU2xhaW46IDE3LFxyXG4gICAgICogICAgIHJhbms6IC0xXHJcbiAgICAgKiB9KTtcclxuICAgICAqIGBgYFxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgZGF0YSBpcyByZXF1ZXN0ZWQgaW4gYW4gYXN5bmMgY2FsbCwgc28gdGhlIHJlc3VsdCBpc24ndCBhdmFpbGFibGUgaW1tZWRpYXRlbHkuXHJcbiAgICAgKiBcclxuICAgICAqIFdoZW4gdGhlIGNhbGwgY29tcGxldGVzIHRoZSBgaW5jc3RhdHNgIGV2ZW50IHdpbGwgYmUgZW1pdHRlZCBhbG9uZyB3aXRoIHRoZSBkYXRhIG9iamVjdCByZXR1cm5lZC5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhlIGNhbGwgZmFpbHMsIGkuZS4gaXQncyBub3QgaW4gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIEFQSXMsIG9yIHRoZSByZXF1ZXN0IHdhcyByZWplY3RlZCxcclxuICAgICAqIGl0IHdpbGwgZW1pdCBhIGBpbmNzdGF0c2ZhaWxgIGV2ZW50IGluc3RlYWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jaW5jU3RhdHNcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGRhdGEgLSBBbiBvYmplY3QgY29udGFpbmluZyBhIHNldCBvZiBrZXktdmFsdWUgcGFpcnMgaW5kaWNhdGluZyBob3cgbXVjaCB0byBpbmNyZW1lbnQgZWFjaCBzdGF0IGluIGNsb3VkIHN0b3JhZ2UuIE5vdGUgdGhhdCBvbmx5IG51bWVyaWNhbCB2YWx1ZXMgYXJlIHByb2Nlc3NlZC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbiBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgaW5jU3RhdHM6IGZ1bmN0aW9uIChkYXRhKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5jaGVja0FQSSgncGxheWVySW5jcmVtZW50U3RhdHNBc3luYycpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgb3V0cHV0ID0ge307XHJcblxyXG4gICAgICAgIGZvciAodmFyIGtleSBpbiBkYXRhKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhW2tleV0gPT09ICdudW1iZXInKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBvdXRwdXRba2V5XSA9IGRhdGFba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgRkJJbnN0YW50LnBsYXllci5pbmNyZW1lbnRTdGF0c0FzeW5jKG91dHB1dCkudGhlbihmdW5jdGlvbiAoc3RhdHMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBfdGhpcy5lbWl0KCdpbmNzdGF0cycsIHN0YXRzKTtcclxuXHJcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBfdGhpcy5lbWl0KCdpbmNzdGF0c2ZhaWwnLCBlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGluZGl2aWR1YWwgZ2FtZXBsYXkgc2Vzc2lvbiBmb3IgdGhlIGN1cnJlbnQgY29udGV4dC5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBnYW1lIHdvdWxkIGxpa2UgdG8gdXBkYXRlIHRoZSBjdXJyZW50IHNlc3Npb24gZGF0YS5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyBzZXNzaW9uIGRhdGEgbWF5IGJlIHVzZWQgdG8gcG9wdWxhdGUgYSB2YXJpZXR5IG9mIHBheWxvYWRzLCBzdWNoIGFzIGdhbWUgcGxheSB3ZWJob29rcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNzYXZlU2Vzc2lvblxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gZGF0YSAtIEFuIGFyYml0cmFyeSBkYXRhIG9iamVjdCwgd2hpY2ggbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMTAwMCBjaGFyYWN0ZXJzIHdoZW4gc3RyaW5naWZpZWQuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBQbHVnaW4gaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNhdmVTZXNzaW9uOiBmdW5jdGlvbiAoZGF0YSlcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tBUEkoJ3NldFNlc3Npb25EYXRhJykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciB0ZXN0ID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XHJcblxyXG4gICAgICAgIGlmICh0ZXN0Lmxlbmd0aCA8PSAxMDAwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgRkJJbnN0YW50LnNldFNlc3Npb25EYXRhKGRhdGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1Nlc3Npb24gZGF0YSB0b28gbG9uZy4gTWF4IDEwMDAgY2hhcnMuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGludm9rZXMgYSBkaWFsb2cgdG8gbGV0IHRoZSB1c2VyIHNoYXJlIHNwZWNpZmllZCBjb250ZW50LCBlaXRoZXIgYXMgYSBtZXNzYWdlIGluIE1lc3NlbmdlciBvciBhcyBhIHBvc3Qgb24gdGhlIHVzZXIncyB0aW1lbGluZS5cclxuICAgICAqIFxyXG4gICAgICogQSBibG9iIG9mIGRhdGEgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzaGFyZSB3aGljaCBldmVyeSBnYW1lIHNlc3Npb24gbGF1bmNoZWQgZnJvbSB0aGUgc2hhcmUgd2lsbCBiZSBhYmxlIHRvIGFjY2VzcyB2aWEgdGhlIGB0aGlzLmVudHJ5UG9pbnREYXRhYCBwcm9wZXJ0eS5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyBkYXRhIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEwMDAgY2hhcmFjdGVycyB3aGVuIHN0cmluZ2lmaWVkLlxyXG4gICAgICogXHJcbiAgICAgKiBXaGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCB5b3Ugc2hvdWxkIGNvbnNpZGVyIHlvdXIgZ2FtZSBwYXVzZWQuIExpc3RlbiBvdXQgZm9yIHRoZSBgcmVzdW1lYCBldmVudCBmcm9tIHRoaXMgcGx1Z2luIHRvIGtub3cgd2hlbiB0aGUgZGlhbG9nIGhhcyBiZWVuIGNsb3NlZC5cclxuICAgICAqIFxyXG4gICAgICogVGhlIHVzZXIgbWF5IGNob29zZSB0byBjYW5jZWwgdGhlIHNoYXJlIGFjdGlvbiBhbmQgY2xvc2UgdGhlIGRpYWxvZy4gVGhlIHJlc3VsdGluZyBgcmVzdW1lYCBldmVudCB3aWxsIGJlIGRpc3BhdGNoZWQgcmVnYXJkbGVzcyBpZiB0aGUgdXNlciBhY3R1YWxseSBzaGFyZWQgdGhlIGNvbnRlbnQgb3Igbm90LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI29wZW5TaGFyZVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIEEgdGV4dCBtZXNzYWdlIHRvIGJlIHNoYXJlZC5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBhcyB0aGUgc2hhcmUgaW1hZ2UuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2ZyYW1lXSAtIFRoZSBmcmFtZSBvZiB0aGUgdGV4dHVyZSB0byB1c2UgYXMgdGhlIHNoYXJlIGltYWdlLiBTZXQgdG8gYG51bGxgIGlmIHlvdSBkb24ndCByZXF1aXJlIGEgZnJhbWUsIGJ1dCBkbyBuZWVkIHRvIHNldCBzZXNzaW9uIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW3Nlc3Npb25EYXRhXSAtIEEgYmxvYiBvZiBkYXRhIHRvIGF0dGFjaCB0byB0aGUgc2hhcmUuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBQbHVnaW4gaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIG9wZW5TaGFyZTogZnVuY3Rpb24gKHRleHQsIGtleSwgZnJhbWUsIHNlc3Npb25EYXRhKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaGFyZSgnU0hBUkUnLCB0ZXh0LCBrZXksIGZyYW1lLCBzZXNzaW9uRGF0YSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBpbnZva2VzIGEgZGlhbG9nIHRvIGxldCB0aGUgdXNlciBpbnZpdGUgYSBmcmllbmQgdG8gcGxheSB0aGlzIGdhbWUsIGVpdGhlciBhcyBhIG1lc3NhZ2UgaW4gTWVzc2VuZ2VyIG9yIGFzIGEgcG9zdCBvbiB0aGUgdXNlcidzIHRpbWVsaW5lLlxyXG4gICAgICogXHJcbiAgICAgKiBBIGJsb2Igb2YgZGF0YSBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIHNoYXJlIHdoaWNoIGV2ZXJ5IGdhbWUgc2Vzc2lvbiBsYXVuY2hlZCBmcm9tIHRoZSBzaGFyZSB3aWxsIGJlIGFibGUgdG8gYWNjZXNzIHZpYSB0aGUgYHRoaXMuZW50cnlQb2ludERhdGFgIHByb3BlcnR5LlxyXG4gICAgICogXHJcbiAgICAgKiBUaGlzIGRhdGEgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMTAwMCBjaGFyYWN0ZXJzIHdoZW4gc3RyaW5naWZpZWQuXHJcbiAgICAgKiBcclxuICAgICAqIFdoZW4gdGhpcyBtZXRob2QgaXMgY2FsbGVkIHlvdSBzaG91bGQgY29uc2lkZXIgeW91ciBnYW1lIHBhdXNlZC4gTGlzdGVuIG91dCBmb3IgdGhlIGByZXN1bWVgIGV2ZW50IGZyb20gdGhpcyBwbHVnaW4gdG8ga25vdyB3aGVuIHRoZSBkaWFsb2cgaGFzIGJlZW4gY2xvc2VkLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgdXNlciBtYXkgY2hvb3NlIHRvIGNhbmNlbCB0aGUgc2hhcmUgYWN0aW9uIGFuZCBjbG9zZSB0aGUgZGlhbG9nLiBUaGUgcmVzdWx0aW5nIGByZXN1bWVgIGV2ZW50IHdpbGwgYmUgZGlzcGF0Y2hlZCByZWdhcmRsZXNzIGlmIHRoZSB1c2VyIGFjdHVhbGx5IHNoYXJlZCB0aGUgY29udGVudCBvciBub3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jb3Blbkludml0ZVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIEEgdGV4dCBtZXNzYWdlIHRvIGJlIHNoYXJlZC5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBhcyB0aGUgc2hhcmUgaW1hZ2UuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2ZyYW1lXSAtIFRoZSBmcmFtZSBvZiB0aGUgdGV4dHVyZSB0byB1c2UgYXMgdGhlIHNoYXJlIGltYWdlLiBTZXQgdG8gYG51bGxgIGlmIHlvdSBkb24ndCByZXF1aXJlIGEgZnJhbWUsIGJ1dCBkbyBuZWVkIHRvIHNldCBzZXNzaW9uIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW3Nlc3Npb25EYXRhXSAtIEEgYmxvYiBvZiBkYXRhIHRvIGF0dGFjaCB0byB0aGUgc2hhcmUuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBQbHVnaW4gaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIG9wZW5JbnZpdGU6IGZ1bmN0aW9uICh0ZXh0LCBrZXksIGZyYW1lLCBzZXNzaW9uRGF0YSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2hhcmUoJ0lOVklURScsIHRleHQsIGtleSwgZnJhbWUsIHNlc3Npb25EYXRhKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGludm9rZXMgYSBkaWFsb2cgdG8gbGV0IHRoZSB1c2VyIHNoYXJlIHNwZWNpZmllZCBjb250ZW50LCBlaXRoZXIgYXMgYSBtZXNzYWdlIGluIE1lc3NlbmdlciBvciBhcyBhIHBvc3Qgb24gdGhlIHVzZXIncyB0aW1lbGluZS5cclxuICAgICAqIFxyXG4gICAgICogQSBibG9iIG9mIGRhdGEgY2FuIGJlIGF0dGFjaGVkIHRvIHRoZSBzaGFyZSB3aGljaCBldmVyeSBnYW1lIHNlc3Npb24gbGF1bmNoZWQgZnJvbSB0aGUgc2hhcmUgd2lsbCBiZSBhYmxlIHRvIGFjY2VzcyB2aWEgdGhlIGB0aGlzLmVudHJ5UG9pbnREYXRhYCBwcm9wZXJ0eS5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyBkYXRhIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEwMDAgY2hhcmFjdGVycyB3aGVuIHN0cmluZ2lmaWVkLlxyXG4gICAgICogXHJcbiAgICAgKiBXaGVuIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCB5b3Ugc2hvdWxkIGNvbnNpZGVyIHlvdXIgZ2FtZSBwYXVzZWQuIExpc3RlbiBvdXQgZm9yIHRoZSBgcmVzdW1lYCBldmVudCBmcm9tIHRoaXMgcGx1Z2luIHRvIGtub3cgd2hlbiB0aGUgZGlhbG9nIGhhcyBiZWVuIGNsb3NlZC5cclxuICAgICAqIFxyXG4gICAgICogVGhlIHVzZXIgbWF5IGNob29zZSB0byBjYW5jZWwgdGhlIHNoYXJlIGFjdGlvbiBhbmQgY2xvc2UgdGhlIGRpYWxvZy4gVGhlIHJlc3VsdGluZyBgcmVzdW1lYCBldmVudCB3aWxsIGJlIGRpc3BhdGNoZWQgcmVnYXJkbGVzcyBpZiB0aGUgdXNlciBhY3R1YWxseSBzaGFyZWQgdGhlIGNvbnRlbnQgb3Igbm90LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI29wZW5SZXF1ZXN0XHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gQSB0ZXh0IG1lc3NhZ2UgdG8gYmUgc2hhcmVkLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIHRleHR1cmUgdG8gdXNlIGFzIHRoZSBzaGFyZSBpbWFnZS5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbZnJhbWVdIC0gVGhlIGZyYW1lIG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBhcyB0aGUgc2hhcmUgaW1hZ2UuIFNldCB0byBgbnVsbGAgaWYgeW91IGRvbid0IHJlcXVpcmUgYSBmcmFtZSwgYnV0IGRvIG5lZWQgdG8gc2V0IHNlc3Npb24gZGF0YS5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbc2Vzc2lvbkRhdGFdIC0gQSBibG9iIG9mIGRhdGEgdG8gYXR0YWNoIHRvIHRoZSBzaGFyZS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbiBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgb3BlblJlcXVlc3Q6IGZ1bmN0aW9uICh0ZXh0LCBrZXksIGZyYW1lLCBzZXNzaW9uRGF0YSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2hhcmUoJ1JFUVVFU1QnLCB0ZXh0LCBrZXksIGZyYW1lLCBzZXNzaW9uRGF0YSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBpbnZva2VzIGEgZGlhbG9nIHRvIGxldCB0aGUgdXNlciBzaGFyZSBzcGVjaWZpZWQgY29udGVudCwgZWl0aGVyIGFzIGEgbWVzc2FnZSBpbiBNZXNzZW5nZXIgb3IgYXMgYSBwb3N0IG9uIHRoZSB1c2VyJ3MgdGltZWxpbmUuXHJcbiAgICAgKiBcclxuICAgICAqIEEgYmxvYiBvZiBkYXRhIGNhbiBiZSBhdHRhY2hlZCB0byB0aGUgc2hhcmUgd2hpY2ggZXZlcnkgZ2FtZSBzZXNzaW9uIGxhdW5jaGVkIGZyb20gdGhlIHNoYXJlIHdpbGwgYmUgYWJsZSB0byBhY2Nlc3MgdmlhIHRoZSBgdGhpcy5lbnRyeVBvaW50RGF0YWAgcHJvcGVydHkuXHJcbiAgICAgKiBcclxuICAgICAqIFRoaXMgZGF0YSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxMDAwIGNoYXJhY3RlcnMgd2hlbiBzdHJpbmdpZmllZC5cclxuICAgICAqIFxyXG4gICAgICogV2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgeW91IHNob3VsZCBjb25zaWRlciB5b3VyIGdhbWUgcGF1c2VkLiBMaXN0ZW4gb3V0IGZvciB0aGUgYHJlc3VtZWAgZXZlbnQgZnJvbSB0aGlzIHBsdWdpbiB0byBrbm93IHdoZW4gdGhlIGRpYWxvZyBoYXMgYmVlbiBjbG9zZWQuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSB1c2VyIG1heSBjaG9vc2UgdG8gY2FuY2VsIHRoZSBzaGFyZSBhY3Rpb24gYW5kIGNsb3NlIHRoZSBkaWFsb2cuIFRoZSByZXN1bHRpbmcgYHJlc3VtZWAgZXZlbnQgd2lsbCBiZSBkaXNwYXRjaGVkIHJlZ2FyZGxlc3MgaWYgdGhlIHVzZXIgYWN0dWFsbHkgc2hhcmVkIHRoZSBjb250ZW50IG9yIG5vdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNvcGVuQ2hhbGxlbmdlXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gQSB0ZXh0IG1lc3NhZ2UgdG8gYmUgc2hhcmVkLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIHRleHR1cmUgdG8gdXNlIGFzIHRoZSBzaGFyZSBpbWFnZS5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbZnJhbWVdIC0gVGhlIGZyYW1lIG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBhcyB0aGUgc2hhcmUgaW1hZ2UuIFNldCB0byBgbnVsbGAgaWYgeW91IGRvbid0IHJlcXVpcmUgYSBmcmFtZSwgYnV0IGRvIG5lZWQgdG8gc2V0IHNlc3Npb24gZGF0YS5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbc2Vzc2lvbkRhdGFdIC0gQSBibG9iIG9mIGRhdGEgdG8gYXR0YWNoIHRvIHRoZSBzaGFyZS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbiBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgb3BlbkNoYWxsZW5nZTogZnVuY3Rpb24gKHRleHQsIGtleSwgZnJhbWUsIHNlc3Npb25EYXRhKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaGFyZSgnQ0hBTExFTkdFJywgdGV4dCwga2V5LCBmcmFtZSwgc2Vzc2lvbkRhdGEpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIHNoYXJlIGhhbmRsZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jX3NoYXJlXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gaW50ZW50IC0gKFwiSU5WSVRFXCIgfCBcIlJFUVVFU1RcIiB8IFwiQ0hBTExFTkdFXCIgfCBcIlNIQVJFXCIpIEluZGljYXRlcyB0aGUgaW50ZW50IG9mIHRoZSBzaGFyZS5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gQSB0ZXh0IG1lc3NhZ2UgdG8gYmUgc2hhcmVkLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIHRleHR1cmUgdG8gdXNlIGFzIHRoZSBzaGFyZSBpbWFnZS5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbZnJhbWVdIC0gVGhlIGZyYW1lIG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBhcyB0aGUgc2hhcmUgaW1hZ2UuIFNldCB0byBgbnVsbGAgaWYgeW91IGRvbid0IHJlcXVpcmUgYSBmcmFtZSwgYnV0IGRvIG5lZWQgdG8gc2V0IHNlc3Npb24gZGF0YS5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbc2Vzc2lvbkRhdGFdIC0gQSBibG9iIG9mIGRhdGEgdG8gYXR0YWNoIHRvIHRoZSBzaGFyZS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbiBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgX3NoYXJlOiBmdW5jdGlvbiAoaW50ZW50LCB0ZXh0LCBrZXksIGZyYW1lLCBzZXNzaW9uRGF0YSlcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tBUEkoJ3NoYXJlQXN5bmMnKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHNlc3Npb25EYXRhID09PSB1bmRlZmluZWQpIHsgc2Vzc2lvbkRhdGEgPSB7fTsgfVxyXG5cclxuICAgICAgICBpZiAoa2V5KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGltYWdlRGF0YSA9IHRoaXMuZ2FtZS50ZXh0dXJlcy5nZXRCYXNlNjQoa2V5LCBmcmFtZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpbnRlbnQgKFwiSU5WSVRFXCIgfCBcIlJFUVVFU1RcIiB8IFwiQ0hBTExFTkdFXCIgfCBcIlNIQVJFXCIpIEluZGljYXRlcyB0aGUgaW50ZW50IG9mIHRoZSBzaGFyZS5cclxuICAgICAgICAvLyBpbWFnZSBzdHJpbmcgQSBiYXNlNjQgZW5jb2RlZCBpbWFnZSB0byBiZSBzaGFyZWQuXHJcbiAgICAgICAgLy8gdGV4dCBzdHJpbmcgQSB0ZXh0IG1lc3NhZ2UgdG8gYmUgc2hhcmVkLlxyXG4gICAgICAgIC8vIGRhdGEgT2JqZWN0PyBBIGJsb2Igb2YgZGF0YSB0byBhdHRhY2ggdG8gdGhlIHNoYXJlLiBBbGwgZ2FtZSBzZXNzaW9ucyBsYXVuY2hlZCBmcm9tIHRoZSBzaGFyZSB3aWxsIGJlIGFibGUgdG8gYWNjZXNzIHRoaXMgYmxvYiB0aHJvdWdoIEZCSW5zdGFudC5nZXRFbnRyeVBvaW50RGF0YSgpLlxyXG5cclxuICAgICAgICB2YXIgcGF5bG9hZCA9IHtcclxuICAgICAgICAgICAgaW50ZW50OiBpbnRlbnQsXHJcbiAgICAgICAgICAgIGltYWdlOiBpbWFnZURhdGEsXHJcbiAgICAgICAgICAgIHRleHQ6IHRleHQsXHJcbiAgICAgICAgICAgIGRhdGE6IHNlc3Npb25EYXRhXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgRkJJbnN0YW50LnNoYXJlQXN5bmMocGF5bG9hZCkudGhlbihmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgncmVzdW1lJyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBudW1iZXIgb2YgcGFydGljaXBhbnRzIGluIHRoZSBjdXJyZW50IGdhbWUgY29udGV4dCBpcyBiZXR3ZWVuIGEgZ2l2ZW4gbWluaW11bSBhbmQgbWF4aW11bSwgaW5jbHVzaXZlLlxyXG4gICAgICogSWYgb25lIG9mIHRoZSBib3VuZHMgaXMgbnVsbCBvbmx5IHRoZSBvdGhlciBib3VuZCB3aWxsIGJlIGNoZWNrZWQgYWdhaW5zdC5cclxuICAgICAqIEl0IHdpbGwgYWx3YXlzIHJldHVybiB0aGUgb3JpZ2luYWwgcmVzdWx0IGZvciB0aGUgZmlyc3QgY2FsbCBtYWRlIGluIGEgY29udGV4dCBpbiBhIGdpdmVuIGdhbWUgcGxheSBzZXNzaW9uLlxyXG4gICAgICogU3Vic2VxdWVudCBjYWxscywgcmVnYXJkbGVzcyBvZiBhcmd1bWVudHMsIHdpbGwgcmV0dXJuIHRoZSBhbnN3ZXIgdG8gdGhlIG9yaWdpbmFsIHF1ZXJ5IHVudGlsIGEgY29udGV4dCBjaGFuZ2Ugb2NjdXJzIGFuZCB0aGUgcXVlcnkgcmVzdWx0IGlzIHJlc2V0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI2lzU2l6ZUJldHdlZW5cclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbbWluXSAtIFRoZSBtaW5pbXVtIGJvdW5kIG9mIHRoZSBjb250ZXh0IHNpemUgcXVlcnkuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFttYXhdIC0gVGhlIG1heGltdW0gYm91bmQgb2YgdGhlIGNvbnRleHQgc2l6ZSBxdWVyeS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7b2JqZWN0fSBUaGUgQ29udGV4dCBTaXplIFJlc3BvbnNlIG9iamVjdCBpbiB0aGUgZm9ybWF0OiBge2Fuc3dlcjogYm9vbGVhbiwgbWluU2l6ZTogbnVtYmVyPywgbWF4U2l6ZTogbnVtYmVyP31gLlxyXG4gICAgICovXHJcbiAgICBpc1NpemVCZXR3ZWVuOiBmdW5jdGlvbiAobWluLCBtYXgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNrQVBJKCdjb250ZXh0SXNTaXplQmV0d2VlbicpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gRkJJbnN0YW50LmNvbnRleHQuaXNTaXplQmV0d2VlbihtaW4sIG1heCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVxdWVzdCBhIHN3aXRjaCBpbnRvIGEgc3BlY2lmaWMgY29udGV4dC4gSWYgdGhlIHBsYXllciBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gZW50ZXIgdGhhdCBjb250ZXh0LFxyXG4gICAgICogb3IgaWYgdGhlIHBsYXllciBkb2VzIG5vdCBwcm92aWRlIHBlcm1pc3Npb24gZm9yIHRoZSBnYW1lIHRvIGVudGVyIHRoYXQgY29udGV4dCwgdGhpcyB3aWxsIGVtaXQgYSBgc3dpdGNoZmFpbGAgZXZlbnQuXHJcbiAgICAgKiBcclxuICAgICAqIE90aGVyd2lzZSwgdGhlIHBsdWdpbiB3aWxsIGVtaXQgdGhlIGBzd2l0Y2hgIGV2ZW50IHdoZW4gdGhlIGdhbWUgaGFzIHN3aXRjaGVkIGludG8gdGhlIHNwZWNpZmllZCBjb250ZXh0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI3N3aXRjaENvbnRleHRcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbnRleHRJRCAtIFRoZSBJRCBvZiB0aGUgZGVzaXJlZCBjb250ZXh0LlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzd2l0Y2hDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dElEKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5jaGVja0FQSSgnY29udGV4dFN3aXRjaEFzeW5jJykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb250ZXh0SUQgIT09IHRoaXMuY29udGV4dElEKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgICAgIEZCSW5zdGFudC5jb250ZXh0LnN3aXRjaEFzeW5jKGNvbnRleHRJRCkudGhlbihmdW5jdGlvbiAoKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5jb250ZXh0SUQgPSBGQkluc3RhbnQuY29udGV4dC5nZXRJRCgpO1xyXG5cclxuICAgICAgICAgICAgICAgIF90aGlzLmVtaXQoJ3N3aXRjaCcsIF90aGlzLmNvbnRleHRJRCk7XHJcblxyXG4gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuZW1pdCgnc3dpdGNoZmFpbCcsIGUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEEgZmlsdGVyIHRoYXQgbWF5IGJlIGFwcGxpZWQgdG8gYSBDb250ZXh0IENob29zZSBvcGVyYXRpb24uXHJcbiAgICAgKiBcclxuICAgICAqICdORVdfQ09OVEVYVF9PTkxZJyAtIFByZWZlciB0byBvbmx5IHN1cmZhY2UgY29udGV4dHMgdGhlIGdhbWUgaGFzIG5vdCBiZWVuIHBsYXllZCBpbiBiZWZvcmUuXHJcbiAgICAgKiAnSU5DTFVERV9FWElTVElOR19DSEFMTEVOR0VTJyAtIEluY2x1ZGUgdGhlIFwiRXhpc3RpbmcgQ2hhbGxlbmdlc1wiIHNlY3Rpb24sIHdoaWNoIHN1cmZhY2VzIGFjdGl2ZWx5IHBsYXllZC1pbiBjb250ZXh0cyB0aGF0IHRoZSBwbGF5ZXIgaXMgYSBwYXJ0IG9mLlxyXG4gICAgICogJ05FV19QTEFZRVJTX09OTFknIC0gSW4gc2VjdGlvbnMgY29udGFpbmluZyBpbmRpdmlkdWFscywgcHJlZmVyIHBlb3BsZSB3aG8gaGF2ZSBub3QgcGxheWVkIHRoZSBnYW1lLlxyXG4gICAgICogXHJcbiAgICAgKiBAdHlwZWRlZiB7c3RyaW5nfSBDb250ZXh0RmlsdGVyXHJcbiAgICAgKi9cclxuXHJcbiAgICAvKipcclxuICAgICAqIEEgY29uZmlndXJhdGlvbiBvYmplY3QgdGhhdCBtYXkgYmUgYXBwbGllZCB0byBhIENvbnRleHQgQ2hvb3NlIG9wZXJhdGlvbi5cclxuICAgICAqIFxyXG4gICAgICogQHR5cGVkZWYge29iamVjdH0gQ2hvb3NlQ29udGV4dENvbmZpZ1xyXG4gICAgICogQHByb3BlcnR5IHtDb250ZXh0RmlsdGVyW119IFtmaWx0ZXJzXSAtIFRoZSBzZXQgb2YgZmlsdGVycyB0byBhcHBseSB0byB0aGUgY29udGV4dCBzdWdnZXN0aW9uczogJ05FV19DT05URVhUX09OTFknLCAnSU5DTFVERV9FWElTVElOR19DSEFMTEVOR0VTJyBvciAnTkVXX1BMQVlFUlNfT05MWScuXHJcbiAgICAgKiBAcHJvcGVydHkge251bWJlcn0gW21heFNpemVdIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpY2lwYW50cyB0aGF0IGEgc3VnZ2VzdGVkIGNvbnRleHQgc2hvdWxkIGlkZWFsbHkgaGF2ZS5cclxuICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbbWluU2l6ZV0gLSBUaGUgbWluaW11bSBudW1iZXIgb2YgcGFydGljaXBhbnRzIHRoYXQgYSBzdWdnZXN0ZWQgY29udGV4dCBzaG91bGQgaWRlYWxseSBoYXZlLlxyXG4gICAgICovXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcGVucyBhIGNvbnRleHQgc2VsZWN0aW9uIGRpYWxvZyBmb3IgdGhlIHBsYXllci4gSWYgdGhlIHBsYXllciBzZWxlY3RzIGFuIGF2YWlsYWJsZSBjb250ZXh0LFxyXG4gICAgICogdGhlIGNsaWVudCB3aWxsIGF0dGVtcHQgdG8gc3dpdGNoIGludG8gdGhhdCBjb250ZXh0LCBhbmQgZW1pdCB0aGUgYGNob29zZWAgZXZlbnQgaWYgc3VjY2Vzc2Z1bC5cclxuICAgICAqIE90aGVyd2lzZSwgaWYgdGhlIHBsYXllciBleGl0cyB0aGUgbWVudSBvciB0aGUgY2xpZW50IGZhaWxzIHRvIHN3aXRjaCBpbnRvIHRoZSBuZXcgY29udGV4dCwgdGhlIGBjaG9vc2VmYWlsYCBldmVudCB3aWxsIGJlIGVtaXR0ZWQuXHJcbiAgICAgKiBcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI2Nob29zZUNvbnRleHRcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtDaG9vc2VDb250ZXh0Q29uZmlnfSBbb3B0aW9uc10gLSBBbiBvYmplY3Qgc3BlY2lmeWluZyBjb25kaXRpb25zIG9uIHRoZSBjb250ZXh0cyB0aGF0IHNob3VsZCBiZSBvZmZlcmVkLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBjaG9vc2VDb250ZXh0OiBmdW5jdGlvbiAob3B0aW9ucylcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tBUEkoJ2NvbnRleHRDaG9vc2VBc3luYycpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICBGQkluc3RhbnQuY29udGV4dC5jaG9vc2VBc3luYyhvcHRpb25zKS50aGVuKGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBfdGhpcy5jb250ZXh0SUQgPSBGQkluc3RhbnQuY29udGV4dC5nZXRJRCgpO1xyXG4gICAgICAgICAgICBfdGhpcy5lbWl0KCdjaG9vc2UnLCBfdGhpcy5jb250ZXh0SUQpO1xyXG5cclxuICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ2Nob29zZWZhaWwnLCBlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXR0ZW1wdHMgdG8gY3JlYXRlIG9yIHN3aXRjaCBpbnRvIGEgY29udGV4dCBiZXR3ZWVuIGEgc3BlY2lmaWVkIHBsYXllciBhbmQgdGhlIGN1cnJlbnQgcGxheWVyLlxyXG4gICAgICogVGhpcyBwbHVnaW4gd2lsbCBlbWl0IHRoZSBgY3JlYXRlYCBldmVudCBvbmNlIHRoZSBjb250ZXh0IHN3aXRjaCBpcyBjb21wbGV0ZWQuXHJcbiAgICAgKiBJZiB0aGUgQVBJIGNhbGwgZmFpbHMsIHN1Y2ggYXMgaWYgdGhlIHBsYXllciBsaXN0ZWQgaXMgbm90IGEgQ29ubmVjdGVkIFBsYXllciBvZiB0aGUgY3VycmVudCBwbGF5ZXIgb3IgaWYgdGhlXHJcbiAgICAgKiBwbGF5ZXIgZG9lcyBub3QgcHJvdmlkZSBwZXJtaXNzaW9uIHRvIGVudGVyIHRoZSBuZXcgY29udGV4dCwgdGhlbiB0aGUgcGx1Z2luIHdpbGwgZW1pdCBhICdjcmVhdGVmYWlsJyBldmVudC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNjcmVhdGVDb250ZXh0XHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwbGF5ZXJJRCAtIElEIG9mIHRoZSBwbGF5ZXIuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBQbHVnaW4gaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZUNvbnRleHQ6IGZ1bmN0aW9uIChwbGF5ZXJJRClcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tBUEkoJ2NvbnRleHRDcmVhdGVBc3luYycpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICBGQkluc3RhbnQuY29udGV4dC5jcmVhdGVBc3luYyhwbGF5ZXJJRCkudGhlbihmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuY29udGV4dElEID0gRkJJbnN0YW50LmNvbnRleHQuZ2V0SUQoKTtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgnY3JlYXRlJywgX3RoaXMuY29udGV4dElEKTtcclxuXHJcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBfdGhpcy5lbWl0KCdjcmVhdGVmYWlsJywgZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZldGNoZXMgYW4gYXJyYXkgb2YgQ29ubmVjdGVkUGxheWVyIG9iamVjdHMgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCBhY3RpdmUgcGxheWVyc1xyXG4gICAgICogKHBlb3BsZSB3aG8gcGxheWVkIHRoZSBnYW1lIGluIHRoZSBsYXN0IDkwIGRheXMpIHRoYXQgYXJlIGNvbm5lY3RlZCB0byB0aGUgY3VycmVudCBwbGF5ZXIuXHJcbiAgICAgKiBcclxuICAgICAqIEl0IG1ha2VzIGFuIGFzeW5jIGNhbGwgdG8gdGhlIEFQSSwgc28gdGhlIHJlc3VsdCBpc24ndCBhdmFpbGFibGUgaW1tZWRpYXRlbHkuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZXkgYXJlIHN1Y2Nlc3NmdWxseSBzdWJzY3JpYmVkIHRoaXMgcGx1Z2luIHdpbGwgZW1pdCB0aGUgYHBsYXllcnNgIGV2ZW50IGFsb25nXHJcbiAgICAgKiB3aXRoIHRoZSBwbGF5ZXIgZGF0YS5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhleSBjYW5ub3QsIGkuZS4gaXQncyBub3QgaW4gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIEFQSXMsIG9yIHRoZSByZXF1ZXN0XHJcbiAgICAgKiB3YXMgcmVqZWN0ZWQsIGl0IHdpbGwgZW1pdCBhIGBwbGF5ZXJzZmFpbGAgZXZlbnQgaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNnZXRQbGF5ZXJzXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBQbHVnaW4gaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGdldFBsYXllcnM6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNrQVBJKCdwbGF5ZXJHZXRDb25uZWN0ZWRQbGF5ZXJzQXN5bmMnKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgRkJJbnN0YW50LnBsYXllci5nZXRDb25uZWN0ZWRQbGF5ZXJzQXN5bmMoKS50aGVuKGZ1bmN0aW9uIChwbGF5ZXJzKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgncGxheWVycycsIHBsYXllcnMpO1xyXG5cclxuICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ3BsYXllcnNmYWlsJywgZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZldGNoZXMgdGhlIGdhbWUncyBwcm9kdWN0IGNhdGFsb2cuXHJcbiAgICAgKiBcclxuICAgICAqIEl0IG1ha2VzIGFuIGFzeW5jIGNhbGwgdG8gdGhlIEFQSSwgc28gdGhlIHJlc3VsdCBpc24ndCBhdmFpbGFibGUgaW1tZWRpYXRlbHkuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZXkgYXJlIHN1Y2Nlc3NmdWxseSBzdWJzY3JpYmVkIHRoaXMgcGx1Z2luIHdpbGwgZW1pdCB0aGUgYGdldGNhdGFsb2dgIGV2ZW50IGFsb25nXHJcbiAgICAgKiB3aXRoIHRoZSBjYXRhbG9nIGRhdGEuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZXkgY2Fubm90LCBpLmUuIGl0J3Mgbm90IGluIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBBUElzLCBvciB0aGUgcmVxdWVzdFxyXG4gICAgICogd2FzIHJlamVjdGVkLCBpdCB3aWxsIGVtaXQgYSBgZ2V0Y2F0YWxvZ2ZhaWxgIGV2ZW50IGluc3RlYWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jZ2V0Q2F0YWxvZ1xyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBnZXRDYXRhbG9nOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5wYXltZW50c1JlYWR5KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIHZhciBjYXRhbG9nID0gdGhpcy5jYXRhbG9nO1xyXG5cclxuICAgICAgICBGQkluc3RhbnQucGF5bWVudHMuZ2V0Q2F0YWxvZ0FzeW5jKCkudGhlbihmdW5jdGlvbiAoZGF0YSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNhdGFsb2cgPSBbXTtcclxuXHJcbiAgICAgICAgICAgIGRhdGEuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY2F0YWxvZy5wdXNoKFByb2R1Y3QoaXRlbSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ2dldGNhdGFsb2cnLCBjYXRhbG9nKTtcclxuXHJcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBfdGhpcy5lbWl0KCdnZXRjYXRhbG9nZmFpbCcsIGUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGZXRjaGVzIGEgc2luZ2xlIFByb2R1Y3QgZnJvbSB0aGUgZ2FtZSdzIHByb2R1Y3QgY2F0YWxvZy5cclxuICAgICAqIFxyXG4gICAgICogVGhlIHByb2R1Y3QgY2F0YWxvZyBtdXN0IGhhdmUgYmVlbiBwb3B1bGF0ZWQgdXNpbmcgYGdldENhdGFsb2dgIHByaW9yIHRvIGNhbGxpbmcgdGhpcyBtZXRob2QuXHJcbiAgICAgKiBcclxuICAgICAqIFVzZSB0aGlzIHRvIGxvb2stdXAgcHJvZHVjdCBkZXRhaWxzIGJhc2VkIG9uIGEgcHVyY2hhc2UgbGlzdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNnZXRQcm9kdWN0XHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9kdWN0SUQgLSBUaGUgUHJvZHVjdCBJRCBvZiB0aGUgaXRlbSB0byBnZXQgZnJvbSB0aGUgY2F0YWxvZy5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7P1Byb2R1Y3R9IFRoZSBQcm9kdWN0IGZyb20gdGhlIGNhdGFsb2csIG9yIGBudWxsYCBpZiBpdCBjb3VsZG4ndCBiZSBmb3VuZCBvciB0aGUgY2F0YWxvZyBpc24ndCBwb3B1bGF0ZWQuXHJcbiAgICAgKi9cclxuICAgIGdldFByb2R1Y3Q6IGZ1bmN0aW9uIChwcm9kdWN0SUQpXHJcbiAgICB7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNhdGFsb2cubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jYXRhbG9nW2ldLnByb2R1Y3RJRCA9PT0gcHJvZHVjdElEKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jYXRhbG9nW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCZWdpbnMgdGhlIHB1cmNoYXNlIGZsb3cgZm9yIGEgc3BlY2lmaWMgcHJvZHVjdC5cclxuICAgICAqIFxyXG4gICAgICogSXQgbWFrZXMgYW4gYXN5bmMgY2FsbCB0byB0aGUgQVBJLCBzbyB0aGUgcmVzdWx0IGlzbid0IGF2YWlsYWJsZSBpbW1lZGlhdGVseS5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhleSBhcmUgc3VjY2Vzc2Z1bGx5IHN1YnNjcmliZWQgdGhpcyBwbHVnaW4gd2lsbCBlbWl0IHRoZSBgcHVyY2hhc2VgIGV2ZW50IGFsb25nXHJcbiAgICAgKiB3aXRoIHRoZSBwdXJjaGFzZSBkYXRhLlxyXG4gICAgICogXHJcbiAgICAgKiBJZiB0aGV5IGNhbm5vdCwgaS5lLiBpdCdzIG5vdCBpbiB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgQVBJcywgb3IgdGhlIHJlcXVlc3RcclxuICAgICAqIHdhcyByZWplY3RlZCwgaXQgd2lsbCBlbWl0IGEgYHB1cmNoYXNlZmFpbGAgZXZlbnQgaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNwdXJjaGFzZVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvZHVjdElEIC0gVGhlIGlkZW50aWZpZXIgb2YgdGhlIHByb2R1Y3QgdG8gcHVyY2hhc2UuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2RldmVsb3BlclBheWxvYWRdIC0gQW4gb3B0aW9uYWwgZGV2ZWxvcGVyLXNwZWNpZmllZCBwYXlsb2FkLCB0byBiZSBpbmNsdWRlZCBpbiB0aGUgcmV0dXJuZWQgcHVyY2hhc2UncyBzaWduZWQgcmVxdWVzdC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbiBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVyY2hhc2U6IGZ1bmN0aW9uIChwcm9kdWN0SUQsIGRldmVsb3BlclBheWxvYWQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnBheW1lbnRzUmVhZHkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBjb25maWcgPSB7cHJvZHVjdElEOiBwcm9kdWN0SUR9O1xyXG5cclxuICAgICAgICBpZiAoZGV2ZWxvcGVyUGF5bG9hZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbmZpZy5kZXZlbG9wZXJQYXlsb2FkID0gZGV2ZWxvcGVyUGF5bG9hZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIEZCSW5zdGFudC5wYXltZW50cy5wdXJjaGFzZUFzeW5jKGNvbmZpZykudGhlbihmdW5jdGlvbiAoZGF0YSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBwdXJjaGFzZSA9IFB1cmNoYXNlKGRhdGEpO1xyXG5cclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgncHVyY2hhc2UnLCBwdXJjaGFzZSk7XHJcblxyXG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgncHVyY2hhc2VmYWlsJywgZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZldGNoZXMgYWxsIG9mIHRoZSBwbGF5ZXIncyB1bmNvbnN1bWVkIHB1cmNoYXNlcy4gVGhlIGdhbWUgbXVzdCBmZXRjaCB0aGUgY3VycmVudCBwbGF5ZXIncyBwdXJjaGFzZXNcclxuICAgICAqIGFzIHNvb24gYXMgdGhlIGNsaWVudCBpbmRpY2F0ZXMgdGhhdCBpdCBpcyByZWFkeSB0byBwZXJmb3JtIHBheW1lbnRzLXJlbGF0ZWQgb3BlcmF0aW9ucyxcclxuICAgICAqIGkuZS4gYXQgZ2FtZSBzdGFydC4gVGhlIGdhbWUgY2FuIHRoZW4gcHJvY2VzcyBhbmQgY29uc3VtZSBhbnkgcHVyY2hhc2VzIHRoYXQgYXJlIHdhaXRpbmcgdG8gYmUgY29uc3VtZWQuXHJcbiAgICAgKiBcclxuICAgICAqIEl0IG1ha2VzIGFuIGFzeW5jIGNhbGwgdG8gdGhlIEFQSSwgc28gdGhlIHJlc3VsdCBpc24ndCBhdmFpbGFibGUgaW1tZWRpYXRlbHkuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZXkgYXJlIHN1Y2Nlc3NmdWxseSBzdWJzY3JpYmVkIHRoaXMgcGx1Z2luIHdpbGwgZW1pdCB0aGUgYGdldHB1cmNoYXNlc2AgZXZlbnQgYWxvbmdcclxuICAgICAqIHdpdGggdGhlIHB1cmNoYXNlIGRhdGEuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZXkgY2Fubm90LCBpLmUuIGl0J3Mgbm90IGluIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBBUElzLCBvciB0aGUgcmVxdWVzdFxyXG4gICAgICogd2FzIHJlamVjdGVkLCBpdCB3aWxsIGVtaXQgYSBgZ2V0cHVyY2hhc2VzZmFpbGAgZXZlbnQgaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNnZXRQdXJjaGFzZXNcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbiBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgZ2V0UHVyY2hhc2VzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5wYXltZW50c1JlYWR5KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIHZhciBwdXJjaGFzZXMgPSB0aGlzLnB1cmNoYXNlcztcclxuXHJcbiAgICAgICAgRkJJbnN0YW50LnBheW1lbnRzLmdldFB1cmNoYXNlc0FzeW5jKCkudGhlbihmdW5jdGlvbiAoZGF0YSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHB1cmNoYXNlcyA9IFtdO1xyXG5cclxuICAgICAgICAgICAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwdXJjaGFzZXMucHVzaChQdXJjaGFzZShpdGVtKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgnZ2V0cHVyY2hhc2VzJywgcHVyY2hhc2VzKTtcclxuXHJcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBfdGhpcy5lbWl0KCdnZXRwdXJjaGFzZXNmYWlsJywgZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN1bWVzIGEgc3BlY2lmaWMgcHVyY2hhc2UgYmVsb25naW5nIHRvIHRoZSBjdXJyZW50IHBsYXllci4gQmVmb3JlIHByb3Zpc2lvbmluZyBhIHByb2R1Y3QncyBlZmZlY3RzIHRvIHRoZSBwbGF5ZXIsXHJcbiAgICAgKiB0aGUgZ2FtZSBzaG91bGQgcmVxdWVzdCB0aGUgY29uc3VtcHRpb24gb2YgdGhlIHB1cmNoYXNlZCBwcm9kdWN0LiBPbmNlIHRoZSBwdXJjaGFzZSBpcyBzdWNjZXNzZnVsbHkgY29uc3VtZWQsXHJcbiAgICAgKiB0aGUgZ2FtZSBzaG91bGQgaW1tZWRpYXRlbHkgcHJvdmlkZSB0aGUgcGxheWVyIHdpdGggdGhlIGVmZmVjdHMgb2YgdGhlaXIgcHVyY2hhc2UuXHJcbiAgICAgKiBcclxuICAgICAqIEl0IG1ha2VzIGFuIGFzeW5jIGNhbGwgdG8gdGhlIEFQSSwgc28gdGhlIHJlc3VsdCBpc24ndCBhdmFpbGFibGUgaW1tZWRpYXRlbHkuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZXkgYXJlIHN1Y2Nlc3NmdWxseSBzdWJzY3JpYmVkIHRoaXMgcGx1Z2luIHdpbGwgZW1pdCB0aGUgYGNvbnN1bWVwdXJjaGFzZWAgZXZlbnQgYWxvbmdcclxuICAgICAqIHdpdGggdGhlIHB1cmNoYXNlIGRhdGEuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZXkgY2Fubm90LCBpLmUuIGl0J3Mgbm90IGluIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBBUElzLCBvciB0aGUgcmVxdWVzdFxyXG4gICAgICogd2FzIHJlamVjdGVkLCBpdCB3aWxsIGVtaXQgYSBgY29uc3VtZXB1cmNoYXNlZmFpbGAgZXZlbnQgaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNjb25zdW1lUHVyY2hhc2VcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHB1cmNoYXNlVG9rZW4gLSBUaGUgcHVyY2hhc2UgdG9rZW4gb2YgdGhlIHB1cmNoYXNlIHRoYXQgc2hvdWxkIGJlIGNvbnN1bWVkLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBjb25zdW1lUHVyY2hhc2U6IGZ1bmN0aW9uIChwdXJjaGFzZVRva2VuKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5wYXltZW50c1JlYWR5KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICBGQkluc3RhbnQucGF5bWVudHMuY29uc3VtZVB1cmNoYXNlQXN5bmMocHVyY2hhc2VUb2tlbikudGhlbihmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgnY29uc3VtZXB1cmNoYXNlJywgcHVyY2hhc2VUb2tlbik7XHJcblxyXG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgnY29uc3VtZXB1cmNoYXNlZmFpbCcsIGUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmZvcm1zIEZhY2Vib29rIG9mIGEgY3VzdG9tIHVwZGF0ZSB0aGF0IG9jY3VycmVkIGluIHRoZSBnYW1lLlxyXG4gICAgICogVGhpcyB3aWxsIHRlbXBvcmFyaWx5IHlpZWxkIGNvbnRyb2wgdG8gRmFjZWJvb2sgYW5kIEZhY2Vib29rIHdpbGwgZGVjaWRlIHdoYXQgdG8gZG8gYmFzZWQgb24gd2hhdCB0aGUgdXBkYXRlIGlzLlxyXG4gICAgICogT25jZSBGYWNlYm9vayByZXR1cm5zIGNvbnRyb2wgdG8gdGhlIGdhbWUgdGhlIHBsdWdpbiB3aWxsIGVtaXQgYW4gYHVwZGF0ZWAgb3IgYHVwZGF0ZWZhaWxgIGV2ZW50LlxyXG4gICAgICogXHJcbiAgICAgKiBJdCBtYWtlcyBhbiBhc3luYyBjYWxsIHRvIHRoZSBBUEksIHNvIHRoZSByZXN1bHQgaXNuJ3QgYXZhaWxhYmxlIGltbWVkaWF0ZWx5LlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgYHRleHRgIHBhcmFtZXRlciBpcyBhbiB1cGRhdGUgcGF5bG9hZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxyXG4gICAgICogXHJcbiAgICAgKiBgYGBcclxuICAgICAqIHRleHQ6IHtcclxuICAgICAqICAgICBkZWZhdWx0OiAnWCBqdXN0IGludmFkZWQgWVxcJ3MgdmlsbGFnZSEnLFxyXG4gICAgICogICAgIGxvY2FsaXphdGlvbnM6IHtcclxuICAgICAqICAgICAgICAgYXJfQVI6ICdYIFxcdTA2NDFcXHUwNjQyXFx1MDYzNyBcXHUwNjNBXFx1MDYzMlxcdTA2MkEgJyArXHJcbiAgICAgKiAgICAgICAgICdcXHUwNjQyXFx1MDYzMVxcdTA2NEFcXHUwNjI5IFkhJyxcclxuICAgICAqICAgICAgICAgZW5fVVM6ICdYIGp1c3QgaW52YWRlZCBZXFwncyB2aWxsYWdlIScsXHJcbiAgICAgKiAgICAgICAgIGVzX0xBOiAnXFx1MDBBMVggYWNhYmEgZGUgaW52YWRpciBlbCBwdWVibG8gZGUgWSEnLFxyXG4gICAgICogICAgIH1cclxuICAgICAqIH1cclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI3VwZGF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3RhIC0gVGhlIGNhbGwgdG8gYWN0aW9uIHRleHQuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gdGV4dCAtIFRoZSB0ZXh0IG9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBhcyB0aGUgc2hhcmUgaW1hZ2UuXHJcbiAgICAgKiBAcGFyYW0gez8oc3RyaW5nfGludGVnZXIpfSBmcmFtZSAtIFRoZSBmcmFtZSBvZiB0aGUgdGV4dHVyZSB0byB1c2UgYXMgdGhlIHNoYXJlIGltYWdlLiBTZXQgdG8gYG51bGxgIGlmIHlvdSBkb24ndCByZXF1aXJlIGEgZnJhbWUsIGJ1dCBkbyBuZWVkIHRvIHNldCBzZXNzaW9uIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGVtcGxhdGUgLSBUaGUgdXBkYXRlIHRlbXBsYXRlIGtleS5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSB1cGRhdGVEYXRhIC0gVGhlIHVwZGF0ZSBkYXRhIG9iamVjdCBwYXlsb2FkLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGU6IGZ1bmN0aW9uIChjdGEsIHRleHQsIGtleSwgZnJhbWUsIHRlbXBsYXRlLCB1cGRhdGVEYXRhKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cGRhdGUoJ0NVU1RPTScsIGN0YSwgdGV4dCwga2V5LCBmcmFtZSwgdGVtcGxhdGUsIHVwZGF0ZURhdGEpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZm9ybXMgRmFjZWJvb2sgb2YgYSBsZWFkZXJib2FyZCB1cGRhdGUgdGhhdCBvY2N1cnJlZCBpbiB0aGUgZ2FtZS5cclxuICAgICAqIFRoaXMgd2lsbCB0ZW1wb3JhcmlseSB5aWVsZCBjb250cm9sIHRvIEZhY2Vib29rIGFuZCBGYWNlYm9vayB3aWxsIGRlY2lkZSB3aGF0IHRvIGRvIGJhc2VkIG9uIHdoYXQgdGhlIHVwZGF0ZSBpcy5cclxuICAgICAqIE9uY2UgRmFjZWJvb2sgcmV0dXJucyBjb250cm9sIHRvIHRoZSBnYW1lIHRoZSBwbHVnaW4gd2lsbCBlbWl0IGFuIGB1cGRhdGVgIG9yIGB1cGRhdGVmYWlsYCBldmVudC5cclxuICAgICAqIFxyXG4gICAgICogSXQgbWFrZXMgYW4gYXN5bmMgY2FsbCB0byB0aGUgQVBJLCBzbyB0aGUgcmVzdWx0IGlzbid0IGF2YWlsYWJsZSBpbW1lZGlhdGVseS5cclxuICAgICAqIFxyXG4gICAgICogVGhlIGB0ZXh0YCBwYXJhbWV0ZXIgaXMgYW4gdXBkYXRlIHBheWxvYWQgd2l0aCB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcclxuICAgICAqIFxyXG4gICAgICogYGBgXHJcbiAgICAgKiB0ZXh0OiB7XHJcbiAgICAgKiAgICAgZGVmYXVsdDogJ1gganVzdCBpbnZhZGVkIFlcXCdzIHZpbGxhZ2UhJyxcclxuICAgICAqICAgICBsb2NhbGl6YXRpb25zOiB7XHJcbiAgICAgKiAgICAgICAgIGFyX0FSOiAnWCBcXHUwNjQxXFx1MDY0MlxcdTA2MzcgXFx1MDYzQVxcdTA2MzJcXHUwNjJBICcgK1xyXG4gICAgICogICAgICAgICAnXFx1MDY0MlxcdTA2MzFcXHUwNjRBXFx1MDYyOSBZIScsXHJcbiAgICAgKiAgICAgICAgIGVuX1VTOiAnWCBqdXN0IGludmFkZWQgWVxcJ3MgdmlsbGFnZSEnLFxyXG4gICAgICogICAgICAgICBlc19MQTogJ1xcdTAwQTFYIGFjYWJhIGRlIGludmFkaXIgZWwgcHVlYmxvIGRlIFkhJyxcclxuICAgICAqICAgICB9XHJcbiAgICAgKiB9XHJcbiAgICAgKiBgYGBcclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiN1cGRhdGVMZWFkZXJib2FyZFxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3RhIC0gVGhlIGNhbGwgdG8gYWN0aW9uIHRleHQuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gdGV4dCAtIFRoZSB0ZXh0IG9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBhcyB0aGUgc2hhcmUgaW1hZ2UuXHJcbiAgICAgKiBAcGFyYW0gez8oc3RyaW5nfGludGVnZXIpfSBmcmFtZSAtIFRoZSBmcmFtZSBvZiB0aGUgdGV4dHVyZSB0byB1c2UgYXMgdGhlIHNoYXJlIGltYWdlLiBTZXQgdG8gYG51bGxgIGlmIHlvdSBkb24ndCByZXF1aXJlIGEgZnJhbWUsIGJ1dCBkbyBuZWVkIHRvIHNldCBzZXNzaW9uIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGVtcGxhdGUgLSBUaGUgdXBkYXRlIHRlbXBsYXRlIGtleS5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSB1cGRhdGVEYXRhIC0gVGhlIHVwZGF0ZSBkYXRhIG9iamVjdCBwYXlsb2FkLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGVMZWFkZXJib2FyZDogZnVuY3Rpb24gKGN0YSwgdGV4dCwga2V5LCBmcmFtZSwgdGVtcGxhdGUsIHVwZGF0ZURhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZSgnTEVBREVSQk9BUkQnLCBjdGEsIHRleHQsIGtleSwgZnJhbWUsIHRlbXBsYXRlLCB1cGRhdGVEYXRhKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCB1cGRhdGUgaGFuZGxlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNfdXBkYXRlXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYWN0aW9uIC0gVGhlIHVwZGF0ZSBhY3Rpb24uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3RhIC0gVGhlIGNhbGwgdG8gYWN0aW9uIHRleHQuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gdGV4dCAtIFRoZSB0ZXh0IG9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSB0ZXh0dXJlIHRvIHVzZSBhcyB0aGUgc2hhcmUgaW1hZ2UuXHJcbiAgICAgKiBAcGFyYW0gez8oc3RyaW5nfGludGVnZXIpfSBmcmFtZSAtIFRoZSBmcmFtZSBvZiB0aGUgdGV4dHVyZSB0byB1c2UgYXMgdGhlIHNoYXJlIGltYWdlLiBTZXQgdG8gYG51bGxgIGlmIHlvdSBkb24ndCByZXF1aXJlIGEgZnJhbWUsIGJ1dCBkbyBuZWVkIHRvIHNldCBzZXNzaW9uIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGVtcGxhdGUgLSBUaGUgdXBkYXRlIHRlbXBsYXRlIGtleS5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSB1cGRhdGVEYXRhIC0gVGhlIHVwZGF0ZSBkYXRhIG9iamVjdCBwYXlsb2FkLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBfdXBkYXRlOiBmdW5jdGlvbiAoYWN0aW9uLCBjdGEsIHRleHQsIGtleSwgZnJhbWUsIHRlbXBsYXRlLCB1cGRhdGVEYXRhKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5jaGVja0FQSSgnc2hhcmVBc3luYycpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY3RhID09PSB1bmRlZmluZWQpIHsgY3RhID0gJyc7IH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB0ZXh0ID09PSAnc3RyaW5nJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRleHQgPSB7ZGVmYXVsdDogdGV4dH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodXBkYXRlRGF0YSA9PT0gdW5kZWZpbmVkKSB7IHVwZGF0ZURhdGEgPSB7fTsgfVxyXG5cclxuICAgICAgICBpZiAoa2V5KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGltYWdlRGF0YSA9IHRoaXMuZ2FtZS50ZXh0dXJlcy5nZXRCYXNlNjQoa2V5LCBmcmFtZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgcGF5bG9hZCA9IHtcclxuICAgICAgICAgICAgYWN0aW9uOiBhY3Rpb24sXHJcbiAgICAgICAgICAgIGN0YTogY3RhLFxyXG4gICAgICAgICAgICBpbWFnZTogaW1hZ2VEYXRhLFxyXG4gICAgICAgICAgICB0ZXh0OiB0ZXh0LFxyXG4gICAgICAgICAgICB0ZW1wbGF0ZTogdGVtcGxhdGUsXHJcbiAgICAgICAgICAgIGRhdGE6IHVwZGF0ZURhdGEsXHJcbiAgICAgICAgICAgIHN0cmF0ZWd5OiAnSU1NRURJQVRFJyxcclxuICAgICAgICAgICAgbm90aWZpY2F0aW9uOiAnTk9fUFVTSCdcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICBGQkluc3RhbnQudXBkYXRlQXN5bmMocGF5bG9hZCkudGhlbihmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgndXBkYXRlJyk7XHJcblxyXG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgX3RoaXMuZW1pdCgndXBkYXRlZmFpbCcsIGUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXF1ZXN0IHRoYXQgdGhlIGNsaWVudCBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgSW5zdGFudCBHYW1lLlxyXG4gICAgICogXHJcbiAgICAgKiBJdCBtYWtlcyBhbiBhc3luYyBjYWxsIHRvIHRoZSBBUEksIHNvIHRoZSByZXN1bHQgaXNuJ3QgYXZhaWxhYmxlIGltbWVkaWF0ZWx5LlxyXG4gICAgICogXHJcbiAgICAgKiBJZiB0aGUgZ2FtZSBzd2l0Y2hlcyBzdWNjZXNzZnVsbHkgdGhpcyBwbHVnaW4gd2lsbCBlbWl0IHRoZSBgc3dpdGNoZ2FtZWAgZXZlbnQgYW5kIHRoZSBjbGllbnQgd2lsbCBsb2FkIHRoZSBuZXcgZ2FtZS5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhleSBjYW5ub3QsIGkuZS4gaXQncyBub3QgaW4gdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIEFQSXMsIG9yIHRoZSByZXF1ZXN0XHJcbiAgICAgKiB3YXMgcmVqZWN0ZWQsIGl0IHdpbGwgZW1pdCBhIGBzd2l0Y2hnYW1lZmFpbGAgZXZlbnQgaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNzd2l0Y2hHYW1lXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBhcHBJRCAtIFRoZSBBcHBsaWNhdGlvbiBJRCBvZiB0aGUgSW5zdGFudCBHYW1lIHRvIHN3aXRjaCB0by4gVGhlIGFwcGxpY2F0aW9uIG11c3QgYmUgYW4gSW5zdGFudCBHYW1lLCBhbmQgbXVzdCBiZWxvbmcgdG8gdGhlIHNhbWUgYnVzaW5lc3MgYXMgdGhlIGN1cnJlbnQgZ2FtZS5cclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbZGF0YV0gLSBBbiBvcHRpb25hbCBkYXRhIHBheWxvYWQuIFRoaXMgd2lsbCBiZSBzZXQgYXMgdGhlIGVudHJ5cG9pbnQgZGF0YSBmb3IgdGhlIGdhbWUgYmVpbmcgc3dpdGNoZWQgdG8uIE11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEwMDAgY2hhcmFjdGVycyB3aGVuIHN0cmluZ2lmaWVkLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzd2l0Y2hHYW1lOiBmdW5jdGlvbiAoYXBwSUQsIGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNrQVBJKCdzd2l0Y2hHYW1lQXN5bmMnKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRhdGEpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgdGVzdCA9IEpTT04uc3RyaW5naWZ5KGRhdGEpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRlc3QubGVuZ3RoID4gMTAwMClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdTd2l0Y2ggR2FtZSBkYXRhIHRvbyBsb25nLiBNYXggMTAwMCBjaGFycy4nKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICBGQkluc3RhbnQuc3dpdGNoR2FtZUFzeW5jKGFwcElELCBkYXRhKS50aGVuKGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBfdGhpcy5lbWl0KCdzd2l0Y2hnYW1lJywgYXBwSUQpO1xyXG5cclxuICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ3N3aXRjaGdhbWVmYWlsJywgZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb21wdHMgdGhlIHVzZXIgdG8gY3JlYXRlIGEgc2hvcnRjdXQgdG8gdGhlIGdhbWUgaWYgdGhleSBhcmUgZWxpZ2libGUgdG8uXHJcbiAgICAgKiBDYW4gb25seSBiZSBjYWxsZWQgb25jZSBwZXIgc2Vzc2lvbi5cclxuICAgICAqIFxyXG4gICAgICogSXQgbWFrZXMgYW4gYXN5bmMgY2FsbCB0byB0aGUgQVBJLCBzbyB0aGUgcmVzdWx0IGlzbid0IGF2YWlsYWJsZSBpbW1lZGlhdGVseS5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhlIHVzZXIgY2hvb3NlIHRvIGNyZWF0ZSBhIHNob3J0Y3V0IHRoaXMgcGx1Z2luIHdpbGwgZW1pdCB0aGUgYHNob3J0Y3V0Y3JlYXRlZGAgZXZlbnQuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZXkgY2Fubm90LCBpLmUuIGl0J3Mgbm90IGluIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBBUElzLCBvciB0aGUgcmVxdWVzdFxyXG4gICAgICogd2FzIHJlamVjdGVkLCBpdCB3aWxsIGVtaXQgYSBgc2hvcnRjdXRjcmVhdGVkZmFpbGAgZXZlbnQgaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNjcmVhdGVTaG9ydGN1dFxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBjcmVhdGVTaG9ydGN1dDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICBGQkluc3RhbnQuY2FuQ3JlYXRlU2hvcnRjdXRBc3luYygpLnRoZW4oZnVuY3Rpb24gKGNhbkNyZWF0ZVNob3J0Y3V0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKGNhbkNyZWF0ZVNob3J0Y3V0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBGQkluc3RhbnQuY3JlYXRlU2hvcnRjdXRBc3luYygpLnRoZW4oZnVuY3Rpb24gKClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdzaG9ydGN1dGNyZWF0ZWQnKTtcclxuXHJcbiAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZSlcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdzaG9ydGN1dGZhaWxlZCcsIGUpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUXVpdHMgdGhlIGdhbWUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jcXVpdFxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICovXHJcbiAgICBxdWl0OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIEZCSW5zdGFudC5xdWl0KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTG9nIGFuIGFwcCBldmVudCB3aXRoIEZCIEFuYWx5dGljcy5cclxuICAgICAqIFxyXG4gICAgICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVycy5mYWNlYm9vay5jb20vZG9jcy9qYXZhc2NyaXB0L3JlZmVyZW5jZS92Mi44I2FwcF9ldmVudHMgZm9yIG1vcmUgZGV0YWlscyBhYm91dCBGQiBBbmFseXRpY3MuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jbG9nXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gTmFtZSBvZiB0aGUgZXZlbnQuIE11c3QgYmUgMiB0byA0MCBjaGFyYWN0ZXJzLCBhbmQgY2FuIG9ubHkgY29udGFpbiAnXycsICctJywgJyAnLCBhbmQgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ZhbHVlXSAtIEFuIG9wdGlvbmFsIG51bWVyaWMgdmFsdWUgdGhhdCBGQiBBbmFseXRpY3MgY2FuIGNhbGN1bGF0ZSBhIHN1bSB3aXRoLlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtwYXJhbXNdIC0gQW4gb3B0aW9uYWwgb2JqZWN0IHRoYXQgY2FuIGNvbnRhaW4gdXAgdG8gMjUga2V5LXZhbHVlIHBhaXJzIHRvIGJlIGxvZ2dlZCB3aXRoIHRoZSBldmVudC4gS2V5cyBtdXN0IGJlIDIgdG8gNDAgY2hhcmFjdGVycywgYW5kIGNhbiBvbmx5IGNvbnRhaW4gJ18nLCAnLScsICcgJywgYW5kIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLiBWYWx1ZXMgbXVzdCBiZSBsZXNzIHRoYW4gMTAwIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBsb2c6IGZ1bmN0aW9uIChuYW1lLCB2YWx1ZSwgcGFyYW1zKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5jaGVja0FQSSgnbG9nRXZlbnQnKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHBhcmFtcyA9PT0gdW5kZWZpbmVkKSB7IHBhcmFtcyA9IHt9OyB9XHJcblxyXG4gICAgICAgIGlmIChuYW1lLmxlbmd0aCA+PSAyICYmIG5hbWUubGVuZ3RoIDw9IDQwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgRkJJbnN0YW50LmxvZ0V2ZW50KG5hbWUsIHBhcnNlRmxvYXQodmFsdWUpLCBwYXJhbXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXR0ZW1wdCB0byBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYW4gaW50ZXJzdGl0aWFsIGFkLlxyXG4gICAgICogXHJcbiAgICAgKiBJZiB0aGUgaW5zdGFuY2UgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkgdGhlbiB0aGUgYWQgaXMgcHJlbG9hZGVkIHJlYWR5IGZvciBkaXNwbGF5IGluLWdhbWUgdmlhIHRoZSBtZXRob2QgYHNob3dBZCgpYC5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhlIGFkIGxvYWRzIGl0IHdpbGwgZW1pdCB0aGUgYGFkbG9hZGVkYCBldmVudCwgcGFzc2luZyB0aGUgQWRJbnN0YW5jZSBhcyB0aGUgb25seSBwYXJhbWV0ZXIuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZSBhZCBjYW5ub3QgYmUgZGlzcGxheWVkIGJlY2F1c2UgdGhlcmUgd2FzIG5vIGludmVudG9yeSB0byBmaWxsIGl0LCBpdCB3aWxsIGVtaXQgdGhlIGBhZHNub2ZpbGxgIGV2ZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI3ByZWxvYWRBZHNcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfHN0cmluZ1tdKX0gcGxhY2VtZW50SUQgLSBUaGUgYWQgcGxhY2VtZW50IElELCBvciBhbiBhcnJheSBvZiBJRHMsIGFzIGNyZWF0ZWQgaW4geW91ciBBdWRpZW5jZSBOZXR3b3JrIHNldHRpbmdzIHdpdGhpbiBGYWNlYm9vay5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbiBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHJlbG9hZEFkczogZnVuY3Rpb24gKHBsYWNlbWVudElEKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5jaGVja0FQSSgnZ2V0SW50ZXJzdGl0aWFsQWRBc3luYycpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocGxhY2VtZW50SUQpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcGxhY2VtZW50SUQgPSBbIHBsYWNlbWVudElEIF07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgaTtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICB2YXIgdG90YWwgPSAwO1xyXG5cclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5hZHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWRzW2ldLnNob3duKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0b3RhbCsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodG90YWwgKyBwbGFjZW1lbnRJRC5sZW5ndGggPj0gMylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignVG9vIG1hbnkgQWRJbnN0YW5jZXMuIFNob3cgYW4gYWQgYmVmb3JlIGxvYWRpbmcgbW9yZScpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBwbGFjZW1lbnRJRC5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBpZCA9IHBsYWNlbWVudElEW2ldO1xyXG4gICAgICAgICAgICB2YXIgZGF0YTtcclxuXHJcbiAgICAgICAgICAgIEZCSW5zdGFudC5nZXRJbnRlcnN0aXRpYWxBZEFzeW5jKGlkKS50aGVuKGZ1bmN0aW9uIChpbnRlcnN0aXRpYWwpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGRhdGEgPSBpbnRlcnN0aXRpYWw7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGludGVyc3RpdGlhbC5sb2FkQXN5bmMoKTtcclxuXHJcbiAgICAgICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFyIGFkID0gQWRJbnN0YW5jZShpZCwgZGF0YSwgZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgICAgIF90aGlzLmFkcy5wdXNoKGFkKTtcclxuXHJcbiAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdhZGxvYWRlZCcsIGFkKTtcclxuXHJcbiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09PSAnQURTX05PX0ZJTEwnKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIF90aGlzLmVtaXQoJ2Fkc25vZmlsbCcsIGlkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGUuY29kZSA9PT0gJ0FEU19GUkVRVUVOVF9MT0FEJylcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdhZHNmcmVxdWVudGxvYWQnLCBpZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEF0dGVtcHQgdG8gY3JlYXRlIGFuIGluc3RhbmNlIG9mIGFuIHJld2FyZGVkIHZpZGVvIGFkLlxyXG4gICAgICogXHJcbiAgICAgKiBJZiB0aGUgaW5zdGFuY2UgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkgdGhlbiB0aGUgYWQgaXMgcHJlbG9hZGVkIHJlYWR5IGZvciBkaXNwbGF5IGluLWdhbWUgdmlhIHRoZSBtZXRob2QgYHNob3dWaWRlbygpYC5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhlIGFkIGxvYWRzIGl0IHdpbGwgZW1pdCB0aGUgYGFkbG9hZGVkYCBldmVudCwgcGFzc2luZyB0aGUgQWRJbnN0YW5jZSBhcyB0aGUgb25seSBwYXJhbWV0ZXIuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZSBhZCBjYW5ub3QgYmUgZGlzcGxheWVkIGJlY2F1c2UgdGhlcmUgd2FzIG5vIGludmVudG9yeSB0byBmaWxsIGl0LCBpdCB3aWxsIGVtaXQgdGhlIGBhZHNub2ZpbGxgIGV2ZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI3ByZWxvYWRWaWRlb0Fkc1xyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8c3RyaW5nW10pfSBwbGFjZW1lbnRJRCAtIFRoZSBhZCBwbGFjZW1lbnQgSUQsIG9yIGFuIGFycmF5IG9mIElEcywgYXMgY3JlYXRlZCBpbiB5b3VyIEF1ZGllbmNlIE5ldHdvcmsgc2V0dGluZ3Mgd2l0aGluIEZhY2Vib29rLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBwcmVsb2FkVmlkZW9BZHM6IGZ1bmN0aW9uIChwbGFjZW1lbnRJRClcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tBUEkoJ2dldFJld2FyZGVkVmlkZW9Bc3luYycpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocGxhY2VtZW50SUQpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcGxhY2VtZW50SUQgPSBbIHBsYWNlbWVudElEIF07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgaTtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICB2YXIgdG90YWwgPSAwO1xyXG5cclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5hZHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuYWRzW2ldLnNob3duKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0b3RhbCsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodG90YWwgKyBwbGFjZW1lbnRJRC5sZW5ndGggPj0gMylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignVG9vIG1hbnkgQWRJbnN0YW5jZXMuIFNob3cgYW4gYWQgYmVmb3JlIGxvYWRpbmcgbW9yZScpO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBwbGFjZW1lbnRJRC5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBpZCA9IHBsYWNlbWVudElEW2ldO1xyXG4gICAgICAgICAgICB2YXIgZGF0YTtcclxuXHJcbiAgICAgICAgICAgIEZCSW5zdGFudC5nZXRSZXdhcmRlZFZpZGVvQXN5bmMoaWQpLnRoZW4oZnVuY3Rpb24gKHJld2FyZClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZGF0YSA9IHJld2FyZDtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcmV3YXJkLmxvYWRBc3luYygpO1xyXG5cclxuICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YXIgYWQgPSBBZEluc3RhbmNlKGlkLCBkYXRhLCB0cnVlKTtcclxuXHJcbiAgICAgICAgICAgICAgICBfdGhpcy5hZHMucHVzaChhZCk7XHJcblxyXG4gICAgICAgICAgICAgICAgX3RoaXMuZW1pdCgnYWRsb2FkZWQnLCBhZCk7XHJcblxyXG4gICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gJ0FEU19OT19GSUxMJylcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdhZHNub2ZpbGwnLCBpZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChlLmNvZGUgPT09ICdBRFNfRlJFUVVFTlRfTE9BRCcpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuZW1pdCgnYWRzZnJlcXVlbnRsb2FkJywgaWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXNwbGF5cyBhIHByZXZpb3VzbHkgbG9hZGVkIGludGVyc3RpdGlhbCBhZC5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhlIGFkIGlzIHN1Y2Nlc3NmdWxseSBkaXNwbGF5ZWQgdGhpcyBwbHVnaW4gd2lsbCBlbWl0IHRoZSBgYWRmaW5pc2hlZGAgZXZlbnQsIHdpdGggdGhlIEFkSW5zdGFuY2Ugb2JqZWN0IGFzIGl0cyBwYXJhbWV0ZXIuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZSBhZCBjYW5ub3QgYmUgZGlzcGxheWVkLCBpdCB3aWxsIGVtaXQgdGhlIGBhZHNub3Rsb2FkZWRgIGV2ZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI3Nob3dBZFxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGxhY2VtZW50SUQgLSBUaGUgYWQgcGxhY2VtZW50IElEIHRvIGRpc3BsYXkuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBQbHVnaW4gaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNob3dBZDogZnVuY3Rpb24gKHBsYWNlbWVudElEKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5hZHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgYWQgPSB0aGlzLmFkc1tpXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChhZC5wbGFjZW1lbnRJRCA9PT0gcGxhY2VtZW50SUQgJiYgIWFkLnNob3duKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBhZC5pbnN0YW5jZS5zaG93QXN5bmMoKS50aGVuKGZ1bmN0aW9uICgpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWQuc2hvd24gPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdhZGZpbmlzaGVkJywgYWQpO1xyXG5cclxuICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmNvZGUgPT09ICdBRFNfTk9UX0xPQURFRCcpXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdhZHNub3Rsb2FkZWQnLCBhZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGUuY29kZSA9PT0gJ1JBVEVfTElNSVRFRCcpXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdhZHJhdGVsaW1pdGVkJywgYWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdhZHNob3dlcnJvcicsIGUsIGFkKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXNwbGF5cyBhIHByZXZpb3VzbHkgbG9hZGVkIGludGVyc3RpdGlhbCB2aWRlbyBhZC5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhlIGFkIGlzIHN1Y2Nlc3NmdWxseSBkaXNwbGF5ZWQgdGhpcyBwbHVnaW4gd2lsbCBlbWl0IHRoZSBgYWRmaW5pc2hlZGAgZXZlbnQsIHdpdGggdGhlIEFkSW5zdGFuY2Ugb2JqZWN0IGFzIGl0cyBwYXJhbWV0ZXIuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZSBhZCBjYW5ub3QgYmUgZGlzcGxheWVkLCBpdCB3aWxsIGVtaXQgdGhlIGBhZHNub3Rsb2FkZWRgIGV2ZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luI3Nob3dWaWRlb1xyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGxhY2VtZW50SUQgLSBUaGUgYWQgcGxhY2VtZW50IElEIHRvIGRpc3BsYXkuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBQbHVnaW4gaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNob3dWaWRlbzogZnVuY3Rpb24gKHBsYWNlbWVudElEKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5hZHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgYWQgPSB0aGlzLmFkc1tpXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChhZC5wbGFjZW1lbnRJRCA9PT0gcGxhY2VtZW50SUQgJiYgYWQudmlkZW8gJiYgIWFkLnNob3duKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBhZC5pbnN0YW5jZS5zaG93QXN5bmMoKS50aGVuKGZ1bmN0aW9uICgpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWQuc2hvd24gPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdhZGZpbmlzaGVkJywgYWQpO1xyXG5cclxuICAgICAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlLmNvZGUgPT09ICdBRFNfTk9UX0xPQURFRCcpXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdhZHNub3Rsb2FkZWQnLCBhZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGUuY29kZSA9PT0gJ1JBVEVfTElNSVRFRCcpXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdhZHJhdGVsaW1pdGVkJywgYWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdhZHNob3dlcnJvcicsIGUsIGFkKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBdHRlbXB0cyB0byBtYXRjaCB0aGUgY3VycmVudCBwbGF5ZXIgd2l0aCBvdGhlciB1c2VycyBsb29raW5nIGZvciBwZW9wbGUgdG8gcGxheSB3aXRoLlxyXG4gICAgICogSWYgc3VjY2Vzc2Z1bCwgYSBuZXcgTWVzc2VuZ2VyIGdyb3VwIHRocmVhZCB3aWxsIGJlIGNyZWF0ZWQgY29udGFpbmluZyB0aGUgbWF0Y2hlZCBwbGF5ZXJzIGFuZCB0aGUgcGxheWVyIHdpbGxcclxuICAgICAqIGJlIGNvbnRleHQgc3dpdGNoZWQgdG8gdGhhdCB0aHJlYWQuIFRoaXMgcGx1Z2luIHdpbGwgYWxzbyBkaXNwYXRjaCB0aGUgYG1hdGNocGxheWVyYCBldmVudCwgY29udGFpbmluZyB0aGUgbmV3IGNvbnRleHQgSUQgYW5kIFR5cGUuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBkZWZhdWx0IG1pbmltdW0gYW5kIG1heGltdW0gbnVtYmVyIG9mIHBsYXllcnMgaW4gb25lIG1hdGNoZWQgdGhyZWFkIGFyZSAyIGFuZCAyMCByZXNwZWN0aXZlbHksXHJcbiAgICAgKiBkZXBlbmRpbmcgb24gaG93IG1hbnkgcGxheWVycyBhcmUgdHJ5aW5nIHRvIGdldCBtYXRjaGVkIGFyb3VuZCB0aGUgc2FtZSB0aW1lLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgdmFsdWVzIGNhbiBiZSBjaGFuZ2VkIGluIGBmYmFwcC1jb25maWcuanNvbmAuIFNlZSB0aGUgQnVuZGxlIENvbmZpZyBkb2N1bWVudGF0aW9uIGZvciBkb2N1bWVudGF0aW9uIGFib3V0IGBmYmFwcC1jb25maWcuanNvbmAuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4jbWF0Y2hQbGF5ZXJcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFttYXRjaFRhZ10gLSBPcHRpb25hbCBleHRyYSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGxheWVyIHVzZWQgdG8gZ3JvdXAgdGhlbSB3aXRoIHNpbWlsYXIgcGxheWVycy4gUGxheWVycyB3aWxsIG9ubHkgYmUgZ3JvdXBlZCB3aXRoIG90aGVyIHBsYXllcnMgd2l0aCBleGFjdGx5IHRoZSBzYW1lIHRhZy4gVGhlIHRhZyBtdXN0IG9ubHkgaW5jbHVkZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgdW5kZXJzY29yZXMgYW5kIGJlIDEwMCBjaGFyYWN0ZXJzIG9yIGxlc3MgaW4gbGVuZ3RoLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbc3dpdGNoSW1tZWRpYXRlbHk9ZmFsc2VdIC0gT3B0aW9uYWwgZXh0cmEgcGFyYW1ldGVyIHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIHBsYXllciBzaG91bGQgYmUgaW1tZWRpYXRlbHkgc3dpdGNoZWQgdG8gdGhlIG5ldyBjb250ZXh0IHdoZW4gYSBtYXRjaCBpcyBmb3VuZC4gQnkgZGVmYXVsdCB0aGlzIHdpbGwgYmUgZmFsc2Ugd2hpY2ggd2lsbCBtZWFuIHRoZSBwbGF5ZXIgbmVlZHMgZXhwbGljaXRseSBwcmVzcyBwbGF5IGFmdGVyIGJlaW5nIG1hdGNoZWQgdG8gc3dpdGNoIHRvIHRoZSBuZXcgY29udGV4dC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbiBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgbWF0Y2hQbGF5ZXI6IGZ1bmN0aW9uIChtYXRjaFRhZywgc3dpdGNoSW1tZWRpYXRlbHkpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG1hdGNoVGFnID09PSB1bmRlZmluZWQpIHsgbWF0Y2hUYWcgPSBudWxsOyB9XHJcbiAgICAgICAgaWYgKHN3aXRjaEltbWVkaWF0ZWx5ID09PSB1bmRlZmluZWQpIHsgc3dpdGNoSW1tZWRpYXRlbHkgPSBmYWxzZTsgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tBUEkoJ21hdGNoUGxheWVyQXN5bmMnKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgRkJJbnN0YW50Lm1hdGNoUGxheWVyQXN5bmMobWF0Y2hUYWcsIHN3aXRjaEltbWVkaWF0ZWx5KS50aGVuKGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBfdGhpcy5nZXRJRCgpO1xyXG4gICAgICAgICAgICBfdGhpcy5nZXRUeXBlKCk7XHJcblxyXG4gICAgICAgICAgICBfdGhpcy5lbWl0KCdtYXRjaHBsYXllcicsIF90aGlzLmNvbnRleHRJRCwgX3RoaXMuY29udGV4dFR5cGUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGZXRjaCBhIHNwZWNpZmljIGxlYWRlcmJvYXJkIGJlbG9uZ2luZyB0byB0aGlzIEluc3RhbnQgR2FtZS5cclxuICAgICAqIFxyXG4gICAgICogVGhlIGRhdGEgaXMgcmVxdWVzdGVkIGluIGFuIGFzeW5jIGNhbGwsIHNvIHRoZSByZXN1bHQgaXNuJ3QgYXZhaWxhYmxlIGltbWVkaWF0ZWx5LlxyXG4gICAgICogXHJcbiAgICAgKiBXaGVuIHRoZSBjYWxsIGNvbXBsZXRlcyB0aGUgYGdldGxlYWRlcmJvYXJkYCBldmVudCB3aWxsIGJlIGVtaXR0ZWQgYWxvbmcgd2l0aCBhIExlYWRlcmJvYXJkIG9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNnZXRMZWFkZXJib2FyZFxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBsZWFkZXJib2FyZC4gRWFjaCBsZWFkZXJib2FyZCBmb3IgYW4gSW5zdGFudCBHYW1lIG11c3QgaGF2ZSBpdHMgb3duIGRpc3RpbmN0IG5hbWUuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRmFjZWJvb2sgSW5zdGFudCBHYW1lcyBQbHVnaW4gaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGdldExlYWRlcmJvYXJkOiBmdW5jdGlvbiAobmFtZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuY2hlY2tBUEkoJ2dldExlYWRlcmJvYXJkQXN5bmMnKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgRkJJbnN0YW50LmdldExlYWRlcmJvYXJkQXN5bmMobmFtZSkudGhlbihmdW5jdGlvbiAoZGF0YSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBsZWFkZXJib2FyZCA9IG5ldyBMZWFkZXJib2FyZChfdGhpcywgZGF0YSk7XHJcblxyXG4gICAgICAgICAgICBfdGhpcy5sZWFkZXJib2FyZHNbbmFtZV0gPSBsZWFkZXJib2FyZDtcclxuXHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ2dldGxlYWRlcmJvYXJkJywgbGVhZGVyYm9hcmQpO1xyXG5cclxuICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUXVpdHMgdGhlIEZhY2Vib29rIEFQSSBhbmQgdGhlbiBkZXN0cm95cyB0aGlzIHBsdWdpbi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc1BsdWdpbiNkZXN0cm95XHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgRkJJbnN0YW50LnF1aXQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5kYXRhLmRlc3Ryb3koKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jYXRhbG9nID0gW107XHJcbiAgICAgICAgdGhpcy5wdXJjaGFzZXMgPSBbXTtcclxuICAgICAgICB0aGlzLmxlYWRlcmJvYXJkcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuYWRzID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuZ2FtZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW47XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMTggUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Bob3RvbnN0b3JtL3BoYXNlci9ibG9iL21hc3Rlci9saWNlbnNlLnR4dHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi8uLi9zcmMvdXRpbHMvQ2xhc3MnKTtcclxudmFyIEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoJ2V2ZW50ZW1pdHRlcjMnKTtcclxudmFyIExlYWRlcmJvYXJkU2NvcmUgPSByZXF1aXJlKCcuL0xlYWRlcmJvYXJkU2NvcmUnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBvbmUgc2luZ2xlIExlYWRlcmJvYXJkIHRoYXQgYmVsb25ncyB0byBhIEZhY2Vib29rIEluc3RhbnQgR2FtZS5cclxuICogXHJcbiAqIFlvdSBkbyBub3QgbmVlZCB0byBpbnN0YW50aWF0ZSB0aGlzIGNsYXNzIGRpcmVjdGx5LCBpdCB3aWxsIGJlIGNyZWF0ZWQgd2hlbiB5b3UgdXNlIHRoZVxyXG4gKiBgZ2V0TGVhZGVyYm9hcmQoKWAgbWV0aG9kIG9mIHRoZSBtYWluIHBsdWdpbi5cclxuICpcclxuICogQGNsYXNzIEZhY2Vib29rSW5zdGFudEdhbWVzTGVhZGVyYm9hcmRcclxuICogQG1lbWJlck9mIFBoYXNlclxyXG4gKiBAY29uc3RydWN0b3JcclxuICogQGV4dGVuZHMgUGhhc2VyLkV2ZW50cy5FdmVudEVtaXR0ZXJcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW59IHBsdWdpbiAtIEEgcmVmZXJlbmNlIHRvIHRoZSBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbi5cclxuICogQHBhcmFtIHthbnl9IGRhdGEgLSBBbiBJbnN0YW50IEdhbWUgbGVhZGVyYm9hcmQgaW5zdGFuY2UuXHJcbiAqL1xyXG52YXIgTGVhZGVyYm9hcmQgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IEV2ZW50RW1pdHRlcixcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIExlYWRlcmJvYXJkIChwbHVnaW4sIGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgRXZlbnRFbWl0dGVyLmNhbGwodGhpcyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBGYWNlYm9vayBJbnN0YW50IEdhbWVzIFBsdWdpbi5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc0xlYWRlcmJvYXJkI3BsdWdpblxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbiBJbnN0YW50IEdhbWUgbGVhZGVyYm9hcmQgaW5zdGFuY2UuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNMZWFkZXJib2FyZCNyZWZcclxuICAgICAgICAgKiBAdHlwZSB7YW55fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJlZiA9IGRhdGE7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBuYW1lIG9mIHRoZSBsZWFkZXJib2FyZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc0xlYWRlcmJvYXJkI25hbWVcclxuICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm5hbWUgPSBkYXRhLmdldE5hbWUoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIElEIG9mIHRoZSBjb250ZXh0IHRoYXQgdGhlIGxlYWRlcmJvYXJkIGlzIGFzc29jaWF0ZWQgd2l0aCwgb3IgbnVsbCBpZiB0aGUgbGVhZGVyYm9hcmQgaXMgbm90IHRpZWQgdG8gYSBwYXJ0aWN1bGFyIGNvbnRleHQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNMZWFkZXJib2FyZCNjb250ZXh0SURcclxuICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNvbnRleHRJRCA9IGRhdGEuZ2V0Q29udGV4dElEKCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgcGxheWVyIGVudHJpZXMgaW4gdGhlIGxlYWRlcmJvYXJkLlxyXG4gICAgICAgICAqIFRoaXMgdmFsdWUgZGVmYXVsdHMgdG8gemVyby4gUG9wdWxhdGUgaXQgdmlhIHRoZSBgZ2V0RW50cnlDb3VudCgpYCBtZXRob2QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNMZWFkZXJib2FyZCNlbnRyeUNvdW50XHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZW50cnlDb3VudCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBwbGF5ZXJzIHNjb3JlIG9iamVjdC5cclxuICAgICAgICAgKiBUaGlzIHZhbHVlIGRlZmF1bHRzIHRvIGBudWxsYC4gUG9wdWxhdGUgaXQgdmlhIHRoZSBgZ2V0UGxheWVyU2NvcmUoKWAgbWV0aG9kLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzTGVhZGVyYm9hcmQjcGxheWVyU2NvcmVcclxuICAgICAgICAgKiBAdHlwZSB7TGVhZGVyYm9hcmRTY29yZX1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wbGF5ZXJTY29yZSA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBzY29yZXMgaW4gdGhlIExlYWRlcmJvYXJkIGZyb20gdGhlIGN1cnJlbnRseSByZXF1ZXN0ZWQgcmFuZ2UuXHJcbiAgICAgICAgICogVGhpcyB2YWx1ZSBkZWZhdWx0cyB0byBhbiBlbXB0eSBhcnJheS4gUG9wdWxhdGUgaXQgdmlhIHRoZSBgZ2V0U2NvcmVzKClgIG1ldGhvZC5cclxuICAgICAgICAgKiBUaGUgY29udGVudHMgb2YgdGhpcyBhcnJheSBhcmUgcmVzZXQgZWFjaCB0aW1lIGBnZXRTY29yZXMoKWAgaXMgY2FsbGVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzTGVhZGVyYm9hcmQjc2NvcmVzXHJcbiAgICAgICAgICogQHR5cGUge0xlYWRlcmJvYXJkU2NvcmVbXX1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zY29yZXMgPSBbXTtcclxuXHJcbiAgICAgICAgdGhpcy5nZXRFbnRyeUNvdW50KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmV0Y2hlcyB0aGUgdG90YWwgbnVtYmVyIG9mIHBsYXllciBlbnRyaWVzIGluIHRoZSBsZWFkZXJib2FyZC5cclxuICAgICAqIFxyXG4gICAgICogVGhlIGRhdGEgaXMgcmVxdWVzdGVkIGluIGFuIGFzeW5jIGNhbGwsIHNvIHRoZSByZXN1bHQgaXNuJ3QgYXZhaWxhYmxlIGltbWVkaWF0ZWx5LlxyXG4gICAgICogXHJcbiAgICAgKiBXaGVuIHRoZSBjYWxsIGNvbXBsZXRlcyB0aGlzIExlYWRlcmJvYXJkIHdpbGwgZW1pdCB0aGUgYGdldGVudHJ5Y291bnRgIGV2ZW50IGFsb25nIHdpdGggdGhlIGNvdW50IGFuZCBuYW1lIG9mIHRoZSBMZWFkZXJib2FyZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5GYWNlYm9va0luc3RhbnRHYW1lc0xlYWRlcmJvYXJkI2dldEVudHJ5Q291bnRcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBMZWFkZXJib2FyZCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgZ2V0RW50cnlDb3VudDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICB0aGlzLnJlZi5nZXRFbnRyeUNvdW50QXN5bmMoKS50aGVuKGZ1bmN0aW9uIChjb3VudClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIF90aGlzLmVudHJ5Q291bnQgPSBjb3VudDtcclxuXHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ2dldGVudHJ5Y291bnQnLCBjb3VudCwgX3RoaXMubmFtZSk7XHJcblxyXG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKGUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHRoZSBwbGF5ZXIncyBzY29yZS4gSWYgdGhlIHBsYXllciBoYXMgYW4gZXhpc3Rpbmcgc2NvcmUsIHRoZSBvbGQgc2NvcmUgd2lsbCBvbmx5IGJlIHJlcGxhY2VkIGlmIHRoZSBuZXcgc2NvcmUgaXMgYmV0dGVyIHRoYW4gaXQuXHJcbiAgICAgKiBOT1RFOiBJZiB0aGUgbGVhZGVyYm9hcmQgaXMgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgY29udGV4dCwgdGhlIGdhbWUgbXVzdCBiZSBpbiB0aGF0IGNvbnRleHQgdG8gc2V0IGEgc2NvcmUgZm9yIHRoZSBwbGF5ZXIuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBkYXRhIGlzIHJlcXVlc3RlZCBpbiBhbiBhc3luYyBjYWxsLCBzbyB0aGUgcmVzdWx0IGlzbid0IGF2YWlsYWJsZSBpbW1lZGlhdGVseS5cclxuICAgICAqIFxyXG4gICAgICogV2hlbiB0aGUgY2FsbCBjb21wbGV0ZXMgdGhpcyBMZWFkZXJib2FyZCB3aWxsIGVtaXQgdGhlIGBzZXRzY29yZWAgZXZlbnQgYWxvbmcgd2l0aCB0aGUgTGVhZGVyYm9hcmRTY29yZSBvYmplY3QgYW5kIHRoZSBuYW1lIG9mIHRoZSBMZWFkZXJib2FyZC5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhlIHNhdmUgZmFpbHMgdGhlIGV2ZW50IHdpbGwgc2VuZCBgbnVsbGAgYXMgdGhlIHNjb3JlIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzTGVhZGVyYm9hcmQjc2V0U2NvcmVcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBzY29yZSAtIFRoZSBuZXcgc2NvcmUgZm9yIHRoZSBwbGF5ZXIuIE11c3QgYmUgYSA2NC1iaXQgaW50ZWdlciBudW1iZXIuXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8YW55KX0gW2RhdGFdIC0gTWV0YWRhdGEgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHN0b3JlZCBzY29yZS4gTXVzdCBiZSBsZXNzIHRoYW4gMktCIGluIHNpemUuIElmIGFuIG9iamVjdCBpcyBnaXZlbiBpdCB3aWxsIGJlIHBhc3NlZCB0byBgSlNPTi5zdHJpbmdpZnlgLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIExlYWRlcmJvYXJkIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRTY29yZTogZnVuY3Rpb24gKHNjb3JlLCBkYXRhKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHsgZGF0YSA9ICcnOyB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBkYXRhID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICB0aGlzLnJlZi5zZXRTY29yZUFzeW5jKHNjb3JlLCBkYXRhKS50aGVuKGZ1bmN0aW9uIChlbnRyeSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyeSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFyIHNjb3JlID0gTGVhZGVyYm9hcmRTY29yZShlbnRyeSk7XHJcblxyXG4gICAgICAgICAgICAgICAgX3RoaXMucGxheWVyU2NvcmUgPSBzY29yZTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgX3RoaXMuZW1pdCgnc2V0c2NvcmUnLCBzY29yZSwgX3RoaXMubmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdzZXRzY29yZScsIG51bGwsIF90aGlzLm5hbWUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKGUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBwbGF5ZXJzIGxlYWRlcmJvYXJkIGVudHJ5IGFuZCBzdG9yZXMgaXQgaW4gdGhlIGBwbGF5ZXJTY29yZWAgcHJvcGVydHkuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBkYXRhIGlzIHJlcXVlc3RlZCBpbiBhbiBhc3luYyBjYWxsLCBzbyB0aGUgcmVzdWx0IGlzbid0IGF2YWlsYWJsZSBpbW1lZGlhdGVseS5cclxuICAgICAqIFxyXG4gICAgICogV2hlbiB0aGUgY2FsbCBjb21wbGV0ZXMgdGhpcyBMZWFkZXJib2FyZCB3aWxsIGVtaXQgdGhlIGBnZXRwbGF5ZXJzY29yZWAgZXZlbnQgYWxvbmcgd2l0aCB0aGUgc2NvcmUgYW5kIHRoZSBuYW1lIG9mIHRoZSBMZWFkZXJib2FyZC5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhlIHBsYXllciBoYXMgbm90IHlldCBzYXZlZCBhIHNjb3JlLCB0aGUgZXZlbnQgd2lsbCBzZW5kIGBudWxsYCBhcyB0aGUgc2NvcmUgdmFsdWUsIGFuZCBgcGxheWVyU2NvcmVgIHdpbGwgYmUgc2V0IHRvIGBudWxsYCBhcyB3ZWxsLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzTGVhZGVyYm9hcmQjZ2V0UGxheWVyU2NvcmVcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBMZWFkZXJib2FyZCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgZ2V0UGxheWVyU2NvcmU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgdGhpcy5yZWYuZ2V0UGxheWVyRW50cnlBc3luYygpLnRoZW4oZnVuY3Rpb24gKGVudHJ5KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKGVudHJ5KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YXIgc2NvcmUgPSBMZWFkZXJib2FyZFNjb3JlKGVudHJ5KTtcclxuXHJcbiAgICAgICAgICAgICAgICBfdGhpcy5wbGF5ZXJTY29yZSA9IHNjb3JlO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBfdGhpcy5lbWl0KCdnZXRwbGF5ZXJzY29yZScsIHNjb3JlLCBfdGhpcy5uYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIF90aGlzLmVtaXQoJ2dldHBsYXllcnNjb3JlJywgbnVsbCwgX3RoaXMubmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIHNldCBvZiBsZWFkZXJib2FyZCBlbnRyaWVzLCBvcmRlcmVkIGJ5IHNjb3JlIHJhbmtpbmcgaW4gdGhlIGxlYWRlcmJvYXJkLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgZGF0YSBpcyByZXF1ZXN0ZWQgaW4gYW4gYXN5bmMgY2FsbCwgc28gdGhlIHJlc3VsdCBpc24ndCBhdmFpbGFibGUgaW1tZWRpYXRlbHkuXHJcbiAgICAgKiBcclxuICAgICAqIFdoZW4gdGhlIGNhbGwgY29tcGxldGVzIHRoaXMgTGVhZGVyYm9hcmQgd2lsbCBlbWl0IHRoZSBgZ2V0c2NvcmVzYCBldmVudCBhbG9uZyB3aXRoIGFuIGFycmF5IG9mIExlYWRlcmJvYXJkU2NvcmUgZW50cmllcyBhbmQgdGhlIG5hbWUgb2YgdGhlIExlYWRlcmJvYXJkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzTGVhZGVyYm9hcmQjZ2V0U2NvcmVzXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2NvdW50PTEwXSAtIFRoZSBudW1iZXIgb2YgZW50cmllcyB0byBhdHRlbXB0IHRvIGZldGNoIGZyb20gdGhlIGxlYWRlcmJvYXJkLiBDdXJyZW50bHksIHVwIHRvIGEgbWF4aW11bSBvZiAxMDAgZW50cmllcyBtYXkgYmUgZmV0Y2hlZCBwZXIgcXVlcnkuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtvZmZzZXQ9MF0gLSBUaGUgb2Zmc2V0IGZyb20gdGhlIHRvcCBvZiB0aGUgbGVhZGVyYm9hcmQgdGhhdCBlbnRyaWVzIHdpbGwgYmUgZmV0Y2hlZCBmcm9tLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIExlYWRlcmJvYXJkIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBnZXRTY29yZXM6IGZ1bmN0aW9uIChjb3VudCwgb2Zmc2V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChjb3VudCA9PT0gdW5kZWZpbmVkKSB7IGNvdW50ID0gMTA7IH1cclxuICAgICAgICBpZiAob2Zmc2V0ID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0ID0gMDsgfVxyXG5cclxuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG5cclxuICAgICAgICB0aGlzLnJlZi5nZXRFbnRyaWVzQXN5bmMoY291bnQsIG9mZnNldCkudGhlbihmdW5jdGlvbiAoZW50cmllcylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIF90aGlzLnNjb3JlcyA9IFtdO1xyXG5cclxuICAgICAgICAgICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uIChlbnRyeSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgX3RoaXMuc2NvcmVzLnB1c2goTGVhZGVyYm9hcmRTY29yZShlbnRyeSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIF90aGlzLmVtaXQoJ2dldHNjb3JlcycsIF90aGlzLnNjb3JlcywgX3RoaXMubmFtZSk7XHJcblxyXG4gICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKGUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYSBzZXQgb2YgbGVhZGVyYm9hcmQgZW50cmllcywgYmFzZWQgb24gdGhlIGN1cnJlbnQgcGxheWVyJ3MgY29ubmVjdGVkIHBsYXllcnMgKGluY2x1ZGluZyB0aGUgY3VycmVudCBwbGF5ZXIpLCBvcmRlcmVkIGJ5IGxvY2FsIHJhbmsgd2l0aGluIHRoZSBzZXQgb2YgY29ubmVjdGVkIHBsYXllcnMuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBkYXRhIGlzIHJlcXVlc3RlZCBpbiBhbiBhc3luYyBjYWxsLCBzbyB0aGUgcmVzdWx0IGlzbid0IGF2YWlsYWJsZSBpbW1lZGlhdGVseS5cclxuICAgICAqIFxyXG4gICAgICogV2hlbiB0aGUgY2FsbCBjb21wbGV0ZXMgdGhpcyBMZWFkZXJib2FyZCB3aWxsIGVtaXQgdGhlIGBnZXRjb25uZWN0ZWRzY29yZXNgIGV2ZW50IGFsb25nIHdpdGggYW4gYXJyYXkgb2YgTGVhZGVyYm9hcmRTY29yZSBlbnRyaWVzIGFuZCB0aGUgbmFtZSBvZiB0aGUgTGVhZGVyYm9hcmQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRmFjZWJvb2tJbnN0YW50R2FtZXNMZWFkZXJib2FyZCNnZXRDb25uZWN0ZWRTY29yZXNcclxuICAgICAqIEBzaW5jZSAzLjE2LjBcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBMZWFkZXJib2FyZCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgZ2V0Q29ubmVjdGVkU2NvcmVzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XHJcblxyXG4gICAgICAgIHRoaXMucmVmLmdldENvbm5lY3RlZFBsYXllckVudHJpZXNBc3luYygpLnRoZW4oZnVuY3Rpb24gKGVudHJpZXMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBfdGhpcy5zY29yZXMgPSBbXTtcclxuXHJcbiAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaChmdW5jdGlvbiAoZW50cnkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIF90aGlzLnNjb3Jlcy5wdXNoKExlYWRlcmJvYXJkU2NvcmUoZW50cnkpKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBfdGhpcy5lbWl0KCdnZXRjb25uZWN0ZWRzY29yZXMnLCBfdGhpcy5zY29yZXMsIF90aGlzLm5hbWUpO1xyXG5cclxuICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihlKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gTGVhZGVyYm9hcmQ7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMTggUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Bob3RvbnN0b3JtL3BoYXNlci9ibG9iL21hc3Rlci9saWNlbnNlLnR4dHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQHR5cGVkZWYge29iamVjdH0gTGVhZGVyYm9hcmRTY29yZVxyXG4gKlxyXG4gKiBAcHJvcGVydHkge2ludGVnZXJ9IHNjb3JlIC0gQW4gaW50ZWdlciBzY29yZSB2YWx1ZS5cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IHNjb3JlRm9ybWF0dGVkIC0gVGhlIHNjb3JlIHZhbHVlLCBmb3JtYXR0ZWQgd2l0aCB0aGUgc2NvcmUgZm9ybWF0IGFzc29jaWF0ZWQgd2l0aCB0aGUgbGVhZGVyYm9hcmQuXHJcbiAqIEBwcm9wZXJ0eSB7aW50ZWdlcn0gdGltZXN0YW1wIC0gVGhlIFVuaXggdGltZXN0YW1wIG9mIHdoZW4gdGhlIGxlYWRlcmJvYXJkIGVudHJ5IHdhcyBsYXN0IHVwZGF0ZWQuXHJcbiAqIEBwcm9wZXJ0eSB7aW50ZWdlcn0gcmFuayAtIFRoZSBlbnRyeSdzIGxlYWRlcmJvYXJkIHJhbmtpbmcuXHJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBkYXRhIC0gVGhlIGRldmVsb3Blci1zcGVjaWZpZWQgcGF5bG9hZCBhc3NvY2lhdGVkIHdpdGggdGhlIHNjb3JlLCBvciBudWxsIGlmIG9uZSB3YXMgbm90IHNldC5cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IHBsYXllck5hbWUgLSBUaGUgcGxheWVyJ3MgbG9jYWxpemVkIGRpc3BsYXkgbmFtZS5cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IHBsYXllclBob3RvVVJMIC0gIEEgdXJsIHRvIHRoZSBwbGF5ZXIncyBwdWJsaWMgcHJvZmlsZSBwaG90by5cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IHBsYXllcklEIC0gVGhlIGdhbWUncyB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBsYXllci5cclxuICovXHJcblxyXG52YXIgTGVhZGVyYm9hcmRTY29yZSA9IGZ1bmN0aW9uIChlbnRyeSlcclxue1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBzY29yZTogZW50cnkuZ2V0U2NvcmUoKSxcclxuICAgICAgICBzY29yZUZvcm1hdHRlZDogZW50cnkuZ2V0Rm9ybWF0dGVkU2NvcmUoKSxcclxuICAgICAgICB0aW1lc3RhbXA6IGVudHJ5LmdldFRpbWVzdGFtcCgpLFxyXG4gICAgICAgIHJhbms6IGVudHJ5LmdldFJhbmsoKSxcclxuICAgICAgICBkYXRhOiBlbnRyeS5nZXRFeHRyYURhdGEoKSxcclxuICAgICAgICBwbGF5ZXJOYW1lOiBlbnRyeS5nZXRQbGF5ZXIoKS5nZXROYW1lKCksXHJcbiAgICAgICAgcGxheWVyUGhvdG9VUkw6IGVudHJ5LmdldFBsYXllcigpLmdldFBob3RvKCksXHJcbiAgICAgICAgcGxheWVySUQ6IGVudHJ5LmdldFBsYXllcigpLmdldElEKClcclxuICAgIH07XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IExlYWRlcmJvYXJkU2NvcmU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMTggUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Bob3RvbnN0b3JtL3BoYXNlci9ibG9iL21hc3Rlci9saWNlbnNlLnR4dHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0RmFzdFZhbHVlID0gcmVxdWlyZSgnLi4vLi4vLi4vc3JjL3V0aWxzL29iamVjdC9HZXRGYXN0VmFsdWUnKTtcclxuXHJcbi8qKlxyXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBQcm9kdWN0XHJcbiAqXHJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbdGl0bGVdIC0gVGhlIHRpdGxlIG9mIHRoZSBwcm9kdWN0LlxyXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3Byb2R1Y3RJRF0gLSBUaGUgcHJvZHVjdCdzIGdhbWUtc3BlY2lmaWVkIGlkZW50aWZpZXIuXHJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGVzY3JpcHRpb25dIC0gVGhlIHByb2R1Y3QgZGVzY3JpcHRpb24uXHJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbaW1hZ2VVUkldIC0gQSBsaW5rIHRvIHRoZSBwcm9kdWN0J3MgYXNzb2NpYXRlZCBpbWFnZS5cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtwcmljZV0gLSBUaGUgcHJpY2Ugb2YgdGhlIHByb2R1Y3QuXHJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbcHJpY2VDdXJyZW5jeUNvZGVdIC0gVGhlIGN1cnJlbmN5IGNvZGUgZm9yIHRoZSBwcm9kdWN0LlxyXG4gKi9cclxuXHJcbnZhciBQcm9kdWN0ID0gZnVuY3Rpb24gKGRhdGEpXHJcbntcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgdGl0bGU6IEdldEZhc3RWYWx1ZShkYXRhLCAndGl0bGUnLCAnJyksXHJcbiAgICAgICAgcHJvZHVjdElEOiBHZXRGYXN0VmFsdWUoZGF0YSwgJ3Byb2R1Y3RJRCcsICcnKSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogR2V0RmFzdFZhbHVlKGRhdGEsICdkZXNjcmlwdGlvbicsICcnKSxcclxuICAgICAgICBpbWFnZVVSSTogR2V0RmFzdFZhbHVlKGRhdGEsICdpbWFnZVVSSScsICcnKSxcclxuICAgICAgICBwcmljZTogR2V0RmFzdFZhbHVlKGRhdGEsICdwcmljZScsICcnKSxcclxuICAgICAgICBwcmljZUN1cnJlbmN5Q29kZTogR2V0RmFzdFZhbHVlKGRhdGEsICdwcmljZUN1cnJlbmN5Q29kZScsICcnKVxyXG4gICAgfTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUHJvZHVjdDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAxOCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vcGhvdG9uc3Rvcm0vcGhhc2VyL2Jsb2IvbWFzdGVyL2xpY2Vuc2UudHh0fE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBHZXRGYXN0VmFsdWUgPSByZXF1aXJlKCcuLi8uLi8uLi9zcmMvdXRpbHMvb2JqZWN0L0dldEZhc3RWYWx1ZScpO1xyXG5cclxuLyoqXHJcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFB1cmNoYXNlXHJcbiAqXHJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGV2ZWxvcGVyUGF5bG9hZF0gLSBBIGRldmVsb3Blci1zcGVjaWZpZWQgc3RyaW5nLCBwcm92aWRlZCBkdXJpbmcgdGhlIHB1cmNoYXNlIG9mIHRoZSBwcm9kdWN0LlxyXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3BheW1lbnRJRF0gLSBUaGUgaWRlbnRpZmllciBmb3IgdGhlIHB1cmNoYXNlIHRyYW5zYWN0aW9uLlxyXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3Byb2R1Y3RJRF0gLSBUaGUgcHJvZHVjdCdzIGdhbWUtc3BlY2lmaWVkIGlkZW50aWZpZXIuXHJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbcHVyY2hhc2VUaW1lXSAtIFVuaXggdGltZXN0YW1wIG9mIHdoZW4gdGhlIHB1cmNoYXNlIG9jY3VycmVkLlxyXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3B1cmNoYXNlVG9rZW5dIC0gQSB0b2tlbiByZXByZXNlbnRpbmcgdGhlIHB1cmNoYXNlIHRoYXQgbWF5IGJlIHVzZWQgdG8gY29uc3VtZSB0aGUgcHVyY2hhc2UuXHJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbc2lnbmVkUmVxdWVzdF0gLSBTZXJ2ZXItc2lnbmVkIGVuY29kaW5nIG9mIHRoZSBwdXJjaGFzZSByZXF1ZXN0LlxyXG4gKi9cclxuXHJcbnZhciBQdXJjaGFzZSA9IGZ1bmN0aW9uIChkYXRhKVxyXG57XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGRldmVsb3BlclBheWxvYWQ6IEdldEZhc3RWYWx1ZShkYXRhLCAnZGV2ZWxvcGVyUGF5bG9hZCcsICcnKSxcclxuICAgICAgICBwYXltZW50SUQ6IEdldEZhc3RWYWx1ZShkYXRhLCAncGF5bWVudElEJywgJycpLFxyXG4gICAgICAgIHByb2R1Y3RJRDogR2V0RmFzdFZhbHVlKGRhdGEsICdwcm9kdWN0SUQnLCAnJyksXHJcbiAgICAgICAgcHVyY2hhc2VUaW1lOiBHZXRGYXN0VmFsdWUoZGF0YSwgJ3B1cmNoYXNlVGltZScsICcnKSxcclxuICAgICAgICBwdXJjaGFzZVRva2VuOiBHZXRGYXN0VmFsdWUoZGF0YSwgJ3B1cmNoYXNlVG9rZW4nLCAnJyksXHJcbiAgICAgICAgc2lnbmVkUmVxdWVzdDogR2V0RmFzdFZhbHVlKGRhdGEsICdzaWduZWRSZXF1ZXN0JywgJycpXHJcbiAgICB9O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQdXJjaGFzZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgc2FtbWVcclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBRdWlja1NldCA9IHJlcXVpcmUoJy4uL2Rpc3BsYXkvYWxpZ24vdG8vUXVpY2tTZXQnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMsIG9yIGFueSBvYmplY3RzIHRoYXQgaGF2ZSBwdWJsaWMgYHhgIGFuZCBgeWAgcHJvcGVydGllcywgYW5kIGFsaWducyB0aGVtIG5leHQgdG8gZWFjaCBvdGhlci5cclxuICpcclxuICogVGhlIGZpcnN0IGl0ZW0gaXNuJ3QgbW92ZWQuIFRoZSBzZWNvbmQgaXRlbSBpcyBhbGlnbmVkIG5leHQgdG8gdGhlIGZpcnN0LCB0aGVuIHRoZSB0aGlyZCBuZXh0IHRvIHRoZSBzZWNvbmQsIGFuZCBzbyBvbi5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLkFsaWduVG9cclxuICogQHNpbmNlIDMuMjIuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gYmUgdXBkYXRlZCBieSB0aGlzIGFjdGlvbi5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBwb3NpdGlvbiAtIFRoZSBwb3NpdGlvbiB0byBhbGlnbiB0aGUgaXRlbXMgd2l0aC4gVGhpcyBpcyBhbiBhbGlnbiBjb25zdGFudCwgc3VjaCBhcyBgUGhhc2VyLkRpc3BsYXkuQWxpZ24uTEVGVF9DRU5URVJgLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFg9MF0gLSBPcHRpb25hbCBob3Jpem9udGFsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRZPTBdIC0gT3B0aW9uYWwgdmVydGljYWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBvYmplY3RzIHRoYXQgd2VyZSBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgQWxpZ25UbyA9IGZ1bmN0aW9uIChpdGVtcywgcG9zaXRpb24sIG9mZnNldFgsIG9mZnNldFkpXHJcbntcclxuICAgIHZhciB0YXJnZXQgPSBpdGVtc1swXTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBpdGVtID0gaXRlbXNbaV07XHJcblxyXG4gICAgICAgIFF1aWNrU2V0KGl0ZW0sIHRhcmdldCwgcG9zaXRpb24sIG9mZnNldFgsIG9mZnNldFkpO1xyXG5cclxuICAgICAgICB0YXJnZXQgPSBpdGVtO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpdGVtcztcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQWxpZ25UbztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgUHJvcGVydHlWYWx1ZUluYyA9IHJlcXVpcmUoJy4vUHJvcGVydHlWYWx1ZUluYycpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cywgb3IgYW55IG9iamVjdHMgdGhhdCBoYXZlIGEgcHVibGljIGBhbmdsZWAgcHJvcGVydHksXHJcbiAqIGFuZCB0aGVuIGFkZHMgdGhlIGdpdmVuIHZhbHVlIHRvIGVhY2ggb2YgdGhlaXIgYGFuZ2xlYCBwcm9wZXJ0aWVzLlxyXG4gKlxyXG4gKiBUaGUgb3B0aW9uYWwgYHN0ZXBgIHByb3BlcnR5IGlzIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBBbmdsZShncm91cC5nZXRDaGlsZHJlbigpLCB2YWx1ZSwgc3RlcClgXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5BbmdsZVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gVGhlIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVwZGF0ZWQgYnkgdGhpcyBhY3Rpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBhbW91bnQgdG8gYmUgYWRkZWQgdG8gdGhlIGBhbmdsZWAgcHJvcGVydHkuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGB2YWx1ZWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbaW5kZXg9MF0gLSBBbiBvcHRpb25hbCBvZmZzZXQgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20gd2l0aGluIHRoZSBpdGVtcyBhcnJheS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbZGlyZWN0aW9uPTFdIC0gVGhlIGRpcmVjdGlvbiB0byBpdGVyYXRlIHRocm91Z2ggdGhlIGFycmF5LiAxIGlzIGZyb20gYmVnaW5uaW5nIHRvIGVuZCwgLTEgZnJvbSBlbmQgdG8gYmVnaW5uaW5nLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBvYmplY3RzIHRoYXQgd2VyZSBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgQW5nbGUgPSBmdW5jdGlvbiAoaXRlbXMsIHZhbHVlLCBzdGVwLCBpbmRleCwgZGlyZWN0aW9uKVxyXG57XHJcbiAgICByZXR1cm4gUHJvcGVydHlWYWx1ZUluYyhpdGVtcywgJ2FuZ2xlJywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBBbmdsZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhbmQgcGFzc2VzIGVhY2ggb2YgdGhlbSB0byB0aGUgZ2l2ZW4gY2FsbGJhY2suXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5DYWxsXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gYmUgdXBkYXRlZCBieSB0aGlzIGFjdGlvbi5cclxuICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuQWN0aW9ucy5DYWxsQ2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGJlIGludm9rZWQuIEl0IHdpbGwgYmUgcGFzc2VkIGp1c3Qgb25lIGFyZ3VtZW50OiB0aGUgaXRlbSBmcm9tIHRoZSBhcnJheS5cclxuICogQHBhcmFtIHsqfSBjb250ZXh0IC0gVGhlIHNjb3BlIGluIHdoaWNoIHRoZSBjYWxsYmFjayB3aWxsIGJlIGludm9rZWQuXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIG9iamVjdHMgdGhhdCB3YXMgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIENhbGwgPSBmdW5jdGlvbiAoaXRlbXMsIGNhbGxiYWNrLCBjb250ZXh0KVxyXG57XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBpdGVtID0gaXRlbXNbaV07XHJcblxyXG4gICAgICAgIGNhbGxiYWNrLmNhbGwoY29udGV4dCwgaXRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDYWxsO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBvYmplY3RzIGFuZCByZXR1cm5zIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBhcnJheSB0aGF0IGhhcyBwcm9wZXJ0aWVzIHdoaWNoIG1hdGNoXHJcbiAqIGFsbCBvZiB0aG9zZSBzcGVjaWZpZWQgaW4gdGhlIGBjb21wYXJlYCBvYmplY3QuIEZvciBleGFtcGxlLCBpZiB0aGUgY29tcGFyZSBvYmplY3Qgd2FzOiBgeyBzY2FsZVg6IDAuNSwgYWxwaGE6IDEgfWBcclxuICogdGhlbiBpdCB3b3VsZCByZXR1cm4gdGhlIGZpcnN0IGl0ZW0gd2hpY2ggaGFkIHRoZSBwcm9wZXJ0eSBgc2NhbGVYYCBzZXQgdG8gMC41IGFuZCBgYWxwaGFgIHNldCB0byAxLlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBHZXRGaXJzdChncm91cC5nZXRDaGlsZHJlbigpLCBjb21wYXJlLCBpbmRleClgXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5HZXRGaXJzdFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXNdXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byBiZSBzZWFyY2hlZCBieSB0aGlzIGFjdGlvbi5cclxuICogQHBhcmFtIHtvYmplY3R9IGNvbXBhcmUgLSBUaGUgY29tcGFyaXNvbiBvYmplY3QuIEVhY2ggcHJvcGVydHkgaW4gdGhpcyBvYmplY3Qgd2lsbCBiZSBjaGVja2VkIGFnYWluc3QgdGhlIGl0ZW1zIG9mIHRoZSBhcnJheS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbaW5kZXg9MF0gLSBBbiBvcHRpb25hbCBvZmZzZXQgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20gd2l0aGluIHRoZSBpdGVtcyBhcnJheS5cclxuICpcclxuICogQHJldHVybiB7PyhvYmplY3R8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QpfSBUaGUgZmlyc3Qgb2JqZWN0IGluIHRoZSBhcnJheSB0aGF0IG1hdGNoZXMgdGhlIGNvbXBhcmlzb24gb2JqZWN0LCBvciBgbnVsbGAgaWYgbm8gbWF0Y2ggd2FzIGZvdW5kLlxyXG4gKi9cclxudmFyIEdldEZpcnN0ID0gZnVuY3Rpb24gKGl0ZW1zLCBjb21wYXJlLCBpbmRleClcclxue1xyXG4gICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHsgaW5kZXggPSAwOyB9XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IGluZGV4OyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGl0ZW0gPSBpdGVtc1tpXTtcclxuXHJcbiAgICAgICAgdmFyIG1hdGNoID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgcHJvcGVydHkgaW4gY29tcGFyZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtW3Byb3BlcnR5XSAhPT0gY29tcGFyZVtwcm9wZXJ0eV0pXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG1hdGNoID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChtYXRjaClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gR2V0Rmlyc3Q7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIG9iamVjdHMgYW5kIHJldHVybnMgdGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgYXJyYXkgdGhhdCBoYXMgcHJvcGVydGllcyB3aGljaCBtYXRjaFxyXG4gKiBhbGwgb2YgdGhvc2Ugc3BlY2lmaWVkIGluIHRoZSBgY29tcGFyZWAgb2JqZWN0LiBGb3IgZXhhbXBsZSwgaWYgdGhlIGNvbXBhcmUgb2JqZWN0IHdhczogYHsgc2NhbGVYOiAwLjUsIGFscGhhOiAxIH1gXHJcbiAqIHRoZW4gaXQgd291bGQgcmV0dXJuIHRoZSBsYXN0IGl0ZW0gd2hpY2ggaGFkIHRoZSBwcm9wZXJ0eSBgc2NhbGVYYCBzZXQgdG8gMC41IGFuZCBgYWxwaGFgIHNldCB0byAxLlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBHZXRMYXN0KGdyb3VwLmdldENoaWxkcmVuKCksIGNvbXBhcmUsIGluZGV4KWBcclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLkdldExhc3RcclxuICogQHNpbmNlIDMuMy4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gYmUgc2VhcmNoZWQgYnkgdGhpcyBhY3Rpb24uXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBjb21wYXJlIC0gVGhlIGNvbXBhcmlzb24gb2JqZWN0LiBFYWNoIHByb3BlcnR5IGluIHRoaXMgb2JqZWN0IHdpbGwgYmUgY2hlY2tlZCBhZ2FpbnN0IHRoZSBpdGVtcyBvZiB0aGUgYXJyYXkuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2luZGV4PTBdIC0gQW4gb3B0aW9uYWwgb2Zmc2V0IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdpdGhpbiB0aGUgaXRlbXMgYXJyYXkuXHJcbiAqXHJcbiAqIEByZXR1cm4gez8ob2JqZWN0fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0KX0gVGhlIGxhc3Qgb2JqZWN0IGluIHRoZSBhcnJheSB0aGF0IG1hdGNoZXMgdGhlIGNvbXBhcmlzb24gb2JqZWN0LCBvciBgbnVsbGAgaWYgbm8gbWF0Y2ggd2FzIGZvdW5kLlxyXG4gKi9cclxudmFyIEdldExhc3QgPSBmdW5jdGlvbiAoaXRlbXMsIGNvbXBhcmUsIGluZGV4KVxyXG57XHJcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkgeyBpbmRleCA9IDA7IH1cclxuXHJcbiAgICBmb3IgKHZhciBpID0gaW5kZXg7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICB2YXIgaXRlbSA9IGl0ZW1zW2ldO1xyXG5cclxuICAgICAgICB2YXIgbWF0Y2ggPSB0cnVlO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBjb21wYXJlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKGl0ZW1bcHJvcGVydHldICE9PSBjb21wYXJlW3Byb3BlcnR5XSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbWF0Y2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG1hdGNoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHZXRMYXN0O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBBbGlnbkluID0gcmVxdWlyZSgnLi4vZGlzcGxheS9hbGlnbi9pbi9RdWlja1NldCcpO1xyXG52YXIgQ09OU1QgPSByZXF1aXJlKCcuLi9kaXNwbGF5L2FsaWduL2NvbnN0Jyk7XHJcbnZhciBHZXRGYXN0VmFsdWUgPSByZXF1aXJlKCcuLi91dGlscy9vYmplY3QvR2V0RmFzdFZhbHVlJyk7XHJcbnZhciBOT09QID0gcmVxdWlyZSgnLi4vdXRpbHMvTk9PUCcpO1xyXG52YXIgWm9uZSA9IHJlcXVpcmUoJy4uL2dhbWVvYmplY3RzL3pvbmUvWm9uZScpO1xyXG5cclxudmFyIHRlbXBab25lID0gbmV3IFpvbmUoeyBzeXM6IHsgcXVldWVEZXB0aFNvcnQ6IE5PT1AsIGV2ZW50czogeyBvbmNlOiBOT09QIH0gfSB9LCAwLCAwLCAxLCAxKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMsIG9yIGFueSBvYmplY3RzIHRoYXQgaGF2ZSBwdWJsaWMgYHhgIGFuZCBgeWAgcHJvcGVydGllcyxcclxuICogYW5kIHRoZW4gYWxpZ25zIHRoZW0gYmFzZWQgb24gdGhlIGdyaWQgY29uZmlndXJhdGlvbiBnaXZlbiB0byB0aGlzIGFjdGlvbi5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLkdyaWRBbGlnblxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gVGhlIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVwZGF0ZWQgYnkgdGhpcyBhY3Rpb24uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkFjdGlvbnMuR3JpZEFsaWduQ29uZmlnfSBvcHRpb25zIC0gVGhlIEdyaWRBbGlnbiBDb25maWd1cmF0aW9uIG9iamVjdC5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIEdyaWRBbGlnbiA9IGZ1bmN0aW9uIChpdGVtcywgb3B0aW9ucylcclxue1xyXG4gICAgaWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCkgeyBvcHRpb25zID0ge307IH1cclxuXHJcbiAgICB2YXIgd2lkdGhTZXQgPSBvcHRpb25zLmhhc093blByb3BlcnR5KCd3aWR0aCcpO1xyXG4gICAgdmFyIGhlaWdodFNldCA9IG9wdGlvbnMuaGFzT3duUHJvcGVydHkoJ2hlaWdodCcpO1xyXG5cclxuICAgIHZhciB3aWR0aCA9IEdldEZhc3RWYWx1ZShvcHRpb25zLCAnd2lkdGgnLCAtMSk7XHJcbiAgICB2YXIgaGVpZ2h0ID0gR2V0RmFzdFZhbHVlKG9wdGlvbnMsICdoZWlnaHQnLCAtMSk7XHJcblxyXG4gICAgdmFyIGNlbGxXaWR0aCA9IEdldEZhc3RWYWx1ZShvcHRpb25zLCAnY2VsbFdpZHRoJywgMSk7XHJcbiAgICB2YXIgY2VsbEhlaWdodCA9IEdldEZhc3RWYWx1ZShvcHRpb25zLCAnY2VsbEhlaWdodCcsIGNlbGxXaWR0aCk7XHJcblxyXG4gICAgdmFyIHBvc2l0aW9uID0gR2V0RmFzdFZhbHVlKG9wdGlvbnMsICdwb3NpdGlvbicsIENPTlNULlRPUF9MRUZUKTtcclxuICAgIHZhciB4ID0gR2V0RmFzdFZhbHVlKG9wdGlvbnMsICd4JywgMCk7XHJcbiAgICB2YXIgeSA9IEdldEZhc3RWYWx1ZShvcHRpb25zLCAneScsIDApO1xyXG5cclxuICAgIHZhciBjeCA9IDA7XHJcbiAgICB2YXIgY3kgPSAwO1xyXG4gICAgdmFyIHcgPSAod2lkdGggKiBjZWxsV2lkdGgpO1xyXG4gICAgdmFyIGggPSAoaGVpZ2h0ICogY2VsbEhlaWdodCk7XHJcblxyXG4gICAgdGVtcFpvbmUuc2V0UG9zaXRpb24oeCwgeSk7XHJcbiAgICB0ZW1wWm9uZS5zZXRTaXplKGNlbGxXaWR0aCwgY2VsbEhlaWdodCk7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBBbGlnbkluKGl0ZW1zW2ldLCB0ZW1wWm9uZSwgcG9zaXRpb24pO1xyXG5cclxuICAgICAgICBpZiAod2lkdGhTZXQgJiYgd2lkdGggPT09IC0xKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIFdlIGtlZXAgbGF5aW5nIHRoZW0gb3V0IGhvcml6b250YWxseSB1bnRpbCB3ZSd2ZSBkb25lIHRoZW0gYWxsXHJcbiAgICAgICAgICAgIHRlbXBab25lLnggKz0gY2VsbFdpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChoZWlnaHRTZXQgJiYgaGVpZ2h0ID09PSAtMSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBXZSBrZWVwIGxheWluZyB0aGVtIG91dCB2ZXJ0aWNhbGx5IHVudGlsIHdlJ3ZlIGRvbmUgdGhlbSBhbGxcclxuICAgICAgICAgICAgdGVtcFpvbmUueSArPSBjZWxsSGVpZ2h0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgV2Uga2VlcCBsYXlpbmcgdGhlbSBvdXQgdW50aWwgd2UgaGl0IHRoZSBjb2x1bW4gbGltaXRcclxuICAgICAgICAgICAgY3ggKz0gY2VsbFdpZHRoO1xyXG4gICAgICAgICAgICB0ZW1wWm9uZS54ICs9IGNlbGxXaWR0aDtcclxuXHJcbiAgICAgICAgICAgIGlmIChjeCA9PT0gdylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY3ggPSAwO1xyXG4gICAgICAgICAgICAgICAgY3kgKz0gY2VsbEhlaWdodDtcclxuICAgICAgICAgICAgICAgIHRlbXBab25lLnggPSB4O1xyXG4gICAgICAgICAgICAgICAgdGVtcFpvbmUueSArPSBjZWxsSGVpZ2h0O1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChjeSA9PT0gaClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyAgV2UndmUgaGl0IHRoZSBjb2x1bW4gbGltaXQsIHNvIHJldHVybiwgZXZlbiBpZiB0aGVyZSBhcmUgaXRlbXMgbGVmdFxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpdGVtcztcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gR3JpZEFsaWduO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBQcm9wZXJ0eVZhbHVlSW5jID0gcmVxdWlyZSgnLi9Qcm9wZXJ0eVZhbHVlSW5jJyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLCBvciBhbnkgb2JqZWN0cyB0aGF0IGhhdmUgYSBwdWJsaWMgYGFscGhhYCBwcm9wZXJ0eSxcclxuICogYW5kIHRoZW4gYWRkcyB0aGUgZ2l2ZW4gdmFsdWUgdG8gZWFjaCBvZiB0aGVpciBgYWxwaGFgIHByb3BlcnRpZXMuXHJcbiAqXHJcbiAqIFRoZSBvcHRpb25hbCBgc3RlcGAgcHJvcGVydHkgaXMgYXBwbGllZCBpbmNyZW1lbnRhbGx5LCBtdWx0aXBsaWVkIGJ5IGVhY2ggaXRlbSBpbiB0aGUgYXJyYXkuXHJcbiAqXHJcbiAqIFRvIHVzZSB0aGlzIHdpdGggYSBHcm91cDogYEluY0FscGhhKGdyb3VwLmdldENoaWxkcmVuKCksIHZhbHVlLCBzdGVwKWBcclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLkluY0FscGhhXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gYmUgdXBkYXRlZCBieSB0aGlzIGFjdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGFtb3VudCB0byBiZSBhZGRlZCB0byB0aGUgYGFscGhhYCBwcm9wZXJ0eS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwPTBdIC0gVGhpcyBpcyBhZGRlZCB0byB0aGUgYHZhbHVlYCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtpbmRleD0wXSAtIEFuIG9wdGlvbmFsIG9mZnNldCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbSB3aXRoaW4gdGhlIGl0ZW1zIGFycmF5LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtkaXJlY3Rpb249MV0gLSBUaGUgZGlyZWN0aW9uIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYXJyYXkuIDEgaXMgZnJvbSBiZWdpbm5pbmcgdG8gZW5kLCAtMSBmcm9tIGVuZCB0byBiZWdpbm5pbmcuXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIG9iamVjdHMgdGhhdCB3ZXJlIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBJbmNBbHBoYSA9IGZ1bmN0aW9uIChpdGVtcywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlSW5jKGl0ZW1zLCAnYWxwaGEnLCB2YWx1ZSwgc3RlcCwgaW5kZXgsIGRpcmVjdGlvbik7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEluY0FscGhhO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBQcm9wZXJ0eVZhbHVlSW5jID0gcmVxdWlyZSgnLi9Qcm9wZXJ0eVZhbHVlSW5jJyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLCBvciBhbnkgb2JqZWN0cyB0aGF0IGhhdmUgYSBwdWJsaWMgYHhgIHByb3BlcnR5LFxyXG4gKiBhbmQgdGhlbiBhZGRzIHRoZSBnaXZlbiB2YWx1ZSB0byBlYWNoIG9mIHRoZWlyIGB4YCBwcm9wZXJ0aWVzLlxyXG4gKlxyXG4gKiBUaGUgb3B0aW9uYWwgYHN0ZXBgIHByb3BlcnR5IGlzIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBJbmNYKGdyb3VwLmdldENoaWxkcmVuKCksIHZhbHVlLCBzdGVwKWBcclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLkluY1hcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byBiZSB1cGRhdGVkIGJ5IHRoaXMgYWN0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgYW1vdW50IHRvIGJlIGFkZGVkIHRvIHRoZSBgeGAgcHJvcGVydHkuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGB2YWx1ZWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbaW5kZXg9MF0gLSBBbiBvcHRpb25hbCBvZmZzZXQgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20gd2l0aGluIHRoZSBpdGVtcyBhcnJheS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbZGlyZWN0aW9uPTFdIC0gVGhlIGRpcmVjdGlvbiB0byBpdGVyYXRlIHRocm91Z2ggdGhlIGFycmF5LiAxIGlzIGZyb20gYmVnaW5uaW5nIHRvIGVuZCwgLTEgZnJvbSBlbmQgdG8gYmVnaW5uaW5nLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBvYmplY3RzIHRoYXQgd2VyZSBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgSW5jWCA9IGZ1bmN0aW9uIChpdGVtcywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlSW5jKGl0ZW1zLCAneCcsIHZhbHVlLCBzdGVwLCBpbmRleCwgZGlyZWN0aW9uKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gSW5jWDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgUHJvcGVydHlWYWx1ZUluYyA9IHJlcXVpcmUoJy4vUHJvcGVydHlWYWx1ZUluYycpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cywgb3IgYW55IG9iamVjdHMgdGhhdCBoYXZlIHB1YmxpYyBgeGAgYW5kIGB5YCBwcm9wZXJ0aWVzLFxyXG4gKiBhbmQgdGhlbiBhZGRzIHRoZSBnaXZlbiB2YWx1ZSB0byBlYWNoIG9mIHRoZW0uXHJcbiAqXHJcbiAqIFRoZSBvcHRpb25hbCBgc3RlcFhgIGFuZCBgc3RlcFlgIHByb3BlcnRpZXMgYXJlIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBJbmNYWShncm91cC5nZXRDaGlsZHJlbigpLCB4LCB5LCBzdGVwWCwgc3RlcFkpYFxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuSW5jWFlcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byBiZSB1cGRhdGVkIGJ5IHRoaXMgYWN0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBhbW91bnQgdG8gYmUgYWRkZWQgdG8gdGhlIGB4YCBwcm9wZXJ0eS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt5PXhdIC0gVGhlIGFtb3VudCB0byBiZSBhZGRlZCB0byB0aGUgYHlgIHByb3BlcnR5LiBJZiBgdW5kZWZpbmVkYCBvciBgbnVsbGAgaXQgdXNlcyB0aGUgYHhgIHZhbHVlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXBYPTBdIC0gVGhpcyBpcyBhZGRlZCB0byB0aGUgYHhgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcFk9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgeWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbaW5kZXg9MF0gLSBBbiBvcHRpb25hbCBvZmZzZXQgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20gd2l0aGluIHRoZSBpdGVtcyBhcnJheS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbZGlyZWN0aW9uPTFdIC0gVGhlIGRpcmVjdGlvbiB0byBpdGVyYXRlIHRocm91Z2ggdGhlIGFycmF5LiAxIGlzIGZyb20gYmVnaW5uaW5nIHRvIGVuZCwgLTEgZnJvbSBlbmQgdG8gYmVnaW5uaW5nLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBvYmplY3RzIHRoYXQgd2VyZSBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgSW5jWFkgPSBmdW5jdGlvbiAoaXRlbXMsIHgsIHksIHN0ZXBYLCBzdGVwWSwgaW5kZXgsIGRpcmVjdGlvbilcclxue1xyXG4gICAgaWYgKHkgPT09IHVuZGVmaW5lZCB8fCB5ID09PSBudWxsKSB7IHkgPSB4OyB9XHJcblxyXG4gICAgUHJvcGVydHlWYWx1ZUluYyhpdGVtcywgJ3gnLCB4LCBzdGVwWCwgaW5kZXgsIGRpcmVjdGlvbik7XHJcblxyXG4gICAgcmV0dXJuIFByb3BlcnR5VmFsdWVJbmMoaXRlbXMsICd5JywgeSwgc3RlcFksIGluZGV4LCBkaXJlY3Rpb24pO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBJbmNYWTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgUHJvcGVydHlWYWx1ZUluYyA9IHJlcXVpcmUoJy4vUHJvcGVydHlWYWx1ZUluYycpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cywgb3IgYW55IG9iamVjdHMgdGhhdCBoYXZlIGEgcHVibGljIGB5YCBwcm9wZXJ0eSxcclxuICogYW5kIHRoZW4gYWRkcyB0aGUgZ2l2ZW4gdmFsdWUgdG8gZWFjaCBvZiB0aGVpciBgeWAgcHJvcGVydGllcy5cclxuICpcclxuICogVGhlIG9wdGlvbmFsIGBzdGVwYCBwcm9wZXJ0eSBpcyBhcHBsaWVkIGluY3JlbWVudGFsbHksIG11bHRpcGxpZWQgYnkgZWFjaCBpdGVtIGluIHRoZSBhcnJheS5cclxuICpcclxuICogVG8gdXNlIHRoaXMgd2l0aCBhIEdyb3VwOiBgSW5jWShncm91cC5nZXRDaGlsZHJlbigpLCB2YWx1ZSwgc3RlcClgXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5JbmNZXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gYmUgdXBkYXRlZCBieSB0aGlzIGFjdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGFtb3VudCB0byBiZSBhZGRlZCB0byB0aGUgYHlgIHByb3BlcnR5LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2luZGV4PTBdIC0gQW4gb3B0aW9uYWwgb2Zmc2V0IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdpdGhpbiB0aGUgaXRlbXMgYXJyYXkuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0xXSAtIFRoZSBkaXJlY3Rpb24gdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBhcnJheS4gMSBpcyBmcm9tIGJlZ2lubmluZyB0byBlbmQsIC0xIGZyb20gZW5kIHRvIGJlZ2lubmluZy5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIEluY1kgPSBmdW5jdGlvbiAoaXRlbXMsIHZhbHVlLCBzdGVwLCBpbmRleCwgZGlyZWN0aW9uKVxyXG57XHJcbiAgICByZXR1cm4gUHJvcGVydHlWYWx1ZUluYyhpdGVtcywgJ3knLCB2YWx1ZSwgc3RlcCwgaW5kZXgsIGRpcmVjdGlvbik7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEluY1k7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cyBhbmQgcG9zaXRpb25zIHRoZW0gb24gZXZlbmx5IHNwYWNlZCBwb2ludHMgYXJvdW5kIHRoZSBwZXJpbWV0ZXIgb2YgYSBDaXJjbGUuXHJcbiAqIFxyXG4gKiBJZiB5b3Ugd2lzaCB0byBwYXNzIGEgYFBoYXNlci5HYW1lT2JqZWN0cy5DaXJjbGVgIFNoYXBlIHRvIHRoaXMgZnVuY3Rpb24sIHlvdSBzaG91bGQgcGFzcyBpdHMgYGdlb21gIHByb3BlcnR5LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuUGxhY2VPbkNpcmNsZVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gQW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLiBUaGUgY29udGVudHMgb2YgdGhpcyBhcnJheSBhcmUgdXBkYXRlZCBieSB0aGlzIEFjdGlvbi5cclxuICogQHBhcmFtIHtQaGFzZXIuR2VvbS5DaXJjbGV9IGNpcmNsZSAtIFRoZSBDaXJjbGUgdG8gcG9zaXRpb24gdGhlIEdhbWUgT2JqZWN0cyBvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGFydEFuZ2xlPTBdIC0gT3B0aW9uYWwgYW5nbGUgdG8gc3RhcnQgcG9zaXRpb24gZnJvbSwgaW4gcmFkaWFucy5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtlbmRBbmdsZT02LjI4XSAtIE9wdGlvbmFsIGFuZ2xlIHRvIHN0b3AgcG9zaXRpb24gYXQsIGluIHJhZGlhbnMuXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIEdhbWUgT2JqZWN0cyB0aGF0IHdhcyBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgUGxhY2VPbkNpcmNsZSA9IGZ1bmN0aW9uIChpdGVtcywgY2lyY2xlLCBzdGFydEFuZ2xlLCBlbmRBbmdsZSlcclxue1xyXG4gICAgaWYgKHN0YXJ0QW5nbGUgPT09IHVuZGVmaW5lZCkgeyBzdGFydEFuZ2xlID0gMDsgfVxyXG4gICAgaWYgKGVuZEFuZ2xlID09PSB1bmRlZmluZWQpIHsgZW5kQW5nbGUgPSA2LjI4OyB9XHJcblxyXG4gICAgdmFyIGFuZ2xlID0gc3RhcnRBbmdsZTtcclxuICAgIHZhciBhbmdsZVN0ZXAgPSAoZW5kQW5nbGUgLSBzdGFydEFuZ2xlKSAvIGl0ZW1zLmxlbmd0aDtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKVxyXG4gICAge1xyXG4gICAgICAgIGl0ZW1zW2ldLnggPSBjaXJjbGUueCArIChjaXJjbGUucmFkaXVzICogTWF0aC5jb3MoYW5nbGUpKTtcclxuICAgICAgICBpdGVtc1tpXS55ID0gY2lyY2xlLnkgKyAoY2lyY2xlLnJhZGl1cyAqIE1hdGguc2luKGFuZ2xlKSk7XHJcblxyXG4gICAgICAgIGFuZ2xlICs9IGFuZ2xlU3RlcDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBsYWNlT25DaXJjbGU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cyBhbmQgcG9zaXRpb25zIHRoZW0gb24gZXZlbmx5IHNwYWNlZCBwb2ludHMgYXJvdW5kIHRoZSBwZXJpbWV0ZXIgb2YgYW4gRWxsaXBzZS5cclxuICogXHJcbiAqIElmIHlvdSB3aXNoIHRvIHBhc3MgYSBgUGhhc2VyLkdhbWVPYmplY3RzLkVsbGlwc2VgIFNoYXBlIHRvIHRoaXMgZnVuY3Rpb24sIHlvdSBzaG91bGQgcGFzcyBpdHMgYGdlb21gIHByb3BlcnR5LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuUGxhY2VPbkVsbGlwc2VcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIEFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cy4gVGhlIGNvbnRlbnRzIG9mIHRoaXMgYXJyYXkgYXJlIHVwZGF0ZWQgYnkgdGhpcyBBY3Rpb24uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdlb20uRWxsaXBzZX0gZWxsaXBzZSAtIFRoZSBFbGxpcHNlIHRvIHBvc2l0aW9uIHRoZSBHYW1lIE9iamVjdHMgb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnRBbmdsZT0wXSAtIE9wdGlvbmFsIGFuZ2xlIHRvIHN0YXJ0IHBvc2l0aW9uIGZyb20sIGluIHJhZGlhbnMuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZW5kQW5nbGU9Ni4yOF0gLSBPcHRpb25hbCBhbmdsZSB0byBzdG9wIHBvc2l0aW9uIGF0LCBpbiByYWRpYW5zLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBHYW1lIE9iamVjdHMgdGhhdCB3YXMgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFBsYWNlT25FbGxpcHNlID0gZnVuY3Rpb24gKGl0ZW1zLCBlbGxpcHNlLCBzdGFydEFuZ2xlLCBlbmRBbmdsZSlcclxue1xyXG4gICAgaWYgKHN0YXJ0QW5nbGUgPT09IHVuZGVmaW5lZCkgeyBzdGFydEFuZ2xlID0gMDsgfVxyXG4gICAgaWYgKGVuZEFuZ2xlID09PSB1bmRlZmluZWQpIHsgZW5kQW5nbGUgPSA2LjI4OyB9XHJcblxyXG4gICAgdmFyIGFuZ2xlID0gc3RhcnRBbmdsZTtcclxuICAgIHZhciBhbmdsZVN0ZXAgPSAoZW5kQW5nbGUgLSBzdGFydEFuZ2xlKSAvIGl0ZW1zLmxlbmd0aDtcclxuXHJcbiAgICB2YXIgYSA9IGVsbGlwc2Uud2lkdGggLyAyO1xyXG4gICAgdmFyIGIgPSBlbGxpcHNlLmhlaWdodCAvIDI7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBpdGVtc1tpXS54ID0gZWxsaXBzZS54ICsgYSAqIE1hdGguY29zKGFuZ2xlKTtcclxuICAgICAgICBpdGVtc1tpXS55ID0gZWxsaXBzZS55ICsgYiAqIE1hdGguc2luKGFuZ2xlKTtcclxuXHJcbiAgICAgICAgYW5nbGUgKz0gYW5nbGVTdGVwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpdGVtcztcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUGxhY2VPbkVsbGlwc2U7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEdldFBvaW50cyA9IHJlcXVpcmUoJy4uL2dlb20vbGluZS9HZXRQb2ludHMnKTtcclxuXHJcbi8qKlxyXG4gKiBQb3NpdGlvbnMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzIG9uIGV2ZW5seSBzcGFjZWQgcG9pbnRzIG9mIGEgTGluZS5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlBsYWNlT25MaW5lXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBBbiBhcnJheSBvZiBHYW1lIE9iamVjdHMuIFRoZSBjb250ZW50cyBvZiB0aGlzIGFycmF5IGFyZSB1cGRhdGVkIGJ5IHRoaXMgQWN0aW9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HZW9tLkxpbmV9IGxpbmUgLSBUaGUgTGluZSB0byBwb3NpdGlvbiB0aGUgR2FtZSBPYmplY3RzIG9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBHYW1lIE9iamVjdHMgdGhhdCB3YXMgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFBsYWNlT25MaW5lID0gZnVuY3Rpb24gKGl0ZW1zLCBsaW5lKVxyXG57XHJcbiAgICB2YXIgcG9pbnRzID0gR2V0UG9pbnRzKGxpbmUsIGl0ZW1zLmxlbmd0aCk7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICB2YXIgaXRlbSA9IGl0ZW1zW2ldO1xyXG4gICAgICAgIHZhciBwb2ludCA9IHBvaW50c1tpXTtcclxuXHJcbiAgICAgICAgaXRlbS54ID0gcG9pbnQueDtcclxuICAgICAgICBpdGVtLnkgPSBwb2ludC55O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpdGVtcztcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUGxhY2VPbkxpbmU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIE1hcmNoaW5nQW50cyA9IHJlcXVpcmUoJy4uL2dlb20vcmVjdGFuZ2xlL01hcmNoaW5nQW50cycpO1xyXG52YXIgUm90YXRlTGVmdCA9IHJlcXVpcmUoJy4uL3V0aWxzL2FycmF5L1JvdGF0ZUxlZnQnKTtcclxudmFyIFJvdGF0ZVJpZ2h0ID0gcmVxdWlyZSgnLi4vdXRpbHMvYXJyYXkvUm90YXRlUmlnaHQnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMgYW5kIHBvc2l0aW9ucyB0aGVtIG9uIGV2ZW5seSBzcGFjZWQgcG9pbnRzIGFyb3VuZCB0aGUgcGVyaW1ldGVyIG9mIGEgUmVjdGFuZ2xlLlxyXG4gKiBcclxuICogUGxhY2VtZW50IHN0YXJ0cyBmcm9tIHRoZSB0b3AtbGVmdCBvZiB0aGUgcmVjdGFuZ2xlLCBhbmQgcHJvY2VlZHMgaW4gYSBjbG9ja3dpc2UgZGlyZWN0aW9uLlxyXG4gKiBJZiB0aGUgYHNoaWZ0YCBwYXJhbWV0ZXIgaXMgZ2l2ZW4geW91IGNhbiBvZmZzZXQgd2hlcmUgcGxhY2VtZW50IGJlZ2lucy5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlBsYWNlT25SZWN0YW5nbGVcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIEFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cy4gVGhlIGNvbnRlbnRzIG9mIHRoaXMgYXJyYXkgYXJlIHVwZGF0ZWQgYnkgdGhpcyBBY3Rpb24uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdlb20uUmVjdGFuZ2xlfSByZWN0IC0gVGhlIFJlY3RhbmdsZSB0byBwb3NpdGlvbiB0aGUgR2FtZSBPYmplY3RzIG9uLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtzaGlmdD0xXSAtIEFuIG9wdGlvbmFsIHBvc2l0aW9uYWwgb2Zmc2V0LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBHYW1lIE9iamVjdHMgdGhhdCB3YXMgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFBsYWNlT25SZWN0YW5nbGUgPSBmdW5jdGlvbiAoaXRlbXMsIHJlY3QsIHNoaWZ0KVxyXG57XHJcbiAgICBpZiAoc2hpZnQgPT09IHVuZGVmaW5lZCkgeyBzaGlmdCA9IDA7IH1cclxuXHJcbiAgICB2YXIgcG9pbnRzID0gTWFyY2hpbmdBbnRzKHJlY3QsIGZhbHNlLCBpdGVtcy5sZW5ndGgpO1xyXG5cclxuICAgIGlmIChzaGlmdCA+IDApXHJcbiAgICB7XHJcbiAgICAgICAgUm90YXRlTGVmdChwb2ludHMsIHNoaWZ0KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHNoaWZ0IDwgMClcclxuICAgIHtcclxuICAgICAgICBSb3RhdGVSaWdodChwb2ludHMsIE1hdGguYWJzKHNoaWZ0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBpdGVtc1tpXS54ID0gcG9pbnRzW2ldLng7XHJcbiAgICAgICAgaXRlbXNbaV0ueSA9IHBvaW50c1tpXS55O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpdGVtcztcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUGxhY2VPblJlY3RhbmdsZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQnJlc2VuaGFtUG9pbnRzID0gcmVxdWlyZSgnLi4vZ2VvbS9saW5lL0JyZXNlbmhhbVBvaW50cycpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cyBhbmQgcG9zaXRpb25zIHRoZW0gb24gZXZlbmx5IHNwYWNlZCBwb2ludHMgYXJvdW5kIHRoZSBlZGdlcyBvZiBhIFRyaWFuZ2xlLlxyXG4gKiBcclxuICogSWYgeW91IHdpc2ggdG8gcGFzcyBhIGBQaGFzZXIuR2FtZU9iamVjdHMuVHJpYW5nbGVgIFNoYXBlIHRvIHRoaXMgZnVuY3Rpb24sIHlvdSBzaG91bGQgcGFzcyBpdHMgYGdlb21gIHByb3BlcnR5LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuUGxhY2VPblRyaWFuZ2xlXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBBbiBhcnJheSBvZiBHYW1lIE9iamVjdHMuIFRoZSBjb250ZW50cyBvZiB0aGlzIGFycmF5IGFyZSB1cGRhdGVkIGJ5IHRoaXMgQWN0aW9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HZW9tLlRyaWFuZ2xlfSB0cmlhbmdsZSAtIFRoZSBUcmlhbmdsZSB0byBwb3NpdGlvbiB0aGUgR2FtZSBPYmplY3RzIG9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXBSYXRlPTFdIC0gQW4gb3B0aW9uYWwgc3RlcCByYXRlLCB0byBpbmNyZWFzZSBvciBkZWNyZWFzZSB0aGUgcGFja2luZyBvZiB0aGUgR2FtZSBPYmplY3RzIG9uIHRoZSBsaW5lcy5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRoYXQgd2FzIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBQbGFjZU9uVHJpYW5nbGUgPSBmdW5jdGlvbiAoaXRlbXMsIHRyaWFuZ2xlLCBzdGVwUmF0ZSlcclxue1xyXG4gICAgdmFyIHAxID0gQnJlc2VuaGFtUG9pbnRzKHsgeDE6IHRyaWFuZ2xlLngxLCB5MTogdHJpYW5nbGUueTEsIHgyOiB0cmlhbmdsZS54MiwgeTI6IHRyaWFuZ2xlLnkyIH0sIHN0ZXBSYXRlKTtcclxuICAgIHZhciBwMiA9IEJyZXNlbmhhbVBvaW50cyh7IHgxOiB0cmlhbmdsZS54MiwgeTE6IHRyaWFuZ2xlLnkyLCB4MjogdHJpYW5nbGUueDMsIHkyOiB0cmlhbmdsZS55MyB9LCBzdGVwUmF0ZSk7XHJcbiAgICB2YXIgcDMgPSBCcmVzZW5oYW1Qb2ludHMoeyB4MTogdHJpYW5nbGUueDMsIHkxOiB0cmlhbmdsZS55MywgeDI6IHRyaWFuZ2xlLngxLCB5MjogdHJpYW5nbGUueTEgfSwgc3RlcFJhdGUpO1xyXG5cclxuICAgIC8vICBSZW1vdmUgb3ZlcmxhcHNcclxuICAgIHAxLnBvcCgpO1xyXG4gICAgcDIucG9wKCk7XHJcbiAgICBwMy5wb3AoKTtcclxuXHJcbiAgICBwMSA9IHAxLmNvbmNhdChwMiwgcDMpO1xyXG5cclxuICAgIHZhciBzdGVwID0gcDEubGVuZ3RoIC8gaXRlbXMubGVuZ3RoO1xyXG4gICAgdmFyIHAgPSAwO1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGl0ZW0gPSBpdGVtc1tpXTtcclxuICAgICAgICB2YXIgcG9pbnQgPSBwMVtNYXRoLmZsb29yKHApXTtcclxuXHJcbiAgICAgICAgaXRlbS54ID0gcG9pbnQueDtcclxuICAgICAgICBpdGVtLnkgPSBwb2ludC55O1xyXG5cclxuICAgICAgICBwICs9IHN0ZXA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGFjZU9uVHJpYW5nbGU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFBsYXkgYW4gYW5pbWF0aW9uIHdpdGggdGhlIGdpdmVuIGtleSwgc3RhcnRpbmcgYXQgdGhlIGdpdmVuIHN0YXJ0RnJhbWUgb24gYWxsIEdhbWUgT2JqZWN0cyBpbiBpdGVtcy5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlBsYXlBbmltYXRpb25cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIEFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cy4gVGhlIGNvbnRlbnRzIG9mIHRoaXMgYXJyYXkgYXJlIHVwZGF0ZWQgYnkgdGhpcyBBY3Rpb24uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgbmFtZSBvZiB0aGUgYW5pbWF0aW9uIHRvIHBsYXkuXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW3N0YXJ0RnJhbWVdIC0gVGhlIHN0YXJ0aW5nIGZyYW1lIG9mIHRoZSBhbmltYXRpb24gd2l0aCB0aGUgZ2l2ZW4ga2V5LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBHYW1lIE9iamVjdHMgdGhhdCB3YXMgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFBsYXlBbmltYXRpb24gPSBmdW5jdGlvbiAoaXRlbXMsIGtleSwgc3RhcnRGcmFtZSlcclxue1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBpdGVtc1tpXS5hbmltcy5wbGF5KGtleSwgc3RhcnRGcmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQbGF5QW5pbWF0aW9uO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMsIG9yIGFueSBvYmplY3RzIHRoYXQgaGF2ZSBhIHB1YmxpYyBwcm9wZXJ0eSBhcyBkZWZpbmVkIGluIGBrZXlgLFxyXG4gKiBhbmQgdGhlbiBhZGRzIHRoZSBnaXZlbiB2YWx1ZSB0byBpdC5cclxuICpcclxuICogVGhlIG9wdGlvbmFsIGBzdGVwYCBwcm9wZXJ0eSBpcyBhcHBsaWVkIGluY3JlbWVudGFsbHksIG11bHRpcGxpZWQgYnkgZWFjaCBpdGVtIGluIHRoZSBhcnJheS5cclxuICpcclxuICogVG8gdXNlIHRoaXMgd2l0aCBhIEdyb3VwOiBgUHJvcGVydHlWYWx1ZUluYyhncm91cC5nZXRDaGlsZHJlbigpLCBrZXksIHZhbHVlLCBzdGVwKWBcclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlByb3BlcnR5VmFsdWVJbmNcclxuICogQHNpbmNlIDMuMy4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byBiZSB1cGRhdGVkIGJ5IHRoaXMgYWN0aW9uLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHByb3BlcnR5IHRvIGJlIHVwZGF0ZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBhbW91bnQgdG8gYmUgYWRkZWQgdG8gdGhlIHByb3BlcnR5LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2luZGV4PTBdIC0gQW4gb3B0aW9uYWwgb2Zmc2V0IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdpdGhpbiB0aGUgaXRlbXMgYXJyYXkuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0xXSAtIFRoZSBkaXJlY3Rpb24gdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBhcnJheS4gMSBpcyBmcm9tIGJlZ2lubmluZyB0byBlbmQsIC0xIGZyb20gZW5kIHRvIGJlZ2lubmluZy5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFByb3BlcnR5VmFsdWVJbmMgPSBmdW5jdGlvbiAoaXRlbXMsIGtleSwgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIGlmIChzdGVwID09PSB1bmRlZmluZWQpIHsgc3RlcCA9IDA7IH1cclxuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7IGluZGV4ID0gMDsgfVxyXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gdW5kZWZpbmVkKSB7IGRpcmVjdGlvbiA9IDE7IH1cclxuXHJcbiAgICB2YXIgaTtcclxuICAgIHZhciB0ID0gMDtcclxuICAgIHZhciBlbmQgPSBpdGVtcy5sZW5ndGg7XHJcblxyXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gMSlcclxuICAgIHtcclxuICAgICAgICAvLyAgU3RhcnQgdG8gRW5kXHJcbiAgICAgICAgZm9yIChpID0gaW5kZXg7IGkgPCBlbmQ7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGl0ZW1zW2ldW2tleV0gKz0gdmFsdWUgKyAodCAqIHN0ZXApO1xyXG4gICAgICAgICAgICB0Kys7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAgIC8vICBFbmQgdG8gU3RhcnRcclxuICAgICAgICBmb3IgKGkgPSBpbmRleDsgaSA+PSAwOyBpLS0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpdGVtc1tpXVtrZXldICs9IHZhbHVlICsgKHQgKiBzdGVwKTtcclxuICAgICAgICAgICAgdCsrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFByb3BlcnR5VmFsdWVJbmM7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cywgb3IgYW55IG9iamVjdHMgdGhhdCBoYXZlIGEgcHVibGljIHByb3BlcnR5IGFzIGRlZmluZWQgaW4gYGtleWAsXHJcbiAqIGFuZCB0aGVuIHNldHMgaXQgdG8gdGhlIGdpdmVuIHZhbHVlLlxyXG4gKlxyXG4gKiBUaGUgb3B0aW9uYWwgYHN0ZXBgIHByb3BlcnR5IGlzIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBQcm9wZXJ0eVZhbHVlU2V0KGdyb3VwLmdldENoaWxkcmVuKCksIGtleSwgdmFsdWUsIHN0ZXApYFxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuUHJvcGVydHlWYWx1ZVNldFxyXG4gKiBAc2luY2UgMy4zLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gVGhlIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVwZGF0ZWQgYnkgdGhpcyBhY3Rpb24uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgcHJvcGVydHkgdG8gYmUgdXBkYXRlZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIHByb3BlcnR5IHRvLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2luZGV4PTBdIC0gQW4gb3B0aW9uYWwgb2Zmc2V0IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdpdGhpbiB0aGUgaXRlbXMgYXJyYXkuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0xXSAtIFRoZSBkaXJlY3Rpb24gdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBhcnJheS4gMSBpcyBmcm9tIGJlZ2lubmluZyB0byBlbmQsIC0xIGZyb20gZW5kIHRvIGJlZ2lubmluZy5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFByb3BlcnR5VmFsdWVTZXQgPSBmdW5jdGlvbiAoaXRlbXMsIGtleSwgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIGlmIChzdGVwID09PSB1bmRlZmluZWQpIHsgc3RlcCA9IDA7IH1cclxuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7IGluZGV4ID0gMDsgfVxyXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gdW5kZWZpbmVkKSB7IGRpcmVjdGlvbiA9IDE7IH1cclxuXHJcbiAgICB2YXIgaTtcclxuICAgIHZhciB0ID0gMDtcclxuICAgIHZhciBlbmQgPSBpdGVtcy5sZW5ndGg7XHJcblxyXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gMSlcclxuICAgIHtcclxuICAgICAgICAvLyAgU3RhcnQgdG8gRW5kXHJcbiAgICAgICAgZm9yIChpID0gaW5kZXg7IGkgPCBlbmQ7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGl0ZW1zW2ldW2tleV0gPSB2YWx1ZSArICh0ICogc3RlcCk7XHJcbiAgICAgICAgICAgIHQrKztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIEVuZCB0byBTdGFydFxyXG4gICAgICAgIGZvciAoaSA9IGluZGV4OyBpID49IDA7IGktLSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGl0ZW1zW2ldW2tleV0gPSB2YWx1ZSArICh0ICogc3RlcCk7XHJcbiAgICAgICAgICAgIHQrKztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQcm9wZXJ0eVZhbHVlU2V0O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBSYW5kb20gPSByZXF1aXJlKCcuLi9nZW9tL2NpcmNsZS9SYW5kb20nKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMgYW5kIHBvc2l0aW9ucyB0aGVtIGF0IHJhbmRvbSBsb2NhdGlvbnMgd2l0aGluIHRoZSBDaXJjbGUuXHJcbiAqIFxyXG4gKiBJZiB5b3Ugd2lzaCB0byBwYXNzIGEgYFBoYXNlci5HYW1lT2JqZWN0cy5DaXJjbGVgIFNoYXBlIHRvIHRoaXMgZnVuY3Rpb24sIHlvdSBzaG91bGQgcGFzcyBpdHMgYGdlb21gIHByb3BlcnR5LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuUmFuZG9tQ2lyY2xlXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBBbiBhcnJheSBvZiBHYW1lIE9iamVjdHMuIFRoZSBjb250ZW50cyBvZiB0aGlzIGFycmF5IGFyZSB1cGRhdGVkIGJ5IHRoaXMgQWN0aW9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HZW9tLkNpcmNsZX0gY2lyY2xlIC0gVGhlIENpcmNsZSB0byBwb3NpdGlvbiB0aGUgR2FtZSBPYmplY3RzIHdpdGhpbi5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRoYXQgd2FzIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBSYW5kb21DaXJjbGUgPSBmdW5jdGlvbiAoaXRlbXMsIGNpcmNsZSlcclxue1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBSYW5kb20oY2lyY2xlLCBpdGVtc1tpXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBSYW5kb21DaXJjbGU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFJhbmRvbSA9IHJlcXVpcmUoJy4uL2dlb20vZWxsaXBzZS9SYW5kb20nKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMgYW5kIHBvc2l0aW9ucyB0aGVtIGF0IHJhbmRvbSBsb2NhdGlvbnMgd2l0aGluIHRoZSBFbGxpcHNlLlxyXG4gKiBcclxuICogSWYgeW91IHdpc2ggdG8gcGFzcyBhIGBQaGFzZXIuR2FtZU9iamVjdHMuRWxsaXBzZWAgU2hhcGUgdG8gdGhpcyBmdW5jdGlvbiwgeW91IHNob3VsZCBwYXNzIGl0cyBgZ2VvbWAgcHJvcGVydHkuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5SYW5kb21FbGxpcHNlXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBBbiBhcnJheSBvZiBHYW1lIE9iamVjdHMuIFRoZSBjb250ZW50cyBvZiB0aGlzIGFycmF5IGFyZSB1cGRhdGVkIGJ5IHRoaXMgQWN0aW9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HZW9tLkVsbGlwc2V9IGVsbGlwc2UgLSBUaGUgRWxsaXBzZSB0byBwb3NpdGlvbiB0aGUgR2FtZSBPYmplY3RzIHdpdGhpbi5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRoYXQgd2FzIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBSYW5kb21FbGxpcHNlID0gZnVuY3Rpb24gKGl0ZW1zLCBlbGxpcHNlKVxyXG57XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKVxyXG4gICAge1xyXG4gICAgICAgIFJhbmRvbShlbGxpcHNlLCBpdGVtc1tpXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBSYW5kb21FbGxpcHNlO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBSYW5kb20gPSByZXF1aXJlKCcuLi9nZW9tL2xpbmUvUmFuZG9tJyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzIGFuZCBwb3NpdGlvbnMgdGhlbSBhdCByYW5kb20gbG9jYXRpb25zIG9uIHRoZSBMaW5lLlxyXG4gKiBcclxuICogSWYgeW91IHdpc2ggdG8gcGFzcyBhIGBQaGFzZXIuR2FtZU9iamVjdHMuTGluZWAgU2hhcGUgdG8gdGhpcyBmdW5jdGlvbiwgeW91IHNob3VsZCBwYXNzIGl0cyBgZ2VvbWAgcHJvcGVydHkuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5SYW5kb21MaW5lXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBBbiBhcnJheSBvZiBHYW1lIE9iamVjdHMuIFRoZSBjb250ZW50cyBvZiB0aGlzIGFycmF5IGFyZSB1cGRhdGVkIGJ5IHRoaXMgQWN0aW9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HZW9tLkxpbmV9IGxpbmUgLSBUaGUgTGluZSB0byBwb3NpdGlvbiB0aGUgR2FtZSBPYmplY3RzIHJhbmRvbWx5IG9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBHYW1lIE9iamVjdHMgdGhhdCB3YXMgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFJhbmRvbUxpbmUgPSBmdW5jdGlvbiAoaXRlbXMsIGxpbmUpXHJcbntcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspXHJcbiAgICB7XHJcbiAgICAgICAgUmFuZG9tKGxpbmUsIGl0ZW1zW2ldKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFJhbmRvbUxpbmU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFJhbmRvbSA9IHJlcXVpcmUoJy4uL2dlb20vcmVjdGFuZ2xlL1JhbmRvbScpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cyBhbmQgcG9zaXRpb25zIHRoZW0gYXQgcmFuZG9tIGxvY2F0aW9ucyB3aXRoaW4gdGhlIFJlY3RhbmdsZS5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlJhbmRvbVJlY3RhbmdsZVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gQW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLiBUaGUgY29udGVudHMgb2YgdGhpcyBhcnJheSBhcmUgdXBkYXRlZCBieSB0aGlzIEFjdGlvbi5cclxuICogQHBhcmFtIHtQaGFzZXIuR2VvbS5SZWN0YW5nbGV9IHJlY3QgLSBUaGUgUmVjdGFuZ2xlIHRvIHBvc2l0aW9uIHRoZSBHYW1lIE9iamVjdHMgd2l0aGluLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBHYW1lIE9iamVjdHMgdGhhdCB3YXMgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFJhbmRvbVJlY3RhbmdsZSA9IGZ1bmN0aW9uIChpdGVtcywgcmVjdClcclxue1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBSYW5kb20ocmVjdCwgaXRlbXNbaV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpdGVtcztcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUmFuZG9tUmVjdGFuZ2xlO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBSYW5kb20gPSByZXF1aXJlKCcuLi9nZW9tL3RyaWFuZ2xlL1JhbmRvbScpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cyBhbmQgcG9zaXRpb25zIHRoZW0gYXQgcmFuZG9tIGxvY2F0aW9ucyB3aXRoaW4gdGhlIFRyaWFuZ2xlLlxyXG4gKiBcclxuICogSWYgeW91IHdpc2ggdG8gcGFzcyBhIGBQaGFzZXIuR2FtZU9iamVjdHMuVHJpYW5nbGVgIFNoYXBlIHRvIHRoaXMgZnVuY3Rpb24sIHlvdSBzaG91bGQgcGFzcyBpdHMgYGdlb21gIHByb3BlcnR5LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuUmFuZG9tVHJpYW5nbGVcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIEFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cy4gVGhlIGNvbnRlbnRzIG9mIHRoaXMgYXJyYXkgYXJlIHVwZGF0ZWQgYnkgdGhpcyBBY3Rpb24uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdlb20uVHJpYW5nbGV9IHRyaWFuZ2xlIC0gVGhlIFRyaWFuZ2xlIHRvIHBvc2l0aW9uIHRoZSBHYW1lIE9iamVjdHMgd2l0aGluLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBHYW1lIE9iamVjdHMgdGhhdCB3YXMgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFJhbmRvbVRyaWFuZ2xlID0gZnVuY3Rpb24gKGl0ZW1zLCB0cmlhbmdsZSlcclxue1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBSYW5kb20odHJpYW5nbGUsIGl0ZW1zW2ldKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFJhbmRvbVRyaWFuZ2xlO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBQcm9wZXJ0eVZhbHVlSW5jID0gcmVxdWlyZSgnLi9Qcm9wZXJ0eVZhbHVlSW5jJyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLCBvciBhbnkgb2JqZWN0cyB0aGF0IGhhdmUgYSBwdWJsaWMgYHJvdGF0aW9uYCBwcm9wZXJ0eSxcclxuICogYW5kIHRoZW4gYWRkcyB0aGUgZ2l2ZW4gdmFsdWUgdG8gZWFjaCBvZiB0aGVpciBgcm90YXRpb25gIHByb3BlcnRpZXMuXHJcbiAqXHJcbiAqIFRoZSBvcHRpb25hbCBgc3RlcGAgcHJvcGVydHkgaXMgYXBwbGllZCBpbmNyZW1lbnRhbGx5LCBtdWx0aXBsaWVkIGJ5IGVhY2ggaXRlbSBpbiB0aGUgYXJyYXkuXHJcbiAqXHJcbiAqIFRvIHVzZSB0aGlzIHdpdGggYSBHcm91cDogYFJvdGF0ZShncm91cC5nZXRDaGlsZHJlbigpLCB2YWx1ZSwgc3RlcClgXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5Sb3RhdGVcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byBiZSB1cGRhdGVkIGJ5IHRoaXMgYWN0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgYW1vdW50IHRvIGJlIGFkZGVkIHRvIHRoZSBgcm90YXRpb25gIHByb3BlcnR5IChpbiByYWRpYW5zKS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwPTBdIC0gVGhpcyBpcyBhZGRlZCB0byB0aGUgYHZhbHVlYCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtpbmRleD0wXSAtIEFuIG9wdGlvbmFsIG9mZnNldCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbSB3aXRoaW4gdGhlIGl0ZW1zIGFycmF5LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtkaXJlY3Rpb249MV0gLSBUaGUgZGlyZWN0aW9uIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYXJyYXkuIDEgaXMgZnJvbSBiZWdpbm5pbmcgdG8gZW5kLCAtMSBmcm9tIGVuZCB0byBiZWdpbm5pbmcuXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIG9iamVjdHMgdGhhdCB3ZXJlIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBSb3RhdGUgPSBmdW5jdGlvbiAoaXRlbXMsIHZhbHVlLCBzdGVwLCBpbmRleCwgZGlyZWN0aW9uKVxyXG57XHJcbiAgICByZXR1cm4gUHJvcGVydHlWYWx1ZUluYyhpdGVtcywgJ3JvdGF0aW9uJywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBSb3RhdGU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFJvdGF0ZUFyb3VuZERpc3RhbmNlID0gcmVxdWlyZSgnLi4vbWF0aC9Sb3RhdGVBcm91bmREaXN0YW5jZScpO1xyXG52YXIgRGlzdGFuY2VCZXR3ZWVuID0gcmVxdWlyZSgnLi4vbWF0aC9kaXN0YW5jZS9EaXN0YW5jZUJldHdlZW4nKTtcclxuXHJcbi8qKlxyXG4gKiBSb3RhdGVzIGVhY2ggaXRlbSBhcm91bmQgdGhlIGdpdmVuIHBvaW50IGJ5IHRoZSBnaXZlbiBhbmdsZS5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlJvdGF0ZUFyb3VuZFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICogQHNlZSBQaGFzZXIuTWF0aC5Sb3RhdGVBcm91bmREaXN0YW5jZVxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBBbiBhcnJheSBvZiBHYW1lIE9iamVjdHMuIFRoZSBjb250ZW50cyBvZiB0aGlzIGFycmF5IGFyZSB1cGRhdGVkIGJ5IHRoaXMgQWN0aW9uLlxyXG4gKiBAcGFyYW0ge29iamVjdH0gcG9pbnQgLSBBbnkgb2JqZWN0IHdpdGggcHVibGljIGB4YCBhbmQgYHlgIHByb3BlcnRpZXMuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBhbmdsZSAtIFRoZSBhbmdsZSB0byByb3RhdGUgYnksIGluIHJhZGlhbnMuXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIEdhbWUgT2JqZWN0cyB0aGF0IHdhcyBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgUm90YXRlQXJvdW5kID0gZnVuY3Rpb24gKGl0ZW1zLCBwb2ludCwgYW5nbGUpXHJcbntcclxuICAgIHZhciB4ID0gcG9pbnQueDtcclxuICAgIHZhciB5ID0gcG9pbnQueTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBpdGVtID0gaXRlbXNbaV07XHJcblxyXG4gICAgICAgIFJvdGF0ZUFyb3VuZERpc3RhbmNlKGl0ZW0sIHgsIHksIGFuZ2xlLCBNYXRoLm1heCgxLCBEaXN0YW5jZUJldHdlZW4oaXRlbS54LCBpdGVtLnksIHgsIHkpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBSb3RhdGVBcm91bmQ7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIE1hdGhSb3RhdGVBcm91bmREaXN0YW5jZSA9IHJlcXVpcmUoJy4uL21hdGgvUm90YXRlQXJvdW5kRGlzdGFuY2UnKTtcclxuXHJcbi8qKlxyXG4gKiBSb3RhdGVzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cyBhcm91bmQgYSBwb2ludCBieSB0aGUgZ2l2ZW4gYW5nbGUgYW5kIGRpc3RhbmNlLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuUm90YXRlQXJvdW5kRGlzdGFuY2VcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIEFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cy4gVGhlIGNvbnRlbnRzIG9mIHRoaXMgYXJyYXkgYXJlIHVwZGF0ZWQgYnkgdGhpcyBBY3Rpb24uXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBwb2ludCAtIEFueSBvYmplY3Qgd2l0aCBwdWJsaWMgYHhgIGFuZCBgeWAgcHJvcGVydGllcy5cclxuICogQHBhcmFtIHtudW1iZXJ9IGFuZ2xlIC0gVGhlIGFuZ2xlIHRvIHJvdGF0ZSBieSwgaW4gcmFkaWFucy5cclxuICogQHBhcmFtIHtudW1iZXJ9IGRpc3RhbmNlIC0gVGhlIGRpc3RhbmNlIGZyb20gdGhlIHBvaW50IG9mIHJvdGF0aW9uIGluIHBpeGVscy5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRoYXQgd2FzIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBSb3RhdGVBcm91bmREaXN0YW5jZSA9IGZ1bmN0aW9uIChpdGVtcywgcG9pbnQsIGFuZ2xlLCBkaXN0YW5jZSlcclxue1xyXG4gICAgdmFyIHggPSBwb2ludC54O1xyXG4gICAgdmFyIHkgPSBwb2ludC55O1xyXG5cclxuICAgIC8vICBUaGVyZSdzIG5vdGhpbmcgdG8gZG9cclxuICAgIGlmIChkaXN0YW5jZSA9PT0gMClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBNYXRoUm90YXRlQXJvdW5kRGlzdGFuY2UoaXRlbXNbaV0sIHgsIHksIGFuZ2xlLCBkaXN0YW5jZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBSb3RhdGVBcm91bmREaXN0YW5jZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgUHJvcGVydHlWYWx1ZUluYyA9IHJlcXVpcmUoJy4vUHJvcGVydHlWYWx1ZUluYycpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cywgb3IgYW55IG9iamVjdHMgdGhhdCBoYXZlIGEgcHVibGljIGBzY2FsZVhgIHByb3BlcnR5LFxyXG4gKiBhbmQgdGhlbiBhZGRzIHRoZSBnaXZlbiB2YWx1ZSB0byBlYWNoIG9mIHRoZWlyIGBzY2FsZVhgIHByb3BlcnRpZXMuXHJcbiAqXHJcbiAqIFRoZSBvcHRpb25hbCBgc3RlcGAgcHJvcGVydHkgaXMgYXBwbGllZCBpbmNyZW1lbnRhbGx5LCBtdWx0aXBsaWVkIGJ5IGVhY2ggaXRlbSBpbiB0aGUgYXJyYXkuXHJcbiAqXHJcbiAqIFRvIHVzZSB0aGlzIHdpdGggYSBHcm91cDogYFNjYWxlWChncm91cC5nZXRDaGlsZHJlbigpLCB2YWx1ZSwgc3RlcClgXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5TY2FsZVhcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byBiZSB1cGRhdGVkIGJ5IHRoaXMgYWN0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgYW1vdW50IHRvIGJlIGFkZGVkIHRvIHRoZSBgc2NhbGVYYCBwcm9wZXJ0eS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwPTBdIC0gVGhpcyBpcyBhZGRlZCB0byB0aGUgYHZhbHVlYCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtpbmRleD0wXSAtIEFuIG9wdGlvbmFsIG9mZnNldCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbSB3aXRoaW4gdGhlIGl0ZW1zIGFycmF5LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtkaXJlY3Rpb249MV0gLSBUaGUgZGlyZWN0aW9uIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYXJyYXkuIDEgaXMgZnJvbSBiZWdpbm5pbmcgdG8gZW5kLCAtMSBmcm9tIGVuZCB0byBiZWdpbm5pbmcuXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIG9iamVjdHMgdGhhdCB3ZXJlIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBTY2FsZVggPSBmdW5jdGlvbiAoaXRlbXMsIHZhbHVlLCBzdGVwLCBpbmRleCwgZGlyZWN0aW9uKVxyXG57XHJcbiAgICByZXR1cm4gUHJvcGVydHlWYWx1ZUluYyhpdGVtcywgJ3NjYWxlWCcsIHZhbHVlLCBzdGVwLCBpbmRleCwgZGlyZWN0aW9uKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2NhbGVYO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBQcm9wZXJ0eVZhbHVlSW5jID0gcmVxdWlyZSgnLi9Qcm9wZXJ0eVZhbHVlSW5jJyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLCBvciBhbnkgb2JqZWN0cyB0aGF0IGhhdmUgcHVibGljIGBzY2FsZVhgIGFuZCBgc2NhbGVZYCBwcm9wZXJ0aWVzLFxyXG4gKiBhbmQgdGhlbiBhZGRzIHRoZSBnaXZlbiB2YWx1ZSB0byBlYWNoIG9mIHRoZW0uXHJcbiAqXHJcbiAqIFRoZSBvcHRpb25hbCBgc3RlcFhgIGFuZCBgc3RlcFlgIHByb3BlcnRpZXMgYXJlIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBTY2FsZVhZKGdyb3VwLmdldENoaWxkcmVuKCksIHNjYWxlWCwgc2NhbGVZLCBzdGVwWCwgc3RlcFkpYFxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuU2NhbGVYWVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gVGhlIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVwZGF0ZWQgYnkgdGhpcyBhY3Rpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBzY2FsZVggLSBUaGUgYW1vdW50IHRvIGJlIGFkZGVkIHRvIHRoZSBgc2NhbGVYYCBwcm9wZXJ0eS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzY2FsZVldIC0gVGhlIGFtb3VudCB0byBiZSBhZGRlZCB0byB0aGUgYHNjYWxlWWAgcHJvcGVydHkuIElmIGB1bmRlZmluZWRgIG9yIGBudWxsYCBpdCB1c2VzIHRoZSBgc2NhbGVYYCB2YWx1ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwWD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGBzY2FsZVhgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcFk9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgc2NhbGVZYCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtpbmRleD0wXSAtIEFuIG9wdGlvbmFsIG9mZnNldCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbSB3aXRoaW4gdGhlIGl0ZW1zIGFycmF5LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtkaXJlY3Rpb249MV0gLSBUaGUgZGlyZWN0aW9uIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYXJyYXkuIDEgaXMgZnJvbSBiZWdpbm5pbmcgdG8gZW5kLCAtMSBmcm9tIGVuZCB0byBiZWdpbm5pbmcuXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIG9iamVjdHMgdGhhdCB3ZXJlIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBTY2FsZVhZID0gZnVuY3Rpb24gKGl0ZW1zLCBzY2FsZVgsIHNjYWxlWSwgc3RlcFgsIHN0ZXBZLCBpbmRleCwgZGlyZWN0aW9uKVxyXG57XHJcbiAgICBpZiAoc2NhbGVZID09PSB1bmRlZmluZWQgfHwgc2NhbGVZID09PSBudWxsKSB7IHNjYWxlWSA9IHNjYWxlWDsgfVxyXG5cclxuICAgIFByb3BlcnR5VmFsdWVJbmMoaXRlbXMsICdzY2FsZVgnLCBzY2FsZVgsIHN0ZXBYLCBpbmRleCwgZGlyZWN0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gUHJvcGVydHlWYWx1ZUluYyhpdGVtcywgJ3NjYWxlWScsIHNjYWxlWSwgc3RlcFksIGluZGV4LCBkaXJlY3Rpb24pO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2FsZVhZO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBQcm9wZXJ0eVZhbHVlSW5jID0gcmVxdWlyZSgnLi9Qcm9wZXJ0eVZhbHVlSW5jJyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLCBvciBhbnkgb2JqZWN0cyB0aGF0IGhhdmUgYSBwdWJsaWMgYHNjYWxlWWAgcHJvcGVydHksXHJcbiAqIGFuZCB0aGVuIGFkZHMgdGhlIGdpdmVuIHZhbHVlIHRvIGVhY2ggb2YgdGhlaXIgYHNjYWxlWWAgcHJvcGVydGllcy5cclxuICpcclxuICogVGhlIG9wdGlvbmFsIGBzdGVwYCBwcm9wZXJ0eSBpcyBhcHBsaWVkIGluY3JlbWVudGFsbHksIG11bHRpcGxpZWQgYnkgZWFjaCBpdGVtIGluIHRoZSBhcnJheS5cclxuICpcclxuICogVG8gdXNlIHRoaXMgd2l0aCBhIEdyb3VwOiBgU2NhbGVZKGdyb3VwLmdldENoaWxkcmVuKCksIHZhbHVlLCBzdGVwKWBcclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlNjYWxlWVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gVGhlIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVwZGF0ZWQgYnkgdGhpcyBhY3Rpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBhbW91bnQgdG8gYmUgYWRkZWQgdG8gdGhlIGBzY2FsZVlgIHByb3BlcnR5LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2luZGV4PTBdIC0gQW4gb3B0aW9uYWwgb2Zmc2V0IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdpdGhpbiB0aGUgaXRlbXMgYXJyYXkuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0xXSAtIFRoZSBkaXJlY3Rpb24gdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBhcnJheS4gMSBpcyBmcm9tIGJlZ2lubmluZyB0byBlbmQsIC0xIGZyb20gZW5kIHRvIGJlZ2lubmluZy5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFNjYWxlWSA9IGZ1bmN0aW9uIChpdGVtcywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlSW5jKGl0ZW1zLCAnc2NhbGVZJywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY2FsZVk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFByb3BlcnR5VmFsdWVTZXQgPSByZXF1aXJlKCcuL1Byb3BlcnR5VmFsdWVTZXQnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMsIG9yIGFueSBvYmplY3RzIHRoYXQgaGF2ZSB0aGUgcHVibGljIHByb3BlcnR5IGBhbHBoYWBcclxuICogYW5kIHRoZW4gc2V0cyBpdCB0byB0aGUgZ2l2ZW4gdmFsdWUuXHJcbiAqXHJcbiAqIFRoZSBvcHRpb25hbCBgc3RlcGAgcHJvcGVydHkgaXMgYXBwbGllZCBpbmNyZW1lbnRhbGx5LCBtdWx0aXBsaWVkIGJ5IGVhY2ggaXRlbSBpbiB0aGUgYXJyYXkuXHJcbiAqXHJcbiAqIFRvIHVzZSB0aGlzIHdpdGggYSBHcm91cDogYFNldEFscGhhKGdyb3VwLmdldENoaWxkcmVuKCksIHZhbHVlLCBzdGVwKWBcclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlNldEFscGhhXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gYmUgdXBkYXRlZCBieSB0aGlzIGFjdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIHByb3BlcnR5IHRvLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2luZGV4PTBdIC0gQW4gb3B0aW9uYWwgb2Zmc2V0IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdpdGhpbiB0aGUgaXRlbXMgYXJyYXkuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0xXSAtIFRoZSBkaXJlY3Rpb24gdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBhcnJheS4gMSBpcyBmcm9tIGJlZ2lubmluZyB0byBlbmQsIC0xIGZyb20gZW5kIHRvIGJlZ2lubmluZy5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFNldEFscGhhID0gZnVuY3Rpb24gKGl0ZW1zLCB2YWx1ZSwgc3RlcCwgaW5kZXgsIGRpcmVjdGlvbilcclxue1xyXG4gICAgcmV0dXJuIFByb3BlcnR5VmFsdWVTZXQoaXRlbXMsICdhbHBoYScsIHZhbHVlLCBzdGVwLCBpbmRleCwgZGlyZWN0aW9uKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2V0QWxwaGE7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFByb3BlcnR5VmFsdWVTZXQgPSByZXF1aXJlKCcuL1Byb3BlcnR5VmFsdWVTZXQnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMsIG9yIGFueSBvYmplY3RzIHRoYXQgaGF2ZSB0aGUgcHVibGljIHByb3BlcnR5IGBibGVuZE1vZGVgXHJcbiAqIGFuZCB0aGVuIHNldHMgaXQgdG8gdGhlIGdpdmVuIHZhbHVlLlxyXG4gKlxyXG4gKiBUaGUgb3B0aW9uYWwgYHN0ZXBgIHByb3BlcnR5IGlzIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBTZXRCbGVuZE1vZGUoZ3JvdXAuZ2V0Q2hpbGRyZW4oKSwgdmFsdWUpYFxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuU2V0QmxlbmRNb2RlXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gYmUgdXBkYXRlZCBieSB0aGlzIGFjdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIHByb3BlcnR5IHRvLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtpbmRleD0wXSAtIEFuIG9wdGlvbmFsIG9mZnNldCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbSB3aXRoaW4gdGhlIGl0ZW1zIGFycmF5LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtkaXJlY3Rpb249MV0gLSBUaGUgZGlyZWN0aW9uIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYXJyYXkuIDEgaXMgZnJvbSBiZWdpbm5pbmcgdG8gZW5kLCAtMSBmcm9tIGVuZCB0byBiZWdpbm5pbmcuXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIG9iamVjdHMgdGhhdCB3ZXJlIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBTZXRCbGVuZE1vZGUgPSBmdW5jdGlvbiAoaXRlbXMsIHZhbHVlLCBpbmRleCwgZGlyZWN0aW9uKVxyXG57XHJcbiAgICByZXR1cm4gUHJvcGVydHlWYWx1ZVNldChpdGVtcywgJ2JsZW5kTW9kZScsIHZhbHVlLCAwLCBpbmRleCwgZGlyZWN0aW9uKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2V0QmxlbmRNb2RlO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBQcm9wZXJ0eVZhbHVlU2V0ID0gcmVxdWlyZSgnLi9Qcm9wZXJ0eVZhbHVlU2V0Jyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLCBvciBhbnkgb2JqZWN0cyB0aGF0IGhhdmUgdGhlIHB1YmxpYyBwcm9wZXJ0eSBgZGVwdGhgXHJcbiAqIGFuZCB0aGVuIHNldHMgaXQgdG8gdGhlIGdpdmVuIHZhbHVlLlxyXG4gKlxyXG4gKiBUaGUgb3B0aW9uYWwgYHN0ZXBgIHByb3BlcnR5IGlzIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBTZXREZXB0aChncm91cC5nZXRDaGlsZHJlbigpLCB2YWx1ZSwgc3RlcClgXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5TZXREZXB0aFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gVGhlIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVwZGF0ZWQgYnkgdGhpcyBhY3Rpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBhbW91bnQgdG8gc2V0IHRoZSBwcm9wZXJ0eSB0by5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwPTBdIC0gVGhpcyBpcyBhZGRlZCB0byB0aGUgYHZhbHVlYCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtpbmRleD0wXSAtIEFuIG9wdGlvbmFsIG9mZnNldCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbSB3aXRoaW4gdGhlIGl0ZW1zIGFycmF5LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtkaXJlY3Rpb249MV0gLSBUaGUgZGlyZWN0aW9uIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYXJyYXkuIDEgaXMgZnJvbSBiZWdpbm5pbmcgdG8gZW5kLCAtMSBmcm9tIGVuZCB0byBiZWdpbm5pbmcuXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIG9iamVjdHMgdGhhdCB3ZXJlIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBTZXREZXB0aCA9IGZ1bmN0aW9uIChpdGVtcywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlU2V0KGl0ZW1zLCAnZGVwdGgnLCB2YWx1ZSwgc3RlcCwgaW5kZXgsIGRpcmVjdGlvbik7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFNldERlcHRoO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBQYXNzZXMgYWxsIHByb3ZpZGVkIEdhbWUgT2JqZWN0cyB0byB0aGUgSW5wdXQgTWFuYWdlciB0byBlbmFibGUgdGhlbSBmb3IgaW5wdXQgd2l0aCBpZGVudGljYWwgYXJlYXMgYW5kIGNhbGxiYWNrcy5cclxuICogXHJcbiAqIEBzZWUge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I3NldEludGVyYWN0aXZlfVxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuU2V0SGl0QXJlYVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gQW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLiBUaGUgY29udGVudHMgb2YgdGhpcyBhcnJheSBhcmUgdXBkYXRlZCBieSB0aGlzIEFjdGlvbi5cclxuICogQHBhcmFtIHsqfSBoaXRBcmVhIC0gRWl0aGVyIGFuIGlucHV0IGNvbmZpZ3VyYXRpb24gb2JqZWN0LCBvciBhIGdlb21ldHJpYyBzaGFwZSB0aGF0IGRlZmluZXMgdGhlIGhpdCBhcmVhIGZvciB0aGUgR2FtZSBPYmplY3QuIElmIG5vdCBzcGVjaWZpZWQgYSBSZWN0YW5nbGUgd2lsbCBiZSB1c2VkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5JbnB1dC5IaXRBcmVhQ2FsbGJhY2t9IGhpdEFyZWFDYWxsYmFjayAtIEEgY2FsbGJhY2sgdG8gYmUgaW52b2tlZCB3aGVuIHRoZSBHYW1lIE9iamVjdCBpcyBpbnRlcmFjdGVkIHdpdGguIElmIHlvdSBwcm92aWRlIGEgc2hhcGUgeW91IG11c3QgYWxzbyBwcm92aWRlIGEgY2FsbGJhY2suXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIEdhbWUgT2JqZWN0cyB0aGF0IHdhcyBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgU2V0SGl0QXJlYSA9IGZ1bmN0aW9uIChpdGVtcywgaGl0QXJlYSwgaGl0QXJlYUNhbGxiYWNrKVxyXG57XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKVxyXG4gICAge1xyXG4gICAgICAgIGl0ZW1zW2ldLnNldEludGVyYWN0aXZlKGhpdEFyZWEsIGhpdEFyZWFDYWxsYmFjayk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTZXRIaXRBcmVhO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBQcm9wZXJ0eVZhbHVlU2V0ID0gcmVxdWlyZSgnLi9Qcm9wZXJ0eVZhbHVlU2V0Jyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLCBvciBhbnkgb2JqZWN0cyB0aGF0IGhhdmUgdGhlIHB1YmxpYyBwcm9wZXJ0aWVzIGBvcmlnaW5YYCBhbmQgYG9yaWdpbllgXHJcbiAqIGFuZCB0aGVuIHNldHMgdGhlbSB0byB0aGUgZ2l2ZW4gdmFsdWVzLlxyXG4gKlxyXG4gKiBUaGUgb3B0aW9uYWwgYHN0ZXBYYCBhbmQgYHN0ZXBZYCBwcm9wZXJ0aWVzIGFyZSBhcHBsaWVkIGluY3JlbWVudGFsbHksIG11bHRpcGxpZWQgYnkgZWFjaCBpdGVtIGluIHRoZSBhcnJheS5cclxuICpcclxuICogVG8gdXNlIHRoaXMgd2l0aCBhIEdyb3VwOiBgU2V0T3JpZ2luKGdyb3VwLmdldENoaWxkcmVuKCksIG9yaWdpblgsIG9yaWdpblksIHN0ZXBYLCBzdGVwWSlgXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5TZXRPcmlnaW5cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byBiZSB1cGRhdGVkIGJ5IHRoaXMgYWN0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gb3JpZ2luWCAtIFRoZSBhbW91bnQgdG8gc2V0IHRoZSBgb3JpZ2luWGAgcHJvcGVydHkgdG8uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3JpZ2luWV0gLSBUaGUgYW1vdW50IHRvIHNldCB0aGUgYG9yaWdpbllgIHByb3BlcnR5IHRvLiBJZiBgdW5kZWZpbmVkYCBvciBgbnVsbGAgaXQgdXNlcyB0aGUgYG9yaWdpblhgIHZhbHVlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXBYPTBdIC0gVGhpcyBpcyBhZGRlZCB0byB0aGUgYG9yaWdpblhgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcFk9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgb3JpZ2luWWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbaW5kZXg9MF0gLSBBbiBvcHRpb25hbCBvZmZzZXQgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20gd2l0aGluIHRoZSBpdGVtcyBhcnJheS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbZGlyZWN0aW9uPTFdIC0gVGhlIGRpcmVjdGlvbiB0byBpdGVyYXRlIHRocm91Z2ggdGhlIGFycmF5LiAxIGlzIGZyb20gYmVnaW5uaW5nIHRvIGVuZCwgLTEgZnJvbSBlbmQgdG8gYmVnaW5uaW5nLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBvYmplY3RzIHRoYXQgd2VyZSBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgU2V0T3JpZ2luID0gZnVuY3Rpb24gKGl0ZW1zLCBvcmlnaW5YLCBvcmlnaW5ZLCBzdGVwWCwgc3RlcFksIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIGlmIChvcmlnaW5ZID09PSB1bmRlZmluZWQgfHwgb3JpZ2luWSA9PT0gbnVsbCkgeyBvcmlnaW5ZID0gb3JpZ2luWDsgfVxyXG5cclxuICAgIFByb3BlcnR5VmFsdWVTZXQoaXRlbXMsICdvcmlnaW5YJywgb3JpZ2luWCwgc3RlcFgsIGluZGV4LCBkaXJlY3Rpb24pO1xyXG5cclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlU2V0KGl0ZW1zLCAnb3JpZ2luWScsIG9yaWdpblksIHN0ZXBZLCBpbmRleCwgZGlyZWN0aW9uKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2V0T3JpZ2luO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBQcm9wZXJ0eVZhbHVlU2V0ID0gcmVxdWlyZSgnLi9Qcm9wZXJ0eVZhbHVlU2V0Jyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLCBvciBhbnkgb2JqZWN0cyB0aGF0IGhhdmUgdGhlIHB1YmxpYyBwcm9wZXJ0eSBgcm90YXRpb25gXHJcbiAqIGFuZCB0aGVuIHNldHMgaXQgdG8gdGhlIGdpdmVuIHZhbHVlLlxyXG4gKlxyXG4gKiBUaGUgb3B0aW9uYWwgYHN0ZXBgIHByb3BlcnR5IGlzIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBTZXRSb3RhdGlvbihncm91cC5nZXRDaGlsZHJlbigpLCB2YWx1ZSwgc3RlcClgXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5TZXRSb3RhdGlvblxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gVGhlIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVwZGF0ZWQgYnkgdGhpcyBhY3Rpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBhbW91bnQgdG8gc2V0IHRoZSBwcm9wZXJ0eSB0by5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwPTBdIC0gVGhpcyBpcyBhZGRlZCB0byB0aGUgYHZhbHVlYCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtpbmRleD0wXSAtIEFuIG9wdGlvbmFsIG9mZnNldCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbSB3aXRoaW4gdGhlIGl0ZW1zIGFycmF5LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtkaXJlY3Rpb249MV0gLSBUaGUgZGlyZWN0aW9uIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYXJyYXkuIDEgaXMgZnJvbSBiZWdpbm5pbmcgdG8gZW5kLCAtMSBmcm9tIGVuZCB0byBiZWdpbm5pbmcuXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIG9iamVjdHMgdGhhdCB3ZXJlIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBTZXRSb3RhdGlvbiA9IGZ1bmN0aW9uIChpdGVtcywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlU2V0KGl0ZW1zLCAncm90YXRpb24nLCB2YWx1ZSwgc3RlcCwgaW5kZXgsIGRpcmVjdGlvbik7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFNldFJvdGF0aW9uO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBQcm9wZXJ0eVZhbHVlU2V0ID0gcmVxdWlyZSgnLi9Qcm9wZXJ0eVZhbHVlU2V0Jyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLCBvciBhbnkgb2JqZWN0cyB0aGF0IGhhdmUgdGhlIHB1YmxpYyBwcm9wZXJ0aWVzIGBzY2FsZVhgIGFuZCBgc2NhbGVZYFxyXG4gKiBhbmQgdGhlbiBzZXRzIHRoZW0gdG8gdGhlIGdpdmVuIHZhbHVlcy5cclxuICpcclxuICogVGhlIG9wdGlvbmFsIGBzdGVwWGAgYW5kIGBzdGVwWWAgcHJvcGVydGllcyBhcmUgYXBwbGllZCBpbmNyZW1lbnRhbGx5LCBtdWx0aXBsaWVkIGJ5IGVhY2ggaXRlbSBpbiB0aGUgYXJyYXkuXHJcbiAqXHJcbiAqIFRvIHVzZSB0aGlzIHdpdGggYSBHcm91cDogYFNldFNjYWxlKGdyb3VwLmdldENoaWxkcmVuKCksIHNjYWxlWCwgc2NhbGVZLCBzdGVwWCwgc3RlcFkpYFxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuU2V0U2NhbGVcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byBiZSB1cGRhdGVkIGJ5IHRoaXMgYWN0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gc2NhbGVYIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIGBzY2FsZVhgIHByb3BlcnR5IHRvLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3NjYWxlWV0gLSBUaGUgYW1vdW50IHRvIHNldCB0aGUgYHNjYWxlWWAgcHJvcGVydHkgdG8uIElmIGB1bmRlZmluZWRgIG9yIGBudWxsYCBpdCB1c2VzIHRoZSBgc2NhbGVYYCB2YWx1ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwWD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGBzY2FsZVhgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcFk9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgc2NhbGVZYCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtpbmRleD0wXSAtIEFuIG9wdGlvbmFsIG9mZnNldCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbSB3aXRoaW4gdGhlIGl0ZW1zIGFycmF5LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtkaXJlY3Rpb249MV0gLSBUaGUgZGlyZWN0aW9uIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYXJyYXkuIDEgaXMgZnJvbSBiZWdpbm5pbmcgdG8gZW5kLCAtMSBmcm9tIGVuZCB0byBiZWdpbm5pbmcuXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIG9iamVjdHMgdGhhdCB3ZXJlIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBTZXRTY2FsZSA9IGZ1bmN0aW9uIChpdGVtcywgc2NhbGVYLCBzY2FsZVksIHN0ZXBYLCBzdGVwWSwgaW5kZXgsIGRpcmVjdGlvbilcclxue1xyXG4gICAgaWYgKHNjYWxlWSA9PT0gdW5kZWZpbmVkIHx8IHNjYWxlWSA9PT0gbnVsbCkgeyBzY2FsZVkgPSBzY2FsZVg7IH1cclxuXHJcbiAgICBQcm9wZXJ0eVZhbHVlU2V0KGl0ZW1zLCAnc2NhbGVYJywgc2NhbGVYLCBzdGVwWCwgaW5kZXgsIGRpcmVjdGlvbik7XHJcblxyXG4gICAgcmV0dXJuIFByb3BlcnR5VmFsdWVTZXQoaXRlbXMsICdzY2FsZVknLCBzY2FsZVksIHN0ZXBZLCBpbmRleCwgZGlyZWN0aW9uKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2V0U2NhbGU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFByb3BlcnR5VmFsdWVTZXQgPSByZXF1aXJlKCcuL1Byb3BlcnR5VmFsdWVTZXQnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMsIG9yIGFueSBvYmplY3RzIHRoYXQgaGF2ZSB0aGUgcHVibGljIHByb3BlcnR5IGBzY2FsZVhgXHJcbiAqIGFuZCB0aGVuIHNldHMgaXQgdG8gdGhlIGdpdmVuIHZhbHVlLlxyXG4gKlxyXG4gKiBUaGUgb3B0aW9uYWwgYHN0ZXBgIHByb3BlcnR5IGlzIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBTZXRTY2FsZVgoZ3JvdXAuZ2V0Q2hpbGRyZW4oKSwgdmFsdWUsIHN0ZXApYFxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuU2V0U2NhbGVYXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gYmUgdXBkYXRlZCBieSB0aGlzIGFjdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIHByb3BlcnR5IHRvLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2luZGV4PTBdIC0gQW4gb3B0aW9uYWwgb2Zmc2V0IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdpdGhpbiB0aGUgaXRlbXMgYXJyYXkuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0xXSAtIFRoZSBkaXJlY3Rpb24gdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBhcnJheS4gMSBpcyBmcm9tIGJlZ2lubmluZyB0byBlbmQsIC0xIGZyb20gZW5kIHRvIGJlZ2lubmluZy5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFNldFNjYWxlWCA9IGZ1bmN0aW9uIChpdGVtcywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlU2V0KGl0ZW1zLCAnc2NhbGVYJywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTZXRTY2FsZVg7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFByb3BlcnR5VmFsdWVTZXQgPSByZXF1aXJlKCcuL1Byb3BlcnR5VmFsdWVTZXQnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMsIG9yIGFueSBvYmplY3RzIHRoYXQgaGF2ZSB0aGUgcHVibGljIHByb3BlcnR5IGBzY2FsZVlgXHJcbiAqIGFuZCB0aGVuIHNldHMgaXQgdG8gdGhlIGdpdmVuIHZhbHVlLlxyXG4gKlxyXG4gKiBUaGUgb3B0aW9uYWwgYHN0ZXBgIHByb3BlcnR5IGlzIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBTZXRTY2FsZVkoZ3JvdXAuZ2V0Q2hpbGRyZW4oKSwgdmFsdWUsIHN0ZXApYFxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuU2V0U2NhbGVZXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gYmUgdXBkYXRlZCBieSB0aGlzIGFjdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIHByb3BlcnR5IHRvLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2luZGV4PTBdIC0gQW4gb3B0aW9uYWwgb2Zmc2V0IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdpdGhpbiB0aGUgaXRlbXMgYXJyYXkuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0xXSAtIFRoZSBkaXJlY3Rpb24gdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBhcnJheS4gMSBpcyBmcm9tIGJlZ2lubmluZyB0byBlbmQsIC0xIGZyb20gZW5kIHRvIGJlZ2lubmluZy5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFNldFNjYWxlWSA9IGZ1bmN0aW9uIChpdGVtcywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlU2V0KGl0ZW1zLCAnc2NhbGVZJywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTZXRTY2FsZVk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFByb3BlcnR5VmFsdWVTZXQgPSByZXF1aXJlKCcuL1Byb3BlcnR5VmFsdWVTZXQnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMsIG9yIGFueSBvYmplY3RzIHRoYXQgaGF2ZSB0aGUgcHVibGljIHByb3BlcnRpZXMgYHNjcm9sbEZhY3RvclhgIGFuZCBgc2Nyb2xsRmFjdG9yWWBcclxuICogYW5kIHRoZW4gc2V0cyB0aGVtIHRvIHRoZSBnaXZlbiB2YWx1ZXMuXHJcbiAqXHJcbiAqIFRoZSBvcHRpb25hbCBgc3RlcFhgIGFuZCBgc3RlcFlgIHByb3BlcnRpZXMgYXJlIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBTZXRTY3JvbGxGYWN0b3IoZ3JvdXAuZ2V0Q2hpbGRyZW4oKSwgc2Nyb2xsRmFjdG9yWCwgc2Nyb2xsRmFjdG9yWSwgc3RlcFgsIHN0ZXBZKWBcclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlNldFNjcm9sbEZhY3RvclxyXG4gKiBAc2luY2UgMy4yMS4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byBiZSB1cGRhdGVkIGJ5IHRoaXMgYWN0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gc2Nyb2xsRmFjdG9yWCAtIFRoZSBhbW91bnQgdG8gc2V0IHRoZSBgc2Nyb2xsRmFjdG9yWGAgcHJvcGVydHkgdG8uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc2Nyb2xsRmFjdG9yWV0gLSBUaGUgYW1vdW50IHRvIHNldCB0aGUgYHNjcm9sbEZhY3RvcllgIHByb3BlcnR5IHRvLiBJZiBgdW5kZWZpbmVkYCBvciBgbnVsbGAgaXQgdXNlcyB0aGUgYHNjcm9sbEZhY3RvclhgIHZhbHVlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXBYPTBdIC0gVGhpcyBpcyBhZGRlZCB0byB0aGUgYHNjcm9sbEZhY3RvclhgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcFk9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgc2Nyb2xsRmFjdG9yWWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbaW5kZXg9MF0gLSBBbiBvcHRpb25hbCBvZmZzZXQgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20gd2l0aGluIHRoZSBpdGVtcyBhcnJheS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbZGlyZWN0aW9uPTFdIC0gVGhlIGRpcmVjdGlvbiB0byBpdGVyYXRlIHRocm91Z2ggdGhlIGFycmF5LiAxIGlzIGZyb20gYmVnaW5uaW5nIHRvIGVuZCwgLTEgZnJvbSBlbmQgdG8gYmVnaW5uaW5nLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBvYmplY3RzIHRoYXQgd2VyZSBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgU2V0U2Nyb2xsRmFjdG9yID0gZnVuY3Rpb24gKGl0ZW1zLCBzY3JvbGxGYWN0b3JYLCBzY3JvbGxGYWN0b3JZLCBzdGVwWCwgc3RlcFksIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIGlmIChzY3JvbGxGYWN0b3JZID09PSB1bmRlZmluZWQgfHwgc2Nyb2xsRmFjdG9yWSA9PT0gbnVsbCkgeyBzY3JvbGxGYWN0b3JZID0gc2Nyb2xsRmFjdG9yWDsgfVxyXG5cclxuICAgIFByb3BlcnR5VmFsdWVTZXQoaXRlbXMsICdzY3JvbGxGYWN0b3JYJywgc2Nyb2xsRmFjdG9yWCwgc3RlcFgsIGluZGV4LCBkaXJlY3Rpb24pO1xyXG5cclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlU2V0KGl0ZW1zLCAnc2Nyb2xsRmFjdG9yWScsIHNjcm9sbEZhY3RvclksIHN0ZXBZLCBpbmRleCwgZGlyZWN0aW9uKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2V0U2Nyb2xsRmFjdG9yO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBQcm9wZXJ0eVZhbHVlU2V0ID0gcmVxdWlyZSgnLi9Qcm9wZXJ0eVZhbHVlU2V0Jyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLCBvciBhbnkgb2JqZWN0cyB0aGF0IGhhdmUgdGhlIHB1YmxpYyBwcm9wZXJ0eSBgc2Nyb2xsRmFjdG9yWGBcclxuICogYW5kIHRoZW4gc2V0cyBpdCB0byB0aGUgZ2l2ZW4gdmFsdWUuXHJcbiAqXHJcbiAqIFRoZSBvcHRpb25hbCBgc3RlcGAgcHJvcGVydHkgaXMgYXBwbGllZCBpbmNyZW1lbnRhbGx5LCBtdWx0aXBsaWVkIGJ5IGVhY2ggaXRlbSBpbiB0aGUgYXJyYXkuXHJcbiAqXHJcbiAqIFRvIHVzZSB0aGlzIHdpdGggYSBHcm91cDogYFNldFNjcm9sbEZhY3RvclgoZ3JvdXAuZ2V0Q2hpbGRyZW4oKSwgdmFsdWUsIHN0ZXApYFxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuU2V0U2Nyb2xsRmFjdG9yWFxyXG4gKiBAc2luY2UgMy4yMS4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byBiZSB1cGRhdGVkIGJ5IHRoaXMgYWN0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgYW1vdW50IHRvIHNldCB0aGUgcHJvcGVydHkgdG8uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGB2YWx1ZWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbaW5kZXg9MF0gLSBBbiBvcHRpb25hbCBvZmZzZXQgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20gd2l0aGluIHRoZSBpdGVtcyBhcnJheS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbZGlyZWN0aW9uPTFdIC0gVGhlIGRpcmVjdGlvbiB0byBpdGVyYXRlIHRocm91Z2ggdGhlIGFycmF5LiAxIGlzIGZyb20gYmVnaW5uaW5nIHRvIGVuZCwgLTEgZnJvbSBlbmQgdG8gYmVnaW5uaW5nLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBvYmplY3RzIHRoYXQgd2VyZSBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgU2V0U2Nyb2xsRmFjdG9yWCA9IGZ1bmN0aW9uIChpdGVtcywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlU2V0KGl0ZW1zLCAnc2Nyb2xsRmFjdG9yWCcsIHZhbHVlLCBzdGVwLCBpbmRleCwgZGlyZWN0aW9uKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2V0U2Nyb2xsRmFjdG9yWDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgUHJvcGVydHlWYWx1ZVNldCA9IHJlcXVpcmUoJy4vUHJvcGVydHlWYWx1ZVNldCcpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cywgb3IgYW55IG9iamVjdHMgdGhhdCBoYXZlIHRoZSBwdWJsaWMgcHJvcGVydHkgYHNjcm9sbEZhY3RvcllgXHJcbiAqIGFuZCB0aGVuIHNldHMgaXQgdG8gdGhlIGdpdmVuIHZhbHVlLlxyXG4gKlxyXG4gKiBUaGUgb3B0aW9uYWwgYHN0ZXBgIHByb3BlcnR5IGlzIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBTZXRTY3JvbGxGYWN0b3JZKGdyb3VwLmdldENoaWxkcmVuKCksIHZhbHVlLCBzdGVwKWBcclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlNldFNjcm9sbEZhY3RvcllcclxuICogQHNpbmNlIDMuMjEuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gYmUgdXBkYXRlZCBieSB0aGlzIGFjdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIHByb3BlcnR5IHRvLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2luZGV4PTBdIC0gQW4gb3B0aW9uYWwgb2Zmc2V0IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdpdGhpbiB0aGUgaXRlbXMgYXJyYXkuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0xXSAtIFRoZSBkaXJlY3Rpb24gdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBhcnJheS4gMSBpcyBmcm9tIGJlZ2lubmluZyB0byBlbmQsIC0xIGZyb20gZW5kIHRvIGJlZ2lubmluZy5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFNldFNjcm9sbEZhY3RvclkgPSBmdW5jdGlvbiAoaXRlbXMsIHZhbHVlLCBzdGVwLCBpbmRleCwgZGlyZWN0aW9uKVxyXG57XHJcbiAgICByZXR1cm4gUHJvcGVydHlWYWx1ZVNldChpdGVtcywgJ3Njcm9sbEZhY3RvclknLCB2YWx1ZSwgc3RlcCwgaW5kZXgsIGRpcmVjdGlvbik7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFNldFNjcm9sbEZhY3Rvclk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cywgb3IgYW55IG9iamVjdHMgdGhhdCBoYXZlIHRoZSBwdWJsaWMgbWV0aG9kIHNldFRpbnQoKSBhbmQgdGhlbiB1cGRhdGVzIGl0IHRvIHRoZSBnaXZlbiB2YWx1ZShzKS4gWW91IGNhbiBzcGVjaWZ5IHRpbnQgY29sb3IgcGVyIGNvcm5lciBvciBwcm92aWRlIG9ubHkgb25lIGNvbG9yIHZhbHVlIGZvciBgdG9wTGVmdGAgcGFyYW1ldGVyLCBpbiB3aGljaCBjYXNlIHdob2xlIGl0ZW0gd2lsbCBiZSB0aW50ZWQgd2l0aCB0aGF0IGNvbG9yLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuU2V0VGludFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gQW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLiBUaGUgY29udGVudHMgb2YgdGhpcyBhcnJheSBhcmUgdXBkYXRlZCBieSB0aGlzIEFjdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IHRvcExlZnQgLSBUaGUgdGludCBiZWluZyBhcHBsaWVkIHRvIHRvcC1sZWZ0IGNvcm5lciBvZiBpdGVtLiBJZiBvdGhlciBwYXJhbWV0ZXJzIGFyZSBnaXZlbiBubyB2YWx1ZSwgdGhpcyB0aW50IHdpbGwgYmUgYXBwbGllZCB0byB3aG9sZSBpdGVtLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3RvcFJpZ2h0XSAtIFRoZSB0aW50IHRvIGJlIGFwcGxpZWQgdG8gdG9wLXJpZ2h0IGNvcm5lciBvZiBpdGVtLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2JvdHRvbUxlZnRdIC0gVGhlIHRpbnQgdG8gYmUgYXBwbGllZCB0byB0aGUgYm90dG9tLWxlZnQgY29ybmVyIG9mIGl0ZW0uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbYm90dG9tUmlnaHRdIC0gVGhlIHRpbnQgdG8gYmUgYXBwbGllZCB0byB0aGUgYm90dG9tLXJpZ2h0IGNvcm5lciBvZiBpdGVtLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBHYW1lIE9iamVjdHMgdGhhdCB3YXMgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFNldFRpbnQgPSBmdW5jdGlvbiAoaXRlbXMsIHRvcExlZnQsIHRvcFJpZ2h0LCBib3R0b21MZWZ0LCBib3R0b21SaWdodClcclxue1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBpdGVtc1tpXS5zZXRUaW50KHRvcExlZnQsIHRvcFJpZ2h0LCBib3R0b21MZWZ0LCBib3R0b21SaWdodCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTZXRUaW50O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBQcm9wZXJ0eVZhbHVlU2V0ID0gcmVxdWlyZSgnLi9Qcm9wZXJ0eVZhbHVlU2V0Jyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLCBvciBhbnkgb2JqZWN0cyB0aGF0IGhhdmUgdGhlIHB1YmxpYyBwcm9wZXJ0eSBgdmlzaWJsZWBcclxuICogYW5kIHRoZW4gc2V0cyBpdCB0byB0aGUgZ2l2ZW4gdmFsdWUuXHJcbiAqXHJcbiAqIFRvIHVzZSB0aGlzIHdpdGggYSBHcm91cDogYFNldFZpc2libGUoZ3JvdXAuZ2V0Q2hpbGRyZW4oKSwgdmFsdWUpYFxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuU2V0VmlzaWJsZVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gVGhlIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVwZGF0ZWQgYnkgdGhpcyBhY3Rpb24uXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0IHRoZSBwcm9wZXJ0eSB0by5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbaW5kZXg9MF0gLSBBbiBvcHRpb25hbCBvZmZzZXQgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20gd2l0aGluIHRoZSBpdGVtcyBhcnJheS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbZGlyZWN0aW9uPTFdIC0gVGhlIGRpcmVjdGlvbiB0byBpdGVyYXRlIHRocm91Z2ggdGhlIGFycmF5LiAxIGlzIGZyb20gYmVnaW5uaW5nIHRvIGVuZCwgLTEgZnJvbSBlbmQgdG8gYmVnaW5uaW5nLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBvYmplY3RzIHRoYXQgd2VyZSBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgU2V0VmlzaWJsZSA9IGZ1bmN0aW9uIChpdGVtcywgdmFsdWUsIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlU2V0KGl0ZW1zLCAndmlzaWJsZScsIHZhbHVlLCAwLCBpbmRleCwgZGlyZWN0aW9uKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2V0VmlzaWJsZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgUHJvcGVydHlWYWx1ZVNldCA9IHJlcXVpcmUoJy4vUHJvcGVydHlWYWx1ZVNldCcpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cywgb3IgYW55IG9iamVjdHMgdGhhdCBoYXZlIHRoZSBwdWJsaWMgcHJvcGVydHkgYHhgXHJcbiAqIGFuZCB0aGVuIHNldHMgaXQgdG8gdGhlIGdpdmVuIHZhbHVlLlxyXG4gKlxyXG4gKiBUaGUgb3B0aW9uYWwgYHN0ZXBgIHByb3BlcnR5IGlzIGFwcGxpZWQgaW5jcmVtZW50YWxseSwgbXVsdGlwbGllZCBieSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5LlxyXG4gKlxyXG4gKiBUbyB1c2UgdGhpcyB3aXRoIGEgR3JvdXA6IGBTZXRYKGdyb3VwLmdldENoaWxkcmVuKCksIHZhbHVlLCBzdGVwKWBcclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlNldFhcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIFRoZSBhcnJheSBvZiBpdGVtcyB0byBiZSB1cGRhdGVkIGJ5IHRoaXMgYWN0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgYW1vdW50IHRvIHNldCB0aGUgcHJvcGVydHkgdG8uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGB2YWx1ZWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbaW5kZXg9MF0gLSBBbiBvcHRpb25hbCBvZmZzZXQgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20gd2l0aGluIHRoZSBpdGVtcyBhcnJheS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbZGlyZWN0aW9uPTFdIC0gVGhlIGRpcmVjdGlvbiB0byBpdGVyYXRlIHRocm91Z2ggdGhlIGFycmF5LiAxIGlzIGZyb20gYmVnaW5uaW5nIHRvIGVuZCwgLTEgZnJvbSBlbmQgdG8gYmVnaW5uaW5nLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IFRoZSBhcnJheSBvZiBvYmplY3RzIHRoYXQgd2VyZSBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgU2V0WCA9IGZ1bmN0aW9uIChpdGVtcywgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlU2V0KGl0ZW1zLCAneCcsIHZhbHVlLCBzdGVwLCBpbmRleCwgZGlyZWN0aW9uKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2V0WDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgUHJvcGVydHlWYWx1ZVNldCA9IHJlcXVpcmUoJy4vUHJvcGVydHlWYWx1ZVNldCcpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cywgb3IgYW55IG9iamVjdHMgdGhhdCBoYXZlIHRoZSBwdWJsaWMgcHJvcGVydGllcyBgeGAgYW5kIGB5YFxyXG4gKiBhbmQgdGhlbiBzZXRzIHRoZW0gdG8gdGhlIGdpdmVuIHZhbHVlcy5cclxuICpcclxuICogVGhlIG9wdGlvbmFsIGBzdGVwWGAgYW5kIGBzdGVwWWAgcHJvcGVydGllcyBhcmUgYXBwbGllZCBpbmNyZW1lbnRhbGx5LCBtdWx0aXBsaWVkIGJ5IGVhY2ggaXRlbSBpbiB0aGUgYXJyYXkuXHJcbiAqXHJcbiAqIFRvIHVzZSB0aGlzIHdpdGggYSBHcm91cDogYFNldFhZKGdyb3VwLmdldENoaWxkcmVuKCksIHgsIHksIHN0ZXBYLCBzdGVwWSlgXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5TZXRYWVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gVGhlIGFycmF5IG9mIGl0ZW1zIHRvIGJlIHVwZGF0ZWQgYnkgdGhpcyBhY3Rpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIGB4YCBwcm9wZXJ0eSB0by5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt5PXhdIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIGB5YCBwcm9wZXJ0eSB0by4gSWYgYHVuZGVmaW5lZGAgb3IgYG51bGxgIGl0IHVzZXMgdGhlIGB4YCB2YWx1ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwWD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGB4YCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXBZPTBdIC0gVGhpcyBpcyBhZGRlZCB0byB0aGUgYHlgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2luZGV4PTBdIC0gQW4gb3B0aW9uYWwgb2Zmc2V0IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdpdGhpbiB0aGUgaXRlbXMgYXJyYXkuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0xXSAtIFRoZSBkaXJlY3Rpb24gdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBhcnJheS4gMSBpcyBmcm9tIGJlZ2lubmluZyB0byBlbmQsIC0xIGZyb20gZW5kIHRvIGJlZ2lubmluZy5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFNldFhZID0gZnVuY3Rpb24gKGl0ZW1zLCB4LCB5LCBzdGVwWCwgc3RlcFksIGluZGV4LCBkaXJlY3Rpb24pXHJcbntcclxuICAgIGlmICh5ID09PSB1bmRlZmluZWQgfHwgeSA9PT0gbnVsbCkgeyB5ID0geDsgfVxyXG5cclxuICAgIFByb3BlcnR5VmFsdWVTZXQoaXRlbXMsICd4JywgeCwgc3RlcFgsIGluZGV4LCBkaXJlY3Rpb24pO1xyXG5cclxuICAgIHJldHVybiBQcm9wZXJ0eVZhbHVlU2V0KGl0ZW1zLCAneScsIHksIHN0ZXBZLCBpbmRleCwgZGlyZWN0aW9uKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2V0WFk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFByb3BlcnR5VmFsdWVTZXQgPSByZXF1aXJlKCcuL1Byb3BlcnR5VmFsdWVTZXQnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMsIG9yIGFueSBvYmplY3RzIHRoYXQgaGF2ZSB0aGUgcHVibGljIHByb3BlcnR5IGB5YFxyXG4gKiBhbmQgdGhlbiBzZXRzIGl0IHRvIHRoZSBnaXZlbiB2YWx1ZS5cclxuICpcclxuICogVGhlIG9wdGlvbmFsIGBzdGVwYCBwcm9wZXJ0eSBpcyBhcHBsaWVkIGluY3JlbWVudGFsbHksIG11bHRpcGxpZWQgYnkgZWFjaCBpdGVtIGluIHRoZSBhcnJheS5cclxuICpcclxuICogVG8gdXNlIHRoaXMgd2l0aCBhIEdyb3VwOiBgU2V0WShncm91cC5nZXRDaGlsZHJlbigpLCB2YWx1ZSwgc3RlcClgXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5TZXRZXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBUaGUgYXJyYXkgb2YgaXRlbXMgdG8gYmUgdXBkYXRlZCBieSB0aGlzIGFjdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIHByb3BlcnR5IHRvLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2luZGV4PTBdIC0gQW4gb3B0aW9uYWwgb2Zmc2V0IHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tIHdpdGhpbiB0aGUgaXRlbXMgYXJyYXkuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0xXSAtIFRoZSBkaXJlY3Rpb24gdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBhcnJheS4gMSBpcyBmcm9tIGJlZ2lubmluZyB0byBlbmQsIC0xIGZyb20gZW5kIHRvIGJlZ2lubmluZy5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2Ygb2JqZWN0cyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoaXMgQWN0aW9uLlxyXG4gKi9cclxudmFyIFNldFkgPSBmdW5jdGlvbiAoaXRlbXMsIHZhbHVlLCBzdGVwLCBpbmRleCwgZGlyZWN0aW9uKVxyXG57XHJcbiAgICByZXR1cm4gUHJvcGVydHlWYWx1ZVNldChpdGVtcywgJ3knLCB2YWx1ZSwgc3RlcCwgaW5kZXgsIGRpcmVjdGlvbik7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFNldFk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFZlY3RvcjIgPSByZXF1aXJlKCcuLi9tYXRoL1ZlY3RvcjInKTtcclxuXHJcbi8qKlxyXG4gKiBJdGVyYXRlIHRocm91Z2ggdGhlIGl0ZW1zIGFycmF5IGNoYW5naW5nIHRoZSBwb3NpdGlvbiBvZiBlYWNoIGVsZW1lbnQgdG8gYmUgdGhhdCBvZiB0aGUgZWxlbWVudCB0aGF0IGNhbWUgYmVmb3JlXHJcbiAqIGl0IGluIHRoZSBhcnJheSAob3IgYWZ0ZXIgaXQgaWYgZGlyZWN0aW9uID0gMSlcclxuICogXHJcbiAqIFRoZSBmaXJzdCBpdGVtcyBwb3NpdGlvbiBpcyBzZXQgdG8geC95LlxyXG4gKiBcclxuICogVGhlIGZpbmFsIHgveSBjb29yZHMgYXJlIHJldHVybmVkXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5TaGlmdFBvc2l0aW9uXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtc11cclxuICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0cHV0LCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBpdGVtcyAtIEFuIGFycmF5IG9mIEdhbWUgT2JqZWN0cy4gVGhlIGNvbnRlbnRzIG9mIHRoaXMgYXJyYXkgYXJlIHVwZGF0ZWQgYnkgdGhpcyBBY3Rpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggY29vcmRpbmF0ZSB0byBwbGFjZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgYXJyYXkgYXQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgY29vcmRpbmF0ZSB0byBwbGFjZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgYXJyYXkgYXQuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0wXSAtIFRoZSBpdGVyYXRpb24gZGlyZWN0aW9uLiAwID0gZmlyc3QgdG8gbGFzdCBhbmQgMSA9IGxhc3QgdG8gZmlyc3QuXHJcbiAqIEBwYXJhbSB7KFBoYXNlci5NYXRoLlZlY3RvcjJ8b2JqZWN0KX0gW291dHB1dF0gLSBBbiBvcHRpb25hbCBvYmplYyB0byBzdG9yZSB0aGUgZmluYWwgb2JqZWN0cyBwb3NpdGlvbiBpbi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLk1hdGguVmVjdG9yMn0gVGhlIG91dHB1dCB2ZWN0b3IuXHJcbiAqL1xyXG52YXIgU2hpZnRQb3NpdGlvbiA9IGZ1bmN0aW9uIChpdGVtcywgeCwgeSwgZGlyZWN0aW9uLCBvdXRwdXQpXHJcbntcclxuICAgIGlmIChkaXJlY3Rpb24gPT09IHVuZGVmaW5lZCkgeyBkaXJlY3Rpb24gPSAwOyB9XHJcbiAgICBpZiAob3V0cHV0ID09PSB1bmRlZmluZWQpIHsgb3V0cHV0ID0gbmV3IFZlY3RvcjIoKTsgfVxyXG5cclxuICAgIHZhciBweDtcclxuICAgIHZhciBweTtcclxuXHJcbiAgICBpZiAoaXRlbXMubGVuZ3RoID4gMSlcclxuICAgIHtcclxuICAgICAgICB2YXIgaTtcclxuICAgICAgICB2YXIgY3g7XHJcbiAgICAgICAgdmFyIGN5O1xyXG4gICAgICAgIHZhciBjdXI7XHJcblxyXG4gICAgICAgIGlmIChkaXJlY3Rpb24gPT09IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgQm90dG9tIHRvIFRvcFxyXG5cclxuICAgICAgICAgICAgdmFyIGxlbiA9IGl0ZW1zLmxlbmd0aCAtIDE7XHJcblxyXG4gICAgICAgICAgICBweCA9IGl0ZW1zW2xlbl0ueDtcclxuICAgICAgICAgICAgcHkgPSBpdGVtc1tsZW5dLnk7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGkgPSBsZW4gLSAxOyBpID49IDA7IGktLSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy8gIEN1cnJlbnQgaXRlbVxyXG4gICAgICAgICAgICAgICAgY3VyID0gaXRlbXNbaV07XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gIEdldCBjdXJyZW50IGl0ZW0geC95LCB0byBiZSBwYXNzZWQgdG8gdGhlIG5leHQgaXRlbSBpbiB0aGUgbGlzdFxyXG4gICAgICAgICAgICAgICAgY3ggPSBjdXIueDtcclxuICAgICAgICAgICAgICAgIGN5ID0gY3VyLnk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gIFNldCBjdXJyZW50IGl0ZW0gdG8gdGhlIHByZXZpb3VzIGl0ZW1zIHgveVxyXG4gICAgICAgICAgICAgICAgY3VyLnggPSBweDtcclxuICAgICAgICAgICAgICAgIGN1ci55ID0gcHk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gIFNldCBjdXJyZW50IGFzIHByZXZpb3VzXHJcbiAgICAgICAgICAgICAgICBweCA9IGN4O1xyXG4gICAgICAgICAgICAgICAgcHkgPSBjeTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gIFVwZGF0ZSB0aGUgaGVhZCBpdGVtIHRvIHRoZSBuZXcgeC95IGNvb3JkaW5hdGVzXHJcbiAgICAgICAgICAgIGl0ZW1zW2xlbl0ueCA9IHg7XHJcbiAgICAgICAgICAgIGl0ZW1zW2xlbl0ueSA9IHk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBUb3AgdG8gQm90dG9tXHJcblxyXG4gICAgICAgICAgICBweCA9IGl0ZW1zWzBdLng7XHJcbiAgICAgICAgICAgIHB5ID0gaXRlbXNbMF0ueTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy8gIEN1cnJlbnQgaXRlbVxyXG4gICAgICAgICAgICAgICAgY3VyID0gaXRlbXNbaV07XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gIEdldCBjdXJyZW50IGl0ZW0geC95LCB0byBiZSBwYXNzZWQgdG8gdGhlIG5leHQgaXRlbSBpbiB0aGUgbGlzdFxyXG4gICAgICAgICAgICAgICAgY3ggPSBjdXIueDtcclxuICAgICAgICAgICAgICAgIGN5ID0gY3VyLnk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gIFNldCBjdXJyZW50IGl0ZW0gdG8gdGhlIHByZXZpb3VzIGl0ZW1zIHgveVxyXG4gICAgICAgICAgICAgICAgY3VyLnggPSBweDtcclxuICAgICAgICAgICAgICAgIGN1ci55ID0gcHk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gIFNldCBjdXJyZW50IGFzIHByZXZpb3VzXHJcbiAgICAgICAgICAgICAgICBweCA9IGN4O1xyXG4gICAgICAgICAgICAgICAgcHkgPSBjeTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gIFVwZGF0ZSB0aGUgaGVhZCBpdGVtIHRvIHRoZSBuZXcgeC95IGNvb3JkaW5hdGVzXHJcbiAgICAgICAgICAgIGl0ZW1zWzBdLnggPSB4O1xyXG4gICAgICAgICAgICBpdGVtc1swXS55ID0geTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgcHggPSBpdGVtc1swXS54O1xyXG4gICAgICAgIHB5ID0gaXRlbXNbMF0ueTtcclxuXHJcbiAgICAgICAgaXRlbXNbMF0ueCA9IHg7XHJcbiAgICAgICAgaXRlbXNbMF0ueSA9IHk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIFJldHVybiB0aGUgZmluYWwgc2V0IG9mIGNvb3JkaW5hdGVzIGFzIHRoZXkncmUgZWZmZWN0aXZlbHkgbG9zdCBmcm9tIHRoZSBzaGlmdCBhbmQgbWF5IGJlIG5lZWRlZFxyXG5cclxuICAgIG91dHB1dC54ID0gcHg7XHJcbiAgICBvdXRwdXQueSA9IHB5O1xyXG5cclxuICAgIHJldHVybiBvdXRwdXQ7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFNoaWZ0UG9zaXRpb247XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEFycmF5U2h1ZmZsZSA9IHJlcXVpcmUoJy4uL3V0aWxzL2FycmF5L1NodWZmbGUnKTtcclxuXHJcbi8qKlxyXG4gKiBTaHVmZmxlcyB0aGUgYXJyYXkgaW4gcGxhY2UuIFRoZSBzaHVmZmxlZCBhcnJheSBpcyBib3RoIG1vZGlmaWVkIGFuZCByZXR1cm5lZC5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlNodWZmbGVcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIEBzZWUgUGhhc2VyLlV0aWxzLkFycmF5LlNodWZmbGVcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gQW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLiBUaGUgY29udGVudHMgb2YgdGhpcyBhcnJheSBhcmUgdXBkYXRlZCBieSB0aGlzIEFjdGlvbi5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRoYXQgd2FzIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBTaHVmZmxlID0gZnVuY3Rpb24gKGl0ZW1zKVxyXG57XHJcbiAgICByZXR1cm4gQXJyYXlTaHVmZmxlKGl0ZW1zKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2h1ZmZsZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgTWF0aFNtb290aFN0ZXAgPSByZXF1aXJlKCcuLi9tYXRoL1Ntb290aFN0ZXAnKTtcclxuXHJcbi8qKlxyXG4gKiBTbW9vdGhzdGVwIGlzIGEgc2lnbW9pZC1saWtlIGludGVycG9sYXRpb24gYW5kIGNsYW1waW5nIGZ1bmN0aW9uLlxyXG4gKiBcclxuICogVGhlIGZ1bmN0aW9uIGRlcGVuZHMgb24gdGhyZWUgcGFyYW1ldGVycywgdGhlIGlucHV0IHgsIHRoZSBcImxlZnQgZWRnZVwiIGFuZCB0aGUgXCJyaWdodCBlZGdlXCIsIHdpdGggdGhlIGxlZnQgZWRnZSBiZWluZyBhc3N1bWVkIHNtYWxsZXIgdGhhbiB0aGUgcmlnaHQgZWRnZS4gVGhlIGZ1bmN0aW9uIHJlY2VpdmVzIGEgcmVhbCBudW1iZXIgeCBhcyBhbiBhcmd1bWVudCBhbmQgcmV0dXJucyAwIGlmIHggaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBsZWZ0IGVkZ2UsIDEgaWYgeCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHJpZ2h0IGVkZ2UsIGFuZCBzbW9vdGhseSBpbnRlcnBvbGF0ZXMsIHVzaW5nIGEgSGVybWl0ZSBwb2x5bm9taWFsLCBiZXR3ZWVuIDAgYW5kIDEgb3RoZXJ3aXNlLiBUaGUgc2xvcGUgb2YgdGhlIHNtb290aHN0ZXAgZnVuY3Rpb24gaXMgemVybyBhdCBib3RoIGVkZ2VzLiBUaGlzIGlzIGNvbnZlbmllbnQgZm9yIGNyZWF0aW5nIGEgc2VxdWVuY2Ugb2YgdHJhbnNpdGlvbnMgdXNpbmcgc21vb3Roc3RlcCB0byBpbnRlcnBvbGF0ZSBlYWNoIHNlZ21lbnQgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gdXNpbmcgbW9yZSBzb3BoaXN0aWNhdGVkIG9yIGV4cGVuc2l2ZSBpbnRlcnBvbGF0aW9uIHRlY2huaXF1ZXMuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5TbW9vdGhTdGVwXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBBbiBhcnJheSBvZiBHYW1lIE9iamVjdHMuIFRoZSBjb250ZW50cyBvZiB0aGlzIGFycmF5IGFyZSB1cGRhdGVkIGJ5IHRoaXMgQWN0aW9uLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkgb2YgdGhlIEdhbWUgT2JqZWN0IHRvIGludGVycG9sYXRlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gbWluIC0gVGhlIG1pbmltdW0gaW50ZXJwb2xhdGlvbiB2YWx1ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IG1heCAtIFRoZSBtYXhpbXVtIGludGVycG9sYXRpb24gdmFsdWUuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luYz1mYWxzZV0gLSBTaG91bGQgdGhlIHZhbHVlcyBiZSBpbmNyZW1lbnRlZD8gYHRydWVgIG9yIHNldCAoYGZhbHNlYClcclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRoYXQgd2FzIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBTbW9vdGhTdGVwID0gZnVuY3Rpb24gKGl0ZW1zLCBwcm9wZXJ0eSwgbWluLCBtYXgsIGluYylcclxue1xyXG4gICAgaWYgKGluYyA9PT0gdW5kZWZpbmVkKSB7IGluYyA9IGZhbHNlOyB9XHJcblxyXG4gICAgdmFyIHN0ZXAgPSBNYXRoLmFicyhtYXggLSBtaW4pIC8gaXRlbXMubGVuZ3RoO1xyXG4gICAgdmFyIGk7XHJcblxyXG4gICAgaWYgKGluYylcclxuICAgIHtcclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpdGVtc1tpXVtwcm9wZXJ0eV0gKz0gTWF0aFNtb290aFN0ZXAoaSAqIHN0ZXAsIG1pbiwgbWF4KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaXRlbXNbaV1bcHJvcGVydHldID0gTWF0aFNtb290aFN0ZXAoaSAqIHN0ZXAsIG1pbiwgbWF4KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTbW9vdGhTdGVwO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBNYXRoU21vb3RoZXJTdGVwID0gcmVxdWlyZSgnLi4vbWF0aC9TbW9vdGhlclN0ZXAnKTtcclxuXHJcbi8qKlxyXG4gKiBTbW9vdGhlcnN0ZXAgaXMgYSBzaWdtb2lkLWxpa2UgaW50ZXJwb2xhdGlvbiBhbmQgY2xhbXBpbmcgZnVuY3Rpb24uXHJcbiAqIFxyXG4gKiBUaGUgZnVuY3Rpb24gZGVwZW5kcyBvbiB0aHJlZSBwYXJhbWV0ZXJzLCB0aGUgaW5wdXQgeCwgdGhlIFwibGVmdCBlZGdlXCIgYW5kIHRoZSBcInJpZ2h0IGVkZ2VcIiwgd2l0aCB0aGUgbGVmdCBlZGdlIGJlaW5nIGFzc3VtZWQgc21hbGxlciB0aGFuIHRoZSByaWdodCBlZGdlLiBUaGUgZnVuY3Rpb24gcmVjZWl2ZXMgYSByZWFsIG51bWJlciB4IGFzIGFuIGFyZ3VtZW50IGFuZCByZXR1cm5zIDAgaWYgeCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGxlZnQgZWRnZSwgMSBpZiB4IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgcmlnaHQgZWRnZSwgYW5kIHNtb290aGx5IGludGVycG9sYXRlcywgdXNpbmcgYSBIZXJtaXRlIHBvbHlub21pYWwsIGJldHdlZW4gMCBhbmQgMSBvdGhlcndpc2UuIFRoZSBzbG9wZSBvZiB0aGUgc21vb3Roc3RlcCBmdW5jdGlvbiBpcyB6ZXJvIGF0IGJvdGggZWRnZXMuIFRoaXMgaXMgY29udmVuaWVudCBmb3IgY3JlYXRpbmcgYSBzZXF1ZW5jZSBvZiB0cmFuc2l0aW9ucyB1c2luZyBzbW9vdGhzdGVwIHRvIGludGVycG9sYXRlIGVhY2ggc2VnbWVudCBhcyBhbiBhbHRlcm5hdGl2ZSB0byB1c2luZyBtb3JlIHNvcGhpc3RpY2F0ZWQgb3IgZXhwZW5zaXZlIGludGVycG9sYXRpb24gdGVjaG5pcXVlcy5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5BY3Rpb25zLlNtb290aGVyU3RlcFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gQW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLiBUaGUgY29udGVudHMgb2YgdGhpcyBhcnJheSBhcmUgdXBkYXRlZCBieSB0aGlzIEFjdGlvbi5cclxuICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IG9mIHRoZSBHYW1lIE9iamVjdCB0byBpbnRlcnBvbGF0ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IG1pbiAtIFRoZSBtaW5pbXVtIGludGVycG9sYXRpb24gdmFsdWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBtYXggLSBUaGUgbWF4aW11bSBpbnRlcnBvbGF0aW9uIHZhbHVlLlxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpbmM9ZmFsc2VdIC0gU2hvdWxkIHRoZSB2YWx1ZXMgYmUgaW5jcmVtZW50ZWQ/IGB0cnVlYCBvciBzZXQgKGBmYWxzZWApXHJcbiAqXHJcbiAqIEByZXR1cm4geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gVGhlIGFycmF5IG9mIEdhbWUgT2JqZWN0cyB0aGF0IHdhcyBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgU21vb3RoZXJTdGVwID0gZnVuY3Rpb24gKGl0ZW1zLCBwcm9wZXJ0eSwgbWluLCBtYXgsIGluYylcclxue1xyXG4gICAgaWYgKGluYyA9PT0gdW5kZWZpbmVkKSB7IGluYyA9IGZhbHNlOyB9XHJcblxyXG4gICAgdmFyIHN0ZXAgPSBNYXRoLmFicyhtYXggLSBtaW4pIC8gaXRlbXMubGVuZ3RoO1xyXG4gICAgdmFyIGk7XHJcblxyXG4gICAgaWYgKGluYylcclxuICAgIHtcclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpdGVtc1tpXVtwcm9wZXJ0eV0gKz0gTWF0aFNtb290aGVyU3RlcChpICogc3RlcCwgbWluLCBtYXgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpdGVtc1tpXVtwcm9wZXJ0eV0gPSBNYXRoU21vb3RoZXJTdGVwKGkgKiBzdGVwLCBtaW4sIG1heCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpdGVtcztcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU21vb3RoZXJTdGVwO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMgYW5kIHRoZW4gbW9kaWZpZXMgdGhlaXIgYHByb3BlcnR5YCBzbyB0aGUgdmFsdWUgZXF1YWxzLCBvciBpcyBpbmNyZW1lbnRlZCwgYnkgdGhlXHJcbiAqIGNhbGN1bGF0ZWQgc3ByZWFkIHZhbHVlLlxyXG4gKiBcclxuICogVGhlIHNwcmVhZCB2YWx1ZSBpcyBkZXJpdmVkIGZyb20gdGhlIGdpdmVuIGBtaW5gIGFuZCBgbWF4YCB2YWx1ZXMgYW5kIHRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIGFycmF5LlxyXG4gKiBcclxuICogRm9yIGV4YW1wbGUsIHRvIGNhdXNlIGFuIGFycmF5IG9mIFNwcml0ZXMgdG8gY2hhbmdlIGluIGFscGhhIGZyb20gMCB0byAxIHlvdSBjb3VsZCBjYWxsOlxyXG4gKiBcclxuICogYGBgamF2YXNjcmlwdFxyXG4gKiBQaGFzZXIuQWN0aW9ucy5TcHJlYWQoaXRlbXNBcnJheSwgJ2FscGhhJywgMCwgMSk7XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuU3ByZWFkXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBBbiBhcnJheSBvZiBHYW1lIE9iamVjdHMuIFRoZSBjb250ZW50cyBvZiB0aGlzIGFycmF5IGFyZSB1cGRhdGVkIGJ5IHRoaXMgQWN0aW9uLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkgb2YgdGhlIEdhbWUgT2JqZWN0IHRvIHNwcmVhZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IG1pbiAtIFRoZSBtaW5pbXVtIHZhbHVlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gbWF4IC0gVGhlIG1heGltdW0gdmFsdWUuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luYz1mYWxzZV0gLSBTaG91bGQgdGhlIHZhbHVlcyBiZSBpbmNyZW1lbnRlZD8gYHRydWVgIG9yIHNldCAoYGZhbHNlYClcclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRoYXQgd2VyZSBwYXNzZWQgdG8gdGhpcyBBY3Rpb24uXHJcbiAqL1xyXG52YXIgU3ByZWFkID0gZnVuY3Rpb24gKGl0ZW1zLCBwcm9wZXJ0eSwgbWluLCBtYXgsIGluYylcclxue1xyXG4gICAgaWYgKGluYyA9PT0gdW5kZWZpbmVkKSB7IGluYyA9IGZhbHNlOyB9XHJcblxyXG4gICAgdmFyIHN0ZXAgPSBNYXRoLmFicyhtYXggLSBtaW4pIC8gaXRlbXMubGVuZ3RoO1xyXG4gICAgdmFyIGk7XHJcblxyXG4gICAgaWYgKGluYylcclxuICAgIHtcclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpdGVtc1tpXVtwcm9wZXJ0eV0gKz0gaSAqIHN0ZXAgKyBtaW47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGl0ZW1zW2ldW3Byb3BlcnR5XSA9IGkgKiBzdGVwICsgbWluO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFNwcmVhZDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzIGFuZCB0b2dnbGVzIHRoZSB2aXNpYmlsaXR5IG9mIGVhY2ggb25lLlxyXG4gKiBUaG9zZSBwcmV2aW91c2x5IGB2aXNpYmxlID0gZmFsc2VgIHdpbGwgYmVjb21lIGB2aXNpYmxlID0gdHJ1ZWAsIGFuZCB2aWNlIHZlcnNhLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkFjdGlvbnMuVG9nZ2xlVmlzaWJsZVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbaXRlbXMsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHsoYXJyYXl8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXSl9IGl0ZW1zIC0gQW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzLiBUaGUgY29udGVudHMgb2YgdGhpcyBhcnJheSBhcmUgdXBkYXRlZCBieSB0aGlzIEFjdGlvbi5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRoYXQgd2FzIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBUb2dnbGVWaXNpYmxlID0gZnVuY3Rpb24gKGl0ZW1zKVxyXG57XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKVxyXG4gICAge1xyXG4gICAgICAgIGl0ZW1zW2ldLnZpc2libGUgPSAhaXRlbXNbaV0udmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFRvZ2dsZVZpc2libGU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAYXV0aG9yICAgICAgIHNhbW1lIDxzYW1tZS5ucG1AZ21haWwuY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFdyYXAgPSByZXF1aXJlKCcuLi9tYXRoL1dyYXAnKTtcclxuXHJcbi8qKlxyXG4gKiBXcmFwIGVhY2ggaXRlbSdzIGNvb3JkaW5hdGVzIHdpdGhpbiBhIHJlY3RhbmdsZSdzIGFyZWEuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQWN0aW9ucy5XcmFwSW5SZWN0YW5nbGVcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIEBzZWUgUGhhc2VyLk1hdGguV3JhcFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gRyAtIFtpdGVtcywkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdKX0gaXRlbXMgLSBBbiBhcnJheSBvZiBHYW1lIE9iamVjdHMuIFRoZSBjb250ZW50cyBvZiB0aGlzIGFycmF5IGFyZSB1cGRhdGVkIGJ5IHRoaXMgQWN0aW9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HZW9tLlJlY3RhbmdsZX0gcmVjdCAtIFRoZSByZWN0YW5nbGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbcGFkZGluZz0wXSAtIEFuIGFtb3VudCBhZGRlZCB0byBlYWNoIHNpZGUgb2YgdGhlIHJlY3RhbmdsZSBkdXJpbmcgdGhlIG9wZXJhdGlvbi5cclxuICpcclxuICogQHJldHVybiB7KGFycmF5fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W10pfSBUaGUgYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRoYXQgd2FzIHBhc3NlZCB0byB0aGlzIEFjdGlvbi5cclxuICovXHJcbnZhciBXcmFwSW5SZWN0YW5nbGUgPSBmdW5jdGlvbiAoaXRlbXMsIHJlY3QsIHBhZGRpbmcpXHJcbntcclxuICAgIGlmIChwYWRkaW5nID09PSB1bmRlZmluZWQpXHJcbiAgICB7XHJcbiAgICAgICAgcGFkZGluZyA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICB2YXIgaXRlbSA9IGl0ZW1zW2ldO1xyXG5cclxuICAgICAgICBpdGVtLnggPSBXcmFwKGl0ZW0ueCwgcmVjdC5sZWZ0IC0gcGFkZGluZywgcmVjdC5yaWdodCArIHBhZGRpbmcpO1xyXG4gICAgICAgIGl0ZW0ueSA9IFdyYXAoaXRlbS55LCByZWN0LnRvcCAtIHBhZGRpbmcsIHJlY3QuYm90dG9tICsgcGFkZGluZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBXcmFwSW5SZWN0YW5nbGU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkFjdGlvbnNcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBBbGlnblRvOiByZXF1aXJlKCcuL0FsaWduVG8nKSxcclxuICAgIEFuZ2xlOiByZXF1aXJlKCcuL0FuZ2xlJyksXHJcbiAgICBDYWxsOiByZXF1aXJlKCcuL0NhbGwnKSxcclxuICAgIEdldEZpcnN0OiByZXF1aXJlKCcuL0dldEZpcnN0JyksXHJcbiAgICBHZXRMYXN0OiByZXF1aXJlKCcuL0dldExhc3QnKSxcclxuICAgIEdyaWRBbGlnbjogcmVxdWlyZSgnLi9HcmlkQWxpZ24nKSxcclxuICAgIEluY0FscGhhOiByZXF1aXJlKCcuL0luY0FscGhhJyksXHJcbiAgICBJbmNYOiByZXF1aXJlKCcuL0luY1gnKSxcclxuICAgIEluY1hZOiByZXF1aXJlKCcuL0luY1hZJyksXHJcbiAgICBJbmNZOiByZXF1aXJlKCcuL0luY1knKSxcclxuICAgIFBsYWNlT25DaXJjbGU6IHJlcXVpcmUoJy4vUGxhY2VPbkNpcmNsZScpLFxyXG4gICAgUGxhY2VPbkVsbGlwc2U6IHJlcXVpcmUoJy4vUGxhY2VPbkVsbGlwc2UnKSxcclxuICAgIFBsYWNlT25MaW5lOiByZXF1aXJlKCcuL1BsYWNlT25MaW5lJyksXHJcbiAgICBQbGFjZU9uUmVjdGFuZ2xlOiByZXF1aXJlKCcuL1BsYWNlT25SZWN0YW5nbGUnKSxcclxuICAgIFBsYWNlT25UcmlhbmdsZTogcmVxdWlyZSgnLi9QbGFjZU9uVHJpYW5nbGUnKSxcclxuICAgIFBsYXlBbmltYXRpb246IHJlcXVpcmUoJy4vUGxheUFuaW1hdGlvbicpLFxyXG4gICAgUHJvcGVydHlWYWx1ZUluYzogcmVxdWlyZSgnLi9Qcm9wZXJ0eVZhbHVlSW5jJyksXHJcbiAgICBQcm9wZXJ0eVZhbHVlU2V0OiByZXF1aXJlKCcuL1Byb3BlcnR5VmFsdWVTZXQnKSxcclxuICAgIFJhbmRvbUNpcmNsZTogcmVxdWlyZSgnLi9SYW5kb21DaXJjbGUnKSxcclxuICAgIFJhbmRvbUVsbGlwc2U6IHJlcXVpcmUoJy4vUmFuZG9tRWxsaXBzZScpLFxyXG4gICAgUmFuZG9tTGluZTogcmVxdWlyZSgnLi9SYW5kb21MaW5lJyksXHJcbiAgICBSYW5kb21SZWN0YW5nbGU6IHJlcXVpcmUoJy4vUmFuZG9tUmVjdGFuZ2xlJyksXHJcbiAgICBSYW5kb21UcmlhbmdsZTogcmVxdWlyZSgnLi9SYW5kb21UcmlhbmdsZScpLFxyXG4gICAgUm90YXRlOiByZXF1aXJlKCcuL1JvdGF0ZScpLFxyXG4gICAgUm90YXRlQXJvdW5kOiByZXF1aXJlKCcuL1JvdGF0ZUFyb3VuZCcpLFxyXG4gICAgUm90YXRlQXJvdW5kRGlzdGFuY2U6IHJlcXVpcmUoJy4vUm90YXRlQXJvdW5kRGlzdGFuY2UnKSxcclxuICAgIFNjYWxlWDogcmVxdWlyZSgnLi9TY2FsZVgnKSxcclxuICAgIFNjYWxlWFk6IHJlcXVpcmUoJy4vU2NhbGVYWScpLFxyXG4gICAgU2NhbGVZOiByZXF1aXJlKCcuL1NjYWxlWScpLFxyXG4gICAgU2V0QWxwaGE6IHJlcXVpcmUoJy4vU2V0QWxwaGEnKSxcclxuICAgIFNldEJsZW5kTW9kZTogcmVxdWlyZSgnLi9TZXRCbGVuZE1vZGUnKSxcclxuICAgIFNldERlcHRoOiByZXF1aXJlKCcuL1NldERlcHRoJyksXHJcbiAgICBTZXRIaXRBcmVhOiByZXF1aXJlKCcuL1NldEhpdEFyZWEnKSxcclxuICAgIFNldE9yaWdpbjogcmVxdWlyZSgnLi9TZXRPcmlnaW4nKSxcclxuICAgIFNldFJvdGF0aW9uOiByZXF1aXJlKCcuL1NldFJvdGF0aW9uJyksXHJcbiAgICBTZXRTY2FsZTogcmVxdWlyZSgnLi9TZXRTY2FsZScpLFxyXG4gICAgU2V0U2NhbGVYOiByZXF1aXJlKCcuL1NldFNjYWxlWCcpLFxyXG4gICAgU2V0U2NhbGVZOiByZXF1aXJlKCcuL1NldFNjYWxlWScpLFxyXG4gICAgU2V0U2Nyb2xsRmFjdG9yOiByZXF1aXJlKCcuL1NldFNjcm9sbEZhY3RvcicpLFxyXG4gICAgU2V0U2Nyb2xsRmFjdG9yWDogcmVxdWlyZSgnLi9TZXRTY3JvbGxGYWN0b3JYJyksXHJcbiAgICBTZXRTY3JvbGxGYWN0b3JZOiByZXF1aXJlKCcuL1NldFNjcm9sbEZhY3RvclknKSxcclxuICAgIFNldFRpbnQ6IHJlcXVpcmUoJy4vU2V0VGludCcpLFxyXG4gICAgU2V0VmlzaWJsZTogcmVxdWlyZSgnLi9TZXRWaXNpYmxlJyksXHJcbiAgICBTZXRYOiByZXF1aXJlKCcuL1NldFgnKSxcclxuICAgIFNldFhZOiByZXF1aXJlKCcuL1NldFhZJyksXHJcbiAgICBTZXRZOiByZXF1aXJlKCcuL1NldFknKSxcclxuICAgIFNoaWZ0UG9zaXRpb246IHJlcXVpcmUoJy4vU2hpZnRQb3NpdGlvbicpLFxyXG4gICAgU2h1ZmZsZTogcmVxdWlyZSgnLi9TaHVmZmxlJyksXHJcbiAgICBTbW9vdGhlclN0ZXA6IHJlcXVpcmUoJy4vU21vb3RoZXJTdGVwJyksXHJcbiAgICBTbW9vdGhTdGVwOiByZXF1aXJlKCcuL1Ntb290aFN0ZXAnKSxcclxuICAgIFNwcmVhZDogcmVxdWlyZSgnLi9TcHJlYWQnKSxcclxuICAgIFRvZ2dsZVZpc2libGU6IHJlcXVpcmUoJy4vVG9nZ2xlVmlzaWJsZScpLFxyXG4gICAgV3JhcEluUmVjdGFuZ2xlOiByZXF1aXJlKCcuL1dyYXBJblJlY3RhbmdsZScpXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFtcCA9IHJlcXVpcmUoJy4uL21hdGgvQ2xhbXAnKTtcclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoJ2V2ZW50ZW1pdHRlcjMnKTtcclxudmFyIEV2ZW50cyA9IHJlcXVpcmUoJy4vZXZlbnRzJyk7XHJcbnZhciBGaW5kQ2xvc2VzdEluU29ydGVkID0gcmVxdWlyZSgnLi4vdXRpbHMvYXJyYXkvRmluZENsb3Nlc3RJblNvcnRlZCcpO1xyXG52YXIgRnJhbWUgPSByZXF1aXJlKCcuL0FuaW1hdGlvbkZyYW1lJyk7XHJcbnZhciBHZXRWYWx1ZSA9IHJlcXVpcmUoJy4uL3V0aWxzL29iamVjdC9HZXRWYWx1ZScpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBGcmFtZSBiYXNlZCBBbmltYXRpb24uXHJcbiAqXHJcbiAqIFRoaXMgY29uc2lzdHMgb2YgYSBrZXksIHNvbWUgZGVmYXVsdCB2YWx1ZXMgKGxpa2UgdGhlIGZyYW1lIHJhdGUpIGFuZCBhIGJ1bmNoIG9mIEZyYW1lIG9iamVjdHMuXHJcbiAqXHJcbiAqIFRoZSBBbmltYXRpb24gTWFuYWdlciBjcmVhdGVzIHRoZXNlLiBHYW1lIE9iamVjdHMgZG9uJ3Qgb3duIGFuIGluc3RhbmNlIG9mIHRoZXNlIGRpcmVjdGx5LlxyXG4gKiBHYW1lIE9iamVjdHMgaGF2ZSB0aGUgQW5pbWF0aW9uIENvbXBvbmVudCwgd2hpY2ggYXJlIGxpa2UgcGxheWhlYWRzIHRvIGdsb2JhbCBBbmltYXRpb25zICh0aGVzZSBvYmplY3RzKVxyXG4gKiBTbyBtdWx0aXBsZSBHYW1lIE9iamVjdHMgY2FuIGhhdmUgcGxheWhlYWRzIGFsbCBwb2ludGluZyB0byB0aGlzIG9uZSBBbmltYXRpb24gaW5zdGFuY2UuXHJcbiAqXHJcbiAqIEBjbGFzcyBBbmltYXRpb25cclxuICogQG1lbWJlcm9mIFBoYXNlci5BbmltYXRpb25zXHJcbiAqIEBleHRlbmRzIFBoYXNlci5FdmVudHMuRXZlbnRFbWl0dGVyXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25NYW5hZ2VyfSBtYW5hZ2VyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBBbmltYXRpb24gTWFuYWdlclxyXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHVuaXF1ZSBpZGVudGlmeWluZyBzdHJpbmcgZm9yIHRoaXMgYW5pbWF0aW9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5BbmltYXRpb25zLkFuaW1hdGlvbn0gY29uZmlnIC0gVGhlIEFuaW1hdGlvbiBjb25maWd1cmF0aW9uLlxyXG4gKi9cclxudmFyIEFuaW1hdGlvbiA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogRXZlbnRFbWl0dGVyLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gQW5pbWF0aW9uIChtYW5hZ2VyLCBrZXksIGNvbmZpZylcclxuICAgIHtcclxuICAgICAgICBFdmVudEVtaXR0ZXIuY2FsbCh0aGlzKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBBbmltYXRpb24gTWFuYWdlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNtYW5hZ2VyXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbk1hbmFnZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tYW5hZ2VyID0gbWFuYWdlcjtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHVuaXF1ZSBpZGVudGlmeWluZyBzdHJpbmcgZm9yIHRoaXMgYW5pbWF0aW9uLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uI2tleVxyXG4gICAgICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5rZXkgPSBrZXk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgZnJhbWUgYmFzZWQgYW5pbWF0aW9uIChhcyBvcHBvc2VkIHRvIGEgYm9uZSBiYXNlZCBhbmltYXRpb24pXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb24jdHlwZVxyXG4gICAgICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgICAgICogQGRlZmF1bHQgZnJhbWVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnR5cGUgPSAnZnJhbWUnO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBFeHRyYWN0IGFsbCB0aGUgZnJhbWUgZGF0YSBpbnRvIHRoZSBmcmFtZXMgYXJyYXkuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb24jZnJhbWVzXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lW119XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5mcmFtZXMgPSB0aGlzLmdldEZyYW1lcyhcclxuICAgICAgICAgICAgbWFuYWdlci50ZXh0dXJlTWFuYWdlcixcclxuICAgICAgICAgICAgR2V0VmFsdWUoY29uZmlnLCAnZnJhbWVzJywgW10pLFxyXG4gICAgICAgICAgICBHZXRWYWx1ZShjb25maWcsICdkZWZhdWx0VGV4dHVyZUtleScsIG51bGwpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGZyYW1lIHJhdGUgb2YgcGxheWJhY2sgaW4gZnJhbWVzIHBlciBzZWNvbmQgKGRlZmF1bHQgMjQgaWYgZHVyYXRpb24gaXMgbnVsbClcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNmcmFtZVJhdGVcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAyNFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZnJhbWVSYXRlID0gR2V0VmFsdWUoY29uZmlnLCAnZnJhbWVSYXRlJywgbnVsbCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEhvdyBsb25nIHRoZSBhbmltYXRpb24gc2hvdWxkIHBsYXkgZm9yLCBpbiBtaWxsaXNlY29uZHMuXHJcbiAgICAgICAgICogSWYgdGhlIGBmcmFtZVJhdGVgIHByb3BlcnR5IGhhcyBiZWVuIHNldCB0aGVuIGl0IG92ZXJyaWRlcyB0aGlzIHZhbHVlLFxyXG4gICAgICAgICAqIG90aGVyd2lzZSB0aGUgYGZyYW1lUmF0ZWAgaXMgZGVyaXZlZCBmcm9tIGBkdXJhdGlvbmAuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb24jZHVyYXRpb25cclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmR1cmF0aW9uID0gR2V0VmFsdWUoY29uZmlnLCAnZHVyYXRpb24nLCBudWxsKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZHVyYXRpb24gPT09IG51bGwgJiYgdGhpcy5mcmFtZVJhdGUgPT09IG51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgTm8gZHVyYXRpb24gb3IgZnJhbWVSYXRlIGdpdmVuLCB1c2UgZGVmYXVsdCBmcmFtZVJhdGUgb2YgMjRmcHNcclxuICAgICAgICAgICAgdGhpcy5mcmFtZVJhdGUgPSAyNDtcclxuICAgICAgICAgICAgdGhpcy5kdXJhdGlvbiA9ICh0aGlzLmZyYW1lUmF0ZSAvIHRoaXMuZnJhbWVzLmxlbmd0aCkgKiAxMDAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmR1cmF0aW9uICYmIHRoaXMuZnJhbWVSYXRlID09PSBudWxsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIER1cmF0aW9uIGdpdmVuIGJ1dCBubyBmcmFtZVJhdGUsIHNvIHNldCB0aGUgZnJhbWVSYXRlIGJhc2VkIG9uIGR1cmF0aW9uXHJcbiAgICAgICAgICAgIC8vICBJLmUuIDEyIGZyYW1lcyBpbiB0aGUgYW5pbWF0aW9uLCBkdXJhdGlvbiA9IDQwMDAgbXNcclxuICAgICAgICAgICAgLy8gIFNvIGZyYW1lUmF0ZSBpcyAxMiAvICg0MDAwIC8gMTAwMCkgPSAzIGZwc1xyXG4gICAgICAgICAgICB0aGlzLmZyYW1lUmF0ZSA9IHRoaXMuZnJhbWVzLmxlbmd0aCAvICh0aGlzLmR1cmF0aW9uIC8gMTAwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBmcmFtZVJhdGUgZ2l2ZW4sIGRlcml2ZSBkdXJhdGlvbiBmcm9tIGl0IChldmVuIGlmIGR1cmF0aW9uIGFsc28gc3BlY2lmaWVkKVxyXG4gICAgICAgICAgICAvLyAgSS5lLiAxNSBmcmFtZXMgaW4gdGhlIGFuaW1hdGlvbiwgZnJhbWVSYXRlID0gMzAgZnBzXHJcbiAgICAgICAgICAgIC8vICBTbyBkdXJhdGlvbiBpcyAxNSAvIDMwID0gMC41ICogMTAwMCAoaGFsZiBhIHNlY29uZCwgb3IgNTAwbXMpXHJcbiAgICAgICAgICAgIHRoaXMuZHVyYXRpb24gPSAodGhpcy5mcmFtZXMubGVuZ3RoIC8gdGhpcy5mcmFtZVJhdGUpICogMTAwMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEhvdyBtYW55IG1zIHBlciBmcmFtZSwgbm90IGluY2x1ZGluZyBmcmFtZSBzcGVjaWZpYyBtb2RpZmllcnMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb24jbXNQZXJGcmFtZVxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubXNQZXJGcmFtZSA9IDEwMDAgLyB0aGlzLmZyYW1lUmF0ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogU2tpcCBmcmFtZXMgaWYgdGhlIHRpbWUgbGFncywgb3IgYWx3YXlzIGFkdmFuY2VkIGFueXdheT9cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNza2lwTWlzc2VkRnJhbWVzXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNraXBNaXNzZWRGcmFtZXMgPSBHZXRWYWx1ZShjb25maWcsICdza2lwTWlzc2VkRnJhbWVzJywgdHJ1ZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBkZWxheSBpbiBtcyBiZWZvcmUgdGhlIHBsYXliYWNrIHdpbGwgYmVnaW4uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb24jZGVsYXlcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWxheSA9IEdldFZhbHVlKGNvbmZpZywgJ2RlbGF5JywgMCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIE51bWJlciBvZiB0aW1lcyB0byByZXBlYXQgdGhlIGFuaW1hdGlvbi4gU2V0IHRvIC0xIHRvIHJlcGVhdCBmb3JldmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uI3JlcGVhdFxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJlcGVhdCA9IEdldFZhbHVlKGNvbmZpZywgJ3JlcGVhdCcsIDApO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZGVsYXkgaW4gbXMgYmVmb3JlIHRoZSBhIHJlcGVhdCBwbGF5IHN0YXJ0cy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNyZXBlYXREZWxheVxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJlcGVhdERlbGF5ID0gR2V0VmFsdWUoY29uZmlnLCAncmVwZWF0RGVsYXknLCAwKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogU2hvdWxkIHRoZSBhbmltYXRpb24geW95byAocmV2ZXJzZSBiYWNrIGRvd24gdG8gdGhlIHN0YXJ0KSBiZWZvcmUgcmVwZWF0aW5nP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uI3lveW9cclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMueW95byA9IEdldFZhbHVlKGNvbmZpZywgJ3lveW8nLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFNob3VsZCB0aGUgR2FtZU9iamVjdCdzIGB2aXNpYmxlYCBwcm9wZXJ0eSBiZSBzZXQgdG8gYHRydWVgIHdoZW4gdGhlIGFuaW1hdGlvbiBzdGFydHMgdG8gcGxheT9cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNzaG93T25TdGFydFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zaG93T25TdGFydCA9IEdldFZhbHVlKGNvbmZpZywgJ3Nob3dPblN0YXJ0JywgZmFsc2UpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBTaG91bGQgdGhlIEdhbWVPYmplY3QncyBgdmlzaWJsZWAgcHJvcGVydHkgYmUgc2V0IHRvIGBmYWxzZWAgd2hlbiB0aGUgYW5pbWF0aW9uIGZpbmlzaGVzP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uI2hpZGVPbkNvbXBsZXRlXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmhpZGVPbkNvbXBsZXRlID0gR2V0VmFsdWUoY29uZmlnLCAnaGlkZU9uQ29tcGxldGUnLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEdsb2JhbCBwYXVzZS4gQWxsIEdhbWUgT2JqZWN0cyB1c2luZyB0aGlzIEFuaW1hdGlvbiBpbnN0YW5jZSBhcmUgaW1wYWN0ZWQgYnkgdGhpcyBwcm9wZXJ0eS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNwYXVzZWRcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucGF1c2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMubWFuYWdlci5vbihFdmVudHMuUEFVU0VfQUxMLCB0aGlzLnBhdXNlLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm1hbmFnZXIub24oRXZlbnRzLlJFU1VNRV9BTEwsIHRoaXMucmVzdW1lLCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGQgZnJhbWVzIHRvIHRoZSBlbmQgb2YgdGhlIGFuaW1hdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNhZGRGcmFtZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfFBoYXNlci5UeXBlcy5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lW10pfSBjb25maWcgLSBFaXRoZXIgYSBzdHJpbmcsIGluIHdoaWNoIGNhc2UgaXQgd2lsbCB1c2UgYWxsIGZyYW1lcyBmcm9tIGEgdGV4dHVyZSB3aXRoIHRoZSBtYXRjaGluZyBrZXksIG9yIGFuIGFycmF5IG9mIEFuaW1hdGlvbiBGcmFtZSBjb25maWd1cmF0aW9uIG9iamVjdHMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBBbmltYXRpb24gb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBhZGRGcmFtZTogZnVuY3Rpb24gKGNvbmZpZylcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hZGRGcmFtZUF0KHRoaXMuZnJhbWVzLmxlbmd0aCwgY29uZmlnKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGQgZnJhbWUvcyBpbnRvIHRoZSBhbmltYXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb24jYWRkRnJhbWVBdFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIFRoZSBpbmRleCB0byBpbnNlcnQgdGhlIGZyYW1lIGF0IHdpdGhpbiB0aGUgYW5pbWF0aW9uLlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfFBoYXNlci5UeXBlcy5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lW10pfSBjb25maWcgLSBFaXRoZXIgYSBzdHJpbmcsIGluIHdoaWNoIGNhc2UgaXQgd2lsbCB1c2UgYWxsIGZyYW1lcyBmcm9tIGEgdGV4dHVyZSB3aXRoIHRoZSBtYXRjaGluZyBrZXksIG9yIGFuIGFycmF5IG9mIEFuaW1hdGlvbiBGcmFtZSBjb25maWd1cmF0aW9uIG9iamVjdHMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBBbmltYXRpb24gb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBhZGRGcmFtZUF0OiBmdW5jdGlvbiAoaW5kZXgsIGNvbmZpZylcclxuICAgIHtcclxuICAgICAgICB2YXIgbmV3RnJhbWVzID0gdGhpcy5nZXRGcmFtZXModGhpcy5tYW5hZ2VyLnRleHR1cmVNYW5hZ2VyLCBjb25maWcpO1xyXG5cclxuICAgICAgICBpZiAobmV3RnJhbWVzLmxlbmd0aCA+IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJhbWVzID0gbmV3RnJhbWVzLmNvbmNhdCh0aGlzLmZyYW1lcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaW5kZXggPT09IHRoaXMuZnJhbWVzLmxlbmd0aClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mcmFtZXMgPSB0aGlzLmZyYW1lcy5jb25jYXQobmV3RnJhbWVzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhciBwcmUgPSB0aGlzLmZyYW1lcy5zbGljZSgwLCBpbmRleCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgcG9zdCA9IHRoaXMuZnJhbWVzLnNsaWNlKGluZGV4KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZyYW1lcyA9IHByZS5jb25jYXQobmV3RnJhbWVzLCBwb3N0KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy51cGRhdGVGcmFtZVNlcXVlbmNlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgZ2l2ZW4gZnJhbWUgaW5kZXggaXMgdmFsaWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb24jY2hlY2tGcmFtZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIFRoZSBpbmRleCB0byBiZSBjaGVja2VkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgaW5kZXggaXMgdmFsaWQsIG90aGVyd2lzZSBgZmFsc2VgLlxyXG4gICAgICovXHJcbiAgICBjaGVja0ZyYW1lOiBmdW5jdGlvbiAoaW5kZXgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIChpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy5mcmFtZXMubGVuZ3RoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgaW50ZXJuYWxseSB3aGVuIHRoaXMgQW5pbWF0aW9uIGNvbXBsZXRlcyBwbGF5YmFjay5cclxuICAgICAqIE9wdGlvbmFsbHksIGhpZGVzIHRoZSBwYXJlbnQgR2FtZSBPYmplY3QsIHRoZW4gc3RvcHMgcGxheWJhY2suXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb24jY29tcGxldGVBbmltYXRpb25cclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9ufSBjb21wb25lbnQgLSBUaGUgQW5pbWF0aW9uIENvbXBvbmVudCBiZWxvbmdpbmcgdG8gdGhlIEdhbWUgT2JqZWN0IGludm9raW5nIHRoaXMgY2FsbC5cclxuICAgICAqL1xyXG4gICAgY29tcGxldGVBbmltYXRpb246IGZ1bmN0aW9uIChjb21wb25lbnQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuaGlkZU9uQ29tcGxldGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb21wb25lbnQucGFyZW50LnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbXBvbmVudC5zdG9wKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGVkIGludGVybmFsbHkgd2hlbiB0aGlzIEFuaW1hdGlvbiBmaXJzdCBzdGFydHMgdG8gcGxheS5cclxuICAgICAqIFNldHMgdGhlIGFjY3VtdWxhdG9yIGFuZCBuZXh0VGljayBwcm9wZXJ0aWVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uI2dldEZpcnN0VGlja1xyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb259IGNvbXBvbmVudCAtIFRoZSBBbmltYXRpb24gQ29tcG9uZW50IGJlbG9uZ2luZyB0byB0aGUgR2FtZSBPYmplY3QgaW52b2tpbmcgdGhpcyBjYWxsLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaW5jbHVkZURlbGF5PXRydWVdIC0gSWYgYHRydWVgIHRoZSBBbmltYXRpb24gQ29tcG9uZW50cyBkZWxheSB2YWx1ZSB3aWxsIGJlIGFkZGVkIHRvIHRoZSBgbmV4dFRpY2tgIHRvdGFsLlxyXG4gICAgICovXHJcbiAgICBnZXRGaXJzdFRpY2s6IGZ1bmN0aW9uIChjb21wb25lbnQsIGluY2x1ZGVEZWxheSlcclxuICAgIHtcclxuICAgICAgICBpZiAoaW5jbHVkZURlbGF5ID09PSB1bmRlZmluZWQpIHsgaW5jbHVkZURlbGF5ID0gdHJ1ZTsgfVxyXG5cclxuICAgICAgICAvLyAgV2hlbiBpcyB0aGUgZmlyc3QgdXBkYXRlIGR1ZT9cclxuICAgICAgICBjb21wb25lbnQuYWNjdW11bGF0b3IgPSAwO1xyXG4gICAgICAgIGNvbXBvbmVudC5uZXh0VGljayA9IGNvbXBvbmVudC5tc1BlckZyYW1lICsgY29tcG9uZW50LmN1cnJlbnRGcmFtZS5kdXJhdGlvbjtcclxuXHJcbiAgICAgICAgaWYgKGluY2x1ZGVEZWxheSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudC5uZXh0VGljayArPSBjb21wb25lbnQuX2RlbGF5O1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBBbmltYXRpb25GcmFtZSBhdCB0aGUgcHJvdmlkZWQgaW5kZXhcclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNnZXRGcmFtZUF0XHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IGluZGV4IC0gVGhlIGluZGV4IGluIHRoZSBBbmltYXRpb25GcmFtZSBhcnJheVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfSBUaGUgZnJhbWUgYXQgdGhlIGluZGV4IHByb3ZpZGVkIGZyb20gdGhlIGFuaW1hdGlvbiBzZXF1ZW5jZVxyXG4gICAgICovXHJcbiAgICBnZXRGcmFtZUF0OiBmdW5jdGlvbiAoaW5kZXgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJhbWVzW2luZGV4XTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIEFuaW1hdGlvbkZyYW1lIGluc3RhbmNlcyBiYXNlZCBvbiB0aGUgZ2l2ZW4gZnJhbWUgZGF0YS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNnZXRGcmFtZXNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlRleHR1cmVzLlRleHR1cmVNYW5hZ2VyfSB0ZXh0dXJlTWFuYWdlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBnbG9iYWwgVGV4dHVyZSBNYW5hZ2VyLlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfFBoYXNlci5UeXBlcy5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lW10pfSBmcmFtZXMgLSBFaXRoZXIgYSBzdHJpbmcsIGluIHdoaWNoIGNhc2UgaXQgd2lsbCB1c2UgYWxsIGZyYW1lcyBmcm9tIGEgdGV4dHVyZSB3aXRoIHRoZSBtYXRjaGluZyBrZXksIG9yIGFuIGFycmF5IG9mIEFuaW1hdGlvbiBGcmFtZSBjb25maWd1cmF0aW9uIG9iamVjdHMuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2RlZmF1bHRUZXh0dXJlS2V5XSAtIFRoZSBrZXkgdG8gdXNlIGlmIG5vIGtleSBpcyBzZXQgaW4gdGhlIGZyYW1lIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lW119IEFuIGFycmF5IG9mIG5ld2x5IGNyZWF0ZWQgQW5pbWF0aW9uRnJhbWUgaW5zdGFuY2VzLlxyXG4gICAgICovXHJcbiAgICBnZXRGcmFtZXM6IGZ1bmN0aW9uICh0ZXh0dXJlTWFuYWdlciwgZnJhbWVzLCBkZWZhdWx0VGV4dHVyZUtleSlcclxuICAgIHtcclxuICAgICAgICB2YXIgb3V0ID0gW107XHJcbiAgICAgICAgdmFyIHByZXY7XHJcbiAgICAgICAgdmFyIGFuaW1hdGlvbkZyYW1lO1xyXG4gICAgICAgIHZhciBpbmRleCA9IDE7XHJcbiAgICAgICAgdmFyIGk7XHJcbiAgICAgICAgdmFyIHRleHR1cmVLZXk7XHJcblxyXG4gICAgICAgIC8vICBpZiBmcmFtZXMgaXMgYSBzdHJpbmcsIHdlJ2xsIGdldCBhbGwgdGhlIGZyYW1lcyBmcm9tIHRoZSB0ZXh0dXJlIG1hbmFnZXIgYXMgaWYgaXQncyBhIHNwcml0ZSBzaGVldFxyXG4gICAgICAgIGlmICh0eXBlb2YgZnJhbWVzID09PSAnc3RyaW5nJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRleHR1cmVLZXkgPSBmcmFtZXM7XHJcblxyXG4gICAgICAgICAgICB2YXIgdGV4dHVyZSA9IHRleHR1cmVNYW5hZ2VyLmdldCh0ZXh0dXJlS2V5KTtcclxuICAgICAgICAgICAgdmFyIGZyYW1lS2V5cyA9IHRleHR1cmUuZ2V0RnJhbWVOYW1lcygpO1xyXG5cclxuICAgICAgICAgICAgZnJhbWVzID0gW107XHJcblxyXG4gICAgICAgICAgICBmcmFtZUtleXMuZm9yRWFjaChmdW5jdGlvbiAoaWR4LCB2YWx1ZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZnJhbWVzLnB1c2goeyBrZXk6IHRleHR1cmVLZXksIGZyYW1lOiB2YWx1ZSB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZnJhbWVzKSB8fCBmcmFtZXMubGVuZ3RoID09PSAwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIG91dDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBmcmFtZXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgaXRlbSA9IGZyYW1lc1tpXTtcclxuXHJcbiAgICAgICAgICAgIHZhciBrZXkgPSBHZXRWYWx1ZShpdGVtLCAna2V5JywgZGVmYXVsdFRleHR1cmVLZXkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFrZXkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyAgQ291bGQgYmUgYW4gaW50ZWdlciBvciBhIHN0cmluZ1xyXG4gICAgICAgICAgICB2YXIgZnJhbWUgPSBHZXRWYWx1ZShpdGVtLCAnZnJhbWUnLCAwKTtcclxuXHJcbiAgICAgICAgICAgIC8vICBUaGUgYWN0dWFsIHRleHR1cmUgZnJhbWVcclxuICAgICAgICAgICAgdmFyIHRleHR1cmVGcmFtZSA9IHRleHR1cmVNYW5hZ2VyLmdldEZyYW1lKGtleSwgZnJhbWUpO1xyXG5cclxuICAgICAgICAgICAgYW5pbWF0aW9uRnJhbWUgPSBuZXcgRnJhbWUoa2V5LCBmcmFtZSwgaW5kZXgsIHRleHR1cmVGcmFtZSk7XHJcblxyXG4gICAgICAgICAgICBhbmltYXRpb25GcmFtZS5kdXJhdGlvbiA9IEdldFZhbHVlKGl0ZW0sICdkdXJhdGlvbicsIDApO1xyXG5cclxuICAgICAgICAgICAgYW5pbWF0aW9uRnJhbWUuaXNGaXJzdCA9ICghcHJldik7XHJcblxyXG4gICAgICAgICAgICAvLyAgVGhlIHByZXZpb3VzbHkgY3JlYXRlZCBhbmltYXRpb25GcmFtZVxyXG4gICAgICAgICAgICBpZiAocHJldilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcHJldi5uZXh0RnJhbWUgPSBhbmltYXRpb25GcmFtZTtcclxuXHJcbiAgICAgICAgICAgICAgICBhbmltYXRpb25GcmFtZS5wcmV2RnJhbWUgPSBwcmV2O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBvdXQucHVzaChhbmltYXRpb25GcmFtZSk7XHJcblxyXG4gICAgICAgICAgICBwcmV2ID0gYW5pbWF0aW9uRnJhbWU7XHJcblxyXG4gICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG91dC5sZW5ndGggPiAwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYW5pbWF0aW9uRnJhbWUuaXNMYXN0ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIC8vICBMaW5rIHRoZW0gZW5kLXRvLWVuZCwgc28gdGhleSBsb29wXHJcbiAgICAgICAgICAgIGFuaW1hdGlvbkZyYW1lLm5leHRGcmFtZSA9IG91dFswXTtcclxuXHJcbiAgICAgICAgICAgIG91dFswXS5wcmV2RnJhbWUgPSBhbmltYXRpb25GcmFtZTtcclxuXHJcbiAgICAgICAgICAgIC8vICBHZW5lcmF0ZSB0aGUgcHJvZ3Jlc3MgZGF0YVxyXG5cclxuICAgICAgICAgICAgdmFyIHNsaWNlID0gMSAvIChvdXQubGVuZ3RoIC0gMSk7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb3V0Lmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBvdXRbaV0ucHJvZ3Jlc3MgPSBpICogc2xpY2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvdXQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGVkIGludGVybmFsbHkuIFNldHMgdGhlIGFjY3VtdWxhdG9yIGFuZCBuZXh0VGljayB2YWx1ZXMgb2YgdGhlIGN1cnJlbnQgQW5pbWF0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uI2dldE5leHRUaWNrXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbn0gY29tcG9uZW50IC0gVGhlIEFuaW1hdGlvbiBDb21wb25lbnQgYmVsb25naW5nIHRvIHRoZSBHYW1lIE9iamVjdCBpbnZva2luZyB0aGlzIGNhbGwuXHJcbiAgICAgKi9cclxuICAgIGdldE5leHRUaWNrOiBmdW5jdGlvbiAoY29tcG9uZW50KVxyXG4gICAge1xyXG4gICAgICAgIC8vIGFjY3VtdWxhdG9yICs9IGRlbHRhICogX3RpbWVTY2FsZVxyXG4gICAgICAgIC8vIGFmdGVyIGEgbGFyZ2UgZGVsdGEgc3VyZ2UgKHBlcmYgaXNzdWUgZm9yIGV4YW1wbGUpIHdlIG5lZWQgdG8gYWRqdXN0IGZvciBpdCBoZXJlXHJcblxyXG4gICAgICAgIC8vICBXaGVuIGlzIHRoZSBuZXh0IHVwZGF0ZSBkdWU/XHJcbiAgICAgICAgY29tcG9uZW50LmFjY3VtdWxhdG9yIC09IGNvbXBvbmVudC5uZXh0VGljaztcclxuXHJcbiAgICAgICAgY29tcG9uZW50Lm5leHRUaWNrID0gY29tcG9uZW50Lm1zUGVyRnJhbWUgKyBjb21wb25lbnQuY3VycmVudEZyYW1lLmR1cmF0aW9uO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIExvYWRzIHRoZSBBbmltYXRpb24gdmFsdWVzIGludG8gdGhlIEFuaW1hdGlvbiBDb21wb25lbnQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb24jbG9hZFxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9ufSBjb21wb25lbnQgLSBUaGUgQW5pbWF0aW9uIENvbXBvbmVudCB0byBsb2FkIHZhbHVlcyBpbnRvLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBzdGFydEZyYW1lIC0gVGhlIHN0YXJ0IGZyYW1lIG9mIHRoZSBhbmltYXRpb24gdG8gbG9hZC5cclxuICAgICAqL1xyXG4gICAgbG9hZDogZnVuY3Rpb24gKGNvbXBvbmVudCwgc3RhcnRGcmFtZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoc3RhcnRGcmFtZSA+PSB0aGlzLmZyYW1lcy5sZW5ndGgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzdGFydEZyYW1lID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb21wb25lbnQuY3VycmVudEFuaW0gIT09IHRoaXMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb21wb25lbnQuY3VycmVudEFuaW0gPSB0aGlzO1xyXG5cclxuICAgICAgICAgICAgY29tcG9uZW50LmZyYW1lUmF0ZSA9IHRoaXMuZnJhbWVSYXRlO1xyXG4gICAgICAgICAgICBjb21wb25lbnQuZHVyYXRpb24gPSB0aGlzLmR1cmF0aW9uO1xyXG4gICAgICAgICAgICBjb21wb25lbnQubXNQZXJGcmFtZSA9IHRoaXMubXNQZXJGcmFtZTtcclxuICAgICAgICAgICAgY29tcG9uZW50LnNraXBNaXNzZWRGcmFtZXMgPSB0aGlzLnNraXBNaXNzZWRGcmFtZXM7XHJcblxyXG4gICAgICAgICAgICBjb21wb25lbnQuX2RlbGF5ID0gdGhpcy5kZWxheTtcclxuICAgICAgICAgICAgY29tcG9uZW50Ll9yZXBlYXQgPSB0aGlzLnJlcGVhdDtcclxuICAgICAgICAgICAgY29tcG9uZW50Ll9yZXBlYXREZWxheSA9IHRoaXMucmVwZWF0RGVsYXk7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudC5feW95byA9IHRoaXMueW95bztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBmcmFtZSA9IHRoaXMuZnJhbWVzW3N0YXJ0RnJhbWVdO1xyXG5cclxuICAgICAgICBpZiAoc3RhcnRGcmFtZSA9PT0gMCAmJiAhY29tcG9uZW50LmZvcndhcmQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBmcmFtZSA9IHRoaXMuZ2V0TGFzdEZyYW1lKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb21wb25lbnQudXBkYXRlRnJhbWUoZnJhbWUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGZyYW1lIGNsb3Nlc3QgdG8gdGhlIGdpdmVuIHByb2dyZXNzIHZhbHVlIGJldHdlZW4gMCBhbmQgMS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNnZXRGcmFtZUJ5UHJvZ3Jlc3NcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIEEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfSBUaGUgZnJhbWUgY2xvc2VzdCB0byB0aGUgZ2l2ZW4gcHJvZ3Jlc3MgdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIGdldEZyYW1lQnlQcm9ncmVzczogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHZhbHVlID0gQ2xhbXAodmFsdWUsIDAsIDEpO1xyXG5cclxuICAgICAgICByZXR1cm4gRmluZENsb3Nlc3RJblNvcnRlZCh2YWx1ZSwgdGhpcy5mcmFtZXMsICdwcm9ncmVzcycpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkdmFuY2UgdGhlIGFuaW1hdGlvbiBmcmFtZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNuZXh0RnJhbWVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9ufSBjb21wb25lbnQgLSBUaGUgQW5pbWF0aW9uIENvbXBvbmVudCB0byBhZHZhbmNlLlxyXG4gICAgICovXHJcbiAgICBuZXh0RnJhbWU6IGZ1bmN0aW9uIChjb21wb25lbnQpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGZyYW1lID0gY29tcG9uZW50LmN1cnJlbnRGcmFtZTtcclxuXHJcbiAgICAgICAgLy8gIFRPRE86IEFkZCBmcmFtZSBza2lwIHN1cHBvcnRcclxuXHJcbiAgICAgICAgaWYgKGZyYW1lLmlzTGFzdClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBXZSdyZSBhdCB0aGUgZW5kIG9mIHRoZSBhbmltYXRpb25cclxuXHJcbiAgICAgICAgICAgIC8vICBZb3lvPyAoaGFwcGVucyBiZWZvcmUgcmVwZWF0KVxyXG4gICAgICAgICAgICBpZiAoY29tcG9uZW50Ll95b3lvKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVlveW9GcmFtZShjb21wb25lbnQsIGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChjb21wb25lbnQucmVwZWF0Q291bnRlciA+IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIC8vICBSZXBlYXQgKGhhcHBlbnMgYmVmb3JlIGNvbXBsZXRlKVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnQuX3JldmVyc2UgJiYgY29tcG9uZW50LmZvcndhcmQpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50LmZvcndhcmQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcGVhdEFuaW1hdGlvbihjb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZUFuaW1hdGlvbihjb21wb25lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQW5kR2V0TmV4dFRpY2soY29tcG9uZW50LCBmcmFtZS5uZXh0RnJhbWUpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGUgdGhlIHlveW8gZnVuY3Rpb25hbGl0eSBpbiBuZXh0RnJhbWUgYW5kIHByZXZpb3VzRnJhbWUgbWV0aG9kcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNoYW5kbGVZb3lvRnJhbWVcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb259IGNvbXBvbmVudCAtIFRoZSBBbmltYXRpb24gQ29tcG9uZW50IHRvIGFkdmFuY2UuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzUmV2ZXJzZSAtIElzIGFuaW1hdGlvbiBpbiByZXZlcnNlIG1vZGU/IChEZWZhdWx0OiBmYWxzZSlcclxuICAgICAqL1xyXG4gICAgaGFuZGxlWW95b0ZyYW1lOiBmdW5jdGlvbiAoY29tcG9uZW50LCBpc1JldmVyc2UpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCFpc1JldmVyc2UpIHsgaXNSZXZlcnNlID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgaWYgKGNvbXBvbmVudC5fcmV2ZXJzZSA9PT0gIWlzUmV2ZXJzZSAmJiBjb21wb25lbnQucmVwZWF0Q291bnRlciA+IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoIWNvbXBvbmVudC5fcmVwZWF0RGVsYXkgfHwgY29tcG9uZW50LnBlbmRpbmdSZXBlYXQpXHJcblxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQuZm9yd2FyZCA9IGlzUmV2ZXJzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5yZXBlYXRBbmltYXRpb24oY29tcG9uZW50KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb21wb25lbnQuX3JldmVyc2UgIT09IGlzUmV2ZXJzZSAmJiBjb21wb25lbnQucmVwZWF0Q291bnRlciA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxldGVBbmltYXRpb24oY29tcG9uZW50KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29tcG9uZW50LmZvcndhcmQgPSBpc1JldmVyc2U7XHJcblxyXG4gICAgICAgIHZhciBmcmFtZSA9IChpc1JldmVyc2UpID8gY29tcG9uZW50LmN1cnJlbnRGcmFtZS5uZXh0RnJhbWUgOiBjb21wb25lbnQuY3VycmVudEZyYW1lLnByZXZGcmFtZTtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVBbmRHZXROZXh0VGljayhjb21wb25lbnQsIGZyYW1lKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBhbmltYXRpb24gbGFzdCBmcmFtZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNnZXRMYXN0RnJhbWVcclxuICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZX0gY29tcG9uZW50IC0gVGhlIEFuaW1hdGlvbiBMYXN0IEZyYW1lLlxyXG4gICAgICovXHJcbiAgICBnZXRMYXN0RnJhbWU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJhbWVzW3RoaXMuZnJhbWVzLmxlbmd0aCAtIDFdO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCBpbnRlcm5hbGx5IHdoZW4gdGhlIEFuaW1hdGlvbiBpcyBwbGF5aW5nIGJhY2t3YXJkcy5cclxuICAgICAqIFNldHMgdGhlIHByZXZpb3VzIGZyYW1lLCBjYXVzaW5nIGEgeW95bywgcmVwZWF0LCBjb21wbGV0ZSBvciB1cGRhdGUsIGFjY29yZGluZ2x5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uI3ByZXZpb3VzRnJhbWVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9ufSBjb21wb25lbnQgLSBUaGUgQW5pbWF0aW9uIENvbXBvbmVudCBiZWxvbmdpbmcgdG8gdGhlIEdhbWUgT2JqZWN0IGludm9raW5nIHRoaXMgY2FsbC5cclxuICAgICAqL1xyXG4gICAgcHJldmlvdXNGcmFtZTogZnVuY3Rpb24gKGNvbXBvbmVudClcclxuICAgIHtcclxuICAgICAgICB2YXIgZnJhbWUgPSBjb21wb25lbnQuY3VycmVudEZyYW1lO1xyXG5cclxuICAgICAgICAvLyAgVE9ETzogQWRkIGZyYW1lIHNraXAgc3VwcG9ydFxyXG5cclxuICAgICAgICBpZiAoZnJhbWUuaXNGaXJzdClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBXZSdyZSBhdCB0aGUgc3RhcnQgb2YgdGhlIGFuaW1hdGlvblxyXG5cclxuICAgICAgICAgICAgaWYgKGNvbXBvbmVudC5feW95bylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVZb3lvRnJhbWUoY29tcG9uZW50LCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChjb21wb25lbnQucmVwZWF0Q291bnRlciA+IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnQuX3JldmVyc2UgJiYgIWNvbXBvbmVudC5mb3J3YXJkKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudC5jdXJyZW50RnJhbWUgPSB0aGlzLmdldExhc3RGcmFtZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVwZWF0QW5pbWF0aW9uKGNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gIFJlcGVhdCAoaGFwcGVucyBiZWZvcmUgY29tcGxldGUpXHJcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50LmZvcndhcmQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVwZWF0QW5pbWF0aW9uKGNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlQW5pbWF0aW9uKGNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVBbmRHZXROZXh0VGljayhjb21wb25lbnQsIGZyYW1lLnByZXZGcmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZSBGcmFtZSBhbmQgV2FpdCBuZXh0IHRpY2suXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb24jdXBkYXRlQW5kR2V0TmV4dFRpY2tcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZX0gZnJhbWUgLSBBbiBBbmltYXRpb24gZnJhbWUuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZUFuZEdldE5leHRUaWNrOiBmdW5jdGlvbiAoY29tcG9uZW50LCBmcmFtZSlcclxuICAgIHtcclxuICAgICAgICBjb21wb25lbnQudXBkYXRlRnJhbWUoZnJhbWUpO1xyXG5cclxuICAgICAgICB0aGlzLmdldE5leHRUaWNrKGNvbXBvbmVudCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyB0aGUgZ2l2ZW4gQW5pbWF0aW9uRnJhbWUgZnJvbSB0aGlzIEFuaW1hdGlvbiBpbnN0YW5jZS5cclxuICAgICAqIFRoaXMgaXMgYSBnbG9iYWwgYWN0aW9uLiBBbnkgR2FtZSBPYmplY3QgdXNpbmcgdGhpcyBBbmltYXRpb24gd2lsbCBiZSBpbXBhY3RlZCBieSB0aGlzIGNoYW5nZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNyZW1vdmVGcmFtZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZX0gZnJhbWUgLSBUaGUgQW5pbWF0aW9uRnJhbWUgdG8gYmUgcmVtb3ZlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEFuaW1hdGlvbiBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZUZyYW1lOiBmdW5jdGlvbiAoZnJhbWUpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5mcmFtZXMuaW5kZXhPZihmcmFtZSk7XHJcblxyXG4gICAgICAgIGlmIChpbmRleCAhPT0gLTEpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUZyYW1lQXQoaW5kZXgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhIGZyYW1lIGZyb20gdGhlIEFuaW1hdGlvbkZyYW1lIGFycmF5IGF0IHRoZSBwcm92aWRlZCBpbmRleFxyXG4gICAgICogYW5kIHVwZGF0ZXMgdGhlIGFuaW1hdGlvbiBhY2NvcmRpbmdseS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNyZW1vdmVGcmFtZUF0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IGluZGV4IC0gVGhlIGluZGV4IGluIHRoZSBBbmltYXRpb25GcmFtZSBhcnJheVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQW5pbWF0aW9uIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcmVtb3ZlRnJhbWVBdDogZnVuY3Rpb24gKGluZGV4KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZnJhbWVzLnNwbGljZShpbmRleCwgMSk7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlRnJhbWVTZXF1ZW5jZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgaW50ZXJuYWxseSBkdXJpbmcgcGxheWJhY2suIEZvcmNlcyB0aGUgYW5pbWF0aW9uIHRvIHJlcGVhdCwgcHJvdmlkaW5nIHRoZXJlIGFyZSBlbm91Z2ggY291bnRzIGxlZnRcclxuICAgICAqIGluIHRoZSByZXBlYXQgY291bnRlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNyZXBlYXRBbmltYXRpb25cclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjQU5JTUFUSU9OX1JFUEVBVFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNTUFJJVEVfQU5JTUFUSU9OX1JFUEVBVFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNTUFJJVEVfQU5JTUFUSU9OX0tFWV9SRVBFQVRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9ufSBjb21wb25lbnQgLSBUaGUgQW5pbWF0aW9uIENvbXBvbmVudCBiZWxvbmdpbmcgdG8gdGhlIEdhbWUgT2JqZWN0IGludm9raW5nIHRoaXMgY2FsbC5cclxuICAgICAqL1xyXG4gICAgcmVwZWF0QW5pbWF0aW9uOiBmdW5jdGlvbiAoY29tcG9uZW50KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChjb21wb25lbnQuX3BlbmRpbmdTdG9wID09PSAyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tcGxldGVBbmltYXRpb24oY29tcG9uZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb21wb25lbnQuX3JlcGVhdERlbGF5ID4gMCAmJiBjb21wb25lbnQucGVuZGluZ1JlcGVhdCA9PT0gZmFsc2UpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb21wb25lbnQucGVuZGluZ1JlcGVhdCA9IHRydWU7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudC5hY2N1bXVsYXRvciAtPSBjb21wb25lbnQubmV4dFRpY2s7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudC5uZXh0VGljayArPSBjb21wb25lbnQuX3JlcGVhdERlbGF5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb21wb25lbnQucmVwZWF0Q291bnRlci0tO1xyXG5cclxuICAgICAgICAgICAgY29tcG9uZW50LnVwZGF0ZUZyYW1lKGNvbXBvbmVudC5jdXJyZW50RnJhbWVbKGNvbXBvbmVudC5mb3J3YXJkKSA/ICduZXh0RnJhbWUnIDogJ3ByZXZGcmFtZSddKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChjb21wb25lbnQuaXNQbGF5aW5nKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldE5leHRUaWNrKGNvbXBvbmVudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50LnBlbmRpbmdSZXBlYXQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXIgZnJhbWUgPSBjb21wb25lbnQuY3VycmVudEZyYW1lO1xyXG4gICAgICAgICAgICAgICAgdmFyIHBhcmVudCA9IGNvbXBvbmVudC5wYXJlbnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0KEV2ZW50cy5BTklNQVRJT05fUkVQRUFULCB0aGlzLCBmcmFtZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgcGFyZW50LmVtaXQoRXZlbnRzLlNQUklURV9BTklNQVRJT05fS0VZX1JFUEVBVCArIHRoaXMua2V5LCB0aGlzLCBmcmFtZSwgY29tcG9uZW50LnJlcGVhdENvdW50ZXIsIHBhcmVudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgcGFyZW50LmVtaXQoRXZlbnRzLlNQUklURV9BTklNQVRJT05fUkVQRUFULCB0aGlzLCBmcmFtZSwgY29tcG9uZW50LnJlcGVhdENvdW50ZXIsIHBhcmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdGV4dHVyZSBmcmFtZSB0aGUgYW5pbWF0aW9uIHVzZXMgZm9yIHJlbmRlcmluZy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiNzZXRGcmFtZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb259IGNvbXBvbmVudCAtIFRoZSBBbmltYXRpb24gQ29tcG9uZW50IGJlbG9uZ2luZyB0byB0aGUgR2FtZSBPYmplY3QgaW52b2tpbmcgdGhpcyBjYWxsLlxyXG4gICAgICovXHJcbiAgICBzZXRGcmFtZTogZnVuY3Rpb24gKGNvbXBvbmVudClcclxuICAgIHtcclxuICAgICAgICAvLyAgV29yayBvdXQgd2hpY2ggZnJhbWUgc2hvdWxkIGJlIHNldCBuZXh0IG9uIHRoZSBjaGlsZCwgYW5kIHNldCBpdFxyXG4gICAgICAgIGlmIChjb21wb25lbnQuZm9yd2FyZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubmV4dEZyYW1lKGNvbXBvbmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNGcmFtZShjb21wb25lbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb252ZXJ0cyB0aGUgYW5pbWF0aW9uIGRhdGEgdG8gSlNPTi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbiN0b0pTT05cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5UeXBlcy5BbmltYXRpb25zLkpTT05BbmltYXRpb259IFRoZSByZXN1bHRpbmcgSlNPTkFuaW1hdGlvbiBmb3JtYXR0ZWQgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICB0b0pTT046IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIG91dHB1dCA9IHtcclxuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcclxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxyXG4gICAgICAgICAgICBmcmFtZXM6IFtdLFxyXG4gICAgICAgICAgICBmcmFtZVJhdGU6IHRoaXMuZnJhbWVSYXRlLFxyXG4gICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5kdXJhdGlvbixcclxuICAgICAgICAgICAgc2tpcE1pc3NlZEZyYW1lczogdGhpcy5za2lwTWlzc2VkRnJhbWVzLFxyXG4gICAgICAgICAgICBkZWxheTogdGhpcy5kZWxheSxcclxuICAgICAgICAgICAgcmVwZWF0OiB0aGlzLnJlcGVhdCxcclxuICAgICAgICAgICAgcmVwZWF0RGVsYXk6IHRoaXMucmVwZWF0RGVsYXksXHJcbiAgICAgICAgICAgIHlveW86IHRoaXMueW95byxcclxuICAgICAgICAgICAgc2hvd09uU3RhcnQ6IHRoaXMuc2hvd09uU3RhcnQsXHJcbiAgICAgICAgICAgIGhpZGVPbkNvbXBsZXRlOiB0aGlzLmhpZGVPbkNvbXBsZXRlXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5mcmFtZXMuZm9yRWFjaChmdW5jdGlvbiAoZnJhbWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBvdXRwdXQuZnJhbWVzLnB1c2goZnJhbWUudG9KU09OKCkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gb3V0cHV0O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCBpbnRlcm5hbGx5IHdoZW5ldmVyIGZyYW1lcyBhcmUgYWRkZWQgdG8sIG9yIHJlbW92ZWQgZnJvbSwgdGhpcyBBbmltYXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb24jdXBkYXRlRnJhbWVTZXF1ZW5jZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBBbmltYXRpb24gb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICB1cGRhdGVGcmFtZVNlcXVlbmNlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBsZW4gPSB0aGlzLmZyYW1lcy5sZW5ndGg7XHJcbiAgICAgICAgdmFyIHNsaWNlID0gMSAvIChsZW4gLSAxKTtcclxuXHJcbiAgICAgICAgdmFyIGZyYW1lO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZnJhbWUgPSB0aGlzLmZyYW1lc1tpXTtcclxuXHJcbiAgICAgICAgICAgIGZyYW1lLmluZGV4ID0gaSArIDE7XHJcbiAgICAgICAgICAgIGZyYW1lLmlzRmlyc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgZnJhbWUuaXNMYXN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGZyYW1lLnByb2dyZXNzID0gaSAqIHNsaWNlO1xyXG5cclxuICAgICAgICAgICAgaWYgKGkgPT09IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGZyYW1lLmlzRmlyc3QgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChsZW4gPT09IDEpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJhbWUuaXNMYXN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBmcmFtZS5uZXh0RnJhbWUgPSBmcmFtZTtcclxuICAgICAgICAgICAgICAgICAgICBmcmFtZS5wcmV2RnJhbWUgPSBmcmFtZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBmcmFtZS5pc0xhc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBmcmFtZS5wcmV2RnJhbWUgPSB0aGlzLmZyYW1lc1tsZW4gLSAxXTtcclxuICAgICAgICAgICAgICAgICAgICBmcmFtZS5uZXh0RnJhbWUgPSB0aGlzLmZyYW1lc1tpICsgMV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoaSA9PT0gbGVuIC0gMSAmJiBsZW4gPiAxKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBmcmFtZS5pc0xhc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZnJhbWUucHJldkZyYW1lID0gdGhpcy5mcmFtZXNbbGVuIC0gMl07XHJcbiAgICAgICAgICAgICAgICBmcmFtZS5uZXh0RnJhbWUgPSB0aGlzLmZyYW1lc1swXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChsZW4gPiAxKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBmcmFtZS5wcmV2RnJhbWUgPSB0aGlzLmZyYW1lc1tpIC0gMV07XHJcbiAgICAgICAgICAgICAgICBmcmFtZS5uZXh0RnJhbWUgPSB0aGlzLmZyYW1lc1tpICsgMV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdXNlcyBwbGF5YmFjayBvZiB0aGlzIEFuaW1hdGlvbi4gVGhlIHBhdXNlZCBzdGF0ZSBpcyBzZXQgaW1tZWRpYXRlbHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb24jcGF1c2VcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQW5pbWF0aW9uIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcGF1c2U6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXN1bWVzIHBsYXliYWNrIG9mIHRoaXMgQW5pbWF0aW9uLiBUaGUgcGF1c2VkIHN0YXRlIGlzIHJlc2V0IGltbWVkaWF0ZWx5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uI3Jlc3VtZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBBbmltYXRpb24gb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICByZXN1bWU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5wYXVzZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVzdHJveXMgdGhpcyBBbmltYXRpb24gaW5zdGFuY2UuIEl0IHdpbGwgcmVtb3ZlIGFsbCBldmVudCBsaXN0ZW5lcnMsXHJcbiAgICAgKiByZW1vdmUgdGhpcyBhbmltYXRpb24gYW5kIGl0cyBrZXkgZnJvbSB0aGUgZ2xvYmFsIEFuaW1hdGlvbiBNYW5hZ2VyLFxyXG4gICAgICogYW5kIHRoZW4gZGVzdHJveSBhbGwgQW5pbWF0aW9uIEZyYW1lcyBpbiB0dXJuLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uI2Rlc3Ryb3lcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XHJcblxyXG4gICAgICAgIHRoaXMubWFuYWdlci5vZmYoRXZlbnRzLlBBVVNFX0FMTCwgdGhpcy5wYXVzZSwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5tYW5hZ2VyLm9mZihFdmVudHMuUkVTVU1FX0FMTCwgdGhpcy5yZXN1bWUsIHRoaXMpO1xyXG5cclxuICAgICAgICB0aGlzLm1hbmFnZXIucmVtb3ZlKHRoaXMua2V5KTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmZyYW1lcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZnJhbWVzW2ldLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZnJhbWVzID0gW107XHJcblxyXG4gICAgICAgIHRoaXMubWFuYWdlciA9IG51bGw7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQW5pbWF0aW9uO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uL3V0aWxzL0NsYXNzJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIHNpbmdsZSBmcmFtZSBpbiBhbiBBbmltYXRpb24gc2VxdWVuY2UuXHJcbiAqXHJcbiAqIEFuIEFuaW1hdGlvbkZyYW1lIGNvbnNpc3RzIG9mIGEgcmVmZXJlbmNlIHRvIHRoZSBUZXh0dXJlIGl0IHVzZXMgZm9yIHJlbmRlcmluZywgcmVmZXJlbmNlcyB0byBvdGhlclxyXG4gKiBmcmFtZXMgaW4gdGhlIGFuaW1hdGlvbiwgYW5kIGluZGV4IGRhdGEuIEl0IGFsc28gaGFzIHRoZSBhYmlsaXR5IHRvIG1vZGlmeSB0aGUgYW5pbWF0aW9uIHRpbWluZy5cclxuICpcclxuICogQW5pbWF0aW9uRnJhbWVzIGFyZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSB0aGUgQW5pbWF0aW9uIGNsYXNzLlxyXG4gKlxyXG4gKiBAY2xhc3MgQW5pbWF0aW9uRnJhbWVcclxuICogQG1lbWJlcm9mIFBoYXNlci5BbmltYXRpb25zXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IHRleHR1cmVLZXkgLSBUaGUga2V5IG9mIHRoZSBUZXh0dXJlIHRoaXMgQW5pbWF0aW9uRnJhbWUgdXNlcy5cclxuICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSB0ZXh0dXJlRnJhbWUgLSBUaGUga2V5IG9mIHRoZSBGcmFtZSB3aXRoaW4gdGhlIFRleHR1cmUgdGhhdCB0aGlzIEFuaW1hdGlvbkZyYW1lIHVzZXMuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gaW5kZXggLSBUaGUgaW5kZXggb2YgdGhpcyBBbmltYXRpb25GcmFtZSB3aXRoaW4gdGhlIEFuaW1hdGlvbiBzZXF1ZW5jZS5cclxuICogQHBhcmFtIHtQaGFzZXIuVGV4dHVyZXMuRnJhbWV9IGZyYW1lIC0gQSByZWZlcmVuY2UgdG8gdGhlIFRleHR1cmUgRnJhbWUgdGhpcyBBbmltYXRpb25GcmFtZSB1c2VzIGZvciByZW5kZXJpbmcuXHJcbiAqL1xyXG52YXIgQW5pbWF0aW9uRnJhbWUgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gQW5pbWF0aW9uRnJhbWUgKHRleHR1cmVLZXksIHRleHR1cmVGcmFtZSwgaW5kZXgsIGZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBrZXkgb2YgdGhlIFRleHR1cmUgdGhpcyBBbmltYXRpb25GcmFtZSB1c2VzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWUjdGV4dHVyZUtleVxyXG4gICAgICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy50ZXh0dXJlS2V5ID0gdGV4dHVyZUtleTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGtleSBvZiB0aGUgRnJhbWUgd2l0aGluIHRoZSBUZXh0dXJlIHRoYXQgdGhpcyBBbmltYXRpb25GcmFtZSB1c2VzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWUjdGV4dHVyZUZyYW1lXHJcbiAgICAgICAgICogQHR5cGUgeyhzdHJpbmd8aW50ZWdlcil9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy50ZXh0dXJlRnJhbWUgPSB0ZXh0dXJlRnJhbWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBpbmRleCBvZiB0aGlzIEFuaW1hdGlvbkZyYW1lIHdpdGhpbiB0aGUgQW5pbWF0aW9uIHNlcXVlbmNlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWUjaW5kZXhcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmluZGV4ID0gaW5kZXg7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBUZXh0dXJlIEZyYW1lIHRoaXMgQW5pbWF0aW9uRnJhbWUgdXNlcyBmb3IgcmVuZGVyaW5nLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWUjZnJhbWVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlRleHR1cmVzLkZyYW1lfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZnJhbWUgPSBmcmFtZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSXMgdGhpcyB0aGUgZmlyc3QgZnJhbWUgaW4gYW4gYW5pbWF0aW9uIHNlcXVlbmNlP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWUjaXNGaXJzdFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pc0ZpcnN0ID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElzIHRoaXMgdGhlIGxhc3QgZnJhbWUgaW4gYW4gYW5pbWF0aW9uIHNlcXVlbmNlP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWUjaXNMYXN0XHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlzTGFzdCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgQW5pbWF0aW9uRnJhbWUgdGhhdCBjb21lcyBiZWZvcmUgdGhpcyBvbmUgaW4gdGhlIGFuaW1hdGlvbiwgaWYgYW55LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWUjcHJldkZyYW1lXHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZX1cclxuICAgICAgICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wcmV2RnJhbWUgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgQW5pbWF0aW9uRnJhbWUgdGhhdCBjb21lcyBhZnRlciB0aGlzIG9uZSBpbiB0aGUgYW5pbWF0aW9uLCBpZiBhbnkuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZSNuZXh0RnJhbWVcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm5leHRGcmFtZSA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFkZGl0aW9uYWwgdGltZSAoaW4gbXMpIHRoYXQgdGhpcyBmcmFtZSBzaG91bGQgYXBwZWFyIGZvciBkdXJpbmcgcGxheWJhY2suXHJcbiAgICAgICAgICogVGhlIHZhbHVlIGlzIGFkZGVkIG9udG8gdGhlIG1zUGVyRnJhbWUgc2V0IGJ5IHRoZSBhbmltYXRpb24uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZSNkdXJhdGlvblxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXaGF0ICUgdGhyb3VnaCB0aGUgYW5pbWF0aW9uIGRvZXMgdGhpcyBmcmFtZSBjb21lP1xyXG4gICAgICAgICAqIFRoaXMgdmFsdWUgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGFuaW1hdGlvbiBpcyBjcmVhdGVkIGFuZCBjYWNoZWQgaGVyZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lI3Byb2dyZXNzXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2VuZXJhdGVzIGEgSmF2YVNjcmlwdCBvYmplY3Qgc3VpdGFibGUgZm9yIGNvbnZlcnRpbmcgdG8gSlNPTi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lI3RvSlNPTlxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLlR5cGVzLkFuaW1hdGlvbnMuSlNPTkFuaW1hdGlvbkZyYW1lfSBUaGUgQW5pbWF0aW9uRnJhbWUgZGF0YS5cclxuICAgICAqL1xyXG4gICAgdG9KU09OOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGtleTogdGhpcy50ZXh0dXJlS2V5LFxyXG4gICAgICAgICAgICBmcmFtZTogdGhpcy50ZXh0dXJlRnJhbWUsXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uXHJcbiAgICAgICAgfTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXN0cm95cyB0aGlzIG9iamVjdCBieSByZW1vdmluZyByZWZlcmVuY2VzIHRvIGV4dGVybmFsIHJlc291cmNlcyBhbmQgY2FsbGJhY2tzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWUjZGVzdHJveVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5mcmFtZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBBbmltYXRpb25GcmFtZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQW5pbWF0aW9uID0gcmVxdWlyZSgnLi9BbmltYXRpb24nKTtcclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEN1c3RvbU1hcCA9IHJlcXVpcmUoJy4uL3N0cnVjdHMvTWFwJyk7XHJcbnZhciBFdmVudEVtaXR0ZXIgPSByZXF1aXJlKCdldmVudGVtaXR0ZXIzJyk7XHJcbnZhciBFdmVudHMgPSByZXF1aXJlKCcuL2V2ZW50cycpO1xyXG52YXIgR2FtZUV2ZW50cyA9IHJlcXVpcmUoJy4uL2NvcmUvZXZlbnRzJyk7XHJcbnZhciBHZXRWYWx1ZSA9IHJlcXVpcmUoJy4uL3V0aWxzL29iamVjdC9HZXRWYWx1ZScpO1xyXG52YXIgUGFkID0gcmVxdWlyZSgnLi4vdXRpbHMvc3RyaW5nL1BhZCcpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogVGhlIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gKlxyXG4gKiBBbmltYXRpb25zIGFyZSBtYW5hZ2VkIGJ5IHRoZSBnbG9iYWwgQW5pbWF0aW9uIE1hbmFnZXIuIFRoaXMgaXMgYSBzaW5nbGV0b24gY2xhc3MgdGhhdCBpc1xyXG4gKiByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgYW5kIGRlbGl2ZXJpbmcgYW5pbWF0aW9ucyBhbmQgdGhlaXIgY29ycmVzcG9uZGluZyBkYXRhIHRvIGFsbCBHYW1lIE9iamVjdHMuXHJcbiAqIFVubGlrZSBwbHVnaW5zIGl0IGlzIG93bmVkIGJ5IHRoZSBHYW1lIGluc3RhbmNlLCBub3QgdGhlIFNjZW5lLlxyXG4gKlxyXG4gKiBTcHJpdGVzIGFuZCBvdGhlciBHYW1lIE9iamVjdHMgZ2V0IHRoZSBkYXRhIHRoZXkgbmVlZCBmcm9tIHRoZSBBbmltYXRpb25NYW5hZ2VyLlxyXG4gKlxyXG4gKiBAY2xhc3MgQW5pbWF0aW9uTWFuYWdlclxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuRXZlbnRzLkV2ZW50RW1pdHRlclxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkFuaW1hdGlvbnNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lfSBnYW1lIC0gQSByZWZlcmVuY2UgdG8gdGhlIFBoYXNlci5HYW1lIGluc3RhbmNlLlxyXG4gKi9cclxudmFyIEFuaW1hdGlvbk1hbmFnZXIgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IEV2ZW50RW1pdHRlcixcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIEFuaW1hdGlvbk1hbmFnZXIgKGdhbWUpXHJcbiAgICB7XHJcbiAgICAgICAgRXZlbnRFbWl0dGVyLmNhbGwodGhpcyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBQaGFzZXIuR2FtZSBpbnN0YW5jZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbk1hbmFnZXIjZ2FtZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZX1cclxuICAgICAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5nYW1lID0gZ2FtZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbk1hbmFnZXIjdGV4dHVyZU1hbmFnZXJcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlRleHR1cmVzLlRleHR1cmVNYW5hZ2VyfVxyXG4gICAgICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnRleHR1cmVNYW5hZ2VyID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGdsb2JhbCB0aW1lIHNjYWxlIG9mIHRoZSBBbmltYXRpb24gTWFuYWdlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoaXMgc2NhbGVzIHRoZSB0aW1lIGRlbHRhIGJldHdlZW4gdHdvIGZyYW1lcywgdGh1cyBpbmZsdWVuY2luZyB0aGUgc3BlZWQgb2YgdGltZSBmb3IgdGhlIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uTWFuYWdlciNnbG9iYWxUaW1lU2NhbGVcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmdsb2JhbFRpbWVTY2FsZSA9IDE7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBBbmltYXRpb25zIHJlZ2lzdGVyZWQgaW4gdGhlIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogVGhpcyBtYXAgc2hvdWxkIGJlIG1vZGlmaWVkIHdpdGggdGhlIHtAbGluayAjYWRkfSBhbmQge0BsaW5rICNjcmVhdGV9IG1ldGhvZHMgb2YgdGhlIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uTWFuYWdlciNhbmltc1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU3RydWN0cy5NYXAuPHN0cmluZywgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uPn1cclxuICAgICAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5hbmltcyA9IG5ldyBDdXN0b21NYXAoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogV2hldGhlciB0aGUgQW5pbWF0aW9uIE1hbmFnZXIgaXMgcGF1c2VkIGFsb25nIHdpdGggYWxsIG9mIGl0cyBBbmltYXRpb25zLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uTWFuYWdlciNwYXVzZWRcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucGF1c2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBuYW1lIG9mIHRoaXMgQW5pbWF0aW9uIE1hbmFnZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25NYW5hZ2VyI25hbWVcclxuICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubmFtZSA9ICdBbmltYXRpb25NYW5hZ2VyJztcclxuXHJcbiAgICAgICAgZ2FtZS5ldmVudHMub25jZShHYW1lRXZlbnRzLkJPT1QsIHRoaXMuYm9vdCwgdGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVnaXN0ZXJzIGV2ZW50IGxpc3RlbmVycyBhZnRlciB0aGUgR2FtZSBib290cy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbk1hbmFnZXIjYm9vdFxyXG4gICAgICogQGxpc3RlbnMgUGhhc2VyLkNvcmUuRXZlbnRzI0RFU1RST1lcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBib290OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMudGV4dHVyZU1hbmFnZXIgPSB0aGlzLmdhbWUudGV4dHVyZXM7XHJcblxyXG4gICAgICAgIHRoaXMuZ2FtZS5ldmVudHMub25jZShHYW1lRXZlbnRzLkRFU1RST1ksIHRoaXMuZGVzdHJveSwgdGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkcyBhbiBleGlzdGluZyBBbmltYXRpb24gdG8gdGhlIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uTWFuYWdlciNhZGRcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjQUREX0FOSU1BVElPTlxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgdW5kZXIgd2hpY2ggdGhlIEFuaW1hdGlvbiBzaG91bGQgYmUgYWRkZWQuIFRoZSBBbmltYXRpb24gd2lsbCBiZSB1cGRhdGVkIHdpdGggaXQuIE11c3QgYmUgdW5pcXVlLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb259IGFuaW1hdGlvbiAtIFRoZSBBbmltYXRpb24gd2hpY2ggc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBBbmltYXRpb24gTWFuYWdlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gICAgICovXHJcbiAgICBhZGQ6IGZ1bmN0aW9uIChrZXksIGFuaW1hdGlvbilcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5hbmltcy5oYXMoa2V5KSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQW5pbWF0aW9uIGtleSBleGlzdHM6ICcgKyBrZXkpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhbmltYXRpb24ua2V5ID0ga2V5O1xyXG5cclxuICAgICAgICB0aGlzLmFuaW1zLnNldChrZXksIGFuaW1hdGlvbik7XHJcblxyXG4gICAgICAgIHRoaXMuZW1pdChFdmVudHMuQUREX0FOSU1BVElPTiwga2V5LCBhbmltYXRpb24pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3MgdG8gc2VlIGlmIHRoZSBnaXZlbiBrZXkgaXMgYWxyZWFkeSBpbiB1c2Ugd2l0aGluIHRoZSBBbmltYXRpb24gTWFuYWdlciBvciBub3QuXHJcbiAgICAgKiBcclxuICAgICAqIEFuaW1hdGlvbnMgYXJlIGdsb2JhbC4gS2V5cyBjcmVhdGVkIGluIG9uZSBzY2VuZSBjYW4gYmUgdXNlZCBmcm9tIGFueSBvdGhlciBTY2VuZSBpbiB5b3VyIGdhbWUuIFRoZXkgYXJlIG5vdCBTY2VuZSBzcGVjaWZpYy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbk1hbmFnZXIjZXhpc3RzXHJcbiAgICAgKiBAc2luY2UgMy4xNi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIEFuaW1hdGlvbiB0byBjaGVjay5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIEFuaW1hdGlvbiBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgQW5pbWF0aW9uIE1hbmFnZXIsIG9yIGBmYWxzZWAgaWYgdGhlIGtleSBpcyBhdmFpbGFibGUuXHJcbiAgICAgKi9cclxuICAgIGV4aXN0czogZnVuY3Rpb24gKGtleSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbmltcy5oYXMoa2V5KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgbmV3IEFuaW1hdGlvbiBhbmQgYWRkcyBpdCB0byB0aGUgQW5pbWF0aW9uIE1hbmFnZXIuXHJcbiAgICAgKiBcclxuICAgICAqIEFuaW1hdGlvbnMgYXJlIGdsb2JhbC4gT25jZSBjcmVhdGVkLCB5b3UgY2FuIHVzZSB0aGVtIGluIGFueSBTY2VuZSBpbiB5b3VyIGdhbWUuIFRoZXkgYXJlIG5vdCBTY2VuZSBzcGVjaWZpYy5cclxuICAgICAqIFxyXG4gICAgICogSWYgYW4gaW52YWxpZCBrZXkgaXMgZ2l2ZW4gdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gYGZhbHNlYC5cclxuICAgICAqIFxyXG4gICAgICogSWYgeW91IHBhc3MgdGhlIGtleSBvZiBhbiBhbmltYXRpb24gdGhhdCBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgQW5pbWF0aW9uIE1hbmFnZXIsIHRoYXQgYW5pbWF0aW9uIHdpbGwgYmUgcmV0dXJuZWQuXHJcbiAgICAgKiBcclxuICAgICAqIEEgYnJhbmQgbmV3IGFuaW1hdGlvbiBpcyBvbmx5IGNyZWF0ZWQgaWYgdGhlIGtleSBpcyB2YWxpZCBhbmQgbm90IGFscmVhZHkgaW4gdXNlLlxyXG4gICAgICogXHJcbiAgICAgKiBJZiB5b3Ugd2lzaCB0byByZS11c2UgYW4gZXhpc3Rpbmcga2V5LCBjYWxsIGBBbmltYXRpb25NYW5hZ2VyLnJlbW92ZWAgZmlyc3QsIHRoZW4gdGhpcyBtZXRob2QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25NYW5hZ2VyI2NyZWF0ZVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNBRERfQU5JTUFUSU9OXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5BbmltYXRpb25zLkFuaW1hdGlvbn0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBBbmltYXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7KFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbnxmYWxzZSl9IFRoZSBBbmltYXRpb24gdGhhdCB3YXMgY3JlYXRlZCwgb3IgYGZhbHNlYCBpcyB0aGUga2V5IGlzIGFscmVhZHkgaW4gdXNlLlxyXG4gICAgICovXHJcbiAgICBjcmVhdGU6IGZ1bmN0aW9uIChjb25maWcpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGtleSA9IGNvbmZpZy5rZXk7XHJcblxyXG4gICAgICAgIHZhciBhbmltID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmIChrZXkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBhbmltID0gdGhpcy5nZXQoa2V5KTtcclxuXHJcbiAgICAgICAgICAgIGlmICghYW5pbSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYW5pbSA9IG5ldyBBbmltYXRpb24odGhpcywga2V5LCBjb25maWcpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuYW5pbXMuc2V0KGtleSwgYW5pbSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXQoRXZlbnRzLkFERF9BTklNQVRJT04sIGtleSwgYW5pbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBhbmltO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIExvYWRzIHRoaXMgQW5pbWF0aW9uIE1hbmFnZXIncyBBbmltYXRpb25zIGFuZCBzZXR0aW5ncyBmcm9tIGEgSlNPTiBvYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25NYW5hZ2VyI2Zyb21KU09OXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8UGhhc2VyLlR5cGVzLkFuaW1hdGlvbnMuSlNPTkFuaW1hdGlvbnN8UGhhc2VyLlR5cGVzLkFuaW1hdGlvbnMuSlNPTkFuaW1hdGlvbil9IGRhdGEgLSBUaGUgSlNPTiBvYmplY3QgdG8gcGFyc2UuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjbGVhckN1cnJlbnRBbmltYXRpb25zPWZhbHNlXSAtIElmIHNldCB0byBgdHJ1ZWAsIHRoZSBjdXJyZW50IGFuaW1hdGlvbnMgd2lsbCBiZSByZW1vdmVkIChgYW5pbXMuY2xlYXIoKWApLiBJZiBzZXQgdG8gYGZhbHNlYCAoZGVmYXVsdCksIHRoZSBhbmltYXRpb25zIGluIGBkYXRhYCB3aWxsIGJlIGFkZGVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbltdfSBBbiBhcnJheSBjb250YWluaW5nIGFsbCBvZiB0aGUgQW5pbWF0aW9uIG9iamVjdHMgdGhhdCB3ZXJlIGNyZWF0ZWQgYXMgYSByZXN1bHQgb2YgdGhpcyBjYWxsLlxyXG4gICAgICovXHJcbiAgICBmcm9tSlNPTjogZnVuY3Rpb24gKGRhdGEsIGNsZWFyQ3VycmVudEFuaW1hdGlvbnMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGNsZWFyQ3VycmVudEFuaW1hdGlvbnMgPT09IHVuZGVmaW5lZCkgeyBjbGVhckN1cnJlbnRBbmltYXRpb25zID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgaWYgKGNsZWFyQ3VycmVudEFuaW1hdGlvbnMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmFuaW1zLmNsZWFyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgRG8gd2UgaGF2ZSBhIFN0cmluZyAoaS5lLiBmcm9tIEpTT04sIG9yIGFuIE9iamVjdD8pXHJcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGRhdGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIG91dHB1dCA9IFtdO1xyXG5cclxuICAgICAgICAvLyAgQXJyYXkgb2YgYW5pbWF0aW9ucywgb3IgYSBzaW5nbGUgYW5pbWF0aW9uP1xyXG4gICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KCdhbmltcycpICYmIEFycmF5LmlzQXJyYXkoZGF0YS5hbmltcykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEuYW5pbXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG91dHB1dC5wdXNoKHRoaXMuY3JlYXRlKGRhdGEuYW5pbXNbaV0pKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2dsb2JhbFRpbWVTY2FsZScpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbFRpbWVTY2FsZSA9IGRhdGEuZ2xvYmFsVGltZVNjYWxlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoJ2tleScpICYmIGRhdGEudHlwZSA9PT0gJ2ZyYW1lJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG91dHB1dC5wdXNoKHRoaXMuY3JlYXRlKGRhdGEpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2VuZXJhdGUgYW4gYXJyYXkgb2Yge0BsaW5rIFBoYXNlci5UeXBlcy5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfSBvYmplY3RzIGZyb20gYSB0ZXh0dXJlIGtleSBhbmQgY29uZmlndXJhdGlvbiBvYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogR2VuZXJhdGVzIG9iamVjdHMgd2l0aCBzdHJpbmcgYmFzZWQgZnJhbWUgbmFtZXMsIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGdpdmVuIHtAbGluayBQaGFzZXIuVHlwZXMuQW5pbWF0aW9ucy5HZW5lcmF0ZUZyYW1lTmFtZXN9LlxyXG4gICAgICogXHJcbiAgICAgKiBJdCdzIGEgaGVscGVyIG1ldGhvZCwgZGVzaWduZWQgdG8gbWFrZSBpdCBlYXNpZXIgZm9yIHlvdSB0byBleHRyYWN0IGFsbCBvZiB0aGUgZnJhbWUgbmFtZXMgZnJvbSB0ZXh0dXJlIGF0bGFzZXMuXHJcbiAgICAgKiBJZiB5b3UncmUgd29ya2luZyB3aXRoIGEgc3ByaXRlIHNoZWV0LCBzZWUgdGhlIGBnZW5lcmF0ZUZyYW1lTnVtYmVyc2AgbWV0aG9kIGluc3RlYWQuXHJcbiAgICAgKiBcclxuICAgICAqIEV4YW1wbGU6XHJcbiAgICAgKiBcclxuICAgICAqIElmIHlvdSBoYXZlIGEgdGV4dHVyZSBhdGxhc2VzIGxvYWRlZCBjYWxsZWQgYGdlbXNgIGFuZCBpdCBjb250YWlucyA2IGZyYW1lcyBjYWxsZWQgYHJ1YnlfMDAwMWAsIGBydWJ5XzAwMDJgLCBhbmQgc28gb24sXHJcbiAgICAgKiB0aGVuIHlvdSBjYW4gY2FsbCB0aGlzIG1ldGhvZCB1c2luZzogYHRoaXMuYW5pbXMuZ2VuZXJhdGVGcmFtZU5hbWVzKCdnZW1zJywgeyBwcmVmaXg6ICdydWJ5XycsIGVuZDogNiwgemVyb1BhZDogNCB9KWAuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBgZW5kYCB2YWx1ZSB0ZWxscyBpdCB0byBsb29rIGZvciA2IGZyYW1lcywgaW5jcmVtZW50YWxseSBudW1iZXJlZCwgYWxsIHN0YXJ0aW5nIHdpdGggdGhlIHByZWZpeCBgcnVieV9gLiBUaGUgYHplcm9QYWRgXHJcbiAgICAgKiB2YWx1ZSB0ZWxscyBpdCBob3cgbWFueSB6ZXJvZXMgcGFkIG91dCB0aGUgbnVtYmVycy4gVG8gY3JlYXRlIGFuIGFuaW1hdGlvbiB1c2luZyB0aGlzIG1ldGhvZCwgeW91IGNhbiBkbzpcclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogdGhpcy5hbmltcy5jcmVhdGUoe1xyXG4gICAgICogICBrZXk6ICdydWJ5JyxcclxuICAgICAqICAgcmVwZWF0OiAtMSxcclxuICAgICAqICAgZnJhbWVzOiB0aGlzLmFuaW1zLmdlbmVyYXRlRnJhbWVOYW1lcygnZ2VtcycsIHtcclxuICAgICAqICAgICBwcmVmaXg6ICdydWJ5XycsXHJcbiAgICAgKiAgICAgZW5kOiA2LFxyXG4gICAgICogICAgIHplcm9QYWQ6IDRcclxuICAgICAqICAgfSlcclxuICAgICAqIH0pO1xyXG4gICAgICogYGBgXHJcbiAgICAgKiBcclxuICAgICAqIFBsZWFzZSBzZWUgdGhlIGFuaW1hdGlvbiBleGFtcGxlcyBmb3IgZnVydGhlciBkZXRhaWxzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uTWFuYWdlciNnZW5lcmF0ZUZyYW1lTmFtZXNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IGZvciB0aGUgdGV4dHVyZSBjb250YWluaW5nIHRoZSBhbmltYXRpb24gZnJhbWVzLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuQW5pbWF0aW9ucy5HZW5lcmF0ZUZyYW1lTmFtZXN9IFtjb25maWddIC0gVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgYW5pbWF0aW9uIGZyYW1lIG5hbWVzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5UeXBlcy5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lW119IFRoZSBhcnJheSBvZiB7QGxpbmsgUGhhc2VyLlR5cGVzLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWV9IG9iamVjdHMuXHJcbiAgICAgKi9cclxuICAgIGdlbmVyYXRlRnJhbWVOYW1lczogZnVuY3Rpb24gKGtleSwgY29uZmlnKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBwcmVmaXggPSBHZXRWYWx1ZShjb25maWcsICdwcmVmaXgnLCAnJyk7XHJcbiAgICAgICAgdmFyIHN0YXJ0ID0gR2V0VmFsdWUoY29uZmlnLCAnc3RhcnQnLCAwKTtcclxuICAgICAgICB2YXIgZW5kID0gR2V0VmFsdWUoY29uZmlnLCAnZW5kJywgMCk7XHJcbiAgICAgICAgdmFyIHN1ZmZpeCA9IEdldFZhbHVlKGNvbmZpZywgJ3N1ZmZpeCcsICcnKTtcclxuICAgICAgICB2YXIgemVyb1BhZCA9IEdldFZhbHVlKGNvbmZpZywgJ3plcm9QYWQnLCAwKTtcclxuICAgICAgICB2YXIgb3V0ID0gR2V0VmFsdWUoY29uZmlnLCAnb3V0cHV0QXJyYXknLCBbXSk7XHJcbiAgICAgICAgdmFyIGZyYW1lcyA9IEdldFZhbHVlKGNvbmZpZywgJ2ZyYW1lcycsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgdmFyIHRleHR1cmUgPSB0aGlzLnRleHR1cmVNYW5hZ2VyLmdldChrZXkpO1xyXG5cclxuICAgICAgICBpZiAoIXRleHR1cmUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gb3V0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGRpZmYgPSAoc3RhcnQgPCBlbmQpID8gMSA6IC0xO1xyXG5cclxuICAgICAgICAvLyAgQWRqdXN0IGJlY2F1c2Ugd2UgdXNlIGkgIT09IGVuZCBpbiB0aGUgZm9yIGxvb3BcclxuICAgICAgICBlbmQgKz0gZGlmZjtcclxuXHJcbiAgICAgICAgdmFyIGk7XHJcbiAgICAgICAgdmFyIGZyYW1lO1xyXG5cclxuICAgICAgICBpZiAoIWNvbmZpZylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBVc2UgZXZlcnkgZnJhbWUgaW4gdGhlIGF0bGFzP1xyXG4gICAgICAgICAgICBmcmFtZXMgPSB0ZXh0dXJlLmdldEZyYW1lTmFtZXMoKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBmcmFtZXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG91dC5wdXNoKHsga2V5OiBrZXksIGZyYW1lOiBmcmFtZXNbaV0gfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShmcmFtZXMpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIEhhdmUgdGhleSBwcm92aWRlZCB0aGVpciBvd24gY3VzdG9tIGZyYW1lIHNlcXVlbmNlIGFycmF5P1xyXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZnJhbWVzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBmcmFtZSA9IHByZWZpeCArIFBhZChmcmFtZXNbaV0sIHplcm9QYWQsICcwJywgMSkgKyBzdWZmaXg7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRleHR1cmUuaGFzKGZyYW1lKSlcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBvdXQucHVzaCh7IGtleToga2V5LCBmcmFtZTogZnJhbWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZm9yIChpID0gc3RhcnQ7IGkgIT09IGVuZDsgaSArPSBkaWZmKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBmcmFtZSA9IHByZWZpeCArIFBhZChpLCB6ZXJvUGFkLCAnMCcsIDEpICsgc3VmZml4O1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0ZXh0dXJlLmhhcyhmcmFtZSkpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3V0LnB1c2goeyBrZXk6IGtleSwgZnJhbWU6IGZyYW1lIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3V0O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlIGFuIGFycmF5IG9mIHtAbGluayBQaGFzZXIuVHlwZXMuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZX0gb2JqZWN0cyBmcm9tIGEgdGV4dHVyZSBrZXkgYW5kIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEdlbmVyYXRlcyBvYmplY3RzIHdpdGggbnVtYmVyZWQgZnJhbWUgbmFtZXMsIGFzIGNvbmZpZ3VyZWQgYnkgdGhlIGdpdmVuIHtAbGluayBQaGFzZXIuVHlwZXMuQW5pbWF0aW9ucy5HZW5lcmF0ZUZyYW1lTnVtYmVyc30uXHJcbiAgICAgKiBcclxuICAgICAqIElmIHlvdSdyZSB3b3JraW5nIHdpdGggYSB0ZXh0dXJlIGF0bGFzLCBzZWUgdGhlIGBnZW5lcmF0ZUZyYW1lTmFtZXNgIG1ldGhvZCBpbnN0ZWFkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uTWFuYWdlciNnZW5lcmF0ZUZyYW1lTnVtYmVyc1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgZm9yIHRoZSB0ZXh0dXJlIGNvbnRhaW5pbmcgdGhlIGFuaW1hdGlvbiBmcmFtZXMuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5BbmltYXRpb25zLkdlbmVyYXRlRnJhbWVOdW1iZXJzfSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoZSBhbmltYXRpb24gZnJhbWVzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5UeXBlcy5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lW119IFRoZSBhcnJheSBvZiB7QGxpbmsgUGhhc2VyLlR5cGVzLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWV9IG9iamVjdHMuXHJcbiAgICAgKi9cclxuICAgIGdlbmVyYXRlRnJhbWVOdW1iZXJzOiBmdW5jdGlvbiAoa2V5LCBjb25maWcpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHN0YXJ0RnJhbWUgPSBHZXRWYWx1ZShjb25maWcsICdzdGFydCcsIDApO1xyXG4gICAgICAgIHZhciBlbmRGcmFtZSA9IEdldFZhbHVlKGNvbmZpZywgJ2VuZCcsIC0xKTtcclxuICAgICAgICB2YXIgZmlyc3RGcmFtZSA9IEdldFZhbHVlKGNvbmZpZywgJ2ZpcnN0JywgZmFsc2UpO1xyXG4gICAgICAgIHZhciBvdXQgPSBHZXRWYWx1ZShjb25maWcsICdvdXRwdXRBcnJheScsIFtdKTtcclxuICAgICAgICB2YXIgZnJhbWVzID0gR2V0VmFsdWUoY29uZmlnLCAnZnJhbWVzJywgZmFsc2UpO1xyXG5cclxuICAgICAgICB2YXIgdGV4dHVyZSA9IHRoaXMudGV4dHVyZU1hbmFnZXIuZ2V0KGtleSk7XHJcblxyXG4gICAgICAgIGlmICghdGV4dHVyZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBvdXQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlyc3RGcmFtZSAmJiB0ZXh0dXJlLmhhcyhmaXJzdEZyYW1lKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG91dC5wdXNoKHsga2V5OiBrZXksIGZyYW1lOiBmaXJzdEZyYW1lIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGk7XHJcblxyXG4gICAgICAgIC8vICBIYXZlIHRoZXkgcHJvdmlkZWQgdGhlaXIgb3duIGN1c3RvbSBmcmFtZSBzZXF1ZW5jZSBhcnJheT9cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmcmFtZXMpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGZyYW1lcy5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRleHR1cmUuaGFzKGZyYW1lc1tpXSkpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3V0LnB1c2goeyBrZXk6IGtleSwgZnJhbWU6IGZyYW1lc1tpXSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgTm8gZW5kRnJhbWUgdGhlbiBzZWUgaWYgd2UgY2FuIGdldCBpdFxyXG4gICAgICAgICAgICBpZiAoZW5kRnJhbWUgPT09IC0xKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBlbmRGcmFtZSA9IHRleHR1cmUuZnJhbWVUb3RhbDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIGRpZmYgPSAoc3RhcnRGcmFtZSA8IGVuZEZyYW1lKSA/IDEgOiAtMTtcclxuXHJcbiAgICAgICAgICAgIC8vICBBZGp1c3QgYmVjYXVzZSB3ZSB1c2UgaSAhPT0gZW5kIGluIHRoZSBmb3IgbG9vcFxyXG4gICAgICAgICAgICBlbmRGcmFtZSArPSBkaWZmO1xyXG5cclxuICAgICAgICAgICAgZm9yIChpID0gc3RhcnRGcmFtZTsgaSAhPT0gZW5kRnJhbWU7IGkgKz0gZGlmZilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRleHR1cmUuaGFzKGkpKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIG91dC5wdXNoKHsga2V5OiBrZXksIGZyYW1lOiBpIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3V0O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBhbiBBbmltYXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25NYW5hZ2VyI2dldFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIEFuaW1hdGlvbiB0byByZXRyaWV2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb259IFRoZSBBbmltYXRpb24uXHJcbiAgICAgKi9cclxuICAgIGdldDogZnVuY3Rpb24gKGtleSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbmltcy5nZXQoa2V5KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMb2FkIGFuIEFuaW1hdGlvbiBpbnRvIGEgR2FtZSBPYmplY3QncyBBbmltYXRpb24gQ29tcG9uZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uTWFuYWdlciNsb2FkXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBjaGlsZCAtIFRoZSBHYW1lIE9iamVjdCB0byBsb2FkIHRoZSBhbmltYXRpb24gaW50by5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBhbmltYXRpb24gdG8gbG9hZC5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW3N0YXJ0RnJhbWVdIC0gVGhlIG5hbWUgb2YgYSBzdGFydCBmcmFtZSB0byBzZXQgb24gdGhlIGxvYWRlZCBhbmltYXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB3aXRoIHRoZSBhbmltYXRpb24gbG9hZGVkIGludG8gaXQuXHJcbiAgICAgKi9cclxuICAgIGxvYWQ6IGZ1bmN0aW9uIChjaGlsZCwga2V5LCBzdGFydEZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBhbmltID0gdGhpcy5nZXQoa2V5KTtcclxuXHJcbiAgICAgICAgaWYgKGFuaW0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBhbmltLmxvYWQoY2hpbGQsIHN0YXJ0RnJhbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ01pc3NpbmcgYW5pbWF0aW9uOiAnICsga2V5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjaGlsZDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXVzZSBhbGwgYW5pbWF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbk1hbmFnZXIjcGF1c2VBbGxcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjUEFVU0VfQUxMXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gICAgICovXHJcbiAgICBwYXVzZUFsbDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMucGF1c2VkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5lbWl0KEV2ZW50cy5QQVVTRV9BTEwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGxheSBhbiBhbmltYXRpb24gb24gdGhlIGdpdmVuIEdhbWUgT2JqZWN0cyB0aGF0IGhhdmUgYW4gQW5pbWF0aW9uIENvbXBvbmVudC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbk1hbmFnZXIjcGxheVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIGFuaW1hdGlvbiB0byBwbGF5IG9uIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R8UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gY2hpbGQgLSBUaGUgR2FtZSBPYmplY3RzIHRvIHBsYXkgdGhlIGFuaW1hdGlvbiBvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gICAgICovXHJcbiAgICBwbGF5OiBmdW5jdGlvbiAoa2V5LCBjaGlsZClcclxuICAgIHtcclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY2hpbGQpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY2hpbGQgPSBbIGNoaWxkIF07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgYW5pbSA9IHRoaXMuZ2V0KGtleSk7XHJcblxyXG4gICAgICAgIGlmICghYW5pbSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZC5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNoaWxkW2ldLmFuaW1zLnBsYXkoa2V5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgYW4gQW5pbWF0aW9uIGZyb20gdGhpcyBBbmltYXRpb24gTWFuYWdlciwgYmFzZWQgb24gdGhlIGdpdmVuIGtleS5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyBpcyBhIGdsb2JhbCBhY3Rpb24uIE9uY2UgYW4gQW5pbWF0aW9uIGhhcyBiZWVuIHJlbW92ZWQsIG5vIEdhbWUgT2JqZWN0c1xyXG4gICAgICogY2FuIGNhcnJ5IG9uIHVzaW5nIGl0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uTWFuYWdlciNyZW1vdmVcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjUkVNT1ZFX0FOSU1BVElPTlxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIGFuaW1hdGlvbiB0byByZW1vdmUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9ufSBUaGUgQW5pbWF0aW9uIGluc3RhbmNlIHRoYXQgd2FzIHJlbW92ZWQgZnJvbSB0aGUgQW5pbWF0aW9uIE1hbmFnZXIuXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZTogZnVuY3Rpb24gKGtleSlcclxuICAgIHtcclxuICAgICAgICB2YXIgYW5pbSA9IHRoaXMuZ2V0KGtleSk7XHJcblxyXG4gICAgICAgIGlmIChhbmltKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5lbWl0KEV2ZW50cy5SRU1PVkVfQU5JTUFUSU9OLCBrZXksIGFuaW0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hbmltcy5kZWxldGUoa2V5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBhbmltO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc3VtZSBhbGwgcGF1c2VkIGFuaW1hdGlvbnMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25NYW5hZ2VyI3Jlc3VtZUFsbFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNSRVNVTUVfQUxMXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gICAgICovXHJcbiAgICByZXN1bWVBbGw6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMucGF1c2VkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wYXVzZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZW1pdChFdmVudHMuUkVTVU1FX0FMTCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUYWtlcyBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMgdGhhdCBoYXZlIGFuIEFuaW1hdGlvbiBDb21wb25lbnQgYW5kIHRoZW5cclxuICAgICAqIHN0YXJ0cyB0aGUgZ2l2ZW4gYW5pbWF0aW9uIHBsYXlpbmcgb24gdGhlbSwgZWFjaCBvbmUgb2Zmc2V0IGJ5IHRoZVxyXG4gICAgICogYHN0YWdnZXJgIGFtb3VudCBnaXZlbiB0byB0aGlzIG1ldGhvZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbk1hbmFnZXIjc3RhZ2dlclBsYXlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBHIC0gW2l0ZW1zLCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIGFuaW1hdGlvbiB0byBwbGF5IG9uIHRoZSBHYW1lIE9iamVjdHMuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IGNoaWxkcmVuIC0gQW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRvIHBsYXkgdGhlIGFuaW1hdGlvbiBvbi4gVGhleSBtdXN0IGhhdmUgYW4gQW5pbWF0aW9uIENvbXBvbmVudC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhZ2dlcj0wXSAtIFRoZSBhbW91bnQgb2YgdGltZSwgaW4gbWlsbGlzZWNvbmRzLCB0byBvZmZzZXQgZWFjaCBwbGF5IHRpbWUgYnkuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBBbmltYXRpb24gTWFuYWdlci5cclxuICAgICAqL1xyXG4gICAgc3RhZ2dlclBsYXk6IGZ1bmN0aW9uIChrZXksIGNoaWxkcmVuLCBzdGFnZ2VyKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChzdGFnZ2VyID09PSB1bmRlZmluZWQpIHsgc3RhZ2dlciA9IDA7IH1cclxuXHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNoaWxkcmVuKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuID0gWyBjaGlsZHJlbiBdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGFuaW0gPSB0aGlzLmdldChrZXkpO1xyXG5cclxuICAgICAgICBpZiAoIWFuaW0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjaGlsZHJlbltpXS5hbmltcy5kZWxheWVkUGxheShzdGFnZ2VyICogaSwga2V5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIEFuaW1hdGlvbiBkYXRhIGFzIEphdmFTY3JpcHQgb2JqZWN0IGJhc2VkIG9uIHRoZSBnaXZlbiBrZXkuXHJcbiAgICAgKiBPciwgaWYgbm90IGtleSBpcyBkZWZpbmVkLCBpdCB3aWxsIHJldHVybiB0aGUgZGF0YSBvZiBhbGwgYW5pbWF0aW9ucyBhcyBhcnJheSBvZiBvYmplY3RzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uTWFuYWdlciN0b0pTT05cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBba2V5XSAtIFRoZSBhbmltYXRpb24gdG8gZ2V0IHRoZSBKU09OQW5pbWF0aW9uIGRhdGEgZnJvbS4gSWYgbm90IHByb3ZpZGVkLCBhbGwgYW5pbWF0aW9ucyBhcmUgcmV0dXJuZWQgYXMgYW4gYXJyYXkuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLlR5cGVzLkFuaW1hdGlvbnMuSlNPTkFuaW1hdGlvbnN9IFRoZSByZXN1bHRpbmcgSlNPTkFuaW1hdGlvbnMgZm9ybWF0dGVkIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgdG9KU09OOiBmdW5jdGlvbiAoa2V5KVxyXG4gICAge1xyXG4gICAgICAgIHZhciBvdXRwdXQgPSB7XHJcbiAgICAgICAgICAgIGFuaW1zOiBbXSxcclxuICAgICAgICAgICAgZ2xvYmFsVGltZVNjYWxlOiB0aGlzLmdsb2JhbFRpbWVTY2FsZVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCAmJiBrZXkgIT09ICcnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgb3V0cHV0LmFuaW1zLnB1c2godGhpcy5hbmltcy5nZXQoa2V5KS50b0pTT04oKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuYW5pbXMuZWFjaChmdW5jdGlvbiAoYW5pbWF0aW9uS2V5LCBhbmltYXRpb24pXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG91dHB1dC5hbmltcy5wdXNoKGFuaW1hdGlvbi50b0pTT04oKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXN0cm95IHRoaXMgQW5pbWF0aW9uIE1hbmFnZXIgYW5kIGNsZWFuIHVwIGFuaW1hdGlvbiBkZWZpbml0aW9ucyBhbmQgcmVmZXJlbmNlcyB0byBvdGhlciBvYmplY3RzLlxyXG4gICAgICogVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuIEl0IHdpbGwgYmUgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYXMgYSByZXNwb25zZSB0byBhIGBkZXN0cm95YCBldmVudCBmcm9tIHRoZSBQaGFzZXIuR2FtZSBpbnN0YW5jZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbk1hbmFnZXIjZGVzdHJveVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5hbmltcy5jbGVhcigpO1xyXG5cclxuICAgICAgICB0aGlzLnRleHR1cmVNYW5hZ2VyID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5nYW1lID0gbnVsbDtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBBbmltYXRpb25NYW5hZ2VyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgQWRkIEFuaW1hdGlvbiBFdmVudC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCB3aGVuIGEgbmV3IGFuaW1hdGlvbiBpcyBhZGRlZCB0byB0aGUgZ2xvYmFsIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gKiBcclxuICogVGhpcyBjYW4gaGFwcGVuIGVpdGhlciBhcyBhIHJlc3VsdCBvZiBhbiBhbmltYXRpb24gaW5zdGFuY2UgYmVpbmcgYWRkZWQgdG8gdGhlIEFuaW1hdGlvbiBNYW5hZ2VyLFxyXG4gKiBvciB0aGUgQW5pbWF0aW9uIE1hbmFnZXIgY3JlYXRpbmcgYSBuZXcgYW5pbWF0aW9uIGRpcmVjdGx5LlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkFuaW1hdGlvbnMuRXZlbnRzI0FERF9BTklNQVRJT05cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSBvZiB0aGUgQW5pbWF0aW9uIHRoYXQgd2FzIGFkZGVkIHRvIHRoZSBnbG9iYWwgQW5pbWF0aW9uIE1hbmFnZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9ufSBhbmltYXRpb24gLSBBbiBpbnN0YW5jZSBvZiB0aGUgbmV3bHkgY3JlYXRlZCBBbmltYXRpb24uXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdhZGQnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgQW5pbWF0aW9uIENvbXBsZXRlIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGFuIEFuaW1hdGlvbiBpbnN0YW5jZSB3aGVuIGl0IGNvbXBsZXRlcywgaS5lLiBmaW5pc2hlcyBwbGF5aW5nIG9yIGlzIG1hbnVhbGx5IHN0b3BwZWQuXHJcbiAqIFxyXG4gKiBCZSBjYXJlZnVsIHdpdGggdGhlIHZvbHVtZSBvZiBldmVudHMgdGhpcyBjb3VsZCBnZW5lcmF0ZS4gSWYgYSBncm91cCBvZiBTcHJpdGVzIGFsbCBjb21wbGV0ZSB0aGUgc2FtZVxyXG4gKiBhbmltYXRpb24gYXQgdGhlIHNhbWUgdGltZSwgdGhpcyBldmVudCB3aWxsIGludm9rZSBpdHMgaGFuZGxlciBmb3IgZWFjaCBvbmUgb2YgdGhlbS5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNBTklNQVRJT05fQ09NUExFVEVcclxuICogQHNpbmNlIDMuMTYuMVxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb259IGFuaW1hdGlvbiAtIEEgcmVmZXJlbmNlIHRvIHRoZSBBbmltYXRpb24gdGhhdCBjb21wbGV0ZWQuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWV9IGZyYW1lIC0gVGhlIGN1cnJlbnQgQW5pbWF0aW9uIEZyYW1lIHRoYXQgdGhlIEFuaW1hdGlvbiBjb21wbGV0ZWQgb24uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZX0gZ2FtZU9iamVjdCAtIEEgcmVmZXJlbmNlIHRvIHRoZSBHYW1lIE9iamVjdCBvbiB3aGljaCB0aGUgYW5pbWF0aW9uIGNvbXBsZXRlZC5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2NvbXBsZXRlJztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIEFuaW1hdGlvbiBSZXBlYXQgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiBhIGN1cnJlbnRseSBwbGF5aW5nIGFuaW1hdGlvbiByZXBlYXRzLlxyXG4gKiBcclxuICogVGhlIGV2ZW50IGlzIGRpc3BhdGNoZWQgZGlyZWN0bHkgZnJvbSB0aGUgQW5pbWF0aW9uIG9iamVjdCBpdHNlbGYuIFdoaWNoIG1lYW5zIHRoYXQgbGlzdGVuZXJzXHJcbiAqIGJvdW5kIHRvIHRoaXMgZXZlbnQgd2lsbCBiZSBpbnZva2VkIGV2ZXJ5IHRpbWUgdGhlIEFuaW1hdGlvbiByZXBlYXRzLCBmb3IgZXZlcnkgR2FtZSBPYmplY3QgdGhhdCBtYXkgaGF2ZSBpdC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNBTklNQVRJT05fUkVQRUFUXHJcbiAqIEBzaW5jZSAzLjE2LjFcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9ufSBhbmltYXRpb24gLSBBIHJlZmVyZW5jZSB0byB0aGUgQW5pbWF0aW9uIHRoYXQgcmVwZWF0ZWQuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWV9IGZyYW1lIC0gVGhlIGN1cnJlbnQgQW5pbWF0aW9uIEZyYW1lIHRoYXQgdGhlIEFuaW1hdGlvbiB3YXMgb24gd2hlbiBpdCByZXBlYXRlZC5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ3JlcGVhdCc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBBbmltYXRpb24gUmVzdGFydCBFdmVudC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCBieSBhbiBBbmltYXRpb24gaW5zdGFuY2Ugd2hlbiBpdCByZXN0YXJ0cy5cclxuICogXHJcbiAqIEJlIGNhcmVmdWwgd2l0aCB0aGUgdm9sdW1lIG9mIGV2ZW50cyB0aGlzIGNvdWxkIGdlbmVyYXRlLiBJZiBhIGdyb3VwIG9mIFNwcml0ZXMgYWxsIHJlc3RhcnQgdGhlIHNhbWVcclxuICogYW5pbWF0aW9uIGF0IHRoZSBzYW1lIHRpbWUsIHRoaXMgZXZlbnQgd2lsbCBpbnZva2UgaXRzIGhhbmRsZXIgZm9yIGVhY2ggb25lIG9mIHRoZW0uXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjQU5JTUFUSU9OX1JFU1RBUlRcclxuICogQHNpbmNlIDMuMTYuMVxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb259IGFuaW1hdGlvbiAtIEEgcmVmZXJlbmNlIHRvIHRoZSBBbmltYXRpb24gdGhhdCByZXN0YXJ0ZWQgcGxheWluZy5cclxuICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZX0gZnJhbWUgLSBUaGUgY3VycmVudCBBbmltYXRpb24gRnJhbWUgdGhhdCB0aGUgQW5pbWF0aW9uIHJlc3RhcnRlZCB3aXRoLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGV9IGdhbWVPYmplY3QgLSBBIHJlZmVyZW5jZSB0byB0aGUgR2FtZSBPYmplY3Qgb24gd2hpY2ggdGhlIGFuaW1hdGlvbiByZXN0YXJ0ZWQgcGxheWluZy5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ3Jlc3RhcnQnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgQW5pbWF0aW9uIFN0YXJ0IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGFuIEFuaW1hdGlvbiBpbnN0YW5jZSB3aGVuIGl0IHN0YXJ0cyBwbGF5aW5nLlxyXG4gKiBcclxuICogQmUgY2FyZWZ1bCB3aXRoIHRoZSB2b2x1bWUgb2YgZXZlbnRzIHRoaXMgY291bGQgZ2VuZXJhdGUuIElmIGEgZ3JvdXAgb2YgU3ByaXRlcyBhbGwgcGxheSB0aGUgc2FtZVxyXG4gKiBhbmltYXRpb24gYXQgdGhlIHNhbWUgdGltZSwgdGhpcyBldmVudCB3aWxsIGludm9rZSBpdHMgaGFuZGxlciBmb3IgZWFjaCBvbmUgb2YgdGhlbS5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNBTklNQVRJT05fU1RBUlRcclxuICogQHNpbmNlIDMuMTYuMVxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb259IGFuaW1hdGlvbiAtIEEgcmVmZXJlbmNlIHRvIHRoZSBBbmltYXRpb24gdGhhdCBzdGFydGVkIHBsYXlpbmcuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWV9IGZyYW1lIC0gVGhlIGN1cnJlbnQgQW5pbWF0aW9uIEZyYW1lIHRoYXQgdGhlIEFuaW1hdGlvbiBzdGFydGVkIHdpdGguXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZX0gZ2FtZU9iamVjdCAtIEEgcmVmZXJlbmNlIHRvIHRoZSBHYW1lIE9iamVjdCBvbiB3aGljaCB0aGUgYW5pbWF0aW9uIHN0YXJ0ZWQgcGxheWluZy5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ3N0YXJ0JztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIFBhdXNlIEFsbCBBbmltYXRpb25zIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gdGhlIGdsb2JhbCBBbmltYXRpb24gTWFuYWdlciBpcyB0b2xkIHRvIHBhdXNlLlxyXG4gKiBcclxuICogV2hlbiB0aGlzIGhhcHBlbnMgYWxsIGN1cnJlbnQgYW5pbWF0aW9ucyB3aWxsIHN0b3AgdXBkYXRpbmcsIGFsdGhvdWdoIGl0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgbWVhblxyXG4gKiB0aGF0IHRoZSBnYW1lIGhhcyBwYXVzZWQgYXMgd2VsbC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNQQVVTRV9BTExcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdwYXVzZWFsbCc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBSZW1vdmUgQW5pbWF0aW9uIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gYW4gYW5pbWF0aW9uIGlzIHJlbW92ZWQgZnJvbSB0aGUgZ2xvYmFsIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkFuaW1hdGlvbnMuRXZlbnRzI1JFTU9WRV9BTklNQVRJT05cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSBvZiB0aGUgQW5pbWF0aW9uIHRoYXQgd2FzIHJlbW92ZWQgZnJvbSB0aGUgZ2xvYmFsIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbn0gYW5pbWF0aW9uIC0gQW4gaW5zdGFuY2Ugb2YgdGhlIHJlbW92ZWQgQW5pbWF0aW9uLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAncmVtb3ZlJztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIFJlc3VtZSBBbGwgQW5pbWF0aW9ucyBFdmVudC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCB3aGVuIHRoZSBnbG9iYWwgQW5pbWF0aW9uIE1hbmFnZXIgcmVzdW1lcywgaGF2aW5nIGJlZW4gcHJldmlvdXNseSBwYXVzZWQuXHJcbiAqIFxyXG4gKiBXaGVuIHRoaXMgaGFwcGVucyBhbGwgY3VycmVudCBhbmltYXRpb25zIHdpbGwgY29udGludWUgdXBkYXRpbmcgYWdhaW4uXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjUkVTVU1FX0FMTFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ3Jlc3VtZWFsbCc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBTcHJpdGUgQW5pbWF0aW9uIENvbXBsZXRlIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgU3ByaXRlIHdoZW4gYW4gYW5pbWF0aW9uIGZpbmlzaGVzIHBsYXlpbmcgb24gaXQuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gZm9yIGl0IG9uIHRoZSBTcHJpdGUgdXNpbmcgYHNwcml0ZS5vbignYW5pbWF0aW9uY29tcGxldGUnLCBsaXN0ZW5lcilgXHJcbiAqIFxyXG4gKiBUaGlzIHNhbWUgZXZlbnQgaXMgZGlzcGF0Y2hlZCBmb3IgYWxsIGFuaW1hdGlvbnMuIFRvIGxpc3RlbiBmb3IgYSBzcGVjaWZpYyBhbmltYXRpb24sIHVzZSB0aGUgYFNQUklURV9BTklNQVRJT05fS0VZX0NPTVBMRVRFYCBldmVudC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNTUFJJVEVfQU5JTUFUSU9OX0NPTVBMRVRFXHJcbiAqIEBzaW5jZSAzLjE2LjFcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9ufSBhbmltYXRpb24gLSBBIHJlZmVyZW5jZSB0byB0aGUgQW5pbWF0aW9uIHRoYXQgY29tcGxldGVkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfSBmcmFtZSAtIFRoZSBjdXJyZW50IEFuaW1hdGlvbiBGcmFtZSB0aGF0IHRoZSBBbmltYXRpb24gY29tcGxldGVkIG9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGV9IGdhbWVPYmplY3QgLSBBIHJlZmVyZW5jZSB0byB0aGUgR2FtZSBPYmplY3Qgb24gd2hpY2ggdGhlIGFuaW1hdGlvbiBjb21wbGV0ZWQuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdhbmltYXRpb25jb21wbGV0ZSc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBTcHJpdGUgQW5pbWF0aW9uIEtleSBDb21wbGV0ZSBFdmVudC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCBieSBhIFNwcml0ZSB3aGVuIGEgc3BlY2lmaWMgYW5pbWF0aW9uIGZpbmlzaGVzIHBsYXlpbmcgb24gaXQuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gZm9yIGl0IG9uIHRoZSBTcHJpdGUgdXNpbmcgYHNwcml0ZS5vbignYW5pbWF0aW9uY29tcGxldGUta2V5JywgbGlzdGVuZXIpYCB3aGVyZSBga2V5YCBpcyB0aGUga2V5IG9mXHJcbiAqIHRoZSBhbmltYXRpb24uIEZvciBleGFtcGxlLCBpZiB5b3UgaGFkIGFuIGFuaW1hdGlvbiB3aXRoIHRoZSBrZXkgJ2V4cGxvZGUnIHlvdSBzaG91bGQgbGlzdGVuIGZvciBgYW5pbWF0aW9uY29tcGxldGUtZXhwbG9kZWAuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjU1BSSVRFX0FOSU1BVElPTl9LRVlfQ09NUExFVEVcclxuICogQHNpbmNlIDMuMTYuMVxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb259IGFuaW1hdGlvbiAtIEEgcmVmZXJlbmNlIHRvIHRoZSBBbmltYXRpb24gdGhhdCBjb21wbGV0ZWQuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWV9IGZyYW1lIC0gVGhlIGN1cnJlbnQgQW5pbWF0aW9uIEZyYW1lIHRoYXQgdGhlIEFuaW1hdGlvbiBjb21wbGV0ZWQgb24uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZX0gZ2FtZU9iamVjdCAtIEEgcmVmZXJlbmNlIHRvIHRoZSBHYW1lIE9iamVjdCBvbiB3aGljaCB0aGUgYW5pbWF0aW9uIGNvbXBsZXRlZC5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2FuaW1hdGlvbmNvbXBsZXRlLSc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBTcHJpdGUgQW5pbWF0aW9uIEtleSBSZXBlYXQgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYnkgYSBTcHJpdGUgd2hlbiBhIHNwZWNpZmljIGFuaW1hdGlvbiByZXBlYXRzIHBsYXlpbmcgb24gaXQuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gZm9yIGl0IG9uIHRoZSBTcHJpdGUgdXNpbmcgYHNwcml0ZS5vbignYW5pbWF0aW9ucmVwZWF0LWtleScsIGxpc3RlbmVyKWAgd2hlcmUgYGtleWAgaXMgdGhlIGtleSBvZlxyXG4gKiB0aGUgYW5pbWF0aW9uLiBGb3IgZXhhbXBsZSwgaWYgeW91IGhhZCBhbiBhbmltYXRpb24gd2l0aCB0aGUga2V5ICdleHBsb2RlJyB5b3Ugc2hvdWxkIGxpc3RlbiBmb3IgYGFuaW1hdGlvbnJlcGVhdC1leHBsb2RlYC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNTUFJJVEVfQU5JTUFUSU9OX0tFWV9SRVBFQVRcclxuICogQHNpbmNlIDMuMTYuMVxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb259IGFuaW1hdGlvbiAtIEEgcmVmZXJlbmNlIHRvIHRoZSBBbmltYXRpb24gdGhhdCBpcyByZXBlYXRpbmcgb24gdGhlIFNwcml0ZS5cclxuICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZX0gZnJhbWUgLSBUaGUgY3VycmVudCBBbmltYXRpb24gRnJhbWUgdGhhdCB0aGUgQW5pbWF0aW9uIHN0YXJ0ZWQgd2l0aC5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSByZXBlYXRDb3VudCAtIFRoZSBudW1iZXIgb2YgdGltZXMgdGhlIEFuaW1hdGlvbiBoYXMgcmVwZWF0ZWQgc28gZmFyLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGV9IGdhbWVPYmplY3QgLSBBIHJlZmVyZW5jZSB0byB0aGUgR2FtZSBPYmplY3Qgb24gd2hpY2ggdGhlIGFuaW1hdGlvbiByZXBlYXRlZCBwbGF5aW5nLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAnYW5pbWF0aW9ucmVwZWF0LSc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBTcHJpdGUgQW5pbWF0aW9uIEtleSBSZXN0YXJ0IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgU3ByaXRlIHdoZW4gYSBzcGVjaWZpYyBhbmltYXRpb24gcmVzdGFydHMgcGxheWluZyBvbiBpdC5cclxuICogXHJcbiAqIExpc3RlbiBmb3IgaXQgb24gdGhlIFNwcml0ZSB1c2luZyBgc3ByaXRlLm9uKCdhbmltYXRpb25yZXN0YXJ0LWtleScsIGxpc3RlbmVyKWAgd2hlcmUgYGtleWAgaXMgdGhlIGtleSBvZlxyXG4gKiB0aGUgYW5pbWF0aW9uLiBGb3IgZXhhbXBsZSwgaWYgeW91IGhhZCBhbiBhbmltYXRpb24gd2l0aCB0aGUga2V5ICdleHBsb2RlJyB5b3Ugc2hvdWxkIGxpc3RlbiBmb3IgYGFuaW1hdGlvbnJlc3RhcnQtZXhwbG9kZWAuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjU1BSSVRFX0FOSU1BVElPTl9LRVlfUkVTVEFSVFxyXG4gKiBAc2luY2UgMy4xNi4xXHJcbiAqIFxyXG4gKiBAcGFyYW0ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbn0gYW5pbWF0aW9uIC0gQSByZWZlcmVuY2UgdG8gdGhlIEFuaW1hdGlvbiB0aGF0IHdhcyByZXN0YXJ0ZWQgb24gdGhlIFNwcml0ZS5cclxuICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZX0gZnJhbWUgLSBUaGUgY3VycmVudCBBbmltYXRpb24gRnJhbWUgdGhhdCB0aGUgQW5pbWF0aW9uIHJlc3RhcnRlZCB3aXRoLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGV9IGdhbWVPYmplY3QgLSBBIHJlZmVyZW5jZSB0byB0aGUgR2FtZSBPYmplY3Qgb24gd2hpY2ggdGhlIGFuaW1hdGlvbiByZXN0YXJ0ZWQgcGxheWluZy5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2FuaW1hdGlvbnJlc3RhcnQtJztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIFNwcml0ZSBBbmltYXRpb24gS2V5IFN0YXJ0IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgU3ByaXRlIHdoZW4gYSBzcGVjaWZpYyBhbmltYXRpb24gc3RhcnRzIHBsYXlpbmcgb24gaXQuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gZm9yIGl0IG9uIHRoZSBTcHJpdGUgdXNpbmcgYHNwcml0ZS5vbignYW5pbWF0aW9uc3RhcnQta2V5JywgbGlzdGVuZXIpYCB3aGVyZSBga2V5YCBpcyB0aGUga2V5IG9mXHJcbiAqIHRoZSBhbmltYXRpb24uIEZvciBleGFtcGxlLCBpZiB5b3UgaGFkIGFuIGFuaW1hdGlvbiB3aXRoIHRoZSBrZXkgJ2V4cGxvZGUnIHlvdSBzaG91bGQgbGlzdGVuIGZvciBgYW5pbWF0aW9uc3RhcnQtZXhwbG9kZWAuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjU1BSSVRFX0FOSU1BVElPTl9LRVlfU1RBUlRcclxuICogQHNpbmNlIDMuMTYuMVxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb259IGFuaW1hdGlvbiAtIEEgcmVmZXJlbmNlIHRvIHRoZSBBbmltYXRpb24gdGhhdCB3YXMgc3RhcnRlZCBvbiB0aGUgU3ByaXRlLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfSBmcmFtZSAtIFRoZSBjdXJyZW50IEFuaW1hdGlvbiBGcmFtZSB0aGF0IHRoZSBBbmltYXRpb24gc3RhcnRlZCB3aXRoLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGV9IGdhbWVPYmplY3QgLSBBIHJlZmVyZW5jZSB0byB0aGUgR2FtZSBPYmplY3Qgb24gd2hpY2ggdGhlIGFuaW1hdGlvbiBzdGFydGVkIHBsYXlpbmcuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdhbmltYXRpb25zdGFydC0nO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgU3ByaXRlIEFuaW1hdGlvbiBLZXkgVXBkYXRlIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgU3ByaXRlIHdoZW4gYSBzcGVjaWZpYyBhbmltYXRpb24gcGxheWluZyBvbiBpdCB1cGRhdGVzLiBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgYW5pbWF0aW9uIGNoYW5nZXMgZnJhbWUsXHJcbiAqIGJhc2VkIG9uIHRoZSBhbmltYXRpb24gZnJhbWUgcmF0ZSBhbmQgb3RoZXIgZmFjdG9ycyBsaWtlIGB0aW1lU2NhbGVgIGFuZCBgZGVsYXlgLlxyXG4gKiBcclxuICogTGlzdGVuIGZvciBpdCBvbiB0aGUgU3ByaXRlIHVzaW5nIGBzcHJpdGUub24oJ2FuaW1hdGlvbnVwZGF0ZS1rZXknLCBsaXN0ZW5lcilgIHdoZXJlIGBrZXlgIGlzIHRoZSBrZXkgb2ZcclxuICogdGhlIGFuaW1hdGlvbi4gRm9yIGV4YW1wbGUsIGlmIHlvdSBoYWQgYW4gYW5pbWF0aW9uIHdpdGggdGhlIGtleSAnZXhwbG9kZScgeW91IHNob3VsZCBsaXN0ZW4gZm9yIGBhbmltYXRpb251cGRhdGUtZXhwbG9kZWAuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjU1BSSVRFX0FOSU1BVElPTl9LRVlfVVBEQVRFXHJcbiAqIEBzaW5jZSAzLjE2LjFcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9ufSBhbmltYXRpb24gLSBBIHJlZmVyZW5jZSB0byB0aGUgQW5pbWF0aW9uIHRoYXQgaGFzIHVwZGF0ZWQgb24gdGhlIFNwcml0ZS5cclxuICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZX0gZnJhbWUgLSBUaGUgY3VycmVudCBBbmltYXRpb24gRnJhbWUgb2YgdGhlIEFuaW1hdGlvbi5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuU3ByaXRlfSBnYW1lT2JqZWN0IC0gQSByZWZlcmVuY2UgdG8gdGhlIEdhbWUgT2JqZWN0IG9uIHdoaWNoIHRoZSBhbmltYXRpb24gdXBkYXRlZC5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2FuaW1hdGlvbnVwZGF0ZS0nO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgU3ByaXRlIEFuaW1hdGlvbiBSZXBlYXQgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYnkgYSBTcHJpdGUgd2hlbiBhbiBhbmltYXRpb24gcmVwZWF0cyBwbGF5aW5nIG9uIGl0LlxyXG4gKiBcclxuICogTGlzdGVuIGZvciBpdCBvbiB0aGUgU3ByaXRlIHVzaW5nIGBzcHJpdGUub24oJ2FuaW1hdGlvbnJlcGVhdCcsIGxpc3RlbmVyKWBcclxuICogXHJcbiAqIFRoaXMgc2FtZSBldmVudCBpcyBkaXNwYXRjaGVkIGZvciBhbGwgYW5pbWF0aW9ucy4gVG8gbGlzdGVuIGZvciBhIHNwZWNpZmljIGFuaW1hdGlvbiwgdXNlIHRoZSBgU1BSSVRFX0FOSU1BVElPTl9LRVlfUkVQRUFUYCBldmVudC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNTUFJJVEVfQU5JTUFUSU9OX1JFUEVBVFxyXG4gKiBAc2luY2UgMy4xNi4xXHJcbiAqIFxyXG4gKiBAcGFyYW0ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbn0gYW5pbWF0aW9uIC0gQSByZWZlcmVuY2UgdG8gdGhlIEFuaW1hdGlvbiB0aGF0IGlzIHJlcGVhdGluZyBvbiB0aGUgU3ByaXRlLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfSBmcmFtZSAtIFRoZSBjdXJyZW50IEFuaW1hdGlvbiBGcmFtZSB0aGF0IHRoZSBBbmltYXRpb24gc3RhcnRlZCB3aXRoLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IHJlcGVhdENvdW50IC0gVGhlIG51bWJlciBvZiB0aW1lcyB0aGUgQW5pbWF0aW9uIGhhcyByZXBlYXRlZCBzbyBmYXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZX0gZ2FtZU9iamVjdCAtIEEgcmVmZXJlbmNlIHRvIHRoZSBHYW1lIE9iamVjdCBvbiB3aGljaCB0aGUgYW5pbWF0aW9uIHJlcGVhdGVkIHBsYXlpbmcuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdhbmltYXRpb25yZXBlYXQnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgU3ByaXRlIEFuaW1hdGlvbiBSZXN0YXJ0IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgU3ByaXRlIHdoZW4gYW4gYW5pbWF0aW9uIHJlc3RhcnRzIHBsYXlpbmcgb24gaXQuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gZm9yIGl0IG9uIHRoZSBTcHJpdGUgdXNpbmcgYHNwcml0ZS5vbignYW5pbWF0aW9ucmVzdGFydCcsIGxpc3RlbmVyKWBcclxuICogXHJcbiAqIFRoaXMgc2FtZSBldmVudCBpcyBkaXNwYXRjaGVkIGZvciBhbGwgYW5pbWF0aW9ucy4gVG8gbGlzdGVuIGZvciBhIHNwZWNpZmljIGFuaW1hdGlvbiwgdXNlIHRoZSBgU1BSSVRFX0FOSU1BVElPTl9LRVlfUkVTVEFSVGAgZXZlbnQuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjU1BSSVRFX0FOSU1BVElPTl9SRVNUQVJUXHJcbiAqIEBzaW5jZSAzLjE2LjFcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9ufSBhbmltYXRpb24gLSBBIHJlZmVyZW5jZSB0byB0aGUgQW5pbWF0aW9uIHRoYXQgd2FzIHJlc3RhcnRlZCBvbiB0aGUgU3ByaXRlLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfSBmcmFtZSAtIFRoZSBjdXJyZW50IEFuaW1hdGlvbiBGcmFtZSB0aGF0IHRoZSBBbmltYXRpb24gcmVzdGFydGVkIHdpdGguXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZX0gZ2FtZU9iamVjdCAtIEEgcmVmZXJlbmNlIHRvIHRoZSBHYW1lIE9iamVjdCBvbiB3aGljaCB0aGUgYW5pbWF0aW9uIHJlc3RhcnRlZCBwbGF5aW5nLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAnYW5pbWF0aW9ucmVzdGFydCc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBTcHJpdGUgQW5pbWF0aW9uIFN0YXJ0IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgU3ByaXRlIHdoZW4gYW4gYW5pbWF0aW9uIHN0YXJ0cyBwbGF5aW5nIG9uIGl0LlxyXG4gKiBcclxuICogTGlzdGVuIGZvciBpdCBvbiB0aGUgU3ByaXRlIHVzaW5nIGBzcHJpdGUub24oJ2FuaW1hdGlvbnN0YXJ0JywgbGlzdGVuZXIpYFxyXG4gKiBcclxuICogVGhpcyBzYW1lIGV2ZW50IGlzIGRpc3BhdGNoZWQgZm9yIGFsbCBhbmltYXRpb25zLiBUbyBsaXN0ZW4gZm9yIGEgc3BlY2lmaWMgYW5pbWF0aW9uLCB1c2UgdGhlIGBTUFJJVEVfQU5JTUFUSU9OX0tFWV9TVEFSVGAgZXZlbnQuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjU1BSSVRFX0FOSU1BVElPTl9TVEFSVFxyXG4gKiBAc2luY2UgMy4xNi4xXHJcbiAqIFxyXG4gKiBAcGFyYW0ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbn0gYW5pbWF0aW9uIC0gQSByZWZlcmVuY2UgdG8gdGhlIEFuaW1hdGlvbiB0aGF0IHdhcyBzdGFydGVkIG9uIHRoZSBTcHJpdGUuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uRnJhbWV9IGZyYW1lIC0gVGhlIGN1cnJlbnQgQW5pbWF0aW9uIEZyYW1lIHRoYXQgdGhlIEFuaW1hdGlvbiBzdGFydGVkIHdpdGguXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZX0gZ2FtZU9iamVjdCAtIEEgcmVmZXJlbmNlIHRvIHRoZSBHYW1lIE9iamVjdCBvbiB3aGljaCB0aGUgYW5pbWF0aW9uIHN0YXJ0ZWQgcGxheWluZy5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2FuaW1hdGlvbnN0YXJ0JztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIFNwcml0ZSBBbmltYXRpb24gVXBkYXRlIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgU3ByaXRlIHdoZW4gYW4gYW5pbWF0aW9uIHBsYXlpbmcgb24gaXQgdXBkYXRlcy4gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIGFuaW1hdGlvbiBjaGFuZ2VzIGZyYW1lLFxyXG4gKiBiYXNlZCBvbiB0aGUgYW5pbWF0aW9uIGZyYW1lIHJhdGUgYW5kIG90aGVyIGZhY3RvcnMgbGlrZSBgdGltZVNjYWxlYCBhbmQgYGRlbGF5YC5cclxuICogXHJcbiAqIExpc3RlbiBmb3IgaXQgb24gdGhlIFNwcml0ZSB1c2luZyBgc3ByaXRlLm9uKCdhbmltYXRpb251cGRhdGUnLCBsaXN0ZW5lcilgXHJcbiAqIFxyXG4gKiBUaGlzIHNhbWUgZXZlbnQgaXMgZGlzcGF0Y2hlZCBmb3IgYWxsIGFuaW1hdGlvbnMuIFRvIGxpc3RlbiBmb3IgYSBzcGVjaWZpYyBhbmltYXRpb24sIHVzZSB0aGUgYFNQUklURV9BTklNQVRJT05fS0VZX1VQREFURWAgZXZlbnQuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjU1BSSVRFX0FOSU1BVElPTl9VUERBVEVcclxuICogQHNpbmNlIDMuMTYuMVxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb259IGFuaW1hdGlvbiAtIEEgcmVmZXJlbmNlIHRvIHRoZSBBbmltYXRpb24gdGhhdCBoYXMgdXBkYXRlZCBvbiB0aGUgU3ByaXRlLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfSBmcmFtZSAtIFRoZSBjdXJyZW50IEFuaW1hdGlvbiBGcmFtZSBvZiB0aGUgQW5pbWF0aW9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5TcHJpdGV9IGdhbWVPYmplY3QgLSBBIHJlZmVyZW5jZSB0byB0aGUgR2FtZSBPYmplY3Qgb24gd2hpY2ggdGhlIGFuaW1hdGlvbiB1cGRhdGVkLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAnYW5pbWF0aW9udXBkYXRlJztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHNcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBBRERfQU5JTUFUSU9OOiByZXF1aXJlKCcuL0FERF9BTklNQVRJT05fRVZFTlQnKSxcclxuICAgIEFOSU1BVElPTl9DT01QTEVURTogcmVxdWlyZSgnLi9BTklNQVRJT05fQ09NUExFVEVfRVZFTlQnKSxcclxuICAgIEFOSU1BVElPTl9SRVBFQVQ6IHJlcXVpcmUoJy4vQU5JTUFUSU9OX1JFUEVBVF9FVkVOVCcpLFxyXG4gICAgQU5JTUFUSU9OX1JFU1RBUlQ6IHJlcXVpcmUoJy4vQU5JTUFUSU9OX1JFU1RBUlRfRVZFTlQnKSxcclxuICAgIEFOSU1BVElPTl9TVEFSVDogcmVxdWlyZSgnLi9BTklNQVRJT05fU1RBUlRfRVZFTlQnKSxcclxuICAgIFBBVVNFX0FMTDogcmVxdWlyZSgnLi9QQVVTRV9BTExfRVZFTlQnKSxcclxuICAgIFJFTU9WRV9BTklNQVRJT046IHJlcXVpcmUoJy4vUkVNT1ZFX0FOSU1BVElPTl9FVkVOVCcpLFxyXG4gICAgUkVTVU1FX0FMTDogcmVxdWlyZSgnLi9SRVNVTUVfQUxMX0VWRU5UJyksXHJcbiAgICBTUFJJVEVfQU5JTUFUSU9OX0NPTVBMRVRFOiByZXF1aXJlKCcuL1NQUklURV9BTklNQVRJT05fQ09NUExFVEVfRVZFTlQnKSxcclxuICAgIFNQUklURV9BTklNQVRJT05fS0VZX0NPTVBMRVRFOiByZXF1aXJlKCcuL1NQUklURV9BTklNQVRJT05fS0VZX0NPTVBMRVRFX0VWRU5UJyksXHJcbiAgICBTUFJJVEVfQU5JTUFUSU9OX0tFWV9SRVBFQVQ6IHJlcXVpcmUoJy4vU1BSSVRFX0FOSU1BVElPTl9LRVlfUkVQRUFUX0VWRU5UJyksXHJcbiAgICBTUFJJVEVfQU5JTUFUSU9OX0tFWV9SRVNUQVJUOiByZXF1aXJlKCcuL1NQUklURV9BTklNQVRJT05fS0VZX1JFU1RBUlRfRVZFTlQnKSxcclxuICAgIFNQUklURV9BTklNQVRJT05fS0VZX1NUQVJUOiByZXF1aXJlKCcuL1NQUklURV9BTklNQVRJT05fS0VZX1NUQVJUX0VWRU5UJyksXHJcbiAgICBTUFJJVEVfQU5JTUFUSU9OX0tFWV9VUERBVEU6IHJlcXVpcmUoJy4vU1BSSVRFX0FOSU1BVElPTl9LRVlfVVBEQVRFX0VWRU5UJyksXHJcbiAgICBTUFJJVEVfQU5JTUFUSU9OX1JFUEVBVDogcmVxdWlyZSgnLi9TUFJJVEVfQU5JTUFUSU9OX1JFUEVBVF9FVkVOVCcpLFxyXG4gICAgU1BSSVRFX0FOSU1BVElPTl9SRVNUQVJUOiByZXF1aXJlKCcuL1NQUklURV9BTklNQVRJT05fUkVTVEFSVF9FVkVOVCcpLFxyXG4gICAgU1BSSVRFX0FOSU1BVElPTl9TVEFSVDogcmVxdWlyZSgnLi9TUFJJVEVfQU5JTUFUSU9OX1NUQVJUX0VWRU5UJyksXHJcbiAgICBTUFJJVEVfQU5JTUFUSU9OX1VQREFURTogcmVxdWlyZSgnLi9TUFJJVEVfQU5JTUFUSU9OX1VQREFURV9FVkVOVCcpXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5BbmltYXRpb25zXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgQW5pbWF0aW9uOiByZXF1aXJlKCcuL0FuaW1hdGlvbicpLFxyXG4gICAgQW5pbWF0aW9uRnJhbWU6IHJlcXVpcmUoJy4vQW5pbWF0aW9uRnJhbWUnKSxcclxuICAgIEFuaW1hdGlvbk1hbmFnZXI6IHJlcXVpcmUoJy4vQW5pbWF0aW9uTWFuYWdlcicpLFxyXG4gICAgRXZlbnRzOiByZXF1aXJlKCcuL2V2ZW50cycpXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBDdXN0b21NYXAgPSByZXF1aXJlKCcuLi9zdHJ1Y3RzL01hcCcpO1xyXG52YXIgRXZlbnRFbWl0dGVyID0gcmVxdWlyZSgnZXZlbnRlbWl0dGVyMycpO1xyXG52YXIgRXZlbnRzID0gcmVxdWlyZSgnLi9ldmVudHMnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIFRoZSBCYXNlQ2FjaGUgaXMgYSBiYXNlIENhY2hlIGNsYXNzIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHN0b3JpbmcgcmVmZXJlbmNlcyB0byBhbnkga2luZCBvZiBkYXRhLlxyXG4gKlxyXG4gKiBEYXRhIGNhbiBiZSBhZGRlZCwgcmV0cmlldmVkIGFuZCByZW1vdmVkIGJhc2VkIG9uIHRoZSBnaXZlbiBrZXlzLlxyXG4gKlxyXG4gKiBLZXlzIGFyZSBzdHJpbmctYmFzZWQuXHJcbiAqXHJcbiAqIEBjbGFzcyBCYXNlQ2FjaGVcclxuICogQG1lbWJlcm9mIFBoYXNlci5DYWNoZVxyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG52YXIgQmFzZUNhY2hlID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIEJhc2VDYWNoZSAoKVxyXG4gICAge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBNYXAgaW4gd2hpY2ggdGhlIGNhY2hlIG9iamVjdHMgYXJlIHN0b3JlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFlvdSBjYW4gcXVlcnkgdGhlIE1hcCBkaXJlY3RseSBvciB1c2UgdGhlIEJhc2VDYWNoZSBtZXRob2RzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhY2hlLkJhc2VDYWNoZSNlbnRyaWVzXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5TdHJ1Y3RzLk1hcC48U3RyaW5nLCAqPn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmVudHJpZXMgPSBuZXcgQ3VzdG9tTWFwKCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGluc3RhbmNlIG9mIEV2ZW50RW1pdHRlciB1c2VkIGJ5IHRoZSBjYWNoZSB0byBlbWl0IHJlbGF0ZWQgZXZlbnRzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhY2hlLkJhc2VDYWNoZSNldmVudHNcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkV2ZW50cy5FdmVudEVtaXR0ZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ldmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkcyBhbiBpdGVtIHRvIHRoaXMgY2FjaGUuIFRoZSBpdGVtIGlzIHJlZmVyZW5jZWQgYnkgYSB1bmlxdWUgc3RyaW5nLCB3aGljaCB5b3UgYXJlIHJlc3BvbnNpYmxlXHJcbiAgICAgKiBmb3Igc2V0dGluZyBhbmQga2VlcGluZyB0cmFjayBvZi4gVGhlIGl0ZW0gY2FuIG9ubHkgYmUgcmV0cmlldmVkIGJ5IHVzaW5nIHRoaXMgc3RyaW5nLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhY2hlLkJhc2VDYWNoZSNhZGRcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ2FjaGUuRXZlbnRzI0FERFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSB1bmlxdWUga2V5IGJ5IHdoaWNoIHRoZSBkYXRhIGFkZGVkIHRvIHRoZSBjYWNoZSB3aWxsIGJlIHJlZmVyZW5jZWQuXHJcbiAgICAgKiBAcGFyYW0geyp9IGRhdGEgLSBUaGUgZGF0YSB0byBiZSBzdG9yZWQgaW4gdGhlIGNhY2hlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQmFzZUNhY2hlIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgYWRkOiBmdW5jdGlvbiAoa2V5LCBkYXRhKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZW50cmllcy5zZXQoa2V5LCBkYXRhKTtcclxuXHJcbiAgICAgICAgdGhpcy5ldmVudHMuZW1pdChFdmVudHMuQURELCB0aGlzLCBrZXksIGRhdGEpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3MgaWYgdGhpcyBjYWNoZSBjb250YWlucyBhbiBpdGVtIG1hdGNoaW5nIHRoZSBnaXZlbiBrZXkuXHJcbiAgICAgKiBUaGlzIHBlcmZvcm1zIHRoZSBzYW1lIGFjdGlvbiBhcyBgQmFzZUNhY2hlLmV4aXN0c2AuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FjaGUuQmFzZUNhY2hlI2hhc1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSB1bmlxdWUga2V5IG9mIHRoZSBpdGVtIHRvIGJlIGNoZWNrZWQgaW4gdGhpcyBjYWNoZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgY2FjaGUgY29udGFpbnMgYW4gaXRlbSBtYXRjaGluZyB0aGUgZ2l2ZW4ga2V5LCBvdGhlcndpc2UgYGZhbHNlYC5cclxuICAgICAqL1xyXG4gICAgaGFzOiBmdW5jdGlvbiAoa2V5KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudHJpZXMuaGFzKGtleSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2tzIGlmIHRoaXMgY2FjaGUgY29udGFpbnMgYW4gaXRlbSBtYXRjaGluZyB0aGUgZ2l2ZW4ga2V5LlxyXG4gICAgICogVGhpcyBwZXJmb3JtcyB0aGUgc2FtZSBhY3Rpb24gYXMgYEJhc2VDYWNoZS5oYXNgIGFuZCBpcyBjYWxsZWQgZGlyZWN0bHkgYnkgdGhlIExvYWRlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYWNoZS5CYXNlQ2FjaGUjZXhpc3RzXHJcbiAgICAgKiBAc2luY2UgMy43LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHVuaXF1ZSBrZXkgb2YgdGhlIGl0ZW0gdG8gYmUgY2hlY2tlZCBpbiB0aGlzIGNhY2hlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBjYWNoZSBjb250YWlucyBhbiBpdGVtIG1hdGNoaW5nIHRoZSBnaXZlbiBrZXksIG90aGVyd2lzZSBgZmFsc2VgLlxyXG4gICAgICovXHJcbiAgICBleGlzdHM6IGZ1bmN0aW9uIChrZXkpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50cmllcy5oYXMoa2V5KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGFuIGl0ZW0gZnJvbSB0aGlzIGNhY2hlIGJhc2VkIG9uIHRoZSBnaXZlbiBrZXkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FjaGUuQmFzZUNhY2hlI2dldFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSB1bmlxdWUga2V5IG9mIHRoZSBpdGVtIHRvIGJlIHJldHJpZXZlZCBmcm9tIHRoaXMgY2FjaGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Kn0gVGhlIGl0ZW0gaW4gdGhlIGNhY2hlLCBvciBgbnVsbGAgaWYgbm8gaXRlbSBtYXRjaGluZyB0aGUgZ2l2ZW4ga2V5IHdhcyBmb3VuZC5cclxuICAgICAqL1xyXG4gICAgZ2V0OiBmdW5jdGlvbiAoa2V5KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudHJpZXMuZ2V0KGtleSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhbmQgaXRlbSBmcm9tIHRoaXMgY2FjaGUgYmFzZWQgb24gdGhlIGdpdmVuIGtleS5cclxuICAgICAqXHJcbiAgICAgKiBJZiBhbiBlbnRyeSBtYXRjaGluZyB0aGUga2V5IGlzIGZvdW5kIGl0IGlzIHJlbW92ZWQgZnJvbSB0aGUgY2FjaGUgYW5kIGEgYHJlbW92ZWAgZXZlbnQgZW1pdHRlZC5cclxuICAgICAqIE5vIGFkZGl0aW9uYWwgY2hlY2tzIGFyZSBkb25lIG9uIHRoZSBpdGVtIHJlbW92ZWQuIElmIG90aGVyIHN5c3RlbXMgb3IgcGFydHMgb2YgeW91ciBnYW1lIGNvZGVcclxuICAgICAqIGFyZSByZWx5aW5nIG9uIHRoaXMgaXRlbSwgaXQgaXMgdXAgdG8geW91IHRvIHNldmVyIHRob3NlIHJlbGF0aW9uc2hpcHMgcHJpb3IgdG8gcmVtb3ZpbmcgdGhlIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FjaGUuQmFzZUNhY2hlI3JlbW92ZVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYWNoZS5FdmVudHMjUkVNT1ZFXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHVuaXF1ZSBrZXkgb2YgdGhlIGl0ZW0gdG8gcmVtb3ZlIGZyb20gdGhlIGNhY2hlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQmFzZUNhY2hlIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcmVtb3ZlOiBmdW5jdGlvbiAoa2V5KVxyXG4gICAge1xyXG4gICAgICAgIHZhciBlbnRyeSA9IHRoaXMuZ2V0KGtleSk7XHJcblxyXG4gICAgICAgIGlmIChlbnRyeSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5kZWxldGUoa2V5KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoRXZlbnRzLlJFTU9WRSwgdGhpcywga2V5LCBlbnRyeS5kYXRhKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYWxsIGtleXMgaW4gdXNlIGluIHRoaXMgY2FjaGUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FjaGUuQmFzZUNhY2hlI2dldEtleXNcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gQXJyYXkgY29udGFpbmluZyBhbGwgdGhlIGtleXMuXHJcbiAgICAgKi9cclxuICAgIGdldEtleXM6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50cmllcy5rZXlzKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVzdHJveXMgdGhpcyBjYWNoZSBhbmQgYWxsIGl0ZW1zIHdpdGhpbiBpdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYWNoZS5CYXNlQ2FjaGUjZGVzdHJveVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5lbnRyaWVzLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5ldmVudHMucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZW50cmllcyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5ldmVudHMgPSBudWxsO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEJhc2VDYWNoZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQmFzZUNhY2hlID0gcmVxdWlyZSgnLi9CYXNlQ2FjaGUnKTtcclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEdhbWVFdmVudHMgPSByZXF1aXJlKCcuLi9jb3JlL2V2ZW50cycpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogVGhlIENhY2hlIE1hbmFnZXIgaXMgdGhlIGdsb2JhbCBjYWNoZSBvd25lZCBhbmQgbWFpbnRhaW5lZCBieSB0aGUgR2FtZSBpbnN0YW5jZS5cclxuICpcclxuICogVmFyaW91cyBzeXN0ZW1zLCBzdWNoIGFzIHRoZSBmaWxlIExvYWRlciwgcmVseSBvbiB0aGlzIGNhY2hlIGluIG9yZGVyIHRvIHN0b3JlIHRoZSBmaWxlc1xyXG4gKiBpdCBoYXMgbG9hZGVkLiBUaGUgbWFuYWdlciBpdHNlbGYgZG9lc24ndCBzdG9yZSBhbnkgZmlsZXMsIGJ1dCBpbnN0ZWFkIG93bnMgbXVsdGlwbGUgQmFzZUNhY2hlXHJcbiAqIGluc3RhbmNlcywgb25lIHBlciB0eXBlIG9mIGZpbGUuIFlvdSBjYW4gYWxzbyBhZGQgeW91ciBvd24gY3VzdG9tIGNhY2hlcy5cclxuICpcclxuICogQGNsYXNzIENhY2hlTWFuYWdlclxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkNhY2hlXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZX0gZ2FtZSAtIEEgcmVmZXJlbmNlIHRvIHRoZSBQaGFzZXIuR2FtZSBpbnN0YW5jZSB0aGF0IG93bnMgdGhpcyBDYWNoZU1hbmFnZXIuXHJcbiAqL1xyXG52YXIgQ2FjaGVNYW5hZ2VyID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIENhY2hlTWFuYWdlciAoZ2FtZSlcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgUGhhc2VyLkdhbWUgaW5zdGFuY2UgdGhhdCBvd25zIHRoaXMgQ2FjaGVNYW5hZ2VyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhY2hlLkNhY2hlTWFuYWdlciNnYW1lXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lfVxyXG4gICAgICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmdhbWUgPSBnYW1lO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIENhY2hlIHN0b3JpbmcgYWxsIGJpbmFyeSBmaWxlcywgdHlwaWNhbGx5IGFkZGVkIHZpYSB0aGUgTG9hZGVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhY2hlLkNhY2hlTWFuYWdlciNiaW5hcnlcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkNhY2hlLkJhc2VDYWNoZX1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJpbmFyeSA9IG5ldyBCYXNlQ2FjaGUoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBDYWNoZSBzdG9yaW5nIGFsbCBiaXRtYXAgZm9udCBkYXRhIGZpbGVzLCB0eXBpY2FsbHkgYWRkZWQgdmlhIHRoZSBMb2FkZXIuXHJcbiAgICAgICAgICogT25seSB0aGUgZm9udCBkYXRhIGlzIHN0b3JlZCBpbiB0aGlzIGNhY2hlLCB0aGUgdGV4dHVyZXMgYXJlIHBhcnQgb2YgdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYWNoZS5DYWNoZU1hbmFnZXIjYml0bWFwRm9udFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FjaGUuQmFzZUNhY2hlfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYml0bWFwRm9udCA9IG5ldyBCYXNlQ2FjaGUoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBDYWNoZSBzdG9yaW5nIGFsbCBKU09OIGRhdGEgZmlsZXMsIHR5cGljYWxseSBhZGRlZCB2aWEgdGhlIExvYWRlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYWNoZS5DYWNoZU1hbmFnZXIjanNvblxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FjaGUuQmFzZUNhY2hlfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuanNvbiA9IG5ldyBCYXNlQ2FjaGUoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBDYWNoZSBzdG9yaW5nIGFsbCBwaHlzaWNzIGRhdGEgZmlsZXMsIHR5cGljYWxseSBhZGRlZCB2aWEgdGhlIExvYWRlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYWNoZS5DYWNoZU1hbmFnZXIjcGh5c2ljc1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FjaGUuQmFzZUNhY2hlfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucGh5c2ljcyA9IG5ldyBCYXNlQ2FjaGUoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBDYWNoZSBzdG9yaW5nIGFsbCBzaGFkZXIgc291cmNlIGZpbGVzLCB0eXBpY2FsbHkgYWRkZWQgdmlhIHRoZSBMb2FkZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FjaGUuQ2FjaGVNYW5hZ2VyI3NoYWRlclxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FjaGUuQmFzZUNhY2hlfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2hhZGVyID0gbmV3IEJhc2VDYWNoZSgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIENhY2hlIHN0b3JpbmcgYWxsIG5vbi1zdHJlYW1pbmcgYXVkaW8gZmlsZXMsIHR5cGljYWxseSBhZGRlZCB2aWEgdGhlIExvYWRlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYWNoZS5DYWNoZU1hbmFnZXIjYXVkaW9cclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkNhY2hlLkJhc2VDYWNoZX1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmF1ZGlvID0gbmV3IEJhc2VDYWNoZSgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIENhY2hlIHN0b3JpbmcgYWxsIG5vbi1zdHJlYW1pbmcgdmlkZW8gZmlsZXMsIHR5cGljYWxseSBhZGRlZCB2aWEgdGhlIExvYWRlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYWNoZS5DYWNoZU1hbmFnZXIjdmlkZW9cclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkNhY2hlLkJhc2VDYWNoZX1cclxuICAgICAgICAgKiBAc2luY2UgMy4yMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy52aWRlbyA9IG5ldyBCYXNlQ2FjaGUoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBDYWNoZSBzdG9yaW5nIGFsbCB0ZXh0IGZpbGVzLCB0eXBpY2FsbHkgYWRkZWQgdmlhIHRoZSBMb2FkZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FjaGUuQ2FjaGVNYW5hZ2VyI3RleHRcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkNhY2hlLkJhc2VDYWNoZX1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnRleHQgPSBuZXcgQmFzZUNhY2hlKCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgQ2FjaGUgc3RvcmluZyBhbGwgaHRtbCBmaWxlcywgdHlwaWNhbGx5IGFkZGVkIHZpYSB0aGUgTG9hZGVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhY2hlLkNhY2hlTWFuYWdlciNodG1sXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5DYWNoZS5CYXNlQ2FjaGV9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTIuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaHRtbCA9IG5ldyBCYXNlQ2FjaGUoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBDYWNoZSBzdG9yaW5nIGFsbCBXYXZlRnJvbnQgT0JKIGZpbGVzLCB0eXBpY2FsbHkgYWRkZWQgdmlhIHRoZSBMb2FkZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FjaGUuQ2FjaGVNYW5hZ2VyI29ialxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FjaGUuQmFzZUNhY2hlfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMub2JqID0gbmV3IEJhc2VDYWNoZSgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIENhY2hlIHN0b3JpbmcgYWxsIHRpbGVtYXAgZGF0YSBmaWxlcywgdHlwaWNhbGx5IGFkZGVkIHZpYSB0aGUgTG9hZGVyLlxyXG4gICAgICAgICAqIE9ubHkgdGhlIGRhdGEgaXMgc3RvcmVkIGluIHRoaXMgY2FjaGUsIHRoZSB0ZXh0dXJlcyBhcmUgcGFydCBvZiB0aGUgVGV4dHVyZSBNYW5hZ2VyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhY2hlLkNhY2hlTWFuYWdlciN0aWxlbWFwXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5DYWNoZS5CYXNlQ2FjaGV9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy50aWxlbWFwID0gbmV3IEJhc2VDYWNoZSgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIENhY2hlIHN0b3JpbmcgYWxsIHhtbCBkYXRhIGZpbGVzLCB0eXBpY2FsbHkgYWRkZWQgdmlhIHRoZSBMb2FkZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FjaGUuQ2FjaGVNYW5hZ2VyI3htbFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FjaGUuQmFzZUNhY2hlfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMueG1sID0gbmV3IEJhc2VDYWNoZSgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbiBvYmplY3QgdGhhdCBjb250YWlucyB5b3VyIG93biBjdXN0b20gQmFzZUNhY2hlIGVudHJpZXMuXHJcbiAgICAgICAgICogQWRkIHRvIHRoaXMgdmlhIHRoZSBgYWRkQ3VzdG9tYCBtZXRob2QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FjaGUuQ2FjaGVNYW5hZ2VyI2N1c3RvbVxyXG4gICAgICAgICAqIEB0eXBlIHtPYmplY3QuPFBoYXNlci5DYWNoZS5CYXNlQ2FjaGU+fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY3VzdG9tID0ge307XHJcblxyXG4gICAgICAgIHRoaXMuZ2FtZS5ldmVudHMub25jZShHYW1lRXZlbnRzLkRFU1RST1ksIHRoaXMuZGVzdHJveSwgdGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIHlvdXIgb3duIGN1c3RvbSBDYWNoZSBmb3Igc3RvcmluZyB5b3VyIG93biBmaWxlcy5cclxuICAgICAqIFRoZSBjYWNoZSB3aWxsIGJlIGF2YWlsYWJsZSB1bmRlciBgQ2FjaGUuY3VzdG9tLmtleWAuXHJcbiAgICAgKiBUaGUgY2FjaGUgd2lsbCBvbmx5IGJlIGNyZWF0ZWQgaWYgdGhlIGtleSBpcyBub3QgYWxyZWFkeSBpbiB1c2UuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FjaGUuQ2FjaGVNYW5hZ2VyI2FkZEN1c3RvbVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSB1bmlxdWUga2V5IG9mIHlvdXIgY3VzdG9tIGNhY2hlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYWNoZS5CYXNlQ2FjaGV9IEEgcmVmZXJlbmNlIHRvIHRoZSBCYXNlQ2FjaGUgdGhhdCB3YXMgY3JlYXRlZC4gSWYgdGhlIGtleSB3YXMgYWxyZWFkeSBpbiB1c2UsIGEgcmVmZXJlbmNlIHRvIHRoZSBleGlzdGluZyBjYWNoZSBpcyByZXR1cm5lZCBpbnN0ZWFkLlxyXG4gICAgICovXHJcbiAgICBhZGRDdXN0b206IGZ1bmN0aW9uIChrZXkpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1c3RvbS5oYXNPd25Qcm9wZXJ0eShrZXkpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21ba2V5XSA9IG5ldyBCYXNlQ2FjaGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmN1c3RvbVtrZXldO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgYWxsIGVudHJpZXMgZnJvbSBhbGwgQmFzZUNhY2hlcyBhbmQgZGVzdHJveXMgYWxsIGN1c3RvbSBjYWNoZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FjaGUuQ2FjaGVNYW5hZ2VyI2Rlc3Ryb3lcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBrZXlzID0gW1xyXG4gICAgICAgICAgICAnYmluYXJ5JyxcclxuICAgICAgICAgICAgJ2JpdG1hcEZvbnQnLFxyXG4gICAgICAgICAgICAnanNvbicsXHJcbiAgICAgICAgICAgICdwaHlzaWNzJyxcclxuICAgICAgICAgICAgJ3NoYWRlcicsXHJcbiAgICAgICAgICAgICdhdWRpbycsXHJcbiAgICAgICAgICAgICd2aWRlbycsXHJcbiAgICAgICAgICAgICd0ZXh0JyxcclxuICAgICAgICAgICAgJ2h0bWwnLFxyXG4gICAgICAgICAgICAnb2JqJyxcclxuICAgICAgICAgICAgJ3RpbGVtYXAnLFxyXG4gICAgICAgICAgICAneG1sJ1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXNba2V5c1tpXV0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB0aGlzW2tleXNbaV1dID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAodmFyIGtleSBpbiB0aGlzLmN1c3RvbSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tW2tleV0uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jdXN0b20gPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLmdhbWUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IENhY2hlTWFuYWdlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIENhY2hlIEFkZCBFdmVudC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCBieSBhbnkgQ2FjaGUgdGhhdCBleHRlbmRzIHRoZSBCYXNlQ2FjaGUgZWFjaCB0aW1lIGEgbmV3IG9iamVjdCBpcyBhZGRlZCB0byBpdC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5DYWNoZS5FdmVudHMjQUREXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQ2FjaGUuQmFzZUNhY2hlfSBjYWNoZSAtIFRoZSBjYWNoZSB0byB3aGljaCB0aGUgb2JqZWN0IHdhcyBhZGRlZC5cclxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIG9iamVjdCBhZGRlZCB0byB0aGUgY2FjaGUuXHJcbiAqIEBwYXJhbSB7Kn0gb2JqZWN0IC0gQSByZWZlcmVuY2UgdG8gdGhlIG9iamVjdCB0aGF0IHdhcyBhZGRlZCB0byB0aGUgY2FjaGUuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdhZGQnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgQ2FjaGUgUmVtb3ZlIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGFueSBDYWNoZSB0aGF0IGV4dGVuZHMgdGhlIEJhc2VDYWNoZSBlYWNoIHRpbWUgYW4gb2JqZWN0IGlzIHJlbW92ZWQgZnJvbSBpdC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5DYWNoZS5FdmVudHMjUkVNT1ZFXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQ2FjaGUuQmFzZUNhY2hlfSBjYWNoZSAtIFRoZSBjYWNoZSBmcm9tIHdoaWNoIHRoZSBvYmplY3Qgd2FzIHJlbW92ZWQuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBvYmplY3QgcmVtb3ZlZCBmcm9tIHRoZSBjYWNoZS5cclxuICogQHBhcmFtIHsqfSBvYmplY3QgLSBBIHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0IHRoYXQgd2FzIHJlbW92ZWQgZnJvbSB0aGUgY2FjaGUuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdyZW1vdmUnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5DYWNoZS5FdmVudHNcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBBREQ6IHJlcXVpcmUoJy4vQUREX0VWRU5UJyksXHJcbiAgICBSRU1PVkU6IHJlcXVpcmUoJy4vUkVNT1ZFX0VWRU5UJylcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkNhY2hlXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgQmFzZUNhY2hlOiByZXF1aXJlKCcuL0Jhc2VDYWNoZScpLFxyXG4gICAgQ2FjaGVNYW5hZ2VyOiByZXF1aXJlKCcuL0NhY2hlTWFuYWdlcicpLFxyXG4gICAgRXZlbnRzOiByZXF1aXJlKCcuL2V2ZW50cycpXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBDb21wb25lbnRzID0gcmVxdWlyZSgnLi4vLi4vZ2FtZW9iamVjdHMvY29tcG9uZW50cycpO1xyXG52YXIgRGVnVG9SYWQgPSByZXF1aXJlKCcuLi8uLi9tYXRoL0RlZ1RvUmFkJyk7XHJcbnZhciBFdmVudEVtaXR0ZXIgPSByZXF1aXJlKCdldmVudGVtaXR0ZXIzJyk7XHJcbnZhciBFdmVudHMgPSByZXF1aXJlKCcuL2V2ZW50cycpO1xyXG52YXIgUmVjdGFuZ2xlID0gcmVxdWlyZSgnLi4vLi4vZ2VvbS9yZWN0YW5nbGUvUmVjdGFuZ2xlJyk7XHJcbnZhciBUcmFuc2Zvcm1NYXRyaXggPSByZXF1aXJlKCcuLi8uLi9nYW1lb2JqZWN0cy9jb21wb25lbnRzL1RyYW5zZm9ybU1hdHJpeCcpO1xyXG52YXIgVmFsdWVUb0NvbG9yID0gcmVxdWlyZSgnLi4vLi4vZGlzcGxheS9jb2xvci9WYWx1ZVRvQ29sb3InKTtcclxudmFyIFZlY3RvcjIgPSByZXF1aXJlKCcuLi8uLi9tYXRoL1ZlY3RvcjInKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgQmFzZSBDYW1lcmEgY2xhc3MuXHJcbiAqXHJcbiAqIFRoZSBDYW1lcmEgaXMgdGhlIHdheSBpbiB3aGljaCBhbGwgZ2FtZXMgYXJlIHJlbmRlcmVkIGluIFBoYXNlci4gVGhleSBwcm92aWRlIGEgdmlldyBpbnRvIHlvdXIgZ2FtZSB3b3JsZCxcclxuICogYW5kIGNhbiBiZSBwb3NpdGlvbmVkLCByb3RhdGVkLCB6b29tZWQgYW5kIHNjcm9sbGVkIGFjY29yZGluZ2x5LlxyXG4gKlxyXG4gKiBBIENhbWVyYSBjb25zaXN0cyBvZiB0d28gZWxlbWVudHM6IFRoZSB2aWV3cG9ydCBhbmQgdGhlIHNjcm9sbCB2YWx1ZXMuXHJcbiAqXHJcbiAqIFRoZSB2aWV3cG9ydCBpcyB0aGUgcGh5c2ljYWwgcG9zaXRpb24gYW5kIHNpemUgb2YgdGhlIENhbWVyYSB3aXRoaW4geW91ciBnYW1lLiBDYW1lcmFzLCBieSBkZWZhdWx0LCBhcmVcclxuICogY3JlYXRlZCB0aGUgc2FtZSBzaXplIGFzIHlvdXIgZ2FtZSwgYnV0IHRoZWlyIHBvc2l0aW9uIGFuZCBzaXplIGNhbiBiZSBzZXQgdG8gYW55dGhpbmcuIFRoaXMgbWVhbnMgaWYgeW91XHJcbiAqIHdhbnRlZCB0byBjcmVhdGUgYSBjYW1lcmEgdGhhdCB3YXMgMzIweDIwMCBpbiBzaXplLCBwb3NpdGlvbmVkIGluIHRoZSBib3R0b20tcmlnaHQgY29ybmVyIG9mIHlvdXIgZ2FtZSxcclxuICogeW91J2QgYWRqdXN0IHRoZSB2aWV3cG9ydCB0byBkbyB0aGF0ICh1c2luZyBtZXRob2RzIGxpa2UgYHNldFZpZXdwb3J0YCBhbmQgYHNldFNpemVgKS5cclxuICpcclxuICogSWYgeW91IHdpc2ggdG8gY2hhbmdlIHdoZXJlIHRoZSBDYW1lcmEgaXMgbG9va2luZyBpbiB5b3VyIGdhbWUsIHRoZW4geW91IHNjcm9sbCBpdC4gWW91IGNhbiBkbyB0aGlzXHJcbiAqIHZpYSB0aGUgcHJvcGVydGllcyBgc2Nyb2xsWGAgYW5kIGBzY3JvbGxZYCBvciB0aGUgbWV0aG9kIGBzZXRTY3JvbGxgLiBTY3JvbGxpbmcgaGFzIG5vIGltcGFjdCBvbiB0aGVcclxuICogdmlld3BvcnQsIGFuZCBjaGFuZ2luZyB0aGUgdmlld3BvcnQgaGFzIG5vIGltcGFjdCBvbiB0aGUgc2Nyb2xsaW5nLlxyXG4gKlxyXG4gKiBCeSBkZWZhdWx0IGEgQ2FtZXJhIHdpbGwgcmVuZGVyIGFsbCBHYW1lIE9iamVjdHMgaXQgY2FuIHNlZS4gWW91IGNhbiBjaGFuZ2UgdGhpcyB1c2luZyB0aGUgYGlnbm9yZWAgbWV0aG9kLFxyXG4gKiBhbGxvd2luZyB5b3UgdG8gZmlsdGVyIEdhbWUgT2JqZWN0cyBvdXQgb24gYSBwZXItQ2FtZXJhIGJhc2lzLlxyXG4gKiBcclxuICogVGhlIEJhc2UgQ2FtZXJhIGlzIGV4dGVuZGVkIGJ5IHRoZSBDYW1lcmEgY2xhc3MsIHdoaWNoIGFkZHMgaW4gc3BlY2lhbCBlZmZlY3RzIGluY2x1ZGluZyBGYWRlLFxyXG4gKiBGbGFzaCBhbmQgQ2FtZXJhIFNoYWtlLCBhcyB3ZWxsIGFzIHRoZSBhYmlsaXR5IHRvIGZvbGxvdyBHYW1lIE9iamVjdHMuXHJcbiAqIFxyXG4gKiBUaGUgQmFzZSBDYW1lcmEgd2FzIGludHJvZHVjZWQgaW4gUGhhc2VyIDMuMTIuIEl0IHdhcyBzcGxpdCBvZmYgZnJvbSB0aGUgQ2FtZXJhIGNsYXNzLCB0byBhbGxvd1xyXG4gKiB5b3UgdG8gaXNvbGF0ZSBzcGVjaWFsIGVmZmVjdHMgYXMgbmVlZGVkLiBUaGVyZWZvcmUgdGhlICdzaW5jZScgdmFsdWVzIGZvciBwcm9wZXJ0aWVzIG9mIHRoaXMgY2xhc3MgcmVsYXRlXHJcbiAqIHRvIHdoZW4gdGhleSB3ZXJlIGFkZGVkIHRvIHRoZSBDYW1lcmEgY2xhc3MuXHJcbiAqXHJcbiAqIEBjbGFzcyBCYXNlQ2FtZXJhXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJEXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4xMi4wXHJcbiAqIFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuRXZlbnRzLkV2ZW50RW1pdHRlclxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5WaXNpYmxlXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggcG9zaXRpb24gb2YgdGhlIENhbWVyYSwgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZWZ0IG9mIHRoZSBnYW1lIGNhbnZhcy5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBwb3NpdGlvbiBvZiB0aGUgQ2FtZXJhLCByZWxhdGl2ZSB0byB0aGUgdG9wLWxlZnQgb2YgdGhlIGdhbWUgY2FudmFzLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBUaGUgd2lkdGggb2YgdGhlIENhbWVyYSwgaW4gcGl4ZWxzLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gVGhlIGhlaWdodCBvZiB0aGUgQ2FtZXJhLCBpbiBwaXhlbHMuXHJcbiAqL1xyXG52YXIgQmFzZUNhbWVyYSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogRXZlbnRFbWl0dGVyLFxyXG5cclxuICAgIE1peGluczogW1xyXG4gICAgICAgIENvbXBvbmVudHMuQWxwaGEsXHJcbiAgICAgICAgQ29tcG9uZW50cy5WaXNpYmxlXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gQmFzZUNhbWVyYSAoeCwgeSwgd2lkdGgsIGhlaWdodClcclxuICAgIHtcclxuICAgICAgICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7IHggPSAwOyB9XHJcbiAgICAgICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgeyB5ID0gMDsgfVxyXG4gICAgICAgIGlmICh3aWR0aCA9PT0gdW5kZWZpbmVkKSB7IHdpZHRoID0gMDsgfVxyXG4gICAgICAgIGlmIChoZWlnaHQgPT09IHVuZGVmaW5lZCkgeyBoZWlnaHQgPSAwOyB9XHJcblxyXG4gICAgICAgIEV2ZW50RW1pdHRlci5jYWxsKHRoaXMpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgU2NlbmUgdGhpcyBjYW1lcmEgYmVsb25ncyB0by5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNzY2VuZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU2NlbmV9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zY2VuZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIEdhbWUgU2NlbmUgTWFuYWdlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNzY2VuZU1hbmFnZXJcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlNjZW5lcy5TY2VuZU1hbmFnZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTIuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2NlbmVNYW5hZ2VyO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgR2FtZSBTY2FsZSBNYW5hZ2VyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI3NjYWxlTWFuYWdlclxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU2NhbGUuU2NhbGVNYW5hZ2VyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE2LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjYWxlTWFuYWdlcjtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lJ3MgQ2FtZXJhIE1hbmFnZXIgdG8gd2hpY2ggdGhpcyBDYW1lcmEgYmVsb25ncy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNjYW1lcmFNYW5hZ2VyXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhTWFuYWdlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jYW1lcmFNYW5hZ2VyO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgQ2FtZXJhIElELiBBc3NpZ25lZCBieSB0aGUgQ2FtZXJhIE1hbmFnZXIgYW5kIHVzZWQgdG8gaGFuZGxlIGNhbWVyYSBleGNsdXNpb24uXHJcbiAgICAgICAgICogVGhpcyB2YWx1ZSBpcyBhIGJpdG1hc2suXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjaWRcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pZCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBuYW1lIG9mIHRoZSBDYW1lcmEuIFRoaXMgaXMgbGVmdCBlbXB0eSBmb3IgeW91ciBvd24gdXNlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI25hbWVcclxuICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICAgICAqIEBkZWZhdWx0ICcnXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5uYW1lID0gJyc7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoaXMgcHJvcGVydHkgaXMgdW4tdXNlZCBpbiB2My4xNi5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBUaGUgcmVzb2x1dGlvbiBvZiB0aGUgR2FtZSwgdXNlZCBpbiBtb3N0IENhbWVyYSBjYWxjdWxhdGlvbnMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjcmVzb2x1dGlvblxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQGRlcHJlY2F0ZWRcclxuICAgICAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yZXNvbHV0aW9uID0gMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogU2hvdWxkIHRoaXMgY2FtZXJhIHJvdW5kIGl0cyBwaXhlbCB2YWx1ZXMgdG8gaW50ZWdlcnM/XHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjcm91bmRQaXhlbHNcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucm91bmRQaXhlbHMgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSXMgdGhpcyBDYW1lcmEgdmlzaWJsZSBvciBub3Q/XHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBBIHZpc2libGUgY2FtZXJhIHdpbGwgcmVuZGVyIGFuZCBwZXJmb3JtIGlucHV0IHRlc3RzLlxyXG4gICAgICAgICAqIEFuIGludmlzaWJsZSBjYW1lcmEgd2lsbCBub3QgcmVuZGVyIGFueXRoaW5nIGFuZCB3aWxsIHNraXAgaW5wdXQgdGVzdHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjdmlzaWJsZVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4xMC4wXHJcbiAgICAgICAgICovXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElzIHRoaXMgQ2FtZXJhIHVzaW5nIGEgYm91bmRzIHRvIHJlc3RyaWN0IHNjcm9sbGluZyBtb3ZlbWVudD9cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFNldCB0aGlzIHByb3BlcnR5IGFsb25nIHdpdGggdGhlIGJvdW5kcyB2aWEgYENhbWVyYS5zZXRCb3VuZHNgLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI3VzZUJvdW5kc1xyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy51c2VCb3VuZHMgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIFdvcmxkIFZpZXcgaXMgYSBSZWN0YW5nbGUgdGhhdCBkZWZpbmVzIHRoZSBhcmVhIG9mIHRoZSAnd29ybGQnIHRoZSBDYW1lcmEgaXMgY3VycmVudGx5IGxvb2tpbmcgYXQuXHJcbiAgICAgICAgICogVGhpcyBmYWN0b3JzIGluIHRoZSBDYW1lcmEgdmlld3BvcnQgc2l6ZSwgem9vbSBhbmQgc2Nyb2xsIHBvc2l0aW9uIGFuZCBpcyB1cGRhdGVkIGluIHRoZSBDYW1lcmEgcHJlUmVuZGVyIHN0ZXAuXHJcbiAgICAgICAgICogSWYgeW91IGhhdmUgZW5hYmxlZCBDYW1lcmEgYm91bmRzIHRoZSB3b3JsZHZpZXcgd2lsbCBiZSBjbGFtcGVkIHRvIHRob3NlIGJvdW5kcyBhY2NvcmRpbmdseS5cclxuICAgICAgICAgKiBZb3UgY2FuIHVzZSBpdCBmb3IgY3VsbGluZyBvciBpbnRlcnNlY3Rpb24gY2hlY2tzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI3dvcmxkVmlld1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2VvbS5SZWN0YW5nbGV9XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMud29ybGRWaWV3ID0gbmV3IFJlY3RhbmdsZSgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJcyB0aGlzIENhbWVyYSBkaXJ0eT9cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBBIGRpcnR5IENhbWVyYSBoYXMgaGFkIGVpdGhlciBpdHMgdmlld3BvcnQgc2l6ZSwgYm91bmRzLCBzY3JvbGwsIHJvdGF0aW9uIG9yIHpvb20gbGV2ZWxzIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgZnJhbWUuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogVGhpcyBmbGFnIGlzIGNsZWFyZWQgZHVyaW5nIHRoZSBgcG9zdFJlbmRlckNhbWVyYWAgbWV0aG9kIG9mIHRoZSByZW5kZXJlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNkaXJ0eVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB4IHBvc2l0aW9uIG9mIHRoZSBDYW1lcmEgdmlld3BvcnQsIHJlbGF0aXZlIHRvIHRoZSB0b3AtbGVmdCBvZiB0aGUgZ2FtZSBjYW52YXMuXHJcbiAgICAgICAgICogVGhlIHZpZXdwb3J0IGlzIHRoZSBhcmVhIGludG8gd2hpY2ggdGhlIGNhbWVyYSByZW5kZXJzLlxyXG4gICAgICAgICAqIFRvIGFkanVzdCB0aGUgcG9zaXRpb24gdGhlIGNhbWVyYSBpcyBsb29raW5nIGF0IGluIHRoZSBnYW1lIHdvcmxkLCBzZWUgdGhlIGBzY3JvbGxYYCB2YWx1ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSN4XHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3ggPSB4O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgeSBwb3NpdGlvbiBvZiB0aGUgQ2FtZXJhLCByZWxhdGl2ZSB0byB0aGUgdG9wLWxlZnQgb2YgdGhlIGdhbWUgY2FudmFzLlxyXG4gICAgICAgICAqIFRoZSB2aWV3cG9ydCBpcyB0aGUgYXJlYSBpbnRvIHdoaWNoIHRoZSBjYW1lcmEgcmVuZGVycy5cclxuICAgICAgICAgKiBUbyBhZGp1c3QgdGhlIHBvc2l0aW9uIHRoZSBjYW1lcmEgaXMgbG9va2luZyBhdCBpbiB0aGUgZ2FtZSB3b3JsZCwgc2VlIHRoZSBgc2Nyb2xsWWAgdmFsdWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjeVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl95ID0geTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW50ZXJuYWwgQ2FtZXJhIFggdmFsdWUgbXVsdGlwbGllZCBieSB0aGUgcmVzb2x1dGlvbi5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNfY3hcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTIuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2N4ID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW50ZXJuYWwgQ2FtZXJhIFkgdmFsdWUgbXVsdGlwbGllZCBieSB0aGUgcmVzb2x1dGlvbi5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNfY3lcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTIuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2N5ID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW50ZXJuYWwgQ2FtZXJhIFdpZHRoIHZhbHVlIG11bHRpcGxpZWQgYnkgdGhlIHJlc29sdXRpb24uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjX2N3XHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9jdyA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEludGVybmFsIENhbWVyYSBIZWlnaHQgdmFsdWUgbXVsdGlwbGllZCBieSB0aGUgcmVzb2x1dGlvbi5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNfY2hcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTIuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2NoID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHdpZHRoIG9mIHRoZSBDYW1lcmEgdmlld3BvcnQsIGluIHBpeGVscy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoZSB2aWV3cG9ydCBpcyB0aGUgYXJlYSBpbnRvIHdoaWNoIHRoZSBDYW1lcmEgcmVuZGVycy4gU2V0dGluZyB0aGUgdmlld3BvcnQgZG9lc1xyXG4gICAgICAgICAqIG5vdCByZXN0cmljdCB3aGVyZSB0aGUgQ2FtZXJhIGNhbiBzY3JvbGwgdG8uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjX3dpZHRoXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl93aWR0aCA9IHdpZHRoO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaGVpZ2h0IG9mIHRoZSBDYW1lcmEgdmlld3BvcnQsIGluIHBpeGVscy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoZSB2aWV3cG9ydCBpcyB0aGUgYXJlYSBpbnRvIHdoaWNoIHRoZSBDYW1lcmEgcmVuZGVycy4gU2V0dGluZyB0aGUgdmlld3BvcnQgZG9lc1xyXG4gICAgICAgICAqIG5vdCByZXN0cmljdCB3aGVyZSB0aGUgQ2FtZXJhIGNhbiBzY3JvbGwgdG8uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjX2hlaWdodFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgYm91bmRzIHRoZSBjYW1lcmEgaXMgcmVzdHJhaW5lZCB0byBkdXJpbmcgc2Nyb2xsaW5nLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI19ib3VuZHNcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdlb20uUmVjdGFuZ2xlfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fYm91bmRzID0gbmV3IFJlY3RhbmdsZSgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaG9yaXpvbnRhbCBzY3JvbGwgcG9zaXRpb24gb2YgdGhpcyBDYW1lcmEuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBDaGFuZ2UgdGhpcyB2YWx1ZSB0byBjYXVzZSB0aGUgQ2FtZXJhIHRvIHNjcm9sbCBhcm91bmQgeW91ciBTY2VuZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEFsdGVybmF0aXZlbHksIHNldHRpbmcgdGhlIENhbWVyYSB0byBmb2xsb3cgYSBHYW1lIE9iamVjdCwgdmlhIHRoZSBgc3RhcnRGb2xsb3dgIG1ldGhvZCxcclxuICAgICAgICAgKiB3aWxsIGF1dG9tYXRpY2FsbHkgYWRqdXN0IHRoZSBDYW1lcmEgc2Nyb2xsIHZhbHVlcyBhY2NvcmRpbmdseS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFlvdSBjYW4gc2V0IHRoZSBib3VuZHMgd2l0aGluIHdoaWNoIHRoZSBDYW1lcmEgY2FuIHNjcm9sbCB2aWEgdGhlIGBzZXRCb3VuZHNgIG1ldGhvZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNfc2Nyb2xsWFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3Njcm9sbFggPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdmVydGljYWwgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoaXMgQ2FtZXJhLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQ2hhbmdlIHRoaXMgdmFsdWUgdG8gY2F1c2UgdGhlIENhbWVyYSB0byBzY3JvbGwgYXJvdW5kIHlvdXIgU2NlbmUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBBbHRlcm5hdGl2ZWx5LCBzZXR0aW5nIHRoZSBDYW1lcmEgdG8gZm9sbG93IGEgR2FtZSBPYmplY3QsIHZpYSB0aGUgYHN0YXJ0Rm9sbG93YCBtZXRob2QsXHJcbiAgICAgICAgICogd2lsbCBhdXRvbWF0aWNhbGx5IGFkanVzdCB0aGUgQ2FtZXJhIHNjcm9sbCB2YWx1ZXMgYWNjb3JkaW5nbHkuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBZb3UgY2FuIHNldCB0aGUgYm91bmRzIHdpdGhpbiB3aGljaCB0aGUgQ2FtZXJhIGNhbiBzY3JvbGwgdmlhIHRoZSBgc2V0Qm91bmRzYCBtZXRob2QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjX3Njcm9sbFlcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9zY3JvbGxZID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIENhbWVyYSB6b29tIHZhbHVlLiBDaGFuZ2UgdGhpcyB2YWx1ZSB0byB6b29tIGluLCBvciBvdXQgb2YsIGEgU2NlbmUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBBIHZhbHVlIG9mIDAuNSB3b3VsZCB6b29tIHRoZSBDYW1lcmEgb3V0LCBzbyB5b3UgY2FuIG5vdyBzZWUgdHdpY2UgYXMgbXVjaFxyXG4gICAgICAgICAqIG9mIHRoZSBTY2VuZSBhcyBiZWZvcmUuIEEgdmFsdWUgb2YgMiB3b3VsZCB6b29tIHRoZSBDYW1lcmEgaW4sIHNvIGV2ZXJ5IHBpeGVsXHJcbiAgICAgICAgICogbm93IHRha2VzIHVwIDIgcGl4ZWxzIHdoZW4gcmVuZGVyZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBTZXQgdG8gMSB0byByZXR1cm4gdG8gdGhlIGRlZmF1bHQgem9vbSBsZXZlbC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEJlIGNhcmVmdWwgdG8gbmV2ZXIgc2V0IHRoaXMgdmFsdWUgdG8gemVyby5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNfem9vbVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAxXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3pvb20gPSAxO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgcm90YXRpb24gb2YgdGhlIENhbWVyYSBpbiByYWRpYW5zLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQ2FtZXJhIHJvdGF0aW9uIGFsd2F5cyB0YWtlcyBwbGFjZSBiYXNlZCBvbiB0aGUgQ2FtZXJhIHZpZXdwb3J0LiBCeSBkZWZhdWx0LCByb3RhdGlvbiBoYXBwZW5zXHJcbiAgICAgICAgICogaW4gdGhlIGNlbnRlciBvZiB0aGUgdmlld3BvcnQuIFlvdSBjYW4gYWRqdXN0IHRoaXMgd2l0aCB0aGUgYG9yaWdpblhgIGFuZCBgb3JpZ2luWWAgcHJvcGVydGllcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFJvdGF0aW9uIGluZmx1ZW5jZXMgdGhlIHJlbmRlcmluZyBvZiBfYWxsXyBHYW1lIE9iamVjdHMgdmlzaWJsZSBieSB0aGlzIENhbWVyYS4gSG93ZXZlciwgaXQgZG9lcyBub3RcclxuICAgICAgICAgKiByb3RhdGUgdGhlIENhbWVyYSB2aWV3cG9ydCBpdHNlbGYsIHdoaWNoIGFsd2F5cyByZW1haW5zIGFuIGF4aXMtYWxpZ25lZCByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjX3JvdGF0aW9uXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fcm90YXRpb24gPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIGxvY2FsIHRyYW5zZm9ybSBtYXRyaXggdXNlZCBmb3IgaW50ZXJuYWwgY2FsY3VsYXRpb25zLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI21hdHJpeFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1hdHJpeCA9IG5ldyBUcmFuc2Zvcm1NYXRyaXgoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogRG9lcyB0aGlzIENhbWVyYSBoYXZlIGEgdHJhbnNwYXJlbnQgYmFja2dyb3VuZD9cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSN0cmFuc3BhcmVudFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnRyYW5zcGFyZW50ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhpcyBDYW1lcmEuIE9ubHkgdXNlZCBpZiBgdHJhbnNwYXJlbnRgIGlzIGBmYWxzZWAuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjYmFja2dyb3VuZENvbG9yXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5EaXNwbGF5LkNvbG9yfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYmFja2dyb3VuZENvbG9yID0gVmFsdWVUb0NvbG9yKCdyZ2JhKDAsMCwwLDApJyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBDYW1lcmEgYWxwaGEgdmFsdWUuIFNldHRpbmcgdGhpcyBwcm9wZXJ0eSBpbXBhY3RzIGV2ZXJ5IHNpbmdsZSBvYmplY3QgdGhhdCB0aGlzIENhbWVyYVxyXG4gICAgICAgICAqIHJlbmRlcnMuIFlvdSBjYW4gZWl0aGVyIHNldCB0aGUgcHJvcGVydHkgZGlyZWN0bHksIGkuZS4gdmlhIGEgVHdlZW4sIHRvIGZhZGUgYSBDYW1lcmEgaW4gb3Igb3V0LFxyXG4gICAgICAgICAqIG9yIHZpYSB0aGUgY2hhaW5hYmxlIGBzZXRBbHBoYWAgbWV0aG9kIGluc3RlYWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjYWxwaGFcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFNob3VsZCB0aGUgY2FtZXJhIGN1bGwgR2FtZSBPYmplY3RzIGJlZm9yZSBjaGVja2luZyB0aGVtIGZvciBpbnB1dCBoaXQgdGVzdHM/XHJcbiAgICAgICAgICogSW4gc29tZSBzcGVjaWFsIGNhc2VzIGl0IG1heSBiZSBiZW5lZmljaWFsIHRvIGRpc2FibGUgdGhpcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNkaXNhYmxlQ3VsbFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kaXNhYmxlQ3VsbCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHRlbXBvcmFyeSBhcnJheSBvZiBjdWxsZWQgb2JqZWN0cy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNjdWxsZWRPYmplY3RzXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119XHJcbiAgICAgICAgICogQGRlZmF1bHQgW11cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY3VsbGVkT2JqZWN0cyA9IFtdO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbWlkLXBvaW50IG9mIHRoZSBDYW1lcmEgaW4gJ3dvcmxkJyBjb29yZGluYXRlcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFVzZSBpdCB0byBvYnRhaW4gZXhhY3RseSB3aGVyZSBpbiB0aGUgd29ybGQgdGhlIGNlbnRlciBvZiB0aGUgY2FtZXJhIGlzIGN1cnJlbnRseSBsb29raW5nLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogVGhpcyB2YWx1ZSBpcyB1cGRhdGVkIGluIHRoZSBwcmVSZW5kZXIgbWV0aG9kLCBhZnRlciB0aGUgc2Nyb2xsIHZhbHVlcyBhbmQgZm9sbG93ZXJcclxuICAgICAgICAgKiBoYXZlIGJlZW4gcHJvY2Vzc2VkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI21pZFBvaW50XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubWlkUG9pbnQgPSBuZXcgVmVjdG9yMih3aWR0aCAvIDIsIGhlaWdodCAvIDIpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaG9yaXpvbnRhbCBvcmlnaW4gb2Ygcm90YXRpb24gZm9yIHRoaXMgQ2FtZXJhLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQnkgZGVmYXVsdCB0aGUgY2FtZXJhIHJvdGF0ZXMgYXJvdW5kIHRoZSBjZW50ZXIgb2YgdGhlIHZpZXdwb3J0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQ2hhbmdpbmcgdGhlIG9yaWdpbiBhbGxvd3MgeW91IHRvIGFkanVzdCB0aGUgcG9pbnQgaW4gdGhlIHZpZXdwb3J0IGZyb20gd2hpY2ggcm90YXRpb24gaGFwcGVucy5cclxuICAgICAgICAgKiBBIHZhbHVlIG9mIDAgd291bGQgcm90YXRlIGZyb20gdGhlIHRvcC1sZWZ0IG9mIHRoZSB2aWV3cG9ydC4gQSB2YWx1ZSBvZiAxIGZyb20gdGhlIGJvdHRvbSByaWdodC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFNlZSBgc2V0T3JpZ2luYCB0byBzZXQgYm90aCBvcmlnaW5zIGluIGEgc2luZ2xlLCBjaGFpbmFibGUgY2FsbC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNvcmlnaW5YXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwLjVcclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5vcmlnaW5YID0gMC41O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdmVydGljYWwgb3JpZ2luIG9mIHJvdGF0aW9uIGZvciB0aGlzIENhbWVyYS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEJ5IGRlZmF1bHQgdGhlIGNhbWVyYSByb3RhdGVzIGFyb3VuZCB0aGUgY2VudGVyIG9mIHRoZSB2aWV3cG9ydC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIENoYW5naW5nIHRoZSBvcmlnaW4gYWxsb3dzIHlvdSB0byBhZGp1c3QgdGhlIHBvaW50IGluIHRoZSB2aWV3cG9ydCBmcm9tIHdoaWNoIHJvdGF0aW9uIGhhcHBlbnMuXHJcbiAgICAgICAgICogQSB2YWx1ZSBvZiAwIHdvdWxkIHJvdGF0ZSBmcm9tIHRoZSB0b3AtbGVmdCBvZiB0aGUgdmlld3BvcnQuIEEgdmFsdWUgb2YgMSBmcm9tIHRoZSBib3R0b20gcmlnaHQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBTZWUgYHNldE9yaWdpbmAgdG8gc2V0IGJvdGggb3JpZ2lucyBpbiBhIHNpbmdsZSwgY2hhaW5hYmxlIGNhbGwuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjb3JpZ2luWVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMC41XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMub3JpZ2luWSA9IDAuNTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogRG9lcyB0aGlzIENhbWVyYSBoYXZlIGEgY3VzdG9tIHZpZXdwb3J0P1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI19jdXN0b21WaWV3cG9ydFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fY3VzdG9tVmlld3BvcnQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIE1hc2sgdGhpcyBDYW1lcmEgaXMgdXNpbmcgZHVyaW5nIHJlbmRlci5cclxuICAgICAgICAgKiBTZXQgdGhlIG1hc2sgdXNpbmcgdGhlIGBzZXRNYXNrYCBtZXRob2QuIFJlbW92ZSB0aGUgbWFzayB1c2luZyB0aGUgYGNsZWFyTWFza2AgbWV0aG9kLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI21hc2tcclxuICAgICAgICAgKiBAdHlwZSB7PyhQaGFzZXIuRGlzcGxheS5NYXNrcy5CaXRtYXBNYXNrfFBoYXNlci5EaXNwbGF5Lk1hc2tzLkdlb21ldHJ5TWFzayl9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubWFzayA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBDYW1lcmEgdGhhdCB0aGlzIENhbWVyYSB1c2VzIGZvciB0cmFuc2xhdGlvbiBkdXJpbmcgbWFza2luZy5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBJZiB0aGUgbWFzayBpcyBmaXhlZCBpbiBwb3NpdGlvbiB0aGlzIHdpbGwgYmUgYSByZWZlcmVuY2UgdG9cclxuICAgICAgICAgKiB0aGUgQ2FtZXJhTWFuYWdlci5kZWZhdWx0IGluc3RhbmNlLiBPdGhlcndpc2UsIGl0J2xsIGJlIGEgcmVmZXJlbmNlXHJcbiAgICAgICAgICogdG8gaXRzZWxmLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI19tYXNrQ2FtZXJhXHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmF9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fbWFza0NhbWVyYSA9IG51bGw7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBBbHBoYSBsZXZlbCBvZiB0aGlzIENhbWVyYS4gVGhlIGFscGhhIGNvbnRyb2xzIHRoZSBvcGFjaXR5IG9mIHRoZSBDYW1lcmEgYXMgaXQgcmVuZGVycy5cclxuICAgICAqIEFscGhhIHZhbHVlcyBhcmUgcHJvdmlkZWQgYXMgYSBmbG9hdCBiZXR3ZWVuIDAsIGZ1bGx5IHRyYW5zcGFyZW50LCBhbmQgMSwgZnVsbHkgb3BhcXVlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI3NldEFscGhhXHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt2YWx1ZT0xXSAtIFRoZSBDYW1lcmEgYWxwaGEgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHJvdGF0aW9uIG9yaWdpbiBvZiB0aGlzIENhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgdmFsdWVzIGFyZSBnaXZlbiBpbiB0aGUgcmFuZ2UgMCB0byAxIGFuZCBhcmUgb25seSB1c2VkIHdoZW4gY2FsY3VsYXRpbmcgQ2FtZXJhIHJvdGF0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEJ5IGRlZmF1bHQgdGhlIGNhbWVyYSByb3RhdGVzIGFyb3VuZCB0aGUgY2VudGVyIG9mIHRoZSB2aWV3cG9ydC5cclxuICAgICAqXHJcbiAgICAgKiBDaGFuZ2luZyB0aGUgb3JpZ2luIGFsbG93cyB5b3UgdG8gYWRqdXN0IHRoZSBwb2ludCBpbiB0aGUgdmlld3BvcnQgZnJvbSB3aGljaCByb3RhdGlvbiBoYXBwZW5zLlxyXG4gICAgICogQSB2YWx1ZSBvZiAwIHdvdWxkIHJvdGF0ZSBmcm9tIHRoZSB0b3AtbGVmdCBvZiB0aGUgdmlld3BvcnQuIEEgdmFsdWUgb2YgMSBmcm9tIHRoZSBib3R0b20gcmlnaHQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjc2V0T3JpZ2luXHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4PTAuNV0gLSBUaGUgaG9yaXpvbnRhbCBvcmlnaW4gdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3k9eF0gLSBUaGUgdmVydGljYWwgb3JpZ2luIHZhbHVlLiBJZiBub3QgZGVmaW5lZCBpdCB3aWxsIGJlIHNldCB0byB0aGUgdmFsdWUgb2YgYHhgLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRPcmlnaW46IGZ1bmN0aW9uICh4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHsgeCA9IDAuNTsgfVxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IHg7IH1cclxuXHJcbiAgICAgICAgdGhpcy5vcmlnaW5YID0geDtcclxuICAgICAgICB0aGlzLm9yaWdpblkgPSB5O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHdoYXQgdGhlIENhbWVyYS5zY3JvbGxYIGFuZCBzY3JvbGxZIHZhbHVlcyB3b3VsZCBuZWVkIHRvIGJlIGluIG9yZGVyIHRvIG1vdmVcclxuICAgICAqIHRoZSBDYW1lcmEgc28gaXQgaXMgY2VudGVyZWQgb24gdGhlIGdpdmVuIHggYW5kIHkgY29vcmRpbmF0ZXMsIHdpdGhvdXQgYWN0dWFsbHkgbW92aW5nXHJcbiAgICAgKiB0aGUgQ2FtZXJhIHRoZXJlLiBUaGUgcmVzdWx0cyBhcmUgY2xhbXBlZCBiYXNlZCBvbiB0aGUgQ2FtZXJhIGJvdW5kcywgaWYgc2V0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI2dldFNjcm9sbFxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGhvcml6b250YWwgY29vcmRpbmF0ZSB0byBjZW50ZXIgb24uXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB2ZXJ0aWNhbCBjb29yZGluYXRlIHRvIGNlbnRlciBvbi5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLk1hdGguVmVjdG9yMn0gW291dF0gLSBBIFZlY3RvcjIgdG8gc3RvcmUgdGhlIHZhbHVlcyBpbi4gSWYgbm90IGdpdmVuIGEgbmV3IFZlY3RvcjIgaXMgY3JlYXRlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBUaGUgc2Nyb2xsIGNvb3JkaW5hdGVzIHN0b3JlZCBpbiB0aGUgYHhgIGFuZCBgeWAgcHJvcGVydGllcy5cclxuICAgICAqL1xyXG4gICAgZ2V0U2Nyb2xsOiBmdW5jdGlvbiAoeCwgeSwgb3V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZCkgeyBvdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIHZhciBvcmlnaW5YID0gdGhpcy53aWR0aCAqIDAuNTtcclxuICAgICAgICB2YXIgb3JpZ2luWSA9IHRoaXMuaGVpZ2h0ICogMC41O1xyXG5cclxuICAgICAgICBvdXQueCA9IHggLSBvcmlnaW5YO1xyXG4gICAgICAgIG91dC55ID0geSAtIG9yaWdpblk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnVzZUJvdW5kcylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG91dC54ID0gdGhpcy5jbGFtcFgob3V0LngpO1xyXG4gICAgICAgICAgICBvdXQueSA9IHRoaXMuY2xhbXBZKG91dC55KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvdXQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW92ZXMgdGhlIENhbWVyYSBob3Jpem9udGFsbHkgc28gdGhhdCBpdCBpcyBjZW50ZXJlZCBvbiB0aGUgZ2l2ZW4geCBjb29yZGluYXRlLCBib3VuZHMgYWxsb3dpbmcuXHJcbiAgICAgKiBDYWxsaW5nIHRoaXMgZG9lcyBub3QgY2hhbmdlIHRoZSBzY3JvbGxZIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI2NlbnRlck9uWFxyXG4gICAgICogQHNpbmNlIDMuMTYuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGhvcml6b250YWwgY29vcmRpbmF0ZSB0byBjZW50ZXIgb24uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGNlbnRlck9uWDogZnVuY3Rpb24gKHgpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIG9yaWdpblggPSB0aGlzLndpZHRoICogMC41O1xyXG5cclxuICAgICAgICB0aGlzLm1pZFBvaW50LnggPSB4O1xyXG5cclxuICAgICAgICB0aGlzLnNjcm9sbFggPSB4IC0gb3JpZ2luWDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudXNlQm91bmRzKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxYID0gdGhpcy5jbGFtcFgodGhpcy5zY3JvbGxYKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vdmVzIHRoZSBDYW1lcmEgdmVydGljYWxseSBzbyB0aGF0IGl0IGlzIGNlbnRlcmVkIG9uIHRoZSBnaXZlbiB5IGNvb3JkaW5hdGUsIGJvdW5kcyBhbGxvd2luZy5cclxuICAgICAqIENhbGxpbmcgdGhpcyBkb2VzIG5vdCBjaGFuZ2UgdGhlIHNjcm9sbFggdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjY2VudGVyT25ZXHJcbiAgICAgKiBAc2luY2UgMy4xNi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgY29vcmRpbmF0ZSB0byBjZW50ZXIgb24uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGNlbnRlck9uWTogZnVuY3Rpb24gKHkpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIG9yaWdpblkgPSB0aGlzLmhlaWdodCAqIDAuNTtcclxuXHJcbiAgICAgICAgdGhpcy5taWRQb2ludC55ID0geTtcclxuXHJcbiAgICAgICAgdGhpcy5zY3JvbGxZID0geSAtIG9yaWdpblk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnVzZUJvdW5kcylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsWSA9IHRoaXMuY2xhbXBZKHRoaXMuc2Nyb2xsWSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb3ZlcyB0aGUgQ2FtZXJhIHNvIHRoYXQgaXQgaXMgY2VudGVyZWQgb24gdGhlIGdpdmVuIGNvb3JkaW5hdGVzLCBib3VuZHMgYWxsb3dpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjY2VudGVyT25cclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBob3Jpem9udGFsIGNvb3JkaW5hdGUgdG8gY2VudGVyIG9uLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgY29vcmRpbmF0ZSB0byBjZW50ZXIgb24uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGNlbnRlck9uOiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNlbnRlck9uWCh4KTtcclxuICAgICAgICB0aGlzLmNlbnRlck9uWSh5KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW92ZXMgdGhlIENhbWVyYSBzbyB0aGF0IGl0IGlzIGxvb2tpbmcgYXQgdGhlIGNlbnRlciBvZiB0aGUgQ2FtZXJhIEJvdW5kcywgaWYgZW5hYmxlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNjZW50ZXJUb0JvdW5kc1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGNlbnRlclRvQm91bmRzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLnVzZUJvdW5kcylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBib3VuZHMgPSB0aGlzLl9ib3VuZHM7XHJcbiAgICAgICAgICAgIHZhciBvcmlnaW5YID0gdGhpcy53aWR0aCAqIDAuNTtcclxuICAgICAgICAgICAgdmFyIG9yaWdpblkgPSB0aGlzLmhlaWdodCAqIDAuNTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMubWlkUG9pbnQuc2V0KGJvdW5kcy5jZW50ZXJYLCBib3VuZHMuY2VudGVyWSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFggPSBib3VuZHMuY2VudGVyWCAtIG9yaWdpblg7XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsWSA9IGJvdW5kcy5jZW50ZXJZIC0gb3JpZ2luWTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vdmVzIHRoZSBDYW1lcmEgc28gdGhhdCBpdCBpcyByZS1jZW50ZXJlZCBiYXNlZCBvbiBpdHMgdmlld3BvcnQgc2l6ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNjZW50ZXJUb1NpemVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBjZW50ZXJUb1NpemU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxYID0gdGhpcy53aWR0aCAqIDAuNTtcclxuICAgICAgICB0aGlzLnNjcm9sbFkgPSB0aGlzLmhlaWdodCAqIDAuNTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGFrZXMgYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzIGFuZCByZXR1cm5zIGEgbmV3IGFycmF5IGZlYXR1cmluZyBvbmx5IHRob3NlIG9iamVjdHNcclxuICAgICAqIHZpc2libGUgYnkgdGhpcyBjYW1lcmEuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjY3VsbFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IEcgLSBbcmVuZGVyYWJsZU9iamVjdHMsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IHJlbmRlcmFibGVPYmplY3RzIC0gQW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRvIGN1bGwuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gQW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzIHZpc2libGUgdG8gdGhpcyBDYW1lcmEuXHJcbiAgICAgKi9cclxuICAgIGN1bGw6IGZ1bmN0aW9uIChyZW5kZXJhYmxlT2JqZWN0cylcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlQ3VsbClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiByZW5kZXJhYmxlT2JqZWN0cztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBjYW1lcmFNYXRyaXggPSB0aGlzLm1hdHJpeC5tYXRyaXg7XHJcblxyXG4gICAgICAgIHZhciBtdmEgPSBjYW1lcmFNYXRyaXhbMF07XHJcbiAgICAgICAgdmFyIG12YiA9IGNhbWVyYU1hdHJpeFsxXTtcclxuICAgICAgICB2YXIgbXZjID0gY2FtZXJhTWF0cml4WzJdO1xyXG4gICAgICAgIHZhciBtdmQgPSBjYW1lcmFNYXRyaXhbM107XHJcblxyXG4gICAgICAgIC8qIEZpcnN0IEludmVydCBNYXRyaXggKi9cclxuICAgICAgICB2YXIgZGV0ZXJtaW5hbnQgPSAobXZhICogbXZkKSAtIChtdmIgKiBtdmMpO1xyXG5cclxuICAgICAgICBpZiAoIWRldGVybWluYW50KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmFibGVPYmplY3RzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIG12ZSA9IGNhbWVyYU1hdHJpeFs0XTtcclxuICAgICAgICB2YXIgbXZmID0gY2FtZXJhTWF0cml4WzVdO1xyXG5cclxuICAgICAgICB2YXIgc2Nyb2xsWCA9IHRoaXMuc2Nyb2xsWDtcclxuICAgICAgICB2YXIgc2Nyb2xsWSA9IHRoaXMuc2Nyb2xsWTtcclxuICAgICAgICB2YXIgY2FtZXJhVyA9IHRoaXMud2lkdGg7XHJcbiAgICAgICAgdmFyIGNhbWVyYUggPSB0aGlzLmhlaWdodDtcclxuICAgICAgICB2YXIgY3VsbGVkT2JqZWN0cyA9IHRoaXMuY3VsbGVkT2JqZWN0cztcclxuICAgICAgICB2YXIgbGVuZ3RoID0gcmVuZGVyYWJsZU9iamVjdHMubGVuZ3RoO1xyXG5cclxuICAgICAgICBkZXRlcm1pbmFudCA9IDEgLyBkZXRlcm1pbmFudDtcclxuXHJcbiAgICAgICAgY3VsbGVkT2JqZWN0cy5sZW5ndGggPSAwO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIG9iamVjdCA9IHJlbmRlcmFibGVPYmplY3RzW2luZGV4XTtcclxuXHJcbiAgICAgICAgICAgIGlmICghb2JqZWN0Lmhhc093blByb3BlcnR5KCd3aWR0aCcpIHx8IG9iamVjdC5wYXJlbnRDb250YWluZXIpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGN1bGxlZE9iamVjdHMucHVzaChvYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHZhciBvYmplY3RXID0gb2JqZWN0LndpZHRoO1xyXG4gICAgICAgICAgICB2YXIgb2JqZWN0SCA9IG9iamVjdC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIHZhciBvYmplY3RYID0gKG9iamVjdC54IC0gKHNjcm9sbFggKiBvYmplY3Quc2Nyb2xsRmFjdG9yWCkpIC0gKG9iamVjdFcgKiBvYmplY3Qub3JpZ2luWCk7XHJcbiAgICAgICAgICAgIHZhciBvYmplY3RZID0gKG9iamVjdC55IC0gKHNjcm9sbFkgKiBvYmplY3Quc2Nyb2xsRmFjdG9yWSkpIC0gKG9iamVjdEggKiBvYmplY3Qub3JpZ2luWSk7XHJcbiAgICAgICAgICAgIHZhciB0eCA9IChvYmplY3RYICogbXZhICsgb2JqZWN0WSAqIG12YyArIG12ZSk7XHJcbiAgICAgICAgICAgIHZhciB0eSA9IChvYmplY3RYICogbXZiICsgb2JqZWN0WSAqIG12ZCArIG12Zik7XHJcbiAgICAgICAgICAgIHZhciB0dyA9ICgob2JqZWN0WCArIG9iamVjdFcpICogbXZhICsgKG9iamVjdFkgKyBvYmplY3RIKSAqIG12YyArIG12ZSk7XHJcbiAgICAgICAgICAgIHZhciB0aCA9ICgob2JqZWN0WCArIG9iamVjdFcpICogbXZiICsgKG9iamVjdFkgKyBvYmplY3RIKSAqIG12ZCArIG12Zik7XHJcbiAgICAgICAgICAgIHZhciBjdWxsVG9wID0gdGhpcy55O1xyXG4gICAgICAgICAgICB2YXIgY3VsbEJvdHRvbSA9IGN1bGxUb3AgKyBjYW1lcmFIO1xyXG4gICAgICAgICAgICB2YXIgY3VsbExlZnQgPSB0aGlzLng7XHJcbiAgICAgICAgICAgIHZhciBjdWxsUmlnaHQgPSBjdWxsTGVmdCArIGNhbWVyYVc7XHJcblxyXG4gICAgICAgICAgICBpZiAoKHR3ID4gY3VsbExlZnQgJiYgdHggPCBjdWxsUmlnaHQpICYmICh0aCA+IGN1bGxUb3AgJiYgdHkgPCBjdWxsQm90dG9tKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY3VsbGVkT2JqZWN0cy5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjdWxsZWRPYmplY3RzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnZlcnRzIHRoZSBnaXZlbiBgeGAgYW5kIGB5YCBjb29yZGluYXRlcyBpbnRvIFdvcmxkIHNwYWNlLCBiYXNlZCBvbiB0aGlzIENhbWVyYXMgdHJhbnNmb3JtLlxyXG4gICAgICogWW91IGNhbiBvcHRpb25hbGx5IHByb3ZpZGUgYSBWZWN0b3IyLCBvciBzaW1pbGFyIG9iamVjdCwgdG8gc3RvcmUgdGhlIHJlc3VsdHMgaW4uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjZ2V0V29ybGRQb2ludFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0cHV0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBwb3NpdGlvbiB0byBjb252ZXJ0IHRvIHdvcmxkIHNwYWNlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBwb3NpdGlvbiB0byBjb252ZXJ0IHRvIHdvcmxkIHNwYWNlLlxyXG4gICAgICogQHBhcmFtIHsob2JqZWN0fFBoYXNlci5NYXRoLlZlY3RvcjIpfSBbb3V0cHV0XSAtIEFuIG9wdGlvbmFsIG9iamVjdCB0byBzdG9yZSB0aGUgcmVzdWx0cyBpbi4gSWYgbm90IHByb3ZpZGVkIGEgbmV3IFZlY3RvcjIgd2lsbCBiZSBjcmVhdGVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IEFuIG9iamVjdCBob2xkaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzIGluIGl0cyBgeGAgYW5kIGB5YCBwcm9wZXJ0aWVzLlxyXG4gICAgICovXHJcbiAgICBnZXRXb3JsZFBvaW50OiBmdW5jdGlvbiAoeCwgeSwgb3V0cHV0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXRwdXQgPT09IHVuZGVmaW5lZCkgeyBvdXRwdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIHZhciBjYW1lcmFNYXRyaXggPSB0aGlzLm1hdHJpeC5tYXRyaXg7XHJcblxyXG4gICAgICAgIHZhciBtdmEgPSBjYW1lcmFNYXRyaXhbMF07XHJcbiAgICAgICAgdmFyIG12YiA9IGNhbWVyYU1hdHJpeFsxXTtcclxuICAgICAgICB2YXIgbXZjID0gY2FtZXJhTWF0cml4WzJdO1xyXG4gICAgICAgIHZhciBtdmQgPSBjYW1lcmFNYXRyaXhbM107XHJcbiAgICAgICAgdmFyIG12ZSA9IGNhbWVyYU1hdHJpeFs0XTtcclxuICAgICAgICB2YXIgbXZmID0gY2FtZXJhTWF0cml4WzVdO1xyXG5cclxuICAgICAgICAvLyAgSW52ZXJ0IE1hdHJpeFxyXG4gICAgICAgIHZhciBkZXRlcm1pbmFudCA9IChtdmEgKiBtdmQpIC0gKG12YiAqIG12Yyk7XHJcblxyXG4gICAgICAgIGlmICghZGV0ZXJtaW5hbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBvdXRwdXQueCA9IHg7XHJcbiAgICAgICAgICAgIG91dHB1dC55ID0geTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZXRlcm1pbmFudCA9IDEgLyBkZXRlcm1pbmFudDtcclxuXHJcbiAgICAgICAgdmFyIGltYSA9IG12ZCAqIGRldGVybWluYW50O1xyXG4gICAgICAgIHZhciBpbWIgPSAtbXZiICogZGV0ZXJtaW5hbnQ7XHJcbiAgICAgICAgdmFyIGltYyA9IC1tdmMgKiBkZXRlcm1pbmFudDtcclxuICAgICAgICB2YXIgaW1kID0gbXZhICogZGV0ZXJtaW5hbnQ7XHJcbiAgICAgICAgdmFyIGltZSA9IChtdmMgKiBtdmYgLSBtdmQgKiBtdmUpICogZGV0ZXJtaW5hbnQ7XHJcbiAgICAgICAgdmFyIGltZiA9IChtdmIgKiBtdmUgLSBtdmEgKiBtdmYpICogZGV0ZXJtaW5hbnQ7XHJcblxyXG4gICAgICAgIHZhciBjID0gTWF0aC5jb3ModGhpcy5yb3RhdGlvbik7XHJcbiAgICAgICAgdmFyIHMgPSBNYXRoLnNpbih0aGlzLnJvdGF0aW9uKTtcclxuXHJcbiAgICAgICAgdmFyIHpvb20gPSB0aGlzLnpvb207XHJcbiAgICAgICAgdmFyIHJlcyA9IHRoaXMucmVzb2x1dGlvbjtcclxuXHJcbiAgICAgICAgdmFyIHNjcm9sbFggPSB0aGlzLnNjcm9sbFg7XHJcbiAgICAgICAgdmFyIHNjcm9sbFkgPSB0aGlzLnNjcm9sbFk7XHJcblxyXG4gICAgICAgIC8vICBXb3JrcyBmb3Igem9vbSBvZiAxIHdpdGggYW55IHJlc29sdXRpb24sIGJ1dCByZXNvbHV0aW9uID4gMSBhbmQgem9vbSAhPT0gMSBicmVha3NcclxuICAgICAgICB2YXIgc3ggPSB4ICsgKChzY3JvbGxYICogYyAtIHNjcm9sbFkgKiBzKSAqIHpvb20pO1xyXG4gICAgICAgIHZhciBzeSA9IHkgKyAoKHNjcm9sbFggKiBzICsgc2Nyb2xsWSAqIGMpICogem9vbSk7XHJcblxyXG4gICAgICAgIC8vICBBcHBseSB0cmFuc2Zvcm0gdG8gcG9pbnRcclxuICAgICAgICBvdXRwdXQueCA9IChzeCAqIGltYSArIHN5ICogaW1jKSAqIHJlcyArIGltZTtcclxuICAgICAgICBvdXRwdXQueSA9IChzeCAqIGltYiArIHN5ICogaW1kKSAqIHJlcyArIGltZjtcclxuXHJcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHaXZlbiBhIEdhbWUgT2JqZWN0LCBvciBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMsIGl0IHdpbGwgdXBkYXRlIGFsbCBvZiB0aGVpciBjYW1lcmEgZmlsdGVyIHNldHRpbmdzXHJcbiAgICAgKiBzbyB0aGF0IHRoZXkgYXJlIGlnbm9yZWQgYnkgdGhpcyBDYW1lcmEuIFRoaXMgbWVhbnMgdGhleSB3aWxsIG5vdCBiZSByZW5kZXJlZCBieSB0aGlzIENhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNpZ25vcmVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W118UGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwKX0gZW50cmllcyAtIFRoZSBHYW1lIE9iamVjdCwgb3IgYXJyYXkgb2YgR2FtZSBPYmplY3RzLCB0byBiZSBpZ25vcmVkIGJ5IHRoaXMgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBpZ25vcmU6IGZ1bmN0aW9uIChlbnRyaWVzKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBpZCA9IHRoaXMuaWQ7XHJcblxyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShlbnRyaWVzKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGVudHJpZXMgPSBbIGVudHJpZXMgXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW50cmllcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBlbnRyeSA9IGVudHJpZXNbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShlbnRyeSkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaWdub3JlKGVudHJ5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChlbnRyeS5pc1BhcmVudClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pZ25vcmUoZW50cnkuZ2V0Q2hpbGRyZW4oKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBlbnRyeS5jYW1lcmFGaWx0ZXIgfD0gaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIHByZVJlbmRlciBzdGVwLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI3ByZVJlbmRlclxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHJlc29sdXRpb24gLSBUaGUgZ2FtZSByZXNvbHV0aW9uLCBhcyBzZXQgaW4gdGhlIFNjYWxlIE1hbmFnZXIuXHJcbiAgICAgKi9cclxuICAgIHByZVJlbmRlcjogZnVuY3Rpb24gKHJlc29sdXRpb24pXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHdpZHRoID0gdGhpcy53aWR0aDtcclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdGhpcy5oZWlnaHQ7XHJcblxyXG4gICAgICAgIHZhciBoYWxmV2lkdGggPSB3aWR0aCAqIDAuNTtcclxuICAgICAgICB2YXIgaGFsZkhlaWdodCA9IGhlaWdodCAqIDAuNTtcclxuXHJcbiAgICAgICAgdmFyIHpvb20gPSB0aGlzLnpvb20gKiByZXNvbHV0aW9uO1xyXG4gICAgICAgIHZhciBtYXRyaXggPSB0aGlzLm1hdHJpeDtcclxuXHJcbiAgICAgICAgdmFyIG9yaWdpblggPSB3aWR0aCAqIHRoaXMub3JpZ2luWDtcclxuICAgICAgICB2YXIgb3JpZ2luWSA9IGhlaWdodCAqIHRoaXMub3JpZ2luWTtcclxuXHJcbiAgICAgICAgdmFyIHN4ID0gdGhpcy5zY3JvbGxYO1xyXG4gICAgICAgIHZhciBzeSA9IHRoaXMuc2Nyb2xsWTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudXNlQm91bmRzKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgc3ggPSB0aGlzLmNsYW1wWChzeCk7XHJcbiAgICAgICAgICAgIHN5ID0gdGhpcy5jbGFtcFkoc3kpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMucm91bmRQaXhlbHMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBvcmlnaW5YID0gTWF0aC5yb3VuZChvcmlnaW5YKTtcclxuICAgICAgICAgICAgb3JpZ2luWSA9IE1hdGgucm91bmQob3JpZ2luWSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgVmFsdWVzIGFyZSBpbiBwaXhlbHMgYW5kIG5vdCBpbXBhY3RlZCBieSB6b29taW5nIHRoZSBDYW1lcmFcclxuICAgICAgICB0aGlzLnNjcm9sbFggPSBzeDtcclxuICAgICAgICB0aGlzLnNjcm9sbFkgPSBzeTtcclxuXHJcbiAgICAgICAgdmFyIG1pZFggPSBzeCArIGhhbGZXaWR0aDtcclxuICAgICAgICB2YXIgbWlkWSA9IHN5ICsgaGFsZkhlaWdodDtcclxuXHJcbiAgICAgICAgLy8gIFRoZSBjZW50ZXIgb2YgdGhlIGNhbWVyYSwgaW4gd29ybGQgc3BhY2UsIHNvIHRha2luZyB6b29tIGludG8gYWNjb3VudFxyXG4gICAgICAgIC8vICBCYXNpY2FsbHkgdGhlIHBpeGVsIHZhbHVlIG9mIHdoYXQgaXQncyBsb29raW5nIGF0IGluIHRoZSBtaWRkbGUgb2YgdGhlIGNhbVxyXG4gICAgICAgIHRoaXMubWlkUG9pbnQuc2V0KG1pZFgsIG1pZFkpO1xyXG5cclxuICAgICAgICB2YXIgZGlzcGxheVdpZHRoID0gd2lkdGggLyB6b29tO1xyXG4gICAgICAgIHZhciBkaXNwbGF5SGVpZ2h0ID0gaGVpZ2h0IC8gem9vbTtcclxuXHJcbiAgICAgICAgdGhpcy53b3JsZFZpZXcuc2V0VG8oXHJcbiAgICAgICAgICAgIG1pZFggLSAoZGlzcGxheVdpZHRoIC8gMiksXHJcbiAgICAgICAgICAgIG1pZFkgLSAoZGlzcGxheUhlaWdodCAvIDIpLFxyXG4gICAgICAgICAgICBkaXNwbGF5V2lkdGgsXHJcbiAgICAgICAgICAgIGRpc3BsYXlIZWlnaHRcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBtYXRyaXguYXBwbHlJVFJTKHRoaXMueCArIG9yaWdpblgsIHRoaXMueSArIG9yaWdpblksIHRoaXMucm90YXRpb24sIHpvb20sIHpvb20pO1xyXG4gICAgICAgIG1hdHJpeC50cmFuc2xhdGUoLW9yaWdpblgsIC1vcmlnaW5ZKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUYWtlcyBhbiB4IHZhbHVlIGFuZCBjaGVja3MgaXQncyB3aXRoaW4gdGhlIHJhbmdlIG9mIHRoZSBDYW1lcmEgYm91bmRzLCBhZGp1c3RpbmcgaWYgcmVxdWlyZWQuXHJcbiAgICAgKiBEbyBub3QgY2FsbCB0aGlzIG1ldGhvZCBpZiB5b3UgYXJlIG5vdCB1c2luZyBjYW1lcmEgYm91bmRzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI2NsYW1wWFxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHZhbHVlIHRvIGhvcml6b250YWxseSBzY3JvbGwgY2xhbXAuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgYWRqdXN0ZWQgdmFsdWUgdG8gdXNlIGFzIHNjcm9sbFguXHJcbiAgICAgKi9cclxuICAgIGNsYW1wWDogZnVuY3Rpb24gKHgpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuX2JvdW5kcztcclxuXHJcbiAgICAgICAgdmFyIGR3ID0gdGhpcy5kaXNwbGF5V2lkdGg7XHJcblxyXG4gICAgICAgIHZhciBieCA9IGJvdW5kcy54ICsgKChkdyAtIHRoaXMud2lkdGgpIC8gMik7XHJcbiAgICAgICAgdmFyIGJ3ID0gTWF0aC5tYXgoYngsIGJ4ICsgYm91bmRzLndpZHRoIC0gZHcpO1xyXG5cclxuICAgICAgICBpZiAoeCA8IGJ4KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgeCA9IGJ4O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh4ID4gYncpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB4ID0gYnc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4geDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUYWtlcyBhIHkgdmFsdWUgYW5kIGNoZWNrcyBpdCdzIHdpdGhpbiB0aGUgcmFuZ2Ugb2YgdGhlIENhbWVyYSBib3VuZHMsIGFkanVzdGluZyBpZiByZXF1aXJlZC5cclxuICAgICAqIERvIG5vdCBjYWxsIHRoaXMgbWV0aG9kIGlmIHlvdSBhcmUgbm90IHVzaW5nIGNhbWVyYSBib3VuZHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjY2xhbXBZXHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmFsdWUgdG8gdmVydGljYWxseSBzY3JvbGwgY2xhbXAuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgYWRqdXN0ZWQgdmFsdWUgdG8gdXNlIGFzIHNjcm9sbFkuXHJcbiAgICAgKi9cclxuICAgIGNsYW1wWTogZnVuY3Rpb24gKHkpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGJvdW5kcyA9IHRoaXMuX2JvdW5kcztcclxuXHJcbiAgICAgICAgdmFyIGRoID0gdGhpcy5kaXNwbGF5SGVpZ2h0O1xyXG5cclxuICAgICAgICB2YXIgYnkgPSBib3VuZHMueSArICgoZGggLSB0aGlzLmhlaWdodCkgLyAyKTtcclxuICAgICAgICB2YXIgYmggPSBNYXRoLm1heChieSwgYnkgKyBib3VuZHMuaGVpZ2h0IC0gZGgpO1xyXG5cclxuICAgICAgICBpZiAoeSA8IGJ5KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgeSA9IGJ5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh5ID4gYmgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB5ID0gYmg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4geTtcclxuICAgIH0sXHJcblxyXG4gICAgLypcclxuICAgICAgICB2YXIgZ2FwID0gdGhpcy5fem9vbUludmVyc2VkO1xyXG4gICAgICAgIHJldHVybiBnYXAgKiBNYXRoLnJvdW5kKChzcmMueCAtIHRoaXMuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYKSAvIGdhcCk7XHJcbiAgICAqL1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhpcyBDYW1lcmEgaGFzIHByZXZpb3VzbHkgaGFkIG1vdmVtZW50IGJvdW5kcyBzZXQgb24gaXQsIHRoaXMgd2lsbCByZW1vdmUgdGhlbS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNyZW1vdmVCb3VuZHNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICByZW1vdmVCb3VuZHM6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy51c2VCb3VuZHMgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuX2JvdW5kcy5zZXRFbXB0eSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIHJvdGF0aW9uIG9mIHRoaXMgQ2FtZXJhLiBUaGlzIGNhdXNlcyBldmVyeXRoaW5nIGl0IHJlbmRlcnMgdG8gYXBwZWFyIHJvdGF0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogUm90YXRpbmcgYSBjYW1lcmEgZG9lcyBub3Qgcm90YXRlIHRoZSB2aWV3cG9ydCBpdHNlbGYsIGl0IGlzIGFwcGxpZWQgZHVyaW5nIHJlbmRlcmluZy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNzZXRBbmdsZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt2YWx1ZT0wXSAtIFRoZSBjYW1lcmFzIGFuZ2xlIG9mIHJvdGF0aW9uLCBnaXZlbiBpbiBkZWdyZWVzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRBbmdsZTogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7IHZhbHVlID0gMDsgfVxyXG5cclxuICAgICAgICB0aGlzLnJvdGF0aW9uID0gRGVnVG9SYWQodmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGlzIENhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBCeSBkZWZhdWx0IGEgQ2FtZXJhIGhhcyBhIHRyYW5zcGFyZW50IGJhY2tncm91bmQgYnV0IGl0IGNhbiBiZSBnaXZlbiBhIHNvbGlkIGNvbG9yLCB3aXRoIGFueSBsZXZlbFxyXG4gICAgICogb2YgdHJhbnNwYXJlbmN5LCB2aWEgdGhpcyBtZXRob2QuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIGNvbG9yIHZhbHVlIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgQ1NTIGNvbG9yIG5vdGF0aW9uLCBoZXggb3IgbnVtYmVycy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNzZXRCYWNrZ3JvdW5kQ29sb3JcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xudW1iZXJ8UGhhc2VyLlR5cGVzLkRpc3BsYXkuSW5wdXRDb2xvck9iamVjdCl9IFtjb2xvcj0ncmdiYSgwLDAsMCwwKSddIC0gVGhlIGNvbG9yIHZhbHVlLiBJbiBDU1MsIGhleCBvciBudW1lcmljIGNvbG9yIG5vdGF0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRCYWNrZ3JvdW5kQ29sb3I6IGZ1bmN0aW9uIChjb2xvcilcclxuICAgIHtcclxuICAgICAgICBpZiAoY29sb3IgPT09IHVuZGVmaW5lZCkgeyBjb2xvciA9ICdyZ2JhKDAsMCwwLDApJzsgfVxyXG5cclxuICAgICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9IFZhbHVlVG9Db2xvcihjb2xvcik7XHJcblxyXG4gICAgICAgIHRoaXMudHJhbnNwYXJlbnQgPSAodGhpcy5iYWNrZ3JvdW5kQ29sb3IuYWxwaGEgPT09IDApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGJvdW5kcyBvZiB0aGUgQ2FtZXJhLiBUaGUgYm91bmRzIGFyZSBhbiBheGlzLWFsaWduZWQgcmVjdGFuZ2xlLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgQ2FtZXJhIGJvdW5kcyBjb250cm9scyB3aGVyZSB0aGUgQ2FtZXJhIGNhbiBzY3JvbGwgdG8sIHN0b3BwaW5nIGl0IGZyb20gc2Nyb2xsaW5nIG9mZiB0aGVcclxuICAgICAqIGVkZ2VzIGFuZCBpbnRvIGJsYW5rIHNwYWNlLiBJdCBkb2VzIG5vdCBsaW1pdCB0aGUgcGxhY2VtZW50IG9mIEdhbWUgT2JqZWN0cywgb3Igd2hlcmVcclxuICAgICAqIHRoZSBDYW1lcmEgdmlld3BvcnQgY2FuIGJlIHBvc2l0aW9uZWQuXHJcbiAgICAgKiBcclxuICAgICAqIFRlbXBvcmFyaWx5IGRpc2FibGUgdGhlIGJvdW5kcyBieSBjaGFuZ2luZyB0aGUgYm9vbGVhbiBgQ2FtZXJhLnVzZUJvdW5kc2AuXHJcbiAgICAgKiBcclxuICAgICAqIENsZWFyIHRoZSBib3VuZHMgZW50aXJlbHkgYnkgY2FsbGluZyBgQ2FtZXJhLnJlbW92ZUJvdW5kc2AuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHlvdSBzZXQgYm91bmRzIHRoYXQgYXJlIHNtYWxsZXIgdGhhbiB0aGUgdmlld3BvcnQgaXQgd2lsbCBzdG9wIHRoZSBDYW1lcmEgZnJvbSBiZWluZ1xyXG4gICAgICogYWJsZSB0byBzY3JvbGwuIFRoZSBib3VuZHMgY2FuIGJlIHBvc2l0aW9uZWQgd2hlcmUtZXZlciB5b3Ugd2lzaC4gQnkgZGVmYXVsdCB0aGV5IGFyZSBmcm9tXHJcbiAgICAgKiAweDAgdG8gdGhlIGNhbnZhcyB3aWR0aCB4IGhlaWdodC4gVGhpcyBtZWFucyB0aGF0IHRoZSBjb29yZGluYXRlIDB4MCBpcyB0aGUgdG9wIGxlZnQgb2ZcclxuICAgICAqIHRoZSBDYW1lcmEgYm91bmRzLiBIb3dldmVyLCB5b3UgY2FuIHBvc2l0aW9uIHRoZW0gYW55d2hlcmUuIFNvIGlmIHlvdSB3YW50ZWQgYSBnYW1lIHdvcmxkXHJcbiAgICAgKiB0aGF0IHdhcyAyMDQ4eDIwNDggaW4gc2l6ZSwgd2l0aCAweDAgYmVpbmcgdGhlIGNlbnRlciBvZiBpdCwgeW91IGNhbiBzZXQgdGhlIGJvdW5kcyB4L3lcclxuICAgICAqIHRvIGJlIC0xMDI0LCAtMTAyNCwgd2l0aCBhIHdpZHRoIGFuZCBoZWlnaHQgb2YgMjA0OC4gRGVwZW5kaW5nIG9uIHlvdXIgZ2FtZSB5b3UgbWF5IGZpbmRcclxuICAgICAqIGl0IGVhc2llciBmb3IgMHgwIHRvIGJlIHRoZSB0b3AtbGVmdCBvZiB0aGUgYm91bmRzLCBvciB5b3UgbWF5IHdpc2ggMHgwIHRvIGJlIHRoZSBtaWRkbGUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjc2V0Qm91bmRzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHggLSBUaGUgdG9wLWxlZnQgeCBjb29yZGluYXRlIG9mIHRoZSBib3VuZHMuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHkgLSBUaGUgdG9wLWxlZnQgeSBjb29yZGluYXRlIG9mIHRoZSBib3VuZHMuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBib3VuZHMsIGluIHBpeGVscy5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gaGVpZ2h0IC0gVGhlIGhlaWdodCBvZiB0aGUgYm91bmRzLCBpbiBwaXhlbHMuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjZW50ZXJPbj1mYWxzZV0gLSBJZiBgdHJ1ZWAgdGhlIENhbWVyYSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY2VudGVyZWQgb24gdGhlIG5ldyBib3VuZHMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldEJvdW5kczogZnVuY3Rpb24gKHgsIHksIHdpZHRoLCBoZWlnaHQsIGNlbnRlck9uKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChjZW50ZXJPbiA9PT0gdW5kZWZpbmVkKSB7IGNlbnRlck9uID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgdGhpcy5fYm91bmRzLnNldFRvKHgsIHksIHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICAgICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnVzZUJvdW5kcyA9IHRydWU7XHJcblxyXG4gICAgICAgIGlmIChjZW50ZXJPbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY2VudGVyVG9Cb3VuZHMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxYID0gdGhpcy5jbGFtcFgodGhpcy5zY3JvbGxYKTtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxZID0gdGhpcy5jbGFtcFkodGhpcy5zY3JvbGxZKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYSByZWN0YW5nbGUgY29udGFpbmluZyB0aGUgYm91bmRzIG9mIHRoZSBDYW1lcmEuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZSBDYW1lcmEgZG9lcyBub3QgaGF2ZSBhbnkgYm91bmRzIHRoZSByZWN0YW5nbGUgd2lsbCBiZSBlbXB0eS5cclxuICAgICAqIFxyXG4gICAgICogVGhlIHJlY3RhbmdsZSBpcyBhIGNvcHkgb2YgdGhlIGJvdW5kcywgc28gaXMgc2FmZSB0byBtb2RpZnkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjZ2V0Qm91bmRzXHJcbiAgICAgKiBAc2luY2UgMy4xNi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2VvbS5SZWN0YW5nbGV9IFtvdXRdIC0gQW4gb3B0aW9uYWwgUmVjdGFuZ2xlIHRvIHN0b3JlIHRoZSBib3VuZHMgaW4uIElmIG5vdCBnaXZlbiwgYSBuZXcgUmVjdGFuZ2xlIHdpbGwgYmUgY3JlYXRlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2VvbS5SZWN0YW5nbGV9IEEgcmVjdGFuZ2xlIGNvbnRhaW5pbmcgdGhlIGJvdW5kcyBvZiB0aGlzIENhbWVyYS5cclxuICAgICAqL1xyXG4gICAgZ2V0Qm91bmRzOiBmdW5jdGlvbiAob3V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZCkgeyBvdXQgPSBuZXcgUmVjdGFuZ2xlKCk7IH1cclxuXHJcbiAgICAgICAgdmFyIHNvdXJjZSA9IHRoaXMuX2JvdW5kcztcclxuXHJcbiAgICAgICAgb3V0LnNldFRvKHNvdXJjZS54LCBzb3VyY2UueSwgc291cmNlLndpZHRoLCBzb3VyY2UuaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG91dDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBuYW1lIG9mIHRoaXMgQ2FtZXJhLlxyXG4gICAgICogVGhpcyB2YWx1ZSBpcyBmb3IgeW91ciBvd24gdXNlIGFuZCBpc24ndCB1c2VkIGludGVybmFsbHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjc2V0TmFtZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFt2YWx1ZT0nJ10gLSBUaGUgbmFtZSBvZiB0aGUgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXROYW1lOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHsgdmFsdWUgPSAnJzsgfVxyXG5cclxuICAgICAgICB0aGlzLm5hbWUgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgQ2FtZXJhIHZpZXdwb3J0IHdpdGhpbiB0aGUgZ2FtZS5cclxuICAgICAqXHJcbiAgICAgKiBUaGlzIGRvZXMgbm90IGNoYW5nZSB3aGVyZSB0aGUgY2FtZXJhIGlzICdsb29raW5nJy4gU2VlIGBzZXRTY3JvbGxgIHRvIGNvbnRyb2wgdGhhdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNzZXRQb3NpdGlvblxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgdG9wLWxlZnQgeCBjb29yZGluYXRlIG9mIHRoZSBDYW1lcmEgdmlld3BvcnQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3k9eF0gLSBUaGUgdG9wLWxlZnQgeSBjb29yZGluYXRlIG9mIHRoZSBDYW1lcmEgdmlld3BvcnQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFBvc2l0aW9uOiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSB4OyB9XHJcblxyXG4gICAgICAgIHRoaXMueCA9IHg7XHJcbiAgICAgICAgdGhpcy55ID0geTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSByb3RhdGlvbiBvZiB0aGlzIENhbWVyYS4gVGhpcyBjYXVzZXMgZXZlcnl0aGluZyBpdCByZW5kZXJzIHRvIGFwcGVhciByb3RhdGVkLlxyXG4gICAgICpcclxuICAgICAqIFJvdGF0aW5nIGEgY2FtZXJhIGRvZXMgbm90IHJvdGF0ZSB0aGUgdmlld3BvcnQgaXRzZWxmLCBpdCBpcyBhcHBsaWVkIGR1cmluZyByZW5kZXJpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjc2V0Um90YXRpb25cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbdmFsdWU9MF0gLSBUaGUgcm90YXRpb24gb2YgdGhlIENhbWVyYSwgaW4gcmFkaWFucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENhbWVyYSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0Um90YXRpb246IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgeyB2YWx1ZSA9IDA7IH1cclxuXHJcbiAgICAgICAgdGhpcy5yb3RhdGlvbiA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG91bGQgdGhlIENhbWVyYSByb3VuZCBwaXhlbCB2YWx1ZXMgdG8gd2hvbGUgaW50ZWdlcnMgd2hlbiByZW5kZXJpbmcgR2FtZSBPYmplY3RzP1xyXG4gICAgICogXHJcbiAgICAgKiBJbiBzb21lIHR5cGVzIG9mIGdhbWUsIGVzcGVjaWFsbHkgd2l0aCBwaXhlbCBhcnQsIHRoaXMgaXMgcmVxdWlyZWQgdG8gcHJldmVudCBzdWItcGl4ZWwgYWxpYXNpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjc2V0Um91bmRQaXhlbHNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gdmFsdWUgLSBgdHJ1ZWAgdG8gcm91bmQgQ2FtZXJhIHBpeGVscywgYGZhbHNlYCB0byBub3QuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFJvdW5kUGl4ZWxzOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5yb3VuZFBpeGVscyA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBTY2VuZSB0aGUgQ2FtZXJhIGlzIGJvdW5kIHRvLlxyXG4gICAgICogXHJcbiAgICAgKiBBbHNvIHBvcHVsYXRlcyB0aGUgYHJlc29sdXRpb25gIHByb3BlcnR5IGFuZCB1cGRhdGVzIHRoZSBpbnRlcm5hbCBzaXplIHZhbHVlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNzZXRTY2VuZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRoZSBjYW1lcmEgaXMgYm91bmQgdG8uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFNjZW5lOiBmdW5jdGlvbiAoc2NlbmUpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2NlbmUgJiYgdGhpcy5fY3VzdG9tVmlld3BvcnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNjZW5lTWFuYWdlci5jdXN0b21WaWV3cG9ydHMtLTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2NlbmUgPSBzY2VuZTtcclxuXHJcbiAgICAgICAgdmFyIHN5cyA9IHNjZW5lLnN5cztcclxuXHJcbiAgICAgICAgdGhpcy5zY2VuZU1hbmFnZXIgPSBzeXMuZ2FtZS5zY2VuZTtcclxuICAgICAgICB0aGlzLnNjYWxlTWFuYWdlciA9IHN5cy5zY2FsZTtcclxuICAgICAgICB0aGlzLmNhbWVyYU1hbmFnZXIgPSBzeXMuY2FtZXJhcztcclxuXHJcbiAgICAgICAgdmFyIHJlcyA9IHRoaXMuc2NhbGVNYW5hZ2VyLnJlc29sdXRpb247XHJcblxyXG4gICAgICAgIHRoaXMucmVzb2x1dGlvbiA9IHJlcztcclxuXHJcbiAgICAgICAgdGhpcy5fY3ggPSB0aGlzLl94ICogcmVzO1xyXG4gICAgICAgIHRoaXMuX2N5ID0gdGhpcy5feSAqIHJlcztcclxuICAgICAgICB0aGlzLl9jdyA9IHRoaXMuX3dpZHRoICogcmVzO1xyXG4gICAgICAgIHRoaXMuX2NoID0gdGhpcy5faGVpZ2h0ICogcmVzO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZVN5c3RlbSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIHBvc2l0aW9uIG9mIHdoZXJlIHRoZSBDYW1lcmEgaXMgbG9va2luZyB3aXRoaW4gdGhlIGdhbWUuXHJcbiAgICAgKiBZb3UgY2FuIGFsc28gbW9kaWZ5IHRoZSBwcm9wZXJ0aWVzIGBDYW1lcmEuc2Nyb2xsWGAgYW5kIGBDYW1lcmEuc2Nyb2xsWWAgZGlyZWN0bHkuXHJcbiAgICAgKiBVc2UgdGhpcyBtZXRob2QsIG9yIHRoZSBzY3JvbGwgcHJvcGVydGllcywgdG8gbW92ZSB5b3VyIGNhbWVyYSBhcm91bmQgdGhlIGdhbWUgd29ybGQuXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBkb2VzIG5vdCBjaGFuZ2Ugd2hlcmUgdGhlIGNhbWVyYSB2aWV3cG9ydCBpcyBwbGFjZWQuIFNlZSBgc2V0UG9zaXRpb25gIHRvIGNvbnRyb2wgdGhhdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNzZXRTY3JvbGxcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgQ2FtZXJhIGluIHRoZSBnYW1lIHdvcmxkLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5PXhdIC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgQ2FtZXJhIGluIHRoZSBnYW1lIHdvcmxkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRTY3JvbGw6IGZ1bmN0aW9uICh4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IHg7IH1cclxuXHJcbiAgICAgICAgdGhpcy5zY3JvbGxYID0geDtcclxuICAgICAgICB0aGlzLnNjcm9sbFkgPSB5O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIHNpemUgb2YgdGhlIENhbWVyYSB2aWV3cG9ydC5cclxuICAgICAqXHJcbiAgICAgKiBCeSBkZWZhdWx0IGEgQ2FtZXJhIGlzIHRoZSBzYW1lIHNpemUgYXMgdGhlIGdhbWUsIGJ1dCBjYW4gYmUgbWFkZSBzbWFsbGVyIHZpYSB0aGlzIG1ldGhvZCxcclxuICAgICAqIGFsbG93aW5nIHlvdSB0byBjcmVhdGUgbWluaS1jYW0gc3R5bGUgZWZmZWN0cyBieSBjcmVhdGluZyBhbmQgcG9zaXRpb25pbmcgYSBzbWFsbGVyIENhbWVyYVxyXG4gICAgICogdmlld3BvcnQgd2l0aGluIHlvdXIgZ2FtZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNzZXRTaXplXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBDYW1lcmEgdmlld3BvcnQuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtoZWlnaHQ9d2lkdGhdIC0gVGhlIGhlaWdodCBvZiB0aGUgQ2FtZXJhIHZpZXdwb3J0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRTaXplOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodClcclxuICAgIHtcclxuICAgICAgICBpZiAoaGVpZ2h0ID09PSB1bmRlZmluZWQpIHsgaGVpZ2h0ID0gd2lkdGg7IH1cclxuXHJcbiAgICAgICAgdGhpcy53aWR0aCA9IHdpZHRoO1xyXG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBwb3NpdGlvbiBhbmQgc2l6ZSBvZiB0aGUgQ2FtZXJhIHZpZXdwb3J0IGluIGEgc2luZ2xlIGNhbGwuXHJcbiAgICAgKlxyXG4gICAgICogSWYgeW91J3JlIHRyeWluZyB0byBjaGFuZ2Ugd2hlcmUgdGhlIENhbWVyYSBpcyBsb29raW5nIGF0IGluIHlvdXIgZ2FtZSwgdGhlbiBzZWVcclxuICAgICAqIHRoZSBtZXRob2QgYENhbWVyYS5zZXRTY3JvbGxgIGluc3RlYWQuIFRoaXMgbWV0aG9kIGlzIGZvciBjaGFuZ2luZyB0aGUgdmlld3BvcnRcclxuICAgICAqIGl0c2VsZiwgbm90IHdoYXQgdGhlIGNhbWVyYSBjYW4gc2VlLlxyXG4gICAgICpcclxuICAgICAqIEJ5IGRlZmF1bHQgYSBDYW1lcmEgaXMgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgZ2FtZSwgYnV0IGNhbiBiZSBtYWRlIHNtYWxsZXIgdmlhIHRoaXMgbWV0aG9kLFxyXG4gICAgICogYWxsb3dpbmcgeW91IHRvIGNyZWF0ZSBtaW5pLWNhbSBzdHlsZSBlZmZlY3RzIGJ5IGNyZWF0aW5nIGFuZCBwb3NpdGlvbmluZyBhIHNtYWxsZXIgQ2FtZXJhXHJcbiAgICAgKiB2aWV3cG9ydCB3aXRoaW4geW91ciBnYW1lLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI3NldFZpZXdwb3J0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSB0b3AtbGVmdCB4IGNvb3JkaW5hdGUgb2YgdGhlIENhbWVyYSB2aWV3cG9ydC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHRvcC1sZWZ0IHkgY29vcmRpbmF0ZSBvZiB0aGUgQ2FtZXJhIHZpZXdwb3J0LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSB3aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGUgQ2FtZXJhIHZpZXdwb3J0LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbaGVpZ2h0PXdpZHRoXSAtIFRoZSBoZWlnaHQgb2YgdGhlIENhbWVyYSB2aWV3cG9ydC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENhbWVyYSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0Vmlld3BvcnQ6IGZ1bmN0aW9uICh4LCB5LCB3aWR0aCwgaGVpZ2h0KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMueCA9IHg7XHJcbiAgICAgICAgdGhpcy55ID0geTtcclxuICAgICAgICB0aGlzLndpZHRoID0gd2lkdGg7XHJcbiAgICAgICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgem9vbSB2YWx1ZSBvZiB0aGUgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIENoYW5naW5nIHRvIGEgc21hbGxlciB2YWx1ZSwgc3VjaCBhcyAwLjUsIHdpbGwgY2F1c2UgdGhlIGNhbWVyYSB0byAnem9vbSBvdXQnLlxyXG4gICAgICogQ2hhbmdpbmcgdG8gYSBsYXJnZXIgdmFsdWUsIHN1Y2ggYXMgMiwgd2lsbCBjYXVzZSB0aGUgY2FtZXJhIHRvICd6b29tIGluJy5cclxuICAgICAqXHJcbiAgICAgKiBBIHZhbHVlIG9mIDEgbWVhbnMgJ25vIHpvb20nIGFuZCBpcyB0aGUgZGVmYXVsdC5cclxuICAgICAqXHJcbiAgICAgKiBDaGFuZ2luZyB0aGUgem9vbSBkb2VzIG5vdCBpbXBhY3QgdGhlIENhbWVyYSB2aWV3cG9ydCBpbiBhbnkgd2F5LCBpdCBpcyBvbmx5IGFwcGxpZWQgZHVyaW5nIHJlbmRlcmluZy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNzZXRab29tXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ZhbHVlPTFdIC0gVGhlIHpvb20gdmFsdWUgb2YgdGhlIENhbWVyYS4gVGhlIG1pbmltdW0gaXQgY2FuIGJlIGlzIDAuMDAxLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRab29tOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHsgdmFsdWUgPSAxOyB9XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gMC4wMDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnpvb20gPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgbWFzayB0byBiZSBhcHBsaWVkIHRvIHRoaXMgQ2FtZXJhIGR1cmluZyByZW5kZXJpbmcuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIG1hc2sgbXVzdCBoYXZlIGJlZW4gcHJldmlvdXNseSBjcmVhdGVkIGFuZCBjYW4gYmUgZWl0aGVyIGEgR2VvbWV0cnlNYXNrIG9yIGEgQml0bWFwTWFzay5cclxuICAgICAqIFxyXG4gICAgICogQml0bWFwIE1hc2tzIG9ubHkgd29yayBvbiBXZWJHTC4gR2VvbWV0cnkgTWFza3Mgd29yayBvbiBib3RoIFdlYkdMIGFuZCBDYW52YXMuXHJcbiAgICAgKlxyXG4gICAgICogSWYgYSBtYXNrIGlzIGFscmVhZHkgc2V0IG9uIHRoaXMgQ2FtZXJhIGl0IHdpbGwgYmUgaW1tZWRpYXRlbHkgcmVwbGFjZWQuXHJcbiAgICAgKiBcclxuICAgICAqIE1hc2tzIGhhdmUgbm8gaW1wYWN0IG9uIHBoeXNpY3Mgb3IgaW5wdXQgZGV0ZWN0aW9uLiBUaGV5IGFyZSBwdXJlbHkgYSByZW5kZXJpbmcgY29tcG9uZW50XHJcbiAgICAgKiB0aGF0IGFsbG93cyB5b3UgdG8gbGltaXQgd2hhdCBpcyB2aXNpYmxlIGR1cmluZyB0aGUgcmVuZGVyIHBhc3MuXHJcbiAgICAgKiBcclxuICAgICAqIE5vdGU6IFlvdSBjYW5ub3QgbWFzayBhIENhbWVyYSB0aGF0IGhhcyBgcmVuZGVyVG9UZXh0dXJlYCBzZXQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjc2V0TWFza1xyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KFBoYXNlci5EaXNwbGF5Lk1hc2tzLkJpdG1hcE1hc2t8UGhhc2VyLkRpc3BsYXkuTWFza3MuR2VvbWV0cnlNYXNrKX0gbWFzayAtIFRoZSBtYXNrIHRoaXMgQ2FtZXJhIHdpbGwgdXNlIHdoZW4gcmVuZGVyaW5nLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZml4ZWRQb3NpdGlvbj10cnVlXSAtIFNob3VsZCB0aGUgbWFzayB0cmFuc2xhdGUgYWxvbmcgd2l0aCB0aGUgQ2FtZXJhLCBvciBiZSBmaXhlZCBpbiBwbGFjZSBhbmQgbm90IGltcGFjdGVkIGJ5IHRoZSBDYW1lcmFzIHRyYW5zZm9ybT9cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENhbWVyYSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0TWFzazogZnVuY3Rpb24gKG1hc2ssIGZpeGVkUG9zaXRpb24pXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGZpeGVkUG9zaXRpb24gPT09IHVuZGVmaW5lZCkgeyBmaXhlZFBvc2l0aW9uID0gdHJ1ZTsgfVxyXG5cclxuICAgICAgICB0aGlzLm1hc2sgPSBtYXNrO1xyXG5cclxuICAgICAgICB0aGlzLl9tYXNrQ2FtZXJhID0gKGZpeGVkUG9zaXRpb24pID8gdGhpcy5jYW1lcmFNYW5hZ2VyLmRlZmF1bHQgOiB0aGlzO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbGVhcnMgdGhlIG1hc2sgdGhhdCB0aGlzIENhbWVyYSB3YXMgdXNpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjY2xlYXJNYXNrXHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZGVzdHJveU1hc2s9ZmFsc2VdIC0gRGVzdHJveSB0aGUgbWFzayBiZWZvcmUgY2xlYXJpbmcgaXQ/XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGNsZWFyTWFzazogZnVuY3Rpb24gKGRlc3Ryb3lNYXNrKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChkZXN0cm95TWFzayA9PT0gdW5kZWZpbmVkKSB7IGRlc3Ryb3lNYXNrID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgaWYgKGRlc3Ryb3lNYXNrICYmIHRoaXMubWFzaylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubWFzay5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm1hc2sgPSBudWxsO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB2aXNpYmlsaXR5IG9mIHRoaXMgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEFuIGludmlzaWJsZSBDYW1lcmEgd2lsbCBza2lwIHJlbmRlcmluZyBhbmQgaW5wdXQgdGVzdHMgb2YgZXZlcnl0aGluZyBpdCBjYW4gc2VlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI3NldFZpc2libGVcclxuICAgICAqIEBzaW5jZSAzLjEwLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbHVlIC0gVGhlIHZpc2libGUgc3RhdGUgb2YgdGhlIENhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENhbWVyYSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhbiBPYmplY3Qgc3VpdGFibGUgZm9yIEpTT04gc3RvcmFnZSBjb250YWluaW5nIGFsbCBvZiB0aGUgQ2FtZXJhIHZpZXdwb3J0IGFuZCByZW5kZXJpbmcgcHJvcGVydGllcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSN0b0pTT05cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5UeXBlcy5DYW1lcmFzLlNjZW5lMkQuSlNPTkNhbWVyYX0gQSB3ZWxsLWZvcm1lZCBvYmplY3Qgc3VpdGFibGUgZm9yIGNvbnZlcnNpb24gdG8gSlNPTi5cclxuICAgICAqL1xyXG4gICAgdG9KU09OOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBvdXRwdXQgPSB7XHJcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcclxuICAgICAgICAgICAgeDogdGhpcy54LFxyXG4gICAgICAgICAgICB5OiB0aGlzLnksXHJcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLndpZHRoLFxyXG4gICAgICAgICAgICBoZWlnaHQ6IHRoaXMuaGVpZ2h0LFxyXG4gICAgICAgICAgICB6b29tOiB0aGlzLnpvb20sXHJcbiAgICAgICAgICAgIHJvdGF0aW9uOiB0aGlzLnJvdGF0aW9uLFxyXG4gICAgICAgICAgICByb3VuZFBpeGVsczogdGhpcy5yb3VuZFBpeGVscyxcclxuICAgICAgICAgICAgc2Nyb2xsWDogdGhpcy5zY3JvbGxYLFxyXG4gICAgICAgICAgICBzY3JvbGxZOiB0aGlzLnNjcm9sbFksXHJcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5iYWNrZ3JvdW5kQ29sb3IucmdiYVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnVzZUJvdW5kcylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG91dHB1dFsnYm91bmRzJ10gPSB7XHJcbiAgICAgICAgICAgICAgICB4OiB0aGlzLl9ib3VuZHMueCxcclxuICAgICAgICAgICAgICAgIHk6IHRoaXMuX2JvdW5kcy55LFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMuX2JvdW5kcy53aWR0aCxcclxuICAgICAgICAgICAgICAgIGhlaWdodDogdGhpcy5fYm91bmRzLmhlaWdodFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBtZXRob2QgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIENhbWVyYSBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI3VwZGF0ZVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSB0aW1lIC0gVGhlIGN1cnJlbnQgdGltZXN0YW1wIGFzIGdlbmVyYXRlZCBieSB0aGUgUmVxdWVzdCBBbmltYXRpb24gRnJhbWUgb3IgU2V0VGltZW91dC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWx0YSAtIFRoZSBkZWx0YSB0aW1lLCBpbiBtcywgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCBmcmFtZS5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIC8vICBOT09QXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgbWV0aG9kIGNhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIHZpZXdwb3J0IGNoYW5nZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjdXBkYXRlU3lzdGVtXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTIuMFxyXG4gICAgICovXHJcbiAgICB1cGRhdGVTeXN0ZW06IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNjYWxlTWFuYWdlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBjdXN0b20gPSAodGhpcy5feCAhPT0gMCB8fCB0aGlzLl95ICE9PSAwIHx8IHRoaXMuc2NhbGVNYW5hZ2VyLndpZHRoICE9PSB0aGlzLl93aWR0aCB8fCB0aGlzLnNjYWxlTWFuYWdlci5oZWlnaHQgIT09IHRoaXMuX2hlaWdodCk7XHJcblxyXG4gICAgICAgIHZhciBzY2VuZU1hbmFnZXIgPSB0aGlzLnNjZW5lTWFuYWdlcjtcclxuXHJcbiAgICAgICAgaWYgKGN1c3RvbSAmJiAhdGhpcy5fY3VzdG9tVmlld3BvcnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgV2UgbmVlZCBhIGN1c3RvbSB2aWV3cG9ydCBmb3IgdGhpcyBDYW1lcmFcclxuICAgICAgICAgICAgc2NlbmVNYW5hZ2VyLmN1c3RvbVZpZXdwb3J0cysrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICghY3VzdG9tICYmIHRoaXMuX2N1c3RvbVZpZXdwb3J0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIFdlJ3JlIHR1cm5pbmcgb2ZmIGEgY3VzdG9tIHZpZXdwb3J0IGZvciB0aGlzIENhbWVyYVxyXG4gICAgICAgICAgICBzY2VuZU1hbmFnZXIuY3VzdG9tVmlld3BvcnRzLS07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9jdXN0b21WaWV3cG9ydCA9IGN1c3RvbTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXN0cm95cyB0aGlzIENhbWVyYSBpbnN0YW5jZSBhbmQgaXRzIGludGVybmFsIHByb3BlcnRpZXMgYW5kIHJlZmVyZW5jZXMuXHJcbiAgICAgKiBPbmNlIGRlc3Ryb3llZCB5b3UgY2Fubm90IHVzZSB0aGlzIENhbWVyYSBhZ2FpbiwgZXZlbiBpZiByZS1hZGRlZCB0byBhIENhbWVyYSBNYW5hZ2VyLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSBieSBgQ2FtZXJhTWFuYWdlci5yZW1vdmVgIGlmIHRoYXQgbWV0aG9kcyBgcnVuRGVzdHJveWAgYXJndW1lbnQgaXMgYHRydWVgLCB3aGljaCBpcyB0aGUgZGVmYXVsdC5cclxuICAgICAqIFxyXG4gICAgICogVW5sZXNzIHlvdSBoYXZlIGEgc3BlY2lmaWMgcmVhc29uIG90aGVyd2lzZSwgYWx3YXlzIHVzZSBgQ2FtZXJhTWFuYWdlci5yZW1vdmVgIGFuZCBhbGxvdyBpdCB0byBoYW5kbGUgdGhlIGNhbWVyYSBkZXN0cnVjdGlvbixcclxuICAgICAqIHJhdGhlciB0aGFuIGNhbGxpbmcgdGhpcyBtZXRob2QgZGlyZWN0bHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjZGVzdHJveVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI0RFU1RST1lcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZW1pdChFdmVudHMuREVTVFJPWSwgdGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XHJcblxyXG4gICAgICAgIHRoaXMubWF0cml4LmRlc3Ryb3koKTtcclxuXHJcbiAgICAgICAgdGhpcy5jdWxsZWRPYmplY3RzID0gW107XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9jdXN0b21WaWV3cG9ydClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBXZSdyZSB0dXJuaW5nIG9mZiBhIGN1c3RvbSB2aWV3cG9ydCBmb3IgdGhpcyBDYW1lcmFcclxuICAgICAgICAgICAgdGhpcy5zY2VuZU1hbmFnZXIuY3VzdG9tVmlld3BvcnRzLS07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9ib3VuZHMgPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLnNjZW5lID0gbnVsbDtcclxuICAgICAgICB0aGlzLnNjYWxlTWFuYWdlciA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5zY2VuZU1hbmFnZXIgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuY2FtZXJhTWFuYWdlciA9IG51bGw7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHggcG9zaXRpb24gb2YgdGhlIENhbWVyYSB2aWV3cG9ydCwgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZWZ0IG9mIHRoZSBnYW1lIGNhbnZhcy5cclxuICAgICAqIFRoZSB2aWV3cG9ydCBpcyB0aGUgYXJlYSBpbnRvIHdoaWNoIHRoZSBjYW1lcmEgcmVuZGVycy5cclxuICAgICAqIFRvIGFkanVzdCB0aGUgcG9zaXRpb24gdGhlIGNhbWVyYSBpcyBsb29raW5nIGF0IGluIHRoZSBnYW1lIHdvcmxkLCBzZWUgdGhlIGBzY3JvbGxYYCB2YWx1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjeFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB4OiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl94O1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5feCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl9jeCA9IHZhbHVlICogdGhpcy5yZXNvbHV0aW9uO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVN5c3RlbSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHkgcG9zaXRpb24gb2YgdGhlIENhbWVyYSB2aWV3cG9ydCwgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZWZ0IG9mIHRoZSBnYW1lIGNhbnZhcy5cclxuICAgICAqIFRoZSB2aWV3cG9ydCBpcyB0aGUgYXJlYSBpbnRvIHdoaWNoIHRoZSBjYW1lcmEgcmVuZGVycy5cclxuICAgICAqIFRvIGFkanVzdCB0aGUgcG9zaXRpb24gdGhlIGNhbWVyYSBpcyBsb29raW5nIGF0IGluIHRoZSBnYW1lIHdvcmxkLCBzZWUgdGhlIGBzY3JvbGxZYCB2YWx1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjeVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB5OiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl95O1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5feSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl9jeSA9IHZhbHVlICogdGhpcy5yZXNvbHV0aW9uO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVN5c3RlbSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHdpZHRoIG9mIHRoZSBDYW1lcmEgdmlld3BvcnQsIGluIHBpeGVscy5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgdmlld3BvcnQgaXMgdGhlIGFyZWEgaW50byB3aGljaCB0aGUgQ2FtZXJhIHJlbmRlcnMuIFNldHRpbmcgdGhlIHZpZXdwb3J0IGRvZXNcclxuICAgICAqIG5vdCByZXN0cmljdCB3aGVyZSB0aGUgQ2FtZXJhIGNhbiBzY3JvbGwgdG8uXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI3dpZHRoXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHdpZHRoOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93aWR0aDtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3dpZHRoID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2N3ID0gdmFsdWUgKiB0aGlzLnJlc29sdXRpb247XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU3lzdGVtKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgaGVpZ2h0IG9mIHRoZSBDYW1lcmEgdmlld3BvcnQsIGluIHBpeGVscy5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgdmlld3BvcnQgaXMgdGhlIGFyZWEgaW50byB3aGljaCB0aGUgQ2FtZXJhIHJlbmRlcnMuIFNldHRpbmcgdGhlIHZpZXdwb3J0IGRvZXNcclxuICAgICAqIG5vdCByZXN0cmljdCB3aGVyZSB0aGUgQ2FtZXJhIGNhbiBzY3JvbGwgdG8uXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI2hlaWdodFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBoZWlnaHQ6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2hlaWdodDtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2hlaWdodCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl9jaCA9IHZhbHVlICogdGhpcy5yZXNvbHV0aW9uO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVN5c3RlbSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGhvcml6b250YWwgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoaXMgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIENoYW5nZSB0aGlzIHZhbHVlIHRvIGNhdXNlIHRoZSBDYW1lcmEgdG8gc2Nyb2xsIGFyb3VuZCB5b3VyIFNjZW5lLlxyXG4gICAgICpcclxuICAgICAqIEFsdGVybmF0aXZlbHksIHNldHRpbmcgdGhlIENhbWVyYSB0byBmb2xsb3cgYSBHYW1lIE9iamVjdCwgdmlhIHRoZSBgc3RhcnRGb2xsb3dgIG1ldGhvZCxcclxuICAgICAqIHdpbGwgYXV0b21hdGljYWxseSBhZGp1c3QgdGhlIENhbWVyYSBzY3JvbGwgdmFsdWVzIGFjY29yZGluZ2x5LlxyXG4gICAgICpcclxuICAgICAqIFlvdSBjYW4gc2V0IHRoZSBib3VuZHMgd2l0aGluIHdoaWNoIHRoZSBDYW1lcmEgY2FuIHNjcm9sbCB2aWEgdGhlIGBzZXRCb3VuZHNgIG1ldGhvZC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmEjc2Nyb2xsWFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBzY3JvbGxYOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zY3JvbGxYO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsWCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB2ZXJ0aWNhbCBzY3JvbGwgcG9zaXRpb24gb2YgdGhpcyBDYW1lcmEuXHJcbiAgICAgKlxyXG4gICAgICogQ2hhbmdlIHRoaXMgdmFsdWUgdG8gY2F1c2UgdGhlIENhbWVyYSB0byBzY3JvbGwgYXJvdW5kIHlvdXIgU2NlbmUuXHJcbiAgICAgKlxyXG4gICAgICogQWx0ZXJuYXRpdmVseSwgc2V0dGluZyB0aGUgQ2FtZXJhIHRvIGZvbGxvdyBhIEdhbWUgT2JqZWN0LCB2aWEgdGhlIGBzdGFydEZvbGxvd2AgbWV0aG9kLFxyXG4gICAgICogd2lsbCBhdXRvbWF0aWNhbGx5IGFkanVzdCB0aGUgQ2FtZXJhIHNjcm9sbCB2YWx1ZXMgYWNjb3JkaW5nbHkuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBzZXQgdGhlIGJvdW5kcyB3aXRoaW4gd2hpY2ggdGhlIENhbWVyYSBjYW4gc2Nyb2xsIHZpYSB0aGUgYHNldEJvdW5kc2AgbWV0aG9kLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNzY3JvbGxZXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQGRlZmF1bHQgMFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHNjcm9sbFk6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbFk7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxZID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIENhbWVyYSB6b29tIHZhbHVlLiBDaGFuZ2UgdGhpcyB2YWx1ZSB0byB6b29tIGluLCBvciBvdXQgb2YsIGEgU2NlbmUuXHJcbiAgICAgKlxyXG4gICAgICogQSB2YWx1ZSBvZiAwLjUgd291bGQgem9vbSB0aGUgQ2FtZXJhIG91dCwgc28geW91IGNhbiBub3cgc2VlIHR3aWNlIGFzIG11Y2hcclxuICAgICAqIG9mIHRoZSBTY2VuZSBhcyBiZWZvcmUuIEEgdmFsdWUgb2YgMiB3b3VsZCB6b29tIHRoZSBDYW1lcmEgaW4sIHNvIGV2ZXJ5IHBpeGVsXHJcbiAgICAgKiBub3cgdGFrZXMgdXAgMiBwaXhlbHMgd2hlbiByZW5kZXJlZC5cclxuICAgICAqXHJcbiAgICAgKiBTZXQgdG8gMSB0byByZXR1cm4gdG8gdGhlIGRlZmF1bHQgem9vbSBsZXZlbC5cclxuICAgICAqXHJcbiAgICAgKiBCZSBjYXJlZnVsIHRvIG5ldmVyIHNldCB0aGlzIHZhbHVlIHRvIHplcm8uXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI3pvb21cclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAZGVmYXVsdCAxXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgem9vbToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fem9vbTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3pvb20gPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcm90YXRpb24gb2YgdGhlIENhbWVyYSBpbiByYWRpYW5zLlxyXG4gICAgICpcclxuICAgICAqIENhbWVyYSByb3RhdGlvbiBhbHdheXMgdGFrZXMgcGxhY2UgYmFzZWQgb24gdGhlIENhbWVyYSB2aWV3cG9ydC4gQnkgZGVmYXVsdCwgcm90YXRpb24gaGFwcGVuc1xyXG4gICAgICogaW4gdGhlIGNlbnRlciBvZiB0aGUgdmlld3BvcnQuIFlvdSBjYW4gYWRqdXN0IHRoaXMgd2l0aCB0aGUgYG9yaWdpblhgIGFuZCBgb3JpZ2luWWAgcHJvcGVydGllcy5cclxuICAgICAqXHJcbiAgICAgKiBSb3RhdGlvbiBpbmZsdWVuY2VzIHRoZSByZW5kZXJpbmcgb2YgX2FsbF8gR2FtZSBPYmplY3RzIHZpc2libGUgYnkgdGhpcyBDYW1lcmEuIEhvd2V2ZXIsIGl0IGRvZXMgbm90XHJcbiAgICAgKiByb3RhdGUgdGhlIENhbWVyYSB2aWV3cG9ydCBpdHNlbGYsIHdoaWNoIGFsd2F5cyByZW1haW5zIGFuIGF4aXMtYWxpZ25lZCByZWN0YW5nbGUuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI3JvdGF0aW9uXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqL1xyXG4gICAgcm90YXRpb246IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3JvdGF0aW9uO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fcm90YXRpb24gPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgY2VudGVyIG9mIHRoZSBDYW1lcmEncyB2aWV3cG9ydCwgcmVsYXRpdmUgdG8gdGhlIGxlZnQgb2YgdGhlIGdhbWUgY2FudmFzLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYSNjZW50ZXJYXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHJlYWRvbmx5XHJcbiAgICAgKiBAc2luY2UgMy4xMC4wXHJcbiAgICAgKi9cclxuICAgIGNlbnRlclg6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMueCArICgwLjUgKiB0aGlzLndpZHRoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgY2VudGVyIG9mIHRoZSBDYW1lcmEncyB2aWV3cG9ydCwgcmVsYXRpdmUgdG8gdGhlIHRvcCBvZiB0aGUgZ2FtZSBjYW52YXMuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI2NlbnRlcllcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEBzaW5jZSAzLjEwLjBcclxuICAgICAqL1xyXG4gICAgY2VudGVyWToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy55ICsgKDAuNSAqIHRoaXMuaGVpZ2h0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBkaXNwbGF5ZWQgd2lkdGggb2YgdGhlIGNhbWVyYSB2aWV3cG9ydCwgZmFjdG9yaW5nIGluIHRoZSBjYW1lcmEgem9vbSBsZXZlbC5cclxuICAgICAqXHJcbiAgICAgKiBJZiBhIGNhbWVyYSBoYXMgYSB2aWV3cG9ydCB3aWR0aCBvZiA4MDAgYW5kIGEgem9vbSBvZiAwLjUgdGhlbiBpdHMgZGlzcGxheSB3aWR0aFxyXG4gICAgICogd291bGQgYmUgMTYwMCwgYXMgaXQncyBkaXNwbGF5aW5nIHR3aWNlIGFzIG1hbnkgcGl4ZWxzIGFzIHpvb20gbGV2ZWwgMS5cclxuICAgICAqXHJcbiAgICAgKiBFcXVhbGx5LCBhIGNhbWVyYSB3aXRoIGEgd2lkdGggb2YgODAwIGFuZCB6b29tIG9mIDIgd291bGQgaGF2ZSBhIGRpc3BsYXkgd2lkdGhcclxuICAgICAqIG9mIDQwMCBwaXhlbHMuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI2Rpc3BsYXlXaWR0aFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEByZWFkb25seVxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICovXHJcbiAgICBkaXNwbGF5V2lkdGg6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMud2lkdGggLyB0aGlzLnpvb207XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZGlzcGxheWVkIGhlaWdodCBvZiB0aGUgY2FtZXJhIHZpZXdwb3J0LCBmYWN0b3JpbmcgaW4gdGhlIGNhbWVyYSB6b29tIGxldmVsLlxyXG4gICAgICpcclxuICAgICAqIElmIGEgY2FtZXJhIGhhcyBhIHZpZXdwb3J0IGhlaWdodCBvZiA2MDAgYW5kIGEgem9vbSBvZiAwLjUgdGhlbiBpdHMgZGlzcGxheSBoZWlnaHRcclxuICAgICAqIHdvdWxkIGJlIDEyMDAsIGFzIGl0J3MgZGlzcGxheWluZyB0d2ljZSBhcyBtYW55IHBpeGVscyBhcyB6b29tIGxldmVsIDEuXHJcbiAgICAgKlxyXG4gICAgICogRXF1YWxseSwgYSBjYW1lcmEgd2l0aCBhIGhlaWdodCBvZiA2MDAgYW5kIHpvb20gb2YgMiB3b3VsZCBoYXZlIGEgZGlzcGxheSBoZWlnaHRcclxuICAgICAqIG9mIDMwMCBwaXhlbHMuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5CYXNlQ2FtZXJhI2Rpc3BsYXlIZWlnaHRcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqL1xyXG4gICAgZGlzcGxheUhlaWdodDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oZWlnaHQgLyB0aGlzLnpvb207XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBCYXNlQ2FtZXJhO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBCYXNlQ2FtZXJhID0gcmVxdWlyZSgnLi9CYXNlQ2FtZXJhJyk7XHJcbnZhciBDYW52YXNQb29sID0gcmVxdWlyZSgnLi4vLi4vZGlzcGxheS9jYW52YXMvQ2FudmFzUG9vbCcpO1xyXG52YXIgQ2VudGVyT24gPSByZXF1aXJlKCcuLi8uLi9nZW9tL3JlY3RhbmdsZS9DZW50ZXJPbicpO1xyXG52YXIgQ2xhbXAgPSByZXF1aXJlKCcuLi8uLi9tYXRoL0NsYW1wJyk7XHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBDb21wb25lbnRzID0gcmVxdWlyZSgnLi4vLi4vZ2FtZW9iamVjdHMvY29tcG9uZW50cycpO1xyXG52YXIgRWZmZWN0cyA9IHJlcXVpcmUoJy4vZWZmZWN0cycpO1xyXG52YXIgTGluZWFyID0gcmVxdWlyZSgnLi4vLi4vbWF0aC9MaW5lYXInKTtcclxudmFyIFJlY3RhbmdsZSA9IHJlcXVpcmUoJy4uLy4uL2dlb20vcmVjdGFuZ2xlL1JlY3RhbmdsZScpO1xyXG52YXIgVmVjdG9yMiA9IHJlcXVpcmUoJy4uLy4uL21hdGgvVmVjdG9yMicpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBDYW1lcmEuXHJcbiAqXHJcbiAqIFRoZSBDYW1lcmEgaXMgdGhlIHdheSBpbiB3aGljaCBhbGwgZ2FtZXMgYXJlIHJlbmRlcmVkIGluIFBoYXNlci4gVGhleSBwcm92aWRlIGEgdmlldyBpbnRvIHlvdXIgZ2FtZSB3b3JsZCxcclxuICogYW5kIGNhbiBiZSBwb3NpdGlvbmVkLCByb3RhdGVkLCB6b29tZWQgYW5kIHNjcm9sbGVkIGFjY29yZGluZ2x5LlxyXG4gKlxyXG4gKiBBIENhbWVyYSBjb25zaXN0cyBvZiB0d28gZWxlbWVudHM6IFRoZSB2aWV3cG9ydCBhbmQgdGhlIHNjcm9sbCB2YWx1ZXMuXHJcbiAqXHJcbiAqIFRoZSB2aWV3cG9ydCBpcyB0aGUgcGh5c2ljYWwgcG9zaXRpb24gYW5kIHNpemUgb2YgdGhlIENhbWVyYSB3aXRoaW4geW91ciBnYW1lLiBDYW1lcmFzLCBieSBkZWZhdWx0LCBhcmVcclxuICogY3JlYXRlZCB0aGUgc2FtZSBzaXplIGFzIHlvdXIgZ2FtZSwgYnV0IHRoZWlyIHBvc2l0aW9uIGFuZCBzaXplIGNhbiBiZSBzZXQgdG8gYW55dGhpbmcuIFRoaXMgbWVhbnMgaWYgeW91XHJcbiAqIHdhbnRlZCB0byBjcmVhdGUgYSBjYW1lcmEgdGhhdCB3YXMgMzIweDIwMCBpbiBzaXplLCBwb3NpdGlvbmVkIGluIHRoZSBib3R0b20tcmlnaHQgY29ybmVyIG9mIHlvdXIgZ2FtZSxcclxuICogeW91J2QgYWRqdXN0IHRoZSB2aWV3cG9ydCB0byBkbyB0aGF0ICh1c2luZyBtZXRob2RzIGxpa2UgYHNldFZpZXdwb3J0YCBhbmQgYHNldFNpemVgKS5cclxuICpcclxuICogSWYgeW91IHdpc2ggdG8gY2hhbmdlIHdoZXJlIHRoZSBDYW1lcmEgaXMgbG9va2luZyBpbiB5b3VyIGdhbWUsIHRoZW4geW91IHNjcm9sbCBpdC4gWW91IGNhbiBkbyB0aGlzXHJcbiAqIHZpYSB0aGUgcHJvcGVydGllcyBgc2Nyb2xsWGAgYW5kIGBzY3JvbGxZYCBvciB0aGUgbWV0aG9kIGBzZXRTY3JvbGxgLiBTY3JvbGxpbmcgaGFzIG5vIGltcGFjdCBvbiB0aGVcclxuICogdmlld3BvcnQsIGFuZCBjaGFuZ2luZyB0aGUgdmlld3BvcnQgaGFzIG5vIGltcGFjdCBvbiB0aGUgc2Nyb2xsaW5nLlxyXG4gKlxyXG4gKiBCeSBkZWZhdWx0IGEgQ2FtZXJhIHdpbGwgcmVuZGVyIGFsbCBHYW1lIE9iamVjdHMgaXQgY2FuIHNlZS4gWW91IGNhbiBjaGFuZ2UgdGhpcyB1c2luZyB0aGUgYGlnbm9yZWAgbWV0aG9kLFxyXG4gKiBhbGxvd2luZyB5b3UgdG8gZmlsdGVyIEdhbWUgT2JqZWN0cyBvdXQgb24gYSBwZXItQ2FtZXJhIGJhc2lzLlxyXG4gKlxyXG4gKiBBIENhbWVyYSBhbHNvIGhhcyBidWlsdC1pbiBzcGVjaWFsIGVmZmVjdHMgaW5jbHVkaW5nIEZhZGUsIEZsYXNoIGFuZCBDYW1lcmEgU2hha2UuXHJcbiAqXHJcbiAqIEBjbGFzcyBDYW1lcmFcclxuICogQG1lbWJlcm9mIFBoYXNlci5DYW1lcmFzLlNjZW5lMkRcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmFcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuRmxpcFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UaW50XHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggcG9zaXRpb24gb2YgdGhlIENhbWVyYSwgcmVsYXRpdmUgdG8gdGhlIHRvcC1sZWZ0IG9mIHRoZSBnYW1lIGNhbnZhcy5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBwb3NpdGlvbiBvZiB0aGUgQ2FtZXJhLCByZWxhdGl2ZSB0byB0aGUgdG9wLWxlZnQgb2YgdGhlIGdhbWUgY2FudmFzLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBUaGUgd2lkdGggb2YgdGhlIENhbWVyYSwgaW4gcGl4ZWxzLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gVGhlIGhlaWdodCBvZiB0aGUgQ2FtZXJhLCBpbiBwaXhlbHMuXHJcbiAqL1xyXG52YXIgQ2FtZXJhID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBFeHRlbmRzOiBCYXNlQ2FtZXJhLFxyXG5cclxuICAgIE1peGluczogW1xyXG4gICAgICAgIENvbXBvbmVudHMuRmxpcCxcclxuICAgICAgICBDb21wb25lbnRzLlRpbnRcclxuICAgIF0sXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBDYW1lcmEgKHgsIHksIHdpZHRoLCBoZWlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgQmFzZUNhbWVyYS5jYWxsKHRoaXMsIHgsIHksIHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBEb2VzIHRoaXMgQ2FtZXJhIGFsbG93IHRoZSBHYW1lIE9iamVjdHMgaXQgcmVuZGVycyB0byByZWNlaXZlIGlucHV0IGV2ZW50cz9cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI2lucHV0RW5hYmxlZFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlucHV0RW5hYmxlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBDYW1lcmEgRmFkZSBlZmZlY3QgaGFuZGxlci5cclxuICAgICAgICAgKiBUbyBmYWRlIHRoaXMgY2FtZXJhIHNlZSB0aGUgYENhbWVyYS5mYWRlYCBtZXRob2RzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjZmFkZUVmZmVjdFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmFkZX1cclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZhZGVFZmZlY3QgPSBuZXcgRWZmZWN0cy5GYWRlKHRoaXMpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgQ2FtZXJhIEZsYXNoIGVmZmVjdCBoYW5kbGVyLlxyXG4gICAgICAgICAqIFRvIGZsYXNoIHRoaXMgY2FtZXJhIHNlZSB0aGUgYENhbWVyYS5mbGFzaGAgbWV0aG9kLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjZmxhc2hFZmZlY3RcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLkZsYXNofVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZmxhc2hFZmZlY3QgPSBuZXcgRWZmZWN0cy5GbGFzaCh0aGlzKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIENhbWVyYSBTaGFrZSBlZmZlY3QgaGFuZGxlci5cclxuICAgICAgICAgKiBUbyBzaGFrZSB0aGlzIGNhbWVyYSBzZWUgdGhlIGBDYW1lcmEuc2hha2VgIG1ldGhvZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI3NoYWtlRWZmZWN0XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5TaGFrZX1cclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNoYWtlRWZmZWN0ID0gbmV3IEVmZmVjdHMuU2hha2UodGhpcyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBDYW1lcmEgUGFuIGVmZmVjdCBoYW5kbGVyLlxyXG4gICAgICAgICAqIFRvIHBhbiB0aGlzIGNhbWVyYSBzZWUgdGhlIGBDYW1lcmEucGFuYCBtZXRob2QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYSNwYW5FZmZlY3RcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlBhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wYW5FZmZlY3QgPSBuZXcgRWZmZWN0cy5QYW4odGhpcyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBDYW1lcmEgUm90YXRlIFRvIGVmZmVjdCBoYW5kbGVyLlxyXG4gICAgICAgICAqIFRvIHJvdGF0ZSB0aGlzIGNhbWVyYSBzZWUgdGhlIGBDYW1lcmEucm90YXRlVG9gIG1ldGhvZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI3JvdGF0ZVRvRWZmZWN0XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5Sb3RhdGVUb31cclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yb3RhdGVUb0VmZmVjdCA9IG5ldyBFZmZlY3RzLlJvdGF0ZVRvKHRoaXMpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgQ2FtZXJhIFpvb20gZWZmZWN0IGhhbmRsZXIuXHJcbiAgICAgICAgICogVG8gem9vbSB0aGlzIGNhbWVyYSBzZWUgdGhlIGBDYW1lcmEuem9vbWAgbWV0aG9kLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjem9vbUVmZmVjdFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuWm9vbX1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy56b29tRWZmZWN0ID0gbmV3IEVmZmVjdHMuWm9vbSh0aGlzKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGxpbmVhciBpbnRlcnBvbGF0aW9uIHZhbHVlIHRvIHVzZSB3aGVuIGZvbGxvd2luZyBhIHRhcmdldC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIENhbiBhbHNvIGJlIHNldCB2aWEgYHNldExlcnBgIG9yIGFzIHBhcnQgb2YgdGhlIGBzdGFydEZvbGxvd2AgY2FsbC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoZSBkZWZhdWx0IHZhbHVlcyBvZiAxIG1lYW5zIHRoZSBjYW1lcmEgd2lsbCBpbnN0YW50bHkgc25hcCB0byB0aGUgdGFyZ2V0IGNvb3JkaW5hdGVzLlxyXG4gICAgICAgICAqIEEgbG93ZXIgdmFsdWUsIHN1Y2ggYXMgMC4xIG1lYW5zIHRoZSBjYW1lcmEgd2lsbCBtb3JlIHNsb3dseSB0cmFjayB0aGUgdGFyZ2V0LCBnaXZpbmdcclxuICAgICAgICAgKiBhIHNtb290aCB0cmFuc2l0aW9uLiBZb3UgY2FuIHNldCB0aGUgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgdmFsdWVzIGluZGVwZW5kZW50bHksIGFuZCBhbHNvXHJcbiAgICAgICAgICogYWRqdXN0IHRoaXMgdmFsdWUgaW4gcmVhbC10aW1lIGR1cmluZyB5b3VyIGdhbWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBCZSBzdXJlIHRvIGtlZXAgdGhlIHZhbHVlIGJldHdlZW4gMCBhbmQgMS4gQSB2YWx1ZSBvZiB6ZXJvIHdpbGwgZGlzYWJsZSB0cmFja2luZyBvbiB0aGF0IGF4aXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYSNsZXJwXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuOS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5sZXJwID0gbmV3IFZlY3RvcjIoMSwgMSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB2YWx1ZXMgc3RvcmVkIGluIHRoaXMgcHJvcGVydHkgYXJlIHN1YnRyYWN0ZWQgZnJvbSB0aGUgQ2FtZXJhIHRhcmdldHMgcG9zaXRpb24sIGFsbG93aW5nIHlvdSB0b1xyXG4gICAgICAgICAqIG9mZnNldCB0aGUgY2FtZXJhIGZyb20gdGhlIGFjdHVhbCB0YXJnZXQgeC95IGNvb3JkaW5hdGVzIGJ5IHRoaXMgYW1vdW50LlxyXG4gICAgICAgICAqIENhbiBhbHNvIGJlIHNldCB2aWEgYHNldEZvbGxvd09mZnNldGAgb3IgYXMgcGFydCBvZiB0aGUgYHN0YXJ0Rm9sbG93YCBjYWxsLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjZm9sbG93T2Zmc2V0XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuOS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5mb2xsb3dPZmZzZXQgPSBuZXcgVmVjdG9yMigpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgQ2FtZXJhIGRlYWQgem9uZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoZSBkZWFkem9uZSBpcyBvbmx5IHVzZWQgd2hlbiB0aGUgY2FtZXJhIGlzIGZvbGxvd2luZyBhIHRhcmdldC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEl0IGRlZmluZXMgYSByZWN0YW5ndWxhciByZWdpb24gd2l0aGluIHdoaWNoIGlmIHRoZSB0YXJnZXQgaXMgcHJlc2VudCwgdGhlIGNhbWVyYSB3aWxsIG5vdCBzY3JvbGwuXHJcbiAgICAgICAgICogSWYgdGhlIHRhcmdldCBtb3ZlcyBvdXRzaWRlIG9mIHRoaXMgYXJlYSwgdGhlIGNhbWVyYSB3aWxsIGJlZ2luIHNjcm9sbGluZyBpbiBvcmRlciB0byBmb2xsb3cgaXQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBUaGUgYGxlcnBgIHZhbHVlcyB0aGF0IHlvdSBjYW4gc2V0IGZvciBhIGZvbGxvd2VyIHRhcmdldCBhbHNvIGFwcGx5IHdoZW4gdXNpbmcgYSBkZWFkem9uZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFlvdSBjYW4gZGlyZWN0bHkgc2V0IHRoaXMgcHJvcGVydHkgdG8gYmUgYW4gaW5zdGFuY2Ugb2YgYSBSZWN0YW5nbGUuIE9yLCB5b3UgY2FuIHVzZSB0aGVcclxuICAgICAgICAgKiBgc2V0RGVhZHpvbmVgIG1ldGhvZCBmb3IgYSBjaGFpbmFibGUgYXBwcm9hY2guXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBUaGUgcmVjdGFuZ2xlIHlvdSBwcm92aWRlIGNhbiBoYXZlIGl0cyBkaW1lbnNpb25zIGFkanVzdGVkIGR5bmFtaWNhbGx5LCBob3dldmVyLCBwbGVhc2VcclxuICAgICAgICAgKiBub3RlIHRoYXQgaXRzIHBvc2l0aW9uIGlzIHVwZGF0ZWQgZXZlcnkgZnJhbWUsIGFzIGl0IGlzIGNvbnN0YW50bHkgcmUtY2VudGVyZWQgb24gdGhlIGNhbWVyYXMgbWlkIHBvaW50LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQ2FsbGluZyBgc2V0RGVhZHpvbmVgIHdpdGggbm8gYXJndW1lbnRzIHdpbGwgcmVzZXQgYW4gYWN0aXZlIGRlYWR6b25lLCBhcyB3aWxsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eVxyXG4gICAgICAgICAqIHRvIGBudWxsYC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI2RlYWR6b25lXHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuR2VvbS5SZWN0YW5nbGV9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGVhZHpvbmUgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJbnRlcm5hbCBmb2xsb3cgdGFyZ2V0IHJlZmVyZW5jZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI19mb2xsb3dcclxuICAgICAgICAgKiBAdHlwZSB7P2FueX1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9mb2xsb3cgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJcyB0aGlzIENhbWVyYSByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIGNhbnZhcyBvciB0byBhIHRleHR1cmU/XHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBFbmFibGUgcmVuZGVyaW5nIHRvIHRleHR1cmUgd2l0aCB0aGUgbWV0aG9kIGBzZXRSZW5kZXJUb1RleHR1cmVgIChqdXN0IGVuYWJsaW5nIHRoaXMgYm9vbGVhbiB3b24ndCBiZSBlbm91Z2gpXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBPbmNlIGVuYWJsZWQgeW91IGNhbiB0b2dnbGUgaXQgYnkgc3dpdGNoaW5nIHRoaXMgcHJvcGVydHkuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBUbyBwcm9wZXJseSByZW1vdmUgYSByZW5kZXIgdGV4dHVyZSB5b3Ugc2hvdWxkIGNhbGwgdGhlIGBjbGVhclJlbmRlclRvVGV4dHVyZSgpYCBtZXRob2QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYSNyZW5kZXJUb1RleHR1cmVcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJlbmRlclRvVGV4dHVyZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGlzIENhbWVyYSBpcyByZW5kZXJpbmcgdG8gYSB0ZXh0dXJlICh2aWEgYHNldFJlbmRlclRvVGV4dHVyZWApIHRoZW4geW91XHJcbiAgICAgICAgICogaGF2ZSB0aGUgb3B0aW9uIHRvIGNvbnRyb2wgaWYgaXQgc2hvdWxkIGFsc28gcmVuZGVyIHRvIHRoZSBHYW1lIGNhbnZhcyBhcyB3ZWxsLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEJ5IGRlZmF1bHQsIGEgQ2FtZXJhIHdpbGwgcmVuZGVyIGJvdGggdG8gaXRzIHRleHR1cmUgYW5kIHRvIHRoZSBHYW1lIGNhbnZhcy5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBIb3dldmVyLCBpZiB5b3Ugc2V0IHRocyBwcm9wZXJ0eSB0byBgZmFsc2VgIGl0IHdpbGwgb25seSByZW5kZXIgdG8gdGhlIHRleHR1cmVcclxuICAgICAgICAgKiBhbmQgc2tpcCByZW5kZXJpbmcgdG8gdGhlIEdhbWUgY2FudmFzLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIFNldHRpbmcgdGhpcyBwcm9wZXJ0eSBpZiB0aGUgQ2FtZXJhIGlzbid0IHJlbmRlcmluZyB0byBhIHRleHR1cmUgaGFzIG5vIGVmZmVjdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI3JlbmRlclRvR2FtZVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yZW5kZXJUb0dhbWUgPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGlzIENhbWVyYSBoYXMgYmVlbiBzZXQgdG8gcmVuZGVyIHRvIGEgdGV4dHVyZSB0aGVuIHRoaXMgaG9sZHMgYSByZWZlcmVuY2VcclxuICAgICAgICAgKiB0byB0aGUgSFRNTCBDYW52YXMgRWxlbWVudCB0aGF0IHRoZSBDYW1lcmEgaXMgZHJhd2luZyB0by5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEVuYWJsZSB0ZXh0dXJlIHJlbmRlcmluZyB1c2luZyB0aGUgbWV0aG9kIGBzZXRSZW5kZXJUb1RleHR1cmVgLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogVGhpcyBpcyBvbmx5IHBvcHVsYXRlZCBpZiBQaGFzZXIgaXMgcnVubmluZyB3aXRoIHRoZSBDYW52YXMgUmVuZGVyZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYSNjYW52YXNcclxuICAgICAgICAgKiBAdHlwZSB7SFRNTENhbnZhc0VsZW1lbnR9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY2FudmFzID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgdGhpcyBDYW1lcmEgaGFzIGJlZW4gc2V0IHRvIHJlbmRlciB0byBhIHRleHR1cmUgdGhlbiB0aGlzIGhvbGRzIGEgcmVmZXJlbmNlXHJcbiAgICAgICAgICogdG8gdGhlIFJlbmRlcmluZyBDb250ZXh0IGJlbG9uZ2luZyB0byB0aGUgQ2FudmFzIGVsZW1lbnQgdGhlIENhbWVyYSBpcyBkcmF3aW5nIHRvLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogRW5hYmxlIHRleHR1cmUgcmVuZGVyaW5nIHVzaW5nIHRoZSBtZXRob2QgYHNldFJlbmRlclRvVGV4dHVyZWAuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBUaGlzIGlzIG9ubHkgcG9wdWxhdGVkIGlmIFBoYXNlciBpcyBydW5uaW5nIHdpdGggdGhlIENhbnZhcyBSZW5kZXJlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI2NvbnRleHRcclxuICAgICAgICAgKiBAdHlwZSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNvbnRleHQgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGlzIENhbWVyYSBoYXMgYmVlbiBzZXQgdG8gcmVuZGVyIHRvIGEgdGV4dHVyZSB0aGVuIHRoaXMgaG9sZHMgYSByZWZlcmVuY2VcclxuICAgICAgICAgKiB0byB0aGUgR0wgVGV4dHVyZSBiZWxvbmdpbmcgdGhlIENhbWVyYSBpcyBkcmF3aW5nIHRvLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogRW5hYmxlIHRleHR1cmUgcmVuZGVyaW5nIHVzaW5nIHRoZSBtZXRob2QgYHNldFJlbmRlclRvVGV4dHVyZWAuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBUaGlzIGlzIG9ubHkgc2V0IGlmIFBoYXNlciBpcyBydW5uaW5nIHdpdGggdGhlIFdlYkdMIFJlbmRlcmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjZ2xUZXh0dXJlXHJcbiAgICAgICAgICogQHR5cGUgez9XZWJHTFRleHR1cmV9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZ2xUZXh0dXJlID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgdGhpcyBDYW1lcmEgaGFzIGJlZW4gc2V0IHRvIHJlbmRlciB0byBhIHRleHR1cmUgdGhlbiB0aGlzIGhvbGRzIGEgcmVmZXJlbmNlXHJcbiAgICAgICAgICogdG8gdGhlIEdMIEZyYW1lIEJ1ZmZlciBiZWxvbmdpbmcgdGhlIENhbWVyYSBpcyBkcmF3aW5nIHRvLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogRW5hYmxlIHRleHR1cmUgcmVuZGVyaW5nIHVzaW5nIHRoZSBtZXRob2QgYHNldFJlbmRlclRvVGV4dHVyZWAuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBUaGlzIGlzIG9ubHkgc2V0IGlmIFBoYXNlciBpcyBydW5uaW5nIHdpdGggdGhlIFdlYkdMIFJlbmRlcmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjZnJhbWVidWZmZXJcclxuICAgICAgICAgKiBAdHlwZSB7P1dlYkdMRnJhbWVidWZmZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZnJhbWVidWZmZXIgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGlzIENhbWVyYSBoYXMgYmVlbiBzZXQgdG8gcmVuZGVyIHRvIGEgdGV4dHVyZSBhbmQgdG8gdXNlIGEgY3VzdG9tIHBpcGVsaW5lLFxyXG4gICAgICAgICAqIHRoZW4gdGhpcyBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgcGlwZWxpbmUgdGhlIENhbWVyYSBpcyBkcmF3aW5nIHdpdGguXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBFbmFibGUgdGV4dHVyZSByZW5kZXJpbmcgdXNpbmcgdGhlIG1ldGhvZCBgc2V0UmVuZGVyVG9UZXh0dXJlYC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoaXMgaXMgb25seSBzZXQgaWYgUGhhc2VyIGlzIHJ1bm5pbmcgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYSNwaXBlbGluZVxyXG4gICAgICAgICAqIEB0eXBlIHthbnl9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucGlwZWxpbmUgPSBudWxsO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIENhbWVyYSB0byByZW5kZXIgdG8gYSB0ZXh0dXJlIGluc3RlYWQgb2YgdG8gdGhlIG1haW4gY2FudmFzLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBDYW1lcmEgd2lsbCByZWRpcmVjdCBhbGwgR2FtZSBPYmplY3RzIGl0J3MgYXNrZWQgdG8gcmVuZGVyIHRvIHRoaXMgdGV4dHVyZS5cclxuICAgICAqXHJcbiAgICAgKiBEdXJpbmcgdGhlIHJlbmRlciBzZXF1ZW5jZSwgdGhlIHRleHR1cmUgaXRzZWxmIHdpbGwgdGhlbiBiZSByZW5kZXJlZCB0byB0aGUgbWFpbiBjYW52YXMuXHJcbiAgICAgKlxyXG4gICAgICogRG9pbmcgdGhpcyBnaXZlcyB5b3UgdGhlIGFiaWxpdHkgdG8gbW9kaWZ5IHRoZSB0ZXh0dXJlIGJlZm9yZSB0aGlzIGhhcHBlbnMsXHJcbiAgICAgKiBhbGxvd2luZyBmb3Igc3BlY2lhbCBlZmZlY3RzIHN1Y2ggYXMgQ2FtZXJhIHNwZWNpZmljIHNoYWRlcnMsIG9yIHBvc3QtcHJvY2Vzc2luZ1xyXG4gICAgICogb24gdGhlIHRleHR1cmUuXHJcbiAgICAgKlxyXG4gICAgICogSWYgcnVubmluZyB1bmRlciBDYW52YXMgdGhlIENhbWVyYSB3aWxsIHJlbmRlciB0byBpdHMgYGNhbnZhc2AgcHJvcGVydHkuXHJcbiAgICAgKlxyXG4gICAgICogSWYgcnVubmluZyB1bmRlciBXZWJHTCB0aGUgQ2FtZXJhIHdpbGwgY3JlYXRlIGEgZnJhbWUgYnVmZmVyLCB3aGljaCBpcyBzdG9yZWQgaW4gaXRzIGBmcmFtZWJ1ZmZlcmAgYW5kIGBnbFRleHR1cmVgIHByb3BlcnRpZXMuXHJcbiAgICAgKlxyXG4gICAgICogSWYgeW91IHNldCBhIGNhbWVyYSB0byByZW5kZXIgdG8gYSB0ZXh0dXJlIHRoZW4gaXQgd2lsbCBlbWl0IDIgZXZlbnRzIGR1cmluZyB0aGUgcmVuZGVyIGxvb3A6XHJcbiAgICAgKlxyXG4gICAgICogRmlyc3QsIGl0IHdpbGwgZW1pdCB0aGUgZXZlbnQgYHByZXJlbmRlcmAuIFRoaXMgaGFwcGVucyByaWdodCBiZWZvcmUgYW55IEdhbWUgT2JqZWN0J3MgYXJlIGRyYXduIHRvIHRoZSBDYW1lcmEgdGV4dHVyZS5cclxuICAgICAqXHJcbiAgICAgKiBUaGVuLCBpdCB3aWxsIGVtaXQgdGhlIGV2ZW50IGBwb3N0cmVuZGVyYC4gVGhpcyBoYXBwZW5zIGFmdGVyIGFsbCBHYW1lIE9iamVjdCdzIGhhdmUgYmVlbiBkcmF3biwgYnV0IHJpZ2h0IGJlZm9yZSB0aGVcclxuICAgICAqIENhbWVyYSB0ZXh0dXJlIGlzIHJlbmRlcmVkIHRvIHRoZSBtYWluIGdhbWUgY2FudmFzLiBJdCdzIHRoZSBmaW5hbCBwb2ludCBhdCB3aGljaCB5b3UgY2FuIG1hbmlwdWxhdGUgdGhlIHRleHR1cmUgYmVmb3JlXHJcbiAgICAgKiBpdCBhcHBlYXJzIGluLWdhbWUuXHJcbiAgICAgKlxyXG4gICAgICogWW91IHNob3VsZCBub3QgZW5hYmxlIHRoaXMgdW5sZXNzIHlvdSBwbGFuIG9uIGFjdHVhbGx5IHVzaW5nIHRoZSB0ZXh0dXJlIGl0IGNyZWF0ZXNcclxuICAgICAqIHNvbWVob3csIG90aGVyd2lzZSB5b3UncmUganVzdCBkb3VibGluZyB0aGUgd29yayByZXF1aXJlZCB0byByZW5kZXIgeW91ciBnYW1lLlxyXG4gICAgICogXHJcbiAgICAgKiBJZiB5b3Ugb25seSByZXF1aXJlIHRoZSBDYW1lcmEgdG8gcmVuZGVyIHRvIGEgdGV4dHVyZSwgYW5kIG5vdCBhbHNvIHRvIHRoZSBHYW1lLFxyXG4gICAgICogdGhlbSBzZXQgdGhlIGByZW5kZXJUb0dhbWVgIHBhcmFtZXRlciB0byBgZmFsc2VgLlxyXG4gICAgICpcclxuICAgICAqIFRvIHRlbXBvcmFyaWx5IGRpc2FibGUgcmVuZGVyaW5nIHRvIGEgdGV4dHVyZSwgdG9nZ2xlIHRoZSBgcmVuZGVyVG9UZXh0dXJlYCBib29sZWFuLlxyXG4gICAgICpcclxuICAgICAqIElmIHlvdSBubyBsb25nZXIgcmVxdWlyZSB0aGUgQ2FtZXJhIHRvIHJlbmRlciB0byBhIHRleHR1cmUsIGNhbGwgdGhlIGBjbGVhclJlbmRlclRvVGV4dHVyZWAgbWV0aG9kLFxyXG4gICAgICogd2hpY2ggd2lsbCBkZWxldGUgdGhlIHJlc3BlY3RpdmUgdGV4dHVyZXMgYW5kIGZyZWUtdXAgcmVzb3VyY2VzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjc2V0UmVuZGVyVG9UZXh0dXJlXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfFBoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFBpcGVsaW5lKX0gW3BpcGVsaW5lXSAtIEFuIG9wdGlvbmFsIFdlYkdMIFBpcGVsaW5lIHRvIHJlbmRlciB3aXRoLCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIHdoaWNoIGlzIHRoZSBuYW1lIG9mIHRoZSBwaXBlbGluZSwgb3IgYSBwaXBlbGluZSByZWZlcmVuY2UuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtyZW5kZXJUb0dhbWU9dHJ1ZV0gLSBJZiB5b3UgZG8gbm90IG5lZWQgdGhlIENhbWVyYSB0byBzdGlsbCByZW5kZXIgdG8gdGhlIEdhbWUsIHNldCB0aGlzIHBhcmFtZXRlciB0byBgZmFsc2VgLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRSZW5kZXJUb1RleHR1cmU6IGZ1bmN0aW9uIChwaXBlbGluZSwgcmVuZGVyVG9HYW1lKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChyZW5kZXJUb0dhbWUgPT09IHVuZGVmaW5lZCkgeyByZW5kZXJUb0dhbWUgPSB0cnVlOyB9XHJcblxyXG4gICAgICAgIHZhciByZW5kZXJlciA9IHRoaXMuc2NlbmUuc3lzLmdhbWUucmVuZGVyZXI7XHJcblxyXG4gICAgICAgIGlmIChyZW5kZXJlci5nbClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2xUZXh0dXJlID0gcmVuZGVyZXIuY3JlYXRlVGV4dHVyZUZyb21Tb3VyY2UobnVsbCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQsIDApO1xyXG4gICAgICAgICAgICB0aGlzLmZyYW1lYnVmZmVyID0gcmVuZGVyZXIuY3JlYXRlRnJhbWVidWZmZXIodGhpcy53aWR0aCwgdGhpcy5oZWlnaHQsIHRoaXMuZ2xUZXh0dXJlLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FudmFzID0gQ2FudmFzUG9vbC5jcmVhdGUyRCh0aGlzLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlbmRlclRvVGV4dHVyZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJUb0dhbWUgPSByZW5kZXJUb0dhbWU7XHJcblxyXG4gICAgICAgIGlmIChwaXBlbGluZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGlwZWxpbmUocGlwZWxpbmUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgV2ViR0wgcGlwZWxpbmUgdGhpcyBDYW1lcmEgaXMgdXNpbmcgd2hlbiByZW5kZXJpbmcgdG8gYSB0ZXh0dXJlLlxyXG4gICAgICpcclxuICAgICAqIFlvdSBjYW4gcGFzcyBlaXRoZXIgdGhlIHN0cmluZy1iYXNlZCBuYW1lIG9mIHRoZSBwaXBlbGluZSwgb3IgYSByZWZlcmVuY2UgdG8gdGhlIHBpcGVsaW5lIGl0c2VsZi5cclxuICAgICAqXHJcbiAgICAgKiBDYWxsIHRoaXMgbWV0aG9kIHdpdGggbm8gYXJndW1lbnRzIHRvIGNsZWFyIGFueSBwcmV2aW91c2x5IHNldCBwaXBlbGluZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI3NldFBpcGVsaW5lXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfFBoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFBpcGVsaW5lKX0gW3BpcGVsaW5lXSAtIFRoZSBXZWJHTCBQaXBlbGluZSB0byByZW5kZXIgd2l0aCwgY2FuIGJlIGVpdGhlciBhIHN0cmluZyB3aGljaCBpcyB0aGUgbmFtZSBvZiB0aGUgcGlwZWxpbmUsIG9yIGEgcGlwZWxpbmUgcmVmZXJlbmNlLiBPciBpZiBsZWZ0IGVtcHR5IGl0IHdpbGwgY2xlYXIgdGhlIHBpcGVsaW5lLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRQaXBlbGluZTogZnVuY3Rpb24gKHBpcGVsaW5lKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0eXBlb2YgcGlwZWxpbmUgPT09ICdzdHJpbmcnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHJlbmRlcmVyID0gdGhpcy5zY2VuZS5zeXMuZ2FtZS5yZW5kZXJlcjtcclxuXHJcbiAgICAgICAgICAgIGlmIChyZW5kZXJlci5nbCAmJiByZW5kZXJlci5oYXNQaXBlbGluZShwaXBlbGluZSkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGlwZWxpbmUgPSByZW5kZXJlci5nZXRQaXBlbGluZShwaXBlbGluZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5waXBlbGluZSA9IHBpcGVsaW5lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhpcyBDYW1lcmEgd2FzIHNldCB0byByZW5kZXIgdG8gYSB0ZXh0dXJlLCB0aGlzIHdpbGwgY2xlYXIgdGhlIHJlc291cmNlcyBpdCB3YXMgdXNpbmcgYW5kXHJcbiAgICAgKiByZWRpcmVjdCBpdCB0byByZW5kZXIgYmFjayB0byB0aGUgcHJpbWFyeSBDYW52YXMgYWdhaW4uXHJcbiAgICAgKlxyXG4gICAgICogSWYgeW91IG9ubHkgd2lzaCB0byB0ZW1wb3JhcmlseSBkaXNhYmxlIHJlbmRlcmluZyB0byBhIHRleHR1cmUgdGhlbiB5b3UgY2FuIHRvZ2dsZSB0aGVcclxuICAgICAqIHByb3BlcnR5IGByZW5kZXJUb1RleHR1cmVgIGluc3RlYWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYSNjbGVhclJlbmRlclRvVGV4dHVyZVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBjbGVhclJlbmRlclRvVGV4dHVyZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2NlbmUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgcmVuZGVyZXIgPSB0aGlzLnNjZW5lLnN5cy5nYW1lLnJlbmRlcmVyO1xyXG5cclxuICAgICAgICBpZiAoIXJlbmRlcmVyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlbmRlcmVyLmdsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZnJhbWVidWZmZXIpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJlbmRlcmVyLmRlbGV0ZUZyYW1lYnVmZmVyKHRoaXMuZnJhbWVidWZmZXIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5nbFRleHR1cmUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJlbmRlcmVyLmRlbGV0ZVRleHR1cmUodGhpcy5nbFRleHR1cmUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmZyYW1lYnVmZmVyID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy5nbFRleHR1cmUgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLnBpcGVsaW5lID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgQ2FudmFzUG9vbC5yZW1vdmUodGhpcyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNhbnZhcyA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlbmRlclRvVGV4dHVyZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBDYW1lcmEgZGVhZCB6b25lLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBkZWFkem9uZSBpcyBvbmx5IHVzZWQgd2hlbiB0aGUgY2FtZXJhIGlzIGZvbGxvd2luZyBhIHRhcmdldC5cclxuICAgICAqXHJcbiAgICAgKiBJdCBkZWZpbmVzIGEgcmVjdGFuZ3VsYXIgcmVnaW9uIHdpdGhpbiB3aGljaCBpZiB0aGUgdGFyZ2V0IGlzIHByZXNlbnQsIHRoZSBjYW1lcmEgd2lsbCBub3Qgc2Nyb2xsLlxyXG4gICAgICogSWYgdGhlIHRhcmdldCBtb3ZlcyBvdXRzaWRlIG9mIHRoaXMgYXJlYSwgdGhlIGNhbWVyYSB3aWxsIGJlZ2luIHNjcm9sbGluZyBpbiBvcmRlciB0byBmb2xsb3cgaXQuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIGRlYWR6b25lIHJlY3RhbmdsZSBpcyByZS1wb3NpdGlvbmVkIGV2ZXJ5IGZyYW1lIHNvIHRoYXQgaXQgaXMgY2VudGVyZWQgb24gdGhlIG1pZC1wb2ludFxyXG4gICAgICogb2YgdGhlIGNhbWVyYS4gVGhpcyBhbGxvd3MgeW91IHRvIHVzZSB0aGUgb2JqZWN0IGZvciBhZGRpdGlvbmFsIGdhbWUgcmVsYXRlZCBjaGVja3MsIHN1Y2ggYXNcclxuICAgICAqIHRlc3RpbmcgaWYgYW4gb2JqZWN0IGlzIHdpdGhpbiBpdCBvciBub3QgdmlhIGEgUmVjdGFuZ2xlLmNvbnRhaW5zIGNhbGwuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIGBsZXJwYCB2YWx1ZXMgdGhhdCB5b3UgY2FuIHNldCBmb3IgYSBmb2xsb3dlciB0YXJnZXQgYWxzbyBhcHBseSB3aGVuIHVzaW5nIGEgZGVhZHpvbmUuXHJcbiAgICAgKlxyXG4gICAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCB3aXRoIG5vIGFyZ3VtZW50cyB3aWxsIHJlc2V0IGFuIGFjdGl2ZSBkZWFkem9uZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI3NldERlYWR6b25lXHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt3aWR0aF0gLSBUaGUgd2lkdGggb2YgdGhlIGRlYWR6b25lIHJlY3RhbmdsZSBpbiBwaXhlbHMuIElmIG5vdCBzcGVjaWZpZWQgdGhlIGRlYWR6b25lIGlzIHJlbW92ZWQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2hlaWdodF0gLSBUaGUgaGVpZ2h0IG9mIHRoZSBkZWFkem9uZSByZWN0YW5nbGUgaW4gcGl4ZWxzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXREZWFkem9uZTogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHdpZHRoID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmRlYWR6b25lID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZGVhZHpvbmUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGVhZHpvbmUud2lkdGggPSB3aWR0aDtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGVhZHpvbmUuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kZWFkem9uZSA9IG5ldyBSZWN0YW5nbGUoMCwgMCwgd2lkdGgsIGhlaWdodCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9mb2xsb3cpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhciBvcmlnaW5YID0gdGhpcy53aWR0aCAvIDI7XHJcbiAgICAgICAgICAgICAgICB2YXIgb3JpZ2luWSA9IHRoaXMuaGVpZ2h0IC8gMjtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXIgZnggPSB0aGlzLl9mb2xsb3cueCAtIHRoaXMuZm9sbG93T2Zmc2V0Lng7XHJcbiAgICAgICAgICAgICAgICB2YXIgZnkgPSB0aGlzLl9mb2xsb3cueSAtIHRoaXMuZm9sbG93T2Zmc2V0Lnk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5taWRQb2ludC5zZXQoZngsIGZ5KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFggPSBmeCAtIG9yaWdpblg7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFkgPSBmeSAtIG9yaWdpblk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIENlbnRlck9uKHRoaXMuZGVhZHpvbmUsIHRoaXMubWlkUG9pbnQueCwgdGhpcy5taWRQb2ludC55KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZhZGVzIHRoZSBDYW1lcmEgaW4gZnJvbSB0aGUgZ2l2ZW4gY29sb3Igb3ZlciB0aGUgZHVyYXRpb24gc3BlY2lmaWVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjZmFkZUluXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjRkFERV9JTl9TVEFSVFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI0ZBREVfSU5fQ09NUExFVEVcclxuICAgICAqIEBzaW5jZSAzLjMuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2R1cmF0aW9uPTEwMDBdIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QgaW4gbWlsbGlzZWNvbmRzLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbcmVkPTBdIC0gVGhlIGFtb3VudCB0byBmYWRlIHRoZSByZWQgY2hhbm5lbCB0b3dhcmRzLiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZ3JlZW49MF0gLSBUaGUgYW1vdW50IHRvIGZhZGUgdGhlIGdyZWVuIGNoYW5uZWwgdG93YXJkcy4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2JsdWU9MF0gLSBUaGUgYW1vdW50IHRvIGZhZGUgdGhlIGJsdWUgY2hhbm5lbCB0b3dhcmRzLiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gW2NhbGxiYWNrXSAtIFRoaXMgY2FsbGJhY2sgd2lsbCBiZSBpbnZva2VkIGV2ZXJ5IGZyYW1lIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGVmZmVjdC5cclxuICAgICAqIEl0IGlzIHNlbnQgdHdvIGFyZ3VtZW50czogQSByZWZlcmVuY2UgdG8gdGhlIGNhbWVyYSBhbmQgYSBwcm9ncmVzcyBhbW91bnQgYmV0d2VlbiAwIGFuZCAxIGluZGljYXRpbmcgaG93IGNvbXBsZXRlIHRoZSBlZmZlY3QgaXMuXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gW2NvbnRleHRdIC0gVGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGNhbGxiYWNrIGlzIGludm9rZWQuIERlZmF1bHRzIHRvIHRoZSBTY2VuZSB0byB3aGljaCB0aGUgQ2FtZXJhIGJlbG9uZ3MuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGZhZGVJbjogZnVuY3Rpb24gKGR1cmF0aW9uLCByZWQsIGdyZWVuLCBibHVlLCBjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mYWRlRWZmZWN0LnN0YXJ0KGZhbHNlLCBkdXJhdGlvbiwgcmVkLCBncmVlbiwgYmx1ZSwgdHJ1ZSwgY2FsbGJhY2ssIGNvbnRleHQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZhZGVzIHRoZSBDYW1lcmEgb3V0IHRvIHRoZSBnaXZlbiBjb2xvciBvdmVyIHRoZSBkdXJhdGlvbiBzcGVjaWZpZWQuXHJcbiAgICAgKiBUaGlzIGlzIGFuIGFsaWFzIGZvciBDYW1lcmEuZmFkZSB0aGF0IGZvcmNlcyB0aGUgZmFkZSB0byBzdGFydCwgcmVnYXJkbGVzcyBvZiBleGlzdGluZyBmYWRlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI2ZhZGVPdXRcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNGQURFX09VVF9TVEFSVFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI0ZBREVfT1VUX0NPTVBMRVRFXHJcbiAgICAgKiBAc2luY2UgMy4zLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtkdXJhdGlvbj0xMDAwXSAtIFRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0IGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3JlZD0wXSAtIFRoZSBhbW91bnQgdG8gZmFkZSB0aGUgcmVkIGNoYW5uZWwgdG93YXJkcy4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2dyZWVuPTBdIC0gVGhlIGFtb3VudCB0byBmYWRlIHRoZSBncmVlbiBjaGFubmVsIHRvd2FyZHMuIEEgdmFsdWUgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtibHVlPTBdIC0gVGhlIGFtb3VudCB0byBmYWRlIHRoZSBibHVlIGNoYW5uZWwgdG93YXJkcy4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtjYWxsYmFja10gLSBUaGlzIGNhbGxiYWNrIHdpbGwgYmUgaW52b2tlZCBldmVyeSBmcmFtZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QuXHJcbiAgICAgKiBJdCBpcyBzZW50IHR3byBhcmd1bWVudHM6IEEgcmVmZXJlbmNlIHRvIHRoZSBjYW1lcmEgYW5kIGEgcHJvZ3Jlc3MgYW1vdW50IGJldHdlZW4gMCBhbmQgMSBpbmRpY2F0aW5nIGhvdyBjb21wbGV0ZSB0aGUgZWZmZWN0IGlzLlxyXG4gICAgICogQHBhcmFtIHthbnl9IFtjb250ZXh0XSAtIFRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBjYWxsYmFjayBpcyBpbnZva2VkLiBEZWZhdWx0cyB0byB0aGUgU2NlbmUgdG8gd2hpY2ggdGhlIENhbWVyYSBiZWxvbmdzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBmYWRlT3V0OiBmdW5jdGlvbiAoZHVyYXRpb24sIHJlZCwgZ3JlZW4sIGJsdWUsIGNhbGxiYWNrLCBjb250ZXh0KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZhZGVFZmZlY3Quc3RhcnQodHJ1ZSwgZHVyYXRpb24sIHJlZCwgZ3JlZW4sIGJsdWUsIHRydWUsIGNhbGxiYWNrLCBjb250ZXh0KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGYWRlcyB0aGUgQ2FtZXJhIGZyb20gdGhlIGdpdmVuIGNvbG9yIHRvIHRyYW5zcGFyZW50IG92ZXIgdGhlIGR1cmF0aW9uIHNwZWNpZmllZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI2ZhZGVGcm9tXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjRkFERV9JTl9TVEFSVFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI0ZBREVfSU5fQ09NUExFVEVcclxuICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2R1cmF0aW9uPTEwMDBdIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QgaW4gbWlsbGlzZWNvbmRzLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbcmVkPTBdIC0gVGhlIGFtb3VudCB0byBmYWRlIHRoZSByZWQgY2hhbm5lbCB0b3dhcmRzLiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZ3JlZW49MF0gLSBUaGUgYW1vdW50IHRvIGZhZGUgdGhlIGdyZWVuIGNoYW5uZWwgdG93YXJkcy4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2JsdWU9MF0gLSBUaGUgYW1vdW50IHRvIGZhZGUgdGhlIGJsdWUgY2hhbm5lbCB0b3dhcmRzLiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZm9yY2U9ZmFsc2VdIC0gRm9yY2UgdGhlIGVmZmVjdCB0byBzdGFydCBpbW1lZGlhdGVseSwgZXZlbiBpZiBhbHJlYWR5IHJ1bm5pbmcuXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gVGhpcyBjYWxsYmFjayB3aWxsIGJlIGludm9rZWQgZXZlcnkgZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gICAgICogSXQgaXMgc2VudCB0d28gYXJndW1lbnRzOiBBIHJlZmVyZW5jZSB0byB0aGUgY2FtZXJhIGFuZCBhIHByb2dyZXNzIGFtb3VudCBiZXR3ZWVuIDAgYW5kIDEgaW5kaWNhdGluZyBob3cgY29tcGxldGUgdGhlIGVmZmVjdCBpcy5cclxuICAgICAqIEBwYXJhbSB7YW55fSBbY29udGV4dF0gLSBUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgY2FsbGJhY2sgaXMgaW52b2tlZC4gRGVmYXVsdHMgdG8gdGhlIFNjZW5lIHRvIHdoaWNoIHRoZSBDYW1lcmEgYmVsb25ncy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENhbWVyYSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgZmFkZUZyb206IGZ1bmN0aW9uIChkdXJhdGlvbiwgcmVkLCBncmVlbiwgYmx1ZSwgZm9yY2UsIGNhbGxiYWNrLCBjb250ZXh0KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZhZGVFZmZlY3Quc3RhcnQoZmFsc2UsIGR1cmF0aW9uLCByZWQsIGdyZWVuLCBibHVlLCBmb3JjZSwgY2FsbGJhY2ssIGNvbnRleHQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZhZGVzIHRoZSBDYW1lcmEgZnJvbSB0cmFuc3BhcmVudCB0byB0aGUgZ2l2ZW4gY29sb3Igb3ZlciB0aGUgZHVyYXRpb24gc3BlY2lmaWVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjZmFkZVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI0ZBREVfT1VUX1NUQVJUXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjRkFERV9PVVRfQ09NUExFVEVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2R1cmF0aW9uPTEwMDBdIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QgaW4gbWlsbGlzZWNvbmRzLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbcmVkPTBdIC0gVGhlIGFtb3VudCB0byBmYWRlIHRoZSByZWQgY2hhbm5lbCB0b3dhcmRzLiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZ3JlZW49MF0gLSBUaGUgYW1vdW50IHRvIGZhZGUgdGhlIGdyZWVuIGNoYW5uZWwgdG93YXJkcy4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2JsdWU9MF0gLSBUaGUgYW1vdW50IHRvIGZhZGUgdGhlIGJsdWUgY2hhbm5lbCB0b3dhcmRzLiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZm9yY2U9ZmFsc2VdIC0gRm9yY2UgdGhlIGVmZmVjdCB0byBzdGFydCBpbW1lZGlhdGVseSwgZXZlbiBpZiBhbHJlYWR5IHJ1bm5pbmcuXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2FsbGJhY2tdIC0gVGhpcyBjYWxsYmFjayB3aWxsIGJlIGludm9rZWQgZXZlcnkgZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gICAgICogSXQgaXMgc2VudCB0d28gYXJndW1lbnRzOiBBIHJlZmVyZW5jZSB0byB0aGUgY2FtZXJhIGFuZCBhIHByb2dyZXNzIGFtb3VudCBiZXR3ZWVuIDAgYW5kIDEgaW5kaWNhdGluZyBob3cgY29tcGxldGUgdGhlIGVmZmVjdCBpcy5cclxuICAgICAqIEBwYXJhbSB7YW55fSBbY29udGV4dF0gLSBUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgY2FsbGJhY2sgaXMgaW52b2tlZC4gRGVmYXVsdHMgdG8gdGhlIFNjZW5lIHRvIHdoaWNoIHRoZSBDYW1lcmEgYmVsb25ncy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENhbWVyYSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgZmFkZTogZnVuY3Rpb24gKGR1cmF0aW9uLCByZWQsIGdyZWVuLCBibHVlLCBmb3JjZSwgY2FsbGJhY2ssIGNvbnRleHQpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmFkZUVmZmVjdC5zdGFydCh0cnVlLCBkdXJhdGlvbiwgcmVkLCBncmVlbiwgYmx1ZSwgZm9yY2UsIGNhbGxiYWNrLCBjb250ZXh0KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFzaGVzIHRoZSBDYW1lcmEgYnkgc2V0dGluZyBpdCB0byB0aGUgZ2l2ZW4gY29sb3IgaW1tZWRpYXRlbHkgYW5kIHRoZW4gZmFkaW5nIGl0IGF3YXkgYWdhaW4gcXVpY2tseSBvdmVyIHRoZSBkdXJhdGlvbiBzcGVjaWZpZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYSNmbGFzaFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI0ZMQVNIX1NUQVJUXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjRkxBU0hfQ09NUExFVEVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2R1cmF0aW9uPTI1MF0gLSBUaGUgZHVyYXRpb24gb2YgdGhlIGVmZmVjdCBpbiBtaWxsaXNlY29uZHMuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtyZWQ9MjU1XSAtIFRoZSBhbW91bnQgdG8gZmFkZSB0aGUgcmVkIGNoYW5uZWwgdG93YXJkcy4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2dyZWVuPTI1NV0gLSBUaGUgYW1vdW50IHRvIGZhZGUgdGhlIGdyZWVuIGNoYW5uZWwgdG93YXJkcy4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2JsdWU9MjU1XSAtIFRoZSBhbW91bnQgdG8gZmFkZSB0aGUgYmx1ZSBjaGFubmVsIHRvd2FyZHMuIEEgdmFsdWUgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmb3JjZT1mYWxzZV0gLSBGb3JjZSB0aGUgZWZmZWN0IHRvIHN0YXJ0IGltbWVkaWF0ZWx5LCBldmVuIGlmIGFscmVhZHkgcnVubmluZy5cclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtjYWxsYmFja10gLSBUaGlzIGNhbGxiYWNrIHdpbGwgYmUgaW52b2tlZCBldmVyeSBmcmFtZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QuXHJcbiAgICAgKiBJdCBpcyBzZW50IHR3byBhcmd1bWVudHM6IEEgcmVmZXJlbmNlIHRvIHRoZSBjYW1lcmEgYW5kIGEgcHJvZ3Jlc3MgYW1vdW50IGJldHdlZW4gMCBhbmQgMSBpbmRpY2F0aW5nIGhvdyBjb21wbGV0ZSB0aGUgZWZmZWN0IGlzLlxyXG4gICAgICogQHBhcmFtIHthbnl9IFtjb250ZXh0XSAtIFRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBjYWxsYmFjayBpcyBpbnZva2VkLiBEZWZhdWx0cyB0byB0aGUgU2NlbmUgdG8gd2hpY2ggdGhlIENhbWVyYSBiZWxvbmdzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBmbGFzaDogZnVuY3Rpb24gKGR1cmF0aW9uLCByZWQsIGdyZWVuLCBibHVlLCBmb3JjZSwgY2FsbGJhY2ssIGNvbnRleHQpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmxhc2hFZmZlY3Quc3RhcnQoZHVyYXRpb24sIHJlZCwgZ3JlZW4sIGJsdWUsIGZvcmNlLCBjYWxsYmFjaywgY29udGV4dCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hha2VzIHRoZSBDYW1lcmEgYnkgdGhlIGdpdmVuIGludGVuc2l0eSBvdmVyIHRoZSBkdXJhdGlvbiBzcGVjaWZpZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYSNzaGFrZVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1NIQUtFX1NUQVJUXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjU0hBS0VfQ09NUExFVEVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2R1cmF0aW9uPTEwMF0gLSBUaGUgZHVyYXRpb24gb2YgdGhlIGVmZmVjdCBpbiBtaWxsaXNlY29uZHMuXHJcbiAgICAgKiBAcGFyYW0geyhudW1iZXJ8UGhhc2VyLk1hdGguVmVjdG9yMil9IFtpbnRlbnNpdHk9MC4wNV0gLSBUaGUgaW50ZW5zaXR5IG9mIHRoZSBzaGFrZS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ZvcmNlPWZhbHNlXSAtIEZvcmNlIHRoZSBzaGFrZSBlZmZlY3QgdG8gc3RhcnQgaW1tZWRpYXRlbHksIGV2ZW4gaWYgYWxyZWFkeSBydW5uaW5nLlxyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gW2NhbGxiYWNrXSAtIFRoaXMgY2FsbGJhY2sgd2lsbCBiZSBpbnZva2VkIGV2ZXJ5IGZyYW1lIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGVmZmVjdC5cclxuICAgICAqIEl0IGlzIHNlbnQgdHdvIGFyZ3VtZW50czogQSByZWZlcmVuY2UgdG8gdGhlIGNhbWVyYSBhbmQgYSBwcm9ncmVzcyBhbW91bnQgYmV0d2VlbiAwIGFuZCAxIGluZGljYXRpbmcgaG93IGNvbXBsZXRlIHRoZSBlZmZlY3QgaXMuXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gW2NvbnRleHRdIC0gVGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGNhbGxiYWNrIGlzIGludm9rZWQuIERlZmF1bHRzIHRvIHRoZSBTY2VuZSB0byB3aGljaCB0aGUgQ2FtZXJhIGJlbG9uZ3MuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNoYWtlOiBmdW5jdGlvbiAoZHVyYXRpb24sIGludGVuc2l0eSwgZm9yY2UsIGNhbGxiYWNrLCBjb250ZXh0KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNoYWtlRWZmZWN0LnN0YXJ0KGR1cmF0aW9uLCBpbnRlbnNpdHksIGZvcmNlLCBjYWxsYmFjaywgY29udGV4dCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBlZmZlY3Qgd2lsbCBzY3JvbGwgdGhlIENhbWVyYSBzbyB0aGF0IHRoZSBjZW50ZXIgb2YgaXRzIHZpZXdwb3J0IGZpbmlzaGVzIGF0IHRoZSBnaXZlbiBkZXN0aW5hdGlvbixcclxuICAgICAqIG92ZXIgdGhlIGR1cmF0aW9uIGFuZCB3aXRoIHRoZSBlYXNlIHNwZWNpZmllZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI3BhblxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1BBTl9TVEFSVFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1BBTl9DT01QTEVURVxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGRlc3RpbmF0aW9uIHggY29vcmRpbmF0ZSB0byBzY3JvbGwgdGhlIGNlbnRlciBvZiB0aGUgQ2FtZXJhIHZpZXdwb3J0IHRvLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgZGVzdGluYXRpb24geSBjb29yZGluYXRlIHRvIHNjcm9sbCB0aGUgY2VudGVyIG9mIHRoZSBDYW1lcmEgdmlld3BvcnQgdG8uXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtkdXJhdGlvbj0xMDAwXSAtIFRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0IGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xmdW5jdGlvbil9IFtlYXNlPSdMaW5lYXInXSAtIFRoZSBlYXNlIHRvIHVzZSBmb3IgdGhlIHBhbi4gQ2FuIGJlIGFueSBvZiB0aGUgUGhhc2VyIEVhc2luZyBjb25zdGFudHMgb3IgYSBjdXN0b20gZnVuY3Rpb24uXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmb3JjZT1mYWxzZV0gLSBGb3JjZSB0aGUgcGFuIGVmZmVjdCB0byBzdGFydCBpbW1lZGlhdGVseSwgZXZlbiBpZiBhbHJlYWR5IHJ1bm5pbmcuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhUGFuQ2FsbGJhY2t9IFtjYWxsYmFja10gLSBUaGlzIGNhbGxiYWNrIHdpbGwgYmUgaW52b2tlZCBldmVyeSBmcmFtZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QuXHJcbiAgICAgKiBJdCBpcyBzZW50IGZvdXIgYXJndW1lbnRzOiBBIHJlZmVyZW5jZSB0byB0aGUgY2FtZXJhLCBhIHByb2dyZXNzIGFtb3VudCBiZXR3ZWVuIDAgYW5kIDEgaW5kaWNhdGluZyBob3cgY29tcGxldGUgdGhlIGVmZmVjdCBpcyxcclxuICAgICAqIHRoZSBjdXJyZW50IGNhbWVyYSBzY3JvbGwgeCBjb29yZGluYXRlIGFuZCB0aGUgY3VycmVudCBjYW1lcmEgc2Nyb2xsIHkgY29vcmRpbmF0ZS5cclxuICAgICAqIEBwYXJhbSB7YW55fSBbY29udGV4dF0gLSBUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgY2FsbGJhY2sgaXMgaW52b2tlZC4gRGVmYXVsdHMgdG8gdGhlIFNjZW5lIHRvIHdoaWNoIHRoZSBDYW1lcmEgYmVsb25ncy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENhbWVyYSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcGFuOiBmdW5jdGlvbiAoeCwgeSwgZHVyYXRpb24sIGVhc2UsIGZvcmNlLCBjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wYW5FZmZlY3Quc3RhcnQoeCwgeSwgZHVyYXRpb24sIGVhc2UsIGZvcmNlLCBjYWxsYmFjaywgY29udGV4dCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBlZmZlY3Qgd2lsbCByb3RhdGUgdGhlIENhbWVyYSBzbyB0aGF0IHRoZSB2aWV3cG9ydCBmaW5pc2hlcyBhdCB0aGUgZ2l2ZW4gYW5nbGUgaW4gcmFkaWFucyxcclxuICAgICAqIG92ZXIgdGhlIGR1cmF0aW9uIGFuZCB3aXRoIHRoZSBlYXNlIHNwZWNpZmllZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI3JvdGF0ZVRvXHJcbiAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHJhZGlhbnMgLSBUaGUgZGVzdGluYXRpb24gYW5nbGUgaW4gcmFkaWFucyB0byByb3RhdGUgdGhlIENhbWVyYSB2aWV3cG9ydCB0by4gSWYgdGhlIGFuZ2xlIGlzIHBvc2l0aXZlIHRoZW4gdGhlIHJvdGF0aW9uIGlzIGNsb2Nrd2lzZSBlbHNlIGFudGljbG9ja3dpc2VcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Nob3J0ZXN0UGF0aD1mYWxzZV0gLSBJZiBzaG9ydGVzdCBwYXRoIGlzIHNldCB0byB0cnVlIHRoZSBjYW1lcmEgd2lsbCByb3RhdGUgaW4gdGhlIHF1aWNrZXN0IGRpcmVjdGlvbiBjbG9ja3dpc2Ugb3IgYW50aS1jbG9ja3dpc2UuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtkdXJhdGlvbj0xMDAwXSAtIFRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0IGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xmdW5jdGlvbil9IFtlYXNlPSdMaW5lYXInXSAtIFRoZSBlYXNlIHRvIHVzZSBmb3IgdGhlIHJvdGF0aW9uLiBDYW4gYmUgYW55IG9mIHRoZSBQaGFzZXIgRWFzaW5nIGNvbnN0YW50cyBvciBhIGN1c3RvbSBmdW5jdGlvbi5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ZvcmNlPWZhbHNlXSAtIEZvcmNlIHRoZSByb3RhdGlvbiBlZmZlY3QgdG8gc3RhcnQgaW1tZWRpYXRlbHksIGV2ZW4gaWYgYWxyZWFkeSBydW5uaW5nLlxyXG4gICAgICogQHBhcmFtIHtDYW1lcmFSb3RhdGVDYWxsYmFja30gW2NhbGxiYWNrXSAtIFRoaXMgY2FsbGJhY2sgd2lsbCBiZSBpbnZva2VkIGV2ZXJ5IGZyYW1lIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGVmZmVjdC5cclxuICAgICAqIEl0IGlzIHNlbnQgZm91ciBhcmd1bWVudHM6IEEgcmVmZXJlbmNlIHRvIHRoZSBjYW1lcmEsIGEgcHJvZ3Jlc3MgYW1vdW50IGJldHdlZW4gMCBhbmQgMSBpbmRpY2F0aW5nIGhvdyBjb21wbGV0ZSB0aGUgZWZmZWN0IGlzLFxyXG4gICAgICogdGhlIGN1cnJlbnQgY2FtZXJhIHJvdGF0aW9uIGFuZ2xlIGluIHJhZGlhbnMuXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gW2NvbnRleHRdIC0gVGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGNhbGxiYWNrIGlzIGludm9rZWQuIERlZmF1bHRzIHRvIHRoZSBTY2VuZSB0byB3aGljaCB0aGUgQ2FtZXJhIGJlbG9uZ3MuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICByb3RhdGVUbzogZnVuY3Rpb24gKHJhZGlhbnMsIHNob3J0ZXN0UGF0aCwgZHVyYXRpb24sIGVhc2UsIGZvcmNlLCBjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yb3RhdGVUb0VmZmVjdC5zdGFydChyYWRpYW5zLCBzaG9ydGVzdFBhdGgsIGR1cmF0aW9uLCBlYXNlLCBmb3JjZSwgY2FsbGJhY2ssIGNvbnRleHQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZWZmZWN0IHdpbGwgem9vbSB0aGUgQ2FtZXJhIHRvIHRoZSBnaXZlbiBzY2FsZSwgb3ZlciB0aGUgZHVyYXRpb24gYW5kIHdpdGggdGhlIGVhc2Ugc3BlY2lmaWVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjem9vbVRvXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjWk9PTV9TVEFSVFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1pPT01fQ09NUExFVEVcclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gem9vbSAtIFRoZSB0YXJnZXQgQ2FtZXJhIHpvb20gdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtkdXJhdGlvbj0xMDAwXSAtIFRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0IGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xmdW5jdGlvbil9IFtlYXNlPSdMaW5lYXInXSAtIFRoZSBlYXNlIHRvIHVzZSBmb3IgdGhlIHBhbi4gQ2FuIGJlIGFueSBvZiB0aGUgUGhhc2VyIEVhc2luZyBjb25zdGFudHMgb3IgYSBjdXN0b20gZnVuY3Rpb24uXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmb3JjZT1mYWxzZV0gLSBGb3JjZSB0aGUgcGFuIGVmZmVjdCB0byBzdGFydCBpbW1lZGlhdGVseSwgZXZlbiBpZiBhbHJlYWR5IHJ1bm5pbmcuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhUGFuQ2FsbGJhY2t9IFtjYWxsYmFja10gLSBUaGlzIGNhbGxiYWNrIHdpbGwgYmUgaW52b2tlZCBldmVyeSBmcmFtZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QuXHJcbiAgICAgKiBJdCBpcyBzZW50IGZvdXIgYXJndW1lbnRzOiBBIHJlZmVyZW5jZSB0byB0aGUgY2FtZXJhLCBhIHByb2dyZXNzIGFtb3VudCBiZXR3ZWVuIDAgYW5kIDEgaW5kaWNhdGluZyBob3cgY29tcGxldGUgdGhlIGVmZmVjdCBpcyxcclxuICAgICAqIHRoZSBjdXJyZW50IGNhbWVyYSBzY3JvbGwgeCBjb29yZGluYXRlIGFuZCB0aGUgY3VycmVudCBjYW1lcmEgc2Nyb2xsIHkgY29vcmRpbmF0ZS5cclxuICAgICAqIEBwYXJhbSB7YW55fSBbY29udGV4dF0gLSBUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgY2FsbGJhY2sgaXMgaW52b2tlZC4gRGVmYXVsdHMgdG8gdGhlIFNjZW5lIHRvIHdoaWNoIHRoZSBDYW1lcmEgYmVsb25ncy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENhbWVyYSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgem9vbVRvOiBmdW5jdGlvbiAoem9vbSwgZHVyYXRpb24sIGVhc2UsIGZvcmNlLCBjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy56b29tRWZmZWN0LnN0YXJ0KHpvb20sIGR1cmF0aW9uLCBlYXNlLCBmb3JjZSwgY2FsbGJhY2ssIGNvbnRleHQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIHByZVJlbmRlciBzdGVwLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjcHJlUmVuZGVyXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmVzb2x1dGlvbiAtIFRoZSBnYW1lIHJlc29sdXRpb24sIGFzIHNldCBpbiB0aGUgU2NhbGUgTWFuYWdlci5cclxuICAgICAqL1xyXG4gICAgcHJlUmVuZGVyOiBmdW5jdGlvbiAocmVzb2x1dGlvbilcclxuICAgIHtcclxuICAgICAgICB2YXIgd2lkdGggPSB0aGlzLndpZHRoO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSB0aGlzLmhlaWdodDtcclxuXHJcbiAgICAgICAgdmFyIGhhbGZXaWR0aCA9IHdpZHRoICogMC41O1xyXG4gICAgICAgIHZhciBoYWxmSGVpZ2h0ID0gaGVpZ2h0ICogMC41O1xyXG5cclxuICAgICAgICB2YXIgem9vbSA9IHRoaXMuem9vbSAqIHJlc29sdXRpb247XHJcbiAgICAgICAgdmFyIG1hdHJpeCA9IHRoaXMubWF0cml4O1xyXG5cclxuICAgICAgICB2YXIgb3JpZ2luWCA9IHdpZHRoICogdGhpcy5vcmlnaW5YO1xyXG4gICAgICAgIHZhciBvcmlnaW5ZID0gaGVpZ2h0ICogdGhpcy5vcmlnaW5ZO1xyXG5cclxuICAgICAgICB2YXIgZm9sbG93ID0gdGhpcy5fZm9sbG93O1xyXG4gICAgICAgIHZhciBkZWFkem9uZSA9IHRoaXMuZGVhZHpvbmU7XHJcblxyXG4gICAgICAgIHZhciBzeCA9IHRoaXMuc2Nyb2xsWDtcclxuICAgICAgICB2YXIgc3kgPSB0aGlzLnNjcm9sbFk7XHJcblxyXG4gICAgICAgIGlmIChkZWFkem9uZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIENlbnRlck9uKGRlYWR6b25lLCB0aGlzLm1pZFBvaW50LngsIHRoaXMubWlkUG9pbnQueSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZm9sbG93ICYmICF0aGlzLnBhbkVmZmVjdC5pc1J1bm5pbmcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgZnggPSAoZm9sbG93LnggLSB0aGlzLmZvbGxvd09mZnNldC54KTtcclxuICAgICAgICAgICAgdmFyIGZ5ID0gKGZvbGxvdy55IC0gdGhpcy5mb2xsb3dPZmZzZXQueSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoZGVhZHpvbmUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlmIChmeCA8IGRlYWR6b25lLngpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3ggPSBMaW5lYXIoc3gsIHN4IC0gKGRlYWR6b25lLnggLSBmeCksIHRoaXMubGVycC54KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZ4ID4gZGVhZHpvbmUucmlnaHQpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3ggPSBMaW5lYXIoc3gsIHN4ICsgKGZ4IC0gZGVhZHpvbmUucmlnaHQpLCB0aGlzLmxlcnAueCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGZ5IDwgZGVhZHpvbmUueSlcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBzeSA9IExpbmVhcihzeSwgc3kgLSAoZGVhZHpvbmUueSAtIGZ5KSwgdGhpcy5sZXJwLnkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoZnkgPiBkZWFkem9uZS5ib3R0b20pXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3kgPSBMaW5lYXIoc3ksIHN5ICsgKGZ5IC0gZGVhZHpvbmUuYm90dG9tKSwgdGhpcy5sZXJwLnkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgc3ggPSBMaW5lYXIoc3gsIGZ4IC0gb3JpZ2luWCwgdGhpcy5sZXJwLngpO1xyXG4gICAgICAgICAgICAgICAgc3kgPSBMaW5lYXIoc3ksIGZ5IC0gb3JpZ2luWSwgdGhpcy5sZXJwLnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy51c2VCb3VuZHMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzeCA9IHRoaXMuY2xhbXBYKHN4KTtcclxuICAgICAgICAgICAgc3kgPSB0aGlzLmNsYW1wWShzeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5yb3VuZFBpeGVscylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG9yaWdpblggPSBNYXRoLnJvdW5kKG9yaWdpblgpO1xyXG4gICAgICAgICAgICBvcmlnaW5ZID0gTWF0aC5yb3VuZChvcmlnaW5ZKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBWYWx1ZXMgYXJlIGluIHBpeGVscyBhbmQgbm90IGltcGFjdGVkIGJ5IHpvb21pbmcgdGhlIENhbWVyYVxyXG4gICAgICAgIHRoaXMuc2Nyb2xsWCA9IHN4O1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsWSA9IHN5O1xyXG5cclxuICAgICAgICB2YXIgbWlkWCA9IHN4ICsgaGFsZldpZHRoO1xyXG4gICAgICAgIHZhciBtaWRZID0gc3kgKyBoYWxmSGVpZ2h0O1xyXG5cclxuICAgICAgICAvLyAgVGhlIGNlbnRlciBvZiB0aGUgY2FtZXJhLCBpbiB3b3JsZCBzcGFjZSwgc28gdGFraW5nIHpvb20gaW50byBhY2NvdW50XHJcbiAgICAgICAgLy8gIEJhc2ljYWxseSB0aGUgcGl4ZWwgdmFsdWUgb2Ygd2hhdCBpdCdzIGxvb2tpbmcgYXQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgY2FtXHJcbiAgICAgICAgdGhpcy5taWRQb2ludC5zZXQobWlkWCwgbWlkWSk7XHJcblxyXG4gICAgICAgIHZhciBkaXNwbGF5V2lkdGggPSB3aWR0aCAvIHpvb207XHJcbiAgICAgICAgdmFyIGRpc3BsYXlIZWlnaHQgPSBoZWlnaHQgLyB6b29tO1xyXG5cclxuICAgICAgICB0aGlzLndvcmxkVmlldy5zZXRUbyhcclxuICAgICAgICAgICAgbWlkWCAtIChkaXNwbGF5V2lkdGggLyAyKSxcclxuICAgICAgICAgICAgbWlkWSAtIChkaXNwbGF5SGVpZ2h0IC8gMiksXHJcbiAgICAgICAgICAgIGRpc3BsYXlXaWR0aCxcclxuICAgICAgICAgICAgZGlzcGxheUhlaWdodFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIG1hdHJpeC5hcHBseUlUUlModGhpcy54ICsgb3JpZ2luWCwgdGhpcy55ICsgb3JpZ2luWSwgdGhpcy5yb3RhdGlvbiwgem9vbSwgem9vbSk7XHJcbiAgICAgICAgbWF0cml4LnRyYW5zbGF0ZSgtb3JpZ2luWCwgLW9yaWdpblkpO1xyXG5cclxuICAgICAgICB0aGlzLnNoYWtlRWZmZWN0LnByZVJlbmRlcigpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGxpbmVhciBpbnRlcnBvbGF0aW9uIHZhbHVlIHRvIHVzZSB3aGVuIGZvbGxvd2luZyBhIHRhcmdldC5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZXMgb2YgMSBtZWFucyB0aGUgY2FtZXJhIHdpbGwgaW5zdGFudGx5IHNuYXAgdG8gdGhlIHRhcmdldCBjb29yZGluYXRlcy5cclxuICAgICAqIEEgbG93ZXIgdmFsdWUsIHN1Y2ggYXMgMC4xIG1lYW5zIHRoZSBjYW1lcmEgd2lsbCBtb3JlIHNsb3dseSB0cmFjayB0aGUgdGFyZ2V0LCBnaXZpbmdcclxuICAgICAqIGEgc21vb3RoIHRyYW5zaXRpb24uIFlvdSBjYW4gc2V0IHRoZSBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCB2YWx1ZXMgaW5kZXBlbmRlbnRseSwgYW5kIGFsc29cclxuICAgICAqIGFkanVzdCB0aGlzIHZhbHVlIGluIHJlYWwtdGltZSBkdXJpbmcgeW91ciBnYW1lLlxyXG4gICAgICpcclxuICAgICAqIEJlIHN1cmUgdG8ga2VlcCB0aGUgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLiBBIHZhbHVlIG9mIHplcm8gd2lsbCBkaXNhYmxlIHRyYWNraW5nIG9uIHRoYXQgYXhpcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI3NldExlcnBcclxuICAgICAqIEBzaW5jZSAzLjkuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeD0xXSAtIFRoZSBhbW91bnQgYWRkZWQgdG8gdGhlIGhvcml6b250YWwgbGluZWFyIGludGVycG9sYXRpb24gb2YgdGhlIGZvbGxvdyB0YXJnZXQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3k9MV0gLSBUaGUgYW1vdW50IGFkZGVkIHRvIHRoZSB2ZXJ0aWNhbCBsaW5lYXIgaW50ZXJwb2xhdGlvbiBvZiB0aGUgZm9sbG93IHRhcmdldC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENhbWVyYSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0TGVycDogZnVuY3Rpb24gKHgsIHkpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZCkgeyB4ID0gMTsgfVxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IHg7IH1cclxuXHJcbiAgICAgICAgdGhpcy5sZXJwLnNldCh4LCB5KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgb2Zmc2V0IG9mIHRoZSBjYW1lcmEgZnJvbSBpdHMgZm9sbG93IHRhcmdldC5cclxuICAgICAqIFRoZSB2YWx1ZXMgYXJlIHN1YnRyYWN0ZWQgZnJvbSB0aGUgdGFyZ2V0cyBwb3NpdGlvbiBkdXJpbmcgdGhlIENhbWVyYXMgdXBkYXRlIHN0ZXAuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYSNzZXRGb2xsb3dPZmZzZXRcclxuICAgICAqIEBzaW5jZSAzLjkuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeD0wXSAtIFRoZSBob3Jpem9udGFsIG9mZnNldCBmcm9tIHRoZSBjYW1lcmEgZm9sbG93IHRhcmdldC54IHBvc2l0aW9uLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5PTBdIC0gVGhlIHZlcnRpY2FsIG9mZnNldCBmcm9tIHRoZSBjYW1lcmEgZm9sbG93IHRhcmdldC55IHBvc2l0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ2FtZXJhIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRGb2xsb3dPZmZzZXQ6IGZ1bmN0aW9uICh4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHsgeCA9IDA7IH1cclxuICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSAwOyB9XHJcblxyXG4gICAgICAgIHRoaXMuZm9sbG93T2Zmc2V0LnNldCh4LCB5KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgQ2FtZXJhIHRvIGZvbGxvdyBhIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIFdoZW4gZW5hYmxlZCB0aGUgQ2FtZXJhIHdpbGwgYXV0b21hdGljYWxseSBhZGp1c3QgaXRzIHNjcm9sbCBwb3NpdGlvbiB0byBrZWVwIHRoZSB0YXJnZXQgR2FtZSBPYmplY3RcclxuICAgICAqIGluIGl0cyBjZW50ZXIuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBzZXQgdGhlIGxpbmVhciBpbnRlcnBvbGF0aW9uIHZhbHVlIHVzZWQgaW4gdGhlIGZvbGxvdyBjb2RlLlxyXG4gICAgICogVXNlIGxvdyBsZXJwIHZhbHVlcyAoc3VjaCBhcyAwLjEpIHRvIGF1dG9tYXRpY2FsbHkgc21vb3RoIHRoZSBjYW1lcmEgbW90aW9uLlxyXG4gICAgICpcclxuICAgICAqIElmIHlvdSBmaW5kIHlvdSdyZSBnZXR0aW5nIGEgc2xpZ2h0IFwiaml0dGVyXCIgZWZmZWN0IHdoZW4gZm9sbG93aW5nIGFuIG9iamVjdCBpdCdzIHByb2JhYmx5IHRvIGRvIHdpdGggc3ViLXBpeGVsXHJcbiAgICAgKiByZW5kZXJpbmcgb2YgdGhlIHRhcmdldHMgcG9zaXRpb24uIFRoaXMgY2FuIGJlIHJvdW5kZWQgYnkgc2V0dGluZyB0aGUgYHJvdW5kUGl4ZWxzYCBhcmd1bWVudCB0byBgdHJ1ZWAgdG9cclxuICAgICAqIGZvcmNlIGZ1bGwgcGl4ZWwgcm91bmRpbmcgcmVuZGVyaW5nLiBOb3RlIHRoYXQgdGhpcyBjYW4gc3RpbGwgYmUgYnJva2VuIGlmIHlvdSBoYXZlIHNwZWNpZmllZCBhIG5vbi1pbnRlZ2VyIHpvb21cclxuICAgICAqIHZhbHVlIG9uIHRoZSBjYW1lcmEuIFNvIGJlIHN1cmUgdG8ga2VlcCB0aGUgY2FtZXJhIHpvb20gdG8gaW50ZWdlcnMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYSNzdGFydEZvbGxvd1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R8b2JqZWN0KX0gdGFyZ2V0IC0gVGhlIHRhcmdldCBmb3IgdGhlIENhbWVyYSB0byBmb2xsb3cuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtyb3VuZFBpeGVscz1mYWxzZV0gLSBSb3VuZCB0aGUgY2FtZXJhIHBvc2l0aW9uIHRvIHdob2xlIGludGVnZXJzIHRvIGF2b2lkIHN1Yi1waXhlbCByZW5kZXJpbmc/XHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2xlcnBYPTFdIC0gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuIFRoaXMgdmFsdWUgc3BlY2lmaWVzIHRoZSBhbW91bnQgb2YgbGluZWFyIGludGVycG9sYXRpb24gdG8gdXNlIHdoZW4gaG9yaXpvbnRhbGx5IHRyYWNraW5nIHRoZSB0YXJnZXQuIFRoZSBjbG9zZXIgdGhlIHZhbHVlIHRvIDEsIHRoZSBmYXN0ZXIgdGhlIGNhbWVyYSB3aWxsIHRyYWNrLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsZXJwWT0xXSAtIEEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLiBUaGlzIHZhbHVlIHNwZWNpZmllcyB0aGUgYW1vdW50IG9mIGxpbmVhciBpbnRlcnBvbGF0aW9uIHRvIHVzZSB3aGVuIHZlcnRpY2FsbHkgdHJhY2tpbmcgdGhlIHRhcmdldC4gVGhlIGNsb3NlciB0aGUgdmFsdWUgdG8gMSwgdGhlIGZhc3RlciB0aGUgY2FtZXJhIHdpbGwgdHJhY2suXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFg9MF0gLSBUaGUgaG9yaXpvbnRhbCBvZmZzZXQgZnJvbSB0aGUgY2FtZXJhIGZvbGxvdyB0YXJnZXQueCBwb3NpdGlvbi5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WT0wXSAtIFRoZSB2ZXJ0aWNhbCBvZmZzZXQgZnJvbSB0aGUgY2FtZXJhIGZvbGxvdyB0YXJnZXQueSBwb3NpdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENhbWVyYSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc3RhcnRGb2xsb3c6IGZ1bmN0aW9uICh0YXJnZXQsIHJvdW5kUGl4ZWxzLCBsZXJwWCwgbGVycFksIG9mZnNldFgsIG9mZnNldFkpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHJvdW5kUGl4ZWxzID09PSB1bmRlZmluZWQpIHsgcm91bmRQaXhlbHMgPSBmYWxzZTsgfVxyXG4gICAgICAgIGlmIChsZXJwWCA9PT0gdW5kZWZpbmVkKSB7IGxlcnBYID0gMTsgfVxyXG4gICAgICAgIGlmIChsZXJwWSA9PT0gdW5kZWZpbmVkKSB7IGxlcnBZID0gbGVycFg7IH1cclxuICAgICAgICBpZiAob2Zmc2V0WCA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFggPSAwOyB9XHJcbiAgICAgICAgaWYgKG9mZnNldFkgPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRZID0gb2Zmc2V0WDsgfVxyXG5cclxuICAgICAgICB0aGlzLl9mb2xsb3cgPSB0YXJnZXQ7XHJcblxyXG4gICAgICAgIHRoaXMucm91bmRQaXhlbHMgPSByb3VuZFBpeGVscztcclxuXHJcbiAgICAgICAgbGVycFggPSBDbGFtcChsZXJwWCwgMCwgMSk7XHJcbiAgICAgICAgbGVycFkgPSBDbGFtcChsZXJwWSwgMCwgMSk7XHJcblxyXG4gICAgICAgIHRoaXMubGVycC5zZXQobGVycFgsIGxlcnBZKTtcclxuXHJcbiAgICAgICAgdGhpcy5mb2xsb3dPZmZzZXQuc2V0KG9mZnNldFgsIG9mZnNldFkpO1xyXG5cclxuICAgICAgICB2YXIgb3JpZ2luWCA9IHRoaXMud2lkdGggLyAyO1xyXG4gICAgICAgIHZhciBvcmlnaW5ZID0gdGhpcy5oZWlnaHQgLyAyO1xyXG5cclxuICAgICAgICB2YXIgZnggPSB0YXJnZXQueCAtIG9mZnNldFg7XHJcbiAgICAgICAgdmFyIGZ5ID0gdGFyZ2V0LnkgLSBvZmZzZXRZO1xyXG5cclxuICAgICAgICB0aGlzLm1pZFBvaW50LnNldChmeCwgZnkpO1xyXG5cclxuICAgICAgICB0aGlzLnNjcm9sbFggPSBmeCAtIG9yaWdpblg7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxZID0gZnkgLSBvcmlnaW5ZO1xyXG5cclxuICAgICAgICBpZiAodGhpcy51c2VCb3VuZHMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFggPSB0aGlzLmNsYW1wWCh0aGlzLnNjcm9sbFgpO1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFkgPSB0aGlzLmNsYW1wWSh0aGlzLnNjcm9sbFkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgYSBDYW1lcmEgZnJvbSBmb2xsb3dpbmcgYSBHYW1lIE9iamVjdCwgaWYgcHJldmlvdXNseSBzZXQgdmlhIGBDYW1lcmEuc3RhcnRGb2xsb3dgLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjc3RvcEZvbGxvd1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHN0b3BGb2xsb3c6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fZm9sbG93ID0gbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzZXRzIGFueSBhY3RpdmUgRlgsIHN1Y2ggYXMgYSBmYWRlLCBmbGFzaCBvciBzaGFrZS4gVXNlZnVsIHRvIGNhbGwgYWZ0ZXIgYSBmYWRlIGluIG9yZGVyIHRvXHJcbiAgICAgKiByZW1vdmUgdGhlIGZhZGUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYSNyZXNldEZYXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENhbWVyYSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcmVzZXRGWDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnJvdGF0ZVRvRWZmZWN0LnJlc2V0KCk7XHJcbiAgICAgICAgdGhpcy5wYW5FZmZlY3QucmVzZXQoKTtcclxuICAgICAgICB0aGlzLnNoYWtlRWZmZWN0LnJlc2V0KCk7XHJcbiAgICAgICAgdGhpcy5mbGFzaEVmZmVjdC5yZXNldCgpO1xyXG4gICAgICAgIHRoaXMuZmFkZUVmZmVjdC5yZXNldCgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBtZXRob2QgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIENhbWVyYSBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmEjdXBkYXRlXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHRpbWUgLSBUaGUgY3VycmVudCB0aW1lc3RhbXAgYXMgZ2VuZXJhdGVkIGJ5IHRoZSBSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSBvciBTZXRUaW1lb3V0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlbHRhIC0gVGhlIGRlbHRhIHRpbWUsIGluIG1zLCBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IGZyYW1lLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGU6IGZ1bmN0aW9uICh0aW1lLCBkZWx0YSlcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy52aXNpYmxlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5yb3RhdGVUb0VmZmVjdC51cGRhdGUodGltZSwgZGVsdGEpO1xyXG4gICAgICAgICAgICB0aGlzLnBhbkVmZmVjdC51cGRhdGUodGltZSwgZGVsdGEpO1xyXG4gICAgICAgICAgICB0aGlzLnpvb21FZmZlY3QudXBkYXRlKHRpbWUsIGRlbHRhKTtcclxuICAgICAgICAgICAgdGhpcy5zaGFrZUVmZmVjdC51cGRhdGUodGltZSwgZGVsdGEpO1xyXG4gICAgICAgICAgICB0aGlzLmZsYXNoRWZmZWN0LnVwZGF0ZSh0aW1lLCBkZWx0YSk7XHJcbiAgICAgICAgICAgIHRoaXMuZmFkZUVmZmVjdC51cGRhdGUodGltZSwgZGVsdGEpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXN0cm95cyB0aGlzIENhbWVyYSBpbnN0YW5jZS4gWW91IHJhcmVseSBuZWVkIHRvIGNhbGwgdGhpcyBkaXJlY3RseS5cclxuICAgICAqXHJcbiAgICAgKiBDYWxsZWQgYnkgdGhlIENhbWVyYSBNYW5hZ2VyLiBJZiB5b3Ugd2lzaCB0byBkZXN0cm95IGEgQ2FtZXJhIHBsZWFzZSB1c2UgYENhbWVyYU1hbmFnZXIucmVtb3ZlYCBhc1xyXG4gICAgICogY2FtZXJhcyBhcmUgc3RvcmVkIGluIGEgcG9vbCwgcmVhZHkgZm9yIHJlY3ljbGluZyBsYXRlciwgYW5kIGNhbGxpbmcgdGhpcyBkaXJlY3RseSB3aWxsIHByZXZlbnQgdGhhdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhI2Rlc3Ryb3lcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNERVNUUk9ZXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgZGVzdHJveTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNsZWFyUmVuZGVyVG9UZXh0dXJlKCk7XHJcblxyXG4gICAgICAgIHRoaXMucmVzZXRGWCgpO1xyXG5cclxuICAgICAgICBCYXNlQ2FtZXJhLnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuX2ZvbGxvdyA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuZGVhZHpvbmUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IENhbWVyYTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2FtZXJhID0gcmVxdWlyZSgnLi9DYW1lcmEnKTtcclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEdldEZhc3RWYWx1ZSA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9HZXRGYXN0VmFsdWUnKTtcclxudmFyIFBsdWdpbkNhY2hlID0gcmVxdWlyZSgnLi4vLi4vcGx1Z2lucy9QbHVnaW5DYWNoZScpO1xyXG52YXIgUmVjdGFuZ2xlQ29udGFpbnMgPSByZXF1aXJlKCcuLi8uLi9nZW9tL3JlY3RhbmdsZS9Db250YWlucycpO1xyXG52YXIgU2NhbGVFdmVudHMgPSByZXF1aXJlKCcuLi8uLi9zY2FsZS9ldmVudHMnKTtcclxudmFyIFNjZW5lRXZlbnRzID0gcmVxdWlyZSgnLi4vLi4vc2NlbmUvZXZlbnRzJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBUaGUgQ2FtZXJhIE1hbmFnZXIgaXMgYSBwbHVnaW4gdGhhdCBiZWxvbmdzIHRvIGEgU2NlbmUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhbGwgb2YgdGhlIFNjZW5lIENhbWVyYXMuXHJcbiAqIFxyXG4gKiBCeSBkZWZhdWx0IHlvdSBjYW4gYWNjZXNzIHRoZSBDYW1lcmEgTWFuYWdlciBmcm9tIHdpdGhpbiBhIFNjZW5lIHVzaW5nIGB0aGlzLmNhbWVyYXNgLCBhbHRob3VnaCB0aGlzIGNhbiBiZSBjaGFuZ2VkXHJcbiAqIGluIHlvdXIgZ2FtZSBjb25maWcuXHJcbiAqIFxyXG4gKiBDcmVhdGUgbmV3IENhbWVyYXMgdXNpbmcgdGhlIGBhZGRgIG1ldGhvZC4gT3IgZXh0ZW5kIHRoZSBDYW1lcmEgY2xhc3Mgd2l0aCB5b3VyIG93biBhZGRpdGlvbiBjb2RlIGFuZCB0aGVuIGFkZFxyXG4gKiB0aGUgbmV3IENhbWVyYSBpbiB1c2luZyB0aGUgYGFkZEV4aXN0aW5nYCBtZXRob2QuXHJcbiAqIFxyXG4gKiBDYW1lcmFzIHByb3ZpZGUgYSB2aWV3IGludG8geW91ciBnYW1lIHdvcmxkLCBhbmQgY2FuIGJlIHBvc2l0aW9uZWQsIHJvdGF0ZWQsIHpvb21lZCBhbmQgc2Nyb2xsZWQgYWNjb3JkaW5nbHkuXHJcbiAqXHJcbiAqIEEgQ2FtZXJhIGNvbnNpc3RzIG9mIHR3byBlbGVtZW50czogVGhlIHZpZXdwb3J0IGFuZCB0aGUgc2Nyb2xsIHZhbHVlcy5cclxuICpcclxuICogVGhlIHZpZXdwb3J0IGlzIHRoZSBwaHlzaWNhbCBwb3NpdGlvbiBhbmQgc2l6ZSBvZiB0aGUgQ2FtZXJhIHdpdGhpbiB5b3VyIGdhbWUuIENhbWVyYXMsIGJ5IGRlZmF1bHQsIGFyZVxyXG4gKiBjcmVhdGVkIHRoZSBzYW1lIHNpemUgYXMgeW91ciBnYW1lLCBidXQgdGhlaXIgcG9zaXRpb24gYW5kIHNpemUgY2FuIGJlIHNldCB0byBhbnl0aGluZy4gVGhpcyBtZWFucyBpZiB5b3VcclxuICogd2FudGVkIHRvIGNyZWF0ZSBhIGNhbWVyYSB0aGF0IHdhcyAzMjB4MjAwIGluIHNpemUsIHBvc2l0aW9uZWQgaW4gdGhlIGJvdHRvbS1yaWdodCBjb3JuZXIgb2YgeW91ciBnYW1lLFxyXG4gKiB5b3UnZCBhZGp1c3QgdGhlIHZpZXdwb3J0IHRvIGRvIHRoYXQgKHVzaW5nIG1ldGhvZHMgbGlrZSBgc2V0Vmlld3BvcnRgIGFuZCBgc2V0U2l6ZWApLlxyXG4gKlxyXG4gKiBJZiB5b3Ugd2lzaCB0byBjaGFuZ2Ugd2hlcmUgdGhlIENhbWVyYSBpcyBsb29raW5nIGluIHlvdXIgZ2FtZSwgdGhlbiB5b3Ugc2Nyb2xsIGl0LiBZb3UgY2FuIGRvIHRoaXNcclxuICogdmlhIHRoZSBwcm9wZXJ0aWVzIGBzY3JvbGxYYCBhbmQgYHNjcm9sbFlgIG9yIHRoZSBtZXRob2QgYHNldFNjcm9sbGAuIFNjcm9sbGluZyBoYXMgbm8gaW1wYWN0IG9uIHRoZVxyXG4gKiB2aWV3cG9ydCwgYW5kIGNoYW5naW5nIHRoZSB2aWV3cG9ydCBoYXMgbm8gaW1wYWN0IG9uIHRoZSBzY3JvbGxpbmcuXHJcbiAqXHJcbiAqIEJ5IGRlZmF1bHQgYSBDYW1lcmEgd2lsbCByZW5kZXIgYWxsIEdhbWUgT2JqZWN0cyBpdCBjYW4gc2VlLiBZb3UgY2FuIGNoYW5nZSB0aGlzIHVzaW5nIHRoZSBgaWdub3JlYCBtZXRob2QsXHJcbiAqIGFsbG93aW5nIHlvdSB0byBmaWx0ZXIgR2FtZSBPYmplY3RzIG91dCBvbiBhIHBlci1DYW1lcmEgYmFzaXMuIFRoZSBDYW1lcmEgTWFuYWdlciBjYW4gbWFuYWdlIHVwIHRvIDMxIHVuaXF1ZSBcclxuICogJ0dhbWUgT2JqZWN0IGlnbm9yZSBjYXBhYmxlJyBDYW1lcmFzLiBBbnkgQ2FtZXJhcyBiZXlvbmQgMzEgdGhhdCB5b3UgY3JlYXRlIHdpbGwgYWxsIGJlIGdpdmVuIGEgQ2FtZXJhIElEIG9mXHJcbiAqIHplcm8sIG1lYW5pbmcgdGhhdCB0aGV5IGNhbm5vdCBiZSB1c2VkIGZvciBHYW1lIE9iamVjdCBleGNsdXNpb24uIFRoaXMgbWVhbnMgaWYgeW91IG5lZWQgeW91ciBDYW1lcmEgdG8gaWdub3JlXHJcbiAqIEdhbWUgT2JqZWN0cywgbWFrZSBzdXJlIGl0J3Mgb25lIG9mIHRoZSBmaXJzdCAzMSBjcmVhdGVkLlxyXG4gKlxyXG4gKiBBIENhbWVyYSBhbHNvIGhhcyBidWlsdC1pbiBzcGVjaWFsIGVmZmVjdHMgaW5jbHVkaW5nIEZhZGUsIEZsYXNoLCBDYW1lcmEgU2hha2UsIFBhbiBhbmQgWm9vbS5cclxuICpcclxuICogQGNsYXNzIENhbWVyYU1hbmFnZXJcclxuICogQG1lbWJlcm9mIFBoYXNlci5DYW1lcmFzLlNjZW5lMkRcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBUaGUgU2NlbmUgdGhhdCBvd25zIHRoZSBDYW1lcmEgTWFuYWdlciBwbHVnaW4uXHJcbiAqL1xyXG52YXIgQ2FtZXJhTWFuYWdlciA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBDYW1lcmFNYW5hZ2VyIChzY2VuZSlcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgU2NlbmUgdGhhdCBvd25zIHRoZSBDYW1lcmEgTWFuYWdlciBwbHVnaW4uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYU1hbmFnZXIjc2NlbmVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlNjZW5lfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2NlbmUgPSBzY2VuZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lLlN5c3RlbXMgaGFuZGxlciBmb3IgdGhlIFNjZW5lIHRoYXQgb3ducyB0aGUgQ2FtZXJhIE1hbmFnZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYU1hbmFnZXIjc3lzdGVtc1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU2NlbmVzLlN5c3RlbXN9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zeXN0ZW1zID0gc2NlbmUuc3lzO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbGwgQ2FtZXJhcyBjcmVhdGVkIGJ5LCBvciBhZGRlZCB0bywgdGhpcyBDYW1lcmEgTWFuYWdlciwgd2lsbCBoYXZlIHRoZWlyIGByb3VuZFBpeGVsc2BcclxuICAgICAgICAgKiBwcm9wZXJ0eSBzZXQgdG8gbWF0Y2ggdGhpcyB2YWx1ZS4gQnkgZGVmYXVsdCBpdCBpcyBzZXQgdG8gbWF0Y2ggdGhlIHZhbHVlIHNldCBpbiB0aGVcclxuICAgICAgICAgKiBnYW1lIGNvbmZpZ3VyYXRpb24sIGJ1dCBjYW4gYmUgY2hhbmdlZCBhdCBhbnkgcG9pbnQuIEVxdWFsbHksIGluZGl2aWR1YWwgY2FtZXJhcyBjYW5cclxuICAgICAgICAgKiBhbHNvIGJlIGNoYW5nZWQgYXMgbmVlZGVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmFNYW5hZ2VyI3JvdW5kUGl4ZWxzXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucm91bmRQaXhlbHMgPSBzY2VuZS5zeXMuZ2FtZS5jb25maWcucm91bmRQaXhlbHM7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIEFycmF5IG9mIHRoZSBDYW1lcmEgb2JqZWN0cyBiZWluZyBtYW5hZ2VkIGJ5IHRoaXMgQ2FtZXJhIE1hbmFnZXIuXHJcbiAgICAgICAgICogVGhlIENhbWVyYXMgYXJlIHVwZGF0ZWQgYW5kIHJlbmRlcmVkIGluIHRoZSBzYW1lIG9yZGVyIGluIHdoaWNoIHRoZXkgYXBwZWFyIGluIHRoaXMgYXJyYXkuXHJcbiAgICAgICAgICogRG8gbm90IGRpcmVjdGx5IGFkZCBvciByZW1vdmUgZW50cmllcyB0byB0aGlzIGFycmF5LiBIb3dldmVyLCB5b3UgY2FuIG1vdmUgdGhlIGNvbnRlbnRzXHJcbiAgICAgICAgICogYXJvdW5kIHRoZSBhcnJheSBzaG91bGQgeW91IHdpc2ggdG8gYWRqdXN0IHRoZSBkaXNwbGF5IG9yZGVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmFNYW5hZ2VyI2NhbWVyYXNcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmFbXX1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNhbWVyYXMgPSBbXTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBoYW5keSByZWZlcmVuY2UgdG8gdGhlICdtYWluJyBjYW1lcmEuIEJ5IGRlZmF1bHQgdGhpcyBpcyB0aGUgZmlyc3QgQ2FtZXJhIHRoZVxyXG4gICAgICAgICAqIENhbWVyYSBNYW5hZ2VyIGNyZWF0ZXMuIFlvdSBjYW4gYWxzbyBzZXQgaXQgZGlyZWN0bHksIG9yIHVzZSB0aGUgYG1ha2VNYWluYCBhcmd1bWVudFxyXG4gICAgICAgICAqIGluIHRoZSBgYWRkYCBhbmQgYGFkZEV4aXN0aW5nYCBtZXRob2RzLiBJdCBhbGxvd3MgeW91IHRvIGFjY2VzcyBpdCBmcm9tIHlvdXIgZ2FtZTpcclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBgYGBqYXZhc2NyaXB0XHJcbiAgICAgICAgICogdmFyIGNhbSA9IHRoaXMuY2FtZXJhcy5tYWluO1xyXG4gICAgICAgICAqIGBgYFxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEFsc28gc2VlIHRoZSBwcm9wZXJ0aWVzIGBjYW1lcmExYCwgYGNhbWVyYTJgIGFuZCBzbyBvbi5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhTWFuYWdlciNtYWluXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubWFpbjtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBkZWZhdWx0IHVuLXRyYW5zZm9ybWVkIENhbWVyYSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gdGhlIGNhbWVyYSBsaXN0IGFuZCBkb2Vzbid0XHJcbiAgICAgICAgICogY291bnQgdG93YXJkcyB0aGUgdG90YWwgbnVtYmVyIG9mIGNhbWVyYXMgYmVpbmcgbWFuYWdlZC4gSXQgZXhpc3RzIGZvciBvdGhlclxyXG4gICAgICAgICAqIHN5c3RlbXMsIGFzIHdlbGwgYXMgeW91ciBvd24gY29kZSwgc2hvdWxkIHRoZXkgcmVxdWlyZSBhIGJhc2ljIHVuLXRyYW5zZm9ybWVkXHJcbiAgICAgICAgICogY2FtZXJhIGluc3RhbmNlIGZyb20gd2hpY2ggdG8gY2FsY3VsYXRlIGEgdmlldyBtYXRyaXguXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYU1hbmFnZXIjZGVmYXVsdFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0O1xyXG5cclxuICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uY2UoU2NlbmVFdmVudHMuQk9PVCwgdGhpcy5ib290LCB0aGlzKTtcclxuICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uKFNjZW5lRXZlbnRzLlNUQVJULCB0aGlzLnN0YXJ0LCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSwgb25seSBvbmNlLCB3aGVuIHRoZSBTY2VuZSBpcyBmaXJzdCBjcmVhdGVkLlxyXG4gICAgICogRG8gbm90IGludm9rZSBpdCBkaXJlY3RseS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhTWFuYWdlciNib290XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQGxpc3RlbnMgUGhhc2VyLlNjZW5lcy5FdmVudHMjREVTVFJPWVxyXG4gICAgICogQHNpbmNlIDMuNS4xXHJcbiAgICAgKi9cclxuICAgIGJvb3Q6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHN5cyA9IHRoaXMuc3lzdGVtcztcclxuXHJcbiAgICAgICAgaWYgKHN5cy5zZXR0aW5ncy5jYW1lcmFzKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIFdlIGhhdmUgY2FtZXJhcyB0byBjcmVhdGVcclxuICAgICAgICAgICAgdGhpcy5mcm9tSlNPTihzeXMuc2V0dGluZ3MuY2FtZXJhcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBNYWtlIG9uZVxyXG4gICAgICAgICAgICB0aGlzLmFkZCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5tYWluID0gdGhpcy5jYW1lcmFzWzBdO1xyXG5cclxuICAgICAgICAvLyAgQ3JlYXRlIGEgZGVmYXVsdCBjYW1lcmFcclxuICAgICAgICB0aGlzLmRlZmF1bHQgPSBuZXcgQ2FtZXJhKDAsIDAsIHN5cy5zY2FsZS53aWR0aCwgc3lzLnNjYWxlLmhlaWdodCkuc2V0U2NlbmUodGhpcy5zY2VuZSk7XHJcblxyXG4gICAgICAgIHN5cy5nYW1lLnNjYWxlLm9uKFNjYWxlRXZlbnRzLlJFU0laRSwgdGhpcy5vblJlc2l6ZSwgdGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuc3lzdGVtcy5ldmVudHMub25jZShTY2VuZUV2ZW50cy5ERVNUUk9ZLCB0aGlzLmRlc3Ryb3ksIHRoaXMpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBTY2VuZSB3aGVuIGl0IGlzIHN0YXJ0aW5nIHVwLlxyXG4gICAgICogSXQgaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIGxvY2FsIHN5c3RlbXMsIHByb3BlcnRpZXMgYW5kIGxpc3RlbmluZyBmb3IgU2NlbmUgZXZlbnRzLlxyXG4gICAgICogRG8gbm90IGludm9rZSBpdCBkaXJlY3RseS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhTWFuYWdlciNzdGFydFxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBsaXN0ZW5zIFBoYXNlci5TY2VuZXMuRXZlbnRzI1VQREFURVxyXG4gICAgICogQGxpc3RlbnMgUGhhc2VyLlNjZW5lcy5FdmVudHMjU0hVVERPV05cclxuICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICovXHJcbiAgICBzdGFydDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMubWFpbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBzeXMgPSB0aGlzLnN5c3RlbXM7XHJcblxyXG4gICAgICAgICAgICBpZiAoc3lzLnNldHRpbmdzLmNhbWVyYXMpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIC8vICBXZSBoYXZlIGNhbWVyYXMgdG8gY3JlYXRlXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZyb21KU09OKHN5cy5zZXR0aW5ncy5jYW1lcmFzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIC8vICBNYWtlIG9uZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgIHRoaXMubWFpbiA9IHRoaXMuY2FtZXJhc1swXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBldmVudEVtaXR0ZXIgPSB0aGlzLnN5c3RlbXMuZXZlbnRzO1xyXG5cclxuICAgICAgICBldmVudEVtaXR0ZXIub24oU2NlbmVFdmVudHMuVVBEQVRFLCB0aGlzLnVwZGF0ZSwgdGhpcyk7XHJcbiAgICAgICAgZXZlbnRFbWl0dGVyLm9uY2UoU2NlbmVFdmVudHMuU0hVVERPV04sIHRoaXMuc2h1dGRvd24sIHRoaXMpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYSBuZXcgQ2FtZXJhIGludG8gdGhlIENhbWVyYSBNYW5hZ2VyLiBUaGUgQ2FtZXJhIE1hbmFnZXIgY2FuIHN1cHBvcnQgdXAgdG8gMzEgZGlmZmVyZW50IENhbWVyYXMuXHJcbiAgICAgKiBcclxuICAgICAqIEVhY2ggQ2FtZXJhIGhhcyBpdHMgb3duIHZpZXdwb3J0LCB3aGljaCBjb250cm9scyB0aGUgc2l6ZSBvZiB0aGUgQ2FtZXJhIGFuZCBpdHMgcG9zaXRpb24gd2l0aGluIHRoZSBjYW52YXMuXHJcbiAgICAgKiBcclxuICAgICAqIFVzZSB0aGUgYENhbWVyYS5zY3JvbGxYYCBhbmQgYENhbWVyYS5zY3JvbGxZYCBwcm9wZXJ0aWVzIHRvIGNoYW5nZSB3aGVyZSB0aGUgQ2FtZXJhIGlzIGxvb2tpbmcsIG9yIHRoZVxyXG4gICAgICogQ2FtZXJhIG1ldGhvZHMgc3VjaCBhcyBgY2VudGVyT25gLiBDYW1lcmFzIGFsc28gaGF2ZSBidWlsdCBpbiBzcGVjaWFsIGVmZmVjdHMsIHN1Y2ggYXMgZmFkZSwgZmxhc2gsIHNoYWtlLFxyXG4gICAgICogcGFuIGFuZCB6b29tLlxyXG4gICAgICogXHJcbiAgICAgKiBCeSBkZWZhdWx0IENhbWVyYXMgYXJlIHRyYW5zcGFyZW50IGFuZCB3aWxsIHJlbmRlciBhbnl0aGluZyB0aGF0IHRoZXkgY2FuIHNlZSBiYXNlZCBvbiB0aGVpciBgc2Nyb2xsWGBcclxuICAgICAqIGFuZCBgc2Nyb2xsWWAgdmFsdWVzLiBHYW1lIE9iamVjdHMgY2FuIGJlIHNldCB0byBiZSBpZ25vcmVkIGJ5IGEgQ2FtZXJhIGJ5IHVzaW5nIHRoZSBgQ2FtZXJhLmlnbm9yZWAgbWV0aG9kLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgQ2FtZXJhIHdpbGwgaGF2ZSBpdHMgYHJvdW5kUGl4ZWxzYCBwcm9wZXJ0eSBzZXQgdG8gd2hhdGV2ZXIgYENhbWVyYU1hbmFnZXIucm91bmRQaXhlbHNgIGlzLiBZb3UgY2FuIGNoYW5nZVxyXG4gICAgICogaXQgYWZ0ZXIgY3JlYXRpb24gaWYgcmVxdWlyZWQuXHJcbiAgICAgKiBcclxuICAgICAqIFNlZSB0aGUgQ2FtZXJhIGNsYXNzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhTWFuYWdlciNhZGRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3g9MF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgQ2FtZXJhIHZpZXdwb3J0LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgQ2FtZXJhIHZpZXdwb3J0LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbd2lkdGhdIC0gVGhlIHdpZHRoIG9mIHRoZSBDYW1lcmEgdmlld3BvcnQuIElmIG5vdCBnaXZlbiBpdCdsbCBiZSB0aGUgZ2FtZSBjb25maWcgc2l6ZS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2hlaWdodF0gLSBUaGUgaGVpZ2h0IG9mIHRoZSBDYW1lcmEgdmlld3BvcnQuIElmIG5vdCBnaXZlbiBpdCdsbCBiZSB0aGUgZ2FtZSBjb25maWcgc2l6ZS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW21ha2VNYWluPWZhbHNlXSAtIFNldCB0aGlzIENhbWVyYSBhcyBiZWluZyB0aGUgJ21haW4nIGNhbWVyYS4gVGhpcyBqdXN0IG1ha2VzIHRoZSBwcm9wZXJ0eSBgbWFpbmAgYSByZWZlcmVuY2UgdG8gaXQuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW25hbWU9JyddIC0gVGhlIG5hbWUgb2YgdGhlIENhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gVGhlIG5ld2x5IGNyZWF0ZWQgQ2FtZXJhLlxyXG4gICAgICovXHJcbiAgICBhZGQ6IGZ1bmN0aW9uICh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBtYWtlTWFpbiwgbmFtZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7IHggPSAwOyB9XHJcbiAgICAgICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgeyB5ID0gMDsgfVxyXG4gICAgICAgIGlmICh3aWR0aCA9PT0gdW5kZWZpbmVkKSB7IHdpZHRoID0gdGhpcy5zY2VuZS5zeXMuc2NhbGUud2lkdGg7IH1cclxuICAgICAgICBpZiAoaGVpZ2h0ID09PSB1bmRlZmluZWQpIHsgaGVpZ2h0ID0gdGhpcy5zY2VuZS5zeXMuc2NhbGUuaGVpZ2h0OyB9XHJcbiAgICAgICAgaWYgKG1ha2VNYWluID09PSB1bmRlZmluZWQpIHsgbWFrZU1haW4gPSBmYWxzZTsgfVxyXG4gICAgICAgIGlmIChuYW1lID09PSB1bmRlZmluZWQpIHsgbmFtZSA9ICcnOyB9XHJcblxyXG4gICAgICAgIHZhciBjYW1lcmEgPSBuZXcgQ2FtZXJhKHgsIHksIHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICAgICAgICBjYW1lcmEuc2V0TmFtZShuYW1lKTtcclxuICAgICAgICBjYW1lcmEuc2V0U2NlbmUodGhpcy5zY2VuZSk7XHJcbiAgICAgICAgY2FtZXJhLnNldFJvdW5kUGl4ZWxzKHRoaXMucm91bmRQaXhlbHMpO1xyXG5cclxuICAgICAgICBjYW1lcmEuaWQgPSB0aGlzLmdldE5leHRJRCgpO1xyXG5cclxuICAgICAgICB0aGlzLmNhbWVyYXMucHVzaChjYW1lcmEpO1xyXG5cclxuICAgICAgICBpZiAobWFrZU1haW4pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1haW4gPSBjYW1lcmE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY2FtZXJhO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYW4gZXhpc3RpbmcgQ2FtZXJhIGludG8gdGhlIENhbWVyYSBNYW5hZ2VyLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgQ2FtZXJhIHNob3VsZCBlaXRoZXIgYmUgYSBgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmFgIGluc3RhbmNlLCBvciBhIGNsYXNzIHRoYXQgZXh0ZW5kcyBmcm9tIGl0LlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgQ2FtZXJhIHdpbGwgaGF2ZSBpdHMgYHJvdW5kUGl4ZWxzYCBwcm9wZXJ0eSBzZXQgdG8gd2hhdGV2ZXIgYENhbWVyYU1hbmFnZXIucm91bmRQaXhlbHNgIGlzLiBZb3UgY2FuIGNoYW5nZVxyXG4gICAgICogaXQgYWZ0ZXIgYWRkaXRpb24gaWYgcmVxdWlyZWQuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBDYW1lcmEgd2lsbCBiZSBhc3NpZ25lZCBhbiBJRCwgd2hpY2ggaXMgdXNlZCBmb3IgR2FtZSBPYmplY3QgZXhjbHVzaW9uIGFuZCB0aGVuIGFkZGVkIHRvIHRoZVxyXG4gICAgICogbWFuYWdlci4gQXMgbG9uZyBhcyBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QgaW4gdGhlIG1hbmFnZXIgaXQgd2lsbCBiZSBhZGRlZCB0aGVuIHJldHVybmVkLlxyXG4gICAgICogXHJcbiAgICAgKiBJZiB0aGlzIG1ldGhvZCByZXR1cm5zIGBudWxsYCB0aGVuIHRoZSBDYW1lcmEgYWxyZWFkeSBleGlzdHMgaW4gdGhpcyBDYW1lcmEgTWFuYWdlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhTWFuYWdlciNhZGRFeGlzdGluZ1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0byBiZSBhZGRlZCB0byB0aGUgQ2FtZXJhIE1hbmFnZXIuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFttYWtlTWFpbj1mYWxzZV0gLSBTZXQgdGhpcyBDYW1lcmEgYXMgYmVpbmcgdGhlICdtYWluJyBjYW1lcmEuIFRoaXMganVzdCBtYWtlcyB0aGUgcHJvcGVydHkgYG1haW5gIGEgcmVmZXJlbmNlIHRvIGl0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4gez9QaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gVGhlIENhbWVyYSB0aGF0IHdhcyBhZGRlZCB0byB0aGUgQ2FtZXJhIE1hbmFnZXIsIG9yIGBudWxsYCBpZiBpdCBjb3VsZG4ndCBiZSBhZGRlZC5cclxuICAgICAqL1xyXG4gICAgYWRkRXhpc3Rpbmc6IGZ1bmN0aW9uIChjYW1lcmEsIG1ha2VNYWluKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChtYWtlTWFpbiA9PT0gdW5kZWZpbmVkKSB7IG1ha2VNYWluID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5jYW1lcmFzLmluZGV4T2YoY2FtZXJhKTtcclxuXHJcbiAgICAgICAgaWYgKGluZGV4ID09PSAtMSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNhbWVyYS5pZCA9IHRoaXMuZ2V0TmV4dElEKCk7XHJcblxyXG4gICAgICAgICAgICBjYW1lcmEuc2V0Um91bmRQaXhlbHModGhpcy5yb3VuZFBpeGVscyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNhbWVyYXMucHVzaChjYW1lcmEpO1xyXG5cclxuICAgICAgICAgICAgaWYgKG1ha2VNYWluKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1haW4gPSBjYW1lcmE7XHJcbiAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgICAgICByZXR1cm4gY2FtZXJhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgbmV4dCBhdmFpbGFibGUgQ2FtZXJhIElEIG51bWJlci5cclxuICAgICAqIFxyXG4gICAgICogVGhlIENhbWVyYSBNYW5hZ2VyIHN1cHBvcnRzIHVwIHRvIDMxIHVuaXF1ZSBjYW1lcmFzLCBhZnRlciB3aGljaCB0aGUgSUQgcmV0dXJuZWQgd2lsbCBhbHdheXMgYmUgemVyby5cclxuICAgICAqIFlvdSBjYW4gY3JlYXRlIGFkZGl0aW9uYWwgY2FtZXJhcyBiZXlvbmQgMzEsIGJ1dCB0aGV5IGNhbm5vdCBiZSB1c2VkIGZvciBHYW1lIE9iamVjdCBleGNsdXNpb24uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYU1hbmFnZXIjZ2V0TmV4dElEXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge251bWJlcn0gVGhlIG5leHQgYXZhaWxhYmxlIENhbWVyYSBJRCwgb3IgMCBpZiB0aGV5J3JlIGFsbCBhbHJlYWR5IGluIHVzZS5cclxuICAgICAqL1xyXG4gICAgZ2V0TmV4dElEOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBjYW1lcmFzID0gdGhpcy5jYW1lcmFzO1xyXG5cclxuICAgICAgICB2YXIgdGVzdElEID0gMTtcclxuXHJcbiAgICAgICAgLy8gIEZpbmQgdGhlIGZpcnN0IGZyZWUgY2FtZXJhIElEIHdlIGNhbiB1c2VcclxuXHJcbiAgICAgICAgZm9yICh2YXIgdCA9IDA7IHQgPCAzMjsgdCsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGZvdW5kID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbWVyYXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhciBjYW1lcmEgPSBjYW1lcmFzW2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChjYW1lcmEgJiYgY2FtZXJhLmlkID09PSB0ZXN0SUQpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoZm91bmQpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRlc3RJRCA9IHRlc3RJRCA8PCAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRlc3RJRDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgdG90YWwgbnVtYmVyIG9mIENhbWVyYXMgaW4gdGhpcyBDYW1lcmEgTWFuYWdlci5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhlIG9wdGlvbmFsIGBpc1Zpc2libGVgIGFyZ3VtZW50IGlzIHNldCBpdCB3aWxsIG9ubHkgY291bnQgQ2FtZXJhcyB0aGF0IGFyZSBjdXJyZW50bHkgdmlzaWJsZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhTWFuYWdlciNnZXRUb3RhbFxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc1Zpc2libGU9ZmFsc2VdIC0gU2V0IHRoZSBgdHJ1ZWAgdG8gb25seSBpbmNsdWRlIHZpc2libGUgQ2FtZXJhcyBpbiB0aGUgdG90YWwuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7aW50ZWdlcn0gVGhlIHRvdGFsIG51bWJlciBvZiBDYW1lcmFzIGluIHRoaXMgQ2FtZXJhIE1hbmFnZXIuXHJcbiAgICAgKi9cclxuICAgIGdldFRvdGFsOiBmdW5jdGlvbiAoaXNWaXNpYmxlKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChpc1Zpc2libGUgPT09IHVuZGVmaW5lZCkgeyBpc1Zpc2libGUgPSBmYWxzZTsgfVxyXG5cclxuICAgICAgICB2YXIgdG90YWwgPSAwO1xyXG5cclxuICAgICAgICB2YXIgY2FtZXJhcyA9IHRoaXMuY2FtZXJhcztcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYW1lcmFzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGNhbWVyYSA9IGNhbWVyYXNbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoIWlzVmlzaWJsZSB8fCAoaXNWaXNpYmxlICYmIGNhbWVyYS52aXNpYmxlKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdG90YWwrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRvdGFsO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvcHVsYXRlcyB0aGlzIENhbWVyYSBNYW5hZ2VyIGJhc2VkIG9uIHRoZSBnaXZlbiBjb25maWd1cmF0aW9uIG9iamVjdCwgb3IgYW4gYXJyYXkgb2YgY29uZmlnIG9iamVjdHMuXHJcbiAgICAgKiBcclxuICAgICAqIFNlZSB0aGUgYFBoYXNlci5UeXBlcy5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhQ29uZmlnYCBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzIG9mIHRoZSBvYmplY3Qgc3RydWN0dXJlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmFNYW5hZ2VyI2Zyb21KU09OXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuVHlwZXMuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYUNvbmZpZ3xQaGFzZXIuVHlwZXMuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYUNvbmZpZ1tdKX0gY29uZmlnIC0gQSBDYW1lcmEgY29uZmlndXJhdGlvbiBvYmplY3QsIG9yIGFuIGFycmF5IG9mIHRoZW0sIHRvIGJlIGFkZGVkIHRvIHRoaXMgQ2FtZXJhIE1hbmFnZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDYW1lcmEgTWFuYWdlciBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgZnJvbUpTT046IGZ1bmN0aW9uIChjb25maWcpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbmZpZykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb25maWcgPSBbIGNvbmZpZyBdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGdhbWVXaWR0aCA9IHRoaXMuc2NlbmUuc3lzLnNjYWxlLndpZHRoO1xyXG4gICAgICAgIHZhciBnYW1lSGVpZ2h0ID0gdGhpcy5zY2VuZS5zeXMuc2NhbGUuaGVpZ2h0O1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbmZpZy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBjYW1lcmFDb25maWcgPSBjb25maWdbaV07XHJcblxyXG4gICAgICAgICAgICB2YXIgeCA9IEdldEZhc3RWYWx1ZShjYW1lcmFDb25maWcsICd4JywgMCk7XHJcbiAgICAgICAgICAgIHZhciB5ID0gR2V0RmFzdFZhbHVlKGNhbWVyYUNvbmZpZywgJ3knLCAwKTtcclxuICAgICAgICAgICAgdmFyIHdpZHRoID0gR2V0RmFzdFZhbHVlKGNhbWVyYUNvbmZpZywgJ3dpZHRoJywgZ2FtZVdpZHRoKTtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IEdldEZhc3RWYWx1ZShjYW1lcmFDb25maWcsICdoZWlnaHQnLCBnYW1lSGVpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgIHZhciBjYW1lcmEgPSB0aGlzLmFkZCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgIC8vICBEaXJlY3QgcHJvcGVydGllc1xyXG4gICAgICAgICAgICBjYW1lcmEubmFtZSA9IEdldEZhc3RWYWx1ZShjYW1lcmFDb25maWcsICduYW1lJywgJycpO1xyXG4gICAgICAgICAgICBjYW1lcmEuem9vbSA9IEdldEZhc3RWYWx1ZShjYW1lcmFDb25maWcsICd6b29tJywgMSk7XHJcbiAgICAgICAgICAgIGNhbWVyYS5yb3RhdGlvbiA9IEdldEZhc3RWYWx1ZShjYW1lcmFDb25maWcsICdyb3RhdGlvbicsIDApO1xyXG4gICAgICAgICAgICBjYW1lcmEuc2Nyb2xsWCA9IEdldEZhc3RWYWx1ZShjYW1lcmFDb25maWcsICdzY3JvbGxYJywgMCk7XHJcbiAgICAgICAgICAgIGNhbWVyYS5zY3JvbGxZID0gR2V0RmFzdFZhbHVlKGNhbWVyYUNvbmZpZywgJ3Njcm9sbFknLCAwKTtcclxuICAgICAgICAgICAgY2FtZXJhLnJvdW5kUGl4ZWxzID0gR2V0RmFzdFZhbHVlKGNhbWVyYUNvbmZpZywgJ3JvdW5kUGl4ZWxzJywgZmFsc2UpO1xyXG4gICAgICAgICAgICBjYW1lcmEudmlzaWJsZSA9IEdldEZhc3RWYWx1ZShjYW1lcmFDb25maWcsICd2aXNpYmxlJywgdHJ1ZSk7XHJcblxyXG4gICAgICAgICAgICAvLyBCYWNrZ3JvdW5kIENvbG9yXHJcblxyXG4gICAgICAgICAgICB2YXIgYmFja2dyb3VuZENvbG9yID0gR2V0RmFzdFZhbHVlKGNhbWVyYUNvbmZpZywgJ2JhY2tncm91bmRDb2xvcicsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChiYWNrZ3JvdW5kQ29sb3IpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNhbWVyYS5zZXRCYWNrZ3JvdW5kQ29sb3IoYmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gIEJvdW5kc1xyXG5cclxuICAgICAgICAgICAgdmFyIGJvdW5kc0NvbmZpZyA9IEdldEZhc3RWYWx1ZShjYW1lcmFDb25maWcsICdib3VuZHMnLCBudWxsKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChib3VuZHNDb25maWcpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhciBieCA9IEdldEZhc3RWYWx1ZShib3VuZHNDb25maWcsICd4JywgMCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgYnkgPSBHZXRGYXN0VmFsdWUoYm91bmRzQ29uZmlnLCAneScsIDApO1xyXG4gICAgICAgICAgICAgICAgdmFyIGJ3aWR0aCA9IEdldEZhc3RWYWx1ZShib3VuZHNDb25maWcsICd3aWR0aCcsIGdhbWVXaWR0aCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgYmhlaWdodCA9IEdldEZhc3RWYWx1ZShib3VuZHNDb25maWcsICdoZWlnaHQnLCBnYW1lSGVpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgICAgICBjYW1lcmEuc2V0Qm91bmRzKGJ4LCBieSwgYndpZHRoLCBiaGVpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhIENhbWVyYSBiYXNlZCBvbiBpdHMgbmFtZS5cclxuICAgICAqIFxyXG4gICAgICogQ2FtZXJhIG5hbWVzIGFyZSBvcHRpb25hbCBhbmQgZG9uJ3QgaGF2ZSB0byBiZSBzZXQsIHNvIHRoaXMgbWV0aG9kIGlzIG9ubHkgb2YgYW55IHVzZSBpZiB5b3VcclxuICAgICAqIGhhdmUgZ2l2ZW4geW91ciBDYW1lcmFzIHVuaXF1ZSBuYW1lcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhTWFuYWdlciNnZXRDYW1lcmFcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIENhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHs/UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IFRoZSBmaXJzdCBDYW1lcmEgd2l0aCBhIG5hbWUgbWF0Y2hpbmcgdGhlIGdpdmVuIHN0cmluZywgb3RoZXJ3aXNlIGBudWxsYC5cclxuICAgICAqL1xyXG4gICAgZ2V0Q2FtZXJhOiBmdW5jdGlvbiAobmFtZSlcclxuICAgIHtcclxuICAgICAgICB2YXIgY2FtZXJhcyA9IHRoaXMuY2FtZXJhcztcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYW1lcmFzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKGNhbWVyYXNbaV0ubmFtZSA9PT0gbmFtZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbWVyYXNbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIGNhbWVyYXMgYmVsb3cgdGhlIGdpdmVuIFBvaW50ZXIuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBmaXJzdCBjYW1lcmEgaW4gdGhlIGFycmF5IGlzIHRoZSB0b3AtbW9zdCBjYW1lcmEgaW4gdGhlIGNhbWVyYSBsaXN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmFNYW5hZ2VyI2dldENhbWVyYXNCZWxvd1BvaW50ZXJcclxuICAgICAqIEBzaW5jZSAzLjEwLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5JbnB1dC5Qb2ludGVyfSBwb2ludGVyIC0gVGhlIFBvaW50ZXIgdG8gY2hlY2sgYWdhaW5zdC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYVtdfSBBbiBhcnJheSBvZiBjYW1lcmFzIGJlbG93IHRoZSBQb2ludGVyLlxyXG4gICAgICovXHJcbiAgICBnZXRDYW1lcmFzQmVsb3dQb2ludGVyOiBmdW5jdGlvbiAocG9pbnRlcilcclxuICAgIHtcclxuICAgICAgICB2YXIgY2FtZXJhcyA9IHRoaXMuY2FtZXJhcztcclxuXHJcbiAgICAgICAgdmFyIHggPSBwb2ludGVyLng7XHJcbiAgICAgICAgdmFyIHkgPSBwb2ludGVyLnk7XHJcblxyXG4gICAgICAgIHZhciBvdXRwdXQgPSBbXTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYW1lcmFzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGNhbWVyYSA9IGNhbWVyYXNbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoY2FtZXJhLnZpc2libGUgJiYgY2FtZXJhLmlucHV0RW5hYmxlZCAmJiBSZWN0YW5nbGVDb250YWlucyhjYW1lcmEsIHgsIHkpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAvLyAgU28gdGhlIHRvcC1tb3N0IGNhbWVyYSBpcyBhdCB0aGUgdG9wIG9mIHRoZSBzZWFyY2ggYXJyYXlcclxuICAgICAgICAgICAgICAgIG91dHB1dC51bnNoaWZ0KGNhbWVyYSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyB0aGUgZ2l2ZW4gQ2FtZXJhLCBvciBhbiBhcnJheSBvZiBDYW1lcmFzLCBmcm9tIHRoaXMgQ2FtZXJhIE1hbmFnZXIuXHJcbiAgICAgKiBcclxuICAgICAqIElmIGZvdW5kIGluIHRoZSBDYW1lcmEgTWFuYWdlciBpdCB3aWxsIGJlIGltbWVkaWF0ZWx5IHJlbW92ZWQgZnJvbSB0aGUgbG9jYWwgY2FtZXJhcyBhcnJheS5cclxuICAgICAqIElmIGFsc28gY3VycmVudGx5IHRoZSAnbWFpbicgY2FtZXJhLCAnbWFpbicgd2lsbCBiZSByZXNldCB0byBiZSBjYW1lcmEgMC5cclxuICAgICAqIFxyXG4gICAgICogVGhlIHJlbW92ZWQgQ2FtZXJhcyBhcmUgYXV0b21hdGljYWxseSBkZXN0cm95ZWQgaWYgdGhlIGBydW5EZXN0cm95YCBhcmd1bWVudCBpcyBgdHJ1ZWAsIHdoaWNoIGlzIHRoZSBkZWZhdWx0LlxyXG4gICAgICogSWYgeW91IHdpc2ggdG8gcmUtdXNlIHRoZSBjYW1lcmFzIHRoZW4gc2V0IHRoaXMgdG8gYGZhbHNlYCwgYnV0IGtub3cgdGhhdCB0aGV5IHdpbGwgcmV0YWluIHRoZWlyIHJlZmVyZW5jZXNcclxuICAgICAqIGFuZCBpbnRlcm5hbCBkYXRhIHVudGlsIGRlc3Ryb3llZCBvciByZS1hZGRlZCB0byBhIENhbWVyYSBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmFNYW5hZ2VyI3JlbW92ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF8UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmFbXSl9IGNhbWVyYSAtIFRoZSBDYW1lcmEsIG9yIGFuIGFycmF5IG9mIENhbWVyYXMsIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGlzIENhbWVyYSBNYW5hZ2VyLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcnVuRGVzdHJveT10cnVlXSAtIEF1dG9tYXRpY2FsbHkgY2FsbCBgQ2FtZXJhLmRlc3Ryb3lgIG9uIGVhY2ggQ2FtZXJhIHJlbW92ZWQgZnJvbSB0aGlzIENhbWVyYSBNYW5hZ2VyLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHtpbnRlZ2VyfSBUaGUgdG90YWwgbnVtYmVyIG9mIENhbWVyYXMgcmVtb3ZlZC5cclxuICAgICAqL1xyXG4gICAgcmVtb3ZlOiBmdW5jdGlvbiAoY2FtZXJhLCBydW5EZXN0cm95KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChydW5EZXN0cm95ID09PSB1bmRlZmluZWQpIHsgcnVuRGVzdHJveSA9IHRydWU7IH1cclxuXHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNhbWVyYSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjYW1lcmEgPSBbIGNhbWVyYSBdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIHRvdGFsID0gMDtcclxuICAgICAgICB2YXIgY2FtZXJhcyA9IHRoaXMuY2FtZXJhcztcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYW1lcmEubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBjYW1lcmFzLmluZGV4T2YoY2FtZXJhW2ldKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlmIChydW5EZXN0cm95KVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbWVyYXNbaW5kZXhdLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjYW1lcmFzLnNwbGljZShpbmRleCwgMSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdG90YWwrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLm1haW4gJiYgY2FtZXJhc1swXSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubWFpbiA9IGNhbWVyYXNbMF07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdG90YWw7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGludGVybmFsIHJlbmRlciBtZXRob2QuIFRoaXMgaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIFNjZW5lIGFuZCBzaG91bGQgbm90IGJlIGludm9rZWQgZGlyZWN0bHkuXHJcbiAgICAgKiBcclxuICAgICAqIEl0IHdpbGwgaXRlcmF0ZSB0aHJvdWdoIGFsbCBsb2NhbCBjYW1lcmFzIGFuZCByZW5kZXIgdGhlbSBpbiB0dXJuLCBhcyBsb25nIGFzIHRoZXkncmUgdmlzaWJsZSBhbmQgaGF2ZVxyXG4gICAgICogYW4gYWxwaGEgbGV2ZWwgPiAwLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmFNYW5hZ2VyI3JlbmRlclxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoUGhhc2VyLlJlbmRlcmVyLkNhbnZhcy5DYW52YXNSZW5kZXJlcnxQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xSZW5kZXJlcil9IHJlbmRlcmVyIC0gVGhlIFJlbmRlcmVyIHRoYXQgd2lsbCByZW5kZXIgdGhlIGNoaWxkcmVuIHRvIHRoaXMgY2FtZXJhLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBjaGlsZHJlbiAtIEFuIGFycmF5IG9mIHJlbmRlcmFibGUgR2FtZSBPYmplY3RzLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb24gLSBJbnRlcnBvbGF0aW9uIHZhbHVlLiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS5cclxuICAgICAqL1xyXG4gICAgcmVuZGVyOiBmdW5jdGlvbiAocmVuZGVyZXIsIGNoaWxkcmVuLCBpbnRlcnBvbGF0aW9uKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBzY2VuZSA9IHRoaXMuc2NlbmU7XHJcbiAgICAgICAgdmFyIGNhbWVyYXMgPSB0aGlzLmNhbWVyYXM7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jYW1lcmFzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGNhbWVyYSA9IGNhbWVyYXNbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoY2FtZXJhLnZpc2libGUgJiYgY2FtZXJhLmFscGhhID4gMClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy8gIEhhcmQtY29kZWQgdG8gMSBmb3Igbm93XHJcbiAgICAgICAgICAgICAgICBjYW1lcmEucHJlUmVuZGVyKDEpO1xyXG5cclxuICAgICAgICAgICAgICAgIHJlbmRlcmVyLnJlbmRlcihzY2VuZSwgY2hpbGRyZW4sIGludGVycG9sYXRpb24sIGNhbWVyYSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzZXRzIHRoaXMgQ2FtZXJhIE1hbmFnZXIuXHJcbiAgICAgKiBcclxuICAgICAqIFRoaXMgd2lsbCBpdGVyYXRlIHRocm91Z2ggYWxsIGN1cnJlbnQgQ2FtZXJhcywgZGVzdHJveWluZyB0aGVtIGFsbCwgdGhlbiBpdCB3aWxsIHJlc2V0IHRoZVxyXG4gICAgICogY2FtZXJhcyBhcnJheSwgcmVzZXQgdGhlIElEIGNvdW50ZXIgYW5kIGNyZWF0ZSAxIG5ldyBzaW5nbGUgY2FtZXJhIHVzaW5nIHRoZSBkZWZhdWx0IHZhbHVlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhTWFuYWdlciNyZXNldEFsbFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IFRoZSBmcmVzaGx5IGNyZWF0ZWQgbWFpbiBDYW1lcmEuXHJcbiAgICAgKi9cclxuICAgIHJlc2V0QWxsOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jYW1lcmFzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jYW1lcmFzW2ldLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2FtZXJhcyA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLm1haW4gPSB0aGlzLmFkZCgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5tYWluO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBtYWluIHVwZGF0ZSBsb29wLiBDYWxsZWQgYXV0b21hdGljYWxseSB3aGVuIHRoZSBTY2VuZSBzdGVwcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhTWFuYWdlciN1cGRhdGVcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gdGltZSAtIFRoZSBjdXJyZW50IHRpbWVzdGFtcCBhcyBnZW5lcmF0ZWQgYnkgdGhlIFJlcXVlc3QgQW5pbWF0aW9uIEZyYW1lIG9yIFNldFRpbWVvdXQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGVsdGEgLSBUaGUgZGVsdGEgdGltZSwgaW4gbXMsIGVsYXBzZWQgc2luY2UgdGhlIGxhc3QgZnJhbWUuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZTogZnVuY3Rpb24gKHRpbWUsIGRlbHRhKVxyXG4gICAge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jYW1lcmFzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jYW1lcmFzW2ldLnVwZGF0ZSh0aW1lLCBkZWx0YSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBldmVudCBoYW5kbGVyIHRoYXQgbWFuYWdlcyB0aGUgYHJlc2l6ZWAgZXZlbnQgZGlzcGF0Y2hlZCBieSB0aGUgU2NhbGUgTWFuYWdlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhTWFuYWdlciNvblJlc2l6ZVxyXG4gICAgICogQHNpbmNlIDMuMTguMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlN0cnVjdHMuU2l6ZX0gZ2FtZVNpemUgLSBUaGUgZGVmYXVsdCBHYW1lIFNpemUgb2JqZWN0LiBUaGlzIGlzIHRoZSB1bi1tb2RpZmllZCBnYW1lIGRpbWVuc2lvbnMuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5TdHJ1Y3RzLlNpemV9IGJhc2VTaXplIC0gVGhlIGJhc2UgU2l6ZSBvYmplY3QuIFRoZSBnYW1lIGRpbWVuc2lvbnMgbXVsdGlwbGllZCBieSB0aGUgcmVzb2x1dGlvbi4gVGhlIGNhbnZhcyB3aWR0aCAvIGhlaWdodCB2YWx1ZXMgbWF0Y2ggdGhpcy5cclxuICAgICAqL1xyXG4gICAgb25SZXNpemU6IGZ1bmN0aW9uIChnYW1lU2l6ZSwgYmFzZVNpemUsIGRpc3BsYXlTaXplLCByZXNvbHV0aW9uLCBwcmV2aW91c1dpZHRoLCBwcmV2aW91c0hlaWdodClcclxuICAgIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2FtZXJhcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBjYW0gPSB0aGlzLmNhbWVyYXNbaV07XHJcblxyXG4gICAgICAgICAgICAvLyAgaWYgY2FtZXJhIGlzIGF0IDB4MCBhbmQgd2FzIHRoZSBzaXplIG9mIHRoZSBwcmV2aW91cyBnYW1lIHNpemUsIHRoZW4gd2UgY2FuIHNhZmVseSBhc3N1bWUgaXRcclxuICAgICAgICAgICAgLy8gIHNob3VsZCBiZSB1cGRhdGVkIHRvIG1hdGNoIHRoZSBuZXcgZ2FtZSBzaXplIHRvb1xyXG5cclxuICAgICAgICAgICAgaWYgKGNhbS5feCA9PT0gMCAmJiBjYW0uX3kgPT09IDAgJiYgY2FtLl93aWR0aCA9PT0gcHJldmlvdXNXaWR0aCAmJiBjYW0uX2hlaWdodCA9PT0gcHJldmlvdXNIZWlnaHQpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNhbS5zZXRTaXplKGJhc2VTaXplLndpZHRoLCBiYXNlU2l6ZS5oZWlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc2l6ZXMgYWxsIGNhbWVyYXMgdG8gdGhlIGdpdmVuIGRpbWVuc2lvbnMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYU1hbmFnZXIjcmVzaXplXHJcbiAgICAgKiBAc2luY2UgMy4yLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBUaGUgbmV3IHdpZHRoIG9mIHRoZSBjYW1lcmEuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gVGhlIG5ldyBoZWlnaHQgb2YgdGhlIGNhbWVyYS5cclxuICAgICAqL1xyXG4gICAgcmVzaXplOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodClcclxuICAgIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2FtZXJhcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FtZXJhc1tpXS5zZXRTaXplKHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgU2NlbmUgdGhhdCBvd25zIHRoaXMgcGx1Z2luIGlzIHNodXR0aW5nIGRvd24uXHJcbiAgICAgKiBXZSBuZWVkIHRvIGtpbGwgYW5kIHJlc2V0IGFsbCBpbnRlcm5hbCBwcm9wZXJ0aWVzIGFzIHdlbGwgYXMgc3RvcCBsaXN0ZW5pbmcgdG8gU2NlbmUgZXZlbnRzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmFNYW5hZ2VyI3NodXRkb3duXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHNodXRkb3duOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMubWFpbiA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNhbWVyYXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmNhbWVyYXNbaV0uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jYW1lcmFzID0gW107XHJcblxyXG4gICAgICAgIHZhciBldmVudEVtaXR0ZXIgPSB0aGlzLnN5c3RlbXMuZXZlbnRzO1xyXG5cclxuICAgICAgICBldmVudEVtaXR0ZXIub2ZmKFNjZW5lRXZlbnRzLlVQREFURSwgdGhpcy51cGRhdGUsIHRoaXMpO1xyXG4gICAgICAgIGV2ZW50RW1pdHRlci5vZmYoU2NlbmVFdmVudHMuU0hVVERPV04sIHRoaXMuc2h1dGRvd24sIHRoaXMpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBTY2VuZSB0aGF0IG93bnMgdGhpcyBwbHVnaW4gaXMgYmVpbmcgZGVzdHJveWVkLlxyXG4gICAgICogV2UgbmVlZCB0byBzaHV0ZG93biBhbmQgdGhlbiBraWxsIG9mZiBhbGwgZXh0ZXJuYWwgcmVmZXJlbmNlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhTWFuYWdlciNkZXN0cm95XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zaHV0ZG93bigpO1xyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHQuZGVzdHJveSgpO1xyXG5cclxuICAgICAgICB0aGlzLnNjZW5lLnN5cy5ldmVudHMub2ZmKFNjZW5lRXZlbnRzLlNUQVJULCB0aGlzLnN0YXJ0LCB0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY2VuZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5zeXN0ZW1zID0gbnVsbDtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxuUGx1Z2luQ2FjaGUucmVnaXN0ZXIoJ0NhbWVyYU1hbmFnZXInLCBDYW1lcmFNYW5hZ2VyLCAnY2FtZXJhcycpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDYW1lcmFNYW5hZ2VyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFtcCA9IHJlcXVpcmUoJy4uLy4uLy4uL21hdGgvQ2xhbXAnKTtcclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEV2ZW50cyA9IHJlcXVpcmUoJy4uL2V2ZW50cycpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBDYW1lcmEgRmFkZSBlZmZlY3QuXHJcbiAqXHJcbiAqIFRoaXMgZWZmZWN0IHdpbGwgZmFkZSB0aGUgY2FtZXJhIHZpZXdwb3J0IHRvIHRoZSBnaXZlbiBjb2xvciwgb3ZlciB0aGUgZHVyYXRpb24gc3BlY2lmaWVkLlxyXG4gKlxyXG4gKiBPbmx5IHRoZSBjYW1lcmEgdmlld3BvcnQgaXMgZmFkZWQuIE5vbmUgb2YgdGhlIG9iamVjdHMgaXQgaXMgZGlzcGxheWluZyBhcmUgaW1wYWN0ZWQsIGkuZS4gdGhlaXIgY29sb3JzIGRvXHJcbiAqIG5vdCBjaGFuZ2UuXHJcbiAqXHJcbiAqIFRoZSBlZmZlY3Qgd2lsbCBkaXNwYXRjaCBzZXZlcmFsIGV2ZW50cyBvbiB0aGUgQ2FtZXJhIGl0c2VsZiBhbmQgeW91IGNhbiBhbHNvIHNwZWNpZnkgYW4gYG9uVXBkYXRlYCBjYWxsYmFjayxcclxuICogd2hpY2ggaXMgaW52b2tlZCBlYWNoIGZyYW1lIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGVmZmVjdCwgaWYgcmVxdWlyZWQuXHJcbiAqXHJcbiAqIEBjbGFzcyBGYWRlXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjUuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIHRoaXMgZWZmZWN0IGlzIGFjdGluZyB1cG9uLlxyXG4gKi9cclxudmFyIEZhZGUgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gRmFkZSAoY2FtZXJhKVxyXG4gICAge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBDYW1lcmEgdGhpcyBlZmZlY3QgYmVsb25ncyB0by5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GYWRlI2NhbWVyYVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX1cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNhbWVyYSA9IGNhbWVyYTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSXMgdGhpcyBlZmZlY3QgYWN0aXZlbHkgcnVubmluZz9cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GYWRlI2lzUnVubmluZ1xyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSGFzIHRoaXMgZWZmZWN0IGZpbmlzaGVkIHJ1bm5pbmc/XHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIGBpc1J1bm5pbmdgIGJlY2F1c2UgaXQgcmVtYWlucyBzZXQgdG8gYHRydWVgIHdoZW4gdGhlIGVmZmVjdCBpcyBvdmVyLFxyXG4gICAgICAgICAqIHVudGlsIHRoZSBlZmZlY3QgaXMgZWl0aGVyIHJlc2V0IG9yIHN0YXJ0ZWQgYWdhaW4uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmFkZSNpc0NvbXBsZXRlXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlzQ29tcGxldGUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGRpcmVjdGlvbiBvZiB0aGUgZmFkZS5cclxuICAgICAgICAgKiBgdHJ1ZWAgPSBmYWRlIG91dCAodHJhbnNwYXJlbnQgdG8gY29sb3IpLCBgZmFsc2VgID0gZmFkZSBpbiAoY29sb3IgdG8gdHJhbnNwYXJlbnQpXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmFkZSNkaXJlY3Rpb25cclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LCBpbiBtaWxsaXNlY29uZHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmFkZSNkdXJhdGlvblxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmR1cmF0aW9uID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHZhbHVlIG9mIHRoZSByZWQgY29sb3IgY2hhbm5lbCB0aGUgY2FtZXJhIHdpbGwgdXNlIGZvciB0aGUgZmFkZSBlZmZlY3QuXHJcbiAgICAgICAgICogQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GYWRlI3JlZFxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yZWQgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdmFsdWUgb2YgdGhlIGdyZWVuIGNvbG9yIGNoYW5uZWwgdGhlIGNhbWVyYSB3aWxsIHVzZSBmb3IgdGhlIGZhZGUgZWZmZWN0LlxyXG4gICAgICAgICAqIEEgdmFsdWUgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmFkZSNncmVlblxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ncmVlbiA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgYmx1ZSBjb2xvciBjaGFubmVsIHRoZSBjYW1lcmEgd2lsbCB1c2UgZm9yIHRoZSBmYWRlIGVmZmVjdC5cclxuICAgICAgICAgKiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLkZhZGUjYmx1ZVxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ibHVlID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHZhbHVlIG9mIHRoZSBhbHBoYSBjaGFubmVsIHVzZWQgZHVyaW5nIHRoZSBmYWRlIGVmZmVjdC5cclxuICAgICAgICAgKiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GYWRlI2FscGhhXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWxwaGEgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGlzIGVmZmVjdCBpcyBydW5uaW5nIHRoaXMgaG9sZHMgdGhlIGN1cnJlbnQgcGVyY2VudGFnZSBvZiB0aGUgcHJvZ3Jlc3MsIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLkZhZGUjcHJvZ3Jlc3NcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBFZmZlY3QgZWxhcHNlZCB0aW1lci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GYWRlI19lbGFwc2VkXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2VsYXBzZWQgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGludm9rZWQgZXZlcnkgZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLkZhZGUjX29uVXBkYXRlXHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuVHlwZXMuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYUZhZGVDYWxsYmFja31cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9vblVwZGF0ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogT24gQ29tcGxldGUgY2FsbGJhY2sgc2NvcGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmFkZSNfb25VcGRhdGVTY29wZVxyXG4gICAgICAgICAqIEB0eXBlIHthbnl9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9vblVwZGF0ZVNjb3BlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZhZGVzIHRoZSBDYW1lcmEgdG8gb3IgZnJvbSB0aGUgZ2l2ZW4gY29sb3Igb3ZlciB0aGUgZHVyYXRpb24gc3BlY2lmaWVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLkZhZGUjc3RhcnRcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNGQURFX0lOX1NUQVJUXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjRkFERV9PVVRfU1RBUlRcclxuICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2RpcmVjdGlvbj10cnVlXSAtIFRoZSBkaXJlY3Rpb24gb2YgdGhlIGZhZGUuIGB0cnVlYCA9IGZhZGUgb3V0ICh0cmFuc3BhcmVudCB0byBjb2xvciksIGBmYWxzZWAgPSBmYWRlIGluIChjb2xvciB0byB0cmFuc3BhcmVudClcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2R1cmF0aW9uPTEwMDBdIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QgaW4gbWlsbGlzZWNvbmRzLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbcmVkPTBdIC0gVGhlIGFtb3VudCB0byBmYWRlIHRoZSByZWQgY2hhbm5lbCB0b3dhcmRzLiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZ3JlZW49MF0gLSBUaGUgYW1vdW50IHRvIGZhZGUgdGhlIGdyZWVuIGNoYW5uZWwgdG93YXJkcy4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2JsdWU9MF0gLSBUaGUgYW1vdW50IHRvIGZhZGUgdGhlIGJsdWUgY2hhbm5lbCB0b3dhcmRzLiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZm9yY2U9ZmFsc2VdIC0gRm9yY2UgdGhlIGVmZmVjdCB0byBzdGFydCBpbW1lZGlhdGVseSwgZXZlbiBpZiBhbHJlYWR5IHJ1bm5pbmcuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhRmFkZUNhbGxiYWNrfSBbY2FsbGJhY2tdIC0gVGhpcyBjYWxsYmFjayB3aWxsIGJlIGludm9rZWQgZXZlcnkgZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gICAgICogSXQgaXMgc2VudCB0d28gYXJndW1lbnRzOiBBIHJlZmVyZW5jZSB0byB0aGUgY2FtZXJhIGFuZCBhIHByb2dyZXNzIGFtb3VudCBiZXR3ZWVuIDAgYW5kIDEgaW5kaWNhdGluZyBob3cgY29tcGxldGUgdGhlIGVmZmVjdCBpcy5cclxuICAgICAqIEBwYXJhbSB7YW55fSBbY29udGV4dF0gLSBUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgY2FsbGJhY2sgaXMgaW52b2tlZC4gRGVmYXVsdHMgdG8gdGhlIFNjZW5lIHRvIHdoaWNoIHRoZSBDYW1lcmEgYmVsb25ncy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gVGhlIENhbWVyYSBvbiB3aGljaCB0aGUgZWZmZWN0IHdhcyBzdGFydGVkLlxyXG4gICAgICovXHJcbiAgICBzdGFydDogZnVuY3Rpb24gKGRpcmVjdGlvbiwgZHVyYXRpb24sIHJlZCwgZ3JlZW4sIGJsdWUsIGZvcmNlLCBjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICBpZiAoZGlyZWN0aW9uID09PSB1bmRlZmluZWQpIHsgZGlyZWN0aW9uID0gdHJ1ZTsgfVxyXG4gICAgICAgIGlmIChkdXJhdGlvbiA9PT0gdW5kZWZpbmVkKSB7IGR1cmF0aW9uID0gMTAwMDsgfVxyXG4gICAgICAgIGlmIChyZWQgPT09IHVuZGVmaW5lZCkgeyByZWQgPSAwOyB9XHJcbiAgICAgICAgaWYgKGdyZWVuID09PSB1bmRlZmluZWQpIHsgZ3JlZW4gPSAwOyB9XHJcbiAgICAgICAgaWYgKGJsdWUgPT09IHVuZGVmaW5lZCkgeyBibHVlID0gMDsgfVxyXG4gICAgICAgIGlmIChmb3JjZSA9PT0gdW5kZWZpbmVkKSB7IGZvcmNlID0gZmFsc2U7IH1cclxuICAgICAgICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkgeyBjYWxsYmFjayA9IG51bGw7IH1cclxuICAgICAgICBpZiAoY29udGV4dCA9PT0gdW5kZWZpbmVkKSB7IGNvbnRleHQgPSB0aGlzLmNhbWVyYS5zY2VuZTsgfVxyXG5cclxuICAgICAgICBpZiAoIWZvcmNlICYmIHRoaXMuaXNSdW5uaW5nKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FtZXJhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNDb21wbGV0ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSBkdXJhdGlvbjtcclxuICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgICAgICB0aGlzLnByb2dyZXNzID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy5yZWQgPSByZWQ7XHJcbiAgICAgICAgdGhpcy5ncmVlbiA9IGdyZWVuO1xyXG4gICAgICAgIHRoaXMuYmx1ZSA9IGJsdWU7XHJcbiAgICAgICAgdGhpcy5hbHBoYSA9IChkaXJlY3Rpb24pID8gTnVtYmVyLk1JTl9WQUxVRSA6IDE7XHJcblxyXG4gICAgICAgIHRoaXMuX2VsYXBzZWQgPSAwO1xyXG5cclxuICAgICAgICB0aGlzLl9vblVwZGF0ZSA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlU2NvcGUgPSBjb250ZXh0O1xyXG5cclxuICAgICAgICB2YXIgZXZlbnROYW1lID0gKGRpcmVjdGlvbikgPyBFdmVudHMuRkFERV9PVVRfU1RBUlQgOiBFdmVudHMuRkFERV9JTl9TVEFSVDtcclxuXHJcbiAgICAgICAgdGhpcy5jYW1lcmEuZW1pdChldmVudE5hbWUsIHRoaXMuY2FtZXJhLCB0aGlzLCBkdXJhdGlvbiwgcmVkLCBncmVlbiwgYmx1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmNhbWVyYTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWFpbiB1cGRhdGUgbG9vcCBmb3IgdGhpcyBlZmZlY3QuIENhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBDYW1lcmEuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmFkZSN1cGRhdGVcclxuICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gdGltZSAtIFRoZSBjdXJyZW50IHRpbWVzdGFtcCBhcyBnZW5lcmF0ZWQgYnkgdGhlIFJlcXVlc3QgQW5pbWF0aW9uIEZyYW1lIG9yIFNldFRpbWVvdXQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGVsdGEgLSBUaGUgZGVsdGEgdGltZSwgaW4gbXMsIGVsYXBzZWQgc2luY2UgdGhlIGxhc3QgZnJhbWUuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZTogZnVuY3Rpb24gKHRpbWUsIGRlbHRhKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1J1bm5pbmcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9lbGFwc2VkICs9IGRlbHRhO1xyXG5cclxuICAgICAgICB0aGlzLnByb2dyZXNzID0gQ2xhbXAodGhpcy5fZWxhcHNlZCAvIHRoaXMuZHVyYXRpb24sIDAsIDEpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb25VcGRhdGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9vblVwZGF0ZS5jYWxsKHRoaXMuX29uVXBkYXRlU2NvcGUsIHRoaXMuY2FtZXJhLCB0aGlzLnByb2dyZXNzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9lbGFwc2VkIDwgdGhpcy5kdXJhdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxwaGEgPSAodGhpcy5kaXJlY3Rpb24pID8gdGhpcy5wcm9ncmVzcyA6IDEgLSB0aGlzLnByb2dyZXNzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmFscGhhID0gKHRoaXMuZGlyZWN0aW9uKSA/IDEgOiAwO1xyXG4gICAgICAgICAgICB0aGlzLmVmZmVjdENvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCBpbnRlcm5hbGx5IGJ5IHRoZSBDYW52YXMgUmVuZGVyZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmFkZSNwb3N0UmVuZGVyQ2FudmFzXHJcbiAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gY3R4IC0gVGhlIENhbnZhcyBjb250ZXh0IHRvIHJlbmRlciB0by5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIGVmZmVjdCBkcmV3IHRvIHRoZSByZW5kZXJlciwgb3RoZXJ3aXNlIGBmYWxzZWAuXHJcbiAgICAgKi9cclxuICAgIHBvc3RSZW5kZXJDYW52YXM6IGZ1bmN0aW9uIChjdHgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzUnVubmluZyAmJiAhdGhpcy5pc0NvbXBsZXRlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGNhbWVyYSA9IHRoaXMuY2FtZXJhO1xyXG5cclxuICAgICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoJyArIHRoaXMucmVkICsgJywnICsgdGhpcy5ncmVlbiArICcsJyArIHRoaXMuYmx1ZSArICcsJyArIHRoaXMuYWxwaGEgKyAnKSc7XHJcbiAgICAgICAgY3R4LmZpbGxSZWN0KGNhbWVyYS5fY3gsIGNhbWVyYS5fY3ksIGNhbWVyYS5fY3csIGNhbWVyYS5fY2gpO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgaW50ZXJuYWxseSBieSB0aGUgV2ViR0wgUmVuZGVyZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmFkZSNwb3N0UmVuZGVyV2ViR0xcclxuICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLldlYkdMLlBpcGVsaW5lcy5UZXh0dXJlVGludFBpcGVsaW5lfSBwaXBlbGluZSAtIFRoZSBXZWJHTCBQaXBlbGluZSB0byByZW5kZXIgdG8uXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBnZXRUaW50RnVuY3Rpb24gLSBBIGZ1bmN0aW9uIHRoYXQgd2lsbCByZXR1cm4gdGhlIGdsIHNhZmUgdGludCBjb2xvcnMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSBlZmZlY3QgZHJldyB0byB0aGUgcmVuZGVyZXIsIG90aGVyd2lzZSBgZmFsc2VgLlxyXG4gICAgICovXHJcbiAgICBwb3N0UmVuZGVyV2ViR0w6IGZ1bmN0aW9uIChwaXBlbGluZSwgZ2V0VGludEZ1bmN0aW9uKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1J1bm5pbmcgJiYgIXRoaXMuaXNDb21wbGV0ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBjYW1lcmEgPSB0aGlzLmNhbWVyYTtcclxuICAgICAgICB2YXIgcmVkID0gdGhpcy5yZWQgLyAyNTU7XHJcbiAgICAgICAgdmFyIGJsdWUgPSB0aGlzLmJsdWUgLyAyNTU7XHJcbiAgICAgICAgdmFyIGdyZWVuID0gdGhpcy5ncmVlbiAvIDI1NTtcclxuXHJcbiAgICAgICAgcGlwZWxpbmUuZHJhd0ZpbGxSZWN0KFxyXG4gICAgICAgICAgICBjYW1lcmEuX2N4LCBjYW1lcmEuX2N5LCBjYW1lcmEuX2N3LCBjYW1lcmEuX2NoLFxyXG4gICAgICAgICAgICBnZXRUaW50RnVuY3Rpb24ocmVkLCBncmVlbiwgYmx1ZSwgMSksXHJcbiAgICAgICAgICAgIHRoaXMuYWxwaGFcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgaW50ZXJuYWxseSB3aGVuIHRoZSBlZmZlY3QgY29tcGxldGVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLkZhZGUjZWZmZWN0Q29tcGxldGVcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNGQURFX0lOX0NPTVBMRVRFXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjRkFERV9PVVRfQ09NUExFVEVcclxuICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICovXHJcbiAgICBlZmZlY3RDb21wbGV0ZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vblVwZGF0ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGVTY29wZSA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuaXNSdW5uaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5pc0NvbXBsZXRlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdmFyIGV2ZW50TmFtZSA9ICh0aGlzLmRpcmVjdGlvbikgPyBFdmVudHMuRkFERV9PVVRfQ09NUExFVEUgOiBFdmVudHMuRkFERV9JTl9DT01QTEVURTtcclxuXHJcbiAgICAgICAgdGhpcy5jYW1lcmEuZW1pdChldmVudE5hbWUsIHRoaXMuY2FtZXJhLCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNldHMgdGhpcyBjYW1lcmEgZWZmZWN0LlxyXG4gICAgICogSWYgaXQgd2FzIHByZXZpb3VzbHkgcnVubmluZywgaXQgc3RvcHMgaW5zdGFudGx5IHdpdGhvdXQgY2FsbGluZyBpdHMgb25Db21wbGV0ZSBjYWxsYmFjayBvciBlbWl0dGluZyBhbiBldmVudC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GYWRlI3Jlc2V0XHJcbiAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAqL1xyXG4gICAgcmVzZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmlzQ29tcGxldGUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlU2NvcGUgPSBudWxsO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc3Ryb3lzIHRoaXMgZWZmZWN0LCByZWxlYXNpbmcgaXQgZnJvbSB0aGUgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLkZhZGUjZGVzdHJveVxyXG4gICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5yZXNldCgpO1xyXG5cclxuICAgICAgICB0aGlzLmNhbWVyYSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRmFkZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhbXAgPSByZXF1aXJlKCcuLi8uLi8uLi9tYXRoL0NsYW1wJyk7XHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBFdmVudHMgPSByZXF1aXJlKCcuLi9ldmVudHMnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgQ2FtZXJhIEZsYXNoIGVmZmVjdC5cclxuICpcclxuICogVGhpcyBlZmZlY3Qgd2lsbCBmbGFzaCB0aGUgY2FtZXJhIHZpZXdwb3J0IHRvIHRoZSBnaXZlbiBjb2xvciwgb3ZlciB0aGUgZHVyYXRpb24gc3BlY2lmaWVkLlxyXG4gKlxyXG4gKiBPbmx5IHRoZSBjYW1lcmEgdmlld3BvcnQgaXMgZmxhc2hlZC4gTm9uZSBvZiB0aGUgb2JqZWN0cyBpdCBpcyBkaXNwbGF5aW5nIGFyZSBpbXBhY3RlZCwgaS5lLiB0aGVpciBjb2xvcnMgZG9cclxuICogbm90IGNoYW5nZS5cclxuICpcclxuICogVGhlIGVmZmVjdCB3aWxsIGRpc3BhdGNoIHNldmVyYWwgZXZlbnRzIG9uIHRoZSBDYW1lcmEgaXRzZWxmIGFuZCB5b3UgY2FuIGFsc28gc3BlY2lmeSBhbiBgb25VcGRhdGVgIGNhbGxiYWNrLFxyXG4gKiB3aGljaCBpcyBpbnZva2VkIGVhY2ggZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LCBpZiByZXF1aXJlZC5cclxuICpcclxuICogQGNsYXNzIEZsYXNoXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjUuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIHRoaXMgZWZmZWN0IGlzIGFjdGluZyB1cG9uLlxyXG4gKi9cclxudmFyIEZsYXNoID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIEZsYXNoIChjYW1lcmEpXHJcbiAgICB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIENhbWVyYSB0aGlzIGVmZmVjdCBiZWxvbmdzIHRvLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLkZsYXNoI2NhbWVyYVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX1cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNhbWVyYSA9IGNhbWVyYTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSXMgdGhpcyBlZmZlY3QgYWN0aXZlbHkgcnVubmluZz9cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GbGFzaCNpc1J1bm5pbmdcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaXNSdW5uaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LCBpbiBtaWxsaXNlY29uZHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmxhc2gjZHVyYXRpb25cclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgcmVkIGNvbG9yIGNoYW5uZWwgdGhlIGNhbWVyYSB3aWxsIHVzZSBmb3IgdGhlIGZhZGUgZWZmZWN0LlxyXG4gICAgICAgICAqIEEgdmFsdWUgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmxhc2gjcmVkXHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJlZCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgZ3JlZW4gY29sb3IgY2hhbm5lbCB0aGUgY2FtZXJhIHdpbGwgdXNlIGZvciB0aGUgZmFkZSBlZmZlY3QuXHJcbiAgICAgICAgICogQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GbGFzaCNncmVlblxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ncmVlbiA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgYmx1ZSBjb2xvciBjaGFubmVsIHRoZSBjYW1lcmEgd2lsbCB1c2UgZm9yIHRoZSBmYWRlIGVmZmVjdC5cclxuICAgICAgICAgKiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLkZsYXNoI2JsdWVcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYmx1ZSA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgYWxwaGEgY2hhbm5lbCB1c2VkIGR1cmluZyB0aGUgZmFkZSBlZmZlY3QuXHJcbiAgICAgICAgICogQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmxhc2gjYWxwaGFcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5hbHBoYSA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElmIHRoaXMgZWZmZWN0IGlzIHJ1bm5pbmcgdGhpcyBob2xkcyB0aGUgY3VycmVudCBwZXJjZW50YWdlIG9mIHRoZSBwcm9ncmVzcywgYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmxhc2gjcHJvZ3Jlc3NcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBFZmZlY3QgZWxhcHNlZCB0aW1lci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GbGFzaCNfZWxhcHNlZFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9lbGFwc2VkID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhpcyBjYWxsYmFjayBpcyBpbnZva2VkIGV2ZXJ5IGZyYW1lIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGVmZmVjdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GbGFzaCNfb25VcGRhdGVcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5UeXBlcy5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhRmxhc2hDYWxsYmFja31cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9vblVwZGF0ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogT24gQ29tcGxldGUgY2FsbGJhY2sgc2NvcGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmxhc2gjX29uVXBkYXRlU2NvcGVcclxuICAgICAgICAgKiBAdHlwZSB7YW55fVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGVTY29wZTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFzaGVzIHRoZSBDYW1lcmEgdG8gb3IgZnJvbSB0aGUgZ2l2ZW4gY29sb3Igb3ZlciB0aGUgZHVyYXRpb24gc3BlY2lmaWVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLkZsYXNoI3N0YXJ0XHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjRkxBU0hfU1RBUlRcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNGTEFTSF9DT01QTEVURVxyXG4gICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZHVyYXRpb249MjUwXSAtIFRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0IGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3JlZD0yNTVdIC0gVGhlIGFtb3VudCB0byBmYWRlIHRoZSByZWQgY2hhbm5lbCB0b3dhcmRzLiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZ3JlZW49MjU1XSAtIFRoZSBhbW91bnQgdG8gZmFkZSB0aGUgZ3JlZW4gY2hhbm5lbCB0b3dhcmRzLiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbYmx1ZT0yNTVdIC0gVGhlIGFtb3VudCB0byBmYWRlIHRoZSBibHVlIGNoYW5uZWwgdG93YXJkcy4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ZvcmNlPWZhbHNlXSAtIEZvcmNlIHRoZSBlZmZlY3QgdG8gc3RhcnQgaW1tZWRpYXRlbHksIGV2ZW4gaWYgYWxyZWFkeSBydW5uaW5nLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYUZsYXNoQ2FsbGJhY2t9IFtjYWxsYmFja10gLSBUaGlzIGNhbGxiYWNrIHdpbGwgYmUgaW52b2tlZCBldmVyeSBmcmFtZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QuXHJcbiAgICAgKiBJdCBpcyBzZW50IHR3byBhcmd1bWVudHM6IEEgcmVmZXJlbmNlIHRvIHRoZSBjYW1lcmEgYW5kIGEgcHJvZ3Jlc3MgYW1vdW50IGJldHdlZW4gMCBhbmQgMSBpbmRpY2F0aW5nIGhvdyBjb21wbGV0ZSB0aGUgZWZmZWN0IGlzLlxyXG4gICAgICogQHBhcmFtIHthbnl9IFtjb250ZXh0XSAtIFRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBjYWxsYmFjayBpcyBpbnZva2VkLiBEZWZhdWx0cyB0byB0aGUgU2NlbmUgdG8gd2hpY2ggdGhlIENhbWVyYSBiZWxvbmdzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBUaGUgQ2FtZXJhIG9uIHdoaWNoIHRoZSBlZmZlY3Qgd2FzIHN0YXJ0ZWQuXHJcbiAgICAgKi9cclxuICAgIHN0YXJ0OiBmdW5jdGlvbiAoZHVyYXRpb24sIHJlZCwgZ3JlZW4sIGJsdWUsIGZvcmNlLCBjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICBpZiAoZHVyYXRpb24gPT09IHVuZGVmaW5lZCkgeyBkdXJhdGlvbiA9IDI1MDsgfVxyXG4gICAgICAgIGlmIChyZWQgPT09IHVuZGVmaW5lZCkgeyByZWQgPSAyNTU7IH1cclxuICAgICAgICBpZiAoZ3JlZW4gPT09IHVuZGVmaW5lZCkgeyBncmVlbiA9IDI1NTsgfVxyXG4gICAgICAgIGlmIChibHVlID09PSB1bmRlZmluZWQpIHsgYmx1ZSA9IDI1NTsgfVxyXG4gICAgICAgIGlmIChmb3JjZSA9PT0gdW5kZWZpbmVkKSB7IGZvcmNlID0gZmFsc2U7IH1cclxuICAgICAgICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkgeyBjYWxsYmFjayA9IG51bGw7IH1cclxuICAgICAgICBpZiAoY29udGV4dCA9PT0gdW5kZWZpbmVkKSB7IGNvbnRleHQgPSB0aGlzLmNhbWVyYS5zY2VuZTsgfVxyXG5cclxuICAgICAgICBpZiAoIWZvcmNlICYmIHRoaXMuaXNSdW5uaW5nKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FtZXJhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSBkdXJhdGlvbjtcclxuICAgICAgICB0aGlzLnByb2dyZXNzID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy5yZWQgPSByZWQ7XHJcbiAgICAgICAgdGhpcy5ncmVlbiA9IGdyZWVuO1xyXG4gICAgICAgIHRoaXMuYmx1ZSA9IGJsdWU7XHJcbiAgICAgICAgdGhpcy5hbHBoYSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuX2VsYXBzZWQgPSAwO1xyXG5cclxuICAgICAgICB0aGlzLl9vblVwZGF0ZSA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlU2NvcGUgPSBjb250ZXh0O1xyXG5cclxuICAgICAgICB0aGlzLmNhbWVyYS5lbWl0KEV2ZW50cy5GTEFTSF9TVEFSVCwgdGhpcy5jYW1lcmEsIHRoaXMsIGR1cmF0aW9uLCByZWQsIGdyZWVuLCBibHVlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FtZXJhO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBtYWluIHVwZGF0ZSBsb29wIGZvciB0aGlzIGVmZmVjdC4gQ2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIENhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GbGFzaCN1cGRhdGVcclxuICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gdGltZSAtIFRoZSBjdXJyZW50IHRpbWVzdGFtcCBhcyBnZW5lcmF0ZWQgYnkgdGhlIFJlcXVlc3QgQW5pbWF0aW9uIEZyYW1lIG9yIFNldFRpbWVvdXQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGVsdGEgLSBUaGUgZGVsdGEgdGltZSwgaW4gbXMsIGVsYXBzZWQgc2luY2UgdGhlIGxhc3QgZnJhbWUuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZTogZnVuY3Rpb24gKHRpbWUsIGRlbHRhKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1J1bm5pbmcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9lbGFwc2VkICs9IGRlbHRhO1xyXG5cclxuICAgICAgICB0aGlzLnByb2dyZXNzID0gQ2xhbXAodGhpcy5fZWxhcHNlZCAvIHRoaXMuZHVyYXRpb24sIDAsIDEpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fb25VcGRhdGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9vblVwZGF0ZS5jYWxsKHRoaXMuX29uVXBkYXRlU2NvcGUsIHRoaXMuY2FtZXJhLCB0aGlzLnByb2dyZXNzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9lbGFwc2VkIDwgdGhpcy5kdXJhdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxwaGEgPSAxIC0gdGhpcy5wcm9ncmVzcztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3RDb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgaW50ZXJuYWxseSBieSB0aGUgQ2FudmFzIFJlbmRlcmVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLkZsYXNoI3Bvc3RSZW5kZXJDYW52YXNcclxuICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBjdHggLSBUaGUgQ2FudmFzIGNvbnRleHQgdG8gcmVuZGVyIHRvLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgZWZmZWN0IGRyZXcgdG8gdGhlIHJlbmRlcmVyLCBvdGhlcndpc2UgYGZhbHNlYC5cclxuICAgICAqL1xyXG4gICAgcG9zdFJlbmRlckNhbnZhczogZnVuY3Rpb24gKGN0eClcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGNhbWVyYSA9IHRoaXMuY2FtZXJhO1xyXG5cclxuICAgICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoJyArIHRoaXMucmVkICsgJywnICsgdGhpcy5ncmVlbiArICcsJyArIHRoaXMuYmx1ZSArICcsJyArIHRoaXMuYWxwaGEgKyAnKSc7XHJcbiAgICAgICAgY3R4LmZpbGxSZWN0KGNhbWVyYS5fY3gsIGNhbWVyYS5fY3ksIGNhbWVyYS5fY3csIGNhbWVyYS5fY2gpO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgaW50ZXJuYWxseSBieSB0aGUgV2ViR0wgUmVuZGVyZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmxhc2gjcG9zdFJlbmRlcldlYkdMXHJcbiAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5QaXBlbGluZXMuVGV4dHVyZVRpbnRQaXBlbGluZX0gcGlwZWxpbmUgLSBUaGUgV2ViR0wgUGlwZWxpbmUgdG8gcmVuZGVyIHRvLlxyXG4gICAgICogQHBhcmFtIHtmdW5jdGlvbn0gZ2V0VGludEZ1bmN0aW9uIC0gQSBmdW5jdGlvbiB0aGF0IHdpbGwgcmV0dXJuIHRoZSBnbCBzYWZlIHRpbnQgY29sb3JzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgZWZmZWN0IGRyZXcgdG8gdGhlIHJlbmRlcmVyLCBvdGhlcndpc2UgYGZhbHNlYC5cclxuICAgICAqL1xyXG4gICAgcG9zdFJlbmRlcldlYkdMOiBmdW5jdGlvbiAocGlwZWxpbmUsIGdldFRpbnRGdW5jdGlvbilcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGNhbWVyYSA9IHRoaXMuY2FtZXJhO1xyXG4gICAgICAgIHZhciByZWQgPSB0aGlzLnJlZCAvIDI1NTtcclxuICAgICAgICB2YXIgYmx1ZSA9IHRoaXMuYmx1ZSAvIDI1NTtcclxuICAgICAgICB2YXIgZ3JlZW4gPSB0aGlzLmdyZWVuIC8gMjU1O1xyXG5cclxuICAgICAgICBwaXBlbGluZS5kcmF3RmlsbFJlY3QoXHJcbiAgICAgICAgICAgIGNhbWVyYS5fY3gsIGNhbWVyYS5fY3ksIGNhbWVyYS5fY3csIGNhbWVyYS5fY2gsXHJcbiAgICAgICAgICAgIGdldFRpbnRGdW5jdGlvbihyZWQsIGdyZWVuLCBibHVlLCAxKSxcclxuICAgICAgICAgICAgdGhpcy5hbHBoYVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCBpbnRlcm5hbGx5IHdoZW4gdGhlIGVmZmVjdCBjb21wbGV0ZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmxhc2gjZWZmZWN0Q29tcGxldGVcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNGTEFTSF9DT01QTEVURVxyXG4gICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgKi9cclxuICAgIGVmZmVjdENvbXBsZXRlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9vblVwZGF0ZVNjb3BlID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5jYW1lcmEuZW1pdChFdmVudHMuRkxBU0hfQ09NUExFVEUsIHRoaXMuY2FtZXJhLCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNldHMgdGhpcyBjYW1lcmEgZWZmZWN0LlxyXG4gICAgICogSWYgaXQgd2FzIHByZXZpb3VzbHkgcnVubmluZywgaXQgc3RvcHMgaW5zdGFudGx5IHdpdGhvdXQgY2FsbGluZyBpdHMgb25Db21wbGV0ZSBjYWxsYmFjayBvciBlbWl0dGluZyBhbiBldmVudC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GbGFzaCNyZXNldFxyXG4gICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgKi9cclxuICAgIHJlc2V0OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuaXNSdW5uaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9vblVwZGF0ZVNjb3BlID0gbnVsbDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXN0cm95cyB0aGlzIGVmZmVjdCwgcmVsZWFzaW5nIGl0IGZyb20gdGhlIENhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GbGFzaCNkZXN0cm95XHJcbiAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAqL1xyXG4gICAgZGVzdHJveTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuY2FtZXJhID0gbnVsbDtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBGbGFzaDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhbXAgPSByZXF1aXJlKCcuLi8uLi8uLi9tYXRoL0NsYW1wJyk7XHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBFYXNlTWFwID0gcmVxdWlyZSgnLi4vLi4vLi4vbWF0aC9lYXNpbmcvRWFzZU1hcCcpO1xyXG52YXIgRXZlbnRzID0gcmVxdWlyZSgnLi4vZXZlbnRzJyk7XHJcbnZhciBWZWN0b3IyID0gcmVxdWlyZSgnLi4vLi4vLi4vbWF0aC9WZWN0b3IyJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIENhbWVyYSBQYW4gZWZmZWN0LlxyXG4gKlxyXG4gKiBUaGlzIGVmZmVjdCB3aWxsIHNjcm9sbCB0aGUgQ2FtZXJhIHNvIHRoYXQgdGhlIGNlbnRlciBvZiBpdHMgdmlld3BvcnQgZmluaXNoZXMgYXQgdGhlIGdpdmVuIGRlc3RpbmF0aW9uLFxyXG4gKiBvdmVyIHRoZSBkdXJhdGlvbiBhbmQgd2l0aCB0aGUgZWFzZSBzcGVjaWZpZWQuXHJcbiAqXHJcbiAqIE9ubHkgdGhlIGNhbWVyYSBzY3JvbGwgaXMgbW92ZWQuIE5vbmUgb2YgdGhlIG9iamVjdHMgaXQgaXMgZGlzcGxheWluZyBhcmUgaW1wYWN0ZWQsIGkuZS4gdGhlaXIgcG9zaXRpb25zIGRvXHJcbiAqIG5vdCBjaGFuZ2UuXHJcbiAqXHJcbiAqIFRoZSBlZmZlY3Qgd2lsbCBkaXNwYXRjaCBzZXZlcmFsIGV2ZW50cyBvbiB0aGUgQ2FtZXJhIGl0c2VsZiBhbmQgeW91IGNhbiBhbHNvIHNwZWNpZnkgYW4gYG9uVXBkYXRlYCBjYWxsYmFjayxcclxuICogd2hpY2ggaXMgaW52b2tlZCBlYWNoIGZyYW1lIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGVmZmVjdCBpZiByZXF1aXJlZC5cclxuICpcclxuICogQGNsYXNzIFBhblxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4xMS4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBjYW1lcmEgdGhpcyBlZmZlY3QgaXMgYWN0aW5nIHVwb24uXHJcbiAqL1xyXG52YXIgUGFuID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIFBhbiAoY2FtZXJhKVxyXG4gICAge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBDYW1lcmEgdGhpcyBlZmZlY3QgYmVsb25ncyB0by5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5QYW4jY2FtZXJhXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNhbWVyYSA9IGNhbWVyYTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSXMgdGhpcyBlZmZlY3QgYWN0aXZlbHkgcnVubmluZz9cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5QYW4jaXNSdW5uaW5nXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QsIGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5QYW4jZHVyYXRpb25cclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgc3RhcnRpbmcgc2Nyb2xsIGNvb3JkaW5hdGVzIHRvIHBhbiB0aGUgY2FtZXJhIGZyb20uXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlBhbiNzb3VyY2VcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguVmVjdG9yMn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBuZXcgVmVjdG9yMigpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgY29uc3RhbnRseSB1cGRhdGVkIHZhbHVlIGJhc2VkIG9uIHpvb20uXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlBhbiNjdXJyZW50XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY3VycmVudCA9IG5ldyBWZWN0b3IyKCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBkZXN0aW5hdGlvbiBzY3JvbGwgY29vcmRpbmF0ZXMgdG8gcGFuIHRoZSBjYW1lcmEgdG8uXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlBhbiNkZXN0aW5hdGlvblxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuTWF0aC5WZWN0b3IyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uID0gbmV3IFZlY3RvcjIoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGVhc2UgZnVuY3Rpb24gdG8gdXNlIGR1cmluZyB0aGUgcGFuLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5QYW4jZWFzZVxyXG4gICAgICAgICAqIEB0eXBlIHtmdW5jdGlvbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5lYXNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGlzIGVmZmVjdCBpcyBydW5uaW5nIHRoaXMgaG9sZHMgdGhlIGN1cnJlbnQgcGVyY2VudGFnZSBvZiB0aGUgcHJvZ3Jlc3MsIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlBhbiNwcm9ncmVzc1xyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBFZmZlY3QgZWxhcHNlZCB0aW1lci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5QYW4jX2VsYXBzZWRcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2VsYXBzZWQgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGludm9rZWQgZXZlcnkgZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlBhbiNfb25VcGRhdGVcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5UeXBlcy5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhUGFuQ2FsbGJhY2t9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBPbiBDb21wbGV0ZSBjYWxsYmFjayBzY29wZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5QYW4jX29uVXBkYXRlU2NvcGVcclxuICAgICAgICAgKiBAdHlwZSB7YW55fVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlU2NvcGU7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBlZmZlY3Qgd2lsbCBzY3JvbGwgdGhlIENhbWVyYSBzbyB0aGF0IHRoZSBjZW50ZXIgb2YgaXRzIHZpZXdwb3J0IGZpbmlzaGVzIGF0IHRoZSBnaXZlbiBkZXN0aW5hdGlvbixcclxuICAgICAqIG92ZXIgdGhlIGR1cmF0aW9uIGFuZCB3aXRoIHRoZSBlYXNlIHNwZWNpZmllZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5QYW4jc3RhcnRcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNQQU5fU1RBUlRcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNQQU5fQ09NUExFVEVcclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBkZXN0aW5hdGlvbiB4IGNvb3JkaW5hdGUgdG8gc2Nyb2xsIHRoZSBjZW50ZXIgb2YgdGhlIENhbWVyYSB2aWV3cG9ydCB0by5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIGRlc3RpbmF0aW9uIHkgY29vcmRpbmF0ZSB0byBzY3JvbGwgdGhlIGNlbnRlciBvZiB0aGUgQ2FtZXJhIHZpZXdwb3J0IHRvLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZHVyYXRpb249MTAwMF0gLSBUaGUgZHVyYXRpb24gb2YgdGhlIGVmZmVjdCBpbiBtaWxsaXNlY29uZHMuXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8ZnVuY3Rpb24pfSBbZWFzZT0nTGluZWFyJ10gLSBUaGUgZWFzZSB0byB1c2UgZm9yIHRoZSBwYW4uIENhbiBiZSBhbnkgb2YgdGhlIFBoYXNlciBFYXNpbmcgY29uc3RhbnRzIG9yIGEgY3VzdG9tIGZ1bmN0aW9uLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZm9yY2U9ZmFsc2VdIC0gRm9yY2UgdGhlIHBhbiBlZmZlY3QgdG8gc3RhcnQgaW1tZWRpYXRlbHksIGV2ZW4gaWYgYWxyZWFkeSBydW5uaW5nLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYVBhbkNhbGxiYWNrfSBbY2FsbGJhY2tdIC0gVGhpcyBjYWxsYmFjayB3aWxsIGJlIGludm9rZWQgZXZlcnkgZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gICAgICogSXQgaXMgc2VudCBmb3VyIGFyZ3VtZW50czogQSByZWZlcmVuY2UgdG8gdGhlIGNhbWVyYSwgYSBwcm9ncmVzcyBhbW91bnQgYmV0d2VlbiAwIGFuZCAxIGluZGljYXRpbmcgaG93IGNvbXBsZXRlIHRoZSBlZmZlY3QgaXMsXHJcbiAgICAgKiB0aGUgY3VycmVudCBjYW1lcmEgc2Nyb2xsIHggY29vcmRpbmF0ZSBhbmQgdGhlIGN1cnJlbnQgY2FtZXJhIHNjcm9sbCB5IGNvb3JkaW5hdGUuXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gW2NvbnRleHRdIC0gVGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGNhbGxiYWNrIGlzIGludm9rZWQuIERlZmF1bHRzIHRvIHRoZSBTY2VuZSB0byB3aGljaCB0aGUgQ2FtZXJhIGJlbG9uZ3MuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IFRoZSBDYW1lcmEgb24gd2hpY2ggdGhlIGVmZmVjdCB3YXMgc3RhcnRlZC5cclxuICAgICAqL1xyXG4gICAgc3RhcnQ6IGZ1bmN0aW9uICh4LCB5LCBkdXJhdGlvbiwgZWFzZSwgZm9yY2UsIGNhbGxiYWNrLCBjb250ZXh0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChkdXJhdGlvbiA9PT0gdW5kZWZpbmVkKSB7IGR1cmF0aW9uID0gMTAwMDsgfVxyXG4gICAgICAgIGlmIChlYXNlID09PSB1bmRlZmluZWQpIHsgZWFzZSA9IEVhc2VNYXAuTGluZWFyOyB9XHJcbiAgICAgICAgaWYgKGZvcmNlID09PSB1bmRlZmluZWQpIHsgZm9yY2UgPSBmYWxzZTsgfVxyXG4gICAgICAgIGlmIChjYWxsYmFjayA9PT0gdW5kZWZpbmVkKSB7IGNhbGxiYWNrID0gbnVsbDsgfVxyXG4gICAgICAgIGlmIChjb250ZXh0ID09PSB1bmRlZmluZWQpIHsgY29udGV4dCA9IHRoaXMuY2FtZXJhLnNjZW5lOyB9XHJcblxyXG4gICAgICAgIHZhciBjYW0gPSB0aGlzLmNhbWVyYTtcclxuXHJcbiAgICAgICAgaWYgKCFmb3JjZSAmJiB0aGlzLmlzUnVubmluZylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBjYW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmlzUnVubmluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IGR1cmF0aW9uO1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG5cclxuICAgICAgICAvLyAgU3RhcnRpbmcgZnJvbVxyXG4gICAgICAgIHRoaXMuc291cmNlLnNldChjYW0uc2Nyb2xsWCwgY2FtLnNjcm9sbFkpO1xyXG5cclxuICAgICAgICAvLyAgRGVzdGluYXRpb25cclxuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uLnNldCh4LCB5KTtcclxuXHJcbiAgICAgICAgLy8gIFpvb20gZmFjdG9yZWQgdmVyc2lvblxyXG4gICAgICAgIGNhbS5nZXRTY3JvbGwoeCwgeSwgdGhpcy5jdXJyZW50KTtcclxuXHJcbiAgICAgICAgLy8gIFVzaW5nIHRoaXMgZWFzZVxyXG4gICAgICAgIGlmICh0eXBlb2YgZWFzZSA9PT0gJ3N0cmluZycgJiYgRWFzZU1hcC5oYXNPd25Qcm9wZXJ0eShlYXNlKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZWFzZSA9IEVhc2VNYXBbZWFzZV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBlYXNlID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5lYXNlID0gZWFzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2VsYXBzZWQgPSAwO1xyXG5cclxuICAgICAgICB0aGlzLl9vblVwZGF0ZSA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlU2NvcGUgPSBjb250ZXh0O1xyXG5cclxuICAgICAgICB0aGlzLmNhbWVyYS5lbWl0KEV2ZW50cy5QQU5fU1RBUlQsIHRoaXMuY2FtZXJhLCB0aGlzLCBkdXJhdGlvbiwgeCwgeSk7XHJcblxyXG4gICAgICAgIHJldHVybiBjYW07XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1haW4gdXBkYXRlIGxvb3AgZm9yIHRoaXMgZWZmZWN0LiBDYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlBhbiN1cGRhdGVcclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHRpbWUgLSBUaGUgY3VycmVudCB0aW1lc3RhbXAgYXMgZ2VuZXJhdGVkIGJ5IHRoZSBSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSBvciBTZXRUaW1lb3V0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlbHRhIC0gVGhlIGRlbHRhIHRpbWUsIGluIG1zLCBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IGZyYW1lLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGU6IGZ1bmN0aW9uICh0aW1lLCBkZWx0YSlcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fZWxhcHNlZCArPSBkZWx0YTtcclxuXHJcbiAgICAgICAgdmFyIHByb2dyZXNzID0gQ2xhbXAodGhpcy5fZWxhcHNlZCAvIHRoaXMuZHVyYXRpb24sIDAsIDEpO1xyXG5cclxuICAgICAgICB0aGlzLnByb2dyZXNzID0gcHJvZ3Jlc3M7XHJcblxyXG4gICAgICAgIHZhciBjYW0gPSB0aGlzLmNhbWVyYTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2VsYXBzZWQgPCB0aGlzLmR1cmF0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHYgPSB0aGlzLmVhc2UocHJvZ3Jlc3MpO1xyXG5cclxuICAgICAgICAgICAgY2FtLmdldFNjcm9sbCh0aGlzLmRlc3RpbmF0aW9uLngsIHRoaXMuZGVzdGluYXRpb24ueSwgdGhpcy5jdXJyZW50KTtcclxuXHJcbiAgICAgICAgICAgIHZhciB4ID0gdGhpcy5zb3VyY2UueCArICgodGhpcy5jdXJyZW50LnggLSB0aGlzLnNvdXJjZS54KSAqIHYpO1xyXG4gICAgICAgICAgICB2YXIgeSA9IHRoaXMuc291cmNlLnkgKyAoKHRoaXMuY3VycmVudC55IC0gdGhpcy5zb3VyY2UueSkgKiB2KTtcclxuXHJcbiAgICAgICAgICAgIGNhbS5zZXRTY3JvbGwoeCwgeSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fb25VcGRhdGUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX29uVXBkYXRlLmNhbGwodGhpcy5fb25VcGRhdGVTY29wZSwgY2FtLCBwcm9ncmVzcywgeCwgeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY2FtLmNlbnRlck9uKHRoaXMuZGVzdGluYXRpb24ueCwgdGhpcy5kZXN0aW5hdGlvbi55KTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9vblVwZGF0ZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fb25VcGRhdGUuY2FsbCh0aGlzLl9vblVwZGF0ZVNjb3BlLCBjYW0sIHByb2dyZXNzLCBjYW0uc2Nyb2xsWCwgY2FtLnNjcm9sbFkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3RDb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgaW50ZXJuYWxseSB3aGVuIHRoZSBlZmZlY3QgY29tcGxldGVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlBhbiNlZmZlY3RDb21wbGV0ZVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1BBTl9DT01QTEVURVxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICovXHJcbiAgICBlZmZlY3RDb21wbGV0ZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vblVwZGF0ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGVTY29wZSA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuaXNSdW5uaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuY2FtZXJhLmVtaXQoRXZlbnRzLlBBTl9DT01QTEVURSwgdGhpcy5jYW1lcmEsIHRoaXMpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc2V0cyB0aGlzIGNhbWVyYSBlZmZlY3QuXHJcbiAgICAgKiBJZiBpdCB3YXMgcHJldmlvdXNseSBydW5uaW5nLCBpdCBzdG9wcyBpbnN0YW50bHkgd2l0aG91dCBjYWxsaW5nIGl0cyBvbkNvbXBsZXRlIGNhbGxiYWNrIG9yIGVtaXR0aW5nIGFuIGV2ZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlBhbiNyZXNldFxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICovXHJcbiAgICByZXNldDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmlzUnVubmluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLl9vblVwZGF0ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGVTY29wZSA9IG51bGw7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVzdHJveXMgdGhpcyBlZmZlY3QsIHJlbGVhc2luZyBpdCBmcm9tIHRoZSBDYW1lcmEuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuUGFuI2Rlc3Ryb3lcclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqL1xyXG4gICAgZGVzdHJveTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuY2FtZXJhID0gbnVsbDtcclxuICAgICAgICB0aGlzLnNvdXJjZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbiA9IG51bGw7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUGFuO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBKYXNvbiBOaWNob2xscyA8bmljaG9sbHMuamFzb25AZ21haWwuY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMTggUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL3Bob3RvbnN0b3JtL3BoYXNlci9ibG9iL21hc3Rlci9saWNlbnNlLnR4dHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhbXAgPSByZXF1aXJlKCcuLi8uLi8uLi9tYXRoL0NsYW1wJyk7XHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBFdmVudHMgPSByZXF1aXJlKCcuLi9ldmVudHMnKTtcclxudmFyIEVhc2VNYXAgPSByZXF1aXJlKCcuLi8uLi8uLi9tYXRoL2Vhc2luZy9FYXNlTWFwJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIENhbWVyYSBSb3RhdGUgZWZmZWN0LlxyXG4gKlxyXG4gKiBUaGlzIGVmZmVjdCB3aWxsIHJvdGF0ZSB0aGUgQ2FtZXJhIHNvIHRoYXQgdGhlIGl0cyB2aWV3cG9ydCBmaW5pc2hlcyBhdCB0aGUgZ2l2ZW4gYW5nbGUgaW4gcmFkaWFucyxcclxuICogb3ZlciB0aGUgZHVyYXRpb24gYW5kIHdpdGggdGhlIGVhc2Ugc3BlY2lmaWVkLlxyXG4gKiBcclxuICogQ2FtZXJhIHJvdGF0aW9uIGFsd2F5cyB0YWtlcyBwbGFjZSBiYXNlZCBvbiB0aGUgQ2FtZXJhIHZpZXdwb3J0LiBCeSBkZWZhdWx0LCByb3RhdGlvbiBoYXBwZW5zXHJcbiAqIGluIHRoZSBjZW50ZXIgb2YgdGhlIHZpZXdwb3J0LiBZb3UgY2FuIGFkanVzdCB0aGlzIHdpdGggdGhlIGBvcmlnaW5YYCBhbmQgYG9yaWdpbllgIHByb3BlcnRpZXMuXHJcbiAqXHJcbiAqIFJvdGF0aW9uIGluZmx1ZW5jZXMgdGhlIHJlbmRlcmluZyBvZiBfYWxsXyBHYW1lIE9iamVjdHMgdmlzaWJsZSBieSB0aGlzIENhbWVyYS4gSG93ZXZlciwgaXQgZG9lcyBub3RcclxuICogcm90YXRlIHRoZSBDYW1lcmEgdmlld3BvcnQgaXRzZWxmLCB3aGljaCBhbHdheXMgcmVtYWlucyBhbiBheGlzLWFsaWduZWQgcmVjdGFuZ2xlLlxyXG4gKlxyXG4gKiBPbmx5IHRoZSBjYW1lcmEgaXMgcm90YXRlcy4gTm9uZSBvZiB0aGUgb2JqZWN0cyBpdCBpcyBkaXNwbGF5aW5nIGFyZSBpbXBhY3RlZCwgaS5lLiB0aGVpciBwb3NpdGlvbnMgZG9cclxuICogbm90IGNoYW5nZS5cclxuICpcclxuICogVGhlIGVmZmVjdCB3aWxsIGRpc3BhdGNoIHNldmVyYWwgZXZlbnRzIG9uIHRoZSBDYW1lcmEgaXRzZWxmIGFuZCB5b3UgY2FuIGFsc28gc3BlY2lmeSBhbiBgb25VcGRhdGVgIGNhbGxiYWNrLFxyXG4gKiB3aGljaCBpcyBpbnZva2VkIGVhY2ggZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0IGlmIHJlcXVpcmVkLlxyXG4gKlxyXG4gKiBAY2xhc3MgUm90YXRlVG9cclxuICogQG1lbWJlcm9mIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMjMuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIHRoaXMgZWZmZWN0IGlzIGFjdGluZyB1cG9uLlxyXG4gKi9cclxudmFyIFJvdGF0ZVRvID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIFJvdGF0ZVRvIChjYW1lcmEpXHJcbiAgICB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIENhbWVyYSB0aGlzIGVmZmVjdCBiZWxvbmdzIHRvLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlJvdGF0ZVRvI2NhbWVyYVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX1cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jYW1lcmEgPSBjYW1lcmE7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElzIHRoaXMgZWZmZWN0IGFjdGl2ZWx5IHJ1bm5pbmc/XHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuUm90YXRlVG8jaXNSdW5uaW5nXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QsIGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5Sb3RhdGVUbyNkdXJhdGlvblxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBzdGFydGluZyBhbmdsZSB0byByb3RhdGUgdGhlIGNhbWVyYSBmcm9tLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5Sb3RhdGVUbyNzb3VyY2VcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNvdXJjZSA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjb25zdGFudGx5IHVwZGF0ZWQgdmFsdWUgYmFzZWQgb24gdGhlIGZvcmNlLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5Sb3RhdGVUbyNjdXJyZW50XHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGRlc3RpbmF0aW9uIGFuZ2xlIGluIHJhZGlhbnMgdG8gcm90YXRlIHRoZSBjYW1lcmEgdG8uXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlJvdGF0ZVRvI2Rlc3RpbmF0aW9uXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbiA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBlYXNlIGZ1bmN0aW9uIHRvIHVzZSBkdXJpbmcgdGhlIFJvdGF0ZS5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuUm90YXRlVG8jZWFzZVxyXG4gICAgICAgICAqIEB0eXBlIHtmdW5jdGlvbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5lYXNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGlzIGVmZmVjdCBpcyBydW5uaW5nIHRoaXMgaG9sZHMgdGhlIGN1cnJlbnQgcGVyY2VudGFnZSBvZiB0aGUgcHJvZ3Jlc3MsIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlJvdGF0ZVRvI3Byb2dyZXNzXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEVmZmVjdCBlbGFwc2VkIHRpbWVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlJvdGF0ZVRvI19lbGFwc2VkXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9lbGFwc2VkID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNhbGxiYWNrIENhbWVyYVJvdGF0ZUNhbGxiYWNrXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIG9uIHdoaWNoIHRoZSBlZmZlY3QgaXMgcnVubmluZy5cclxuICAgICAgICAgKiBAcGFyYW0ge251bWJlcn0gcHJvZ3Jlc3MgLSBUaGUgcHJvZ3Jlc3Mgb2YgdGhlIGVmZmVjdC4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgICAgICogQHBhcmFtIHtudW1iZXJ9IGFuZ2xlIC0gVGhlIENhbWVyYSdzIG5ldyBhbmdsZSBpbiByYWRpYW5zLlxyXG4gICAgICAgICAqL1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGludm9rZWQgZXZlcnkgZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlJvdGF0ZVRvI19vblVwZGF0ZVxyXG4gICAgICAgICAqIEB0eXBlIHs/Q2FtZXJhUm90YXRlQ2FsbGJhY2t9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICAgICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBPbiBDb21wbGV0ZSBjYWxsYmFjayBzY29wZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5Sb3RhdGVUbyNfb25VcGRhdGVTY29wZVxyXG4gICAgICAgICAqIEB0eXBlIHthbnl9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGVTY29wZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGRpcmVjdGlvbiBvZiB0aGUgcm90YXRpb24uXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlJvdGF0ZVRvI2Nsb2Nrd2lzZVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNsb2Nrd2lzZSA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBzaG9ydGVzdCBkaXJlY3Rpb24gdG8gdGhlIHRhcmdldCByb3RhdGlvbi5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuUm90YXRlVG8jc2hvcnRlc3RQYXRoXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2hvcnRlc3RQYXRoID0gZmFsc2U7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBlZmZlY3Qgd2lsbCBzY3JvbGwgdGhlIENhbWVyYSBzbyB0aGF0IHRoZSBjZW50ZXIgb2YgaXRzIHZpZXdwb3J0IGZpbmlzaGVzIGF0IHRoZSBnaXZlbiBhbmdsZSxcclxuICAgICAqIG92ZXIgdGhlIGR1cmF0aW9uIGFuZCB3aXRoIHRoZSBlYXNlIHNwZWNpZmllZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5Sb3RhdGVUbyNzdGFydFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1JPVEFURV9TVEFSVFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1JPVEFURV9DT01QTEVURVxyXG4gICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByYWRpYW5zIC0gVGhlIGRlc3RpbmF0aW9uIGFuZ2xlIGluIHJhZGlhbnMgdG8gcm90YXRlIHRoZSBDYW1lcmEgdmlld3BvcnQgdG8uIElmIHRoZSBhbmdsZSBpcyBwb3NpdGl2ZSB0aGVuIHRoZSByb3RhdGlvbiBpcyBjbG9ja3dpc2UgZWxzZSBhbnRpY2xvY2t3aXNlXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtzaG9ydGVzdFBhdGg9ZmFsc2VdIC0gSWYgc2hvcnRlc3QgcGF0aCBpcyBzZXQgdG8gdHJ1ZSB0aGUgY2FtZXJhIHdpbGwgcm90YXRlIGluIHRoZSBxdWlja2VzdCBkaXJlY3Rpb24gY2xvY2t3aXNlIG9yIGFudGktY2xvY2t3aXNlLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZHVyYXRpb249MTAwMF0gLSBUaGUgZHVyYXRpb24gb2YgdGhlIGVmZmVjdCBpbiBtaWxsaXNlY29uZHMuXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8ZnVuY3Rpb24pfSBbZWFzZT0nTGluZWFyJ10gLSBUaGUgZWFzZSB0byB1c2UgZm9yIHRoZSBSb3RhdGUuIENhbiBiZSBhbnkgb2YgdGhlIFBoYXNlciBFYXNpbmcgY29uc3RhbnRzIG9yIGEgY3VzdG9tIGZ1bmN0aW9uLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZm9yY2U9ZmFsc2VdIC0gRm9yY2UgdGhlIHJvdGF0aW9uIGVmZmVjdCB0byBzdGFydCBpbW1lZGlhdGVseSwgZXZlbiBpZiBhbHJlYWR5IHJ1bm5pbmcuXHJcbiAgICAgKiBAcGFyYW0ge0NhbWVyYVJvdGF0ZUNhbGxiYWNrfSBbY2FsbGJhY2tdIC0gVGhpcyBjYWxsYmFjayB3aWxsIGJlIGludm9rZWQgZXZlcnkgZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gICAgICogSXQgaXMgc2VudCBmb3VyIGFyZ3VtZW50czogQSByZWZlcmVuY2UgdG8gdGhlIGNhbWVyYSwgYSBwcm9ncmVzcyBhbW91bnQgYmV0d2VlbiAwIGFuZCAxIGluZGljYXRpbmcgaG93IGNvbXBsZXRlIHRoZSBlZmZlY3QgaXMsXHJcbiAgICAgKiB0aGUgY3VycmVudCBjYW1lcmEgc2Nyb2xsIHggY29vcmRpbmF0ZSBhbmQgdGhlIGN1cnJlbnQgY2FtZXJhIHNjcm9sbCB5IGNvb3JkaW5hdGUuXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gW2NvbnRleHRdIC0gVGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGNhbGxiYWNrIGlzIGludm9rZWQuIERlZmF1bHRzIHRvIHRoZSBTY2VuZSB0byB3aGljaCB0aGUgQ2FtZXJhIGJlbG9uZ3MuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IFRoZSBDYW1lcmEgb24gd2hpY2ggdGhlIGVmZmVjdCB3YXMgc3RhcnRlZC5cclxuICAgICAqL1xyXG4gICAgc3RhcnQ6IGZ1bmN0aW9uIChyYWRpYW5zLCBzaG9ydGVzdFBhdGgsIGR1cmF0aW9uLCBlYXNlLCBmb3JjZSwgY2FsbGJhY2ssIGNvbnRleHQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGR1cmF0aW9uID09PSB1bmRlZmluZWQpIHsgZHVyYXRpb24gPSAxMDAwOyB9XHJcbiAgICAgICAgaWYgKGVhc2UgPT09IHVuZGVmaW5lZCkgeyBlYXNlID0gRWFzZU1hcC5MaW5lYXI7IH1cclxuICAgICAgICBpZiAoZm9yY2UgPT09IHVuZGVmaW5lZCkgeyBmb3JjZSA9IGZhbHNlOyB9XHJcbiAgICAgICAgaWYgKGNhbGxiYWNrID09PSB1bmRlZmluZWQpIHsgY2FsbGJhY2sgPSBudWxsOyB9XHJcbiAgICAgICAgaWYgKGNvbnRleHQgPT09IHVuZGVmaW5lZCkgeyBjb250ZXh0ID0gdGhpcy5jYW1lcmEuc2NlbmU7IH1cclxuICAgICAgICBpZiAoc2hvcnRlc3RQYXRoID09PSB1bmRlZmluZWQpIHsgc2hvcnRlc3RQYXRoID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgdGhpcy5zaG9ydGVzdFBhdGggPSBzaG9ydGVzdFBhdGg7XHJcblxyXG4gICAgICAgIHZhciB0bXBEZXN0aW5hdGlvbiA9IHJhZGlhbnM7XHJcblxyXG4gICAgICAgIGlmIChyYWRpYW5zIDwgMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRtcERlc3RpbmF0aW9uID0gLTEgKiByYWRpYW5zO1xyXG4gICAgICAgICAgICB0aGlzLmNsb2Nrd2lzZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmNsb2Nrd2lzZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgbWF4UmFkID0gKDM2MCAqIE1hdGguUEkpIC8gMTgwO1xyXG5cclxuICAgICAgICB0bXBEZXN0aW5hdGlvbiA9IHRtcERlc3RpbmF0aW9uIC0gKE1hdGguZmxvb3IodG1wRGVzdGluYXRpb24gLyBtYXhSYWQpICogbWF4UmFkKTtcclxuXHJcbiAgICAgICAgdmFyIGNhbSA9IHRoaXMuY2FtZXJhO1xyXG5cclxuICAgICAgICBpZiAoIWZvcmNlICYmIHRoaXMuaXNSdW5uaW5nKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNhbTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaXNSdW5uaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmR1cmF0aW9uID0gZHVyYXRpb247XHJcbiAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XHJcblxyXG4gICAgICAgIC8vICBTdGFydGluZyBmcm9tXHJcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBjYW0ucm90YXRpb247XHJcblxyXG4gICAgICAgIC8vICBEZXN0aW5hdGlvblxyXG4gICAgICAgIHRoaXMuZGVzdGluYXRpb24gPSB0bXBEZXN0aW5hdGlvbjtcclxuXHJcbiAgICAgICAgLy8gIFVzaW5nIHRoaXMgZWFzZVxyXG4gICAgICAgIGlmICh0eXBlb2YgZWFzZSA9PT0gJ3N0cmluZycgJiYgRWFzZU1hcC5oYXNPd25Qcm9wZXJ0eShlYXNlKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZWFzZSA9IEVhc2VNYXBbZWFzZV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBlYXNlID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5lYXNlID0gZWFzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2VsYXBzZWQgPSAwO1xyXG5cclxuICAgICAgICB0aGlzLl9vblVwZGF0ZSA9IGNhbGxiYWNrO1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlU2NvcGUgPSBjb250ZXh0O1xyXG5cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc2hvcnRlc3RQYXRoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gVGhlIHNob3J0ZXN0IHBhdGggaXMgdHJ1ZSBzbyBjYWxjdWxhdGUgdGhlIHF1aWNrZXN0IGRpcmVjdGlvblxyXG4gICAgICAgICAgICB2YXIgY3dEaXN0ID0gMDtcclxuICAgICAgICAgICAgdmFyIGFjd0Rpc3QgPSAwO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZGVzdGluYXRpb24gPiB0aGlzLnNvdXJjZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY3dEaXN0ID0gTWF0aC5hYnModGhpcy5kZXN0aW5hdGlvbiAtIHRoaXMuc291cmNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGN3RGlzdCA9IChNYXRoLmFicyh0aGlzLmRlc3RpbmF0aW9uICsgbWF4UmFkKSAtIHRoaXMuc291cmNlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuc291cmNlID4gdGhpcy5kZXN0aW5hdGlvbilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYWN3RGlzdCA9IE1hdGguYWJzKHRoaXMuc291cmNlIC0gdGhpcy5kZXN0aW5hdGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBhY3dEaXN0ID0gKE1hdGguYWJzKHRoaXMuc291cmNlICsgbWF4UmFkKSAtIHRoaXMuZGVzdGluYXRpb24pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoY3dEaXN0IDwgYWN3RGlzdClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jbG9ja3dpc2UgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGN3RGlzdCA+IGFjd0Rpc3QpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xvY2t3aXNlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2FtZXJhLmVtaXQoRXZlbnRzLlJPVEFURV9TVEFSVCwgdGhpcy5jYW1lcmEsIHRoaXMsIGR1cmF0aW9uLCB0bXBEZXN0aW5hdGlvbik7XHJcblxyXG4gICAgICAgIHJldHVybiBjYW07XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1haW4gdXBkYXRlIGxvb3AgZm9yIHRoaXMgZWZmZWN0LiBDYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlJvdGF0ZVRvI3VwZGF0ZVxyXG4gICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gdGltZSAtIFRoZSBjdXJyZW50IHRpbWVzdGFtcCBhcyBnZW5lcmF0ZWQgYnkgdGhlIFJlcXVlc3QgQW5pbWF0aW9uIEZyYW1lIG9yIFNldFRpbWVvdXQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGVsdGEgLSBUaGUgZGVsdGEgdGltZSwgaW4gbXMsIGVsYXBzZWQgc2luY2UgdGhlIGxhc3QgZnJhbWUuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZTogZnVuY3Rpb24gKHRpbWUsIGRlbHRhKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1J1bm5pbmcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9lbGFwc2VkICs9IGRlbHRhO1xyXG5cclxuICAgICAgICB2YXIgcHJvZ3Jlc3MgPSBDbGFtcCh0aGlzLl9lbGFwc2VkIC8gdGhpcy5kdXJhdGlvbiwgMCwgMSk7XHJcblxyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBwcm9ncmVzcztcclxuXHJcbiAgICAgICAgdmFyIGNhbSA9IHRoaXMuY2FtZXJhO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fZWxhcHNlZCA8IHRoaXMuZHVyYXRpb24pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgdiA9IHRoaXMuZWFzZShwcm9ncmVzcyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnQgPSBjYW0ucm90YXRpb247XHJcbiAgICAgICAgICAgIHZhciBkaXN0YW5jZSA9IDA7XHJcbiAgICAgICAgICAgIHZhciBtYXhSYWQgPSAoMzYwICogTWF0aC5QSSkgLyAxODA7XHJcbiAgICAgICAgICAgIHZhciB0YXJnZXQgPSB0aGlzLmRlc3RpbmF0aW9uO1xyXG4gICAgICAgICAgICB2YXIgY3VycmVudCA9IHRoaXMuY3VycmVudDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNsb2Nrd2lzZSA9PT0gZmFsc2UpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRhcmdldCA9IHRoaXMuY3VycmVudDtcclxuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB0aGlzLmRlc3RpbmF0aW9uO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGFyZ2V0ID49IGN1cnJlbnQpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGRpc3RhbmNlID0gTWF0aC5hYnModGFyZ2V0IC0gY3VycmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBkaXN0YW5jZSA9IChNYXRoLmFicyh0YXJnZXQgKyBtYXhSYWQpIC0gY3VycmVudCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHZhciByID0gMDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNsb2Nrd2lzZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgciA9IChjYW0ucm90YXRpb24gKyAoZGlzdGFuY2UgKiB2KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByID0gKGNhbS5yb3RhdGlvbiAtIChkaXN0YW5jZSAqIHYpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY2FtLnJvdGF0aW9uID0gcjtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9vblVwZGF0ZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fb25VcGRhdGUuY2FsbCh0aGlzLl9vblVwZGF0ZVNjb3BlLCBjYW0sIHByb2dyZXNzLCByKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjYW0ucm90YXRpb24gPSB0aGlzLmRlc3RpbmF0aW9uO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX29uVXBkYXRlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vblVwZGF0ZS5jYWxsKHRoaXMuX29uVXBkYXRlU2NvcGUsIGNhbSwgcHJvZ3Jlc3MsIHRoaXMuZGVzdGluYXRpb24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3RDb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgaW50ZXJuYWxseSB3aGVuIHRoZSBlZmZlY3QgY29tcGxldGVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlJvdGF0ZVRvI2VmZmVjdENvbXBsZXRlXHJcbiAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgKi9cclxuICAgIGVmZmVjdENvbXBsZXRlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9vblVwZGF0ZVNjb3BlID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5jYW1lcmEuZW1pdChFdmVudHMuUk9UQVRFX0NPTVBMRVRFLCB0aGlzLmNhbWVyYSwgdGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzZXRzIHRoaXMgY2FtZXJhIGVmZmVjdC5cclxuICAgICAqIElmIGl0IHdhcyBwcmV2aW91c2x5IHJ1bm5pbmcsIGl0IHN0b3BzIGluc3RhbnRseSB3aXRob3V0IGNhbGxpbmcgaXRzIG9uQ29tcGxldGUgY2FsbGJhY2sgb3IgZW1pdHRpbmcgYW4gZXZlbnQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuUm90YXRlVG8jcmVzZXRcclxuICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAqL1xyXG4gICAgcmVzZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlU2NvcGUgPSBudWxsO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc3Ryb3lzIHRoaXMgZWZmZWN0LCByZWxlYXNpbmcgaXQgZnJvbSB0aGUgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlJvdGF0ZVRvI2Rlc3Ryb3lcclxuICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAqL1xyXG4gICAgZGVzdHJveTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuY2FtZXJhID0gbnVsbDtcclxuICAgICAgICB0aGlzLnNvdXJjZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbiA9IG51bGw7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUm90YXRlVG87XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYW1wID0gcmVxdWlyZSgnLi4vLi4vLi4vbWF0aC9DbGFtcCcpO1xyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgRXZlbnRzID0gcmVxdWlyZSgnLi4vZXZlbnRzJyk7XHJcbnZhciBWZWN0b3IyID0gcmVxdWlyZSgnLi4vLi4vLi4vbWF0aC9WZWN0b3IyJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIENhbWVyYSBTaGFrZSBlZmZlY3QuXHJcbiAqXHJcbiAqIFRoaXMgZWZmZWN0IHdpbGwgc2hha2UgdGhlIGNhbWVyYSB2aWV3cG9ydCBieSBhIHJhbmRvbSBhbW91bnQsIGJvdW5kZWQgYnkgdGhlIHNwZWNpZmllZCBpbnRlbnNpdHksIGVhY2ggZnJhbWUuXHJcbiAqXHJcbiAqIE9ubHkgdGhlIGNhbWVyYSB2aWV3cG9ydCBpcyBtb3ZlZC4gTm9uZSBvZiB0aGUgb2JqZWN0cyBpdCBpcyBkaXNwbGF5aW5nIGFyZSBpbXBhY3RlZCwgaS5lLiB0aGVpciBwb3NpdGlvbnMgZG9cclxuICogbm90IGNoYW5nZS5cclxuICpcclxuICogVGhlIGVmZmVjdCB3aWxsIGRpc3BhdGNoIHNldmVyYWwgZXZlbnRzIG9uIHRoZSBDYW1lcmEgaXRzZWxmIGFuZCB5b3UgY2FuIGFsc28gc3BlY2lmeSBhbiBgb25VcGRhdGVgIGNhbGxiYWNrLFxyXG4gKiB3aGljaCBpcyBpbnZva2VkIGVhY2ggZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0IGlmIHJlcXVpcmVkLlxyXG4gKlxyXG4gKiBAY2xhc3MgU2hha2VcclxuICogQG1lbWJlcm9mIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuNS4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBjYW1lcmEgdGhpcyBlZmZlY3QgaXMgYWN0aW5nIHVwb24uXHJcbiAqL1xyXG52YXIgU2hha2UgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gU2hha2UgKGNhbWVyYSlcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgQ2FtZXJhIHRoaXMgZWZmZWN0IGJlbG9uZ3MgdG8uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuU2hha2UjY2FtZXJhXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY2FtZXJhID0gY2FtZXJhO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJcyB0aGlzIGVmZmVjdCBhY3RpdmVseSBydW5uaW5nP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlNoYWtlI2lzUnVubmluZ1xyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QsIGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5TaGFrZSNkdXJhdGlvblxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmR1cmF0aW9uID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGludGVuc2l0eSBvZiB0aGUgZWZmZWN0LiBVc2Ugc21hbGwgZmxvYXQgdmFsdWVzLiBUaGUgZGVmYXVsdCB3aGVuIHRoZSBlZmZlY3Qgc3RhcnRzIGlzIDAuMDUuXHJcbiAgICAgICAgICogVGhpcyBpcyBhIFZlY3RvcjIgb2JqZWN0LCBhbGxvd2luZyB5b3UgdG8gY29udHJvbCB0aGUgc2hha2UgaW50ZW5zaXR5IGluZGVwZW5kZW50bHkgYWNyb3NzIHggYW5kIHkuXHJcbiAgICAgICAgICogWW91IGNhbiBtb2RpZnkgdGhpcyB2YWx1ZSB3aGlsZSB0aGUgZWZmZWN0IGlzIGFjdGl2ZSB0byBjcmVhdGUgbW9yZSB2YXJpZWQgc2hha2UgZWZmZWN0cy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5TaGFrZSNpbnRlbnNpdHlcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguVmVjdG9yMn1cclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmludGVuc2l0eSA9IG5ldyBWZWN0b3IyKCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElmIHRoaXMgZWZmZWN0IGlzIHJ1bm5pbmcgdGhpcyBob2xkcyB0aGUgY3VycmVudCBwZXJjZW50YWdlIG9mIHRoZSBwcm9ncmVzcywgYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuU2hha2UjcHJvZ3Jlc3NcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBFZmZlY3QgZWxhcHNlZCB0aW1lci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5TaGFrZSNfZWxhcHNlZFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9lbGFwc2VkID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSG93IG11Y2ggdG8gb2Zmc2V0IHRoZSBjYW1lcmEgYnkgaG9yaXpvbnRhbGx5LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlNoYWtlI19vZmZzZXRYXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9vZmZzZXRYID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSG93IG11Y2ggdG8gb2Zmc2V0IHRoZSBjYW1lcmEgYnkgdmVydGljYWxseS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5TaGFrZSNfb2Zmc2V0WVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0WSA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoaXMgY2FsbGJhY2sgaXMgaW52b2tlZCBldmVyeSBmcmFtZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuU2hha2UjX29uVXBkYXRlXHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuVHlwZXMuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYVNoYWtlQ2FsbGJhY2t9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICAgICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIE9uIENvbXBsZXRlIGNhbGxiYWNrIHNjb3BlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlNoYWtlI19vblVwZGF0ZVNjb3BlXHJcbiAgICAgICAgICogQHR5cGUge2FueX1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlU2NvcGU7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hha2VzIHRoZSBDYW1lcmEgYnkgdGhlIGdpdmVuIGludGVuc2l0eSBvdmVyIHRoZSBkdXJhdGlvbiBzcGVjaWZpZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuU2hha2Ujc3RhcnRcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNTSEFLRV9TVEFSVFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1NIQUtFX0NPTVBMRVRFXHJcbiAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtkdXJhdGlvbj0xMDBdIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QgaW4gbWlsbGlzZWNvbmRzLlxyXG4gICAgICogQHBhcmFtIHsobnVtYmVyfFBoYXNlci5NYXRoLlZlY3RvcjIpfSBbaW50ZW5zaXR5PTAuMDVdIC0gVGhlIGludGVuc2l0eSBvZiB0aGUgc2hha2UuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmb3JjZT1mYWxzZV0gLSBGb3JjZSB0aGUgc2hha2UgZWZmZWN0IHRvIHN0YXJ0IGltbWVkaWF0ZWx5LCBldmVuIGlmIGFscmVhZHkgcnVubmluZy5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmFTaGFrZUNhbGxiYWNrfSBbY2FsbGJhY2tdIC0gVGhpcyBjYWxsYmFjayB3aWxsIGJlIGludm9rZWQgZXZlcnkgZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gICAgICogSXQgaXMgc2VudCB0d28gYXJndW1lbnRzOiBBIHJlZmVyZW5jZSB0byB0aGUgY2FtZXJhIGFuZCBhIHByb2dyZXNzIGFtb3VudCBiZXR3ZWVuIDAgYW5kIDEgaW5kaWNhdGluZyBob3cgY29tcGxldGUgdGhlIGVmZmVjdCBpcy5cclxuICAgICAqIEBwYXJhbSB7YW55fSBbY29udGV4dF0gLSBUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgY2FsbGJhY2sgaXMgaW52b2tlZC4gRGVmYXVsdHMgdG8gdGhlIFNjZW5lIHRvIHdoaWNoIHRoZSBDYW1lcmEgYmVsb25ncy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gVGhlIENhbWVyYSBvbiB3aGljaCB0aGUgZWZmZWN0IHdhcyBzdGFydGVkLlxyXG4gICAgICovXHJcbiAgICBzdGFydDogZnVuY3Rpb24gKGR1cmF0aW9uLCBpbnRlbnNpdHksIGZvcmNlLCBjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICBpZiAoZHVyYXRpb24gPT09IHVuZGVmaW5lZCkgeyBkdXJhdGlvbiA9IDEwMDsgfVxyXG4gICAgICAgIGlmIChpbnRlbnNpdHkgPT09IHVuZGVmaW5lZCkgeyBpbnRlbnNpdHkgPSAwLjA1OyB9XHJcbiAgICAgICAgaWYgKGZvcmNlID09PSB1bmRlZmluZWQpIHsgZm9yY2UgPSBmYWxzZTsgfVxyXG4gICAgICAgIGlmIChjYWxsYmFjayA9PT0gdW5kZWZpbmVkKSB7IGNhbGxiYWNrID0gbnVsbDsgfVxyXG4gICAgICAgIGlmIChjb250ZXh0ID09PSB1bmRlZmluZWQpIHsgY29udGV4dCA9IHRoaXMuY2FtZXJhLnNjZW5lOyB9XHJcblxyXG4gICAgICAgIGlmICghZm9yY2UgJiYgdGhpcy5pc1J1bm5pbmcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jYW1lcmE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmlzUnVubmluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5kdXJhdGlvbiA9IGR1cmF0aW9uO1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGludGVuc2l0eSA9PT0gJ251bWJlcicpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmludGVuc2l0eS5zZXQoaW50ZW5zaXR5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5pbnRlbnNpdHkuc2V0KGludGVuc2l0eS54LCBpbnRlbnNpdHkueSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9lbGFwc2VkID0gMDtcclxuICAgICAgICB0aGlzLl9vZmZzZXRYID0gMDtcclxuICAgICAgICB0aGlzLl9vZmZzZXRZID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGUgPSBjYWxsYmFjaztcclxuICAgICAgICB0aGlzLl9vblVwZGF0ZVNjb3BlID0gY29udGV4dDtcclxuXHJcbiAgICAgICAgdGhpcy5jYW1lcmEuZW1pdChFdmVudHMuU0hBS0VfU1RBUlQsIHRoaXMuY2FtZXJhLCB0aGlzLCBkdXJhdGlvbiwgaW50ZW5zaXR5KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FtZXJhO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBwcmUtcmVuZGVyIHN0ZXAgZm9yIHRoaXMgZWZmZWN0LiBDYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlNoYWtlI3ByZVJlbmRlclxyXG4gICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgKi9cclxuICAgIHByZVJlbmRlcjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5pc1J1bm5pbmcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmNhbWVyYS5tYXRyaXgudHJhbnNsYXRlKHRoaXMuX29mZnNldFgsIHRoaXMuX29mZnNldFkpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWFpbiB1cGRhdGUgbG9vcCBmb3IgdGhpcyBlZmZlY3QuIENhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBDYW1lcmEuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuU2hha2UjdXBkYXRlXHJcbiAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHRpbWUgLSBUaGUgY3VycmVudCB0aW1lc3RhbXAgYXMgZ2VuZXJhdGVkIGJ5IHRoZSBSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSBvciBTZXRUaW1lb3V0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlbHRhIC0gVGhlIGRlbHRhIHRpbWUsIGluIG1zLCBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IGZyYW1lLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGU6IGZ1bmN0aW9uICh0aW1lLCBkZWx0YSlcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNSdW5uaW5nKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fZWxhcHNlZCArPSBkZWx0YTtcclxuXHJcbiAgICAgICAgdGhpcy5wcm9ncmVzcyA9IENsYW1wKHRoaXMuX2VsYXBzZWQgLyB0aGlzLmR1cmF0aW9uLCAwLCAxKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX29uVXBkYXRlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fb25VcGRhdGUuY2FsbCh0aGlzLl9vblVwZGF0ZVNjb3BlLCB0aGlzLmNhbWVyYSwgdGhpcy5wcm9ncmVzcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fZWxhcHNlZCA8IHRoaXMuZHVyYXRpb24pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgaW50ZW5zaXR5ID0gdGhpcy5pbnRlbnNpdHk7XHJcbiAgICAgICAgICAgIHZhciB3aWR0aCA9IHRoaXMuY2FtZXJhLl9jdztcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IHRoaXMuY2FtZXJhLl9jaDtcclxuICAgICAgICAgICAgdmFyIHpvb20gPSB0aGlzLmNhbWVyYS56b29tO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fb2Zmc2V0WCA9IChNYXRoLnJhbmRvbSgpICogaW50ZW5zaXR5LnggKiB3aWR0aCAqIDIgLSBpbnRlbnNpdHkueCAqIHdpZHRoKSAqIHpvb207XHJcbiAgICAgICAgICAgIHRoaXMuX29mZnNldFkgPSAoTWF0aC5yYW5kb20oKSAqIGludGVuc2l0eS55ICogaGVpZ2h0ICogMiAtIGludGVuc2l0eS55ICogaGVpZ2h0KSAqIHpvb207XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5jYW1lcmEucm91bmRQaXhlbHMpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX29mZnNldFggPSBNYXRoLnJvdW5kKHRoaXMuX29mZnNldFgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fb2Zmc2V0WSA9IE1hdGgucm91bmQodGhpcy5fb2Zmc2V0WSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5lZmZlY3RDb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgaW50ZXJuYWxseSB3aGVuIHRoZSBlZmZlY3QgY29tcGxldGVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlNoYWtlI2VmZmVjdENvbXBsZXRlXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjU0hBS0VfQ09NUExFVEVcclxuICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICovXHJcbiAgICBlZmZlY3RDb21wbGV0ZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vZmZzZXRYID0gMDtcclxuICAgICAgICB0aGlzLl9vZmZzZXRZID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlU2NvcGUgPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLmlzUnVubmluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLmNhbWVyYS5lbWl0KEV2ZW50cy5TSEFLRV9DT01QTEVURSwgdGhpcy5jYW1lcmEsIHRoaXMpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc2V0cyB0aGlzIGNhbWVyYSBlZmZlY3QuXHJcbiAgICAgKiBJZiBpdCB3YXMgcHJldmlvdXNseSBydW5uaW5nLCBpdCBzdG9wcyBpbnN0YW50bHkgd2l0aG91dCBjYWxsaW5nIGl0cyBvbkNvbXBsZXRlIGNhbGxiYWNrIG9yIGVtaXR0aW5nIGFuIGV2ZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlNoYWtlI3Jlc2V0XHJcbiAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAqL1xyXG4gICAgcmVzZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0WCA9IDA7XHJcbiAgICAgICAgdGhpcy5fb2Zmc2V0WSA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9vblVwZGF0ZVNjb3BlID0gbnVsbDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXN0cm95cyB0aGlzIGVmZmVjdCwgcmVsZWFzaW5nIGl0IGZyb20gdGhlIENhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5TaGFrZSNkZXN0cm95XHJcbiAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAqL1xyXG4gICAgZGVzdHJveTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuY2FtZXJhID0gbnVsbDtcclxuICAgICAgICB0aGlzLmludGVuc2l0eSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2hha2U7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYW1wID0gcmVxdWlyZSgnLi4vLi4vLi4vbWF0aC9DbGFtcCcpO1xyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgRWFzZU1hcCA9IHJlcXVpcmUoJy4uLy4uLy4uL21hdGgvZWFzaW5nL0Vhc2VNYXAnKTtcclxudmFyIEV2ZW50cyA9IHJlcXVpcmUoJy4uL2V2ZW50cycpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBDYW1lcmEgWm9vbSBlZmZlY3QuXHJcbiAqXHJcbiAqIFRoaXMgZWZmZWN0IHdpbGwgem9vbSB0aGUgQ2FtZXJhIHRvIHRoZSBnaXZlbiBzY2FsZSwgb3ZlciB0aGUgZHVyYXRpb24gYW5kIHdpdGggdGhlIGVhc2Ugc3BlY2lmaWVkLlxyXG4gKlxyXG4gKiBUaGUgZWZmZWN0IHdpbGwgZGlzcGF0Y2ggc2V2ZXJhbCBldmVudHMgb24gdGhlIENhbWVyYSBpdHNlbGYgYW5kIHlvdSBjYW4gYWxzbyBzcGVjaWZ5IGFuIGBvblVwZGF0ZWAgY2FsbGJhY2ssXHJcbiAqIHdoaWNoIGlzIGludm9rZWQgZWFjaCBmcmFtZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QgaWYgcmVxdWlyZWQuXHJcbiAqXHJcbiAqIEBjbGFzcyBab29tXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjExLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIGNhbWVyYSB0aGlzIGVmZmVjdCBpcyBhY3RpbmcgdXBvbi5cclxuICovXHJcbnZhciBab29tID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIFpvb20gKGNhbWVyYSlcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgQ2FtZXJhIHRoaXMgZWZmZWN0IGJlbG9uZ3MgdG8uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuWm9vbSNjYW1lcmFcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY2FtZXJhID0gY2FtZXJhO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJcyB0aGlzIGVmZmVjdCBhY3RpdmVseSBydW5uaW5nP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlpvb20jaXNSdW5uaW5nXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QsIGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5ab29tI2R1cmF0aW9uXHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmR1cmF0aW9uID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHN0YXJ0aW5nIHpvb20gdmFsdWU7XHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuWm9vbSNzb3VyY2VcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNvdXJjZSA9IDE7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBkZXN0aW5hdGlvbiB6b29tIHZhbHVlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlpvb20jZGVzdGluYXRpb25cclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uID0gMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGVhc2UgZnVuY3Rpb24gdG8gdXNlIGR1cmluZyB0aGUgem9vbS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5ab29tI2Vhc2VcclxuICAgICAgICAgKiBAdHlwZSB7ZnVuY3Rpb259XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZWFzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSWYgdGhpcyBlZmZlY3QgaXMgcnVubmluZyB0aGlzIGhvbGRzIHRoZSBjdXJyZW50IHBlcmNlbnRhZ2Ugb2YgdGhlIHByb2dyZXNzLCBhIHZhbHVlIGJldHdlZW4gMCBhbmQgMS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5ab29tI3Byb2dyZXNzXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEVmZmVjdCBlbGFwc2VkIHRpbWVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlpvb20jX2VsYXBzZWRcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2VsYXBzZWQgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGludm9rZWQgZXZlcnkgZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlpvb20jX29uVXBkYXRlXHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuVHlwZXMuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYVpvb21DYWxsYmFja31cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIE9uIENvbXBsZXRlIGNhbGxiYWNrIHNjb3BlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlpvb20jX29uVXBkYXRlU2NvcGVcclxuICAgICAgICAgKiBAdHlwZSB7YW55fVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlU2NvcGU7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBlZmZlY3Qgd2lsbCB6b29tIHRoZSBDYW1lcmEgdG8gdGhlIGdpdmVuIHNjYWxlLCBvdmVyIHRoZSBkdXJhdGlvbiBhbmQgd2l0aCB0aGUgZWFzZSBzcGVjaWZpZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuWm9vbSNzdGFydFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1pPT01fU1RBUlRcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNaT09NX0NPTVBMRVRFXHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHpvb20gLSBUaGUgdGFyZ2V0IENhbWVyYSB6b29tIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZHVyYXRpb249MTAwMF0gLSBUaGUgZHVyYXRpb24gb2YgdGhlIGVmZmVjdCBpbiBtaWxsaXNlY29uZHMuXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8ZnVuY3Rpb24pfSBbZWFzZT0nTGluZWFyJ10gLSBUaGUgZWFzZSB0byB1c2UgZm9yIHRoZSBab29tLiBDYW4gYmUgYW55IG9mIHRoZSBQaGFzZXIgRWFzaW5nIGNvbnN0YW50cyBvciBhIGN1c3RvbSBmdW5jdGlvbi5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ZvcmNlPWZhbHNlXSAtIEZvcmNlIHRoZSB6b29tIGVmZmVjdCB0byBzdGFydCBpbW1lZGlhdGVseSwgZXZlbiBpZiBhbHJlYWR5IHJ1bm5pbmcuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhWm9vbUNhbGxiYWNrfSBbY2FsbGJhY2tdIC0gVGhpcyBjYWxsYmFjayB3aWxsIGJlIGludm9rZWQgZXZlcnkgZnJhbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gICAgICogSXQgaXMgc2VudCB0aHJlZSBhcmd1bWVudHM6IEEgcmVmZXJlbmNlIHRvIHRoZSBjYW1lcmEsIGEgcHJvZ3Jlc3MgYW1vdW50IGJldHdlZW4gMCBhbmQgMSBpbmRpY2F0aW5nIGhvdyBjb21wbGV0ZSB0aGUgZWZmZWN0IGlzLFxyXG4gICAgICogYW5kIHRoZSBjdXJyZW50IGNhbWVyYSB6b29tIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHthbnl9IFtjb250ZXh0XSAtIFRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBjYWxsYmFjayBpcyBpbnZva2VkLiBEZWZhdWx0cyB0byB0aGUgU2NlbmUgdG8gd2hpY2ggdGhlIENhbWVyYSBiZWxvbmdzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBUaGUgQ2FtZXJhIG9uIHdoaWNoIHRoZSBlZmZlY3Qgd2FzIHN0YXJ0ZWQuXHJcbiAgICAgKi9cclxuICAgIHN0YXJ0OiBmdW5jdGlvbiAoem9vbSwgZHVyYXRpb24sIGVhc2UsIGZvcmNlLCBjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICBpZiAoZHVyYXRpb24gPT09IHVuZGVmaW5lZCkgeyBkdXJhdGlvbiA9IDEwMDA7IH1cclxuICAgICAgICBpZiAoZWFzZSA9PT0gdW5kZWZpbmVkKSB7IGVhc2UgPSBFYXNlTWFwLkxpbmVhcjsgfVxyXG4gICAgICAgIGlmIChmb3JjZSA9PT0gdW5kZWZpbmVkKSB7IGZvcmNlID0gZmFsc2U7IH1cclxuICAgICAgICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZCkgeyBjYWxsYmFjayA9IG51bGw7IH1cclxuICAgICAgICBpZiAoY29udGV4dCA9PT0gdW5kZWZpbmVkKSB7IGNvbnRleHQgPSB0aGlzLmNhbWVyYS5zY2VuZTsgfVxyXG5cclxuICAgICAgICB2YXIgY2FtID0gdGhpcy5jYW1lcmE7XHJcblxyXG4gICAgICAgIGlmICghZm9yY2UgJiYgdGhpcy5pc1J1bm5pbmcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gY2FtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSBkdXJhdGlvbjtcclxuICAgICAgICB0aGlzLnByb2dyZXNzID0gMDtcclxuXHJcbiAgICAgICAgLy8gIFN0YXJ0aW5nIGZyb21cclxuICAgICAgICB0aGlzLnNvdXJjZSA9IGNhbS56b29tO1xyXG5cclxuICAgICAgICAvLyAgWm9vbWluZyB0b1xyXG4gICAgICAgIHRoaXMuZGVzdGluYXRpb24gPSB6b29tO1xyXG5cclxuICAgICAgICAvLyAgVXNpbmcgdGhpcyBlYXNlXHJcbiAgICAgICAgaWYgKHR5cGVvZiBlYXNlID09PSAnc3RyaW5nJyAmJiBFYXNlTWFwLmhhc093blByb3BlcnR5KGVhc2UpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5lYXNlID0gRWFzZU1hcFtlYXNlXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGVhc2UgPT09ICdmdW5jdGlvbicpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmVhc2UgPSBlYXNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fZWxhcHNlZCA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlID0gY2FsbGJhY2s7XHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGVTY29wZSA9IGNvbnRleHQ7XHJcblxyXG4gICAgICAgIHRoaXMuY2FtZXJhLmVtaXQoRXZlbnRzLlpPT01fU1RBUlQsIHRoaXMuY2FtZXJhLCB0aGlzLCBkdXJhdGlvbiwgem9vbSk7XHJcblxyXG4gICAgICAgIHJldHVybiBjYW07XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1haW4gdXBkYXRlIGxvb3AgZm9yIHRoaXMgZWZmZWN0LiBDYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlpvb20jdXBkYXRlXHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSB0aW1lIC0gVGhlIGN1cnJlbnQgdGltZXN0YW1wIGFzIGdlbmVyYXRlZCBieSB0aGUgUmVxdWVzdCBBbmltYXRpb24gRnJhbWUgb3IgU2V0VGltZW91dC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWx0YSAtIFRoZSBkZWx0YSB0aW1lLCBpbiBtcywgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCBmcmFtZS5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlOiBmdW5jdGlvbiAodGltZSwgZGVsdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzUnVubmluZylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2VsYXBzZWQgKz0gZGVsdGE7XHJcblxyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MgPSBDbGFtcCh0aGlzLl9lbGFwc2VkIC8gdGhpcy5kdXJhdGlvbiwgMCwgMSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9lbGFwc2VkIDwgdGhpcy5kdXJhdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FtZXJhLnpvb20gPSB0aGlzLnNvdXJjZSArICgodGhpcy5kZXN0aW5hdGlvbiAtIHRoaXMuc291cmNlKSAqIHRoaXMuZWFzZSh0aGlzLnByb2dyZXNzKSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fb25VcGRhdGUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX29uVXBkYXRlLmNhbGwodGhpcy5fb25VcGRhdGVTY29wZSwgdGhpcy5jYW1lcmEsIHRoaXMucHJvZ3Jlc3MsIHRoaXMuY2FtZXJhLnpvb20pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FtZXJhLnpvb20gPSB0aGlzLmRlc3RpbmF0aW9uO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX29uVXBkYXRlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vblVwZGF0ZS5jYWxsKHRoaXMuX29uVXBkYXRlU2NvcGUsIHRoaXMuY2FtZXJhLCB0aGlzLnByb2dyZXNzLCB0aGlzLmRlc3RpbmF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5lZmZlY3RDb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgaW50ZXJuYWxseSB3aGVuIHRoZSBlZmZlY3QgY29tcGxldGVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlpvb20jZWZmZWN0Q29tcGxldGVcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNaT09NX0NPTVBMRVRFXHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKi9cclxuICAgIGVmZmVjdENvbXBsZXRlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9vblVwZGF0ZVNjb3BlID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5jYW1lcmEuZW1pdChFdmVudHMuWk9PTV9DT01QTEVURSwgdGhpcy5jYW1lcmEsIHRoaXMpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc2V0cyB0aGlzIGNhbWVyYSBlZmZlY3QuXHJcbiAgICAgKiBJZiBpdCB3YXMgcHJldmlvdXNseSBydW5uaW5nLCBpdCBzdG9wcyBpbnN0YW50bHkgd2l0aG91dCBjYWxsaW5nIGl0cyBvbkNvbXBsZXRlIGNhbGxiYWNrIG9yIGVtaXR0aW5nIGFuIGV2ZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlpvb20jcmVzZXRcclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqL1xyXG4gICAgcmVzZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5fb25VcGRhdGUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX29uVXBkYXRlU2NvcGUgPSBudWxsO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc3Ryb3lzIHRoaXMgZWZmZWN0LCByZWxlYXNpbmcgaXQgZnJvbSB0aGUgQ2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlpvb20jZGVzdHJveVxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMucmVzZXQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jYW1lcmEgPSBudWxsO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFpvb207XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgRmFkZTogcmVxdWlyZSgnLi9GYWRlJyksXHJcbiAgICBGbGFzaDogcmVxdWlyZSgnLi9GbGFzaCcpLFxyXG4gICAgUGFuOiByZXF1aXJlKCcuL1BhbicpLFxyXG4gICAgU2hha2U6IHJlcXVpcmUoJy4vU2hha2UnKSxcclxuICAgIFJvdGF0ZVRvOiByZXF1aXJlKCcuL1JvdGF0ZVRvJyksXHJcbiAgICBab29tOiByZXF1aXJlKCcuL1pvb20nKVxyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIERlc3Ryb3kgQ2FtZXJhIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgQ2FtZXJhIGluc3RhbmNlIHdoZW4gaXQgaXMgZGVzdHJveWVkIGJ5IHRoZSBDYW1lcmEgTWFuYWdlci5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI0RFU1RST1lcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYX0gY2FtZXJhIC0gVGhlIGNhbWVyYSB0aGF0IHdhcyBkZXN0cm95ZWQuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdjYW1lcmFkZXN0cm95JztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIENhbWVyYSBGYWRlIEluIENvbXBsZXRlIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgQ2FtZXJhIGluc3RhbmNlIHdoZW4gdGhlIEZhZGUgSW4gRWZmZWN0IGNvbXBsZXRlcy5cclxuICogXHJcbiAqIExpc3RlbiB0byBpdCBmcm9tIGEgQ2FtZXJhIGluc3RhbmNlIHVzaW5nIGBDYW1lcmEub24oJ2NhbWVyYWZhZGVpbmNvbXBsZXRlJywgbGlzdGVuZXIpYC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI0ZBREVfSU5fQ09NUExFVEVcclxuICogQHNpbmNlIDMuMy4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIHRoYXQgdGhlIGVmZmVjdCBiZWdhbiBvbi5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmFkZX0gZWZmZWN0IC0gQSByZWZlcmVuY2UgdG8gdGhlIGVmZmVjdCBpbnN0YW5jZS5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2NhbWVyYWZhZGVpbmNvbXBsZXRlJztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIENhbWVyYSBGYWRlIEluIFN0YXJ0IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgQ2FtZXJhIGluc3RhbmNlIHdoZW4gdGhlIEZhZGUgSW4gRWZmZWN0IHN0YXJ0cy5cclxuICogXHJcbiAqIExpc3RlbiB0byBpdCBmcm9tIGEgQ2FtZXJhIGluc3RhbmNlIHVzaW5nIGBDYW1lcmEub24oJ2NhbWVyYWZhZGVpbnN0YXJ0JywgbGlzdGVuZXIpYC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI0ZBREVfSU5fU1RBUlRcclxuICogQHNpbmNlIDMuMy4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIHRoYXQgdGhlIGVmZmVjdCBiZWdhbiBvbi5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmFkZX0gZWZmZWN0IC0gQSByZWZlcmVuY2UgdG8gdGhlIGVmZmVjdCBpbnN0YW5jZS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBkdXJhdGlvbiAtIFRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IHJlZCAtIFRoZSByZWQgY29sb3IgY2hhbm5lbCB2YWx1ZS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBncmVlbiAtIFRoZSBncmVlbiBjb2xvciBjaGFubmVsIHZhbHVlLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IGJsdWUgLSBUaGUgYmx1ZSBjb2xvciBjaGFubmVsIHZhbHVlLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAnY2FtZXJhZmFkZWluc3RhcnQnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgQ2FtZXJhIEZhZGUgT3V0IENvbXBsZXRlIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgQ2FtZXJhIGluc3RhbmNlIHdoZW4gdGhlIEZhZGUgT3V0IEVmZmVjdCBjb21wbGV0ZXMuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gdG8gaXQgZnJvbSBhIENhbWVyYSBpbnN0YW5jZSB1c2luZyBgQ2FtZXJhLm9uKCdjYW1lcmFmYWRlb3V0Y29tcGxldGUnLCBsaXN0ZW5lcilgLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjRkFERV9PVVRfQ09NUExFVEVcclxuICogQHNpbmNlIDMuMy4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIHRoYXQgdGhlIGVmZmVjdCBiZWdhbiBvbi5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuRmFkZX0gZWZmZWN0IC0gQSByZWZlcmVuY2UgdG8gdGhlIGVmZmVjdCBpbnN0YW5jZS5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2NhbWVyYWZhZGVvdXRjb21wbGV0ZSc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBDYW1lcmEgRmFkZSBPdXQgU3RhcnQgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYnkgYSBDYW1lcmEgaW5zdGFuY2Ugd2hlbiB0aGUgRmFkZSBPdXQgRWZmZWN0IHN0YXJ0cy5cclxuICogXHJcbiAqIExpc3RlbiB0byBpdCBmcm9tIGEgQ2FtZXJhIGluc3RhbmNlIHVzaW5nIGBDYW1lcmEub24oJ2NhbWVyYWZhZGVvdXRzdGFydCcsIGxpc3RlbmVyKWAuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNGQURFX09VVF9TVEFSVFxyXG4gKiBAc2luY2UgMy4zLjBcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBjYW1lcmEgdGhhdCB0aGUgZWZmZWN0IGJlZ2FuIG9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GYWRlfSBlZmZlY3QgLSBBIHJlZmVyZW5jZSB0byB0aGUgZWZmZWN0IGluc3RhbmNlLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IGR1cmF0aW9uIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gcmVkIC0gVGhlIHJlZCBjb2xvciBjaGFubmVsIHZhbHVlLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IGdyZWVuIC0gVGhlIGdyZWVuIGNvbG9yIGNoYW5uZWwgdmFsdWUuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gYmx1ZSAtIFRoZSBibHVlIGNvbG9yIGNoYW5uZWwgdmFsdWUuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdjYW1lcmFmYWRlb3V0c3RhcnQnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgQ2FtZXJhIEZsYXNoIENvbXBsZXRlIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgQ2FtZXJhIGluc3RhbmNlIHdoZW4gdGhlIEZsYXNoIEVmZmVjdCBjb21wbGV0ZXMuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNGTEFTSF9DT01QTEVURVxyXG4gKiBAc2luY2UgMy4zLjBcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBjYW1lcmEgdGhhdCB0aGUgZWZmZWN0IGJlZ2FuIG9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GbGFzaH0gZWZmZWN0IC0gQSByZWZlcmVuY2UgdG8gdGhlIGVmZmVjdCBpbnN0YW5jZS5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2NhbWVyYWZsYXNoY29tcGxldGUnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgQ2FtZXJhIEZsYXNoIFN0YXJ0IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgQ2FtZXJhIGluc3RhbmNlIHdoZW4gdGhlIEZsYXNoIEVmZmVjdCBzdGFydHMuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNGTEFTSF9TVEFSVFxyXG4gKiBAc2luY2UgMy4zLjBcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBjYW1lcmEgdGhhdCB0aGUgZWZmZWN0IGJlZ2FuIG9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5GbGFzaH0gZWZmZWN0IC0gQSByZWZlcmVuY2UgdG8gdGhlIGVmZmVjdCBpbnN0YW5jZS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBkdXJhdGlvbiAtIFRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IHJlZCAtIFRoZSByZWQgY29sb3IgY2hhbm5lbCB2YWx1ZS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBncmVlbiAtIFRoZSBncmVlbiBjb2xvciBjaGFubmVsIHZhbHVlLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IGJsdWUgLSBUaGUgYmx1ZSBjb2xvciBjaGFubmVsIHZhbHVlLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAnY2FtZXJhZmxhc2hzdGFydCc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBDYW1lcmEgUGFuIENvbXBsZXRlIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgQ2FtZXJhIGluc3RhbmNlIHdoZW4gdGhlIFBhbiBFZmZlY3QgY29tcGxldGVzLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjUEFOX0NPTVBMRVRFXHJcbiAqIEBzaW5jZSAzLjMuMFxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIGNhbWVyYSB0aGF0IHRoZSBlZmZlY3QgYmVnYW4gb24uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlBhbn0gZWZmZWN0IC0gQSByZWZlcmVuY2UgdG8gdGhlIGVmZmVjdCBpbnN0YW5jZS5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2NhbWVyYXBhbmNvbXBsZXRlJztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIENhbWVyYSBQYW4gU3RhcnQgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYnkgYSBDYW1lcmEgaW5zdGFuY2Ugd2hlbiB0aGUgUGFuIEVmZmVjdCBzdGFydHMuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNQQU5fU1RBUlRcclxuICogQHNpbmNlIDMuMy4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIHRoYXQgdGhlIGVmZmVjdCBiZWdhbiBvbi5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuUGFufSBlZmZlY3QgLSBBIHJlZmVyZW5jZSB0byB0aGUgZWZmZWN0IGluc3RhbmNlLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IGR1cmF0aW9uIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGRlc3RpbmF0aW9uIHNjcm9sbCB4IGNvb3JkaW5hdGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIGRlc3RpbmF0aW9uIHNjcm9sbCB5IGNvb3JkaW5hdGUuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdjYW1lcmFwYW5zdGFydCc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBDYW1lcmEgUG9zdC1SZW5kZXIgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYnkgYSBDYW1lcmEgaW5zdGFuY2UgYWZ0ZXIgaXMgaGFzIGZpbmlzaGVkIHJlbmRlcmluZy5cclxuICogSXQgaXMgb25seSBkaXNwYXRjaGVkIGlmIHRoZSBDYW1lcmEgaXMgcmVuZGVyaW5nIHRvIGEgdGV4dHVyZS5cclxuICogXHJcbiAqIExpc3RlbiB0byBpdCBmcm9tIGEgQ2FtZXJhIGluc3RhbmNlIHVzaW5nOiBgY2FtZXJhLm9uKCdwb3N0cmVuZGVyJywgbGlzdGVuZXIpYC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1BPU1RfUkVOREVSXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmF9IGNhbWVyYSAtIFRoZSBjYW1lcmEgdGhhdCBoYXMgZmluaXNoZWQgcmVuZGVyaW5nIHRvIGEgdGV4dHVyZS5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ3Bvc3RyZW5kZXInO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgQ2FtZXJhIFByZS1SZW5kZXIgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYnkgYSBDYW1lcmEgaW5zdGFuY2Ugd2hlbiBpdCBpcyBhYm91dCB0byByZW5kZXIuXHJcbiAqIEl0IGlzIG9ubHkgZGlzcGF0Y2hlZCBpZiB0aGUgQ2FtZXJhIGlzIHJlbmRlcmluZyB0byBhIHRleHR1cmUuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gdG8gaXQgZnJvbSBhIENhbWVyYSBpbnN0YW5jZSB1c2luZzogYGNhbWVyYS5vbigncHJlcmVuZGVyJywgbGlzdGVuZXIpYC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1BSRV9SRU5ERVJcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQmFzZUNhbWVyYX0gY2FtZXJhIC0gVGhlIGNhbWVyYSB0aGF0IGlzIGFib3V0IHRvIHJlbmRlciB0byBhIHRleHR1cmUuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdwcmVyZW5kZXInO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgQ2FtZXJhIFJvdGF0ZSBDb21wbGV0ZSBFdmVudC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCBieSBhIENhbWVyYSBpbnN0YW5jZSB3aGVuIHRoZSBSb3RhdGUgRWZmZWN0IGNvbXBsZXRlcy5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1JPVEFURV9DT01QTEVURVxyXG4gKiBAc2luY2UgMy4yMy4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIHRoYXQgdGhlIGVmZmVjdCBiZWdhbiBvbi5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuUm90YXRlVG99IGVmZmVjdCAtIEEgcmVmZXJlbmNlIHRvIHRoZSBlZmZlY3QgaW5zdGFuY2UuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdjYW1lcmFyb3RhdGVjb21wbGV0ZSc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBDYW1lcmEgUm90YXRlIFN0YXJ0IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgQ2FtZXJhIGluc3RhbmNlIHdoZW4gdGhlIFJvdGF0ZSBFZmZlY3Qgc3RhcnRzLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHMjUk9UQVRFX1NUQVJUXHJcbiAqIEBzaW5jZSAzLjIzLjBcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBjYW1lcmEgdGhhdCB0aGUgZWZmZWN0IGJlZ2FuIG9uLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuRWZmZWN0cy5Sb3RhdGVUb30gZWZmZWN0IC0gQSByZWZlcmVuY2UgdG8gdGhlIGVmZmVjdCBpbnN0YW5jZS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBkdXJhdGlvbiAtIFRoZSBkdXJhdGlvbiBvZiB0aGUgZWZmZWN0LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gZGVzdGluYXRpb24gLSBUaGUgZGVzdGluYXRpb24gdmFsdWUuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdjYW1lcmFyb3RhdGVzdGFydCc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBDYW1lcmEgU2hha2UgQ29tcGxldGUgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYnkgYSBDYW1lcmEgaW5zdGFuY2Ugd2hlbiB0aGUgU2hha2UgRWZmZWN0IGNvbXBsZXRlcy5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1NIQUtFX0NPTVBMRVRFXHJcbiAqIEBzaW5jZSAzLjMuMFxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIGNhbWVyYSB0aGF0IHRoZSBlZmZlY3QgYmVnYW4gb24uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlNoYWtlfSBlZmZlY3QgLSBBIHJlZmVyZW5jZSB0byB0aGUgZWZmZWN0IGluc3RhbmNlLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAnY2FtZXJhc2hha2Vjb21wbGV0ZSc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBDYW1lcmEgU2hha2UgU3RhcnQgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYnkgYSBDYW1lcmEgaW5zdGFuY2Ugd2hlbiB0aGUgU2hha2UgRWZmZWN0IHN0YXJ0cy5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1NIQUtFX1NUQVJUXHJcbiAqIEBzaW5jZSAzLjMuMFxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIGNhbWVyYSB0aGF0IHRoZSBlZmZlY3QgYmVnYW4gb24uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlNoYWtlfSBlZmZlY3QgLSBBIHJlZmVyZW5jZSB0byB0aGUgZWZmZWN0IGluc3RhbmNlLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IGR1cmF0aW9uIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSBlZmZlY3QuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlbnNpdHkgLSBUaGUgaW50ZW5zaXR5IG9mIHRoZSBlZmZlY3QuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdjYW1lcmFzaGFrZXN0YXJ0JztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIENhbWVyYSBab29tIENvbXBsZXRlIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgQ2FtZXJhIGluc3RhbmNlIHdoZW4gdGhlIFpvb20gRWZmZWN0IGNvbXBsZXRlcy5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5DYW1lcmFzLlNjZW5lMkQuRXZlbnRzI1pPT01fQ09NUExFVEVcclxuICogQHNpbmNlIDMuMy4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIHRoYXQgdGhlIGVmZmVjdCBiZWdhbiBvbi5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkVmZmVjdHMuWm9vbX0gZWZmZWN0IC0gQSByZWZlcmVuY2UgdG8gdGhlIGVmZmVjdCBpbnN0YW5jZS5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2NhbWVyYXpvb21jb21wbGV0ZSc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBDYW1lcmEgWm9vbSBTdGFydCBFdmVudC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCBieSBhIENhbWVyYSBpbnN0YW5jZSB3aGVuIHRoZSBab29tIEVmZmVjdCBzdGFydHMuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkV2ZW50cyNaT09NX1NUQVJUXHJcbiAqIEBzaW5jZSAzLjMuMFxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIGNhbWVyYSB0aGF0IHRoZSBlZmZlY3QgYmVnYW4gb24uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FZmZlY3RzLlpvb219IGVmZmVjdCAtIEEgcmVmZXJlbmNlIHRvIHRoZSBlZmZlY3QgaW5zdGFuY2UuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gZHVyYXRpb24gLSBUaGUgZHVyYXRpb24gb2YgdGhlIGVmZmVjdC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHpvb20gLSBUaGUgZGVzdGluYXRpb24gem9vbSB2YWx1ZS5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2NhbWVyYXpvb21zdGFydCc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5FdmVudHNcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBERVNUUk9ZOiByZXF1aXJlKCcuL0RFU1RST1lfRVZFTlQnKSxcclxuICAgIEZBREVfSU5fQ09NUExFVEU6IHJlcXVpcmUoJy4vRkFERV9JTl9DT01QTEVURV9FVkVOVCcpLFxyXG4gICAgRkFERV9JTl9TVEFSVDogcmVxdWlyZSgnLi9GQURFX0lOX1NUQVJUX0VWRU5UJyksXHJcbiAgICBGQURFX09VVF9DT01QTEVURTogcmVxdWlyZSgnLi9GQURFX09VVF9DT01QTEVURV9FVkVOVCcpLFxyXG4gICAgRkFERV9PVVRfU1RBUlQ6IHJlcXVpcmUoJy4vRkFERV9PVVRfU1RBUlRfRVZFTlQnKSxcclxuICAgIEZMQVNIX0NPTVBMRVRFOiByZXF1aXJlKCcuL0ZMQVNIX0NPTVBMRVRFX0VWRU5UJyksXHJcbiAgICBGTEFTSF9TVEFSVDogcmVxdWlyZSgnLi9GTEFTSF9TVEFSVF9FVkVOVCcpLFxyXG4gICAgUEFOX0NPTVBMRVRFOiByZXF1aXJlKCcuL1BBTl9DT01QTEVURV9FVkVOVCcpLFxyXG4gICAgUEFOX1NUQVJUOiByZXF1aXJlKCcuL1BBTl9TVEFSVF9FVkVOVCcpLFxyXG4gICAgUE9TVF9SRU5ERVI6IHJlcXVpcmUoJy4vUE9TVF9SRU5ERVJfRVZFTlQnKSxcclxuICAgIFBSRV9SRU5ERVI6IHJlcXVpcmUoJy4vUFJFX1JFTkRFUl9FVkVOVCcpLFxyXG4gICAgUk9UQVRFX0NPTVBMRVRFOiByZXF1aXJlKCcuL1JPVEFURV9DT01QTEVURV9FVkVOVCcpLFxyXG4gICAgUk9UQVRFX1NUQVJUOiByZXF1aXJlKCcuL1JPVEFURV9TVEFSVF9FVkVOVCcpLFxyXG4gICAgU0hBS0VfQ09NUExFVEU6IHJlcXVpcmUoJy4vU0hBS0VfQ09NUExFVEVfRVZFTlQnKSxcclxuICAgIFNIQUtFX1NUQVJUOiByZXF1aXJlKCcuL1NIQUtFX1NUQVJUX0VWRU5UJyksXHJcbiAgICBaT09NX0NPTVBMRVRFOiByZXF1aXJlKCcuL1pPT01fQ09NUExFVEVfRVZFTlQnKSxcclxuICAgIFpPT01fU1RBUlQ6IHJlcXVpcmUoJy4vWk9PTV9TVEFSVF9FVkVOVCcpXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5DYW1lcmFzLlNjZW5lMkRcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBDYW1lcmE6IHJlcXVpcmUoJy4vQ2FtZXJhJyksXHJcbiAgICBCYXNlQ2FtZXJhOiByZXF1aXJlKCcuL0Jhc2VDYW1lcmEnKSxcclxuICAgIENhbWVyYU1hbmFnZXI6IHJlcXVpcmUoJy4vQ2FtZXJhTWFuYWdlcicpLFxyXG4gICAgRWZmZWN0czogcmVxdWlyZSgnLi9lZmZlY3RzJyksXHJcbiAgICBFdmVudHM6IHJlcXVpcmUoJy4vZXZlbnRzJylcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEdldFZhbHVlID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvb2JqZWN0L0dldFZhbHVlJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIEZpeGVkIEtleSBDYW1lcmEgQ29udHJvbC5cclxuICpcclxuICogVGhpcyBhbGxvd3MgeW91IHRvIGNvbnRyb2wgdGhlIG1vdmVtZW50IGFuZCB6b29tIG9mIGEgY2FtZXJhIHVzaW5nIHRoZSBkZWZpbmVkIGtleXMuXHJcbiAqXHJcbiAqIGBgYGphdmFzY3JpcHRcclxuICogdmFyIGNhbUNvbnRyb2wgPSBuZXcgRml4ZWRLZXlDb250cm9sKHtcclxuICogICAgIGNhbWVyYTogdGhpcy5jYW1lcmFzLm1haW4sXHJcbiAqICAgICBsZWZ0OiBjdXJzb3JzLmxlZnQsXHJcbiAqICAgICByaWdodDogY3Vyc29ycy5yaWdodCxcclxuICogICAgIHNwZWVkOiBmbG9hdCBPUiB7IHg6IDAsIHk6IDAgfVxyXG4gKiB9KTtcclxuICogYGBgXHJcbiAqXHJcbiAqIE1vdmVtZW50IGlzIHByZWNpc2UgYW5kIGhhcyBubyAnc21vb3RoaW5nJyBhcHBsaWVkIHRvIGl0LlxyXG4gKlxyXG4gKiBZb3UgbXVzdCBjYWxsIHRoZSBgdXBkYXRlYCBtZXRob2Qgb2YgdGhpcyBjb250cm9sbGVyIGV2ZXJ5IGZyYW1lLlxyXG4gKlxyXG4gKiBAY2xhc3MgRml4ZWRLZXlDb250cm9sXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuQ2FtZXJhcy5Db250cm9sc1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkNhbWVyYXMuQ29udHJvbHMuRml4ZWRLZXlDb250cm9sQ29uZmlnfSBjb25maWcgLSBUaGUgRml4ZWQgS2V5IENvbnRyb2wgY29uZmlndXJhdGlvbiBvYmplY3QuXHJcbiAqL1xyXG52YXIgRml4ZWRLZXlDb250cm9sID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIEZpeGVkS2V5Q29udHJvbCAoY29uZmlnKVxyXG4gICAge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBDYW1lcmEgdGhhdCB0aGlzIENvbnRyb2wgd2lsbCB1cGRhdGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5Db250cm9scy5GaXhlZEtleUNvbnRyb2wjY2FtZXJhXHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX1cclxuICAgICAgICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jYW1lcmEgPSBHZXRWYWx1ZShjb25maWcsICdjYW1lcmEnLCBudWxsKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIEtleSB0byBiZSBwcmVzc2VkIHRoYXQgd2lsbCBtb3ZlIHRoZSBDYW1lcmEgbGVmdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLkZpeGVkS2V5Q29udHJvbCNsZWZ0XHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuSW5wdXQuS2V5Ym9hcmQuS2V5fVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmxlZnQgPSBHZXRWYWx1ZShjb25maWcsICdsZWZ0JywgbnVsbCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBLZXkgdG8gYmUgcHJlc3NlZCB0aGF0IHdpbGwgbW92ZSB0aGUgQ2FtZXJhIHJpZ2h0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuRml4ZWRLZXlDb250cm9sI3JpZ2h0XHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuSW5wdXQuS2V5Ym9hcmQuS2V5fVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJpZ2h0ID0gR2V0VmFsdWUoY29uZmlnLCAncmlnaHQnLCBudWxsKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIEtleSB0byBiZSBwcmVzc2VkIHRoYXQgd2lsbCBtb3ZlIHRoZSBDYW1lcmEgdXAuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5Db250cm9scy5GaXhlZEtleUNvbnRyb2wjdXBcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5JbnB1dC5LZXlib2FyZC5LZXl9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudXAgPSBHZXRWYWx1ZShjb25maWcsICd1cCcsIG51bGwpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgS2V5IHRvIGJlIHByZXNzZWQgdGhhdCB3aWxsIG1vdmUgdGhlIENhbWVyYSBkb3duLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuRml4ZWRLZXlDb250cm9sI2Rvd25cclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5JbnB1dC5LZXlib2FyZC5LZXl9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZG93biA9IEdldFZhbHVlKGNvbmZpZywgJ2Rvd24nLCBudWxsKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIEtleSB0byBiZSBwcmVzc2VkIHRoYXQgd2lsbCB6b29tIHRoZSBDYW1lcmEgaW4uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5Db250cm9scy5GaXhlZEtleUNvbnRyb2wjem9vbUluXHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuSW5wdXQuS2V5Ym9hcmQuS2V5fVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnpvb21JbiA9IEdldFZhbHVlKGNvbmZpZywgJ3pvb21JbicsIG51bGwpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgS2V5IHRvIGJlIHByZXNzZWQgdGhhdCB3aWxsIHpvb20gdGhlIENhbWVyYSBvdXQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5Db250cm9scy5GaXhlZEtleUNvbnRyb2wjem9vbU91dFxyXG4gICAgICAgICAqIEB0eXBlIHs/UGhhc2VyLklucHV0LktleWJvYXJkLktleX1cclxuICAgICAgICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy56b29tT3V0ID0gR2V0VmFsdWUoY29uZmlnLCAnem9vbU91dCcsIG51bGwpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgc3BlZWQgYXQgd2hpY2ggdGhlIGNhbWVyYSB3aWxsIHpvb20gaWYgdGhlIGB6b29tSW5gIG9yIGB6b29tT3V0YCBrZXlzIGFyZSBwcmVzc2VkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuRml4ZWRLZXlDb250cm9sI3pvb21TcGVlZFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMC4wMVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuem9vbVNwZWVkID0gR2V0VmFsdWUoY29uZmlnLCAnem9vbVNwZWVkJywgMC4wMSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBob3Jpem9udGFsIHNwZWVkIHRoZSBjYW1lcmEgd2lsbCBtb3ZlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuRml4ZWRLZXlDb250cm9sI3NwZWVkWFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc3BlZWRYID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHZlcnRpY2FsIHNwZWVkIHRoZSBjYW1lcmEgd2lsbCBtb3ZlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuRml4ZWRLZXlDb250cm9sI3NwZWVkWVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc3BlZWRZID0gMDtcclxuXHJcbiAgICAgICAgdmFyIHNwZWVkID0gR2V0VmFsdWUoY29uZmlnLCAnc3BlZWQnLCBudWxsKTtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBzcGVlZCA9PT0gJ251bWJlcicpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNwZWVkWCA9IHNwZWVkO1xyXG4gICAgICAgICAgICB0aGlzLnNwZWVkWSA9IHNwZWVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNwZWVkWCA9IEdldFZhbHVlKGNvbmZpZywgJ3NwZWVkLngnLCAwKTtcclxuICAgICAgICAgICAgdGhpcy5zcGVlZFkgPSBHZXRWYWx1ZShjb25maWcsICdzcGVlZC55JywgMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJbnRlcm5hbCBwcm9wZXJ0eSB0byB0cmFjayB0aGUgY3VycmVudCB6b29tIGxldmVsLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuRml4ZWRLZXlDb250cm9sI196b29tXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl96b29tID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBmbGFnIGNvbnRyb2xsaW5nIGlmIHRoZSBDb250cm9scyB3aWxsIHVwZGF0ZSB0aGUgQ2FtZXJhIG9yIG5vdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLkZpeGVkS2V5Q29udHJvbCNhY3RpdmVcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFjdGl2ZSA9ICh0aGlzLmNhbWVyYSAhPT0gbnVsbCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RhcnRzIHRoZSBLZXkgQ29udHJvbCBydW5uaW5nLCBwcm92aWRpbmcgaXQgaGFzIGJlZW4gbGlua2VkIHRvIGEgY2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuRml4ZWRLZXlDb250cm9sI3N0YXJ0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEtleSBDb250cm9sIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzdGFydDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZSA9ICh0aGlzLmNhbWVyYSAhPT0gbnVsbCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0b3BzIHRoaXMgS2V5IENvbnRyb2wgZnJvbSBydW5uaW5nLiBDYWxsIGBzdGFydGAgdG8gc3RhcnQgaXQgYWdhaW4uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5Db250cm9scy5GaXhlZEtleUNvbnRyb2wjc3RvcFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBLZXkgQ29udHJvbCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc3RvcDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCaW5kcyB0aGlzIEtleSBDb250cm9sIHRvIGEgY2FtZXJhLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuRml4ZWRLZXlDb250cm9sI3NldENhbWVyYVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIGNhbWVyYSB0byBiaW5kIHRoaXMgS2V5IENvbnRyb2wgdG8uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBLZXkgQ29udHJvbCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0Q2FtZXJhOiBmdW5jdGlvbiAoY2FtZXJhKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY2FtZXJhID0gY2FtZXJhO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcHBsaWVzIHRoZSByZXN1bHRzIG9mIHByZXNzaW5nIHRoZSBjb250cm9sIGtleXMgdG8gdGhlIENhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgbXVzdCBjYWxsIHRoaXMgZXZlcnkgc3RlcCwgaXQgaXMgbm90IGNhbGxlZCBhdXRvbWF0aWNhbGx5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuRml4ZWRLZXlDb250cm9sI3VwZGF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlbHRhIC0gVGhlIGRlbHRhIHRpbWUgaW4gbXMgc2luY2UgdGhlIGxhc3QgZnJhbWUuIFRoaXMgaXMgYSBzbW9vdGhlZCBhbmQgY2FwcGVkIHZhbHVlIGJhc2VkIG9uIHRoZSBGUFMgcmF0ZS5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlOiBmdW5jdGlvbiAoZGVsdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkZWx0YSA9PT0gdW5kZWZpbmVkKSB7IGRlbHRhID0gMTsgfVxyXG5cclxuICAgICAgICB2YXIgY2FtID0gdGhpcy5jYW1lcmE7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnVwICYmIHRoaXMudXAuaXNEb3duKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY2FtLnNjcm9sbFkgLT0gKCh0aGlzLnNwZWVkWSAqIGRlbHRhKSB8IDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmRvd24gJiYgdGhpcy5kb3duLmlzRG93bilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNhbS5zY3JvbGxZICs9ICgodGhpcy5zcGVlZFkgKiBkZWx0YSkgfCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmxlZnQgJiYgdGhpcy5sZWZ0LmlzRG93bilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNhbS5zY3JvbGxYIC09ICgodGhpcy5zcGVlZFggKiBkZWx0YSkgfCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5yaWdodCAmJiB0aGlzLnJpZ2h0LmlzRG93bilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNhbS5zY3JvbGxYICs9ICgodGhpcy5zcGVlZFggKiBkZWx0YSkgfCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBDYW1lcmEgem9vbVxyXG5cclxuICAgICAgICBpZiAodGhpcy56b29tSW4gJiYgdGhpcy56b29tSW4uaXNEb3duKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY2FtLnpvb20gLT0gdGhpcy56b29tU3BlZWQ7XHJcblxyXG4gICAgICAgICAgICBpZiAoY2FtLnpvb20gPCAwLjEpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNhbS56b29tID0gMC4xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuem9vbU91dCAmJiB0aGlzLnpvb21PdXQuaXNEb3duKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY2FtLnpvb20gKz0gdGhpcy56b29tU3BlZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc3Ryb3lzIHRoaXMgS2V5IENvbnRyb2wuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ2FtZXJhcy5Db250cm9scy5GaXhlZEtleUNvbnRyb2wjZGVzdHJveVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5jYW1lcmEgPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLmxlZnQgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucmlnaHQgPSBudWxsO1xyXG4gICAgICAgIHRoaXMudXAgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZG93biA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuem9vbUluID0gbnVsbDtcclxuICAgICAgICB0aGlzLnpvb21PdXQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEZpeGVkS2V5Q29udHJvbDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgR2V0VmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0VmFsdWUnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgU21vb3RoZWQgS2V5IENhbWVyYSBDb250cm9sLlxyXG4gKlxyXG4gKiBUaGlzIGFsbG93cyB5b3UgdG8gY29udHJvbCB0aGUgbW92ZW1lbnQgYW5kIHpvb20gb2YgYSBjYW1lcmEgdXNpbmcgdGhlIGRlZmluZWQga2V5cy5cclxuICogVW5saWtlIHRoZSBGaXhlZCBDYW1lcmEgQ29udHJvbCB5b3UgY2FuIGFsc28gcHJvdmlkZSBwaHlzaWNzIHZhbHVlcyBmb3IgYWNjZWxlcmF0aW9uLCBkcmFnIGFuZCBtYXhTcGVlZCBmb3Igc21vb3RoaW5nIGVmZmVjdHMuXHJcbiAqXHJcbiAqIGBgYGphdmFzY3JpcHRcclxuICogdmFyIGNvbnRyb2xDb25maWcgPSB7XHJcbiAqICAgICBjYW1lcmE6IHRoaXMuY2FtZXJhcy5tYWluLFxyXG4gKiAgICAgbGVmdDogY3Vyc29ycy5sZWZ0LFxyXG4gKiAgICAgcmlnaHQ6IGN1cnNvcnMucmlnaHQsXHJcbiAqICAgICB1cDogY3Vyc29ycy51cCxcclxuICogICAgIGRvd246IGN1cnNvcnMuZG93bixcclxuICogICAgIHpvb21JbjogdGhpcy5pbnB1dC5rZXlib2FyZC5hZGRLZXkoUGhhc2VyLklucHV0LktleWJvYXJkLktleUNvZGVzLlEpLFxyXG4gKiAgICAgem9vbU91dDogdGhpcy5pbnB1dC5rZXlib2FyZC5hZGRLZXkoUGhhc2VyLklucHV0LktleWJvYXJkLktleUNvZGVzLkUpLFxyXG4gKiAgICAgem9vbVNwZWVkOiAwLjAyLFxyXG4gKiAgICAgYWNjZWxlcmF0aW9uOiAwLjA2LFxyXG4gKiAgICAgZHJhZzogMC4wMDA1LFxyXG4gKiAgICAgbWF4U3BlZWQ6IDEuMFxyXG4gKiB9O1xyXG4gKiBgYGBcclxuICogXHJcbiAqIFlvdSBtdXN0IGNhbGwgdGhlIGB1cGRhdGVgIG1ldGhvZCBvZiB0aGlzIGNvbnRyb2xsZXIgZXZlcnkgZnJhbWUuXHJcbiAqXHJcbiAqIEBjbGFzcyBTbW9vdGhlZEtleUNvbnRyb2xcclxuICogQG1lbWJlcm9mIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuQ2FtZXJhcy5Db250cm9scy5TbW9vdGhlZEtleUNvbnRyb2xDb25maWd9IGNvbmZpZyAtIFRoZSBTbW9vdGhlZCBLZXkgQ29udHJvbCBjb25maWd1cmF0aW9uIG9iamVjdC5cclxuICovXHJcbnZhciBTbW9vdGhlZEtleUNvbnRyb2wgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gU21vb3RoZWRLZXlDb250cm9sIChjb25maWcpXHJcbiAgICB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIENhbWVyYSB0aGF0IHRoaXMgQ29udHJvbCB3aWxsIHVwZGF0ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLlNtb290aGVkS2V5Q29udHJvbCNjYW1lcmFcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNhbWVyYSA9IEdldFZhbHVlKGNvbmZpZywgJ2NhbWVyYScsIG51bGwpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgS2V5IHRvIGJlIHByZXNzZWQgdGhhdCB3aWxsIG1vdmUgdGhlIENhbWVyYSBsZWZ0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuU21vb3RoZWRLZXlDb250cm9sI2xlZnRcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5JbnB1dC5LZXlib2FyZC5LZXl9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubGVmdCA9IEdldFZhbHVlKGNvbmZpZywgJ2xlZnQnLCBudWxsKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIEtleSB0byBiZSBwcmVzc2VkIHRoYXQgd2lsbCBtb3ZlIHRoZSBDYW1lcmEgcmlnaHQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5Db250cm9scy5TbW9vdGhlZEtleUNvbnRyb2wjcmlnaHRcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5JbnB1dC5LZXlib2FyZC5LZXl9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucmlnaHQgPSBHZXRWYWx1ZShjb25maWcsICdyaWdodCcsIG51bGwpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgS2V5IHRvIGJlIHByZXNzZWQgdGhhdCB3aWxsIG1vdmUgdGhlIENhbWVyYSB1cC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLlNtb290aGVkS2V5Q29udHJvbCN1cFxyXG4gICAgICAgICAqIEB0eXBlIHs/UGhhc2VyLklucHV0LktleWJvYXJkLktleX1cclxuICAgICAgICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy51cCA9IEdldFZhbHVlKGNvbmZpZywgJ3VwJywgbnVsbCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBLZXkgdG8gYmUgcHJlc3NlZCB0aGF0IHdpbGwgbW92ZSB0aGUgQ2FtZXJhIGRvd24uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5Db250cm9scy5TbW9vdGhlZEtleUNvbnRyb2wjZG93blxyXG4gICAgICAgICAqIEB0eXBlIHs/UGhhc2VyLklucHV0LktleWJvYXJkLktleX1cclxuICAgICAgICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kb3duID0gR2V0VmFsdWUoY29uZmlnLCAnZG93bicsIG51bGwpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgS2V5IHRvIGJlIHByZXNzZWQgdGhhdCB3aWxsIHpvb20gdGhlIENhbWVyYSBpbi5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLlNtb290aGVkS2V5Q29udHJvbCN6b29tSW5cclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5JbnB1dC5LZXlib2FyZC5LZXl9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuem9vbUluID0gR2V0VmFsdWUoY29uZmlnLCAnem9vbUluJywgbnVsbCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBLZXkgdG8gYmUgcHJlc3NlZCB0aGF0IHdpbGwgem9vbSB0aGUgQ2FtZXJhIG91dC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLlNtb290aGVkS2V5Q29udHJvbCN6b29tT3V0XHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuSW5wdXQuS2V5Ym9hcmQuS2V5fVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnpvb21PdXQgPSBHZXRWYWx1ZShjb25maWcsICd6b29tT3V0JywgbnVsbCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBzcGVlZCBhdCB3aGljaCB0aGUgY2FtZXJhIHdpbGwgem9vbSBpZiB0aGUgYHpvb21JbmAgb3IgYHpvb21PdXRgIGtleXMgYXJlIHByZXNzZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5Db250cm9scy5TbW9vdGhlZEtleUNvbnRyb2wjem9vbVNwZWVkXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwLjAxXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy56b29tU3BlZWQgPSBHZXRWYWx1ZShjb25maWcsICd6b29tU3BlZWQnLCAwLjAxKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGhvcml6b250YWwgYWNjZWxlcmF0aW9uIHRoZSBjYW1lcmEgd2lsbCBtb3ZlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuU21vb3RoZWRLZXlDb250cm9sI2FjY2VsWFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWNjZWxYID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHZlcnRpY2FsIGFjY2VsZXJhdGlvbiB0aGUgY2FtZXJhIHdpbGwgbW92ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLlNtb290aGVkS2V5Q29udHJvbCNhY2NlbFlcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFjY2VsWSA9IDA7XHJcblxyXG4gICAgICAgIHZhciBhY2NlbCA9IEdldFZhbHVlKGNvbmZpZywgJ2FjY2VsZXJhdGlvbicsIG51bGwpO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGFjY2VsID09PSAnbnVtYmVyJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuYWNjZWxYID0gYWNjZWw7XHJcbiAgICAgICAgICAgIHRoaXMuYWNjZWxZID0gYWNjZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuYWNjZWxYID0gR2V0VmFsdWUoY29uZmlnLCAnYWNjZWxlcmF0aW9uLngnLCAwKTtcclxuICAgICAgICAgICAgdGhpcy5hY2NlbFkgPSBHZXRWYWx1ZShjb25maWcsICdhY2NlbGVyYXRpb24ueScsIDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGhvcml6b250YWwgZHJhZyBhcHBsaWVkIHRvIHRoZSBjYW1lcmEgd2hlbiBpdCBpcyBtb3ZpbmcuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5Db250cm9scy5TbW9vdGhlZEtleUNvbnRyb2wjZHJhZ1hcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRyYWdYID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHZlcnRpY2FsIGRyYWcgYXBwbGllZCB0byB0aGUgY2FtZXJhIHdoZW4gaXQgaXMgbW92aW5nLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuU21vb3RoZWRLZXlDb250cm9sI2RyYWdZXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kcmFnWSA9IDA7XHJcblxyXG4gICAgICAgIHZhciBkcmFnID0gR2V0VmFsdWUoY29uZmlnLCAnZHJhZycsIG51bGwpO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGRyYWcgPT09ICdudW1iZXInKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5kcmFnWCA9IGRyYWc7XHJcbiAgICAgICAgICAgIHRoaXMuZHJhZ1kgPSBkcmFnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmRyYWdYID0gR2V0VmFsdWUoY29uZmlnLCAnZHJhZy54JywgMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZHJhZ1kgPSBHZXRWYWx1ZShjb25maWcsICdkcmFnLnknLCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBtYXhpbXVtIGhvcml6b250YWwgc3BlZWQgdGhlIGNhbWVyYSB3aWxsIG1vdmUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5Db250cm9scy5TbW9vdGhlZEtleUNvbnRyb2wjbWF4U3BlZWRYXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tYXhTcGVlZFggPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbWF4aW11bSB2ZXJ0aWNhbCBzcGVlZCB0aGUgY2FtZXJhIHdpbGwgbW92ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLlNtb290aGVkS2V5Q29udHJvbCNtYXhTcGVlZFlcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1heFNwZWVkWSA9IDA7XHJcblxyXG4gICAgICAgIHZhciBtYXhTcGVlZCA9IEdldFZhbHVlKGNvbmZpZywgJ21heFNwZWVkJywgbnVsbCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgbWF4U3BlZWQgPT09ICdudW1iZXInKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5tYXhTcGVlZFggPSBtYXhTcGVlZDtcclxuICAgICAgICAgICAgdGhpcy5tYXhTcGVlZFkgPSBtYXhTcGVlZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5tYXhTcGVlZFggPSBHZXRWYWx1ZShjb25maWcsICdtYXhTcGVlZC54JywgMCk7XHJcbiAgICAgICAgICAgIHRoaXMubWF4U3BlZWRZID0gR2V0VmFsdWUoY29uZmlnLCAnbWF4U3BlZWQueScsIDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW50ZXJuYWwgcHJvcGVydHkgdG8gdHJhY2sgdGhlIHNwZWVkIG9mIHRoZSBjb250cm9sLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuU21vb3RoZWRLZXlDb250cm9sI19zcGVlZFhcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3NwZWVkWCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEludGVybmFsIHByb3BlcnR5IHRvIHRyYWNrIHRoZSBzcGVlZCBvZiB0aGUgY29udHJvbC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLlNtb290aGVkS2V5Q29udHJvbCNfc3BlZWRZXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9zcGVlZFkgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJbnRlcm5hbCBwcm9wZXJ0eSB0byB0cmFjayB0aGUgem9vbSBvZiB0aGUgY29udHJvbC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLlNtb290aGVkS2V5Q29udHJvbCNfem9vbVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fem9vbSA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgZmxhZyBjb250cm9sbGluZyBpZiB0aGUgQ29udHJvbHMgd2lsbCB1cGRhdGUgdGhlIENhbWVyYSBvciBub3QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ2FtZXJhcy5Db250cm9scy5TbW9vdGhlZEtleUNvbnRyb2wjYWN0aXZlXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5hY3RpdmUgPSAodGhpcy5jYW1lcmEgIT09IG51bGwpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0YXJ0cyB0aGUgS2V5IENvbnRyb2wgcnVubmluZywgcHJvdmlkaW5nIGl0IGhhcyBiZWVuIGxpbmtlZCB0byBhIGNhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLlNtb290aGVkS2V5Q29udHJvbCNzdGFydFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBLZXkgQ29udHJvbCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc3RhcnQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmUgPSAodGhpcy5jYW1lcmEgIT09IG51bGwpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9wcyB0aGlzIEtleSBDb250cm9sIGZyb20gcnVubmluZy4gQ2FsbCBgc3RhcnRgIHRvIHN0YXJ0IGl0IGFnYWluLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuU21vb3RoZWRLZXlDb250cm9sI3N0b3BcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgS2V5IENvbnRyb2wgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHN0b3A6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmluZHMgdGhpcyBLZXkgQ29udHJvbCB0byBhIGNhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLlNtb290aGVkS2V5Q29udHJvbCNzZXRDYW1lcmFcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBjYW1lcmEgdG8gYmluZCB0aGlzIEtleSBDb250cm9sIHRvLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgS2V5IENvbnRyb2wgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldENhbWVyYTogZnVuY3Rpb24gKGNhbWVyYSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNhbWVyYSA9IGNhbWVyYTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXBwbGllcyB0aGUgcmVzdWx0cyBvZiBwcmVzc2luZyB0aGUgY29udHJvbCBrZXlzIHRvIHRoZSBDYW1lcmEuXHJcbiAgICAgKlxyXG4gICAgICogWW91IG11c3QgY2FsbCB0aGlzIGV2ZXJ5IHN0ZXAsIGl0IGlzIG5vdCBjYWxsZWQgYXV0b21hdGljYWxseS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DYW1lcmFzLkNvbnRyb2xzLlNtb290aGVkS2V5Q29udHJvbCN1cGRhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWx0YSAtIFRoZSBkZWx0YSB0aW1lIGluIG1zIHNpbmNlIHRoZSBsYXN0IGZyYW1lLiBUaGlzIGlzIGEgc21vb3RoZWQgYW5kIGNhcHBlZCB2YWx1ZSBiYXNlZCBvbiB0aGUgRlBTIHJhdGUuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZTogZnVuY3Rpb24gKGRlbHRhKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5hY3RpdmUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZGVsdGEgPT09IHVuZGVmaW5lZCkgeyBkZWx0YSA9IDE7IH1cclxuXHJcbiAgICAgICAgdmFyIGNhbSA9IHRoaXMuY2FtZXJhO1xyXG5cclxuICAgICAgICAvLyAgQXBwbHkgRGVjZWxlcmF0aW9uXHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9zcGVlZFggPiAwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fc3BlZWRYIC09IHRoaXMuZHJhZ1ggKiBkZWx0YTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9zcGVlZFggPCAwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zcGVlZFggPSAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX3NwZWVkWCA8IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9zcGVlZFggKz0gdGhpcy5kcmFnWCAqIGRlbHRhO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX3NwZWVkWCA+IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3NwZWVkWCA9IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9zcGVlZFkgPiAwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fc3BlZWRZIC09IHRoaXMuZHJhZ1kgKiBkZWx0YTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9zcGVlZFkgPCAwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zcGVlZFkgPSAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX3NwZWVkWSA8IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9zcGVlZFkgKz0gdGhpcy5kcmFnWSAqIGRlbHRhO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX3NwZWVkWSA+IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3NwZWVkWSA9IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBDaGVjayBmb3Iga2V5c1xyXG5cclxuICAgICAgICBpZiAodGhpcy51cCAmJiB0aGlzLnVwLmlzRG93bilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NwZWVkWSArPSB0aGlzLmFjY2VsWTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9zcGVlZFkgPiB0aGlzLm1heFNwZWVkWSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc3BlZWRZID0gdGhpcy5tYXhTcGVlZFk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5kb3duICYmIHRoaXMuZG93bi5pc0Rvd24pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9zcGVlZFkgLT0gdGhpcy5hY2NlbFk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fc3BlZWRZIDwgLXRoaXMubWF4U3BlZWRZKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zcGVlZFkgPSAtdGhpcy5tYXhTcGVlZFk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmxlZnQgJiYgdGhpcy5sZWZ0LmlzRG93bilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NwZWVkWCArPSB0aGlzLmFjY2VsWDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9zcGVlZFggPiB0aGlzLm1heFNwZWVkWClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc3BlZWRYID0gdGhpcy5tYXhTcGVlZFg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5yaWdodCAmJiB0aGlzLnJpZ2h0LmlzRG93bilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NwZWVkWCAtPSB0aGlzLmFjY2VsWDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9zcGVlZFggPCAtdGhpcy5tYXhTcGVlZFgpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3NwZWVkWCA9IC10aGlzLm1heFNwZWVkWDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gIENhbWVyYSB6b29tXHJcblxyXG4gICAgICAgIGlmICh0aGlzLnpvb21JbiAmJiB0aGlzLnpvb21Jbi5pc0Rvd24pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl96b29tID0gLXRoaXMuem9vbVNwZWVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLnpvb21PdXQgJiYgdGhpcy56b29tT3V0LmlzRG93bilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3pvb20gPSB0aGlzLnpvb21TcGVlZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fem9vbSA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgQXBwbHkgdG8gQ2FtZXJhXHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9zcGVlZFggIT09IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjYW0uc2Nyb2xsWCAtPSAoKHRoaXMuX3NwZWVkWCAqIGRlbHRhKSB8IDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX3NwZWVkWSAhPT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNhbS5zY3JvbGxZIC09ICgodGhpcy5fc3BlZWRZICogZGVsdGEpIHwgMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fem9vbSAhPT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNhbS56b29tICs9IHRoaXMuX3pvb207XHJcblxyXG4gICAgICAgICAgICBpZiAoY2FtLnpvb20gPCAwLjAwMSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY2FtLnpvb20gPSAwLjAwMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXN0cm95cyB0aGlzIEtleSBDb250cm9sLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHMuU21vb3RoZWRLZXlDb250cm9sI2Rlc3Ryb3lcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY2FtZXJhID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLnJpZ2h0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLnVwID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRvd24gPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLnpvb21JbiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy56b29tT3V0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTbW9vdGhlZEtleUNvbnRyb2w7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkNhbWVyYXMuQ29udHJvbHNcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBGaXhlZEtleUNvbnRyb2w6IHJlcXVpcmUoJy4vRml4ZWRLZXlDb250cm9sJyksXHJcbiAgICBTbW9vdGhlZEtleUNvbnRyb2w6IHJlcXVpcmUoJy4vU21vb3RoZWRLZXlDb250cm9sJylcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkNhbWVyYXNcclxuICovXHJcblxyXG4vKipcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuVHlwZXMuQ2FtZXJhc1xyXG4gKi9cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIENvbnRyb2xzOiByZXF1aXJlKCcuL2NvbnRyb2xzJyksXHJcbiAgICBTY2VuZTJEOiByZXF1aXJlKCcuLzJkJylcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEdsb2JhbCBjb25zdGFudHMuXHJcbiAqIFxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5cclxudmFyIENPTlNUID0ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGhhc2VyIFJlbGVhc2UgVmVyc2lvblxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuVkVSU0lPTlxyXG4gICAgICogQGNvbnN0XHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIFZFUlNJT046ICczLjIzLjAnLFxyXG5cclxuICAgIEJsZW5kTW9kZXM6IHJlcXVpcmUoJy4vcmVuZGVyZXIvQmxlbmRNb2RlcycpLFxyXG5cclxuICAgIFNjYWxlTW9kZXM6IHJlcXVpcmUoJy4vcmVuZGVyZXIvU2NhbGVNb2RlcycpLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQVVUTyBEZXRlY3QgUmVuZGVyZXIuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5BVVRPXHJcbiAgICAgKiBAY29uc3RcclxuICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIEFVVE86IDAsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYW52YXMgUmVuZGVyZXIuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5DQU5WQVNcclxuICAgICAqIEBjb25zdFxyXG4gICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgQ0FOVkFTOiAxLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2ViR0wgUmVuZGVyZXIuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5XRUJHTFxyXG4gICAgICogQGNvbnN0XHJcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBXRUJHTDogMixcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlYWRsZXNzIFJlbmRlcmVyLlxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuSEVBRExFU1NcclxuICAgICAqIEBjb25zdFxyXG4gICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgSEVBRExFU1M6IDMsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbiBQaGFzZXIgdGhlIHZhbHVlIC0xIG1lYW5zICdmb3JldmVyJyBpbiBsb3RzIG9mIGNhc2VzLCB0aGlzIGNvbnN0IGFsbG93cyB5b3UgdG8gdXNlIGl0IGluc3RlYWRcclxuICAgICAqIHRvIGhlbHAgeW91IHJlbWVtYmVyIHdoYXQgdGhlIHZhbHVlIGlzIGRvaW5nIGluIHlvdXIgY29kZS5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkZPUkVWRVJcclxuICAgICAqIEBjb25zdFxyXG4gICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgRk9SRVZFUjogLTEsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXJlY3Rpb24gY29uc3RhbnQuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5OT05FXHJcbiAgICAgKiBAY29uc3RcclxuICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIE5PTkU6IDQsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXJlY3Rpb24gY29uc3RhbnQuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5VUFxyXG4gICAgICogQGNvbnN0XHJcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBVUDogNSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpcmVjdGlvbiBjb25zdGFudC5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkRPV05cclxuICAgICAqIEBjb25zdFxyXG4gICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgRE9XTjogNixcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpcmVjdGlvbiBjb25zdGFudC5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkxFRlRcclxuICAgICAqIEBjb25zdFxyXG4gICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgTEVGVDogNyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERpcmVjdGlvbiBjb25zdGFudC5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLlJJR0hUXHJcbiAgICAgKiBAY29uc3RcclxuICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIFJJR0hUOiA4XHJcblxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDT05TVDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi91dGlscy9DbGFzcycpO1xyXG52YXIgQ09OU1QgPSByZXF1aXJlKCcuLi9jb25zdCcpO1xyXG52YXIgRGV2aWNlID0gcmVxdWlyZSgnLi4vZGV2aWNlJyk7XHJcbnZhciBHZXRGYXN0VmFsdWUgPSByZXF1aXJlKCcuLi91dGlscy9vYmplY3QvR2V0RmFzdFZhbHVlJyk7XHJcbnZhciBHZXRWYWx1ZSA9IHJlcXVpcmUoJy4uL3V0aWxzL29iamVjdC9HZXRWYWx1ZScpO1xyXG52YXIgSXNQbGFpbk9iamVjdCA9IHJlcXVpcmUoJy4uL3V0aWxzL29iamVjdC9Jc1BsYWluT2JqZWN0Jyk7XHJcbnZhciBQaGFzZXJNYXRoID0gcmVxdWlyZSgnLi4vbWF0aC8nKTtcclxudmFyIE5PT1AgPSByZXF1aXJlKCcuLi91dGlscy9OT09QJyk7XHJcbnZhciBEZWZhdWx0UGx1Z2lucyA9IHJlcXVpcmUoJy4uL3BsdWdpbnMvRGVmYXVsdFBsdWdpbnMnKTtcclxudmFyIFZhbHVlVG9Db2xvciA9IHJlcXVpcmUoJy4uL2Rpc3BsYXkvY29sb3IvVmFsdWVUb0NvbG9yJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBUaGUgYWN0aXZlIGdhbWUgY29uZmlndXJhdGlvbiBzZXR0aW5ncywgcGFyc2VkIGZyb20gYSB7QGxpbmsgUGhhc2VyLlR5cGVzLkNvcmUuR2FtZUNvbmZpZ30gb2JqZWN0LlxyXG4gKlxyXG4gKiBAY2xhc3MgQ29uZmlnXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuQ29yZVxyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkNvcmUuR2FtZUNvbmZpZ30gW0dhbWVDb25maWddIC0gVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB5b3VyIFBoYXNlciBHYW1lIGluc3RhbmNlLlxyXG4gKlxyXG4gKiBAc2VlIFBoYXNlci5HYW1lI2NvbmZpZ1xyXG4gKi9cclxudmFyIENvbmZpZyA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBDb25maWcgKGNvbmZpZylcclxuICAgIHtcclxuICAgICAgICBpZiAoY29uZmlnID09PSB1bmRlZmluZWQpIHsgY29uZmlnID0ge307IH1cclxuXHJcbiAgICAgICAgdmFyIGRlZmF1bHRCYW5uZXJDb2xvciA9IFtcclxuICAgICAgICAgICAgJyNmZjAwMDAnLFxyXG4gICAgICAgICAgICAnI2ZmZmYwMCcsXHJcbiAgICAgICAgICAgICcjMDBmZjAwJyxcclxuICAgICAgICAgICAgJyMwMGZmZmYnLFxyXG4gICAgICAgICAgICAnIzAwMDAwMCdcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICB2YXIgZGVmYXVsdEJhbm5lclRleHRDb2xvciA9ICcjZmZmZmZmJztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHsoaW50ZWdlcnxzdHJpbmcpfSBQaGFzZXIuQ29yZS5Db25maWcjd2lkdGggLSBUaGUgd2lkdGggb2YgdGhlIHVuZGVybHlpbmcgY2FudmFzLCBpbiBwaXhlbHMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy53aWR0aCA9IEdldFZhbHVlKGNvbmZpZywgJ3dpZHRoJywgMTAyNCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7KGludGVnZXJ8c3RyaW5nKX0gUGhhc2VyLkNvcmUuQ29uZmlnI2hlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHVuZGVybHlpbmcgY2FudmFzLCBpbiBwaXhlbHMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5oZWlnaHQgPSBHZXRWYWx1ZShjb25maWcsICdoZWlnaHQnLCA3NjgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3QgeyhQaGFzZXIuU2NhbGUuWm9vbVR5cGV8aW50ZWdlcil9IFBoYXNlci5Db3JlLkNvbmZpZyN6b29tIC0gVGhlIHpvb20gZmFjdG9yLCBhcyB1c2VkIGJ5IHRoZSBTY2FsZSBNYW5hZ2VyLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuem9vbSA9IEdldFZhbHVlKGNvbmZpZywgJ3pvb20nLCAxKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtudW1iZXJ9IFBoYXNlci5Db3JlLkNvbmZpZyNyZXNvbHV0aW9uIC0gVGhlIGNhbnZhcyBkZXZpY2UgcGl4ZWwgcmVzb2x1dGlvbi4gQ3VycmVudGx5IHVuLXVzZWQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yZXNvbHV0aW9uID0gR2V0VmFsdWUoY29uZmlnLCAncmVzb2x1dGlvbicsIDEpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qgez8qfSBQaGFzZXIuQ29yZS5Db25maWcjcGFyZW50IC0gQSBwYXJlbnQgRE9NIGVsZW1lbnQgaW50byB3aGljaCB0aGUgY2FudmFzIGNyZWF0ZWQgYnkgdGhlIHJlbmRlcmVyIHdpbGwgYmUgaW5qZWN0ZWQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wYXJlbnQgPSBHZXRWYWx1ZShjb25maWcsICdwYXJlbnQnLCB1bmRlZmluZWQpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge1BoYXNlci5TY2FsZS5TY2FsZU1vZGVUeXBlfSBQaGFzZXIuQ29yZS5Db25maWcjc2NhbGVNb2RlIC0gVGhlIHNjYWxlIG1vZGUgYXMgdXNlZCBieSB0aGUgU2NhbGUgTWFuYWdlci4gVGhlIGRlZmF1bHQgaXMgemVybywgd2hpY2ggaXMgbm8gc2NhbGluZy5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjYWxlTW9kZSA9IEdldFZhbHVlKGNvbmZpZywgJ3NjYWxlTW9kZScsIDApO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge2Jvb2xlYW59IFBoYXNlci5Db3JlLkNvbmZpZyNleHBhbmRQYXJlbnQgLSBJcyB0aGUgU2NhbGUgTWFuYWdlciBhbGxvd2VkIHRvIGFkanVzdCB0aGUgQ1NTIGhlaWdodCBwcm9wZXJ0eSBvZiB0aGUgcGFyZW50IHRvIGJlIDEwMCU/XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5leHBhbmRQYXJlbnQgPSBHZXRWYWx1ZShjb25maWcsICdleHBhbmRQYXJlbnQnLCB0cnVlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtpbnRlZ2VyfSBQaGFzZXIuQ29yZS5Db25maWcjYXV0b1JvdW5kIC0gQXV0b21hdGljYWxseSByb3VuZCB0aGUgZGlzcGxheSBhbmQgc3R5bGUgc2l6ZXMgb2YgdGhlIGNhbnZhcy4gVGhpcyBjYW4gaGVscCB3aXRoIHBlcmZvcm1hbmNlIGluIGxvd2VyLXBvd2VyZWQgZGV2aWNlcy5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmF1dG9Sb3VuZCA9IEdldFZhbHVlKGNvbmZpZywgJ2F1dG9Sb3VuZCcsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtQaGFzZXIuU2NhbGUuQ2VudGVyVHlwZX0gUGhhc2VyLkNvcmUuQ29uZmlnI2F1dG9DZW50ZXIgLSBBdXRvbWF0aWNhbGx5IGNlbnRlciB0aGUgY2FudmFzIHdpdGhpbiB0aGUgcGFyZW50P1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYXV0b0NlbnRlciA9IEdldFZhbHVlKGNvbmZpZywgJ2F1dG9DZW50ZXInLCAwKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtpbnRlZ2VyfSBQaGFzZXIuQ29yZS5Db25maWcjcmVzaXplSW50ZXJ2YWwgLSBIb3cgbWFueSBtcyBzaG91bGQgZWxhcHNlIGJlZm9yZSBjaGVja2luZyBpZiB0aGUgYnJvd3NlciBzaXplIGhhcyBjaGFuZ2VkP1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucmVzaXplSW50ZXJ2YWwgPSBHZXRWYWx1ZShjb25maWcsICdyZXNpemVJbnRlcnZhbCcsIDUwMCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7PyhIVE1MRWxlbWVudHxzdHJpbmcpfSBQaGFzZXIuQ29yZS5Db25maWcjZnVsbHNjcmVlblRhcmdldCAtIFRoZSBET00gZWxlbWVudCB0aGF0IHdpbGwgYmUgc2VudCBpbnRvIGZ1bGwgc2NyZWVuIG1vZGUsIG9yIGl0cyBgaWRgLiBJZiB1bmRlZmluZWQgUGhhc2VyIHdpbGwgY3JlYXRlIGl0cyBvd24gZGl2IGFuZCBpbnNlcnQgdGhlIGNhbnZhcyBpbnRvIGl0IHdoZW4gZW50ZXJpbmcgZnVsbHNjcmVlbiBtb2RlLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZnVsbHNjcmVlblRhcmdldCA9IEdldFZhbHVlKGNvbmZpZywgJ2Z1bGxzY3JlZW5UYXJnZXQnLCBudWxsKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtpbnRlZ2VyfSBQaGFzZXIuQ29yZS5Db25maWcjbWluV2lkdGggLSBUaGUgbWluaW11bSB3aWR0aCwgaW4gcGl4ZWxzLCB0aGUgY2FudmFzIHdpbGwgc2NhbGUgZG93biB0by4gQSB2YWx1ZSBvZiB6ZXJvIG1lYW5zIG5vIG1pbmltdW0uXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5taW5XaWR0aCA9IEdldFZhbHVlKGNvbmZpZywgJ21pbldpZHRoJywgMCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7aW50ZWdlcn0gUGhhc2VyLkNvcmUuQ29uZmlnI21heFdpZHRoIC0gVGhlIG1heGltdW0gd2lkdGgsIGluIHBpeGVscywgdGhlIGNhbnZhcyB3aWxsIHNjYWxlIHVwIHRvLiBBIHZhbHVlIG9mIHplcm8gbWVhbnMgbm8gbWF4aW11bS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1heFdpZHRoID0gR2V0VmFsdWUoY29uZmlnLCAnbWF4V2lkdGgnLCAwKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtpbnRlZ2VyfSBQaGFzZXIuQ29yZS5Db25maWcjbWluSGVpZ2h0IC0gVGhlIG1pbmltdW0gaGVpZ2h0LCBpbiBwaXhlbHMsIHRoZSBjYW52YXMgd2lsbCBzY2FsZSBkb3duIHRvLiBBIHZhbHVlIG9mIHplcm8gbWVhbnMgbm8gbWluaW11bS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1pbkhlaWdodCA9IEdldFZhbHVlKGNvbmZpZywgJ21pbkhlaWdodCcsIDApO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge2ludGVnZXJ9IFBoYXNlci5Db3JlLkNvbmZpZyNtYXhIZWlnaHQgLSBUaGUgbWF4aW11bSBoZWlnaHQsIGluIHBpeGVscywgdGhlIGNhbnZhcyB3aWxsIHNjYWxlIHVwIHRvLiBBIHZhbHVlIG9mIHplcm8gbWVhbnMgbm8gbWF4aW11bS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1heEhlaWdodCA9IEdldFZhbHVlKGNvbmZpZywgJ21heEhlaWdodCcsIDApO1xyXG5cclxuICAgICAgICAvLyAgU2NhbGUgTWFuYWdlciAtIEFueXRoaW5nIHNldCBpbiBoZXJlIG92ZXItcmlkZXMgYW55dGhpbmcgc2V0IGFib3ZlXHJcblxyXG4gICAgICAgIHZhciBzY2FsZUNvbmZpZyA9IEdldFZhbHVlKGNvbmZpZywgJ3NjYWxlJywgbnVsbCk7XHJcblxyXG4gICAgICAgIGlmIChzY2FsZUNvbmZpZylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMud2lkdGggPSBHZXRWYWx1ZShzY2FsZUNvbmZpZywgJ3dpZHRoJywgdGhpcy53aWR0aCk7XHJcbiAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gR2V0VmFsdWUoc2NhbGVDb25maWcsICdoZWlnaHQnLCB0aGlzLmhlaWdodCk7XHJcbiAgICAgICAgICAgIHRoaXMuem9vbSA9IEdldFZhbHVlKHNjYWxlQ29uZmlnLCAnem9vbScsIHRoaXMuem9vbSk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzb2x1dGlvbiA9IEdldFZhbHVlKHNjYWxlQ29uZmlnLCAncmVzb2x1dGlvbicsIHRoaXMucmVzb2x1dGlvbik7XHJcbiAgICAgICAgICAgIHRoaXMucGFyZW50ID0gR2V0VmFsdWUoc2NhbGVDb25maWcsICdwYXJlbnQnLCB0aGlzLnBhcmVudCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2NhbGVNb2RlID0gR2V0VmFsdWUoc2NhbGVDb25maWcsICdtb2RlJywgdGhpcy5zY2FsZU1vZGUpO1xyXG4gICAgICAgICAgICB0aGlzLmV4cGFuZFBhcmVudCA9IEdldFZhbHVlKHNjYWxlQ29uZmlnLCAnZXhwYW5kUGFyZW50JywgdGhpcy5leHBhbmRQYXJlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLmF1dG9Sb3VuZCA9IEdldFZhbHVlKHNjYWxlQ29uZmlnLCAnYXV0b1JvdW5kJywgdGhpcy5hdXRvUm91bmQpO1xyXG4gICAgICAgICAgICB0aGlzLmF1dG9DZW50ZXIgPSBHZXRWYWx1ZShzY2FsZUNvbmZpZywgJ2F1dG9DZW50ZXInLCB0aGlzLmF1dG9DZW50ZXIpO1xyXG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUludGVydmFsID0gR2V0VmFsdWUoc2NhbGVDb25maWcsICdyZXNpemVJbnRlcnZhbCcsIHRoaXMucmVzaXplSW50ZXJ2YWwpO1xyXG4gICAgICAgICAgICB0aGlzLmZ1bGxzY3JlZW5UYXJnZXQgPSBHZXRWYWx1ZShzY2FsZUNvbmZpZywgJ2Z1bGxzY3JlZW5UYXJnZXQnLCB0aGlzLmZ1bGxzY3JlZW5UYXJnZXQpO1xyXG4gICAgICAgICAgICB0aGlzLm1pbldpZHRoID0gR2V0VmFsdWUoc2NhbGVDb25maWcsICdtaW4ud2lkdGgnLCB0aGlzLm1pbldpZHRoKTtcclxuICAgICAgICAgICAgdGhpcy5tYXhXaWR0aCA9IEdldFZhbHVlKHNjYWxlQ29uZmlnLCAnbWF4LndpZHRoJywgdGhpcy5tYXhXaWR0aCk7XHJcbiAgICAgICAgICAgIHRoaXMubWluSGVpZ2h0ID0gR2V0VmFsdWUoc2NhbGVDb25maWcsICdtaW4uaGVpZ2h0JywgdGhpcy5taW5IZWlnaHQpO1xyXG4gICAgICAgICAgICB0aGlzLm1heEhlaWdodCA9IEdldFZhbHVlKHNjYWxlQ29uZmlnLCAnbWF4LmhlaWdodCcsIHRoaXMubWF4SGVpZ2h0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7bnVtYmVyfSBQaGFzZXIuQ29yZS5Db25maWcjcmVuZGVyVHlwZSAtIEZvcmNlIFBoYXNlciB0byB1c2UgYSBzcGVjaWZpYyByZW5kZXJlci4gQ2FuIGJlIGBDT05TVC5DQU5WQVNgLCBgQ09OU1QuV0VCR0xgLCBgQ09OU1QuSEVBRExFU1NgIG9yIGBDT05TVC5BVVRPYCAoZGVmYXVsdClcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJlbmRlclR5cGUgPSBHZXRWYWx1ZShjb25maWcsICd0eXBlJywgQ09OU1QuQVVUTyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7P0hUTUxDYW52YXNFbGVtZW50fSBQaGFzZXIuQ29yZS5Db25maWcjY2FudmFzIC0gRm9yY2UgUGhhc2VyIHRvIHVzZSB5b3VyIG93biBDYW52YXMgZWxlbWVudCBpbnN0ZWFkIG9mIGNyZWF0aW5nIG9uZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNhbnZhcyA9IEdldFZhbHVlKGNvbmZpZywgJ2NhbnZhcycsIG51bGwpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qgez8oQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfFdlYkdMUmVuZGVyaW5nQ29udGV4dCl9IFBoYXNlci5Db3JlLkNvbmZpZyNjb250ZXh0IC0gRm9yY2UgUGhhc2VyIHRvIHVzZSB5b3VyIG93biBDYW52YXMgY29udGV4dCBpbnN0ZWFkIG9mIGNyZWF0aW5nIG9uZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNvbnRleHQgPSBHZXRWYWx1ZShjb25maWcsICdjb250ZXh0JywgbnVsbCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7P3N0cmluZ30gUGhhc2VyLkNvcmUuQ29uZmlnI2NhbnZhc1N0eWxlIC0gT3B0aW9uYWwgQ1NTIGF0dHJpYnV0ZXMgdG8gYmUgc2V0IG9uIHRoZSBjYW52YXMgb2JqZWN0IGNyZWF0ZWQgYnkgdGhlIHJlbmRlcmVyLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY2FudmFzU3R5bGUgPSBHZXRWYWx1ZShjb25maWcsICdjYW52YXNTdHlsZScsIG51bGwpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge2Jvb2xlYW59IFBoYXNlci5Db3JlLkNvbmZpZyNjdXN0b21FbnZpcm9ubWVudCAtIElzIFBoYXNlciBydW5uaW5nIHVuZGVyIGEgY3VzdG9tIChub24tbmF0aXZlIHdlYikgZW52aXJvbm1lbnQ/IElmIHNvLCBzZXQgdGhpcyB0byBgdHJ1ZWAgdG8gc2tpcCBpbnRlcm5hbCBGZWF0dXJlIGRldGVjdGlvbi4gSWYgYHRydWVgIHRoZSBgcmVuZGVyVHlwZWAgY2Fubm90IGJlIGxlZnQgYXMgYEFVVE9gLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY3VzdG9tRW52aXJvbm1lbnQgPSBHZXRWYWx1ZShjb25maWcsICdjdXN0b21FbnZpcm9ubWVudCcsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHs/b2JqZWN0fSBQaGFzZXIuQ29yZS5Db25maWcjc2NlbmVDb25maWcgLSBUaGUgZGVmYXVsdCBTY2VuZSBjb25maWd1cmF0aW9uIG9iamVjdC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjZW5lQ29uZmlnID0gR2V0VmFsdWUoY29uZmlnLCAnc2NlbmUnLCBudWxsKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtzdHJpbmdbXX0gUGhhc2VyLkNvcmUuQ29uZmlnI3NlZWQgLSBBIHNlZWQgd2hpY2ggdGhlIFJhbmRvbSBEYXRhIEdlbmVyYXRvciB3aWxsIHVzZS4gSWYgbm90IGdpdmVuLCBhIGR5bmFtaWMgc2VlZCBiYXNlZCBvbiB0aGUgdGltZSBpcyB1c2VkLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2VlZCA9IEdldFZhbHVlKGNvbmZpZywgJ3NlZWQnLCBbIChEYXRlLm5vdygpICogTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoKSBdKTtcclxuXHJcbiAgICAgICAgUGhhc2VyTWF0aC5STkQgPSBuZXcgUGhhc2VyTWF0aC5SYW5kb21EYXRhR2VuZXJhdG9yKHRoaXMuc2VlZCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7c3RyaW5nfSBQaGFzZXIuQ29yZS5Db25maWcjZ2FtZVRpdGxlIC0gVGhlIHRpdGxlIG9mIHRoZSBnYW1lLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZ2FtZVRpdGxlID0gR2V0VmFsdWUoY29uZmlnLCAndGl0bGUnLCAnJyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7c3RyaW5nfSBQaGFzZXIuQ29yZS5Db25maWcjZ2FtZVVSTCAtIFRoZSBVUkwgb2YgdGhlIGdhbWUuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5nYW1lVVJMID0gR2V0VmFsdWUoY29uZmlnLCAndXJsJywgJ2h0dHBzOi8vcGhhc2VyLmlvJyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7c3RyaW5nfSBQaGFzZXIuQ29yZS5Db25maWcjZ2FtZVZlcnNpb24gLSBUaGUgdmVyc2lvbiBvZiB0aGUgZ2FtZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmdhbWVWZXJzaW9uID0gR2V0VmFsdWUoY29uZmlnLCAndmVyc2lvbicsICcnKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtib29sZWFufSBQaGFzZXIuQ29yZS5Db25maWcjYXV0b0ZvY3VzIC0gSWYgYHRydWVgIHRoZSB3aW5kb3cgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGdpdmVuIGZvY3VzIGltbWVkaWF0ZWx5IGFuZCBvbiBhbnkgZnV0dXJlIG1vdXNlZG93biBldmVudC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmF1dG9Gb2N1cyA9IEdldFZhbHVlKGNvbmZpZywgJ2F1dG9Gb2N1cycsIHRydWUpO1xyXG5cclxuICAgICAgICAvLyAgRE9NIEVsZW1lbnQgQ29udGFpbmVyXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7P2Jvb2xlYW59IFBoYXNlci5Db3JlLkNvbmZpZyNkb21DcmVhdGVDb250YWluZXIgLSBTaG91bGQgdGhlIGdhbWUgY3JlYXRlIGEgZGl2IGVsZW1lbnQgdG8gYWN0IGFzIGEgRE9NIENvbnRhaW5lcj8gT25seSBlbmFibGUgaWYgeW91J3JlIHVzaW5nIERPTSBFbGVtZW50IG9iamVjdHMuIFlvdSBtdXN0IHByb3ZpZGUgYSBwYXJlbnQgb2JqZWN0IGlmIHlvdSB1c2UgdGhpcyBmZWF0dXJlLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZG9tQ3JlYXRlQ29udGFpbmVyID0gR2V0VmFsdWUoY29uZmlnLCAnZG9tLmNyZWF0ZUNvbnRhaW5lcicsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHs/Ym9vbGVhbn0gUGhhc2VyLkNvcmUuQ29uZmlnI2RvbUJlaGluZENhbnZhcyAtIFNob3VsZCB0aGUgRE9NIENvbnRhaW5lciB0aGF0IGlzIGNyZWF0ZWQgKGlmIGBkb20uY3JlYXRlQ29udGFpbmVyYCBpcyB0cnVlKSBiZSBwb3NpdGlvbmVkIGJlaGluZCAodHJ1ZSkgb3Igb3ZlciB0aGUgdG9wIChmYWxzZSwgdGhlIGRlZmF1bHQpIG9mIHRoZSBnYW1lIGNhbnZhcz9cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRvbUJlaGluZENhbnZhcyA9IEdldFZhbHVlKGNvbmZpZywgJ2RvbS5iZWhpbmRDYW52YXMnLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIC8vICBJbnB1dFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge2Jvb2xlYW59IFBoYXNlci5Db3JlLkNvbmZpZyNpbnB1dEtleWJvYXJkIC0gRW5hYmxlIHRoZSBLZXlib2FyZCBQbHVnaW4uIFRoaXMgY2FuIGJlIGRpc2FibGVkIGluIGdhbWVzIHRoYXQgZG9uJ3QgbmVlZCBrZXlib2FyZCBpbnB1dC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlucHV0S2V5Ym9hcmQgPSBHZXRWYWx1ZShjb25maWcsICdpbnB1dC5rZXlib2FyZCcsIHRydWUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qgeyp9IFBoYXNlci5Db3JlLkNvbmZpZyNpbnB1dEtleWJvYXJkRXZlbnRUYXJnZXQgLSBUaGUgRE9NIFRhcmdldCB0byBsaXN0ZW4gZm9yIGtleWJvYXJkIGV2ZW50cyBvbi4gRGVmYXVsdHMgdG8gYHdpbmRvd2AgaWYgbm90IHNwZWNpZmllZC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlucHV0S2V5Ym9hcmRFdmVudFRhcmdldCA9IEdldFZhbHVlKGNvbmZpZywgJ2lucHV0LmtleWJvYXJkLnRhcmdldCcsIHdpbmRvdyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7P2ludGVnZXJbXX0gUGhhc2VyLkNvcmUuQ29uZmlnI2lucHV0S2V5Ym9hcmRDYXB0dXJlIC0gYHByZXZlbnREZWZhdWx0YCB3aWxsIGJlIGNhbGxlZCBvbiBldmVyeSBub24tbW9kaWZpZWQga2V5IHdoaWNoIGhhcyBhIGtleSBjb2RlIGluIHRoaXMgYXJyYXkuIEJ5IGRlZmF1bHQsIGl0IGlzIGVtcHR5LlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaW5wdXRLZXlib2FyZENhcHR1cmUgPSBHZXRWYWx1ZShjb25maWcsICdpbnB1dC5rZXlib2FyZC5jYXB0dXJlJywgW10pO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qgeyhib29sZWFufG9iamVjdCl9IFBoYXNlci5Db3JlLkNvbmZpZyNpbnB1dE1vdXNlIC0gRW5hYmxlIHRoZSBNb3VzZSBQbHVnaW4uIFRoaXMgY2FuIGJlIGRpc2FibGVkIGluIGdhbWVzIHRoYXQgZG9uJ3QgbmVlZCBtb3VzZSBpbnB1dC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlucHV0TW91c2UgPSBHZXRWYWx1ZShjb25maWcsICdpbnB1dC5tb3VzZScsIHRydWUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qgez8qfSBQaGFzZXIuQ29yZS5Db25maWcjaW5wdXRNb3VzZUV2ZW50VGFyZ2V0IC0gVGhlIERPTSBUYXJnZXQgdG8gbGlzdGVuIGZvciBtb3VzZSBldmVudHMgb24uIERlZmF1bHRzIHRvIHRoZSBnYW1lIGNhbnZhcyBpZiBub3Qgc3BlY2lmaWVkLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaW5wdXRNb3VzZUV2ZW50VGFyZ2V0ID0gR2V0VmFsdWUoY29uZmlnLCAnaW5wdXQubW91c2UudGFyZ2V0JywgbnVsbCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7Ym9vbGVhbn0gUGhhc2VyLkNvcmUuQ29uZmlnI2lucHV0TW91c2VDYXB0dXJlIC0gU2hvdWxkIG1vdXNlIGV2ZW50cyBiZSBjYXB0dXJlZD8gSS5lLiBoYXZlIHByZXZlbnQgZGVmYXVsdCBjYWxsZWQgb24gdGhlbS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlucHV0TW91c2VDYXB0dXJlID0gR2V0VmFsdWUoY29uZmlnLCAnaW5wdXQubW91c2UuY2FwdHVyZScsIHRydWUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge2Jvb2xlYW59IFBoYXNlci5Db3JlLkNvbmZpZyNpbnB1dFRvdWNoIC0gRW5hYmxlIHRoZSBUb3VjaCBQbHVnaW4uIFRoaXMgY2FuIGJlIGRpc2FibGVkIGluIGdhbWVzIHRoYXQgZG9uJ3QgbmVlZCB0b3VjaCBpbnB1dC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlucHV0VG91Y2ggPSBHZXRWYWx1ZShjb25maWcsICdpbnB1dC50b3VjaCcsIERldmljZS5pbnB1dC50b3VjaCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7Pyp9IFBoYXNlci5Db3JlLkNvbmZpZyNpbnB1dFRvdWNoRXZlbnRUYXJnZXQgLSBUaGUgRE9NIFRhcmdldCB0byBsaXN0ZW4gZm9yIHRvdWNoIGV2ZW50cyBvbi4gRGVmYXVsdHMgdG8gdGhlIGdhbWUgY2FudmFzIGlmIG5vdCBzcGVjaWZpZWQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pbnB1dFRvdWNoRXZlbnRUYXJnZXQgPSBHZXRWYWx1ZShjb25maWcsICdpbnB1dC50b3VjaC50YXJnZXQnLCBudWxsKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtib29sZWFufSBQaGFzZXIuQ29yZS5Db25maWcjaW5wdXRUb3VjaENhcHR1cmUgLSBTaG91bGQgdG91Y2ggZXZlbnRzIGJlIGNhcHR1cmVkPyBJLmUuIGhhdmUgcHJldmVudCBkZWZhdWx0IGNhbGxlZCBvbiB0aGVtLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaW5wdXRUb3VjaENhcHR1cmUgPSBHZXRWYWx1ZShjb25maWcsICdpbnB1dC50b3VjaC5jYXB0dXJlJywgdHJ1ZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7aW50ZWdlcn0gUGhhc2VyLkNvcmUuQ29uZmlnI2lucHV0QWN0aXZlUG9pbnRlcnMgLSBUaGUgbnVtYmVyIG9mIFBvaW50ZXIgb2JqZWN0cyBjcmVhdGVkIGJ5IGRlZmF1bHQuIEluIGEgbW91c2Utb25seSwgb3Igbm9uLW11bHRpIHRvdWNoIGdhbWUsIHlvdSBjYW4gbGVhdmUgdGhpcyBhcyAxLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaW5wdXRBY3RpdmVQb2ludGVycyA9IEdldFZhbHVlKGNvbmZpZywgJ2lucHV0LmFjdGl2ZVBvaW50ZXJzJywgMSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7aW50ZWdlcn0gUGhhc2VyLkNvcmUuQ29uZmlnI2lucHV0U21vb3RoRmFjdG9yIC0gVGhlIHNtb290aGluZyBmYWN0b3IgdG8gYXBwbHkgZHVyaW5nIFBvaW50ZXIgbW92ZW1lbnQuIFNlZSB7QGxpbmsgUGhhc2VyLklucHV0LlBvaW50ZXIjc21vb3RoRmFjdG9yfS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlucHV0U21vb3RoRmFjdG9yID0gR2V0VmFsdWUoY29uZmlnLCAnaW5wdXQuc21vb3RoRmFjdG9yJywgMCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7Ym9vbGVhbn0gUGhhc2VyLkNvcmUuQ29uZmlnI2lucHV0V2luZG93RXZlbnRzIC0gU2hvdWxkIFBoYXNlciBsaXN0ZW4gZm9yIGlucHV0IGV2ZW50cyBvbiB0aGUgV2luZG93PyBJZiB5b3UgZGlzYWJsZSB0aGlzLCBldmVudHMgbGlrZSAnUE9JTlRFUl9VUF9PVVRTSURFJyB3aWxsIG5vIGxvbmdlciBmaXJlLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaW5wdXRXaW5kb3dFdmVudHMgPSBHZXRWYWx1ZShjb25maWcsICdpbnB1dC53aW5kb3dFdmVudHMnLCB0cnVlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtib29sZWFufSBQaGFzZXIuQ29yZS5Db25maWcjaW5wdXRHYW1lcGFkIC0gRW5hYmxlIHRoZSBHYW1lcGFkIFBsdWdpbi4gVGhpcyBjYW4gYmUgZGlzYWJsZWQgaW4gZ2FtZXMgdGhhdCBkb24ndCBuZWVkIGdhbWVwYWQgaW5wdXQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pbnB1dEdhbWVwYWQgPSBHZXRWYWx1ZShjb25maWcsICdpbnB1dC5nYW1lcGFkJywgZmFsc2UpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qgeyp9IFBoYXNlci5Db3JlLkNvbmZpZyNpbnB1dEdhbWVwYWRFdmVudFRhcmdldCAtIFRoZSBET00gVGFyZ2V0IHRvIGxpc3RlbiBmb3IgZ2FtZXBhZCBldmVudHMgb24uIERlZmF1bHRzIHRvIGB3aW5kb3dgIGlmIG5vdCBzcGVjaWZpZWQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pbnB1dEdhbWVwYWRFdmVudFRhcmdldCA9IEdldFZhbHVlKGNvbmZpZywgJ2lucHV0LmdhbWVwYWQudGFyZ2V0Jywgd2luZG93KTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtib29sZWFufSBQaGFzZXIuQ29yZS5Db25maWcjZGlzYWJsZUNvbnRleHRNZW51IC0gU2V0IHRvIGB0cnVlYCB0byBkaXNhYmxlIHRoZSByaWdodC1jbGljayBjb250ZXh0IG1lbnUuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kaXNhYmxlQ29udGV4dE1lbnUgPSBHZXRWYWx1ZShjb25maWcsICdkaXNhYmxlQ29udGV4dE1lbnUnLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7UGhhc2VyLlR5cGVzLkNvcmUuQXVkaW9Db25maWd9IFBoYXNlci5Db3JlLkNvbmZpZyNhdWRpbyAtIFRoZSBBdWRpbyBDb25maWd1cmF0aW9uIG9iamVjdC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmF1ZGlvID0gR2V0VmFsdWUoY29uZmlnLCAnYXVkaW8nKTtcclxuXHJcbiAgICAgICAgLy8gIElmIHlvdSBkbzogeyBiYW5uZXI6IGZhbHNlIH0gaXQgd29uJ3QgZGlzcGxheSBhbnkgYmFubmVyIGF0IGFsbFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge2Jvb2xlYW59IFBoYXNlci5Db3JlLkNvbmZpZyNoaWRlQmFubmVyIC0gRG9uJ3Qgd3JpdGUgdGhlIGJhbm5lciBsaW5lIHRvIHRoZSBjb25zb2xlLmxvZy5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmhpZGVCYW5uZXIgPSAoR2V0VmFsdWUoY29uZmlnLCAnYmFubmVyJywgbnVsbCkgPT09IGZhbHNlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtib29sZWFufSBQaGFzZXIuQ29yZS5Db25maWcjaGlkZVBoYXNlciAtIE9taXQgUGhhc2VyJ3MgbmFtZSBhbmQgdmVyc2lvbiBmcm9tIHRoZSBiYW5uZXIuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5oaWRlUGhhc2VyID0gR2V0VmFsdWUoY29uZmlnLCAnYmFubmVyLmhpZGVQaGFzZXInLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7c3RyaW5nfSBQaGFzZXIuQ29yZS5Db25maWcjYmFubmVyVGV4dENvbG9yIC0gVGhlIGNvbG9yIG9mIHRoZSBiYW5uZXIgdGV4dC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJhbm5lclRleHRDb2xvciA9IEdldFZhbHVlKGNvbmZpZywgJ2Jhbm5lci50ZXh0JywgZGVmYXVsdEJhbm5lclRleHRDb2xvcik7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7c3RyaW5nW119IFBoYXNlci5Db3JlLkNvbmZpZyNiYW5uZXJCYWNrZ3JvdW5kQ29sb3IgLSBUaGUgYmFja2dyb3VuZCBjb2xvcnMgb2YgdGhlIGJhbm5lci5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJhbm5lckJhY2tncm91bmRDb2xvciA9IEdldFZhbHVlKGNvbmZpZywgJ2Jhbm5lci5iYWNrZ3JvdW5kJywgZGVmYXVsdEJhbm5lckNvbG9yKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZ2FtZVRpdGxlID09PSAnJyAmJiB0aGlzLmhpZGVQaGFzZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGVCYW5uZXIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHs/UGhhc2VyLlR5cGVzLkNvcmUuRlBTQ29uZmlnfSBQaGFzZXIuQ29yZS5Db25maWcjZnBzIC0gVGhlIEZyYW1lIFJhdGUgQ29uZmlndXJhdGlvbiBvYmplY3QsIGFzIHBhcnNlZCBieSB0aGUgVGltZXN0ZXAgY2xhc3MuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5mcHMgPSBHZXRWYWx1ZShjb25maWcsICdmcHMnLCBudWxsKTtcclxuXHJcbiAgICAgICAgLy8gIFJlbmRlcmVyIFNldHRpbmdzXHJcbiAgICAgICAgLy8gIFRoZXNlIGNhbiBlaXRoZXIgYmUgaW4gYSBgcmVuZGVyYCBvYmplY3Qgd2l0aGluIHRoZSBDb25maWcsIG9yIHNwZWNpZmllZCBvbiB0aGVpciBvd25cclxuXHJcbiAgICAgICAgdmFyIHJlbmRlckNvbmZpZyA9IEdldFZhbHVlKGNvbmZpZywgJ3JlbmRlcicsIGNvbmZpZyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7Ym9vbGVhbn0gUGhhc2VyLkNvcmUuQ29uZmlnI2FudGlhbGlhcyAtIFdoZW4gc2V0IHRvIGB0cnVlYCwgV2ViR0wgdXNlcyBsaW5lYXIgaW50ZXJwb2xhdGlvbiB0byBkcmF3IHNjYWxlZCBvciByb3RhdGVkIHRleHR1cmVzLCBnaXZpbmcgYSBzbW9vdGggYXBwZWFyYW5jZS4gV2hlbiBzZXQgdG8gYGZhbHNlYCwgV2ViR0wgdXNlcyBuZWFyZXN0LW5laWdoYm9yIGludGVycG9sYXRpb24sIGdpdmluZyBhIGNyaXNwZXIgYXBwZWFyYW5jZS4gYGZhbHNlYCBhbHNvIGRpc2FibGVzIGFudGlhbGlhc2luZyBvZiB0aGUgZ2FtZSBjYW52YXMgaXRzZWxmLCBpZiB0aGUgYnJvd3NlciBzdXBwb3J0cyBpdCwgd2hlbiB0aGUgZ2FtZSBjYW52YXMgaXMgc2NhbGVkLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYW50aWFsaWFzID0gR2V0VmFsdWUocmVuZGVyQ29uZmlnLCAnYW50aWFsaWFzJywgdHJ1ZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7Ym9vbGVhbn0gUGhhc2VyLkNvcmUuQ29uZmlnI2FudGlhbGlhc0dMIC0gU2V0cyB0aGUgYGFudGlhbGlhc2AgcHJvcGVydHkgd2hlbiB0aGUgV2ViR0wgY29udGV4dCBpcyBjcmVhdGVkLiBTZXR0aW5nIHRoaXMgdmFsdWUgZG9lcyBub3QgaW1wYWN0IGFueSBzdWJzZXF1ZW50IHRleHR1cmVzIHRoYXQgYXJlIGNyZWF0ZWQsIG9yIHRoZSBjYW52YXMgc3R5bGUgYXR0cmlidXRlcy5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFudGlhbGlhc0dMID0gR2V0VmFsdWUocmVuZGVyQ29uZmlnLCAnYW50aWFsaWFzR0wnLCB0cnVlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtzdHJpbmd9IFBoYXNlci5Db3JlLkNvbmZpZyNtaXBtYXBGaWx0ZXIgLSBTZXRzIHRoZSBgbWlwbWFwRmlsdGVyYCBwcm9wZXJ0eSB3aGVuIHRoZSBXZWJHTCByZW5kZXJlciBpcyBjcmVhdGVkLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubWlwbWFwRmlsdGVyID0gR2V0VmFsdWUocmVuZGVyQ29uZmlnLCAnbWlwbWFwRmlsdGVyJywgJ0xJTkVBUicpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge2Jvb2xlYW59IFBoYXNlci5Db3JlLkNvbmZpZyNkZXN5bmNocm9uaXplZCAtIFdoZW4gc2V0IHRvIGB0cnVlYCBpdCB3aWxsIGNyZWF0ZSBhIGRlc3luY2hyb25pemVkIGNvbnRleHQgZm9yIGJvdGggMkQgYW5kIFdlYkdMLiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vd2ViL3VwZGF0ZXMvMjAxOS8wNS9kZXN5bmNocm9uaXplZCBmb3IgZGV0YWlscy5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRlc3luY2hyb25pemVkID0gR2V0VmFsdWUocmVuZGVyQ29uZmlnLCAnZGVzeW5jaHJvbml6ZWQnLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7Ym9vbGVhbn0gUGhhc2VyLkNvcmUuQ29uZmlnI3JvdW5kUGl4ZWxzIC0gRHJhdyB0ZXh0dXJlLWJhc2VkIEdhbWUgT2JqZWN0cyBhdCBvbmx5IHdob2xlLWludGVnZXIgcG9zaXRpb25zLiBHYW1lIE9iamVjdHMgd2l0aG91dCB0ZXh0dXJlcywgbGlrZSBHcmFwaGljcywgaWdub3JlIHRoaXMgcHJvcGVydHkuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yb3VuZFBpeGVscyA9IEdldFZhbHVlKHJlbmRlckNvbmZpZywgJ3JvdW5kUGl4ZWxzJywgZmFsc2UpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge2Jvb2xlYW59IFBoYXNlci5Db3JlLkNvbmZpZyNwaXhlbEFydCAtIFByZXZlbnQgcGl4ZWwgYXJ0IGZyb20gYmVjb21pbmcgYmx1cnJlZCB3aGVuIHNjYWxlZC4gSXQgd2lsbCByZW1haW4gY3Jpc3AgKHRlbGxzIHRoZSBXZWJHTCByZW5kZXJlciB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSB0ZXh0dXJlcyB1c2luZyBhIGxpbmVhciBmaWx0ZXIgbW9kZSkuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5waXhlbEFydCA9IEdldFZhbHVlKHJlbmRlckNvbmZpZywgJ3BpeGVsQXJ0JywgdGhpcy56b29tICE9PSAxKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucGl4ZWxBcnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmFudGlhbGlhcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnJvdW5kUGl4ZWxzID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7Ym9vbGVhbn0gUGhhc2VyLkNvcmUuQ29uZmlnI3RyYW5zcGFyZW50IC0gV2hldGhlciB0aGUgZ2FtZSBjYW52YXMgd2lsbCBoYXZlIGEgdHJhbnNwYXJlbnQgYmFja2dyb3VuZC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnRyYW5zcGFyZW50ID0gR2V0VmFsdWUocmVuZGVyQ29uZmlnLCAndHJhbnNwYXJlbnQnLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7Ym9vbGVhbn0gUGhhc2VyLkNvcmUuQ29uZmlnI2NsZWFyQmVmb3JlUmVuZGVyIC0gV2hldGhlciB0aGUgZ2FtZSBjYW52YXMgd2lsbCBiZSBjbGVhcmVkIGJldHdlZW4gZWFjaCByZW5kZXJpbmcgZnJhbWUuIFlvdSBjYW4gZGlzYWJsZSB0aGlzIGlmIHlvdSBoYXZlIGEgZnVsbC1zY3JlZW4gYmFja2dyb3VuZCBpbWFnZSBvciBnYW1lIG9iamVjdC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNsZWFyQmVmb3JlUmVuZGVyID0gR2V0VmFsdWUocmVuZGVyQ29uZmlnLCAnY2xlYXJCZWZvcmVSZW5kZXInLCB0cnVlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtib29sZWFufSBQaGFzZXIuQ29yZS5Db25maWcjcHJlbXVsdGlwbGllZEFscGhhIC0gSW4gV2ViR0wgbW9kZSwgc2V0cyB0aGUgZHJhd2luZyBidWZmZXIgdG8gY29udGFpbiBjb2xvcnMgd2l0aCBwcmUtbXVsdGlwbGllZCBhbHBoYS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnByZW11bHRpcGxpZWRBbHBoYSA9IEdldFZhbHVlKHJlbmRlckNvbmZpZywgJ3ByZW11bHRpcGxpZWRBbHBoYScsIHRydWUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge2Jvb2xlYW59IFBoYXNlci5Db3JlLkNvbmZpZyNmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0IC0gTGV0IHRoZSBicm93c2VyIGFib3J0IGNyZWF0aW5nIGEgV2ViR0wgY29udGV4dCBpZiBpdCBqdWRnZXMgcGVyZm9ybWFuY2Ugd291bGQgYmUgdW5hY2NlcHRhYmxlLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdCA9IEdldFZhbHVlKHJlbmRlckNvbmZpZywgJ2ZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQnLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7c3RyaW5nfSBQaGFzZXIuQ29yZS5Db25maWcjcG93ZXJQcmVmZXJlbmNlIC0gXCJoaWdoLXBlcmZvcm1hbmNlXCIsIFwibG93LXBvd2VyXCIgb3IgXCJkZWZhdWx0XCIuIEEgaGludCB0byB0aGUgYnJvd3NlciBvbiBob3cgbXVjaCBkZXZpY2UgcG93ZXIgdGhlIGdhbWUgbWlnaHQgdXNlLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucG93ZXJQcmVmZXJlbmNlID0gR2V0VmFsdWUocmVuZGVyQ29uZmlnLCAncG93ZXJQcmVmZXJlbmNlJywgJ2RlZmF1bHQnKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtpbnRlZ2VyfSBQaGFzZXIuQ29yZS5Db25maWcjYmF0Y2hTaXplIC0gVGhlIGRlZmF1bHQgV2ViR0wgQmF0Y2ggc2l6ZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJhdGNoU2l6ZSA9IEdldFZhbHVlKHJlbmRlckNvbmZpZywgJ2JhdGNoU2l6ZScsIDIwMDApO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge2ludGVnZXJ9IFBoYXNlci5Db3JlLkNvbmZpZyNtYXhMaWdodHMgLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgbGlnaHRzIGFsbG93ZWQgdG8gYmUgdmlzaWJsZSB3aXRoaW4gcmFuZ2Ugb2YgYSBzaW5nbGUgQ2FtZXJhIGluIHRoZSBMaWdodE1hbmFnZXIuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tYXhMaWdodHMgPSBHZXRWYWx1ZShyZW5kZXJDb25maWcsICdtYXhMaWdodHMnLCAxMCk7XHJcblxyXG4gICAgICAgIHZhciBiZ2MgPSBHZXRWYWx1ZShjb25maWcsICdiYWNrZ3JvdW5kQ29sb3InLCAwKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtQaGFzZXIuRGlzcGxheS5Db2xvcn0gUGhhc2VyLkNvcmUuQ29uZmlnI2JhY2tncm91bmRDb2xvciAtIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBnYW1lIGNhbnZhcy4gVGhlIGRlZmF1bHQgaXMgYmxhY2suIFRoaXMgdmFsdWUgaXMgaWdub3JlZCBpZiBgdHJhbnNwYXJlbnRgIGlzIHNldCB0byBgdHJ1ZWAuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSBWYWx1ZVRvQ29sb3IoYmdjKTtcclxuXHJcbiAgICAgICAgaWYgKGJnYyA9PT0gMCAmJiB0aGlzLnRyYW5zcGFyZW50KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IuYWxwaGEgPSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtQaGFzZXIuVHlwZXMuQ29yZS5Cb290Q2FsbGJhY2t9IFBoYXNlci5Db3JlLkNvbmZpZyNwcmVCb290IC0gQ2FsbGVkIGJlZm9yZSBQaGFzZXIgYm9vdHMuIFVzZWZ1bCBmb3IgaW5pdGlhbGl6aW5nIGFueXRoaW5nIG5vdCByZWxhdGVkIHRvIFBoYXNlciB0aGF0IFBoYXNlciBtYXkgcmVxdWlyZSB3aGlsZSBib290aW5nLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucHJlQm9vdCA9IEdldFZhbHVlKGNvbmZpZywgJ2NhbGxiYWNrcy5wcmVCb290JywgTk9PUCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7UGhhc2VyLlR5cGVzLkNvcmUuQm9vdENhbGxiYWNrfSBQaGFzZXIuQ29yZS5Db25maWcjcG9zdEJvb3QgLSBBIGZ1bmN0aW9uIHRvIHJ1biBhdCB0aGUgZW5kIG9mIHRoZSBib290IHNlcXVlbmNlLiBBdCB0aGlzIHBvaW50LCBhbGwgdGhlIGdhbWUgc3lzdGVtcyBoYXZlIHN0YXJ0ZWQgYW5kIHBsdWdpbnMgaGF2ZSBiZWVuIGxvYWRlZC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBvc3RCb290ID0gR2V0VmFsdWUoY29uZmlnLCAnY2FsbGJhY2tzLnBvc3RCb290JywgTk9PUCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7UGhhc2VyLlR5cGVzLkNvcmUuUGh5c2ljc0NvbmZpZ30gUGhhc2VyLkNvcmUuQ29uZmlnI3BoeXNpY3MgLSBUaGUgUGh5c2ljcyBDb25maWd1cmF0aW9uIG9iamVjdC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBoeXNpY3MgPSBHZXRWYWx1ZShjb25maWcsICdwaHlzaWNzJywge30pO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qgeyhib29sZWFufHN0cmluZyl9IFBoYXNlci5Db3JlLkNvbmZpZyNkZWZhdWx0UGh5c2ljc1N5c3RlbSAtIFRoZSBkZWZhdWx0IHBoeXNpY3Mgc3lzdGVtLiBJdCB3aWxsIGJlIHN0YXJ0ZWQgZm9yIGVhY2ggc2NlbmUuIEVpdGhlciAnYXJjYWRlJywgJ2ltcGFjdCcgb3IgJ21hdHRlcicuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0UGh5c2ljc1N5c3RlbSA9IEdldFZhbHVlKHRoaXMucGh5c2ljcywgJ2RlZmF1bHQnLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7c3RyaW5nfSBQaGFzZXIuQ29yZS5Db25maWcjbG9hZGVyQmFzZVVSTCAtIEEgVVJMIHVzZWQgdG8gcmVzb2x2ZSBwYXRocyBnaXZlbiB0byB0aGUgbG9hZGVyLiBFeGFtcGxlOiAnaHR0cDovL2xhYnMucGhhc2VyLmlvL2Fzc2V0cy8nLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubG9hZGVyQmFzZVVSTCA9IEdldFZhbHVlKGNvbmZpZywgJ2xvYWRlci5iYXNlVVJMJywgJycpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge3N0cmluZ30gUGhhc2VyLkNvcmUuQ29uZmlnI2xvYWRlclBhdGggLSBBIFVSTCBwYXRoIHVzZWQgdG8gcmVzb2x2ZSByZWxhdGl2ZSBwYXRocyBnaXZlbiB0byB0aGUgbG9hZGVyLiBFeGFtcGxlOiAnaW1hZ2VzL3Nwcml0ZXMvJy5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmxvYWRlclBhdGggPSBHZXRWYWx1ZShjb25maWcsICdsb2FkZXIucGF0aCcsICcnKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtpbnRlZ2VyfSBQaGFzZXIuQ29yZS5Db25maWcjbG9hZGVyTWF4UGFyYWxsZWxEb3dubG9hZHMgLSBNYXhpbXVtIHBhcmFsbGVsIGRvd25sb2FkcyBhbGxvd2VkIGZvciByZXNvdXJjZXMgKERlZmF1bHQgdG8gMzIpLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubG9hZGVyTWF4UGFyYWxsZWxEb3dubG9hZHMgPSBHZXRWYWx1ZShjb25maWcsICdsb2FkZXIubWF4UGFyYWxsZWxEb3dubG9hZHMnLCAzMik7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7KHN0cmluZ3x1bmRlZmluZWQpfSBQaGFzZXIuQ29yZS5Db25maWcjbG9hZGVyQ3Jvc3NPcmlnaW4gLSAnYW5vbnltb3VzJywgJ3VzZS1jcmVkZW50aWFscycsIG9yIGB1bmRlZmluZWRgLiBJZiB5b3UncmUgbm90IG1ha2luZyBjcm9zcy1vcmlnaW4gcmVxdWVzdHMsIGxlYXZlIHRoaXMgYXMgYHVuZGVmaW5lZGAuIFNlZSB7QGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9DT1JTX3NldHRpbmdzX2F0dHJpYnV0ZXN9LlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubG9hZGVyQ3Jvc3NPcmlnaW4gPSBHZXRWYWx1ZShjb25maWcsICdsb2FkZXIuY3Jvc3NPcmlnaW4nLCB1bmRlZmluZWQpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge3N0cmluZ30gUGhhc2VyLkNvcmUuQ29uZmlnI2xvYWRlclJlc3BvbnNlVHlwZSAtIFRoZSByZXNwb25zZSB0eXBlIG9mIHRoZSBYSFIgcmVxdWVzdCwgZS5nLiBgYmxvYmAsIGB0ZXh0YCwgZXRjLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubG9hZGVyUmVzcG9uc2VUeXBlID0gR2V0VmFsdWUoY29uZmlnLCAnbG9hZGVyLnJlc3BvbnNlVHlwZScsICcnKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtib29sZWFufSBQaGFzZXIuQ29yZS5Db25maWcjbG9hZGVyQXN5bmMgLSBTaG91bGQgdGhlIFhIUiByZXF1ZXN0IHVzZSBhc3luYyBvciBub3Q/XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5sb2FkZXJBc3luYyA9IEdldFZhbHVlKGNvbmZpZywgJ2xvYWRlci5hc3luYycsIHRydWUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge3N0cmluZ30gUGhhc2VyLkNvcmUuQ29uZmlnI2xvYWRlclVzZXIgLSBPcHRpb25hbCB1c2VybmFtZSBmb3IgYWxsIFhIUiByZXF1ZXN0cy5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmxvYWRlclVzZXIgPSBHZXRWYWx1ZShjb25maWcsICdsb2FkZXIudXNlcicsICcnKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtzdHJpbmd9IFBoYXNlci5Db3JlLkNvbmZpZyNsb2FkZXJQYXNzd29yZCAtIE9wdGlvbmFsIHBhc3N3b3JkIGZvciBhbGwgWEhSIHJlcXVlc3RzLlxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubG9hZGVyUGFzc3dvcmQgPSBHZXRWYWx1ZShjb25maWcsICdsb2FkZXIucGFzc3dvcmQnLCAnJyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7aW50ZWdlcn0gUGhhc2VyLkNvcmUuQ29uZmlnI2xvYWRlclRpbWVvdXQgLSBPcHRpb25hbCBYSFIgdGltZW91dCB2YWx1ZSwgaW4gbXMuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5sb2FkZXJUaW1lb3V0ID0gR2V0VmFsdWUoY29uZmlnLCAnbG9hZGVyLnRpbWVvdXQnLCAwKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHtib29sZWFufSBQaGFzZXIuQ29yZS5Db25maWcjbG9hZGVyV2l0aENyZWRlbnRpYWxzIC0gT3B0aW9uYWwgWEhSIHdpdGhDcmVkZW50aWFscyB2YWx1ZS5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmxvYWRlcldpdGhDcmVkZW50aWFscyA9IEdldFZhbHVlKGNvbmZpZywgJ2xvYWRlci53aXRoQ3JlZGVudGlhbHMnLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIC8qXHJcbiAgICAgICAgICogQWxsb3dzIGBwbHVnaW5zYCBwcm9wZXJ0eSB0byBlaXRoZXIgYmUgYW4gYXJyYXksIGluIHdoaWNoIGNhc2UgaXQganVzdCByZXBsYWNlc1xyXG4gICAgICAgICAqIHRoZSBkZWZhdWx0IHBsdWdpbnMgbGlrZSBwcmV2aW91c2x5LCBvciBhIGNvbmZpZyBvYmplY3QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBwbHVnaW5zOiB7XHJcbiAgICAgICAgICogICAgZ2xvYmFsOiBbXHJcbiAgICAgICAgICogICAgICAgIHsga2V5OiAnVGVzdFBsdWdpbicsIHBsdWdpbjogVGVzdFBsdWdpbiwgc3RhcnQ6IHRydWUsIGRhdGE6IHsgbXNnOiAnVGhlIHBsdWdpbiBpcyBhbGl2ZScgfSB9LFxyXG4gICAgICAgICAqICAgIF0sXHJcbiAgICAgICAgICogICAgc2NlbmU6IFtcclxuICAgICAgICAgKiAgICAgICAgeyBrZXk6ICdXaXJlRnJhbWVQbHVnaW4nLCBwbHVnaW46IFdpcmVGcmFtZVBsdWdpbiwgc3lzdGVtS2V5OiAnd2lyZUZyYW1lUGx1Z2luJywgc2NlbmVLZXk6ICd3aXJlZnJhbWUnIH1cclxuICAgICAgICAgKiAgICBdLFxyXG4gICAgICAgICAqICAgIGRlZmF1bHQ6IFtdLCBPUlxyXG4gICAgICAgICAqICAgIGRlZmF1bHRNZXJnZTogW1xyXG4gICAgICAgICAqICAgICAgICAnTW9kUGxheWVyJ1xyXG4gICAgICAgICAqICAgIF1cclxuICAgICAgICAgKiB9XHJcbiAgICAgICAgICovXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7YW55fSBQaGFzZXIuQ29yZS5Db25maWcjaW5zdGFsbEdsb2JhbFBsdWdpbnMgLSBBbiBhcnJheSBvZiBnbG9iYWwgcGx1Z2lucyB0byBiZSBpbnN0YWxsZWQuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pbnN0YWxsR2xvYmFsUGx1Z2lucyA9IFtdO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge2FueX0gUGhhc2VyLkNvcmUuQ29uZmlnI2luc3RhbGxTY2VuZVBsdWdpbnMgLSBBbiBhcnJheSBvZiBTY2VuZSBsZXZlbCBwbHVnaW5zIHRvIGJlIGluc3RhbGxlZC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmluc3RhbGxTY2VuZVBsdWdpbnMgPSBbXTtcclxuXHJcbiAgICAgICAgdmFyIHBsdWdpbnMgPSBHZXRWYWx1ZShjb25maWcsICdwbHVnaW5zJywgbnVsbCk7XHJcbiAgICAgICAgdmFyIGRlZmF1bHRQbHVnaW5zID0gRGVmYXVsdFBsdWdpbnMuRGVmYXVsdFNjZW5lO1xyXG5cclxuICAgICAgICBpZiAocGx1Z2lucylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBPbGQgMy43IGFycmF5IGZvcm1hdD9cclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGx1Z2lucykpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdFBsdWdpbnMgPSBwbHVnaW5zO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKElzUGxhaW5PYmplY3QocGx1Z2lucykpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFsbEdsb2JhbFBsdWdpbnMgPSBHZXRGYXN0VmFsdWUocGx1Z2lucywgJ2dsb2JhbCcsIFtdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFsbFNjZW5lUGx1Z2lucyA9IEdldEZhc3RWYWx1ZShwbHVnaW5zLCAnc2NlbmUnLCBbXSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGx1Z2lucy5kZWZhdWx0KSlcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0UGx1Z2lucyA9IHBsdWdpbnMuZGVmYXVsdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocGx1Z2lucy5kZWZhdWx0TWVyZ2UpKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRQbHVnaW5zID0gZGVmYXVsdFBsdWdpbnMuY29uY2F0KHBsdWdpbnMuZGVmYXVsdE1lcmdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQGNvbnN0IHthbnl9IFBoYXNlci5Db3JlLkNvbmZpZyNkZWZhdWx0UGx1Z2lucyAtIFRoZSBwbHVnaW5zIGluc3RhbGxlZCBpbnRvIGV2ZXJ5IFNjZW5lIChpbiBhZGRpdGlvbiB0byBDb3JlU2NlbmUgYW5kIEdsb2JhbCkuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0UGx1Z2lucyA9IGRlZmF1bHRQbHVnaW5zO1xyXG5cclxuICAgICAgICAvLyAgRGVmYXVsdCAvIE1pc3NpbmcgSW1hZ2VzXHJcbiAgICAgICAgdmFyIHBuZ1ByZWZpeCA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQWcnO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBAY29uc3Qge3N0cmluZ30gUGhhc2VyLkNvcmUuQ29uZmlnI2RlZmF1bHRJbWFnZSAtIEEgYmFzZTY0IGVuY29kZWQgUE5HIHRoYXQgd2lsbCBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IGJsYW5rIHRleHR1cmUuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0SW1hZ2UgPSBHZXRWYWx1ZShjb25maWcsICdpbWFnZXMuZGVmYXVsdCcsIHBuZ1ByZWZpeCArICdBUU1BQUFCSnRPaTNBQUFBQTFCTVZFWC8vLytueEJ2SUFBQUFBWFJTVGxNQVFPYllaZ0FBQUJWSlJFRlVlRjdOd0lFQUFBQUFnS0Q5cWRlb2NBTUFvQUFCbTNEa2NBQUFBQUJKUlU1RXJrSmdnZz09Jyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEBjb25zdCB7c3RyaW5nfSBQaGFzZXIuQ29yZS5Db25maWcjbWlzc2luZ0ltYWdlIC0gQSBiYXNlNjQgZW5jb2RlZCBQTkcgdGhhdCB3aWxsIGJlIHVzZWQgYXMgdGhlIGRlZmF1bHQgdGV4dHVyZSB3aGVuIGEgdGV4dHVyZSBpcyBhc3NpZ25lZCB0aGF0IGlzIG1pc3Npbmcgb3Igbm90IGxvYWRlZC5cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1pc3NpbmdJbWFnZSA9IEdldFZhbHVlKGNvbmZpZywgJ2ltYWdlcy5taXNzaW5nJywgcG5nUHJlZml4ICsgJ0NBSUFBQUQ4R08yakFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBSjlKUkVGVWVOcTAxc3NPd3lBTVJGRzQ2di8vTXQxRVNtZ2grREZtRTJHUE9CQVJLYjJOVmpvKzE3UFhMRDhhMStwbDUrQSt3U2dGeWd5bVdZSEJiMEZ0c0toSkRkWmxuY0cySXpKNGF5b01EdjIwd1RtU016Q2xFZ2JXWU5UQWtRMForT0orQS9lV25BYVI5K294Q0Y0T3MwSDhodHNNVXArcHdjZ0JCaU1ObkF3RjhHcUlnTDJoQXphR0ZGZ1phdURQS0FCbW93WjRHTDM2OS8wcndBQ3AyeUEvdHRtdnNRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XHJcblxyXG4gICAgICAgIGlmICh3aW5kb3cpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAod2luZG93LkZPUkNFX1dFQkdMKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclR5cGUgPSBDT05TVC5XRUJHTDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh3aW5kb3cuRk9SQ0VfQ0FOVkFTKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclR5cGUgPSBDT05TVC5DQU5WQVM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQ29uZmlnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDYW52YXNJbnRlcnBvbGF0aW9uID0gcmVxdWlyZSgnLi4vZGlzcGxheS9jYW52YXMvQ2FudmFzSW50ZXJwb2xhdGlvbicpO1xyXG52YXIgQ2FudmFzUG9vbCA9IHJlcXVpcmUoJy4uL2Rpc3BsYXkvY2FudmFzL0NhbnZhc1Bvb2wnKTtcclxudmFyIENPTlNUID0gcmVxdWlyZSgnLi4vY29uc3QnKTtcclxudmFyIEZlYXR1cmVzID0gcmVxdWlyZSgnLi4vZGV2aWNlL0ZlYXR1cmVzJyk7XHJcblxyXG4vKipcclxuICogQ2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgUGhhc2VyLkdhbWUgYW5kIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGUgcmVuZGVyZXIgaXQgd2lsbCB1c2UuXHJcbiAqXHJcbiAqIFJlbGllcyB1cG9uIHR3byB3ZWJwYWNrIGdsb2JhbCBmbGFncyB0byBiZSBkZWZpbmVkOiBgV0VCR0xfUkVOREVSRVJgIGFuZCBgQ0FOVkFTX1JFTkRFUkVSYCBkdXJpbmcgYnVpbGQgdGltZSwgYnV0IG5vdCBhdCBydW4tdGltZS5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5Db3JlLkNyZWF0ZVJlbmRlcmVyXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lfSBnYW1lIC0gVGhlIFBoYXNlci5HYW1lIGluc3RhbmNlIG9uIHdoaWNoIHRoZSByZW5kZXJlciB3aWxsIGJlIHNldC5cclxuICovXHJcbnZhciBDcmVhdGVSZW5kZXJlciA9IGZ1bmN0aW9uIChnYW1lKVxyXG57XHJcbiAgICB2YXIgY29uZmlnID0gZ2FtZS5jb25maWc7XHJcblxyXG4gICAgaWYgKChjb25maWcuY3VzdG9tRW52aXJvbm1lbnQgfHwgY29uZmlnLmNhbnZhcykgJiYgY29uZmlnLnJlbmRlclR5cGUgPT09IENPTlNULkFVVE8pXHJcbiAgICB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHNldCBleHBsaWNpdCByZW5kZXJUeXBlIGluIGN1c3RvbSBlbnZpcm9ubWVudCcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBOb3QgYSBjdXN0b20gZW52aXJvbm1lbnQsIGRpZG4ndCBwcm92aWRlIHRoZWlyIG93biBjYW52YXMgYW5kIG5vdCBoZWFkbGVzcywgc28gZGV0ZXJtaW5lIHRoZSByZW5kZXJlcjpcclxuICAgIGlmICghY29uZmlnLmN1c3RvbUVudmlyb25tZW50ICYmICFjb25maWcuY2FudmFzICYmIGNvbmZpZy5yZW5kZXJUeXBlICE9PSBDT05TVC5IRUFETEVTUylcclxuICAgIHtcclxuICAgICAgICBpZiAoY29uZmlnLnJlbmRlclR5cGUgPT09IENPTlNULkNBTlZBUyB8fCAoY29uZmlnLnJlbmRlclR5cGUgIT09IENPTlNULkNBTlZBUyAmJiAhRmVhdHVyZXMud2ViR0wpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKEZlYXR1cmVzLmNhbnZhcylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy8gIFRoZXkgcmVxdWVzdGVkIENhbnZhcyBhbmQgdGhlaXIgYnJvd3NlciBzdXBwb3J0cyBpdFxyXG4gICAgICAgICAgICAgICAgY29uZmlnLnJlbmRlclR5cGUgPSBDT05TVC5DQU5WQVM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjcmVhdGUgQ2FudmFzIG9yIFdlYkdMIGNvbnRleHQsIGFib3J0aW5nLicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBHYW1lIHJlcXVlc3RlZCBXZWJHTCBhbmQgYnJvd3NlciBzYXlzIGl0IHN1cHBvcnRzIGl0XHJcbiAgICAgICAgICAgIGNvbmZpZy5yZW5kZXJUeXBlID0gQ09OU1QuV0VCR0w7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICBQaXhlbCBBcnQgbW9kZT9cclxuICAgIGlmICghY29uZmlnLmFudGlhbGlhcylcclxuICAgIHtcclxuICAgICAgICBDYW52YXNQb29sLmRpc2FibGVTbW9vdGhpbmcoKTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgYmFzZVNpemUgPSBnYW1lLnNjYWxlLmJhc2VTaXplO1xyXG5cclxuICAgIHZhciB3aWR0aCA9IGJhc2VTaXplLndpZHRoO1xyXG4gICAgdmFyIGhlaWdodCA9IGJhc2VTaXplLmhlaWdodDtcclxuXHJcbiAgICAvLyAgRG9lcyB0aGUgZ2FtZSBjb25maWcgcHJvdmlkZSBpdHMgb3duIGNhbnZhcyBlbGVtZW50IHRvIHVzZT9cclxuICAgIGlmIChjb25maWcuY2FudmFzKVxyXG4gICAge1xyXG4gICAgICAgIGdhbWUuY2FudmFzID0gY29uZmlnLmNhbnZhcztcclxuXHJcbiAgICAgICAgZ2FtZS5jYW52YXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgICBnYW1lLmNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgZ2FtZS5jYW52YXMgPSBDYW52YXNQb29sLmNyZWF0ZShnYW1lLCB3aWR0aCwgaGVpZ2h0LCBjb25maWcucmVuZGVyVHlwZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIERvZXMgdGhlIGdhbWUgY29uZmlnIHByb3ZpZGUgc29tZSBjYW52YXMgY3NzIHN0eWxlcyB0byB1c2U/XHJcbiAgICBpZiAoY29uZmlnLmNhbnZhc1N0eWxlKVxyXG4gICAge1xyXG4gICAgICAgIGdhbWUuY2FudmFzLnN0eWxlID0gY29uZmlnLmNhbnZhc1N0eWxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBQaXhlbCBBcnQgbW9kZT9cclxuICAgIGlmICghY29uZmlnLmFudGlhbGlhcylcclxuICAgIHtcclxuICAgICAgICBDYW52YXNJbnRlcnBvbGF0aW9uLnNldENyaXNwKGdhbWUuY2FudmFzKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLnJlbmRlclR5cGUgPT09IENPTlNULkhFQURMRVNTKVxyXG4gICAge1xyXG4gICAgICAgIC8vICBOb3RoaW5nIG1vcmUgdG8gZG8gaGVyZVxyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgQ2FudmFzUmVuZGVyZXI7XHJcbiAgICB2YXIgV2ViR0xSZW5kZXJlcjtcclxuXHJcbiAgICBpZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSICYmIHR5cGVvZiBDQU5WQVNfUkVOREVSRVIpXHJcbiAgICB7XHJcbiAgICAgICAgQ2FudmFzUmVuZGVyZXIgPSByZXF1aXJlKCcuLi9yZW5kZXJlci9jYW52YXMvQ2FudmFzUmVuZGVyZXInKTtcclxuICAgICAgICBXZWJHTFJlbmRlcmVyID0gcmVxdWlyZSgnLi4vcmVuZGVyZXIvd2ViZ2wvV2ViR0xSZW5kZXJlcicpO1xyXG5cclxuICAgICAgICAvLyAgTGV0IHRoZSBjb25maWcgcGljayB0aGUgcmVuZGVyZXIgdHlwZSwgYXMgYm90aCBhcmUgaW5jbHVkZWRcclxuICAgICAgICBpZiAoY29uZmlnLnJlbmRlclR5cGUgPT09IENPTlNULldFQkdMKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZ2FtZS5yZW5kZXJlciA9IG5ldyBXZWJHTFJlbmRlcmVyKGdhbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBnYW1lLnJlbmRlcmVyID0gbmV3IENhbnZhc1JlbmRlcmVyKGdhbWUpO1xyXG4gICAgICAgICAgICBnYW1lLmNvbnRleHQgPSBnYW1lLnJlbmRlcmVyLmdhbWVDb250ZXh0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSICYmICF0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG4gICAge1xyXG4gICAgICAgIFdlYkdMUmVuZGVyZXIgPSByZXF1aXJlKCcuLi9yZW5kZXJlci93ZWJnbC9XZWJHTFJlbmRlcmVyJyk7XHJcblxyXG4gICAgICAgIC8vICBGb3JjZSB0aGUgdHlwZSB0byBXZWJHTCwgcmVnYXJkbGVzcyB3aGF0IHdhcyByZXF1ZXN0ZWRcclxuICAgICAgICBjb25maWcucmVuZGVyVHlwZSA9IENPTlNULldFQkdMO1xyXG5cclxuICAgICAgICBnYW1lLnJlbmRlcmVyID0gbmV3IFdlYkdMUmVuZGVyZXIoZ2FtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0eXBlb2YgV0VCR0xfUkVOREVSRVIgJiYgdHlwZW9mIENBTlZBU19SRU5ERVJFUilcclxuICAgIHtcclxuICAgICAgICBDYW52YXNSZW5kZXJlciA9IHJlcXVpcmUoJy4uL3JlbmRlcmVyL2NhbnZhcy9DYW52YXNSZW5kZXJlcicpO1xyXG5cclxuICAgICAgICAvLyAgRm9yY2UgdGhlIHR5cGUgdG8gQ2FudmFzLCByZWdhcmRsZXNzIHdoYXQgd2FzIHJlcXVlc3RlZFxyXG4gICAgICAgIGNvbmZpZy5yZW5kZXJUeXBlID0gQ09OU1QuQ0FOVkFTO1xyXG5cclxuICAgICAgICBnYW1lLnJlbmRlcmVyID0gbmV3IENhbnZhc1JlbmRlcmVyKGdhbWUpO1xyXG5cclxuICAgICAgICBnYW1lLmNvbnRleHQgPSBnYW1lLnJlbmRlcmVyLmdhbWVDb250ZXh0O1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDcmVhdGVSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ09OU1QgPSByZXF1aXJlKCcuLi9jb25zdCcpO1xyXG5cclxuLyoqXHJcbiAqIENhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IFBoYXNlci5HYW1lIGFuZCByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgdGhlIGNvbnNvbGUubG9nIGRlYnVnIGhlYWRlci5cclxuICpcclxuICogWW91IGNhbiBjdXN0b21pemUgb3IgZGlzYWJsZSB0aGUgaGVhZGVyIHZpYSB0aGUgR2FtZSBDb25maWcgb2JqZWN0LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkNvcmUuRGVidWdIZWFkZXJcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWV9IGdhbWUgLSBUaGUgUGhhc2VyLkdhbWUgaW5zdGFuY2Ugd2hpY2ggd2lsbCBvdXRwdXQgdGhpcyBkZWJ1ZyBoZWFkZXIuXHJcbiAqL1xyXG52YXIgRGVidWdIZWFkZXIgPSBmdW5jdGlvbiAoZ2FtZSlcclxue1xyXG4gICAgdmFyIGNvbmZpZyA9IGdhbWUuY29uZmlnO1xyXG5cclxuICAgIGlmIChjb25maWcuaGlkZUJhbm5lcilcclxuICAgIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHJlbmRlclR5cGUgPSAnV2ViR0wnO1xyXG5cclxuICAgIGlmIChjb25maWcucmVuZGVyVHlwZSA9PT0gQ09OU1QuQ0FOVkFTKVxyXG4gICAge1xyXG4gICAgICAgIHJlbmRlclR5cGUgPSAnQ2FudmFzJztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvbmZpZy5yZW5kZXJUeXBlID09PSBDT05TVC5IRUFETEVTUylcclxuICAgIHtcclxuICAgICAgICByZW5kZXJUeXBlID0gJ0hlYWRsZXNzJztcclxuICAgIH1cclxuXHJcbiAgICB2YXIgYXVkaW9Db25maWcgPSBjb25maWcuYXVkaW87XHJcbiAgICB2YXIgZGV2aWNlQXVkaW8gPSBnYW1lLmRldmljZS5hdWRpbztcclxuXHJcbiAgICB2YXIgYXVkaW9UeXBlO1xyXG5cclxuICAgIGlmIChkZXZpY2VBdWRpby53ZWJBdWRpbyAmJiAhKGF1ZGlvQ29uZmlnICYmIGF1ZGlvQ29uZmlnLmRpc2FibGVXZWJBdWRpbykpXHJcbiAgICB7XHJcbiAgICAgICAgYXVkaW9UeXBlID0gJ1dlYiBBdWRpbyc7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICgoYXVkaW9Db25maWcgJiYgYXVkaW9Db25maWcubm9BdWRpbykgfHwgKCFkZXZpY2VBdWRpby53ZWJBdWRpbyAmJiAhZGV2aWNlQXVkaW8uYXVkaW9EYXRhKSlcclxuICAgIHtcclxuICAgICAgICBhdWRpb1R5cGUgPSAnTm8gQXVkaW8nO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAgIGF1ZGlvVHlwZSA9ICdIVE1MNSBBdWRpbyc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFnYW1lLmRldmljZS5icm93c2VyLmllKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBjID0gJyc7XHJcbiAgICAgICAgdmFyIGFyZ3MgPSBbIGMgXTtcclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZmlnLmJhbm5lckJhY2tncm91bmRDb2xvcikpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgbGFzdENvbG9yO1xyXG5cclxuICAgICAgICAgICAgY29uZmlnLmJhbm5lckJhY2tncm91bmRDb2xvci5mb3JFYWNoKGZ1bmN0aW9uIChjb2xvcilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYyA9IGMuY29uY2F0KCclYyAnKTtcclxuXHJcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2goJ2JhY2tncm91bmQ6ICcgKyBjb2xvcik7XHJcblxyXG4gICAgICAgICAgICAgICAgbGFzdENvbG9yID0gY29sb3I7XHJcblxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vICBpbmplY3QgdGhlIHRleHQgY29sb3JcclxuICAgICAgICAgICAgYXJnc1thcmdzLmxlbmd0aCAtIDFdID0gJ2NvbG9yOiAnICsgY29uZmlnLmJhbm5lclRleHRDb2xvciArICc7IGJhY2tncm91bmQ6ICcgKyBsYXN0Q29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGMgPSBjLmNvbmNhdCgnJWMgJyk7XHJcblxyXG4gICAgICAgICAgICBhcmdzLnB1c2goJ2NvbG9yOiAnICsgY29uZmlnLmJhbm5lclRleHRDb2xvciArICc7IGJhY2tncm91bmQ6ICcgKyBjb25maWcuYmFubmVyQmFja2dyb3VuZENvbG9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBVUkwgbGluayBiYWNrZ3JvdW5kIGNvbG9yIChhbHdheXMgd2hpdGUpXHJcbiAgICAgICAgYXJncy5wdXNoKCdiYWNrZ3JvdW5kOiAjZmZmJyk7XHJcblxyXG4gICAgICAgIGlmIChjb25maWcuZ2FtZVRpdGxlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYyA9IGMuY29uY2F0KGNvbmZpZy5nYW1lVGl0bGUpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGNvbmZpZy5nYW1lVmVyc2lvbilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYyA9IGMuY29uY2F0KCcgdicgKyBjb25maWcuZ2FtZVZlcnNpb24pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNvbmZpZy5oaWRlUGhhc2VyKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjID0gYy5jb25jYXQoJyAvICcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgZmIgPSAodHlwZW9mIFBMVUdJTl9GQklOU1RBTlQpID8gJy1GQicgOiAnJztcclxuXHJcbiAgICAgICAgaWYgKCFjb25maWcuaGlkZVBoYXNlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGMgPSBjLmNvbmNhdCgnUGhhc2VyIHYnICsgQ09OU1QuVkVSU0lPTiArIGZiICsgJyAoJyArIHJlbmRlclR5cGUgKyAnIHwgJyArIGF1ZGlvVHlwZSArICcpJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjID0gYy5jb25jYXQoJyAlYyAnICsgY29uZmlnLmdhbWVVUkwpO1xyXG5cclxuICAgICAgICAvLyAgSW5qZWN0IHRoZSBuZXcgc3RyaW5nIGJhY2sgaW50byB0aGUgYXJncyBhcnJheVxyXG4gICAgICAgIGFyZ3NbMF0gPSBjO1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZy5hcHBseShjb25zb2xlLCBhcmdzKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHdpbmRvd1snY29uc29sZSddKVxyXG4gICAge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdQaGFzZXIgdicgKyBDT05TVC5WRVJTSU9OICsgJyAvIGh0dHBzOi8vcGhhc2VyLmlvJyk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IERlYnVnSGVhZGVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBBZGRUb0RPTSA9IHJlcXVpcmUoJy4uL2RvbS9BZGRUb0RPTScpO1xyXG52YXIgQW5pbWF0aW9uTWFuYWdlciA9IHJlcXVpcmUoJy4uL2FuaW1hdGlvbnMvQW5pbWF0aW9uTWFuYWdlcicpO1xyXG52YXIgQ2FjaGVNYW5hZ2VyID0gcmVxdWlyZSgnLi4vY2FjaGUvQ2FjaGVNYW5hZ2VyJyk7XHJcbnZhciBDYW52YXNQb29sID0gcmVxdWlyZSgnLi4vZGlzcGxheS9jYW52YXMvQ2FudmFzUG9vbCcpO1xyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi91dGlscy9DbGFzcycpO1xyXG52YXIgQ29uZmlnID0gcmVxdWlyZSgnLi9Db25maWcnKTtcclxudmFyIENyZWF0ZURPTUNvbnRhaW5lciA9IHJlcXVpcmUoJy4uL2RvbS9DcmVhdGVET01Db250YWluZXInKTtcclxudmFyIENyZWF0ZVJlbmRlcmVyID0gcmVxdWlyZSgnLi9DcmVhdGVSZW5kZXJlcicpO1xyXG52YXIgRGF0YU1hbmFnZXIgPSByZXF1aXJlKCcuLi9kYXRhL0RhdGFNYW5hZ2VyJyk7XHJcbnZhciBEZWJ1Z0hlYWRlciA9IHJlcXVpcmUoJy4vRGVidWdIZWFkZXInKTtcclxudmFyIERldmljZSA9IHJlcXVpcmUoJy4uL2RldmljZScpO1xyXG52YXIgRE9NQ29udGVudExvYWRlZCA9IHJlcXVpcmUoJy4uL2RvbS9ET01Db250ZW50TG9hZGVkJyk7XHJcbnZhciBFdmVudEVtaXR0ZXIgPSByZXF1aXJlKCdldmVudGVtaXR0ZXIzJyk7XHJcbnZhciBFdmVudHMgPSByZXF1aXJlKCcuL2V2ZW50cycpO1xyXG52YXIgSW5wdXRNYW5hZ2VyID0gcmVxdWlyZSgnLi4vaW5wdXQvSW5wdXRNYW5hZ2VyJyk7XHJcbnZhciBQbHVnaW5DYWNoZSA9IHJlcXVpcmUoJy4uL3BsdWdpbnMvUGx1Z2luQ2FjaGUnKTtcclxudmFyIFBsdWdpbk1hbmFnZXIgPSByZXF1aXJlKCcuLi9wbHVnaW5zL1BsdWdpbk1hbmFnZXInKTtcclxudmFyIFNjYWxlTWFuYWdlciA9IHJlcXVpcmUoJy4uL3NjYWxlL1NjYWxlTWFuYWdlcicpO1xyXG52YXIgU2NlbmVNYW5hZ2VyID0gcmVxdWlyZSgnLi4vc2NlbmUvU2NlbmVNYW5hZ2VyJyk7XHJcbnZhciBUZXh0dXJlRXZlbnRzID0gcmVxdWlyZSgnLi4vdGV4dHVyZXMvZXZlbnRzJyk7XHJcbnZhciBUZXh0dXJlTWFuYWdlciA9IHJlcXVpcmUoJy4uL3RleHR1cmVzL1RleHR1cmVNYW5hZ2VyJyk7XHJcbnZhciBUaW1lU3RlcCA9IHJlcXVpcmUoJy4vVGltZVN0ZXAnKTtcclxudmFyIFZpc2liaWxpdHlIYW5kbGVyID0gcmVxdWlyZSgnLi9WaXNpYmlsaXR5SGFuZGxlcicpO1xyXG5cclxuaWYgKHR5cGVvZiBGRUFUVVJFX1NPVU5EKVxyXG57XHJcbiAgICB2YXIgU291bmRNYW5hZ2VyQ3JlYXRvciA9IHJlcXVpcmUoJy4uL3NvdW5kL1NvdW5kTWFuYWdlckNyZWF0b3InKTtcclxufVxyXG5cclxuaWYgKHR5cGVvZiBQTFVHSU5fRkJJTlNUQU5UKVxyXG57XHJcbiAgICB2YXIgRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4gPSByZXF1aXJlKCcuLi8uLi9wbHVnaW5zL2ZiaW5zdGFudC9zcmMvRmFjZWJvb2tJbnN0YW50R2FtZXNQbHVnaW4nKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogVGhlIFBoYXNlci5HYW1lIGluc3RhbmNlIGlzIHRoZSBtYWluIGNvbnRyb2xsZXIgZm9yIHRoZSBlbnRpcmUgUGhhc2VyIGdhbWUuIEl0IGlzIHJlc3BvbnNpYmxlXHJcbiAqIGZvciBoYW5kbGluZyB0aGUgYm9vdCBwcm9jZXNzLCBwYXJzaW5nIHRoZSBjb25maWd1cmF0aW9uIHZhbHVlcywgY3JlYXRpbmcgdGhlIHJlbmRlcmVyLFxyXG4gKiBhbmQgc2V0dGluZy11cCBhbGwgb2YgdGhlIGdsb2JhbCBQaGFzZXIgc3lzdGVtcywgc3VjaCBhcyBzb3VuZCBhbmQgaW5wdXQuXHJcbiAqIE9uY2UgdGhhdCBpcyBjb21wbGV0ZSBpdCB3aWxsIHN0YXJ0IHRoZSBTY2VuZSBNYW5hZ2VyIGFuZCB0aGVuIGJlZ2luIHRoZSBtYWluIGdhbWUgbG9vcC5cclxuICpcclxuICogWW91IHNob3VsZCBnZW5lcmFsbHkgYXZvaWQgYWNjZXNzaW5nIGFueSBvZiB0aGUgc3lzdGVtcyBjcmVhdGVkIGJ5IEdhbWUsIGFuZCBpbnN0ZWFkIHVzZSB0aG9zZVxyXG4gKiBtYWRlIGF2YWlsYWJsZSB0byB5b3UgdmlhIHRoZSBQaGFzZXIuU2NlbmUgU3lzdGVtcyBjbGFzcyBpbnN0ZWFkLlxyXG4gKlxyXG4gKiBAY2xhc3MgR2FtZVxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAZmlyZXMgUGhhc2VyLkNvcmUuRXZlbnRzI0JMVVJcclxuICogQGZpcmVzIFBoYXNlci5Db3JlLkV2ZW50cyNGT0NVU1xyXG4gKiBAZmlyZXMgUGhhc2VyLkNvcmUuRXZlbnRzI0hJRERFTlxyXG4gKiBAZmlyZXMgUGhhc2VyLkNvcmUuRXZlbnRzI1ZJU0lCTEVcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkNvcmUuR2FtZUNvbmZpZ30gW0dhbWVDb25maWddIC0gVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB5b3VyIFBoYXNlciBHYW1lIGluc3RhbmNlLlxyXG4gKi9cclxudmFyIEdhbWUgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gR2FtZSAoY29uZmlnKVxyXG4gICAge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBwYXJzZWQgR2FtZSBDb25maWd1cmF0aW9uIG9iamVjdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoZSB2YWx1ZXMgc3RvcmVkIHdpdGhpbiB0aGlzIG9iamVjdCBhcmUgcmVhZC1vbmx5IGFuZCBzaG91bGQgbm90IGJlIGNoYW5nZWQgYXQgcnVuLXRpbWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZSNjb25maWdcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkNvcmUuQ29uZmlnfVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY29uZmlnID0gbmV3IENvbmZpZyhjb25maWcpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byBlaXRoZXIgdGhlIENhbnZhcyBvciBXZWJHTCBSZW5kZXJlciB0aGF0IHRoaXMgR2FtZSBpcyB1c2luZy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lI3JlbmRlcmVyXHJcbiAgICAgICAgICogQHR5cGUgeyhQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfFBoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyKX1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJlbmRlcmVyID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gYW4gSFRNTCBEaXYgRWxlbWVudCB1c2VkIGFzIHRoZSBET00gRWxlbWVudCBDb250YWluZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBPbmx5IHNldCBpZiBgY3JlYXRlRE9NQ29udGFpbmVyYCBpcyBgdHJ1ZWAgaW4gdGhlIGdhbWUgY29uZmlnIChieSBkZWZhdWx0IGl0IGlzIGBmYWxzZWApIGFuZFxyXG4gICAgICAgICAqIGlmIHlvdSBwcm92aWRlIGEgcGFyZW50IGVsZW1lbnQgdG8gaW5zZXJ0IHRoZSBQaGFzZXIgR2FtZSBpbnNpZGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBTZWUgdGhlIERPTSBFbGVtZW50IEdhbWUgT2JqZWN0IGZvciBtb3JlIGRldGFpbHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZSNkb21Db250YWluZXJcclxuICAgICAgICAgKiBAdHlwZSB7SFRNTERpdkVsZW1lbnR9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZG9tQ29udGFpbmVyID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIEhUTUwgQ2FudmFzIEVsZW1lbnQgdGhhdCBQaGFzZXIgdXNlcyB0byByZW5kZXIgdGhlIGdhbWUuXHJcbiAgICAgICAgICogVGhpcyBpcyBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgYnkgUGhhc2VyIHVubGVzcyB5b3UgcHJvdmlkZSBhIGBjYW52YXNgIHByb3BlcnR5XHJcbiAgICAgICAgICogaW4geW91ciBHYW1lIENvbmZpZy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lI2NhbnZhc1xyXG4gICAgICAgICAqIEB0eXBlIHtIVE1MQ2FudmFzRWxlbWVudH1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNhbnZhcyA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBSZW5kZXJpbmcgQ29udGV4dCBiZWxvbmdpbmcgdG8gdGhlIENhbnZhcyBFbGVtZW50IHRoaXMgZ2FtZSBpcyByZW5kZXJpbmcgdG8uXHJcbiAgICAgICAgICogSWYgdGhlIGdhbWUgaXMgcnVubmluZyB1bmRlciBDYW52YXMgaXQgd2lsbCBiZSBhIDJkIENhbnZhcyBSZW5kZXJpbmcgQ29udGV4dC5cclxuICAgICAgICAgKiBJZiB0aGUgZ2FtZSBpcyBydW5uaW5nIHVuZGVyIFdlYkdMIGl0IHdpbGwgYmUgYSBXZWJHTCBSZW5kZXJpbmcgQ29udGV4dC5cclxuICAgICAgICAgKiBUaGlzIGNvbnRleHQgaXMgY3JlYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IFBoYXNlciB1bmxlc3MgeW91IHByb3ZpZGUgYSBgY29udGV4dGAgcHJvcGVydHlcclxuICAgICAgICAgKiBpbiB5b3VyIEdhbWUgQ29uZmlnLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWUjY29udGV4dFxyXG4gICAgICAgICAqIEB0eXBlIHsoQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfFdlYkdMUmVuZGVyaW5nQ29udGV4dCl9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBmbGFnIGluZGljYXRpbmcgd2hlbiB0aGlzIEdhbWUgaW5zdGFuY2UgaGFzIGZpbmlzaGVkIGl0cyBib290IHByb2Nlc3MuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZSNpc0Jvb3RlZFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaXNCb290ZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBmbGFnIGluZGljYXRpbmcgaWYgdGhpcyBHYW1lIGlzIGN1cnJlbnRseSBydW5uaW5nIGl0cyBnYW1lIHN0ZXAgb3Igbm90LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWUjaXNSdW5uaW5nXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gRXZlbnQgRW1pdHRlciB3aGljaCBpcyB1c2VkIHRvIGJyb2FkY2FzdCBnYW1lLWxldmVsIGV2ZW50cyBmcm9tIHRoZSBnbG9iYWwgc3lzdGVtcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lI2V2ZW50c1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuRXZlbnRzLkV2ZW50RW1pdHRlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gaW5zdGFuY2Ugb2YgdGhlIEFuaW1hdGlvbiBNYW5hZ2VyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogVGhlIEFuaW1hdGlvbiBNYW5hZ2VyIGlzIGEgZ2xvYmFsIHN5c3RlbSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYWxsIGFuaW1hdGlvbnMgdXNlZCB3aXRoaW4geW91ciBnYW1lLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWUjYW5pbXNcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uTWFuYWdlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFuaW1zID0gbmV3IEFuaW1hdGlvbk1hbmFnZXIodGhpcyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGluc3RhbmNlIG9mIHRoZSBUZXh0dXJlIE1hbmFnZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBUaGUgVGV4dHVyZSBNYW5hZ2VyIGlzIGEgZ2xvYmFsIHN5c3RlbSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYWxsIHRleHR1cmVzIGJlaW5nIHVzZWQgYnkgeW91ciBnYW1lLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWUjdGV4dHVyZXNcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlRleHR1cmVzLlRleHR1cmVNYW5hZ2VyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudGV4dHVyZXMgPSBuZXcgVGV4dHVyZU1hbmFnZXIodGhpcyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGluc3RhbmNlIG9mIHRoZSBDYWNoZSBNYW5hZ2VyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogVGhlIENhY2hlIE1hbmFnZXIgaXMgYSBnbG9iYWwgc3lzdGVtIHJlc3BvbnNpYmxlIGZvciBjYWNoaW5nLCBhY2Nlc3NpbmcgYW5kIHJlbGVhc2luZyBleHRlcm5hbCBnYW1lIGFzc2V0cy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lI2NhY2hlXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5DYWNoZS5DYWNoZU1hbmFnZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jYWNoZSA9IG5ldyBDYWNoZU1hbmFnZXIodGhpcyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGluc3RhbmNlIG9mIHRoZSBEYXRhIE1hbmFnZXJcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lI3JlZ2lzdHJ5XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5EYXRhLkRhdGFNYW5hZ2VyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucmVnaXN0cnkgPSBuZXcgRGF0YU1hbmFnZXIodGhpcyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGluc3RhbmNlIG9mIHRoZSBJbnB1dCBNYW5hZ2VyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogVGhlIElucHV0IE1hbmFnZXIgaXMgYSBnbG9iYWwgc3lzdGVtIHJlc3BvbnNpYmxlIGZvciB0aGUgY2FwdHVyZSBvZiBicm93c2VyLWxldmVsIGlucHV0IGV2ZW50cy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lI2lucHV0XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5JbnB1dC5JbnB1dE1hbmFnZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pbnB1dCA9IG5ldyBJbnB1dE1hbmFnZXIodGhpcywgdGhpcy5jb25maWcpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbiBpbnN0YW5jZSBvZiB0aGUgU2NlbmUgTWFuYWdlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoZSBTY2VuZSBNYW5hZ2VyIGlzIGEgZ2xvYmFsIHN5c3RlbSByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcsIG1vZGlmeWluZyBhbmQgdXBkYXRpbmcgdGhlIFNjZW5lcyBpbiB5b3VyIGdhbWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZSNzY2VuZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU2NlbmVzLlNjZW5lTWFuYWdlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjZW5lID0gbmV3IFNjZW5lTWFuYWdlcih0aGlzLCB0aGlzLmNvbmZpZy5zY2VuZUNvbmZpZyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBEZXZpY2UgaW5zcGVjdG9yLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQ29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRldmljZSBydW5uaW5nIHRoaXMgZ2FtZSwgc3VjaCBhcyBPUywgYnJvd3NlciB2ZW5kb3IgYW5kIGZlYXR1cmUgc3VwcG9ydC5cclxuICAgICAgICAgKiBVc2VkIGJ5IHZhcmlvdXMgc3lzdGVtcyB0byBkZXRlcm1pbmUgY2FwYWJpbGl0aWVzIGFuZCBjb2RlIHBhdGhzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWUjZGV2aWNlXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5EZXZpY2VDb25mfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGV2aWNlID0gRGV2aWNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbiBpbnN0YW5jZSBvZiB0aGUgU2NhbGUgTWFuYWdlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoZSBTY2FsZSBNYW5hZ2VyIGlzIGEgZ2xvYmFsIHN5c3RlbSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgc2NhbGluZyBvZiB0aGUgZ2FtZSBjYW52YXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZSNzY2FsZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU2NhbGUuU2NhbGVNYW5hZ2VyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE2LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjYWxlID0gbmV3IFNjYWxlTWFuYWdlcih0aGlzLCB0aGlzLmNvbmZpZyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGluc3RhbmNlIG9mIHRoZSBiYXNlIFNvdW5kIE1hbmFnZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBUaGUgU291bmQgTWFuYWdlciBpcyBhIGdsb2JhbCBzeXN0ZW0gcmVzcG9uc2libGUgZm9yIHRoZSBwbGF5YmFjayBhbmQgdXBkYXRpbmcgb2YgYWxsIGF1ZGlvIGluIHlvdXIgZ2FtZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFlvdSBjYW4gZGlzYWJsZSB0aGUgaW5jbHVzaW9uIG9mIHRoZSBTb3VuZCBNYW5hZ2VyIGluIHlvdXIgYnVpbGQgYnkgdG9nZ2xpbmcgdGhlIHdlYnBhY2sgYEZFQVRVUkVfU09VTkRgIGZsYWcuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZSNzb3VuZFxyXG4gICAgICAgICAqIEB0eXBlIHsoUGhhc2VyLlNvdW5kLk5vQXVkaW9Tb3VuZE1hbmFnZXJ8UGhhc2VyLlNvdW5kLkhUTUw1QXVkaW9Tb3VuZE1hbmFnZXJ8UGhhc2VyLlNvdW5kLldlYkF1ZGlvU291bmRNYW5hZ2VyKX1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNvdW5kID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBGRUFUVVJFX1NPVU5EKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zb3VuZCA9IFNvdW5kTWFuYWdlckNyZWF0b3IuY3JlYXRlKHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gaW5zdGFuY2Ugb2YgdGhlIFRpbWUgU3RlcC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoZSBUaW1lIFN0ZXAgaXMgYSBnbG9iYWwgc3lzdGVtIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nLXVwIGFuZCByZXNwb25kaW5nIHRvIHRoZSBicm93c2VyIGZyYW1lIGV2ZW50cywgcHJvY2Vzc2luZ1xyXG4gICAgICAgICAqIHRoZW0gYW5kIGNhbGN1bGF0aW5nIGRlbHRhIHZhbHVlcy4gSXQgdGhlbiBhdXRvbWF0aWNhbGx5IGNhbGxzIHRoZSBnYW1lIHN0ZXAuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZSNsb29wXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5Db3JlLlRpbWVTdGVwfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubG9vcCA9IG5ldyBUaW1lU3RlcCh0aGlzLCB0aGlzLmNvbmZpZy5mcHMpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbiBpbnN0YW5jZSBvZiB0aGUgUGx1Z2luIE1hbmFnZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBUaGUgUGx1Z2luIE1hbmFnZXIgaXMgYSBnbG9iYWwgc3lzdGVtIHRoYXQgYWxsb3dzIHBsdWdpbnMgdG8gcmVnaXN0ZXIgdGhlbXNlbHZlcyB3aXRoIGl0LCBhbmQgY2FuIHRoZW4gaW5zdGFsbFxyXG4gICAgICAgICAqIHRob3NlIHBsdWdpbnMgaW50byBTY2VuZXMgYXMgcmVxdWlyZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZSNwbHVnaW5zXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5QbHVnaW5zLlBsdWdpbk1hbmFnZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wbHVnaW5zID0gbmV3IFBsdWdpbk1hbmFnZXIodGhpcywgdGhpcy5jb25maWcpO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIFBMVUdJTl9GQklOU1RBTlQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogQW4gaW5zdGFuY2Ugb2YgdGhlIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgUGx1Z2luLlxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKiBUaGlzIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIHBsdWdpbiBoYXMgYmVlbiBidWlsdCBpbnRvIFBoYXNlcixcclxuICAgICAgICAgICAgICogb3IgeW91J3JlIHVzaW5nIHRoZSBzcGVjaWFsIEZhY2Vib29rIEluc3RhbnQgR2FtZXMgY3VzdG9tIGJ1aWxkLlxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZSNmYWNlYm9va1xyXG4gICAgICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2lufVxyXG4gICAgICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICB0aGlzLmZhY2Vib29rID0gbmV3IEZhY2Vib29rSW5zdGFudEdhbWVzUGx1Z2luKHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSXMgdGhpcyBHYW1lIHBlbmRpbmcgZGVzdHJ1Y3Rpb24gYXQgdGhlIHN0YXJ0IG9mIHRoZSBuZXh0IGZyYW1lP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWUjcGVuZGluZ0Rlc3Ryb3lcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucGVuZGluZ0Rlc3Ryb3kgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUmVtb3ZlIHRoZSBDYW52YXMgb25jZSB0aGUgZGVzdHJveSBpcyBvdmVyP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWUjcmVtb3ZlQ2FudmFzXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJlbW92ZUNhbnZhcyA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBSZW1vdmUgZXZlcnl0aGluZyB3aGVuIHRoZSBnYW1lIGlzIGRlc3Ryb3llZC5cclxuICAgICAgICAgKiBZb3UgY2Fubm90IGNyZWF0ZSBhIG5ldyBQaGFzZXIgaW5zdGFuY2Ugb24gdGhlIHNhbWUgd2ViIHBhZ2UgYWZ0ZXIgZG9pbmcgdGhpcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lI25vUmV0dXJuXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ub1JldHVybiA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBEb2VzIHRoZSB3aW5kb3cgdGhlIGdhbWUgaXMgcnVubmluZyBpbiBjdXJyZW50bHkgaGF2ZSBmb2N1cyBvciBub3Q/XHJcbiAgICAgICAgICogVGhpcyBpcyBtb2RpZmllZCBieSB0aGUgVmlzaWJpbGl0eUhhbmRsZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZSNoYXNGb2N1c1xyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjkuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLy8gIFdhaXQgZm9yIHRoZSBET00gUmVhZHkgZXZlbnQsIHRoZW4gY2FsbCBib290LlxyXG4gICAgICAgIERPTUNvbnRlbnRMb2FkZWQodGhpcy5ib290LmJpbmQodGhpcykpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIERPTSBpcyByZWFkeS4gSXQgaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoZSByZW5kZXJlcixcclxuICAgICAqIGRpc3BsYXlpbmcgdGhlIERlYnVnIEhlYWRlciwgYWRkaW5nIHRoZSBnYW1lIGNhbnZhcyB0byB0aGUgRE9NIGFuZCBlbWl0dGluZyB0aGUgJ2Jvb3QnIGV2ZW50LlxyXG4gICAgICogSXQgbGlzdGVucyBmb3IgYSAncmVhZHknIGV2ZW50IGZyb20gdGhlIGJhc2Ugc3lzdGVtcyBhbmQgb25jZSByZWNlaXZlZCBpdCB3aWxsIGNhbGwgYEdhbWUuc3RhcnRgLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWUjYm9vdFxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5Db3JlLkV2ZW50cyNCT09UXHJcbiAgICAgKiBAbGlzdGVucyBQaGFzZXIuVGV4dHVyZXMuRXZlbnRzI1JFQURZXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgYm9vdDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAoIVBsdWdpbkNhY2hlLmhhc0NvcmUoJ0V2ZW50RW1pdHRlcicpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdBYm9ydGluZy4gQ29yZSBQbHVnaW5zIG1pc3NpbmcuJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaXNCb290ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLmNvbmZpZy5wcmVCb290KHRoaXMpO1xyXG5cclxuICAgICAgICB0aGlzLnNjYWxlLnByZUJvb3QoKTtcclxuXHJcbiAgICAgICAgQ3JlYXRlUmVuZGVyZXIodGhpcyk7XHJcblxyXG4gICAgICAgIENyZWF0ZURPTUNvbnRhaW5lcih0aGlzKTtcclxuXHJcbiAgICAgICAgRGVidWdIZWFkZXIodGhpcyk7XHJcblxyXG4gICAgICAgIEFkZFRvRE9NKHRoaXMuY2FudmFzLCB0aGlzLmNvbmZpZy5wYXJlbnQpO1xyXG5cclxuICAgICAgICAvLyAgVGhlIFRleHR1cmUgTWFuYWdlciBoYXMgdG8gd2FpdCBvbiBhIGNvdXBsZSBvZiBub24tYmxvY2tpbmcgZXZlbnRzIGJlZm9yZSBpdCdzIGZ1bGx5IHJlYWR5LlxyXG4gICAgICAgIC8vICBTbyBpdCB3aWxsIGVtaXQgdGhpcyBpbnRlcm5hbCBldmVudCB3aGVuIGRvbmU6XHJcbiAgICAgICAgdGhpcy50ZXh0dXJlcy5vbmNlKFRleHR1cmVFdmVudHMuUkVBRFksIHRoaXMudGV4dHVyZXNSZWFkeSwgdGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoRXZlbnRzLkJPT1QpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIFRleHR1cmUgTWFuYWdlciBoYXMgZmluaXNoZWQgc2V0dGluZyB1cCBhbmQgcHJlcGFyaW5nIHRoZVxyXG4gICAgICogZGVmYXVsdCB0ZXh0dXJlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lI3RleHR1cmVzUmVhZHlcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkdhbWUjUkVBRFlcclxuICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAqL1xyXG4gICAgdGV4dHVyZXNSZWFkeTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICAvLyAgU3RhcnQgYWxsIHRoZSBvdGhlciBzeXN0ZW1zXHJcbiAgICAgICAgdGhpcy5ldmVudHMuZW1pdChFdmVudHMuUkVBRFkpO1xyXG5cclxuICAgICAgICB0aGlzLnN0YXJ0KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgR2FtZS5ib290IG9uY2UgYWxsIG9mIHRoZSBnbG9iYWwgc3lzdGVtcyBoYXZlIGZpbmlzaGVkIHNldHRpbmcgdGhlbXNlbHZlcyB1cC5cclxuICAgICAqIEJ5IHRoaXMgcG9pbnQgdGhlIEdhbWUgaXMgbm93IHJlYWR5IHRvIHN0YXJ0IHRoZSBtYWluIGxvb3AgcnVubmluZy5cclxuICAgICAqIEl0IHdpbGwgYWxzbyBlbmFibGUgdGhlIFZpc2liaWxpdHkgSGFuZGxlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lI3N0YXJ0XHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgc3RhcnQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLmNvbmZpZy5wb3N0Qm9vdCh0aGlzKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmVuZGVyZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmxvb3Auc3RhcnQodGhpcy5zdGVwLmJpbmQodGhpcykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmxvb3Auc3RhcnQodGhpcy5oZWFkbGVzc1N0ZXAuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBWaXNpYmlsaXR5SGFuZGxlcih0aGlzKTtcclxuXHJcbiAgICAgICAgdmFyIGV2ZW50RW1pdHRlciA9IHRoaXMuZXZlbnRzO1xyXG5cclxuICAgICAgICBldmVudEVtaXR0ZXIub24oRXZlbnRzLkhJRERFTiwgdGhpcy5vbkhpZGRlbiwgdGhpcyk7XHJcbiAgICAgICAgZXZlbnRFbWl0dGVyLm9uKEV2ZW50cy5WSVNJQkxFLCB0aGlzLm9uVmlzaWJsZSwgdGhpcyk7XHJcbiAgICAgICAgZXZlbnRFbWl0dGVyLm9uKEV2ZW50cy5CTFVSLCB0aGlzLm9uQmx1ciwgdGhpcyk7XHJcbiAgICAgICAgZXZlbnRFbWl0dGVyLm9uKEV2ZW50cy5GT0NVUywgdGhpcy5vbkZvY3VzLCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWFpbiBHYW1lIFN0ZXAuIENhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBUaW1lIFN0ZXAsIG9uY2UgcGVyIGJyb3dzZXIgZnJhbWUgKHR5cGljYWxseSBhcyBhIHJlc3VsdCBvZlxyXG4gICAgICogUmVxdWVzdCBBbmltYXRpb24gRnJhbWUsIG9yIFNldCBUaW1lb3V0IG9uIHZlcnkgb2xkIGJyb3dzZXJzLilcclxuICAgICAqXHJcbiAgICAgKiBUaGUgc3RlcCB3aWxsIHVwZGF0ZSB0aGUgZ2xvYmFsIG1hbmFnZXJzIGZpcnN0LCB0aGVuIHByb2NlZWQgdG8gdXBkYXRlIGVhY2ggU2NlbmUgaW4gdHVybiwgdmlhIHRoZSBTY2VuZSBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEl0IHdpbGwgdGhlbiByZW5kZXIgZWFjaCBTY2VuZSBpbiB0dXJuLCB2aWEgdGhlIFJlbmRlcmVyLiBUaGlzIHByb2Nlc3MgZW1pdHMgYHByZXJlbmRlcmAgYW5kIGBwb3N0cmVuZGVyYCBldmVudHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZSNzdGVwXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNvcmUuRXZlbnRzI1BSRV9TVEVQXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNvcmUuRXZlbnRzI1NURVBcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ29yZS5FdmVudHMjUE9TVF9TVEVQXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNvcmUuRXZlbnRzI1BSRV9SRU5ERVJcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQ29yZS5FdmVudHMjUE9TVF9SRU5ERVJcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gVGhlIGN1cnJlbnQgdGltZS4gRWl0aGVyIGEgSGlnaCBSZXNvbHV0aW9uIFRpbWVyIHZhbHVlIGlmIGl0IGNvbWVzIGZyb20gUmVxdWVzdCBBbmltYXRpb24gRnJhbWUsIG9yIERhdGUubm93IGlmIHVzaW5nIFNldFRpbWVvdXQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGVsdGEgLSBUaGUgZGVsdGEgdGltZSBpbiBtcyBzaW5jZSB0aGUgbGFzdCBmcmFtZS4gVGhpcyBpcyBhIHNtb290aGVkIGFuZCBjYXBwZWQgdmFsdWUgYmFzZWQgb24gdGhlIEZQUyByYXRlLlxyXG4gICAgICovXHJcbiAgICBzdGVwOiBmdW5jdGlvbiAodGltZSwgZGVsdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMucGVuZGluZ0Rlc3Ryb3kpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ydW5EZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgZXZlbnRFbWl0dGVyID0gdGhpcy5ldmVudHM7XHJcblxyXG4gICAgICAgIC8vICBHbG9iYWwgTWFuYWdlcnMgbGlrZSBJbnB1dCBhbmQgU291bmQgdXBkYXRlIGluIHRoZSBwcmVzdGVwXHJcblxyXG4gICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KEV2ZW50cy5QUkVfU1RFUCwgdGltZSwgZGVsdGEpO1xyXG5cclxuICAgICAgICAvLyAgVGhpcyBpcyBtb3N0bHkgbWVhbnQgZm9yIHVzZXItbGFuZCBjb2RlIGFuZCBwbHVnaW5zXHJcblxyXG4gICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KEV2ZW50cy5TVEVQLCB0aW1lLCBkZWx0YSk7XHJcblxyXG4gICAgICAgIC8vICBVcGRhdGUgdGhlIFNjZW5lIE1hbmFnZXIgYW5kIGFsbCBhY3RpdmUgU2NlbmVzXHJcblxyXG4gICAgICAgIHRoaXMuc2NlbmUudXBkYXRlKHRpbWUsIGRlbHRhKTtcclxuXHJcbiAgICAgICAgLy8gIE91ciBmaW5hbCBldmVudCBiZWZvcmUgcmVuZGVyaW5nIHN0YXJ0c1xyXG5cclxuICAgICAgICBldmVudEVtaXR0ZXIuZW1pdChFdmVudHMuUE9TVF9TVEVQLCB0aW1lLCBkZWx0YSk7XHJcblxyXG4gICAgICAgIHZhciByZW5kZXJlciA9IHRoaXMucmVuZGVyZXI7XHJcblxyXG4gICAgICAgIC8vICBSdW4gdGhlIFByZS1yZW5kZXIgKGNsZWFyaW5nIHRoZSBjYW52YXMsIHNldHRpbmcgYmFja2dyb3VuZCBjb2xvcnMsIGV0YylcclxuXHJcbiAgICAgICAgcmVuZGVyZXIucHJlUmVuZGVyKCk7XHJcblxyXG4gICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KEV2ZW50cy5QUkVfUkVOREVSLCByZW5kZXJlciwgdGltZSwgZGVsdGEpO1xyXG5cclxuICAgICAgICAvLyAgVGhlIG1haW4gcmVuZGVyIGxvb3AuIEl0ZXJhdGVzIGFsbCBTY2VuZXMgYW5kIGFsbCBDYW1lcmFzIGluIHRob3NlIHNjZW5lcywgcmVuZGVyaW5nIHRvIHRoZSByZW5kZXJlciBpbnN0YW5jZS5cclxuXHJcbiAgICAgICAgdGhpcy5zY2VuZS5yZW5kZXIocmVuZGVyZXIpO1xyXG5cclxuICAgICAgICAvLyAgVGhlIFBvc3QtUmVuZGVyIGNhbGwuIFRpZGllcyB1cCBsb29zZSBlbmQsIHRha2VzIHNuYXBzaG90cywgZXRjLlxyXG5cclxuICAgICAgICByZW5kZXJlci5wb3N0UmVuZGVyKCk7XHJcblxyXG4gICAgICAgIC8vICBUaGUgZmluYWwgZXZlbnQgYmVmb3JlIHRoZSBzdGVwIHJlcGVhdHMuIFlvdXIgbGFzdCBjaGFuY2UgdG8gZG8gYW55dGhpbmcgdG8gdGhlIGNhbnZhcyBiZWZvcmUgaXQgYWxsIHN0YXJ0cyBhZ2Fpbi5cclxuXHJcbiAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoRXZlbnRzLlBPU1RfUkVOREVSLCByZW5kZXJlciwgdGltZSwgZGVsdGEpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEEgc3BlY2lhbCB2ZXJzaW9uIG9mIHRoZSBHYW1lIFN0ZXAgZm9yIHRoZSBIRUFETEVTUyByZW5kZXJlciBvbmx5LlxyXG4gICAgICpcclxuICAgICAqIFRoZSBtYWluIEdhbWUgU3RlcC4gQ2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIFRpbWUgU3RlcCwgb25jZSBwZXIgYnJvd3NlciBmcmFtZSAodHlwaWNhbGx5IGFzIGEgcmVzdWx0IG9mXHJcbiAgICAgKiBSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSwgb3IgU2V0IFRpbWVvdXQgb24gdmVyeSBvbGQgYnJvd3NlcnMuKVxyXG4gICAgICpcclxuICAgICAqIFRoZSBzdGVwIHdpbGwgdXBkYXRlIHRoZSBnbG9iYWwgbWFuYWdlcnMgZmlyc3QsIHRoZW4gcHJvY2VlZCB0byB1cGRhdGUgZWFjaCBTY2VuZSBpbiB0dXJuLCB2aWEgdGhlIFNjZW5lIE1hbmFnZXIuXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBwcm9jZXNzIGVtaXRzIGBwcmVyZW5kZXJgIGFuZCBgcG9zdHJlbmRlcmAgZXZlbnRzLCBldmVuIHRob3VnaCBub3RoaW5nIGFjdHVhbGx5IGRpc3BsYXlzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWUjaGVhZGxlc3NTdGVwXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkdhbWUjUFJFX1JFTkRFUlxyXG4gICAgICogQGZpcmVzIFBoYXNlci5HYW1lI1BPU1RfUkVOREVSXHJcbiAgICAgKiBAc2luY2UgMy4yLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdGltZSAtIFRoZSBjdXJyZW50IHRpbWUuIEVpdGhlciBhIEhpZ2ggUmVzb2x1dGlvbiBUaW1lciB2YWx1ZSBpZiBpdCBjb21lcyBmcm9tIFJlcXVlc3QgQW5pbWF0aW9uIEZyYW1lLCBvciBEYXRlLm5vdyBpZiB1c2luZyBTZXRUaW1lb3V0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlbHRhIC0gVGhlIGRlbHRhIHRpbWUgaW4gbXMgc2luY2UgdGhlIGxhc3QgZnJhbWUuIFRoaXMgaXMgYSBzbW9vdGhlZCBhbmQgY2FwcGVkIHZhbHVlIGJhc2VkIG9uIHRoZSBGUFMgcmF0ZS5cclxuICAgICAqL1xyXG4gICAgaGVhZGxlc3NTdGVwOiBmdW5jdGlvbiAodGltZSwgZGVsdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMucGVuZGluZ0Rlc3Ryb3kpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ydW5EZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgZXZlbnRFbWl0dGVyID0gdGhpcy5ldmVudHM7XHJcblxyXG4gICAgICAgIC8vICBHbG9iYWwgTWFuYWdlcnNcclxuXHJcbiAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoRXZlbnRzLlBSRV9TVEVQLCB0aW1lLCBkZWx0YSk7XHJcblxyXG4gICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KEV2ZW50cy5TVEVQLCB0aW1lLCBkZWx0YSk7XHJcblxyXG4gICAgICAgIC8vICBTY2VuZXNcclxuXHJcbiAgICAgICAgdGhpcy5zY2VuZS51cGRhdGUodGltZSwgZGVsdGEpO1xyXG5cclxuICAgICAgICBldmVudEVtaXR0ZXIuZW1pdChFdmVudHMuUE9TVF9TVEVQLCB0aW1lLCBkZWx0YSk7XHJcblxyXG4gICAgICAgIC8vICBSZW5kZXJcclxuXHJcbiAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoRXZlbnRzLlBSRV9SRU5ERVIpO1xyXG5cclxuICAgICAgICBldmVudEVtaXR0ZXIuZW1pdChFdmVudHMuUE9TVF9SRU5ERVIpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBWaXNpYmlsaXR5IEhhbmRsZXIuXHJcbiAgICAgKiBUaGlzIHdpbGwgcGF1c2UgdGhlIG1haW4gbG9vcCBhbmQgdGhlbiBlbWl0IGEgcGF1c2UgZXZlbnQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZSNvbkhpZGRlblxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5Db3JlLkV2ZW50cyNQQVVTRVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIG9uSGlkZGVuOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMubG9vcC5wYXVzZSgpO1xyXG5cclxuICAgICAgICB0aGlzLmV2ZW50cy5lbWl0KEV2ZW50cy5QQVVTRSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIFZpc2liaWxpdHkgSGFuZGxlci5cclxuICAgICAqIFRoaXMgd2lsbCByZXN1bWUgdGhlIG1haW4gbG9vcCBhbmQgdGhlbiBlbWl0IGEgcmVzdW1lIGV2ZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWUjb25WaXNpYmxlXHJcbiAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkNvcmUuRXZlbnRzI1JFU1VNRVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIG9uVmlzaWJsZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmxvb3AucmVzdW1lKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoRXZlbnRzLlJFU1VNRSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIFZpc2liaWxpdHkgSGFuZGxlci5cclxuICAgICAqIFRoaXMgd2lsbCBzZXQgdGhlIG1haW4gbG9vcCBpbnRvIGEgJ2JsdXJyZWQnIHN0YXRlLCB3aGljaCBwYXVzZXMgaXQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZSNvbkJsdXJcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBvbkJsdXI6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5oYXNGb2N1cyA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLmxvb3AuYmx1cigpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBWaXNpYmlsaXR5IEhhbmRsZXIuXHJcbiAgICAgKiBUaGlzIHdpbGwgc2V0IHRoZSBtYWluIGxvb3AgaW50byBhICdmb2N1c2VkJyBzdGF0ZSwgd2hpY2ggcmVzdW1lcyBpdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lI29uRm9jdXNcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBvbkZvY3VzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLmxvb3AuZm9jdXMoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGdhbWUgZnJhbWUuXHJcbiAgICAgKlxyXG4gICAgICogV2hlbiB0aGUgZ2FtZSBzdGFydHMgcnVubmluZywgdGhlIGZyYW1lIGlzIGluY3JlbWVudGVkIGV2ZXJ5IHRpbWUgUmVxdWVzdCBBbmltYXRpb24gRnJhbWUsIG9yIFNldCBUaW1lb3V0LCBmaXJlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lI2dldEZyYW1lXHJcbiAgICAgKiBAc2luY2UgMy4xNi4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgY3VycmVudCBnYW1lIGZyYW1lLlxyXG4gICAgICovXHJcbiAgICBnZXRGcmFtZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb29wLmZyYW1lO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIHRpbWUgdGhhdCB0aGUgY3VycmVudCBnYW1lIHN0ZXAgc3RhcnRlZCBhdCwgYXMgYmFzZWQgb24gYHBlcmZvcm1hbmNlLm5vd2AuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZSNnZXRUaW1lXHJcbiAgICAgKiBAc2luY2UgMy4xNi4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgY3VycmVudCBnYW1lIHRpbWVzdGFtcC5cclxuICAgICAqL1xyXG4gICAgZ2V0VGltZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb29wLm5vdztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFncyB0aGlzIEdhbWUgaW5zdGFuY2UgYXMgbmVlZGluZyB0byBiZSBkZXN0cm95ZWQgb24gdGhlIF9uZXh0IGZyYW1lXywgbWFraW5nIHRoaXMgYW4gYXN5bmNocm9ub3VzIG9wZXJhdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBJdCB3aWxsIHdhaXQgdW50aWwgdGhlIGN1cnJlbnQgZnJhbWUgaGFzIGNvbXBsZXRlZCBhbmQgdGhlbiBjYWxsIGBydW5EZXN0cm95YCBpbnRlcm5hbGx5LlxyXG4gICAgICpcclxuICAgICAqIElmIHlvdSBuZWVkIHRvIHJlYWN0IHRvIHRoZSBnYW1lcyBldmVudHVhbCBkZXN0cnVjdGlvbiwgbGlzdGVuIGZvciB0aGUgYERFU1RST1lgIGV2ZW50LlxyXG4gICAgICpcclxuICAgICAqIElmIHlvdSAqKmRvIG5vdCoqIG5lZWQgdG8gcnVuIFBoYXNlciBhZ2FpbiBvbiB0aGUgc2FtZSB3ZWIgcGFnZSB5b3UgY2FuIHNldCB0aGUgYG5vUmV0dXJuYCBhcmd1bWVudCB0byBgdHJ1ZWAgYW5kIGl0IHdpbGwgZnJlZS11cFxyXG4gICAgICogbWVtb3J5IGJlaW5nIGhlbGQgYnkgdGhlIGNvcmUgUGhhc2VyIHBsdWdpbnMuIElmIHlvdSBkbyBuZWVkIHRvIGNyZWF0ZSBhbm90aGVyIGdhbWUgaW5zdGFuY2Ugb24gdGhlIHNhbWUgcGFnZSwgbGVhdmUgdGhpcyBhcyBgZmFsc2VgLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWUjZGVzdHJveVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5Db3JlLkV2ZW50cyNERVNUUk9ZXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJlbW92ZUNhbnZhcyAtIFNldCB0byBgdHJ1ZWAgaWYgeW91IHdvdWxkIGxpa2UgdGhlIHBhcmVudCBjYW52YXMgZWxlbWVudCByZW1vdmVkIGZyb20gdGhlIERPTSwgb3IgYGZhbHNlYCB0byBsZWF2ZSBpdCBpbiBwbGFjZS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW25vUmV0dXJuPWZhbHNlXSAtIElmIGB0cnVlYCBhbGwgdGhlIGNvcmUgUGhhc2VyIHBsdWdpbnMgYXJlIGRlc3Ryb3llZC4gWW91IGNhbm5vdCBjcmVhdGUgYW5vdGhlciBpbnN0YW5jZSBvZiBQaGFzZXIgb24gdGhlIHNhbWUgd2ViIHBhZ2UgaWYgeW91IGRvIHRoaXMuXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uIChyZW1vdmVDYW52YXMsIG5vUmV0dXJuKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChub1JldHVybiA9PT0gdW5kZWZpbmVkKSB7IG5vUmV0dXJuID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgdGhpcy5wZW5kaW5nRGVzdHJveSA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMucmVtb3ZlQ2FudmFzID0gcmVtb3ZlQ2FudmFzO1xyXG4gICAgICAgIHRoaXMubm9SZXR1cm4gPSBub1JldHVybjtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXN0cm95cyB0aGlzIFBoYXNlci5HYW1lIGluc3RhbmNlLCBhbGwgZ2xvYmFsIHN5c3RlbXMsIGFsbCBzdWItc3lzdGVtcyBhbmQgYWxsIFNjZW5lcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lI3J1bkRlc3Ryb3lcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAqL1xyXG4gICAgcnVuRGVzdHJveTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnNjZW5lLmRlc3Ryb3koKTtcclxuXHJcbiAgICAgICAgdGhpcy5ldmVudHMuZW1pdChFdmVudHMuREVTVFJPWSk7XHJcblxyXG4gICAgICAgIHRoaXMuZXZlbnRzLnJlbW92ZUFsbExpc3RlbmVycygpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5yZW5kZXJlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmVtb3ZlQ2FudmFzICYmIHRoaXMuY2FudmFzKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgQ2FudmFzUG9vbC5yZW1vdmUodGhpcy5jYW52YXMpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuY2FudmFzLnBhcmVudE5vZGUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5jYW52YXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5kb21Db250YWluZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmRvbUNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZG9tQ29udGFpbmVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubG9vcC5kZXN0cm95KCk7XHJcblxyXG4gICAgICAgIHRoaXMucGVuZGluZ0Rlc3Ryb3kgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHYW1lO1xyXG5cclxuLyoqXHJcbiAqIFwiQ29tcHV0ZXJzIGFyZSBnb29kIGF0IGZvbGxvd2luZyBpbnN0cnVjdGlvbnMsIGJ1dCBub3QgYXQgcmVhZGluZyB5b3VyIG1pbmQuXCIgLSBEb25hbGQgS251dGhcclxuICovXHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEdldFZhbHVlID0gcmVxdWlyZSgnLi4vdXRpbHMvb2JqZWN0L0dldFZhbHVlJyk7XHJcbnZhciBOT09QID0gcmVxdWlyZSgnLi4vdXRpbHMvTk9PUCcpO1xyXG52YXIgUmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gcmVxdWlyZSgnLi4vZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZScpO1xyXG5cclxuLy8gaHR0cDovL3d3dy50ZXN0dWZvLmNvbS8jdGVzdD1hbmltYXRpb24tdGltZS1ncmFwaFxyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogVGhlIGNvcmUgcnVubmVyIGNsYXNzIHRoYXQgUGhhc2VyIHVzZXMgdG8gaGFuZGxlIHRoZSBnYW1lIGxvb3AuIEl0IGNhbiB1c2UgZWl0aGVyIFJlcXVlc3QgQW5pbWF0aW9uIEZyYW1lLFxyXG4gKiBvciBTZXRUaW1lb3V0LCBiYXNlZCBvbiBicm93c2VyIHN1cHBvcnQgYW5kIGNvbmZpZyBzZXR0aW5ncywgdG8gY3JlYXRlIGEgY29udGludW91cyBsb29wIHdpdGhpbiB0aGUgYnJvd3Nlci5cclxuICogXHJcbiAqIEVhY2ggdGltZSB0aGUgbG9vcCBmaXJlcywgYFRpbWVTdGVwLnN0ZXBgIGlzIGNhbGxlZCBhbmQgdGhpcyBpcyB0aGVuIHBhc3NlZCBvbnRvIHRoZSBjb3JlIEdhbWUgdXBkYXRlIGxvb3AsXHJcbiAqIGl0IGlzIHRoZSBjb3JlIGhlYXJ0YmVhdCBvZiB5b3VyIGdhbWUuIEl0IHdpbGwgZmlyZSBhcyBvZnRlbiBhcyBSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSBpcyBjYXBhYmxlIG9mIGhhbmRsaW5nXHJcbiAqIG9uIHRoZSB0YXJnZXQgZGV2aWNlLlxyXG4gKiBcclxuICogTm90ZSB0aGF0IHRoZXJlIGFyZSBsb3RzIG9mIHNpdHVhdGlvbnMgd2hlcmUgYSBicm93c2VyIHdpbGwgc3RvcCB1cGRhdGluZyB5b3VyIGdhbWUuIFN1Y2ggYXMgaWYgdGhlIHBsYXllclxyXG4gKiBzd2l0Y2hlcyB0YWJzLCBvciBjb3ZlcnMgdXAgdGhlIGJyb3dzZXIgd2luZG93IHdpdGggYW5vdGhlciBhcHBsaWNhdGlvbi4gSW4gdGhlc2UgY2FzZXMsIHRoZSAnaGVhcnRiZWF0J1xyXG4gKiBvZiB5b3VyIGdhbWUgd2lsbCBwYXVzZSwgYW5kIG9ubHkgcmVzdW1lIHdoZW4gZm9jdXMgaXMgcmV0dXJuZWQgdG8gaXQgYnkgdGhlIHBsYXllci4gVGhlcmUgaXMgbm8gd2F5IHRvIGF2b2lkXHJcbiAqIHRoaXMgc2l0dWF0aW9uLCBhbGwgeW91IGNhbiBkbyBpcyB1c2UgdGhlIHZpc2liaWxpdHkgZXZlbnRzIHRoZSBicm93c2VyLCBhbmQgUGhhc2VyLCBwcm92aWRlIHRvIGRldGVjdCB3aGVuXHJcbiAqIGl0IGhhcyBoYXBwZW5lZCBhbmQgdGhlbiBncmFjZWZ1bGx5IHJlY292ZXIuXHJcbiAqXHJcbiAqIEBjbGFzcyBUaW1lU3RlcFxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkNvcmVcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lfSBnYW1lIC0gQSByZWZlcmVuY2UgdG8gdGhlIFBoYXNlci5HYW1lIGluc3RhbmNlIHRoYXQgb3ducyB0aGlzIFRpbWUgU3RlcC5cclxuICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuQ29yZS5GUFNDb25maWd9IGNvbmZpZ1xyXG4gKi9cclxudmFyIFRpbWVTdGVwID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIFRpbWVTdGVwIChnYW1lLCBjb25maWcpXHJcbiAgICB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFBoYXNlci5HYW1lIGluc3RhbmNlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNvcmUuVGltZVN0ZXAjZ2FtZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZX1cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmdhbWUgPSBnYW1lO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgUmVxdWVzdCBBbmltYXRpb24gRnJhbWUgRE9NIEV2ZW50IGhhbmRsZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ29yZS5UaW1lU3RlcCNyYWZcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkRPTS5SZXF1ZXN0QW5pbWF0aW9uRnJhbWV9XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yYWYgPSBuZXcgUmVxdWVzdEFuaW1hdGlvbkZyYW1lKCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgZmxhZyB0aGF0IGlzIHNldCBvbmNlIHRoZSBUaW1lU3RlcCBoYXMgc3RhcnRlZCBydW5uaW5nIGFuZCB0b2dnbGVkIHdoZW4gaXQgc3RvcHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ29yZS5UaW1lU3RlcCNzdGFydGVkXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnN0YXJ0ZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBmbGFnIHRoYXQgaXMgc2V0IG9uY2UgdGhlIFRpbWVTdGVwIGhhcyBzdGFydGVkIHJ1bm5pbmcgYW5kIHRvZ2dsZWQgd2hlbiBpdCBzdG9wcy5cclxuICAgICAgICAgKiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgdmFsdWUgYW5kIGBzdGFydGVkYCBpcyB0aGF0IGBydW5uaW5nYCBpcyB0b2dnbGVkIHdoZW5cclxuICAgICAgICAgKiB0aGUgVGltZVN0ZXAgaXMgc2VudCB0byBzbGVlcCwgd2hlcmUtYXMgYHN0YXJ0ZWRgIHJlbWFpbnMgYHRydWVgLCBvbmx5IGNoYW5naW5nIGlmXHJcbiAgICAgICAgICogdGhlIFRpbWVTdGVwIGlzIGFjdHVhbGx5IHN0b3BwZWQsIG5vdCBqdXN0IHBhdXNlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5Db3JlLlRpbWVTdGVwI3J1bm5pbmdcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucnVubmluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbWluaW11bSBmcHMgcmF0ZSB5b3Ugd2FudCB0aGUgVGltZSBTdGVwIHRvIHJ1biBhdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5Db3JlLlRpbWVTdGVwI21pbkZwc1xyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1pbkZwcyA9IEdldFZhbHVlKGNvbmZpZywgJ21pbicsIDUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdGFyZ2V0IGZwcyByYXRlIGZvciB0aGUgVGltZSBTdGVwIHRvIHJ1biBhdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFNldHRpbmcgdGhpcyB2YWx1ZSB3aWxsIG5vdCBhY3R1YWxseSBjaGFuZ2UgdGhlIHNwZWVkIGF0IHdoaWNoIHRoZSBicm93c2VyIHJ1bnMsIHRoYXQgaXMgYmV5b25kXHJcbiAgICAgICAgICogdGhlIGNvbnRyb2wgb2YgUGhhc2VyLiBJbnN0ZWFkLCBpdCBhbGxvd3MgeW91IHRvIGRldGVybWluZSBwZXJmb3JtYW5jZSBpc3N1ZXMgYW5kIGlmIHRoZSBUaW1lIFN0ZXBcclxuICAgICAgICAgKiBpcyBzcGlyYWxpbmcgb3V0IG9mIGNvbnRyb2wuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ29yZS5UaW1lU3RlcCN0YXJnZXRGcHNcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCA2MFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudGFyZ2V0RnBzID0gR2V0VmFsdWUoY29uZmlnLCAndGFyZ2V0JywgNjApO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbWluRnBzIHZhbHVlIGluIG1zLlxyXG4gICAgICAgICAqIERlZmF1bHRzIHRvIDIwMG1zIGJldHdlZW4gZnJhbWVzIChpLmUuIHN1cGVyIHNsb3chKVxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNvcmUuVGltZVN0ZXAjX21pblxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9taW4gPSAxMDAwIC8gdGhpcy5taW5GcHM7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB0YXJnZXRGcHMgdmFsdWUgaW4gbXMuXHJcbiAgICAgICAgICogRGVmYXVsdHMgdG8gMTYuNjZtcyBiZXR3ZWVuIGZyYW1lcyAoaS5lLiBub3JtYWwpXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ29yZS5UaW1lU3RlcCNfdGFyZ2V0XHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3RhcmdldCA9IDEwMDAgLyB0aGlzLnRhcmdldEZwcztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gZXhwb25lbnRpYWwgbW92aW5nIGF2ZXJhZ2Ugb2YgdGhlIGZyYW1lcyBwZXIgc2Vjb25kLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNvcmUuVGltZVN0ZXAjYWN0dWFsRnBzXHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQGRlZmF1bHQgNjBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFjdHVhbEZwcyA9IHRoaXMudGFyZ2V0RnBzO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgbmV4dCBmcHMgcmF0ZSB1cGRhdGUgd2lsbCB0YWtlIHBsYWNlLlxyXG4gICAgICAgICAqIFdoZW4gYW4gZnBzIHVwZGF0ZSBoYXBwZW5zLCB0aGUgYGZyYW1lc1RoaXNTZWNvbmRgIHZhbHVlIGlzIHJlc2V0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNvcmUuVGltZVN0ZXAjbmV4dEZwc1VwZGF0ZVxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm5leHRGcHNVcGRhdGUgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbnVtYmVyIG9mIGZyYW1lcyBwcm9jZXNzZWQgdGhpcyBzZWNvbmQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ29yZS5UaW1lU3RlcCNmcmFtZXNUaGlzU2Vjb25kXHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZnJhbWVzVGhpc1NlY29uZCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgY2FsbGJhY2sgdG8gYmUgaW52b2tlZCBlYWNoIHRpbWUgdGhlIFRpbWUgU3RlcCBzdGVwcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5Db3JlLlRpbWVTdGVwI2NhbGxiYWNrXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5UeXBlcy5Db3JlLlRpbWVTdGVwQ2FsbGJhY2t9XHJcbiAgICAgICAgICogQGRlZmF1bHQgTk9PUFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2sgPSBOT09QO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBZb3UgY2FuIGZvcmNlIHRoZSBUaW1lIFN0ZXAgdG8gdXNlIFNldCBUaW1lb3V0IGluc3RlYWQgb2YgUmVxdWVzdCBBbmltYXRpb24gRnJhbWUgYnkgc2V0dGluZ1xyXG4gICAgICAgICAqIHRoZSBgZm9yY2VTZXRUaW1lT3V0YCBwcm9wZXJ0eSB0byBgdHJ1ZWAgaW4gdGhlIEdhbWUgQ29uZmlndXJhdGlvbiBvYmplY3QuIEl0IGNhbm5vdCBiZSBjaGFuZ2VkIGF0IHJ1bi10aW1lLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNvcmUuVGltZVN0ZXAjZm9yY2VTZXRUaW1lT3V0XHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZvcmNlU2V0VGltZU91dCA9IEdldFZhbHVlKGNvbmZpZywgJ2ZvcmNlU2V0VGltZU91dCcsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHRpbWUsIGNhbGN1bGF0ZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IHN0ZXAsIGFzIHNtb290aGVkIGJ5IHRoZSBkZWx0YSB2YWx1ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5Db3JlLlRpbWVTdGVwI3RpbWVcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnRpbWUgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgZ2FtZSBzdGFydGVkIHJ1bm5pbmcuIFRoaXMgdmFsdWUgaXMgYWRqdXN0ZWQgaWYgdGhlIGdhbWUgaXMgdGhlblxyXG4gICAgICAgICAqIHBhdXNlZCBhbmQgcmVzdW1lcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5Db3JlLlRpbWVTdGVwI3N0YXJ0VGltZVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHRpbWUsIGFzIHJldHVybmVkIGJ5IGBwZXJmb3JtYW5jZS5ub3dgIG9mIHRoZSBwcmV2aW91cyBzdGVwLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNvcmUuVGltZVN0ZXAjbGFzdFRpbWVcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmxhc3RUaW1lID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGN1cnJlbnQgZnJhbWUgdGhlIGdhbWUgaXMgb24uIFRoaXMgY291bnRlciBpcyBpbmNyZW1lbnRlZCBvbmNlIGV2ZXJ5IGdhbWUgc3RlcCwgcmVnYXJkbGVzcyBvZiBob3cgbXVjaFxyXG4gICAgICAgICAqIHRpbWUgaGFzIHBhc3NlZCBhbmQgaXMgdW5hZmZlY3RlZCBieSBkZWx0YSBzbW9vdGhpbmcuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ29yZS5UaW1lU3RlcCNmcmFtZVxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZyYW1lID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSXMgdGhlIGJyb3dzZXIgY3VycmVudGx5IGNvbnNpZGVyZWQgaW4gZm9jdXMgYnkgdGhlIFBhZ2UgVmlzaWJpbGl0eSBBUEk/XHJcbiAgICAgICAgICogVGhpcyB2YWx1ZSBpcyBzZXQgaW4gdGhlIGBibHVyYCBtZXRob2QsIHdoaWNoIGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBHYW1lIGluc3RhbmNlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNvcmUuVGltZVN0ZXAjaW5Gb2N1c1xyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmluRm9jdXMgPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdGltZXN0YW1wIGF0IHdoaWNoIHRoZSBnYW1lIGJlY2FtZSBwYXVzZWQsIGFzIGRldGVybWluZWQgYnkgdGhlIFBhZ2UgVmlzaWJpbGl0eSBBUEkuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ29yZS5UaW1lU3RlcCNfcGF1c2VUaW1lXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9wYXVzZVRpbWUgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbiBpbnRlcm5hbCBjb3VudGVyIHRvIGFsbG93IGZvciB0aGUgYnJvd3NlciAnY29vbGluZyBkb3duJyBhZnRlciBjb21pbmcgYmFjayBpbnRvIGZvY3VzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNvcmUuVGltZVN0ZXAjX2Nvb2xEb3duXHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fY29vbERvd24gPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZGVsdGEgdGltZSwgaW4gbXMsIHNpbmNlIHRoZSBsYXN0IGdhbWUgc3RlcC4gVGhpcyBpcyBhIGNsYW1wZWQgYW5kIHNtb290aGVkIGF2ZXJhZ2UgdmFsdWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ29yZS5UaW1lU3RlcCNkZWx0YVxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRlbHRhID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW50ZXJuYWwgaW5kZXggb2YgdGhlIGRlbHRhIGhpc3RvcnkgcG9zaXRpb24uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ29yZS5UaW1lU3RlcCNkZWx0YUluZGV4XHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGVsdGFJbmRleCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEludGVybmFsIGFycmF5IGhvbGRpbmcgdGhlIHByZXZpb3VzIGRlbHRhIHZhbHVlcywgdXNlZCBmb3IgZGVsdGEgc21vb3RoaW5nLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkNvcmUuVGltZVN0ZXAjZGVsdGFIaXN0b3J5XHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJbXX1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRlbHRhSGlzdG9yeSA9IFtdO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZGVsdGEgdmFsdWVzIHRoYXQgYXJlIHJldGFpbmVkIGluIG9yZGVyIHRvIGNhbGN1bGF0ZSBhIHNtb290aGVkIG1vdmluZyBhdmVyYWdlLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIFRoaXMgY2FuIGJlIGNoYW5nZWQgaW4gdGhlIEdhbWUgQ29uZmlnIHZpYSB0aGUgYGZwcy5kZWx0YUhpc3RvcnlgIHByb3BlcnR5LiBUaGUgZGVmYXVsdCBpcyAxMC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5Db3JlLlRpbWVTdGVwI2RlbHRhU21vb3RoaW5nTWF4XHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMTBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRlbHRhU21vb3RoaW5nTWF4ID0gR2V0VmFsdWUoY29uZmlnLCAnZGVsdGFIaXN0b3J5JywgMTApO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbnVtYmVyIG9mIGZyYW1lcyB0aGF0IHRoZSBjb29sZG93biBpcyBzZXQgdG8gYWZ0ZXIgdGhlIGJyb3dzZXIgcGFuaWNzIG92ZXIgdGhlIEZQUyByYXRlLCB1c3VhbGx5XHJcbiAgICAgICAgICogYXMgYSByZXN1bHQgb2Ygc3dpdGNoaW5nIHRhYnMgYW5kIHJlZ2FpbmluZyBmb2N1cy5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBUaGlzIGNhbiBiZSBjaGFuZ2VkIGluIHRoZSBHYW1lIENvbmZpZyB2aWEgdGhlIGBmcHMucGFuaWNNYXhgIHByb3BlcnR5LiBUaGUgZGVmYXVsdCBpcyAxMjAuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ29yZS5UaW1lU3RlcCNwYW5pY01heFxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDEyMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucGFuaWNNYXggPSBHZXRWYWx1ZShjb25maWcsICdwYW5pY01heCcsIDEyMCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBhY3R1YWwgZWxhcHNlZCB0aW1lIGluIG1zIGJldHdlZW4gb25lIHVwZGF0ZSBhbmQgdGhlIG5leHQuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogVW5saWtlIHdpdGggYGRlbHRhYCwgbm8gc21vb3RoaW5nLCBjYXBwaW5nLCBvciBhdmVyYWdpbmcgaXMgYXBwbGllZCB0byB0aGlzIHZhbHVlLlxyXG4gICAgICAgICAqIFNvIHBsZWFzZSBiZSBjYXJlZnVsIHdoZW4gdXNpbmcgdGhpcyB2YWx1ZSBpbiBtYXRoIGNhbGN1bGF0aW9ucy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5Db3JlLlRpbWVTdGVwI3Jhd0RlbHRhXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yYXdEZWx0YSA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB0aW1lLCBhcyByZXR1cm5lZCBieSBgcGVyZm9ybWFuY2Uubm93YCBhdCB0aGUgdmVyeSBzdGFydCBvZiB0aGUgY3VycmVudCBzdGVwLlxyXG4gICAgICAgICAqIFRoaXMgY2FuIGRpZmZlciBmcm9tIHRoZSBgdGltZWAgdmFsdWUgaW4gdGhhdCBpdCBpc24ndCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBkZWx0YSB2YWx1ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5Db3JlLlRpbWVTdGVwI25vd1xyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE4LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm5vdyA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFwcGx5IHNtb290aGluZyB0byB0aGUgZGVsdGEgdmFsdWUgdXNlZCB3aXRoaW4gUGhhc2VycyBpbnRlcm5hbCBjYWxjdWxhdGlvbnM/XHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogVGhpcyBjYW4gYmUgY2hhbmdlZCBpbiB0aGUgR2FtZSBDb25maWcgdmlhIHRoZSBgZnBzLnNtb290aFN0ZXBgIHByb3BlcnR5LiBUaGUgZGVmYXVsdCBpcyBgdHJ1ZWAuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogU21vb3RoaW5nIGhlbHBzIHNldHRsZSBkb3duIHRoZSBkZWx0YSB2YWx1ZXMgYWZ0ZXIgYnJvd3NlciB0YWIgc3dpdGNoZXMsIG9yIG90aGVyIHNpdHVhdGlvbnNcclxuICAgICAgICAgKiB3aGljaCBjb3VsZCBjYXVzZSBzaWduaWZpY2FudCBkZWx0YSBzcGlrZXMgb3IgZGlwcy4gQnkgZGVmYXVsdCBpdCBoYXMgYmVlbiBlbmFibGVkIGluIFBoYXNlciAzXHJcbiAgICAgICAgICogc2luY2UgdGhlIGZpcnN0IHZlcnNpb24sIGJ1dCBpcyBub3cgZXhwb3NlZCB1bmRlciB0aGlzIHByb3BlcnR5IChhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZ2FtZSBjb25maWdcclxuICAgICAgICAgKiBgc21vb3RoU3RlcGAgdmFsdWUpLCB0byBhbGxvdyB5b3UgdG8gZWFzaWx5IGRpc2FibGUgaXQsIHNob3VsZCB5b3UgcmVxdWlyZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5Db3JlLlRpbWVTdGVwI3Ntb290aFN0ZXBcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4yMi4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zbW9vdGhTdGVwID0gR2V0VmFsdWUoY29uZmlnLCAnc21vb3RoU3RlcCcsIHRydWUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCBieSB0aGUgR2FtZSBpbnN0YW5jZSB3aGVuIHRoZSBET00gd2luZG93Lm9uQmx1ciBldmVudCB0cmlnZ2Vycy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5Db3JlLlRpbWVTdGVwI2JsdXJcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBibHVyOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuaW5Gb2N1cyA9IGZhbHNlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCBieSB0aGUgR2FtZSBpbnN0YW5jZSB3aGVuIHRoZSBET00gd2luZG93Lm9uRm9jdXMgZXZlbnQgdHJpZ2dlcnMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ29yZS5UaW1lU3RlcCNmb2N1c1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGZvY3VzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuaW5Gb2N1cyA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMucmVzZXREZWx0YSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCB3aGVuIHRoZSB2aXNpYmlsaXR5IEFQSSBzYXlzIHRoZSBnYW1lIGlzICdoaWRkZW4nICh0YWIgc3dpdGNoIG91dCBvZiB2aWV3LCBldGMpXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ29yZS5UaW1lU3RlcCNwYXVzZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHBhdXNlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3BhdXNlVGltZSA9IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgd2hlbiB0aGUgdmlzaWJpbGl0eSBBUEkgc2F5cyB0aGUgZ2FtZSBpcyAndmlzaWJsZScgYWdhaW4gKHRhYiBzd2l0Y2ggYmFjayBpbnRvIHZpZXcsIGV0YylcclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5Db3JlLlRpbWVTdGVwI3Jlc3VtZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHJlc3VtZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnJlc2V0RGVsdGEoKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgKz0gdGhpcy50aW1lIC0gdGhpcy5fcGF1c2VUaW1lO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc2V0cyB0aGUgdGltZSwgbGFzdFRpbWUsIGZwcyBhdmVyYWdlcyBhbmQgZGVsdGEgaGlzdG9yeS5cclxuICAgICAqIENhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW4gYSBicm93c2VyIHNsZWVwcyB0aGVtIHJlc3VtZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ29yZS5UaW1lU3RlcCNyZXNldERlbHRhXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgcmVzZXREZWx0YTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgbm93ID0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpO1xyXG5cclxuICAgICAgICB0aGlzLnRpbWUgPSBub3c7XHJcbiAgICAgICAgdGhpcy5sYXN0VGltZSA9IG5vdztcclxuICAgICAgICB0aGlzLm5leHRGcHNVcGRhdGUgPSBub3cgKyAxMDAwO1xyXG4gICAgICAgIHRoaXMuZnJhbWVzVGhpc1NlY29uZCA9IDA7XHJcblxyXG4gICAgICAgIC8vICBQcmUtcG9wdWxhdGUgc21vb3RoaW5nIGFycmF5XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kZWx0YVNtb290aGluZ01heDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5kZWx0YUhpc3RvcnlbaV0gPSBNYXRoLm1pbih0aGlzLl90YXJnZXQsIHRoaXMuZGVsdGFIaXN0b3J5W2ldKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZGVsdGEgPSAwO1xyXG4gICAgICAgIHRoaXMuZGVsdGFJbmRleCA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMuX2Nvb2xEb3duID0gdGhpcy5wYW5pY01heDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdGFydHMgdGhlIFRpbWUgU3RlcCBydW5uaW5nLCBpZiBpdCBpcyBub3QgYWxyZWFkeSBkb2luZyBzby5cclxuICAgICAqIENhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBHYW1lIEJvb3QgcHJvY2Vzcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5Db3JlLlRpbWVTdGVwI3N0YXJ0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5Db3JlLlRpbWVTdGVwQ2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGJlIGludm9rZWQgZWFjaCB0aW1lIHRoZSBUaW1lIFN0ZXAgc3RlcHMuXHJcbiAgICAgKi9cclxuICAgIHN0YXJ0OiBmdW5jdGlvbiAoY2FsbGJhY2spXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRlZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zdGFydGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJ1bm5pbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZGVsdGFTbW9vdGhpbmdNYXg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsdGFIaXN0b3J5W2ldID0gdGhpcy5fdGFyZ2V0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yZXNldERlbHRhKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpO1xyXG5cclxuICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XHJcblxyXG4gICAgICAgIHRoaXMucmFmLnN0YXJ0KHRoaXMuc3RlcC5iaW5kKHRoaXMpLCB0aGlzLmZvcmNlU2V0VGltZU91dCwgdGhpcy5fdGFyZ2V0KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWFpbiBzdGVwIG1ldGhvZC4gVGhpcyBpcyBjYWxsZWQgZWFjaCB0aW1lIHRoZSBicm93c2VyIHVwZGF0ZXMsIGVpdGhlciBieSBSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSxcclxuICAgICAqIG9yIGJ5IFNldCBUaW1lb3V0LiBJdCBpcyByZXNwb25zaWJsZSBmb3IgY2FsY3VsYXRpbmcgdGhlIGRlbHRhIHZhbHVlcywgZnJhbWUgdG90YWxzLCBjb29sIGRvd24gaGlzdG9yeSBhbmQgbW9yZS5cclxuICAgICAqIFlvdSBnZW5lcmFsbHkgc2hvdWxkIG5ldmVyIGNhbGwgdGhpcyBtZXRob2QgZGlyZWN0bHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ29yZS5UaW1lU3RlcCNzdGVwXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgc3RlcDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICAvLyAgQmVjYXVzZSB0aGUgdGltZXN0YW1wIHBhc3NlZCBpbiBmcm9tIHJhZiByZXByZXNlbnRzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG1haW4gdGhyZWFkIGZyYW1lIHRoYXQgd2XigJlyZSBjdXJyZW50bHkgaW4sXHJcbiAgICAgICAgLy8gIG5vdCB0aGUgYWN0dWFsIHRpbWUgbm93LCBhbmQgYXMgd2Ugd2FudCB0byBjb21wYXJlIHRoaXMgdGltZSB2YWx1ZSBhZ2FpbnN0IEV2ZW50IHRpbWVTdGFtcHMgYW5kIHRoZSBsaWtlLCB3ZSBuZWVkIGFcclxuICAgICAgICAvLyAgbW9yZSBhY2N1cmF0ZSBvbmU6XHJcblxyXG4gICAgICAgIHZhciB0aW1lID0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpO1xyXG5cclxuICAgICAgICB0aGlzLm5vdyA9IHRpbWU7XHJcblxyXG4gICAgICAgIHZhciBiZWZvcmUgPSB0aW1lIC0gdGhpcy5sYXN0VGltZTtcclxuXHJcbiAgICAgICAgaWYgKGJlZm9yZSA8IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgQmVjYXVzZSwgQ2hyb21lLlxyXG4gICAgICAgICAgICBiZWZvcmUgPSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yYXdEZWx0YSA9IGJlZm9yZTtcclxuXHJcbiAgICAgICAgdmFyIGlkeCA9IHRoaXMuZGVsdGFJbmRleDtcclxuICAgICAgICB2YXIgaGlzdG9yeSA9IHRoaXMuZGVsdGFIaXN0b3J5O1xyXG4gICAgICAgIHZhciBtYXggPSB0aGlzLmRlbHRhU21vb3RoaW5nTWF4O1xyXG5cclxuICAgICAgICAvLyAgZGVsdGEgdGltZSAodGltZSBpcyBpbiBtcylcclxuICAgICAgICB2YXIgZHQgPSBiZWZvcmU7XHJcblxyXG4gICAgICAgIC8vICBEZWx0YSBBdmVyYWdlXHJcbiAgICAgICAgdmFyIGF2ZyA9IGJlZm9yZTtcclxuXHJcbiAgICAgICAgLy8gIFdoZW4gYSBicm93c2VyIHN3aXRjaGVzIHRhYiwgdGhlbiBjb21lcyBiYWNrIGFnYWluLCBpdCB0YWtlcyBhcm91bmQgMTAgZnJhbWVzIGJlZm9yZVxyXG4gICAgICAgIC8vICB0aGUgZGVsdGEgdGltZSBzZXR0bGVzIGRvd24gc28gd2UgZW1wbG95IGEgJ2Nvb2xpbmcgZG93bicgcGVyaW9kIGJlZm9yZSB3ZSBzdGFydFxyXG4gICAgICAgIC8vICB0cnVzdGluZyB0aGUgZGVsdGEgdmFsdWVzIGFnYWluLCB0byBhdm9pZCBzcGlrZXMgZmxvb2RpbmcgdGhyb3VnaCBvdXIgZGVsdGEgYXZlcmFnZVxyXG5cclxuICAgICAgICBpZiAodGhpcy5zbW9vdGhTdGVwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2Nvb2xEb3duID4gMCB8fCAhdGhpcy5pbkZvY3VzKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jb29sRG93bi0tO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBkdCA9IE1hdGgubWluKGR0LCB0aGlzLl90YXJnZXQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgaWYgKGR0ID4gdGhpcy5fbWluKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAvLyAgUHJvYmFibHkgc3VwZXIgYmFkIHN0YXJ0IHRpbWUgb3IgYnJvd3NlciB0YWIgY29udGV4dCBsb3NzLFxyXG4gICAgICAgICAgICAgICAgLy8gIHNvIHVzZSB0aGUgbGFzdCAnc2FuZScgZHQgdmFsdWVcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgZHQgPSBoaXN0b3J5W2lkeF07XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIC8vICBDbGFtcCBkZWx0YSB0byBtaW4gKGluIGNhc2UgaGlzdG9yeSBoYXMgYmVjb21lIGNvcnJ1cHRlZCBzb21laG93KVxyXG4gICAgICAgICAgICAgICAgZHQgPSBNYXRoLm1pbihkdCwgdGhpcy5fbWluKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgIC8vICBTbW9vdGggb3V0IHRoZSBkZWx0YSBvdmVyIHRoZSBwcmV2aW91cyBYIGZyYW1lc1xyXG4gICAgXHJcbiAgICAgICAgICAgIC8vICBhZGQgdGhlIGRlbHRhIHRvIHRoZSBzbW9vdGhpbmcgYXJyYXlcclxuICAgICAgICAgICAgaGlzdG9yeVtpZHhdID0gZHQ7XHJcbiAgICBcclxuICAgICAgICAgICAgLy8gIGFkanVzdHMgdGhlIGRlbHRhIGhpc3RvcnkgYXJyYXkgaW5kZXggYmFzZWQgb24gdGhlIHNtb290aGluZyBjb3VudFxyXG4gICAgICAgICAgICAvLyAgdGhpcyBzdG9wcyB0aGUgYXJyYXkgZ3Jvd2luZyBiZXlvbmQgdGhlIHNpemUgb2YgZGVsdGFTbW9vdGhpbmdNYXhcclxuICAgICAgICAgICAgdGhpcy5kZWx0YUluZGV4Kys7XHJcbiAgICBcclxuICAgICAgICAgICAgaWYgKHRoaXMuZGVsdGFJbmRleCA+IG1heClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kZWx0YUluZGV4ID0gMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgIC8vICBMb29wIHRoZSBoaXN0b3J5IGFycmF5LCBhZGRpbmcgdGhlIGRlbHRhIHZhbHVlcyB0b2dldGhlclxyXG4gICAgICAgICAgICBhdmcgPSAwO1xyXG4gICAgXHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF4OyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGF2ZyArPSBoaXN0b3J5W2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgLy8gIFRoZW4gZGl2aWRlIGJ5IHRoZSBhcnJheSBsZW5ndGggdG8gZ2V0IHRoZSBhdmVyYWdlIGRlbHRhXHJcbiAgICAgICAgICAgIGF2ZyAvPSBtYXg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgU2V0IGFzIHRoZSB3b3JsZCBkZWx0YSB2YWx1ZVxyXG4gICAgICAgIHRoaXMuZGVsdGEgPSBhdmc7XHJcblxyXG4gICAgICAgIC8vICBSZWFsLXdvcmxkIHRpbWVyIGFkdmFuY2VcclxuICAgICAgICB0aGlzLnRpbWUgKz0gdGhpcy5yYXdEZWx0YTtcclxuXHJcbiAgICAgICAgLy8gVXBkYXRlIHRoZSBlc3RpbWF0ZSBvZiB0aGUgZnJhbWUgcmF0ZSwgYGZwc2AuIEV2ZXJ5IHNlY29uZCwgdGhlIG51bWJlclxyXG4gICAgICAgIC8vIG9mIGZyYW1lcyB0aGF0IG9jY3VycmVkIGluIHRoYXQgc2Vjb25kIGFyZSBpbmNsdWRlZCBpbiBhbiBleHBvbmVudGlhbFxyXG4gICAgICAgIC8vIG1vdmluZyBhdmVyYWdlIG9mIGFsbCBmcmFtZXMgcGVyIHNlY29uZCwgd2l0aCBhbiBhbHBoYSBvZiAwLjI1LiBUaGlzXHJcbiAgICAgICAgLy8gbWVhbnMgdGhhdCBtb3JlIHJlY2VudCBzZWNvbmRzIGFmZmVjdCB0aGUgZXN0aW1hdGVkIGZyYW1lIHJhdGUgbW9yZSB0aGFuXHJcbiAgICAgICAgLy8gb2xkZXIgc2Vjb25kcy5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFdoZW4gYSBicm93c2VyIHdpbmRvdyBpcyBOT1QgbWluaW1pemVkLCBidXQgaXMgY292ZXJlZCB1cCAoaS5lLiB5b3UncmUgdXNpbmdcclxuICAgICAgICAvLyBhbm90aGVyIGFwcCB3aGljaCBoYXMgc3Bhd25lZCBhIHdpbmRvdyBvdmVyIHRoZSB0b3Agb2YgdGhlIGJyb3dzZXIpLCB0aGVuIGl0XHJcbiAgICAgICAgLy8gd2lsbCBzdGFydCB0byB0aHJvdHRsZSB0aGUgcmFmIGNhbGxiYWNrIHRpbWUuIEl0IHdhaXRzIGZvciBhIHdoaWxlLCBhbmQgdGhlblxyXG4gICAgICAgIC8vIHN0YXJ0cyB0byBkcm9wIHRoZSBmcmFtZSByYXRlIGF0IDEgZnJhbWUgcGVyIHNlY29uZCB1bnRpbCBpdCdzIGRvd24gdG8ganVzdCBvdmVyIDFmcHMuXHJcbiAgICAgICAgLy8gU28gaWYgdGhlIGdhbWUgd2FzIHJ1bm5pbmcgYXQgNjBmcHMsIGFuZCB0aGUgcGxheWVyIG9wZW5zIGEgbmV3IHdpbmRvdywgdGhlblxyXG4gICAgICAgIC8vIGFmdGVyIDYwIHNlY29uZHMgKCsgdGhlICdidWZmZXIgdGltZScpIGl0J2xsIGJlIGRvd24gdG8gMWZwcywgc28gcmFmaW4nZyBhdCAxSHouXHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyBXaGVuIHRoZXkgbWFrZSB0aGUgZ2FtZSB2aXNpYmxlIGFnYWluLCB0aGUgZnJhbWUgcmF0ZSBpcyBpbmNyZWFzZWQgYXQgYSByYXRlIG9mXHJcbiAgICAgICAgLy8gYXBwcm94LiA4ZnBzLCBiYWNrIHVwIHRvIDYwZnBzIChvciB0aGUgbWF4IGl0IGNhbiBvYnRhaW4pXHJcbiAgICAgICAgLy9cclxuICAgICAgICAvLyBUaGVyZSBpcyBubyBlYXN5IHdheSB0byBkZXRlcm1pbmUgaWYgdGhpcyBkcm9wIGluIGZyYW1lIHJhdGUgaXMgYmVjYXVzZSB0aGVcclxuICAgICAgICAvLyBicm93c2VyIGlzIHRocm90dGxpbmcgcmFmLCBvciBiZWNhdXNlIHRoZSBnYW1lIGlzIHN0cnVnZ2xpbmcgd2l0aCBwZXJmb3JtYW5jZVxyXG4gICAgICAgIC8vIGJlY2F1c2UgeW91J3JlIGFza2luZyBpdCB0byBkbyB0b28gbXVjaCBvbiB0aGUgZGV2aWNlLlxyXG5cclxuICAgICAgICBpZiAodGltZSA+IHRoaXMubmV4dEZwc1VwZGF0ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBDb21wdXRlIHRoZSBuZXcgZXhwb25lbnRpYWwgbW92aW5nIGF2ZXJhZ2Ugd2l0aCBhbiBhbHBoYSBvZiAwLjI1LlxyXG4gICAgICAgICAgICB0aGlzLmFjdHVhbEZwcyA9IDAuMjUgKiB0aGlzLmZyYW1lc1RoaXNTZWNvbmQgKyAwLjc1ICogdGhpcy5hY3R1YWxGcHM7XHJcbiAgICAgICAgICAgIHRoaXMubmV4dEZwc1VwZGF0ZSA9IHRpbWUgKyAxMDAwO1xyXG4gICAgICAgICAgICB0aGlzLmZyYW1lc1RoaXNTZWNvbmQgPSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5mcmFtZXNUaGlzU2Vjb25kKys7XHJcblxyXG4gICAgICAgIC8vICBJbnRlcnBvbGF0aW9uIC0gaG93IGZhciBiZXR3ZWVuIHdoYXQgaXMgZXhwZWN0ZWQgYW5kIHdoZXJlIHdlIGFyZT9cclxuICAgICAgICB2YXIgaW50ZXJwb2xhdGlvbiA9IGF2ZyAvIHRoaXMuX3RhcmdldDtcclxuXHJcbiAgICAgICAgdGhpcy5jYWxsYmFjayh0aW1lLCBhdmcsIGludGVycG9sYXRpb24pO1xyXG5cclxuICAgICAgICAvLyAgU2hpZnQgdGltZSB2YWx1ZSBvdmVyXHJcbiAgICAgICAgdGhpcy5sYXN0VGltZSA9IHRpbWU7XHJcblxyXG4gICAgICAgIHRoaXMuZnJhbWUrKztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYW51YWxseSBjYWxscyBgVGltZVN0ZXAuc3RlcGAuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ29yZS5UaW1lU3RlcCN0aWNrXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgdGljazogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnN0ZXAoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZW5kcyB0aGUgVGltZVN0ZXAgdG8gc2xlZXAsIHN0b3BwaW5nIFJlcXVlc3QgQW5pbWF0aW9uIEZyYW1lIChvciBTZXRUaW1lb3V0KSBhbmQgdG9nZ2xpbmcgdGhlIGBydW5uaW5nYCBmbGFnIHRvIGZhbHNlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNvcmUuVGltZVN0ZXAjc2xlZXBcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBzbGVlcDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5ydW5uaW5nKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5yYWYuc3RvcCgpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5ydW5uaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFdha2VzLXVwIHRoZSBUaW1lU3RlcCwgcmVzdGFydGluZyBSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSAob3IgU2V0VGltZW91dCkgYW5kIHRvZ2dsaW5nIHRoZSBgcnVubmluZ2AgZmxhZyB0byB0cnVlLlxyXG4gICAgICogVGhlIGBzZWFtbGVzc2AgYXJndW1lbnQgY29udHJvbHMgaWYgdGhlIHdha2UtdXAgc2hvdWxkIGFkanVzdCB0aGUgc3RhcnQgdGltZSBvciBub3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ29yZS5UaW1lU3RlcCN3YWtlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtzZWFtbGVzcz1mYWxzZV0gLSBBZGp1c3QgdGhlIHN0YXJ0VGltZSBiYXNlZCBvbiB0aGUgbGFzdFRpbWUgdmFsdWVzLlxyXG4gICAgICovXHJcbiAgICB3YWtlOiBmdW5jdGlvbiAoc2VhbWxlc3MpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMucnVubmluZylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2xlZXAoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoc2VhbWxlc3MpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSArPSAtdGhpcy5sYXN0VGltZSArICh0aGlzLmxhc3RUaW1lICsgd2luZG93LnBlcmZvcm1hbmNlLm5vdygpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucmFmLnN0YXJ0KHRoaXMuc3RlcC5iaW5kKHRoaXMpLCB0aGlzLnVzZVJBRik7XHJcblxyXG4gICAgICAgIHRoaXMucnVubmluZyA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuc3RlcCgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGR1cmF0aW9uIHdoaWNoIHRoZSBnYW1lIGhhcyBiZWVuIHJ1bm5pbmcsIGluIHNlY29uZHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ29yZS5UaW1lU3RlcCNnZXREdXJhdGlvblxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge251bWJlcn0gVGhlIGR1cmF0aW9uIGluIHNlY29uZHMuXHJcbiAgICAgKi9cclxuICAgIGdldER1cmF0aW9uOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHRoaXMubGFzdFRpbWUgLSB0aGlzLnN0YXJ0VGltZSkgLyAxMDAwO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGR1cmF0aW9uIHdoaWNoIHRoZSBnYW1lIGhhcyBiZWVuIHJ1bm5pbmcsIGluIG1zLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNvcmUuVGltZVN0ZXAjZ2V0RHVyYXRpb25NU1xyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge251bWJlcn0gVGhlIGR1cmF0aW9uIGluIG1zLlxyXG4gICAgICovXHJcbiAgICBnZXREdXJhdGlvbk1TOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHRoaXMubGFzdFRpbWUgLSB0aGlzLnN0YXJ0VGltZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgdGhlIFRpbWVTdGVwIHJ1bm5pbmcuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ29yZS5UaW1lU3RlcCNzdG9wXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGUgVGltZVN0ZXAgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzdG9wOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMucnVubmluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLnJhZi5zdG9wKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc3Ryb3lzIHRoZSBUaW1lU3RlcC4gVGhpcyB3aWxsIHN0b3AgUmVxdWVzdCBBbmltYXRpb24gRnJhbWUsIHN0b3AgdGhlIHN0ZXAsIGNsZWFyIHRoZSBjYWxsYmFja3MgYW5kIG51bGxcclxuICAgICAqIGFueSBvYmplY3RzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkNvcmUuVGltZVN0ZXAjZGVzdHJveVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zdG9wKCk7XHJcblxyXG4gICAgICAgIHRoaXMuY2FsbGJhY2sgPSBOT09QO1xyXG5cclxuICAgICAgICB0aGlzLnJhZiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5nYW1lID0gbnVsbDtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBUaW1lU3RlcDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgRXZlbnRzID0gcmVxdWlyZSgnLi9ldmVudHMnKTtcclxuXHJcbi8qKlxyXG4gKiBUaGUgVmlzaWJpbGl0eSBIYW5kbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBsaXN0ZW5pbmcgb3V0IGZvciBkb2N1bWVudCBsZXZlbCB2aXNpYmlsaXR5IGNoYW5nZSBldmVudHMuXHJcbiAqIFRoaXMgaW5jbHVkZXMgYHZpc2liaWxpdHljaGFuZ2VgIGlmIHRoZSBicm93c2VyIHN1cHBvcnRzIGl0LCBhbmQgYmx1ciBhbmQgZm9jdXMgZXZlbnRzLiBJdCB0aGVuIHVzZXNcclxuICogdGhlIHByb3ZpZGVkIEV2ZW50IEVtaXR0ZXIgYW5kIGZpcmVzIHRoZSByZWxhdGVkIGV2ZW50cy5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5Db3JlLlZpc2liaWxpdHlIYW5kbGVyXHJcbiAqIEBmaXJlcyBQaGFzZXIuQ29yZS5FdmVudHMjQkxVUlxyXG4gKiBAZmlyZXMgUGhhc2VyLkNvcmUuRXZlbnRzI0ZPQ1VTXHJcbiAqIEBmaXJlcyBQaGFzZXIuQ29yZS5FdmVudHMjSElEREVOXHJcbiAqIEBmaXJlcyBQaGFzZXIuQ29yZS5FdmVudHMjVklTSUJMRVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZX0gZ2FtZSAtIFRoZSBHYW1lIGluc3RhbmNlIHRoaXMgVmlzaWJpbGl0eSBIYW5kbGVyIGlzIHdvcmtpbmcgb24uXHJcbiAqL1xyXG52YXIgVmlzaWJpbGl0eUhhbmRsZXIgPSBmdW5jdGlvbiAoZ2FtZSlcclxue1xyXG4gICAgdmFyIGhpZGRlblZhcjtcclxuICAgIHZhciBldmVudEVtaXR0ZXIgPSBnYW1lLmV2ZW50cztcclxuXHJcbiAgICBpZiAoZG9jdW1lbnQuaGlkZGVuICE9PSB1bmRlZmluZWQpXHJcbiAgICB7XHJcbiAgICAgICAgaGlkZGVuVmFyID0gJ3Zpc2liaWxpdHljaGFuZ2UnO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAgIHZhciB2ZW5kb3JzID0gWyAnd2Via2l0JywgJ21veicsICdtcycgXTtcclxuXHJcbiAgICAgICAgdmVuZG9ycy5mb3JFYWNoKGZ1bmN0aW9uIChwcmVmaXgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnRbcHJlZml4ICsgJ0hpZGRlbiddICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmhpZGRlbiA9IGZ1bmN0aW9uICgpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50W3ByZWZpeCArICdIaWRkZW4nXTtcclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgaGlkZGVuVmFyID0gcHJlZml4ICsgJ3Zpc2liaWxpdHljaGFuZ2UnO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBvbkNoYW5nZSA9IGZ1bmN0aW9uIChldmVudClcclxuICAgIHtcclxuICAgICAgICBpZiAoZG9jdW1lbnQuaGlkZGVuIHx8IGV2ZW50LnR5cGUgPT09ICdwYXVzZScpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBldmVudEVtaXR0ZXIuZW1pdChFdmVudHMuSElEREVOKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoRXZlbnRzLlZJU0lCTEUpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKGhpZGRlblZhcilcclxuICAgIHtcclxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKGhpZGRlblZhciwgb25DaGFuZ2UsIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICB3aW5kb3cub25ibHVyID0gZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBldmVudEVtaXR0ZXIuZW1pdChFdmVudHMuQkxVUik7XHJcbiAgICB9O1xyXG5cclxuICAgIHdpbmRvdy5vbmZvY3VzID0gZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBldmVudEVtaXR0ZXIuZW1pdChFdmVudHMuRk9DVVMpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyAgQXV0b21hdGljYWxseSBnaXZlIHRoZSB3aW5kb3cgZm9jdXMgdW5sZXNzIGNvbmZpZyBzYXlzIG90aGVyd2lzZVxyXG4gICAgaWYgKHdpbmRvdy5mb2N1cyAmJiBnYW1lLmNvbmZpZy5hdXRvRm9jdXMpXHJcbiAgICB7XHJcbiAgICAgICAgd2luZG93LmZvY3VzKCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFZpc2liaWxpdHlIYW5kbGVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgR2FtZSBCbHVyIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IHRoZSBHYW1lIFZpc2liaWxpdHkgSGFuZGxlciB3aGVuIHRoZSB3aW5kb3cgaW4gd2hpY2ggdGhlIEdhbWUgaW5zdGFuY2UgaXMgZW1iZWRkZWRcclxuICogZW50ZXJzIGEgYmx1cnJlZCBzdGF0ZS4gVGhlIGJsdXIgZXZlbnQgaXMgcmFpc2VkIHdoZW4gdGhlIHdpbmRvdyBsb3NlcyBmb2N1cy4gVGhpcyBjYW4gaGFwcGVuIGlmIGEgdXNlciBzd2Fwc1xyXG4gKiB0YWIsIG9yIGlmIHRoZXkgc2ltcGx5IHJlbW92ZSBmb2N1cyBmcm9tIHRoZSBicm93c2VyIHRvIGFub3RoZXIgYXBwLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkNvcmUuRXZlbnRzI0JMVVJcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdibHVyJztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIEdhbWUgQm9vdCBFdmVudC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCB3aGVuIHRoZSBQaGFzZXIgR2FtZSBpbnN0YW5jZSBoYXMgZmluaXNoZWQgYm9vdGluZywgYnV0IGJlZm9yZSBpdCBpcyByZWFkeSB0byBzdGFydCBydW5uaW5nLlxyXG4gKiBUaGUgZ2xvYmFsIHN5c3RlbXMgdXNlIHRoaXMgZXZlbnQgdG8ga25vdyB3aGVuIHRvIHNldCB0aGVtc2VsdmVzIHVwLCBkaXNwYXRjaGluZyB0aGVpciBvd24gYHJlYWR5YCBldmVudHMgYXMgcmVxdWlyZWQuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQ29yZS5FdmVudHMjQk9PVFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2Jvb3QnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgR2FtZSBDb250ZXh0IExvc3QgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYnkgdGhlIEdhbWUgaWYgdGhlIFdlYkdMIFJlbmRlcmVyIGl0IGlzIHVzaW5nIGVuY291bnRlcnMgYSBXZWJHTCBDb250ZXh0IExvc3QgZXZlbnQgZnJvbSB0aGUgYnJvd3Nlci5cclxuICogXHJcbiAqIFRoZSBwYXJ0bmVyIGV2ZW50IGlzIGBDT05URVhUX1JFU1RPUkVEYC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5Db3JlLkV2ZW50cyNDT05URVhUX0xPU1RcclxuICogQHNpbmNlIDMuMTkuMFxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAnY29udGV4dGxvc3QnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgR2FtZSBDb250ZXh0IFJlc3RvcmVkIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IHRoZSBHYW1lIGlmIHRoZSBXZWJHTCBSZW5kZXJlciBpdCBpcyB1c2luZyBlbmNvdW50ZXJzIGEgV2ViR0wgQ29udGV4dCBSZXN0b3JlZCBldmVudCBmcm9tIHRoZSBicm93c2VyLlxyXG4gKiBcclxuICogVGhlIHBhcnRuZXIgZXZlbnQgaXMgYENPTlRFWFRfTE9TVGAuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQ29yZS5FdmVudHMjQ09OVEVYVF9SRVNUT1JFRFxyXG4gKiBAc2luY2UgMy4xOS4wXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdjb250ZXh0cmVzdG9yZWQnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgR2FtZSBEZXN0cm95IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gdGhlIGdhbWUgaW5zdGFuY2UgaGFzIGJlZW4gdG9sZCB0byBkZXN0cm95IGl0c2VsZi5cclxuICogTG90cyBvZiBpbnRlcm5hbCBzeXN0ZW1zIGxpc3RlbiB0byB0aGlzIGV2ZW50IGluIG9yZGVyIHRvIGNsZWFyIHRoZW1zZWx2ZXMgb3V0LlxyXG4gKiBDdXN0b20gcGx1Z2lucyBhbmQgZ2FtZSBjb2RlIHNob3VsZCBhbHNvIGRvIHRoZSBzYW1lLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkNvcmUuRXZlbnRzI0RFU1RST1lcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdkZXN0cm95JztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIEdhbWUgRm9jdXMgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYnkgdGhlIEdhbWUgVmlzaWJpbGl0eSBIYW5kbGVyIHdoZW4gdGhlIHdpbmRvdyBpbiB3aGljaCB0aGUgR2FtZSBpbnN0YW5jZSBpcyBlbWJlZGRlZFxyXG4gKiBlbnRlcnMgYSBmb2N1c2VkIHN0YXRlLiBUaGUgZm9jdXMgZXZlbnQgaXMgcmFpc2VkIHdoZW4gdGhlIHdpbmRvdyByZS1nYWlucyBmb2N1cywgaGF2aW5nIHByZXZpb3VzbHkgbG9zdCBpdC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5Db3JlLkV2ZW50cyNGT0NVU1xyXG4gKiBAc2luY2UgMy4wLjBcclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2ZvY3VzJztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIEdhbWUgSGlkZGVuIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IHRoZSBHYW1lIFZpc2liaWxpdHkgSGFuZGxlciB3aGVuIHRoZSBkb2N1bWVudCBpbiB3aGljaCB0aGUgR2FtZSBpbnN0YW5jZSBpcyBlbWJlZGRlZFxyXG4gKiBlbnRlcnMgYSBoaWRkZW4gc3RhdGUuIE9ubHkgYnJvd3NlcnMgdGhhdCBzdXBwb3J0IHRoZSBWaXNpYmlsaXR5IEFQSSB3aWxsIGNhdXNlIHRoaXMgZXZlbnQgdG8gYmUgZW1pdHRlZC5cclxuICogXHJcbiAqIEluIG1vc3QgbW9kZXJuIGJyb3dzZXJzLCB3aGVuIHRoZSBkb2N1bWVudCBlbnRlcnMgYSBoaWRkZW4gc3RhdGUsIHRoZSBSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSBhbmQgc2V0VGltZW91dCwgd2hpY2hcclxuICogY29udHJvbCB0aGUgbWFpbiBnYW1lIGxvb3AsIHdpbGwgYXV0b21hdGljYWxseSBwYXVzZS4gVGhlcmUgaXMgbm8gd2F5IHRvIHN0b3AgdGhpcyBmcm9tIGhhcHBlbmluZy4gSXQgaXMgc29tZXRoaW5nXHJcbiAqIHlvdXIgZ2FtZSBzaG91bGQgYWNjb3VudCBmb3IgaW4gaXRzIG93biBjb2RlLCBzaG91bGQgdGhlIHBhdXNlIGJlIGFuIGlzc3VlIChpLmUuIGZvciBtdWx0aXBsYXllciBnYW1lcylcclxuICpcclxuICogQGV2ZW50IFBoYXNlci5Db3JlLkV2ZW50cyNISURERU5cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdoaWRkZW4nO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgR2FtZSBQYXVzZSBFdmVudC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCB3aGVuIHRoZSBHYW1lIGxvb3AgZW50ZXJzIGEgcGF1c2VkIHN0YXRlLCB1c3VhbGx5IGFzIGEgcmVzdWx0IG9mIHRoZSBWaXNpYmlsaXR5IEhhbmRsZXIuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuQ29yZS5FdmVudHMjUEFVU0VcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdwYXVzZSc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBHYW1lIFBvc3QtUmVuZGVyIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIHJpZ2h0IGF0IHRoZSBlbmQgb2YgdGhlIHJlbmRlciBwcm9jZXNzLlxyXG4gKiBcclxuICogRXZlcnkgU2NlbmUgd2lsbCBoYXZlIHJlbmRlcmVkIGFuZCBiZWVuIGRyYXduIHRvIHRoZSBjYW52YXMgYnkgdGhlIHRpbWUgdGhpcyBldmVudCBpcyBmaXJlZC5cclxuICogVXNlIGl0IGZvciBhbnkgbGFzdCBtaW51dGUgcG9zdC1wcm9jZXNzaW5nIGJlZm9yZSB0aGUgbmV4dCBnYW1lIHN0ZXAgYmVnaW5zLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkNvcmUuRXZlbnRzI1BPU1RfUkVOREVSXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBcclxuICogQHBhcmFtIHsoUGhhc2VyLlJlbmRlcmVyLkNhbnZhcy5DYW52YXNSZW5kZXJlcnxQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xSZW5kZXJlcil9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgcmVuZGVyZXIgYmVpbmcgdXNlZCBieSB0aGUgR2FtZSBpbnN0YW5jZS5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ3Bvc3RyZW5kZXInO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgR2FtZSBQb3N0LVN0ZXAgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYWZ0ZXIgdGhlIFNjZW5lIE1hbmFnZXIgaGFzIHVwZGF0ZWQuXHJcbiAqIEhvb2sgaW50byBpdCBmcm9tIHBsdWdpbnMgb3Igc3lzdGVtcyB0aGF0IG5lZWQgdG8gZG8gdGhpbmdzIGJlZm9yZSB0aGUgcmVuZGVyIHN0YXJ0cy5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5Db3JlLkV2ZW50cyNQT1NUX1NURVBcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge251bWJlcn0gdGltZSAtIFRoZSBjdXJyZW50IHRpbWUuIEVpdGhlciBhIEhpZ2ggUmVzb2x1dGlvbiBUaW1lciB2YWx1ZSBpZiBpdCBjb21lcyBmcm9tIFJlcXVlc3QgQW5pbWF0aW9uIEZyYW1lLCBvciBEYXRlLm5vdyBpZiB1c2luZyBTZXRUaW1lb3V0LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gZGVsdGEgLSBUaGUgZGVsdGEgdGltZSBpbiBtcyBzaW5jZSB0aGUgbGFzdCBmcmFtZS4gVGhpcyBpcyBhIHNtb290aGVkIGFuZCBjYXBwZWQgdmFsdWUgYmFzZWQgb24gdGhlIEZQUyByYXRlLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAncG9zdHN0ZXAnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgR2FtZSBQcmUtUmVuZGVyIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGltbWVkaWF0ZWx5IGJlZm9yZSBhbnkgb2YgdGhlIFNjZW5lcyBoYXZlIHN0YXJ0ZWQgdG8gcmVuZGVyLlxyXG4gKiBcclxuICogVGhlIHJlbmRlcmVyIHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgdGhpcyBmcmFtZSwgY2xlYXJpbmcgaXRzZWxmIGFuZCBwcmVwYXJpbmcgdG8gcmVjZWl2ZSB0aGUgU2NlbmVzIGZvciByZW5kZXJpbmcsIGJ1dCBpdCB3b24ndCBoYXZlIGFjdHVhbGx5IGRyYXduIGFueXRoaW5nIHlldC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5Db3JlLkV2ZW50cyNQUkVfUkVOREVSXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBcclxuICogQHBhcmFtIHsoUGhhc2VyLlJlbmRlcmVyLkNhbnZhcy5DYW52YXNSZW5kZXJlcnxQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xSZW5kZXJlcil9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgcmVuZGVyZXIgYmVpbmcgdXNlZCBieSB0aGUgR2FtZSBpbnN0YW5jZS5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ3ByZXJlbmRlcic7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBHYW1lIFByZS1TdGVwIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJlZm9yZSB0aGUgbWFpbiBHYW1lIFN0ZXAgc3RhcnRzLiBCeSB0aGlzIHBvaW50IGluIHRoZSBnYW1lIGN5Y2xlIG5vbmUgb2YgdGhlIFNjZW5lIHVwZGF0ZXMgaGF2ZSB5ZXQgaGFwcGVuZWQuXHJcbiAqIEhvb2sgaW50byBpdCBmcm9tIHBsdWdpbnMgb3Igc3lzdGVtcyB0aGF0IG5lZWQgdG8gdXBkYXRlIGJlZm9yZSB0aGUgU2NlbmUgTWFuYWdlciBkb2VzLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkNvcmUuRXZlbnRzI1BSRV9TVEVQXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBcclxuICogQHBhcmFtIHtudW1iZXJ9IHRpbWUgLSBUaGUgY3VycmVudCB0aW1lLiBFaXRoZXIgYSBIaWdoIFJlc29sdXRpb24gVGltZXIgdmFsdWUgaWYgaXQgY29tZXMgZnJvbSBSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSwgb3IgRGF0ZS5ub3cgaWYgdXNpbmcgU2V0VGltZW91dC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGRlbHRhIC0gVGhlIGRlbHRhIHRpbWUgaW4gbXMgc2luY2UgdGhlIGxhc3QgZnJhbWUuIFRoaXMgaXMgYSBzbW9vdGhlZCBhbmQgY2FwcGVkIHZhbHVlIGJhc2VkIG9uIHRoZSBGUFMgcmF0ZS5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ3ByZXN0ZXAnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgR2FtZSBSZWFkeSBFdmVudC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCB3aGVuIHRoZSBQaGFzZXIgR2FtZSBpbnN0YW5jZSBoYXMgZmluaXNoZWQgYm9vdGluZywgdGhlIFRleHR1cmUgTWFuYWdlciBpcyBmdWxseSByZWFkeSxcclxuICogYW5kIGFsbCBsb2NhbCBzeXN0ZW1zIGFyZSBub3cgYWJsZSB0byBzdGFydC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5Db3JlLkV2ZW50cyNSRUFEWVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ3JlYWR5JztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIEdhbWUgUmVzdW1lIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gdGhlIGdhbWUgbG9vcCBsZWF2ZXMgYSBwYXVzZWQgc3RhdGUgYW5kIHJlc3VtZXMgcnVubmluZy5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5Db3JlLkV2ZW50cyNSRVNVTUVcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdyZXN1bWUnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgR2FtZSBTdGVwIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGFmdGVyIHRoZSBHYW1lIFByZS1TdGVwIGFuZCBiZWZvcmUgdGhlIFNjZW5lIE1hbmFnZXIgc3RlcHMuXHJcbiAqIEhvb2sgaW50byBpdCBmcm9tIHBsdWdpbnMgb3Igc3lzdGVtcyB0aGF0IG5lZWQgdG8gdXBkYXRlIGJlZm9yZSB0aGUgU2NlbmUgTWFuYWdlciBkb2VzLCBidXQgYWZ0ZXIgdGhlIGNvcmUgU3lzdGVtcyBoYXZlLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkNvcmUuRXZlbnRzI1NURVBcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge251bWJlcn0gdGltZSAtIFRoZSBjdXJyZW50IHRpbWUuIEVpdGhlciBhIEhpZ2ggUmVzb2x1dGlvbiBUaW1lciB2YWx1ZSBpZiBpdCBjb21lcyBmcm9tIFJlcXVlc3QgQW5pbWF0aW9uIEZyYW1lLCBvciBEYXRlLm5vdyBpZiB1c2luZyBTZXRUaW1lb3V0LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gZGVsdGEgLSBUaGUgZGVsdGEgdGltZSBpbiBtcyBzaW5jZSB0aGUgbGFzdCBmcmFtZS4gVGhpcyBpcyBhIHNtb290aGVkIGFuZCBjYXBwZWQgdmFsdWUgYmFzZWQgb24gdGhlIEZQUyByYXRlLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAnc3RlcCc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBHYW1lIFZpc2libGUgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYnkgdGhlIEdhbWUgVmlzaWJpbGl0eSBIYW5kbGVyIHdoZW4gdGhlIGRvY3VtZW50IGluIHdoaWNoIHRoZSBHYW1lIGluc3RhbmNlIGlzIGVtYmVkZGVkXHJcbiAqIGVudGVycyBhIHZpc2libGUgc3RhdGUsIHByZXZpb3VzbHkgaGF2aW5nIGJlZW4gaGlkZGVuLlxyXG4gKiBcclxuICogT25seSBicm93c2VycyB0aGF0IHN1cHBvcnQgdGhlIFZpc2liaWxpdHkgQVBJIHdpbGwgY2F1c2UgdGhpcyBldmVudCB0byBiZSBlbWl0dGVkLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkNvcmUuRXZlbnRzI1ZJU0lCTEVcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICd2aXNpYmxlJztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuQ29yZS5FdmVudHNcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBCTFVSOiByZXF1aXJlKCcuL0JMVVJfRVZFTlQnKSxcclxuICAgIEJPT1Q6IHJlcXVpcmUoJy4vQk9PVF9FVkVOVCcpLFxyXG4gICAgQ09OVEVYVF9MT1NUOiByZXF1aXJlKCcuL0NPTlRFWFRfTE9TVF9FVkVOVCcpLFxyXG4gICAgQ09OVEVYVF9SRVNUT1JFRDogcmVxdWlyZSgnLi9DT05URVhUX1JFU1RPUkVEX0VWRU5UJyksXHJcbiAgICBERVNUUk9ZOiByZXF1aXJlKCcuL0RFU1RST1lfRVZFTlQnKSxcclxuICAgIEZPQ1VTOiByZXF1aXJlKCcuL0ZPQ1VTX0VWRU5UJyksXHJcbiAgICBISURERU46IHJlcXVpcmUoJy4vSElEREVOX0VWRU5UJyksXHJcbiAgICBQQVVTRTogcmVxdWlyZSgnLi9QQVVTRV9FVkVOVCcpLFxyXG4gICAgUE9TVF9SRU5ERVI6IHJlcXVpcmUoJy4vUE9TVF9SRU5ERVJfRVZFTlQnKSxcclxuICAgIFBPU1RfU1RFUDogcmVxdWlyZSgnLi9QT1NUX1NURVBfRVZFTlQnKSxcclxuICAgIFBSRV9SRU5ERVI6IHJlcXVpcmUoJy4vUFJFX1JFTkRFUl9FVkVOVCcpLFxyXG4gICAgUFJFX1NURVA6IHJlcXVpcmUoJy4vUFJFX1NURVBfRVZFTlQnKSxcclxuICAgIFJFQURZOiByZXF1aXJlKCcuL1JFQURZX0VWRU5UJyksXHJcbiAgICBSRVNVTUU6IHJlcXVpcmUoJy4vUkVTVU1FX0VWRU5UJyksXHJcbiAgICBTVEVQOiByZXF1aXJlKCcuL1NURVBfRVZFTlQnKSxcclxuICAgIFZJU0lCTEU6IHJlcXVpcmUoJy4vVklTSUJMRV9FVkVOVCcpXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5Db3JlXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgQ29uZmlnOiByZXF1aXJlKCcuL0NvbmZpZycpLFxyXG4gICAgQ3JlYXRlUmVuZGVyZXI6IHJlcXVpcmUoJy4vQ3JlYXRlUmVuZGVyZXInKSxcclxuICAgIERlYnVnSGVhZGVyOiByZXF1aXJlKCcuL0RlYnVnSGVhZGVyJyksXHJcbiAgICBFdmVudHM6IHJlcXVpcmUoJy4vZXZlbnRzJyksXHJcbiAgICBUaW1lU3RlcDogcmVxdWlyZSgnLi9UaW1lU3RlcCcpLFxyXG4gICAgVmlzaWJpbGl0eUhhbmRsZXI6IHJlcXVpcmUoJy4vVmlzaWJpbGl0eUhhbmRsZXInKVxyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQXJuZTE2ID0gcmVxdWlyZSgnLi9wYWxldHRlcy9Bcm5lMTYnKTtcclxudmFyIENhbnZhc1Bvb2wgPSByZXF1aXJlKCcuLi9kaXNwbGF5L2NhbnZhcy9DYW52YXNQb29sJyk7XHJcbnZhciBHZXRWYWx1ZSA9IHJlcXVpcmUoJy4uL3V0aWxzL29iamVjdC9HZXRWYWx1ZScpO1xyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXRlcyBhIHRleHR1cmUgYmFzZWQgb24gdGhlIGdpdmVuIENyZWF0ZSBjb25maWd1cmF0aW9uIG9iamVjdC5cclxuICogXHJcbiAqIFRoZSB0ZXh0dXJlIGlzIGRyYXduIHVzaW5nIGEgZml4ZWQtc2l6ZSBpbmRleGVkIHBhbGV0dGUgb2YgMTYgY29sb3JzLCB3aGVyZSB0aGUgaGV4IHZhbHVlIGluIHRoZVxyXG4gKiBkYXRhIGNlbGxzIG1hcCB0byBhIHNpbmdsZSBjb2xvci4gRm9yIGV4YW1wbGUsIGlmIHRoZSB0ZXh0dXJlIGNvbmZpZyBsb29rZWQgbGlrZSB0aGlzOlxyXG4gKlxyXG4gKiBgYGBqYXZhc2NyaXB0XHJcbiAqIHZhciBzdGFyID0gW1xyXG4gKiAgICcuLi4uLjgyOC4uLi4uJyxcclxuICogICAnLi4uLjcyMjI3Li4uLicsXHJcbiAqICAgJy4uLi44MjIyOC4uLi4nLFxyXG4gKiAgICcuLi43MjIyMjI3Li4uJyxcclxuICogICAnMjIyMjIyMjIyMjIyMicsXHJcbiAqICAgJzgyMjIyMjIyMjIyMjgnLFxyXG4gKiAgICcuNzIyMjIyMjIyMjcuJyxcclxuICogICAnLi43ODc3Nzc3ODcuLicsXHJcbiAqICAgJy4uODc3Nzc3Nzc4Li4nLFxyXG4gKiAgICcuNzg3Nzg4ODc3ODcuJyxcclxuICogICAnLjI3ODg3Ljc4ODcyLicsXHJcbiAqICAgJy43ODcuLi4uLjc4Ny4nXHJcbiAqIF07XHJcbiAqIFxyXG4gKiB0aGlzLnRleHR1cmVzLmdlbmVyYXRlKCdzdGFyJywgeyBkYXRhOiBzdGFyLCBwaXhlbFdpZHRoOiA0IH0pO1xyXG4gKiBgYGBcclxuICogXHJcbiAqIFRoZW4gaXQgd291bGQgZ2VuZXJhdGUgYSB0ZXh0dXJlIHRoYXQgaXMgNTIgeCA0OCBwaXhlbHMgaW4gc2l6ZSwgYmVjYXVzZSBlYWNoIGNlbGwgb2YgdGhlIGRhdGEgYXJyYXlcclxuICogcmVwcmVzZW50cyAxIHBpeGVsIG11bHRpcGxpZWQgYnkgdGhlIGBwaXhlbFdpZHRoYCB2YWx1ZS4gVGhlIGNlbGwgdmFsdWVzLCBzdWNoIGFzIGA4YCwgbWFwcyB0byBjb2xvclxyXG4gKiBudW1iZXIgOCBpbiB0aGUgcGFsZXR0ZS4gSWYgYSBjZWxsIGNvbnRhaW5zIGEgcGVyaW9kIGNoYXJhY3RlciBgLmAgdGhlbiBpdCBpcyB0cmFuc3BhcmVudC5cclxuICogXHJcbiAqIFRoZSBkZWZhdWx0IHBhbGV0dGUgaXMgQXJuZTE2LCBidXQgeW91IGNhbiBzcGVjaWZ5IHlvdXIgb3duIHVzaW5nIHRoZSBgcGFsZXR0ZWAgcHJvcGVydHkuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQ3JlYXRlLkdlbmVyYXRlVGV4dHVyZVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuQ3JlYXRlLkdlbmVyYXRlVGV4dHVyZUNvbmZpZ30gY29uZmlnIC0gVGhlIEdlbmVyYXRlIFRleHR1cmUgQ29uZmlndXJhdGlvbiBvYmplY3QuXHJcbiAqXHJcbiAqIEByZXR1cm4ge0hUTUxDYW52YXNFbGVtZW50fSBBbiBIVE1MQ2FudmFzRWxlbWVudCB3aGljaCBjb250YWlucyB0aGUgZ2VuZXJhdGVkIHRleHR1cmUgZHJhd24gdG8gaXQuXHJcbiAqL1xyXG52YXIgR2VuZXJhdGVUZXh0dXJlID0gZnVuY3Rpb24gKGNvbmZpZylcclxue1xyXG4gICAgdmFyIGRhdGEgPSBHZXRWYWx1ZShjb25maWcsICdkYXRhJywgW10pO1xyXG4gICAgdmFyIGNhbnZhcyA9IEdldFZhbHVlKGNvbmZpZywgJ2NhbnZhcycsIG51bGwpO1xyXG4gICAgdmFyIHBhbGV0dGUgPSBHZXRWYWx1ZShjb25maWcsICdwYWxldHRlJywgQXJuZTE2KTtcclxuICAgIHZhciBwaXhlbFdpZHRoID0gR2V0VmFsdWUoY29uZmlnLCAncGl4ZWxXaWR0aCcsIDEpO1xyXG4gICAgdmFyIHBpeGVsSGVpZ2h0ID0gR2V0VmFsdWUoY29uZmlnLCAncGl4ZWxIZWlnaHQnLCBwaXhlbFdpZHRoKTtcclxuICAgIHZhciByZXNpemVDYW52YXMgPSBHZXRWYWx1ZShjb25maWcsICdyZXNpemVDYW52YXMnLCB0cnVlKTtcclxuICAgIHZhciBjbGVhckNhbnZhcyA9IEdldFZhbHVlKGNvbmZpZywgJ2NsZWFyQ2FudmFzJywgdHJ1ZSk7XHJcbiAgICB2YXIgcHJlUmVuZGVyID0gR2V0VmFsdWUoY29uZmlnLCAncHJlUmVuZGVyJywgbnVsbCk7XHJcbiAgICB2YXIgcG9zdFJlbmRlciA9IEdldFZhbHVlKGNvbmZpZywgJ3Bvc3RSZW5kZXInLCBudWxsKTtcclxuXHJcbiAgICB2YXIgd2lkdGggPSBNYXRoLmZsb29yKE1hdGguYWJzKGRhdGFbMF0ubGVuZ3RoICogcGl4ZWxXaWR0aCkpO1xyXG4gICAgdmFyIGhlaWdodCA9IE1hdGguZmxvb3IoTWF0aC5hYnMoZGF0YS5sZW5ndGggKiBwaXhlbEhlaWdodCkpO1xyXG5cclxuICAgIGlmICghY2FudmFzKVxyXG4gICAge1xyXG4gICAgICAgIGNhbnZhcyA9IENhbnZhc1Bvb2wuY3JlYXRlMkQodGhpcywgd2lkdGgsIGhlaWdodCk7XHJcbiAgICAgICAgcmVzaXplQ2FudmFzID0gZmFsc2U7XHJcbiAgICAgICAgY2xlYXJDYW52YXMgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocmVzaXplQ2FudmFzKVxyXG4gICAge1xyXG4gICAgICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoO1xyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG5cclxuICAgIGlmIChjbGVhckNhbnZhcylcclxuICAgIHtcclxuICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBwcmVSZW5kZXIgQ2FsbGJhY2s/XHJcbiAgICBpZiAocHJlUmVuZGVyKVxyXG4gICAge1xyXG4gICAgICAgIHByZVJlbmRlcihjYW52YXMsIGN0eCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIERyYXcgaXRcclxuICAgIGZvciAodmFyIHkgPSAwOyB5IDwgZGF0YS5sZW5ndGg7IHkrKylcclxuICAgIHtcclxuICAgICAgICB2YXIgcm93ID0gZGF0YVt5XTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgeCA9IDA7IHggPCByb3cubGVuZ3RoOyB4KyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgZCA9IHJvd1t4XTtcclxuXHJcbiAgICAgICAgICAgIGlmIChkICE9PSAnLicgJiYgZCAhPT0gJyAnKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gcGFsZXR0ZVtkXTtcclxuICAgICAgICAgICAgICAgIGN0eC5maWxsUmVjdCh4ICogcGl4ZWxXaWR0aCwgeSAqIHBpeGVsSGVpZ2h0LCBwaXhlbFdpZHRoLCBwaXhlbEhlaWdodCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIHBvc3RSZW5kZXIgQ2FsbGJhY2s/XHJcbiAgICBpZiAocG9zdFJlbmRlcilcclxuICAgIHtcclxuICAgICAgICBwb3N0UmVuZGVyKGNhbnZhcywgY3R4KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY2FudmFzO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHZW5lcmF0ZVRleHR1cmU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkNyZWF0ZVxyXG4gKi9cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG4gIFxyXG4gICAgR2VuZXJhdGVUZXh0dXJlOiByZXF1aXJlKCcuL0dlbmVyYXRlVGV4dHVyZScpLFxyXG4gICAgUGFsZXR0ZXM6IHJlcXVpcmUoJy4vcGFsZXR0ZXMnKVxyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQSAxNiBjb2xvciBwYWxldHRlIGJ5IFtBcm5lXShodHRwOi8vYW5kcm9pZGFydHMuY29tL3BhbGV0dGUvMTZwYWwuaHRtKVxyXG4gKlxyXG4gKiBAbmFtZSBQaGFzZXIuQ3JlYXRlLlBhbGV0dGVzLkFSTkUxNlxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHR5cGUge1BoYXNlci5UeXBlcy5DcmVhdGUuUGFsZXR0ZX1cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgMDogJyMwMDAnLFxyXG4gICAgMTogJyM5RDlEOUQnLFxyXG4gICAgMjogJyNGRkYnLFxyXG4gICAgMzogJyNCRTI2MzMnLFxyXG4gICAgNDogJyNFMDZGOEInLFxyXG4gICAgNTogJyM0OTNDMkInLFxyXG4gICAgNjogJyNBNDY0MjInLFxyXG4gICAgNzogJyNFQjg5MzEnLFxyXG4gICAgODogJyNGN0UyNkInLFxyXG4gICAgOTogJyMyRjQ4NEUnLFxyXG4gICAgQTogJyM0NDg5MUEnLFxyXG4gICAgQjogJyNBM0NFMjcnLFxyXG4gICAgQzogJyMxQjI2MzInLFxyXG4gICAgRDogJyMwMDU3ODQnLFxyXG4gICAgRTogJyMzMUEyRjInLFxyXG4gICAgRjogJyNCMkRDRUYnXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEEgMTYgY29sb3IgcGFsZXR0ZSBpbnNwaXJlZCBieSB0aGUgQ29tbW9kb3JlIDY0LlxyXG4gKlxyXG4gKiBAbmFtZSBQaGFzZXIuQ3JlYXRlLlBhbGV0dGVzLkM2NFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHR5cGUge1BoYXNlci5UeXBlcy5DcmVhdGUuUGFsZXR0ZX1cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgMDogJyMwMDAnLFxyXG4gICAgMTogJyNmZmYnLFxyXG4gICAgMjogJyM4YjQxMzEnLFxyXG4gICAgMzogJyM3YmJkYzUnLFxyXG4gICAgNDogJyM4YjQxYWMnLFxyXG4gICAgNTogJyM2YWFjNDEnLFxyXG4gICAgNjogJyMzOTMxYTQnLFxyXG4gICAgNzogJyNkNWRlNzMnLFxyXG4gICAgODogJyM5NDVhMjAnLFxyXG4gICAgOTogJyM1YTQxMDAnLFxyXG4gICAgQTogJyNiZDczNmEnLFxyXG4gICAgQjogJyM1MjUyNTInLFxyXG4gICAgQzogJyM4MzgzODMnLFxyXG4gICAgRDogJyNhY2VlOGInLFxyXG4gICAgRTogJyM3YjczZGUnLFxyXG4gICAgRjogJyNhY2FjYWMnXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEEgMTYgY29sb3IgQ0dBIGluc3BpcmVkIHBhbGV0dGUgYnkgW0FybmVdKGh0dHA6Ly9hbmRyb2lkYXJ0cy5jb20vcGFsZXR0ZS8xNnBhbC5odG0pXHJcbiAqXHJcbiAqIEBuYW1lIFBoYXNlci5DcmVhdGUuUGFsZXR0ZXMuQ0dBXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAdHlwZSB7UGhhc2VyLlR5cGVzLkNyZWF0ZS5QYWxldHRlfVxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcbiAgICAwOiAnIzAwMCcsXHJcbiAgICAxOiAnIzIyMzRkMScsXHJcbiAgICAyOiAnIzBjN2U0NScsXHJcbiAgICAzOiAnIzQ0YWFjYycsXHJcbiAgICA0OiAnIzhhMzYyMicsXHJcbiAgICA1OiAnIzVjMmU3OCcsXHJcbiAgICA2OiAnI2FhNWMzZCcsXHJcbiAgICA3OiAnI2I1YjViNScsXHJcbiAgICA4OiAnIzVlNjA2ZScsXHJcbiAgICA5OiAnIzRjODFmYicsXHJcbiAgICBBOiAnIzZjZDk0NycsXHJcbiAgICBCOiAnIzdiZTJmOScsXHJcbiAgICBDOiAnI2ViOGE2MCcsXHJcbiAgICBEOiAnI2UyM2Q2OScsXHJcbiAgICBFOiAnI2ZmZDkzZicsXHJcbiAgICBGOiAnI2ZmZidcclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQSAxNiBjb2xvciBKTVAgcGFsZXR0ZSBieSBbQXJuZV0oaHR0cDovL2FuZHJvaWRhcnRzLmNvbS9wYWxldHRlLzE2cGFsLmh0bSlcclxuICpcclxuICogQG5hbWUgUGhhc2VyLkNyZWF0ZS5QYWxldHRlcy5KTVBcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEB0eXBlIHtQaGFzZXIuVHlwZXMuQ3JlYXRlLlBhbGV0dGV9XHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIDA6ICcjMDAwJyxcclxuICAgIDE6ICcjMTkxMDI4JyxcclxuICAgIDI6ICcjNDZhZjQ1JyxcclxuICAgIDM6ICcjYTFkNjg1JyxcclxuICAgIDQ6ICcjNDUzZTc4JyxcclxuICAgIDU6ICcjNzY2NGZlJyxcclxuICAgIDY6ICcjODMzMTI5JyxcclxuICAgIDc6ICcjOWVjMmU4JyxcclxuICAgIDg6ICcjZGM1MzRiJyxcclxuICAgIDk6ICcjZTE4ZDc5JyxcclxuICAgIEE6ICcjZDZiOTdiJyxcclxuICAgIEI6ICcjZTlkOGExJyxcclxuICAgIEM6ICcjMjE2YzRiJyxcclxuICAgIEQ6ICcjZDM2NWM4JyxcclxuICAgIEU6ICcjYWZhYWI5JyxcclxuICAgIEY6ICcjZjVmNGViJ1xyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBBIDE2IGNvbG9yIHBhbGV0dGUgaW5zcGlyZWQgYnkgSmFwYW5lc2UgY29tcHV0ZXJzIGxpa2UgdGhlIE1TWC5cclxuICpcclxuICogQG5hbWUgUGhhc2VyLkNyZWF0ZS5QYWxldHRlcy5NU1hcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEB0eXBlIHtQaGFzZXIuVHlwZXMuQ3JlYXRlLlBhbGV0dGV9XHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuICAgIDA6ICcjMDAwJyxcclxuICAgIDE6ICcjMTkxMDI4JyxcclxuICAgIDI6ICcjNDZhZjQ1JyxcclxuICAgIDM6ICcjYTFkNjg1JyxcclxuICAgIDQ6ICcjNDUzZTc4JyxcclxuICAgIDU6ICcjNzY2NGZlJyxcclxuICAgIDY6ICcjODMzMTI5JyxcclxuICAgIDc6ICcjOWVjMmU4JyxcclxuICAgIDg6ICcjZGM1MzRiJyxcclxuICAgIDk6ICcjZTE4ZDc5JyxcclxuICAgIEE6ICcjZDZiOTdiJyxcclxuICAgIEI6ICcjZTlkOGExJyxcclxuICAgIEM6ICcjMjE2YzRiJyxcclxuICAgIEQ6ICcjZDM2NWM4JyxcclxuICAgIEU6ICcjYWZhYWI5JyxcclxuICAgIEY6ICcjZmZmJ1xyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5DcmVhdGUuUGFsZXR0ZXNcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBBUk5FMTY6IHJlcXVpcmUoJy4vQXJuZTE2JyksXHJcbiAgICBDNjQ6IHJlcXVpcmUoJy4vQzY0JyksXHJcbiAgICBDR0E6IHJlcXVpcmUoJy4vQ0dBJyksXHJcbiAgICBKTVA6IHJlcXVpcmUoJy4vSk1QJyksXHJcbiAgICBNU1g6IHJlcXVpcmUoJy4vTVNYJylcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLy8gIEJhc2VkIG9uIHRoZSB0aHJlZS5qcyBDdXJ2ZSBjbGFzc2VzIGNyZWF0ZWQgYnkgW3p6ODVdKGh0dHA6Ly93d3cubGFiNGdhbWVzLm5ldC96ejg1L2Jsb2cpXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi91dGlscy9DbGFzcycpO1xyXG52YXIgQ3ViaWNCZXppZXIgPSByZXF1aXJlKCcuLi9tYXRoL2ludGVycG9sYXRpb24vQ3ViaWNCZXppZXJJbnRlcnBvbGF0aW9uJyk7XHJcbnZhciBDdXJ2ZSA9IHJlcXVpcmUoJy4vQ3VydmUnKTtcclxudmFyIFZlY3RvcjIgPSByZXF1aXJlKCcuLi9tYXRoL1ZlY3RvcjInKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgaGlnaGVyLW9yZGVyIELDqXppZXIgY3VydmUgY29uc3RydWN0ZWQgb2YgZm91ciBwb2ludHMuXHJcbiAqXHJcbiAqIEBjbGFzcyBDdWJpY0JlemllclxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuQ3VydmVzLkN1cnZlXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuQ3VydmVzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHsoUGhhc2VyLk1hdGguVmVjdG9yMnxQaGFzZXIuTWF0aC5WZWN0b3IyW10pfSBwMCAtIFN0YXJ0IHBvaW50LCBvciBhbiBhcnJheSBvZiBwb2ludCBwYWlycy5cclxuICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBwMSAtIENvbnRyb2wgUG9pbnQgMS5cclxuICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBwMiAtIENvbnRyb2wgUG9pbnQgMi5cclxuICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBwMyAtIEVuZCBQb2ludC5cclxuICovXHJcbnZhciBDdWJpY0JlemllckN1cnZlID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBFeHRlbmRzOiBDdXJ2ZSxcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIEN1YmljQmV6aWVyQ3VydmUgKHAwLCBwMSwgcDIsIHAzKVxyXG4gICAge1xyXG4gICAgICAgIEN1cnZlLmNhbGwodGhpcywgJ0N1YmljQmV6aWVyQ3VydmUnKTtcclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocDApKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcDMgPSBuZXcgVmVjdG9yMihwMFs2XSwgcDBbN10pO1xyXG4gICAgICAgICAgICBwMiA9IG5ldyBWZWN0b3IyKHAwWzRdLCBwMFs1XSk7XHJcbiAgICAgICAgICAgIHAxID0gbmV3IFZlY3RvcjIocDBbMl0sIHAwWzNdKTtcclxuICAgICAgICAgICAgcDAgPSBuZXcgVmVjdG9yMihwMFswXSwgcDBbMV0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHN0YXJ0IHBvaW50IG9mIHRoaXMgY3VydmUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ3VydmVzLkN1YmljQmV6aWVyI3AwXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wMCA9IHAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZmlyc3QgY29udHJvbCBwb2ludCBvZiB0aGlzIGN1cnZlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5DdWJpY0JlemllciNwMVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuTWF0aC5WZWN0b3IyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucDEgPSBwMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHNlY29uZCBjb250cm9sIHBvaW50IG9mIHRoaXMgY3VydmUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ3VydmVzLkN1YmljQmV6aWVyI3AyXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wMiA9IHAyO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZW5kIHBvaW50IG9mIHRoaXMgY3VydmUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ3VydmVzLkN1YmljQmV6aWVyI3AzXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wMyA9IHAzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHN0YXJ0aW5nIHBvaW50IG9uIHRoZSBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuQ3ViaWNCZXppZXIjZ2V0U3RhcnRQb2ludFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBbb3V0XSAtIEEgVmVjdG9yMiBvYmplY3QgdG8gc3RvcmUgdGhlIHJlc3VsdCBpbi4gSWYgbm90IGdpdmVuIHdpbGwgYmUgY3JlYXRlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBUaGUgY29vcmRpbmF0ZXMgb2YgdGhlIHBvaW50IG9uIHRoZSBjdXJ2ZS4gSWYgYW4gYG91dGAgb2JqZWN0IHdhcyBnaXZlbiB0aGlzIHdpbGwgYmUgcmV0dXJuZWQuXHJcbiAgICAgKi9cclxuICAgIGdldFN0YXJ0UG9pbnQ6IGZ1bmN0aW9uIChvdXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG91dCA9PT0gdW5kZWZpbmVkKSB7IG91dCA9IG5ldyBWZWN0b3IyKCk7IH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG91dC5jb3B5KHRoaXMucDApO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIHJlc29sdXRpb24gb2YgdGhpcyBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuQ3ViaWNCZXppZXIjZ2V0UmVzb2x1dGlvblxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRpdmlzaW9ucyAtIFRoZSBhbW91bnQgb2YgZGl2aXNpb25zIHVzZWQgYnkgdGhpcyBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSByZXNvbHV0aW9uIG9mIHRoZSBjdXJ2ZS5cclxuICAgICAqL1xyXG4gICAgZ2V0UmVzb2x1dGlvbjogZnVuY3Rpb24gKGRpdmlzaW9ucylcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gZGl2aXNpb25zO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBwb2ludCBhdCByZWxhdGl2ZSBwb3NpdGlvbiBpbiBjdXJ2ZSBhY2NvcmRpbmcgdG8gbGVuZ3RoLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5DdWJpY0JlemllciNnZXRQb2ludFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHQgLSBUaGUgcG9zaXRpb24gYWxvbmcgdGhlIGN1cnZlIHRvIHJldHVybi4gV2hlcmUgMCBpcyB0aGUgc3RhcnQgYW5kIDEgaXMgdGhlIGVuZC5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLk1hdGguVmVjdG9yMn0gW291dF0gLSBBIFZlY3RvcjIgb2JqZWN0IHRvIHN0b3JlIHRoZSByZXN1bHQgaW4uIElmIG5vdCBnaXZlbiB3aWxsIGJlIGNyZWF0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLk1hdGguVmVjdG9yMn0gVGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBwb2ludCBvbiB0aGUgY3VydmUuIElmIGFuIGBvdXRgIG9iamVjdCB3YXMgZ2l2ZW4gdGhpcyB3aWxsIGJlIHJldHVybmVkLlxyXG4gICAgICovXHJcbiAgICBnZXRQb2ludDogZnVuY3Rpb24gKHQsIG91dClcclxuICAgIHtcclxuICAgICAgICBpZiAob3V0ID09PSB1bmRlZmluZWQpIHsgb3V0ID0gbmV3IFZlY3RvcjIoKTsgfVxyXG5cclxuICAgICAgICB2YXIgcDAgPSB0aGlzLnAwO1xyXG4gICAgICAgIHZhciBwMSA9IHRoaXMucDE7XHJcbiAgICAgICAgdmFyIHAyID0gdGhpcy5wMjtcclxuICAgICAgICB2YXIgcDMgPSB0aGlzLnAzO1xyXG5cclxuICAgICAgICByZXR1cm4gb3V0LnNldChDdWJpY0Jlemllcih0LCBwMC54LCBwMS54LCBwMi54LCBwMy54KSwgQ3ViaWNCZXppZXIodCwgcDAueSwgcDEueSwgcDIueSwgcDMueSkpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERyYXdzIHRoaXMgY3VydmUgdG8gdGhlIHNwZWNpZmllZCBncmFwaGljcyBvYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkN1YmljQmV6aWVyI2RyYXdcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3N9IEcgLSBbZ3JhcGhpY3MsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljc30gZ3JhcGhpY3MgLSBUaGUgZ3JhcGhpY3Mgb2JqZWN0IHRoaXMgY3VydmUgc2hvdWxkIGJlIGRyYXduIHRvLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbcG9pbnRzVG90YWw9MzJdIC0gVGhlIG51bWJlciBvZiBpbnRlcm1lZGlhcnkgcG9pbnRzIHRoYXQgbWFrZSB1cCB0aGlzIGN1cnZlLiBBIGhpZ2hlciBudW1iZXIgb2YgcG9pbnRzIHdpbGwgcmVzdWx0IGluIGEgc21vb3RoZXIgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzfSBUaGUgZ3JhcGhpY3Mgb2JqZWN0IHRoaXMgY3VydmUgd2FzIGRyYXduIHRvLiBVc2VmdWwgZm9yIG1ldGhvZCBjaGFpbmluZy5cclxuICAgICAqL1xyXG4gICAgZHJhdzogZnVuY3Rpb24gKGdyYXBoaWNzLCBwb2ludHNUb3RhbClcclxuICAgIHtcclxuICAgICAgICBpZiAocG9pbnRzVG90YWwgPT09IHVuZGVmaW5lZCkgeyBwb2ludHNUb3RhbCA9IDMyOyB9XHJcblxyXG4gICAgICAgIHZhciBwb2ludHMgPSB0aGlzLmdldFBvaW50cyhwb2ludHNUb3RhbCk7XHJcblxyXG4gICAgICAgIGdyYXBoaWNzLmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGdyYXBoaWNzLm1vdmVUbyh0aGlzLnAwLngsIHRoaXMucDAueSk7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZ3JhcGhpY3MubGluZVRvKHBvaW50c1tpXS54LCBwb2ludHNbaV0ueSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBncmFwaGljcy5zdHJva2VQYXRoKCk7XHJcblxyXG4gICAgICAgIC8vICBTbyB5b3UgY2FuIGNoYWluIGdyYXBoaWNzIGNhbGxzXHJcbiAgICAgICAgcmV0dXJuIGdyYXBoaWNzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYSBKU09OIG9iamVjdCB0aGF0IGRlc2NyaWJlcyB0aGlzIGN1cnZlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5DdWJpY0JlemllciN0b0pTT05cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5UeXBlcy5DdXJ2ZXMuSlNPTkN1cnZlfSBUaGUgSlNPTiBvYmplY3QgY29udGFpbmluZyB0aGlzIGN1cnZlIGRhdGEuXHJcbiAgICAgKi9cclxuICAgIHRvSlNPTjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXHJcbiAgICAgICAgICAgIHBvaW50czogW1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wMC54LCB0aGlzLnAwLnksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnAxLngsIHRoaXMucDEueSxcclxuICAgICAgICAgICAgICAgIHRoaXMucDIueCwgdGhpcy5wMi55LFxyXG4gICAgICAgICAgICAgICAgdGhpcy5wMy54LCB0aGlzLnAzLnlcclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBHZW5lcmF0ZXMgYSBjdXJ2ZSBmcm9tIGEgSlNPTiBvYmplY3QuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQ3VydmVzLkN1YmljQmV6aWVyLmZyb21KU09OXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5DdXJ2ZXMuSlNPTkN1cnZlfSBkYXRhIC0gVGhlIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgdGhpcyBjdXJ2ZSBkYXRhLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuQ3VydmVzLkN1YmljQmV6aWVyfSBUaGUgY3VydmUgZ2VuZXJhdGVkIGZyb20gdGhlIEpTT04gb2JqZWN0LlxyXG4gKi9cclxuQ3ViaWNCZXppZXJDdXJ2ZS5mcm9tSlNPTiA9IGZ1bmN0aW9uIChkYXRhKVxyXG57XHJcbiAgICB2YXIgcG9pbnRzID0gZGF0YS5wb2ludHM7XHJcblxyXG4gICAgdmFyIHAwID0gbmV3IFZlY3RvcjIocG9pbnRzWzBdLCBwb2ludHNbMV0pO1xyXG4gICAgdmFyIHAxID0gbmV3IFZlY3RvcjIocG9pbnRzWzJdLCBwb2ludHNbM10pO1xyXG4gICAgdmFyIHAyID0gbmV3IFZlY3RvcjIocG9pbnRzWzRdLCBwb2ludHNbNV0pO1xyXG4gICAgdmFyIHAzID0gbmV3IFZlY3RvcjIocG9pbnRzWzZdLCBwb2ludHNbN10pO1xyXG5cclxuICAgIHJldHVybiBuZXcgQ3ViaWNCZXppZXJDdXJ2ZShwMCwgcDEsIHAyLCBwMyk7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEN1YmljQmV6aWVyQ3VydmU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEZyb21Qb2ludHMgPSByZXF1aXJlKCcuLi9nZW9tL3JlY3RhbmdsZS9Gcm9tUG9pbnRzJyk7XHJcbnZhciBSZWN0YW5nbGUgPSByZXF1aXJlKCcuLi9nZW9tL3JlY3RhbmdsZS9SZWN0YW5nbGUnKTtcclxudmFyIFZlY3RvcjIgPSByZXF1aXJlKCcuLi9tYXRoL1ZlY3RvcjInKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgQmFzZSBDdXJ2ZSBjbGFzcywgd2hpY2ggYWxsIG90aGVyIGN1cnZlIHR5cGVzIGV4dGVuZC5cclxuICpcclxuICogQmFzZWQgb24gdGhlIHRocmVlLmpzIEN1cnZlIGNsYXNzZXMgY3JlYXRlZCBieSBbeno4NV0oaHR0cDovL3d3dy5sYWI0Z2FtZXMubmV0L3p6ODUvYmxvZylcclxuICpcclxuICogQGNsYXNzIEN1cnZlXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuQ3VydmVzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IHR5cGUgLSBUaGUgY3VydmUgdHlwZS5cclxuICovXHJcbnZhciBDdXJ2ZSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBDdXJ2ZSAodHlwZSlcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBTdHJpbmcgYmFzZWQgaWRlbnRpZmllciBmb3IgdGhlIHR5cGUgb2YgY3VydmUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ3VydmVzLkN1cnZlI3R5cGVcclxuICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBkZWZhdWx0IG51bWJlciBvZiBkaXZpc2lvbnMgd2l0aGluIHRoZSBjdXJ2ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuQ3VydmUjZGVmYXVsdERpdmlzaW9uc1xyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRlZmF1bHREaXZpc2lvbnMgPSA1O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgcXVhbnRpdHkgb2YgYXJjIGxlbmd0aCBkaXZpc2lvbnMgd2l0aGluIHRoZSBjdXJ2ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuQ3VydmUjYXJjTGVuZ3RoRGl2aXNpb25zXHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMTAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5hcmNMZW5ndGhEaXZpc2lvbnMgPSAxMDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGFycmF5IG9mIGNhY2hlZCBhcmMgbGVuZ3RoIHZhbHVlcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuQ3VydmUjY2FjaGVBcmNMZW5ndGhzXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcltdfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IFtdXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jYWNoZUFyY0xlbmd0aHMgPSBbXTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogRG9lcyB0aGUgZGF0YSBvZiB0aGlzIGN1cnZlIG5lZWQgdXBkYXRpbmc/XHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ3VydmVzLkN1cnZlI25lZWRzVXBkYXRlXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubmVlZHNVcGRhdGUgPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBGb3IgYSBjdXJ2ZSBvbiBhIFBhdGgsIGBmYWxzZWAgbWVhbnMgdGhlIFBhdGggd2lsbCBpZ25vcmUgdGhpcyBjdXJ2ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuQ3VydmUjYWN0aXZlXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSB0ZW1wb3JhcnkgY2FsY3VsYXRpb24gVmVjdG9yLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5DdXJ2ZSNfdG1wVmVjMkFcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguVmVjdG9yMn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3RtcFZlYzJBID0gbmV3IFZlY3RvcjIoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSB0ZW1wb3JhcnkgY2FsY3VsYXRpb24gVmVjdG9yLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5DdXJ2ZSNfdG1wVmVjMkJcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguVmVjdG9yMn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3RtcFZlYzJCID0gbmV3IFZlY3RvcjIoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEcmF3cyB0aGlzIGN1cnZlIG9uIHRoZSBnaXZlbiBHcmFwaGljcyBvYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIGN1cnZlIGlzIGRyYXduIHVzaW5nIGBHcmFwaGljcy5zdHJva2VQb2ludHNgIHNvIHdpbGwgYmUgZHJhd24gYXQgd2hhdGV2ZXIgdGhlIHByZXNlbnQgR3JhcGhpY3Mgc3Ryb2tlIGNvbG9yIGlzLlxyXG4gICAgICogVGhlIEdyYXBoaWNzIG9iamVjdCBpcyBub3QgY2xlYXJlZCBiZWZvcmUgdGhlIGRyYXcsIHNvIHRoZSBjdXJ2ZSB3aWxsIGFwcGVhciBvbi10b3Agb2YgYW55dGhpbmcgZWxzZSBhbHJlYWR5IHJlbmRlcmVkIHRvIGl0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5DdXJ2ZSNkcmF3XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzfSBHIC0gW2dyYXBoaWNzLCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3N9IGdyYXBoaWNzIC0gVGhlIEdyYXBoaWNzIGluc3RhbmNlIG9udG8gd2hpY2ggdGhpcyBjdXJ2ZSB3aWxsIGJlIGRyYXduLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbcG9pbnRzVG90YWw9MzJdIC0gVGhlIHJlc29sdXRpb24gb2YgdGhlIGN1cnZlLiBUaGUgaGlnaGVyIHRoZSB2YWx1ZSB0aGUgc21vb3RoZXIgaXQgd2lsbCByZW5kZXIsIGF0IHRoZSBjb3N0IG9mIHJlbmRlcmluZyBwZXJmb3JtYW5jZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3N9IFRoZSBHcmFwaGljcyBvYmplY3QgdG8gd2hpY2ggdGhlIGN1cnZlIHdhcyBkcmF3bi5cclxuICAgICAqL1xyXG4gICAgZHJhdzogZnVuY3Rpb24gKGdyYXBoaWNzLCBwb2ludHNUb3RhbClcclxuICAgIHtcclxuICAgICAgICBpZiAocG9pbnRzVG90YWwgPT09IHVuZGVmaW5lZCkgeyBwb2ludHNUb3RhbCA9IDMyOyB9XHJcblxyXG4gICAgICAgIC8vICBTbyB5b3UgY2FuIGNoYWluIGdyYXBoaWNzIGNhbGxzXHJcbiAgICAgICAgcmV0dXJuIGdyYXBoaWNzLnN0cm9rZVBvaW50cyh0aGlzLmdldFBvaW50cyhwb2ludHNUb3RhbCkpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYSBSZWN0YW5nbGUgd2hlcmUgdGhlIHBvc2l0aW9uIGFuZCBkaW1lbnNpb25zIG1hdGNoIHRoZSBib3VuZHMgb2YgdGhpcyBDdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIGNvbnRyb2wgdGhlIGFjY3VyYWN5IG9mIHRoZSBib3VuZHMuIFRoZSB2YWx1ZSBnaXZlbiBpcyB1c2VkIHRvIHdvcmsgb3V0IGhvdyBtYW55IHBvaW50c1xyXG4gICAgICogdG8gcGxvdCBhY3Jvc3MgdGhlIGN1cnZlLiBIaWdoZXIgdmFsdWVzIGFyZSBtb3JlIGFjY3VyYXRlIGF0IHRoZSBjb3N0IG9mIGNhbGN1bGF0aW9uIHNwZWVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5DdXJ2ZSNnZXRCb3VuZHNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdlb20uUmVjdGFuZ2xlfSBbb3V0XSAtIFRoZSBSZWN0YW5nbGUgdG8gc3RvcmUgdGhlIGJvdW5kcyBpbi4gSWYgZmFsc2V5IGEgbmV3IG9iamVjdCB3aWxsIGJlIGNyZWF0ZWQuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFthY2N1cmFjeT0xNl0gLSBUaGUgYWNjdXJhY3kgb2YgdGhlIGJvdW5kcyBjYWxjdWxhdGlvbnMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdlb20uUmVjdGFuZ2xlfSBBIFJlY3RhbmdsZSBvYmplY3QgaG9sZGluZyB0aGUgYm91bmRzIG9mIHRoaXMgY3VydmUuIElmIGBvdXRgIHdhcyBnaXZlbiBpdCB3aWxsIGJlIHRoaXMgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBnZXRCb3VuZHM6IGZ1bmN0aW9uIChvdXQsIGFjY3VyYWN5KVxyXG4gICAge1xyXG4gICAgICAgIGlmICghb3V0KSB7IG91dCA9IG5ldyBSZWN0YW5nbGUoKTsgfVxyXG4gICAgICAgIGlmIChhY2N1cmFjeSA9PT0gdW5kZWZpbmVkKSB7IGFjY3VyYWN5ID0gMTY7IH1cclxuXHJcbiAgICAgICAgdmFyIGxlbiA9IHRoaXMuZ2V0TGVuZ3RoKCk7XHJcblxyXG4gICAgICAgIGlmIChhY2N1cmFjeSA+IGxlbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGFjY3VyYWN5ID0gbGVuIC8gMjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBUaGUgbGVuZ3RoIG9mIHRoZSBjdXJ2ZSBpbiBwaXhlbHNcclxuICAgICAgICAvLyAgU28gd2UnbGwgaGF2ZSAxIHNwYWNlZCBwb2ludCBwZXIgJ2FjY3VyYWN5JyBwaXhlbHNcclxuXHJcbiAgICAgICAgdmFyIHNwYWNlZCA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQobGVuIC8gYWNjdXJhY3kpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIEZyb21Qb2ludHModGhpcy5nZXRTcGFjZWRQb2ludHMoc3BhY2VkKSwgb3V0KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIHBvaW50cywgc3BhY2VkIG91dCBYIGRpc3RhbmNlIHBpeGVscyBhcGFydC5cclxuICAgICAqIFRoZSBzbWFsbGVyIHRoZSBkaXN0YW5jZSwgdGhlIGxhcmdlciB0aGUgYXJyYXkgd2lsbCBiZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuQ3VydmUjZ2V0RGlzdGFuY2VQb2ludHNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gZGlzdGFuY2UgLSBUaGUgZGlzdGFuY2UsIGluIHBpeGVscywgYmV0d2VlbiBlYWNoIHBvaW50IGFsb25nIHRoZSBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2VvbS5Qb2ludFtdfSBBbiBBcnJheSBvZiBQb2ludCBvYmplY3RzLlxyXG4gICAgICovXHJcbiAgICBnZXREaXN0YW5jZVBvaW50czogZnVuY3Rpb24gKGRpc3RhbmNlKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBsZW4gPSB0aGlzLmdldExlbmd0aCgpO1xyXG5cclxuICAgICAgICB2YXIgc3BhY2VkID0gTWF0aC5tYXgoMSwgbGVuIC8gZGlzdGFuY2UpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTcGFjZWRQb2ludHMoc3BhY2VkKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgYSBwb2ludCBhdCB0aGUgZW5kIG9mIHRoZSBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuQ3VydmUjZ2V0RW5kUG9pbnRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLk1hdGguVmVjdG9yMn0gW291dF0gLSBPcHRpb25hbCBWZWN0b3Igb2JqZWN0IHRvIHN0b3JlIHRoZSByZXN1bHQgaW4uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLk1hdGguVmVjdG9yMn0gVmVjdG9yMiBjb250YWluaW5nIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgY3VydmVzIGVuZCBwb2ludC5cclxuICAgICAqL1xyXG4gICAgZ2V0RW5kUG9pbnQ6IGZ1bmN0aW9uIChvdXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG91dCA9PT0gdW5kZWZpbmVkKSB7IG91dCA9IG5ldyBWZWN0b3IyKCk7IH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UG9pbnRBdCgxLCBvdXQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0b3RhbCBjdXJ2ZSBhcmMgbGVuZ3RoXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkN1cnZlI2dldExlbmd0aFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgdG90YWwgbGVuZ3RoIG9mIHRoZSBjdXJ2ZS5cclxuICAgICAqL1xyXG4gICAgZ2V0TGVuZ3RoOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBsZW5ndGhzID0gdGhpcy5nZXRMZW5ndGhzKCk7XHJcblxyXG4gICAgICAgIHJldHVybiBsZW5ndGhzW2xlbmd0aHMubGVuZ3RoIC0gMV07XHJcbiAgICB9LFxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBhIGxpc3Qgb2YgY3VtdWxhdGl2ZSBzZWdtZW50IGxlbmd0aHMuXHJcbiAgICAgKlxyXG4gICAgICogVGhlc2UgbGVuZ3RocyBhcmVcclxuICAgICAqXHJcbiAgICAgKiAtIFswXSAwXHJcbiAgICAgKiAtIFsxXSBUaGUgZmlyc3Qgc2VnbWVudFxyXG4gICAgICogLSBbMl0gVGhlIGZpcnN0IGFuZCBzZWNvbmQgc2VnbWVudFxyXG4gICAgICogLSAuLi5cclxuICAgICAqIC0gW2RpdmlzaW9uc10gQWxsIHNlZ21lbnRzXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkN1cnZlI2dldExlbmd0aHNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpdmlzaW9uc10gLSBUaGUgbnVtYmVyIG9mIGRpdmlzaW9ucyBvciBzZWdtZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJbXX0gQW4gYXJyYXkgb2YgY3VtdWxhdGl2ZSBsZW5ndGhzLlxyXG4gICAgICovXHJcbiAgICBnZXRMZW5ndGhzOiBmdW5jdGlvbiAoZGl2aXNpb25zKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChkaXZpc2lvbnMgPT09IHVuZGVmaW5lZCkgeyBkaXZpc2lvbnMgPSB0aGlzLmFyY0xlbmd0aERpdmlzaW9uczsgfVxyXG5cclxuICAgICAgICBpZiAoKHRoaXMuY2FjaGVBcmNMZW5ndGhzLmxlbmd0aCA9PT0gZGl2aXNpb25zICsgMSkgJiYgIXRoaXMubmVlZHNVcGRhdGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jYWNoZUFyY0xlbmd0aHM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5lZWRzVXBkYXRlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHZhciBjYWNoZSA9IFtdO1xyXG4gICAgICAgIHZhciBjdXJyZW50O1xyXG4gICAgICAgIHZhciBsYXN0ID0gdGhpcy5nZXRQb2ludCgwLCB0aGlzLl90bXBWZWMyQSk7XHJcbiAgICAgICAgdmFyIHN1bSA9IDA7XHJcblxyXG4gICAgICAgIGNhY2hlLnB1c2goMCk7XHJcblxyXG4gICAgICAgIGZvciAodmFyIHAgPSAxOyBwIDw9IGRpdmlzaW9uczsgcCsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY3VycmVudCA9IHRoaXMuZ2V0UG9pbnQocCAvIGRpdmlzaW9ucywgdGhpcy5fdG1wVmVjMkIpO1xyXG5cclxuICAgICAgICAgICAgc3VtICs9IGN1cnJlbnQuZGlzdGFuY2UobGFzdCk7XHJcblxyXG4gICAgICAgICAgICBjYWNoZS5wdXNoKHN1bSk7XHJcblxyXG4gICAgICAgICAgICBsYXN0LmNvcHkoY3VycmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNhY2hlQXJjTGVuZ3RocyA9IGNhY2hlO1xyXG5cclxuICAgICAgICByZXR1cm4gY2FjaGU7IC8vIHsgc3VtczogY2FjaGUsIHN1bTpzdW0gfTsgU3VtIGlzIGluIHRoZSBsYXN0IGVsZW1lbnQuXHJcbiAgICB9LFxyXG5cclxuICAgIC8vIEdldCBwb2ludCBhdCByZWxhdGl2ZSBwb3NpdGlvbiBpbiBjdXJ2ZSBhY2NvcmRpbmcgdG8gYXJjIGxlbmd0aFxyXG5cclxuICAgIC8vIC0gdSBbMCAuLiAxXVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IGEgcG9pbnQgYXQgYSByZWxhdGl2ZSBwb3NpdGlvbiBvbiB0aGUgY3VydmUsIGJ5IGFyYyBsZW5ndGguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkN1cnZlI2dldFBvaW50QXRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBPIC0gW291dCwkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1IC0gVGhlIHJlbGF0aXZlIHBvc2l0aW9uLCBbMC4uMV0uXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFtvdXRdIC0gQSBwb2ludCB0byBzdG9yZSB0aGUgcmVzdWx0IGluLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFRoZSBwb2ludC5cclxuICAgICAqL1xyXG4gICAgZ2V0UG9pbnRBdDogZnVuY3Rpb24gKHUsIG91dClcclxuICAgIHtcclxuICAgICAgICB2YXIgdCA9IHRoaXMuZ2V0VXRvVG1hcHBpbmcodSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFBvaW50KHQsIG91dCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIEdldCBzZXF1ZW5jZSBvZiBwb2ludHMgdXNpbmcgZ2V0UG9pbnQoIHQgKVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IGEgc2VxdWVuY2Ugb2YgZXZlbmx5IHNwYWNlZCBwb2ludHMgZnJvbSB0aGUgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBwYXNzIGBkaXZpc2lvbnNgLCBgc3RlcFJhdGVgLCBvciBuZWl0aGVyLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBudW1iZXIgb2YgZGl2aXNpb25zIHdpbGwgYmVcclxuICAgICAqXHJcbiAgICAgKiAxLiBgZGl2aXNpb25zYCwgaWYgYGRpdmlzaW9uc2AgPiAwOyBvclxyXG4gICAgICogMi4gYHRoaXMuZ2V0TGVuZ3RoIC8gc3RlcFJhdGVgLCBpZiBgc3RlcFJhdGVgID4gMDsgb3JcclxuICAgICAqIDMuIGB0aGlzLmRlZmF1bHREaXZpc2lvbnNgXHJcbiAgICAgKlxyXG4gICAgICogYDEgKyBkaXZpc2lvbnNgIHBvaW50cyB3aWxsIGJlIHJldHVybmVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5DdXJ2ZSNnZXRQb2ludHNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyW119IE8gLSBbb3V0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZGl2aXNpb25zXSAtIFRoZSBudW1iZXIgb2YgZGl2aXNpb25zIHRvIG1ha2UuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXBSYXRlXSAtIFRoZSBjdXJ2ZSBkaXN0YW5jZSBiZXR3ZWVuIHBvaW50cywgaW1wbHlpbmcgYGRpdmlzaW9uc2AuXHJcbiAgICAgKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuTWF0aC5WZWN0b3IyW10pfSBbb3V0XSAtIEFuIG9wdGlvbmFsIGFycmF5IHRvIHN0b3JlIHRoZSBwb2ludHMgaW4uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7KGFycmF5fFBoYXNlci5NYXRoLlZlY3RvcjJbXSl9IEFuIGFycmF5IG9mIFBvaW50cyBmcm9tIHRoZSBjdXJ2ZS5cclxuICAgICAqL1xyXG4gICAgZ2V0UG9pbnRzOiBmdW5jdGlvbiAoZGl2aXNpb25zLCBzdGVwUmF0ZSwgb3V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZCkgeyBvdXQgPSBbXTsgfVxyXG5cclxuICAgICAgICAvLyAgSWYgZGl2aXNpb25zIGlzIGEgZmFsc2V5IHZhbHVlIChmYWxzZSwgbnVsbCwgMCwgdW5kZWZpbmVkLCBldGMpIHRoZW4gd2UgY2FsY3VsYXRlIGl0IGJhc2VkIG9uIHRoZSBzdGVwUmF0ZSBpbnN0ZWFkLlxyXG4gICAgICAgIGlmICghZGl2aXNpb25zKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKCFzdGVwUmF0ZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZGl2aXNpb25zID0gdGhpcy5kZWZhdWx0RGl2aXNpb25zO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZGl2aXNpb25zID0gdGhpcy5nZXRMZW5ndGgoKSAvIHN0ZXBSYXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKHZhciBkID0gMDsgZCA8PSBkaXZpc2lvbnM7IGQrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG91dC5wdXNoKHRoaXMuZ2V0UG9pbnQoZCAvIGRpdmlzaW9ucykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG91dDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgYSByYW5kb20gcG9pbnQgZnJvbSB0aGUgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkN1cnZlI2dldFJhbmRvbVBvaW50XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLk1hdGguVmVjdG9yMn0gTyAtIFtvdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFtvdXRdIC0gQSBwb2ludCBvYmplY3QgdG8gc3RvcmUgdGhlIHJlc3VsdCBpbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBUaGUgcG9pbnQuXHJcbiAgICAgKi9cclxuICAgIGdldFJhbmRvbVBvaW50OiBmdW5jdGlvbiAob3V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZCkgeyBvdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFBvaW50KE1hdGgucmFuZG9tKCksIG91dCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIEdldCBzZXF1ZW5jZSBvZiBwb2ludHMgdXNpbmcgZ2V0UG9pbnRBdCggdSApXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgYSBzZXF1ZW5jZSBvZiBlcXVhbGx5IHNwYWNlZCBwb2ludHMgKGJ5IGFyYyBkaXN0YW5jZSkgZnJvbSB0aGUgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogYDEgKyBkaXZpc2lvbnNgIHBvaW50cyB3aWxsIGJlIHJldHVybmVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5DdXJ2ZSNnZXRTcGFjZWRQb2ludHNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpdmlzaW9ucz10aGlzLmRlZmF1bHREaXZpc2lvbnNdIC0gVGhlIG51bWJlciBvZiBkaXZpc2lvbnMgdG8gbWFrZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcFJhdGVdIC0gU3RlcCBiZXR3ZWVuIHBvaW50cy4gVXNlZCB0byBjYWxjdWxhdGUgdGhlIG51bWJlciBvZiBwb2ludHMgdG8gcmV0dXJuIHdoZW4gZGl2aXNpb25zIGlzIGZhbHN5LiBJZ25vcmVkIGlmIGRpdmlzaW9ucyBpcyBwb3NpdGl2ZS5cclxuICAgICAqIEBwYXJhbSB7KGFycmF5fFBoYXNlci5NYXRoLlZlY3RvcjJbXSl9IFtvdXRdIC0gQW4gb3B0aW9uYWwgYXJyYXkgdG8gc3RvcmUgdGhlIHBvaW50cyBpbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyW119IEFuIGFycmF5IG9mIHBvaW50cy5cclxuICAgICAqL1xyXG4gICAgZ2V0U3BhY2VkUG9pbnRzOiBmdW5jdGlvbiAoZGl2aXNpb25zLCBzdGVwUmF0ZSwgb3V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZCkgeyBvdXQgPSBbXTsgfVxyXG5cclxuICAgICAgICAvLyAgSWYgZGl2aXNpb25zIGlzIGEgZmFsc2V5IHZhbHVlIChmYWxzZSwgbnVsbCwgMCwgdW5kZWZpbmVkLCBldGMpIHRoZW4gd2UgY2FsY3VsYXRlIGl0IGJhc2VkIG9uIHRoZSBzdGVwUmF0ZSBpbnN0ZWFkLlxyXG4gICAgICAgIGlmICghZGl2aXNpb25zKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKCFzdGVwUmF0ZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZGl2aXNpb25zID0gdGhpcy5kZWZhdWx0RGl2aXNpb25zO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZGl2aXNpb25zID0gdGhpcy5nZXRMZW5ndGgoKSAvIHN0ZXBSYXRlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKHZhciBkID0gMDsgZCA8PSBkaXZpc2lvbnM7IGQrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciB0ID0gdGhpcy5nZXRVdG9UbWFwcGluZyhkIC8gZGl2aXNpb25zLCBudWxsLCBkaXZpc2lvbnMpO1xyXG5cclxuICAgICAgICAgICAgb3V0LnB1c2godGhpcy5nZXRQb2ludCh0KSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3V0O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBhIHBvaW50IGF0IHRoZSBzdGFydCBvZiB0aGUgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkN1cnZlI2dldFN0YXJ0UG9pbnRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBPIC0gW291dCwkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLk1hdGguVmVjdG9yMn0gW291dF0gLSBBIHBvaW50IHRvIHN0b3JlIHRoZSByZXN1bHQgaW4uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLk1hdGguVmVjdG9yMn0gVGhlIHBvaW50LlxyXG4gICAgICovXHJcbiAgICBnZXRTdGFydFBvaW50OiBmdW5jdGlvbiAob3V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZCkgeyBvdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFBvaW50QXQoMCwgb3V0KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgYSB1bml0IHZlY3RvciB0YW5nZW50IGF0IGEgcmVsYXRpdmUgcG9zaXRpb24gb24gdGhlIGN1cnZlLlxyXG4gICAgICogSW4gY2FzZSBhbnkgc3ViIGN1cnZlIGRvZXMgbm90IGltcGxlbWVudCBpdHMgdGFuZ2VudCBkZXJpdmF0aW9uLFxyXG4gICAgICogMiBwb2ludHMgYSBzbWFsbCBkZWx0YSBhcGFydCB3aWxsIGJlIHVzZWQgdG8gZmluZCBpdHMgZ3JhZGllbnRcclxuICAgICAqIHdoaWNoIHNlZW1zIHRvIGdpdmUgYSByZWFzb25hYmxlIGFwcHJveGltYXRpb25cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuQ3VydmUjZ2V0VGFuZ2VudFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHQgLSBUaGUgcmVsYXRpdmUgcG9zaXRpb24gb24gdGhlIGN1cnZlLCBbMC4uMV0uXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFtvdXRdIC0gQSB2ZWN0b3IgdG8gc3RvcmUgdGhlIHJlc3VsdCBpbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBWZWN0b3IgYXBwcm94aW1hdGluZyB0aGUgdGFuZ2VudCBsaW5lIGF0IHRoZSBwb2ludCB0IChkZWx0YSArLy0gMC4wMDAxKVxyXG4gICAgICovXHJcbiAgICBnZXRUYW5nZW50OiBmdW5jdGlvbiAodCwgb3V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZCkgeyBvdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIHZhciBkZWx0YSA9IDAuMDAwMTtcclxuICAgICAgICB2YXIgdDEgPSB0IC0gZGVsdGE7XHJcbiAgICAgICAgdmFyIHQyID0gdCArIGRlbHRhO1xyXG5cclxuICAgICAgICAvLyBDYXBwaW5nIGluIGNhc2Ugb2YgZGFuZ2VyXHJcblxyXG4gICAgICAgIGlmICh0MSA8IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0MSA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodDIgPiAxKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdDIgPSAxO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5nZXRQb2ludCh0MSwgdGhpcy5fdG1wVmVjMkEpO1xyXG4gICAgICAgIHRoaXMuZ2V0UG9pbnQodDIsIG91dCk7XHJcblxyXG4gICAgICAgIHJldHVybiBvdXQuc3VidHJhY3QodGhpcy5fdG1wVmVjMkEpLm5vcm1hbGl6ZSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBhIHVuaXQgdmVjdG9yIHRhbmdlbnQgYXQgYSByZWxhdGl2ZSBwb3NpdGlvbiBvbiB0aGUgY3VydmUsIGJ5IGFyYyBsZW5ndGguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkN1cnZlI2dldFRhbmdlbnRBdFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHUgLSBUaGUgcmVsYXRpdmUgcG9zaXRpb24gb24gdGhlIGN1cnZlLCBbMC4uMV0uXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFtvdXRdIC0gQSB2ZWN0b3IgdG8gc3RvcmUgdGhlIHJlc3VsdCBpbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBUaGUgdGFuZ2VudCB2ZWN0b3IuXHJcbiAgICAgKi9cclxuICAgIGdldFRhbmdlbnRBdDogZnVuY3Rpb24gKHUsIG91dClcclxuICAgIHtcclxuICAgICAgICB2YXIgdCA9IHRoaXMuZ2V0VXRvVG1hcHBpbmcodSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFRhbmdlbnQodCwgb3V0KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHaXZlbiBhIGRpc3RhbmNlIGluIHBpeGVscywgZ2V0IGEgdCB0byBmaW5kIHAuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkN1cnZlI2dldFRGcm9tRGlzdGFuY2VcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gZGlzdGFuY2UgLSBUaGUgZGlzdGFuY2UsIGluIHBpeGVscy5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpdmlzaW9uc10gLSBPcHRpb25hbCBhbW91bnQgb2YgZGl2aXNpb25zLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge251bWJlcn0gVGhlIGRpc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBnZXRURnJvbURpc3RhbmNlOiBmdW5jdGlvbiAoZGlzdGFuY2UsIGRpdmlzaW9ucylcclxuICAgIHtcclxuICAgICAgICBpZiAoZGlzdGFuY2UgPD0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VXRvVG1hcHBpbmcoMCwgZGlzdGFuY2UsIGRpdmlzaW9ucyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2l2ZW4gdSAoIDAgLi4gMSApLCBnZXQgYSB0IHRvIGZpbmQgcC4gVGhpcyBnaXZlcyB5b3UgcG9pbnRzIHdoaWNoIGFyZSBlcXVpZGlzdGFudC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuQ3VydmUjZ2V0VXRvVG1hcHBpbmdcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1IC0gQSBmbG9hdCBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IGRpc3RhbmNlIC0gVGhlIGRpc3RhbmNlLCBpbiBwaXhlbHMuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtkaXZpc2lvbnNdIC0gT3B0aW9uYWwgYW1vdW50IG9mIGRpdmlzaW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBlcXVpZGlzdGFudCB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgZ2V0VXRvVG1hcHBpbmc6IGZ1bmN0aW9uICh1LCBkaXN0YW5jZSwgZGl2aXNpb25zKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBhcmNMZW5ndGhzID0gdGhpcy5nZXRMZW5ndGhzKGRpdmlzaW9ucyk7XHJcblxyXG4gICAgICAgIHZhciBpID0gMDtcclxuICAgICAgICB2YXIgaWwgPSBhcmNMZW5ndGhzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgdmFyIHRhcmdldEFyY0xlbmd0aDsgLy8gVGhlIHRhcmdldGVkIHUgZGlzdGFuY2UgdmFsdWUgdG8gZ2V0XHJcblxyXG4gICAgICAgIGlmIChkaXN0YW5jZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBDYW5ub3Qgb3ZlcnNob290IHRoZSBjdXJ2ZVxyXG4gICAgICAgICAgICB0YXJnZXRBcmNMZW5ndGggPSBNYXRoLm1pbihkaXN0YW5jZSwgYXJjTGVuZ3Roc1tpbCAtIDFdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGFyZ2V0QXJjTGVuZ3RoID0gdSAqIGFyY0xlbmd0aHNbaWwgLSAxXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGJpbmFyeSBzZWFyY2ggZm9yIHRoZSBpbmRleCB3aXRoIGxhcmdlc3QgdmFsdWUgc21hbGxlciB0aGFuIHRhcmdldCB1IGRpc3RhbmNlXHJcblxyXG4gICAgICAgIHZhciBsb3cgPSAwO1xyXG4gICAgICAgIHZhciBoaWdoID0gaWwgLSAxO1xyXG4gICAgICAgIHZhciBjb21wYXJpc29uO1xyXG5cclxuICAgICAgICB3aGlsZSAobG93IDw9IGhpZ2gpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpID0gTWF0aC5mbG9vcihsb3cgKyAoaGlnaCAtIGxvdykgLyAyKTsgLy8gbGVzcyBsaWtlbHkgdG8gb3ZlcmZsb3csIHRob3VnaCBwcm9iYWJseSBub3QgaXNzdWUgaGVyZSwgSlMgZG9lc24ndCByZWFsbHkgaGF2ZSBpbnRlZ2VycywgYWxsIG51bWJlcnMgYXJlIGZsb2F0c1xyXG5cclxuICAgICAgICAgICAgY29tcGFyaXNvbiA9IGFyY0xlbmd0aHNbaV0gLSB0YXJnZXRBcmNMZW5ndGg7XHJcblxyXG4gICAgICAgICAgICBpZiAoY29tcGFyaXNvbiA8IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxvdyA9IGkgKyAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGNvbXBhcmlzb24gPiAwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBoaWdoID0gaSAtIDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBoaWdoID0gaTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpID0gaGlnaDtcclxuXHJcbiAgICAgICAgaWYgKGFyY0xlbmd0aHNbaV0gPT09IHRhcmdldEFyY0xlbmd0aClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBpIC8gKGlsIC0gMSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB3ZSBjb3VsZCBnZXQgZmluZXIgZ3JhaW4gYXQgbGVuZ3Rocywgb3IgdXNlIHNpbXBsZSBpbnRlcnBvbGF0aW9uIGJldHdlZW4gdHdvIHBvaW50c1xyXG5cclxuICAgICAgICB2YXIgbGVuZ3RoQmVmb3JlID0gYXJjTGVuZ3Roc1tpXTtcclxuICAgICAgICB2YXIgbGVuZ3RoQWZ0ZXIgPSBhcmNMZW5ndGhzW2kgKyAxXTtcclxuXHJcbiAgICAgICAgdmFyIHNlZ21lbnRMZW5ndGggPSBsZW5ndGhBZnRlciAtIGxlbmd0aEJlZm9yZTtcclxuXHJcbiAgICAgICAgLy8gZGV0ZXJtaW5lIHdoZXJlIHdlIGFyZSBiZXR3ZWVuIHRoZSAnYmVmb3JlJyBhbmQgJ2FmdGVyJyBwb2ludHNcclxuXHJcbiAgICAgICAgdmFyIHNlZ21lbnRGcmFjdGlvbiA9ICh0YXJnZXRBcmNMZW5ndGggLSBsZW5ndGhCZWZvcmUpIC8gc2VnbWVudExlbmd0aDtcclxuXHJcbiAgICAgICAgLy8gYWRkIHRoYXQgZnJhY3Rpb25hbCBhbW91bnQgdG8gdFxyXG5cclxuICAgICAgICByZXR1cm4gKGkgKyBzZWdtZW50RnJhY3Rpb24pIC8gKGlsIC0gMSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlIGFuZCBjYWNoZSB0aGUgYXJjIGxlbmd0aHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkN1cnZlI3VwZGF0ZUFyY0xlbmd0aHNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBzZWUgUGhhc2VyLkN1cnZlcy5DdXJ2ZSNnZXRMZW5ndGhzKClcclxuICAgICAqL1xyXG4gICAgdXBkYXRlQXJjTGVuZ3RoczogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5nZXRMZW5ndGhzKCk7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQ3VydmU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLy8gIEJhc2VkIG9uIHRoZSB0aHJlZS5qcyBDdXJ2ZSBjbGFzc2VzIGNyZWF0ZWQgYnkgW3p6ODVdKGh0dHA6Ly93d3cubGFiNGdhbWVzLm5ldC96ejg1L2Jsb2cpXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi91dGlscy9DbGFzcycpO1xyXG52YXIgQ3VydmUgPSByZXF1aXJlKCcuL0N1cnZlJyk7XHJcbnZhciBEZWdUb1JhZCA9IHJlcXVpcmUoJy4uL21hdGgvRGVnVG9SYWQnKTtcclxudmFyIEdldFZhbHVlID0gcmVxdWlyZSgnLi4vdXRpbHMvb2JqZWN0L0dldFZhbHVlJyk7XHJcbnZhciBSYWRUb0RlZyA9IHJlcXVpcmUoJy4uL21hdGgvUmFkVG9EZWcnKTtcclxudmFyIFZlY3RvcjIgPSByZXF1aXJlKCcuLi9tYXRoL1ZlY3RvcjInKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEFuIEVsbGlwdGljYWwgQ3VydmUgZGVyaXZlZCBmcm9tIHRoZSBCYXNlIEN1cnZlIGNsYXNzLlxyXG4gKiBcclxuICogU2VlIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0VsbGlwdGljX2N1cnZlIGZvciBtb3JlIGRldGFpbHMuXHJcbiAqXHJcbiAqIEBjbGFzcyBFbGxpcHNlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5DdXJ2ZXMuQ3VydmVcclxuICogQG1lbWJlcm9mIFBoYXNlci5DdXJ2ZXNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0geyhudW1iZXJ8UGhhc2VyLlR5cGVzLkN1cnZlcy5FbGxpcHNlQ3VydmVDb25maWcpfSBbeD0wXSAtIFRoZSB4IGNvb3JkaW5hdGUgb2YgdGhlIGVsbGlwc2UsIG9yIGFuIEVsbGlwc2UgQ3VydmUgY29uZmlndXJhdGlvbiBvYmplY3QuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB5IGNvb3JkaW5hdGUgb2YgdGhlIGVsbGlwc2UuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeFJhZGl1cz0wXSAtIFRoZSBob3Jpem9udGFsIHJhZGl1cyBvZiBlbGxpcHNlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3lSYWRpdXM9MF0gLSBUaGUgdmVydGljYWwgcmFkaXVzIG9mIGVsbGlwc2UuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW3N0YXJ0QW5nbGU9MF0gLSBUaGUgc3RhcnQgYW5nbGUgb2YgdGhlIGVsbGlwc2UsIGluIGRlZ3JlZXMuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2VuZEFuZ2xlPTM2MF0gLSBUaGUgZW5kIGFuZ2xlIG9mIHRoZSBlbGxpcHNlLCBpbiBkZWdyZWVzLlxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtjbG9ja3dpc2U9ZmFsc2VdIC0gV2hldGhlciB0aGUgZWxsaXBzZSBhbmdsZXMgYXJlIGdpdmVuIGFzIGNsb2Nrd2lzZSAoYHRydWVgKSBvciBjb3VudGVyLWNsb2Nrd2lzZSAoYGZhbHNlYCkuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW3JvdGF0aW9uPTBdIC0gVGhlIHJvdGF0aW9uIG9mIHRoZSBlbGxpcHNlLCBpbiBkZWdyZWVzLlxyXG4gKi9cclxudmFyIEVsbGlwc2VDdXJ2ZSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogQ3VydmUsXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBFbGxpcHNlQ3VydmUgKHgsIHksIHhSYWRpdXMsIHlSYWRpdXMsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlLCBjbG9ja3dpc2UsIHJvdGF0aW9uKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0eXBlb2YgeCA9PT0gJ29iamVjdCcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgY29uZmlnID0geDtcclxuXHJcbiAgICAgICAgICAgIHggPSBHZXRWYWx1ZShjb25maWcsICd4JywgMCk7XHJcbiAgICAgICAgICAgIHkgPSBHZXRWYWx1ZShjb25maWcsICd5JywgMCk7XHJcbiAgICAgICAgICAgIHhSYWRpdXMgPSBHZXRWYWx1ZShjb25maWcsICd4UmFkaXVzJywgMCk7XHJcbiAgICAgICAgICAgIHlSYWRpdXMgPSBHZXRWYWx1ZShjb25maWcsICd5UmFkaXVzJywgeFJhZGl1cyk7XHJcbiAgICAgICAgICAgIHN0YXJ0QW5nbGUgPSBHZXRWYWx1ZShjb25maWcsICdzdGFydEFuZ2xlJywgMCk7XHJcbiAgICAgICAgICAgIGVuZEFuZ2xlID0gR2V0VmFsdWUoY29uZmlnLCAnZW5kQW5nbGUnLCAzNjApO1xyXG4gICAgICAgICAgICBjbG9ja3dpc2UgPSBHZXRWYWx1ZShjb25maWcsICdjbG9ja3dpc2UnLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHJvdGF0aW9uID0gR2V0VmFsdWUoY29uZmlnLCAncm90YXRpb24nLCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKHlSYWRpdXMgPT09IHVuZGVmaW5lZCkgeyB5UmFkaXVzID0geFJhZGl1czsgfVxyXG4gICAgICAgICAgICBpZiAoc3RhcnRBbmdsZSA9PT0gdW5kZWZpbmVkKSB7IHN0YXJ0QW5nbGUgPSAwOyB9XHJcbiAgICAgICAgICAgIGlmIChlbmRBbmdsZSA9PT0gdW5kZWZpbmVkKSB7IGVuZEFuZ2xlID0gMzYwOyB9XHJcbiAgICAgICAgICAgIGlmIChjbG9ja3dpc2UgPT09IHVuZGVmaW5lZCkgeyBjbG9ja3dpc2UgPSBmYWxzZTsgfVxyXG4gICAgICAgICAgICBpZiAocm90YXRpb24gPT09IHVuZGVmaW5lZCkgeyByb3RhdGlvbiA9IDA7IH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEN1cnZlLmNhbGwodGhpcywgJ0VsbGlwc2VDdXJ2ZScpO1xyXG5cclxuICAgICAgICAvLyAgQ2VudGVyIHBvaW50XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjZW50ZXIgcG9pbnQgb2YgdGhlIGVsbGlwc2UuIFVzZWQgZm9yIGNhbGN1bGF0aW5nIHJvdGF0aW9uLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI3AwXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wMCA9IG5ldyBWZWN0b3IyKHgsIHkpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaG9yaXpvbnRhbCByYWRpdXMgb2YgdGhlIGVsbGlwc2UuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ3VydmVzLkVsbGlwc2UjX3hSYWRpdXNcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5feFJhZGl1cyA9IHhSYWRpdXM7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB2ZXJ0aWNhbCByYWRpdXMgb2YgdGhlIGVsbGlwc2UuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ3VydmVzLkVsbGlwc2UjX3lSYWRpdXNcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5feVJhZGl1cyA9IHlSYWRpdXM7XHJcblxyXG4gICAgICAgIC8vICBSYWRpYW5zXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBzdGFydGluZyBhbmdsZSBvZiB0aGUgZWxsaXBzZSBpbiByYWRpYW5zLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI19zdGFydEFuZ2xlXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3N0YXJ0QW5nbGUgPSBEZWdUb1JhZChzdGFydEFuZ2xlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGVuZCBhbmdsZSBvZiB0aGUgZWxsaXBzZSBpbiByYWRpYW5zLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI19lbmRBbmdsZVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9lbmRBbmdsZSA9IERlZ1RvUmFkKGVuZEFuZ2xlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW50aS1jbG9ja3dpc2UgZGlyZWN0aW9uLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI19jbG9ja3dpc2VcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2Nsb2Nrd2lzZSA9IGNsb2Nrd2lzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHJvdGF0aW9uIG9mIHRoZSBhcmMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ3VydmVzLkVsbGlwc2UjX3JvdGF0aW9uXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3JvdGF0aW9uID0gRGVnVG9SYWQocm90YXRpb24pO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHN0YXJ0aW5nIHBvaW50IG9uIHRoZSBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuRWxsaXBzZSNnZXRTdGFydFBvaW50XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLk1hdGguVmVjdG9yMn0gTyAtIFtvdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFtvdXRdIC0gQSBWZWN0b3IyIG9iamVjdCB0byBzdG9yZSB0aGUgcmVzdWx0IGluLiBJZiBub3QgZ2l2ZW4gd2lsbCBiZSBjcmVhdGVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFRoZSBjb29yZGluYXRlcyBvZiB0aGUgcG9pbnQgb24gdGhlIGN1cnZlLiBJZiBhbiBgb3V0YCBvYmplY3Qgd2FzIGdpdmVuIHRoaXMgd2lsbCBiZSByZXR1cm5lZC5cclxuICAgICAqL1xyXG4gICAgZ2V0U3RhcnRQb2ludDogZnVuY3Rpb24gKG91dClcclxuICAgIHtcclxuICAgICAgICBpZiAob3V0ID09PSB1bmRlZmluZWQpIHsgb3V0ID0gbmV3IFZlY3RvcjIoKTsgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRQb2ludCgwLCBvdXQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgcmVzb2x1dGlvbiBvZiB0aGUgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkVsbGlwc2UjZ2V0UmVzb2x1dGlvblxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRpdmlzaW9ucyAtIE9wdGlvbmFsIGRpdmlzaW9ucyB2YWx1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBjdXJ2ZSByZXNvbHV0aW9uLlxyXG4gICAgICovXHJcbiAgICBnZXRSZXNvbHV0aW9uOiBmdW5jdGlvbiAoZGl2aXNpb25zKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBkaXZpc2lvbnMgKiAyO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBwb2ludCBhdCByZWxhdGl2ZSBwb3NpdGlvbiBpbiBjdXJ2ZSBhY2NvcmRpbmcgdG8gbGVuZ3RoLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI2dldFBvaW50XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLk1hdGguVmVjdG9yMn0gTyAtIFtvdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdCAtIFRoZSBwb3NpdGlvbiBhbG9uZyB0aGUgY3VydmUgdG8gcmV0dXJuLiBXaGVyZSAwIGlzIHRoZSBzdGFydCBhbmQgMSBpcyB0aGUgZW5kLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBbb3V0XSAtIEEgVmVjdG9yMiBvYmplY3QgdG8gc3RvcmUgdGhlIHJlc3VsdCBpbi4gSWYgbm90IGdpdmVuIHdpbGwgYmUgY3JlYXRlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBUaGUgY29vcmRpbmF0ZXMgb2YgdGhlIHBvaW50IG9uIHRoZSBjdXJ2ZS4gSWYgYW4gYG91dGAgb2JqZWN0IHdhcyBnaXZlbiB0aGlzIHdpbGwgYmUgcmV0dXJuZWQuXHJcbiAgICAgKi9cclxuICAgIGdldFBvaW50OiBmdW5jdGlvbiAodCwgb3V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZCkgeyBvdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIHZhciB0d29QaSA9IE1hdGguUEkgKiAyO1xyXG4gICAgICAgIHZhciBkZWx0YUFuZ2xlID0gdGhpcy5fZW5kQW5nbGUgLSB0aGlzLl9zdGFydEFuZ2xlO1xyXG4gICAgICAgIHZhciBzYW1lUG9pbnRzID0gTWF0aC5hYnMoZGVsdGFBbmdsZSkgPCBOdW1iZXIuRVBTSUxPTjtcclxuXHJcbiAgICAgICAgLy8gZW5zdXJlcyB0aGF0IGRlbHRhQW5nbGUgaXMgMCAuLiAyIFBJXHJcbiAgICAgICAgd2hpbGUgKGRlbHRhQW5nbGUgPCAwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZGVsdGFBbmdsZSArPSB0d29QaTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHdoaWxlIChkZWx0YUFuZ2xlID4gdHdvUGkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBkZWx0YUFuZ2xlIC09IHR3b1BpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRlbHRhQW5nbGUgPCBOdW1iZXIuRVBTSUxPTilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmIChzYW1lUG9pbnRzKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBkZWx0YUFuZ2xlID0gMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGRlbHRhQW5nbGUgPSB0d29QaTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2Nsb2Nrd2lzZSAmJiAhc2FtZVBvaW50cylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmIChkZWx0YUFuZ2xlID09PSB0d29QaSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZGVsdGFBbmdsZSA9IC0gdHdvUGk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBkZWx0YUFuZ2xlID0gZGVsdGFBbmdsZSAtIHR3b1BpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgYW5nbGUgPSB0aGlzLl9zdGFydEFuZ2xlICsgdCAqIGRlbHRhQW5nbGU7XHJcbiAgICAgICAgdmFyIHggPSB0aGlzLnAwLnggKyB0aGlzLl94UmFkaXVzICogTWF0aC5jb3MoYW5nbGUpO1xyXG4gICAgICAgIHZhciB5ID0gdGhpcy5wMC55ICsgdGhpcy5feVJhZGl1cyAqIE1hdGguc2luKGFuZ2xlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX3JvdGF0aW9uICE9PSAwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGNvcyA9IE1hdGguY29zKHRoaXMuX3JvdGF0aW9uKTtcclxuICAgICAgICAgICAgdmFyIHNpbiA9IE1hdGguc2luKHRoaXMuX3JvdGF0aW9uKTtcclxuXHJcbiAgICAgICAgICAgIHZhciB0eCA9IHggLSB0aGlzLnAwLng7XHJcbiAgICAgICAgICAgIHZhciB0eSA9IHkgLSB0aGlzLnAwLnk7XHJcblxyXG4gICAgICAgICAgICAvLyBSb3RhdGUgdGhlIHBvaW50IGFib3V0IHRoZSBjZW50ZXIgb2YgdGhlIGVsbGlwc2UuXHJcbiAgICAgICAgICAgIHggPSB0eCAqIGNvcyAtIHR5ICogc2luICsgdGhpcy5wMC54O1xyXG4gICAgICAgICAgICB5ID0gdHggKiBzaW4gKyB0eSAqIGNvcyArIHRoaXMucDAueTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvdXQuc2V0KHgsIHkpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGhvcml6b250YWwgcmFkaXVzIG9mIHRoaXMgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkVsbGlwc2Ujc2V0WFJhZGl1c1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGhvcml6b250YWwgcmFkaXVzIG9mIHRoaXMgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBjdXJ2ZSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldFhSYWRpdXM6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnhSYWRpdXMgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdmVydGljYWwgcmFkaXVzIG9mIHRoaXMgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkVsbGlwc2Ujc2V0WVJhZGl1c1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIHZlcnRpY2FsIHJhZGl1cyBvZiB0aGlzIGN1cnZlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgY3VydmUgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRZUmFkaXVzOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy55UmFkaXVzID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHdpZHRoIG9mIHRoaXMgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkVsbGlwc2Ujc2V0V2lkdGhcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSB3aWR0aCBvZiB0aGlzIGN1cnZlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgY3VydmUgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRXaWR0aDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMueFJhZGl1cyA9IHZhbHVlICogMjtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgaGVpZ2h0IG9mIHRoaXMgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkVsbGlwc2Ujc2V0SGVpZ2h0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgaGVpZ2h0IG9mIHRoaXMgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBjdXJ2ZSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldEhlaWdodDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMueVJhZGl1cyA9IHZhbHVlICogMjtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgc3RhcnQgYW5nbGUgb2YgdGhpcyBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuRWxsaXBzZSNzZXRTdGFydEFuZ2xlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgc3RhcnQgYW5nbGUgb2YgdGhpcyBjdXJ2ZSwgaW4gcmFkaWFucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIGN1cnZlIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0U3RhcnRBbmdsZTogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuc3RhcnRBbmdsZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBlbmQgYW5nbGUgb2YgdGhpcyBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuRWxsaXBzZSNzZXRFbmRBbmdsZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGVuZCBhbmdsZSBvZiB0aGlzIGN1cnZlLCBpbiByYWRpYW5zLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgY3VydmUgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRFbmRBbmdsZTogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZW5kQW5nbGUgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBpZiB0aGlzIGN1cnZlIGV4dGVuZHMgY2xvY2t3aXNlIG9yIGFudGktY2xvY2t3aXNlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI3NldENsb2Nrd2lzZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSB2YWx1ZSAtIFRoZSBjbG9ja3dpc2Ugc3RhdGUgb2YgdGhpcyBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIGN1cnZlIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0Q2xvY2t3aXNlOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5jbG9ja3dpc2UgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgcm90YXRpb24gb2YgdGhpcyBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuRWxsaXBzZSNzZXRSb3RhdGlvblxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIHJvdGF0aW9uIG9mIHRoaXMgY3VydmUsIGluIHJhZGlhbnMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBjdXJ2ZSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldFJvdGF0aW9uOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5yb3RhdGlvbiA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgeCBjb29yZGluYXRlIG9mIHRoZSBjZW50ZXIgb2YgdGhlIGVsbGlwc2UuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI3hcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgeDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wMC54O1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wMC54ID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgeSBjb29yZGluYXRlIG9mIHRoZSBjZW50ZXIgb2YgdGhlIGVsbGlwc2UuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI3lcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgeToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wMC55O1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wMC55ID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgaG9yaXpvbnRhbCByYWRpdXMgb2YgdGhlIGVsbGlwc2UuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI3hSYWRpdXNcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgeFJhZGl1czoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5feFJhZGl1cztcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3hSYWRpdXMgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB2ZXJ0aWNhbCByYWRpdXMgb2YgdGhlIGVsbGlwc2UuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI3lSYWRpdXNcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgeVJhZGl1czoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5feVJhZGl1cztcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3lSYWRpdXMgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzdGFydCBhbmdsZSBvZiB0aGUgZWxsaXBzZSBpbiBkZWdyZWVzLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuRWxsaXBzZSNzdGFydEFuZ2xlXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHN0YXJ0QW5nbGU6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIFJhZFRvRGVnKHRoaXMuX3N0YXJ0QW5nbGUpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fc3RhcnRBbmdsZSA9IERlZ1RvUmFkKHZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBlbmQgYW5nbGUgb2YgdGhlIGVsbGlwc2UgaW4gZGVncmVlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuQ3VydmVzLkVsbGlwc2UjZW5kQW5nbGVcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgZW5kQW5nbGU6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIFJhZFRvRGVnKHRoaXMuX2VuZEFuZ2xlKTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2VuZEFuZ2xlID0gRGVnVG9SYWQodmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogYHRydWVgIGlmIHRoZSBlbGxpcHNlIHJvdGF0aW9uIGlzIGNsb2Nrd2lzZSBvciBgZmFsc2VgIGlmIGFudGktY2xvY2t3aXNlLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuRWxsaXBzZSNjbG9ja3dpc2VcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGNsb2Nrd2lzZToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY2xvY2t3aXNlO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xvY2t3aXNlID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcm90YXRpb24gb2YgdGhlIGVsbGlwc2UsIHJlbGF0aXZlIHRvIHRoZSBjZW50ZXIsIGluIGRlZ3JlZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI2FuZ2xlXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMTQuMFxyXG4gICAgICovXHJcbiAgICBhbmdsZToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gUmFkVG9EZWcodGhpcy5fcm90YXRpb24pO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fcm90YXRpb24gPSBEZWdUb1JhZCh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcm90YXRpb24gb2YgdGhlIGVsbGlwc2UsIHJlbGF0aXZlIHRvIHRoZSBjZW50ZXIsIGluIHJhZGlhbnMuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI3JvdGF0aW9uXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHJvdGF0aW9uOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yb3RhdGlvbjtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JvdGF0aW9uID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBKU09OIHNlcmlhbGl6YXRpb24gb2YgdGhlIGN1cnZlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5FbGxpcHNlI3RvSlNPTlxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLlR5cGVzLkN1cnZlcy5KU09ORWxsaXBzZUN1cnZlfSBUaGUgSlNPTiBvYmplY3QgY29udGFpbmluZyB0aGlzIGN1cnZlIGRhdGEuXHJcbiAgICAgKi9cclxuICAgIHRvSlNPTjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXHJcbiAgICAgICAgICAgIHg6IHRoaXMucDAueCxcclxuICAgICAgICAgICAgeTogdGhpcy5wMC55LFxyXG4gICAgICAgICAgICB4UmFkaXVzOiB0aGlzLl94UmFkaXVzLFxyXG4gICAgICAgICAgICB5UmFkaXVzOiB0aGlzLl95UmFkaXVzLFxyXG4gICAgICAgICAgICBzdGFydEFuZ2xlOiBSYWRUb0RlZyh0aGlzLl9zdGFydEFuZ2xlKSxcclxuICAgICAgICAgICAgZW5kQW5nbGU6IFJhZFRvRGVnKHRoaXMuX2VuZEFuZ2xlKSxcclxuICAgICAgICAgICAgY2xvY2t3aXNlOiB0aGlzLl9jbG9ja3dpc2UsXHJcbiAgICAgICAgICAgIHJvdGF0aW9uOiBSYWRUb0RlZyh0aGlzLl9yb3RhdGlvbilcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIGN1cnZlIGZyb20gdGhlIHByb3ZpZGVkIEVsbGlwc2UgQ3VydmUgQ29uZmlndXJhdGlvbiBvYmplY3QuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuQ3VydmVzLkVsbGlwc2UuZnJvbUpTT05cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkN1cnZlcy5KU09ORWxsaXBzZUN1cnZlfSBkYXRhIC0gVGhlIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgdGhpcyBjdXJ2ZSBkYXRhLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuQ3VydmVzLkVsbGlwc2V9IFRoZSBlbGxpcHNlIGN1cnZlIGNvbnN0cnVjdGVkIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxyXG4gKi9cclxuRWxsaXBzZUN1cnZlLmZyb21KU09OID0gZnVuY3Rpb24gKGRhdGEpXHJcbntcclxuICAgIHJldHVybiBuZXcgRWxsaXBzZUN1cnZlKGRhdGEpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBFbGxpcHNlQ3VydmU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLy8gIEJhc2VkIG9uIHRoZSB0aHJlZS5qcyBDdXJ2ZSBjbGFzc2VzIGNyZWF0ZWQgYnkgW3p6ODVdKGh0dHA6Ly93d3cubGFiNGdhbWVzLm5ldC96ejg1L2Jsb2cpXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi91dGlscy9DbGFzcycpO1xyXG52YXIgQ3VydmUgPSByZXF1aXJlKCcuL0N1cnZlJyk7XHJcbnZhciBGcm9tUG9pbnRzID0gcmVxdWlyZSgnLi4vZ2VvbS9yZWN0YW5nbGUvRnJvbVBvaW50cycpO1xyXG52YXIgUmVjdGFuZ2xlID0gcmVxdWlyZSgnLi4vZ2VvbS9yZWN0YW5nbGUvUmVjdGFuZ2xlJyk7XHJcbnZhciBWZWN0b3IyID0gcmVxdWlyZSgnLi4vbWF0aC9WZWN0b3IyJyk7XHJcblxyXG52YXIgdG1wVmVjMiA9IG5ldyBWZWN0b3IyKCk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIExpbmVDdXJ2ZSBpcyBhIFwiY3VydmVcIiBjb21wcmlzaW5nIGV4YWN0bHkgdHdvIHBvaW50cyAoYSBsaW5lIHNlZ21lbnQpLlxyXG4gKlxyXG4gKiBAY2xhc3MgTGluZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuQ3VydmVzLkN1cnZlXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuQ3VydmVzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHsoUGhhc2VyLk1hdGguVmVjdG9yMnxudW1iZXJbXSl9IHAwIC0gVGhlIGZpcnN0IGVuZHBvaW50LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFtwMV0gLSBUaGUgc2Vjb25kIGVuZHBvaW50LlxyXG4gKi9cclxudmFyIExpbmVDdXJ2ZSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogQ3VydmUsXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICAvLyAgdmVjMnMgb3IgYXJyYXlcclxuICAgIGZ1bmN0aW9uIExpbmVDdXJ2ZSAocDAsIHAxKVxyXG4gICAge1xyXG4gICAgICAgIEN1cnZlLmNhbGwodGhpcywgJ0xpbmVDdXJ2ZScpO1xyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwMCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwMSA9IG5ldyBWZWN0b3IyKHAwWzJdLCBwMFszXSk7XHJcbiAgICAgICAgICAgIHAwID0gbmV3IFZlY3RvcjIocDBbMF0sIHAwWzFdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBmaXJzdCBlbmRwb2ludC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuTGluZSNwMFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuTWF0aC5WZWN0b3IyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucDAgPSBwMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHNlY29uZCBlbmRwb2ludC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuTGluZSNwMVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuTWF0aC5WZWN0b3IyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucDEgPSBwMTtcclxuXHJcbiAgICAgICAgLy8gIE92ZXJyaWRlIGRlZmF1bHQgQ3VydmUuYXJjTGVuZ3RoRGl2aXNpb25zXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBxdWFudGl0eSBvZiBhcmMgbGVuZ3RoIGRpdmlzaW9ucyB3aXRoaW4gdGhlIGN1cnZlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5MaW5lI2FyY0xlbmd0aERpdmlzaW9uc1xyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFyY0xlbmd0aERpdmlzaW9ucyA9IDE7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIFJlY3RhbmdsZSB3aGVyZSB0aGUgcG9zaXRpb24gYW5kIGRpbWVuc2lvbnMgbWF0Y2ggdGhlIGJvdW5kcyBvZiB0aGlzIEN1cnZlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5MaW5lI2dldEJvdW5kc1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5HZW9tLlJlY3RhbmdsZX0gTyAtIFtvdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HZW9tLlJlY3RhbmdsZX0gW291dF0gLSBBIFJlY3RhbmdsZSBvYmplY3QgdG8gc3RvcmUgdGhlIGJvdW5kcyBpbi4gSWYgbm90IGdpdmVuIGEgbmV3IFJlY3RhbmdsZSB3aWxsIGJlIGNyZWF0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdlb20uUmVjdGFuZ2xlfSBBIFJlY3RhbmdsZSBvYmplY3QgaG9sZGluZyB0aGUgYm91bmRzIG9mIHRoaXMgY3VydmUuIElmIGBvdXRgIHdhcyBnaXZlbiBpdCB3aWxsIGJlIHRoaXMgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBnZXRCb3VuZHM6IGZ1bmN0aW9uIChvdXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG91dCA9PT0gdW5kZWZpbmVkKSB7IG91dCA9IG5ldyBSZWN0YW5nbGUoKTsgfVxyXG5cclxuICAgICAgICByZXR1cm4gRnJvbVBvaW50cyhbIHRoaXMucDAsIHRoaXMucDEgXSwgb3V0KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBzdGFydGluZyBwb2ludCBvbiB0aGUgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkxpbmUjZ2V0U3RhcnRQb2ludFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBbb3V0XSAtIEEgVmVjdG9yMiBvYmplY3QgdG8gc3RvcmUgdGhlIHJlc3VsdCBpbi4gSWYgbm90IGdpdmVuIHdpbGwgYmUgY3JlYXRlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBUaGUgY29vcmRpbmF0ZXMgb2YgdGhlIHBvaW50IG9uIHRoZSBjdXJ2ZS4gSWYgYW4gYG91dGAgb2JqZWN0IHdhcyBnaXZlbiB0aGlzIHdpbGwgYmUgcmV0dXJuZWQuXHJcbiAgICAgKi9cclxuICAgIGdldFN0YXJ0UG9pbnQ6IGZ1bmN0aW9uIChvdXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG91dCA9PT0gdW5kZWZpbmVkKSB7IG91dCA9IG5ldyBWZWN0b3IyKCk7IH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG91dC5jb3B5KHRoaXMucDApO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHJlc29sdXRpb24gb2YgdGhlIGxpbmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkxpbmUjZ2V0UmVzb2x1dGlvblxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtkaXZpc2lvbnM9MV0gLSBUaGUgbnVtYmVyIG9mIGRpdmlzaW9ucyB0byBjb25zaWRlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSByZXNvbHV0aW9uLiBFcXVhbCB0byB0aGUgbnVtYmVyIG9mIGRpdmlzaW9ucy5cclxuICAgICAqL1xyXG4gICAgZ2V0UmVzb2x1dGlvbjogZnVuY3Rpb24gKGRpdmlzaW9ucylcclxuICAgIHtcclxuICAgICAgICBpZiAoZGl2aXNpb25zID09PSB1bmRlZmluZWQpIHsgZGl2aXNpb25zID0gMTsgfVxyXG5cclxuICAgICAgICByZXR1cm4gZGl2aXNpb25zO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBwb2ludCBhdCByZWxhdGl2ZSBwb3NpdGlvbiBpbiBjdXJ2ZSBhY2NvcmRpbmcgdG8gbGVuZ3RoLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5MaW5lI2dldFBvaW50XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLk1hdGguVmVjdG9yMn0gTyAtIFtvdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdCAtIFRoZSBwb3NpdGlvbiBhbG9uZyB0aGUgY3VydmUgdG8gcmV0dXJuLiBXaGVyZSAwIGlzIHRoZSBzdGFydCBhbmQgMSBpcyB0aGUgZW5kLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBbb3V0XSAtIEEgVmVjdG9yMiBvYmplY3QgdG8gc3RvcmUgdGhlIHJlc3VsdCBpbi4gSWYgbm90IGdpdmVuIHdpbGwgYmUgY3JlYXRlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBUaGUgY29vcmRpbmF0ZXMgb2YgdGhlIHBvaW50IG9uIHRoZSBjdXJ2ZS4gSWYgYW4gYG91dGAgb2JqZWN0IHdhcyBnaXZlbiB0aGlzIHdpbGwgYmUgcmV0dXJuZWQuXHJcbiAgICAgKi9cclxuICAgIGdldFBvaW50OiBmdW5jdGlvbiAodCwgb3V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZCkgeyBvdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIGlmICh0ID09PSAxKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIG91dC5jb3B5KHRoaXMucDEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgb3V0LmNvcHkodGhpcy5wMSkuc3VidHJhY3QodGhpcy5wMCkuc2NhbGUodCkuYWRkKHRoaXMucDApO1xyXG5cclxuICAgICAgICByZXR1cm4gb3V0O1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyBMaW5lIGN1cnZlIGlzIGxpbmVhciwgc28gd2UgY2FuIG92ZXJ3cml0ZSBkZWZhdWx0IGdldFBvaW50QXRcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYSBwb2ludCBhdCBhIGdpdmVuIHBvc2l0aW9uIG9uIHRoZSBsaW5lLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5MaW5lI2dldFBvaW50QXRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBPIC0gW291dCwkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB1IC0gVGhlIHBvc2l0aW9uIGFsb25nIHRoZSBjdXJ2ZSB0byByZXR1cm4uIFdoZXJlIDAgaXMgdGhlIHN0YXJ0IGFuZCAxIGlzIHRoZSBlbmQuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFtvdXRdIC0gQSBWZWN0b3IyIG9iamVjdCB0byBzdG9yZSB0aGUgcmVzdWx0IGluLiBJZiBub3QgZ2l2ZW4gd2lsbCBiZSBjcmVhdGVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFRoZSBjb29yZGluYXRlcyBvZiB0aGUgcG9pbnQgb24gdGhlIGN1cnZlLiBJZiBhbiBgb3V0YCBvYmplY3Qgd2FzIGdpdmVuIHRoaXMgd2lsbCBiZSByZXR1cm5lZC5cclxuICAgICAqL1xyXG4gICAgZ2V0UG9pbnRBdDogZnVuY3Rpb24gKHUsIG91dClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRQb2ludCh1LCBvdXQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHNsb3BlIG9mIHRoZSBsaW5lIGFzIGEgdW5pdCB2ZWN0b3IuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLkxpbmUjZ2V0VGFuZ2VudFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKiBcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBPIC0gW291dCwkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFRoZSB0YW5nZW50IHZlY3Rvci5cclxuICAgICAqL1xyXG4gICAgZ2V0VGFuZ2VudDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgdGFuZ2VudCA9IHRtcFZlYzIuY29weSh0aGlzLnAxKS5zdWJ0cmFjdCh0aGlzLnAwKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRhbmdlbnQubm9ybWFsaXplKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2l2ZW4gdSAoIDAgLi4gMSApLCBnZXQgYSB0IHRvIGZpbmQgcC4gVGhpcyBnaXZlcyB5b3UgcG9pbnRzIHdoaWNoIGFyZSBlcXVpZGlzdGFudC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuTGluZSNnZXRVdG9UbWFwcGluZ1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHUgLSBBIGZsb2F0IGJldHdlZW4gMCBhbmQgMS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gZGlzdGFuY2UgLSBUaGUgZGlzdGFuY2UsIGluIHBpeGVscy5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpdmlzaW9uc10gLSBPcHRpb25hbCBhbW91bnQgb2YgZGl2aXNpb25zLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge251bWJlcn0gVGhlIGVxdWlkaXN0YW50IHZhbHVlLlxyXG4gICAgICovXHJcbiAgICBnZXRVdG9UbWFwcGluZzogZnVuY3Rpb24gKHUsIGRpc3RhbmNlLCBkaXZpc2lvbnMpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHQ7XHJcblxyXG4gICAgICAgIGlmIChkaXN0YW5jZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBhcmNMZW5ndGhzID0gdGhpcy5nZXRMZW5ndGhzKGRpdmlzaW9ucyk7XHJcbiAgICAgICAgICAgIHZhciBsaW5lTGVuZ3RoID0gYXJjTGVuZ3Roc1thcmNMZW5ndGhzLmxlbmd0aCAtIDFdO1xyXG5cclxuICAgICAgICAgICAgLy8gIENhbm5vdCBvdmVyc2hvb3QgdGhlIGN1cnZlXHJcbiAgICAgICAgICAgIHZhciB0YXJnZXRMaW5lTGVuZ3RoID0gTWF0aC5taW4oZGlzdGFuY2UsIGxpbmVMZW5ndGgpO1xyXG5cclxuICAgICAgICAgICAgdCA9IHRhcmdldExpbmVMZW5ndGggLyBsaW5lTGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0ID0gdTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0O1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyAgT3ZlcnJpZGUgZGVmYXVsdCBDdXJ2ZS5kcmF3IGJlY2F1c2UgdGhpcyBpcyBiZXR0ZXIgdGhhbiBjYWxsaW5nIGdldFBvaW50cyBvbiBhIGxpbmUhXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEcmF3cyB0aGlzIGN1cnZlIG9uIHRoZSBnaXZlbiBHcmFwaGljcyBvYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIGN1cnZlIGlzIGRyYXduIHVzaW5nIGBHcmFwaGljcy5saW5lQmV0d2VlbmAgc28gd2lsbCBiZSBkcmF3biBhdCB3aGF0ZXZlciB0aGUgcHJlc2VudCBHcmFwaGljcyBsaW5lIGNvbG9yIGlzLlxyXG4gICAgICogVGhlIEdyYXBoaWNzIG9iamVjdCBpcyBub3QgY2xlYXJlZCBiZWZvcmUgdGhlIGRyYXcsIHNvIHRoZSBjdXJ2ZSB3aWxsIGFwcGVhciBvbi10b3Agb2YgYW55dGhpbmcgZWxzZSBhbHJlYWR5IHJlbmRlcmVkIHRvIGl0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5MaW5lI2RyYXdcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3N9IEcgLSBbZ3JhcGhpY3MsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljc30gZ3JhcGhpY3MgLSBUaGUgR3JhcGhpY3MgaW5zdGFuY2Ugb250byB3aGljaCB0aGlzIGN1cnZlIHdpbGwgYmUgZHJhd24uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzfSBUaGUgR3JhcGhpY3Mgb2JqZWN0IHRvIHdoaWNoIHRoZSBjdXJ2ZSB3YXMgZHJhd24uXHJcbiAgICAgKi9cclxuICAgIGRyYXc6IGZ1bmN0aW9uIChncmFwaGljcylcclxuICAgIHtcclxuICAgICAgICBncmFwaGljcy5saW5lQmV0d2Vlbih0aGlzLnAwLngsIHRoaXMucDAueSwgdGhpcy5wMS54LCB0aGlzLnAxLnkpO1xyXG5cclxuICAgICAgICAvLyAgU28geW91IGNhbiBjaGFpbiBncmFwaGljcyBjYWxsc1xyXG4gICAgICAgIHJldHVybiBncmFwaGljcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgbGluZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuTGluZSN0b0pTT05cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5UeXBlcy5DdXJ2ZXMuSlNPTkN1cnZlfSBUaGUgSlNPTiBvYmplY3QgY29udGFpbmluZyB0aGlzIGN1cnZlIGRhdGEuXHJcbiAgICAgKi9cclxuICAgIHRvSlNPTjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXHJcbiAgICAgICAgICAgIHBvaW50czogW1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wMC54LCB0aGlzLnAwLnksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnAxLngsIHRoaXMucDEueVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyZXMgdGhpcyBsaW5lIGZyb20gYSBKU09OIHJlcHJlc2VudGF0aW9uLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkN1cnZlcy5MaW5lLmZyb21KU09OXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5DdXJ2ZXMuSlNPTkN1cnZlfSBkYXRhIC0gVGhlIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgdGhpcyBjdXJ2ZSBkYXRhLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuQ3VydmVzLkxpbmV9IEEgbmV3IExpbmVDdXJ2ZSBvYmplY3QuXHJcbiAqL1xyXG5MaW5lQ3VydmUuZnJvbUpTT04gPSBmdW5jdGlvbiAoZGF0YSlcclxue1xyXG4gICAgdmFyIHBvaW50cyA9IGRhdGEucG9pbnRzO1xyXG5cclxuICAgIHZhciBwMCA9IG5ldyBWZWN0b3IyKHBvaW50c1swXSwgcG9pbnRzWzFdKTtcclxuICAgIHZhciBwMSA9IG5ldyBWZWN0b3IyKHBvaW50c1syXSwgcG9pbnRzWzNdKTtcclxuXHJcbiAgICByZXR1cm4gbmV3IExpbmVDdXJ2ZShwMCwgcDEpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBMaW5lQ3VydmU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEN1cnZlID0gcmVxdWlyZSgnLi9DdXJ2ZScpO1xyXG52YXIgUXVhZHJhdGljQmV6aWVySW50ZXJwb2xhdGlvbiA9IHJlcXVpcmUoJy4uL21hdGgvaW50ZXJwb2xhdGlvbi9RdWFkcmF0aWNCZXppZXJJbnRlcnBvbGF0aW9uJyk7XHJcbnZhciBWZWN0b3IyID0gcmVxdWlyZSgnLi4vbWF0aC9WZWN0b3IyJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIHF1YWRyYXRpYyBCw6l6aWVyIGN1cnZlIGNvbnN0cnVjdGVkIGZyb20gdHdvIGNvbnRyb2wgcG9pbnRzLlxyXG4gKlxyXG4gKiBAY2xhc3MgUXVhZHJhdGljQmV6aWVyXHJcbiAqIEBleHRlbmRzIFBoYXNlci5DdXJ2ZXMuQ3VydmVcclxuICogQG1lbWJlcm9mIFBoYXNlci5DdXJ2ZXNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjIuMFxyXG4gKlxyXG4gKiBAcGFyYW0geyhQaGFzZXIuTWF0aC5WZWN0b3IyfG51bWJlcltdKX0gcDAgLSBTdGFydCBwb2ludCwgb3IgYW4gYXJyYXkgb2YgcG9pbnQgcGFpcnMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLk1hdGguVmVjdG9yMn0gcDEgLSBDb250cm9sIFBvaW50IDEuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLk1hdGguVmVjdG9yMn0gcDIgLSBDb250cm9sIFBvaW50IDIuXHJcbiAqL1xyXG52YXIgUXVhZHJhdGljQmV6aWVyID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBFeHRlbmRzOiBDdXJ2ZSxcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIFF1YWRyYXRpY0JlemllciAocDAsIHAxLCBwMilcclxuICAgIHtcclxuICAgICAgICBDdXJ2ZS5jYWxsKHRoaXMsICdRdWFkcmF0aWNCZXppZXInKTtcclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocDApKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcDIgPSBuZXcgVmVjdG9yMihwMFs0XSwgcDBbNV0pO1xyXG4gICAgICAgICAgICBwMSA9IG5ldyBWZWN0b3IyKHAwWzJdLCBwMFszXSk7XHJcbiAgICAgICAgICAgIHAwID0gbmV3IFZlY3RvcjIocDBbMF0sIHAwWzFdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBzdGFydCBwb2ludC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuUXVhZHJhdGljQmV6aWVyI3AwXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMi4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wMCA9IHAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZmlyc3QgY29udHJvbCBwb2ludC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuUXVhZHJhdGljQmV6aWVyI3AxXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMi4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wMSA9IHAxO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgc2Vjb25kIGNvbnRyb2wgcG9pbnQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ3VydmVzLlF1YWRyYXRpY0JlemllciNwMlxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuTWF0aC5WZWN0b3IyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucDIgPSBwMjtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBzdGFydGluZyBwb2ludCBvbiB0aGUgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLlF1YWRyYXRpY0JlemllciNnZXRTdGFydFBvaW50XHJcbiAgICAgKiBAc2luY2UgMy4yLjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLk1hdGguVmVjdG9yMn0gTyAtIFtvdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFtvdXRdIC0gQSBWZWN0b3IyIG9iamVjdCB0byBzdG9yZSB0aGUgcmVzdWx0IGluLiBJZiBub3QgZ2l2ZW4gd2lsbCBiZSBjcmVhdGVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFRoZSBjb29yZGluYXRlcyBvZiB0aGUgcG9pbnQgb24gdGhlIGN1cnZlLiBJZiBhbiBgb3V0YCBvYmplY3Qgd2FzIGdpdmVuIHRoaXMgd2lsbCBiZSByZXR1cm5lZC5cclxuICAgICAqL1xyXG4gICAgZ2V0U3RhcnRQb2ludDogZnVuY3Rpb24gKG91dClcclxuICAgIHtcclxuICAgICAgICBpZiAob3V0ID09PSB1bmRlZmluZWQpIHsgb3V0ID0gbmV3IFZlY3RvcjIoKTsgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3V0LmNvcHkodGhpcy5wMCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSByZXNvbHV0aW9uIG9mIHRoZSBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuUXVhZHJhdGljQmV6aWVyI2dldFJlc29sdXRpb25cclxuICAgICAqIEBzaW5jZSAzLjIuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkaXZpc2lvbnMgLSBPcHRpb25hbCBkaXZpc2lvbnMgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgY3VydmUgcmVzb2x1dGlvbi5cclxuICAgICAqL1xyXG4gICAgZ2V0UmVzb2x1dGlvbjogZnVuY3Rpb24gKGRpdmlzaW9ucylcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gZGl2aXNpb25zO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBwb2ludCBhdCByZWxhdGl2ZSBwb3NpdGlvbiBpbiBjdXJ2ZSBhY2NvcmRpbmcgdG8gbGVuZ3RoLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5RdWFkcmF0aWNCZXppZXIjZ2V0UG9pbnRcclxuICAgICAqIEBzaW5jZSAzLjIuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBPIC0gW291dCwkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0IC0gVGhlIHBvc2l0aW9uIGFsb25nIHRoZSBjdXJ2ZSB0byByZXR1cm4uIFdoZXJlIDAgaXMgdGhlIHN0YXJ0IGFuZCAxIGlzIHRoZSBlbmQuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFtvdXRdIC0gQSBWZWN0b3IyIG9iamVjdCB0byBzdG9yZSB0aGUgcmVzdWx0IGluLiBJZiBub3QgZ2l2ZW4gd2lsbCBiZSBjcmVhdGVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFRoZSBjb29yZGluYXRlcyBvZiB0aGUgcG9pbnQgb24gdGhlIGN1cnZlLiBJZiBhbiBgb3V0YCBvYmplY3Qgd2FzIGdpdmVuIHRoaXMgd2lsbCBiZSByZXR1cm5lZC5cclxuICAgICAqL1xyXG4gICAgZ2V0UG9pbnQ6IGZ1bmN0aW9uICh0LCBvdXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG91dCA9PT0gdW5kZWZpbmVkKSB7IG91dCA9IG5ldyBWZWN0b3IyKCk7IH1cclxuXHJcbiAgICAgICAgdmFyIHAwID0gdGhpcy5wMDtcclxuICAgICAgICB2YXIgcDEgPSB0aGlzLnAxO1xyXG4gICAgICAgIHZhciBwMiA9IHRoaXMucDI7XHJcblxyXG4gICAgICAgIHJldHVybiBvdXQuc2V0KFxyXG4gICAgICAgICAgICBRdWFkcmF0aWNCZXppZXJJbnRlcnBvbGF0aW9uKHQsIHAwLngsIHAxLngsIHAyLngpLFxyXG4gICAgICAgICAgICBRdWFkcmF0aWNCZXppZXJJbnRlcnBvbGF0aW9uKHQsIHAwLnksIHAxLnksIHAyLnkpXHJcbiAgICAgICAgKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEcmF3cyB0aGlzIGN1cnZlIG9uIHRoZSBnaXZlbiBHcmFwaGljcyBvYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIGN1cnZlIGlzIGRyYXduIHVzaW5nIGBHcmFwaGljcy5zdHJva2VQb2ludHNgIHNvIHdpbGwgYmUgZHJhd24gYXQgd2hhdGV2ZXIgdGhlIHByZXNlbnQgR3JhcGhpY3Mgc3Ryb2tlIGNvbG9yIGlzLlxyXG4gICAgICogVGhlIEdyYXBoaWNzIG9iamVjdCBpcyBub3QgY2xlYXJlZCBiZWZvcmUgdGhlIGRyYXcsIHNvIHRoZSBjdXJ2ZSB3aWxsIGFwcGVhciBvbi10b3Agb2YgYW55dGhpbmcgZWxzZSBhbHJlYWR5IHJlbmRlcmVkIHRvIGl0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5RdWFkcmF0aWNCZXppZXIjZHJhd1xyXG4gICAgICogQHNpbmNlIDMuMi4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljc30gRyAtIFtncmFwaGljcywkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzfSBncmFwaGljcyAtIGBHcmFwaGljc2Agb2JqZWN0IHRvIGRyYXcgb250by5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3BvaW50c1RvdGFsPTMyXSAtIE51bWJlciBvZiBwb2ludHMgdG8gYmUgdXNlZCBmb3IgZHJhd2luZyB0aGUgY3VydmUuIEhpZ2hlciBudW1iZXJzIHJlc3VsdCBpbiBzbW9vdGhlciBjdXJ2ZSBidXQgcmVxdWlyZSBtb3JlIHByb2Nlc3NpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzfSBgR3JhcGhpY3NgIG9iamVjdCB0aGF0IHdhcyBkcmF3biB0by5cclxuICAgICAqL1xyXG4gICAgZHJhdzogZnVuY3Rpb24gKGdyYXBoaWNzLCBwb2ludHNUb3RhbClcclxuICAgIHtcclxuICAgICAgICBpZiAocG9pbnRzVG90YWwgPT09IHVuZGVmaW5lZCkgeyBwb2ludHNUb3RhbCA9IDMyOyB9XHJcblxyXG4gICAgICAgIHZhciBwb2ludHMgPSB0aGlzLmdldFBvaW50cyhwb2ludHNUb3RhbCk7XHJcblxyXG4gICAgICAgIGdyYXBoaWNzLmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIGdyYXBoaWNzLm1vdmVUbyh0aGlzLnAwLngsIHRoaXMucDAueSk7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZ3JhcGhpY3MubGluZVRvKHBvaW50c1tpXS54LCBwb2ludHNbaV0ueSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBncmFwaGljcy5zdHJva2VQYXRoKCk7XHJcblxyXG4gICAgICAgIC8vICBTbyB5b3UgY2FuIGNoYWluIGdyYXBoaWNzIGNhbGxzXHJcbiAgICAgICAgcmV0dXJuIGdyYXBoaWNzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnZlcnRzIHRoZSBjdXJ2ZSBpbnRvIGEgSlNPTiBjb21wYXRpYmxlIG9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuUXVhZHJhdGljQmV6aWVyI3RvSlNPTlxyXG4gICAgICogQHNpbmNlIDMuMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLlR5cGVzLkN1cnZlcy5KU09OQ3VydmV9IFRoZSBKU09OIG9iamVjdCBjb250YWluaW5nIHRoaXMgY3VydmUgZGF0YS5cclxuICAgICAqL1xyXG4gICAgdG9KU09OOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcclxuICAgICAgICAgICAgcG9pbnRzOiBbXHJcbiAgICAgICAgICAgICAgICB0aGlzLnAwLngsIHRoaXMucDAueSxcclxuICAgICAgICAgICAgICAgIHRoaXMucDEueCwgdGhpcy5wMS55LFxyXG4gICAgICAgICAgICAgICAgdGhpcy5wMi54LCB0aGlzLnAyLnlcclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgY3VydmUgZnJvbSBhIEpTT04gb2JqZWN0LCBlLiBnLiBjcmVhdGVkIGJ5IGB0b0pTT05gLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkN1cnZlcy5RdWFkcmF0aWNCZXppZXIuZnJvbUpTT05cclxuICogQHNpbmNlIDMuMi4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkN1cnZlcy5KU09OQ3VydmV9IGRhdGEgLSBUaGUgSlNPTiBvYmplY3QgY29udGFpbmluZyB0aGlzIGN1cnZlIGRhdGEuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5DdXJ2ZXMuUXVhZHJhdGljQmV6aWVyfSBUaGUgY3JlYXRlZCBjdXJ2ZSBpbnN0YW5jZS5cclxuICovXHJcblF1YWRyYXRpY0Jlemllci5mcm9tSlNPTiA9IGZ1bmN0aW9uIChkYXRhKVxyXG57XHJcbiAgICB2YXIgcG9pbnRzID0gZGF0YS5wb2ludHM7XHJcblxyXG4gICAgdmFyIHAwID0gbmV3IFZlY3RvcjIocG9pbnRzWzBdLCBwb2ludHNbMV0pO1xyXG4gICAgdmFyIHAxID0gbmV3IFZlY3RvcjIocG9pbnRzWzJdLCBwb2ludHNbM10pO1xyXG4gICAgdmFyIHAyID0gbmV3IFZlY3RvcjIocG9pbnRzWzRdLCBwb2ludHNbNV0pO1xyXG5cclxuICAgIHJldHVybiBuZXcgUXVhZHJhdGljQmV6aWVyKHAwLCBwMSwgcDIpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBRdWFkcmF0aWNCZXppZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLy8gIEJhc2VkIG9uIHRoZSB0aHJlZS5qcyBDdXJ2ZSBjbGFzc2VzIGNyZWF0ZWQgYnkgW3p6ODVdKGh0dHA6Ly93d3cubGFiNGdhbWVzLm5ldC96ejg1L2Jsb2cpXHJcblxyXG52YXIgQ2F0bXVsbFJvbSA9IHJlcXVpcmUoJy4uL21hdGgvQ2F0bXVsbFJvbScpO1xyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi91dGlscy9DbGFzcycpO1xyXG52YXIgQ3VydmUgPSByZXF1aXJlKCcuL0N1cnZlJyk7XHJcbnZhciBWZWN0b3IyID0gcmVxdWlyZSgnLi4vbWF0aC9WZWN0b3IyJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBDcmVhdGUgYSBzbW9vdGggMmQgc3BsaW5lIGN1cnZlIGZyb20gYSBzZXJpZXMgb2YgcG9pbnRzLlxyXG4gKlxyXG4gKiBAY2xhc3MgU3BsaW5lXHJcbiAqIEBleHRlbmRzIFBoYXNlci5DdXJ2ZXMuQ3VydmVcclxuICogQG1lbWJlcm9mIFBoYXNlci5DdXJ2ZXNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0geyhQaGFzZXIuTWF0aC5WZWN0b3IyW118bnVtYmVyW118bnVtYmVyW11bXSl9IFtwb2ludHNdIC0gVGhlIHBvaW50cyB0aGF0IGNvbmZpZ3VyZSB0aGUgY3VydmUuXHJcbiAqL1xyXG52YXIgU3BsaW5lQ3VydmUgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IEN1cnZlLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gU3BsaW5lQ3VydmUgKHBvaW50cylcclxuICAgIHtcclxuICAgICAgICBpZiAocG9pbnRzID09PSB1bmRlZmluZWQpIHsgcG9pbnRzID0gW107IH1cclxuXHJcbiAgICAgICAgQ3VydmUuY2FsbCh0aGlzLCAnU3BsaW5lQ3VydmUnKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIFZlY3RvcjIgcG9pbnRzIHRoYXQgY29uZmlndXJlIHRoZSBjdXJ2ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuU3BsaW5lI3BvaW50c1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuTWF0aC5WZWN0b3IyW119XHJcbiAgICAgICAgICogQGRlZmF1bHQgW11cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBvaW50cyA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLmFkZFBvaW50cyhwb2ludHMpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhIGxpc3Qgb2YgcG9pbnRzIHRvIHRoZSBjdXJyZW50IGxpc3Qgb2YgVmVjdG9yMiBwb2ludHMgb2YgdGhlIGN1cnZlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5TcGxpbmUjYWRkUG9pbnRzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuTWF0aC5WZWN0b3IyW118bnVtYmVyW118bnVtYmVyW11bXSl9IHBvaW50cyAtIFRoZSBwb2ludHMgdGhhdCBjb25maWd1cmUgdGhlIGN1cnZlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgY3VydmUgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBhZGRQb2ludHM6IGZ1bmN0aW9uIChwb2ludHMpXHJcbiAgICB7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgcCA9IG5ldyBWZWN0b3IyKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHBvaW50c1tpXSA9PT0gJ251bWJlcicpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHAueCA9IHBvaW50c1tpXTtcclxuICAgICAgICAgICAgICAgIHAueSA9IHBvaW50c1tpICsgMV07XHJcbiAgICAgICAgICAgICAgICBpKys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwb2ludHNbaV0pKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAvLyAgQW4gYXJyYXkgb2YgYXJyYXlzP1xyXG4gICAgICAgICAgICAgICAgcC54ID0gcG9pbnRzW2ldWzBdO1xyXG4gICAgICAgICAgICAgICAgcC55ID0gcG9pbnRzW2ldWzFdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcC54ID0gcG9pbnRzW2ldLng7XHJcbiAgICAgICAgICAgICAgICBwLnkgPSBwb2ludHNbaV0ueTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5wb2ludHMucHVzaChwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhIHBvaW50IHRvIHRoZSBjdXJyZW50IGxpc3Qgb2YgVmVjdG9yMiBwb2ludHMgb2YgdGhlIGN1cnZlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5TcGxpbmUjYWRkUG9pbnRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGlzIGN1cnZlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB5IGNvb3JkaW5hdGUgb2YgdGhpcyBjdXJ2ZVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFRoZSBuZXcgVmVjdG9yMiBhZGRlZCB0byB0aGUgY3VydmVcclxuICAgICAqL1xyXG4gICAgYWRkUG9pbnQ6IGZ1bmN0aW9uICh4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIHZhciB2ZWMgPSBuZXcgVmVjdG9yMih4LCB5KTtcclxuXHJcbiAgICAgICAgdGhpcy5wb2ludHMucHVzaCh2ZWMpO1xyXG5cclxuICAgICAgICByZXR1cm4gdmVjO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHN0YXJ0aW5nIHBvaW50IG9uIHRoZSBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuU3BsaW5lI2dldFN0YXJ0UG9pbnRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBPIC0gW291dCwkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLk1hdGguVmVjdG9yMn0gW291dF0gLSBBIFZlY3RvcjIgb2JqZWN0IHRvIHN0b3JlIHRoZSByZXN1bHQgaW4uIElmIG5vdCBnaXZlbiB3aWxsIGJlIGNyZWF0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLk1hdGguVmVjdG9yMn0gVGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBwb2ludCBvbiB0aGUgY3VydmUuIElmIGFuIGBvdXRgIG9iamVjdCB3YXMgZ2l2ZW4gdGhpcyB3aWxsIGJlIHJldHVybmVkLlxyXG4gICAgICovXHJcbiAgICBnZXRTdGFydFBvaW50OiBmdW5jdGlvbiAob3V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZCkgeyBvdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIHJldHVybiBvdXQuY29weSh0aGlzLnBvaW50c1swXSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSByZXNvbHV0aW9uIG9mIHRoZSBjdXJ2ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuU3BsaW5lI2dldFJlc29sdXRpb25cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkaXZpc2lvbnMgLSBPcHRpb25hbCBkaXZpc2lvbnMgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgY3VydmUgcmVzb2x1dGlvbi5cclxuICAgICAqL1xyXG4gICAgZ2V0UmVzb2x1dGlvbjogZnVuY3Rpb24gKGRpdmlzaW9ucylcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gZGl2aXNpb25zICogdGhpcy5wb2ludHMubGVuZ3RoO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBwb2ludCBhdCByZWxhdGl2ZSBwb3NpdGlvbiBpbiBjdXJ2ZSBhY2NvcmRpbmcgdG8gbGVuZ3RoLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5TcGxpbmUjZ2V0UG9pbnRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBPIC0gW291dCwkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0IC0gVGhlIHBvc2l0aW9uIGFsb25nIHRoZSBjdXJ2ZSB0byByZXR1cm4uIFdoZXJlIDAgaXMgdGhlIHN0YXJ0IGFuZCAxIGlzIHRoZSBlbmQuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFtvdXRdIC0gQSBWZWN0b3IyIG9iamVjdCB0byBzdG9yZSB0aGUgcmVzdWx0IGluLiBJZiBub3QgZ2l2ZW4gd2lsbCBiZSBjcmVhdGVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFRoZSBjb29yZGluYXRlcyBvZiB0aGUgcG9pbnQgb24gdGhlIGN1cnZlLiBJZiBhbiBgb3V0YCBvYmplY3Qgd2FzIGdpdmVuIHRoaXMgd2lsbCBiZSByZXR1cm5lZC5cclxuICAgICAqL1xyXG4gICAgZ2V0UG9pbnQ6IGZ1bmN0aW9uICh0LCBvdXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG91dCA9PT0gdW5kZWZpbmVkKSB7IG91dCA9IG5ldyBWZWN0b3IyKCk7IH1cclxuXHJcbiAgICAgICAgdmFyIHBvaW50cyA9IHRoaXMucG9pbnRzO1xyXG5cclxuICAgICAgICB2YXIgcG9pbnQgPSAocG9pbnRzLmxlbmd0aCAtIDEpICogdDtcclxuXHJcbiAgICAgICAgdmFyIGludFBvaW50ID0gTWF0aC5mbG9vcihwb2ludCk7XHJcblxyXG4gICAgICAgIHZhciB3ZWlnaHQgPSBwb2ludCAtIGludFBvaW50O1xyXG5cclxuICAgICAgICB2YXIgcDAgPSBwb2ludHNbKGludFBvaW50ID09PSAwKSA/IGludFBvaW50IDogaW50UG9pbnQgLSAxXTtcclxuICAgICAgICB2YXIgcDEgPSBwb2ludHNbaW50UG9pbnRdO1xyXG4gICAgICAgIHZhciBwMiA9IHBvaW50c1soaW50UG9pbnQgPiBwb2ludHMubGVuZ3RoIC0gMikgPyBwb2ludHMubGVuZ3RoIC0gMSA6IGludFBvaW50ICsgMV07XHJcbiAgICAgICAgdmFyIHAzID0gcG9pbnRzWyhpbnRQb2ludCA+IHBvaW50cy5sZW5ndGggLSAzKSA/IHBvaW50cy5sZW5ndGggLSAxIDogaW50UG9pbnQgKyAyXTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG91dC5zZXQoQ2F0bXVsbFJvbSh3ZWlnaHQsIHAwLngsIHAxLngsIHAyLngsIHAzLngpLCBDYXRtdWxsUm9tKHdlaWdodCwgcDAueSwgcDEueSwgcDIueSwgcDMueSkpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEV4cG9ydHMgYSBKU09OIG9iamVjdCBjb250YWluaW5nIHRoaXMgY3VydmUgZGF0YS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuU3BsaW5lI3RvSlNPTlxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLlR5cGVzLkN1cnZlcy5KU09OQ3VydmV9IFRoZSBKU09OIG9iamVjdCBjb250YWluaW5nIHRoaXMgY3VydmUgZGF0YS5cclxuICAgICAqL1xyXG4gICAgdG9KU09OOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBwb2ludHMgPSBbXTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBvaW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKHRoaXMucG9pbnRzW2ldLngpO1xyXG4gICAgICAgICAgICBwb2ludHMucHVzaCh0aGlzLnBvaW50c1tpXS55KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcclxuICAgICAgICAgICAgcG9pbnRzOiBwb2ludHNcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG4vKipcclxuICogSW1wb3J0cyBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgdGhpcyBjdXJ2ZSBkYXRhLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkN1cnZlcy5TcGxpbmUuZnJvbUpTT05cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkN1cnZlcy5KU09OQ3VydmV9IGRhdGEgLSBUaGUgSlNPTiBvYmplY3QgY29udGFpbmluZyB0aGlzIGN1cnZlIGRhdGEuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5DdXJ2ZXMuU3BsaW5lfSBUaGUgc3BsaW5lIGN1cnZlIGNyZWF0ZWQuXHJcbiAqL1xyXG5TcGxpbmVDdXJ2ZS5mcm9tSlNPTiA9IGZ1bmN0aW9uIChkYXRhKVxyXG57XHJcbiAgICByZXR1cm4gbmV3IFNwbGluZUN1cnZlKGRhdGEucG9pbnRzKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU3BsaW5lQ3VydmU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkN1cnZlc1xyXG4gKi9cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG4gICAgUGF0aDogcmVxdWlyZSgnLi9wYXRoL1BhdGgnKSxcclxuXHJcbiAgICBDdWJpY0JlemllcjogcmVxdWlyZSgnLi9DdWJpY0JlemllckN1cnZlJyksXHJcbiAgICBDdXJ2ZTogcmVxdWlyZSgnLi9DdXJ2ZScpLFxyXG4gICAgRWxsaXBzZTogcmVxdWlyZSgnLi9FbGxpcHNlQ3VydmUnKSxcclxuICAgIExpbmU6IHJlcXVpcmUoJy4vTGluZUN1cnZlJyksXHJcbiAgICBRdWFkcmF0aWNCZXppZXI6IHJlcXVpcmUoJy4vUXVhZHJhdGljQmV6aWVyQ3VydmUnKSxcclxuICAgIFNwbGluZTogcmVxdWlyZSgnLi9TcGxpbmVDdXJ2ZScpXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIFZlY3RvcjIgPSByZXF1aXJlKCcuLi8uLi9tYXRoL1ZlY3RvcjInKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgTW92ZVRvIEN1cnZlIGlzIGEgdmVyeSBzaW1wbGUgY3VydmUgY29uc2lzdGluZyBvZiBvbmx5IGEgc2luZ2xlIHBvaW50LiBJdHMgaW50ZW5kZWQgdXNlIGlzIHRvIG1vdmUgdGhlIGVuZGluZyBwb2ludCBpbiBhIFBhdGguXHJcbiAqXHJcbiAqIEBjbGFzcyBNb3ZlVG9cclxuICogQG1lbWJlcm9mIFBoYXNlci5DdXJ2ZXNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3hdIC0gYHhgIHBpeGVsIGNvb3JkaW5hdGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeV0gLSBgeWAgcGl4ZWwgY29vcmRpbmF0ZS5cclxuICovXHJcbnZhciBNb3ZlVG8gPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gTW92ZVRvICh4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIC8vICBTa2lwIGxlbmd0aCBjYWxjcyBpbiBwYXRoc1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBEZW5vdGVzIHRoYXQgdGhpcyBDdXJ2ZSBkb2VzIG5vdCBpbmZsdWVuY2UgdGhlIGJvdW5kcywgcG9pbnRzLCBhbmQgZHJhd2luZyBvZiBpdHMgcGFyZW50IFBhdGguIE11c3QgYmUgYGZhbHNlYCBvciBzb21lIG1ldGhvZHMgaW4gdGhlIHBhcmVudCBQYXRoIHdpbGwgdGhyb3cgZXJyb3JzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5Nb3ZlVG8jYWN0aXZlXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbG9uZSBwb2ludCB3aGljaCB0aGlzIGN1cnZlIGNvbnNpc3RzIG9mLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5Nb3ZlVG8jcDBcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguVmVjdG9yMn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnAwID0gbmV3IFZlY3RvcjIoeCwgeSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHBvaW50IGF0IHJlbGF0aXZlIHBvc2l0aW9uIGluIGN1cnZlIGFjY29yZGluZyB0byBsZW5ndGguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLk1vdmVUbyNnZXRQb2ludFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHQgLSBUaGUgcG9zaXRpb24gYWxvbmcgdGhlIGN1cnZlIHRvIHJldHVybi4gV2hlcmUgMCBpcyB0aGUgc3RhcnQgYW5kIDEgaXMgdGhlIGVuZC5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLk1hdGguVmVjdG9yMn0gW291dF0gLSBBIFZlY3RvcjIgb2JqZWN0IHRvIHN0b3JlIHRoZSByZXN1bHQgaW4uIElmIG5vdCBnaXZlbiB3aWxsIGJlIGNyZWF0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLk1hdGguVmVjdG9yMn0gVGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBwb2ludCBvbiB0aGUgY3VydmUuIElmIGFuIGBvdXRgIG9iamVjdCB3YXMgZ2l2ZW4gdGhpcyB3aWxsIGJlIHJldHVybmVkLlxyXG4gICAgICovXHJcbiAgICBnZXRQb2ludDogZnVuY3Rpb24gKHQsIG91dClcclxuICAgIHtcclxuICAgICAgICBpZiAob3V0ID09PSB1bmRlZmluZWQpIHsgb3V0ID0gbmV3IFZlY3RvcjIoKTsgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3V0LmNvcHkodGhpcy5wMCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBwb2ludCBhdCBnaXZlbiBwb3NpdGlvbiBpbiB0aGUgY3VydmUuIFRoaXMgd2lsbCBhbHdheXMgcmV0dXJuIHRoaXMgY3VydmUncyBvbmx5IHBvaW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5Nb3ZlVG8jZ2V0UG9pbnRBdFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHUgLSBUaGUgcG9zaXRpb24gaW4gdGhlIHBhdGggdG8gcmV0cmlldmUsIGJldHdlZW4gMCBhbmQgMS4gTm90IHVzZWQuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFtvdXRdIC0gQW4gb3B0aW9uYWwgdmVjdG9yIGluIHdoaWNoIHRvIHN0b3JlIHRoZSBwb2ludC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBUaGUgbW9kaWZpZWQgYG91dGAgdmVjdG9yLCBvciBhIG5ldyBgVmVjdG9yMmAgaWYgbm9uZSB3YXMgcHJvdmlkZWQuXHJcbiAgICAgKi9cclxuICAgIGdldFBvaW50QXQ6IGZ1bmN0aW9uICh1LCBvdXQpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UG9pbnQodSwgb3V0KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSByZXNvbHV0aW9uIG9mIHRoaXMgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLk1vdmVUbyNnZXRSZXNvbHV0aW9uXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSByZXNvbHV0aW9uIG9mIHRoaXMgY3VydmUuIEZvciBhIE1vdmVUbyB0aGUgdmFsdWUgaXMgYWx3YXlzIDEuXHJcbiAgICAgKi9cclxuICAgIGdldFJlc29sdXRpb246IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIDE7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgbGVuZ3RoIG9mIHRoaXMgY3VydmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLk1vdmVUbyNnZXRMZW5ndGhcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge251bWJlcn0gVGhlIGxlbmd0aCBvZiB0aGlzIGN1cnZlLiBGb3IgYSBNb3ZlVG8gdGhlIHZhbHVlIGlzIGFsd2F5cyAwLlxyXG4gICAgICovXHJcbiAgICBnZXRMZW5ndGg6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udmVydHMgdGhpcyBjdXJ2ZSBpbnRvIGEgSlNPTi1zZXJpYWxpemFibGUgb2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5Nb3ZlVG8jdG9KU09OXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuVHlwZXMuQ3VydmVzLkpTT05DdXJ2ZX0gQSBwcmltaXRpdmUgb2JqZWN0IHdpdGggdGhlIGN1cnZlJ3MgdHlwZSBhbmQgb25seSBwb2ludC5cclxuICAgICAqL1xyXG4gICAgdG9KU09OOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHR5cGU6ICdNb3ZlVG8nLFxyXG4gICAgICAgICAgICBwb2ludHM6IFtcclxuICAgICAgICAgICAgICAgIHRoaXMucDAueCwgdGhpcy5wMC55XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IE1vdmVUbztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vLyAgQmFzZWQgb24gdGhlIHRocmVlLmpzIEN1cnZlIGNsYXNzZXMgY3JlYXRlZCBieSBbeno4NV0oaHR0cDovL3d3dy5sYWI0Z2FtZXMubmV0L3p6ODUvYmxvZylcclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBDdWJpY0JlemllckN1cnZlID0gcmVxdWlyZSgnLi4vQ3ViaWNCZXppZXJDdXJ2ZScpO1xyXG52YXIgRWxsaXBzZUN1cnZlID0gcmVxdWlyZSgnLi4vRWxsaXBzZUN1cnZlJyk7XHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uLy4uL2dhbWVvYmplY3RzL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcbnZhciBMaW5lQ3VydmUgPSByZXF1aXJlKCcuLi9MaW5lQ3VydmUnKTtcclxudmFyIE1vdmVQYXRoVG8gPSByZXF1aXJlKCcuL01vdmVUbycpO1xyXG52YXIgUXVhZHJhdGljQmV6aWVyQ3VydmUgPSByZXF1aXJlKCcuLi9RdWFkcmF0aWNCZXppZXJDdXJ2ZScpO1xyXG52YXIgUmVjdGFuZ2xlID0gcmVxdWlyZSgnLi4vLi4vZ2VvbS9yZWN0YW5nbGUvUmVjdGFuZ2xlJyk7XHJcbnZhciBTcGxpbmVDdXJ2ZSA9IHJlcXVpcmUoJy4uL1NwbGluZUN1cnZlJyk7XHJcbnZhciBWZWN0b3IyID0gcmVxdWlyZSgnLi4vLi4vbWF0aC9WZWN0b3IyJyk7XHJcbnZhciBNQVRIX0NPTlNUID0gcmVxdWlyZSgnLi4vLi4vbWF0aC9jb25zdCcpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBQYXRoIGNvbWJpbmVzIG11bHRpcGxlIEN1cnZlcyBpbnRvIG9uZSBjb250aW51b3VzIGNvbXBvdW5kIGN1cnZlLlxyXG4gKiBJdCBkb2VzIG5vdCBtYXR0ZXIgaG93IG1hbnkgQ3VydmVzIGFyZSBpbiB0aGUgUGF0aCBvciB3aGF0IHR5cGUgdGhleSBhcmUuXHJcbiAqXHJcbiAqIEEgQ3VydmUgaW4gYSBQYXRoIGRvZXMgbm90IGhhdmUgdG8gc3RhcnQgd2hlcmUgdGhlIHByZXZpb3VzIEN1cnZlIGVuZHMgLSB0aGF0IGlzIHRvIHNheSwgYSBQYXRoIGRvZXMgbm90XHJcbiAqIGhhdmUgdG8gYmUgYW4gdW5pbnRlcnJ1cHRlZCBjdXJ2ZS4gT25seSB0aGUgb3JkZXIgb2YgdGhlIEN1cnZlcyBpbmZsdWVuY2VzIHRoZSBhY3R1YWwgcG9pbnRzIG9uIHRoZSBQYXRoLlxyXG4gKlxyXG4gKiBAY2xhc3MgUGF0aFxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkN1cnZlc1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeD0wXSAtIFRoZSBYIGNvb3JkaW5hdGUgb2YgdGhlIFBhdGgncyBzdGFydGluZyBwb2ludCBvciBhIHtAbGluayBQaGFzZXIuVHlwZXMuQ3VydmVzLkpTT05QYXRofS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt5PTBdIC0gVGhlIFkgY29vcmRpbmF0ZSBvZiB0aGUgUGF0aCdzIHN0YXJ0aW5nIHBvaW50LlxyXG4gKi9cclxudmFyIFBhdGggPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gUGF0aCAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7IHggPSAwOyB9XHJcbiAgICAgICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgeyB5ID0gMDsgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbmFtZSBvZiB0aGlzIFBhdGguXHJcbiAgICAgICAgICogRW1wdHkgYnkgZGVmYXVsdCBhbmQgbmV2ZXIgcG9wdWxhdGVkIGJ5IFBoYXNlciwgdGhpcyBpcyBsZWZ0IGZvciBkZXZlbG9wZXJzIHRvIHVzZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuUGF0aCNuYW1lXHJcbiAgICAgICAgICogQHR5cGUge3N0cmluZ31cclxuICAgICAgICAgKiBAZGVmYXVsdCAnJ1xyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubmFtZSA9ICcnO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbGlzdCBvZiBDdXJ2ZXMgd2hpY2ggbWFrZSB1cCB0aGlzIFBhdGguXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ3VydmVzLlBhdGgjY3VydmVzXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5DdXJ2ZXMuQ3VydmVbXX1cclxuICAgICAgICAgKiBAZGVmYXVsdCBbXVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY3VydmVzID0gW107XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjYWNoZWQgbGVuZ3RoIG9mIGVhY2ggQ3VydmUgaW4gdGhlIFBhdGguXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBVc2VkIGludGVybmFsbHkgYnkge0BsaW5rICNnZXRDdXJ2ZUxlbmd0aHN9LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5QYXRoI2NhY2hlTGVuZ3Roc1xyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJbXX1cclxuICAgICAgICAgKiBAZGVmYXVsdCBbXVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY2FjaGVMZW5ndGhzID0gW107XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEF1dG9tYXRpY2FsbHkgY2xvc2VzIHRoZSBwYXRoLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5QYXRoI2F1dG9DbG9zZVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5hdXRvQ2xvc2UgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSBQYXRoLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogVGhpcyBpcyBub3QgbmVjZXNzYXJpbHkgZXF1aXZhbGVudCB0byB0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIGZpcnN0IEN1cnZlIGluIHRoZSBQYXRoLiBJbiBhbiBlbXB0eSBQYXRoLCBpdCdzIGFsc28gdHJlYXRlZCBhcyB0aGUgZW5kaW5nIHBvaW50LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkN1cnZlcy5QYXRoI3N0YXJ0UG9pbnRcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguVmVjdG9yMn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnN0YXJ0UG9pbnQgPSBuZXcgVmVjdG9yMigpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHRlbXBvcmFyeSB2ZWN0b3IgdXNlZCB0byBhdm9pZCBvYmplY3QgY3JlYXRpb24gd2hlbiBhZGRpbmcgYSBDdXJ2ZSB0byB0aGUgUGF0aC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5DdXJ2ZXMuUGF0aCNfdG1wVmVjMkFcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguVmVjdG9yMn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3RtcFZlYzJBID0gbmV3IFZlY3RvcjIoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSB0ZW1wb3JhcnkgdmVjdG9yIHVzZWQgdG8gYXZvaWQgb2JqZWN0IGNyZWF0aW9uIHdoZW4gYWRkaW5nIGEgQ3VydmUgdG8gdGhlIFBhdGguXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuQ3VydmVzLlBhdGgjX3RtcFZlYzJCXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl90bXBWZWMyQiA9IG5ldyBWZWN0b3IyKCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgeCA9PT0gJ29iamVjdCcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmZyb21KU09OKHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXJ0UG9pbnQuc2V0KHgsIHkpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcHBlbmRzIGEgQ3VydmUgdG8gdGhlIGVuZCBvZiB0aGUgUGF0aC5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgQ3VydmUgZG9lcyBub3QgaGF2ZSB0byBzdGFydCB3aGVyZSB0aGUgUGF0aCBlbmRzIG9yLCBmb3IgYW4gZW1wdHkgUGF0aCwgYXQgaXRzIGRlZmluZWQgc3RhcnRpbmcgcG9pbnQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLlBhdGgjYWRkXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5DdXJ2ZXMuQ3VydmV9IGN1cnZlIC0gVGhlIEN1cnZlIHRvIGFwcGVuZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhdGggb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBhZGQ6IGZ1bmN0aW9uIChjdXJ2ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmN1cnZlcy5wdXNoKGN1cnZlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIGNpcmN1bGFyIEVsbGlwc2UgQ3VydmUgcG9zaXRpb25lZCBhdCB0aGUgZW5kIG9mIHRoZSBQYXRoLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5QYXRoI2NpcmNsZVRvXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmFkaXVzIC0gVGhlIHJhZGl1cyBvZiB0aGUgY2lyY2xlLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbY2xvY2t3aXNlPWZhbHNlXSAtIGB0cnVlYCB0byBjcmVhdGUgYSBjbG9ja3dpc2UgY2lyY2xlIGFzIG9wcG9zZWQgdG8gYSBjb3VudGVyLWNsb2Nrd2lzZSBjaXJjbGUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3JvdGF0aW9uPTBdIC0gVGhlIHJvdGF0aW9uIG9mIHRoZSBjaXJjbGUgaW4gZGVncmVlcy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhdGggb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBjaXJjbGVUbzogZnVuY3Rpb24gKHJhZGl1cywgY2xvY2t3aXNlLCByb3RhdGlvbilcclxuICAgIHtcclxuICAgICAgICBpZiAoY2xvY2t3aXNlID09PSB1bmRlZmluZWQpIHsgY2xvY2t3aXNlID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxsaXBzZVRvKHJhZGl1cywgcmFkaXVzLCAwLCAzNjAsIGNsb2Nrd2lzZSwgcm90YXRpb24pO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVuc3VyZXMgdGhhdCB0aGUgUGF0aCBpcyBjbG9zZWQuXHJcbiAgICAgKlxyXG4gICAgICogQSBjbG9zZWQgUGF0aCBzdGFydHMgYW5kIGVuZHMgYXQgdGhlIHNhbWUgcG9pbnQuIElmIHRoZSBQYXRoIGlzIG5vdCBjbG9zZWQsIGEgc3RyYWlnaHQgTGluZSBDdXJ2ZSB3aWxsIGJlIGNyZWF0ZWQgZnJvbSB0aGUgZW5kaW5nIHBvaW50IGRpcmVjdGx5IHRvIHRoZSBzdGFydGluZyBwb2ludC4gRHVyaW5nIHRoZSBjaGVjaywgdGhlIGFjdHVhbCBzdGFydGluZyBwb2ludCBvZiB0aGUgUGF0aCwgaS5lLiB0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIGZpcnN0IEN1cnZlLCB3aWxsIGJlIHVzZWQgYXMgb3Bwb3NlZCB0byB0aGUgUGF0aCdzIGRlZmluZWQge0BsaW5rIHN0YXJ0UG9pbnR9LCB3aGljaCBjb3VsZCBkaWZmZXIuXHJcbiAgICAgKlxyXG4gICAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCBvbiBhbiBlbXB0eSBQYXRoIHdpbGwgcmVzdWx0IGluIGFuIGVycm9yLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5QYXRoI2Nsb3NlUGF0aFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXRoIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgY2xvc2VQYXRoOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIC8vIEFkZCBhIGxpbmUgY3VydmUgaWYgc3RhcnQgYW5kIGVuZCBvZiBsaW5lcyBhcmUgbm90IGNvbm5lY3RlZFxyXG4gICAgICAgIHZhciBzdGFydFBvaW50ID0gdGhpcy5jdXJ2ZXNbMF0uZ2V0UG9pbnQoMCk7XHJcbiAgICAgICAgdmFyIGVuZFBvaW50ID0gdGhpcy5jdXJ2ZXNbdGhpcy5jdXJ2ZXMubGVuZ3RoIC0gMV0uZ2V0UG9pbnQoMSk7XHJcblxyXG4gICAgICAgIGlmICghc3RhcnRQb2ludC5lcXVhbHMoZW5kUG9pbnQpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIFRoaXMgd2lsbCBjb3B5IGEgcmVmZXJlbmNlIHRvIHRoZSB2ZWN0b3JzLCB3aGljaCBwcm9iYWJseSBpc24ndCBzZW5zaWJsZVxyXG4gICAgICAgICAgICB0aGlzLmN1cnZlcy5wdXNoKG5ldyBMaW5lQ3VydmUoZW5kUG9pbnQsIHN0YXJ0UG9pbnQpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYSBjdWJpYyBiZXppZXIgY3VydmUgc3RhcnRpbmcgYXQgdGhlIHByZXZpb3VzIGVuZCBwb2ludCBhbmQgZW5kaW5nIGF0IHAzLCB1c2luZyBwMSBhbmQgcDIgYXMgY29udHJvbCBwb2ludHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLlBhdGgjY3ViaWNCZXppZXJUb1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsobnVtYmVyfFBoYXNlci5NYXRoLlZlY3RvcjIpfSB4IC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgZW5kIHBvaW50LiBPciwgaWYgYSBWZWN0b3IyLCB0aGUgcDEgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0geyhudW1iZXJ8UGhhc2VyLk1hdGguVmVjdG9yMil9IHkgLSBUaGUgeSBjb29yZGluYXRlIG9mIHRoZSBlbmQgcG9pbnQuIE9yLCBpZiBhIFZlY3RvcjIsIHRoZSBwMiB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7KG51bWJlcnxQaGFzZXIuTWF0aC5WZWN0b3IyKX0gY29udHJvbDFYIC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgZmlyc3QgY29udHJvbCBwb2ludC4gT3IsIGlmIGEgVmVjdG9yMiwgdGhlIHAzIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtjb250cm9sMVldIC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgZmlyc3QgY29udHJvbCBwb2ludC4gTm90IHVzZWQgaWYgVmVjdG9yMnMgYXJlIHByb3ZpZGVkIGFzIHRoZSBmaXJzdCAzIGFyZ3VtZW50cy5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbY29udHJvbDJYXSAtIFRoZSB4IGNvb3JkaW5hdGUgb2YgdGhlIHNlY29uZCBjb250cm9sIHBvaW50LiBOb3QgdXNlZCBpZiBWZWN0b3IycyBhcmUgcHJvdmlkZWQgYXMgdGhlIGZpcnN0IDMgYXJndW1lbnRzLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtjb250cm9sMlldIC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgc2Vjb25kIGNvbnRyb2wgcG9pbnQuIE5vdCB1c2VkIGlmIFZlY3RvcjJzIGFyZSBwcm92aWRlZCBhcyB0aGUgZmlyc3QgMyBhcmd1bWVudHMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXRoIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgY3ViaWNCZXppZXJUbzogZnVuY3Rpb24gKHgsIHksIGNvbnRyb2wxWCwgY29udHJvbDFZLCBjb250cm9sMlgsIGNvbnRyb2wyWSlcclxuICAgIHtcclxuICAgICAgICB2YXIgcDAgPSB0aGlzLmdldEVuZFBvaW50KCk7XHJcbiAgICAgICAgdmFyIHAxO1xyXG4gICAgICAgIHZhciBwMjtcclxuICAgICAgICB2YXIgcDM7XHJcblxyXG4gICAgICAgIC8vICBBc3N1bWUgdGhleSdyZSBhbGwgVmVjdG9yMnNcclxuICAgICAgICBpZiAoeCBpbnN0YW5jZW9mIFZlY3RvcjIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwMSA9IHg7XHJcbiAgICAgICAgICAgIHAyID0geTtcclxuICAgICAgICAgICAgcDMgPSBjb250cm9sMVg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHAxID0gbmV3IFZlY3RvcjIoY29udHJvbDFYLCBjb250cm9sMVkpO1xyXG4gICAgICAgICAgICBwMiA9IG5ldyBWZWN0b3IyKGNvbnRyb2wyWCwgY29udHJvbDJZKTtcclxuICAgICAgICAgICAgcDMgPSBuZXcgVmVjdG9yMih4LCB5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmFkZChuZXcgQ3ViaWNCZXppZXJDdXJ2ZShwMCwgcDEsIHAyLCBwMykpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyAgQ3JlYXRlcyBhIHF1YWRyYXRpYyBiZXppZXIgY3VydmUgc3RhcnRpbmcgYXQgdGhlIHByZXZpb3VzIGVuZCBwb2ludCBhbmQgZW5kaW5nIGF0IHAyLCB1c2luZyBwMSBhcyBhIGNvbnRyb2wgcG9pbnRcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYSBRdWFkcmF0aWMgQmV6aWVyIEN1cnZlIHN0YXJ0aW5nIGF0IHRoZSBlbmRpbmcgcG9pbnQgb2YgdGhlIFBhdGguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLlBhdGgjcXVhZHJhdGljQmV6aWVyVG9cclxuICAgICAqIEBzaW5jZSAzLjIuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KG51bWJlcnxQaGFzZXIuTWF0aC5WZWN0b3IyW10pfSB4IC0gVGhlIFggY29vcmRpbmF0ZSBvZiB0aGUgc2Vjb25kIGNvbnRyb2wgcG9pbnQgb3IsIGlmIGl0J3MgYSBgVmVjdG9yMmAsIHRoZSBmaXJzdCBjb250cm9sIHBvaW50LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5XSAtIFRoZSBZIGNvb3JkaW5hdGUgb2YgdGhlIHNlY29uZCBjb250cm9sIHBvaW50IG9yLCBpZiBgeGAgaXMgYSBgVmVjdG9yMmAsIHRoZSBzZWNvbmQgY29udHJvbCBwb2ludC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbY29udHJvbFhdIC0gSWYgYHhgIGlzIG5vdCBhIGBWZWN0b3IyYCwgdGhlIFggY29vcmRpbmF0ZSBvZiB0aGUgZmlyc3QgY29udHJvbCBwb2ludC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbY29udHJvbFldIC0gSWYgYHhgIGlzIG5vdCBhIGBWZWN0b3IyYCwgdGhlIFkgY29vcmRpbmF0ZSBvZiB0aGUgZmlyc3QgY29udHJvbCBwb2ludC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhdGggb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBxdWFkcmF0aWNCZXppZXJUbzogZnVuY3Rpb24gKHgsIHksIGNvbnRyb2xYLCBjb250cm9sWSlcclxuICAgIHtcclxuICAgICAgICB2YXIgcDAgPSB0aGlzLmdldEVuZFBvaW50KCk7XHJcbiAgICAgICAgdmFyIHAxO1xyXG4gICAgICAgIHZhciBwMjtcclxuXHJcbiAgICAgICAgLy8gIEFzc3VtZSB0aGV5J3JlIGFsbCBWZWN0b3Iyc1xyXG4gICAgICAgIGlmICh4IGluc3RhbmNlb2YgVmVjdG9yMilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHAxID0geDtcclxuICAgICAgICAgICAgcDIgPSB5O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwMSA9IG5ldyBWZWN0b3IyKGNvbnRyb2xYLCBjb250cm9sWSk7XHJcbiAgICAgICAgICAgIHAyID0gbmV3IFZlY3RvcjIoeCwgeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5hZGQobmV3IFF1YWRyYXRpY0JlemllckN1cnZlKHAwLCBwMSwgcDIpKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEcmF3cyBhbGwgQ3VydmVzIGluIHRoZSBQYXRoIHRvIGEgR3JhcGhpY3MgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLlBhdGgjZHJhd1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljc30gRyAtIFtvdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljc30gZ3JhcGhpY3MgLSBUaGUgR3JhcGhpY3MgR2FtZSBPYmplY3QgdG8gZHJhdyB0by5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3BvaW50c1RvdGFsPTMyXSAtIFRoZSBudW1iZXIgb2YgcG9pbnRzIHRvIGRyYXcgZm9yIGVhY2ggQ3VydmUuIEhpZ2hlciBudW1iZXJzIHJlc3VsdCBpbiBhIHNtb290aGVyIGN1cnZlIGJ1dCByZXF1aXJlIG1vcmUgcHJvY2Vzc2luZy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3N9IFRoZSBHcmFwaGljcyBvYmplY3Qgd2hpY2ggd2FzIGRyYXduIHRvLlxyXG4gICAgICovXHJcbiAgICBkcmF3OiBmdW5jdGlvbiAoZ3JhcGhpY3MsIHBvaW50c1RvdGFsKVxyXG4gICAge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jdXJ2ZXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgY3VydmUgPSB0aGlzLmN1cnZlc1tpXTtcclxuXHJcbiAgICAgICAgICAgIGlmICghY3VydmUuYWN0aXZlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY3VydmUuZHJhdyhncmFwaGljcywgcG9pbnRzVG90YWwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGdyYXBoaWNzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYW4gZWxsaXBzZSBjdXJ2ZSBwb3NpdGlvbmVkIGF0IHRoZSBwcmV2aW91cyBlbmQgcG9pbnQsIHVzaW5nIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5QYXRoI2VsbGlwc2VUb1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4UmFkaXVzPTBdIC0gVGhlIGhvcml6b250YWwgcmFkaXVzIG9mIGVsbGlwc2UuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3lSYWRpdXM9MF0gLSBUaGUgdmVydGljYWwgcmFkaXVzIG9mIGVsbGlwc2UuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtzdGFydEFuZ2xlPTBdIC0gVGhlIHN0YXJ0IGFuZ2xlIG9mIHRoZSBlbGxpcHNlLCBpbiBkZWdyZWVzLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZW5kQW5nbGU9MzYwXSAtIFRoZSBlbmQgYW5nbGUgb2YgdGhlIGVsbGlwc2UsIGluIGRlZ3JlZXMuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjbG9ja3dpc2U9ZmFsc2VdIC0gV2hldGhlciB0aGUgZWxsaXBzZSBhbmdsZXMgYXJlIGdpdmVuIGFzIGNsb2Nrd2lzZSAoYHRydWVgKSBvciBjb3VudGVyLWNsb2Nrd2lzZSAoYGZhbHNlYCkuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3JvdGF0aW9uPTBdIC0gVGhlIHJvdGF0aW9uIG9mIHRoZSBlbGxpcHNlLCBpbiBkZWdyZWVzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGF0aCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGVsbGlwc2VUbzogZnVuY3Rpb24gKHhSYWRpdXMsIHlSYWRpdXMsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlLCBjbG9ja3dpc2UsIHJvdGF0aW9uKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBlbGxpcHNlID0gbmV3IEVsbGlwc2VDdXJ2ZSgwLCAwLCB4UmFkaXVzLCB5UmFkaXVzLCBzdGFydEFuZ2xlLCBlbmRBbmdsZSwgY2xvY2t3aXNlLCByb3RhdGlvbik7XHJcblxyXG4gICAgICAgIHZhciBlbmQgPSB0aGlzLmdldEVuZFBvaW50KHRoaXMuX3RtcFZlYzJBKTtcclxuXHJcbiAgICAgICAgLy8gIENhbGN1bGF0ZSB3aGVyZSB0byBjZW50ZXIgdGhlIGVsbGlwc2VcclxuICAgICAgICB2YXIgc3RhcnQgPSBlbGxpcHNlLmdldFN0YXJ0UG9pbnQodGhpcy5fdG1wVmVjMkIpO1xyXG5cclxuICAgICAgICBlbmQuc3VidHJhY3Qoc3RhcnQpO1xyXG5cclxuICAgICAgICBlbGxpcHNlLnggPSBlbmQueDtcclxuICAgICAgICBlbGxpcHNlLnkgPSBlbmQueTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkKGVsbGlwc2UpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYSBQYXRoIGZyb20gYSBQYXRoIENvbmZpZ3VyYXRpb24gb2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIFRoZSBwcm92aWRlZCBvYmplY3Qgc2hvdWxkIGJlIGEge0BsaW5rIFBoYXNlci5UeXBlcy5DdXJ2ZXMuSlNPTlBhdGh9LCBhcyByZXR1cm5lZCBieSB7QGxpbmsgI3RvSlNPTn0uIFByb3ZpZGluZyBhIG1hbGZvcm1lZCBvYmplY3QgbWF5IGNhdXNlIGVycm9ycy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuUGF0aCNmcm9tSlNPTlxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuQ3VydmVzLkpTT05QYXRofSBkYXRhIC0gVGhlIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIFBhdGggZGF0YS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhdGggb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBmcm9tSlNPTjogZnVuY3Rpb24gKGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIGRhdGEgc2hvdWxkIGJlIGFuIG9iamVjdCBtYXRjaGluZyB0aGUgUGF0aC50b0pTT04gb2JqZWN0IHN0cnVjdHVyZS5cclxuXHJcbiAgICAgICAgdGhpcy5jdXJ2ZXMgPSBbXTtcclxuICAgICAgICB0aGlzLmNhY2hlTGVuZ3RocyA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLnN0YXJ0UG9pbnQuc2V0KGRhdGEueCwgZGF0YS55KTtcclxuXHJcbiAgICAgICAgdGhpcy5hdXRvQ2xvc2UgPSBkYXRhLmF1dG9DbG9zZTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmN1cnZlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBjdXJ2ZSA9IGRhdGEuY3VydmVzW2ldO1xyXG5cclxuICAgICAgICAgICAgc3dpdGNoIChjdXJ2ZS50eXBlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdMaW5lQ3VydmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkKExpbmVDdXJ2ZS5mcm9tSlNPTihjdXJ2ZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgJ0VsbGlwc2VDdXJ2ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGQoRWxsaXBzZUN1cnZlLmZyb21KU09OKGN1cnZlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSAnU3BsaW5lQ3VydmUnOlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkKFNwbGluZUN1cnZlLmZyb21KU09OKGN1cnZlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSAnQ3ViaWNCZXppZXJDdXJ2ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGQoQ3ViaWNCZXppZXJDdXJ2ZS5mcm9tSlNPTihjdXJ2ZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgJ1F1YWRyYXRpY0JlemllckN1cnZlJzpcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZChRdWFkcmF0aWNCZXppZXJDdXJ2ZS5mcm9tSlNPTihjdXJ2ZSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgUmVjdGFuZ2xlIHdpdGggYSBwb3NpdGlvbiBhbmQgc2l6ZSBtYXRjaGluZyB0aGUgYm91bmRzIG9mIHRoaXMgUGF0aC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuUGF0aCNnZXRCb3VuZHNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBPIC0gW291dCwkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdlb20uUmVjdGFuZ2xlfSBbb3V0XSAtIFRoZSBSZWN0YW5nbGUgdG8gc3RvcmUgdGhlIGJvdW5kcyBpbi5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2FjY3VyYWN5PTE2XSAtIFRoZSBhY2N1cmFjeSBvZiB0aGUgYm91bmRzIGNhbGN1bGF0aW9ucy4gSGlnaGVyIHZhbHVlcyBhcmUgbW9yZSBhY2N1cmF0ZSBhdCB0aGUgY29zdCBvZiBjYWxjdWxhdGlvbiBzcGVlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2VvbS5SZWN0YW5nbGV9IFRoZSBtb2RpZmllZCBgb3V0YCBSZWN0YW5nbGUsIG9yIGEgbmV3IFJlY3RhbmdsZSBpZiBub25lIHdhcyBwcm92aWRlZC5cclxuICAgICAqL1xyXG4gICAgZ2V0Qm91bmRzOiBmdW5jdGlvbiAob3V0LCBhY2N1cmFjeSlcclxuICAgIHtcclxuICAgICAgICBpZiAob3V0ID09PSB1bmRlZmluZWQpIHsgb3V0ID0gbmV3IFJlY3RhbmdsZSgpOyB9XHJcbiAgICAgICAgaWYgKGFjY3VyYWN5ID09PSB1bmRlZmluZWQpIHsgYWNjdXJhY3kgPSAxNjsgfVxyXG5cclxuICAgICAgICBvdXQueCA9IE51bWJlci5NQVhfVkFMVUU7XHJcbiAgICAgICAgb3V0LnkgPSBOdW1iZXIuTUFYX1ZBTFVFO1xyXG5cclxuICAgICAgICB2YXIgYm91bmRzID0gbmV3IFJlY3RhbmdsZSgpO1xyXG4gICAgICAgIHZhciBtYXhSaWdodCA9IE1BVEhfQ09OU1QuTUlOX1NBRkVfSU5URUdFUjtcclxuICAgICAgICB2YXIgbWF4Qm90dG9tID0gTUFUSF9DT05TVC5NSU5fU0FGRV9JTlRFR0VSO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY3VydmVzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGN1cnZlID0gdGhpcy5jdXJ2ZXNbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoIWN1cnZlLmFjdGl2ZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGN1cnZlLmdldEJvdW5kcyhib3VuZHMsIGFjY3VyYWN5KTtcclxuXHJcbiAgICAgICAgICAgIG91dC54ID0gTWF0aC5taW4ob3V0LngsIGJvdW5kcy54KTtcclxuICAgICAgICAgICAgb3V0LnkgPSBNYXRoLm1pbihvdXQueSwgYm91bmRzLnkpO1xyXG5cclxuICAgICAgICAgICAgbWF4UmlnaHQgPSBNYXRoLm1heChtYXhSaWdodCwgYm91bmRzLnJpZ2h0KTtcclxuICAgICAgICAgICAgbWF4Qm90dG9tID0gTWF0aC5tYXgobWF4Qm90dG9tLCBib3VuZHMuYm90dG9tKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG91dC5yaWdodCA9IG1heFJpZ2h0O1xyXG4gICAgICAgIG91dC5ib3R0b20gPSBtYXhCb3R0b207XHJcblxyXG4gICAgICAgIHJldHVybiBvdXQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBjb250YWluaW5nIHRoZSBsZW5ndGggb2YgdGhlIFBhdGggYXQgdGhlIGVuZCBvZiBlYWNoIEN1cnZlLlxyXG4gICAgICpcclxuICAgICAqIFRoZSByZXN1bHQgb2YgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWNoZWQgdG8gYXZvaWQgcmVjYWxjdWxhdGluZyBpdCBpbiBzdWJzZXF1ZW50IGNhbGxzLiBUaGUgY2FjaGUgaXMgb25seSBpbnZhbGlkYXRlZCB3aGVuIHRoZSB7QGxpbmsgI2N1cnZlc30gYXJyYXkgY2hhbmdlcyBpbiBsZW5ndGgsIGxlYWRpbmcgdG8gcG90ZW50aWFsIGluYWNjdXJhY2llcyBpZiBhIEN1cnZlIGluIHRoZSBQYXRoIGlzIGNoYW5nZWQsIG9yIGlmIGEgQ3VydmUgaXMgcmVtb3ZlZCBhbmQgYW5vdGhlciBpcyBhZGRlZCBpbiBpdHMgcGxhY2UuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLlBhdGgjZ2V0Q3VydmVMZW5ndGhzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJbXX0gQW4gYXJyYXkgY29udGFpbmluZyB0aGUgbGVuZ3RoIG9mIHRoZSBQYXRoIGF0IHRoZSBlbmQgb2YgZWFjaCBvbmUgb2YgaXRzIEN1cnZlcy5cclxuICAgICAqL1xyXG4gICAgZ2V0Q3VydmVMZW5ndGhzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIC8vIFdlIHVzZSBjYWNoZSB2YWx1ZXMgaWYgY3VydmVzIGFuZCBjYWNoZSBhcnJheSBhcmUgc2FtZSBsZW5ndGhcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY2FjaGVMZW5ndGhzLmxlbmd0aCA9PT0gdGhpcy5jdXJ2ZXMubGVuZ3RoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGVMZW5ndGhzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gR2V0IGxlbmd0aCBvZiBzdWItY3VydmVcclxuICAgICAgICAvLyBQdXNoIHN1bXMgaW50byBjYWNoZWQgYXJyYXlcclxuXHJcbiAgICAgICAgdmFyIGxlbmd0aHMgPSBbXTtcclxuICAgICAgICB2YXIgc3VtcyA9IDA7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jdXJ2ZXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzdW1zICs9IHRoaXMuY3VydmVzW2ldLmdldExlbmd0aCgpO1xyXG5cclxuICAgICAgICAgICAgbGVuZ3Rocy5wdXNoKHN1bXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jYWNoZUxlbmd0aHMgPSBsZW5ndGhzO1xyXG5cclxuICAgICAgICByZXR1cm4gbGVuZ3RocztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBlbmRpbmcgcG9pbnQgb2YgdGhlIFBhdGguXHJcbiAgICAgKlxyXG4gICAgICogQSBQYXRoJ3MgZW5kaW5nIHBvaW50IGlzIGVxdWl2YWxlbnQgdG8gdGhlIGVuZGluZyBwb2ludCBvZiB0aGUgbGFzdCBDdXJ2ZSBpbiB0aGUgUGF0aC4gRm9yIGFuIGVtcHR5IFBhdGgsIHRoZSBlbmRpbmcgcG9pbnQgaXMgYXQgdGhlIFBhdGgncyBkZWZpbmVkIHtAbGluayAjc3RhcnRQb2ludH0uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLlBhdGgjZ2V0RW5kUG9pbnRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBPIC0gW291dCwkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLk1hdGguVmVjdG9yMn0gW291dF0gLSBUaGUgb2JqZWN0IHRvIHN0b3JlIHRoZSBwb2ludCBpbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBUaGUgbW9kaWZpZWQgYG91dGAgb2JqZWN0LCBvciBhIG5ldyBWZWN0b3IyIGlmIG5vbmUgd2FzIHByb3ZpZGVkLlxyXG4gICAgICovXHJcbiAgICBnZXRFbmRQb2ludDogZnVuY3Rpb24gKG91dClcclxuICAgIHtcclxuICAgICAgICBpZiAob3V0ID09PSB1bmRlZmluZWQpIHsgb3V0ID0gbmV3IFZlY3RvcjIoKTsgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jdXJ2ZXMubGVuZ3RoID4gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VydmVzW3RoaXMuY3VydmVzLmxlbmd0aCAtIDFdLmdldFBvaW50KDEsIG91dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG91dC5jb3B5KHRoaXMuc3RhcnRQb2ludCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3V0O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIHRvdGFsIGxlbmd0aCBvZiB0aGUgUGF0aC5cclxuICAgICAqXHJcbiAgICAgKiBAc2VlIHtAbGluayAjZ2V0Q3VydmVMZW5ndGhzfVxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5QYXRoI2dldExlbmd0aFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgdG90YWwgbGVuZ3RoIG9mIHRoZSBQYXRoLlxyXG4gICAgICovXHJcbiAgICBnZXRMZW5ndGg6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGxlbnMgPSB0aGlzLmdldEN1cnZlTGVuZ3RocygpO1xyXG5cclxuICAgICAgICByZXR1cm4gbGVuc1tsZW5zLmxlbmd0aCAtIDFdO1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyBUbyBnZXQgYWNjdXJhdGUgcG9pbnQgd2l0aCByZWZlcmVuY2UgdG9cclxuICAgIC8vIGVudGlyZSBwYXRoIGRpc3RhbmNlIGF0IHRpbWUgdCxcclxuICAgIC8vIGZvbGxvd2luZyBoYXMgdG8gYmUgZG9uZTpcclxuXHJcbiAgICAvLyAxLiBMZW5ndGggb2YgZWFjaCBzdWIgcGF0aCBoYXZlIHRvIGJlIGtub3duXHJcbiAgICAvLyAyLiBMb2NhdGUgYW5kIGlkZW50aWZ5IHR5cGUgb2YgY3VydmVcclxuICAgIC8vIDMuIEdldCB0IGZvciB0aGUgY3VydmVcclxuICAgIC8vIDQuIFJldHVybiBjdXJ2ZS5nZXRQb2ludEF0KHQnKVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHBvaW50IGF0IHRoZSBnaXZlbiBub3JtYWxpemVkIGxvY2F0aW9uIChiZXR3ZWVuIDAgYW5kIDEpIG9uIHRoZSBQYXRoLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBsb2NhdGlvbiBpcyByZWxhdGl2ZSB0byB0aGUgZW50aXJlIFBhdGgsIG5vdCB0byBhbiBpbmRpdmlkdWFsIEN1cnZlLiBBIGxvY2F0aW9uIG9mIDAuNSBpcyBhbHdheXMgaW4gdGhlIG1pZGRsZSBvZiB0aGUgUGF0aCBhbmQgaXMgdGh1cyBhbiBlcXVhbCBkaXN0YW5jZSBhd2F5IGZyb20gYm90aCBpdHMgc3RhcnRpbmcgYW5kIGVuZGluZyBwb2ludHMuIEluIGEgUGF0aCB3aXRoIG9uZSBDdXJ2ZSwgaXQgd291bGQgYmUgaW4gdGhlIG1pZGRsZSBvZiB0aGUgQ3VydmU7IGluIGEgUGF0aCB3aXRoIHR3byBDdXJ2ZXMsIGl0IGNvdWxkIGJlIGFueXdoZXJlIG9uIGVpdGhlciBvbmUgb2YgdGhlbSBkZXBlbmRpbmcgb24gdGhlaXIgbGVuZ3Rocy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuUGF0aCNnZXRQb2ludFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHQgLSBUaGUgbG9jYXRpb24gb2YgdGhlIHBvaW50IHRvIHJldHVybiwgYmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBbb3V0XSAtIFRoZSBvYmplY3QgaW4gd2hpY2ggdG8gc3RvcmUgdGhlIGNhbGN1bGF0ZWQgcG9pbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7P1BoYXNlci5NYXRoLlZlY3RvcjJ9IFRoZSBtb2RpZmllZCBgb3V0YCBvYmplY3QsIG9yIGEgbmV3IGBWZWN0b3IyYCBpZiBub25lIHdhcyBwcm92aWRlZC5cclxuICAgICAqL1xyXG4gICAgZ2V0UG9pbnQ6IGZ1bmN0aW9uICh0LCBvdXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG91dCA9PT0gdW5kZWZpbmVkKSB7IG91dCA9IG5ldyBWZWN0b3IyKCk7IH1cclxuXHJcbiAgICAgICAgdmFyIGQgPSB0ICogdGhpcy5nZXRMZW5ndGgoKTtcclxuICAgICAgICB2YXIgY3VydmVMZW5ndGhzID0gdGhpcy5nZXRDdXJ2ZUxlbmd0aHMoKTtcclxuICAgICAgICB2YXIgaSA9IDA7XHJcblxyXG4gICAgICAgIHdoaWxlIChpIDwgY3VydmVMZW5ndGhzLmxlbmd0aClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmIChjdXJ2ZUxlbmd0aHNbaV0gPj0gZClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFyIGRpZmYgPSBjdXJ2ZUxlbmd0aHNbaV0gLSBkO1xyXG4gICAgICAgICAgICAgICAgdmFyIGN1cnZlID0gdGhpcy5jdXJ2ZXNbaV07XHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIHNlZ21lbnRMZW5ndGggPSBjdXJ2ZS5nZXRMZW5ndGgoKTtcclxuICAgICAgICAgICAgICAgIHZhciB1ID0gKHNlZ21lbnRMZW5ndGggPT09IDApID8gMCA6IDEgLSBkaWZmIC8gc2VnbWVudExlbmd0aDtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3VydmUuZ2V0UG9pbnRBdCh1LCBvdXQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpKys7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBsb29wIHdoZXJlIHN1bSAhPSAwLCBzdW0gPiBkICwgc3VtKzEgPGRcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgYSBzZXF1ZW5jZSBvZiBwb2ludHMgb24gdGhlIHBhdGguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLlBhdGgjZ2V0UG9pbnRzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtkaXZpc2lvbnM9MTJdIC0gVGhlIG51bWJlciBvZiBkaXZpc2lvbnMgcGVyIHJlc29sdXRpb24gcGVyIGN1cnZlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjJbXX0gQW4gYXJyYXkgb2YgVmVjdG9yMiBvYmplY3RzIHRoYXQgY29udGFpbmluZyB0aGUgcG9pbnRzIGFsb25nIHRoZSBQYXRoLlxyXG4gICAgICovXHJcbiAgICBnZXRQb2ludHM6IGZ1bmN0aW9uIChkaXZpc2lvbnMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGRpdmlzaW9ucyA9PT0gdW5kZWZpbmVkKSB7IGRpdmlzaW9ucyA9IDEyOyB9XHJcblxyXG4gICAgICAgIHZhciBwb2ludHMgPSBbXTtcclxuICAgICAgICB2YXIgbGFzdDtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmN1cnZlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBjdXJ2ZSA9IHRoaXMuY3VydmVzW2ldO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFjdXJ2ZS5hY3RpdmUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB2YXIgcmVzb2x1dGlvbiA9IGN1cnZlLmdldFJlc29sdXRpb24oZGl2aXNpb25zKTtcclxuXHJcbiAgICAgICAgICAgIHZhciBwdHMgPSBjdXJ2ZS5nZXRQb2ludHMocmVzb2x1dGlvbik7XHJcblxyXG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHB0cy5sZW5ndGg7IGorKylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFyIHBvaW50ID0gcHRzW2pdO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChsYXN0ICYmIGxhc3QuZXF1YWxzKHBvaW50KSlcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBlbnN1cmVzIG5vIGNvbnNlY3V0aXZlIHBvaW50cyBhcmUgZHVwbGljYXRlc1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHBvaW50cy5wdXNoKHBvaW50KTtcclxuXHJcbiAgICAgICAgICAgICAgICBsYXN0ID0gcG9pbnQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmF1dG9DbG9zZSAmJiBwb2ludHMubGVuZ3RoID4gMSAmJiAhcG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXS5lcXVhbHMocG9pbnRzWzBdKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKHBvaW50c1swXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcG9pbnRzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYSByYW5kb21seSBjaG9zZW4gcG9pbnQgYW55d2hlcmUgb24gdGhlIHBhdGguIFRoaXMgZm9sbG93cyB0aGUgc2FtZSBydWxlcyBhcyBgZ2V0UG9pbnRgIGluIHRoYXQgaXQgbWF5IHJldHVybiBhIHBvaW50IG9uIGFueSBDdXJ2ZSBpbnNpZGUgdGhpcyBwYXRoLlxyXG4gICAgICpcclxuICAgICAqIFdoZW4gY2FsbGluZyB0aGlzIG1ldGhvZCBtdWx0aXBsZSB0aW1lcywgdGhlIHBvaW50cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gYmUgZXF1YWxseSBzcGFjZWQgc3BhdGlhbGx5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5QYXRoI2dldFJhbmRvbVBvaW50XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLk1hdGguVmVjdG9yMn0gTyAtIFtvdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFtvdXRdIC0gYFZlY3RvcjJgIGluc3RhbmNlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdC4gSWYgYHVuZGVmaW5lZGAgYSBuZXcgYFZlY3RvcjJgIHdpbGwgYmUgY3JlYXRlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBUaGUgbW9kaWZpZWQgYG91dGAgb2JqZWN0LCBvciBhIG5ldyBgVmVjdG9yMmAgaWYgbm9uZSB3YXMgcHJvdmlkZWQuXHJcbiAgICAgKi9cclxuICAgIGdldFJhbmRvbVBvaW50OiBmdW5jdGlvbiAob3V0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZCkgeyBvdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFBvaW50KE1hdGgucmFuZG9tKCksIG91dCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGl2aWRlcyB0aGlzIFBhdGggaW50byBhIHNldCBvZiBlcXVhbGx5IHNwYWNlZCBwb2ludHMsXHJcbiAgICAgKlxyXG4gICAgICogVGhlIHJlc3VsdGluZyBwb2ludHMgYXJlIGVxdWFsbHkgc3BhY2VkIHdpdGggcmVzcGVjdCB0byB0aGUgcG9pbnRzJyBwb3NpdGlvbiBvbiB0aGUgcGF0aCwgYnV0IG5vdCBuZWNlc3NhcmlseSBlcXVhbGx5IHNwYWNlZCBzcGF0aWFsbHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLlBhdGgjZ2V0U3BhY2VkUG9pbnRzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtkaXZpc2lvbnM9NDBdIC0gVGhlIGFtb3VudCBvZiBwb2ludHMgdG8gZGl2aWRlIHRoaXMgUGF0aCBpbnRvLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjJbXX0gQSBsaXN0IG9mIHRoZSBwb2ludHMgdGhpcyBwYXRoIHdhcyBzdWJkaXZpZGVkIGludG8uXHJcbiAgICAgKi9cclxuICAgIGdldFNwYWNlZFBvaW50czogZnVuY3Rpb24gKGRpdmlzaW9ucylcclxuICAgIHtcclxuICAgICAgICBpZiAoZGl2aXNpb25zID09PSB1bmRlZmluZWQpIHsgZGl2aXNpb25zID0gNDA7IH1cclxuXHJcbiAgICAgICAgdmFyIHBvaW50cyA9IFtdO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8PSBkaXZpc2lvbnM7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHBvaW50cy5wdXNoKHRoaXMuZ2V0UG9pbnQoaSAvIGRpdmlzaW9ucykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYXV0b0Nsb3NlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcG9pbnRzLnB1c2gocG9pbnRzWzBdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBwb2ludHM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIFBhdGguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuQ3VydmVzLlBhdGgjZ2V0U3RhcnRQb2ludFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBbb3V0XSAtIGBWZWN0b3IyYCBpbnN0YW5jZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciBzdG9yaW5nIHRoZSByZXN1bHQuIElmIGB1bmRlZmluZWRgIGEgbmV3IGBWZWN0b3IyYCB3aWxsIGJlIGNyZWF0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLk1hdGguVmVjdG9yMn0gVGhlIG1vZGlmaWVkIGBvdXRgIG9iamVjdCwgb3IgYSBuZXcgVmVjdG9yMiBpZiBub25lIHdhcyBwcm92aWRlZC5cclxuICAgICAqL1xyXG4gICAgZ2V0U3RhcnRQb2ludDogZnVuY3Rpb24gKG91dClcclxuICAgIHtcclxuICAgICAgICBpZiAob3V0ID09PSB1bmRlZmluZWQpIHsgb3V0ID0gbmV3IFZlY3RvcjIoKTsgfVxyXG5cclxuICAgICAgICByZXR1cm4gb3V0LmNvcHkodGhpcy5zdGFydFBvaW50KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGEgdW5pdCB2ZWN0b3IgdGFuZ2VudCBhdCBhIHJlbGF0aXZlIHBvc2l0aW9uIG9uIHRoZSBwYXRoLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5QYXRoI2dldFRhbmdlbnRcclxuICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLk1hdGguVmVjdG9yMn0gTyAtIFtvdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdCAtIFRoZSByZWxhdGl2ZSBwb3NpdGlvbiBvbiB0aGUgcGF0aCwgWzAuLjFdLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBbb3V0XSAtIEEgdmVjdG9yIHRvIHN0b3JlIHRoZSByZXN1bHQgaW4uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLk1hdGguVmVjdG9yMn0gVmVjdG9yIGFwcHJveGltYXRpbmcgdGhlIHRhbmdlbnQgbGluZSBhdCB0aGUgcG9pbnQgdCAoZGVsdGEgKy8tIDAuMDAwMSlcclxuICAgICAqL1xyXG4gICAgZ2V0VGFuZ2VudDogZnVuY3Rpb24gKHQsIG91dClcclxuICAgIHtcclxuICAgICAgICBpZiAob3V0ID09PSB1bmRlZmluZWQpIHsgb3V0ID0gbmV3IFZlY3RvcjIoKTsgfVxyXG5cclxuICAgICAgICB2YXIgZCA9IHQgKiB0aGlzLmdldExlbmd0aCgpO1xyXG4gICAgICAgIHZhciBjdXJ2ZUxlbmd0aHMgPSB0aGlzLmdldEN1cnZlTGVuZ3RocygpO1xyXG4gICAgICAgIHZhciBpID0gMDtcclxuXHJcbiAgICAgICAgd2hpbGUgKGkgPCBjdXJ2ZUxlbmd0aHMubGVuZ3RoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKGN1cnZlTGVuZ3Roc1tpXSA+PSBkKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZGlmZiA9IGN1cnZlTGVuZ3Roc1tpXSAtIGQ7XHJcbiAgICAgICAgICAgICAgICB2YXIgY3VydmUgPSB0aGlzLmN1cnZlc1tpXTtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXIgc2VnbWVudExlbmd0aCA9IGN1cnZlLmdldExlbmd0aCgpO1xyXG4gICAgICAgICAgICAgICAgdmFyIHUgPSAoc2VnbWVudExlbmd0aCA9PT0gMCkgPyAwIDogMSAtIGRpZmYgLyBzZWdtZW50TGVuZ3RoO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBjdXJ2ZS5nZXRUYW5nZW50QXQodSwgb3V0KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaSsrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIGxpbmUgY3VydmUgZnJvbSB0aGUgcHJldmlvdXMgZW5kIHBvaW50IHRvIHgveS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5DdXJ2ZXMuUGF0aCNsaW5lVG9cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KG51bWJlcnxQaGFzZXIuTWF0aC5WZWN0b3IyKX0geCAtIFRoZSBYIGNvb3JkaW5hdGUgb2YgdGhlIGxpbmUncyBlbmQgcG9pbnQsIG9yIGEgYFZlY3RvcjJgIGNvbnRhaW5pbmcgdGhlIGVudGlyZSBlbmQgcG9pbnQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ldIC0gVGhlIFkgY29vcmRpbmF0ZSBvZiB0aGUgbGluZSdzIGVuZCBwb2ludCwgaWYgYSBudW1iZXIgd2FzIHBhc3NlZCBhcyB0aGUgWCBwYXJhbWV0ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXRoIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgbGluZVRvOiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICBpZiAoeCBpbnN0YW5jZW9mIFZlY3RvcjIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl90bXBWZWMyQi5jb3B5KHgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl90bXBWZWMyQi5zZXQoeCwgeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgZW5kID0gdGhpcy5nZXRFbmRQb2ludCh0aGlzLl90bXBWZWMyQSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmFkZChuZXcgTGluZUN1cnZlKFsgZW5kLngsIGVuZC55LCB0aGlzLl90bXBWZWMyQi54LCB0aGlzLl90bXBWZWMyQi55IF0pKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgc3BsaW5lIGN1cnZlIHN0YXJ0aW5nIGF0IHRoZSBwcmV2aW91cyBlbmQgcG9pbnQsIHVzaW5nIHRoZSBnaXZlbiBwb2ludHMgb24gdGhlIGN1cnZlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5QYXRoI3NwbGluZVRvXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5NYXRoLlZlY3RvcjJbXX0gcG9pbnRzIC0gVGhlIHBvaW50cyB0aGUgbmV3bHkgY3JlYXRlZCBzcGxpbmUgY3VydmUgc2hvdWxkIGNvbnNpc3Qgb2YuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXRoIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc3BsaW5lVG86IGZ1bmN0aW9uIChwb2ludHMpXHJcbiAgICB7XHJcbiAgICAgICAgcG9pbnRzLnVuc2hpZnQodGhpcy5nZXRFbmRQb2ludCgpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkKG5ldyBTcGxpbmVDdXJ2ZShwb2ludHMpKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgXCJnYXBcIiBpbiB0aGlzIHBhdGggZnJvbSB0aGUgcGF0aCdzIGN1cnJlbnQgZW5kIHBvaW50IHRvIHRoZSBnaXZlbiBjb29yZGluYXRlcy5cclxuICAgICAqXHJcbiAgICAgKiBBZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIHRoaXMgUGF0aCdzIGVuZCBwb2ludCB3aWxsIGJlIGVxdWFsIHRvIHRoZSBnaXZlbiBjb29yZGluYXRlc1xyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5QYXRoI21vdmVUb1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsobnVtYmVyfFBoYXNlci5NYXRoLlZlY3RvcjIpfSB4IC0gVGhlIFggY29vcmRpbmF0ZSBvZiB0aGUgcG9zaXRpb24gdG8gbW92ZSB0aGUgcGF0aCdzIGVuZCBwb2ludCB0bywgb3IgYSBgVmVjdG9yMmAgY29udGFpbmluZyB0aGUgZW50aXJlIG5ldyBlbmQgcG9pbnQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSBZIGNvb3JkaW5hdGUgb2YgdGhlIHBvc2l0aW9uIHRvIG1vdmUgdGhlIHBhdGgncyBlbmQgcG9pbnQgdG8sIGlmIGEgbnVtYmVyIHdhcyBwYXNzZWQgYXMgdGhlIFggY29vcmRpbmF0ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhdGggb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBtb3ZlVG86IGZ1bmN0aW9uICh4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh4IGluc3RhbmNlb2YgVmVjdG9yMilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZChuZXcgTW92ZVBhdGhUbyh4LngsIHgueSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGQobmV3IE1vdmVQYXRoVG8oeCwgeSkpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb252ZXJ0cyB0aGlzIFBhdGggdG8gYSBKU09OIG9iamVjdCBjb250YWluaW5nIHRoZSBwYXRoIGluZm9ybWF0aW9uIGFuZCBpdHMgY29uc3RpdHVlbnQgY3VydmVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5QYXRoI3RvSlNPTlxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLlR5cGVzLkN1cnZlcy5KU09OUGF0aH0gVGhlIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgdGhpcyBwYXRoJ3MgZGF0YS5cclxuICAgICAqL1xyXG4gICAgdG9KU09OOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBvdXQgPSBbXTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmN1cnZlcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG91dC5wdXNoKHRoaXMuY3VydmVzW2ldLnRvSlNPTigpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHR5cGU6ICdQYXRoJyxcclxuICAgICAgICAgICAgeDogdGhpcy5zdGFydFBvaW50LngsXHJcbiAgICAgICAgICAgIHk6IHRoaXMuc3RhcnRQb2ludC55LFxyXG4gICAgICAgICAgICBhdXRvQ2xvc2U6IHRoaXMuYXV0b0Nsb3NlLFxyXG4gICAgICAgICAgICBjdXJ2ZXM6IG91dFxyXG4gICAgICAgIH07XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogY2FjaGVMZW5ndGhzIG11c3QgYmUgcmVjYWxjdWxhdGVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5QYXRoI3VwZGF0ZUFyY0xlbmd0aHNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB1cGRhdGVBcmNMZW5ndGhzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY2FjaGVMZW5ndGhzID0gW107XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0Q3VydmVMZW5ndGhzKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGlzcG9zZXMgb2YgdGhpcyBQYXRoLCBjbGVhcmluZyBpdHMgaW50ZXJuYWwgcmVmZXJlbmNlcyB0byBvYmplY3RzIHNvIHRoZXkgY2FuIGJlIGdhcmJhZ2UtY29sbGVjdGVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkN1cnZlcy5QYXRoI2Rlc3Ryb3lcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY3VydmVzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgdGhpcy5jYWNoZUxlbmd0aHMubGVuZ3RoID0gMDtcclxuICAgICAgICB0aGlzLnN0YXJ0UG9pbnQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IFBhdGggT2JqZWN0LlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0RmFjdG9yeSNwYXRoXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoaXMgUGF0aC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBQYXRoLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuQ3VydmVzLlBhdGh9IFRoZSBQYXRoIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuR2FtZU9iamVjdEZhY3RvcnkucmVnaXN0ZXIoJ3BhdGgnLCBmdW5jdGlvbiAoeCwgeSlcclxue1xyXG4gICAgcmV0dXJuIG5ldyBQYXRoKHgsIHkpO1xyXG59KTtcclxuXHJcbi8vICBXaGVuIHJlZ2lzdGVyaW5nIGEgZmFjdG9yeSBmdW5jdGlvbiAndGhpcycgcmVmZXJzIHRvIHRoZSBHYW1lT2JqZWN0RmFjdG9yeSBjb250ZXh0LlxyXG4vL1xyXG4vLyAgVGhlcmUgYXJlIHNldmVyYWwgcHJvcGVydGllcyBhdmFpbGFibGUgdG8gdXNlOlxyXG4vL1xyXG4vLyAgdGhpcy5zY2VuZSAtIGEgcmVmZXJlbmNlIHRvIHRoZSBTY2VuZSB0aGF0IG93bnMgdGhlIEdhbWVPYmplY3RGYWN0b3J5XHJcbi8vICB0aGlzLmRpc3BsYXlMaXN0IC0gYSByZWZlcmVuY2UgdG8gdGhlIERpc3BsYXkgTGlzdCB0aGUgU2NlbmUgb3duc1xyXG4vLyAgdGhpcy51cGRhdGVMaXN0IC0gYSByZWZlcmVuY2UgdG8gdGhlIFVwZGF0ZSBMaXN0IHRoZSBTY2VuZSBvd25zXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBhdGg7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEV2ZW50cyA9IHJlcXVpcmUoJy4vZXZlbnRzJyk7XHJcblxyXG4vKipcclxuICogQGNhbGxiYWNrIERhdGFFYWNoQ2FsbGJhY2tcclxuICpcclxuICogQHBhcmFtIHsqfSBwYXJlbnQgLSBUaGUgcGFyZW50IG9iamVjdCBvZiB0aGUgRGF0YU1hbmFnZXIuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSB2YWx1ZS5cclxuICogQHBhcmFtIHsqfSB2YWx1ZSAtIFRoZSB2YWx1ZS5cclxuICogQHBhcmFtIHsuLi4qfSBbYXJnc10gLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBjYWxsYmFjaywgYWZ0ZXIgdGhlIGdhbWUgb2JqZWN0LCBrZXksIGFuZCBkYXRhLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIFRoZSBEYXRhIE1hbmFnZXIgQ29tcG9uZW50IGZlYXR1cmVzIGEgbWVhbnMgdG8gc3RvcmUgcGllY2VzIG9mIGRhdGEgc3BlY2lmaWMgdG8gYSBHYW1lIE9iamVjdCwgU3lzdGVtIG9yIFBsdWdpbi5cclxuICogWW91IGNhbiB0aGVuIHNlYXJjaCwgcXVlcnkgaXQsIGFuZCByZXRyaWV2ZSB0aGUgZGF0YS4gVGhlIHBhcmVudCBtdXN0IGVpdGhlciBleHRlbmQgRXZlbnRFbWl0dGVyLFxyXG4gKiBvciBoYXZlIGEgcHJvcGVydHkgY2FsbGVkIGBldmVudHNgIHRoYXQgaXMgYW4gaW5zdGFuY2Ugb2YgaXQuXHJcbiAqXHJcbiAqIEBjbGFzcyBEYXRhTWFuYWdlclxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkRhdGFcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge29iamVjdH0gcGFyZW50IC0gVGhlIG9iamVjdCB0aGF0IHRoaXMgRGF0YU1hbmFnZXIgYmVsb25ncyB0by5cclxuICogQHBhcmFtIHtQaGFzZXIuRXZlbnRzLkV2ZW50RW1pdHRlcn0gW2V2ZW50RW1pdHRlcl0gLSBUaGUgRGF0YU1hbmFnZXIncyBldmVudCBlbWl0dGVyLlxyXG4gKi9cclxudmFyIERhdGFNYW5hZ2VyID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIERhdGFNYW5hZ2VyIChwYXJlbnQsIGV2ZW50RW1pdHRlcilcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgb2JqZWN0IHRoYXQgdGhpcyBEYXRhTWFuYWdlciBiZWxvbmdzIHRvLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRhdGEuRGF0YU1hbmFnZXIjcGFyZW50XHJcbiAgICAgICAgICogQHR5cGUgeyp9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBEYXRhTWFuYWdlcidzIGV2ZW50IGVtaXR0ZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGF0YS5EYXRhTWFuYWdlciNldmVudHNcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkV2ZW50cy5FdmVudEVtaXR0ZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ldmVudHMgPSBldmVudEVtaXR0ZXI7XHJcblxyXG4gICAgICAgIGlmICghZXZlbnRFbWl0dGVyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudHMgPSAocGFyZW50LmV2ZW50cykgPyBwYXJlbnQuZXZlbnRzIDogcGFyZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGRhdGEgbGlzdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5EYXRhLkRhdGFNYW5hZ2VyI2xpc3RcclxuICAgICAgICAgKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsICo+fVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHt9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5saXN0ID0ge307XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBwdWJsaWMgdmFsdWVzIGxpc3QuIFlvdSBjYW4gdXNlIHRoaXMgdG8gYWNjZXNzIGFueXRoaW5nIHlvdSBoYXZlIHN0b3JlZFxyXG4gICAgICAgICAqIGluIHRoaXMgRGF0YSBNYW5hZ2VyLiBGb3IgZXhhbXBsZSwgaWYgeW91IHNldCBhIHZhbHVlIGNhbGxlZCBgZ29sZGAgeW91IGNhblxyXG4gICAgICAgICAqIGFjY2VzcyBpdCB2aWE6XHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBgYGBqYXZhc2NyaXB0XHJcbiAgICAgICAgICogdGhpcy5kYXRhLnZhbHVlcy5nb2xkO1xyXG4gICAgICAgICAqIGBgYFxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogWW91IGNhbiBhbHNvIG1vZGlmeSBpdCBkaXJlY3RseTpcclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBgYGBqYXZhc2NyaXB0XHJcbiAgICAgICAgICogdGhpcy5kYXRhLnZhbHVlcy5nb2xkICs9IDEwMDA7XHJcbiAgICAgICAgICogYGBgXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBEb2luZyBzbyB3aWxsIGVtaXQgYSBgc2V0ZGF0YWAgZXZlbnQgZnJvbSB0aGUgcGFyZW50IG9mIHRoaXMgRGF0YSBNYW5hZ2VyLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIERvIG5vdCBtb2RpZnkgdGhpcyBvYmplY3QgZGlyZWN0bHkuIEFkZGluZyBwcm9wZXJ0aWVzIGRpcmVjdGx5IHRvIHRoaXMgb2JqZWN0IHdpbGwgbm90XHJcbiAgICAgICAgICogZW1pdCBhbnkgZXZlbnRzLiBBbHdheXMgdXNlIGBEYXRhTWFuYWdlci5zZXRgIHRvIGNyZWF0ZSBuZXcgaXRlbXMgdGhlIGZpcnN0IHRpbWUgYXJvdW5kLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRhdGEuRGF0YU1hbmFnZXIjdmFsdWVzXHJcbiAgICAgICAgICogQHR5cGUge09iamVjdC48c3RyaW5nLCAqPn1cclxuICAgICAgICAgKiBAZGVmYXVsdCB7fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEwLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnZhbHVlcyA9IHt9O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXaGV0aGVyIHNldHRpbmcgZGF0YSBpcyBmcm96ZW4gZm9yIHRoaXMgRGF0YU1hbmFnZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGF0YS5EYXRhTWFuYWdlciNfZnJvemVuXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2Zyb3plbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAoIXBhcmVudC5oYXNPd25Qcm9wZXJ0eSgnc3lzJykgJiYgdGhpcy5ldmVudHMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50cy5vbmNlKCdkZXN0cm95JywgdGhpcy5kZXN0cm95LCB0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGtleSwgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3QuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBhbHNvIGFjY2VzcyB2YWx1ZXMgdmlhIHRoZSBgdmFsdWVzYCBvYmplY3QuIEZvciBleGFtcGxlLCBpZiB5b3UgaGFkIGEga2V5IGNhbGxlZCBgZ29sZGAgeW91IGNhbiBkbyBlaXRoZXI6XHJcbiAgICAgKiBcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIHRoaXMuZGF0YS5nZXQoJ2dvbGQnKTtcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIE9yIGFjY2VzcyB0aGUgdmFsdWUgZGlyZWN0bHk6XHJcbiAgICAgKiBcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIHRoaXMuZGF0YS52YWx1ZXMuZ29sZDtcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIFlvdSBjYW4gYWxzbyBwYXNzIGluIGFuIGFycmF5IG9mIGtleXMsIGluIHdoaWNoIGNhc2UgYW4gYXJyYXkgb2YgdmFsdWVzIHdpbGwgYmUgcmV0dXJuZWQ6XHJcbiAgICAgKiBcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIHRoaXMuZGF0YS5nZXQoWyAnZ29sZCcsICdhcm1vcicsICdoZWFsdGgnIF0pO1xyXG4gICAgICogYGBgXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBhcHByb2FjaCBpcyB1c2VmdWwgZm9yIGRlc3RydWN0dXJpbmcgYXJyYXlzIGluIEVTNi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EYXRhLkRhdGFNYW5hZ2VyI2dldFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfHN0cmluZ1tdKX0ga2V5IC0gVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmV0cmlldmUsIG9yIGFuIGFycmF5IG9mIGtleXMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Kn0gVGhlIHZhbHVlIGJlbG9uZ2luZyB0byB0aGUgZ2l2ZW4ga2V5LCBvciBhbiBhcnJheSBvZiB2YWx1ZXMsIHRoZSBvcmRlciBvZiB3aGljaCB3aWxsIG1hdGNoIHRoZSBpbnB1dCBhcnJheS5cclxuICAgICAqL1xyXG4gICAgZ2V0OiBmdW5jdGlvbiAoa2V5KVxyXG4gICAge1xyXG4gICAgICAgIHZhciBsaXN0ID0gdGhpcy5saXN0O1xyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShrZXkpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIG91dHB1dCA9IFtdO1xyXG5cclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXkubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG91dHB1dC5wdXNoKGxpc3Rba2V5W2ldXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBsaXN0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhbGwgZGF0YSB2YWx1ZXMgaW4gYSBuZXcgb2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRhdGEuRGF0YU1hbmFnZXIjZ2V0QWxsXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtPYmplY3QuPHN0cmluZywgKj59IEFsbCBkYXRhIHZhbHVlcy5cclxuICAgICAqL1xyXG4gICAgZ2V0QWxsOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciByZXN1bHRzID0ge307XHJcblxyXG4gICAgICAgIGZvciAodmFyIGtleSBpbiB0aGlzLmxpc3QpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5saXN0Lmhhc093blByb3BlcnR5KGtleSkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdHNba2V5XSA9IHRoaXMubGlzdFtrZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0cztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBRdWVyaWVzIHRoZSBEYXRhTWFuYWdlciBmb3IgdGhlIHZhbHVlcyBvZiBrZXlzIG1hdGNoaW5nIHRoZSBnaXZlbiByZWd1bGFyIGV4cHJlc3Npb24uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGF0YS5EYXRhTWFuYWdlciNxdWVyeVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtSZWdFeHB9IHNlYXJjaCAtIEEgcmVndWxhciBleHByZXNzaW9uIG9iamVjdC4gSWYgYSBub24tUmVnRXhwIG9iamVjdCBvYmogaXMgcGFzc2VkLCBpdCBpcyBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byBhIFJlZ0V4cCBieSB1c2luZyBuZXcgUmVnRXhwKG9iaikuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7T2JqZWN0LjxzdHJpbmcsICo+fSBUaGUgdmFsdWVzIG9mIHRoZSBrZXlzIG1hdGNoaW5nIHRoZSBzZWFyY2ggc3RyaW5nLlxyXG4gICAgICovXHJcbiAgICBxdWVyeTogZnVuY3Rpb24gKHNlYXJjaClcclxuICAgIHtcclxuICAgICAgICB2YXIgcmVzdWx0cyA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5saXN0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubGlzdC5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGtleS5tYXRjaChzZWFyY2gpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRzW2tleV0gPSB0aGlzLmxpc3Rba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBhIHZhbHVlIGZvciB0aGUgZ2l2ZW4ga2V5LiBJZiB0aGUga2V5IGRvZXNuJ3QgYWxyZWFkeSBleGlzdCBpbiB0aGUgRGF0YSBNYW5hZ2VyIHRoZW4gaXQgaXMgY3JlYXRlZC5cclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogZGF0YS5zZXQoJ25hbWUnLCAnUmVkIEdlbSBTdG9uZScpO1xyXG4gICAgICogYGBgXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBhbHNvIHBhc3MgaW4gYW4gb2JqZWN0IG9mIGtleSB2YWx1ZSBwYWlycyBhcyB0aGUgZmlyc3QgYXJndW1lbnQ6XHJcbiAgICAgKlxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogZGF0YS5zZXQoeyBuYW1lOiAnUmVkIEdlbSBTdG9uZScsIGxldmVsOiAyLCBvd25lcjogJ0xpbmsnLCBnb2xkOiA1MCB9KTtcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIFRvIGdldCBhIHZhbHVlIGJhY2sgYWdhaW4geW91IGNhbiBjYWxsIGBnZXRgOlxyXG4gICAgICogXHJcbiAgICAgKiBgYGBqYXZhc2NyaXB0XHJcbiAgICAgKiBkYXRhLmdldCgnZ29sZCcpO1xyXG4gICAgICogYGBgXHJcbiAgICAgKiBcclxuICAgICAqIE9yIHlvdSBjYW4gYWNjZXNzIHRoZSB2YWx1ZSBkaXJlY3RseSB2aWEgdGhlIGB2YWx1ZXNgIHByb3BlcnR5LCB3aGVyZSBpdCB3b3JrcyBsaWtlIGFueSBvdGhlciB2YXJpYWJsZTpcclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogZGF0YS52YWx1ZXMuZ29sZCArPSA1MDtcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIFdoZW4gdGhlIHZhbHVlIGlzIGZpcnN0IHNldCwgYSBgc2V0ZGF0YWAgZXZlbnQgaXMgZW1pdHRlZC5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUga2V5IGFscmVhZHkgZXhpc3RzLCBhIGBjaGFuZ2VkYXRhYCBldmVudCBpcyBlbWl0dGVkIGluc3RlYWQsIGFsb25nIGFuIGV2ZW50IG5hbWVkIGFmdGVyIHRoZSBrZXkuXHJcbiAgICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91IHVwZGF0ZWQgYW4gZXhpc3Rpbmcga2V5IGNhbGxlZCBgUGxheWVyTGl2ZXNgIHRoZW4gaXQgd291bGQgZW1pdCB0aGUgZXZlbnQgYGNoYW5nZWRhdGEtUGxheWVyTGl2ZXNgLlxyXG4gICAgICogVGhlc2UgZXZlbnRzIHdpbGwgYmUgZW1pdHRlZCByZWdhcmRsZXNzIGlmIHlvdSB1c2UgdGhpcyBtZXRob2QgdG8gc2V0IHRoZSB2YWx1ZSwgb3IgdGhlIGRpcmVjdCBgdmFsdWVzYCBzZXR0ZXIuXHJcbiAgICAgKlxyXG4gICAgICogUGxlYXNlIG5vdGUgdGhhdCB0aGUgZGF0YSBrZXlzIGFyZSBjYXNlLXNlbnNpdGl2ZSBhbmQgbXVzdCBiZSB2YWxpZCBKYXZhU2NyaXB0IE9iamVjdCBwcm9wZXJ0eSBzdHJpbmdzLlxyXG4gICAgICogVGhpcyBtZWFucyB0aGUga2V5cyBgZ29sZGAgYW5kIGBHb2xkYCBhcmUgdHJlYXRlZCBhcyB0d28gdW5pcXVlIHZhbHVlcyB3aXRoaW4gdGhlIERhdGEgTWFuYWdlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EYXRhLkRhdGFNYW5hZ2VyI3NldFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5EYXRhLkV2ZW50cyNTRVRfREFUQVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5EYXRhLkV2ZW50cyNDSEFOR0VfREFUQVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5EYXRhLkV2ZW50cyNDSEFOR0VfREFUQV9LRVlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xvYmplY3QpfSBrZXkgLSBUaGUga2V5IHRvIHNldCB0aGUgdmFsdWUgZm9yLiBPciBhbiBvYmplY3Qgb3Iga2V5IHZhbHVlIHBhaXJzLiBJZiBhbiBvYmplY3QgdGhlIGBkYXRhYCBhcmd1bWVudCBpcyBpZ25vcmVkLlxyXG4gICAgICogQHBhcmFtIHsqfSBkYXRhIC0gVGhlIHZhbHVlIHRvIHNldCBmb3IgdGhlIGdpdmVuIGtleS4gSWYgYW4gb2JqZWN0IGlzIHByb3ZpZGVkIGFzIHRoZSBrZXkgdGhpcyBhcmd1bWVudCBpcyBpZ25vcmVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRGF0YU1hbmFnZXIgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXQ6IGZ1bmN0aW9uIChrZXksIGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2Zyb3plbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0VmFsdWUoa2V5LCBkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgZW50cnkgaW4ga2V5KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlKGVudHJ5LCBrZXlbZW50cnldKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5jcmVhc2UgYSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGtleS4gSWYgdGhlIGtleSBkb2Vzbid0IGFscmVhZHkgZXhpc3QgaW4gdGhlIERhdGEgTWFuYWdlciB0aGVuIGl0IGlzIGluY3JlYXNlZCBmcm9tIDAuXHJcbiAgICAgKiBcclxuICAgICAqIFdoZW4gdGhlIHZhbHVlIGlzIGZpcnN0IHNldCwgYSBgc2V0ZGF0YWAgZXZlbnQgaXMgZW1pdHRlZC5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGF0YS5EYXRhTWFuYWdlciNpbmNcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuRGF0YS5FdmVudHMjU0VUX0RBVEFcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuRGF0YS5FdmVudHMjQ0hBTkdFX0RBVEFcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuRGF0YS5FdmVudHMjQ0hBTkdFX0RBVEFfS0VZXHJcbiAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfG9iamVjdCl9IGtleSAtIFRoZSBrZXkgdG8gaW5jcmVhc2UgdGhlIHZhbHVlIGZvci5cclxuICAgICAqIEBwYXJhbSB7Kn0gW2RhdGFdIC0gVGhlIHZhbHVlIHRvIGluY3JlYXNlIGZvciB0aGUgZ2l2ZW4ga2V5LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5EYXRhLkRhdGFNYW5hZ2VyfSBUaGlzIERhdGFNYW5hZ2VyIG9iamVjdC5cclxuICAgICAqLyAgICBcclxuICAgIGluYzogZnVuY3Rpb24gKGtleSwgZGF0YSlcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5fZnJvemVuKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZGF0YSA9IDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLmdldChrZXkpO1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWUgPSAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXQoa2V5LCAodmFsdWUgKyBkYXRhKSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvZ2dsZSBhIGJvb2xlYW4gdmFsdWUgZm9yIHRoZSBnaXZlbiBrZXkuIElmIHRoZSBrZXkgZG9lc24ndCBhbHJlYWR5IGV4aXN0IGluIHRoZSBEYXRhIE1hbmFnZXIgdGhlbiBpdCBpcyB0b2dnbGVkIGZyb20gZmFsc2UuXHJcbiAgICAgKiBcclxuICAgICAqIFdoZW4gdGhlIHZhbHVlIGlzIGZpcnN0IHNldCwgYSBgc2V0ZGF0YWAgZXZlbnQgaXMgZW1pdHRlZC5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGF0YS5EYXRhTWFuYWdlciN0b2dnbGVcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuRGF0YS5FdmVudHMjU0VUX0RBVEFcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuRGF0YS5FdmVudHMjQ0hBTkdFX0RBVEFcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuRGF0YS5FdmVudHMjQ0hBTkdFX0RBVEFfS0VZXHJcbiAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfG9iamVjdCl9IGtleSAtIFRoZSBrZXkgdG8gdG9nZ2xlIHRoZSB2YWx1ZSBmb3IuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkRhdGEuRGF0YU1hbmFnZXJ9IFRoaXMgRGF0YU1hbmFnZXIgb2JqZWN0LlxyXG4gICAgICovICBcclxuICAgIHRvZ2dsZTogZnVuY3Rpb24gKGtleSlcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5fZnJvemVuKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldChrZXksICF0aGlzLmdldChrZXkpKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgdmFsdWUgc2V0dGVyLCBjYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgYHNldGAgbWV0aG9kLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRhdGEuRGF0YU1hbmFnZXIjc2V0VmFsdWVcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuRGF0YS5FdmVudHMjU0VUX0RBVEFcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuRGF0YS5FdmVudHMjQ0hBTkdFX0RBVEFcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuRGF0YS5FdmVudHMjQ0hBTkdFX0RBVEFfS0VZXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IHRvIHNldCB0aGUgdmFsdWUgZm9yLlxyXG4gICAgICogQHBhcmFtIHsqfSBkYXRhIC0gVGhlIHZhbHVlIHRvIHNldC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIERhdGFNYW5hZ2VyIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0VmFsdWU6IGZ1bmN0aW9uIChrZXksIGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2Zyb3plbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaGFzKGtleSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgSGl0IHRoZSBrZXkgZ2V0dGVyLCB3aGljaCB3aWxsIGluIHR1cm4gZW1pdCB0aGUgZXZlbnRzLlxyXG4gICAgICAgICAgICB0aGlzLnZhbHVlc1trZXldID0gZGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICAgICAgdmFyIGxpc3QgPSB0aGlzLmxpc3Q7XHJcbiAgICAgICAgICAgIHZhciBldmVudHMgPSB0aGlzLmV2ZW50cztcclxuICAgICAgICAgICAgdmFyIHBhcmVudCA9IHRoaXMucGFyZW50O1xyXG5cclxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMudmFsdWVzLCBrZXksIHtcclxuXHJcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXHJcblxyXG4gICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBsaXN0W2tleV07XHJcbiAgICAgICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghX3RoaXMuX2Zyb3plbilcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcmV2aW91c1ZhbHVlID0gbGlzdFtrZXldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0W2tleV0gPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50cy5lbWl0KEV2ZW50cy5DSEFOR0VfREFUQSwgcGFyZW50LCBrZXksIHZhbHVlLCBwcmV2aW91c1ZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRzLmVtaXQoRXZlbnRzLkNIQU5HRV9EQVRBX0tFWSArIGtleSwgcGFyZW50LCB2YWx1ZSwgcHJldmlvdXNWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBsaXN0W2tleV0gPSBkYXRhO1xyXG5cclxuICAgICAgICAgICAgZXZlbnRzLmVtaXQoRXZlbnRzLlNFVF9EQVRBLCBwYXJlbnQsIGtleSwgZGF0YSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXNzZXMgYWxsIGRhdGEgZW50cmllcyB0byB0aGUgZ2l2ZW4gY2FsbGJhY2suXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGF0YS5EYXRhTWFuYWdlciNlYWNoXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge0RhdGFFYWNoQ2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIGZ1bmN0aW9uIHRvIGNhbGwuXHJcbiAgICAgKiBAcGFyYW0geyp9IFtjb250ZXh0XSAtIFZhbHVlIHRvIHVzZSBhcyBgdGhpc2Agd2hlbiBleGVjdXRpbmcgY2FsbGJhY2suXHJcbiAgICAgKiBAcGFyYW0gey4uLip9IFthcmdzXSAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrLCBhZnRlciB0aGUgZ2FtZSBvYmplY3QsIGtleSwgYW5kIGRhdGEuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBEYXRhTWFuYWdlciBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGVhY2g6IGZ1bmN0aW9uIChjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICB2YXIgYXJncyA9IFsgdGhpcy5wYXJlbnQsIG51bGwsIHVuZGVmaW5lZCBdO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yICh2YXIga2V5IGluIHRoaXMubGlzdClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGFyZ3NbMV0gPSBrZXk7XHJcbiAgICAgICAgICAgIGFyZ3NbMl0gPSB0aGlzLmxpc3Rba2V5XTtcclxuXHJcbiAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWVyZ2UgdGhlIGdpdmVuIG9iamVjdCBvZiBrZXkgdmFsdWUgcGFpcnMgaW50byB0aGlzIERhdGFNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEFueSBuZXdseSBjcmVhdGVkIHZhbHVlcyB3aWxsIGVtaXQgYSBgc2V0ZGF0YWAgZXZlbnQuIEFueSB1cGRhdGVkIHZhbHVlcyAoc2VlIHRoZSBgb3ZlcndyaXRlYCBhcmd1bWVudClcclxuICAgICAqIHdpbGwgZW1pdCBhIGBjaGFuZ2VkYXRhYCBldmVudC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EYXRhLkRhdGFNYW5hZ2VyI21lcmdlXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkRhdGEuRXZlbnRzI1NFVF9EQVRBXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkRhdGEuRXZlbnRzI0NIQU5HRV9EQVRBXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkRhdGEuRXZlbnRzI0NIQU5HRV9EQVRBX0tFWVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtPYmplY3QuPHN0cmluZywgKj59IGRhdGEgLSBUaGUgZGF0YSB0byBtZXJnZS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW292ZXJ3cml0ZT10cnVlXSAtIFdoZXRoZXIgdG8gb3ZlcndyaXRlIGV4aXN0aW5nIGRhdGEuIERlZmF1bHRzIHRvIHRydWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBEYXRhTWFuYWdlciBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIG1lcmdlOiBmdW5jdGlvbiAoZGF0YSwgb3ZlcndyaXRlKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdmVyd3JpdGUgPT09IHVuZGVmaW5lZCkgeyBvdmVyd3JpdGUgPSB0cnVlOyB9XHJcblxyXG4gICAgICAgIC8vICBNZXJnZSBkYXRhIGZyb20gYW5vdGhlciBjb21wb25lbnQgaW50byB0aGlzIG9uZVxyXG4gICAgICAgIGZvciAodmFyIGtleSBpbiBkYXRhKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKGRhdGEuaGFzT3duUHJvcGVydHkoa2V5KSAmJiAob3ZlcndyaXRlIHx8ICghb3ZlcndyaXRlICYmICF0aGlzLmhhcyhrZXkpKSkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoa2V5LCBkYXRhW2tleV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmUgdGhlIHZhbHVlIGZvciB0aGUgZ2l2ZW4ga2V5LlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBrZXkgaXMgZm91bmQgaW4gdGhpcyBEYXRhIE1hbmFnZXIgaXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBpbnRlcm5hbCBsaXN0cyBhbmQgYVxyXG4gICAgICogYHJlbW92ZWRhdGFgIGV2ZW50IGlzIGVtaXR0ZWQuXHJcbiAgICAgKiBcclxuICAgICAqIFlvdSBjYW4gYWxzbyBwYXNzIGluIGFuIGFycmF5IG9mIGtleXMsIGluIHdoaWNoIGNhc2UgYWxsIGtleXMgaW4gdGhlIGFycmF5IHdpbGwgYmUgcmVtb3ZlZDpcclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogdGhpcy5kYXRhLnJlbW92ZShbICdnb2xkJywgJ2FybW9yJywgJ2hlYWx0aCcgXSk7XHJcbiAgICAgKiBgYGBcclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EYXRhLkRhdGFNYW5hZ2VyI3JlbW92ZVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5EYXRhLkV2ZW50cyNSRU1PVkVfREFUQVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfHN0cmluZ1tdKX0ga2V5IC0gVGhlIGtleSB0byByZW1vdmUsIG9yIGFuIGFycmF5IG9mIGtleXMgdG8gcmVtb3ZlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRGF0YU1hbmFnZXIgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICByZW1vdmU6IGZ1bmN0aW9uIChrZXkpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2Zyb3plbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5KSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5Lmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZVZhbHVlKGtleVtpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlVmFsdWUoa2V5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIHZhbHVlIHJlbW92ZXIsIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBgcmVtb3ZlYCBtZXRob2QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGF0YS5EYXRhTWFuYWdlciNyZW1vdmVWYWx1ZVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuRGF0YS5FdmVudHMjUkVNT1ZFX0RBVEFcclxuICAgICAqIEBzaW5jZSAzLjEwLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSB0byBzZXQgdGhlIHZhbHVlIGZvci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIERhdGFNYW5hZ2VyIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcmVtb3ZlVmFsdWU6IGZ1bmN0aW9uIChrZXkpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuaGFzKGtleSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgZGF0YSA9IHRoaXMubGlzdFtrZXldO1xyXG5cclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMubGlzdFtrZXldO1xyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy52YWx1ZXNba2V5XTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoRXZlbnRzLlJFTU9WRV9EQVRBLCB0aGlzLnBhcmVudCwga2V5LCBkYXRhKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuICdrZXknLCBkZWxldGVzIGl0IGZyb20gdGhpcyBEYXRhIE1hbmFnZXIsIHRoZW4gcmV0dXJucyBpdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EYXRhLkRhdGFNYW5hZ2VyI3BvcFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5EYXRhLkV2ZW50cyNSRU1PVkVfREFUQVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIHZhbHVlIHRvIHJldHJpZXZlIGFuZCBkZWxldGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Kn0gVGhlIHZhbHVlIG9mIHRoZSBnaXZlbiBrZXkuXHJcbiAgICAgKi9cclxuICAgIHBvcDogZnVuY3Rpb24gKGtleSlcclxuICAgIHtcclxuICAgICAgICB2YXIgZGF0YSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9mcm96ZW4gJiYgdGhpcy5oYXMoa2V5KSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGRhdGEgPSB0aGlzLmxpc3Rba2V5XTtcclxuXHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmxpc3Rba2V5XTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMudmFsdWVzW2tleV07XHJcblxyXG4gICAgICAgICAgICB0aGlzLmV2ZW50cy5lbWl0KEV2ZW50cy5SRU1PVkVfREFUQSwgdGhpcy5wYXJlbnQsIGtleSwgZGF0YSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGdpdmVuIGtleSBpcyBzZXQgaW4gdGhpcyBEYXRhIE1hbmFnZXIuXHJcbiAgICAgKiBcclxuICAgICAqIFBsZWFzZSBub3RlIHRoYXQgdGhlIGtleXMgYXJlIGNhc2Utc2Vuc2l0aXZlIGFuZCBtdXN0IGJlIHZhbGlkIEphdmFTY3JpcHQgT2JqZWN0IHByb3BlcnR5IHN0cmluZ3MuXHJcbiAgICAgKiBUaGlzIG1lYW5zIHRoZSBrZXlzIGBnb2xkYCBhbmQgYEdvbGRgIGFyZSB0cmVhdGVkIGFzIHR3byB1bmlxdWUgdmFsdWVzIHdpdGhpbiB0aGUgRGF0YSBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRhdGEuRGF0YU1hbmFnZXIjaGFzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSB0byBjaGVjay5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUga2V5IGV4aXN0cywgb3RoZXJ3aXNlIGBmYWxzZWAuXHJcbiAgICAgKi9cclxuICAgIGhhczogZnVuY3Rpb24gKGtleSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5saXN0Lmhhc093blByb3BlcnR5KGtleSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnJlZXplIG9yIHVuZnJlZXplIHRoaXMgRGF0YSBNYW5hZ2VyLiBBIGZyb3plbiBEYXRhIE1hbmFnZXIgd2lsbCBibG9jayBhbGwgYXR0ZW1wdHNcclxuICAgICAqIHRvIGNyZWF0ZSBuZXcgdmFsdWVzIG9yIHVwZGF0ZSBleGlzdGluZyBvbmVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRhdGEuRGF0YU1hbmFnZXIjc2V0RnJlZXplXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbHVlIC0gV2hldGhlciB0byBmcmVlemUgb3IgdW5mcmVlemUgdGhlIERhdGEgTWFuYWdlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIERhdGFNYW5hZ2VyIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0RnJlZXplOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fZnJvemVuID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlbGV0ZSBhbGwgZGF0YSBpbiB0aGlzIERhdGEgTWFuYWdlciBhbmQgdW5mcmVlemUgaXQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGF0YS5EYXRhTWFuYWdlciNyZXNldFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBEYXRhTWFuYWdlciBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHJlc2V0OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGZvciAodmFyIGtleSBpbiB0aGlzLmxpc3QpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5saXN0W2tleV07XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnZhbHVlc1trZXldO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fZnJvemVuID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc3Ryb3kgdGhpcyBkYXRhIG1hbmFnZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGF0YS5EYXRhTWFuYWdlciNkZXN0cm95XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgZGVzdHJveTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnJlc2V0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuZXZlbnRzLm9mZihFdmVudHMuQ0hBTkdFX0RBVEEpO1xyXG4gICAgICAgIHRoaXMuZXZlbnRzLm9mZihFdmVudHMuU0VUX0RBVEEpO1xyXG4gICAgICAgIHRoaXMuZXZlbnRzLm9mZihFdmVudHMuUkVNT1ZFX0RBVEEpO1xyXG5cclxuICAgICAgICB0aGlzLnBhcmVudCA9IG51bGw7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHRoZSBmcm96ZW4gc3RhdGUgb2YgdGhpcyBEYXRhIE1hbmFnZXIuXHJcbiAgICAgKiBBIGZyb3plbiBEYXRhIE1hbmFnZXIgd2lsbCBibG9jayBhbGwgYXR0ZW1wdHMgdG8gY3JlYXRlIG5ldyB2YWx1ZXMgb3IgdXBkYXRlIGV4aXN0aW5nIG9uZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkRhdGEuRGF0YU1hbmFnZXIjZnJlZXplXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBmcmVlemU6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Zyb3plbjtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Zyb3plbiA9ICh2YWx1ZSkgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm4gdGhlIHRvdGFsIG51bWJlciBvZiBlbnRyaWVzIGluIHRoaXMgRGF0YSBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5EYXRhLkRhdGFNYW5hZ2VyI2NvdW50XHJcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBjb3VudDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgaSA9IDA7XHJcblxyXG4gICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5saXN0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5saXN0W2tleV0gIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBpKys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRGF0YU1hbmFnZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIERhdGFNYW5hZ2VyID0gcmVxdWlyZSgnLi9EYXRhTWFuYWdlcicpO1xyXG52YXIgUGx1Z2luQ2FjaGUgPSByZXF1aXJlKCcuLi9wbHVnaW5zL1BsdWdpbkNhY2hlJyk7XHJcbnZhciBTY2VuZUV2ZW50cyA9IHJlcXVpcmUoJy4uL3NjZW5lL2V2ZW50cycpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogVGhlIERhdGEgQ29tcG9uZW50IGZlYXR1cmVzIGEgbWVhbnMgdG8gc3RvcmUgcGllY2VzIG9mIGRhdGEgc3BlY2lmaWMgdG8gYSBHYW1lIE9iamVjdCwgU3lzdGVtIG9yIFBsdWdpbi5cclxuICogWW91IGNhbiB0aGVuIHNlYXJjaCwgcXVlcnkgaXQsIGFuZCByZXRyaWV2ZSB0aGUgZGF0YS4gVGhlIHBhcmVudCBtdXN0IGVpdGhlciBleHRlbmQgRXZlbnRFbWl0dGVyLFxyXG4gKiBvciBoYXZlIGEgcHJvcGVydHkgY2FsbGVkIGBldmVudHNgIHRoYXQgaXMgYW4gaW5zdGFuY2Ugb2YgaXQuXHJcbiAqXHJcbiAqIEBjbGFzcyBEYXRhTWFuYWdlclBsdWdpblxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuRGF0YS5EYXRhTWFuYWdlclxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkRhdGFcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBBIHJlZmVyZW5jZSB0byB0aGUgU2NlbmUgdGhhdCB0aGlzIERhdGFNYW5hZ2VyIGJlbG9uZ3MgdG8uXHJcbiAqL1xyXG52YXIgRGF0YU1hbmFnZXJQbHVnaW4gPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IERhdGFNYW5hZ2VyLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gRGF0YU1hbmFnZXJQbHVnaW4gKHNjZW5lKVxyXG4gICAge1xyXG4gICAgICAgIERhdGFNYW5hZ2VyLmNhbGwodGhpcywgc2NlbmUsIHNjZW5lLnN5cy5ldmVudHMpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgU2NlbmUgdGhhdCB0aGlzIERhdGFNYW5hZ2VyIGJlbG9uZ3MgdG8uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGF0YS5EYXRhTWFuYWdlclBsdWdpbiNzY2VuZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU2NlbmV9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zY2VuZSA9IHNjZW5lO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgU2NlbmUncyBTeXN0ZW1zLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRhdGEuRGF0YU1hbmFnZXJQbHVnaW4jc3lzdGVtc1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU2NlbmVzLlN5c3RlbXN9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zeXN0ZW1zID0gc2NlbmUuc3lzO1xyXG5cclxuICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uY2UoU2NlbmVFdmVudHMuQk9PVCwgdGhpcy5ib290LCB0aGlzKTtcclxuICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uKFNjZW5lRXZlbnRzLlNUQVJULCB0aGlzLnN0YXJ0LCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSwgb25seSBvbmNlLCB3aGVuIHRoZSBTY2VuZSBpcyBmaXJzdCBjcmVhdGVkLlxyXG4gICAgICogRG8gbm90IGludm9rZSBpdCBkaXJlY3RseS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EYXRhLkRhdGFNYW5hZ2VyUGx1Z2luI2Jvb3RcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy41LjFcclxuICAgICAqL1xyXG4gICAgYm9vdDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmV2ZW50cyA9IHRoaXMuc3lzdGVtcy5ldmVudHM7XHJcblxyXG4gICAgICAgIHRoaXMuZXZlbnRzLm9uY2UoU2NlbmVFdmVudHMuREVTVFJPWSwgdGhpcy5kZXN0cm95LCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgU2NlbmUgd2hlbiBpdCBpcyBzdGFydGluZyB1cC5cclxuICAgICAqIEl0IGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBsb2NhbCBzeXN0ZW1zLCBwcm9wZXJ0aWVzIGFuZCBsaXN0ZW5pbmcgZm9yIFNjZW5lIGV2ZW50cy5cclxuICAgICAqIERvIG5vdCBpbnZva2UgaXQgZGlyZWN0bHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGF0YS5EYXRhTWFuYWdlclBsdWdpbiNzdGFydFxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICovXHJcbiAgICBzdGFydDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmV2ZW50cy5vbmNlKFNjZW5lRXZlbnRzLlNIVVRET1dOLCB0aGlzLnNodXRkb3duLCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgU2NlbmUgdGhhdCBvd25zIHRoaXMgcGx1Z2luIGlzIHNodXR0aW5nIGRvd24uXHJcbiAgICAgKiBXZSBuZWVkIHRvIGtpbGwgYW5kIHJlc2V0IGFsbCBpbnRlcm5hbCBwcm9wZXJ0aWVzIGFzIHdlbGwgYXMgc3RvcCBsaXN0ZW5pbmcgdG8gU2NlbmUgZXZlbnRzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRhdGEuRGF0YU1hbmFnZXJQbHVnaW4jc2h1dGRvd25cclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAqL1xyXG4gICAgc2h1dGRvd246IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zeXN0ZW1zLmV2ZW50cy5vZmYoU2NlbmVFdmVudHMuU0hVVERPV04sIHRoaXMuc2h1dGRvd24sIHRoaXMpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBTY2VuZSB0aGF0IG93bnMgdGhpcyBwbHVnaW4gaXMgYmVpbmcgZGVzdHJveWVkLlxyXG4gICAgICogV2UgbmVlZCB0byBzaHV0ZG93biBhbmQgdGhlbiBraWxsIG9mZiBhbGwgZXh0ZXJuYWwgcmVmZXJlbmNlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EYXRhLkRhdGFNYW5hZ2VyUGx1Z2luI2Rlc3Ryb3lcclxuICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIERhdGFNYW5hZ2VyLnByb3RvdHlwZS5kZXN0cm95LmNhbGwodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuZXZlbnRzLm9mZihTY2VuZUV2ZW50cy5TVEFSVCwgdGhpcy5zdGFydCwgdGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuc2NlbmUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuc3lzdGVtcyA9IG51bGw7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcblBsdWdpbkNhY2hlLnJlZ2lzdGVyKCdEYXRhTWFuYWdlclBsdWdpbicsIERhdGFNYW5hZ2VyUGx1Z2luLCAnZGF0YScpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBEYXRhTWFuYWdlclBsdWdpbjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIENoYW5nZSBEYXRhIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgRGF0YSBNYW5hZ2VyIHdoZW4gYW4gaXRlbSBpbiB0aGUgZGF0YSBzdG9yZSBpcyBjaGFuZ2VkLlxyXG4gKiBcclxuICogR2FtZSBPYmplY3RzIHdpdGggZGF0YSBlbmFibGVkIGhhdmUgYW4gaW5zdGFuY2Ugb2YgYSBEYXRhIE1hbmFnZXIgdW5kZXIgdGhlIGBkYXRhYCBwcm9wZXJ0eS4gU28sIHRvIGxpc3RlbiBmb3JcclxuICogYSBjaGFuZ2UgZGF0YSBldmVudCBmcm9tIGEgR2FtZSBPYmplY3QgeW91IHdvdWxkIHVzZTogYHNwcml0ZS5kYXRhLm9uKCdjaGFuZ2VkYXRhJywgbGlzdGVuZXIpYC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCBmb3IgYWxsIGl0ZW1zIHRoYXQgY2hhbmdlIGluIHRoZSBEYXRhIE1hbmFnZXIuXHJcbiAqIFRvIGxpc3RlbiBmb3IgdGhlIGNoYW5nZSBvZiBhIHNwZWNpZmljIGl0ZW0sIHVzZSB0aGUgYENIQU5HRV9EQVRBX0tFWV9FVkVOVGAgZXZlbnQuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuRGF0YS5FdmVudHMjQ0hBTkdFX0RBVEFcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge2FueX0gcGFyZW50IC0gQSByZWZlcmVuY2UgdG8gdGhlIG9iamVjdCB0aGF0IHRoZSBEYXRhIE1hbmFnZXIgcmVzcG9uc2libGUgZm9yIHRoaXMgZXZlbnQgYmVsb25ncyB0by5cclxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSB1bmlxdWUga2V5IG9mIHRoZSBkYXRhIGl0ZW0gd2l0aGluIHRoZSBEYXRhIE1hbmFnZXIuXHJcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZSAtIFRoZSBuZXcgdmFsdWUgb2YgdGhlIGl0ZW0gaW4gdGhlIERhdGEgTWFuYWdlci5cclxuICogQHBhcmFtIHthbnl9IHByZXZpb3VzVmFsdWUgLSBUaGUgcHJldmlvdXMgdmFsdWUgb2YgdGhlIGl0ZW0gaW4gdGhlIERhdGEgTWFuYWdlci5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ2NoYW5nZWRhdGEnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgQ2hhbmdlIERhdGEgS2V5IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIGJ5IGEgRGF0YSBNYW5hZ2VyIHdoZW4gYW4gaXRlbSBpbiB0aGUgZGF0YSBzdG9yZSBpcyBjaGFuZ2VkLlxyXG4gKiBcclxuICogR2FtZSBPYmplY3RzIHdpdGggZGF0YSBlbmFibGVkIGhhdmUgYW4gaW5zdGFuY2Ugb2YgYSBEYXRhIE1hbmFnZXIgdW5kZXIgdGhlIGBkYXRhYCBwcm9wZXJ0eS4gU28sIHRvIGxpc3RlbiBmb3JcclxuICogdGhlIGNoYW5nZSBvZiBhIHNwZWNpZmljIGRhdGEgaXRlbSBmcm9tIGEgR2FtZSBPYmplY3QgeW91IHdvdWxkIHVzZTogYHNwcml0ZS5kYXRhLm9uKCdjaGFuZ2VkYXRhLWtleScsIGxpc3RlbmVyKWAsXHJcbiAqIHdoZXJlIGBrZXlgIGlzIHRoZSB1bmlxdWUgc3RyaW5nIGtleSBvZiB0aGUgZGF0YSBpdGVtLiBGb3IgZXhhbXBsZSwgaWYgeW91IGhhdmUgYSBkYXRhIGl0ZW0gc3RvcmVkIGNhbGxlZCBgZ29sZGBcclxuICogdGhlbiB5b3UgY2FuIGxpc3RlbiBmb3IgYHNwcml0ZS5kYXRhLm9uKCdjaGFuZ2VkYXRhLWdvbGQnKWAuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuRGF0YS5FdmVudHMjQ0hBTkdFX0RBVEFfS0VZXHJcbiAqIEBzaW5jZSAzLjE2LjFcclxuICogXHJcbiAqIEBwYXJhbSB7YW55fSBwYXJlbnQgLSBBIHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0IHRoYXQgb3ducyB0aGUgaW5zdGFuY2Ugb2YgdGhlIERhdGEgTWFuYWdlciByZXNwb25zaWJsZSBmb3IgdGhpcyBldmVudC5cclxuICogQHBhcmFtIHthbnl9IHZhbHVlIC0gVGhlIGl0ZW0gdGhhdCB3YXMgdXBkYXRlZCBpbiB0aGUgRGF0YSBNYW5hZ2VyLiBUaGlzIGNhbiBiZSBvZiBhbnkgZGF0YSB0eXBlLCBpLmUuIGEgc3RyaW5nLCBib29sZWFuLCBudW1iZXIsIG9iamVjdCBvciBpbnN0YW5jZS5cclxuICogQHBhcmFtIHthbnl9IHByZXZpb3VzVmFsdWUgLSBUaGUgcHJldmlvdXMgaXRlbSB0aGF0IHdhcyB1cGRhdGVkIGluIHRoZSBEYXRhIE1hbmFnZXIuIFRoaXMgY2FuIGJlIG9mIGFueSBkYXRhIHR5cGUsIGkuZS4gYSBzdHJpbmcsIGJvb2xlYW4sIG51bWJlciwgb2JqZWN0IG9yIGluc3RhbmNlLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAnY2hhbmdlZGF0YS0nO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgUmVtb3ZlIERhdGEgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYnkgYSBEYXRhIE1hbmFnZXIgd2hlbiBhbiBpdGVtIGlzIHJlbW92ZWQgZnJvbSBpdC5cclxuICogXHJcbiAqIEdhbWUgT2JqZWN0cyB3aXRoIGRhdGEgZW5hYmxlZCBoYXZlIGFuIGluc3RhbmNlIG9mIGEgRGF0YSBNYW5hZ2VyIHVuZGVyIHRoZSBgZGF0YWAgcHJvcGVydHkuIFNvLCB0byBsaXN0ZW4gZm9yXHJcbiAqIHRoZSByZW1vdmFsIG9mIGEgZGF0YSBpdGVtIG9uIGEgR2FtZSBPYmplY3QgeW91IHdvdWxkIHVzZTogYHNwcml0ZS5kYXRhLm9uKCdyZW1vdmVkYXRhJywgbGlzdGVuZXIpYC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5EYXRhLkV2ZW50cyNSRU1PVkVfREFUQVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICogXHJcbiAqIEBwYXJhbSB7YW55fSBwYXJlbnQgLSBBIHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0IHRoYXQgb3ducyB0aGUgaW5zdGFuY2Ugb2YgdGhlIERhdGEgTWFuYWdlciByZXNwb25zaWJsZSBmb3IgdGhpcyBldmVudC5cclxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSB1bmlxdWUga2V5IG9mIHRoZSBkYXRhIGl0ZW0gd2l0aGluIHRoZSBEYXRhIE1hbmFnZXIuXHJcbiAqIEBwYXJhbSB7YW55fSBkYXRhIC0gVGhlIGl0ZW0gdGhhdCB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBEYXRhIE1hbmFnZXIuIFRoaXMgY2FuIGJlIG9mIGFueSBkYXRhIHR5cGUsIGkuZS4gYSBzdHJpbmcsIGJvb2xlYW4sIG51bWJlciwgb2JqZWN0IG9yIGluc3RhbmNlLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAncmVtb3ZlZGF0YSc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBTZXQgRGF0YSBFdmVudC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCBieSBhIERhdGEgTWFuYWdlciB3aGVuIGEgbmV3IGl0ZW0gaXMgYWRkZWQgdG8gdGhlIGRhdGEgc3RvcmUuXHJcbiAqIFxyXG4gKiBHYW1lIE9iamVjdHMgd2l0aCBkYXRhIGVuYWJsZWQgaGF2ZSBhbiBpbnN0YW5jZSBvZiBhIERhdGEgTWFuYWdlciB1bmRlciB0aGUgYGRhdGFgIHByb3BlcnR5LiBTbywgdG8gbGlzdGVuIGZvclxyXG4gKiB0aGUgYWRkaXRpb24gb2YgYSBuZXcgZGF0YSBpdGVtIG9uIGEgR2FtZSBPYmplY3QgeW91IHdvdWxkIHVzZTogYHNwcml0ZS5kYXRhLm9uKCdzZXRkYXRhJywgbGlzdGVuZXIpYC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5EYXRhLkV2ZW50cyNTRVRfREFUQVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICogXHJcbiAqIEBwYXJhbSB7YW55fSBwYXJlbnQgLSBBIHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0IHRoYXQgb3ducyB0aGUgaW5zdGFuY2Ugb2YgdGhlIERhdGEgTWFuYWdlciByZXNwb25zaWJsZSBmb3IgdGhpcyBldmVudC5cclxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSB1bmlxdWUga2V5IG9mIHRoZSBkYXRhIGl0ZW0gd2l0aGluIHRoZSBEYXRhIE1hbmFnZXIuXHJcbiAqIEBwYXJhbSB7YW55fSBkYXRhIC0gVGhlIGl0ZW0gdGhhdCB3YXMgYWRkZWQgdG8gdGhlIERhdGEgTWFuYWdlci4gVGhpcyBjYW4gYmUgb2YgYW55IGRhdGEgdHlwZSwgaS5lLiBhIHN0cmluZywgYm9vbGVhbiwgbnVtYmVyLCBvYmplY3Qgb3IgaW5zdGFuY2UuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdzZXRkYXRhJztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuRGF0YS5FdmVudHNcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBDSEFOR0VfREFUQTogcmVxdWlyZSgnLi9DSEFOR0VfREFUQV9FVkVOVCcpLFxyXG4gICAgQ0hBTkdFX0RBVEFfS0VZOiByZXF1aXJlKCcuL0NIQU5HRV9EQVRBX0tFWV9FVkVOVCcpLFxyXG4gICAgUkVNT1ZFX0RBVEE6IHJlcXVpcmUoJy4vUkVNT1ZFX0RBVEFfRVZFTlQnKSxcclxuICAgIFNFVF9EQVRBOiByZXF1aXJlKCcuL1NFVF9EQVRBX0VWRU5UJylcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkRhdGFcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBEYXRhTWFuYWdlcjogcmVxdWlyZSgnLi9EYXRhTWFuYWdlcicpLFxyXG4gICAgRGF0YU1hbmFnZXJQbHVnaW46IHJlcXVpcmUoJy4vRGF0YU1hbmFnZXJQbHVnaW4nKSxcclxuICAgIEV2ZW50czogcmVxdWlyZSgnLi9ldmVudHMnKVxyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQnJvd3NlciA9IHJlcXVpcmUoJy4vQnJvd3NlcicpO1xyXG5cclxuLyoqXHJcbiAqIERldGVybWluZXMgdGhlIGF1ZGlvIHBsYXliYWNrIGNhcGFiaWxpdGllcyBvZiB0aGUgZGV2aWNlIHJ1bm5pbmcgdGhpcyBQaGFzZXIgR2FtZSBpbnN0YW5jZS5cclxuICogVGhlc2UgdmFsdWVzIGFyZSByZWFkLW9ubHkgYW5kIHBvcHVsYXRlZCBkdXJpbmcgdGhlIGJvb3Qgc2VxdWVuY2Ugb2YgdGhlIGdhbWUuXHJcbiAqIFRoZXkgYXJlIHRoZW4gcmVmZXJlbmNlZCBieSBpbnRlcm5hbCBnYW1lIHN5c3RlbXMgYW5kIGFyZSBhdmFpbGFibGUgZm9yIHlvdSB0byBhY2Nlc3NcclxuICogdmlhIGB0aGlzLnN5cy5nYW1lLmRldmljZS5hdWRpb2AgZnJvbSB3aXRoaW4gYW55IFNjZW5lLlxyXG4gKiBcclxuICogQHR5cGVkZWYge29iamVjdH0gUGhhc2VyLkRldmljZS5BdWRpb1xyXG4gKiBAc2luY2UgMy4wLjBcclxuICogXHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gYXVkaW9EYXRhIC0gQ2FuIHRoaXMgZGV2aWNlIHBsYXkgSFRNTCBBdWRpbyB0YWdzP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGRvbGJ5IC0gQ2FuIHRoaXMgZGV2aWNlIHBsYXkgRUMtMyBEb2xieSBEaWdpdGFsIFBsdXMgZmlsZXM/XHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gbTRhIC0gQ2FuIHRoaXMgZGV2aWNlIGNhbiBwbGF5IG00YSBmaWxlcy5cclxuICogQHByb3BlcnR5IHtib29sZWFufSBtcDMgLSBDYW4gdGhpcyBkZXZpY2UgcGxheSBtcDMgZmlsZXM/XHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gb2dnIC0gQ2FuIHRoaXMgZGV2aWNlIHBsYXkgb2dnIGZpbGVzP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IG9wdXMgLSBDYW4gdGhpcyBkZXZpY2UgcGxheSBvcHVzIGZpbGVzP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHdhdiAtIENhbiB0aGlzIGRldmljZSBwbGF5IHdhdiBmaWxlcz9cclxuICogQHByb3BlcnR5IHtib29sZWFufSB3ZWJBdWRpbyAtIERvZXMgdGhpcyBkZXZpY2UgaGF2ZSB0aGUgV2ViIEF1ZGlvIEFQST9cclxuICogQHByb3BlcnR5IHtib29sZWFufSB3ZWJtIC0gQ2FuIHRoaXMgZGV2aWNlIHBsYXkgd2VibSBmaWxlcz9cclxuICovXHJcbnZhciBBdWRpbyA9IHtcclxuXHJcbiAgICBhdWRpb0RhdGE6IGZhbHNlLFxyXG4gICAgZG9sYnk6IGZhbHNlLFxyXG4gICAgbTRhOiBmYWxzZSxcclxuICAgIG1wMzogZmFsc2UsXHJcbiAgICBvZ2c6IGZhbHNlLFxyXG4gICAgb3B1czogZmFsc2UsXHJcbiAgICB3YXY6IGZhbHNlLFxyXG4gICAgd2ViQXVkaW86IGZhbHNlLFxyXG4gICAgd2VibTogZmFsc2VcclxuXHJcbn07XHJcblxyXG5mdW5jdGlvbiBpbml0ICgpXHJcbntcclxuICAgIEF1ZGlvLmF1ZGlvRGF0YSA9ICEhKHdpbmRvd1snQXVkaW8nXSk7XHJcblxyXG4gICAgQXVkaW8ud2ViQXVkaW8gPSAhISh3aW5kb3dbJ0F1ZGlvQ29udGV4dCddIHx8IHdpbmRvd1snd2Via2l0QXVkaW9Db250ZXh0J10pO1xyXG5cclxuICAgIHZhciBhdWRpb0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhdWRpbycpO1xyXG5cclxuICAgIHZhciByZXN1bHQgPSAhIWF1ZGlvRWxlbWVudC5jYW5QbGF5VHlwZTtcclxuXHJcbiAgICB0cnlcclxuICAgIHtcclxuICAgICAgICBpZiAocmVzdWx0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKGF1ZGlvRWxlbWVudC5jYW5QbGF5VHlwZSgnYXVkaW8vb2dnOyBjb2RlY3M9XCJ2b3JiaXNcIicpLnJlcGxhY2UoL15ubyQvLCAnJykpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIEF1ZGlvLm9nZyA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChhdWRpb0VsZW1lbnQuY2FuUGxheVR5cGUoJ2F1ZGlvL29nZzsgY29kZWNzPVwib3B1c1wiJykucmVwbGFjZSgvXm5vJC8sICcnKSB8fCBhdWRpb0VsZW1lbnQuY2FuUGxheVR5cGUoJ2F1ZGlvL29wdXM7JykucmVwbGFjZSgvXm5vJC8sICcnKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgQXVkaW8ub3B1cyA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChhdWRpb0VsZW1lbnQuY2FuUGxheVR5cGUoJ2F1ZGlvL21wZWc7JykucmVwbGFjZSgvXm5vJC8sICcnKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgQXVkaW8ubXAzID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gIE1pbWV0eXBlcyBhY2NlcHRlZDpcclxuICAgICAgICAgICAgLy8gIGRldmVsb3Blci5tb3ppbGxhLm9yZy9Fbi9NZWRpYV9mb3JtYXRzX3N1cHBvcnRlZF9ieV90aGVfYXVkaW9fYW5kX3ZpZGVvX2VsZW1lbnRzXHJcbiAgICAgICAgICAgIC8vICBiaXQubHkvaXBob25lb3Njb2RlY3NcclxuICAgICAgICAgICAgaWYgKGF1ZGlvRWxlbWVudC5jYW5QbGF5VHlwZSgnYXVkaW8vd2F2OyBjb2RlY3M9XCIxXCInKS5yZXBsYWNlKC9ebm8kLywgJycpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBBdWRpby53YXYgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoYXVkaW9FbGVtZW50LmNhblBsYXlUeXBlKCdhdWRpby94LW00YTsnKSB8fCBhdWRpb0VsZW1lbnQuY2FuUGxheVR5cGUoJ2F1ZGlvL2FhYzsnKS5yZXBsYWNlKC9ebm8kLywgJycpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBBdWRpby5tNGEgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoYXVkaW9FbGVtZW50LmNhblBsYXlUeXBlKCdhdWRpby93ZWJtOyBjb2RlY3M9XCJ2b3JiaXNcIicpLnJlcGxhY2UoL15ubyQvLCAnJykpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIEF1ZGlvLndlYm0gPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoYXVkaW9FbGVtZW50LmNhblBsYXlUeXBlKCdhdWRpby9tcDQ7Y29kZWNzPVwiZWMtM1wiJykgIT09ICcnKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQnJvd3Nlci5lZGdlKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIEF1ZGlvLmRvbGJ5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKEJyb3dzZXIuc2FmYXJpICYmIEJyb3dzZXIuc2FmYXJpVmVyc2lvbiA+PSA5KVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICgoL01hYyBPUyBYIChcXGQrKV8oXFxkKykvKS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKVxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1ham9yID0gcGFyc2VJbnQoUmVnRXhwLiQxLCAxMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtaW5vciA9IHBhcnNlSW50KFJlZ0V4cC4kMiwgMTApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChtYWpvciA9PT0gMTAgJiYgbWlub3IgPj0gMTEpIHx8IG1ham9yID4gMTApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvLmRvbGJ5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChlKVxyXG4gICAge1xyXG4gICAgICAgIC8vICBOb3RoaW5nIHRvIGRvIGhlcmVcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gQXVkaW87XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gaW5pdCgpO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBPUyA9IHJlcXVpcmUoJy4vT1MnKTtcclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHRoZSBicm93c2VyIHR5cGUgYW5kIHZlcnNpb24gcnVubmluZyB0aGlzIFBoYXNlciBHYW1lIGluc3RhbmNlLlxyXG4gKiBUaGVzZSB2YWx1ZXMgYXJlIHJlYWQtb25seSBhbmQgcG9wdWxhdGVkIGR1cmluZyB0aGUgYm9vdCBzZXF1ZW5jZSBvZiB0aGUgZ2FtZS5cclxuICogVGhleSBhcmUgdGhlbiByZWZlcmVuY2VkIGJ5IGludGVybmFsIGdhbWUgc3lzdGVtcyBhbmQgYXJlIGF2YWlsYWJsZSBmb3IgeW91IHRvIGFjY2Vzc1xyXG4gKiB2aWEgYHRoaXMuc3lzLmdhbWUuZGV2aWNlLmJyb3dzZXJgIGZyb20gd2l0aGluIGFueSBTY2VuZS5cclxuICogXHJcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFBoYXNlci5EZXZpY2UuQnJvd3NlclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICogXHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gY2hyb21lIC0gU2V0IHRvIHRydWUgaWYgcnVubmluZyBpbiBDaHJvbWUuXHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZWRnZSAtIFNldCB0byB0cnVlIGlmIHJ1bm5pbmcgaW4gTWljcm9zb2Z0IEVkZ2UgYnJvd3Nlci5cclxuICogQHByb3BlcnR5IHtib29sZWFufSBmaXJlZm94IC0gU2V0IHRvIHRydWUgaWYgcnVubmluZyBpbiBGaXJlZm94LlxyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGllIC0gU2V0IHRvIHRydWUgaWYgcnVubmluZyBpbiBJbnRlcm5ldCBFeHBsb3JlciAxMSBvciBsZXNzIChub3QgRWRnZSkuXHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gbW9iaWxlU2FmYXJpIC0gU2V0IHRvIHRydWUgaWYgcnVubmluZyBpbiBNb2JpbGUgU2FmYXJpLlxyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IG9wZXJhIC0gU2V0IHRvIHRydWUgaWYgcnVubmluZyBpbiBPcGVyYS5cclxuICogQHByb3BlcnR5IHtib29sZWFufSBzYWZhcmkgLSBTZXQgdG8gdHJ1ZSBpZiBydW5uaW5nIGluIFNhZmFyaS5cclxuICogQHByb3BlcnR5IHtib29sZWFufSBzaWxrIC0gU2V0IHRvIHRydWUgaWYgcnVubmluZyBpbiB0aGUgU2lsayBicm93c2VyIChhcyB1c2VkIG9uIHRoZSBBbWF6b24gS2luZGxlKVxyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHRyaWRlbnQgLSBTZXQgdG8gdHJ1ZSBpZiBydW5uaW5nIGEgVHJpZGVudCB2ZXJzaW9uIG9mIEludGVybmV0IEV4cGxvcmVyIChJRTExKylcclxuICogQHByb3BlcnR5IHtudW1iZXJ9IGNocm9tZVZlcnNpb24gLSBJZiBydW5uaW5nIGluIENocm9tZSB0aGlzIHdpbGwgY29udGFpbiB0aGUgbWFqb3IgdmVyc2lvbiBudW1iZXIuXHJcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBmaXJlZm94VmVyc2lvbiAtIElmIHJ1bm5pbmcgaW4gRmlyZWZveCB0aGlzIHdpbGwgY29udGFpbiB0aGUgbWFqb3IgdmVyc2lvbiBudW1iZXIuXHJcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBpZVZlcnNpb24gLSBJZiBydW5uaW5nIGluIEludGVybmV0IEV4cGxvcmVyIHRoaXMgd2lsbCBjb250YWluIHRoZSBtYWpvciB2ZXJzaW9uIG51bWJlci4gQmV5b25kIElFMTAgeW91IHNob3VsZCB1c2UgQnJvd3Nlci50cmlkZW50IGFuZCBCcm93c2VyLnRyaWRlbnRWZXJzaW9uLlxyXG4gKiBAcHJvcGVydHkge251bWJlcn0gc2FmYXJpVmVyc2lvbiAtIElmIHJ1bm5pbmcgaW4gU2FmYXJpIHRoaXMgd2lsbCBjb250YWluIHRoZSBtYWpvciB2ZXJzaW9uIG51bWJlci5cclxuICogQHByb3BlcnR5IHtudW1iZXJ9IHRyaWRlbnRWZXJzaW9uIC0gSWYgcnVubmluZyBpbiBJbnRlcm5ldCBFeHBsb3JlciAxMSB0aGlzIHdpbGwgY29udGFpbiB0aGUgbWFqb3IgdmVyc2lvbiBudW1iZXIuIFNlZSB7QGxpbmsgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L2llL21zNTM3NTAzKHY9dnMuODUpLmFzcHh9XHJcbiAqL1xyXG52YXIgQnJvd3NlciA9IHtcclxuXHJcbiAgICBjaHJvbWU6IGZhbHNlLFxyXG4gICAgY2hyb21lVmVyc2lvbjogMCxcclxuICAgIGVkZ2U6IGZhbHNlLFxyXG4gICAgZmlyZWZveDogZmFsc2UsXHJcbiAgICBmaXJlZm94VmVyc2lvbjogMCxcclxuICAgIGllOiBmYWxzZSxcclxuICAgIGllVmVyc2lvbjogMCxcclxuICAgIG1vYmlsZVNhZmFyaTogZmFsc2UsXHJcbiAgICBvcGVyYTogZmFsc2UsXHJcbiAgICBzYWZhcmk6IGZhbHNlLFxyXG4gICAgc2FmYXJpVmVyc2lvbjogMCxcclxuICAgIHNpbGs6IGZhbHNlLFxyXG4gICAgdHJpZGVudDogZmFsc2UsXHJcbiAgICB0cmlkZW50VmVyc2lvbjogMFxyXG5cclxufTtcclxuXHJcbmZ1bmN0aW9uIGluaXQgKClcclxue1xyXG4gICAgdmFyIHVhID0gbmF2aWdhdG9yLnVzZXJBZ2VudDtcclxuXHJcbiAgICBpZiAoL0VkZ2VcXC9cXGQrLy50ZXN0KHVhKSlcclxuICAgIHtcclxuICAgICAgICBCcm93c2VyLmVkZ2UgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoKC9DaHJvbWVcXC8oXFxkKykvKS50ZXN0KHVhKSAmJiAhT1Mud2luZG93c1Bob25lKVxyXG4gICAge1xyXG4gICAgICAgIEJyb3dzZXIuY2hyb21lID0gdHJ1ZTtcclxuICAgICAgICBCcm93c2VyLmNocm9tZVZlcnNpb24gPSBwYXJzZUludChSZWdFeHAuJDEsIDEwKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKCgvRmlyZWZveFxcRCsoXFxkKykvKS50ZXN0KHVhKSlcclxuICAgIHtcclxuICAgICAgICBCcm93c2VyLmZpcmVmb3ggPSB0cnVlO1xyXG4gICAgICAgIEJyb3dzZXIuZmlyZWZveFZlcnNpb24gPSBwYXJzZUludChSZWdFeHAuJDEsIDEwKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKCgvQXBwbGVXZWJLaXQvKS50ZXN0KHVhKSAmJiBPUy5pT1MpXHJcbiAgICB7XHJcbiAgICAgICAgQnJvd3Nlci5tb2JpbGVTYWZhcmkgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoKC9NU0lFIChcXGQrXFwuXFxkKyk7LykudGVzdCh1YSkpXHJcbiAgICB7XHJcbiAgICAgICAgQnJvd3Nlci5pZSA9IHRydWU7XHJcbiAgICAgICAgQnJvd3Nlci5pZVZlcnNpb24gPSBwYXJzZUludChSZWdFeHAuJDEsIDEwKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKCgvT3BlcmEvKS50ZXN0KHVhKSlcclxuICAgIHtcclxuICAgICAgICBCcm93c2VyLm9wZXJhID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKCgvU2FmYXJpLykudGVzdCh1YSkgJiYgIU9TLndpbmRvd3NQaG9uZSlcclxuICAgIHtcclxuICAgICAgICBCcm93c2VyLnNhZmFyaSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICgoL1RyaWRlbnRcXC8oXFxkK1xcLlxcZCspKC4qKXJ2OihcXGQrXFwuXFxkKykvKS50ZXN0KHVhKSlcclxuICAgIHtcclxuICAgICAgICBCcm93c2VyLmllID0gdHJ1ZTtcclxuICAgICAgICBCcm93c2VyLnRyaWRlbnQgPSB0cnVlO1xyXG4gICAgICAgIEJyb3dzZXIudHJpZGVudFZlcnNpb24gPSBwYXJzZUludChSZWdFeHAuJDEsIDEwKTtcclxuICAgICAgICBCcm93c2VyLmllVmVyc2lvbiA9IHBhcnNlSW50KFJlZ0V4cC4kMywgMTApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBTaWxrIGdldHMgaXRzIG93biBpZiBjbGF1c2UgYmVjYXVzZSBpdHMgdWEgYWxzbyBjb250YWlucyAnU2FmYXJpJ1xyXG4gICAgaWYgKCgvU2lsay8pLnRlc3QodWEpKVxyXG4gICAge1xyXG4gICAgICAgIEJyb3dzZXIuc2lsayA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIEJyb3dzZXI7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gaW5pdCgpO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDYW52YXNQb29sID0gcmVxdWlyZSgnLi4vZGlzcGxheS9jYW52YXMvQ2FudmFzUG9vbCcpO1xyXG5cclxuLyoqXHJcbiAqIERldGVybWluZXMgdGhlIGNhbnZhcyBmZWF0dXJlcyBvZiB0aGUgYnJvd3NlciBydW5uaW5nIHRoaXMgUGhhc2VyIEdhbWUgaW5zdGFuY2UuXHJcbiAqIFRoZXNlIHZhbHVlcyBhcmUgcmVhZC1vbmx5IGFuZCBwb3B1bGF0ZWQgZHVyaW5nIHRoZSBib290IHNlcXVlbmNlIG9mIHRoZSBnYW1lLlxyXG4gKiBUaGV5IGFyZSB0aGVuIHJlZmVyZW5jZWQgYnkgaW50ZXJuYWwgZ2FtZSBzeXN0ZW1zIGFuZCBhcmUgYXZhaWxhYmxlIGZvciB5b3UgdG8gYWNjZXNzXHJcbiAqIHZpYSBgdGhpcy5zeXMuZ2FtZS5kZXZpY2UuY2FudmFzRmVhdHVyZXNgIGZyb20gd2l0aGluIGFueSBTY2VuZS5cclxuICogXHJcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFBoYXNlci5EZXZpY2UuQ2FudmFzRmVhdHVyZXNcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIFxyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHN1cHBvcnRJbnZlcnNlQWxwaGEgLSBTZXQgdG8gdHJ1ZSBpZiB0aGUgYnJvd3NlciBzdXBwb3J0cyBpbnZlcnNlZCBhbHBoYS5cclxuICogQHByb3BlcnR5IHtib29sZWFufSBzdXBwb3J0TmV3QmxlbmRNb2RlcyAtIFNldCB0byB0cnVlIGlmIHRoZSBicm93c2VyIHN1cHBvcnRzIG5ldyBjYW52YXMgYmxlbmQgbW9kZXMuXHJcbiAqL1xyXG52YXIgQ2FudmFzRmVhdHVyZXMgPSB7XHJcblxyXG4gICAgc3VwcG9ydEludmVyc2VBbHBoYTogZmFsc2UsXHJcbiAgICBzdXBwb3J0TmV3QmxlbmRNb2RlczogZmFsc2VcclxuXHJcbn07XHJcblxyXG5mdW5jdGlvbiBjaGVja0JsZW5kTW9kZSAoKVxyXG57XHJcbiAgICB2YXIgcG5nSGVhZCA9ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFRQUFBQUJBUU1BQUFERDhwMk9BQUFBQTFCTVZFWC8nO1xyXG4gICAgdmFyIHBuZ0VuZCA9ICdBQUFBQ2tsRVFWUUkxMk5nQUFBQUFnQUI0aUc4TXdBQUFBQkpSVTVFcmtKZ2dnPT0nO1xyXG5cclxuICAgIHZhciBtYWdlbnRhID0gbmV3IEltYWdlKCk7XHJcblxyXG4gICAgbWFnZW50YS5vbmxvYWQgPSBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciB5ZWxsb3cgPSBuZXcgSW1hZ2UoKTtcclxuXHJcbiAgICAgICAgeWVsbG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgY2FudmFzID0gQ2FudmFzUG9vbC5jcmVhdGUoeWVsbG93LCA2LCAxKTtcclxuICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnRleHQuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ211bHRpcGx5JztcclxuXHJcbiAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKG1hZ2VudGEsIDAsIDApO1xyXG4gICAgICAgICAgICBjb250ZXh0LmRyYXdJbWFnZSh5ZWxsb3csIDIsIDApO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFjb250ZXh0LmdldEltYWdlRGF0YSgyLCAwLCAxLCAxKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB2YXIgZGF0YSA9IGNvbnRleHQuZ2V0SW1hZ2VEYXRhKDIsIDAsIDEsIDEpLmRhdGE7XHJcblxyXG4gICAgICAgICAgICBDYW52YXNQb29sLnJlbW92ZSh5ZWxsb3cpO1xyXG5cclxuICAgICAgICAgICAgQ2FudmFzRmVhdHVyZXMuc3VwcG9ydE5ld0JsZW5kTW9kZXMgPSAoZGF0YVswXSA9PT0gMjU1ICYmIGRhdGFbMV0gPT09IDAgJiYgZGF0YVsyXSA9PT0gMCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgeWVsbG93LnNyYyA9IHBuZ0hlYWQgKyAnL3dDS3h2UkYnICsgcG5nRW5kO1xyXG4gICAgfTtcclxuXHJcbiAgICBtYWdlbnRhLnNyYyA9IHBuZ0hlYWQgKyAnQVA4MDRPYTYnICsgcG5nRW5kO1xyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY2hlY2tJbnZlcnNlQWxwaGEgKClcclxue1xyXG4gICAgdmFyIGNhbnZhcyA9IENhbnZhc1Bvb2wuY3JlYXRlKHRoaXMsIDIsIDEpO1xyXG4gICAgdmFyIGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuXHJcbiAgICBjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDEwLCAyMCwgMzAsIDAuNSknO1xyXG5cclxuICAgIC8vICBEcmF3IGEgc2luZ2xlIHBpeGVsXHJcbiAgICBjb250ZXh0LmZpbGxSZWN0KDAsIDAsIDEsIDEpO1xyXG5cclxuICAgIC8vICBHZXQgdGhlIGNvbG9yIHZhbHVlc1xyXG4gICAgdmFyIHMxID0gY29udGV4dC5nZXRJbWFnZURhdGEoMCwgMCwgMSwgMSk7XHJcblxyXG4gICAgaWYgKHMxID09PSBudWxsKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgUGxvdCB0aGVtIHRvIHgyXHJcbiAgICBjb250ZXh0LnB1dEltYWdlRGF0YShzMSwgMSwgMCk7XHJcblxyXG4gICAgLy8gIEdldCB0aG9zZSB2YWx1ZXNcclxuICAgIHZhciBzMiA9IGNvbnRleHQuZ2V0SW1hZ2VEYXRhKDEsIDAsIDEsIDEpO1xyXG5cclxuICAgIC8vICBDb21wYXJlIGFuZCByZXR1cm5cclxuICAgIHJldHVybiAoczIuZGF0YVswXSA9PT0gczEuZGF0YVswXSAmJiBzMi5kYXRhWzFdID09PSBzMS5kYXRhWzFdICYmIHMyLmRhdGFbMl0gPT09IHMxLmRhdGFbMl0gJiYgczIuZGF0YVszXSA9PT0gczEuZGF0YVszXSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGluaXQgKClcclxue1xyXG4gICAgaWYgKGRvY3VtZW50ICE9PSB1bmRlZmluZWQpXHJcbiAgICB7XHJcbiAgICAgICAgQ2FudmFzRmVhdHVyZXMuc3VwcG9ydE5ld0JsZW5kTW9kZXMgPSBjaGVja0JsZW5kTW9kZSgpO1xyXG4gICAgICAgIENhbnZhc0ZlYXR1cmVzLnN1cHBvcnRJbnZlcnNlQWxwaGEgPSBjaGVja0ludmVyc2VBbHBoYSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBDYW52YXNGZWF0dXJlcztcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBpbml0KCk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIE9TID0gcmVxdWlyZSgnLi9PUycpO1xyXG52YXIgQnJvd3NlciA9IHJlcXVpcmUoJy4vQnJvd3NlcicpO1xyXG52YXIgQ2FudmFzUG9vbCA9IHJlcXVpcmUoJy4uL2Rpc3BsYXkvY2FudmFzL0NhbnZhc1Bvb2wnKTtcclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHRoZSBmZWF0dXJlcyBvZiB0aGUgYnJvd3NlciBydW5uaW5nIHRoaXMgUGhhc2VyIEdhbWUgaW5zdGFuY2UuXHJcbiAqIFRoZXNlIHZhbHVlcyBhcmUgcmVhZC1vbmx5IGFuZCBwb3B1bGF0ZWQgZHVyaW5nIHRoZSBib290IHNlcXVlbmNlIG9mIHRoZSBnYW1lLlxyXG4gKiBUaGV5IGFyZSB0aGVuIHJlZmVyZW5jZWQgYnkgaW50ZXJuYWwgZ2FtZSBzeXN0ZW1zIGFuZCBhcmUgYXZhaWxhYmxlIGZvciB5b3UgdG8gYWNjZXNzXHJcbiAqIHZpYSBgdGhpcy5zeXMuZ2FtZS5kZXZpY2UuZmVhdHVyZXNgIGZyb20gd2l0aGluIGFueSBTY2VuZS5cclxuICogXHJcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFBoYXNlci5EZXZpY2UuRmVhdHVyZXNcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIFxyXG4gKiBAcHJvcGVydHkgez9ib29sZWFufSBjYW52YXNCaXRCbHRTaGlmdCAtIFRydWUgaWYgY2FudmFzIHN1cHBvcnRzIGEgJ2NvcHknIGJpdGJsdCBvbnRvIGl0c2VsZiB3aGVuIHRoZSBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHJlZ2lvbnMgb3ZlcmxhcC5cclxuICogQHByb3BlcnR5IHtib29sZWFufSBjYW52YXMgLSBJcyBjYW52YXMgYXZhaWxhYmxlP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGZpbGUgLSBJcyBmaWxlIGF2YWlsYWJsZT9cclxuICogQHByb3BlcnR5IHtib29sZWFufSBmaWxlU3lzdGVtIC0gSXMgZmlsZVN5c3RlbSBhdmFpbGFibGU/XHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZ2V0VXNlck1lZGlhIC0gRG9lcyB0aGUgZGV2aWNlIHN1cHBvcnQgdGhlIGdldFVzZXJNZWRpYSBBUEk/XHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gbGl0dGxlRW5kaWFuIC0gSXMgdGhlIGRldmljZSBiaWcgb3IgbGl0dGxlIGVuZGlhbj8gKG9ubHkgZGV0ZWN0ZWQgaWYgdGhlIGJyb3dzZXIgc3VwcG9ydHMgVHlwZWRBcnJheXMpXHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gbG9jYWxTdG9yYWdlIC0gSXMgbG9jYWxTdG9yYWdlIGF2YWlsYWJsZT9cclxuICogQHByb3BlcnR5IHtib29sZWFufSBwb2ludGVyTG9jayAtIElzIFBvaW50ZXIgTG9jayBhdmFpbGFibGU/XHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gc3VwcG9ydDMyYml0IC0gRG9lcyB0aGUgZGV2aWNlIGNvbnRleHQgc3VwcG9ydCAzMmJpdCBwaXhlbCBtYW5pcHVsYXRpb24gdXNpbmcgYXJyYXkgYnVmZmVyIHZpZXdzP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHZpYnJhdGlvbiAtIERvZXMgdGhlIGRldmljZSBzdXBwb3J0IHRoZSBWaWJyYXRpb24gQVBJP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHdlYkdMIC0gSXMgd2ViR0wgYXZhaWxhYmxlP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHdvcmtlciAtIElzIHdvcmtlciBhdmFpbGFibGU/XHJcbiAqL1xyXG52YXIgRmVhdHVyZXMgPSB7XHJcblxyXG4gICAgY2FudmFzOiBmYWxzZSxcclxuICAgIGNhbnZhc0JpdEJsdFNoaWZ0OiBudWxsLFxyXG4gICAgZmlsZTogZmFsc2UsXHJcbiAgICBmaWxlU3lzdGVtOiBmYWxzZSxcclxuICAgIGdldFVzZXJNZWRpYTogdHJ1ZSxcclxuICAgIGxpdHRsZUVuZGlhbjogZmFsc2UsXHJcbiAgICBsb2NhbFN0b3JhZ2U6IGZhbHNlLFxyXG4gICAgcG9pbnRlckxvY2s6IGZhbHNlLFxyXG4gICAgc3VwcG9ydDMyYml0OiBmYWxzZSxcclxuICAgIHZpYnJhdGlvbjogZmFsc2UsXHJcbiAgICB3ZWJHTDogZmFsc2UsXHJcbiAgICB3b3JrZXI6IGZhbHNlXHJcblxyXG59O1xyXG5cclxuLy8gQ2hlY2sgTGl0dGxlIG9yIEJpZyBFbmRpYW4gc3lzdGVtLlxyXG4vLyBAYXV0aG9yIE1hdHQgRGVzTGF1cmllcnMgKEBtYXR0ZGVzbClcclxuZnVuY3Rpb24gY2hlY2tJc0xpdHRsZUVuZGlhbiAoKVxyXG57XHJcbiAgICB2YXIgYSA9IG5ldyBBcnJheUJ1ZmZlcig0KTtcclxuICAgIHZhciBiID0gbmV3IFVpbnQ4QXJyYXkoYSk7XHJcbiAgICB2YXIgYyA9IG5ldyBVaW50MzJBcnJheShhKTtcclxuXHJcbiAgICBiWzBdID0gMHhhMTtcclxuICAgIGJbMV0gPSAweGIyO1xyXG4gICAgYlsyXSA9IDB4YzM7XHJcbiAgICBiWzNdID0gMHhkNDtcclxuXHJcbiAgICBpZiAoY1swXSA9PT0gMHhkNGMzYjJhMSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY1swXSA9PT0gMHhhMWIyYzNkNClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIENvdWxkIG5vdCBkZXRlcm1pbmUgZW5kaWFubmVzc1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBpbml0ICgpXHJcbntcclxuICAgIEZlYXR1cmVzLmNhbnZhcyA9ICEhd2luZG93WydDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQnXTtcclxuXHJcbiAgICB0cnlcclxuICAgIHtcclxuICAgICAgICBGZWF0dXJlcy5sb2NhbFN0b3JhZ2UgPSAhIWxvY2FsU3RvcmFnZS5nZXRJdGVtO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKVxyXG4gICAge1xyXG4gICAgICAgIEZlYXR1cmVzLmxvY2FsU3RvcmFnZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIEZlYXR1cmVzLmZpbGUgPSAhIXdpbmRvd1snRmlsZSddICYmICEhd2luZG93WydGaWxlUmVhZGVyJ10gJiYgISF3aW5kb3dbJ0ZpbGVMaXN0J10gJiYgISF3aW5kb3dbJ0Jsb2InXTtcclxuICAgIEZlYXR1cmVzLmZpbGVTeXN0ZW0gPSAhIXdpbmRvd1sncmVxdWVzdEZpbGVTeXN0ZW0nXTtcclxuXHJcbiAgICB2YXIgaXNVaW50OCA9IGZhbHNlO1xyXG5cclxuICAgIHZhciB0ZXN0V2ViR0wgPSBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh3aW5kb3dbJ1dlYkdMUmVuZGVyaW5nQ29udGV4dCddKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdHJ5XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhciBjYW52YXMgPSBDYW52YXNQb29sLmNyZWF0ZVdlYkdMKHRoaXMpO1xyXG5cclxuICAgICAgICAgICAgICAgIHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnd2ViZ2wnKSB8fCBjYW52YXMuZ2V0Q29udGV4dCgnZXhwZXJpbWVudGFsLXdlYmdsJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIGNhbnZhczJEID0gQ2FudmFzUG9vbC5jcmVhdGUyRCh0aGlzKTtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXIgY3R4MkQgPSBjYW52YXMyRC5nZXRDb250ZXh0KCcyZCcpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vICBDYW4ndCBiZSBkb25lIG9uIGEgd2ViZ2wgY29udGV4dFxyXG4gICAgICAgICAgICAgICAgdmFyIGltYWdlID0gY3R4MkQuY3JlYXRlSW1hZ2VEYXRhKDEsIDEpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vICBUZXN0IHRvIHNlZSBpZiBJbWFnZURhdGEgdXNlcyBDYW52YXNQaXhlbEFycmF5IG9yIFVpbnQ4Q2xhbXBlZEFycmF5LlxyXG4gICAgICAgICAgICAgICAgLy8gIEBhdXRob3IgTWF0dCBEZXNMYXVyaWVycyAoQG1hdHRkZXNsKVxyXG4gICAgICAgICAgICAgICAgaXNVaW50OCA9IGltYWdlLmRhdGEgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheTtcclxuXHJcbiAgICAgICAgICAgICAgICBDYW52YXNQb29sLnJlbW92ZShjYW52YXMpO1xyXG4gICAgICAgICAgICAgICAgQ2FudmFzUG9vbC5yZW1vdmUoY2FudmFzMkQpO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiAhIWN0eDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXRjaCAoZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuICAgIEZlYXR1cmVzLndlYkdMID0gdGVzdFdlYkdMKCk7XHJcblxyXG4gICAgRmVhdHVyZXMud29ya2VyID0gISF3aW5kb3dbJ1dvcmtlciddO1xyXG5cclxuICAgIEZlYXR1cmVzLnBvaW50ZXJMb2NrID0gJ3BvaW50ZXJMb2NrRWxlbWVudCcgaW4gZG9jdW1lbnQgfHwgJ21velBvaW50ZXJMb2NrRWxlbWVudCcgaW4gZG9jdW1lbnQgfHwgJ3dlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCcgaW4gZG9jdW1lbnQ7XHJcblxyXG4gICAgbmF2aWdhdG9yLmdldFVzZXJNZWRpYSA9IG5hdmlnYXRvci5nZXRVc2VyTWVkaWEgfHwgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSB8fCBuYXZpZ2F0b3IubW96R2V0VXNlck1lZGlhIHx8IG5hdmlnYXRvci5tc0dldFVzZXJNZWRpYSB8fCBuYXZpZ2F0b3Iub0dldFVzZXJNZWRpYTtcclxuXHJcbiAgICB3aW5kb3cuVVJMID0gd2luZG93LlVSTCB8fCB3aW5kb3cud2Via2l0VVJMIHx8IHdpbmRvdy5tb3pVUkwgfHwgd2luZG93Lm1zVVJMO1xyXG5cclxuICAgIEZlYXR1cmVzLmdldFVzZXJNZWRpYSA9IEZlYXR1cmVzLmdldFVzZXJNZWRpYSAmJiAhIW5hdmlnYXRvci5nZXRVc2VyTWVkaWEgJiYgISF3aW5kb3cuVVJMO1xyXG5cclxuICAgIC8vIE9sZGVyIHZlcnNpb25zIG9mIGZpcmVmb3ggKDwgMjEpIGFwcGFyZW50bHkgY2xhaW0gc3VwcG9ydCBidXQgdXNlciBtZWRpYSBkb2VzIG5vdCBhY3R1YWxseSB3b3JrXHJcbiAgICBpZiAoQnJvd3Nlci5maXJlZm94ICYmIEJyb3dzZXIuZmlyZWZveFZlcnNpb24gPCAyMSlcclxuICAgIHtcclxuICAgICAgICBGZWF0dXJlcy5nZXRVc2VyTWVkaWEgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBFeGNsdWRlcyBpT1MgdmVyc2lvbnMgYXMgdGhleSBnZW5lcmFsbHkgd3JhcCBVSVdlYlZpZXcgKGVnLiBTYWZhcmkgV2ViS2l0KSBhbmQgaXRcclxuICAgIC8vIGlzIHNhZmVyIHRvIG5vdCB0cnkgYW5kIHVzZSB0aGUgZmFzdCBjb3B5LW92ZXIgbWV0aG9kLlxyXG4gICAgaWYgKCFPUy5pT1MgJiYgKEJyb3dzZXIuaWUgfHwgQnJvd3Nlci5maXJlZm94IHx8IEJyb3dzZXIuY2hyb21lKSlcclxuICAgIHtcclxuICAgICAgICBGZWF0dXJlcy5jYW52YXNCaXRCbHRTaGlmdCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gS25vd24gbm90IHRvIHdvcmtcclxuICAgIGlmIChCcm93c2VyLnNhZmFyaSB8fCBCcm93c2VyLm1vYmlsZVNhZmFyaSlcclxuICAgIHtcclxuICAgICAgICBGZWF0dXJlcy5jYW52YXNCaXRCbHRTaGlmdCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG5hdmlnYXRvci52aWJyYXRlID0gbmF2aWdhdG9yLnZpYnJhdGUgfHwgbmF2aWdhdG9yLndlYmtpdFZpYnJhdGUgfHwgbmF2aWdhdG9yLm1velZpYnJhdGUgfHwgbmF2aWdhdG9yLm1zVmlicmF0ZTtcclxuXHJcbiAgICBpZiAobmF2aWdhdG9yLnZpYnJhdGUpXHJcbiAgICB7XHJcbiAgICAgICAgRmVhdHVyZXMudmlicmF0aW9uID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIFVpbnQzMkFycmF5ICE9PSAndW5kZWZpbmVkJylcclxuICAgIHtcclxuICAgICAgICBGZWF0dXJlcy5saXR0bGVFbmRpYW4gPSBjaGVja0lzTGl0dGxlRW5kaWFuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgRmVhdHVyZXMuc3VwcG9ydDMyYml0ID0gKFxyXG4gICAgICAgIHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcgJiZcclxuICAgICAgICB0eXBlb2YgVWludDhDbGFtcGVkQXJyYXkgIT09ICd1bmRlZmluZWQnICYmXHJcbiAgICAgICAgdHlwZW9mIEludDMyQXJyYXkgIT09ICd1bmRlZmluZWQnICYmXHJcbiAgICAgICAgRmVhdHVyZXMubGl0dGxlRW5kaWFuICE9PSBudWxsICYmXHJcbiAgICAgICAgaXNVaW50OFxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gRmVhdHVyZXM7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gaW5pdCgpO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHRoZSBmdWxsIHNjcmVlbiBzdXBwb3J0IG9mIHRoZSBicm93c2VyIHJ1bm5pbmcgdGhpcyBQaGFzZXIgR2FtZSBpbnN0YW5jZS5cclxuICogVGhlc2UgdmFsdWVzIGFyZSByZWFkLW9ubHkgYW5kIHBvcHVsYXRlZCBkdXJpbmcgdGhlIGJvb3Qgc2VxdWVuY2Ugb2YgdGhlIGdhbWUuXHJcbiAqIFRoZXkgYXJlIHRoZW4gcmVmZXJlbmNlZCBieSBpbnRlcm5hbCBnYW1lIHN5c3RlbXMgYW5kIGFyZSBhdmFpbGFibGUgZm9yIHlvdSB0byBhY2Nlc3NcclxuICogdmlhIGB0aGlzLnN5cy5nYW1lLmRldmljZS5mdWxsc2NyZWVuYCBmcm9tIHdpdGhpbiBhbnkgU2NlbmUuXHJcbiAqIFxyXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBQaGFzZXIuRGV2aWNlLkZ1bGxzY3JlZW5cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIFxyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGF2YWlsYWJsZSAtIERvZXMgdGhlIGJyb3dzZXIgc3VwcG9ydCB0aGUgRnVsbCBTY3JlZW4gQVBJP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGtleWJvYXJkIC0gRG9lcyB0aGUgYnJvd3NlciBzdXBwb3J0IGFjY2VzcyB0byB0aGUgS2V5Ym9hcmQgZHVyaW5nIEZ1bGwgU2NyZWVuIG1vZGU/XHJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjYW5jZWwgLSBJZiB0aGUgYnJvd3NlciBzdXBwb3J0cyB0aGUgRnVsbCBTY3JlZW4gQVBJIHRoaXMgaG9sZHMgdGhlIGNhbGwgeW91IG5lZWQgdG8gdXNlIHRvIGNhbmNlbCBpdC5cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IHJlcXVlc3QgLSBJZiB0aGUgYnJvd3NlciBzdXBwb3J0cyB0aGUgRnVsbCBTY3JlZW4gQVBJIHRoaXMgaG9sZHMgdGhlIGNhbGwgeW91IG5lZWQgdG8gdXNlIHRvIGFjdGl2YXRlIGl0LlxyXG4gKi9cclxudmFyIEZ1bGxzY3JlZW4gPSB7XHJcblxyXG4gICAgYXZhaWxhYmxlOiBmYWxzZSxcclxuICAgIGNhbmNlbDogJycsXHJcbiAgICBrZXlib2FyZDogZmFsc2UsXHJcbiAgICByZXF1ZXN0OiAnJ1xyXG5cclxufTtcclxuXHJcbi8qKlxyXG4qIENoZWNrcyBmb3Igc3VwcG9ydCBvZiB0aGUgRnVsbCBTY3JlZW4gQVBJLlxyXG4qIFxyXG4qIEBpZ25vcmVcclxuKi9cclxuZnVuY3Rpb24gaW5pdCAoKVxyXG57XHJcbiAgICB2YXIgaTtcclxuXHJcbiAgICB2YXIgc3VmZml4MSA9ICdGdWxsc2NyZWVuJztcclxuICAgIHZhciBzdWZmaXgyID0gJ0Z1bGxTY3JlZW4nO1xyXG5cclxuICAgIHZhciBmcyA9IFtcclxuICAgICAgICAncmVxdWVzdCcgKyBzdWZmaXgxLFxyXG4gICAgICAgICdyZXF1ZXN0JyArIHN1ZmZpeDIsXHJcbiAgICAgICAgJ3dlYmtpdFJlcXVlc3QnICsgc3VmZml4MSxcclxuICAgICAgICAnd2Via2l0UmVxdWVzdCcgKyBzdWZmaXgyLFxyXG4gICAgICAgICdtc1JlcXVlc3QnICsgc3VmZml4MSxcclxuICAgICAgICAnbXNSZXF1ZXN0JyArIHN1ZmZpeDIsXHJcbiAgICAgICAgJ21velJlcXVlc3QnICsgc3VmZml4MixcclxuICAgICAgICAnbW96UmVxdWVzdCcgKyBzdWZmaXgxXHJcbiAgICBdO1xyXG5cclxuICAgIGZvciAoaSA9IDA7IGkgPCBmcy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBpZiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W2ZzW2ldXSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIEZ1bGxzY3JlZW4uYXZhaWxhYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgRnVsbHNjcmVlbi5yZXF1ZXN0ID0gZnNbaV07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgY2ZzID0gW1xyXG4gICAgICAgICdjYW5jZWwnICsgc3VmZml4MixcclxuICAgICAgICAnZXhpdCcgKyBzdWZmaXgxLFxyXG4gICAgICAgICd3ZWJraXRDYW5jZWwnICsgc3VmZml4MixcclxuICAgICAgICAnd2Via2l0RXhpdCcgKyBzdWZmaXgxLFxyXG4gICAgICAgICdtc0NhbmNlbCcgKyBzdWZmaXgyLFxyXG4gICAgICAgICdtc0V4aXQnICsgc3VmZml4MSxcclxuICAgICAgICAnbW96Q2FuY2VsJyArIHN1ZmZpeDIsXHJcbiAgICAgICAgJ21vekV4aXQnICsgc3VmZml4MVxyXG4gICAgXTtcclxuXHJcbiAgICBpZiAoRnVsbHNjcmVlbi5hdmFpbGFibGUpXHJcbiAgICB7XHJcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGNmcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmIChkb2N1bWVudFtjZnNbaV1dKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBGdWxsc2NyZWVuLmNhbmNlbCA9IGNmc1tpXTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICBLZXlib2FyZCBJbnB1dD9cclxuICAgIC8vICBTYWZhcmkgNS4xIHNheXMgaXQgc3VwcG9ydHMgZnVsbHNjcmVlbiBrZXlib2FyZCwgYnV0IGlzIGx5aW5nLlxyXG4gICAgaWYgKHdpbmRvd1snRWxlbWVudCddICYmIEVsZW1lbnRbJ0FMTE9XX0tFWUJPQVJEX0lOUFVUJ10gJiYgISgvIFZlcnNpb25cXC81XFwuMSg/OlxcLlxcZCspPyBTYWZhcmlcXC8vKS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKVxyXG4gICAge1xyXG4gICAgICAgIEZ1bGxzY3JlZW4ua2V5Ym9hcmQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGdWxsc2NyZWVuLCAnYWN0aXZlJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICEhKGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50IHx8IGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50IHx8IGRvY3VtZW50Lm1vekZ1bGxTY3JlZW5FbGVtZW50IHx8IGRvY3VtZW50Lm1zRnVsbHNjcmVlbkVsZW1lbnQpOyB9IH0pO1xyXG5cclxuICAgIHJldHVybiBGdWxsc2NyZWVuO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGluaXQoKTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQnJvd3NlciA9IHJlcXVpcmUoJy4vQnJvd3NlcicpO1xyXG5cclxuLyoqXHJcbiAqIERldGVybWluZXMgdGhlIGlucHV0IHN1cHBvcnQgb2YgdGhlIGJyb3dzZXIgcnVubmluZyB0aGlzIFBoYXNlciBHYW1lIGluc3RhbmNlLlxyXG4gKiBUaGVzZSB2YWx1ZXMgYXJlIHJlYWQtb25seSBhbmQgcG9wdWxhdGVkIGR1cmluZyB0aGUgYm9vdCBzZXF1ZW5jZSBvZiB0aGUgZ2FtZS5cclxuICogVGhleSBhcmUgdGhlbiByZWZlcmVuY2VkIGJ5IGludGVybmFsIGdhbWUgc3lzdGVtcyBhbmQgYXJlIGF2YWlsYWJsZSBmb3IgeW91IHRvIGFjY2Vzc1xyXG4gKiB2aWEgYHRoaXMuc3lzLmdhbWUuZGV2aWNlLmlucHV0YCBmcm9tIHdpdGhpbiBhbnkgU2NlbmUuXHJcbiAqIFxyXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBQaGFzZXIuRGV2aWNlLklucHV0XHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBcclxuICogQHByb3BlcnR5IHs/c3RyaW5nfSB3aGVlbFR5cGUgLSBUaGUgbmV3ZXN0IHR5cGUgb2YgV2hlZWwvU2Nyb2xsIGV2ZW50IHN1cHBvcnRlZDogJ3doZWVsJywgJ21vdXNld2hlZWwnLCAnRE9NTW91c2VTY3JvbGwnXHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZ2FtZXBhZHMgLSBJcyBuYXZpZ2F0b3IuZ2V0R2FtZXBhZHMgYXZhaWxhYmxlP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IG1zcG9pbnRlciAtIElzIG1zcG9pbnRlciBhdmFpbGFibGU/XHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gdG91Y2ggLSBJcyB0b3VjaCBhdmFpbGFibGU/XHJcbiAqL1xyXG52YXIgSW5wdXQgPSB7XHJcblxyXG4gICAgZ2FtZXBhZHM6IGZhbHNlLFxyXG4gICAgbXNwb2ludGVyOiBmYWxzZSxcclxuICAgIHRvdWNoOiBmYWxzZSxcclxuICAgIHdoZWVsRXZlbnQ6IG51bGxcclxuICAgIFxyXG59O1xyXG5cclxuZnVuY3Rpb24gaW5pdCAoKVxyXG57XHJcbiAgICBpZiAoJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IHx8IChuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgJiYgbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzID49IDEpKVxyXG4gICAge1xyXG4gICAgICAgIElucHV0LnRvdWNoID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobmF2aWdhdG9yLm1zUG9pbnRlckVuYWJsZWQgfHwgbmF2aWdhdG9yLnBvaW50ZXJFbmFibGVkKVxyXG4gICAge1xyXG4gICAgICAgIElucHV0Lm1zcG9pbnRlciA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG5hdmlnYXRvci5nZXRHYW1lcGFkcylcclxuICAgIHtcclxuICAgICAgICBJbnB1dC5nYW1lcGFkcyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0V2ZW50cy93aGVlbFxyXG4gICAgaWYgKCdvbndoZWVsJyBpbiB3aW5kb3cgfHwgKEJyb3dzZXIuaWUgJiYgJ1doZWVsRXZlbnQnIGluIHdpbmRvdykpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gRE9NMyBXaGVlbCBFdmVudDogRkYgMTcrLCBJRSA5KywgQ2hyb21lIDMxKywgU2FmYXJpIDcrXHJcbiAgICAgICAgSW5wdXQud2hlZWxFdmVudCA9ICd3aGVlbCc7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICgnb25tb3VzZXdoZWVsJyBpbiB3aW5kb3cpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gTm9uLUZGIGxlZ2FjeTogSUUgNi05LCBDaHJvbWUgMS0zMSwgU2FmYXJpIDUtNy5cclxuICAgICAgICBJbnB1dC53aGVlbEV2ZW50ID0gJ21vdXNld2hlZWwnO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoQnJvd3Nlci5maXJlZm94ICYmICdNb3VzZVNjcm9sbEV2ZW50JyBpbiB3aW5kb3cpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gRkYgcHJpb3IgdG8gMTcuIFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHNjcnViYmVkLlxyXG4gICAgICAgIElucHV0LndoZWVsRXZlbnQgPSAnRE9NTW91c2VTY3JvbGwnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBJbnB1dDtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBpbml0KCk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIERldGVybWluZXMgdGhlIG9wZXJhdGluZyBzeXN0ZW0gb2YgdGhlIGRldmljZSBydW5uaW5nIHRoaXMgUGhhc2VyIEdhbWUgaW5zdGFuY2UuXHJcbiAqIFRoZXNlIHZhbHVlcyBhcmUgcmVhZC1vbmx5IGFuZCBwb3B1bGF0ZWQgZHVyaW5nIHRoZSBib290IHNlcXVlbmNlIG9mIHRoZSBnYW1lLlxyXG4gKiBUaGV5IGFyZSB0aGVuIHJlZmVyZW5jZWQgYnkgaW50ZXJuYWwgZ2FtZSBzeXN0ZW1zIGFuZCBhcmUgYXZhaWxhYmxlIGZvciB5b3UgdG8gYWNjZXNzXHJcbiAqIHZpYSBgdGhpcy5zeXMuZ2FtZS5kZXZpY2Uub3NgIGZyb20gd2l0aGluIGFueSBTY2VuZS5cclxuICpcclxuICogQHR5cGVkZWYge29iamVjdH0gUGhhc2VyLkRldmljZS5PU1xyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHByb3BlcnR5IHtib29sZWFufSBhbmRyb2lkIC0gSXMgcnVubmluZyBvbiBhbmRyb2lkP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGNocm9tZU9TIC0gSXMgcnVubmluZyBvbiBjaHJvbWVPUz9cclxuICogQHByb3BlcnR5IHtib29sZWFufSBjb3Jkb3ZhIC0gSXMgdGhlIGdhbWUgcnVubmluZyB1bmRlciBBcGFjaGUgQ29yZG92YT9cclxuICogQHByb3BlcnR5IHtib29sZWFufSBjcm9zc3dhbGsgLSBJcyB0aGUgZ2FtZSBydW5uaW5nIHVuZGVyIHRoZSBJbnRlbCBDcm9zc3dhbGsgWERLP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGRlc2t0b3AgLSBJcyBydW5uaW5nIG9uIGEgZGVza3RvcD9cclxuICogQHByb3BlcnR5IHtib29sZWFufSBlamVjdGEgLSBJcyB0aGUgZ2FtZSBydW5uaW5nIHVuZGVyIEVqZWN0YT9cclxuICogQHByb3BlcnR5IHtib29sZWFufSBlbGVjdHJvbiAtIElzIHRoZSBnYW1lIHJ1bm5pbmcgdW5kZXIgR2l0SHViIEVsZWN0cm9uP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlPUyAtIElzIHJ1bm5pbmcgb24gaU9TP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlQYWQgLSBJcyBydW5uaW5nIG9uIGlQYWQ/XHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaVBob25lIC0gSXMgcnVubmluZyBvbiBpUGhvbmU/XHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0ga2luZGxlIC0gSXMgcnVubmluZyBvbiBhbiBBbWF6b24gS2luZGxlP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGxpbnV4IC0gSXMgcnVubmluZyBvbiBsaW51eD9cclxuICogQHByb3BlcnR5IHtib29sZWFufSBtYWNPUyAtIElzIHJ1bm5pbmcgb24gbWFjT1M/XHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gbm9kZSAtIElzIHRoZSBnYW1lIHJ1bm5pbmcgdW5kZXIgTm9kZS5qcz9cclxuICogQHByb3BlcnR5IHtib29sZWFufSBub2RlV2Via2l0IC0gSXMgdGhlIGdhbWUgcnVubmluZyB1bmRlciBOb2RlLVdlYmtpdD9cclxuICogQHByb3BlcnR5IHtib29sZWFufSB3ZWJBcHAgLSBTZXQgdG8gdHJ1ZSBpZiBydW5uaW5nIGFzIGEgV2ViQXBwLCBpLmUuIHdpdGhpbiBhIFdlYlZpZXdcclxuICogQHByb3BlcnR5IHtib29sZWFufSB3aW5kb3dzIC0gSXMgcnVubmluZyBvbiB3aW5kb3dzP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHdpbmRvd3NQaG9uZSAtIElzIHJ1bm5pbmcgb24gYSBXaW5kb3dzIFBob25lP1xyXG4gKiBAcHJvcGVydHkge251bWJlcn0gaU9TVmVyc2lvbiAtIElmIHJ1bm5pbmcgaW4gaU9TIHRoaXMgd2lsbCBjb250YWluIHRoZSBtYWpvciB2ZXJzaW9uIG51bWJlci5cclxuICogQHByb3BlcnR5IHtudW1iZXJ9IHBpeGVsUmF0aW8gLSBQaXhlbFJhdGlvIG9mIHRoZSBob3N0IGRldmljZT9cclxuICovXHJcbnZhciBPUyA9IHtcclxuXHJcbiAgICBhbmRyb2lkOiBmYWxzZSxcclxuICAgIGNocm9tZU9TOiBmYWxzZSxcclxuICAgIGNvcmRvdmE6IGZhbHNlLFxyXG4gICAgY3Jvc3N3YWxrOiBmYWxzZSxcclxuICAgIGRlc2t0b3A6IGZhbHNlLFxyXG4gICAgZWplY3RhOiBmYWxzZSxcclxuICAgIGVsZWN0cm9uOiBmYWxzZSxcclxuICAgIGlPUzogZmFsc2UsXHJcbiAgICBpT1NWZXJzaW9uOiAwLFxyXG4gICAgaVBhZDogZmFsc2UsXHJcbiAgICBpUGhvbmU6IGZhbHNlLFxyXG4gICAga2luZGxlOiBmYWxzZSxcclxuICAgIGxpbnV4OiBmYWxzZSxcclxuICAgIG1hY09TOiBmYWxzZSxcclxuICAgIG5vZGU6IGZhbHNlLFxyXG4gICAgbm9kZVdlYmtpdDogZmFsc2UsXHJcbiAgICBwaXhlbFJhdGlvOiAxLFxyXG4gICAgd2ViQXBwOiBmYWxzZSxcclxuICAgIHdpbmRvd3M6IGZhbHNlLFxyXG4gICAgd2luZG93c1Bob25lOiBmYWxzZVxyXG5cclxufTtcclxuXHJcbmZ1bmN0aW9uIGluaXQgKClcclxue1xyXG4gICAgdmFyIHVhID0gbmF2aWdhdG9yLnVzZXJBZ2VudDtcclxuXHJcbiAgICBpZiAoL1dpbmRvd3MvLnRlc3QodWEpKVxyXG4gICAge1xyXG4gICAgICAgIE9TLndpbmRvd3MgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoL01hYyBPUy8udGVzdCh1YSkgJiYgISgvbGlrZSBNYWMgT1MvLnRlc3QodWEpKSlcclxuICAgIHtcclxuICAgICAgICBPUy5tYWNPUyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICgvQW5kcm9pZC8udGVzdCh1YSkpXHJcbiAgICB7XHJcbiAgICAgICAgT1MuYW5kcm9pZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICgvTGludXgvLnRlc3QodWEpKVxyXG4gICAge1xyXG4gICAgICAgIE9TLmxpbnV4ID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKC9pUFthb11kfGlQaG9uZS9pLnRlc3QodWEpKVxyXG4gICAge1xyXG4gICAgICAgIE9TLmlPUyA9IHRydWU7XHJcblxyXG4gICAgICAgIChuYXZpZ2F0b3IuYXBwVmVyc2lvbikubWF0Y2goL09TIChcXGQrKS8pO1xyXG5cclxuICAgICAgICBPUy5pT1NWZXJzaW9uID0gcGFyc2VJbnQoUmVnRXhwLiQxLCAxMCk7XHJcblxyXG4gICAgICAgIE9TLmlQaG9uZSA9IHVhLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignaXBob25lJykgIT09IC0xO1xyXG4gICAgICAgIE9TLmlQYWQgPSB1YS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2lwYWQnKSAhPT0gLTE7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICgvS2luZGxlLy50ZXN0KHVhKSB8fCAoL1xcYktGW0EtWl1bQS1aXSsvKS50ZXN0KHVhKSB8fCAoL1NpbGsuKk1vYmlsZSBTYWZhcmkvKS50ZXN0KHVhKSlcclxuICAgIHtcclxuICAgICAgICBPUy5raW5kbGUgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBUaGlzIHdpbGwgTk9UIGRldGVjdCBlYXJseSBnZW5lcmF0aW9ucyBvZiBLaW5kbGUgRmlyZSwgSSB0aGluayB0aGVyZSBpcyBubyByZWxpYWJsZSB3YXkuLi5cclxuICAgICAgICAvLyBFLmcuIFwiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgSW50ZWwgTWFjIE9TIFggMTBfNl8zOyBlbi11czsgU2lsay8xLjEuMC04MCkgQXBwbGVXZWJLaXQvNTMzLjE2IChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjAgU2FmYXJpLzUzMy4xNiBTaWxrLUFjY2VsZXJhdGVkPXRydWVcIlxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoL0NyT1MvLnRlc3QodWEpKVxyXG4gICAge1xyXG4gICAgICAgIE9TLmNocm9tZU9TID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoL1dpbmRvd3MgUGhvbmUvaS50ZXN0KHVhKSB8fCAoL0lFTW9iaWxlL2kpLnRlc3QodWEpKVxyXG4gICAge1xyXG4gICAgICAgIE9TLmFuZHJvaWQgPSBmYWxzZTtcclxuICAgICAgICBPUy5pT1MgPSBmYWxzZTtcclxuICAgICAgICBPUy5tYWNPUyA9IGZhbHNlO1xyXG4gICAgICAgIE9TLndpbmRvd3MgPSB0cnVlO1xyXG4gICAgICAgIE9TLndpbmRvd3NQaG9uZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHNpbGsgPSAoL1NpbGsvKS50ZXN0KHVhKTtcclxuXHJcbiAgICBpZiAoT1Mud2luZG93cyB8fCBPUy5tYWNPUyB8fCAoT1MubGludXggJiYgIXNpbGspIHx8IE9TLmNocm9tZU9TKVxyXG4gICAge1xyXG4gICAgICAgIE9TLmRlc2t0b3AgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBXaW5kb3dzIFBob25lIC8gVGFibGUgcmVzZXRcclxuICAgIGlmIChPUy53aW5kb3dzUGhvbmUgfHwgKCgvV2luZG93cyBOVC9pLnRlc3QodWEpKSAmJiAoL1RvdWNoL2kudGVzdCh1YSkpKSlcclxuICAgIHtcclxuICAgICAgICBPUy5kZXNrdG9wID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIFdlYkFwcCBtb2RlIGluIGlPU1xyXG4gICAgaWYgKG5hdmlnYXRvci5zdGFuZGFsb25lKVxyXG4gICAge1xyXG4gICAgICAgIE9TLndlYkFwcCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdpbmRvdy5jb3Jkb3ZhICE9PSB1bmRlZmluZWQpXHJcbiAgICB7XHJcbiAgICAgICAgT1MuY29yZG92YSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzLnZlcnNpb25zICYmIHByb2Nlc3MudmVyc2lvbnMubm9kZSlcclxuICAgIHtcclxuICAgICAgICBPUy5ub2RlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoT1Mubm9kZSAmJiB0eXBlb2YgcHJvY2Vzcy52ZXJzaW9ucyA9PT0gJ29iamVjdCcpXHJcbiAgICB7XHJcbiAgICAgICAgT1Mubm9kZVdlYmtpdCA9ICEhcHJvY2Vzcy52ZXJzaW9uc1snbm9kZS13ZWJraXQnXTtcclxuXHJcbiAgICAgICAgT1MuZWxlY3Ryb24gPSAhIXByb2Nlc3MudmVyc2lvbnMuZWxlY3Ryb247XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdpbmRvdy5lamVjdGEgIT09IHVuZGVmaW5lZClcclxuICAgIHtcclxuICAgICAgICBPUy5lamVjdGEgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICgoL0Nyb3Nzd2Fsay8pLnRlc3QodWEpKVxyXG4gICAge1xyXG4gICAgICAgIE9TLmNyb3Nzd2FsayA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgT1MucGl4ZWxSYXRpbyA9IHdpbmRvd1snZGV2aWNlUGl4ZWxSYXRpbyddIHx8IDE7XHJcblxyXG4gICAgcmV0dXJuIE9TO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGluaXQoKTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogRGV0ZXJtaW5lcyB0aGUgdmlkZW8gc3VwcG9ydCBvZiB0aGUgYnJvd3NlciBydW5uaW5nIHRoaXMgUGhhc2VyIEdhbWUgaW5zdGFuY2UuXHJcbiAqIFRoZXNlIHZhbHVlcyBhcmUgcmVhZC1vbmx5IGFuZCBwb3B1bGF0ZWQgZHVyaW5nIHRoZSBib290IHNlcXVlbmNlIG9mIHRoZSBnYW1lLlxyXG4gKiBUaGV5IGFyZSB0aGVuIHJlZmVyZW5jZWQgYnkgaW50ZXJuYWwgZ2FtZSBzeXN0ZW1zIGFuZCBhcmUgYXZhaWxhYmxlIGZvciB5b3UgdG8gYWNjZXNzXHJcbiAqIHZpYSBgdGhpcy5zeXMuZ2FtZS5kZXZpY2UudmlkZW9gIGZyb20gd2l0aGluIGFueSBTY2VuZS5cclxuICogXHJcbiAqIEluIFBoYXNlciAzLjIwIHRoZSBwcm9wZXJ0aWVzIHdlcmUgcmVuYW1lZCB0byBkcm9wIHRoZSAnVmlkZW8nIHN1ZmZpeC5cclxuICogXHJcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFBoYXNlci5EZXZpY2UuVmlkZW9cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIFxyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGgyNjQgLSBDYW4gdGhpcyBkZXZpY2UgcGxheSBoMjY0IG1wNCB2aWRlbyBmaWxlcz9cclxuICogQHByb3BlcnR5IHtib29sZWFufSBobHMgLSBDYW4gdGhpcyBkZXZpY2UgcGxheSBobHMgdmlkZW8gZmlsZXM/XHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gbXA0IC0gQ2FuIHRoaXMgZGV2aWNlIHBsYXkgaDI2NCBtcDQgdmlkZW8gZmlsZXM/XHJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gb2dnIC0gQ2FuIHRoaXMgZGV2aWNlIHBsYXkgb2dnIHZpZGVvIGZpbGVzP1xyXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHZwOSAtIENhbiB0aGlzIGRldmljZSBwbGF5IHZwOSB2aWRlbyBmaWxlcz9cclxuICogQHByb3BlcnR5IHtib29sZWFufSB3ZWJtIC0gQ2FuIHRoaXMgZGV2aWNlIHBsYXkgd2VibSB2aWRlbyBmaWxlcz9cclxuICovXHJcbnZhciBWaWRlbyA9IHtcclxuXHJcbiAgICBoMjY0OiBmYWxzZSxcclxuICAgIGhsczogZmFsc2UsXHJcbiAgICBtcDQ6IGZhbHNlLFxyXG4gICAgb2dnOiBmYWxzZSxcclxuICAgIHZwOTogZmFsc2UsXHJcbiAgICB3ZWJtOiBmYWxzZVxyXG5cclxufTtcclxuXHJcbmZ1bmN0aW9uIGluaXQgKClcclxue1xyXG4gICAgdmFyIHZpZGVvRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7XHJcbiAgICB2YXIgcmVzdWx0ID0gISF2aWRlb0VsZW1lbnQuY2FuUGxheVR5cGU7XHJcblxyXG4gICAgdHJ5XHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHJlc3VsdClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmICh2aWRlb0VsZW1lbnQuY2FuUGxheVR5cGUoJ3ZpZGVvL29nZzsgY29kZWNzPVwidGhlb3JhXCInKS5yZXBsYWNlKC9ebm8kLywgJycpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBWaWRlby5vZ2cgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodmlkZW9FbGVtZW50LmNhblBsYXlUeXBlKCd2aWRlby9tcDQ7IGNvZGVjcz1cImF2YzEuNDJFMDFFXCInKS5yZXBsYWNlKC9ebm8kLywgJycpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAvLyBXaXRob3V0IFF1aWNrVGltZSwgdGhpcyB2YWx1ZSB3aWxsIGJlIGB1bmRlZmluZWRgLiBnaXRodWIuY29tL01vZGVybml6ci9Nb2Rlcm5penIvaXNzdWVzLzU0NlxyXG4gICAgICAgICAgICAgICAgVmlkZW8uaDI2NCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBWaWRlby5tcDQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodmlkZW9FbGVtZW50LmNhblBsYXlUeXBlKCd2aWRlby93ZWJtOyBjb2RlY3M9XCJ2cDgsIHZvcmJpc1wiJykucmVwbGFjZSgvXm5vJC8sICcnKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgVmlkZW8ud2VibSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh2aWRlb0VsZW1lbnQuY2FuUGxheVR5cGUoJ3ZpZGVvL3dlYm07IGNvZGVjcz1cInZwOVwiJykucmVwbGFjZSgvXm5vJC8sICcnKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgVmlkZW8udnA5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHZpZGVvRWxlbWVudC5jYW5QbGF5VHlwZSgnYXBwbGljYXRpb24veC1tcGVnVVJMOyBjb2RlY3M9XCJhdmMxLjQyRTAxRVwiJykucmVwbGFjZSgvXm5vJC8sICcnKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgVmlkZW8uaGxzID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNhdGNoIChlKVxyXG4gICAge1xyXG4gICAgICAgIC8vICBOb3RoaW5nIHRvIGRvXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFZpZGVvO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGluaXQoKTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vLyAgVGhpcyBzaW5nbGV0b24gaXMgaW5zdGFudGlhdGVkIGFzIHNvb24gYXMgUGhhc2VyIGxvYWRzLFxyXG4vLyAgYmVmb3JlIGEgUGhhc2VyLkdhbWUgaW5zdGFuY2UgaGFzIGV2ZW4gYmVlbiBjcmVhdGVkLlxyXG4vLyAgV2hpY2ggbWVhbnMgYWxsIGluc3RhbmNlcyBvZiBQaGFzZXIgR2FtZXMgY2FuIHNoYXJlIGl0LFxyXG4vLyAgd2l0aG91dCBoYXZpbmcgdG8gcmUtcG9sbCB0aGUgZGV2aWNlIGFsbCBvdmVyIGFnYWluXHJcblxyXG4vKipcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuRGV2aWNlXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBQaGFzZXIuRGV2aWNlQ29uZlxyXG4gKlxyXG4gKiBAcHJvcGVydHkge1BoYXNlci5EZXZpY2UuT1N9IG9zIC0gVGhlIE9TIERldmljZSBmdW5jdGlvbnMuXHJcbiAqIEBwcm9wZXJ0eSB7UGhhc2VyLkRldmljZS5Ccm93c2VyfSBicm93c2VyIC0gVGhlIEJyb3dzZXIgRGV2aWNlIGZ1bmN0aW9ucy5cclxuICogQHByb3BlcnR5IHtQaGFzZXIuRGV2aWNlLkZlYXR1cmVzfSBmZWF0dXJlcyAtIFRoZSBGZWF0dXJlcyBEZXZpY2UgZnVuY3Rpb25zLlxyXG4gKiBAcHJvcGVydHkge1BoYXNlci5EZXZpY2UuSW5wdXR9IGlucHV0IC0gVGhlIElucHV0IERldmljZSBmdW5jdGlvbnMuXHJcbiAqIEBwcm9wZXJ0eSB7UGhhc2VyLkRldmljZS5BdWRpb30gYXVkaW8gLSBUaGUgQXVkaW8gRGV2aWNlIGZ1bmN0aW9ucy5cclxuICogQHByb3BlcnR5IHtQaGFzZXIuRGV2aWNlLlZpZGVvfSB2aWRlbyAtIFRoZSBWaWRlbyBEZXZpY2UgZnVuY3Rpb25zLlxyXG4gKiBAcHJvcGVydHkge1BoYXNlci5EZXZpY2UuRnVsbHNjcmVlbn0gZnVsbHNjcmVlbiAtIFRoZSBGdWxsc2NyZWVuIERldmljZSBmdW5jdGlvbnMuXHJcbiAqIEBwcm9wZXJ0eSB7UGhhc2VyLkRldmljZS5DYW52YXNGZWF0dXJlc30gY2FudmFzRmVhdHVyZXMgLSBUaGUgQ2FudmFzIERldmljZSBmdW5jdGlvbnMuXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgb3M6IHJlcXVpcmUoJy4vT1MnKSxcclxuICAgIGJyb3dzZXI6IHJlcXVpcmUoJy4vQnJvd3NlcicpLFxyXG4gICAgZmVhdHVyZXM6IHJlcXVpcmUoJy4vRmVhdHVyZXMnKSxcclxuICAgIGlucHV0OiByZXF1aXJlKCcuL0lucHV0JyksXHJcbiAgICBhdWRpbzogcmVxdWlyZSgnLi9BdWRpbycpLFxyXG4gICAgdmlkZW86IHJlcXVpcmUoJy4vVmlkZW8nKSxcclxuICAgIGZ1bGxzY3JlZW46IHJlcXVpcmUoJy4vRnVsbHNjcmVlbicpLFxyXG4gICAgY2FudmFzRmVhdHVyZXM6IHJlcXVpcmUoJy4vQ2FudmFzRmVhdHVyZXMnKVxyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQUxJR05fQ09OU1QgPSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEEgY29uc3RhbnQgcmVwcmVzZW50aW5nIGEgdG9wLWxlZnQgYWxpZ25tZW50IG9yIHBvc2l0aW9uLlxyXG4gICAgKiBAY29uc3RhbnRcclxuICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQWxpZ24uVE9QX0xFRlRcclxuICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgKi9cclxuICAgIFRPUF9MRUZUOiAwLFxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBBIGNvbnN0YW50IHJlcHJlc2VudGluZyBhIHRvcC1jZW50ZXIgYWxpZ25tZW50IG9yIHBvc2l0aW9uLlxyXG4gICAgKiBAY29uc3RhbnRcclxuICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQWxpZ24uVE9QX0NFTlRFUlxyXG4gICAgKiBAc2luY2UgMy4wLjBcclxuICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAqL1xyXG4gICAgVE9QX0NFTlRFUjogMSxcclxuXHJcbiAgICAvKipcclxuICAgICogQSBjb25zdGFudCByZXByZXNlbnRpbmcgYSB0b3AtcmlnaHQgYWxpZ25tZW50IG9yIHBvc2l0aW9uLlxyXG4gICAgKiBAY29uc3RhbnRcclxuICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQWxpZ24uVE9QX1JJR0hUXHJcbiAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICovXHJcbiAgICBUT1BfUklHSFQ6IDIsXHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEEgY29uc3RhbnQgcmVwcmVzZW50aW5nIGEgbGVmdC10b3AgYWxpZ25tZW50IG9yIHBvc2l0aW9uLlxyXG4gICAgKiBAY29uc3RhbnRcclxuICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQWxpZ24uTEVGVF9UT1BcclxuICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgKi9cclxuICAgIExFRlRfVE9QOiAzLFxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBBIGNvbnN0YW50IHJlcHJlc2VudGluZyBhIGxlZnQtY2VudGVyIGFsaWdubWVudCBvciBwb3NpdGlvbi5cclxuICAgICogQGNvbnN0YW50XHJcbiAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5LkFsaWduLkxFRlRfQ0VOVEVSXHJcbiAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICovXHJcbiAgICBMRUZUX0NFTlRFUjogNCxcclxuXHJcbiAgICAvKipcclxuICAgICogQSBjb25zdGFudCByZXByZXNlbnRpbmcgYSBsZWZ0LWJvdHRvbSBhbGlnbm1lbnQgb3IgcG9zaXRpb24uXHJcbiAgICAqIEBjb25zdGFudFxyXG4gICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5BbGlnbi5MRUZUX0JPVFRPTVxyXG4gICAgKiBAc2luY2UgMy4wLjBcclxuICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAqL1xyXG4gICAgTEVGVF9CT1RUT006IDUsXHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEEgY29uc3RhbnQgcmVwcmVzZW50aW5nIGEgY2VudGVyIGFsaWdubWVudCBvciBwb3NpdGlvbi5cclxuICAgICogQGNvbnN0YW50XHJcbiAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5LkFsaWduLkNFTlRFUlxyXG4gICAgKiBAc2luY2UgMy4wLjBcclxuICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAqL1xyXG4gICAgQ0VOVEVSOiA2LFxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBBIGNvbnN0YW50IHJlcHJlc2VudGluZyBhIHJpZ2h0LXRvcCBhbGlnbm1lbnQgb3IgcG9zaXRpb24uXHJcbiAgICAqIEBjb25zdGFudFxyXG4gICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5BbGlnbi5SSUdIVF9UT1BcclxuICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgKi9cclxuICAgIFJJR0hUX1RPUDogNyxcclxuXHJcbiAgICAvKipcclxuICAgICogQSBjb25zdGFudCByZXByZXNlbnRpbmcgYSByaWdodC1jZW50ZXIgYWxpZ25tZW50IG9yIHBvc2l0aW9uLlxyXG4gICAgKiBAY29uc3RhbnRcclxuICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQWxpZ24uUklHSFRfQ0VOVEVSXHJcbiAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICovXHJcbiAgICBSSUdIVF9DRU5URVI6IDgsXHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEEgY29uc3RhbnQgcmVwcmVzZW50aW5nIGEgcmlnaHQtYm90dG9tIGFsaWdubWVudCBvciBwb3NpdGlvbi5cclxuICAgICogQGNvbnN0YW50XHJcbiAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5LkFsaWduLlJJR0hUX0JPVFRPTVxyXG4gICAgKiBAc2luY2UgMy4wLjBcclxuICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAqL1xyXG4gICAgUklHSFRfQk9UVE9NOiA5LFxyXG5cclxuICAgIC8qKlxyXG4gICAgKiBBIGNvbnN0YW50IHJlcHJlc2VudGluZyBhIGJvdHRvbS1sZWZ0IGFsaWdubWVudCBvciBwb3NpdGlvbi5cclxuICAgICogQGNvbnN0YW50XHJcbiAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5LkFsaWduLkJPVFRPTV9MRUZUXHJcbiAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICovXHJcbiAgICBCT1RUT01fTEVGVDogMTAsXHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEEgY29uc3RhbnQgcmVwcmVzZW50aW5nIGEgYm90dG9tLWNlbnRlciBhbGlnbm1lbnQgb3IgcG9zaXRpb24uXHJcbiAgICAqIEBjb25zdGFudFxyXG4gICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5BbGlnbi5CT1RUT01fQ0VOVEVSXHJcbiAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICovXHJcbiAgICBCT1RUT01fQ0VOVEVSOiAxMSxcclxuXHJcbiAgICAvKipcclxuICAgICogQSBjb25zdGFudCByZXByZXNlbnRpbmcgYSBib3R0b20tcmlnaHQgYWxpZ25tZW50IG9yIHBvc2l0aW9uLlxyXG4gICAgKiBAY29uc3RhbnRcclxuICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQWxpZ24uQk9UVE9NX1JJR0hUXHJcbiAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICovXHJcbiAgICBCT1RUT01fUklHSFQ6IDEyXHJcblxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBBTElHTl9DT05TVDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0Qm90dG9tID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL0dldEJvdHRvbScpO1xyXG52YXIgR2V0Q2VudGVyWCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRDZW50ZXJYJyk7XHJcbnZhciBTZXRCb3R0b20gPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0Qm90dG9tJyk7XHJcbnZhciBTZXRDZW50ZXJYID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL1NldENlbnRlclgnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBnaXZlbiBHYW1lIE9iamVjdCBhbmQgYWxpZ25zIGl0IHNvIHRoYXQgaXQgaXMgcG9zaXRpb25lZCBpbiB0aGUgYm90dG9tIGNlbnRlciBvZiB0aGUgb3RoZXIuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5BbGlnbi5Jbi5Cb3R0b21DZW50ZXJcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gRyAtIFtnYW1lT2JqZWN0LCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGdhbWVPYmplY3QgLSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3aWxsIGJlIHBvc2l0aW9uZWQuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGFsaWduSW4gLSBUaGUgR2FtZSBPYmplY3QgdG8gYmFzZSB0aGUgYWxpZ25tZW50IHBvc2l0aW9uIG9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFg9MF0gLSBPcHRpb25hbCBob3Jpem9udGFsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRZPTBdIC0gT3B0aW9uYWwgdmVydGljYWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGFsaWduZWQuXHJcbiAqL1xyXG52YXIgQm90dG9tQ2VudGVyID0gZnVuY3Rpb24gKGdhbWVPYmplY3QsIGFsaWduSW4sIG9mZnNldFgsIG9mZnNldFkpXHJcbntcclxuICAgIGlmIChvZmZzZXRYID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WCA9IDA7IH1cclxuICAgIGlmIChvZmZzZXRZID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WSA9IDA7IH1cclxuXHJcbiAgICBTZXRDZW50ZXJYKGdhbWVPYmplY3QsIEdldENlbnRlclgoYWxpZ25JbikgKyBvZmZzZXRYKTtcclxuICAgIFNldEJvdHRvbShnYW1lT2JqZWN0LCBHZXRCb3R0b20oYWxpZ25JbikgKyBvZmZzZXRZKTtcclxuXHJcbiAgICByZXR1cm4gZ2FtZU9iamVjdDtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQm90dG9tQ2VudGVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBHZXRCb3R0b20gPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0Qm90dG9tJyk7XHJcbnZhciBHZXRMZWZ0ID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL0dldExlZnQnKTtcclxudmFyIFNldEJvdHRvbSA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRCb3R0b20nKTtcclxudmFyIFNldExlZnQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0TGVmdCcpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGdpdmVuIEdhbWUgT2JqZWN0IGFuZCBhbGlnbnMgaXQgc28gdGhhdCBpdCBpcyBwb3NpdGlvbmVkIGluIHRoZSBib3R0b20gbGVmdCBvZiB0aGUgb3RoZXIuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5BbGlnbi5Jbi5Cb3R0b21MZWZ0XHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IEcgLSBbZ2FtZU9iamVjdCwkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2lsbCBiZSBwb3NpdGlvbmVkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBhbGlnbkluIC0gVGhlIEdhbWUgT2JqZWN0IHRvIGJhc2UgdGhlIGFsaWdubWVudCBwb3NpdGlvbiBvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRYPTBdIC0gT3B0aW9uYWwgaG9yaXpvbnRhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WT0wXSAtIE9wdGlvbmFsIHZlcnRpY2FsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBhbGlnbmVkLlxyXG4gKi9cclxudmFyIEJvdHRvbUxlZnQgPSBmdW5jdGlvbiAoZ2FtZU9iamVjdCwgYWxpZ25Jbiwgb2Zmc2V0WCwgb2Zmc2V0WSlcclxue1xyXG4gICAgaWYgKG9mZnNldFggPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRYID0gMDsgfVxyXG4gICAgaWYgKG9mZnNldFkgPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRZID0gMDsgfVxyXG5cclxuICAgIFNldExlZnQoZ2FtZU9iamVjdCwgR2V0TGVmdChhbGlnbkluKSAtIG9mZnNldFgpO1xyXG4gICAgU2V0Qm90dG9tKGdhbWVPYmplY3QsIEdldEJvdHRvbShhbGlnbkluKSArIG9mZnNldFkpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBCb3R0b21MZWZ0O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBHZXRCb3R0b20gPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0Qm90dG9tJyk7XHJcbnZhciBHZXRSaWdodCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRSaWdodCcpO1xyXG52YXIgU2V0Qm90dG9tID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL1NldEJvdHRvbScpO1xyXG52YXIgU2V0UmlnaHQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0UmlnaHQnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBnaXZlbiBHYW1lIE9iamVjdCBhbmQgYWxpZ25zIGl0IHNvIHRoYXQgaXQgaXMgcG9zaXRpb25lZCBpbiB0aGUgYm90dG9tIHJpZ2h0IG9mIHRoZSBvdGhlci5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkFsaWduLkluLkJvdHRvbVJpZ2h0XHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IEcgLSBbZ2FtZU9iamVjdCwkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2lsbCBiZSBwb3NpdGlvbmVkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBhbGlnbkluIC0gVGhlIEdhbWUgT2JqZWN0IHRvIGJhc2UgdGhlIGFsaWdubWVudCBwb3NpdGlvbiBvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRYPTBdIC0gT3B0aW9uYWwgaG9yaXpvbnRhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WT0wXSAtIE9wdGlvbmFsIHZlcnRpY2FsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBhbGlnbmVkLlxyXG4gKi9cclxudmFyIEJvdHRvbVJpZ2h0ID0gZnVuY3Rpb24gKGdhbWVPYmplY3QsIGFsaWduSW4sIG9mZnNldFgsIG9mZnNldFkpXHJcbntcclxuICAgIGlmIChvZmZzZXRYID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WCA9IDA7IH1cclxuICAgIGlmIChvZmZzZXRZID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WSA9IDA7IH1cclxuXHJcbiAgICBTZXRSaWdodChnYW1lT2JqZWN0LCBHZXRSaWdodChhbGlnbkluKSArIG9mZnNldFgpO1xyXG4gICAgU2V0Qm90dG9tKGdhbWVPYmplY3QsIEdldEJvdHRvbShhbGlnbkluKSArIG9mZnNldFkpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBCb3R0b21SaWdodDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2VudGVyT24gPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvQ2VudGVyT24nKTtcclxudmFyIEdldENlbnRlclggPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0Q2VudGVyWCcpO1xyXG52YXIgR2V0Q2VudGVyWSA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRDZW50ZXJZJyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgZ2l2ZW4gR2FtZSBPYmplY3QgYW5kIGFsaWducyBpdCBzbyB0aGF0IGl0IGlzIHBvc2l0aW9uZWQgaW4gdGhlIGNlbnRlciBvZiB0aGUgb3RoZXIuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5BbGlnbi5Jbi5DZW50ZXJcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gRyAtIFtnYW1lT2JqZWN0LCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGdhbWVPYmplY3QgLSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3aWxsIGJlIHBvc2l0aW9uZWQuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGFsaWduSW4gLSBUaGUgR2FtZSBPYmplY3QgdG8gYmFzZSB0aGUgYWxpZ25tZW50IHBvc2l0aW9uIG9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFg9MF0gLSBPcHRpb25hbCBob3Jpem9udGFsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRZPTBdIC0gT3B0aW9uYWwgdmVydGljYWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGFsaWduZWQuXHJcbiAqL1xyXG52YXIgQ2VudGVyID0gZnVuY3Rpb24gKGdhbWVPYmplY3QsIGFsaWduSW4sIG9mZnNldFgsIG9mZnNldFkpXHJcbntcclxuICAgIGlmIChvZmZzZXRYID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WCA9IDA7IH1cclxuICAgIGlmIChvZmZzZXRZID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WSA9IDA7IH1cclxuXHJcbiAgICBDZW50ZXJPbihnYW1lT2JqZWN0LCBHZXRDZW50ZXJYKGFsaWduSW4pICsgb2Zmc2V0WCwgR2V0Q2VudGVyWShhbGlnbkluKSArIG9mZnNldFkpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDZW50ZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEdldENlbnRlclkgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0Q2VudGVyWScpO1xyXG52YXIgR2V0TGVmdCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRMZWZ0Jyk7XHJcbnZhciBTZXRDZW50ZXJZID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL1NldENlbnRlclknKTtcclxudmFyIFNldExlZnQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0TGVmdCcpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGdpdmVuIEdhbWUgT2JqZWN0IGFuZCBhbGlnbnMgaXQgc28gdGhhdCBpdCBpcyBwb3NpdGlvbmVkIGluIHRoZSBsZWZ0IGNlbnRlciBvZiB0aGUgb3RoZXIuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5BbGlnbi5Jbi5MZWZ0Q2VudGVyXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IEcgLSBbZ2FtZU9iamVjdCwkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2lsbCBiZSBwb3NpdGlvbmVkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBhbGlnbkluIC0gVGhlIEdhbWUgT2JqZWN0IHRvIGJhc2UgdGhlIGFsaWdubWVudCBwb3NpdGlvbiBvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRYPTBdIC0gT3B0aW9uYWwgaG9yaXpvbnRhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WT0wXSAtIE9wdGlvbmFsIHZlcnRpY2FsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBhbGlnbmVkLlxyXG4gKi9cclxudmFyIExlZnRDZW50ZXIgPSBmdW5jdGlvbiAoZ2FtZU9iamVjdCwgYWxpZ25Jbiwgb2Zmc2V0WCwgb2Zmc2V0WSlcclxue1xyXG4gICAgaWYgKG9mZnNldFggPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRYID0gMDsgfVxyXG4gICAgaWYgKG9mZnNldFkgPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRZID0gMDsgfVxyXG5cclxuICAgIFNldExlZnQoZ2FtZU9iamVjdCwgR2V0TGVmdChhbGlnbkluKSAtIG9mZnNldFgpO1xyXG4gICAgU2V0Q2VudGVyWShnYW1lT2JqZWN0LCBHZXRDZW50ZXJZKGFsaWduSW4pICsgb2Zmc2V0WSk7XHJcblxyXG4gICAgcmV0dXJuIGdhbWVPYmplY3Q7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IExlZnRDZW50ZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEFMSUdOX0NPTlNUID0gcmVxdWlyZSgnLi4vY29uc3QnKTtcclxuXHJcbnZhciBBbGlnbkluTWFwID0gW107XHJcblxyXG5BbGlnbkluTWFwW0FMSUdOX0NPTlNULkJPVFRPTV9DRU5URVJdID0gcmVxdWlyZSgnLi9Cb3R0b21DZW50ZXInKTtcclxuQWxpZ25Jbk1hcFtBTElHTl9DT05TVC5CT1RUT01fTEVGVF0gPSByZXF1aXJlKCcuL0JvdHRvbUxlZnQnKTtcclxuQWxpZ25Jbk1hcFtBTElHTl9DT05TVC5CT1RUT01fUklHSFRdID0gcmVxdWlyZSgnLi9Cb3R0b21SaWdodCcpO1xyXG5BbGlnbkluTWFwW0FMSUdOX0NPTlNULkNFTlRFUl0gPSByZXF1aXJlKCcuL0NlbnRlcicpO1xyXG5BbGlnbkluTWFwW0FMSUdOX0NPTlNULkxFRlRfQ0VOVEVSXSA9IHJlcXVpcmUoJy4vTGVmdENlbnRlcicpO1xyXG5BbGlnbkluTWFwW0FMSUdOX0NPTlNULlJJR0hUX0NFTlRFUl0gPSByZXF1aXJlKCcuL1JpZ2h0Q2VudGVyJyk7XHJcbkFsaWduSW5NYXBbQUxJR05fQ09OU1QuVE9QX0NFTlRFUl0gPSByZXF1aXJlKCcuL1RvcENlbnRlcicpO1xyXG5BbGlnbkluTWFwW0FMSUdOX0NPTlNULlRPUF9MRUZUXSA9IHJlcXVpcmUoJy4vVG9wTGVmdCcpO1xyXG5BbGlnbkluTWFwW0FMSUdOX0NPTlNULlRPUF9SSUdIVF0gPSByZXF1aXJlKCcuL1RvcFJpZ2h0Jyk7XHJcbkFsaWduSW5NYXBbQUxJR05fQ09OU1QuTEVGVF9CT1RUT01dID0gQWxpZ25Jbk1hcFtBTElHTl9DT05TVC5CT1RUT01fTEVGVF07XHJcbkFsaWduSW5NYXBbQUxJR05fQ09OU1QuTEVGVF9UT1BdID0gQWxpZ25Jbk1hcFtBTElHTl9DT05TVC5UT1BfTEVGVF07XHJcbkFsaWduSW5NYXBbQUxJR05fQ09OU1QuUklHSFRfQk9UVE9NXSA9IEFsaWduSW5NYXBbQUxJR05fQ09OU1QuQk9UVE9NX1JJR0hUXTtcclxuQWxpZ25Jbk1hcFtBTElHTl9DT05TVC5SSUdIVF9UT1BdID0gQWxpZ25Jbk1hcFtBTElHTl9DT05TVC5UT1BfUklHSFRdO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGdpdmVuIEdhbWUgT2JqZWN0IGFuZCBhbGlnbnMgaXQgc28gdGhhdCBpdCBpcyBwb3NpdGlvbmVkIHJlbGF0aXZlIHRvIHRoZSBvdGhlci5cclxuICogVGhlIGFsaWdubWVudCB1c2VkIGlzIGJhc2VkIG9uIHRoZSBgcG9zaXRpb25gIGFyZ3VtZW50LCB3aGljaCBpcyBhbiBgQUxJR05fQ09OU1RgIHZhbHVlLCBzdWNoIGFzIGBMRUZUX0NFTlRFUmAgb3IgYFRPUF9SSUdIVGAuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5BbGlnbi5Jbi5RdWlja1NldFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBHIC0gW2NoaWxkLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGNoaWxkIC0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2lsbCBiZSBwb3NpdGlvbmVkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBhbGlnbkluIC0gVGhlIEdhbWUgT2JqZWN0IHRvIGJhc2UgdGhlIGFsaWdubWVudCBwb3NpdGlvbiBvbi5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBwb3NpdGlvbiAtIFRoZSBwb3NpdGlvbiB0byBhbGlnbiB0aGUgR2FtZSBPYmplY3Qgd2l0aC4gVGhpcyBpcyBhbiBhbGlnbiBjb25zdGFudCwgc3VjaCBhcyBgQUxJR05fQ09OU1QuTEVGVF9DRU5URVJgLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFg9MF0gLSBPcHRpb25hbCBob3Jpem9udGFsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRZPTBdIC0gT3B0aW9uYWwgdmVydGljYWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGFsaWduZWQuXHJcbiAqL1xyXG52YXIgUXVpY2tTZXQgPSBmdW5jdGlvbiAoY2hpbGQsIGFsaWduSW4sIHBvc2l0aW9uLCBvZmZzZXRYLCBvZmZzZXRZKVxyXG57XHJcbiAgICByZXR1cm4gQWxpZ25Jbk1hcFtwb3NpdGlvbl0oY2hpbGQsIGFsaWduSW4sIG9mZnNldFgsIG9mZnNldFkpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBRdWlja1NldDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0Q2VudGVyWSA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRDZW50ZXJZJyk7XHJcbnZhciBHZXRSaWdodCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRSaWdodCcpO1xyXG52YXIgU2V0Q2VudGVyWSA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRDZW50ZXJZJyk7XHJcbnZhciBTZXRSaWdodCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRSaWdodCcpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGdpdmVuIEdhbWUgT2JqZWN0IGFuZCBhbGlnbnMgaXQgc28gdGhhdCBpdCBpcyBwb3NpdGlvbmVkIGluIHRoZSByaWdodCBjZW50ZXIgb2YgdGhlIG90aGVyLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQWxpZ24uSW4uUmlnaHRDZW50ZXJcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gRyAtIFtnYW1lT2JqZWN0LCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGdhbWVPYmplY3QgLSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3aWxsIGJlIHBvc2l0aW9uZWQuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGFsaWduSW4gLSBUaGUgR2FtZSBPYmplY3QgdG8gYmFzZSB0aGUgYWxpZ25tZW50IHBvc2l0aW9uIG9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFg9MF0gLSBPcHRpb25hbCBob3Jpem9udGFsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRZPTBdIC0gT3B0aW9uYWwgdmVydGljYWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGFsaWduZWQuXHJcbiAqL1xyXG52YXIgUmlnaHRDZW50ZXIgPSBmdW5jdGlvbiAoZ2FtZU9iamVjdCwgYWxpZ25Jbiwgb2Zmc2V0WCwgb2Zmc2V0WSlcclxue1xyXG4gICAgaWYgKG9mZnNldFggPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRYID0gMDsgfVxyXG4gICAgaWYgKG9mZnNldFkgPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRZID0gMDsgfVxyXG5cclxuICAgIFNldFJpZ2h0KGdhbWVPYmplY3QsIEdldFJpZ2h0KGFsaWduSW4pICsgb2Zmc2V0WCk7XHJcbiAgICBTZXRDZW50ZXJZKGdhbWVPYmplY3QsIEdldENlbnRlclkoYWxpZ25JbikgKyBvZmZzZXRZKTtcclxuXHJcbiAgICByZXR1cm4gZ2FtZU9iamVjdDtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUmlnaHRDZW50ZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEdldENlbnRlclggPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0Q2VudGVyWCcpO1xyXG52YXIgR2V0VG9wID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL0dldFRvcCcpO1xyXG52YXIgU2V0Q2VudGVyWCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRDZW50ZXJYJyk7XHJcbnZhciBTZXRUb3AgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0VG9wJyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgZ2l2ZW4gR2FtZSBPYmplY3QgYW5kIGFsaWducyBpdCBzbyB0aGF0IGl0IGlzIHBvc2l0aW9uZWQgaW4gdGhlIHRvcCBjZW50ZXIgb2YgdGhlIG90aGVyLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQWxpZ24uSW4uVG9wQ2VudGVyXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IEcgLSBbZ2FtZU9iamVjdCwkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2lsbCBiZSBwb3NpdGlvbmVkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBhbGlnbkluIC0gVGhlIEdhbWUgT2JqZWN0IHRvIGJhc2UgdGhlIGFsaWdubWVudCBwb3NpdGlvbiBvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRYPTBdIC0gT3B0aW9uYWwgaG9yaXpvbnRhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WT0wXSAtIE9wdGlvbmFsIHZlcnRpY2FsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBhbGlnbmVkLlxyXG4gKi9cclxudmFyIFRvcENlbnRlciA9IGZ1bmN0aW9uIChnYW1lT2JqZWN0LCBhbGlnbkluLCBvZmZzZXRYLCBvZmZzZXRZKVxyXG57XHJcbiAgICBpZiAob2Zmc2V0WCA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFggPSAwOyB9XHJcbiAgICBpZiAob2Zmc2V0WSA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFkgPSAwOyB9XHJcblxyXG4gICAgU2V0Q2VudGVyWChnYW1lT2JqZWN0LCBHZXRDZW50ZXJYKGFsaWduSW4pICsgb2Zmc2V0WCk7XHJcbiAgICBTZXRUb3AoZ2FtZU9iamVjdCwgR2V0VG9wKGFsaWduSW4pIC0gb2Zmc2V0WSk7XHJcblxyXG4gICAgcmV0dXJuIGdhbWVPYmplY3Q7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFRvcENlbnRlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0TGVmdCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRMZWZ0Jyk7XHJcbnZhciBHZXRUb3AgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0VG9wJyk7XHJcbnZhciBTZXRMZWZ0ID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL1NldExlZnQnKTtcclxudmFyIFNldFRvcCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRUb3AnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBnaXZlbiBHYW1lIE9iamVjdCBhbmQgYWxpZ25zIGl0IHNvIHRoYXQgaXQgaXMgcG9zaXRpb25lZCBpbiB0aGUgdG9wIGxlZnQgb2YgdGhlIG90aGVyLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQWxpZ24uSW4uVG9wTGVmdFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBHIC0gW2dhbWVPYmplY3QsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0aGF0IHdpbGwgYmUgcG9zaXRpb25lZC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gYWxpZ25JbiAtIFRoZSBHYW1lIE9iamVjdCB0byBiYXNlIHRoZSBhbGlnbm1lbnQgcG9zaXRpb24gb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WD0wXSAtIE9wdGlvbmFsIGhvcml6b250YWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFk9MF0gLSBPcHRpb25hbCB2ZXJ0aWNhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgYWxpZ25lZC5cclxuICovXHJcbnZhciBUb3BMZWZ0ID0gZnVuY3Rpb24gKGdhbWVPYmplY3QsIGFsaWduSW4sIG9mZnNldFgsIG9mZnNldFkpXHJcbntcclxuICAgIGlmIChvZmZzZXRYID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WCA9IDA7IH1cclxuICAgIGlmIChvZmZzZXRZID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WSA9IDA7IH1cclxuXHJcbiAgICBTZXRMZWZ0KGdhbWVPYmplY3QsIEdldExlZnQoYWxpZ25JbikgLSBvZmZzZXRYKTtcclxuICAgIFNldFRvcChnYW1lT2JqZWN0LCBHZXRUb3AoYWxpZ25JbikgLSBvZmZzZXRZKTtcclxuXHJcbiAgICByZXR1cm4gZ2FtZU9iamVjdDtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gVG9wTGVmdDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0UmlnaHQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0UmlnaHQnKTtcclxudmFyIEdldFRvcCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRUb3AnKTtcclxudmFyIFNldFJpZ2h0ID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL1NldFJpZ2h0Jyk7XHJcbnZhciBTZXRUb3AgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0VG9wJyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgZ2l2ZW4gR2FtZSBPYmplY3QgYW5kIGFsaWducyBpdCBzbyB0aGF0IGl0IGlzIHBvc2l0aW9uZWQgaW4gdGhlIHRvcCByaWdodCBvZiB0aGUgb3RoZXIuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5BbGlnbi5Jbi5Ub3BSaWdodFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBHIC0gW2dhbWVPYmplY3QsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0aGF0IHdpbGwgYmUgcG9zaXRpb25lZC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gYWxpZ25JbiAtIFRoZSBHYW1lIE9iamVjdCB0byBiYXNlIHRoZSBhbGlnbm1lbnQgcG9zaXRpb24gb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WD0wXSAtIE9wdGlvbmFsIGhvcml6b250YWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFk9MF0gLSBPcHRpb25hbCB2ZXJ0aWNhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgYWxpZ25lZC5cclxuICovXHJcbnZhciBUb3BSaWdodCA9IGZ1bmN0aW9uIChnYW1lT2JqZWN0LCBhbGlnbkluLCBvZmZzZXRYLCBvZmZzZXRZKVxyXG57XHJcbiAgICBpZiAob2Zmc2V0WCA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFggPSAwOyB9XHJcbiAgICBpZiAob2Zmc2V0WSA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFkgPSAwOyB9XHJcblxyXG4gICAgU2V0UmlnaHQoZ2FtZU9iamVjdCwgR2V0UmlnaHQoYWxpZ25JbikgKyBvZmZzZXRYKTtcclxuICAgIFNldFRvcChnYW1lT2JqZWN0LCBHZXRUb3AoYWxpZ25JbikgLSBvZmZzZXRZKTtcclxuXHJcbiAgICByZXR1cm4gZ2FtZU9iamVjdDtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gVG9wUmlnaHQ7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkRpc3BsYXkuQWxpZ24uSW5cclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBCb3R0b21DZW50ZXI6IHJlcXVpcmUoJy4vQm90dG9tQ2VudGVyJyksXHJcbiAgICBCb3R0b21MZWZ0OiByZXF1aXJlKCcuL0JvdHRvbUxlZnQnKSxcclxuICAgIEJvdHRvbVJpZ2h0OiByZXF1aXJlKCcuL0JvdHRvbVJpZ2h0JyksXHJcbiAgICBDZW50ZXI6IHJlcXVpcmUoJy4vQ2VudGVyJyksXHJcbiAgICBMZWZ0Q2VudGVyOiByZXF1aXJlKCcuL0xlZnRDZW50ZXInKSxcclxuICAgIFF1aWNrU2V0OiByZXF1aXJlKCcuL1F1aWNrU2V0JyksXHJcbiAgICBSaWdodENlbnRlcjogcmVxdWlyZSgnLi9SaWdodENlbnRlcicpLFxyXG4gICAgVG9wQ2VudGVyOiByZXF1aXJlKCcuL1RvcENlbnRlcicpLFxyXG4gICAgVG9wTGVmdDogcmVxdWlyZSgnLi9Ub3BMZWZ0JyksXHJcbiAgICBUb3BSaWdodDogcmVxdWlyZSgnLi9Ub3BSaWdodCcpXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDT05TVCA9IHJlcXVpcmUoJy4vY29uc3QnKTtcclxudmFyIEV4dGVuZCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9FeHRlbmQnKTtcclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5EaXNwbGF5LkFsaWduXHJcbiAqL1xyXG5cclxudmFyIEFsaWduID0ge1xyXG5cclxuICAgIEluOiByZXF1aXJlKCcuL2luJyksXHJcbiAgICBUbzogcmVxdWlyZSgnLi90bycpXHJcblxyXG59O1xyXG5cclxuLy8gICBNZXJnZSBpbiB0aGUgY29uc3RzXHJcbkFsaWduID0gRXh0ZW5kKGZhbHNlLCBBbGlnbiwgQ09OU1QpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBBbGlnbjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0Qm90dG9tID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL0dldEJvdHRvbScpO1xyXG52YXIgR2V0Q2VudGVyWCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRDZW50ZXJYJyk7XHJcbnZhciBTZXRDZW50ZXJYID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL1NldENlbnRlclgnKTtcclxudmFyIFNldFRvcCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRUb3AnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBnaXZlbiBHYW1lIE9iamVjdCBhbmQgYWxpZ25zIGl0IHNvIHRoYXQgaXQgaXMgcG9zaXRpb25lZCBuZXh0IHRvIHRoZSBib3R0b20gY2VudGVyIHBvc2l0aW9uIG9mIHRoZSBvdGhlci5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkFsaWduLlRvLkJvdHRvbUNlbnRlclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBHIC0gW2dhbWVPYmplY3QsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0aGF0IHdpbGwgYmUgcG9zaXRpb25lZC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gYWxpZ25UbyAtIFRoZSBHYW1lIE9iamVjdCB0byBiYXNlIHRoZSBhbGlnbm1lbnQgcG9zaXRpb24gb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WD0wXSAtIE9wdGlvbmFsIGhvcml6b250YWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFk9MF0gLSBPcHRpb25hbCB2ZXJ0aWNhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgYWxpZ25lZC5cclxuICovXHJcbnZhciBCb3R0b21DZW50ZXIgPSBmdW5jdGlvbiAoZ2FtZU9iamVjdCwgYWxpZ25Ubywgb2Zmc2V0WCwgb2Zmc2V0WSlcclxue1xyXG4gICAgaWYgKG9mZnNldFggPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRYID0gMDsgfVxyXG4gICAgaWYgKG9mZnNldFkgPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRZID0gMDsgfVxyXG5cclxuICAgIFNldENlbnRlclgoZ2FtZU9iamVjdCwgR2V0Q2VudGVyWChhbGlnblRvKSArIG9mZnNldFgpO1xyXG4gICAgU2V0VG9wKGdhbWVPYmplY3QsIEdldEJvdHRvbShhbGlnblRvKSArIG9mZnNldFkpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBCb3R0b21DZW50ZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEdldEJvdHRvbSA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRCb3R0b20nKTtcclxudmFyIEdldExlZnQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0TGVmdCcpO1xyXG52YXIgU2V0TGVmdCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRMZWZ0Jyk7XHJcbnZhciBTZXRUb3AgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0VG9wJyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgZ2l2ZW4gR2FtZSBPYmplY3QgYW5kIGFsaWducyBpdCBzbyB0aGF0IGl0IGlzIHBvc2l0aW9uZWQgbmV4dCB0byB0aGUgYm90dG9tIGxlZnQgcG9zaXRpb24gb2YgdGhlIG90aGVyLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQWxpZ24uVG8uQm90dG9tTGVmdFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBHIC0gW2dhbWVPYmplY3QsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0aGF0IHdpbGwgYmUgcG9zaXRpb25lZC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gYWxpZ25UbyAtIFRoZSBHYW1lIE9iamVjdCB0byBiYXNlIHRoZSBhbGlnbm1lbnQgcG9zaXRpb24gb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WD0wXSAtIE9wdGlvbmFsIGhvcml6b250YWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFk9MF0gLSBPcHRpb25hbCB2ZXJ0aWNhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgYWxpZ25lZC5cclxuICovXHJcbnZhciBCb3R0b21MZWZ0ID0gZnVuY3Rpb24gKGdhbWVPYmplY3QsIGFsaWduVG8sIG9mZnNldFgsIG9mZnNldFkpXHJcbntcclxuICAgIGlmIChvZmZzZXRYID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WCA9IDA7IH1cclxuICAgIGlmIChvZmZzZXRZID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WSA9IDA7IH1cclxuXHJcbiAgICBTZXRMZWZ0KGdhbWVPYmplY3QsIEdldExlZnQoYWxpZ25UbykgLSBvZmZzZXRYKTtcclxuICAgIFNldFRvcChnYW1lT2JqZWN0LCBHZXRCb3R0b20oYWxpZ25UbykgKyBvZmZzZXRZKTtcclxuXHJcbiAgICByZXR1cm4gZ2FtZU9iamVjdDtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQm90dG9tTGVmdDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0Qm90dG9tID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL0dldEJvdHRvbScpO1xyXG52YXIgR2V0UmlnaHQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0UmlnaHQnKTtcclxudmFyIFNldFJpZ2h0ID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL1NldFJpZ2h0Jyk7XHJcbnZhciBTZXRUb3AgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0VG9wJyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgZ2l2ZW4gR2FtZSBPYmplY3QgYW5kIGFsaWducyBpdCBzbyB0aGF0IGl0IGlzIHBvc2l0aW9uZWQgbmV4dCB0byB0aGUgYm90dG9tIHJpZ2h0IHBvc2l0aW9uIG9mIHRoZSBvdGhlci5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkFsaWduLlRvLkJvdHRvbVJpZ2h0XHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IEcgLSBbZ2FtZU9iamVjdCwkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2lsbCBiZSBwb3NpdGlvbmVkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBhbGlnblRvIC0gVGhlIEdhbWUgT2JqZWN0IHRvIGJhc2UgdGhlIGFsaWdubWVudCBwb3NpdGlvbiBvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRYPTBdIC0gT3B0aW9uYWwgaG9yaXpvbnRhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WT0wXSAtIE9wdGlvbmFsIHZlcnRpY2FsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBhbGlnbmVkLlxyXG4gKi9cclxudmFyIEJvdHRvbVJpZ2h0ID0gZnVuY3Rpb24gKGdhbWVPYmplY3QsIGFsaWduVG8sIG9mZnNldFgsIG9mZnNldFkpXHJcbntcclxuICAgIGlmIChvZmZzZXRYID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WCA9IDA7IH1cclxuICAgIGlmIChvZmZzZXRZID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WSA9IDA7IH1cclxuXHJcbiAgICBTZXRSaWdodChnYW1lT2JqZWN0LCBHZXRSaWdodChhbGlnblRvKSArIG9mZnNldFgpO1xyXG4gICAgU2V0VG9wKGdhbWVPYmplY3QsIEdldEJvdHRvbShhbGlnblRvKSArIG9mZnNldFkpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBCb3R0b21SaWdodDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0Qm90dG9tID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL0dldEJvdHRvbScpO1xyXG52YXIgR2V0TGVmdCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRMZWZ0Jyk7XHJcbnZhciBTZXRCb3R0b20gPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0Qm90dG9tJyk7XHJcbnZhciBTZXRSaWdodCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRSaWdodCcpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGdpdmVuIEdhbWUgT2JqZWN0IGFuZCBhbGlnbnMgaXQgc28gdGhhdCBpdCBpcyBwb3NpdGlvbmVkIG5leHQgdG8gdGhlIGxlZnQgYm90dG9tIHBvc2l0aW9uIG9mIHRoZSBvdGhlci5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkFsaWduLlRvLkxlZnRCb3R0b21cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gRyAtIFtnYW1lT2JqZWN0LCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGdhbWVPYmplY3QgLSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3aWxsIGJlIHBvc2l0aW9uZWQuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGFsaWduVG8gLSBUaGUgR2FtZSBPYmplY3QgdG8gYmFzZSB0aGUgYWxpZ25tZW50IHBvc2l0aW9uIG9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFg9MF0gLSBPcHRpb25hbCBob3Jpem9udGFsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRZPTBdIC0gT3B0aW9uYWwgdmVydGljYWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGFsaWduZWQuXHJcbiAqL1xyXG52YXIgTGVmdEJvdHRvbSA9IGZ1bmN0aW9uIChnYW1lT2JqZWN0LCBhbGlnblRvLCBvZmZzZXRYLCBvZmZzZXRZKVxyXG57XHJcbiAgICBpZiAob2Zmc2V0WCA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFggPSAwOyB9XHJcbiAgICBpZiAob2Zmc2V0WSA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFkgPSAwOyB9XHJcblxyXG4gICAgU2V0UmlnaHQoZ2FtZU9iamVjdCwgR2V0TGVmdChhbGlnblRvKSAtIG9mZnNldFgpO1xyXG4gICAgU2V0Qm90dG9tKGdhbWVPYmplY3QsIEdldEJvdHRvbShhbGlnblRvKSArIG9mZnNldFkpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBMZWZ0Qm90dG9tO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBHZXRDZW50ZXJZID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL0dldENlbnRlclknKTtcclxudmFyIEdldExlZnQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0TGVmdCcpO1xyXG52YXIgU2V0Q2VudGVyWSA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRDZW50ZXJZJyk7XHJcbnZhciBTZXRSaWdodCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRSaWdodCcpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGdpdmVuIEdhbWUgT2JqZWN0IGFuZCBhbGlnbnMgaXQgc28gdGhhdCBpdCBpcyBwb3NpdGlvbmVkIG5leHQgdG8gdGhlIGxlZnQgY2VudGVyIHBvc2l0aW9uIG9mIHRoZSBvdGhlci5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkFsaWduLlRvLkxlZnRDZW50ZXJcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gRyAtIFtnYW1lT2JqZWN0LCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGdhbWVPYmplY3QgLSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3aWxsIGJlIHBvc2l0aW9uZWQuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGFsaWduVG8gLSBUaGUgR2FtZSBPYmplY3QgdG8gYmFzZSB0aGUgYWxpZ25tZW50IHBvc2l0aW9uIG9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFg9MF0gLSBPcHRpb25hbCBob3Jpem9udGFsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRZPTBdIC0gT3B0aW9uYWwgdmVydGljYWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGFsaWduZWQuXHJcbiAqL1xyXG52YXIgTGVmdENlbnRlciA9IGZ1bmN0aW9uIChnYW1lT2JqZWN0LCBhbGlnblRvLCBvZmZzZXRYLCBvZmZzZXRZKVxyXG57XHJcbiAgICBpZiAob2Zmc2V0WCA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFggPSAwOyB9XHJcbiAgICBpZiAob2Zmc2V0WSA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFkgPSAwOyB9XHJcblxyXG4gICAgU2V0UmlnaHQoZ2FtZU9iamVjdCwgR2V0TGVmdChhbGlnblRvKSAtIG9mZnNldFgpO1xyXG4gICAgU2V0Q2VudGVyWShnYW1lT2JqZWN0LCBHZXRDZW50ZXJZKGFsaWduVG8pICsgb2Zmc2V0WSk7XHJcblxyXG4gICAgcmV0dXJuIGdhbWVPYmplY3Q7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IExlZnRDZW50ZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEdldExlZnQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0TGVmdCcpO1xyXG52YXIgR2V0VG9wID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL0dldFRvcCcpO1xyXG52YXIgU2V0UmlnaHQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0UmlnaHQnKTtcclxudmFyIFNldFRvcCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRUb3AnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBnaXZlbiBHYW1lIE9iamVjdCBhbmQgYWxpZ25zIGl0IHNvIHRoYXQgaXQgaXMgcG9zaXRpb25lZCBuZXh0IHRvIHRoZSBsZWZ0IHRvcCBwb3NpdGlvbiBvZiB0aGUgb3RoZXIuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5BbGlnbi5Uby5MZWZ0VG9wXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IEcgLSBbZ2FtZU9iamVjdCwkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2lsbCBiZSBwb3NpdGlvbmVkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBhbGlnblRvIC0gVGhlIEdhbWUgT2JqZWN0IHRvIGJhc2UgdGhlIGFsaWdubWVudCBwb3NpdGlvbiBvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRYPTBdIC0gT3B0aW9uYWwgaG9yaXpvbnRhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WT0wXSAtIE9wdGlvbmFsIHZlcnRpY2FsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBhbGlnbmVkLlxyXG4gKi9cclxudmFyIExlZnRUb3AgPSBmdW5jdGlvbiAoZ2FtZU9iamVjdCwgYWxpZ25Ubywgb2Zmc2V0WCwgb2Zmc2V0WSlcclxue1xyXG4gICAgaWYgKG9mZnNldFggPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRYID0gMDsgfVxyXG4gICAgaWYgKG9mZnNldFkgPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRZID0gMDsgfVxyXG5cclxuICAgIFNldFJpZ2h0KGdhbWVPYmplY3QsIEdldExlZnQoYWxpZ25UbykgLSBvZmZzZXRYKTtcclxuICAgIFNldFRvcChnYW1lT2JqZWN0LCBHZXRUb3AoYWxpZ25UbykgLSBvZmZzZXRZKTtcclxuXHJcbiAgICByZXR1cm4gZ2FtZU9iamVjdDtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gTGVmdFRvcDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgc2FtbWVcclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBBTElHTl9DT05TVCA9IHJlcXVpcmUoJy4uL2NvbnN0Jyk7XHJcblxyXG52YXIgQWxpZ25Ub01hcCA9IFtdO1xyXG5cclxuQWxpZ25Ub01hcFtBTElHTl9DT05TVC5CT1RUT01fQ0VOVEVSXSA9IHJlcXVpcmUoJy4vQm90dG9tQ2VudGVyJyk7XHJcbkFsaWduVG9NYXBbQUxJR05fQ09OU1QuQk9UVE9NX0xFRlRdID0gcmVxdWlyZSgnLi9Cb3R0b21MZWZ0Jyk7XHJcbkFsaWduVG9NYXBbQUxJR05fQ09OU1QuQk9UVE9NX1JJR0hUXSA9IHJlcXVpcmUoJy4vQm90dG9tUmlnaHQnKTtcclxuQWxpZ25Ub01hcFtBTElHTl9DT05TVC5MRUZUX0JPVFRPTV0gPSByZXF1aXJlKCcuL0xlZnRCb3R0b20nKTtcclxuQWxpZ25Ub01hcFtBTElHTl9DT05TVC5MRUZUX0NFTlRFUl0gPSByZXF1aXJlKCcuL0xlZnRDZW50ZXInKTtcclxuQWxpZ25Ub01hcFtBTElHTl9DT05TVC5MRUZUX1RPUF0gPSByZXF1aXJlKCcuL0xlZnRUb3AnKTtcclxuQWxpZ25Ub01hcFtBTElHTl9DT05TVC5SSUdIVF9CT1RUT01dID0gcmVxdWlyZSgnLi9SaWdodEJvdHRvbScpO1xyXG5BbGlnblRvTWFwW0FMSUdOX0NPTlNULlJJR0hUX0NFTlRFUl0gPSByZXF1aXJlKCcuL1JpZ2h0Q2VudGVyJyk7XHJcbkFsaWduVG9NYXBbQUxJR05fQ09OU1QuUklHSFRfVE9QXSA9IHJlcXVpcmUoJy4vUmlnaHRUb3AnKTtcclxuQWxpZ25Ub01hcFtBTElHTl9DT05TVC5UT1BfQ0VOVEVSXSA9IHJlcXVpcmUoJy4vVG9wQ2VudGVyJyk7XHJcbkFsaWduVG9NYXBbQUxJR05fQ09OU1QuVE9QX0xFRlRdID0gcmVxdWlyZSgnLi9Ub3BMZWZ0Jyk7XHJcbkFsaWduVG9NYXBbQUxJR05fQ09OU1QuVE9QX1JJR0hUXSA9IHJlcXVpcmUoJy4vVG9wUmlnaHQnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBhIEdhbWUgT2JqZWN0IGFuZCBhbGlnbnMgaXQgbmV4dCB0byBhbm90aGVyLCBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uXHJcbiAqIFRoZSBhbGlnbm1lbnQgdXNlZCBpcyBiYXNlZCBvbiB0aGUgYHBvc2l0aW9uYCBhcmd1bWVudCwgd2hpY2ggaXMgYSBgUGhhc2VyLkRpc3BsYXkuQWxpZ25gIHByb3BlcnR5IHN1Y2ggYXMgYExFRlRfQ0VOVEVSYCBvciBgVE9QX1JJR0hUYC5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkFsaWduLlRvLlF1aWNrU2V0XHJcbiAqIEBzaW5jZSAzLjIyLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBHIC0gW2NoaWxkLCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGNoaWxkIC0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2lsbCBiZSBwb3NpdGlvbmVkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBhbGlnblRvIC0gVGhlIEdhbWUgT2JqZWN0IHRvIGJhc2UgdGhlIGFsaWdubWVudCBwb3NpdGlvbiBvbi5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBwb3NpdGlvbiAtIFRoZSBwb3NpdGlvbiB0byBhbGlnbiB0aGUgR2FtZSBPYmplY3Qgd2l0aC4gVGhpcyBpcyBhbiBhbGlnbiBjb25zdGFudCwgc3VjaCBhcyBgUGhhc2VyLkRpc3BsYXkuQWxpZ24uTEVGVF9DRU5URVJgLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFg9MF0gLSBPcHRpb25hbCBob3Jpem9udGFsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRZPTBdIC0gT3B0aW9uYWwgdmVydGljYWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGFsaWduZWQuXHJcbiAqL1xyXG52YXIgUXVpY2tTZXQgPSBmdW5jdGlvbiAoY2hpbGQsIGFsaWduVG8sIHBvc2l0aW9uLCBvZmZzZXRYLCBvZmZzZXRZKVxyXG57XHJcbiAgICByZXR1cm4gQWxpZ25Ub01hcFtwb3NpdGlvbl0oY2hpbGQsIGFsaWduVG8sIG9mZnNldFgsIG9mZnNldFkpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBRdWlja1NldDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0Qm90dG9tID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL0dldEJvdHRvbScpO1xyXG52YXIgR2V0UmlnaHQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0UmlnaHQnKTtcclxudmFyIFNldEJvdHRvbSA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRCb3R0b20nKTtcclxudmFyIFNldExlZnQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0TGVmdCcpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGdpdmVuIEdhbWUgT2JqZWN0IGFuZCBhbGlnbnMgaXQgc28gdGhhdCBpdCBpcyBwb3NpdGlvbmVkIG5leHQgdG8gdGhlIHJpZ2h0IGJvdHRvbSBwb3NpdGlvbiBvZiB0aGUgb3RoZXIuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5BbGlnbi5Uby5SaWdodEJvdHRvbVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBHIC0gW2dhbWVPYmplY3QsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0aGF0IHdpbGwgYmUgcG9zaXRpb25lZC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gYWxpZ25UbyAtIFRoZSBHYW1lIE9iamVjdCB0byBiYXNlIHRoZSBhbGlnbm1lbnQgcG9zaXRpb24gb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WD0wXSAtIE9wdGlvbmFsIGhvcml6b250YWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFk9MF0gLSBPcHRpb25hbCB2ZXJ0aWNhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgYWxpZ25lZC5cclxuICovXHJcbnZhciBSaWdodEJvdHRvbSA9IGZ1bmN0aW9uIChnYW1lT2JqZWN0LCBhbGlnblRvLCBvZmZzZXRYLCBvZmZzZXRZKVxyXG57XHJcbiAgICBpZiAob2Zmc2V0WCA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFggPSAwOyB9XHJcbiAgICBpZiAob2Zmc2V0WSA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFkgPSAwOyB9XHJcblxyXG4gICAgU2V0TGVmdChnYW1lT2JqZWN0LCBHZXRSaWdodChhbGlnblRvKSArIG9mZnNldFgpO1xyXG4gICAgU2V0Qm90dG9tKGdhbWVPYmplY3QsIEdldEJvdHRvbShhbGlnblRvKSArIG9mZnNldFkpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBSaWdodEJvdHRvbTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0Q2VudGVyWSA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRDZW50ZXJZJyk7XHJcbnZhciBHZXRSaWdodCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRSaWdodCcpO1xyXG52YXIgU2V0Q2VudGVyWSA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRDZW50ZXJZJyk7XHJcbnZhciBTZXRMZWZ0ID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL1NldExlZnQnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBnaXZlbiBHYW1lIE9iamVjdCBhbmQgYWxpZ25zIGl0IHNvIHRoYXQgaXQgaXMgcG9zaXRpb25lZCBuZXh0IHRvIHRoZSByaWdodCBjZW50ZXIgcG9zaXRpb24gb2YgdGhlIG90aGVyLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQWxpZ24uVG8uUmlnaHRDZW50ZXJcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gRyAtIFtnYW1lT2JqZWN0LCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGdhbWVPYmplY3QgLSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3aWxsIGJlIHBvc2l0aW9uZWQuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGFsaWduVG8gLSBUaGUgR2FtZSBPYmplY3QgdG8gYmFzZSB0aGUgYWxpZ25tZW50IHBvc2l0aW9uIG9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFg9MF0gLSBPcHRpb25hbCBob3Jpem9udGFsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRZPTBdIC0gT3B0aW9uYWwgdmVydGljYWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGFsaWduZWQuXHJcbiAqL1xyXG52YXIgUmlnaHRDZW50ZXIgPSBmdW5jdGlvbiAoZ2FtZU9iamVjdCwgYWxpZ25Ubywgb2Zmc2V0WCwgb2Zmc2V0WSlcclxue1xyXG4gICAgaWYgKG9mZnNldFggPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRYID0gMDsgfVxyXG4gICAgaWYgKG9mZnNldFkgPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRZID0gMDsgfVxyXG5cclxuICAgIFNldExlZnQoZ2FtZU9iamVjdCwgR2V0UmlnaHQoYWxpZ25UbykgKyBvZmZzZXRYKTtcclxuICAgIFNldENlbnRlclkoZ2FtZU9iamVjdCwgR2V0Q2VudGVyWShhbGlnblRvKSArIG9mZnNldFkpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBSaWdodENlbnRlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0UmlnaHQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0UmlnaHQnKTtcclxudmFyIEdldFRvcCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRUb3AnKTtcclxudmFyIFNldExlZnQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0TGVmdCcpO1xyXG52YXIgU2V0VG9wID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL1NldFRvcCcpO1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIGdpdmVuIEdhbWUgT2JqZWN0IGFuZCBhbGlnbnMgaXQgc28gdGhhdCBpdCBpcyBwb3NpdGlvbmVkIG5leHQgdG8gdGhlIHJpZ2h0IHRvcCBwb3NpdGlvbiBvZiB0aGUgb3RoZXIuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5BbGlnbi5Uby5SaWdodFRvcFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBHIC0gW2dhbWVPYmplY3QsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0aGF0IHdpbGwgYmUgcG9zaXRpb25lZC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gYWxpZ25UbyAtIFRoZSBHYW1lIE9iamVjdCB0byBiYXNlIHRoZSBhbGlnbm1lbnQgcG9zaXRpb24gb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WD0wXSAtIE9wdGlvbmFsIGhvcml6b250YWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFk9MF0gLSBPcHRpb25hbCB2ZXJ0aWNhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgYWxpZ25lZC5cclxuICovXHJcbnZhciBSaWdodFRvcCA9IGZ1bmN0aW9uIChnYW1lT2JqZWN0LCBhbGlnblRvLCBvZmZzZXRYLCBvZmZzZXRZKVxyXG57XHJcbiAgICBpZiAob2Zmc2V0WCA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFggPSAwOyB9XHJcbiAgICBpZiAob2Zmc2V0WSA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFkgPSAwOyB9XHJcblxyXG4gICAgU2V0TGVmdChnYW1lT2JqZWN0LCBHZXRSaWdodChhbGlnblRvKSArIG9mZnNldFgpO1xyXG4gICAgU2V0VG9wKGdhbWVPYmplY3QsIEdldFRvcChhbGlnblRvKSAtIG9mZnNldFkpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBSaWdodFRvcDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0Q2VudGVyWCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRDZW50ZXJYJyk7XHJcbnZhciBHZXRUb3AgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0VG9wJyk7XHJcbnZhciBTZXRCb3R0b20gPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvU2V0Qm90dG9tJyk7XHJcbnZhciBTZXRDZW50ZXJYID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL1NldENlbnRlclgnKTtcclxuXHJcbi8qKlxyXG4gKiBUYWtlcyBnaXZlbiBHYW1lIE9iamVjdCBhbmQgYWxpZ25zIGl0IHNvIHRoYXQgaXQgaXMgcG9zaXRpb25lZCBuZXh0IHRvIHRoZSB0b3AgY2VudGVyIHBvc2l0aW9uIG9mIHRoZSBvdGhlci5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkFsaWduLlRvLlRvcENlbnRlclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBHIC0gW2dhbWVPYmplY3QsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0aGF0IHdpbGwgYmUgcG9zaXRpb25lZC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gYWxpZ25UbyAtIFRoZSBHYW1lIE9iamVjdCB0byBiYXNlIHRoZSBhbGlnbm1lbnQgcG9zaXRpb24gb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WD0wXSAtIE9wdGlvbmFsIGhvcml6b250YWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFk9MF0gLSBPcHRpb25hbCB2ZXJ0aWNhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgYWxpZ25lZC5cclxuICovXHJcbnZhciBUb3BDZW50ZXIgPSBmdW5jdGlvbiAoZ2FtZU9iamVjdCwgYWxpZ25Ubywgb2Zmc2V0WCwgb2Zmc2V0WSlcclxue1xyXG4gICAgaWYgKG9mZnNldFggPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRYID0gMDsgfVxyXG4gICAgaWYgKG9mZnNldFkgPT09IHVuZGVmaW5lZCkgeyBvZmZzZXRZID0gMDsgfVxyXG5cclxuICAgIFNldENlbnRlclgoZ2FtZU9iamVjdCwgR2V0Q2VudGVyWChhbGlnblRvKSArIG9mZnNldFgpO1xyXG4gICAgU2V0Qm90dG9tKGdhbWVPYmplY3QsIEdldFRvcChhbGlnblRvKSAtIG9mZnNldFkpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBUb3BDZW50ZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEdldExlZnQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0TGVmdCcpO1xyXG52YXIgR2V0VG9wID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL0dldFRvcCcpO1xyXG52YXIgU2V0Qm90dG9tID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL1NldEJvdHRvbScpO1xyXG52YXIgU2V0TGVmdCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRMZWZ0Jyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgZ2l2ZW4gR2FtZSBPYmplY3QgYW5kIGFsaWducyBpdCBzbyB0aGF0IGl0IGlzIHBvc2l0aW9uZWQgbmV4dCB0byB0aGUgdG9wIGxlZnQgcG9zaXRpb24gb2YgdGhlIG90aGVyLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQWxpZ24uVG8uVG9wTGVmdFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBHIC0gW2dhbWVPYmplY3QsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0aGF0IHdpbGwgYmUgcG9zaXRpb25lZC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gYWxpZ25UbyAtIFRoZSBHYW1lIE9iamVjdCB0byBiYXNlIHRoZSBhbGlnbm1lbnQgcG9zaXRpb24gb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WD0wXSAtIE9wdGlvbmFsIGhvcml6b250YWwgb2Zmc2V0IGZyb20gdGhlIHBvc2l0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW29mZnNldFk9MF0gLSBPcHRpb25hbCB2ZXJ0aWNhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgYWxpZ25lZC5cclxuICovXHJcbnZhciBUb3BMZWZ0ID0gZnVuY3Rpb24gKGdhbWVPYmplY3QsIGFsaWduVG8sIG9mZnNldFgsIG9mZnNldFkpXHJcbntcclxuICAgIGlmIChvZmZzZXRYID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WCA9IDA7IH1cclxuICAgIGlmIChvZmZzZXRZID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WSA9IDA7IH1cclxuXHJcbiAgICBTZXRMZWZ0KGdhbWVPYmplY3QsIEdldExlZnQoYWxpZ25UbykgLSBvZmZzZXRYKTtcclxuICAgIFNldEJvdHRvbShnYW1lT2JqZWN0LCBHZXRUb3AoYWxpZ25UbykgLSBvZmZzZXRZKTtcclxuXHJcbiAgICByZXR1cm4gZ2FtZU9iamVjdDtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gVG9wTGVmdDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0UmlnaHQgPSByZXF1aXJlKCcuLi8uLi9ib3VuZHMvR2V0UmlnaHQnKTtcclxudmFyIEdldFRvcCA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9HZXRUb3AnKTtcclxudmFyIFNldEJvdHRvbSA9IHJlcXVpcmUoJy4uLy4uL2JvdW5kcy9TZXRCb3R0b20nKTtcclxudmFyIFNldFJpZ2h0ID0gcmVxdWlyZSgnLi4vLi4vYm91bmRzL1NldFJpZ2h0Jyk7XHJcblxyXG4vKipcclxuICogVGFrZXMgZ2l2ZW4gR2FtZSBPYmplY3QgYW5kIGFsaWducyBpdCBzbyB0aGF0IGl0IGlzIHBvc2l0aW9uZWQgbmV4dCB0byB0aGUgdG9wIHJpZ2h0IHBvc2l0aW9uIG9mIHRoZSBvdGhlci5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkFsaWduLlRvLlRvcFJpZ2h0XHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IEcgLSBbZ2FtZU9iamVjdCwkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2lsbCBiZSBwb3NpdGlvbmVkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBhbGlnblRvIC0gVGhlIEdhbWUgT2JqZWN0IHRvIGJhc2UgdGhlIGFsaWdubWVudCBwb3NpdGlvbiBvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRYPTBdIC0gT3B0aW9uYWwgaG9yaXpvbnRhbCBvZmZzZXQgZnJvbSB0aGUgcG9zaXRpb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WT0wXSAtIE9wdGlvbmFsIHZlcnRpY2FsIG9mZnNldCBmcm9tIHRoZSBwb3NpdGlvbi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBhbGlnbmVkLlxyXG4gKi9cclxudmFyIFRvcFJpZ2h0ID0gZnVuY3Rpb24gKGdhbWVPYmplY3QsIGFsaWduVG8sIG9mZnNldFgsIG9mZnNldFkpXHJcbntcclxuICAgIGlmIChvZmZzZXRYID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WCA9IDA7IH1cclxuICAgIGlmIChvZmZzZXRZID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WSA9IDA7IH1cclxuXHJcbiAgICBTZXRSaWdodChnYW1lT2JqZWN0LCBHZXRSaWdodChhbGlnblRvKSArIG9mZnNldFgpO1xyXG4gICAgU2V0Qm90dG9tKGdhbWVPYmplY3QsIEdldFRvcChhbGlnblRvKSAtIG9mZnNldFkpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBUb3BSaWdodDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuRGlzcGxheS5BbGlnbi5Ub1xyXG4gKi9cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIEJvdHRvbUNlbnRlcjogcmVxdWlyZSgnLi9Cb3R0b21DZW50ZXInKSxcclxuICAgIEJvdHRvbUxlZnQ6IHJlcXVpcmUoJy4vQm90dG9tTGVmdCcpLFxyXG4gICAgQm90dG9tUmlnaHQ6IHJlcXVpcmUoJy4vQm90dG9tUmlnaHQnKSxcclxuICAgIExlZnRCb3R0b206IHJlcXVpcmUoJy4vTGVmdEJvdHRvbScpLFxyXG4gICAgTGVmdENlbnRlcjogcmVxdWlyZSgnLi9MZWZ0Q2VudGVyJyksXHJcbiAgICBMZWZ0VG9wOiByZXF1aXJlKCcuL0xlZnRUb3AnKSxcclxuICAgIFF1aWNrU2V0OiByZXF1aXJlKCcuL1F1aWNrU2V0JyksXHJcbiAgICBSaWdodEJvdHRvbTogcmVxdWlyZSgnLi9SaWdodEJvdHRvbScpLFxyXG4gICAgUmlnaHRDZW50ZXI6IHJlcXVpcmUoJy4vUmlnaHRDZW50ZXInKSxcclxuICAgIFJpZ2h0VG9wOiByZXF1aXJlKCcuL1JpZ2h0VG9wJyksXHJcbiAgICBUb3BDZW50ZXI6IHJlcXVpcmUoJy4vVG9wQ2VudGVyJyksXHJcbiAgICBUb3BMZWZ0OiByZXF1aXJlKCcuL1RvcExlZnQnKSxcclxuICAgIFRvcFJpZ2h0OiByZXF1aXJlKCcuL1RvcFJpZ2h0JylcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFNldENlbnRlclggPSByZXF1aXJlKCcuL1NldENlbnRlclgnKTtcclxudmFyIFNldENlbnRlclkgPSByZXF1aXJlKCcuL1NldENlbnRlclknKTtcclxuXHJcbi8qKlxyXG4gKiBQb3NpdGlvbnMgdGhlIEdhbWUgT2JqZWN0IHNvIHRoYXQgaXQgaXMgY2VudGVyZWQgb24gdGhlIGdpdmVuIGNvb3JkaW5hdGVzLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQm91bmRzLkNlbnRlck9uXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IEcgLSBbZ2FtZU9iamVjdCwkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2lsbCBiZSByZS1wb3NpdGlvbmVkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBob3Jpem9udGFsIGNvb3JkaW5hdGUgdG8gcG9zaXRpb24gdGhlIEdhbWUgT2JqZWN0IG9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB2ZXJ0aWNhbCBjb29yZGluYXRlIHRvIHBvc2l0aW9uIHRoZSBHYW1lIE9iamVjdCBvbi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBwb3NpdGlvbmVkLlxyXG4gKi9cclxudmFyIENlbnRlck9uID0gZnVuY3Rpb24gKGdhbWVPYmplY3QsIHgsIHkpXHJcbntcclxuICAgIFNldENlbnRlclgoZ2FtZU9iamVjdCwgeCk7XHJcblxyXG4gICAgcmV0dXJuIFNldENlbnRlclkoZ2FtZU9iamVjdCwgeSk7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IENlbnRlck9uO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBib3R0b20gY29vcmRpbmF0ZSBmcm9tIHRoZSBib3VuZHMgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQm91bmRzLkdldEJvdHRvbVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0byBnZXQgdGhlIGJvdW5kcyB2YWx1ZSBmcm9tLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBib3R0b20gY29vcmRpbmF0ZSBvZiB0aGUgYm91bmRzIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICovXHJcbnZhciBHZXRCb3R0b20gPSBmdW5jdGlvbiAoZ2FtZU9iamVjdClcclxue1xyXG4gICAgcmV0dXJuIChnYW1lT2JqZWN0LnkgKyBnYW1lT2JqZWN0LmhlaWdodCkgLSAoZ2FtZU9iamVjdC5oZWlnaHQgKiBnYW1lT2JqZWN0Lm9yaWdpblkpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHZXRCb3R0b207XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGNlbnRlciB4IGNvb3JkaW5hdGUgZnJvbSB0aGUgYm91bmRzIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkJvdW5kcy5HZXRDZW50ZXJYXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRvIGdldCB0aGUgYm91bmRzIHZhbHVlIGZyb20uXHJcbiAqXHJcbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIGNlbnRlciB4IGNvb3JkaW5hdGUgb2YgdGhlIGJvdW5kcyBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAqL1xyXG52YXIgR2V0Q2VudGVyWCA9IGZ1bmN0aW9uIChnYW1lT2JqZWN0KVxyXG57XHJcbiAgICByZXR1cm4gZ2FtZU9iamVjdC54IC0gKGdhbWVPYmplY3Qud2lkdGggKiBnYW1lT2JqZWN0Lm9yaWdpblgpICsgKGdhbWVPYmplY3Qud2lkdGggKiAwLjUpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHZXRDZW50ZXJYO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBjZW50ZXIgeSBjb29yZGluYXRlIGZyb20gdGhlIGJvdW5kcyBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5Cb3VuZHMuR2V0Q2VudGVyWVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0byBnZXQgdGhlIGJvdW5kcyB2YWx1ZSBmcm9tLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBjZW50ZXIgeSBjb29yZGluYXRlIG9mIHRoZSBib3VuZHMgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKi9cclxudmFyIEdldENlbnRlclkgPSBmdW5jdGlvbiAoZ2FtZU9iamVjdClcclxue1xyXG4gICAgcmV0dXJuIGdhbWVPYmplY3QueSAtIChnYW1lT2JqZWN0LmhlaWdodCAqIGdhbWVPYmplY3Qub3JpZ2luWSkgKyAoZ2FtZU9iamVjdC5oZWlnaHQgKiAwLjUpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHZXRDZW50ZXJZO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBsZWZ0IGNvb3JkaW5hdGUgZnJvbSB0aGUgYm91bmRzIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkJvdW5kcy5HZXRMZWZ0XHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRvIGdldCB0aGUgYm91bmRzIHZhbHVlIGZyb20uXHJcbiAqXHJcbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIGxlZnQgY29vcmRpbmF0ZSBvZiB0aGUgYm91bmRzIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICovXHJcbnZhciBHZXRMZWZ0ID0gZnVuY3Rpb24gKGdhbWVPYmplY3QpXHJcbntcclxuICAgIHJldHVybiBnYW1lT2JqZWN0LnggLSAoZ2FtZU9iamVjdC53aWR0aCAqIGdhbWVPYmplY3Qub3JpZ2luWCk7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEdldExlZnQ7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGFtb3VudCB0aGUgR2FtZSBPYmplY3QgaXMgdmlzdWFsbHkgb2Zmc2V0IGZyb20gaXRzIHggY29vcmRpbmF0ZS5cclxuICogVGhpcyBpcyB0aGUgc2FtZSBhcyBgd2lkdGggKiBvcmlnaW4ueGAuXHJcbiAqIFRoaXMgdmFsdWUgd2lsbCBvbmx5IGJlID4gMCBpZiBgb3JpZ2luLnhgIGlzIG5vdCBlcXVhbCB0byB6ZXJvLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQm91bmRzLkdldE9mZnNldFhcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGdhbWVPYmplY3QgLSBUaGUgR2FtZSBPYmplY3QgdG8gZ2V0IHRoZSBib3VuZHMgdmFsdWUgZnJvbS5cclxuICpcclxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgaG9yaXpvbnRhbCBvZmZzZXQgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKi9cclxudmFyIEdldE9mZnNldFggPSBmdW5jdGlvbiAoZ2FtZU9iamVjdClcclxue1xyXG4gICAgcmV0dXJuIGdhbWVPYmplY3Qud2lkdGggKiBnYW1lT2JqZWN0Lm9yaWdpblg7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEdldE9mZnNldFg7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGFtb3VudCB0aGUgR2FtZSBPYmplY3QgaXMgdmlzdWFsbHkgb2Zmc2V0IGZyb20gaXRzIHkgY29vcmRpbmF0ZS5cclxuICogVGhpcyBpcyB0aGUgc2FtZSBhcyBgd2lkdGggKiBvcmlnaW4ueWAuXHJcbiAqIFRoaXMgdmFsdWUgd2lsbCBvbmx5IGJlID4gMCBpZiBgb3JpZ2luLnlgIGlzIG5vdCBlcXVhbCB0byB6ZXJvLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQm91bmRzLkdldE9mZnNldFlcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGdhbWVPYmplY3QgLSBUaGUgR2FtZSBPYmplY3QgdG8gZ2V0IHRoZSBib3VuZHMgdmFsdWUgZnJvbS5cclxuICpcclxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgdmVydGljYWwgb2Zmc2V0IG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICovXHJcbnZhciBHZXRPZmZzZXRZID0gZnVuY3Rpb24gKGdhbWVPYmplY3QpXHJcbntcclxuICAgIHJldHVybiBnYW1lT2JqZWN0LmhlaWdodCAqIGdhbWVPYmplY3Qub3JpZ2luWTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gR2V0T2Zmc2V0WTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgcmlnaHQgY29vcmRpbmF0ZSBmcm9tIHRoZSBib3VuZHMgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQm91bmRzLkdldFJpZ2h0XHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRvIGdldCB0aGUgYm91bmRzIHZhbHVlIGZyb20uXHJcbiAqXHJcbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIHJpZ2h0IGNvb3JkaW5hdGUgb2YgdGhlIGJvdW5kcyBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAqL1xyXG52YXIgR2V0UmlnaHQgPSBmdW5jdGlvbiAoZ2FtZU9iamVjdClcclxue1xyXG4gICAgcmV0dXJuIChnYW1lT2JqZWN0LnggKyBnYW1lT2JqZWN0LndpZHRoKSAtIChnYW1lT2JqZWN0LndpZHRoICogZ2FtZU9iamVjdC5vcmlnaW5YKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gR2V0UmlnaHQ7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIHRvcCBjb29yZGluYXRlIGZyb20gdGhlIGJvdW5kcyBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5Cb3VuZHMuR2V0VG9wXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRvIGdldCB0aGUgYm91bmRzIHZhbHVlIGZyb20uXHJcbiAqXHJcbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIHRvcCBjb29yZGluYXRlIG9mIHRoZSBib3VuZHMgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKi9cclxudmFyIEdldFRvcCA9IGZ1bmN0aW9uIChnYW1lT2JqZWN0KVxyXG57XHJcbiAgICByZXR1cm4gZ2FtZU9iamVjdC55IC0gKGdhbWVPYmplY3QuaGVpZ2h0ICogZ2FtZU9iamVjdC5vcmlnaW5ZKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gR2V0VG9wO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBQb3NpdGlvbnMgdGhlIEdhbWUgT2JqZWN0IHNvIHRoYXQgdGhlIGJvdHRvbSBvZiBpdHMgYm91bmRzIGFsaWducyB3aXRoIHRoZSBnaXZlbiBjb29yZGluYXRlLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQm91bmRzLlNldEJvdHRvbVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBHIC0gW2dhbWVPYmplY3QsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0aGF0IHdpbGwgYmUgcmUtcG9zaXRpb25lZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGNvb3JkaW5hdGUgdG8gcG9zaXRpb24gdGhlIEdhbWUgT2JqZWN0IGJvdW5kcyBvbi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBwb3NpdGlvbmVkLlxyXG4gKi9cclxudmFyIFNldEJvdHRvbSA9IGZ1bmN0aW9uIChnYW1lT2JqZWN0LCB2YWx1ZSlcclxue1xyXG4gICAgZ2FtZU9iamVjdC55ID0gKHZhbHVlIC0gZ2FtZU9iamVjdC5oZWlnaHQpICsgKGdhbWVPYmplY3QuaGVpZ2h0ICogZ2FtZU9iamVjdC5vcmlnaW5ZKTtcclxuXHJcbiAgICByZXR1cm4gZ2FtZU9iamVjdDtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2V0Qm90dG9tO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBQb3NpdGlvbnMgdGhlIEdhbWUgT2JqZWN0IHNvIHRoYXQgdGhlIGNlbnRlciB0b3Agb2YgaXRzIGJvdW5kcyBhbGlnbnMgd2l0aCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZS5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkJvdW5kcy5TZXRDZW50ZXJYXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IEcgLSBbZ2FtZU9iamVjdCwkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2lsbCBiZSByZS1wb3NpdGlvbmVkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBjb29yZGluYXRlIHRvIHBvc2l0aW9uIHRoZSBHYW1lIE9iamVjdCBib3VuZHMgb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgcG9zaXRpb25lZC5cclxuICovXHJcbnZhciBTZXRDZW50ZXJYID0gZnVuY3Rpb24gKGdhbWVPYmplY3QsIHgpXHJcbntcclxuICAgIHZhciBvZmZzZXRYID0gZ2FtZU9iamVjdC53aWR0aCAqIGdhbWVPYmplY3Qub3JpZ2luWDtcclxuXHJcbiAgICBnYW1lT2JqZWN0LnggPSAoeCArIG9mZnNldFgpIC0gKGdhbWVPYmplY3Qud2lkdGggKiAwLjUpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTZXRDZW50ZXJYO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBQb3NpdGlvbnMgdGhlIEdhbWUgT2JqZWN0IHNvIHRoYXQgdGhlIGNlbnRlciB0b3Agb2YgaXRzIGJvdW5kcyBhbGlnbnMgd2l0aCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZS5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkJvdW5kcy5TZXRDZW50ZXJZXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZ2VuZXJpYyB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IEcgLSBbZ2FtZU9iamVjdCwkcmV0dXJuXVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBnYW1lT2JqZWN0IC0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2lsbCBiZSByZS1wb3NpdGlvbmVkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSBjb29yZGluYXRlIHRvIHBvc2l0aW9uIHRoZSBHYW1lIE9iamVjdCBib3VuZHMgb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgcG9zaXRpb25lZC5cclxuICovXHJcbnZhciBTZXRDZW50ZXJZID0gZnVuY3Rpb24gKGdhbWVPYmplY3QsIHkpXHJcbntcclxuICAgIHZhciBvZmZzZXRZID0gZ2FtZU9iamVjdC5oZWlnaHQgKiBnYW1lT2JqZWN0Lm9yaWdpblk7XHJcblxyXG4gICAgZ2FtZU9iamVjdC55ID0gKHkgKyBvZmZzZXRZKSAtIChnYW1lT2JqZWN0LmhlaWdodCAqIDAuNSk7XHJcblxyXG4gICAgcmV0dXJuIGdhbWVPYmplY3Q7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFNldENlbnRlclk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFBvc2l0aW9ucyB0aGUgR2FtZSBPYmplY3Qgc28gdGhhdCB0aGUgbGVmdCBvZiBpdHMgYm91bmRzIGFsaWducyB3aXRoIHRoZSBnaXZlbiBjb29yZGluYXRlLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQm91bmRzLlNldExlZnRcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gRyAtIFtnYW1lT2JqZWN0LCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGdhbWVPYmplY3QgLSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3aWxsIGJlIHJlLXBvc2l0aW9uZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBjb29yZGluYXRlIHRvIHBvc2l0aW9uIHRoZSBHYW1lIE9iamVjdCBib3VuZHMgb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgcG9zaXRpb25lZC5cclxuICovXHJcbnZhciBTZXRMZWZ0ID0gZnVuY3Rpb24gKGdhbWVPYmplY3QsIHZhbHVlKVxyXG57XHJcbiAgICBnYW1lT2JqZWN0LnggPSB2YWx1ZSArIChnYW1lT2JqZWN0LndpZHRoICogZ2FtZU9iamVjdC5vcmlnaW5YKTtcclxuXHJcbiAgICByZXR1cm4gZ2FtZU9iamVjdDtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2V0TGVmdDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogUG9zaXRpb25zIHRoZSBHYW1lIE9iamVjdCBzbyB0aGF0IHRoZSBsZWZ0IG9mIGl0cyBib3VuZHMgYWxpZ25zIHdpdGggdGhlIGdpdmVuIGNvb3JkaW5hdGUuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5Cb3VuZHMuU2V0UmlnaHRcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBnZW5lcmljIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gRyAtIFtnYW1lT2JqZWN0LCRyZXR1cm5dXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGdhbWVPYmplY3QgLSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3aWxsIGJlIHJlLXBvc2l0aW9uZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBjb29yZGluYXRlIHRvIHBvc2l0aW9uIHRoZSBHYW1lIE9iamVjdCBib3VuZHMgb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgcG9zaXRpb25lZC5cclxuICovXHJcbnZhciBTZXRSaWdodCA9IGZ1bmN0aW9uIChnYW1lT2JqZWN0LCB2YWx1ZSlcclxue1xyXG4gICAgZ2FtZU9iamVjdC54ID0gKHZhbHVlIC0gZ2FtZU9iamVjdC53aWR0aCkgKyAoZ2FtZU9iamVjdC53aWR0aCAqIGdhbWVPYmplY3Qub3JpZ2luWCk7XHJcblxyXG4gICAgcmV0dXJuIGdhbWVPYmplY3Q7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFNldFJpZ2h0O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBQb3NpdGlvbnMgdGhlIEdhbWUgT2JqZWN0IHNvIHRoYXQgdGhlIHRvcCBvZiBpdHMgYm91bmRzIGFsaWducyB3aXRoIHRoZSBnaXZlbiBjb29yZGluYXRlLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQm91bmRzLlNldFRvcFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGdlbmVyaWMge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBHIC0gW2dhbWVPYmplY3QsJHJldHVybl1cclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0aGF0IHdpbGwgYmUgcmUtcG9zaXRpb25lZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGNvb3JkaW5hdGUgdG8gcG9zaXRpb24gdGhlIEdhbWUgT2JqZWN0IGJvdW5kcyBvbi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBwb3NpdGlvbmVkLlxyXG4gKi9cclxudmFyIFNldFRvcCA9IGZ1bmN0aW9uIChnYW1lT2JqZWN0LCB2YWx1ZSlcclxue1xyXG4gICAgZ2FtZU9iamVjdC55ID0gdmFsdWUgKyAoZ2FtZU9iamVjdC5oZWlnaHQgKiBnYW1lT2JqZWN0Lm9yaWdpblkpO1xyXG5cclxuICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTZXRUb3A7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkRpc3BsYXkuQm91bmRzXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgQ2VudGVyT246IHJlcXVpcmUoJy4vQ2VudGVyT24nKSxcclxuICAgIEdldEJvdHRvbTogcmVxdWlyZSgnLi9HZXRCb3R0b20nKSxcclxuICAgIEdldENlbnRlclg6IHJlcXVpcmUoJy4vR2V0Q2VudGVyWCcpLFxyXG4gICAgR2V0Q2VudGVyWTogcmVxdWlyZSgnLi9HZXRDZW50ZXJZJyksXHJcbiAgICBHZXRMZWZ0OiByZXF1aXJlKCcuL0dldExlZnQnKSxcclxuICAgIEdldE9mZnNldFg6IHJlcXVpcmUoJy4vR2V0T2Zmc2V0WCcpLFxyXG4gICAgR2V0T2Zmc2V0WTogcmVxdWlyZSgnLi9HZXRPZmZzZXRZJyksXHJcbiAgICBHZXRSaWdodDogcmVxdWlyZSgnLi9HZXRSaWdodCcpLFxyXG4gICAgR2V0VG9wOiByZXF1aXJlKCcuL0dldFRvcCcpLFxyXG4gICAgU2V0Qm90dG9tOiByZXF1aXJlKCcuL1NldEJvdHRvbScpLFxyXG4gICAgU2V0Q2VudGVyWDogcmVxdWlyZSgnLi9TZXRDZW50ZXJYJyksXHJcbiAgICBTZXRDZW50ZXJZOiByZXF1aXJlKCcuL1NldENlbnRlclknKSxcclxuICAgIFNldExlZnQ6IHJlcXVpcmUoJy4vU2V0TGVmdCcpLFxyXG4gICAgU2V0UmlnaHQ6IHJlcXVpcmUoJy4vU2V0UmlnaHQnKSxcclxuICAgIFNldFRvcDogcmVxdWlyZSgnLi9TZXRUb3AnKVxyXG4gICAgXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkRpc3BsYXkuQ2FudmFzLkNhbnZhc0ludGVycG9sYXRpb25cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG52YXIgQ2FudmFzSW50ZXJwb2xhdGlvbiA9IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIENTUyBpbWFnZS1yZW5kZXJpbmcgcHJvcGVydHkgb24gdGhlIGdpdmVuIGNhbnZhcyB0byBiZSAnY3Jpc3AnIChha2EgJ29wdGltaXplIGNvbnRyYXN0JyBvbiB3ZWJraXQpLlxyXG4gICAgICpcclxuICAgICAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5DYW52YXMuQ2FudmFzSW50ZXJwb2xhdGlvbi5zZXRDcmlzcFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7SFRNTENhbnZhc0VsZW1lbnR9IGNhbnZhcyAtIFRoZSBjYW52YXMgb2JqZWN0IHRvIGhhdmUgdGhlIHN0eWxlIHNldCBvbi5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7SFRNTENhbnZhc0VsZW1lbnR9IFRoZSBjYW52YXMuXHJcbiAgICAgKi9cclxuICAgIHNldENyaXNwOiBmdW5jdGlvbiAoY2FudmFzKVxyXG4gICAge1xyXG4gICAgICAgIHZhciB0eXBlcyA9IFsgJ29wdGltaXplU3BlZWQnLCAnLW1vei1jcmlzcC1lZGdlcycsICctby1jcmlzcC1lZGdlcycsICctd2Via2l0LW9wdGltaXplLWNvbnRyYXN0JywgJ29wdGltaXplLWNvbnRyYXN0JywgJ2NyaXNwLWVkZ2VzJywgJ3BpeGVsYXRlZCcgXTtcclxuXHJcbiAgICAgICAgdHlwZXMuZm9yRWFjaChmdW5jdGlvbiAodHlwZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNhbnZhcy5zdHlsZVsnaW1hZ2UtcmVuZGVyaW5nJ10gPSB0eXBlO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjYW52YXMuc3R5bGUubXNJbnRlcnBvbGF0aW9uTW9kZSA9ICduZWFyZXN0LW5laWdoYm9yJztcclxuXHJcbiAgICAgICAgcmV0dXJuIGNhbnZhcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBDU1MgaW1hZ2UtcmVuZGVyaW5nIHByb3BlcnR5IG9uIHRoZSBnaXZlbiBjYW52YXMgdG8gYmUgJ2JpY3ViaWMnIChha2EgJ2F1dG8nKS5cclxuICAgICAqXHJcbiAgICAgKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQ2FudmFzLkNhbnZhc0ludGVycG9sYXRpb24uc2V0QmljdWJpY1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7SFRNTENhbnZhc0VsZW1lbnR9IGNhbnZhcyAtIFRoZSBjYW52YXMgb2JqZWN0IHRvIGhhdmUgdGhlIHN0eWxlIHNldCBvbi5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7SFRNTENhbnZhc0VsZW1lbnR9IFRoZSBjYW52YXMuXHJcbiAgICAgKi9cclxuICAgIHNldEJpY3ViaWM6IGZ1bmN0aW9uIChjYW52YXMpXHJcbiAgICB7XHJcbiAgICAgICAgY2FudmFzLnN0eWxlWydpbWFnZS1yZW5kZXJpbmcnXSA9ICdhdXRvJztcclxuICAgICAgICBjYW52YXMuc3R5bGUubXNJbnRlcnBvbGF0aW9uTW9kZSA9ICdiaWN1YmljJztcclxuXHJcbiAgICAgICAgcmV0dXJuIGNhbnZhcztcclxuICAgIH1cclxuXHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IENhbnZhc0ludGVycG9sYXRpb247XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENPTlNUID0gcmVxdWlyZSgnLi4vLi4vY29uc3QnKTtcclxudmFyIFNtb290aGluZyA9IHJlcXVpcmUoJy4vU21vb3RoaW5nJyk7XHJcblxyXG4vLyBUaGUgcG9vbCBpbnRvIHdoaWNoIHRoZSBjYW52YXMgZWxlbWVudHMgYXJlIHBsYWNlZC5cclxudmFyIHBvb2wgPSBbXTtcclxuXHJcbi8vICBBdXRvbWF0aWNhbGx5IGFwcGx5IHNtb290aGluZyhmYWxzZSkgdG8gY3JlYXRlZCBDYW52YXMgZWxlbWVudHNcclxudmFyIF9kaXNhYmxlQ29udGV4dFNtb290aGluZyA9IGZhbHNlO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBDYW52YXNQb29sIGlzIGEgZ2xvYmFsIHN0YXRpYyBvYmplY3QsIHRoYXQgYWxsb3dzIFBoYXNlciB0byByZWN5Y2xlIGFuZCBwb29sIDJEIENvbnRleHQgQ2FudmFzIERPTSBlbGVtZW50cy5cclxuICogSXQgZG9lcyBub3QgcG9vbCBXZWJHTCBDb250ZXh0cywgYmVjYXVzZSBvbmNlIHRoZSBjb250ZXh0IG9wdGlvbnMgYXJlIHNldCB0aGV5IGNhbm5vdCBiZSBtb2RpZmllZCBhZ2FpbiwgXHJcbiAqIHdoaWNoIGlzIHVzZWxlc3MgZm9yIHNvbWUgb2YgdGhlIFBoYXNlciBwaXBlbGluZXMgLyByZW5kZXJlci5cclxuICpcclxuICogVGhpcyBzaW5nbGV0b24gaXMgaW5zdGFudGlhdGVkIGFzIHNvb24gYXMgUGhhc2VyIGxvYWRzLCBiZWZvcmUgYSBQaGFzZXIuR2FtZSBpbnN0YW5jZSBoYXMgZXZlbiBiZWVuIGNyZWF0ZWQuXHJcbiAqIFdoaWNoIG1lYW5zIGFsbCBpbnN0YW5jZXMgb2YgUGhhc2VyIEdhbWVzIG9uIHRoZSBzYW1lIHBhZ2UgY2FuIHNoYXJlIHRoZSBvbmUgc2luZ2xlIHBvb2wuXHJcbiAqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkRpc3BsYXkuQ2FudmFzLkNhbnZhc1Bvb2xcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG52YXIgQ2FudmFzUG9vbCA9IGZ1bmN0aW9uICgpXHJcbntcclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBDYW52YXMgRE9NIGVsZW1lbnQsIG9yIHB1bGxzIG9uZSBmcm9tIHRoZSBwb29sIGlmIGZyZWUuXHJcbiAgICAgKlxyXG4gICAgICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNhbnZhcy5DYW52YXNQb29sLmNyZWF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsqfSBwYXJlbnQgLSBUaGUgcGFyZW50IG9mIHRoZSBDYW52YXMgb2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbd2lkdGg9MV0gLSBUaGUgd2lkdGggb2YgdGhlIENhbnZhcy5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2hlaWdodD0xXSAtIFRoZSBoZWlnaHQgb2YgdGhlIENhbnZhcy5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2NhbnZhc1R5cGU9UGhhc2VyLkNBTlZBU10gLSBUaGUgdHlwZSBvZiB0aGUgQ2FudmFzLiBFaXRoZXIgYFBoYXNlci5DQU5WQVNgIG9yIGBQaGFzZXIuV0VCR0xgLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbc2VsZlBhcmVudD1mYWxzZV0gLSBVc2UgdGhlIGdlbmVyYXRlZCBDYW52YXMgZWxlbWVudCBhcyB0aGUgcGFyZW50P1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge0hUTUxDYW52YXNFbGVtZW50fSBUaGUgY2FudmFzIGVsZW1lbnQgdGhhdCB3YXMgY3JlYXRlZCBvciBwdWxsZWQgZnJvbSB0aGUgcG9vbFxyXG4gICAgICovXHJcbiAgICB2YXIgY3JlYXRlID0gZnVuY3Rpb24gKHBhcmVudCwgd2lkdGgsIGhlaWdodCwgY2FudmFzVHlwZSwgc2VsZlBhcmVudClcclxuICAgIHtcclxuICAgICAgICBpZiAod2lkdGggPT09IHVuZGVmaW5lZCkgeyB3aWR0aCA9IDE7IH1cclxuICAgICAgICBpZiAoaGVpZ2h0ID09PSB1bmRlZmluZWQpIHsgaGVpZ2h0ID0gMTsgfVxyXG4gICAgICAgIGlmIChjYW52YXNUeXBlID09PSB1bmRlZmluZWQpIHsgY2FudmFzVHlwZSA9IENPTlNULkNBTlZBUzsgfVxyXG4gICAgICAgIGlmIChzZWxmUGFyZW50ID09PSB1bmRlZmluZWQpIHsgc2VsZlBhcmVudCA9IGZhbHNlOyB9XHJcblxyXG4gICAgICAgIHZhciBjYW52YXM7XHJcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IGZpcnN0KGNhbnZhc1R5cGUpO1xyXG5cclxuICAgICAgICBpZiAoY29udGFpbmVyID09PSBudWxsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29udGFpbmVyID0ge1xyXG4gICAgICAgICAgICAgICAgcGFyZW50OiBwYXJlbnQsXHJcbiAgICAgICAgICAgICAgICBjYW52YXM6IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogY2FudmFzVHlwZVxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaWYgKGNhbnZhc1R5cGUgPT09IENPTlNULkNBTlZBUylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcG9vbC5wdXNoKGNvbnRhaW5lcik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNhbnZhcyA9IGNvbnRhaW5lci5jYW52YXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnRhaW5lci5wYXJlbnQgPSBwYXJlbnQ7XHJcblxyXG4gICAgICAgICAgICBjYW52YXMgPSBjb250YWluZXIuY2FudmFzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHNlbGZQYXJlbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb250YWluZXIucGFyZW50ID0gY2FudmFzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2FudmFzLndpZHRoID0gd2lkdGg7XHJcbiAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodDtcclxuXHJcbiAgICAgICAgaWYgKF9kaXNhYmxlQ29udGV4dFNtb290aGluZyAmJiBjYW52YXNUeXBlID09PSBDT05TVC5DQU5WQVMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBTbW9vdGhpbmcuZGlzYWJsZShjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY2FudmFzO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYSBuZXcgQ2FudmFzIERPTSBlbGVtZW50LCBvciBwdWxscyBvbmUgZnJvbSB0aGUgcG9vbCBpZiBmcmVlLlxyXG4gICAgICpcclxuICAgICAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5DYW52YXMuQ2FudmFzUG9vbC5jcmVhdGUyRFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsqfSBwYXJlbnQgLSBUaGUgcGFyZW50IG9mIHRoZSBDYW52YXMgb2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbd2lkdGg9MV0gLSBUaGUgd2lkdGggb2YgdGhlIENhbnZhcy5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2hlaWdodD0xXSAtIFRoZSBoZWlnaHQgb2YgdGhlIENhbnZhcy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtIVE1MQ2FudmFzRWxlbWVudH0gVGhlIGNyZWF0ZWQgY2FudmFzLlxyXG4gICAgICovXHJcbiAgICB2YXIgY3JlYXRlMkQgPSBmdW5jdGlvbiAocGFyZW50LCB3aWR0aCwgaGVpZ2h0KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBjcmVhdGUocGFyZW50LCB3aWR0aCwgaGVpZ2h0LCBDT05TVC5DQU5WQVMpO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYSBuZXcgQ2FudmFzIERPTSBlbGVtZW50LCBvciBwdWxscyBvbmUgZnJvbSB0aGUgcG9vbCBpZiBmcmVlLlxyXG4gICAgICpcclxuICAgICAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5DYW52YXMuQ2FudmFzUG9vbC5jcmVhdGVXZWJHTFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsqfSBwYXJlbnQgLSBUaGUgcGFyZW50IG9mIHRoZSBDYW52YXMgb2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbd2lkdGg9MV0gLSBUaGUgd2lkdGggb2YgdGhlIENhbnZhcy5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2hlaWdodD0xXSAtIFRoZSBoZWlnaHQgb2YgdGhlIENhbnZhcy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtIVE1MQ2FudmFzRWxlbWVudH0gVGhlIGNyZWF0ZWQgV2ViR0wgY2FudmFzLlxyXG4gICAgICovXHJcbiAgICB2YXIgY3JlYXRlV2ViR0wgPSBmdW5jdGlvbiAocGFyZW50LCB3aWR0aCwgaGVpZ2h0KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBjcmVhdGUocGFyZW50LCB3aWR0aCwgaGVpZ2h0LCBDT05TVC5XRUJHTCk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgZmlyc3QgZnJlZSBjYW52YXMgaW5kZXggZnJvbSB0aGUgcG9vbC5cclxuICAgICAqXHJcbiAgICAgKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQ2FudmFzLkNhbnZhc1Bvb2wuZmlyc3RcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2NhbnZhc1R5cGU9UGhhc2VyLkNBTlZBU10gLSBUaGUgdHlwZSBvZiB0aGUgQ2FudmFzLiBFaXRoZXIgYFBoYXNlci5DQU5WQVNgIG9yIGBQaGFzZXIuV0VCR0xgLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge0hUTUxDYW52YXNFbGVtZW50fSBUaGUgZmlyc3QgZnJlZSBjYW52YXMsIG9yIGBudWxsYCBpZiBhIFdlYkdMIGNhbnZhcyB3YXMgcmVxdWVzdGVkIG9yIGlmIHRoZSBwb29sIGRvZXNuJ3QgaGF2ZSBmcmVlIGNhbnZhc2VzLlxyXG4gICAgICovXHJcbiAgICB2YXIgZmlyc3QgPSBmdW5jdGlvbiAoY2FudmFzVHlwZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoY2FudmFzVHlwZSA9PT0gdW5kZWZpbmVkKSB7IGNhbnZhc1R5cGUgPSBDT05TVC5DQU5WQVM7IH1cclxuXHJcbiAgICAgICAgaWYgKGNhbnZhc1R5cGUgPT09IENPTlNULldFQkdMKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBvb2wubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgY29udGFpbmVyID0gcG9vbFtpXTtcclxuXHJcbiAgICAgICAgICAgIGlmICghY29udGFpbmVyLnBhcmVudCAmJiBjb250YWluZXIudHlwZSA9PT0gY2FudmFzVHlwZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTG9va3MgdXAgYSBjYW52YXMgYmFzZWQgb24gaXRzIHBhcmVudCwgYW5kIGlmIGZvdW5kIHB1dHMgaXQgYmFjayBpbiB0aGUgcG9vbCwgZnJlZWluZyBpdCB1cCBmb3IgcmUtdXNlLlxyXG4gICAgICogVGhlIGNhbnZhcyBoYXMgaXRzIHdpZHRoIGFuZCBoZWlnaHQgc2V0IHRvIDEsIGFuZCBpdHMgcGFyZW50IGF0dHJpYnV0ZSBudWxsZWQuXHJcbiAgICAgKlxyXG4gICAgICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNhbnZhcy5DYW52YXNQb29sLnJlbW92ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsqfSBwYXJlbnQgLSBUaGUgY2FudmFzIG9yIHRoZSBwYXJlbnQgb2YgdGhlIGNhbnZhcyB0byBmcmVlLlxyXG4gICAgICovXHJcbiAgICB2YXIgcmVtb3ZlID0gZnVuY3Rpb24gKHBhcmVudClcclxuICAgIHtcclxuICAgICAgICAvLyAgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwYXJlbnQgaXMgYSBjYW52YXMgb2JqZWN0XHJcbiAgICAgICAgdmFyIGlzQ2FudmFzID0gcGFyZW50IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQ7XHJcblxyXG4gICAgICAgIHBvb2wuZm9yRWFjaChmdW5jdGlvbiAoY29udGFpbmVyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKChpc0NhbnZhcyAmJiBjb250YWluZXIuY2FudmFzID09PSBwYXJlbnQpIHx8ICghaXNDYW52YXMgJiYgY29udGFpbmVyLnBhcmVudCA9PT0gcGFyZW50KSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyLnBhcmVudCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBjb250YWluZXIuY2FudmFzLndpZHRoID0gMTtcclxuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5jYW52YXMuaGVpZ2h0ID0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHRvdGFsIG51bWJlciBvZiB1c2VkIGNhbnZhcyBlbGVtZW50cyBpbiB0aGUgcG9vbC5cclxuICAgICAqXHJcbiAgICAgKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQ2FudmFzLkNhbnZhc1Bvb2wudG90YWxcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2ludGVnZXJ9IFRoZSBudW1iZXIgb2YgdXNlZCBjYW52YXNlcy5cclxuICAgICAqL1xyXG4gICAgdmFyIHRvdGFsID0gZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgYyA9IDA7XHJcblxyXG4gICAgICAgIHBvb2wuZm9yRWFjaChmdW5jdGlvbiAoY29udGFpbmVyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5wYXJlbnQpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGMrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gYztcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgZnJlZSBjYW52YXMgZWxlbWVudHMgaW4gdGhlIHBvb2wuXHJcbiAgICAgKlxyXG4gICAgICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNhbnZhcy5DYW52YXNQb29sLmZyZWVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2ludGVnZXJ9IFRoZSBudW1iZXIgb2YgZnJlZSBjYW52YXNlcy5cclxuICAgICAqL1xyXG4gICAgdmFyIGZyZWUgPSBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBwb29sLmxlbmd0aCAtIHRvdGFsKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGlzYWJsZSBjb250ZXh0IHNtb290aGluZyBvbiBhbnkgbmV3IENhbnZhcyBlbGVtZW50IGNyZWF0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNhbnZhcy5DYW52YXNQb29sLmRpc2FibGVTbW9vdGhpbmdcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB2YXIgZGlzYWJsZVNtb290aGluZyA9IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgX2Rpc2FibGVDb250ZXh0U21vb3RoaW5nID0gdHJ1ZTtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbmFibGUgY29udGV4dCBzbW9vdGhpbmcgb24gYW55IG5ldyBDYW52YXMgZWxlbWVudCBjcmVhdGVkLlxyXG4gICAgICpcclxuICAgICAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5DYW52YXMuQ2FudmFzUG9vbC5lbmFibGVTbW9vdGhpbmdcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB2YXIgZW5hYmxlU21vb3RoaW5nID0gZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBfZGlzYWJsZUNvbnRleHRTbW9vdGhpbmcgPSBmYWxzZTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBjcmVhdGUyRDogY3JlYXRlMkQsXHJcbiAgICAgICAgY3JlYXRlOiBjcmVhdGUsXHJcbiAgICAgICAgY3JlYXRlV2ViR0w6IGNyZWF0ZVdlYkdMLFxyXG4gICAgICAgIGRpc2FibGVTbW9vdGhpbmc6IGRpc2FibGVTbW9vdGhpbmcsXHJcbiAgICAgICAgZW5hYmxlU21vb3RoaW5nOiBlbmFibGVTbW9vdGhpbmcsXHJcbiAgICAgICAgZmlyc3Q6IGZpcnN0LFxyXG4gICAgICAgIGZyZWU6IGZyZWUsXHJcbiAgICAgICAgcG9vbDogcG9vbCxcclxuICAgICAgICByZW1vdmU6IHJlbW92ZSxcclxuICAgICAgICB0b3RhbDogdG90YWxcclxuICAgIH07XHJcbn07XHJcblxyXG4vLyAgSWYgd2UgZXhwb3J0IHRoZSBjYWxsZWQgZnVuY3Rpb24gaGVyZSwgaXQnbGwgb25seSBiZSBpbnZva2VkIG9uY2UgKG5vdCBldmVyeSB0aW1lIGl0J3MgcmVxdWlyZWQpLlxyXG5tb2R1bGUuZXhwb3J0cyA9IENhbnZhc1Bvb2woKTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vLyAgQnJvd3NlciBzcGVjaWZpYyBwcmVmaXgsIHNvIG5vdCBnb2luZyB0byBjaGFuZ2UgYmV0d2VlbiBjb250ZXh0cywgb25seSBiZXR3ZWVuIGJyb3dzZXJzXHJcbnZhciBwcmVmaXggPSAnJztcclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5EaXNwbGF5LkNhbnZhcy5TbW9vdGhpbmdcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG52YXIgU21vb3RoaW5nID0gZnVuY3Rpb24gKClcclxue1xyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBTbW9vdGhpbmcgRW5hYmxlZCB2ZW5kb3IgcHJlZml4IGJlaW5nIHVzZWQgb24gdGhlIGdpdmVuIGNvbnRleHQsIG9yIG51bGwgaWYgbm90IHNldC5cclxuICAgICAqXHJcbiAgICAgKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQ2FudmFzLlNtb290aGluZy5nZXRQcmVmaXhcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRHxXZWJHTFJlbmRlcmluZ0NvbnRleHQpfSBjb250ZXh0IC0gVGhlIGNhbnZhcyBjb250ZXh0IHRvIGNoZWNrLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IG9uIHRoZSBjb250ZXh0IHdoaWNoIGNvbnRyb2xzIGltYWdlIHNtb290aGluZyAoZWl0aGVyIGBpbWFnZVNtb290aGluZ0VuYWJsZWRgIG9yIGEgdmVuZG9yLXByZWZpeGVkIHZlcnNpb24gdGhlcmVvZiksIG9yIGBudWxsYCBpZiBub3Qgc3VwcG9ydGVkLlxyXG4gICAgICovXHJcbiAgICB2YXIgZ2V0UHJlZml4ID0gZnVuY3Rpb24gKGNvbnRleHQpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHZlbmRvcnMgPSBbICdpJywgJ3dlYmtpdEknLCAnbXNJJywgJ21vekknLCAnb0knIF07XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmVuZG9ycy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBzID0gdmVuZG9yc1tpXSArICdtYWdlU21vb3RoaW5nRW5hYmxlZCc7XHJcblxyXG4gICAgICAgICAgICBpZiAocyBpbiBjb250ZXh0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgSW1hZ2UgU21vb3RoaW5nIHByb3BlcnR5IG9uIHRoZSBnaXZlbiBjb250ZXh0LiBTZXQgdG8gZmFsc2UgdG8gZGlzYWJsZSBpbWFnZSBzbW9vdGhpbmcuXHJcbiAgICAgKiBCeSBkZWZhdWx0IGJyb3dzZXJzIGhhdmUgaW1hZ2Ugc21vb3RoaW5nIGVuYWJsZWQsIHdoaWNoIGlzbid0IGFsd2F5cyB3aGF0IHlvdSB2aXN1YWxseSB3YW50LCBlc3BlY2lhbGx5XHJcbiAgICAgKiB3aGVuIHVzaW5nIHBpeGVsIGFydCBpbiBhIGdhbWUuIE5vdGUgdGhhdCB0aGlzIHNldHMgdGhlIHByb3BlcnR5IG9uIHRoZSBjb250ZXh0IGl0c2VsZiwgc28gdGhhdCBhbnkgaW1hZ2VcclxuICAgICAqIGRyYXduIHRvIHRoZSBjb250ZXh0IHdpbGwgYmUgYWZmZWN0ZWQuIFRoaXMgc2V0cyB0aGUgcHJvcGVydHkgYWNyb3NzIGFsbCBjdXJyZW50IGJyb3dzZXJzIGJ1dCBzdXBwb3J0IGlzXHJcbiAgICAgKiBwYXRjaHkgb24gZWFybGllciBicm93c2VycywgZXNwZWNpYWxseSBvbiBtb2JpbGUuXHJcbiAgICAgKlxyXG4gICAgICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNhbnZhcy5TbW9vdGhpbmcuZW5hYmxlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR8V2ViR0xSZW5kZXJpbmdDb250ZXh0KX0gY29udGV4dCAtIFRoZSBjb250ZXh0IG9uIHdoaWNoIHRvIGVuYWJsZSBzbW9vdGhpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7KENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRHxXZWJHTFJlbmRlcmluZ0NvbnRleHQpfSBUaGUgcHJvdmlkZWQgY29udGV4dC5cclxuICAgICAqL1xyXG4gICAgdmFyIGVuYWJsZSA9IGZ1bmN0aW9uIChjb250ZXh0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChwcmVmaXggPT09ICcnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJlZml4ID0gZ2V0UHJlZml4KGNvbnRleHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHByZWZpeClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnRleHRbcHJlZml4XSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY29udGV4dDtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBJbWFnZSBTbW9vdGhpbmcgcHJvcGVydHkgb24gdGhlIGdpdmVuIGNvbnRleHQuIFNldCB0byBmYWxzZSB0byBkaXNhYmxlIGltYWdlIHNtb290aGluZy5cclxuICAgICAqIEJ5IGRlZmF1bHQgYnJvd3NlcnMgaGF2ZSBpbWFnZSBzbW9vdGhpbmcgZW5hYmxlZCwgd2hpY2ggaXNuJ3QgYWx3YXlzIHdoYXQgeW91IHZpc3VhbGx5IHdhbnQsIGVzcGVjaWFsbHlcclxuICAgICAqIHdoZW4gdXNpbmcgcGl4ZWwgYXJ0IGluIGEgZ2FtZS4gTm90ZSB0aGF0IHRoaXMgc2V0cyB0aGUgcHJvcGVydHkgb24gdGhlIGNvbnRleHQgaXRzZWxmLCBzbyB0aGF0IGFueSBpbWFnZVxyXG4gICAgICogZHJhd24gdG8gdGhlIGNvbnRleHQgd2lsbCBiZSBhZmZlY3RlZC4gVGhpcyBzZXRzIHRoZSBwcm9wZXJ0eSBhY3Jvc3MgYWxsIGN1cnJlbnQgYnJvd3NlcnMgYnV0IHN1cHBvcnQgaXNcclxuICAgICAqIHBhdGNoeSBvbiBlYXJsaWVyIGJyb3dzZXJzLCBlc3BlY2lhbGx5IG9uIG1vYmlsZS5cclxuICAgICAqXHJcbiAgICAgKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQ2FudmFzLlNtb290aGluZy5kaXNhYmxlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR8V2ViR0xSZW5kZXJpbmdDb250ZXh0KX0gY29udGV4dCAtIFRoZSBjb250ZXh0IG9uIHdoaWNoIHRvIGRpc2FibGUgc21vb3RoaW5nLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4geyhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR8V2ViR0xSZW5kZXJpbmdDb250ZXh0KX0gVGhlIHByb3ZpZGVkIGNvbnRleHQuXHJcbiAgICAgKi9cclxuICAgIHZhciBkaXNhYmxlID0gZnVuY3Rpb24gKGNvbnRleHQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHByZWZpeCA9PT0gJycpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcmVmaXggPSBnZXRQcmVmaXgoY29udGV4dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocHJlZml4KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29udGV4dFtwcmVmaXhdID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY29udGV4dDtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZ2l2ZW4gY29udGV4dCBoYXMgaW1hZ2Ugc21vb3RoaW5nIGVuYWJsZWQsIG90aGVyd2lzZSByZXR1cm5zIGBmYWxzZWAuXHJcbiAgICAgKiBSZXR1cm5zIG51bGwgaWYgbm8gc21vb3RoaW5nIHByZWZpeCBpcyBhdmFpbGFibGUuXHJcbiAgICAgKlxyXG4gICAgICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNhbnZhcy5TbW9vdGhpbmcuaXNFbmFibGVkXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR8V2ViR0xSZW5kZXJpbmdDb250ZXh0KX0gY29udGV4dCAtIFRoZSBjb250ZXh0IHRvIGNoZWNrLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4gez9ib29sZWFufSBgdHJ1ZWAgaWYgc21vb3RoaW5nIGlzIGVuYWJsZWQgb24gdGhlIGNvbnRleHQsIG90aGVyd2lzZSBgZmFsc2VgLiBgbnVsbGAgaWYgbm90IHN1cHBvcnRlZC5cclxuICAgICAqL1xyXG4gICAgdmFyIGlzRW5hYmxlZCA9IGZ1bmN0aW9uIChjb250ZXh0KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiAocHJlZml4ICE9PSBudWxsKSA/IGNvbnRleHRbcHJlZml4XSA6IG51bGw7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgZGlzYWJsZTogZGlzYWJsZSxcclxuICAgICAgICBlbmFibGU6IGVuYWJsZSxcclxuICAgICAgICBnZXRQcmVmaXg6IGdldFByZWZpeCxcclxuICAgICAgICBpc0VuYWJsZWQ6IGlzRW5hYmxlZFxyXG4gICAgfTtcclxuXHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFNtb290aGluZygpO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBTZXRzIHRoZSB0b3VjaC1hY3Rpb24gcHJvcGVydHkgb24gdGhlIGNhbnZhcyBzdHlsZS4gQ2FuIGJlIHVzZWQgdG8gZGlzYWJsZSBkZWZhdWx0IGJyb3dzZXIgdG91Y2ggYWN0aW9ucy5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNhbnZhcy5Ub3VjaEFjdGlvblxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtIVE1MQ2FudmFzRWxlbWVudH0gY2FudmFzIC0gVGhlIGNhbnZhcyBlbGVtZW50IHRvIGhhdmUgdGhlIHN0eWxlIGFwcGxpZWQgdG8uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBbdmFsdWU9J25vbmUnXSAtIFRoZSB0b3VjaCBhY3Rpb24gdmFsdWUgdG8gc2V0IG9uIHRoZSBjYW52YXMuIFNldCB0byBgbm9uZWAgdG8gZGlzYWJsZSB0b3VjaCBhY3Rpb25zLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtIVE1MQ2FudmFzRWxlbWVudH0gVGhlIGNhbnZhcyBlbGVtZW50LlxyXG4gKi9cclxudmFyIFRvdWNoQWN0aW9uID0gZnVuY3Rpb24gKGNhbnZhcywgdmFsdWUpXHJcbntcclxuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7IHZhbHVlID0gJ25vbmUnOyB9XHJcblxyXG4gICAgY2FudmFzLnN0eWxlWydtc1RvdWNoQWN0aW9uJ10gPSB2YWx1ZTtcclxuICAgIGNhbnZhcy5zdHlsZVsnbXMtdG91Y2gtYWN0aW9uJ10gPSB2YWx1ZTtcclxuICAgIGNhbnZhcy5zdHlsZVsndG91Y2gtYWN0aW9uJ10gPSB2YWx1ZTtcclxuXHJcbiAgICByZXR1cm4gY2FudmFzO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBUb3VjaEFjdGlvbjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogU2V0cyB0aGUgdXNlci1zZWxlY3QgcHJvcGVydHkgb24gdGhlIGNhbnZhcyBzdHlsZS4gQ2FuIGJlIHVzZWQgdG8gZGlzYWJsZSBkZWZhdWx0IGJyb3dzZXIgc2VsZWN0aW9uIGFjdGlvbnMuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5DYW52YXMuVXNlclNlbGVjdFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtIVE1MQ2FudmFzRWxlbWVudH0gY2FudmFzIC0gVGhlIGNhbnZhcyBlbGVtZW50IHRvIGhhdmUgdGhlIHN0eWxlIGFwcGxpZWQgdG8uXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBbdmFsdWU9J25vbmUnXSAtIFRoZSB0b3VjaCBjYWxsb3V0IHZhbHVlIHRvIHNldCBvbiB0aGUgY2FudmFzLiBTZXQgdG8gYG5vbmVgIHRvIGRpc2FibGUgdG91Y2ggY2FsbG91dHMuXHJcbiAqXHJcbiAqIEByZXR1cm4ge0hUTUxDYW52YXNFbGVtZW50fSBUaGUgY2FudmFzIGVsZW1lbnQuXHJcbiAqL1xyXG52YXIgVXNlclNlbGVjdCA9IGZ1bmN0aW9uIChjYW52YXMsIHZhbHVlKVxyXG57XHJcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgeyB2YWx1ZSA9ICdub25lJzsgfVxyXG5cclxuICAgIHZhciB2ZW5kb3JzID0gW1xyXG4gICAgICAgICctd2Via2l0LScsXHJcbiAgICAgICAgJy1raHRtbC0nLFxyXG4gICAgICAgICctbW96LScsXHJcbiAgICAgICAgJy1tcy0nLFxyXG4gICAgICAgICcnXHJcbiAgICBdO1xyXG5cclxuICAgIHZlbmRvcnMuZm9yRWFjaChmdW5jdGlvbiAodmVuZG9yKVxyXG4gICAge1xyXG4gICAgICAgIGNhbnZhcy5zdHlsZVt2ZW5kb3IgKyAndXNlci1zZWxlY3QnXSA9IHZhbHVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY2FudmFzLnN0eWxlWyctd2Via2l0LXRvdWNoLWNhbGxvdXQnXSA9IHZhbHVlO1xyXG4gICAgY2FudmFzLnN0eWxlWyctd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3InXSA9ICdyZ2JhKDAsIDAsIDAsIDApJztcclxuXHJcbiAgICByZXR1cm4gY2FudmFzO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBVc2VyU2VsZWN0O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5EaXNwbGF5LkNhbnZhc1xyXG4gKi9cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIENhbnZhc0ludGVycG9sYXRpb246IHJlcXVpcmUoJy4vQ2FudmFzSW50ZXJwb2xhdGlvbicpLFxyXG4gICAgQ2FudmFzUG9vbDogcmVxdWlyZSgnLi9DYW52YXNQb29sJyksXHJcbiAgICBTbW9vdGhpbmc6IHJlcXVpcmUoJy4vU21vb3RoaW5nJyksXHJcbiAgICBUb3VjaEFjdGlvbjogcmVxdWlyZSgnLi9Ub3VjaEFjdGlvbicpLFxyXG4gICAgVXNlclNlbGVjdDogcmVxdWlyZSgnLi9Vc2VyU2VsZWN0JylcclxuICAgIFxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBHZXRDb2xvciA9IHJlcXVpcmUoJy4vR2V0Q29sb3InKTtcclxudmFyIEdldENvbG9yMzIgPSByZXF1aXJlKCcuL0dldENvbG9yMzInKTtcclxudmFyIEhTVlRvUkdCID0gcmVxdWlyZSgnLi9IU1ZUb1JHQicpO1xyXG52YXIgUkdCVG9IU1YgPSByZXF1aXJlKCcuL1JHQlRvSFNWJyk7XHJcblxyXG4vKipcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuRGlzcGxheS5Db2xvclxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIFRoZSBDb2xvciBjbGFzcyBob2xkcyBhIHNpbmdsZSBjb2xvciB2YWx1ZSBhbmQgYWxsb3dzIGZvciBlYXN5IG1vZGlmaWNhdGlvbiBhbmQgcmVhZGluZyBvZiBpdC5cclxuICpcclxuICogQGNsYXNzIENvbG9yXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuRGlzcGxheVxyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW3JlZD0wXSAtIFRoZSByZWQgY29sb3IgdmFsdWUuIEEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtncmVlbj0wXSAtIFRoZSBncmVlbiBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2JsdWU9MF0gLSBUaGUgYmx1ZSBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2FscGhhPTI1NV0gLSBUaGUgYWxwaGEgdmFsdWUuIEEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gKi9cclxudmFyIENvbG9yID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIENvbG9yIChyZWQsIGdyZWVuLCBibHVlLCBhbHBoYSlcclxuICAgIHtcclxuICAgICAgICBpZiAocmVkID09PSB1bmRlZmluZWQpIHsgcmVkID0gMDsgfVxyXG4gICAgICAgIGlmIChncmVlbiA9PT0gdW5kZWZpbmVkKSB7IGdyZWVuID0gMDsgfVxyXG4gICAgICAgIGlmIChibHVlID09PSB1bmRlZmluZWQpIHsgYmx1ZSA9IDA7IH1cclxuICAgICAgICBpZiAoYWxwaGEgPT09IHVuZGVmaW5lZCkgeyBhbHBoYSA9IDI1NTsgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaW50ZXJuYWwgcmVkIGNvbG9yIHZhbHVlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQ29sb3IjclxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGludGVybmFsIGdyZWVuIGNvbG9yIHZhbHVlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQ29sb3IjZ1xyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5nID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGludGVybmFsIGJsdWUgY29sb3IgdmFsdWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNiXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmIgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaW50ZXJuYWwgYWxwaGEgY29sb3IgdmFsdWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNhXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDI1NVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYSA9IDI1NTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGh1ZSBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICAgICAqIFRoaXMgaXMgdGhlIGJhc2UgY29sb3IuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNfaFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2ggPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgc2F0dXJhdGlvbiBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICAgICAqIFRoaXMgY29udHJvbHMgaG93IG11Y2ggb2YgdGhlIGh1ZSB3aWxsIGJlIGluIHRoZSBmaW5hbCBjb2xvciwgd2hlcmUgMSBpcyBmdWxseSBzYXR1cmF0ZWQgYW5kIDAgd2lsbCBnaXZlIHlvdSB3aGl0ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5LkNvbG9yI19zXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fcyA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBsaWdodG5lc3MgY29sb3IgdmFsdWUuIEEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMS5cclxuICAgICAgICAgKiBUaGlzIGNvbnRyb2xzIGhvdyBkYXJrIHRoZSBjb2xvciBpcy4gV2hlcmUgMSBpcyBhcyBicmlnaHQgYXMgcG9zc2libGUgYW5kIDAgaXMgYmxhY2suXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNfdlxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3YgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJcyB0aGlzIGNvbG9yIHVwZGF0ZSBsb2NrZWQ/XHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNfbG9ja2VkXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fbG9ja2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGNhbGN1bGF0ZWQgY29sb3IgdmFsdWVzIGZvciBXZWJHTCB1c2UuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNnbFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJbXX1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmdsID0gWyAwLCAwLCAwLCAxIF07XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFByZS1jYWxjdWxhdGVkIGludGVybmFsIGNvbG9yIHZhbHVlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQ29sb3IjX2NvbG9yXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9jb2xvciA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFByZS1jYWxjdWxhdGVkIGludGVybmFsIGNvbG9yMzIgdmFsdWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNfY29sb3IzMlxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fY29sb3IzMiA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFByZS1jYWxjdWxhdGVkIGludGVybmFsIGNvbG9yIHJnYiBzdHJpbmcgdmFsdWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNfcmdiYVxyXG4gICAgICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAnJ1xyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3JnYmEgPSAnJztcclxuXHJcbiAgICAgICAgdGhpcy5zZXRUbyhyZWQsIGdyZWVuLCBibHVlLCBhbHBoYSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGlzIGNvbG9yIHRvIGJlIHRyYW5zcGFyZW50LiBTZXRzIGFsbCB2YWx1ZXMgdG8gemVyby5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EaXNwbGF5LkNvbG9yI3RyYW5zcGFyZW50XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuRGlzcGxheS5Db2xvcn0gVGhpcyBDb2xvciBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHRyYW5zcGFyZW50OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2xvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMucmVkID0gMDtcclxuICAgICAgICB0aGlzLmdyZWVuID0gMDtcclxuICAgICAgICB0aGlzLmJsdWUgPSAwO1xyXG4gICAgICAgIHRoaXMuYWxwaGEgPSAwO1xyXG5cclxuICAgICAgICB0aGlzLl9sb2NrZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKHRydWUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGNvbG9yIG9mIHRoaXMgQ29sb3IgY29tcG9uZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRpc3BsYXkuQ29sb3Ijc2V0VG9cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gcmVkIC0gVGhlIHJlZCBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IGdyZWVuIC0gVGhlIGdyZWVuIGNvbG9yIHZhbHVlLiBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gYmx1ZSAtIFRoZSBibHVlIGNvbG9yIHZhbHVlLiBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2FscGhhPTI1NV0gLSBUaGUgYWxwaGEgdmFsdWUuIEEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbdXBkYXRlSFNWPXRydWVdIC0gVXBkYXRlIHRoZSBIU1YgdmFsdWVzIGFmdGVyIHNldHRpbmcgdGhlIFJHQiB2YWx1ZXM/XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkRpc3BsYXkuQ29sb3J9IFRoaXMgQ29sb3Igb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRUbzogZnVuY3Rpb24gKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhLCB1cGRhdGVIU1YpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGFscGhhID09PSB1bmRlZmluZWQpIHsgYWxwaGEgPSAyNTU7IH1cclxuICAgICAgICBpZiAodXBkYXRlSFNWID09PSB1bmRlZmluZWQpIHsgdXBkYXRlSFNWID0gdHJ1ZTsgfVxyXG5cclxuICAgICAgICB0aGlzLl9sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLnJlZCA9IHJlZDtcclxuICAgICAgICB0aGlzLmdyZWVuID0gZ3JlZW47XHJcbiAgICAgICAgdGhpcy5ibHVlID0gYmx1ZTtcclxuICAgICAgICB0aGlzLmFscGhhID0gYWxwaGE7XHJcblxyXG4gICAgICAgIHRoaXMuX2xvY2tlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUodXBkYXRlSFNWKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSByZWQsIGdyZWVuLCBibHVlIGFuZCBhbHBoYSBHTCB2YWx1ZXMgb2YgdGhpcyBDb2xvciBjb21wb25lbnQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGlzcGxheS5Db2xvciNzZXRHTFRvXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmVkIC0gVGhlIHJlZCBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGdyZWVuIC0gVGhlIGdyZWVuIGNvbG9yIHZhbHVlLiBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYmx1ZSAtIFRoZSBibHVlIGNvbG9yIHZhbHVlLiBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FscGhhPTFdIC0gVGhlIGFscGhhIHZhbHVlLiBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkRpc3BsYXkuQ29sb3J9IFRoaXMgQ29sb3Igb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRHTFRvOiBmdW5jdGlvbiAocmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGFscGhhID09PSB1bmRlZmluZWQpIHsgYWxwaGEgPSAxOyB9XHJcblxyXG4gICAgICAgIHRoaXMuX2xvY2tlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMucmVkR0wgPSByZWQ7XHJcbiAgICAgICAgdGhpcy5ncmVlbkdMID0gZ3JlZW47XHJcbiAgICAgICAgdGhpcy5ibHVlR0wgPSBibHVlO1xyXG4gICAgICAgIHRoaXMuYWxwaGFHTCA9IGFscGhhO1xyXG5cclxuICAgICAgICB0aGlzLl9sb2NrZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlKHRydWUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGNvbG9yIGJhc2VkIG9uIHRoZSBjb2xvciBvYmplY3QgZ2l2ZW4uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGlzcGxheS5Db2xvciNzZXRGcm9tUkdCXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5EaXNwbGF5LklucHV0Q29sb3JPYmplY3R9IGNvbG9yIC0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgYHJgLCBgZ2AsIGBiYCBhbmQgb3B0aW9uYWxseSBgYWAgdmFsdWVzIGluIHRoZSByYW5nZSAwIHRvIDI1NS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuRGlzcGxheS5Db2xvcn0gVGhpcyBDb2xvciBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldEZyb21SR0I6IGZ1bmN0aW9uIChjb2xvcilcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9sb2NrZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLnJlZCA9IGNvbG9yLnI7XHJcbiAgICAgICAgdGhpcy5ncmVlbiA9IGNvbG9yLmc7XHJcbiAgICAgICAgdGhpcy5ibHVlID0gY29sb3IuYjtcclxuXHJcbiAgICAgICAgaWYgKGNvbG9yLmhhc093blByb3BlcnR5KCdhJykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmFscGhhID0gY29sb3IuYTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2xvY2tlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUodHJ1ZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgY29sb3IgYmFzZWQgb24gdGhlIGh1ZSwgc2F0dXJhdGlvbiBhbmQgbGlnaHRuZXNzIHZhbHVlcyBnaXZlbi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EaXNwbGF5LkNvbG9yI3NldEZyb21IU1ZcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaCAtIFRoZSBodWUsIGluIHRoZSByYW5nZSAwIC0gMS4gVGhpcyBpcyB0aGUgYmFzZSBjb2xvci5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzIC0gVGhlIHNhdHVyYXRpb24sIGluIHRoZSByYW5nZSAwIC0gMS4gVGhpcyBjb250cm9scyBob3cgbXVjaCBvZiB0aGUgaHVlIHdpbGwgYmUgaW4gdGhlIGZpbmFsIGNvbG9yLCB3aGVyZSAxIGlzIGZ1bGx5IHNhdHVyYXRlZCBhbmQgMCB3aWxsIGdpdmUgeW91IHdoaXRlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHYgLSBUaGUgdmFsdWUsIGluIHRoZSByYW5nZSAwIC0gMS4gVGhpcyBjb250cm9scyBob3cgZGFyayB0aGUgY29sb3IgaXMuIFdoZXJlIDEgaXMgYXMgYnJpZ2h0IGFzIHBvc3NpYmxlIGFuZCAwIGlzIGJsYWNrLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5EaXNwbGF5LkNvbG9yfSBUaGlzIENvbG9yIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0RnJvbUhTVjogZnVuY3Rpb24gKGgsIHMsIHYpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIEhTVlRvUkdCKGgsIHMsIHYsIHRoaXMpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIGludGVybmFsIGNhY2hlIHZhbHVlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EaXNwbGF5LkNvbG9yI3VwZGF0ZVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5EaXNwbGF5LkNvbG9yfSBUaGlzIENvbG9yIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlOiBmdW5jdGlvbiAodXBkYXRlSFNWKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh1cGRhdGVIU1YgPT09IHVuZGVmaW5lZCkgeyB1cGRhdGVIU1YgPSBmYWxzZTsgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fbG9ja2VkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgciA9IHRoaXMucjtcclxuICAgICAgICB2YXIgZyA9IHRoaXMuZztcclxuICAgICAgICB2YXIgYiA9IHRoaXMuYjtcclxuICAgICAgICB2YXIgYSA9IHRoaXMuYTtcclxuXHJcbiAgICAgICAgdGhpcy5fY29sb3IgPSBHZXRDb2xvcihyLCBnLCBiKTtcclxuICAgICAgICB0aGlzLl9jb2xvcjMyID0gR2V0Q29sb3IzMihyLCBnLCBiLCBhKTtcclxuICAgICAgICB0aGlzLl9yZ2JhID0gJ3JnYmEoJyArIHIgKyAnLCcgKyBnICsgJywnICsgYiArICcsJyArIChhIC8gMjU1KSArICcpJztcclxuXHJcbiAgICAgICAgaWYgKHVwZGF0ZUhTVilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIFJHQlRvSFNWKHIsIGcsIGIsIHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgaW50ZXJuYWwgaHN2IGNhY2hlIHZhbHVlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EaXNwbGF5LkNvbG9yI3VwZGF0ZUhTVlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuRGlzcGxheS5Db2xvcn0gVGhpcyBDb2xvciBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZUhTVjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgciA9IHRoaXMucjtcclxuICAgICAgICB2YXIgZyA9IHRoaXMuZztcclxuICAgICAgICB2YXIgYiA9IHRoaXMuYjtcclxuXHJcbiAgICAgICAgUkdCVG9IU1YociwgZywgYiwgdGhpcyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYSBuZXcgQ29sb3IgY29tcG9uZW50IHVzaW5nIHRoZSB2YWx1ZXMgZnJvbSB0aGlzIG9uZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EaXNwbGF5LkNvbG9yI2Nsb25lXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuRGlzcGxheS5Db2xvcn0gQSBuZXcgQ29sb3Igb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBjbG9uZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gbmV3IENvbG9yKHRoaXMuciwgdGhpcy5nLCB0aGlzLmIsIHRoaXMuYSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGlzIENvbG9yIG9iamVjdCB0byBiZSBncmF5c2NhbGVkIGJhc2VkIG9uIHRoZSBzaGFkZSB2YWx1ZSBnaXZlbi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EaXNwbGF5LkNvbG9yI2dyYXlcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBzaGFkZSAtIEEgdmFsdWUgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkRpc3BsYXkuQ29sb3J9IFRoaXMgQ29sb3Igb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBncmF5OiBmdW5jdGlvbiAoc2hhZGUpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0VG8oc2hhZGUsIHNoYWRlLCBzaGFkZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGlzIENvbG9yIG9iamVjdCB0byBiZSBhIHJhbmRvbSBjb2xvciBiZXR3ZWVuIHRoZSBgbWluYCBhbmQgYG1heGAgdmFsdWVzIGdpdmVuLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRpc3BsYXkuQ29sb3IjcmFuZG9tXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW21pbj0wXSAtIFRoZSBtaW5pbXVtIHJhbmRvbSBjb2xvciB2YWx1ZS4gQmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFttYXg9MjU1XSAtIFRoZSBtYXhpbXVtIHJhbmRvbSBjb2xvciB2YWx1ZS4gQmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkRpc3BsYXkuQ29sb3J9IFRoaXMgQ29sb3Igb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICByYW5kb206IGZ1bmN0aW9uIChtaW4sIG1heClcclxuICAgIHtcclxuICAgICAgICBpZiAobWluID09PSB1bmRlZmluZWQpIHsgbWluID0gMDsgfVxyXG4gICAgICAgIGlmIChtYXggPT09IHVuZGVmaW5lZCkgeyBtYXggPSAyNTU7IH1cclxuXHJcbiAgICAgICAgdmFyIHIgPSBNYXRoLmZsb29yKG1pbiArIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSk7XHJcbiAgICAgICAgdmFyIGcgPSBNYXRoLmZsb29yKG1pbiArIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSk7XHJcbiAgICAgICAgdmFyIGIgPSBNYXRoLmZsb29yKG1pbiArIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnNldFRvKHIsIGcsIGIpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhpcyBDb2xvciBvYmplY3QgdG8gYmUgYSByYW5kb20gZ3JheXNjYWxlIGNvbG9yIGJldHdlZW4gdGhlIGBtaW5gIGFuZCBgbWF4YCB2YWx1ZXMgZ2l2ZW4uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGlzcGxheS5Db2xvciNyYW5kb21HcmF5XHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW21pbj0wXSAtIFRoZSBtaW5pbXVtIHJhbmRvbSBjb2xvciB2YWx1ZS4gQmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFttYXg9MjU1XSAtIFRoZSBtYXhpbXVtIHJhbmRvbSBjb2xvciB2YWx1ZS4gQmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkRpc3BsYXkuQ29sb3J9IFRoaXMgQ29sb3Igb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICByYW5kb21HcmF5OiBmdW5jdGlvbiAobWluLCBtYXgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG1pbiA9PT0gdW5kZWZpbmVkKSB7IG1pbiA9IDA7IH1cclxuICAgICAgICBpZiAobWF4ID09PSB1bmRlZmluZWQpIHsgbWF4ID0gMjU1OyB9XHJcblxyXG4gICAgICAgIHZhciBzID0gTWF0aC5mbG9vcihtaW4gKyBNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbikpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zZXRUbyhzLCBzLCBzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmNyZWFzZSB0aGUgc2F0dXJhdGlvbiBvZiB0aGlzIENvbG9yIGJ5IHRoZSBwZXJjZW50YWdlIGFtb3VudCBnaXZlbi5cclxuICAgICAqIFRoZSBzYXR1cmF0aW9uIGlzIHRoZSBhbW91bnQgb2YgdGhlIGJhc2UgY29sb3IgaW4gdGhlIGh1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EaXNwbGF5LkNvbG9yI3NhdHVyYXRlXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gYW1vdW50IC0gVGhlIHBlcmNlbnRhZ2UgYW1vdW50IHRvIGNoYW5nZSB0aGlzIGNvbG9yIGJ5LiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMTAwLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5EaXNwbGF5LkNvbG9yfSBUaGlzIENvbG9yIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2F0dXJhdGU6IGZ1bmN0aW9uIChhbW91bnQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zICs9IGFtb3VudCAvIDEwMDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVjcmVhc2UgdGhlIHNhdHVyYXRpb24gb2YgdGhpcyBDb2xvciBieSB0aGUgcGVyY2VudGFnZSBhbW91bnQgZ2l2ZW4uXHJcbiAgICAgKiBUaGUgc2F0dXJhdGlvbiBpcyB0aGUgYW1vdW50IG9mIHRoZSBiYXNlIGNvbG9yIGluIHRoZSBodWUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGlzcGxheS5Db2xvciNkZXNhdHVyYXRlXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gYW1vdW50IC0gVGhlIHBlcmNlbnRhZ2UgYW1vdW50IHRvIGNoYW5nZSB0aGlzIGNvbG9yIGJ5LiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMTAwLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5EaXNwbGF5LkNvbG9yfSBUaGlzIENvbG9yIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgZGVzYXR1cmF0ZTogZnVuY3Rpb24gKGFtb3VudClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnMgLT0gYW1vdW50IC8gMTAwO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmNyZWFzZSB0aGUgbGlnaHRuZXNzIG9mIHRoaXMgQ29sb3IgYnkgdGhlIHBlcmNlbnRhZ2UgYW1vdW50IGdpdmVuLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRpc3BsYXkuQ29sb3IjbGlnaHRlblxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IGFtb3VudCAtIFRoZSBwZXJjZW50YWdlIGFtb3VudCB0byBjaGFuZ2UgdGhpcyBjb2xvciBieS4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEwMC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuRGlzcGxheS5Db2xvcn0gVGhpcyBDb2xvciBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGxpZ2h0ZW46IGZ1bmN0aW9uIChhbW91bnQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy52ICs9IGFtb3VudCAvIDEwMDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVjcmVhc2UgdGhlIGxpZ2h0bmVzcyBvZiB0aGlzIENvbG9yIGJ5IHRoZSBwZXJjZW50YWdlIGFtb3VudCBnaXZlbi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EaXNwbGF5LkNvbG9yI2RhcmtlblxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IGFtb3VudCAtIFRoZSBwZXJjZW50YWdlIGFtb3VudCB0byBjaGFuZ2UgdGhpcyBjb2xvciBieS4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEwMC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuRGlzcGxheS5Db2xvcn0gVGhpcyBDb2xvciBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGRhcmtlbjogZnVuY3Rpb24gKGFtb3VudClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnYgLT0gYW1vdW50IC8gMTAwO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCcmlnaHRlbiB0aGlzIENvbG9yIGJ5IHRoZSBwZXJjZW50YWdlIGFtb3VudCBnaXZlbi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EaXNwbGF5LkNvbG9yI2JyaWdodGVuXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gYW1vdW50IC0gVGhlIHBlcmNlbnRhZ2UgYW1vdW50IHRvIGNoYW5nZSB0aGlzIGNvbG9yIGJ5LiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMTAwLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5EaXNwbGF5LkNvbG9yfSBUaGlzIENvbG9yIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgYnJpZ2h0ZW46IGZ1bmN0aW9uIChhbW91bnQpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHIgPSB0aGlzLnI7XHJcbiAgICAgICAgdmFyIGcgPSB0aGlzLmc7XHJcbiAgICAgICAgdmFyIGIgPSB0aGlzLmI7XHJcblxyXG4gICAgICAgIHIgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigyNTUsIHIgLSBNYXRoLnJvdW5kKDI1NSAqIC0gKGFtb3VudCAvIDEwMCkpKSk7XHJcbiAgICAgICAgZyA9IE1hdGgubWF4KDAsIE1hdGgubWluKDI1NSwgZyAtIE1hdGgucm91bmQoMjU1ICogLSAoYW1vdW50IC8gMTAwKSkpKTtcclxuICAgICAgICBiID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMjU1LCBiIC0gTWF0aC5yb3VuZCgyNTUgKiAtIChhbW91bnQgLyAxMDApKSkpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zZXRUbyhyLCBnLCBiKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY29sb3Igb2YgdGhpcyBDb2xvciBjb21wb25lbnQsIG5vdCBpbmNsdWRpbmcgdGhlIGFscGhhIGNoYW5uZWwuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQ29sb3IjY29sb3JcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBjb2xvcjoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29sb3I7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY29sb3Igb2YgdGhpcyBDb2xvciBjb21wb25lbnQsIGluY2x1ZGluZyB0aGUgYWxwaGEgY2hhbm5lbC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNjb2xvcjMyXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHJlYWRvbmx5XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgY29sb3IzMjoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29sb3IzMjtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBjb2xvciBvZiB0aGlzIENvbG9yIGNvbXBvbmVudCBhcyBhIHN0cmluZyB3aGljaCBjYW4gYmUgdXNlZCBpbiBDU1MgY29sb3IgdmFsdWVzLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5LkNvbG9yI3JnYmFcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICByZ2JhOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yZ2JhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHJlZCBjb2xvciB2YWx1ZSwgbm9ybWFsaXplZCB0byB0aGUgcmFuZ2UgMCB0byAxLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5LkNvbG9yI3JlZEdMXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHJlZEdMOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdsWzBdO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5nbFswXSA9IE1hdGgubWluKE1hdGguYWJzKHZhbHVlKSwgMSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnIgPSBNYXRoLmZsb29yKHRoaXMuZ2xbMF0gKiAyNTUpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy51cGRhdGUodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZ3JlZW4gY29sb3IgdmFsdWUsIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIDAgdG8gMS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNncmVlbkdMXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGdyZWVuR0w6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2xbMV07XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmdsWzFdID0gTWF0aC5taW4oTWF0aC5hYnModmFsdWUpLCAxKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZyA9IE1hdGguZmxvb3IodGhpcy5nbFsxXSAqIDI1NSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSh0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBibHVlIGNvbG9yIHZhbHVlLCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSAwIHRvIDEuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQ29sb3IjYmx1ZUdMXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGJsdWVHTDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nbFsyXTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2xbMl0gPSBNYXRoLm1pbihNYXRoLmFicyh2YWx1ZSksIDEpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5iID0gTWF0aC5mbG9vcih0aGlzLmdsWzJdICogMjU1KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlKHRydWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGFscGhhIGNvbG9yIHZhbHVlLCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSAwIHRvIDEuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQ29sb3IjYWxwaGFHTFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBhbHBoYUdMOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdsWzNdO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5nbFszXSA9IE1hdGgubWluKE1hdGguYWJzKHZhbHVlKSwgMSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmEgPSBNYXRoLmZsb29yKHRoaXMuZ2xbM10gKiAyNTUpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSByZWQgY29sb3IgdmFsdWUsIG5vcm1hbGl6ZWQgdG8gdGhlIHJhbmdlIDAgdG8gMjU1LlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5LkNvbG9yI3JlZFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICByZWQ6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucjtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gTWF0aC5mbG9vcihNYXRoLmFicyh2YWx1ZSkpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5yID0gTWF0aC5taW4odmFsdWUsIDI1NSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdsWzBdID0gdmFsdWUgLyAyNTU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSh0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBncmVlbiBjb2xvciB2YWx1ZSwgbm9ybWFsaXplZCB0byB0aGUgcmFuZ2UgMCB0byAyNTUuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQ29sb3IjZ3JlZW5cclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgZ3JlZW46IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZztcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gTWF0aC5mbG9vcihNYXRoLmFicyh2YWx1ZSkpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5nID0gTWF0aC5taW4odmFsdWUsIDI1NSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdsWzFdID0gdmFsdWUgLyAyNTU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSh0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBibHVlIGNvbG9yIHZhbHVlLCBub3JtYWxpemVkIHRvIHRoZSByYW5nZSAwIHRvIDI1NS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNibHVlXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGJsdWU6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYjtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gTWF0aC5mbG9vcihNYXRoLmFicyh2YWx1ZSkpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5iID0gTWF0aC5taW4odmFsdWUsIDI1NSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdsWzJdID0gdmFsdWUgLyAyNTU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSh0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBhbHBoYSBjb2xvciB2YWx1ZSwgbm9ybWFsaXplZCB0byB0aGUgcmFuZ2UgMCB0byAyNTUuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQ29sb3IjYWxwaGFcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgYWxwaGE6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gTWF0aC5mbG9vcihNYXRoLmFicyh2YWx1ZSkpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hID0gTWF0aC5taW4odmFsdWUsIDI1NSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdsWzNdID0gdmFsdWUgLyAyNTU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGh1ZSBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICogVGhpcyBpcyB0aGUgYmFzZSBjb2xvci5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNoXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICovXHJcbiAgICBoOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9oO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5faCA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgSFNWVG9SR0IodmFsdWUsIHRoaXMuX3MsIHRoaXMuX3YsIHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNhdHVyYXRpb24gY29sb3IgdmFsdWUuIEEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMS5cclxuICAgICAqIFRoaXMgY29udHJvbHMgaG93IG11Y2ggb2YgdGhlIGh1ZSB3aWxsIGJlIGluIHRoZSBmaW5hbCBjb2xvciwgd2hlcmUgMSBpcyBmdWxseSBzYXR1cmF0ZWQgYW5kIDAgd2lsbCBnaXZlIHlvdSB3aGl0ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5Db2xvciNzXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICovXHJcbiAgICBzOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fcyA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgSFNWVG9SR0IodGhpcy5faCwgdmFsdWUsIHRoaXMuX3YsIHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGxpZ2h0bmVzcyBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICogVGhpcyBjb250cm9scyBob3cgZGFyayB0aGUgY29sb3IgaXMuIFdoZXJlIDEgaXMgYXMgYnJpZ2h0IGFzIHBvc3NpYmxlIGFuZCAwIGlzIGJsYWNrLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5LkNvbG9yI3ZcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKi9cclxuICAgIHY6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Y7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl92ID0gdmFsdWU7XHJcblxyXG4gICAgICAgICAgICBIU1ZUb1JHQih0aGlzLl9oLCB0aGlzLl9zLCB2YWx1ZSwgdGhpcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDb2xvcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQ29udmVydHMgdGhlIGdpdmVuIGNvbG9yIHZhbHVlIGludG8gYW4gT2JqZWN0IGNvbnRhaW5pbmcgcixnLGIgYW5kIGEgcHJvcGVydGllcy5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNvbG9yLkNvbG9yVG9SR0JBXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0gY29sb3IgLSBBIGNvbG9yIHZhbHVlLCBvcHRpb25hbGx5IGluY2x1ZGluZyB0aGUgYWxwaGEgdmFsdWUuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5UeXBlcy5EaXNwbGF5LkNvbG9yT2JqZWN0fSBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcGFyc2VkIGNvbG9yIHZhbHVlcy5cclxuICovXHJcbnZhciBDb2xvclRvUkdCQSA9IGZ1bmN0aW9uIChjb2xvcilcclxue1xyXG4gICAgdmFyIG91dHB1dCA9IHtcclxuICAgICAgICByOiBjb2xvciA+PiAxNiAmIDB4RkYsXHJcbiAgICAgICAgZzogY29sb3IgPj4gOCAmIDB4RkYsXHJcbiAgICAgICAgYjogY29sb3IgJiAweEZGLFxyXG4gICAgICAgIGE6IDI1NVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoY29sb3IgPiAxNjc3NzIxNSlcclxuICAgIHtcclxuICAgICAgICBvdXRwdXQuYSA9IGNvbG9yID4+PiAyNDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb3V0cHV0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDb2xvclRvUkdCQTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogUmV0dXJucyBhIHN0cmluZyBjb250YWluaW5nIGEgaGV4IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBjb2xvciBjb21wb25lbnQuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5Db2xvci5Db21wb25lbnRUb0hleFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtpbnRlZ2VyfSBjb2xvciAtIFRoZSBjb2xvciBjaGFubmVsIHRvIGdldCB0aGUgaGV4IHZhbHVlIGZvciwgbXVzdCBiZSBhIHZhbHVlIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtzdHJpbmd9IEEgc3RyaW5nIG9mIGxlbmd0aCAyIGNoYXJhY3RlcnMsIGkuZS4gMjU1ID0gZmYsIDEwMCA9IDY0LlxyXG4gKi9cclxudmFyIENvbXBvbmVudFRvSGV4ID0gZnVuY3Rpb24gKGNvbG9yKVxyXG57XHJcbiAgICB2YXIgaGV4ID0gY29sb3IudG9TdHJpbmcoMTYpO1xyXG5cclxuICAgIHJldHVybiAoaGV4Lmxlbmd0aCA9PT0gMSkgPyAnMCcgKyBoZXggOiBoZXg7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IENvbXBvbmVudFRvSGV4O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBHaXZlbiAzIHNlcGFyYXRlIGNvbG9yIHZhbHVlcyB0aGlzIHdpbGwgcmV0dXJuIGFuIGludGVnZXIgcmVwcmVzZW50YXRpb24gb2YgaXQuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5Db2xvci5HZXRDb2xvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtpbnRlZ2VyfSByZWQgLSBUaGUgcmVkIGNvbG9yIHZhbHVlLiBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBncmVlbiAtIFRoZSBncmVlbiBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gYmx1ZSAtIFRoZSBibHVlIGNvbG9yIHZhbHVlLiBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICpcclxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgY29tYmluZWQgY29sb3IgdmFsdWUuXHJcbiAqL1xyXG52YXIgR2V0Q29sb3IgPSBmdW5jdGlvbiAocmVkLCBncmVlbiwgYmx1ZSlcclxue1xyXG4gICAgcmV0dXJuIHJlZCA8PCAxNiB8IGdyZWVuIDw8IDggfCBibHVlO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHZXRDb2xvcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogR2l2ZW4gYW4gYWxwaGEgYW5kIDMgY29sb3IgdmFsdWVzIHRoaXMgd2lsbCByZXR1cm4gYW4gaW50ZWdlciByZXByZXNlbnRhdGlvbiBvZiBpdC5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNvbG9yLkdldENvbG9yMzJcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gcmVkIC0gVGhlIHJlZCBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gZ3JlZW4gLSBUaGUgZ3JlZW4gY29sb3IgdmFsdWUuIEEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IGJsdWUgLSBUaGUgYmx1ZSBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gYWxwaGEgLSBUaGUgYWxwaGEgY29sb3IgdmFsdWUuIEEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMjU1LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBjb21iaW5lZCBjb2xvciB2YWx1ZS5cclxuICovXHJcbnZhciBHZXRDb2xvcjMyID0gZnVuY3Rpb24gKHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKVxyXG57XHJcbiAgICByZXR1cm4gYWxwaGEgPDwgMjQgfCByZWQgPDwgMTYgfCBncmVlbiA8PCA4IHwgYmx1ZTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gR2V0Q29sb3IzMjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ29sb3IgPSByZXF1aXJlKCcuL0NvbG9yJyk7XHJcbnZhciBIdWVUb0NvbXBvbmVudCA9IHJlcXVpcmUoJy4vSHVlVG9Db21wb25lbnQnKTtcclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBIU0wgKGh1ZSwgc2F0dXJhdGlvbiBhbmQgbGlnaHRuZXNzKSB2YWx1ZXMgdG8gYSBQaGFzZXIgQ29sb3Igb2JqZWN0LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQ29sb3IuSFNMVG9Db2xvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IGggLSBUaGUgaHVlIHZhbHVlIGluIHRoZSByYW5nZSAwIHRvIDEuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBzIC0gVGhlIHNhdHVyYXRpb24gdmFsdWUgaW4gdGhlIHJhbmdlIDAgdG8gMS5cclxuICogQHBhcmFtIHtudW1iZXJ9IGwgLSBUaGUgbGlnaHRuZXNzIHZhbHVlIGluIHRoZSByYW5nZSAwIHRvIDEuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5EaXNwbGF5LkNvbG9yfSBBIENvbG9yIG9iamVjdCBjcmVhdGVkIGZyb20gdGhlIHJlc3VsdHMgb2YgdGhlIGgsIHMgYW5kIGwgdmFsdWVzLlxyXG4gKi9cclxudmFyIEhTTFRvQ29sb3IgPSBmdW5jdGlvbiAoaCwgcywgbClcclxue1xyXG4gICAgLy8gYWNocm9tYXRpYyBieSBkZWZhdWx0XHJcbiAgICB2YXIgciA9IGw7XHJcbiAgICB2YXIgZyA9IGw7XHJcbiAgICB2YXIgYiA9IGw7XHJcblxyXG4gICAgaWYgKHMgIT09IDApXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHEgPSAobCA8IDAuNSkgPyBsICogKDEgKyBzKSA6IGwgKyBzIC0gbCAqIHM7XHJcbiAgICAgICAgdmFyIHAgPSAyICogbCAtIHE7XHJcblxyXG4gICAgICAgIHIgPSBIdWVUb0NvbXBvbmVudChwLCBxLCBoICsgMSAvIDMpO1xyXG4gICAgICAgIGcgPSBIdWVUb0NvbXBvbmVudChwLCBxLCBoKTtcclxuICAgICAgICBiID0gSHVlVG9Db21wb25lbnQocCwgcSwgaCAtIDEgLyAzKTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgY29sb3IgPSBuZXcgQ29sb3IoKTtcclxuXHJcbiAgICByZXR1cm4gY29sb3Iuc2V0R0xUbyhyLCBnLCBiLCAxKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gSFNMVG9Db2xvcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgSFNWVG9SR0IgPSByZXF1aXJlKCcuL0hTVlRvUkdCJyk7XHJcblxyXG4vKipcclxuICogR2V0IEhTViBjb2xvciB3aGVlbCB2YWx1ZXMgaW4gYW4gYXJyYXkgd2hpY2ggd2lsbCBiZSAzNjAgZWxlbWVudHMgaW4gc2l6ZS5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNvbG9yLkhTVkNvbG9yV2hlZWxcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbcz0xXSAtIFRoZSBzYXR1cmF0aW9uLCBpbiB0aGUgcmFuZ2UgMCAtIDEuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbdj0xXSAtIFRoZSB2YWx1ZSwgaW4gdGhlIHJhbmdlIDAgLSAxLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuVHlwZXMuRGlzcGxheS5Db2xvck9iamVjdFtdfSBBbiBhcnJheSBjb250YWluaW5nIDM2MCBlbGVtZW50cywgd2hlcmUgZWFjaCBjb250YWlucyBhIHNpbmdsZSBudW1lcmljIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNvbG9yIGF0IHRoYXQgcG9pbnQgaW4gdGhlIEhTViBjb2xvciB3aGVlbC5cclxuICovXHJcbnZhciBIU1ZDb2xvcldoZWVsID0gZnVuY3Rpb24gKHMsIHYpXHJcbntcclxuICAgIGlmIChzID09PSB1bmRlZmluZWQpIHsgcyA9IDE7IH1cclxuICAgIGlmICh2ID09PSB1bmRlZmluZWQpIHsgdiA9IDE7IH1cclxuXHJcbiAgICB2YXIgY29sb3JzID0gW107XHJcblxyXG4gICAgZm9yICh2YXIgYyA9IDA7IGMgPD0gMzU5OyBjKyspXHJcbiAgICB7XHJcbiAgICAgICAgY29sb3JzLnB1c2goSFNWVG9SR0IoYyAvIDM1OSwgcywgdikpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb2xvcnM7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEhTVkNvbG9yV2hlZWw7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEdldENvbG9yID0gcmVxdWlyZSgnLi9HZXRDb2xvcicpO1xyXG5cclxuLyoqXHJcbiAqIENvbnZlcnRzIGFuIEhTViAoaHVlLCBzYXR1cmF0aW9uIGFuZCB2YWx1ZSkgY29sb3IgdmFsdWUgdG8gUkdCLlxyXG4gKiBDb252ZXJzaW9uIGZvcm11bGEgZnJvbSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0hTTF9jb2xvcl9zcGFjZS5cclxuICogQXNzdW1lcyBIU1YgdmFsdWVzIGFyZSBjb250YWluZWQgaW4gdGhlIHNldCBbMCwgMV0uXHJcbiAqIEJhc2VkIG9uIGNvZGUgYnkgTWljaGFlbCBKYWNrc29uIChodHRwczovL2dpdGh1Yi5jb20vbWppamFja3NvbilcclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNvbG9yLkhTVlRvUkdCXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaCAtIFRoZSBodWUsIGluIHRoZSByYW5nZSAwIC0gMS4gVGhpcyBpcyB0aGUgYmFzZSBjb2xvci5cclxuICogQHBhcmFtIHtudW1iZXJ9IHMgLSBUaGUgc2F0dXJhdGlvbiwgaW4gdGhlIHJhbmdlIDAgLSAxLiBUaGlzIGNvbnRyb2xzIGhvdyBtdWNoIG9mIHRoZSBodWUgd2lsbCBiZSBpbiB0aGUgZmluYWwgY29sb3IsIHdoZXJlIDEgaXMgZnVsbHkgc2F0dXJhdGVkIGFuZCAwIHdpbGwgZ2l2ZSB5b3Ugd2hpdGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB2IC0gVGhlIHZhbHVlLCBpbiB0aGUgcmFuZ2UgMCAtIDEuIFRoaXMgY29udHJvbHMgaG93IGRhcmsgdGhlIGNvbG9yIGlzLiBXaGVyZSAxIGlzIGFzIGJyaWdodCBhcyBwb3NzaWJsZSBhbmQgMCBpcyBibGFjay5cclxuICogQHBhcmFtIHsoUGhhc2VyLlR5cGVzLkRpc3BsYXkuQ29sb3JPYmplY3R8UGhhc2VyLkRpc3BsYXkuQ29sb3IpfSBbb3V0XSAtIEEgQ29sb3Igb2JqZWN0IHRvIHN0b3JlIHRoZSByZXN1bHRzIGluLiBJZiBub3QgZ2l2ZW4gYSBuZXcgQ29sb3JPYmplY3Qgd2lsbCBiZSBjcmVhdGVkLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHsoUGhhc2VyLlR5cGVzLkRpc3BsYXkuQ29sb3JPYmplY3R8UGhhc2VyLkRpc3BsYXkuQ29sb3IpfSBBbiBvYmplY3Qgd2l0aCB0aGUgcmVkLCBncmVlbiBhbmQgYmx1ZSB2YWx1ZXMgc2V0IGluIHRoZSByLCBnIGFuZCBiIHByb3BlcnRpZXMuXHJcbiAqL1xyXG52YXIgSFNWVG9SR0IgPSBmdW5jdGlvbiAoaCwgcywgdiwgb3V0KVxyXG57XHJcbiAgICBpZiAocyA9PT0gdW5kZWZpbmVkKSB7IHMgPSAxOyB9XHJcbiAgICBpZiAodiA9PT0gdW5kZWZpbmVkKSB7IHYgPSAxOyB9XHJcblxyXG4gICAgdmFyIGkgPSBNYXRoLmZsb29yKGggKiA2KTtcclxuICAgIHZhciBmID0gaCAqIDYgLSBpO1xyXG5cclxuICAgIHZhciBwID0gTWF0aC5mbG9vcigodiAqICgxIC0gcykpICogMjU1KTtcclxuICAgIHZhciBxID0gTWF0aC5mbG9vcigodiAqICgxIC0gZiAqIHMpKSAqIDI1NSk7XHJcbiAgICB2YXIgdCA9IE1hdGguZmxvb3IoKHYgKiAoMSAtICgxIC0gZikgKiBzKSkgKiAyNTUpO1xyXG5cclxuICAgIHYgPSBNYXRoLmZsb29yKHYgKj0gMjU1KTtcclxuXHJcbiAgICB2YXIgciA9IHY7XHJcbiAgICB2YXIgZyA9IHY7XHJcbiAgICB2YXIgYiA9IHY7XHJcblxyXG4gICAgdmFyIGMgPSBpICUgNjtcclxuXHJcbiAgICBpZiAoYyA9PT0gMClcclxuICAgIHtcclxuICAgICAgICBnID0gdDtcclxuICAgICAgICBiID0gcDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGMgPT09IDEpXHJcbiAgICB7XHJcbiAgICAgICAgciA9IHE7XHJcbiAgICAgICAgYiA9IHA7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjID09PSAyKVxyXG4gICAge1xyXG4gICAgICAgIHIgPSBwO1xyXG4gICAgICAgIGIgPSB0O1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoYyA9PT0gMylcclxuICAgIHtcclxuICAgICAgICByID0gcDtcclxuICAgICAgICBnID0gcTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGMgPT09IDQpXHJcbiAgICB7XHJcbiAgICAgICAgciA9IHQ7XHJcbiAgICAgICAgZyA9IHA7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChjID09PSA1KVxyXG4gICAge1xyXG4gICAgICAgIGcgPSBwO1xyXG4gICAgICAgIGIgPSBxO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghb3V0KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB7IHI6IHIsIGc6IGcsIGI6IGIsIGNvbG9yOiBHZXRDb2xvcihyLCBnLCBiKSB9O1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAob3V0LnNldFRvKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBvdXQuc2V0VG8ociwgZywgYiwgb3V0LmFscGhhLCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgb3V0LnIgPSByO1xyXG4gICAgICAgIG91dC5nID0gZztcclxuICAgICAgICBvdXQuYiA9IGI7XHJcbiAgICAgICAgb3V0LmNvbG9yID0gR2V0Q29sb3IociwgZywgYik7XHJcblxyXG4gICAgICAgIHJldHVybiBvdXQ7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEhTVlRvUkdCO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDb2xvciA9IHJlcXVpcmUoJy4vQ29sb3InKTtcclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0cyBhIGhleCBzdHJpbmcgaW50byBhIFBoYXNlciBDb2xvciBvYmplY3QuXHJcbiAqIFxyXG4gKiBUaGUgaGV4IHN0cmluZyBjYW4gc3VwcGxpZWQgYXMgYCcjMDAzM2ZmJ2Agb3IgdGhlIHNob3J0LWhhbmQgZm9ybWF0IG9mIGAnIzAzZidgOyBpdCBjYW4gYmVnaW4gd2l0aCBhbiBvcHRpb25hbCBcIiNcIiBvciBcIjB4XCIsIG9yIGJlIHVucHJlZml4ZWQuXHJcbiAqXHJcbiAqIEFuIGFscGhhIGNoYW5uZWwgaXMgX25vdF8gc3VwcG9ydGVkLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQ29sb3IuSGV4U3RyaW5nVG9Db2xvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IGhleCAtIFRoZSBoZXggY29sb3IgdmFsdWUgdG8gY29udmVydCwgc3VjaCBhcyBgIzAwMzNmZmAgb3IgdGhlIHNob3J0LWhhbmQgZm9ybWF0OiBgIzAzZmAuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5EaXNwbGF5LkNvbG9yfSBBIENvbG9yIG9iamVjdCBwb3B1bGF0ZWQgYnkgdGhlIHZhbHVlcyBvZiB0aGUgZ2l2ZW4gc3RyaW5nLlxyXG4gKi9cclxudmFyIEhleFN0cmluZ1RvQ29sb3IgPSBmdW5jdGlvbiAoaGV4KVxyXG57XHJcbiAgICB2YXIgY29sb3IgPSBuZXcgQ29sb3IoKTtcclxuXHJcbiAgICAvLyBFeHBhbmQgc2hvcnRoYW5kIGZvcm0gKGUuZy4gXCIwM0ZcIikgdG8gZnVsbCBmb3JtIChlLmcuIFwiMDAzM0ZGXCIpXHJcbiAgICBoZXggPSBoZXgucmVwbGFjZSgvXig/OiN8MHgpPyhbYS1mXFxkXSkoW2EtZlxcZF0pKFthLWZcXGRdKSQvaSwgZnVuY3Rpb24gKG0sIHIsIGcsIGIpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHIgKyByICsgZyArIGcgKyBiICsgYjtcclxuICAgIH0pO1xyXG5cclxuICAgIHZhciByZXN1bHQgPSAoL14oPzojfDB4KT8oW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkkL2kpLmV4ZWMoaGV4KTtcclxuXHJcbiAgICBpZiAocmVzdWx0KVxyXG4gICAge1xyXG4gICAgICAgIHZhciByID0gcGFyc2VJbnQocmVzdWx0WzFdLCAxNik7XHJcbiAgICAgICAgdmFyIGcgPSBwYXJzZUludChyZXN1bHRbMl0sIDE2KTtcclxuICAgICAgICB2YXIgYiA9IHBhcnNlSW50KHJlc3VsdFszXSwgMTYpO1xyXG5cclxuICAgICAgICBjb2xvci5zZXRUbyhyLCBnLCBiKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29sb3I7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEhleFN0cmluZ1RvQ29sb3I7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIENvbnZlcnRzIGEgaHVlIHRvIGFuIFJHQiBjb2xvci5cclxuICogQmFzZWQgb24gY29kZSBieSBNaWNoYWVsIEphY2tzb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9tamlqYWNrc29uKVxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQ29sb3IuSHVlVG9Db21wb25lbnRcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBwXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBxXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB0XHJcbiAqXHJcbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIGNvbWJpbmVkIGNvbG9yIHZhbHVlLlxyXG4gKi9cclxudmFyIEh1ZVRvQ29tcG9uZW50ID0gZnVuY3Rpb24gKHAsIHEsIHQpXHJcbntcclxuICAgIGlmICh0IDwgMClcclxuICAgIHtcclxuICAgICAgICB0ICs9IDE7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHQgPiAxKVxyXG4gICAge1xyXG4gICAgICAgIHQgLT0gMTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodCA8IDEgLyA2KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBwICsgKHEgLSBwKSAqIDYgKiB0O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0IDwgMSAvIDIpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHE7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHQgPCAyIC8gMylcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gcCArIChxIC0gcCkgKiAoMiAvIDMgLSB0KSAqIDY7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHA7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEh1ZVRvQ29tcG9uZW50O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDb2xvciA9IHJlcXVpcmUoJy4vQ29sb3InKTtcclxudmFyIEludGVnZXJUb1JHQiA9IHJlcXVpcmUoJy4vSW50ZWdlclRvUkdCJyk7XHJcblxyXG4vKipcclxuICogQ29udmVydHMgdGhlIGdpdmVuIGNvbG9yIHZhbHVlIGludG8gYW4gaW5zdGFuY2Ugb2YgYSBDb2xvciBvYmplY3QuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5Db2xvci5JbnRlZ2VyVG9Db2xvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtpbnRlZ2VyfSBpbnB1dCAtIFRoZSBjb2xvciB2YWx1ZSB0byBjb252ZXJ0IGludG8gYSBDb2xvciBvYmplY3QuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5EaXNwbGF5LkNvbG9yfSBBIENvbG9yIG9iamVjdC5cclxuICovXHJcbnZhciBJbnRlZ2VyVG9Db2xvciA9IGZ1bmN0aW9uIChpbnB1dClcclxue1xyXG4gICAgdmFyIHJnYiA9IEludGVnZXJUb1JHQihpbnB1dCk7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBDb2xvcihyZ2IuciwgcmdiLmcsIHJnYi5iLCByZ2IuYSk7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEludGVnZXJUb0NvbG9yO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdGhlIGNvbXBvbmVudCBwYXJ0cyBvZiBhIGNvbG9yIGFzIGFuIE9iamVjdCB3aXRoIHRoZSBwcm9wZXJ0aWVzIGFscGhhLCByZWQsIGdyZWVuLCBibHVlLlxyXG4gKlxyXG4gKiBBbHBoYSB3aWxsIG9ubHkgYmUgc2V0IGlmIGl0IGV4aXN0cyBpbiB0aGUgZ2l2ZW4gY29sb3IgKDB4QUFSUkdHQkIpXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5Db2xvci5JbnRlZ2VyVG9SR0JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gaW5wdXQgLSBUaGUgY29sb3IgdmFsdWUgdG8gY29udmVydCBpbnRvIGEgQ29sb3Igb2JqZWN0LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuVHlwZXMuRGlzcGxheS5Db2xvck9iamVjdH0gQW4gb2JqZWN0IHdpdGggdGhlIHJlZCwgZ3JlZW4gYW5kIGJsdWUgdmFsdWVzIHNldCBpbiB0aGUgciwgZyBhbmQgYiBwcm9wZXJ0aWVzLlxyXG4gKi9cclxudmFyIEludGVnZXJUb1JHQiA9IGZ1bmN0aW9uIChjb2xvcilcclxue1xyXG4gICAgaWYgKGNvbG9yID4gMTY3NzcyMTUpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIFRoZSBjb2xvciB2YWx1ZSBoYXMgYW4gYWxwaGEgY29tcG9uZW50XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYTogY29sb3IgPj4+IDI0LFxyXG4gICAgICAgICAgICByOiBjb2xvciA+PiAxNiAmIDB4RkYsXHJcbiAgICAgICAgICAgIGc6IGNvbG9yID4+IDggJiAweEZGLFxyXG4gICAgICAgICAgICBiOiBjb2xvciAmIDB4RkZcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGE6IDI1NSxcclxuICAgICAgICAgICAgcjogY29sb3IgPj4gMTYgJiAweEZGLFxyXG4gICAgICAgICAgICBnOiBjb2xvciA+PiA4ICYgMHhGRixcclxuICAgICAgICAgICAgYjogY29sb3IgJiAweEZGXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gSW50ZWdlclRvUkdCO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBMaW5lYXIgPSByZXF1aXJlKCcuLi8uLi9tYXRoL0xpbmVhcicpO1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkRpc3BsYXkuQ29sb3IuSW50ZXJwb2xhdGVcclxuICogQG1lbWJlcm9mIFBoYXNlci5EaXNwbGF5LkNvbG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBJbnRlcnBvbGF0ZXMgYmV0d2VlbiB0aGUgdHdvIGdpdmVuIGNvbG9yIHJhbmdlcyBvdmVyIHRoZSBsZW5ndGggc3VwcGxpZWQuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5Db2xvci5JbnRlcnBvbGF0ZS5SR0JXaXRoUkdCXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuRGlzcGxheS5Db2xvci5JbnRlcnBvbGF0ZVxyXG4gKiBAc3RhdGljXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0gcjEgLSBSZWQgdmFsdWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBnMSAtIEJsdWUgdmFsdWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBiMSAtIEdyZWVuIHZhbHVlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gcjIgLSBSZWQgdmFsdWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBnMiAtIEJsdWUgdmFsdWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBiMiAtIEdyZWVuIHZhbHVlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD0xMDBdIC0gRGlzdGFuY2UgdG8gaW50ZXJwb2xhdGUgb3Zlci5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtpbmRleD0wXSAtIEluZGV4IHRvIHN0YXJ0IGZyb20uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5UeXBlcy5EaXNwbGF5LkNvbG9yT2JqZWN0fSBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgaW50ZXJwb2xhdGVkIGNvbG9yIHZhbHVlcy5cclxuICovXHJcbnZhciBSR0JXaXRoUkdCID0gZnVuY3Rpb24gKHIxLCBnMSwgYjEsIHIyLCBnMiwgYjIsIGxlbmd0aCwgaW5kZXgpXHJcbntcclxuICAgIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCkgeyBsZW5ndGggPSAxMDA7IH1cclxuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7IGluZGV4ID0gMDsgfVxyXG5cclxuICAgIHZhciB0ID0gaW5kZXggLyBsZW5ndGg7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICByOiBMaW5lYXIocjEsIHIyLCB0KSxcclxuICAgICAgICBnOiBMaW5lYXIoZzEsIGcyLCB0KSxcclxuICAgICAgICBiOiBMaW5lYXIoYjEsIGIyLCB0KVxyXG4gICAgfTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBJbnRlcnBvbGF0ZXMgYmV0d2VlbiB0aGUgdHdvIGdpdmVuIGNvbG9yIG9iamVjdHMgb3ZlciB0aGUgbGVuZ3RoIHN1cHBsaWVkLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQ29sb3IuSW50ZXJwb2xhdGUuQ29sb3JXaXRoQ29sb3JcclxuICogQG1lbWJlcm9mIFBoYXNlci5EaXNwbGF5LkNvbG9yLkludGVycG9sYXRlXHJcbiAqIEBzdGF0aWNcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkRpc3BsYXkuQ29sb3J9IGNvbG9yMSAtIFRoZSBmaXJzdCBDb2xvciBvYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkRpc3BsYXkuQ29sb3J9IGNvbG9yMiAtIFRoZSBzZWNvbmQgQ29sb3Igb2JqZWN0LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2xlbmd0aD0xMDBdIC0gRGlzdGFuY2UgdG8gaW50ZXJwb2xhdGUgb3Zlci5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtpbmRleD0wXSAtIEluZGV4IHRvIHN0YXJ0IGZyb20uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5UeXBlcy5EaXNwbGF5LkNvbG9yT2JqZWN0fSBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgaW50ZXJwb2xhdGVkIGNvbG9yIHZhbHVlcy5cclxuICovXHJcbnZhciBDb2xvcldpdGhDb2xvciA9IGZ1bmN0aW9uIChjb2xvcjEsIGNvbG9yMiwgbGVuZ3RoLCBpbmRleClcclxue1xyXG4gICAgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkKSB7IGxlbmd0aCA9IDEwMDsgfVxyXG4gICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHsgaW5kZXggPSAwOyB9XHJcblxyXG4gICAgcmV0dXJuIFJHQldpdGhSR0IoY29sb3IxLnIsIGNvbG9yMS5nLCBjb2xvcjEuYiwgY29sb3IyLnIsIGNvbG9yMi5nLCBjb2xvcjIuYiwgbGVuZ3RoLCBpbmRleCk7XHJcbn07XHJcblxyXG4vKipcclxuICogSW50ZXJwb2xhdGVzIGJldHdlZW4gdGhlIENvbG9yIG9iamVjdCBhbmQgY29sb3IgdmFsdWVzIG92ZXIgdGhlIGxlbmd0aCBzdXBwbGllZC5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNvbG9yLkludGVycG9sYXRlLkNvbG9yV2l0aFJHQlxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkRpc3BsYXkuQ29sb3IuSW50ZXJwb2xhdGVcclxuICogQHN0YXRpY1xyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuRGlzcGxheS5Db2xvcn0gY29sb3IxIC0gVGhlIGZpcnN0IENvbG9yIG9iamVjdC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHIgLSBSZWQgdmFsdWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBnIC0gQmx1ZSB2YWx1ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IGIgLSBHcmVlbiB2YWx1ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtsZW5ndGg9MTAwXSAtIERpc3RhbmNlIHRvIGludGVycG9sYXRlIG92ZXIuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbaW5kZXg9MF0gLSBJbmRleCB0byBzdGFydCBmcm9tLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuVHlwZXMuRGlzcGxheS5Db2xvck9iamVjdH0gQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGludGVycG9sYXRlZCBjb2xvciB2YWx1ZXMuXHJcbiAqL1xyXG52YXIgQ29sb3JXaXRoUkdCID0gZnVuY3Rpb24gKGNvbG9yLCByLCBnLCBiLCBsZW5ndGgsIGluZGV4KVxyXG57XHJcbiAgICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHsgbGVuZ3RoID0gMTAwOyB9XHJcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkgeyBpbmRleCA9IDA7IH1cclxuXHJcbiAgICByZXR1cm4gUkdCV2l0aFJHQihjb2xvci5yLCBjb2xvci5nLCBjb2xvci5iLCByLCBnLCBiLCBsZW5ndGgsIGluZGV4KTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIFJHQldpdGhSR0I6IFJHQldpdGhSR0IsXHJcbiAgICBDb2xvcldpdGhSR0I6IENvbG9yV2l0aFJHQixcclxuICAgIENvbG9yV2l0aENvbG9yOiBDb2xvcldpdGhDb2xvclxyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ29sb3IgPSByZXF1aXJlKCcuL0NvbG9yJyk7XHJcblxyXG4vKipcclxuICogQ29udmVydHMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgYHJgLCBgZ2AsIGBiYCBhbmQgYGFgIHByb3BlcnRpZXMgaW50byBhIENvbG9yIGNsYXNzIGluc3RhbmNlLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRpc3BsYXkuQ29sb3IuT2JqZWN0VG9Db2xvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuRGlzcGxheS5JbnB1dENvbG9yT2JqZWN0fSBpbnB1dCAtIEFuIG9iamVjdCBjb250YWluaW5nIGByYCwgYGdgLCBgYmAgYW5kIGBhYCBwcm9wZXJ0aWVzIGluIHRoZSByYW5nZSAwIHRvIDI1NS5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkRpc3BsYXkuQ29sb3J9IEEgQ29sb3Igb2JqZWN0LlxyXG4gKi9cclxudmFyIE9iamVjdFRvQ29sb3IgPSBmdW5jdGlvbiAoaW5wdXQpXHJcbntcclxuICAgIHJldHVybiBuZXcgQ29sb3IoaW5wdXQuciwgaW5wdXQuZywgaW5wdXQuYiwgaW5wdXQuYSk7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdFRvQ29sb3I7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENvbG9yID0gcmVxdWlyZSgnLi9Db2xvcicpO1xyXG5cclxuLyoqXHJcbiAqIENvbnZlcnRzIGEgQ1NTICd3ZWInIHN0cmluZyBpbnRvIGEgUGhhc2VyIENvbG9yIG9iamVjdC5cclxuICogXHJcbiAqIFRoZSB3ZWIgc3RyaW5nIGNhbiBiZSBpbiB0aGUgZm9ybWF0IGAncmdiKHIsZyxiKSdgIG9yIGAncmdiYShyLGcsYixhKSdgIHdoZXJlIHIvZy9iIGFyZSBpbiB0aGUgcmFuZ2UgWzAuLjI1NV0gYW5kIGEgaXMgaW4gdGhlIHJhbmdlIFswLi4xXS5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNvbG9yLlJHQlN0cmluZ1RvQ29sb3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSByZ2IgLSBUaGUgQ1NTIGZvcm1hdCBjb2xvciBzdHJpbmcsIHVzaW5nIHRoZSBgcmdiYCBvciBgcmdiYWAgZm9ybWF0LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuRGlzcGxheS5Db2xvcn0gQSBDb2xvciBvYmplY3QuXHJcbiAqL1xyXG52YXIgUkdCU3RyaW5nVG9Db2xvciA9IGZ1bmN0aW9uIChyZ2IpXHJcbntcclxuICAgIHZhciBjb2xvciA9IG5ldyBDb2xvcigpO1xyXG5cclxuICAgIHZhciByZXN1bHQgPSAoL15yZ2JhP1xcKFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqKD86LFxccyooXFxkKyg/OlxcLlxcZCspPykpP1xccypcXCkkLykuZXhlYyhyZ2IudG9Mb3dlckNhc2UoKSk7XHJcblxyXG4gICAgaWYgKHJlc3VsdClcclxuICAgIHtcclxuICAgICAgICB2YXIgciA9IHBhcnNlSW50KHJlc3VsdFsxXSwgMTApO1xyXG4gICAgICAgIHZhciBnID0gcGFyc2VJbnQocmVzdWx0WzJdLCAxMCk7XHJcbiAgICAgICAgdmFyIGIgPSBwYXJzZUludChyZXN1bHRbM10sIDEwKTtcclxuICAgICAgICB2YXIgYSA9IChyZXN1bHRbNF0gIT09IHVuZGVmaW5lZCkgPyBwYXJzZUZsb2F0KHJlc3VsdFs0XSkgOiAxO1xyXG5cclxuICAgICAgICBjb2xvci5zZXRUbyhyLCBnLCBiLCBhICogMjU1KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY29sb3I7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFJHQlN0cmluZ1RvQ29sb3I7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIENvbnZlcnRzIGFuIFJHQiBjb2xvciB2YWx1ZSB0byBIU1YgKGh1ZSwgc2F0dXJhdGlvbiBhbmQgdmFsdWUpLlxyXG4gKiBDb252ZXJzaW9uIGZvcm11bGEgZnJvbSBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0hTTF9jb2xvcl9zcGFjZS5cclxuICogQXNzdW1lcyBSR0IgdmFsdWVzIGFyZSBjb250YWluZWQgaW4gdGhlIHNldCBbMCwgMjU1XSBhbmQgcmV0dXJucyBoLCBzIGFuZCB2IGluIHRoZSBzZXQgWzAsIDFdLlxyXG4gKiBCYXNlZCBvbiBjb2RlIGJ5IE1pY2hhZWwgSmFja3NvbiAoaHR0cHM6Ly9naXRodWIuY29tL21qaWphY2tzb24pXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5Db2xvci5SR0JUb0hTVlxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtpbnRlZ2VyfSByIC0gVGhlIHJlZCBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gZyAtIFRoZSBncmVlbiBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gYiAtIFRoZSBibHVlIGNvbG9yIHZhbHVlLiBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICogQHBhcmFtIHsoUGhhc2VyLlR5cGVzLkRpc3BsYXkuSFNWQ29sb3JPYmplY3R8UGhhc2VyLkRpc3BsYXkuQ29sb3IpfSBbb3V0XSAtIEFuIG9iamVjdCB0byBzdG9yZSB0aGUgY29sb3IgdmFsdWVzIGluLiBJZiBub3QgZ2l2ZW4gYW4gSFNWIENvbG9yIE9iamVjdCB3aWxsIGJlIGNyZWF0ZWQuXHJcbiAqXHJcbiAqIEByZXR1cm4geyhQaGFzZXIuVHlwZXMuRGlzcGxheS5IU1ZDb2xvck9iamVjdHxQaGFzZXIuRGlzcGxheS5Db2xvcil9IEFuIG9iamVjdCB3aXRoIHRoZSBwcm9wZXJ0aWVzIGBoYCwgYHNgIGFuZCBgdmAgc2V0LlxyXG4gKi9cclxudmFyIFJHQlRvSFNWID0gZnVuY3Rpb24gKHIsIGcsIGIsIG91dClcclxue1xyXG4gICAgaWYgKG91dCA9PT0gdW5kZWZpbmVkKSB7IG91dCA9IHsgaDogMCwgczogMCwgdjogMCB9OyB9XHJcblxyXG4gICAgciAvPSAyNTU7XHJcbiAgICBnIC89IDI1NTtcclxuICAgIGIgLz0gMjU1O1xyXG5cclxuICAgIHZhciBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKTtcclxuICAgIHZhciBtYXggPSBNYXRoLm1heChyLCBnLCBiKTtcclxuICAgIHZhciBkID0gbWF4IC0gbWluO1xyXG5cclxuICAgIC8vIGFjaHJvbWF0aWMgYnkgZGVmYXVsdFxyXG4gICAgdmFyIGggPSAwO1xyXG4gICAgdmFyIHMgPSAobWF4ID09PSAwKSA/IDAgOiBkIC8gbWF4O1xyXG4gICAgdmFyIHYgPSBtYXg7XHJcblxyXG4gICAgaWYgKG1heCAhPT0gbWluKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChtYXggPT09IHIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBoID0gKGcgLSBiKSAvIGQgKyAoKGcgPCBiKSA/IDYgOiAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAobWF4ID09PSBnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaCA9IChiIC0gcikgLyBkICsgMjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAobWF4ID09PSBiKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaCA9IChyIC0gZykgLyBkICsgNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGggLz0gNjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3V0Lmhhc093blByb3BlcnR5KCdfaCcpKVxyXG4gICAge1xyXG4gICAgICAgIG91dC5faCA9IGg7XHJcbiAgICAgICAgb3V0Ll9zID0gcztcclxuICAgICAgICBvdXQuX3YgPSB2O1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAgIG91dC5oID0gaDtcclxuICAgICAgICBvdXQucyA9IHM7XHJcbiAgICAgICAgb3V0LnYgPSB2O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvdXQ7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFJHQlRvSFNWO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDb21wb25lbnRUb0hleCA9IHJlcXVpcmUoJy4vQ29tcG9uZW50VG9IZXgnKTtcclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0cyB0aGUgY29sb3IgdmFsdWVzIGludG8gYW4gSFRNTCBjb21wYXRpYmxlIGNvbG9yIHN0cmluZywgcHJlZml4ZWQgd2l0aCBlaXRoZXIgYCNgIG9yIGAweGAuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5Db2xvci5SR0JUb1N0cmluZ1xyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtpbnRlZ2VyfSByIC0gVGhlIHJlZCBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gZyAtIFRoZSBncmVlbiBjb2xvciB2YWx1ZS4gQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyNTUuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gYiAtIFRoZSBibHVlIGNvbG9yIHZhbHVlLiBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbYT0yNTVdIC0gVGhlIGFscGhhIHZhbHVlLiBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDI1NS5cclxuICogQHBhcmFtIHtzdHJpbmd9IFtwcmVmaXg9I10gLSBUaGUgcHJlZml4IG9mIHRoZSBzdHJpbmcuIEVpdGhlciBgI2Agb3IgYDB4YC5cclxuICpcclxuICogQHJldHVybiB7c3RyaW5nfSBBIHN0cmluZy1iYXNlZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29sb3IgdmFsdWVzLlxyXG4gKi9cclxudmFyIFJHQlRvU3RyaW5nID0gZnVuY3Rpb24gKHIsIGcsIGIsIGEsIHByZWZpeClcclxue1xyXG4gICAgaWYgKGEgPT09IHVuZGVmaW5lZCkgeyBhID0gMjU1OyB9XHJcbiAgICBpZiAocHJlZml4ID09PSB1bmRlZmluZWQpIHsgcHJlZml4ID0gJyMnOyB9XHJcblxyXG4gICAgaWYgKHByZWZpeCA9PT0gJyMnKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiAnIycgKyAoKDEgPDwgMjQpICsgKHIgPDwgMTYpICsgKGcgPDwgOCkgKyBiKS50b1N0cmluZygxNikuc2xpY2UoMSk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuICcweCcgKyBDb21wb25lbnRUb0hleChhKSArIENvbXBvbmVudFRvSGV4KHIpICsgQ29tcG9uZW50VG9IZXgoZykgKyBDb21wb25lbnRUb0hleChiKTtcclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUkdCVG9TdHJpbmc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEJldHdlZW4gPSByZXF1aXJlKCcuLi8uLi9tYXRoL0JldHdlZW4nKTtcclxudmFyIENvbG9yID0gcmVxdWlyZSgnLi9Db2xvcicpO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBuZXcgQ29sb3Igb2JqZWN0IHdoZXJlIHRoZSByLCBnLCBhbmQgYiB2YWx1ZXMgaGF2ZSBiZWVuIHNldCB0byByYW5kb20gdmFsdWVzXHJcbiAqIGJhc2VkIG9uIHRoZSBnaXZlbiBtaW4gbWF4IHZhbHVlcy5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5EaXNwbGF5LkNvbG9yLlJhbmRvbVJHQlxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbbWluPTBdIC0gVGhlIG1pbmltdW0gdmFsdWUgdG8gc2V0IHRoZSByYW5kb20gcmFuZ2UgZnJvbSAoYmV0d2VlbiAwIGFuZCAyNTUpXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW21heD0yNTVdIC0gVGhlIG1heGltdW0gdmFsdWUgdG8gc2V0IHRoZSByYW5kb20gcmFuZ2UgZnJvbSAoYmV0d2VlbiAwIGFuZCAyNTUpXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5EaXNwbGF5LkNvbG9yfSBBIENvbG9yIG9iamVjdC5cclxuICovXHJcbnZhciBSYW5kb21SR0IgPSBmdW5jdGlvbiAobWluLCBtYXgpXHJcbntcclxuICAgIGlmIChtaW4gPT09IHVuZGVmaW5lZCkgeyBtaW4gPSAwOyB9XHJcbiAgICBpZiAobWF4ID09PSB1bmRlZmluZWQpIHsgbWF4ID0gMjU1OyB9XHJcblxyXG4gICAgcmV0dXJuIG5ldyBDb2xvcihCZXR3ZWVuKG1pbiwgbWF4KSwgQmV0d2VlbihtaW4sIG1heCksIEJldHdlZW4obWluLCBtYXgpKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUmFuZG9tUkdCO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBIZXhTdHJpbmdUb0NvbG9yID0gcmVxdWlyZSgnLi9IZXhTdHJpbmdUb0NvbG9yJyk7XHJcbnZhciBJbnRlZ2VyVG9Db2xvciA9IHJlcXVpcmUoJy4vSW50ZWdlclRvQ29sb3InKTtcclxudmFyIE9iamVjdFRvQ29sb3IgPSByZXF1aXJlKCcuL09iamVjdFRvQ29sb3InKTtcclxudmFyIFJHQlN0cmluZ1RvQ29sb3IgPSByZXF1aXJlKCcuL1JHQlN0cmluZ1RvQ29sb3InKTtcclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0cyB0aGUgZ2l2ZW4gc291cmNlIGNvbG9yIHZhbHVlIGludG8gYW4gaW5zdGFuY2Ugb2YgYSBDb2xvciBjbGFzcy5cclxuICogVGhlIHZhbHVlIGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcsIHByZWZpeGVkIHdpdGggYHJnYmAgb3IgYSBoZXggc3RyaW5nLCBhIG51bWJlciBvciBhbiBPYmplY3QuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRGlzcGxheS5Db2xvci5WYWx1ZVRvQ29sb3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xudW1iZXJ8UGhhc2VyLlR5cGVzLkRpc3BsYXkuSW5wdXRDb2xvck9iamVjdCl9IGlucHV0IC0gVGhlIHNvdXJjZSBjb2xvciB2YWx1ZSB0byBjb252ZXJ0LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuRGlzcGxheS5Db2xvcn0gQSBDb2xvciBvYmplY3QuXHJcbiAqL1xyXG52YXIgVmFsdWVUb0NvbG9yID0gZnVuY3Rpb24gKGlucHV0KVxyXG57XHJcbiAgICB2YXIgdCA9IHR5cGVvZiBpbnB1dDtcclxuXHJcbiAgICBzd2l0Y2ggKHQpXHJcbiAgICB7XHJcbiAgICAgICAgY2FzZSAnc3RyaW5nJzpcclxuXHJcbiAgICAgICAgICAgIGlmIChpbnB1dC5zdWJzdHIoMCwgMykudG9Mb3dlckNhc2UoKSA9PT0gJ3JnYicpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBSR0JTdHJpbmdUb0NvbG9yKGlucHV0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBIZXhTdHJpbmdUb0NvbG9yKGlucHV0KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICBjYXNlICdudW1iZXInOlxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIEludGVnZXJUb0NvbG9yKGlucHV0KTtcclxuXHJcbiAgICAgICAgY2FzZSAnb2JqZWN0JzpcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBPYmplY3RUb0NvbG9yKGlucHV0KTtcclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gVmFsdWVUb0NvbG9yO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDb2xvciA9IHJlcXVpcmUoJy4vQ29sb3InKTtcclxuXHJcbkNvbG9yLkNvbG9yVG9SR0JBID0gcmVxdWlyZSgnLi9Db2xvclRvUkdCQScpO1xyXG5Db2xvci5Db21wb25lbnRUb0hleCA9IHJlcXVpcmUoJy4vQ29tcG9uZW50VG9IZXgnKTtcclxuQ29sb3IuR2V0Q29sb3IgPSByZXF1aXJlKCcuL0dldENvbG9yJyk7XHJcbkNvbG9yLkdldENvbG9yMzIgPSByZXF1aXJlKCcuL0dldENvbG9yMzInKTtcclxuQ29sb3IuSGV4U3RyaW5nVG9Db2xvciA9IHJlcXVpcmUoJy4vSGV4U3RyaW5nVG9Db2xvcicpO1xyXG5Db2xvci5IU0xUb0NvbG9yID0gcmVxdWlyZSgnLi9IU0xUb0NvbG9yJyk7XHJcbkNvbG9yLkhTVkNvbG9yV2hlZWwgPSByZXF1aXJlKCcuL0hTVkNvbG9yV2hlZWwnKTtcclxuQ29sb3IuSFNWVG9SR0IgPSByZXF1aXJlKCcuL0hTVlRvUkdCJyk7XHJcbkNvbG9yLkh1ZVRvQ29tcG9uZW50ID0gcmVxdWlyZSgnLi9IdWVUb0NvbXBvbmVudCcpO1xyXG5Db2xvci5JbnRlZ2VyVG9Db2xvciA9IHJlcXVpcmUoJy4vSW50ZWdlclRvQ29sb3InKTtcclxuQ29sb3IuSW50ZWdlclRvUkdCID0gcmVxdWlyZSgnLi9JbnRlZ2VyVG9SR0InKTtcclxuQ29sb3IuSW50ZXJwb2xhdGUgPSByZXF1aXJlKCcuL0ludGVycG9sYXRlJyk7XHJcbkNvbG9yLk9iamVjdFRvQ29sb3IgPSByZXF1aXJlKCcuL09iamVjdFRvQ29sb3InKTtcclxuQ29sb3IuUmFuZG9tUkdCID0gcmVxdWlyZSgnLi9SYW5kb21SR0InKTtcclxuQ29sb3IuUkdCU3RyaW5nVG9Db2xvciA9IHJlcXVpcmUoJy4vUkdCU3RyaW5nVG9Db2xvcicpO1xyXG5Db2xvci5SR0JUb0hTViA9IHJlcXVpcmUoJy4vUkdCVG9IU1YnKTtcclxuQ29sb3IuUkdCVG9TdHJpbmcgPSByZXF1aXJlKCcuL1JHQlRvU3RyaW5nJyk7XHJcbkNvbG9yLlZhbHVlVG9Db2xvciA9IHJlcXVpcmUoJy4vVmFsdWVUb0NvbG9yJyk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IENvbG9yO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5EaXNwbGF5XHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgQWxpZ246IHJlcXVpcmUoJy4vYWxpZ24nKSxcclxuICAgIEJhc2VTaGFkZXI6IHJlcXVpcmUoJy4vc2hhZGVyL0Jhc2VTaGFkZXInKSxcclxuICAgIEJvdW5kczogcmVxdWlyZSgnLi9ib3VuZHMnKSxcclxuICAgIENhbnZhczogcmVxdWlyZSgnLi9jYW52YXMnKSxcclxuICAgIENvbG9yOiByZXF1aXJlKCcuL2NvbG9yJyksXHJcbiAgICBNYXNrczogcmVxdWlyZSgnLi9tYXNrJylcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEdhbWVFdmVudHMgPSByZXF1aXJlKCcuLi8uLi9jb3JlL2V2ZW50cycpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBCaXRtYXAgTWFzayBjb21iaW5lcyB0aGUgYWxwaGEgKG9wYWNpdHkpIG9mIGEgbWFza2VkIHBpeGVsIHdpdGggdGhlIGFscGhhIG9mIGFub3RoZXIgcGl4ZWwuXHJcbiAqIFVubGlrZSB0aGUgR2VvbWV0cnkgTWFzaywgd2hpY2ggaXMgYSBjbGlwcGluZyBwYXRoLCBhIEJpdG1hcCBNYXNrIGJlaGF2ZXMgbGlrZSBhbiBhbHBoYSBtYXNrLFxyXG4gKiBub3QgYSBjbGlwcGluZyBwYXRoLiBJdCBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIHVzaW5nIHRoZSBXZWJHTCBSZW5kZXJlci5cclxuICpcclxuICogQSBCaXRtYXAgTWFzayBjYW4gdXNlIGFueSBHYW1lIE9iamVjdCB0byBkZXRlcm1pbmUgdGhlIGFscGhhIG9mIGVhY2ggcGl4ZWwgb2YgdGhlIG1hc2tlZCBHYW1lIE9iamVjdChzKS5cclxuICogRm9yIGFueSBnaXZlbiBwb2ludCBvZiBhIG1hc2tlZCBHYW1lIE9iamVjdCdzIHRleHR1cmUsIHRoZSBwaXhlbCdzIGFscGhhIHdpbGwgYmUgbXVsdGlwbGllZCBieSB0aGUgYWxwaGFcclxuICogb2YgdGhlIHBpeGVsIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSBCaXRtYXAgTWFzaydzIEdhbWUgT2JqZWN0LiBUaGUgY29sb3Igb2YgdGhlIHBpeGVsIGZyb20gdGhlXHJcbiAqIEJpdG1hcCBNYXNrIGRvZXNuJ3QgbWF0dGVyLlxyXG4gKlxyXG4gKiBGb3IgZXhhbXBsZSwgaWYgYSBwdXJlIGJsdWUgcGl4ZWwgd2l0aCBhbiBhbHBoYSBvZiAwLjk1IGlzIG1hc2tlZCB3aXRoIGEgcHVyZSByZWQgcGl4ZWwgd2l0aCBhblxyXG4gKiBhbHBoYSBvZiAwLjUsIHRoZSByZXN1bHRpbmcgcGl4ZWwgd2lsbCBiZSBwdXJlIGJsdWUgd2l0aCBhbiBhbHBoYSBvZiAwLjQ3NS4gTmF0dXJhbGx5LCB0aGlzIG1lYW5zXHJcbiAqIHRoYXQgYSBwaXhlbCBpbiB0aGUgbWFzayB3aXRoIGFuIGFscGhhIG9mIDAgd2lsbCBoaWRlIHRoZSBjb3JyZXNwb25kaW5nIHBpeGVsIGluIGFsbCBtYXNrZWQgR2FtZSBPYmplY3RzXHJcbiAqICBBIHBpeGVsIHdpdGggYW4gYWxwaGEgb2YgMSBpbiB0aGUgbWFza2VkIEdhbWUgT2JqZWN0IHdpbGwgcmVjZWl2ZSB0aGUgc2FtZSBhbHBoYSBhcyB0aGVcclxuICogY29ycmVzcG9uZGluZyBwaXhlbCBpbiB0aGUgbWFzay5cclxuICpcclxuICogVGhlIEJpdG1hcCBNYXNrJ3MgbG9jYXRpb24gbWF0Y2hlcyB0aGUgbG9jYXRpb24gb2YgaXRzIEdhbWUgT2JqZWN0LCBub3QgdGhlIGxvY2F0aW9uIG9mIHRoZVxyXG4gKiBtYXNrZWQgb2JqZWN0cy4gTW92aW5nIG9yIHRyYW5zZm9ybWluZyB0aGUgdW5kZXJseWluZyBHYW1lIE9iamVjdCB3aWxsIGNoYW5nZSB0aGUgbWFza1xyXG4gKiAoYW5kIGFmZmVjdCB0aGUgdmlzaWJpbGl0eSBvZiBhbnkgbWFza2VkIG9iamVjdHMpLCB3aGVyZWFzIG1vdmluZyBvciB0cmFuc2Zvcm1pbmcgYSBtYXNrZWQgb2JqZWN0XHJcbiAqIHdpbGwgbm90IGFmZmVjdCB0aGUgbWFzay5cclxuICpcclxuICogVGhlIEJpdG1hcCBNYXNrIHdpbGwgbm90IHJlbmRlciBpdHMgR2FtZSBPYmplY3QgYnkgaXRzZWxmLiBJZiB0aGUgR2FtZSBPYmplY3QgaXMgbm90IGluIGFcclxuICogU2NlbmUncyBkaXNwbGF5IGxpc3QsIGl0IHdpbGwgb25seSBiZSB1c2VkIGZvciB0aGUgbWFzayBhbmQgaXRzIGZ1bGwgdGV4dHVyZSB3aWxsIG5vdCBiZSBkaXJlY3RseVxyXG4gKiB2aXNpYmxlLiBBZGRpbmcgdGhlIHVuZGVybHlpbmcgR2FtZSBPYmplY3QgdG8gYSBTY2VuZSB3aWxsIG5vdCBjYXVzZSBhbnkgcHJvYmxlbXMgLSBpdCB3aWxsXHJcbiAqIHJlbmRlciBhcyBhIG5vcm1hbCBHYW1lIE9iamVjdCBhbmQgd2lsbCBhbHNvIHNlcnZlIGFzIGEgbWFzay5cclxuICpcclxuICogQGNsYXNzIEJpdG1hcE1hc2tcclxuICogQG1lbWJlcm9mIFBoYXNlci5EaXNwbGF5Lk1hc2tzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHdoaWNoIHRoaXMgQml0bWFwIE1hc2sgd2lsbCBiZSB1c2VkIGluLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSByZW5kZXJhYmxlIC0gQSByZW5kZXJhYmxlIEdhbWUgT2JqZWN0IHRoYXQgdXNlcyBhIHRleHR1cmUsIHN1Y2ggYXMgYSBTcHJpdGUuXHJcbiAqL1xyXG52YXIgQml0bWFwTWFzayA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBCaXRtYXBNYXNrIChzY2VuZSwgcmVuZGVyYWJsZSlcclxuICAgIHtcclxuICAgICAgICB2YXIgcmVuZGVyZXIgPSBzY2VuZS5zeXMuZ2FtZS5yZW5kZXJlcjtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gZWl0aGVyIHRoZSBDYW52YXMgb3IgV2ViR0wgUmVuZGVyZXIgdGhhdCB0aGlzIE1hc2sgaXMgdXNpbmcuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5NYXNrcy5CaXRtYXBNYXNrI3JlbmRlcmVyXHJcbiAgICAgICAgICogQHR5cGUgeyhQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfFBoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyKX1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlbmRlcmFibGUgR2FtZSBPYmplY3QgdGhhdCB1c2VzIGEgdGV4dHVyZSwgc3VjaCBhcyBhIFNwcml0ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5Lk1hc2tzLkJpdG1hcE1hc2sjYml0bWFwTWFza1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJpdG1hcE1hc2sgPSByZW5kZXJhYmxlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdGV4dHVyZSB1c2VkIGZvciB0aGUgbWFzaydzIGZyYW1lYnVmZmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuTWFza3MuQml0bWFwTWFzayNtYXNrVGV4dHVyZVxyXG4gICAgICAgICAqIEB0eXBlIHtXZWJHTFRleHR1cmV9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubWFza1RleHR1cmUgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdGV4dHVyZSB1c2VkIGZvciB0aGUgbWFpbiBmcmFtZWJ1ZmZlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5Lk1hc2tzLkJpdG1hcE1hc2sjbWFpblRleHR1cmVcclxuICAgICAgICAgKiBAdHlwZSB7V2ViR0xUZXh0dXJlfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1haW5UZXh0dXJlID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogV2hldGhlciB0aGUgQml0bWFwIE1hc2sgaXMgZGlydHkgYW5kIG5lZWRzIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5NYXNrcy5CaXRtYXBNYXNrI2RpcnR5XHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZnJhbWVidWZmZXIgdG8gd2hpY2ggYSBtYXNrZWQgR2FtZSBPYmplY3QgaXMgcmVuZGVyZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5NYXNrcy5CaXRtYXBNYXNrI21haW5GcmFtZWJ1ZmZlclxyXG4gICAgICAgICAqIEB0eXBlIHtXZWJHTEZyYW1lYnVmZmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubWFpbkZyYW1lYnVmZmVyID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGZyYW1lYnVmZmVyIHRvIHdoaWNoIHRoZSBCaXRtYXAgTWFzaydzIG1hc2tpbmcgR2FtZSBPYmplY3QgaXMgcmVuZGVyZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5NYXNrcy5CaXRtYXBNYXNrI21hc2tGcmFtZWJ1ZmZlclxyXG4gICAgICAgICAqIEB0eXBlIHtXZWJHTEZyYW1lYnVmZmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubWFza0ZyYW1lYnVmZmVyID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHByZXZpb3VzIGZyYW1lYnVmZmVyIHNldCBpbiB0aGUgcmVuZGVyZXIgYmVmb3JlIHRoaXMgb25lIHdhcyBlbmFibGVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuTWFza3MuQml0bWFwTWFzayNwcmV2RnJhbWVidWZmZXJcclxuICAgICAgICAgKiBAdHlwZSB7V2ViR0xGcmFtZWJ1ZmZlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wcmV2RnJhbWVidWZmZXIgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXaGV0aGVyIHRvIGludmVydCB0aGUgbWFza3MgYWxwaGEuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBJZiBgdHJ1ZWAsIHRoZSBhbHBoYSBvZiB0aGUgbWFza2luZyBwaXhlbCB3aWxsIGJlIGludmVydGVkIGJlZm9yZSBpdCdzIG11bHRpcGxpZWQgd2l0aCB0aGUgbWFza2VkIHBpeGVsLiBFc3NlbnRpYWxseSwgdGhpcyBtZWFucyB0aGF0IGEgbWFza2VkIGFyZWEgd2lsbCBiZSB2aXNpYmxlIG9ubHkgaWYgdGhlIGNvcnJlc3BvbmRpbmcgYXJlYSBpbiB0aGUgbWFzayBpcyBpbnZpc2libGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5NYXNrcy5CaXRtYXBNYXNrI2ludmVydEFscGhhXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMS4yXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pbnZlcnRBbHBoYSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJcyB0aGlzIG1hc2sgYSBzdGVuY2lsIG1hc2s/XHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5NYXNrcy5CaXRtYXBNYXNrI2lzU3RlbmNpbFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlzU3RlbmNpbCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVyZXIuZ2wpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgd2lkdGggPSByZW5kZXJlci53aWR0aDtcclxuICAgICAgICAgICAgdmFyIGhlaWdodCA9IHJlbmRlcmVyLmhlaWdodDtcclxuICAgICAgICAgICAgdmFyIHBvdCA9ICgod2lkdGggJiAod2lkdGggLSAxKSkgPT09IDAgJiYgKGhlaWdodCAmIChoZWlnaHQgLSAxKSkgPT09IDApO1xyXG4gICAgICAgICAgICB2YXIgZ2wgPSByZW5kZXJlci5nbDtcclxuICAgICAgICAgICAgdmFyIHdyYXAgPSBwb3QgPyBnbC5SRVBFQVQgOiBnbC5DTEFNUF9UT19FREdFO1xyXG4gICAgICAgICAgICB2YXIgZmlsdGVyID0gZ2wuTElORUFSO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5tYWluVGV4dHVyZSA9IHJlbmRlcmVyLmNyZWF0ZVRleHR1cmUyRCgwLCBmaWx0ZXIsIGZpbHRlciwgd3JhcCwgd3JhcCwgZ2wuUkdCQSwgbnVsbCwgd2lkdGgsIGhlaWdodCk7XHJcbiAgICAgICAgICAgIHRoaXMubWFza1RleHR1cmUgPSByZW5kZXJlci5jcmVhdGVUZXh0dXJlMkQoMCwgZmlsdGVyLCBmaWx0ZXIsIHdyYXAsIHdyYXAsIGdsLlJHQkEsIG51bGwsIHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgICAgICAgICB0aGlzLm1haW5GcmFtZWJ1ZmZlciA9IHJlbmRlcmVyLmNyZWF0ZUZyYW1lYnVmZmVyKHdpZHRoLCBoZWlnaHQsIHRoaXMubWFpblRleHR1cmUsIHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLm1hc2tGcmFtZWJ1ZmZlciA9IHJlbmRlcmVyLmNyZWF0ZUZyYW1lYnVmZmVyKHdpZHRoLCBoZWlnaHQsIHRoaXMubWFza1RleHR1cmUsIHRydWUpO1xyXG5cclxuICAgICAgICAgICAgc2NlbmUuc3lzLmdhbWUuZXZlbnRzLm9uKEdhbWVFdmVudHMuQ09OVEVYVF9SRVNUT1JFRCwgZnVuY3Rpb24gKHJlbmRlcmVyKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YXIgd2lkdGggPSByZW5kZXJlci53aWR0aDtcclxuICAgICAgICAgICAgICAgIHZhciBoZWlnaHQgPSByZW5kZXJlci5oZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB2YXIgcG90ID0gKCh3aWR0aCAmICh3aWR0aCAtIDEpKSA9PT0gMCAmJiAoaGVpZ2h0ICYgKGhlaWdodCAtIDEpKSA9PT0gMCk7XHJcbiAgICAgICAgICAgICAgICB2YXIgZ2wgPSByZW5kZXJlci5nbDtcclxuICAgICAgICAgICAgICAgIHZhciB3cmFwID0gcG90ID8gZ2wuUkVQRUFUIDogZ2wuQ0xBTVBfVE9fRURHRTtcclxuICAgICAgICAgICAgICAgIHZhciBmaWx0ZXIgPSBnbC5MSU5FQVI7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYWluVGV4dHVyZSA9IHJlbmRlcmVyLmNyZWF0ZVRleHR1cmUyRCgwLCBmaWx0ZXIsIGZpbHRlciwgd3JhcCwgd3JhcCwgZ2wuUkdCQSwgbnVsbCwgd2lkdGgsIGhlaWdodCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hc2tUZXh0dXJlID0gcmVuZGVyZXIuY3JlYXRlVGV4dHVyZTJEKDAsIGZpbHRlciwgZmlsdGVyLCB3cmFwLCB3cmFwLCBnbC5SR0JBLCBudWxsLCB3aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFpbkZyYW1lYnVmZmVyID0gcmVuZGVyZXIuY3JlYXRlRnJhbWVidWZmZXIod2lkdGgsIGhlaWdodCwgdGhpcy5tYWluVGV4dHVyZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hc2tGcmFtZWJ1ZmZlciA9IHJlbmRlcmVyLmNyZWF0ZUZyYW1lYnVmZmVyKHdpZHRoLCBoZWlnaHQsIHRoaXMubWFza1RleHR1cmUsIHRydWUpO1xyXG5cclxuICAgICAgICAgICAgfSwgdGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgYSBuZXcgbWFza2luZyBHYW1lIE9iamVjdCBmb3IgdGhlIEJpdG1hcCBNYXNrLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRpc3BsYXkuTWFza3MuQml0bWFwTWFzayNzZXRCaXRtYXBcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IHJlbmRlcmFibGUgLSBBIHJlbmRlcmFibGUgR2FtZSBPYmplY3QgdGhhdCB1c2VzIGEgdGV4dHVyZSwgc3VjaCBhcyBhIFNwcml0ZS5cclxuICAgICAqL1xyXG4gICAgc2V0Qml0bWFwOiBmdW5jdGlvbiAocmVuZGVyYWJsZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmJpdG1hcE1hc2sgPSByZW5kZXJhYmxlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByZXBhcmVzIHRoZSBXZWJHTCBSZW5kZXJlciB0byByZW5kZXIgYSBHYW1lIE9iamVjdCB3aXRoIHRoaXMgbWFzayBhcHBsaWVkLlxyXG4gICAgICpcclxuICAgICAqIFRoaXMgcmVuZGVycyB0aGUgbWFza2luZyBHYW1lIE9iamVjdCB0byB0aGUgbWFzayBmcmFtZWJ1ZmZlciBhbmQgc3dpdGNoZXMgdG8gdGhlIG1haW4gZnJhbWVidWZmZXIgc28gdGhhdCB0aGUgbWFza2VkIEdhbWUgT2JqZWN0IHdpbGwgYmUgcmVuZGVyZWQgdG8gaXQgaW5zdGVhZCBvZiBiZWluZyByZW5kZXJlZCBkaXJlY3RseSB0byB0aGUgZnJhbWUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGlzcGxheS5NYXNrcy5CaXRtYXBNYXNrI3ByZVJlbmRlcldlYkdMXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfFBoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyKX0gcmVuZGVyZXIgLSBUaGUgV2ViR0wgUmVuZGVyZXIgdG8gcHJlcGFyZS5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IG1hc2tlZE9iamVjdCAtIFRoZSBtYXNrZWQgR2FtZSBPYmplY3Qgd2hpY2ggd2lsbCBiZSBkcmF3bi5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdG8gcmVuZGVyIHRvLlxyXG4gICAgICovXHJcbiAgICBwcmVSZW5kZXJXZWJHTDogZnVuY3Rpb24gKHJlbmRlcmVyLCBtYXNrZWRPYmplY3QsIGNhbWVyYSlcclxuICAgIHtcclxuICAgICAgICByZW5kZXJlci5waXBlbGluZXMuQml0bWFwTWFza1BpcGVsaW5lLmJlZ2luTWFzayh0aGlzLCBtYXNrZWRPYmplY3QsIGNhbWVyYSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmluYWxpemVzIHJlbmRlcmluZyBvZiBhIG1hc2tlZCBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBUaGlzIHJlc2V0cyB0aGUgcHJldmlvdXNseSBib3VuZCBmcmFtZWJ1ZmZlciBhbmQgc3dpdGNoZXMgdGhlIFdlYkdMIFJlbmRlcmVyIHRvIHRoZSBCaXRtYXAgTWFzayBQaXBlbGluZSwgd2hpY2ggdXNlcyBhIHNwZWNpYWwgZnJhZ21lbnQgc2hhZGVyIHRvIGFwcGx5IHRoZSBtYXNraW5nIGVmZmVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EaXNwbGF5Lk1hc2tzLkJpdG1hcE1hc2sjcG9zdFJlbmRlcldlYkdMXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfFBoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyKX0gcmVuZGVyZXIgLSBUaGUgV2ViR0wgUmVuZGVyZXIgdG8gY2xlYW4gdXAuXHJcbiAgICAgKi9cclxuICAgIHBvc3RSZW5kZXJXZWJHTDogZnVuY3Rpb24gKHJlbmRlcmVyLCBjYW1lcmEpXHJcbiAgICB7XHJcbiAgICAgICAgcmVuZGVyZXIucGlwZWxpbmVzLkJpdG1hcE1hc2tQaXBlbGluZS5lbmRNYXNrKHRoaXMsIGNhbWVyYSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBpcyBhIE5PT1AgbWV0aG9kLiBCaXRtYXAgTWFza3MgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIENhbnZhcyBSZW5kZXJlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EaXNwbGF5Lk1hc2tzLkJpdG1hcE1hc2sjcHJlUmVuZGVyQ2FudmFzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfFBoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyKX0gcmVuZGVyZXIgLSBUaGUgQ2FudmFzIFJlbmRlcmVyIHdoaWNoIHdvdWxkIGJlIHJlbmRlcmVkIHRvLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gbWFzayAtIFRoZSBtYXNrZWQgR2FtZSBPYmplY3Qgd2hpY2ggd291bGQgYmUgcmVuZGVyZWQuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRvIHJlbmRlciB0by5cclxuICAgICAqL1xyXG4gICAgcHJlUmVuZGVyQ2FudmFzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIC8vIE5PT1BcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGlzIGEgTk9PUCBtZXRob2QuIEJpdG1hcCBNYXNrcyBhcmUgbm90IHN1cHBvcnRlZCBieSB0aGUgQ2FudmFzIFJlbmRlcmVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRpc3BsYXkuTWFza3MuQml0bWFwTWFzayNwb3N0UmVuZGVyQ2FudmFzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfFBoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyKX0gcmVuZGVyZXIgLSBUaGUgQ2FudmFzIFJlbmRlcmVyIHdoaWNoIHdvdWxkIGJlIHJlbmRlcmVkIHRvLlxyXG4gICAgICovXHJcbiAgICBwb3N0UmVuZGVyQ2FudmFzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIC8vIE5PT1BcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXN0cm95cyB0aGlzIEJpdG1hcE1hc2sgYW5kIG51bGxzIGFueSByZWZlcmVuY2VzIGl0IGhvbGRzLlxyXG4gICAgICogXHJcbiAgICAgKiBOb3RlIHRoYXQgaWYgYSBHYW1lIE9iamVjdCBpcyBjdXJyZW50bHkgdXNpbmcgdGhpcyBtYXNrIGl0IHdpbGwgX25vdF8gYXV0b21hdGljYWxseSBkZXRlY3QgeW91IGhhdmUgZGVzdHJveWVkIGl0LFxyXG4gICAgICogc28gYmUgc3VyZSB0byBjYWxsIGBjbGVhck1hc2tgIG9uIGFueSBHYW1lIE9iamVjdCB1c2luZyBpdCwgYmVmb3JlIGRlc3Ryb3lpbmcgaXQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGlzcGxheS5NYXNrcy5CaXRtYXBNYXNrI2Rlc3Ryb3lcclxuICAgICAqIEBzaW5jZSAzLjcuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuYml0bWFwTWFzayA9IG51bGw7XHJcblxyXG4gICAgICAgIHZhciByZW5kZXJlciA9IHRoaXMucmVuZGVyZXI7XHJcblxyXG4gICAgICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci5nbClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJlbmRlcmVyLmRlbGV0ZVRleHR1cmUodGhpcy5tYWluVGV4dHVyZSk7XHJcbiAgICAgICAgICAgIHJlbmRlcmVyLmRlbGV0ZVRleHR1cmUodGhpcy5tYXNrVGV4dHVyZSk7XHJcbiAgICAgICAgICAgIHJlbmRlcmVyLmRlbGV0ZUZyYW1lYnVmZmVyKHRoaXMubWFpbkZyYW1lYnVmZmVyKTtcclxuICAgICAgICAgICAgcmVuZGVyZXIuZGVsZXRlRnJhbWVidWZmZXIodGhpcy5tYXNrRnJhbWVidWZmZXIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5tYWluVGV4dHVyZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5tYXNrVGV4dHVyZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5tYWluRnJhbWVidWZmZXIgPSBudWxsO1xyXG4gICAgICAgIHRoaXMubWFza0ZyYW1lYnVmZmVyID0gbnVsbDtcclxuICAgICAgICB0aGlzLnByZXZGcmFtZWJ1ZmZlciA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IG51bGw7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQml0bWFwTWFzaztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi91dGlscy9DbGFzcycpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBHZW9tZXRyeSBNYXNrIGNhbiBiZSBhcHBsaWVkIHRvIGEgR2FtZSBPYmplY3QgdG8gaGlkZSBhbnkgcGl4ZWxzIG9mIGl0IHdoaWNoIGRvbid0IGludGVyc2VjdFxyXG4gKiBhIHZpc2libGUgcGl4ZWwgZnJvbSB0aGUgZ2VvbWV0cnkgbWFzay4gVGhlIG1hc2sgaXMgZXNzZW50aWFsbHkgYSBjbGlwcGluZyBwYXRoIHdoaWNoIGNhbiBvbmx5XHJcbiAqIG1ha2UgYSBtYXNrZWQgcGl4ZWwgZnVsbHkgdmlzaWJsZSBvciBmdWxseSBpbnZpc2libGUgd2l0aG91dCBjaGFuZ2luZyBpdHMgYWxwaGEgKG9wYWNpdHkpLlxyXG4gKlxyXG4gKiBBIEdlb21ldHJ5IE1hc2sgdXNlcyBhIEdyYXBoaWNzIEdhbWUgT2JqZWN0IHRvIGRldGVybWluZSB3aGljaCBwaXhlbHMgb2YgdGhlIG1hc2tlZCBHYW1lIE9iamVjdChzKVxyXG4gKiBzaG91bGQgYmUgY2xpcHBlZC4gRm9yIGFueSBnaXZlbiBwb2ludCBvZiBhIG1hc2tlZCBHYW1lIE9iamVjdCdzIHRleHR1cmUsIHRoZSBwaXhlbCB3aWxsIG9ubHkgYmUgZGlzcGxheWVkXHJcbiAqIGlmIHRoZSBHcmFwaGljcyBHYW1lIE9iamVjdCBvZiB0aGUgR2VvbWV0cnkgTWFzayBoYXMgYSB2aXNpYmxlIHBpeGVsIGF0IHRoZSBzYW1lIHBvc2l0aW9uLiBUaGUgY29sb3IgYW5kXHJcbiAqIGFscGhhIG9mIHRoZSBwaXhlbCBmcm9tIHRoZSBHZW9tZXRyeSBNYXNrIGRvIG5vdCBtYXR0ZXIuXHJcbiAqXHJcbiAqIFRoZSBHZW9tZXRyeSBNYXNrJ3MgbG9jYXRpb24gbWF0Y2hlcyB0aGUgbG9jYXRpb24gb2YgaXRzIEdyYXBoaWNzIG9iamVjdCwgbm90IHRoZSBsb2NhdGlvbiBvZiB0aGUgbWFza2VkIG9iamVjdHMuXHJcbiAqIE1vdmluZyBvciB0cmFuc2Zvcm1pbmcgdGhlIHVuZGVybHlpbmcgR3JhcGhpY3Mgb2JqZWN0IHdpbGwgY2hhbmdlIHRoZSBtYXNrIChhbmQgYWZmZWN0IHRoZSB2aXNpYmlsaXR5XHJcbiAqIG9mIGFueSBtYXNrZWQgb2JqZWN0cyksIHdoZXJlYXMgbW92aW5nIG9yIHRyYW5zZm9ybWluZyBhIG1hc2tlZCBvYmplY3Qgd2lsbCBub3QgYWZmZWN0IHRoZSBtYXNrLlxyXG4gKiBZb3UgY2FuIHRoaW5rIG9mIHRoZSBHZW9tZXRyeSBNYXNrIChvciByYXRoZXIsIG9mIGl0cyBHcmFwaGljcyBvYmplY3QpIGFzIGFuIGludmlzaWJsZSBjdXJ0YWluIHBsYWNlZFxyXG4gKiBpbiBmcm9udCBvZiBhbGwgbWFza2VkIG9iamVjdHMgd2hpY2ggaGFzIGl0cyBvd24gdmlzdWFsIHByb3BlcnRpZXMgYW5kLCBuYXR1cmFsbHksIHJlc3BlY3RzIHRoZSBjYW1lcmEnc1xyXG4gKiB2aXN1YWwgcHJvcGVydGllcywgYnV0IGlzbid0IGFmZmVjdGVkIGJ5IGFuZCBkb2Vzbid0IGZvbGxvdyB0aGUgbWFza2VkIG9iamVjdHMgYnkgaXRzZWxmLlxyXG4gKlxyXG4gKiBAY2xhc3MgR2VvbWV0cnlNYXNrXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuRGlzcGxheS5NYXNrc1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoaXMgcGFyYW1ldGVyIGlzIG5vdCB1c2VkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljc30gZ3JhcGhpY3NHZW9tZXRyeSAtIFRoZSBHcmFwaGljcyBHYW1lIE9iamVjdCB0byB1c2UgZm9yIHRoZSBHZW9tZXRyeSBNYXNrLiBEb2Vzbid0IGhhdmUgdG8gYmUgaW4gdGhlIERpc3BsYXkgTGlzdC5cclxuICovXHJcbnZhciBHZW9tZXRyeU1hc2sgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gR2VvbWV0cnlNYXNrIChzY2VuZSwgZ3JhcGhpY3NHZW9tZXRyeSlcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgR3JhcGhpY3Mgb2JqZWN0IHdoaWNoIGRlc2NyaWJlcyB0aGUgR2VvbWV0cnkgTWFzay5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5Lk1hc2tzLkdlb21ldHJ5TWFzayNnZW9tZXRyeU1hc2tcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZ2VvbWV0cnlNYXNrID0gZ3JhcGhpY3NHZW9tZXRyeTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogU2ltaWxhciB0byB0aGUgQml0bWFwTWFza3MgaW52ZXJ0QWxwaGEgc2V0dGluZyB0aGlzIHRvIHRydWUgd2lsbCB0aGVuIGhpZGUgYWxsIHBpeGVsc1xyXG4gICAgICAgICAqIGRyYXduIHRvIHRoZSBHZW9tZXRyeSBNYXNrLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuTWFza3MuR2VvbWV0cnlNYXNrI2ludmVydEFscGhhXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTYuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaW52ZXJ0QWxwaGEgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSXMgdGhpcyBtYXNrIGEgc3RlbmNpbCBtYXNrP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuTWFza3MuR2VvbWV0cnlNYXNrI2lzU3RlbmNpbFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlzU3RlbmNpbCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjdXJyZW50IHN0ZW5jaWwgbGV2ZWwuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRGlzcGxheS5NYXNrcy5HZW9tZXRyeU1hc2sjbGV2ZWxcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmxldmVsID0gMDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGEgbmV3IEdyYXBoaWNzIG9iamVjdCBmb3IgdGhlIEdlb21ldHJ5IE1hc2suXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGlzcGxheS5NYXNrcy5HZW9tZXRyeU1hc2sjc2V0U2hhcGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzfSBncmFwaGljc0dlb21ldHJ5IC0gVGhlIEdyYXBoaWNzIG9iamVjdCB3aGljaCB3aWxsIGJlIHVzZWQgZm9yIHRoZSBHZW9tZXRyeSBNYXNrLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdlb21ldHJ5IE1hc2tcclxuICAgICAqL1xyXG4gICAgc2V0U2hhcGU6IGZ1bmN0aW9uIChncmFwaGljc0dlb21ldHJ5KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZ2VvbWV0cnlNYXNrID0gZ3JhcGhpY3NHZW9tZXRyeTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgYGludmVydEFscGhhYCBwcm9wZXJ0eSBvZiB0aGlzIEdlb21ldHJ5IE1hc2suXHJcbiAgICAgKiBJbnZlcnRpbmcgdGhlIGFscGhhIGVzc2VudGlhbGx5IGZsaXBzIHRoZSB3YXkgdGhlIG1hc2sgd29ya3MuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGlzcGxheS5NYXNrcy5HZW9tZXRyeU1hc2sjc2V0SW52ZXJ0QWxwaGFcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt2YWx1ZT10cnVlXSAtIEludmVydCB0aGUgYWxwaGEgb2YgdGhpcyBtYXNrP1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdlb21ldHJ5IE1hc2tcclxuICAgICAqL1xyXG4gICAgc2V0SW52ZXJ0QWxwaGE6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgeyB2YWx1ZSA9IHRydWU7IH1cclxuXHJcbiAgICAgICAgdGhpcy5pbnZlcnRBbHBoYSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW5kZXJzIHRoZSBHZW9tZXRyeSBNYXNrJ3MgdW5kZXJseWluZyBHcmFwaGljcyBvYmplY3QgdG8gdGhlIE9wZW5HTCBzdGVuY2lsIGJ1ZmZlciBhbmQgZW5hYmxlcyB0aGUgc3RlbmNpbCB0ZXN0LCB3aGljaCBjbGlwcyByZW5kZXJlZCBwaXhlbHMgYWNjb3JkaW5nIHRvIHRoZSBtYXNrLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRpc3BsYXkuTWFza3MuR2VvbWV0cnlNYXNrI3ByZVJlbmRlcldlYkdMXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyfSByZW5kZXJlciAtIFRoZSBXZWJHTCBSZW5kZXJlciBpbnN0YW5jZSB0byBkcmF3IHRvLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gY2hpbGQgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIHRoZSBHYW1lIE9iamVjdCBpcyBiZWluZyByZW5kZXJlZCB0aHJvdWdoLlxyXG4gICAgICovXHJcbiAgICBwcmVSZW5kZXJXZWJHTDogZnVuY3Rpb24gKHJlbmRlcmVyLCBjaGlsZCwgY2FtZXJhKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBnbCA9IHJlbmRlcmVyLmdsO1xyXG5cclxuICAgICAgICAvLyAgRm9yY2UgZmx1c2hpbmcgYmVmb3JlIGRyYXdpbmcgdG8gc3RlbmNpbCBidWZmZXJcclxuICAgICAgICByZW5kZXJlci5mbHVzaCgpO1xyXG5cclxuICAgICAgICBpZiAocmVuZGVyZXIubWFza1N0YWNrLmxlbmd0aCA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGdsLmVuYWJsZShnbC5TVEVOQ0lMX1RFU1QpO1xyXG4gICAgICAgICAgICBnbC5jbGVhcihnbC5TVEVOQ0lMX0JVRkZFUl9CSVQpO1xyXG5cclxuICAgICAgICAgICAgcmVuZGVyZXIubWFza0NvdW50ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZW5kZXJlci5jdXJyZW50Q2FtZXJhTWFzay5tYXNrICE9PSB0aGlzKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmVuZGVyZXIuY3VycmVudE1hc2subWFzayA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZW5kZXJlci5tYXNrU3RhY2sucHVzaCh7IG1hc2s6IHRoaXMsIGNhbWVyYTogY2FtZXJhIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmFwcGx5U3RlbmNpbChyZW5kZXJlciwgY2FtZXJhLCB0cnVlKTtcclxuXHJcbiAgICAgICAgcmVuZGVyZXIubWFza0NvdW50Kys7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXBwbGllcyB0aGUgY3VycmVudCBzdGVuY2lsIG1hc2sgdG8gdGhlIHJlbmRlcmVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRpc3BsYXkuTWFza3MuR2VvbWV0cnlNYXNrI2FwcGx5U3RlbmNpbFxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLldlYkdMLldlYkdMUmVuZGVyZXJ9IHJlbmRlcmVyIC0gVGhlIFdlYkdMIFJlbmRlcmVyIGluc3RhbmNlIHRvIGRyYXcgdG8uXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIHRoZSBHYW1lIE9iamVjdCBpcyBiZWluZyByZW5kZXJlZCB0aHJvdWdoLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBpbmMgLSBJcyB0aGlzIGFuIElOQ1Igc3RlbmNpbCBvciBhIERFQ1Igc3RlbmNpbD9cclxuICAgICAqL1xyXG4gICAgYXBwbHlTdGVuY2lsOiBmdW5jdGlvbiAocmVuZGVyZXIsIGNhbWVyYSwgaW5jKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBnbCA9IHJlbmRlcmVyLmdsO1xyXG4gICAgICAgIHZhciBnZW9tZXRyeU1hc2sgPSB0aGlzLmdlb21ldHJ5TWFzaztcclxuICAgICAgICB2YXIgbGV2ZWwgPSByZW5kZXJlci5tYXNrQ291bnQ7XHJcblxyXG4gICAgICAgIGdsLmNvbG9yTWFzayhmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIGlmIChpbmMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBnbC5zdGVuY2lsRnVuYyhnbC5FUVVBTCwgbGV2ZWwsIDB4RkYpO1xyXG4gICAgICAgICAgICBnbC5zdGVuY2lsT3AoZ2wuS0VFUCwgZ2wuS0VFUCwgZ2wuSU5DUik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGdsLnN0ZW5jaWxGdW5jKGdsLkVRVUFMLCBsZXZlbCArIDEsIDB4RkYpO1xyXG4gICAgICAgICAgICBnbC5zdGVuY2lsT3AoZ2wuS0VFUCwgZ2wuS0VFUCwgZ2wuREVDUik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgV3JpdGUgc3RlbmNpbCBidWZmZXJcclxuICAgICAgICBnZW9tZXRyeU1hc2sucmVuZGVyV2ViR0wocmVuZGVyZXIsIGdlb21ldHJ5TWFzaywgMCwgY2FtZXJhKTtcclxuXHJcbiAgICAgICAgcmVuZGVyZXIuZmx1c2goKTtcclxuXHJcbiAgICAgICAgZ2wuY29sb3JNYXNrKHRydWUsIHRydWUsIHRydWUsIHRydWUpO1xyXG4gICAgICAgIGdsLnN0ZW5jaWxPcChnbC5LRUVQLCBnbC5LRUVQLCBnbC5LRUVQKTtcclxuXHJcbiAgICAgICAgaWYgKGluYylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmludmVydEFscGhhKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBnbC5zdGVuY2lsRnVuYyhnbC5OT1RFUVVBTCwgbGV2ZWwgKyAxLCAweEZGKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGdsLnN0ZW5jaWxGdW5jKGdsLkVRVUFMLCBsZXZlbCArIDEsIDB4RkYpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuaW52ZXJ0QWxwaGEpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBnbC5zdGVuY2lsRnVuYyhnbC5OT1RFUVVBTCwgbGV2ZWwsIDB4RkYpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBnbC5zdGVuY2lsRnVuYyhnbC5FUVVBTCwgbGV2ZWwsIDB4RkYpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbHVzaGVzIGFsbCByZW5kZXJlZCBwaXhlbHMgYW5kIGRpc2FibGVzIHRoZSBzdGVuY2lsIHRlc3Qgb2YgYSBXZWJHTCBjb250ZXh0LCB0aHVzIGRpc2FibGluZyB0aGUgbWFzayBmb3IgaXQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGlzcGxheS5NYXNrcy5HZW9tZXRyeU1hc2sjcG9zdFJlbmRlcldlYkdMXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyfSByZW5kZXJlciAtIFRoZSBXZWJHTCBSZW5kZXJlciBpbnN0YW5jZSB0byBkcmF3IGZsdXNoLlxyXG4gICAgICovXHJcbiAgICBwb3N0UmVuZGVyV2ViR0w6IGZ1bmN0aW9uIChyZW5kZXJlcilcclxuICAgIHtcclxuICAgICAgICB2YXIgZ2wgPSByZW5kZXJlci5nbDtcclxuXHJcbiAgICAgICAgcmVuZGVyZXIubWFza1N0YWNrLnBvcCgpO1xyXG5cclxuICAgICAgICByZW5kZXJlci5tYXNrQ291bnQtLTtcclxuXHJcbiAgICAgICAgaWYgKHJlbmRlcmVyLm1hc2tTdGFjay5sZW5ndGggPT09IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgSWYgdGhpcyBpcyB0aGUgb25seSBtYXNrIGluIHRoZSBzdGFjaywgZmx1c2ggYW5kIGRpc2FibGVcclxuICAgICAgICAgICAgcmVuZGVyZXIuZmx1c2goKTtcclxuXHJcbiAgICAgICAgICAgIHJlbmRlcmVyLmN1cnJlbnRNYXNrLm1hc2sgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgZ2wuZGlzYWJsZShnbC5TVEVOQ0lMX1RFU1QpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgRm9yY2UgZmx1c2ggYmVmb3JlIGRpc2FibGluZyBzdGVuY2lsIHRlc3RcclxuICAgICAgICAgICAgcmVuZGVyZXIuZmx1c2goKTtcclxuXHJcbiAgICAgICAgICAgIHZhciBwcmV2ID0gcmVuZGVyZXIubWFza1N0YWNrW3JlbmRlcmVyLm1hc2tTdGFjay5sZW5ndGggLSAxXTtcclxuXHJcbiAgICAgICAgICAgIHByZXYubWFzay5hcHBseVN0ZW5jaWwocmVuZGVyZXIsIHByZXYuY2FtZXJhLCBmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAocmVuZGVyZXIuY3VycmVudENhbWVyYU1hc2subWFzayAhPT0gcHJldi5tYXNrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZW5kZXJlci5jdXJyZW50TWFzay5tYXNrID0gcHJldi5tYXNrO1xyXG4gICAgICAgICAgICAgICAgcmVuZGVyZXIuY3VycmVudE1hc2suY2FtZXJhID0gcHJldi5jYW1lcmE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZW5kZXJlci5jdXJyZW50TWFzay5tYXNrID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBjbGlwcGluZyBwYXRoIG9mIGEgMkQgY2FudmFzIGNvbnRleHQgdG8gdGhlIEdlb21ldHJ5IE1hc2sncyB1bmRlcmx5aW5nIEdyYXBoaWNzIG9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5EaXNwbGF5Lk1hc2tzLkdlb21ldHJ5TWFzayNwcmVSZW5kZXJDYW52YXNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLkNhbnZhcy5DYW52YXNSZW5kZXJlcn0gcmVuZGVyZXIgLSBUaGUgQ2FudmFzIFJlbmRlcmVyIGluc3RhbmNlIHRvIHNldCB0aGUgY2xpcHBpbmcgcGF0aCBvbi5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IG1hc2sgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgY2FtZXJhIHRoZSBHYW1lIE9iamVjdCBpcyBiZWluZyByZW5kZXJlZCB0aHJvdWdoLlxyXG4gICAgICovXHJcbiAgICBwcmVSZW5kZXJDYW52YXM6IGZ1bmN0aW9uIChyZW5kZXJlciwgbWFzaywgY2FtZXJhKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBnZW9tZXRyeU1hc2sgPSB0aGlzLmdlb21ldHJ5TWFzaztcclxuXHJcbiAgICAgICAgcmVuZGVyZXIuY3VycmVudENvbnRleHQuc2F2ZSgpO1xyXG5cclxuICAgICAgICBnZW9tZXRyeU1hc2sucmVuZGVyQ2FudmFzKHJlbmRlcmVyLCBnZW9tZXRyeU1hc2ssIDAsIGNhbWVyYSwgbnVsbCwgbnVsbCwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIHJlbmRlcmVyLmN1cnJlbnRDb250ZXh0LmNsaXAoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXN0b3JlIHRoZSBjYW52YXMgY29udGV4dCdzIHByZXZpb3VzIGNsaXBwaW5nIHBhdGgsIHRodXMgdHVybmluZyBvZmYgdGhlIG1hc2sgZm9yIGl0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRpc3BsYXkuTWFza3MuR2VvbWV0cnlNYXNrI3Bvc3RSZW5kZXJDYW52YXNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLkNhbnZhcy5DYW52YXNSZW5kZXJlcn0gcmVuZGVyZXIgLSBUaGUgQ2FudmFzIFJlbmRlcmVyIGluc3RhbmNlIGJlaW5nIHJlc3RvcmVkLlxyXG4gICAgICovXHJcbiAgICBwb3N0UmVuZGVyQ2FudmFzOiBmdW5jdGlvbiAocmVuZGVyZXIpXHJcbiAgICB7XHJcbiAgICAgICAgcmVuZGVyZXIuY3VycmVudENvbnRleHQucmVzdG9yZSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc3Ryb3lzIHRoaXMgR2VvbWV0cnlNYXNrIGFuZCBudWxscyBhbnkgcmVmZXJlbmNlcyBpdCBob2xkcy5cclxuICAgICAqXHJcbiAgICAgKiBOb3RlIHRoYXQgaWYgYSBHYW1lIE9iamVjdCBpcyBjdXJyZW50bHkgdXNpbmcgdGhpcyBtYXNrIGl0IHdpbGwgX25vdF8gYXV0b21hdGljYWxseSBkZXRlY3QgeW91IGhhdmUgZGVzdHJveWVkIGl0LFxyXG4gICAgICogc28gYmUgc3VyZSB0byBjYWxsIGBjbGVhck1hc2tgIG9uIGFueSBHYW1lIE9iamVjdCB1c2luZyBpdCwgYmVmb3JlIGRlc3Ryb3lpbmcgaXQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRGlzcGxheS5NYXNrcy5HZW9tZXRyeU1hc2sjZGVzdHJveVxyXG4gICAgICogQHNpbmNlIDMuNy4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5nZW9tZXRyeU1hc2sgPSBudWxsO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEdlb21ldHJ5TWFzaztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuRGlzcGxheS5NYXNrc1xyXG4gKi9cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIEJpdG1hcE1hc2s6IHJlcXVpcmUoJy4vQml0bWFwTWFzaycpLFxyXG4gICAgR2VvbWV0cnlNYXNrOiByZXF1aXJlKCcuL0dlb21ldHJ5TWFzaycpXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIEJhc2VTaGFkZXIgaXMgYSBzbWFsbCByZXNvdXJjZSBjbGFzcyB0aGF0IGNvbnRhaW5zIHRoZSBkYXRhIHJlcXVpcmVkIGZvciBhIFdlYkdMIFNoYWRlciB0byBiZSBjcmVhdGVkLlxyXG4gKiBcclxuICogSXQgY29udGFpbnMgdGhlIHJhdyBzb3VyY2UgY29kZSB0byB0aGUgZnJhZ21lbnQgYW5kIHZlcnRleCBzaGFkZXIsIGFzIHdlbGwgYXMgYW4gb2JqZWN0IHRoYXQgZGVmaW5lc1xyXG4gKiB0aGUgdW5pZm9ybXMgdGhlIHNoYWRlciByZXF1aXJlcywgaWYgYW55LlxyXG4gKiBcclxuICogQmFzZVNoYWRlcnMgYXJlIHN0b3JlZCBpbiB0aGUgU2hhZGVyIENhY2hlLCBhdmFpbGFibGUgaW4gYSBTY2VuZSB2aWEgYHRoaXMuY2FjaGUuc2hhZGVyc2AgYW5kIGFyZSByZWZlcmVuY2VkXHJcbiAqIGJ5IGEgdW5pcXVlIGtleS1iYXNlZCBzdHJpbmcuIFJldHJpZXZlIHRoZW0gdmlhIGB0aGlzLmNhY2hlLnNoYWRlcnMuZ2V0KGtleSlgLlxyXG4gKiBcclxuICogQmFzZVNoYWRlcnMgYXJlIGNyZWF0ZWQgYXV0b21hdGljYWxseSBieSB0aGUgR0xTTCBGaWxlIExvYWRlciB3aGVuIGxvYWRpbmcgYW4gZXh0ZXJuYWwgc2hhZGVyIHJlc291cmNlLlxyXG4gKiBUaGV5IGNhbiBhbHNvIGJlIGNyZWF0ZWQgYXQgcnVudGltZSwgYWxsb3dpbmcgeW91IHRvIHVzZSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgc2hhZGVyIHNvdXJjZSBjb2RlLlxyXG4gKiBcclxuICogRGVmYXVsdCBmcmFnbWVudCBhbmQgdmVydGV4IHNvdXJjZSBpcyB1c2VkIGlmIG5vdCBwcm92aWRlZCBpbiB0aGUgY29uc3RydWN0b3IsIHNldHRpbmctdXAgYSBiYXNpYyBzaGFkZXIsXHJcbiAqIHN1aXRhYmxlIGZvciBkZWJ1ZyByZW5kZXJpbmcuXHJcbiAqXHJcbiAqIEBjbGFzcyBCYXNlU2hhZGVyXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuRGlzcGxheVxyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMTcuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSBvZiB0aGlzIHNoYWRlci4gTXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBzaGFkZXIgY2FjaGUuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBbZnJhZ21lbnRTcmNdIC0gVGhlIGZyYWdtZW50IHNvdXJjZSBmb3IgdGhlIHNoYWRlci5cclxuICogQHBhcmFtIHtzdHJpbmd9IFt2ZXJ0ZXhTcmNdIC0gVGhlIHZlcnRleCBzb3VyY2UgZm9yIHRoZSBzaGFkZXIuXHJcbiAqIEBwYXJhbSB7YW55fSBbdW5pZm9ybXNdIC0gT3B0aW9uYWwgb2JqZWN0IGRlZmluaW5nIHRoZSB1bmlmb3JtcyB0aGUgc2hhZGVyIHVzZXMuXHJcbiAqL1xyXG52YXIgQmFzZVNoYWRlciA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBCYXNlU2hhZGVyIChrZXksIGZyYWdtZW50U3JjLCB2ZXJ0ZXhTcmMsIHVuaWZvcm1zKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghZnJhZ21lbnRTcmMgfHwgZnJhZ21lbnRTcmMgPT09ICcnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZnJhZ21lbnRTcmMgPSBbXHJcbiAgICAgICAgICAgICAgICAncHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7JyxcclxuXHJcbiAgICAgICAgICAgICAgICAndW5pZm9ybSB2ZWMyIHJlc29sdXRpb247JyxcclxuXHJcbiAgICAgICAgICAgICAgICAndmFyeWluZyB2ZWMyIGZyYWdDb29yZDsnLFxyXG5cclxuICAgICAgICAgICAgICAgICd2b2lkIG1haW4gKCkgeycsXHJcbiAgICAgICAgICAgICAgICAnICAgIHZlYzIgdXYgPSBmcmFnQ29vcmQgLyByZXNvbHV0aW9uLnh5OycsXHJcbiAgICAgICAgICAgICAgICAnICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQodXYueHl4LCAxLjApOycsXHJcbiAgICAgICAgICAgICAgICAnfSdcclxuICAgICAgICAgICAgXS5qb2luKCdcXG4nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdmVydGV4U3JjIHx8IHZlcnRleFNyYyA9PT0gJycpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2ZXJ0ZXhTcmMgPSBbXHJcbiAgICAgICAgICAgICAgICAncHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7JyxcclxuXHJcbiAgICAgICAgICAgICAgICAndW5pZm9ybSBtYXQ0IHVQcm9qZWN0aW9uTWF0cml4OycsXHJcbiAgICAgICAgICAgICAgICAndW5pZm9ybSBtYXQ0IHVWaWV3TWF0cml4OycsXHJcbiAgICAgICAgICAgICAgICAndW5pZm9ybSB2ZWMyIHVSZXNvbHV0aW9uOycsXHJcblxyXG4gICAgICAgICAgICAgICAgJ2F0dHJpYnV0ZSB2ZWMyIGluUG9zaXRpb247JyxcclxuXHJcbiAgICAgICAgICAgICAgICAndmFyeWluZyB2ZWMyIGZyYWdDb29yZDsnLFxyXG5cclxuICAgICAgICAgICAgICAgICd2b2lkIG1haW4gKCkgeycsXHJcbiAgICAgICAgICAgICAgICAnZ2xfUG9zaXRpb24gPSB1UHJvamVjdGlvbk1hdHJpeCAqIHVWaWV3TWF0cml4ICogdmVjNChpblBvc2l0aW9uLCAxLjAsIDEuMCk7JyxcclxuICAgICAgICAgICAgICAgICdmcmFnQ29vcmQgPSB2ZWMyKGluUG9zaXRpb24ueCwgdVJlc29sdXRpb24ueSAtIGluUG9zaXRpb24ueSk7JyxcclxuICAgICAgICAgICAgICAgICd9J1xyXG4gICAgICAgICAgICBdLmpvaW4oJ1xcbicpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHVuaWZvcm1zID09PSB1bmRlZmluZWQpIHsgdW5pZm9ybXMgPSBudWxsOyB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBrZXkgb2YgdGhpcyBzaGFkZXIsIHVuaXF1ZSB3aXRoaW4gdGhlIHNoYWRlciBjYWNoZSBvZiB0aGlzIFBoYXNlciBnYW1lIGluc3RhbmNlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQmFzZVNoYWRlciNrZXlcclxuICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmtleSA9IGtleTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHNvdXJjZSBjb2RlLCBhcyBhIHN0cmluZywgb2YgdGhlIGZyYWdtZW50IHNoYWRlciBiZWluZyB1c2VkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRpc3BsYXkuQmFzZVNoYWRlciNmcmFnbWVudFNyY1xyXG4gICAgICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZnJhZ21lbnRTcmMgPSBmcmFnbWVudFNyYztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHNvdXJjZSBjb2RlLCBhcyBhIHN0cmluZywgb2YgdGhlIHZlcnRleCBzaGFkZXIgYmVpbmcgdXNlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5LkJhc2VTaGFkZXIjdmVydGV4U3JjXHJcbiAgICAgICAgICogQHR5cGUge3N0cmluZ31cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy52ZXJ0ZXhTcmMgPSB2ZXJ0ZXhTcmM7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBkZWZhdWx0IHVuaWZvcm1zIGZvciB0aGlzIHNoYWRlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5EaXNwbGF5LkJhc2VTaGFkZXIjdW5pZm9ybXNcclxuICAgICAgICAgKiBAdHlwZSB7P2FueX1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy51bmlmb3JtcyA9IHVuaWZvcm1zO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEJhc2VTaGFkZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEFkZHMgdGhlIGdpdmVuIGVsZW1lbnQgdG8gdGhlIERPTS4gSWYgYSBwYXJlbnQgaXMgcHJvdmlkZWQgdGhlIGVsZW1lbnQgaXMgYWRkZWQgYXMgYSBjaGlsZCBvZiB0aGUgcGFyZW50LCBwcm92aWRpbmcgaXQgd2FzIGFibGUgdG8gYWNjZXNzIGl0LlxyXG4gKiBJZiBubyBwYXJlbnQgd2FzIGdpdmVuIGl0IGZhbGxzIGJhY2sgdG8gdXNpbmcgYGRvY3VtZW50LmJvZHlgLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRPTS5BZGRUb0RPTVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCAtIFRoZSBlbGVtZW50IHRvIGJlIGFkZGVkIHRvIHRoZSBET00uIFVzdWFsbHkgYSBDYW52YXMgb2JqZWN0LlxyXG4gKiBAcGFyYW0geyhzdHJpbmd8SFRNTEVsZW1lbnQpfSBbcGFyZW50XSAtIFRoZSBwYXJlbnQgaW4gd2hpY2ggdG8gYWRkIHRoZSBlbGVtZW50LiBDYW4gYmUgYSBzdHJpbmcgd2hpY2ggaXMgcGFzc2VkIHRvIGBnZXRFbGVtZW50QnlJZGAgb3IgYW4gYWN0dWFsIERPTSBvYmplY3QuXHJcbiAqXHJcbiAqIEByZXR1cm4ge0hUTUxFbGVtZW50fSBUaGUgZWxlbWVudCB0aGF0IHdhcyBhZGRlZCB0byB0aGUgRE9NLlxyXG4gKi9cclxudmFyIEFkZFRvRE9NID0gZnVuY3Rpb24gKGVsZW1lbnQsIHBhcmVudClcclxue1xyXG4gICAgdmFyIHRhcmdldDtcclxuXHJcbiAgICBpZiAocGFyZW50KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0eXBlb2YgcGFyZW50ID09PSAnc3RyaW5nJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBIb3BlZnVsbHkgYW4gZWxlbWVudCBJRFxyXG4gICAgICAgICAgICB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgcGFyZW50ID09PSAnb2JqZWN0JyAmJiBwYXJlbnQubm9kZVR5cGUgPT09IDEpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgUXVpY2sgdGVzdCBmb3IgYSBIVE1MRWxlbWVudFxyXG4gICAgICAgICAgICB0YXJnZXQgPSBwYXJlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZWxlbWVudC5wYXJlbnRFbGVtZW50KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBlbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBGYWxsYmFjaywgY292ZXJzIGFuIGludmFsaWQgSUQgYW5kIGEgbm9uIEhUTUxFbGVtZW50IG9iamVjdFxyXG4gICAgaWYgKCF0YXJnZXQpXHJcbiAgICB7XHJcbiAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQuYm9keTtcclxuICAgIH1cclxuXHJcbiAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XHJcblxyXG4gICAgcmV0dXJuIGVsZW1lbnQ7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEFkZFRvRE9NO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBBZGRUb0RPTSA9IHJlcXVpcmUoJy4uL2RvbS9BZGRUb0RPTScpO1xyXG5cclxudmFyIENyZWF0ZURPTUNvbnRhaW5lciA9IGZ1bmN0aW9uIChnYW1lKVxyXG57XHJcbiAgICB2YXIgY29uZmlnID0gZ2FtZS5jb25maWc7XHJcblxyXG4gICAgaWYgKCFjb25maWcucGFyZW50IHx8ICFjb25maWcuZG9tQ3JlYXRlQ29udGFpbmVyKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgRE9NIEVsZW1lbnQgQ29udGFpbmVyXHJcbiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblxyXG4gICAgZGl2LnN0eWxlLmNzc1RleHQgPSBbXHJcbiAgICAgICAgJ2Rpc3BsYXk6IGJsb2NrOycsXHJcbiAgICAgICAgJ3dpZHRoOiAnICsgZ2FtZS5zY2FsZS53aWR0aCArICdweDsnLFxyXG4gICAgICAgICdoZWlnaHQ6ICcgKyBnYW1lLnNjYWxlLmhlaWdodCArICdweDsnLFxyXG4gICAgICAgICdwYWRkaW5nOiAwOyBtYXJnaW46IDA7JyxcclxuICAgICAgICAncG9zaXRpb246IGFic29sdXRlOycsXHJcbiAgICAgICAgJ292ZXJmbG93OiBoaWRkZW47JyxcclxuICAgICAgICAncG9pbnRlci1ldmVudHM6IG5vbmU7JyxcclxuICAgICAgICAndHJhbnNmb3JtOiBzY2FsZSgxKTsnLFxyXG4gICAgICAgICd0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDsnXHJcbiAgICBdLmpvaW4oJyAnKTtcclxuXHJcbiAgICBnYW1lLmRvbUNvbnRhaW5lciA9IGRpdjtcclxuXHJcbiAgICBBZGRUb0RPTShkaXYsIGNvbmZpZy5wYXJlbnQpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDcmVhdGVET01Db250YWluZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIE9TID0gcmVxdWlyZSgnLi4vZGV2aWNlL09TJyk7XHJcblxyXG4vKipcclxuICogQGNhbGxiYWNrIENvbnRlbnRMb2FkZWRDYWxsYmFja1xyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBJbnNwZWN0cyB0aGUgcmVhZHlTdGF0ZSBvZiB0aGUgZG9jdW1lbnQuIElmIHRoZSBkb2N1bWVudCBpcyBhbHJlYWR5IGNvbXBsZXRlIHRoZW4gaXQgaW52b2tlcyB0aGUgZ2l2ZW4gY2FsbGJhY2suXHJcbiAqIElmIG5vdCBjb21wbGV0ZSBpdCBzZXRzIHVwIHNldmVyYWwgZXZlbnQgbGlzdGVuZXJzIHN1Y2ggYXMgYGRldmljZXJlYWR5YCwgYW5kIG9uY2UgdGhvc2UgZmlyZSwgaXQgaW52b2tlcyB0aGUgY2FsbGJhY2suXHJcbiAqIENhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBQaGFzZXIuR2FtZSBpbnN0YW5jZS4gU2hvdWxkIG5vdCB1c3VhbGx5IGJlIGFjY2Vzc2VkIGRpcmVjdGx5LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRPTS5ET01Db250ZW50TG9hZGVkXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge0NvbnRlbnRMb2FkZWRDYWxsYmFja30gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgdG8gYmUgaW52b2tlZCB3aGVuIHRoZSBkZXZpY2UgaXMgcmVhZHkgYW5kIHRoZSBET00gY29udGVudCBpcyBsb2FkZWQuXHJcbiAqL1xyXG52YXIgRE9NQ29udGVudExvYWRlZCA9IGZ1bmN0aW9uIChjYWxsYmFjaylcclxue1xyXG4gICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScgfHwgZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2ludGVyYWN0aXZlJylcclxuICAgIHtcclxuICAgICAgICBjYWxsYmFjaygpO1xyXG5cclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGNoZWNrID0gZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkZXZpY2VyZWFkeScsIGNoZWNrLCB0cnVlKTtcclxuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgY2hlY2ssIHRydWUpO1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkJywgY2hlY2ssIHRydWUpO1xyXG5cclxuICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoIWRvY3VtZW50LmJvZHkpXHJcbiAgICB7XHJcbiAgICAgICAgd2luZG93LnNldFRpbWVvdXQoY2hlY2ssIDIwKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKE9TLmNvcmRvdmEpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIFJlZi4gaHR0cDovL2RvY3MucGhvbmVnYXAuY29tL2VuLzMuNS4wL2NvcmRvdmFfZXZlbnRzX2V2ZW50cy5tZC5odG1sI2RldmljZXJlYWR5XHJcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZGV2aWNlcmVhZHknLCBjaGVjaywgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBjaGVjaywgdHJ1ZSk7XHJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBjaGVjaywgdHJ1ZSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IERPTUNvbnRlbnRMb2FkZWQ7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEF0dGVtcHRzIHRvIGRldGVybWluZSB0aGUgZG9jdW1lbnQgaW5uZXIgaGVpZ2h0IGFjcm9zcyBpT1MgYW5kIHN0YW5kYXJkIGRldmljZXMuXHJcbiAqIEJhc2VkIG9uIGNvZGUgYnkgQHR5bGVyanBldGVyc29uXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRE9NLkdldElubmVySGVpZ2h0XHJcbiAqIEBzaW5jZSAzLjE2LjBcclxuICpcclxuICogQHBhcmFtIHtib29sZWFufSBpT1MgLSBJcyB0aGlzIHJ1bm5pbmcgb24gaU9TP1xyXG4gKlxyXG4gKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBpbm5lciBoZWlnaHQgdmFsdWUuXHJcbiAqL1xyXG52YXIgR2V0SW5uZXJIZWlnaHQgPSBmdW5jdGlvbiAoaU9TKVxyXG57XHJcblxyXG4gICAgaWYgKCFpT1MpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgYXhpcyA9IE1hdGguYWJzKHdpbmRvdy5vcmllbnRhdGlvbik7XHJcblxyXG4gICAgdmFyIHNpemUgPSB7IHc6IDAsIGg6IDAgfTtcclxuICAgIFxyXG4gICAgdmFyIHJ1bGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblxyXG4gICAgcnVsZXIuc2V0QXR0cmlidXRlKCdzdHlsZScsICdwb3NpdGlvbjogZml4ZWQ7IGhlaWdodDogMTAwdmg7IHdpZHRoOiAwOyB0b3A6IDAnKTtcclxuXHJcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQocnVsZXIpO1xyXG5cclxuICAgIHNpemUudyA9IChheGlzID09PSA5MCkgPyBydWxlci5vZmZzZXRIZWlnaHQgOiB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgIHNpemUuaCA9IChheGlzID09PSA5MCkgPyB3aW5kb3cuaW5uZXJXaWR0aCA6IHJ1bGVyLm9mZnNldEhlaWdodDtcclxuXHJcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQocnVsZXIpO1xyXG5cclxuICAgIHJ1bGVyID0gbnVsbDtcclxuXHJcbiAgICBpZiAoTWF0aC5hYnMod2luZG93Lm9yaWVudGF0aW9uKSAhPT0gOTApXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHNpemUuaDtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gc2l6ZS53O1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHZXRJbm5lckhlaWdodDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ09OU1QgPSByZXF1aXJlKCcuLi9zY2FsZS9jb25zdCcpO1xyXG5cclxuLyoqXHJcbiAqIEF0dGVtcHRzIHRvIGRldGVybWluZSB0aGUgc2NyZWVuIG9yaWVudGF0aW9uIHVzaW5nIHRoZSBPcmllbnRhdGlvbiBBUEkuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRE9NLkdldFNjcmVlbk9yaWVudGF0aW9uXHJcbiAqIEBzaW5jZSAzLjE2LjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSB2aWV3cG9ydC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBvcmllbnRhdGlvbi5cclxuICovXHJcbnZhciBHZXRTY3JlZW5PcmllbnRhdGlvbiA9IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KVxyXG57XHJcbiAgICB2YXIgc2NyZWVuID0gd2luZG93LnNjcmVlbjtcclxuICAgIHZhciBvcmllbnRhdGlvbiA9IChzY3JlZW4pID8gc2NyZWVuLm9yaWVudGF0aW9uIHx8IHNjcmVlbi5tb3pPcmllbnRhdGlvbiB8fCBzY3JlZW4ubXNPcmllbnRhdGlvbiA6IGZhbHNlO1xyXG5cclxuICAgIGlmIChvcmllbnRhdGlvbiAmJiB0eXBlb2Ygb3JpZW50YXRpb24udHlwZSA9PT0gJ3N0cmluZycpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIFNjcmVlbiBPcmllbnRhdGlvbiBBUEkgc3BlY2lmaWNhdGlvblxyXG4gICAgICAgIHJldHVybiBvcmllbnRhdGlvbi50eXBlO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIG9yaWVudGF0aW9uID09PSAnc3RyaW5nJylcclxuICAgIHtcclxuICAgICAgICAvLyAgbW96IC8gbXMtb3JpZW50YXRpb24gYXJlIHN0cmluZ3NcclxuICAgICAgICByZXR1cm4gb3JpZW50YXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNjcmVlbilcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gKHNjcmVlbi5oZWlnaHQgPiBzY3JlZW4ud2lkdGgpID8gQ09OU1QuT1JJRU5UQVRJT04uUE9SVFJBSVQgOiBDT05TVC5PUklFTlRBVElPTi5MQU5EU0NBUEU7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2Ygd2luZG93Lm9yaWVudGF0aW9uID09PSAnbnVtYmVyJylcclxuICAgIHtcclxuICAgICAgICAvLyAgVGhpcyBtYXkgY2hhbmdlIGJ5IGRldmljZSBiYXNlZCBvbiBcIm5hdHVyYWxcIiBvcmllbnRhdGlvbi5cclxuICAgICAgICByZXR1cm4gKHdpbmRvdy5vcmllbnRhdGlvbiA9PT0gMCB8fCB3aW5kb3cub3JpZW50YXRpb24gPT09IDE4MCkgPyBDT05TVC5PUklFTlRBVElPTi5QT1JUUkFJVCA6IENPTlNULk9SSUVOVEFUSU9OLkxBTkRTQ0FQRTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHdpbmRvdy5tYXRjaE1lZGlhKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh3aW5kb3cubWF0Y2hNZWRpYSgnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknKS5tYXRjaGVzKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIENPTlNULk9SSUVOVEFUSU9OLlBPUlRSQUlUO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh3aW5kb3cubWF0Y2hNZWRpYSgnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJykubWF0Y2hlcylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBDT05TVC5PUklFTlRBVElPTi5MQU5EU0NBUEU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZXR1cm4gKGhlaWdodCA+IHdpZHRoKSA/IENPTlNULk9SSUVOVEFUSU9OLlBPUlRSQUlUIDogQ09OU1QuT1JJRU5UQVRJT04uTEFORFNDQVBFO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHZXRTY3JlZW5PcmllbnRhdGlvbjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQXR0ZW1wdHMgdG8gZ2V0IHRoZSB0YXJnZXQgRE9NIGVsZW1lbnQgYmFzZWQgb24gdGhlIGdpdmVuIHZhbHVlLCB3aGljaCBjYW4gYmUgZWl0aGVyXHJcbiAqIGEgc3RyaW5nLCBpbiB3aGljaCBjYXNlIGl0IHdpbGwgYmUgbG9va2VkLXVwIGJ5IElELCBvciBhbiBlbGVtZW50IG5vZGUuIElmIG5vdGhpbmdcclxuICogY2FuIGJlIGZvdW5kIGl0IHdpbGwgcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBkb2N1bWVudC5ib2R5LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRPTS5HZXRUYXJnZXRcclxuICogQHNpbmNlIDMuMTYuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50IC0gVGhlIERPTSBlbGVtZW50IHRvIGxvb2stdXAuXHJcbiAqL1xyXG52YXIgR2V0VGFyZ2V0ID0gZnVuY3Rpb24gKGVsZW1lbnQpXHJcbntcclxuICAgIHZhciB0YXJnZXQ7XHJcblxyXG4gICAgaWYgKGVsZW1lbnQgIT09ICcnKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ3N0cmluZycpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgSG9wZWZ1bGx5IGFuIGVsZW1lbnQgSURcclxuICAgICAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5ub2RlVHlwZSA9PT0gMSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBRdWljayB0ZXN0IGZvciBhIEhUTUxFbGVtZW50XHJcbiAgICAgICAgICAgIHRhcmdldCA9IGVsZW1lbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICBGYWxsYmFjayB0byB0aGUgZG9jdW1lbnQgYm9keS4gQ292ZXJzIGFuIGludmFsaWQgSUQgYW5kIGEgbm9uIEhUTUxFbGVtZW50IG9iamVjdC5cclxuICAgIGlmICghdGFyZ2V0KVxyXG4gICAge1xyXG4gICAgICAgIC8vICBVc2UgdGhlIGZ1bGwgd2luZG93XHJcbiAgICAgICAgdGFyZ2V0ID0gZG9jdW1lbnQuYm9keTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGFyZ2V0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHZXRUYXJnZXQ7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRha2VzIHRoZSBnaXZlbiBkYXRhIHN0cmluZyBhbmQgcGFyc2VzIGl0IGFzIFhNTC5cclxuICogRmlyc3QgdHJpZXMgdG8gdXNlIHRoZSB3aW5kb3cuRE9NUGFyc2VyIGFuZCByZXZlcnRzIHRvIHRoZSBNaWNyb3NvZnQuWE1MRE9NIGlmIHRoYXQgZmFpbHMuXHJcbiAqIFRoZSBwYXJzZWQgWE1MIG9iamVjdCBpcyByZXR1cm5lZCwgb3IgYG51bGxgIGlmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBwYXJzaW5nIHRoZSBkYXRhLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGhhc2VyLkRPTS5QYXJzZVhNTFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IGRhdGEgLSBUaGUgWE1MIHNvdXJjZSBzdG9yZWQgaW4gYSBzdHJpbmcuXHJcbiAqXHJcbiAqIEByZXR1cm4gez8oRE9NUGFyc2VyfEFjdGl2ZVhPYmplY3QpfSBUaGUgcGFyc2VkIFhNTCBkYXRhLCBvciBgbnVsbGAgaWYgdGhlIGRhdGEgY291bGQgbm90IGJlIHBhcnNlZC5cclxuICovXHJcbnZhciBQYXJzZVhNTCA9IGZ1bmN0aW9uIChkYXRhKVxyXG57XHJcbiAgICB2YXIgeG1sID0gJyc7XHJcblxyXG4gICAgdHJ5XHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHdpbmRvd1snRE9NUGFyc2VyJ10pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgZG9tcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xyXG4gICAgICAgICAgICB4bWwgPSBkb21wYXJzZXIucGFyc2VGcm9tU3RyaW5nKGRhdGEsICd0ZXh0L3htbCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB4bWwgPSBuZXcgQWN0aXZlWE9iamVjdCgnTWljcm9zb2Z0LlhNTERPTScpO1xyXG4gICAgICAgICAgICB4bWwubG9hZFhNTChkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZSlcclxuICAgIHtcclxuICAgICAgICB4bWwgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICgheG1sIHx8ICF4bWwuZG9jdW1lbnRFbGVtZW50IHx8IHhtbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgncGFyc2VyZXJyb3InKS5sZW5ndGgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHhtbDtcclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUGFyc2VYTUw7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEF0dGVtcHRzIHRvIHJlbW92ZSB0aGUgZWxlbWVudCBmcm9tIGl0cyBwYXJlbnROb2RlIGluIHRoZSBET00uXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuRE9NLlJlbW92ZUZyb21ET01cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQgLSBUaGUgRE9NIGVsZW1lbnQgdG8gcmVtb3ZlIGZyb20gaXRzIHBhcmVudCBub2RlLlxyXG4gKi9cclxudmFyIFJlbW92ZUZyb21ET00gPSBmdW5jdGlvbiAoZWxlbWVudClcclxue1xyXG4gICAgaWYgKGVsZW1lbnQucGFyZW50Tm9kZSlcclxuICAgIHtcclxuICAgICAgICBlbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFJlbW92ZUZyb21ET007XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIE5PT1AgPSByZXF1aXJlKCcuLi91dGlscy9OT09QJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBYnN0cmFjdHMgYXdheSB0aGUgdXNlIG9mIFJBRiBvciBzZXRUaW1lT3V0IGZvciB0aGUgY29yZSBnYW1lIHVwZGF0ZSBsb29wLlxyXG4gKiBUaGlzIGlzIGludm9rZWQgYXV0b21hdGljYWxseSBieSB0aGUgUGhhc2VyLkdhbWUgaW5zdGFuY2UuXHJcbiAqXHJcbiAqIEBjbGFzcyBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVcclxuICogQG1lbWJlcm9mIFBoYXNlci5ET01cclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKi9cclxudmFyIFJlcXVlc3RBbmltYXRpb25GcmFtZSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgKClcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUcnVlIGlmIFJlcXVlc3RBbmltYXRpb25GcmFtZSBpcyBydW5uaW5nLCBvdGhlcndpc2UgZmFsc2UuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRE9NLlJlcXVlc3RBbmltYXRpb25GcmFtZSNpc1J1bm5pbmdcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaXNSdW5uaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjYWxsYmFjayB0byBiZSBpbnZva2VkIGVhY2ggc3RlcC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5ET00uUmVxdWVzdEFuaW1hdGlvbkZyYW1lI2NhbGxiYWNrXHJcbiAgICAgICAgICogQHR5cGUge0ZyYW1lUmVxdWVzdENhbGxiYWNrfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2sgPSBOT09QO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbW9zdCByZWNlbnQgdGltZXN0YW1wLiBFaXRoZXIgYSBET01IaWdoUmVzVGltZVN0YW1wIHVuZGVyIFJBRiBvciBgRGF0ZS5ub3dgIHVuZGVyIFNldFRpbWVvdXQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRE9NLlJlcXVlc3RBbmltYXRpb25GcmFtZSN0aWNrXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy50aWNrID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVHJ1ZSBpZiB0aGUgc3RlcCBpcyB1c2luZyBzZXRUaW1lb3V0IGluc3RlYWQgb2YgUkFGLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRPTS5SZXF1ZXN0QW5pbWF0aW9uRnJhbWUjaXNTZXRUaW1lT3V0XHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlzU2V0VGltZU91dCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgc2V0VGltZW91dCBvciBSQUYgY2FsbGJhY2sgSUQgdXNlZCB3aGVuIGNhbmNlbGluZyB0aGVtLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRPTS5SZXF1ZXN0QW5pbWF0aW9uRnJhbWUjdGltZU91dElEXHJcbiAgICAgICAgICogQHR5cGUgez9udW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudGltZU91dElEID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHByZXZpb3VzIHRpbWUgdGhlIHN0ZXAgd2FzIGNhbGxlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5ET00uUmVxdWVzdEFuaW1hdGlvbkZyYW1lI2xhc3RUaW1lXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5sYXN0VGltZSA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB0YXJnZXQgRlBTIHJhdGUgaW4gbXMuXHJcbiAgICAgICAgICogT25seSB1c2VkIHdoZW4gc2V0VGltZW91dCBpcyB1c2VkIGluc3RlYWQgb2YgUkFGLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkRPTS5SZXF1ZXN0QW5pbWF0aW9uRnJhbWUjdGFyZ2V0XHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMjEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudGFyZ2V0ID0gMDtcclxuXHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIFJBRiBzdGVwIGZ1bmN0aW9uLlxyXG4gICAgICAgICAqIFVwZGF0ZXMgdGhlIGxvY2FsIHRpY2sgdmFsdWUsIGludm9rZXMgdGhlIGNhbGxiYWNrIGFuZCBzY2hlZHVsZXMgYW5vdGhlciBjYWxsIHRvIHJlcXVlc3RBbmltYXRpb25GcmFtZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5ET00uUmVxdWVzdEFuaW1hdGlvbkZyYW1lI3N0ZXBcclxuICAgICAgICAgKiBAdHlwZSB7RnJhbWVSZXF1ZXN0Q2FsbGJhY2t9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zdGVwID0gZnVuY3Rpb24gc3RlcCAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIEJlY2F1c2Ugd2UgY2Fubm90IHRydXN0IHRoZSB0aW1lIHBhc3NlZCB0byB0aGlzIGNhbGxiYWNrIGZyb20gdGhlIGJyb3dzZXIgYW5kIG5lZWQgaXQga2VwdCBpbiBzeW5jIHdpdGggZXZlbnQgdGltZXNcclxuICAgICAgICAgICAgdmFyIHRpbWVzdGFtcCA9IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKTtcclxuXHJcbiAgICAgICAgICAgIC8vICBET01IaWdoUmVzVGltZVN0YW1wXHJcbiAgICAgICAgICAgIF90aGlzLmxhc3RUaW1lID0gX3RoaXMudGljaztcclxuXHJcbiAgICAgICAgICAgIF90aGlzLnRpY2sgPSB0aW1lc3RhbXA7XHJcblxyXG4gICAgICAgICAgICBfdGhpcy5jYWxsYmFjayh0aW1lc3RhbXApO1xyXG5cclxuICAgICAgICAgICAgX3RoaXMudGltZU91dElEID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgU2V0VGltZW91dCBzdGVwIGZ1bmN0aW9uLlxyXG4gICAgICAgICAqIFVwZGF0ZXMgdGhlIGxvY2FsIHRpY2sgdmFsdWUsIGludm9rZXMgdGhlIGNhbGxiYWNrIGFuZCBzY2hlZHVsZXMgYW5vdGhlciBjYWxsIHRvIHNldFRpbWVvdXQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuRE9NLlJlcXVlc3RBbmltYXRpb25GcmFtZSNzdGVwVGltZW91dFxyXG4gICAgICAgICAqIEB0eXBlIHtmdW5jdGlvbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnN0ZXBUaW1lb3V0ID0gZnVuY3Rpb24gc3RlcFRpbWVvdXQgKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBkID0gRGF0ZS5ub3coKTtcclxuXHJcbiAgICAgICAgICAgIHZhciBkZWxheSA9IE1hdGgubWluKE1hdGgubWF4KF90aGlzLnRhcmdldCAqIDIgKyBfdGhpcy50aWNrIC0gZCwgMCksIF90aGlzLnRhcmdldCk7XHJcblxyXG4gICAgICAgICAgICBfdGhpcy5sYXN0VGltZSA9IF90aGlzLnRpY2s7XHJcblxyXG4gICAgICAgICAgICBfdGhpcy50aWNrID0gZDtcclxuXHJcbiAgICAgICAgICAgIF90aGlzLmNhbGxiYWNrKGQpO1xyXG5cclxuICAgICAgICAgICAgX3RoaXMudGltZU91dElEID0gd2luZG93LnNldFRpbWVvdXQoc3RlcFRpbWVvdXQsIGRlbGF5KTtcclxuICAgICAgICB9O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0YXJ0cyB0aGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIG9yIHNldFRpbWVvdXQgcHJvY2VzcyBydW5uaW5nLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkRPTS5SZXF1ZXN0QW5pbWF0aW9uRnJhbWUjc3RhcnRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7RnJhbWVSZXF1ZXN0Q2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGludm9rZSBlYWNoIHN0ZXAuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGZvcmNlU2V0VGltZU91dCAtIFNob3VsZCBpdCB1c2UgU2V0VGltZW91dCwgZXZlbiBpZiBSQUYgaXMgYXZhaWxhYmxlP1xyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHRhcmdldEZQUyAtIFRoZSB0YXJnZXQgZnBzIHJhdGUgKGluIG1zKS4gT25seSB1c2VkIHdoZW4gc2V0VGltZW91dCBpcyB1c2VkLlxyXG4gICAgICovXHJcbiAgICBzdGFydDogZnVuY3Rpb24gKGNhbGxiYWNrLCBmb3JjZVNldFRpbWVPdXQsIHRhcmdldEZQUylcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5pc1J1bm5pbmcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XHJcblxyXG4gICAgICAgIHRoaXMuaXNTZXRUaW1lT3V0ID0gZm9yY2VTZXRUaW1lT3V0O1xyXG5cclxuICAgICAgICB0aGlzLnRhcmdldCA9IHRhcmdldEZQUztcclxuXHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLnRpbWVPdXRJRCA9IChmb3JjZVNldFRpbWVPdXQpID8gd2luZG93LnNldFRpbWVvdXQodGhpcy5zdGVwVGltZW91dCwgMCkgOiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuc3RlcCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgdGhlIHJlcXVlc3RBbmltYXRpb25GcmFtZSBvciBzZXRUaW1lb3V0IGZyb20gcnVubmluZy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5ET00uUmVxdWVzdEFuaW1hdGlvbkZyYW1lI3N0b3BcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBzdG9wOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuaXNSdW5uaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzU2V0VGltZU91dClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVPdXRJRCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnRpbWVPdXRJRCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0b3BzIHRoZSBzdGVwIGZyb20gcnVubmluZyBhbmQgY2xlYXJzIHRoZSBjYWxsYmFjayByZWZlcmVuY2UuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRE9NLlJlcXVlc3RBbmltYXRpb25GcmFtZSNkZXN0cm95XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgZGVzdHJveTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnN0b3AoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jYWxsYmFjayA9IE5PT1A7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUmVxdWVzdEFuaW1hdGlvbkZyYW1lO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5ET01cclxuICovXHJcblxyXG52YXIgRG9tID0ge1xyXG5cclxuICAgIEFkZFRvRE9NOiByZXF1aXJlKCcuL0FkZFRvRE9NJyksXHJcbiAgICBET01Db250ZW50TG9hZGVkOiByZXF1aXJlKCcuL0RPTUNvbnRlbnRMb2FkZWQnKSxcclxuICAgIEdldFNjcmVlbk9yaWVudGF0aW9uOiByZXF1aXJlKCcuL0dldFNjcmVlbk9yaWVudGF0aW9uJyksXHJcbiAgICBHZXRUYXJnZXQ6IHJlcXVpcmUoJy4vR2V0VGFyZ2V0JyksXHJcbiAgICBQYXJzZVhNTDogcmVxdWlyZSgnLi9QYXJzZVhNTCcpLFxyXG4gICAgUmVtb3ZlRnJvbURPTTogcmVxdWlyZSgnLi9SZW1vdmVGcm9tRE9NJyksXHJcbiAgICBSZXF1ZXN0QW5pbWF0aW9uRnJhbWU6IHJlcXVpcmUoJy4vUmVxdWVzdEFuaW1hdGlvbkZyYW1lJylcclxuXHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IERvbTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi91dGlscy9DbGFzcycpO1xyXG52YXIgRUUgPSByZXF1aXJlKCdldmVudGVtaXR0ZXIzJyk7XHJcbnZhciBQbHVnaW5DYWNoZSA9IHJlcXVpcmUoJy4uL3BsdWdpbnMvUGx1Z2luQ2FjaGUnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEV2ZW50RW1pdHRlciBpcyBhIFNjZW5lIFN5c3RlbXMgcGx1Z2luIGNvbXBhdGlibGUgdmVyc2lvbiBvZiBldmVudGVtaXR0ZXIzLlxyXG4gKlxyXG4gKiBAY2xhc3MgRXZlbnRFbWl0dGVyXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuRXZlbnRzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICovXHJcbnZhciBFdmVudEVtaXR0ZXIgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IEVFLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gRXZlbnRFbWl0dGVyICgpXHJcbiAgICB7XHJcbiAgICAgICAgRUUuY2FsbCh0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIGFsbCBsaXN0ZW5lcnMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuRXZlbnRzLkV2ZW50RW1pdHRlciNzaHV0ZG93blxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHNodXRkb3duOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhbGwgbGlzdGVuZXJzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkV2ZW50cy5FdmVudEVtaXR0ZXIjZGVzdHJveVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxuLyoqXHJcbiAqIFJldHVybiBhbiBhcnJheSBsaXN0aW5nIHRoZSBldmVudHMgZm9yIHdoaWNoIHRoZSBlbWl0dGVyIGhhcyByZWdpc3RlcmVkIGxpc3RlbmVycy5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuRXZlbnRzLkV2ZW50RW1pdHRlciNldmVudE5hbWVzXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcmV0dXJuIHtBcnJheS48c3RyaW5nfHN5bWJvbD59XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0aGUgbGlzdGVuZXJzIHJlZ2lzdGVyZWQgZm9yIGEgZ2l2ZW4gZXZlbnQuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkV2ZW50cy5FdmVudEVtaXR0ZXIjbGlzdGVuZXJzXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0geyhzdHJpbmd8c3ltYm9sKX0gZXZlbnQgLSBUaGUgZXZlbnQgbmFtZS5cclxuICpcclxuICogQHJldHVybiB7RnVuY3Rpb25bXX0gVGhlIHJlZ2lzdGVyZWQgbGlzdGVuZXJzLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdGhlIG51bWJlciBvZiBsaXN0ZW5lcnMgbGlzdGVuaW5nIHRvIGEgZ2l2ZW4gZXZlbnQuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkV2ZW50cy5FdmVudEVtaXR0ZXIjbGlzdGVuZXJDb3VudFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHsoc3RyaW5nfHN5bWJvbCl9IGV2ZW50IC0gVGhlIGV2ZW50IG5hbWUuXHJcbiAqXHJcbiAqIEByZXR1cm4ge251bWJlcn0gVGhlIG51bWJlciBvZiBsaXN0ZW5lcnMuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIENhbGxzIGVhY2ggb2YgdGhlIGxpc3RlbmVycyByZWdpc3RlcmVkIGZvciBhIGdpdmVuIGV2ZW50LlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5FdmVudHMuRXZlbnRFbWl0dGVyI2VtaXRcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xzeW1ib2wpfSBldmVudCAtIFRoZSBldmVudCBuYW1lLlxyXG4gKiBAcGFyYW0gey4uLip9IFthcmdzXSAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGV2ZW50IGhhbmRsZXIuXHJcbiAqXHJcbiAqIEByZXR1cm4ge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgZXZlbnQgaGFkIGxpc3RlbmVycywgZWxzZSBgZmFsc2VgLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBBZGQgYSBsaXN0ZW5lciBmb3IgYSBnaXZlbiBldmVudC5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuRXZlbnRzLkV2ZW50RW1pdHRlciNvblxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHsoc3RyaW5nfHN5bWJvbCl9IGV2ZW50IC0gVGhlIGV2ZW50IG5hbWUuXHJcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGZuIC0gVGhlIGxpc3RlbmVyIGZ1bmN0aW9uLlxyXG4gKiBAcGFyYW0geyp9IFtjb250ZXh0PXRoaXNdIC0gVGhlIGNvbnRleHQgdG8gaW52b2tlIHRoZSBsaXN0ZW5lciB3aXRoLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHt0aGlzfSBgdGhpc2AuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEFkZCBhIGxpc3RlbmVyIGZvciBhIGdpdmVuIGV2ZW50LlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5FdmVudHMuRXZlbnRFbWl0dGVyI2FkZExpc3RlbmVyXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0geyhzdHJpbmd8c3ltYm9sKX0gZXZlbnQgLSBUaGUgZXZlbnQgbmFtZS5cclxuICogQHBhcmFtIHtmdW5jdGlvbn0gZm4gLSBUaGUgbGlzdGVuZXIgZnVuY3Rpb24uXHJcbiAqIEBwYXJhbSB7Kn0gW2NvbnRleHQ9dGhpc10gLSBUaGUgY29udGV4dCB0byBpbnZva2UgdGhlIGxpc3RlbmVyIHdpdGguXHJcbiAqXHJcbiAqIEByZXR1cm4ge3RoaXN9IGB0aGlzYC5cclxuICovXHJcblxyXG4vKipcclxuICogQWRkIGEgb25lLXRpbWUgbGlzdGVuZXIgZm9yIGEgZ2l2ZW4gZXZlbnQuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkV2ZW50cy5FdmVudEVtaXR0ZXIjb25jZVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHsoc3RyaW5nfHN5bWJvbCl9IGV2ZW50IC0gVGhlIGV2ZW50IG5hbWUuXHJcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IGZuIC0gVGhlIGxpc3RlbmVyIGZ1bmN0aW9uLlxyXG4gKiBAcGFyYW0geyp9IFtjb250ZXh0PXRoaXNdIC0gVGhlIGNvbnRleHQgdG8gaW52b2tlIHRoZSBsaXN0ZW5lciB3aXRoLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHt0aGlzfSBgdGhpc2AuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSB0aGUgbGlzdGVuZXJzIG9mIGEgZ2l2ZW4gZXZlbnQuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkV2ZW50cy5FdmVudEVtaXR0ZXIjcmVtb3ZlTGlzdGVuZXJcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xzeW1ib2wpfSBldmVudCAtIFRoZSBldmVudCBuYW1lLlxyXG4gKiBAcGFyYW0ge2Z1bmN0aW9ufSBbZm5dIC0gT25seSByZW1vdmUgdGhlIGxpc3RlbmVycyB0aGF0IG1hdGNoIHRoaXMgZnVuY3Rpb24uXHJcbiAqIEBwYXJhbSB7Kn0gW2NvbnRleHRdIC0gT25seSByZW1vdmUgdGhlIGxpc3RlbmVycyB0aGF0IGhhdmUgdGhpcyBjb250ZXh0LlxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvbmNlXSAtIE9ubHkgcmVtb3ZlIG9uZS10aW1lIGxpc3RlbmVycy5cclxuICpcclxuICogQHJldHVybiB7dGhpc30gYHRoaXNgLlxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgdGhlIGxpc3RlbmVycyBvZiBhIGdpdmVuIGV2ZW50LlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5FdmVudHMuRXZlbnRFbWl0dGVyI29mZlxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHsoc3RyaW5nfHN5bWJvbCl9IGV2ZW50IC0gVGhlIGV2ZW50IG5hbWUuXHJcbiAqIEBwYXJhbSB7ZnVuY3Rpb259IFtmbl0gLSBPbmx5IHJlbW92ZSB0aGUgbGlzdGVuZXJzIHRoYXQgbWF0Y2ggdGhpcyBmdW5jdGlvbi5cclxuICogQHBhcmFtIHsqfSBbY29udGV4dF0gLSBPbmx5IHJlbW92ZSB0aGUgbGlzdGVuZXJzIHRoYXQgaGF2ZSB0aGlzIGNvbnRleHQuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29uY2VdIC0gT25seSByZW1vdmUgb25lLXRpbWUgbGlzdGVuZXJzLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHt0aGlzfSBgdGhpc2AuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBhbGwgbGlzdGVuZXJzLCBvciB0aG9zZSBvZiB0aGUgc3BlY2lmaWVkIGV2ZW50LlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5FdmVudHMuRXZlbnRFbWl0dGVyI3JlbW92ZUFsbExpc3RlbmVyc1xyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHsoc3RyaW5nfHN5bWJvbCl9IFtldmVudF0gLSBUaGUgZXZlbnQgbmFtZS5cclxuICpcclxuICogQHJldHVybiB7dGhpc30gYHRoaXNgLlxyXG4gKi9cclxuXHJcblBsdWdpbkNhY2hlLnJlZ2lzdGVyKCdFdmVudEVtaXR0ZXInLCBFdmVudEVtaXR0ZXIsICdldmVudHMnKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRXZlbnRFbWl0dGVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5FdmVudHNcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHsgRXZlbnRFbWl0dGVyOiByZXF1aXJlKCcuL0V2ZW50RW1pdHRlcicpIH07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEJsZW5kTW9kZXMgPSByZXF1aXJlKCcuLi9yZW5kZXJlci9CbGVuZE1vZGVzJyk7XHJcbnZhciBHZXRBZHZhbmNlZFZhbHVlID0gcmVxdWlyZSgnLi4vdXRpbHMvb2JqZWN0L0dldEFkdmFuY2VkVmFsdWUnKTtcclxuXHJcbi8qKlxyXG4gKiBCdWlsZHMgYSBHYW1lIE9iamVjdCB1c2luZyB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbiBvYmplY3QuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuR2FtZU9iamVjdHMuQnVpbGRHYW1lT2JqZWN0XHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBBIHJlZmVyZW5jZSB0byB0aGUgU2NlbmUuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGdhbWVPYmplY3QgLSBUaGUgaW5pdGlhbCBHYW1lT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Q29uZmlnfSBjb25maWcgLSBUaGUgY29uZmlnIHRvIGJ1aWxkIHRoZSBHYW1lT2JqZWN0IHdpdGguXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgYnVpbHQgR2FtZSBPYmplY3QuXHJcbiAqL1xyXG52YXIgQnVpbGRHYW1lT2JqZWN0ID0gZnVuY3Rpb24gKHNjZW5lLCBnYW1lT2JqZWN0LCBjb25maWcpXHJcbntcclxuICAgIC8vICBQb3NpdGlvblxyXG5cclxuICAgIGdhbWVPYmplY3QueCA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAneCcsIDApO1xyXG4gICAgZ2FtZU9iamVjdC55ID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICd5JywgMCk7XHJcbiAgICBnYW1lT2JqZWN0LmRlcHRoID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdkZXB0aCcsIDApO1xyXG5cclxuICAgIC8vICBGbGlwXHJcblxyXG4gICAgZ2FtZU9iamVjdC5mbGlwWCA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAnZmxpcFgnLCBmYWxzZSk7XHJcbiAgICBnYW1lT2JqZWN0LmZsaXBZID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdmbGlwWScsIGZhbHNlKTtcclxuXHJcbiAgICAvLyAgU2NhbGVcclxuICAgIC8vICBFaXRoZXI6IHsgc2NhbGU6IDIgfSBvciB7IHNjYWxlOiB7IHg6IDIsIHk6IDIgfX1cclxuXHJcbiAgICB2YXIgc2NhbGUgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ3NjYWxlJywgbnVsbCk7XHJcblxyXG4gICAgaWYgKHR5cGVvZiBzY2FsZSA9PT0gJ251bWJlcicpXHJcbiAgICB7XHJcbiAgICAgICAgZ2FtZU9iamVjdC5zZXRTY2FsZShzY2FsZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChzY2FsZSAhPT0gbnVsbClcclxuICAgIHtcclxuICAgICAgICBnYW1lT2JqZWN0LnNjYWxlWCA9IEdldEFkdmFuY2VkVmFsdWUoc2NhbGUsICd4JywgMSk7XHJcbiAgICAgICAgZ2FtZU9iamVjdC5zY2FsZVkgPSBHZXRBZHZhbmNlZFZhbHVlKHNjYWxlLCAneScsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBTY3JvbGxGYWN0b3JcclxuICAgIC8vICBFaXRoZXI6IHsgc2Nyb2xsRmFjdG9yOiAyIH0gb3IgeyBzY3JvbGxGYWN0b3I6IHsgeDogMiwgeTogMiB9fVxyXG5cclxuICAgIHZhciBzY3JvbGxGYWN0b3IgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ3Njcm9sbEZhY3RvcicsIG51bGwpO1xyXG5cclxuICAgIGlmICh0eXBlb2Ygc2Nyb2xsRmFjdG9yID09PSAnbnVtYmVyJylcclxuICAgIHtcclxuICAgICAgICBnYW1lT2JqZWN0LnNldFNjcm9sbEZhY3RvcihzY3JvbGxGYWN0b3IpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoc2Nyb2xsRmFjdG9yICE9PSBudWxsKVxyXG4gICAge1xyXG4gICAgICAgIGdhbWVPYmplY3Quc2Nyb2xsRmFjdG9yWCA9IEdldEFkdmFuY2VkVmFsdWUoc2Nyb2xsRmFjdG9yLCAneCcsIDEpO1xyXG4gICAgICAgIGdhbWVPYmplY3Quc2Nyb2xsRmFjdG9yWSA9IEdldEFkdmFuY2VkVmFsdWUoc2Nyb2xsRmFjdG9yLCAneScsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBSb3RhdGlvblxyXG5cclxuICAgIGdhbWVPYmplY3Qucm90YXRpb24gPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ3JvdGF0aW9uJywgMCk7XHJcblxyXG4gICAgdmFyIGFuZ2xlID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdhbmdsZScsIG51bGwpO1xyXG5cclxuICAgIGlmIChhbmdsZSAhPT0gbnVsbClcclxuICAgIHtcclxuICAgICAgICBnYW1lT2JqZWN0LmFuZ2xlID0gYW5nbGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIEFscGhhXHJcblxyXG4gICAgZ2FtZU9iamVjdC5hbHBoYSA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAnYWxwaGEnLCAxKTtcclxuXHJcbiAgICAvLyAgT3JpZ2luXHJcbiAgICAvLyAgRWl0aGVyOiB7IG9yaWdpbjogMC41IH0gb3IgeyBvcmlnaW46IHsgeDogMC41LCB5OiAwLjUgfX1cclxuXHJcbiAgICB2YXIgb3JpZ2luID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdvcmlnaW4nLCBudWxsKTtcclxuXHJcbiAgICBpZiAodHlwZW9mIG9yaWdpbiA9PT0gJ251bWJlcicpXHJcbiAgICB7XHJcbiAgICAgICAgZ2FtZU9iamVjdC5zZXRPcmlnaW4ob3JpZ2luKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKG9yaWdpbiAhPT0gbnVsbClcclxuICAgIHtcclxuICAgICAgICB2YXIgb3ggPSBHZXRBZHZhbmNlZFZhbHVlKG9yaWdpbiwgJ3gnLCAwLjUpO1xyXG4gICAgICAgIHZhciBveSA9IEdldEFkdmFuY2VkVmFsdWUob3JpZ2luLCAneScsIDAuNSk7XHJcblxyXG4gICAgICAgIGdhbWVPYmplY3Quc2V0T3JpZ2luKG94LCBveSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIEJsZW5kTW9kZVxyXG5cclxuICAgIGdhbWVPYmplY3QuYmxlbmRNb2RlID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdibGVuZE1vZGUnLCBCbGVuZE1vZGVzLk5PUk1BTCk7XHJcblxyXG4gICAgLy8gIFZpc2libGVcclxuXHJcbiAgICBnYW1lT2JqZWN0LnZpc2libGUgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ3Zpc2libGUnLCB0cnVlKTtcclxuXHJcbiAgICAvLyAgQWRkIHRvIFNjZW5lXHJcblxyXG4gICAgdmFyIGFkZCA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAnYWRkJywgdHJ1ZSk7XHJcblxyXG4gICAgaWYgKGFkZClcclxuICAgIHtcclxuICAgICAgICBzY2VuZS5zeXMuZGlzcGxheUxpc3QuYWRkKGdhbWVPYmplY3QpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChnYW1lT2JqZWN0LnByZVVwZGF0ZSlcclxuICAgIHtcclxuICAgICAgICBzY2VuZS5zeXMudXBkYXRlTGlzdC5hZGQoZ2FtZU9iamVjdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdhbWVPYmplY3Q7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEJ1aWxkR2FtZU9iamVjdDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2V0QWR2YW5jZWRWYWx1ZSA9IHJlcXVpcmUoJy4uL3V0aWxzL29iamVjdC9HZXRBZHZhbmNlZFZhbHVlJyk7XHJcblxyXG4vKipcclxuICogQWRkcyBhbiBBbmltYXRpb24gY29tcG9uZW50IHRvIGEgU3ByaXRlIGFuZCBwb3B1bGF0ZXMgaXQgYmFzZWQgb24gdGhlIGdpdmVuIGNvbmZpZy5cclxuICpcclxuICogQGZ1bmN0aW9uIFBoYXNlci5HYW1lT2JqZWN0cy5CdWlsZEdhbWVPYmplY3RBbmltYXRpb25cclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlNwcml0ZX0gc3ByaXRlIC0gVGhlIHNwcml0ZSB0byBhZGQgYW4gQW5pbWF0aW9uIGNvbXBvbmVudCB0by5cclxuICogQHBhcmFtIHtvYmplY3R9IGNvbmZpZyAtIFRoZSBhbmltYXRpb24gY29uZmlnLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuU3ByaXRlfSBUaGUgdXBkYXRlZCBTcHJpdGUuXHJcbiAqL1xyXG52YXIgQnVpbGRHYW1lT2JqZWN0QW5pbWF0aW9uID0gZnVuY3Rpb24gKHNwcml0ZSwgY29uZmlnKVxyXG57XHJcbiAgICB2YXIgYW5pbUNvbmZpZyA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAnYW5pbXMnLCBudWxsKTtcclxuXHJcbiAgICBpZiAoYW5pbUNvbmZpZyA9PT0gbnVsbClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gc3ByaXRlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgYW5pbUNvbmZpZyA9PT0gJ3N0cmluZycpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIHsgYW5pbXM6ICdrZXknIH1cclxuICAgICAgICBzcHJpdGUuYW5pbXMucGxheShhbmltQ29uZmlnKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHR5cGVvZiBhbmltQ29uZmlnID09PSAnb2JqZWN0JylcclxuICAgIHtcclxuICAgICAgICAvLyAgeyBhbmltczoge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgICBrZXk6IHN0cmluZ1xyXG4gICAgICAgIC8vICAgICAgICAgICAgICBzdGFydEZyYW1lOiBbc3RyaW5nfGludGVnZXJdXHJcbiAgICAgICAgLy8gICAgICAgICAgICAgIGRlbGF5OiBbZmxvYXRdXHJcbiAgICAgICAgLy8gICAgICAgICAgICAgIHJlcGVhdDogW2ludGVnZXJdXHJcbiAgICAgICAgLy8gICAgICAgICAgICAgIHJlcGVhdERlbGF5OiBbZmxvYXRdXHJcbiAgICAgICAgLy8gICAgICAgICAgICAgIHlveW86IFtib29sZWFuXVxyXG4gICAgICAgIC8vICAgICAgICAgICAgICBwbGF5OiBbYm9vbGVhbl1cclxuICAgICAgICAvLyAgICAgICAgICAgICAgZGVsYXllZFBsYXk6IFtib29sZWFuXVxyXG4gICAgICAgIC8vICAgICAgICAgICB9XHJcbiAgICAgICAgLy8gIH1cclxuXHJcbiAgICAgICAgdmFyIGFuaW1zID0gc3ByaXRlLmFuaW1zO1xyXG5cclxuICAgICAgICB2YXIga2V5ID0gR2V0QWR2YW5jZWRWYWx1ZShhbmltQ29uZmlnLCAna2V5JywgdW5kZWZpbmVkKTtcclxuICAgICAgICB2YXIgc3RhcnRGcmFtZSA9IEdldEFkdmFuY2VkVmFsdWUoYW5pbUNvbmZpZywgJ3N0YXJ0RnJhbWUnLCB1bmRlZmluZWQpO1xyXG5cclxuICAgICAgICB2YXIgZGVsYXkgPSBHZXRBZHZhbmNlZFZhbHVlKGFuaW1Db25maWcsICdkZWxheScsIDApO1xyXG4gICAgICAgIHZhciByZXBlYXQgPSBHZXRBZHZhbmNlZFZhbHVlKGFuaW1Db25maWcsICdyZXBlYXQnLCAwKTtcclxuICAgICAgICB2YXIgcmVwZWF0RGVsYXkgPSBHZXRBZHZhbmNlZFZhbHVlKGFuaW1Db25maWcsICdyZXBlYXREZWxheScsIDApO1xyXG4gICAgICAgIHZhciB5b3lvID0gR2V0QWR2YW5jZWRWYWx1ZShhbmltQ29uZmlnLCAneW95bycsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgdmFyIHBsYXkgPSBHZXRBZHZhbmNlZFZhbHVlKGFuaW1Db25maWcsICdwbGF5JywgZmFsc2UpO1xyXG4gICAgICAgIHZhciBkZWxheWVkUGxheSA9IEdldEFkdmFuY2VkVmFsdWUoYW5pbUNvbmZpZywgJ2RlbGF5ZWRQbGF5JywgMCk7XHJcblxyXG4gICAgICAgIGFuaW1zLnNldERlbGF5KGRlbGF5KTtcclxuICAgICAgICBhbmltcy5zZXRSZXBlYXQocmVwZWF0KTtcclxuICAgICAgICBhbmltcy5zZXRSZXBlYXREZWxheShyZXBlYXREZWxheSk7XHJcbiAgICAgICAgYW5pbXMuc2V0WW95byh5b3lvKTtcclxuXHJcbiAgICAgICAgaWYgKHBsYXkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBhbmltcy5wbGF5KGtleSwgc3RhcnRGcmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGRlbGF5ZWRQbGF5ID4gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGFuaW1zLmRlbGF5ZWRQbGF5KGRlbGF5ZWRQbGF5LCBrZXksIHN0YXJ0RnJhbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBhbmltcy5sb2FkKGtleSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzcHJpdGU7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEJ1aWxkR2FtZU9iamVjdEFuaW1hdGlvbjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi91dGlscy9DbGFzcycpO1xyXG52YXIgTGlzdCA9IHJlcXVpcmUoJy4uL3N0cnVjdHMvTGlzdCcpO1xyXG52YXIgUGx1Z2luQ2FjaGUgPSByZXF1aXJlKCcuLi9wbHVnaW5zL1BsdWdpbkNhY2hlJyk7XHJcbnZhciBTY2VuZUV2ZW50cyA9IHJlcXVpcmUoJy4uL3NjZW5lL2V2ZW50cycpO1xyXG52YXIgU3RhYmxlU29ydCA9IHJlcXVpcmUoJy4uL3V0aWxzL2FycmF5L1N0YWJsZVNvcnQnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIFRoZSBEaXNwbGF5IExpc3QgcGx1Z2luLlxyXG4gKlxyXG4gKiBEaXNwbGF5IExpc3RzIGJlbG9uZyB0byBhIFNjZW5lIGFuZCBtYWludGFpbiB0aGUgbGlzdCBvZiBHYW1lIE9iamVjdHMgdG8gcmVuZGVyIGV2ZXJ5IGZyYW1lLlxyXG4gKlxyXG4gKiBTb21lIG9mIHRoZXNlIEdhbWUgT2JqZWN0cyBtYXkgYWxzbyBiZSBwYXJ0IG9mIHRoZSBTY2VuZSdzIFtVcGRhdGUgTGlzdF17QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlVwZGF0ZUxpc3R9LCBmb3IgdXBkYXRpbmcuXHJcbiAqXHJcbiAqIEBjbGFzcyBEaXNwbGF5TGlzdFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuU3RydWN0cy5MaXN0LjxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdD5cclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSB0aGF0IHRoaXMgRGlzcGxheSBMaXN0IGJlbG9uZ3MgdG8uXHJcbiAqL1xyXG52YXIgRGlzcGxheUxpc3QgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IExpc3QsXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBEaXNwbGF5TGlzdCAoc2NlbmUpXHJcbiAgICB7XHJcbiAgICAgICAgTGlzdC5jYWxsKHRoaXMsIHNjZW5lKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGZsYWcgdGhlIGRldGVybWluZXMgd2hldGhlciBHYW1lIE9iamVjdHMgc2hvdWxkIGJlIHNvcnRlZCB3aGVuIGBkZXB0aFNvcnQoKWAgaXMgY2FsbGVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkRpc3BsYXlMaXN0I3NvcnRDaGlsZHJlbkZsYWdcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc29ydENoaWxkcmVuRmxhZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgU2NlbmUgdGhhdCB0aGlzIERpc3BsYXkgTGlzdCBiZWxvbmdzIHRvLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkRpc3BsYXlMaXN0I3NjZW5lXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5TY2VuZX1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjZW5lID0gc2NlbmU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBTY2VuZSdzIFN5c3RlbXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuRGlzcGxheUxpc3Qjc3lzdGVtc1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU2NlbmVzLlN5c3RlbXN9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zeXN0ZW1zID0gc2NlbmUuc3lzO1xyXG5cclxuICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uY2UoU2NlbmVFdmVudHMuQk9PVCwgdGhpcy5ib290LCB0aGlzKTtcclxuICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uKFNjZW5lRXZlbnRzLlNUQVJULCB0aGlzLnN0YXJ0LCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSwgb25seSBvbmNlLCB3aGVuIHRoZSBTY2VuZSBpcyBmaXJzdCBjcmVhdGVkLlxyXG4gICAgICogRG8gbm90IGludm9rZSBpdCBkaXJlY3RseS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5EaXNwbGF5TGlzdCNib290XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuNS4xXHJcbiAgICAgKi9cclxuICAgIGJvb3Q6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zeXN0ZW1zLmV2ZW50cy5vbmNlKFNjZW5lRXZlbnRzLkRFU1RST1ksIHRoaXMuZGVzdHJveSwgdGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIFNjZW5lIHdoZW4gaXQgaXMgc3RhcnRpbmcgdXAuXHJcbiAgICAgKiBJdCBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgbG9jYWwgc3lzdGVtcywgcHJvcGVydGllcyBhbmQgbGlzdGVuaW5nIGZvciBTY2VuZSBldmVudHMuXHJcbiAgICAgKiBEbyBub3QgaW52b2tlIGl0IGRpcmVjdGx5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkRpc3BsYXlMaXN0I3N0YXJ0XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgKi9cclxuICAgIHN0YXJ0OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuc3lzdGVtcy5ldmVudHMub25jZShTY2VuZUV2ZW50cy5TSFVURE9XTiwgdGhpcy5zaHV0ZG93biwgdGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9yY2UgYSBzb3J0IG9mIHRoZSBkaXNwbGF5IGxpc3Qgb24gdGhlIG5leHQgY2FsbCB0byBkZXB0aFNvcnQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuRGlzcGxheUxpc3QjcXVldWVEZXB0aFNvcnRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBxdWV1ZURlcHRoU29ydDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnNvcnRDaGlsZHJlbkZsYWcgPSB0cnVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEltbWVkaWF0ZWx5IHNvcnRzIHRoZSBkaXNwbGF5IGxpc3QgaWYgdGhlIGZsYWcgaXMgc2V0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkRpc3BsYXlMaXN0I2RlcHRoU29ydFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRlcHRoU29ydDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5zb3J0Q2hpbGRyZW5GbGFnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgU3RhYmxlU29ydC5pbnBsYWNlKHRoaXMubGlzdCwgdGhpcy5zb3J0QnlEZXB0aCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNvcnRDaGlsZHJlbkZsYWcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyZSB0aGUgZGVwdGggb2YgdHdvIEdhbWUgT2JqZWN0cy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5EaXNwbGF5TGlzdCNzb3J0QnlEZXB0aFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gY2hpbGRBIC0gVGhlIGZpcnN0IEdhbWUgT2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gY2hpbGRCIC0gVGhlIHNlY29uZCBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtpbnRlZ2VyfSBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBkZXB0aHMgb2YgZWFjaCBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc29ydEJ5RGVwdGg6IGZ1bmN0aW9uIChjaGlsZEEsIGNoaWxkQilcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gY2hpbGRBLl9kZXB0aCAtIGNoaWxkQi5fZGVwdGg7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhbiBhcnJheSB3aGljaCBjb250YWlucyBhbGwgb2JqZWN0cyBjdXJyZW50bHkgb24gdGhlIERpc3BsYXkgTGlzdC5cclxuICAgICAqIFRoaXMgaXMgYSByZWZlcmVuY2UgdG8gdGhlIG1haW4gbGlzdCBhcnJheSwgbm90IGEgY29weSBvZiBpdCwgc28gYmUgY2FyZWZ1bCBub3QgdG8gbW9kaWZ5IGl0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkRpc3BsYXlMaXN0I2dldENoaWxkcmVuXHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gVGhlIGdyb3VwIG1lbWJlcnMuXHJcbiAgICAgKi9cclxuICAgIGdldENoaWxkcmVuOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpc3Q7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFNjZW5lIHRoYXQgb3ducyB0aGlzIHBsdWdpbiBpcyBzaHV0dGluZyBkb3duLlxyXG4gICAgICogV2UgbmVlZCB0byBraWxsIGFuZCByZXNldCBhbGwgaW50ZXJuYWwgcHJvcGVydGllcyBhcyB3ZWxsIGFzIHN0b3AgbGlzdGVuaW5nIHRvIFNjZW5lIGV2ZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5EaXNwbGF5TGlzdCNzaHV0ZG93blxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBzaHV0ZG93bjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgaSA9IHRoaXMubGlzdC5sZW5ndGg7XHJcblxyXG4gICAgICAgIHdoaWxlIChpLS0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RbaV0uZGVzdHJveSh0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubGlzdC5sZW5ndGggPSAwO1xyXG5cclxuICAgICAgICB0aGlzLnN5c3RlbXMuZXZlbnRzLm9mZihTY2VuZUV2ZW50cy5TSFVURE9XTiwgdGhpcy5zaHV0ZG93biwgdGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFNjZW5lIHRoYXQgb3ducyB0aGlzIHBsdWdpbiBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAgICAgKiBXZSBuZWVkIHRvIHNodXRkb3duIGFuZCB0aGVuIGtpbGwgb2ZmIGFsbCBleHRlcm5hbCByZWZlcmVuY2VzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkRpc3BsYXlMaXN0I2Rlc3Ryb3lcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgZGVzdHJveTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnNodXRkb3duKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2NlbmUuc3lzLmV2ZW50cy5vZmYoU2NlbmVFdmVudHMuU1RBUlQsIHRoaXMuc3RhcnQsIHRoaXMpO1xyXG5cclxuICAgICAgICB0aGlzLnNjZW5lID0gbnVsbDtcclxuICAgICAgICB0aGlzLnN5c3RlbXMgPSBudWxsO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5QbHVnaW5DYWNoZS5yZWdpc3RlcignRGlzcGxheUxpc3QnLCBEaXNwbGF5TGlzdCwgJ2Rpc3BsYXlMaXN0Jyk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IERpc3BsYXlMaXN0O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBDb21wb25lbnRzVG9KU09OID0gcmVxdWlyZSgnLi9jb21wb25lbnRzL1RvSlNPTicpO1xyXG52YXIgRGF0YU1hbmFnZXIgPSByZXF1aXJlKCcuLi9kYXRhL0RhdGFNYW5hZ2VyJyk7XHJcbnZhciBFdmVudEVtaXR0ZXIgPSByZXF1aXJlKCdldmVudGVtaXR0ZXIzJyk7XHJcbnZhciBFdmVudHMgPSByZXF1aXJlKCcuL2V2ZW50cycpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogVGhlIGJhc2UgY2xhc3MgdGhhdCBhbGwgR2FtZSBPYmplY3RzIGV4dGVuZC5cclxuICogWW91IGRvbid0IGNyZWF0ZSBHYW1lT2JqZWN0cyBkaXJlY3RseSBhbmQgdGhleSBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGRpc3BsYXkgbGlzdC5cclxuICogSW5zdGVhZCwgdXNlIHRoZW0gYXMgdGhlIGJhc2UgZm9yIHlvdXIgb3duIGN1c3RvbSBjbGFzc2VzLlxyXG4gKlxyXG4gKiBAY2xhc3MgR2FtZU9iamVjdFxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkdhbWVPYmplY3RzXHJcbiAqIEBleHRlbmRzIFBoYXNlci5FdmVudHMuRXZlbnRFbWl0dGVyXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy5cclxuICogQHBhcmFtIHtzdHJpbmd9IHR5cGUgLSBBIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHR5cGUgb2YgR2FtZSBPYmplY3QsIGkuZS4gYHNwcml0ZWAuXHJcbiAqL1xyXG52YXIgR2FtZU9iamVjdCA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogRXZlbnRFbWl0dGVyLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gR2FtZU9iamVjdCAoc2NlbmUsIHR5cGUpXHJcbiAgICB7XHJcbiAgICAgICAgRXZlbnRFbWl0dGVyLmNhbGwodGhpcyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBTY2VuZSB0byB3aGljaCB0aGlzIEdhbWUgT2JqZWN0IGJlbG9uZ3MuXHJcbiAgICAgICAgICogR2FtZSBPYmplY3RzIGNhbiBvbmx5IGJlbG9uZyB0byBvbmUgU2NlbmUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdCNzY2VuZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU2NlbmV9XHJcbiAgICAgICAgICogQHByb3RlY3RlZFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2NlbmUgPSBzY2VuZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QsIGkuZS4gYHNwcml0ZWAuXHJcbiAgICAgICAgICogVXNlZCBpbnRlcm5hbGx5IGJ5IFBoYXNlciBidXQgaXMgYXZhaWxhYmxlIGZvciB5b3VyIG93biBjdXN0b20gY2xhc3NlcyB0byBwb3B1bGF0ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I3R5cGVcclxuICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjdXJyZW50IHN0YXRlIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogUGhhc2VyIGl0c2VsZiB3aWxsIG5ldmVyIG1vZGlmeSB0aGlzIHZhbHVlLCBhbHRob3VnaCBwbHVnaW5zIG1heSBkbyBzby5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byB0cmFjayB0aGUgc3RhdGUgb2YgYSBHYW1lIE9iamVjdCBkdXJpbmcgaXRzIGxpZmV0aW1lLiBGb3IgZXhhbXBsZSwgaXQgY291bGQgY2hhbmdlIGZyb21cclxuICAgICAgICAgKiBhIHN0YXRlIG9mICdtb3ZpbmcnLCB0byAnYXR0YWNraW5nJywgdG8gJ2RlYWQnLiBUaGUgc3RhdGUgdmFsdWUgc2hvdWxkIGJlIGFuIGludGVnZXIgKGlkZWFsbHkgbWFwcGVkIHRvIGEgY29uc3RhbnRcclxuICAgICAgICAgKiBpbiB5b3VyIGdhbWUgY29kZSksIG9yIGEgc3RyaW5nLiBUaGVzZSBhcmUgcmVjb21tZW5kZWQgdG8ga2VlcCBpdCBsaWdodCBhbmQgc2ltcGxlLCB3aXRoIGZhc3QgY29tcGFyaXNvbnMuXHJcbiAgICAgICAgICogSWYgeW91IG5lZWQgdG8gc3RvcmUgY29tcGxleCBkYXRhIGFib3V0IHlvdXIgR2FtZSBPYmplY3QsIGxvb2sgYXQgdXNpbmcgdGhlIERhdGEgQ29tcG9uZW50IGluc3RlYWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdCNzdGF0ZVxyXG4gICAgICAgICAqIEB0eXBlIHsoaW50ZWdlcnxzdHJpbmcpfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE2LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnN0YXRlID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHBhcmVudCBDb250YWluZXIgb2YgdGhpcyBHYW1lIE9iamVjdCwgaWYgaXQgaGFzIG9uZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I3BhcmVudENvbnRhaW5lclxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucGFyZW50Q29udGFpbmVyID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIG5hbWUgb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAgICAgKiBFbXB0eSBieSBkZWZhdWx0IGFuZCBuZXZlciBwb3B1bGF0ZWQgYnkgUGhhc2VyLCB0aGlzIGlzIGxlZnQgZm9yIGRldmVsb3BlcnMgdG8gdXNlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjbmFtZVxyXG4gICAgICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgICAgICogQGRlZmF1bHQgJydcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm5hbWUgPSAnJztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGFjdGl2ZSBzdGF0ZSBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICAgICAqIEEgR2FtZSBPYmplY3Qgd2l0aCBhbiBhY3RpdmUgc3RhdGUgb2YgYHRydWVgIGlzIHByb2Nlc3NlZCBieSB0aGUgU2NlbmVzIFVwZGF0ZUxpc3QsIGlmIGFkZGVkIHRvIGl0LlxyXG4gICAgICAgICAqIEFuIGFjdGl2ZSBvYmplY3QgaXMgb25lIHdoaWNoIGlzIGhhdmluZyBpdHMgbG9naWMgYW5kIGludGVybmFsIHN5c3RlbXMgdXBkYXRlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I2FjdGl2ZVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBUYWIgSW5kZXggb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICAgICAqIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGJ5IHBsdWdpbnMgYW5kIHRoZSBJbnB1dCBNYW5hZ2VyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjdGFiSW5kZXhcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAtMVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudGFiSW5kZXggPSAtMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBEYXRhIE1hbmFnZXIuXHJcbiAgICAgICAgICogSXQgYWxsb3dzIHlvdSB0byBzdG9yZSwgcXVlcnkgYW5kIGdldCBrZXkvdmFsdWUgcGFpcmVkIGluZm9ybWF0aW9uIHNwZWNpZmljIHRvIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgICAgICogYG51bGxgIGJ5IGRlZmF1bHQuIEF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpZiB5b3UgdXNlIGBnZXREYXRhYCBvciBgc2V0RGF0YWAgb3IgYHNldERhdGFFbmFibGVkYC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I2RhdGFcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkRhdGEuRGF0YU1hbmFnZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBmbGFncyB0aGF0IGFyZSBjb21wYXJlZCBhZ2FpbnN0IGBSRU5ERVJfTUFTS2AgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgR2FtZSBPYmplY3Qgd2lsbCByZW5kZXIgb3Igbm90LlxyXG4gICAgICAgICAqIFRoZSBiaXRzIGFyZSAwMDAxIHwgMDAxMCB8IDAxMDAgfCAxMDAwIHNldCBieSB0aGUgY29tcG9uZW50cyBWaXNpYmxlLCBBbHBoYSwgVHJhbnNmb3JtIGFuZCBUZXh0dXJlIHJlc3BlY3RpdmVseS5cclxuICAgICAgICAgKiBJZiB0aG9zZSBjb21wb25lbnRzIGFyZSBub3QgdXNlZCBieSB5b3VyIGN1c3RvbSBjbGFzcyB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgYml0bWFzayBhcyB5b3Ugd2lzaC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I3JlbmRlckZsYWdzXHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMTVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJlbmRlckZsYWdzID0gMTU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgYml0bWFzayB0aGF0IGNvbnRyb2xzIGlmIHRoaXMgR2FtZSBPYmplY3QgaXMgZHJhd24gYnkgYSBDYW1lcmEgb3Igbm90LlxyXG4gICAgICAgICAqIE5vdCB1c3VhbGx5IHNldCBkaXJlY3RseSwgaW5zdGVhZCBjYWxsIGBDYW1lcmEuaWdub3JlYCwgaG93ZXZlciB5b3UgY2FuXHJcbiAgICAgICAgICogc2V0IHRoaXMgcHJvcGVydHkgZGlyZWN0bHkgdXNpbmcgdGhlIENhbWVyYS5pZCBwcm9wZXJ0eTpcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBleGFtcGxlXHJcbiAgICAgICAgICogdGhpcy5jYW1lcmFGaWx0ZXIgfD0gY2FtZXJhLmlkXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdCNjYW1lcmFGaWx0ZXJcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNhbWVyYUZpbHRlciA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElmIHRoaXMgR2FtZSBPYmplY3QgaXMgZW5hYmxlZCBmb3IgaW5wdXQgdGhlbiB0aGlzIHByb3BlcnR5IHdpbGwgY29udGFpbiBhbiBJbnRlcmFjdGl2ZU9iamVjdCBpbnN0YW5jZS5cclxuICAgICAgICAgKiBOb3QgdXN1YWxseSBzZXQgZGlyZWN0bHkuIEluc3RlYWQgY2FsbCBgR2FtZU9iamVjdC5zZXRJbnRlcmFjdGl2ZSgpYC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I2lucHV0XHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuVHlwZXMuSW5wdXQuSW50ZXJhY3RpdmVPYmplY3R9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaW5wdXQgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGlzIEdhbWUgT2JqZWN0IGlzIGVuYWJsZWQgZm9yIEFyY2FkZSBvciBNYXR0ZXIgUGh5c2ljcyB0aGVuIHRoaXMgcHJvcGVydHkgd2lsbCBjb250YWluIGEgcmVmZXJlbmNlIHRvIGEgUGh5c2ljcyBCb2R5LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjYm9keVxyXG4gICAgICAgICAqIEB0eXBlIHs/KG9iamVjdHxQaGFzZXIuUGh5c2ljcy5BcmNhZGUuQm9keXxNYXR0ZXJKUy5Cb2R5VHlwZSl9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYm9keSA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoaXMgR2FtZSBPYmplY3Qgd2lsbCBpZ25vcmUgYWxsIGNhbGxzIG1hZGUgdG8gaXRzIGRlc3Ryb3kgbWV0aG9kIGlmIHRoaXMgZmxhZyBpcyBzZXQgdG8gYHRydWVgLlxyXG4gICAgICAgICAqIFRoaXMgaW5jbHVkZXMgY2FsbHMgdGhhdCBtYXkgY29tZSBmcm9tIGEgR3JvdXAsIENvbnRhaW5lciBvciB0aGUgU2NlbmUgaXRzZWxmLlxyXG4gICAgICAgICAqIFdoaWxlIGl0IGFsbG93cyB5b3UgdG8gcGVyc2lzdCBhIEdhbWUgT2JqZWN0IGFjcm9zcyBTY2VuZXMsIHBsZWFzZSB1bmRlcnN0YW5kIHlvdSBhcmUgZW50aXJlbHlcclxuICAgICAgICAgKiByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgcmVmZXJlbmNlcyB0byBhbmQgZnJvbSB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjaWdub3JlRGVzdHJveVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pZ25vcmVEZXN0cm95ID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vICBUZWxsIHRoZSBTY2VuZSB0byByZS1zb3J0IHRoZSBjaGlsZHJlblxyXG4gICAgICAgIHNjZW5lLnN5cy5xdWV1ZURlcHRoU29ydCgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGBhY3RpdmVgIHByb3BlcnR5IG9mIHRoaXMgR2FtZSBPYmplY3QgYW5kIHJldHVybnMgdGhpcyBHYW1lIE9iamVjdCBmb3IgZnVydGhlciBjaGFpbmluZy5cclxuICAgICAqIEEgR2FtZSBPYmplY3Qgd2l0aCBpdHMgYGFjdGl2ZWAgcHJvcGVydHkgc2V0IHRvIGB0cnVlYCB3aWxsIGJlIHVwZGF0ZWQgYnkgdGhlIFNjZW5lcyBVcGRhdGVMaXN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3Qjc2V0QWN0aXZlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbHVlIC0gVHJ1ZSBpZiB0aGlzIEdhbWUgT2JqZWN0IHNob3VsZCBiZSBzZXQgYXMgYWN0aXZlLCBmYWxzZSBpZiBub3QuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRBY3RpdmU6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBgbmFtZWAgcHJvcGVydHkgb2YgdGhpcyBHYW1lIE9iamVjdCBhbmQgcmV0dXJucyB0aGlzIEdhbWUgT2JqZWN0IGZvciBmdXJ0aGVyIGNoYWluaW5nLlxyXG4gICAgICogVGhlIGBuYW1lYCBwcm9wZXJ0eSBpcyBub3QgcG9wdWxhdGVkIGJ5IFBoYXNlciBhbmQgaXMgcHJlc2VudGVkIGZvciB5b3VyIG93biB1c2UuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdCNzZXROYW1lXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBUaGUgbmFtZSB0byBiZSBnaXZlbiB0byB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZU9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0TmFtZTogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMubmFtZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIFBoYXNlciBpdHNlbGYgd2lsbCBuZXZlciBtb2RpZnkgdGhlIFN0YXRlIG9mIGEgR2FtZSBPYmplY3QsIGFsdGhvdWdoIHBsdWdpbnMgbWF5IGRvIHNvLlxyXG4gICAgICogXHJcbiAgICAgKiBGb3IgZXhhbXBsZSwgYSBHYW1lIE9iamVjdCBjb3VsZCBjaGFuZ2UgZnJvbSBhIHN0YXRlIG9mICdtb3ZpbmcnLCB0byAnYXR0YWNraW5nJywgdG8gJ2RlYWQnLlxyXG4gICAgICogVGhlIHN0YXRlIHZhbHVlIHNob3VsZCB0eXBpY2FsbHkgYmUgYW4gaW50ZWdlciAoaWRlYWxseSBtYXBwZWQgdG8gYSBjb25zdGFudFxyXG4gICAgICogaW4geW91ciBnYW1lIGNvZGUpLCBidXQgY291bGQgYWxzbyBiZSBhIHN0cmluZy4gSXQgaXMgcmVjb21tZW5kZWQgdG8ga2VlcCBpdCBsaWdodCBhbmQgc2ltcGxlLlxyXG4gICAgICogSWYgeW91IG5lZWQgdG8gc3RvcmUgY29tcGxleCBkYXRhIGFib3V0IHlvdXIgR2FtZSBPYmplY3QsIGxvb2sgYXQgdXNpbmcgdGhlIERhdGEgQ29tcG9uZW50IGluc3RlYWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdCNzZXRTdGF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTYuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KGludGVnZXJ8c3RyaW5nKX0gdmFsdWUgLSBUaGUgc3RhdGUgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZU9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0U3RhdGU6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnN0YXRlID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYSBEYXRhIE1hbmFnZXIgY29tcG9uZW50IHRvIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdCNzZXREYXRhRW5hYmxlZFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKiBAc2VlIFBoYXNlci5EYXRhLkRhdGFNYW5hZ2VyXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXREYXRhRW5hYmxlZDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IG5ldyBEYXRhTWFuYWdlcih0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFsbG93cyB5b3UgdG8gc3RvcmUgYSBrZXkgdmFsdWUgcGFpciB3aXRoaW4gdGhpcyBHYW1lIE9iamVjdHMgRGF0YSBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBHYW1lIE9iamVjdCBoYXMgbm90IGJlZW4gZW5hYmxlZCBmb3IgZGF0YSAodmlhIGBzZXREYXRhRW5hYmxlZGApIHRoZW4gaXQgd2lsbCBiZSBlbmFibGVkXHJcbiAgICAgKiBiZWZvcmUgc2V0dGluZyB0aGUgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogSWYgdGhlIGtleSBkb2Vzbid0IGFscmVhZHkgZXhpc3QgaW4gdGhlIERhdGEgTWFuYWdlciB0aGVuIGl0IGlzIGNyZWF0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogc3ByaXRlLnNldERhdGEoJ25hbWUnLCAnUmVkIEdlbSBTdG9uZScpO1xyXG4gICAgICogYGBgXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBhbHNvIHBhc3MgaW4gYW4gb2JqZWN0IG9mIGtleSB2YWx1ZSBwYWlycyBhcyB0aGUgZmlyc3QgYXJndW1lbnQ6XHJcbiAgICAgKlxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogc3ByaXRlLnNldERhdGEoeyBuYW1lOiAnUmVkIEdlbSBTdG9uZScsIGxldmVsOiAyLCBvd25lcjogJ0xpbmsnLCBnb2xkOiA1MCB9KTtcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIFRvIGdldCBhIHZhbHVlIGJhY2sgYWdhaW4geW91IGNhbiBjYWxsIGBnZXREYXRhYDpcclxuICAgICAqXHJcbiAgICAgKiBgYGBqYXZhc2NyaXB0XHJcbiAgICAgKiBzcHJpdGUuZ2V0RGF0YSgnZ29sZCcpO1xyXG4gICAgICogYGBgXHJcbiAgICAgKlxyXG4gICAgICogT3IgeW91IGNhbiBhY2Nlc3MgdGhlIHZhbHVlIGRpcmVjdGx5IHZpYSB0aGUgYHZhbHVlc2AgcHJvcGVydHksIHdoZXJlIGl0IHdvcmtzIGxpa2UgYW55IG90aGVyIHZhcmlhYmxlOlxyXG4gICAgICpcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIHNwcml0ZS5kYXRhLnZhbHVlcy5nb2xkICs9IDUwO1xyXG4gICAgICogYGBgXHJcbiAgICAgKlxyXG4gICAgICogV2hlbiB0aGUgdmFsdWUgaXMgZmlyc3Qgc2V0LCBhIGBzZXRkYXRhYCBldmVudCBpcyBlbWl0dGVkIGZyb20gdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUga2V5IGFscmVhZHkgZXhpc3RzLCBhIGBjaGFuZ2VkYXRhYCBldmVudCBpcyBlbWl0dGVkIGluc3RlYWQsIGFsb25nIGFuIGV2ZW50IG5hbWVkIGFmdGVyIHRoZSBrZXkuXHJcbiAgICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91IHVwZGF0ZWQgYW4gZXhpc3Rpbmcga2V5IGNhbGxlZCBgUGxheWVyTGl2ZXNgIHRoZW4gaXQgd291bGQgZW1pdCB0aGUgZXZlbnQgYGNoYW5nZWRhdGEtUGxheWVyTGl2ZXNgLlxyXG4gICAgICogVGhlc2UgZXZlbnRzIHdpbGwgYmUgZW1pdHRlZCByZWdhcmRsZXNzIGlmIHlvdSB1c2UgdGhpcyBtZXRob2QgdG8gc2V0IHRoZSB2YWx1ZSwgb3IgdGhlIGRpcmVjdCBgdmFsdWVzYCBzZXR0ZXIuXHJcbiAgICAgKlxyXG4gICAgICogUGxlYXNlIG5vdGUgdGhhdCB0aGUgZGF0YSBrZXlzIGFyZSBjYXNlLXNlbnNpdGl2ZSBhbmQgbXVzdCBiZSB2YWxpZCBKYXZhU2NyaXB0IE9iamVjdCBwcm9wZXJ0eSBzdHJpbmdzLlxyXG4gICAgICogVGhpcyBtZWFucyB0aGUga2V5cyBgZ29sZGAgYW5kIGBHb2xkYCBhcmUgdHJlYXRlZCBhcyB0d28gdW5pcXVlIHZhbHVlcyB3aXRoaW4gdGhlIERhdGEgTWFuYWdlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I3NldERhdGFcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xvYmplY3QpfSBrZXkgLSBUaGUga2V5IHRvIHNldCB0aGUgdmFsdWUgZm9yLiBPciBhbiBvYmplY3Qgb2Yga2V5IHZhbHVlIHBhaXJzLiBJZiBhbiBvYmplY3QgdGhlIGBkYXRhYCBhcmd1bWVudCBpcyBpZ25vcmVkLlxyXG4gICAgICogQHBhcmFtIHsqfSBbZGF0YV0gLSBUaGUgdmFsdWUgdG8gc2V0IGZvciB0aGUgZ2l2ZW4ga2V5LiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgYXMgdGhlIGtleSB0aGlzIGFyZ3VtZW50IGlzIGlnbm9yZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXREYXRhOiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IG5ldyBEYXRhTWFuYWdlcih0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YS5zZXQoa2V5LCB2YWx1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluY3JlYXNlIGEgdmFsdWUgZm9yIHRoZSBnaXZlbiBrZXkgd2l0aGluIHRoaXMgR2FtZSBPYmplY3RzIERhdGEgTWFuYWdlci4gSWYgdGhlIGtleSBkb2Vzbid0IGFscmVhZHkgZXhpc3QgaW4gdGhlIERhdGEgTWFuYWdlciB0aGVuIGl0IGlzIGluY3JlYXNlZCBmcm9tIDAuXHJcbiAgICAgKlxyXG4gICAgICogSWYgdGhlIEdhbWUgT2JqZWN0IGhhcyBub3QgYmVlbiBlbmFibGVkIGZvciBkYXRhICh2aWEgYHNldERhdGFFbmFibGVkYCkgdGhlbiBpdCB3aWxsIGJlIGVuYWJsZWRcclxuICAgICAqIGJlZm9yZSBzZXR0aW5nIHRoZSB2YWx1ZS5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUga2V5IGRvZXNuJ3QgYWxyZWFkeSBleGlzdCBpbiB0aGUgRGF0YSBNYW5hZ2VyIHRoZW4gaXQgaXMgY3JlYXRlZC5cclxuICAgICAqIFxyXG4gICAgICogV2hlbiB0aGUgdmFsdWUgaXMgZmlyc3Qgc2V0LCBhIGBzZXRkYXRhYCBldmVudCBpcyBlbWl0dGVkIGZyb20gdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I2luY0RhdGFcclxuICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8b2JqZWN0KX0ga2V5IC0gVGhlIGtleSB0byBpbmNyZWFzZSB0aGUgdmFsdWUgZm9yLlxyXG4gICAgICogQHBhcmFtIHsqfSBbZGF0YV0gLSBUaGUgdmFsdWUgdG8gaW5jcmVhc2UgZm9yIHRoZSBnaXZlbiBrZXkuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBpbmNEYXRhOiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IG5ldyBEYXRhTWFuYWdlcih0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YS5pbmMoa2V5LCB2YWx1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvZ2dsZSBhIGJvb2xlYW4gdmFsdWUgZm9yIHRoZSBnaXZlbiBrZXkgd2l0aGluIHRoaXMgR2FtZSBPYmplY3RzIERhdGEgTWFuYWdlci4gSWYgdGhlIGtleSBkb2Vzbid0IGFscmVhZHkgZXhpc3QgaW4gdGhlIERhdGEgTWFuYWdlciB0aGVuIGl0IGlzIHRvZ2dsZWQgZnJvbSBmYWxzZS5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUgR2FtZSBPYmplY3QgaGFzIG5vdCBiZWVuIGVuYWJsZWQgZm9yIGRhdGEgKHZpYSBgc2V0RGF0YUVuYWJsZWRgKSB0aGVuIGl0IHdpbGwgYmUgZW5hYmxlZFxyXG4gICAgICogYmVmb3JlIHNldHRpbmcgdGhlIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBrZXkgZG9lc24ndCBhbHJlYWR5IGV4aXN0IGluIHRoZSBEYXRhIE1hbmFnZXIgdGhlbiBpdCBpcyBjcmVhdGVkLlxyXG4gICAgICogXHJcbiAgICAgKiBXaGVuIHRoZSB2YWx1ZSBpcyBmaXJzdCBzZXQsIGEgYHNldGRhdGFgIGV2ZW50IGlzIGVtaXR0ZWQgZnJvbSB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjdG9nZ2xlRGF0YVxyXG4gICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xvYmplY3QpfSBrZXkgLSBUaGUga2V5IHRvIHRvZ2dsZSB0aGUgdmFsdWUgZm9yLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZU9iamVjdC5cclxuICAgICAqL1xyXG4gICAgdG9nZ2xlRGF0YTogZnVuY3Rpb24gKGtleSlcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IG5ldyBEYXRhTWFuYWdlcih0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZGF0YS50b2dnbGUoa2V5KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGtleSBpbiB0aGlzIEdhbWUgT2JqZWN0cyBEYXRhIE1hbmFnZXIsIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0LlxyXG4gICAgICpcclxuICAgICAqIFlvdSBjYW4gYWxzbyBhY2Nlc3MgdmFsdWVzIHZpYSB0aGUgYHZhbHVlc2Agb2JqZWN0LiBGb3IgZXhhbXBsZSwgaWYgeW91IGhhZCBhIGtleSBjYWxsZWQgYGdvbGRgIHlvdSBjYW4gZG8gZWl0aGVyOlxyXG4gICAgICpcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIHNwcml0ZS5nZXREYXRhKCdnb2xkJyk7XHJcbiAgICAgKiBgYGBcclxuICAgICAqXHJcbiAgICAgKiBPciBhY2Nlc3MgdGhlIHZhbHVlIGRpcmVjdGx5OlxyXG4gICAgICpcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIHNwcml0ZS5kYXRhLnZhbHVlcy5nb2xkO1xyXG4gICAgICogYGBgXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBhbHNvIHBhc3MgaW4gYW4gYXJyYXkgb2Yga2V5cywgaW4gd2hpY2ggY2FzZSBhbiBhcnJheSBvZiB2YWx1ZXMgd2lsbCBiZSByZXR1cm5lZDpcclxuICAgICAqXHJcbiAgICAgKiBgYGBqYXZhc2NyaXB0XHJcbiAgICAgKiBzcHJpdGUuZ2V0RGF0YShbICdnb2xkJywgJ2FybW9yJywgJ2hlYWx0aCcgXSk7XHJcbiAgICAgKiBgYGBcclxuICAgICAqXHJcbiAgICAgKiBUaGlzIGFwcHJvYWNoIGlzIHVzZWZ1bCBmb3IgZGVzdHJ1Y3R1cmluZyBhcnJheXMgaW4gRVM2LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjZ2V0RGF0YVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfHN0cmluZ1tdKX0ga2V5IC0gVGhlIGtleSBvZiB0aGUgdmFsdWUgdG8gcmV0cmlldmUsIG9yIGFuIGFycmF5IG9mIGtleXMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Kn0gVGhlIHZhbHVlIGJlbG9uZ2luZyB0byB0aGUgZ2l2ZW4ga2V5LCBvciBhbiBhcnJheSBvZiB2YWx1ZXMsIHRoZSBvcmRlciBvZiB3aGljaCB3aWxsIG1hdGNoIHRoZSBpbnB1dCBhcnJheS5cclxuICAgICAqL1xyXG4gICAgZ2V0RGF0YTogZnVuY3Rpb24gKGtleSlcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0YSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IG5ldyBEYXRhTWFuYWdlcih0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuZ2V0KGtleSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGFzcyB0aGlzIEdhbWUgT2JqZWN0IHRvIHRoZSBJbnB1dCBNYW5hZ2VyIHRvIGVuYWJsZSBpdCBmb3IgSW5wdXQuXHJcbiAgICAgKlxyXG4gICAgICogSW5wdXQgd29ya3MgYnkgdXNpbmcgaGl0IGFyZWFzLCB0aGVzZSBhcmUgbmVhcmx5IGFsd2F5cyBnZW9tZXRyaWMgc2hhcGVzLCBzdWNoIGFzIHJlY3RhbmdsZXMgb3IgY2lyY2xlcywgdGhhdCBhY3QgYXMgdGhlIGhpdCBhcmVhXHJcbiAgICAgKiBmb3IgdGhlIEdhbWUgT2JqZWN0LiBIb3dldmVyLCB5b3UgY2FuIHByb3ZpZGUgeW91ciBvd24gaGl0IGFyZWEgc2hhcGUgYW5kIGNhbGxiYWNrLCBzaG91bGQgeW91IHdpc2ggdG8gaGFuZGxlIHNvbWUgbW9yZSBhZHZhbmNlZFxyXG4gICAgICogaW5wdXQgZGV0ZWN0aW9uLlxyXG4gICAgICpcclxuICAgICAqIElmIG5vIGFyZ3VtZW50cyBhcmUgcHJvdmlkZWQgaXQgd2lsbCB0cnkgYW5kIGNyZWF0ZSBhIHJlY3RhbmdsZSBoaXQgYXJlYSBiYXNlZCBvbiB0aGUgdGV4dHVyZSBmcmFtZSB0aGUgR2FtZSBPYmplY3QgaXMgdXNpbmcuIElmXHJcbiAgICAgKiB0aGlzIGlzbid0IGEgdGV4dHVyZS1ib3VuZCBvYmplY3QsIHN1Y2ggYXMgYSBHcmFwaGljcyBvciBCaXRtYXBUZXh0IG9iamVjdCwgdGhpcyB3aWxsIGZhaWwsIGFuZCB5b3UnbGwgbmVlZCB0byBwcm92aWRlIGEgc3BlY2lmaWNcclxuICAgICAqIHNoYXBlIGZvciBpdCB0byB1c2UuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBhbHNvIHByb3ZpZGUgYW4gSW5wdXQgQ29uZmlndXJhdGlvbiBPYmplY3QgYXMgdGhlIG9ubHkgYXJndW1lbnQgdG8gdGhpcyBtZXRob2QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdCNzZXRJbnRlcmFjdGl2ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoUGhhc2VyLlR5cGVzLklucHV0LklucHV0Q29uZmlndXJhdGlvbnxhbnkpfSBbc2hhcGVdIC0gRWl0aGVyIGFuIGlucHV0IGNvbmZpZ3VyYXRpb24gb2JqZWN0LCBvciBhIGdlb21ldHJpYyBzaGFwZSB0aGF0IGRlZmluZXMgdGhlIGhpdCBhcmVhIGZvciB0aGUgR2FtZSBPYmplY3QuIElmIG5vdCBzcGVjaWZpZWQgYSBSZWN0YW5nbGUgd2lsbCBiZSB1c2VkLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuSW5wdXQuSGl0QXJlYUNhbGxiYWNrfSBbY2FsbGJhY2tdIC0gQSBjYWxsYmFjayB0byBiZSBpbnZva2VkIHdoZW4gdGhlIEdhbWUgT2JqZWN0IGlzIGludGVyYWN0ZWQgd2l0aC4gSWYgeW91IHByb3ZpZGUgYSBzaGFwZSB5b3UgbXVzdCBhbHNvIHByb3ZpZGUgYSBjYWxsYmFjay5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Ryb3Bab25lPWZhbHNlXSAtIFNob3VsZCB0aGlzIEdhbWUgT2JqZWN0IGJlIHRyZWF0ZWQgYXMgYSBkcm9wIHpvbmUgdGFyZ2V0P1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZU9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0SW50ZXJhY3RpdmU6IGZ1bmN0aW9uIChzaGFwZSwgY2FsbGJhY2ssIGRyb3Bab25lKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuc2NlbmUuc3lzLmlucHV0LmVuYWJsZSh0aGlzLCBzaGFwZSwgY2FsbGJhY2ssIGRyb3Bab25lKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhpcyBHYW1lIE9iamVjdCBoYXMgcHJldmlvdXNseSBiZWVuIGVuYWJsZWQgZm9yIGlucHV0LCB0aGlzIHdpbGwgZGlzYWJsZSBpdC5cclxuICAgICAqXHJcbiAgICAgKiBBbiBvYmplY3QgdGhhdCBpcyBkaXNhYmxlZCBmb3IgaW5wdXQgc3RvcHMgcHJvY2Vzc2luZyBvciBiZWluZyBjb25zaWRlcmVkIGZvclxyXG4gICAgICogaW5wdXQgZXZlbnRzLCBidXQgY2FuIGJlIHR1cm5lZCBiYWNrIG9uIGFnYWluIGF0IGFueSB0aW1lIGJ5IHNpbXBseSBjYWxsaW5nXHJcbiAgICAgKiBgc2V0SW50ZXJhY3RpdmUoKWAgd2l0aCBubyBhcmd1bWVudHMgcHJvdmlkZWQuXHJcbiAgICAgKlxyXG4gICAgICogSWYgd2FudCB0byBjb21wbGV0ZWx5IHJlbW92ZSBpbnRlcmFjdGlvbiBmcm9tIHRoaXMgR2FtZSBPYmplY3QgdGhlbiB1c2UgYHJlbW92ZUludGVyYWN0aXZlYCBpbnN0ZWFkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjZGlzYWJsZUludGVyYWN0aXZlXHJcbiAgICAgKiBAc2luY2UgMy43LjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWVPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGRpc2FibGVJbnRlcmFjdGl2ZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5pbnB1dClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQuZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSWYgdGhpcyBHYW1lIE9iamVjdCBoYXMgcHJldmlvdXNseSBiZWVuIGVuYWJsZWQgZm9yIGlucHV0LCB0aGlzIHdpbGwgcXVldWUgaXRcclxuICAgICAqIGZvciByZW1vdmFsLCBjYXVzaW5nIGl0IHRvIG5vIGxvbmdlciBiZSBpbnRlcmFjdGl2ZS4gVGhlIHJlbW92YWwgaGFwcGVucyBvblxyXG4gICAgICogdGhlIG5leHQgZ2FtZSBzdGVwLCBpdCBpcyBub3QgaW1tZWRpYXRlLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBJbnRlcmFjdGl2ZSBPYmplY3QgdGhhdCB3YXMgYXNzaWduZWQgdG8gdGhpcyBHYW1lIE9iamVjdCB3aWxsIGJlIGRlc3Ryb3llZCxcclxuICAgICAqIHJlbW92ZWQgZnJvbSB0aGUgSW5wdXQgTWFuYWdlciBhbmQgY2xlYXJlZCBmcm9tIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogSWYgeW91IHdpc2ggdG8gcmUtZW5hYmxlIHRoaXMgR2FtZSBPYmplY3QgYXQgYSBsYXRlciBkYXRlIHlvdSB3aWxsIG5lZWQgdG9cclxuICAgICAqIHJlLWNyZWF0ZSBpdHMgSW50ZXJhY3RpdmVPYmplY3QgYnkgY2FsbGluZyBgc2V0SW50ZXJhY3RpdmVgIGFnYWluLlxyXG4gICAgICpcclxuICAgICAqIElmIHlvdSB3aXNoIHRvIG9ubHkgdGVtcG9yYXJpbHkgc3RvcCBhbiBvYmplY3QgZnJvbSByZWNlaXZpbmcgaW5wdXQgdGhlbiB1c2VcclxuICAgICAqIGBkaXNhYmxlSW50ZXJhY3RpdmVgIGluc3RlYWQsIGFzIHRoYXQgdG9nZ2xlcyB0aGUgaW50ZXJhY3RpdmUgc3RhdGUsIHdoZXJlLWFzXHJcbiAgICAgKiB0aGlzIGVyYXNlcyBpdCBjb21wbGV0ZWx5LlxyXG4gICAgICogXHJcbiAgICAgKiBJZiB5b3Ugd2lzaCB0byByZXNpemUgYSBoaXQgYXJlYSwgZG9uJ3QgcmVtb3ZlIGFuZCB0aGVuIHNldCBpdCBhcyBiZWluZ1xyXG4gICAgICogaW50ZXJhY3RpdmUuIEluc3RlYWQsIGFjY2VzcyB0aGUgaGl0YXJlYSBvYmplY3QgZGlyZWN0bHkgYW5kIHJlc2l6ZSB0aGUgc2hhcGVcclxuICAgICAqIGJlaW5nIHVzZWQuIEkuZS46IGBzcHJpdGUuaW5wdXQuaGl0QXJlYS5zZXRTaXplKHdpZHRoLCBoZWlnaHQpYCAoYXNzdW1pbmcgdGhlXHJcbiAgICAgKiBzaGFwZSBpcyBhIFJlY3RhbmdsZSwgd2hpY2ggaXQgaXMgYnkgZGVmYXVsdC4pXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdCNyZW1vdmVJbnRlcmFjdGl2ZVxyXG4gICAgICogQHNpbmNlIDMuNy4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICByZW1vdmVJbnRlcmFjdGl2ZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnNjZW5lLnN5cy5pbnB1dC5jbGVhcih0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5pbnB1dCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVG8gYmUgb3ZlcnJpZGRlbiBieSBjdXN0b20gR2FtZU9iamVjdHMuIEFsbG93cyBiYXNlIG9iamVjdHMgdG8gYmUgdXNlZCBpbiBhIFBvb2wuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdCN1cGRhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIC0gYXJnc1xyXG4gICAgICovXHJcbiAgICB1cGRhdGU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjdG9KU09OXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuSlNPTkdhbWVPYmplY3R9IEEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHRvSlNPTjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gQ29tcG9uZW50c1RvSlNPTih0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJlcyB0aGUgcmVuZGVyTWFzayB3aXRoIHRoZSByZW5kZXJGbGFncyB0byBzZWUgaWYgdGhpcyBHYW1lIE9iamVjdCB3aWxsIHJlbmRlciBvciBub3QuXHJcbiAgICAgKiBBbHNvIGNoZWNrcyB0aGUgR2FtZSBPYmplY3QgYWdhaW5zdCB0aGUgZ2l2ZW4gQ2FtZXJhcyBleGNsdXNpb24gbGlzdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I3dpbGxSZW5kZXJcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdG8gY2hlY2sgYWdhaW5zdCB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhlIEdhbWUgT2JqZWN0IHNob3VsZCBiZSByZW5kZXJlZCwgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gICAgICovXHJcbiAgICB3aWxsUmVuZGVyOiBmdW5jdGlvbiAoY2FtZXJhKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiAhKEdhbWVPYmplY3QuUkVOREVSX01BU0sgIT09IHRoaXMucmVuZGVyRmxhZ3MgfHwgKHRoaXMuY2FtZXJhRmlsdGVyICE9PSAwICYmICh0aGlzLmNhbWVyYUZpbHRlciAmIGNhbWVyYS5pZCkpKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGRpc3BsYXkgbGlzdCBpbmRleCBvZiBlaXRoZXIgdGhpcyBHYW1lIE9iamVjdCwgb3IgaWYgaXQgaGFzIG9uZSxcclxuICAgICAqIGl0cyBwYXJlbnQgQ29udGFpbmVyLiBJdCB0aGVuIGl0ZXJhdGVzIHVwIHRocm91Z2ggYWxsIG9mIHRoZSBwYXJlbnQgY29udGFpbmVycyB1bnRpbCBpdCBoaXRzIHRoZVxyXG4gICAgICogcm9vdCBvZiB0aGUgZGlzcGxheSBsaXN0ICh3aGljaCBpcyBpbmRleCAwIGluIHRoZSByZXR1cm5lZCBhcnJheSkuXHJcbiAgICAgKlxyXG4gICAgICogVXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBJbnB1dFBsdWdpbiBidXQgYWxzbyB1c2VmdWwgaWYgeW91IHdpc2ggdG8gZmluZCBvdXQgdGhlIGRpc3BsYXkgZGVwdGggb2ZcclxuICAgICAqIHRoaXMgR2FtZSBPYmplY3QgYW5kIGFsbCBvZiBpdHMgYW5jZXN0b3JzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjZ2V0SW5kZXhMaXN0XHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtpbnRlZ2VyW119IEFuIGFycmF5IG9mIGRpc3BsYXkgbGlzdCBwb3NpdGlvbiBpbmRleGVzLlxyXG4gICAgICovXHJcbiAgICBnZXRJbmRleExpc3Q6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnNpc3RlbnQtdGhpc1xyXG4gICAgICAgIHZhciBjaGlsZCA9IHRoaXM7XHJcbiAgICAgICAgdmFyIHBhcmVudCA9IHRoaXMucGFyZW50Q29udGFpbmVyO1xyXG5cclxuICAgICAgICB2YXIgaW5kZXhlcyA9IFtdO1xyXG5cclxuICAgICAgICB3aGlsZSAocGFyZW50KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gaW5kZXhlcy51bnNoaWZ0KFtwYXJlbnQuZ2V0SW5kZXgoY2hpbGQpLCBwYXJlbnQubmFtZV0pO1xyXG4gICAgICAgICAgICBpbmRleGVzLnVuc2hpZnQocGFyZW50LmdldEluZGV4KGNoaWxkKSk7XHJcblxyXG4gICAgICAgICAgICBjaGlsZCA9IHBhcmVudDtcclxuXHJcbiAgICAgICAgICAgIGlmICghcGFyZW50LnBhcmVudENvbnRhaW5lcilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50Q29udGFpbmVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBpbmRleGVzLnVuc2hpZnQoW3RoaXMuc2NlbmUuc3lzLmRpc3BsYXlMaXN0LmdldEluZGV4KGNoaWxkKSwgJ3Jvb3QnXSk7XHJcbiAgICAgICAgaW5kZXhlcy51bnNoaWZ0KHRoaXMuc2NlbmUuc3lzLmRpc3BsYXlMaXN0LmdldEluZGV4KGNoaWxkKSk7XHJcblxyXG4gICAgICAgIHJldHVybiBpbmRleGVzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc3Ryb3lzIHRoaXMgR2FtZSBPYmplY3QgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgRGlzcGxheSBMaXN0IGFuZCBVcGRhdGUgTGlzdCBhbmRcclxuICAgICAqIHNldmVyaW5nIGFsbCB0aWVzIHRvIHBhcmVudCByZXNvdXJjZXMuXHJcbiAgICAgKlxyXG4gICAgICogQWxzbyByZW1vdmVzIGl0c2VsZiBmcm9tIHRoZSBJbnB1dCBNYW5hZ2VyIGFuZCBQaHlzaWNzIE1hbmFnZXIgaWYgcHJldmlvdXNseSBlbmFibGVkLlxyXG4gICAgICpcclxuICAgICAqIFVzZSB0aGlzIHRvIHJlbW92ZSBhIEdhbWUgT2JqZWN0IGZyb20geW91ciBnYW1lIGlmIHlvdSBkb24ndCBldmVyIHBsYW4gdG8gdXNlIGl0IGFnYWluLlxyXG4gICAgICogQXMgbG9uZyBhcyBubyByZWZlcmVuY2UgdG8gaXQgZXhpc3RzIHdpdGhpbiB5b3VyIG93biBjb2RlIGl0IHNob3VsZCBiZWNvbWUgZnJlZSBmb3JcclxuICAgICAqIGdhcmJhZ2UgY29sbGVjdGlvbiBieSB0aGUgYnJvd3Nlci5cclxuICAgICAqXHJcbiAgICAgKiBJZiB5b3UganVzdCB3YW50IHRvIHRlbXBvcmFyaWx5IGRpc2FibGUgYW4gb2JqZWN0IHRoZW4gbG9vayBhdCB1c2luZyB0aGVcclxuICAgICAqIEdhbWUgT2JqZWN0IFBvb2wgaW5zdGVhZCBvZiBkZXN0cm95aW5nIGl0LCBhcyBkZXN0cm95ZWQgb2JqZWN0cyBjYW5ub3QgYmUgcmVzdXJyZWN0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdCNkZXN0cm95XHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkdhbWVPYmplY3RzLkV2ZW50cyNERVNUUk9ZXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tU2NlbmU9ZmFsc2VdIC0gSXMgdGhpcyBHYW1lIE9iamVjdCBiZWluZyBkZXN0cm95ZWQgYXMgdGhlIHJlc3VsdCBvZiBhIFNjZW5lIHNodXRkb3duP1xyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoZnJvbVNjZW5lKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChmcm9tU2NlbmUgPT09IHVuZGVmaW5lZCkgeyBmcm9tU2NlbmUgPSBmYWxzZTsgfVxyXG5cclxuICAgICAgICAvLyAgVGhpcyBHYW1lIE9iamVjdCBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZFxyXG4gICAgICAgIGlmICghdGhpcy5zY2VuZSB8fCB0aGlzLmlnbm9yZURlc3Ryb3kpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5wcmVEZXN0cm95KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wcmVEZXN0cm95LmNhbGwodGhpcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmVtaXQoRXZlbnRzLkRFU1RST1ksIHRoaXMpO1xyXG5cclxuICAgICAgICB2YXIgc3lzID0gdGhpcy5zY2VuZS5zeXM7XHJcblxyXG4gICAgICAgIGlmICghZnJvbVNjZW5lKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgc3lzLmRpc3BsYXlMaXN0LnJlbW92ZSh0aGlzKTtcclxuICAgICAgICAgICAgc3lzLnVwZGF0ZUxpc3QucmVtb3ZlKHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzeXMuaW5wdXQuY2xlYXIodGhpcyk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5kYXRhKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhLmRlc3Ryb3koKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmJvZHkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmJvZHkuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB0aGlzLmJvZHkgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgVGVsbCB0aGUgU2NlbmUgdG8gcmUtc29ydCB0aGUgY2hpbGRyZW5cclxuICAgICAgICBpZiAoIWZyb21TY2VuZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHN5cy5xdWV1ZURlcHRoU29ydCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5zY2VuZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgdGhpcy5wYXJlbnRDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBUaGUgYml0bWFzayB0aGF0IGBHYW1lT2JqZWN0LnJlbmRlckZsYWdzYCBpcyBjb21wYXJlZCBhZ2FpbnN0IHRvIGRldGVybWluZSBpZiB0aGUgR2FtZSBPYmplY3Qgd2lsbCByZW5kZXIgb3Igbm90LlxyXG4gKlxyXG4gKiBAY29uc3RhbnQge2ludGVnZXJ9IFJFTkRFUl9NQVNLXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFxyXG4gKiBAZGVmYXVsdFxyXG4gKi9cclxuR2FtZU9iamVjdC5SRU5ERVJfTUFTSyA9IDE1O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHYW1lT2JqZWN0O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBQbHVnaW5DYWNoZSA9IHJlcXVpcmUoJy4uL3BsdWdpbnMvUGx1Z2luQ2FjaGUnKTtcclxudmFyIFNjZW5lRXZlbnRzID0gcmVxdWlyZSgnLi4vc2NlbmUvZXZlbnRzJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBUaGUgR2FtZSBPYmplY3QgQ3JlYXRvciBpcyBhIFNjZW5lIHBsdWdpbiB0aGF0IGFsbG93cyB5b3UgdG8gcXVpY2tseSBjcmVhdGUgbWFueSBjb21tb25cclxuICogdHlwZXMgb2YgR2FtZSBPYmplY3RzIGFuZCByZXR1cm4gdGhlbS4gVW5saWtlIHRoZSBHYW1lIE9iamVjdCBGYWN0b3J5LCB0aGV5IGFyZSBub3QgYXV0b21hdGljYWxseVxyXG4gKiBhZGRlZCB0byB0aGUgU2NlbmUuXHJcbiAqXHJcbiAqIEdhbWUgT2JqZWN0cyBkaXJlY3RseSByZWdpc3RlciB0aGVtc2VsdmVzIHdpdGggdGhlIENyZWF0b3IgYW5kIGluamVjdCB0aGVpciBvd24gY3JlYXRpb25cclxuICogbWV0aG9kcyBpbnRvIHRoZSBjbGFzcy5cclxuICpcclxuICogQGNsYXNzIEdhbWVPYmplY3RDcmVhdG9yXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBUaGUgU2NlbmUgdG8gd2hpY2ggdGhpcyBHYW1lIE9iamVjdCBGYWN0b3J5IGJlbG9uZ3MuXHJcbiAqL1xyXG52YXIgR2FtZU9iamVjdENyZWF0b3IgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gR2FtZU9iamVjdENyZWF0b3IgKHNjZW5lKVxyXG4gICAge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBTY2VuZSB0byB3aGljaCB0aGlzIEdhbWUgT2JqZWN0IENyZWF0b3IgYmVsb25ncy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Q3JlYXRvciNzY2VuZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU2NlbmV9XHJcbiAgICAgICAgICogQHByb3RlY3RlZFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2NlbmUgPSBzY2VuZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lLlN5c3RlbXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdENyZWF0b3Ijc3lzdGVtc1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU2NlbmVzLlN5c3RlbXN9XHJcbiAgICAgICAgICogQHByb3RlY3RlZFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc3lzdGVtcyA9IHNjZW5lLnN5cztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lIERpc3BsYXkgTGlzdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Q3JlYXRvciNkaXNwbGF5TGlzdFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuRGlzcGxheUxpc3R9XHJcbiAgICAgICAgICogQHByb3RlY3RlZFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUxpc3Q7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBTY2VuZSBVcGRhdGUgTGlzdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Q3JlYXRvciN1cGRhdGVMaXN0XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5VcGRhdGVMaXN0fVxyXG4gICAgICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnVwZGF0ZUxpc3Q7XHJcblxyXG4gICAgICAgIHNjZW5lLnN5cy5ldmVudHMub25jZShTY2VuZUV2ZW50cy5CT09ULCB0aGlzLmJvb3QsIHRoaXMpO1xyXG4gICAgICAgIHNjZW5lLnN5cy5ldmVudHMub24oU2NlbmVFdmVudHMuU1RBUlQsIHRoaXMuc3RhcnQsIHRoaXMpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5LCBvbmx5IG9uY2UsIHdoZW4gdGhlIFNjZW5lIGlzIGZpcnN0IGNyZWF0ZWQuXHJcbiAgICAgKiBEbyBub3QgaW52b2tlIGl0IGRpcmVjdGx5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RDcmVhdG9yI2Jvb3RcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy41LjFcclxuICAgICAqL1xyXG4gICAgYm9vdDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlMaXN0ID0gdGhpcy5zeXN0ZW1zLmRpc3BsYXlMaXN0O1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlzdCA9IHRoaXMuc3lzdGVtcy51cGRhdGVMaXN0O1xyXG5cclxuICAgICAgICB0aGlzLnN5c3RlbXMuZXZlbnRzLm9uY2UoU2NlbmVFdmVudHMuREVTVFJPWSwgdGhpcy5kZXN0cm95LCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgU2NlbmUgd2hlbiBpdCBpcyBzdGFydGluZyB1cC5cclxuICAgICAqIEl0IGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBsb2NhbCBzeXN0ZW1zLCBwcm9wZXJ0aWVzIGFuZCBsaXN0ZW5pbmcgZm9yIFNjZW5lIGV2ZW50cy5cclxuICAgICAqIERvIG5vdCBpbnZva2UgaXQgZGlyZWN0bHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdENyZWF0b3Ijc3RhcnRcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy41LjBcclxuICAgICAqL1xyXG4gICAgc3RhcnQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zeXN0ZW1zLmV2ZW50cy5vbmNlKFNjZW5lRXZlbnRzLlNIVVRET1dOLCB0aGlzLnNodXRkb3duLCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgU2NlbmUgdGhhdCBvd25zIHRoaXMgcGx1Z2luIGlzIHNodXR0aW5nIGRvd24uXHJcbiAgICAgKiBXZSBuZWVkIHRvIGtpbGwgYW5kIHJlc2V0IGFsbCBpbnRlcm5hbCBwcm9wZXJ0aWVzIGFzIHdlbGwgYXMgc3RvcCBsaXN0ZW5pbmcgdG8gU2NlbmUgZXZlbnRzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RDcmVhdG9yI3NodXRkb3duXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHNodXRkb3duOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuc3lzdGVtcy5ldmVudHMub2ZmKFNjZW5lRXZlbnRzLlNIVVRET1dOLCB0aGlzLnNodXRkb3duLCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgU2NlbmUgdGhhdCBvd25zIHRoaXMgcGx1Z2luIGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgICAqIFdlIG5lZWQgdG8gc2h1dGRvd24gYW5kIHRoZW4ga2lsbCBvZmYgYWxsIGV4dGVybmFsIHJlZmVyZW5jZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdENyZWF0b3IjZGVzdHJveVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuc2h1dGRvd24oKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY2VuZS5zeXMuZXZlbnRzLm9mZihTY2VuZUV2ZW50cy5TVEFSVCwgdGhpcy5zdGFydCwgdGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuc2NlbmUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuc3lzdGVtcyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TGlzdCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMaXN0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxuLy8gIFN0YXRpYyBtZXRob2QgY2FsbGVkIGRpcmVjdGx5IGJ5IHRoZSBHYW1lIE9iamVjdCBjcmVhdG9yIGZ1bmN0aW9uc1xyXG5cclxuR2FtZU9iamVjdENyZWF0b3IucmVnaXN0ZXIgPSBmdW5jdGlvbiAoZmFjdG9yeVR5cGUsIGZhY3RvcnlGdW5jdGlvbilcclxue1xyXG4gICAgaWYgKCFHYW1lT2JqZWN0Q3JlYXRvci5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoZmFjdG9yeVR5cGUpKVxyXG4gICAge1xyXG4gICAgICAgIEdhbWVPYmplY3RDcmVhdG9yLnByb3RvdHlwZVtmYWN0b3J5VHlwZV0gPSBmYWN0b3J5RnVuY3Rpb247XHJcbiAgICB9XHJcbn07XHJcblxyXG5HYW1lT2JqZWN0Q3JlYXRvci5yZW1vdmUgPSBmdW5jdGlvbiAoZmFjdG9yeVR5cGUpXHJcbntcclxuICAgIGlmIChHYW1lT2JqZWN0Q3JlYXRvci5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoZmFjdG9yeVR5cGUpKVxyXG4gICAge1xyXG4gICAgICAgIGRlbGV0ZSBHYW1lT2JqZWN0Q3JlYXRvci5wcm90b3R5cGVbZmFjdG9yeVR5cGVdO1xyXG4gICAgfVxyXG59O1xyXG5cclxuUGx1Z2luQ2FjaGUucmVnaXN0ZXIoJ0dhbWVPYmplY3RDcmVhdG9yJywgR2FtZU9iamVjdENyZWF0b3IsICdtYWtlJyk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEdhbWVPYmplY3RDcmVhdG9yO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBQbHVnaW5DYWNoZSA9IHJlcXVpcmUoJy4uL3BsdWdpbnMvUGx1Z2luQ2FjaGUnKTtcclxudmFyIFNjZW5lRXZlbnRzID0gcmVxdWlyZSgnLi4vc2NlbmUvZXZlbnRzJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBUaGUgR2FtZSBPYmplY3QgRmFjdG9yeSBpcyBhIFNjZW5lIHBsdWdpbiB0aGF0IGFsbG93cyB5b3UgdG8gcXVpY2tseSBjcmVhdGUgbWFueSBjb21tb25cclxuICogdHlwZXMgb2YgR2FtZSBPYmplY3RzIGFuZCBoYXZlIHRoZW0gYXV0b21hdGljYWxseSByZWdpc3RlcmVkIHdpdGggdGhlIFNjZW5lLlxyXG4gKlxyXG4gKiBHYW1lIE9iamVjdHMgZGlyZWN0bHkgcmVnaXN0ZXIgdGhlbXNlbHZlcyB3aXRoIHRoZSBGYWN0b3J5IGFuZCBpbmplY3QgdGhlaXIgb3duIGNyZWF0aW9uXHJcbiAqIG1ldGhvZHMgaW50byB0aGUgY2xhc3MuXHJcbiAqXHJcbiAqIEBjbGFzcyBHYW1lT2JqZWN0RmFjdG9yeVxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkdhbWVPYmplY3RzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgRmFjdG9yeSBiZWxvbmdzLlxyXG4gKi9cclxudmFyIEdhbWVPYmplY3RGYWN0b3J5ID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIEdhbWVPYmplY3RGYWN0b3J5IChzY2VuZSlcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgU2NlbmUgdG8gd2hpY2ggdGhpcyBHYW1lIE9iamVjdCBGYWN0b3J5IGJlbG9uZ3MuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3Rvcnkjc2NlbmVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlNjZW5lfVxyXG4gICAgICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjZW5lID0gc2NlbmU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBTY2VuZS5TeXN0ZW1zLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5I3N5c3RlbXNcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlNjZW5lcy5TeXN0ZW1zfVxyXG4gICAgICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnN5c3RlbXMgPSBzY2VuZS5zeXM7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBTY2VuZSBEaXNwbGF5IExpc3QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjZGlzcGxheUxpc3RcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLkRpc3BsYXlMaXN0fVxyXG4gICAgICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRpc3BsYXlMaXN0O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgU2NlbmUgVXBkYXRlIExpc3QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjdXBkYXRlTGlzdFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuVXBkYXRlTGlzdH1cclxuICAgICAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy51cGRhdGVMaXN0O1xyXG5cclxuICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uY2UoU2NlbmVFdmVudHMuQk9PVCwgdGhpcy5ib290LCB0aGlzKTtcclxuICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uKFNjZW5lRXZlbnRzLlNUQVJULCB0aGlzLnN0YXJ0LCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSwgb25seSBvbmNlLCB3aGVuIHRoZSBTY2VuZSBpcyBmaXJzdCBjcmVhdGVkLlxyXG4gICAgICogRG8gbm90IGludm9rZSBpdCBkaXJlY3RseS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0RmFjdG9yeSNib290XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuNS4xXHJcbiAgICAgKi9cclxuICAgIGJvb3Q6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TGlzdCA9IHRoaXMuc3lzdGVtcy5kaXNwbGF5TGlzdDtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxpc3QgPSB0aGlzLnN5c3RlbXMudXBkYXRlTGlzdDtcclxuXHJcbiAgICAgICAgdGhpcy5zeXN0ZW1zLmV2ZW50cy5vbmNlKFNjZW5lRXZlbnRzLkRFU1RST1ksIHRoaXMuZGVzdHJveSwgdGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIFNjZW5lIHdoZW4gaXQgaXMgc3RhcnRpbmcgdXAuXHJcbiAgICAgKiBJdCBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgbG9jYWwgc3lzdGVtcywgcHJvcGVydGllcyBhbmQgbGlzdGVuaW5nIGZvciBTY2VuZSBldmVudHMuXHJcbiAgICAgKiBEbyBub3QgaW52b2tlIGl0IGRpcmVjdGx5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5I3N0YXJ0XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuNS4wXHJcbiAgICAgKi9cclxuICAgIHN0YXJ0OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuc3lzdGVtcy5ldmVudHMub25jZShTY2VuZUV2ZW50cy5TSFVURE9XTiwgdGhpcy5zaHV0ZG93biwgdGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkcyBhbiBleGlzdGluZyBHYW1lIE9iamVjdCB0byB0aGlzIFNjZW5lLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBHYW1lIE9iamVjdCByZW5kZXJzLCBpdCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBEaXNwbGF5IExpc3QuXHJcbiAgICAgKiBJZiBpdCBoYXMgYSBgcHJlVXBkYXRlYCBtZXRob2QsIGl0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIFVwZGF0ZSBMaXN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5I2V4aXN0aW5nXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdHxQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXApfSBjaGlsZCAtIFRoZSBjaGlsZCB0byBiZSBhZGRlZCB0byB0aGlzIFNjZW5lLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgYWRkZWQuXHJcbiAgICAgKi9cclxuICAgIGV4aXN0aW5nOiBmdW5jdGlvbiAoY2hpbGQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGNoaWxkLnJlbmRlckNhbnZhcyB8fCBjaGlsZC5yZW5kZXJXZWJHTClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheUxpc3QuYWRkKGNoaWxkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGlsZC5wcmVVcGRhdGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxpc3QuYWRkKGNoaWxkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjaGlsZDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgU2NlbmUgdGhhdCBvd25zIHRoaXMgcGx1Z2luIGlzIHNodXR0aW5nIGRvd24uXHJcbiAgICAgKiBXZSBuZWVkIHRvIGtpbGwgYW5kIHJlc2V0IGFsbCBpbnRlcm5hbCBwcm9wZXJ0aWVzIGFzIHdlbGwgYXMgc3RvcCBsaXN0ZW5pbmcgdG8gU2NlbmUgZXZlbnRzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5I3NodXRkb3duXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHNodXRkb3duOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuc3lzdGVtcy5ldmVudHMub2ZmKFNjZW5lRXZlbnRzLlNIVVRET1dOLCB0aGlzLnNodXRkb3duLCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgU2NlbmUgdGhhdCBvd25zIHRoaXMgcGx1Z2luIGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgICAqIFdlIG5lZWQgdG8gc2h1dGRvd24gYW5kIHRoZW4ga2lsbCBvZmYgYWxsIGV4dGVybmFsIHJlZmVyZW5jZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjZGVzdHJveVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuc2h1dGRvd24oKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY2VuZS5zeXMuZXZlbnRzLm9mZihTY2VuZUV2ZW50cy5TVEFSVCwgdGhpcy5zdGFydCwgdGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuc2NlbmUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuc3lzdGVtcyA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuZGlzcGxheUxpc3QgPSBudWxsO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTGlzdCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBTdGF0aWMgbWV0aG9kIGNhbGxlZCBkaXJlY3RseSBieSB0aGUgR2FtZSBPYmplY3QgZmFjdG9yeSBmdW5jdGlvbnMuXHJcbiAqIFdpdGggdGhpcyBtZXRob2QgeW91IGNhbiByZWdpc3RlciBhIGN1c3RvbSBHYW1lT2JqZWN0IGZhY3RvcnkgaW4gdGhlIEdhbWVPYmplY3RGYWN0b3J5LFxyXG4gKiBwcm92aWRpbmcgYSBuYW1lIChgZmFjdG9yeVR5cGVgKSBhbmQgdGhlIGNvbnN0cnVjdG9yIChgZmFjdG9yeUZ1bmN0aW9uYCkgaW4gb3JkZXJcclxuICogdG8gYmUgY2FsbGVkIHdoZW4geW91IGNhbGwgdG8gUGhhc2VyLlNjZW5lLmFkZFsgZmFjdG9yeVR5cGUgXSBtZXRob2QuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5LnJlZ2lzdGVyXHJcbiAqIEBzdGF0aWNcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBmYWN0b3J5VHlwZSAtIFRoZSBrZXkgb2YgdGhlIGZhY3RvcnkgdGhhdCB5b3Ugd2lsbCB1c2UgdG8gY2FsbCB0byBQaGFzZXIuU2NlbmUuYWRkWyBmYWN0b3J5VHlwZSBdIG1ldGhvZC5cclxuICogQHBhcmFtIHtmdW5jdGlvbn0gZmFjdG9yeUZ1bmN0aW9uIC0gVGhlIGNvbnN0cnVjdG9yIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHlvdSBpbnZva2UgdG8gdGhlIFBoYXNlci5TY2VuZS5hZGQgbWV0aG9kLlxyXG4gKi9cclxuR2FtZU9iamVjdEZhY3RvcnkucmVnaXN0ZXIgPSBmdW5jdGlvbiAoZmFjdG9yeVR5cGUsIGZhY3RvcnlGdW5jdGlvbilcclxue1xyXG4gICAgaWYgKCFHYW1lT2JqZWN0RmFjdG9yeS5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoZmFjdG9yeVR5cGUpKVxyXG4gICAge1xyXG4gICAgICAgIEdhbWVPYmplY3RGYWN0b3J5LnByb3RvdHlwZVtmYWN0b3J5VHlwZV0gPSBmYWN0b3J5RnVuY3Rpb247XHJcbiAgICB9XHJcbn07XHJcblxyXG4vKipcclxuICogU3RhdGljIG1ldGhvZCBjYWxsZWQgZGlyZWN0bHkgYnkgdGhlIEdhbWUgT2JqZWN0IGZhY3RvcnkgZnVuY3Rpb25zLlxyXG4gKiBXaXRoIHRoaXMgbWV0aG9kIHlvdSBjYW4gcmVtb3ZlIGEgY3VzdG9tIEdhbWVPYmplY3QgZmFjdG9yeSByZWdpc3RlcmVkIGluIHRoZSBHYW1lT2JqZWN0RmFjdG9yeSxcclxuICogcHJvdmlkaW5nIGEgaXRzIGBmYWN0b3J5VHlwZWAuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5LnJlbW92ZVxyXG4gKiBAc3RhdGljXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gZmFjdG9yeVR5cGUgLSBUaGUga2V5IG9mIHRoZSBmYWN0b3J5IHRoYXQgeW91IHdhbnQgdG8gcmVtb3ZlIGZyb20gdGhlIEdhbWVPYmplY3RGYWN0b3J5LlxyXG4gKi9cclxuR2FtZU9iamVjdEZhY3RvcnkucmVtb3ZlID0gZnVuY3Rpb24gKGZhY3RvcnlUeXBlKVxyXG57XHJcbiAgICBpZiAoR2FtZU9iamVjdEZhY3RvcnkucHJvdG90eXBlLmhhc093blByb3BlcnR5KGZhY3RvcnlUeXBlKSlcclxuICAgIHtcclxuICAgICAgICBkZWxldGUgR2FtZU9iamVjdEZhY3RvcnkucHJvdG90eXBlW2ZhY3RvcnlUeXBlXTtcclxuICAgIH1cclxufTtcclxuXHJcblBsdWdpbkNhY2hlLnJlZ2lzdGVyKCdHYW1lT2JqZWN0RmFjdG9yeScsIEdhbWVPYmplY3RGYWN0b3J5LCAnYWRkJyk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEdhbWVPYmplY3RGYWN0b3J5O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBQcm9jZXNzUXVldWUgPSByZXF1aXJlKCcuLi9zdHJ1Y3RzL1Byb2Nlc3NRdWV1ZScpO1xyXG52YXIgUGx1Z2luQ2FjaGUgPSByZXF1aXJlKCcuLi9wbHVnaW5zL1BsdWdpbkNhY2hlJyk7XHJcbnZhciBTY2VuZUV2ZW50cyA9IHJlcXVpcmUoJy4uL3NjZW5lL2V2ZW50cycpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogVGhlIFVwZGF0ZSBMaXN0IHBsdWdpbi5cclxuICpcclxuICogVXBkYXRlIExpc3RzIGJlbG9uZyB0byBhIFNjZW5lIGFuZCBtYWludGFpbiB0aGUgbGlzdCBHYW1lIE9iamVjdHMgdG8gYmUgdXBkYXRlZCBldmVyeSBmcmFtZS5cclxuICpcclxuICogU29tZSBvciBhbGwgb2YgdGhlc2UgR2FtZSBPYmplY3RzIG1heSBhbHNvIGJlIHBhcnQgb2YgdGhlIFNjZW5lJ3MgW0Rpc3BsYXkgTGlzdF17QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkRpc3BsYXlMaXN0fSwgZm9yIFJlbmRlcmluZy5cclxuICpcclxuICogQGNsYXNzIFVwZGF0ZUxpc3RcclxuICogQGV4dGVuZHMgUGhhc2VyLlN0cnVjdHMuUHJvY2Vzc1F1ZXVlLjxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdD5cclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSB0aGF0IHRoZSBVcGRhdGUgTGlzdCBiZWxvbmdzIHRvLlxyXG4gKi9cclxudmFyIFVwZGF0ZUxpc3QgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IFByb2Nlc3NRdWV1ZSxcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIFVwZGF0ZUxpc3QgKHNjZW5lKVxyXG4gICAge1xyXG4gICAgICAgIFByb2Nlc3NRdWV1ZS5jYWxsKHRoaXMpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgU2NlbmUgdGhhdCB0aGUgVXBkYXRlIExpc3QgYmVsb25ncyB0by5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5VcGRhdGVMaXN0I3NjZW5lXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5TY2VuZX1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjZW5lID0gc2NlbmU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBTY2VuZSdzIFN5c3RlbXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuVXBkYXRlTGlzdCNzeXN0ZW1zXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5TY2VuZXMuU3lzdGVtc31cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnN5c3RlbXMgPSBzY2VuZS5zeXM7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBgcGVuZGluZ2AgbGlzdCBpcyBhIHNlbGVjdGlvbiBvZiBpdGVtcyB3aGljaCBhcmUgZHVlIHRvIGJlIG1hZGUgJ2FjdGl2ZScgaW4gdGhlIG5leHQgdXBkYXRlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlVwZGF0ZUxpc3QjX3BlbmRpbmdcclxuICAgICAgICAgKiBAdHlwZSB7QXJyYXkuPCo+fVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQGRlZmF1bHQgW11cclxuICAgICAgICAgKiBAc2luY2UgMy4yMC4wXHJcbiAgICAgICAgICovXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBgYWN0aXZlYCBsaXN0IGlzIGEgc2VsZWN0aW9uIG9mIGl0ZW1zIHdoaWNoIGFyZSBjb25zaWRlcmVkIGFjdGl2ZSBhbmQgc2hvdWxkIGJlIHVwZGF0ZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuVXBkYXRlTGlzdCNfYWN0aXZlXHJcbiAgICAgICAgICogQHR5cGUge0FycmF5LjwqPn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IFtdXHJcbiAgICAgICAgICogQHNpbmNlIDMuMjAuMFxyXG4gICAgICAgICAqL1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgYGRlc3Ryb3lgIGxpc3QgaXMgYSBzZWxlY3Rpb24gb2YgaXRlbXMgdGhhdCB3ZXJlIGFjdGl2ZSBhbmQgYXJlIGF3YWl0aW5nIGJlaW5nIGRlc3Ryb3llZCBpbiB0aGUgbmV4dCB1cGRhdGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuVXBkYXRlTGlzdCNfZGVzdHJveVxyXG4gICAgICAgICAqIEB0eXBlIHtBcnJheS48Kj59XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCBbXVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIwLjBcclxuICAgICAgICAgKi9cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcyBhd2FpdGluZyBwcm9jZXNzaW5nLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlVwZGF0ZUxpc3QjX3RvUHJvY2Vzc1xyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG5cclxuICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uY2UoU2NlbmVFdmVudHMuQk9PVCwgdGhpcy5ib290LCB0aGlzKTtcclxuICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uKFNjZW5lRXZlbnRzLlNUQVJULCB0aGlzLnN0YXJ0LCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSwgb25seSBvbmNlLCB3aGVuIHRoZSBTY2VuZSBpcyBmaXJzdCBjcmVhdGVkLlxyXG4gICAgICogRG8gbm90IGludm9rZSBpdCBkaXJlY3RseS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5VcGRhdGVMaXN0I2Jvb3RcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy41LjFcclxuICAgICAqL1xyXG4gICAgYm9vdDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnN5c3RlbXMuZXZlbnRzLm9uY2UoU2NlbmVFdmVudHMuREVTVFJPWSwgdGhpcy5kZXN0cm95LCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXV0b21hdGljYWxseSBieSB0aGUgU2NlbmUgd2hlbiBpdCBpcyBzdGFydGluZyB1cC5cclxuICAgICAqIEl0IGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBsb2NhbCBzeXN0ZW1zLCBwcm9wZXJ0aWVzIGFuZCBsaXN0ZW5pbmcgZm9yIFNjZW5lIGV2ZW50cy5cclxuICAgICAqIERvIG5vdCBpbnZva2UgaXQgZGlyZWN0bHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuVXBkYXRlTGlzdCNzdGFydFxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjUuMFxyXG4gICAgICovXHJcbiAgICBzdGFydDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgZXZlbnRFbWl0dGVyID0gdGhpcy5zeXN0ZW1zLmV2ZW50cztcclxuXHJcbiAgICAgICAgZXZlbnRFbWl0dGVyLm9uKFNjZW5lRXZlbnRzLlBSRV9VUERBVEUsIHRoaXMudXBkYXRlLCB0aGlzKTtcclxuICAgICAgICBldmVudEVtaXR0ZXIub24oU2NlbmVFdmVudHMuVVBEQVRFLCB0aGlzLnNjZW5lVXBkYXRlLCB0aGlzKTtcclxuICAgICAgICBldmVudEVtaXR0ZXIub25jZShTY2VuZUV2ZW50cy5TSFVURE9XTiwgdGhpcy5zaHV0ZG93biwgdGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHVwZGF0ZSBzdGVwLlxyXG4gICAgICpcclxuICAgICAqIFByZS11cGRhdGVzIGV2ZXJ5IGFjdGl2ZSBHYW1lIE9iamVjdCBpbiB0aGUgbGlzdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5VcGRhdGVMaXN0I3NjZW5lVXBkYXRlXHJcbiAgICAgKiBAc2luY2UgMy4yMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWUgLSBUaGUgY3VycmVudCB0aW1lc3RhbXAuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGVsdGEgLSBUaGUgZGVsdGEgdGltZSBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IGZyYW1lLlxyXG4gICAgICovXHJcbiAgICBzY2VuZVVwZGF0ZTogZnVuY3Rpb24gKHRpbWUsIGRlbHRhKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBsaXN0ID0gdGhpcy5fYWN0aXZlO1xyXG4gICAgICAgIHZhciBsZW5ndGggPSBsaXN0Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBnYW1lT2JqZWN0ID0gbGlzdFtpXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChnYW1lT2JqZWN0LmFjdGl2ZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZ2FtZU9iamVjdC5wcmVVcGRhdGUuY2FsbChnYW1lT2JqZWN0LCB0aW1lLCBkZWx0YSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFNjZW5lIHRoYXQgb3ducyB0aGlzIHBsdWdpbiBpcyBzaHV0dGluZyBkb3duLlxyXG4gICAgICogXHJcbiAgICAgKiBXZSBuZWVkIHRvIGtpbGwgYW5kIHJlc2V0IGFsbCBpbnRlcm5hbCBwcm9wZXJ0aWVzIGFzIHdlbGwgYXMgc3RvcCBsaXN0ZW5pbmcgdG8gU2NlbmUgZXZlbnRzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlVwZGF0ZUxpc3Qjc2h1dGRvd25cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBzaHV0ZG93bjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgaSA9IHRoaXMuX2FjdGl2ZS5sZW5ndGg7XHJcblxyXG4gICAgICAgIHdoaWxlIChpLS0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVbaV0uZGVzdHJveSh0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGkgPSB0aGlzLl9wZW5kaW5nLmxlbmd0aDtcclxuXHJcbiAgICAgICAgd2hpbGUgKGktLSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BlbmRpbmdbaV0uZGVzdHJveSh0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGkgPSB0aGlzLl9kZXN0cm95Lmxlbmd0aDtcclxuXHJcbiAgICAgICAgd2hpbGUgKGktLSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3lbaV0uZGVzdHJveSh0cnVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3RvUHJvY2VzcyA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMuX3BlbmRpbmcgPSBbXTtcclxuICAgICAgICB0aGlzLl9hY3RpdmUgPSBbXTtcclxuICAgICAgICB0aGlzLl9kZXN0cm95ID0gW107XHJcblxyXG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XHJcblxyXG4gICAgICAgIHZhciBldmVudEVtaXR0ZXIgPSB0aGlzLnN5c3RlbXMuZXZlbnRzO1xyXG5cclxuICAgICAgICBldmVudEVtaXR0ZXIub2ZmKFNjZW5lRXZlbnRzLlBSRV9VUERBVEUsIHRoaXMucHJlVXBkYXRlLCB0aGlzKTtcclxuICAgICAgICBldmVudEVtaXR0ZXIub2ZmKFNjZW5lRXZlbnRzLlVQREFURSwgdGhpcy5zY2VuZVVwZGF0ZSwgdGhpcyk7XHJcbiAgICAgICAgZXZlbnRFbWl0dGVyLm9mZihTY2VuZUV2ZW50cy5TSFVURE9XTiwgdGhpcy5zaHV0ZG93biwgdGhpcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFNjZW5lIHRoYXQgb3ducyB0aGlzIHBsdWdpbiBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAgICAgKiBcclxuICAgICAqIFdlIG5lZWQgdG8gc2h1dGRvd24gYW5kIHRoZW4ga2lsbCBvZmYgYWxsIGV4dGVybmFsIHJlZmVyZW5jZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuVXBkYXRlTGlzdCNkZXN0cm95XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgZGVzdHJveTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnNodXRkb3duKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc3lzdGVtcy5ldmVudHMub2ZmKFNjZW5lRXZlbnRzLlNUQVJULCB0aGlzLnN0YXJ0LCB0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY2VuZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5zeXN0ZW1zID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYSBuZXcgaXRlbSB0byB0aGUgVXBkYXRlIExpc3QuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBpdGVtIGlzIGFkZGVkIHRvIHRoZSBwZW5kaW5nIGxpc3QgYW5kIG1hZGUgYWN0aXZlIGluIHRoZSBuZXh0IHVwZGF0ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5VcGRhdGVMaXN0I2FkZFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsqfSBpdGVtIC0gVGhlIGl0ZW0gdG8gYWRkIHRvIHRoZSBxdWV1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHsqfSBUaGUgaXRlbSB0aGF0IHdhcyBhZGRlZC5cclxuICAgICAqL1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhbiBpdGVtIGZyb20gdGhlIFVwZGF0ZSBMaXN0LlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgaXRlbSBpcyBhZGRlZCB0byB0aGUgcGVuZGluZyBkZXN0cm95IGFuZCBmdWxseSByZW1vdmVkIGluIHRoZSBuZXh0IHVwZGF0ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5VcGRhdGVMaXN0I3JlbW92ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsqfSBpdGVtIC0gVGhlIGl0ZW0gdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBxdWV1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHsqfSBUaGUgaXRlbSB0aGF0IHdhcyByZW1vdmVkLlxyXG4gICAgICovXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIGFsbCBhY3RpdmUgaXRlbXMgZnJvbSB0aGlzIFVwZGF0ZSBMaXN0LlxyXG4gICAgICogXHJcbiAgICAgKiBBbGwgdGhlIGl0ZW1zIGFyZSBtYXJrZWQgYXMgJ3BlbmRpbmcgZGVzdHJveScgYW5kIGZ1bGx5IHJlbW92ZWQgaW4gdGhlIG5leHQgdXBkYXRlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlVwZGF0ZUxpc3QjcmVtb3ZlQWxsXHJcbiAgICAgKiBAc2luY2UgMy4yMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBVcGRhdGUgTGlzdCBvYmplY3QuXHJcbiAgICAgKi9cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZSB0aGlzIHF1ZXVlLiBGaXJzdCBpdCB3aWxsIHByb2Nlc3MgYW55IGl0ZW1zIGF3YWl0aW5nIGRlc3RydWN0aW9uLCBhbmQgcmVtb3ZlIHRoZW0uXHJcbiAgICAgKiBcclxuICAgICAqIFRoZW4gaXQgd2lsbCBjaGVjayB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBpdGVtcyBwZW5kaW5nIGluc2VydGlvbiwgYW5kIG1vdmUgdGhlbSB0byBhblxyXG4gICAgICogYWN0aXZlIHN0YXRlLiBGaW5hbGx5LCBpdCB3aWxsIHJldHVybiBhIGxpc3Qgb2YgYWN0aXZlIGl0ZW1zIGZvciBmdXJ0aGVyIHByb2Nlc3NpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuVXBkYXRlTGlzdCN1cGRhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge0FycmF5LjwqPn0gQSBsaXN0IG9mIGFjdGl2ZSBpdGVtcy5cclxuICAgICAqL1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgY3VycmVudCBsaXN0IG9mIGFjdGl2ZSBpdGVtcy5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyBtZXRob2QgcmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgYWN0aXZlIGxpc3QgYXJyYXksIG5vdCBhIGNvcHkgb2YgaXQuXHJcbiAgICAgKiBUaGVyZWZvcmUsIGJlIGNhcmVmdWwgdG8gbm90IG1vZGlmeSB0aGlzIGFycmF5IG91dHNpZGUgb2YgdGhlIFByb2Nlc3NRdWV1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5VcGRhdGVMaXN0I2dldEFjdGl2ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7QXJyYXkuPCo+fSBBIGxpc3Qgb2YgYWN0aXZlIGl0ZW1zLlxyXG4gICAgICovXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGFjdGl2ZSBsaXN0LlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5VcGRhdGVMaXN0I2xlbmd0aFxyXG4gICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEBzaW5jZSAzLjIwLjBcclxuICAgICAqL1xyXG59KTtcclxuXHJcblBsdWdpbkNhY2hlLnJlZ2lzdGVyKCdVcGRhdGVMaXN0JywgVXBkYXRlTGlzdCwgJ3VwZGF0ZUxpc3QnKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gVXBkYXRlTGlzdDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiwgd2lkdGggYW5kIGhlaWdodCBvZiBhIEJpdG1hcFRleHQgR2FtZSBPYmplY3QuXHJcbiAqXHJcbiAqIFJldHVybnMgYSBCaXRtYXBUZXh0U2l6ZSBvYmplY3QgdGhhdCBjb250YWlucyBnbG9iYWwgYW5kIGxvY2FsIHZhcmlhbnRzIG9mIHRoZSBHYW1lIE9iamVjdHMgeCBhbmQgeSBjb29yZGluYXRlcyBhbmRcclxuICogaXRzIHdpZHRoIGFuZCBoZWlnaHQuXHJcbiAqXHJcbiAqIFRoZSBnbG9iYWwgcG9zaXRpb24gYW5kIHNpemUgdGFrZSBpbnRvIGFjY291bnQgdGhlIEdhbWUgT2JqZWN0J3MgcG9zaXRpb24gYW5kIHNjYWxlLlxyXG4gKlxyXG4gKiBUaGUgbG9jYWwgcG9zaXRpb24gYW5kIHNpemUganVzdCB0YWtlcyBpbnRvIGFjY291bnQgdGhlIGZvbnQgZGF0YS5cclxuICpcclxuICogQGZ1bmN0aW9uIEdldEJpdG1hcFRleHRTaXplXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0geyhQaGFzZXIuR2FtZU9iamVjdHMuRHluYW1pY0JpdG1hcFRleHR8UGhhc2VyLkdhbWVPYmplY3RzLkJpdG1hcFRleHQpfSBzcmMgLSBUaGUgQml0bWFwVGV4dCB0byBjYWxjdWxhdGUgdGhlIHBvc2l0aW9uLCB3aWR0aCBhbmQgaGVpZ2h0IG9mLlxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtyb3VuZF0gLSBXaGV0aGVyIHRvIHJvdW5kIHRoZSByZXN1bHRzIHRvIHRoZSBuZWFyZXN0IGludGVnZXIuXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3V0XSAtIE9wdGlvbmFsIG9iamVjdCB0byBzdG9yZSB0aGUgcmVzdWx0cyBpbiwgdG8gc2F2ZSBjb25zdGFudCBvYmplY3QgY3JlYXRpb24uXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0LkJpdG1hcFRleHRTaXplfSBUaGUgY2FsY3VsYXRlZCBwb3NpdGlvbiwgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgQml0bWFwVGV4dC5cclxuICovXHJcbnZhciBHZXRCaXRtYXBUZXh0U2l6ZSA9IGZ1bmN0aW9uIChzcmMsIHJvdW5kLCBvdXQpXHJcbntcclxuICAgIGlmIChvdXQgPT09IHVuZGVmaW5lZClcclxuICAgIHtcclxuICAgICAgICBvdXQgPSB7XHJcbiAgICAgICAgICAgIGxvY2FsOiB7XHJcbiAgICAgICAgICAgICAgICB4OiAwLFxyXG4gICAgICAgICAgICAgICAgeTogMCxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAwLFxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGdsb2JhbDoge1xyXG4gICAgICAgICAgICAgICAgeDogMCxcclxuICAgICAgICAgICAgICAgIHk6IDAsXHJcbiAgICAgICAgICAgICAgICB3aWR0aDogMCxcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBsaW5lczoge1xyXG4gICAgICAgICAgICAgICAgc2hvcnRlc3Q6IDAsXHJcbiAgICAgICAgICAgICAgICBsb25nZXN0OiAwLFxyXG4gICAgICAgICAgICAgICAgbGVuZ3RoczogbnVsbCxcclxuICAgICAgICAgICAgICAgIGhlaWdodDogMFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB3cmFwcGVkVGV4dDogJycsXHJcbiAgICAgICAgICAgIHdvcmRzOiBbXSxcclxuICAgICAgICAgICAgc2NhbGVYOiAwLFxyXG4gICAgICAgICAgICBzY2FsZVk6IDBcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4gb3V0O1xyXG4gICAgfVxyXG5cclxuICAgIHZhciB0ZXh0ID0gc3JjLnRleHQ7XHJcbiAgICB2YXIgdGV4dExlbmd0aCA9IHRleHQubGVuZ3RoO1xyXG4gICAgdmFyIG1heFdpZHRoID0gc3JjLm1heFdpZHRoO1xyXG4gICAgdmFyIHdvcmRXcmFwQ2hhckNvZGUgPSBzcmMud29yZFdyYXBDaGFyQ29kZTtcclxuXHJcbiAgICB2YXIgYnggPSBOdW1iZXIuTUFYX1ZBTFVFO1xyXG4gICAgdmFyIGJ5ID0gTnVtYmVyLk1BWF9WQUxVRTtcclxuICAgIHZhciBidyA9IDA7XHJcbiAgICB2YXIgYmggPSAwO1xyXG5cclxuICAgIHZhciBjaGFycyA9IHNyYy5mb250RGF0YS5jaGFycztcclxuICAgIHZhciBsaW5lSGVpZ2h0ID0gc3JjLmZvbnREYXRhLmxpbmVIZWlnaHQ7XHJcbiAgICB2YXIgbGV0dGVyU3BhY2luZyA9IHNyYy5sZXR0ZXJTcGFjaW5nO1xyXG5cclxuICAgIHZhciB4QWR2YW5jZSA9IDA7XHJcbiAgICB2YXIgeUFkdmFuY2UgPSAwO1xyXG5cclxuICAgIHZhciBjaGFyQ29kZSA9IDA7XHJcblxyXG4gICAgdmFyIGdseXBoID0gbnVsbDtcclxuXHJcbiAgICB2YXIgeCA9IDA7XHJcbiAgICB2YXIgeSA9IDA7XHJcblxyXG4gICAgdmFyIHNjYWxlID0gKHNyYy5mb250U2l6ZSAvIHNyYy5mb250RGF0YS5zaXplKTtcclxuICAgIHZhciBzeCA9IHNjYWxlICogc3JjLnNjYWxlWDtcclxuICAgIHZhciBzeSA9IHNjYWxlICogc3JjLnNjYWxlWTtcclxuXHJcbiAgICB2YXIgbGFzdEdseXBoID0gbnVsbDtcclxuICAgIHZhciBsYXN0Q2hhckNvZGUgPSAwO1xyXG4gICAgdmFyIGxpbmVXaWR0aHMgPSBbXTtcclxuICAgIHZhciBzaG9ydGVzdExpbmUgPSBOdW1iZXIuTUFYX1ZBTFVFO1xyXG4gICAgdmFyIGxvbmdlc3RMaW5lID0gMDtcclxuICAgIHZhciBjdXJyZW50TGluZSA9IDA7XHJcbiAgICB2YXIgY3VycmVudExpbmVXaWR0aCA9IDA7XHJcblxyXG4gICAgdmFyIGk7XHJcbiAgICB2YXIgd29yZHMgPSBbXTtcclxuICAgIHZhciBjdXJyZW50ID0gbnVsbDtcclxuXHJcbiAgICAvLyAgU2NhbiBmb3IgYnJlYWNoIG9mIG1heFdpZHRoIGFuZCBpbnNlcnQgY2FycmlhZ2UtcmV0dXJuc1xyXG4gICAgaWYgKG1heFdpZHRoID4gMClcclxuICAgIHtcclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGV4dExlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY2hhckNvZGUgPSB0ZXh0LmNoYXJDb2RlQXQoaSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoY2hhckNvZGUgPT09IDEwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAhPT0gbnVsbClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB3b3Jkcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd29yZDogY3VycmVudC53b3JkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpOiBjdXJyZW50LmksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IGN1cnJlbnQueCAqIHN4LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBjdXJyZW50LnkgKiBzeSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdzogY3VycmVudC53ICogc3gsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGg6IGN1cnJlbnQuaCAqIHN5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjcjogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB4QWR2YW5jZSA9IDA7XHJcbiAgICAgICAgICAgICAgICB5QWR2YW5jZSArPSBsaW5lSGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgbGFzdEdseXBoID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZ2x5cGggPSBjaGFyc1tjaGFyQ29kZV07XHJcblxyXG4gICAgICAgICAgICBpZiAoIWdseXBoKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGxhc3RHbHlwaCAhPT0gbnVsbClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFyIGdseXBoS2VybmluZ09mZnNldCA9IGdseXBoLmtlcm5pbmdbbGFzdENoYXJDb2RlXTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGNoYXJDb2RlID09PSB3b3JkV3JhcENoYXJDb2RlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAhPT0gbnVsbClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB3b3Jkcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgd29yZDogY3VycmVudC53b3JkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpOiBjdXJyZW50LmksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IGN1cnJlbnQueCAqIHN4LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiBjdXJyZW50LnkgKiBzeSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdzogY3VycmVudC53ICogc3gsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGg6IGN1cnJlbnQuaCAqIHN5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjcjogZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gIFdlJ3JlIHN0YXJ0aW5nIGEgbmV3IHdvcmQsIHJlY29yZGluZyB0aGUgc3RhcnRpbmcgaW5kZXgsIGV0Y1xyXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB7IHdvcmQ6ICcnLCBpOiBpLCB4OiB4QWR2YW5jZSwgeTogeUFkdmFuY2UsIHc6IDAsIGg6IGxpbmVIZWlnaHQsIGNyOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGN1cnJlbnQud29yZCA9IGN1cnJlbnQud29yZC5jb25jYXQodGV4dFtpXSk7XHJcbiAgICAgICAgICAgICAgICBjdXJyZW50LncgKz0gZ2x5cGgueE9mZnNldCArIGdseXBoLnhBZHZhbmNlICsgKChnbHlwaEtlcm5pbmdPZmZzZXQgIT09IHVuZGVmaW5lZCkgPyBnbHlwaEtlcm5pbmdPZmZzZXQgOiAwKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgeEFkdmFuY2UgKz0gZ2x5cGgueEFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nO1xyXG4gICAgICAgICAgICBsYXN0R2x5cGggPSBnbHlwaDtcclxuICAgICAgICAgICAgbGFzdENoYXJDb2RlID0gY2hhckNvZGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgTGFzdCB3b3JkXHJcbiAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB3b3Jkcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHdvcmQ6IGN1cnJlbnQud29yZCxcclxuICAgICAgICAgICAgICAgIGk6IGN1cnJlbnQuaSxcclxuICAgICAgICAgICAgICAgIHg6IGN1cnJlbnQueCAqIHN4LFxyXG4gICAgICAgICAgICAgICAgeTogY3VycmVudC55ICogc3ksXHJcbiAgICAgICAgICAgICAgICB3OiBjdXJyZW50LncgKiBzeCxcclxuICAgICAgICAgICAgICAgIGg6IGN1cnJlbnQuaCAqIHN5LFxyXG4gICAgICAgICAgICAgICAgY3I6IGZhbHNlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gIFJlc2V0IGZvciB0aGUgbmV4dCBsb29wXHJcbiAgICAgICAgeEFkdmFuY2UgPSAwO1xyXG4gICAgICAgIHlBZHZhbmNlID0gMDtcclxuICAgICAgICBsYXN0R2x5cGggPSBudWxsO1xyXG4gICAgICAgIGxhc3RDaGFyQ29kZSA9IDA7XHJcblxyXG4gICAgICAgIC8vICBMb29wIHRocm91Z2ggdGhlIHdvcmRzIGFycmF5IGFuZCBzZWUgaWYgd2UndmUgZ290IGFueSA+IG1heFdpZHRoXHJcbiAgICAgICAgdmFyIHByZXY7XHJcbiAgICAgICAgdmFyIG9mZnNldCA9IDA7XHJcbiAgICAgICAgdmFyIGNycyA9IFtdO1xyXG5cclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgZW50cnkgPSB3b3Jkc1tpXTtcclxuICAgICAgICAgICAgdmFyIGxlZnQgPSBlbnRyeS54O1xyXG4gICAgICAgICAgICB2YXIgcmlnaHQgPSBlbnRyeS54ICsgZW50cnkudztcclxuXHJcbiAgICAgICAgICAgIGlmIChwcmV2KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZGlmZiA9IGxlZnQgLSAocHJldi54ICsgcHJldi53KTtcclxuXHJcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBsZWZ0IC0gKGRpZmYgKyBwcmV2LncpO1xyXG5cclxuICAgICAgICAgICAgICAgIHByZXYgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB2YXIgY2hlY2tMZWZ0ID0gbGVmdCAtIG9mZnNldDtcclxuICAgICAgICAgICAgdmFyIGNoZWNrUmlnaHQgPSByaWdodCAtIG9mZnNldDtcclxuXHJcbiAgICAgICAgICAgIGlmIChjaGVja0xlZnQgPiBtYXhXaWR0aCB8fCBjaGVja1JpZ2h0ID4gbWF4V2lkdGgpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNycy5wdXNoKGVudHJ5LmkgLSAxKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZW50cnkuY3IpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3JzLnB1c2goZW50cnkuaSArIGVudHJ5LndvcmQubGVuZ3RoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBwcmV2ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcmV2ID0gZW50cnk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZW50cnkuY3IpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNycy5wdXNoKGVudHJ5LmkgKyBlbnRyeS53b3JkLmxlbmd0aCk7XHJcblxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gMDtcclxuICAgICAgICAgICAgICAgIHByZXYgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgc3RyaW5nSW5zZXJ0ID0gZnVuY3Rpb24gKHN0ciwgaW5kZXgsIHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHN0ci5zdWJzdHIoMCwgaW5kZXgpICsgdmFsdWUgKyBzdHIuc3Vic3RyKGluZGV4ICsgMSk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgZm9yIChpID0gY3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHF1b3Rlc1xyXG4gICAgICAgICAgICB0ZXh0ID0gc3RyaW5nSW5zZXJ0KHRleHQsIGNyc1tpXSwgXCJcXG5cIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBvdXQud3JhcHBlZFRleHQgPSB0ZXh0O1xyXG5cclxuICAgICAgICB0ZXh0TGVuZ3RoID0gdGV4dC5sZW5ndGg7XHJcblxyXG4gICAgICAgIC8vICBSZWNhbGN1bGF0ZWQgaW4gdGhlIG5leHQgbG9vcFxyXG4gICAgICAgIHdvcmRzID0gW107XHJcbiAgICAgICAgY3VycmVudCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChpID0gMDsgaSA8IHRleHRMZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBjaGFyQ29kZSA9IHRleHQuY2hhckNvZGVBdChpKTtcclxuXHJcbiAgICAgICAgaWYgKGNoYXJDb2RlID09PSAxMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50ICE9PSBudWxsKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB3b3Jkcy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICB3b3JkOiBjdXJyZW50LndvcmQsXHJcbiAgICAgICAgICAgICAgICAgICAgaTogY3VycmVudC5pLFxyXG4gICAgICAgICAgICAgICAgICAgIHg6IGN1cnJlbnQueCAqIHN4LFxyXG4gICAgICAgICAgICAgICAgICAgIHk6IGN1cnJlbnQueSAqIHN5LFxyXG4gICAgICAgICAgICAgICAgICAgIHc6IGN1cnJlbnQudyAqIHN4LFxyXG4gICAgICAgICAgICAgICAgICAgIGg6IGN1cnJlbnQuaCAqIHN5XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgeEFkdmFuY2UgPSAwO1xyXG4gICAgICAgICAgICB5QWR2YW5jZSArPSBsaW5lSGVpZ2h0O1xyXG4gICAgICAgICAgICBsYXN0R2x5cGggPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgbGluZVdpZHRoc1tjdXJyZW50TGluZV0gPSBjdXJyZW50TGluZVdpZHRoO1xyXG5cclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRMaW5lV2lkdGggPiBsb25nZXN0TGluZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbG9uZ2VzdExpbmUgPSBjdXJyZW50TGluZVdpZHRoO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoY3VycmVudExpbmVXaWR0aCA8IHNob3J0ZXN0TGluZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgc2hvcnRlc3RMaW5lID0gY3VycmVudExpbmVXaWR0aDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY3VycmVudExpbmUrKztcclxuICAgICAgICAgICAgY3VycmVudExpbmVXaWR0aCA9IDA7XHJcblxyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGdseXBoID0gY2hhcnNbY2hhckNvZGVdO1xyXG5cclxuICAgICAgICBpZiAoIWdseXBoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB4ID0geEFkdmFuY2U7XHJcbiAgICAgICAgeSA9IHlBZHZhbmNlO1xyXG5cclxuICAgICAgICBpZiAobGFzdEdseXBoICE9PSBudWxsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGtlcm5pbmdPZmZzZXQgPSBnbHlwaC5rZXJuaW5nW2xhc3RDaGFyQ29kZV07XHJcblxyXG4gICAgICAgICAgICB4ICs9IChrZXJuaW5nT2Zmc2V0ICE9PSB1bmRlZmluZWQpID8ga2VybmluZ09mZnNldCA6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYnggPiB4KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYnggPSB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGJ5ID4geSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGJ5ID0geTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBndyA9IHggKyBnbHlwaC54QWR2YW5jZTtcclxuICAgICAgICB2YXIgZ2ggPSB5ICsgbGluZUhlaWdodDtcclxuXHJcbiAgICAgICAgaWYgKGJ3IDwgZ3cpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBidyA9IGd3O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGJoIDwgZ2gpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBiaCA9IGdoO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNoYXJDb2RlID09PSB3b3JkV3JhcENoYXJDb2RlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnQgIT09IG51bGwpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHdvcmRzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgIHdvcmQ6IGN1cnJlbnQud29yZCxcclxuICAgICAgICAgICAgICAgICAgICBpOiBjdXJyZW50LmksXHJcbiAgICAgICAgICAgICAgICAgICAgeDogY3VycmVudC54ICogc3gsXHJcbiAgICAgICAgICAgICAgICAgICAgeTogY3VycmVudC55ICogc3ksXHJcbiAgICAgICAgICAgICAgICAgICAgdzogY3VycmVudC53ICogc3gsXHJcbiAgICAgICAgICAgICAgICAgICAgaDogY3VycmVudC5oICogc3lcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy8gIFdlJ3JlIHN0YXJ0aW5nIGEgbmV3IHdvcmQsIHJlY29yZGluZyB0aGUgc3RhcnRpbmcgaW5kZXgsIGV0Y1xyXG4gICAgICAgICAgICAgICAgY3VycmVudCA9IHsgd29yZDogJycsIGk6IGksIHg6IHhBZHZhbmNlLCB5OiB5QWR2YW5jZSwgdzogMCwgaDogbGluZUhlaWdodCB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjdXJyZW50LndvcmQgPSBjdXJyZW50LndvcmQuY29uY2F0KHRleHRbaV0pO1xyXG4gICAgICAgICAgICBjdXJyZW50LncgKz0gZ2x5cGgueE9mZnNldCArIGdseXBoLnhBZHZhbmNlICsgKChrZXJuaW5nT2Zmc2V0ICE9PSB1bmRlZmluZWQpID8ga2VybmluZ09mZnNldCA6IDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgeEFkdmFuY2UgKz0gZ2x5cGgueEFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nO1xyXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoO1xyXG4gICAgICAgIGxhc3RDaGFyQ29kZSA9IGNoYXJDb2RlO1xyXG4gICAgICAgIGN1cnJlbnRMaW5lV2lkdGggPSBndyAqIHNjYWxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBMYXN0IHdvcmRcclxuICAgIGlmIChjdXJyZW50ICE9PSBudWxsKVxyXG4gICAge1xyXG4gICAgICAgIHdvcmRzLnB1c2goe1xyXG4gICAgICAgICAgICB3b3JkOiBjdXJyZW50LndvcmQsXHJcbiAgICAgICAgICAgIGk6IGN1cnJlbnQuaSxcclxuICAgICAgICAgICAgeDogY3VycmVudC54ICogc3gsXHJcbiAgICAgICAgICAgIHk6IGN1cnJlbnQueSAqIHN5LFxyXG4gICAgICAgICAgICB3OiBjdXJyZW50LncgKiBzeCxcclxuICAgICAgICAgICAgaDogY3VycmVudC5oICogc3lcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBsaW5lV2lkdGhzW2N1cnJlbnRMaW5lXSA9IGN1cnJlbnRMaW5lV2lkdGg7XHJcblxyXG4gICAgaWYgKGN1cnJlbnRMaW5lV2lkdGggPiBsb25nZXN0TGluZSlcclxuICAgIHtcclxuICAgICAgICBsb25nZXN0TGluZSA9IGN1cnJlbnRMaW5lV2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGN1cnJlbnRMaW5lV2lkdGggPCBzaG9ydGVzdExpbmUpXHJcbiAgICB7XHJcbiAgICAgICAgc2hvcnRlc3RMaW5lID0gY3VycmVudExpbmVXaWR0aDtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgbG9jYWwgPSBvdXQubG9jYWw7XHJcbiAgICB2YXIgZ2xvYmFsID0gb3V0Lmdsb2JhbDtcclxuICAgIHZhciBsaW5lcyA9IG91dC5saW5lcztcclxuXHJcbiAgICBsb2NhbC54ID0gYnggKiBzY2FsZTtcclxuICAgIGxvY2FsLnkgPSBieSAqIHNjYWxlO1xyXG4gICAgbG9jYWwud2lkdGggPSBidyAqIHNjYWxlO1xyXG4gICAgbG9jYWwuaGVpZ2h0ID0gYmggKiBzY2FsZTtcclxuXHJcbiAgICBnbG9iYWwueCA9IChzcmMueCAtIHNyYy5kaXNwbGF5T3JpZ2luWCkgKyAoYnggKiBzeCk7XHJcbiAgICBnbG9iYWwueSA9IChzcmMueSAtIHNyYy5kaXNwbGF5T3JpZ2luWSkgKyAoYnkgKiBzeSk7XHJcbiAgICBnbG9iYWwud2lkdGggPSBidyAqIHN4O1xyXG4gICAgZ2xvYmFsLmhlaWdodCA9IGJoICogc3k7XHJcblxyXG4gICAgbGluZXMuc2hvcnRlc3QgPSBzaG9ydGVzdExpbmU7XHJcbiAgICBsaW5lcy5sb25nZXN0ID0gbG9uZ2VzdExpbmU7XHJcbiAgICBsaW5lcy5sZW5ndGhzID0gbGluZVdpZHRocztcclxuXHJcbiAgICBpZiAocm91bmQpXHJcbiAgICB7XHJcbiAgICAgICAgbG9jYWwueCA9IE1hdGgucm91bmQobG9jYWwueCk7XHJcbiAgICAgICAgbG9jYWwueSA9IE1hdGgucm91bmQobG9jYWwueSk7XHJcbiAgICAgICAgbG9jYWwud2lkdGggPSBNYXRoLnJvdW5kKGxvY2FsLndpZHRoKTtcclxuICAgICAgICBsb2NhbC5oZWlnaHQgPSBNYXRoLnJvdW5kKGxvY2FsLmhlaWdodCk7XHJcblxyXG4gICAgICAgIGdsb2JhbC54ID0gTWF0aC5yb3VuZChnbG9iYWwueCk7XHJcbiAgICAgICAgZ2xvYmFsLnkgPSBNYXRoLnJvdW5kKGdsb2JhbC55KTtcclxuICAgICAgICBnbG9iYWwud2lkdGggPSBNYXRoLnJvdW5kKGdsb2JhbC53aWR0aCk7XHJcbiAgICAgICAgZ2xvYmFsLmhlaWdodCA9IE1hdGgucm91bmQoZ2xvYmFsLmhlaWdodCk7XHJcblxyXG4gICAgICAgIGxpbmVzLnNob3J0ZXN0ID0gTWF0aC5yb3VuZChzaG9ydGVzdExpbmUpO1xyXG4gICAgICAgIGxpbmVzLmxvbmdlc3QgPSBNYXRoLnJvdW5kKGxvbmdlc3RMaW5lKTtcclxuICAgIH1cclxuXHJcbiAgICBvdXQud29yZHMgPSB3b3JkcztcclxuICAgIG91dC5saW5lcy5oZWlnaHQgPSBsaW5lSGVpZ2h0O1xyXG4gICAgb3V0LnNjYWxlWCA9IHNyYy5zY2FsZVg7XHJcbiAgICBvdXQuc2NhbGVZID0gc3JjLnNjYWxlWTtcclxuXHJcbiAgICByZXR1cm4gb3V0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHZXRCaXRtYXBUZXh0U2l6ZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgUGFyc2VYTUxCaXRtYXBGb250ID0gcmVxdWlyZSgnLi9QYXJzZVhNTEJpdG1hcEZvbnQnKTtcclxuXHJcbi8qKlxyXG4gKiBQYXJzZSBhbiBYTUwgQml0bWFwIEZvbnQgZnJvbSBhbiBBdGxhcy5cclxuICpcclxuICogQWRkcyB0aGUgcGFyc2VkIEJpdG1hcCBGb250IGRhdGEgdG8gdGhlIGNhY2hlIHdpdGggdGhlIGBmb250TmFtZWAga2V5LlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gUGFyc2VGcm9tQXRsYXNcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSB0byBwYXJzZSB0aGUgQml0bWFwIEZvbnQgZm9yLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gZm9udE5hbWUgLSBUaGUga2V5IG9mIHRoZSBmb250IHRvIGFkZCB0byB0aGUgQml0bWFwIEZvbnQgY2FjaGUuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0dXJlS2V5IC0gVGhlIGtleSBvZiB0aGUgQml0bWFwRm9udCdzIHRleHR1cmUuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBmcmFtZUtleSAtIFRoZSBrZXkgb2YgdGhlIEJpdG1hcEZvbnQgdGV4dHVyZSdzIGZyYW1lLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30geG1sS2V5IC0gVGhlIGtleSBvZiB0aGUgWE1MIGRhdGEgb2YgdGhlIGZvbnQgdG8gcGFyc2UuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW3hTcGFjaW5nXSAtIFRoZSB4LWF4aXMgc3BhY2luZyB0byBhZGQgYmV0d2VlbiBlYWNoIGxldHRlci5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbeVNwYWNpbmddIC0gVGhlIHktYXhpcyBzcGFjaW5nIHRvIGFkZCB0byB0aGUgbGluZSBoZWlnaHQuXHJcbiAqXHJcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhlIHBhcnNpbmcgd2FzIHN1Y2Nlc3NmdWwgb3Igbm90LlxyXG4gKi9cclxudmFyIFBhcnNlRnJvbUF0bGFzID0gZnVuY3Rpb24gKHNjZW5lLCBmb250TmFtZSwgdGV4dHVyZUtleSwgZnJhbWVLZXksIHhtbEtleSwgeFNwYWNpbmcsIHlTcGFjaW5nKVxyXG57XHJcbiAgICB2YXIgZnJhbWUgPSBzY2VuZS5zeXMudGV4dHVyZXMuZ2V0RnJhbWUodGV4dHVyZUtleSwgZnJhbWVLZXkpO1xyXG4gICAgdmFyIHhtbCA9IHNjZW5lLnN5cy5jYWNoZS54bWwuZ2V0KHhtbEtleSk7XHJcblxyXG4gICAgaWYgKGZyYW1lICYmIHhtbClcclxuICAgIHtcclxuICAgICAgICB2YXIgZGF0YSA9IFBhcnNlWE1MQml0bWFwRm9udCh4bWwsIHhTcGFjaW5nLCB5U3BhY2luZywgZnJhbWUpO1xyXG5cclxuICAgICAgICBzY2VuZS5zeXMuY2FjaGUuYml0bWFwRm9udC5hZGQoZm9udE5hbWUsIHsgZGF0YTogZGF0YSwgdGV4dHVyZTogdGV4dHVyZUtleSwgZnJhbWU6IGZyYW1lS2V5IH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBhcnNlRnJvbUF0bGFzO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBHZXRWYWx1ZSA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9HZXRWYWx1ZScpO1xyXG5cclxuLyoqXHJcbiAqIFBhcnNlcyBhIFJldHJvIEZvbnQgY29uZmlndXJhdGlvbiBvYmplY3Qgc28geW91IGNhbiBwYXNzIGl0IHRvIHRoZSBCaXRtYXBUZXh0IGNvbnN0cnVjdG9yXHJcbiAqIGFuZCBjcmVhdGUgYSBCaXRtYXBUZXh0IG9iamVjdCB1c2luZyBhIGZpeGVkLXdpZHRoIHJldHJvIGZvbnQuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQaGFzZXIuR2FtZU9iamVjdHMuUmV0cm9Gb250LlBhcnNlXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBBIHJlZmVyZW5jZSB0byB0aGUgUGhhc2VyIFNjZW5lLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0LlJldHJvRm9udENvbmZpZ30gY29uZmlnIC0gVGhlIGZvbnQgY29uZmlndXJhdGlvbiBvYmplY3QuXHJcbiAqXHJcbiAqIEByZXR1cm4ge29iamVjdH0gQSBwYXJzZWQgQml0bWFwIEZvbnQgZGF0YSBlbnRyeSBmb3IgdGhlIEJpdG1hcCBGb250IGNhY2hlLlxyXG4gKi9cclxudmFyIFBhcnNlUmV0cm9Gb250ID0gZnVuY3Rpb24gKHNjZW5lLCBjb25maWcpXHJcbntcclxuICAgIHZhciB3ID0gY29uZmlnLndpZHRoO1xyXG4gICAgdmFyIGggPSBjb25maWcuaGVpZ2h0O1xyXG4gICAgdmFyIGN4ID0gTWF0aC5mbG9vcih3IC8gMik7XHJcbiAgICB2YXIgY3kgPSBNYXRoLmZsb29yKGggLyAyKTtcclxuICAgIHZhciBsZXR0ZXJzID0gR2V0VmFsdWUoY29uZmlnLCAnY2hhcnMnLCAnJyk7XHJcblxyXG4gICAgaWYgKGxldHRlcnMgPT09ICcnKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YXIga2V5ID0gR2V0VmFsdWUoY29uZmlnLCAnaW1hZ2UnLCAnJyk7XHJcbiAgICB2YXIgb2Zmc2V0WCA9IEdldFZhbHVlKGNvbmZpZywgJ29mZnNldC54JywgMCk7XHJcbiAgICB2YXIgb2Zmc2V0WSA9IEdldFZhbHVlKGNvbmZpZywgJ29mZnNldC55JywgMCk7XHJcbiAgICB2YXIgc3BhY2luZ1ggPSBHZXRWYWx1ZShjb25maWcsICdzcGFjaW5nLngnLCAwKTtcclxuICAgIHZhciBzcGFjaW5nWSA9IEdldFZhbHVlKGNvbmZpZywgJ3NwYWNpbmcueScsIDApO1xyXG4gICAgdmFyIGxpbmVTcGFjaW5nID0gR2V0VmFsdWUoY29uZmlnLCAnbGluZVNwYWNpbmcnLCAwKTtcclxuXHJcbiAgICB2YXIgY2hhcnNQZXJSb3cgPSBHZXRWYWx1ZShjb25maWcsICdjaGFyc1BlclJvdycsIG51bGwpO1xyXG5cclxuICAgIGlmIChjaGFyc1BlclJvdyA9PT0gbnVsbClcclxuICAgIHtcclxuICAgICAgICBjaGFyc1BlclJvdyA9IHNjZW5lLnN5cy50ZXh0dXJlcy5nZXRGcmFtZShrZXkpLndpZHRoIC8gdztcclxuXHJcbiAgICAgICAgaWYgKGNoYXJzUGVyUm93ID4gbGV0dGVycy5sZW5ndGgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjaGFyc1BlclJvdyA9IGxldHRlcnMubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgeCA9IG9mZnNldFg7XHJcbiAgICB2YXIgeSA9IG9mZnNldFk7XHJcblxyXG4gICAgdmFyIGRhdGEgPSB7XHJcbiAgICAgICAgcmV0cm9Gb250OiB0cnVlLFxyXG4gICAgICAgIGZvbnQ6IGtleSxcclxuICAgICAgICBzaXplOiB3LFxyXG4gICAgICAgIGxpbmVIZWlnaHQ6IGggKyBsaW5lU3BhY2luZyxcclxuICAgICAgICBjaGFyczoge31cclxuICAgIH07XHJcblxyXG4gICAgdmFyIHIgPSAwO1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGV0dGVycy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICAvLyB2YXIgbm9kZSA9IGxldHRlcnNbaV07XHJcblxyXG4gICAgICAgIHZhciBjaGFyQ29kZSA9IGxldHRlcnMuY2hhckNvZGVBdChpKTtcclxuXHJcbiAgICAgICAgZGF0YS5jaGFyc1tjaGFyQ29kZV0gPVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgeDogeCxcclxuICAgICAgICAgICAgeTogeSxcclxuICAgICAgICAgICAgd2lkdGg6IHcsXHJcbiAgICAgICAgICAgIGhlaWdodDogaCxcclxuICAgICAgICAgICAgY2VudGVyWDogY3gsXHJcbiAgICAgICAgICAgIGNlbnRlclk6IGN5LFxyXG4gICAgICAgICAgICB4T2Zmc2V0OiAwLFxyXG4gICAgICAgICAgICB5T2Zmc2V0OiAwLFxyXG4gICAgICAgICAgICB4QWR2YW5jZTogdyxcclxuICAgICAgICAgICAgZGF0YToge30sXHJcbiAgICAgICAgICAgIGtlcm5pbmc6IHt9XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcisrO1xyXG5cclxuICAgICAgICBpZiAociA9PT0gY2hhcnNQZXJSb3cpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByID0gMDtcclxuICAgICAgICAgICAgeCA9IG9mZnNldFg7XHJcbiAgICAgICAgICAgIHkgKz0gaCArIHNwYWNpbmdZO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB4ICs9IHcgKyBzcGFjaW5nWDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGVudHJ5ID0ge1xyXG4gICAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgICAgZnJhbWU6IG51bGwsXHJcbiAgICAgICAgdGV4dHVyZToga2V5XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBlbnRyeTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUGFyc2VSZXRyb0ZvbnQ7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFJlYWQgYW4gaW50ZWdlciB2YWx1ZSBmcm9tIGFuIFhNTCBOb2RlLlxyXG4gKlxyXG4gKiBAZnVuY3Rpb24gZ2V0VmFsdWVcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7Tm9kZX0gbm9kZSAtIFRoZSBYTUwgTm9kZS5cclxuICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZSAtIFRoZSBhdHRyaWJ1dGUgdG8gcmVhZC5cclxuICpcclxuICogQHJldHVybiB7aW50ZWdlcn0gVGhlIHBhcnNlZCB2YWx1ZS5cclxuICovXHJcbmZ1bmN0aW9uIGdldFZhbHVlIChub2RlLCBhdHRyaWJ1dGUpXHJcbntcclxuICAgIHJldHVybiBwYXJzZUludChub2RlLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpLCAxMCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQYXJzZSBhbiBYTUwgZm9udCB0byBCaXRtYXAgRm9udCBkYXRhIGZvciB0aGUgQml0bWFwIEZvbnQgY2FjaGUuXHJcbiAqXHJcbiAqIEBmdW5jdGlvbiBQYXJzZVhNTEJpdG1hcEZvbnRcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7WE1MRG9jdW1lbnR9IHhtbCAtIFRoZSBYTUwgRG9jdW1lbnQgdG8gcGFyc2UgdGhlIGZvbnQgZnJvbS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbeFNwYWNpbmc9MF0gLSBUaGUgeC1heGlzIHNwYWNpbmcgdG8gYWRkIGJldHdlZW4gZWFjaCBsZXR0ZXIuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW3lTcGFjaW5nPTBdIC0gVGhlIHktYXhpcyBzcGFjaW5nIHRvIGFkZCB0byB0aGUgbGluZSBoZWlnaHQuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlRleHR1cmVzLkZyYW1lfSBbZnJhbWVdIC0gVGhlIHRleHR1cmUgZnJhbWUgdG8gdGFrZSBpbnRvIGFjY291bnQgd2hpbGUgcGFyc2luZy5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLkJpdG1hcFRleHQuQml0bWFwRm9udERhdGF9IFRoZSBwYXJzZWQgQml0bWFwIEZvbnQgZGF0YS5cclxuICovXHJcbnZhciBQYXJzZVhNTEJpdG1hcEZvbnQgPSBmdW5jdGlvbiAoeG1sLCB4U3BhY2luZywgeVNwYWNpbmcsIGZyYW1lKVxyXG57XHJcbiAgICBpZiAoeFNwYWNpbmcgPT09IHVuZGVmaW5lZCkgeyB4U3BhY2luZyA9IDA7IH1cclxuICAgIGlmICh5U3BhY2luZyA9PT0gdW5kZWZpbmVkKSB7IHlTcGFjaW5nID0gMDsgfVxyXG5cclxuICAgIHZhciBkYXRhID0ge307XHJcbiAgICB2YXIgaW5mbyA9IHhtbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5mbycpWzBdO1xyXG4gICAgdmFyIGNvbW1vbiA9IHhtbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY29tbW9uJylbMF07XHJcblxyXG4gICAgZGF0YS5mb250ID0gaW5mby5nZXRBdHRyaWJ1dGUoJ2ZhY2UnKTtcclxuICAgIGRhdGEuc2l6ZSA9IGdldFZhbHVlKGluZm8sICdzaXplJyk7XHJcbiAgICBkYXRhLmxpbmVIZWlnaHQgPSBnZXRWYWx1ZShjb21tb24sICdsaW5lSGVpZ2h0JykgKyB5U3BhY2luZztcclxuICAgIGRhdGEuY2hhcnMgPSB7fTtcclxuXHJcbiAgICB2YXIgbGV0dGVycyA9IHhtbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY2hhcicpO1xyXG5cclxuICAgIHZhciBhZGp1c3RGb3JUcmltID0gKGZyYW1lICE9PSB1bmRlZmluZWQgJiYgZnJhbWUudHJpbW1lZCk7XHJcblxyXG4gICAgaWYgKGFkanVzdEZvclRyaW0pXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHRvcCA9IGZyYW1lLmhlaWdodDtcclxuICAgICAgICB2YXIgbGVmdCA9IGZyYW1lLndpZHRoO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGV0dGVycy5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICB2YXIgbm9kZSA9IGxldHRlcnNbaV07XHJcblxyXG4gICAgICAgIHZhciBjaGFyQ29kZSA9IGdldFZhbHVlKG5vZGUsICdpZCcpO1xyXG4gICAgICAgIHZhciBneCA9IGdldFZhbHVlKG5vZGUsICd4Jyk7XHJcbiAgICAgICAgdmFyIGd5ID0gZ2V0VmFsdWUobm9kZSwgJ3knKTtcclxuICAgICAgICB2YXIgZ3cgPSBnZXRWYWx1ZShub2RlLCAnd2lkdGgnKTtcclxuICAgICAgICB2YXIgZ2ggPSBnZXRWYWx1ZShub2RlLCAnaGVpZ2h0Jyk7XHJcblxyXG4gICAgICAgIC8vICBIYW5kbGUgZnJhbWUgdHJpbSBpc3N1ZXNcclxuXHJcbiAgICAgICAgaWYgKGFkanVzdEZvclRyaW0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoZ3ggPCBsZWZ0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0ID0gZ3g7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChneSA8IHRvcClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdG9wID0gZ3k7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRhdGEuY2hhcnNbY2hhckNvZGVdID1cclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHg6IGd4LFxyXG4gICAgICAgICAgICB5OiBneSxcclxuICAgICAgICAgICAgd2lkdGg6IGd3LFxyXG4gICAgICAgICAgICBoZWlnaHQ6IGdoLFxyXG4gICAgICAgICAgICBjZW50ZXJYOiBNYXRoLmZsb29yKGd3IC8gMiksXHJcbiAgICAgICAgICAgIGNlbnRlclk6IE1hdGguZmxvb3IoZ2ggLyAyKSxcclxuICAgICAgICAgICAgeE9mZnNldDogZ2V0VmFsdWUobm9kZSwgJ3hvZmZzZXQnKSxcclxuICAgICAgICAgICAgeU9mZnNldDogZ2V0VmFsdWUobm9kZSwgJ3lvZmZzZXQnKSxcclxuICAgICAgICAgICAgeEFkdmFuY2U6IGdldFZhbHVlKG5vZGUsICd4YWR2YW5jZScpICsgeFNwYWNpbmcsXHJcbiAgICAgICAgICAgIGRhdGE6IHt9LFxyXG4gICAgICAgICAgICBrZXJuaW5nOiB7fVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFkanVzdEZvclRyaW0gJiYgdG9wICE9PSAwICYmIGxlZnQgIT09IDApXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIE5vdyB3ZSBrbm93IHRoZSB0b3AgYW5kIGxlZnQgY29vcmRpbmF0ZXMgb2YgdGhlIGdseXBocyBpbiB0aGUgb3JpZ2luYWwgZGF0YVxyXG4gICAgICAgIC8vICBzbyB3ZSBjYW4gd29yayBvdXQgaG93IG11Y2ggdG8gYWRqdXN0IHRoZSBnbHlwaHMgYnlcclxuXHJcbiAgICAgICAgZm9yICh2YXIgY29kZSBpbiBkYXRhLmNoYXJzKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGdseXBoID0gZGF0YS5jaGFyc1tjb2RlXTtcclxuXHJcbiAgICAgICAgICAgIGdseXBoLnggLT0gZnJhbWUueDtcclxuICAgICAgICAgICAgZ2x5cGgueSAtPSBmcmFtZS55O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIga2VybmluZ3MgPSB4bWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2tlcm5pbmcnKTtcclxuXHJcbiAgICBmb3IgKGkgPSAwOyBpIDwga2VybmluZ3MubGVuZ3RoOyBpKyspXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGtlcm4gPSBrZXJuaW5nc1tpXTtcclxuXHJcbiAgICAgICAgdmFyIGZpcnN0ID0gZ2V0VmFsdWUoa2VybiwgJ2ZpcnN0Jyk7XHJcbiAgICAgICAgdmFyIHNlY29uZCA9IGdldFZhbHVlKGtlcm4sICdzZWNvbmQnKTtcclxuICAgICAgICB2YXIgYW1vdW50ID0gZ2V0VmFsdWUoa2VybiwgJ2Ftb3VudCcpO1xyXG5cclxuICAgICAgICBkYXRhLmNoYXJzW3NlY29uZF0ua2VybmluZ1tmaXJzdF0gPSBhbW91bnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGE7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBhcnNlWE1MQml0bWFwRm9udDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgUkVUUk9fRk9OVF9DT05TVCA9IHJlcXVpcmUoJy4vY29uc3QnKTtcclxudmFyIEV4dGVuZCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9FeHRlbmQnKTtcclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5SZXRyb0ZvbnRcclxuICogQHNpbmNlIDMuNi4wXHJcbiAqL1xyXG5cclxudmFyIFJldHJvRm9udCA9IHsgUGFyc2U6IHJlcXVpcmUoJy4vUGFyc2VSZXRyb0ZvbnQnKSB9O1xyXG5cclxuLy8gICBNZXJnZSBpbiB0aGUgY29uc3RzXHJcblJldHJvRm9udCA9IEV4dGVuZChmYWxzZSwgUmV0cm9Gb250LCBSRVRST19GT05UX0NPTlNUKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUmV0cm9Gb250O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBSRVRST19GT05UX0NPTlNUID0ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGV4dCBTZXQgMSA9ICAhXFxcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5SZXRyb0ZvbnQuVEVYVF9TRVQxXHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICogQHNpbmNlIDMuNi4wXHJcbiAgICAgKi9cclxuICAgIFRFWFRfU0VUMTogJyAhXCIjJCUmXFwnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+JyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRleHQgU2V0IDIgPSAgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpcclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJldHJvRm9udC5URVhUX1NFVDJcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKiBAc2luY2UgMy42LjBcclxuICAgICAqL1xyXG4gICAgVEVYVF9TRVQyOiAnICFcIiMkJSZcXCcoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGV4dCBTZXQgMyA9IEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSBcclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJldHJvRm9udC5URVhUX1NFVDNcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKiBAc2luY2UgMy42LjBcclxuICAgICAqL1xyXG4gICAgVEVYVF9TRVQzOiAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5ICcsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZXh0IFNldCA0ID0gQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVogMDEyMzQ1Njc4OVxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUmV0cm9Gb250LlRFWFRfU0VUNFxyXG4gICAgICogQHR5cGUge3N0cmluZ31cclxuICAgICAqIEBzaW5jZSAzLjYuMFxyXG4gICAgICovXHJcbiAgICBURVhUX1NFVDQ6ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiAwMTIzNDU2Nzg5JyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRleHQgU2V0IDUgPSBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi4sLygpICchPy0qOjAxMjM0NTY3ODlcclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJldHJvRm9udC5URVhUX1NFVDVcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKiBAc2luY2UgMy42LjBcclxuICAgICAqL1xyXG4gICAgVEVYVF9TRVQ1OiAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVouLC8oKSBcXCchPy0qOjAxMjM0NTY3ODknLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGV4dCBTZXQgNiA9IEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIT86OzAxMjM0NTY3ODlcIigpLC0uJyBcclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJldHJvRm9udC5URVhUX1NFVDZcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKiBAc2luY2UgMy42LjBcclxuICAgICAqL1xyXG4gICAgVEVYVF9TRVQ2OiAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVohPzo7MDEyMzQ1Njc4OVwiKCksLS5cXCcgJyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRleHQgU2V0IDcgPSBBR01TWSs6NEJITlRaITs1Q0lPVS4/MDZESlBWLCgxN0VLUVdcIikyOEZMUlgtJzM5XHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5SZXRyb0ZvbnQuVEVYVF9TRVQ3XHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICogQHNpbmNlIDMuNi4wXHJcbiAgICAgKi9cclxuICAgIFRFWFRfU0VUNzogJ0FHTVNZKzo0QkhOVFohOzVDSU9VLj8wNkRKUFYsKDE3RUtRV1wiKTI4RkxSWC1cXCczOScsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZXh0IFNldCA4ID0gMDEyMzQ1Njc4OSAuQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpcclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJldHJvRm9udC5URVhUX1NFVDhcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKiBAc2luY2UgMy42LjBcclxuICAgICAqL1xyXG4gICAgVEVYVF9TRVQ4OiAnMDEyMzQ1Njc4OSAuQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGV4dCBTZXQgOSA9IEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaKCktMDEyMzQ1Njc4OS46LCdcIj8hXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5SZXRyb0ZvbnQuVEVYVF9TRVQ5XHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICogQHNpbmNlIDMuNi4wXHJcbiAgICAgKi9cclxuICAgIFRFWFRfU0VUOTogJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaKCktMDEyMzQ1Njc4OS46LFxcJ1wiPyEnLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGV4dCBTZXQgMTAgPSBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWlxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUmV0cm9Gb250LlRFWFRfU0VUMTBcclxuICAgICAqIEB0eXBlIHtzdHJpbmd9XHJcbiAgICAgKiBAc2luY2UgMy42LjBcclxuICAgICAqL1xyXG4gICAgVEVYVF9TRVQxMDogJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRleHQgU2V0IDExID0gQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVouLFwiLSshPygpJzo7MDEyMzQ1Njc4OVxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUmV0cm9Gb250LlRFWFRfU0VUMTFcclxuICAgICAqIEBzaW5jZSAzLjYuMFxyXG4gICAgICogQHR5cGUge3N0cmluZ31cclxuICAgICAqL1xyXG4gICAgVEVYVF9TRVQxMTogJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaLixcIi0rIT8oKVxcJzo7MDEyMzQ1Njc4OSdcclxuXHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFJFVFJPX0ZPTlRfQ09OU1Q7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEJpdG1hcFRleHQgPSByZXF1aXJlKCcuLi9zdGF0aWMvQml0bWFwVGV4dCcpO1xyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgUmVuZGVyID0gcmVxdWlyZSgnLi9EeW5hbWljQml0bWFwVGV4dFJlbmRlcicpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQml0bWFwVGV4dCBvYmplY3RzIHdvcmsgYnkgdGFraW5nIGEgdGV4dHVyZSBmaWxlIGFuZCBhbiBYTUwgb3IgSlNPTiBmaWxlIHRoYXQgZGVzY3JpYmVzIHRoZSBmb250IHN0cnVjdHVyZS5cclxuICogXHJcbiAqIER1cmluZyByZW5kZXJpbmcgZm9yIGVhY2ggbGV0dGVyIG9mIHRoZSB0ZXh0IGlzIHJlbmRlcmVkIHRvIHRoZSBkaXNwbGF5LCBwcm9wb3J0aW9uYWxseSBzcGFjZWQgb3V0IGFuZCBhbGlnbmVkIHRvXHJcbiAqIG1hdGNoIHRoZSBmb250IHN0cnVjdHVyZS5cclxuICogXHJcbiAqIER5bmFtaWMgQml0bWFwIFRleHQgb2JqZWN0cyBhcmUgZGlmZmVyZW50IGZyb20gU3RhdGljIEJpdG1hcCBUZXh0IGluIHRoYXQgdGhleSBpbnZva2UgYSBjYWxsYmFjayBmb3IgZWFjaFxyXG4gKiBsZXR0ZXIgYmVpbmcgcmVuZGVyZWQgZHVyaW5nIHRoZSByZW5kZXIgcGFzcy4gVGhpcyBjYWxsYmFjayBhbGxvd3MgeW91IHRvIG1hbmlwdWxhdGUgdGhlIHByb3BlcnRpZXMgb2ZcclxuICogZWFjaCBsZXR0ZXIgYmVpbmcgcmVuZGVyZWQsIHN1Y2ggYXMgaXRzIHBvc2l0aW9uLCBzY2FsZSBvciB0aW50LCBhbGxvd2luZyB5b3UgdG8gY3JlYXRlIGludGVyZXN0aW5nIGVmZmVjdHNcclxuICogbGlrZSBqaWdnbGluZyB0ZXh0LCB3aGljaCBjYW4ndCBiZSBkb25lIHdpdGggU3RhdGljIHRleHQuIFRoaXMgbWVhbnMgdGhhdCBEeW5hbWljIFRleHQgdGFrZXMgbW9yZSBwcm9jZXNzaW5nXHJcbiAqIHRpbWUsIHNvIG9ubHkgdXNlIHRoZW0gaWYgeW91IHJlcXVpcmUgdGhlIGNhbGxiYWNrIGFiaWxpdHkgdGhleSBoYXZlLlxyXG4gKlxyXG4gKiBCaXRtYXBUZXh0IG9iamVjdHMgYXJlIGxlc3MgZmxleGlibGUgdGhhbiBUZXh0IG9iamVjdHMsIGluIHRoYXQgdGhleSBoYXZlIGxlc3MgZmVhdHVyZXMgc3VjaCBhcyBzaGFkb3dzLCBmaWxscyBhbmQgdGhlIGFiaWxpdHlcclxuICogdG8gdXNlIFdlYiBGb250cywgaG93ZXZlciB5b3UgdHJhZGUgdGhpcyBmbGV4aWJpbGl0eSBmb3IgcmVuZGVyaW5nIHNwZWVkLiBZb3UgY2FuIGFsc28gY3JlYXRlIHZpc3VhbGx5IGNvbXBlbGxpbmcgQml0bWFwVGV4dHMgYnlcclxuICogcHJvY2Vzc2luZyB0aGUgZm9udCB0ZXh0dXJlIGluIGFuIGltYWdlIGVkaXRvciwgYXBwbHlpbmcgZmlsbHMgYW5kIGFueSBvdGhlciBlZmZlY3RzIHJlcXVpcmVkLlxyXG4gKlxyXG4gKiBUbyBjcmVhdGUgbXVsdGktbGluZSB0ZXh0IGluc2VydCBcXHIsIFxcbiBvciBcXHJcXG4gZXNjYXBlIGNvZGVzIGludG8gdGhlIHRleHQgc3RyaW5nLlxyXG4gKlxyXG4gKiBUbyBjcmVhdGUgYSBCaXRtYXBUZXh0IGRhdGEgZmlsZXMgeW91IG5lZWQgYSAzcmQgcGFydHkgYXBwIHN1Y2ggYXM6XHJcbiAqXHJcbiAqIEJNRm9udCAoV2luZG93cywgZnJlZSk6IGh0dHA6Ly93d3cuYW5nZWxjb2RlLmNvbS9wcm9kdWN0cy9ibWZvbnQvXHJcbiAqIEdseXBoIERlc2lnbmVyIChPUyBYLCBjb21tZXJjaWFsKTogaHR0cDovL3d3dy43MXNxdWFyZWQuY29tL2VuL2dseXBoZGVzaWduZXJcclxuICogTGl0dGVyYSAoV2ViLWJhc2VkLCBmcmVlKTogaHR0cDovL2t2YXphcnMuY29tL2xpdHRlcmEvXHJcbiAqXHJcbiAqIEZvciBtb3N0IHVzZSBjYXNlcyBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgWE1MLiBJZiB5b3Ugd2lzaCB0byB1c2UgSlNPTiwgdGhlIGZvcm1hdHRpbmcgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSByZXN1bHQgb2ZcclxuICogY29udmVydGluZyBhIHZhbGlkIFhNTCBmaWxlIHRocm91Z2ggdGhlIHBvcHVsYXIgWDJKUyBsaWJyYXJ5LiBBbiBvbmxpbmUgdG9vbCBmb3IgY29udmVyc2lvbiBjYW4gYmUgZm91bmQgaGVyZTogaHR0cDovL2NvZGViZWF1dGlmeS5vcmcveG1sdG9qc29uXHJcbiAqXHJcbiAqIEBjbGFzcyBEeW5hbWljQml0bWFwVGV4dFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dFxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkdhbWVPYmplY3RzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gSXQgY2FuIG9ubHkgYmVsb25nIHRvIG9uZSBTY2VuZSBhdCBhbnkgZ2l2ZW4gdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBjb29yZGluYXRlIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gd29ybGQgc3BhY2UuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHdvcmxkIHNwYWNlLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gZm9udCAtIFRoZSBrZXkgb2YgdGhlIGZvbnQgdG8gdXNlIGZyb20gdGhlIEJpdG1hcCBGb250IGNhY2hlLlxyXG4gKiBAcGFyYW0geyhzdHJpbmd8c3RyaW5nW10pfSBbdGV4dF0gLSBUaGUgc3RyaW5nLCBvciBhcnJheSBvZiBzdHJpbmdzLCB0byBiZSBzZXQgYXMgdGhlIGNvbnRlbnQgb2YgdGhpcyBCaXRtYXAgVGV4dC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzaXplXSAtIFRoZSBmb250IHNpemUgb2YgdGhpcyBCaXRtYXAgVGV4dC5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbYWxpZ249MF0gLSBUaGUgYWxpZ25tZW50IG9mIHRoZSB0ZXh0IGluIGEgbXVsdGktbGluZSBCaXRtYXBUZXh0IG9iamVjdC5cclxuICovXHJcbnZhciBEeW5hbWljQml0bWFwVGV4dCA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogQml0bWFwVGV4dCxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBSZW5kZXJcclxuICAgIF0sXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBEeW5hbWljQml0bWFwVGV4dCAoc2NlbmUsIHgsIHksIGZvbnQsIHRleHQsIHNpemUsIGFsaWduKVxyXG4gICAge1xyXG4gICAgICAgIEJpdG1hcFRleHQuY2FsbCh0aGlzLCBzY2VuZSwgeCwgeSwgZm9udCwgdGV4dCwgc2l6ZSwgYWxpZ24pO1xyXG5cclxuICAgICAgICB0aGlzLnR5cGUgPSAnRHluYW1pY0JpdG1hcFRleHQnO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaG9yaXpvbnRhbCBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIEJpdG1hcCBUZXh0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkR5bmFtaWNCaXRtYXBUZXh0I3Njcm9sbFhcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjcm9sbFggPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdmVydGljYWwgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBCaXRtYXAgVGV4dC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5EeW5hbWljQml0bWFwVGV4dCNzY3JvbGxZXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zY3JvbGxZID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGNyb3Agd2lkdGggb2YgdGhlIEJpdG1hcCBUZXh0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkR5bmFtaWNCaXRtYXBUZXh0I2Nyb3BXaWR0aFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY3JvcFdpZHRoID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGNyb3AgaGVpZ2h0IG9mIHRoZSBCaXRtYXAgVGV4dC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5EeW5hbWljQml0bWFwVGV4dCNjcm9wSGVpZ2h0XHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jcm9wSGVpZ2h0ID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBjYWxsYmFjayB0aGF0IGFsdGVycyBob3cgZWFjaCBjaGFyYWN0ZXIgb2YgdGhlIEJpdG1hcCBUZXh0IGlzIHJlbmRlcmVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkR5bmFtaWNCaXRtYXBUZXh0I2Rpc3BsYXlDYWxsYmFja1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuQml0bWFwVGV4dC5EaXNwbGF5Q2FsbGJhY2t9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kaXNwbGF5Q2FsbGJhY2s7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBkYXRhIG9iamVjdCB0aGF0IGlzIHBvcHVsYXRlZCBkdXJpbmcgcmVuZGVyaW5nLCB0aGVuIHBhc3NlZCB0byB0aGUgZGlzcGxheUNhbGxiYWNrLlxyXG4gICAgICAgICAqIFlvdSBzaG91bGQgbW9kaWZ5IHRoaXMgb2JqZWN0IHRoZW4gcmV0dXJuIGl0IGJhY2sgZnJvbSB0aGUgY2FsbGJhY2suIEl0J3MgdXBkYXRlZCB2YWx1ZXNcclxuICAgICAgICAgKiB3aWxsIGJlIHVzZWQgdG8gcmVuZGVyIHRoZSBzcGVjaWZpYyBnbHlwaC5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBQbGVhc2Ugbm90ZSB0aGF0IGlmIHlvdSBuZWVkIGEgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0IGxvY2FsbHkgaW4geW91ciBnYW1lIGNvZGUgdGhlbiB5b3VcclxuICAgICAgICAgKiBzaG91bGQgc2hhbGxvdyBjb3B5IGl0LCBhcyBpdCdzIHVwZGF0ZWQgYW5kIHJlLXVzZWQgZm9yIGV2ZXJ5IGdseXBoIGluIHRoZSB0ZXh0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkR5bmFtaWNCaXRtYXBUZXh0I2NhbGxiYWNrRGF0YVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuQml0bWFwVGV4dC5EaXNwbGF5Q2FsbGJhY2tDb25maWd9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY2FsbGJhY2tEYXRhID0ge1xyXG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMsXHJcbiAgICAgICAgICAgIGNvbG9yOiAwLFxyXG4gICAgICAgICAgICB0aW50OiB7XHJcbiAgICAgICAgICAgICAgICB0b3BMZWZ0OiAwLFxyXG4gICAgICAgICAgICAgICAgdG9wUmlnaHQ6IDAsXHJcbiAgICAgICAgICAgICAgICBib3R0b21MZWZ0OiAwLFxyXG4gICAgICAgICAgICAgICAgYm90dG9tUmlnaHQ6IDBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaW5kZXg6IDAsXHJcbiAgICAgICAgICAgIGNoYXJDb2RlOiAwLFxyXG4gICAgICAgICAgICB4OiAwLFxyXG4gICAgICAgICAgICB5OiAwLFxyXG4gICAgICAgICAgICBzY2FsZTogMCxcclxuICAgICAgICAgICAgcm90YXRpb246IDAsXHJcbiAgICAgICAgICAgIGRhdGE6IDBcclxuICAgICAgICB9O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgY3JvcCBzaXplIG9mIHRoaXMgQml0bWFwIFRleHQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuRHluYW1pY0JpdG1hcFRleHQjc2V0U2l6ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBjcm9wLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIGNyb3AuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0U2l6ZTogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5jcm9wV2lkdGggPSB3aWR0aDtcclxuICAgICAgICB0aGlzLmNyb3BIZWlnaHQgPSBoZWlnaHQ7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCBhIGNhbGxiYWNrIHRoYXQgYWx0ZXJzIGhvdyBlYWNoIGNoYXJhY3RlciBvZiB0aGUgQml0bWFwIFRleHQgaXMgcmVuZGVyZWQuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIGNhbGxiYWNrIHJlY2VpdmVzIGEge0BsaW5rIFBoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0LkRpc3BsYXlDYWxsYmFja0NvbmZpZ30gb2JqZWN0IHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNoYXJhY3RlciB0aGF0J3NcclxuICAgICAqIGFib3V0IHRvIGJlIHJlbmRlcmVkLlxyXG4gICAgICpcclxuICAgICAqIEl0IHNob3VsZCByZXR1cm4gYW4gb2JqZWN0IHdpdGggYHhgLCBgeWAsIGBzY2FsZWAgYW5kIGByb3RhdGlvbmAgcHJvcGVydGllcyB0aGF0IHdpbGwgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZVxyXG4gICAgICogdXN1YWwgdmFsdWVzIHdoZW4gcmVuZGVyaW5nLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkR5bmFtaWNCaXRtYXBUZXh0I3NldERpc3BsYXlDYWxsYmFja1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuQml0bWFwVGV4dC5EaXNwbGF5Q2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIGRpc3BsYXkgY2FsbGJhY2sgdG8gc2V0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldERpc3BsYXlDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUNhbGxiYWNrID0gY2FsbGJhY2s7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgaG9yaXpvbnRhbCBzY3JvbGwgcG9zaXRpb24gb2YgdGhpcyBCaXRtYXAgVGV4dC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5EeW5hbWljQml0bWFwVGV4dCNzZXRTY3JvbGxYXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgaG9yaXpvbnRhbCBzY3JvbGwgcG9zaXRpb24gdG8gc2V0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldFNjcm9sbFg6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFggPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSB2ZXJ0aWNhbCBzY3JvbGwgcG9zaXRpb24gb2YgdGhpcyBCaXRtYXAgVGV4dC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5EeW5hbWljQml0bWFwVGV4dCNzZXRTY3JvbGxZXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgdmVydGljYWwgc2Nyb2xsIHBvc2l0aW9uIHRvIHNldC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRTY3JvbGxZOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxZID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IER5bmFtaWNCaXRtYXBUZXh0O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBTZXRUcmFuc2Zvcm0gPSByZXF1aXJlKCcuLi8uLi8uLi9yZW5kZXJlci9jYW52YXMvdXRpbHMvU2V0VHJhbnNmb3JtJyk7XHJcblxyXG4vKipcclxuICogUmVuZGVycyB0aGlzIEdhbWUgT2JqZWN0IHdpdGggdGhlIENhbnZhcyBSZW5kZXJlciB0byB0aGUgZ2l2ZW4gQ2FtZXJhLlxyXG4gKiBUaGUgb2JqZWN0IHdpbGwgbm90IHJlbmRlciBpZiBhbnkgb2YgaXRzIHJlbmRlckZsYWdzIGFyZSBzZXQgb3IgaXQgaXMgYmVpbmcgYWN0aXZlbHkgZmlsdGVyZWQgb3V0IGJ5IHRoZSBDYW1lcmEuXHJcbiAqIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBJdCBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gb2YgdGhlIFJlbmRlciBtb2R1bGUuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkR5bmFtaWNCaXRtYXBUZXh0I3JlbmRlckNhbnZhc1xyXG4gKiBAc2luY2UgMy4wLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBDYW52YXMgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkR5bmFtaWNCaXRtYXBUZXh0fSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgRHluYW1pY0JpdG1hcFRleHRDYW52YXNSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciB0ZXh0ID0gc3JjLl90ZXh0O1xyXG4gICAgdmFyIHRleHRMZW5ndGggPSB0ZXh0Lmxlbmd0aDtcclxuXHJcbiAgICB2YXIgY3R4ID0gcmVuZGVyZXIuY3VycmVudENvbnRleHQ7XHJcblxyXG4gICAgaWYgKHRleHRMZW5ndGggPT09IDAgfHwgIVNldFRyYW5zZm9ybShyZW5kZXJlciwgY3R4LCBzcmMsIGNhbWVyYSwgcGFyZW50TWF0cml4KSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHZhciB0ZXh0dXJlRnJhbWUgPSBzcmMuZnJhbWU7XHJcblxyXG4gICAgdmFyIGRpc3BsYXlDYWxsYmFjayA9IHNyYy5kaXNwbGF5Q2FsbGJhY2s7XHJcbiAgICB2YXIgY2FsbGJhY2tEYXRhID0gc3JjLmNhbGxiYWNrRGF0YTtcclxuXHJcbiAgICB2YXIgY2hhcnMgPSBzcmMuZm9udERhdGEuY2hhcnM7XHJcbiAgICB2YXIgbGluZUhlaWdodCA9IHNyYy5mb250RGF0YS5saW5lSGVpZ2h0O1xyXG4gICAgdmFyIGxldHRlclNwYWNpbmcgPSBzcmMuX2xldHRlclNwYWNpbmc7XHJcblxyXG4gICAgdmFyIHhBZHZhbmNlID0gMDtcclxuICAgIHZhciB5QWR2YW5jZSA9IDA7XHJcblxyXG4gICAgdmFyIGNoYXJDb2RlID0gMDtcclxuXHJcbiAgICB2YXIgZ2x5cGggPSBudWxsO1xyXG4gICAgdmFyIGdseXBoWCA9IDA7XHJcbiAgICB2YXIgZ2x5cGhZID0gMDtcclxuICAgIHZhciBnbHlwaFcgPSAwO1xyXG4gICAgdmFyIGdseXBoSCA9IDA7XHJcblxyXG4gICAgdmFyIHggPSAwO1xyXG4gICAgdmFyIHkgPSAwO1xyXG5cclxuICAgIHZhciBsYXN0R2x5cGggPSBudWxsO1xyXG4gICAgdmFyIGxhc3RDaGFyQ29kZSA9IDA7XHJcblxyXG4gICAgdmFyIGltYWdlID0gc3JjLmZyYW1lLnNvdXJjZS5pbWFnZTtcclxuXHJcbiAgICB2YXIgdGV4dHVyZVggPSB0ZXh0dXJlRnJhbWUuY3V0WDtcclxuICAgIHZhciB0ZXh0dXJlWSA9IHRleHR1cmVGcmFtZS5jdXRZO1xyXG5cclxuICAgIHZhciByb3RhdGlvbiA9IDA7XHJcbiAgICB2YXIgc2NhbGUgPSAwO1xyXG4gICAgdmFyIGJhc2VTY2FsZSA9IChzcmMuX2ZvbnRTaXplIC8gc3JjLmZvbnREYXRhLnNpemUpO1xyXG5cclxuICAgIHZhciBhbGlnbiA9IHNyYy5fYWxpZ247XHJcbiAgICB2YXIgY3VycmVudExpbmUgPSAwO1xyXG4gICAgdmFyIGxpbmVPZmZzZXRYID0gMDtcclxuXHJcbiAgICAvLyAgVXBkYXRlIHRoZSBib3VuZHMgLSBza2lwcGVkIGludGVybmFsbHkgaWYgbm90IGRpcnR5XHJcbiAgICBzcmMuZ2V0VGV4dEJvdW5kcyhmYWxzZSk7XHJcblxyXG4gICAgdmFyIGxpbmVEYXRhID0gc3JjLl9ib3VuZHMubGluZXM7XHJcblxyXG4gICAgaWYgKGFsaWduID09PSAxKVxyXG4gICAge1xyXG4gICAgICAgIGxpbmVPZmZzZXRYID0gKGxpbmVEYXRhLmxvbmdlc3QgLSBsaW5lRGF0YS5sZW5ndGhzWzBdKSAvIDI7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhbGlnbiA9PT0gMilcclxuICAgIHtcclxuICAgICAgICBsaW5lT2Zmc2V0WCA9IChsaW5lRGF0YS5sb25nZXN0IC0gbGluZURhdGEubGVuZ3Roc1swXSk7XHJcbiAgICB9XHJcblxyXG4gICAgY3R4LnRyYW5zbGF0ZSgtc3JjLmRpc3BsYXlPcmlnaW5YLCAtc3JjLmRpc3BsYXlPcmlnaW5ZKTtcclxuXHJcbiAgICB2YXIgcm91bmRQaXhlbHMgPSBjYW1lcmEucm91bmRQaXhlbHM7XHJcblxyXG4gICAgaWYgKHNyYy5jcm9wV2lkdGggPiAwICYmIHNyYy5jcm9wSGVpZ2h0ID4gMClcclxuICAgIHtcclxuICAgICAgICBjdHguYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgY3R4LnJlY3QoMCwgMCwgc3JjLmNyb3BXaWR0aCwgc3JjLmNyb3BIZWlnaHQpO1xyXG4gICAgICAgIGN0eC5jbGlwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0TGVuZ3RoOyBpKyspXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIFJlc2V0IHRoZSBzY2FsZSAoaW4gY2FzZSB0aGUgY2FsbGJhY2sgY2hhbmdlZCBpdClcclxuICAgICAgICBzY2FsZSA9IGJhc2VTY2FsZTtcclxuICAgICAgICByb3RhdGlvbiA9IDA7XHJcblxyXG4gICAgICAgIGNoYXJDb2RlID0gdGV4dC5jaGFyQ29kZUF0KGkpO1xyXG5cclxuICAgICAgICBpZiAoY2hhckNvZGUgPT09IDEwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY3VycmVudExpbmUrKztcclxuXHJcbiAgICAgICAgICAgIGlmIChhbGlnbiA9PT0gMSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGluZU9mZnNldFggPSAobGluZURhdGEubG9uZ2VzdCAtIGxpbmVEYXRhLmxlbmd0aHNbY3VycmVudExpbmVdKSAvIDI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYWxpZ24gPT09IDIpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGxpbmVPZmZzZXRYID0gKGxpbmVEYXRhLmxvbmdlc3QgLSBsaW5lRGF0YS5sZW5ndGhzW2N1cnJlbnRMaW5lXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHhBZHZhbmNlID0gMDtcclxuICAgICAgICAgICAgeUFkdmFuY2UgKz0gbGluZUhlaWdodDtcclxuICAgICAgICAgICAgbGFzdEdseXBoID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2x5cGggPSBjaGFyc1tjaGFyQ29kZV07XHJcblxyXG4gICAgICAgIGlmICghZ2x5cGgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGdseXBoWCA9IHRleHR1cmVYICsgZ2x5cGgueDtcclxuICAgICAgICBnbHlwaFkgPSB0ZXh0dXJlWSArIGdseXBoLnk7XHJcblxyXG4gICAgICAgIGdseXBoVyA9IGdseXBoLndpZHRoO1xyXG4gICAgICAgIGdseXBoSCA9IGdseXBoLmhlaWdodDtcclxuXHJcbiAgICAgICAgeCA9IChnbHlwaC54T2Zmc2V0ICsgeEFkdmFuY2UpIC0gc3JjLnNjcm9sbFg7XHJcbiAgICAgICAgeSA9IChnbHlwaC55T2Zmc2V0ICsgeUFkdmFuY2UpIC0gc3JjLnNjcm9sbFk7XHJcblxyXG4gICAgICAgIGlmIChsYXN0R2x5cGggIT09IG51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIga2VybmluZ09mZnNldCA9IGdseXBoLmtlcm5pbmdbbGFzdENoYXJDb2RlXTtcclxuICAgICAgICAgICAgeCArPSAoa2VybmluZ09mZnNldCAhPT0gdW5kZWZpbmVkKSA/IGtlcm5pbmdPZmZzZXQgOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRpc3BsYXlDYWxsYmFjaylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrRGF0YS5pbmRleCA9IGk7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrRGF0YS5jaGFyQ29kZSA9IGNoYXJDb2RlO1xyXG4gICAgICAgICAgICBjYWxsYmFja0RhdGEueCA9IHg7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrRGF0YS55ID0geTtcclxuICAgICAgICAgICAgY2FsbGJhY2tEYXRhLnNjYWxlID0gc2NhbGU7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrRGF0YS5yb3RhdGlvbiA9IHJvdGF0aW9uO1xyXG4gICAgICAgICAgICBjYWxsYmFja0RhdGEuZGF0YSA9IGdseXBoLmRhdGE7XHJcblxyXG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gZGlzcGxheUNhbGxiYWNrKGNhbGxiYWNrRGF0YSk7XHJcblxyXG4gICAgICAgICAgICB4ID0gb3V0cHV0Lng7XHJcbiAgICAgICAgICAgIHkgPSBvdXRwdXQueTtcclxuICAgICAgICAgICAgc2NhbGUgPSBvdXRwdXQuc2NhbGU7XHJcbiAgICAgICAgICAgIHJvdGF0aW9uID0gb3V0cHV0LnJvdGF0aW9uO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgeCAqPSBzY2FsZTtcclxuICAgICAgICB5ICo9IHNjYWxlO1xyXG5cclxuICAgICAgICB4ICs9IGxpbmVPZmZzZXRYO1xyXG5cclxuICAgICAgICB4QWR2YW5jZSArPSBnbHlwaC54QWR2YW5jZSArIGxldHRlclNwYWNpbmc7XHJcbiAgICAgICAgbGFzdEdseXBoID0gZ2x5cGg7XHJcbiAgICAgICAgbGFzdENoYXJDb2RlID0gY2hhckNvZGU7XHJcblxyXG4gICAgICAgIC8vICBOb3RoaW5nIHRvIHJlbmRlciBvciBhIHNwYWNlPyBUaGVuIHNraXAgdG8gdGhlIG5leHQgZ2x5cGhcclxuICAgICAgICBpZiAoZ2x5cGhXID09PSAwIHx8IGdseXBoSCA9PT0gMCB8fCBjaGFyQ29kZSA9PT0gMzIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyb3VuZFBpeGVscylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHggPSBNYXRoLnJvdW5kKHgpO1xyXG4gICAgICAgICAgICB5ID0gTWF0aC5yb3VuZCh5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGN0eC5zYXZlKCk7XHJcblxyXG4gICAgICAgIGN0eC50cmFuc2xhdGUoeCwgeSk7XHJcblxyXG4gICAgICAgIGN0eC5yb3RhdGUocm90YXRpb24pO1xyXG5cclxuICAgICAgICBjdHguc2NhbGUoc2NhbGUsIHNjYWxlKTtcclxuXHJcbiAgICAgICAgY3R4LmRyYXdJbWFnZShpbWFnZSwgZ2x5cGhYLCBnbHlwaFksIGdseXBoVywgZ2x5cGhILCAwLCAwLCBnbHlwaFcsIGdseXBoSCk7XHJcblxyXG4gICAgICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY3R4LnJlc3RvcmUoKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRHluYW1pY0JpdG1hcFRleHRDYW52YXNSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQml0bWFwVGV4dCA9IHJlcXVpcmUoJy4vRHluYW1pY0JpdG1hcFRleHQnKTtcclxudmFyIEJ1aWxkR2FtZU9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL0J1aWxkR2FtZU9iamVjdCcpO1xyXG52YXIgR2FtZU9iamVjdENyZWF0b3IgPSByZXF1aXJlKCcuLi8uLi9HYW1lT2JqZWN0Q3JlYXRvcicpO1xyXG52YXIgR2V0QWR2YW5jZWRWYWx1ZSA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL29iamVjdC9HZXRBZHZhbmNlZFZhbHVlJyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBEeW5hbWljIEJpdG1hcCBUZXh0IEdhbWUgT2JqZWN0IGFuZCByZXR1cm5zIGl0LlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBEeW5hbWljIEJpdG1hcCBUZXh0IEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Q3JlYXRvciNkeW5hbWljQml0bWFwVGV4dFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICrCslxyXG4gKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0LkJpdG1hcFRleHRDb25maWd9IGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIGNyZWF0ZSBpdHNlbGYuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FkZFRvU2NlbmVdIC0gQWRkIHRoaXMgR2FtZSBPYmplY3QgdG8gdGhlIFNjZW5lIGFmdGVyIGNyZWF0aW5nIGl0PyBJZiBzZXQgdGhpcyBhcmd1bWVudCBvdmVycmlkZXMgdGhlIGBhZGRgIHByb3BlcnR5IGluIHRoZSBjb25maWcgb2JqZWN0LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuRHluYW1pY0JpdG1hcFRleHR9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuR2FtZU9iamVjdENyZWF0b3IucmVnaXN0ZXIoJ2R5bmFtaWNCaXRtYXBUZXh0JywgZnVuY3Rpb24gKGNvbmZpZywgYWRkVG9TY2VuZSlcclxue1xyXG4gICAgaWYgKGNvbmZpZyA9PT0gdW5kZWZpbmVkKSB7IGNvbmZpZyA9IHt9OyB9XHJcblxyXG4gICAgdmFyIGZvbnQgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ2ZvbnQnLCAnJyk7XHJcbiAgICB2YXIgdGV4dCA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAndGV4dCcsICcnKTtcclxuICAgIHZhciBzaXplID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdzaXplJywgZmFsc2UpO1xyXG5cclxuICAgIHZhciBiaXRtYXBUZXh0ID0gbmV3IEJpdG1hcFRleHQodGhpcy5zY2VuZSwgMCwgMCwgZm9udCwgdGV4dCwgc2l6ZSk7XHJcblxyXG4gICAgaWYgKGFkZFRvU2NlbmUgIT09IHVuZGVmaW5lZClcclxuICAgIHtcclxuICAgICAgICBjb25maWcuYWRkID0gYWRkVG9TY2VuZTtcclxuICAgIH1cclxuXHJcbiAgICBCdWlsZEdhbWVPYmplY3QodGhpcy5zY2VuZSwgYml0bWFwVGV4dCwgY29uZmlnKTtcclxuXHJcbiAgICByZXR1cm4gYml0bWFwVGV4dDtcclxufSk7XHJcblxyXG4vLyAgV2hlbiByZWdpc3RlcmluZyBhIGZhY3RvcnkgZnVuY3Rpb24gJ3RoaXMnIHJlZmVycyB0byB0aGUgR2FtZU9iamVjdENyZWF0b3IgY29udGV4dC5cclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgRHluYW1pY0JpdG1hcFRleHQgPSByZXF1aXJlKCcuL0R5bmFtaWNCaXRtYXBUZXh0Jyk7XHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uLy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBEeW5hbWljIEJpdG1hcCBUZXh0IEdhbWUgT2JqZWN0IGFuZCBhZGRzIGl0IHRvIHRoZSBTY2VuZS5cclxuICogXHJcbiAqIEJpdG1hcFRleHQgb2JqZWN0cyB3b3JrIGJ5IHRha2luZyBhIHRleHR1cmUgZmlsZSBhbmQgYW4gWE1MIG9yIEpTT04gZmlsZSB0aGF0IGRlc2NyaWJlcyB0aGUgZm9udCBzdHJ1Y3R1cmUuXHJcbiAqIFxyXG4gKiBEdXJpbmcgcmVuZGVyaW5nIGZvciBlYWNoIGxldHRlciBvZiB0aGUgdGV4dCBpcyByZW5kZXJlZCB0byB0aGUgZGlzcGxheSwgcHJvcG9ydGlvbmFsbHkgc3BhY2VkIG91dCBhbmQgYWxpZ25lZCB0b1xyXG4gKiBtYXRjaCB0aGUgZm9udCBzdHJ1Y3R1cmUuXHJcbiAqIFxyXG4gKiBEeW5hbWljIEJpdG1hcCBUZXh0IG9iamVjdHMgYXJlIGRpZmZlcmVudCBmcm9tIFN0YXRpYyBCaXRtYXAgVGV4dCBpbiB0aGF0IHRoZXkgaW52b2tlIGEgY2FsbGJhY2sgZm9yIGVhY2hcclxuICogbGV0dGVyIGJlaW5nIHJlbmRlcmVkIGR1cmluZyB0aGUgcmVuZGVyIHBhc3MuIFRoaXMgY2FsbGJhY2sgYWxsb3dzIHlvdSB0byBtYW5pcHVsYXRlIHRoZSBwcm9wZXJ0aWVzIG9mXHJcbiAqIGVhY2ggbGV0dGVyIGJlaW5nIHJlbmRlcmVkLCBzdWNoIGFzIGl0cyBwb3NpdGlvbiwgc2NhbGUgb3IgdGludCwgYWxsb3dpbmcgeW91IHRvIGNyZWF0ZSBpbnRlcmVzdGluZyBlZmZlY3RzXHJcbiAqIGxpa2UgamlnZ2xpbmcgdGV4dCwgd2hpY2ggY2FuJ3QgYmUgZG9uZSB3aXRoIFN0YXRpYyB0ZXh0LiBUaGlzIG1lYW5zIHRoYXQgRHluYW1pYyBUZXh0IHRha2VzIG1vcmUgcHJvY2Vzc2luZ1xyXG4gKiB0aW1lLCBzbyBvbmx5IHVzZSB0aGVtIGlmIHlvdSByZXF1aXJlIHRoZSBjYWxsYmFjayBhYmlsaXR5IHRoZXkgaGF2ZS5cclxuICpcclxuICogQml0bWFwVGV4dCBvYmplY3RzIGFyZSBsZXNzIGZsZXhpYmxlIHRoYW4gVGV4dCBvYmplY3RzLCBpbiB0aGF0IHRoZXkgaGF2ZSBsZXNzIGZlYXR1cmVzIHN1Y2ggYXMgc2hhZG93cywgZmlsbHMgYW5kIHRoZSBhYmlsaXR5XHJcbiAqIHRvIHVzZSBXZWIgRm9udHMsIGhvd2V2ZXIgeW91IHRyYWRlIHRoaXMgZmxleGliaWxpdHkgZm9yIHJlbmRlcmluZyBzcGVlZC4gWW91IGNhbiBhbHNvIGNyZWF0ZSB2aXN1YWxseSBjb21wZWxsaW5nIEJpdG1hcFRleHRzIGJ5XHJcbiAqIHByb2Nlc3NpbmcgdGhlIGZvbnQgdGV4dHVyZSBpbiBhbiBpbWFnZSBlZGl0b3IsIGFwcGx5aW5nIGZpbGxzIGFuZCBhbnkgb3RoZXIgZWZmZWN0cyByZXF1aXJlZC5cclxuICpcclxuICogVG8gY3JlYXRlIG11bHRpLWxpbmUgdGV4dCBpbnNlcnQgXFxyLCBcXG4gb3IgXFxyXFxuIGVzY2FwZSBjb2RlcyBpbnRvIHRoZSB0ZXh0IHN0cmluZy5cclxuICpcclxuICogVG8gY3JlYXRlIGEgQml0bWFwVGV4dCBkYXRhIGZpbGVzIHlvdSBuZWVkIGEgM3JkIHBhcnR5IGFwcCBzdWNoIGFzOlxyXG4gKlxyXG4gKiBCTUZvbnQgKFdpbmRvd3MsIGZyZWUpOiBodHRwOi8vd3d3LmFuZ2VsY29kZS5jb20vcHJvZHVjdHMvYm1mb250L1xyXG4gKiBHbHlwaCBEZXNpZ25lciAoT1MgWCwgY29tbWVyY2lhbCk6IGh0dHA6Ly93d3cuNzFzcXVhcmVkLmNvbS9lbi9nbHlwaGRlc2lnbmVyXHJcbiAqIExpdHRlcmEgKFdlYi1iYXNlZCwgZnJlZSk6IGh0dHA6Ly9rdmF6YXJzLmNvbS9saXR0ZXJhL1xyXG4gKlxyXG4gKiBGb3IgbW9zdCB1c2UgY2FzZXMgaXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIFhNTC4gSWYgeW91IHdpc2ggdG8gdXNlIEpTT04sIHRoZSBmb3JtYXR0aW5nIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgcmVzdWx0IG9mXHJcbiAqIGNvbnZlcnRpbmcgYSB2YWxpZCBYTUwgZmlsZSB0aHJvdWdoIHRoZSBwb3B1bGFyIFgySlMgbGlicmFyeS4gQW4gb25saW5lIHRvb2wgZm9yIGNvbnZlcnNpb24gY2FuIGJlIGZvdW5kIGhlcmU6IGh0dHA6Ly9jb2RlYmVhdXRpZnkub3JnL3htbHRvanNvblxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBEeW5hbWljIEJpdG1hcCBUZXh0IEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0RmFjdG9yeSNkeW5hbWljQml0bWFwVGV4dFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBwb3NpdGlvbiBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgcG9zaXRpb24gb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gZm9udCAtIFRoZSBrZXkgb2YgdGhlIGZvbnQgdG8gdXNlIGZyb20gdGhlIEJpdG1hcEZvbnQgY2FjaGUuXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xzdHJpbmdbXSl9IFt0ZXh0XSAtIFRoZSBzdHJpbmcsIG9yIGFycmF5IG9mIHN0cmluZ3MsIHRvIGJlIHNldCBhcyB0aGUgY29udGVudCBvZiB0aGlzIEJpdG1hcCBUZXh0LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3NpemVdIC0gVGhlIGZvbnQgc2l6ZSB0byBzZXQuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5EeW5hbWljQml0bWFwVGV4dH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0RmFjdG9yeS5yZWdpc3RlcignZHluYW1pY0JpdG1hcFRleHQnLCBmdW5jdGlvbiAoeCwgeSwgZm9udCwgdGV4dCwgc2l6ZSlcclxue1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUxpc3QuYWRkKG5ldyBEeW5hbWljQml0bWFwVGV4dCh0aGlzLnNjZW5lLCB4LCB5LCBmb250LCB0ZXh0LCBzaXplKSk7XHJcbn0pO1xyXG5cclxuLy8gIFdoZW4gcmVnaXN0ZXJpbmcgYSBmYWN0b3J5IGZ1bmN0aW9uICd0aGlzJyByZWZlcnMgdG8gdGhlIEdhbWVPYmplY3RGYWN0b3J5IGNvbnRleHQuXHJcbi8vXHJcbi8vICBUaGVyZSBhcmUgc2V2ZXJhbCBwcm9wZXJ0aWVzIGF2YWlsYWJsZSB0byB1c2U6XHJcbi8vXHJcbi8vICB0aGlzLnNjZW5lIC0gYSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lIHRoYXQgb3ducyB0aGUgR2FtZU9iamVjdEZhY3RvcnlcclxuLy8gIHRoaXMuZGlzcGxheUxpc3QgLSBhIHJlZmVyZW5jZSB0byB0aGUgRGlzcGxheSBMaXN0IHRoZSBTY2VuZSBvd25zXHJcbi8vICB0aGlzLnVwZGF0ZUxpc3QgLSBhIHJlZmVyZW5jZSB0byB0aGUgVXBkYXRlIExpc3QgdGhlIFNjZW5lIG93bnNcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9OT09QJyk7XHJcbnZhciByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9OT09QJyk7XHJcblxyXG5pZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4vRHluYW1pY0JpdG1hcFRleHRXZWJHTFJlbmRlcmVyJyk7XHJcbn1cclxuXHJcbmlmICh0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL0R5bmFtaWNCaXRtYXBUZXh0Q2FudmFzUmVuZGVyZXInKTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgcmVuZGVyV2ViR0w6IHJlbmRlcldlYkdMLFxyXG4gICAgcmVuZGVyQ2FudmFzOiByZW5kZXJDYW52YXNcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFV0aWxzID0gcmVxdWlyZSgnLi4vLi4vLi4vcmVuZGVyZXIvd2ViZ2wvVXRpbHMnKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5EeW5hbWljQml0bWFwVGV4dCNyZW5kZXJXZWJHTFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xSZW5kZXJlcn0gcmVuZGVyZXIgLSBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBhY3RpdmUgV2ViR0wgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkR5bmFtaWNCaXRtYXBUZXh0fSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgRHluYW1pY0JpdG1hcFRleHRXZWJHTFJlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgdmFyIHRleHQgPSBzcmMudGV4dDtcclxuICAgIHZhciB0ZXh0TGVuZ3RoID0gdGV4dC5sZW5ndGg7XHJcblxyXG4gICAgaWYgKHRleHRMZW5ndGggPT09IDApXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBwaXBlbGluZSA9IHRoaXMucGlwZWxpbmU7XHJcblxyXG4gICAgcmVuZGVyZXIuc2V0UGlwZWxpbmUocGlwZWxpbmUsIHNyYyk7XHJcblxyXG4gICAgdmFyIGNyb3AgPSAoc3JjLmNyb3BXaWR0aCA+IDAgfHwgc3JjLmNyb3BIZWlnaHQgPiAwKTtcclxuXHJcbiAgICBpZiAoY3JvcClcclxuICAgIHtcclxuICAgICAgICBwaXBlbGluZS5mbHVzaCgpO1xyXG5cclxuICAgICAgICByZW5kZXJlci5wdXNoU2Npc3NvcihcclxuICAgICAgICAgICAgc3JjLngsXHJcbiAgICAgICAgICAgIHNyYy55LFxyXG4gICAgICAgICAgICBzcmMuY3JvcFdpZHRoICogc3JjLnNjYWxlWCxcclxuICAgICAgICAgICAgc3JjLmNyb3BIZWlnaHQgKiBzcmMuc2NhbGVZXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgY2FtTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgxO1xyXG4gICAgdmFyIHNwcml0ZU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MjtcclxuICAgIHZhciBjYWxjTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgzO1xyXG4gICAgdmFyIGZvbnRNYXRyaXggPSBwaXBlbGluZS5fdGVtcE1hdHJpeDQ7XHJcblxyXG4gICAgc3ByaXRlTWF0cml4LmFwcGx5SVRSUyhzcmMueCwgc3JjLnksIHNyYy5yb3RhdGlvbiwgc3JjLnNjYWxlWCwgc3JjLnNjYWxlWSk7XHJcblxyXG4gICAgY2FtTWF0cml4LmNvcHlGcm9tKGNhbWVyYS5tYXRyaXgpO1xyXG5cclxuICAgIGlmIChwYXJlbnRNYXRyaXgpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIE11bHRpcGx5IHRoZSBjYW1lcmEgYnkgdGhlIHBhcmVudCBtYXRyaXhcclxuICAgICAgICBjYW1NYXRyaXgubXVsdGlwbHlXaXRoT2Zmc2V0KHBhcmVudE1hdHJpeCwgLWNhbWVyYS5zY3JvbGxYICogc3JjLnNjcm9sbEZhY3RvclgsIC1jYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZKTtcclxuXHJcbiAgICAgICAgLy8gIFVuZG8gdGhlIGNhbWVyYSBzY3JvbGxcclxuICAgICAgICBzcHJpdGVNYXRyaXguZSA9IHNyYy54O1xyXG4gICAgICAgIHNwcml0ZU1hdHJpeC5mID0gc3JjLnk7XHJcblxyXG4gICAgICAgIC8vICBNdWx0aXBseSBieSB0aGUgU3ByaXRlIG1hdHJpeCwgc3RvcmUgcmVzdWx0IGluIGNhbGNNYXRyaXhcclxuICAgICAgICBjYW1NYXRyaXgubXVsdGlwbHkoc3ByaXRlTWF0cml4LCBjYWxjTWF0cml4KTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgICBzcHJpdGVNYXRyaXguZSAtPSBjYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYO1xyXG4gICAgICAgIHNwcml0ZU1hdHJpeC5mIC09IGNhbWVyYS5zY3JvbGxZICogc3JjLnNjcm9sbEZhY3Rvclk7XHJcblxyXG4gICAgICAgIC8vICBNdWx0aXBseSBieSB0aGUgU3ByaXRlIG1hdHJpeCwgc3RvcmUgcmVzdWx0IGluIGNhbGNNYXRyaXhcclxuICAgICAgICBjYW1NYXRyaXgubXVsdGlwbHkoc3ByaXRlTWF0cml4LCBjYWxjTWF0cml4KTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgZnJhbWUgPSBzcmMuZnJhbWU7XHJcbiAgICB2YXIgdGV4dHVyZSA9IGZyYW1lLmdsVGV4dHVyZTtcclxuICAgIHZhciB0ZXh0dXJlWCA9IGZyYW1lLmN1dFg7XHJcbiAgICB2YXIgdGV4dHVyZVkgPSBmcmFtZS5jdXRZO1xyXG4gICAgdmFyIHRleHR1cmVXaWR0aCA9IHRleHR1cmUud2lkdGg7XHJcbiAgICB2YXIgdGV4dHVyZUhlaWdodCA9IHRleHR1cmUuaGVpZ2h0O1xyXG5cclxuICAgIHZhciB0aW50RWZmZWN0ID0gKHNyYy5faXNUaW50ZWQgJiYgc3JjLnRpbnRGaWxsKTtcclxuICAgIHZhciB0aW50VEwgPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYShzcmMuX3RpbnRUTCwgY2FtZXJhLmFscGhhICogc3JjLl9hbHBoYVRMKTtcclxuICAgIHZhciB0aW50VFIgPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYShzcmMuX3RpbnRUUiwgY2FtZXJhLmFscGhhICogc3JjLl9hbHBoYVRSKTtcclxuICAgIHZhciB0aW50QkwgPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYShzcmMuX3RpbnRCTCwgY2FtZXJhLmFscGhhICogc3JjLl9hbHBoYUJMKTtcclxuICAgIHZhciB0aW50QlIgPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYShzcmMuX3RpbnRCUiwgY2FtZXJhLmFscGhhICogc3JjLl9hbHBoYUJSKTtcclxuXHJcbiAgICBwaXBlbGluZS5zZXRUZXh0dXJlMkQodGV4dHVyZSwgMCk7XHJcblxyXG4gICAgdmFyIHhBZHZhbmNlID0gMDtcclxuICAgIHZhciB5QWR2YW5jZSA9IDA7XHJcbiAgICB2YXIgY2hhckNvZGUgPSAwO1xyXG4gICAgdmFyIGxhc3RDaGFyQ29kZSA9IDA7XHJcbiAgICB2YXIgbGV0dGVyU3BhY2luZyA9IHNyYy5sZXR0ZXJTcGFjaW5nO1xyXG4gICAgdmFyIGdseXBoO1xyXG4gICAgdmFyIGdseXBoWCA9IDA7XHJcbiAgICB2YXIgZ2x5cGhZID0gMDtcclxuICAgIHZhciBnbHlwaFcgPSAwO1xyXG4gICAgdmFyIGdseXBoSCA9IDA7XHJcbiAgICB2YXIgbGFzdEdseXBoO1xyXG4gICAgdmFyIHNjcm9sbFggPSBzcmMuc2Nyb2xsWDtcclxuICAgIHZhciBzY3JvbGxZID0gc3JjLnNjcm9sbFk7XHJcblxyXG4gICAgdmFyIGZvbnREYXRhID0gc3JjLmZvbnREYXRhO1xyXG4gICAgdmFyIGNoYXJzID0gZm9udERhdGEuY2hhcnM7XHJcbiAgICB2YXIgbGluZUhlaWdodCA9IGZvbnREYXRhLmxpbmVIZWlnaHQ7XHJcbiAgICB2YXIgc2NhbGUgPSAoc3JjLmZvbnRTaXplIC8gZm9udERhdGEuc2l6ZSk7XHJcbiAgICB2YXIgcm90YXRpb24gPSAwO1xyXG5cclxuICAgIHZhciBhbGlnbiA9IHNyYy5fYWxpZ247XHJcbiAgICB2YXIgY3VycmVudExpbmUgPSAwO1xyXG4gICAgdmFyIGxpbmVPZmZzZXRYID0gMDtcclxuXHJcbiAgICAvLyAgVXBkYXRlIHRoZSBib3VuZHMgLSBza2lwcGVkIGludGVybmFsbHkgaWYgbm90IGRpcnR5XHJcbiAgICBzcmMuZ2V0VGV4dEJvdW5kcyhmYWxzZSk7XHJcblxyXG4gICAgdmFyIGxpbmVEYXRhID0gc3JjLl9ib3VuZHMubGluZXM7XHJcblxyXG4gICAgaWYgKGFsaWduID09PSAxKVxyXG4gICAge1xyXG4gICAgICAgIGxpbmVPZmZzZXRYID0gKGxpbmVEYXRhLmxvbmdlc3QgLSBsaW5lRGF0YS5sZW5ndGhzWzBdKSAvIDI7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhbGlnbiA9PT0gMilcclxuICAgIHtcclxuICAgICAgICBsaW5lT2Zmc2V0WCA9IChsaW5lRGF0YS5sb25nZXN0IC0gbGluZURhdGEubGVuZ3Roc1swXSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHJvdW5kUGl4ZWxzID0gY2FtZXJhLnJvdW5kUGl4ZWxzO1xyXG4gICAgdmFyIGRpc3BsYXlDYWxsYmFjayA9IHNyYy5kaXNwbGF5Q2FsbGJhY2s7XHJcbiAgICB2YXIgY2FsbGJhY2tEYXRhID0gc3JjLmNhbGxiYWNrRGF0YTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHRMZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBjaGFyQ29kZSA9IHRleHQuY2hhckNvZGVBdChpKTtcclxuXHJcbiAgICAgICAgLy8gIENhcnJpYWdlLXJldHVyblxyXG4gICAgICAgIGlmIChjaGFyQ29kZSA9PT0gMTApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjdXJyZW50TGluZSsrO1xyXG5cclxuICAgICAgICAgICAgaWYgKGFsaWduID09PSAxKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsaW5lT2Zmc2V0WCA9IChsaW5lRGF0YS5sb25nZXN0IC0gbGluZURhdGEubGVuZ3Roc1tjdXJyZW50TGluZV0pIC8gMjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gMilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGluZU9mZnNldFggPSAobGluZURhdGEubG9uZ2VzdCAtIGxpbmVEYXRhLmxlbmd0aHNbY3VycmVudExpbmVdKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgeEFkdmFuY2UgPSAwO1xyXG4gICAgICAgICAgICB5QWR2YW5jZSArPSBsaW5lSGVpZ2h0O1xyXG4gICAgICAgICAgICBsYXN0R2x5cGggPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBnbHlwaCA9IGNoYXJzW2NoYXJDb2RlXTtcclxuXHJcbiAgICAgICAgaWYgKCFnbHlwaClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2x5cGhYID0gdGV4dHVyZVggKyBnbHlwaC54O1xyXG4gICAgICAgIGdseXBoWSA9IHRleHR1cmVZICsgZ2x5cGgueTtcclxuXHJcbiAgICAgICAgZ2x5cGhXID0gZ2x5cGgud2lkdGg7XHJcbiAgICAgICAgZ2x5cGhIID0gZ2x5cGguaGVpZ2h0O1xyXG5cclxuICAgICAgICB2YXIgeCA9IChnbHlwaC54T2Zmc2V0ICsgeEFkdmFuY2UpIC0gc2Nyb2xsWDtcclxuICAgICAgICB2YXIgeSA9IChnbHlwaC55T2Zmc2V0ICsgeUFkdmFuY2UpIC0gc2Nyb2xsWTtcclxuXHJcbiAgICAgICAgaWYgKGxhc3RHbHlwaCAhPT0gbnVsbClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBrZXJuaW5nT2Zmc2V0ID0gZ2x5cGgua2VybmluZ1tsYXN0Q2hhckNvZGVdO1xyXG4gICAgICAgICAgICB4ICs9IChrZXJuaW5nT2Zmc2V0ICE9PSB1bmRlZmluZWQpID8ga2VybmluZ09mZnNldCA6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB4QWR2YW5jZSArPSBnbHlwaC54QWR2YW5jZSArIGxldHRlclNwYWNpbmc7XHJcbiAgICAgICAgbGFzdEdseXBoID0gZ2x5cGg7XHJcbiAgICAgICAgbGFzdENoYXJDb2RlID0gY2hhckNvZGU7XHJcblxyXG4gICAgICAgIC8vICBOb3RoaW5nIHRvIHJlbmRlciBvciBhIHNwYWNlPyBUaGVuIHNraXAgdG8gdGhlIG5leHQgZ2x5cGhcclxuICAgICAgICBpZiAoZ2x5cGhXID09PSAwIHx8IGdseXBoSCA9PT0gMCB8fCBjaGFyQ29kZSA9PT0gMzIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNjYWxlID0gKHNyYy5mb250U2l6ZSAvIHNyYy5mb250RGF0YS5zaXplKTtcclxuICAgICAgICByb3RhdGlvbiA9IDA7XHJcblxyXG4gICAgICAgIGlmIChkaXNwbGF5Q2FsbGJhY2spXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjYWxsYmFja0RhdGEuY29sb3IgPSAwO1xyXG4gICAgICAgICAgICBjYWxsYmFja0RhdGEudGludC50b3BMZWZ0ID0gdGludFRMO1xyXG4gICAgICAgICAgICBjYWxsYmFja0RhdGEudGludC50b3BSaWdodCA9IHRpbnRUUjtcclxuICAgICAgICAgICAgY2FsbGJhY2tEYXRhLnRpbnQuYm90dG9tTGVmdCA9IHRpbnRCTDtcclxuICAgICAgICAgICAgY2FsbGJhY2tEYXRhLnRpbnQuYm90dG9tUmlnaHQgPSB0aW50QlI7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrRGF0YS5pbmRleCA9IGk7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrRGF0YS5jaGFyQ29kZSA9IGNoYXJDb2RlO1xyXG4gICAgICAgICAgICBjYWxsYmFja0RhdGEueCA9IHg7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrRGF0YS55ID0geTtcclxuICAgICAgICAgICAgY2FsbGJhY2tEYXRhLnNjYWxlID0gc2NhbGU7XHJcbiAgICAgICAgICAgIGNhbGxiYWNrRGF0YS5yb3RhdGlvbiA9IHJvdGF0aW9uO1xyXG4gICAgICAgICAgICBjYWxsYmFja0RhdGEuZGF0YSA9IGdseXBoLmRhdGE7XHJcblxyXG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gZGlzcGxheUNhbGxiYWNrKGNhbGxiYWNrRGF0YSk7XHJcblxyXG4gICAgICAgICAgICB4ID0gb3V0cHV0Lng7XHJcbiAgICAgICAgICAgIHkgPSBvdXRwdXQueTtcclxuICAgICAgICAgICAgc2NhbGUgPSBvdXRwdXQuc2NhbGU7XHJcbiAgICAgICAgICAgIHJvdGF0aW9uID0gb3V0cHV0LnJvdGF0aW9uO1xyXG5cclxuICAgICAgICAgICAgaWYgKG91dHB1dC5jb2xvcilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGludFRMID0gb3V0cHV0LmNvbG9yO1xyXG4gICAgICAgICAgICAgICAgdGludFRSID0gb3V0cHV0LmNvbG9yO1xyXG4gICAgICAgICAgICAgICAgdGludEJMID0gb3V0cHV0LmNvbG9yO1xyXG4gICAgICAgICAgICAgICAgdGludEJSID0gb3V0cHV0LmNvbG9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGludFRMID0gb3V0cHV0LnRpbnQudG9wTGVmdDtcclxuICAgICAgICAgICAgICAgIHRpbnRUUiA9IG91dHB1dC50aW50LnRvcFJpZ2h0O1xyXG4gICAgICAgICAgICAgICAgdGludEJMID0gb3V0cHV0LnRpbnQuYm90dG9tTGVmdDtcclxuICAgICAgICAgICAgICAgIHRpbnRCUiA9IG91dHB1dC50aW50LmJvdHRvbVJpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aW50VEwgPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYSh0aW50VEwsIGNhbWVyYS5hbHBoYSAqIHNyYy5fYWxwaGFUTCk7XHJcbiAgICAgICAgICAgIHRpbnRUUiA9IFV0aWxzLmdldFRpbnRBcHBlbmRGbG9hdEFscGhhKHRpbnRUUiwgY2FtZXJhLmFscGhhICogc3JjLl9hbHBoYVRSKTtcclxuICAgICAgICAgICAgdGludEJMID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGEodGludEJMLCBjYW1lcmEuYWxwaGEgKiBzcmMuX2FscGhhQkwpO1xyXG4gICAgICAgICAgICB0aW50QlIgPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYSh0aW50QlIsIGNhbWVyYS5hbHBoYSAqIHNyYy5fYWxwaGFCUik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB4ICo9IHNjYWxlO1xyXG4gICAgICAgIHkgKj0gc2NhbGU7XHJcblxyXG4gICAgICAgIHggLT0gc3JjLmRpc3BsYXlPcmlnaW5YO1xyXG4gICAgICAgIHkgLT0gc3JjLmRpc3BsYXlPcmlnaW5ZO1xyXG5cclxuICAgICAgICB4ICs9IGxpbmVPZmZzZXRYO1xyXG5cclxuICAgICAgICBmb250TWF0cml4LmFwcGx5SVRSUyh4LCB5LCByb3RhdGlvbiwgc2NhbGUsIHNjYWxlKTtcclxuXHJcbiAgICAgICAgY2FsY01hdHJpeC5tdWx0aXBseShmb250TWF0cml4LCBzcHJpdGVNYXRyaXgpO1xyXG5cclxuICAgICAgICB2YXIgdTAgPSBnbHlwaFggLyB0ZXh0dXJlV2lkdGg7XHJcbiAgICAgICAgdmFyIHYwID0gZ2x5cGhZIC8gdGV4dHVyZUhlaWdodDtcclxuICAgICAgICB2YXIgdTEgPSAoZ2x5cGhYICsgZ2x5cGhXKSAvIHRleHR1cmVXaWR0aDtcclxuICAgICAgICB2YXIgdjEgPSAoZ2x5cGhZICsgZ2x5cGhIKSAvIHRleHR1cmVIZWlnaHQ7XHJcblxyXG4gICAgICAgIHZhciB4dyA9IGdseXBoVztcclxuICAgICAgICB2YXIgeWggPSBnbHlwaEg7XHJcblxyXG4gICAgICAgIHZhciB0eDAgPSBzcHJpdGVNYXRyaXguZTtcclxuICAgICAgICB2YXIgdHkwID0gc3ByaXRlTWF0cml4LmY7XHJcblxyXG4gICAgICAgIHZhciB0eDEgPSB5aCAqIHNwcml0ZU1hdHJpeC5jICsgc3ByaXRlTWF0cml4LmU7XHJcbiAgICAgICAgdmFyIHR5MSA9IHloICogc3ByaXRlTWF0cml4LmQgKyBzcHJpdGVNYXRyaXguZjtcclxuXHJcbiAgICAgICAgdmFyIHR4MiA9IHh3ICogc3ByaXRlTWF0cml4LmEgKyB5aCAqIHNwcml0ZU1hdHJpeC5jICsgc3ByaXRlTWF0cml4LmU7XHJcbiAgICAgICAgdmFyIHR5MiA9IHh3ICogc3ByaXRlTWF0cml4LmIgKyB5aCAqIHNwcml0ZU1hdHJpeC5kICsgc3ByaXRlTWF0cml4LmY7XHJcblxyXG4gICAgICAgIHZhciB0eDMgPSB4dyAqIHNwcml0ZU1hdHJpeC5hICsgc3ByaXRlTWF0cml4LmU7XHJcbiAgICAgICAgdmFyIHR5MyA9IHh3ICogc3ByaXRlTWF0cml4LmIgKyBzcHJpdGVNYXRyaXguZjtcclxuXHJcbiAgICAgICAgaWYgKHJvdW5kUGl4ZWxzKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdHgwID0gTWF0aC5yb3VuZCh0eDApO1xyXG4gICAgICAgICAgICB0eTAgPSBNYXRoLnJvdW5kKHR5MCk7XHJcblxyXG4gICAgICAgICAgICB0eDEgPSBNYXRoLnJvdW5kKHR4MSk7XHJcbiAgICAgICAgICAgIHR5MSA9IE1hdGgucm91bmQodHkxKTtcclxuXHJcbiAgICAgICAgICAgIHR4MiA9IE1hdGgucm91bmQodHgyKTtcclxuICAgICAgICAgICAgdHkyID0gTWF0aC5yb3VuZCh0eTIpO1xyXG5cclxuICAgICAgICAgICAgdHgzID0gTWF0aC5yb3VuZCh0eDMpO1xyXG4gICAgICAgICAgICB0eTMgPSBNYXRoLnJvdW5kKHR5Myk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwaXBlbGluZS5iYXRjaFF1YWQodHgwLCB0eTAsIHR4MSwgdHkxLCB0eDIsIHR5MiwgdHgzLCB0eTMsIHUwLCB2MCwgdTEsIHYxLCB0aW50VEwsIHRpbnRUUiwgdGludEJMLCB0aW50QlIsIHRpbnRFZmZlY3QsIHRleHR1cmUsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjcm9wKVxyXG4gICAge1xyXG4gICAgICAgIHBpcGVsaW5lLmZsdXNoKCk7XHJcblxyXG4gICAgICAgIHJlbmRlcmVyLnBvcFNjaXNzb3IoKTtcclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRHluYW1pY0JpdG1hcFRleHRXZWJHTFJlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBDb21wb25lbnRzID0gcmVxdWlyZSgnLi4vLi4vY29tcG9uZW50cycpO1xyXG52YXIgR2FtZU9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL0dhbWVPYmplY3QnKTtcclxudmFyIEdldEJpdG1hcFRleHRTaXplID0gcmVxdWlyZSgnLi4vR2V0Qml0bWFwVGV4dFNpemUnKTtcclxudmFyIFBhcnNlRnJvbUF0bGFzID0gcmVxdWlyZSgnLi4vUGFyc2VGcm9tQXRsYXMnKTtcclxudmFyIFBhcnNlWE1MQml0bWFwRm9udCA9IHJlcXVpcmUoJy4uL1BhcnNlWE1MQml0bWFwRm9udCcpO1xyXG52YXIgUmVuZGVyID0gcmVxdWlyZSgnLi9CaXRtYXBUZXh0UmVuZGVyJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBCaXRtYXBUZXh0IG9iamVjdHMgd29yayBieSB0YWtpbmcgYSB0ZXh0dXJlIGZpbGUgYW5kIGFuIFhNTCBvciBKU09OIGZpbGUgdGhhdCBkZXNjcmliZXMgdGhlIGZvbnQgc3RydWN0dXJlLlxyXG4gKlxyXG4gKiBEdXJpbmcgcmVuZGVyaW5nIGZvciBlYWNoIGxldHRlciBvZiB0aGUgdGV4dCBpcyByZW5kZXJlZCB0byB0aGUgZGlzcGxheSwgcHJvcG9ydGlvbmFsbHkgc3BhY2VkIG91dCBhbmQgYWxpZ25lZCB0b1xyXG4gKiBtYXRjaCB0aGUgZm9udCBzdHJ1Y3R1cmUuXHJcbiAqXHJcbiAqIEJpdG1hcFRleHQgb2JqZWN0cyBhcmUgbGVzcyBmbGV4aWJsZSB0aGFuIFRleHQgb2JqZWN0cywgaW4gdGhhdCB0aGV5IGhhdmUgbGVzcyBmZWF0dXJlcyBzdWNoIGFzIHNoYWRvd3MsIGZpbGxzIGFuZCB0aGUgYWJpbGl0eVxyXG4gKiB0byB1c2UgV2ViIEZvbnRzLCBob3dldmVyIHlvdSB0cmFkZSB0aGlzIGZsZXhpYmlsaXR5IGZvciByZW5kZXJpbmcgc3BlZWQuIFlvdSBjYW4gYWxzbyBjcmVhdGUgdmlzdWFsbHkgY29tcGVsbGluZyBCaXRtYXBUZXh0cyBieVxyXG4gKiBwcm9jZXNzaW5nIHRoZSBmb250IHRleHR1cmUgaW4gYW4gaW1hZ2UgZWRpdG9yLCBhcHBseWluZyBmaWxscyBhbmQgYW55IG90aGVyIGVmZmVjdHMgcmVxdWlyZWQuXHJcbiAqXHJcbiAqIFRvIGNyZWF0ZSBtdWx0aS1saW5lIHRleHQgaW5zZXJ0IFxcciwgXFxuIG9yIFxcclxcbiBlc2NhcGUgY29kZXMgaW50byB0aGUgdGV4dCBzdHJpbmcuXHJcbiAqXHJcbiAqIFRvIGNyZWF0ZSBhIEJpdG1hcFRleHQgZGF0YSBmaWxlcyB5b3UgbmVlZCBhIDNyZCBwYXJ0eSBhcHAgc3VjaCBhczpcclxuICpcclxuICogQk1Gb250IChXaW5kb3dzLCBmcmVlKToge0BsaW5rIGh0dHA6Ly93d3cuYW5nZWxjb2RlLmNvbS9wcm9kdWN0cy9ibWZvbnQvfGh0dHA6Ly93d3cuYW5nZWxjb2RlLmNvbS9wcm9kdWN0cy9ibWZvbnQvfVxyXG4gKiBHbHlwaCBEZXNpZ25lciAoT1MgWCwgY29tbWVyY2lhbCk6IHtAbGluayBodHRwOi8vd3d3Ljcxc3F1YXJlZC5jb20vZW4vZ2x5cGhkZXNpZ25lcnxodHRwOi8vd3d3Ljcxc3F1YXJlZC5jb20vZW4vZ2x5cGhkZXNpZ25lcn1cclxuICogTGl0dGVyYSAoV2ViLWJhc2VkLCBmcmVlKToge0BsaW5rIGh0dHA6Ly9rdmF6YXJzLmNvbS9saXR0ZXJhL3xodHRwOi8va3ZhemFycy5jb20vbGl0dGVyYS99XHJcbiAqXHJcbiAqIEZvciBtb3N0IHVzZSBjYXNlcyBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgWE1MLiBJZiB5b3Ugd2lzaCB0byB1c2UgSlNPTiwgdGhlIGZvcm1hdHRpbmcgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSByZXN1bHQgb2ZcclxuICogY29udmVydGluZyBhIHZhbGlkIFhNTCBmaWxlIHRocm91Z2ggdGhlIHBvcHVsYXIgWDJKUyBsaWJyYXJ5LiBBbiBvbmxpbmUgdG9vbCBmb3IgY29udmVyc2lvbiBjYW4gYmUgZm91bmQgaGVyZToge0BsaW5rIGh0dHA6Ly9jb2RlYmVhdXRpZnkub3JnL3htbHRvanNvbnxodHRwOi8vY29kZWJlYXV0aWZ5Lm9yZy94bWx0b2pzb259XHJcbiAqXHJcbiAqIEBjbGFzcyBCaXRtYXBUZXh0XHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0XHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5CbGVuZE1vZGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuRGVwdGhcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuTWFza1xyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5PcmlnaW5cclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuUGlwZWxpbmVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuU2Nyb2xsRmFjdG9yXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRleHR1cmVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGludFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1cclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVmlzaWJsZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBUaGUgU2NlbmUgdG8gd2hpY2ggdGhpcyBHYW1lIE9iamVjdCBiZWxvbmdzLiBJdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIFNjZW5lIGF0IGFueSBnaXZlbiB0aW1lLlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSB4IGNvb3JkaW5hdGUgb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB3b3JsZCBzcGFjZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBjb29yZGluYXRlIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gd29ybGQgc3BhY2UuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBmb250IC0gVGhlIGtleSBvZiB0aGUgZm9udCB0byB1c2UgZnJvbSB0aGUgQml0bWFwIEZvbnQgY2FjaGUuXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xzdHJpbmdbXSl9IFt0ZXh0XSAtIFRoZSBzdHJpbmcsIG9yIGFycmF5IG9mIHN0cmluZ3MsIHRvIGJlIHNldCBhcyB0aGUgY29udGVudCBvZiB0aGlzIEJpdG1hcCBUZXh0LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3NpemVdIC0gVGhlIGZvbnQgc2l6ZSBvZiB0aGlzIEJpdG1hcCBUZXh0LlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFthbGlnbj0wXSAtIFRoZSBhbGlnbm1lbnQgb2YgdGhlIHRleHQgaW4gYSBtdWx0aS1saW5lIEJpdG1hcFRleHQgb2JqZWN0LlxyXG4gKi9cclxudmFyIEJpdG1hcFRleHQgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IEdhbWVPYmplY3QsXHJcblxyXG4gICAgTWl4aW5zOiBbXHJcbiAgICAgICAgQ29tcG9uZW50cy5BbHBoYSxcclxuICAgICAgICBDb21wb25lbnRzLkJsZW5kTW9kZSxcclxuICAgICAgICBDb21wb25lbnRzLkRlcHRoLFxyXG4gICAgICAgIENvbXBvbmVudHMuTWFzayxcclxuICAgICAgICBDb21wb25lbnRzLk9yaWdpbixcclxuICAgICAgICBDb21wb25lbnRzLlBpcGVsaW5lLFxyXG4gICAgICAgIENvbXBvbmVudHMuU2Nyb2xsRmFjdG9yLFxyXG4gICAgICAgIENvbXBvbmVudHMuVGV4dHVyZSxcclxuICAgICAgICBDb21wb25lbnRzLlRpbnQsXHJcbiAgICAgICAgQ29tcG9uZW50cy5UcmFuc2Zvcm0sXHJcbiAgICAgICAgQ29tcG9uZW50cy5WaXNpYmxlLFxyXG4gICAgICAgIFJlbmRlclxyXG4gICAgXSxcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIEJpdG1hcFRleHQgKHNjZW5lLCB4LCB5LCBmb250LCB0ZXh0LCBzaXplLCBhbGlnbilcclxuICAgIHtcclxuICAgICAgICBpZiAodGV4dCA9PT0gdW5kZWZpbmVkKSB7IHRleHQgPSAnJzsgfVxyXG4gICAgICAgIGlmIChhbGlnbiA9PT0gdW5kZWZpbmVkKSB7IGFsaWduID0gMDsgfVxyXG5cclxuICAgICAgICBHYW1lT2JqZWN0LmNhbGwodGhpcywgc2NlbmUsICdCaXRtYXBUZXh0Jyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBrZXkgb2YgdGhlIEJpdG1hcCBGb250IHVzZWQgYnkgdGhpcyBCaXRtYXAgVGV4dC5cclxuICAgICAgICAgKiBUbyBjaGFuZ2UgdGhlIGZvbnQgYWZ0ZXIgY3JlYXRpb24gcGxlYXNlIHVzZSBgc2V0Rm9udGAuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNmb250XHJcbiAgICAgICAgICogQHR5cGUge3N0cmluZ31cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZvbnQgPSBmb250O1xyXG5cclxuICAgICAgICB2YXIgZW50cnkgPSB0aGlzLnNjZW5lLnN5cy5jYWNoZS5iaXRtYXBGb250LmdldChmb250KTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGRhdGEgb2YgdGhlIEJpdG1hcCBGb250IHVzZWQgYnkgdGhpcyBCaXRtYXAgVGV4dC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0I2ZvbnREYXRhXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0LkJpdG1hcEZvbnREYXRhfVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZm9udERhdGEgPSBlbnRyeS5kYXRhO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdGV4dCB0aGF0IHRoaXMgQml0bWFwIFRleHQgb2JqZWN0IGRpc3BsYXlzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkJpdG1hcFRleHQjX3RleHRcclxuICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fdGV4dCA9ICcnO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZm9udCBzaXplIG9mIHRoaXMgQml0bWFwIFRleHQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNfZm9udFNpemVcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fZm9udFNpemUgPSBzaXplIHx8IHRoaXMuZm9udERhdGEuc2l6ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQWRkcyAvIFJlbW92ZXMgc3BhY2luZyBiZXR3ZWVuIGNoYXJhY3RlcnMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBDYW4gYmUgYSBuZWdhdGl2ZSBvciBwb3NpdGl2ZSBudW1iZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNfbGV0dGVyU3BhY2luZ1xyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9sZXR0ZXJTcGFjaW5nID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ29udHJvbHMgdGhlIGFsaWdubWVudCBvZiBlYWNoIGxpbmUgb2YgdGV4dCBpbiB0aGlzIEJpdG1hcFRleHQgb2JqZWN0LlxyXG4gICAgICAgICAqIE9ubHkgaGFzIGFueSBlZmZlY3Qgd2hlbiB0aGlzIEJpdG1hcFRleHQgY29udGFpbnMgbXVsdGlwbGUgbGluZXMgb2YgdGV4dCwgc3BsaXQgd2l0aCBjYXJyaWFnZS1yZXR1cm5zLlxyXG4gICAgICAgICAqIEhhcyBubyBlZmZlY3Qgd2l0aCBzaW5nbGUtbGluZXMgb2YgdGV4dC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFNlZSB0aGUgbWV0aG9kcyBgc2V0TGVmdEFsaWduYCwgYHNldENlbnRlckFsaWduYCBhbmQgYHNldFJpZ2h0QWxpZ25gLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogMCA9IExlZnQgYWxpZ25lZCAoZGVmYXVsdClcclxuICAgICAgICAgKiAxID0gTWlkZGxlIGFsaWduZWRcclxuICAgICAgICAgKiAyID0gUmlnaHQgYWxpZ25lZFxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogVGhlIGFsaWdubWVudCBwb3NpdGlvbiBpcyBiYXNlZCBvbiB0aGUgbG9uZ2VzdCBsaW5lIG9mIHRleHQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNfYWxpZ25cclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9hbGlnbiA9IGFsaWduO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbiBvYmplY3QgdGhhdCBkZXNjcmliZXMgdGhlIHNpemUgb2YgdGhpcyBCaXRtYXAgVGV4dC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0I19ib3VuZHNcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLkJpdG1hcFRleHQuQml0bWFwVGV4dFNpemV9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9ib3VuZHMgPSBHZXRCaXRtYXBUZXh0U2l6ZSgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbiBpbnRlcm5hbCBkaXJ0eSBmbGFnIGZvciBib3VuZHMgY2FsY3VsYXRpb24uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNfZGlydHlcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9kaXJ0eSA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEludGVybmFsIGNhY2hlIHZhciBob2xkaW5nIHRoZSBtYXhXaWR0aC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0I19tYXhXaWR0aFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4yMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fbWF4V2lkdGggPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgY2hhcmFjdGVyIGNvZGUgdXNlZCB0byBkZXRlY3QgZm9yIHdvcmQgd3JhcHBpbmcuXHJcbiAgICAgICAgICogRGVmYXVsdHMgdG8gMzIgKGEgc3BhY2UgY2hhcmFjdGVyKS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0I3dvcmRXcmFwQ2hhckNvZGVcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIxLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLndvcmRXcmFwQ2hhckNvZGUgPSAzMjtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRUZXh0dXJlKGVudHJ5LnRleHR1cmUsIGVudHJ5LmZyYW1lKTtcclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIHRoaXMuc2V0T3JpZ2luKDAsIDApO1xyXG4gICAgICAgIHRoaXMuaW5pdFBpcGVsaW5lKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0VGV4dCh0ZXh0KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGxpbmVzIG9mIHRleHQgaW4gdGhpcyBCaXRtYXBUZXh0IHRvIGJlIGxlZnQtYWxpZ25lZC5cclxuICAgICAqIFRoaXMgb25seSBoYXMgYW55IGVmZmVjdCBpZiB0aGlzIEJpdG1hcFRleHQgY29udGFpbnMgbW9yZSB0aGFuIG9uZSBsaW5lIG9mIHRleHQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNzZXRMZWZ0QWxpZ25cclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEJpdG1hcFRleHQgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRMZWZ0QWxpZ246IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fYWxpZ24gPSBCaXRtYXBUZXh0LkFMSUdOX0xFRlQ7XHJcblxyXG4gICAgICAgIHRoaXMuX2RpcnR5ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBsaW5lcyBvZiB0ZXh0IGluIHRoaXMgQml0bWFwVGV4dCB0byBiZSBjZW50ZXItYWxpZ25lZC5cclxuICAgICAqIFRoaXMgb25seSBoYXMgYW55IGVmZmVjdCBpZiB0aGlzIEJpdG1hcFRleHQgY29udGFpbnMgbW9yZSB0aGFuIG9uZSBsaW5lIG9mIHRleHQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNzZXRDZW50ZXJBbGlnblxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQml0bWFwVGV4dCBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldENlbnRlckFsaWduOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2FsaWduID0gQml0bWFwVGV4dC5BTElHTl9DRU5URVI7XHJcblxyXG4gICAgICAgIHRoaXMuX2RpcnR5ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBsaW5lcyBvZiB0ZXh0IGluIHRoaXMgQml0bWFwVGV4dCB0byBiZSByaWdodC1hbGlnbmVkLlxyXG4gICAgICogVGhpcyBvbmx5IGhhcyBhbnkgZWZmZWN0IGlmIHRoaXMgQml0bWFwVGV4dCBjb250YWlucyBtb3JlIHRoYW4gb25lIGxpbmUgb2YgdGV4dC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0I3NldFJpZ2h0QWxpZ25cclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEJpdG1hcFRleHQgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRSaWdodEFsaWduOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2FsaWduID0gQml0bWFwVGV4dC5BTElHTl9SSUdIVDtcclxuXHJcbiAgICAgICAgdGhpcy5fZGlydHkgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGZvbnQgc2l6ZSBvZiB0aGlzIEJpdG1hcCBUZXh0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkJpdG1hcFRleHQjc2V0Rm9udFNpemVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzaXplIC0gVGhlIGZvbnQgc2l6ZSB0byBzZXQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBCaXRtYXBUZXh0IE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0Rm9udFNpemU6IGZ1bmN0aW9uIChzaXplKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2ZvbnRTaXplID0gc2l6ZTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGlydHkgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBsZXR0ZXIgc3BhY2luZyBiZXR3ZWVuIGVhY2ggY2hhcmFjdGVyIG9mIHRoaXMgQml0bWFwIFRleHQuXHJcbiAgICAgKiBDYW4gYmUgYSBwb3NpdGl2ZSB2YWx1ZSB0byBpbmNyZWFzZSB0aGUgc3BhY2UsIG9yIG5lZ2F0aXZlIHRvIHJlZHVjZSBpdC5cclxuICAgICAqIFNwYWNpbmcgaXMgYXBwbGllZCBhZnRlciB0aGUga2VybmluZyB2YWx1ZXMgaGF2ZSBiZWVuIHNldC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0I3NldExldHRlclNwYWNpbmdcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3BhY2luZz0wXSAtIFRoZSBhbW91bnQgb2YgaG9yaXpvbnRhbCBzcGFjZSB0byBhZGQgYmV0d2VlbiBlYWNoIGNoYXJhY3Rlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEJpdG1hcFRleHQgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRMZXR0ZXJTcGFjaW5nOiBmdW5jdGlvbiAoc3BhY2luZylcclxuICAgIHtcclxuICAgICAgICBpZiAoc3BhY2luZyA9PT0gdW5kZWZpbmVkKSB7IHNwYWNpbmcgPSAwOyB9XHJcblxyXG4gICAgICAgIHRoaXMuX2xldHRlclNwYWNpbmcgPSBzcGFjaW5nO1xyXG5cclxuICAgICAgICB0aGlzLl9kaXJ0eSA9IHRydWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgdGV4dHVhbCBjb250ZW50IG9mIHRoaXMgQml0bWFwVGV4dC5cclxuICAgICAqXHJcbiAgICAgKiBBbiBhcnJheSBvZiBzdHJpbmdzIHdpbGwgYmUgY29udmVydGVkIGludG8gbXVsdGktbGluZSB0ZXh0LiBVc2UgdGhlIGFsaWduIG1ldGhvZHMgdG8gY2hhbmdlIG11bHRpLWxpbmUgYWxpZ25tZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkJpdG1hcFRleHQjc2V0VGV4dFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfHN0cmluZ1tdKX0gdmFsdWUgLSBUaGUgc3RyaW5nLCBvciBhcnJheSBvZiBzdHJpbmdzLCB0byBiZSBzZXQgYXMgdGhlIGNvbnRlbnQgb2YgdGhpcyBCaXRtYXBUZXh0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQml0bWFwVGV4dCBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldFRleHQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoIXZhbHVlICYmIHZhbHVlICE9PSAwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWUgPSAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuam9pbignXFxuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsdWUgIT09IHRoaXMudGV4dClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RleHQgPSB2YWx1ZS50b1N0cmluZygpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fZGlydHkgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5T3JpZ2luKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGUgdGhlIGJvdW5kcyBvZiB0aGlzIEJpdG1hcCBUZXh0LlxyXG4gICAgICpcclxuICAgICAqIEFuIG9iamVjdCBpcyByZXR1cm5lZCB0aGF0IGNvbnRhaW5zIHRoZSBwb3NpdGlvbiwgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgQml0bWFwIFRleHQgaW4gbG9jYWwgYW5kIGdsb2JhbFxyXG4gICAgICogY29udGV4dHMuXHJcbiAgICAgKlxyXG4gICAgICogTG9jYWwgc2l6ZSBpcyBiYXNlZCBvbiBqdXN0IHRoZSBmb250IHNpemUgYW5kIGEgWzAsIDBdIHBvc2l0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEdsb2JhbCBzaXplIHRha2VzIGludG8gYWNjb3VudCB0aGUgR2FtZSBPYmplY3QncyBzY2FsZSwgd29ybGQgcG9zaXRpb24gYW5kIGRpc3BsYXkgb3JpZ2luLlxyXG4gICAgICpcclxuICAgICAqIEFsc28gaW4gdGhlIG9iamVjdCBpcyBkYXRhIHJlZ2FyZGluZyB0aGUgbGVuZ3RoIG9mIGVhY2ggbGluZSwgc2hvdWxkIHRoaXMgYmUgYSBtdWx0aS1saW5lIEJpdG1hcFRleHQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNnZXRUZXh0Qm91bmRzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtyb3VuZF0gLSBXaGV0aGVyIHRvIHJvdW5kIHRoZSByZXN1bHRzIHRvIHRoZSBuZWFyZXN0IGludGVnZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLkJpdG1hcFRleHQuQml0bWFwVGV4dFNpemV9IEFuIG9iamVjdCB0aGF0IGRlc2NyaWJlcyB0aGUgc2l6ZSBvZiB0aGlzIEJpdG1hcCBUZXh0LlxyXG4gICAgICovXHJcbiAgICBnZXRUZXh0Qm91bmRzOiBmdW5jdGlvbiAocm91bmQpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIGxvY2FsID0gVGhlIEJpdG1hcFRleHQgYmFzZWQgb24gZm9udFNpemUgYW5kIDB4MCBjb29yZHNcclxuICAgICAgICAvLyAgZ2xvYmFsID0gVGhlIEJpdG1hcFRleHQsIHRha2luZyBpbnRvIGFjY291bnQgc2NhbGUgYW5kIHdvcmxkIHBvc2l0aW9uXHJcbiAgICAgICAgLy8gIGxpbmVzID0gVGhlIEJpdG1hcFRleHQgbGluZSBkYXRhXHJcblxyXG4gICAgICAgIHZhciBib3VuZHMgPSB0aGlzLl9ib3VuZHM7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9kaXJ0eSB8fCB0aGlzLnNjYWxlWCAhPT0gYm91bmRzLnNjYWxlWCB8fCB0aGlzLnNjYWxlWSAhPT0gYm91bmRzLnNjYWxlWSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIEdldEJpdG1hcFRleHRTaXplKHRoaXMsIHJvdW5kLCBib3VuZHMpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fZGlydHkgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGlzcGxheU9yaWdpbigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGJvdW5kcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGFuZ2VzIHRoZSBmb250IHRoaXMgQml0bWFwVGV4dCBpcyB1c2luZyB0byByZW5kZXIuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIG5ldyB0ZXh0dXJlIGlzIGxvYWRlZCBhbmQgYXBwbGllZCB0byB0aGUgQml0bWFwVGV4dC4gVGhlIGV4aXN0aW5nIHRlc3QsIHNpemUgYW5kIGFsaWdubWVudCBhcmUgcHJlc2VydmVkLFxyXG4gICAgICogdW5sZXNzIG92ZXJyaWRkZW4gdmlhIHRoZSBhcmd1bWVudHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNzZXRGb250XHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGZvbnQgLSBUaGUga2V5IG9mIHRoZSBmb250IHRvIHVzZSBmcm9tIHRoZSBCaXRtYXAgRm9udCBjYWNoZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc2l6ZV0gLSBUaGUgZm9udCBzaXplIG9mIHRoaXMgQml0bWFwIFRleHQuIElmIG5vdCBzcGVjaWZpZWQgdGhlIGN1cnJlbnQgc2l6ZSB3aWxsIGJlIHVzZWQuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFthbGlnbj0wXSAtIFRoZSBhbGlnbm1lbnQgb2YgdGhlIHRleHQgaW4gYSBtdWx0aS1saW5lIEJpdG1hcFRleHQgb2JqZWN0LiBJZiBub3Qgc3BlY2lmaWVkIHRoZSBjdXJyZW50IGFsaWdubWVudCB3aWxsIGJlIHVzZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBCaXRtYXBUZXh0IE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0Rm9udDogZnVuY3Rpb24gKGtleSwgc2l6ZSwgYWxpZ24pXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHNpemUgPT09IHVuZGVmaW5lZCkgeyBzaXplID0gdGhpcy5fZm9udFNpemU7IH1cclxuICAgICAgICBpZiAoYWxpZ24gPT09IHVuZGVmaW5lZCkgeyBhbGlnbiA9IHRoaXMuX2FsaWduOyB9XHJcblxyXG4gICAgICAgIGlmIChrZXkgIT09IHRoaXMuZm9udClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuc2NlbmUuc3lzLmNhY2hlLmJpdG1hcEZvbnQuZ2V0KGtleSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoZW50cnkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9udCA9IGtleTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9udERhdGEgPSBlbnRyeS5kYXRhO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZm9udFNpemUgPSBzaXplO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWxpZ24gPSBhbGlnbjtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFRleHR1cmUoZW50cnkudGV4dHVyZSwgZW50cnkuZnJhbWUpO1xyXG5cclxuICAgICAgICAgICAgICAgIEdldEJpdG1hcFRleHRTaXplKHRoaXMsIGZhbHNlLCB0aGlzLl9ib3VuZHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBtYXhpbXVtIGRpc3BsYXkgd2lkdGggb2YgdGhpcyBCaXRtYXBUZXh0IGluIHBpeGVscy5cclxuICAgICAqXHJcbiAgICAgKiBJZiBgQml0bWFwVGV4dC50ZXh0YCBpcyBsb25nZXIgdGhhbiBgbWF4V2lkdGhgIHRoZW4gdGhlIGxpbmVzIHdpbGwgYmUgYXV0b21hdGljYWxseSB3cmFwcGVkXHJcbiAgICAgKiBiYXNlZCBvbiB0aGUgcHJldmlvdXMgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgZm91bmQgaW4gdGhlIGxpbmUuXHJcbiAgICAgKlxyXG4gICAgICogSWYgbm8gd2hpdGVzcGFjZSB3YXMgZm91bmQgdGhlbiBubyB3cmFwcGluZyB3aWxsIHRha2UgcGxhY2UgYW5kIGNvbnNlcXVlbnRseSB0aGUgYG1heFdpZHRoYCB2YWx1ZSB3aWxsIG5vdCBiZSBob25vcmVkLlxyXG4gICAgICpcclxuICAgICAqIERpc2FibGUgbWF4V2lkdGggYnkgc2V0dGluZyB0aGUgdmFsdWUgdG8gMC5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIHNldCB0aGUgd2hpdGVzcGFjZSBjaGFyYWN0ZXIgdG8gYmUgc2VhcmNoZWQgZm9yIGJ5IHNldHRpbmcgdGhlIGB3b3JkV3JhcENoYXJDb2RlYCBwYXJhbWV0ZXIgb3IgcHJvcGVydHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNzZXRNYXhXaWR0aFxyXG4gICAgICogQHNpbmNlIDMuMjEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBtYXhpbXVtIGRpc3BsYXkgd2lkdGggb2YgdGhpcyBCaXRtYXBUZXh0IGluIHBpeGVscy4gU2V0IHRvIHplcm8gdG8gZGlzYWJsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbd29yZFdyYXBDaGFyQ29kZV0gLSBUaGUgY2hhcmFjdGVyIGNvZGUgdG8gY2hlY2sgZm9yIHdoZW4gd29yZCB3cmFwcGluZy4gRGVmYXVsdHMgdG8gMzIgKHRoZSBzcGFjZSBjaGFyYWN0ZXIpLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQml0bWFwVGV4dCBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldE1heFdpZHRoOiBmdW5jdGlvbiAodmFsdWUsIHdvcmRXcmFwQ2hhckNvZGUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fbWF4V2lkdGggPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGlydHkgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAod29yZFdyYXBDaGFyQ29kZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy53b3JkV3JhcENoYXJDb2RlID0gd29yZFdyYXBDaGFyQ29kZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnRyb2xzIHRoZSBhbGlnbm1lbnQgb2YgZWFjaCBsaW5lIG9mIHRleHQgaW4gdGhpcyBCaXRtYXBUZXh0IG9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBPbmx5IGhhcyBhbnkgZWZmZWN0IHdoZW4gdGhpcyBCaXRtYXBUZXh0IGNvbnRhaW5zIG11bHRpcGxlIGxpbmVzIG9mIHRleHQsIHNwbGl0IHdpdGggY2FycmlhZ2UtcmV0dXJucy5cclxuICAgICAqIEhhcyBubyBlZmZlY3Qgd2l0aCBzaW5nbGUtbGluZXMgb2YgdGV4dC5cclxuICAgICAqXHJcbiAgICAgKiBTZWUgdGhlIG1ldGhvZHMgYHNldExlZnRBbGlnbmAsIGBzZXRDZW50ZXJBbGlnbmAgYW5kIGBzZXRSaWdodEFsaWduYC5cclxuICAgICAqXHJcbiAgICAgKiAwID0gTGVmdCBhbGlnbmVkIChkZWZhdWx0KVxyXG4gICAgICogMSA9IE1pZGRsZSBhbGlnbmVkXHJcbiAgICAgKiAyID0gUmlnaHQgYWxpZ25lZFxyXG4gICAgICpcclxuICAgICAqIFRoZSBhbGlnbm1lbnQgcG9zaXRpb24gaXMgYmFzZWQgb24gdGhlIGxvbmdlc3QgbGluZSBvZiB0ZXh0LlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0I2FsaWduXHJcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqL1xyXG4gICAgYWxpZ246IHtcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9hbGlnbiA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl9kaXJ0eSA9IHRydWU7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FsaWduO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRleHQgdGhhdCB0aGlzIEJpdG1hcCBUZXh0IG9iamVjdCBkaXNwbGF5cy5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIGFsc28gdXNlIHRoZSBtZXRob2QgYHNldFRleHRgIGlmIHlvdSB3YW50IGEgY2hhaW5hYmxlIHdheSB0byBjaGFuZ2UgdGhlIHRleHQgY29udGVudC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCN0ZXh0XHJcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHRleHQ6IHtcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNldFRleHQodmFsdWUpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90ZXh0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGZvbnQgc2l6ZSBvZiB0aGlzIEJpdG1hcCBUZXh0LlxyXG4gICAgICpcclxuICAgICAqIFlvdSBjYW4gYWxzbyB1c2UgdGhlIG1ldGhvZCBgc2V0Rm9udFNpemVgIGlmIHlvdSB3YW50IGEgY2hhaW5hYmxlIHdheSB0byBjaGFuZ2UgdGhlIGZvbnQgc2l6ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNmb250U2l6ZVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBmb250U2l6ZToge1xyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2ZvbnRTaXplID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpcnR5ID0gdHJ1ZTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZm9udFNpemU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGRzIC8gUmVtb3ZlcyBzcGFjaW5nIGJldHdlZW4gY2hhcmFjdGVycy5cclxuICAgICAqXHJcbiAgICAgKiBDYW4gYmUgYSBuZWdhdGl2ZSBvciBwb3NpdGl2ZSBudW1iZXIuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBhbHNvIHVzZSB0aGUgbWV0aG9kIGBzZXRMZXR0ZXJTcGFjaW5nYCBpZiB5b3Ugd2FudCBhIGNoYWluYWJsZSB3YXkgdG8gY2hhbmdlIHRoZSBsZXR0ZXIgc3BhY2luZy5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNsZXR0ZXJTcGFjaW5nXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGxldHRlclNwYWNpbmc6IHtcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9sZXR0ZXJTcGFjaW5nID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpcnR5ID0gdHJ1ZTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbGV0dGVyU3BhY2luZztcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBtYXhpbXVtIGRpc3BsYXkgd2lkdGggb2YgdGhpcyBCaXRtYXBUZXh0IGluIHBpeGVscy5cclxuICAgICAqXHJcbiAgICAgKiBJZiBCaXRtYXBUZXh0LnRleHQgaXMgbG9uZ2VyIHRoYW4gbWF4V2lkdGggdGhlbiB0aGUgbGluZXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHdyYXBwZWRcclxuICAgICAqIGJhc2VkIG9uIHRoZSBsYXN0IHdoaXRlc3BhY2UgY2hhcmFjdGVyIGZvdW5kIGluIHRoZSBsaW5lLlxyXG4gICAgICpcclxuICAgICAqIElmIG5vIHdoaXRlc3BhY2Ugd2FzIGZvdW5kIHRoZW4gbm8gd3JhcHBpbmcgd2lsbCB0YWtlIHBsYWNlIGFuZCBjb25zZXF1ZW50bHkgdGhlIG1heFdpZHRoIHZhbHVlIHdpbGwgbm90IGJlIGhvbm9yZWQuXHJcbiAgICAgKlxyXG4gICAgICogRGlzYWJsZSBtYXhXaWR0aCBieSBzZXR0aW5nIHRoZSB2YWx1ZSB0byAwLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0I21heFdpZHRoXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMjEuMFxyXG4gICAgICovXHJcbiAgICBtYXhXaWR0aDoge1xyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX21heFdpZHRoID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpcnR5ID0gdHJ1ZTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWF4V2lkdGg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgd2lkdGggb2YgdGhpcyBCaXRtYXAgVGV4dC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCN3aWR0aFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEByZWFkb25seVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHdpZHRoOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0VGV4dEJvdW5kcyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYm91bmRzLmdsb2JhbC53aWR0aDtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBoZWlnaHQgb2YgdGhpcyBiaXRtYXAgdGV4dC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dCNoZWlnaHRcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBoZWlnaHQ6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRUZXh0Qm91bmRzKGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9ib3VuZHMuZ2xvYmFsLmhlaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEJ1aWxkIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGlzIEJpdG1hcCBUZXh0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkJpdG1hcFRleHQjdG9KU09OXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuQml0bWFwVGV4dC5KU09OQml0bWFwVGV4dH0gQSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgQml0bWFwIFRleHQuXHJcbiAgICAgKi9cclxuICAgIHRvSlNPTjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgb3V0ID0gQ29tcG9uZW50cy5Ub0pTT04odGhpcyk7XHJcblxyXG4gICAgICAgIC8vICBFeHRyYSBkYXRhIGlzIGFkZGVkIGhlcmVcclxuXHJcbiAgICAgICAgdmFyIGRhdGEgPSB7XHJcbiAgICAgICAgICAgIGZvbnQ6IHRoaXMuZm9udCxcclxuICAgICAgICAgICAgdGV4dDogdGhpcy50ZXh0LFxyXG4gICAgICAgICAgICBmb250U2l6ZTogdGhpcy5mb250U2l6ZSxcclxuICAgICAgICAgICAgbGV0dGVyU3BhY2luZzogdGhpcy5sZXR0ZXJTcGFjaW5nLFxyXG4gICAgICAgICAgICBhbGlnbjogdGhpcy5hbGlnblxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIG91dC5kYXRhID0gZGF0YTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG91dDtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxuLyoqXHJcbiAqIExlZnQgYWxpZ24gdGhlIHRleHQgY2hhcmFjdGVycyBpbiBhIG11bHRpLWxpbmUgQml0bWFwVGV4dCBvYmplY3QuXHJcbiAqXHJcbiAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0LkFMSUdOX0xFRlRcclxuICogQHR5cGUge2ludGVnZXJ9XHJcbiAqIEBzaW5jZSAzLjExLjBcclxuICovXHJcbkJpdG1hcFRleHQuQUxJR05fTEVGVCA9IDA7XHJcblxyXG4vKipcclxuICogQ2VudGVyIGFsaWduIHRoZSB0ZXh0IGNoYXJhY3RlcnMgaW4gYSBtdWx0aS1saW5lIEJpdG1hcFRleHQgb2JqZWN0LlxyXG4gKlxyXG4gKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dC5BTElHTl9DRU5URVJcclxuICogQHR5cGUge2ludGVnZXJ9XHJcbiAqIEBzaW5jZSAzLjExLjBcclxuICovXHJcbkJpdG1hcFRleHQuQUxJR05fQ0VOVEVSID0gMTtcclxuXHJcbi8qKlxyXG4gKiBSaWdodCBhbGlnbiB0aGUgdGV4dCBjaGFyYWN0ZXJzIGluIGEgbXVsdGktbGluZSBCaXRtYXBUZXh0IG9iamVjdC5cclxuICpcclxuICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkJpdG1hcFRleHQuQUxJR05fUklHSFRcclxuICogQHR5cGUge2ludGVnZXJ9XHJcbiAqIEBzaW5jZSAzLjExLjBcclxuICovXHJcbkJpdG1hcFRleHQuQUxJR05fUklHSFQgPSAyO1xyXG5cclxuLyoqXHJcbiAqIFBhcnNlIGFuIFhNTCBCaXRtYXAgRm9udCBmcm9tIGFuIEF0bGFzLlxyXG4gKlxyXG4gKiBBZGRzIHRoZSBwYXJzZWQgQml0bWFwIEZvbnQgZGF0YSB0byB0aGUgY2FjaGUgd2l0aCB0aGUgYGZvbnROYW1lYCBrZXkuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkJpdG1hcFRleHQuUGFyc2VGcm9tQXRsYXNcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSB0byBwYXJzZSB0aGUgQml0bWFwIEZvbnQgZm9yLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gZm9udE5hbWUgLSBUaGUga2V5IG9mIHRoZSBmb250IHRvIGFkZCB0byB0aGUgQml0bWFwIEZvbnQgY2FjaGUuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0dXJlS2V5IC0gVGhlIGtleSBvZiB0aGUgQml0bWFwRm9udCdzIHRleHR1cmUuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBmcmFtZUtleSAtIFRoZSBrZXkgb2YgdGhlIEJpdG1hcEZvbnQgdGV4dHVyZSdzIGZyYW1lLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30geG1sS2V5IC0gVGhlIGtleSBvZiB0aGUgWE1MIGRhdGEgb2YgdGhlIGZvbnQgdG8gcGFyc2UuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW3hTcGFjaW5nXSAtIFRoZSB4LWF4aXMgc3BhY2luZyB0byBhZGQgYmV0d2VlbiBlYWNoIGxldHRlci5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbeVNwYWNpbmddIC0gVGhlIHktYXhpcyBzcGFjaW5nIHRvIGFkZCB0byB0aGUgbGluZSBoZWlnaHQuXHJcbiAqXHJcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFdoZXRoZXIgdGhlIHBhcnNpbmcgd2FzIHN1Y2Nlc3NmdWwgb3Igbm90LlxyXG4gKi9cclxuQml0bWFwVGV4dC5QYXJzZUZyb21BdGxhcyA9IFBhcnNlRnJvbUF0bGFzO1xyXG5cclxuLyoqXHJcbiAqIFBhcnNlIGFuIFhNTCBmb250IHRvIEJpdG1hcCBGb250IGRhdGEgZm9yIHRoZSBCaXRtYXAgRm9udCBjYWNoZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dC5QYXJzZVhNTEJpdG1hcEZvbnRcclxuICogQHNpbmNlIDMuMTcuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1hNTERvY3VtZW50fSB4bWwgLSBUaGUgWE1MIERvY3VtZW50IHRvIHBhcnNlIHRoZSBmb250IGZyb20uXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW3hTcGFjaW5nPTBdIC0gVGhlIHgtYXhpcyBzcGFjaW5nIHRvIGFkZCBiZXR3ZWVuIGVhY2ggbGV0dGVyLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFt5U3BhY2luZz0wXSAtIFRoZSB5LWF4aXMgc3BhY2luZyB0byBhZGQgdG8gdGhlIGxpbmUgaGVpZ2h0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5UZXh0dXJlcy5GcmFtZX0gW2ZyYW1lXSAtIFRoZSB0ZXh0dXJlIGZyYW1lIHRvIHRha2UgaW50byBhY2NvdW50IHdoaWxlIHBhcnNpbmcuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0LkJpdG1hcEZvbnREYXRhfSBUaGUgcGFyc2VkIEJpdG1hcCBGb250IGRhdGEuXHJcbiAqL1xyXG5CaXRtYXBUZXh0LlBhcnNlWE1MQml0bWFwRm9udCA9IFBhcnNlWE1MQml0bWFwRm9udDtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQml0bWFwVGV4dDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgU2V0VHJhbnNmb3JtID0gcmVxdWlyZSgnLi4vLi4vLi4vcmVuZGVyZXIvY2FudmFzL3V0aWxzL1NldFRyYW5zZm9ybScpO1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlcnMgdGhpcyBHYW1lIE9iamVjdCB3aXRoIHRoZSBDYW52YXMgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0I3JlbmRlckNhbnZhc1xyXG4gKiBAc2luY2UgMy4wLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBDYW52YXMgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkJpdG1hcFRleHR9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICovXHJcbnZhciBCaXRtYXBUZXh0Q2FudmFzUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB2YXIgdGV4dCA9IHNyYy5fdGV4dDtcclxuICAgIHZhciB0ZXh0TGVuZ3RoID0gdGV4dC5sZW5ndGg7XHJcblxyXG4gICAgdmFyIGN0eCA9IHJlbmRlcmVyLmN1cnJlbnRDb250ZXh0O1xyXG5cclxuICAgIGlmICh0ZXh0TGVuZ3RoID09PSAwIHx8ICFTZXRUcmFuc2Zvcm0ocmVuZGVyZXIsIGN0eCwgc3JjLCBjYW1lcmEsIHBhcmVudE1hdHJpeCkpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB2YXIgdGV4dHVyZUZyYW1lID0gc3JjLmZyYW1lO1xyXG5cclxuICAgIHZhciBjaGFycyA9IHNyYy5mb250RGF0YS5jaGFycztcclxuICAgIHZhciBsaW5lSGVpZ2h0ID0gc3JjLmZvbnREYXRhLmxpbmVIZWlnaHQ7XHJcbiAgICB2YXIgbGV0dGVyU3BhY2luZyA9IHNyYy5fbGV0dGVyU3BhY2luZztcclxuXHJcbiAgICB2YXIgeEFkdmFuY2UgPSAwO1xyXG4gICAgdmFyIHlBZHZhbmNlID0gMDtcclxuXHJcbiAgICB2YXIgY2hhckNvZGUgPSAwO1xyXG5cclxuICAgIHZhciBnbHlwaCA9IG51bGw7XHJcbiAgICB2YXIgZ2x5cGhYID0gMDtcclxuICAgIHZhciBnbHlwaFkgPSAwO1xyXG4gICAgdmFyIGdseXBoVyA9IDA7XHJcbiAgICB2YXIgZ2x5cGhIID0gMDtcclxuXHJcbiAgICB2YXIgeCA9IDA7XHJcbiAgICB2YXIgeSA9IDA7XHJcblxyXG4gICAgdmFyIGxhc3RHbHlwaCA9IG51bGw7XHJcbiAgICB2YXIgbGFzdENoYXJDb2RlID0gMDtcclxuXHJcbiAgICB2YXIgaW1hZ2UgPSBzcmMuZnJhbWUuc291cmNlLmltYWdlO1xyXG5cclxuICAgIHZhciB0ZXh0dXJlWCA9IHRleHR1cmVGcmFtZS5jdXRYO1xyXG4gICAgdmFyIHRleHR1cmVZID0gdGV4dHVyZUZyYW1lLmN1dFk7XHJcblxyXG4gICAgdmFyIHNjYWxlID0gKHNyYy5fZm9udFNpemUgLyBzcmMuZm9udERhdGEuc2l6ZSk7XHJcblxyXG4gICAgdmFyIGFsaWduID0gc3JjLl9hbGlnbjtcclxuICAgIHZhciBjdXJyZW50TGluZSA9IDA7XHJcbiAgICB2YXIgbGluZU9mZnNldFggPSAwO1xyXG5cclxuICAgIC8vICBVcGRhdGUgdGhlIGJvdW5kcyAtIHNraXBwZWQgaW50ZXJuYWxseSBpZiBub3QgZGlydHlcclxuICAgIHZhciBib3VuZHMgPSBzcmMuZ2V0VGV4dEJvdW5kcyhmYWxzZSk7XHJcblxyXG4gICAgLy8gIEluIGNhc2UgdGhlIG1ldGhvZCBhYm92ZSBjaGFuZ2VkIGl0ICh3b3JkIHdyYXBwaW5nKVxyXG4gICAgaWYgKHNyYy5tYXhXaWR0aCA+IDApXHJcbiAgICB7XHJcbiAgICAgICAgdGV4dCA9IGJvdW5kcy53cmFwcGVkVGV4dDtcclxuICAgICAgICB0ZXh0TGVuZ3RoID0gdGV4dC5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGxpbmVEYXRhID0gc3JjLl9ib3VuZHMubGluZXM7XHJcblxyXG4gICAgaWYgKGFsaWduID09PSAxKVxyXG4gICAge1xyXG4gICAgICAgIGxpbmVPZmZzZXRYID0gKGxpbmVEYXRhLmxvbmdlc3QgLSBsaW5lRGF0YS5sZW5ndGhzWzBdKSAvIDI7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChhbGlnbiA9PT0gMilcclxuICAgIHtcclxuICAgICAgICBsaW5lT2Zmc2V0WCA9IChsaW5lRGF0YS5sb25nZXN0IC0gbGluZURhdGEubGVuZ3Roc1swXSk7XHJcbiAgICB9XHJcblxyXG4gICAgY3R4LnRyYW5zbGF0ZSgtc3JjLmRpc3BsYXlPcmlnaW5YLCAtc3JjLmRpc3BsYXlPcmlnaW5ZKTtcclxuXHJcbiAgICB2YXIgcm91bmRQaXhlbHMgPSBjYW1lcmEucm91bmRQaXhlbHM7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0TGVuZ3RoOyBpKyspXHJcbiAgICB7XHJcbiAgICAgICAgY2hhckNvZGUgPSB0ZXh0LmNoYXJDb2RlQXQoaSk7XHJcblxyXG4gICAgICAgIGlmIChjaGFyQ29kZSA9PT0gMTApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjdXJyZW50TGluZSsrO1xyXG5cclxuICAgICAgICAgICAgaWYgKGFsaWduID09PSAxKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsaW5lT2Zmc2V0WCA9IChsaW5lRGF0YS5sb25nZXN0IC0gbGluZURhdGEubGVuZ3Roc1tjdXJyZW50TGluZV0pIC8gMjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gMilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGluZU9mZnNldFggPSAobGluZURhdGEubG9uZ2VzdCAtIGxpbmVEYXRhLmxlbmd0aHNbY3VycmVudExpbmVdKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgeEFkdmFuY2UgPSAwO1xyXG4gICAgICAgICAgICB5QWR2YW5jZSArPSBsaW5lSGVpZ2h0O1xyXG4gICAgICAgICAgICBsYXN0R2x5cGggPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBnbHlwaCA9IGNoYXJzW2NoYXJDb2RlXTtcclxuXHJcbiAgICAgICAgaWYgKCFnbHlwaClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2x5cGhYID0gdGV4dHVyZVggKyBnbHlwaC54O1xyXG4gICAgICAgIGdseXBoWSA9IHRleHR1cmVZICsgZ2x5cGgueTtcclxuXHJcbiAgICAgICAgZ2x5cGhXID0gZ2x5cGgud2lkdGg7XHJcbiAgICAgICAgZ2x5cGhIID0gZ2x5cGguaGVpZ2h0O1xyXG5cclxuICAgICAgICB4ID0gZ2x5cGgueE9mZnNldCArIHhBZHZhbmNlO1xyXG4gICAgICAgIHkgPSBnbHlwaC55T2Zmc2V0ICsgeUFkdmFuY2U7XHJcblxyXG4gICAgICAgIGlmIChsYXN0R2x5cGggIT09IG51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIga2VybmluZ09mZnNldCA9IGdseXBoLmtlcm5pbmdbbGFzdENoYXJDb2RlXTtcclxuICAgICAgICAgICAgeCArPSAoa2VybmluZ09mZnNldCAhPT0gdW5kZWZpbmVkKSA/IGtlcm5pbmdPZmZzZXQgOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgeCAqPSBzY2FsZTtcclxuICAgICAgICB5ICo9IHNjYWxlO1xyXG5cclxuICAgICAgICB4ICs9IGxpbmVPZmZzZXRYO1xyXG5cclxuICAgICAgICB4QWR2YW5jZSArPSBnbHlwaC54QWR2YW5jZSArIGxldHRlclNwYWNpbmc7XHJcbiAgICAgICAgbGFzdEdseXBoID0gZ2x5cGg7XHJcbiAgICAgICAgbGFzdENoYXJDb2RlID0gY2hhckNvZGU7XHJcblxyXG4gICAgICAgIC8vICBOb3RoaW5nIHRvIHJlbmRlciBvciBhIHNwYWNlPyBUaGVuIHNraXAgdG8gdGhlIG5leHQgZ2x5cGhcclxuICAgICAgICBpZiAoZ2x5cGhXID09PSAwIHx8IGdseXBoSCA9PT0gMCB8fCBjaGFyQ29kZSA9PT0gMzIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyb3VuZFBpeGVscylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHggPSBNYXRoLnJvdW5kKHgpO1xyXG4gICAgICAgICAgICB5ID0gTWF0aC5yb3VuZCh5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGN0eC5zYXZlKCk7XHJcblxyXG4gICAgICAgIGN0eC50cmFuc2xhdGUoeCwgeSk7XHJcblxyXG4gICAgICAgIGN0eC5zY2FsZShzY2FsZSwgc2NhbGUpO1xyXG5cclxuICAgICAgICBjdHguZHJhd0ltYWdlKGltYWdlLCBnbHlwaFgsIGdseXBoWSwgZ2x5cGhXLCBnbHlwaEgsIDAsIDAsIGdseXBoVywgZ2x5cGhIKTtcclxuXHJcbiAgICAgICAgY3R4LnJlc3RvcmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjdHgucmVzdG9yZSgpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBCaXRtYXBUZXh0Q2FudmFzUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEJpdG1hcFRleHQgPSByZXF1aXJlKCcuL0JpdG1hcFRleHQnKTtcclxudmFyIEJ1aWxkR2FtZU9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL0J1aWxkR2FtZU9iamVjdCcpO1xyXG52YXIgR2FtZU9iamVjdENyZWF0b3IgPSByZXF1aXJlKCcuLi8uLi9HYW1lT2JqZWN0Q3JlYXRvcicpO1xyXG52YXIgR2V0QWR2YW5jZWRWYWx1ZSA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL29iamVjdC9HZXRBZHZhbmNlZFZhbHVlJyk7XHJcbnZhciBHZXRWYWx1ZSA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL29iamVjdC9HZXRWYWx1ZScpO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBuZXcgQml0bWFwIFRleHQgR2FtZSBPYmplY3QgYW5kIHJldHVybnMgaXQuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIEJpdG1hcCBUZXh0IEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Q3JlYXRvciNiaXRtYXBUZXh0XHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0LkJpdG1hcFRleHRDb25maWd9IGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIGNyZWF0ZSBpdHNlbGYuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FkZFRvU2NlbmVdIC0gQWRkIHRoaXMgR2FtZSBPYmplY3QgdG8gdGhlIFNjZW5lIGFmdGVyIGNyZWF0aW5nIGl0PyBJZiBzZXQgdGhpcyBhcmd1bWVudCBvdmVycmlkZXMgdGhlIGBhZGRgIHByb3BlcnR5IGluIHRoZSBjb25maWcgb2JqZWN0LlxyXG4gKiBcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkJpdG1hcFRleHR9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuR2FtZU9iamVjdENyZWF0b3IucmVnaXN0ZXIoJ2JpdG1hcFRleHQnLCBmdW5jdGlvbiAoY29uZmlnLCBhZGRUb1NjZW5lKVxyXG57XHJcbiAgICBpZiAoY29uZmlnID09PSB1bmRlZmluZWQpIHsgY29uZmlnID0ge307IH1cclxuXHJcbiAgICB2YXIgZm9udCA9IEdldFZhbHVlKGNvbmZpZywgJ2ZvbnQnLCAnJyk7XHJcbiAgICB2YXIgdGV4dCA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAndGV4dCcsICcnKTtcclxuICAgIHZhciBzaXplID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdzaXplJywgZmFsc2UpO1xyXG4gICAgdmFyIGFsaWduID0gR2V0VmFsdWUoY29uZmlnLCAnYWxpZ24nLCAwKTtcclxuXHJcbiAgICB2YXIgYml0bWFwVGV4dCA9IG5ldyBCaXRtYXBUZXh0KHRoaXMuc2NlbmUsIDAsIDAsIGZvbnQsIHRleHQsIHNpemUsIGFsaWduKTtcclxuXHJcbiAgICBpZiAoYWRkVG9TY2VuZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAge1xyXG4gICAgICAgIGNvbmZpZy5hZGQgPSBhZGRUb1NjZW5lO1xyXG4gICAgfVxyXG5cclxuICAgIEJ1aWxkR2FtZU9iamVjdCh0aGlzLnNjZW5lLCBiaXRtYXBUZXh0LCBjb25maWcpO1xyXG5cclxuICAgIHJldHVybiBiaXRtYXBUZXh0O1xyXG59KTtcclxuXHJcbi8vICBXaGVuIHJlZ2lzdGVyaW5nIGEgZmFjdG9yeSBmdW5jdGlvbiAndGhpcycgcmVmZXJzIHRvIHRoZSBHYW1lT2JqZWN0Q3JlYXRvciBjb250ZXh0LlxyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBCaXRtYXBUZXh0ID0gcmVxdWlyZSgnLi9CaXRtYXBUZXh0Jyk7XHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uLy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBCaXRtYXAgVGV4dCBHYW1lIE9iamVjdCBhbmQgYWRkcyBpdCB0byB0aGUgU2NlbmUuXHJcbiAqIFxyXG4gKiBCaXRtYXBUZXh0IG9iamVjdHMgd29yayBieSB0YWtpbmcgYSB0ZXh0dXJlIGZpbGUgYW5kIGFuIFhNTCBvciBKU09OIGZpbGUgdGhhdCBkZXNjcmliZXMgdGhlIGZvbnQgc3RydWN0dXJlLlxyXG4gKiBcclxuICogRHVyaW5nIHJlbmRlcmluZyBmb3IgZWFjaCBsZXR0ZXIgb2YgdGhlIHRleHQgaXMgcmVuZGVyZWQgdG8gdGhlIGRpc3BsYXksIHByb3BvcnRpb25hbGx5IHNwYWNlZCBvdXQgYW5kIGFsaWduZWQgdG9cclxuICogbWF0Y2ggdGhlIGZvbnQgc3RydWN0dXJlLlxyXG4gKiBcclxuICogQml0bWFwVGV4dCBvYmplY3RzIGFyZSBsZXNzIGZsZXhpYmxlIHRoYW4gVGV4dCBvYmplY3RzLCBpbiB0aGF0IHRoZXkgaGF2ZSBsZXNzIGZlYXR1cmVzIHN1Y2ggYXMgc2hhZG93cywgZmlsbHMgYW5kIHRoZSBhYmlsaXR5XHJcbiAqIHRvIHVzZSBXZWIgRm9udHMsIGhvd2V2ZXIgeW91IHRyYWRlIHRoaXMgZmxleGliaWxpdHkgZm9yIHJlbmRlcmluZyBzcGVlZC4gWW91IGNhbiBhbHNvIGNyZWF0ZSB2aXN1YWxseSBjb21wZWxsaW5nIEJpdG1hcFRleHRzIGJ5XHJcbiAqIHByb2Nlc3NpbmcgdGhlIGZvbnQgdGV4dHVyZSBpbiBhbiBpbWFnZSBlZGl0b3IsIGFwcGx5aW5nIGZpbGxzIGFuZCBhbnkgb3RoZXIgZWZmZWN0cyByZXF1aXJlZC5cclxuICpcclxuICogVG8gY3JlYXRlIG11bHRpLWxpbmUgdGV4dCBpbnNlcnQgXFxyLCBcXG4gb3IgXFxyXFxuIGVzY2FwZSBjb2RlcyBpbnRvIHRoZSB0ZXh0IHN0cmluZy5cclxuICpcclxuICogVG8gY3JlYXRlIGEgQml0bWFwVGV4dCBkYXRhIGZpbGVzIHlvdSBuZWVkIGEgM3JkIHBhcnR5IGFwcCBzdWNoIGFzOlxyXG4gKlxyXG4gKiBCTUZvbnQgKFdpbmRvd3MsIGZyZWUpOiBodHRwOi8vd3d3LmFuZ2VsY29kZS5jb20vcHJvZHVjdHMvYm1mb250L1xyXG4gKiBHbHlwaCBEZXNpZ25lciAoT1MgWCwgY29tbWVyY2lhbCk6IGh0dHA6Ly93d3cuNzFzcXVhcmVkLmNvbS9lbi9nbHlwaGRlc2lnbmVyXHJcbiAqIExpdHRlcmEgKFdlYi1iYXNlZCwgZnJlZSk6IGh0dHA6Ly9rdmF6YXJzLmNvbS9saXR0ZXJhL1xyXG4gKlxyXG4gKiBGb3IgbW9zdCB1c2UgY2FzZXMgaXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIFhNTC4gSWYgeW91IHdpc2ggdG8gdXNlIEpTT04sIHRoZSBmb3JtYXR0aW5nIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgcmVzdWx0IG9mXHJcbiAqIGNvbnZlcnRpbmcgYSB2YWxpZCBYTUwgZmlsZSB0aHJvdWdoIHRoZSBwb3B1bGFyIFgySlMgbGlicmFyeS4gQW4gb25saW5lIHRvb2wgZm9yIGNvbnZlcnNpb24gY2FuIGJlIGZvdW5kIGhlcmU6IGh0dHA6Ly9jb2RlYmVhdXRpZnkub3JnL3htbHRvanNvblxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBCaXRtYXAgVGV4dCBHYW1lIE9iamVjdCBoYXMgYmVlbiBidWlsdCBpbnRvIFBoYXNlci5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjYml0bWFwVGV4dFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBwb3NpdGlvbiBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgcG9zaXRpb24gb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gZm9udCAtIFRoZSBrZXkgb2YgdGhlIGZvbnQgdG8gdXNlIGZyb20gdGhlIEJpdG1hcEZvbnQgY2FjaGUuXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xzdHJpbmdbXSl9IFt0ZXh0XSAtIFRoZSBzdHJpbmcsIG9yIGFycmF5IG9mIHN0cmluZ3MsIHRvIGJlIHNldCBhcyB0aGUgY29udGVudCBvZiB0aGlzIEJpdG1hcCBUZXh0LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3NpemVdIC0gVGhlIGZvbnQgc2l6ZSB0byBzZXQuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2FsaWduPTBdIC0gVGhlIGFsaWdubWVudCBvZiB0aGUgdGV4dCBpbiBhIG11bHRpLWxpbmUgQml0bWFwVGV4dCBvYmplY3QuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RGYWN0b3J5LnJlZ2lzdGVyKCdiaXRtYXBUZXh0JywgZnVuY3Rpb24gKHgsIHksIGZvbnQsIHRleHQsIHNpemUsIGFsaWduKVxyXG57XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5TGlzdC5hZGQobmV3IEJpdG1hcFRleHQodGhpcy5zY2VuZSwgeCwgeSwgZm9udCwgdGV4dCwgc2l6ZSwgYWxpZ24pKTtcclxufSk7XHJcblxyXG4vLyAgV2hlbiByZWdpc3RlcmluZyBhIGZhY3RvcnkgZnVuY3Rpb24gJ3RoaXMnIHJlZmVycyB0byB0aGUgR2FtZU9iamVjdEZhY3RvcnkgY29udGV4dC5cclxuLy9cclxuLy8gIFRoZXJlIGFyZSBzZXZlcmFsIHByb3BlcnRpZXMgYXZhaWxhYmxlIHRvIHVzZTpcclxuLy9cclxuLy8gIHRoaXMuc2NlbmUgLSBhIHJlZmVyZW5jZSB0byB0aGUgU2NlbmUgdGhhdCBvd25zIHRoZSBHYW1lT2JqZWN0RmFjdG9yeVxyXG4vLyAgdGhpcy5kaXNwbGF5TGlzdCAtIGEgcmVmZXJlbmNlIHRvIHRoZSBEaXNwbGF5IExpc3QgdGhlIFNjZW5lIG93bnNcclxuLy8gIHRoaXMudXBkYXRlTGlzdCAtIGEgcmVmZXJlbmNlIHRvIHRoZSBVcGRhdGUgTGlzdCB0aGUgU2NlbmUgb3duc1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL05PT1AnKTtcclxudmFyIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL05PT1AnKTtcclxuXHJcbmlmICh0eXBlb2YgV0VCR0xfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi9CaXRtYXBUZXh0V2ViR0xSZW5kZXJlcicpO1xyXG59XHJcblxyXG5pZiAodHlwZW9mIENBTlZBU19SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi9CaXRtYXBUZXh0Q2FudmFzUmVuZGVyZXInKTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgcmVuZGVyV2ViR0w6IHJlbmRlcldlYkdMLFxyXG4gICAgcmVuZGVyQ2FudmFzOiByZW5kZXJDYW52YXNcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFV0aWxzID0gcmVxdWlyZSgnLi4vLi4vLi4vcmVuZGVyZXIvd2ViZ2wvVXRpbHMnKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5CaXRtYXBUZXh0I3JlbmRlcldlYkdMXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBXZWJHTCByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQml0bWFwVGV4dH0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIEJpdG1hcFRleHRXZWJHTFJlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgdmFyIHRleHQgPSBzcmMuX3RleHQ7XHJcbiAgICB2YXIgdGV4dExlbmd0aCA9IHRleHQubGVuZ3RoO1xyXG5cclxuICAgIGlmICh0ZXh0TGVuZ3RoID09PSAwKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuIFxyXG4gICAgdmFyIHBpcGVsaW5lID0gdGhpcy5waXBlbGluZTtcclxuXHJcbiAgICByZW5kZXJlci5zZXRQaXBlbGluZShwaXBlbGluZSwgc3JjKTtcclxuXHJcbiAgICB2YXIgY2FtTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgxO1xyXG4gICAgdmFyIHNwcml0ZU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MjtcclxuICAgIHZhciBjYWxjTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgzO1xyXG5cclxuICAgIHNwcml0ZU1hdHJpeC5hcHBseUlUUlMoc3JjLngsIHNyYy55LCBzcmMucm90YXRpb24sIHNyYy5zY2FsZVgsIHNyYy5zY2FsZVkpO1xyXG5cclxuICAgIGNhbU1hdHJpeC5jb3B5RnJvbShjYW1lcmEubWF0cml4KTtcclxuXHJcbiAgICBpZiAocGFyZW50TWF0cml4KVxyXG4gICAge1xyXG4gICAgICAgIC8vICBNdWx0aXBseSB0aGUgY2FtZXJhIGJ5IHRoZSBwYXJlbnQgbWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5V2l0aE9mZnNldChwYXJlbnRNYXRyaXgsIC1jYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYLCAtY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWSk7XHJcblxyXG4gICAgICAgIC8vICBVbmRvIHRoZSBjYW1lcmEgc2Nyb2xsXHJcbiAgICAgICAgc3ByaXRlTWF0cml4LmUgPSBzcmMueDtcclxuICAgICAgICBzcHJpdGVNYXRyaXguZiA9IHNyYy55O1xyXG5cclxuICAgICAgICAvLyAgTXVsdGlwbHkgYnkgdGhlIFNwcml0ZSBtYXRyaXgsIHN0b3JlIHJlc3VsdCBpbiBjYWxjTWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5KHNwcml0ZU1hdHJpeCwgY2FsY01hdHJpeCk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgc3ByaXRlTWF0cml4LmUgLT0gY2FtZXJhLnNjcm9sbFggKiBzcmMuc2Nyb2xsRmFjdG9yWDtcclxuICAgICAgICBzcHJpdGVNYXRyaXguZiAtPSBjYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZO1xyXG5cclxuICAgICAgICAvLyAgTXVsdGlwbHkgYnkgdGhlIFNwcml0ZSBtYXRyaXgsIHN0b3JlIHJlc3VsdCBpbiBjYWxjTWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5KHNwcml0ZU1hdHJpeCwgY2FsY01hdHJpeCk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGZyYW1lID0gc3JjLmZyYW1lO1xyXG4gICAgdmFyIHRleHR1cmUgPSBmcmFtZS5nbFRleHR1cmU7XHJcbiAgICB2YXIgdGV4dHVyZVggPSBmcmFtZS5jdXRYO1xyXG4gICAgdmFyIHRleHR1cmVZID0gZnJhbWUuY3V0WTtcclxuICAgIHZhciB0ZXh0dXJlV2lkdGggPSB0ZXh0dXJlLndpZHRoO1xyXG4gICAgdmFyIHRleHR1cmVIZWlnaHQgPSB0ZXh0dXJlLmhlaWdodDtcclxuXHJcbiAgICB2YXIgdGludEVmZmVjdCA9IChzcmMuX2lzVGludGVkICYmIHNyYy50aW50RmlsbCk7XHJcbiAgICB2YXIgdGludFRMID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGEoc3JjLl90aW50VEwsIGNhbWVyYS5hbHBoYSAqIHNyYy5fYWxwaGFUTCk7XHJcbiAgICB2YXIgdGludFRSID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGEoc3JjLl90aW50VFIsIGNhbWVyYS5hbHBoYSAqIHNyYy5fYWxwaGFUUik7XHJcbiAgICB2YXIgdGludEJMID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGEoc3JjLl90aW50QkwsIGNhbWVyYS5hbHBoYSAqIHNyYy5fYWxwaGFCTCk7XHJcbiAgICB2YXIgdGludEJSID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGEoc3JjLl90aW50QlIsIGNhbWVyYS5hbHBoYSAqIHNyYy5fYWxwaGFCUik7XHJcblxyXG4gICAgcGlwZWxpbmUuc2V0VGV4dHVyZTJEKHRleHR1cmUsIDApO1xyXG5cclxuICAgIHZhciB4QWR2YW5jZSA9IDA7XHJcbiAgICB2YXIgeUFkdmFuY2UgPSAwO1xyXG4gICAgdmFyIGNoYXJDb2RlID0gMDtcclxuICAgIHZhciBsYXN0Q2hhckNvZGUgPSAwO1xyXG4gICAgdmFyIGxldHRlclNwYWNpbmcgPSBzcmMuX2xldHRlclNwYWNpbmc7XHJcbiAgICB2YXIgZ2x5cGg7XHJcbiAgICB2YXIgZ2x5cGhYID0gMDtcclxuICAgIHZhciBnbHlwaFkgPSAwO1xyXG4gICAgdmFyIGdseXBoVyA9IDA7XHJcbiAgICB2YXIgZ2x5cGhIID0gMDtcclxuICAgIHZhciBsYXN0R2x5cGg7XHJcblxyXG4gICAgdmFyIGZvbnREYXRhID0gc3JjLmZvbnREYXRhO1xyXG4gICAgdmFyIGNoYXJzID0gZm9udERhdGEuY2hhcnM7XHJcbiAgICB2YXIgbGluZUhlaWdodCA9IGZvbnREYXRhLmxpbmVIZWlnaHQ7XHJcbiAgICB2YXIgc2NhbGUgPSAoc3JjLl9mb250U2l6ZSAvIGZvbnREYXRhLnNpemUpO1xyXG5cclxuICAgIHZhciBhbGlnbiA9IHNyYy5fYWxpZ247XHJcbiAgICB2YXIgY3VycmVudExpbmUgPSAwO1xyXG4gICAgdmFyIGxpbmVPZmZzZXRYID0gMDtcclxuXHJcbiAgICAvLyAgVXBkYXRlIHRoZSBib3VuZHMgLSBza2lwcGVkIGludGVybmFsbHkgaWYgbm90IGRpcnR5XHJcbiAgICB2YXIgYm91bmRzID0gc3JjLmdldFRleHRCb3VuZHMoZmFsc2UpO1xyXG5cclxuICAgIC8vICBJbiBjYXNlIHRoZSBtZXRob2QgYWJvdmUgY2hhbmdlZCBpdCAod29yZCB3cmFwcGluZylcclxuICAgIGlmIChzcmMubWF4V2lkdGggPiAwKVxyXG4gICAge1xyXG4gICAgICAgIHRleHQgPSBib3VuZHMud3JhcHBlZFRleHQ7XHJcbiAgICAgICAgdGV4dExlbmd0aCA9IHRleHQubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBsaW5lRGF0YSA9IHNyYy5fYm91bmRzLmxpbmVzO1xyXG5cclxuICAgIGlmIChhbGlnbiA9PT0gMSlcclxuICAgIHtcclxuICAgICAgICBsaW5lT2Zmc2V0WCA9IChsaW5lRGF0YS5sb25nZXN0IC0gbGluZURhdGEubGVuZ3Roc1swXSkgLyAyO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoYWxpZ24gPT09IDIpXHJcbiAgICB7XHJcbiAgICAgICAgbGluZU9mZnNldFggPSAobGluZURhdGEubG9uZ2VzdCAtIGxpbmVEYXRhLmxlbmd0aHNbMF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciByb3VuZFBpeGVscyA9IGNhbWVyYS5yb3VuZFBpeGVscztcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHRMZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICBjaGFyQ29kZSA9IHRleHQuY2hhckNvZGVBdChpKTtcclxuXHJcbiAgICAgICAgLy8gIENhcnJpYWdlLXJldHVyblxyXG4gICAgICAgIGlmIChjaGFyQ29kZSA9PT0gMTApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjdXJyZW50TGluZSsrO1xyXG5cclxuICAgICAgICAgICAgaWYgKGFsaWduID09PSAxKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBsaW5lT2Zmc2V0WCA9IChsaW5lRGF0YS5sb25nZXN0IC0gbGluZURhdGEubGVuZ3Roc1tjdXJyZW50TGluZV0pIC8gMjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChhbGlnbiA9PT0gMilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGluZU9mZnNldFggPSAobGluZURhdGEubG9uZ2VzdCAtIGxpbmVEYXRhLmxlbmd0aHNbY3VycmVudExpbmVdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICB4QWR2YW5jZSA9IDA7XHJcbiAgICAgICAgICAgIHlBZHZhbmNlICs9IGxpbmVIZWlnaHQ7XHJcbiAgICAgICAgICAgIGxhc3RHbHlwaCA9IG51bGw7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2x5cGggPSBjaGFyc1tjaGFyQ29kZV07XHJcblxyXG4gICAgICAgIGlmICghZ2x5cGgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGdseXBoWCA9IHRleHR1cmVYICsgZ2x5cGgueDtcclxuICAgICAgICBnbHlwaFkgPSB0ZXh0dXJlWSArIGdseXBoLnk7XHJcblxyXG4gICAgICAgIGdseXBoVyA9IGdseXBoLndpZHRoO1xyXG4gICAgICAgIGdseXBoSCA9IGdseXBoLmhlaWdodDtcclxuXHJcbiAgICAgICAgdmFyIHggPSBnbHlwaC54T2Zmc2V0ICsgeEFkdmFuY2U7XHJcbiAgICAgICAgdmFyIHkgPSBnbHlwaC55T2Zmc2V0ICsgeUFkdmFuY2U7XHJcblxyXG4gICAgICAgIGlmIChsYXN0R2x5cGggIT09IG51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIga2VybmluZ09mZnNldCA9IGdseXBoLmtlcm5pbmdbbGFzdENoYXJDb2RlXTtcclxuICAgICAgICAgICAgeCArPSAoa2VybmluZ09mZnNldCAhPT0gdW5kZWZpbmVkKSA/IGtlcm5pbmdPZmZzZXQgOiAwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgeEFkdmFuY2UgKz0gZ2x5cGgueEFkdmFuY2UgKyBsZXR0ZXJTcGFjaW5nO1xyXG4gICAgICAgIGxhc3RHbHlwaCA9IGdseXBoO1xyXG4gICAgICAgIGxhc3RDaGFyQ29kZSA9IGNoYXJDb2RlO1xyXG5cclxuICAgICAgICAvLyAgTm90aGluZyB0byByZW5kZXIgb3IgYSBzcGFjZT8gVGhlbiBza2lwIHRvIHRoZSBuZXh0IGdseXBoXHJcbiAgICAgICAgaWYgKGdseXBoVyA9PT0gMCB8fCBnbHlwaEggPT09IDAgfHwgY2hhckNvZGUgPT09IDMyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB4ICo9IHNjYWxlO1xyXG4gICAgICAgIHkgKj0gc2NhbGU7XHJcblxyXG4gICAgICAgIHggLT0gc3JjLmRpc3BsYXlPcmlnaW5YO1xyXG4gICAgICAgIHkgLT0gc3JjLmRpc3BsYXlPcmlnaW5ZO1xyXG5cclxuICAgICAgICB4ICs9IGxpbmVPZmZzZXRYO1xyXG5cclxuICAgICAgICB2YXIgdTAgPSBnbHlwaFggLyB0ZXh0dXJlV2lkdGg7XHJcbiAgICAgICAgdmFyIHYwID0gZ2x5cGhZIC8gdGV4dHVyZUhlaWdodDtcclxuICAgICAgICB2YXIgdTEgPSAoZ2x5cGhYICsgZ2x5cGhXKSAvIHRleHR1cmVXaWR0aDtcclxuICAgICAgICB2YXIgdjEgPSAoZ2x5cGhZICsgZ2x5cGhIKSAvIHRleHR1cmVIZWlnaHQ7XHJcblxyXG4gICAgICAgIHZhciB4dyA9IHggKyAoZ2x5cGhXICogc2NhbGUpO1xyXG4gICAgICAgIHZhciB5aCA9IHkgKyAoZ2x5cGhIICogc2NhbGUpO1xyXG5cclxuICAgICAgICB2YXIgdHgwID0gY2FsY01hdHJpeC5nZXRYKHgsIHkpO1xyXG4gICAgICAgIHZhciB0eTAgPSBjYWxjTWF0cml4LmdldFkoeCwgeSk7XHJcblxyXG4gICAgICAgIHZhciB0eDEgPSBjYWxjTWF0cml4LmdldFgoeCwgeWgpO1xyXG4gICAgICAgIHZhciB0eTEgPSBjYWxjTWF0cml4LmdldFkoeCwgeWgpO1xyXG5cclxuICAgICAgICB2YXIgdHgyID0gY2FsY01hdHJpeC5nZXRYKHh3LCB5aCk7XHJcbiAgICAgICAgdmFyIHR5MiA9IGNhbGNNYXRyaXguZ2V0WSh4dywgeWgpO1xyXG5cclxuICAgICAgICB2YXIgdHgzID0gY2FsY01hdHJpeC5nZXRYKHh3LCB5KTtcclxuICAgICAgICB2YXIgdHkzID0gY2FsY01hdHJpeC5nZXRZKHh3LCB5KTtcclxuXHJcbiAgICAgICAgaWYgKHJvdW5kUGl4ZWxzKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdHgwID0gTWF0aC5yb3VuZCh0eDApO1xyXG4gICAgICAgICAgICB0eTAgPSBNYXRoLnJvdW5kKHR5MCk7XHJcblxyXG4gICAgICAgICAgICB0eDEgPSBNYXRoLnJvdW5kKHR4MSk7XHJcbiAgICAgICAgICAgIHR5MSA9IE1hdGgucm91bmQodHkxKTtcclxuXHJcbiAgICAgICAgICAgIHR4MiA9IE1hdGgucm91bmQodHgyKTtcclxuICAgICAgICAgICAgdHkyID0gTWF0aC5yb3VuZCh0eTIpO1xyXG5cclxuICAgICAgICAgICAgdHgzID0gTWF0aC5yb3VuZCh0eDMpO1xyXG4gICAgICAgICAgICB0eTMgPSBNYXRoLnJvdW5kKHR5Myk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwaXBlbGluZS5iYXRjaFF1YWQodHgwLCB0eTAsIHR4MSwgdHkxLCB0eDIsIHR5MiwgdHgzLCB0eTMsIHUwLCB2MCwgdTEsIHYxLCB0aW50VEwsIHRpbnRUUiwgdGludEJMLCB0aW50QlIsIHRpbnRFZmZlY3QsIHRleHR1cmUsIDApO1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBCaXRtYXBUZXh0V2ViR0xSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQmxpdHRlclJlbmRlciA9IHJlcXVpcmUoJy4vQmxpdHRlclJlbmRlcicpO1xyXG52YXIgQm9iID0gcmVxdWlyZSgnLi9Cb2InKTtcclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIENvbXBvbmVudHMgPSByZXF1aXJlKCcuLi9jb21wb25lbnRzJyk7XHJcbnZhciBGcmFtZSA9IHJlcXVpcmUoJy4uLy4uL3RleHR1cmVzL0ZyYW1lJyk7XHJcbnZhciBHYW1lT2JqZWN0ID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdCcpO1xyXG52YXIgTGlzdCA9IHJlcXVpcmUoJy4uLy4uL3N0cnVjdHMvTGlzdCcpO1xyXG5cclxuLyoqXHJcbiAqIEBjYWxsYmFjayBDcmVhdGVDYWxsYmFja1xyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Cb2J9IGJvYiAtIFRoZSBCb2IgdGhhdCB3YXMgY3JlYXRlZCBieSB0aGUgQmxpdHRlci5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIFRoZSBwb3NpdGlvbiBvZiB0aGUgQm9iIHdpdGhpbiB0aGUgQmxpdHRlciBkaXNwbGF5IGxpc3QuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBCbGl0dGVyIEdhbWUgT2JqZWN0LlxyXG4gKlxyXG4gKiBUaGUgQmxpdHRlciBHYW1lIE9iamVjdCBpcyBhIHNwZWNpYWwga2luZCBvZiBjb250YWluZXIgdGhhdCBjcmVhdGVzLCB1cGRhdGVzIGFuZCBtYW5hZ2VzIEJvYiBvYmplY3RzLlxyXG4gKiBCb2JzIGFyZSBkZXNpZ25lZCBmb3IgcmVuZGVyaW5nIHNwZWVkIHJhdGhlciB0aGFuIGZsZXhpYmlsaXR5LiBUaGV5IGNvbnNpc3Qgb2YgYSB0ZXh0dXJlLCBvciBmcmFtZSBmcm9tIGEgdGV4dHVyZSxcclxuICogYSBwb3NpdGlvbiBhbmQgYW4gYWxwaGEgdmFsdWUuIFlvdSBjYW5ub3Qgc2NhbGUgb3Igcm90YXRlIHRoZW0uIFRoZXkgdXNlIGEgYmF0Y2hlZCBkcmF3aW5nIG1ldGhvZCBmb3Igc3BlZWRcclxuICogZHVyaW5nIHJlbmRlcmluZy5cclxuICpcclxuICogQSBCbGl0dGVyIEdhbWUgT2JqZWN0IGhhcyBvbmUgdGV4dHVyZSBib3VuZCB0byBpdC4gQm9icyBjcmVhdGVkIGJ5IHRoZSBCbGl0dGVyIGNhbiB1c2UgYW55IEZyYW1lIGZyb20gdGhpc1xyXG4gKiBUZXh0dXJlIHRvIHJlbmRlciB3aXRoLCBidXQgdGhleSBjYW5ub3QgdXNlIGFueSBvdGhlciBUZXh0dXJlLiBJdCBpcyB0aGlzIHNpbmdsZSB0ZXh0dXJlLWJpbmQgdGhhdCBhbGxvd3NcclxuICogdGhlbSB0aGVpciBzcGVlZC5cclxuICpcclxuICogSWYgeW91IGhhdmUgYSBuZWVkIHRvIGJsYXN0IGEgbGFyZ2Ugdm9sdW1lIG9mIGZyYW1lcyBhcm91bmQgdGhlIHNjcmVlbiB0aGVuIEJsaXR0ZXIgb2JqZWN0cyBhcmUgd2VsbCB3b3J0aFxyXG4gKiBpbnZlc3RpZ2F0aW5nLiBUaGV5IGFyZSBlc3BlY2lhbGx5IHVzZWZ1bCBmb3IgdXNpbmcgYXMgYSBiYXNlIGZvciB5b3VyIG93biBzcGVjaWFsIGVmZmVjdHMgc3lzdGVtcy5cclxuICpcclxuICogQGNsYXNzIEJsaXR0ZXJcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFscGhhXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkJsZW5kTW9kZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5EZXB0aFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5NYXNrXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlBpcGVsaW5lXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlNjcm9sbEZhY3RvclxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TaXplXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRleHR1cmVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlZpc2libGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gSXQgY2FuIG9ubHkgYmVsb25nIHRvIG9uZSBTY2VuZSBhdCBhbnkgZ2l2ZW4gdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHdvcmxkIHNwYWNlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3k9MF0gLSBUaGUgeSBjb29yZGluYXRlIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gd29ybGQgc3BhY2UuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSBbdGV4dHVyZT0nX19ERUZBVUxUJ10gLSBUaGUga2V5IG9mIHRoZSB0ZXh0dXJlIHRoaXMgR2FtZSBPYmplY3Qgd2lsbCB1c2UgZm9yIHJlbmRlcmluZy4gVGhlIFRleHR1cmUgbXVzdCBhbHJlYWR5IGV4aXN0IGluIHRoZSBUZXh0dXJlIE1hbmFnZXIuXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW2ZyYW1lPTBdIC0gVGhlIEZyYW1lIG9mIHRoZSBUZXh0dXJlIHRoYXQgdGhpcyBHYW1lIE9iamVjdCB3aWxsIHVzZS4gT25seSBzZXQgaWYgdGhlIFRleHR1cmUgaGFzIG11bHRpcGxlIGZyYW1lcywgc3VjaCBhcyBhIFRleHR1cmUgQXRsYXMgb3IgU3ByaXRlIFNoZWV0LlxyXG4gKi9cclxudmFyIEJsaXR0ZXIgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IEdhbWVPYmplY3QsXHJcblxyXG4gICAgTWl4aW5zOiBbXHJcbiAgICAgICAgQ29tcG9uZW50cy5BbHBoYSxcclxuICAgICAgICBDb21wb25lbnRzLkJsZW5kTW9kZSxcclxuICAgICAgICBDb21wb25lbnRzLkRlcHRoLFxyXG4gICAgICAgIENvbXBvbmVudHMuTWFzayxcclxuICAgICAgICBDb21wb25lbnRzLlBpcGVsaW5lLFxyXG4gICAgICAgIENvbXBvbmVudHMuU2Nyb2xsRmFjdG9yLFxyXG4gICAgICAgIENvbXBvbmVudHMuU2l6ZSxcclxuICAgICAgICBDb21wb25lbnRzLlRleHR1cmUsXHJcbiAgICAgICAgQ29tcG9uZW50cy5UcmFuc2Zvcm0sXHJcbiAgICAgICAgQ29tcG9uZW50cy5WaXNpYmxlLFxyXG4gICAgICAgIEJsaXR0ZXJSZW5kZXJcclxuICAgIF0sXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBCbGl0dGVyIChzY2VuZSwgeCwgeSwgdGV4dHVyZSwgZnJhbWUpXHJcbiAgICB7XHJcbiAgICAgICAgR2FtZU9iamVjdC5jYWxsKHRoaXMsIHNjZW5lLCAnQmxpdHRlcicpO1xyXG5cclxuICAgICAgICB0aGlzLnNldFRleHR1cmUodGV4dHVyZSwgZnJhbWUpO1xyXG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb24oeCwgeSk7XHJcbiAgICAgICAgdGhpcy5pbml0UGlwZWxpbmUoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGNoaWxkcmVuIG9mIHRoaXMgQmxpdHRlci5cclxuICAgICAgICAgKiBUaGlzIExpc3QgY29udGFpbnMgYWxsIG9mIHRoZSBCb2Igb2JqZWN0cyBjcmVhdGVkIGJ5IHRoZSBCbGl0dGVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkJsaXR0ZXIjY2hpbGRyZW5cclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlN0cnVjdHMuTGlzdC48UGhhc2VyLkdhbWVPYmplY3RzLkJvYj59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IG5ldyBMaXN0KCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgdHJhbnNpZW50IGFycmF5IHRoYXQgaG9sZHMgYWxsIG9mIHRoZSBCb2JzIHRoYXQgd2lsbCBiZSByZW5kZXJlZCB0aGlzIGZyYW1lLlxyXG4gICAgICAgICAqIFRoZSBhcnJheSBpcyByZS1wb3B1bGF0ZWQgd2hlbmV2ZXIgdGhlIGRpcnR5IGZsYWcgaXMgc2V0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkJsaXR0ZXIjcmVuZGVyTGlzdFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuQm9iW119XHJcbiAgICAgICAgICogQGRlZmF1bHQgW11cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucmVuZGVyTGlzdCA9IFtdO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJcyB0aGUgQmxpdHRlciBjb25zaWRlcmVkIGRpcnR5P1xyXG4gICAgICAgICAqIEEgJ2RpcnR5JyBCbGl0dGVyIGhhcyBoYWQgaXRzIGNoaWxkIGNvdW50IGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgZnJhbWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQmxpdHRlciNkaXJ0eVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgbmV3IEJvYiBpbiB0aGlzIEJsaXR0ZXIuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIEJvYiBpcyBjcmVhdGVkIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcywgcmVsYXRpdmUgdG8gdGhlIEJsaXR0ZXIgYW5kIHVzZXMgdGhlIGdpdmVuIGZyYW1lLlxyXG4gICAgICogQSBCb2IgY2FuIHVzZSBhbnkgZnJhbWUgYmVsb25naW5nIHRvIHRoZSB0ZXh0dXJlIGJvdW5kIHRvIHRoZSBCbGl0dGVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkJsaXR0ZXIjY3JlYXRlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSB4IHBvc2l0aW9uIG9mIHRoZSBCb2IuIEJvYiBjb29yZGluYXRlIGFyZSByZWxhdGl2ZSB0byB0aGUgcG9zaXRpb24gb2YgdGhlIEJsaXR0ZXIgb2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBwb3NpdGlvbiBvZiB0aGUgQm9iLiBCb2IgY29vcmRpbmF0ZSBhcmUgcmVsYXRpdmUgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBCbGl0dGVyIG9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyfFBoYXNlci5UZXh0dXJlcy5GcmFtZSl9IFtmcmFtZV0gLSBUaGUgRnJhbWUgdGhlIEJvYiB3aWxsIHVzZS4gSXQgX211c3RfIGJlIHBhcnQgb2YgdGhlIFRleHR1cmUgdGhlIHBhcmVudCBCbGl0dGVyIG9iamVjdCBpcyB1c2luZy5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Zpc2libGU9dHJ1ZV0gLSBTaG91bGQgdGhlIGNyZWF0ZWQgQm9iIHJlbmRlciBvciBub3Q/XHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtpbmRleF0gLSBUaGUgcG9zaXRpb24gaW4gdGhlIEJsaXR0ZXJzIERpc3BsYXkgTGlzdCB0byBhZGQgdGhlIG5ldyBCb2IgYXQuIERlZmF1bHRzIHRvIHRoZSB0b3Agb2YgdGhlIGxpc3QuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkJvYn0gVGhlIG5ld2x5IGNyZWF0ZWQgQm9iIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgY3JlYXRlOiBmdW5jdGlvbiAoeCwgeSwgZnJhbWUsIHZpc2libGUsIGluZGV4KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh2aXNpYmxlID09PSB1bmRlZmluZWQpIHsgdmlzaWJsZSA9IHRydWU7IH1cclxuICAgICAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkgeyBpbmRleCA9IHRoaXMuY2hpbGRyZW4ubGVuZ3RoOyB9XHJcblxyXG4gICAgICAgIGlmIChmcmFtZSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZnJhbWUgPSB0aGlzLmZyYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICghKGZyYW1lIGluc3RhbmNlb2YgRnJhbWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZnJhbWUgPSB0aGlzLnRleHR1cmUuZ2V0KGZyYW1lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBib2IgPSBuZXcgQm9iKHRoaXMsIHgsIHksIGZyYW1lLCB2aXNpYmxlKTtcclxuXHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5hZGRBdChib2IsIGluZGV4LCBmYWxzZSk7XHJcblxyXG4gICAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gYm9iO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgbXVsdGlwbGUgQm9iIG9iamVjdHMgd2l0aGluIHRoaXMgQmxpdHRlciBhbmQgdGhlbiBwYXNzZXMgZWFjaCBvZiB0aGVtIHRvIHRoZSBzcGVjaWZpZWQgY2FsbGJhY2suXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQmxpdHRlciNjcmVhdGVGcm9tQ2FsbGJhY2tcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Q3JlYXRlQ2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGludm9rZSBhZnRlciBjcmVhdGluZyBhIGJvYi4gSXQgd2lsbCBiZSBzZW50IHR3byBhcmd1bWVudHM6IFRoZSBCb2IgYW5kIHRoZSBpbmRleCBvZiB0aGUgQm9iLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBxdWFudGl0eSAtIFRoZSBxdWFudGl0eSBvZiBCb2Igb2JqZWN0cyB0byBjcmVhdGUuXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcnxQaGFzZXIuVGV4dHVyZXMuRnJhbWV8c3RyaW5nW118aW50ZWdlcltdfFBoYXNlci5UZXh0dXJlcy5GcmFtZVtdKX0gW2ZyYW1lXSAtIFRoZSBGcmFtZSB0aGUgQm9icyB3aWxsIHVzZS4gSXQgbXVzdCBiZSBwYXJ0IG9mIHRoZSBCbGl0dGVyIFRleHR1cmUuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt2aXNpYmxlPXRydWVdIC0gU2hvdWxkIHRoZSBjcmVhdGVkIEJvYiByZW5kZXIgb3Igbm90P1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5Cb2JbXX0gQW4gYXJyYXkgb2YgQm9iIG9iamVjdHMgdGhhdCB3ZXJlIGNyZWF0ZWQuXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZUZyb21DYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBxdWFudGl0eSwgZnJhbWUsIHZpc2libGUpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGJvYnMgPSB0aGlzLmNyZWF0ZU11bHRpcGxlKHF1YW50aXR5LCBmcmFtZSwgdmlzaWJsZSk7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm9icy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBib2IgPSBib2JzW2ldO1xyXG5cclxuICAgICAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzLCBib2IsIGkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGJvYnM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBtdWx0aXBsZSBCb2JzIGluIG9uZSBjYWxsLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBhbW91bnQgY3JlYXRlZCBpcyBjb250cm9sbGVkIGJ5IGEgY29tYmluYXRpb24gb2YgdGhlIGBxdWFudGl0eWAgYXJndW1lbnQgYW5kIHRoZSBudW1iZXIgb2YgZnJhbWVzIHByb3ZpZGVkLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBxdWFudGl0eSBpcyBzZXQgdG8gMTAgYW5kIHlvdSBwcm92aWRlIDIgZnJhbWVzLCB0aGVuIDIwIEJvYnMgd2lsbCBiZSBjcmVhdGVkLiAxMCB3aXRoIHRoZSBmaXJzdFxyXG4gICAgICogZnJhbWUgYW5kIDEwIHdpdGggdGhlIHNlY29uZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5CbGl0dGVyI2NyZWF0ZU11bHRpcGxlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHF1YW50aXR5IC0gVGhlIHF1YW50aXR5IG9mIEJvYiBvYmplY3RzIHRvIGNyZWF0ZS5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyfFBoYXNlci5UZXh0dXJlcy5GcmFtZXxzdHJpbmdbXXxpbnRlZ2VyW118UGhhc2VyLlRleHR1cmVzLkZyYW1lW10pfSBbZnJhbWVdIC0gVGhlIEZyYW1lIHRoZSBCb2JzIHdpbGwgdXNlLiBJdCBtdXN0IGJlIHBhcnQgb2YgdGhlIEJsaXR0ZXIgVGV4dHVyZS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Zpc2libGU9dHJ1ZV0gLSBTaG91bGQgdGhlIGNyZWF0ZWQgQm9iIHJlbmRlciBvciBub3Q/XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkJvYltdfSBBbiBhcnJheSBvZiBCb2Igb2JqZWN0cyB0aGF0IHdlcmUgY3JlYXRlZC5cclxuICAgICAqL1xyXG4gICAgY3JlYXRlTXVsdGlwbGU6IGZ1bmN0aW9uIChxdWFudGl0eSwgZnJhbWUsIHZpc2libGUpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGZyYW1lID09PSB1bmRlZmluZWQpIHsgZnJhbWUgPSB0aGlzLmZyYW1lLm5hbWU7IH1cclxuICAgICAgICBpZiAodmlzaWJsZSA9PT0gdW5kZWZpbmVkKSB7IHZpc2libGUgPSB0cnVlOyB9XHJcblxyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShmcmFtZSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBmcmFtZSA9IFsgZnJhbWUgXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBib2JzID0gW107XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuXHJcbiAgICAgICAgZnJhbWUuZm9yRWFjaChmdW5jdGlvbiAoc2luZ2xlRnJhbWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1YW50aXR5OyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGJvYnMucHVzaChfdGhpcy5jcmVhdGUoMCwgMCwgc2luZ2xlRnJhbWUsIHZpc2libGUpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gYm9icztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3MgaWYgdGhlIGdpdmVuIGNoaWxkIGNhbiByZW5kZXIgb3Igbm90LCBieSBjaGVja2luZyBpdHMgYHZpc2libGVgIGFuZCBgYWxwaGFgIHZhbHVlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5CbGl0dGVyI2NoaWxkQ2FuUmVuZGVyXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Cb2J9IGNoaWxkIC0gVGhlIEJvYiB0byBjaGVjayBmb3IgcmVuZGVyaW5nLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBnaXZlbiBjaGlsZCBjYW4gcmVuZGVyLCBvdGhlcndpc2UgYGZhbHNlYC5cclxuICAgICAqL1xyXG4gICAgY2hpbGRDYW5SZW5kZXI6IGZ1bmN0aW9uIChjaGlsZClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gKGNoaWxkLnZpc2libGUgJiYgY2hpbGQuYWxwaGEgPiAwKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIEJvYnMgdG8gYmUgcmVuZGVyZWQuXHJcbiAgICAgKiBJZiB0aGUgQmxpdHRlciBpcyBkaXJ0eSB0aGVuIGEgbmV3IGxpc3QgaXMgZ2VuZXJhdGVkIGFuZCBzdG9yZWQgaW4gYHJlbmRlckxpc3RgLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkJsaXR0ZXIjZ2V0UmVuZGVyTGlzdFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkJvYltdfSBBbiBhcnJheSBvZiBCb2Igb2JqZWN0cyB0aGF0IHdpbGwgYmUgcmVuZGVyZWQgdGhpcyBmcmFtZS5cclxuICAgICAqL1xyXG4gICAgZ2V0UmVuZGVyTGlzdDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5kaXJ0eSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyTGlzdCA9IHRoaXMuY2hpbGRyZW4ubGlzdC5maWx0ZXIodGhpcy5jaGlsZENhblJlbmRlciwgdGhpcyk7XHJcbiAgICAgICAgICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlckxpc3Q7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhbGwgQm9icyBmcm9tIHRoZSBjaGlsZHJlbiBMaXN0IGFuZCBjbGVhcnMgdGhlIGRpcnR5IGZsYWcuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQmxpdHRlciNjbGVhclxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGNsZWFyOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4ucmVtb3ZlQWxsKCk7XHJcbiAgICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgZGVzdHJveSBoYW5kbGVyLCBjYWxsZWQgYXMgcGFydCBvZiB0aGUgZGVzdHJveSBwcm9jZXNzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkJsaXR0ZXIjcHJlRGVzdHJveVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHNpbmNlIDMuOS4wXHJcbiAgICAgKi9cclxuICAgIHByZURlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5kZXN0cm95KCk7XHJcblxyXG4gICAgICAgIHRoaXMucmVuZGVyTGlzdCA9IFtdO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEJsaXR0ZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlcnMgdGhpcyBHYW1lIE9iamVjdCB3aXRoIHRoZSBDYW52YXMgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5CbGl0dGVyI3JlbmRlckNhbnZhc1xyXG4gKiBAc2luY2UgMy4wLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBDYW52YXMgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkJsaXR0ZXJ9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICovXHJcbnZhciBCbGl0dGVyQ2FudmFzUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB2YXIgbGlzdCA9IHNyYy5nZXRSZW5kZXJMaXN0KCk7XHJcblxyXG4gICAgaWYgKGxpc3QubGVuZ3RoID09PSAwKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgY3R4ID0gcmVuZGVyZXIuY3VycmVudENvbnRleHQ7XHJcblxyXG4gICAgdmFyIGFscGhhID0gY2FtZXJhLmFscGhhICogc3JjLmFscGhhO1xyXG5cclxuICAgIGlmIChhbHBoYSA9PT0gMClcclxuICAgIHtcclxuICAgICAgICAvLyAgTm90aGluZyB0byBzZWUsIHNvIGFib3J0IGVhcmx5XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBCbGVuZCBNb2RlICsgU2NhbGUgTW9kZVxyXG4gICAgY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9IHJlbmRlcmVyLmJsZW5kTW9kZXNbc3JjLmJsZW5kTW9kZV07XHJcblxyXG4gICAgY3R4LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9ICEoIXJlbmRlcmVyLmFudGlhbGlhcyB8fCBzcmMuZnJhbWUuc291cmNlLnNjYWxlTW9kZSk7XHJcblxyXG4gICAgdmFyIGNhbWVyYVNjcm9sbFggPSBzcmMueCAtIGNhbWVyYS5zY3JvbGxYICogc3JjLnNjcm9sbEZhY3Rvclg7XHJcbiAgICB2YXIgY2FtZXJhU2Nyb2xsWSA9IHNyYy55IC0gY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWTtcclxuXHJcbiAgICBjdHguc2F2ZSgpO1xyXG5cclxuICAgIGlmIChwYXJlbnRNYXRyaXgpXHJcbiAgICB7XHJcbiAgICAgICAgcGFyZW50TWF0cml4LmNvcHlUb0NvbnRleHQoY3R4KTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgcm91bmRQaXhlbHMgPSBjYW1lcmEucm91bmRQaXhlbHM7XHJcblxyXG4gICAgLy8gIFJlbmRlciBib2JzXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGJvYiA9IGxpc3RbaV07XHJcbiAgICAgICAgdmFyIGZsaXAgPSAoYm9iLmZsaXBYIHx8IGJvYi5mbGlwWSk7XHJcbiAgICAgICAgdmFyIGZyYW1lID0gYm9iLmZyYW1lO1xyXG4gICAgICAgIHZhciBjZCA9IGZyYW1lLmNhbnZhc0RhdGE7XHJcbiAgICAgICAgdmFyIGR4ID0gZnJhbWUueDtcclxuICAgICAgICB2YXIgZHkgPSBmcmFtZS55O1xyXG4gICAgICAgIHZhciBmeCA9IDE7XHJcbiAgICAgICAgdmFyIGZ5ID0gMTtcclxuXHJcbiAgICAgICAgdmFyIGJvYkFscGhhID0gYm9iLmFscGhhICogYWxwaGE7XHJcblxyXG4gICAgICAgIGlmIChib2JBbHBoYSA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY3R4Lmdsb2JhbEFscGhhID0gYm9iQWxwaGE7XHJcbiAgICBcclxuICAgICAgICBpZiAoIWZsaXApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAocm91bmRQaXhlbHMpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGR4ID0gTWF0aC5yb3VuZChkeCk7XHJcbiAgICAgICAgICAgICAgICBkeSA9IE1hdGgucm91bmQoZHkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjdHguZHJhd0ltYWdlKFxyXG4gICAgICAgICAgICAgICAgZnJhbWUuc291cmNlLmltYWdlLFxyXG4gICAgICAgICAgICAgICAgY2QueCxcclxuICAgICAgICAgICAgICAgIGNkLnksXHJcbiAgICAgICAgICAgICAgICBjZC53aWR0aCxcclxuICAgICAgICAgICAgICAgIGNkLmhlaWdodCxcclxuICAgICAgICAgICAgICAgIGR4ICsgYm9iLnggKyBjYW1lcmFTY3JvbGxYLFxyXG4gICAgICAgICAgICAgICAgZHkgKyBib2IueSArIGNhbWVyYVNjcm9sbFksXHJcbiAgICAgICAgICAgICAgICBjZC53aWR0aCxcclxuICAgICAgICAgICAgICAgIGNkLmhlaWdodFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoYm9iLmZsaXBYKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBmeCA9IC0xO1xyXG4gICAgICAgICAgICAgICAgZHggLT0gY2Qud2lkdGg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChib2IuZmxpcFkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGZ5ID0gLTE7XHJcbiAgICAgICAgICAgICAgICBkeSAtPSBjZC5oZWlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGN0eC5zYXZlKCk7XHJcbiAgICAgICAgICAgIGN0eC50cmFuc2xhdGUoYm9iLnggKyBjYW1lcmFTY3JvbGxYLCBib2IueSArIGNhbWVyYVNjcm9sbFkpO1xyXG4gICAgICAgICAgICBjdHguc2NhbGUoZngsIGZ5KTtcclxuICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShmcmFtZS5zb3VyY2UuaW1hZ2UsIGNkLngsIGNkLnksIGNkLndpZHRoLCBjZC5oZWlnaHQsIGR4LCBkeSwgY2Qud2lkdGgsIGNkLmhlaWdodCk7XHJcbiAgICAgICAgICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjdHgucmVzdG9yZSgpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBCbGl0dGVyQ2FudmFzUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEJsaXR0ZXIgPSByZXF1aXJlKCcuL0JsaXR0ZXInKTtcclxudmFyIEJ1aWxkR2FtZU9iamVjdCA9IHJlcXVpcmUoJy4uL0J1aWxkR2FtZU9iamVjdCcpO1xyXG52YXIgR2FtZU9iamVjdENyZWF0b3IgPSByZXF1aXJlKCcuLi9HYW1lT2JqZWN0Q3JlYXRvcicpO1xyXG52YXIgR2V0QWR2YW5jZWRWYWx1ZSA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9HZXRBZHZhbmNlZFZhbHVlJyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBCbGl0dGVyIEdhbWUgT2JqZWN0IGFuZCByZXR1cm5zIGl0LlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBCbGl0dGVyIEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Q3JlYXRvciNibGl0dGVyXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge29iamVjdH0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRoaXMgR2FtZSBPYmplY3Qgd2lsbCB1c2UgdG8gY3JlYXRlIGl0c2VsZi5cclxuICogQHBhcmFtIHtib29sZWFufSBbYWRkVG9TY2VuZV0gLSBBZGQgdGhpcyBHYW1lIE9iamVjdCB0byB0aGUgU2NlbmUgYWZ0ZXIgY3JlYXRpbmcgaXQ/IElmIHNldCB0aGlzIGFyZ3VtZW50IG92ZXJyaWRlcyB0aGUgYGFkZGAgcHJvcGVydHkgaW4gdGhlIGNvbmZpZyBvYmplY3QuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5CbGl0dGVyfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RDcmVhdG9yLnJlZ2lzdGVyKCdibGl0dGVyJywgZnVuY3Rpb24gKGNvbmZpZywgYWRkVG9TY2VuZSlcclxue1xyXG4gICAgaWYgKGNvbmZpZyA9PT0gdW5kZWZpbmVkKSB7IGNvbmZpZyA9IHt9OyB9XHJcblxyXG4gICAgdmFyIGtleSA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAna2V5JywgbnVsbCk7XHJcbiAgICB2YXIgZnJhbWUgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ2ZyYW1lJywgbnVsbCk7XHJcblxyXG4gICAgdmFyIGJsaXR0ZXIgPSBuZXcgQmxpdHRlcih0aGlzLnNjZW5lLCAwLCAwLCBrZXksIGZyYW1lKTtcclxuXHJcbiAgICBpZiAoYWRkVG9TY2VuZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAge1xyXG4gICAgICAgIGNvbmZpZy5hZGQgPSBhZGRUb1NjZW5lO1xyXG4gICAgfVxyXG5cclxuICAgIEJ1aWxkR2FtZU9iamVjdCh0aGlzLnNjZW5lLCBibGl0dGVyLCBjb25maWcpO1xyXG5cclxuICAgIHJldHVybiBibGl0dGVyO1xyXG59KTtcclxuXHJcbi8vICBXaGVuIHJlZ2lzdGVyaW5nIGEgZmFjdG9yeSBmdW5jdGlvbiAndGhpcycgcmVmZXJzIHRvIHRoZSBHYW1lT2JqZWN0Q3JlYXRvciBjb250ZXh0LlxyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBCbGl0dGVyID0gcmVxdWlyZSgnLi9CbGl0dGVyJyk7XHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBCbGl0dGVyIEdhbWUgT2JqZWN0IGFuZCBhZGRzIGl0IHRvIHRoZSBTY2VuZS5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgQmxpdHRlciBHYW1lIE9iamVjdCBoYXMgYmVlbiBidWlsdCBpbnRvIFBoYXNlci5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjYmxpdHRlclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBwb3NpdGlvbiBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgcG9zaXRpb24gb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSBvZiB0aGUgVGV4dHVyZSB0aGUgQmxpdHRlciBvYmplY3Qgd2lsbCB1c2UuXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW2ZyYW1lXSAtIFRoZSBkZWZhdWx0IEZyYW1lIGNoaWxkcmVuIG9mIHRoZSBCbGl0dGVyIHdpbGwgdXNlLlxyXG4gKiBcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkJsaXR0ZXJ9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuR2FtZU9iamVjdEZhY3RvcnkucmVnaXN0ZXIoJ2JsaXR0ZXInLCBmdW5jdGlvbiAoeCwgeSwga2V5LCBmcmFtZSlcclxue1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUxpc3QuYWRkKG5ldyBCbGl0dGVyKHRoaXMuc2NlbmUsIHgsIHksIGtleSwgZnJhbWUpKTtcclxufSk7XHJcblxyXG4vLyAgV2hlbiByZWdpc3RlcmluZyBhIGZhY3RvcnkgZnVuY3Rpb24gJ3RoaXMnIHJlZmVycyB0byB0aGUgR2FtZU9iamVjdEZhY3RvcnkgY29udGV4dC5cclxuLy8gIFxyXG4vLyAgVGhlcmUgYXJlIHNldmVyYWwgcHJvcGVydGllcyBhdmFpbGFibGUgdG8gdXNlOlxyXG4vLyAgXHJcbi8vICB0aGlzLnNjZW5lIC0gYSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lIHRoYXQgb3ducyB0aGUgR2FtZU9iamVjdEZhY3RvcnlcclxuLy8gIHRoaXMuZGlzcGxheUxpc3QgLSBhIHJlZmVyZW5jZSB0byB0aGUgRGlzcGxheSBMaXN0IHRoZSBTY2VuZSBvd25zXHJcbi8vICB0aGlzLnVwZGF0ZUxpc3QgLSBhIHJlZmVyZW5jZSB0byB0aGUgVXBkYXRlIExpc3QgdGhlIFNjZW5lIG93bnNcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuLi8uLi91dGlscy9OT09QJyk7XHJcbnZhciByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuLi8uLi91dGlscy9OT09QJyk7XHJcblxyXG5pZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4vQmxpdHRlcldlYkdMUmVuZGVyZXInKTtcclxufVxyXG5cclxuaWYgKHR5cGVvZiBDQU5WQVNfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4vQmxpdHRlckNhbnZhc1JlbmRlcmVyJyk7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIHJlbmRlcldlYkdMOiByZW5kZXJXZWJHTCxcclxuICAgIHJlbmRlckNhbnZhczogcmVuZGVyQ2FudmFzXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBVdGlscyA9IHJlcXVpcmUoJy4uLy4uL3JlbmRlcmVyL3dlYmdsL1V0aWxzJyk7XHJcblxyXG4vKipcclxuICogUmVuZGVycyB0aGlzIEdhbWUgT2JqZWN0IHdpdGggdGhlIFdlYkdMIFJlbmRlcmVyIHRvIHRoZSBnaXZlbiBDYW1lcmEuXHJcbiAqIFRoZSBvYmplY3Qgd2lsbCBub3QgcmVuZGVyIGlmIGFueSBvZiBpdHMgcmVuZGVyRmxhZ3MgYXJlIHNldCBvciBpdCBpcyBiZWluZyBhY3RpdmVseSBmaWx0ZXJlZCBvdXQgYnkgdGhlIENhbWVyYS5cclxuICogVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuIEl0IGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBvZiB0aGUgUmVuZGVyIG1vZHVsZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQmxpdHRlciNyZW5kZXJXZWJHTFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xSZW5kZXJlcn0gcmVuZGVyZXIgLSBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBhY3RpdmUgV2ViR0wgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkJsaXR0ZXJ9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICovXHJcbnZhciBCbGl0dGVyV2ViR0xSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBsaXN0ID0gc3JjLmdldFJlbmRlckxpc3QoKTtcclxuXHJcbiAgICBpZiAobGlzdC5sZW5ndGggPT09IDApXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBwaXBlbGluZSA9IHRoaXMucGlwZWxpbmU7XHJcblxyXG4gICAgcmVuZGVyZXIuc2V0UGlwZWxpbmUocGlwZWxpbmUsIHNyYyk7XHJcblxyXG4gICAgdmFyIGNhbWVyYVNjcm9sbFggPSBjYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYO1xyXG4gICAgdmFyIGNhbWVyYVNjcm9sbFkgPSBjYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZO1xyXG5cclxuICAgIHZhciBjYWxjTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgxO1xyXG5cclxuICAgIGNhbGNNYXRyaXguY29weUZyb20oY2FtZXJhLm1hdHJpeCk7XHJcblxyXG4gICAgaWYgKHBhcmVudE1hdHJpeClcclxuICAgIHtcclxuICAgICAgICBjYWxjTWF0cml4Lm11bHRpcGx5V2l0aE9mZnNldChwYXJlbnRNYXRyaXgsIC1jYW1lcmFTY3JvbGxYLCAtY2FtZXJhU2Nyb2xsWSk7XHJcblxyXG4gICAgICAgIGNhbWVyYVNjcm9sbFggPSAwO1xyXG4gICAgICAgIGNhbWVyYVNjcm9sbFkgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBibGl0dGVyWCA9IHNyYy54IC0gY2FtZXJhU2Nyb2xsWDtcclxuICAgIHZhciBibGl0dGVyWSA9IHNyYy55IC0gY2FtZXJhU2Nyb2xsWTtcclxuICAgIHZhciBwcmV2VGV4dHVyZVNvdXJjZUluZGV4ID0gLTE7XHJcbiAgICB2YXIgdGludEVmZmVjdCA9IGZhbHNlO1xyXG4gICAgdmFyIGFscGhhID0gY2FtZXJhLmFscGhhICogc3JjLmFscGhhO1xyXG4gICAgdmFyIHJvdW5kUGl4ZWxzID0gY2FtZXJhLnJvdW5kUGl4ZWxzO1xyXG5cclxuICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBsaXN0Lmxlbmd0aDsgaW5kZXgrKylcclxuICAgIHtcclxuICAgICAgICB2YXIgYm9iID0gbGlzdFtpbmRleF07XHJcbiAgICAgICAgdmFyIGZyYW1lID0gYm9iLmZyYW1lO1xyXG4gICAgICAgIHZhciBib2JBbHBoYSA9IGJvYi5hbHBoYSAqIGFscGhhO1xyXG5cclxuICAgICAgICBpZiAoYm9iQWxwaGEgPT09IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciB3aWR0aCA9IGZyYW1lLndpZHRoO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSBmcmFtZS5oZWlnaHQ7XHJcblxyXG4gICAgICAgIHZhciB4ID0gYmxpdHRlclggKyBib2IueCArIGZyYW1lLng7XHJcbiAgICAgICAgdmFyIHkgPSBibGl0dGVyWSArIGJvYi55ICsgZnJhbWUueTtcclxuXHJcbiAgICAgICAgaWYgKGJvYi5mbGlwWClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHdpZHRoICo9IC0xO1xyXG4gICAgICAgICAgICB4ICs9IGZyYW1lLndpZHRoO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGJvYi5mbGlwWSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGhlaWdodCAqPSAtMTtcclxuICAgICAgICAgICAgeSArPSBmcmFtZS5oZWlnaHQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgeHcgPSB4ICsgd2lkdGg7XHJcbiAgICAgICAgdmFyIHloID0geSArIGhlaWdodDtcclxuXHJcbiAgICAgICAgdmFyIHR4MCA9IGNhbGNNYXRyaXguZ2V0WCh4LCB5KTtcclxuICAgICAgICB2YXIgdHkwID0gY2FsY01hdHJpeC5nZXRZKHgsIHkpO1xyXG5cclxuICAgICAgICB2YXIgdHgxID0gY2FsY01hdHJpeC5nZXRYKHh3LCB5aCk7XHJcbiAgICAgICAgdmFyIHR5MSA9IGNhbGNNYXRyaXguZ2V0WSh4dywgeWgpO1xyXG5cclxuICAgICAgICB2YXIgdGludCA9IFV0aWxzLmdldFRpbnRBcHBlbmRGbG9hdEFscGhhKGJvYi50aW50LCBib2JBbHBoYSk7XHJcblxyXG4gICAgICAgIC8vICBCaW5kIHRleHR1cmUgb25seSBpZiB0aGUgVGV4dHVyZSBTb3VyY2UgaXMgZGlmZmVyZW50IGZyb20gYmVmb3JlXHJcbiAgICAgICAgaWYgKGZyYW1lLnNvdXJjZUluZGV4ICE9PSBwcmV2VGV4dHVyZVNvdXJjZUluZGV4KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcGlwZWxpbmUuc2V0VGV4dHVyZTJEKGZyYW1lLmdsVGV4dHVyZSwgMCk7XHJcblxyXG4gICAgICAgICAgICBwcmV2VGV4dHVyZVNvdXJjZUluZGV4ID0gZnJhbWUuc291cmNlSW5kZXg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocm91bmRQaXhlbHMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0eDAgPSBNYXRoLnJvdW5kKHR4MCk7XHJcbiAgICAgICAgICAgIHR5MCA9IE1hdGgucm91bmQodHkwKTtcclxuXHJcbiAgICAgICAgICAgIHR4MSA9IE1hdGgucm91bmQodHgxKTtcclxuICAgICAgICAgICAgdHkxID0gTWF0aC5yb3VuZCh0eTEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gIFRMIHgveSwgQkwgeC95LCBCUiB4L3ksIFRSIHgveVxyXG4gICAgICAgIGlmIChwaXBlbGluZS5iYXRjaFF1YWQodHgwLCB0eTAsIHR4MCwgdHkxLCB0eDEsIHR5MSwgdHgxLCB0eTAsIGZyYW1lLnUwLCBmcmFtZS52MCwgZnJhbWUudTEsIGZyYW1lLnYxLCB0aW50LCB0aW50LCB0aW50LCB0aW50LCB0aW50RWZmZWN0LCBmcmFtZS5nbFRleHR1cmUsIDApKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJldlRleHR1cmVTb3VyY2VJbmRleCA9IC0xO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQmxpdHRlcldlYkdMUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEZyYW1lID0gcmVxdWlyZSgnLi4vLi4vdGV4dHVyZXMvRnJhbWUnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgQm9iIEdhbWUgT2JqZWN0LlxyXG4gKlxyXG4gKiBBIEJvYiBiZWxvbmdzIHRvIGEgQmxpdHRlciBHYW1lIE9iamVjdC4gVGhlIEJsaXR0ZXIgaXMgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIGFuZCByZW5kZXJpbmcgdGhpcyBvYmplY3QuXHJcbiAqXHJcbiAqIEEgQm9iIGhhcyBhIHBvc2l0aW9uLCBhbHBoYSB2YWx1ZSBhbmQgYSBmcmFtZSBmcm9tIGEgdGV4dHVyZSB0aGF0IGl0IHVzZXMgdG8gcmVuZGVyIHdpdGguIFlvdSBjYW4gYWxzbyB0b2dnbGVcclxuICogdGhlIGZsaXBwZWQgYW5kIHZpc2libGUgc3RhdGUgb2YgdGhlIEJvYi4gVGhlIEZyYW1lIHRoZSBCb2IgdXNlcyB0byByZW5kZXIgY2FuIGJlIGNoYW5nZWQgZHluYW1pY2FsbHksIGJ1dCBpdFxyXG4gKiBtdXN0IGJlIGEgRnJhbWUgd2l0aGluIHRoZSBUZXh0dXJlIHVzZWQgYnkgdGhlIHBhcmVudCBCbGl0dGVyLlxyXG4gKlxyXG4gKiBCb2IgcG9zaXRpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgQmxpdHRlciBwYXJlbnQuIFNvIGlmIHlvdSBtb3ZlIHRoZSBCbGl0dGVyIHBhcmVudCwgYWxsIEJvYiBjaGlsZHJlbiB3aWxsXHJcbiAqIGhhdmUgdGhlaXIgcG9zaXRpb25zIGltcGFjdGVkIGJ5IHRoaXMgY2hhbmdlIGFzIHdlbGwuXHJcbiAqXHJcbiAqIFlvdSBjYW4gbWFuaXB1bGF0ZSBCb2Igb2JqZWN0cyBkaXJlY3RseSBmcm9tIHlvdXIgZ2FtZSBjb2RlLCBidXQgdGhlIGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbiBvZiB0aGVtIHNob3VsZCBiZVxyXG4gKiBoYW5kbGVkIHZpYSB0aGUgQmxpdHRlciBwYXJlbnQuXHJcbiAqXHJcbiAqIEBjbGFzcyBCb2JcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkJsaXR0ZXJ9IGJsaXR0ZXIgLSBUaGUgcGFyZW50IEJsaXR0ZXIgb2JqZWN0IGlzIHJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyB0aGlzIEJvYi5cclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZCwgcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBCbGl0dGVyIHBvc2l0aW9uLlxyXG4gKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZCwgcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBCbGl0dGVyIHBvc2l0aW9uLlxyXG4gKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcil9IGZyYW1lIC0gVGhlIEZyYW1lIHRoaXMgQm9iIHdpbGwgcmVuZGVyIHdpdGgsIGFzIGRlZmluZWQgaW4gdGhlIFRleHR1cmUgdGhlIHBhcmVudCBCbGl0dGVyIGlzIHVzaW5nLlxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHZpc2libGUgLSBTaG91bGQgdGhlIEJvYiByZW5kZXIgdmlzaWJsZSBvciBub3QgdG8gc3RhcnQgd2l0aD9cclxuICovXHJcbnZhciBCb2IgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gQm9iIChibGl0dGVyLCB4LCB5LCBmcmFtZSwgdmlzaWJsZSlcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgQmxpdHRlciBvYmplY3QgdGhhdCB0aGlzIEJvYiBiZWxvbmdzIHRvLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkJvYiNwYXJlbnRcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLkJsaXR0ZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wYXJlbnQgPSBibGl0dGVyO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgeCBwb3NpdGlvbiBvZiB0aGlzIEJvYiwgcmVsYXRpdmUgdG8gdGhlIHggcG9zaXRpb24gb2YgdGhlIEJsaXR0ZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQm9iI3hcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMueCA9IHg7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB5IHBvc2l0aW9uIG9mIHRoaXMgQm9iLCByZWxhdGl2ZSB0byB0aGUgeSBwb3NpdGlvbiBvZiB0aGUgQmxpdHRlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Cb2IjeVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy55ID0geTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGZyYW1lIHRoYXQgdGhlIEJvYiB1c2VzIHRvIHJlbmRlciB3aXRoLlxyXG4gICAgICAgICAqIFRvIGNoYW5nZSB0aGUgZnJhbWUgdXNlIHRoZSBgQm9iLnNldEZyYW1lYCBtZXRob2QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQm9iI2ZyYW1lXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5UZXh0dXJlcy5GcmFtZX1cclxuICAgICAgICAgKiBAcHJvdGVjdGVkXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5mcmFtZSA9IGZyYW1lO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIGJsYW5rIG9iamVjdCB3aGljaCBjYW4gYmUgdXNlZCB0byBzdG9yZSBkYXRhIHJlbGF0ZWQgdG8gdGhpcyBCb2IgaW4uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQm9iI2RhdGFcclxuICAgICAgICAgKiBAdHlwZSB7b2JqZWN0fVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHt9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kYXRhID0ge307XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB0aW50IHZhbHVlIG9mIHRoaXMgQm9iLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkJvYiN0aW50XHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAweGZmZmZmZlxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIwLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnRpbnQgPSAweGZmZmZmZjtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHZpc2libGUgc3RhdGUgb2YgdGhpcyBCb2IuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQm9iI192aXNpYmxlXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl92aXNpYmxlID0gdmlzaWJsZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGFscGhhIHZhbHVlIG9mIHRoaXMgQm9iLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkJvYiNfYWxwaGFcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQGRlZmF1bHQgMVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2FscGhhID0gMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGhvcml6b250YWxseSBmbGlwcGVkIHN0YXRlIG9mIHRoZSBCb2IuXHJcbiAgICAgICAgICogQSBCb2IgdGhhdCBpcyBmbGlwcGVkIGhvcml6b250YWxseSB3aWxsIHJlbmRlciBpbnZlcnNlZCBvbiB0aGUgaG9yaXpvbnRhbCBheGlzLlxyXG4gICAgICAgICAqIEZsaXBwaW5nIGFsd2F5cyB0YWtlcyBwbGFjZSBmcm9tIHRoZSBtaWRkbGUgb2YgdGhlIHRleHR1cmUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQm9iI2ZsaXBYXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5mbGlwWCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdmVydGljYWxseSBmbGlwcGVkIHN0YXRlIG9mIHRoZSBCb2IuXHJcbiAgICAgICAgICogQSBCb2IgdGhhdCBpcyBmbGlwcGVkIHZlcnRpY2FsbHkgd2lsbCByZW5kZXIgaW52ZXJzZWQgb24gdGhlIHZlcnRpY2FsIGF4aXMgKGkuZS4gdXBzaWRlIGRvd24pXHJcbiAgICAgICAgICogRmxpcHBpbmcgYWx3YXlzIHRha2VzIHBsYWNlIGZyb20gdGhlIG1pZGRsZSBvZiB0aGUgdGV4dHVyZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Cb2IjZmxpcFlcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZsaXBZID0gZmFsc2U7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hhbmdlcyB0aGUgVGV4dHVyZSBGcmFtZSBiZWluZyB1c2VkIGJ5IHRoaXMgQm9iLlxyXG4gICAgICogVGhlIGZyYW1lIG11c3QgYmUgcGFydCBvZiB0aGUgVGV4dHVyZSB0aGUgcGFyZW50IEJsaXR0ZXIgaXMgdXNpbmcuXHJcbiAgICAgKiBJZiBubyB2YWx1ZSBpcyBnaXZlbiBpdCB3aWxsIHVzZSB0aGUgZGVmYXVsdCBmcmFtZSBvZiB0aGUgQmxpdHRlciBwYXJlbnQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQm9iI3NldEZyYW1lXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcnxQaGFzZXIuVGV4dHVyZXMuRnJhbWUpfSBbZnJhbWVdIC0gVGhlIGZyYW1lIHRvIGJlIHVzZWQgZHVyaW5nIHJlbmRlcmluZy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEJvYiBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0RnJhbWU6IGZ1bmN0aW9uIChmcmFtZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoZnJhbWUgPT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZnJhbWUgPSB0aGlzLnBhcmVudC5mcmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZnJhbWUgaW5zdGFuY2VvZiBGcmFtZSAmJiBmcmFtZS50ZXh0dXJlID09PSB0aGlzLnBhcmVudC50ZXh0dXJlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5mcmFtZSA9IGZyYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmZyYW1lID0gdGhpcy5wYXJlbnQudGV4dHVyZS5nZXQoZnJhbWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzZXRzIHRoZSBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBmbGlwcGVkIHN0YXRlIG9mIHRoaXMgQm9iIGJhY2sgdG8gdGhlaXIgZGVmYXVsdCB1bi1mbGlwcGVkIHN0YXRlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkJvYiNyZXNldEZsaXBcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQm9iIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICByZXNldEZsaXA6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5mbGlwWCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZmxpcFkgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzZXRzIHRoaXMgQm9iLlxyXG4gICAgICpcclxuICAgICAqIENoYW5nZXMgdGhlIHBvc2l0aW9uIHRvIHRoZSB2YWx1ZXMgZ2l2ZW4sIGFuZCBvcHRpb25hbGx5IGNoYW5nZXMgdGhlIGZyYW1lLlxyXG4gICAgICpcclxuICAgICAqIEFsc28gcmVzZXRzIHRoZSBmbGlwWCBhbmQgZmxpcFkgdmFsdWVzLCBzZXRzIGFscGhhIGJhY2sgdG8gMSBhbmQgdmlzaWJsZSB0byB0cnVlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkJvYiNyZXNldFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBwb3NpdGlvbiBvZiB0aGUgQm9iLiBCb2IgY29vcmRpbmF0ZSBhcmUgcmVsYXRpdmUgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBCbGl0dGVyIG9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgcG9zaXRpb24gb2YgdGhlIEJvYi4gQm9iIGNvb3JkaW5hdGUgYXJlIHJlbGF0aXZlIHRvIHRoZSBwb3NpdGlvbiBvZiB0aGUgQmxpdHRlciBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcnxQaGFzZXIuVGV4dHVyZXMuRnJhbWUpfSBbZnJhbWVdIC0gVGhlIEZyYW1lIHRoZSBCb2Igd2lsbCB1c2UuIEl0IF9tdXN0XyBiZSBwYXJ0IG9mIHRoZSBUZXh0dXJlIHRoZSBwYXJlbnQgQmxpdHRlciBvYmplY3QgaXMgdXNpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBCb2IgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHJlc2V0OiBmdW5jdGlvbiAoeCwgeSwgZnJhbWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy54ID0geDtcclxuICAgICAgICB0aGlzLnkgPSB5O1xyXG5cclxuICAgICAgICB0aGlzLmZsaXBYID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5mbGlwWSA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLl9hbHBoYSA9IDE7XHJcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMucGFyZW50LmRpcnR5ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKGZyYW1lKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRGcmFtZShmcmFtZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGFuZ2VzIHRoZSBwb3NpdGlvbiBvZiB0aGlzIEJvYiB0byB0aGUgdmFsdWVzIGdpdmVuLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkJvYiNzZXRQb3NpdGlvblxyXG4gICAgICogQHNpbmNlIDMuMjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggcG9zaXRpb24gb2YgdGhlIEJvYi4gQm9iIGNvb3JkaW5hdGUgYXJlIHJlbGF0aXZlIHRvIHRoZSBwb3NpdGlvbiBvZiB0aGUgQmxpdHRlciBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB5IHBvc2l0aW9uIG9mIHRoZSBCb2IuIEJvYiBjb29yZGluYXRlIGFyZSByZWxhdGl2ZSB0byB0aGUgcG9zaXRpb24gb2YgdGhlIEJsaXR0ZXIgb2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQm9iIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRQb3NpdGlvbjogZnVuY3Rpb24gKHgsIHkpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy54ID0geDtcclxuICAgICAgICB0aGlzLnkgPSB5O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBob3Jpem9udGFsIGZsaXBwZWQgc3RhdGUgb2YgdGhpcyBCb2IuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQm9iI3NldEZsaXBYXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbHVlIC0gVGhlIGZsaXBwZWQgc3RhdGUuIGBmYWxzZWAgZm9yIG5vIGZsaXAsIG9yIGB0cnVlYCB0byBiZSBmbGlwcGVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQm9iIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRGbGlwWDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZmxpcFggPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdmVydGljYWwgZmxpcHBlZCBzdGF0ZSBvZiB0aGlzIEJvYi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Cb2Ijc2V0RmxpcFlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gdmFsdWUgLSBUaGUgZmxpcHBlZCBzdGF0ZS4gYGZhbHNlYCBmb3Igbm8gZmxpcCwgb3IgYHRydWVgIHRvIGJlIGZsaXBwZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBCb2IgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldEZsaXBZOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5mbGlwWSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBmbGlwcGVkIHN0YXRlIG9mIHRoaXMgQm9iLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkJvYiNzZXRGbGlwXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHggLSBUaGUgaG9yaXpvbnRhbCBmbGlwcGVkIHN0YXRlLiBgZmFsc2VgIGZvciBubyBmbGlwLCBvciBgdHJ1ZWAgdG8gYmUgZmxpcHBlZC5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0geSAtIFRoZSBob3Jpem9udGFsIGZsaXBwZWQgc3RhdGUuIGBmYWxzZWAgZm9yIG5vIGZsaXAsIG9yIGB0cnVlYCB0byBiZSBmbGlwcGVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQm9iIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRGbGlwOiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmZsaXBYID0geDtcclxuICAgICAgICB0aGlzLmZsaXBZID0geTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdmlzaWJpbGl0eSBvZiB0aGlzIEJvYi5cclxuICAgICAqIFxyXG4gICAgICogQW4gaW52aXNpYmxlIEJvYiB3aWxsIHNraXAgcmVuZGVyaW5nLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkJvYiNzZXRWaXNpYmxlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbHVlIC0gVGhlIHZpc2libGUgc3RhdGUgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQm9iIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRWaXNpYmxlOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgQWxwaGEgbGV2ZWwgb2YgdGhpcyBCb2IuIFRoZSBhbHBoYSBjb250cm9scyB0aGUgb3BhY2l0eSBvZiB0aGUgR2FtZSBPYmplY3QgYXMgaXQgcmVuZGVycy5cclxuICAgICAqIEFscGhhIHZhbHVlcyBhcmUgcHJvdmlkZWQgYXMgYSBmbG9hdCBiZXR3ZWVuIDAsIGZ1bGx5IHRyYW5zcGFyZW50LCBhbmQgMSwgZnVsbHkgb3BhcXVlLlxyXG4gICAgICogXHJcbiAgICAgKiBBIEJvYiB3aXRoIGFscGhhIDAgd2lsbCBza2lwIHJlbmRlcmluZy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Cb2Ijc2V0QWxwaGFcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBhbHBoYSB2YWx1ZSB1c2VkIGZvciB0aGlzIEJvYi4gQmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQm9iIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRBbHBoYTogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuYWxwaGEgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdGludCBvZiB0aGlzIEJvYi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Cb2Ijc2V0VGludFxyXG4gICAgICogQHNpbmNlIDMuMjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSB0aW50IHZhbHVlIHVzZWQgZm9yIHRoaXMgQm9iLiBCZXR3ZWVuIDAgYW5kIDB4ZmZmZmZmLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQm9iIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRUaW50OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy50aW50ID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc3Ryb3lzIHRoaXMgQm9iIGluc3RhbmNlLlxyXG4gICAgICogUmVtb3ZlcyBpdHNlbGYgZnJvbSB0aGUgQmxpdHRlciBhbmQgY2xlYXJzIHRoZSBwYXJlbnQsIGZyYW1lIGFuZCBkYXRhIHByb3BlcnRpZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQm9iI2Rlc3Ryb3lcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMucGFyZW50LmRpcnR5ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXJlbnQuY2hpbGRyZW4ucmVtb3ZlKHRoaXMpO1xyXG5cclxuICAgICAgICB0aGlzLnBhcmVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmZyYW1lID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IHVuZGVmaW5lZDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdmlzaWJsZSBzdGF0ZSBvZiB0aGUgQm9iLlxyXG4gICAgICogXHJcbiAgICAgKiBBbiBpbnZpc2libGUgQm9iIHdpbGwgc2tpcCByZW5kZXJpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkJvYiN2aXNpYmxlXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB2aXNpYmxlOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQuZGlydHkgfD0gKHRoaXMuX3Zpc2libGUgIT09IHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGFscGhhIHZhbHVlIG9mIHRoZSBCb2IsIGJldHdlZW4gMCBhbmQgMS5cclxuICAgICAqIFxyXG4gICAgICogQSBCb2Igd2l0aCBhbHBoYSAwIHdpbGwgc2tpcCByZW5kZXJpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkJvYiNhbHBoYVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBhbHBoYToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWxwaGE7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnBhcmVudC5kaXJ0eSB8PSAoKHRoaXMuX2FscGhhID4gMCkgIT09ICh2YWx1ZSA+IDApKTtcclxuICAgICAgICAgICAgdGhpcy5fYWxwaGEgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEJvYjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhbXAgPSByZXF1aXJlKCcuLi8uLi9tYXRoL0NsYW1wJyk7XHJcblxyXG4vLyAgYml0bWFzayBmbGFnIGZvciBHYW1lT2JqZWN0LnJlbmRlck1hc2tcclxudmFyIF9GTEFHID0gMjsgLy8gMDAxMFxyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIG1ldGhvZHMgdXNlZCBmb3Igc2V0dGluZyB0aGUgYWxwaGEgcHJvcGVydGllcyBvZiBhIEdhbWUgT2JqZWN0LlxyXG4gKiBTaG91bGQgYmUgYXBwbGllZCBhcyBhIG1peGluIGFuZCBub3QgdXNlZCBkaXJlY3RseS5cclxuICpcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICovXHJcblxyXG52YXIgQWxwaGEgPSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcml2YXRlIGludGVybmFsIHZhbHVlLiBIb2xkcyB0aGUgZ2xvYmFsIGFscGhhIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFscGhhI19hbHBoYVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAZGVmYXVsdCAxXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgX2FscGhhOiAxLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS4gSG9sZHMgdGhlIHRvcC1sZWZ0IGFscGhhIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFscGhhI19hbHBoYVRMXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBfYWxwaGFUTDogMSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByaXZhdGUgaW50ZXJuYWwgdmFsdWUuIEhvbGRzIHRoZSB0b3AtcmlnaHQgYWxwaGEgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQWxwaGEjX2FscGhhVFJcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQGRlZmF1bHQgMVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIF9hbHBoYVRSOiAxLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS4gSG9sZHMgdGhlIGJvdHRvbS1sZWZ0IGFscGhhIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFscGhhI19hbHBoYUJMXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBfYWxwaGFCTDogMSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByaXZhdGUgaW50ZXJuYWwgdmFsdWUuIEhvbGRzIHRoZSBib3R0b20tcmlnaHQgYWxwaGEgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQWxwaGEjX2FscGhhQlJcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQGRlZmF1bHQgMVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIF9hbHBoYUJSOiAxLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xlYXJzIGFsbCBhbHBoYSB2YWx1ZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogSW1tZWRpYXRlbHkgc2V0cyB0aGUgYWxwaGEgbGV2ZWxzIGJhY2sgdG8gMSAoZnVsbHkgb3BhcXVlKS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFscGhhI2NsZWFyQWxwaGFcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGNsZWFyQWxwaGE6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0QWxwaGEoMSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBBbHBoYSBsZXZlbCBvZiB0aGlzIEdhbWUgT2JqZWN0LiBUaGUgYWxwaGEgY29udHJvbHMgdGhlIG9wYWNpdHkgb2YgdGhlIEdhbWUgT2JqZWN0IGFzIGl0IHJlbmRlcnMuXHJcbiAgICAgKiBBbHBoYSB2YWx1ZXMgYXJlIHByb3ZpZGVkIGFzIGEgZmxvYXQgYmV0d2VlbiAwLCBmdWxseSB0cmFuc3BhcmVudCwgYW5kIDEsIGZ1bGx5IG9wYXF1ZS5cclxuICAgICAqXHJcbiAgICAgKiBJZiB5b3VyIGdhbWUgaXMgcnVubmluZyB1bmRlciBXZWJHTCB5b3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSBmb3VyIGRpZmZlcmVudCBhbHBoYSB2YWx1ZXMsIGVhY2ggb2Ygd2hpY2hcclxuICAgICAqIGNvcnJlc3BvbmQgdG8gdGhlIGZvdXIgY29ybmVycyBvZiB0aGUgR2FtZSBPYmplY3QuIFVuZGVyIENhbnZhcyBvbmx5IHRoZSBgdG9wTGVmdGAgdmFsdWUgZ2l2ZW4gaXMgdXNlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFscGhhI3NldEFscGhhXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3RvcExlZnQ9MV0gLSBUaGUgYWxwaGEgdmFsdWUgdXNlZCBmb3IgdGhlIHRvcC1sZWZ0IG9mIHRoZSBHYW1lIE9iamVjdC4gSWYgdGhpcyBpcyB0aGUgb25seSB2YWx1ZSBnaXZlbiBpdCdzIGFwcGxpZWQgYWNyb3NzIHRoZSB3aG9sZSBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbdG9wUmlnaHRdIC0gVGhlIGFscGhhIHZhbHVlIHVzZWQgZm9yIHRoZSB0b3AtcmlnaHQgb2YgdGhlIEdhbWUgT2JqZWN0LiBXZWJHTCBvbmx5LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtib3R0b21MZWZ0XSAtIFRoZSBhbHBoYSB2YWx1ZSB1c2VkIGZvciB0aGUgYm90dG9tLWxlZnQgb2YgdGhlIEdhbWUgT2JqZWN0LiBXZWJHTCBvbmx5LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtib3R0b21SaWdodF0gLSBUaGUgYWxwaGEgdmFsdWUgdXNlZCBmb3IgdGhlIGJvdHRvbS1yaWdodCBvZiB0aGUgR2FtZSBPYmplY3QuIFdlYkdMIG9ubHkuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0QWxwaGE6IGZ1bmN0aW9uICh0b3BMZWZ0LCB0b3BSaWdodCwgYm90dG9tTGVmdCwgYm90dG9tUmlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRvcExlZnQgPT09IHVuZGVmaW5lZCkgeyB0b3BMZWZ0ID0gMTsgfVxyXG5cclxuICAgICAgICAvLyAgVHJlYXQgYXMgaWYgdGhlcmUgaXMgb25seSBvbmUgYWxwaGEgdmFsdWUgZm9yIHRoZSB3aG9sZSBHYW1lIE9iamVjdFxyXG4gICAgICAgIGlmICh0b3BSaWdodCA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5hbHBoYSA9IHRvcExlZnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FscGhhVEwgPSBDbGFtcCh0b3BMZWZ0LCAwLCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYWxwaGFUUiA9IENsYW1wKHRvcFJpZ2h0LCAwLCAxKTtcclxuICAgICAgICAgICAgdGhpcy5fYWxwaGFCTCA9IENsYW1wKGJvdHRvbUxlZnQsIDAsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLl9hbHBoYUJSID0gQ2xhbXAoYm90dG9tUmlnaHQsIDAsIDEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGFscGhhIHZhbHVlIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBUaGlzIGlzIGEgZ2xvYmFsIHZhbHVlLCBpbXBhY3RpbmcgdGhlIGVudGlyZSBHYW1lIE9iamVjdCwgbm90IGp1c3QgYSByZWdpb24gb2YgaXQuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQWxwaGEjYWxwaGFcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgYWxwaGE6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FscGhhO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHYgPSBDbGFtcCh2YWx1ZSwgMCwgMSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hbHBoYSA9IHY7XHJcbiAgICAgICAgICAgIHRoaXMuX2FscGhhVEwgPSB2O1xyXG4gICAgICAgICAgICB0aGlzLl9hbHBoYVRSID0gdjtcclxuICAgICAgICAgICAgdGhpcy5fYWxwaGFCTCA9IHY7XHJcbiAgICAgICAgICAgIHRoaXMuX2FscGhhQlIgPSB2O1xyXG5cclxuICAgICAgICAgICAgaWYgKHYgPT09IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyRmxhZ3MgJj0gfl9GTEFHO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJGbGFncyB8PSBfRkxBRztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGFscGhhIHZhbHVlIHN0YXJ0aW5nIGZyb20gdGhlIHRvcC1sZWZ0IG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIFRoaXMgdmFsdWUgaXMgaW50ZXJwb2xhdGVkIGZyb20gdGhlIGNvcm5lciB0byB0aGUgY2VudGVyIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYSNhbHBoYVRvcExlZnRcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAd2ViZ2xPbmx5XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgYWxwaGFUb3BMZWZ0OiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hbHBoYVRMO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHYgPSBDbGFtcCh2YWx1ZSwgMCwgMSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hbHBoYVRMID0gdjtcclxuXHJcbiAgICAgICAgICAgIGlmICh2ICE9PSAwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckZsYWdzIHw9IF9GTEFHO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYWxwaGEgdmFsdWUgc3RhcnRpbmcgZnJvbSB0aGUgdG9wLXJpZ2h0IG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIFRoaXMgdmFsdWUgaXMgaW50ZXJwb2xhdGVkIGZyb20gdGhlIGNvcm5lciB0byB0aGUgY2VudGVyIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYSNhbHBoYVRvcFJpZ2h0XHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHdlYmdsT25seVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGFscGhhVG9wUmlnaHQ6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FscGhhVFI7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgdiA9IENsYW1wKHZhbHVlLCAwLCAxKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FscGhhVFIgPSB2O1xyXG5cclxuICAgICAgICAgICAgaWYgKHYgIT09IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyRmxhZ3MgfD0gX0ZMQUc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBhbHBoYSB2YWx1ZSBzdGFydGluZyBmcm9tIHRoZSBib3R0b20tbGVmdCBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBUaGlzIHZhbHVlIGlzIGludGVycG9sYXRlZCBmcm9tIHRoZSBjb3JuZXIgdG8gdGhlIGNlbnRlciBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQWxwaGEjYWxwaGFCb3R0b21MZWZ0XHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHdlYmdsT25seVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGFscGhhQm90dG9tTGVmdDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWxwaGFCTDtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciB2ID0gQ2xhbXAodmFsdWUsIDAsIDEpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWxwaGFCTCA9IHY7XHJcblxyXG4gICAgICAgICAgICBpZiAodiAhPT0gMClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJGbGFncyB8PSBfRkxBRztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGFscGhhIHZhbHVlIHN0YXJ0aW5nIGZyb20gdGhlIGJvdHRvbS1yaWdodCBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBUaGlzIHZhbHVlIGlzIGludGVycG9sYXRlZCBmcm9tIHRoZSBjb3JuZXIgdG8gdGhlIGNlbnRlciBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQWxwaGEjYWxwaGFCb3R0b21SaWdodFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEB3ZWJnbE9ubHlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBhbHBoYUJvdHRvbVJpZ2h0OiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hbHBoYUJSO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHYgPSBDbGFtcCh2YWx1ZSwgMCwgMSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hbHBoYUJSID0gdjtcclxuXHJcbiAgICAgICAgICAgIGlmICh2ICE9PSAwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckZsYWdzIHw9IF9GTEFHO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEFscGhhO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFtcCA9IHJlcXVpcmUoJy4uLy4uL21hdGgvQ2xhbXAnKTtcclxuXHJcbi8vICBiaXRtYXNrIGZsYWcgZm9yIEdhbWVPYmplY3QucmVuZGVyTWFza1xyXG52YXIgX0ZMQUcgPSAyOyAvLyAwMDEwXHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgbWV0aG9kcyB1c2VkIGZvciBzZXR0aW5nIHRoZSBhbHBoYSBwcm9wZXJ0eSBvZiBhIEdhbWUgT2JqZWN0LlxyXG4gKiBTaG91bGQgYmUgYXBwbGllZCBhcyBhIG1peGluIGFuZCBub3QgdXNlZCBkaXJlY3RseS5cclxuICpcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYVNpbmdsZVxyXG4gKiBAc2luY2UgMy4yMi4wXHJcbiAqL1xyXG5cclxudmFyIEFscGhhU2luZ2xlID0ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS4gSG9sZHMgdGhlIGdsb2JhbCBhbHBoYSB2YWx1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYVNpbmdsZSNfYWxwaGFcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQGRlZmF1bHQgMVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIF9hbHBoYTogMSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENsZWFycyBhbGwgYWxwaGEgdmFsdWVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEltbWVkaWF0ZWx5IHNldHMgdGhlIGFscGhhIGxldmVscyBiYWNrIHRvIDEgKGZ1bGx5IG9wYXF1ZSkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYVNpbmdsZSNjbGVhckFscGhhXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBjbGVhckFscGhhOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldEFscGhhKDEpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgQWxwaGEgbGV2ZWwgb2YgdGhpcyBHYW1lIE9iamVjdC4gVGhlIGFscGhhIGNvbnRyb2xzIHRoZSBvcGFjaXR5IG9mIHRoZSBHYW1lIE9iamVjdCBhcyBpdCByZW5kZXJzLlxyXG4gICAgICogQWxwaGEgdmFsdWVzIGFyZSBwcm92aWRlZCBhcyBhIGZsb2F0IGJldHdlZW4gMCwgZnVsbHkgdHJhbnNwYXJlbnQsIGFuZCAxLCBmdWxseSBvcGFxdWUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYVNpbmdsZSNzZXRBbHBoYVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt2YWx1ZT0xXSAtIFRoZSBhbHBoYSB2YWx1ZSBhcHBsaWVkIGFjcm9zcyB0aGUgd2hvbGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0QWxwaGE6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgeyB2YWx1ZSA9IDE7IH1cclxuXHJcbiAgICAgICAgdGhpcy5hbHBoYSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYWxwaGEgdmFsdWUgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIFRoaXMgaXMgYSBnbG9iYWwgdmFsdWUsIGltcGFjdGluZyB0aGUgZW50aXJlIEdhbWUgT2JqZWN0LCBub3QganVzdCBhIHJlZ2lvbiBvZiBpdC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYVNpbmdsZSNhbHBoYVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBhbHBoYToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYWxwaGE7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgdiA9IENsYW1wKHZhbHVlLCAwLCAxKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FscGhhID0gdjtcclxuXHJcbiAgICAgICAgICAgIGlmICh2ID09PSAwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckZsYWdzICY9IH5fRkxBRztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyRmxhZ3MgfD0gX0ZMQUc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQWxwaGFTaW5nbGU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEJhc2VBbmltYXRpb24gPSByZXF1aXJlKCcuLi8uLi9hbmltYXRpb25zL0FuaW1hdGlvbicpO1xyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgRXZlbnRzID0gcmVxdWlyZSgnLi4vLi4vYW5pbWF0aW9ucy9ldmVudHMnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgR2FtZSBPYmplY3QgQW5pbWF0aW9uIENvbnRyb2xsZXIuXHJcbiAqXHJcbiAqIFRoaXMgY29udHJvbGxlciBsaXZlcyBhcyBhbiBpbnN0YW5jZSB3aXRoaW4gYSBHYW1lIE9iamVjdCwgYWNjZXNzaWJsZSBhcyBgc3ByaXRlLmFuaW1zYC5cclxuICpcclxuICogQGNsYXNzIEFuaW1hdGlvblxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBwYXJlbnQgLSBUaGUgR2FtZSBPYmplY3QgdG8gd2hpY2ggdGhpcyBhbmltYXRpb24gY29udHJvbGxlciBiZWxvbmdzLlxyXG4gKi9cclxudmFyIEFuaW1hdGlvbiA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBBbmltYXRpb24gKHBhcmVudClcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgR2FtZSBPYmplY3QgdG8gd2hpY2ggdGhpcyBhbmltYXRpb24gY29udHJvbGxlciBiZWxvbmdzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI3BhcmVudFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBBbmltYXRpb24gTWFuYWdlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNhbmltYXRpb25NYW5hZ2VyXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbk1hbmFnZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5hbmltYXRpb25NYW5hZ2VyID0gcGFyZW50LnNjZW5lLnN5cy5hbmltcztcclxuXHJcbiAgICAgICAgdGhpcy5hbmltYXRpb25NYW5hZ2VyLm9uY2UoRXZlbnRzLlJFTU9WRV9BTklNQVRJT04sIHRoaXMucmVtb3ZlLCB0aGlzKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSXMgYW4gYW5pbWF0aW9uIGN1cnJlbnRseSBwbGF5aW5nIG9yIG5vdD9cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNpc1BsYXlpbmdcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaXNQbGF5aW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjdXJyZW50IEFuaW1hdGlvbiBsb2FkZWQgaW50byB0aGlzIEFuaW1hdGlvbiBDb250cm9sbGVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI2N1cnJlbnRBbmltXHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb259XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY3VycmVudEFuaW0gPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgY3VycmVudCBBbmltYXRpb25GcmFtZSBiZWluZyBkaXNwbGF5ZWQgYnkgdGhpcyBBbmltYXRpb24gQ29udHJvbGxlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNjdXJyZW50RnJhbWVcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZSA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBrZXkgb2YgdGhlIG5leHQgQW5pbWF0aW9uIHRvIGJlIGxvYWRlZCBpbnRvIHRoaXMgQW5pbWF0aW9uIENvbnRyb2xsZXIgd2hlbiB0aGUgY3VycmVudCBhbmltYXRpb24gY29tcGxldGVzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI25leHRBbmltXHJcbiAgICAgICAgICogQHR5cGUgez9zdHJpbmd9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE2LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm5leHRBbmltID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGltZSBzY2FsZSBmYWN0b3IuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jX3RpbWVTY2FsZVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAxXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fdGltZVNjYWxlID0gMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGZyYW1lIHJhdGUgb2YgcGxheWJhY2sgaW4gZnJhbWVzIHBlciBzZWNvbmQuXHJcbiAgICAgICAgICogVGhlIGRlZmF1bHQgaXMgMjQgaWYgdGhlIGBkdXJhdGlvbmAgcHJvcGVydHkgaXMgYG51bGxgLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI2ZyYW1lUmF0ZVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZnJhbWVSYXRlID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSG93IGxvbmcgdGhlIGFuaW1hdGlvbiBzaG91bGQgcGxheSBmb3IsIGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAgICAgKiBJZiB0aGUgYGZyYW1lUmF0ZWAgcHJvcGVydHkgaGFzIGJlZW4gc2V0IHRoZW4gaXQgb3ZlcnJpZGVzIHRoaXMgdmFsdWUsXHJcbiAgICAgICAgICogb3RoZXJ3aXNlIHRoZSBgZnJhbWVSYXRlYCBpcyBkZXJpdmVkIGZyb20gYGR1cmF0aW9uYC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNkdXJhdGlvblxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZHVyYXRpb24gPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBtcyBwZXIgZnJhbWUsIG5vdCBpbmNsdWRpbmcgZnJhbWUgc3BlY2lmaWMgbW9kaWZpZXJzIHRoYXQgbWF5IGJlIHByZXNlbnQgaW4gdGhlIEFuaW1hdGlvbiBkYXRhLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI21zUGVyRnJhbWVcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1zUGVyRnJhbWUgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBTa2lwIGZyYW1lcyBpZiB0aGUgdGltZSBsYWdzLCBvciBhbHdheXMgYWR2YW5jZWQgYW55d2F5P1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI3NraXBNaXNzZWRGcmFtZXNcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5za2lwTWlzc2VkRnJhbWVzID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBkZWxheSBiZWZvcmUgc3RhcnRpbmcgcGxheWJhY2ssIGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNfZGVsYXlcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2RlbGF5ID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogTnVtYmVyIG9mIHRpbWVzIHRvIHJlcGVhdCB0aGUgYW5pbWF0aW9uICgtMSBmb3IgaW5maW5pdHkpXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jX3JlcGVhdFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fcmVwZWF0ID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogRGVsYXkgYmVmb3JlIHRoZSByZXBlYXQgc3RhcnRzLCBpbiBtaWxsaXNlY29uZHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jX3JlcGVhdERlbGF5XHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9yZXBlYXREZWxheSA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFNob3VsZCB0aGUgYW5pbWF0aW9uIHlveW8/IChyZXZlcnNlIGJhY2sgZG93biB0byB0aGUgc3RhcnQpIGJlZm9yZSByZXBlYXRpbmc/XHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jX3lveW9cclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5feW95byA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXaWxsIHRoZSBwbGF5aGVhZCBtb3ZlIGZvcndhcmRzIChgdHJ1ZWApIG9yIGluIHJldmVyc2UgKGBmYWxzZWApLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI2ZvcndhcmRcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5mb3J3YXJkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gSW50ZXJuYWwgdHJpZ2dlciB0aGF0J3MgcGxheSB0aGUgYW5pbWF0aW9uIGluIHJldmVyc2UgbW9kZSAoJ3RydWUnKSBvciBub3QgKCdmYWxzZScpLFxyXG4gICAgICAgICAqIG5lZWRlZCBiZWNhdXNlIGZvcndhcmQgY2FuIGJlIGNoYW5nZWQgYnkgeW95byBmZWF0dXJlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI19yZXZlcnNlXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9yZXZlcnNlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEludGVybmFsIHRpbWUgb3ZlcmZsb3cgYWNjdW11bGF0b3IuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jYWNjdW11bGF0b3JcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFjY3VtdWxhdG9yID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHRpbWUgcG9pbnQgYXQgd2hpY2ggdGhlIG5leHQgYW5pbWF0aW9uIGZyYW1lIHdpbGwgY2hhbmdlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI25leHRUaWNrXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5uZXh0VGljayA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGludGVybmFsIGNvdW50ZXIga2VlcGluZyB0cmFjayBvZiBob3cgbWFueSByZXBlYXRzIGFyZSBsZWZ0IHRvIHBsYXkuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jcmVwZWF0Q291bnRlclxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucmVwZWF0Q291bnRlciA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGludGVybmFsIGZsYWcga2VlcGluZyB0cmFjayBvZiBwZW5kaW5nIHJlcGVhdHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jcGVuZGluZ1JlcGVhdFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVwZWF0ID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIElzIHRoZSBBbmltYXRpb24gcGF1c2VkP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI19wYXVzZWRcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fcGF1c2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFdhcyB0aGUgYW5pbWF0aW9uIHByZXZpb3VzbHkgcGxheWluZyBiZWZvcmUgYmVpbmcgcGF1c2VkP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI193YXNQbGF5aW5nXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3dhc1BsYXlpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW50ZXJuYWwgcHJvcGVydHkgdHJhY2tpbmcgaWYgdGhpcyBBbmltYXRpb24gaXMgd2FpdGluZyB0byBzdG9wLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogMCA9IE5vXHJcbiAgICAgICAgICogMSA9IFdhaXRpbmcgZm9yIG1zIHRvIHBhc3NcclxuICAgICAgICAgKiAyID0gV2FpdGluZyBmb3IgcmVwZWF0XHJcbiAgICAgICAgICogMyA9IFdhaXRpbmcgZm9yIHNwZWNpZmljIGZyYW1lXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jX3BlbmRpbmdTdG9wXHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9wZW5kaW5nU3RvcCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEludGVybmFsIHByb3BlcnR5IHVzZWQgYnkgX3BlbmRpbmdTdG9wLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI19wZW5kaW5nU3RvcFZhbHVlXHJcbiAgICAgICAgICogQHR5cGUge2FueX1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3BlbmRpbmdTdG9wVmFsdWU7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBhbiBhbmltYXRpb24gdG8gYmUgcGxheWVkIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBjdXJyZW50IG9uZSBjb21wbGV0ZXMuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIGN1cnJlbnQgYW5pbWF0aW9uIG11c3QgZW50ZXIgYSAnY29tcGxldGVkJyBzdGF0ZSBmb3IgdGhpcyB0byBoYXBwZW4sIGkuZS4gZmluaXNoIGFsbCBvZiBpdHMgcmVwZWF0cywgZGVsYXlzLCBldGMsIG9yIGhhdmUgdGhlIGBzdG9wYCBtZXRob2QgY2FsbGVkIGRpcmVjdGx5IG9uIGl0LlxyXG4gICAgICpcclxuICAgICAqIEFuIGFuaW1hdGlvbiBzZXQgdG8gcmVwZWF0IGZvcmV2ZXIgd2lsbCBuZXZlciBlbnRlciBhIGNvbXBsZXRlZCBzdGF0ZS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIGNoYWluIGEgbmV3IGFuaW1hdGlvbiBhdCBhbnkgcG9pbnQsIGluY2x1ZGluZyBiZWZvcmUgdGhlIGN1cnJlbnQgb25lIHN0YXJ0cyBwbGF5aW5nLCBkdXJpbmcgaXQsIG9yIHdoZW4gaXQgZW5kcyAodmlhIGl0cyBgYW5pbWF0aW9uY29tcGxldGVgIGNhbGxiYWNrKS5cclxuICAgICAqIENoYWluZWQgYW5pbWF0aW9ucyBhcmUgc3BlY2lmaWMgdG8gYSBHYW1lIE9iamVjdCwgbWVhbmluZyBkaWZmZXJlbnQgR2FtZSBPYmplY3RzIGNhbiBoYXZlIGRpZmZlcmVudCBjaGFpbmVkIGFuaW1hdGlvbnMgd2l0aG91dCBpbXBhY3RpbmcgdGhlIGdsb2JhbCBhbmltYXRpb24gdGhleSdyZSBwbGF5aW5nLlxyXG4gICAgICpcclxuICAgICAqIENhbGwgdGhpcyBtZXRob2Qgd2l0aCBubyBhcmd1bWVudHMgdG8gcmVzZXQgdGhlIGNoYWluZWQgYW5pbWF0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI2NoYWluXHJcbiAgICAgKiBAc2luY2UgMy4xNi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbil9IFtrZXldIC0gVGhlIHN0cmluZy1iYXNlZCBrZXkgb2YgdGhlIGFuaW1hdGlvbiB0byBwbGF5IG5leHQsIGFzIGRlZmluZWQgcHJldmlvdXNseSBpbiB0aGUgQW5pbWF0aW9uIE1hbmFnZXIuIE9yIGFuIEFuaW1hdGlvbiBpbnN0YW5jZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgb3ducyB0aGlzIEFuaW1hdGlvbiBDb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIGNoYWluOiBmdW5jdGlvbiAoa2V5KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChrZXkgaW5zdGFuY2VvZiBCYXNlQW5pbWF0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAga2V5ID0ga2V5LmtleTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubmV4dEFuaW0gPSBrZXk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBhbW91bnQgb2YgdGltZSwgaW4gbWlsbGlzZWNvbmRzLCB0aGF0IHRoZSBhbmltYXRpb24gd2lsbCBiZSBkZWxheWVkIGJlZm9yZSBzdGFydGluZyBwbGF5YmFjay5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNzZXREZWxheVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbdmFsdWU9MF0gLSBUaGUgYW1vdW50IG9mIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgdG8gd2FpdCBiZWZvcmUgc3RhcnRpbmcgcGxheWJhY2suXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IG93bnMgdGhpcyBBbmltYXRpb24gQ29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBzZXREZWxheTogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7IHZhbHVlID0gMDsgfVxyXG5cclxuICAgICAgICB0aGlzLl9kZWxheSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgYW1vdW50IG9mIHRpbWUsIGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBhbmltYXRpb24gd2lsbCBiZSBkZWxheWVkIGJlZm9yZSBzdGFydGluZyBwbGF5YmFjay5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNnZXREZWxheVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7aW50ZWdlcn0gVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBtaWxsaXNlY29uZHMsIHRoZSBBbmltYXRpb24gd2lsbCB3YWl0IGJlZm9yZSBzdGFydGluZyBwbGF5YmFjay5cclxuICAgICAqL1xyXG4gICAgZ2V0RGVsYXk6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGF5O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFdhaXRzIGZvciB0aGUgc3BlY2lmaWVkIGRlbGF5LCBpbiBtaWxsaXNlY29uZHMsIHRoZW4gc3RhcnRzIHBsYXliYWNrIG9mIHRoZSByZXF1ZXN0ZWQgYW5pbWF0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI2RlbGF5ZWRQbGF5XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IGRlbGF5IC0gVGhlIGRlbGF5LCBpbiBtaWxsaXNlY29uZHMsIHRvIHdhaXQgYmVmb3JlIHN0YXJ0aW5nIHRoZSBhbmltYXRpb24gcGxheWluZy5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBhbmltYXRpb24gdG8gcGxheS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3N0YXJ0RnJhbWU9MF0gLSBUaGUgZnJhbWUgb2YgdGhlIGFuaW1hdGlvbiB0byBzdGFydCBmcm9tLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCBvd25zIHRoaXMgQW5pbWF0aW9uIENvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgZGVsYXllZFBsYXk6IGZ1bmN0aW9uIChkZWxheSwga2V5LCBzdGFydEZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMucGxheShrZXksIHRydWUsIHN0YXJ0RnJhbWUpO1xyXG5cclxuICAgICAgICB0aGlzLm5leHRUaWNrICs9IGRlbGF5O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUga2V5IG9mIHRoZSBhbmltYXRpb24gY3VycmVudGx5IGxvYWRlZCBpbnRvIHRoaXMgY29tcG9uZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI2dldEN1cnJlbnRLZXlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGtleSBvZiB0aGUgQW5pbWF0aW9uIGxvYWRlZCBpbnRvIHRoaXMgY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBnZXRDdXJyZW50S2V5OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRBbmltKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEFuaW0ua2V5O1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBtZXRob2QgdXNlZCB0byBsb2FkIGFuIGFuaW1hdGlvbiBpbnRvIHRoaXMgY29tcG9uZW50LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI2xvYWRcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBhbmltYXRpb24gdG8gbG9hZC5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3N0YXJ0RnJhbWU9MF0gLSBUaGUgc3RhcnQgZnJhbWUgb2YgdGhlIGFuaW1hdGlvbiB0byBsb2FkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCBvd25zIHRoaXMgQW5pbWF0aW9uIENvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgbG9hZDogZnVuY3Rpb24gKGtleSwgc3RhcnRGcmFtZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoc3RhcnRGcmFtZSA9PT0gdW5kZWZpbmVkKSB7IHN0YXJ0RnJhbWUgPSAwOyB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzUGxheWluZylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gIExvYWQgdGhlIG5ldyBhbmltYXRpb24gaW5cclxuICAgICAgICB0aGlzLmFuaW1hdGlvbk1hbmFnZXIubG9hZCh0aGlzLCBrZXksIHN0YXJ0RnJhbWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF1c2UgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIGFuZCBzZXQgdGhlIGBpc1BsYXlpbmdgIHByb3BlcnR5IHRvIGBmYWxzZWAuXHJcbiAgICAgKiBZb3UgY2FuIG9wdGlvbmFsbHkgcGF1c2UgaXQgYXQgYSBzcGVjaWZpYyBmcmFtZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNwYXVzZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZX0gW2F0RnJhbWVdIC0gQW4gb3B0aW9uYWwgZnJhbWUgdG8gc2V0IGFmdGVyIHBhdXNpbmcgdGhlIGFuaW1hdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgb3ducyB0aGlzIEFuaW1hdGlvbiBDb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHBhdXNlOiBmdW5jdGlvbiAoYXRGcmFtZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3BhdXNlZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BhdXNlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3dhc1BsYXlpbmcgPSB0aGlzLmlzUGxheWluZztcclxuICAgICAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChhdEZyYW1lICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZyYW1lKGF0RnJhbWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc3VtZXMgcGxheWJhY2sgb2YgYSBwYXVzZWQgYW5pbWF0aW9uIGFuZCBzZXRzIHRoZSBgaXNQbGF5aW5nYCBwcm9wZXJ0eSB0byBgdHJ1ZWAuXHJcbiAgICAgKiBZb3UgY2FuIG9wdGlvbmFsbHkgdGVsbCBpdCB0byBzdGFydCBwbGF5YmFjayBmcm9tIGEgc3BlY2lmaWMgZnJhbWUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jcmVzdW1lXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfSBbZnJvbUZyYW1lXSAtIEFuIG9wdGlvbmFsIGZyYW1lIHRvIHNldCBiZWZvcmUgcmVzdGFydGluZyBwbGF5YmFjay5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgb3ducyB0aGlzIEFuaW1hdGlvbiBDb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHJlc3VtZTogZnVuY3Rpb24gKGZyb21GcmFtZSlcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5fcGF1c2VkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fcGF1c2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaXNQbGF5aW5nID0gdGhpcy5fd2FzUGxheWluZztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmcm9tRnJhbWUgIT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRnJhbWUoZnJvbUZyYW1lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBgdHJ1ZWAgaWYgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIGlzIHBhdXNlZCwgb3RoZXJ3aXNlIGBmYWxzZWAuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI2lzUGF1c2VkXHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKi9cclxuICAgIGlzUGF1c2VkOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYXVzZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQbGF5cyBhbiBBbmltYXRpb24gb24gYSBHYW1lIE9iamVjdCB0aGF0IGhhcyB0aGUgQW5pbWF0aW9uIGNvbXBvbmVudCwgc3VjaCBhcyBhIFNwcml0ZS5cclxuICAgICAqXHJcbiAgICAgKiBBbmltYXRpb25zIGFyZSBzdG9yZWQgaW4gdGhlIGdsb2JhbCBBbmltYXRpb24gTWFuYWdlciBhbmQgYXJlIHJlZmVyZW5jZWQgYnkgYSB1bmlxdWUgc3RyaW5nLWJhc2VkIGtleS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNwbGF5XHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI29uU3RhcnRFdmVudFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfFBoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbil9IGtleSAtIFRoZSBzdHJpbmctYmFzZWQga2V5IG9mIHRoZSBhbmltYXRpb24gdG8gcGxheSwgYXMgZGVmaW5lZCBwcmV2aW91c2x5IGluIHRoZSBBbmltYXRpb24gTWFuYWdlci4gT3IgYW4gQW5pbWF0aW9uIGluc3RhbmNlLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaWdub3JlSWZQbGF5aW5nPWZhbHNlXSAtIElmIHRoaXMgYW5pbWF0aW9uIGlzIGFscmVhZHkgcGxheWluZyB0aGVuIGlnbm9yZSB0aGlzIGNhbGwuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtzdGFydEZyYW1lPTBdIC0gT3B0aW9uYWxseSBzdGFydCB0aGUgYW5pbWF0aW9uIHBsYXlpbmcgZnJvbSB0aGlzIGZyYW1lIGluZGV4LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCBvd25zIHRoaXMgQW5pbWF0aW9uIENvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcGxheTogZnVuY3Rpb24gKGtleSwgaWdub3JlSWZQbGF5aW5nLCBzdGFydEZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChpZ25vcmVJZlBsYXlpbmcgPT09IHVuZGVmaW5lZCkgeyBpZ25vcmVJZlBsYXlpbmcgPSBmYWxzZTsgfVxyXG4gICAgICAgIGlmIChzdGFydEZyYW1lID09PSB1bmRlZmluZWQpIHsgc3RhcnRGcmFtZSA9IDA7IH1cclxuXHJcbiAgICAgICAgaWYgKGtleSBpbnN0YW5jZW9mIEJhc2VBbmltYXRpb24pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBrZXkgPSBrZXkua2V5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGlnbm9yZUlmUGxheWluZyAmJiB0aGlzLmlzUGxheWluZyAmJiB0aGlzLmN1cnJlbnRBbmltLmtleSA9PT0ga2V5KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5mb3J3YXJkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9yZXZlcnNlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fcGF1c2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fd2FzUGxheWluZyA9IHRydWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdGFydEFuaW1hdGlvbihrZXksIHN0YXJ0RnJhbWUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBsYXlzIGFuIEFuaW1hdGlvbiAoaW4gcmV2ZXJzZSBtb2RlKSBvbiB0aGUgR2FtZSBPYmplY3QgdGhhdCBvd25zIHRoaXMgQW5pbWF0aW9uIENvbXBvbmVudC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNwbGF5UmV2ZXJzZVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNvblN0YXJ0RXZlbnRcclxuICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8UGhhc2VyLkFuaW1hdGlvbnMuQW5pbWF0aW9uKX0ga2V5IC0gVGhlIHN0cmluZy1iYXNlZCBrZXkgb2YgdGhlIGFuaW1hdGlvbiB0byBwbGF5LCBhcyBkZWZpbmVkIHByZXZpb3VzbHkgaW4gdGhlIEFuaW1hdGlvbiBNYW5hZ2VyLiBPciBhbiBBbmltYXRpb24gaW5zdGFuY2UuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpZ25vcmVJZlBsYXlpbmc9ZmFsc2VdIC0gSWYgYW4gYW5pbWF0aW9uIGlzIGFscmVhZHkgcGxheWluZyB0aGVuIGlnbm9yZSB0aGlzIGNhbGwuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtzdGFydEZyYW1lPTBdIC0gT3B0aW9uYWxseSBzdGFydCB0aGUgYW5pbWF0aW9uIHBsYXlpbmcgZnJvbSB0aGlzIGZyYW1lIGluZGV4LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCBvd25zIHRoaXMgQW5pbWF0aW9uIENvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcGxheVJldmVyc2U6IGZ1bmN0aW9uIChrZXksIGlnbm9yZUlmUGxheWluZywgc3RhcnRGcmFtZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoaWdub3JlSWZQbGF5aW5nID09PSB1bmRlZmluZWQpIHsgaWdub3JlSWZQbGF5aW5nID0gZmFsc2U7IH1cclxuICAgICAgICBpZiAoc3RhcnRGcmFtZSA9PT0gdW5kZWZpbmVkKSB7IHN0YXJ0RnJhbWUgPSAwOyB9XHJcblxyXG4gICAgICAgIGlmIChrZXkgaW5zdGFuY2VvZiBCYXNlQW5pbWF0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAga2V5ID0ga2V5LmtleTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChpZ25vcmVJZlBsYXlpbmcgJiYgdGhpcy5pc1BsYXlpbmcgJiYgdGhpcy5jdXJyZW50QW5pbS5rZXkgPT09IGtleSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcmVudDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZm9yd2FyZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX3JldmVyc2UgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fc3RhcnRBbmltYXRpb24oa2V5LCBzdGFydEZyYW1lKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMb2FkIGFuIEFuaW1hdGlvbiBhbmQgZmlyZXMgJ29uU3RhcnRFdmVudCcgZXZlbnQsIGV4dHJhY3RlZCBmcm9tICdwbGF5JyBtZXRob2QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jX3N0YXJ0QW5pbWF0aW9uXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkFuaW1hdGlvbnMuRXZlbnRzI0FOSU1BVElPTl9TVEFSVFxyXG4gICAgICogQGZpcmVzIFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNTUFJJVEVfQU5JTUFUSU9OX1NUQVJUXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkFuaW1hdGlvbnMuRXZlbnRzI1NQUklURV9BTklNQVRJT05fS0VZX1NUQVJUXHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBzdHJpbmctYmFzZWQga2V5IG9mIHRoZSBhbmltYXRpb24gdG8gcGxheSwgYXMgZGVmaW5lZCBwcmV2aW91c2x5IGluIHRoZSBBbmltYXRpb24gTWFuYWdlci5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3N0YXJ0RnJhbWU9MF0gLSBPcHRpb25hbGx5IHN0YXJ0IHRoZSBhbmltYXRpb24gcGxheWluZyBmcm9tIHRoaXMgZnJhbWUgaW5kZXguXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IG93bnMgdGhpcyBBbmltYXRpb24gQ29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBfc3RhcnRBbmltYXRpb246IGZ1bmN0aW9uIChrZXksIHN0YXJ0RnJhbWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5sb2FkKGtleSwgc3RhcnRGcmFtZSk7XHJcblxyXG4gICAgICAgIHZhciBhbmltID0gdGhpcy5jdXJyZW50QW5pbTtcclxuICAgICAgICB2YXIgZ2FtZU9iamVjdCA9IHRoaXMucGFyZW50O1xyXG5cclxuICAgICAgICBpZiAoIWFuaW0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gZ2FtZU9iamVjdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBTaG91bGQgZ2l2ZSB1cyA5LDAwNywxOTksMjU0LDc0MCw5OTEgc2FmZSByZXBlYXRzXHJcbiAgICAgICAgdGhpcy5yZXBlYXRDb3VudGVyID0gKHRoaXMuX3JlcGVhdCA9PT0gLTEpID8gTnVtYmVyLk1BWF9WQUxVRSA6IHRoaXMuX3JlcGVhdDtcclxuXHJcbiAgICAgICAgYW5pbS5nZXRGaXJzdFRpY2sodGhpcyk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNQbGF5aW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnBlbmRpbmdSZXBlYXQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKGFuaW0uc2hvd09uU3RhcnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBnYW1lT2JqZWN0LnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGZyYW1lID0gdGhpcy5jdXJyZW50RnJhbWU7XHJcblxyXG4gICAgICAgIGFuaW0uZW1pdChFdmVudHMuQU5JTUFUSU9OX1NUQVJULCBhbmltLCBmcmFtZSwgZ2FtZU9iamVjdCk7XHJcblxyXG4gICAgICAgIGdhbWVPYmplY3QuZW1pdChFdmVudHMuU1BSSVRFX0FOSU1BVElPTl9LRVlfU1RBUlQgKyBrZXksIGFuaW0sIGZyYW1lLCBnYW1lT2JqZWN0KTtcclxuXHJcbiAgICAgICAgZ2FtZU9iamVjdC5lbWl0KEV2ZW50cy5TUFJJVEVfQU5JTUFUSU9OX1NUQVJULCBhbmltLCBmcmFtZSwgZ2FtZU9iamVjdCk7XHJcblxyXG4gICAgICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldmVyc2UgdGhlIEFuaW1hdGlvbiB0aGF0IGlzIGFscmVhZHkgcGxheWluZyBvbiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jcmV2ZXJzZVxyXG4gICAgICogQHNpbmNlIDMuMTIuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCBvd25zIHRoaXMgQW5pbWF0aW9uIENvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcmV2ZXJzZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5pc1BsYXlpbmcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9yZXZlcnNlID0gIXRoaXMuX3JldmVyc2U7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmZvcndhcmQgPSAhdGhpcy5mb3J3YXJkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEgaW5kaWNhdGluZyBob3cgZmFyIHRoaXMgYW5pbWF0aW9uIGlzIHRocm91Z2gsIGlnbm9yaW5nIHJlcGVhdHMgYW5kIHlveW9zLlxyXG4gICAgICogSWYgdGhlIGFuaW1hdGlvbiBoYXMgYSBub24temVybyByZXBlYXQgZGVmaW5lZCwgYGdldFByb2dyZXNzYCBhbmQgYGdldFRvdGFsUHJvZ3Jlc3NgIHdpbGwgYmUgZGlmZmVyZW50XHJcbiAgICAgKiBiZWNhdXNlIGBnZXRQcm9ncmVzc2AgZG9lc24ndCBpbmNsdWRlIGFueSByZXBlYXRzIG9yIHJlcGVhdCBkZWxheXMsIHdoZXJlYXMgYGdldFRvdGFsUHJvZ3Jlc3NgIGRvZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jZ2V0UHJvZ3Jlc3NcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge251bWJlcn0gVGhlIHByb2dyZXNzIG9mIHRoZSBjdXJyZW50IGFuaW1hdGlvbiwgYmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICovXHJcbiAgICBnZXRQcm9ncmVzczogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgcCA9IHRoaXMuY3VycmVudEZyYW1lLnByb2dyZXNzO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuZm9yd2FyZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHAgPSAxIC0gcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBwO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRha2VzIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxIGFuZCB1c2VzIGl0IHRvIHNldCBob3cgZmFyIHRoaXMgYW5pbWF0aW9uIGlzIHRocm91Z2ggcGxheWJhY2suXHJcbiAgICAgKiBEb2VzIG5vdCBmYWN0b3IgaW4gcmVwZWF0cyBvciB5b3lvcywgYnV0IGRvZXMgaGFuZGxlIHBsYXlpbmcgZm9yd2FyZHMgb3IgYmFja3dhcmRzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI3NldFByb2dyZXNzXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ZhbHVlPTBdIC0gVGhlIHByb2dyZXNzIHZhbHVlLCBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IG93bnMgdGhpcyBBbmltYXRpb24gQ29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBzZXRQcm9ncmVzczogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5mb3J3YXJkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWUgPSAxIC0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldEN1cnJlbnRGcmFtZSh0aGlzLmN1cnJlbnRBbmltLmdldEZyYW1lQnlQcm9ncmVzcyh2YWx1ZSkpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlIHRoZSByZW1vdmFsIG9mIGFuIGFuaW1hdGlvbiBmcm9tIHRoZSBBbmltYXRpb24gTWFuYWdlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNyZW1vdmVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBba2V5XSAtIFRoZSBrZXkgb2YgdGhlIHJlbW92ZWQgQW5pbWF0aW9uLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb259IFthbmltYXRpb25dIC0gVGhlIHJlbW92ZWQgQW5pbWF0aW9uLlxyXG4gICAgICovXHJcbiAgICByZW1vdmU6IGZ1bmN0aW9uIChrZXksIGFuaW1hdGlvbilcclxuICAgIHtcclxuICAgICAgICBpZiAoYW5pbWF0aW9uID09PSB1bmRlZmluZWQpIHsgYW5pbWF0aW9uID0gdGhpcy5jdXJyZW50QW5pbTsgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1BsYXlpbmcgJiYgYW5pbWF0aW9uLmtleSA9PT0gdGhpcy5jdXJyZW50QW5pbS5rZXkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3AoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudEZyYW1lKHRoaXMuY3VycmVudEFuaW0uZnJhbWVzWzBdKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgdGhlIGFuaW1hdGlvbiB3aWxsIHJlcGVhdFxyXG4gICAgICogYWZ0ZXIgaXRzIGZpcnN0IGl0ZXJhdGlvbi4gRm9yIGV4YW1wbGUsIGlmIHJldHVybnMgMSwgdGhlIGFuaW1hdGlvbiB3aWxsXHJcbiAgICAgKiBwbGF5IGEgdG90YWwgb2YgdHdpY2UgKHRoZSBpbml0aWFsIHBsYXkgcGx1cyAxIHJlcGVhdCkuXHJcbiAgICAgKiBBIHZhbHVlIG9mIC0xIG1lYW5zIHRoZSBhbmltYXRpb24gd2lsbCByZXBlYXQgaW5kZWZpbml0ZWx5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI2dldFJlcGVhdFxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7aW50ZWdlcn0gVGhlIG51bWJlciBvZiB0aW1lcyB0aGF0IHRoZSBhbmltYXRpb24gd2lsbCByZXBlYXQuXHJcbiAgICAgKi9cclxuICAgIGdldFJlcGVhdDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcmVwZWF0O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGF0IHRoZSBhbmltYXRpb24gc2hvdWxkIHJlcGVhdFxyXG4gICAgICogYWZ0ZXIgaXRzIGZpcnN0IGl0ZXJhdGlvbi4gRm9yIGV4YW1wbGUsIGlmIHJlcGVhdCBpcyAxLCB0aGUgYW5pbWF0aW9uIHdpbGxcclxuICAgICAqIHBsYXkgYSB0b3RhbCBvZiB0d2ljZSAodGhlIGluaXRpYWwgcGxheSBwbHVzIDEgcmVwZWF0KS5cclxuICAgICAqIFRvIHJlcGVhdCBpbmRlZmluaXRlbHksIHVzZSAtMS4gcmVwZWF0IHNob3VsZCBhbHdheXMgYmUgYW4gaW50ZWdlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNzZXRSZXBlYXRcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gdmFsdWUgLSBUaGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgdGhlIGFuaW1hdGlvbiBzaG91bGQgcmVwZWF0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCBvd25zIHRoaXMgQW5pbWF0aW9uIENvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgc2V0UmVwZWF0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fcmVwZWF0ID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHRoaXMucmVwZWF0Q291bnRlciA9ICh2YWx1ZSA9PT0gLTEpID8gTnVtYmVyLk1BWF9WQUxVRSA6IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgYW1vdW50IG9mIGRlbGF5IGJldHdlZW4gcmVwZWF0cywgaWYgYW55LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI2dldFJlcGVhdERlbGF5XHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBkZWxheSBiZXR3ZWVuIHJlcGVhdHMuXHJcbiAgICAgKi9cclxuICAgIGdldFJlcGVhdERlbGF5OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZXBlYXREZWxheTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBhbW91bnQgb2YgdGltZSBpbiBzZWNvbmRzIGJldHdlZW4gcmVwZWF0cy5cclxuICAgICAqIEZvciBleGFtcGxlLCBpZiBgcmVwZWF0YCBpcyAyIGFuZCBgcmVwZWF0RGVsYXlgIGlzIDEwLCB0aGUgYW5pbWF0aW9uIHdpbGwgcGxheSBpbml0aWFsbHksXHJcbiAgICAgKiB0aGVuIHdhaXQgZm9yIDEwIHNlY29uZHMgYmVmb3JlIHJlcGVhdGluZywgdGhlbiBwbGF5IGFnYWluLCB0aGVuIHdhaXQgYW5vdGhlciAxMCBzZWNvbmRzXHJcbiAgICAgKiBiZWZvcmUgZG9pbmcgaXRzIGZpbmFsIHJlcGVhdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNzZXRSZXBlYXREZWxheVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGRlbGF5IHRvIHdhaXQgYmV0d2VlbiByZXBlYXRzLCBpbiBzZWNvbmRzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCBvd25zIHRoaXMgQW5pbWF0aW9uIENvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgc2V0UmVwZWF0RGVsYXk6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9yZXBlYXREZWxheSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzdGFydHMgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIGZyb20gaXRzIGJlZ2lubmluZywgb3B0aW9uYWxseSBpbmNsdWRpbmcgaXRzIGRlbGF5IHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI3Jlc3RhcnRcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjQU5JTUFUSU9OX1JFU1RBUlRcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuQW5pbWF0aW9ucy5FdmVudHMjU1BSSVRFX0FOSU1BVElPTl9SRVNUQVJUXHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkFuaW1hdGlvbnMuRXZlbnRzI1NQUklURV9BTklNQVRJT05fS0VZX1JFU1RBUlRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luY2x1ZGVEZWxheT1mYWxzZV0gLSBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIGRlbGF5IHZhbHVlIG9mIHRoZSBhbmltYXRpb24gd2hlbiByZXN0YXJ0aW5nLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhhdCBvd25zIHRoaXMgQW5pbWF0aW9uIENvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcmVzdGFydDogZnVuY3Rpb24gKGluY2x1ZGVEZWxheSlcclxuICAgIHtcclxuICAgICAgICBpZiAoaW5jbHVkZURlbGF5ID09PSB1bmRlZmluZWQpIHsgaW5jbHVkZURlbGF5ID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgdmFyIGFuaW0gPSB0aGlzLmN1cnJlbnRBbmltO1xyXG5cclxuICAgICAgICBhbmltLmdldEZpcnN0VGljayh0aGlzLCBpbmNsdWRlRGVsYXkpO1xyXG5cclxuICAgICAgICB0aGlzLmZvcndhcmQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNQbGF5aW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnBlbmRpbmdSZXBlYXQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9wYXVzZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLy8gIFNldCBmcmFtZVxyXG4gICAgICAgIHRoaXMudXBkYXRlRnJhbWUoYW5pbS5mcmFtZXNbMF0pO1xyXG5cclxuICAgICAgICB2YXIgZ2FtZU9iamVjdCA9IHRoaXMucGFyZW50O1xyXG4gICAgICAgIHZhciBmcmFtZSA9IHRoaXMuY3VycmVudEZyYW1lO1xyXG5cclxuICAgICAgICBhbmltLmVtaXQoRXZlbnRzLkFOSU1BVElPTl9SRVNUQVJULCBhbmltLCBmcmFtZSwgZ2FtZU9iamVjdCk7XHJcblxyXG4gICAgICAgIGdhbWVPYmplY3QuZW1pdChFdmVudHMuU1BSSVRFX0FOSU1BVElPTl9LRVlfUkVTVEFSVCArIGFuaW0ua2V5LCBhbmltLCBmcmFtZSwgZ2FtZU9iamVjdCk7XHJcblxyXG4gICAgICAgIGdhbWVPYmplY3QuZW1pdChFdmVudHMuU1BSSVRFX0FOSU1BVElPTl9SRVNUQVJULCBhbmltLCBmcmFtZSwgZ2FtZU9iamVjdCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbW1lZGlhdGVseSBzdG9wcyB0aGUgY3VycmVudCBhbmltYXRpb24gZnJvbSBwbGF5aW5nIGFuZCBkaXNwYXRjaGVzIHRoZSBgYW5pbWF0aW9uY29tcGxldGVgIGV2ZW50LlxyXG4gICAgICpcclxuICAgICAqIElmIG5vIGFuaW1hdGlvbiBpcyBzZXQsIG5vIGV2ZW50IHdpbGwgYmUgZGlzcGF0Y2hlZC5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGVyZSBpcyBhbm90aGVyIGFuaW1hdGlvbiBxdWV1ZWQgKHZpYSB0aGUgYGNoYWluYCBtZXRob2QpIHRoZW4gaXQgd2lsbCBzdGFydCBwbGF5aW5nIGltbWVkaWF0ZWx5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI3N0b3BcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jb25Db21wbGV0ZUV2ZW50XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgb3ducyB0aGlzIEFuaW1hdGlvbiBDb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHN0b3A6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fcGVuZGluZ1N0b3AgPSAwO1xyXG5cclxuICAgICAgICB0aGlzLmlzUGxheWluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICB2YXIgZ2FtZU9iamVjdCA9IHRoaXMucGFyZW50O1xyXG4gICAgICAgIHZhciBhbmltID0gdGhpcy5jdXJyZW50QW5pbTtcclxuICAgICAgICB2YXIgZnJhbWUgPSB0aGlzLmN1cnJlbnRGcmFtZTtcclxuXHJcbiAgICAgICAgaWYgKGFuaW0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBhbmltLmVtaXQoRXZlbnRzLkFOSU1BVElPTl9DT01QTEVURSwgYW5pbSwgZnJhbWUsIGdhbWVPYmplY3QpO1xyXG5cclxuICAgICAgICAgICAgZ2FtZU9iamVjdC5lbWl0KEV2ZW50cy5TUFJJVEVfQU5JTUFUSU9OX0tFWV9DT01QTEVURSArIGFuaW0ua2V5LCBhbmltLCBmcmFtZSwgZ2FtZU9iamVjdCk7XHJcblxyXG4gICAgICAgICAgICBnYW1lT2JqZWN0LmVtaXQoRXZlbnRzLlNQUklURV9BTklNQVRJT05fQ09NUExFVEUsIGFuaW0sIGZyYW1lLCBnYW1lT2JqZWN0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm5leHRBbmltKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGtleSA9IHRoaXMubmV4dEFuaW07XHJcblxyXG4gICAgICAgICAgICB0aGlzLm5leHRBbmltID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucGxheShrZXkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGdhbWVPYmplY3Q7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIGZyb20gcGxheWluZyBhZnRlciB0aGUgc3BlY2lmaWVkIHRpbWUgZGVsYXksIGdpdmVuIGluIG1pbGxpc2Vjb25kcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNzdG9wQWZ0ZXJEZWxheVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNvbkNvbXBsZXRlRXZlbnRcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gZGVsYXkgLSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBzdG9wcGluZyB0aGlzIGFuaW1hdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgb3ducyB0aGlzIEFuaW1hdGlvbiBDb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHN0b3BBZnRlckRlbGF5OiBmdW5jdGlvbiAoZGVsYXkpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fcGVuZGluZ1N0b3AgPSAxO1xyXG4gICAgICAgIHRoaXMuX3BlbmRpbmdTdG9wVmFsdWUgPSBkZWxheTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0b3BzIHRoZSBjdXJyZW50IGFuaW1hdGlvbiBmcm9tIHBsYXlpbmcgd2hlbiBpdCBuZXh0IHJlcGVhdHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jc3RvcE9uUmVwZWF0XHJcbiAgICAgKiBAZmlyZXMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI29uQ29tcGxldGVFdmVudFxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IG93bnMgdGhpcyBBbmltYXRpb24gQ29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBzdG9wT25SZXBlYXQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fcGVuZGluZ1N0b3AgPSAyO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgdGhlIGN1cnJlbnQgYW5pbWF0aW9uIGZyb20gcGxheWluZyB3aGVuIGl0IG5leHQgc2V0cyB0aGUgZ2l2ZW4gZnJhbWUuXHJcbiAgICAgKiBJZiB0aGlzIGZyYW1lIGRvZXNuJ3QgZXhpc3Qgd2l0aGluIHRoZSBhbmltYXRpb24gaXQgd2lsbCBub3Qgc3RvcCBpdCBmcm9tIHBsYXlpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jc3RvcE9uRnJhbWVcclxuICAgICAqIEBmaXJlcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jb25Db21wbGV0ZUV2ZW50XHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfSBmcmFtZSAtIFRoZSBmcmFtZSB0byBjaGVjayBiZWZvcmUgc3RvcHBpbmcgdGhpcyBhbmltYXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IG93bnMgdGhpcyBBbmltYXRpb24gQ29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBzdG9wT25GcmFtZTogZnVuY3Rpb24gKGZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3BlbmRpbmdTdG9wID0gMztcclxuICAgICAgICB0aGlzLl9wZW5kaW5nU3RvcFZhbHVlID0gZnJhbWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBUaW1lIFNjYWxlIGZhY3RvciwgYWxsb3dpbmcgeW91IHRvIG1ha2UgdGhlIGFuaW1hdGlvbiBnbyBnbyBmYXN0ZXIgb3Igc2xvd2VyIHRoYW4gZGVmYXVsdC5cclxuICAgICAqIFdoZXJlIDEgPSBub3JtYWwgc3BlZWQgKHRoZSBkZWZhdWx0KSwgMC41ID0gaGFsZiBzcGVlZCwgMiA9IGRvdWJsZSBzcGVlZCwgZXRjLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI3NldFRpbWVTY2FsZVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt2YWx1ZT0xXSAtIFRoZSB0aW1lIHNjYWxlIGZhY3Rvciwgd2hlcmUgMSBpcyBubyBjaGFuZ2UsIDAuNSBpcyBoYWxmIHNwZWVkLCBldGMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBHYW1lIE9iamVjdCB0aGF0IG93bnMgdGhpcyBBbmltYXRpb24gQ29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBzZXRUaW1lU2NhbGU6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgeyB2YWx1ZSA9IDE7IH1cclxuXHJcbiAgICAgICAgdGhpcy5fdGltZVNjYWxlID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBUaW1lIFNjYWxlIGZhY3Rvci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNnZXRUaW1lU2NhbGVcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge251bWJlcn0gVGhlIFRpbWUgU2NhbGUgdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIGdldFRpbWVTY2FsZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdGltZVNjYWxlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIHRvdGFsIG51bWJlciBvZiBmcmFtZXMgaW4gdGhpcyBhbmltYXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jZ2V0VG90YWxGcmFtZXNcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2ludGVnZXJ9IFRoZSB0b3RhbCBudW1iZXIgb2YgZnJhbWVzIGluIHRoaXMgYW5pbWF0aW9uLlxyXG4gICAgICovXHJcbiAgICBnZXRUb3RhbEZyYW1lczogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50QW5pbS5mcmFtZXMubGVuZ3RoO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBpbnRlcm5hbCB1cGRhdGUgbG9vcCBmb3IgdGhlIEFuaW1hdGlvbiBDb21wb25lbnQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jdXBkYXRlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdGltZSAtIFRoZSBjdXJyZW50IHRpbWVzdGFtcC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWx0YSAtIFRoZSBkZWx0YSB0aW1lLCBpbiBtcywgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCBmcmFtZS5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlOiBmdW5jdGlvbiAodGltZSwgZGVsdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRBbmltIHx8ICF0aGlzLmlzUGxheWluZyB8fCB0aGlzLmN1cnJlbnRBbmltLnBhdXNlZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWNjdW11bGF0b3IgKz0gZGVsdGEgKiB0aGlzLl90aW1lU2NhbGU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9wZW5kaW5nU3RvcCA9PT0gMSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BlbmRpbmdTdG9wVmFsdWUgLT0gZGVsdGE7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fcGVuZGluZ1N0b3BWYWx1ZSA8PSAwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50QW5pbS5jb21wbGV0ZUFuaW1hdGlvbih0aGlzKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuYWNjdW11bGF0b3IgPj0gdGhpcy5uZXh0VGljaylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEFuaW0uc2V0RnJhbWUodGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGdpdmVuIEFuaW1hdGlvbiBGcmFtZSBhcyBiZWluZyB0aGUgY3VycmVudCBmcmFtZVxyXG4gICAgICogYW5kIGFwcGxpZXMgaXQgdG8gdGhlIHBhcmVudCBHYW1lIE9iamVjdCwgYWRqdXN0aW5nIGl0cyBzaXplIGFuZCBvcmlnaW4gYXMgbmVlZGVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI3NldEN1cnJlbnRGcmFtZVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuQW5pbWF0aW9ucy5BbmltYXRpb25GcmFtZX0gYW5pbWF0aW9uRnJhbWUgLSBUaGUgQW5pbWF0aW9uIEZyYW1lIHRvIHNldCBhcyBiZWluZyBjdXJyZW50LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhpcyBBbmltYXRpb24gQ29tcG9uZW50IGJlbG9uZ3MgdG8uXHJcbiAgICAgKi9cclxuICAgIHNldEN1cnJlbnRGcmFtZTogZnVuY3Rpb24gKGFuaW1hdGlvbkZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBnYW1lT2JqZWN0ID0gdGhpcy5wYXJlbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuY3VycmVudEZyYW1lID0gYW5pbWF0aW9uRnJhbWU7XHJcblxyXG4gICAgICAgIGdhbWVPYmplY3QudGV4dHVyZSA9IGFuaW1hdGlvbkZyYW1lLmZyYW1lLnRleHR1cmU7XHJcbiAgICAgICAgZ2FtZU9iamVjdC5mcmFtZSA9IGFuaW1hdGlvbkZyYW1lLmZyYW1lO1xyXG5cclxuICAgICAgICBpZiAoZ2FtZU9iamVjdC5pc0Nyb3BwZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBnYW1lT2JqZWN0LmZyYW1lLnVwZGF0ZUNyb3BVVnMoZ2FtZU9iamVjdC5fY3JvcCwgZ2FtZU9iamVjdC5mbGlwWCwgZ2FtZU9iamVjdC5mbGlwWSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBnYW1lT2JqZWN0LnNldFNpemVUb0ZyYW1lKCk7XHJcblxyXG4gICAgICAgIGlmIChnYW1lT2JqZWN0Ll9vcmlnaW5Db21wb25lbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoYW5pbWF0aW9uRnJhbWUuZnJhbWUuY3VzdG9tUGl2b3QpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGdhbWVPYmplY3Quc2V0T3JpZ2luKGFuaW1hdGlvbkZyYW1lLmZyYW1lLnBpdm90WCwgYW5pbWF0aW9uRnJhbWUuZnJhbWUucGl2b3RZKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGdhbWVPYmplY3QudXBkYXRlRGlzcGxheU9yaWdpbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZ2FtZU9iamVjdDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBmcmFtZSBjaGFuZ2UgaGFuZGxlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiN1cGRhdGVGcmFtZVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNTUFJJVEVfQU5JTUFUSU9OX1VQREFURVxyXG4gICAgICogQGZpcmVzIFBoYXNlci5BbmltYXRpb25zLkV2ZW50cyNTUFJJVEVfQU5JTUFUSU9OX0tFWV9VUERBVEVcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5BbmltYXRpb25zLkFuaW1hdGlvbkZyYW1lfSBhbmltYXRpb25GcmFtZSAtIFRoZSBhbmltYXRpb24gZnJhbWUgdG8gY2hhbmdlIHRvLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGVGcmFtZTogZnVuY3Rpb24gKGFuaW1hdGlvbkZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBnYW1lT2JqZWN0ID0gdGhpcy5zZXRDdXJyZW50RnJhbWUoYW5pbWF0aW9uRnJhbWUpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1BsYXlpbmcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoYW5pbWF0aW9uRnJhbWUuc2V0QWxwaGEpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGdhbWVPYmplY3QuYWxwaGEgPSBhbmltYXRpb25GcmFtZS5hbHBoYTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdmFyIGFuaW0gPSB0aGlzLmN1cnJlbnRBbmltO1xyXG5cclxuICAgICAgICAgICAgZ2FtZU9iamVjdC5lbWl0KEV2ZW50cy5TUFJJVEVfQU5JTUFUSU9OX0tFWV9VUERBVEUgKyBhbmltLmtleSwgYW5pbSwgYW5pbWF0aW9uRnJhbWUsIGdhbWVPYmplY3QpO1xyXG5cclxuICAgICAgICAgICAgZ2FtZU9iamVjdC5lbWl0KEV2ZW50cy5TUFJJVEVfQU5JTUFUSU9OX1VQREFURSwgYW5pbSwgYW5pbWF0aW9uRnJhbWUsIGdhbWVPYmplY3QpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX3BlbmRpbmdTdG9wID09PSAzICYmIHRoaXMuX3BlbmRpbmdTdG9wVmFsdWUgPT09IGFuaW1hdGlvbkZyYW1lKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltLmNvbXBsZXRlQW5pbWF0aW9uKHRoaXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkdmFuY2VzIHRoZSBhbmltYXRpb24gdG8gdGhlIG5leHQgZnJhbWUsIHJlZ2FyZGxlc3Mgb2YgdGhlIHRpbWUgb3IgYW5pbWF0aW9uIHN0YXRlLlxyXG4gICAgICogSWYgdGhlIGFuaW1hdGlvbiBpcyBzZXQgdG8gcmVwZWF0LCBvciB5b3lvLCB0aGlzIHdpbGwgc3RpbGwgdGFrZSBlZmZlY3QuXHJcbiAgICAgKlxyXG4gICAgICogQ2FsbGluZyB0aGlzIGRvZXMgbm90IGNoYW5nZSB0aGUgZGlyZWN0aW9uIG9mIHRoZSBhbmltYXRpb24uIEkuZS4gaWYgaXQgd2FzIGN1cnJlbnRseVxyXG4gICAgICogcGxheWluZyBpbiByZXZlcnNlLCBjYWxsaW5nIHRoaXMgbWV0aG9kIGRvZXNuJ3QgdGhlbiBjaGFuZ2UgdGhlIGRpcmVjdGlvbiB0byBmb3J3YXJkcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFuaW1hdGlvbiNuZXh0RnJhbWVcclxuICAgICAqIEBzaW5jZSAzLjE2LjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoaXMgQW5pbWF0aW9uIENvbXBvbmVudCBiZWxvbmdzIHRvLlxyXG4gICAgICovXHJcbiAgICBuZXh0RnJhbWU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFuaW0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltLm5leHRGcmFtZSh0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZHZhbmNlcyB0aGUgYW5pbWF0aW9uIHRvIHRoZSBwcmV2aW91cyBmcmFtZSwgcmVnYXJkbGVzcyBvZiB0aGUgdGltZSBvciBhbmltYXRpb24gc3RhdGUuXHJcbiAgICAgKiBJZiB0aGUgYW5pbWF0aW9uIGlzIHNldCB0byByZXBlYXQsIG9yIHlveW8sIHRoaXMgd2lsbCBzdGlsbCB0YWtlIGVmZmVjdC5cclxuICAgICAqXHJcbiAgICAgKiBDYWxsaW5nIHRoaXMgZG9lcyBub3QgY2hhbmdlIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGFuaW1hdGlvbi4gSS5lLiBpZiBpdCB3YXMgY3VycmVudGx5XHJcbiAgICAgKiBwbGF5aW5nIGluIGZvcndhcmRzLCBjYWxsaW5nIHRoaXMgbWV0aG9kIGRvZXNuJ3QgdGhlbiBjaGFuZ2UgdGhlIGRpcmVjdGlvbiB0byBiYWNrd2FyZHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jcHJldmlvdXNGcmFtZVxyXG4gICAgICogQHNpbmNlIDMuMTYuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgR2FtZSBPYmplY3QgdGhpcyBBbmltYXRpb24gQ29tcG9uZW50IGJlbG9uZ3MgdG8uXHJcbiAgICAgKi9cclxuICAgIHByZXZpb3VzRnJhbWU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFuaW0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltLnByZXZpb3VzRnJhbWUodGhpcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBpZiB0aGUgY3VycmVudCBBbmltYXRpb24gd2lsbCB5b3lvIHdoZW4gaXQgcmVhY2hlcyB0aGUgZW5kLlxyXG4gICAgICogQSB5b3lvJ2luZyBhbmltYXRpb24gd2lsbCBwbGF5IHRocm91Z2ggY29uc2VjdXRpdmVseSwgYW5kIHRoZW4gcmV2ZXJzZS1wbGF5IGJhY2sgdG8gdGhlIHN0YXJ0IGFnYWluLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI3NldFlveW9cclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3ZhbHVlPWZhbHNlXSAtIGB0cnVlYCBpZiB0aGUgYW5pbWF0aW9uIHNob3VsZCB5b3lvLCBgZmFsc2VgIHRvIG5vdC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IHRoaXMgQW5pbWF0aW9uIENvbXBvbmVudCBiZWxvbmdzIHRvLlxyXG4gICAgICovXHJcbiAgICBzZXRZb3lvOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHsgdmFsdWUgPSBmYWxzZTsgfVxyXG5cclxuICAgICAgICB0aGlzLl95b3lvID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGlmIHRoZSBjdXJyZW50IEFuaW1hdGlvbiB3aWxsIHlveW8gd2hlbiBpdCByZWFjaGVzIHRoZSBlbmQuXHJcbiAgICAgKiBBIHlveW8naW5nIGFuaW1hdGlvbiB3aWxsIHBsYXkgdGhyb3VnaCBjb25zZWN1dGl2ZWx5LCBhbmQgdGhlbiByZXZlcnNlLXBsYXkgYmFjayB0byB0aGUgc3RhcnQgYWdhaW4uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jZ2V0WW95b1xyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSBhbmltYXRpb24gaXMgc2V0IHRvIHlveW8sIGBmYWxzZWAgaWYgbm90LlxyXG4gICAgICovXHJcbiAgICBnZXRZb3lvOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl95b3lvO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc3Ryb3kgdGhpcyBBbmltYXRpb24gY29tcG9uZW50LlxyXG4gICAgICpcclxuICAgICAqIFVucmVnaXN0ZXJzIGV2ZW50IGxpc3RlbmVycyBhbmQgY2xlYW5zIHVwIGl0cyByZWZlcmVuY2VzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9uI2Rlc3Ryb3lcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuYW5pbWF0aW9uTWFuYWdlci5vZmYoRXZlbnRzLlJFTU9WRV9BTklNQVRJT04sIHRoaXMucmVtb3ZlLCB0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5hbmltYXRpb25NYW5hZ2VyID0gbnVsbDtcclxuICAgICAgICB0aGlzLnBhcmVudCA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuY3VycmVudEFuaW0gPSBudWxsO1xyXG4gICAgICAgIHRoaXMuY3VycmVudEZyYW1lID0gbnVsbDtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBBbmltYXRpb247XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEJsZW5kTW9kZXMgPSByZXF1aXJlKCcuLi8uLi9yZW5kZXJlci9CbGVuZE1vZGVzJyk7XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgbWV0aG9kcyB1c2VkIGZvciBzZXR0aW5nIHRoZSBibGVuZCBtb2RlIG9mIGEgR2FtZSBPYmplY3QuXHJcbiAqIFNob3VsZCBiZSBhcHBsaWVkIGFzIGEgbWl4aW4gYW5kIG5vdCB1c2VkIGRpcmVjdGx5LlxyXG4gKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkJsZW5kTW9kZVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICovXHJcblxyXG52YXIgQmxlbmRNb2RlID0ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS4gSG9sZHMgdGhlIGN1cnJlbnQgYmxlbmQgbW9kZS5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQmxlbmRNb2RlI19ibGVuZE1vZGVcclxuICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBfYmxlbmRNb2RlOiBCbGVuZE1vZGVzLk5PUk1BTCxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIEJsZW5kIE1vZGUgYmVpbmcgdXNlZCBieSB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIFRoaXMgY2FuIGJlIGEgY29uc3QsIHN1Y2ggYXMgYFBoYXNlci5CbGVuZE1vZGVzLlNDUkVFTmAsIG9yIGFuIGludGVnZXIsIHN1Y2ggYXMgNCAoZm9yIE92ZXJsYXkpXHJcbiAgICAgKlxyXG4gICAgICogVW5kZXIgV2ViR0wgb25seSB0aGUgZm9sbG93aW5nIEJsZW5kIE1vZGVzIGFyZSBhdmFpbGFibGU6XHJcbiAgICAgKlxyXG4gICAgICogKiBBRERcclxuICAgICAqICogTVVMVElQTFlcclxuICAgICAqICogU0NSRUVOXHJcbiAgICAgKiAqIEVSQVNFXHJcbiAgICAgKlxyXG4gICAgICogQ2FudmFzIGhhcyBtb3JlIGF2YWlsYWJsZSBkZXBlbmRpbmcgb24gYnJvd3NlciBzdXBwb3J0LlxyXG4gICAgICpcclxuICAgICAqIFlvdSBjYW4gYWxzbyBjcmVhdGUgeW91ciBvd24gY3VzdG9tIEJsZW5kIE1vZGVzIGluIFdlYkdMLlxyXG4gICAgICpcclxuICAgICAqIEJsZW5kIG1vZGVzIGhhdmUgZGlmZmVyZW50IGVmZmVjdHMgdW5kZXIgQ2FudmFzIGFuZCBXZWJHTCwgYW5kIGZyb20gYnJvd3NlciB0byBicm93c2VyLCBkZXBlbmRpbmdcclxuICAgICAqIG9uIHN1cHBvcnQuIEJsZW5kIE1vZGVzIGFsc28gY2F1c2UgYSBXZWJHTCBiYXRjaCBmbHVzaCBzaG91bGQgaXQgZW5jb3VudGVyIGEgbmV3IGJsZW5kIG1vZGUuIEZvciB0aGVzZVxyXG4gICAgICogcmVhc29ucyB0cnkgdG8gYmUgY2FyZWZ1bCBhYm91dCB0aGUgY29uc3RydWN0aW9uIG9mIHlvdXIgU2NlbmUgYW5kIHRoZSBmcmVxdWVuY3kgb2Ygd2hpY2ggYmxlbmQgbW9kZXNcclxuICAgICAqIGFyZSB1c2VkLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkJsZW5kTW9kZSNibGVuZE1vZGVcclxuICAgICAqIEB0eXBlIHsoUGhhc2VyLkJsZW5kTW9kZXN8c3RyaW5nKX1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBibGVuZE1vZGU6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2JsZW5kTW9kZTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IEJsZW5kTW9kZXNbdmFsdWVdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB2YWx1ZSB8PSAwO1xyXG5cclxuICAgICAgICAgICAgaWYgKHZhbHVlID49IC0xKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9ibGVuZE1vZGUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgQmxlbmQgTW9kZSBiZWluZyB1c2VkIGJ5IHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBjYW4gYmUgYSBjb25zdCwgc3VjaCBhcyBgUGhhc2VyLkJsZW5kTW9kZXMuU0NSRUVOYCwgb3IgYW4gaW50ZWdlciwgc3VjaCBhcyA0IChmb3IgT3ZlcmxheSlcclxuICAgICAqXHJcbiAgICAgKiBVbmRlciBXZWJHTCBvbmx5IHRoZSBmb2xsb3dpbmcgQmxlbmQgTW9kZXMgYXJlIGF2YWlsYWJsZTpcclxuICAgICAqXHJcbiAgICAgKiAqIEFERFxyXG4gICAgICogKiBNVUxUSVBMWVxyXG4gICAgICogKiBTQ1JFRU5cclxuICAgICAqICogRVJBU0UgKG9ubHkgd29ya3Mgd2hlbiByZW5kZXJpbmcgdG8gYSBmcmFtZWJ1ZmZlciwgbGlrZSBhIFJlbmRlciBUZXh0dXJlKVxyXG4gICAgICpcclxuICAgICAqIENhbnZhcyBoYXMgbW9yZSBhdmFpbGFibGUgZGVwZW5kaW5nIG9uIGJyb3dzZXIgc3VwcG9ydC5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIGFsc28gY3JlYXRlIHlvdXIgb3duIGN1c3RvbSBCbGVuZCBNb2RlcyBpbiBXZWJHTC5cclxuICAgICAqXHJcbiAgICAgKiBCbGVuZCBtb2RlcyBoYXZlIGRpZmZlcmVudCBlZmZlY3RzIHVuZGVyIENhbnZhcyBhbmQgV2ViR0wsIGFuZCBmcm9tIGJyb3dzZXIgdG8gYnJvd3NlciwgZGVwZW5kaW5nXHJcbiAgICAgKiBvbiBzdXBwb3J0LiBCbGVuZCBNb2RlcyBhbHNvIGNhdXNlIGEgV2ViR0wgYmF0Y2ggZmx1c2ggc2hvdWxkIGl0IGVuY291bnRlciBhIG5ldyBibGVuZCBtb2RlLiBGb3IgdGhlc2VcclxuICAgICAqIHJlYXNvbnMgdHJ5IHRvIGJlIGNhcmVmdWwgYWJvdXQgdGhlIGNvbnN0cnVjdGlvbiBvZiB5b3VyIFNjZW5lIGFuZCB0aGUgZnJlcXVlbmN5IGluIHdoaWNoIGJsZW5kIG1vZGVzXHJcbiAgICAgKiBhcmUgdXNlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkJsZW5kTW9kZSNzZXRCbGVuZE1vZGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xQaGFzZXIuQmxlbmRNb2Rlcyl9IHZhbHVlIC0gVGhlIEJsZW5kTW9kZSB2YWx1ZS4gRWl0aGVyIGEgc3RyaW5nIG9yIGEgQ09OU1QuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0QmxlbmRNb2RlOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5ibGVuZE1vZGUgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBCbGVuZE1vZGU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIG1ldGhvZHMgdXNlZCBmb3IgY2FsY3VsYXRpbmcgYW5kIHNldHRpbmcgdGhlIHNpemUgb2YgYSBub24tRnJhbWUgYmFzZWQgR2FtZSBPYmplY3QuXHJcbiAqIFNob3VsZCBiZSBhcHBsaWVkIGFzIGEgbWl4aW4gYW5kIG5vdCB1c2VkIGRpcmVjdGx5LlxyXG4gKiBcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5Db21wdXRlZFNpemVcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5cclxudmFyIENvbXB1dGVkU2l6ZSA9IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBuYXRpdmUgKHVuLXNjYWxlZCkgd2lkdGggb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogQ2hhbmdpbmcgdGhpcyB2YWx1ZSB3aWxsIG5vdCBjaGFuZ2UgdGhlIHNpemUgdGhhdCB0aGUgR2FtZSBPYmplY3QgaXMgcmVuZGVyZWQgaW4tZ2FtZS5cclxuICAgICAqIEZvciB0aGF0IHlvdSBuZWVkIHRvIGVpdGhlciBzZXQgdGhlIHNjYWxlIG9mIHRoZSBHYW1lIE9iamVjdCAoYHNldFNjYWxlYCkgb3IgdXNlXHJcbiAgICAgKiB0aGUgYGRpc3BsYXlXaWR0aGAgcHJvcGVydHkuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkNvbXB1dGVkU2l6ZSN3aWR0aFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB3aWR0aDogMCxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBuYXRpdmUgKHVuLXNjYWxlZCkgaGVpZ2h0IG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIENoYW5naW5nIHRoaXMgdmFsdWUgd2lsbCBub3QgY2hhbmdlIHRoZSBzaXplIHRoYXQgdGhlIEdhbWUgT2JqZWN0IGlzIHJlbmRlcmVkIGluLWdhbWUuXHJcbiAgICAgKiBGb3IgdGhhdCB5b3UgbmVlZCB0byBlaXRoZXIgc2V0IHRoZSBzY2FsZSBvZiB0aGUgR2FtZSBPYmplY3QgKGBzZXRTY2FsZWApIG9yIHVzZVxyXG4gICAgICogdGhlIGBkaXNwbGF5SGVpZ2h0YCBwcm9wZXJ0eS5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQ29tcHV0ZWRTaXplI2hlaWdodFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBoZWlnaHQ6IDAsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZGlzcGxheWVkIHdpZHRoIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIFRoaXMgdmFsdWUgdGFrZXMgaW50byBhY2NvdW50IHRoZSBzY2FsZSBmYWN0b3IuXHJcbiAgICAgKiBcclxuICAgICAqIFNldHRpbmcgdGhpcyB2YWx1ZSB3aWxsIGFkanVzdCB0aGUgR2FtZSBPYmplY3QncyBzY2FsZSBwcm9wZXJ0eS5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQ29tcHV0ZWRTaXplI2Rpc3BsYXlXaWR0aFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkaXNwbGF5V2lkdGg6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NhbGVYICogdGhpcy53aWR0aDtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2NhbGVYID0gdmFsdWUgLyB0aGlzLndpZHRoO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGRpc3BsYXllZCBoZWlnaHQgb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyB2YWx1ZSB0YWtlcyBpbnRvIGFjY291bnQgdGhlIHNjYWxlIGZhY3Rvci5cclxuICAgICAqIFxyXG4gICAgICogU2V0dGluZyB0aGlzIHZhbHVlIHdpbGwgYWRqdXN0IHRoZSBHYW1lIE9iamVjdCdzIHNjYWxlIHByb3BlcnR5LlxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5Db21wdXRlZFNpemUjZGlzcGxheUhlaWdodFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkaXNwbGF5SGVpZ2h0OiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNjYWxlWSAqIHRoaXMuaGVpZ2h0O1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zY2FsZVkgPSB2YWx1ZSAvIHRoaXMuaGVpZ2h0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgaW50ZXJuYWwgc2l6ZSBvZiB0aGlzIEdhbWUgT2JqZWN0LCBhcyB1c2VkIGZvciBmcmFtZSBvciBwaHlzaWNzIGJvZHkgY3JlYXRpb24uXHJcbiAgICAgKiBcclxuICAgICAqIFRoaXMgd2lsbCBub3QgY2hhbmdlIHRoZSBzaXplIHRoYXQgdGhlIEdhbWUgT2JqZWN0IGlzIHJlbmRlcmVkIGluLWdhbWUuXHJcbiAgICAgKiBGb3IgdGhhdCB5b3UgbmVlZCB0byBlaXRoZXIgc2V0IHRoZSBzY2FsZSBvZiB0aGUgR2FtZSBPYmplY3QgKGBzZXRTY2FsZWApIG9yIGNhbGwgdGhlXHJcbiAgICAgKiBgc2V0RGlzcGxheVNpemVgIG1ldGhvZCwgd2hpY2ggaXMgdGhlIHNhbWUgdGhpbmcgYXMgY2hhbmdpbmcgdGhlIHNjYWxlIGJ1dCBhbGxvd3MgeW91XHJcbiAgICAgKiB0byBkbyBzbyBieSBnaXZpbmcgcGl4ZWwgdmFsdWVzLlxyXG4gICAgICogXHJcbiAgICAgKiBJZiB5b3UgaGF2ZSBlbmFibGVkIHRoaXMgR2FtZSBPYmplY3QgZm9yIGlucHV0LCBjaGFuZ2luZyB0aGUgc2l6ZSB3aWxsIF9ub3RfIGNoYW5nZSB0aGVcclxuICAgICAqIHNpemUgb2YgdGhlIGhpdCBhcmVhLiBUbyBkbyB0aGlzIHlvdSBzaG91bGQgYWRqdXN0IHRoZSBgaW5wdXQuaGl0QXJlYWAgb2JqZWN0IGRpcmVjdGx5LlxyXG4gICAgICogXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkNvbXB1dGVkU2l6ZSNzZXRTaXplXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBUaGUgd2lkdGggb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgLSBUaGUgaGVpZ2h0IG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFNpemU6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgZGlzcGxheSBzaXplIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIENhbGxpbmcgdGhpcyB3aWxsIGFkanVzdCB0aGUgc2NhbGUuXHJcbiAgICAgKiBcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQ29tcHV0ZWRTaXplI3NldERpc3BsYXlTaXplXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBUaGUgd2lkdGggb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgLSBUaGUgaGVpZ2h0IG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldERpc3BsYXlTaXplOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlXaWR0aCA9IHdpZHRoO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUhlaWdodCA9IGhlaWdodDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDb21wdXRlZFNpemU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIG1ldGhvZHMgdXNlZCBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZyB0aGUgdGV4dHVyZSBvZiBhIEdhbWUgT2JqZWN0LlxyXG4gKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkNyb3BcclxuICogQHNpbmNlIDMuMTIuMFxyXG4gKi9cclxuXHJcbnZhciBDcm9wID0ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFRleHR1cmUgdGhpcyBHYW1lIE9iamVjdCBpcyB1c2luZyB0byByZW5kZXIgd2l0aC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5Dcm9wI3RleHR1cmVcclxuICAgICAqIEB0eXBlIHtQaGFzZXIuVGV4dHVyZXMuVGV4dHVyZXxQaGFzZXIuVGV4dHVyZXMuQ2FudmFzVGV4dHVyZX1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB0ZXh0dXJlOiBudWxsLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFRleHR1cmUgRnJhbWUgdGhpcyBHYW1lIE9iamVjdCBpcyB1c2luZyB0byByZW5kZXIgd2l0aC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5Dcm9wI2ZyYW1lXHJcbiAgICAgKiBAdHlwZSB7UGhhc2VyLlRleHR1cmVzLkZyYW1lfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGZyYW1lOiBudWxsLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBib29sZWFuIGZsYWcgaW5kaWNhdGluZyBpZiB0aGlzIEdhbWUgT2JqZWN0IGlzIGJlaW5nIGNyb3BwZWQgb3Igbm90LlxyXG4gICAgICogWW91IGNhbiB0b2dnbGUgdGhpcyBhdCBhbnkgdGltZSBhZnRlciBgc2V0Q3JvcGAgaGFzIGJlZW4gY2FsbGVkLCB0byB0dXJuIGNyb3BwaW5nIG9uIG9yIG9mZi5cclxuICAgICAqIEVxdWFsbHksIGNhbGxpbmcgYHNldENyb3BgIHdpdGggbm8gYXJndW1lbnRzIHdpbGwgcmVzZXQgdGhlIGNyb3AgYW5kIGRpc2FibGUgaXQuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQ3JvcCNpc0Nyb3BwZWRcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICovXHJcbiAgICBpc0Nyb3BwZWQ6IGZhbHNlLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXBwbGllcyBhIGNyb3AgdG8gYSB0ZXh0dXJlIGJhc2VkIEdhbWUgT2JqZWN0LCBzdWNoIGFzIGEgU3ByaXRlIG9yIEltYWdlLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgY3JvcCBpcyBhIHJlY3RhbmdsZSB0aGF0IGxpbWl0cyB0aGUgYXJlYSBvZiB0aGUgdGV4dHVyZSBmcmFtZSB0aGF0IGlzIHZpc2libGUgZHVyaW5nIHJlbmRlcmluZy5cclxuICAgICAqIFxyXG4gICAgICogQ3JvcHBpbmcgYSBHYW1lIE9iamVjdCBkb2VzIG5vdCBjaGFuZ2UgaXRzIHNpemUsIGRpbWVuc2lvbnMsIHBoeXNpY3MgYm9keSBvciBoaXQgYXJlYSwgaXQganVzdFxyXG4gICAgICogY2hhbmdlcyB3aGF0IGlzIHNob3duIHdoZW4gcmVuZGVyZWQuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBjcm9wIGNvb3JkaW5hdGVzIGFyZSByZWxhdGl2ZSB0byB0aGUgdGV4dHVyZSBmcmFtZSwgbm90IHRoZSBHYW1lIE9iamVjdCwgbWVhbmluZyAwIHggMCBpcyB0aGUgdG9wLWxlZnQuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZXJlZm9yZSwgaWYgeW91IGhhZCBhIEdhbWUgT2JqZWN0IHRoYXQgaGFkIGFuIDgwMHg2MDAgc2l6ZWQgdGV4dHVyZSwgYW5kIHlvdSB3YW50ZWQgdG8gc2hvdyBvbmx5IHRoZSBsZWZ0XHJcbiAgICAgKiBoYWxmIG9mIGl0LCB5b3UgY291bGQgY2FsbCBgc2V0Q3JvcCgwLCAwLCA0MDAsIDYwMClgLlxyXG4gICAgICogXHJcbiAgICAgKiBJdCBpcyBhbHNvIHNjYWxlZCB0byBtYXRjaCB0aGUgR2FtZSBPYmplY3Qgc2NhbGUgYXV0b21hdGljYWxseS4gVGhlcmVmb3JlIGEgY3JvcCByZWN0IG9mIDEwMHg1MCB3b3VsZCBjcm9wXHJcbiAgICAgKiBhbiBhcmVhIG9mIDIwMHgxMDAgd2hlbiBhcHBsaWVkIHRvIGEgR2FtZSBPYmplY3QgdGhhdCBoYWQgYSBzY2FsZSBmYWN0b3Igb2YgMi5cclxuICAgICAqIFxyXG4gICAgICogWW91IGNhbiBlaXRoZXIgcGFzcyBpbiBudW1lcmljIHZhbHVlcyBkaXJlY3RseSwgb3IgeW91IGNhbiBwcm92aWRlIGEgc2luZ2xlIFJlY3RhbmdsZSBvYmplY3QgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LlxyXG4gICAgICogXHJcbiAgICAgKiBDYWxsIHRoaXMgbWV0aG9kIHdpdGggbm8gYXJndW1lbnRzIGF0IGFsbCB0byByZXNldCB0aGUgY3JvcCwgb3IgdG9nZ2xlIHRoZSBwcm9wZXJ0eSBgaXNDcm9wcGVkYCB0byBgZmFsc2VgLlxyXG4gICAgICogXHJcbiAgICAgKiBZb3Ugc2hvdWxkIGRvIHRoaXMgaWYgdGhlIGNyb3AgcmVjdGFuZ2xlIGJlY29tZXMgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgZnJhbWUgaXRzZWxmLCBhcyBpdCB3aWxsIGFsbG93XHJcbiAgICAgKiB0aGUgcmVuZGVyZXIgdG8gc2tpcCBzZXZlcmFsIGludGVybmFsIGNhbGN1bGF0aW9ucy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkNyb3Ajc2V0Q3JvcFxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KG51bWJlcnxQaGFzZXIuR2VvbS5SZWN0YW5nbGUpfSBbeF0gLSBUaGUgeCBjb29yZGluYXRlIHRvIHN0YXJ0IHRoZSBjcm9wIGZyb20uIE9yIGEgUGhhc2VyLkdlb20uUmVjdGFuZ2xlIG9iamVjdCwgaW4gd2hpY2ggY2FzZSB0aGUgcmVzdCBvZiB0aGUgYXJndW1lbnRzIGFyZSBpZ25vcmVkLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5XSAtIFRoZSB5IGNvb3JkaW5hdGUgdG8gc3RhcnQgdGhlIGNyb3AgZnJvbS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbd2lkdGhdIC0gVGhlIHdpZHRoIG9mIHRoZSBjcm9wIHJlY3RhbmdsZSBpbiBwaXhlbHMuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2hlaWdodF0gLSBUaGUgaGVpZ2h0IG9mIHRoZSBjcm9wIHJlY3RhbmdsZSBpbiBwaXhlbHMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0Q3JvcDogZnVuY3Rpb24gKHgsIHksIHdpZHRoLCBoZWlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDcm9wcGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZnJhbWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHggPT09ICdudW1iZXInKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZyYW1lLnNldENyb3BVVnModGhpcy5fY3JvcCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgdGhpcy5mbGlwWCwgdGhpcy5mbGlwWSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcmVjdCA9IHg7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5mcmFtZS5zZXRDcm9wVVZzKHRoaXMuX2Nyb3AsIHJlY3QueCwgcmVjdC55LCByZWN0LndpZHRoLCByZWN0LmhlaWdodCwgdGhpcy5mbGlwWCwgdGhpcy5mbGlwWSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuaXNDcm9wcGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIG1ldGhvZCB0aGF0IHJldHVybnMgYSBibGFuaywgd2VsbC1mb3JtZWQgY3JvcCBvYmplY3QgZm9yIHVzZSBieSBhIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQ3JvcCNyZXNldENyb3BPYmplY3RcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge29iamVjdH0gVGhlIGNyb3Agb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICByZXNldENyb3BPYmplY3Q6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHsgdTA6IDAsIHYwOiAwLCB1MTogMCwgdjE6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDAsIHg6IDAsIHk6IDAsIGZsaXBYOiBmYWxzZSwgZmxpcFk6IGZhbHNlLCBjeDogMCwgY3k6IDAsIGN3OiAwLCBjaDogMCB9O1xyXG4gICAgfVxyXG5cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQ3JvcDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgbWV0aG9kcyB1c2VkIGZvciBzZXR0aW5nIHRoZSBkZXB0aCBvZiBhIEdhbWUgT2JqZWN0LlxyXG4gKiBTaG91bGQgYmUgYXBwbGllZCBhcyBhIG1peGluIGFuZCBub3QgdXNlZCBkaXJlY3RseS5cclxuICogXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuRGVwdGhcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5cclxudmFyIERlcHRoID0ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS4gSG9sZHMgdGhlIGRlcHRoIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuRGVwdGgjX2RlcHRoXHJcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgX2RlcHRoOiAwLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGRlcHRoIG9mIHRoaXMgR2FtZSBPYmplY3Qgd2l0aGluIHRoZSBTY2VuZS5cclxuICAgICAqIFxyXG4gICAgICogVGhlIGRlcHRoIGlzIGFsc28ga25vd24gYXMgdGhlICd6LWluZGV4JyBpbiBzb21lIGVudmlyb25tZW50cywgYW5kIGFsbG93cyB5b3UgdG8gY2hhbmdlIHRoZSByZW5kZXJpbmcgb3JkZXJcclxuICAgICAqIG9mIEdhbWUgT2JqZWN0cywgd2l0aG91dCBhY3R1YWxseSBtb3ZpbmcgdGhlaXIgcG9zaXRpb24gaW4gdGhlIGRpc3BsYXkgbGlzdC5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgZGVwdGggc3RhcnRzIGZyb20gemVybyAodGhlIGRlZmF1bHQgdmFsdWUpIGFuZCBpbmNyZWFzZXMgZnJvbSB0aGF0IHBvaW50LiBBIEdhbWUgT2JqZWN0IHdpdGggYSBoaWdoZXIgZGVwdGhcclxuICAgICAqIHZhbHVlIHdpbGwgYWx3YXlzIHJlbmRlciBpbiBmcm9udCBvZiBvbmUgd2l0aCBhIGxvd2VyIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIFNldHRpbmcgdGhlIGRlcHRoIHdpbGwgcXVldWUgYSBkZXB0aCBzb3J0IGV2ZW50IHdpdGhpbiB0aGUgU2NlbmUuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkRlcHRoI2RlcHRoXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRlcHRoOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kZXB0aDtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2NlbmUuc3lzLnF1ZXVlRGVwdGhTb3J0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlcHRoID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZGVwdGggb2YgdGhpcyBHYW1lIE9iamVjdCB3aXRoaW4gdGhlIFNjZW5lLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgZGVwdGggaXMgYWxzbyBrbm93biBhcyB0aGUgJ3otaW5kZXgnIGluIHNvbWUgZW52aXJvbm1lbnRzLCBhbmQgYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIHJlbmRlcmluZyBvcmRlclxyXG4gICAgICogb2YgR2FtZSBPYmplY3RzLCB3aXRob3V0IGFjdHVhbGx5IG1vdmluZyB0aGVpciBwb3NpdGlvbiBpbiB0aGUgZGlzcGxheSBsaXN0LlxyXG4gICAgICpcclxuICAgICAqIFRoZSBkZXB0aCBzdGFydHMgZnJvbSB6ZXJvICh0aGUgZGVmYXVsdCB2YWx1ZSkgYW5kIGluY3JlYXNlcyBmcm9tIHRoYXQgcG9pbnQuIEEgR2FtZSBPYmplY3Qgd2l0aCBhIGhpZ2hlciBkZXB0aFxyXG4gICAgICogdmFsdWUgd2lsbCBhbHdheXMgcmVuZGVyIGluIGZyb250IG9mIG9uZSB3aXRoIGEgbG93ZXIgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogU2V0dGluZyB0aGUgZGVwdGggd2lsbCBxdWV1ZSBhIGRlcHRoIHNvcnQgZXZlbnQgd2l0aGluIHRoZSBTY2VuZS5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5EZXB0aCNzZXREZXB0aFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSB2YWx1ZSAtIFRoZSBkZXB0aCBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXREZXB0aDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7IHZhbHVlID0gMDsgfVxyXG5cclxuICAgICAgICB0aGlzLmRlcHRoID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRGVwdGg7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIG1ldGhvZHMgdXNlZCBmb3IgdmlzdWFsbHkgZmxpcHBpbmcgYSBHYW1lIE9iamVjdC5cclxuICogU2hvdWxkIGJlIGFwcGxpZWQgYXMgYSBtaXhpbiBhbmQgbm90IHVzZWQgZGlyZWN0bHkuXHJcbiAqIFxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkZsaXBcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5cclxudmFyIEZsaXAgPSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgaG9yaXpvbnRhbGx5IGZsaXBwZWQgc3RhdGUgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBBIEdhbWUgT2JqZWN0IHRoYXQgaXMgZmxpcHBlZCBob3Jpem9udGFsbHkgd2lsbCByZW5kZXIgaW52ZXJzZWQgb24gdGhlIGhvcml6b250YWwgYXhpcy5cclxuICAgICAqIEZsaXBwaW5nIGFsd2F5cyB0YWtlcyBwbGFjZSBmcm9tIHRoZSBtaWRkbGUgb2YgdGhlIHRleHR1cmUgYW5kIGRvZXMgbm90IGltcGFjdCB0aGUgc2NhbGUgdmFsdWUuXHJcbiAgICAgKiBJZiB0aGlzIEdhbWUgT2JqZWN0IGhhcyBhIHBoeXNpY3MgYm9keSwgaXQgd2lsbCBub3QgY2hhbmdlIHRoZSBib2R5LiBUaGlzIGlzIGEgcmVuZGVyaW5nIHRvZ2dsZSBvbmx5LlxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5GbGlwI2ZsaXBYXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgZmxpcFg6IGZhbHNlLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHZlcnRpY2FsbHkgZmxpcHBlZCBzdGF0ZSBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIEEgR2FtZSBPYmplY3QgdGhhdCBpcyBmbGlwcGVkIHZlcnRpY2FsbHkgd2lsbCByZW5kZXIgaW52ZXJzZWQgb24gdGhlIHZlcnRpY2FsIGF4aXMgKGkuZS4gdXBzaWRlIGRvd24pXHJcbiAgICAgKiBGbGlwcGluZyBhbHdheXMgdGFrZXMgcGxhY2UgZnJvbSB0aGUgbWlkZGxlIG9mIHRoZSB0ZXh0dXJlIGFuZCBkb2VzIG5vdCBpbXBhY3QgdGhlIHNjYWxlIHZhbHVlLlxyXG4gICAgICogSWYgdGhpcyBHYW1lIE9iamVjdCBoYXMgYSBwaHlzaWNzIGJvZHksIGl0IHdpbGwgbm90IGNoYW5nZSB0aGUgYm9keS4gVGhpcyBpcyBhIHJlbmRlcmluZyB0b2dnbGUgb25seS5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuRmxpcCNmbGlwWVxyXG4gICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGZsaXBZOiBmYWxzZSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvZ2dsZXMgdGhlIGhvcml6b250YWwgZmxpcHBlZCBzdGF0ZSBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBBIEdhbWUgT2JqZWN0IHRoYXQgaXMgZmxpcHBlZCBob3Jpem9udGFsbHkgd2lsbCByZW5kZXIgaW52ZXJzZWQgb24gdGhlIGhvcml6b250YWwgYXhpcy5cclxuICAgICAqIEZsaXBwaW5nIGFsd2F5cyB0YWtlcyBwbGFjZSBmcm9tIHRoZSBtaWRkbGUgb2YgdGhlIHRleHR1cmUgYW5kIGRvZXMgbm90IGltcGFjdCB0aGUgc2NhbGUgdmFsdWUuXHJcbiAgICAgKiBJZiB0aGlzIEdhbWUgT2JqZWN0IGhhcyBhIHBoeXNpY3MgYm9keSwgaXQgd2lsbCBub3QgY2hhbmdlIHRoZSBib2R5LiBUaGlzIGlzIGEgcmVuZGVyaW5nIHRvZ2dsZSBvbmx5LlxyXG4gICAgICogXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkZsaXAjdG9nZ2xlRmxpcFhcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICB0b2dnbGVGbGlwWDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmZsaXBYID0gIXRoaXMuZmxpcFg7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvZ2dsZXMgdGhlIHZlcnRpY2FsIGZsaXBwZWQgc3RhdGUgb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5GbGlwI3RvZ2dsZUZsaXBZXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgdG9nZ2xlRmxpcFk6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5mbGlwWSA9ICF0aGlzLmZsaXBZO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBob3Jpem9udGFsIGZsaXBwZWQgc3RhdGUgb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogQSBHYW1lIE9iamVjdCB0aGF0IGlzIGZsaXBwZWQgaG9yaXpvbnRhbGx5IHdpbGwgcmVuZGVyIGludmVyc2VkIG9uIHRoZSBob3Jpem9udGFsIGF4aXMuXHJcbiAgICAgKiBGbGlwcGluZyBhbHdheXMgdGFrZXMgcGxhY2UgZnJvbSB0aGUgbWlkZGxlIG9mIHRoZSB0ZXh0dXJlIGFuZCBkb2VzIG5vdCBpbXBhY3QgdGhlIHNjYWxlIHZhbHVlLlxyXG4gICAgICogSWYgdGhpcyBHYW1lIE9iamVjdCBoYXMgYSBwaHlzaWNzIGJvZHksIGl0IHdpbGwgbm90IGNoYW5nZSB0aGUgYm9keS4gVGhpcyBpcyBhIHJlbmRlcmluZyB0b2dnbGUgb25seS5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5GbGlwI3NldEZsaXBYXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbHVlIC0gVGhlIGZsaXBwZWQgc3RhdGUuIGBmYWxzZWAgZm9yIG5vIGZsaXAsIG9yIGB0cnVlYCB0byBiZSBmbGlwcGVkLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRGbGlwWDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZmxpcFggPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdmVydGljYWwgZmxpcHBlZCBzdGF0ZSBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkZsaXAjc2V0RmxpcFlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gdmFsdWUgLSBUaGUgZmxpcHBlZCBzdGF0ZS4gYGZhbHNlYCBmb3Igbm8gZmxpcCwgb3IgYHRydWVgIHRvIGJlIGZsaXBwZWQuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldEZsaXBZOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5mbGlwWSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBmbGlwcGVkIHN0YXRlIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIEEgR2FtZSBPYmplY3QgdGhhdCBpcyBmbGlwcGVkIHdpbGwgcmVuZGVyIGludmVyc2VkIG9uIHRoZSBmbGlwcGVkIGF4aXMuXHJcbiAgICAgKiBGbGlwcGluZyBhbHdheXMgdGFrZXMgcGxhY2UgZnJvbSB0aGUgbWlkZGxlIG9mIHRoZSB0ZXh0dXJlIGFuZCBkb2VzIG5vdCBpbXBhY3QgdGhlIHNjYWxlIHZhbHVlLlxyXG4gICAgICogSWYgdGhpcyBHYW1lIE9iamVjdCBoYXMgYSBwaHlzaWNzIGJvZHksIGl0IHdpbGwgbm90IGNoYW5nZSB0aGUgYm9keS4gVGhpcyBpcyBhIHJlbmRlcmluZyB0b2dnbGUgb25seS5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5GbGlwI3NldEZsaXBcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0geCAtIFRoZSBob3Jpem9udGFsIGZsaXBwZWQgc3RhdGUuIGBmYWxzZWAgZm9yIG5vIGZsaXAsIG9yIGB0cnVlYCB0byBiZSBmbGlwcGVkLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSB5IC0gVGhlIGhvcml6b250YWwgZmxpcHBlZCBzdGF0ZS4gYGZhbHNlYCBmb3Igbm8gZmxpcCwgb3IgYHRydWVgIHRvIGJlIGZsaXBwZWQuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldEZsaXA6IGZ1bmN0aW9uICh4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZmxpcFggPSB4O1xyXG4gICAgICAgIHRoaXMuZmxpcFkgPSB5O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNldHMgdGhlIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIGZsaXBwZWQgc3RhdGUgb2YgdGhpcyBHYW1lIE9iamVjdCBiYWNrIHRvIHRoZWlyIGRlZmF1bHQgdW4tZmxpcHBlZCBzdGF0ZS5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5GbGlwI3Jlc2V0RmxpcFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcmVzZXRGbGlwOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZmxpcFggPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZsaXBZID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRmxpcDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgUmVjdGFuZ2xlID0gcmVxdWlyZSgnLi4vLi4vZ2VvbS9yZWN0YW5nbGUvUmVjdGFuZ2xlJyk7XHJcbnZhciBSb3RhdGVBcm91bmQgPSByZXF1aXJlKCcuLi8uLi9tYXRoL1JvdGF0ZUFyb3VuZCcpO1xyXG52YXIgVmVjdG9yMiA9IHJlcXVpcmUoJy4uLy4uL21hdGgvVmVjdG9yMicpO1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIG1ldGhvZHMgdXNlZCBmb3Igb2J0YWluaW5nIHRoZSBib3VuZHMgb2YgYSBHYW1lIE9iamVjdC5cclxuICogU2hvdWxkIGJlIGFwcGxpZWQgYXMgYSBtaXhpbiBhbmQgbm90IHVzZWQgZGlyZWN0bHkuXHJcbiAqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuR2V0Qm91bmRzXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKi9cclxuXHJcbnZhciBHZXRCb3VuZHMgPSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGJvdW5kcyBvdXRwdXQgdmVjdG9yIGJlZm9yZSByZXR1cm5pbmcgaXQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5HZXRCb3VuZHMjcHJlcGFyZUJvdW5kc091dHB1dFxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjE4LjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLk1hdGguVmVjdG9yMn0gTyAtIFtvdXRwdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuTWF0aC5WZWN0b3IyfG9iamVjdCl9IG91dHB1dCAtIEFuIG9iamVjdCB0byBzdG9yZSB0aGUgdmFsdWVzIGluLiBJZiBub3QgcHJvdmlkZWQgYSBuZXcgVmVjdG9yMiB3aWxsIGJlIGNyZWF0ZWQuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpbmNsdWRlUGFyZW50PWZhbHNlXSAtIElmIHRoaXMgR2FtZSBPYmplY3QgaGFzIGEgcGFyZW50IENvbnRhaW5lciwgaW5jbHVkZSBpdCAoYW5kIGFsbCBvdGhlciBhbmNlc3RvcnMpIGluIHRoZSByZXN1bHRpbmcgdmVjdG9yP1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4geyhQaGFzZXIuTWF0aC5WZWN0b3IyfG9iamVjdCl9IFRoZSB2YWx1ZXMgc3RvcmVkIGluIHRoZSBvdXRwdXQgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwcmVwYXJlQm91bmRzT3V0cHV0OiBmdW5jdGlvbiAob3V0cHV0LCBpbmNsdWRlUGFyZW50KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChpbmNsdWRlUGFyZW50ID09PSB1bmRlZmluZWQpIHsgaW5jbHVkZVBhcmVudCA9IGZhbHNlOyB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnJvdGF0aW9uICE9PSAwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgUm90YXRlQXJvdW5kKG91dHB1dCwgdGhpcy54LCB0aGlzLnksIHRoaXMucm90YXRpb24pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGluY2x1ZGVQYXJlbnQgJiYgdGhpcy5wYXJlbnRDb250YWluZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgcGFyZW50TWF0cml4ID0gdGhpcy5wYXJlbnRDb250YWluZXIuZ2V0Qm91bmRzVHJhbnNmb3JtTWF0cml4KCk7XHJcblxyXG4gICAgICAgICAgICBwYXJlbnRNYXRyaXgudHJhbnNmb3JtUG9pbnQob3V0cHV0LngsIG91dHB1dC55LCBvdXRwdXQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBjZW50ZXIgY29vcmRpbmF0ZSBvZiB0aGlzIEdhbWUgT2JqZWN0LCByZWdhcmRsZXNzIG9mIG9yaWdpbi5cclxuICAgICAqIFRoZSByZXR1cm5lZCBwb2ludCBpcyBjYWxjdWxhdGVkIGluIGxvY2FsIHNwYWNlIGFuZCBkb2VzIG5vdCBmYWN0b3IgaW4gYW55IHBhcmVudCBjb250YWluZXJzXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5HZXRCb3VuZHMjZ2V0Q2VudGVyXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLk1hdGguVmVjdG9yMn0gTyAtIFtvdXRwdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuTWF0aC5WZWN0b3IyfG9iamVjdCl9IFtvdXRwdXRdIC0gQW4gb2JqZWN0IHRvIHN0b3JlIHRoZSB2YWx1ZXMgaW4uIElmIG5vdCBwcm92aWRlZCBhIG5ldyBWZWN0b3IyIHdpbGwgYmUgY3JlYXRlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHsoUGhhc2VyLk1hdGguVmVjdG9yMnxvYmplY3QpfSBUaGUgdmFsdWVzIHN0b3JlZCBpbiB0aGUgb3V0cHV0IG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgZ2V0Q2VudGVyOiBmdW5jdGlvbiAob3V0cHV0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXRwdXQgPT09IHVuZGVmaW5lZCkgeyBvdXRwdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIG91dHB1dC54ID0gdGhpcy54IC0gKHRoaXMuZGlzcGxheVdpZHRoICogdGhpcy5vcmlnaW5YKSArICh0aGlzLmRpc3BsYXlXaWR0aCAvIDIpO1xyXG4gICAgICAgIG91dHB1dC55ID0gdGhpcy55IC0gKHRoaXMuZGlzcGxheUhlaWdodCAqIHRoaXMub3JpZ2luWSkgKyAodGhpcy5kaXNwbGF5SGVpZ2h0IC8gMik7XHJcblxyXG4gICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgdG9wLWxlZnQgY29ybmVyIGNvb3JkaW5hdGUgb2YgdGhpcyBHYW1lIE9iamVjdCwgcmVnYXJkbGVzcyBvZiBvcmlnaW4uXHJcbiAgICAgKiBUaGUgcmV0dXJuZWQgcG9pbnQgaXMgY2FsY3VsYXRlZCBpbiBsb2NhbCBzcGFjZSBhbmQgZG9lcyBub3QgZmFjdG9yIGluIGFueSBwYXJlbnQgY29udGFpbmVyc1xyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuR2V0Qm91bmRzI2dldFRvcExlZnRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBPIC0gW291dHB1dCwkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KFBoYXNlci5NYXRoLlZlY3RvcjJ8b2JqZWN0KX0gW291dHB1dF0gLSBBbiBvYmplY3QgdG8gc3RvcmUgdGhlIHZhbHVlcyBpbi4gSWYgbm90IHByb3ZpZGVkIGEgbmV3IFZlY3RvcjIgd2lsbCBiZSBjcmVhdGVkLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaW5jbHVkZVBhcmVudD1mYWxzZV0gLSBJZiB0aGlzIEdhbWUgT2JqZWN0IGhhcyBhIHBhcmVudCBDb250YWluZXIsIGluY2x1ZGUgaXQgKGFuZCBhbGwgb3RoZXIgYW5jZXN0b3JzKSBpbiB0aGUgcmVzdWx0aW5nIHZlY3Rvcj9cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHsoUGhhc2VyLk1hdGguVmVjdG9yMnxvYmplY3QpfSBUaGUgdmFsdWVzIHN0b3JlZCBpbiB0aGUgb3V0cHV0IG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgZ2V0VG9wTGVmdDogZnVuY3Rpb24gKG91dHB1dCwgaW5jbHVkZVBhcmVudClcclxuICAgIHtcclxuICAgICAgICBpZiAoIW91dHB1dCkgeyBvdXRwdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIG91dHB1dC54ID0gdGhpcy54IC0gKHRoaXMuZGlzcGxheVdpZHRoICogdGhpcy5vcmlnaW5YKTtcclxuICAgICAgICBvdXRwdXQueSA9IHRoaXMueSAtICh0aGlzLmRpc3BsYXlIZWlnaHQgKiB0aGlzLm9yaWdpblkpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wcmVwYXJlQm91bmRzT3V0cHV0KG91dHB1dCwgaW5jbHVkZVBhcmVudCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgdG9wLWNlbnRlciBjb29yZGluYXRlIG9mIHRoaXMgR2FtZSBPYmplY3QsIHJlZ2FyZGxlc3Mgb2Ygb3JpZ2luLlxyXG4gICAgICogVGhlIHJldHVybmVkIHBvaW50IGlzIGNhbGN1bGF0ZWQgaW4gbG9jYWwgc3BhY2UgYW5kIGRvZXMgbm90IGZhY3RvciBpbiBhbnkgcGFyZW50IGNvbnRhaW5lcnNcclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkdldEJvdW5kcyNnZXRUb3BDZW50ZXJcclxuICAgICAqIEBzaW5jZSAzLjE4LjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLk1hdGguVmVjdG9yMn0gTyAtIFtvdXRwdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuTWF0aC5WZWN0b3IyfG9iamVjdCl9IFtvdXRwdXRdIC0gQW4gb2JqZWN0IHRvIHN0b3JlIHRoZSB2YWx1ZXMgaW4uIElmIG5vdCBwcm92aWRlZCBhIG5ldyBWZWN0b3IyIHdpbGwgYmUgY3JlYXRlZC5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luY2x1ZGVQYXJlbnQ9ZmFsc2VdIC0gSWYgdGhpcyBHYW1lIE9iamVjdCBoYXMgYSBwYXJlbnQgQ29udGFpbmVyLCBpbmNsdWRlIGl0IChhbmQgYWxsIG90aGVyIGFuY2VzdG9ycykgaW4gdGhlIHJlc3VsdGluZyB2ZWN0b3I/XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7KFBoYXNlci5NYXRoLlZlY3RvcjJ8b2JqZWN0KX0gVGhlIHZhbHVlcyBzdG9yZWQgaW4gdGhlIG91dHB1dCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGdldFRvcENlbnRlcjogZnVuY3Rpb24gKG91dHB1dCwgaW5jbHVkZVBhcmVudClcclxuICAgIHtcclxuICAgICAgICBpZiAoIW91dHB1dCkgeyBvdXRwdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIG91dHB1dC54ID0gKHRoaXMueCAtICh0aGlzLmRpc3BsYXlXaWR0aCAqIHRoaXMub3JpZ2luWCkpICsgKHRoaXMuZGlzcGxheVdpZHRoIC8gMik7XHJcbiAgICAgICAgb3V0cHV0LnkgPSB0aGlzLnkgLSAodGhpcy5kaXNwbGF5SGVpZ2h0ICogdGhpcy5vcmlnaW5ZKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlcGFyZUJvdW5kc091dHB1dChvdXRwdXQsIGluY2x1ZGVQYXJlbnQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHRvcC1yaWdodCBjb3JuZXIgY29vcmRpbmF0ZSBvZiB0aGlzIEdhbWUgT2JqZWN0LCByZWdhcmRsZXNzIG9mIG9yaWdpbi5cclxuICAgICAqIFRoZSByZXR1cm5lZCBwb2ludCBpcyBjYWxjdWxhdGVkIGluIGxvY2FsIHNwYWNlIGFuZCBkb2VzIG5vdCBmYWN0b3IgaW4gYW55IHBhcmVudCBjb250YWluZXJzXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5HZXRCb3VuZHMjZ2V0VG9wUmlnaHRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBPIC0gW291dHB1dCwkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KFBoYXNlci5NYXRoLlZlY3RvcjJ8b2JqZWN0KX0gW291dHB1dF0gLSBBbiBvYmplY3QgdG8gc3RvcmUgdGhlIHZhbHVlcyBpbi4gSWYgbm90IHByb3ZpZGVkIGEgbmV3IFZlY3RvcjIgd2lsbCBiZSBjcmVhdGVkLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaW5jbHVkZVBhcmVudD1mYWxzZV0gLSBJZiB0aGlzIEdhbWUgT2JqZWN0IGhhcyBhIHBhcmVudCBDb250YWluZXIsIGluY2x1ZGUgaXQgKGFuZCBhbGwgb3RoZXIgYW5jZXN0b3JzKSBpbiB0aGUgcmVzdWx0aW5nIHZlY3Rvcj9cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHsoUGhhc2VyLk1hdGguVmVjdG9yMnxvYmplY3QpfSBUaGUgdmFsdWVzIHN0b3JlZCBpbiB0aGUgb3V0cHV0IG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgZ2V0VG9wUmlnaHQ6IGZ1bmN0aW9uIChvdXRwdXQsIGluY2x1ZGVQYXJlbnQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCFvdXRwdXQpIHsgb3V0cHV0ID0gbmV3IFZlY3RvcjIoKTsgfVxyXG5cclxuICAgICAgICBvdXRwdXQueCA9ICh0aGlzLnggLSAodGhpcy5kaXNwbGF5V2lkdGggKiB0aGlzLm9yaWdpblgpKSArIHRoaXMuZGlzcGxheVdpZHRoO1xyXG4gICAgICAgIG91dHB1dC55ID0gdGhpcy55IC0gKHRoaXMuZGlzcGxheUhlaWdodCAqIHRoaXMub3JpZ2luWSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnByZXBhcmVCb3VuZHNPdXRwdXQob3V0cHV0LCBpbmNsdWRlUGFyZW50KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBsZWZ0LWNlbnRlciBjb29yZGluYXRlIG9mIHRoaXMgR2FtZSBPYmplY3QsIHJlZ2FyZGxlc3Mgb2Ygb3JpZ2luLlxyXG4gICAgICogVGhlIHJldHVybmVkIHBvaW50IGlzIGNhbGN1bGF0ZWQgaW4gbG9jYWwgc3BhY2UgYW5kIGRvZXMgbm90IGZhY3RvciBpbiBhbnkgcGFyZW50IGNvbnRhaW5lcnNcclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkdldEJvdW5kcyNnZXRMZWZ0Q2VudGVyXHJcbiAgICAgKiBAc2luY2UgMy4xOC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0cHV0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoUGhhc2VyLk1hdGguVmVjdG9yMnxvYmplY3QpfSBbb3V0cHV0XSAtIEFuIG9iamVjdCB0byBzdG9yZSB0aGUgdmFsdWVzIGluLiBJZiBub3QgcHJvdmlkZWQgYSBuZXcgVmVjdG9yMiB3aWxsIGJlIGNyZWF0ZWQuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpbmNsdWRlUGFyZW50PWZhbHNlXSAtIElmIHRoaXMgR2FtZSBPYmplY3QgaGFzIGEgcGFyZW50IENvbnRhaW5lciwgaW5jbHVkZSBpdCAoYW5kIGFsbCBvdGhlciBhbmNlc3RvcnMpIGluIHRoZSByZXN1bHRpbmcgdmVjdG9yP1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4geyhQaGFzZXIuTWF0aC5WZWN0b3IyfG9iamVjdCl9IFRoZSB2YWx1ZXMgc3RvcmVkIGluIHRoZSBvdXRwdXQgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBnZXRMZWZ0Q2VudGVyOiBmdW5jdGlvbiAob3V0cHV0LCBpbmNsdWRlUGFyZW50KVxyXG4gICAge1xyXG4gICAgICAgIGlmICghb3V0cHV0KSB7IG91dHB1dCA9IG5ldyBWZWN0b3IyKCk7IH1cclxuXHJcbiAgICAgICAgb3V0cHV0LnggPSB0aGlzLnggLSAodGhpcy5kaXNwbGF5V2lkdGggKiB0aGlzLm9yaWdpblgpO1xyXG4gICAgICAgIG91dHB1dC55ID0gKHRoaXMueSAtICh0aGlzLmRpc3BsYXlIZWlnaHQgKiB0aGlzLm9yaWdpblkpKSArICh0aGlzLmRpc3BsYXlIZWlnaHQgLyAyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlcGFyZUJvdW5kc091dHB1dChvdXRwdXQsIGluY2x1ZGVQYXJlbnQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHJpZ2h0LWNlbnRlciBjb29yZGluYXRlIG9mIHRoaXMgR2FtZSBPYmplY3QsIHJlZ2FyZGxlc3Mgb2Ygb3JpZ2luLlxyXG4gICAgICogVGhlIHJldHVybmVkIHBvaW50IGlzIGNhbGN1bGF0ZWQgaW4gbG9jYWwgc3BhY2UgYW5kIGRvZXMgbm90IGZhY3RvciBpbiBhbnkgcGFyZW50IGNvbnRhaW5lcnNcclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkdldEJvdW5kcyNnZXRSaWdodENlbnRlclxyXG4gICAgICogQHNpbmNlIDMuMTguMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBPIC0gW291dHB1dCwkcmV0dXJuXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KFBoYXNlci5NYXRoLlZlY3RvcjJ8b2JqZWN0KX0gW291dHB1dF0gLSBBbiBvYmplY3QgdG8gc3RvcmUgdGhlIHZhbHVlcyBpbi4gSWYgbm90IHByb3ZpZGVkIGEgbmV3IFZlY3RvcjIgd2lsbCBiZSBjcmVhdGVkLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbaW5jbHVkZVBhcmVudD1mYWxzZV0gLSBJZiB0aGlzIEdhbWUgT2JqZWN0IGhhcyBhIHBhcmVudCBDb250YWluZXIsIGluY2x1ZGUgaXQgKGFuZCBhbGwgb3RoZXIgYW5jZXN0b3JzKSBpbiB0aGUgcmVzdWx0aW5nIHZlY3Rvcj9cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHsoUGhhc2VyLk1hdGguVmVjdG9yMnxvYmplY3QpfSBUaGUgdmFsdWVzIHN0b3JlZCBpbiB0aGUgb3V0cHV0IG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgZ2V0UmlnaHRDZW50ZXI6IGZ1bmN0aW9uIChvdXRwdXQsIGluY2x1ZGVQYXJlbnQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCFvdXRwdXQpIHsgb3V0cHV0ID0gbmV3IFZlY3RvcjIoKTsgfVxyXG5cclxuICAgICAgICBvdXRwdXQueCA9ICh0aGlzLnggLSAodGhpcy5kaXNwbGF5V2lkdGggKiB0aGlzLm9yaWdpblgpKSArIHRoaXMuZGlzcGxheVdpZHRoO1xyXG4gICAgICAgIG91dHB1dC55ID0gKHRoaXMueSAtICh0aGlzLmRpc3BsYXlIZWlnaHQgKiB0aGlzLm9yaWdpblkpKSArICh0aGlzLmRpc3BsYXlIZWlnaHQgLyAyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlcGFyZUJvdW5kc091dHB1dChvdXRwdXQsIGluY2x1ZGVQYXJlbnQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGJvdHRvbS1sZWZ0IGNvcm5lciBjb29yZGluYXRlIG9mIHRoaXMgR2FtZSBPYmplY3QsIHJlZ2FyZGxlc3Mgb2Ygb3JpZ2luLlxyXG4gICAgICogVGhlIHJldHVybmVkIHBvaW50IGlzIGNhbGN1bGF0ZWQgaW4gbG9jYWwgc3BhY2UgYW5kIGRvZXMgbm90IGZhY3RvciBpbiBhbnkgcGFyZW50IGNvbnRhaW5lcnNcclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkdldEJvdW5kcyNnZXRCb3R0b21MZWZ0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLk1hdGguVmVjdG9yMn0gTyAtIFtvdXRwdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuTWF0aC5WZWN0b3IyfG9iamVjdCl9IFtvdXRwdXRdIC0gQW4gb2JqZWN0IHRvIHN0b3JlIHRoZSB2YWx1ZXMgaW4uIElmIG5vdCBwcm92aWRlZCBhIG5ldyBWZWN0b3IyIHdpbGwgYmUgY3JlYXRlZC5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luY2x1ZGVQYXJlbnQ9ZmFsc2VdIC0gSWYgdGhpcyBHYW1lIE9iamVjdCBoYXMgYSBwYXJlbnQgQ29udGFpbmVyLCBpbmNsdWRlIGl0IChhbmQgYWxsIG90aGVyIGFuY2VzdG9ycykgaW4gdGhlIHJlc3VsdGluZyB2ZWN0b3I/XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7KFBoYXNlci5NYXRoLlZlY3RvcjJ8b2JqZWN0KX0gVGhlIHZhbHVlcyBzdG9yZWQgaW4gdGhlIG91dHB1dCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGdldEJvdHRvbUxlZnQ6IGZ1bmN0aW9uIChvdXRwdXQsIGluY2x1ZGVQYXJlbnQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCFvdXRwdXQpIHsgb3V0cHV0ID0gbmV3IFZlY3RvcjIoKTsgfVxyXG5cclxuICAgICAgICBvdXRwdXQueCA9IHRoaXMueCAtICh0aGlzLmRpc3BsYXlXaWR0aCAqIHRoaXMub3JpZ2luWCk7XHJcbiAgICAgICAgb3V0cHV0LnkgPSAodGhpcy55IC0gKHRoaXMuZGlzcGxheUhlaWdodCAqIHRoaXMub3JpZ2luWSkpICsgdGhpcy5kaXNwbGF5SGVpZ2h0O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wcmVwYXJlQm91bmRzT3V0cHV0KG91dHB1dCwgaW5jbHVkZVBhcmVudCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgYm90dG9tLWNlbnRlciBjb29yZGluYXRlIG9mIHRoaXMgR2FtZSBPYmplY3QsIHJlZ2FyZGxlc3Mgb2Ygb3JpZ2luLlxyXG4gICAgICogVGhlIHJldHVybmVkIHBvaW50IGlzIGNhbGN1bGF0ZWQgaW4gbG9jYWwgc3BhY2UgYW5kIGRvZXMgbm90IGZhY3RvciBpbiBhbnkgcGFyZW50IGNvbnRhaW5lcnNcclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkdldEJvdW5kcyNnZXRCb3R0b21DZW50ZXJcclxuICAgICAqIEBzaW5jZSAzLjE4LjBcclxuICAgICAqXHJcbiAgICAgKiBAZ2VuZXJpYyB7UGhhc2VyLk1hdGguVmVjdG9yMn0gTyAtIFtvdXRwdXQsJHJldHVybl1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuTWF0aC5WZWN0b3IyfG9iamVjdCl9IFtvdXRwdXRdIC0gQW4gb2JqZWN0IHRvIHN0b3JlIHRoZSB2YWx1ZXMgaW4uIElmIG5vdCBwcm92aWRlZCBhIG5ldyBWZWN0b3IyIHdpbGwgYmUgY3JlYXRlZC5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luY2x1ZGVQYXJlbnQ9ZmFsc2VdIC0gSWYgdGhpcyBHYW1lIE9iamVjdCBoYXMgYSBwYXJlbnQgQ29udGFpbmVyLCBpbmNsdWRlIGl0IChhbmQgYWxsIG90aGVyIGFuY2VzdG9ycykgaW4gdGhlIHJlc3VsdGluZyB2ZWN0b3I/XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7KFBoYXNlci5NYXRoLlZlY3RvcjJ8b2JqZWN0KX0gVGhlIHZhbHVlcyBzdG9yZWQgaW4gdGhlIG91dHB1dCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGdldEJvdHRvbUNlbnRlcjogZnVuY3Rpb24gKG91dHB1dCwgaW5jbHVkZVBhcmVudClcclxuICAgIHtcclxuICAgICAgICBpZiAoIW91dHB1dCkgeyBvdXRwdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIG91dHB1dC54ID0gKHRoaXMueCAtICh0aGlzLmRpc3BsYXlXaWR0aCAqIHRoaXMub3JpZ2luWCkpICsgKHRoaXMuZGlzcGxheVdpZHRoIC8gMik7XHJcbiAgICAgICAgb3V0cHV0LnkgPSAodGhpcy55IC0gKHRoaXMuZGlzcGxheUhlaWdodCAqIHRoaXMub3JpZ2luWSkpICsgdGhpcy5kaXNwbGF5SGVpZ2h0O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wcmVwYXJlQm91bmRzT3V0cHV0KG91dHB1dCwgaW5jbHVkZVBhcmVudCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgYm90dG9tLXJpZ2h0IGNvcm5lciBjb29yZGluYXRlIG9mIHRoaXMgR2FtZSBPYmplY3QsIHJlZ2FyZGxlc3Mgb2Ygb3JpZ2luLlxyXG4gICAgICogVGhlIHJldHVybmVkIHBvaW50IGlzIGNhbGN1bGF0ZWQgaW4gbG9jYWwgc3BhY2UgYW5kIGRvZXMgbm90IGZhY3RvciBpbiBhbnkgcGFyZW50IGNvbnRhaW5lcnNcclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkdldEJvdW5kcyNnZXRCb3R0b21SaWdodFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQGdlbmVyaWMge1BoYXNlci5NYXRoLlZlY3RvcjJ9IE8gLSBbb3V0cHV0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoUGhhc2VyLk1hdGguVmVjdG9yMnxvYmplY3QpfSBbb3V0cHV0XSAtIEFuIG9iamVjdCB0byBzdG9yZSB0aGUgdmFsdWVzIGluLiBJZiBub3QgcHJvdmlkZWQgYSBuZXcgVmVjdG9yMiB3aWxsIGJlIGNyZWF0ZWQuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpbmNsdWRlUGFyZW50PWZhbHNlXSAtIElmIHRoaXMgR2FtZSBPYmplY3QgaGFzIGEgcGFyZW50IENvbnRhaW5lciwgaW5jbHVkZSBpdCAoYW5kIGFsbCBvdGhlciBhbmNlc3RvcnMpIGluIHRoZSByZXN1bHRpbmcgdmVjdG9yP1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4geyhQaGFzZXIuTWF0aC5WZWN0b3IyfG9iamVjdCl9IFRoZSB2YWx1ZXMgc3RvcmVkIGluIHRoZSBvdXRwdXQgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBnZXRCb3R0b21SaWdodDogZnVuY3Rpb24gKG91dHB1dCwgaW5jbHVkZVBhcmVudClcclxuICAgIHtcclxuICAgICAgICBpZiAoIW91dHB1dCkgeyBvdXRwdXQgPSBuZXcgVmVjdG9yMigpOyB9XHJcblxyXG4gICAgICAgIG91dHB1dC54ID0gKHRoaXMueCAtICh0aGlzLmRpc3BsYXlXaWR0aCAqIHRoaXMub3JpZ2luWCkpICsgdGhpcy5kaXNwbGF5V2lkdGg7XHJcbiAgICAgICAgb3V0cHV0LnkgPSAodGhpcy55IC0gKHRoaXMuZGlzcGxheUhlaWdodCAqIHRoaXMub3JpZ2luWSkpICsgdGhpcy5kaXNwbGF5SGVpZ2h0O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wcmVwYXJlQm91bmRzT3V0cHV0KG91dHB1dCwgaW5jbHVkZVBhcmVudCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgYm91bmRzIG9mIHRoaXMgR2FtZSBPYmplY3QsIHJlZ2FyZGxlc3Mgb2Ygb3JpZ2luLlxyXG4gICAgICogVGhlIHZhbHVlcyBhcmUgc3RvcmVkIGFuZCByZXR1cm5lZCBpbiBhIFJlY3RhbmdsZSwgb3IgUmVjdGFuZ2xlLWxpa2UsIG9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkdldEJvdW5kcyNnZXRCb3VuZHNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBnZW5lcmljIHtQaGFzZXIuR2VvbS5SZWN0YW5nbGV9IE8gLSBbb3V0cHV0LCRyZXR1cm5dXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoUGhhc2VyLkdlb20uUmVjdGFuZ2xlfG9iamVjdCl9IFtvdXRwdXRdIC0gQW4gb2JqZWN0IHRvIHN0b3JlIHRoZSB2YWx1ZXMgaW4uIElmIG5vdCBwcm92aWRlZCBhIG5ldyBSZWN0YW5nbGUgd2lsbCBiZSBjcmVhdGVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4geyhQaGFzZXIuR2VvbS5SZWN0YW5nbGV8b2JqZWN0KX0gVGhlIHZhbHVlcyBzdG9yZWQgaW4gdGhlIG91dHB1dCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGdldEJvdW5kczogZnVuY3Rpb24gKG91dHB1dClcclxuICAgIHtcclxuICAgICAgICBpZiAob3V0cHV0ID09PSB1bmRlZmluZWQpIHsgb3V0cHV0ID0gbmV3IFJlY3RhbmdsZSgpOyB9XHJcblxyXG4gICAgICAgIC8vICBXZSBjYW4gdXNlIHRoZSBvdXRwdXQgb2JqZWN0IHRvIHRlbXBvcmFyaWx5IHN0b3JlIHRoZSB4L3kgY29vcmRzIGluOlxyXG5cclxuICAgICAgICB2YXIgVEx4LCBUTHksIFRSeCwgVFJ5LCBCTHgsIEJMeSwgQlJ4LCBCUnk7XHJcblxyXG4gICAgICAgIC8vIEluc3RlYWQgb2YgZG9pbmcgYSBjaGVjayBpZiBwYXJlbnQgY29udGFpbmVyIGlzIFxyXG4gICAgICAgIC8vIGRlZmluZWQgcGVyIGNvcm5lciB3ZSBvbmx5IGRvIGl0IG9uY2UuXHJcbiAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udGFpbmVyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHBhcmVudE1hdHJpeCA9IHRoaXMucGFyZW50Q29udGFpbmVyLmdldEJvdW5kc1RyYW5zZm9ybU1hdHJpeCgpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5nZXRUb3BMZWZ0KG91dHB1dCk7XHJcbiAgICAgICAgICAgIHBhcmVudE1hdHJpeC50cmFuc2Zvcm1Qb2ludChvdXRwdXQueCwgb3V0cHV0LnksIG91dHB1dCk7XHJcblxyXG4gICAgICAgICAgICBUTHggPSBvdXRwdXQueDtcclxuICAgICAgICAgICAgVEx5ID0gb3V0cHV0Lnk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdldFRvcFJpZ2h0KG91dHB1dCk7XHJcbiAgICAgICAgICAgIHBhcmVudE1hdHJpeC50cmFuc2Zvcm1Qb2ludChvdXRwdXQueCwgb3V0cHV0LnksIG91dHB1dCk7XHJcblxyXG4gICAgICAgICAgICBUUnggPSBvdXRwdXQueDtcclxuICAgICAgICAgICAgVFJ5ID0gb3V0cHV0Lnk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdldEJvdHRvbUxlZnQob3V0cHV0KTtcclxuICAgICAgICAgICAgcGFyZW50TWF0cml4LnRyYW5zZm9ybVBvaW50KG91dHB1dC54LCBvdXRwdXQueSwgb3V0cHV0KTtcclxuXHJcbiAgICAgICAgICAgIEJMeCA9IG91dHB1dC54O1xyXG4gICAgICAgICAgICBCTHkgPSBvdXRwdXQueTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Qm90dG9tUmlnaHQob3V0cHV0KTtcclxuICAgICAgICAgICAgcGFyZW50TWF0cml4LnRyYW5zZm9ybVBvaW50KG91dHB1dC54LCBvdXRwdXQueSwgb3V0cHV0KTtcclxuXHJcbiAgICAgICAgICAgIEJSeCA9IG91dHB1dC54O1xyXG4gICAgICAgICAgICBCUnkgPSBvdXRwdXQueTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRUb3BMZWZ0KG91dHB1dCk7XHJcblxyXG4gICAgICAgICAgICBUTHggPSBvdXRwdXQueDtcclxuICAgICAgICAgICAgVEx5ID0gb3V0cHV0Lnk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdldFRvcFJpZ2h0KG91dHB1dCk7XHJcblxyXG4gICAgICAgICAgICBUUnggPSBvdXRwdXQueDtcclxuICAgICAgICAgICAgVFJ5ID0gb3V0cHV0Lnk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdldEJvdHRvbUxlZnQob3V0cHV0KTtcclxuXHJcbiAgICAgICAgICAgIEJMeCA9IG91dHB1dC54O1xyXG4gICAgICAgICAgICBCTHkgPSBvdXRwdXQueTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Qm90dG9tUmlnaHQob3V0cHV0KTtcclxuXHJcbiAgICAgICAgICAgIEJSeCA9IG91dHB1dC54O1xyXG4gICAgICAgICAgICBCUnkgPSBvdXRwdXQueTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG91dHB1dC54ID0gTWF0aC5taW4oVEx4LCBUUngsIEJMeCwgQlJ4KTtcclxuICAgICAgICBvdXRwdXQueSA9IE1hdGgubWluKFRMeSwgVFJ5LCBCTHksIEJSeSk7XHJcbiAgICAgICAgb3V0cHV0LndpZHRoID0gTWF0aC5tYXgoVEx4LCBUUngsIEJMeCwgQlJ4KSAtIG91dHB1dC54O1xyXG4gICAgICAgIG91dHB1dC5oZWlnaHQgPSBNYXRoLm1heChUTHksIFRSeSwgQkx5LCBCUnkpIC0gb3V0cHV0Lnk7XHJcblxyXG4gICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICB9XHJcblxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHZXRCb3VuZHM7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEJpdG1hcE1hc2sgPSByZXF1aXJlKCcuLi8uLi9kaXNwbGF5L21hc2svQml0bWFwTWFzaycpO1xyXG52YXIgR2VvbWV0cnlNYXNrID0gcmVxdWlyZSgnLi4vLi4vZGlzcGxheS9tYXNrL0dlb21ldHJ5TWFzaycpO1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIG1ldGhvZHMgdXNlZCBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZyB0aGUgbWFzayBvZiBhIEdhbWUgT2JqZWN0LlxyXG4gKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLk1hc2tcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5cclxudmFyIE1hc2sgPSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgTWFzayB0aGlzIEdhbWUgT2JqZWN0IGlzIHVzaW5nIGR1cmluZyByZW5kZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuTWFzayNtYXNrXHJcbiAgICAgKiBAdHlwZSB7UGhhc2VyLkRpc3BsYXkuTWFza3MuQml0bWFwTWFza3xQaGFzZXIuRGlzcGxheS5NYXNrcy5HZW9tZXRyeU1hc2t9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgbWFzazogbnVsbCxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIG1hc2sgdGhhdCB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIHJlbmRlciB3aXRoLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBtYXNrIG11c3QgaGF2ZSBiZWVuIHByZXZpb3VzbHkgY3JlYXRlZCBhbmQgY2FuIGJlIGVpdGhlciBhIEdlb21ldHJ5TWFzayBvciBhIEJpdG1hcE1hc2suXHJcbiAgICAgKiBOb3RlOiBCaXRtYXAgTWFza3Mgb25seSB3b3JrIG9uIFdlYkdMLiBHZW9tZXRyeSBNYXNrcyB3b3JrIG9uIGJvdGggV2ViR0wgYW5kIENhbnZhcy5cclxuICAgICAqXHJcbiAgICAgKiBJZiBhIG1hc2sgaXMgYWxyZWFkeSBzZXQgb24gdGhpcyBHYW1lIE9iamVjdCBpdCB3aWxsIGJlIGltbWVkaWF0ZWx5IHJlcGxhY2VkLlxyXG4gICAgICogXHJcbiAgICAgKiBNYXNrcyBhcmUgcG9zaXRpb25lZCBpbiBnbG9iYWwgc3BhY2UgYW5kIGFyZSBub3QgcmVsYXRpdmUgdG8gdGhlIEdhbWUgT2JqZWN0IHRvIHdoaWNoIHRoZXlcclxuICAgICAqIGFyZSBhcHBsaWVkLiBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHRoYXQgbXVsdGlwbGUgR2FtZSBPYmplY3RzIGNhbiBhbGwgc2hhcmUgdGhlIHNhbWUgbWFzay5cclxuICAgICAqIFxyXG4gICAgICogTWFza3MgaGF2ZSBubyBpbXBhY3Qgb24gcGh5c2ljcyBvciBpbnB1dCBkZXRlY3Rpb24uIFRoZXkgYXJlIHB1cmVseSBhIHJlbmRlcmluZyBjb21wb25lbnRcclxuICAgICAqIHRoYXQgYWxsb3dzIHlvdSB0byBsaW1pdCB3aGF0IGlzIHZpc2libGUgZHVyaW5nIHRoZSByZW5kZXIgcGFzcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLk1hc2sjc2V0TWFza1xyXG4gICAgICogQHNpbmNlIDMuNi4yXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuRGlzcGxheS5NYXNrcy5CaXRtYXBNYXNrfFBoYXNlci5EaXNwbGF5Lk1hc2tzLkdlb21ldHJ5TWFza30gbWFzayAtIFRoZSBtYXNrIHRoaXMgR2FtZSBPYmplY3Qgd2lsbCB1c2Ugd2hlbiByZW5kZXJpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0TWFzazogZnVuY3Rpb24gKG1hc2spXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5tYXNrID0gbWFzaztcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xlYXJzIHRoZSBtYXNrIHRoYXQgdGhpcyBHYW1lIE9iamVjdCB3YXMgdXNpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5NYXNrI2NsZWFyTWFza1xyXG4gICAgICogQHNpbmNlIDMuNi4yXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZGVzdHJveU1hc2s9ZmFsc2VdIC0gRGVzdHJveSB0aGUgbWFzayBiZWZvcmUgY2xlYXJpbmcgaXQ/XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgY2xlYXJNYXNrOiBmdW5jdGlvbiAoZGVzdHJveU1hc2spXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGRlc3Ryb3lNYXNrID09PSB1bmRlZmluZWQpIHsgZGVzdHJveU1hc2sgPSBmYWxzZTsgfVxyXG5cclxuICAgICAgICBpZiAoZGVzdHJveU1hc2sgJiYgdGhpcy5tYXNrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5tYXNrLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubWFzayA9IG51bGw7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBCaXRtYXAgTWFzay4gVGhpcyBtYXNrIGNhbiBiZSB1c2VkIGJ5IGFueSBHYW1lIE9iamVjdCxcclxuICAgICAqIGluY2x1ZGluZyB0aGlzIG9uZS5cclxuICAgICAqXHJcbiAgICAgKiBUbyBjcmVhdGUgdGhlIG1hc2sgeW91IG5lZWQgdG8gcGFzcyBpbiBhIHJlZmVyZW5jZSB0byBhIHJlbmRlcmFibGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBBIHJlbmRlcmFibGUgR2FtZSBPYmplY3QgaXMgb25lIHRoYXQgdXNlcyBhIHRleHR1cmUgdG8gcmVuZGVyIHdpdGgsIHN1Y2ggYXMgYW5cclxuICAgICAqIEltYWdlLCBTcHJpdGUsIFJlbmRlciBUZXh0dXJlIG9yIEJpdG1hcFRleHQuXHJcbiAgICAgKlxyXG4gICAgICogSWYgeW91IGRvIG5vdCBwcm92aWRlIGEgcmVuZGVyYWJsZSBvYmplY3QsIGFuZCB0aGlzIEdhbWUgT2JqZWN0IGhhcyBhIHRleHR1cmUsXHJcbiAgICAgKiBpdCB3aWxsIHVzZSBpdHNlbGYgYXMgdGhlIG9iamVjdC4gVGhpcyBtZWFucyB5b3UgY2FuIGNhbGwgdGhpcyBtZXRob2QgdG8gY3JlYXRlXHJcbiAgICAgKiBhIEJpdG1hcCBNYXNrIGZyb20gYW55IHJlbmRlcmFibGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5NYXNrI2NyZWF0ZUJpdG1hcE1hc2tcclxuICAgICAqIEBzaW5jZSAzLjYuMlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBbcmVuZGVyYWJsZV0gLSBBIHJlbmRlcmFibGUgR2FtZSBPYmplY3QgdGhhdCB1c2VzIGEgdGV4dHVyZSwgc3VjaCBhcyBhIFNwcml0ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuRGlzcGxheS5NYXNrcy5CaXRtYXBNYXNrfSBUaGlzIEJpdG1hcCBNYXNrIHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZUJpdG1hcE1hc2s6IGZ1bmN0aW9uIChyZW5kZXJhYmxlKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChyZW5kZXJhYmxlID09PSB1bmRlZmluZWQgJiYgKHRoaXMudGV4dHVyZSB8fCB0aGlzLnNoYWRlcikpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29uc2lzdGVudC10aGlzXHJcbiAgICAgICAgICAgIHJlbmRlcmFibGUgPSB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBCaXRtYXBNYXNrKHRoaXMuc2NlbmUsIHJlbmRlcmFibGUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSBHZW9tZXRyeSBNYXNrLiBUaGlzIG1hc2sgY2FuIGJlIHVzZWQgYnkgYW55IEdhbWUgT2JqZWN0LFxyXG4gICAgICogaW5jbHVkaW5nIHRoaXMgb25lLlxyXG4gICAgICpcclxuICAgICAqIFRvIGNyZWF0ZSB0aGUgbWFzayB5b3UgbmVlZCB0byBwYXNzIGluIGEgcmVmZXJlbmNlIHRvIGEgR3JhcGhpY3MgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogSWYgeW91IGRvIG5vdCBwcm92aWRlIGEgZ3JhcGhpY3Mgb2JqZWN0LCBhbmQgdGhpcyBHYW1lIE9iamVjdCBpcyBhbiBpbnN0YW5jZVxyXG4gICAgICogb2YgYSBHcmFwaGljcyBvYmplY3QsIHRoZW4gaXQgd2lsbCB1c2UgaXRzZWxmIHRvIGNyZWF0ZSB0aGUgbWFzay5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyBtZWFucyB5b3UgY2FuIGNhbGwgdGhpcyBtZXRob2QgdG8gY3JlYXRlIGEgR2VvbWV0cnkgTWFzayBmcm9tIGFueSBHcmFwaGljcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLk1hc2sjY3JlYXRlR2VvbWV0cnlNYXNrXHJcbiAgICAgKiBAc2luY2UgMy42LjJcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3N9IFtncmFwaGljc10gLSBBIEdyYXBoaWNzIEdhbWUgT2JqZWN0LiBUaGUgZ2VvbWV0cnkgd2l0aGluIGl0IHdpbGwgYmUgdXNlZCBhcyB0aGUgbWFzay5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuRGlzcGxheS5NYXNrcy5HZW9tZXRyeU1hc2t9IFRoaXMgR2VvbWV0cnkgTWFzayB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gICAgICovXHJcbiAgICBjcmVhdGVHZW9tZXRyeU1hc2s6IGZ1bmN0aW9uIChncmFwaGljcylcclxuICAgIHtcclxuICAgICAgICBpZiAoZ3JhcGhpY3MgPT09IHVuZGVmaW5lZCAmJiB0aGlzLnR5cGUgPT09ICdHcmFwaGljcycpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29uc2lzdGVudC10aGlzXHJcbiAgICAgICAgICAgIGdyYXBoaWNzID0gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgR2VvbWV0cnlNYXNrKHRoaXMuc2NlbmUsIGdyYXBoaWNzKTtcclxuICAgIH1cclxuXHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IE1hc2s7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIG1ldGhvZHMgdXNlZCBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZyB0aGUgb3JpZ2luIG9mIGEgR2FtZSBPYmplY3QuXHJcbiAqIFZhbHVlcyBhcmUgbm9ybWFsaXplZCwgZ2l2ZW4gaW4gdGhlIHJhbmdlIDAgdG8gMS5cclxuICogRGlzcGxheSB2YWx1ZXMgY29udGFpbiB0aGUgY2FsY3VsYXRlZCBwaXhlbCB2YWx1ZXMuXHJcbiAqIFNob3VsZCBiZSBhcHBsaWVkIGFzIGEgbWl4aW4gYW5kIG5vdCB1c2VkIGRpcmVjdGx5LlxyXG4gKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLk9yaWdpblxyXG4gKiBAc2luY2UgMy4wLjBcclxuICovXHJcblxyXG52YXIgT3JpZ2luID0ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBwcm9wZXJ0eSBpbmRpY2F0aW5nIHRoYXQgYSBHYW1lIE9iamVjdCBoYXMgdGhpcyBjb21wb25lbnQuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuT3JpZ2luI19vcmlnaW5Db21wb25lbnRcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAqIEBzaW5jZSAzLjIuMFxyXG4gICAgICovXHJcbiAgICBfb3JpZ2luQ29tcG9uZW50OiB0cnVlLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGhvcml6b250YWwgb3JpZ2luIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBUaGUgb3JpZ2luIG1hcHMgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAwLjUsIG1lYW5pbmcgYWxsIEdhbWUgT2JqZWN0cyBhcmUgcG9zaXRpb25lZCBiYXNlZCBvbiB0aGVpciBjZW50ZXIuXHJcbiAgICAgKiBTZXR0aW5nIHRoZSB2YWx1ZSB0byAwIG1lYW5zIHRoZSBwb3NpdGlvbiBub3cgcmVsYXRlcyB0byB0aGUgbGVmdCBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuT3JpZ2luI29yaWdpblhcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAZGVmYXVsdCAwLjVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBvcmlnaW5YOiAwLjUsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdmVydGljYWwgb3JpZ2luIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBUaGUgb3JpZ2luIG1hcHMgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSBzaXplIGFuZCBwb3NpdGlvbiBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAwLjUsIG1lYW5pbmcgYWxsIEdhbWUgT2JqZWN0cyBhcmUgcG9zaXRpb25lZCBiYXNlZCBvbiB0aGVpciBjZW50ZXIuXHJcbiAgICAgKiBTZXR0aW5nIHRoZSB2YWx1ZSB0byAwIG1lYW5zIHRoZSBwb3NpdGlvbiBub3cgcmVsYXRlcyB0byB0aGUgdG9wIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5PcmlnaW4jb3JpZ2luWVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBkZWZhdWx0IDAuNVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIG9yaWdpblk6IDAuNSxcclxuXHJcbiAgICAvLyAgcHJpdmF0ZSArIHJlYWQgb25seVxyXG4gICAgX2Rpc3BsYXlPcmlnaW5YOiAwLFxyXG4gICAgX2Rpc3BsYXlPcmlnaW5ZOiAwLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGhvcml6b250YWwgZGlzcGxheSBvcmlnaW4gb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFRoZSBvcmlnaW4gaXMgYSBub3JtYWxpemVkIHZhbHVlIGJldHdlZW4gMCBhbmQgMS5cclxuICAgICAqIFRoZSBkaXNwbGF5T3JpZ2luIGlzIGEgcGl4ZWwgdmFsdWUsIGJhc2VkIG9uIHRoZSBzaXplIG9mIHRoZSBHYW1lIE9iamVjdCBjb21iaW5lZCB3aXRoIHRoZSBvcmlnaW4uXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuT3JpZ2luI2Rpc3BsYXlPcmlnaW5YXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRpc3BsYXlPcmlnaW5YOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5T3JpZ2luWDtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlPcmlnaW5YID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMub3JpZ2luWCA9IHZhbHVlIC8gdGhpcy53aWR0aDtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB2ZXJ0aWNhbCBkaXNwbGF5IG9yaWdpbiBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogVGhlIG9yaWdpbiBpcyBhIG5vcm1hbGl6ZWQgdmFsdWUgYmV0d2VlbiAwIGFuZCAxLlxyXG4gICAgICogVGhlIGRpc3BsYXlPcmlnaW4gaXMgYSBwaXhlbCB2YWx1ZSwgYmFzZWQgb24gdGhlIHNpemUgb2YgdGhlIEdhbWUgT2JqZWN0IGNvbWJpbmVkIHdpdGggdGhlIG9yaWdpbi5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5PcmlnaW4jZGlzcGxheU9yaWdpbllcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgZGlzcGxheU9yaWdpblk6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlPcmlnaW5ZO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fZGlzcGxheU9yaWdpblkgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5vcmlnaW5ZID0gdmFsdWUgLyB0aGlzLmhlaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIG9yaWdpbiBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIFRoZSB2YWx1ZXMgYXJlIGdpdmVuIGluIHRoZSByYW5nZSAwIHRvIDEuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5PcmlnaW4jc2V0T3JpZ2luXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3g9MC41XSAtIFRoZSBob3Jpem9udGFsIG9yaWdpbiB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeT14XSAtIFRoZSB2ZXJ0aWNhbCBvcmlnaW4gdmFsdWUuIElmIG5vdCBkZWZpbmVkIGl0IHdpbGwgYmUgc2V0IHRvIHRoZSB2YWx1ZSBvZiBgeGAuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0T3JpZ2luOiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7IHggPSAwLjU7IH1cclxuICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSB4OyB9XHJcblxyXG4gICAgICAgIHRoaXMub3JpZ2luWCA9IHg7XHJcbiAgICAgICAgdGhpcy5vcmlnaW5ZID0geTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlRGlzcGxheU9yaWdpbigpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIG9yaWdpbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGJhc2VkIG9uIHRoZSBQaXZvdCB2YWx1ZXMgaW4gaXRzIEZyYW1lLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuT3JpZ2luI3NldE9yaWdpbkZyb21GcmFtZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0T3JpZ2luRnJvbUZyYW1lOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5mcmFtZSB8fCAhdGhpcy5mcmFtZS5jdXN0b21QaXZvdClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNldE9yaWdpbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm9yaWdpblggPSB0aGlzLmZyYW1lLnBpdm90WDtcclxuICAgICAgICAgICAgdGhpcy5vcmlnaW5ZID0gdGhpcy5mcmFtZS5waXZvdFk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVEaXNwbGF5T3JpZ2luKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgZGlzcGxheSBvcmlnaW4gb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBhbmQgc2V0dGluZyB0aGUgb3JpZ2luIGlzIHRoYXQgeW91IGNhbiB1c2UgcGl4ZWwgdmFsdWVzIGZvciBzZXR0aW5nIHRoZSBkaXNwbGF5IG9yaWdpbi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLk9yaWdpbiNzZXREaXNwbGF5T3JpZ2luXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3g9MF0gLSBUaGUgaG9yaXpvbnRhbCBkaXNwbGF5IG9yaWdpbiB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeT14XSAtIFRoZSB2ZXJ0aWNhbCBkaXNwbGF5IG9yaWdpbiB2YWx1ZS4gSWYgbm90IGRlZmluZWQgaXQgd2lsbCBiZSBzZXQgdG8gdGhlIHZhbHVlIG9mIGB4YC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXREaXNwbGF5T3JpZ2luOiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7IHggPSAwOyB9XHJcbiAgICAgICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgeyB5ID0geDsgfVxyXG5cclxuICAgICAgICB0aGlzLmRpc3BsYXlPcmlnaW5YID0geDtcclxuICAgICAgICB0aGlzLmRpc3BsYXlPcmlnaW5ZID0geTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgRGlzcGxheSBPcmlnaW4gY2FjaGVkIHZhbHVlcyBpbnRlcm5hbGx5IHN0b3JlZCBvbiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogWW91IGRvbid0IHVzdWFsbHkgY2FsbCB0aGlzIGRpcmVjdGx5LCBidXQgaXQgaXMgZXhwb3NlZCBmb3IgZWRnZS1jYXNlcyB3aGVyZSB5b3UgbWF5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuT3JpZ2luI3VwZGF0ZURpc3BsYXlPcmlnaW5cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZURpc3BsYXlPcmlnaW46IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fZGlzcGxheU9yaWdpblggPSB0aGlzLm9yaWdpblggKiB0aGlzLndpZHRoO1xyXG4gICAgICAgIHRoaXMuX2Rpc3BsYXlPcmlnaW5ZID0gdGhpcy5vcmlnaW5ZICogdGhpcy5oZWlnaHQ7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gT3JpZ2luO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBEZWdUb1JhZCA9IHJlcXVpcmUoJy4uLy4uL21hdGgvRGVnVG9SYWQnKTtcclxudmFyIEdldEJvb2xlYW4gPSByZXF1aXJlKCcuLi8uLi90d2VlbnMvYnVpbGRlcnMvR2V0Qm9vbGVhbicpO1xyXG52YXIgR2V0VmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0VmFsdWUnKTtcclxudmFyIFRXRUVOX0NPTlNUID0gcmVxdWlyZSgnLi4vLi4vdHdlZW5zL3R3ZWVuL2NvbnN0Jyk7XHJcbnZhciBWZWN0b3IyID0gcmVxdWlyZSgnLi4vLi4vbWF0aC9WZWN0b3IyJyk7XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgbWV0aG9kcyB1c2VkIGZvciBtYW5hZ2luZyBhIEdhbWUgT2JqZWN0IGZvbGxvd2luZyBhIFBhdGguXHJcbiAqIFNob3VsZCBiZSBhcHBsaWVkIGFzIGEgbWl4aW4gYW5kIG5vdCB1c2VkIGRpcmVjdGx5LlxyXG4gKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlBhdGhGb2xsb3dlclxyXG4gKiBAc2luY2UgMy4xNy4wXHJcbiAqL1xyXG5cclxudmFyIFBhdGhGb2xsb3dlciA9IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBQYXRoIHRoaXMgUGF0aEZvbGxvd2VyIGlzIGZvbGxvd2luZy4gSXQgY2FuIG9ubHkgZm9sbG93IG9uZSBQYXRoIGF0IGEgdGltZS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5QYXRoRm9sbG93ZXIjcGF0aFxyXG4gICAgICogQHR5cGUge1BoYXNlci5DdXJ2ZXMuUGF0aH1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBwYXRoOiBudWxsLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdWxkIHRoZSBQYXRoRm9sbG93ZXIgYXV0b21hdGljYWxseSByb3RhdGUgdG8gcG9pbnQgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgUGF0aD9cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5QYXRoRm9sbG93ZXIjcm90YXRlVG9QYXRoXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgcm90YXRlVG9QYXRoOiBmYWxzZSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIElmIHRoZSBQYXRoRm9sbG93ZXIgaXMgcm90YXRpbmcgdG8gbWF0Y2ggdGhlIFBhdGggKEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhdGhGb2xsb3dlciNyb3RhdGVUb1BhdGgpXHJcbiAgICAgKiB0aGlzIHZhbHVlIGlzIGFkZGVkIHRvIHRoZSByb3RhdGlvbiB2YWx1ZS4gVGhpcyBhbGxvd3MgeW91IHRvIHJvdGF0ZSBvYmplY3RzIHRvIGEgcGF0aCBidXQgY29udHJvbFxyXG4gICAgICogdGhlIGFuZ2xlIG9mIHRoZSByb3RhdGlvbiBhcyB3ZWxsLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXRoRm9sbG93ZXIjcGF0aFJvdGF0aW9uT2Zmc2V0XHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQGRlZmF1bHQgMFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHBhdGhSb3RhdGlvbk9mZnNldDogMCxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuIGFkZGl0aW9uYWwgdmVjdG9yIHRvIGFkZCB0byB0aGUgUGF0aEZvbGxvd2VycyBwb3NpdGlvbiwgYWxsb3dpbmcgeW91IHRvIG9mZnNldCBpdCBmcm9tIHRoZVxyXG4gICAgICogUGF0aCBjb29yZGluYXRlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGF0aEZvbGxvd2VyI3BhdGhPZmZzZXRcclxuICAgICAqIEB0eXBlIHtQaGFzZXIuTWF0aC5WZWN0b3IyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHBhdGhPZmZzZXQ6IG51bGwsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIFZlY3RvcjIgdGhhdCBzdG9yZXMgdGhlIGN1cnJlbnQgcG9pbnQgb2YgdGhlIHBhdGggdGhlIGZvbGxvd2VyIGlzIG9uLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXRoRm9sbG93ZXIjcGF0aFZlY3RvclxyXG4gICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgcGF0aFZlY3RvcjogbnVsbCxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBkaXN0YW5jZSB0aGUgZm9sbG93ZXIgaGFzIHRyYXZlbGVkIGZyb20gdGhlIHByZXZpb3VzIHBvaW50IHRvIHRoZSBjdXJyZW50IG9uZSwgYXQgdGhlIGxhc3QgdXBkYXRlLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXRoRm9sbG93ZXIjcGF0aERlbHRhXHJcbiAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguVmVjdG9yMn1cclxuICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAqL1xyXG4gICAgcGF0aERlbHRhOiBudWxsLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFR3ZWVuIHVzZWQgZm9yIGZvbGxvd2luZyB0aGUgUGF0aC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGF0aEZvbGxvd2VyI3BhdGhUd2VlblxyXG4gICAgICogQHR5cGUge1BoYXNlci5Ud2VlbnMuVHdlZW59XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgcGF0aFR3ZWVuOiBudWxsLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0dGluZ3MgZm9yIHRoZSBQYXRoRm9sbG93ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhdGhGb2xsb3dlciNwYXRoQ29uZmlnXHJcbiAgICAgKiBAdHlwZSB7P1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXRoRm9sbG93ZXIuUGF0aENvbmZpZ31cclxuICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBwYXRoQ29uZmlnOiBudWxsLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVjb3JkcyB0aGUgZGlyZWN0aW9uIG9mIHRoZSBmb2xsb3dlciBzbyBpdCBjYW4gY2hhbmdlIGRpcmVjdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGF0aEZvbGxvd2VyI19wcmV2RGlyZWN0aW9uXHJcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgX3ByZXZEaXJlY3Rpb246IFRXRUVOX0NPTlNULlBMQVlJTkdfRk9SV0FSRCxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgUGF0aCB0aGF0IHRoaXMgUGF0aEZvbGxvd2VyIHNob3VsZCBmb2xsb3cuXHJcbiAgICAgKlxyXG4gICAgICogT3B0aW9uYWxseSBhY2NlcHRzIHtAbGluayBQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGF0aEZvbGxvd2VyLlBhdGhDb25maWd9IHNldHRpbmdzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuUGF0aEZvbGxvd2VyI3NldFBhdGhcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkN1cnZlcy5QYXRofSBwYXRoIC0gVGhlIFBhdGggdGhpcyBQYXRoRm9sbG93ZXIgaXMgZm9sbG93aW5nLiBJdCBjYW4gb25seSBmb2xsb3cgb25lIFBhdGggYXQgYSB0aW1lLlxyXG4gICAgICogQHBhcmFtIHsobnVtYmVyfFBoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXRoRm9sbG93ZXIuUGF0aENvbmZpZ3xQaGFzZXIuVHlwZXMuVHdlZW5zLk51bWJlclR3ZWVuQnVpbGRlckNvbmZpZyl9IFtjb25maWddIC0gU2V0dGluZ3MgZm9yIHRoZSBQYXRoRm9sbG93ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0UGF0aDogZnVuY3Rpb24gKHBhdGgsIGNvbmZpZylcclxuICAgIHtcclxuICAgICAgICBpZiAoY29uZmlnID09PSB1bmRlZmluZWQpIHsgY29uZmlnID0gdGhpcy5wYXRoQ29uZmlnOyB9XHJcblxyXG4gICAgICAgIHZhciB0d2VlbiA9IHRoaXMucGF0aFR3ZWVuO1xyXG5cclxuICAgICAgICBpZiAodHdlZW4gJiYgdHdlZW4uaXNQbGF5aW5nKCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0d2Vlbi5zdG9wKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnBhdGggPSBwYXRoO1xyXG5cclxuICAgICAgICBpZiAoY29uZmlnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zdGFydEZvbGxvdyhjb25maWcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHdoZXRoZXIgdGhlIFBhdGhGb2xsb3dlciBzaG91bGQgYXV0b21hdGljYWxseSByb3RhdGUgdG8gcG9pbnQgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgUGF0aC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlBhdGhGb2xsb3dlciNzZXRSb3RhdGVUb1BhdGhcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gdmFsdWUgLSBXaGV0aGVyIHRoZSBQYXRoRm9sbG93ZXIgc2hvdWxkIGF1dG9tYXRpY2FsbHkgcm90YXRlIHRvIHBvaW50IGluIHRoZSBkaXJlY3Rpb24gb2YgdGhlIFBhdGguXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29mZnNldD0wXSAtIFJvdGF0aW9uIG9mZnNldCBpbiBkZWdyZWVzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldFJvdGF0ZVRvUGF0aDogZnVuY3Rpb24gKHZhbHVlLCBvZmZzZXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG9mZnNldCA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldCA9IDA7IH1cclxuXHJcbiAgICAgICAgdGhpcy5yb3RhdGVUb1BhdGggPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXRoUm90YXRpb25PZmZzZXQgPSBvZmZzZXQ7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIElzIHRoaXMgUGF0aEZvbGxvd2VyIGFjdGl2ZWx5IGZvbGxvd2luZyBhIFBhdGggb3Igbm90P1xyXG4gICAgICpcclxuICAgICAqIFRvIGJlIGNvbnNpZGVyZWQgYXMgYGlzRm9sbG93aW5nYCBpdCBtdXN0IGJlIGN1cnJlbnRseSBtb3Zpbmcgb24gYSBQYXRoLCBhbmQgbm90IHBhdXNlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlBhdGhGb2xsb3dlciNpc0ZvbGxvd2luZ1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gYHRydWVgIGlzIHRoaXMgUGF0aEZvbGxvd2VyIGlzIGFjdGl2ZWx5IGZvbGxvd2luZyBhIFBhdGgsIG90aGVyd2lzZSBgZmFsc2VgLlxyXG4gICAgICovXHJcbiAgICBpc0ZvbGxvd2luZzogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgdHdlZW4gPSB0aGlzLnBhdGhUd2VlbjtcclxuXHJcbiAgICAgICAgcmV0dXJuICh0d2VlbiAmJiB0d2Vlbi5pc1BsYXlpbmcoKSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RhcnRzIHRoaXMgUGF0aEZvbGxvd2VyIGZvbGxvd2luZyBpdHMgZ2l2ZW4gUGF0aC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlBhdGhGb2xsb3dlciNzdGFydEZvbGxvd1xyXG4gICAgICogQHNpbmNlIDMuMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsobnVtYmVyfFBoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXRoRm9sbG93ZXIuUGF0aENvbmZpZ3xQaGFzZXIuVHlwZXMuVHdlZW5zLk51bWJlclR3ZWVuQnVpbGRlckNvbmZpZyl9IFtjb25maWc9e31dIC0gVGhlIGR1cmF0aW9uIG9mIHRoZSBmb2xsb3csIG9yIGEgUGF0aEZvbGxvd2VyIGNvbmZpZyBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0QXQ9MF0gLSBPcHRpb25hbCBzdGFydCBwb3NpdGlvbiBvZiB0aGUgZm9sbG93LCBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc3RhcnRGb2xsb3c6IGZ1bmN0aW9uIChjb25maWcsIHN0YXJ0QXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGNvbmZpZyA9PT0gdW5kZWZpbmVkKSB7IGNvbmZpZyA9IHt9OyB9XHJcbiAgICAgICAgaWYgKHN0YXJ0QXQgPT09IHVuZGVmaW5lZCkgeyBzdGFydEF0ID0gMDsgfVxyXG5cclxuICAgICAgICB2YXIgdHdlZW4gPSB0aGlzLnBhdGhUd2VlbjtcclxuXHJcbiAgICAgICAgaWYgKHR3ZWVuICYmIHR3ZWVuLmlzUGxheWluZygpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdHdlZW4uc3RvcCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdudW1iZXInKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29uZmlnID0geyBkdXJhdGlvbjogY29uZmlnIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgT3ZlcnJpZGUgaW4gY2FzZSB0aGV5J3ZlIGJlZW4gc3BlY2lmaWVkIGluIHRoZSBjb25maWdcclxuICAgICAgICBjb25maWcuZnJvbSA9IEdldFZhbHVlKGNvbmZpZywgJ2Zyb20nLCAwKTtcclxuICAgICAgICBjb25maWcudG8gPSBHZXRWYWx1ZShjb25maWcsICd0bycsIDEpO1xyXG5cclxuICAgICAgICB2YXIgcG9zaXRpb25PblBhdGggPSBHZXRCb29sZWFuKGNvbmZpZywgJ3Bvc2l0aW9uT25QYXRoJywgZmFsc2UpO1xyXG5cclxuICAgICAgICB0aGlzLnJvdGF0ZVRvUGF0aCA9IEdldEJvb2xlYW4oY29uZmlnLCAncm90YXRlVG9QYXRoJywgZmFsc2UpO1xyXG4gICAgICAgIHRoaXMucGF0aFJvdGF0aW9uT2Zmc2V0ID0gR2V0VmFsdWUoY29uZmlnLCAncm90YXRpb25PZmZzZXQnLCAwKTtcclxuXHJcbiAgICAgICAgLy8gIFRoaXMgd29ya3MsIGJ1dCBpdCdzIG5vdCBhbiBpZGVhbCB3YXkgb2YgZG9pbmcgaXQgYXMgdGhlIGZvbGxvd2VyIGp1bXBzIHBvc2l0aW9uXHJcbiAgICAgICAgdmFyIHNlZWsgPSBHZXRWYWx1ZShjb25maWcsICdzdGFydEF0Jywgc3RhcnRBdCk7XHJcblxyXG4gICAgICAgIGlmIChzZWVrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29uZmlnLm9uU3RhcnQgPSBmdW5jdGlvbiAodHdlZW4pXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhciB0d2VlbkRhdGEgPSB0d2Vlbi5kYXRhWzBdO1xyXG4gICAgICAgICAgICAgICAgdHdlZW5EYXRhLnByb2dyZXNzID0gc2VlaztcclxuICAgICAgICAgICAgICAgIHR3ZWVuRGF0YS5lbGFwc2VkID0gdHdlZW5EYXRhLmR1cmF0aW9uICogc2VlaztcclxuICAgICAgICAgICAgICAgIHZhciB2ID0gdHdlZW5EYXRhLmVhc2UodHdlZW5EYXRhLnByb2dyZXNzKTtcclxuICAgICAgICAgICAgICAgIHR3ZWVuRGF0YS5jdXJyZW50ID0gdHdlZW5EYXRhLnN0YXJ0ICsgKCh0d2VlbkRhdGEuZW5kIC0gdHdlZW5EYXRhLnN0YXJ0KSAqIHYpO1xyXG4gICAgICAgICAgICAgICAgdHdlZW5EYXRhLnRhcmdldFt0d2VlbkRhdGEua2V5XSA9IHR3ZWVuRGF0YS5jdXJyZW50O1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnBhdGhPZmZzZXQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnBhdGhPZmZzZXQgPSBuZXcgVmVjdG9yMih0aGlzLngsIHRoaXMueSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMucGF0aFZlY3RvcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucGF0aFZlY3RvciA9IG5ldyBWZWN0b3IyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMucGF0aERlbHRhKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wYXRoRGVsdGEgPSBuZXcgVmVjdG9yMigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wYXRoRGVsdGEucmVzZXQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXRoVHdlZW4gPSB0aGlzLnNjZW5lLnN5cy50d2VlbnMuYWRkQ291bnRlcihjb25maWcpO1xyXG5cclxuICAgICAgICAvLyAgVGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSBwYXRoLCByZWxhdGl2ZSB0byB0aGlzIGZvbGxvd2VyXHJcbiAgICAgICAgdGhpcy5wYXRoLmdldFN0YXJ0UG9pbnQodGhpcy5wYXRoT2Zmc2V0KTtcclxuXHJcbiAgICAgICAgaWYgKHBvc2l0aW9uT25QYXRoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy54ID0gdGhpcy5wYXRoT2Zmc2V0Lng7XHJcbiAgICAgICAgICAgIHRoaXMueSA9IHRoaXMucGF0aE9mZnNldC55O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wYXRoT2Zmc2V0LnggPSB0aGlzLnggLSB0aGlzLnBhdGhPZmZzZXQueDtcclxuICAgICAgICB0aGlzLnBhdGhPZmZzZXQueSA9IHRoaXMueSAtIHRoaXMucGF0aE9mZnNldC55O1xyXG5cclxuICAgICAgICB0aGlzLl9wcmV2RGlyZWN0aW9uID0gVFdFRU5fQ09OU1QuUExBWUlOR19GT1JXQVJEO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5yb3RhdGVUb1BhdGgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgU2V0IHRoZSByb3RhdGlvbiBub3cgKGluIGNhc2UgdGhlIHR3ZWVuIGhhcyBhIGRlbGF5IG9uIGl0LCBldGMpXHJcbiAgICAgICAgICAgIHZhciBuZXh0UG9pbnQgPSB0aGlzLnBhdGguZ2V0UG9pbnQoMC4xKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucm90YXRpb24gPSBNYXRoLmF0YW4yKG5leHRQb2ludC55IC0gdGhpcy55LCBuZXh0UG9pbnQueCAtIHRoaXMueCkgKyBEZWdUb1JhZCh0aGlzLnBhdGhSb3RhdGlvbk9mZnNldCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnBhdGhDb25maWcgPSBjb25maWc7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdXNlcyB0aGlzIFBhdGhGb2xsb3dlci4gSXQgd2lsbCBzdGlsbCBjb250aW51ZSB0byByZW5kZXIsIGJ1dCBpdCB3aWxsIHJlbWFpbiBtb3Rpb25sZXNzIGF0IHRoZVxyXG4gICAgICogcG9pbnQgb24gdGhlIFBhdGggYXQgd2hpY2ggeW91IHBhdXNlZCBpdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlBhdGhGb2xsb3dlciNwYXVzZUZvbGxvd1xyXG4gICAgICogQHNpbmNlIDMuMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcGF1c2VGb2xsb3c6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHR3ZWVuID0gdGhpcy5wYXRoVHdlZW47XHJcblxyXG4gICAgICAgIGlmICh0d2VlbiAmJiB0d2Vlbi5pc1BsYXlpbmcoKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR3ZWVuLnBhdXNlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXN1bWVzIGEgcHJldmlvdXNseSBwYXVzZWQgUGF0aEZvbGxvd2VyLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoZSBQYXRoRm9sbG93ZXIgd2FzIG5vdCBwYXVzZWQgdGhpcyBoYXMgbm8gZWZmZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuUGF0aEZvbGxvd2VyI3Jlc3VtZUZvbGxvd1xyXG4gICAgICogQHNpbmNlIDMuMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcmVzdW1lRm9sbG93OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciB0d2VlbiA9IHRoaXMucGF0aFR3ZWVuO1xyXG5cclxuICAgICAgICBpZiAodHdlZW4gJiYgdHdlZW4uaXNQYXVzZWQoKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR3ZWVuLnJlc3VtZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgdGhpcyBQYXRoRm9sbG93ZXIgZnJvbSBmb2xsb3dpbmcgdGhlIHBhdGggYW55IGxvbmdlci5cclxuICAgICAqXHJcbiAgICAgKiBUaGlzIHdpbGwgaW52b2tlIGFueSAnc3RvcCcgY29uZGl0aW9ucyB0aGF0IG1heSBleGlzdCBvbiB0aGUgUGF0aCwgb3IgZm9yIHRoZSBmb2xsb3dlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlBhdGhGb2xsb3dlciNzdG9wRm9sbG93XHJcbiAgICAgKiBAc2luY2UgMy4zLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzdG9wRm9sbG93OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciB0d2VlbiA9IHRoaXMucGF0aFR3ZWVuO1xyXG5cclxuICAgICAgICBpZiAodHdlZW4gJiYgdHdlZW4uaXNQbGF5aW5nKCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0d2Vlbi5zdG9wKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCB1cGRhdGUgaGFuZGxlciB0aGF0IGFkdmFuY2VzIHRoaXMgUGF0aEZvbGxvd2VyIGFsb25nIHRoZSBwYXRoLlxyXG4gICAgICpcclxuICAgICAqIENhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBTY2VuZSBzdGVwLCBzaG91bGQgbm90IHR5cGljYWxseSBiZSBjYWxsZWQgZGlyZWN0bHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5QYXRoRm9sbG93ZXIjcGF0aFVwZGF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICovXHJcbiAgICBwYXRoVXBkYXRlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciB0d2VlbiA9IHRoaXMucGF0aFR3ZWVuO1xyXG5cclxuICAgICAgICBpZiAodHdlZW4pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgdHdlZW5EYXRhID0gdHdlZW4uZGF0YVswXTtcclxuICAgICAgICAgICAgdmFyIHBhdGhEZWx0YSA9IHRoaXMucGF0aERlbHRhO1xyXG4gICAgICAgICAgICB2YXIgcGF0aFZlY3RvciA9IHRoaXMucGF0aFZlY3RvcjtcclxuXHJcbiAgICAgICAgICAgIHBhdGhEZWx0YS5jb3B5KHBhdGhWZWN0b3IpLm5lZ2F0ZSgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHR3ZWVuRGF0YS5zdGF0ZSA9PT0gVFdFRU5fQ09OU1QuQ09NUExFVEUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGF0aC5nZXRQb2ludCgxLCBwYXRoVmVjdG9yKTtcclxuXHJcbiAgICAgICAgICAgICAgICBwYXRoRGVsdGEuYWRkKHBhdGhWZWN0b3IpO1xyXG4gICAgICAgICAgICAgICAgcGF0aFZlY3Rvci5hZGQodGhpcy5wYXRoT2Zmc2V0KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHBhdGhWZWN0b3IueCwgcGF0aFZlY3Rvci55KTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodHdlZW5EYXRhLnN0YXRlICE9PSBUV0VFTl9DT05TVC5QTEFZSU5HX0ZPUldBUkQgJiYgdHdlZW5EYXRhLnN0YXRlICE9PSBUV0VFTl9DT05TVC5QTEFZSU5HX0JBQ0tXQVJEKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAvLyAgSWYgZGVsYXllZCwgZXRjIHRoZW4gYmFpbCBvdXRcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5wYXRoLmdldFBvaW50KHR3ZWVuLmdldFZhbHVlKCksIHBhdGhWZWN0b3IpO1xyXG5cclxuICAgICAgICAgICAgcGF0aERlbHRhLmFkZChwYXRoVmVjdG9yKTtcclxuICAgICAgICAgICAgcGF0aFZlY3Rvci5hZGQodGhpcy5wYXRoT2Zmc2V0KTtcclxuXHJcbiAgICAgICAgICAgIHZhciBvbGRYID0gdGhpcy54O1xyXG4gICAgICAgICAgICB2YXIgb2xkWSA9IHRoaXMueTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2V0UG9zaXRpb24ocGF0aFZlY3Rvci54LCBwYXRoVmVjdG9yLnkpO1xyXG5cclxuICAgICAgICAgICAgdmFyIHNwZWVkWCA9IHRoaXMueCAtIG9sZFg7XHJcbiAgICAgICAgICAgIHZhciBzcGVlZFkgPSB0aGlzLnkgLSBvbGRZO1xyXG5cclxuICAgICAgICAgICAgaWYgKHNwZWVkWCA9PT0gMCAmJiBzcGVlZFkgPT09IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIC8vICBCYWlsIG91dCBlYXJseVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodHdlZW5EYXRhLnN0YXRlICE9PSB0aGlzLl9wcmV2RGlyZWN0aW9uKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAvLyAgV2UndmUgY2hhbmdlZCBkaXJlY3Rpb24sIHNvIGRvbid0IGRvIGEgcm90YXRlIHRoaXMgZnJhbWVcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ByZXZEaXJlY3Rpb24gPSB0d2VlbkRhdGEuc3RhdGU7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5yb3RhdGVUb1BhdGgpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm90YXRpb24gPSBNYXRoLmF0YW4yKHNwZWVkWSwgc3BlZWRYKSArIERlZ1RvUmFkKHRoaXMucGF0aFJvdGF0aW9uT2Zmc2V0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBhdGhGb2xsb3dlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgbWV0aG9kcyB1c2VkIGZvciBzZXR0aW5nIHRoZSBXZWJHTCByZW5kZXJpbmcgcGlwZWxpbmUgb2YgYSBHYW1lIE9iamVjdC5cclxuICpcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5QaXBlbGluZVxyXG4gKiBAd2ViZ2xPbmx5XHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKi9cclxuXHJcbnZhciBQaXBlbGluZSA9IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBpbml0aWFsIFdlYkdMIHBpcGVsaW5lIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuUGlwZWxpbmUjZGVmYXVsdFBpcGVsaW5lXHJcbiAgICAgKiBAdHlwZSB7UGhhc2VyLlJlbmRlcmVyLldlYkdMLldlYkdMUGlwZWxpbmV9XHJcbiAgICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICAgKiBAd2ViZ2xPbmx5XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgZGVmYXVsdFBpcGVsaW5lOiBudWxsLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGN1cnJlbnQgV2ViR0wgcGlwZWxpbmUgb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5QaXBlbGluZSNwaXBlbGluZVxyXG4gICAgICogQHR5cGUge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFBpcGVsaW5lfVxyXG4gICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICogQHdlYmdsT25seVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHBpcGVsaW5lOiBudWxsLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgaW5pdGlhbCBXZWJHTCBQaXBlbGluZSBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgZHVyaW5nIHRoZSBpbnN0YW50aWF0aW9uIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlBpcGVsaW5lI2luaXRQaXBlbGluZVxyXG4gICAgICogQHdlYmdsT25seVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtwaXBlbGluZU5hbWU9VGV4dHVyZVRpbnRQaXBlbGluZV0gLSBUaGUgbmFtZSBvZiB0aGUgcGlwZWxpbmUgdG8gc2V0IG9uIHRoaXMgR2FtZSBPYmplY3QuIERlZmF1bHRzIHRvIHRoZSBUZXh0dXJlIFRpbnQgUGlwZWxpbmUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSBwaXBlbGluZSB3YXMgc2V0IHN1Y2Nlc3NmdWxseSwgb3RoZXJ3aXNlIGBmYWxzZWAuXHJcbiAgICAgKi9cclxuICAgIGluaXRQaXBlbGluZTogZnVuY3Rpb24gKHBpcGVsaW5lTmFtZSlcclxuICAgIHtcclxuICAgICAgICBpZiAocGlwZWxpbmVOYW1lID09PSB1bmRlZmluZWQpIHsgcGlwZWxpbmVOYW1lID0gJ1RleHR1cmVUaW50UGlwZWxpbmUnOyB9XHJcblxyXG4gICAgICAgIHZhciByZW5kZXJlciA9IHRoaXMuc2NlbmUuc3lzLmdhbWUucmVuZGVyZXI7XHJcblxyXG4gICAgICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci5nbCAmJiByZW5kZXJlci5oYXNQaXBlbGluZShwaXBlbGluZU5hbWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0UGlwZWxpbmUgPSByZW5kZXJlci5nZXRQaXBlbGluZShwaXBlbGluZU5hbWUpO1xyXG4gICAgICAgICAgICB0aGlzLnBpcGVsaW5lID0gdGhpcy5kZWZhdWx0UGlwZWxpbmU7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBhY3RpdmUgV2ViR0wgUGlwZWxpbmUgb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlBpcGVsaW5lI3NldFBpcGVsaW5lXHJcbiAgICAgKiBAd2ViZ2xPbmx5XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGlwZWxpbmVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHBpcGVsaW5lIHRvIHNldCBvbiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFBpcGVsaW5lOiBmdW5jdGlvbiAocGlwZWxpbmVOYW1lKVxyXG4gICAge1xyXG4gICAgICAgIHZhciByZW5kZXJlciA9IHRoaXMuc2NlbmUuc3lzLmdhbWUucmVuZGVyZXI7XHJcblxyXG4gICAgICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci5nbCAmJiByZW5kZXJlci5oYXNQaXBlbGluZShwaXBlbGluZU5hbWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5waXBlbGluZSA9IHJlbmRlcmVyLmdldFBpcGVsaW5lKHBpcGVsaW5lTmFtZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNldHMgdGhlIFdlYkdMIFBpcGVsaW5lIG9mIHRoaXMgR2FtZSBPYmplY3QgYmFjayB0byB0aGUgZGVmYXVsdCBpdCB3YXMgY3JlYXRlZCB3aXRoLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuUGlwZWxpbmUjcmVzZXRQaXBlbGluZVxyXG4gICAgICogQHdlYmdsT25seVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSBwaXBlbGluZSB3YXMgc2V0IHN1Y2Nlc3NmdWxseSwgb3RoZXJ3aXNlIGBmYWxzZWAuXHJcbiAgICAgKi9cclxuICAgIHJlc2V0UGlwZWxpbmU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5waXBlbGluZSA9IHRoaXMuZGVmYXVsdFBpcGVsaW5lO1xyXG5cclxuICAgICAgICByZXR1cm4gKHRoaXMucGlwZWxpbmUgIT09IG51bGwpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIFdlYkdMIFBpcGVsaW5lIHRoaXMgR2FtZSBPYmplY3QgaXMgY3VycmVudGx5IHVzaW5nLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuUGlwZWxpbmUjZ2V0UGlwZWxpbmVOYW1lXHJcbiAgICAgKiBAd2ViZ2xPbmx5XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBzdHJpbmctYmFzZWQgbmFtZSBvZiB0aGUgcGlwZWxpbmUgYmVpbmcgdXNlZCBieSB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBnZXRQaXBlbGluZU5hbWU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGlwZWxpbmUubmFtZTtcclxuICAgIH1cclxuXHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBpcGVsaW5lO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBQcm92aWRlcyBtZXRob2RzIHVzZWQgZm9yIGdldHRpbmcgYW5kIHNldHRpbmcgdGhlIFNjcm9sbCBGYWN0b3Igb2YgYSBHYW1lIE9iamVjdC5cclxuICpcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TY3JvbGxGYWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5cclxudmFyIFNjcm9sbEZhY3RvciA9IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBob3Jpem9udGFsIHNjcm9sbCBmYWN0b3Igb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgc2Nyb2xsIGZhY3RvciBjb250cm9scyB0aGUgaW5mbHVlbmNlIG9mIHRoZSBtb3ZlbWVudCBvZiBhIENhbWVyYSB1cG9uIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogV2hlbiBhIGNhbWVyYSBzY3JvbGxzIGl0IHdpbGwgY2hhbmdlIHRoZSBsb2NhdGlvbiBhdCB3aGljaCB0aGlzIEdhbWUgT2JqZWN0IGlzIHJlbmRlcmVkIG9uLXNjcmVlbi5cclxuICAgICAqIEl0IGRvZXMgbm90IGNoYW5nZSB0aGUgR2FtZSBPYmplY3RzIGFjdHVhbCBwb3NpdGlvbiB2YWx1ZXMuXHJcbiAgICAgKlxyXG4gICAgICogQSB2YWx1ZSBvZiAxIG1lYW5zIGl0IHdpbGwgbW92ZSBleGFjdGx5IGluIHN5bmMgd2l0aCBhIGNhbWVyYS5cclxuICAgICAqIEEgdmFsdWUgb2YgMCBtZWFucyBpdCB3aWxsIG5vdCBtb3ZlIGF0IGFsbCwgZXZlbiBpZiB0aGUgY2FtZXJhIG1vdmVzLlxyXG4gICAgICogT3RoZXIgdmFsdWVzIGNvbnRyb2wgdGhlIGRlZ3JlZSB0byB3aGljaCB0aGUgY2FtZXJhIG1vdmVtZW50IGlzIG1hcHBlZCB0byB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBQbGVhc2UgYmUgYXdhcmUgdGhhdCBzY3JvbGwgZmFjdG9yIHZhbHVlcyBvdGhlciB0aGFuIDEgYXJlIG5vdCB0YWtlbiBpbiB0byBjb25zaWRlcmF0aW9uIHdoZW5cclxuICAgICAqIGNhbGN1bGF0aW5nIHBoeXNpY3MgY29sbGlzaW9ucy4gQm9kaWVzIGFsd2F5cyBjb2xsaWRlIGJhc2VkIG9uIHRoZWlyIHdvcmxkIHBvc2l0aW9uLCBidXQgY2hhbmdpbmdcclxuICAgICAqIHRoZSBzY3JvbGwgZmFjdG9yIGlzIGEgdmlzdWFsIGFkanVzdG1lbnQgdG8gd2hlcmUgdGhlIHRleHR1cmVzIGFyZSByZW5kZXJlZCwgd2hpY2ggY2FuIG9mZnNldFxyXG4gICAgICogdGhlbSBmcm9tIHBoeXNpY3MgYm9kaWVzIGlmIG5vdCBhY2NvdW50ZWQgZm9yIGluIHlvdXIgY29kZS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TY3JvbGxGYWN0b3Ijc2Nyb2xsRmFjdG9yWFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBzY3JvbGxGYWN0b3JYOiAxLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHZlcnRpY2FsIHNjcm9sbCBmYWN0b3Igb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgc2Nyb2xsIGZhY3RvciBjb250cm9scyB0aGUgaW5mbHVlbmNlIG9mIHRoZSBtb3ZlbWVudCBvZiBhIENhbWVyYSB1cG9uIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogV2hlbiBhIGNhbWVyYSBzY3JvbGxzIGl0IHdpbGwgY2hhbmdlIHRoZSBsb2NhdGlvbiBhdCB3aGljaCB0aGlzIEdhbWUgT2JqZWN0IGlzIHJlbmRlcmVkIG9uLXNjcmVlbi5cclxuICAgICAqIEl0IGRvZXMgbm90IGNoYW5nZSB0aGUgR2FtZSBPYmplY3RzIGFjdHVhbCBwb3NpdGlvbiB2YWx1ZXMuXHJcbiAgICAgKlxyXG4gICAgICogQSB2YWx1ZSBvZiAxIG1lYW5zIGl0IHdpbGwgbW92ZSBleGFjdGx5IGluIHN5bmMgd2l0aCBhIGNhbWVyYS5cclxuICAgICAqIEEgdmFsdWUgb2YgMCBtZWFucyBpdCB3aWxsIG5vdCBtb3ZlIGF0IGFsbCwgZXZlbiBpZiB0aGUgY2FtZXJhIG1vdmVzLlxyXG4gICAgICogT3RoZXIgdmFsdWVzIGNvbnRyb2wgdGhlIGRlZ3JlZSB0byB3aGljaCB0aGUgY2FtZXJhIG1vdmVtZW50IGlzIG1hcHBlZCB0byB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBQbGVhc2UgYmUgYXdhcmUgdGhhdCBzY3JvbGwgZmFjdG9yIHZhbHVlcyBvdGhlciB0aGFuIDEgYXJlIG5vdCB0YWtlbiBpbiB0byBjb25zaWRlcmF0aW9uIHdoZW5cclxuICAgICAqIGNhbGN1bGF0aW5nIHBoeXNpY3MgY29sbGlzaW9ucy4gQm9kaWVzIGFsd2F5cyBjb2xsaWRlIGJhc2VkIG9uIHRoZWlyIHdvcmxkIHBvc2l0aW9uLCBidXQgY2hhbmdpbmdcclxuICAgICAqIHRoZSBzY3JvbGwgZmFjdG9yIGlzIGEgdmlzdWFsIGFkanVzdG1lbnQgdG8gd2hlcmUgdGhlIHRleHR1cmVzIGFyZSByZW5kZXJlZCwgd2hpY2ggY2FuIG9mZnNldFxyXG4gICAgICogdGhlbSBmcm9tIHBoeXNpY3MgYm9kaWVzIGlmIG5vdCBhY2NvdW50ZWQgZm9yIGluIHlvdXIgY29kZS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TY3JvbGxGYWN0b3Ijc2Nyb2xsRmFjdG9yWVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBzY3JvbGxGYWN0b3JZOiAxLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgc2Nyb2xsIGZhY3RvciBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIFRoZSBzY3JvbGwgZmFjdG9yIGNvbnRyb2xzIHRoZSBpbmZsdWVuY2Ugb2YgdGhlIG1vdmVtZW50IG9mIGEgQ2FtZXJhIHVwb24gdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBXaGVuIGEgY2FtZXJhIHNjcm9sbHMgaXQgd2lsbCBjaGFuZ2UgdGhlIGxvY2F0aW9uIGF0IHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgaXMgcmVuZGVyZWQgb24tc2NyZWVuLlxyXG4gICAgICogSXQgZG9lcyBub3QgY2hhbmdlIHRoZSBHYW1lIE9iamVjdHMgYWN0dWFsIHBvc2l0aW9uIHZhbHVlcy5cclxuICAgICAqXHJcbiAgICAgKiBBIHZhbHVlIG9mIDEgbWVhbnMgaXQgd2lsbCBtb3ZlIGV4YWN0bHkgaW4gc3luYyB3aXRoIGEgY2FtZXJhLlxyXG4gICAgICogQSB2YWx1ZSBvZiAwIG1lYW5zIGl0IHdpbGwgbm90IG1vdmUgYXQgYWxsLCBldmVuIGlmIHRoZSBjYW1lcmEgbW92ZXMuXHJcbiAgICAgKiBPdGhlciB2YWx1ZXMgY29udHJvbCB0aGUgZGVncmVlIHRvIHdoaWNoIHRoZSBjYW1lcmEgbW92ZW1lbnQgaXMgbWFwcGVkIHRvIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHNjcm9sbCBmYWN0b3IgdmFsdWVzIG90aGVyIHRoYW4gMSBhcmUgbm90IHRha2VuIGluIHRvIGNvbnNpZGVyYXRpb24gd2hlblxyXG4gICAgICogY2FsY3VsYXRpbmcgcGh5c2ljcyBjb2xsaXNpb25zLiBCb2RpZXMgYWx3YXlzIGNvbGxpZGUgYmFzZWQgb24gdGhlaXIgd29ybGQgcG9zaXRpb24sIGJ1dCBjaGFuZ2luZ1xyXG4gICAgICogdGhlIHNjcm9sbCBmYWN0b3IgaXMgYSB2aXN1YWwgYWRqdXN0bWVudCB0byB3aGVyZSB0aGUgdGV4dHVyZXMgYXJlIHJlbmRlcmVkLCB3aGljaCBjYW4gb2Zmc2V0XHJcbiAgICAgKiB0aGVtIGZyb20gcGh5c2ljcyBib2RpZXMgaWYgbm90IGFjY291bnRlZCBmb3IgaW4geW91ciBjb2RlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuU2Nyb2xsRmFjdG9yI3NldFNjcm9sbEZhY3RvclxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBzY3JvbGwgZmFjdG9yIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3k9eF0gLSBUaGUgdmVydGljYWwgc2Nyb2xsIGZhY3RvciBvZiB0aGlzIEdhbWUgT2JqZWN0LiBJZiBub3Qgc2V0IGl0IHdpbGwgdXNlIHRoZSBgeGAgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0U2Nyb2xsRmFjdG9yOiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSB4OyB9XHJcblxyXG4gICAgICAgIHRoaXMuc2Nyb2xsRmFjdG9yWCA9IHg7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxGYWN0b3JZID0geTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTY3JvbGxGYWN0b3I7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIG1ldGhvZHMgdXNlZCBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZyB0aGUgc2l6ZSBvZiBhIEdhbWUgT2JqZWN0LlxyXG4gKiBcclxuICogQG5hbWVzcGFjZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TaXplXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKi9cclxuXHJcbnZhciBTaXplID0ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBwcm9wZXJ0eSBpbmRpY2F0aW5nIHRoYXQgYSBHYW1lIE9iamVjdCBoYXMgdGhpcyBjb21wb25lbnQuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlNpemUjX3NpemVDb21wb25lbnRcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAqIEBzaW5jZSAzLjIuMFxyXG4gICAgICovXHJcbiAgICBfc2l6ZUNvbXBvbmVudDogdHJ1ZSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBuYXRpdmUgKHVuLXNjYWxlZCkgd2lkdGggb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogQ2hhbmdpbmcgdGhpcyB2YWx1ZSB3aWxsIG5vdCBjaGFuZ2UgdGhlIHNpemUgdGhhdCB0aGUgR2FtZSBPYmplY3QgaXMgcmVuZGVyZWQgaW4tZ2FtZS5cclxuICAgICAqIEZvciB0aGF0IHlvdSBuZWVkIHRvIGVpdGhlciBzZXQgdGhlIHNjYWxlIG9mIHRoZSBHYW1lIE9iamVjdCAoYHNldFNjYWxlYCkgb3IgdXNlXHJcbiAgICAgKiB0aGUgYGRpc3BsYXlXaWR0aGAgcHJvcGVydHkuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlNpemUjd2lkdGhcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgd2lkdGg6IDAsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbmF0aXZlICh1bi1zY2FsZWQpIGhlaWdodCBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBDaGFuZ2luZyB0aGlzIHZhbHVlIHdpbGwgbm90IGNoYW5nZSB0aGUgc2l6ZSB0aGF0IHRoZSBHYW1lIE9iamVjdCBpcyByZW5kZXJlZCBpbi1nYW1lLlxyXG4gICAgICogRm9yIHRoYXQgeW91IG5lZWQgdG8gZWl0aGVyIHNldCB0aGUgc2NhbGUgb2YgdGhlIEdhbWUgT2JqZWN0IChgc2V0U2NhbGVgKSBvciB1c2VcclxuICAgICAqIHRoZSBgZGlzcGxheUhlaWdodGAgcHJvcGVydHkuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlNpemUjaGVpZ2h0XHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGhlaWdodDogMCxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBkaXNwbGF5ZWQgd2lkdGggb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyB2YWx1ZSB0YWtlcyBpbnRvIGFjY291bnQgdGhlIHNjYWxlIGZhY3Rvci5cclxuICAgICAqIFxyXG4gICAgICogU2V0dGluZyB0aGlzIHZhbHVlIHdpbGwgYWRqdXN0IHRoZSBHYW1lIE9iamVjdCdzIHNjYWxlIHByb3BlcnR5LlxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TaXplI2Rpc3BsYXlXaWR0aFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBkaXNwbGF5V2lkdGg6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIE1hdGguYWJzKHRoaXMuc2NhbGVYICogdGhpcy5mcmFtZS5yZWFsV2lkdGgpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zY2FsZVggPSB2YWx1ZSAvIHRoaXMuZnJhbWUucmVhbFdpZHRoO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGRpc3BsYXllZCBoZWlnaHQgb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyB2YWx1ZSB0YWtlcyBpbnRvIGFjY291bnQgdGhlIHNjYWxlIGZhY3Rvci5cclxuICAgICAqIFxyXG4gICAgICogU2V0dGluZyB0aGlzIHZhbHVlIHdpbGwgYWRqdXN0IHRoZSBHYW1lIE9iamVjdCdzIHNjYWxlIHByb3BlcnR5LlxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TaXplI2Rpc3BsYXlIZWlnaHRcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgZGlzcGxheUhlaWdodDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5hYnModGhpcy5zY2FsZVkgKiB0aGlzLmZyYW1lLnJlYWxIZWlnaHQpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zY2FsZVkgPSB2YWx1ZSAvIHRoaXMuZnJhbWUucmVhbEhlaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHNpemUgb2YgdGhpcyBHYW1lIE9iamVjdCB0byBiZSB0aGF0IG9mIHRoZSBnaXZlbiBGcmFtZS5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyB3aWxsIG5vdCBjaGFuZ2UgdGhlIHNpemUgdGhhdCB0aGUgR2FtZSBPYmplY3QgaXMgcmVuZGVyZWQgaW4tZ2FtZS5cclxuICAgICAqIEZvciB0aGF0IHlvdSBuZWVkIHRvIGVpdGhlciBzZXQgdGhlIHNjYWxlIG9mIHRoZSBHYW1lIE9iamVjdCAoYHNldFNjYWxlYCkgb3IgY2FsbCB0aGVcclxuICAgICAqIGBzZXREaXNwbGF5U2l6ZWAgbWV0aG9kLCB3aGljaCBpcyB0aGUgc2FtZSB0aGluZyBhcyBjaGFuZ2luZyB0aGUgc2NhbGUgYnV0IGFsbG93cyB5b3VcclxuICAgICAqIHRvIGRvIHNvIGJ5IGdpdmluZyBwaXhlbCB2YWx1ZXMuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHlvdSBoYXZlIGVuYWJsZWQgdGhpcyBHYW1lIE9iamVjdCBmb3IgaW5wdXQsIGNoYW5naW5nIHRoZSBzaXplIHdpbGwgX25vdF8gY2hhbmdlIHRoZVxyXG4gICAgICogc2l6ZSBvZiB0aGUgaGl0IGFyZWEuIFRvIGRvIHRoaXMgeW91IHNob3VsZCBhZGp1c3QgdGhlIGBpbnB1dC5oaXRBcmVhYCBvYmplY3QgZGlyZWN0bHkuXHJcbiAgICAgKiBcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuU2l6ZSNzZXRTaXplVG9GcmFtZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVGV4dHVyZXMuRnJhbWV9IGZyYW1lIC0gVGhlIGZyYW1lIHRvIGJhc2UgdGhlIHNpemUgb2YgdGhpcyBHYW1lIE9iamVjdCBvbi5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0U2l6ZVRvRnJhbWU6IGZ1bmN0aW9uIChmcmFtZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoZnJhbWUgPT09IHVuZGVmaW5lZCkgeyBmcmFtZSA9IHRoaXMuZnJhbWU7IH1cclxuXHJcbiAgICAgICAgdGhpcy53aWR0aCA9IGZyYW1lLnJlYWxXaWR0aDtcclxuICAgICAgICB0aGlzLmhlaWdodCA9IGZyYW1lLnJlYWxIZWlnaHQ7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGludGVybmFsIHNpemUgb2YgdGhpcyBHYW1lIE9iamVjdCwgYXMgdXNlZCBmb3IgZnJhbWUgb3IgcGh5c2ljcyBib2R5IGNyZWF0aW9uLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGlzIHdpbGwgbm90IGNoYW5nZSB0aGUgc2l6ZSB0aGF0IHRoZSBHYW1lIE9iamVjdCBpcyByZW5kZXJlZCBpbi1nYW1lLlxyXG4gICAgICogRm9yIHRoYXQgeW91IG5lZWQgdG8gZWl0aGVyIHNldCB0aGUgc2NhbGUgb2YgdGhlIEdhbWUgT2JqZWN0IChgc2V0U2NhbGVgKSBvciBjYWxsIHRoZVxyXG4gICAgICogYHNldERpc3BsYXlTaXplYCBtZXRob2QsIHdoaWNoIGlzIHRoZSBzYW1lIHRoaW5nIGFzIGNoYW5naW5nIHRoZSBzY2FsZSBidXQgYWxsb3dzIHlvdVxyXG4gICAgICogdG8gZG8gc28gYnkgZ2l2aW5nIHBpeGVsIHZhbHVlcy5cclxuICAgICAqIFxyXG4gICAgICogSWYgeW91IGhhdmUgZW5hYmxlZCB0aGlzIEdhbWUgT2JqZWN0IGZvciBpbnB1dCwgY2hhbmdpbmcgdGhlIHNpemUgd2lsbCBfbm90XyBjaGFuZ2UgdGhlXHJcbiAgICAgKiBzaXplIG9mIHRoZSBoaXQgYXJlYS4gVG8gZG8gdGhpcyB5b3Ugc2hvdWxkIGFkanVzdCB0aGUgYGlucHV0LmhpdEFyZWFgIG9iamVjdCBkaXJlY3RseS5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TaXplI3NldFNpemVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0U2l6ZTogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy53aWR0aCA9IHdpZHRoO1xyXG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBkaXNwbGF5IHNpemUgb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogQ2FsbGluZyB0aGlzIHdpbGwgYWRqdXN0IHRoZSBzY2FsZS5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TaXplI3NldERpc3BsYXlTaXplXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBUaGUgd2lkdGggb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgLSBUaGUgaGVpZ2h0IG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldERpc3BsYXlTaXplOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlXaWR0aCA9IHdpZHRoO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUhlaWdodCA9IGhlaWdodDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTaXplO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8vICBiaXRtYXNrIGZsYWcgZm9yIEdhbWVPYmplY3QucmVuZGVyTWFza1xyXG52YXIgX0ZMQUcgPSA4OyAvLyAxMDAwXHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgbWV0aG9kcyB1c2VkIGZvciBnZXR0aW5nIGFuZCBzZXR0aW5nIHRoZSB0ZXh0dXJlIG9mIGEgR2FtZSBPYmplY3QuXHJcbiAqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGV4dHVyZVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICovXHJcblxyXG52YXIgVGV4dHVyZSA9IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBUZXh0dXJlIHRoaXMgR2FtZSBPYmplY3QgaXMgdXNpbmcgdG8gcmVuZGVyIHdpdGguXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGV4dHVyZSN0ZXh0dXJlXHJcbiAgICAgKiBAdHlwZSB7UGhhc2VyLlRleHR1cmVzLlRleHR1cmV8UGhhc2VyLlRleHR1cmVzLkNhbnZhc1RleHR1cmV9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgdGV4dHVyZTogbnVsbCxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBUZXh0dXJlIEZyYW1lIHRoaXMgR2FtZSBPYmplY3QgaXMgdXNpbmcgdG8gcmVuZGVyIHdpdGguXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGV4dHVyZSNmcmFtZVxyXG4gICAgICogQHR5cGUge1BoYXNlci5UZXh0dXJlcy5GcmFtZX1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBmcmFtZTogbnVsbCxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIGZsYWcuIE5vdCB0byBiZSBzZXQgYnkgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UZXh0dXJlI2lzQ3JvcHBlZFxyXG4gICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICovXHJcbiAgICBpc0Nyb3BwZWQ6IGZhbHNlLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdGV4dHVyZSBhbmQgZnJhbWUgdGhpcyBHYW1lIE9iamVjdCB3aWxsIHVzZSB0byByZW5kZXIgd2l0aC5cclxuICAgICAqXHJcbiAgICAgKiBUZXh0dXJlcyBhcmUgcmVmZXJlbmNlZCBieSB0aGVpciBzdHJpbmctYmFzZWQga2V5cywgYXMgc3RvcmVkIGluIHRoZSBUZXh0dXJlIE1hbmFnZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UZXh0dXJlI3NldFRleHR1cmVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xQaGFzZXIuVGV4dHVyZXMuVGV4dHVyZSl9IGtleSAtIFRoZSBrZXkgb2YgdGhlIHRleHR1cmUgdG8gYmUgdXNlZCwgYXMgc3RvcmVkIGluIHRoZSBUZXh0dXJlIE1hbmFnZXIsIG9yIGEgVGV4dHVyZSBpbnN0YW5jZS5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW2ZyYW1lXSAtIFRoZSBuYW1lIG9yIGluZGV4IG9mIHRoZSBmcmFtZSB3aXRoaW4gdGhlIFRleHR1cmUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0VGV4dHVyZTogZnVuY3Rpb24gKGtleSwgZnJhbWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy50ZXh0dXJlID0gdGhpcy5zY2VuZS5zeXMudGV4dHVyZXMuZ2V0KGtleSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnNldEZyYW1lKGZyYW1lKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBmcmFtZSB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIHJlbmRlciB3aXRoLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBGcmFtZSBoYXMgdG8gYmVsb25nIHRvIHRoZSBjdXJyZW50IFRleHR1cmUgYmVpbmcgdXNlZC5cclxuICAgICAqXHJcbiAgICAgKiBJdCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIGluZGV4LlxyXG4gICAgICpcclxuICAgICAqIENhbGxpbmcgYHNldEZyYW1lYCB3aWxsIG1vZGlmeSB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgcHJvcGVydGllcyBvZiB5b3VyIEdhbWUgT2JqZWN0LlxyXG4gICAgICogSXQgd2lsbCBhbHNvIGNoYW5nZSB0aGUgYG9yaWdpbmAgaWYgdGhlIEZyYW1lIGhhcyBhIGN1c3RvbSBwaXZvdCBwb2ludCwgYXMgZXhwb3J0ZWQgZnJvbSBwYWNrYWdlcyBsaWtlIFRleHR1cmUgUGFja2VyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGV4dHVyZSNzZXRGcmFtZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBmcmFtZSAtIFRoZSBuYW1lIG9yIGluZGV4IG9mIHRoZSBmcmFtZSB3aXRoaW4gdGhlIFRleHR1cmUuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt1cGRhdGVTaXplPXRydWVdIC0gU2hvdWxkIHRoaXMgY2FsbCBhZGp1c3QgdGhlIHNpemUgb2YgdGhlIEdhbWUgT2JqZWN0P1xyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbdXBkYXRlT3JpZ2luPXRydWVdIC0gU2hvdWxkIHRoaXMgY2FsbCBhZGp1c3QgdGhlIG9yaWdpbiBvZiB0aGUgR2FtZSBPYmplY3Q/XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0RnJhbWU6IGZ1bmN0aW9uIChmcmFtZSwgdXBkYXRlU2l6ZSwgdXBkYXRlT3JpZ2luKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh1cGRhdGVTaXplID09PSB1bmRlZmluZWQpIHsgdXBkYXRlU2l6ZSA9IHRydWU7IH1cclxuICAgICAgICBpZiAodXBkYXRlT3JpZ2luID09PSB1bmRlZmluZWQpIHsgdXBkYXRlT3JpZ2luID0gdHJ1ZTsgfVxyXG5cclxuICAgICAgICB0aGlzLmZyYW1lID0gdGhpcy50ZXh0dXJlLmdldChmcmFtZSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5mcmFtZS5jdXRXaWR0aCB8fCAhdGhpcy5mcmFtZS5jdXRIZWlnaHQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlckZsYWdzICY9IH5fRkxBRztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJGbGFncyB8PSBfRkxBRztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9zaXplQ29tcG9uZW50ICYmIHVwZGF0ZVNpemUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNldFNpemVUb0ZyYW1lKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fb3JpZ2luQ29tcG9uZW50ICYmIHVwZGF0ZU9yaWdpbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZyYW1lLmN1c3RvbVBpdm90KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldE9yaWdpbih0aGlzLmZyYW1lLnBpdm90WCwgdGhpcy5mcmFtZS5waXZvdFkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5T3JpZ2luKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gVGV4dHVyZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vLyAgYml0bWFzayBmbGFnIGZvciBHYW1lT2JqZWN0LnJlbmRlck1hc2tcclxudmFyIF9GTEFHID0gODsgLy8gMTAwMFxyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIG1ldGhvZHMgdXNlZCBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZyB0aGUgdGV4dHVyZSBvZiBhIEdhbWUgT2JqZWN0LlxyXG4gKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRleHR1cmVDcm9wXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKi9cclxuXHJcbnZhciBUZXh0dXJlQ3JvcCA9IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBUZXh0dXJlIHRoaXMgR2FtZSBPYmplY3QgaXMgdXNpbmcgdG8gcmVuZGVyIHdpdGguXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGV4dHVyZUNyb3AjdGV4dHVyZVxyXG4gICAgICogQHR5cGUge1BoYXNlci5UZXh0dXJlcy5UZXh0dXJlfFBoYXNlci5UZXh0dXJlcy5DYW52YXNUZXh0dXJlfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHRleHR1cmU6IG51bGwsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgVGV4dHVyZSBGcmFtZSB0aGlzIEdhbWUgT2JqZWN0IGlzIHVzaW5nIHRvIHJlbmRlciB3aXRoLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRleHR1cmVDcm9wI2ZyYW1lXHJcbiAgICAgKiBAdHlwZSB7UGhhc2VyLlRleHR1cmVzLkZyYW1lfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGZyYW1lOiBudWxsLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBib29sZWFuIGZsYWcgaW5kaWNhdGluZyBpZiB0aGlzIEdhbWUgT2JqZWN0IGlzIGJlaW5nIGNyb3BwZWQgb3Igbm90LlxyXG4gICAgICogWW91IGNhbiB0b2dnbGUgdGhpcyBhdCBhbnkgdGltZSBhZnRlciBgc2V0Q3JvcGAgaGFzIGJlZW4gY2FsbGVkLCB0byB0dXJuIGNyb3BwaW5nIG9uIG9yIG9mZi5cclxuICAgICAqIEVxdWFsbHksIGNhbGxpbmcgYHNldENyb3BgIHdpdGggbm8gYXJndW1lbnRzIHdpbGwgcmVzZXQgdGhlIGNyb3AgYW5kIGRpc2FibGUgaXQuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGV4dHVyZUNyb3AjaXNDcm9wcGVkXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqL1xyXG4gICAgaXNDcm9wcGVkOiBmYWxzZSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFwcGxpZXMgYSBjcm9wIHRvIGEgdGV4dHVyZSBiYXNlZCBHYW1lIE9iamVjdCwgc3VjaCBhcyBhIFNwcml0ZSBvciBJbWFnZS5cclxuICAgICAqIFxyXG4gICAgICogVGhlIGNyb3AgaXMgYSByZWN0YW5nbGUgdGhhdCBsaW1pdHMgdGhlIGFyZWEgb2YgdGhlIHRleHR1cmUgZnJhbWUgdGhhdCBpcyB2aXNpYmxlIGR1cmluZyByZW5kZXJpbmcuXHJcbiAgICAgKiBcclxuICAgICAqIENyb3BwaW5nIGEgR2FtZSBPYmplY3QgZG9lcyBub3QgY2hhbmdlIGl0cyBzaXplLCBkaW1lbnNpb25zLCBwaHlzaWNzIGJvZHkgb3IgaGl0IGFyZWEsIGl0IGp1c3RcclxuICAgICAqIGNoYW5nZXMgd2hhdCBpcyBzaG93biB3aGVuIHJlbmRlcmVkLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgY3JvcCBjb29yZGluYXRlcyBhcmUgcmVsYXRpdmUgdG8gdGhlIHRleHR1cmUgZnJhbWUsIG5vdCB0aGUgR2FtZSBPYmplY3QsIG1lYW5pbmcgMCB4IDAgaXMgdGhlIHRvcC1sZWZ0LlxyXG4gICAgICogXHJcbiAgICAgKiBUaGVyZWZvcmUsIGlmIHlvdSBoYWQgYSBHYW1lIE9iamVjdCB0aGF0IGhhZCBhbiA4MDB4NjAwIHNpemVkIHRleHR1cmUsIGFuZCB5b3Ugd2FudGVkIHRvIHNob3cgb25seSB0aGUgbGVmdFxyXG4gICAgICogaGFsZiBvZiBpdCwgeW91IGNvdWxkIGNhbGwgYHNldENyb3AoMCwgMCwgNDAwLCA2MDApYC5cclxuICAgICAqIFxyXG4gICAgICogSXQgaXMgYWxzbyBzY2FsZWQgdG8gbWF0Y2ggdGhlIEdhbWUgT2JqZWN0IHNjYWxlIGF1dG9tYXRpY2FsbHkuIFRoZXJlZm9yZSBhIGNyb3AgcmVjdCBvZiAxMDB4NTAgd291bGQgY3JvcFxyXG4gICAgICogYW4gYXJlYSBvZiAyMDB4MTAwIHdoZW4gYXBwbGllZCB0byBhIEdhbWUgT2JqZWN0IHRoYXQgaGFkIGEgc2NhbGUgZmFjdG9yIG9mIDIuXHJcbiAgICAgKiBcclxuICAgICAqIFlvdSBjYW4gZWl0aGVyIHBhc3MgaW4gbnVtZXJpYyB2YWx1ZXMgZGlyZWN0bHksIG9yIHlvdSBjYW4gcHJvdmlkZSBhIHNpbmdsZSBSZWN0YW5nbGUgb2JqZWN0IGFzIHRoZSBmaXJzdCBhcmd1bWVudC5cclxuICAgICAqIFxyXG4gICAgICogQ2FsbCB0aGlzIG1ldGhvZCB3aXRoIG5vIGFyZ3VtZW50cyBhdCBhbGwgdG8gcmVzZXQgdGhlIGNyb3AsIG9yIHRvZ2dsZSB0aGUgcHJvcGVydHkgYGlzQ3JvcHBlZGAgdG8gYGZhbHNlYC5cclxuICAgICAqIFxyXG4gICAgICogWW91IHNob3VsZCBkbyB0aGlzIGlmIHRoZSBjcm9wIHJlY3RhbmdsZSBiZWNvbWVzIHRoZSBzYW1lIHNpemUgYXMgdGhlIGZyYW1lIGl0c2VsZiwgYXMgaXQgd2lsbCBhbGxvd1xyXG4gICAgICogdGhlIHJlbmRlcmVyIHRvIHNraXAgc2V2ZXJhbCBpbnRlcm5hbCBjYWxjdWxhdGlvbnMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UZXh0dXJlQ3JvcCNzZXRDcm9wXHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsobnVtYmVyfFBoYXNlci5HZW9tLlJlY3RhbmdsZSl9IFt4XSAtIFRoZSB4IGNvb3JkaW5hdGUgdG8gc3RhcnQgdGhlIGNyb3AgZnJvbS4gT3IgYSBQaGFzZXIuR2VvbS5SZWN0YW5nbGUgb2JqZWN0LCBpbiB3aGljaCBjYXNlIHRoZSByZXN0IG9mIHRoZSBhcmd1bWVudHMgYXJlIGlnbm9yZWQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ldIC0gVGhlIHkgY29vcmRpbmF0ZSB0byBzdGFydCB0aGUgY3JvcCBmcm9tLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt3aWR0aF0gLSBUaGUgd2lkdGggb2YgdGhlIGNyb3AgcmVjdGFuZ2xlIGluIHBpeGVscy5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbaGVpZ2h0XSAtIFRoZSBoZWlnaHQgb2YgdGhlIGNyb3AgcmVjdGFuZ2xlIGluIHBpeGVscy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRDcm9wOiBmdW5jdGlvbiAoeCwgeSwgd2lkdGgsIGhlaWdodClcclxuICAgIHtcclxuICAgICAgICBpZiAoeCA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5pc0Nyb3BwZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5mcmFtZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgeCA9PT0gJ251bWJlcicpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJhbWUuc2V0Q3JvcFVWcyh0aGlzLl9jcm9wLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB0aGlzLmZsaXBYLCB0aGlzLmZsaXBZKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhciByZWN0ID0geDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZyYW1lLnNldENyb3BVVnModGhpcy5fY3JvcCwgcmVjdC54LCByZWN0LnksIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0LCB0aGlzLmZsaXBYLCB0aGlzLmZsaXBZKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5pc0Nyb3BwZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdGV4dHVyZSBhbmQgZnJhbWUgdGhpcyBHYW1lIE9iamVjdCB3aWxsIHVzZSB0byByZW5kZXIgd2l0aC5cclxuICAgICAqXHJcbiAgICAgKiBUZXh0dXJlcyBhcmUgcmVmZXJlbmNlZCBieSB0aGVpciBzdHJpbmctYmFzZWQga2V5cywgYXMgc3RvcmVkIGluIHRoZSBUZXh0dXJlIE1hbmFnZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UZXh0dXJlQ3JvcCNzZXRUZXh0dXJlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSBvZiB0aGUgdGV4dHVyZSB0byBiZSB1c2VkLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW2ZyYW1lXSAtIFRoZSBuYW1lIG9yIGluZGV4IG9mIHRoZSBmcmFtZSB3aXRoaW4gdGhlIFRleHR1cmUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0VGV4dHVyZTogZnVuY3Rpb24gKGtleSwgZnJhbWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy50ZXh0dXJlID0gdGhpcy5zY2VuZS5zeXMudGV4dHVyZXMuZ2V0KGtleSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnNldEZyYW1lKGZyYW1lKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBmcmFtZSB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIHJlbmRlciB3aXRoLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBGcmFtZSBoYXMgdG8gYmVsb25nIHRvIHRoZSBjdXJyZW50IFRleHR1cmUgYmVpbmcgdXNlZC5cclxuICAgICAqXHJcbiAgICAgKiBJdCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIGluZGV4LlxyXG4gICAgICpcclxuICAgICAqIENhbGxpbmcgYHNldEZyYW1lYCB3aWxsIG1vZGlmeSB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgcHJvcGVydGllcyBvZiB5b3VyIEdhbWUgT2JqZWN0LlxyXG4gICAgICogSXQgd2lsbCBhbHNvIGNoYW5nZSB0aGUgYG9yaWdpbmAgaWYgdGhlIEZyYW1lIGhhcyBhIGN1c3RvbSBwaXZvdCBwb2ludCwgYXMgZXhwb3J0ZWQgZnJvbSBwYWNrYWdlcyBsaWtlIFRleHR1cmUgUGFja2VyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGV4dHVyZUNyb3Ajc2V0RnJhbWVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gZnJhbWUgLSBUaGUgbmFtZSBvciBpbmRleCBvZiB0aGUgZnJhbWUgd2l0aGluIHRoZSBUZXh0dXJlLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbdXBkYXRlU2l6ZT10cnVlXSAtIFNob3VsZCB0aGlzIGNhbGwgYWRqdXN0IHRoZSBzaXplIG9mIHRoZSBHYW1lIE9iamVjdD9cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3VwZGF0ZU9yaWdpbj10cnVlXSAtIFNob3VsZCB0aGlzIGNhbGwgYWRqdXN0IHRoZSBvcmlnaW4gb2YgdGhlIEdhbWUgT2JqZWN0P1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldEZyYW1lOiBmdW5jdGlvbiAoZnJhbWUsIHVwZGF0ZVNpemUsIHVwZGF0ZU9yaWdpbilcclxuICAgIHtcclxuICAgICAgICBpZiAodXBkYXRlU2l6ZSA9PT0gdW5kZWZpbmVkKSB7IHVwZGF0ZVNpemUgPSB0cnVlOyB9XHJcbiAgICAgICAgaWYgKHVwZGF0ZU9yaWdpbiA9PT0gdW5kZWZpbmVkKSB7IHVwZGF0ZU9yaWdpbiA9IHRydWU7IH1cclxuXHJcbiAgICAgICAgdGhpcy5mcmFtZSA9IHRoaXMudGV4dHVyZS5nZXQoZnJhbWUpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuZnJhbWUuY3V0V2lkdGggfHwgIXRoaXMuZnJhbWUuY3V0SGVpZ2h0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJGbGFncyAmPSB+X0ZMQUc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyRmxhZ3MgfD0gX0ZMQUc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fc2l6ZUNvbXBvbmVudCAmJiB1cGRhdGVTaXplKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTaXplVG9GcmFtZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX29yaWdpbkNvbXBvbmVudCAmJiB1cGRhdGVPcmlnaW4pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mcmFtZS5jdXN0b21QaXZvdClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRPcmlnaW4odGhpcy5mcmFtZS5waXZvdFgsIHRoaXMuZnJhbWUucGl2b3RZKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRGlzcGxheU9yaWdpbigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc0Nyb3BwZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmZyYW1lLnVwZGF0ZUNyb3BVVnModGhpcy5fY3JvcCwgdGhpcy5mbGlwWCwgdGhpcy5mbGlwWSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBtZXRob2QgdGhhdCByZXR1cm5zIGEgYmxhbmssIHdlbGwtZm9ybWVkIGNyb3Agb2JqZWN0IGZvciB1c2UgYnkgYSBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRleHR1cmVDcm9wI3Jlc2V0Q3JvcE9iamVjdFxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7b2JqZWN0fSBUaGUgY3JvcCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHJlc2V0Q3JvcE9iamVjdDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4geyB1MDogMCwgdjA6IDAsIHUxOiAwLCB2MTogMCwgd2lkdGg6IDAsIGhlaWdodDogMCwgeDogMCwgeTogMCwgZmxpcFg6IGZhbHNlLCBmbGlwWTogZmFsc2UsIGN4OiAwLCBjeTogMCwgY3c6IDAsIGNoOiAwIH07XHJcbiAgICB9XHJcblxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBUZXh0dXJlQ3JvcDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogQGZ1bmN0aW9uIEdldENvbG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKi9cclxudmFyIEdldENvbG9yID0gZnVuY3Rpb24gKHZhbHVlKVxyXG57XHJcbiAgICByZXR1cm4gKHZhbHVlID4+IDE2KSArICh2YWx1ZSAmIDB4ZmYwMCkgKyAoKHZhbHVlICYgMHhmZikgPDwgMTYpO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIG1ldGhvZHMgdXNlZCBmb3Igc2V0dGluZyB0aGUgdGludCBvZiBhIEdhbWUgT2JqZWN0LlxyXG4gKiBTaG91bGQgYmUgYXBwbGllZCBhcyBhIG1peGluIGFuZCBub3QgdXNlZCBkaXJlY3RseS5cclxuICogXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGludFxyXG4gKiBAd2ViZ2xPbmx5XHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKi9cclxuXHJcbnZhciBUaW50ID0ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS4gSG9sZHMgdGhlIHRvcC1sZWZ0IHRpbnQgdmFsdWUuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRpbnQjX3RpbnRUTFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAZGVmYXVsdCAxNjc3NzIxNVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIF90aW50VEw6IDE2Nzc3MjE1LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS4gSG9sZHMgdGhlIHRvcC1yaWdodCB0aW50IHZhbHVlLlxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UaW50I190aW50VFJcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQGRlZmF1bHQgMTY3NzcyMTVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBfdGludFRSOiAxNjc3NzIxNSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByaXZhdGUgaW50ZXJuYWwgdmFsdWUuIEhvbGRzIHRoZSBib3R0b20tbGVmdCB0aW50IHZhbHVlLlxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UaW50I190aW50QkxcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQGRlZmF1bHQgMTY3NzcyMTVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBfdGludEJMOiAxNjc3NzIxNSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByaXZhdGUgaW50ZXJuYWwgdmFsdWUuIEhvbGRzIHRoZSBib3R0b20tcmlnaHQgdGludCB2YWx1ZS5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGludCNfdGludEJSXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBkZWZhdWx0IDE2Nzc3MjE1XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgX3RpbnRCUjogMTY3NzcyMTUsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcml2YXRlIGludGVybmFsIHZhbHVlLiBIb2xkcyBpZiB0aGUgR2FtZSBPYmplY3QgaXMgdGludGVkIG9yIG5vdC5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGludCNfaXNUaW50ZWRcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKi9cclxuICAgIF9pc1RpbnRlZDogZmFsc2UsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaWxsIG9yIGFkZGl0aXZlP1xyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UaW50I3RpbnRGaWxsXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKi9cclxuICAgIHRpbnRGaWxsOiBmYWxzZSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENsZWFycyBhbGwgdGludCB2YWx1ZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIEltbWVkaWF0ZWx5IHNldHMgdGhlIGNvbG9yIHZhbHVlcyBiYWNrIHRvIDB4ZmZmZmZmIGFuZCB0aGUgdGludCB0eXBlIHRvICdhZGRpdGl2ZScsXHJcbiAgICAgKiB3aGljaCByZXN1bHRzIGluIG5vIHZpc2libGUgY2hhbmdlIHRvIHRoZSB0ZXh0dXJlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGludCNjbGVhclRpbnRcclxuICAgICAqIEB3ZWJnbE9ubHlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBjbGVhclRpbnQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zZXRUaW50KDB4ZmZmZmZmKTtcclxuXHJcbiAgICAgICAgdGhpcy5faXNUaW50ZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBhbiBhZGRpdGl2ZSB0aW50IG9uIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSB0aW50IHdvcmtzIGJ5IHRha2luZyB0aGUgcGl4ZWwgY29sb3IgdmFsdWVzIGZyb20gdGhlIEdhbWUgT2JqZWN0cyB0ZXh0dXJlLCBhbmQgdGhlblxyXG4gICAgICogbXVsdGlwbHlpbmcgaXQgYnkgdGhlIGNvbG9yIHZhbHVlIG9mIHRoZSB0aW50LiBZb3UgY2FuIHByb3ZpZGUgZWl0aGVyIG9uZSBjb2xvciB2YWx1ZSxcclxuICAgICAqIGluIHdoaWNoIGNhc2UgdGhlIHdob2xlIEdhbWUgT2JqZWN0IHdpbGwgYmUgdGludGVkIGluIHRoYXQgY29sb3IuIE9yIHlvdSBjYW4gcHJvdmlkZSBhIGNvbG9yXHJcbiAgICAgKiBwZXIgY29ybmVyLiBUaGUgY29sb3JzIGFyZSBibGVuZGVkIHRvZ2V0aGVyIGFjcm9zcyB0aGUgZXh0ZW50IG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogVG8gbW9kaWZ5IHRoZSB0aW50IGNvbG9yIG9uY2Ugc2V0LCBlaXRoZXIgY2FsbCB0aGlzIG1ldGhvZCBhZ2FpbiB3aXRoIG5ldyB2YWx1ZXMgb3IgdXNlIHRoZVxyXG4gICAgICogYHRpbnRgIHByb3BlcnR5IHRvIHNldCBhbGwgY29sb3JzIGF0IG9uY2UuIE9yLCB1c2UgdGhlIHByb3BlcnRpZXMgYHRpbnRUb3BMZWZ0YCwgYHRpbnRUb3BSaWdodCxcclxuICAgICAqIGB0aW50Qm90dG9tTGVmdGAgYW5kIGB0aW50Qm90dG9tUmlnaHRgIHRvIHNldCB0aGUgY29ybmVyIGNvbG9yIHZhbHVlcyBpbmRlcGVuZGVudGx5LlxyXG4gICAgICogXHJcbiAgICAgKiBUbyByZW1vdmUgYSB0aW50IGNhbGwgYGNsZWFyVGludGAuXHJcbiAgICAgKiBcclxuICAgICAqIFRvIHN3YXAgdGhpcyBmcm9tIGJlaW5nIGFuIGFkZGl0aXZlIHRpbnQgdG8gYSBmaWxsIGJhc2VkIHRpbnQgc2V0IHRoZSBwcm9wZXJ0eSBgdGludEZpbGxgIHRvIGB0cnVlYC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRpbnQjc2V0VGludFxyXG4gICAgICogQHdlYmdsT25seVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbdG9wTGVmdD0weGZmZmZmZl0gLSBUaGUgdGludCBiZWluZyBhcHBsaWVkIHRvIHRoZSB0b3AtbGVmdCBvZiB0aGUgR2FtZSBPYmplY3QuIElmIG5vIG90aGVyIHZhbHVlcyBhcmUgZ2l2ZW4gdGhpcyB2YWx1ZSBpcyBhcHBsaWVkIGV2ZW5seSwgdGludGluZyB0aGUgd2hvbGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFt0b3BSaWdodF0gLSBUaGUgdGludCBiZWluZyBhcHBsaWVkIHRvIHRoZSB0b3AtcmlnaHQgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbYm90dG9tTGVmdF0gLSBUaGUgdGludCBiZWluZyBhcHBsaWVkIHRvIHRoZSBib3R0b20tbGVmdCBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtib3R0b21SaWdodF0gLSBUaGUgdGludCBiZWluZyBhcHBsaWVkIHRvIHRoZSBib3R0b20tcmlnaHQgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRUaW50OiBmdW5jdGlvbiAodG9wTGVmdCwgdG9wUmlnaHQsIGJvdHRvbUxlZnQsIGJvdHRvbVJpZ2h0KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0b3BMZWZ0ID09PSB1bmRlZmluZWQpIHsgdG9wTGVmdCA9IDB4ZmZmZmZmOyB9XHJcblxyXG4gICAgICAgIGlmICh0b3BSaWdodCA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdG9wUmlnaHQgPSB0b3BMZWZ0O1xyXG4gICAgICAgICAgICBib3R0b21MZWZ0ID0gdG9wTGVmdDtcclxuICAgICAgICAgICAgYm90dG9tUmlnaHQgPSB0b3BMZWZ0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fdGludFRMID0gR2V0Q29sb3IodG9wTGVmdCk7XHJcbiAgICAgICAgdGhpcy5fdGludFRSID0gR2V0Q29sb3IodG9wUmlnaHQpO1xyXG4gICAgICAgIHRoaXMuX3RpbnRCTCA9IEdldENvbG9yKGJvdHRvbUxlZnQpO1xyXG4gICAgICAgIHRoaXMuX3RpbnRCUiA9IEdldENvbG9yKGJvdHRvbVJpZ2h0KTtcclxuXHJcbiAgICAgICAgdGhpcy5faXNUaW50ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLnRpbnRGaWxsID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgYSBmaWxsLWJhc2VkIHRpbnQgb24gdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogVW5saWtlIGFuIGFkZGl0aXZlIHRpbnQsIGEgZmlsbC10aW50IGxpdGVyYWxseSByZXBsYWNlcyB0aGUgcGl4ZWwgY29sb3JzIGZyb20gdGhlIHRleHR1cmVcclxuICAgICAqIHdpdGggdGhvc2UgaW4gdGhlIHRpbnQuIFlvdSBjYW4gdXNlIHRoaXMgZm9yIGVmZmVjdHMgc3VjaCBhcyBtYWtpbmcgYSBwbGF5ZXIgZmxhc2ggJ3doaXRlJ1xyXG4gICAgICogaWYgaGl0IGJ5IHNvbWV0aGluZy4gWW91IGNhbiBwcm92aWRlIGVpdGhlciBvbmUgY29sb3IgdmFsdWUsIGluIHdoaWNoIGNhc2UgdGhlIHdob2xlXHJcbiAgICAgKiBHYW1lIE9iamVjdCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoYXQgY29sb3IuIE9yIHlvdSBjYW4gcHJvdmlkZSBhIGNvbG9yIHBlciBjb3JuZXIuIFRoZSBjb2xvcnNcclxuICAgICAqIGFyZSBibGVuZGVkIHRvZ2V0aGVyIGFjcm9zcyB0aGUgZXh0ZW50IG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogVG8gbW9kaWZ5IHRoZSB0aW50IGNvbG9yIG9uY2Ugc2V0LCBlaXRoZXIgY2FsbCB0aGlzIG1ldGhvZCBhZ2FpbiB3aXRoIG5ldyB2YWx1ZXMgb3IgdXNlIHRoZVxyXG4gICAgICogYHRpbnRgIHByb3BlcnR5IHRvIHNldCBhbGwgY29sb3JzIGF0IG9uY2UuIE9yLCB1c2UgdGhlIHByb3BlcnRpZXMgYHRpbnRUb3BMZWZ0YCwgYHRpbnRUb3BSaWdodCxcclxuICAgICAqIGB0aW50Qm90dG9tTGVmdGAgYW5kIGB0aW50Qm90dG9tUmlnaHRgIHRvIHNldCB0aGUgY29ybmVyIGNvbG9yIHZhbHVlcyBpbmRlcGVuZGVudGx5LlxyXG4gICAgICogXHJcbiAgICAgKiBUbyByZW1vdmUgYSB0aW50IGNhbGwgYGNsZWFyVGludGAuXHJcbiAgICAgKiBcclxuICAgICAqIFRvIHN3YXAgdGhpcyBmcm9tIGJlaW5nIGEgZmlsbC10aW50IHRvIGFuIGFkZGl0aXZlIHRpbnQgc2V0IHRoZSBwcm9wZXJ0eSBgdGludEZpbGxgIHRvIGBmYWxzZWAuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UaW50I3NldFRpbnRGaWxsXHJcbiAgICAgKiBAd2ViZ2xPbmx5XHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbdG9wTGVmdD0weGZmZmZmZl0gLSBUaGUgdGludCBiZWluZyBhcHBsaWVkIHRvIHRoZSB0b3AtbGVmdCBvZiB0aGUgR2FtZSBPYmplY3QuIElmIG5vdCBvdGhlciB2YWx1ZXMgYXJlIGdpdmVuIHRoaXMgdmFsdWUgaXMgYXBwbGllZCBldmVubHksIHRpbnRpbmcgdGhlIHdob2xlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbdG9wUmlnaHRdIC0gVGhlIHRpbnQgYmVpbmcgYXBwbGllZCB0byB0aGUgdG9wLXJpZ2h0IG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2JvdHRvbUxlZnRdIC0gVGhlIHRpbnQgYmVpbmcgYXBwbGllZCB0byB0aGUgYm90dG9tLWxlZnQgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbYm90dG9tUmlnaHRdIC0gVGhlIHRpbnQgYmVpbmcgYXBwbGllZCB0byB0aGUgYm90dG9tLXJpZ2h0IG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0VGludEZpbGw6IGZ1bmN0aW9uICh0b3BMZWZ0LCB0b3BSaWdodCwgYm90dG9tTGVmdCwgYm90dG9tUmlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zZXRUaW50KHRvcExlZnQsIHRvcFJpZ2h0LCBib3R0b21MZWZ0LCBib3R0b21SaWdodCk7XHJcblxyXG4gICAgICAgIHRoaXMudGludEZpbGwgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdGludCB2YWx1ZSBiZWluZyBhcHBsaWVkIHRvIHRoZSB0b3AtbGVmdCBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBUaGlzIHZhbHVlIGlzIGludGVycG9sYXRlZCBmcm9tIHRoZSBjb3JuZXIgdG8gdGhlIGNlbnRlciBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRpbnQjdGludFRvcExlZnRcclxuICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICogQHdlYmdsT25seVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHRpbnRUb3BMZWZ0OiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90aW50VEw7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl90aW50VEwgPSBHZXRDb2xvcih2YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX2lzVGludGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0aW50IHZhbHVlIGJlaW5nIGFwcGxpZWQgdG8gdGhlIHRvcC1yaWdodCBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBUaGlzIHZhbHVlIGlzIGludGVycG9sYXRlZCBmcm9tIHRoZSBjb3JuZXIgdG8gdGhlIGNlbnRlciBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRpbnQjdGludFRvcFJpZ2h0XHJcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAqIEB3ZWJnbE9ubHlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB0aW50VG9wUmlnaHQ6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RpbnRUUjtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RpbnRUUiA9IEdldENvbG9yKHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5faXNUaW50ZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRpbnQgdmFsdWUgYmVpbmcgYXBwbGllZCB0byB0aGUgYm90dG9tLWxlZnQgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogVGhpcyB2YWx1ZSBpcyBpbnRlcnBvbGF0ZWQgZnJvbSB0aGUgY29ybmVyIHRvIHRoZSBjZW50ZXIgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UaW50I3RpbnRCb3R0b21MZWZ0XHJcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAqIEB3ZWJnbE9ubHlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB0aW50Qm90dG9tTGVmdDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdGludEJMO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fdGludEJMID0gR2V0Q29sb3IodmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLl9pc1RpbnRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdGludCB2YWx1ZSBiZWluZyBhcHBsaWVkIHRvIHRoZSBib3R0b20tcmlnaHQgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogVGhpcyB2YWx1ZSBpcyBpbnRlcnBvbGF0ZWQgZnJvbSB0aGUgY29ybmVyIHRvIHRoZSBjZW50ZXIgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UaW50I3RpbnRCb3R0b21SaWdodFxyXG4gICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgKiBAd2ViZ2xPbmx5XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgdGludEJvdHRvbVJpZ2h0OiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90aW50QlI7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl90aW50QlIgPSBHZXRDb2xvcih2YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX2lzVGludGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0aW50IHZhbHVlIGJlaW5nIGFwcGxpZWQgdG8gdGhlIHdob2xlIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIFRoaXMgcHJvcGVydHkgaXMgYSBzZXR0ZXItb25seS4gVXNlIHRoZSBwcm9wZXJ0aWVzIGB0aW50VG9wTGVmdGAgZXRjIHRvIHJlYWQgdGhlIGN1cnJlbnQgdGludCB2YWx1ZS5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGludCN0aW50XHJcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAqIEB3ZWJnbE9ubHlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB0aW50OiB7XHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRUaW50KHZhbHVlLCB2YWx1ZSwgdmFsdWUsIHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRG9lcyB0aGlzIEdhbWUgT2JqZWN0IGhhdmUgYSB0aW50IGFwcGxpZWQgdG8gaXQgb3Igbm90P1xyXG4gICAgICogXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UaW50I2lzVGludGVkXHJcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAqIEB3ZWJnbE9ubHlcclxuICAgICAqIEByZWFkb25seVxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICovXHJcbiAgICBpc1RpbnRlZDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNUaW50ZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFRpbnQ7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEJ1aWxkIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gR2FtZSBPYmplY3QuXHJcbiAqXHJcbiAqIFRoaXMgaXMgdHlwaWNhbGx5IGV4dGVuZGVkIGZ1cnRoZXIgYnkgR2FtZSBPYmplY3Qgc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRvSlNPTlxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0byBleHBvcnQgYXMgSlNPTi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLkpTT05HYW1lT2JqZWN0fSBBIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKi9cclxudmFyIFRvSlNPTiA9IGZ1bmN0aW9uIChnYW1lT2JqZWN0KVxyXG57XHJcbiAgICB2YXIgb3V0ID0ge1xyXG4gICAgICAgIG5hbWU6IGdhbWVPYmplY3QubmFtZSxcclxuICAgICAgICB0eXBlOiBnYW1lT2JqZWN0LnR5cGUsXHJcbiAgICAgICAgeDogZ2FtZU9iamVjdC54LFxyXG4gICAgICAgIHk6IGdhbWVPYmplY3QueSxcclxuICAgICAgICBkZXB0aDogZ2FtZU9iamVjdC5kZXB0aCxcclxuICAgICAgICBzY2FsZToge1xyXG4gICAgICAgICAgICB4OiBnYW1lT2JqZWN0LnNjYWxlWCxcclxuICAgICAgICAgICAgeTogZ2FtZU9iamVjdC5zY2FsZVlcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9yaWdpbjoge1xyXG4gICAgICAgICAgICB4OiBnYW1lT2JqZWN0Lm9yaWdpblgsXHJcbiAgICAgICAgICAgIHk6IGdhbWVPYmplY3Qub3JpZ2luWVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZmxpcFg6IGdhbWVPYmplY3QuZmxpcFgsXHJcbiAgICAgICAgZmxpcFk6IGdhbWVPYmplY3QuZmxpcFksXHJcbiAgICAgICAgcm90YXRpb246IGdhbWVPYmplY3Qucm90YXRpb24sXHJcbiAgICAgICAgYWxwaGE6IGdhbWVPYmplY3QuYWxwaGEsXHJcbiAgICAgICAgdmlzaWJsZTogZ2FtZU9iamVjdC52aXNpYmxlLFxyXG4gICAgICAgIGJsZW5kTW9kZTogZ2FtZU9iamVjdC5ibGVuZE1vZGUsXHJcbiAgICAgICAgdGV4dHVyZUtleTogJycsXHJcbiAgICAgICAgZnJhbWVLZXk6ICcnLFxyXG4gICAgICAgIGRhdGE6IHt9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChnYW1lT2JqZWN0LnRleHR1cmUpXHJcbiAgICB7XHJcbiAgICAgICAgb3V0LnRleHR1cmVLZXkgPSBnYW1lT2JqZWN0LnRleHR1cmUua2V5O1xyXG4gICAgICAgIG91dC5mcmFtZUtleSA9IGdhbWVPYmplY3QuZnJhbWUubmFtZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb3V0O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBUb0pTT047XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIE1BVEhfQ09OU1QgPSByZXF1aXJlKCcuLi8uLi9tYXRoL2NvbnN0Jyk7XHJcbnZhciBUcmFuc2Zvcm1NYXRyaXggPSByZXF1aXJlKCcuL1RyYW5zZm9ybU1hdHJpeCcpO1xyXG52YXIgV3JhcEFuZ2xlID0gcmVxdWlyZSgnLi4vLi4vbWF0aC9hbmdsZS9XcmFwJyk7XHJcbnZhciBXcmFwQW5nbGVEZWdyZWVzID0gcmVxdWlyZSgnLi4vLi4vbWF0aC9hbmdsZS9XcmFwRGVncmVlcycpO1xyXG5cclxuLy8gIGdsb2JhbCBiaXRtYXNrIGZsYWcgZm9yIEdhbWVPYmplY3QucmVuZGVyTWFzayAodXNlZCBieSBTY2FsZSlcclxudmFyIF9GTEFHID0gNDsgLy8gMDEwMFxyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIG1ldGhvZHMgdXNlZCBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZyB0aGUgcG9zaXRpb24sIHNjYWxlIGFuZCByb3RhdGlvbiBvZiBhIEdhbWUgT2JqZWN0LlxyXG4gKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICovXHJcblxyXG52YXIgVHJhbnNmb3JtID0ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS4gSG9sZHMgdGhlIGhvcml6b250YWwgc2NhbGUgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtI19zY2FsZVhcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQGRlZmF1bHQgMVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIF9zY2FsZVg6IDEsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcml2YXRlIGludGVybmFsIHZhbHVlLiBIb2xkcyB0aGUgdmVydGljYWwgc2NhbGUgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtI19zY2FsZVlcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQGRlZmF1bHQgMVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIF9zY2FsZVk6IDEsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcml2YXRlIGludGVybmFsIHZhbHVlLiBIb2xkcyB0aGUgcm90YXRpb24gdmFsdWUgaW4gcmFkaWFucy5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm0jX3JvdGF0aW9uXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBfcm90YXRpb246IDAsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgeCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSN4XHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQGRlZmF1bHQgMFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHg6IDAsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgeSBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSN5XHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQGRlZmF1bHQgMFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHk6IDAsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgeiBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIE5vdGU6IFRoZSB6IHBvc2l0aW9uIGRvZXMgbm90IGNvbnRyb2wgdGhlIHJlbmRlcmluZyBvcmRlciBvZiAyRCBHYW1lIE9iamVjdHMuIFVzZVxyXG4gICAgICoge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkRlcHRoI2RlcHRofSBpbnN0ZWFkLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSN6XHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQGRlZmF1bHQgMFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHo6IDAsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdyBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSN3XHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQGRlZmF1bHQgMFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHc6IDAsXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGlzIGEgc3BlY2lhbCBzZXR0ZXIgdGhhdCBhbGxvd3MgeW91IHRvIHNldCBib3RoIHRoZSBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBzY2FsZSBvZiB0aGlzIEdhbWUgT2JqZWN0XHJcbiAgICAgKiB0byB0aGUgc2FtZSB2YWx1ZSwgYXQgdGhlIHNhbWUgdGltZS4gV2hlbiByZWFkaW5nIHRoaXMgdmFsdWUgdGhlIHJlc3VsdCByZXR1cm5lZCBpcyBgKHNjYWxlWCArIHNjYWxlWSkgLyAyYC5cclxuICAgICAqXHJcbiAgICAgKiBVc2Ugb2YgdGhpcyBwcm9wZXJ0eSBpbXBsaWVzIHlvdSB3aXNoIHRoZSBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBzY2FsZXMgdG8gYmUgZXF1YWwgdG8gZWFjaCBvdGhlci4gSWYgdGhpc1xyXG4gICAgICogaXNuJ3QgdGhlIGNhc2UsIHVzZSB0aGUgYHNjYWxlWGAgb3IgYHNjYWxlWWAgcHJvcGVydGllcyBpbnN0ZWFkLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSNzY2FsZVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAqIEBzaW5jZSAzLjE4LjBcclxuICAgICAqL1xyXG4gICAgc2NhbGU6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLl9zY2FsZVggKyB0aGlzLl9zY2FsZVkpIC8gMjtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NjYWxlWCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl9zY2FsZVkgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gMClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJGbGFncyAmPSB+X0ZMQUc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckZsYWdzIHw9IF9GTEFHO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgaG9yaXpvbnRhbCBzY2FsZSBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSNzY2FsZVhcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAZGVmYXVsdCAxXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgc2NhbGVYOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zY2FsZVg7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9zY2FsZVggPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gMClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJGbGFncyAmPSB+X0ZMQUc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckZsYWdzIHw9IF9GTEFHO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdmVydGljYWwgc2NhbGUgb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm0jc2NhbGVZXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQGRlZmF1bHQgMVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHNjYWxlWToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2NhbGVZO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fc2NhbGVZID0gdmFsdWU7XHJcblxyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyRmxhZ3MgJj0gfl9GTEFHO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJGbGFncyB8PSBfRkxBRztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGFuZ2xlIG9mIHRoaXMgR2FtZSBPYmplY3QgYXMgZXhwcmVzc2VkIGluIGRlZ3JlZXMuXHJcbiAgICAgKlxyXG4gICAgICogUGhhc2VyIHVzZXMgYSByaWdodC1oYW5kIGNsb2Nrd2lzZSByb3RhdGlvbiBzeXN0ZW0sIHdoZXJlIDAgaXMgcmlnaHQsIDkwIGlzIGRvd24sIDE4MC8tMTgwIGlzIGxlZnRcclxuICAgICAqIGFuZCAtOTAgaXMgdXAuXHJcbiAgICAgKlxyXG4gICAgICogSWYgeW91IHByZWZlciB0byB3b3JrIGluIHJhZGlhbnMsIHNlZSB0aGUgYHJvdGF0aW9uYCBwcm9wZXJ0eSBpbnN0ZWFkLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSNhbmdsZVxyXG4gICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgYW5nbGU6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIFdyYXBBbmdsZURlZ3JlZXModGhpcy5fcm90YXRpb24gKiBNQVRIX0NPTlNULlJBRF9UT19ERUcpO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIHZhbHVlIGlzIGluIGRlZ3JlZXNcclxuICAgICAgICAgICAgdGhpcy5yb3RhdGlvbiA9IFdyYXBBbmdsZURlZ3JlZXModmFsdWUpICogTUFUSF9DT05TVC5ERUdfVE9fUkFEO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYW5nbGUgb2YgdGhpcyBHYW1lIE9iamVjdCBpbiByYWRpYW5zLlxyXG4gICAgICpcclxuICAgICAqIFBoYXNlciB1c2VzIGEgcmlnaHQtaGFuZCBjbG9ja3dpc2Ugcm90YXRpb24gc3lzdGVtLCB3aGVyZSAwIGlzIHJpZ2h0LCBQSS8yIGlzIGRvd24sICstUEkgaXMgbGVmdFxyXG4gICAgICogYW5kIC1QSS8yIGlzIHVwLlxyXG4gICAgICpcclxuICAgICAqIElmIHlvdSBwcmVmZXIgdG8gd29yayBpbiBkZWdyZWVzLCBzZWUgdGhlIGBhbmdsZWAgcHJvcGVydHkgaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm0jcm90YXRpb25cclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAZGVmYXVsdCAxXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgcm90YXRpb246IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3JvdGF0aW9uO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIHZhbHVlIGlzIGluIHJhZGlhbnNcclxuICAgICAgICAgICAgdGhpcy5fcm90YXRpb24gPSBXcmFwQW5nbGUodmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtI3NldFBvc2l0aW9uXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3g9MF0gLSBUaGUgeCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5PXhdIC0gVGhlIHkgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdC4gSWYgbm90IHNldCBpdCB3aWxsIHVzZSB0aGUgYHhgIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt6PTBdIC0gVGhlIHogcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbdz0wXSAtIFRoZSB3IHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0UG9zaXRpb246IGZ1bmN0aW9uICh4LCB5LCB6LCB3KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHsgeCA9IDA7IH1cclxuICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSB4OyB9XHJcbiAgICAgICAgaWYgKHogPT09IHVuZGVmaW5lZCkgeyB6ID0gMDsgfVxyXG4gICAgICAgIGlmICh3ID09PSB1bmRlZmluZWQpIHsgdyA9IDA7IH1cclxuXHJcbiAgICAgICAgdGhpcy54ID0geDtcclxuICAgICAgICB0aGlzLnkgPSB5O1xyXG4gICAgICAgIHRoaXMueiA9IHo7XHJcbiAgICAgICAgdGhpcy53ID0gdztcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCB0byBiZSBhIHJhbmRvbSBwb3NpdGlvbiB3aXRoaW4gdGhlIGNvbmZpbmVzIG9mXHJcbiAgICAgKiB0aGUgZ2l2ZW4gYXJlYS5cclxuICAgICAqXHJcbiAgICAgKiBJZiBubyBhcmVhIGlzIHNwZWNpZmllZCBhIHJhbmRvbSBwb3NpdGlvbiBiZXR3ZWVuIDAgeCAwIGFuZCB0aGUgZ2FtZSB3aWR0aCB4IGhlaWdodCBpcyB1c2VkIGluc3RlYWQuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIHBvc2l0aW9uIGRvZXMgbm90IGZhY3RvciBpbiB0aGUgc2l6ZSBvZiB0aGlzIEdhbWUgT2JqZWN0LCBtZWFuaW5nIHRoYXQgb25seSB0aGUgb3JpZ2luIGlzXHJcbiAgICAgKiBndWFyYW50ZWVkIHRvIGJlIHdpdGhpbiB0aGUgYXJlYS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSNzZXRSYW5kb21Qb3NpdGlvblxyXG4gICAgICogQHNpbmNlIDMuOC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIHggcG9zaXRpb24gb2YgdGhlIHRvcC1sZWZ0IG9mIHRoZSByYW5kb20gYXJlYS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB5IHBvc2l0aW9uIG9mIHRoZSB0b3AtbGVmdCBvZiB0aGUgcmFuZG9tIGFyZWEuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3dpZHRoXSAtIFRoZSB3aWR0aCBvZiB0aGUgcmFuZG9tIGFyZWEuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2hlaWdodF0gLSBUaGUgaGVpZ2h0IG9mIHRoZSByYW5kb20gYXJlYS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRSYW5kb21Qb3NpdGlvbjogZnVuY3Rpb24gKHgsIHksIHdpZHRoLCBoZWlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZCkgeyB4ID0gMDsgfVxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IDA7IH1cclxuICAgICAgICBpZiAod2lkdGggPT09IHVuZGVmaW5lZCkgeyB3aWR0aCA9IHRoaXMuc2NlbmUuc3lzLnNjYWxlLndpZHRoOyB9XHJcbiAgICAgICAgaWYgKGhlaWdodCA9PT0gdW5kZWZpbmVkKSB7IGhlaWdodCA9IHRoaXMuc2NlbmUuc3lzLnNjYWxlLmhlaWdodDsgfVxyXG5cclxuICAgICAgICB0aGlzLnggPSB4ICsgKE1hdGgucmFuZG9tKCkgKiB3aWR0aCk7XHJcbiAgICAgICAgdGhpcy55ID0geSArIChNYXRoLnJhbmRvbSgpICogaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgcm90YXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSNzZXRSb3RhdGlvblxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtyYWRpYW5zPTBdIC0gVGhlIHJvdGF0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QsIGluIHJhZGlhbnMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0Um90YXRpb246IGZ1bmN0aW9uIChyYWRpYW5zKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChyYWRpYW5zID09PSB1bmRlZmluZWQpIHsgcmFkaWFucyA9IDA7IH1cclxuXHJcbiAgICAgICAgdGhpcy5yb3RhdGlvbiA9IHJhZGlhbnM7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGFuZ2xlIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm0jc2V0QW5nbGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZGVncmVlcz0wXSAtIFRoZSByb3RhdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0LCBpbiBkZWdyZWVzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldEFuZ2xlOiBmdW5jdGlvbiAoZGVncmVlcylcclxuICAgIHtcclxuICAgICAgICBpZiAoZGVncmVlcyA9PT0gdW5kZWZpbmVkKSB7IGRlZ3JlZXMgPSAwOyB9XHJcblxyXG4gICAgICAgIHRoaXMuYW5nbGUgPSBkZWdyZWVzO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBzY2FsZSBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtI3NldFNjYWxlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBob3Jpem9udGFsIHNjYWxlIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3k9eF0gLSBUaGUgdmVydGljYWwgc2NhbGUgb2YgdGhpcyBHYW1lIE9iamVjdC4gSWYgbm90IHNldCBpdCB3aWxsIHVzZSB0aGUgYHhgIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFNjYWxlOiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7IHggPSAxOyB9XHJcbiAgICAgICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgeyB5ID0geDsgfVxyXG5cclxuICAgICAgICB0aGlzLnNjYWxlWCA9IHg7XHJcbiAgICAgICAgdGhpcy5zY2FsZVkgPSB5O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB4IHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm0jc2V0WFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt2YWx1ZT0wXSAtIFRoZSB4IHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0WDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7IHZhbHVlID0gMDsgfVxyXG5cclxuICAgICAgICB0aGlzLnggPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgeSBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtI3NldFlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbdmFsdWU9MF0gLSBUaGUgeSBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFk6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgeyB2YWx1ZSA9IDA7IH1cclxuXHJcbiAgICAgICAgdGhpcy55ID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHogcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBOb3RlOiBUaGUgeiBwb3NpdGlvbiBkb2VzIG5vdCBjb250cm9sIHRoZSByZW5kZXJpbmcgb3JkZXIgb2YgMkQgR2FtZSBPYmplY3RzLiBVc2VcclxuICAgICAqIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5EZXB0aCNzZXREZXB0aH0gaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSNzZXRaXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ZhbHVlPTBdIC0gVGhlIHogcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRaOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHsgdmFsdWUgPSAwOyB9XHJcblxyXG4gICAgICAgIHRoaXMueiA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB3IHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm0jc2V0V1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt2YWx1ZT0wXSAtIFRoZSB3IHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0VzogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7IHZhbHVlID0gMDsgfVxyXG5cclxuICAgICAgICB0aGlzLncgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgbG9jYWwgdHJhbnNmb3JtIG1hdHJpeCBmb3IgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSNnZXRMb2NhbFRyYW5zZm9ybU1hdHJpeFxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IFt0ZW1wTWF0cml4XSAtIFRoZSBtYXRyaXggdG8gcG9wdWxhdGUgd2l0aCB0aGUgdmFsdWVzIGZyb20gdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IFRoZSBwb3B1bGF0ZWQgVHJhbnNmb3JtIE1hdHJpeC5cclxuICAgICAqL1xyXG4gICAgZ2V0TG9jYWxUcmFuc2Zvcm1NYXRyaXg6IGZ1bmN0aW9uICh0ZW1wTWF0cml4KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0ZW1wTWF0cml4ID09PSB1bmRlZmluZWQpIHsgdGVtcE1hdHJpeCA9IG5ldyBUcmFuc2Zvcm1NYXRyaXgoKTsgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGVtcE1hdHJpeC5hcHBseUlUUlModGhpcy54LCB0aGlzLnksIHRoaXMuX3JvdGF0aW9uLCB0aGlzLl9zY2FsZVgsIHRoaXMuX3NjYWxlWSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgd29ybGQgdHJhbnNmb3JtIG1hdHJpeCBmb3IgdGhpcyBHYW1lIE9iamVjdCwgZmFjdG9yaW5nIGluIGFueSBwYXJlbnQgQ29udGFpbmVycy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSNnZXRXb3JsZFRyYW5zZm9ybU1hdHJpeFxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IFt0ZW1wTWF0cml4XSAtIFRoZSBtYXRyaXggdG8gcG9wdWxhdGUgd2l0aCB0aGUgdmFsdWVzIGZyb20gdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBbcGFyZW50TWF0cml4XSAtIEEgdGVtcG9yYXJ5IG1hdHJpeCB0byBob2xkIHBhcmVudCB2YWx1ZXMgZHVyaW5nIHRoZSBjYWxjdWxhdGlvbnMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBUaGUgcG9wdWxhdGVkIFRyYW5zZm9ybSBNYXRyaXguXHJcbiAgICAgKi9cclxuICAgIGdldFdvcmxkVHJhbnNmb3JtTWF0cml4OiBmdW5jdGlvbiAodGVtcE1hdHJpeCwgcGFyZW50TWF0cml4KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0ZW1wTWF0cml4ID09PSB1bmRlZmluZWQpIHsgdGVtcE1hdHJpeCA9IG5ldyBUcmFuc2Zvcm1NYXRyaXgoKTsgfVxyXG4gICAgICAgIGlmIChwYXJlbnRNYXRyaXggPT09IHVuZGVmaW5lZCkgeyBwYXJlbnRNYXRyaXggPSBuZXcgVHJhbnNmb3JtTWF0cml4KCk7IH1cclxuXHJcbiAgICAgICAgdmFyIHBhcmVudCA9IHRoaXMucGFyZW50Q29udGFpbmVyO1xyXG5cclxuICAgICAgICBpZiAoIXBhcmVudClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldExvY2FsVHJhbnNmb3JtTWF0cml4KHRlbXBNYXRyaXgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGVtcE1hdHJpeC5hcHBseUlUUlModGhpcy54LCB0aGlzLnksIHRoaXMuX3JvdGF0aW9uLCB0aGlzLl9zY2FsZVgsIHRoaXMuX3NjYWxlWSk7XHJcblxyXG4gICAgICAgIHdoaWxlIChwYXJlbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwYXJlbnRNYXRyaXguYXBwbHlJVFJTKHBhcmVudC54LCBwYXJlbnQueSwgcGFyZW50Ll9yb3RhdGlvbiwgcGFyZW50Ll9zY2FsZVgsIHBhcmVudC5fc2NhbGVZKTtcclxuXHJcbiAgICAgICAgICAgIHBhcmVudE1hdHJpeC5tdWx0aXBseSh0ZW1wTWF0cml4LCB0ZW1wTWF0cml4KTtcclxuXHJcbiAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRDb250YWluZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGVtcE1hdHJpeDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBzdW0gdG90YWwgcm90YXRpb24gb2YgYWxsIG9mIHRoaXMgR2FtZSBPYmplY3RzIHBhcmVudCBDb250YWluZXJzLlxyXG4gICAgICpcclxuICAgICAqIFRoZSByZXR1cm5lZCB2YWx1ZSBpcyBpbiByYWRpYW5zIGFuZCB3aWxsIGJlIHplcm8gaWYgdGhpcyBHYW1lIE9iamVjdCBoYXMgbm8gcGFyZW50IGNvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybSNnZXRQYXJlbnRSb3RhdGlvblxyXG4gICAgICogQHNpbmNlIDMuMTguMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge251bWJlcn0gVGhlIHN1bSB0b3RhbCByb3RhdGlvbiwgaW4gcmFkaWFucywgb2YgYWxsIHBhcmVudCBjb250YWluZXJzIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGdldFBhcmVudFJvdGF0aW9uOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciByb3RhdGlvbiA9IDA7XHJcblxyXG4gICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLnBhcmVudENvbnRhaW5lcjtcclxuXHJcbiAgICAgICAgd2hpbGUgKHBhcmVudClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJvdGF0aW9uICs9IHBhcmVudC5yb3RhdGlvbjtcclxuXHJcbiAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRDb250YWluZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcm90YXRpb247XHJcbiAgICB9XHJcblxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBUcmFuc2Zvcm07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIE1BVEhfQ09OU1QgPSByZXF1aXJlKCcuLi8uLi9tYXRoL2NvbnN0Jyk7XHJcbnZhciBWZWN0b3IyID0gcmVxdWlyZSgnLi4vLi4vbWF0aC9WZWN0b3IyJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIE1hdHJpeCB1c2VkIGZvciBkaXNwbGF5IHRyYW5zZm9ybWF0aW9ucyBmb3IgcmVuZGVyaW5nLlxyXG4gKlxyXG4gKiBJdCBpcyByZXByZXNlbnRlZCBsaWtlIHNvOlxyXG4gKlxyXG4gKiBgYGBcclxuICogfCBhIHwgYyB8IHR4IHxcclxuICogfCBiIHwgZCB8IHR5IHxcclxuICogfCAwIHwgMCB8IDEgIHxcclxuICogYGBgXHJcbiAqXHJcbiAqIEBjbGFzcyBUcmFuc2Zvcm1NYXRyaXhcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IFthPTFdIC0gVGhlIFNjYWxlIFggdmFsdWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbYj0wXSAtIFRoZSBTa2V3IFkgdmFsdWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbYz0wXSAtIFRoZSBTa2V3IFggdmFsdWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZD0xXSAtIFRoZSBTY2FsZSBZIHZhbHVlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3R4PTBdIC0gVGhlIFRyYW5zbGF0ZSBYIHZhbHVlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3R5PTBdIC0gVGhlIFRyYW5zbGF0ZSBZIHZhbHVlLlxyXG4gKi9cclxudmFyIFRyYW5zZm9ybU1hdHJpeCA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBUcmFuc2Zvcm1NYXRyaXggKGEsIGIsIGMsIGQsIHR4LCB0eSlcclxuICAgIHtcclxuICAgICAgICBpZiAoYSA9PT0gdW5kZWZpbmVkKSB7IGEgPSAxOyB9XHJcbiAgICAgICAgaWYgKGIgPT09IHVuZGVmaW5lZCkgeyBiID0gMDsgfVxyXG4gICAgICAgIGlmIChjID09PSB1bmRlZmluZWQpIHsgYyA9IDA7IH1cclxuICAgICAgICBpZiAoZCA9PT0gdW5kZWZpbmVkKSB7IGQgPSAxOyB9XHJcbiAgICAgICAgaWYgKHR4ID09PSB1bmRlZmluZWQpIHsgdHggPSAwOyB9XHJcbiAgICAgICAgaWYgKHR5ID09PSB1bmRlZmluZWQpIHsgdHkgPSAwOyB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBtYXRyaXggdmFsdWVzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4I21hdHJpeFxyXG4gICAgICAgICAqIEB0eXBlIHtGbG9hdDMyQXJyYXl9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tYXRyaXggPSBuZXcgRmxvYXQzMkFycmF5KFsgYSwgYiwgYywgZCwgdHgsIHR5LCAwLCAwLCAxIF0pO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZGVjb21wb3NlZCBtYXRyaXguXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjZGVjb21wb3NlZE1hdHJpeFxyXG4gICAgICAgICAqIEB0eXBlIHtvYmplY3R9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWNvbXBvc2VkTWF0cml4ID0ge1xyXG4gICAgICAgICAgICB0cmFuc2xhdGVYOiAwLFxyXG4gICAgICAgICAgICB0cmFuc2xhdGVZOiAwLFxyXG4gICAgICAgICAgICBzY2FsZVg6IDEsXHJcbiAgICAgICAgICAgIHNjYWxlWTogMSxcclxuICAgICAgICAgICAgcm90YXRpb246IDBcclxuICAgICAgICB9O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBTY2FsZSBYIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeCNhXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKi9cclxuICAgIGE6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWF0cml4WzBdO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5tYXRyaXhbMF0gPSB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBTa2V3IFkgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4I2JcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqL1xyXG4gICAgYjoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYXRyaXhbMV07XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1hdHJpeFsxXSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFNrZXcgWCB2YWx1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjY1xyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICovXHJcbiAgICBjOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1hdHJpeFsyXTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubWF0cml4WzJdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgU2NhbGUgWSB2YWx1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjZFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICovXHJcbiAgICBkOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1hdHJpeFszXTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubWF0cml4WzNdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgVHJhbnNsYXRlIFggdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4I2VcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4xMS4wXHJcbiAgICAgKi9cclxuICAgIGU6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWF0cml4WzRdO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5tYXRyaXhbNF0gPSB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBUcmFuc2xhdGUgWSB2YWx1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjZlxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqL1xyXG4gICAgZjoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYXRyaXhbNV07XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1hdHJpeFs1XSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFRyYW5zbGF0ZSBYIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeCN0eFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICovXHJcbiAgICB0eDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYXRyaXhbNF07XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1hdHJpeFs0XSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFRyYW5zbGF0ZSBZIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeCN0eVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICovXHJcbiAgICB0eToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYXRyaXhbNV07XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1hdHJpeFs1XSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHJvdGF0aW9uIG9mIHRoZSBNYXRyaXguIFZhbHVlIGlzIGluIHJhZGlhbnMuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4I3JvdGF0aW9uXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHJlYWRvbmx5XHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqL1xyXG4gICAgcm90YXRpb246IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIE1hdGguYWNvcyh0aGlzLmEgLyB0aGlzLnNjYWxlWCkgKiAoKE1hdGguYXRhbigtdGhpcy5jIC8gdGhpcy5hKSA8IDApID8gLTEgOiAxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSByb3RhdGlvbiBvZiB0aGUgTWF0cml4LCBub3JtYWxpemVkIHRvIGJlIHdpdGhpbiB0aGUgUGhhc2VyIHJpZ2h0LWhhbmRlZFxyXG4gICAgICogY2xvY2t3aXNlIHJvdGF0aW9uIHNwYWNlLiBWYWx1ZSBpcyBpbiByYWRpYW5zLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeCNyb3RhdGlvbk5vcm1hbGl6ZWRcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEBzaW5jZSAzLjE5LjBcclxuICAgICAqL1xyXG4gICAgcm90YXRpb25Ob3JtYWxpemVkOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBtYXRyaXggPSB0aGlzLm1hdHJpeDtcclxuXHJcbiAgICAgICAgICAgIHZhciBhID0gbWF0cml4WzBdO1xyXG4gICAgICAgICAgICB2YXIgYiA9IG1hdHJpeFsxXTtcclxuICAgICAgICAgICAgdmFyIGMgPSBtYXRyaXhbMl07XHJcbiAgICAgICAgICAgIHZhciBkID0gbWF0cml4WzNdO1xyXG5cclxuICAgICAgICAgICAgaWYgKGEgfHwgYilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy8gdmFyIHIgPSBNYXRoLnNxcnQoYSAqIGEgKyBiICogYik7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIHJldHVybiAoYiA+IDApID8gTWF0aC5hY29zKGEgLyB0aGlzLnNjYWxlWCkgOiAtTWF0aC5hY29zKGEgLyB0aGlzLnNjYWxlWCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoYyB8fCBkKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAvLyB2YXIgcyA9IE1hdGguc3FydChjICogYyArIGQgKiBkKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE1BVEhfQ09OU1QuVEFVIC0gKChkID4gMCkgPyBNYXRoLmFjb3MoLWMgLyB0aGlzLnNjYWxlWSkgOiAtTWF0aC5hY29zKGMgLyB0aGlzLnNjYWxlWSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBkZWNvbXBvc2VkIGhvcml6b250YWwgc2NhbGUgb2YgdGhlIE1hdHJpeC4gVGhpcyB2YWx1ZSBpcyBhbHdheXMgcG9zaXRpdmUuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4I3NjYWxlWFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEByZWFkb25seVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKi9cclxuICAgIHNjYWxlWDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KCh0aGlzLmEgKiB0aGlzLmEpICsgKHRoaXMuYiAqIHRoaXMuYikpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGRlY29tcG9zZWQgdmVydGljYWwgc2NhbGUgb2YgdGhlIE1hdHJpeC4gVGhpcyB2YWx1ZSBpcyBhbHdheXMgcG9zaXRpdmUuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4I3NjYWxlWVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEByZWFkb25seVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKi9cclxuICAgIHNjYWxlWToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5zcXJ0KCh0aGlzLmMgKiB0aGlzLmMpICsgKHRoaXMuZCAqIHRoaXMuZCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzZXQgdGhlIE1hdHJpeCB0byBhbiBpZGVudGl0eSBtYXRyaXguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjbG9hZElkZW50aXR5XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFRyYW5zZm9ybU1hdHJpeC5cclxuICAgICAqL1xyXG4gICAgbG9hZElkZW50aXR5OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBtYXRyaXggPSB0aGlzLm1hdHJpeDtcclxuXHJcbiAgICAgICAgbWF0cml4WzBdID0gMTtcclxuICAgICAgICBtYXRyaXhbMV0gPSAwO1xyXG4gICAgICAgIG1hdHJpeFsyXSA9IDA7XHJcbiAgICAgICAgbWF0cml4WzNdID0gMTtcclxuICAgICAgICBtYXRyaXhbNF0gPSAwO1xyXG4gICAgICAgIG1hdHJpeFs1XSA9IDA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRyYW5zbGF0ZSB0aGUgTWF0cml4LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4I3RyYW5zbGF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCB0cmFuc2xhdGlvbiB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHZlcnRpY2FsIHRyYW5zbGF0aW9uIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgVHJhbnNmb3JtTWF0cml4LlxyXG4gICAgICovXHJcbiAgICB0cmFuc2xhdGU6IGZ1bmN0aW9uICh4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIHZhciBtYXRyaXggPSB0aGlzLm1hdHJpeDtcclxuXHJcbiAgICAgICAgbWF0cml4WzRdID0gbWF0cml4WzBdICogeCArIG1hdHJpeFsyXSAqIHkgKyBtYXRyaXhbNF07XHJcbiAgICAgICAgbWF0cml4WzVdID0gbWF0cml4WzFdICogeCArIG1hdHJpeFszXSAqIHkgKyBtYXRyaXhbNV07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNjYWxlIHRoZSBNYXRyaXguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjc2NhbGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGhvcml6b250YWwgc2NhbGUgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB2ZXJ0aWNhbCBzY2FsZSB2YWx1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFRyYW5zZm9ybU1hdHJpeC5cclxuICAgICAqL1xyXG4gICAgc2NhbGU6IGZ1bmN0aW9uICh4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIHZhciBtYXRyaXggPSB0aGlzLm1hdHJpeDtcclxuXHJcbiAgICAgICAgbWF0cml4WzBdICo9IHg7XHJcbiAgICAgICAgbWF0cml4WzFdICo9IHg7XHJcbiAgICAgICAgbWF0cml4WzJdICo9IHk7XHJcbiAgICAgICAgbWF0cml4WzNdICo9IHk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJvdGF0ZSB0aGUgTWF0cml4LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4I3JvdGF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGFuZ2xlIC0gVGhlIGFuZ2xlIG9mIHJvdGF0aW9uIGluIHJhZGlhbnMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBUcmFuc2Zvcm1NYXRyaXguXHJcbiAgICAgKi9cclxuICAgIHJvdGF0ZTogZnVuY3Rpb24gKGFuZ2xlKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBzaW4gPSBNYXRoLnNpbihhbmdsZSk7XHJcbiAgICAgICAgdmFyIGNvcyA9IE1hdGguY29zKGFuZ2xlKTtcclxuXHJcbiAgICAgICAgdmFyIG1hdHJpeCA9IHRoaXMubWF0cml4O1xyXG5cclxuICAgICAgICB2YXIgYSA9IG1hdHJpeFswXTtcclxuICAgICAgICB2YXIgYiA9IG1hdHJpeFsxXTtcclxuICAgICAgICB2YXIgYyA9IG1hdHJpeFsyXTtcclxuICAgICAgICB2YXIgZCA9IG1hdHJpeFszXTtcclxuXHJcbiAgICAgICAgbWF0cml4WzBdID0gYSAqIGNvcyArIGMgKiBzaW47XHJcbiAgICAgICAgbWF0cml4WzFdID0gYiAqIGNvcyArIGQgKiBzaW47XHJcbiAgICAgICAgbWF0cml4WzJdID0gYSAqIC1zaW4gKyBjICogY29zO1xyXG4gICAgICAgIG1hdHJpeFszXSA9IGIgKiAtc2luICsgZCAqIGNvcztcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTXVsdGlwbHkgdGhpcyBNYXRyaXggYnkgdGhlIGdpdmVuIE1hdHJpeC5cclxuICAgICAqIFxyXG4gICAgICogSWYgYW4gYG91dGAgTWF0cml4IGlzIGdpdmVuIHRoZW4gdGhlIHJlc3VsdHMgd2lsbCBiZSBzdG9yZWQgaW4gaXQuXHJcbiAgICAgKiBJZiBpdCBpcyBub3QgZ2l2ZW4sIHRoaXMgbWF0cml4IHdpbGwgYmUgdXBkYXRlZCBpbiBwbGFjZSBpbnN0ZWFkLlxyXG4gICAgICogVXNlIGFuIGBvdXRgIE1hdHJpeCBpZiB5b3UgZG8gbm90IHdpc2ggdG8gbXV0YXRlIHRoaXMgbWF0cml4LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4I211bHRpcGx5XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcmhzIC0gVGhlIE1hdHJpeCB0byBtdWx0aXBseSBieS5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBbb3V0XSAtIEFuIG9wdGlvbmFsIE1hdHJpeCB0byBzdG9yZSB0aGUgcmVzdWx0cyBpbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHsodGhpc3xQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgpfSBFaXRoZXIgdGhpcyBUcmFuc2Zvcm1NYXRyaXgsIG9yIHRoZSBgb3V0YCBNYXRyaXgsIGlmIGdpdmVuIGluIHRoZSBhcmd1bWVudHMuXHJcbiAgICAgKi9cclxuICAgIG11bHRpcGx5OiBmdW5jdGlvbiAocmhzLCBvdXQpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIG1hdHJpeCA9IHRoaXMubWF0cml4O1xyXG4gICAgICAgIHZhciBzb3VyY2UgPSByaHMubWF0cml4O1xyXG5cclxuICAgICAgICB2YXIgbG9jYWxBID0gbWF0cml4WzBdO1xyXG4gICAgICAgIHZhciBsb2NhbEIgPSBtYXRyaXhbMV07XHJcbiAgICAgICAgdmFyIGxvY2FsQyA9IG1hdHJpeFsyXTtcclxuICAgICAgICB2YXIgbG9jYWxEID0gbWF0cml4WzNdO1xyXG4gICAgICAgIHZhciBsb2NhbEUgPSBtYXRyaXhbNF07XHJcbiAgICAgICAgdmFyIGxvY2FsRiA9IG1hdHJpeFs1XTtcclxuXHJcbiAgICAgICAgdmFyIHNvdXJjZUEgPSBzb3VyY2VbMF07XHJcbiAgICAgICAgdmFyIHNvdXJjZUIgPSBzb3VyY2VbMV07XHJcbiAgICAgICAgdmFyIHNvdXJjZUMgPSBzb3VyY2VbMl07XHJcbiAgICAgICAgdmFyIHNvdXJjZUQgPSBzb3VyY2VbM107XHJcbiAgICAgICAgdmFyIHNvdXJjZUUgPSBzb3VyY2VbNF07XHJcbiAgICAgICAgdmFyIHNvdXJjZUYgPSBzb3VyY2VbNV07XHJcblxyXG4gICAgICAgIHZhciBkZXN0aW5hdGlvbk1hdHJpeCA9IChvdXQgPT09IHVuZGVmaW5lZCkgPyB0aGlzIDogb3V0O1xyXG5cclxuICAgICAgICBkZXN0aW5hdGlvbk1hdHJpeC5hID0gKHNvdXJjZUEgKiBsb2NhbEEpICsgKHNvdXJjZUIgKiBsb2NhbEMpO1xyXG4gICAgICAgIGRlc3RpbmF0aW9uTWF0cml4LmIgPSAoc291cmNlQSAqIGxvY2FsQikgKyAoc291cmNlQiAqIGxvY2FsRCk7XHJcbiAgICAgICAgZGVzdGluYXRpb25NYXRyaXguYyA9IChzb3VyY2VDICogbG9jYWxBKSArIChzb3VyY2VEICogbG9jYWxDKTtcclxuICAgICAgICBkZXN0aW5hdGlvbk1hdHJpeC5kID0gKHNvdXJjZUMgKiBsb2NhbEIpICsgKHNvdXJjZUQgKiBsb2NhbEQpO1xyXG4gICAgICAgIGRlc3RpbmF0aW9uTWF0cml4LmUgPSAoc291cmNlRSAqIGxvY2FsQSkgKyAoc291cmNlRiAqIGxvY2FsQykgKyBsb2NhbEU7XHJcbiAgICAgICAgZGVzdGluYXRpb25NYXRyaXguZiA9IChzb3VyY2VFICogbG9jYWxCKSArIChzb3VyY2VGICogbG9jYWxEKSArIGxvY2FsRjtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRlc3RpbmF0aW9uTWF0cml4O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIE11bHRpcGx5IHRoaXMgTWF0cml4IGJ5IHRoZSBtYXRyaXggZ2l2ZW4sIGluY2x1ZGluZyB0aGUgb2Zmc2V0LlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgb2Zmc2V0WCBpcyBhZGRlZCB0byB0aGUgdHggdmFsdWU6IGBvZmZzZXRYICogYSArIG9mZnNldFkgKiBjICsgdHhgLlxyXG4gICAgICogVGhlIG9mZnNldFkgaXMgYWRkZWQgdG8gdGhlIHR5IHZhbHVlOiBgb2Zmc2V0WSAqIGIgKyBvZmZzZXRZICogZCArIHR5YC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeCNtdWx0aXBseVdpdGhPZmZzZXRcclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gc3JjIC0gVGhlIHNvdXJjZSBNYXRyaXggdG8gY29weSBmcm9tLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG9mZnNldFggLSBIb3Jpem9udGFsIG9mZnNldCB0byBmYWN0b3IgaW4gdG8gdGhlIG11bHRpcGxpY2F0aW9uLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG9mZnNldFkgLSBWZXJ0aWNhbCBvZmZzZXQgdG8gZmFjdG9yIGluIHRvIHRoZSBtdWx0aXBsaWNhdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFRyYW5zZm9ybU1hdHJpeC5cclxuICAgICAqL1xyXG4gICAgbXVsdGlwbHlXaXRoT2Zmc2V0OiBmdW5jdGlvbiAoc3JjLCBvZmZzZXRYLCBvZmZzZXRZKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBtYXRyaXggPSB0aGlzLm1hdHJpeDtcclxuICAgICAgICB2YXIgb3RoZXJNYXRyaXggPSBzcmMubWF0cml4O1xyXG5cclxuICAgICAgICB2YXIgYTAgPSBtYXRyaXhbMF07XHJcbiAgICAgICAgdmFyIGIwID0gbWF0cml4WzFdO1xyXG4gICAgICAgIHZhciBjMCA9IG1hdHJpeFsyXTtcclxuICAgICAgICB2YXIgZDAgPSBtYXRyaXhbM107XHJcbiAgICAgICAgdmFyIHR4MCA9IG1hdHJpeFs0XTtcclxuICAgICAgICB2YXIgdHkwID0gbWF0cml4WzVdO1xyXG5cclxuICAgICAgICB2YXIgcHNlID0gb2Zmc2V0WCAqIGEwICsgb2Zmc2V0WSAqIGMwICsgdHgwO1xyXG4gICAgICAgIHZhciBwc2YgPSBvZmZzZXRYICogYjAgKyBvZmZzZXRZICogZDAgKyB0eTA7XHJcblxyXG4gICAgICAgIHZhciBhMSA9IG90aGVyTWF0cml4WzBdO1xyXG4gICAgICAgIHZhciBiMSA9IG90aGVyTWF0cml4WzFdO1xyXG4gICAgICAgIHZhciBjMSA9IG90aGVyTWF0cml4WzJdO1xyXG4gICAgICAgIHZhciBkMSA9IG90aGVyTWF0cml4WzNdO1xyXG4gICAgICAgIHZhciB0eDEgPSBvdGhlck1hdHJpeFs0XTtcclxuICAgICAgICB2YXIgdHkxID0gb3RoZXJNYXRyaXhbNV07XHJcblxyXG4gICAgICAgIG1hdHJpeFswXSA9IGExICogYTAgKyBiMSAqIGMwO1xyXG4gICAgICAgIG1hdHJpeFsxXSA9IGExICogYjAgKyBiMSAqIGQwO1xyXG4gICAgICAgIG1hdHJpeFsyXSA9IGMxICogYTAgKyBkMSAqIGMwO1xyXG4gICAgICAgIG1hdHJpeFszXSA9IGMxICogYjAgKyBkMSAqIGQwO1xyXG4gICAgICAgIG1hdHJpeFs0XSA9IHR4MSAqIGEwICsgdHkxICogYzAgKyBwc2U7XHJcbiAgICAgICAgbWF0cml4WzVdID0gdHgxICogYjAgKyB0eTEgKiBkMCArIHBzZjtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhbnNmb3JtIHRoZSBNYXRyaXguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjdHJhbnNmb3JtXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYSAtIFRoZSBTY2FsZSBYIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGIgLSBUaGUgU2hlYXIgWSB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjIC0gVGhlIFNoZWFyIFggdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZCAtIFRoZSBTY2FsZSBZIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHR4IC0gVGhlIFRyYW5zbGF0ZSBYIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHR5IC0gVGhlIFRyYW5zbGF0ZSBZIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgVHJhbnNmb3JtTWF0cml4LlxyXG4gICAgICovXHJcbiAgICB0cmFuc2Zvcm06IGZ1bmN0aW9uIChhLCBiLCBjLCBkLCB0eCwgdHkpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIG1hdHJpeCA9IHRoaXMubWF0cml4O1xyXG5cclxuICAgICAgICB2YXIgYTAgPSBtYXRyaXhbMF07XHJcbiAgICAgICAgdmFyIGIwID0gbWF0cml4WzFdO1xyXG4gICAgICAgIHZhciBjMCA9IG1hdHJpeFsyXTtcclxuICAgICAgICB2YXIgZDAgPSBtYXRyaXhbM107XHJcbiAgICAgICAgdmFyIHR4MCA9IG1hdHJpeFs0XTtcclxuICAgICAgICB2YXIgdHkwID0gbWF0cml4WzVdO1xyXG5cclxuICAgICAgICBtYXRyaXhbMF0gPSBhICogYTAgKyBiICogYzA7XHJcbiAgICAgICAgbWF0cml4WzFdID0gYSAqIGIwICsgYiAqIGQwO1xyXG4gICAgICAgIG1hdHJpeFsyXSA9IGMgKiBhMCArIGQgKiBjMDtcclxuICAgICAgICBtYXRyaXhbM10gPSBjICogYjAgKyBkICogZDA7XHJcbiAgICAgICAgbWF0cml4WzRdID0gdHggKiBhMCArIHR5ICogYzAgKyB0eDA7XHJcbiAgICAgICAgbWF0cml4WzVdID0gdHggKiBiMCArIHR5ICogZDAgKyB0eTA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRyYW5zZm9ybSBhIHBvaW50IHVzaW5nIHRoaXMgTWF0cml4LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4I3RyYW5zZm9ybVBvaW50XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSB4IGNvb3JkaW5hdGUgb2YgdGhlIHBvaW50IHRvIHRyYW5zZm9ybS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgcG9pbnQgdG8gdHJhbnNmb3JtLlxyXG4gICAgICogQHBhcmFtIHsoUGhhc2VyLkdlb20uUG9pbnR8UGhhc2VyLk1hdGguVmVjdG9yMnxvYmplY3QpfSBwb2ludCAtIFRoZSBQb2ludCBvYmplY3QgdG8gc3RvcmUgdGhlIHRyYW5zZm9ybWVkIGNvb3JkaW5hdGVzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4geyhQaGFzZXIuR2VvbS5Qb2ludHxQaGFzZXIuTWF0aC5WZWN0b3IyfG9iamVjdCl9IFRoZSBQb2ludCBjb250YWluaW5nIHRoZSB0cmFuc2Zvcm1lZCBjb29yZGluYXRlcy5cclxuICAgICAqL1xyXG4gICAgdHJhbnNmb3JtUG9pbnQ6IGZ1bmN0aW9uICh4LCB5LCBwb2ludClcclxuICAgIHtcclxuICAgICAgICBpZiAocG9pbnQgPT09IHVuZGVmaW5lZCkgeyBwb2ludCA9IHsgeDogMCwgeTogMCB9OyB9XHJcblxyXG4gICAgICAgIHZhciBtYXRyaXggPSB0aGlzLm1hdHJpeDtcclxuXHJcbiAgICAgICAgdmFyIGEgPSBtYXRyaXhbMF07XHJcbiAgICAgICAgdmFyIGIgPSBtYXRyaXhbMV07XHJcbiAgICAgICAgdmFyIGMgPSBtYXRyaXhbMl07XHJcbiAgICAgICAgdmFyIGQgPSBtYXRyaXhbM107XHJcbiAgICAgICAgdmFyIHR4ID0gbWF0cml4WzRdO1xyXG4gICAgICAgIHZhciB0eSA9IG1hdHJpeFs1XTtcclxuXHJcbiAgICAgICAgcG9pbnQueCA9IHggKiBhICsgeSAqIGMgKyB0eDtcclxuICAgICAgICBwb2ludC55ID0geCAqIGIgKyB5ICogZCArIHR5O1xyXG5cclxuICAgICAgICByZXR1cm4gcG9pbnQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW52ZXJ0IHRoZSBNYXRyaXguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjaW52ZXJ0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFRyYW5zZm9ybU1hdHJpeC5cclxuICAgICAqL1xyXG4gICAgaW52ZXJ0OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBtYXRyaXggPSB0aGlzLm1hdHJpeDtcclxuXHJcbiAgICAgICAgdmFyIGEgPSBtYXRyaXhbMF07XHJcbiAgICAgICAgdmFyIGIgPSBtYXRyaXhbMV07XHJcbiAgICAgICAgdmFyIGMgPSBtYXRyaXhbMl07XHJcbiAgICAgICAgdmFyIGQgPSBtYXRyaXhbM107XHJcbiAgICAgICAgdmFyIHR4ID0gbWF0cml4WzRdO1xyXG4gICAgICAgIHZhciB0eSA9IG1hdHJpeFs1XTtcclxuXHJcbiAgICAgICAgdmFyIG4gPSBhICogZCAtIGIgKiBjO1xyXG5cclxuICAgICAgICBtYXRyaXhbMF0gPSBkIC8gbjtcclxuICAgICAgICBtYXRyaXhbMV0gPSAtYiAvIG47XHJcbiAgICAgICAgbWF0cml4WzJdID0gLWMgLyBuO1xyXG4gICAgICAgIG1hdHJpeFszXSA9IGEgLyBuO1xyXG4gICAgICAgIG1hdHJpeFs0XSA9IChjICogdHkgLSBkICogdHgpIC8gbjtcclxuICAgICAgICBtYXRyaXhbNV0gPSAtKGEgKiB0eSAtIGIgKiB0eCkgLyBuO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIHZhbHVlcyBvZiB0aGlzIE1hdHJpeCB0byBjb3B5IHRob3NlIG9mIHRoZSBtYXRyaXggZ2l2ZW4uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjY29weUZyb21cclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gc3JjIC0gVGhlIHNvdXJjZSBNYXRyaXggdG8gY29weSBmcm9tLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgVHJhbnNmb3JtTWF0cml4LlxyXG4gICAgICovXHJcbiAgICBjb3B5RnJvbTogZnVuY3Rpb24gKHNyYylcclxuICAgIHtcclxuICAgICAgICB2YXIgbWF0cml4ID0gdGhpcy5tYXRyaXg7XHJcblxyXG4gICAgICAgIG1hdHJpeFswXSA9IHNyYy5hO1xyXG4gICAgICAgIG1hdHJpeFsxXSA9IHNyYy5iO1xyXG4gICAgICAgIG1hdHJpeFsyXSA9IHNyYy5jO1xyXG4gICAgICAgIG1hdHJpeFszXSA9IHNyYy5kO1xyXG4gICAgICAgIG1hdHJpeFs0XSA9IHNyYy5lO1xyXG4gICAgICAgIG1hdHJpeFs1XSA9IHNyYy5mO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIHZhbHVlcyBvZiB0aGlzIE1hdHJpeCB0byBjb3B5IHRob3NlIG9mIHRoZSBhcnJheSBnaXZlbi5cclxuICAgICAqIFdoZXJlIGFycmF5IGluZGV4ZXMgMCwgMSwgMiwgMywgNCBhbmQgNSBhcmUgbWFwcGVkIHRvIGEsIGIsIGMsIGQsIGUgYW5kIGYuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjY29weUZyb21BcnJheVxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7YXJyYXl9IHNyYyAtIFRoZSBhcnJheSBvZiB2YWx1ZXMgdG8gc2V0IGludG8gdGhpcyBtYXRyaXguXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBUcmFuc2Zvcm1NYXRyaXguXHJcbiAgICAgKi9cclxuICAgIGNvcHlGcm9tQXJyYXk6IGZ1bmN0aW9uIChzcmMpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIG1hdHJpeCA9IHRoaXMubWF0cml4O1xyXG5cclxuICAgICAgICBtYXRyaXhbMF0gPSBzcmNbMF07XHJcbiAgICAgICAgbWF0cml4WzFdID0gc3JjWzFdO1xyXG4gICAgICAgIG1hdHJpeFsyXSA9IHNyY1syXTtcclxuICAgICAgICBtYXRyaXhbM10gPSBzcmNbM107XHJcbiAgICAgICAgbWF0cml4WzRdID0gc3JjWzRdO1xyXG4gICAgICAgIG1hdHJpeFs1XSA9IHNyY1s1XTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29weSB0aGUgdmFsdWVzIGZyb20gdGhpcyBNYXRyaXggdG8gdGhlIGdpdmVuIENhbnZhcyBSZW5kZXJpbmcgQ29udGV4dC5cclxuICAgICAqIFRoaXMgd2lsbCB1c2UgdGhlIENvbnRleHQudHJhbnNmb3JtIG1ldGhvZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeCNjb3B5VG9Db250ZXh0XHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGN0eCAtIFRoZSBDYW52YXMgUmVuZGVyaW5nIENvbnRleHQgdG8gY29weSB0aGUgbWF0cml4IHZhbHVlcyB0by5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IFRoZSBDYW52YXMgUmVuZGVyaW5nIENvbnRleHQuXHJcbiAgICAgKi9cclxuICAgIGNvcHlUb0NvbnRleHQ6IGZ1bmN0aW9uIChjdHgpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIG1hdHJpeCA9IHRoaXMubWF0cml4O1xyXG5cclxuICAgICAgICBjdHgudHJhbnNmb3JtKG1hdHJpeFswXSwgbWF0cml4WzFdLCBtYXRyaXhbMl0sIG1hdHJpeFszXSwgbWF0cml4WzRdLCBtYXRyaXhbNV0pO1xyXG5cclxuICAgICAgICByZXR1cm4gY3R4O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvcHkgdGhlIHZhbHVlcyBmcm9tIHRoaXMgTWF0cml4IHRvIHRoZSBnaXZlbiBDYW52YXMgUmVuZGVyaW5nIENvbnRleHQuXHJcbiAgICAgKiBUaGlzIHdpbGwgdXNlIHRoZSBDb250ZXh0LnNldFRyYW5zZm9ybSBtZXRob2QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjc2V0VG9Db250ZXh0XHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGN0eCAtIFRoZSBDYW52YXMgUmVuZGVyaW5nIENvbnRleHQgdG8gY29weSB0aGUgbWF0cml4IHZhbHVlcyB0by5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IFRoZSBDYW52YXMgUmVuZGVyaW5nIENvbnRleHQuXHJcbiAgICAgKi9cclxuICAgIHNldFRvQ29udGV4dDogZnVuY3Rpb24gKGN0eClcclxuICAgIHtcclxuICAgICAgICB2YXIgbWF0cml4ID0gdGhpcy5tYXRyaXg7XHJcblxyXG4gICAgICAgIGN0eC5zZXRUcmFuc2Zvcm0obWF0cml4WzBdLCBtYXRyaXhbMV0sIG1hdHJpeFsyXSwgbWF0cml4WzNdLCBtYXRyaXhbNF0sIG1hdHJpeFs1XSk7XHJcblxyXG4gICAgICAgIHJldHVybiBjdHg7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29weSB0aGUgdmFsdWVzIGluIHRoaXMgTWF0cml4IHRvIHRoZSBhcnJheSBnaXZlbi5cclxuICAgICAqIFxyXG4gICAgICogV2hlcmUgYXJyYXkgaW5kZXhlcyAwLCAxLCAyLCAzLCA0IGFuZCA1IGFyZSBtYXBwZWQgdG8gYSwgYiwgYywgZCwgZSBhbmQgZi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeCNjb3B5VG9BcnJheVxyXG4gICAgICogQHNpbmNlIDMuMTIuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7YXJyYXl9IFtvdXRdIC0gVGhlIGFycmF5IHRvIGNvcHkgdGhlIG1hdHJpeCB2YWx1ZXMgaW4gdG8uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7YXJyYXl9IEFuIGFycmF5IHdoZXJlIGVsZW1lbnRzIDAgdG8gNSBjb250YWluIHRoZSB2YWx1ZXMgZnJvbSB0aGlzIG1hdHJpeC5cclxuICAgICAqL1xyXG4gICAgY29weVRvQXJyYXk6IGZ1bmN0aW9uIChvdXQpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIG1hdHJpeCA9IHRoaXMubWF0cml4O1xyXG5cclxuICAgICAgICBpZiAob3V0ID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBvdXQgPSBbIG1hdHJpeFswXSwgbWF0cml4WzFdLCBtYXRyaXhbMl0sIG1hdHJpeFszXSwgbWF0cml4WzRdLCBtYXRyaXhbNV0gXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgb3V0WzBdID0gbWF0cml4WzBdO1xyXG4gICAgICAgICAgICBvdXRbMV0gPSBtYXRyaXhbMV07XHJcbiAgICAgICAgICAgIG91dFsyXSA9IG1hdHJpeFsyXTtcclxuICAgICAgICAgICAgb3V0WzNdID0gbWF0cml4WzNdO1xyXG4gICAgICAgICAgICBvdXRbNF0gPSBtYXRyaXhbNF07XHJcbiAgICAgICAgICAgIG91dFs1XSA9IG1hdHJpeFs1XTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvdXQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSB2YWx1ZXMgb2YgdGhpcyBNYXRyaXguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjc2V0VHJhbnNmb3JtXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYSAtIFRoZSBTY2FsZSBYIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGIgLSBUaGUgU2hlYXIgWSB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjIC0gVGhlIFNoZWFyIFggdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZCAtIFRoZSBTY2FsZSBZIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHR4IC0gVGhlIFRyYW5zbGF0ZSBYIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHR5IC0gVGhlIFRyYW5zbGF0ZSBZIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgVHJhbnNmb3JtTWF0cml4LlxyXG4gICAgICovXHJcbiAgICBzZXRUcmFuc2Zvcm06IGZ1bmN0aW9uIChhLCBiLCBjLCBkLCB0eCwgdHkpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIG1hdHJpeCA9IHRoaXMubWF0cml4O1xyXG5cclxuICAgICAgICBtYXRyaXhbMF0gPSBhO1xyXG4gICAgICAgIG1hdHJpeFsxXSA9IGI7XHJcbiAgICAgICAgbWF0cml4WzJdID0gYztcclxuICAgICAgICBtYXRyaXhbM10gPSBkO1xyXG4gICAgICAgIG1hdHJpeFs0XSA9IHR4O1xyXG4gICAgICAgIG1hdHJpeFs1XSA9IHR5O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWNvbXBvc2UgdGhpcyBNYXRyaXggaW50byBpdHMgdHJhbnNsYXRpb24sIHNjYWxlIGFuZCByb3RhdGlvbiB2YWx1ZXMgdXNpbmcgUVIgZGVjb21wb3NpdGlvbi5cclxuICAgICAqIFxyXG4gICAgICogVGhlIHJlc3VsdCBtdXN0IGJlIGFwcGxpZWQgaW4gdGhlIGZvbGxvd2luZyBvcmRlciB0byByZXByb2R1Y2UgdGhlIGN1cnJlbnQgbWF0cml4OlxyXG4gICAgICogXHJcbiAgICAgKiB0cmFuc2xhdGUgLT4gcm90YXRlIC0+IHNjYWxlXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjZGVjb21wb3NlTWF0cml4XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtvYmplY3R9IFRoZSBkZWNvbXBvc2VkIE1hdHJpeC5cclxuICAgICAqL1xyXG4gICAgZGVjb21wb3NlTWF0cml4OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBkZWNvbXBvc2VkTWF0cml4ID0gdGhpcy5kZWNvbXBvc2VkTWF0cml4O1xyXG5cclxuICAgICAgICB2YXIgbWF0cml4ID0gdGhpcy5tYXRyaXg7XHJcblxyXG4gICAgICAgIC8vICBhID0gc2NhbGUgWCAoMSlcclxuICAgICAgICAvLyAgYiA9IHNoZWFyIFkgKDApXHJcbiAgICAgICAgLy8gIGMgPSBzaGVhciBYICgwKVxyXG4gICAgICAgIC8vICBkID0gc2NhbGUgWSAoMSlcclxuXHJcbiAgICAgICAgdmFyIGEgPSBtYXRyaXhbMF07XHJcbiAgICAgICAgdmFyIGIgPSBtYXRyaXhbMV07XHJcbiAgICAgICAgdmFyIGMgPSBtYXRyaXhbMl07XHJcbiAgICAgICAgdmFyIGQgPSBtYXRyaXhbM107XHJcblxyXG4gICAgICAgIHZhciBkZXRlcm0gPSBhICogZCAtIGIgKiBjO1xyXG5cclxuICAgICAgICBkZWNvbXBvc2VkTWF0cml4LnRyYW5zbGF0ZVggPSBtYXRyaXhbNF07XHJcbiAgICAgICAgZGVjb21wb3NlZE1hdHJpeC50cmFuc2xhdGVZID0gbWF0cml4WzVdO1xyXG5cclxuICAgICAgICBpZiAoYSB8fCBiKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHIgPSBNYXRoLnNxcnQoYSAqIGEgKyBiICogYik7XHJcblxyXG4gICAgICAgICAgICBkZWNvbXBvc2VkTWF0cml4LnJvdGF0aW9uID0gKGIgPiAwKSA/IE1hdGguYWNvcyhhIC8gcikgOiAtTWF0aC5hY29zKGEgLyByKTtcclxuICAgICAgICAgICAgZGVjb21wb3NlZE1hdHJpeC5zY2FsZVggPSByO1xyXG4gICAgICAgICAgICBkZWNvbXBvc2VkTWF0cml4LnNjYWxlWSA9IGRldGVybSAvIHI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGMgfHwgZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBzID0gTWF0aC5zcXJ0KGMgKiBjICsgZCAqIGQpO1xyXG5cclxuICAgICAgICAgICAgZGVjb21wb3NlZE1hdHJpeC5yb3RhdGlvbiA9IE1hdGguUEkgKiAwLjUgLSAoZCA+IDAgPyBNYXRoLmFjb3MoLWMgLyBzKSA6IC1NYXRoLmFjb3MoYyAvIHMpKTtcclxuICAgICAgICAgICAgZGVjb21wb3NlZE1hdHJpeC5zY2FsZVggPSBkZXRlcm0gLyBzO1xyXG4gICAgICAgICAgICBkZWNvbXBvc2VkTWF0cml4LnNjYWxlWSA9IHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGRlY29tcG9zZWRNYXRyaXgucm90YXRpb24gPSAwO1xyXG4gICAgICAgICAgICBkZWNvbXBvc2VkTWF0cml4LnNjYWxlWCA9IDA7XHJcbiAgICAgICAgICAgIGRlY29tcG9zZWRNYXRyaXguc2NhbGVZID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBkZWNvbXBvc2VkTWF0cml4O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFwcGx5IHRoZSBpZGVudGl0eSwgdHJhbnNsYXRlLCByb3RhdGUgYW5kIHNjYWxlIG9wZXJhdGlvbnMgb24gdGhlIE1hdHJpeC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeCNhcHBseUlUUlNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGhvcml6b250YWwgdHJhbnNsYXRpb24uXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB2ZXJ0aWNhbCB0cmFuc2xhdGlvbi5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByb3RhdGlvbiAtIFRoZSBhbmdsZSBvZiByb3RhdGlvbiBpbiByYWRpYW5zLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHNjYWxlWCAtIFRoZSBob3Jpem9udGFsIHNjYWxlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHNjYWxlWSAtIFRoZSB2ZXJ0aWNhbCBzY2FsZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFRyYW5zZm9ybU1hdHJpeC5cclxuICAgICAqL1xyXG4gICAgYXBwbHlJVFJTOiBmdW5jdGlvbiAoeCwgeSwgcm90YXRpb24sIHNjYWxlWCwgc2NhbGVZKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBtYXRyaXggPSB0aGlzLm1hdHJpeDtcclxuXHJcbiAgICAgICAgdmFyIHJhZGlhblNpbiA9IE1hdGguc2luKHJvdGF0aW9uKTtcclxuICAgICAgICB2YXIgcmFkaWFuQ29zID0gTWF0aC5jb3Mocm90YXRpb24pO1xyXG5cclxuICAgICAgICAvLyBUcmFuc2xhdGVcclxuICAgICAgICBtYXRyaXhbNF0gPSB4O1xyXG4gICAgICAgIG1hdHJpeFs1XSA9IHk7XHJcblxyXG4gICAgICAgIC8vIFJvdGF0ZSBhbmQgU2NhbGVcclxuICAgICAgICBtYXRyaXhbMF0gPSByYWRpYW5Db3MgKiBzY2FsZVg7XHJcbiAgICAgICAgbWF0cml4WzFdID0gcmFkaWFuU2luICogc2NhbGVYO1xyXG4gICAgICAgIG1hdHJpeFsyXSA9IC1yYWRpYW5TaW4gKiBzY2FsZVk7XHJcbiAgICAgICAgbWF0cml4WzNdID0gcmFkaWFuQ29zICogc2NhbGVZO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUYWtlcyB0aGUgYHhgIGFuZCBgeWAgdmFsdWVzIGFuZCByZXR1cm5zIGEgbmV3IHBvc2l0aW9uIGluIHRoZSBgb3V0cHV0YCB2ZWN0b3IgdGhhdCBpcyB0aGUgaW52ZXJzZSBvZlxyXG4gICAgICogdGhlIGN1cnJlbnQgbWF0cml4IHdpdGggaXRzIHRyYW5zZm9ybWF0aW9uIGFwcGxpZWQuXHJcbiAgICAgKiBcclxuICAgICAqIENhbiBiZSB1c2VkIHRvIHRyYW5zbGF0ZSBwb2ludHMgZnJvbSB3b3JsZCB0byBsb2NhbCBzcGFjZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeCNhcHBseUludmVyc2VcclxuICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSB4IHBvc2l0aW9uIHRvIHRyYW5zbGF0ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgcG9zaXRpb24gdG8gdHJhbnNsYXRlLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuTWF0aC5WZWN0b3IyfSBbb3V0cHV0XSAtIEEgVmVjdG9yMiwgb3IgcG9pbnQtbGlrZSBvYmplY3QsIHRvIHN0b3JlIHRoZSByZXN1bHRzIGluLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5NYXRoLlZlY3RvcjJ9IFRoZSBjb29yZGluYXRlcywgaW52ZXJzZS10cmFuc2Zvcm1lZCB0aHJvdWdoIHRoaXMgbWF0cml4LlxyXG4gICAgICovXHJcbiAgICBhcHBseUludmVyc2U6IGZ1bmN0aW9uICh4LCB5LCBvdXRwdXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG91dHB1dCA9PT0gdW5kZWZpbmVkKSB7IG91dHB1dCA9IG5ldyBWZWN0b3IyKCk7IH1cclxuXHJcbiAgICAgICAgdmFyIG1hdHJpeCA9IHRoaXMubWF0cml4O1xyXG5cclxuICAgICAgICB2YXIgYSA9IG1hdHJpeFswXTtcclxuICAgICAgICB2YXIgYiA9IG1hdHJpeFsxXTtcclxuICAgICAgICB2YXIgYyA9IG1hdHJpeFsyXTtcclxuICAgICAgICB2YXIgZCA9IG1hdHJpeFszXTtcclxuICAgICAgICB2YXIgdHggPSBtYXRyaXhbNF07XHJcbiAgICAgICAgdmFyIHR5ID0gbWF0cml4WzVdO1xyXG5cclxuICAgICAgICB2YXIgaWQgPSAxIC8gKChhICogZCkgKyAoYyAqIC1iKSk7XHJcblxyXG4gICAgICAgIG91dHB1dC54ID0gKGQgKiBpZCAqIHgpICsgKC1jICogaWQgKiB5KSArICgoKHR5ICogYykgLSAodHggKiBkKSkgKiBpZCk7XHJcbiAgICAgICAgb3V0cHV0LnkgPSAoYSAqIGlkICogeSkgKyAoLWIgKiBpZCAqIHgpICsgKCgoLXR5ICogYSkgKyAodHggKiBiKSkgKiBpZCk7XHJcblxyXG4gICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgWCBjb21wb25lbnQgb2YgdGhpcyBtYXRyaXggbXVsdGlwbGllZCBieSB0aGUgZ2l2ZW4gdmFsdWVzLlxyXG4gICAgICogVGhpcyBpcyB0aGUgc2FtZSBhcyBgeCAqIGEgKyB5ICogYyArIGVgLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4I2dldFhcclxuICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgY2FsY3VsYXRlZCB4IHZhbHVlLlxyXG4gICAgICovXHJcbiAgICBnZXRYOiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4geCAqIHRoaXMuYSArIHkgKiB0aGlzLmMgKyB0aGlzLmU7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgWSBjb21wb25lbnQgb2YgdGhpcyBtYXRyaXggbXVsdGlwbGllZCBieSB0aGUgZ2l2ZW4gdmFsdWVzLlxyXG4gICAgICogVGhpcyBpcyB0aGUgc2FtZSBhcyBgeCAqIGIgKyB5ICogZCArIGZgLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4I2dldFlcclxuICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgY2FsY3VsYXRlZCB5IHZhbHVlLlxyXG4gICAgICovXHJcbiAgICBnZXRZOiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4geCAqIHRoaXMuYiArIHkgKiB0aGlzLmQgKyB0aGlzLmY7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgQ1NTIFRyYW5zZm9ybSBjYWxsIGFzIGEgYG1hdHJpeGAgcHJvcGVydHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgjZ2V0Q1NTTWF0cml4XHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7c3RyaW5nfSBBIHN0cmluZyBjb250YWluaW5nIHRoZSBDU1MgVHJhbnNmb3JtIG1hdHJpeCB2YWx1ZXMuXHJcbiAgICAgKi9cclxuICAgIGdldENTU01hdHJpeDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgbSA9IHRoaXMubWF0cml4O1xyXG5cclxuICAgICAgICByZXR1cm4gJ21hdHJpeCgnICsgbVswXSArICcsJyArIG1bMV0gKyAnLCcgKyBtWzJdICsgJywnICsgbVszXSArICcsJyArIG1bNF0gKyAnLCcgKyBtWzVdICsgJyknO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc3Ryb3lzIHRoaXMgVHJhbnNmb3JtIE1hdHJpeC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeCNkZXN0cm95XHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqL1xyXG4gICAgZGVzdHJveTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLm1hdHJpeCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5kZWNvbXBvc2VkTWF0cml4ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBUcmFuc2Zvcm1NYXRyaXg7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLy8gIGJpdG1hc2sgZmxhZyBmb3IgR2FtZU9iamVjdC5yZW5kZXJNYXNrXHJcbnZhciBfRkxBRyA9IDE7IC8vIDAwMDFcclxuXHJcbi8qKlxyXG4gKiBQcm92aWRlcyBtZXRob2RzIHVzZWQgZm9yIHNldHRpbmcgdGhlIHZpc2liaWxpdHkgb2YgYSBHYW1lIE9iamVjdC5cclxuICogU2hvdWxkIGJlIGFwcGxpZWQgYXMgYSBtaXhpbiBhbmQgbm90IHVzZWQgZGlyZWN0bHkuXHJcbiAqIFxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlZpc2libGVcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG5cclxudmFyIFZpc2libGUgPSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcml2YXRlIGludGVybmFsIHZhbHVlLiBIb2xkcyB0aGUgdmlzaWJsZSB2YWx1ZS5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVmlzaWJsZSNfdmlzaWJsZVxyXG4gICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIF92aXNpYmxlOiB0cnVlLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHZpc2libGUgc3RhdGUgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBBbiBpbnZpc2libGUgR2FtZSBPYmplY3Qgd2lsbCBza2lwIHJlbmRlcmluZywgYnV0IHdpbGwgc3RpbGwgcHJvY2VzcyB1cGRhdGUgbG9naWMuXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlZpc2libGUjdmlzaWJsZVxyXG4gICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgdmlzaWJsZToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlckZsYWdzIHw9IF9GTEFHO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJGbGFncyAmPSB+X0ZMQUc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHZpc2liaWxpdHkgb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogQW4gaW52aXNpYmxlIEdhbWUgT2JqZWN0IHdpbGwgc2tpcCByZW5kZXJpbmcsIGJ1dCB3aWxsIHN0aWxsIHByb2Nlc3MgdXBkYXRlIGxvZ2ljLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVmlzaWJsZSNzZXRWaXNpYmxlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbHVlIC0gVGhlIHZpc2libGUgc3RhdGUgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRWaXNpYmxlOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBWaXNpYmxlO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzXHJcbiAqL1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgQWxwaGE6IHJlcXVpcmUoJy4vQWxwaGEnKSxcclxuICAgIEFscGhhU2luZ2xlOiByZXF1aXJlKCcuL0FscGhhU2luZ2xlJyksXHJcbiAgICBBbmltYXRpb246IHJlcXVpcmUoJy4vQW5pbWF0aW9uJyksXHJcbiAgICBCbGVuZE1vZGU6IHJlcXVpcmUoJy4vQmxlbmRNb2RlJyksXHJcbiAgICBDb21wdXRlZFNpemU6IHJlcXVpcmUoJy4vQ29tcHV0ZWRTaXplJyksXHJcbiAgICBDcm9wOiByZXF1aXJlKCcuL0Nyb3AnKSxcclxuICAgIERlcHRoOiByZXF1aXJlKCcuL0RlcHRoJyksXHJcbiAgICBGbGlwOiByZXF1aXJlKCcuL0ZsaXAnKSxcclxuICAgIEdldEJvdW5kczogcmVxdWlyZSgnLi9HZXRCb3VuZHMnKSxcclxuICAgIE1hc2s6IHJlcXVpcmUoJy4vTWFzaycpLFxyXG4gICAgT3JpZ2luOiByZXF1aXJlKCcuL09yaWdpbicpLFxyXG4gICAgUGF0aEZvbGxvd2VyOiByZXF1aXJlKCcuL1BhdGhGb2xsb3dlcicpLFxyXG4gICAgUGlwZWxpbmU6IHJlcXVpcmUoJy4vUGlwZWxpbmUnKSxcclxuICAgIFNjcm9sbEZhY3RvcjogcmVxdWlyZSgnLi9TY3JvbGxGYWN0b3InKSxcclxuICAgIFNpemU6IHJlcXVpcmUoJy4vU2l6ZScpLFxyXG4gICAgVGV4dHVyZTogcmVxdWlyZSgnLi9UZXh0dXJlJyksXHJcbiAgICBUZXh0dXJlQ3JvcDogcmVxdWlyZSgnLi9UZXh0dXJlQ3JvcCcpLFxyXG4gICAgVGludDogcmVxdWlyZSgnLi9UaW50JyksXHJcbiAgICBUb0pTT046IHJlcXVpcmUoJy4vVG9KU09OJyksXHJcbiAgICBUcmFuc2Zvcm06IHJlcXVpcmUoJy4vVHJhbnNmb3JtJyksXHJcbiAgICBUcmFuc2Zvcm1NYXRyaXg6IHJlcXVpcmUoJy4vVHJhbnNmb3JtTWF0cml4JyksXHJcbiAgICBWaXNpYmxlOiByZXF1aXJlKCcuL1Zpc2libGUnKVxyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBhdXRob3IgICAgICAgRmVsaXBlIEFsZm9uc28gPEBiaXRuZW5mZXI+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQXJyYXlVdGlscyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL2FycmF5Jyk7XHJcbnZhciBCbGVuZE1vZGVzID0gcmVxdWlyZSgnLi4vLi4vcmVuZGVyZXIvQmxlbmRNb2RlcycpO1xyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgQ29tcG9uZW50cyA9IHJlcXVpcmUoJy4uL2NvbXBvbmVudHMnKTtcclxudmFyIEV2ZW50cyA9IHJlcXVpcmUoJy4uL2V2ZW50cycpO1xyXG52YXIgR2FtZU9iamVjdCA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3QnKTtcclxudmFyIFJlY3RhbmdsZSA9IHJlcXVpcmUoJy4uLy4uL2dlb20vcmVjdGFuZ2xlL1JlY3RhbmdsZScpO1xyXG52YXIgUmVuZGVyID0gcmVxdWlyZSgnLi9Db250YWluZXJSZW5kZXInKTtcclxudmFyIFVuaW9uID0gcmVxdWlyZSgnLi4vLi4vZ2VvbS9yZWN0YW5nbGUvVW5pb24nKTtcclxudmFyIFZlY3RvcjIgPSByZXF1aXJlKCcuLi8uLi9tYXRoL1ZlY3RvcjInKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgQ29udGFpbmVyIEdhbWUgT2JqZWN0LlxyXG4gKlxyXG4gKiBBIENvbnRhaW5lciwgYXMgdGhlIG5hbWUgaW1wbGllcywgY2FuICdjb250YWluJyBvdGhlciB0eXBlcyBvZiBHYW1lIE9iamVjdC5cclxuICogV2hlbiBhIEdhbWUgT2JqZWN0IGlzIGFkZGVkIHRvIGEgQ29udGFpbmVyLCB0aGUgQ29udGFpbmVyIGJlY29tZXMgcmVzcG9uc2libGUgZm9yIHRoZSByZW5kZXJpbmcgb2YgaXQuXHJcbiAqIEJ5IGRlZmF1bHQgaXQgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIERpc3BsYXkgTGlzdCBhbmQgaW5zdGVhZCBhZGRlZCB0byB0aGUgQ29udGFpbmVycyBvd24gaW50ZXJuYWwgbGlzdC5cclxuICpcclxuICogVGhlIHBvc2l0aW9uIG9mIHRoZSBHYW1lIE9iamVjdCBhdXRvbWF0aWNhbGx5IGJlY29tZXMgcmVsYXRpdmUgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSBDb250YWluZXIuXHJcbiAqXHJcbiAqIFRoZSBvcmlnaW4gb2YgYSBDb250YWluZXIgaXMgMHgwIChpbiBsb2NhbCBzcGFjZSkgYW5kIHRoYXQgY2Fubm90IGJlIGNoYW5nZWQuIFRoZSBjaGlsZHJlbiB5b3UgYWRkIHRvIHRoZVxyXG4gKiBDb250YWluZXIgc2hvdWxkIGJlIHBvc2l0aW9uZWQgd2l0aCB0aGlzIHZhbHVlIGluIG1pbmQuIEkuZS4geW91IHNob3VsZCB0cmVhdCAweDAgYXMgYmVpbmcgdGhlIGNlbnRlciBvZlxyXG4gKiB0aGUgQ29udGFpbmVyLCBhbmQgcG9zaXRpb24gY2hpbGRyZW4gcG9zaXRpdmVseSBhbmQgbmVnYXRpdmUgYXJvdW5kIGl0IGFzIHJlcXVpcmVkLlxyXG4gKlxyXG4gKiBXaGVuIHRoZSBDb250YWluZXIgaXMgcmVuZGVyZWQsIGFsbCBvZiBpdHMgY2hpbGRyZW4gYXJlIHJlbmRlcmVkIGFzIHdlbGwsIGluIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGV4aXN0XHJcbiAqIHdpdGhpbiB0aGUgQ29udGFpbmVyLiBDb250YWluZXIgY2hpbGRyZW4gY2FuIGJlIHJlcG9zaXRpb25lZCB1c2luZyBtZXRob2RzIHN1Y2ggYXMgYE1vdmVVcGAsIGBNb3ZlRG93bmAgYW5kIGBTZW5kVG9CYWNrYC5cclxuICpcclxuICogSWYgeW91IG1vZGlmeSBhIHRyYW5zZm9ybSBwcm9wZXJ0eSBvZiB0aGUgQ29udGFpbmVyLCBzdWNoIGFzIGBDb250YWluZXIueGAgb3IgYENvbnRhaW5lci5yb3RhdGlvbmAgdGhlbiBpdCB3aWxsXHJcbiAqIGF1dG9tYXRpY2FsbHkgaW5mbHVlbmNlIGFsbCBjaGlsZHJlbiBhcyB3ZWxsLlxyXG4gKlxyXG4gKiBDb250YWluZXJzIGNhbiBpbmNsdWRlIG90aGVyIENvbnRhaW5lcnMgZm9yIGRlZXBseSBuZXN0ZWQgdHJhbnNmb3Jtcy5cclxuICpcclxuICogQ29udGFpbmVycyBjYW4gaGF2ZSBtYXNrcyBzZXQgb24gdGhlbSBhbmQgY2FuIGJlIHVzZWQgYXMgYSBtYXNrIHRvby4gSG93ZXZlciwgQ29udGFpbmVyIGNoaWxkcmVuIGNhbm5vdCBiZSBtYXNrZWQuXHJcbiAqIFRoZSBtYXNrcyBkbyBub3QgJ3N0YWNrIHVwJy4gT25seSBhIENvbnRhaW5lciBvbiB0aGUgcm9vdCBvZiB0aGUgZGlzcGxheSBsaXN0IHdpbGwgdXNlIGl0cyBtYXNrLlxyXG4gKlxyXG4gKiBDb250YWluZXJzIGNhbiBiZSBlbmFibGVkIGZvciBpbnB1dC4gQmVjYXVzZSB0aGV5IGRvIG5vdCBoYXZlIGEgdGV4dHVyZSB5b3UgbmVlZCB0byBwcm92aWRlIGEgc2hhcGUgZm9yIHRoZW1cclxuICogdG8gdXNlIGFzIHRoZWlyIGhpdCBhcmVhLiBDb250YWluZXIgY2hpbGRyZW4gY2FuIGFsc28gYmUgZW5hYmxlZCBmb3IgaW5wdXQsIGluZGVwZW5kZW50IG9mIHRoZSBDb250YWluZXIuXHJcbiAqXHJcbiAqIENvbnRhaW5lcnMgY2FuIGJlIGdpdmVuIGEgcGh5c2ljcyBib2R5IGZvciBlaXRoZXIgQXJjYWRlIFBoeXNpY3MsIEltcGFjdCBQaHlzaWNzIG9yIE1hdHRlciBQaHlzaWNzLiBIb3dldmVyLFxyXG4gKiBpZiBDb250YWluZXIgX2NoaWxkcmVuXyBhcmUgZW5hYmxlZCBmb3IgcGh5c2ljcyB5b3UgbWF5IGdldCB1bmV4cGVjdGVkIHJlc3VsdHMsIHN1Y2ggYXMgb2Zmc2V0IGJvZGllcyxcclxuICogaWYgdGhlIENvbnRhaW5lciBpdHNlbGYsIG9yIGFueSBvZiBpdHMgYW5jZXN0b3JzLCBpcyBwb3NpdGlvbmVkIGFueXdoZXJlIG90aGVyIHRoYW4gYXQgMCB4IDAuIENvbnRhaW5lciBjaGlsZHJlblxyXG4gKiB3aXRoIHBoeXNpY3MgZG8gbm90IGZhY3RvciBpbiB0aGUgQ29udGFpbmVyIGR1ZSB0byB0aGUgZXhjZXNzaXZlIGV4dHJhIGNhbGN1bGF0aW9ucyBuZWVkZWQuIFBsZWFzZSBzdHJ1Y3R1cmVcclxuICogeW91ciBnYW1lIHRvIHdvcmsgYXJvdW5kIHRoaXMuXHJcbiAqXHJcbiAqIEl0J3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlIGltcGFjdCBvZiB1c2luZyBDb250YWluZXJzLiBUaGV5IGFkZCBhZGRpdGlvbmFsIHByb2Nlc3Npbmcgb3ZlcmhlYWQgaW50b1xyXG4gKiBldmVyeSBvbmUgb2YgdGhlaXIgY2hpbGRyZW4uIFRoZSBkZWVwZXIgeW91IG5lc3QgdGhlbSwgdGhlIG1vcmUgdGhlIGNvc3QgZXNjYWxhdGVzLiBUaGlzIGlzIGVzcGVjaWFsbHkgdHJ1ZVxyXG4gKiBmb3IgaW5wdXQgZXZlbnRzLiBZb3UgYWxzbyBsb29zZSB0aGUgYWJpbGl0eSB0byBzZXQgdGhlIGRpc3BsYXkgZGVwdGggb2YgQ29udGFpbmVyIGNoaWxkcmVuIGluIHRoZSBzYW1lXHJcbiAqIGZsZXhpYmxlIG1hbm5lciBhcyB0aG9zZSBub3Qgd2l0aGluIHRoZW0uIEluIHNob3J0LCBkb24ndCB1c2UgdGhlbSBmb3IgdGhlIHNha2Ugb2YgaXQuIFlvdSBwYXkgYSBzbWFsbCBjb3N0XHJcbiAqIGV2ZXJ5IHRpbWUgeW91IGNyZWF0ZSBvbmUsIHRyeSB0byBzdHJ1Y3R1cmUgeW91ciBnYW1lIGFyb3VuZCBhdm9pZGluZyB0aGF0IHdoZXJlIHBvc3NpYmxlLlxyXG4gKlxyXG4gKiBAY2xhc3MgQ29udGFpbmVyXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0XHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjQuMFxyXG4gKlxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYVNpbmdsZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5CbGVuZE1vZGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQ29tcHV0ZWRTaXplXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkRlcHRoXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLk1hc2tcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlZpc2libGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gQSBHYW1lIE9iamVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIFNjZW5lIGF0IGEgdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBbY2hpbGRyZW5dIC0gQW4gb3B0aW9uYWwgYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRvIGFkZCB0byB0aGlzIENvbnRhaW5lci5cclxuICovXHJcbnZhciBDb250YWluZXIgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IEdhbWVPYmplY3QsXHJcblxyXG4gICAgTWl4aW5zOiBbXHJcbiAgICAgICAgQ29tcG9uZW50cy5BbHBoYVNpbmdsZSxcclxuICAgICAgICBDb21wb25lbnRzLkJsZW5kTW9kZSxcclxuICAgICAgICBDb21wb25lbnRzLkNvbXB1dGVkU2l6ZSxcclxuICAgICAgICBDb21wb25lbnRzLkRlcHRoLFxyXG4gICAgICAgIENvbXBvbmVudHMuTWFzayxcclxuICAgICAgICBDb21wb25lbnRzLlRyYW5zZm9ybSxcclxuICAgICAgICBDb21wb25lbnRzLlZpc2libGUsXHJcbiAgICAgICAgUmVuZGVyXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gQ29udGFpbmVyIChzY2VuZSwgeCwgeSwgY2hpbGRyZW4pXHJcbiAgICB7XHJcbiAgICAgICAgR2FtZU9iamVjdC5jYWxsKHRoaXMsIHNjZW5lLCAnQ29udGFpbmVyJyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGFycmF5IGhvbGRpbmcgdGhlIGNoaWxkcmVuIG9mIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNsaXN0XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119XHJcbiAgICAgICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5saXN0ID0gW107XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIERvZXMgdGhpcyBDb250YWluZXIgZXhjbHVzaXZlbHkgbWFuYWdlIGl0cyBjaGlsZHJlbj9cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoZSBkZWZhdWx0IGlzIGB0cnVlYCB3aGljaCBtZWFucyBhIGNoaWxkIGFkZGVkIHRvIHRoaXMgQ29udGFpbmVyIGNhbm5vdFxyXG4gICAgICAgICAqIGJlbG9uZyBpbiBhbm90aGVyIENvbnRhaW5lciwgd2hpY2ggaW5jbHVkZXMgdGhlIFNjZW5lIGRpc3BsYXkgbGlzdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIElmIHlvdSBkaXNhYmxlIHRoaXMgdGhlbiB0aGlzIENvbnRhaW5lciB3aWxsIG5vIGxvbmdlciBleGNsdXNpdmVseSBtYW5hZ2UgaXRzIGNoaWxkcmVuLlxyXG4gICAgICAgICAqIFRoaXMgYWxsb3dzIHlvdSB0byBjcmVhdGUgYWxsIGtpbmRzIG9mIGludGVyZXN0aW5nIGdyYXBoaWNhbCBlZmZlY3RzLCBzdWNoIGFzIHJlcGxpY2F0aW5nXHJcbiAgICAgICAgICogR2FtZSBPYmplY3RzIHdpdGhvdXQgcmVwYXJlbnRpbmcgdGhlbSBhbGwgb3ZlciB0aGUgU2NlbmUuXHJcbiAgICAgICAgICogSG93ZXZlciwgZG9pbmcgc28gd2lsbCBwcmV2ZW50IGNoaWxkcmVuIGZyb20gcmVjZWl2aW5nIGFueSBraW5kIG9mIGlucHV0IGV2ZW50IG9yIGhhdmVcclxuICAgICAgICAgKiB0aGVpciBwaHlzaWNzIGJvZGllcyB3b3JrIGJ5IGRlZmF1bHQsIGFzIHRoZXkncmUgbm8gbG9uZ2VyIGEgc2luZ2xlIGVudGl0eSBvbiB0aGVcclxuICAgICAgICAgKiBkaXNwbGF5IGxpc3QsIGJ1dCBhcmUgYmVpbmcgcmVwbGljYXRlZCB3aGVyZS1ldmVyIHRoaXMgQ29udGFpbmVyIGlzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNleGNsdXNpdmVcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICAgICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5leGNsdXNpdmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBDb250YWluZXJzIGNhbiBoYXZlIGFuIG9wdGlvbmFsIG1heGltdW0gc2l6ZS4gSWYgc2V0IHRvIGFueXRoaW5nIGFib3ZlIDAgaXRcclxuICAgICAgICAgKiB3aWxsIGNvbnN0cmljdCB0aGUgYWRkaXRpb24gb2YgbmV3IEdhbWUgT2JqZWN0cyBpbnRvIHRoZSBDb250YWluZXIsIGNhcHBpbmcgb2ZmXHJcbiAgICAgICAgICogdGhlIG1heGltdW0gbGltaXQgdGhlIENvbnRhaW5lciBjYW4gZ3JvdyBpbiBzaXplIHRvLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNtYXhTaXplXHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgLTFcclxuICAgICAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1heFNpemUgPSAtMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGN1cnNvciBwb3NpdGlvbi5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjcG9zaXRpb25cclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBvc2l0aW9uID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW50ZXJuYWwgVHJhbnNmb3JtIE1hdHJpeCB1c2VkIGZvciBsb2NhbCBzcGFjZSBjb252ZXJzaW9uLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNsb2NhbFRyYW5zZm9ybVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9XHJcbiAgICAgICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5sb2NhbFRyYW5zZm9ybSA9IG5ldyBDb21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeCgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJbnRlcm5hbCB0ZW1wb3JhcnkgVHJhbnNmb3JtIE1hdHJpeCB1c2VkIHRvIGF2b2lkIG9iamVjdCBjcmVhdGlvbi5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjdGVtcFRyYW5zZm9ybU1hdHJpeFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnRlbXBUcmFuc2Zvcm1NYXRyaXggPSBuZXcgQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXgoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lIERpc3BsYXkgTGlzdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjX2Rpc3BsYXlMaXN0XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5EaXNwbGF5TGlzdH1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2Rpc3BsYXlMaXN0ID0gc2NlbmUuc3lzLmRpc3BsYXlMaXN0O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgcHJvcGVydHkga2V5IHRvIHNvcnQgYnkuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI19zb3J0S2V5XHJcbiAgICAgICAgICogQHR5cGUge3N0cmluZ31cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3NvcnRLZXkgPSAnJztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lIFN5c3RlbXMgRXZlbnQgRW1pdHRlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjX3N5c0V2ZW50c1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuRXZlbnRzLkV2ZW50RW1pdHRlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjkuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3N5c0V2ZW50cyA9IHNjZW5lLnN5cy5ldmVudHM7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBob3Jpem9udGFsIHNjcm9sbCBmYWN0b3Igb2YgdGhpcyBDb250YWluZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBUaGUgc2Nyb2xsIGZhY3RvciBjb250cm9scyB0aGUgaW5mbHVlbmNlIG9mIHRoZSBtb3ZlbWVudCBvZiBhIENhbWVyYSB1cG9uIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogV2hlbiBhIGNhbWVyYSBzY3JvbGxzIGl0IHdpbGwgY2hhbmdlIHRoZSBsb2NhdGlvbiBhdCB3aGljaCB0aGlzIENvbnRhaW5lciBpcyByZW5kZXJlZCBvbi1zY3JlZW4uXHJcbiAgICAgICAgICogSXQgZG9lcyBub3QgY2hhbmdlIHRoZSBDb250YWluZXJzIGFjdHVhbCBwb3NpdGlvbiB2YWx1ZXMuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogRm9yIGEgQ29udGFpbmVyLCBzZXR0aW5nIHRoaXMgdmFsdWUgd2lsbCBvbmx5IHVwZGF0ZSB0aGUgQ29udGFpbmVyIGl0c2VsZiwgbm90IGl0cyBjaGlsZHJlbi5cclxuICAgICAgICAgKiBJZiB5b3Ugd2lzaCB0byBjaGFuZ2UgdGhlIHNjcm9sbEZhY3RvciBvZiB0aGUgY2hpbGRyZW4gYXMgd2VsbCwgdXNlIHRoZSBgc2V0U2Nyb2xsRmFjdG9yYCBtZXRob2QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBBIHZhbHVlIG9mIDEgbWVhbnMgaXQgd2lsbCBtb3ZlIGV4YWN0bHkgaW4gc3luYyB3aXRoIGEgY2FtZXJhLlxyXG4gICAgICAgICAqIEEgdmFsdWUgb2YgMCBtZWFucyBpdCB3aWxsIG5vdCBtb3ZlIGF0IGFsbCwgZXZlbiBpZiB0aGUgY2FtZXJhIG1vdmVzLlxyXG4gICAgICAgICAqIE90aGVyIHZhbHVlcyBjb250cm9sIHRoZSBkZWdyZWUgdG8gd2hpY2ggdGhlIGNhbWVyYSBtb3ZlbWVudCBpcyBtYXBwZWQgdG8gdGhpcyBDb250YWluZXIuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogUGxlYXNlIGJlIGF3YXJlIHRoYXQgc2Nyb2xsIGZhY3RvciB2YWx1ZXMgb3RoZXIgdGhhbiAxIGFyZSBub3QgdGFrZW4gaW4gdG8gY29uc2lkZXJhdGlvbiB3aGVuXHJcbiAgICAgICAgICogY2FsY3VsYXRpbmcgcGh5c2ljcyBjb2xsaXNpb25zLiBCb2RpZXMgYWx3YXlzIGNvbGxpZGUgYmFzZWQgb24gdGhlaXIgd29ybGQgcG9zaXRpb24sIGJ1dCBjaGFuZ2luZ1xyXG4gICAgICAgICAqIHRoZSBzY3JvbGwgZmFjdG9yIGlzIGEgdmlzdWFsIGFkanVzdG1lbnQgdG8gd2hlcmUgdGhlIHRleHR1cmVzIGFyZSByZW5kZXJlZCwgd2hpY2ggY2FuIG9mZnNldFxyXG4gICAgICAgICAqIHRoZW0gZnJvbSBwaHlzaWNzIGJvZGllcyBpZiBub3QgYWNjb3VudGVkIGZvciBpbiB5b3VyIGNvZGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI3Njcm9sbEZhY3RvclhcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjcm9sbEZhY3RvclggPSAxO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdmVydGljYWwgc2Nyb2xsIGZhY3RvciBvZiB0aGlzIENvbnRhaW5lci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoZSBzY3JvbGwgZmFjdG9yIGNvbnRyb2xzIHRoZSBpbmZsdWVuY2Ugb2YgdGhlIG1vdmVtZW50IG9mIGEgQ2FtZXJhIHVwb24gdGhpcyBDb250YWluZXIuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBXaGVuIGEgY2FtZXJhIHNjcm9sbHMgaXQgd2lsbCBjaGFuZ2UgdGhlIGxvY2F0aW9uIGF0IHdoaWNoIHRoaXMgQ29udGFpbmVyIGlzIHJlbmRlcmVkIG9uLXNjcmVlbi5cclxuICAgICAgICAgKiBJdCBkb2VzIG5vdCBjaGFuZ2UgdGhlIENvbnRhaW5lcnMgYWN0dWFsIHBvc2l0aW9uIHZhbHVlcy5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBGb3IgYSBDb250YWluZXIsIHNldHRpbmcgdGhpcyB2YWx1ZSB3aWxsIG9ubHkgdXBkYXRlIHRoZSBDb250YWluZXIgaXRzZWxmLCBub3QgaXRzIGNoaWxkcmVuLlxyXG4gICAgICAgICAqIElmIHlvdSB3aXNoIHRvIGNoYW5nZSB0aGUgc2Nyb2xsRmFjdG9yIG9mIHRoZSBjaGlsZHJlbiBhcyB3ZWxsLCB1c2UgdGhlIGBzZXRTY3JvbGxGYWN0b3JgIG1ldGhvZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEEgdmFsdWUgb2YgMSBtZWFucyBpdCB3aWxsIG1vdmUgZXhhY3RseSBpbiBzeW5jIHdpdGggYSBjYW1lcmEuXHJcbiAgICAgICAgICogQSB2YWx1ZSBvZiAwIG1lYW5zIGl0IHdpbGwgbm90IG1vdmUgYXQgYWxsLCBldmVuIGlmIHRoZSBjYW1lcmEgbW92ZXMuXHJcbiAgICAgICAgICogT3RoZXIgdmFsdWVzIGNvbnRyb2wgdGhlIGRlZ3JlZSB0byB3aGljaCB0aGUgY2FtZXJhIG1vdmVtZW50IGlzIG1hcHBlZCB0byB0aGlzIENvbnRhaW5lci5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBQbGVhc2UgYmUgYXdhcmUgdGhhdCBzY3JvbGwgZmFjdG9yIHZhbHVlcyBvdGhlciB0aGFuIDEgYXJlIG5vdCB0YWtlbiBpbiB0byBjb25zaWRlcmF0aW9uIHdoZW5cclxuICAgICAgICAgKiBjYWxjdWxhdGluZyBwaHlzaWNzIGNvbGxpc2lvbnMuIEJvZGllcyBhbHdheXMgY29sbGlkZSBiYXNlZCBvbiB0aGVpciB3b3JsZCBwb3NpdGlvbiwgYnV0IGNoYW5naW5nXHJcbiAgICAgICAgICogdGhlIHNjcm9sbCBmYWN0b3IgaXMgYSB2aXN1YWwgYWRqdXN0bWVudCB0byB3aGVyZSB0aGUgdGV4dHVyZXMgYXJlIHJlbmRlcmVkLCB3aGljaCBjYW4gb2Zmc2V0XHJcbiAgICAgICAgICogdGhlbSBmcm9tIHBoeXNpY3MgYm9kaWVzIGlmIG5vdCBhY2NvdW50ZWQgZm9yIGluIHlvdXIgY29kZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjc2Nyb2xsRmFjdG9yWVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsRmFjdG9yWSA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb24oeCwgeSk7XHJcblxyXG4gICAgICAgIHRoaXMuY2xlYXJBbHBoYSgpO1xyXG5cclxuICAgICAgICB0aGlzLnNldEJsZW5kTW9kZShCbGVuZE1vZGVzLlNLSVBfQ0hFQ0spO1xyXG5cclxuICAgICAgICBpZiAoY2hpbGRyZW4pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmFkZChjaGlsZHJlbik7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIHZhbHVlIHRvIGFsbG93IENvbnRhaW5lcnMgdG8gYmUgdXNlZCBmb3IgaW5wdXQgYW5kIHBoeXNpY3MuXHJcbiAgICAgKiBEbyBub3QgY2hhbmdlIHRoaXMgdmFsdWUuIEl0IGhhcyBubyBlZmZlY3Qgb3RoZXIgdGhhbiB0byBicmVhayB0aGluZ3MuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNvcmlnaW5YXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHJlYWRvbmx5XHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqL1xyXG4gICAgb3JpZ2luWDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gMC41O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgdmFsdWUgdG8gYWxsb3cgQ29udGFpbmVycyB0byBiZSB1c2VkIGZvciBpbnB1dCBhbmQgcGh5c2ljcy5cclxuICAgICAqIERvIG5vdCBjaGFuZ2UgdGhpcyB2YWx1ZS4gSXQgaGFzIG5vIGVmZmVjdCBvdGhlciB0aGFuIHRvIGJyZWFrIHRoaW5ncy5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI29yaWdpbllcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICovXHJcbiAgICBvcmlnaW5ZOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiAwLjU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCB2YWx1ZSB0byBhbGxvdyBDb250YWluZXJzIHRvIGJlIHVzZWQgZm9yIGlucHV0IGFuZCBwaHlzaWNzLlxyXG4gICAgICogRG8gbm90IGNoYW5nZSB0aGlzIHZhbHVlLiBJdCBoYXMgbm8gZWZmZWN0IG90aGVyIHRoYW4gdG8gYnJlYWsgdGhpbmdzLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjZGlzcGxheU9yaWdpblhcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICovXHJcbiAgICBkaXNwbGF5T3JpZ2luWDoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy53aWR0aCAqIDAuNTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIHZhbHVlIHRvIGFsbG93IENvbnRhaW5lcnMgdG8gYmUgdXNlZCBmb3IgaW5wdXQgYW5kIHBoeXNpY3MuXHJcbiAgICAgKiBEbyBub3QgY2hhbmdlIHRoaXMgdmFsdWUuIEl0IGhhcyBubyBlZmZlY3Qgb3RoZXIgdGhhbiB0byBicmVhayB0aGluZ3MuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNkaXNwbGF5T3JpZ2luWVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEByZWFkb25seVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKi9cclxuICAgIGRpc3BsYXlPcmlnaW5ZOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhlaWdodCAqIDAuNTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERvZXMgdGhpcyBDb250YWluZXIgZXhjbHVzaXZlbHkgbWFuYWdlIGl0cyBjaGlsZHJlbj9cclxuICAgICAqXHJcbiAgICAgKiBUaGUgZGVmYXVsdCBpcyBgdHJ1ZWAgd2hpY2ggbWVhbnMgYSBjaGlsZCBhZGRlZCB0byB0aGlzIENvbnRhaW5lciBjYW5ub3RcclxuICAgICAqIGJlbG9uZyBpbiBhbm90aGVyIENvbnRhaW5lciwgd2hpY2ggaW5jbHVkZXMgdGhlIFNjZW5lIGRpc3BsYXkgbGlzdC5cclxuICAgICAqXHJcbiAgICAgKiBJZiB5b3UgZGlzYWJsZSB0aGlzIHRoZW4gdGhpcyBDb250YWluZXIgd2lsbCBubyBsb25nZXIgZXhjbHVzaXZlbHkgbWFuYWdlIGl0cyBjaGlsZHJlbi5cclxuICAgICAqIFRoaXMgYWxsb3dzIHlvdSB0byBjcmVhdGUgYWxsIGtpbmRzIG9mIGludGVyZXN0aW5nIGdyYXBoaWNhbCBlZmZlY3RzLCBzdWNoIGFzIHJlcGxpY2F0aW5nXHJcbiAgICAgKiBHYW1lIE9iamVjdHMgd2l0aG91dCByZXBhcmVudGluZyB0aGVtIGFsbCBvdmVyIHRoZSBTY2VuZS5cclxuICAgICAqIEhvd2V2ZXIsIGRvaW5nIHNvIHdpbGwgcHJldmVudCBjaGlsZHJlbiBmcm9tIHJlY2VpdmluZyBhbnkga2luZCBvZiBpbnB1dCBldmVudCBvciBoYXZlXHJcbiAgICAgKiB0aGVpciBwaHlzaWNzIGJvZGllcyB3b3JrIGJ5IGRlZmF1bHQsIGFzIHRoZXkncmUgbm8gbG9uZ2VyIGEgc2luZ2xlIGVudGl0eSBvbiB0aGVcclxuICAgICAqIGRpc3BsYXkgbGlzdCwgYnV0IGFyZSBiZWluZyByZXBsaWNhdGVkIHdoZXJlLWV2ZXIgdGhpcyBDb250YWluZXIgaXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI3NldEV4Y2x1c2l2ZVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbdmFsdWU9dHJ1ZV0gLSBUaGUgZXhjbHVzaXZlIHN0YXRlIG9mIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ29udGFpbmVyLlxyXG4gICAgICovXHJcbiAgICBzZXRFeGNsdXNpdmU6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgeyB2YWx1ZSA9IHRydWU7IH1cclxuXHJcbiAgICAgICAgdGhpcy5leGNsdXNpdmUgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgYm91bmRzIG9mIHRoaXMgQ29udGFpbmVyLiBJdCB3b3JrcyBieSBpdGVyYXRpbmcgYWxsIGNoaWxkcmVuIG9mIHRoZSBDb250YWluZXIsXHJcbiAgICAgKiBnZXR0aW5nIHRoZWlyIHJlc3BlY3RpdmUgYm91bmRzLCBhbmQgdGhlbiB3b3JraW5nIG91dCBhIG1pbi1tYXggcmVjdGFuZ2xlIGZyb20gdGhhdC5cclxuICAgICAqIEl0IGRvZXMgbm90IGZhY3RvciBpbiBpZiB0aGUgY2hpbGRyZW4gcmVuZGVyIG9yIG5vdCwgYWxsIGFyZSBpbmNsdWRlZC5cclxuICAgICAqXHJcbiAgICAgKiBTb21lIGNoaWxkcmVuIGFyZSB1bmFibGUgdG8gcmV0dXJuIHRoZWlyIGJvdW5kcywgc3VjaCBhcyBHcmFwaGljcyBvYmplY3RzLCBpbiB3aGljaCBjYXNlXHJcbiAgICAgKiB0aGV5IGFyZSBza2lwcGVkLlxyXG4gICAgICpcclxuICAgICAqIERlcGVuZGluZyBvbiB0aGUgcXVhbnRpdHkgb2YgY2hpbGRyZW4gaW4gdGhpcyBDb250YWluZXIgaXQgY291bGQgYmUgYSByZWFsbHkgZXhwZW5zaXZlIGNhbGwsXHJcbiAgICAgKiBzbyBjYWNoZSBpdCBhbmQgb25seSBwb2xsIGl0IGFzIG5lZWRlZC5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgdmFsdWVzIGFyZSBzdG9yZWQgYW5kIHJldHVybmVkIGluIGEgUmVjdGFuZ2xlIG9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjZ2V0Qm91bmRzXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HZW9tLlJlY3RhbmdsZX0gW291dHB1dF0gLSBBIEdlb20uUmVjdGFuZ2xlIG9iamVjdCB0byBzdG9yZSB0aGUgdmFsdWVzIGluLiBJZiBub3QgcHJvdmlkZWQgYSBuZXcgUmVjdGFuZ2xlIHdpbGwgYmUgY3JlYXRlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2VvbS5SZWN0YW5nbGV9IFRoZSB2YWx1ZXMgc3RvcmVkIGluIHRoZSBvdXRwdXQgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBnZXRCb3VuZHM6IGZ1bmN0aW9uIChvdXRwdXQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKG91dHB1dCA9PT0gdW5kZWZpbmVkKSB7IG91dHB1dCA9IG5ldyBSZWN0YW5nbGUoKTsgfVxyXG5cclxuICAgICAgICBvdXRwdXQuc2V0VG8odGhpcy54LCB0aGlzLnksIDAsIDApO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5wYXJlbnRDb250YWluZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgcGFyZW50TWF0cml4ID0gdGhpcy5wYXJlbnRDb250YWluZXIuZ2V0Qm91bmRzVHJhbnNmb3JtTWF0cml4KCk7XHJcbiAgICAgICAgICAgIHZhciB0cmFuc2Zvcm1lZFBvc2l0aW9uID0gcGFyZW50TWF0cml4LnRyYW5zZm9ybVBvaW50KHRoaXMueCwgdGhpcy55KTtcclxuICAgICAgICAgICAgb3V0cHV0LnNldFRvKHRyYW5zZm9ybWVkUG9zaXRpb24ueCwgdHJhbnNmb3JtZWRQb3NpdGlvbi55LCAwLCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmxpc3QubGVuZ3RoID4gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMubGlzdDtcclxuICAgICAgICAgICAgdmFyIHRlbXBSZWN0ID0gbmV3IFJlY3RhbmdsZSgpO1xyXG5cclxuICAgICAgICAgICAgdmFyIGZpcnN0Q2hpbGRCb3VuZHMgPSBjaGlsZHJlblswXS5nZXRCb3VuZHMoKTtcclxuICAgICAgICAgICAgb3V0cHV0LnNldFRvKGZpcnN0Q2hpbGRCb3VuZHMueCwgZmlyc3RDaGlsZEJvdW5kcy55LCBmaXJzdENoaWxkQm91bmRzLndpZHRoLCBmaXJzdENoaWxkQm91bmRzLmhlaWdodCk7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhciBlbnRyeSA9IGNoaWxkcmVuW2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChlbnRyeS5nZXRCb3VuZHMpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgZW50cnkuZ2V0Qm91bmRzKHRlbXBSZWN0KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgVW5pb24odGVtcFJlY3QsIG91dHB1dCwgb3V0cHV0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG91dHB1dDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBhZGQgaGFuZGxlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjYWRkSGFuZGxlclxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGdhbWVPYmplY3QgLSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMganVzdCBhZGRlZCB0byB0aGlzIENvbnRhaW5lci5cclxuICAgICAqL1xyXG4gICAgYWRkSGFuZGxlcjogZnVuY3Rpb24gKGdhbWVPYmplY3QpXHJcbiAgICB7XHJcbiAgICAgICAgZ2FtZU9iamVjdC5vbmNlKEV2ZW50cy5ERVNUUk9ZLCB0aGlzLnJlbW92ZSwgdGhpcyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmV4Y2x1c2l2ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlMaXN0LnJlbW92ZShnYW1lT2JqZWN0KTtcclxuXHJcbiAgICAgICAgICAgIGlmIChnYW1lT2JqZWN0LnBhcmVudENvbnRhaW5lcilcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZ2FtZU9iamVjdC5wYXJlbnRDb250YWluZXIucmVtb3ZlKGdhbWVPYmplY3QpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBnYW1lT2JqZWN0LnBhcmVudENvbnRhaW5lciA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIHJlbW92ZSBoYW5kbGVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNyZW1vdmVIYW5kbGVyXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBqdXN0IHJlbW92ZWQgZnJvbSB0aGlzIENvbnRhaW5lci5cclxuICAgICAqL1xyXG4gICAgcmVtb3ZlSGFuZGxlcjogZnVuY3Rpb24gKGdhbWVPYmplY3QpXHJcbiAgICB7XHJcbiAgICAgICAgZ2FtZU9iamVjdC5vZmYoRXZlbnRzLkRFU1RST1ksIHRoaXMucmVtb3ZlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZXhjbHVzaXZlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZ2FtZU9iamVjdC5wYXJlbnRDb250YWluZXIgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUYWtlcyBhIFBvaW50LWxpa2Ugb2JqZWN0LCBzdWNoIGFzIGEgVmVjdG9yMiwgR2VvbS5Qb2ludCBvciBvYmplY3Qgd2l0aCBwdWJsaWMgeCBhbmQgeSBwcm9wZXJ0aWVzLFxyXG4gICAgICogYW5kIHRyYW5zZm9ybXMgaXQgaW50byB0aGUgc3BhY2Ugb2YgdGhpcyBDb250YWluZXIsIHRoZW4gcmV0dXJucyBpdCBpbiB0aGUgb3V0cHV0IG9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjcG9pbnRUb0NvbnRhaW5lclxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsob2JqZWN0fFBoYXNlci5HZW9tLlBvaW50fFBoYXNlci5NYXRoLlZlY3RvcjIpfSBzb3VyY2UgLSBUaGUgU291cmNlIFBvaW50IHRvIGJlIHRyYW5zZm9ybWVkLlxyXG4gICAgICogQHBhcmFtIHsob2JqZWN0fFBoYXNlci5HZW9tLlBvaW50fFBoYXNlci5NYXRoLlZlY3RvcjIpfSBbb3V0cHV0XSAtIEEgZGVzdGluYXRpb24gb2JqZWN0IHRvIHN0b3JlIHRoZSB0cmFuc2Zvcm1lZCBwb2ludCBpbi4gSWYgbm9uZSBnaXZlbiBhIFZlY3RvcjIgd2lsbCBiZSBjcmVhdGVkIGFuZCByZXR1cm5lZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHsob2JqZWN0fFBoYXNlci5HZW9tLlBvaW50fFBoYXNlci5NYXRoLlZlY3RvcjIpfSBUaGUgdHJhbnNmb3JtZWQgcG9pbnQuXHJcbiAgICAgKi9cclxuICAgIHBvaW50VG9Db250YWluZXI6IGZ1bmN0aW9uIChzb3VyY2UsIG91dHB1dClcclxuICAgIHtcclxuICAgICAgICBpZiAob3V0cHV0ID09PSB1bmRlZmluZWQpIHsgb3V0cHV0ID0gbmV3IFZlY3RvcjIoKTsgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5wYXJlbnRDb250YWluZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnBhcmVudENvbnRhaW5lci5wb2ludFRvQ29udGFpbmVyKHNvdXJjZSwgb3V0cHV0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgb3V0cHV0ID0gbmV3IFZlY3RvcjIoc291cmNlLngsIHNvdXJjZS55KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciB0ZW1wTWF0cml4ID0gdGhpcy50ZW1wVHJhbnNmb3JtTWF0cml4O1xyXG5cclxuICAgICAgICAvLyAgTm8gbmVlZCB0byBsb2FkSWRlbnRpdHkgYmVjYXVzZSBhcHBseUlUUlMgb3ZlcndyaXRlcyBldmVyeSB2YWx1ZSBhbnl3YXlcclxuICAgICAgICB0ZW1wTWF0cml4LmFwcGx5SVRSUyh0aGlzLngsIHRoaXMueSwgdGhpcy5yb3RhdGlvbiwgdGhpcy5zY2FsZVgsIHRoaXMuc2NhbGVZKTtcclxuXHJcbiAgICAgICAgdGVtcE1hdHJpeC5pbnZlcnQoKTtcclxuXHJcbiAgICAgICAgdGVtcE1hdHJpeC50cmFuc2Zvcm1Qb2ludChzb3VyY2UueCwgc291cmNlLnksIG91dHB1dCk7XHJcblxyXG4gICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgd29ybGQgdHJhbnNmb3JtIG1hdHJpeCBhcyB1c2VkIGZvciBCb3VuZHMgY2hlY2tzLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgcmV0dXJuZWQgbWF0cml4IGlzIHRlbXBvcmFsIGFuZCBzaG91bGRuJ3QgYmUgc3RvcmVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNnZXRCb3VuZHNUcmFuc2Zvcm1NYXRyaXhcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gVGhlIHdvcmxkIHRyYW5zZm9ybSBtYXRyaXguXHJcbiAgICAgKi9cclxuICAgIGdldEJvdW5kc1RyYW5zZm9ybU1hdHJpeDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRXb3JsZFRyYW5zZm9ybU1hdHJpeCh0aGlzLnRlbXBUcmFuc2Zvcm1NYXRyaXgsIHRoaXMubG9jYWxUcmFuc2Zvcm0pO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgdGhlIGdpdmVuIEdhbWUgT2JqZWN0LCBvciBhcnJheSBvZiBHYW1lIE9iamVjdHMsIHRvIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIEVhY2ggR2FtZSBPYmplY3QgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI2FkZFxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdHxQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFtdfSBjaGlsZCAtIFRoZSBHYW1lIE9iamVjdCwgb3IgYXJyYXkgb2YgR2FtZSBPYmplY3RzLCB0byBhZGQgdG8gdGhlIENvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENvbnRhaW5lciBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgYWRkOiBmdW5jdGlvbiAoY2hpbGQpXHJcbiAgICB7XHJcbiAgICAgICAgQXJyYXlVdGlscy5BZGQodGhpcy5saXN0LCBjaGlsZCwgdGhpcy5tYXhTaXplLCB0aGlzLmFkZEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGRzIHRoZSBnaXZlbiBHYW1lIE9iamVjdCwgb3IgYXJyYXkgb2YgR2FtZSBPYmplY3RzLCB0byB0aGlzIENvbnRhaW5lciBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEV4aXN0aW5nIEdhbWUgT2JqZWN0cyBpbiB0aGUgQ29udGFpbmVyIGFyZSBzaGlmdGVkIHVwLlxyXG4gICAgICpcclxuICAgICAqIEVhY2ggR2FtZSBPYmplY3QgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI2FkZEF0XHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IGNoaWxkIC0gVGhlIEdhbWUgT2JqZWN0LCBvciBhcnJheSBvZiBHYW1lIE9iamVjdHMsIHRvIGFkZCB0byB0aGUgQ29udGFpbmVyLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbaW5kZXg9MF0gLSBUaGUgcG9zaXRpb24gdG8gaW5zZXJ0IHRoZSBHYW1lIE9iamVjdC9zIGF0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ29udGFpbmVyIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBhZGRBdDogZnVuY3Rpb24gKGNoaWxkLCBpbmRleClcclxuICAgIHtcclxuICAgICAgICBBcnJheVV0aWxzLkFkZEF0KHRoaXMubGlzdCwgY2hpbGQsIGluZGV4LCB0aGlzLm1heFNpemUsIHRoaXMuYWRkSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIEdhbWUgT2JqZWN0IGF0IHRoZSBnaXZlbiBwb3NpdGlvbiBpbiB0aGlzIENvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjZ2V0QXRcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gaW5kZXggLSBUaGUgcG9zaXRpb24gdG8gZ2V0IHRoZSBHYW1lIE9iamVjdCBmcm9tLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4gez9QaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gVGhlIEdhbWUgT2JqZWN0IGF0IHRoZSBzcGVjaWZpZWQgaW5kZXgsIG9yIGBudWxsYCBpZiBub25lIGZvdW5kLlxyXG4gICAgICovXHJcbiAgICBnZXRBdDogZnVuY3Rpb24gKGluZGV4KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpc3RbaW5kZXhdO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBnaXZlbiBHYW1lIE9iamVjdCBpbiB0aGlzIENvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjZ2V0SW5kZXhcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGNoaWxkIC0gVGhlIEdhbWUgT2JqZWN0IHRvIHNlYXJjaCBmb3IgaW4gdGhpcyBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7aW50ZWdlcn0gVGhlIGluZGV4IG9mIHRoZSBHYW1lIE9iamVjdCBpbiB0aGlzIENvbnRhaW5lciwgb3IgLTEgaWYgbm90IGZvdW5kLlxyXG4gICAgICovXHJcbiAgICBnZXRJbmRleDogZnVuY3Rpb24gKGNoaWxkKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpc3QuaW5kZXhPZihjaGlsZCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU29ydCB0aGUgY29udGVudHMgb2YgdGhpcyBDb250YWluZXIgc28gdGhlIGl0ZW1zIGFyZSBpbiBvcmRlciBiYXNlZCBvbiB0aGUgZ2l2ZW4gcHJvcGVydHkuXHJcbiAgICAgKiBGb3IgZXhhbXBsZTogYHNvcnQoJ2FscGhhJylgIHdvdWxkIHNvcnQgdGhlIGVsZW1lbnRzIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiB0aGVpciBgYWxwaGFgIHByb3BlcnR5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNzb3J0XHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkgdG8gbGV4aWNhbGx5IHNvcnQgYnkuXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbaGFuZGxlcl0gLSBQcm92aWRlIHlvdXIgb3duIGN1c3RvbSBoYW5kbGVyIGZ1bmN0aW9uLiBXaWxsIHJlY2VpdmUgMiBjaGlsZHJlbiB3aGljaCBpdCBzaG91bGQgY29tcGFyZSBhbmQgcmV0dXJuIGEgYm9vbGVhbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENvbnRhaW5lciBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc29ydDogZnVuY3Rpb24gKHByb3BlcnR5LCBoYW5kbGVyKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghcHJvcGVydHkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChoYW5kbGVyID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBoYW5kbGVyID0gZnVuY3Rpb24gKGNoaWxkQSwgY2hpbGRCKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRBW3Byb3BlcnR5XSAtIGNoaWxkQltwcm9wZXJ0eV07XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBBcnJheVV0aWxzLlN0YWJsZVNvcnQuaW5wbGFjZSh0aGlzLmxpc3QsIGhhbmRsZXIpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZWFyY2hlcyBmb3IgdGhlIGZpcnN0IGluc3RhbmNlIG9mIGEgY2hpbGQgd2l0aCBpdHMgYG5hbWVgIHByb3BlcnR5IG1hdGNoaW5nIHRoZSBnaXZlbiBhcmd1bWVudC5cclxuICAgICAqIFNob3VsZCBtb3JlIHRoYW4gb25lIGNoaWxkIGhhdmUgdGhlIHNhbWUgbmFtZSBvbmx5IHRoZSBmaXJzdCBpcyByZXR1cm5lZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjZ2V0QnlOYW1lXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFRoZSBuYW1lIHRvIHNlYXJjaCBmb3IuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7P1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBUaGUgZmlyc3QgY2hpbGQgd2l0aCBhIG1hdGNoaW5nIG5hbWUsIG9yIGBudWxsYCBpZiBub25lIHdlcmUgZm91bmQuXHJcbiAgICAgKi9cclxuICAgIGdldEJ5TmFtZTogZnVuY3Rpb24gKG5hbWUpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5VXRpbHMuR2V0Rmlyc3QodGhpcy5saXN0LCAnbmFtZScsIG5hbWUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgYSByYW5kb20gR2FtZSBPYmplY3QgZnJvbSB0aGlzIENvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjZ2V0UmFuZG9tXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtzdGFydEluZGV4PTBdIC0gQW4gb3B0aW9uYWwgc3RhcnQgaW5kZXguXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtsZW5ndGhdIC0gQW4gb3B0aW9uYWwgbGVuZ3RoLCB0aGUgdG90YWwgbnVtYmVyIG9mIGVsZW1lbnRzIChmcm9tIHRoZSBzdGFydEluZGV4KSB0byBjaG9vc2UgZnJvbS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHs/UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IEEgcmFuZG9tIGNoaWxkIGZyb20gdGhlIENvbnRhaW5lciwgb3IgYG51bGxgIGlmIHRoZSBDb250YWluZXIgaXMgZW1wdHkuXHJcbiAgICAgKi9cclxuICAgIGdldFJhbmRvbTogZnVuY3Rpb24gKHN0YXJ0SW5kZXgsIGxlbmd0aClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gQXJyYXlVdGlscy5HZXRSYW5kb20odGhpcy5saXN0LCBzdGFydEluZGV4LCBsZW5ndGgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGZpcnN0IEdhbWUgT2JqZWN0IGluIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIFlvdSBjYW4gYWxzbyBzcGVjaWZ5IGEgcHJvcGVydHkgYW5kIHZhbHVlIHRvIHNlYXJjaCBmb3IsIGluIHdoaWNoIGNhc2UgaXQgd2lsbCByZXR1cm4gdGhlIGZpcnN0XHJcbiAgICAgKiBHYW1lIE9iamVjdCBpbiB0aGlzIENvbnRhaW5lciB3aXRoIGEgbWF0Y2hpbmcgcHJvcGVydHkgYW5kIC8gb3IgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogRm9yIGV4YW1wbGU6IGBnZXRGaXJzdCgndmlzaWJsZScsIHRydWUpYCB3b3VsZCByZXR1cm4gdGhlIGZpcnN0IEdhbWUgT2JqZWN0IHRoYXQgaGFkIGl0cyBgdmlzaWJsZWAgcHJvcGVydHkgc2V0LlxyXG4gICAgICpcclxuICAgICAqIFlvdSBjYW4gbGltaXQgdGhlIHNlYXJjaCB0byB0aGUgYHN0YXJ0SW5kZXhgIC0gYGVuZEluZGV4YCByYW5nZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjZ2V0Rmlyc3RcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSB0byB0ZXN0IG9uIGVhY2ggR2FtZSBPYmplY3QgaW4gdGhlIENvbnRhaW5lci5cclxuICAgICAqIEBwYXJhbSB7Kn0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gdGVzdCB0aGUgcHJvcGVydHkgYWdhaW5zdC4gTXVzdCBwYXNzIGEgc3RyaWN0IChgPT09YCkgY29tcGFyaXNvbiBjaGVjay5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3N0YXJ0SW5kZXg9MF0gLSBBbiBvcHRpb25hbCBzdGFydCBpbmRleCB0byBzZWFyY2ggZnJvbS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2VuZEluZGV4PUNvbnRhaW5lci5sZW5ndGhdIC0gQW4gb3B0aW9uYWwgZW5kIGluZGV4IHRvIHNlYXJjaCB1cCB0byAoYnV0IG5vdCBpbmNsdWRlZClcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHs/UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IFRoZSBmaXJzdCBtYXRjaGluZyBHYW1lIE9iamVjdCwgb3IgYG51bGxgIGlmIG5vbmUgd2FzIGZvdW5kLlxyXG4gICAgICovXHJcbiAgICBnZXRGaXJzdDogZnVuY3Rpb24gKHByb3BlcnR5LCB2YWx1ZSwgc3RhcnRJbmRleCwgZW5kSW5kZXgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5VXRpbHMuR2V0Rmlyc3QodGhpcy5saXN0LCBwcm9wZXJ0eSwgdmFsdWUsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGFsbCBHYW1lIE9iamVjdHMgaW4gdGhpcyBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgYSBtYXRjaGluZyBjcml0ZXJpYSB1c2luZyB0aGUgYHByb3BlcnR5YCBhbmQgYHZhbHVlYCBhcmd1bWVudHMuXHJcbiAgICAgKlxyXG4gICAgICogRm9yIGV4YW1wbGU6IGBnZXRBbGwoJ2JvZHknKWAgd291bGQgcmV0dXJuIG9ubHkgR2FtZSBPYmplY3RzIHRoYXQgaGF2ZSBhIGJvZHkgcHJvcGVydHkuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBhbHNvIHNwZWNpZnkgYSB2YWx1ZSB0byBjb21wYXJlIHRoZSBwcm9wZXJ0eSB0bzpcclxuICAgICAqXHJcbiAgICAgKiBgZ2V0QWxsKCd2aXNpYmxlJywgdHJ1ZSlgIHdvdWxkIHJldHVybiBvbmx5IEdhbWUgT2JqZWN0cyB0aGF0IGhhdmUgdGhlaXIgdmlzaWJsZSBwcm9wZXJ0eSBzZXQgdG8gYHRydWVgLlxyXG4gICAgICpcclxuICAgICAqIE9wdGlvbmFsbHkgeW91IGNhbiBzcGVjaWZ5IGEgc3RhcnQgYW5kIGVuZCBpbmRleC4gRm9yIGV4YW1wbGUgaWYgdGhpcyBDb250YWluZXIgaGFkIDEwMCBHYW1lIE9iamVjdHMsXHJcbiAgICAgKiBhbmQgeW91IHNldCBgc3RhcnRJbmRleGAgdG8gMCBhbmQgYGVuZEluZGV4YCB0byA1MCwgaXQgd291bGQgcmV0dXJuIG1hdGNoZXMgZnJvbSBvbmx5XHJcbiAgICAgKiB0aGUgZmlyc3QgNTAgR2FtZSBPYmplY3RzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNnZXRBbGxcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbcHJvcGVydHldIC0gVGhlIHByb3BlcnR5IHRvIHRlc3Qgb24gZWFjaCBHYW1lIE9iamVjdCBpbiB0aGUgQ29udGFpbmVyLlxyXG4gICAgICogQHBhcmFtIHthbnl9IFt2YWx1ZV0gLSBJZiBwcm9wZXJ0eSBpcyBzZXQgdGhlbiB0aGUgYHByb3BlcnR5YCBtdXN0IHN0cmljdGx5IGVxdWFsIHRoaXMgdmFsdWUgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdHMuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtzdGFydEluZGV4PTBdIC0gQW4gb3B0aW9uYWwgc3RhcnQgaW5kZXggdG8gc2VhcmNoIGZyb20uXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtlbmRJbmRleD1Db250YWluZXIubGVuZ3RoXSAtIEFuIG9wdGlvbmFsIGVuZCBpbmRleCB0byBzZWFyY2ggdXAgdG8gKGJ1dCBub3QgaW5jbHVkZWQpXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gQW4gYXJyYXkgb2YgbWF0Y2hpbmcgR2FtZSBPYmplY3RzIGZyb20gdGhpcyBDb250YWluZXIuXHJcbiAgICAgKi9cclxuICAgIGdldEFsbDogZnVuY3Rpb24gKHByb3BlcnR5LCB2YWx1ZSwgc3RhcnRJbmRleCwgZW5kSW5kZXgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5VXRpbHMuR2V0QWxsKHRoaXMubGlzdCwgcHJvcGVydHksIHZhbHVlLCBzdGFydEluZGV4LCBlbmRJbmRleCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgdG90YWwgbnVtYmVyIG9mIEdhbWUgT2JqZWN0cyBpbiB0aGlzIENvbnRhaW5lciB0aGF0IGhhdmUgYSBwcm9wZXJ0eVxyXG4gICAgICogbWF0Y2hpbmcgdGhlIGdpdmVuIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEZvciBleGFtcGxlOiBgY291bnQoJ3Zpc2libGUnLCB0cnVlKWAgd291bGQgY291bnQgYWxsIHRoZSBlbGVtZW50cyB0aGF0IGhhdmUgdGhlaXIgdmlzaWJsZSBwcm9wZXJ0eSBzZXQuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBvcHRpb25hbGx5IGxpbWl0IHRoZSBvcGVyYXRpb24gdG8gdGhlIGBzdGFydEluZGV4YCAtIGBlbmRJbmRleGAgcmFuZ2UuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI2NvdW50XHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkgdG8gY2hlY2suXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtzdGFydEluZGV4PTBdIC0gQW4gb3B0aW9uYWwgc3RhcnQgaW5kZXggdG8gc2VhcmNoIGZyb20uXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtlbmRJbmRleD1Db250YWluZXIubGVuZ3RoXSAtIEFuIG9wdGlvbmFsIGVuZCBpbmRleCB0byBzZWFyY2ggdXAgdG8gKGJ1dCBub3QgaW5jbHVkZWQpXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7aW50ZWdlcn0gVGhlIHRvdGFsIG51bWJlciBvZiBHYW1lIE9iamVjdHMgaW4gdGhpcyBDb250YWluZXIgd2l0aCBhIHByb3BlcnR5IG1hdGNoaW5nIHRoZSBnaXZlbiB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgY291bnQ6IGZ1bmN0aW9uIChwcm9wZXJ0eSwgdmFsdWUsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBBcnJheVV0aWxzLkNvdW50QWxsTWF0Y2hpbmcodGhpcy5saXN0LCBwcm9wZXJ0eSwgdmFsdWUsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTd2FwcyB0aGUgcG9zaXRpb24gb2YgdHdvIEdhbWUgT2JqZWN0cyBpbiB0aGlzIENvbnRhaW5lci5cclxuICAgICAqIEJvdGggR2FtZSBPYmplY3RzIG11c3QgYmVsb25nIHRvIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNzd2FwXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBjaGlsZDEgLSBUaGUgZmlyc3QgR2FtZSBPYmplY3QgdG8gc3dhcC5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGNoaWxkMiAtIFRoZSBzZWNvbmQgR2FtZSBPYmplY3QgdG8gc3dhcC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENvbnRhaW5lciBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc3dhcDogZnVuY3Rpb24gKGNoaWxkMSwgY2hpbGQyKVxyXG4gICAge1xyXG4gICAgICAgIEFycmF5VXRpbHMuU3dhcCh0aGlzLmxpc3QsIGNoaWxkMSwgY2hpbGQyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW92ZXMgYSBHYW1lIE9iamVjdCB0byBhIG5ldyBwb3NpdGlvbiB3aXRoaW4gdGhpcyBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIEdhbWUgT2JqZWN0IG11c3QgYWxyZWFkeSBiZSBhIGNoaWxkIG9mIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBHYW1lIE9iamVjdCBpcyByZW1vdmVkIGZyb20gaXRzIG9sZCBwb3NpdGlvbiBhbmQgaW5zZXJ0ZWQgaW50byB0aGUgbmV3IG9uZS5cclxuICAgICAqIFRoZXJlZm9yZSB0aGUgQ29udGFpbmVyIHNpemUgZG9lcyBub3QgY2hhbmdlLiBPdGhlciBjaGlsZHJlbiB3aWxsIGNoYW5nZSBwb3NpdGlvbiBhY2NvcmRpbmdseS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjbW92ZVRvXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBjaGlsZCAtIFRoZSBHYW1lIE9iamVjdCB0byBtb3ZlLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIFRoZSBuZXcgcG9zaXRpb24gb2YgdGhlIEdhbWUgT2JqZWN0IGluIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ29udGFpbmVyIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBtb3ZlVG86IGZ1bmN0aW9uIChjaGlsZCwgaW5kZXgpXHJcbiAgICB7XHJcbiAgICAgICAgQXJyYXlVdGlscy5Nb3ZlVG8odGhpcy5saXN0LCBjaGlsZCwgaW5kZXgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIHRoZSBnaXZlbiBHYW1lIE9iamVjdCwgb3IgYXJyYXkgb2YgR2FtZSBPYmplY3RzLCBmcm9tIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBHYW1lIE9iamVjdHMgbXVzdCBhbHJlYWR5IGJlIGNoaWxkcmVuIG9mIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIFlvdSBjYW4gYWxzbyBvcHRpb25hbGx5IGNhbGwgYGRlc3Ryb3lgIG9uIGVhY2ggR2FtZSBPYmplY3QgdGhhdCBpcyByZW1vdmVkIGZyb20gdGhlIENvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjcmVtb3ZlXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IGNoaWxkIC0gVGhlIEdhbWUgT2JqZWN0LCBvciBhcnJheSBvZiBHYW1lIE9iamVjdHMsIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgQ29udGFpbmVyLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZGVzdHJveUNoaWxkPWZhbHNlXSAtIE9wdGlvbmFsbHkgY2FsbCBgZGVzdHJveWAgb24gZWFjaCBjaGlsZCBzdWNjZXNzZnVsbHkgcmVtb3ZlZCBmcm9tIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ29udGFpbmVyIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICByZW1vdmU6IGZ1bmN0aW9uIChjaGlsZCwgZGVzdHJveUNoaWxkKVxyXG4gICAge1xyXG4gICAgICAgIHZhciByZW1vdmVkID0gQXJyYXlVdGlscy5SZW1vdmUodGhpcy5saXN0LCBjaGlsZCwgdGhpcy5yZW1vdmVIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICAgICAgaWYgKGRlc3Ryb3lDaGlsZCAmJiByZW1vdmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHJlbW92ZWQpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZW1vdmVkID0gWyByZW1vdmVkIF07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVtb3ZlZC5sZW5ndGg7IGkrKylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmVtb3ZlZFtpXS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgdGhlIEdhbWUgT2JqZWN0IGF0IHRoZSBnaXZlbiBwb3NpdGlvbiBpbiB0aGlzIENvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIGFsc28gb3B0aW9uYWxseSBjYWxsIGBkZXN0cm95YCBvbiB0aGUgR2FtZSBPYmplY3QsIGlmIG9uZSBpcyBmb3VuZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjcmVtb3ZlQXRcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gaW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIEdhbWUgT2JqZWN0IHRvIGJlIHJlbW92ZWQuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtkZXN0cm95Q2hpbGQ9ZmFsc2VdIC0gT3B0aW9uYWxseSBjYWxsIGBkZXN0cm95YCBvbiB0aGUgR2FtZSBPYmplY3QgaWYgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQgZnJvbSB0aGlzIENvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENvbnRhaW5lciBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcmVtb3ZlQXQ6IGZ1bmN0aW9uIChpbmRleCwgZGVzdHJveUNoaWxkKVxyXG4gICAge1xyXG4gICAgICAgIHZhciByZW1vdmVkID0gQXJyYXlVdGlscy5SZW1vdmVBdCh0aGlzLmxpc3QsIGluZGV4LCB0aGlzLnJlbW92ZUhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgICAgICBpZiAoZGVzdHJveUNoaWxkICYmIHJlbW92ZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZW1vdmVkLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgdGhlIEdhbWUgT2JqZWN0cyBiZXR3ZWVuIHRoZSBnaXZlbiBwb3NpdGlvbnMgaW4gdGhpcyBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBhbHNvIG9wdGlvbmFsbHkgY2FsbCBgZGVzdHJveWAgb24gZWFjaCBHYW1lIE9iamVjdCB0aGF0IGlzIHJlbW92ZWQgZnJvbSB0aGUgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNyZW1vdmVCZXR3ZWVuXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtzdGFydEluZGV4PTBdIC0gQW4gb3B0aW9uYWwgc3RhcnQgaW5kZXggdG8gc2VhcmNoIGZyb20uXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtlbmRJbmRleD1Db250YWluZXIubGVuZ3RoXSAtIEFuIG9wdGlvbmFsIGVuZCBpbmRleCB0byBzZWFyY2ggdXAgdG8gKGJ1dCBub3QgaW5jbHVkZWQpXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtkZXN0cm95Q2hpbGQ9ZmFsc2VdIC0gT3B0aW9uYWxseSBjYWxsIGBkZXN0cm95YCBvbiBlYWNoIEdhbWUgT2JqZWN0IHN1Y2Nlc3NmdWxseSByZW1vdmVkIGZyb20gdGhpcyBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDb250YWluZXIgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZUJldHdlZW46IGZ1bmN0aW9uIChzdGFydEluZGV4LCBlbmRJbmRleCwgZGVzdHJveUNoaWxkKVxyXG4gICAge1xyXG4gICAgICAgIHZhciByZW1vdmVkID0gQXJyYXlVdGlscy5SZW1vdmVCZXR3ZWVuKHRoaXMubGlzdCwgc3RhcnRJbmRleCwgZW5kSW5kZXgsIHRoaXMucmVtb3ZlSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgICAgIGlmIChkZXN0cm95Q2hpbGQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlbW92ZWQubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJlbW92ZWRbaV0uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIGFsbCBHYW1lIE9iamVjdHMgZnJvbSB0aGlzIENvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIGFsc28gb3B0aW9uYWxseSBjYWxsIGBkZXN0cm95YCBvbiBlYWNoIEdhbWUgT2JqZWN0IHRoYXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI3JlbW92ZUFsbFxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZGVzdHJveUNoaWxkPWZhbHNlXSAtIE9wdGlvbmFsbHkgY2FsbCBgZGVzdHJveWAgb24gZWFjaCBHYW1lIE9iamVjdCBzdWNjZXNzZnVsbHkgcmVtb3ZlZCBmcm9tIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ29udGFpbmVyIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICByZW1vdmVBbGw6IGZ1bmN0aW9uIChkZXN0cm95Q2hpbGQpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHJlbW92ZWQgPSBBcnJheVV0aWxzLlJlbW92ZUJldHdlZW4odGhpcy5saXN0LCAwLCB0aGlzLmxpc3QubGVuZ3RoLCB0aGlzLnJlbW92ZUhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgICAgICBpZiAoZGVzdHJveUNoaWxkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZW1vdmVkLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZW1vdmVkW2ldLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQnJpbmdzIHRoZSBnaXZlbiBHYW1lIE9iamVjdCB0byB0aGUgdG9wIG9mIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICogVGhpcyB3aWxsIGNhdXNlIGl0IHRvIHJlbmRlciBvbi10b3Agb2YgYW55IG90aGVyIG9iamVjdHMgaW4gdGhlIENvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjYnJpbmdUb1RvcFxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gY2hpbGQgLSBUaGUgR2FtZSBPYmplY3QgdG8gYnJpbmcgdG8gdGhlIHRvcCBvZiB0aGUgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ29udGFpbmVyIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBicmluZ1RvVG9wOiBmdW5jdGlvbiAoY2hpbGQpXHJcbiAgICB7XHJcbiAgICAgICAgQXJyYXlVdGlscy5CcmluZ1RvVG9wKHRoaXMubGlzdCwgY2hpbGQpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZW5kcyB0aGUgZ2l2ZW4gR2FtZSBPYmplY3QgdG8gdGhlIGJvdHRvbSBvZiB0aGlzIENvbnRhaW5lci5cclxuICAgICAqIFRoaXMgd2lsbCBjYXVzZSBpdCB0byByZW5kZXIgYmVsb3cgYW55IG90aGVyIG9iamVjdHMgaW4gdGhlIENvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjc2VuZFRvQmFja1xyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gY2hpbGQgLSBUaGUgR2FtZSBPYmplY3QgdG8gc2VuZCB0byB0aGUgYm90dG9tIG9mIHRoZSBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDb250YWluZXIgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNlbmRUb0JhY2s6IGZ1bmN0aW9uIChjaGlsZClcclxuICAgIHtcclxuICAgICAgICBBcnJheVV0aWxzLlNlbmRUb0JhY2sodGhpcy5saXN0LCBjaGlsZCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vdmVzIHRoZSBnaXZlbiBHYW1lIE9iamVjdCB1cCBvbmUgcGxhY2UgaW4gdGhpcyBDb250YWluZXIsIHVubGVzcyBpdCdzIGFscmVhZHkgYXQgdGhlIHRvcC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjbW92ZVVwXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBjaGlsZCAtIFRoZSBHYW1lIE9iamVjdCB0byBiZSBtb3ZlZCBpbiB0aGUgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ29udGFpbmVyIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBtb3ZlVXA6IGZ1bmN0aW9uIChjaGlsZClcclxuICAgIHtcclxuICAgICAgICBBcnJheVV0aWxzLk1vdmVVcCh0aGlzLmxpc3QsIGNoaWxkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW92ZXMgdGhlIGdpdmVuIEdhbWUgT2JqZWN0IGRvd24gb25lIHBsYWNlIGluIHRoaXMgQ29udGFpbmVyLCB1bmxlc3MgaXQncyBhbHJlYWR5IGF0IHRoZSBib3R0b20uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI21vdmVEb3duXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSBjaGlsZCAtIFRoZSBHYW1lIE9iamVjdCB0byBiZSBtb3ZlZCBpbiB0aGUgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgQ29udGFpbmVyIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBtb3ZlRG93bjogZnVuY3Rpb24gKGNoaWxkKVxyXG4gICAge1xyXG4gICAgICAgIEFycmF5VXRpbHMuTW92ZURvd24odGhpcy5saXN0LCBjaGlsZCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldmVyc2VzIHRoZSBvcmRlciBvZiBhbGwgR2FtZSBPYmplY3RzIGluIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNyZXZlcnNlXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENvbnRhaW5lciBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcmV2ZXJzZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmxpc3QucmV2ZXJzZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaHVmZmxlcyB0aGUgYWxsIEdhbWUgT2JqZWN0cyBpbiB0aGlzIENvbnRhaW5lciB1c2luZyB0aGUgRmlzaGVyLVlhdGVzIGltcGxlbWVudGF0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNzaHVmZmxlXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENvbnRhaW5lciBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2h1ZmZsZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBBcnJheVV0aWxzLlNodWZmbGUodGhpcy5saXN0KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVwbGFjZXMgYSBHYW1lIE9iamVjdCBpbiB0aGlzIENvbnRhaW5lciB3aXRoIHRoZSBuZXcgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBUaGUgbmV3IEdhbWUgT2JqZWN0IGNhbm5vdCBhbHJlYWR5IGJlIGEgY2hpbGQgb2YgdGhpcyBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI3JlcGxhY2VcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IG9sZENoaWxkIC0gVGhlIEdhbWUgT2JqZWN0IGluIHRoaXMgQ29udGFpbmVyIHRoYXQgd2lsbCBiZSByZXBsYWNlZC5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IG5ld0NoaWxkIC0gVGhlIEdhbWUgT2JqZWN0IHRvIGJlIGFkZGVkIHRvIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbZGVzdHJveUNoaWxkPWZhbHNlXSAtIE9wdGlvbmFsbHkgY2FsbCBgZGVzdHJveWAgb24gdGhlIEdhbWUgT2JqZWN0IGlmIHN1Y2Nlc3NmdWxseSByZW1vdmVkIGZyb20gdGhpcyBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDb250YWluZXIgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHJlcGxhY2U6IGZ1bmN0aW9uIChvbGRDaGlsZCwgbmV3Q2hpbGQsIGRlc3Ryb3lDaGlsZClcclxuICAgIHtcclxuICAgICAgICB2YXIgbW92ZWQgPSBBcnJheVV0aWxzLlJlcGxhY2UodGhpcy5saXN0LCBvbGRDaGlsZCwgbmV3Q2hpbGQpO1xyXG5cclxuICAgICAgICBpZiAobW92ZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmFkZEhhbmRsZXIobmV3Q2hpbGQpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUhhbmRsZXIob2xkQ2hpbGQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGRlc3Ryb3lDaGlsZClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgb2xkQ2hpbGQuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgZ2l2ZW4gR2FtZSBPYmplY3QgaXMgYSBkaXJlY3QgY2hpbGQgb2YgdGhpcyBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBjaGVjayBkb2VzIG5vdCBzY2FuIG5lc3RlZCBDb250YWluZXJzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNleGlzdHNcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGNoaWxkIC0gVGhlIEdhbWUgT2JqZWN0IHRvIGNoZWNrIGZvciB3aXRoaW4gdGhpcyBDb250YWluZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgR2FtZSBPYmplY3QgaXMgYW4gaW1tZWRpYXRlIGNoaWxkIG9mIHRoaXMgQ29udGFpbmVyLCBvdGhlcndpc2UgZmFsc2UuXHJcbiAgICAgKi9cclxuICAgIGV4aXN0czogZnVuY3Rpb24gKGNoaWxkKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5saXN0LmluZGV4T2YoY2hpbGQpID4gLTEpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHByb3BlcnR5IHRvIHRoZSBnaXZlbiB2YWx1ZSBvbiBhbGwgR2FtZSBPYmplY3RzIGluIHRoaXMgQ29udGFpbmVyLlxyXG4gICAgICpcclxuICAgICAqIE9wdGlvbmFsbHkgeW91IGNhbiBzcGVjaWZ5IGEgc3RhcnQgYW5kIGVuZCBpbmRleC4gRm9yIGV4YW1wbGUgaWYgdGhpcyBDb250YWluZXIgaGFkIDEwMCBHYW1lIE9iamVjdHMsXHJcbiAgICAgKiBhbmQgeW91IHNldCBgc3RhcnRJbmRleGAgdG8gMCBhbmQgYGVuZEluZGV4YCB0byA1MCwgaXQgd291bGQgcmV0dXJuIG1hdGNoZXMgZnJvbSBvbmx5XHJcbiAgICAgKiB0aGUgZmlyc3QgNTAgR2FtZSBPYmplY3RzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNzZXRBbGxcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSB0aGF0IG11c3QgZXhpc3Qgb24gdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHthbnl9IHZhbHVlIC0gVGhlIHZhbHVlIHRvIGdldCB0aGUgcHJvcGVydHkgdG8uXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtzdGFydEluZGV4PTBdIC0gQW4gb3B0aW9uYWwgc3RhcnQgaW5kZXggdG8gc2VhcmNoIGZyb20uXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtlbmRJbmRleD1Db250YWluZXIubGVuZ3RoXSAtIEFuIG9wdGlvbmFsIGVuZCBpbmRleCB0byBzZWFyY2ggdXAgdG8gKGJ1dCBub3QgaW5jbHVkZWQpXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDb250YWluZXIgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldEFsbDogZnVuY3Rpb24gKHByb3BlcnR5LCB2YWx1ZSwgc3RhcnRJbmRleCwgZW5kSW5kZXgpXHJcbiAgICB7XHJcbiAgICAgICAgQXJyYXlVdGlscy5TZXRBbGwodGhpcy5saXN0LCBwcm9wZXJ0eSwgdmFsdWUsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGNhbGxiYWNrIEVhY2hDb250YWluZXJDYWxsYmFja1xyXG4gICAgICogQGdlbmVyaWMgSSAtIFtpdGVtXVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Kn0gaXRlbSAtIFRoZSBjaGlsZCBHYW1lIE9iamVjdCBvZiB0aGUgQ29udGFpbmVyLlxyXG4gICAgICogQHBhcmFtIHsuLi4qfSBbYXJnc10gLSBBZGRpdGlvbmFsIGFyZ3VtZW50cyB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBjYWxsYmFjaywgYWZ0ZXIgdGhlIGNoaWxkLlxyXG4gICAgICovXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXNzZXMgYWxsIEdhbWUgT2JqZWN0cyBpbiB0aGlzIENvbnRhaW5lciB0byB0aGUgZ2l2ZW4gY2FsbGJhY2suXHJcbiAgICAgKlxyXG4gICAgICogQSBjb3B5IG9mIHRoZSBDb250YWluZXIgaXMgbWFkZSBiZWZvcmUgcGFzc2luZyBlYWNoIGVudHJ5IHRvIHlvdXIgY2FsbGJhY2suXHJcbiAgICAgKiBUaGlzIHByb3RlY3RzIGFnYWluc3QgdGhlIGNhbGxiYWNrIGl0c2VsZiBtb2RpZnlpbmcgdGhlIENvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBJZiB5b3Uga25vdyBmb3Igc3VyZSB0aGF0IHRoZSBjYWxsYmFjayB3aWxsIG5vdCBjaGFuZ2UgdGhlIHNpemUgb2YgdGhpcyBDb250YWluZXJcclxuICAgICAqIHRoZW4geW91IGNhbiB1c2UgdGhlIG1vcmUgcGVyZm9ybWFudCBgQ29udGFpbmVyLml0ZXJhdGVgIG1ldGhvZCBpbnN0ZWFkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNlYWNoXHJcbiAgICAgKiBAc2luY2UgMy40LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIFRoZSBmdW5jdGlvbiB0byBjYWxsLlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtjb250ZXh0XSAtIFZhbHVlIHRvIHVzZSBhcyBgdGhpc2Agd2hlbiBleGVjdXRpbmcgY2FsbGJhY2suXHJcbiAgICAgKiBAcGFyYW0gey4uLip9IFthcmdzXSAtIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrLCBhZnRlciB0aGUgY2hpbGQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBDb250YWluZXIgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGVhY2g6IGZ1bmN0aW9uIChjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICB2YXIgYXJncyA9IFsgbnVsbCBdO1xyXG4gICAgICAgIHZhciBpO1xyXG4gICAgICAgIHZhciB0ZW1wID0gdGhpcy5saXN0LnNsaWNlKCk7XHJcbiAgICAgICAgdmFyIGxlbiA9IHRlbXAubGVuZ3RoO1xyXG5cclxuICAgICAgICBmb3IgKGkgPSAyOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgYXJncy5wdXNoKGFyZ3VtZW50c1tpXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBhcmdzWzBdID0gdGVtcFtpXTtcclxuXHJcbiAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGFzc2VzIGFsbCBHYW1lIE9iamVjdHMgaW4gdGhpcyBDb250YWluZXIgdG8gdGhlIGdpdmVuIGNhbGxiYWNrLlxyXG4gICAgICpcclxuICAgICAqIE9ubHkgdXNlIHRoaXMgbWV0aG9kIHdoZW4geW91IGFic29sdXRlbHkga25vdyB0aGF0IHRoZSBDb250YWluZXIgd2lsbCBub3QgYmUgbW9kaWZpZWQgZHVyaW5nXHJcbiAgICAgKiB0aGUgaXRlcmF0aW9uLCBpLmUuIGJ5IHJlbW92aW5nIG9yIGFkZGluZyB0byBpdHMgY29udGVudHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI2l0ZXJhdGVcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gVGhlIGZ1bmN0aW9uIHRvIGNhbGwuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW2NvbnRleHRdIC0gVmFsdWUgdG8gdXNlIGFzIGB0aGlzYCB3aGVuIGV4ZWN1dGluZyBjYWxsYmFjay5cclxuICAgICAqIEBwYXJhbSB7Li4uKn0gW2FyZ3NdIC0gQWRkaXRpb25hbCBhcmd1bWVudHMgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgY2FsbGJhY2ssIGFmdGVyIHRoZSBjaGlsZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIENvbnRhaW5lciBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgaXRlcmF0ZTogZnVuY3Rpb24gKGNhbGxiYWNrLCBjb250ZXh0KVxyXG4gICAge1xyXG4gICAgICAgIHZhciBhcmdzID0gWyBudWxsIF07XHJcbiAgICAgICAgdmFyIGk7XHJcblxyXG4gICAgICAgIGZvciAoaSA9IDI7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmxpc3QubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBhcmdzWzBdID0gdGhpcy5saXN0W2ldO1xyXG5cclxuICAgICAgICAgICAgY2FsbGJhY2suYXBwbHkoY29udGV4dCwgYXJncyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBzY3JvbGwgZmFjdG9yIG9mIHRoaXMgQ29udGFpbmVyIGFuZCBvcHRpb25hbGx5IGFsbCBvZiBpdHMgY2hpbGRyZW4uXHJcbiAgICAgKlxyXG4gICAgICogVGhlIHNjcm9sbCBmYWN0b3IgY29udHJvbHMgdGhlIGluZmx1ZW5jZSBvZiB0aGUgbW92ZW1lbnQgb2YgYSBDYW1lcmEgdXBvbiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIFdoZW4gYSBjYW1lcmEgc2Nyb2xscyBpdCB3aWxsIGNoYW5nZSB0aGUgbG9jYXRpb24gYXQgd2hpY2ggdGhpcyBHYW1lIE9iamVjdCBpcyByZW5kZXJlZCBvbi1zY3JlZW4uXHJcbiAgICAgKiBJdCBkb2VzIG5vdCBjaGFuZ2UgdGhlIEdhbWUgT2JqZWN0cyBhY3R1YWwgcG9zaXRpb24gdmFsdWVzLlxyXG4gICAgICpcclxuICAgICAqIEEgdmFsdWUgb2YgMSBtZWFucyBpdCB3aWxsIG1vdmUgZXhhY3RseSBpbiBzeW5jIHdpdGggYSBjYW1lcmEuXHJcbiAgICAgKiBBIHZhbHVlIG9mIDAgbWVhbnMgaXQgd2lsbCBub3QgbW92ZSBhdCBhbGwsIGV2ZW4gaWYgdGhlIGNhbWVyYSBtb3Zlcy5cclxuICAgICAqIE90aGVyIHZhbHVlcyBjb250cm9sIHRoZSBkZWdyZWUgdG8gd2hpY2ggdGhlIGNhbWVyYSBtb3ZlbWVudCBpcyBtYXBwZWQgdG8gdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogUGxlYXNlIGJlIGF3YXJlIHRoYXQgc2Nyb2xsIGZhY3RvciB2YWx1ZXMgb3RoZXIgdGhhbiAxIGFyZSBub3QgdGFrZW4gaW4gdG8gY29uc2lkZXJhdGlvbiB3aGVuXHJcbiAgICAgKiBjYWxjdWxhdGluZyBwaHlzaWNzIGNvbGxpc2lvbnMuIEJvZGllcyBhbHdheXMgY29sbGlkZSBiYXNlZCBvbiB0aGVpciB3b3JsZCBwb3NpdGlvbiwgYnV0IGNoYW5naW5nXHJcbiAgICAgKiB0aGUgc2Nyb2xsIGZhY3RvciBpcyBhIHZpc3VhbCBhZGp1c3RtZW50IHRvIHdoZXJlIHRoZSB0ZXh0dXJlcyBhcmUgcmVuZGVyZWQsIHdoaWNoIGNhbiBvZmZzZXRcclxuICAgICAqIHRoZW0gZnJvbSBwaHlzaWNzIGJvZGllcyBpZiBub3QgYWNjb3VudGVkIGZvciBpbiB5b3VyIGNvZGUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI3NldFNjcm9sbEZhY3RvclxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBzY3JvbGwgZmFjdG9yIG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3k9eF0gLSBUaGUgdmVydGljYWwgc2Nyb2xsIGZhY3RvciBvZiB0aGlzIEdhbWUgT2JqZWN0LiBJZiBub3Qgc2V0IGl0IHdpbGwgdXNlIHRoZSBgeGAgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt1cGRhdGVDaGlsZHJlbj1mYWxzZV0gLSBBcHBseSB0aGlzIHNjcm9sbEZhY3RvciB0byBhbGwgQ29udGFpbmVyIGNoaWxkcmVuIGFzIHdlbGw/XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0U2Nyb2xsRmFjdG9yOiBmdW5jdGlvbiAoeCwgeSwgdXBkYXRlQ2hpbGRyZW4pXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgeyB5ID0geDsgfVxyXG4gICAgICAgIGlmICh1cGRhdGVDaGlsZHJlbiA9PT0gdW5kZWZpbmVkKSB7IHVwZGF0ZUNoaWxkcmVuID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgdGhpcy5zY3JvbGxGYWN0b3JYID0geDtcclxuICAgICAgICB0aGlzLnNjcm9sbEZhY3RvclkgPSB5O1xyXG5cclxuICAgICAgICBpZiAodXBkYXRlQ2hpbGRyZW4pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBBcnJheVV0aWxzLlNldEFsbCh0aGlzLmxpc3QsICdzY3JvbGxGYWN0b3JYJywgeCk7XHJcbiAgICAgICAgICAgIEFycmF5VXRpbHMuU2V0QWxsKHRoaXMubGlzdCwgJ3Njcm9sbEZhY3RvclknLCB5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBudW1iZXIgb2YgR2FtZSBPYmplY3RzIGluc2lkZSB0aGlzIENvbnRhaW5lci5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI2xlbmd0aFxyXG4gICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICovXHJcbiAgICBsZW5ndGg6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubGlzdC5sZW5ndGg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBmaXJzdCBHYW1lIE9iamVjdCB3aXRoaW4gdGhlIENvbnRhaW5lciwgb3IgYG51bGxgIGlmIGl0IGlzIGVtcHR5LlxyXG4gICAgICpcclxuICAgICAqIFlvdSBjYW4gbW92ZSB0aGUgY3Vyc29yIGJ5IGNhbGxpbmcgYENvbnRhaW5lci5uZXh0YCBhbmQgYENvbnRhaW5lci5wcmV2aW91c2AuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkNvbnRhaW5lciNmaXJzdFxyXG4gICAgICogQHR5cGUgez9QaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH1cclxuICAgICAqIEByZWFkb25seVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKi9cclxuICAgIGZpcnN0OiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSAwO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubGlzdC5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5saXN0WzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGxhc3QgR2FtZSBPYmplY3Qgd2l0aGluIHRoZSBDb250YWluZXIsIG9yIGBudWxsYCBpZiBpdCBpcyBlbXB0eS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG1vdmUgdGhlIGN1cnNvciBieSBjYWxsaW5nIGBDb250YWluZXIubmV4dGAgYW5kIGBDb250YWluZXIucHJldmlvdXNgLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjbGFzdFxyXG4gICAgICogQHR5cGUgez9QaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH1cclxuICAgICAqIEByZWFkb25seVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKi9cclxuICAgIGxhc3Q6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubGlzdC5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gdGhpcy5saXN0Lmxlbmd0aCAtIDE7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubGlzdFt0aGlzLnBvc2l0aW9uXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IEdhbWUgT2JqZWN0IHdpdGhpbiB0aGUgQ29udGFpbmVyLCBvciBgbnVsbGAgaWYgaXQgaXMgZW1wdHkuXHJcbiAgICAgKlxyXG4gICAgICogWW91IGNhbiBtb3ZlIHRoZSBjdXJzb3IgYnkgY2FsbGluZyBgQ29udGFpbmVyLm5leHRgIGFuZCBgQ29udGFpbmVyLnByZXZpb3VzYC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyI25leHRcclxuICAgICAqIEB0eXBlIHs/UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9XHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICovXHJcbiAgICBuZXh0OiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBvc2l0aW9uIDwgdGhpcy5saXN0Lmxlbmd0aClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbisrO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxpc3RbdGhpcy5wb3NpdGlvbl07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgcHJldmlvdXMgR2FtZSBPYmplY3Qgd2l0aGluIHRoZSBDb250YWluZXIsIG9yIGBudWxsYCBpZiBpdCBpcyBlbXB0eS5cclxuICAgICAqXHJcbiAgICAgKiBZb3UgY2FuIG1vdmUgdGhlIGN1cnNvciBieSBjYWxsaW5nIGBDb250YWluZXIubmV4dGAgYW5kIGBDb250YWluZXIucHJldmlvdXNgLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjcHJldmlvdXNcclxuICAgICAqIEB0eXBlIHs/UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9XHJcbiAgICAgKiBAcmVhZG9ubHlcclxuICAgICAqIEBzaW5jZSAzLjQuMFxyXG4gICAgICovXHJcbiAgICBwcmV2aW91czoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA+IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24tLTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5saXN0W3RoaXMucG9zaXRpb25dO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIGRlc3Ryb3kgaGFuZGxlciwgY2FsbGVkIGFzIHBhcnQgb2YgdGhlIGRlc3Ryb3kgcHJvY2Vzcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjcHJlRGVzdHJveVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHNpbmNlIDMuOS4wXHJcbiAgICAgKi9cclxuICAgIHByZURlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVBbGwoISF0aGlzLmV4Y2x1c2l2ZSk7XHJcblxyXG4gICAgICAgIHRoaXMubG9jYWxUcmFuc2Zvcm0uZGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMudGVtcFRyYW5zZm9ybU1hdHJpeC5kZXN0cm95KCk7XHJcblxyXG4gICAgICAgIHRoaXMubGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuX2Rpc3BsYXlMaXN0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDb250YWluZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAYXV0aG9yICAgICAgIEZlbGlwZSBBbGZvbnNvIDxAYml0bmVuZmVyPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlcnMgdGhpcyBHYW1lIE9iamVjdCB3aXRoIHRoZSBDYW52YXMgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjcmVuZGVyQ2FudmFzXHJcbiAqIEBzaW5jZSAzLjQuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5DYW52YXMuQ2FudmFzUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIENhbnZhcyByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyfSBjb250YWluZXIgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgQ29udGFpbmVyQ2FudmFzUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIGNvbnRhaW5lciwgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB2YXIgY2hpbGRyZW4gPSBjb250YWluZXIubGlzdDtcclxuXHJcbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAwKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgdHJhbnNmb3JtTWF0cml4ID0gY29udGFpbmVyLmxvY2FsVHJhbnNmb3JtO1xyXG4gICAgXHJcbiAgICBpZiAocGFyZW50TWF0cml4KVxyXG4gICAge1xyXG4gICAgICAgIHRyYW5zZm9ybU1hdHJpeC5sb2FkSWRlbnRpdHkoKTtcclxuICAgICAgICB0cmFuc2Zvcm1NYXRyaXgubXVsdGlwbHkocGFyZW50TWF0cml4KTtcclxuICAgICAgICB0cmFuc2Zvcm1NYXRyaXgudHJhbnNsYXRlKGNvbnRhaW5lci54LCBjb250YWluZXIueSk7XHJcbiAgICAgICAgdHJhbnNmb3JtTWF0cml4LnJvdGF0ZShjb250YWluZXIucm90YXRpb24pO1xyXG4gICAgICAgIHRyYW5zZm9ybU1hdHJpeC5zY2FsZShjb250YWluZXIuc2NhbGVYLCBjb250YWluZXIuc2NhbGVZKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgICB0cmFuc2Zvcm1NYXRyaXguYXBwbHlJVFJTKGNvbnRhaW5lci54LCBjb250YWluZXIueSwgY29udGFpbmVyLnJvdGF0aW9uLCBjb250YWluZXIuc2NhbGVYLCBjb250YWluZXIuc2NhbGVZKTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgY29udGFpbmVySGFzQmxlbmRNb2RlID0gKGNvbnRhaW5lci5ibGVuZE1vZGUgIT09IC0xKTtcclxuXHJcbiAgICBpZiAoIWNvbnRhaW5lckhhc0JsZW5kTW9kZSlcclxuICAgIHtcclxuICAgICAgICAvLyAgSWYgQ29udGFpbmVyIGlzIFNLSVBfVEVTVCB0aGVuIHNldCBibGVuZCBtb2RlIHRvIGJlIE5vcm1hbFxyXG4gICAgICAgIHJlbmRlcmVyLnNldEJsZW5kTW9kZSgwKTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgYWxwaGEgPSBjb250YWluZXIuX2FscGhhO1xyXG4gICAgdmFyIHNjcm9sbEZhY3RvclggPSBjb250YWluZXIuc2Nyb2xsRmFjdG9yWDtcclxuICAgIHZhciBzY3JvbGxGYWN0b3JZID0gY29udGFpbmVyLnNjcm9sbEZhY3Rvclk7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbltpXTtcclxuXHJcbiAgICAgICAgaWYgKCFjaGlsZC53aWxsUmVuZGVyKGNhbWVyYSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBjaGlsZEFscGhhID0gY2hpbGQuYWxwaGE7XHJcbiAgICAgICAgdmFyIGNoaWxkU2Nyb2xsRmFjdG9yWCA9IGNoaWxkLnNjcm9sbEZhY3Rvclg7XHJcbiAgICAgICAgdmFyIGNoaWxkU2Nyb2xsRmFjdG9yWSA9IGNoaWxkLnNjcm9sbEZhY3Rvclk7XHJcblxyXG4gICAgICAgIGlmICghY29udGFpbmVySGFzQmxlbmRNb2RlICYmIGNoaWxkLmJsZW5kTW9kZSAhPT0gcmVuZGVyZXIuY3VycmVudEJsZW5kTW9kZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBJZiBDb250YWluZXIgZG9lc24ndCBoYXZlIGl0cyBvd24gYmxlbmQgbW9kZSwgdGhlbiBhIGNoaWxkIGNhbiBoYXZlIG9uZVxyXG4gICAgICAgICAgICByZW5kZXJlci5zZXRCbGVuZE1vZGUoY2hpbGQuYmxlbmRNb2RlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBTZXQgcGFyZW50IHZhbHVlc1xyXG4gICAgICAgIGNoaWxkLnNldFNjcm9sbEZhY3RvcihjaGlsZFNjcm9sbEZhY3RvclggKiBzY3JvbGxGYWN0b3JYLCBjaGlsZFNjcm9sbEZhY3RvclkgKiBzY3JvbGxGYWN0b3JZKTtcclxuICAgICAgICBjaGlsZC5zZXRBbHBoYShjaGlsZEFscGhhICogYWxwaGEpO1xyXG5cclxuICAgICAgICAvLyAgUmVuZGVyXHJcbiAgICAgICAgY2hpbGQucmVuZGVyQ2FudmFzKHJlbmRlcmVyLCBjaGlsZCwgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgdHJhbnNmb3JtTWF0cml4KTtcclxuXHJcbiAgICAgICAgLy8gIFJlc3RvcmUgb3JpZ2luYWwgdmFsdWVzXHJcbiAgICAgICAgY2hpbGQuc2V0QWxwaGEoY2hpbGRBbHBoYSk7XHJcbiAgICAgICAgY2hpbGQuc2V0U2Nyb2xsRmFjdG9yKGNoaWxkU2Nyb2xsRmFjdG9yWCwgY2hpbGRTY3JvbGxGYWN0b3JZKTtcclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gQ29udGFpbmVyQ2FudmFzUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAYXV0aG9yICAgICAgIEZlbGlwZSBBbGZvbnNvIDxAYml0bmVuZmVyPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEJ1aWxkR2FtZU9iamVjdCA9IHJlcXVpcmUoJy4uL0J1aWxkR2FtZU9iamVjdCcpO1xyXG52YXIgQ29udGFpbmVyID0gcmVxdWlyZSgnLi9Db250YWluZXInKTtcclxudmFyIEdhbWVPYmplY3RDcmVhdG9yID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdENyZWF0b3InKTtcclxudmFyIEdldEFkdmFuY2VkVmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0QWR2YW5jZWRWYWx1ZScpO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBuZXcgQ29udGFpbmVyIEdhbWUgT2JqZWN0IGFuZCByZXR1cm5zIGl0LlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBDb250YWluZXIgR2FtZSBPYmplY3QgaGFzIGJlZW4gYnVpbHQgaW50byBQaGFzZXIuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RDcmVhdG9yI2NvbnRhaW5lclxyXG4gKiBAc2luY2UgMy40LjBcclxuICpcclxuICogQHBhcmFtIHtvYmplY3R9IGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIGNyZWF0ZSBpdHNlbGYuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FkZFRvU2NlbmVdIC0gQWRkIHRoaXMgR2FtZSBPYmplY3QgdG8gdGhlIFNjZW5lIGFmdGVyIGNyZWF0aW5nIGl0PyBJZiBzZXQgdGhpcyBhcmd1bWVudCBvdmVycmlkZXMgdGhlIGBhZGRgIHByb3BlcnR5IGluIHRoZSBjb25maWcgb2JqZWN0LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RDcmVhdG9yLnJlZ2lzdGVyKCdjb250YWluZXInLCBmdW5jdGlvbiAoY29uZmlnLCBhZGRUb1NjZW5lKVxyXG57XHJcbiAgICBpZiAoY29uZmlnID09PSB1bmRlZmluZWQpIHsgY29uZmlnID0ge307IH1cclxuXHJcbiAgICB2YXIgeCA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAneCcsIDApO1xyXG4gICAgdmFyIHkgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ3knLCAwKTtcclxuXHJcbiAgICB2YXIgY29udGFpbmVyID0gbmV3IENvbnRhaW5lcih0aGlzLnNjZW5lLCB4LCB5KTtcclxuXHJcbiAgICBpZiAoYWRkVG9TY2VuZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAge1xyXG4gICAgICAgIGNvbmZpZy5hZGQgPSBhZGRUb1NjZW5lO1xyXG4gICAgfVxyXG5cclxuICAgIEJ1aWxkR2FtZU9iamVjdCh0aGlzLnNjZW5lLCBjb250YWluZXIsIGNvbmZpZyk7XHJcbiAgICBcclxuICAgIHJldHVybiBjb250YWluZXI7XHJcbn0pO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGF1dGhvciAgICAgICBGZWxpcGUgQWxmb25zbyA8QGJpdG5lbmZlcj5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDb250YWluZXIgPSByZXF1aXJlKCcuL0NvbnRhaW5lcicpO1xyXG52YXIgR2FtZU9iamVjdEZhY3RvcnkgPSByZXF1aXJlKCcuLi9HYW1lT2JqZWN0RmFjdG9yeScpO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBuZXcgQ29udGFpbmVyIEdhbWUgT2JqZWN0IGFuZCBhZGRzIGl0IHRvIHRoZSBTY2VuZS5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgQ29udGFpbmVyIEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0RmFjdG9yeSNjb250YWluZXJcclxuICogQHNpbmNlIDMuNC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IFtjaGlsZHJlbl0gLSBBbiBvcHRpb25hbCBhcnJheSBvZiBHYW1lIE9iamVjdHMgdG8gYWRkIHRvIHRoaXMgQ29udGFpbmVyLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29udGFpbmVyfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RGYWN0b3J5LnJlZ2lzdGVyKCdjb250YWluZXInLCBmdW5jdGlvbiAoeCwgeSwgY2hpbGRyZW4pXHJcbntcclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXlMaXN0LmFkZChuZXcgQ29udGFpbmVyKHRoaXMuc2NlbmUsIHgsIHksIGNoaWxkcmVuKSk7XHJcbn0pO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGF1dGhvciAgICAgICBGZWxpcGUgQWxmb25zbyA8QGJpdG5lbmZlcj5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxudmFyIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxuXHJcbmlmICh0eXBlb2YgV0VCR0xfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi9Db250YWluZXJXZWJHTFJlbmRlcmVyJyk7XHJcbn1cclxuXHJcbmlmICh0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL0NvbnRhaW5lckNhbnZhc1JlbmRlcmVyJyk7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIHJlbmRlcldlYkdMOiByZW5kZXJXZWJHTCxcclxuICAgIHJlbmRlckNhbnZhczogcmVuZGVyQ2FudmFzXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGF1dGhvciAgICAgICBGZWxpcGUgQWxmb25zbyA8QGJpdG5lbmZlcj5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXIjcmVuZGVyV2ViR0xcclxuICogQHNpbmNlIDMuNC4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLldlYkdMLldlYkdMUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIFdlYkdMIHJlbmRlcmVyLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db250YWluZXJ9IGNvbnRhaW5lciAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICovXHJcbnZhciBDb250YWluZXJXZWJHTFJlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBjb250YWluZXIsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgdmFyIGNoaWxkcmVuID0gY29udGFpbmVyLmxpc3Q7XHJcblxyXG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMClcclxuICAgIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHRyYW5zZm9ybU1hdHJpeCA9IGNvbnRhaW5lci5sb2NhbFRyYW5zZm9ybTtcclxuICAgIFxyXG4gICAgaWYgKHBhcmVudE1hdHJpeClcclxuICAgIHtcclxuICAgICAgICB0cmFuc2Zvcm1NYXRyaXgubG9hZElkZW50aXR5KCk7XHJcbiAgICAgICAgdHJhbnNmb3JtTWF0cml4Lm11bHRpcGx5KHBhcmVudE1hdHJpeCk7XHJcbiAgICAgICAgdHJhbnNmb3JtTWF0cml4LnRyYW5zbGF0ZShjb250YWluZXIueCwgY29udGFpbmVyLnkpO1xyXG4gICAgICAgIHRyYW5zZm9ybU1hdHJpeC5yb3RhdGUoY29udGFpbmVyLnJvdGF0aW9uKTtcclxuICAgICAgICB0cmFuc2Zvcm1NYXRyaXguc2NhbGUoY29udGFpbmVyLnNjYWxlWCwgY29udGFpbmVyLnNjYWxlWSk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgdHJhbnNmb3JtTWF0cml4LmFwcGx5SVRSUyhjb250YWluZXIueCwgY29udGFpbmVyLnksIGNvbnRhaW5lci5yb3RhdGlvbiwgY29udGFpbmVyLnNjYWxlWCwgY29udGFpbmVyLnNjYWxlWSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGNvbnRhaW5lckhhc0JsZW5kTW9kZSA9IChjb250YWluZXIuYmxlbmRNb2RlICE9PSAtMSk7XHJcblxyXG4gICAgaWYgKCFjb250YWluZXJIYXNCbGVuZE1vZGUpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIElmIENvbnRhaW5lciBpcyBTS0lQX1RFU1QgdGhlbiBzZXQgYmxlbmQgbW9kZSB0byBiZSBOb3JtYWxcclxuICAgICAgICByZW5kZXJlci5zZXRCbGVuZE1vZGUoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGFscGhhID0gY29udGFpbmVyLmFscGhhO1xyXG5cclxuICAgIHZhciBzY3JvbGxGYWN0b3JYID0gY29udGFpbmVyLnNjcm9sbEZhY3Rvclg7XHJcbiAgICB2YXIgc2Nyb2xsRmFjdG9yWSA9IGNvbnRhaW5lci5zY3JvbGxGYWN0b3JZO1xyXG5cclxuICAgIHZhciBsaXN0ID0gY2hpbGRyZW47XHJcbiAgICB2YXIgY2hpbGRDb3VudCA9IGNoaWxkcmVuLmxlbmd0aDtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkQ291bnQ7IGkrKylcclxuICAgIHtcclxuICAgICAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbltpXTtcclxuXHJcbiAgICAgICAgaWYgKCFjaGlsZC53aWxsUmVuZGVyKGNhbWVyYSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBjaGlsZEFscGhhVG9wTGVmdDtcclxuICAgICAgICB2YXIgY2hpbGRBbHBoYVRvcFJpZ2h0O1xyXG4gICAgICAgIHZhciBjaGlsZEFscGhhQm90dG9tTGVmdDtcclxuICAgICAgICB2YXIgY2hpbGRBbHBoYUJvdHRvbVJpZ2h0O1xyXG5cclxuICAgICAgICBpZiAoY2hpbGQuYWxwaGFUb3BMZWZ0ICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjaGlsZEFscGhhVG9wTGVmdCA9IGNoaWxkLmFscGhhVG9wTGVmdDtcclxuICAgICAgICAgICAgY2hpbGRBbHBoYVRvcFJpZ2h0ID0gY2hpbGQuYWxwaGFUb3BSaWdodDtcclxuICAgICAgICAgICAgY2hpbGRBbHBoYUJvdHRvbUxlZnQgPSBjaGlsZC5hbHBoYUJvdHRvbUxlZnQ7XHJcbiAgICAgICAgICAgIGNoaWxkQWxwaGFCb3R0b21SaWdodCA9IGNoaWxkLmFscGhhQm90dG9tUmlnaHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBjaGlsZEFscGhhID0gY2hpbGQuYWxwaGE7XHJcblxyXG4gICAgICAgICAgICBjaGlsZEFscGhhVG9wTGVmdCA9IGNoaWxkQWxwaGE7XHJcbiAgICAgICAgICAgIGNoaWxkQWxwaGFUb3BSaWdodCA9IGNoaWxkQWxwaGE7XHJcbiAgICAgICAgICAgIGNoaWxkQWxwaGFCb3R0b21MZWZ0ID0gY2hpbGRBbHBoYTtcclxuICAgICAgICAgICAgY2hpbGRBbHBoYUJvdHRvbVJpZ2h0ID0gY2hpbGRBbHBoYTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBjaGlsZFNjcm9sbEZhY3RvclggPSBjaGlsZC5zY3JvbGxGYWN0b3JYO1xyXG4gICAgICAgIHZhciBjaGlsZFNjcm9sbEZhY3RvclkgPSBjaGlsZC5zY3JvbGxGYWN0b3JZO1xyXG5cclxuICAgICAgICBpZiAoIWNvbnRhaW5lckhhc0JsZW5kTW9kZSAmJiBjaGlsZC5ibGVuZE1vZGUgIT09IHJlbmRlcmVyLmN1cnJlbnRCbGVuZE1vZGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgSWYgQ29udGFpbmVyIGRvZXNuJ3QgaGF2ZSBpdHMgb3duIGJsZW5kIG1vZGUsIHRoZW4gYSBjaGlsZCBjYW4gaGF2ZSBvbmVcclxuICAgICAgICAgICAgcmVuZGVyZXIuc2V0QmxlbmRNb2RlKGNoaWxkLmJsZW5kTW9kZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgbWFzayA9IGNoaWxkLm1hc2s7XHJcblxyXG4gICAgICAgIGlmIChtYXNrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbWFzay5wcmVSZW5kZXJXZWJHTChyZW5kZXJlciwgY2hpbGQsIGNhbWVyYSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgdHlwZSA9IGNoaWxkLnR5cGU7XHJcblxyXG4gICAgICAgIGlmICh0eXBlICE9PSByZW5kZXJlci5jdXJyZW50VHlwZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJlbmRlcmVyLm5ld1R5cGUgPSB0cnVlO1xyXG4gICAgICAgICAgICByZW5kZXJlci5jdXJyZW50VHlwZSA9IHR5cGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZW5kZXJlci5uZXh0VHlwZU1hdGNoID0gKGkgPCBjaGlsZENvdW50IC0gMSkgPyAobGlzdFtpICsgMV0udHlwZSA9PT0gcmVuZGVyZXIuY3VycmVudFR5cGUpIDogZmFsc2U7XHJcblxyXG4gICAgICAgIC8vICBTZXQgcGFyZW50IHZhbHVlc1xyXG4gICAgICAgIGNoaWxkLnNldFNjcm9sbEZhY3RvcihjaGlsZFNjcm9sbEZhY3RvclggKiBzY3JvbGxGYWN0b3JYLCBjaGlsZFNjcm9sbEZhY3RvclkgKiBzY3JvbGxGYWN0b3JZKTtcclxuXHJcbiAgICAgICAgY2hpbGQuc2V0QWxwaGEoY2hpbGRBbHBoYVRvcExlZnQgKiBhbHBoYSwgY2hpbGRBbHBoYVRvcFJpZ2h0ICogYWxwaGEsIGNoaWxkQWxwaGFCb3R0b21MZWZ0ICogYWxwaGEsIGNoaWxkQWxwaGFCb3R0b21SaWdodCAqIGFscGhhKTtcclxuXHJcbiAgICAgICAgLy8gIFJlbmRlclxyXG4gICAgICAgIGNoaWxkLnJlbmRlcldlYkdMKHJlbmRlcmVyLCBjaGlsZCwgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgdHJhbnNmb3JtTWF0cml4KTtcclxuXHJcbiAgICAgICAgLy8gIFJlc3RvcmUgb3JpZ2luYWwgdmFsdWVzXHJcblxyXG4gICAgICAgIGNoaWxkLnNldEFscGhhKGNoaWxkQWxwaGFUb3BMZWZ0LCBjaGlsZEFscGhhVG9wUmlnaHQsIGNoaWxkQWxwaGFCb3R0b21MZWZ0LCBjaGlsZEFscGhhQm90dG9tUmlnaHQpO1xyXG5cclxuICAgICAgICBjaGlsZC5zZXRTY3JvbGxGYWN0b3IoY2hpbGRTY3JvbGxGYWN0b3JYLCBjaGlsZFNjcm9sbEZhY3RvclkpO1xyXG5cclxuICAgICAgICBpZiAobWFzaylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG1hc2sucG9zdFJlbmRlcldlYkdMKHJlbmRlcmVyLCBjYW1lcmEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmVuZGVyZXIubmV3VHlwZSA9IGZhbHNlO1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDb250YWluZXJXZWJHTFJlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBQaGFzZXIgQmxlbmQgTW9kZXMgdG8gQ1NTIEJsZW5kIE1vZGVzIE1hcC5cclxuICogXHJcbiAqIEBuYW1lIFBoYXNlci5DU1NCbGVuZE1vZGVzXHJcbiAqIEBlbnVtIHtzdHJpbmd9XHJcbiAqIEBtZW1iZXJvZiBQaGFzZXJcclxuICogQHJlYWRvbmx5XHJcbiAqIEBzaW5jZSAzLjEyLjBcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFtcclxuICAgICdub3JtYWwnLFxyXG4gICAgJ211bHRpcGx5JyxcclxuICAgICdtdWx0aXBseScsXHJcbiAgICAnc2NyZWVuJyxcclxuICAgICdvdmVybGF5JyxcclxuICAgICdkYXJrZW4nLFxyXG4gICAgJ2xpZ2h0ZW4nLFxyXG4gICAgJ2NvbG9yLWRvZGdlJyxcclxuICAgICdjb2xvci1idXJuJyxcclxuICAgICdoYXJkLWxpZ2h0JyxcclxuICAgICdzb2Z0LWxpZ2h0JyxcclxuICAgICdkaWZmZXJlbmNlJyxcclxuICAgICdleGNsdXNpb24nLFxyXG4gICAgJ2h1ZScsXHJcbiAgICAnc2F0dXJhdGlvbicsXHJcbiAgICAnY29sb3InLFxyXG4gICAgJ2x1bWlub3NpdHknXHJcbl07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIENvbXBvbmVudHMgPSByZXF1aXJlKCcuLi9jb21wb25lbnRzJyk7XHJcbnZhciBET01FbGVtZW50UmVuZGVyID0gcmVxdWlyZSgnLi9ET01FbGVtZW50UmVuZGVyJyk7XHJcbnZhciBHYW1lT2JqZWN0ID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdCcpO1xyXG52YXIgSXNQbGFpbk9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9Jc1BsYWluT2JqZWN0Jyk7XHJcbnZhciBSZW1vdmVGcm9tRE9NID0gcmVxdWlyZSgnLi4vLi4vZG9tL1JlbW92ZUZyb21ET00nKTtcclxudmFyIFNDRU5FX0VWRU5UUyA9IHJlcXVpcmUoJy4uLy4uL3NjZW5lL2V2ZW50cycpO1xyXG52YXIgVmVjdG9yNCA9IHJlcXVpcmUoJy4uLy4uL21hdGgvVmVjdG9yNCcpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogRE9NIEVsZW1lbnQgR2FtZSBPYmplY3RzIGFyZSBhIHdheSB0byBjb250cm9sIGFuZCBtYW5pcHVsYXRlIEhUTUwgRWxlbWVudHMgb3ZlciB0aGUgdG9wIG9mIHlvdXIgZ2FtZS5cclxuICogXHJcbiAqIEluIG9yZGVyIGZvciBET00gRWxlbWVudHMgdG8gZGlzcGxheSB5b3UgaGF2ZSB0byBlbmFibGUgdGhlbSBieSBhZGRpbmcgdGhlIGZvbGxvd2luZyB0byB5b3VyIGdhbWVcclxuICogY29uZmlndXJhdGlvbiBvYmplY3Q6XHJcbiAqIFxyXG4gKiBgYGBqYXZhc2NyaXB0XHJcbiAqIGRvbSB7XHJcbiAqICAgY3JlYXRlQ29udGFpbmVyOiB0cnVlXHJcbiAqIH1cclxuICogYGBgXHJcbiAqIFxyXG4gKiBXaGVuIHRoaXMgaXMgYWRkZWQsIFBoYXNlciB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgRE9NIENvbnRhaW5lciBkaXYgdGhhdCBpcyBwb3NpdGlvbmVkIG92ZXIgdGhlIHRvcFxyXG4gKiBvZiB0aGUgZ2FtZSBjYW52YXMuIFRoaXMgZGl2IGlzIHNpemVkIHRvIG1hdGNoIHRoZSBjYW52YXMsIGFuZCBpZiB0aGUgY2FudmFzIHNpemUgY2hhbmdlcywgYXMgYSByZXN1bHQgb2ZcclxuICogc2V0dGluZ3Mgd2l0aGluIHRoZSBTY2FsZSBNYW5hZ2VyLCB0aGUgZG9tIGNvbnRhaW5lciBpcyByZXNpemVkIGFjY29yZGluZ2x5LlxyXG4gKiBcclxuICogWW91IGNhbiBjcmVhdGUgYSBET00gRWxlbWVudCBieSBlaXRoZXIgcGFzc2luZyBpbiBET01TdHJpbmdzLCBvciBieSBwYXNzaW5nIGluIGEgcmVmZXJlbmNlIHRvIGFuIGV4aXN0aW5nXHJcbiAqIEVsZW1lbnQgdGhhdCB5b3Ugd2lzaCB0byBiZSBwbGFjZWQgdW5kZXIgdGhlIGNvbnRyb2wgb2YgUGhhc2VyLiBGb3IgZXhhbXBsZTpcclxuICogXHJcbiAqIGBgYGphdmFzY3JpcHRcclxuICogdGhpcy5hZGQuZG9tKHgsIHksICdkaXYnLCAnYmFja2dyb3VuZC1jb2xvcjogbGltZTsgd2lkdGg6IDIyMHB4OyBoZWlnaHQ6IDEwMHB4OyBmb250OiA0OHB4IEFyaWFsJywgJ1BoYXNlcicpO1xyXG4gKiBgYGBcclxuICogXHJcbiAqIFRoZSBhYm92ZSBjb2RlIHdpbGwgaW5zZXJ0IGEgZGl2IGVsZW1lbnQgaW50byB0aGUgRE9NIENvbnRhaW5lciBhdCB0aGUgZ2l2ZW4geC95IGNvb3JkaW5hdGUuIFRoZSBET01TdHJpbmcgaW5cclxuICogdGhlIDR0aCBhcmd1bWVudCBzZXRzIHRoZSBpbml0aWFsIENTUyBzdHlsZSBvZiB0aGUgZGl2IGFuZCB0aGUgZmluYWwgYXJndW1lbnQgaXMgdGhlIGlubmVyIHRleHQuIEluIHRoaXMgY2FzZSxcclxuICogaXQgd2lsbCBjcmVhdGUgYSBsaW1lIGNvbG9yZWQgZGl2IHRoYXQgaXMgMjIwcHggYnkgMTAwcHggaW4gc2l6ZSB3aXRoIHRoZSB0ZXh0IFBoYXNlciBpbiBpdCwgaW4gYW4gQXJpYWwgZm9udC5cclxuICogXHJcbiAqIFlvdSBzaG91bGQgbmVhcmx5IGFsd2F5cywgd2l0aG91dCBleGNlcHRpb24sIHVzZSBleHBsaWNpdGx5IHNpemVkIEhUTUwgRWxlbWVudHMsIGluIG9yZGVyIHRvIGZ1bGx5IGNvbnRyb2xcclxuICogYWxpZ25tZW50IGFuZCBwb3NpdGlvbmluZyBvZiB0aGUgZWxlbWVudHMgbmV4dCB0byByZWd1bGFyIGdhbWUgY29udGVudC5cclxuICogXHJcbiAqIFJhdGhlciB0aGFuIHNwZWNpZnkgdGhlIENTUyBhbmQgSFRNTCBkaXJlY3RseSB5b3UgY2FuIHVzZSB0aGUgYGxvYWQuaHRtbGAgRmlsZSBMb2FkZXIgdG8gbG9hZCBpdCBpbnRvIHRoZVxyXG4gKiBjYWNoZSBhbmQgdGhlbiB1c2UgdGhlIGBjcmVhdGVGcm9tQ2FjaGVgIG1ldGhvZCBpbnN0ZWFkLiBZb3UgY2FuIGFsc28gdXNlIGBjcmVhdGVGcm9tSFRNTGAgYW5kIHZhcmlvdXMgb3RoZXJcclxuICogbWV0aG9kcyBhdmFpbGFibGUgaW4gdGhpcyBjbGFzcyB0byBoZWxwIGNvbnN0cnVjdCB5b3VyIGVsZW1lbnRzLlxyXG4gKiBcclxuICogT25jZSB0aGUgZWxlbWVudCBoYXMgYmVlbiBjcmVhdGVkIHlvdSBjYW4gdGhlbiBjb250cm9sIGl0IGxpa2UgeW91IHdvdWxkIGFueSBvdGhlciBHYW1lIE9iamVjdC4gWW91IGNhbiBzZXQgaXRzXHJcbiAqIHBvc2l0aW9uLCBzY2FsZSwgcm90YXRpb24sIGFscGhhIGFuZCBvdGhlciBwcm9wZXJ0aWVzLiBJdCB3aWxsIG1vdmUgYXMgdGhlIG1haW4gU2NlbmUgQ2FtZXJhIG1vdmVzIGFuZCBiZSBjbGlwcGVkXHJcbiAqIGF0IHRoZSBlZGdlIG9mIHRoZSBjYW52YXMuIEl0J3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHNvbWUgbGltaXRhdGlvbnMgb2YgRE9NIEVsZW1lbnRzOiBUaGUgb2J2aW91cyBvbmUgaXMgdGhhdFxyXG4gKiB0aGV5IGFwcGVhciBhYm92ZSBvciBiZWxvdyB5b3VyIGdhbWUgY2FudmFzLiBZb3UgY2Fubm90IGJsZW5kIHRoZW0gaW50byB0aGUgZGlzcGxheSBsaXN0LCBtZWFuaW5nIHlvdSBjYW5ub3QgaGF2ZVxyXG4gKiBhIERPTSBFbGVtZW50LCB0aGVuIGEgU3ByaXRlLCB0aGVuIGFub3RoZXIgRE9NIEVsZW1lbnQgYmVoaW5kIGl0LlxyXG4gKiBcclxuICogVGhleSBhbHNvIGNhbm5vdCBiZSBlbmFibGVkIGZvciBpbnB1dC4gVG8gZG8gdGhhdCwgeW91IGhhdmUgdG8gdXNlIHRoZSBgYWRkTGlzdGVuZXJgIG1ldGhvZCB0byBhZGQgbmF0aXZlIGV2ZW50XHJcbiAqIGxpc3RlbmVycyBkaXJlY3RseS4gVGhlIGZpbmFsIGxpbWl0YXRpb24gaXMgdG8gZG8gd2l0aCBjYW1lcmFzLiBUaGUgRE9NIENvbnRhaW5lciBpcyBzaXplZCB0byBtYXRjaCB0aGUgZ2FtZSBjYW52YXNcclxuICogZW50aXJlbHkgYW5kIGNsaXBwZWQgYWNjb3JkaW5nbHkuIERPTSBFbGVtZW50cyByZXNwZWN0IGNhbWVyYSBzY3JvbGxpbmcgYW5kIHNjcm9sbEZhY3RvciBzZXR0aW5ncywgYnV0IGlmIHlvdVxyXG4gKiBjaGFuZ2UgdGhlIHNpemUgb2YgdGhlIGNhbWVyYSBzbyBpdCBubyBsb25nZXIgbWF0Y2hlcyB0aGUgc2l6ZSBvZiB0aGUgY2FudmFzLCB0aGV5IHdvbid0IGJlIGNsaXBwZWQgYWNjb3JkaW5nbHkuXHJcbiAqIFxyXG4gKiBBbHNvLCBhbGwgRE9NIEVsZW1lbnRzIGFyZSBpbnNlcnRlZCBpbnRvIHRoZSBzYW1lIERPTSBDb250YWluZXIsIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggU2NlbmUgdGhleSBhcmUgY3JlYXRlZCBpbi5cclxuICogXHJcbiAqIERPTSBFbGVtZW50cyBhcmUgYSBwb3dlcmZ1bCB3YXkgdG8gYWxpZ24gbmF0aXZlIEhUTUwgd2l0aCB5b3VyIFBoYXNlciBHYW1lIE9iamVjdHMuIEZvciBleGFtcGxlLCB5b3UgY2FuIGluc2VydFxyXG4gKiBhIGxvZ2luIGZvcm0gZm9yIGEgbXVsdGlwbGF5ZXIgZ2FtZSBkaXJlY3RseSBpbnRvIHlvdXIgdGl0bGUgc2NyZWVuLiBPciBhIHRleHQgaW5wdXQgYm94IGZvciBhIGhpZ2hzY29yZSB0YWJsZS5cclxuICogT3IgYSBiYW5uZXIgYWQgZnJvbSBhIDNyZCBwYXJ0eSBzZXJ2aWNlLiBPciBwZXJoYXBzIHlvdSdkIGxpa2UgdG8gdXNlIHRoZW0gZm9yIGhpZ2ggcmVzb2x1dGlvbiB0ZXh0IGRpc3BsYXkgYW5kXHJcbiAqIFVJLiBUaGUgY2hvaWNlIGlzIHVwIHRvIHlvdSwganVzdCByZW1lbWJlciB0aGF0IHlvdSdyZSBkZWFsaW5nIHdpdGggc3RhbmRhcmQgSFRNTCBhbmQgQ1NTIGZsb2F0aW5nIG92ZXIgdGhlIHRvcFxyXG4gKiBvZiB5b3VyIGdhbWUsIGFuZCBzaG91bGQgdHJlYXQgaXQgYWNjb3JkaW5nbHkuXHJcbiAqXHJcbiAqIEBjbGFzcyBET01FbGVtZW50XHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0XHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjE3LjBcclxuICpcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQWxwaGFTaW5nbGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQmxlbmRNb2RlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkRlcHRoXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLk9yaWdpblxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TY3JvbGxGYWN0b3JcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlZpc2libGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gQSBHYW1lIE9iamVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIFNjZW5lIGF0IGEgdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBET00gRWxlbWVudCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIERPTSBFbGVtZW50IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHsoRWxlbWVudHxzdHJpbmcpfSBbZWxlbWVudF0gLSBBbiBleGlzdGluZyBET00gZWxlbWVudCwgb3IgYSBzdHJpbmcuIElmIGEgc3RyaW5nIHN0YXJ0aW5nIHdpdGggYSAjIGl0IHdpbGwgZG8gYSBgZ2V0RWxlbWVudEJ5SWRgIGxvb2stdXAgb24gdGhlIHN0cmluZyAobWludXMgdGhlIGhhc2gpLiBXaXRob3V0IGEgaGFzaCwgaXQgcmVwcmVzZW50cyB0aGUgdHlwZSBvZiBlbGVtZW50IHRvIGNyZWF0ZSwgaS5lLiAnZGl2Jy5cclxuICogQHBhcmFtIHsoc3RyaW5nfGFueSl9IFtzdHlsZV0gLSBJZiBhIHN0cmluZywgd2lsbCBiZSBzZXQgZGlyZWN0bHkgYXMgdGhlIGVsZW1lbnRzIGBzdHlsZWAgcHJvcGVydHkgdmFsdWUuIElmIGEgcGxhaW4gb2JqZWN0LCB3aWxsIGJlIGl0ZXJhdGVkIGFuZCB0aGUgdmFsdWVzIHRyYW5zZmVycmVkLiBJbiBib3RoIGNhc2VzIHRoZSB2YWx1ZXMgcmVwbGFjaW5nIHdoYXRldmVyIENTUyBzdHlsZXMgbWF5IGhhdmUgYmVlbiBwcmV2aW91c2x5IHNldC5cclxuICogQHBhcmFtIHtzdHJpbmd9IFtpbm5lclRleHRdIC0gSWYgZ2l2ZW4sIHdpbGwgYmUgc2V0IGRpcmVjdGx5IGFzIHRoZSBlbGVtZW50cyBgaW5uZXJUZXh0YCBwcm9wZXJ0eSB2YWx1ZSwgcmVwbGFjaW5nIHdoYXRldmVyIHdhcyB0aGVyZSBiZWZvcmUuXHJcbiAqL1xyXG52YXIgRE9NRWxlbWVudCA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogR2FtZU9iamVjdCxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBDb21wb25lbnRzLkFscGhhU2luZ2xlLFxyXG4gICAgICAgIENvbXBvbmVudHMuQmxlbmRNb2RlLFxyXG4gICAgICAgIENvbXBvbmVudHMuRGVwdGgsXHJcbiAgICAgICAgQ29tcG9uZW50cy5PcmlnaW4sXHJcbiAgICAgICAgQ29tcG9uZW50cy5TY3JvbGxGYWN0b3IsXHJcbiAgICAgICAgQ29tcG9uZW50cy5UcmFuc2Zvcm0sXHJcbiAgICAgICAgQ29tcG9uZW50cy5WaXNpYmxlLFxyXG4gICAgICAgIERPTUVsZW1lbnRSZW5kZXJcclxuICAgIF0sXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBET01FbGVtZW50IChzY2VuZSwgeCwgeSwgZWxlbWVudCwgc3R5bGUsIGlubmVyVGV4dClcclxuICAgIHtcclxuICAgICAgICBHYW1lT2JqZWN0LmNhbGwodGhpcywgc2NlbmUsICdET01FbGVtZW50Jyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgRE9NIENvbnRhaW5lciB0aGF0IHRoZSBHYW1lIGluc3RhbmNlIGNyZWF0ZWQgd2hlbiBpdCBzdGFydGVkLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I3BhcmVudFxyXG4gICAgICAgICAqIEB0eXBlIHtFbGVtZW50fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBhcmVudCA9IHNjZW5lLnN5cy5nYW1lLmRvbUNvbnRhaW5lcjtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIEhUTUwgQ2FjaGUuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkRPTUVsZW1lbnQjY2FjaGVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkNhY2hlLkJhc2VDYWNoZX1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jYWNoZSA9IHNjZW5lLnN5cy5jYWNoZS5odG1sO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgYWN0dWFsIERPTSBFbGVtZW50IHRoYXQgdGhpcyBHYW1lIE9iamVjdCBpcyBib3VuZCB0by4gRm9yIGV4YW1wbGUsIGlmIHlvdSd2ZSBjcmVhdGVkIGEgYDxkaXY+YFxyXG4gICAgICAgICAqIHRoZW4gdGhpcyBwcm9wZXJ0eSBpcyBhIGRpcmVjdCByZWZlcmVuY2UgdG8gdGhhdCBlbGVtZW50IHdpdGhpbiB0aGUgZG9tLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I25vZGVcclxuICAgICAgICAgKiBAdHlwZSB7RWxlbWVudH1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ub2RlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBCeSBkZWZhdWx0IGEgRE9NIEVsZW1lbnQgd2lsbCBoYXZlIGl0cyB0cmFuc2Zvcm0sIGRpc3BsYXksIG9wYWNpdHksIHpJbmRleCBhbmQgYmxlbmQgbW9kZSBwcm9wZXJ0aWVzXHJcbiAgICAgICAgICogdXBkYXRlZCB3aGVuIGl0cyByZW5kZXJlZC4gSWYsIGZvciBzb21lIHJlYXNvbiwgeW91IGRvbid0IHdhbnQgYW55IG9mIHRoZXNlIGNoYW5nZWQgb3RoZXIgdGhhbiB0aGVcclxuICAgICAgICAgKiBDU1MgdHJhbnNmb3JtLCB0aGVuIHNldCB0aGlzIGZsYWcgdG8gYHRydWVgLiBXaGVuIGB0cnVlYCBvbmx5IHRoZSBDU1MgVHJhbnNmb3JtIGlzIGFwcGxpZWQgYW5kIGl0J3NcclxuICAgICAgICAgKiB1cCB0byB5b3UgdG8ga2VlcCB0cmFjayBvZiBhbmQgc2V0IHRoZSBvdGhlciBwcm9wZXJ0aWVzIGFzIHJlcXVpcmVkLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIFRoaXMgY2FuIGJlIGhhbmR5IGlmLCBmb3IgZXhhbXBsZSwgeW91J3ZlIGEgbmVzdGVkIERPTSBFbGVtZW50IGFuZCB5b3UgZG9uJ3Qgd2FudCB0aGUgb3BhY2l0eSB0byBiZVxyXG4gICAgICAgICAqIHBpY2tlZC11cCBieSBhbnkgb2YgaXRzIGNoaWxkcmVuLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I3RyYW5zZm9ybU9ubHlcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy50cmFuc2Zvcm1Pbmx5ID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBhbmdsZSwgaW4gcmFkaWFucywgYnkgd2hpY2ggdG8gc2tldyB0aGUgRE9NIEVsZW1lbnQgb24gdGhlIGhvcml6b250YWwgYXhpcy5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvdHJhbnNmb3JtXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkRPTUVsZW1lbnQjc2tld1hcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNrZXdYID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGFuZ2xlLCBpbiByYWRpYW5zLCBieSB3aGljaCB0byBza2V3IHRoZSBET00gRWxlbWVudCBvbiB0aGUgdmVydGljYWwgYXhpcy5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvdHJhbnNmb3JtXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkRPTUVsZW1lbnQjc2tld1lcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNrZXdZID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBWZWN0b3I0IHRoYXQgY29udGFpbnMgdGhlIDNEIHJvdGF0aW9uIG9mIHRoaXMgRE9NIEVsZW1lbnQgYXJvdW5kIGEgZml4ZWQgYXhpcyBpbiAzRCBzcGFjZS5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBBbGwgdmFsdWVzIGluIHRoZSBWZWN0b3I0IGFyZSB0cmVhdGVkIGFzIGRlZ3JlZXMsIHVubGVzcyB0aGUgYHJvdGF0ZTNkQW5nbGVgIHByb3BlcnR5IGlzIGNoYW5nZWQuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogRm9yIG1vcmUgZGV0YWlscyBzZWUgdGhlIGZvbGxvd2luZyBNRE4gcGFnZTpcclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvdHJhbnNmb3JtLWZ1bmN0aW9uL3JvdGF0ZTNkXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkRPTUVsZW1lbnQjcm90YXRlM2RcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLk1hdGguVmVjdG9yNH1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yb3RhdGUzZCA9IG5ldyBWZWN0b3I0KCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB1bml0IHRoYXQgcmVwcmVzZW50cyB0aGUgM0Qgcm90YXRpb24gdmFsdWVzLiBCeSBkZWZhdWx0IHRoaXMgaXMgYGRlZ2AgZm9yIGRlZ3JlZXMsIGJ1dCBjYW5cclxuICAgICAgICAgKiBiZSBjaGFuZ2VkIHRvIGFueSBzdXBwb3J0ZWQgdW5pdC4gU2VlIHRoaXMgcGFnZSBmb3IgZnVydGhlciBkZXRhaWxzOlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy90cmFuc2Zvcm0tZnVuY3Rpb24vcm90YXRlM2RcclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuRE9NRWxlbWVudCNyb3RhdGUzZEFuZ2xlXHJcbiAgICAgICAgICogQHR5cGUge3N0cmluZ31cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yb3RhdGUzZEFuZ2xlID0gJ2RlZyc7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBuYXRpdmUgKHVuLXNjYWxlZCkgd2lkdGggb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBGb3IgYSBET00gRWxlbWVudCB0aGlzIHByb3BlcnR5IGlzIHJlYWQtb25seS5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBUaGUgcHJvcGVydHkgYGRpc3BsYXlXaWR0aGAgaG9sZHMgdGhlIGNvbXB1dGVkIGJvdW5kcyBvZiB0aGlzIERPTSBFbGVtZW50LCBmYWN0b3JpbmcgaW4gc2NhbGluZy5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuRE9NRWxlbWVudCN3aWR0aFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMud2lkdGggPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbmF0aXZlICh1bi1zY2FsZWQpIGhlaWdodCBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEZvciBhIERPTSBFbGVtZW50IHRoaXMgcHJvcGVydHkgaXMgcmVhZC1vbmx5LlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIFRoZSBwcm9wZXJ0eSBgZGlzcGxheUhlaWdodGAgaG9sZHMgdGhlIGNvbXB1dGVkIGJvdW5kcyBvZiB0aGlzIERPTSBFbGVtZW50LCBmYWN0b3JpbmcgaW4gc2NhbGluZy5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuRE9NRWxlbWVudCNoZWlnaHRcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmhlaWdodCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjb21wdXRlZCBkaXNwbGF5IHdpZHRoIG9mIHRoaXMgR2FtZSBPYmplY3QsIGJhc2VkIG9uIHRoZSBgZ2V0Qm91bmRpbmdDbGllbnRSZWN0YCBET00gY2FsbC5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBUaGUgcHJvcGVydHkgYHdpZHRoYCBob2xkcyB0aGUgdW4tc2NhbGVkIHdpZHRoIG9mIHRoaXMgRE9NIEVsZW1lbnQuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkRPTUVsZW1lbnQjZGlzcGxheVdpZHRoXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kaXNwbGF5V2lkdGggPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgY29tcHV0ZWQgZGlzcGxheSBoZWlnaHQgb2YgdGhpcyBHYW1lIE9iamVjdCwgYmFzZWQgb24gdGhlIGBnZXRCb3VuZGluZ0NsaWVudFJlY3RgIERPTSBjYWxsLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIFRoZSBwcm9wZXJ0eSBgaGVpZ2h0YCBob2xkcyB0aGUgdW4tc2NhbGVkIGhlaWdodCBvZiB0aGlzIERPTSBFbGVtZW50LlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I2Rpc3BsYXlIZWlnaHRcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRpc3BsYXlIZWlnaHQgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJbnRlcm5hbCBuYXRpdmUgZXZlbnQgaGFuZGxlci5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuRE9NRWxlbWVudCNoYW5kbGVyXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmhhbmRsZXIgPSB0aGlzLmRpc3BhdGNoTmF0aXZlRXZlbnQuYmluZCh0aGlzKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvbih4LCB5KTtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBlbGVtZW50ID09PSAnc3RyaW5nJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBoYXNoP1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFswXSA9PT0gJyMnKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldEVsZW1lbnQoZWxlbWVudC5zdWJzdHIoMSksIHN0eWxlLCBpbm5lclRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KGVsZW1lbnQsIHN0eWxlLCBpbm5lclRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNldEVsZW1lbnQoZWxlbWVudCwgc3R5bGUsIGlubmVyVGV4dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uKFNDRU5FX0VWRU5UUy5TTEVFUCwgdGhpcy5oYW5kbGVTY2VuZUV2ZW50LCB0aGlzKTtcclxuICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uKFNDRU5FX0VWRU5UUy5XQUtFLCB0aGlzLmhhbmRsZVNjZW5lRXZlbnQsIHRoaXMpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgYSBTY2VuZSBTbGVlcCBhbmQgV2FrZSBldmVudC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I2hhbmRsZVNjZW5lRXZlbnRcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4yMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuU2NlbmVzLlN5c3RlbXN9IHN5cyAtIFRoZSBTY2VuZSBTeXN0ZW1zLlxyXG4gICAgICovXHJcbiAgICBoYW5kbGVTY2VuZUV2ZW50OiBmdW5jdGlvbiAoc3lzKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBub2RlID0gdGhpcy5ub2RlO1xyXG4gICAgICAgIHZhciBzdHlsZSA9IG5vZGUuc3R5bGU7XHJcbiAgICBcclxuICAgICAgICBpZiAobm9kZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHN0eWxlLmRpc3BsYXkgPSAoc3lzLnNldHRpbmdzLnZpc2libGUpID8gJ2Jsb2NrJyA6ICdub25lJztcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgc2tldyB2YWx1ZXMgb2YgdGhpcyBET00gRWxlbWVudC5cclxuICAgICAqIFxyXG4gICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvdHJhbnNmb3JtXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuRE9NRWxlbWVudCNzZXRTa2V3XHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGFuZ2xlLCBpbiByYWRpYW5zLCBieSB3aGljaCB0byBza2V3IHRoZSBET00gRWxlbWVudCBvbiB0aGUgaG9yaXpvbnRhbCBheGlzLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5PXhdIC0gVGhlIGFuZ2xlLCBpbiByYWRpYW5zLCBieSB3aGljaCB0byBza2V3IHRoZSBET00gRWxlbWVudCBvbiB0aGUgdmVydGljYWwgYXhpcy5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBET00gRWxlbWVudCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0U2tldzogZnVuY3Rpb24gKHgsIHkpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZCkgeyB4ID0gMDsgfVxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IHg7IH1cclxuXHJcbiAgICAgICAgdGhpcy5za2V3WCA9IHg7XHJcbiAgICAgICAgdGhpcy5za2V3WSA9IHk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHBlcnNwZWN0aXZlIENTUyBwcm9wZXJ0eSBvZiB0aGUgX3BhcmVudCBET00gQ29udGFpbmVyXy4gVGhpcyBkZXRlcm1pbmVzIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSB6PTBcclxuICAgICAqIHBsYW5lIGFuZCB0aGUgdXNlciBpbiBvcmRlciB0byBnaXZlIGEgM0QtcG9zaXRpb25lZCBlbGVtZW50IHNvbWUgcGVyc3BlY3RpdmUuIEVhY2ggM0QgZWxlbWVudCB3aXRoXHJcbiAgICAgKiB6ID4gMCBiZWNvbWVzIGxhcmdlcjsgZWFjaCAzRC1lbGVtZW50IHdpdGggeiA8IDAgYmVjb21lcyBzbWFsbGVyLiBUaGUgc3RyZW5ndGggb2YgdGhlIGVmZmVjdCBpcyBkZXRlcm1pbmVkXHJcbiAgICAgKiBieSB0aGUgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eS5cclxuICAgICAqIFxyXG4gICAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvcGVyc3BlY3RpdmVcclxuICAgICAqIFxyXG4gICAgICogKipDaGFuZ2luZyB0aGlzIHZhbHVlIGNoYW5nZXMgaXQgZ2xvYmFsbHkgZm9yIGFsbCBET00gRWxlbWVudHMsIGFzIHRoZXkgYWxsIHNoYXJlIHRoZSBzYW1lIHBhcmVudCBjb250YWluZXIuKipcclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I3NldFBlcnNwZWN0aXZlXHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIHBlcnNwZWN0aXZlIHZhbHVlLCBpbiBwaXhlbHMsIHRoYXQgZGV0ZXJtaW5lcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgeiBwbGFuZSBhbmQgdGhlIHVzZXIuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRE9NIEVsZW1lbnQgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFBlcnNwZWN0aXZlOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5wYXJlbnQuc3R5bGUucGVyc3BlY3RpdmUgPSB2YWx1ZSArICdweCc7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBwZXJzcGVjdGl2ZSBDU1MgcHJvcGVydHkgdmFsdWUgb2YgdGhlIF9wYXJlbnQgRE9NIENvbnRhaW5lcl8uIFRoaXMgZGV0ZXJtaW5lcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgej0wXHJcbiAgICAgKiBwbGFuZSBhbmQgdGhlIHVzZXIgaW4gb3JkZXIgdG8gZ2l2ZSBhIDNELXBvc2l0aW9uZWQgZWxlbWVudCBzb21lIHBlcnNwZWN0aXZlLiBFYWNoIDNEIGVsZW1lbnQgd2l0aFxyXG4gICAgICogeiA+IDAgYmVjb21lcyBsYXJnZXI7IGVhY2ggM0QtZWxlbWVudCB3aXRoIHogPCAwIGJlY29tZXMgc21hbGxlci4gVGhlIHN0cmVuZ3RoIG9mIHRoZSBlZmZlY3QgaXMgZGV0ZXJtaW5lZFxyXG4gICAgICogYnkgdGhlIHZhbHVlIG9mIHRoaXMgcHJvcGVydHkuXHJcbiAgICAgKiBcclxuICAgICAqIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3BlcnNwZWN0aXZlXHJcbiAgICAgKiBcclxuICAgICAqICoqQ2hhbmdpbmcgdGhpcyB2YWx1ZSBjaGFuZ2VzIGl0IGdsb2JhbGx5IGZvciBhbGwgRE9NIEVsZW1lbnRzLCBhcyB0aGV5IGFsbCBzaGFyZSB0aGUgc2FtZSBwYXJlbnQgY29udGFpbmVyLioqXHJcbiAgICAgKiBcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I3BlcnNwZWN0aXZlXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICovXHJcbiAgICBwZXJzcGVjdGl2ZToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gcGFyc2VGbG9hdCh0aGlzLnBhcmVudC5zdHlsZS5wZXJzcGVjdGl2ZSk7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnBhcmVudC5zdHlsZS5wZXJzcGVjdGl2ZSA9IHZhbHVlICsgJ3B4JztcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgb25lIG9yIG1vcmUgbmF0aXZlIERPTSBldmVudCBsaXN0ZW5lcnMgb250byB0aGUgdW5kZXJseWluZyBFbGVtZW50IG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBUaGUgZXZlbnQgaXMgdGhlbiBkaXNwYXRjaGVkIHZpYSB0aGlzIEdhbWUgT2JqZWN0cyBzdGFuZGFyZCBldmVudCBlbWl0dGVyLlxyXG4gICAgICogXHJcbiAgICAgKiBGb3IgZXhhbXBsZTpcclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogdmFyIGRpdiA9IHRoaXMuYWRkLmRvbSh4LCB5LCBlbGVtZW50KTtcclxuICAgICAqIFxyXG4gICAgICogZGl2LmFkZExpc3RlbmVyKCdjbGljaycpO1xyXG4gICAgICogXHJcbiAgICAgKiBkaXYub24oJ2NsaWNrJywgaGFuZGxlcik7XHJcbiAgICAgKiBgYGBcclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I2FkZExpc3RlbmVyXHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50cyAtIFRoZSBET00gZXZlbnQvcyB0byBsaXN0ZW4gZm9yLiBZb3UgY2FuIHNwZWNpZnkgbXVsdGlwbGUgZXZlbnRzIGJ5IHNlcGFyYXRpbmcgdGhlbSB3aXRoIHNwYWNlcy5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBET00gRWxlbWVudCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgYWRkTGlzdGVuZXI6IGZ1bmN0aW9uIChldmVudHMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGV2ZW50cyA9IGV2ZW50cy5zcGxpdCgnICcpO1xyXG5cclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50c1tpXSwgdGhpcy5oYW5kbGVyLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgb25lIG9yIG1vcmUgbmF0aXZlIERPTSBldmVudCBsaXN0ZW5lcnMgZnJvbSB0aGUgdW5kZXJseWluZyBFbGVtZW50IG9mIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuRE9NRWxlbWVudCNyZW1vdmVMaXN0ZW5lclxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudHMgLSBUaGUgRE9NIGV2ZW50L3MgdG8gc3RvcCBsaXN0ZW5pbmcgZm9yLiBZb3UgY2FuIHNwZWNpZnkgbXVsdGlwbGUgZXZlbnRzIGJ5IHNlcGFyYXRpbmcgdGhlbSB3aXRoIHNwYWNlcy5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBET00gRWxlbWVudCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcmVtb3ZlTGlzdGVuZXI6IGZ1bmN0aW9uIChldmVudHMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGV2ZW50cyA9IGV2ZW50cy5zcGxpdCgnICcpO1xyXG5cclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50c1tpXSwgdGhpcy5oYW5kbGVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgZXZlbnQgcHJveHkgdG8gZGlzcGF0Y2ggbmF0aXZlIERPTSBFdmVudHMgdmlhIHRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuRE9NRWxlbWVudCNkaXNwYXRjaE5hdGl2ZUV2ZW50XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7YW55fSBldmVudCAtIFRoZSBuYXRpdmUgRE9NIGV2ZW50LlxyXG4gICAgICovXHJcbiAgICBkaXNwYXRjaE5hdGl2ZUV2ZW50OiBmdW5jdGlvbiAoZXZlbnQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5lbWl0KGV2ZW50LnR5cGUsIGV2ZW50KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgbmF0aXZlIERPTSBFbGVtZW50LCBhZGRzIGl0IHRvIHRoZSBwYXJlbnQgRE9NIENvbnRhaW5lciBhbmQgdGhlbiBiaW5kcyBpdCB0byB0aGlzIEdhbWUgT2JqZWN0LFxyXG4gICAgICogc28geW91IGNhbiBjb250cm9sIGl0LiBUaGUgYHRhZ05hbWVgIHNob3VsZCBiZSBhIHN0cmluZyBhbmQgaXMgcGFzc2VkIHRvIGBkb2N1bWVudC5jcmVhdGVFbGVtZW50YDpcclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogdGhpcy5hZGQuZG9tKCkuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgKiBgYGBcclxuICAgICAqIFxyXG4gICAgICogRm9yIG1vcmUgZGV0YWlscyBvbiBhY2NlcHRhYmxlIHRhZyBuYW1lcyBzZWU6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9Eb2N1bWVudC9jcmVhdGVFbGVtZW50XHJcbiAgICAgKiBcclxuICAgICAqIFlvdSBjYW4gYWxzbyBwYXNzIGluIGEgRE9NU3RyaW5nIG9yIHN0eWxlIG9iamVjdCB0byBzZXQgdGhlIENTUyBvbiB0aGUgY3JlYXRlZCBlbGVtZW50LCBhbmQgYW4gb3B0aW9uYWwgYGlubmVyVGV4dGBcclxuICAgICAqIHZhbHVlIGFzIHdlbGwuIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiBhIERPTVN0cmluZzpcclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogdGhpcy5hZGQuZG9tKCkuY3JlYXRlRWxlbWVudCgnZGl2JywgJ2JhY2tncm91bmQtY29sb3I6IGxpbWU7IHdpZHRoOiAyMjBweDsgaGVpZ2h0OiAxMDBweDsgZm9udDogNDhweCBBcmlhbCcsICdQaGFzZXInKTtcclxuICAgICAqIGBgYFxyXG4gICAgICogXHJcbiAgICAgKiBBbmQgdXNpbmcgYSBzdHlsZSBvYmplY3Q6XHJcbiAgICAgKiBcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIHZhciBzdHlsZSA9IHtcclxuICAgICAqICAgJ2JhY2tncm91bmQtY29sb3InOiAnbGltZSc7XHJcbiAgICAgKiAgICd3aWR0aCc6ICcyMDBweCc7XHJcbiAgICAgKiAgICdoZWlnaHQnOiAnMTAwcHgnO1xyXG4gICAgICogICAnZm9udCc6ICc0OHB4IEFyaWFsJztcclxuICAgICAqIH07XHJcbiAgICAgKiBcclxuICAgICAqIHRoaXMuYWRkLmRvbSgpLmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHN0eWxlLCAnUGhhc2VyJyk7XHJcbiAgICAgKiBgYGBcclxuICAgICAqIFxyXG4gICAgICogSWYgdGhpcyBHYW1lIE9iamVjdCBhbHJlYWR5IGhhcyBhbiBFbGVtZW50LCBpdCBpcyByZW1vdmVkIGZyb20gdGhlIERPTSBlbnRpcmVseSBmaXJzdC5cclxuICAgICAqIEFueSBldmVudCBsaXN0ZW5lcnMgeW91IG1heSBoYXZlIHByZXZpb3VzbHkgY3JlYXRlZCB3aWxsIG5lZWQgdG8gYmUgcmUtY3JlYXRlZCBhZnRlciB0aGlzIGNhbGwuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuRE9NRWxlbWVudCNjcmVhdGVFbGVtZW50XHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRhZ05hbWUgLSBBIHN0cmluZyB0aGF0IHNwZWNpZmllcyB0aGUgdHlwZSBvZiBlbGVtZW50IHRvIGJlIGNyZWF0ZWQuIFRoZSBub2RlTmFtZSBvZiB0aGUgY3JlYXRlZCBlbGVtZW50IGlzIGluaXRpYWxpemVkIHdpdGggdGhlIHZhbHVlIG9mIHRhZ05hbWUuIERvbid0IHVzZSBxdWFsaWZpZWQgbmFtZXMgKGxpa2UgXCJodG1sOmFcIikgd2l0aCB0aGlzIG1ldGhvZC5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xhbnkpfSBbc3R5bGVdIC0gRWl0aGVyIGEgRE9NU3RyaW5nIHRoYXQgaG9sZHMgdGhlIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGUgY3JlYXRlZCBlbGVtZW50LCBvciBhbiBvYmplY3QgdGhlIHN0eWxlcyB3aWxsIGJlIHJlYWR5IGZyb20uXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2lubmVyVGV4dF0gLSBBIERPTVN0cmluZyB0aGF0IGhvbGRzIHRoZSB0ZXh0IHRoYXQgd2lsbCBiZSBzZXQgYXMgdGhlIGlubmVyVGV4dCBvZiB0aGUgY3JlYXRlZCBlbGVtZW50LlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIERPTSBFbGVtZW50IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBjcmVhdGVFbGVtZW50OiBmdW5jdGlvbiAodGFnTmFtZSwgc3R5bGUsIGlubmVyVGV4dClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXRFbGVtZW50KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSksIHN0eWxlLCBpbm5lclRleHQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEJpbmRzIGEgbmV3IERPTSBFbGVtZW50IHRvIHRoaXMgR2FtZSBPYmplY3QuIElmIHRoaXMgR2FtZSBPYmplY3QgYWxyZWFkeSBoYXMgYW4gRWxlbWVudCBpdCBpcyByZW1vdmVkIGZyb20gdGhlIERPTVxyXG4gICAgICogZW50aXJlbHkgZmlyc3QuIEFueSBldmVudCBsaXN0ZW5lcnMgeW91IG1heSBoYXZlIHByZXZpb3VzbHkgY3JlYXRlZCB3aWxsIG5lZWQgdG8gYmUgcmUtY3JlYXRlZCBvbiB0aGUgbmV3IGVsZW1lbnQuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBgZWxlbWVudGAgYXJndW1lbnQgeW91IHBhc3MgdG8gdGhpcyBtZXRob2QgY2FuIGJlIGVpdGhlciBhIHN0cmluZyB0YWdOYW1lOlxyXG4gICAgICogXHJcbiAgICAgKiBgYGBqYXZhc2NyaXB0XHJcbiAgICAgKiA8aDEgaWQ9XCJoZWFkaW5nXCI+UGhhc2VyPC9oMT5cclxuICAgICAqXHJcbiAgICAgKiB0aGlzLmFkZC5kb20oKS5zZXRFbGVtZW50KCdoZWFkaW5nJyk7XHJcbiAgICAgKiBgYGBcclxuICAgICAqIFxyXG4gICAgICogT3IgYSByZWZlcmVuY2UgdG8gYW4gRWxlbWVudCBpbnN0YW5jZTpcclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogPGgxIGlkPVwiaGVhZGluZ1wiPlBoYXNlcjwvaDE+XHJcbiAgICAgKlxyXG4gICAgICogdmFyIGgxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlYWRpbmcnKTtcclxuICAgICAqIFxyXG4gICAgICogdGhpcy5hZGQuZG9tKCkuc2V0RWxlbWVudChoMSk7XHJcbiAgICAgKiBgYGBcclxuICAgICAqIFxyXG4gICAgICogWW91IGNhbiBhbHNvIHBhc3MgaW4gYSBET01TdHJpbmcgb3Igc3R5bGUgb2JqZWN0IHRvIHNldCB0aGUgQ1NTIG9uIHRoZSBjcmVhdGVkIGVsZW1lbnQsIGFuZCBhbiBvcHRpb25hbCBgaW5uZXJUZXh0YFxyXG4gICAgICogdmFsdWUgYXMgd2VsbC4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIGEgRE9NU3RyaW5nOlxyXG4gICAgICogXHJcbiAgICAgKiBgYGBqYXZhc2NyaXB0XHJcbiAgICAgKiB0aGlzLmFkZC5kb20oKS5zZXRFbGVtZW50KGgxLCAnYmFja2dyb3VuZC1jb2xvcjogbGltZTsgd2lkdGg6IDIyMHB4OyBoZWlnaHQ6IDEwMHB4OyBmb250OiA0OHB4IEFyaWFsJywgJ1BoYXNlcicpO1xyXG4gICAgICogYGBgXHJcbiAgICAgKiBcclxuICAgICAqIEFuZCB1c2luZyBhIHN0eWxlIG9iamVjdDpcclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogdmFyIHN0eWxlID0ge1xyXG4gICAgICogICAnYmFja2dyb3VuZC1jb2xvcic6ICdsaW1lJztcclxuICAgICAqICAgJ3dpZHRoJzogJzIwMHB4JztcclxuICAgICAqICAgJ2hlaWdodCc6ICcxMDBweCc7XHJcbiAgICAgKiAgICdmb250JzogJzQ4cHggQXJpYWwnO1xyXG4gICAgICogfTtcclxuICAgICAqIFxyXG4gICAgICogdGhpcy5hZGQuZG9tKCkuc2V0RWxlbWVudChoMSwgc3R5bGUsICdQaGFzZXInKTtcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkRPTUVsZW1lbnQjc2V0RWxlbWVudFxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xFbGVtZW50KX0gZWxlbWVudCAtIElmIGEgc3RyaW5nIGl0IGlzIHBhc3NlZCB0byBgZ2V0RWxlbWVudEJ5SWQoKWAsIG9yIGl0IHNob3VsZCBiZSBhIHJlZmVyZW5jZSB0byBhbiBleGlzdGluZyBFbGVtZW50LlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfGFueSl9IFtzdHlsZV0gLSBFaXRoZXIgYSBET01TdHJpbmcgdGhhdCBob2xkcyB0aGUgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoZSBjcmVhdGVkIGVsZW1lbnQsIG9yIGFuIG9iamVjdCB0aGUgc3R5bGVzIHdpbGwgYmUgcmVhZHkgZnJvbS5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbaW5uZXJUZXh0XSAtIEEgRE9NU3RyaW5nIHRoYXQgaG9sZHMgdGhlIHRleHQgdGhhdCB3aWxsIGJlIHNldCBhcyB0aGUgaW5uZXJUZXh0IG9mIHRoZSBjcmVhdGVkIGVsZW1lbnQuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRE9NIEVsZW1lbnQgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldEVsZW1lbnQ6IGZ1bmN0aW9uIChlbGVtZW50LCBzdHlsZSwgaW5uZXJUZXh0KVxyXG4gICAge1xyXG4gICAgICAgIC8vICBBbHJlYWR5IGdvdCBhbiBlbGVtZW50PyBSZW1vdmUgaXQgZmlyc3RcclxuICAgICAgICB0aGlzLnJlbW92ZUVsZW1lbnQoKTtcclxuXHJcbiAgICAgICAgdmFyIHRhcmdldDtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBlbGVtZW50ID09PSAnc3RyaW5nJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBoYXNoP1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudFswXSA9PT0gJyMnKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5zdWJzdHIoMSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgZWxlbWVudCA9PT0gJ29iamVjdCcgJiYgZWxlbWVudC5ub2RlVHlwZSA9PT0gMSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRhcmdldCA9IGVsZW1lbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRhcmdldClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5ub2RlID0gdGFyZ2V0O1xyXG5cclxuICAgICAgICAvLyAgc3R5bGUgY2FuIGJlIGVtcHR5LCBhIHN0cmluZyBvciBhIHBsYWluIG9iamVjdFxyXG4gICAgICAgIGlmIChzdHlsZSAmJiBJc1BsYWluT2JqZWN0KHN0eWxlKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBzdHlsZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LnN0eWxlW2tleV0gPSBzdHlsZVtrZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiBzdHlsZSA9PT0gJ3N0cmluZycpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0YXJnZXQuc3R5bGUgPSBzdHlsZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBBZGQgLyBPdmVycmlkZSB0aGUgdmFsdWVzIHdlIG5lZWRcclxuXHJcbiAgICAgICAgdGFyZ2V0LnN0eWxlLnpJbmRleCA9ICcwJztcclxuICAgICAgICB0YXJnZXQuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnO1xyXG4gICAgICAgIHRhcmdldC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcblxyXG4gICAgICAgIC8vICBOb2RlIGhhbmRsZXJcclxuXHJcbiAgICAgICAgdGFyZ2V0LnBoYXNlciA9IHRoaXM7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBhcmVudClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucGFyZW50LmFwcGVuZENoaWxkKHRhcmdldCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgSW5uZXJUZXh0XHJcblxyXG4gICAgICAgIGlmIChpbm5lclRleHQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0YXJnZXQuaW5uZXJUZXh0ID0gaW5uZXJUZXh0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlU2l6ZSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRha2VzIGEgYmxvY2sgb2YgaHRtbCBmcm9tIHRoZSBIVE1MIENhY2hlLCB0aGF0IGhhcyBwcmV2aW91c2x5IGJlZW4gcHJlbG9hZGVkIGludG8gdGhlIGdhbWUsIGFuZCB0aGVuXHJcbiAgICAgKiBjcmVhdGVzIGEgRE9NIEVsZW1lbnQgZnJvbSBpdC4gVGhlIGxvYWRlZCBIVE1MIGlzIHNldCBhcyB0aGUgYGlubmVySFRNTGAgcHJvcGVydHkgb2YgdGhlIGNyZWF0ZWRcclxuICAgICAqIGVsZW1lbnQuXHJcbiAgICAgKiBcclxuICAgICAqIEFzc3VtZSB0aGUgZm9sbG93aW5nIGh0bWwgaXMgc3RvcmVkIGluIGEgZmlsZSBjYWxsZWQgYGxvZ2luZm9ybS5odG1sYDpcclxuICAgICAqIFxyXG4gICAgICogYGBgaHRtbFxyXG4gICAgICogPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm5hbWVGaWVsZFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgeW91ciBuYW1lXCIgc3R5bGU9XCJmb250LXNpemU6IDMycHhcIj5cclxuICAgICAqIDxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgbmFtZT1cInBsYXlCdXR0b25cIiB2YWx1ZT1cIkxldCdzIFBsYXlcIiBzdHlsZT1cImZvbnQtc2l6ZTogMzJweFwiPlxyXG4gICAgICogYGBgXHJcbiAgICAgKiBcclxuICAgICAqIFdoaWNoIGlzIGxvYWRlZCBpbnRvIHlvdXIgZ2FtZSB1c2luZyB0aGUgY2FjaGUga2V5ICdsb2dpbic6XHJcbiAgICAgKiBcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIHRoaXMubG9hZC5odG1sKCdsb2dpbicsICdhc3NldHMvbG9naW5mb3JtLmh0bWwnKTtcclxuICAgICAqIGBgYFxyXG4gICAgICogXHJcbiAgICAgKiBZb3UgY2FuIGNyZWF0ZSBhIERPTSBFbGVtZW50IGZyb20gaXQgdXNpbmcgdGhlIGNhY2hlIGtleTpcclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogdGhpcy5hZGQuZG9tKCkuY3JlYXRlRnJvbUNhY2hlKCdsb2dpbicpO1xyXG4gICAgICogYGBgXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBvcHRpb25hbCBgZWxlbWVudFR5cGVgIGFyZ3VtZW50IGNvbnRyb2xzIHRoZSBjb250YWluZXIgdGhhdCBpcyBjcmVhdGVkLCBpbnRvIHdoaWNoIHRoZSBsb2FkZWQgaHRtbCBpcyBpbnNlcnRlZC5cclxuICAgICAqIFRoZSBkZWZhdWx0IGlzIGEgcGxhaW4gYGRpdmAgb2JqZWN0LCBidXQgYW55IHZhbGlkIHRhZ05hbWUgY2FuIGJlIGdpdmVuLlxyXG4gICAgICogXHJcbiAgICAgKiBJZiB0aGlzIEdhbWUgT2JqZWN0IGFscmVhZHkgaGFzIGFuIEVsZW1lbnQsIGl0IGlzIHJlbW92ZWQgZnJvbSB0aGUgRE9NIGVudGlyZWx5IGZpcnN0LlxyXG4gICAgICogQW55IGV2ZW50IGxpc3RlbmVycyB5b3UgbWF5IGhhdmUgcHJldmlvdXNseSBjcmVhdGVkIHdpbGwgbmVlZCB0byBiZSByZS1jcmVhdGVkIGFmdGVyIHRoaXMgY2FsbC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I2NyZWF0ZUZyb21DYWNoZVxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gVGhlIGtleSBvZiB0aGUgaHRtbCBjYWNoZSBlbnRyeSB0byB1c2UgZm9yIHRoaXMgRE9NIEVsZW1lbnQuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3RhZ05hbWU9J2RpdiddIC0gVGhlIHRhZyBuYW1lIG9mIHRoZSBlbGVtZW50IGludG8gd2hpY2ggYWxsIG9mIHRoZSBsb2FkZWQgaHRtbCB3aWxsIGJlIGluc2VydGVkLiBEZWZhdWx0cyB0byBhIHBsYWluIGRpdiB0YWcuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRE9NIEVsZW1lbnQgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZUZyb21DYWNoZTogZnVuY3Rpb24gKGtleSwgdGFnTmFtZSlcclxuICAgIHtcclxuICAgICAgICB2YXIgaHRtbCA9IHRoaXMuY2FjaGUuZ2V0KGtleSk7XHJcblxyXG4gICAgICAgIGlmIChodG1sKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVGcm9tSFRNTChodG1sLCB0YWdOYW1lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRha2VzIGEgc3RyaW5nIG9mIGh0bWwgYW5kIHRoZW4gY3JlYXRlcyBhIERPTSBFbGVtZW50IGZyb20gaXQuIFRoZSBIVE1MIGlzIHNldCBhcyB0aGUgYGlubmVySFRNTGBcclxuICAgICAqIHByb3BlcnR5IG9mIHRoZSBjcmVhdGVkIGVsZW1lbnQuXHJcbiAgICAgKiBcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIGxldCBmb3JtID0gYFxyXG4gICAgICogPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm5hbWVGaWVsZFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgeW91ciBuYW1lXCIgc3R5bGU9XCJmb250LXNpemU6IDMycHhcIj5cclxuICAgICAqIDxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgbmFtZT1cInBsYXlCdXR0b25cIiB2YWx1ZT1cIkxldCdzIFBsYXlcIiBzdHlsZT1cImZvbnQtc2l6ZTogMzJweFwiPlxyXG4gICAgICogYDtcclxuICAgICAqIGBgYFxyXG4gICAgICogXHJcbiAgICAgKiBZb3UgY2FuIGNyZWF0ZSBhIERPTSBFbGVtZW50IGZyb20gaXQgdXNpbmcgdGhlIHN0cmluZzpcclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogdGhpcy5hZGQuZG9tKCkuY3JlYXRlRnJvbUhUTUwoZm9ybSk7XHJcbiAgICAgKiBgYGBcclxuICAgICAqIFxyXG4gICAgICogVGhlIG9wdGlvbmFsIGBlbGVtZW50VHlwZWAgYXJndW1lbnQgY29udHJvbHMgdGhlIHR5cGUgb2YgY29udGFpbmVyIHRoYXQgaXMgY3JlYXRlZCwgaW50byB3aGljaCB0aGUgaHRtbCBpcyBpbnNlcnRlZC5cclxuICAgICAqIFRoZSBkZWZhdWx0IGlzIGEgcGxhaW4gYGRpdmAgb2JqZWN0LCBidXQgYW55IHZhbGlkIHRhZ05hbWUgY2FuIGJlIGdpdmVuLlxyXG4gICAgICogXHJcbiAgICAgKiBJZiB0aGlzIEdhbWUgT2JqZWN0IGFscmVhZHkgaGFzIGFuIEVsZW1lbnQsIGl0IGlzIHJlbW92ZWQgZnJvbSB0aGUgRE9NIGVudGlyZWx5IGZpcnN0LlxyXG4gICAgICogQW55IGV2ZW50IGxpc3RlbmVycyB5b3UgbWF5IGhhdmUgcHJldmlvdXNseSBjcmVhdGVkIHdpbGwgbmVlZCB0byBiZSByZS1jcmVhdGVkIGFmdGVyIHRoaXMgY2FsbC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I2NyZWF0ZUZyb21IVE1MXHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBBIHN0cmluZyBvZiBodG1sIHRvIGJlIHNldCBhcyB0aGUgYGlubmVySFRNTGAgcHJvcGVydHkgb2YgdGhlIGNyZWF0ZWQgZWxlbWVudC5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdGFnTmFtZT0nZGl2J10gLSBUaGUgdGFnIG5hbWUgb2YgdGhlIGVsZW1lbnQgaW50byB3aGljaCBhbGwgb2YgdGhlIGh0bWwgd2lsbCBiZSBpbnNlcnRlZC4gRGVmYXVsdHMgdG8gYSBwbGFpbiBkaXYgdGFnLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIERPTSBFbGVtZW50IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBjcmVhdGVGcm9tSFRNTDogZnVuY3Rpb24gKGh0bWwsIHRhZ05hbWUpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRhZ05hbWUgPT09IHVuZGVmaW5lZCkgeyB0YWdOYW1lID0gJ2Rpdic7IH1cclxuXHJcbiAgICAgICAgLy8gIEFscmVhZHkgZ290IGFuIGVsZW1lbnQ/IFJlbW92ZSBpdCBmaXJzdFxyXG4gICAgICAgIHRoaXMucmVtb3ZlRWxlbWVudCgpO1xyXG5cclxuICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7XHJcblxyXG4gICAgICAgIHRoaXMubm9kZSA9IGVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGVsZW1lbnQuc3R5bGUuekluZGV4ID0gJzAnO1xyXG4gICAgICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnO1xyXG4gICAgICAgIGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG5cclxuICAgICAgICAvLyAgTm9kZSBoYW5kbGVyXHJcblxyXG4gICAgICAgIGVsZW1lbnQucGhhc2VyID0gdGhpcztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucGFyZW50KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnQuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbGVtZW50LmlubmVySFRNTCA9IGh0bWw7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVNpemUoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIHRoZSBjdXJyZW50IERPTSBFbGVtZW50IGJvdW5kIHRvIHRoaXMgR2FtZSBPYmplY3QgZnJvbSB0aGUgRE9NIGVudGlyZWx5IGFuZCByZXNldHMgdGhlXHJcbiAgICAgKiBgbm9kZWAgcHJvcGVydHkgb2YgdGhpcyBHYW1lIE9iamVjdCB0byBiZSBgbnVsbGAuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuRE9NRWxlbWVudCNyZW1vdmVFbGVtZW50XHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRE9NIEVsZW1lbnQgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZUVsZW1lbnQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIFJlbW92ZUZyb21ET00odGhpcy5ub2RlKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMubm9kZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBtZXRob2QgdGhhdCBjYWxscyBgZ2V0Qm91bmRpbmdDbGllbnRSZWN0YCBvbiB0aGUgYG5vZGVgIGFuZCB0aGVuIHNldHMgdGhlIGJvdW5kcyB3aWR0aFxyXG4gICAgICogYW5kIGhlaWdodCBpbnRvIHRoZSBgZGlzcGxheVdpZHRoYCBhbmQgYGRpc3BsYXlIZWlnaHRgIHByb3BlcnRpZXMsIGFuZCB0aGUgYGNsaWVudFdpZHRoYCBhbmQgYGNsaWVudEhlaWdodGBcclxuICAgICAqIHZhbHVlcyBpbnRvIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBwcm9wZXJ0aWVzIHJlc3BlY3RpdmVseS5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyBpcyBjYWxsZWQgYXV0b21hdGljYWxseSB3aGVuZXZlciBhIG5ldyBlbGVtZW50IGlzIGNyZWF0ZWQgb3Igc2V0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkRPTUVsZW1lbnQjdXBkYXRlU2l6ZVxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIERPTSBFbGVtZW50IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGVTaXplOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBub2RlID0gdGhpcy5ub2RlO1xyXG5cclxuICAgICAgICB2YXIgbm9kZUJvdW5kcyA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG4gICAgICAgIHRoaXMud2lkdGggPSBub2RlLmNsaWVudFdpZHRoO1xyXG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gbm9kZS5jbGllbnRIZWlnaHQ7XHJcblxyXG4gICAgICAgIHRoaXMuZGlzcGxheVdpZHRoID0gbm9kZUJvdW5kcy53aWR0aCB8fCAwO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUhlaWdodCA9IG5vZGVCb3VuZHMuaGVpZ2h0IHx8IDA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYWxsIGNoaWxkcmVuIGZyb20gdGhpcyBET00gRWxlbWVudHMgbm9kZSwgdXNpbmcgYHF1ZXJ5U2VsZWN0b3JBbGwoJyonKWAgYW5kIHRoZW4gaXRlcmF0ZXMgdGhyb3VnaFxyXG4gICAgICogdGhlbSwgbG9va2luZyBmb3IgdGhlIGZpcnN0IG9uZSB0aGF0IGhhcyBhIHByb3BlcnR5IG1hdGNoaW5nIHRoZSBnaXZlbiBrZXkgYW5kIHZhbHVlLiBJdCB0aGVuIHJldHVybnMgdGhpcyBjaGlsZFxyXG4gICAgICogaWYgZm91bmQsIG9yIGBudWxsYCBpZiBub3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuRE9NRWxlbWVudCNnZXRDaGlsZEJ5UHJvcGVydHlcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IHRvIHNlYXJjaCB0aGUgY2hpbGRyZW4gZm9yLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVGhlIHZhbHVlIHRoZSBwcm9wZXJ0eSBtdXN0IHN0cmljdGx5IGVxdWFsLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHs/RWxlbWVudH0gVGhlIGZpcnN0IG1hdGNoaW5nIGNoaWxkIERPTSBFbGVtZW50LCBvciBgbnVsbGAgaWYgbm90IGZvdW5kLlxyXG4gICAgICovXHJcbiAgICBnZXRDaGlsZEJ5UHJvcGVydHk6IGZ1bmN0aW9uIChwcm9wZXJ0eSwgdmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMubm9kZS5xdWVyeVNlbGVjdG9yQWxsKCcqJyk7XHJcblxyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRyZW5baV1bcHJvcGVydHldID09PSB2YWx1ZSlcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgYWxsIGNoaWxkcmVuIGZyb20gdGhpcyBET00gRWxlbWVudHMgbm9kZSwgdXNpbmcgYHF1ZXJ5U2VsZWN0b3JBbGwoJyonKWAgYW5kIHRoZW4gaXRlcmF0ZXMgdGhyb3VnaFxyXG4gICAgICogdGhlbSwgbG9va2luZyBmb3IgdGhlIGZpcnN0IG9uZSB0aGF0IGhhcyBhIG1hdGNoaW5nIGlkLiBJdCB0aGVuIHJldHVybnMgdGhpcyBjaGlsZCBpZiBmb3VuZCwgb3IgYG51bGxgIGlmIG5vdC5cclxuICAgICAqIFxyXG4gICAgICogQmUgYXdhcmUgdGhhdCBjbGFzcyBhbmQgaWQgbmFtZXMgYXJlIGNhc2Utc2Vuc2l0aXZlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkRPTUVsZW1lbnQjZ2V0Q2hpbGRCeUlEXHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBpZCAtIFRoZSBpZCB0byBzZWFyY2ggdGhlIGNoaWxkcmVuIGZvci5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7P0VsZW1lbnR9IFRoZSBmaXJzdCBtYXRjaGluZyBjaGlsZCBET00gRWxlbWVudCwgb3IgYG51bGxgIGlmIG5vdCBmb3VuZC5cclxuICAgICAqL1xyXG4gICAgZ2V0Q2hpbGRCeUlEOiBmdW5jdGlvbiAoaWQpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2hpbGRCeVByb3BlcnR5KCdpZCcsIGlkKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGFsbCBjaGlsZHJlbiBmcm9tIHRoaXMgRE9NIEVsZW1lbnRzIG5vZGUsIHVzaW5nIGBxdWVyeVNlbGVjdG9yQWxsKCcqJylgIGFuZCB0aGVuIGl0ZXJhdGVzIHRocm91Z2hcclxuICAgICAqIHRoZW0sIGxvb2tpbmcgZm9yIHRoZSBmaXJzdCBvbmUgdGhhdCBoYXMgYSBtYXRjaGluZyBuYW1lLiBJdCB0aGVuIHJldHVybnMgdGhpcyBjaGlsZCBpZiBmb3VuZCwgb3IgYG51bGxgIGlmIG5vdC5cclxuICAgICAqIFxyXG4gICAgICogQmUgYXdhcmUgdGhhdCBjbGFzcyBhbmQgaWQgbmFtZXMgYXJlIGNhc2Utc2Vuc2l0aXZlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkRPTUVsZW1lbnQjZ2V0Q2hpbGRCeU5hbWVcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgbmFtZSB0byBzZWFyY2ggdGhlIGNoaWxkcmVuIGZvci5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7P0VsZW1lbnR9IFRoZSBmaXJzdCBtYXRjaGluZyBjaGlsZCBET00gRWxlbWVudCwgb3IgYG51bGxgIGlmIG5vdCBmb3VuZC5cclxuICAgICAqL1xyXG4gICAgZ2V0Q2hpbGRCeU5hbWU6IGZ1bmN0aW9uIChuYW1lKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldENoaWxkQnlQcm9wZXJ0eSgnbmFtZScsIG5hbWUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGBjbGFzc05hbWVgIHByb3BlcnR5IG9mIHRoZSBET00gRWxlbWVudCBub2RlIGFuZCB1cGRhdGVzIHRoZSBpbnRlcm5hbCBzaXplcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I3NldENsYXNzTmFtZVxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lIC0gQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjbGFzcyBvciBzcGFjZS1zZXBhcmF0ZWQgY2xhc3NlcyBvZiB0aGUgZWxlbWVudC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBET00gRWxlbWVudCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0Q2xhc3NOYW1lOiBmdW5jdGlvbiAoY2xhc3NOYW1lKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xyXG5cclxuICAgICAgICAgICAgdGhpcy51cGRhdGVTaXplKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBgaW5uZXJUZXh0YCBwcm9wZXJ0eSBvZiB0aGUgRE9NIEVsZW1lbnQgbm9kZSBhbmQgdXBkYXRlcyB0aGUgaW50ZXJuYWwgc2l6ZXMuXHJcbiAgICAgKiBcclxuICAgICAqIE5vdGUgdGhhdCBvbmx5IGNlcnRhaW4gdHlwZXMgb2YgRWxlbWVudHMgY2FuIGhhdmUgYGlubmVyVGV4dGAgc2V0IG9uIHRoZW0uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuRE9NRWxlbWVudCNzZXRUZXh0XHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IC0gQSBET01TdHJpbmcgcmVwcmVzZW50aW5nIHRoZSByZW5kZXJlZCB0ZXh0IGNvbnRlbnQgb2YgdGhlIGVsZW1lbnQuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRE9NIEVsZW1lbnQgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFRleHQ6IGZ1bmN0aW9uICh0ZXh0KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLm5vZGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuaW5uZXJUZXh0ID0gdGV4dDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU2l6ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgYGlubmVySFRNTGAgcHJvcGVydHkgb2YgdGhlIERPTSBFbGVtZW50IG5vZGUgYW5kIHVwZGF0ZXMgdGhlIGludGVybmFsIHNpemVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkRPTUVsZW1lbnQjc2V0SFRNTFxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gaHRtbCAtIEEgRE9NU3RyaW5nIG9mIGh0bWwgdG8gYmUgc2V0IGFzIHRoZSBgaW5uZXJIVE1MYCBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBET00gRWxlbWVudCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0SFRNTDogZnVuY3Rpb24gKGh0bWwpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMubm9kZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5pbm5lckhUTUwgPSBodG1sO1xyXG5cclxuICAgICAgICAgICAgdGhpcy51cGRhdGVTaXplKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSdW5zIGludGVybmFsIHVwZGF0ZSB0YXNrcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I3ByZVVwZGF0ZVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqL1xyXG4gICAgcHJlVXBkYXRlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLnBhcmVudENvbnRhaW5lcjtcclxuICAgICAgICB2YXIgbm9kZSA9IHRoaXMubm9kZTtcclxuXHJcbiAgICAgICAgaWYgKG5vZGUgJiYgcGFyZW50ICYmICFwYXJlbnQud2lsbFJlbmRlcigpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbm9kZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJlcyB0aGUgcmVuZGVyTWFzayB3aXRoIHRoZSByZW5kZXJGbGFncyB0byBzZWUgaWYgdGhpcyBHYW1lIE9iamVjdCB3aWxsIHJlbmRlciBvciBub3QuXHJcbiAgICAgKiBcclxuICAgICAqIERPTUVsZW1lbnRzIGFsd2F5cyByZXR1cm4gYHRydWVgIGFzIHRoZXkgbmVlZCB0byBzdGlsbCBzZXQgdmFsdWVzIGR1cmluZyB0aGUgcmVuZGVyIHBhc3MsIGV2ZW4gaWYgbm90IHZpc2libGUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuRE9NRWxlbWVudCN3aWxsUmVuZGVyXHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSBHYW1lIE9iamVjdCBzaG91bGQgYmUgcmVuZGVyZWQsIG90aGVyd2lzZSBgZmFsc2VgLlxyXG4gICAgICovXHJcbiAgICB3aWxsUmVuZGVyOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgdGhlIHByZS1kZXN0cm95IHN0ZXAgZm9yIHRoZSBET00gRWxlbWVudCwgd2hpY2ggcmVtb3ZlcyB0aGUgdW5kZXJseWluZyBub2RlIGZyb20gdGhlIERPTS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I3ByZURlc3Ryb3lcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKi9cclxuICAgIHByZURlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVFbGVtZW50KCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2NlbmUuc3lzLmV2ZW50cy5vZmYoU0NFTkVfRVZFTlRTLlNMRUVQLCB0aGlzLmhhbmRsZVNjZW5lRXZlbnQsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMuc2NlbmUuc3lzLmV2ZW50cy5vZmYoU0NFTkVfRVZFTlRTLldBS0UsIHRoaXMuaGFuZGxlU2NlbmVFdmVudCwgdGhpcyk7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRE9NRWxlbWVudDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ1NTQmxlbmRNb2RlcyA9IHJlcXVpcmUoJy4vQ1NTQmxlbmRNb2RlcycpO1xyXG52YXIgR2FtZU9iamVjdCA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3QnKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5ET01FbGVtZW50I3JlbmRlcldlYkdMXHJcbiAqIEBzaW5jZSAzLjE3LjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xSZW5kZXJlcn0gcmVuZGVyZXIgLSBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBhY3RpdmUgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkRPTUVsZW1lbnR9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICovXHJcbnZhciBET01FbGVtZW50Q1NTUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB2YXIgbm9kZSA9IHNyYy5ub2RlO1xyXG4gICAgdmFyIHN0eWxlID0gbm9kZS5zdHlsZTtcclxuICAgIHZhciBzZXR0aW5ncyA9IHNyYy5zY2VuZS5zeXMuc2V0dGluZ3M7XHJcblxyXG4gICAgaWYgKCFub2RlIHx8ICFzdHlsZSB8fCAhc2V0dGluZ3MudmlzaWJsZSB8fCBHYW1lT2JqZWN0LlJFTkRFUl9NQVNLICE9PSBzcmMucmVuZGVyRmxhZ3MgfHwgKHNyYy5jYW1lcmFGaWx0ZXIgIT09IDAgJiYgKHNyYy5jYW1lcmFGaWx0ZXIgJiBjYW1lcmEuaWQpKSB8fCAoc3JjLnBhcmVudENvbnRhaW5lciAmJiAhc3JjLnBhcmVudENvbnRhaW5lci53aWxsUmVuZGVyKCkpKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChub2RlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBwYXJlbnQgPSBzcmMucGFyZW50Q29udGFpbmVyO1xyXG4gICAgdmFyIGFscGhhID0gY2FtZXJhLmFscGhhICogc3JjLmFscGhhO1xyXG5cclxuICAgIGlmIChwYXJlbnQpXHJcbiAgICB7XHJcbiAgICAgICAgYWxwaGEgKj0gcGFyZW50LmFscGhhO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBjYW1NYXRyaXggPSByZW5kZXJlci5fdGVtcE1hdHJpeDE7XHJcbiAgICB2YXIgc3JjTWF0cml4ID0gcmVuZGVyZXIuX3RlbXBNYXRyaXgyO1xyXG4gICAgdmFyIGNhbGNNYXRyaXggPSByZW5kZXJlci5fdGVtcE1hdHJpeDM7XHJcblxyXG4gICAgdmFyIGR4ID0gMDtcclxuICAgIHZhciBkeSA9IDA7XHJcblxyXG4gICAgdmFyIHR4ID0gJzAlJztcclxuICAgIHZhciB0eSA9ICcwJSc7XHJcblxyXG4gICAgaWYgKHBhcmVudE1hdHJpeClcclxuICAgIHtcclxuICAgICAgICBkeCA9IChzcmMud2lkdGggKiBzcmMuc2NhbGVYKSAqIHNyYy5vcmlnaW5YO1xyXG4gICAgICAgIGR5ID0gKHNyYy5oZWlnaHQgKiBzcmMuc2NhbGVZKSAqIHNyYy5vcmlnaW5ZO1xyXG5cclxuICAgICAgICBzcmNNYXRyaXguYXBwbHlJVFJTKHNyYy54IC0gZHgsIHNyYy55IC0gZHksIHNyYy5yb3RhdGlvbiwgc3JjLnNjYWxlWCwgc3JjLnNjYWxlWSk7XHJcblxyXG4gICAgICAgIGNhbU1hdHJpeC5jb3B5RnJvbShjYW1lcmEubWF0cml4KTtcclxuXHJcbiAgICAgICAgLy8gIE11bHRpcGx5IHRoZSBjYW1lcmEgYnkgdGhlIHBhcmVudCBtYXRyaXhcclxuICAgICAgICBjYW1NYXRyaXgubXVsdGlwbHlXaXRoT2Zmc2V0KHBhcmVudE1hdHJpeCwgLWNhbWVyYS5zY3JvbGxYICogc3JjLnNjcm9sbEZhY3RvclgsIC1jYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZKTtcclxuXHJcbiAgICAgICAgLy8gIFVuZG8gdGhlIGNhbWVyYSBzY3JvbGxcclxuICAgICAgICBzcmNNYXRyaXguZSA9IHNyYy54IC0gZHg7XHJcbiAgICAgICAgc3JjTWF0cml4LmYgPSBzcmMueSAtIGR5O1xyXG5cclxuICAgICAgICAvLyAgTXVsdGlwbHkgYnkgdGhlIHNyYyBtYXRyaXgsIHN0b3JlIHJlc3VsdCBpbiBjYWxjTWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5KHNyY01hdHJpeCwgY2FsY01hdHJpeCk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgZHggPSAoc3JjLndpZHRoKSAqIHNyYy5vcmlnaW5YO1xyXG4gICAgICAgIGR5ID0gKHNyYy5oZWlnaHQpICogc3JjLm9yaWdpblk7XHJcbiBcclxuICAgICAgICBzcmNNYXRyaXguYXBwbHlJVFJTKHNyYy54IC0gZHgsIHNyYy55IC0gZHksIHNyYy5yb3RhdGlvbiwgc3JjLnNjYWxlWCwgc3JjLnNjYWxlWSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY2FtTWF0cml4LmNvcHlGcm9tKGNhbWVyYS5tYXRyaXgpO1xyXG5cclxuICAgICAgICB0eCA9ICgxMDAgKiBzcmMub3JpZ2luWCkgKyAnJSc7XHJcbiAgICAgICAgdHkgPSAoMTAwICogc3JjLm9yaWdpblkpICsgJyUnO1xyXG5cclxuICAgICAgICBzcmNNYXRyaXguZSAtPSBjYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYO1xyXG4gICAgICAgIHNyY01hdHJpeC5mIC09IGNhbWVyYS5zY3JvbGxZICogc3JjLnNjcm9sbEZhY3Rvclk7XHJcblxyXG4gICAgICAgIC8vICBNdWx0aXBseSBieSB0aGUgc3JjIG1hdHJpeCwgc3RvcmUgcmVzdWx0IGluIGNhbGNNYXRyaXhcclxuICAgICAgICBjYW1NYXRyaXgubXVsdGlwbHkoc3JjTWF0cml4LCBjYWxjTWF0cml4KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXNyYy50cmFuc2Zvcm1Pbmx5KVxyXG4gICAge1xyXG4gICAgICAgIHN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgICAgIHN0eWxlLm9wYWNpdHkgPSBhbHBoYTtcclxuICAgICAgICBzdHlsZS56SW5kZXggPSBzcmMuX2RlcHRoO1xyXG4gICAgICAgIHN0eWxlLnBvaW50ZXJFdmVudHMgPSAnYXV0byc7XHJcbiAgICAgICAgc3R5bGUubWl4QmxlbmRNb2RlID0gQ1NTQmxlbmRNb2Rlc1tzcmMuX2JsZW5kTW9kZV07XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3RyYW5zZm9ybVxyXG5cclxuICAgIHN0eWxlLnRyYW5zZm9ybSA9XHJcbiAgICAgICAgY2FsY01hdHJpeC5nZXRDU1NNYXRyaXgoKSArXHJcbiAgICAgICAgJyBza2V3KCcgKyBzcmMuc2tld1ggKyAncmFkLCAnICsgc3JjLnNrZXdZICsgJ3JhZCknICtcclxuICAgICAgICAnIHJvdGF0ZTNkKCcgKyBzcmMucm90YXRlM2QueCArICcsJyArIHNyYy5yb3RhdGUzZC55ICsgJywnICsgc3JjLnJvdGF0ZTNkLnogKyAnLCcgKyBzcmMucm90YXRlM2QudyArIHNyYy5yb3RhdGUzZEFuZ2xlICsgJyknO1xyXG5cclxuICAgIHN0eWxlLnRyYW5zZm9ybU9yaWdpbiA9IHR4ICsgJyAnICsgdHk7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IERPTUVsZW1lbnRDU1NSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgRE9NRWxlbWVudCA9IHJlcXVpcmUoJy4vRE9NRWxlbWVudCcpO1xyXG52YXIgR2FtZU9iamVjdEZhY3RvcnkgPSByZXF1aXJlKCcuLi9HYW1lT2JqZWN0RmFjdG9yeScpO1xyXG5cclxuLyoqXHJcbiAqIERPTSBFbGVtZW50IEdhbWUgT2JqZWN0cyBhcmUgYSB3YXkgdG8gY29udHJvbCBhbmQgbWFuaXB1bGF0ZSBIVE1MIEVsZW1lbnRzIG92ZXIgdGhlIHRvcCBvZiB5b3VyIGdhbWUuXHJcbiAqIFxyXG4gKiBJbiBvcmRlciBmb3IgRE9NIEVsZW1lbnRzIHRvIGRpc3BsYXkgeW91IGhhdmUgdG8gZW5hYmxlIHRoZW0gYnkgYWRkaW5nIHRoZSBmb2xsb3dpbmcgdG8geW91ciBnYW1lXHJcbiAqIGNvbmZpZ3VyYXRpb24gb2JqZWN0OlxyXG4gKiBcclxuICogYGBgamF2YXNjcmlwdFxyXG4gKiBkb20ge1xyXG4gKiAgIGNyZWF0ZUNvbnRhaW5lcjogdHJ1ZVxyXG4gKiB9XHJcbiAqIGBgYFxyXG4gKiBcclxuICogV2hlbiB0aGlzIGlzIGFkZGVkLCBQaGFzZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIERPTSBDb250YWluZXIgZGl2IHRoYXQgaXMgcG9zaXRpb25lZCBvdmVyIHRoZSB0b3BcclxuICogb2YgdGhlIGdhbWUgY2FudmFzLiBUaGlzIGRpdiBpcyBzaXplZCB0byBtYXRjaCB0aGUgY2FudmFzLCBhbmQgaWYgdGhlIGNhbnZhcyBzaXplIGNoYW5nZXMsIGFzIGEgcmVzdWx0IG9mXHJcbiAqIHNldHRpbmdzIHdpdGhpbiB0aGUgU2NhbGUgTWFuYWdlciwgdGhlIGRvbSBjb250YWluZXIgaXMgcmVzaXplZCBhY2NvcmRpbmdseS5cclxuICogXHJcbiAqIFlvdSBjYW4gY3JlYXRlIGEgRE9NIEVsZW1lbnQgYnkgZWl0aGVyIHBhc3NpbmcgaW4gRE9NU3RyaW5ncywgb3IgYnkgcGFzc2luZyBpbiBhIHJlZmVyZW5jZSB0byBhbiBleGlzdGluZ1xyXG4gKiBFbGVtZW50IHRoYXQgeW91IHdpc2ggdG8gYmUgcGxhY2VkIHVuZGVyIHRoZSBjb250cm9sIG9mIFBoYXNlci4gRm9yIGV4YW1wbGU6XHJcbiAqIFxyXG4gKiBgYGBqYXZhc2NyaXB0XHJcbiAqIHRoaXMuYWRkLmRvbSh4LCB5LCAnZGl2JywgJ2JhY2tncm91bmQtY29sb3I6IGxpbWU7IHdpZHRoOiAyMjBweDsgaGVpZ2h0OiAxMDBweDsgZm9udDogNDhweCBBcmlhbCcsICdQaGFzZXInKTtcclxuICogYGBgXHJcbiAqIFxyXG4gKiBUaGUgYWJvdmUgY29kZSB3aWxsIGluc2VydCBhIGRpdiBlbGVtZW50IGludG8gdGhlIERPTSBDb250YWluZXIgYXQgdGhlIGdpdmVuIHgveSBjb29yZGluYXRlLiBUaGUgRE9NU3RyaW5nIGluXHJcbiAqIHRoZSA0dGggYXJndW1lbnQgc2V0cyB0aGUgaW5pdGlhbCBDU1Mgc3R5bGUgb2YgdGhlIGRpdiBhbmQgdGhlIGZpbmFsIGFyZ3VtZW50IGlzIHRoZSBpbm5lciB0ZXh0LiBJbiB0aGlzIGNhc2UsXHJcbiAqIGl0IHdpbGwgY3JlYXRlIGEgbGltZSBjb2xvcmVkIGRpdiB0aGF0IGlzIDIyMHB4IGJ5IDEwMHB4IGluIHNpemUgd2l0aCB0aGUgdGV4dCBQaGFzZXIgaW4gaXQsIGluIGFuIEFyaWFsIGZvbnQuXHJcbiAqIFxyXG4gKiBZb3Ugc2hvdWxkIG5lYXJseSBhbHdheXMsIHdpdGhvdXQgZXhjZXB0aW9uLCB1c2UgZXhwbGljaXRseSBzaXplZCBIVE1MIEVsZW1lbnRzLCBpbiBvcmRlciB0byBmdWxseSBjb250cm9sXHJcbiAqIGFsaWdubWVudCBhbmQgcG9zaXRpb25pbmcgb2YgdGhlIGVsZW1lbnRzIG5leHQgdG8gcmVndWxhciBnYW1lIGNvbnRlbnQuXHJcbiAqIFxyXG4gKiBSYXRoZXIgdGhhbiBzcGVjaWZ5IHRoZSBDU1MgYW5kIEhUTUwgZGlyZWN0bHkgeW91IGNhbiB1c2UgdGhlIGBsb2FkLmh0bWxgIEZpbGUgTG9hZGVyIHRvIGxvYWQgaXQgaW50byB0aGVcclxuICogY2FjaGUgYW5kIHRoZW4gdXNlIHRoZSBgY3JlYXRlRnJvbUNhY2hlYCBtZXRob2QgaW5zdGVhZC4gWW91IGNhbiBhbHNvIHVzZSBgY3JlYXRlRnJvbUhUTUxgIGFuZCB2YXJpb3VzIG90aGVyXHJcbiAqIG1ldGhvZHMgYXZhaWxhYmxlIGluIHRoaXMgY2xhc3MgdG8gaGVscCBjb25zdHJ1Y3QgeW91ciBlbGVtZW50cy5cclxuICogXHJcbiAqIE9uY2UgdGhlIGVsZW1lbnQgaGFzIGJlZW4gY3JlYXRlZCB5b3UgY2FuIHRoZW4gY29udHJvbCBpdCBsaWtlIHlvdSB3b3VsZCBhbnkgb3RoZXIgR2FtZSBPYmplY3QuIFlvdSBjYW4gc2V0IGl0c1xyXG4gKiBwb3NpdGlvbiwgc2NhbGUsIHJvdGF0aW9uLCBhbHBoYSBhbmQgb3RoZXIgcHJvcGVydGllcy4gSXQgd2lsbCBtb3ZlIGFzIHRoZSBtYWluIFNjZW5lIENhbWVyYSBtb3ZlcyBhbmQgYmUgY2xpcHBlZFxyXG4gKiBhdCB0aGUgZWRnZSBvZiB0aGUgY2FudmFzLiBJdCdzIGltcG9ydGFudCB0byByZW1lbWJlciBzb21lIGxpbWl0YXRpb25zIG9mIERPTSBFbGVtZW50czogVGhlIG9idmlvdXMgb25lIGlzIHRoYXRcclxuICogdGhleSBhcHBlYXIgYWJvdmUgb3IgYmVsb3cgeW91ciBnYW1lIGNhbnZhcy4gWW91IGNhbm5vdCBibGVuZCB0aGVtIGludG8gdGhlIGRpc3BsYXkgbGlzdCwgbWVhbmluZyB5b3UgY2Fubm90IGhhdmVcclxuICogYSBET00gRWxlbWVudCwgdGhlbiBhIFNwcml0ZSwgdGhlbiBhbm90aGVyIERPTSBFbGVtZW50IGJlaGluZCBpdC5cclxuICogXHJcbiAqIFRoZXkgYWxzbyBjYW5ub3QgYmUgZW5hYmxlZCBmb3IgaW5wdXQuIFRvIGRvIHRoYXQsIHlvdSBoYXZlIHRvIHVzZSB0aGUgYGFkZExpc3RlbmVyYCBtZXRob2QgdG8gYWRkIG5hdGl2ZSBldmVudFxyXG4gKiBsaXN0ZW5lcnMgZGlyZWN0bHkuIFRoZSBmaW5hbCBsaW1pdGF0aW9uIGlzIHRvIGRvIHdpdGggY2FtZXJhcy4gVGhlIERPTSBDb250YWluZXIgaXMgc2l6ZWQgdG8gbWF0Y2ggdGhlIGdhbWUgY2FudmFzXHJcbiAqIGVudGlyZWx5IGFuZCBjbGlwcGVkIGFjY29yZGluZ2x5LiBET00gRWxlbWVudHMgcmVzcGVjdCBjYW1lcmEgc2Nyb2xsaW5nIGFuZCBzY3JvbGxGYWN0b3Igc2V0dGluZ3MsIGJ1dCBpZiB5b3VcclxuICogY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBjYW1lcmEgc28gaXQgbm8gbG9uZ2VyIG1hdGNoZXMgdGhlIHNpemUgb2YgdGhlIGNhbnZhcywgdGhleSB3b24ndCBiZSBjbGlwcGVkIGFjY29yZGluZ2x5LlxyXG4gKiBcclxuICogQWxzbywgYWxsIERPTSBFbGVtZW50cyBhcmUgaW5zZXJ0ZWQgaW50byB0aGUgc2FtZSBET00gQ29udGFpbmVyLCByZWdhcmRsZXNzIG9mIHdoaWNoIFNjZW5lIHRoZXkgYXJlIGNyZWF0ZWQgaW4uXHJcbiAqIFxyXG4gKiBET00gRWxlbWVudHMgYXJlIGEgcG93ZXJmdWwgd2F5IHRvIGFsaWduIG5hdGl2ZSBIVE1MIHdpdGggeW91ciBQaGFzZXIgR2FtZSBPYmplY3RzLiBGb3IgZXhhbXBsZSwgeW91IGNhbiBpbnNlcnRcclxuICogYSBsb2dpbiBmb3JtIGZvciBhIG11bHRpcGxheWVyIGdhbWUgZGlyZWN0bHkgaW50byB5b3VyIHRpdGxlIHNjcmVlbi4gT3IgYSB0ZXh0IGlucHV0IGJveCBmb3IgYSBoaWdoc2NvcmUgdGFibGUuXHJcbiAqIE9yIGEgYmFubmVyIGFkIGZyb20gYSAzcmQgcGFydHkgc2VydmljZS4gT3IgcGVyaGFwcyB5b3UnZCBsaWtlIHRvIHVzZSB0aGVtIGZvciBoaWdoIHJlc29sdXRpb24gdGV4dCBkaXNwbGF5IGFuZFxyXG4gKiBVSS4gVGhlIGNob2ljZSBpcyB1cCB0byB5b3UsIGp1c3QgcmVtZW1iZXIgdGhhdCB5b3UncmUgZGVhbGluZyB3aXRoIHN0YW5kYXJkIEhUTUwgYW5kIENTUyBmbG9hdGluZyBvdmVyIHRoZSB0b3BcclxuICogb2YgeW91ciBnYW1lLCBhbmQgc2hvdWxkIHRyZWF0IGl0IGFjY29yZGluZ2x5LlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBET00gRWxlbWVudCBHYW1lIE9iamVjdCBoYXMgYmVlbiBidWlsdCBpbnRvIFBoYXNlci5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjZG9tXHJcbiAqIEBzaW5jZSAzLjE3LjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIERPTSBFbGVtZW50IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBET00gRWxlbWVudCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7KEhUTUxFbGVtZW50fHN0cmluZyl9IFtlbGVtZW50XSAtIEFuIGV4aXN0aW5nIERPTSBlbGVtZW50LCBvciBhIHN0cmluZy4gSWYgYSBzdHJpbmcgc3RhcnRpbmcgd2l0aCBhICMgaXQgd2lsbCBkbyBhIGBnZXRFbGVtZW50QnlJZGAgbG9vay11cCBvbiB0aGUgc3RyaW5nIChtaW51cyB0aGUgaGFzaCkuIFdpdGhvdXQgYSBoYXNoLCBpdCByZXByZXNlbnRzIHRoZSB0eXBlIG9mIGVsZW1lbnQgdG8gY3JlYXRlLCBpLmUuICdkaXYnLlxyXG4gKiBAcGFyYW0geyhzdHJpbmd8YW55KX0gW3N0eWxlXSAtIElmIGEgc3RyaW5nLCB3aWxsIGJlIHNldCBkaXJlY3RseSBhcyB0aGUgZWxlbWVudHMgYHN0eWxlYCBwcm9wZXJ0eSB2YWx1ZS4gSWYgYSBwbGFpbiBvYmplY3QsIHdpbGwgYmUgaXRlcmF0ZWQgYW5kIHRoZSB2YWx1ZXMgdHJhbnNmZXJyZWQuIEluIGJvdGggY2FzZXMgdGhlIHZhbHVlcyByZXBsYWNpbmcgd2hhdGV2ZXIgQ1NTIHN0eWxlcyBtYXkgaGF2ZSBiZWVuIHByZXZpb3VzbHkgc2V0LlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gW2lubmVyVGV4dF0gLSBJZiBnaXZlbiwgd2lsbCBiZSBzZXQgZGlyZWN0bHkgYXMgdGhlIGVsZW1lbnRzIGBpbm5lclRleHRgIHByb3BlcnR5IHZhbHVlLCByZXBsYWNpbmcgd2hhdGV2ZXIgd2FzIHRoZXJlIGJlZm9yZS5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkRPTUVsZW1lbnR9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuR2FtZU9iamVjdEZhY3RvcnkucmVnaXN0ZXIoJ2RvbScsIGZ1bmN0aW9uICh4LCB5LCBlbGVtZW50LCBzdHlsZSwgaW5uZXJUZXh0KVxyXG57XHJcbiAgICB2YXIgZ2FtZU9iamVjdCA9IG5ldyBET01FbGVtZW50KHRoaXMuc2NlbmUsIHgsIHksIGVsZW1lbnQsIHN0eWxlLCBpbm5lclRleHQpO1xyXG5cclxuICAgIHRoaXMuZGlzcGxheUxpc3QuYWRkKGdhbWVPYmplY3QpO1xyXG4gICAgdGhpcy51cGRhdGVMaXN0LmFkZChnYW1lT2JqZWN0KTtcclxuXHJcbiAgICByZXR1cm4gZ2FtZU9iamVjdDtcclxufSk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvTk9PUCcpO1xyXG52YXIgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvTk9PUCcpO1xyXG5cclxuaWYgKHR5cGVvZiBXRUJHTF9SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuL0RPTUVsZW1lbnRDU1NSZW5kZXJlcicpO1xyXG59XHJcblxyXG5pZiAodHlwZW9mIENBTlZBU19SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi9ET01FbGVtZW50Q1NTUmVuZGVyZXInKTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgcmVuZGVyV2ViR0w6IHJlbmRlcldlYkdMLFxyXG4gICAgcmVuZGVyQ2FudmFzOiByZW5kZXJDYW52YXNcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBHYW1lIE9iamVjdCBEZXN0cm95IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gYSBHYW1lIE9iamVjdCBpbnN0YW5jZSBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gZm9yIGl0IG9uIGEgR2FtZSBPYmplY3QgaW5zdGFuY2UgdXNpbmcgYEdhbWVPYmplY3Qub24oJ2Rlc3Ryb3knLCBsaXN0ZW5lcilgLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkdhbWVPYmplY3RzLkV2ZW50cyNERVNUUk9ZXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB3aGljaCBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdkZXN0cm95JztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIFZpZGVvIEdhbWUgT2JqZWN0IENvbXBsZXRlIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gYSBWaWRlbyBmaW5pc2hlcyBwbGF5YmFjayBieSByZWFjaGluZyB0aGUgZW5kIG9mIGl0cyBkdXJhdGlvbi4gSXRcclxuICogaXMgYWxzbyBkaXNwYXRjaGVkIGlmIGEgdmlkZW8gbWFya2VyIHNlcXVlbmNlIGlzIGJlaW5nIHBsYXllZCBhbmQgcmVhY2hlcyB0aGUgZW5kLlxyXG4gKiBcclxuICogTm90ZSB0aGF0IG5vdCBhbGwgdmlkZW9zIGNhbiBmaXJlIHRoaXMgZXZlbnQuIExpdmUgc3RyZWFtcywgZm9yIGV4YW1wbGUsIGhhdmUgbm8gZml4ZWQgZHVyYXRpb24sXHJcbiAqIHNvIG5ldmVyIHRlY2huaWNhbGx5ICdjb21wbGV0ZScuXHJcbiAqIFxyXG4gKiBJZiBhIHZpZGVvIGlzIHN0b3BwZWQgZnJvbSBwbGF5YmFjaywgdmlhIHRoZSBgVmlkZW8uc3RvcGAgbWV0aG9kLCBpdCB3aWxsIGVtaXQgdGhlXHJcbiAqIGBWSURFT19TVE9QYCBldmVudCBpbnN0ZWFkIG9mIHRoaXMgb25lLlxyXG4gKiBcclxuICogTGlzdGVuIGZvciBpdCBmcm9tIGEgVmlkZW8gR2FtZSBPYmplY3QgaW5zdGFuY2UgdXNpbmcgYFZpZGVvLm9uKCdjb21wbGV0ZScsIGxpc3RlbmVyKWAuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuR2FtZU9iamVjdHMuRXZlbnRzI1ZJREVPX0NPTVBMRVRFXHJcbiAqIEBzaW5jZSAzLjIwLjBcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlZpZGVvfSB2aWRlbyAtIFRoZSBWaWRlbyBHYW1lIE9iamVjdCB3aGljaCBjb21wbGV0ZWQgcGxheWJhY2suXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdjb21wbGV0ZSc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBWaWRlbyBHYW1lIE9iamVjdCBDcmVhdGVkIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gdGhlIHRleHR1cmUgZm9yIGEgVmlkZW8gaGFzIGJlZW4gY3JlYXRlZC4gVGhpcyBoYXBwZW5zXHJcbiAqIHdoZW4gZW5vdWdoIG9mIHRoZSB2aWRlbyBzb3VyY2UgaGFzIGJlZW4gbG9hZGVkIHRoYXQgdGhlIGJyb3dzZXIgaXMgYWJsZSB0byByZW5kZXIgYVxyXG4gKiBmcmFtZSBmcm9tIGl0LlxyXG4gKiBcclxuICogTGlzdGVuIGZvciBpdCBmcm9tIGEgVmlkZW8gR2FtZSBPYmplY3QgaW5zdGFuY2UgdXNpbmcgYFZpZGVvLm9uKCdjcmVhdGVkJywgbGlzdGVuZXIpYC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5HYW1lT2JqZWN0cy5FdmVudHMjVklERU9fQ1JFQVRFRFxyXG4gKiBAc2luY2UgMy4yMC4wXHJcbiAqIFxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5WaWRlb30gdmlkZW8gLSBUaGUgVmlkZW8gR2FtZSBPYmplY3Qgd2hpY2ggcmFpc2VkIHRoZSBldmVudC5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSB3aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGUgdmlkZW8uXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gaGVpZ2h0IC0gVGhlIGhlaWdodCBvZiB0aGUgdmlkZW8uXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdjcmVhdGVkJztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIFZpZGVvIEdhbWUgT2JqZWN0IEVycm9yIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gYSBWaWRlbyB0cmllcyB0byBwbGF5IGEgc291cmNlIHRoYXQgZG9lcyBub3QgZXhpc3QsIG9yIGlzIHRoZSB3cm9uZyBmaWxlIHR5cGUuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gZm9yIGl0IGZyb20gYSBWaWRlbyBHYW1lIE9iamVjdCBpbnN0YW5jZSB1c2luZyBgVmlkZW8ub24oJ2Vycm9yJywgbGlzdGVuZXIpYC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5HYW1lT2JqZWN0cy5FdmVudHMjVklERU9fRVJST1JcclxuICogQHNpbmNlIDMuMjAuMFxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuVmlkZW99IHZpZGVvIC0gVGhlIFZpZGVvIEdhbWUgT2JqZWN0IHdoaWNoIHRocmV3IHRoZSBlcnJvci5cclxuICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBUaGUgbmF0aXZlIERPTSBldmVudCB0aGUgYnJvd3NlciByYWlzZWQgZHVyaW5nIHBsYXliYWNrLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAnZXJyb3InO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgVmlkZW8gR2FtZSBPYmplY3QgTG9vcCBFdmVudC5cclxuICogXHJcbiAqIFRoaXMgZXZlbnQgaXMgZGlzcGF0Y2hlZCB3aGVuIGEgVmlkZW8gdGhhdCBpcyBjdXJyZW50bHkgcGxheWluZyBoYXMgbG9vcGVkLiBUaGlzIG9ubHlcclxuICogaGFwcGVucyBpZiB0aGUgYGxvb3BgIHBhcmFtZXRlciB3YXMgc3BlY2lmaWVkLCBvciB0aGUgYHNldExvb3BgIG1ldGhvZCB3YXMgY2FsbGVkLFxyXG4gKiBhbmQgaWYgdGhlIHZpZGVvIGhhcyBhIGZpeGVkIGR1cmF0aW9uLiBWaWRlbyBzdHJlYW1zLCBmb3IgZXhhbXBsZSwgY2Fubm90IGxvb3AsIGFzXHJcbiAqIHRoZXkgaGF2ZSBubyBkdXJhdGlvbi5cclxuICogXHJcbiAqIExvb3BpbmcgaXMgYmFzZWQgb24gdGhlIHJlc3VsdCBvZiB0aGUgVmlkZW8gYHRpbWV1cGRhdGVgIGV2ZW50LiBUaGlzIGV2ZW50IGlzIG5vdFxyXG4gKiBmcmFtZS1hY2N1cmF0ZSwgZHVlIHRvIHRoZSB3YXkgYnJvd3NlcnMgd29yaywgc28gcGxlYXNlIGRvIG5vdCByZWx5IG9uIHRoaXMgbG9vcFxyXG4gKiBldmVudCB0byBiZSB0aW1lIG9yIGZyYW1lIHByZWNpc2UuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gZm9yIGl0IGZyb20gYSBWaWRlbyBHYW1lIE9iamVjdCBpbnN0YW5jZSB1c2luZyBgVmlkZW8ub24oJ2xvb3AnLCBsaXN0ZW5lcilgLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkdhbWVPYmplY3RzLkV2ZW50cyNWSURFT19MT09QXHJcbiAqIEBzaW5jZSAzLjIwLjBcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlZpZGVvfSB2aWRlbyAtIFRoZSBWaWRlbyBHYW1lIE9iamVjdCB3aGljaCBoYXMgbG9vcGVkLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAnbG9vcCc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBWaWRlbyBHYW1lIE9iamVjdCBQbGF5IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gYSBWaWRlbyBiZWdpbnMgcGxheWJhY2suIEZvciB2aWRlb3MgdGhhdCBkbyBub3QgcmVxdWlyZVxyXG4gKiBpbnRlcmFjdGlvbiB1bmxvY2tpbmcsIHRoaXMgaXMgdXN1YWxseSBhcyBzb29uIGFzIHRoZSBgVmlkZW8ucGxheWAgbWV0aG9kIGlzIGNhbGxlZC5cclxuICogSG93ZXZlciwgZm9yIHZpZGVvcyB0aGF0IHJlcXVpcmUgdW5sb2NraW5nLCBpdCBpcyBmaXJlZCBvbmNlIHBsYXliYWNrIGJlZ2lucyBhZnRlclxyXG4gKiB0aGV5J3ZlIGJlZW4gdW5sb2NrZWQuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gZm9yIGl0IGZyb20gYSBWaWRlbyBHYW1lIE9iamVjdCBpbnN0YW5jZSB1c2luZyBgVmlkZW8ub24oJ3BsYXknLCBsaXN0ZW5lcilgLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkdhbWVPYmplY3RzLkV2ZW50cyNWSURFT19QTEFZXHJcbiAqIEBzaW5jZSAzLjIwLjBcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlZpZGVvfSB2aWRlbyAtIFRoZSBWaWRlbyBHYW1lIE9iamVjdCB3aGljaCBzdGFydGVkIHBsYXliYWNrLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAncGxheSc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBWaWRlbyBHYW1lIE9iamVjdCBTZWVrZWQgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiBhIFZpZGVvIGNvbXBsZXRlcyBzZWVraW5nIHRvIGEgbmV3IHBvaW50IGluIGl0cyB0aW1lbGluZS5cclxuICogXHJcbiAqIExpc3RlbiBmb3IgaXQgZnJvbSBhIFZpZGVvIEdhbWUgT2JqZWN0IGluc3RhbmNlIHVzaW5nIGBWaWRlby5vbignc2Vla2VkJywgbGlzdGVuZXIpYC5cclxuICpcclxuICogQGV2ZW50IFBoYXNlci5HYW1lT2JqZWN0cy5FdmVudHMjVklERU9fU0VFS0VEXHJcbiAqIEBzaW5jZSAzLjIwLjBcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlZpZGVvfSB2aWRlbyAtIFRoZSBWaWRlbyBHYW1lIE9iamVjdCB3aGljaCBjb21wbGV0ZWQgc2Vla2luZy5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ3NlZWtlZCc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBWaWRlbyBHYW1lIE9iamVjdCBTZWVraW5nIEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gYSBWaWRlbyBfYmVnaW5zXyBzZWVraW5nIHRvIGEgbmV3IHBvaW50IGluIGl0cyB0aW1lbGluZS5cclxuICogV2hlbiB0aGUgc2VlayBpcyBjb21wbGV0ZSwgaXQgd2lsbCBkaXNwYXRjaCB0aGUgYFZJREVPX1NFRUtFRGAgZXZlbnQgdG8gY29uY2x1ZGUuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gZm9yIGl0IGZyb20gYSBWaWRlbyBHYW1lIE9iamVjdCBpbnN0YW5jZSB1c2luZyBgVmlkZW8ub24oJ3NlZWtpbmcnLCBsaXN0ZW5lcilgLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkdhbWVPYmplY3RzLkV2ZW50cyNWSURFT19TRUVLSU5HXHJcbiAqIEBzaW5jZSAzLjIwLjBcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlZpZGVvfSB2aWRlbyAtIFRoZSBWaWRlbyBHYW1lIE9iamVjdCB3aGljaCBzdGFydGVkIHNlZWtpbmcuXHJcbiAqL1xyXG5tb2R1bGUuZXhwb3J0cyA9ICdzZWVraW5nJztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhlIFZpZGVvIEdhbWUgT2JqZWN0IFN0b3BwZWQgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiBhIFZpZGVvIGlzIHN0b3BwZWQgZnJvbSBwbGF5YmFjayB2aWEgYSBjYWxsIHRvIHRoZSBgVmlkZW8uc3RvcGAgbWV0aG9kLFxyXG4gKiBlaXRoZXIgZGlyZWN0bHkgdmlhIGdhbWUgY29kZSwgb3IgaW5kaXJlY3RseSBhcyB0aGUgcmVzdWx0IG9mIGNoYW5naW5nIGEgdmlkZW8gc291cmNlIG9yIGRlc3Ryb3lpbmcgaXQuXHJcbiAqIFxyXG4gKiBMaXN0ZW4gZm9yIGl0IGZyb20gYSBWaWRlbyBHYW1lIE9iamVjdCBpbnN0YW5jZSB1c2luZyBgVmlkZW8ub24oJ3N0b3AnLCBsaXN0ZW5lcilgLlxyXG4gKlxyXG4gKiBAZXZlbnQgUGhhc2VyLkdhbWVPYmplY3RzLkV2ZW50cyNWSURFT19TVE9QXHJcbiAqIEBzaW5jZSAzLjIwLjBcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlZpZGVvfSB2aWRlbyAtIFRoZSBWaWRlbyBHYW1lIE9iamVjdCB3aGljaCBzdG9wcGVkIHBsYXliYWNrLlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAnc3RvcCc7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBWaWRlbyBHYW1lIE9iamVjdCBUaW1lb3V0IEV2ZW50LlxyXG4gKiBcclxuICogVGhpcyBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gYSBWaWRlbyBoYXMgZXhoYXVzdGVkIGl0cyBhbGxvY2F0ZWQgdGltZSB3aGlsZSB0cnlpbmcgdG8gY29ubmVjdCB0byBhIHZpZGVvXHJcbiAqIHNvdXJjZSB0byBzdGFydCBwbGF5YmFjay5cclxuICogXHJcbiAqIExpc3RlbiBmb3IgaXQgZnJvbSBhIFZpZGVvIEdhbWUgT2JqZWN0IGluc3RhbmNlIHVzaW5nIGBWaWRlby5vbigndGltZW91dCcsIGxpc3RlbmVyKWAuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuR2FtZU9iamVjdHMuRXZlbnRzI1ZJREVPX1RJTUVPVVRcclxuICogQHNpbmNlIDMuMjAuMFxyXG4gKiBcclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuVmlkZW99IHZpZGVvIC0gVGhlIFZpZGVvIEdhbWUgT2JqZWN0IHdoaWNoIHRpbWVkIG91dC5cclxuICovXHJcbm1vZHVsZS5leHBvcnRzID0gJ3RpbWVvdXQnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBUaGUgVmlkZW8gR2FtZSBPYmplY3QgVW5sb2NrZWQgRXZlbnQuXHJcbiAqIFxyXG4gKiBUaGlzIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiBhIFZpZGVvIHRoYXQgd2FzIHByZXZlbnRlZCBmcm9tIHBsYXliYWNrIGR1ZSB0byB0aGUgYnJvd3NlcnNcclxuICogTWVkaWEgRW5nYWdlbWVudCBJbnRlcmFjdGlvbiBwb2xpY3ksIGlzIHVubG9ja2VkIGJ5IGEgdXNlciBnZXN0dXJlLlxyXG4gKiBcclxuICogTGlzdGVuIGZvciBpdCBmcm9tIGEgVmlkZW8gR2FtZSBPYmplY3QgaW5zdGFuY2UgdXNpbmcgYFZpZGVvLm9uKCd1bmxvY2tlZCcsIGxpc3RlbmVyKWAuXHJcbiAqXHJcbiAqIEBldmVudCBQaGFzZXIuR2FtZU9iamVjdHMuRXZlbnRzI1ZJREVPX1VOTE9DS0VEXHJcbiAqIEBzaW5jZSAzLjIwLjBcclxuICogXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlZpZGVvfSB2aWRlbyAtIFRoZSBWaWRlbyBHYW1lIE9iamVjdCB3aGljaCByYWlzZWQgdGhlIGV2ZW50LlxyXG4gKi9cclxubW9kdWxlLmV4cG9ydHMgPSAndW5sb2NrZWQnO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5FdmVudHNcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBERVNUUk9ZOiByZXF1aXJlKCcuL0RFU1RST1lfRVZFTlQnKSxcclxuICAgIFZJREVPX0NPTVBMRVRFOiByZXF1aXJlKCcuL1ZJREVPX0NPTVBMRVRFX0VWRU5UJyksXHJcbiAgICBWSURFT19DUkVBVEVEOiByZXF1aXJlKCcuL1ZJREVPX0NSRUFURURfRVZFTlQnKSxcclxuICAgIFZJREVPX0VSUk9SOiByZXF1aXJlKCcuL1ZJREVPX0VSUk9SX0VWRU5UJyksXHJcbiAgICBWSURFT19MT09QOiByZXF1aXJlKCcuL1ZJREVPX0xPT1BfRVZFTlQnKSxcclxuICAgIFZJREVPX1BMQVk6IHJlcXVpcmUoJy4vVklERU9fUExBWV9FVkVOVCcpLFxyXG4gICAgVklERU9fU0VFS0VEOiByZXF1aXJlKCcuL1ZJREVPX1NFRUtFRF9FVkVOVCcpLFxyXG4gICAgVklERU9fU0VFS0lORzogcmVxdWlyZSgnLi9WSURFT19TRUVLSU5HX0VWRU5UJyksXHJcbiAgICBWSURFT19TVE9QOiByZXF1aXJlKCcuL1ZJREVPX1NUT1BfRVZFTlQnKSxcclxuICAgIFZJREVPX1RJTUVPVVQ6IHJlcXVpcmUoJy4vVklERU9fVElNRU9VVF9FVkVOVCcpLFxyXG4gICAgVklERU9fVU5MT0NLRUQ6IHJlcXVpcmUoJy4vVklERU9fVU5MT0NLRURfRVZFTlQnKVxyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgQ29tcG9uZW50cyA9IHJlcXVpcmUoJy4uL2NvbXBvbmVudHMnKTtcclxudmFyIEdhbWVPYmplY3QgPSByZXF1aXJlKCcuLi9HYW1lT2JqZWN0Jyk7XHJcbnZhciBFeHRlcm5SZW5kZXIgPSByZXF1aXJlKCcuL0V4dGVyblJlbmRlcicpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQW4gRXh0ZXJuIEdhbWUgT2JqZWN0IGlzIGEgc3BlY2lhbCB0eXBlIG9mIEdhbWUgT2JqZWN0IHRoYXQgYWxsb3dzIHlvdSB0byBwYXNzXHJcbiAqIHJlbmRlcmluZyBvZmYgdG8gYSAzcmQgcGFydHkuXHJcbiAqIFxyXG4gKiBXaGVuIHlvdSBjcmVhdGUgYW4gRXh0ZXJuIGFuZCBwbGFjZSBpdCBpbiB0aGUgZGlzcGxheSBsaXN0IG9mIGEgU2NlbmUsIHRoZSByZW5kZXJlciB3aWxsXHJcbiAqIHByb2Nlc3MgdGhlIGxpc3QgYXMgdXN1YWwuIFdoZW4gaXQgZmluZHMgYW4gRXh0ZXJuIGl0IHdpbGwgZmx1c2ggdGhlIGN1cnJlbnQgYmF0Y2gsXHJcbiAqIGNsZWFyIGRvd24gdGhlIHBpcGVsaW5lIGFuZCBwcmVwYXJlIGEgdHJhbnNmb3JtIG1hdHJpeCB3aGljaCB5b3VyIHJlbmRlciBmdW5jdGlvbiBjYW5cclxuICogdGFrZSBhZHZhbnRhZ2Ugb2YsIGlmIHJlcXVpcmVkLlxyXG4gKiBcclxuICogVGhlIFdlYkdMIGNvbnRleHQgaXMgdGhlbiBsZWZ0IGlzIGEgJ2NsZWFuJyBzdGF0ZSwgcmVhZHkgZm9yIHlvdSB0byBiaW5kIHlvdXIgb3duIHNoYWRlcnMsXHJcbiAqIG9yIGRyYXcgdG8gaXQsIHdoYXRldmVyIHlvdSB3aXNoIHRvIGRvLiBPbmNlIHlvdSd2ZSBmaW5pc2hlZCwgeW91IHNob3VsZCBmcmVlLXVwIGFueVxyXG4gKiBvZiB5b3VyIHJlc291cmNlcy4gVGhlIEV4dGVybiB3aWxsIHRoZW4gcmViaW5kIHRoZSBQaGFzZXIgcGlwZWxpbmUgYW5kIGNhcnJ5IG9uIFxyXG4gKiByZW5kZXJpbmcgdGhlIGRpc3BsYXkgbGlzdC5cclxuICogXHJcbiAqIEFsdGhvdWdoIHRoaXMgb2JqZWN0IGhhcyBsb3RzIG9mIHByb3BlcnRpZXMgc3VjaCBhcyBBbHBoYSwgQmxlbmQgTW9kZSBhbmQgVGludCwgbm9uZSBvZlxyXG4gKiB0aGVtIGFyZSB1c2VkIGR1cmluZyByZW5kZXJpbmcgdW5sZXNzIHlvdSB0YWtlIGFkdmFudGFnZSBvZiB0aGVtIGluIHlvdXIgb3duIHJlbmRlciBjb2RlLlxyXG4gKlxyXG4gKiBAY2xhc3MgRXh0ZXJuXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0XHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjE2LjBcclxuICpcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQWxwaGFcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQmxlbmRNb2RlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkRlcHRoXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkZsaXBcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuT3JpZ2luXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlNjcm9sbEZhY3RvclxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TaXplXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRleHR1cmVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGludFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1cclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVmlzaWJsZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBUaGUgU2NlbmUgdG8gd2hpY2ggdGhpcyBHYW1lIE9iamVjdCBiZWxvbmdzLiBBIEdhbWUgT2JqZWN0IGNhbiBvbmx5IGJlbG9uZyB0byBvbmUgU2NlbmUgYXQgYSB0aW1lLlxyXG4gKi9cclxudmFyIEV4dGVybiA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogR2FtZU9iamVjdCxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBDb21wb25lbnRzLkFscGhhLFxyXG4gICAgICAgIENvbXBvbmVudHMuQmxlbmRNb2RlLFxyXG4gICAgICAgIENvbXBvbmVudHMuRGVwdGgsXHJcbiAgICAgICAgQ29tcG9uZW50cy5GbGlwLFxyXG4gICAgICAgIENvbXBvbmVudHMuT3JpZ2luLFxyXG4gICAgICAgIENvbXBvbmVudHMuU2Nyb2xsRmFjdG9yLFxyXG4gICAgICAgIENvbXBvbmVudHMuU2l6ZSxcclxuICAgICAgICBDb21wb25lbnRzLlRleHR1cmUsXHJcbiAgICAgICAgQ29tcG9uZW50cy5UaW50LFxyXG4gICAgICAgIENvbXBvbmVudHMuVHJhbnNmb3JtLFxyXG4gICAgICAgIENvbXBvbmVudHMuVmlzaWJsZSxcclxuICAgICAgICBFeHRlcm5SZW5kZXJcclxuICAgIF0sXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBFeHRlcm4gKHNjZW5lKVxyXG4gICAge1xyXG4gICAgICAgIEdhbWVPYmplY3QuY2FsbCh0aGlzLCBzY2VuZSwgJ0V4dGVybicpO1xyXG4gICAgfSxcclxuXHJcbiAgICBwcmVVcGRhdGU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIG92ZXJyaWRlIHRoaXMhXHJcbiAgICAgICAgLy8gIEFyZ3VtZW50czogdGltZSwgZGVsdGFcclxuICAgIH0sXHJcblxyXG4gICAgcmVuZGVyOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIC8vICBvdmVycmlkZSB0aGlzIVxyXG4gICAgICAgIC8vICBBcmd1bWVudHM6IHJlbmRlcmVyLCBjYW1lcmEsIGNhbGNNYXRyaXhcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBFeHRlcm47XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEV4dGVybiA9IHJlcXVpcmUoJy4vRXh0ZXJuJyk7XHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBFeHRlcm4gR2FtZSBPYmplY3QgYW5kIGFkZHMgaXQgdG8gdGhlIFNjZW5lLlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBFeHRlcm4gR2FtZSBPYmplY3QgaGFzIGJlZW4gYnVpbHQgaW50byBQaGFzZXIuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5I2V4dGVyblxyXG4gKiBAc2luY2UgMy4xNi4wXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5FeHRlcm59IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuR2FtZU9iamVjdEZhY3RvcnkucmVnaXN0ZXIoJ2V4dGVybicsIGZ1bmN0aW9uICgpXHJcbntcclxuICAgIHZhciBleHRlcm4gPSBuZXcgRXh0ZXJuKHRoaXMuc2NlbmUpO1xyXG5cclxuICAgIHRoaXMuZGlzcGxheUxpc3QuYWRkKGV4dGVybik7XHJcbiAgICB0aGlzLnVwZGF0ZUxpc3QuYWRkKGV4dGVybik7XHJcblxyXG4gICAgcmV0dXJuIGV4dGVybjtcclxufSk7XHJcblxyXG4vLyAgV2hlbiByZWdpc3RlcmluZyBhIGZhY3RvcnkgZnVuY3Rpb24gJ3RoaXMnIHJlZmVycyB0byB0aGUgR2FtZU9iamVjdEZhY3RvcnkgY29udGV4dC5cclxuLy9cclxuLy8gIFRoZXJlIGFyZSBzZXZlcmFsIHByb3BlcnRpZXMgYXZhaWxhYmxlIHRvIHVzZTpcclxuLy9cclxuLy8gIHRoaXMuc2NlbmUgLSBhIHJlZmVyZW5jZSB0byB0aGUgU2NlbmUgdGhhdCBvd25zIHRoZSBHYW1lT2JqZWN0RmFjdG9yeVxyXG4vLyAgdGhpcy5kaXNwbGF5TGlzdCAtIGEgcmVmZXJlbmNlIHRvIHRoZSBEaXNwbGF5IExpc3QgdGhlIFNjZW5lIG93bnNcclxuLy8gIHRoaXMudXBkYXRlTGlzdCAtIGEgcmVmZXJlbmNlIHRvIHRoZSBVcGRhdGUgTGlzdCB0aGUgU2NlbmUgb3duc1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxudmFyIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxuXHJcbmlmICh0eXBlb2YgV0VCR0xfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi9FeHRlcm5XZWJHTFJlbmRlcmVyJyk7XHJcbn1cclxuXHJcbmlmICh0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL0V4dGVybkNhbnZhc1JlbmRlcmVyJyk7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIHJlbmRlcldlYkdMOiByZW5kZXJXZWJHTCxcclxuICAgIHJlbmRlckNhbnZhczogcmVuZGVyQ2FudmFzXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5FeHRlcm4jcmVuZGVyV2ViR0xcclxuICogQHNpbmNlIDMuMTYuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBXZWJHTCByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuRXh0ZXJufSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgRXh0ZXJuV2ViR0xSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBwaXBlbGluZSA9IHJlbmRlcmVyLmN1cnJlbnRQaXBlbGluZTtcclxuXHJcbiAgICByZW5kZXJlci5jbGVhclBpcGVsaW5lKCk7XHJcblxyXG4gICAgdmFyIGNhbU1hdHJpeCA9IHJlbmRlcmVyLl90ZW1wTWF0cml4MTtcclxuICAgIHZhciBzcHJpdGVNYXRyaXggPSByZW5kZXJlci5fdGVtcE1hdHJpeDI7XHJcbiAgICB2YXIgY2FsY01hdHJpeCA9IHJlbmRlcmVyLl90ZW1wTWF0cml4MztcclxuXHJcbiAgICBzcHJpdGVNYXRyaXguYXBwbHlJVFJTKHNyYy54LCBzcmMueSwgc3JjLnJvdGF0aW9uLCBzcmMuc2NhbGVYLCBzcmMuc2NhbGVZKTtcclxuXHJcbiAgICBjYW1NYXRyaXguY29weUZyb20oY2FtZXJhLm1hdHJpeCk7XHJcblxyXG4gICAgaWYgKHBhcmVudE1hdHJpeClcclxuICAgIHtcclxuICAgICAgICAvLyAgTXVsdGlwbHkgdGhlIGNhbWVyYSBieSB0aGUgcGFyZW50IG1hdHJpeFxyXG4gICAgICAgIGNhbU1hdHJpeC5tdWx0aXBseVdpdGhPZmZzZXQocGFyZW50TWF0cml4LCAtY2FtZXJhLnNjcm9sbFggKiBzcmMuc2Nyb2xsRmFjdG9yWCwgLWNhbWVyYS5zY3JvbGxZICogc3JjLnNjcm9sbEZhY3RvclkpO1xyXG5cclxuICAgICAgICAvLyAgVW5kbyB0aGUgY2FtZXJhIHNjcm9sbFxyXG4gICAgICAgIHNwcml0ZU1hdHJpeC5lID0gc3JjLng7XHJcbiAgICAgICAgc3ByaXRlTWF0cml4LmYgPSBzcmMueTtcclxuXHJcbiAgICAgICAgLy8gIE11bHRpcGx5IGJ5IHRoZSBTcHJpdGUgbWF0cml4LCBzdG9yZSByZXN1bHQgaW4gY2FsY01hdHJpeFxyXG4gICAgICAgIGNhbU1hdHJpeC5tdWx0aXBseShzcHJpdGVNYXRyaXgsIGNhbGNNYXRyaXgpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAgIHNwcml0ZU1hdHJpeC5lIC09IGNhbWVyYS5zY3JvbGxYICogc3JjLnNjcm9sbEZhY3Rvclg7XHJcbiAgICAgICAgc3ByaXRlTWF0cml4LmYgLT0gY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWTtcclxuXHJcbiAgICAgICAgLy8gIE11bHRpcGx5IGJ5IHRoZSBTcHJpdGUgbWF0cml4LCBzdG9yZSByZXN1bHQgaW4gY2FsY01hdHJpeFxyXG4gICAgICAgIGNhbU1hdHJpeC5tdWx0aXBseShzcHJpdGVNYXRyaXgsIGNhbGNNYXRyaXgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICBDYWxsYmFja1xyXG4gICAgc3JjLnJlbmRlci5jYWxsKHNyYywgcmVuZGVyZXIsIGNhbWVyYSwgY2FsY01hdHJpeCk7XHJcblxyXG4gICAgcmVuZGVyZXIucmViaW5kUGlwZWxpbmUocGlwZWxpbmUpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBFeHRlcm5XZWJHTFJlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIEFSQzogMCxcclxuICAgIEJFR0lOX1BBVEg6IDEsXHJcbiAgICBDTE9TRV9QQVRIOiAyLFxyXG4gICAgRklMTF9SRUNUOiAzLFxyXG4gICAgTElORV9UTzogNCxcclxuICAgIE1PVkVfVE86IDUsXHJcbiAgICBMSU5FX1NUWUxFOiA2LFxyXG4gICAgRklMTF9TVFlMRTogNyxcclxuICAgIEZJTExfUEFUSDogOCxcclxuICAgIFNUUk9LRV9QQVRIOiA5LFxyXG4gICAgRklMTF9UUklBTkdMRTogMTAsXHJcbiAgICBTVFJPS0VfVFJJQU5HTEU6IDExLFxyXG4gICAgU0FWRTogMTQsXHJcbiAgICBSRVNUT1JFOiAxNSxcclxuICAgIFRSQU5TTEFURTogMTYsXHJcbiAgICBTQ0FMRTogMTcsXHJcbiAgICBST1RBVEU6IDE4LFxyXG4gICAgU0VUX1RFWFRVUkU6IDE5LFxyXG4gICAgQ0xFQVJfVEVYVFVSRTogMjAsXHJcbiAgICBHUkFESUVOVF9GSUxMX1NUWUxFOiAyMSxcclxuICAgIEdSQURJRU5UX0xJTkVfU1RZTEU6IDIyXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBCYXNlQ2FtZXJhID0gcmVxdWlyZSgnLi4vLi4vY2FtZXJhcy8yZC9CYXNlQ2FtZXJhLmpzJyk7XHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBDb21tYW5kcyA9IHJlcXVpcmUoJy4vQ29tbWFuZHMnKTtcclxudmFyIENvbXBvbmVudHNBbHBoYSA9IHJlcXVpcmUoJy4uL2NvbXBvbmVudHMvQWxwaGFTaW5nbGUnKTtcclxudmFyIENvbXBvbmVudHNCbGVuZE1vZGUgPSByZXF1aXJlKCcuLi9jb21wb25lbnRzL0JsZW5kTW9kZScpO1xyXG52YXIgQ29tcG9uZW50c0RlcHRoID0gcmVxdWlyZSgnLi4vY29tcG9uZW50cy9EZXB0aCcpO1xyXG52YXIgQ29tcG9uZW50c01hc2sgPSByZXF1aXJlKCcuLi9jb21wb25lbnRzL01hc2snKTtcclxudmFyIENvbXBvbmVudHNQaXBlbGluZSA9IHJlcXVpcmUoJy4uL2NvbXBvbmVudHMvUGlwZWxpbmUnKTtcclxudmFyIENvbXBvbmVudHNUcmFuc2Zvcm0gPSByZXF1aXJlKCcuLi9jb21wb25lbnRzL1RyYW5zZm9ybScpO1xyXG52YXIgQ29tcG9uZW50c1Zpc2libGUgPSByZXF1aXJlKCcuLi9jb21wb25lbnRzL1Zpc2libGUnKTtcclxudmFyIENvbXBvbmVudHNTY3JvbGxGYWN0b3IgPSByZXF1aXJlKCcuLi9jb21wb25lbnRzL1Njcm9sbEZhY3RvcicpO1xyXG5cclxudmFyIFRyYW5zZm9ybU1hdHJpeCA9IHJlcXVpcmUoJy4uL2NvbXBvbmVudHMvVHJhbnNmb3JtTWF0cml4Jyk7XHJcblxyXG52YXIgRWxsaXBzZSA9IHJlcXVpcmUoJy4uLy4uL2dlb20vZWxsaXBzZS9FbGxpcHNlJyk7XHJcbnZhciBHYW1lT2JqZWN0ID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdCcpO1xyXG52YXIgR2V0RmFzdFZhbHVlID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvb2JqZWN0L0dldEZhc3RWYWx1ZScpO1xyXG52YXIgR2V0VmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0VmFsdWUnKTtcclxudmFyIE1BVEhfQ09OU1QgPSByZXF1aXJlKCcuLi8uLi9tYXRoL2NvbnN0Jyk7XHJcbnZhciBSZW5kZXIgPSByZXF1aXJlKCcuL0dyYXBoaWNzUmVuZGVyJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIEdyYXBoaWNzIG9iamVjdCBpcyBhIHdheSB0byBkcmF3IHByaW1pdGl2ZSBzaGFwZXMgdG8geW91ciBnYW1lLiBQcmltaXRpdmVzIGluY2x1ZGUgZm9ybXMgb2YgZ2VvbWV0cnksIHN1Y2ggYXNcclxuICogUmVjdGFuZ2xlcywgQ2lyY2xlcywgYW5kIFBvbHlnb25zLiBUaGV5IGFsc28gaW5jbHVkZSBsaW5lcywgYXJjcyBhbmQgY3VydmVzLiBXaGVuIHlvdSBpbml0aWFsbHkgY3JlYXRlIGEgR3JhcGhpY3NcclxuICogb2JqZWN0IGl0IHdpbGwgYmUgZW1wdHkuXHJcbiAqXHJcbiAqIFRvIGRyYXcgdG8gaXQgeW91IG11c3QgZmlyc3Qgc3BlY2lmeSBhIGxpbmUgc3R5bGUgb3IgZmlsbCBzdHlsZSAob3IgYm90aCksIGRyYXcgc2hhcGVzIHVzaW5nIHBhdGhzLCBhbmQgZmluYWxseVxyXG4gKiBmaWxsIG9yIHN0cm9rZSB0aGVtLiBGb3IgZXhhbXBsZTpcclxuICpcclxuICogYGBgamF2YXNjcmlwdFxyXG4gKiBncmFwaGljcy5saW5lU3R5bGUoNSwgMHhGRjAwRkYsIDEuMCk7XHJcbiAqIGdyYXBoaWNzLmJlZ2luUGF0aCgpO1xyXG4gKiBncmFwaGljcy5tb3ZlVG8oMTAwLCAxMDApO1xyXG4gKiBncmFwaGljcy5saW5lVG8oMjAwLCAyMDApO1xyXG4gKiBncmFwaGljcy5jbG9zZVBhdGgoKTtcclxuICogZ3JhcGhpY3Muc3Ryb2tlUGF0aCgpO1xyXG4gKiBgYGBcclxuICpcclxuICogVGhlcmUgYXJlIGFsc28gbWFueSBoZWxwZnVsIG1ldGhvZHMgdGhhdCBkcmF3IGFuZCBmaWxsL3N0cm9rZSBjb21tb24gc2hhcGVzIGZvciB5b3UuXHJcbiAqXHJcbiAqIGBgYGphdmFzY3JpcHRcclxuICogZ3JhcGhpY3MubGluZVN0eWxlKDUsIDB4RkYwMEZGLCAxLjApO1xyXG4gKiBncmFwaGljcy5maWxsU3R5bGUoMHhGRkZGRkYsIDEuMCk7XHJcbiAqIGdyYXBoaWNzLmZpbGxSZWN0KDUwLCA1MCwgNDAwLCAyMDApO1xyXG4gKiBncmFwaGljcy5zdHJva2VSZWN0KDUwLCA1MCwgNDAwLCAyMDApO1xyXG4gKiBgYGBcclxuICpcclxuICogV2hlbiBhIEdyYXBoaWNzIG9iamVjdCBpcyByZW5kZXJlZCBpdCB3aWxsIHJlbmRlciBkaWZmZXJlbnRseSBiYXNlZCBvbiBpZiB0aGUgZ2FtZSBpcyBydW5uaW5nIHVuZGVyIENhbnZhcyBvciBXZWJHTC5cclxuICogVW5kZXIgQ2FudmFzIGl0IHdpbGwgdXNlIHRoZSBIVE1MIENhbnZhcyBjb250ZXh0IGRyYXdpbmcgb3BlcmF0aW9ucyB0byBkcmF3IHRoZSBwYXRoLlxyXG4gKiBVbmRlciBXZWJHTCB0aGUgZ3JhcGhpY3MgZGF0YSBpcyBkZWNvbXBvc2VkIGludG8gcG9seWdvbnMuIEJvdGggb2YgdGhlc2UgYXJlIGV4cGVuc2l2ZSBwcm9jZXNzZXMsIGVzcGVjaWFsbHkgd2l0aFxyXG4gKiBjb21wbGV4IHNoYXBlcy5cclxuICpcclxuICogSWYgeW91ciBHcmFwaGljcyBvYmplY3QgZG9lc24ndCBjaGFuZ2UgbXVjaCAob3IgYXQgYWxsKSBvbmNlIHlvdSd2ZSBkcmF3biB5b3VyIHNoYXBlIHRvIGl0LCB0aGVuIHlvdSB3aWxsIGhlbHBcclxuICogcGVyZm9ybWFuY2UgYnkgY2FsbGluZyB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2dlbmVyYXRlVGV4dHVyZX0uIFRoaXMgd2lsbCAnYmFrZScgdGhlIEdyYXBoaWNzIG9iamVjdCBpbnRvXHJcbiAqIGEgVGV4dHVyZSwgYW5kIHJldHVybiBpdC4gWW91IGNhbiB0aGVuIHVzZSB0aGlzIFRleHR1cmUgZm9yIFNwcml0ZXMgb3Igb3RoZXIgZGlzcGxheSBvYmplY3RzLiBJZiB5b3VyIEdyYXBoaWNzIG9iamVjdFxyXG4gKiB1cGRhdGVzIGZyZXF1ZW50bHkgdGhlbiB5b3Ugc2hvdWxkIGF2b2lkIGRvaW5nIHRoaXMsIGFzIGl0IHdpbGwgY29uc3RhbnRseSBnZW5lcmF0ZSBuZXcgdGV4dHVyZXMsIHdoaWNoIHdpbGwgY29uc3VtZVxyXG4gKiBtZW1vcnkuXHJcbiAqXHJcbiAqIEFzIHlvdSBjYW4gdGVsbCwgR3JhcGhpY3Mgb2JqZWN0cyBhcmUgYSBiaXQgb2YgYSB0cmFkZS1vZmYuIFdoaWxlIHRoZXkgYXJlIGV4dHJlbWVseSB1c2VmdWwsIHlvdSBuZWVkIHRvIGJlIGNhcmVmdWxcclxuICogaW4gdGhlaXIgY29tcGxleGl0eSBhbmQgcXVhbnRpdHkgb2YgdGhlbSBpbiB5b3VyIGdhbWUuXHJcbiAqXHJcbiAqIEBjbGFzcyBHcmFwaGljc1xyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdFxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkdhbWVPYmplY3RzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQWxwaGFTaW5nbGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQmxlbmRNb2RlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkRlcHRoXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLk1hc2tcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuUGlwZWxpbmVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlZpc2libGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuU2Nyb2xsRmFjdG9yXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSB0byB3aGljaCB0aGlzIEdyYXBoaWNzIG9iamVjdCBiZWxvbmdzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5HcmFwaGljcy5PcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25zIHRoYXQgc2V0IHRoZSBwb3NpdGlvbiBhbmQgZGVmYXVsdCBzdHlsZSBvZiB0aGlzIEdyYXBoaWNzIG9iamVjdC5cclxuICovXHJcbnZhciBHcmFwaGljcyA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogR2FtZU9iamVjdCxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBDb21wb25lbnRzQWxwaGEsXHJcbiAgICAgICAgQ29tcG9uZW50c0JsZW5kTW9kZSxcclxuICAgICAgICBDb21wb25lbnRzRGVwdGgsXHJcbiAgICAgICAgQ29tcG9uZW50c01hc2ssXHJcbiAgICAgICAgQ29tcG9uZW50c1BpcGVsaW5lLFxyXG4gICAgICAgIENvbXBvbmVudHNUcmFuc2Zvcm0sXHJcbiAgICAgICAgQ29tcG9uZW50c1Zpc2libGUsXHJcbiAgICAgICAgQ29tcG9uZW50c1Njcm9sbEZhY3RvcixcclxuICAgICAgICBSZW5kZXJcclxuICAgIF0sXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBHcmFwaGljcyAoc2NlbmUsIG9wdGlvbnMpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHggPSBHZXRWYWx1ZShvcHRpb25zLCAneCcsIDApO1xyXG4gICAgICAgIHZhciB5ID0gR2V0VmFsdWUob3B0aW9ucywgJ3knLCAwKTtcclxuXHJcbiAgICAgICAgR2FtZU9iamVjdC5jYWxsKHRoaXMsIHNjZW5lLCAnR3JhcGhpY3MnKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvbih4LCB5KTtcclxuICAgICAgICB0aGlzLmluaXRQaXBlbGluZSgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaG9yaXpvbnRhbCBkaXNwbGF5IG9yaWdpbiBvZiB0aGUgR3JhcGhpY3MuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjZGlzcGxheU9yaWdpblhcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRpc3BsYXlPcmlnaW5YID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHZlcnRpY2FsIGRpc3BsYXkgb3JpZ2luIG9mIHRoZSBHcmFwaGljcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNkaXNwbGF5T3JpZ2luWVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU9yaWdpblkgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgYXJyYXkgb2YgY29tbWFuZHMgdXNlZCB0byByZW5kZXIgdGhlIEdyYXBoaWNzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2NvbW1hbmRCdWZmZXJcclxuICAgICAgICAgKiBAdHlwZSB7YXJyYXl9XHJcbiAgICAgICAgICogQGRlZmF1bHQgW11cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIgPSBbXTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGRlZmF1bHQgZmlsbCBjb2xvciBmb3Igc2hhcGVzIHJlbmRlcmVkIGJ5IHRoaXMgR3JhcGhpY3Mgb2JqZWN0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2RlZmF1bHRGaWxsQ29sb3JcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IC0xXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0RmlsbENvbG9yID0gLTE7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBkZWZhdWx0IGZpbGwgYWxwaGEgZm9yIHNoYXBlcyByZW5kZXJlZCBieSB0aGlzIEdyYXBoaWNzIG9iamVjdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNkZWZhdWx0RmlsbEFscGhhXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAxXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0RmlsbEFscGhhID0gMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGRlZmF1bHQgc3Ryb2tlIHdpZHRoIGZvciBzaGFwZXMgcmVuZGVyZWQgYnkgdGhpcyBHcmFwaGljcyBvYmplY3QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjZGVmYXVsdFN0cm9rZVdpZHRoXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAxXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0U3Ryb2tlV2lkdGggPSAxO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZGVmYXVsdCBzdHJva2UgY29sb3IgZm9yIHNoYXBlcyByZW5kZXJlZCBieSB0aGlzIEdyYXBoaWNzIG9iamVjdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNkZWZhdWx0U3Ryb2tlQ29sb3JcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IC0xXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0U3Ryb2tlQ29sb3IgPSAtMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGRlZmF1bHQgc3Ryb2tlIGFscGhhIGZvciBzaGFwZXMgcmVuZGVyZWQgYnkgdGhpcyBHcmFwaGljcyBvYmplY3QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjZGVmYXVsdFN0cm9rZUFscGhhXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAxXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0U3Ryb2tlQWxwaGEgPSAxO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJbnRlcm5hbCBwcm9wZXJ0eSB0aGF0IGtlZXBzIHRyYWNrIG9mIHRoZSBsaW5lIHdpZHRoIHN0eWxlIHNldHRpbmcuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjX2xpbmVXaWR0aFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9saW5lV2lkdGggPSAxLjA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgdGVtcG9yYXJ5IFRyYW5zZm9ybSBNYXRyaXgsIHJlLXVzZWQgaW50ZXJuYWxseSBkdXJpbmcgYmF0Y2hpbmcuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjX3RlbXBNYXRyaXgxXHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl90ZW1wTWF0cml4MSA9IG5ldyBUcmFuc2Zvcm1NYXRyaXgoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSB0ZW1wb3JhcnkgVHJhbnNmb3JtIE1hdHJpeCwgcmUtdXNlZCBpbnRlcm5hbGx5IGR1cmluZyBiYXRjaGluZy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNfdGVtcE1hdHJpeDJcclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3RlbXBNYXRyaXgyID0gbmV3IFRyYW5zZm9ybU1hdHJpeCgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHRlbXBvcmFyeSBUcmFuc2Zvcm0gTWF0cml4LCByZS11c2VkIGludGVybmFsbHkgZHVyaW5nIGJhdGNoaW5nLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI190ZW1wTWF0cml4M1xyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fdGVtcE1hdHJpeDMgPSBuZXcgVHJhbnNmb3JtTWF0cml4KCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFN0eWxlcyhvcHRpb25zKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGRlZmF1bHQgc3R5bGUgc2V0dGluZ3MgZm9yIHRoaXMgR3JhcGhpY3Mgb2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI3NldERlZmF1bHRTdHlsZXNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLkdyYXBoaWNzLlN0eWxlc30gb3B0aW9ucyAtIFRoZSBzdHlsZXMgdG8gc2V0IGFzIGRlZmF1bHRzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldERlZmF1bHRTdHlsZXM6IGZ1bmN0aW9uIChvcHRpb25zKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChHZXRWYWx1ZShvcHRpb25zLCAnbGluZVN0eWxlJywgbnVsbCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRTdHJva2VXaWR0aCA9IEdldFZhbHVlKG9wdGlvbnMsICdsaW5lU3R5bGUud2lkdGgnLCAxKTtcclxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0U3Ryb2tlQ29sb3IgPSBHZXRWYWx1ZShvcHRpb25zLCAnbGluZVN0eWxlLmNvbG9yJywgMHhmZmZmZmYpO1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRTdHJva2VBbHBoYSA9IEdldFZhbHVlKG9wdGlvbnMsICdsaW5lU3R5bGUuYWxwaGEnLCAxKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMubGluZVN0eWxlKHRoaXMuZGVmYXVsdFN0cm9rZVdpZHRoLCB0aGlzLmRlZmF1bHRTdHJva2VDb2xvciwgdGhpcy5kZWZhdWx0U3Ryb2tlQWxwaGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEdldFZhbHVlKG9wdGlvbnMsICdmaWxsU3R5bGUnLCBudWxsKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdEZpbGxDb2xvciA9IEdldFZhbHVlKG9wdGlvbnMsICdmaWxsU3R5bGUuY29sb3InLCAweGZmZmZmZik7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdEZpbGxBbHBoYSA9IEdldFZhbHVlKG9wdGlvbnMsICdmaWxsU3R5bGUuYWxwaGEnLCAxKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZmlsbFN0eWxlKHRoaXMuZGVmYXVsdEZpbGxDb2xvciwgdGhpcy5kZWZhdWx0RmlsbEFscGhhKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgY3VycmVudCBsaW5lIHN0eWxlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2xpbmVTdHlsZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVXaWR0aCAtIFRoZSBzdHJva2Ugd2lkdGguXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gY29sb3IgLSBUaGUgc3Ryb2tlIGNvbG9yLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthbHBoYT0xXSAtIFRoZSBzdHJva2UgYWxwaGEuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgbGluZVN0eWxlOiBmdW5jdGlvbiAobGluZVdpZHRoLCBjb2xvciwgYWxwaGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGFscGhhID09PSB1bmRlZmluZWQpIHsgYWxwaGEgPSAxOyB9XHJcblxyXG4gICAgICAgIHRoaXMuY29tbWFuZEJ1ZmZlci5wdXNoKFxyXG4gICAgICAgICAgICBDb21tYW5kcy5MSU5FX1NUWUxFLFxyXG4gICAgICAgICAgICBsaW5lV2lkdGgsIGNvbG9yLCBhbHBoYVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuX2xpbmVXaWR0aCA9IGxpbmVXaWR0aDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBjdXJyZW50IGZpbGwgc3R5bGUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjZmlsbFN0eWxlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gY29sb3IgLSBUaGUgZmlsbCBjb2xvci5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYWxwaGE9MV0gLSBUaGUgZmlsbCBhbHBoYS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBmaWxsU3R5bGU6IGZ1bmN0aW9uIChjb2xvciwgYWxwaGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGFscGhhID09PSB1bmRlZmluZWQpIHsgYWxwaGEgPSAxOyB9XHJcblxyXG4gICAgICAgIHRoaXMuY29tbWFuZEJ1ZmZlci5wdXNoKFxyXG4gICAgICAgICAgICBDb21tYW5kcy5GSUxMX1NUWUxFLFxyXG4gICAgICAgICAgICBjb2xvciwgYWxwaGFcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGEgZ3JhZGllbnQgZmlsbCBzdHlsZS4gVGhpcyBpcyBhIFdlYkdMIG9ubHkgZmVhdHVyZS5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgZ3JhZGllbnQgY29sb3IgdmFsdWVzIHJlcHJlc2VudCB0aGUgNCBjb3JuZXJzIG9mIGFuIHVudHJhbnNmb3JtZWQgcmVjdGFuZ2xlLlxyXG4gICAgICogVGhlIGdyYWRpZW50IGlzIHVzZWQgdG8gY29sb3IgYWxsIGZpbGxlZCBzaGFwZXMgYW5kIHBhdGhzIGRyYXduIGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuXHJcbiAgICAgKiBJZiB5b3Ugd2lzaCB0byB0dXJuIGEgZ3JhZGllbnQgb2ZmLCBjYWxsIGBmaWxsU3R5bGVgIGFuZCBwcm92aWRlIGEgbmV3IHNpbmdsZSBmaWxsIGNvbG9yLlxyXG4gICAgICpcclxuICAgICAqIFdoZW4gZmlsbGluZyBhIHRyaWFuZ2xlIG9ubHkgdGhlIGZpcnN0IDMgY29sb3IgdmFsdWVzIHByb3ZpZGVkIGFyZSB1c2VkIGZvciB0aGUgMyBwb2ludHMgb2YgYSB0cmlhbmdsZS5cclxuICAgICAqXHJcbiAgICAgKiBUaGlzIGZlYXR1cmUgaXMgYmVzdCB1c2VkIG9ubHkgb24gcmVjdGFuZ2xlcyBhbmQgdHJpYW5nbGVzLiBBbGwgb3RoZXIgc2hhcGVzIHdpbGwgZ2l2ZSBzdHJhbmdlIHJlc3VsdHMuXHJcbiAgICAgKlxyXG4gICAgICogTm90ZSB0aGF0IGZvciBvYmplY3RzIHN1Y2ggYXMgYXJjcyBvciBlbGxpcHNlcywgb3IgYW55dGhpbmcgd2hpY2ggaXMgbWFkZSBvdXQgb2YgdHJpYW5nbGVzLCBlYWNoIHRyaWFuZ2xlIHVzZWRcclxuICAgICAqIHdpbGwgYmUgZmlsbGVkIHdpdGggYSBncmFkaWVudCBvbiBpdHMgb3duLiBUaGVyZSBpcyBubyBhYmlsaXR5IHRvIGdyYWRpZW50IGZpbGwgYSBzaGFwZSBvciBwYXRoIGFzIGEgc2luZ2xlXHJcbiAgICAgKiBlbnRpdHkgYXQgdGhpcyB0aW1lLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2ZpbGxHcmFkaWVudFN0eWxlXHJcbiAgICAgKiBAd2ViZ2xPbmx5XHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSB0b3BMZWZ0IC0gVGhlIHRpbnQgYmVpbmcgYXBwbGllZCB0byB0aGUgdG9wLWxlZnQgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSB0b3BSaWdodCAtIFRoZSB0aW50IGJlaW5nIGFwcGxpZWQgdG8gdGhlIHRvcC1yaWdodCBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IGJvdHRvbUxlZnQgLSBUaGUgdGludCBiZWluZyBhcHBsaWVkIHRvIHRoZSBib3R0b20tbGVmdCBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IGJvdHRvbVJpZ2h0IC0gVGhlIHRpbnQgYmVpbmcgYXBwbGllZCB0byB0aGUgYm90dG9tLXJpZ2h0IG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYWxwaGE9MV0gLSBUaGUgZmlsbCBhbHBoYS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBmaWxsR3JhZGllbnRTdHlsZTogZnVuY3Rpb24gKHRvcExlZnQsIHRvcFJpZ2h0LCBib3R0b21MZWZ0LCBib3R0b21SaWdodCwgYWxwaGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGFscGhhID09PSB1bmRlZmluZWQpIHsgYWxwaGEgPSAxOyB9XHJcblxyXG4gICAgICAgIHRoaXMuY29tbWFuZEJ1ZmZlci5wdXNoKFxyXG4gICAgICAgICAgICBDb21tYW5kcy5HUkFESUVOVF9GSUxMX1NUWUxFLFxyXG4gICAgICAgICAgICBhbHBoYSwgdG9wTGVmdCwgdG9wUmlnaHQsIGJvdHRvbUxlZnQsIGJvdHRvbVJpZ2h0XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBhIGdyYWRpZW50IGxpbmUgc3R5bGUuIFRoaXMgaXMgYSBXZWJHTCBvbmx5IGZlYXR1cmUuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIGdyYWRpZW50IGNvbG9yIHZhbHVlcyByZXByZXNlbnQgdGhlIDQgY29ybmVycyBvZiBhbiB1bnRyYW5zZm9ybWVkIHJlY3RhbmdsZS5cclxuICAgICAqIFRoZSBncmFkaWVudCBpcyB1c2VkIHRvIGNvbG9yIGFsbCBzdHJva2VkIHNoYXBlcyBhbmQgcGF0aHMgZHJhd24gYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZC5cclxuICAgICAqIElmIHlvdSB3aXNoIHRvIHR1cm4gYSBncmFkaWVudCBvZmYsIGNhbGwgYGxpbmVTdHlsZWAgYW5kIHByb3ZpZGUgYSBuZXcgc2luZ2xlIGxpbmUgY29sb3IuXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBmZWF0dXJlIGlzIGJlc3QgdXNlZCBvbmx5IG9uIHNpbmdsZSBsaW5lcy4gQWxsIG90aGVyIHNoYXBlcyB3aWxsIGdpdmUgc3RyYW5nZSByZXN1bHRzLlxyXG4gICAgICpcclxuICAgICAqIE5vdGUgdGhhdCBmb3Igb2JqZWN0cyBzdWNoIGFzIGFyY3Mgb3IgZWxsaXBzZXMsIG9yIGFueXRoaW5nIHdoaWNoIGlzIG1hZGUgb3V0IG9mIHRyaWFuZ2xlcywgZWFjaCB0cmlhbmdsZSB1c2VkXHJcbiAgICAgKiB3aWxsIGJlIGZpbGxlZCB3aXRoIGEgZ3JhZGllbnQgb24gaXRzIG93bi4gVGhlcmUgaXMgbm8gYWJpbGl0eSB0byBncmFkaWVudCBzdHJva2UgYSBzaGFwZSBvciBwYXRoIGFzIGEgc2luZ2xlXHJcbiAgICAgKiBlbnRpdHkgYXQgdGhpcyB0aW1lLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2xpbmVHcmFkaWVudFN0eWxlXHJcbiAgICAgKiBAd2ViZ2xPbmx5XHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVXaWR0aCAtIFRoZSBzdHJva2Ugd2lkdGguXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHRvcExlZnQgLSBUaGUgdGludCBiZWluZyBhcHBsaWVkIHRvIHRoZSB0b3AtbGVmdCBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHRvcFJpZ2h0IC0gVGhlIHRpbnQgYmVpbmcgYXBwbGllZCB0byB0aGUgdG9wLXJpZ2h0IG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gYm90dG9tTGVmdCAtIFRoZSB0aW50IGJlaW5nIGFwcGxpZWQgdG8gdGhlIGJvdHRvbS1sZWZ0IG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gYm90dG9tUmlnaHQgLSBUaGUgdGludCBiZWluZyBhcHBsaWVkIHRvIHRoZSBib3R0b20tcmlnaHQgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthbHBoYT0xXSAtIFRoZSBmaWxsIGFscGhhLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGxpbmVHcmFkaWVudFN0eWxlOiBmdW5jdGlvbiAobGluZVdpZHRoLCB0b3BMZWZ0LCB0b3BSaWdodCwgYm90dG9tTGVmdCwgYm90dG9tUmlnaHQsIGFscGhhKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChhbHBoYSA9PT0gdW5kZWZpbmVkKSB7IGFscGhhID0gMTsgfVxyXG5cclxuICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIucHVzaChcclxuICAgICAgICAgICAgQ29tbWFuZHMuR1JBRElFTlRfTElORV9TVFlMRSxcclxuICAgICAgICAgICAgbGluZVdpZHRoLCBhbHBoYSwgdG9wTGVmdCwgdG9wUmlnaHQsIGJvdHRvbUxlZnQsIGJvdHRvbVJpZ2h0XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdGV4dHVyZSBmcmFtZSB0aGlzIEdyYXBoaWNzIE9iamVjdCB3aWxsIHVzZSB3aGVuIGRyYXdpbmcgYWxsIHNoYXBlcyBkZWZpbmVkIGFmdGVyIGNhbGxpbmcgdGhpcy5cclxuICAgICAqXHJcbiAgICAgKiBUZXh0dXJlcyBhcmUgcmVmZXJlbmNlZCBieSB0aGVpciBzdHJpbmctYmFzZWQga2V5cywgYXMgc3RvcmVkIGluIHRoZSBUZXh0dXJlIE1hbmFnZXIuXHJcbiAgICAgKlxyXG4gICAgICogT25jZSBzZXQsIGFsbCBzaGFwZXMgd2lsbCB1c2UgdGhpcyB0ZXh0dXJlLiBDYWxsIHRoaXMgbWV0aG9kIHdpdGggbm8gYXJndW1lbnRzIHRvIGNsZWFyIGl0LlxyXG4gICAgICpcclxuICAgICAqIFRoZSB0ZXh0dXJlcyBhcmUgbm90IHRpbGVkLiBUaGV5IGFyZSBzdHJldGNoZWQgdG8gdGhlIGRpbWVuc2lvbnMgb2YgdGhlIHNoYXBlcyBiZWluZyByZW5kZXJlZC4gRm9yIHRoaXMgcmVhc29uLFxyXG4gICAgICogaXQgd29ya3MgYmVzdCB3aXRoIHNlYW1sZXNzIC8gdGlsZWFibGUgdGV4dHVyZXMuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIG1vZGUgYXJndW1lbnQgY29udHJvbHMgaG93IHRoZSB0ZXh0dXJlcyBhcmUgY29tYmluZWQgd2l0aCB0aGUgZmlsbCBjb2xvcnMuIFRoZSBkZWZhdWx0IHZhbHVlICgwKSB3aWxsXHJcbiAgICAgKiBtdWx0aXBseSB0aGUgdGV4dHVyZSBieSB0aGUgZmlsbCBjb2xvci4gQSB2YWx1ZSBvZiAxIHdpbGwgdXNlIGp1c3QgdGhlIGZpbGwgY29sb3IsIGJ1dCB0aGUgYWxwaGEgZGF0YSBmcm9tIHRoZSB0ZXh0dXJlLFxyXG4gICAgICogYW5kIGEgdmFsdWUgb2YgMiB3aWxsIHVzZSBqdXN0IHRoZSB0ZXh0dXJlIGFuZCBubyBmaWxsIGNvbG9yIGF0IGFsbC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNzZXRUZXh0dXJlXHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKiBAd2ViZ2xPbmx5XHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtrZXldIC0gVGhlIGtleSBvZiB0aGUgdGV4dHVyZSB0byBiZSB1c2VkLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci4gTGVhdmUgYmxhbmsgdG8gY2xlYXIgYSBwcmV2aW91c2x5IHNldCB0ZXh0dXJlLlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBbZnJhbWVdIC0gVGhlIG5hbWUgb3IgaW5kZXggb2YgdGhlIGZyYW1lIHdpdGhpbiB0aGUgVGV4dHVyZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbbW9kZT0wXSAtIFRoZSB0ZXh0dXJlIHRpbnQgbW9kZS4gMCBpcyBtdWx0aXBseSwgMSBpcyBhbHBoYSBvbmx5IGFuZCAyIGlzIHRleHR1cmUgb25seS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRUZXh0dXJlOiBmdW5jdGlvbiAoa2V5LCBmcmFtZSwgbW9kZSlcclxuICAgIHtcclxuICAgICAgICBpZiAobW9kZSA9PT0gdW5kZWZpbmVkKSB7IG1vZGUgPSAwOyB9XHJcblxyXG4gICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbWFuZEJ1ZmZlci5wdXNoKFxyXG4gICAgICAgICAgICAgICAgQ29tbWFuZHMuQ0xFQVJfVEVYVFVSRVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgdGV4dHVyZUZyYW1lID0gdGhpcy5zY2VuZS5zeXMudGV4dHVyZXMuZ2V0RnJhbWUoa2V5LCBmcmFtZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGV4dHVyZUZyYW1lKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gMilcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBtb2RlID0gMztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIucHVzaChcclxuICAgICAgICAgICAgICAgICAgICBDb21tYW5kcy5TRVRfVEVYVFVSRSxcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlRnJhbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kZVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RhcnQgYSBuZXcgc2hhcGUgcGF0aC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNiZWdpblBhdGhcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGJlZ2luUGF0aDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIucHVzaChcclxuICAgICAgICAgICAgQ29tbWFuZHMuQkVHSU5fUEFUSFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENsb3NlIHRoZSBjdXJyZW50IHBhdGguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjY2xvc2VQYXRoXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBjbG9zZVBhdGg6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5jb21tYW5kQnVmZmVyLnB1c2goXHJcbiAgICAgICAgICAgIENvbW1hbmRzLkNMT1NFX1BBVEhcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaWxsIHRoZSBjdXJyZW50IHBhdGguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjZmlsbFBhdGhcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGZpbGxQYXRoOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY29tbWFuZEJ1ZmZlci5wdXNoKFxyXG4gICAgICAgICAgICBDb21tYW5kcy5GSUxMX1BBVEhcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaWxsIHRoZSBjdXJyZW50IHBhdGguXHJcbiAgICAgKiBcclxuICAgICAqIFRoaXMgaXMgYW4gYWxpYXMgZm9yIGBHcmFwaGljcy5maWxsUGF0aGAgYW5kIGRvZXMgdGhlIHNhbWUgdGhpbmcuXHJcbiAgICAgKiBJdCB3YXMgYWRkZWQgdG8gbWF0Y2ggdGhlIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgMkQgQVBJLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2ZpbGxcclxuICAgICAqIEBzaW5jZSAzLjE2LjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBmaWxsOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY29tbWFuZEJ1ZmZlci5wdXNoKFxyXG4gICAgICAgICAgICBDb21tYW5kcy5GSUxMX1BBVEhcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdHJva2UgdGhlIGN1cnJlbnQgcGF0aC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNzdHJva2VQYXRoXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzdHJva2VQYXRoOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY29tbWFuZEJ1ZmZlci5wdXNoKFxyXG4gICAgICAgICAgICBDb21tYW5kcy5TVFJPS0VfUEFUSFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0cm9rZSB0aGUgY3VycmVudCBwYXRoLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGlzIGlzIGFuIGFsaWFzIGZvciBgR3JhcGhpY3Muc3Ryb2tlUGF0aGAgYW5kIGRvZXMgdGhlIHNhbWUgdGhpbmcuXHJcbiAgICAgKiBJdCB3YXMgYWRkZWQgdG8gbWF0Y2ggdGhlIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgMkQgQVBJLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI3N0cm9rZVxyXG4gICAgICogQHNpbmNlIDMuMTYuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHN0cm9rZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIucHVzaChcclxuICAgICAgICAgICAgQ29tbWFuZHMuU1RST0tFX1BBVEhcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaWxsIHRoZSBnaXZlbiBjaXJjbGUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjZmlsbENpcmNsZVNoYXBlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HZW9tLkNpcmNsZX0gY2lyY2xlIC0gVGhlIGNpcmNsZSB0byBmaWxsLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGZpbGxDaXJjbGVTaGFwZTogZnVuY3Rpb24gKGNpcmNsZSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWxsQ2lyY2xlKGNpcmNsZS54LCBjaXJjbGUueSwgY2lyY2xlLnJhZGl1cyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Ryb2tlIHRoZSBnaXZlbiBjaXJjbGUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3Mjc3Ryb2tlQ2lyY2xlU2hhcGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdlb20uQ2lyY2xlfSBjaXJjbGUgLSBUaGUgY2lyY2xlIHRvIHN0cm9rZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzdHJva2VDaXJjbGVTaGFwZTogZnVuY3Rpb24gKGNpcmNsZSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdHJva2VDaXJjbGUoY2lyY2xlLngsIGNpcmNsZS55LCBjaXJjbGUucmFkaXVzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaWxsIGEgY2lyY2xlIHdpdGggdGhlIGdpdmVuIHBvc2l0aW9uIGFuZCByYWRpdXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjZmlsbENpcmNsZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBjb29yZGluYXRlIG9mIHRoZSBjZW50ZXIgb2YgdGhlIGNpcmNsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgY2VudGVyIG9mIHRoZSBjaXJjbGUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmFkaXVzIC0gVGhlIHJhZGl1cyBvZiB0aGUgY2lyY2xlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGZpbGxDaXJjbGU6IGZ1bmN0aW9uICh4LCB5LCByYWRpdXMpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5iZWdpblBhdGgoKTtcclxuICAgICAgICB0aGlzLmFyYyh4LCB5LCByYWRpdXMsIDAsIE1BVEhfQ09OU1QuUEkyKTtcclxuICAgICAgICB0aGlzLmZpbGxQYXRoKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0cm9rZSBhIGNpcmNsZSB3aXRoIHRoZSBnaXZlbiBwb3NpdGlvbiBhbmQgcmFkaXVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI3N0cm9rZUNpcmNsZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBjb29yZGluYXRlIG9mIHRoZSBjZW50ZXIgb2YgdGhlIGNpcmNsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgY2VudGVyIG9mIHRoZSBjaXJjbGUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmFkaXVzIC0gVGhlIHJhZGl1cyBvZiB0aGUgY2lyY2xlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHN0cm9rZUNpcmNsZTogZnVuY3Rpb24gKHgsIHksIHJhZGl1cylcclxuICAgIHtcclxuICAgICAgICB0aGlzLmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIHRoaXMuYXJjKHgsIHksIHJhZGl1cywgMCwgTUFUSF9DT05TVC5QSTIpO1xyXG4gICAgICAgIHRoaXMuc3Ryb2tlUGF0aCgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaWxsIHRoZSBnaXZlbiByZWN0YW5nbGUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjZmlsbFJlY3RTaGFwZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2VvbS5SZWN0YW5nbGV9IHJlY3QgLSBUaGUgcmVjdGFuZ2xlIHRvIGZpbGwuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgZmlsbFJlY3RTaGFwZTogZnVuY3Rpb24gKHJlY3QpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsbFJlY3QocmVjdC54LCByZWN0LnksIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdHJva2UgdGhlIGdpdmVuIHJlY3RhbmdsZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNzdHJva2VSZWN0U2hhcGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdlb20uUmVjdGFuZ2xlfSByZWN0IC0gVGhlIHJlY3RhbmdsZSB0byBzdHJva2UuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc3Ryb2tlUmVjdFNoYXBlOiBmdW5jdGlvbiAocmVjdClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdHJva2VSZWN0KHJlY3QueCwgcmVjdC55LCByZWN0LndpZHRoLCByZWN0LmhlaWdodCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmlsbCBhIHJlY3RhbmdsZSB3aXRoIHRoZSBnaXZlbiBwb3NpdGlvbiBhbmQgc2l6ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNmaWxsUmVjdFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBjb29yZGluYXRlIG9mIHRoZSB0b3AtbGVmdCBvZiB0aGUgcmVjdGFuZ2xlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBjb29yZGluYXRlIG9mIHRoZSB0b3AtbGVmdCBvZiB0aGUgcmVjdGFuZ2xlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSByZWN0YW5nbGUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gVGhlIGhlaWdodCBvZiB0aGUgcmVjdGFuZ2xlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGZpbGxSZWN0OiBmdW5jdGlvbiAoeCwgeSwgd2lkdGgsIGhlaWdodClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIucHVzaChcclxuICAgICAgICAgICAgQ29tbWFuZHMuRklMTF9SRUNULFxyXG4gICAgICAgICAgICB4LCB5LCB3aWR0aCwgaGVpZ2h0XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Ryb2tlIGEgcmVjdGFuZ2xlIHdpdGggdGhlIGdpdmVuIHBvc2l0aW9uIGFuZCBzaXplLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI3N0cm9rZVJlY3RcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgdG9wLWxlZnQgb2YgdGhlIHJlY3RhbmdsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgdG9wLWxlZnQgb2YgdGhlIHJlY3RhbmdsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGUgcmVjdGFuZ2xlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHJlY3RhbmdsZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzdHJva2VSZWN0OiBmdW5jdGlvbiAoeCwgeSwgd2lkdGgsIGhlaWdodClcclxuICAgIHtcclxuICAgICAgICB2YXIgbGluZVdpZHRoSGFsZiA9IHRoaXMuX2xpbmVXaWR0aCAvIDI7XHJcbiAgICAgICAgdmFyIG1pbnggPSB4IC0gbGluZVdpZHRoSGFsZjtcclxuICAgICAgICB2YXIgbWF4eCA9IHggKyBsaW5lV2lkdGhIYWxmO1xyXG5cclxuICAgICAgICB0aGlzLmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIHRoaXMubW92ZVRvKHgsIHkpO1xyXG4gICAgICAgIHRoaXMubGluZVRvKHgsIHkgKyBoZWlnaHQpO1xyXG4gICAgICAgIHRoaXMuc3Ryb2tlUGF0aCgpO1xyXG5cclxuICAgICAgICB0aGlzLmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIHRoaXMubW92ZVRvKHggKyB3aWR0aCwgeSk7XHJcbiAgICAgICAgdGhpcy5saW5lVG8oeCArIHdpZHRoLCB5ICsgaGVpZ2h0KTtcclxuICAgICAgICB0aGlzLnN0cm9rZVBhdGgoKTtcclxuXHJcbiAgICAgICAgdGhpcy5iZWdpblBhdGgoKTtcclxuICAgICAgICB0aGlzLm1vdmVUbyhtaW54LCB5KTtcclxuICAgICAgICB0aGlzLmxpbmVUbyhtYXh4ICsgd2lkdGgsIHkpO1xyXG4gICAgICAgIHRoaXMuc3Ryb2tlUGF0aCgpO1xyXG5cclxuICAgICAgICB0aGlzLmJlZ2luUGF0aCgpO1xyXG4gICAgICAgIHRoaXMubW92ZVRvKG1pbngsIHkgKyBoZWlnaHQpO1xyXG4gICAgICAgIHRoaXMubGluZVRvKG1heHggKyB3aWR0aCwgeSArIGhlaWdodCk7XHJcbiAgICAgICAgdGhpcy5zdHJva2VQYXRoKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbGwgYSByb3VuZGVkIHJlY3RhbmdsZSB3aXRoIHRoZSBnaXZlbiBwb3NpdGlvbiwgc2l6ZSBhbmQgcmFkaXVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2ZpbGxSb3VuZGVkUmVjdFxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgdG9wLWxlZnQgb2YgdGhlIHJlY3RhbmdsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgdG9wLWxlZnQgb2YgdGhlIHJlY3RhbmdsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGUgcmVjdGFuZ2xlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIHJlY3RhbmdsZS5cclxuICAgICAqIEBwYXJhbSB7KFBoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5HcmFwaGljcy5Sb3VuZGVkUmVjdFJhZGl1c3xudW1iZXIpfSBbcmFkaXVzPTIwXSAtIFRoZSBjb3JuZXIgcmFkaXVzOyBJdCBjYW4gYWxzbyBiZSBhbiBvYmplY3QgdG8gc3BlY2lmeSBkaWZmZXJlbnQgcmFkaWkgZm9yIGNvcm5lcnMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgZmlsbFJvdW5kZWRSZWN0OiBmdW5jdGlvbiAoeCwgeSwgd2lkdGgsIGhlaWdodCwgcmFkaXVzKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChyYWRpdXMgPT09IHVuZGVmaW5lZCkgeyByYWRpdXMgPSAyMDsgfVxyXG5cclxuICAgICAgICB2YXIgdGwgPSByYWRpdXM7XHJcbiAgICAgICAgdmFyIHRyID0gcmFkaXVzO1xyXG4gICAgICAgIHZhciBibCA9IHJhZGl1cztcclxuICAgICAgICB2YXIgYnIgPSByYWRpdXM7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgcmFkaXVzICE9PSAnbnVtYmVyJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRsID0gR2V0RmFzdFZhbHVlKHJhZGl1cywgJ3RsJywgMjApO1xyXG4gICAgICAgICAgICB0ciA9IEdldEZhc3RWYWx1ZShyYWRpdXMsICd0cicsIDIwKTtcclxuICAgICAgICAgICAgYmwgPSBHZXRGYXN0VmFsdWUocmFkaXVzLCAnYmwnLCAyMCk7XHJcbiAgICAgICAgICAgIGJyID0gR2V0RmFzdFZhbHVlKHJhZGl1cywgJ2JyJywgMjApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5iZWdpblBhdGgoKTtcclxuICAgICAgICB0aGlzLm1vdmVUbyh4ICsgdGwsIHkpO1xyXG4gICAgICAgIHRoaXMubGluZVRvKHggKyB3aWR0aCAtIHRyLCB5KTtcclxuICAgICAgICB0aGlzLmFyYyh4ICsgd2lkdGggLSB0ciwgeSArIHRyLCB0ciwgLU1BVEhfQ09OU1QuVEFVLCAwKTtcclxuICAgICAgICB0aGlzLmxpbmVUbyh4ICsgd2lkdGgsIHkgKyBoZWlnaHQgLSBicik7XHJcbiAgICAgICAgdGhpcy5hcmMoeCArIHdpZHRoIC0gYnIsIHkgKyBoZWlnaHQgLSBiciwgYnIsIDAsIE1BVEhfQ09OU1QuVEFVKTtcclxuICAgICAgICB0aGlzLmxpbmVUbyh4ICsgYmwsIHkgKyBoZWlnaHQpO1xyXG4gICAgICAgIHRoaXMuYXJjKHggKyBibCwgeSArIGhlaWdodCAtIGJsLCBibCwgTUFUSF9DT05TVC5UQVUsIE1hdGguUEkpO1xyXG4gICAgICAgIHRoaXMubGluZVRvKHgsIHkgKyB0bCk7XHJcbiAgICAgICAgdGhpcy5hcmMoeCArIHRsLCB5ICsgdGwsIHRsLCAtTWF0aC5QSSwgLU1BVEhfQ09OU1QuVEFVKTtcclxuICAgICAgICB0aGlzLmZpbGxQYXRoKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0cm9rZSBhIHJvdW5kZWQgcmVjdGFuZ2xlIHdpdGggdGhlIGdpdmVuIHBvc2l0aW9uLCBzaXplIGFuZCByYWRpdXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3Mjc3Ryb2tlUm91bmRlZFJlY3RcclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSB4IGNvb3JkaW5hdGUgb2YgdGhlIHRvcC1sZWZ0IG9mIHRoZSByZWN0YW5nbGUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB5IGNvb3JkaW5hdGUgb2YgdGhlIHRvcC1sZWZ0IG9mIHRoZSByZWN0YW5nbGUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBUaGUgd2lkdGggb2YgdGhlIHJlY3RhbmdsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgLSBUaGUgaGVpZ2h0IG9mIHRoZSByZWN0YW5nbGUuXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuR3JhcGhpY3MuUm91bmRlZFJlY3RSYWRpdXN8bnVtYmVyKX0gW3JhZGl1cz0yMF0gLSBUaGUgY29ybmVyIHJhZGl1czsgSXQgY2FuIGFsc28gYmUgYW4gb2JqZWN0IHRvIHNwZWNpZnkgZGlmZmVyZW50IHJhZGlpIGZvciBjb3JuZXJzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHN0cm9rZVJvdW5kZWRSZWN0OiBmdW5jdGlvbiAoeCwgeSwgd2lkdGgsIGhlaWdodCwgcmFkaXVzKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChyYWRpdXMgPT09IHVuZGVmaW5lZCkgeyByYWRpdXMgPSAyMDsgfVxyXG5cclxuICAgICAgICB2YXIgdGwgPSByYWRpdXM7XHJcbiAgICAgICAgdmFyIHRyID0gcmFkaXVzO1xyXG4gICAgICAgIHZhciBibCA9IHJhZGl1cztcclxuICAgICAgICB2YXIgYnIgPSByYWRpdXM7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgcmFkaXVzICE9PSAnbnVtYmVyJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRsID0gR2V0RmFzdFZhbHVlKHJhZGl1cywgJ3RsJywgMjApO1xyXG4gICAgICAgICAgICB0ciA9IEdldEZhc3RWYWx1ZShyYWRpdXMsICd0cicsIDIwKTtcclxuICAgICAgICAgICAgYmwgPSBHZXRGYXN0VmFsdWUocmFkaXVzLCAnYmwnLCAyMCk7XHJcbiAgICAgICAgICAgIGJyID0gR2V0RmFzdFZhbHVlKHJhZGl1cywgJ2JyJywgMjApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5iZWdpblBhdGgoKTtcclxuICAgICAgICB0aGlzLm1vdmVUbyh4ICsgdGwsIHkpO1xyXG4gICAgICAgIHRoaXMubGluZVRvKHggKyB3aWR0aCAtIHRyLCB5KTtcclxuICAgICAgICB0aGlzLmFyYyh4ICsgd2lkdGggLSB0ciwgeSArIHRyLCB0ciwgLU1BVEhfQ09OU1QuVEFVLCAwKTtcclxuICAgICAgICB0aGlzLmxpbmVUbyh4ICsgd2lkdGgsIHkgKyBoZWlnaHQgLSBicik7XHJcbiAgICAgICAgdGhpcy5hcmMoeCArIHdpZHRoIC0gYnIsIHkgKyBoZWlnaHQgLSBiciwgYnIsIDAsIE1BVEhfQ09OU1QuVEFVKTtcclxuICAgICAgICB0aGlzLmxpbmVUbyh4ICsgYmwsIHkgKyBoZWlnaHQpO1xyXG4gICAgICAgIHRoaXMuYXJjKHggKyBibCwgeSArIGhlaWdodCAtIGJsLCBibCwgTUFUSF9DT05TVC5UQVUsIE1hdGguUEkpO1xyXG4gICAgICAgIHRoaXMubGluZVRvKHgsIHkgKyB0bCk7XHJcbiAgICAgICAgdGhpcy5hcmMoeCArIHRsLCB5ICsgdGwsIHRsLCAtTWF0aC5QSSwgLU1BVEhfQ09OU1QuVEFVKTtcclxuICAgICAgICB0aGlzLnN0cm9rZVBhdGgoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmlsbCB0aGUgZ2l2ZW4gcG9pbnQuXHJcbiAgICAgKlxyXG4gICAgICogRHJhd3MgYSBzcXVhcmUgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLCAxIHBpeGVsIGluIHNpemUgYnkgZGVmYXVsdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNmaWxsUG9pbnRTaGFwZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoUGhhc2VyLkdlb20uUG9pbnR8UGhhc2VyLk1hdGguVmVjdG9yMnxvYmplY3QpfSBwb2ludCAtIFRoZSBwb2ludCB0byBmaWxsLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzaXplPTFdIC0gVGhlIHNpemUgb2YgdGhlIHNxdWFyZSB0byBkcmF3LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGZpbGxQb2ludFNoYXBlOiBmdW5jdGlvbiAocG9pbnQsIHNpemUpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsbFBvaW50KHBvaW50LngsIHBvaW50LnksIHNpemUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbGwgYSBwb2ludCBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogRHJhd3MgYSBzcXVhcmUgYXQgdGhlIGdpdmVuIHBvc2l0aW9uLCAxIHBpeGVsIGluIHNpemUgYnkgZGVmYXVsdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNmaWxsUG9pbnRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgcG9pbnQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB5IGNvb3JkaW5hdGUgb2YgdGhlIHBvaW50LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzaXplPTFdIC0gVGhlIHNpemUgb2YgdGhlIHNxdWFyZSB0byBkcmF3LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGZpbGxQb2ludDogZnVuY3Rpb24gKHgsIHksIHNpemUpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCFzaXplIHx8IHNpemUgPCAxKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgc2l6ZSA9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHggLT0gKHNpemUgLyAyKTtcclxuICAgICAgICAgICAgeSAtPSAoc2l6ZSAvIDIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jb21tYW5kQnVmZmVyLnB1c2goXHJcbiAgICAgICAgICAgIENvbW1hbmRzLkZJTExfUkVDVCxcclxuICAgICAgICAgICAgeCwgeSwgc2l6ZSwgc2l6ZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbGwgdGhlIGdpdmVuIHRyaWFuZ2xlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2ZpbGxUcmlhbmdsZVNoYXBlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HZW9tLlRyaWFuZ2xlfSB0cmlhbmdsZSAtIFRoZSB0cmlhbmdsZSB0byBmaWxsLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGZpbGxUcmlhbmdsZVNoYXBlOiBmdW5jdGlvbiAodHJpYW5nbGUpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsbFRyaWFuZ2xlKHRyaWFuZ2xlLngxLCB0cmlhbmdsZS55MSwgdHJpYW5nbGUueDIsIHRyaWFuZ2xlLnkyLCB0cmlhbmdsZS54MywgdHJpYW5nbGUueTMpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0cm9rZSB0aGUgZ2l2ZW4gdHJpYW5nbGUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3Mjc3Ryb2tlVHJpYW5nbGVTaGFwZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2VvbS5UcmlhbmdsZX0gdHJpYW5nbGUgLSBUaGUgdHJpYW5nbGUgdG8gc3Ryb2tlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHN0cm9rZVRyaWFuZ2xlU2hhcGU6IGZ1bmN0aW9uICh0cmlhbmdsZSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdHJva2VUcmlhbmdsZSh0cmlhbmdsZS54MSwgdHJpYW5nbGUueTEsIHRyaWFuZ2xlLngyLCB0cmlhbmdsZS55MiwgdHJpYW5nbGUueDMsIHRyaWFuZ2xlLnkzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaWxsIGEgdHJpYW5nbGUgd2l0aCB0aGUgZ2l2ZW4gcG9pbnRzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2ZpbGxUcmlhbmdsZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHgwIC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgZmlyc3QgcG9pbnQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geTAgLSBUaGUgeSBjb29yZGluYXRlIG9mIHRoZSBmaXJzdCBwb2ludC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4MSAtIFRoZSB4IGNvb3JkaW5hdGUgb2YgdGhlIHNlY29uZCBwb2ludC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5MSAtIFRoZSB5IGNvb3JkaW5hdGUgb2YgdGhlIHNlY29uZCBwb2ludC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4MiAtIFRoZSB4IGNvb3JkaW5hdGUgb2YgdGhlIHRoaXJkIHBvaW50LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkyIC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgdGhpcmQgcG9pbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgZmlsbFRyaWFuZ2xlOiBmdW5jdGlvbiAoeDAsIHkwLCB4MSwgeTEsIHgyLCB5MilcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIucHVzaChcclxuICAgICAgICAgICAgQ29tbWFuZHMuRklMTF9UUklBTkdMRSxcclxuICAgICAgICAgICAgeDAsIHkwLCB4MSwgeTEsIHgyLCB5MlxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0cm9rZSBhIHRyaWFuZ2xlIHdpdGggdGhlIGdpdmVuIHBvaW50cy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNzdHJva2VUcmlhbmdsZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHgwIC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgZmlyc3QgcG9pbnQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geTAgLSBUaGUgeSBjb29yZGluYXRlIG9mIHRoZSBmaXJzdCBwb2ludC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4MSAtIFRoZSB4IGNvb3JkaW5hdGUgb2YgdGhlIHNlY29uZCBwb2ludC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5MSAtIFRoZSB5IGNvb3JkaW5hdGUgb2YgdGhlIHNlY29uZCBwb2ludC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4MiAtIFRoZSB4IGNvb3JkaW5hdGUgb2YgdGhlIHRoaXJkIHBvaW50LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkyIC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgdGhpcmQgcG9pbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc3Ryb2tlVHJpYW5nbGU6IGZ1bmN0aW9uICh4MCwgeTAsIHgxLCB5MSwgeDIsIHkyKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY29tbWFuZEJ1ZmZlci5wdXNoKFxyXG4gICAgICAgICAgICBDb21tYW5kcy5TVFJPS0VfVFJJQU5HTEUsXHJcbiAgICAgICAgICAgIHgwLCB5MCwgeDEsIHkxLCB4MiwgeTJcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEcmF3IHRoZSBnaXZlbiBsaW5lLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI3N0cm9rZUxpbmVTaGFwZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2VvbS5MaW5lfSBsaW5lIC0gVGhlIGxpbmUgdG8gc3Ryb2tlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHN0cm9rZUxpbmVTaGFwZTogZnVuY3Rpb24gKGxpbmUpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGluZUJldHdlZW4obGluZS54MSwgbGluZS55MSwgbGluZS54MiwgbGluZS55Mik7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRHJhdyBhIGxpbmUgYmV0d2VlbiB0aGUgZ2l2ZW4gcG9pbnRzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2xpbmVCZXR3ZWVuXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geDEgLSBUaGUgeCBjb29yZGluYXRlIG9mIHRoZSBzdGFydCBwb2ludCBvZiB0aGUgbGluZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5MSAtIFRoZSB5IGNvb3JkaW5hdGUgb2YgdGhlIHN0YXJ0IHBvaW50IG9mIHRoZSBsaW5lLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHgyIC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgZW5kIHBvaW50IG9mIHRoZSBsaW5lLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkyIC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgZW5kIHBvaW50IG9mIHRoZSBsaW5lLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGxpbmVCZXR3ZWVuOiBmdW5jdGlvbiAoeDEsIHkxLCB4MiwgeTIpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5iZWdpblBhdGgoKTtcclxuICAgICAgICB0aGlzLm1vdmVUbyh4MSwgeTEpO1xyXG4gICAgICAgIHRoaXMubGluZVRvKHgyLCB5Mik7XHJcbiAgICAgICAgdGhpcy5zdHJva2VQYXRoKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERyYXcgYSBsaW5lIGZyb20gdGhlIGN1cnJlbnQgZHJhd2luZyBwb3NpdGlvbiB0byB0aGUgZ2l2ZW4gcG9zaXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogTW92ZXMgdGhlIGN1cnJlbnQgZHJhd2luZyBwb3NpdGlvbiB0byB0aGUgZ2l2ZW4gcG9zaXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjbGluZVRvXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSB4IGNvb3JkaW5hdGUgdG8gZHJhdyB0aGUgbGluZSB0by5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgY29vcmRpbmF0ZSB0byBkcmF3IHRoZSBsaW5lIHRvLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGxpbmVUbzogZnVuY3Rpb24gKHgsIHkpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5jb21tYW5kQnVmZmVyLnB1c2goXHJcbiAgICAgICAgICAgIENvbW1hbmRzLkxJTkVfVE8sXHJcbiAgICAgICAgICAgIHgsIHlcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNb3ZlIHRoZSBjdXJyZW50IGRyYXdpbmcgcG9zaXRpb24gdG8gdGhlIGdpdmVuIHBvc2l0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI21vdmVUb1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBjb29yZGluYXRlIHRvIG1vdmUgdG8uXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB5IGNvb3JkaW5hdGUgdG8gbW92ZSB0by5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBtb3ZlVG86IGZ1bmN0aW9uICh4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY29tbWFuZEJ1ZmZlci5wdXNoKFxyXG4gICAgICAgICAgICBDb21tYW5kcy5NT1ZFX1RPLFxyXG4gICAgICAgICAgICB4LCB5XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Ryb2tlIHRoZSBzaGFwZSByZXByZXNlbnRlZCBieSB0aGUgZ2l2ZW4gYXJyYXkgb2YgcG9pbnRzLlxyXG4gICAgICpcclxuICAgICAqIFBhc3MgYGNsb3NlU2hhcGVgIHRvIGF1dG9tYXRpY2FsbHkgY2xvc2UgdGhlIHNoYXBlIGJ5IGpvaW5pbmcgdGhlIGxhc3QgdG8gdGhlIGZpcnN0IHBvaW50LlxyXG4gICAgICogXHJcbiAgICAgKiBQYXNzIGBjbG9zZVBhdGhgIHRvIGF1dG9tYXRpY2FsbHkgY2xvc2UgdGhlIHBhdGggYmVmb3JlIGl0IGlzIHN0cm9rZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3Mjc3Ryb2tlUG9pbnRzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2VvbS5Qb2ludFtdKX0gcG9pbnRzIC0gVGhlIHBvaW50cyB0byBzdHJva2UuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjbG9zZVNoYXBlPWZhbHNlXSAtIFdoZW4gYHRydWVgLCB0aGUgc2hhcGUgaXMgY2xvc2VkIGJ5IGpvaW5pbmcgdGhlIGxhc3QgcG9pbnQgdG8gdGhlIGZpcnN0IHBvaW50LlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbY2xvc2VQYXRoPWZhbHNlXSAtIFdoZW4gYHRydWVgLCB0aGUgcGF0aCBpcyBjbG9zZWQgYmVmb3JlIGJlaW5nIHN0cm9rZWQuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtlbmRJbmRleF0gLSBUaGUgaW5kZXggb2YgYHBvaW50c2AgdG8gc3RvcCBkcmF3aW5nIGF0LiBEZWZhdWx0cyB0byBgcG9pbnRzLmxlbmd0aGAuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc3Ryb2tlUG9pbnRzOiBmdW5jdGlvbiAocG9pbnRzLCBjbG9zZVNoYXBlLCBjbG9zZVBhdGgsIGVuZEluZGV4KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChjbG9zZVNoYXBlID09PSB1bmRlZmluZWQpIHsgY2xvc2VTaGFwZSA9IGZhbHNlOyB9XHJcbiAgICAgICAgaWYgKGNsb3NlUGF0aCA9PT0gdW5kZWZpbmVkKSB7IGNsb3NlUGF0aCA9IGZhbHNlOyB9XHJcbiAgICAgICAgaWYgKGVuZEluZGV4ID09PSB1bmRlZmluZWQpIHsgZW5kSW5kZXggPSBwb2ludHMubGVuZ3RoOyB9XHJcblxyXG4gICAgICAgIHRoaXMuYmVnaW5QYXRoKCk7XHJcblxyXG4gICAgICAgIHRoaXMubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgZW5kSW5kZXg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubGluZVRvKHBvaW50c1tpXS54LCBwb2ludHNbaV0ueSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2xvc2VTaGFwZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubGluZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2xvc2VQYXRoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBhdGgoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc3Ryb2tlUGF0aCgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaWxsIHRoZSBzaGFwZSByZXByZXNlbnRlZCBieSB0aGUgZ2l2ZW4gYXJyYXkgb2YgcG9pbnRzLlxyXG4gICAgICpcclxuICAgICAqIFBhc3MgYGNsb3NlU2hhcGVgIHRvIGF1dG9tYXRpY2FsbHkgY2xvc2UgdGhlIHNoYXBlIGJ5IGpvaW5pbmcgdGhlIGxhc3QgdG8gdGhlIGZpcnN0IHBvaW50LlxyXG4gICAgICogXHJcbiAgICAgKiBQYXNzIGBjbG9zZVBhdGhgIHRvIGF1dG9tYXRpY2FsbHkgY2xvc2UgdGhlIHBhdGggYmVmb3JlIGl0IGlzIGZpbGxlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNmaWxsUG9pbnRzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhhcnJheXxQaGFzZXIuR2VvbS5Qb2ludFtdKX0gcG9pbnRzIC0gVGhlIHBvaW50cyB0byBmaWxsLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbY2xvc2VTaGFwZT1mYWxzZV0gLSBXaGVuIGB0cnVlYCwgdGhlIHNoYXBlIGlzIGNsb3NlZCBieSBqb2luaW5nIHRoZSBsYXN0IHBvaW50IHRvIHRoZSBmaXJzdCBwb2ludC5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Nsb3NlUGF0aD1mYWxzZV0gLSBXaGVuIGB0cnVlYCwgdGhlIHBhdGggaXMgY2xvc2VkIGJlZm9yZSBiZWluZyBzdHJva2VkLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZW5kSW5kZXhdIC0gVGhlIGluZGV4IG9mIGBwb2ludHNgIHRvIHN0b3AgYXQuIERlZmF1bHRzIHRvIGBwb2ludHMubGVuZ3RoYC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBmaWxsUG9pbnRzOiBmdW5jdGlvbiAocG9pbnRzLCBjbG9zZVNoYXBlLCBjbG9zZVBhdGgsIGVuZEluZGV4KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChjbG9zZVNoYXBlID09PSB1bmRlZmluZWQpIHsgY2xvc2VTaGFwZSA9IGZhbHNlOyB9XHJcbiAgICAgICAgaWYgKGNsb3NlUGF0aCA9PT0gdW5kZWZpbmVkKSB7IGNsb3NlUGF0aCA9IGZhbHNlOyB9XHJcbiAgICAgICAgaWYgKGVuZEluZGV4ID09PSB1bmRlZmluZWQpIHsgZW5kSW5kZXggPSBwb2ludHMubGVuZ3RoOyB9XHJcblxyXG4gICAgICAgIHRoaXMuYmVnaW5QYXRoKCk7XHJcblxyXG4gICAgICAgIHRoaXMubW92ZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgZW5kSW5kZXg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubGluZVRvKHBvaW50c1tpXS54LCBwb2ludHNbaV0ueSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2xvc2VTaGFwZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubGluZVRvKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2xvc2VQYXRoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jbG9zZVBhdGgoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZmlsbFBhdGgoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Ryb2tlIHRoZSBnaXZlbiBlbGxpcHNlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI3N0cm9rZUVsbGlwc2VTaGFwZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2VvbS5FbGxpcHNlfSBlbGxpcHNlIC0gVGhlIGVsbGlwc2UgdG8gc3Ryb2tlLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbc21vb3RobmVzcz0zMl0gLSBUaGUgbnVtYmVyIG9mIHBvaW50cyB0byBkcmF3IHRoZSBlbGxpcHNlIHdpdGguXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc3Ryb2tlRWxsaXBzZVNoYXBlOiBmdW5jdGlvbiAoZWxsaXBzZSwgc21vb3RobmVzcylcclxuICAgIHtcclxuICAgICAgICBpZiAoc21vb3RobmVzcyA9PT0gdW5kZWZpbmVkKSB7IHNtb290aG5lc3MgPSAzMjsgfVxyXG5cclxuICAgICAgICB2YXIgcG9pbnRzID0gZWxsaXBzZS5nZXRQb2ludHMoc21vb3RobmVzcyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnN0cm9rZVBvaW50cyhwb2ludHMsIHRydWUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0cm9rZSBhbiBlbGxpcHNlIHdpdGggdGhlIGdpdmVuIHBvc2l0aW9uIGFuZCBzaXplLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI3N0cm9rZUVsbGlwc2VcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgY2VudGVyIG9mIHRoZSBlbGxpcHNlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBjb29yZGluYXRlIG9mIHRoZSBjZW50ZXIgb2YgdGhlIGVsbGlwc2UuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBUaGUgd2lkdGggb2YgdGhlIGVsbGlwc2UuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gVGhlIGhlaWdodCBvZiB0aGUgZWxsaXBzZS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3Ntb290aG5lc3M9MzJdIC0gVGhlIG51bWJlciBvZiBwb2ludHMgdG8gZHJhdyB0aGUgZWxsaXBzZSB3aXRoLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHN0cm9rZUVsbGlwc2U6IGZ1bmN0aW9uICh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBzbW9vdGhuZXNzKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChzbW9vdGhuZXNzID09PSB1bmRlZmluZWQpIHsgc21vb3RobmVzcyA9IDMyOyB9XHJcblxyXG4gICAgICAgIHZhciBlbGxpcHNlID0gbmV3IEVsbGlwc2UoeCwgeSwgd2lkdGgsIGhlaWdodCk7XHJcblxyXG4gICAgICAgIHZhciBwb2ludHMgPSBlbGxpcHNlLmdldFBvaW50cyhzbW9vdGhuZXNzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Ryb2tlUG9pbnRzKHBvaW50cywgdHJ1ZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmlsbCB0aGUgZ2l2ZW4gZWxsaXBzZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNmaWxsRWxsaXBzZVNoYXBlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HZW9tLkVsbGlwc2V9IGVsbGlwc2UgLSBUaGUgZWxsaXBzZSB0byBmaWxsLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbc21vb3RobmVzcz0zMl0gLSBUaGUgbnVtYmVyIG9mIHBvaW50cyB0byBkcmF3IHRoZSBlbGxpcHNlIHdpdGguXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgZmlsbEVsbGlwc2VTaGFwZTogZnVuY3Rpb24gKGVsbGlwc2UsIHNtb290aG5lc3MpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHNtb290aG5lc3MgPT09IHVuZGVmaW5lZCkgeyBzbW9vdGhuZXNzID0gMzI7IH1cclxuXHJcbiAgICAgICAgdmFyIHBvaW50cyA9IGVsbGlwc2UuZ2V0UG9pbnRzKHNtb290aG5lc3MpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5maWxsUG9pbnRzKHBvaW50cywgdHJ1ZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmlsbCBhbiBlbGxpcHNlIHdpdGggdGhlIGdpdmVuIHBvc2l0aW9uIGFuZCBzaXplLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2ZpbGxFbGxpcHNlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSB4IGNvb3JkaW5hdGUgb2YgdGhlIGNlbnRlciBvZiB0aGUgZWxsaXBzZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgY2VudGVyIG9mIHRoZSBlbGxpcHNlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBlbGxpcHNlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIGVsbGlwc2UuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtzbW9vdGhuZXNzPTMyXSAtIFRoZSBudW1iZXIgb2YgcG9pbnRzIHRvIGRyYXcgdGhlIGVsbGlwc2Ugd2l0aC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBmaWxsRWxsaXBzZTogZnVuY3Rpb24gKHgsIHksIHdpZHRoLCBoZWlnaHQsIHNtb290aG5lc3MpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHNtb290aG5lc3MgPT09IHVuZGVmaW5lZCkgeyBzbW9vdGhuZXNzID0gMzI7IH1cclxuXHJcbiAgICAgICAgdmFyIGVsbGlwc2UgPSBuZXcgRWxsaXBzZSh4LCB5LCB3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgdmFyIHBvaW50cyA9IGVsbGlwc2UuZ2V0UG9pbnRzKHNtb290aG5lc3MpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5maWxsUG9pbnRzKHBvaW50cywgdHJ1ZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRHJhdyBhbiBhcmMuXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGNpcmNsZXMsIG9yIHBhcnRzIG9mIGNpcmNsZXMuXHJcbiAgICAgKiBcclxuICAgICAqIE1ha2Ugc3VyZSB5b3UgY2FsbCBgYmVnaW5QYXRoYCBiZWZvcmUgc3RhcnRpbmcgdGhlIGFyYyB1bmxlc3MgeW91IHdpc2ggZm9yIHRoZSBhcmMgdG8gYXV0b21hdGljYWxseVxyXG4gICAgICogY2xvc2Ugd2hlbiBmaWxsZWQgb3Igc3Ryb2tlZC5cclxuICAgICAqXHJcbiAgICAgKiBVc2UgdGhlIG9wdGlvbmFsIGBvdmVyc2hvb3RgIGFyZ3VtZW50IGluY3JlYXNlIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyB0aGF0IHRha2UgcGxhY2Ugd2hlblxyXG4gICAgICogdGhlIGFyYyBpcyByZW5kZXJlZCBpbiBXZWJHTC4gVGhpcyBpcyB1c2VmdWwgaWYgeW91J3JlIGRyYXdpbmcgYW4gYXJjIHdpdGggYW4gZXNwZWNpYWxseSB0aGljayBsaW5lLFxyXG4gICAgICogYXMgaXQgd2lsbCBhbGxvdyB0aGUgYXJjIHRvIGZ1bGx5IGpvaW4tdXAuIFRyeSBzbWFsbCB2YWx1ZXMgYXQgZmlyc3QsIGkuZS4gMC4wMS5cclxuICAgICAqXHJcbiAgICAgKiBDYWxsIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjZmlsbFBhdGh9IG9yIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3Mjc3Ryb2tlUGF0aH0gYWZ0ZXIgY2FsbGluZ1xyXG4gICAgICogdGhpcyBtZXRob2QgdG8gZHJhdyB0aGUgYXJjLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2FyY1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBjb29yZGluYXRlIG9mIHRoZSBjZW50ZXIgb2YgdGhlIGNpcmNsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgY2VudGVyIG9mIHRoZSBjaXJjbGUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmFkaXVzIC0gVGhlIHJhZGl1cyBvZiB0aGUgY2lyY2xlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0QW5nbGUgLSBUaGUgc3RhcnRpbmcgYW5nbGUsIGluIHJhZGlhbnMuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kQW5nbGUgLSBUaGUgZW5kaW5nIGFuZ2xlLCBpbiByYWRpYW5zLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbYW50aWNsb2Nrd2lzZT1mYWxzZV0gLSBXaGV0aGVyIHRoZSBkcmF3aW5nIHNob3VsZCBiZSBhbnRpY2xvY2t3aXNlIG9yIGNsb2Nrd2lzZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3ZlcnNob290PTBdIC0gVGhpcyB2YWx1ZSBhbGxvd3MgeW91IHRvIGluY3JlYXNlIHRoZSBzZWdtZW50IGl0ZXJhdGlvbnMgaW4gV2ViR0wgcmVuZGVyaW5nLiBVc2VmdWwgaWYgdGhlIGFyYyBoYXMgYSB0aGljayBzdHJva2UgYW5kIG5lZWRzIHRvIG92ZXJzaG9vdCB0byBqb2luLXVwIGNsZWFubHkuIFVzZSBzbWFsbCBudW1iZXJzIHN1Y2ggYXMgMC4wMSB0byBzdGFydCB3aXRoIGFuZCBpbmNyZWFzZSBhcyBuZWVkZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgYXJjOiBmdW5jdGlvbiAoeCwgeSwgcmFkaXVzLCBzdGFydEFuZ2xlLCBlbmRBbmdsZSwgYW50aWNsb2Nrd2lzZSwgb3ZlcnNob290KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChhbnRpY2xvY2t3aXNlID09PSB1bmRlZmluZWQpIHsgYW50aWNsb2Nrd2lzZSA9IGZhbHNlOyB9XHJcbiAgICAgICAgaWYgKG92ZXJzaG9vdCA9PT0gdW5kZWZpbmVkKSB7IG92ZXJzaG9vdCA9IDA7IH1cclxuXHJcbiAgICAgICAgdGhpcy5jb21tYW5kQnVmZmVyLnB1c2goXHJcbiAgICAgICAgICAgIENvbW1hbmRzLkFSQyxcclxuICAgICAgICAgICAgeCwgeSwgcmFkaXVzLCBzdGFydEFuZ2xlLCBlbmRBbmdsZSwgYW50aWNsb2Nrd2lzZSwgb3ZlcnNob290XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIHBpZS1jaGFydCBzbGljZSBzaGFwZSBjZW50ZXJlZCBhdCBgeGAsIGB5YCB3aXRoIHRoZSBnaXZlbiByYWRpdXMuXHJcbiAgICAgKiBZb3UgbXVzdCBkZWZpbmUgdGhlIHN0YXJ0IGFuZCBlbmQgYW5nbGUgb2YgdGhlIHNsaWNlLlxyXG4gICAgICpcclxuICAgICAqIFNldHRpbmcgdGhlIGBhbnRpY2xvY2t3aXNlYCBhcmd1bWVudCB0byBgdHJ1ZWAgY3JlYXRlcyBhIHNoYXBlIHNpbWlsYXIgdG8gUGFjbWFuLlxyXG4gICAgICogU2V0dGluZyBpdCB0byBgZmFsc2VgIGNyZWF0ZXMgYSBzaGFwZSBsaWtlIGEgc2xpY2Ugb2YgcGllLlxyXG4gICAgICpcclxuICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgYmVnaW4gYSBuZXcgcGF0aCBhbmQgY2xvc2UgdGhlIHBhdGggYXQgdGhlIGVuZCBvZiBpdC5cclxuICAgICAqIFRvIGRpc3BsYXkgdGhlIGFjdHVhbCBzbGljZSB5b3UgbmVlZCB0byBjYWxsIGVpdGhlciBgc3Ryb2tlUGF0aGAgb3IgYGZpbGxQYXRoYCBhZnRlciBpdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNzbGljZVxyXG4gICAgICogQHNpbmNlIDMuNC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBjZW50ZXIgb2YgdGhlIHNsaWNlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgY2VudGVyIG9mIHRoZSBzbGljZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByYWRpdXMgLSBUaGUgcmFkaXVzIG9mIHRoZSBzbGljZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydEFuZ2xlIC0gVGhlIHN0YXJ0IGFuZ2xlIG9mIHRoZSBzbGljZSwgZ2l2ZW4gaW4gcmFkaWFucy5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmRBbmdsZSAtIFRoZSBlbmQgYW5nbGUgb2YgdGhlIHNsaWNlLCBnaXZlbiBpbiByYWRpYW5zLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbYW50aWNsb2Nrd2lzZT1mYWxzZV0gLSBXaGV0aGVyIHRoZSBkcmF3aW5nIHNob3VsZCBiZSBhbnRpY2xvY2t3aXNlIG9yIGNsb2Nrd2lzZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb3ZlcnNob290PTBdIC0gVGhpcyB2YWx1ZSBhbGxvd3MgeW91IHRvIG92ZXJzaG9vdCB0aGUgZW5kQW5nbGUgYnkgdGhpcyBhbW91bnQuIFVzZWZ1bCBpZiB0aGUgYXJjIGhhcyBhIHRoaWNrIHN0cm9rZSBhbmQgbmVlZHMgdG8gb3ZlcnNob290IHRvIGpvaW4tdXAgY2xlYW5seS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzbGljZTogZnVuY3Rpb24gKHgsIHksIHJhZGl1cywgc3RhcnRBbmdsZSwgZW5kQW5nbGUsIGFudGljbG9ja3dpc2UsIG92ZXJzaG9vdClcclxuICAgIHtcclxuICAgICAgICBpZiAoYW50aWNsb2Nrd2lzZSA9PT0gdW5kZWZpbmVkKSB7IGFudGljbG9ja3dpc2UgPSBmYWxzZTsgfVxyXG4gICAgICAgIGlmIChvdmVyc2hvb3QgPT09IHVuZGVmaW5lZCkgeyBvdmVyc2hvb3QgPSAwOyB9XHJcblxyXG4gICAgICAgIHRoaXMuY29tbWFuZEJ1ZmZlci5wdXNoKENvbW1hbmRzLkJFR0lOX1BBVEgpO1xyXG5cclxuICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIucHVzaChDb21tYW5kcy5NT1ZFX1RPLCB4LCB5KTtcclxuXHJcbiAgICAgICAgdGhpcy5jb21tYW5kQnVmZmVyLnB1c2goQ29tbWFuZHMuQVJDLCB4LCB5LCByYWRpdXMsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlLCBhbnRpY2xvY2t3aXNlLCBvdmVyc2hvb3QpO1xyXG5cclxuICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIucHVzaChDb21tYW5kcy5DTE9TRV9QQVRIKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2F2ZXMgdGhlIHN0YXRlIG9mIHRoZSBHcmFwaGljcyBieSBwdXNoaW5nIHRoZSBjdXJyZW50IHN0YXRlIG9udG8gYSBzdGFjay5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgbW9zdCByZWNlbnRseSBzYXZlZCBzdGF0ZSBjYW4gdGhlbiBiZSByZXN0b3JlZCB3aXRoIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjcmVzdG9yZX0uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3Mjc2F2ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2F2ZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIucHVzaChcclxuICAgICAgICAgICAgQ29tbWFuZHMuU0FWRVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc3RvcmVzIHRoZSBtb3N0IHJlY2VudGx5IHNhdmVkIHN0YXRlIG9mIHRoZSBHcmFwaGljcyBieSBwb3BwaW5nIGZyb20gdGhlIHN0YXRlIHN0YWNrLlxyXG4gICAgICpcclxuICAgICAqIFVzZSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI3NhdmV9IHRvIHNhdmUgdGhlIGN1cnJlbnQgc3RhdGUsIGFuZCBjYWxsIHRoaXMgYWZ0ZXJ3YXJkcyB0byByZXN0b3JlIHRoYXQgc3RhdGUuXHJcbiAgICAgKlxyXG4gICAgICogSWYgdGhlcmUgaXMgbm8gc2F2ZWQgc3RhdGUsIHRoaXMgY29tbWFuZCBkb2VzIG5vdGhpbmcuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjcmVzdG9yZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcmVzdG9yZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIucHVzaChcclxuICAgICAgICAgICAgQ29tbWFuZHMuUkVTVE9SRVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluc2VydHMgYSB0cmFuc2xhdGlvbiBjb21tYW5kIGludG8gdGhpcyBHcmFwaGljcyBvYmplY3RzIGNvbW1hbmQgYnVmZmVyLlxyXG4gICAgICogXHJcbiAgICAgKiBBbGwgb2JqZWN0cyBkcmF3biBfYWZ0ZXJfIGNhbGxpbmcgdGhpcyBtZXRob2Qgd2lsbCBiZSB0cmFuc2xhdGVkXHJcbiAgICAgKiBieSB0aGUgZ2l2ZW4gYW1vdW50LlxyXG4gICAgICogXHJcbiAgICAgKiBUaGlzIGRvZXMgbm90IGNoYW5nZSB0aGUgcG9zaXRpb24gb2YgdGhlIEdyYXBoaWNzIG9iamVjdCBpdHNlbGYsXHJcbiAgICAgKiBvbmx5IG9mIHRoZSBvYmplY3RzIGRyYXduIGJ5IGl0IGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjdHJhbnNsYXRlQ2FudmFzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBob3Jpem9udGFsIHRyYW5zbGF0aW9uIHRvIGFwcGx5LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgdHJhbnNsYXRpb24gdG8gYXBwbHkuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgdHJhbnNsYXRlQ2FudmFzOiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIucHVzaChcclxuICAgICAgICAgICAgQ29tbWFuZHMuVFJBTlNMQVRFLFxyXG4gICAgICAgICAgICB4LCB5XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5zZXJ0cyBhIHNjYWxlIGNvbW1hbmQgaW50byB0aGlzIEdyYXBoaWNzIG9iamVjdHMgY29tbWFuZCBidWZmZXIuXHJcbiAgICAgKiBcclxuICAgICAqIEFsbCBvYmplY3RzIGRyYXduIF9hZnRlcl8gY2FsbGluZyB0aGlzIG1ldGhvZCB3aWxsIGJlIHNjYWxlZFxyXG4gICAgICogYnkgdGhlIGdpdmVuIGFtb3VudC5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyBkb2VzIG5vdCBjaGFuZ2UgdGhlIHNjYWxlIG9mIHRoZSBHcmFwaGljcyBvYmplY3QgaXRzZWxmLFxyXG4gICAgICogb25seSBvZiB0aGUgb2JqZWN0cyBkcmF3biBieSBpdCBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI3NjYWxlQ2FudmFzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBob3Jpem9udGFsIHNjYWxlIHRvIGFwcGx5LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgc2NhbGUgdG8gYXBwbHkuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2NhbGVDYW52YXM6IGZ1bmN0aW9uICh4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY29tbWFuZEJ1ZmZlci5wdXNoKFxyXG4gICAgICAgICAgICBDb21tYW5kcy5TQ0FMRSxcclxuICAgICAgICAgICAgeCwgeVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluc2VydHMgYSByb3RhdGlvbiBjb21tYW5kIGludG8gdGhpcyBHcmFwaGljcyBvYmplY3RzIGNvbW1hbmQgYnVmZmVyLlxyXG4gICAgICogXHJcbiAgICAgKiBBbGwgb2JqZWN0cyBkcmF3biBfYWZ0ZXJfIGNhbGxpbmcgdGhpcyBtZXRob2Qgd2lsbCBiZSByb3RhdGVkXHJcbiAgICAgKiBieSB0aGUgZ2l2ZW4gYW1vdW50LlxyXG4gICAgICogXHJcbiAgICAgKiBUaGlzIGRvZXMgbm90IGNoYW5nZSB0aGUgcm90YXRpb24gb2YgdGhlIEdyYXBoaWNzIG9iamVjdCBpdHNlbGYsXHJcbiAgICAgKiBvbmx5IG9mIHRoZSBvYmplY3RzIGRyYXduIGJ5IGl0IGFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3Mjcm90YXRlQ2FudmFzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmFkaWFucyAtIFRoZSByb3RhdGlvbiBhbmdsZSwgaW4gcmFkaWFucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICByb3RhdGVDYW52YXM6IGZ1bmN0aW9uIChyYWRpYW5zKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY29tbWFuZEJ1ZmZlci5wdXNoKFxyXG4gICAgICAgICAgICBDb21tYW5kcy5ST1RBVEUsXHJcbiAgICAgICAgICAgIHJhZGlhbnNcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbGVhciB0aGUgY29tbWFuZCBidWZmZXIgYW5kIHJlc2V0IHRoZSBmaWxsIHN0eWxlIGFuZCBsaW5lIHN0eWxlIHRvIHRoZWlyIGRlZmF1bHRzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2NsZWFyXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBjbGVhcjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNvbW1hbmRCdWZmZXIubGVuZ3RoID0gMDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdEZpbGxDb2xvciA+IC0xKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5maWxsU3R5bGUodGhpcy5kZWZhdWx0RmlsbENvbG9yLCB0aGlzLmRlZmF1bHRGaWxsQWxwaGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdFN0cm9rZUNvbG9yID4gLTEpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmxpbmVTdHlsZSh0aGlzLmRlZmF1bHRTdHJva2VXaWR0aCwgdGhpcy5kZWZhdWx0U3Ryb2tlQ29sb3IsIHRoaXMuZGVmYXVsdFN0cm9rZUFscGhhKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlbmVyYXRlIGEgdGV4dHVyZSBmcm9tIHRoaXMgR3JhcGhpY3Mgb2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIElmIGBrZXlgIGlzIGEgc3RyaW5nIGl0J2xsIGdlbmVyYXRlIGEgbmV3IHRleHR1cmUgdXNpbmcgaXQgYW5kIGFkZCBpdCBpbnRvIHRoZVxyXG4gICAgICogVGV4dHVyZSBNYW5hZ2VyIChhc3N1bWluZyBubyBrZXkgY29uZmxpY3QgaGFwcGVucykuXHJcbiAgICAgKlxyXG4gICAgICogSWYgYGtleWAgaXMgYSBDYW52YXMgaXQgd2lsbCBkcmF3IHRoZSB0ZXh0dXJlIHRvIHRoYXQgY2FudmFzIGNvbnRleHQuIE5vdGUgdGhhdCBpdCB3aWxsIE5PVFxyXG4gICAgICogYXV0b21hdGljYWxseSB1cGxvYWQgaXQgdG8gdGhlIEdQVSBpbiBXZWJHTCBtb2RlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzI2dlbmVyYXRlVGV4dHVyZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfEhUTUxDYW52YXNFbGVtZW50KX0ga2V5IC0gVGhlIGtleSB0byBzdG9yZSB0aGUgdGV4dHVyZSB3aXRoIGluIHRoZSBUZXh0dXJlIE1hbmFnZXIsIG9yIGEgQ2FudmFzIHRvIGRyYXcgdG8uXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFt3aWR0aF0gLSBUaGUgd2lkdGggb2YgdGhlIGdyYXBoaWNzIHRvIGdlbmVyYXRlLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbaGVpZ2h0XSAtIFRoZSBoZWlnaHQgb2YgdGhlIGdyYXBoaWNzIHRvIGdlbmVyYXRlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGdlbmVyYXRlVGV4dHVyZTogZnVuY3Rpb24gKGtleSwgd2lkdGgsIGhlaWdodClcclxuICAgIHtcclxuICAgICAgICB2YXIgc3lzID0gdGhpcy5zY2VuZS5zeXM7XHJcbiAgICAgICAgdmFyIHJlbmRlcmVyID0gc3lzLmdhbWUucmVuZGVyZXI7XHJcblxyXG4gICAgICAgIGlmICh3aWR0aCA9PT0gdW5kZWZpbmVkKSB7IHdpZHRoID0gc3lzLnNjYWxlLndpZHRoOyB9XHJcbiAgICAgICAgaWYgKGhlaWdodCA9PT0gdW5kZWZpbmVkKSB7IGhlaWdodCA9IHN5cy5zY2FsZS5oZWlnaHQ7IH1cclxuXHJcbiAgICAgICAgR3JhcGhpY3MuVGFyZ2V0Q2FtZXJhLnNldFNjZW5lKHRoaXMuc2NlbmUpO1xyXG4gICAgICAgIEdyYXBoaWNzLlRhcmdldENhbWVyYS5zZXRWaWV3cG9ydCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICBHcmFwaGljcy5UYXJnZXRDYW1lcmEuc2Nyb2xsWCA9IHRoaXMueDtcclxuICAgICAgICBHcmFwaGljcy5UYXJnZXRDYW1lcmEuc2Nyb2xsWSA9IHRoaXMueTtcclxuXHJcbiAgICAgICAgdmFyIHRleHR1cmU7XHJcbiAgICAgICAgdmFyIGN0eDtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKHN5cy50ZXh0dXJlcy5leGlzdHMoa2V5KSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy8gIEtleSBpcyBhIHN0cmluZywgaXQgRE9FUyBleGlzdCBpbiB0aGUgVGV4dHVyZSBNYW5hZ2VyIEFORCBpcyBhIGNhbnZhcywgc28gZHJhdyB0byBpdFxyXG5cclxuICAgICAgICAgICAgICAgIHRleHR1cmUgPSBzeXMudGV4dHVyZXMuZ2V0KGtleSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIHNyYyA9IHRleHR1cmUuZ2V0U291cmNlSW1hZ2UoKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoc3JjIGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3R4ID0gc3JjLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAvLyAgS2V5IGlzIGEgc3RyaW5nIGFuZCBkb2Vzbid0IGV4aXN0IGluIHRoZSBUZXh0dXJlIE1hbmFnZXIsIHNvIGdlbmVyYXRlIGFuZCBzYXZlIGl0XHJcblxyXG4gICAgICAgICAgICAgICAgdGV4dHVyZSA9IHN5cy50ZXh0dXJlcy5jcmVhdGVDYW52YXMoa2V5LCB3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgICAgICBjdHggPSB0ZXh0dXJlLmdldFNvdXJjZUltYWdlKCkuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChrZXkgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBLZXkgaXMgYSBDYW52YXMsIHNvIGRyYXcgdG8gaXRcclxuXHJcbiAgICAgICAgICAgIGN0eCA9IGtleS5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGN0eClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vIHZhciBHcmFwaGljc0NhbnZhc1JlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeCwgcmVuZGVyVGFyZ2V0Q3R4LCBhbGxvd0NsaXApXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ2FudmFzKHJlbmRlcmVyLCB0aGlzLCAwLCBHcmFwaGljcy5UYXJnZXRDYW1lcmEsIG51bGwsIGN0eCwgZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRleHR1cmUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRleHR1cmUucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBkZXN0cm95IGhhbmRsZXIsIGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBkZXN0cm95IHByb2Nlc3MuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjcHJlRGVzdHJveVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHNpbmNlIDMuOS4wXHJcbiAgICAgKi9cclxuICAgIHByZURlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5jb21tYW5kQnVmZmVyID0gW107XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBBIENhbWVyYSB1c2VkIHNwZWNpZmljYWxseSBieSB0aGUgR3JhcGhpY3Mgc3lzdGVtIGZvciByZW5kZXJpbmcgdG8gdGV4dHVyZXMuXHJcbiAqXHJcbiAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcy5UYXJnZXRDYW1lcmFcclxuICogQHR5cGUge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfVxyXG4gKiBAc2luY2UgMy4xLjBcclxuICovXHJcbkdyYXBoaWNzLlRhcmdldENhbWVyYSA9IG5ldyBCYXNlQ2FtZXJhKCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEdyYXBoaWNzO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDb21tYW5kcyA9IHJlcXVpcmUoJy4vQ29tbWFuZHMnKTtcclxudmFyIFNldFRyYW5zZm9ybSA9IHJlcXVpcmUoJy4uLy4uL3JlbmRlcmVyL2NhbnZhcy91dGlscy9TZXRUcmFuc2Zvcm0nKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgQ2FudmFzIFJlbmRlcmVyIHRvIHRoZSBnaXZlbiBDYW1lcmEuXHJcbiAqIFRoZSBvYmplY3Qgd2lsbCBub3QgcmVuZGVyIGlmIGFueSBvZiBpdHMgcmVuZGVyRmxhZ3MgYXJlIHNldCBvciBpdCBpcyBiZWluZyBhY3RpdmVseSBmaWx0ZXJlZCBvdXQgYnkgdGhlIENhbWVyYS5cclxuICogVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuIEl0IGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBvZiB0aGUgUmVuZGVyIG1vZHVsZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3MjcmVuZGVyQ2FudmFzXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5DYW52YXMuQ2FudmFzUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIENhbnZhcyByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3N9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IFtyZW5kZXJUYXJnZXRDdHhdIC0gVGhlIHRhcmdldCByZW5kZXJpbmcgY29udGV4dC5cclxuICogQHBhcmFtIHtib29sZWFufSBhbGxvd0NsaXAgLSBJZiBgdHJ1ZWAgdGhlbiBwYXRoIG9wZXJhdGlvbnMgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgZmlsbCBvcGVyYXRpb25zLlxyXG4gKi9cclxudmFyIEdyYXBoaWNzQ2FudmFzUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4LCByZW5kZXJUYXJnZXRDdHgsIGFsbG93Q2xpcClcclxue1xyXG4gICAgdmFyIGNvbW1hbmRCdWZmZXIgPSBzcmMuY29tbWFuZEJ1ZmZlcjtcclxuICAgIHZhciBjb21tYW5kQnVmZmVyTGVuZ3RoID0gY29tbWFuZEJ1ZmZlci5sZW5ndGg7XHJcblxyXG4gICAgdmFyIGN0eCA9IHJlbmRlclRhcmdldEN0eCB8fCByZW5kZXJlci5jdXJyZW50Q29udGV4dDtcclxuXHJcbiAgICBpZiAoY29tbWFuZEJ1ZmZlckxlbmd0aCA9PT0gMCB8fCAhU2V0VHJhbnNmb3JtKHJlbmRlcmVyLCBjdHgsIHNyYywgY2FtZXJhLCBwYXJlbnRNYXRyaXgpKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgbGluZUFscGhhID0gMTtcclxuICAgIHZhciBmaWxsQWxwaGEgPSAxO1xyXG4gICAgdmFyIGxpbmVDb2xvciA9IDA7XHJcbiAgICB2YXIgZmlsbENvbG9yID0gMDtcclxuICAgIHZhciBsaW5lV2lkdGggPSAxO1xyXG4gICAgdmFyIHJlZCA9IDA7XHJcbiAgICB2YXIgZ3JlZW4gPSAwO1xyXG4gICAgdmFyIGJsdWUgPSAwO1xyXG5cclxuICAgIC8vICBSZXNldCBhbnkgY3VycmVudGx5IGFjdGl2ZSBwYXRoc1xyXG4gICAgY3R4LmJlZ2luUGF0aCgpO1xyXG5cclxuICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBjb21tYW5kQnVmZmVyTGVuZ3RoOyArK2luZGV4KVxyXG4gICAge1xyXG4gICAgICAgIHZhciBjb21tYW5kSUQgPSBjb21tYW5kQnVmZmVyW2luZGV4XTtcclxuXHJcbiAgICAgICAgc3dpdGNoIChjb21tYW5kSUQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjYXNlIENvbW1hbmRzLkFSQzpcclxuICAgICAgICAgICAgICAgIGN0eC5hcmMoXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcltpbmRleCArIDFdLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRCdWZmZXJbaW5kZXggKyAyXSxcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kQnVmZmVyW2luZGV4ICsgM10sXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcltpbmRleCArIDRdLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRCdWZmZXJbaW5kZXggKyA1XSxcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kQnVmZmVyW2luZGV4ICsgNl1cclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gICs3IGJlY2F1c2Ugb3ZlcnNob290IGlzIHRoZSA3dGggdmFsdWUsIG5vdCB1c2VkIGluIENhbnZhc1xyXG4gICAgICAgICAgICAgICAgaW5kZXggKz0gNztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5MSU5FX1NUWUxFOlxyXG4gICAgICAgICAgICAgICAgbGluZVdpZHRoID0gY29tbWFuZEJ1ZmZlcltpbmRleCArIDFdO1xyXG4gICAgICAgICAgICAgICAgbGluZUNvbG9yID0gY29tbWFuZEJ1ZmZlcltpbmRleCArIDJdO1xyXG4gICAgICAgICAgICAgICAgbGluZUFscGhhID0gY29tbWFuZEJ1ZmZlcltpbmRleCArIDNdO1xyXG4gICAgICAgICAgICAgICAgcmVkID0gKChsaW5lQ29sb3IgJiAweEZGMDAwMCkgPj4+IDE2KTtcclxuICAgICAgICAgICAgICAgIGdyZWVuID0gKChsaW5lQ29sb3IgJiAweEZGMDApID4+PiA4KTtcclxuICAgICAgICAgICAgICAgIGJsdWUgPSAobGluZUNvbG9yICYgMHhGRik7XHJcbiAgICAgICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiYSgnICsgcmVkICsgJywnICsgZ3JlZW4gKyAnLCcgKyBibHVlICsgJywnICsgbGluZUFscGhhICsgJyknO1xyXG4gICAgICAgICAgICAgICAgY3R4LmxpbmVXaWR0aCA9IGxpbmVXaWR0aDtcclxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDM7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuRklMTF9TVFlMRTpcclxuICAgICAgICAgICAgICAgIGZpbGxDb2xvciA9IGNvbW1hbmRCdWZmZXJbaW5kZXggKyAxXTtcclxuICAgICAgICAgICAgICAgIGZpbGxBbHBoYSA9IGNvbW1hbmRCdWZmZXJbaW5kZXggKyAyXTtcclxuICAgICAgICAgICAgICAgIHJlZCA9ICgoZmlsbENvbG9yICYgMHhGRjAwMDApID4+PiAxNik7XHJcbiAgICAgICAgICAgICAgICBncmVlbiA9ICgoZmlsbENvbG9yICYgMHhGRjAwKSA+Pj4gOCk7XHJcbiAgICAgICAgICAgICAgICBibHVlID0gKGZpbGxDb2xvciAmIDB4RkYpO1xyXG4gICAgICAgICAgICAgICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKCcgKyByZWQgKyAnLCcgKyBncmVlbiArICcsJyArIGJsdWUgKyAnLCcgKyBmaWxsQWxwaGEgKyAnKSc7XHJcbiAgICAgICAgICAgICAgICBpbmRleCArPSAyO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIENvbW1hbmRzLkJFR0lOX1BBVEg6XHJcbiAgICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuQ0xPU0VfUEFUSDpcclxuICAgICAgICAgICAgICAgIGN0eC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5GSUxMX1BBVEg6XHJcbiAgICAgICAgICAgICAgICBpZiAoIWFsbG93Q2xpcClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBjdHguZmlsbCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIENvbW1hbmRzLlNUUk9LRV9QQVRIOlxyXG4gICAgICAgICAgICAgICAgaWYgKCFhbGxvd0NsaXApXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY3R4LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIENvbW1hbmRzLkZJTExfUkVDVDpcclxuICAgICAgICAgICAgICAgIGlmICghYWxsb3dDbGlwKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGN0eC5maWxsUmVjdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcltpbmRleCArIDFdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kQnVmZmVyW2luZGV4ICsgMl0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRCdWZmZXJbaW5kZXggKyAzXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcltpbmRleCArIDRdXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBjdHgucmVjdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcltpbmRleCArIDFdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kQnVmZmVyW2luZGV4ICsgMl0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRCdWZmZXJbaW5kZXggKyAzXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcltpbmRleCArIDRdXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuRklMTF9UUklBTkdMRTpcclxuICAgICAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgICAgIGN0eC5tb3ZlVG8oY29tbWFuZEJ1ZmZlcltpbmRleCArIDFdLCBjb21tYW5kQnVmZmVyW2luZGV4ICsgMl0pO1xyXG4gICAgICAgICAgICAgICAgY3R4LmxpbmVUbyhjb21tYW5kQnVmZmVyW2luZGV4ICsgM10sIGNvbW1hbmRCdWZmZXJbaW5kZXggKyA0XSk7XHJcbiAgICAgICAgICAgICAgICBjdHgubGluZVRvKGNvbW1hbmRCdWZmZXJbaW5kZXggKyA1XSwgY29tbWFuZEJ1ZmZlcltpbmRleCArIDZdKTtcclxuICAgICAgICAgICAgICAgIGN0eC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgICAgIGlmICghYWxsb3dDbGlwKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGN0eC5maWxsKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpbmRleCArPSA2O1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIENvbW1hbmRzLlNUUk9LRV9UUklBTkdMRTpcclxuICAgICAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTtcclxuICAgICAgICAgICAgICAgIGN0eC5tb3ZlVG8oY29tbWFuZEJ1ZmZlcltpbmRleCArIDFdLCBjb21tYW5kQnVmZmVyW2luZGV4ICsgMl0pO1xyXG4gICAgICAgICAgICAgICAgY3R4LmxpbmVUbyhjb21tYW5kQnVmZmVyW2luZGV4ICsgM10sIGNvbW1hbmRCdWZmZXJbaW5kZXggKyA0XSk7XHJcbiAgICAgICAgICAgICAgICBjdHgubGluZVRvKGNvbW1hbmRCdWZmZXJbaW5kZXggKyA1XSwgY29tbWFuZEJ1ZmZlcltpbmRleCArIDZdKTtcclxuICAgICAgICAgICAgICAgIGN0eC5jbG9zZVBhdGgoKTtcclxuICAgICAgICAgICAgICAgIGlmICghYWxsb3dDbGlwKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGN0eC5zdHJva2UoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDY7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuTElORV9UTzpcclxuICAgICAgICAgICAgICAgIGN0eC5saW5lVG8oXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcltpbmRleCArIDFdLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRCdWZmZXJbaW5kZXggKyAyXVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuTU9WRV9UTzpcclxuICAgICAgICAgICAgICAgIGN0eC5tb3ZlVG8oXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcltpbmRleCArIDFdLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRCdWZmZXJbaW5kZXggKyAyXVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDI7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuTElORV9GWF9UTzpcclxuICAgICAgICAgICAgICAgIGN0eC5saW5lVG8oXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcltpbmRleCArIDFdLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRCdWZmZXJbaW5kZXggKyAyXVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuTU9WRV9GWF9UTzpcclxuICAgICAgICAgICAgICAgIGN0eC5tb3ZlVG8oXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcltpbmRleCArIDFdLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRCdWZmZXJbaW5kZXggKyAyXVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuU0FWRTpcclxuICAgICAgICAgICAgICAgIGN0eC5zYXZlKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuUkVTVE9SRTpcclxuICAgICAgICAgICAgICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuVFJBTlNMQVRFOlxyXG4gICAgICAgICAgICAgICAgY3R4LnRyYW5zbGF0ZShcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kQnVmZmVyW2luZGV4ICsgMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcltpbmRleCArIDJdXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgaW5kZXggKz0gMjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5TQ0FMRTpcclxuICAgICAgICAgICAgICAgIGN0eC5zY2FsZShcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kQnVmZmVyW2luZGV4ICsgMV0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZEJ1ZmZlcltpbmRleCArIDJdXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgaW5kZXggKz0gMjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5ST1RBVEU6XHJcbiAgICAgICAgICAgICAgICBjdHgucm90YXRlKFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRCdWZmZXJbaW5kZXggKyAxXVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDE7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuR1JBRElFTlRfRklMTF9TVFlMRTpcclxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuR1JBRElFTlRfTElORV9TVFlMRTpcclxuICAgICAgICAgICAgICAgIGluZGV4ICs9IDY7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuU0VUX1RFWFRVUkU6XHJcbiAgICAgICAgICAgICAgICBpbmRleCArPSAyO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICBSZXN0b3JlIHRoZSBjb250ZXh0IHNhdmVkIGluIFNldFRyYW5zZm9ybVxyXG4gICAgY3R4LnJlc3RvcmUoKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gR3JhcGhpY3NDYW52YXNSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2FtZU9iamVjdENyZWF0b3IgPSByZXF1aXJlKCcuLi9HYW1lT2JqZWN0Q3JlYXRvcicpO1xyXG52YXIgR3JhcGhpY3MgPSByZXF1aXJlKCcuL0dyYXBoaWNzJyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBHcmFwaGljcyBHYW1lIE9iamVjdCBhbmQgcmV0dXJucyBpdC5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgR3JhcGhpY3MgR2FtZSBPYmplY3QgaGFzIGJlZW4gYnVpbHQgaW50byBQaGFzZXIuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RDcmVhdG9yI2dyYXBoaWNzXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge29iamVjdH0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRoaXMgR2FtZSBPYmplY3Qgd2lsbCB1c2UgdG8gY3JlYXRlIGl0c2VsZi5cclxuICogQHBhcmFtIHtib29sZWFufSBbYWRkVG9TY2VuZV0gLSBBZGQgdGhpcyBHYW1lIE9iamVjdCB0byB0aGUgU2NlbmUgYWZ0ZXIgY3JlYXRpbmcgaXQ/IElmIHNldCB0aGlzIGFyZ3VtZW50IG92ZXJyaWRlcyB0aGUgYGFkZGAgcHJvcGVydHkgaW4gdGhlIGNvbmZpZyBvYmplY3QuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljc30gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0Q3JlYXRvci5yZWdpc3RlcignZ3JhcGhpY3MnLCBmdW5jdGlvbiAoY29uZmlnLCBhZGRUb1NjZW5lKVxyXG57XHJcbiAgICBpZiAoY29uZmlnID09PSB1bmRlZmluZWQpIHsgY29uZmlnID0ge307IH1cclxuXHJcbiAgICBpZiAoYWRkVG9TY2VuZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAge1xyXG4gICAgICAgIGNvbmZpZy5hZGQgPSBhZGRUb1NjZW5lO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBncmFwaGljcyA9IG5ldyBHcmFwaGljcyh0aGlzLnNjZW5lLCBjb25maWcpO1xyXG5cclxuICAgIGlmIChjb25maWcuYWRkKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuc2NlbmUuc3lzLmRpc3BsYXlMaXN0LmFkZChncmFwaGljcyk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHJldHVybiBncmFwaGljcztcclxufSk7XHJcblxyXG4vLyAgV2hlbiByZWdpc3RlcmluZyBhIGZhY3RvcnkgZnVuY3Rpb24gJ3RoaXMnIHJlZmVycyB0byB0aGUgR2FtZU9iamVjdENyZWF0b3IgY29udGV4dC5cclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR3JhcGhpY3MgPSByZXF1aXJlKCcuL0dyYXBoaWNzJyk7XHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBHcmFwaGljcyBHYW1lIE9iamVjdCBhbmQgYWRkcyBpdCB0byB0aGUgU2NlbmUuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIEdyYXBoaWNzIEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0RmFjdG9yeSNncmFwaGljc1xyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuR3JhcGhpY3MuT3B0aW9uc30gW2NvbmZpZ10gLSBUaGUgR3JhcGhpY3MgY29uZmlndXJhdGlvbi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RGYWN0b3J5LnJlZ2lzdGVyKCdncmFwaGljcycsIGZ1bmN0aW9uIChjb25maWcpXHJcbntcclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXlMaXN0LmFkZChuZXcgR3JhcGhpY3ModGhpcy5zY2VuZSwgY29uZmlnKSk7XHJcbn0pO1xyXG5cclxuLy8gIFdoZW4gcmVnaXN0ZXJpbmcgYSBmYWN0b3J5IGZ1bmN0aW9uICd0aGlzJyByZWZlcnMgdG8gdGhlIEdhbWVPYmplY3RGYWN0b3J5IGNvbnRleHQuXHJcbi8vXHJcbi8vICBUaGVyZSBhcmUgc2V2ZXJhbCBwcm9wZXJ0aWVzIGF2YWlsYWJsZSB0byB1c2U6XHJcbi8vXHJcbi8vICB0aGlzLnNjZW5lIC0gYSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lIHRoYXQgb3ducyB0aGUgR2FtZU9iamVjdEZhY3RvcnlcclxuLy8gIHRoaXMuZGlzcGxheUxpc3QgLSBhIHJlZmVyZW5jZSB0byB0aGUgRGlzcGxheSBMaXN0IHRoZSBTY2VuZSBvd25zXHJcbi8vICB0aGlzLnVwZGF0ZUxpc3QgLSBhIHJlZmVyZW5jZSB0byB0aGUgVXBkYXRlIExpc3QgdGhlIFNjZW5lIG93bnNcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuLi8uLi91dGlscy9OT09QJyk7XHJcbnZhciByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuLi8uLi91dGlscy9OT09QJyk7XHJcblxyXG5pZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4vR3JhcGhpY3NXZWJHTFJlbmRlcmVyJyk7XHJcblxyXG4gICAgLy8gIE5lZWRlZCBmb3IgR3JhcGhpY3MuZ2VuZXJhdGVUZXh0dXJlXHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL0dyYXBoaWNzQ2FudmFzUmVuZGVyZXInKTtcclxufVxyXG5cclxuaWYgKHR5cGVvZiBDQU5WQVNfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4vR3JhcGhpY3NDYW52YXNSZW5kZXJlcicpO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICByZW5kZXJXZWJHTDogcmVuZGVyV2ViR0wsXHJcbiAgICByZW5kZXJDYW52YXM6IHJlbmRlckNhbnZhc1xyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ29tbWFuZHMgPSByZXF1aXJlKCcuL0NvbW1hbmRzJyk7XHJcbnZhciBVdGlscyA9IHJlcXVpcmUoJy4uLy4uL3JlbmRlcmVyL3dlYmdsL1V0aWxzJyk7XHJcblxyXG4vLyAgVE9ETzogUmVtb3ZlIHRoZSB1c2Ugb2YgdGhpc1xyXG52YXIgUG9pbnQgPSBmdW5jdGlvbiAoeCwgeSwgd2lkdGgpXHJcbntcclxuICAgIHRoaXMueCA9IHg7XHJcbiAgICB0aGlzLnkgPSB5O1xyXG4gICAgdGhpcy53aWR0aCA9IHdpZHRoO1xyXG59O1xyXG5cclxuLy8gIFRPRE86IFJlbW92ZSB0aGUgdXNlIG9mIHRoaXNcclxudmFyIFBhdGggPSBmdW5jdGlvbiAoeCwgeSwgd2lkdGgpXHJcbntcclxuICAgIHRoaXMucG9pbnRzID0gW107XHJcbiAgICB0aGlzLnBvaW50c0xlbmd0aCA9IDE7XHJcbiAgICB0aGlzLnBvaW50c1swXSA9IG5ldyBQb2ludCh4LCB5LCB3aWR0aCk7XHJcbn07XHJcblxyXG52YXIgbWF0cml4U3RhY2sgPSBbXTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljcyNyZW5kZXJXZWJHTFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xSZW5kZXJlcn0gcmVuZGVyZXIgLSBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBhY3RpdmUgV2ViR0wgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdyYXBoaWNzfSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgR3JhcGhpY3NXZWJHTFJlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgaWYgKHNyYy5jb21tYW5kQnVmZmVyLmxlbmd0aCA9PT0gMClcclxuICAgIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHBpcGVsaW5lID0gdGhpcy5waXBlbGluZTtcclxuXHJcbiAgICByZW5kZXJlci5zZXRQaXBlbGluZShwaXBlbGluZSwgc3JjKTtcclxuXHJcbiAgICB2YXIgY2FtTWF0cml4ID0gc3JjLl90ZW1wTWF0cml4MTtcclxuICAgIHZhciBncmFwaGljc01hdHJpeCA9IHNyYy5fdGVtcE1hdHJpeDI7XHJcbiAgICB2YXIgY3VycmVudE1hdHJpeCA9IHNyYy5fdGVtcE1hdHJpeDM7XHJcblxyXG4gICAgY3VycmVudE1hdHJpeC5sb2FkSWRlbnRpdHkoKTtcclxuXHJcbiAgICBncmFwaGljc01hdHJpeC5hcHBseUlUUlMoc3JjLngsIHNyYy55LCBzcmMucm90YXRpb24sIHNyYy5zY2FsZVgsIHNyYy5zY2FsZVkpO1xyXG5cclxuICAgIGNhbU1hdHJpeC5jb3B5RnJvbShjYW1lcmEubWF0cml4KTtcclxuXHJcbiAgICBpZiAocGFyZW50TWF0cml4KVxyXG4gICAge1xyXG4gICAgICAgIC8vICBNdWx0aXBseSB0aGUgY2FtZXJhIGJ5IHRoZSBwYXJlbnQgbWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5V2l0aE9mZnNldChwYXJlbnRNYXRyaXgsIC1jYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYLCAtY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWSk7XHJcblxyXG4gICAgICAgIC8vICBVbmRvIHRoZSBjYW1lcmEgc2Nyb2xsXHJcbiAgICAgICAgZ3JhcGhpY3NNYXRyaXguZSA9IHNyYy54O1xyXG4gICAgICAgIGdyYXBoaWNzTWF0cml4LmYgPSBzcmMueTtcclxuXHJcbiAgICAgICAgLy8gIE11bHRpcGx5IGJ5IHRoZSBTcHJpdGUgbWF0cml4LCBzdG9yZSByZXN1bHQgaW4gY2FsY01hdHJpeFxyXG4gICAgICAgIGNhbU1hdHJpeC5tdWx0aXBseShncmFwaGljc01hdHJpeCk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgZ3JhcGhpY3NNYXRyaXguZSAtPSBjYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYO1xyXG4gICAgICAgIGdyYXBoaWNzTWF0cml4LmYgLT0gY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWTtcclxuXHJcbiAgICAgICAgLy8gIE11bHRpcGx5IGJ5IHRoZSBTcHJpdGUgbWF0cml4LCBzdG9yZSByZXN1bHQgaW4gY2FsY01hdHJpeFxyXG4gICAgICAgIGNhbU1hdHJpeC5tdWx0aXBseShncmFwaGljc01hdHJpeCk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGNvbW1hbmRzID0gc3JjLmNvbW1hbmRCdWZmZXI7XHJcbiAgICB2YXIgYWxwaGEgPSBjYW1lcmEuYWxwaGEgKiBzcmMuYWxwaGE7XHJcblxyXG4gICAgdmFyIGxpbmVXaWR0aCA9IDE7XHJcbiAgICB2YXIgZmlsbFRpbnQgPSBwaXBlbGluZS5maWxsVGludDtcclxuICAgIHZhciBzdHJva2VUaW50ID0gcGlwZWxpbmUuc3Ryb2tlVGludDtcclxuXHJcbiAgICB2YXIgdHggPSAwO1xyXG4gICAgdmFyIHR5ID0gMDtcclxuICAgIHZhciB0YSA9IDA7XHJcbiAgICB2YXIgaXRlclN0ZXAgPSAwLjAxO1xyXG4gICAgdmFyIFBJMiA9IE1hdGguUEkgKiAyO1xyXG5cclxuICAgIHZhciBjbWQ7XHJcblxyXG4gICAgdmFyIHBhdGggPSBbXTtcclxuICAgIHZhciBwYXRoSW5kZXggPSAwO1xyXG4gICAgdmFyIHBhdGhPcGVuID0gZmFsc2U7XHJcbiAgICB2YXIgbGFzdFBhdGggPSBudWxsO1xyXG5cclxuICAgIHZhciBnZXRUaW50ID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGFBbmRTd2FwO1xyXG5cclxuICAgIHZhciBjdXJyZW50VGV4dHVyZSA9IHJlbmRlcmVyLmJsYW5rVGV4dHVyZS5nbFRleHR1cmU7XHJcblxyXG4gICAgZm9yICh2YXIgY21kSW5kZXggPSAwOyBjbWRJbmRleCA8IGNvbW1hbmRzLmxlbmd0aDsgY21kSW5kZXgrKylcclxuICAgIHtcclxuICAgICAgICBjbWQgPSBjb21tYW5kc1tjbWRJbmRleF07XHJcblxyXG4gICAgICAgIHN3aXRjaCAoY21kKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5CRUdJTl9QQVRIOlxyXG5cclxuICAgICAgICAgICAgICAgIHBhdGgubGVuZ3RoID0gMDtcclxuICAgICAgICAgICAgICAgIGxhc3RQYXRoID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHBhdGhPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5DTE9TRV9QQVRIOlxyXG5cclxuICAgICAgICAgICAgICAgIHBhdGhPcGVuID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGxhc3RQYXRoICYmIGxhc3RQYXRoLnBvaW50cy5sZW5ndGgpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGFzdFBhdGgucG9pbnRzLnB1c2gobGFzdFBhdGgucG9pbnRzWzBdKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5GSUxMX1BBVEg6XHJcbiAgICAgICAgICAgICAgICBmb3IgKHBhdGhJbmRleCA9IDA7IHBhdGhJbmRleCA8IHBhdGgubGVuZ3RoOyBwYXRoSW5kZXgrKylcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwaXBlbGluZS5zZXRUZXh0dXJlMkQoY3VycmVudFRleHR1cmUpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBwaXBlbGluZS5iYXRjaEZpbGxQYXRoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoW3BhdGhJbmRleF0ucG9pbnRzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TWF0cml4LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW1NYXRyaXhcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIENvbW1hbmRzLlNUUk9LRV9QQVRIOlxyXG4gICAgICAgICAgICAgICAgZm9yIChwYXRoSW5kZXggPSAwOyBwYXRoSW5kZXggPCBwYXRoLmxlbmd0aDsgcGF0aEluZGV4KyspXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGlwZWxpbmUuc2V0VGV4dHVyZTJEKGN1cnJlbnRUZXh0dXJlKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcGlwZWxpbmUuYmF0Y2hTdHJva2VQYXRoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoW3BhdGhJbmRleF0ucG9pbnRzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lV2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhPcGVuLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50TWF0cml4LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW1NYXRyaXhcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIENvbW1hbmRzLkxJTkVfU1RZTEU6XHJcbiAgICAgICAgICAgICAgICBsaW5lV2lkdGggPSBjb21tYW5kc1srK2NtZEluZGV4XTtcclxuICAgICAgICAgICAgICAgIHZhciBzdHJva2VDb2xvciA9IGNvbW1hbmRzWysrY21kSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgdmFyIHN0cm9rZUFscGhhID0gY29tbWFuZHNbKytjbWRJbmRleF0gKiBhbHBoYTtcclxuICAgICAgICAgICAgICAgIHZhciBzdHJva2VUaW50Q29sb3IgPSBnZXRUaW50KHN0cm9rZUNvbG9yLCBzdHJva2VBbHBoYSk7XHJcbiAgICAgICAgICAgICAgICBzdHJva2VUaW50LlRMID0gc3Ryb2tlVGludENvbG9yO1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlVGludC5UUiA9IHN0cm9rZVRpbnRDb2xvcjtcclxuICAgICAgICAgICAgICAgIHN0cm9rZVRpbnQuQkwgPSBzdHJva2VUaW50Q29sb3I7XHJcbiAgICAgICAgICAgICAgICBzdHJva2VUaW50LkJSID0gc3Ryb2tlVGludENvbG9yO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIENvbW1hbmRzLkZJTExfU1RZTEU6XHJcbiAgICAgICAgICAgICAgICB2YXIgZmlsbENvbG9yID0gY29tbWFuZHNbKytjbWRJbmRleF07XHJcbiAgICAgICAgICAgICAgICB2YXIgZmlsbEFscGhhID0gY29tbWFuZHNbKytjbWRJbmRleF0gKiBhbHBoYTtcclxuICAgICAgICAgICAgICAgIHZhciBmaWxsVGludENvbG9yID0gZ2V0VGludChmaWxsQ29sb3IsIGZpbGxBbHBoYSk7XHJcbiAgICAgICAgICAgICAgICBmaWxsVGludC5UTCA9IGZpbGxUaW50Q29sb3I7XHJcbiAgICAgICAgICAgICAgICBmaWxsVGludC5UUiA9IGZpbGxUaW50Q29sb3I7XHJcbiAgICAgICAgICAgICAgICBmaWxsVGludC5CTCA9IGZpbGxUaW50Q29sb3I7XHJcbiAgICAgICAgICAgICAgICBmaWxsVGludC5CUiA9IGZpbGxUaW50Q29sb3I7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuR1JBRElFTlRfRklMTF9TVFlMRTpcclxuICAgICAgICAgICAgICAgIHZhciBncmFkaWVudEZpbGxBbHBoYSA9IGNvbW1hbmRzWysrY21kSW5kZXhdICogYWxwaGE7XHJcbiAgICAgICAgICAgICAgICBmaWxsVGludC5UTCA9IGdldFRpbnQoY29tbWFuZHNbKytjbWRJbmRleF0sIGdyYWRpZW50RmlsbEFscGhhKTtcclxuICAgICAgICAgICAgICAgIGZpbGxUaW50LlRSID0gZ2V0VGludChjb21tYW5kc1srK2NtZEluZGV4XSwgZ3JhZGllbnRGaWxsQWxwaGEpO1xyXG4gICAgICAgICAgICAgICAgZmlsbFRpbnQuQkwgPSBnZXRUaW50KGNvbW1hbmRzWysrY21kSW5kZXhdLCBncmFkaWVudEZpbGxBbHBoYSk7XHJcbiAgICAgICAgICAgICAgICBmaWxsVGludC5CUiA9IGdldFRpbnQoY29tbWFuZHNbKytjbWRJbmRleF0sIGdyYWRpZW50RmlsbEFscGhhKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5HUkFESUVOVF9MSU5FX1NUWUxFOlxyXG4gICAgICAgICAgICAgICAgbGluZVdpZHRoID0gY29tbWFuZHNbKytjbWRJbmRleF07XHJcbiAgICAgICAgICAgICAgICB2YXIgZ3JhZGllbnRMaW5lQWxwaGEgPSBjb21tYW5kc1srK2NtZEluZGV4XSAqIGFscGhhO1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlVGludC5UTCA9IGdldFRpbnQoY29tbWFuZHNbKytjbWRJbmRleF0sIGdyYWRpZW50TGluZUFscGhhKTtcclxuICAgICAgICAgICAgICAgIHN0cm9rZVRpbnQuVFIgPSBnZXRUaW50KGNvbW1hbmRzWysrY21kSW5kZXhdLCBncmFkaWVudExpbmVBbHBoYSk7XHJcbiAgICAgICAgICAgICAgICBzdHJva2VUaW50LkJMID0gZ2V0VGludChjb21tYW5kc1srK2NtZEluZGV4XSwgZ3JhZGllbnRMaW5lQWxwaGEpO1xyXG4gICAgICAgICAgICAgICAgc3Ryb2tlVGludC5CUiA9IGdldFRpbnQoY29tbWFuZHNbKytjbWRJbmRleF0sIGdyYWRpZW50TGluZUFscGhhKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5BUkM6XHJcbiAgICAgICAgICAgICAgICB2YXIgaXRlcmF0aW9uID0gMDtcclxuICAgICAgICAgICAgICAgIHZhciB4ID0gY29tbWFuZHNbKytjbWRJbmRleF07XHJcbiAgICAgICAgICAgICAgICB2YXIgeSA9IGNvbW1hbmRzWysrY21kSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgdmFyIHJhZGl1cyA9IGNvbW1hbmRzWysrY21kSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgdmFyIHN0YXJ0QW5nbGUgPSBjb21tYW5kc1srK2NtZEluZGV4XTtcclxuICAgICAgICAgICAgICAgIHZhciBlbmRBbmdsZSA9IGNvbW1hbmRzWysrY21kSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgdmFyIGFudGljbG9ja3dpc2UgPSBjb21tYW5kc1srK2NtZEluZGV4XTtcclxuICAgICAgICAgICAgICAgIHZhciBvdmVyc2hvb3QgPSBjb21tYW5kc1srK2NtZEluZGV4XTtcclxuXHJcbiAgICAgICAgICAgICAgICBlbmRBbmdsZSAtPSBzdGFydEFuZ2xlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChhbnRpY2xvY2t3aXNlKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbmRBbmdsZSA8IC1QSTIpXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRBbmdsZSA9IC1QSTI7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGVuZEFuZ2xlID4gMClcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZEFuZ2xlID0gLVBJMiArIGVuZEFuZ2xlICUgUEkyO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGVuZEFuZ2xlID4gUEkyKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGVuZEFuZ2xlID0gUEkyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoZW5kQW5nbGUgPCAwKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGVuZEFuZ2xlID0gUEkyICsgZW5kQW5nbGUgJSBQSTI7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGxhc3RQYXRoID09PSBudWxsKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhc3RQYXRoID0gbmV3IFBhdGgoeCArIE1hdGguY29zKHN0YXJ0QW5nbGUpICogcmFkaXVzLCB5ICsgTWF0aC5zaW4oc3RhcnRBbmdsZSkgKiByYWRpdXMsIGxpbmVXaWR0aCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcGF0aC5wdXNoKGxhc3RQYXRoKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVyYXRpb24gKz0gaXRlclN0ZXA7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgd2hpbGUgKGl0ZXJhdGlvbiA8IDEgKyBvdmVyc2hvb3QpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGEgPSBlbmRBbmdsZSAqIGl0ZXJhdGlvbiArIHN0YXJ0QW5nbGU7XHJcbiAgICAgICAgICAgICAgICAgICAgdHggPSB4ICsgTWF0aC5jb3ModGEpICogcmFkaXVzO1xyXG4gICAgICAgICAgICAgICAgICAgIHR5ID0geSArIE1hdGguc2luKHRhKSAqIHJhZGl1cztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgbGFzdFBhdGgucG9pbnRzLnB1c2gobmV3IFBvaW50KHR4LCB0eSwgbGluZVdpZHRoKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbiArPSBpdGVyU3RlcDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0YSA9IGVuZEFuZ2xlICsgc3RhcnRBbmdsZTtcclxuICAgICAgICAgICAgICAgIHR4ID0geCArIE1hdGguY29zKHRhKSAqIHJhZGl1cztcclxuICAgICAgICAgICAgICAgIHR5ID0geSArIE1hdGguc2luKHRhKSAqIHJhZGl1cztcclxuXHJcbiAgICAgICAgICAgICAgICBsYXN0UGF0aC5wb2ludHMucHVzaChuZXcgUG9pbnQodHgsIHR5LCBsaW5lV2lkdGgpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuRklMTF9SRUNUOlxyXG4gICAgICAgICAgICAgICAgcGlwZWxpbmUuc2V0VGV4dHVyZTJEKGN1cnJlbnRUZXh0dXJlKTtcclxuICAgICAgICAgICAgICAgIHBpcGVsaW5lLmJhdGNoRmlsbFJlY3QoXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZHNbKytjbWRJbmRleF0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZHNbKytjbWRJbmRleF0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZHNbKytjbWRJbmRleF0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZHNbKytjbWRJbmRleF0sXHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudE1hdHJpeCxcclxuICAgICAgICAgICAgICAgICAgICBjYW1NYXRyaXhcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuRklMTF9UUklBTkdMRTpcclxuICAgICAgICAgICAgICAgIHBpcGVsaW5lLnNldFRleHR1cmUyRChjdXJyZW50VGV4dHVyZSk7XHJcbiAgICAgICAgICAgICAgICBwaXBlbGluZS5iYXRjaEZpbGxUcmlhbmdsZShcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kc1srK2NtZEluZGV4XSxcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kc1srK2NtZEluZGV4XSxcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kc1srK2NtZEluZGV4XSxcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kc1srK2NtZEluZGV4XSxcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kc1srK2NtZEluZGV4XSxcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kc1srK2NtZEluZGV4XSxcclxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50TWF0cml4LFxyXG4gICAgICAgICAgICAgICAgICAgIGNhbU1hdHJpeFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5TVFJPS0VfVFJJQU5HTEU6XHJcbiAgICAgICAgICAgICAgICBwaXBlbGluZS5zZXRUZXh0dXJlMkQoY3VycmVudFRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgcGlwZWxpbmUuYmF0Y2hTdHJva2VUcmlhbmdsZShcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kc1srK2NtZEluZGV4XSxcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kc1srK2NtZEluZGV4XSxcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kc1srK2NtZEluZGV4XSxcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kc1srK2NtZEluZGV4XSxcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kc1srK2NtZEluZGV4XSxcclxuICAgICAgICAgICAgICAgICAgICBjb21tYW5kc1srK2NtZEluZGV4XSxcclxuICAgICAgICAgICAgICAgICAgICBsaW5lV2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudE1hdHJpeCxcclxuICAgICAgICAgICAgICAgICAgICBjYW1NYXRyaXhcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuTElORV9UTzpcclxuICAgICAgICAgICAgICAgIGlmIChsYXN0UGF0aCAhPT0gbnVsbClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBsYXN0UGF0aC5wb2ludHMucHVzaChuZXcgUG9pbnQoY29tbWFuZHNbKytjbWRJbmRleF0sIGNvbW1hbmRzWysrY21kSW5kZXhdLCBsaW5lV2lkdGgpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBsYXN0UGF0aCA9IG5ldyBQYXRoKGNvbW1hbmRzWysrY21kSW5kZXhdLCBjb21tYW5kc1srK2NtZEluZGV4XSwgbGluZVdpZHRoKTtcclxuICAgICAgICAgICAgICAgICAgICBwYXRoLnB1c2gobGFzdFBhdGgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIENvbW1hbmRzLk1PVkVfVE86XHJcbiAgICAgICAgICAgICAgICBsYXN0UGF0aCA9IG5ldyBQYXRoKGNvbW1hbmRzWysrY21kSW5kZXhdLCBjb21tYW5kc1srK2NtZEluZGV4XSwgbGluZVdpZHRoKTtcclxuICAgICAgICAgICAgICAgIHBhdGgucHVzaChsYXN0UGF0aCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuU0FWRTpcclxuICAgICAgICAgICAgICAgIG1hdHJpeFN0YWNrLnB1c2goY3VycmVudE1hdHJpeC5jb3B5VG9BcnJheSgpKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5SRVNUT1JFOlxyXG4gICAgICAgICAgICAgICAgY3VycmVudE1hdHJpeC5jb3B5RnJvbUFycmF5KG1hdHJpeFN0YWNrLnBvcCgpKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5UUkFOU0xBVEU6XHJcbiAgICAgICAgICAgICAgICB4ID0gY29tbWFuZHNbKytjbWRJbmRleF07XHJcbiAgICAgICAgICAgICAgICB5ID0gY29tbWFuZHNbKytjbWRJbmRleF07XHJcbiAgICAgICAgICAgICAgICBjdXJyZW50TWF0cml4LnRyYW5zbGF0ZSh4LCB5KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBDb21tYW5kcy5TQ0FMRTpcclxuICAgICAgICAgICAgICAgIHggPSBjb21tYW5kc1srK2NtZEluZGV4XTtcclxuICAgICAgICAgICAgICAgIHkgPSBjb21tYW5kc1srK2NtZEluZGV4XTtcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRNYXRyaXguc2NhbGUoeCwgeSk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuUk9UQVRFOlxyXG4gICAgICAgICAgICAgICAgY3VycmVudE1hdHJpeC5yb3RhdGUoY29tbWFuZHNbKytjbWRJbmRleF0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIENvbW1hbmRzLlNFVF9URVhUVVJFOlxyXG4gICAgICAgICAgICAgICAgdmFyIGZyYW1lID0gY29tbWFuZHNbKytjbWRJbmRleF07XHJcbiAgICAgICAgICAgICAgICB2YXIgbW9kZSA9IGNvbW1hbmRzWysrY21kSW5kZXhdO1xyXG5cclxuICAgICAgICAgICAgICAgIHBpcGVsaW5lLmN1cnJlbnRGcmFtZSA9IGZyYW1lO1xyXG4gICAgICAgICAgICAgICAgcGlwZWxpbmUuc2V0VGV4dHVyZTJEKGZyYW1lLmdsVGV4dHVyZSwgMCk7XHJcbiAgICAgICAgICAgICAgICBwaXBlbGluZS50aW50RWZmZWN0ID0gbW9kZTtcclxuXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50VGV4dHVyZSA9IGZyYW1lLmdsVGV4dHVyZTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgQ29tbWFuZHMuQ0xFQVJfVEVYVFVSRTpcclxuICAgICAgICAgICAgICAgIHBpcGVsaW5lLmN1cnJlbnRGcmFtZSA9IHJlbmRlcmVyLmJsYW5rVGV4dHVyZTtcclxuICAgICAgICAgICAgICAgIHBpcGVsaW5lLnRpbnRFZmZlY3QgPSAyO1xyXG4gICAgICAgICAgICAgICAgY3VycmVudFRleHR1cmUgPSByZW5kZXJlci5ibGFua1RleHR1cmUuZ2xUZXh0dXJlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHcmFwaGljc1dlYkdMUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEFjdGlvbnMgPSByZXF1aXJlKCcuLi8uLi9hY3Rpb25zLycpO1xyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgRXZlbnRzID0gcmVxdWlyZSgnLi4vZXZlbnRzJyk7XHJcbnZhciBHZXRGYXN0VmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0RmFzdFZhbHVlJyk7XHJcbnZhciBHZXRWYWx1ZSA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9HZXRWYWx1ZScpO1xyXG52YXIgSXNQbGFpbk9iamVjdCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9Jc1BsYWluT2JqZWN0Jyk7XHJcbnZhciBSYW5nZSA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL2FycmF5L1JhbmdlJyk7XHJcbnZhciBTZXQgPSByZXF1aXJlKCcuLi8uLi9zdHJ1Y3RzL1NldCcpO1xyXG52YXIgU3ByaXRlID0gcmVxdWlyZSgnLi4vc3ByaXRlL1Nwcml0ZScpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBHcm91cCBpcyBhIHdheSBmb3IgeW91IHRvIGNyZWF0ZSwgbWFuaXB1bGF0ZSwgb3IgcmVjeWNsZSBzaW1pbGFyIEdhbWUgT2JqZWN0cy5cclxuICpcclxuICogR3JvdXAgbWVtYmVyc2hpcCBpcyBub24tZXhjbHVzaXZlLiBBIEdhbWUgT2JqZWN0IGNhbiBiZWxvbmcgdG8gc2V2ZXJhbCBncm91cHMsIG9uZSBncm91cCwgb3Igbm9uZS5cclxuICpcclxuICogR3JvdXBzIHRoZW1zZWx2ZXMgYXJlbid0IGRpc3BsYXlhYmxlLCBhbmQgY2FuJ3QgYmUgcG9zaXRpb25lZCwgcm90YXRlZCwgc2NhbGVkLCBvciBoaWRkZW4uXHJcbiAqXHJcbiAqIEBjbGFzcyBHcm91cFxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkdhbWVPYmplY3RzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIHNjZW5lIHRoaXMgZ3JvdXAgYmVsb25ncyB0by5cclxuICogQHBhcmFtIHsoUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXXxQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuR3JvdXAuR3JvdXBDb25maWd8UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLkdyb3VwLkdyb3VwQ3JlYXRlQ29uZmlnKX0gW2NoaWxkcmVuXSAtIEdhbWUgT2JqZWN0cyB0byBhZGQgdG8gdGhpcyBncm91cDsgb3IgdGhlIGBjb25maWdgIGFyZ3VtZW50LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5Hcm91cC5Hcm91cENvbmZpZ3xQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuR3JvdXAuR3JvdXBDcmVhdGVDb25maWd9IFtjb25maWddIC0gU2V0dGluZ3MgZm9yIHRoaXMgZ3JvdXAuIElmIGBrZXlgIGlzIHNldCwgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2NyZWF0ZU11bHRpcGxlIGlzIGFsc28gY2FsbGVkIHdpdGggdGhlc2Ugc2V0dGluZ3MuXHJcbiAqXHJcbiAqIEBzZWUgUGhhc2VyLlBoeXNpY3MuQXJjYWRlLkdyb3VwXHJcbiAqIEBzZWUgUGhhc2VyLlBoeXNpY3MuQXJjYWRlLlN0YXRpY0dyb3VwXHJcbiAqL1xyXG52YXIgR3JvdXAgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gR3JvdXAgKHNjZW5lLCBjaGlsZHJlbiwgY29uZmlnKVxyXG4gICAge1xyXG4gICAgICAgIC8vICBUaGV5IGNhbiBwYXNzIGluIGFueSBvZiB0aGUgZm9sbG93aW5nIGFzIHRoZSBmaXJzdCBhcmd1bWVudDpcclxuXHJcbiAgICAgICAgLy8gIDEpIEEgc2luZ2xlIGNoaWxkXHJcbiAgICAgICAgLy8gIDIpIEFuIGFycmF5IG9mIGNoaWxkcmVuXHJcbiAgICAgICAgLy8gIDMpIEEgY29uZmlnIG9iamVjdFxyXG4gICAgICAgIC8vICA0KSBBbiBhcnJheSBvZiBjb25maWcgb2JqZWN0c1xyXG5cclxuICAgICAgICAvLyAgT3IgdGhleSBjYW4gcGFzcyBpbiBhIGNoaWxkLCBvciBhcnJheSBvZiBjaGlsZHJlbiBBTkQgYSBjb25maWcgb2JqZWN0XHJcblxyXG4gICAgICAgIGlmIChjb25maWcpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgY29uZmlnIGhhcyBiZWVuIHNldCwgYXJlIHRoZSBjaGlsZHJlbiBhbiBhcnJheT9cclxuXHJcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbiAmJiAhQXJyYXkuaXNBcnJheShjaGlsZHJlbikpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gWyBjaGlsZHJlbiBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIE5vIGNvbmZpZywgc28gbGV0J3MgY2hlY2sgdGhlIGNoaWxkcmVuIGFyZ3VtZW50XHJcblxyXG4gICAgICAgICAgICBpZiAoSXNQbGFpbk9iamVjdChjaGlsZHJlblswXSkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIC8vICBJdCdzIGFuIGFycmF5IG9mIHBsYWluIGNvbmZpZyBvYmplY3RzXHJcbiAgICAgICAgICAgICAgICBjb25maWcgPSBjaGlsZHJlbjtcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChJc1BsYWluT2JqZWN0KGNoaWxkcmVuKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBDaGlsZHJlbiBpc24ndCBhbiBhcnJheS4gSXMgaXQgYSBjb25maWcgb2JqZWN0IHRob3VnaD9cclxuICAgICAgICAgICAgY29uZmlnID0gY2hpbGRyZW47XHJcbiAgICAgICAgICAgIGNoaWxkcmVuID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoaXMgc2NlbmUgdGhpcyBncm91cCBiZWxvbmdzIHRvLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI3NjZW5lXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5TY2VuZX1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjZW5lID0gc2NlbmU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIE1lbWJlcnMgb2YgdGhpcyBncm91cC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNjaGlsZHJlblxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU3RydWN0cy5TZXQuPFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Pn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNoaWxkcmVuID0gbmV3IFNldChjaGlsZHJlbik7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgZmxhZyBpZGVudGlmeWluZyB0aGlzIG9iamVjdCBhcyBhIGdyb3VwLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2lzUGFyZW50XHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaXNQYXJlbnQgPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAgICAgKiBVc2VkIGludGVybmFsbHkgYnkgUGhhc2VyIGJ1dCBpcyBhdmFpbGFibGUgZm9yIHlvdXIgb3duIGN1c3RvbSBjbGFzc2VzIHRvIHBvcHVsYXRlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI3R5cGVcclxuICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICAgICAqIEBkZWZhdWx0ICdHcm91cCdcclxuICAgICAgICAgKiBAc2luY2UgMy4yMS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy50eXBlID0gJ0dyb3VwJztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGNsYXNzIHRvIGNyZWF0ZSBuZXcgZ3JvdXAgbWVtYmVycyBmcm9tLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2NsYXNzVHlwZVxyXG4gICAgICAgICAqIEB0eXBlIHtGdW5jdGlvbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKiBAZGVmYXVsdCBQaGFzZXIuR2FtZU9iamVjdHMuU3ByaXRlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jbGFzc1R5cGUgPSBHZXRGYXN0VmFsdWUoY29uZmlnLCAnY2xhc3NUeXBlJywgU3ByaXRlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIG5hbWUgb2YgdGhpcyBncm91cC5cclxuICAgICAgICAgKiBFbXB0eSBieSBkZWZhdWx0IGFuZCBuZXZlciBwb3B1bGF0ZWQgYnkgUGhhc2VyLCB0aGlzIGlzIGxlZnQgZm9yIGRldmVsb3BlcnMgdG8gdXNlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI25hbWVcclxuICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICAgICAqIEBkZWZhdWx0ICcnXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTguMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubmFtZSA9IEdldEZhc3RWYWx1ZShjb25maWcsICduYW1lJywgJycpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXaGV0aGVyIHRoaXMgZ3JvdXAgcnVucyBpdHMge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNwcmVVcGRhdGV9IG1ldGhvZFxyXG4gICAgICAgICAqICh3aGljaCBtYXkgdXBkYXRlIGFueSBtZW1iZXJzKS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNhY3RpdmVcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFjdGl2ZSA9IEdldEZhc3RWYWx1ZShjb25maWcsICdhY3RpdmUnLCB0cnVlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIG1heGltdW0gc2l6ZSBvZiB0aGlzIGdyb3VwLCBpZiB1c2VkIGFzIGEgcG9vbC4gLTEgaXMgbm8gbGltaXQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjbWF4U2l6ZVxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBkZWZhdWx0IC0xXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tYXhTaXplID0gR2V0RmFzdFZhbHVlKGNvbmZpZywgJ21heFNpemUnLCAtMSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgZGVmYXVsdCB0ZXh0dXJlIGtleSB0byB1c2Ugd2hlbiBjcmVhdGluZyBuZXcgZ3JvdXAgbWVtYmVycy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFRoaXMgaXMgdXNlZCBpbiB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2NyZWF0ZX1cclxuICAgICAgICAgKiBidXQgbm90IGluIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjY3JlYXRlTXVsdGlwbGV9LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2RlZmF1bHRLZXlcclxuICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdEtleSA9IEdldEZhc3RWYWx1ZShjb25maWcsICdkZWZhdWx0S2V5JywgbnVsbCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgZGVmYXVsdCB0ZXh0dXJlIGZyYW1lIHRvIHVzZSB3aGVuIGNyZWF0aW5nIG5ldyBncm91cCBtZW1iZXJzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2RlZmF1bHRGcmFtZVxyXG4gICAgICAgICAqIEB0eXBlIHsoc3RyaW5nfGludGVnZXIpfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdEZyYW1lID0gR2V0RmFzdFZhbHVlKGNvbmZpZywgJ2RlZmF1bHRGcmFtZScsIG51bGwpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXaGV0aGVyIHRvIGNhbGwgdGhlIHVwZGF0ZSBtZXRob2Qgb2YgYW55IG1lbWJlcnMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjcnVuQ2hpbGRVcGRhdGVcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI3ByZVVwZGF0ZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucnVuQ2hpbGRVcGRhdGUgPSBHZXRGYXN0VmFsdWUoY29uZmlnLCAncnVuQ2hpbGRVcGRhdGUnLCBmYWxzZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gYWRkaW5nIG9yIGNyZWF0aW5nIGdyb3VwIG1lbWJlcnMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjY3JlYXRlQ2FsbGJhY2tcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5Hcm91cC5Hcm91cENhbGxiYWNrfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY3JlYXRlQ2FsbGJhY2sgPSBHZXRGYXN0VmFsdWUoY29uZmlnLCAnY3JlYXRlQ2FsbGJhY2snLCBudWxsKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiByZW1vdmluZyBncm91cCBtZW1iZXJzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI3JlbW92ZUNhbGxiYWNrXHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuR3JvdXAuR3JvdXBDYWxsYmFja31cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJlbW92ZUNhbGxiYWNrID0gR2V0RmFzdFZhbHVlKGNvbmZpZywgJ3JlbW92ZUNhbGxiYWNrJywgbnVsbCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gY3JlYXRpbmcgc2V2ZXJhbCBncm91cCBtZW1iZXJzIGF0IG9uY2UuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjY3JlYXRlTXVsdGlwbGVDYWxsYmFja1xyXG4gICAgICAgICAqIEB0eXBlIHs/UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLkdyb3VwLkdyb3VwTXVsdGlwbGVDcmVhdGVDYWxsYmFja31cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNyZWF0ZU11bHRpcGxlQ2FsbGJhY2sgPSBHZXRGYXN0VmFsdWUoY29uZmlnLCAnY3JlYXRlTXVsdGlwbGVDYWxsYmFjaycsIG51bGwpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGFkZGluZyBvciBjcmVhdGluZyBncm91cCBtZW1iZXJzLlxyXG4gICAgICAgICAqIEZvciBpbnRlcm5hbCB1c2Ugb25seSBieSBhIEdyb3VwLCBvciBhbnkgY2xhc3MgdGhhdCBleHRlbmRzIGl0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2ludGVybmFsQ3JlYXRlQ2FsbGJhY2tcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5Hcm91cC5Hcm91cENhbGxiYWNrfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMjIuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxDcmVhdGVDYWxsYmFjayA9IEdldEZhc3RWYWx1ZShjb25maWcsICdpbnRlcm5hbENyZWF0ZUNhbGxiYWNrJywgbnVsbCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gcmVtb3ZpbmcgZ3JvdXAgbWVtYmVycy5cclxuICAgICAgICAgKiBGb3IgaW50ZXJuYWwgdXNlIG9ubHkgYnkgYSBHcm91cCwgb3IgYW55IGNsYXNzIHRoYXQgZXh0ZW5kcyBpdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNpbnRlcm5hbFJlbW92ZUNhbGxiYWNrXHJcbiAgICAgICAgICogQHR5cGUgez9QaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuR3JvdXAuR3JvdXBDYWxsYmFja31cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIyLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmludGVybmFsUmVtb3ZlQ2FsbGJhY2sgPSBHZXRGYXN0VmFsdWUoY29uZmlnLCAnaW50ZXJuYWxSZW1vdmVDYWxsYmFjaycsIG51bGwpO1xyXG5cclxuICAgICAgICBpZiAoY29uZmlnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVNdWx0aXBsZShjb25maWcpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgbmV3IEdhbWUgT2JqZWN0IGFuZCBhZGRzIGl0IHRvIHRoaXMgZ3JvdXAsIHVubGVzcyB0aGUgZ3JvdXAge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNpc0Z1bGwgaXMgZnVsbH0uXHJcbiAgICAgKlxyXG4gICAgICogQ2FsbHMge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNjcmVhdGVDYWxsYmFja30uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjY3JlYXRlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3g9MF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgbmV3IEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgbmV3IEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBba2V5PWRlZmF1bHRLZXldIC0gVGhlIHRleHR1cmUga2V5IG9mIHRoZSBuZXcgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcil9IFtmcmFtZT1kZWZhdWx0RnJhbWVdIC0gVGhlIHRleHR1cmUgZnJhbWUgb2YgdGhlIG5ldyBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Zpc2libGU9dHJ1ZV0gLSBUaGUge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlZpc2libGUjdmlzaWJsZX0gc3RhdGUgb2YgdGhlIG5ldyBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FjdGl2ZT10cnVlXSAtIFRoZSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjYWN0aXZlfSBzdGF0ZSBvZiB0aGUgbmV3IEdhbWUgT2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2FueX0gVGhlIG5ldyBHYW1lIE9iamVjdCAodXN1YWxseSBhIFNwcml0ZSwgZXRjLikuXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZTogZnVuY3Rpb24gKHgsIHksIGtleSwgZnJhbWUsIHZpc2libGUsIGFjdGl2ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7IHggPSAwOyB9XHJcbiAgICAgICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgeyB5ID0gMDsgfVxyXG4gICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkgeyBrZXkgPSB0aGlzLmRlZmF1bHRLZXk7IH1cclxuICAgICAgICBpZiAoZnJhbWUgPT09IHVuZGVmaW5lZCkgeyBmcmFtZSA9IHRoaXMuZGVmYXVsdEZyYW1lOyB9XHJcbiAgICAgICAgaWYgKHZpc2libGUgPT09IHVuZGVmaW5lZCkgeyB2aXNpYmxlID0gdHJ1ZTsgfVxyXG4gICAgICAgIGlmIChhY3RpdmUgPT09IHVuZGVmaW5lZCkgeyBhY3RpdmUgPSB0cnVlOyB9XHJcblxyXG4gICAgICAgIC8vICBQb29sP1xyXG4gICAgICAgIGlmICh0aGlzLmlzRnVsbCgpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgY2hpbGQgPSBuZXcgdGhpcy5jbGFzc1R5cGUodGhpcy5zY2VuZSwgeCwgeSwga2V5LCBmcmFtZSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2NlbmUuc3lzLmRpc3BsYXlMaXN0LmFkZChjaGlsZCk7XHJcblxyXG4gICAgICAgIGlmIChjaGlsZC5wcmVVcGRhdGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNjZW5lLnN5cy51cGRhdGVMaXN0LmFkZChjaGlsZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjaGlsZC52aXNpYmxlID0gdmlzaWJsZTtcclxuICAgICAgICBjaGlsZC5zZXRBY3RpdmUoYWN0aXZlKTtcclxuXHJcbiAgICAgICAgdGhpcy5hZGQoY2hpbGQpO1xyXG5cclxuICAgICAgICByZXR1cm4gY2hpbGQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBzZXZlcmFsIEdhbWUgT2JqZWN0cyBhbmQgYWRkcyB0aGVtIHRvIHRoaXMgZ3JvdXAuXHJcbiAgICAgKlxyXG4gICAgICogSWYgdGhlIGdyb3VwIGJlY29tZXMge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNpc0Z1bGx9LCBubyBmdXJ0aGVyIEdhbWUgT2JqZWN0cyBhcmUgY3JlYXRlZC5cclxuICAgICAqXHJcbiAgICAgKiBDYWxscyB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2NyZWF0ZU11bHRpcGxlQ2FsbGJhY2t9IGFuZCB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2NyZWF0ZUNhbGxiYWNrfS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNjcmVhdGVNdWx0aXBsZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuR3JvdXAuR3JvdXBDcmVhdGVDb25maWd8UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLkdyb3VwLkdyb3VwQ3JlYXRlQ29uZmlnW119IGNvbmZpZyAtIENyZWF0aW9uIHNldHRpbmdzLiBUaGlzIGNhbiBiZSBhIHNpbmdsZSBjb25maWd1cmF0aW9uIG9iamVjdCBvciBhbiBhcnJheSBvZiBzdWNoIG9iamVjdHMsIHdoaWNoIHdpbGwgYmUgYXBwbGllZCBpbiB0dXJuLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2FueVtdfSBUaGUgbmV3bHkgY3JlYXRlZCBHYW1lIE9iamVjdHMuXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZU11bHRpcGxlOiBmdW5jdGlvbiAoY29uZmlnKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLmlzRnVsbCgpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbmZpZykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb25maWcgPSBbIGNvbmZpZyBdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIG91dHB1dCA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoY29uZmlnWzBdLmtleSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZW50cmllcyA9IHRoaXMuY3JlYXRlRnJvbUNvbmZpZyhjb25maWdbaV0pO1xyXG5cclxuICAgICAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5jb25jYXQoZW50cmllcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBoZWxwZXIgZm9yIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjY3JlYXRlTXVsdGlwbGV9LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2NyZWF0ZUZyb21Db25maWdcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLkdyb3VwLkdyb3VwQ3JlYXRlQ29uZmlnfSBvcHRpb25zIC0gQ3JlYXRpb24gc2V0dGluZ3MuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7YW55W119IFRoZSBuZXdseSBjcmVhdGVkIEdhbWUgT2JqZWN0cy5cclxuICAgICAqL1xyXG4gICAgY3JlYXRlRnJvbUNvbmZpZzogZnVuY3Rpb24gKG9wdGlvbnMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNGdWxsKCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNsYXNzVHlwZSA9IEdldEZhc3RWYWx1ZShvcHRpb25zLCAnY2xhc3NUeXBlJywgdGhpcy5jbGFzc1R5cGUpO1xyXG5cclxuICAgICAgICB2YXIga2V5ID0gR2V0RmFzdFZhbHVlKG9wdGlvbnMsICdrZXknLCB1bmRlZmluZWQpO1xyXG4gICAgICAgIHZhciBmcmFtZSA9IEdldEZhc3RWYWx1ZShvcHRpb25zLCAnZnJhbWUnLCBudWxsKTtcclxuICAgICAgICB2YXIgdmlzaWJsZSA9IEdldEZhc3RWYWx1ZShvcHRpb25zLCAndmlzaWJsZScsIHRydWUpO1xyXG4gICAgICAgIHZhciBhY3RpdmUgPSBHZXRGYXN0VmFsdWUob3B0aW9ucywgJ2FjdGl2ZScsIHRydWUpO1xyXG5cclxuICAgICAgICB2YXIgZW50cmllcyA9IFtdO1xyXG5cclxuICAgICAgICAvLyAgQ2FuJ3QgZG8gYW55dGhpbmcgd2l0aG91dCBhdCBsZWFzdCBhIGtleVxyXG4gICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBlbnRyaWVzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoa2V5KSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAga2V5ID0gWyBrZXkgXTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZyYW1lKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZnJhbWUgPSBbIGZyYW1lIF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBCdWlsZCBhbiBhcnJheSBvZiBrZXkgZnJhbWUgcGFpcnMgdG8gbG9vcCB0aHJvdWdoXHJcblxyXG4gICAgICAgIHZhciByZXBlYXQgPSBHZXRGYXN0VmFsdWUob3B0aW9ucywgJ3JlcGVhdCcsIDApO1xyXG4gICAgICAgIHZhciByYW5kb21LZXkgPSBHZXRGYXN0VmFsdWUob3B0aW9ucywgJ3JhbmRvbUtleScsIGZhbHNlKTtcclxuICAgICAgICB2YXIgcmFuZG9tRnJhbWUgPSBHZXRGYXN0VmFsdWUob3B0aW9ucywgJ3JhbmRvbUZyYW1lJywgZmFsc2UpO1xyXG4gICAgICAgIHZhciB5b3lvID0gR2V0RmFzdFZhbHVlKG9wdGlvbnMsICd5b3lvJywgZmFsc2UpO1xyXG4gICAgICAgIHZhciBxdWFudGl0eSA9IEdldEZhc3RWYWx1ZShvcHRpb25zLCAncXVhbnRpdHknLCBmYWxzZSk7XHJcbiAgICAgICAgdmFyIGZyYW1lUXVhbnRpdHkgPSBHZXRGYXN0VmFsdWUob3B0aW9ucywgJ2ZyYW1lUXVhbnRpdHknLCAxKTtcclxuICAgICAgICB2YXIgbWF4ID0gR2V0RmFzdFZhbHVlKG9wdGlvbnMsICdtYXgnLCAwKTtcclxuXHJcbiAgICAgICAgLy8gIElmIGEgcXVhbnRpdHkgdmFsdWUgaXMgc2V0IHdlIHVzZSB0aGF0IHRvIG92ZXJyaWRlIHRoZSBmcmFtZVF1YW50aXR5XHJcblxyXG4gICAgICAgIHZhciByYW5nZSA9IFJhbmdlKGtleSwgZnJhbWUsIHtcclxuICAgICAgICAgICAgbWF4OiBtYXgsXHJcbiAgICAgICAgICAgIHF0eTogKHF1YW50aXR5KSA/IHF1YW50aXR5IDogZnJhbWVRdWFudGl0eSxcclxuICAgICAgICAgICAgcmFuZG9tOiByYW5kb21LZXksXHJcbiAgICAgICAgICAgIHJhbmRvbUI6IHJhbmRvbUZyYW1lLFxyXG4gICAgICAgICAgICByZXBlYXQ6IHJlcGVhdCxcclxuICAgICAgICAgICAgeW95bzogeW95b1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5jcmVhdGVDYWxsYmFjaylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQ2FsbGJhY2sgPSBvcHRpb25zLmNyZWF0ZUNhbGxiYWNrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMucmVtb3ZlQ2FsbGJhY2spXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUNhbGxiYWNrID0gb3B0aW9ucy5yZW1vdmVDYWxsYmFjaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAodmFyIGMgPSAwOyBjIDwgcmFuZ2UubGVuZ3RoOyBjKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgY3JlYXRlZCA9IHRoaXMuY3JlYXRlKDAsIDAsIHJhbmdlW2NdLmEsIHJhbmdlW2NdLmIsIHZpc2libGUsIGFjdGl2ZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNyZWF0ZWQpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBlbnRyaWVzLnB1c2goY3JlYXRlZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgUG9zdC1jcmVhdGlvbiBvcHRpb25zIChhcHBsaWVkIG9ubHkgdG8gdGhvc2UgaXRlbXMgY3JlYXRlZCBpbiB0aGlzIGNhbGwpOlxyXG5cclxuICAgICAgICB2YXIgeCA9IEdldFZhbHVlKG9wdGlvbnMsICdzZXRYWS54JywgMCk7XHJcbiAgICAgICAgdmFyIHkgPSBHZXRWYWx1ZShvcHRpb25zLCAnc2V0WFkueScsIDApO1xyXG4gICAgICAgIHZhciBzdGVwWCA9IEdldFZhbHVlKG9wdGlvbnMsICdzZXRYWS5zdGVwWCcsIDApO1xyXG4gICAgICAgIHZhciBzdGVwWSA9IEdldFZhbHVlKG9wdGlvbnMsICdzZXRYWS5zdGVwWScsIDApO1xyXG5cclxuICAgICAgICBBY3Rpb25zLlNldFhZKGVudHJpZXMsIHgsIHksIHN0ZXBYLCBzdGVwWSk7XHJcblxyXG4gICAgICAgIHZhciByb3RhdGlvbiA9IEdldFZhbHVlKG9wdGlvbnMsICdzZXRSb3RhdGlvbi52YWx1ZScsIDApO1xyXG4gICAgICAgIHZhciBzdGVwUm90YXRpb24gPSBHZXRWYWx1ZShvcHRpb25zLCAnc2V0Um90YXRpb24uc3RlcCcsIDApO1xyXG5cclxuICAgICAgICBBY3Rpb25zLlNldFJvdGF0aW9uKGVudHJpZXMsIHJvdGF0aW9uLCBzdGVwUm90YXRpb24pO1xyXG5cclxuICAgICAgICB2YXIgc2NhbGVYID0gR2V0VmFsdWUob3B0aW9ucywgJ3NldFNjYWxlLngnLCAxKTtcclxuICAgICAgICB2YXIgc2NhbGVZID0gR2V0VmFsdWUob3B0aW9ucywgJ3NldFNjYWxlLnknLCBzY2FsZVgpO1xyXG4gICAgICAgIHZhciBzdGVwU2NhbGVYID0gR2V0VmFsdWUob3B0aW9ucywgJ3NldFNjYWxlLnN0ZXBYJywgMCk7XHJcbiAgICAgICAgdmFyIHN0ZXBTY2FsZVkgPSBHZXRWYWx1ZShvcHRpb25zLCAnc2V0U2NhbGUuc3RlcFknLCAwKTtcclxuXHJcbiAgICAgICAgQWN0aW9ucy5TZXRTY2FsZShlbnRyaWVzLCBzY2FsZVgsIHNjYWxlWSwgc3RlcFNjYWxlWCwgc3RlcFNjYWxlWSk7XHJcblxyXG4gICAgICAgIHZhciBhbHBoYSA9IEdldFZhbHVlKG9wdGlvbnMsICdzZXRBbHBoYS52YWx1ZScsIDEpO1xyXG4gICAgICAgIHZhciBzdGVwQWxwaGEgPSBHZXRWYWx1ZShvcHRpb25zLCAnc2V0QWxwaGEuc3RlcCcsIDApO1xyXG5cclxuICAgICAgICBBY3Rpb25zLlNldEFscGhhKGVudHJpZXMsIGFscGhhLCBzdGVwQWxwaGEpO1xyXG5cclxuICAgICAgICB2YXIgZGVwdGggPSBHZXRWYWx1ZShvcHRpb25zLCAnc2V0RGVwdGgudmFsdWUnLCAwKTtcclxuICAgICAgICB2YXIgc3RlcERlcHRoID0gR2V0VmFsdWUob3B0aW9ucywgJ3NldERlcHRoLnN0ZXAnLCAwKTtcclxuXHJcbiAgICAgICAgQWN0aW9ucy5TZXREZXB0aChlbnRyaWVzLCBkZXB0aCwgc3RlcERlcHRoKTtcclxuXHJcbiAgICAgICAgdmFyIHNjcm9sbEZhY3RvclggPSBHZXRWYWx1ZShvcHRpb25zLCAnc2V0U2Nyb2xsRmFjdG9yLngnLCAxKTtcclxuICAgICAgICB2YXIgc2Nyb2xsRmFjdG9yWSA9IEdldFZhbHVlKG9wdGlvbnMsICdzZXRTY3JvbGxGYWN0b3IueScsIHNjcm9sbEZhY3RvclgpO1xyXG4gICAgICAgIHZhciBzdGVwU2Nyb2xsRmFjdG9yWCA9IEdldFZhbHVlKG9wdGlvbnMsICdzZXRTY3JvbGxGYWN0b3Iuc3RlcFgnLCAwKTtcclxuICAgICAgICB2YXIgc3RlcFNjcm9sbEZhY3RvclkgPSBHZXRWYWx1ZShvcHRpb25zLCAnc2V0U2Nyb2xsRmFjdG9yLnN0ZXBZJywgMCk7XHJcblxyXG4gICAgICAgIEFjdGlvbnMuU2V0U2Nyb2xsRmFjdG9yKGVudHJpZXMsIHNjcm9sbEZhY3RvclgsIHNjcm9sbEZhY3RvclksIHN0ZXBTY3JvbGxGYWN0b3JYLCBzdGVwU2Nyb2xsRmFjdG9yWSk7XHJcblxyXG4gICAgICAgIHZhciBoaXRBcmVhID0gR2V0RmFzdFZhbHVlKG9wdGlvbnMsICdoaXRBcmVhJywgbnVsbCk7XHJcbiAgICAgICAgdmFyIGhpdEFyZWFDYWxsYmFjayA9IEdldEZhc3RWYWx1ZShvcHRpb25zLCAnaGl0QXJlYUNhbGxiYWNrJywgbnVsbCk7XHJcblxyXG4gICAgICAgIGlmIChoaXRBcmVhKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgQWN0aW9ucy5TZXRIaXRBcmVhKGVudHJpZXMsIGhpdEFyZWEsIGhpdEFyZWFDYWxsYmFjayk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgZ3JpZCA9IEdldEZhc3RWYWx1ZShvcHRpb25zLCAnZ3JpZEFsaWduJywgZmFsc2UpO1xyXG5cclxuICAgICAgICBpZiAoZ3JpZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIEFjdGlvbnMuR3JpZEFsaWduKGVudHJpZXMsIGdyaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY3JlYXRlTXVsdGlwbGVDYWxsYmFjaylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTXVsdGlwbGVDYWxsYmFjay5jYWxsKHRoaXMsIGVudHJpZXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGVudHJpZXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBhbnkgZ3JvdXAgbWVtYmVycywgaWYge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNydW5DaGlsZFVwZGF0ZX0gaXMgZW5hYmxlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNwcmVVcGRhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gVGhlIGN1cnJlbnQgdGltZXN0YW1wLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlbHRhIC0gVGhlIGRlbHRhIHRpbWUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCBmcmFtZS5cclxuICAgICAqL1xyXG4gICAgcHJlVXBkYXRlOiBmdW5jdGlvbiAodGltZSwgZGVsdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnJ1bkNoaWxkVXBkYXRlIHx8IHRoaXMuY2hpbGRyZW4uc2l6ZSA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBCZWNhdXNlIGEgR3JvdXAgY2hpbGQgbWF5IG1lc3Mgd2l0aCB0aGUgbGVuZ3RoIG9mIHRoZSBHcm91cCBkdXJpbmcgaXRzIHVwZGF0ZVxyXG4gICAgICAgIHZhciB0ZW1wID0gdGhpcy5jaGlsZHJlbi5lbnRyaWVzLnNsaWNlKCk7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVtcC5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBpdGVtID0gdGVtcFtpXTtcclxuXHJcbiAgICAgICAgICAgIGlmIChpdGVtLmFjdGl2ZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaXRlbS51cGRhdGUodGltZSwgZGVsdGEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYSBHYW1lIE9iamVjdCB0byB0aGlzIGdyb3VwLlxyXG4gICAgICpcclxuICAgICAqIENhbGxzIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjY3JlYXRlQ2FsbGJhY2t9LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2FkZFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gY2hpbGQgLSBUaGUgR2FtZSBPYmplY3QgdG8gYWRkLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbYWRkVG9TY2VuZT1mYWxzZV0gLSBBbHNvIGFkZCB0aGUgR2FtZSBPYmplY3QgdG8gdGhlIHNjZW5lLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR3JvdXAgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBhZGQ6IGZ1bmN0aW9uIChjaGlsZCwgYWRkVG9TY2VuZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoYWRkVG9TY2VuZSA9PT0gdW5kZWZpbmVkKSB7IGFkZFRvU2NlbmUgPSBmYWxzZTsgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc0Z1bGwoKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5zZXQoY2hpbGQpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pbnRlcm5hbENyZWF0ZUNhbGxiYWNrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbENyZWF0ZUNhbGxiYWNrLmNhbGwodGhpcywgY2hpbGQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY3JlYXRlQ2FsbGJhY2spXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUNhbGxiYWNrLmNhbGwodGhpcywgY2hpbGQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGFkZFRvU2NlbmUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNjZW5lLnN5cy5kaXNwbGF5TGlzdC5hZGQoY2hpbGQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGNoaWxkLnByZVVwZGF0ZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY2VuZS5zeXMudXBkYXRlTGlzdC5hZGQoY2hpbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjaGlsZC5vbihFdmVudHMuREVTVFJPWSwgdGhpcy5yZW1vdmUsIHRoaXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGRzIHNldmVyYWwgR2FtZSBPYmplY3RzIHRvIHRoaXMgZ3JvdXAuXHJcbiAgICAgKlxyXG4gICAgICogQ2FsbHMge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNjcmVhdGVDYWxsYmFja30uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjYWRkTXVsdGlwbGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXX0gY2hpbGRyZW4gLSBUaGUgR2FtZSBPYmplY3RzIHRvIGFkZC5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FkZFRvU2NlbmU9ZmFsc2VdIC0gQWxzbyBhZGQgdGhlIEdhbWUgT2JqZWN0cyB0byB0aGUgc2NlbmUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBncm91cC5cclxuICAgICAqL1xyXG4gICAgYWRkTXVsdGlwbGU6IGZ1bmN0aW9uIChjaGlsZHJlbiwgYWRkVG9TY2VuZSlcclxuICAgIHtcclxuICAgICAgICBpZiAoYWRkVG9TY2VuZSA9PT0gdW5kZWZpbmVkKSB7IGFkZFRvU2NlbmUgPSBmYWxzZTsgfVxyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFkZChjaGlsZHJlbltpXSwgYWRkVG9TY2VuZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgYSBtZW1iZXIgb2YgdGhpcyBHcm91cCBhbmQgb3B0aW9uYWxseSByZW1vdmVzIGl0IGZyb20gdGhlIFNjZW5lIGFuZCAvIG9yIGRlc3Ryb3lzIGl0LlxyXG4gICAgICpcclxuICAgICAqIENhbGxzIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjcmVtb3ZlQ2FsbGJhY2t9LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI3JlbW92ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gY2hpbGQgLSBUaGUgR2FtZSBPYmplY3QgdG8gcmVtb3ZlLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcmVtb3ZlRnJvbVNjZW5lPWZhbHNlXSAtIE9wdGlvbmFsbHkgcmVtb3ZlIHRoZSBHcm91cCBtZW1iZXIgZnJvbSB0aGUgU2NlbmUgaXQgYmVsb25ncyB0by5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Rlc3Ryb3lDaGlsZD1mYWxzZV0gLSBPcHRpb25hbGx5IGNhbGwgZGVzdHJveSBvbiB0aGUgcmVtb3ZlZCBHcm91cCBtZW1iZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHcm91cCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZTogZnVuY3Rpb24gKGNoaWxkLCByZW1vdmVGcm9tU2NlbmUsIGRlc3Ryb3lDaGlsZClcclxuICAgIHtcclxuICAgICAgICBpZiAocmVtb3ZlRnJvbVNjZW5lID09PSB1bmRlZmluZWQpIHsgcmVtb3ZlRnJvbVNjZW5lID0gZmFsc2U7IH1cclxuICAgICAgICBpZiAoZGVzdHJveUNoaWxkID09PSB1bmRlZmluZWQpIHsgZGVzdHJveUNoaWxkID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmNoaWxkcmVuLmNvbnRhaW5zKGNoaWxkKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5kZWxldGUoY2hpbGQpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pbnRlcm5hbFJlbW92ZUNhbGxiYWNrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFJlbW92ZUNhbGxiYWNrLmNhbGwodGhpcywgY2hpbGQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmVtb3ZlQ2FsbGJhY2spXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUNhbGxiYWNrLmNhbGwodGhpcywgY2hpbGQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2hpbGQub2ZmKEV2ZW50cy5ERVNUUk9ZLCB0aGlzLnJlbW92ZSwgdGhpcyk7XHJcblxyXG4gICAgICAgIGlmIChkZXN0cm95Q2hpbGQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjaGlsZC5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHJlbW92ZUZyb21TY2VuZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNoaWxkLnNjZW5lLnN5cy5kaXNwbGF5TGlzdC5yZW1vdmUoY2hpbGQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGNoaWxkLnByZVVwZGF0ZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY2hpbGQuc2NlbmUuc3lzLnVwZGF0ZUxpc3QucmVtb3ZlKGNoaWxkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlcyBhbGwgbWVtYmVycyBvZiB0aGlzIEdyb3VwIGFuZCBvcHRpb25hbGx5IHJlbW92ZXMgdGhlbSBmcm9tIHRoZSBTY2VuZSBhbmQgLyBvciBkZXN0cm95cyB0aGVtLlxyXG4gICAgICpcclxuICAgICAqIERvZXMgbm90IGNhbGwge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNyZW1vdmVDYWxsYmFja30uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjY2xlYXJcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JlbW92ZUZyb21TY2VuZT1mYWxzZV0gLSBPcHRpb25hbGx5IHJlbW92ZSBlYWNoIEdyb3VwIG1lbWJlciBmcm9tIHRoZSBTY2VuZS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Rlc3Ryb3lDaGlsZD1mYWxzZV0gLSBPcHRpb25hbGx5IGNhbGwgZGVzdHJveSBvbiB0aGUgcmVtb3ZlZCBHcm91cCBtZW1iZXJzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgZ3JvdXAuXHJcbiAgICAgKi9cclxuICAgIGNsZWFyOiBmdW5jdGlvbiAocmVtb3ZlRnJvbVNjZW5lLCBkZXN0cm95Q2hpbGQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHJlbW92ZUZyb21TY2VuZSA9PT0gdW5kZWZpbmVkKSB7IHJlbW92ZUZyb21TY2VuZSA9IGZhbHNlOyB9XHJcbiAgICAgICAgaWYgKGRlc3Ryb3lDaGlsZCA9PT0gdW5kZWZpbmVkKSB7IGRlc3Ryb3lDaGlsZCA9IGZhbHNlOyB9XHJcblxyXG4gICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW47XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4uc2l6ZTsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGdhbWVPYmplY3QgPSBjaGlsZHJlbi5lbnRyaWVzW2ldO1xyXG5cclxuICAgICAgICAgICAgZ2FtZU9iamVjdC5vZmYoRXZlbnRzLkRFU1RST1ksIHRoaXMucmVtb3ZlLCB0aGlzKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChkZXN0cm95Q2hpbGQpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGdhbWVPYmplY3QuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHJlbW92ZUZyb21TY2VuZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZ2FtZU9iamVjdC5zY2VuZS5zeXMuZGlzcGxheUxpc3QucmVtb3ZlKGdhbWVPYmplY3QpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChnYW1lT2JqZWN0LnByZVVwZGF0ZSlcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBnYW1lT2JqZWN0LnNjZW5lLnN5cy51cGRhdGVMaXN0LnJlbW92ZShnYW1lT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5jbGVhcigpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZXN0cyBpZiBhIEdhbWUgT2JqZWN0IGlzIGEgbWVtYmVyIG9mIHRoaXMgZ3JvdXAuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjY29udGFpbnNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3R9IGNoaWxkIC0gQSBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBHYW1lIE9iamVjdCBpcyBhIG1lbWJlciBvZiB0aGlzIGdyb3VwLlxyXG4gICAgICovXHJcbiAgICBjb250YWluczogZnVuY3Rpb24gKGNoaWxkKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLmNvbnRhaW5zKGNoaWxkKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbGwgbWVtYmVycyBvZiB0aGUgZ3JvdXAuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjZ2V0Q2hpbGRyZW5cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0W119IFRoZSBncm91cCBtZW1iZXJzLlxyXG4gICAgICovXHJcbiAgICBnZXRDaGlsZHJlbjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbi5lbnRyaWVzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBudW1iZXIgb2YgbWVtYmVycyBvZiB0aGUgZ3JvdXAuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjZ2V0TGVuZ3RoXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtpbnRlZ2VyfVxyXG4gICAgICovXHJcbiAgICBnZXRMZW5ndGg6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4uc2l6ZTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTY2FucyB0aGUgR3JvdXAsIGZyb20gdG9wIHRvIGJvdHRvbSwgZm9yIHRoZSBmaXJzdCBtZW1iZXIgdGhhdCBoYXMgYW4ge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I2FjdGl2ZX0gc3RhdGUgbWF0Y2hpbmcgdGhlIGFyZ3VtZW50LFxyXG4gICAgICogYXNzaWducyBgeGAgYW5kIGB5YCwgYW5kIHJldHVybnMgdGhlIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBJZiBubyBtYXRjaGluZyBtZW1iZXIgaXMgZm91bmQgYW5kIGBjcmVhdGVJZk51bGxgIGlzIHRydWUgYW5kIHRoZSBncm91cCBpc24ndCBmdWxsIHRoZW4gaXQgd2lsbCBjcmVhdGUgYSBuZXcgR2FtZSBPYmplY3QgdXNpbmcgYHhgLCBgeWAsIGBrZXlgLCBgZnJhbWVgLCBhbmQgYHZpc2libGVgLlxyXG4gICAgICogVW5sZXNzIGEgbmV3IG1lbWJlciBpcyBjcmVhdGVkLCBga2V5YCwgYGZyYW1lYCwgYW5kIGB2aXNpYmxlYCBhcmUgaWdub3JlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNnZXRGaXJzdFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbc3RhdGU9ZmFsc2VdIC0gVGhlIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdCNhY3RpdmV9IHZhbHVlIHRvIG1hdGNoLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbY3JlYXRlSWZOdWxsPWZhbHNlXSAtIENyZWF0ZSBhIG5ldyBHYW1lIE9iamVjdCBpZiBubyBtYXRjaGluZyBtZW1iZXJzIGFyZSBmb3VuZCwgdXNpbmcgdGhlIGZvbGxvd2luZyBhcmd1bWVudHMuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3hdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeV0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhlIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBba2V5PWRlZmF1bHRLZXldIC0gVGhlIHRleHR1cmUga2V5IGFzc2lnbmVkIHRvIGEgbmV3IEdhbWUgT2JqZWN0IChpZiBvbmUgaXMgY3JlYXRlZCkuXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcil9IFtmcmFtZT1kZWZhdWx0RnJhbWVdIC0gQSB0ZXh0dXJlIGZyYW1lIGFzc2lnbmVkIHRvIGEgbmV3IEdhbWUgT2JqZWN0IChpZiBvbmUgaXMgY3JlYXRlZCkuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt2aXNpYmxlPXRydWVdIC0gVGhlIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5WaXNpYmxlI3Zpc2libGV9IHN0YXRlIG9mIGEgbmV3IEdhbWUgT2JqZWN0IChpZiBvbmUgaXMgY3JlYXRlZCkuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7P2FueX0gVGhlIGZpcnN0IG1hdGNoaW5nIGdyb3VwIG1lbWJlciwgb3IgYSBuZXdseSBjcmVhdGVkIG1lbWJlciwgb3IgbnVsbC5cclxuICAgICAqL1xyXG4gICAgZ2V0Rmlyc3Q6IGZ1bmN0aW9uIChzdGF0ZSwgY3JlYXRlSWZOdWxsLCB4LCB5LCBrZXksIGZyYW1lLCB2aXNpYmxlKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEhhbmRsZXIodHJ1ZSwgMSwgc3RhdGUsIGNyZWF0ZUlmTnVsbCwgeCwgeSwga2V5LCBmcmFtZSwgdmlzaWJsZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2NhbnMgdGhlIEdyb3VwLCBmcm9tIHRvcCB0byBib3R0b20sIGZvciB0aGUgbnRoIG1lbWJlciB0aGF0IGhhcyBhbiB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjYWN0aXZlfSBzdGF0ZSBtYXRjaGluZyB0aGUgYXJndW1lbnQsXHJcbiAgICAgKiBhc3NpZ25zIGB4YCBhbmQgYHlgLCBhbmQgcmV0dXJucyB0aGUgbWVtYmVyLlxyXG4gICAgICpcclxuICAgICAqIElmIG5vIG1hdGNoaW5nIG1lbWJlciBpcyBmb3VuZCBhbmQgYGNyZWF0ZUlmTnVsbGAgaXMgdHJ1ZSBhbmQgdGhlIGdyb3VwIGlzbid0IGZ1bGwgdGhlbiBpdCB3aWxsIGNyZWF0ZSBhIG5ldyBHYW1lIE9iamVjdCB1c2luZyBgeGAsIGB5YCwgYGtleWAsIGBmcmFtZWAsIGFuZCBgdmlzaWJsZWAuXHJcbiAgICAgKiBVbmxlc3MgYSBuZXcgbWVtYmVyIGlzIGNyZWF0ZWQsIGBrZXlgLCBgZnJhbWVgLCBhbmQgYHZpc2libGVgIGFyZSBpZ25vcmVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2dldEZpcnN0TnRoXHJcbiAgICAgKiBAc2luY2UgMy42LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IG50aCAtIFRoZSBudGggbWF0Y2hpbmcgR3JvdXAgbWVtYmVyIHRvIHNlYXJjaCBmb3IuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtzdGF0ZT1mYWxzZV0gLSBUaGUge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I2FjdGl2ZX0gdmFsdWUgdG8gbWF0Y2guXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjcmVhdGVJZk51bGw9ZmFsc2VdIC0gQ3JlYXRlIGEgbmV3IEdhbWUgT2JqZWN0IGlmIG5vIG1hdGNoaW5nIG1lbWJlcnMgYXJlIGZvdW5kLCB1c2luZyB0aGUgZm9sbG93aW5nIGFyZ3VtZW50cy5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5XSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtrZXk9ZGVmYXVsdEtleV0gLSBUaGUgdGV4dHVyZSBrZXkgYXNzaWduZWQgdG8gYSBuZXcgR2FtZSBPYmplY3QgKGlmIG9uZSBpcyBjcmVhdGVkKS5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW2ZyYW1lPWRlZmF1bHRGcmFtZV0gLSBBIHRleHR1cmUgZnJhbWUgYXNzaWduZWQgdG8gYSBuZXcgR2FtZSBPYmplY3QgKGlmIG9uZSBpcyBjcmVhdGVkKS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Zpc2libGU9dHJ1ZV0gLSBUaGUge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlZpc2libGUjdmlzaWJsZX0gc3RhdGUgb2YgYSBuZXcgR2FtZSBPYmplY3QgKGlmIG9uZSBpcyBjcmVhdGVkKS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHs/YW55fSBUaGUgZmlyc3QgbWF0Y2hpbmcgZ3JvdXAgbWVtYmVyLCBvciBhIG5ld2x5IGNyZWF0ZWQgbWVtYmVyLCBvciBudWxsLlxyXG4gICAgICovXHJcbiAgICBnZXRGaXJzdE50aDogZnVuY3Rpb24gKG50aCwgc3RhdGUsIGNyZWF0ZUlmTnVsbCwgeCwgeSwga2V5LCBmcmFtZSwgdmlzaWJsZSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRIYW5kbGVyKHRydWUsIG50aCwgc3RhdGUsIGNyZWF0ZUlmTnVsbCwgeCwgeSwga2V5LCBmcmFtZSwgdmlzaWJsZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2NhbnMgdGhlIEdyb3VwIGZvciB0aGUgbGFzdCBtZW1iZXIgdGhhdCBoYXMgYW4ge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I2FjdGl2ZX0gc3RhdGUgbWF0Y2hpbmcgdGhlIGFyZ3VtZW50LFxyXG4gICAgICogYXNzaWducyBgeGAgYW5kIGB5YCwgYW5kIHJldHVybnMgdGhlIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBJZiBubyBtYXRjaGluZyBtZW1iZXIgaXMgZm91bmQgYW5kIGBjcmVhdGVJZk51bGxgIGlzIHRydWUgYW5kIHRoZSBncm91cCBpc24ndCBmdWxsIHRoZW4gaXQgd2lsbCBjcmVhdGUgYSBuZXcgR2FtZSBPYmplY3QgdXNpbmcgYHhgLCBgeWAsIGBrZXlgLCBgZnJhbWVgLCBhbmQgYHZpc2libGVgLlxyXG4gICAgICogVW5sZXNzIGEgbmV3IG1lbWJlciBpcyBjcmVhdGVkLCBga2V5YCwgYGZyYW1lYCwgYW5kIGB2aXNpYmxlYCBhcmUgaWdub3JlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNnZXRMYXN0XHJcbiAgICAgKiBAc2luY2UgMy42LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtzdGF0ZT1mYWxzZV0gLSBUaGUge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I2FjdGl2ZX0gdmFsdWUgdG8gbWF0Y2guXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjcmVhdGVJZk51bGw9ZmFsc2VdIC0gQ3JlYXRlIGEgbmV3IEdhbWUgT2JqZWN0IGlmIG5vIG1hdGNoaW5nIG1lbWJlcnMgYXJlIGZvdW5kLCB1c2luZyB0aGUgZm9sbG93aW5nIGFyZ3VtZW50cy5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5XSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtrZXk9ZGVmYXVsdEtleV0gLSBUaGUgdGV4dHVyZSBrZXkgYXNzaWduZWQgdG8gYSBuZXcgR2FtZSBPYmplY3QgKGlmIG9uZSBpcyBjcmVhdGVkKS5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW2ZyYW1lPWRlZmF1bHRGcmFtZV0gLSBBIHRleHR1cmUgZnJhbWUgYXNzaWduZWQgdG8gYSBuZXcgR2FtZSBPYmplY3QgKGlmIG9uZSBpcyBjcmVhdGVkKS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Zpc2libGU9dHJ1ZV0gLSBUaGUge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlZpc2libGUjdmlzaWJsZX0gc3RhdGUgb2YgYSBuZXcgR2FtZSBPYmplY3QgKGlmIG9uZSBpcyBjcmVhdGVkKS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHs/YW55fSBUaGUgZmlyc3QgbWF0Y2hpbmcgZ3JvdXAgbWVtYmVyLCBvciBhIG5ld2x5IGNyZWF0ZWQgbWVtYmVyLCBvciBudWxsLlxyXG4gICAgICovXHJcbiAgICBnZXRMYXN0OiBmdW5jdGlvbiAoc3RhdGUsIGNyZWF0ZUlmTnVsbCwgeCwgeSwga2V5LCBmcmFtZSwgdmlzaWJsZSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRIYW5kbGVyKGZhbHNlLCAxLCBzdGF0ZSwgY3JlYXRlSWZOdWxsLCB4LCB5LCBrZXksIGZyYW1lLCB2aXNpYmxlKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTY2FucyB0aGUgR3JvdXAgZm9yIHRoZSBsYXN0IG50aCBtZW1iZXIgdGhhdCBoYXMgYW4ge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I2FjdGl2ZX0gc3RhdGUgbWF0Y2hpbmcgdGhlIGFyZ3VtZW50LFxyXG4gICAgICogYXNzaWducyBgeGAgYW5kIGB5YCwgYW5kIHJldHVybnMgdGhlIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBJZiBubyBtYXRjaGluZyBtZW1iZXIgaXMgZm91bmQgYW5kIGBjcmVhdGVJZk51bGxgIGlzIHRydWUgYW5kIHRoZSBncm91cCBpc24ndCBmdWxsIHRoZW4gaXQgd2lsbCBjcmVhdGUgYSBuZXcgR2FtZSBPYmplY3QgdXNpbmcgYHhgLCBgeWAsIGBrZXlgLCBgZnJhbWVgLCBhbmQgYHZpc2libGVgLlxyXG4gICAgICogVW5sZXNzIGEgbmV3IG1lbWJlciBpcyBjcmVhdGVkLCBga2V5YCwgYGZyYW1lYCwgYW5kIGB2aXNpYmxlYCBhcmUgaWdub3JlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNnZXRMYXN0TnRoXHJcbiAgICAgKiBAc2luY2UgMy42LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IG50aCAtIFRoZSBudGggbWF0Y2hpbmcgR3JvdXAgbWVtYmVyIHRvIHNlYXJjaCBmb3IuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtzdGF0ZT1mYWxzZV0gLSBUaGUge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I2FjdGl2ZX0gdmFsdWUgdG8gbWF0Y2guXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtjcmVhdGVJZk51bGw9ZmFsc2VdIC0gQ3JlYXRlIGEgbmV3IEdhbWUgT2JqZWN0IGlmIG5vIG1hdGNoaW5nIG1lbWJlcnMgYXJlIGZvdW5kLCB1c2luZyB0aGUgZm9sbG93aW5nIGFyZ3VtZW50cy5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5XSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtrZXk9ZGVmYXVsdEtleV0gLSBUaGUgdGV4dHVyZSBrZXkgYXNzaWduZWQgdG8gYSBuZXcgR2FtZSBPYmplY3QgKGlmIG9uZSBpcyBjcmVhdGVkKS5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW2ZyYW1lPWRlZmF1bHRGcmFtZV0gLSBBIHRleHR1cmUgZnJhbWUgYXNzaWduZWQgdG8gYSBuZXcgR2FtZSBPYmplY3QgKGlmIG9uZSBpcyBjcmVhdGVkKS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Zpc2libGU9dHJ1ZV0gLSBUaGUge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlZpc2libGUjdmlzaWJsZX0gc3RhdGUgb2YgYSBuZXcgR2FtZSBPYmplY3QgKGlmIG9uZSBpcyBjcmVhdGVkKS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHs/YW55fSBUaGUgZmlyc3QgbWF0Y2hpbmcgZ3JvdXAgbWVtYmVyLCBvciBhIG5ld2x5IGNyZWF0ZWQgbWVtYmVyLCBvciBudWxsLlxyXG4gICAgICovXHJcbiAgICBnZXRMYXN0TnRoOiBmdW5jdGlvbiAobnRoLCBzdGF0ZSwgY3JlYXRlSWZOdWxsLCB4LCB5LCBrZXksIGZyYW1lLCB2aXNpYmxlKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEhhbmRsZXIoZmFsc2UsIG50aCwgc3RhdGUsIGNyZWF0ZUlmTnVsbCwgeCwgeSwga2V5LCBmcmFtZSwgdmlzaWJsZSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2NhbnMgdGhlIGdyb3VwIGZvciB0aGUgbGFzdCBtZW1iZXIgdGhhdCBoYXMgYW4ge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I2FjdGl2ZX0gc3RhdGUgbWF0Y2hpbmcgdGhlIGFyZ3VtZW50LFxyXG4gICAgICogYXNzaWducyBgeGAgYW5kIGB5YCwgYW5kIHJldHVybnMgdGhlIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBJZiBubyBtYXRjaGluZyBtZW1iZXIgaXMgZm91bmQgYW5kIGBjcmVhdGVJZk51bGxgIGlzIHRydWUgYW5kIHRoZSBncm91cCBpc24ndCBmdWxsIHRoZW4gaXQgd2lsbCBjcmVhdGUgYSBuZXcgR2FtZSBPYmplY3QgdXNpbmcgYHhgLCBgeWAsIGBrZXlgLCBgZnJhbWVgLCBhbmQgYHZpc2libGVgLlxyXG4gICAgICogVW5sZXNzIGEgbmV3IG1lbWJlciBpcyBjcmVhdGVkLCBga2V5YCwgYGZyYW1lYCwgYW5kIGB2aXNpYmxlYCBhcmUgaWdub3JlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNnZXRIYW5kbGVyXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuNi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBmb3J3YXJkcyAtIFNlYXJjaCBmcm9udCB0byBiYWNrIG9yIGJhY2sgdG8gZnJvbnQ/XHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IG50aCAtIFN0b3AgbWF0Y2hpbmcgYWZ0ZXIgbnRoIHN1Y2Nlc3NmdWwgbWF0Y2hlcy5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3N0YXRlPWZhbHNlXSAtIFRoZSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjYWN0aXZlfSB2YWx1ZSB0byBtYXRjaC5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2NyZWF0ZUlmTnVsbD1mYWxzZV0gLSBDcmVhdGUgYSBuZXcgR2FtZSBPYmplY3QgaWYgbm8gbWF0Y2hpbmcgbWVtYmVycyBhcmUgZm91bmQsIHVzaW5nIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4XSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ldIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2tleT1kZWZhdWx0S2V5XSAtIFRoZSB0ZXh0dXJlIGtleSBhc3NpZ25lZCB0byBhIG5ldyBHYW1lIE9iamVjdCAoaWYgb25lIGlzIGNyZWF0ZWQpLlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBbZnJhbWU9ZGVmYXVsdEZyYW1lXSAtIEEgdGV4dHVyZSBmcmFtZSBhc3NpZ25lZCB0byBhIG5ldyBHYW1lIE9iamVjdCAoaWYgb25lIGlzIGNyZWF0ZWQpLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbdmlzaWJsZT10cnVlXSAtIFRoZSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVmlzaWJsZSN2aXNpYmxlfSBzdGF0ZSBvZiBhIG5ldyBHYW1lIE9iamVjdCAoaWYgb25lIGlzIGNyZWF0ZWQpLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4gez9hbnl9IFRoZSBmaXJzdCBtYXRjaGluZyBncm91cCBtZW1iZXIsIG9yIGEgbmV3bHkgY3JlYXRlZCBtZW1iZXIsIG9yIG51bGwuXHJcbiAgICAgKi9cclxuICAgIGdldEhhbmRsZXI6IGZ1bmN0aW9uIChmb3J3YXJkcywgbnRoLCBzdGF0ZSwgY3JlYXRlSWZOdWxsLCB4LCB5LCBrZXksIGZyYW1lLCB2aXNpYmxlKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChzdGF0ZSA9PT0gdW5kZWZpbmVkKSB7IHN0YXRlID0gZmFsc2U7IH1cclxuICAgICAgICBpZiAoY3JlYXRlSWZOdWxsID09PSB1bmRlZmluZWQpIHsgY3JlYXRlSWZOdWxsID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgdmFyIGdhbWVPYmplY3Q7XHJcblxyXG4gICAgICAgIHZhciBpO1xyXG4gICAgICAgIHZhciB0b3RhbCA9IDA7XHJcbiAgICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbi5lbnRyaWVzO1xyXG5cclxuICAgICAgICBpZiAoZm9yd2FyZHMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGdhbWVPYmplY3QgPSBjaGlsZHJlbltpXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZ2FtZU9iamVjdC5hY3RpdmUgPT09IHN0YXRlKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsKys7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0b3RhbCA9PT0gbnRoKVxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGdhbWVPYmplY3QgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGZvciAoaSA9IGNoaWxkcmVuLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBnYW1lT2JqZWN0ID0gY2hpbGRyZW5baV07XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGdhbWVPYmplY3QuYWN0aXZlID09PSBzdGF0ZSlcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0b3RhbCsrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAodG90YWwgPT09IG50aClcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBnYW1lT2JqZWN0ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGdhbWVPYmplY3QpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mKHgpID09PSAnbnVtYmVyJylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZ2FtZU9iamVjdC54ID0geDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZih5KSA9PT0gJ251bWJlcicpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGdhbWVPYmplY3QueSA9IHk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBnYW1lT2JqZWN0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gIEdvdCB0aGlzIGZhcj8gV2UgbmVlZCB0byBjcmVhdGUgb3IgYmFpbFxyXG4gICAgICAgIGlmIChjcmVhdGVJZk51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUoeCwgeSwga2V5LCBmcmFtZSwgdmlzaWJsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTY2FucyB0aGUgZ3JvdXAgZm9yIHRoZSBmaXJzdCBtZW1iZXIgdGhhdCBoYXMgYW4ge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0I2FjdGl2ZX0gc3RhdGUgc2V0IHRvIGBmYWxzZWAsXHJcbiAgICAgKiBhc3NpZ25zIGB4YCBhbmQgYHlgLCBhbmQgcmV0dXJucyB0aGUgbWVtYmVyLlxyXG4gICAgICpcclxuICAgICAqIElmIG5vIGluYWN0aXZlIG1lbWJlciBpcyBmb3VuZCBhbmQgdGhlIGdyb3VwIGlzbid0IGZ1bGwgdGhlbiBpdCB3aWxsIGNyZWF0ZSBhIG5ldyBHYW1lIE9iamVjdCB1c2luZyBgeGAsIGB5YCwgYGtleWAsIGBmcmFtZWAsIGFuZCBgdmlzaWJsZWAuXHJcbiAgICAgKiBUaGUgbmV3IEdhbWUgT2JqZWN0IHdpbGwgaGF2ZSBpdHMgYWN0aXZlIHN0YXRlIHNldCB0byBgdHJ1ZWAuXHJcbiAgICAgKiBVbmxlc3MgYSBuZXcgbWVtYmVyIGlzIGNyZWF0ZWQsIGBrZXlgLCBgZnJhbWVgLCBhbmQgYHZpc2libGVgIGFyZSBpZ25vcmVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2dldFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4XSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ldIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2tleT1kZWZhdWx0S2V5XSAtIFRoZSB0ZXh0dXJlIGtleSBhc3NpZ25lZCB0byBhIG5ldyBHYW1lIE9iamVjdCAoaWYgb25lIGlzIGNyZWF0ZWQpLlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBbZnJhbWU9ZGVmYXVsdEZyYW1lXSAtIEEgdGV4dHVyZSBmcmFtZSBhc3NpZ25lZCB0byBhIG5ldyBHYW1lIE9iamVjdCAoaWYgb25lIGlzIGNyZWF0ZWQpLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbdmlzaWJsZT10cnVlXSAtIFRoZSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVmlzaWJsZSN2aXNpYmxlfSBzdGF0ZSBvZiBhIG5ldyBHYW1lIE9iamVjdCAoaWYgb25lIGlzIGNyZWF0ZWQpLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4gez9hbnl9IFRoZSBmaXJzdCBpbmFjdGl2ZSBncm91cCBtZW1iZXIsIG9yIGEgbmV3bHkgY3JlYXRlZCBtZW1iZXIsIG9yIG51bGwuXHJcbiAgICAgKi9cclxuICAgIGdldDogZnVuY3Rpb24gKHgsIHksIGtleSwgZnJhbWUsIHZpc2libGUpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Rmlyc3QoZmFsc2UsIHRydWUsIHgsIHksIGtleSwgZnJhbWUsIHZpc2libGUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNjYW5zIHRoZSBncm91cCBmb3IgdGhlIGZpcnN0IG1lbWJlciB0aGF0IGhhcyBhbiB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjYWN0aXZlfSBzdGF0ZSBzZXQgdG8gYHRydWVgLFxyXG4gICAgICogYXNzaWducyBgeGAgYW5kIGB5YCwgYW5kIHJldHVybnMgdGhlIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBJZiBubyBhY3RpdmUgbWVtYmVyIGlzIGZvdW5kIGFuZCBgY3JlYXRlSWZOdWxsYCBpcyBgdHJ1ZWAgYW5kIHRoZSBncm91cCBpc24ndCBmdWxsIHRoZW4gaXQgd2lsbCBjcmVhdGUgYSBuZXcgb25lIHVzaW5nIGB4YCwgYHlgLCBga2V5YCwgYGZyYW1lYCwgYW5kIGB2aXNpYmxlYC5cclxuICAgICAqIFVubGVzcyBhIG5ldyBtZW1iZXIgaXMgY3JlYXRlZCwgYGtleWAsIGBmcmFtZWAsIGFuZCBgdmlzaWJsZWAgYXJlIGlnbm9yZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjZ2V0Rmlyc3RBbGl2ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbY3JlYXRlSWZOdWxsPWZhbHNlXSAtIENyZWF0ZSBhIG5ldyBHYW1lIE9iamVjdCBpZiBubyBtYXRjaGluZyBtZW1iZXJzIGFyZSBmb3VuZCwgdXNpbmcgdGhlIGZvbGxvd2luZyBhcmd1bWVudHMuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3hdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeV0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhlIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBba2V5PWRlZmF1bHRLZXldIC0gVGhlIHRleHR1cmUga2V5IGFzc2lnbmVkIHRvIGEgbmV3IEdhbWUgT2JqZWN0IChpZiBvbmUgaXMgY3JlYXRlZCkuXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcil9IFtmcmFtZT1kZWZhdWx0RnJhbWVdIC0gQSB0ZXh0dXJlIGZyYW1lIGFzc2lnbmVkIHRvIGEgbmV3IEdhbWUgT2JqZWN0IChpZiBvbmUgaXMgY3JlYXRlZCkuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFt2aXNpYmxlPXRydWVdIC0gVGhlIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5WaXNpYmxlI3Zpc2libGV9IHN0YXRlIG9mIGEgbmV3IEdhbWUgT2JqZWN0IChpZiBvbmUgaXMgY3JlYXRlZCkuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7YW55fSBUaGUgZmlyc3QgYWN0aXZlIGdyb3VwIG1lbWJlciwgb3IgYSBuZXdseSBjcmVhdGVkIG1lbWJlciwgb3IgbnVsbC5cclxuICAgICAqL1xyXG4gICAgZ2V0Rmlyc3RBbGl2ZTogZnVuY3Rpb24gKGNyZWF0ZUlmTnVsbCwgeCwgeSwga2V5LCBmcmFtZSwgdmlzaWJsZSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRGaXJzdCh0cnVlLCBjcmVhdGVJZk51bGwsIHgsIHksIGtleSwgZnJhbWUsIHZpc2libGUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNjYW5zIHRoZSBncm91cCBmb3IgdGhlIGZpcnN0IG1lbWJlciB0aGF0IGhhcyBhbiB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3QjYWN0aXZlfSBzdGF0ZSBzZXQgdG8gYGZhbHNlYCxcclxuICAgICAqIGFzc2lnbnMgYHhgIGFuZCBgeWAsIGFuZCByZXR1cm5zIHRoZSBtZW1iZXIuXHJcbiAgICAgKlxyXG4gICAgICogSWYgbm8gaW5hY3RpdmUgbWVtYmVyIGlzIGZvdW5kIGFuZCBgY3JlYXRlSWZOdWxsYCBpcyBgdHJ1ZWAgYW5kIHRoZSBncm91cCBpc24ndCBmdWxsIHRoZW4gaXQgd2lsbCBjcmVhdGUgYSBuZXcgb25lIHVzaW5nIGB4YCwgYHlgLCBga2V5YCwgYGZyYW1lYCwgYW5kIGB2aXNpYmxlYC5cclxuICAgICAqIFRoZSBuZXcgR2FtZSBPYmplY3Qgd2lsbCBoYXZlIGFuIGFjdGl2ZSBzdGF0ZSBzZXQgdG8gYHRydWVgLlxyXG4gICAgICogVW5sZXNzIGEgbmV3IG1lbWJlciBpcyBjcmVhdGVkLCBga2V5YCwgYGZyYW1lYCwgYW5kIGB2aXNpYmxlYCBhcmUgaWdub3JlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNnZXRGaXJzdERlYWRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2NyZWF0ZUlmTnVsbD1mYWxzZV0gLSBDcmVhdGUgYSBuZXcgR2FtZSBPYmplY3QgaWYgbm8gbWF0Y2hpbmcgbWVtYmVycyBhcmUgZm91bmQsIHVzaW5nIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4XSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ldIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2tleT1kZWZhdWx0S2V5XSAtIFRoZSB0ZXh0dXJlIGtleSBhc3NpZ25lZCB0byBhIG5ldyBHYW1lIE9iamVjdCAoaWYgb25lIGlzIGNyZWF0ZWQpLlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBbZnJhbWU9ZGVmYXVsdEZyYW1lXSAtIEEgdGV4dHVyZSBmcmFtZSBhc3NpZ25lZCB0byBhIG5ldyBHYW1lIE9iamVjdCAoaWYgb25lIGlzIGNyZWF0ZWQpLlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbdmlzaWJsZT10cnVlXSAtIFRoZSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVmlzaWJsZSN2aXNpYmxlfSBzdGF0ZSBvZiBhIG5ldyBHYW1lIE9iamVjdCAoaWYgb25lIGlzIGNyZWF0ZWQpLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2FueX0gVGhlIGZpcnN0IGluYWN0aXZlIGdyb3VwIG1lbWJlciwgb3IgYSBuZXdseSBjcmVhdGVkIG1lbWJlciwgb3IgbnVsbC5cclxuICAgICAqL1xyXG4gICAgZ2V0Rmlyc3REZWFkOiBmdW5jdGlvbiAoY3JlYXRlSWZOdWxsLCB4LCB5LCBrZXksIGZyYW1lLCB2aXNpYmxlKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEZpcnN0KGZhbHNlLCBjcmVhdGVJZk51bGwsIHgsIHksIGtleSwgZnJhbWUsIHZpc2libGUpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbmltYXRpb24jcGxheSBQbGF5c30gYW4gYW5pbWF0aW9uIGZvciBhbGwgbWVtYmVycyBvZiB0aGlzIGdyb3VwLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI3BsYXlBbmltYXRpb25cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgc3RyaW5nLWJhc2VkIGtleSBvZiB0aGUgYW5pbWF0aW9uIHRvIHBsYXkuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3N0YXJ0RnJhbWU9MF0gLSBPcHRpb25hbGx5IHN0YXJ0IHRoZSBhbmltYXRpb24gcGxheWluZyBmcm9tIHRoaXMgZnJhbWUgaW5kZXguXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHcm91cCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHBsYXlBbmltYXRpb246IGZ1bmN0aW9uIChrZXksIHN0YXJ0RnJhbWUpXHJcbiAgICB7XHJcbiAgICAgICAgQWN0aW9ucy5QbGF5QW5pbWF0aW9uKHRoaXMuY2hpbGRyZW4uZW50cmllcywga2V5LCBzdGFydEZyYW1lKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0aGlzIGdyb3VwJ3Mgc2l6ZSBhdCBpdHMge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNtYXhTaXplIG1heGltdW19LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2lzRnVsbFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiB0aGUgbnVtYmVyIG9mIG1lbWJlcnMgZXF1YWxzIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjbWF4U2l6ZX0uXHJcbiAgICAgKi9cclxuICAgIGlzRnVsbDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5tYXhTaXplID09PSAtMSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuICh0aGlzLmNoaWxkcmVuLnNpemUgPj0gdGhpcy5tYXhTaXplKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ291bnRzIHRoZSBudW1iZXIgb2YgYWN0aXZlIChvciBpbmFjdGl2ZSkgZ3JvdXAgbWVtYmVycy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNjb3VudEFjdGl2ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbdmFsdWU9dHJ1ZV0gLSBDb3VudCBhY3RpdmUgKHRydWUpIG9yIGluYWN0aXZlIChmYWxzZSkgZ3JvdXAgbWVtYmVycy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtpbnRlZ2VyfSBUaGUgbnVtYmVyIG9mIGdyb3VwIG1lbWJlcnMgd2l0aCBhbiBhY3RpdmUgc3RhdGUgbWF0Y2hpbmcgdGhlIGBhY3RpdmVgIGFyZ3VtZW50LlxyXG4gICAgICovXHJcbiAgICBjb3VudEFjdGl2ZTogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7IHZhbHVlID0gdHJ1ZTsgfVxyXG5cclxuICAgICAgICB2YXIgdG90YWwgPSAwO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY2hpbGRyZW4uc2l6ZTsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW4uZW50cmllc1tpXS5hY3RpdmUgPT09IHZhbHVlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0b3RhbCsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdG90YWw7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ291bnRzIHRoZSBudW1iZXIgb2YgaW4tdXNlIChhY3RpdmUpIGdyb3VwIG1lbWJlcnMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjZ2V0VG90YWxVc2VkXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtpbnRlZ2VyfSBUaGUgbnVtYmVyIG9mIGdyb3VwIG1lbWJlcnMgd2l0aCBhbiBhY3RpdmUgc3RhdGUgb2YgdHJ1ZS5cclxuICAgICAqL1xyXG4gICAgZ2V0VG90YWxVc2VkOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvdW50QWN0aXZlKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGRpZmZlcmVuY2Ugb2Yge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNtYXhTaXplfSBhbmQgdGhlIG51bWJlciBvZiBhY3RpdmUgZ3JvdXAgbWVtYmVycy5cclxuICAgICAqXHJcbiAgICAgKiBUaGlzIHJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBncm91cCBtZW1iZXJzIHRoYXQgY291bGQgYmUgY3JlYXRlZCBvciByZWFjdGl2YXRlZCBiZWZvcmUgcmVhY2hpbmcgdGhlIHNpemUgbGltaXQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjZ2V0VG90YWxGcmVlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtpbnRlZ2VyfSBtYXhTaXplIG1pbnVzIHRoZSBudW1iZXIgb2YgYWN0aXZlIGdyb3VwIG51bWJlcnM7IG9yIGEgbGFyZ2UgbnVtYmVyIChpZiBtYXhTaXplIGlzIC0xKS5cclxuICAgICAqL1xyXG4gICAgZ2V0VG90YWxGcmVlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciB1c2VkID0gdGhpcy5nZXRUb3RhbFVzZWQoKTtcclxuICAgICAgICB2YXIgY2FwYWNpdHkgPSAodGhpcy5tYXhTaXplID09PSAtMSkgPyA5OTk5OTk5OTk5OTkgOiB0aGlzLm1heFNpemU7XHJcblxyXG4gICAgICAgIHJldHVybiAoY2FwYWNpdHkgLSB1c2VkKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBwcm9wZXJ0eSBhcyBkZWZpbmVkIGluIGBrZXlgIG9mIGVhY2ggZ3JvdXAgbWVtYmVyIHRvIHRoZSBnaXZlbiB2YWx1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNwcm9wZXJ0eVZhbHVlU2V0XHJcbiAgICAgKiBAc2luY2UgMy4yMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBwcm9wZXJ0eSB0byBiZSB1cGRhdGVkLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIHByb3BlcnR5IHRvLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwPTBdIC0gVGhpcyBpcyBhZGRlZCB0byB0aGUgYHZhbHVlYCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbaW5kZXg9MF0gLSBBbiBvcHRpb25hbCBvZmZzZXQgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20gd2l0aGluIHRoZSBpdGVtcyBhcnJheS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0xXSAtIFRoZSBkaXJlY3Rpb24gdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBhcnJheS4gMSBpcyBmcm9tIGJlZ2lubmluZyB0byBlbmQsIC0xIGZyb20gZW5kIHRvIGJlZ2lubmluZy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdyb3VwIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcHJvcGVydHlWYWx1ZVNldDogZnVuY3Rpb24gKGtleSwgdmFsdWUsIHN0ZXAsIGluZGV4LCBkaXJlY3Rpb24pXHJcbiAgICB7XHJcbiAgICAgICAgQWN0aW9ucy5Qcm9wZXJ0eVZhbHVlU2V0KHRoaXMuY2hpbGRyZW4uZW50cmllcywga2V5LCB2YWx1ZSwgc3RlcCwgaW5kZXgsIGRpcmVjdGlvbik7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgdGhlIGdpdmVuIHZhbHVlIHRvIHRoZSBwcm9wZXJ0eSBhcyBkZWZpbmVkIGluIGBrZXlgIG9mIGVhY2ggZ3JvdXAgbWVtYmVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI3Byb3BlcnR5VmFsdWVJbmNcclxuICAgICAqIEBzaW5jZSAzLjIxLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHByb3BlcnR5IHRvIGJlIHVwZGF0ZWQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgYW1vdW50IHRvIHNldCB0aGUgcHJvcGVydHkgdG8uXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtpbmRleD0wXSAtIEFuIG9wdGlvbmFsIG9mZnNldCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbSB3aXRoaW4gdGhlIGl0ZW1zIGFycmF5LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZGlyZWN0aW9uPTFdIC0gVGhlIGRpcmVjdGlvbiB0byBpdGVyYXRlIHRocm91Z2ggdGhlIGFycmF5LiAxIGlzIGZyb20gYmVnaW5uaW5nIHRvIGVuZCwgLTEgZnJvbSBlbmQgdG8gYmVnaW5uaW5nLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR3JvdXAgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwcm9wZXJ0eVZhbHVlSW5jOiBmdW5jdGlvbiAoa2V5LCB2YWx1ZSwgc3RlcCwgaW5kZXgsIGRpcmVjdGlvbilcclxuICAgIHtcclxuICAgICAgICBBY3Rpb25zLlByb3BlcnR5VmFsdWVJbmModGhpcy5jaGlsZHJlbi5lbnRyaWVzLCBrZXksIHZhbHVlLCBzdGVwLCBpbmRleCwgZGlyZWN0aW9uKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgeCBvZiBlYWNoIGdyb3VwIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNzZXRYXHJcbiAgICAgKiBAc2luY2UgMy4yMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIHByb3BlcnR5IHRvLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwPTBdIC0gVGhpcyBpcyBhZGRlZCB0byB0aGUgYHZhbHVlYCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR3JvdXAgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRYOiBmdW5jdGlvbiAodmFsdWUsIHN0ZXApXHJcbiAgICB7XHJcbiAgICAgICAgQWN0aW9ucy5TZXRYKHRoaXMuY2hpbGRyZW4uZW50cmllcywgdmFsdWUsIHN0ZXApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB5IG9mIGVhY2ggZ3JvdXAgbWVtYmVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI3NldFlcclxuICAgICAqIEBzaW5jZSAzLjIxLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgYW1vdW50IHRvIHNldCB0aGUgcHJvcGVydHkgdG8uXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHcm91cCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldFk6IGZ1bmN0aW9uICh2YWx1ZSwgc3RlcClcclxuICAgIHtcclxuICAgICAgICBBY3Rpb25zLlNldFkodGhpcy5jaGlsZHJlbi5lbnRyaWVzLCB2YWx1ZSwgc3RlcCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHgsIHkgb2YgZWFjaCBncm91cCBtZW1iZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjc2V0WFlcclxuICAgICAqIEBzaW5jZSAzLjIxLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBhbW91bnQgdG8gc2V0IHRoZSBgeGAgcHJvcGVydHkgdG8uXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3k9eF0gLSBUaGUgYW1vdW50IHRvIHNldCB0aGUgYHlgIHByb3BlcnR5IHRvLiBJZiBgdW5kZWZpbmVkYCBvciBgbnVsbGAgaXQgdXNlcyB0aGUgYHhgIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwWD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGB4YCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwWT0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGB5YCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR3JvdXAgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRYWTogZnVuY3Rpb24gKHgsIHksIHN0ZXBYLCBzdGVwWSlcclxuICAgIHtcclxuICAgICAgICBBY3Rpb25zLlNldFhZKHRoaXMuY2hpbGRyZW4uZW50cmllcywgeCwgeSwgc3RlcFgsIHN0ZXBZKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkcyB0aGUgZ2l2ZW4gdmFsdWUgdG8gdGhlIHggb2YgZWFjaCBncm91cCBtZW1iZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjaW5jWFxyXG4gICAgICogQHNpbmNlIDMuMjEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBhbW91bnQgdG8gYmUgYWRkZWQgdG8gdGhlIGB4YCBwcm9wZXJ0eS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGB2YWx1ZWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdyb3VwIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgaW5jWDogZnVuY3Rpb24gKHZhbHVlLCBzdGVwKVxyXG4gICAge1xyXG4gICAgICAgIEFjdGlvbnMuSW5jWCh0aGlzLmNoaWxkcmVuLmVudHJpZXMsIHZhbHVlLCBzdGVwKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkcyB0aGUgZ2l2ZW4gdmFsdWUgdG8gdGhlIHkgb2YgZWFjaCBncm91cCBtZW1iZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjaW5jWVxyXG4gICAgICogQHNpbmNlIDMuMjEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBhbW91bnQgdG8gYmUgYWRkZWQgdG8gdGhlIGB5YCBwcm9wZXJ0eS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGB2YWx1ZWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdyb3VwIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgaW5jWTogZnVuY3Rpb24gKHZhbHVlLCBzdGVwKVxyXG4gICAge1xyXG4gICAgICAgIEFjdGlvbnMuSW5jWSh0aGlzLmNoaWxkcmVuLmVudHJpZXMsIHZhbHVlLCBzdGVwKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkcyB0aGUgZ2l2ZW4gdmFsdWUgdG8gdGhlIHgsIHkgb2YgZWFjaCBncm91cCBtZW1iZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjaW5jWFlcclxuICAgICAqIEBzaW5jZSAzLjIxLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBhbW91bnQgdG8gYmUgYWRkZWQgdG8gdGhlIGB4YCBwcm9wZXJ0eS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeT14XSAtIFRoZSBhbW91bnQgdG8gYmUgYWRkZWQgdG8gdGhlIGB5YCBwcm9wZXJ0eS4gSWYgYHVuZGVmaW5lZGAgb3IgYG51bGxgIGl0IHVzZXMgdGhlIGB4YCB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcFg9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgeGAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcFk9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgeWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdyb3VwIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgaW5jWFk6IGZ1bmN0aW9uICh4LCB5LCBzdGVwWCwgc3RlcFkpXHJcbiAgICB7XHJcbiAgICAgICAgQWN0aW9ucy5JbmNYWSh0aGlzLmNoaWxkcmVuLmVudHJpZXMsIHgsIHksIHN0ZXBYLCBzdGVwWSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0ZXJhdGUgdGhyb3VnaCB0aGUgZ3JvdXAgbWVtYmVycyBjaGFuZ2luZyB0aGUgcG9zaXRpb24gb2YgZWFjaCBlbGVtZW50IHRvIGJlIHRoYXQgb2YgdGhlIGVsZW1lbnQgdGhhdCBjYW1lIGJlZm9yZVxyXG4gICAgICogaXQgaW4gdGhlIGFycmF5IChvciBhZnRlciBpdCBpZiBkaXJlY3Rpb24gPSAxKVxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgZmlyc3QgZ3JvdXAgbWVtYmVyIHBvc2l0aW9uIGlzIHNldCB0byB4L3kuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjc2hpZnRQb3NpdGlvblxyXG4gICAgICogQHNpbmNlIDMuMjEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggY29vcmRpbmF0ZSB0byBwbGFjZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgYXJyYXkgYXQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB5IGNvb3JkaW5hdGUgdG8gcGxhY2UgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGFycmF5IGF0LlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbZGlyZWN0aW9uPTBdIC0gVGhlIGl0ZXJhdGlvbiBkaXJlY3Rpb24uIDAgPSBmaXJzdCB0byBsYXN0IGFuZCAxID0gbGFzdCB0byBmaXJzdC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdyb3VwIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2hpZnRQb3NpdGlvbjogZnVuY3Rpb24gKHgsIHksIGRpcmVjdGlvbilcclxuICAgIHtcclxuICAgICAgICBBY3Rpb25zLlNoaWZ0UG9zaXRpb24odGhpcy5jaGlsZHJlbi5lbnRyaWVzLCB4LCB5LCBkaXJlY3Rpb24pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBhbmdsZSBvZiBlYWNoIGdyb3VwIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNhbmdsZVxyXG4gICAgICogQHNpbmNlIDMuMjEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBhbW91bnQgdG8gc2V0IHRoZSBhbmdsZSB0bywgaW4gZGVncmVlcy5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGB2YWx1ZWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdyb3VwIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgYW5nbGU6IGZ1bmN0aW9uICh2YWx1ZSwgc3RlcClcclxuICAgIHtcclxuICAgICAgICBBY3Rpb25zLkFuZ2xlKHRoaXMuY2hpbGRyZW4uZW50cmllcywgdmFsdWUsIHN0ZXApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSByb3RhdGlvbiBvZiBlYWNoIGdyb3VwIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNyb3RhdGVcclxuICAgICAqIEBzaW5jZSAzLjIxLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgYW1vdW50IHRvIHNldCB0aGUgcm90YXRpb24gdG8sIGluIHJhZGlhbnMuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHcm91cCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHJvdGF0ZTogZnVuY3Rpb24gKHZhbHVlLCBzdGVwKVxyXG4gICAge1xyXG4gICAgICAgIEFjdGlvbnMuUm90YXRlKHRoaXMuY2hpbGRyZW4uZW50cmllcywgdmFsdWUsIHN0ZXApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSb3RhdGVzIGVhY2ggZ3JvdXAgbWVtYmVyIGFyb3VuZCB0aGUgZ2l2ZW4gcG9pbnQgYnkgdGhlIGdpdmVuIGFuZ2xlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI3JvdGF0ZUFyb3VuZFxyXG4gICAgICogQHNpbmNlIDMuMjEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLk1hdGguVmVjdG9yMkxpa2V9IHBvaW50IC0gQW55IG9iamVjdCB3aXRoIHB1YmxpYyBgeGAgYW5kIGB5YCBwcm9wZXJ0aWVzLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGFuZ2xlIC0gVGhlIGFuZ2xlIHRvIHJvdGF0ZSBieSwgaW4gcmFkaWFucy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdyb3VwIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcm90YXRlQXJvdW5kOiBmdW5jdGlvbiAocG9pbnQsIGFuZ2xlKVxyXG4gICAge1xyXG4gICAgICAgIEFjdGlvbnMuUm90YXRlQXJvdW5kKHRoaXMuY2hpbGRyZW4uZW50cmllcywgcG9pbnQsIGFuZ2xlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUm90YXRlcyBlYWNoIGdyb3VwIG1lbWJlciBhcm91bmQgdGhlIGdpdmVuIHBvaW50IGJ5IHRoZSBnaXZlbiBhbmdsZSBhbmQgZGlzdGFuY2UuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjcm90YXRlQXJvdW5kRGlzdGFuY2VcclxuICAgICAqIEBzaW5jZSAzLjIxLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5NYXRoLlZlY3RvcjJMaWtlfSBwb2ludCAtIEFueSBvYmplY3Qgd2l0aCBwdWJsaWMgYHhgIGFuZCBgeWAgcHJvcGVydGllcy5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBhbmdsZSAtIFRoZSBhbmdsZSB0byByb3RhdGUgYnksIGluIHJhZGlhbnMuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGlzdGFuY2UgLSBUaGUgZGlzdGFuY2UgZnJvbSB0aGUgcG9pbnQgb2Ygcm90YXRpb24gaW4gcGl4ZWxzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR3JvdXAgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICByb3RhdGVBcm91bmREaXN0YW5jZTogZnVuY3Rpb24gKHBvaW50LCBhbmdsZSwgZGlzdGFuY2UpXHJcbiAgICB7XHJcbiAgICAgICAgQWN0aW9ucy5Sb3RhdGVBcm91bmREaXN0YW5jZSh0aGlzLmNoaWxkcmVuLmVudHJpZXMsIHBvaW50LCBhbmdsZSwgZGlzdGFuY2UpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBhbHBoYSBvZiBlYWNoIGdyb3VwIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNzZXRBbHBoYVxyXG4gICAgICogQHNpbmNlIDMuMjEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBhbW91bnQgdG8gc2V0IHRoZSBhbHBoYSB0by5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGB2YWx1ZWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdyb3VwIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0QWxwaGE6IGZ1bmN0aW9uICh2YWx1ZSwgc3RlcClcclxuICAgIHtcclxuICAgICAgICBBY3Rpb25zLlNldEFscGhhKHRoaXMuY2hpbGRyZW4uZW50cmllcywgdmFsdWUsIHN0ZXApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB0aW50IG9mIGVhY2ggZ3JvdXAgbWVtYmVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI3NldFRpbnRcclxuICAgICAqIEBzaW5jZSAzLjIxLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdG9wTGVmdCAtIFRoZSB0aW50IGJlaW5nIGFwcGxpZWQgdG8gdG9wLWxlZnQgY29ybmVyIG9mIGl0ZW0uIElmIG90aGVyIHBhcmFtZXRlcnMgYXJlIGdpdmVuIG5vIHZhbHVlLCB0aGlzIHRpbnQgd2lsbCBiZSBhcHBsaWVkIHRvIHdob2xlIGl0ZW0uXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3RvcFJpZ2h0XSAtIFRoZSB0aW50IHRvIGJlIGFwcGxpZWQgdG8gdG9wLXJpZ2h0IGNvcm5lciBvZiBpdGVtLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtib3R0b21MZWZ0XSAtIFRoZSB0aW50IHRvIGJlIGFwcGxpZWQgdG8gdGhlIGJvdHRvbS1sZWZ0IGNvcm5lciBvZiBpdGVtLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtib3R0b21SaWdodF0gLSBUaGUgdGludCB0byBiZSBhcHBsaWVkIHRvIHRoZSBib3R0b20tcmlnaHQgY29ybmVyIG9mIGl0ZW0uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHcm91cCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldFRpbnQ6IGZ1bmN0aW9uICh0b3BMZWZ0LCB0b3BSaWdodCwgYm90dG9tTGVmdCwgYm90dG9tUmlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgQWN0aW9ucy5TZXRUaW50KHRoaXMuY2hpbGRyZW4uZW50cmllcywgdG9wTGVmdCwgdG9wUmlnaHQsIGJvdHRvbUxlZnQsIGJvdHRvbVJpZ2h0KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgb3JpZ2luWCwgb3JpZ2luWSBvZiBlYWNoIGdyb3VwIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNzZXRPcmlnaW5cclxuICAgICAqIEBzaW5jZSAzLjIxLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gb3JpZ2luWCAtIFRoZSBhbW91bnQgdG8gc2V0IHRoZSBgb3JpZ2luWGAgcHJvcGVydHkgdG8uXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29yaWdpblldIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIGBvcmlnaW5ZYCBwcm9wZXJ0eSB0by4gSWYgYHVuZGVmaW5lZGAgb3IgYG51bGxgIGl0IHVzZXMgdGhlIGBvcmlnaW5YYCB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcFg9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgb3JpZ2luWGAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcFk9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgb3JpZ2luWWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdyb3VwIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0T3JpZ2luOiBmdW5jdGlvbiAob3JpZ2luWCwgb3JpZ2luWSwgc3RlcFgsIHN0ZXBZKVxyXG4gICAge1xyXG4gICAgICAgIEFjdGlvbnMuU2V0T3JpZ2luKHRoaXMuY2hpbGRyZW4uZW50cmllcywgb3JpZ2luWCwgb3JpZ2luWSwgc3RlcFgsIHN0ZXBZKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgc2NhbGVYIG9mIGVhY2ggZ3JvdXAgbWVtYmVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI3NjYWxlWFxyXG4gICAgICogQHNpbmNlIDMuMjEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBhbW91bnQgdG8gc2V0IHRoZSBwcm9wZXJ0eSB0by5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcD0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGB2YWx1ZWAgYW1vdW50LCBtdWx0aXBsaWVkIGJ5IHRoZSBpdGVyYXRpb24gY291bnRlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdyb3VwIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2NhbGVYOiBmdW5jdGlvbiAodmFsdWUsIHN0ZXApXHJcbiAgICB7XHJcbiAgICAgICAgQWN0aW9ucy5TY2FsZVgodGhpcy5jaGlsZHJlbi5lbnRyaWVzLCB2YWx1ZSwgc3RlcCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHNjYWxlWSBvZiBlYWNoIGdyb3VwIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNzY2FsZVlcclxuICAgICAqIEBzaW5jZSAzLjIxLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgYW1vdW50IHRvIHNldCB0aGUgcHJvcGVydHkgdG8uXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3N0ZXA9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgdmFsdWVgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHcm91cCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNjYWxlWTogZnVuY3Rpb24gKHZhbHVlLCBzdGVwKVxyXG4gICAge1xyXG4gICAgICAgIEFjdGlvbnMuU2NhbGVZKHRoaXMuY2hpbGRyZW4uZW50cmllcywgdmFsdWUsIHN0ZXApO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBzY2FsZVgsIHNjYWxlWSBvZiBlYWNoIGdyb3VwIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNzY2FsZVhZXHJcbiAgICAgKiBAc2luY2UgMy4yMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHNjYWxlWCAtIFRoZSBhbW91bnQgdG8gYmUgYWRkZWQgdG8gdGhlIGBzY2FsZVhgIHByb3BlcnR5LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzY2FsZVldIC0gVGhlIGFtb3VudCB0byBiZSBhZGRlZCB0byB0aGUgYHNjYWxlWWAgcHJvcGVydHkuIElmIGB1bmRlZmluZWRgIG9yIGBudWxsYCBpdCB1c2VzIHRoZSBgc2NhbGVYYCB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbc3RlcFg9MF0gLSBUaGlzIGlzIGFkZGVkIHRvIHRoZSBgc2NhbGVYYCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwWT0wXSAtIFRoaXMgaXMgYWRkZWQgdG8gdGhlIGBzY2FsZVlgIGFtb3VudCwgbXVsdGlwbGllZCBieSB0aGUgaXRlcmF0aW9uIGNvdW50ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHcm91cCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNjYWxlWFk6IGZ1bmN0aW9uIChzY2FsZVgsIHNjYWxlWSwgc3RlcFgsIHN0ZXBZKVxyXG4gICAge1xyXG4gICAgICAgIEFjdGlvbnMuU2NhbGVYWSh0aGlzLmNoaWxkcmVuLmVudHJpZXMsIHNjYWxlWCwgc2NhbGVZLCBzdGVwWCwgc3RlcFkpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBkZXB0aCBvZiBlYWNoIGdyb3VwIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNzZXREZXB0aFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIGFtb3VudCB0byBzZXQgdGhlIHByb3BlcnR5IHRvLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtzdGVwPTBdIC0gVGhpcyBpcyBhZGRlZCB0byB0aGUgYHZhbHVlYCBhbW91bnQsIG11bHRpcGxpZWQgYnkgdGhlIGl0ZXJhdGlvbiBjb3VudGVyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR3JvdXAgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXREZXB0aDogZnVuY3Rpb24gKHZhbHVlLCBzdGVwKVxyXG4gICAge1xyXG4gICAgICAgIEFjdGlvbnMuU2V0RGVwdGgodGhpcy5jaGlsZHJlbi5lbnRyaWVzLCB2YWx1ZSwgc3RlcCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGJsZW5kTW9kZSBvZiBlYWNoIGdyb3VwIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNzZXRCbGVuZE1vZGVcclxuICAgICAqIEBzaW5jZSAzLjIxLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgYW1vdW50IHRvIHNldCB0aGUgcHJvcGVydHkgdG8uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHcm91cCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldEJsZW5kTW9kZTogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIEFjdGlvbnMuU2V0QmxlbmRNb2RlKHRoaXMuY2hpbGRyZW4uZW50cmllcywgdmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXNzZXMgYWxsIGdyb3VwIG1lbWJlcnMgdG8gdGhlIElucHV0IE1hbmFnZXIgdG8gZW5hYmxlIHRoZW0gZm9yIGlucHV0IHdpdGggaWRlbnRpY2FsIGFyZWFzIGFuZCBjYWxsYmFja3MuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjc2V0SGl0QXJlYVxyXG4gICAgICogQHNpbmNlIDMuMjEuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Kn0gaGl0QXJlYSAtIEVpdGhlciBhbiBpbnB1dCBjb25maWd1cmF0aW9uIG9iamVjdCwgb3IgYSBnZW9tZXRyaWMgc2hhcGUgdGhhdCBkZWZpbmVzIHRoZSBoaXQgYXJlYSBmb3IgdGhlIEdhbWUgT2JqZWN0LiBJZiBub3Qgc3BlY2lmaWVkIGEgUmVjdGFuZ2xlIHdpbGwgYmUgdXNlZC5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLklucHV0LkhpdEFyZWFDYWxsYmFja30gaGl0QXJlYUNhbGxiYWNrIC0gQSBjYWxsYmFjayB0byBiZSBpbnZva2VkIHdoZW4gdGhlIEdhbWUgT2JqZWN0IGlzIGludGVyYWN0ZWQgd2l0aC4gSWYgeW91IHByb3ZpZGUgYSBzaGFwZSB5b3UgbXVzdCBhbHNvIHByb3ZpZGUgYSBjYWxsYmFjay5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdyb3VwIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0SGl0QXJlYTogZnVuY3Rpb24gKGhpdEFyZWEsIGhpdEFyZWFDYWxsYmFjaylcclxuICAgIHtcclxuICAgICAgICBBY3Rpb25zLlNldEhpdEFyZWEodGhpcy5jaGlsZHJlbi5lbnRyaWVzLCBoaXRBcmVhLCBoaXRBcmVhQ2FsbGJhY2spO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaHVmZmxlcyB0aGUgZ3JvdXAgbWVtYmVycyBpbiBwbGFjZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNzaHVmZmxlXHJcbiAgICAgKiBAc2luY2UgMy4yMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHcm91cCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNodWZmbGU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgQWN0aW9ucy5TaHVmZmxlKHRoaXMuY2hpbGRyZW4uZW50cmllcyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlYWN0aXZhdGVzIGEgbWVtYmVyIG9mIHRoaXMgZ3JvdXAuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAja2lsbFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIEEgbWVtYmVyIG9mIHRoaXMgZ3JvdXAuXHJcbiAgICAgKi9cclxuICAgIGtpbGw6IGZ1bmN0aW9uIChnYW1lT2JqZWN0KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLmNoaWxkcmVuLmNvbnRhaW5zKGdhbWVPYmplY3QpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZ2FtZU9iamVjdC5zZXRBY3RpdmUoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWFjdGl2YXRlcyBhbmQgaGlkZXMgYSBtZW1iZXIgb2YgdGhpcyBncm91cC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNraWxsQW5kSGlkZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIEEgbWVtYmVyIG9mIHRoaXMgZ3JvdXAuXHJcbiAgICAgKi9cclxuICAgIGtpbGxBbmRIaWRlOiBmdW5jdGlvbiAoZ2FtZU9iamVjdClcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5jaGlsZHJlbi5jb250YWlucyhnYW1lT2JqZWN0KSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGdhbWVPYmplY3Quc2V0QWN0aXZlKGZhbHNlKTtcclxuICAgICAgICAgICAgZ2FtZU9iamVjdC5zZXRWaXNpYmxlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdmlzaWJsZSBvZiBlYWNoIGdyb3VwIG1lbWJlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Hcm91cCNzZXRWaXNpYmxlXHJcbiAgICAgKiBAc2luY2UgMy4yMS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQgdGhlIHByb3BlcnR5IHRvLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbaW5kZXg9MF0gLSBBbiBvcHRpb25hbCBvZmZzZXQgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20gd2l0aGluIHRoZSBpdGVtcyBhcnJheS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2RpcmVjdGlvbj0xXSAtIFRoZSBkaXJlY3Rpb24gdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBhcnJheS4gMSBpcyBmcm9tIGJlZ2lubmluZyB0byBlbmQsIC0xIGZyb20gZW5kIHRvIGJlZ2lubmluZy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdyb3VwIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0VmlzaWJsZTogZnVuY3Rpb24gKHZhbHVlLCBpbmRleCwgZGlyZWN0aW9uKVxyXG4gICAge1xyXG4gICAgICAgIEFjdGlvbnMuU2V0VmlzaWJsZSh0aGlzLmNoaWxkcmVuLmVudHJpZXMsIHZhbHVlLCBpbmRleCwgZGlyZWN0aW9uKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVG9nZ2xlcyAoZmxpcHMpIHRoZSB2aXNpYmxlIHN0YXRlIG9mIGVhY2ggbWVtYmVyIG9mIHRoaXMgZ3JvdXAuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjdG9nZ2xlVmlzaWJsZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHcm91cCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHRvZ2dsZVZpc2libGU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgQWN0aW9ucy5Ub2dnbGVWaXNpYmxlKHRoaXMuY2hpbGRyZW4uZW50cmllcyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVtcHRpZXMgdGhpcyBncm91cCBhbmQgcmVtb3ZlcyBpdCBmcm9tIHRoZSBTY2VuZS5cclxuICAgICAqXHJcbiAgICAgKiBEb2VzIG5vdCBjYWxsIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXAjcmVtb3ZlQ2FsbGJhY2t9LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwI2Rlc3Ryb3lcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Rlc3Ryb3lDaGlsZHJlbj1mYWxzZV0gLSBBbHNvIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdCNkZXN0cm95fSBlYWNoIGdyb3VwIG1lbWJlci5cclxuICAgICAqL1xyXG4gICAgZGVzdHJveTogZnVuY3Rpb24gKGRlc3Ryb3lDaGlsZHJlbilcclxuICAgIHtcclxuICAgICAgICBpZiAoZGVzdHJveUNoaWxkcmVuID09PSB1bmRlZmluZWQpIHsgZGVzdHJveUNoaWxkcmVuID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgLy8gIFRoaXMgR2FtZSBPYmplY3QgaGFkIGFscmVhZHkgYmVlbiBkZXN0cm95ZWRcclxuICAgICAgICBpZiAoIXRoaXMuc2NlbmUgfHwgdGhpcy5pZ25vcmVEZXN0cm95KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jbGVhcihmYWxzZSwgZGVzdHJveUNoaWxkcmVuKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY2VuZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEdyb3VwO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBHYW1lT2JqZWN0Q3JlYXRvciA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3RDcmVhdG9yJyk7XHJcbnZhciBHcm91cCA9IHJlcXVpcmUoJy4vR3JvdXAnKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IEdyb3VwIEdhbWUgT2JqZWN0IGFuZCByZXR1cm5zIGl0LlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBHcm91cCBHYW1lIE9iamVjdCBoYXMgYmVlbiBidWlsdCBpbnRvIFBoYXNlci5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdENyZWF0b3IjZ3JvdXBcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLkdyb3VwLkdyb3VwQ29uZmlnfFBoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5Hcm91cC5Hcm91cENyZWF0ZUNvbmZpZ30gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRoaXMgR2FtZSBPYmplY3Qgd2lsbCB1c2UgdG8gY3JlYXRlIGl0c2VsZi5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdyb3VwfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RDcmVhdG9yLnJlZ2lzdGVyKCdncm91cCcsIGZ1bmN0aW9uIChjb25maWcpXHJcbntcclxuICAgIHJldHVybiBuZXcgR3JvdXAodGhpcy5zY2VuZSwgbnVsbCwgY29uZmlnKTtcclxufSk7XHJcblxyXG4vLyAgV2hlbiByZWdpc3RlcmluZyBhIGZhY3RvcnkgZnVuY3Rpb24gJ3RoaXMnIHJlZmVycyB0byB0aGUgR2FtZU9iamVjdENyZWF0b3IgY29udGV4dC5cclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR3JvdXAgPSByZXF1aXJlKCcuL0dyb3VwJyk7XHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBHcm91cCBHYW1lIE9iamVjdCBhbmQgYWRkcyBpdCB0byB0aGUgU2NlbmUuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIEdyb3VwIEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0RmFjdG9yeSNncm91cFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHsoUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RbXXxQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuR3JvdXAuR3JvdXBDb25maWd8UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLkdyb3VwLkdyb3VwQ29uZmlnW10pfSBbY2hpbGRyZW5dIC0gR2FtZSBPYmplY3RzIHRvIGFkZCB0byB0aGlzIEdyb3VwOyBvciB0aGUgYGNvbmZpZ2AgYXJndW1lbnQuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLkdyb3VwLkdyb3VwQ29uZmlnfFBoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5Hcm91cC5Hcm91cENyZWF0ZUNvbmZpZ30gW2NvbmZpZ10gLSBBIEdyb3VwIENvbmZpZ3VyYXRpb24gb2JqZWN0LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuR3JvdXB9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuR2FtZU9iamVjdEZhY3RvcnkucmVnaXN0ZXIoJ2dyb3VwJywgZnVuY3Rpb24gKGNoaWxkcmVuLCBjb25maWcpXHJcbntcclxuICAgIHJldHVybiB0aGlzLnVwZGF0ZUxpc3QuYWRkKG5ldyBHcm91cCh0aGlzLnNjZW5lLCBjaGlsZHJlbiwgY29uZmlnKSk7XHJcbn0pO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBDb21wb25lbnRzID0gcmVxdWlyZSgnLi4vY29tcG9uZW50cycpO1xyXG52YXIgR2FtZU9iamVjdCA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3QnKTtcclxudmFyIEltYWdlUmVuZGVyID0gcmVxdWlyZSgnLi9JbWFnZVJlbmRlcicpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQW4gSW1hZ2UgR2FtZSBPYmplY3QuXHJcbiAqXHJcbiAqIEFuIEltYWdlIGlzIGEgbGlnaHQtd2VpZ2h0IEdhbWUgT2JqZWN0IHVzZWZ1bCBmb3IgdGhlIGRpc3BsYXkgb2Ygc3RhdGljIGltYWdlcyBpbiB5b3VyIGdhbWUsXHJcbiAqIHN1Y2ggYXMgbG9nb3MsIGJhY2tncm91bmRzLCBzY2VuZXJ5IG9yIG90aGVyIG5vbi1hbmltYXRlZCBlbGVtZW50cy4gSW1hZ2VzIGNhbiBoYXZlIGlucHV0XHJcbiAqIGV2ZW50cyBhbmQgcGh5c2ljcyBib2RpZXMsIG9yIGJlIHR3ZWVuZWQsIHRpbnRlZCBvciBzY3JvbGxlZC4gVGhlIG1haW4gZGlmZmVyZW5jZSBiZXR3ZWVuIGFuXHJcbiAqIEltYWdlIGFuZCBhIFNwcml0ZSBpcyB0aGF0IHlvdSBjYW5ub3QgYW5pbWF0ZSBhbiBJbWFnZSBhcyB0aGV5IGRvIG5vdCBoYXZlIHRoZSBBbmltYXRpb24gY29tcG9uZW50LlxyXG4gKlxyXG4gKiBAY2xhc3MgSW1hZ2VcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFscGhhXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkJsZW5kTW9kZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5EZXB0aFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5GbGlwXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkdldEJvdW5kc1xyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5NYXNrXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLk9yaWdpblxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5QaXBlbGluZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TY3JvbGxGYWN0b3JcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuU2l6ZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UZXh0dXJlQ3JvcFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UaW50XHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5WaXNpYmxlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSB0byB3aGljaCB0aGlzIEdhbWUgT2JqZWN0IGJlbG9uZ3MuIEEgR2FtZSBPYmplY3QgY2FuIG9ubHkgYmVsb25nIHRvIG9uZSBTY2VuZSBhdCBhIHRpbWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gdGV4dHVyZSAtIFRoZSBrZXkgb2YgdGhlIFRleHR1cmUgdGhpcyBHYW1lIE9iamVjdCB3aWxsIHVzZSB0byByZW5kZXIgd2l0aCwgYXMgc3RvcmVkIGluIHRoZSBUZXh0dXJlIE1hbmFnZXIuXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW2ZyYW1lXSAtIEFuIG9wdGlvbmFsIGZyYW1lIGZyb20gdGhlIFRleHR1cmUgdGhpcyBHYW1lIE9iamVjdCBpcyByZW5kZXJpbmcgd2l0aC5cclxuICovXHJcbnZhciBJbWFnZSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogR2FtZU9iamVjdCxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBDb21wb25lbnRzLkFscGhhLFxyXG4gICAgICAgIENvbXBvbmVudHMuQmxlbmRNb2RlLFxyXG4gICAgICAgIENvbXBvbmVudHMuRGVwdGgsXHJcbiAgICAgICAgQ29tcG9uZW50cy5GbGlwLFxyXG4gICAgICAgIENvbXBvbmVudHMuR2V0Qm91bmRzLFxyXG4gICAgICAgIENvbXBvbmVudHMuTWFzayxcclxuICAgICAgICBDb21wb25lbnRzLk9yaWdpbixcclxuICAgICAgICBDb21wb25lbnRzLlBpcGVsaW5lLFxyXG4gICAgICAgIENvbXBvbmVudHMuU2Nyb2xsRmFjdG9yLFxyXG4gICAgICAgIENvbXBvbmVudHMuU2l6ZSxcclxuICAgICAgICBDb21wb25lbnRzLlRleHR1cmVDcm9wLFxyXG4gICAgICAgIENvbXBvbmVudHMuVGludCxcclxuICAgICAgICBDb21wb25lbnRzLlRyYW5zZm9ybSxcclxuICAgICAgICBDb21wb25lbnRzLlZpc2libGUsXHJcbiAgICAgICAgSW1hZ2VSZW5kZXJcclxuICAgIF0sXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBJbWFnZSAoc2NlbmUsIHgsIHksIHRleHR1cmUsIGZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIEdhbWVPYmplY3QuY2FsbCh0aGlzLCBzY2VuZSwgJ0ltYWdlJyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBpbnRlcm5hbCBjcm9wIGRhdGEgb2JqZWN0LCBhcyB1c2VkIGJ5IGBzZXRDcm9wYCBhbmQgcGFzc2VkIHRvIHRoZSBgRnJhbWUuc2V0Q3JvcFVWc2AgbWV0aG9kLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkltYWdlI19jcm9wXHJcbiAgICAgICAgICogQHR5cGUge29iamVjdH1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9jcm9wID0gdGhpcy5yZXNldENyb3BPYmplY3QoKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRUZXh0dXJlKHRleHR1cmUsIGZyYW1lKTtcclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIHRoaXMuc2V0U2l6ZVRvRnJhbWUoKTtcclxuICAgICAgICB0aGlzLnNldE9yaWdpbkZyb21GcmFtZSgpO1xyXG4gICAgICAgIHRoaXMuaW5pdFBpcGVsaW5lKCk7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gSW1hZ2U7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlcnMgdGhpcyBHYW1lIE9iamVjdCB3aXRoIHRoZSBDYW52YXMgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5JbWFnZSNyZW5kZXJDYW52YXNcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLkNhbnZhcy5DYW52YXNSZW5kZXJlcn0gcmVuZGVyZXIgLSBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBhY3RpdmUgQ2FudmFzIHJlbmRlcmVyLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5JbWFnZX0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIEltYWdlQ2FudmFzUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICByZW5kZXJlci5iYXRjaFNwcml0ZShzcmMsIHNyYy5mcmFtZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBJbWFnZUNhbnZhc1JlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBCdWlsZEdhbWVPYmplY3QgPSByZXF1aXJlKCcuLi9CdWlsZEdhbWVPYmplY3QnKTtcclxudmFyIEdhbWVPYmplY3RDcmVhdG9yID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdENyZWF0b3InKTtcclxudmFyIEdldEFkdmFuY2VkVmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0QWR2YW5jZWRWYWx1ZScpO1xyXG52YXIgSW1hZ2UgPSByZXF1aXJlKCcuL0ltYWdlJyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBJbWFnZSBHYW1lIE9iamVjdCBhbmQgcmV0dXJucyBpdC5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgSW1hZ2UgR2FtZSBPYmplY3QgaGFzIGJlZW4gYnVpbHQgaW50byBQaGFzZXIuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RDcmVhdG9yI2ltYWdlXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge29iamVjdH0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRoaXMgR2FtZSBPYmplY3Qgd2lsbCB1c2UgdG8gY3JlYXRlIGl0c2VsZi5cclxuICogQHBhcmFtIHtib29sZWFufSBbYWRkVG9TY2VuZV0gLSBBZGQgdGhpcyBHYW1lIE9iamVjdCB0byB0aGUgU2NlbmUgYWZ0ZXIgY3JlYXRpbmcgaXQ/IElmIHNldCB0aGlzIGFyZ3VtZW50IG92ZXJyaWRlcyB0aGUgYGFkZGAgcHJvcGVydHkgaW4gdGhlIGNvbmZpZyBvYmplY3QuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5JbWFnZX0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0Q3JlYXRvci5yZWdpc3RlcignaW1hZ2UnLCBmdW5jdGlvbiAoY29uZmlnLCBhZGRUb1NjZW5lKVxyXG57XHJcbiAgICBpZiAoY29uZmlnID09PSB1bmRlZmluZWQpIHsgY29uZmlnID0ge307IH1cclxuXHJcbiAgICB2YXIga2V5ID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdrZXknLCBudWxsKTtcclxuICAgIHZhciBmcmFtZSA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAnZnJhbWUnLCBudWxsKTtcclxuXHJcbiAgICB2YXIgaW1hZ2UgPSBuZXcgSW1hZ2UodGhpcy5zY2VuZSwgMCwgMCwga2V5LCBmcmFtZSk7XHJcblxyXG4gICAgaWYgKGFkZFRvU2NlbmUgIT09IHVuZGVmaW5lZClcclxuICAgIHtcclxuICAgICAgICBjb25maWcuYWRkID0gYWRkVG9TY2VuZTtcclxuICAgIH1cclxuXHJcbiAgICBCdWlsZEdhbWVPYmplY3QodGhpcy5zY2VuZSwgaW1hZ2UsIGNvbmZpZyk7XHJcblxyXG4gICAgcmV0dXJuIGltYWdlO1xyXG59KTtcclxuXHJcbi8vICBXaGVuIHJlZ2lzdGVyaW5nIGEgZmFjdG9yeSBmdW5jdGlvbiAndGhpcycgcmVmZXJzIHRvIHRoZSBHYW1lT2JqZWN0Q3JlYXRvciBjb250ZXh0LlxyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBJbWFnZSA9IHJlcXVpcmUoJy4vSW1hZ2UnKTtcclxudmFyIEdhbWVPYmplY3RGYWN0b3J5ID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdEZhY3RvcnknKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IEltYWdlIEdhbWUgT2JqZWN0IGFuZCBhZGRzIGl0IHRvIHRoZSBTY2VuZS5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgSW1hZ2UgR2FtZSBPYmplY3QgaGFzIGJlZW4gYnVpbHQgaW50byBQaGFzZXIuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5I2ltYWdlXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtzdHJpbmd9IHRleHR1cmUgLSBUaGUga2V5IG9mIHRoZSBUZXh0dXJlIHRoaXMgR2FtZSBPYmplY3Qgd2lsbCB1c2UgdG8gcmVuZGVyIHdpdGgsIGFzIHN0b3JlZCBpbiB0aGUgVGV4dHVyZSBNYW5hZ2VyLlxyXG4gKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcil9IFtmcmFtZV0gLSBBbiBvcHRpb25hbCBmcmFtZSBmcm9tIHRoZSBUZXh0dXJlIHRoaXMgR2FtZSBPYmplY3QgaXMgcmVuZGVyaW5nIHdpdGguXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5JbWFnZX0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0RmFjdG9yeS5yZWdpc3RlcignaW1hZ2UnLCBmdW5jdGlvbiAoeCwgeSwga2V5LCBmcmFtZSlcclxue1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUxpc3QuYWRkKG5ldyBJbWFnZSh0aGlzLnNjZW5lLCB4LCB5LCBrZXksIGZyYW1lKSk7XHJcbn0pO1xyXG5cclxuLy8gIFdoZW4gcmVnaXN0ZXJpbmcgYSBmYWN0b3J5IGZ1bmN0aW9uICd0aGlzJyByZWZlcnMgdG8gdGhlIEdhbWVPYmplY3RGYWN0b3J5IGNvbnRleHQuXHJcbi8vXHJcbi8vICBUaGVyZSBhcmUgc2V2ZXJhbCBwcm9wZXJ0aWVzIGF2YWlsYWJsZSB0byB1c2U6XHJcbi8vXHJcbi8vICB0aGlzLnNjZW5lIC0gYSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lIHRoYXQgb3ducyB0aGUgR2FtZU9iamVjdEZhY3RvcnlcclxuLy8gIHRoaXMuZGlzcGxheUxpc3QgLSBhIHJlZmVyZW5jZSB0byB0aGUgRGlzcGxheSBMaXN0IHRoZSBTY2VuZSBvd25zXHJcbi8vICB0aGlzLnVwZGF0ZUxpc3QgLSBhIHJlZmVyZW5jZSB0byB0aGUgVXBkYXRlIExpc3QgdGhlIFNjZW5lIG93bnNcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuLi8uLi91dGlscy9OT09QJyk7XHJcbnZhciByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuLi8uLi91dGlscy9OT09QJyk7XHJcblxyXG5pZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4vSW1hZ2VXZWJHTFJlbmRlcmVyJyk7XHJcbn1cclxuXHJcbmlmICh0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL0ltYWdlQ2FudmFzUmVuZGVyZXInKTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgcmVuZGVyV2ViR0w6IHJlbmRlcldlYkdMLFxyXG4gICAgcmVuZGVyQ2FudmFzOiByZW5kZXJDYW52YXNcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlcnMgdGhpcyBHYW1lIE9iamVjdCB3aXRoIHRoZSBXZWJHTCBSZW5kZXJlciB0byB0aGUgZ2l2ZW4gQ2FtZXJhLlxyXG4gKiBUaGUgb2JqZWN0IHdpbGwgbm90IHJlbmRlciBpZiBhbnkgb2YgaXRzIHJlbmRlckZsYWdzIGFyZSBzZXQgb3IgaXQgaXMgYmVpbmcgYWN0aXZlbHkgZmlsdGVyZWQgb3V0IGJ5IHRoZSBDYW1lcmEuXHJcbiAqIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBJdCBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gb2YgdGhlIFJlbmRlciBtb2R1bGUuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkltYWdlI3JlbmRlcldlYkdMXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBXZWJHTCByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuSW1hZ2V9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICovXHJcbnZhciBJbWFnZVdlYkdMUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB0aGlzLnBpcGVsaW5lLmJhdGNoU3ByaXRlKHNyYywgY2FtZXJhLCBwYXJlbnRNYXRyaXgpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBJbWFnZVdlYkdMUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBuYW1lc3BhY2UgUGhhc2VyLkdhbWVPYmplY3RzXHJcbiAqL1xyXG5cclxudmFyIEdhbWVPYmplY3RzID0ge1xyXG5cclxuICAgIEV2ZW50czogcmVxdWlyZSgnLi9ldmVudHMnKSxcclxuXHJcbiAgICBEaXNwbGF5TGlzdDogcmVxdWlyZSgnLi9EaXNwbGF5TGlzdCcpLFxyXG4gICAgR2FtZU9iamVjdENyZWF0b3I6IHJlcXVpcmUoJy4vR2FtZU9iamVjdENyZWF0b3InKSxcclxuICAgIEdhbWVPYmplY3RGYWN0b3J5OiByZXF1aXJlKCcuL0dhbWVPYmplY3RGYWN0b3J5JyksXHJcbiAgICBVcGRhdGVMaXN0OiByZXF1aXJlKCcuL1VwZGF0ZUxpc3QnKSxcclxuXHJcbiAgICBDb21wb25lbnRzOiByZXF1aXJlKCcuL2NvbXBvbmVudHMnKSxcclxuXHJcbiAgICBCdWlsZEdhbWVPYmplY3Q6IHJlcXVpcmUoJy4vQnVpbGRHYW1lT2JqZWN0JyksXHJcbiAgICBCdWlsZEdhbWVPYmplY3RBbmltYXRpb246IHJlcXVpcmUoJy4vQnVpbGRHYW1lT2JqZWN0QW5pbWF0aW9uJyksXHJcbiAgICBHYW1lT2JqZWN0OiByZXF1aXJlKCcuL0dhbWVPYmplY3QnKSxcclxuICAgIEJpdG1hcFRleHQ6IHJlcXVpcmUoJy4vYml0bWFwdGV4dC9zdGF0aWMvQml0bWFwVGV4dCcpLFxyXG4gICAgQmxpdHRlcjogcmVxdWlyZSgnLi9ibGl0dGVyL0JsaXR0ZXInKSxcclxuICAgIENvbnRhaW5lcjogcmVxdWlyZSgnLi9jb250YWluZXIvQ29udGFpbmVyJyksXHJcbiAgICBET01FbGVtZW50OiByZXF1aXJlKCcuL2RvbWVsZW1lbnQvRE9NRWxlbWVudCcpLFxyXG4gICAgRHluYW1pY0JpdG1hcFRleHQ6IHJlcXVpcmUoJy4vYml0bWFwdGV4dC9keW5hbWljL0R5bmFtaWNCaXRtYXBUZXh0JyksXHJcbiAgICBFeHRlcm46IHJlcXVpcmUoJy4vZXh0ZXJuL0V4dGVybi5qcycpLFxyXG4gICAgR3JhcGhpY3M6IHJlcXVpcmUoJy4vZ3JhcGhpY3MvR3JhcGhpY3MuanMnKSxcclxuICAgIEdyb3VwOiByZXF1aXJlKCcuL2dyb3VwL0dyb3VwJyksXHJcbiAgICBJbWFnZTogcmVxdWlyZSgnLi9pbWFnZS9JbWFnZScpLFxyXG4gICAgUGFydGljbGVzOiByZXF1aXJlKCcuL3BhcnRpY2xlcycpLFxyXG4gICAgUGF0aEZvbGxvd2VyOiByZXF1aXJlKCcuL3BhdGhmb2xsb3dlci9QYXRoRm9sbG93ZXInKSxcclxuICAgIFJlbmRlclRleHR1cmU6IHJlcXVpcmUoJy4vcmVuZGVydGV4dHVyZS9SZW5kZXJUZXh0dXJlJyksXHJcbiAgICBSZXRyb0ZvbnQ6IHJlcXVpcmUoJy4vYml0bWFwdGV4dC9SZXRyb0ZvbnQnKSxcclxuICAgIFJvcGU6IHJlcXVpcmUoJy4vcm9wZS9Sb3BlJyksXHJcbiAgICBTcHJpdGU6IHJlcXVpcmUoJy4vc3ByaXRlL1Nwcml0ZScpLFxyXG4gICAgVGV4dDogcmVxdWlyZSgnLi90ZXh0L3N0YXRpYy9UZXh0JyksXHJcbiAgICBUaWxlU3ByaXRlOiByZXF1aXJlKCcuL3RpbGVzcHJpdGUvVGlsZVNwcml0ZScpLFxyXG4gICAgWm9uZTogcmVxdWlyZSgnLi96b25lL1pvbmUnKSxcclxuICAgIFZpZGVvOiByZXF1aXJlKCcuL3ZpZGVvL1ZpZGVvJyksXHJcblxyXG4gICAgLy8gIFNoYXBlc1xyXG5cclxuICAgIFNoYXBlOiByZXF1aXJlKCcuL3NoYXBlL1NoYXBlJyksXHJcbiAgICBBcmM6IHJlcXVpcmUoJy4vc2hhcGUvYXJjL0FyYycpLFxyXG4gICAgQ3VydmU6IHJlcXVpcmUoJy4vc2hhcGUvY3VydmUvQ3VydmUnKSxcclxuICAgIEVsbGlwc2U6IHJlcXVpcmUoJy4vc2hhcGUvZWxsaXBzZS9FbGxpcHNlJyksXHJcbiAgICBHcmlkOiByZXF1aXJlKCcuL3NoYXBlL2dyaWQvR3JpZCcpLFxyXG4gICAgSXNvQm94OiByZXF1aXJlKCcuL3NoYXBlL2lzb2JveC9Jc29Cb3gnKSxcclxuICAgIElzb1RyaWFuZ2xlOiByZXF1aXJlKCcuL3NoYXBlL2lzb3RyaWFuZ2xlL0lzb1RyaWFuZ2xlJyksXHJcbiAgICBMaW5lOiByZXF1aXJlKCcuL3NoYXBlL2xpbmUvTGluZScpLFxyXG4gICAgUG9seWdvbjogcmVxdWlyZSgnLi9zaGFwZS9wb2x5Z29uL1BvbHlnb24nKSxcclxuICAgIFJlY3RhbmdsZTogcmVxdWlyZSgnLi9zaGFwZS9yZWN0YW5nbGUvUmVjdGFuZ2xlJyksXHJcbiAgICBTdGFyOiByZXF1aXJlKCcuL3NoYXBlL3N0YXIvU3RhcicpLFxyXG4gICAgVHJpYW5nbGU6IHJlcXVpcmUoJy4vc2hhcGUvdHJpYW5nbGUvVHJpYW5nbGUnKSxcclxuXHJcbiAgICAvLyAgR2FtZSBPYmplY3QgRmFjdG9yaWVzXHJcblxyXG4gICAgRmFjdG9yaWVzOiB7XHJcbiAgICAgICAgQmxpdHRlcjogcmVxdWlyZSgnLi9ibGl0dGVyL0JsaXR0ZXJGYWN0b3J5JyksXHJcbiAgICAgICAgQ29udGFpbmVyOiByZXF1aXJlKCcuL2NvbnRhaW5lci9Db250YWluZXJGYWN0b3J5JyksXHJcbiAgICAgICAgRE9NRWxlbWVudDogcmVxdWlyZSgnLi9kb21lbGVtZW50L0RPTUVsZW1lbnRGYWN0b3J5JyksXHJcbiAgICAgICAgRHluYW1pY0JpdG1hcFRleHQ6IHJlcXVpcmUoJy4vYml0bWFwdGV4dC9keW5hbWljL0R5bmFtaWNCaXRtYXBUZXh0RmFjdG9yeScpLFxyXG4gICAgICAgIEV4dGVybjogcmVxdWlyZSgnLi9leHRlcm4vRXh0ZXJuRmFjdG9yeScpLFxyXG4gICAgICAgIEdyYXBoaWNzOiByZXF1aXJlKCcuL2dyYXBoaWNzL0dyYXBoaWNzRmFjdG9yeScpLFxyXG4gICAgICAgIEdyb3VwOiByZXF1aXJlKCcuL2dyb3VwL0dyb3VwRmFjdG9yeScpLFxyXG4gICAgICAgIEltYWdlOiByZXF1aXJlKCcuL2ltYWdlL0ltYWdlRmFjdG9yeScpLFxyXG4gICAgICAgIFBhcnRpY2xlczogcmVxdWlyZSgnLi9wYXJ0aWNsZXMvUGFydGljbGVNYW5hZ2VyRmFjdG9yeScpLFxyXG4gICAgICAgIFBhdGhGb2xsb3dlcjogcmVxdWlyZSgnLi9wYXRoZm9sbG93ZXIvUGF0aEZvbGxvd2VyRmFjdG9yeScpLFxyXG4gICAgICAgIFJlbmRlclRleHR1cmU6IHJlcXVpcmUoJy4vcmVuZGVydGV4dHVyZS9SZW5kZXJUZXh0dXJlRmFjdG9yeScpLFxyXG4gICAgICAgIFJvcGU6IHJlcXVpcmUoJy4vcm9wZS9Sb3BlRmFjdG9yeScpLFxyXG4gICAgICAgIFNwcml0ZTogcmVxdWlyZSgnLi9zcHJpdGUvU3ByaXRlRmFjdG9yeScpLFxyXG4gICAgICAgIFN0YXRpY0JpdG1hcFRleHQ6IHJlcXVpcmUoJy4vYml0bWFwdGV4dC9zdGF0aWMvQml0bWFwVGV4dEZhY3RvcnknKSxcclxuICAgICAgICBUZXh0OiByZXF1aXJlKCcuL3RleHQvc3RhdGljL1RleHRGYWN0b3J5JyksXHJcbiAgICAgICAgVGlsZVNwcml0ZTogcmVxdWlyZSgnLi90aWxlc3ByaXRlL1RpbGVTcHJpdGVGYWN0b3J5JyksXHJcbiAgICAgICAgWm9uZTogcmVxdWlyZSgnLi96b25lL1pvbmVGYWN0b3J5JyksXHJcbiAgICAgICAgVmlkZW86IHJlcXVpcmUoJy4vdmlkZW8vVmlkZW9GYWN0b3J5JyksXHJcblxyXG4gICAgICAgIC8vICBTaGFwZXNcclxuICAgICAgICBBcmM6IHJlcXVpcmUoJy4vc2hhcGUvYXJjL0FyY0ZhY3RvcnknKSxcclxuICAgICAgICBDdXJ2ZTogcmVxdWlyZSgnLi9zaGFwZS9jdXJ2ZS9DdXJ2ZUZhY3RvcnknKSxcclxuICAgICAgICBFbGxpcHNlOiByZXF1aXJlKCcuL3NoYXBlL2VsbGlwc2UvRWxsaXBzZUZhY3RvcnknKSxcclxuICAgICAgICBHcmlkOiByZXF1aXJlKCcuL3NoYXBlL2dyaWQvR3JpZEZhY3RvcnknKSxcclxuICAgICAgICBJc29Cb3g6IHJlcXVpcmUoJy4vc2hhcGUvaXNvYm94L0lzb0JveEZhY3RvcnknKSxcclxuICAgICAgICBJc29UcmlhbmdsZTogcmVxdWlyZSgnLi9zaGFwZS9pc290cmlhbmdsZS9Jc29UcmlhbmdsZUZhY3RvcnknKSxcclxuICAgICAgICBMaW5lOiByZXF1aXJlKCcuL3NoYXBlL2xpbmUvTGluZUZhY3RvcnknKSxcclxuICAgICAgICBQb2x5Z29uOiByZXF1aXJlKCcuL3NoYXBlL3BvbHlnb24vUG9seWdvbkZhY3RvcnknKSxcclxuICAgICAgICBSZWN0YW5nbGU6IHJlcXVpcmUoJy4vc2hhcGUvcmVjdGFuZ2xlL1JlY3RhbmdsZUZhY3RvcnknKSxcclxuICAgICAgICBTdGFyOiByZXF1aXJlKCcuL3NoYXBlL3N0YXIvU3RhckZhY3RvcnknKSxcclxuICAgICAgICBUcmlhbmdsZTogcmVxdWlyZSgnLi9zaGFwZS90cmlhbmdsZS9UcmlhbmdsZUZhY3RvcnknKVxyXG4gICAgfSxcclxuXHJcbiAgICBDcmVhdG9yczoge1xyXG4gICAgICAgIEJsaXR0ZXI6IHJlcXVpcmUoJy4vYmxpdHRlci9CbGl0dGVyQ3JlYXRvcicpLFxyXG4gICAgICAgIENvbnRhaW5lcjogcmVxdWlyZSgnLi9jb250YWluZXIvQ29udGFpbmVyQ3JlYXRvcicpLFxyXG4gICAgICAgIER5bmFtaWNCaXRtYXBUZXh0OiByZXF1aXJlKCcuL2JpdG1hcHRleHQvZHluYW1pYy9EeW5hbWljQml0bWFwVGV4dENyZWF0b3InKSxcclxuICAgICAgICBHcmFwaGljczogcmVxdWlyZSgnLi9ncmFwaGljcy9HcmFwaGljc0NyZWF0b3InKSxcclxuICAgICAgICBHcm91cDogcmVxdWlyZSgnLi9ncm91cC9Hcm91cENyZWF0b3InKSxcclxuICAgICAgICBJbWFnZTogcmVxdWlyZSgnLi9pbWFnZS9JbWFnZUNyZWF0b3InKSxcclxuICAgICAgICBQYXJ0aWNsZXM6IHJlcXVpcmUoJy4vcGFydGljbGVzL1BhcnRpY2xlTWFuYWdlckNyZWF0b3InKSxcclxuICAgICAgICBSZW5kZXJUZXh0dXJlOiByZXF1aXJlKCcuL3JlbmRlcnRleHR1cmUvUmVuZGVyVGV4dHVyZUNyZWF0b3InKSxcclxuICAgICAgICBSb3BlOiByZXF1aXJlKCcuL3JvcGUvUm9wZUNyZWF0b3InKSxcclxuICAgICAgICBTcHJpdGU6IHJlcXVpcmUoJy4vc3ByaXRlL1Nwcml0ZUNyZWF0b3InKSxcclxuICAgICAgICBTdGF0aWNCaXRtYXBUZXh0OiByZXF1aXJlKCcuL2JpdG1hcHRleHQvc3RhdGljL0JpdG1hcFRleHRDcmVhdG9yJyksXHJcbiAgICAgICAgVGV4dDogcmVxdWlyZSgnLi90ZXh0L3N0YXRpYy9UZXh0Q3JlYXRvcicpLFxyXG4gICAgICAgIFRpbGVTcHJpdGU6IHJlcXVpcmUoJy4vdGlsZXNwcml0ZS9UaWxlU3ByaXRlQ3JlYXRvcicpLFxyXG4gICAgICAgIFpvbmU6IHJlcXVpcmUoJy4vem9uZS9ab25lQ3JlYXRvcicpLFxyXG4gICAgICAgIFZpZGVvOiByZXF1aXJlKCcuL3ZpZGVvL1ZpZGVvQ3JlYXRvcicpXHJcbiAgICB9XHJcblxyXG59O1xyXG5cclxuaWYgKHR5cGVvZiBXRUJHTF9SRU5ERVJFUilcclxue1xyXG4gICAgLy8gIFdlYkdMIG9ubHkgR2FtZSBPYmplY3RzXHJcbiAgICBHYW1lT2JqZWN0cy5NZXNoID0gcmVxdWlyZSgnLi9tZXNoL01lc2gnKTtcclxuICAgIEdhbWVPYmplY3RzLlF1YWQgPSByZXF1aXJlKCcuL3F1YWQvUXVhZCcpO1xyXG4gICAgR2FtZU9iamVjdHMuU2hhZGVyID0gcmVxdWlyZSgnLi9zaGFkZXIvU2hhZGVyJyk7XHJcblxyXG4gICAgR2FtZU9iamVjdHMuRmFjdG9yaWVzLk1lc2ggPSByZXF1aXJlKCcuL21lc2gvTWVzaEZhY3RvcnknKTtcclxuICAgIEdhbWVPYmplY3RzLkZhY3Rvcmllcy5RdWFkID0gcmVxdWlyZSgnLi9xdWFkL1F1YWRGYWN0b3J5Jyk7XHJcbiAgICBHYW1lT2JqZWN0cy5GYWN0b3JpZXMuU2hhZGVyID0gcmVxdWlyZSgnLi9zaGFkZXIvU2hhZGVyRmFjdG9yeScpO1xyXG5cclxuICAgIEdhbWVPYmplY3RzLkNyZWF0b3JzLk1lc2ggPSByZXF1aXJlKCcuL21lc2gvTWVzaENyZWF0b3InKTtcclxuICAgIEdhbWVPYmplY3RzLkNyZWF0b3JzLlF1YWQgPSByZXF1aXJlKCcuL3F1YWQvUXVhZENyZWF0b3InKTtcclxuICAgIEdhbWVPYmplY3RzLkNyZWF0b3JzLlNoYWRlciA9IHJlcXVpcmUoJy4vc2hhZGVyL1NoYWRlckNyZWF0b3InKTtcclxuXHJcbiAgICBHYW1lT2JqZWN0cy5MaWdodCA9IHJlcXVpcmUoJy4vbGlnaHRzL0xpZ2h0Jyk7XHJcblxyXG4gICAgcmVxdWlyZSgnLi9saWdodHMvTGlnaHRzTWFuYWdlcicpO1xyXG4gICAgcmVxdWlyZSgnLi9saWdodHMvTGlnaHRzUGx1Z2luJyk7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0gR2FtZU9iamVjdHM7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIFV0aWxzID0gcmVxdWlyZSgnLi4vLi4vcmVuZGVyZXIvd2ViZ2wvVXRpbHMnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgMkQgcG9pbnQgbGlnaHQuXHJcbiAqXHJcbiAqIFRoZXNlIGFyZSB0eXBpY2FsbHkgY3JlYXRlZCBieSBhIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlcn0sIGF2YWlsYWJsZSBmcm9tIHdpdGhpbiBhIHNjZW5lIHZpYSBgdGhpcy5saWdodHNgLlxyXG4gKlxyXG4gKiBBbnkgR2FtZSBPYmplY3RzIHVzaW5nIHRoZSBMaWdodDJEIHBpcGVsaW5lIHdpbGwgdGhlbiBiZSBhZmZlY3RlZCBieSB0aGVzZSBMaWdodHMuXHJcbiAqXHJcbiAqIFRoZXkgY2FuIGFsc28gc2ltcGx5IGJlIHVzZWQgdG8gcmVwcmVzZW50IGEgcG9pbnQgbGlnaHQgZm9yIHlvdXIgb3duIHB1cnBvc2VzLlxyXG4gKlxyXG4gKiBAY2xhc3MgTGlnaHRcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIGxpZ2h0LlxyXG4gKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgbGlnaHQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSByYWRpdXMgLSBUaGUgcmFkaXVzIG9mIHRoZSBsaWdodC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHIgLSBUaGUgcmVkIGNvbG9yIG9mIHRoZSBsaWdodC4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBnIC0gVGhlIGdyZWVuIGNvbG9yIG9mIHRoZSBsaWdodC4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBiIC0gVGhlIGJsdWUgY29sb3Igb2YgdGhlIGxpZ2h0LiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMS5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVuc2l0eSAtIFRoZSBpbnRlbnNpdHkgb2YgdGhlIGxpZ2h0LlxyXG4gKi9cclxudmFyIExpZ2h0ID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIExpZ2h0ICh4LCB5LCByYWRpdXMsIHIsIGcsIGIsIGludGVuc2l0eSlcclxuICAgIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgbGlnaHQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHQjeFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy54ID0geDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBsaWdodC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodCN5XHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnkgPSB5O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgcmFkaXVzIG9mIHRoZSBsaWdodC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodCNyYWRpdXNcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucmFkaXVzID0gcmFkaXVzO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgcmVkIGNvbG9yIG9mIHRoZSBsaWdodC4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHQjclxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yID0gcjtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGdyZWVuIGNvbG9yIG9mIHRoZSBsaWdodC4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHQjZ1xyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5nID0gZztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGJsdWUgY29sb3Igb2YgdGhlIGxpZ2h0LiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodCNiXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmIgPSBiO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaW50ZW5zaXR5IG9mIHRoZSBsaWdodC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodCNpbnRlbnNpdHlcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuaW50ZW5zaXR5ID0gaW50ZW5zaXR5O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaG9yaXpvbnRhbCBzY3JvbGwgZmFjdG9yIG9mIHRoZSBsaWdodC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodCNzY3JvbGxGYWN0b3JYXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjcm9sbEZhY3RvclggPSAxLjA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB2ZXJ0aWNhbCBzY3JvbGwgZmFjdG9yIG9mIHRoZSBsaWdodC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodCNzY3JvbGxGYWN0b3JZXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjcm9sbEZhY3RvclkgPSAxLjA7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBsaWdodC5cclxuICAgICAqXHJcbiAgICAgKiBTZXRzIGJvdGggaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgc2Nyb2xsIGZhY3RvciB0byAxLiBVc2Uge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodCNzZXRTY3JvbGxGYWN0b3J9IHRvIHNldFxyXG4gICAgICogdGhlIHNjcm9sbCBmYWN0b3IuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHQjc2V0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBsaWdodC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBsaWdodC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByYWRpdXMgLSBUaGUgcmFkaXVzIG9mIHRoZSBsaWdodC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByIC0gVGhlIHJlZCBjb2xvci4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZyAtIFRoZSBncmVlbiBjb2xvci4gQSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYiAtIFRoZSBibHVlIGNvbG9yLiBBIHZhbHVlIGJldHdlZW4gMCBhbmQgMS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlbnNpdHkgLSBUaGUgaW50ZW5zaXR5IG9mIHRoZSBsaWdodC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIExpZ2h0IG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0OiBmdW5jdGlvbiAoeCwgeSwgcmFkaXVzLCByLCBnLCBiLCBpbnRlbnNpdHkpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy54ID0geDtcclxuICAgICAgICB0aGlzLnkgPSB5O1xyXG5cclxuICAgICAgICB0aGlzLnJhZGl1cyA9IHJhZGl1cztcclxuXHJcbiAgICAgICAgdGhpcy5yID0gcjtcclxuICAgICAgICB0aGlzLmcgPSBnO1xyXG4gICAgICAgIHRoaXMuYiA9IGI7XHJcblxyXG4gICAgICAgIHRoaXMuaW50ZW5zaXR5ID0gaW50ZW5zaXR5O1xyXG5cclxuICAgICAgICB0aGlzLnNjcm9sbEZhY3RvclggPSAxO1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsRmFjdG9yWSA9IDE7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgc2Nyb2xsIGZhY3RvciBvZiB0aGUgbGlnaHQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHQjc2V0U2Nyb2xsRmFjdG9yXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBob3Jpem9udGFsIHNjcm9sbCBmYWN0b3Igb2YgdGhlIGxpZ2h0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgc2Nyb2xsIGZhY3RvciBvZiB0aGUgbGlnaHQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBMaWdodCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldFNjcm9sbEZhY3RvcjogZnVuY3Rpb24gKHgsIHkpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZCkgeyB4ID0gMTsgfVxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IHg7IH1cclxuXHJcbiAgICAgICAgdGhpcy5zY3JvbGxGYWN0b3JYID0geDtcclxuICAgICAgICB0aGlzLnNjcm9sbEZhY3RvclkgPSB5O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGNvbG9yIG9mIHRoZSBsaWdodCBmcm9tIGEgc2luZ2xlIGludGVnZXIgUkdCIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkxpZ2h0I3NldENvbG9yXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmdiIC0gVGhlIGludGVnZXIgUkdCIGNvbG9yIG9mIHRoZSBsaWdodC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIExpZ2h0IG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0Q29sb3I6IGZ1bmN0aW9uIChyZ2IpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGNvbG9yID0gVXRpbHMuZ2V0RmxvYXRzRnJvbVVpbnRSR0IocmdiKTtcclxuXHJcbiAgICAgICAgdGhpcy5yID0gY29sb3JbMF07XHJcbiAgICAgICAgdGhpcy5nID0gY29sb3JbMV07XHJcbiAgICAgICAgdGhpcy5iID0gY29sb3JbMl07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgaW50ZW5zaXR5IG9mIHRoZSBsaWdodC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodCNzZXRJbnRlbnNpdHlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlbnNpdHkgLSBUaGUgaW50ZW5zaXR5IG9mIHRoZSBsaWdodC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIExpZ2h0IG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0SW50ZW5zaXR5OiBmdW5jdGlvbiAoaW50ZW5zaXR5KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuaW50ZW5zaXR5ID0gaW50ZW5zaXR5O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBsaWdodC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodCNzZXRQb3NpdGlvblxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgbGlnaHQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgbGlnaHQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBMaWdodCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldFBvc2l0aW9uOiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnggPSB4O1xyXG4gICAgICAgIHRoaXMueSA9IHk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgcmFkaXVzIG9mIHRoZSBsaWdodC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodCNzZXRSYWRpdXNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByYWRpdXMgLSBUaGUgcmFkaXVzIG9mIHRoZSBsaWdodC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIExpZ2h0IG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0UmFkaXVzOiBmdW5jdGlvbiAocmFkaXVzKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMucmFkaXVzID0gcmFkaXVzO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBMaWdodDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgTGlnaHQgPSByZXF1aXJlKCcuL0xpZ2h0Jyk7XHJcbnZhciBVdGlscyA9IHJlcXVpcmUoJy4uLy4uL3JlbmRlcmVyL3dlYmdsL1V0aWxzJyk7XHJcblxyXG4vKipcclxuICogQGNhbGxiYWNrIExpZ2h0Rm9yRWFjaFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5MaWdodH0gbGlnaHQgLSBUaGUgTGlnaHQuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogTWFuYWdlcyBMaWdodHMgZm9yIGEgU2NlbmUuXHJcbiAqXHJcbiAqIEFmZmVjdHMgdGhlIHJlbmRlcmluZyBvZiBHYW1lIE9iamVjdHMgdXNpbmcgdGhlIGBMaWdodDJEYCBwaXBlbGluZS5cclxuICpcclxuICogQGNsYXNzIExpZ2h0c01hbmFnZXJcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqL1xyXG52YXIgTGlnaHRzTWFuYWdlciA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBMaWdodHNNYW5hZ2VyICgpXHJcbiAgICB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHBvb2wgb2YgTGlnaHRzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogVXNlZCB0byByZWN5Y2xlIHJlbW92ZWQgTGlnaHRzIGZvciBhIG1vcmUgZWZmaWNpZW50IHVzZSBvZiBtZW1vcnkuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlciNsaWdodFBvb2xcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLkxpZ2h0W119XHJcbiAgICAgICAgICogQGRlZmF1bHQgW11cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmxpZ2h0UG9vbCA9IFtdO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgTGlnaHRzIGluIHRoZSBTY2VuZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodHNNYW5hZ2VyI2xpZ2h0c1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRbXX1cclxuICAgICAgICAgKiBAZGVmYXVsdCBbXVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubGlnaHRzID0gW107XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIExpZ2h0cyB0aGF0IGhhdmUgYmVlbiBjdWxsZWQgZnJvbSBhIENhbWVyYSdzIHZpZXdwb3J0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogTGlnaHRzIGluIHRoaXMgbGlzdCB3aWxsIG5vdCBiZSByZW5kZXJlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodHNNYW5hZ2VyI2N1bGxlZExpZ2h0c1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRbXX1cclxuICAgICAgICAgKiBAZGVmYXVsdCBbXVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY3VsbGVkTGlnaHRzID0gW107XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBhbWJpZW50IGNvbG9yLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkxpZ2h0c01hbmFnZXIjYW1iaWVudENvbG9yXHJcbiAgICAgICAgICogQHR5cGUge3sgcjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlciB9fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYW1iaWVudENvbG9yID0geyByOiAwLjEsIGc6IDAuMSwgYjogMC4xIH07XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFdoZXRoZXIgdGhlIExpZ2h0cyBNYW5hZ2VyIGlzIGVuYWJsZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlciNhY3RpdmVcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBsaWdodHMgdGhhdCBhIHNpbmdsZSBDYW1lcmEgYW5kIHRoZSBsaWdodHMgc2hhZGVyIGNhbiBwcm9jZXNzLlxyXG4gICAgICAgICAqIENoYW5nZSB0aGlzIHZpYSB0aGUgYG1heExpZ2h0c2AgcHJvcGVydHkgaW4geW91ciBnYW1lIGNvbmZpZywgYXMgaXQgY2Fubm90IGJlIGNoYW5nZWQgYXQgcnVudGltZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodHNNYW5hZ2VyI21heExpZ2h0c1xyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE1LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1heExpZ2h0cyA9IC0xO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVuYWJsZSB0aGUgTGlnaHRzIE1hbmFnZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlciNlbmFibGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5MaWdodHNNYW5hZ2VyfSBUaGlzIExpZ2h0cyBNYW5hZ2VyIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgZW5hYmxlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLm1heExpZ2h0cyA9PT0gLTEpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heExpZ2h0cyA9IHRoaXMuc2NlbmUuc3lzLmdhbWUucmVuZGVyZXIuY29uZmlnLm1heExpZ2h0cztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGlzYWJsZSB0aGUgTGlnaHRzIE1hbmFnZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlciNkaXNhYmxlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlcn0gVGhpcyBMaWdodHMgTWFuYWdlciBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIGRpc2FibGU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VsbCBhbnkgTGlnaHRzIHRoYXQgYXJlbid0IHZpc2libGUgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICAgICAqXHJcbiAgICAgKiBDdWxsaW5nIExpZ2h0cyBpbXByb3ZlcyBwZXJmb3JtYW5jZSBieSBlbnN1cmluZyB0aGF0IG9ubHkgTGlnaHRzIHdpdGhpbiBhIENhbWVyYSdzIHZpZXdwb3J0IGFyZSByZW5kZXJlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodHNNYW5hZ2VyI2N1bGxcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdG8gY3VsbCBMaWdodHMgZm9yLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5MaWdodFtdfSBUaGUgY3VsbGVkIExpZ2h0cy5cclxuICAgICAqL1xyXG4gICAgY3VsbDogZnVuY3Rpb24gKGNhbWVyYSlcclxuICAgIHtcclxuICAgICAgICB2YXIgbGlnaHRzID0gdGhpcy5saWdodHM7XHJcbiAgICAgICAgdmFyIGN1bGxlZExpZ2h0cyA9IHRoaXMuY3VsbGVkTGlnaHRzO1xyXG4gICAgICAgIHZhciBsZW5ndGggPSBsaWdodHMubGVuZ3RoO1xyXG4gICAgICAgIHZhciBjYW1lcmFDZW50ZXJYID0gY2FtZXJhLnggKyBjYW1lcmEud2lkdGggLyAyLjA7XHJcbiAgICAgICAgdmFyIGNhbWVyYUNlbnRlclkgPSBjYW1lcmEueSArIGNhbWVyYS5oZWlnaHQgLyAyLjA7XHJcbiAgICAgICAgdmFyIGNhbWVyYVJhZGl1cyA9IChjYW1lcmEud2lkdGggKyBjYW1lcmEuaGVpZ2h0KSAvIDIuMDtcclxuICAgICAgICB2YXIgcG9pbnQgPSB7IHg6IDAsIHk6IDAgfTtcclxuICAgICAgICB2YXIgY2FtZXJhTWF0cml4ID0gY2FtZXJhLm1hdHJpeDtcclxuICAgICAgICB2YXIgdmlld3BvcnRIZWlnaHQgPSB0aGlzLnN5c3RlbXMuZ2FtZS5jb25maWcuaGVpZ2h0O1xyXG5cclxuICAgICAgICBjdWxsZWRMaWdodHMubGVuZ3RoID0gMDtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aCAmJiBjdWxsZWRMaWdodHMubGVuZ3RoIDwgdGhpcy5tYXhMaWdodHM7IGluZGV4KyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgbGlnaHQgPSBsaWdodHNbaW5kZXhdO1xyXG5cclxuICAgICAgICAgICAgY2FtZXJhTWF0cml4LnRyYW5zZm9ybVBvaW50KGxpZ2h0LngsIGxpZ2h0LnksIHBvaW50KTtcclxuXHJcbiAgICAgICAgICAgIC8vICBXZSdsbCBqdXN0IHVzZSBib3VuZGluZyBzcGhlcmVzIHRvIHRlc3QgaWYgbGlnaHRzIHNob3VsZCBiZSByZW5kZXJlZFxyXG4gICAgICAgICAgICB2YXIgZHggPSBjYW1lcmFDZW50ZXJYIC0gKHBvaW50LnggLSAoY2FtZXJhLnNjcm9sbFggKiBsaWdodC5zY3JvbGxGYWN0b3JYICogY2FtZXJhLnpvb20pKTtcclxuICAgICAgICAgICAgdmFyIGR5ID0gY2FtZXJhQ2VudGVyWSAtICh2aWV3cG9ydEhlaWdodCAtIChwb2ludC55IC0gKGNhbWVyYS5zY3JvbGxZICogbGlnaHQuc2Nyb2xsRmFjdG9yWSkgKiBjYW1lcmEuem9vbSkpO1xyXG4gICAgICAgICAgICB2YXIgZGlzdGFuY2UgPSBNYXRoLnNxcnQoZHggKiBkeCArIGR5ICogZHkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDwgbGlnaHQucmFkaXVzICsgY2FtZXJhUmFkaXVzKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjdWxsZWRMaWdodHMucHVzaChsaWdodHNbaW5kZXhdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGN1bGxlZExpZ2h0cztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdGVyYXRlIG92ZXIgZWFjaCBMaWdodCB3aXRoIGEgY2FsbGJhY2suXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlciNmb3JFYWNoTGlnaHRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7TGlnaHRGb3JFYWNofSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0aGF0IGlzIGNhbGxlZCB3aXRoIGVhY2ggTGlnaHQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkxpZ2h0c01hbmFnZXJ9IFRoaXMgTGlnaHRzIE1hbmFnZXIgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBmb3JFYWNoTGlnaHQ6IGZ1bmN0aW9uIChjYWxsYmFjaylcclxuICAgIHtcclxuICAgICAgICBpZiAoIWNhbGxiYWNrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGxpZ2h0cyA9IHRoaXMubGlnaHRzO1xyXG4gICAgICAgIHZhciBsZW5ndGggPSBsaWdodHMubGVuZ3RoO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY2FsbGJhY2sobGlnaHRzW2luZGV4XSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGFtYmllbnQgbGlnaHQgY29sb3IuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlciNzZXRBbWJpZW50Q29sb3JcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByZ2IgLSBUaGUgaW50ZWdlciBSR0IgY29sb3Igb2YgdGhlIGFtYmllbnQgbGlnaHQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkxpZ2h0c01hbmFnZXJ9IFRoaXMgTGlnaHRzIE1hbmFnZXIgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRBbWJpZW50Q29sb3I6IGZ1bmN0aW9uIChyZ2IpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGNvbG9yID0gVXRpbHMuZ2V0RmxvYXRzRnJvbVVpbnRSR0IocmdiKTtcclxuXHJcbiAgICAgICAgdGhpcy5hbWJpZW50Q29sb3IuciA9IGNvbG9yWzBdO1xyXG4gICAgICAgIHRoaXMuYW1iaWVudENvbG9yLmcgPSBjb2xvclsxXTtcclxuICAgICAgICB0aGlzLmFtYmllbnRDb2xvci5iID0gY29sb3JbMl07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIG1heGltdW0gbnVtYmVyIG9mIExpZ2h0cyBhbGxvd2VkIHRvIGFwcGVhciBhdCBvbmNlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkxpZ2h0c01hbmFnZXIjZ2V0TWF4VmlzaWJsZUxpZ2h0c1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7aW50ZWdlcn0gVGhlIG1heGltdW0gbnVtYmVyIG9mIExpZ2h0cyBhbGxvd2VkIHRvIGFwcGVhciBhdCBvbmNlLlxyXG4gICAgICovXHJcbiAgICBnZXRNYXhWaXNpYmxlTGlnaHRzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiAxMDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIG51bWJlciBvZiBMaWdodHMgbWFuYWdlZCBieSB0aGlzIExpZ2h0cyBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkxpZ2h0c01hbmFnZXIjZ2V0TGlnaHRDb3VudFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7aW50ZWdlcn0gVGhlIG51bWJlciBvZiBMaWdodHMgbWFuYWdlZCBieSB0aGlzIExpZ2h0cyBNYW5hZ2VyLlxyXG4gICAgICovXHJcbiAgICBnZXRMaWdodENvdW50OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpZ2h0cy5sZW5ndGg7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIGEgTGlnaHQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlciNhZGRMaWdodFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIExpZ2h0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5PTBdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBMaWdodC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcmFkaXVzPTEwMF0gLSBUaGUgcmFkaXVzIG9mIHRoZSBMaWdodC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbcmdiPTB4ZmZmZmZmXSAtIFRoZSBpbnRlZ2VyIFJHQiBjb2xvciBvZiB0aGUgbGlnaHQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2ludGVuc2l0eT0xXSAtIFRoZSBpbnRlbnNpdHkgb2YgdGhlIExpZ2h0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5MaWdodH0gVGhlIExpZ2h0IHRoYXQgd2FzIGFkZGVkLlxyXG4gICAgICovXHJcbiAgICBhZGRMaWdodDogZnVuY3Rpb24gKHgsIHksIHJhZGl1cywgcmdiLCBpbnRlbnNpdHkpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGNvbG9yID0gbnVsbDtcclxuICAgICAgICB2YXIgbGlnaHQgPSBudWxsO1xyXG5cclxuICAgICAgICB4ID0gKHggPT09IHVuZGVmaW5lZCkgPyAwLjAgOiB4O1xyXG4gICAgICAgIHkgPSAoeSA9PT0gdW5kZWZpbmVkKSA/IDAuMCA6IHk7XHJcbiAgICAgICAgcmdiID0gKHJnYiA9PT0gdW5kZWZpbmVkKSA/IDB4ZmZmZmZmIDogcmdiO1xyXG4gICAgICAgIHJhZGl1cyA9IChyYWRpdXMgPT09IHVuZGVmaW5lZCkgPyAxMDAuMCA6IHJhZGl1cztcclxuICAgICAgICBpbnRlbnNpdHkgPSAoaW50ZW5zaXR5ID09PSB1bmRlZmluZWQpID8gMS4wIDogaW50ZW5zaXR5O1xyXG5cclxuICAgICAgICBjb2xvciA9IFV0aWxzLmdldEZsb2F0c0Zyb21VaW50UkdCKHJnYik7XHJcbiAgICAgICAgbGlnaHQgPSBudWxsO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5saWdodFBvb2wubGVuZ3RoID4gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxpZ2h0ID0gdGhpcy5saWdodFBvb2wucG9wKCk7XHJcbiAgICAgICAgICAgIGxpZ2h0LnNldCh4LCB5LCByYWRpdXMsIGNvbG9yWzBdLCBjb2xvclsxXSwgY29sb3JbMl0sIGludGVuc2l0eSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxpZ2h0ID0gbmV3IExpZ2h0KHgsIHksIHJhZGl1cywgY29sb3JbMF0sIGNvbG9yWzFdLCBjb2xvclsyXSwgaW50ZW5zaXR5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubGlnaHRzLnB1c2gobGlnaHQpO1xyXG5cclxuICAgICAgICByZXR1cm4gbGlnaHQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlIGEgTGlnaHQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlciNyZW1vdmVMaWdodFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHR9IGxpZ2h0IC0gVGhlIExpZ2h0IHRvIHJlbW92ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlcn0gVGhpcyBMaWdodHMgTWFuYWdlciBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZUxpZ2h0OiBmdW5jdGlvbiAobGlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5saWdodHMuaW5kZXhPZihsaWdodCk7XHJcblxyXG4gICAgICAgIGlmIChpbmRleCA+PSAwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5saWdodFBvb2wucHVzaChsaWdodCk7XHJcbiAgICAgICAgICAgIHRoaXMubGlnaHRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaHV0IGRvd24gdGhlIExpZ2h0cyBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIFJlY3ljbGVzIGFsbCBhY3RpdmUgTGlnaHRzIGludG8gdGhlIExpZ2h0IHBvb2wsIHJlc2V0cyBhbWJpZW50IGxpZ2h0IGNvbG9yIGFuZCBjbGVhcnMgdGhlIGxpc3RzIG9mIExpZ2h0cyBhbmRcclxuICAgICAqIGN1bGxlZCBMaWdodHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlciNzaHV0ZG93blxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHNodXRkb3duOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHdoaWxlICh0aGlzLmxpZ2h0cy5sZW5ndGggPiAwKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5saWdodFBvb2wucHVzaCh0aGlzLmxpZ2h0cy5wb3AoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmFtYmllbnRDb2xvciA9IHsgcjogMC4xLCBnOiAwLjEsIGI6IDAuMSB9O1xyXG4gICAgICAgIHRoaXMuY3VsbGVkTGlnaHRzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgdGhpcy5saWdodHMubGVuZ3RoID0gMDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXN0cm95IHRoZSBMaWdodHMgTWFuYWdlci5cclxuICAgICAqXHJcbiAgICAgKiBDbGVhbnMgdXAgYWxsIHJlZmVyZW5jZXMgYnkgY2FsbGluZyB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkxpZ2h0c01hbmFnZXIjc2h1dGRvd259LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkxpZ2h0c01hbmFnZXIjZGVzdHJveVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zaHV0ZG93bigpO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IExpZ2h0c01hbmFnZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIExpZ2h0c01hbmFnZXIgPSByZXF1aXJlKCcuL0xpZ2h0c01hbmFnZXInKTtcclxudmFyIFBsdWdpbkNhY2hlID0gcmVxdWlyZSgnLi4vLi4vcGx1Z2lucy9QbHVnaW5DYWNoZScpO1xyXG52YXIgU2NlbmVFdmVudHMgPSByZXF1aXJlKCcuLi8uLi9zY2VuZS9ldmVudHMnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgU2NlbmUgcGx1Z2luIHRoYXQgcHJvdmlkZXMgYSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLkxpZ2h0c01hbmFnZXJ9IGZvciB0aGUgTGlnaHQyRCBwaXBlbGluZS5cclxuICpcclxuICogQXZhaWxhYmxlIGZyb20gd2l0aGluIGEgU2NlbmUgdmlhIGB0aGlzLmxpZ2h0c2AuXHJcbiAqXHJcbiAqIEFkZCBMaWdodHMgdXNpbmcgdGhlIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzTWFuYWdlciNhZGRMaWdodH0gbWV0aG9kOlxyXG4gKlxyXG4gKiBgYGBqYXZhc2NyaXB0XHJcbiAqIC8vIEVuYWJsZSB0aGUgTGlnaHRzIE1hbmFnZXIgYmVjYXVzZSBpdCBpcyBkaXNhYmxlZCBieSBkZWZhdWx0XHJcbiAqIHRoaXMubGlnaHRzLmVuYWJsZSgpO1xyXG4gKlxyXG4gKiAvLyBDcmVhdGUgYSBMaWdodCBhdCBbNDAwLCAzMDBdIHdpdGggYSByYWRpdXMgb2YgMjAwXHJcbiAqIHRoaXMubGlnaHRzLmFkZExpZ2h0KDQwMCwgMzAwLCAyMDApO1xyXG4gKiBgYGBcclxuICpcclxuICogRm9yIEdhbWUgT2JqZWN0cyB0byBiZSBhZmZlY3RlZCBieSB0aGUgTGlnaHRzIHdoZW4gcmVuZGVyZWQsIHlvdSB3aWxsIG5lZWQgdG8gc2V0IHRoZW0gdG8gdXNlIHRoZSBgTGlnaHQyRGAgcGlwZWxpbmUgbGlrZSBzbzpcclxuICpcclxuICogYGBgamF2YXNjcmlwdFxyXG4gKiBzcHJpdGUuc2V0UGlwZWxpbmUoJ0xpZ2h0MkQnKTtcclxuICogYGBgXHJcbiAqXHJcbiAqIEBjbGFzcyBMaWdodHNQbHVnaW5cclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkxpZ2h0c01hbmFnZXJcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSB0aGF0IHRoaXMgTGlnaHRzIFBsdWdpbiBiZWxvbmdzIHRvLlxyXG4gKi9cclxudmFyIExpZ2h0c1BsdWdpbiA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogTGlnaHRzTWFuYWdlcixcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIExpZ2h0c1BsdWdpbiAoc2NlbmUpXHJcbiAgICB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lIHRoYXQgdGhpcyBMaWdodHMgUGx1Z2luIGJlbG9uZ3MgdG8uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzUGx1Z2luI3NjZW5lXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5TY2VuZX1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjZW5lID0gc2NlbmU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBTY2VuZSdzIHN5c3RlbXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuTGlnaHRzUGx1Z2luI3N5c3RlbXNcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlNjZW5lcy5TeXN0ZW1zfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc3lzdGVtcyA9IHNjZW5lLnN5cztcclxuXHJcbiAgICAgICAgaWYgKCFzY2VuZS5zeXMuc2V0dGluZ3MuaXNCb290ZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBzY2VuZS5zeXMuZXZlbnRzLm9uY2UoU2NlbmVFdmVudHMuQk9PVCwgdGhpcy5ib290LCB0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIExpZ2h0c01hbmFnZXIuY2FsbCh0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCb290IHRoZSBMaWdodHMgUGx1Z2luLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkxpZ2h0c1BsdWdpbiNib290XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgYm9vdDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgZXZlbnRFbWl0dGVyID0gdGhpcy5zeXN0ZW1zLmV2ZW50cztcclxuXHJcbiAgICAgICAgZXZlbnRFbWl0dGVyLm9uKFNjZW5lRXZlbnRzLlNIVVRET1dOLCB0aGlzLnNodXRkb3duLCB0aGlzKTtcclxuICAgICAgICBldmVudEVtaXR0ZXIub24oU2NlbmVFdmVudHMuREVTVFJPWSwgdGhpcy5kZXN0cm95LCB0aGlzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXN0cm95IHRoZSBMaWdodHMgUGx1Z2luLlxyXG4gICAgICpcclxuICAgICAqIENsZWFucyB1cCBhbGwgcmVmZXJlbmNlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5MaWdodHNQbHVnaW4jZGVzdHJveVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGRlc3Ryb3k6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zaHV0ZG93bigpO1xyXG5cclxuICAgICAgICB0aGlzLnNjZW5lID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuc3lzdGVtcyA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxuUGx1Z2luQ2FjaGUucmVnaXN0ZXIoJ0xpZ2h0c1BsdWdpbicsIExpZ2h0c1BsdWdpbiwgJ2xpZ2h0cycpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBMaWdodHNQbHVnaW47XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIENvbXBvbmVudHMgPSByZXF1aXJlKCcuLi9jb21wb25lbnRzJyk7XHJcbnZhciBHYW1lT2JqZWN0ID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdCcpO1xyXG52YXIgTWVzaFJlbmRlciA9IHJlcXVpcmUoJy4vTWVzaFJlbmRlcicpO1xyXG52YXIgTk9PUCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgTWVzaCBHYW1lIE9iamVjdC5cclxuICpcclxuICogQGNsYXNzIE1lc2hcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHdlYmdsT25seVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQmxlbmRNb2RlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkRlcHRoXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLk1hc2tcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuUGlwZWxpbmVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuU2l6ZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UZXh0dXJlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5WaXNpYmxlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlNjcm9sbEZhY3RvclxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBUaGUgU2NlbmUgdG8gd2hpY2ggdGhpcyBHYW1lIE9iamVjdCBiZWxvbmdzLiBBIEdhbWUgT2JqZWN0IGNhbiBvbmx5IGJlbG9uZyB0byBvbmUgU2NlbmUgYXQgYSB0aW1lLlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJbXX0gdmVydGljZXMgLSBBbiBhcnJheSBjb250YWluaW5nIHRoZSB2ZXJ0aWNlcyBkYXRhIGZvciB0aGlzIE1lc2guXHJcbiAqIEBwYXJhbSB7bnVtYmVyW119IHV2IC0gQW4gYXJyYXkgY29udGFpbmluZyB0aGUgdXYgZGF0YSBmb3IgdGhpcyBNZXNoLlxyXG4gKiBAcGFyYW0ge251bWJlcltdfSBjb2xvcnMgLSBBbiBhcnJheSBjb250YWluaW5nIHRoZSBjb2xvciBkYXRhIGZvciB0aGlzIE1lc2guXHJcbiAqIEBwYXJhbSB7bnVtYmVyW119IGFscGhhcyAtIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGFscGhhIGRhdGEgZm9yIHRoaXMgTWVzaC5cclxuICogQHBhcmFtIHtzdHJpbmd9IHRleHR1cmUgLSBUaGUga2V5IG9mIHRoZSBUZXh0dXJlIHRoaXMgR2FtZSBPYmplY3Qgd2lsbCB1c2UgdG8gcmVuZGVyIHdpdGgsIGFzIHN0b3JlZCBpbiB0aGUgVGV4dHVyZSBNYW5hZ2VyLlxyXG4gKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcil9IFtmcmFtZV0gLSBBbiBvcHRpb25hbCBmcmFtZSBmcm9tIHRoZSBUZXh0dXJlIHRoaXMgR2FtZSBPYmplY3QgaXMgcmVuZGVyaW5nIHdpdGguXHJcbiAqL1xyXG52YXIgTWVzaCA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogR2FtZU9iamVjdCxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBDb21wb25lbnRzLkJsZW5kTW9kZSxcclxuICAgICAgICBDb21wb25lbnRzLkRlcHRoLFxyXG4gICAgICAgIENvbXBvbmVudHMuTWFzayxcclxuICAgICAgICBDb21wb25lbnRzLlBpcGVsaW5lLFxyXG4gICAgICAgIENvbXBvbmVudHMuU2l6ZSxcclxuICAgICAgICBDb21wb25lbnRzLlRleHR1cmUsXHJcbiAgICAgICAgQ29tcG9uZW50cy5UcmFuc2Zvcm0sXHJcbiAgICAgICAgQ29tcG9uZW50cy5WaXNpYmxlLFxyXG4gICAgICAgIENvbXBvbmVudHMuU2Nyb2xsRmFjdG9yLFxyXG4gICAgICAgIE1lc2hSZW5kZXJcclxuICAgIF0sXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBNZXNoIChzY2VuZSwgeCwgeSwgdmVydGljZXMsIHV2LCBjb2xvcnMsIGFscGhhcywgdGV4dHVyZSwgZnJhbWUpXHJcbiAgICB7XHJcbiAgICAgICAgR2FtZU9iamVjdC5jYWxsKHRoaXMsIHNjZW5lLCAnTWVzaCcpO1xyXG5cclxuICAgICAgICBpZiAodmVydGljZXMubGVuZ3RoICE9PSB1di5sZW5ndGgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01lc2ggVmVydGV4IGNvdW50IG11c3QgbWF0Y2ggVVYgY291bnQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciB2ZXJ0aWNlc1VCID0gKHZlcnRpY2VzLmxlbmd0aCAvIDIpIHwgMDtcclxuXHJcbiAgICAgICAgaWYgKGNvbG9ycy5sZW5ndGggPiAwICYmIGNvbG9ycy5sZW5ndGggPCB2ZXJ0aWNlc1VCKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNZXNoIENvbG9yIGNvdW50IG11c3QgbWF0Y2ggVmVydGV4IGNvdW50Jyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYWxwaGFzLmxlbmd0aCA+IDAgJiYgYWxwaGFzLmxlbmd0aCA8IHZlcnRpY2VzVUIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01lc2ggQWxwaGEgY291bnQgbXVzdCBtYXRjaCBWZXJ0ZXggY291bnQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBpO1xyXG5cclxuICAgICAgICBpZiAoY29sb3JzLmxlbmd0aCA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2ZXJ0aWNlc1VCOyArK2kpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNvbG9yc1tpXSA9IDB4RkZGRkZGO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYWxwaGFzLmxlbmd0aCA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2ZXJ0aWNlc1VCOyArK2kpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGFscGhhc1tpXSA9IDEuMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gYXJyYXkgY29udGFpbmluZyB0aGUgdmVydGljZXMgZGF0YSBmb3IgdGhpcyBNZXNoLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLk1lc2gjdmVydGljZXNcclxuICAgICAgICAgKiBAdHlwZSB7RmxvYXQzMkFycmF5fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudmVydGljZXMgPSBuZXcgRmxvYXQzMkFycmF5KHZlcnRpY2VzKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gYXJyYXkgY29udGFpbmluZyB0aGUgdXYgZGF0YSBmb3IgdGhpcyBNZXNoLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLk1lc2gjdXZcclxuICAgICAgICAgKiBAdHlwZSB7RmxvYXQzMkFycmF5fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudXYgPSBuZXcgRmxvYXQzMkFycmF5KHV2KTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gYXJyYXkgY29udGFpbmluZyB0aGUgY29sb3IgZGF0YSBmb3IgdGhpcyBNZXNoLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLk1lc2gjY29sb3JzXHJcbiAgICAgICAgICogQHR5cGUge1VpbnQzMkFycmF5fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY29sb3JzID0gbmV3IFVpbnQzMkFycmF5KGNvbG9ycyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGFscGhhIGRhdGEgZm9yIHRoaXMgTWVzaC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5NZXNoI2FscGhhc1xyXG4gICAgICAgICAqIEB0eXBlIHtGbG9hdDMyQXJyYXl9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5hbHBoYXMgPSBuZXcgRmxvYXQzMkFycmF5KGFscGhhcyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEZpbGwgb3IgYWRkaXRpdmUgbW9kZSB1c2VkIHdoZW4gYmxlbmRpbmcgdGhlIGNvbG9yIHZhbHVlcz9cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuTWVzaCN0aW50RmlsbFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudGludEZpbGwgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRUZXh0dXJlKHRleHR1cmUsIGZyYW1lKTtcclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIHRoaXMuc2V0U2l6ZVRvRnJhbWUoKTtcclxuICAgICAgICB0aGlzLmluaXRQaXBlbGluZSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGxlZnQgaW50ZW50aW9uYWxseSBlbXB0eSBhbmQgZG9lcyBub3QgZG8gYW55dGhpbmcuXHJcbiAgICAgKiBJdCBpcyByZXRhaW5lZCB0byBhbGxvdyBhIE1lc2ggb3IgUXVhZCB0byBiZSBhZGRlZCB0byBhIENvbnRhaW5lci5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuTWVzaCNzZXRBbHBoYVxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICovXHJcbiAgICBzZXRBbHBoYTogTk9PUFxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IE1lc2g7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgaXMgYSBzdHViIGZ1bmN0aW9uIGZvciBNZXNoLlJlbmRlci4gVGhlcmUgaXMgbm8gQ2FudmFzIHJlbmRlcmVyIGZvciBNZXNoIG9iamVjdHMuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLk1lc2gjcmVuZGVyQ2FudmFzXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5DYW52YXMuQ2FudmFzUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIENhbnZhcyByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuTWVzaH0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKi9cclxudmFyIE1lc2hDYW52YXNSZW5kZXJlciA9IGZ1bmN0aW9uICgpXHJcbntcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gTWVzaENhbnZhc1JlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBCdWlsZEdhbWVPYmplY3QgPSByZXF1aXJlKCcuLi9CdWlsZEdhbWVPYmplY3QnKTtcclxudmFyIEdhbWVPYmplY3RDcmVhdG9yID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdENyZWF0b3InKTtcclxudmFyIEdldEFkdmFuY2VkVmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0QWR2YW5jZWRWYWx1ZScpO1xyXG52YXIgR2V0VmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0VmFsdWUnKTtcclxudmFyIE1lc2ggPSByZXF1aXJlKCcuL01lc2gnKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IE1lc2ggR2FtZSBPYmplY3QgYW5kIHJldHVybnMgaXQuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIE1lc2ggR2FtZSBPYmplY3QgYW5kIFdlYkdMIHN1cHBvcnQgaGF2ZSBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Q3JlYXRvciNtZXNoXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge29iamVjdH0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRoaXMgR2FtZSBPYmplY3Qgd2lsbCB1c2UgdG8gY3JlYXRlIGl0c2VsZi5cclxuICogQHBhcmFtIHtib29sZWFufSBbYWRkVG9TY2VuZV0gLSBBZGQgdGhpcyBHYW1lIE9iamVjdCB0byB0aGUgU2NlbmUgYWZ0ZXIgY3JlYXRpbmcgaXQ/IElmIHNldCB0aGlzIGFyZ3VtZW50IG92ZXJyaWRlcyB0aGUgYGFkZGAgcHJvcGVydHkgaW4gdGhlIGNvbmZpZyBvYmplY3QuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5NZXNofSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RDcmVhdG9yLnJlZ2lzdGVyKCdtZXNoJywgZnVuY3Rpb24gKGNvbmZpZywgYWRkVG9TY2VuZSlcclxue1xyXG4gICAgaWYgKGNvbmZpZyA9PT0gdW5kZWZpbmVkKSB7IGNvbmZpZyA9IHt9OyB9XHJcblxyXG4gICAgdmFyIGtleSA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAna2V5JywgbnVsbCk7XHJcbiAgICB2YXIgZnJhbWUgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ2ZyYW1lJywgbnVsbCk7XHJcbiAgICB2YXIgdmVydGljZXMgPSBHZXRWYWx1ZShjb25maWcsICd2ZXJ0aWNlcycsIFtdKTtcclxuICAgIHZhciBjb2xvcnMgPSBHZXRWYWx1ZShjb25maWcsICdjb2xvcnMnLCBbXSk7XHJcbiAgICB2YXIgYWxwaGFzID0gR2V0VmFsdWUoY29uZmlnLCAnYWxwaGFzJywgW10pO1xyXG4gICAgdmFyIHV2ID0gR2V0VmFsdWUoY29uZmlnLCAndXYnLCBbXSk7XHJcblxyXG4gICAgdmFyIG1lc2ggPSBuZXcgTWVzaCh0aGlzLnNjZW5lLCAwLCAwLCB2ZXJ0aWNlcywgdXYsIGNvbG9ycywgYWxwaGFzLCBrZXksIGZyYW1lKTtcclxuXHJcbiAgICBpZiAoYWRkVG9TY2VuZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAge1xyXG4gICAgICAgIGNvbmZpZy5hZGQgPSBhZGRUb1NjZW5lO1xyXG4gICAgfVxyXG5cclxuICAgIEJ1aWxkR2FtZU9iamVjdCh0aGlzLnNjZW5lLCBtZXNoLCBjb25maWcpO1xyXG5cclxuICAgIHJldHVybiBtZXNoO1xyXG59KTtcclxuXHJcbi8vICBXaGVuIHJlZ2lzdGVyaW5nIGEgZmFjdG9yeSBmdW5jdGlvbiAndGhpcycgcmVmZXJzIHRvIHRoZSBHYW1lT2JqZWN0Q3JlYXRvciBjb250ZXh0LlxyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBNZXNoID0gcmVxdWlyZSgnLi9NZXNoJyk7XHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBNZXNoIEdhbWUgT2JqZWN0IGFuZCBhZGRzIGl0IHRvIHRoZSBTY2VuZS5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgTWVzaCBHYW1lIE9iamVjdCBhbmQgV2ViR0wgc3VwcG9ydCBoYXZlIGJlZW4gYnVpbHQgaW50byBQaGFzZXIuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5I21lc2hcclxuICogQHdlYmdsT25seVxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyW119IHZlcnRpY2VzIC0gQW4gYXJyYXkgY29udGFpbmluZyB0aGUgdmVydGljZXMgZGF0YSBmb3IgdGhpcyBNZXNoLlxyXG4gKiBAcGFyYW0ge251bWJlcltdfSB1diAtIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHV2IGRhdGEgZm9yIHRoaXMgTWVzaC5cclxuICogQHBhcmFtIHtudW1iZXJbXX0gY29sb3JzIC0gQW4gYXJyYXkgY29udGFpbmluZyB0aGUgY29sb3IgZGF0YSBmb3IgdGhpcyBNZXNoLlxyXG4gKiBAcGFyYW0ge251bWJlcltdfSBhbHBoYXMgLSBBbiBhcnJheSBjb250YWluaW5nIHRoZSBhbHBoYSBkYXRhIGZvciB0aGlzIE1lc2guXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0dXJlIC0gVGhlIGtleSBvZiB0aGUgVGV4dHVyZSB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIHJlbmRlciB3aXRoLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBbZnJhbWVdIC0gQW4gb3B0aW9uYWwgZnJhbWUgZnJvbSB0aGUgVGV4dHVyZSB0aGlzIEdhbWUgT2JqZWN0IGlzIHJlbmRlcmluZyB3aXRoLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuTWVzaH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5pZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSKVxyXG57XHJcbiAgICBHYW1lT2JqZWN0RmFjdG9yeS5yZWdpc3RlcignbWVzaCcsIGZ1bmN0aW9uICh4LCB5LCB2ZXJ0aWNlcywgdXYsIGNvbG9ycywgYWxwaGFzLCB0ZXh0dXJlLCBmcmFtZSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5TGlzdC5hZGQobmV3IE1lc2godGhpcy5zY2VuZSwgeCwgeSwgdmVydGljZXMsIHV2LCBjb2xvcnMsIGFscGhhcywgdGV4dHVyZSwgZnJhbWUpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG4vLyAgV2hlbiByZWdpc3RlcmluZyBhIGZhY3RvcnkgZnVuY3Rpb24gJ3RoaXMnIHJlZmVycyB0byB0aGUgR2FtZU9iamVjdEZhY3RvcnkgY29udGV4dC5cclxuLy9cclxuLy8gIFRoZXJlIGFyZSBzZXZlcmFsIHByb3BlcnRpZXMgYXZhaWxhYmxlIHRvIHVzZTpcclxuLy9cclxuLy8gIHRoaXMuc2NlbmUgLSBhIHJlZmVyZW5jZSB0byB0aGUgU2NlbmUgdGhhdCBvd25zIHRoZSBHYW1lT2JqZWN0RmFjdG9yeVxyXG4vLyAgdGhpcy5kaXNwbGF5TGlzdCAtIGEgcmVmZXJlbmNlIHRvIHRoZSBEaXNwbGF5IExpc3QgdGhlIFNjZW5lIG93bnNcclxuLy8gIHRoaXMudXBkYXRlTGlzdCAtIGEgcmVmZXJlbmNlIHRvIHRoZSBVcGRhdGUgTGlzdCB0aGUgU2NlbmUgb3duc1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxudmFyIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxuXHJcbmlmICh0eXBlb2YgV0VCR0xfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi9NZXNoV2ViR0xSZW5kZXJlcicpO1xyXG59XHJcblxyXG5pZiAodHlwZW9mIENBTlZBU19SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi9NZXNoQ2FudmFzUmVuZGVyZXInKTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgcmVuZGVyV2ViR0w6IHJlbmRlcldlYkdMLFxyXG4gICAgcmVuZGVyQ2FudmFzOiByZW5kZXJDYW52YXNcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFV0aWxzID0gcmVxdWlyZSgnLi4vLi4vcmVuZGVyZXIvd2ViZ2wvVXRpbHMnKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5NZXNoI3JlbmRlcldlYkdMXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBXZWJHTCByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuTWVzaH0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIE1lc2hXZWJHTFJlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgdmFyIHBpcGVsaW5lID0gdGhpcy5waXBlbGluZTtcclxuXHJcbiAgICByZW5kZXJlci5zZXRQaXBlbGluZShwaXBlbGluZSwgc3JjKTtcclxuXHJcbiAgICB2YXIgY2FtTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgxO1xyXG4gICAgdmFyIHNwcml0ZU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MjtcclxuICAgIHZhciBjYWxjTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgzO1xyXG5cclxuICAgIHNwcml0ZU1hdHJpeC5hcHBseUlUUlMoc3JjLngsIHNyYy55LCBzcmMucm90YXRpb24sIHNyYy5zY2FsZVgsIHNyYy5zY2FsZVkpO1xyXG5cclxuICAgIGNhbU1hdHJpeC5jb3B5RnJvbShjYW1lcmEubWF0cml4KTtcclxuXHJcbiAgICBpZiAocGFyZW50TWF0cml4KVxyXG4gICAge1xyXG4gICAgICAgIC8vICBNdWx0aXBseSB0aGUgY2FtZXJhIGJ5IHRoZSBwYXJlbnQgbWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5V2l0aE9mZnNldChwYXJlbnRNYXRyaXgsIC1jYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYLCAtY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWSk7XHJcblxyXG4gICAgICAgIC8vICBVbmRvIHRoZSBjYW1lcmEgc2Nyb2xsXHJcbiAgICAgICAgc3ByaXRlTWF0cml4LmUgPSBzcmMueDtcclxuICAgICAgICBzcHJpdGVNYXRyaXguZiA9IHNyYy55O1xyXG5cclxuICAgICAgICAvLyAgTXVsdGlwbHkgYnkgdGhlIFNwcml0ZSBtYXRyaXgsIHN0b3JlIHJlc3VsdCBpbiBjYWxjTWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5KHNwcml0ZU1hdHJpeCwgY2FsY01hdHJpeCk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgc3ByaXRlTWF0cml4LmUgLT0gY2FtZXJhLnNjcm9sbFggKiBzcmMuc2Nyb2xsRmFjdG9yWDtcclxuICAgICAgICBzcHJpdGVNYXRyaXguZiAtPSBjYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZO1xyXG5cclxuICAgICAgICAvLyAgTXVsdGlwbHkgYnkgdGhlIFNwcml0ZSBtYXRyaXgsIHN0b3JlIHJlc3VsdCBpbiBjYWxjTWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5KHNwcml0ZU1hdHJpeCwgY2FsY01hdHJpeCk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGZyYW1lID0gc3JjLmZyYW1lO1xyXG4gICAgdmFyIHRleHR1cmUgPSBmcmFtZS5nbFRleHR1cmU7XHJcblxyXG4gICAgdmFyIHZlcnRpY2VzID0gc3JjLnZlcnRpY2VzO1xyXG4gICAgdmFyIHV2cyA9IHNyYy51djtcclxuICAgIHZhciBjb2xvcnMgPSBzcmMuY29sb3JzO1xyXG4gICAgdmFyIGFscGhhcyA9IHNyYy5hbHBoYXM7XHJcblxyXG4gICAgdmFyIG1lc2hWZXJ0aWNlc0xlbmd0aCA9IHZlcnRpY2VzLmxlbmd0aDtcclxuICAgIHZhciB2ZXJ0ZXhDb3VudCA9IE1hdGguZmxvb3IobWVzaFZlcnRpY2VzTGVuZ3RoICogMC41KTtcclxuXHJcbiAgICBpZiAocGlwZWxpbmUudmVydGV4Q291bnQgKyB2ZXJ0ZXhDb3VudCA+IHBpcGVsaW5lLnZlcnRleENhcGFjaXR5KVxyXG4gICAge1xyXG4gICAgICAgIHBpcGVsaW5lLmZsdXNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcGlwZWxpbmUuc2V0VGV4dHVyZTJEKHRleHR1cmUsIDApO1xyXG5cclxuICAgIHZhciB2ZXJ0ZXhWaWV3RjMyID0gcGlwZWxpbmUudmVydGV4Vmlld0YzMjtcclxuICAgIHZhciB2ZXJ0ZXhWaWV3VTMyID0gcGlwZWxpbmUudmVydGV4Vmlld1UzMjtcclxuXHJcbiAgICB2YXIgdmVydGV4T2Zmc2V0ID0gKHBpcGVsaW5lLnZlcnRleENvdW50ICogcGlwZWxpbmUudmVydGV4Q29tcG9uZW50Q291bnQpIC0gMTtcclxuXHJcbiAgICB2YXIgY29sb3JJbmRleCA9IDA7XHJcbiAgICB2YXIgdGludEVmZmVjdCA9IHNyYy50aW50RmlsbDtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc2hWZXJ0aWNlc0xlbmd0aDsgaSArPSAyKVxyXG4gICAge1xyXG4gICAgICAgIHZhciB4ID0gdmVydGljZXNbaSArIDBdO1xyXG4gICAgICAgIHZhciB5ID0gdmVydGljZXNbaSArIDFdO1xyXG5cclxuICAgICAgICB2YXIgdHggPSB4ICogY2FsY01hdHJpeC5hICsgeSAqIGNhbGNNYXRyaXguYyArIGNhbGNNYXRyaXguZTtcclxuICAgICAgICB2YXIgdHkgPSB4ICogY2FsY01hdHJpeC5iICsgeSAqIGNhbGNNYXRyaXguZCArIGNhbGNNYXRyaXguZjtcclxuXHJcbiAgICAgICAgaWYgKGNhbWVyYS5yb3VuZFBpeGVscylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR4ID0gTWF0aC5yb3VuZCh0eCk7XHJcbiAgICAgICAgICAgIHR5ID0gTWF0aC5yb3VuZCh0eSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2ZXJ0ZXhWaWV3RjMyWysrdmVydGV4T2Zmc2V0XSA9IHR4O1xyXG4gICAgICAgIHZlcnRleFZpZXdGMzJbKyt2ZXJ0ZXhPZmZzZXRdID0gdHk7XHJcbiAgICAgICAgdmVydGV4Vmlld0YzMlsrK3ZlcnRleE9mZnNldF0gPSB1dnNbaSArIDBdO1xyXG4gICAgICAgIHZlcnRleFZpZXdGMzJbKyt2ZXJ0ZXhPZmZzZXRdID0gdXZzW2kgKyAxXTtcclxuICAgICAgICB2ZXJ0ZXhWaWV3RjMyWysrdmVydGV4T2Zmc2V0XSA9IHRpbnRFZmZlY3Q7XHJcbiAgICAgICAgdmVydGV4Vmlld1UzMlsrK3ZlcnRleE9mZnNldF0gPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYShjb2xvcnNbY29sb3JJbmRleF0sIGNhbWVyYS5hbHBoYSAqIGFscGhhc1tjb2xvckluZGV4XSk7XHJcblxyXG4gICAgICAgIGNvbG9ySW5kZXgrKztcclxuICAgIH1cclxuXHJcbiAgICBwaXBlbGluZS52ZXJ0ZXhDb3VudCArPSB2ZXJ0ZXhDb3VudDtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gTWVzaFdlYkdMUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEZsb2F0QmV0d2VlbiA9IHJlcXVpcmUoJy4uLy4uL21hdGgvRmxvYXRCZXR3ZWVuJyk7XHJcbnZhciBHZXRFYXNlRnVuY3Rpb24gPSByZXF1aXJlKCcuLi8uLi90d2VlbnMvYnVpbGRlcnMvR2V0RWFzZUZ1bmN0aW9uJyk7XHJcbnZhciBHZXRGYXN0VmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0RmFzdFZhbHVlJyk7XHJcbnZhciBXcmFwID0gcmVxdWlyZSgnLi4vLi4vbWF0aC9XcmFwJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIFBhcnRpY2xlIEVtaXR0ZXIgcHJvcGVydHkuXHJcbiAqXHJcbiAqIEZhY2lsaXRhdGVzIGNoYW5naW5nIFBhcnRpY2xlIHByb3BlcnRpZXMgYXMgdGhleSBhcmUgZW1pdHRlZCBhbmQgdGhyb3VnaG91dCB0aGVpciBsaWZldGltZS5cclxuICpcclxuICogQGNsYXNzIEVtaXR0ZXJPcFxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlc1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJDb25maWd9IGNvbmZpZyAtIFNldHRpbmdzIGZvciB0aGUgUGFydGljbGUgRW1pdHRlciB0aGF0IG93bnMgdGhpcyBwcm9wZXJ0eS5cclxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS5cclxuICogQHBhcmFtIHtudW1iZXJ9IGRlZmF1bHRWYWx1ZSAtIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eS5cclxuICogQHBhcmFtIHtib29sZWFufSBbZW1pdE9ubHk9ZmFsc2VdIC0gV2hldGhlciB0aGUgcHJvcGVydHkgY2FuIG9ubHkgYmUgbW9kaWZpZWQgd2hlbiBhIFBhcnRpY2xlIGlzIGVtaXR0ZWQuXHJcbiAqL1xyXG52YXIgRW1pdHRlck9wID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIEVtaXR0ZXJPcCAoY29uZmlnLCBrZXksIGRlZmF1bHRWYWx1ZSwgZW1pdE9ubHkpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGVtaXRPbmx5ID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBlbWl0T25seSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIG5hbWUgb2YgdGhpcyBwcm9wZXJ0eS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI3Byb3BlcnR5S2V5XHJcbiAgICAgICAgICogQHR5cGUge3N0cmluZ31cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnByb3BlcnR5S2V5ID0ga2V5O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI3Byb3BlcnR5VmFsdWVcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI2RlZmF1bHRWYWx1ZVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBudW1iZXIgb2Ygc3RlcHMgZm9yIHN0ZXBwZWQgZWFzaW5nIGJldHdlZW4ge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI3N0YXJ0fSBhbmRcclxuICAgICAgICAgKiB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3AjZW5kfSB2YWx1ZXMsIHBlciBlbWl0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3Ajc3RlcHNcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnN0ZXBzID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHN0ZXAgY291bnRlciBmb3Igc3RlcHBlZCBlYXNpbmcsIHBlciBlbWl0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3AjY291bnRlclxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY291bnRlciA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBzdGFydCB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBlYXNlIGJldHdlZW4uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcCNzdGFydFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc3RhcnQgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZW5kIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5IHRvIGVhc2UgYmV0d2Vlbi5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI2VuZFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZW5kID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGVhc2luZyBmdW5jdGlvbiB0byB1c2UgZm9yIHVwZGF0aW5nIHRoaXMgcHJvcGVydHkuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcCNlYXNlXHJcbiAgICAgICAgICogQHR5cGUgez9mdW5jdGlvbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmVhc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFdoZXRoZXIgdGhpcyBwcm9wZXJ0eSBjYW4gb25seSBiZSBtb2RpZmllZCB3aGVuIGEgUGFydGljbGUgaXMgZW1pdHRlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIFNldCB0byBgdHJ1ZWAgdG8gYWxsb3cgb25seSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3Ajb25FbWl0fSBjYWxsYmFja3MgdG8gYmUgc2V0IGFuZFxyXG4gICAgICAgICAqIGFmZmVjdCB0aGlzIHByb3BlcnR5LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogU2V0IHRvIGBmYWxzZWAgdG8gYWxsb3cgYm90aCB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3Ajb25FbWl0fSBhbmRcclxuICAgICAgICAgKiB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3Ajb25VcGRhdGV9IGNhbGxiYWNrcyB0byBiZSBzZXQgYW5kIGFmZmVjdCB0aGlzIHByb3BlcnR5LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3AjZW1pdE9ubHlcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmVtaXRPbmx5ID0gZW1pdE9ubHk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjYWxsYmFjayB0byBydW4gZm9yIFBhcnRpY2xlcyB3aGVuIHRoZXkgYXJlIGVtaXR0ZWQgZnJvbSB0aGUgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI29uRW1pdFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcE9uRW1pdENhbGxiYWNrfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMub25FbWl0ID0gdGhpcy5kZWZhdWx0RW1pdDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGNhbGxiYWNrIHRvIHJ1biBmb3IgUGFydGljbGVzIHdoZW4gdGhleSBhcmUgdXBkYXRlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI29uVXBkYXRlXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wT25VcGRhdGVDYWxsYmFja31cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm9uVXBkYXRlID0gdGhpcy5kZWZhdWx0VXBkYXRlO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRDb25maWcoY29uZmlnKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMb2FkIHRoZSBwcm9wZXJ0eSBmcm9tIGEgUGFydGljbGUgRW1pdHRlciBjb25maWd1cmF0aW9uIG9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBPcHRpb25hbGx5IGFjY2VwdHMgYSBuZXcgcHJvcGVydHkga2V5IHRvIHVzZSwgcmVwbGFjaW5nIHRoZSBjdXJyZW50IG9uZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI2xvYWRDb25maWdcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJDb25maWd9IFtjb25maWddIC0gU2V0dGluZ3MgZm9yIHRoZSBQYXJ0aWNsZSBFbWl0dGVyIHRoYXQgb3ducyB0aGlzIHByb3BlcnR5LlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtuZXdLZXldIC0gVGhlIG5ldyBrZXkgdG8gdXNlIGZvciB0aGlzIHByb3BlcnR5LCBpZiBhbnkuXHJcbiAgICAgKi9cclxuICAgIGxvYWRDb25maWc6IGZ1bmN0aW9uIChjb25maWcsIG5ld0tleSlcclxuICAgIHtcclxuICAgICAgICBpZiAoY29uZmlnID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb25maWcgPSB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChuZXdLZXkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5S2V5ID0gbmV3S2V5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVZhbHVlID0gR2V0RmFzdFZhbHVlKFxyXG4gICAgICAgICAgICBjb25maWcsXHJcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHlLZXksXHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRNZXRob2RzKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmVtaXRPbmx5KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIFJlc2V0IGl0IGJhY2sgYWdhaW5cclxuICAgICAgICAgICAgdGhpcy5vblVwZGF0ZSA9IHRoaXMuZGVmYXVsdFVwZGF0ZTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQnVpbGQgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgUGFydGljbGUgRW1pdHRlciBwcm9wZXJ0eS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI3RvSlNPTlxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7b2JqZWN0fSBBIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhpcyBQYXJ0aWNsZSBFbWl0dGVyIHByb3BlcnR5LlxyXG4gICAgICovXHJcbiAgICB0b0pTT046IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydHlWYWx1ZTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGFuZ2UgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGFuZCB1cGRhdGUgaXRzIGNhbGxiYWNrIG1ldGhvZHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcCNvbkNoYW5nZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEVtaXR0ZXIgT3Agb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBvbkNoYW5nZTogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zZXRNZXRob2RzKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlIHRoZSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3Ajb25FbWl0fSBhbmRcclxuICAgICAqIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcCNvblVwZGF0ZX0gY2FsbGJhY2tzIGJhc2VkIG9uIHRoZSB0eXBlIG9mIHRoZSBjdXJyZW50XHJcbiAgICAgKiB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3AjcHJvcGVydHlWYWx1ZX0uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcCNzZXRNZXRob2RzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEVtaXR0ZXIgT3Agb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBzZXRNZXRob2RzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IHRoaXMucHJvcGVydHlWYWx1ZTtcclxuXHJcbiAgICAgICAgdmFyIHQgPSB0eXBlb2YgdmFsdWU7XHJcblxyXG4gICAgICAgIGlmICh0ID09PSAnbnVtYmVyJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBFeHBsaWNpdCBzdGF0aWMgdmFsdWU6XHJcbiAgICAgICAgICAgIC8vICB4OiA0MDBcclxuXHJcbiAgICAgICAgICAgIHRoaXMub25FbWl0ID0gdGhpcy5zdGF0aWNWYWx1ZUVtaXQ7XHJcbiAgICAgICAgICAgIHRoaXMub25VcGRhdGUgPSB0aGlzLnN0YXRpY1ZhbHVlVXBkYXRlOyAvLyBIb3c/XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIFBpY2tzIGEgcmFuZG9tIGVsZW1lbnQgZnJvbSB0aGUgYXJyYXk6XHJcbiAgICAgICAgICAgIC8vICB4OiBbIDEwMCwgMjAwLCAzMDAsIDQwMCBdXHJcblxyXG4gICAgICAgICAgICB0aGlzLm9uRW1pdCA9IHRoaXMucmFuZG9tU3RhdGljVmFsdWVFbWl0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0ID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIFRoZSBzYW1lIGFzIHNldHRpbmcganVzdCB0aGUgb25VcGRhdGUgZnVuY3Rpb24gYW5kIG5vIG9uRW1pdCAodW5sZXNzIHRoaXMgb3AgaXMgYW4gZW1pdE9ubHkgb25lKVxyXG4gICAgICAgICAgICAvLyAgQ3VzdG9tIGNhbGxiYWNrLCBtdXN0IHJldHVybiBhIHZhbHVlOlxyXG5cclxuICAgICAgICAgICAgLypcclxuICAgICAgICAgICAgeDogZnVuY3Rpb24gKHBhcnRpY2xlLCBrZXksIHQsIHZhbHVlKVxyXG4gICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgKyA1MDtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAqL1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZW1pdE9ubHkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25FbWl0ID0gdmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uVXBkYXRlID0gdmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodCA9PT0gJ29iamVjdCcgJiYgKHRoaXMuaGFzKHZhbHVlLCAncmFuZG9tJykgfHwgdGhpcy5oYXNCb3RoKHZhbHVlLCAnc3RhcnQnLCAnZW5kJykgfHwgdGhpcy5oYXNCb3RoKHZhbHVlLCAnbWluJywgJ21heCcpKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhcnQgPSB0aGlzLmhhcyh2YWx1ZSwgJ3N0YXJ0JykgPyB2YWx1ZS5zdGFydCA6IHZhbHVlLm1pbjtcclxuICAgICAgICAgICAgdGhpcy5lbmQgPSB0aGlzLmhhcyh2YWx1ZSwgJ2VuZCcpID8gdmFsdWUuZW5kIDogdmFsdWUubWF4O1xyXG5cclxuICAgICAgICAgICAgdmFyIGlzUmFuZG9tID0gKHRoaXMuaGFzQm90aCh2YWx1ZSwgJ21pbicsICdtYXgnKSB8fCAhIXZhbHVlLnJhbmRvbSk7XHJcblxyXG4gICAgICAgICAgICAvLyAgQSByYW5kb20gc3RhcnRpbmcgdmFsdWUgKHVzaW5nICdtaW4gfCBtYXgnIGluc3RlYWQgb2YgJ3N0YXJ0IHwgZW5kJyBhdXRvbWF0aWNhbGx5IGltcGxpZXMgYSByYW5kb20gdmFsdWUpXHJcblxyXG4gICAgICAgICAgICAvLyAgeDogeyBzdGFydDogMTAwLCBlbmQ6IDQwMCwgcmFuZG9tOiB0cnVlIH0gT1IgeyBtaW46IDEwMCwgbWF4OiA0MDAgfSBPUiB7IHJhbmRvbTogWyAxMDAsIDQwMCBdIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpc1JhbmRvbSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJuZCA9IHZhbHVlLnJhbmRvbTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyAgeDogeyByYW5kb206IFsgMTAwLCA0MDAgXSB9ID0gdGhlIHNhbWUgYXMgZG9pbmc6IHg6IHsgc3RhcnQ6IDEwMCwgZW5kOiA0MDAsIHJhbmRvbTogdHJ1ZSB9XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShybmQpKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhcnQgPSBybmRbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmQgPSBybmRbMV07XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkVtaXQgPSB0aGlzLnJhbmRvbVJhbmdlZFZhbHVlRW1pdDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzKHZhbHVlLCAnc3RlcHMnKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy8gIEEgc3RlcHBlZCAocGVyIGVtaXQpIHJhbmdlXHJcblxyXG4gICAgICAgICAgICAgICAgLy8gIHg6IHsgc3RhcnQ6IDEwMCwgZW5kOiA0MDAsIHN0ZXBzOiA2NCB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gIEluY3JlbWVudHMgYSB2YWx1ZSBzdG9yZWQgaW4gdGhlIGVtaXR0ZXJcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXBzID0gdmFsdWUuc3RlcHM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ZXIgPSB0aGlzLnN0YXJ0O1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMub25FbWl0ID0gdGhpcy5zdGVwcGVkRW1pdDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIC8vICBBbiBlYXNlZCByYW5nZSAoZGVmYXVsdHMgdG8gTGluZWFyIGlmIG5vdCBzcGVjaWZpZWQpXHJcblxyXG4gICAgICAgICAgICAgICAgLy8gIHg6IHsgc3RhcnQ6IDEwMCwgZW5kOiA0MDAsIFsgZWFzZTogJ0xpbmVhcicgXSB9XHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIGVhc2VUeXBlID0gdGhpcy5oYXModmFsdWUsICdlYXNlJykgPyB2YWx1ZS5lYXNlIDogJ0xpbmVhcic7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5lYXNlID0gR2V0RWFzZUZ1bmN0aW9uKGVhc2VUeXBlKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIWlzUmFuZG9tKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25FbWl0ID0gdGhpcy5lYXNlZFZhbHVlRW1pdDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAvLyAgQlVHOiBhbHBoYSwgcm90YXRlLCBzY2FsZVgsIHNjYWxlWSwgb3IgdGludCBhcmUgZWFzZWQgaGVyZSBpZiB7bWluLCBtYXh9IGlzIGdpdmVuLlxyXG4gICAgICAgICAgICAgICAgLy8gIFByb2JhYmx5IHRoaXMgYnJhbmNoIHNob3VsZCBleGNsdWRlIGlzUmFuZG9tIGVudGlyZWx5LlxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMub25VcGRhdGUgPSB0aGlzLmVhc2VWYWx1ZVVwZGF0ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0ID09PSAnb2JqZWN0JyAmJiB0aGlzLmhhc0VpdGhlcih2YWx1ZSwgJ29uRW1pdCcsICdvblVwZGF0ZScpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIEN1c3RvbSBvbkVtaXQgYW5kIG9uVXBkYXRlIGNhbGxiYWNrc1xyXG5cclxuICAgICAgICAgICAgLypcclxuICAgICAgICAgICAgeDoge1xyXG4gICAgICAgICAgICAgICAgLy8gIENhbGxlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHBhcnRpY2xlcyBsaWZlLCB3aGVuIGl0IGlzIGJlaW5nIGNyZWF0ZWRcclxuICAgICAgICAgICAgICAgIG9uRW1pdDogZnVuY3Rpb24gKHBhcnRpY2xlLCBrZXksIHQsIHZhbHVlKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgLy8gIENhbGxlZCBkdXJpbmcgdGhlIHBhcnRpY2xlcyBsaWZlIG9uIGVhY2ggdXBkYXRlXHJcbiAgICAgICAgICAgICAgICBvblVwZGF0ZTogZnVuY3Rpb24gKHBhcnRpY2xlLCBrZXksIHQsIHZhbHVlKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAqL1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzKHZhbHVlLCAnb25FbWl0JykpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25FbWl0ID0gdmFsdWUub25FbWl0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5oYXModmFsdWUsICdvblVwZGF0ZScpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uVXBkYXRlID0gdmFsdWUub25VcGRhdGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrIHdoZXRoZXIgYW4gb2JqZWN0IGhhcyB0aGUgZ2l2ZW4gcHJvcGVydHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcCNoYXNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvYmplY3QgLSBUaGUgb2JqZWN0IHRvIGNoZWNrLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IHRvIGxvb2sgZm9yIGluIHRoZSBvYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSBwcm9wZXJ0eSBleGlzdHMgaW4gdGhlIG9iamVjdCwgYGZhbHNlYCBvdGhlcndpc2UuXHJcbiAgICAgKi9cclxuICAgIGhhczogZnVuY3Rpb24gKG9iamVjdCwga2V5KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBvYmplY3QuaGFzT3duUHJvcGVydHkoa2V5KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayB3aGV0aGVyIGFuIG9iamVjdCBoYXMgYm90aCBvZiB0aGUgZ2l2ZW4gcHJvcGVydGllcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI2hhc0JvdGhcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvYmplY3QgLSBUaGUgb2JqZWN0IHRvIGNoZWNrLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleTEgLSBUaGUga2V5IG9mIHRoZSBmaXJzdCBwcm9wZXJ0eSB0byBjaGVjayB0aGUgb2JqZWN0IGZvci5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkyIC0gVGhlIGtleSBvZiB0aGUgc2Vjb25kIHByb3BlcnR5IHRvIGNoZWNrIHRoZSBvYmplY3QgZm9yLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IGB0cnVlYCBpZiBib3RoIHByb3BlcnRpZXMgZXhpc3QgaW4gdGhlIG9iamVjdCwgYGZhbHNlYCBvdGhlcndpc2UuXHJcbiAgICAgKi9cclxuICAgIGhhc0JvdGg6IGZ1bmN0aW9uIChvYmplY3QsIGtleTEsIGtleTIpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdC5oYXNPd25Qcm9wZXJ0eShrZXkxKSAmJiBvYmplY3QuaGFzT3duUHJvcGVydHkoa2V5Mik7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2sgd2hldGhlciBhbiBvYmplY3QgaGFzIGF0IGxlYXN0IG9uZSBvZiB0aGUgZ2l2ZW4gcHJvcGVydGllcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI2hhc0VpdGhlclxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IG9iamVjdCAtIFRoZSBvYmplY3QgdG8gY2hlY2suXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5MSAtIFRoZSBrZXkgb2YgdGhlIGZpcnN0IHByb3BlcnR5IHRvIGNoZWNrIHRoZSBvYmplY3QgZm9yLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleTIgLSBUaGUga2V5IG9mIHRoZSBzZWNvbmQgcHJvcGVydHkgdG8gY2hlY2sgdGhlIG9iamVjdCBmb3IuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gYHRydWVgIGlmIGF0IGxlYXN0IG9uZSBvZiB0aGUgcHJvcGVydGllcyBleGlzdHMgaW4gdGhlIG9iamVjdCwgYGZhbHNlYCBpZiBuZWl0aGVyIGV4aXN0LlxyXG4gICAgICovXHJcbiAgICBoYXNFaXRoZXI6IGZ1bmN0aW9uIChvYmplY3QsIGtleTEsIGtleTIpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIG9iamVjdC5oYXNPd25Qcm9wZXJ0eShrZXkxKSB8fCBvYmplY3QuaGFzT3duUHJvcGVydHkoa2V5Mik7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHJldHVybmVkIHZhbHVlIHNldHMgd2hhdCB0aGUgcHJvcGVydHkgd2lsbCBiZSBhdCB0aGUgU1RBUlQgb2YgdGhlIHBhcnRpY2xlcyBsaWZlLCBvbiBlbWl0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3AjZGVmYXVsdEVtaXRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgcGFydGljbGUuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt2YWx1ZV0gLSBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgbmV3IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eS5cclxuICAgICAqL1xyXG4gICAgZGVmYXVsdEVtaXQ6IGZ1bmN0aW9uIChwYXJ0aWNsZSwga2V5LCB2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHJldHVybmVkIHZhbHVlIHVwZGF0ZXMgdGhlIHByb3BlcnR5IGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHBhcnRpY2xlcyBsaWZlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3AjZGVmYXVsdFVwZGF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZS5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdCAtIFRoZSBUIHZhbHVlIChiZXR3ZWVuIDAgYW5kIDEpXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgbmV3IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eS5cclxuICAgICAqL1xyXG4gICAgZGVmYXVsdFVwZGF0ZTogZnVuY3Rpb24gKHBhcnRpY2xlLCBrZXksIHQsIHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbiBgb25FbWl0YCBjYWxsYmFjayB0aGF0IHJldHVybnMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHByb3BlcnR5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3Ajc3RhdGljVmFsdWVFbWl0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eS5cclxuICAgICAqL1xyXG4gICAgc3RhdGljVmFsdWVFbWl0OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnR5VmFsdWU7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW4gYG9uVXBkYXRlYCBjYWxsYmFjayB0aGF0IHJldHVybnMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHByb3BlcnR5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3Ajc3RhdGljVmFsdWVVcGRhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge251bWJlcn0gVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHByb3BlcnR5LlxyXG4gICAgICovXHJcbiAgICBzdGF0aWNWYWx1ZVVwZGF0ZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eVZhbHVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuIGBvbkVtaXRgIGNhbGxiYWNrIHRoYXQgcmV0dXJucyBhIHJhbmRvbSB2YWx1ZSBmcm9tIHRoZSBjdXJyZW50IHZhbHVlIGFycmF5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3AjcmFuZG9tU3RhdGljVmFsdWVFbWl0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBuZXcgdmFsdWUgb2YgdGhlIHByb3BlcnR5LlxyXG4gICAgICovXHJcbiAgICByYW5kb21TdGF0aWNWYWx1ZUVtaXQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHJhbmRvbUluZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGhpcy5wcm9wZXJ0eVZhbHVlLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BlcnR5VmFsdWVbcmFuZG9tSW5kZXhdO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuIGBvbkVtaXRgIGNhbGxiYWNrIHRoYXQgcmV0dXJucyBhIHZhbHVlIGJldHdlZW4gdGhlIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcCNzdGFydH0gYW5kXHJcbiAgICAgKiB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3AjZW5kfSByYW5nZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI3JhbmRvbVJhbmdlZFZhbHVlRW1pdFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZS5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBuZXcgdmFsdWUgb2YgdGhlIHByb3BlcnR5LlxyXG4gICAgICovXHJcbiAgICByYW5kb21SYW5nZWRWYWx1ZUVtaXQ6IGZ1bmN0aW9uIChwYXJ0aWNsZSwga2V5KVxyXG4gICAge1xyXG4gICAgICAgIHZhciB2YWx1ZSA9IEZsb2F0QmV0d2Vlbih0aGlzLnN0YXJ0LCB0aGlzLmVuZCk7XHJcblxyXG4gICAgICAgIGlmIChwYXJ0aWNsZSAmJiBwYXJ0aWNsZS5kYXRhW2tleV0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwYXJ0aWNsZS5kYXRhW2tleV0ubWluID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW4gYG9uRW1pdGAgY2FsbGJhY2sgdGhhdCByZXR1cm5zIGEgc3RlcHBlZCB2YWx1ZSBiZXR3ZWVuIHRoZVxyXG4gICAgICoge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI3N0YXJ0fSBhbmQge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI2VuZH1cclxuICAgICAqIHJhbmdlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3Ajc3RlcHBlZEVtaXRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge251bWJlcn0gVGhlIG5ldyB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuXHJcbiAgICAgKi9cclxuICAgIHN0ZXBwZWRFbWl0OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBjdXJyZW50ID0gdGhpcy5jb3VudGVyO1xyXG5cclxuICAgICAgICB2YXIgbmV4dCA9IHRoaXMuY291bnRlciArICh0aGlzLmVuZCAtIHRoaXMuc3RhcnQpIC8gdGhpcy5zdGVwcztcclxuXHJcbiAgICAgICAgdGhpcy5jb3VudGVyID0gV3JhcChuZXh0LCB0aGlzLnN0YXJ0LCB0aGlzLmVuZCk7XHJcblxyXG4gICAgICAgIHJldHVybiBjdXJyZW50O1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuIGBvbkVtaXRgIGNhbGxiYWNrIGZvciBhbiBlYXNlZCBwcm9wZXJ0eS5cclxuICAgICAqXHJcbiAgICAgKiBJdCBwcmVwYXJlcyB0aGUgcGFydGljbGUgZm9yIGVhc2luZyBieSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3AjZWFzZVZhbHVlVXBkYXRlfS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI2Vhc2VkVmFsdWVFbWl0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIHBhcnRpY2xlLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9IHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcCNzdGFydH0sIGFzIHRoZSBuZXcgdmFsdWUgb2YgdGhlIHByb3BlcnR5LlxyXG4gICAgICovXHJcbiAgICBlYXNlZFZhbHVlRW1pdDogZnVuY3Rpb24gKHBhcnRpY2xlLCBrZXkpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHBhcnRpY2xlICYmIHBhcnRpY2xlLmRhdGFba2V5XSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBkYXRhID0gcGFydGljbGUuZGF0YVtrZXldO1xyXG5cclxuICAgICAgICAgICAgZGF0YS5taW4gPSB0aGlzLnN0YXJ0O1xyXG4gICAgICAgICAgICBkYXRhLm1heCA9IHRoaXMuZW5kO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW4gYG9uVXBkYXRlYCBjYWxsYmFjayB0aGF0IHJldHVybnMgYW4gZWFzZWQgdmFsdWUgYmV0d2VlbiB0aGVcclxuICAgICAqIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcCNzdGFydH0gYW5kIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcCNlbmR9XHJcbiAgICAgKiByYW5nZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wI2Vhc2VWYWx1ZVVwZGF0ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBwYXJ0aWNsZS5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdCAtIFRoZSBUIHZhbHVlIChiZXR3ZWVuIDAgYW5kIDEpXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgbmV3IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eS5cclxuICAgICAqL1xyXG4gICAgZWFzZVZhbHVlVXBkYXRlOiBmdW5jdGlvbiAocGFydGljbGUsIGtleSwgdClcclxuICAgIHtcclxuICAgICAgICB2YXIgZGF0YSA9IHBhcnRpY2xlLmRhdGFba2V5XTtcclxuXHJcbiAgICAgICAgcmV0dXJuIChkYXRhLm1heCAtIGRhdGEubWluKSAqIHRoaXMuZWFzZSh0KSArIGRhdGEubWluO1xyXG4gICAgfVxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRW1pdHRlck9wO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBHZXRGYXN0VmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0RmFzdFZhbHVlJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBUaGUgR3Jhdml0eVdlbGwgYWN0aW9uIGFwcGxpZXMgYSBmb3JjZSBvbiB0aGUgcGFydGljbGUgdG8gZHJhdyBpdCB0b3dhcmRzLCBvciByZXBlbCBpdCBmcm9tLCBhIHNpbmdsZSBwb2ludC5cclxuICogXHJcbiAqIFRoZSBmb3JjZSBhcHBsaWVkIGlzIGludmVyc2VseSBwcm9wb3J0aW9uYWwgdG8gdGhlIHNxdWFyZSBvZiB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgcGFydGljbGUgdG8gdGhlIHBvaW50LCBpbiBhY2NvcmRhbmNlIHdpdGggTmV3dG9uJ3MgbGF3IG9mIGdyYXZpdHkuXHJcbiAqIFxyXG4gKiBUaGlzIHNpbXVsYXRlcyB0aGUgZWZmZWN0IG9mIGdyYXZpdHkgb3ZlciBsYXJnZSBkaXN0YW5jZXMgKGFzIGJldHdlZW4gcGxhbmV0cywgZm9yIGV4YW1wbGUpLlxyXG4gKlxyXG4gKiBAY2xhc3MgR3Jhdml0eVdlbGxcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0geyhudW1iZXJ8UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5HcmF2aXR5V2VsbENvbmZpZyl9IFt4PTBdIC0gVGhlIHggY29vcmRpbmF0ZSBvZiB0aGUgR3Jhdml0eSBXZWxsLCBpbiB3b3JsZCBzcGFjZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt5PTBdIC0gVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGUgR3Jhdml0eSBXZWxsLCBpbiB3b3JsZCBzcGFjZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtwb3dlcj0wXSAtIFRoZSBzdHJlbmd0aCBvZiB0aGUgZ3Jhdml0eSBmb3JjZSAtIGxhcmdlciBudW1iZXJzIHByb2R1Y2UgYSBzdHJvbmdlciBmb3JjZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtlcHNpbG9uPTEwMF0gLSBUaGUgbWluaW11bSBkaXN0YW5jZSBmb3Igd2hpY2ggdGhlIGdyYXZpdHkgZm9yY2UgaXMgY2FsY3VsYXRlZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtncmF2aXR5PTUwXSAtIFRoZSBncmF2aXRhdGlvbmFsIGZvcmNlIG9mIHRoaXMgR3Jhdml0eSBXZWxsLlxyXG4gKi9cclxudmFyIEdyYXZpdHlXZWxsID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIEdyYXZpdHlXZWxsICh4LCB5LCBwb3dlciwgZXBzaWxvbiwgZ3Jhdml0eSlcclxuICAgIHtcclxuICAgICAgICBpZiAodHlwZW9mIHggPT09ICdvYmplY3QnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGNvbmZpZyA9IHg7XHJcblxyXG4gICAgICAgICAgICB4ID0gR2V0RmFzdFZhbHVlKGNvbmZpZywgJ3gnLCAwKTtcclxuICAgICAgICAgICAgeSA9IEdldEZhc3RWYWx1ZShjb25maWcsICd5JywgMCk7XHJcbiAgICAgICAgICAgIHBvd2VyID0gR2V0RmFzdFZhbHVlKGNvbmZpZywgJ3Bvd2VyJywgMCk7XHJcbiAgICAgICAgICAgIGVwc2lsb24gPSBHZXRGYXN0VmFsdWUoY29uZmlnLCAnZXBzaWxvbicsIDEwMCk7XHJcbiAgICAgICAgICAgIGdyYXZpdHkgPSBHZXRGYXN0VmFsdWUoY29uZmlnLCAnZ3Jhdml0eScsIDUwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZCkgeyB4ID0gMDsgfVxyXG4gICAgICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSAwOyB9XHJcbiAgICAgICAgICAgIGlmIChwb3dlciA9PT0gdW5kZWZpbmVkKSB7IHBvd2VyID0gMDsgfVxyXG4gICAgICAgICAgICBpZiAoZXBzaWxvbiA9PT0gdW5kZWZpbmVkKSB7IGVwc2lsb24gPSAxMDA7IH1cclxuICAgICAgICAgICAgaWYgKGdyYXZpdHkgPT09IHVuZGVmaW5lZCkgeyBncmF2aXR5ID0gNTA7IH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB4IGNvb3JkaW5hdGUgb2YgdGhlIEdyYXZpdHkgV2VsbCwgaW4gd29ybGQgc3BhY2UuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkdyYXZpdHlXZWxsI3hcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMueCA9IHg7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB5IGNvb3JkaW5hdGUgb2YgdGhlIEdyYXZpdHkgV2VsbCwgaW4gd29ybGQgc3BhY2UuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkdyYXZpdHlXZWxsI3lcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMueSA9IHk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBhY3RpdmUgc3RhdGUgb2YgdGhlIEdyYXZpdHkgV2VsbC4gQW4gaW5hY3RpdmUgR3Jhdml0eSBXZWxsIHdpbGwgbm90IGluZmx1ZW5jZSBhbnkgcGFydGljbGVzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5HcmF2aXR5V2VsbCNhY3RpdmVcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJbnRlcm5hbCBncmF2aXR5IHZhbHVlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5HcmF2aXR5V2VsbCNfZ3Jhdml0eVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9ncmF2aXR5ID0gZ3Jhdml0eTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW50ZXJuYWwgcG93ZXIgdmFsdWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkdyYXZpdHlXZWxsI19wb3dlclxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fcG93ZXIgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJbnRlcm5hbCBlcHNpbG9uIHZhbHVlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5HcmF2aXR5V2VsbCNfZXBzaWxvblxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fZXBzaWxvbiA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBzdHJlbmd0aCBvZiB0aGUgZ3Jhdml0eSBmb3JjZSAtIGxhcmdlciBudW1iZXJzIHByb2R1Y2UgYSBzdHJvbmdlciBmb3JjZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuR3Jhdml0eVdlbGwjcG93ZXJcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucG93ZXIgPSBwb3dlcjtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIG1pbmltdW0gZGlzdGFuY2UgZm9yIHdoaWNoIHRoZSBncmF2aXR5IGZvcmNlIGlzIGNhbGN1bGF0ZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkdyYXZpdHlXZWxsI2Vwc2lsb25cclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZXBzaWxvbiA9IGVwc2lsb247XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGFrZXMgYSBQYXJ0aWNsZSBhbmQgdXBkYXRlcyBpdCBiYXNlZCBvbiB0aGUgcHJvcGVydGllcyBvZiB0aGlzIEdyYXZpdHkgV2VsbC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuR3Jhdml0eVdlbGwjdXBkYXRlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGV9IHBhcnRpY2xlIC0gVGhlIFBhcnRpY2xlIHRvIHVwZGF0ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWx0YSAtIFRoZSBkZWx0YSB0aW1lIGluIG1zLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0ZXAgLSBUaGUgZGVsdGEgdmFsdWUgZGl2aWRlZCBieSAxMDAwLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGU6IGZ1bmN0aW9uIChwYXJ0aWNsZSwgZGVsdGEpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHggPSB0aGlzLnggLSBwYXJ0aWNsZS54O1xyXG4gICAgICAgIHZhciB5ID0gdGhpcy55IC0gcGFydGljbGUueTtcclxuICAgICAgICB2YXIgZFNxID0geCAqIHggKyB5ICogeTtcclxuXHJcbiAgICAgICAgaWYgKGRTcSA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBkID0gTWF0aC5zcXJ0KGRTcSk7XHJcblxyXG4gICAgICAgIGlmIChkU3EgPCB0aGlzLl9lcHNpbG9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZFNxID0gdGhpcy5fZXBzaWxvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBmYWN0b3IgPSAoKHRoaXMuX3Bvd2VyICogZGVsdGEpIC8gKGRTcSAqIGQpKSAqIDEwMDtcclxuXHJcbiAgICAgICAgcGFydGljbGUudmVsb2NpdHlYICs9IHggKiBmYWN0b3I7XHJcbiAgICAgICAgcGFydGljbGUudmVsb2NpdHlZICs9IHkgKiBmYWN0b3I7XHJcbiAgICB9LFxyXG5cclxuICAgIGVwc2lsb246IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIE1hdGguc3FydCh0aGlzLl9lcHNpbG9uKTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Vwc2lsb24gPSB2YWx1ZSAqIHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIHBvd2VyOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3dlciAvIHRoaXMuX2dyYXZpdHk7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9wb3dlciA9IHZhbHVlICogdGhpcy5fZ3Jhdml0eTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICBncmF2aXR5OiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9ncmF2aXR5O1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHB3ciA9IHRoaXMucG93ZXI7XHJcbiAgICAgICAgICAgIHRoaXMuX2dyYXZpdHkgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wb3dlciA9IHB3cjtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEdyYXZpdHlXZWxsO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBEZWdUb1JhZCA9IHJlcXVpcmUoJy4uLy4uL21hdGgvRGVnVG9SYWQnKTtcclxudmFyIERpc3RhbmNlQmV0d2VlbiA9IHJlcXVpcmUoJy4uLy4uL21hdGgvZGlzdGFuY2UvRGlzdGFuY2VCZXR3ZWVuJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIFBhcnRpY2xlIGlzIGEgc2ltcGxlIEdhbWUgT2JqZWN0IGNvbnRyb2xsZWQgYnkgYSBQYXJ0aWNsZSBFbWl0dGVyIGFuZCBNYW5hZ2VyLCBhbmQgcmVuZGVyZWQgYnkgdGhlIE1hbmFnZXIuXHJcbiAqIEl0IHVzZXMgaXRzIG93biBsaWdodHdlaWdodCBwaHlzaWNzIHN5c3RlbSwgYW5kIGNhbiBpbnRlcmFjdCBvbmx5IHdpdGggaXRzIEVtaXR0ZXIncyBib3VuZHMgYW5kIHpvbmVzLlxyXG4gKlxyXG4gKiBAY2xhc3MgUGFydGljbGVcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyfSBlbWl0dGVyIC0gVGhlIEVtaXR0ZXIgdG8gd2hpY2ggdGhpcyBQYXJ0aWNsZSBiZWxvbmdzLlxyXG4gKi9cclxudmFyIFBhcnRpY2xlID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIFBhcnRpY2xlIChlbWl0dGVyKVxyXG4gICAge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBFbWl0dGVyIHRvIHdoaWNoIHRoaXMgUGFydGljbGUgYmVsb25ncy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEEgUGFydGljbGUgY2FuIG9ubHkgYmVsb25nIHRvIGEgc2luZ2xlIEVtaXR0ZXIgYW5kIGlzIGNyZWF0ZWQsIHVwZGF0ZWQgYW5kIGRlc3Ryb3llZCB2aWEgaXQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlI2VtaXR0ZXJcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5lbWl0dGVyID0gZW1pdHRlcjtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHRleHR1cmUgZnJhbWUgdXNlZCB0byByZW5kZXIgdGhpcyBQYXJ0aWNsZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGUjZnJhbWVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlRleHR1cmVzLkZyYW1lfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZyYW1lID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHggY29vcmRpbmF0ZSBvZiB0aGlzIFBhcnRpY2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSN4XHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy54ID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHkgY29vcmRpbmF0ZSBvZiB0aGlzIFBhcnRpY2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSN5XHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy55ID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHggdmVsb2NpdHkgb2YgdGhpcyBQYXJ0aWNsZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGUjdmVsb2NpdHlYXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy52ZWxvY2l0eVggPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgeSB2ZWxvY2l0eSBvZiB0aGlzIFBhcnRpY2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSN2ZWxvY2l0eVlcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnZlbG9jaXR5WSA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB4IGFjY2VsZXJhdGlvbiBvZiB0aGlzIFBhcnRpY2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSNhY2NlbGVyYXRpb25YXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5hY2NlbGVyYXRpb25YID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHkgYWNjZWxlcmF0aW9uIG9mIHRoaXMgUGFydGljbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlI2FjY2VsZXJhdGlvbllcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFjY2VsZXJhdGlvblkgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbWF4aW11bSBob3Jpem9udGFsIHZlbG9jaXR5IHRoaXMgUGFydGljbGUgY2FuIHRyYXZlbCBhdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGUjbWF4VmVsb2NpdHlYXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAxMDAwMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubWF4VmVsb2NpdHlYID0gMTAwMDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBtYXhpbXVtIHZlcnRpY2FsIHZlbG9jaXR5IHRoaXMgUGFydGljbGUgY2FuIHRyYXZlbCBhdC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGUjbWF4VmVsb2NpdHlZXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAxMDAwMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubWF4VmVsb2NpdHlZID0gMTAwMDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBib3VuY2luZXNzLCBvciByZXN0aXR1dGlvbiwgb2YgdGhpcyBQYXJ0aWNsZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGUjYm91bmNlXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ib3VuY2UgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaG9yaXpvbnRhbCBzY2FsZSBvZiB0aGlzIFBhcnRpY2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSNzY2FsZVhcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjYWxlWCA9IDE7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB2ZXJ0aWNhbCBzY2FsZSBvZiB0aGlzIFBhcnRpY2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSNzY2FsZVlcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNjYWxlWSA9IDE7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBhbHBoYSB2YWx1ZSBvZiB0aGlzIFBhcnRpY2xlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSNhbHBoYVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWxwaGEgPSAxO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgYW5nbGUgb2YgdGhpcyBQYXJ0aWNsZSBpbiBkZWdyZWVzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSNhbmdsZVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYW5nbGUgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgYW5nbGUgb2YgdGhpcyBQYXJ0aWNsZSBpbiByYWRpYW5zLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSNyb3RhdGlvblxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucm90YXRpb24gPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdGludCBhcHBsaWVkIHRvIHRoaXMgUGFydGljbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlI3RpbnRcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAd2ViZ2xPbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy50aW50ID0gMHhmZmZmZmY7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBsaWZlc3BhbiBvZiB0aGlzIFBhcnRpY2xlIGluIG1zLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSNsaWZlXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAxMDAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5saWZlID0gMTAwMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGN1cnJlbnQgbGlmZSBvZiB0aGlzIFBhcnRpY2xlIGluIG1zLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSNsaWZlQ3VycmVudFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMTAwMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubGlmZUN1cnJlbnQgPSAxMDAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZGVsYXkgYXBwbGllZCB0byB0aGlzIFBhcnRpY2xlIHVwb24gZW1pc3Npb24sIGluIG1zLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSNkZWxheUN1cnJlbnRcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRlbGF5Q3VycmVudCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBub3JtYWxpemVkIGxpZmVzcGFuIFQgdmFsdWUsIHdoZXJlIDAgaXMgdGhlIHN0YXJ0IGFuZCAxIGlzIHRoZSBlbmQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlI2xpZmVUXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5saWZlVCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBkYXRhIHVzZWQgYnkgdGhlIGVhc2UgZXF1YXRpb24uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlI2RhdGFcclxuICAgICAgICAgKiBAdHlwZSB7b2JqZWN0fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IHtcclxuICAgICAgICAgICAgdGludDogeyBtaW46IDB4ZmZmZmZmLCBtYXg6IDB4ZmZmZmZmLCBjdXJyZW50OiAweGZmZmZmZiB9LFxyXG4gICAgICAgICAgICBhbHBoYTogeyBtaW46IDEsIG1heDogMSB9LFxyXG4gICAgICAgICAgICByb3RhdGU6IHsgbWluOiAwLCBtYXg6IDAgfSxcclxuICAgICAgICAgICAgc2NhbGVYOiB7IG1pbjogMSwgbWF4OiAxIH0sXHJcbiAgICAgICAgICAgIHNjYWxlWTogeyBtaW46IDEsIG1heDogMSB9XHJcbiAgICAgICAgfTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3MgdG8gc2VlIGlmIHRoaXMgUGFydGljbGUgaXMgYWxpdmUgYW5kIHVwZGF0aW5nLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSNpc0FsaXZlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhpcyBQYXJ0aWNsZSBpcyBhbGl2ZSBhbmQgdXBkYXRpbmcsIG90aGVyd2lzZSBgZmFsc2VgLlxyXG4gICAgICovXHJcbiAgICBpc0FsaXZlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5saWZlQ3VycmVudCA+IDApO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc2V0cyB0aGUgcG9zaXRpb24gb2YgdGhpcyBwYXJ0aWNsZSBiYWNrIHRvIHplcm8uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlI3Jlc2V0UG9zaXRpb25cclxuICAgICAqIEBzaW5jZSAzLjE2LjBcclxuICAgICAqL1xyXG4gICAgcmVzZXRQb3NpdGlvbjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLnggPSAwO1xyXG4gICAgICAgIHRoaXMueSA9IDA7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RhcnRzIHRoaXMgUGFydGljbGUgZnJvbSB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlI2ZpcmVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIHggY29vcmRpbmF0ZSB0byBsYXVuY2ggdGhpcyBQYXJ0aWNsZSBmcm9tLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBjb29yZGluYXRlIHRvIGxhdW5jaCB0aGlzIFBhcnRpY2xlIGZyb20uXHJcbiAgICAgKi9cclxuICAgIGZpcmU6IGZ1bmN0aW9uICh4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIHZhciBlbWl0dGVyID0gdGhpcy5lbWl0dGVyO1xyXG5cclxuICAgICAgICB0aGlzLmZyYW1lID0gZW1pdHRlci5nZXRGcmFtZSgpO1xyXG5cclxuICAgICAgICBpZiAoZW1pdHRlci5lbWl0Wm9uZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBVcGRhdGVzIHBhcnRpY2xlLnggYW5kIHBhcnRpY2xlLnkgZHVyaW5nIHRoaXMgY2FsbFxyXG4gICAgICAgICAgICBlbWl0dGVyLmVtaXRab25lLmdldFBvaW50KHRoaXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmIChlbWl0dGVyLmZvbGxvdylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy54ICs9IGVtaXR0ZXIuZm9sbG93LnggKyBlbWl0dGVyLmZvbGxvd09mZnNldC54O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnggKz0gZW1pdHRlci54Lm9uRW1pdCh0aGlzLCAneCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnggKz0geDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoZW1pdHRlci5mb2xsb3cpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMueSArPSBlbWl0dGVyLmZvbGxvdy55ICsgZW1pdHRlci5mb2xsb3dPZmZzZXQueTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy55ICs9IGVtaXR0ZXIueS5vbkVtaXQodGhpcywgJ3knKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy55ICs9IHk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmxpZmUgPSBlbWl0dGVyLmxpZmVzcGFuLm9uRW1pdCh0aGlzLCAnbGlmZXNwYW4nKTtcclxuICAgICAgICB0aGlzLmxpZmVDdXJyZW50ID0gdGhpcy5saWZlO1xyXG4gICAgICAgIHRoaXMubGlmZVQgPSAwO1xyXG5cclxuICAgICAgICB2YXIgc3ggPSBlbWl0dGVyLnNwZWVkWC5vbkVtaXQodGhpcywgJ3NwZWVkWCcpO1xyXG4gICAgICAgIHZhciBzeSA9IChlbWl0dGVyLnNwZWVkWSkgPyBlbWl0dGVyLnNwZWVkWS5vbkVtaXQodGhpcywgJ3NwZWVkWScpIDogc3g7XHJcblxyXG4gICAgICAgIGlmIChlbWl0dGVyLnJhZGlhbClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciByYWQgPSBEZWdUb1JhZChlbWl0dGVyLmFuZ2xlLm9uRW1pdCh0aGlzLCAnYW5nbGUnKSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnZlbG9jaXR5WCA9IE1hdGguY29zKHJhZCkgKiBNYXRoLmFicyhzeCk7XHJcbiAgICAgICAgICAgIHRoaXMudmVsb2NpdHlZID0gTWF0aC5zaW4ocmFkKSAqIE1hdGguYWJzKHN5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZW1pdHRlci5tb3ZlVG8pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgbXggPSBlbWl0dGVyLm1vdmVUb1gub25FbWl0KHRoaXMsICdtb3ZlVG9YJyk7XHJcbiAgICAgICAgICAgIHZhciBteSA9IChlbWl0dGVyLm1vdmVUb1kpID8gZW1pdHRlci5tb3ZlVG9ZLm9uRW1pdCh0aGlzLCAnbW92ZVRvWScpIDogbXg7XHJcblxyXG4gICAgICAgICAgICB2YXIgYW5nbGUgPSBNYXRoLmF0YW4yKG15IC0gdGhpcy55LCBteCAtIHRoaXMueCk7XHJcblxyXG4gICAgICAgICAgICB2YXIgc3BlZWQgPSBEaXN0YW5jZUJldHdlZW4odGhpcy54LCB0aGlzLnksIG14LCBteSkgLyAodGhpcy5saWZlIC8gMTAwMCk7XHJcblxyXG4gICAgICAgICAgICAvLyAgV2Uga25vdyBob3cgbWFueSBwaXhlbHMgd2UgbmVlZCB0byBtb3ZlLCBidXQgaG93IGZhc3Q/XHJcbiAgICAgICAgICAgIC8vIHZhciBzcGVlZCA9IHRoaXMuZGlzdGFuY2VUb1hZKGRpc3BsYXlPYmplY3QsIHgsIHkpIC8gKG1heFRpbWUgLyAxMDAwKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudmVsb2NpdHlYID0gTWF0aC5jb3MoYW5nbGUpICogc3BlZWQ7XHJcbiAgICAgICAgICAgIHRoaXMudmVsb2NpdHlZID0gTWF0aC5zaW4oYW5nbGUpICogc3BlZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMudmVsb2NpdHlYID0gc3g7XHJcbiAgICAgICAgICAgIHRoaXMudmVsb2NpdHlZID0gc3k7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZW1pdHRlci5hY2NlbGVyYXRpb24pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmFjY2VsZXJhdGlvblggPSBlbWl0dGVyLmFjY2VsZXJhdGlvblgub25FbWl0KHRoaXMsICdhY2NlbGVyYXRpb25YJyk7XHJcbiAgICAgICAgICAgIHRoaXMuYWNjZWxlcmF0aW9uWSA9IGVtaXR0ZXIuYWNjZWxlcmF0aW9uWS5vbkVtaXQodGhpcywgJ2FjY2VsZXJhdGlvblknKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubWF4VmVsb2NpdHlYID0gZW1pdHRlci5tYXhWZWxvY2l0eVgub25FbWl0KHRoaXMsICdtYXhWZWxvY2l0eVgnKTtcclxuICAgICAgICB0aGlzLm1heFZlbG9jaXR5WSA9IGVtaXR0ZXIubWF4VmVsb2NpdHlZLm9uRW1pdCh0aGlzLCAnbWF4VmVsb2NpdHlZJyk7XHJcblxyXG4gICAgICAgIHRoaXMuZGVsYXlDdXJyZW50ID0gZW1pdHRlci5kZWxheS5vbkVtaXQodGhpcywgJ2RlbGF5Jyk7XHJcblxyXG4gICAgICAgIHRoaXMuc2NhbGVYID0gZW1pdHRlci5zY2FsZVgub25FbWl0KHRoaXMsICdzY2FsZVgnKTtcclxuICAgICAgICB0aGlzLnNjYWxlWSA9IChlbWl0dGVyLnNjYWxlWSkgPyBlbWl0dGVyLnNjYWxlWS5vbkVtaXQodGhpcywgJ3NjYWxlWScpIDogdGhpcy5zY2FsZVg7XHJcblxyXG4gICAgICAgIHRoaXMuYW5nbGUgPSBlbWl0dGVyLnJvdGF0ZS5vbkVtaXQodGhpcywgJ3JvdGF0ZScpO1xyXG4gICAgICAgIHRoaXMucm90YXRpb24gPSBEZWdUb1JhZCh0aGlzLmFuZ2xlKTtcclxuXHJcbiAgICAgICAgdGhpcy5ib3VuY2UgPSBlbWl0dGVyLmJvdW5jZS5vbkVtaXQodGhpcywgJ2JvdW5jZScpO1xyXG5cclxuICAgICAgICB0aGlzLmFscGhhID0gZW1pdHRlci5hbHBoYS5vbkVtaXQodGhpcywgJ2FscGhhJyk7XHJcblxyXG4gICAgICAgIHRoaXMudGludCA9IGVtaXR0ZXIudGludC5vbkVtaXQodGhpcywgJ3RpbnQnKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbiBpbnRlcm5hbCBtZXRob2QgdGhhdCBjYWxjdWxhdGVzIHRoZSB2ZWxvY2l0eSBvZiB0aGUgUGFydGljbGUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlI2NvbXB1dGVWZWxvY2l0eVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlcn0gZW1pdHRlciAtIFRoZSBFbWl0dGVyIHRoYXQgaXMgdXBkYXRpbmcgdGhpcyBQYXJ0aWNsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWx0YSAtIFRoZSBkZWx0YSB0aW1lIGluIG1zLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0ZXAgLSBUaGUgZGVsdGEgdmFsdWUgZGl2aWRlZCBieSAxMDAwLlxyXG4gICAgICogQHBhcmFtIHthcnJheX0gcHJvY2Vzc29ycyAtIFBhcnRpY2xlIHByb2Nlc3NvcnMgKGdyYXZpdHkgd2VsbHMpLlxyXG4gICAgICovXHJcbiAgICBjb21wdXRlVmVsb2NpdHk6IGZ1bmN0aW9uIChlbWl0dGVyLCBkZWx0YSwgc3RlcCwgcHJvY2Vzc29ycylcclxuICAgIHtcclxuICAgICAgICB2YXIgdnggPSB0aGlzLnZlbG9jaXR5WDtcclxuICAgICAgICB2YXIgdnkgPSB0aGlzLnZlbG9jaXR5WTtcclxuXHJcbiAgICAgICAgdmFyIGF4ID0gdGhpcy5hY2NlbGVyYXRpb25YO1xyXG4gICAgICAgIHZhciBheSA9IHRoaXMuYWNjZWxlcmF0aW9uWTtcclxuXHJcbiAgICAgICAgdmFyIG14ID0gdGhpcy5tYXhWZWxvY2l0eVg7XHJcbiAgICAgICAgdmFyIG15ID0gdGhpcy5tYXhWZWxvY2l0eVk7XHJcblxyXG4gICAgICAgIHZ4ICs9IChlbWl0dGVyLmdyYXZpdHlYICogc3RlcCk7XHJcbiAgICAgICAgdnkgKz0gKGVtaXR0ZXIuZ3Jhdml0eVkgKiBzdGVwKTtcclxuXHJcbiAgICAgICAgaWYgKGF4KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdnggKz0gKGF4ICogc3RlcCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYXkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2eSArPSAoYXkgKiBzdGVwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2eCA+IG14KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdnggPSBteDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodnggPCAtbXgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2eCA9IC1teDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2eSA+IG15KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdnkgPSBteTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodnkgPCAtbXkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2eSA9IC1teTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudmVsb2NpdHlYID0gdng7XHJcbiAgICAgICAgdGhpcy52ZWxvY2l0eVkgPSB2eTtcclxuXHJcbiAgICAgICAgLy8gIEFwcGx5IGFueSBhZGRpdGlvbmFsIHByb2Nlc3NvcnNcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2Nlc3NvcnMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm9jZXNzb3JzW2ldLnVwZGF0ZSh0aGlzLCBkZWx0YSwgc3RlcCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrcyBpZiB0aGlzIFBhcnRpY2xlIGlzIHN0aWxsIHdpdGhpbiB0aGUgYm91bmRzIGRlZmluZWQgYnkgdGhlIGdpdmVuIEVtaXR0ZXIuXHJcbiAgICAgKlxyXG4gICAgICogSWYgbm90LCBhbmQgZGVwZW5kaW5nIG9uIHRoZSBFbWl0dGVyIGNvbGxpc2lvbiBmbGFncywgdGhlIFBhcnRpY2xlIG1heSBlaXRoZXIgc3RvcCBvciByZWJvdW5kLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSNjaGVja0JvdW5kc1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlcn0gZW1pdHRlciAtIFRoZSBFbWl0dGVyIHRvIGNoZWNrIHRoZSBib3VuZHMgYWdhaW5zdC5cclxuICAgICAqL1xyXG4gICAgY2hlY2tCb3VuZHM6IGZ1bmN0aW9uIChlbWl0dGVyKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBib3VuZHMgPSBlbWl0dGVyLmJvdW5kcztcclxuICAgICAgICB2YXIgYm91bmNlID0gLXRoaXMuYm91bmNlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy54IDwgYm91bmRzLnggJiYgZW1pdHRlci5jb2xsaWRlTGVmdClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMueCA9IGJvdW5kcy54O1xyXG4gICAgICAgICAgICB0aGlzLnZlbG9jaXR5WCAqPSBib3VuY2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMueCA+IGJvdW5kcy5yaWdodCAmJiBlbWl0dGVyLmNvbGxpZGVSaWdodClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMueCA9IGJvdW5kcy5yaWdodDtcclxuICAgICAgICAgICAgdGhpcy52ZWxvY2l0eVggKj0gYm91bmNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMueSA8IGJvdW5kcy55ICYmIGVtaXR0ZXIuY29sbGlkZVRvcClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMueSA9IGJvdW5kcy55O1xyXG4gICAgICAgICAgICB0aGlzLnZlbG9jaXR5WSAqPSBib3VuY2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMueSA+IGJvdW5kcy5ib3R0b20gJiYgZW1pdHRlci5jb2xsaWRlQm90dG9tKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy55ID0gYm91bmRzLmJvdHRvbTtcclxuICAgICAgICAgICAgdGhpcy52ZWxvY2l0eVkgKj0gYm91bmNlO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWFpbiB1cGRhdGUgbWV0aG9kIGZvciB0aGlzIFBhcnRpY2xlLlxyXG4gICAgICpcclxuICAgICAqIFVwZGF0ZXMgaXRzIGxpZmUgdmFsdWVzLCBjb21wdXRlcyB0aGUgdmVsb2NpdHkgYW5kIHJlcG9zaXRpb25zIHRoZSBQYXJ0aWNsZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGUjdXBkYXRlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGVsdGEgLSBUaGUgZGVsdGEgdGltZSBpbiBtcy5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGVwIC0gVGhlIGRlbHRhIHZhbHVlIGRpdmlkZWQgYnkgMTAwMC5cclxuICAgICAqIEBwYXJhbSB7YXJyYXl9IHByb2Nlc3NvcnMgLSBBbiBvcHRpb25hbCBhcnJheSBvZiB1cGRhdGUgcHJvY2Vzc29ycy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGlzIFBhcnRpY2xlIGhhcyBub3cgZXhwaXJlZCBhbmQgc2hvdWxkIGJlIHJlbW92ZWQsIG90aGVyd2lzZSBgZmFsc2VgIGlmIHN0aWxsIGFjdGl2ZS5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlOiBmdW5jdGlvbiAoZGVsdGEsIHN0ZXAsIHByb2Nlc3NvcnMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGVsYXlDdXJyZW50ID4gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsYXlDdXJyZW50IC09IGRlbHRhO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGVtaXR0ZXIgPSB0aGlzLmVtaXR0ZXI7XHJcblxyXG4gICAgICAgIC8vICBIb3cgZmFyIGFsb25nIGluIGxpZmUgaXMgdGhpcyBwYXJ0aWNsZT8gKHQgPSAwIHRvIDEpXHJcbiAgICAgICAgdmFyIHQgPSAxIC0gKHRoaXMubGlmZUN1cnJlbnQgLyB0aGlzLmxpZmUpO1xyXG5cclxuICAgICAgICB0aGlzLmxpZmVUID0gdDtcclxuXHJcbiAgICAgICAgdGhpcy5jb21wdXRlVmVsb2NpdHkoZW1pdHRlciwgZGVsdGEsIHN0ZXAsIHByb2Nlc3NvcnMpO1xyXG5cclxuICAgICAgICB0aGlzLnggKz0gdGhpcy52ZWxvY2l0eVggKiBzdGVwO1xyXG4gICAgICAgIHRoaXMueSArPSB0aGlzLnZlbG9jaXR5WSAqIHN0ZXA7XHJcblxyXG4gICAgICAgIGlmIChlbWl0dGVyLmJvdW5kcylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tCb3VuZHMoZW1pdHRlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZW1pdHRlci5kZWF0aFpvbmUgJiYgZW1pdHRlci5kZWF0aFpvbmUud2lsbEtpbGwodGhpcykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmxpZmVDdXJyZW50ID0gMDtcclxuXHJcbiAgICAgICAgICAgIC8vICBObyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBwYXJ0aWNsZSBoYXMgYmVlbiBraWxsZWRcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNjYWxlWCA9IGVtaXR0ZXIuc2NhbGVYLm9uVXBkYXRlKHRoaXMsICdzY2FsZVgnLCB0LCB0aGlzLnNjYWxlWCk7XHJcblxyXG4gICAgICAgIGlmIChlbWl0dGVyLnNjYWxlWSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2NhbGVZID0gZW1pdHRlci5zY2FsZVkub25VcGRhdGUodGhpcywgJ3NjYWxlWScsIHQsIHRoaXMuc2NhbGVZKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zY2FsZVkgPSB0aGlzLnNjYWxlWDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYW5nbGUgPSBlbWl0dGVyLnJvdGF0ZS5vblVwZGF0ZSh0aGlzLCAncm90YXRlJywgdCwgdGhpcy5hbmdsZSk7XHJcbiAgICAgICAgdGhpcy5yb3RhdGlvbiA9IERlZ1RvUmFkKHRoaXMuYW5nbGUpO1xyXG5cclxuICAgICAgICB0aGlzLmFscGhhID0gZW1pdHRlci5hbHBoYS5vblVwZGF0ZSh0aGlzLCAnYWxwaGEnLCB0LCB0aGlzLmFscGhhKTtcclxuXHJcbiAgICAgICAgdGhpcy50aW50ID0gZW1pdHRlci50aW50Lm9uVXBkYXRlKHRoaXMsICd0aW50JywgdCwgdGhpcy50aW50KTtcclxuXHJcbiAgICAgICAgdGhpcy5saWZlQ3VycmVudCAtPSBkZWx0YTtcclxuXHJcbiAgICAgICAgcmV0dXJuICh0aGlzLmxpZmVDdXJyZW50IDw9IDApO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBhcnRpY2xlO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBCbGVuZE1vZGVzID0gcmVxdWlyZSgnLi4vLi4vcmVuZGVyZXIvQmxlbmRNb2RlcycpO1xyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgQ29tcG9uZW50cyA9IHJlcXVpcmUoJy4uL2NvbXBvbmVudHMnKTtcclxudmFyIERlYXRoWm9uZSA9IHJlcXVpcmUoJy4vem9uZXMvRGVhdGhab25lJyk7XHJcbnZhciBFZGdlWm9uZSA9IHJlcXVpcmUoJy4vem9uZXMvRWRnZVpvbmUnKTtcclxudmFyIEVtaXR0ZXJPcCA9IHJlcXVpcmUoJy4vRW1pdHRlck9wJyk7XHJcbnZhciBHZXRGYXN0VmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0RmFzdFZhbHVlJyk7XHJcbnZhciBHZXRSYW5kb20gPSByZXF1aXJlKCcuLi8uLi91dGlscy9hcnJheS9HZXRSYW5kb20nKTtcclxudmFyIEhhc0FueSA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9IYXNBbnknKTtcclxudmFyIEhhc1ZhbHVlID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvb2JqZWN0L0hhc1ZhbHVlJyk7XHJcbnZhciBQYXJ0aWNsZSA9IHJlcXVpcmUoJy4vUGFydGljbGUnKTtcclxudmFyIFJhbmRvbVpvbmUgPSByZXF1aXJlKCcuL3pvbmVzL1JhbmRvbVpvbmUnKTtcclxudmFyIFJlY3RhbmdsZSA9IHJlcXVpcmUoJy4uLy4uL2dlb20vcmVjdGFuZ2xlL1JlY3RhbmdsZScpO1xyXG52YXIgU3RhYmxlU29ydCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL2FycmF5L1N0YWJsZVNvcnQnKTtcclxudmFyIFZlY3RvcjIgPSByZXF1aXJlKCcuLi8uLi9tYXRoL1ZlY3RvcjInKTtcclxudmFyIFdyYXAgPSByZXF1aXJlKCcuLi8uLi9tYXRoL1dyYXAnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgcGFydGljbGUgZW1pdHRlciByZXByZXNlbnRzIGEgc2luZ2xlIHBhcnRpY2xlIHN0cmVhbS5cclxuICogSXQgY29udHJvbHMgYSBwb29sIG9mIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlIFBhcnRpY2xlc30gYW5kIGlzIGNvbnRyb2xsZWQgYnkgYSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyIFBhcnRpY2xlIEVtaXR0ZXIgTWFuYWdlcn0uXHJcbiAqXHJcbiAqIEBjbGFzcyBQYXJ0aWNsZUVtaXR0ZXJcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5CbGVuZE1vZGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuTWFza1xyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TY3JvbGxGYWN0b3JcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVmlzaWJsZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyTWFuYWdlcn0gbWFuYWdlciAtIFRoZSBFbWl0dGVyIE1hbmFnZXIgdGhpcyBFbWl0dGVyIGJlbG9uZ3MgdG8uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJDb25maWd9IGNvbmZpZyAtIFNldHRpbmdzIGZvciB0aGlzIGVtaXR0ZXIuXHJcbiAqL1xyXG52YXIgUGFydGljbGVFbWl0dGVyID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBDb21wb25lbnRzLkJsZW5kTW9kZSxcclxuICAgICAgICBDb21wb25lbnRzLk1hc2ssXHJcbiAgICAgICAgQ29tcG9uZW50cy5TY3JvbGxGYWN0b3IsXHJcbiAgICAgICAgQ29tcG9uZW50cy5WaXNpYmxlXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gUGFydGljbGVFbWl0dGVyIChtYW5hZ2VyLCBjb25maWcpXHJcbiAgICB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIEVtaXR0ZXIgTWFuYWdlciB0aGlzIEVtaXR0ZXIgYmVsb25ncyB0by5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI21hbmFnZXJcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubWFuYWdlciA9IG1hbmFnZXI7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB0ZXh0dXJlIGFzc2lnbmVkIHRvIHBhcnRpY2xlcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3RleHR1cmVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlRleHR1cmVzLlRleHR1cmV9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy50ZXh0dXJlID0gbWFuYWdlci50ZXh0dXJlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdGV4dHVyZSBmcmFtZXMgYXNzaWduZWQgdG8gcGFydGljbGVzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZnJhbWVzXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5UZXh0dXJlcy5GcmFtZVtdfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZnJhbWVzID0gWyBtYW5hZ2VyLmRlZmF1bHRGcmFtZSBdO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZGVmYXVsdCB0ZXh0dXJlIGZyYW1lIGFzc2lnbmVkIHRvIHBhcnRpY2xlcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2RlZmF1bHRGcmFtZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuVGV4dHVyZXMuRnJhbWV9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0RnJhbWUgPSBtYW5hZ2VyLmRlZmF1bHRGcmFtZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogTmFtZXMgb2Ygc2ltcGxlIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2NvbmZpZ0Zhc3RNYXBcclxuICAgICAgICAgKiBAdHlwZSB7b2JqZWN0fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY29uZmlnRmFzdE1hcCA9IFtcclxuICAgICAgICAgICAgJ2FjdGl2ZScsXHJcbiAgICAgICAgICAgICdibGVuZE1vZGUnLFxyXG4gICAgICAgICAgICAnY29sbGlkZUJvdHRvbScsXHJcbiAgICAgICAgICAgICdjb2xsaWRlTGVmdCcsXHJcbiAgICAgICAgICAgICdjb2xsaWRlUmlnaHQnLFxyXG4gICAgICAgICAgICAnY29sbGlkZVRvcCcsXHJcbiAgICAgICAgICAgICdkZWF0aENhbGxiYWNrJyxcclxuICAgICAgICAgICAgJ2RlYXRoQ2FsbGJhY2tTY29wZScsXHJcbiAgICAgICAgICAgICdlbWl0Q2FsbGJhY2snLFxyXG4gICAgICAgICAgICAnZW1pdENhbGxiYWNrU2NvcGUnLFxyXG4gICAgICAgICAgICAnZm9sbG93JyxcclxuICAgICAgICAgICAgJ2ZyZXF1ZW5jeScsXHJcbiAgICAgICAgICAgICdncmF2aXR5WCcsXHJcbiAgICAgICAgICAgICdncmF2aXR5WScsXHJcbiAgICAgICAgICAgICdtYXhQYXJ0aWNsZXMnLFxyXG4gICAgICAgICAgICAnbmFtZScsXHJcbiAgICAgICAgICAgICdvbicsXHJcbiAgICAgICAgICAgICdwYXJ0aWNsZUJyaW5nVG9Ub3AnLFxyXG4gICAgICAgICAgICAncGFydGljbGVDbGFzcycsXHJcbiAgICAgICAgICAgICdyYWRpYWwnLFxyXG4gICAgICAgICAgICAndGltZVNjYWxlJyxcclxuICAgICAgICAgICAgJ3RyYWNrVmlzaWJsZScsXHJcbiAgICAgICAgICAgICd2aXNpYmxlJ1xyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIE5hbWVzIG9mIGNvbXBsZXggY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjY29uZmlnT3BNYXBcclxuICAgICAgICAgKiBAdHlwZSB7b2JqZWN0fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY29uZmlnT3BNYXAgPSBbXHJcbiAgICAgICAgICAgICdhY2NlbGVyYXRpb25YJyxcclxuICAgICAgICAgICAgJ2FjY2VsZXJhdGlvblknLFxyXG4gICAgICAgICAgICAnYW5nbGUnLFxyXG4gICAgICAgICAgICAnYWxwaGEnLFxyXG4gICAgICAgICAgICAnYm91bmNlJyxcclxuICAgICAgICAgICAgJ2RlbGF5JyxcclxuICAgICAgICAgICAgJ2xpZmVzcGFuJyxcclxuICAgICAgICAgICAgJ21heFZlbG9jaXR5WCcsXHJcbiAgICAgICAgICAgICdtYXhWZWxvY2l0eVknLFxyXG4gICAgICAgICAgICAnbW92ZVRvWCcsXHJcbiAgICAgICAgICAgICdtb3ZlVG9ZJyxcclxuICAgICAgICAgICAgJ3F1YW50aXR5JyxcclxuICAgICAgICAgICAgJ3JvdGF0ZScsXHJcbiAgICAgICAgICAgICdzY2FsZVgnLFxyXG4gICAgICAgICAgICAnc2NhbGVZJyxcclxuICAgICAgICAgICAgJ3NwZWVkWCcsXHJcbiAgICAgICAgICAgICdzcGVlZFknLFxyXG4gICAgICAgICAgICAndGludCcsXHJcbiAgICAgICAgICAgICd4JyxcclxuICAgICAgICAgICAgJ3knXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIG5hbWUgb2YgdGhpcyBQYXJ0aWNsZSBFbWl0dGVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogRW1wdHkgYnkgZGVmYXVsdCBhbmQgbmV2ZXIgcG9wdWxhdGVkIGJ5IFBoYXNlciwgdGhpcyBpcyBsZWZ0IGZvciBkZXZlbG9wZXJzIHRvIHVzZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI25hbWVcclxuICAgICAgICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAgICAgICAqIEBkZWZhdWx0ICcnXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5uYW1lID0gJyc7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBQYXJ0aWNsZSBDbGFzcyB3aGljaCB3aWxsIGJlIGVtaXR0ZWQgYnkgdGhpcyBFbWl0dGVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjcGFydGljbGVDbGFzc1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBhcnRpY2xlQ2xhc3MgPSBQYXJ0aWNsZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHgtY29vcmRpbmF0ZSBvZiB0aGUgcGFydGljbGUgb3JpZ2luICh3aGVyZSBwYXJ0aWNsZXMgd2lsbCBiZSBlbWl0dGVkKS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3hcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3B9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0UG9zaXRpb25cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnggPSBuZXcgRW1pdHRlck9wKGNvbmZpZywgJ3gnLCAwLCB0cnVlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgcGFydGljbGUgb3JpZ2luICh3aGVyZSBwYXJ0aWNsZXMgd2lsbCBiZSBlbWl0dGVkKS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3lcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3B9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0UG9zaXRpb25cclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnkgPSBuZXcgRW1pdHRlck9wKGNvbmZpZywgJ3knLCAwLCB0cnVlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByYWRpYWwgZW1pdHRlciB3aWxsIGVtaXQgcGFydGljbGVzIGluIGFsbCBkaXJlY3Rpb25zIGJldHdlZW4gYW5nbGUgbWluIGFuZCBtYXgsXHJcbiAgICAgICAgICogdXNpbmcge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NwZWVkfSBhcyB0aGUgdmFsdWUuIElmIHNldCB0byBmYWxzZSB0aGVuIHRoaXMgYWN0cyBhcyBhIHBvaW50IEVtaXR0ZXIuXHJcbiAgICAgICAgICogQSBwb2ludCBlbWl0dGVyIHdpbGwgZW1pdCBwYXJ0aWNsZXMgb25seSBpbiB0aGUgZGlyZWN0aW9uIGRlcml2ZWQgZnJvbSB0aGUgc3BlZWRYIGFuZCBzcGVlZFkgdmFsdWVzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjcmFkaWFsXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0UmFkaWFsXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yYWRpYWwgPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBIb3Jpem9udGFsIGFjY2VsZXJhdGlvbiBhcHBsaWVkIHRvIGVtaXR0ZWQgcGFydGljbGVzLCBpbiBwaXhlbHMgcGVyIHNlY29uZCBzcXVhcmVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZ3Jhdml0eVhcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKiBAc2VlIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldEdyYXZpdHlcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmdyYXZpdHlYID0gMDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVmVydGljYWwgYWNjZWxlcmF0aW9uIGFwcGxpZWQgdG8gZW1pdHRlZCBwYXJ0aWNsZXMsIGluIHBpeGVscyBwZXIgc2Vjb25kIHNxdWFyZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNncmF2aXR5WVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0R3Jhdml0eVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZ3Jhdml0eVkgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXaGV0aGVyIGFjY2VsZXJhdGlvblggYW5kIGFjY2VsZXJhdGlvblkgYXJlIG5vbi16ZXJvLiBTZXQgYXV0b21hdGljYWxseSBkdXJpbmcgY29uZmlndXJhdGlvbi5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2FjY2VsZXJhdGlvblxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5hY2NlbGVyYXRpb24gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSG9yaXpvbnRhbCBhY2NlbGVyYXRpb24gYXBwbGllZCB0byBlbWl0dGVkIHBhcnRpY2xlcywgaW4gcGl4ZWxzIHBlciBzZWNvbmQgc3F1YXJlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2FjY2VsZXJhdGlvblhcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3B9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWNjZWxlcmF0aW9uWCA9IG5ldyBFbWl0dGVyT3AoY29uZmlnLCAnYWNjZWxlcmF0aW9uWCcsIDAsIHRydWUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBWZXJ0aWNhbCBhY2NlbGVyYXRpb24gYXBwbGllZCB0byBlbWl0dGVkIHBhcnRpY2xlcywgaW4gcGl4ZWxzIHBlciBzZWNvbmQgc3F1YXJlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2FjY2VsZXJhdGlvbllcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3B9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWNjZWxlcmF0aW9uWSA9IG5ldyBFbWl0dGVyT3AoY29uZmlnLCAnYWNjZWxlcmF0aW9uWScsIDAsIHRydWUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbWF4aW11bSBob3Jpem9udGFsIHZlbG9jaXR5IG9mIGVtaXR0ZWQgcGFydGljbGVzLCBpbiBwaXhlbHMgcGVyIHNlY29uZCBzcXVhcmVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjbWF4VmVsb2NpdHlYXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDEwMDAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5tYXhWZWxvY2l0eVggPSBuZXcgRW1pdHRlck9wKGNvbmZpZywgJ21heFZlbG9jaXR5WCcsIDEwMDAwLCB0cnVlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIG1heGltdW0gdmVydGljYWwgdmVsb2NpdHkgb2YgZW1pdHRlZCBwYXJ0aWNsZXMsIGluIHBpeGVscyBwZXIgc2Vjb25kIHNxdWFyZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNtYXhWZWxvY2l0eVlcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3B9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMTAwMDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1heFZlbG9jaXR5WSA9IG5ldyBFbWl0dGVyT3AoY29uZmlnLCAnbWF4VmVsb2NpdHlZJywgMTAwMDAsIHRydWUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaW5pdGlhbCBob3Jpem9udGFsIHNwZWVkIG9mIGVtaXR0ZWQgcGFydGljbGVzLCBpbiBwaXhlbHMgcGVyIHNlY29uZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NwZWVkWFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcH1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICogQHNlZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzZXRTcGVlZFhcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNwZWVkWCA9IG5ldyBFbWl0dGVyT3AoY29uZmlnLCAnc3BlZWRYJywgMCwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBpbml0aWFsIHZlcnRpY2FsIHNwZWVkIG9mIGVtaXR0ZWQgcGFydGljbGVzLCBpbiBwaXhlbHMgcGVyIHNlY29uZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NwZWVkWVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcH1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICogQHNlZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzZXRTcGVlZFlcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNwZWVkWSA9IG5ldyBFbWl0dGVyT3AoY29uZmlnLCAnc3BlZWRZJywgMCwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFdoZXRoZXIgbW92ZVRvWCBhbmQgbW92ZVRvWSBhcmUgbm9uemVyby4gU2V0IGF1dG9tYXRpY2FsbHkgZHVyaW5nIGNvbmZpZ3VyYXRpb24uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNtb3ZlVG9cclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubW92ZVRvID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB4LWNvb3JkaW5hdGUgZW1pdHRlZCBwYXJ0aWNsZXMgbW92ZSB0b3dhcmQsIHdoZW4ge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI21vdmVUb30gaXMgdHJ1ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI21vdmVUb1hcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3B9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubW92ZVRvWCA9IG5ldyBFbWl0dGVyT3AoY29uZmlnLCAnbW92ZVRvWCcsIDAsIHRydWUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgeS1jb29yZGluYXRlIGVtaXR0ZWQgcGFydGljbGVzIG1vdmUgdG93YXJkLCB3aGVuIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNtb3ZlVG99IGlzIHRydWUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNtb3ZlVG9ZXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1vdmVUb1kgPSBuZXcgRW1pdHRlck9wKGNvbmZpZywgJ21vdmVUb1knLCAwLCB0cnVlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogV2hldGhlciBwYXJ0aWNsZXMgd2lsbCByZWJvdW5kIHdoZW4gdGhleSBtZWV0IHRoZSBlbWl0dGVyIGJvdW5kcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2JvdW5jZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcH1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ib3VuY2UgPSBuZXcgRW1pdHRlck9wKGNvbmZpZywgJ2JvdW5jZScsIDAsIHRydWUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaG9yaXpvbnRhbCBzY2FsZSBvZiBlbWl0dGVkIHBhcnRpY2xlcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NjYWxlWFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcH1cclxuICAgICAgICAgKiBAZGVmYXVsdCAxXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICogQHNlZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzZXRTY2FsZVxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0U2NhbGVYXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zY2FsZVggPSBuZXcgRW1pdHRlck9wKGNvbmZpZywgJ3NjYWxlWCcsIDEpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdmVydGljYWwgc2NhbGUgb2YgZW1pdHRlZCBwYXJ0aWNsZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzY2FsZVlcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3B9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0U2NhbGVcclxuICAgICAgICAgKiBAc2VlIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldFNjYWxlWVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2NhbGVZID0gbmV3IEVtaXR0ZXJPcChjb25maWcsICdzY2FsZVknLCAxKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ29sb3IgdGludCBhcHBsaWVkIHRvIGVtaXR0ZWQgcGFydGljbGVzLiBBbnkgYWxwaGEgY29tcG9uZW50ICgweEFBMDAwMDAwKSBpcyBpZ25vcmVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjdGludFxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcH1cclxuICAgICAgICAgKiBAZGVmYXVsdCAweGZmZmZmZmZmXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy50aW50ID0gbmV3IEVtaXR0ZXJPcChjb25maWcsICd0aW50JywgMHhmZmZmZmZmZik7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBhbHBoYSAodHJhbnNwYXJlbmN5KSBvZiBlbWl0dGVkIHBhcnRpY2xlcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2FscGhhXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKiBAc2VlIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldEFscGhhXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5hbHBoYSA9IG5ldyBFbWl0dGVyT3AoY29uZmlnLCAnYWxwaGEnLCAxKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGxpZmVzcGFuIG9mIGVtaXR0ZWQgcGFydGljbGVzLCBpbiBtcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2xpZmVzcGFuXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDEwMDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKiBAc2VlIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldExpZmVzcGFuXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5saWZlc3BhbiA9IG5ldyBFbWl0dGVyT3AoY29uZmlnLCAnbGlmZXNwYW4nLCAxMDAwLCB0cnVlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGFuZ2xlIG9mIHRoZSBpbml0aWFsIHZlbG9jaXR5IG9mIGVtaXR0ZWQgcGFydGljbGVzLCBpbiBkZWdyZWVzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjYW5nbGVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3B9XHJcbiAgICAgICAgICogQGRlZmF1bHQgeyBtaW46IDAsIG1heDogMzYwIH1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKiBAc2VlIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldEFuZ2xlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5hbmdsZSA9IG5ldyBFbWl0dGVyT3AoY29uZmlnLCAnYW5nbGUnLCB7IG1pbjogMCwgbWF4OiAzNjAgfSwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSByb3RhdGlvbiBvZiBlbWl0dGVkIHBhcnRpY2xlcywgaW4gZGVncmVlcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3JvdGF0ZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcH1cclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yb3RhdGUgPSBuZXcgRW1pdHRlck9wKGNvbmZpZywgJ3JvdGF0ZScsIDApO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBhIHBhcnRpY2xlIGlzIGVtaXR0ZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNlbWl0Q2FsbGJhY2tcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyQ2FsbGJhY2t9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZW1pdENhbGxiYWNrID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGNhbGxpbmcgY29udGV4dCBmb3Ige0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2VtaXRDYWxsYmFja30uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNlbWl0Q2FsbGJhY2tTY29wZVxyXG4gICAgICAgICAqIEB0eXBlIHs/Kn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5lbWl0Q2FsbGJhY2tTY29wZSA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIGEgcGFydGljbGUgZGllcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2RlYXRoQ2FsbGJhY2tcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVEZWF0aENhbGxiYWNrfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRlYXRoQ2FsbGJhY2sgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgY2FsbGluZyBjb250ZXh0IGZvciB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZGVhdGhDYWxsYmFja30uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNkZWF0aENhbGxiYWNrU2NvcGVcclxuICAgICAgICAgKiBAdHlwZSB7Pyp9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGVhdGhDYWxsYmFja1Njb3BlID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogU2V0IHRvIGhhcmQgbGltaXQgdGhlIGFtb3VudCBvZiBwYXJ0aWNsZSBvYmplY3RzIHRoaXMgZW1pdHRlciBpcyBhbGxvd2VkIHRvIGNyZWF0ZS5cclxuICAgICAgICAgKiAwIG1lYW5zIHVubGltaXRlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI21heFBhcnRpY2xlc1xyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLm1heFBhcnRpY2xlcyA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEhvdyBtYW55IHBhcnRpY2xlcyBhcmUgZW1pdHRlZCBlYWNoIHRpbWUgcGFydGljbGVzIGFyZSBlbWl0dGVkIChvbmUgZXhwbG9zaW9uIG9yIG9uZSBmbG93IGN5Y2xlKS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3F1YW50aXR5XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDFcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKiBAc2VlIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldEZyZXF1ZW5jeVxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0UXVhbnRpdHlcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnF1YW50aXR5ID0gbmV3IEVtaXR0ZXJPcChjb25maWcsICdxdWFudGl0eScsIDEsIHRydWUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBIb3cgbWFueSBtcyB0byB3YWl0IGFmdGVyIGVtaXNzaW9uIGJlZm9yZSB0aGUgcGFydGljbGVzIHN0YXJ0IHVwZGF0aW5nLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZGVsYXlcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3B9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGVsYXkgPSBuZXcgRW1pdHRlck9wKGNvbmZpZywgJ2RlbGF5JywgMCwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEZvciBhIGZsb3cgZW1pdHRlciwgdGhlIHRpbWUgaW50ZXJ2YWwgKD49IDApIGJldHdlZW4gcGFydGljbGUgZmxvdyBjeWNsZXMgaW4gbXMuXHJcbiAgICAgICAgICogQSB2YWx1ZSBvZiAwIG1lYW5zIHRoZXJlIGlzIG9uZSBwYXJ0aWNsZSBmbG93IGN5Y2xlIGZvciBlYWNoIGxvZ2ljIHVwZGF0ZSAodGhlIG1heGltdW0gZmxvdyBmcmVxdWVuY3kpLiBUaGlzIGlzIHRoZSBkZWZhdWx0IHNldHRpbmcuXHJcbiAgICAgICAgICogRm9yIGFuIGV4cGxvZGluZyBlbWl0dGVyLCB0aGlzIHZhbHVlIHdpbGwgYmUgLTEuXHJcbiAgICAgICAgICogQ2FsbGluZyB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZmxvd30gYWxzbyBwdXRzIHRoZSBlbWl0dGVyIGluIGZsb3cgbW9kZSAoZnJlcXVlbmN5ID49IDApLlxyXG4gICAgICAgICAqIENhbGxpbmcge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2V4cGxvZGV9IGFsc28gcHV0cyB0aGUgZW1pdHRlciBpbiBleHBsb2RlIG1vZGUgKGZyZXF1ZW5jeSA9IC0xKS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2ZyZXF1ZW5jeVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0RnJlcXVlbmN5XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3kgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBDb250cm9scyBpZiB0aGUgZW1pdHRlciBpcyBjdXJyZW50bHkgZW1pdHRpbmcgYSBwYXJ0aWNsZSBmbG93ICh3aGVuIGZyZXF1ZW5jeSA+PSAwKS5cclxuICAgICAgICAgKiBBbHJlYWR5IGFsaXZlIHBhcnRpY2xlcyB3aWxsIGNvbnRpbnVlIHRvIHVwZGF0ZSB1bnRpbCB0aGV5IGV4cGlyZS5cclxuICAgICAgICAgKiBDb250cm9sbGVkIGJ5IHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzdGFydH0gYW5kIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzdG9wfS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI29uXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMub24gPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBOZXdseSBlbWl0dGVkIHBhcnRpY2xlcyBhcmUgYWRkZWQgdG8gdGhlIHRvcCBvZiB0aGUgcGFydGljbGUgbGlzdCwgaS5lLiByZW5kZXJlZCBhYm92ZSB0aG9zZSBhbHJlYWR5IGFsaXZlLlxyXG4gICAgICAgICAqIFNldCB0byBmYWxzZSB0byBzZW5kIHRoZW0gdG8gdGhlIGJhY2suXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNwYXJ0aWNsZUJyaW5nVG9Ub3BcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wYXJ0aWNsZUJyaW5nVG9Ub3AgPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdGltZSByYXRlIGFwcGxpZWQgdG8gYWN0aXZlIHBhcnRpY2xlcywgYWZmZWN0aW5nIGxpZmVzcGFuLCBtb3ZlbWVudCwgYW5kIHR3ZWVucy4gVmFsdWVzIGxhcmdlciB0aGFuIDEgYXJlIGZhc3RlciB0aGFuIG5vcm1hbC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3RpbWVTY2FsZVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudGltZVNjYWxlID0gMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gb2JqZWN0IGRlc2NyaWJpbmcgYSBzaGFwZSB0byBlbWl0IHBhcnRpY2xlcyBmcm9tLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZW1pdFpvbmVcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuWm9uZXMuRWRnZVpvbmV8UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5ab25lcy5SYW5kb21ab25lfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKiBAc2VlIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldEVtaXRab25lXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5lbWl0Wm9uZSA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIG9iamVjdCBkZXNjcmliaW5nIGEgc2hhcGUgdGhhdCBkZWFjdGl2YXRlcyBwYXJ0aWNsZXMgd2hlbiB0aGV5IGludGVyYWN0IHdpdGggaXQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNkZWF0aFpvbmVcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuWm9uZXMuRGVhdGhab25lfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKiBAc2VlIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldERlYXRoWm9uZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGVhdGhab25lID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWN0YW5ndWxhciBib3VuZGFyeSBjb25zdHJhaW5pbmcgcGFydGljbGUgbW92ZW1lbnQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNib3VuZHNcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5HZW9tLlJlY3RhbmdsZX1cclxuICAgICAgICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICogQHNlZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzZXRCb3VuZHNcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJvdW5kcyA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFdoZXRoZXIgcGFydGljbGVzIGludGVyYWN0IHdpdGggdGhlIGxlZnQgZWRnZSBvZiB0aGUgZW1pdHRlciB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjYm91bmRzfS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2NvbGxpZGVMZWZ0XHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUxlZnQgPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXaGV0aGVyIHBhcnRpY2xlcyBpbnRlcmFjdCB3aXRoIHRoZSByaWdodCBlZGdlIG9mIHRoZSBlbWl0dGVyIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNib3VuZHN9LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjY29sbGlkZVJpZ2h0XHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY29sbGlkZVJpZ2h0ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogV2hldGhlciBwYXJ0aWNsZXMgaW50ZXJhY3Qgd2l0aCB0aGUgdG9wIGVkZ2Ugb2YgdGhlIGVtaXR0ZXIge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2JvdW5kc30uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNjb2xsaWRlVG9wXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY29sbGlkZVRvcCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFdoZXRoZXIgcGFydGljbGVzIGludGVyYWN0IHdpdGggdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBlbWl0dGVyIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNib3VuZHN9LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjY29sbGlkZUJvdHRvbVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3R0b20gPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXaGV0aGVyIHRoaXMgZW1pdHRlciB1cGRhdGVzIGl0c2VsZiBhbmQgaXRzIHBhcnRpY2xlcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIENvbnRyb2xsZWQgYnkge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3BhdXNlfVxyXG4gICAgICAgICAqIGFuZCB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjcmVzdW1lfS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2FjdGl2ZVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFNldCB0aGlzIHRvIGZhbHNlIHRvIGhpZGUgYW55IGFjdGl2ZSBwYXJ0aWNsZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciN2aXNpYmxlXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0VmlzaWJsZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBibGVuZCBtb2RlIG9mIHRoaXMgZW1pdHRlcidzIHBhcnRpY2xlcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2JsZW5kTW9kZVxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0QmxlbmRNb2RlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ibGVuZE1vZGUgPSBCbGVuZE1vZGVzLk5PUk1BTDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSBHYW1lIE9iamVjdCB3aG9zZSBwb3NpdGlvbiBpcyB1c2VkIGFzIHRoZSBwYXJ0aWNsZSBvcmlnaW4uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNmb2xsb3dcclxuICAgICAgICAgKiBAdHlwZSB7P1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKiBAc2VlIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3N0YXJ0Rm9sbG93XHJcbiAgICAgICAgICogQHNlZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzdG9wRm9sbG93XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5mb2xsb3cgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgb2Zmc2V0IG9mIHRoZSBwYXJ0aWNsZSBvcmlnaW4gZnJvbSB0aGUge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2ZvbGxvd30gdGFyZ2V0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZm9sbG93T2Zmc2V0XHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICogQHNlZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzdGFydEZvbGxvd1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZm9sbG93T2Zmc2V0ID0gbmV3IFZlY3RvcjIoKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogV2hldGhlciB0aGUgZW1pdHRlcidzIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciN2aXNpYmxlfSBzdGF0ZSB3aWxsIHRyYWNrXHJcbiAgICAgICAgICogdGhlIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNmb2xsb3d9IHRhcmdldCdzIHZpc2liaWxpdHkgc3RhdGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciN0cmFja1Zpc2libGVcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc3RhcnRGb2xsb3dcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnRyYWNrVmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgY3VycmVudCB0ZXh0dXJlIGZyYW1lLCBhcyBhbiBpbmRleCBvZiB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZnJhbWVzfS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2N1cnJlbnRGcmFtZVxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDBcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKiBAc2VlIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldEZyYW1lXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUgPSAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXaGV0aGVyIHRleHR1cmUge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2ZyYW1lc30gYXJlIHNlbGVjdGVkIGF0IHJhbmRvbS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3JhbmRvbUZyYW1lXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0RnJhbWVcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJhbmRvbUZyYW1lID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIG51bWJlciBvZiBjb25zZWN1dGl2ZSBwYXJ0aWNsZXMgdGhhdCByZWNlaXZlIGEgc2luZ2xlIHRleHR1cmUgZnJhbWUgKHBlciBmcmFtZSBjeWNsZSkuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNmcmFtZVF1YW50aXR5XHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0RnJhbWVcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZyYW1lUXVhbnRpdHkgPSAxO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJbmFjdGl2ZSBwYXJ0aWNsZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNkZWFkXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVbXX1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGVhZCA9IFtdO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBY3RpdmUgcGFydGljbGVzXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNhbGl2ZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlW119XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFsaXZlID0gW107XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB0aW1lIHVudGlsIHRoZSBuZXh0IGZsb3cgY3ljbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNfY291bnRlclxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fY291bnRlciA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvdW50cyB1cCB0byB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZnJhbWVRdWFudGl0eX0uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNfZnJhbWVDb3VudGVyXHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fZnJhbWVDb3VudGVyID0gMDtcclxuXHJcbiAgICAgICAgaWYgKGNvbmZpZylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZnJvbUpTT04oY29uZmlnKTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWVyZ2VzIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgaW50byB0aGUgZW1pdHRlcidzIGN1cnJlbnQgc2V0dGluZ3MuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNmcm9tSlNPTlxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlckNvbmZpZ30gY29uZmlnIC0gU2V0dGluZ3MgZm9yIHRoaXMgZW1pdHRlci5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhcnRpY2xlIEVtaXR0ZXIuXHJcbiAgICAgKi9cclxuICAgIGZyb21KU09OOiBmdW5jdGlvbiAoY29uZmlnKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghY29uZmlnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgT25seSB1cGRhdGUgcHJvcGVydGllcyBmcm9tIHRoZWlyIGN1cnJlbnQgc3RhdGUgaWYgdGhleSBleGlzdCBpbiB0aGUgZ2l2ZW4gY29uZmlnXHJcblxyXG4gICAgICAgIHZhciBpID0gMDtcclxuICAgICAgICB2YXIga2V5ID0gJyc7XHJcblxyXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmNvbmZpZ0Zhc3RNYXAubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBrZXkgPSB0aGlzLmNvbmZpZ0Zhc3RNYXBbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoSGFzVmFsdWUoY29uZmlnLCBrZXkpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzW2tleV0gPSBHZXRGYXN0VmFsdWUoY29uZmlnLCBrZXkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5jb25maWdPcE1hcC5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGtleSA9IHRoaXMuY29uZmlnT3BNYXBbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoSGFzVmFsdWUoY29uZmlnLCBrZXkpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzW2tleV0ubG9hZENvbmZpZyhjb25maWcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmFjY2VsZXJhdGlvbiA9ICh0aGlzLmFjY2VsZXJhdGlvblgucHJvcGVydHlWYWx1ZSAhPT0gMCB8fCB0aGlzLmFjY2VsZXJhdGlvblkucHJvcGVydHlWYWx1ZSAhPT0gMCk7XHJcblxyXG4gICAgICAgIHRoaXMubW92ZVRvID0gKHRoaXMubW92ZVRvWC5wcm9wZXJ0eVZhbHVlICE9PSAwIHx8IHRoaXMubW92ZVRvWS5wcm9wZXJ0eVZhbHVlICE9PSAwKTtcclxuXHJcbiAgICAgICAgLy8gIFNwZWNpYWwgJ3NwZWVkJyBvdmVycmlkZVxyXG5cclxuICAgICAgICBpZiAoSGFzVmFsdWUoY29uZmlnLCAnc3BlZWQnKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc3BlZWRYLmxvYWRDb25maWcoY29uZmlnLCAnc3BlZWQnKTtcclxuICAgICAgICAgICAgdGhpcy5zcGVlZFkgPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gIElmIHlvdSBzcGVjaWZ5IHNwZWVkWCwgc3BlZWRZIG9yIG1vdmVUbyB0aGVuIGl0IGNoYW5nZXMgdGhlIGVtaXR0ZXIgZnJvbSByYWRpYWwgdG8gYSBwb2ludCBlbWl0dGVyXHJcbiAgICAgICAgaWYgKEhhc0FueShjb25maWcsIFsgJ3NwZWVkWCcsICdzcGVlZFknIF0pIHx8IHRoaXMubW92ZVRvKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5yYWRpYWwgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBTcGVjaWFsICdzY2FsZScgb3ZlcnJpZGVcclxuXHJcbiAgICAgICAgaWYgKEhhc1ZhbHVlKGNvbmZpZywgJ3NjYWxlJykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNjYWxlWC5sb2FkQ29uZmlnKGNvbmZpZywgJ3NjYWxlJyk7XHJcbiAgICAgICAgICAgIHRoaXMuc2NhbGVZID0gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChIYXNWYWx1ZShjb25maWcsICdjYWxsYmFja1Njb3BlJykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgY2FsbGJhY2tTY29wZSA9IEdldEZhc3RWYWx1ZShjb25maWcsICdjYWxsYmFja1Njb3BlJywgbnVsbCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmVtaXRDYWxsYmFja1Njb3BlID0gY2FsbGJhY2tTY29wZTtcclxuICAgICAgICAgICAgdGhpcy5kZWF0aENhbGxiYWNrU2NvcGUgPSBjYWxsYmFja1Njb3BlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEhhc1ZhbHVlKGNvbmZpZywgJ2VtaXRab25lJykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNldEVtaXRab25lKGNvbmZpZy5lbWl0Wm9uZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoSGFzVmFsdWUoY29uZmlnLCAnZGVhdGhab25lJykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNldERlYXRoWm9uZShjb25maWcuZGVhdGhab25lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChIYXNWYWx1ZShjb25maWcsICdib3VuZHMnKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Qm91bmRzKGNvbmZpZy5ib3VuZHMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEhhc1ZhbHVlKGNvbmZpZywgJ2ZvbGxvd09mZnNldCcpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5mb2xsb3dPZmZzZXQuc2V0RnJvbU9iamVjdChHZXRGYXN0VmFsdWUoY29uZmlnLCAnZm9sbG93T2Zmc2V0JywgMCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEhhc1ZhbHVlKGNvbmZpZywgJ2ZyYW1lJykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNldEZyYW1lKGNvbmZpZy5mcmFtZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgZGVzY3JpcHRpb24gb2YgdGhpcyBlbWl0dGVyIHN1aXRhYmxlIGZvciBKU09OIHNlcmlhbGl6YXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciN0b0pTT05cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3V0cHV0XSAtIEFuIG9iamVjdCB0byBjb3B5IG91dHB1dCBpbnRvLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge29iamVjdH0gLSBUaGUgb3V0cHV0IG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgdG9KU09OOiBmdW5jdGlvbiAob3V0cHV0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvdXRwdXQgPT09IHVuZGVmaW5lZCkgeyBvdXRwdXQgPSB7fTsgfVxyXG5cclxuICAgICAgICB2YXIgaSA9IDA7XHJcbiAgICAgICAgdmFyIGtleSA9ICcnO1xyXG5cclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5jb25maWdGYXN0TWFwLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAga2V5ID0gdGhpcy5jb25maWdGYXN0TWFwW2ldO1xyXG5cclxuICAgICAgICAgICAgb3V0cHV0W2tleV0gPSB0aGlzW2tleV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5jb25maWdPcE1hcC5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGtleSA9IHRoaXMuY29uZmlnT3BNYXBbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpc1trZXldKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBvdXRwdXRba2V5XSA9IHRoaXNba2V5XS50b0pTT04oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gIHNwZWNpYWwgaGFuZGxlcnNcclxuICAgICAgICBpZiAoIXRoaXMuc3BlZWRZKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZGVsZXRlIG91dHB1dC5zcGVlZFg7XHJcbiAgICAgICAgICAgIG91dHB1dC5zcGVlZCA9IHRoaXMuc3BlZWRYLnRvSlNPTigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnNjYWxlWSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGRlbGV0ZSBvdXRwdXQuc2NhbGVYO1xyXG4gICAgICAgICAgICBvdXRwdXQuc2NhbGUgPSB0aGlzLnNjYWxlWC50b0pTT04oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvdXRwdXQ7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udGludW91c2x5IG1vdmVzIHRoZSBwYXJ0aWNsZSBvcmlnaW4gdG8gZm9sbG93IGEgR2FtZSBPYmplY3QncyBwb3NpdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3N0YXJ0Rm9sbG93XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0fSB0YXJnZXQgLSBUaGUgR2FtZSBPYmplY3QgdG8gZm9sbG93LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtvZmZzZXRYPTBdIC0gSG9yaXpvbnRhbCBvZmZzZXQgb2YgdGhlIHBhcnRpY2xlIG9yaWdpbiBmcm9tIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0WT0wXSAtIFZlcnRpY2FsIG9mZnNldCBvZiB0aGUgcGFydGljbGUgb3JpZ2luIGZyb20gdGhlIEdhbWUgT2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbdHJhY2tWaXNpYmxlPWZhbHNlXSAtIFdoZXRoZXIgdGhlIGVtaXR0ZXIncyB2aXNpYmxlIHN0YXRlIHdpbGwgdHJhY2sgdGhlIHRhcmdldCdzIHZpc2libGUgc3RhdGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXJ0aWNsZSBFbWl0dGVyLlxyXG4gICAgICovXHJcbiAgICBzdGFydEZvbGxvdzogZnVuY3Rpb24gKHRhcmdldCwgb2Zmc2V0WCwgb2Zmc2V0WSwgdHJhY2tWaXNpYmxlKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChvZmZzZXRYID09PSB1bmRlZmluZWQpIHsgb2Zmc2V0WCA9IDA7IH1cclxuICAgICAgICBpZiAob2Zmc2V0WSA9PT0gdW5kZWZpbmVkKSB7IG9mZnNldFkgPSAwOyB9XHJcbiAgICAgICAgaWYgKHRyYWNrVmlzaWJsZSA9PT0gdW5kZWZpbmVkKSB7IHRyYWNrVmlzaWJsZSA9IGZhbHNlOyB9XHJcblxyXG4gICAgICAgIHRoaXMuZm9sbG93ID0gdGFyZ2V0O1xyXG4gICAgICAgIHRoaXMuZm9sbG93T2Zmc2V0LnNldChvZmZzZXRYLCBvZmZzZXRZKTtcclxuICAgICAgICB0aGlzLnRyYWNrVmlzaWJsZSA9IHRyYWNrVmlzaWJsZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3RvcHMgZm9sbG93aW5nIGEgR2FtZSBPYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzdG9wRm9sbG93XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhcnRpY2xlIEVtaXR0ZXIuXHJcbiAgICAgKi9cclxuICAgIHN0b3BGb2xsb3c6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5mb2xsb3cgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZm9sbG93T2Zmc2V0LnNldCgwLCAwKTtcclxuICAgICAgICB0aGlzLnRyYWNrVmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaG9vc2VzIGEgdGV4dHVyZSBmcmFtZSBmcm9tIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNmcmFtZXN9LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZ2V0RnJhbWVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5UZXh0dXJlcy5GcmFtZX0gVGhlIHRleHR1cmUgZnJhbWUuXHJcbiAgICAgKi9cclxuICAgIGdldEZyYW1lOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLmZyYW1lcy5sZW5ndGggPT09IDEpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0RnJhbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMucmFuZG9tRnJhbWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gR2V0UmFuZG9tKHRoaXMuZnJhbWVzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGZyYW1lID0gdGhpcy5mcmFtZXNbdGhpcy5jdXJyZW50RnJhbWVdO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fZnJhbWVDb3VudGVyKys7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fZnJhbWVDb3VudGVyID09PSB0aGlzLmZyYW1lUXVhbnRpdHkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ZyYW1lQ291bnRlciA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZSA9IFdyYXAodGhpcy5jdXJyZW50RnJhbWUgKyAxLCAwLCB0aGlzLl9mcmFtZUxlbmd0aCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBmcmFtZTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8vIGZyYW1lOiAwXHJcbiAgICAvLyBmcmFtZTogJ3JlZCdcclxuICAgIC8vIGZyYW1lOiBbIDAsIDEsIDIsIDMgXVxyXG4gICAgLy8gZnJhbWU6IFsgJ3JlZCcsICdncmVlbicsICdibHVlJywgJ3BpbmsnLCAnd2hpdGUnIF1cclxuICAgIC8vIGZyYW1lOiB7IGZyYW1lczogWyAncmVkJywgJ2dyZWVuJywgJ2JsdWUnLCAncGluaycsICd3aGl0ZScgXSwgW2N5Y2xlOiBib29sXSwgW3F1YW50aXR5OiBpbnRdIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgYSBwYXR0ZXJuIGZvciBhc3NpZ25pbmcgdGV4dHVyZSBmcmFtZXMgdG8gZW1pdHRlZCBwYXJ0aWNsZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzZXRGcmFtZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoYXJyYXl8c3RyaW5nfGludGVnZXJ8UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJGcmFtZUNvbmZpZyl9IGZyYW1lcyAtIE9uZSBvciBtb3JlIHRleHR1cmUgZnJhbWVzLCBvciBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbcGlja1JhbmRvbT10cnVlXSAtIFdoZXRoZXIgZnJhbWVzIHNob3VsZCBiZSBhc3NpZ25lZCBhdCByYW5kb20gZnJvbSBgZnJhbWVzYC5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3F1YW50aXR5PTFdIC0gVGhlIG51bWJlciBvZiBjb25zZWN1dGl2ZSBwYXJ0aWNsZXMgdGhhdCB3aWxsIHJlY2VpdmUgZWFjaCBmcmFtZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhcnRpY2xlIEVtaXR0ZXIuXHJcbiAgICAgKi9cclxuICAgIHNldEZyYW1lOiBmdW5jdGlvbiAoZnJhbWVzLCBwaWNrUmFuZG9tLCBxdWFudGl0eSlcclxuICAgIHtcclxuICAgICAgICBpZiAocGlja1JhbmRvbSA9PT0gdW5kZWZpbmVkKSB7IHBpY2tSYW5kb20gPSB0cnVlOyB9XHJcbiAgICAgICAgaWYgKHF1YW50aXR5ID09PSB1bmRlZmluZWQpIHsgcXVhbnRpdHkgPSAxOyB9XHJcblxyXG4gICAgICAgIHRoaXMucmFuZG9tRnJhbWUgPSBwaWNrUmFuZG9tO1xyXG4gICAgICAgIHRoaXMuZnJhbWVRdWFudGl0eSA9IHF1YW50aXR5O1xyXG4gICAgICAgIHRoaXMuY3VycmVudEZyYW1lID0gMDtcclxuICAgICAgICB0aGlzLl9mcmFtZUNvdW50ZXIgPSAwO1xyXG5cclxuICAgICAgICB2YXIgdCA9IHR5cGVvZiAoZnJhbWVzKTtcclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZnJhbWVzKSB8fCB0ID09PSAnc3RyaW5nJyB8fCB0ID09PSAnbnVtYmVyJylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubWFuYWdlci5zZXRFbWl0dGVyRnJhbWVzKGZyYW1lcywgdGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHQgPT09ICdvYmplY3QnKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGZyYW1lQ29uZmlnID0gZnJhbWVzO1xyXG5cclxuICAgICAgICAgICAgZnJhbWVzID0gR2V0RmFzdFZhbHVlKGZyYW1lQ29uZmlnLCAnZnJhbWVzJywgbnVsbCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoZnJhbWVzKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hbmFnZXIuc2V0RW1pdHRlckZyYW1lcyhmcmFtZXMsIHRoaXMpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB2YXIgaXNDeWNsZSA9IEdldEZhc3RWYWx1ZShmcmFtZUNvbmZpZywgJ2N5Y2xlJywgZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5yYW5kb21GcmFtZSA9IChpc0N5Y2xlKSA/IGZhbHNlIDogdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZnJhbWVRdWFudGl0eSA9IEdldEZhc3RWYWx1ZShmcmFtZUNvbmZpZywgJ3F1YW50aXR5JywgcXVhbnRpdHkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fZnJhbWVMZW5ndGggPSB0aGlzLmZyYW1lcy5sZW5ndGg7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9mcmFtZUxlbmd0aCA9PT0gMSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZnJhbWVRdWFudGl0eSA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMucmFuZG9tRnJhbWUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFR1cm5zIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNyYWRpYWx9IHBhcnRpY2xlIG1vdmVtZW50IG9uIG9yIG9mZi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldFJhZGlhbFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbdmFsdWU9dHJ1ZV0gLSBSYWRpYWwgbW9kZSAodHJ1ZSkgb3IgcG9pbnQgbW9kZSAodHJ1ZSkuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXJ0aWNsZSBFbWl0dGVyLlxyXG4gICAgICovXHJcbiAgICBzZXRSYWRpYWw6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgeyB2YWx1ZSA9IHRydWU7IH1cclxuXHJcbiAgICAgICAgdGhpcy5yYWRpYWwgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgcG9zaXRpb24gb2YgdGhlIGVtaXR0ZXIncyBwYXJ0aWNsZSBvcmlnaW4uXHJcbiAgICAgKiBOZXcgcGFydGljbGVzIHdpbGwgYmUgZW1pdHRlZCBoZXJlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0UG9zaXRpb25cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3BPbkVtaXRUeXBlfSB4IC0gVGhlIHgtY29vcmRpbmF0ZSBvZiB0aGUgcGFydGljbGUgb3JpZ2luLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcE9uRW1pdFR5cGV9IHkgLSBUaGUgeS1jb29yZGluYXRlIG9mIHRoZSBwYXJ0aWNsZSBvcmlnaW4uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXJ0aWNsZSBFbWl0dGVyLlxyXG4gICAgICovXHJcbiAgICBzZXRQb3NpdGlvbjogZnVuY3Rpb24gKHgsIHkpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy54Lm9uQ2hhbmdlKHgpO1xyXG4gICAgICAgIHRoaXMueS5vbkNoYW5nZSh5KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBvciBtb2RpZmllcyBhIHJlY3Rhbmd1bGFyIGJvdW5kYXJ5IGNvbnN0cmFpbmluZyB0aGUgcGFydGljbGVzLlxyXG4gICAgICpcclxuICAgICAqIFRvIHJlbW92ZSB0aGUgYm91bmRhcnksIHNldCB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjYm91bmRzfSB0byBudWxsLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0Qm91bmRzXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhudW1iZXJ8UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJCb3VuZHN8UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJCb3VuZHNBbHQpfSB4IC0gVGhlIHgtY29vcmRpbmF0ZSBvZiB0aGUgbGVmdCBlZGdlIG9mIHRoZSBib3VuZGFyeSwgb3IgYW4gb2JqZWN0IHJlcHJlc2VudGluZyBhIHJlY3RhbmdsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgdG9wIGVkZ2Ugb2YgdGhlIGJvdW5kYXJ5LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBib3VuZGFyeS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoZWlnaHQgLSBUaGUgaGVpZ2h0IG9mIHRoZSBib3VuZGFyeS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhcnRpY2xlIEVtaXR0ZXIuXHJcbiAgICAgKi9cclxuICAgIHNldEJvdW5kczogZnVuY3Rpb24gKHgsIHksIHdpZHRoLCBoZWlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB4ID09PSAnb2JqZWN0JylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBvYmogPSB4O1xyXG5cclxuICAgICAgICAgICAgeCA9IG9iai54O1xyXG4gICAgICAgICAgICB5ID0gb2JqLnk7XHJcbiAgICAgICAgICAgIHdpZHRoID0gKEhhc1ZhbHVlKG9iaiwgJ3cnKSkgPyBvYmoudyA6IG9iai53aWR0aDtcclxuICAgICAgICAgICAgaGVpZ2h0ID0gKEhhc1ZhbHVlKG9iaiwgJ2gnKSkgPyBvYmouaCA6IG9iai5oZWlnaHQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5ib3VuZHMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmJvdW5kcy5zZXRUbyh4LCB5LCB3aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5ib3VuZHMgPSBuZXcgUmVjdGFuZ2xlKHgsIHksIHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgaW5pdGlhbCBob3Jpem9udGFsIHNwZWVkIG9mIGVtaXR0ZWQgcGFydGljbGVzLlxyXG4gICAgICogQ2hhbmdlcyB0aGUgZW1pdHRlciB0byBwb2ludCBtb2RlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0U3BlZWRYXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wT25FbWl0VHlwZX0gdmFsdWUgLSBUaGUgc3BlZWQsIGluIHBpeGVscyBwZXIgc2Vjb25kLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgc2V0U3BlZWRYOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zcGVlZFgub25DaGFuZ2UodmFsdWUpO1xyXG5cclxuICAgICAgICAvLyAgSWYgeW91IHNwZWNpZnkgc3BlZWRYIGFuZCBZIHRoZW4gaXQgY2hhbmdlcyB0aGUgZW1pdHRlciBmcm9tIHJhZGlhbCB0byBhIHBvaW50IGVtaXR0ZXJcclxuICAgICAgICB0aGlzLnJhZGlhbCA9IGZhbHNlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBpbml0aWFsIHZlcnRpY2FsIHNwZWVkIG9mIGVtaXR0ZWQgcGFydGljbGVzLlxyXG4gICAgICogQ2hhbmdlcyB0aGUgZW1pdHRlciB0byBwb2ludCBtb2RlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0U3BlZWRZXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wT25FbWl0VHlwZX0gdmFsdWUgLSBUaGUgc3BlZWQsIGluIHBpeGVscyBwZXIgc2Vjb25kLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgc2V0U3BlZWRZOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3BlZWRZKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zcGVlZFkub25DaGFuZ2UodmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgLy8gIElmIHlvdSBzcGVjaWZ5IHNwZWVkWCBhbmQgWSB0aGVuIGl0IGNoYW5nZXMgdGhlIGVtaXR0ZXIgZnJvbSByYWRpYWwgdG8gYSBwb2ludCBlbWl0dGVyXHJcbiAgICAgICAgICAgIHRoaXMucmFkaWFsID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBpbml0aWFsIHJhZGlhbCBzcGVlZCBvZiBlbWl0dGVkIHBhcnRpY2xlcy5cclxuICAgICAqIENoYW5nZXMgdGhlIGVtaXR0ZXIgdG8gcmFkaWFsIG1vZGUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzZXRTcGVlZFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcE9uRW1pdFR5cGV9IHZhbHVlIC0gVGhlIHNwZWVkLCBpbiBwaXhlbHMgcGVyIHNlY29uZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhcnRpY2xlIEVtaXR0ZXIuXHJcbiAgICAgKi9cclxuICAgIHNldFNwZWVkOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zcGVlZFgub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuc3BlZWRZID0gbnVsbDtcclxuXHJcbiAgICAgICAgLy8gIElmIHlvdSBzcGVjaWZ5IHNwZWVkWCBhbmQgWSB0aGVuIGl0IGNoYW5nZXMgdGhlIGVtaXR0ZXIgZnJvbSByYWRpYWwgdG8gYSBwb2ludCBlbWl0dGVyXHJcbiAgICAgICAgdGhpcy5yYWRpYWwgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBob3Jpem9udGFsIHNjYWxlIG9mIGVtaXR0ZWQgcGFydGljbGVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0U2NhbGVYXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcE9uRW1pdFR5cGV8UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3BPblVwZGF0ZVR5cGUpfSB2YWx1ZSAtIFRoZSBzY2FsZSwgcmVsYXRpdmUgdG8gMS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhcnRpY2xlIEVtaXR0ZXIuXHJcbiAgICAgKi9cclxuICAgIHNldFNjYWxlWDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuc2NhbGVYLm9uQ2hhbmdlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdmVydGljYWwgc2NhbGUgb2YgZW1pdHRlZCBwYXJ0aWNsZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzZXRTY2FsZVlcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7KFBoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wT25FbWl0VHlwZXxQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcE9uVXBkYXRlVHlwZSl9IHZhbHVlIC0gVGhlIHNjYWxlLCByZWxhdGl2ZSB0byAxLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgc2V0U2NhbGVZOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zY2FsZVkub25DaGFuZ2UodmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBzY2FsZSBvZiBlbWl0dGVkIHBhcnRpY2xlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldFNjYWxlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcE9uRW1pdFR5cGV8UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3BPblVwZGF0ZVR5cGUpfSB2YWx1ZSAtIFRoZSBzY2FsZSwgcmVsYXRpdmUgdG8gMS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhcnRpY2xlIEVtaXR0ZXIuXHJcbiAgICAgKi9cclxuICAgIHNldFNjYWxlOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5zY2FsZVgub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuc2NhbGVZID0gbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgaG9yaXpvbnRhbCBncmF2aXR5IGFwcGxpZWQgdG8gZW1pdHRlZCBwYXJ0aWNsZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzZXRHcmF2aXR5WFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlIC0gQWNjZWxlcmF0aW9uIGR1ZSB0byBncmF2aXR5LCBpbiBwaXhlbHMgcGVyIHNlY29uZCBzcXVhcmVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgc2V0R3Jhdml0eVg6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmdyYXZpdHlYID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHZlcnRpY2FsIGdyYXZpdHkgYXBwbGllZCB0byBlbWl0dGVkIHBhcnRpY2xlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldEdyYXZpdHlZXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBBY2NlbGVyYXRpb24gZHVlIHRvIGdyYXZpdHksIGluIHBpeGVscyBwZXIgc2Vjb25kIHNxdWFyZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXJ0aWNsZSBFbWl0dGVyLlxyXG4gICAgICovXHJcbiAgICBzZXRHcmF2aXR5WTogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZ3Jhdml0eVkgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgZ3Jhdml0eSBhcHBsaWVkIHRvIGVtaXR0ZWQgcGFydGljbGVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0R3Jhdml0eVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBIb3Jpem9udGFsIGFjY2VsZXJhdGlvbiBkdWUgdG8gZ3Jhdml0eSwgaW4gcGl4ZWxzIHBlciBzZWNvbmQgc3F1YXJlZC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVmVydGljYWwgYWNjZWxlcmF0aW9uIGR1ZSB0byBncmF2aXR5LCBpbiBwaXhlbHMgcGVyIHNlY29uZCBzcXVhcmVkLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgc2V0R3Jhdml0eTogZnVuY3Rpb24gKHgsIHkpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5ncmF2aXR5WCA9IHg7XHJcbiAgICAgICAgdGhpcy5ncmF2aXR5WSA9IHk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIG9wYWNpdHkgb2YgZW1pdHRlZCBwYXJ0aWNsZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzZXRBbHBoYVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoUGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3BPbkVtaXRUeXBlfFBoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wT25VcGRhdGVUeXBlKX0gdmFsdWUgLSBBIHZhbHVlIGJldHdlZW4gMCAodHJhbnNwYXJlbnQpIGFuZCAxIChvcGFxdWUpLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgc2V0QWxwaGE6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmFscGhhLm9uQ2hhbmdlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgY29sb3IgdGludCBvZiBlbWl0dGVkIHBhcnRpY2xlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldFRpbnRcclxuICAgICAqIEBzaW5jZSAzLjIyLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcE9uRW1pdFR5cGV8UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3BPblVwZGF0ZVR5cGUpfSB2YWx1ZSAtIEEgdmFsdWUgYmV0d2VlbiAwIGFuZCAweGZmZmZmZi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhcnRpY2xlIEVtaXR0ZXIuXHJcbiAgICAgKi9cclxuICAgIHNldFRpbnQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnRpbnQub25DaGFuZ2UodmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBhbmdsZSBvZiBhIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNyYWRpYWx9IHBhcnRpY2xlIHN0cmVhbS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldEVtaXR0ZXJBbmdsZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcE9uRW1pdFR5cGV9IHZhbHVlIC0gVGhlIGFuZ2xlIG9mIHRoZSBpbml0aWFsIHZlbG9jaXR5IG9mIGVtaXR0ZWQgcGFydGljbGVzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgc2V0RW1pdHRlckFuZ2xlOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5hbmdsZS5vbkNoYW5nZSh2YWx1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGFuZ2xlIG9mIGEge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3JhZGlhbH0gcGFydGljbGUgc3RyZWFtLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0QW5nbGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3BPbkVtaXRUeXBlfSB2YWx1ZSAtIFRoZSBhbmdsZSBvZiB0aGUgaW5pdGlhbCB2ZWxvY2l0eSBvZiBlbWl0dGVkIHBhcnRpY2xlcy5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhcnRpY2xlIEVtaXR0ZXIuXHJcbiAgICAgKi9cclxuICAgIHNldEFuZ2xlOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5hbmdsZS5vbkNoYW5nZSh2YWx1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGxpZmVzcGFuIG9mIG5ld2x5IGVtaXR0ZWQgcGFydGljbGVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0TGlmZXNwYW5cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyT3BPbkVtaXRUeXBlfSB2YWx1ZSAtIFRoZSBwYXJ0aWNsZSBsaWZlc3BhbiwgaW4gbXMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXJ0aWNsZSBFbWl0dGVyLlxyXG4gICAgICovXHJcbiAgICBzZXRMaWZlc3BhbjogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMubGlmZXNwYW4ub25DaGFuZ2UodmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBudW1iZXIgb2YgcGFydGljbGVzIHJlbGVhc2VkIGF0IGVhY2ggZmxvdyBjeWNsZSBvciBleHBsb3Npb24uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzZXRRdWFudGl0eVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJPcE9uRW1pdFR5cGV9IHF1YW50aXR5IC0gVGhlIG51bWJlciBvZiBwYXJ0aWNsZXMgdG8gcmVsZWFzZSBhdCBlYWNoIGZsb3cgY3ljbGUgb3IgZXhwbG9zaW9uLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgc2V0UXVhbnRpdHk6IGZ1bmN0aW9uIChxdWFudGl0eSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnF1YW50aXR5Lm9uQ2hhbmdlKHF1YW50aXR5KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgZW1pdHRlcidzIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNmcmVxdWVuY3l9XHJcbiAgICAgKiBhbmQge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3F1YW50aXR5fS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldEZyZXF1ZW5jeVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGZyZXF1ZW5jeSAtIFRoZSB0aW1lIGludGVydmFsICg+PSAwKSBvZiBlYWNoIGZsb3cgY3ljbGUsIGluIG1zOyBvciAtMSB0byBwdXQgdGhlIGVtaXR0ZXIgaW4gZXhwbG9zaW9uIG1vZGUuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wT25FbWl0VHlwZX0gW3F1YW50aXR5XSAtIFRoZSBudW1iZXIgb2YgcGFydGljbGVzIHRvIHJlbGVhc2UgYXQgZWFjaCBmbG93IGN5Y2xlIG9yIGV4cGxvc2lvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhcnRpY2xlIEVtaXR0ZXIuXHJcbiAgICAgKi9cclxuICAgIHNldEZyZXF1ZW5jeTogZnVuY3Rpb24gKGZyZXF1ZW5jeSwgcXVhbnRpdHkpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3kgPSBmcmVxdWVuY3k7XHJcblxyXG4gICAgICAgIHRoaXMuX2NvdW50ZXIgPSAwO1xyXG5cclxuICAgICAgICBpZiAocXVhbnRpdHkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnF1YW50aXR5Lm9uQ2hhbmdlKHF1YW50aXR5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgb3IgcmVtb3ZlcyB0aGUge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2VtaXRab25lfS5cclxuICAgICAqXHJcbiAgICAgKiBBbiB7QGxpbmsgUGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJFZGdlWm9uZUNvbmZpZyBFZGdlWm9uZX0gcGxhY2VzIHBhcnRpY2xlcyBvbiBpdHMgZWRnZXMuIEl0cyB7QGxpbmsgUGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FZGdlWm9uZVNvdXJjZSBzb3VyY2V9IGNhbiBiZSBhIEN1cnZlLCBQYXRoLCBDaXJjbGUsIEVsbGlwc2UsIExpbmUsIFBvbHlnb24sIFJlY3RhbmdsZSwgb3IgVHJpYW5nbGU7IG9yIGFueSBvYmplY3Qgd2l0aCBhIHN1aXRhYmxlIHtAbGluayBQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLkVkZ2Vab25lU291cmNlQ2FsbGJhY2sgZ2V0UG9pbnRzfSBtZXRob2QuXHJcbiAgICAgKlxyXG4gICAgICogQSB7QGxpbmsgUGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJSYW5kb21ab25lQ29uZmlnIFJhbmRvbVpvbmV9IHBsYWNlcyByYW5kb21seSB3aXRoaW4gaXRzIGludGVyaW9yLiBJdHMge0BsaW5rIFJhbmRvbVpvbmVTb3VyY2Ugc291cmNlfSBjYW4gYmUgYSBDaXJjbGUsIEVsbGlwc2UsIExpbmUsIFBvbHlnb24sIFJlY3RhbmdsZSwgb3IgVHJpYW5nbGU7IG9yIGFueSBvYmplY3Qgd2l0aCBhIHN1aXRhYmxlIHtAbGluayBQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLlJhbmRvbVpvbmVTb3VyY2VDYWxsYmFjayBnZXRSYW5kb21Qb2ludH0gbWV0aG9kLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc2V0RW1pdFpvbmVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJFZGdlWm9uZUNvbmZpZ3xQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlclJhbmRvbVpvbmVDb25maWd9IFt6b25lQ29uZmlnXSAtIEFuIG9iamVjdCBkZXNjcmliaW5nIHRoZSB6b25lLCBvciBgdW5kZWZpbmVkYCB0byByZW1vdmUgYW55IGN1cnJlbnQgZW1pdCB6b25lLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgc2V0RW1pdFpvbmU6IGZ1bmN0aW9uICh6b25lQ29uZmlnKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh6b25lQ29uZmlnID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmVtaXRab25lID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIFdoZXJlIHNvdXJjZSA9IEdlb20gbGlrZSBDaXJjbGUsIG9yIGEgUGF0aCBvciBDdXJ2ZVxyXG4gICAgICAgICAgICAvLyAgZW1pdFpvbmU6IHsgdHlwZTogJ3JhbmRvbScsIHNvdXJjZTogWCB9XHJcbiAgICAgICAgICAgIC8vICBlbWl0Wm9uZTogeyB0eXBlOiAnZWRnZScsIHNvdXJjZTogWCwgcXVhbnRpdHk6IDMyLCBbc3RlcFJhdGU9MF0sIFt5b3lvPWZhbHNlXSwgW3NlYW1sZXNzPXRydWVdIH1cclxuXHJcbiAgICAgICAgICAgIHZhciB0eXBlID0gR2V0RmFzdFZhbHVlKHpvbmVDb25maWcsICd0eXBlJywgJ3JhbmRvbScpO1xyXG4gICAgICAgICAgICB2YXIgc291cmNlID0gR2V0RmFzdFZhbHVlKHpvbmVDb25maWcsICdzb3VyY2UnLCBudWxsKTtcclxuXHJcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAncmFuZG9tJzpcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0Wm9uZSA9IG5ldyBSYW5kb21ab25lKHNvdXJjZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgJ2VkZ2UnOlxyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgcXVhbnRpdHkgPSBHZXRGYXN0VmFsdWUoem9uZUNvbmZpZywgJ3F1YW50aXR5JywgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHN0ZXBSYXRlID0gR2V0RmFzdFZhbHVlKHpvbmVDb25maWcsICdzdGVwUmF0ZScsIDApO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciB5b3lvID0gR2V0RmFzdFZhbHVlKHpvbmVDb25maWcsICd5b3lvJywgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWFtbGVzcyA9IEdldEZhc3RWYWx1ZSh6b25lQ29uZmlnLCAnc2VhbWxlc3MnLCB0cnVlKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0Wm9uZSA9IG5ldyBFZGdlWm9uZShzb3VyY2UsIHF1YW50aXR5LCBzdGVwUmF0ZSwgeW95bywgc2VhbWxlc3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBvciByZW1vdmVzIHRoZSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZGVhdGhab25lfS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI3NldERlYXRoWm9uZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlckRlYXRoWm9uZUNvbmZpZ30gW3pvbmVDb25maWddIC0gQW4gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIHpvbmUsIG9yIGB1bmRlZmluZWRgIHRvIHJlbW92ZSBhbnkgY3VycmVudCBkZWF0aCB6b25lLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgc2V0RGVhdGhab25lOiBmdW5jdGlvbiAoem9uZUNvbmZpZylcclxuICAgIHtcclxuICAgICAgICBpZiAoem9uZUNvbmZpZyA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5kZWF0aFpvbmUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgV2hlcmUgc291cmNlID0gR2VvbSBsaWtlIENpcmNsZSBvciBSZWN0IHRoYXQgc3VwcG9ydHMgYSAnY29udGFpbnMnIGZ1bmN0aW9uXHJcbiAgICAgICAgICAgIC8vICBkZWF0aFpvbmU6IHsgdHlwZTogJ29uRW50ZXInLCBzb3VyY2U6IFggfVxyXG4gICAgICAgICAgICAvLyAgZGVhdGhab25lOiB7IHR5cGU6ICdvbkxlYXZlJywgc291cmNlOiBYIH1cclxuXHJcbiAgICAgICAgICAgIHZhciB0eXBlID0gR2V0RmFzdFZhbHVlKHpvbmVDb25maWcsICd0eXBlJywgJ29uRW50ZXInKTtcclxuICAgICAgICAgICAgdmFyIHNvdXJjZSA9IEdldEZhc3RWYWx1ZSh6b25lQ29uZmlnLCAnc291cmNlJywgbnVsbCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoc291cmNlICYmIHR5cGVvZiBzb3VyY2UuY29udGFpbnMgPT09ICdmdW5jdGlvbicpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhciBraWxsT25FbnRlciA9ICh0eXBlID09PSAnb25FbnRlcicpID8gdHJ1ZSA6IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZGVhdGhab25lID0gbmV3IERlYXRoWm9uZShzb3VyY2UsIGtpbGxPbkVudGVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBpbmFjdGl2ZSBwYXJ0aWNsZXMgYW5kIGFkZHMgdGhlbSB0byB0aGlzIGVtaXR0ZXIncyBwb29sLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjcmVzZXJ2ZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBwYXJ0aWNsZUNvdW50IC0gVGhlIG51bWJlciBvZiBwYXJ0aWNsZXMgdG8gY3JlYXRlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgcmVzZXJ2ZTogZnVuY3Rpb24gKHBhcnRpY2xlQ291bnQpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGRlYWQgPSB0aGlzLmRlYWQ7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFydGljbGVDb3VudDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZGVhZC5wdXNoKG5ldyB0aGlzLnBhcnRpY2xlQ2xhc3ModGhpcykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGFjdGl2ZSAoaW4tdXNlKSBwYXJ0aWNsZXMgaW4gdGhpcyBlbWl0dGVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZ2V0QWxpdmVQYXJ0aWNsZUNvdW50XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtpbnRlZ2VyfSBUaGUgbnVtYmVyIG9mIHBhcnRpY2xlcyB3aXRoIGBhY3RpdmU9dHJ1ZWAuXHJcbiAgICAgKi9cclxuICAgIGdldEFsaXZlUGFydGljbGVDb3VudDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hbGl2ZS5sZW5ndGg7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGluYWN0aXZlIChhdmFpbGFibGUpIHBhcnRpY2xlcyBpbiB0aGlzIGVtaXR0ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNnZXREZWFkUGFydGljbGVDb3VudFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7aW50ZWdlcn0gVGhlIG51bWJlciBvZiBwYXJ0aWNsZXMgd2l0aCBgYWN0aXZlPWZhbHNlYC5cclxuICAgICAqL1xyXG4gICAgZ2V0RGVhZFBhcnRpY2xlQ291bnQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVhZC5sZW5ndGg7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgdG90YWwgbnVtYmVyIG9mIHBhcnRpY2xlcyBpbiB0aGlzIGVtaXR0ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNnZXRQYXJ0aWNsZUNvdW50XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtpbnRlZ2VyfSBUaGUgbnVtYmVyIG9mIHBhcnRpY2xlcywgaW5jbHVkaW5nIGJvdGggYWxpdmUgYW5kIGRlYWQuXHJcbiAgICAgKi9cclxuICAgIGdldFBhcnRpY2xlQ291bnQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxpdmVQYXJ0aWNsZUNvdW50KCkgKyB0aGlzLmdldERlYWRQYXJ0aWNsZUNvdW50KCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0aGlzIGVtaXR0ZXIgaXMgYXQgaXRzIGxpbWl0IChpZiBzZXQpLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjYXRMaW1pdFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBFbWl0dGVyIGlzIGF0IGl0cyBsaW1pdCwgb3IgYGZhbHNlYCBpZiBubyBsaW1pdCwgb3IgYmVsb3cgdGhlIGBtYXhQYXJ0aWNsZXNgIGxldmVsLlxyXG4gICAgICovXHJcbiAgICBhdExpbWl0OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5tYXhQYXJ0aWNsZXMgPiAwICYmIHRoaXMuZ2V0UGFydGljbGVDb3VudCgpID09PSB0aGlzLm1heFBhcnRpY2xlcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBhIGZ1bmN0aW9uIHRvIGNhbGwgZm9yIGVhY2ggbmV3bHkgZW1pdHRlZCBwYXJ0aWNsZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI29uUGFydGljbGVFbWl0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIGZ1bmN0aW9uLlxyXG4gICAgICogQHBhcmFtIHsqfSBbY29udGV4dF0gLSBUaGUgY2FsbGluZyBjb250ZXh0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgb25QYXJ0aWNsZUVtaXQ6IGZ1bmN0aW9uIChjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBDbGVhciBhbnkgcHJldmlvdXNseSBzZXQgY2FsbGJhY2tcclxuICAgICAgICAgICAgdGhpcy5lbWl0Q2FsbGJhY2sgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmVtaXRDYWxsYmFja1Njb3BlID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5lbWl0Q2FsbGJhY2sgPSBjYWxsYmFjaztcclxuXHJcbiAgICAgICAgICAgIGlmIChjb250ZXh0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRDYWxsYmFja1Njb3BlID0gY29udGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBhIGZ1bmN0aW9uIHRvIGNhbGwgZm9yIGVhY2ggcGFydGljbGUgZGVhdGguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNvblBhcnRpY2xlRGVhdGhcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZURlYXRoQ2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIGZ1bmN0aW9uLlxyXG4gICAgICogQHBhcmFtIHsqfSBbY29udGV4dF0gLSBUaGUgZnVuY3Rpb24ncyBjYWxsaW5nIGNvbnRleHQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXJ0aWNsZSBFbWl0dGVyLlxyXG4gICAgICovXHJcbiAgICBvblBhcnRpY2xlRGVhdGg6IGZ1bmN0aW9uIChjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICBpZiAoY2FsbGJhY2sgPT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBDbGVhciBhbnkgcHJldmlvdXNseSBzZXQgY2FsbGJhY2tcclxuICAgICAgICAgICAgdGhpcy5kZWF0aENhbGxiYWNrID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy5kZWF0aENhbGxiYWNrU2NvcGUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmRlYXRoQ2FsbGJhY2sgPSBjYWxsYmFjaztcclxuXHJcbiAgICAgICAgICAgIGlmIChjb250ZXh0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRlYXRoQ2FsbGJhY2tTY29wZSA9IGNvbnRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlYWN0aXZhdGVzIGV2ZXJ5IHBhcnRpY2xlIGluIHRoaXMgZW1pdHRlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2tpbGxBbGxcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAga2lsbEFsbDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgZGVhZCA9IHRoaXMuZGVhZDtcclxuICAgICAgICB2YXIgYWxpdmUgPSB0aGlzLmFsaXZlO1xyXG5cclxuICAgICAgICB3aGlsZSAoYWxpdmUubGVuZ3RoID4gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGRlYWQucHVzaChhbGl2ZS5wb3AoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxscyBhIGZ1bmN0aW9uIGZvciBlYWNoIGFjdGl2ZSBwYXJ0aWNsZSBpbiB0aGlzIGVtaXR0ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNmb3JFYWNoQWxpdmVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJDYWxsYmFja30gY2FsbGJhY2sgLSBUaGUgZnVuY3Rpb24uXHJcbiAgICAgKiBAcGFyYW0geyp9IGNvbnRleHQgLSBUaGUgZnVuY3Rpb24ncyBjYWxsaW5nIGNvbnRleHQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXJ0aWNsZSBFbWl0dGVyLlxyXG4gICAgICovXHJcbiAgICBmb3JFYWNoQWxpdmU6IGZ1bmN0aW9uIChjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICB2YXIgYWxpdmUgPSB0aGlzLmFsaXZlO1xyXG4gICAgICAgIHZhciBsZW5ndGggPSBhbGl2ZS5sZW5ndGg7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgU2VuZHMgdGhlIFBhcnRpY2xlIGFuZCB0aGUgRW1pdHRlclxyXG4gICAgICAgICAgICBjYWxsYmFjay5jYWxsKGNvbnRleHQsIGFsaXZlW2luZGV4XSwgdGhpcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxscyBhIGZ1bmN0aW9uIGZvciBlYWNoIGluYWN0aXZlIHBhcnRpY2xlIGluIHRoaXMgZW1pdHRlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2ZvckVhY2hEZWFkXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIGZ1bmN0aW9uLlxyXG4gICAgICogQHBhcmFtIHsqfSBjb250ZXh0IC0gVGhlIGZ1bmN0aW9uJ3MgY2FsbGluZyBjb250ZXh0LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgZm9yRWFjaERlYWQ6IGZ1bmN0aW9uIChjYWxsYmFjaywgY29udGV4dClcclxuICAgIHtcclxuICAgICAgICB2YXIgZGVhZCA9IHRoaXMuZGVhZDtcclxuICAgICAgICB2YXIgbGVuZ3RoID0gZGVhZC5sZW5ndGg7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7ICsraW5kZXgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgU2VuZHMgdGhlIFBhcnRpY2xlIGFuZCB0aGUgRW1pdHRlclxyXG4gICAgICAgICAgICBjYWxsYmFjay5jYWxsKGNvbnRleHQsIGRlYWRbaW5kZXhdLCB0aGlzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFR1cm5zIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNvbn0gdGhlIGVtaXR0ZXIgYW5kIHJlc2V0cyB0aGUgZmxvdyBjb3VudGVyLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoaXMgZW1pdHRlciBpcyBpbiBmbG93IG1vZGUgKGZyZXF1ZW5jeSA+PSAwOyB0aGUgZGVmYXVsdCksIHRoZSBwYXJ0aWNsZSBmbG93IHdpbGwgc3RhcnQgKG9yIHJlc3RhcnQpLlxyXG4gICAgICpcclxuICAgICAqIElmIHRoaXMgZW1pdHRlciBpcyBpbiBleHBsb2RlIG1vZGUgKGZyZXF1ZW5jeSA9IC0xKSwgbm90aGluZyB3aWxsIGhhcHBlbi5cclxuICAgICAqIFVzZSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZXhwbG9kZX0gb3Ige0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2Zsb3d9IGluc3RlYWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNzdGFydFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXJ0aWNsZSBFbWl0dGVyLlxyXG4gICAgICovXHJcbiAgICBzdGFydDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLm9uID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5fY291bnRlciA9IDA7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFR1cm5zIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNvbiBvZmZ9IHRoZSBlbWl0dGVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc3RvcFxyXG4gICAgICogQHNpbmNlIDMuMTEuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgc3RvcDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLm9uID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNhY3RpdmUgRGVhY3RpdmF0ZXN9IHRoZSBlbWl0dGVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjcGF1c2VcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUGFydGljbGUgRW1pdHRlci5cclxuICAgICAqL1xyXG4gICAgcGF1c2U6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICoge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2FjdGl2ZSBBY3RpdmF0ZXN9IHRoZSBlbWl0dGVyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjcmVzdW1lXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhcnRpY2xlIEVtaXR0ZXIuXHJcbiAgICAgKi9cclxuICAgIHJlc3VtZTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgdGhlIGVtaXR0ZXIgZnJvbSBpdHMgbWFuYWdlciBhbmQgdGhlIHNjZW5lLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjcmVtb3ZlXHJcbiAgICAgKiBAc2luY2UgMy4yMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXJ0aWNsZSBFbWl0dGVyLlxyXG4gICAgICovXHJcbiAgICByZW1vdmU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5tYW5hZ2VyLnJlbW92ZUVtaXR0ZXIodGhpcyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNvcnRzIGFjdGl2ZSBwYXJ0aWNsZXMgd2l0aCB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZGVwdGhTb3J0Q2FsbGJhY2t9LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZGVwdGhTb3J0XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFBhcnRpY2xlIEVtaXR0ZXIuXHJcbiAgICAgKi9cclxuICAgIGRlcHRoU29ydDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICBTdGFibGVTb3J0LmlucGxhY2UodGhpcy5hbGl2ZSwgdGhpcy5kZXB0aFNvcnRDYWxsYmFjayk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFB1dHMgdGhlIGVtaXR0ZXIgaW4gZmxvdyBtb2RlIChmcmVxdWVuY3kgPj0gMCkgYW5kIHN0YXJ0cyAob3IgcmVzdGFydHMpIGEgcGFydGljbGUgZmxvdy5cclxuICAgICAqXHJcbiAgICAgKiBUbyByZXN1bWUgYSBmbG93IGF0IHRoZSBjdXJyZW50IGZyZXF1ZW5jeSBhbmQgcXVhbnRpdHksIHVzZSB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjc3RhcnR9IGluc3RlYWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNmbG93XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZnJlcXVlbmN5IC0gVGhlIHRpbWUgaW50ZXJ2YWwgKD49IDApIG9mIGVhY2ggZmxvdyBjeWNsZSwgaW4gbXMuXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuRW1pdHRlck9wT25FbWl0VHlwZX0gW2NvdW50PTFdIC0gVGhlIG51bWJlciBvZiBwYXJ0aWNsZXMgdG8gZW1pdCBhdCBlYWNoIGZsb3cgY3ljbGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBQYXJ0aWNsZSBFbWl0dGVyLlxyXG4gICAgICovXHJcbiAgICBmbG93OiBmdW5jdGlvbiAoZnJlcXVlbmN5LCBjb3VudClcclxuICAgIHtcclxuICAgICAgICBpZiAoY291bnQgPT09IHVuZGVmaW5lZCkgeyBjb3VudCA9IDE7IH1cclxuXHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3kgPSBmcmVxdWVuY3k7XHJcblxyXG4gICAgICAgIHRoaXMucXVhbnRpdHkub25DaGFuZ2UoY291bnQpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zdGFydCgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFB1dHMgdGhlIGVtaXR0ZXIgaW4gZXhwbG9kZSBtb2RlIChmcmVxdWVuY3kgPSAtMSksIHN0b3BwaW5nIGFueSBjdXJyZW50IHBhcnRpY2xlIGZsb3csIGFuZCBlbWl0cyBzZXZlcmFsIHBhcnRpY2xlcyBhbGwgYXQgb25jZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyI2V4cGxvZGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gY291bnQgLSBUaGUgYW1vdW50IG9mIFBhcnRpY2xlcyB0byBlbWl0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgeCBjb29yZGluYXRlIHRvIGVtaXQgdGhlIFBhcnRpY2xlcyBmcm9tLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgeSBjb29yZGluYXRlIHRvIGVtaXQgdGhlIFBhcnRpY2xlcyBmcm9tLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGV9IFRoZSBtb3N0IHJlY2VudGx5IGVtaXR0ZWQgUGFydGljbGUuXHJcbiAgICAgKi9cclxuICAgIGV4cGxvZGU6IGZ1bmN0aW9uIChjb3VudCwgeCwgeSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmZyZXF1ZW5jeSA9IC0xO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5lbWl0UGFydGljbGUoY291bnQsIHgsIHkpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVtaXRzIHBhcnRpY2xlcyBhdCBhIGdpdmVuIHBvc2l0aW9uIChvciB0aGUgZW1pdHRlcidzIGN1cnJlbnQgcG9zaXRpb24pLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjZW1pdFBhcnRpY2xlQXRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeD10aGlzLnhdIC0gVGhlIHggY29vcmRpbmF0ZSB0byBlbWl0IHRoZSBQYXJ0aWNsZXMgZnJvbS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeT10aGlzLnhdIC0gVGhlIHkgY29vcmRpbmF0ZSB0byBlbWl0IHRoZSBQYXJ0aWNsZXMgZnJvbS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2NvdW50PXRoaXMucXVhbnRpdHldIC0gVGhlIG51bWJlciBvZiBQYXJ0aWNsZXMgdG8gZW1pdC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlfSBUaGUgbW9zdCByZWNlbnRseSBlbWl0dGVkIFBhcnRpY2xlLlxyXG4gICAgICovXHJcbiAgICBlbWl0UGFydGljbGVBdDogZnVuY3Rpb24gKHgsIHksIGNvdW50KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVtaXRQYXJ0aWNsZShjb3VudCwgeCwgeSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW1pdHMgcGFydGljbGVzIGF0IGEgZ2l2ZW4gcG9zaXRpb24gKG9yIHRoZSBlbWl0dGVyJ3MgY3VycmVudCBwb3NpdGlvbikuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNlbWl0UGFydGljbGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2NvdW50PXRoaXMucXVhbnRpdHldIC0gVGhlIG51bWJlciBvZiBQYXJ0aWNsZXMgdG8gZW1pdC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeD10aGlzLnhdIC0gVGhlIHggY29vcmRpbmF0ZSB0byBlbWl0IHRoZSBQYXJ0aWNsZXMgZnJvbS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeT10aGlzLnhdIC0gVGhlIHkgY29vcmRpbmF0ZSB0byBlbWl0IHRoZSBQYXJ0aWNsZXMgZnJvbS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlfSBUaGUgbW9zdCByZWNlbnRseSBlbWl0dGVkIFBhcnRpY2xlLlxyXG4gICAgICpcclxuICAgICAqIEBzZWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZSNmaXJlXHJcbiAgICAgKi9cclxuICAgIGVtaXRQYXJ0aWNsZTogZnVuY3Rpb24gKGNvdW50LCB4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLmF0TGltaXQoKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb3VudCA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY291bnQgPSB0aGlzLnF1YW50aXR5Lm9uRW1pdCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGRlYWQgPSB0aGlzLmRlYWQ7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQ7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBwYXJ0aWNsZSA9IGRlYWQucG9wKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXBhcnRpY2xlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBwYXJ0aWNsZSA9IG5ldyB0aGlzLnBhcnRpY2xlQ2xhc3ModGhpcyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHBhcnRpY2xlLmZpcmUoeCwgeSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5wYXJ0aWNsZUJyaW5nVG9Ub3ApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxpdmUucHVzaChwYXJ0aWNsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsaXZlLnVuc2hpZnQocGFydGljbGUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5lbWl0Q2FsbGJhY2spXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW1pdENhbGxiYWNrLmNhbGwodGhpcy5lbWl0Q2FsbGJhY2tTY29wZSwgcGFydGljbGUsIHRoaXMpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5hdExpbWl0KCkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcGFydGljbGU7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGlzIGVtaXR0ZXIgYW5kIGl0cyBwYXJ0aWNsZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNwcmVVcGRhdGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gdGltZSAtIFRoZSBjdXJyZW50IHRpbWVzdGFtcCBhcyBnZW5lcmF0ZWQgYnkgdGhlIFJlcXVlc3QgQW5pbWF0aW9uIEZyYW1lIG9yIFNldFRpbWVvdXQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGVsdGEgLSBUaGUgZGVsdGEgdGltZSwgaW4gbXMsIGVsYXBzZWQgc2luY2UgdGhlIGxhc3QgZnJhbWUuXHJcbiAgICAgKi9cclxuICAgIHByZVVwZGF0ZTogZnVuY3Rpb24gKHRpbWUsIGRlbHRhKVxyXG4gICAge1xyXG4gICAgICAgIC8vICBTY2FsZSB0aGUgZGVsdGFcclxuICAgICAgICBkZWx0YSAqPSB0aGlzLnRpbWVTY2FsZTtcclxuXHJcbiAgICAgICAgdmFyIHN0ZXAgPSAoZGVsdGEgLyAxMDAwKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudHJhY2tWaXNpYmxlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5mb2xsb3cudmlzaWJsZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBBbnkgcGFydGljbGUgcHJvY2Vzc29ycz9cclxuICAgICAgICB2YXIgcHJvY2Vzc29ycyA9IHRoaXMubWFuYWdlci5nZXRQcm9jZXNzb3JzKCk7XHJcblxyXG4gICAgICAgIHZhciBwYXJ0aWNsZXMgPSB0aGlzLmFsaXZlO1xyXG4gICAgICAgIHZhciBkZWFkID0gdGhpcy5kZWFkO1xyXG5cclxuICAgICAgICB2YXIgaSA9IDA7XHJcbiAgICAgICAgdmFyIHJpcCA9IFtdO1xyXG4gICAgICAgIHZhciBsZW5ndGggPSBwYXJ0aWNsZXMubGVuZ3RoO1xyXG5cclxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgcGFydGljbGUgPSBwYXJ0aWNsZXNbaV07XHJcblxyXG4gICAgICAgICAgICAvLyAgdXBkYXRlIHJldHVybnMgYHRydWVgIGlmIHRoZSBwYXJ0aWNsZSBpcyBub3cgZGVhZCAobGlmZUN1cnJlbnQgPD0gMClcclxuICAgICAgICAgICAgaWYgKHBhcnRpY2xlLnVwZGF0ZShkZWx0YSwgc3RlcCwgcHJvY2Vzc29ycykpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJpcC5wdXNoKHsgaW5kZXg6IGksIHBhcnRpY2xlOiBwYXJ0aWNsZSB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gIE1vdmUgZGVhZCBwYXJ0aWNsZXMgdG8gdGhlIGRlYWQgYXJyYXlcclxuICAgICAgICBsZW5ndGggPSByaXAubGVuZ3RoO1xyXG5cclxuICAgICAgICBpZiAobGVuZ3RoID4gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBkZWF0aENhbGxiYWNrID0gdGhpcy5kZWF0aENhbGxiYWNrO1xyXG4gICAgICAgICAgICB2YXIgZGVhdGhDYWxsYmFja1Njb3BlID0gdGhpcy5kZWF0aENhbGxiYWNrU2NvcGU7XHJcblxyXG4gICAgICAgICAgICBmb3IgKGkgPSBsZW5ndGggLSAxOyBpID49IDA7IGktLSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gcmlwW2ldO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vICBSZW1vdmUgZnJvbSBwYXJ0aWNsZXMgYXJyYXlcclxuICAgICAgICAgICAgICAgIHBhcnRpY2xlcy5zcGxpY2UoZW50cnkuaW5kZXgsIDEpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vICBBZGQgdG8gZGVhZCBhcnJheVxyXG4gICAgICAgICAgICAgICAgZGVhZC5wdXNoKGVudHJ5LnBhcnRpY2xlKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyAgQ2FsbGJhY2tcclxuICAgICAgICAgICAgICAgIGlmIChkZWF0aENhbGxiYWNrKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGRlYXRoQ2FsbGJhY2suY2FsbChkZWF0aENhbGxiYWNrU2NvcGUsIGVudHJ5LnBhcnRpY2xlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBlbnRyeS5wYXJ0aWNsZS5yZXNldFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5vbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZyZXF1ZW5jeSA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZW1pdFBhcnRpY2xlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZnJlcXVlbmN5ID4gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NvdW50ZXIgLT0gZGVsdGE7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fY291bnRlciA8PSAwKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVtaXRQYXJ0aWNsZSgpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vICBjb3VudGVyID0gZnJlcXVlbmN5IC0gcmVtYWluZWQgZnJvbSBwcmV2aW91cyBkZWx0YVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY291bnRlciA9ICh0aGlzLmZyZXF1ZW5jeSAtIE1hdGguYWJzKHRoaXMuX2NvdW50ZXIpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBkaWZmZXJlbmNlIG9mIHR3byBwYXJ0aWNsZXMsIGZvciBzb3J0aW5nIHRoZW0gYnkgZGVwdGguXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNkZXB0aFNvcnRDYWxsYmFja1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IGEgLSBUaGUgZmlyc3QgcGFydGljbGUuXHJcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gYiAtIFRoZSBzZWNvbmQgcGFydGljbGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7aW50ZWdlcn0gVGhlIGRpZmZlcmVuY2Ugb2YgYSBhbmQgYidzIHkgY29vcmRpbmF0ZXMuXHJcbiAgICAgKi9cclxuICAgIGRlcHRoU29ydENhbGxiYWNrOiBmdW5jdGlvbiAoYSwgYilcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gYS55IC0gYi55O1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBhcnRpY2xlRW1pdHRlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgQ29tcG9uZW50cyA9IHJlcXVpcmUoJy4uL2NvbXBvbmVudHMnKTtcclxudmFyIEdhbWVPYmplY3QgPSByZXF1aXJlKCcuLi9HYW1lT2JqZWN0Jyk7XHJcbnZhciBHcmF2aXR5V2VsbCA9IHJlcXVpcmUoJy4vR3Jhdml0eVdlbGwnKTtcclxudmFyIExpc3QgPSByZXF1aXJlKCcuLi8uLi9zdHJ1Y3RzL0xpc3QnKTtcclxudmFyIFBhcnRpY2xlRW1pdHRlciA9IHJlcXVpcmUoJy4vUGFydGljbGVFbWl0dGVyJyk7XHJcbnZhciBSZW5kZXIgPSByZXF1aXJlKCcuL1BhcnRpY2xlTWFuYWdlclJlbmRlcicpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBQYXJ0aWNsZSBFbWl0dGVyIE1hbmFnZXIgY3JlYXRlcyBhbmQgY29udHJvbHMge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyIFBhcnRpY2xlIEVtaXR0ZXJzfSBhbmQge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuR3Jhdml0eVdlbGwgR3Jhdml0eSBXZWxsc30uXHJcbiAqXHJcbiAqIEBjbGFzcyBQYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0XHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuRGVwdGhcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuTWFza1xyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5QaXBlbGluZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1cclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVmlzaWJsZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBUaGUgU2NlbmUgdG8gd2hpY2ggdGhpcyBFbWl0dGVyIE1hbmFnZXIgYmVsb25ncy5cclxuICogQHBhcmFtIHtzdHJpbmd9IHRleHR1cmUgLSBUaGUga2V5IG9mIHRoZSBUZXh0dXJlIHRoaXMgRW1pdHRlciBNYW5hZ2VyIHdpbGwgdXNlIHRvIHJlbmRlciBwYXJ0aWNsZXMsIGFzIHN0b3JlZCBpbiB0aGUgVGV4dHVyZSBNYW5hZ2VyLlxyXG4gKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcil9IFtmcmFtZV0gLSBBbiBvcHRpb25hbCBmcmFtZSBmcm9tIHRoZSBUZXh0dXJlIHRoaXMgRW1pdHRlciBNYW5hZ2VyIHdpbGwgdXNlIHRvIHJlbmRlciBwYXJ0aWNsZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJDb25maWd8UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJDb25maWdbXX0gW2VtaXR0ZXJzXSAtIENvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIG9uZSBvciBtb3JlIGVtaXR0ZXJzIHRvIGNyZWF0ZS5cclxuICovXHJcbnZhciBQYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBFeHRlbmRzOiBHYW1lT2JqZWN0LFxyXG5cclxuICAgIE1peGluczogW1xyXG4gICAgICAgIENvbXBvbmVudHMuRGVwdGgsXHJcbiAgICAgICAgQ29tcG9uZW50cy5NYXNrLFxyXG4gICAgICAgIENvbXBvbmVudHMuUGlwZWxpbmUsXHJcbiAgICAgICAgQ29tcG9uZW50cy5UcmFuc2Zvcm0sXHJcbiAgICAgICAgQ29tcG9uZW50cy5WaXNpYmxlLFxyXG4gICAgICAgIFJlbmRlclxyXG4gICAgXSxcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIC8vICBmcmFtZSBpcyBvcHRpb25hbCBhbmQgY2FuIGNvbnRhaW4gdGhlIGVtaXR0ZXJzIGFycmF5IG9yIG9iamVjdCBpZiBza2lwcGVkXHJcbiAgICBmdW5jdGlvbiBQYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyIChzY2VuZSwgdGV4dHVyZSwgZnJhbWUsIGVtaXR0ZXJzKVxyXG4gICAge1xyXG4gICAgICAgIEdhbWVPYmplY3QuY2FsbCh0aGlzLCBzY2VuZSwgJ1BhcnRpY2xlRW1pdHRlck1hbmFnZXInKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGJsZW5kIG1vZGUgYXBwbGllZCB0byBhbGwgZW1pdHRlcnMgYW5kIHBhcnRpY2xlcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyTWFuYWdlciNibGVuZE1vZGVcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAtMVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ibGVuZE1vZGUgPSAtMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHRpbWUgc2NhbGUgYXBwbGllZCB0byBhbGwgZW1pdHRlcnMgYW5kIHBhcnRpY2xlcywgYWZmZWN0aW5nIGZsb3cgcmF0ZSwgbGlmZXNwYW4sIGFuZCBtb3ZlbWVudC5cclxuICAgICAgICAgKiBWYWx1ZXMgbGFyZ2VyIHRoYW4gMSBhcmUgZmFzdGVyIHRoYW4gbm9ybWFsLlxyXG4gICAgICAgICAqIFRoaXMgaXMgbXVsdGlwbGllZCB3aXRoIGFueSB0aW1lU2NhbGUgc2V0IG9uIGVhY2ggaW5kaXZpZHVhbCBlbWl0dGVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyI3RpbWVTY2FsZVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudGltZVNjYWxlID0gMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHRleHR1cmUgdXNlZCB0byByZW5kZXIgdGhpcyBFbWl0dGVyIE1hbmFnZXIncyBwYXJ0aWNsZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlck1hbmFnZXIjdGV4dHVyZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuVGV4dHVyZXMuVGV4dHVyZX1cclxuICAgICAgICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy50ZXh0dXJlID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHRleHR1cmUgZnJhbWUgdXNlZCB0byByZW5kZXIgdGhpcyBFbWl0dGVyIE1hbmFnZXIncyBwYXJ0aWNsZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlck1hbmFnZXIjZnJhbWVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlRleHR1cmVzLkZyYW1lfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZyYW1lID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogTmFtZXMgb2YgdGhpcyBFbWl0dGVyIE1hbmFnZXIncyB0ZXh0dXJlIGZyYW1lcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyTWFuYWdlciNmcmFtZU5hbWVzXHJcbiAgICAgICAgICogQHR5cGUge3N0cmluZ1tdfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZnJhbWVOYW1lcyA9IFtdO1xyXG5cclxuICAgICAgICAvLyAgZnJhbWUgaXMgb3B0aW9uYWwgYW5kIGNhbiBjb250YWluIHRoZSBlbWl0dGVycyBhcnJheSBvciBvYmplY3QgaWYgc2tpcHBlZFxyXG4gICAgICAgIGlmIChmcmFtZSAhPT0gbnVsbCAmJiAodHlwZW9mIGZyYW1lID09PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGZyYW1lKSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBlbWl0dGVycyA9IGZyYW1lO1xyXG4gICAgICAgICAgICBmcmFtZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldFRleHR1cmUodGV4dHVyZSwgZnJhbWUpO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRQaXBlbGluZSgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIGxpc3Qgb2YgRW1pdHRlcnMgYmVpbmcgbWFuYWdlZCBieSB0aGlzIEVtaXR0ZXIgTWFuYWdlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyTWFuYWdlciNlbWl0dGVyc1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuU3RydWN0cy5MaXN0LjxQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlcj59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5lbWl0dGVycyA9IG5ldyBMaXN0KHRoaXMpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIGxpc3Qgb2YgR3Jhdml0eSBXZWxscyBiZWluZyBtYW5hZ2VkIGJ5IHRoaXMgRW1pdHRlciBNYW5hZ2VyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyI3dlbGxzXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5TdHJ1Y3RzLkxpc3QuPFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuR3Jhdml0eVdlbGw+fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMud2VsbHMgPSBuZXcgTGlzdCh0aGlzKTtcclxuXHJcbiAgICAgICAgaWYgKGVtaXR0ZXJzKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIEFuIGFycmF5IG9mIGVtaXR0ZXIgY29uZmlncz9cclxuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGVtaXR0ZXJzKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZW1pdHRlcnMgPSBbIGVtaXR0ZXJzIF07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW1pdHRlcnMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlRW1pdHRlcihlbWl0dGVyc1tpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdGV4dHVyZSBhbmQgZnJhbWUgdGhpcyBFbWl0dGVyIE1hbmFnZXIgd2lsbCB1c2UgdG8gcmVuZGVyIHdpdGguXHJcbiAgICAgKlxyXG4gICAgICogVGV4dHVyZXMgYXJlIHJlZmVyZW5jZWQgYnkgdGhlaXIgc3RyaW5nLWJhc2VkIGtleXMsIGFzIHN0b3JlZCBpbiB0aGUgVGV4dHVyZSBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyI3NldFRleHR1cmVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSB0ZXh0dXJlIHRvIGJlIHVzZWQsIGFzIHN0b3JlZCBpbiB0aGUgVGV4dHVyZSBNYW5hZ2VyLlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBbZnJhbWVdIC0gVGhlIG5hbWUgb3IgaW5kZXggb2YgdGhlIGZyYW1lIHdpdGhpbiB0aGUgVGV4dHVyZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEVtaXR0ZXIgTWFuYWdlci5cclxuICAgICAqL1xyXG4gICAgc2V0VGV4dHVyZTogZnVuY3Rpb24gKGtleSwgZnJhbWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy50ZXh0dXJlID0gdGhpcy5zY2VuZS5zeXMudGV4dHVyZXMuZ2V0KGtleSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnNldEZyYW1lKGZyYW1lKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBmcmFtZSB0aGlzIEVtaXR0ZXIgTWFuYWdlciB3aWxsIHVzZSB0byByZW5kZXIgd2l0aC5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgRnJhbWUgaGFzIHRvIGJlbG9uZyB0byB0aGUgY3VycmVudCBUZXh0dXJlIGJlaW5nIHVzZWQuXHJcbiAgICAgKlxyXG4gICAgICogSXQgY2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBhbiBpbmRleC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyTWFuYWdlciNzZXRGcmFtZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBbZnJhbWVdIC0gVGhlIG5hbWUgb3IgaW5kZXggb2YgdGhlIGZyYW1lIHdpdGhpbiB0aGUgVGV4dHVyZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEVtaXR0ZXIgTWFuYWdlci5cclxuICAgICAqL1xyXG4gICAgc2V0RnJhbWU6IGZ1bmN0aW9uIChmcmFtZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmZyYW1lID0gdGhpcy50ZXh0dXJlLmdldChmcmFtZSk7XHJcblxyXG4gICAgICAgIHZhciBmcmFtZXMgPSB0aGlzLnRleHR1cmUuZ2V0RnJhbWVzRnJvbVRleHR1cmVTb3VyY2UodGhpcy5mcmFtZS5zb3VyY2VJbmRleCk7XHJcblxyXG4gICAgICAgIHZhciBuYW1lcyA9IFtdO1xyXG5cclxuICAgICAgICBmcmFtZXMuZm9yRWFjaChmdW5jdGlvbiAoc291cmNlRnJhbWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lcy5wdXNoKHNvdXJjZUZyYW1lLm5hbWUpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZyYW1lTmFtZXMgPSBuYW1lcztcclxuXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0RnJhbWUgPSB0aGlzLmZyYW1lO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBc3NpZ25zIHRleHR1cmUgZnJhbWVzIHRvIGFuIGVtaXR0ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlck1hbmFnZXIjc2V0RW1pdHRlckZyYW1lc1xyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHsoUGhhc2VyLlRleHR1cmVzLkZyYW1lfFBoYXNlci5UZXh0dXJlcy5GcmFtZVtdKX0gZnJhbWVzIC0gVGhlIHRleHR1cmUgZnJhbWVzLlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlcn0gZW1pdHRlciAtIFRoZSBwYXJ0aWNsZSBlbWl0dGVyIHRvIG1vZGlmeS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEVtaXR0ZXIgTWFuYWdlci5cclxuICAgICAqL1xyXG4gICAgc2V0RW1pdHRlckZyYW1lczogZnVuY3Rpb24gKGZyYW1lcywgZW1pdHRlcilcclxuICAgIHtcclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZnJhbWVzKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGZyYW1lcyA9IFsgZnJhbWVzIF07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgb3V0ID0gZW1pdHRlci5mcmFtZXM7XHJcblxyXG4gICAgICAgIG91dC5sZW5ndGggPSAwO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZyYW1lcy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBmcmFtZSA9IGZyYW1lc1tpXTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZyYW1lTmFtZXMuaW5kZXhPZihmcmFtZSkgIT09IC0xKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBvdXQucHVzaCh0aGlzLnRleHR1cmUuZ2V0KGZyYW1lKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvdXQubGVuZ3RoID4gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGVtaXR0ZXIuZGVmYXVsdEZyYW1lID0gb3V0WzBdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBlbWl0dGVyLmRlZmF1bHRGcmFtZSA9IHRoaXMuZGVmYXVsdEZyYW1lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkcyBhbiBleGlzdGluZyBQYXJ0aWNsZSBFbWl0dGVyIHRvIHRoaXMgRW1pdHRlciBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyI2FkZEVtaXR0ZXJcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJ9IGVtaXR0ZXIgLSBUaGUgUGFydGljbGUgRW1pdHRlciB0byBhZGQgdG8gdGhpcyBFbWl0dGVyIE1hbmFnZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJ9IFRoZSBQYXJ0aWNsZSBFbWl0dGVyIHRoYXQgd2FzIGFkZGVkIHRvIHRoaXMgRW1pdHRlciBNYW5hZ2VyLlxyXG4gICAgICovXHJcbiAgICBhZGRFbWl0dGVyOiBmdW5jdGlvbiAoZW1pdHRlcilcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbWl0dGVycy5hZGQoZW1pdHRlcik7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBQYXJ0aWNsZSBFbWl0dGVyIG9iamVjdCwgYWRkcyBpdCB0byB0aGlzIEVtaXR0ZXIgTWFuYWdlciBhbmQgcmV0dXJucyBhIHJlZmVyZW5jZSB0byBpdC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyTWFuYWdlciNjcmVhdGVFbWl0dGVyXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyQ29uZmlnfSBjb25maWcgLSBDb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB0aGUgUGFydGljbGUgRW1pdHRlciB0byBjcmVhdGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJ9IFRoZSBQYXJ0aWNsZSBFbWl0dGVyIHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZUVtaXR0ZXI6IGZ1bmN0aW9uIChjb25maWcpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkRW1pdHRlcihuZXcgUGFydGljbGVFbWl0dGVyKHRoaXMsIGNvbmZpZykpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZXMgYSBQYXJ0aWNsZSBFbWl0dGVyIGZyb20gdGhpcyBFbWl0dGVyIE1hbmFnZXIsIGlmIHRoZSBFbWl0dGVyIGJlbG9uZ3MgdG8gdGhpcyBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyI3JlbW92ZUVtaXR0ZXJcclxuICAgICAqIEBzaW5jZSAzLjIyLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyfSBlbWl0dGVyXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7P1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyfSBUaGUgUGFydGljbGUgRW1pdHRlciBpZiBpdCB3YXMgcmVtb3ZlZCBvciBudWxsIGlmIGl0IHdhcyBub3QuXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZUVtaXR0ZXI6IGZ1bmN0aW9uIChlbWl0dGVyKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVtaXR0ZXJzLnJlbW92ZShlbWl0dGVyLCB0cnVlKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGRzIGFuIGV4aXN0aW5nIEdyYXZpdHkgV2VsbCBvYmplY3QgdG8gdGhpcyBFbWl0dGVyIE1hbmFnZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlck1hbmFnZXIjYWRkR3Jhdml0eVdlbGxcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5HcmF2aXR5V2VsbH0gd2VsbCAtIFRoZSBHcmF2aXR5IFdlbGwgdG8gYWRkIHRvIHRoaXMgRW1pdHRlciBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuR3Jhdml0eVdlbGx9IFRoZSBHcmF2aXR5IFdlbGwgdGhhdCB3YXMgYWRkZWQgdG8gdGhpcyBFbWl0dGVyIE1hbmFnZXIuXHJcbiAgICAgKi9cclxuICAgIGFkZEdyYXZpdHlXZWxsOiBmdW5jdGlvbiAod2VsbClcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy53ZWxscy5hZGQod2VsbCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhIG5ldyBHcmF2aXR5IFdlbGwsIGFkZHMgaXQgdG8gdGhpcyBFbWl0dGVyIE1hbmFnZXIgYW5kIHJldHVybnMgYSByZWZlcmVuY2UgdG8gaXQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlck1hbmFnZXIjY3JlYXRlR3Jhdml0eVdlbGxcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5HcmF2aXR5V2VsbENvbmZpZ30gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgdGhlIEdyYXZpdHkgV2VsbCB0byBjcmVhdGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5HcmF2aXR5V2VsbH0gVGhlIEdyYXZpdHkgV2VsbCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gICAgICovXHJcbiAgICBjcmVhdGVHcmF2aXR5V2VsbDogZnVuY3Rpb24gKGNvbmZpZylcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hZGRHcmF2aXR5V2VsbChuZXcgR3Jhdml0eVdlbGwoY29uZmlnKSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW1pdHMgcGFydGljbGVzIGZyb20gZWFjaCBhY3RpdmUgZW1pdHRlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyTWFuYWdlciNlbWl0UGFydGljbGVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW2NvdW50XSAtIFRoZSBudW1iZXIgb2YgcGFydGljbGVzIHRvIHJlbGVhc2UgZnJvbSBlYWNoIGVtaXR0ZXIuIFRoZSBkZWZhdWx0IGlzIHRoZSBlbWl0dGVyJ3Mgb3duIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlciNxdWFudGl0eX0uXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3hdIC0gVGhlIHgtY29vcmRpbmF0ZSB0byB0byBlbWl0IHBhcnRpY2xlcyBmcm9tLiBUaGUgZGVmYXVsdCBpcyB0aGUgeC1jb29yZGluYXRlIG9mIHRoZSBlbWl0dGVyJ3MgY3VycmVudCBsb2NhdGlvbi5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeV0gLSBUaGUgeS1jb29yZGluYXRlIHRvIHRvIGVtaXQgcGFydGljbGVzIGZyb20uIFRoZSBkZWZhdWx0IGlzIHRoZSB5LWNvb3JkaW5hdGUgb2YgdGhlIGVtaXR0ZXIncyBjdXJyZW50IGxvY2F0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRW1pdHRlciBNYW5hZ2VyLlxyXG4gICAgICovXHJcbiAgICBlbWl0UGFydGljbGU6IGZ1bmN0aW9uIChjb3VudCwgeCwgeSlcclxuICAgIHtcclxuICAgICAgICB2YXIgZW1pdHRlcnMgPSB0aGlzLmVtaXR0ZXJzLmxpc3Q7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW1pdHRlcnMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgZW1pdHRlciA9IGVtaXR0ZXJzW2ldO1xyXG5cclxuICAgICAgICAgICAgaWYgKGVtaXR0ZXIuYWN0aXZlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBlbWl0dGVyLmVtaXRQYXJ0aWNsZShjb3VudCwgeCwgeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVtaXRzIHBhcnRpY2xlcyBmcm9tIGVhY2ggYWN0aXZlIGVtaXR0ZXIuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlck1hbmFnZXIjZW1pdFBhcnRpY2xlQXRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeF0gLSBUaGUgeC1jb29yZGluYXRlIHRvIHRvIGVtaXQgcGFydGljbGVzIGZyb20uIFRoZSBkZWZhdWx0IGlzIHRoZSB4LWNvb3JkaW5hdGUgb2YgdGhlIGVtaXR0ZXIncyBjdXJyZW50IGxvY2F0aW9uLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5XSAtIFRoZSB5LWNvb3JkaW5hdGUgdG8gdG8gZW1pdCBwYXJ0aWNsZXMgZnJvbS4gVGhlIGRlZmF1bHQgaXMgdGhlIHktY29vcmRpbmF0ZSBvZiB0aGUgZW1pdHRlcidzIGN1cnJlbnQgbG9jYXRpb24uXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFtjb3VudF0gLSBUaGUgbnVtYmVyIG9mIHBhcnRpY2xlcyB0byByZWxlYXNlIGZyb20gZWFjaCBlbWl0dGVyLiBUaGUgZGVmYXVsdCBpcyB0aGUgZW1pdHRlcidzIG93biB7QGxpbmsgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXIjcXVhbnRpdHl9LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgRW1pdHRlciBNYW5hZ2VyLlxyXG4gICAgICovXHJcbiAgICBlbWl0UGFydGljbGVBdDogZnVuY3Rpb24gKHgsIHksIGNvdW50KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVtaXRQYXJ0aWNsZShjb3VudCwgeCwgeSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF1c2VzIHRoaXMgRW1pdHRlciBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIFRoaXMgaGFzIHRoZSBlZmZlY3Qgb2YgcGF1c2luZyBhbGwgZW1pdHRlcnMsIGFuZCBhbGwgcGFydGljbGVzIG9mIHRob3NlIGVtaXR0ZXJzLCBjdXJyZW50bHkgdW5kZXIgaXRzIGNvbnRyb2wuXHJcbiAgICAgKlxyXG4gICAgICogVGhlIHBhcnRpY2xlcyB3aWxsIHN0aWxsIHJlbmRlciwgYnV0IHRoZXkgd2lsbCBub3QgaGF2ZSBhbnkgb2YgdGhlaXIgbG9naWMgdXBkYXRlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyTWFuYWdlciNwYXVzZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBFbWl0dGVyIE1hbmFnZXIuXHJcbiAgICAgKi9cclxuICAgIHBhdXNlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc3VtZXMgdGhpcyBFbWl0dGVyIE1hbmFnZXIsIHNob3VsZCBpdCBoYXZlIGJlZW4gcHJldmlvdXNseSBwYXVzZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlck1hbmFnZXIjcmVzdW1lXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEVtaXR0ZXIgTWFuYWdlci5cclxuICAgICAqL1xyXG4gICAgcmVzdW1lOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhbGwgYWN0aXZlIHBhcnRpY2xlIHByb2Nlc3NvcnMgKGdyYXZpdHkgd2VsbHMpLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyI2dldFByb2Nlc3NvcnNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuR3Jhdml0eVdlbGxbXX0gLSBUaGUgYWN0aXZlIGdyYXZpdHkgd2VsbHMuXHJcbiAgICAgKi9cclxuICAgIGdldFByb2Nlc3NvcnM6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMud2VsbHMuZ2V0QWxsKCdhY3RpdmUnLCB0cnVlKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIGFsbCBhY3RpdmUgZW1pdHRlcnMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlck1hbmFnZXIjcHJlVXBkYXRlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHRpbWUgLSBUaGUgY3VycmVudCB0aW1lc3RhbXAgYXMgZ2VuZXJhdGVkIGJ5IHRoZSBSZXF1ZXN0IEFuaW1hdGlvbiBGcmFtZSBvciBTZXRUaW1lb3V0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGRlbHRhIC0gVGhlIGRlbHRhIHRpbWUsIGluIG1zLCBlbGFwc2VkIHNpbmNlIHRoZSBsYXN0IGZyYW1lLlxyXG4gICAgICovXHJcbiAgICBwcmVVcGRhdGU6IGZ1bmN0aW9uICh0aW1lLCBkZWx0YSlcclxuICAgIHtcclxuICAgICAgICAvLyAgU2NhbGUgdGhlIGRlbHRhXHJcbiAgICAgICAgZGVsdGEgKj0gdGhpcy50aW1lU2NhbGU7XHJcblxyXG4gICAgICAgIHZhciBlbWl0dGVycyA9IHRoaXMuZW1pdHRlcnMubGlzdDtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbWl0dGVycy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBlbWl0dGVyID0gZW1pdHRlcnNbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoZW1pdHRlci5hY3RpdmUpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGVtaXR0ZXIucHJlVXBkYXRlKHRpbWUsIGRlbHRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIE5PT1AgbWV0aG9kIHNvIHlvdSBjYW4gcGFzcyBhbiBFbWl0dGVyTWFuYWdlciB0byBhIENvbnRhaW5lci5cclxuICAgICAqIENhbGxpbmcgdGhpcyBtZXRob2Qgd2lsbCBkbyBub3RoaW5nLiBJdCBpcyBpbnRlbnRpb25hbGx5IGVtcHR5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyI3NldEFscGhhXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTAuMFxyXG4gICAgICovXHJcbiAgICBzZXRBbHBoYTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIE5PT1AgbWV0aG9kIHNvIHlvdSBjYW4gcGFzcyBhbiBFbWl0dGVyTWFuYWdlciB0byBhIENvbnRhaW5lci5cclxuICAgICAqIENhbGxpbmcgdGhpcyBtZXRob2Qgd2lsbCBkbyBub3RoaW5nLiBJdCBpcyBpbnRlbnRpb25hbGx5IGVtcHR5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyI3NldFNjcm9sbEZhY3RvclxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjEwLjBcclxuICAgICAqL1xyXG4gICAgc2V0U2Nyb2xsRmFjdG9yOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEEgTk9PUCBtZXRob2Qgc28geW91IGNhbiBwYXNzIGFuIEVtaXR0ZXJNYW5hZ2VyIHRvIGEgQ29udGFpbmVyLlxyXG4gICAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCB3aWxsIGRvIG5vdGhpbmcuIEl0IGlzIGludGVudGlvbmFsbHkgZW1wdHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlck1hbmFnZXIjc2V0QmxlbmRNb2RlXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTUuMFxyXG4gICAgICovXHJcbiAgICBzZXRCbGVuZE1vZGU6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUGFydGljbGVFbWl0dGVyTWFuYWdlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogUmVuZGVycyB0aGlzIEdhbWUgT2JqZWN0IHdpdGggdGhlIENhbnZhcyBSZW5kZXJlciB0byB0aGUgZ2l2ZW4gQ2FtZXJhLlxyXG4gKiBUaGUgb2JqZWN0IHdpbGwgbm90IHJlbmRlciBpZiBhbnkgb2YgaXRzIHJlbmRlckZsYWdzIGFyZSBzZXQgb3IgaXQgaXMgYmVpbmcgYWN0aXZlbHkgZmlsdGVyZWQgb3V0IGJ5IHRoZSBDYW1lcmEuXHJcbiAqIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBJdCBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gb2YgdGhlIFJlbmRlciBtb2R1bGUuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FbWl0dGVyTWFuYWdlciNyZW5kZXJDYW52YXNcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLkNhbnZhcy5DYW52YXNSZW5kZXJlcn0gcmVuZGVyZXIgLSBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBhY3RpdmUgQ2FudmFzIHJlbmRlcmVyLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuUGFydGljbGVFbWl0dGVyTWFuYWdlcn0gZW1pdHRlck1hbmFnZXIgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgUGFydGljbGVNYW5hZ2VyQ2FudmFzUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIGVtaXR0ZXJNYW5hZ2VyLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBlbWl0dGVycyA9IGVtaXR0ZXJNYW5hZ2VyLmVtaXR0ZXJzLmxpc3Q7XHJcbiAgICB2YXIgZW1pdHRlcnNMZW5ndGggPSBlbWl0dGVycy5sZW5ndGg7XHJcblxyXG4gICAgaWYgKGVtaXR0ZXJzTGVuZ3RoID09PSAwKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgY2FtTWF0cml4ID0gcmVuZGVyZXIuX3RlbXBNYXRyaXgxLmNvcHlGcm9tKGNhbWVyYS5tYXRyaXgpO1xyXG4gICAgdmFyIGNhbGNNYXRyaXggPSByZW5kZXJlci5fdGVtcE1hdHJpeDI7XHJcbiAgICB2YXIgcGFydGljbGVNYXRyaXggPSByZW5kZXJlci5fdGVtcE1hdHJpeDM7XHJcbiAgICB2YXIgbWFuYWdlck1hdHJpeCA9IHJlbmRlcmVyLl90ZW1wTWF0cml4NC5hcHBseUlUUlMoZW1pdHRlck1hbmFnZXIueCwgZW1pdHRlck1hbmFnZXIueSwgZW1pdHRlck1hbmFnZXIucm90YXRpb24sIGVtaXR0ZXJNYW5hZ2VyLnNjYWxlWCwgZW1pdHRlck1hbmFnZXIuc2NhbGVZKTtcclxuXHJcbiAgICBjYW1NYXRyaXgubXVsdGlwbHkobWFuYWdlck1hdHJpeCk7XHJcblxyXG4gICAgdmFyIHJvdW5kUGl4ZWxzID0gY2FtZXJhLnJvdW5kUGl4ZWxzO1xyXG5cclxuICAgIHZhciBjdHggPSByZW5kZXJlci5jdXJyZW50Q29udGV4dDtcclxuXHJcbiAgICBjdHguc2F2ZSgpO1xyXG5cclxuICAgIGZvciAodmFyIGUgPSAwOyBlIDwgZW1pdHRlcnNMZW5ndGg7IGUrKylcclxuICAgIHtcclxuICAgICAgICB2YXIgZW1pdHRlciA9IGVtaXR0ZXJzW2VdO1xyXG4gICAgICAgIHZhciBwYXJ0aWNsZXMgPSBlbWl0dGVyLmFsaXZlO1xyXG4gICAgICAgIHZhciBwYXJ0aWNsZUNvdW50ID0gcGFydGljbGVzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgaWYgKCFlbWl0dGVyLnZpc2libGUgfHwgcGFydGljbGVDb3VudCA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIHNjcm9sbFggPSBjYW1lcmEuc2Nyb2xsWCAqIGVtaXR0ZXIuc2Nyb2xsRmFjdG9yWDtcclxuICAgICAgICB2YXIgc2Nyb2xsWSA9IGNhbWVyYS5zY3JvbGxZICogZW1pdHRlci5zY3JvbGxGYWN0b3JZO1xyXG5cclxuICAgICAgICBpZiAocGFyZW50TWF0cml4KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIE11bHRpcGx5IHRoZSBjYW1lcmEgYnkgdGhlIHBhcmVudCBtYXRyaXhcclxuICAgICAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5V2l0aE9mZnNldChwYXJlbnRNYXRyaXgsIC1zY3JvbGxYLCAtc2Nyb2xsWSk7XHJcblxyXG4gICAgICAgICAgICBzY3JvbGxYID0gMDtcclxuICAgICAgICAgICAgc2Nyb2xsWSA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gcmVuZGVyZXIuYmxlbmRNb2Rlc1tlbWl0dGVyLmJsZW5kTW9kZV07XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFydGljbGVDb3VudDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHBhcnRpY2xlID0gcGFydGljbGVzW2ldO1xyXG5cclxuICAgICAgICAgICAgdmFyIGFscGhhID0gcGFydGljbGUuYWxwaGEgKiBjYW1lcmEuYWxwaGE7XHJcblxyXG4gICAgICAgICAgICBpZiAoYWxwaGEgPD0gMClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHZhciBmcmFtZSA9IHBhcnRpY2xlLmZyYW1lO1xyXG4gICAgICAgICAgICB2YXIgY2QgPSBmcmFtZS5jYW52YXNEYXRhO1xyXG5cclxuICAgICAgICAgICAgdmFyIHggPSAtKGZyYW1lLmhhbGZXaWR0aCk7XHJcbiAgICAgICAgICAgIHZhciB5ID0gLShmcmFtZS5oYWxmSGVpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgIHBhcnRpY2xlTWF0cml4LmFwcGx5SVRSUygwLCAwLCBwYXJ0aWNsZS5yb3RhdGlvbiwgcGFydGljbGUuc2NhbGVYLCBwYXJ0aWNsZS5zY2FsZVkpO1xyXG5cclxuICAgICAgICAgICAgcGFydGljbGVNYXRyaXguZSA9IHBhcnRpY2xlLnggLSBzY3JvbGxYO1xyXG4gICAgICAgICAgICBwYXJ0aWNsZU1hdHJpeC5mID0gcGFydGljbGUueSAtIHNjcm9sbFk7XHJcblxyXG4gICAgICAgICAgICBjYW1NYXRyaXgubXVsdGlwbHkocGFydGljbGVNYXRyaXgsIGNhbGNNYXRyaXgpO1xyXG5cclxuICAgICAgICAgICAgY3R4Lmdsb2JhbEFscGhhID0gYWxwaGE7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIGN0eC5zYXZlKCk7XHJcblxyXG4gICAgICAgICAgICBjYWxjTWF0cml4LmNvcHlUb0NvbnRleHQoY3R4KTtcclxuXHJcbiAgICAgICAgICAgIGlmIChyb3VuZFBpeGVscylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgeCA9IE1hdGgucm91bmQoeCk7XHJcbiAgICAgICAgICAgICAgICB5ID0gTWF0aC5yb3VuZCh5KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY3R4LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9ICEoIXJlbmRlcmVyLmFudGlhbGlhcyB8fCBmcmFtZS5zb3VyY2Uuc2NhbGVNb2RlKTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoZnJhbWUuc291cmNlLmltYWdlLCBjZC54LCBjZC55LCBjZC53aWR0aCwgY2QuaGVpZ2h0LCB4LCB5LCBjZC53aWR0aCwgY2QuaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGN0eC5yZXN0b3JlKCk7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBhcnRpY2xlTWFuYWdlckNhbnZhc1JlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBHYW1lT2JqZWN0Q3JlYXRvciA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3RDcmVhdG9yJyk7XHJcbnZhciBHZXRBZHZhbmNlZFZhbHVlID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvb2JqZWN0L0dldEFkdmFuY2VkVmFsdWUnKTtcclxudmFyIEdldEZhc3RWYWx1ZSA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9HZXRGYXN0VmFsdWUnKTtcclxudmFyIFBhcnRpY2xlRW1pdHRlck1hbmFnZXIgPSByZXF1aXJlKCcuL1BhcnRpY2xlRW1pdHRlck1hbmFnZXInKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IFBhcnRpY2xlIEVtaXR0ZXIgTWFuYWdlciBHYW1lIE9iamVjdCBhbmQgcmV0dXJucyBpdC5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgUGFydGljbGVzIEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Q3JlYXRvciNwYXJ0aWNsZXNcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7b2JqZWN0fSBjb25maWcgLSBUaGUgY29uZmlndXJhdGlvbiBvYmplY3QgdGhpcyBHYW1lIE9iamVjdCB3aWxsIHVzZSB0byBjcmVhdGUgaXRzZWxmLlxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFthZGRUb1NjZW5lXSAtIEFkZCB0aGlzIEdhbWUgT2JqZWN0IHRvIHRoZSBTY2VuZSBhZnRlciBjcmVhdGluZyBpdD8gSWYgc2V0IHRoaXMgYXJndW1lbnQgb3ZlcnJpZGVzIHRoZSBgYWRkYCBwcm9wZXJ0eSBpbiB0aGUgY29uZmlnIG9iamVjdC5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RDcmVhdG9yLnJlZ2lzdGVyKCdwYXJ0aWNsZXMnLCBmdW5jdGlvbiAoY29uZmlnLCBhZGRUb1NjZW5lKVxyXG57XHJcbiAgICBpZiAoY29uZmlnID09PSB1bmRlZmluZWQpIHsgY29uZmlnID0ge307IH1cclxuXHJcbiAgICB2YXIga2V5ID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdrZXknLCBudWxsKTtcclxuICAgIHZhciBmcmFtZSA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAnZnJhbWUnLCBudWxsKTtcclxuICAgIHZhciBlbWl0dGVycyA9IEdldEZhc3RWYWx1ZShjb25maWcsICdlbWl0dGVycycsIG51bGwpO1xyXG5cclxuICAgIC8vICBmcmFtZSBpcyBvcHRpb25hbCBhbmQgY2FuIGNvbnRhaW4gdGhlIGVtaXR0ZXJzIGFycmF5IG9yIG9iamVjdCBpZiBza2lwcGVkXHJcbiAgICB2YXIgbWFuYWdlciA9IG5ldyBQYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyKHRoaXMuc2NlbmUsIGtleSwgZnJhbWUsIGVtaXR0ZXJzKTtcclxuXHJcbiAgICBpZiAoYWRkVG9TY2VuZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAge1xyXG4gICAgICAgIGNvbmZpZy5hZGQgPSBhZGRUb1NjZW5lO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBhZGQgPSBHZXRGYXN0VmFsdWUoY29uZmlnLCAnYWRkJywgZmFsc2UpO1xyXG5cclxuICAgIGlmIChhZGQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TGlzdC5hZGQobWFuYWdlcik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51cGRhdGVMaXN0LmFkZChtYW5hZ2VyKTtcclxuXHJcbiAgICByZXR1cm4gbWFuYWdlcjtcclxufSk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEdhbWVPYmplY3RGYWN0b3J5ID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdEZhY3RvcnknKTtcclxudmFyIFBhcnRpY2xlRW1pdHRlck1hbmFnZXIgPSByZXF1aXJlKCcuL1BhcnRpY2xlRW1pdHRlck1hbmFnZXInKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IFBhcnRpY2xlIEVtaXR0ZXIgTWFuYWdlciBHYW1lIE9iamVjdCBhbmQgYWRkcyBpdCB0byB0aGUgU2NlbmUuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIFBhcnRpY2xlcyBHYW1lIE9iamVjdCBoYXMgYmVlbiBidWlsdCBpbnRvIFBoYXNlci5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjcGFydGljbGVzXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gdGV4dHVyZSAtIFRoZSBrZXkgb2YgdGhlIFRleHR1cmUgdGhpcyBHYW1lIE9iamVjdCB3aWxsIHVzZSB0byByZW5kZXIgd2l0aCwgYXMgc3RvcmVkIGluIHRoZSBUZXh0dXJlIE1hbmFnZXIuXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyfG9iamVjdCl9IFtmcmFtZV0gLSBBbiBvcHRpb25hbCBmcmFtZSBmcm9tIHRoZSBUZXh0dXJlIHRoaXMgR2FtZSBPYmplY3QgaXMgcmVuZGVyaW5nIHdpdGguXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJDb25maWd8UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJDb25maWdbXX0gW2VtaXR0ZXJzXSAtIENvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIG9uZSBvciBtb3JlIGVtaXR0ZXJzIHRvIGNyZWF0ZS5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZUVtaXR0ZXJNYW5hZ2VyfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RGYWN0b3J5LnJlZ2lzdGVyKCdwYXJ0aWNsZXMnLCBmdW5jdGlvbiAoa2V5LCBmcmFtZSwgZW1pdHRlcnMpXHJcbntcclxuICAgIHZhciBtYW5hZ2VyID0gbmV3IFBhcnRpY2xlRW1pdHRlck1hbmFnZXIodGhpcy5zY2VuZSwga2V5LCBmcmFtZSwgZW1pdHRlcnMpO1xyXG5cclxuICAgIHRoaXMuZGlzcGxheUxpc3QuYWRkKG1hbmFnZXIpO1xyXG4gICAgdGhpcy51cGRhdGVMaXN0LmFkZChtYW5hZ2VyKTtcclxuXHJcbiAgICByZXR1cm4gbWFuYWdlcjtcclxufSk7XHJcblxyXG4vLyAgV2hlbiByZWdpc3RlcmluZyBhIGZhY3RvcnkgZnVuY3Rpb24gJ3RoaXMnIHJlZmVycyB0byB0aGUgR2FtZU9iamVjdEZhY3RvcnkgY29udGV4dC5cclxuLy9cclxuLy8gIFRoZXJlIGFyZSBzZXZlcmFsIHByb3BlcnRpZXMgYXZhaWxhYmxlIHRvIHVzZTpcclxuLy9cclxuLy8gIHRoaXMuc2NlbmUgLSBhIHJlZmVyZW5jZSB0byB0aGUgU2NlbmUgdGhhdCBvd25zIHRoZSBHYW1lT2JqZWN0RmFjdG9yeVxyXG4vLyAgdGhpcy5kaXNwbGF5TGlzdCAtIGEgcmVmZXJlbmNlIHRvIHRoZSBEaXNwbGF5IExpc3QgdGhlIFNjZW5lIG93bnNcclxuLy8gIHRoaXMudXBkYXRlTGlzdCAtIGEgcmVmZXJlbmNlIHRvIHRoZSBVcGRhdGUgTGlzdCB0aGUgU2NlbmUgb3duc1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxudmFyIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxuXHJcbmlmICh0eXBlb2YgV0VCR0xfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi9QYXJ0aWNsZU1hbmFnZXJXZWJHTFJlbmRlcmVyJyk7XHJcbn1cclxuXHJcbmlmICh0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL1BhcnRpY2xlTWFuYWdlckNhbnZhc1JlbmRlcmVyJyk7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIHJlbmRlcldlYkdMOiByZW5kZXJXZWJHTCxcclxuICAgIHJlbmRlckNhbnZhczogcmVuZGVyQ2FudmFzXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBVdGlscyA9IHJlcXVpcmUoJy4uLy4uL3JlbmRlcmVyL3dlYmdsL1V0aWxzJyk7XHJcblxyXG4vKipcclxuICogUmVuZGVycyB0aGlzIEdhbWUgT2JqZWN0IHdpdGggdGhlIFdlYkdMIFJlbmRlcmVyIHRvIHRoZSBnaXZlbiBDYW1lcmEuXHJcbiAqIFRoZSBvYmplY3Qgd2lsbCBub3QgcmVuZGVyIGlmIGFueSBvZiBpdHMgcmVuZGVyRmxhZ3MgYXJlIHNldCBvciBpdCBpcyBiZWluZyBhY3RpdmVseSBmaWx0ZXJlZCBvdXQgYnkgdGhlIENhbWVyYS5cclxuICogVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuIEl0IGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBvZiB0aGUgUmVuZGVyIG1vZHVsZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLkVtaXR0ZXJNYW5hZ2VyI3JlbmRlcldlYkdMXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBXZWJHTCByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlRW1pdHRlck1hbmFnZXJ9IGVtaXR0ZXJNYW5hZ2VyIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIFBhcnRpY2xlTWFuYWdlcldlYkdMUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIGVtaXR0ZXJNYW5hZ2VyLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBlbWl0dGVycyA9IGVtaXR0ZXJNYW5hZ2VyLmVtaXR0ZXJzLmxpc3Q7XHJcbiAgICB2YXIgZW1pdHRlcnNMZW5ndGggPSBlbWl0dGVycy5sZW5ndGg7XHJcblxyXG4gICAgaWYgKGVtaXR0ZXJzTGVuZ3RoID09PSAwKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgcGlwZWxpbmUgPSB0aGlzLnBpcGVsaW5lO1xyXG5cclxuICAgIHZhciBjYW1NYXRyaXggPSBwaXBlbGluZS5fdGVtcE1hdHJpeDEuY29weUZyb20oY2FtZXJhLm1hdHJpeCk7XHJcbiAgICB2YXIgY2FsY01hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MjtcclxuICAgIHZhciBwYXJ0aWNsZU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MztcclxuICAgIHZhciBtYW5hZ2VyTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXg0LmFwcGx5SVRSUyhlbWl0dGVyTWFuYWdlci54LCBlbWl0dGVyTWFuYWdlci55LCBlbWl0dGVyTWFuYWdlci5yb3RhdGlvbiwgZW1pdHRlck1hbmFnZXIuc2NhbGVYLCBlbWl0dGVyTWFuYWdlci5zY2FsZVkpO1xyXG5cclxuICAgIGNhbU1hdHJpeC5tdWx0aXBseShtYW5hZ2VyTWF0cml4KTtcclxuXHJcbiAgICByZW5kZXJlci5zZXRQaXBlbGluZShwaXBlbGluZSk7XHJcblxyXG4gICAgdmFyIHJvdW5kUGl4ZWxzID0gY2FtZXJhLnJvdW5kUGl4ZWxzO1xyXG4gICAgdmFyIHRleHR1cmUgPSBlbWl0dGVyTWFuYWdlci5kZWZhdWx0RnJhbWUuZ2xUZXh0dXJlO1xyXG4gICAgdmFyIGdldFRpbnQgPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYUFuZFN3YXA7XHJcblxyXG4gICAgcGlwZWxpbmUuc2V0VGV4dHVyZTJEKHRleHR1cmUsIDApO1xyXG5cclxuICAgIGZvciAodmFyIGUgPSAwOyBlIDwgZW1pdHRlcnNMZW5ndGg7IGUrKylcclxuICAgIHtcclxuICAgICAgICB2YXIgZW1pdHRlciA9IGVtaXR0ZXJzW2VdO1xyXG4gICAgICAgIHZhciBwYXJ0aWNsZXMgPSBlbWl0dGVyLmFsaXZlO1xyXG4gICAgICAgIHZhciBwYXJ0aWNsZUNvdW50ID0gcGFydGljbGVzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgaWYgKCFlbWl0dGVyLnZpc2libGUgfHwgcGFydGljbGVDb3VudCA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIHNjcm9sbFggPSBjYW1lcmEuc2Nyb2xsWCAqIGVtaXR0ZXIuc2Nyb2xsRmFjdG9yWDtcclxuICAgICAgICB2YXIgc2Nyb2xsWSA9IGNhbWVyYS5zY3JvbGxZICogZW1pdHRlci5zY3JvbGxGYWN0b3JZO1xyXG5cclxuICAgICAgICBpZiAocGFyZW50TWF0cml4KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIE11bHRpcGx5IHRoZSBjYW1lcmEgYnkgdGhlIHBhcmVudCBtYXRyaXhcclxuICAgICAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5V2l0aE9mZnNldChwYXJlbnRNYXRyaXgsIC1zY3JvbGxYLCAtc2Nyb2xsWSk7XHJcblxyXG4gICAgICAgICAgICBzY3JvbGxYID0gMDtcclxuICAgICAgICAgICAgc2Nyb2xsWSA9IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVuZGVyZXIuc2V0QmxlbmRNb2RlKGVtaXR0ZXIuYmxlbmRNb2RlKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBSZWJpbmQgdGhlIHRleHR1cmUgaWYgd2UndmUgZmx1c2hlZFxyXG4gICAgICAgICAgICBwaXBlbGluZS5zZXRUZXh0dXJlMkQodGV4dHVyZSwgMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZW1pdHRlci5tYXNrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgZW1pdHRlci5tYXNrLnByZVJlbmRlcldlYkdMKHJlbmRlcmVyLCBlbWl0dGVyLCBjYW1lcmEpO1xyXG4gICAgICAgICAgICBwaXBlbGluZS5zZXRUZXh0dXJlMkQodGV4dHVyZSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgdmFyIHRpbnRFZmZlY3QgPSAwO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcnRpY2xlQ291bnQ7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBwYXJ0aWNsZSA9IHBhcnRpY2xlc1tpXTtcclxuXHJcbiAgICAgICAgICAgIHZhciBhbHBoYSA9IHBhcnRpY2xlLmFscGhhICogY2FtZXJhLmFscGhhO1xyXG5cclxuICAgICAgICAgICAgaWYgKGFscGhhIDw9IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB2YXIgZnJhbWUgPSBwYXJ0aWNsZS5mcmFtZTtcclxuXHJcbiAgICAgICAgICAgIHZhciB4ID0gLShmcmFtZS5oYWxmV2lkdGgpO1xyXG4gICAgICAgICAgICB2YXIgeSA9IC0oZnJhbWUuaGFsZkhlaWdodCk7XHJcbiAgICAgICAgICAgIHZhciB4dyA9IHggKyBmcmFtZS53aWR0aDtcclxuICAgICAgICAgICAgdmFyIHloID0geSArIGZyYW1lLmhlaWdodDtcclxuXHJcbiAgICAgICAgICAgIHBhcnRpY2xlTWF0cml4LmFwcGx5SVRSUygwLCAwLCBwYXJ0aWNsZS5yb3RhdGlvbiwgcGFydGljbGUuc2NhbGVYLCBwYXJ0aWNsZS5zY2FsZVkpO1xyXG5cclxuICAgICAgICAgICAgcGFydGljbGVNYXRyaXguZSA9IHBhcnRpY2xlLnggLSBzY3JvbGxYO1xyXG4gICAgICAgICAgICBwYXJ0aWNsZU1hdHJpeC5mID0gcGFydGljbGUueSAtIHNjcm9sbFk7XHJcblxyXG4gICAgICAgICAgICBjYW1NYXRyaXgubXVsdGlwbHkocGFydGljbGVNYXRyaXgsIGNhbGNNYXRyaXgpO1xyXG5cclxuICAgICAgICAgICAgdmFyIHR4MCA9IGNhbGNNYXRyaXguZ2V0WCh4LCB5KTtcclxuICAgICAgICAgICAgdmFyIHR5MCA9IGNhbGNNYXRyaXguZ2V0WSh4LCB5KTtcclxuICAgIFxyXG4gICAgICAgICAgICB2YXIgdHgxID0gY2FsY01hdHJpeC5nZXRYKHgsIHloKTtcclxuICAgICAgICAgICAgdmFyIHR5MSA9IGNhbGNNYXRyaXguZ2V0WSh4LCB5aCk7XHJcbiAgICBcclxuICAgICAgICAgICAgdmFyIHR4MiA9IGNhbGNNYXRyaXguZ2V0WCh4dywgeWgpO1xyXG4gICAgICAgICAgICB2YXIgdHkyID0gY2FsY01hdHJpeC5nZXRZKHh3LCB5aCk7XHJcbiAgICBcclxuICAgICAgICAgICAgdmFyIHR4MyA9IGNhbGNNYXRyaXguZ2V0WCh4dywgeSk7XHJcbiAgICAgICAgICAgIHZhciB0eTMgPSBjYWxjTWF0cml4LmdldFkoeHcsIHkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJvdW5kUGl4ZWxzKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0eDAgPSBNYXRoLnJvdW5kKHR4MCk7XHJcbiAgICAgICAgICAgICAgICB0eTAgPSBNYXRoLnJvdW5kKHR5MCk7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIHR4MSA9IE1hdGgucm91bmQodHgxKTtcclxuICAgICAgICAgICAgICAgIHR5MSA9IE1hdGgucm91bmQodHkxKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgdHgyID0gTWF0aC5yb3VuZCh0eDIpO1xyXG4gICAgICAgICAgICAgICAgdHkyID0gTWF0aC5yb3VuZCh0eTIpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICB0eDMgPSBNYXRoLnJvdW5kKHR4Myk7XHJcbiAgICAgICAgICAgICAgICB0eTMgPSBNYXRoLnJvdW5kKHR5Myk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHZhciB0aW50ID0gZ2V0VGludChwYXJ0aWNsZS50aW50LCBhbHBoYSk7XHJcblxyXG4gICAgICAgICAgICBwaXBlbGluZS5iYXRjaFF1YWQodHgwLCB0eTAsIHR4MSwgdHkxLCB0eDIsIHR5MiwgdHgzLCB0eTMsIGZyYW1lLnUwLCBmcmFtZS52MCwgZnJhbWUudTEsIGZyYW1lLnYxLCB0aW50LCB0aW50LCB0aW50LCB0aW50LCB0aW50RWZmZWN0LCB0ZXh0dXJlLCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChlbWl0dGVyLm1hc2spXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBlbWl0dGVyLm1hc2sucG9zdFJlbmRlcldlYkdMKHJlbmRlcmVyLCBjYW1lcmEpO1xyXG4gICAgICAgICAgICBwaXBlbGluZS5zZXRUZXh0dXJlMkQodGV4dHVyZSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQYXJ0aWNsZU1hbmFnZXJXZWJHTFJlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXNcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBHcmF2aXR5V2VsbDogcmVxdWlyZSgnLi9HcmF2aXR5V2VsbCcpLFxyXG4gICAgUGFydGljbGU6IHJlcXVpcmUoJy4vUGFydGljbGUnKSxcclxuICAgIFBhcnRpY2xlRW1pdHRlcjogcmVxdWlyZSgnLi9QYXJ0aWNsZUVtaXR0ZXInKSxcclxuICAgIFBhcnRpY2xlRW1pdHRlck1hbmFnZXI6IHJlcXVpcmUoJy4vUGFydGljbGVFbWl0dGVyTWFuYWdlcicpLFxyXG4gICAgWm9uZXM6IHJlcXVpcmUoJy4vem9uZXMnKVxyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9DbGFzcycpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBEZWF0aCBab25lLlxyXG4gKlxyXG4gKiBBIERlYXRoIFpvbmUgaXMgYSBzcGVjaWFsIHR5cGUgb2Ygem9uZSB0aGF0IHdpbGwga2lsbCBhIFBhcnRpY2xlIGFzIHNvb24gYXMgaXQgZWl0aGVyIGVudGVycywgb3IgbGVhdmVzLCB0aGUgem9uZS5cclxuICpcclxuICogVGhlIHpvbmUgY29uc2lzdHMgb2YgYSBgc291cmNlYCB3aGljaCBjb3VsZCBiZSBhIEdlb21ldHJpYyBzaGFwZSwgc3VjaCBhcyBhIFJlY3RhbmdsZSBvciBFbGxpcHNlLCBvciB5b3VyIG93blxyXG4gKiBvYmplY3QgYXMgbG9uZyBhcyBpdCBpbmNsdWRlcyBhIGBjb250YWluc2AgbWV0aG9kIGZvciB3aGljaCB0aGUgUGFydGljbGVzIGNhbiBiZSB0ZXN0ZWQgYWdhaW5zdC5cclxuICpcclxuICogQGNsYXNzIERlYXRoWm9uZVxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5ab25lc1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5EZWF0aFpvbmVTb3VyY2V9IHNvdXJjZSAtIEFuIG9iamVjdCBpbnN0YW5jZSB0aGF0IGhhcyBhIGBjb250YWluc2AgbWV0aG9kIHRoYXQgcmV0dXJucyBhIGJvb2xlYW4gd2hlbiBnaXZlbiBgeGAgYW5kIGB5YCBhcmd1bWVudHMuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0ga2lsbE9uRW50ZXIgLSBTaG91bGQgdGhlIFBhcnRpY2xlIGJlIGtpbGxlZCB3aGVuIGl0IGVudGVycyB0aGUgem9uZT8gYHRydWVgIG9yIGxlYXZlcyBpdD8gYGZhbHNlYFxyXG4gKi9cclxudmFyIERlYXRoWm9uZSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBEZWF0aFpvbmUgKHNvdXJjZSwga2lsbE9uRW50ZXIpXHJcbiAgICB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gb2JqZWN0IGluc3RhbmNlIHRoYXQgaGFzIGEgYGNvbnRhaW5zYCBtZXRob2QgdGhhdCByZXR1cm5zIGEgYm9vbGVhbiB3aGVuIGdpdmVuIGB4YCBhbmQgYHlgIGFyZ3VtZW50cy5cclxuICAgICAgICAgKiBUaGlzIGNvdWxkIGJlIGEgR2VvbWV0cnkgc2hhcGUsIHN1Y2ggYXMgYFBoYXNlci5HZW9tLkNpcmNsZWAsIG9yIHlvdXIgb3duIGN1c3RvbSBvYmplY3QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlpvbmVzLkRlYXRoWm9uZSNzb3VyY2VcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5EZWF0aFpvbmVTb3VyY2V9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFNldCB0byBgdHJ1ZWAgaWYgdGhlIFBhcnRpY2xlIHNob3VsZCBiZSBraWxsZWQgaWYgaXQgZW50ZXJzIHRoaXMgem9uZS5cclxuICAgICAgICAgKiBTZXQgdG8gYGZhbHNlYCB0byBraWxsIHRoZSBQYXJ0aWNsZSBpZiBpdCBsZWF2ZXMgdGhpcyB6b25lLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5ab25lcy5EZWF0aFpvbmUja2lsbE9uRW50ZXJcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmtpbGxPbkVudGVyID0ga2lsbE9uRW50ZXI7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBQYXJ0aWNsZSB3aWxsIGJlIGtpbGxlZCBvciBub3QgYnkgdGhpcyB6b25lLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5ab25lcy5EZWF0aFpvbmUjd2lsbEtpbGxcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgUGFydGljbGUgdG8gYmUgY2hlY2tlZCBhZ2FpbnN0IHRoaXMgem9uZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBSZXR1cm4gYHRydWVgIGlmIHRoZSBQYXJ0aWNsZSBpcyB0byBiZSBraWxsZWQsIG90aGVyd2lzZSByZXR1cm4gYGZhbHNlYC5cclxuICAgICAqL1xyXG4gICAgd2lsbEtpbGw6IGZ1bmN0aW9uIChwYXJ0aWNsZSlcclxuICAgIHtcclxuICAgICAgICB2YXIgd2l0aGluWm9uZSA9IHRoaXMuc291cmNlLmNvbnRhaW5zKHBhcnRpY2xlLngsIHBhcnRpY2xlLnkpO1xyXG5cclxuICAgICAgICByZXR1cm4gKHdpdGhpblpvbmUgJiYgdGhpcy5raWxsT25FbnRlciB8fCAhd2l0aGluWm9uZSAmJiAhdGhpcy5raWxsT25FbnRlcik7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRGVhdGhab25lO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIHpvbmUgdGhhdCBwbGFjZXMgcGFydGljbGVzIG9uIGEgc2hhcGUncyBlZGdlcy5cclxuICpcclxuICogQGNsYXNzIEVkZ2Vab25lXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlpvbmVzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLkVkZ2Vab25lU291cmNlfSBzb3VyY2UgLSBBbiBvYmplY3QgaW5zdGFuY2Ugd2l0aCBhIGBnZXRQb2ludHMocXVhbnRpdHksIHN0ZXBSYXRlKWAgbWV0aG9kIHJldHVybmluZyBhbiBhcnJheSBvZiBwb2ludHMuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gcXVhbnRpdHkgLSBUaGUgbnVtYmVyIG9mIHBhcnRpY2xlcyB0byBwbGFjZSBvbiB0aGUgc291cmNlIGVkZ2UuIFNldCB0byAwIHRvIHVzZSBgc3RlcFJhdGVgIGluc3RlYWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBzdGVwUmF0ZSAtIFRoZSBkaXN0YW5jZSBiZXR3ZWVuIGVhY2ggcGFydGljbGUuIFdoZW4gc2V0LCBgcXVhbnRpdHlgIGlzIGltcGxpZWQgYW5kIHNob3VsZCBiZSBzZXQgdG8gMC5cclxuICogQHBhcmFtIHtib29sZWFufSBbeW95bz1mYWxzZV0gLSBXaGV0aGVyIHBhcnRpY2xlcyBhcmUgcGxhY2VkIGZyb20gc3RhcnQgdG8gZW5kIGFuZCB0aGVuIGVuZCB0byBzdGFydC5cclxuICogQHBhcmFtIHtib29sZWFufSBbc2VhbWxlc3M9dHJ1ZV0gLSBXaGV0aGVyIG9uZSBlbmRwb2ludCB3aWxsIGJlIHJlbW92ZWQgaWYgaXQncyBpZGVudGljYWwgdG8gdGhlIG90aGVyLlxyXG4gKi9cclxudmFyIEVkZ2Vab25lID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIEVkZ2Vab25lIChzb3VyY2UsIHF1YW50aXR5LCBzdGVwUmF0ZSwgeW95bywgc2VhbWxlc3MpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHlveW8gPT09IHVuZGVmaW5lZCkgeyB5b3lvID0gZmFsc2U7IH1cclxuICAgICAgICBpZiAoc2VhbWxlc3MgPT09IHVuZGVmaW5lZCkgeyBzZWFtbGVzcyA9IHRydWU7IH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gb2JqZWN0IGluc3RhbmNlIHdpdGggYSBgZ2V0UG9pbnRzKHF1YW50aXR5LCBzdGVwUmF0ZSlgIG1ldGhvZCByZXR1cm5pbmcgYW4gYXJyYXkgb2YgcG9pbnRzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5ab25lcy5FZGdlWm9uZSNzb3VyY2VcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlR5cGVzLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5FZGdlWm9uZVNvdXJjZXxQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLlJhbmRvbVpvbmVTb3VyY2V9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBwb2ludHMgcGxhY2VkIG9uIHRoZSBzb3VyY2UgZWRnZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuWm9uZXMuRWRnZVpvbmUjcG9pbnRzXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HZW9tLlBvaW50W119XHJcbiAgICAgICAgICogQGRlZmF1bHQgW11cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBvaW50cyA9IFtdO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgbnVtYmVyIG9mIHBhcnRpY2xlcyB0byBwbGFjZSBvbiB0aGUgc291cmNlIGVkZ2UuIFNldCB0byAwIHRvIHVzZSBgc3RlcFJhdGVgIGluc3RlYWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlpvbmVzLkVkZ2Vab25lI3F1YW50aXR5XHJcbiAgICAgICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5xdWFudGl0eSA9IHF1YW50aXR5O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZGlzdGFuY2UgYmV0d2VlbiBlYWNoIHBhcnRpY2xlLiBXaGVuIHNldCwgYHF1YW50aXR5YCBpcyBpbXBsaWVkIGFuZCBzaG91bGQgYmUgc2V0IHRvIDAuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlpvbmVzLkVkZ2Vab25lI3N0ZXBSYXRlXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnN0ZXBSYXRlID0gc3RlcFJhdGU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFdoZXRoZXIgcGFydGljbGVzIGFyZSBwbGFjZWQgZnJvbSBzdGFydCB0byBlbmQgYW5kIHRoZW4gZW5kIHRvIHN0YXJ0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5ab25lcy5FZGdlWm9uZSN5b3lvXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy55b3lvID0geW95bztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGNvdW50ZXIgdXNlZCBmb3IgaXRlcmF0aW5nIHRoZSBFZGdlWm9uZSdzIHBvaW50cy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuWm9uZXMuRWRnZVpvbmUjY291bnRlclxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgLTFcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNvdW50ZXIgPSAtMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogV2hldGhlciBvbmUgZW5kcG9pbnQgd2lsbCBiZSByZW1vdmVkIGlmIGl0J3MgaWRlbnRpY2FsIHRvIHRoZSBvdGhlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuWm9uZXMuRWRnZVpvbmUjc2VhbWxlc3NcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNlYW1sZXNzID0gc2VhbWxlc3M7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGludGVybmFsIGNvdW50IG9mIHRoZSBwb2ludHMgYmVsb25naW5nIHRvIHRoaXMgRWRnZVpvbmUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlpvbmVzLkVkZ2Vab25lI19sZW5ndGhcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQGRlZmF1bHQgMFxyXG4gICAgICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2xlbmd0aCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGludGVybmFsIHZhbHVlIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgY3VycmVudCBpdGVyYXRpb24gZGlyZWN0aW9uIGZvciB0aGUgRWRnZVpvbmUncyBwb2ludHMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiAwID0gZm9yd2FyZHMsIDEgPSBiYWNrd2FyZHNcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuWm9uZXMuRWRnZVpvbmUjX2RpcmVjdGlvblxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAZGVmYXVsdCAwXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fZGlyZWN0aW9uID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVTb3VyY2UoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGUgdGhlIHtAbGluayBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlpvbmVzLkVkZ2Vab25lI3BvaW50c30gZnJvbSB0aGUgRWRnZVpvbmUnc1xyXG4gICAgICoge0BsaW5rIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuWm9uZXMuRWRnZVpvbmUjc291cmNlfS5cclxuICAgICAqXHJcbiAgICAgKiBBbHNvIHVwZGF0ZXMgaW50ZXJuYWwgcHJvcGVydGllcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuWm9uZXMuRWRnZVpvbmUjdXBkYXRlU291cmNlXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEVkZ2UgWm9uZS5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlU291cmNlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMucG9pbnRzID0gdGhpcy5zb3VyY2UuZ2V0UG9pbnRzKHRoaXMucXVhbnRpdHksIHRoaXMuc3RlcFJhdGUpO1xyXG5cclxuICAgICAgICAvLyAgUmVtb3ZlIGVuZHM/XHJcbiAgICAgICAgaWYgKHRoaXMuc2VhbWxlc3MpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgYSA9IHRoaXMucG9pbnRzWzBdO1xyXG4gICAgICAgICAgICB2YXIgYiA9IHRoaXMucG9pbnRzW3RoaXMucG9pbnRzLmxlbmd0aCAtIDFdO1xyXG5cclxuICAgICAgICAgICAgaWYgKGEueCA9PT0gYi54ICYmIGEueSA9PT0gYi55KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvaW50cy5wb3AoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIG9sZExlbmd0aCA9IHRoaXMuX2xlbmd0aDtcclxuXHJcbiAgICAgICAgdGhpcy5fbGVuZ3RoID0gdGhpcy5wb2ludHMubGVuZ3RoO1xyXG5cclxuICAgICAgICAvLyAgQWRqdXN0IGNvdW50ZXIgaWYgd2Ugbm93IGhhdmUgbGVzcyBwb2ludHMgdGhhbiBiZWZvcmVcclxuICAgICAgICBpZiAodGhpcy5fbGVuZ3RoIDwgb2xkTGVuZ3RoICYmIHRoaXMuY291bnRlciA+IHRoaXMuX2xlbmd0aClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnRlciA9IHRoaXMuX2xlbmd0aCAtIDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGFuZ2UgdGhlIHNvdXJjZSBvZiB0aGUgRWRnZVpvbmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlpvbmVzLkVkZ2Vab25lI2NoYW5nZVNvdXJjZVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLkVkZ2Vab25lU291cmNlfSBzb3VyY2UgLSBBbiBvYmplY3QgaW5zdGFuY2Ugd2l0aCBhIGBnZXRQb2ludHMocXVhbnRpdHksIHN0ZXBSYXRlKWAgbWV0aG9kIHJldHVybmluZyBhbiBhcnJheSBvZiBwb2ludHMuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBFZGdlIFpvbmUuXHJcbiAgICAgKi9cclxuICAgIGNoYW5nZVNvdXJjZTogZnVuY3Rpb24gKHNvdXJjZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlU291cmNlKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBuZXh0IHBvaW50IGluIHRoZSBab25lIGFuZCBzZXQgaXRzIGNvb3JkaW5hdGVzIG9uIHRoZSBnaXZlbiBQYXJ0aWNsZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuWm9uZXMuRWRnZVpvbmUjZ2V0UG9pbnRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5QYXJ0aWNsZX0gcGFydGljbGUgLSBUaGUgUGFydGljbGUuXHJcbiAgICAgKi9cclxuICAgIGdldFBvaW50OiBmdW5jdGlvbiAocGFydGljbGUpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2RpcmVjdGlvbiA9PT0gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnRlcisrO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuY291bnRlciA+PSB0aGlzLl9sZW5ndGgpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnlveW8pXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlyZWN0aW9uID0gMTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvdW50ZXIgPSB0aGlzLl9sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRlciA9IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jb3VudGVyLS07XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5jb3VudGVyID09PSAtMSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMueW95bylcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kaXJlY3Rpb24gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY291bnRlciA9IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudGVyID0gdGhpcy5fbGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIHBvaW50ID0gdGhpcy5wb2ludHNbdGhpcy5jb3VudGVyXTtcclxuXHJcbiAgICAgICAgaWYgKHBvaW50KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcGFydGljbGUueCA9IHBvaW50Lng7XHJcbiAgICAgICAgICAgIHBhcnRpY2xlLnkgPSBwb2ludC55O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBFZGdlWm9uZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgVmVjdG9yMiA9IHJlcXVpcmUoJy4uLy4uLy4uL21hdGgvVmVjdG9yMicpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSB6b25lIHRoYXQgcGxhY2VzIHBhcnRpY2xlcyByYW5kb21seSB3aXRoaW4gYSBzaGFwZSdzIGFyZWEuXHJcbiAqXHJcbiAqIEBjbGFzcyBSYW5kb21ab25lXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlpvbmVzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLlJhbmRvbVpvbmVTb3VyY2V9IHNvdXJjZSAtIEFuIG9iamVjdCBpbnN0YW5jZSB3aXRoIGEgYGdldFJhbmRvbVBvaW50KHBvaW50KWAgbWV0aG9kLlxyXG4gKi9cclxudmFyIFJhbmRvbVpvbmUgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gUmFuZG9tWm9uZSAoc291cmNlKVxyXG4gICAge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIG9iamVjdCBpbnN0YW5jZSB3aXRoIGEgYGdldFJhbmRvbVBvaW50KHBvaW50KWAgbWV0aG9kLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlBhcnRpY2xlcy5ab25lcy5SYW5kb21ab25lI3NvdXJjZVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuVHlwZXMuR2FtZU9iamVjdHMuUGFydGljbGVzLlJhbmRvbVpvbmVTb3VyY2V9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEludGVybmFsIGNhbGN1bGF0aW9uIHZlY3Rvci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuWm9uZXMuUmFuZG9tWm9uZSNfdGVtcFZlY1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuTWF0aC5WZWN0b3IyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fdGVtcFZlYyA9IG5ldyBWZWN0b3IyKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBuZXh0IHBvaW50IGluIHRoZSBab25lIGFuZCBzZXQgaXRzIGNvb3JkaW5hdGVzIG9uIHRoZSBnaXZlbiBQYXJ0aWNsZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuWm9uZXMuUmFuZG9tWm9uZSNnZXRQb2ludFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUGFydGljbGVzLlBhcnRpY2xlfSBwYXJ0aWNsZSAtIFRoZSBQYXJ0aWNsZS5cclxuICAgICAqL1xyXG4gICAgZ2V0UG9pbnQ6IGZ1bmN0aW9uIChwYXJ0aWNsZSlcclxuICAgIHtcclxuICAgICAgICB2YXIgdmVjID0gdGhpcy5fdGVtcFZlYztcclxuXHJcbiAgICAgICAgdGhpcy5zb3VyY2UuZ2V0UmFuZG9tUG9pbnQodmVjKTtcclxuXHJcbiAgICAgICAgcGFydGljbGUueCA9IHZlYy54O1xyXG4gICAgICAgIHBhcnRpY2xlLnkgPSB2ZWMueTtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBSYW5kb21ab25lO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBAbmFtZXNwYWNlIFBoYXNlci5HYW1lT2JqZWN0cy5QYXJ0aWNsZXMuWm9uZXNcclxuICovXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICBEZWF0aFpvbmU6IHJlcXVpcmUoJy4vRGVhdGhab25lJyksXHJcbiAgICBFZGdlWm9uZTogcmVxdWlyZSgnLi9FZGdlWm9uZScpLFxyXG4gICAgUmFuZG9tWm9uZTogcmVxdWlyZSgnLi9SYW5kb21ab25lJylcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIENvbXBvbmVudHMgPSByZXF1aXJlKCcuLi9jb21wb25lbnRzJyk7XHJcbnZhciBTcHJpdGUgPSByZXF1aXJlKCcuLi9zcHJpdGUvU3ByaXRlJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIFBhdGhGb2xsb3dlciBHYW1lIE9iamVjdC5cclxuICpcclxuICogQSBQYXRoRm9sbG93ZXIgaXMgYSBTcHJpdGUgR2FtZSBPYmplY3Qgd2l0aCBzb21lIGV4dHJhIGhlbHBlcnMgdG8gYWxsb3cgaXQgdG8gZm9sbG93IGEgUGF0aCBhdXRvbWF0aWNhbGx5LlxyXG4gKlxyXG4gKiBBbnl0aGluZyB5b3UgY2FuIGRvIHdpdGggYSBzdGFuZGFyZCBTcHJpdGUgY2FuIGJlIGRvbmUgd2l0aCB0aGlzIFBhdGhGb2xsb3dlciwgc3VjaCBhcyBhbmltYXRlIGl0LCB0aW50IGl0LFxyXG4gKiBzY2FsZSBpdCBhbmQgc28gb24uXHJcbiAqXHJcbiAqIFBhdGhGb2xsb3dlcnMgYXJlIGJvdW5kIHRvIGEgc2luZ2xlIFBhdGggYXQgYW55IG9uZSB0aW1lIGFuZCBjYW4gdHJhdmVyc2UgdGhlIGxlbmd0aCBvZiB0aGUgUGF0aCwgZnJvbSBzdGFydFxyXG4gKiB0byBmaW5pc2gsIGZvcndhcmRzIG9yIGJhY2t3YXJkcywgb3IgZnJvbSBhbnkgZ2l2ZW4gcG9pbnQgb24gdGhlIFBhdGggdG8gaXRzIGVuZC4gVGhleSBjYW4gb3B0aW9uYWxseSByb3RhdGVcclxuICogdG8gZmFjZSB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwYXRoLCBiZSBvZmZzZXQgZnJvbSB0aGUgcGF0aCBjb29yZGluYXRlcyBvciByb3RhdGUgaW5kZXBlbmRlbnRseSBvZiB0aGUgUGF0aC5cclxuICpcclxuICogQGNsYXNzIFBhdGhGb2xsb3dlclxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuU3ByaXRlXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKiBcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuUGF0aEZvbGxvd2VyXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSB0byB3aGljaCB0aGlzIFBhdGhGb2xsb3dlciBiZWxvbmdzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DdXJ2ZXMuUGF0aH0gcGF0aCAtIFRoZSBQYXRoIHRoaXMgUGF0aEZvbGxvd2VyIGlzIGZvbGxvd2luZy4gSXQgY2FuIG9ubHkgZm9sbG93IG9uZSBQYXRoIGF0IGEgdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0dXJlIC0gVGhlIGtleSBvZiB0aGUgVGV4dHVyZSB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIHJlbmRlciB3aXRoLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBbZnJhbWVdIC0gQW4gb3B0aW9uYWwgZnJhbWUgZnJvbSB0aGUgVGV4dHVyZSB0aGlzIEdhbWUgT2JqZWN0IGlzIHJlbmRlcmluZyB3aXRoLlxyXG4gKi9cclxudmFyIFBhdGhGb2xsb3dlciA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogU3ByaXRlLFxyXG5cclxuICAgIE1peGluczogW1xyXG4gICAgICAgIENvbXBvbmVudHMuUGF0aEZvbGxvd2VyXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gUGF0aEZvbGxvd2VyIChzY2VuZSwgcGF0aCwgeCwgeSwgdGV4dHVyZSwgZnJhbWUpXHJcbiAgICB7XHJcbiAgICAgICAgU3ByaXRlLmNhbGwodGhpcywgc2NlbmUsIHgsIHksIHRleHR1cmUsIGZyYW1lKTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXRoID0gcGF0aDtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCB1cGRhdGUgaGFuZGxlciB0aGF0IGFkdmFuY2VzIHRoaXMgUGF0aEZvbGxvd2VyIGFsb25nIHRoZSBwYXRoLlxyXG4gICAgICpcclxuICAgICAqIENhbGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBTY2VuZSBzdGVwLCBzaG91bGQgbm90IHR5cGljYWxseSBiZSBjYWxsZWQgZGlyZWN0bHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUGF0aEZvbGxvd2VyI3ByZVVwZGF0ZVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSB0aW1lIC0gVGhlIGN1cnJlbnQgdGltZXN0YW1wIGFzIGdlbmVyYXRlZCBieSB0aGUgUmVxdWVzdCBBbmltYXRpb24gRnJhbWUgb3IgU2V0VGltZW91dC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWx0YSAtIFRoZSBkZWx0YSB0aW1lLCBpbiBtcywgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCBmcmFtZS5cclxuICAgICAqL1xyXG4gICAgcHJlVXBkYXRlOiBmdW5jdGlvbiAodGltZSwgZGVsdGEpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5hbmltcy51cGRhdGUodGltZSwgZGVsdGEpO1xyXG4gICAgICAgIHRoaXMucGF0aFVwZGF0ZSh0aW1lKTtcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQYXRoRm9sbG93ZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEdhbWVPYmplY3RGYWN0b3J5ID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdEZhY3RvcnknKTtcclxudmFyIFBhdGhGb2xsb3dlciA9IHJlcXVpcmUoJy4vUGF0aEZvbGxvd2VyJyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBQYXRoRm9sbG93ZXIgR2FtZSBPYmplY3QgYW5kIGFkZHMgaXQgdG8gdGhlIFNjZW5lLlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBQYXRoRm9sbG93ZXIgR2FtZSBPYmplY3QgaGFzIGJlZW4gYnVpbHQgaW50byBQaGFzZXIuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5I2ZvbGxvd2VyXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DdXJ2ZXMuUGF0aH0gcGF0aCAtIFRoZSBQYXRoIHRoaXMgUGF0aEZvbGxvd2VyIGlzIGNvbm5lY3RlZCB0by5cclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0dXJlIC0gVGhlIGtleSBvZiB0aGUgVGV4dHVyZSB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIHJlbmRlciB3aXRoLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBbZnJhbWVdIC0gQW4gb3B0aW9uYWwgZnJhbWUgZnJvbSB0aGUgVGV4dHVyZSB0aGlzIEdhbWUgT2JqZWN0IGlzIHJlbmRlcmluZyB3aXRoLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuUGF0aEZvbGxvd2VyfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RGYWN0b3J5LnJlZ2lzdGVyKCdmb2xsb3dlcicsIGZ1bmN0aW9uIChwYXRoLCB4LCB5LCBrZXksIGZyYW1lKVxyXG57XHJcbiAgICB2YXIgc3ByaXRlID0gbmV3IFBhdGhGb2xsb3dlcih0aGlzLnNjZW5lLCBwYXRoLCB4LCB5LCBrZXksIGZyYW1lKTtcclxuXHJcbiAgICB0aGlzLmRpc3BsYXlMaXN0LmFkZChzcHJpdGUpO1xyXG4gICAgdGhpcy51cGRhdGVMaXN0LmFkZChzcHJpdGUpO1xyXG5cclxuICAgIHJldHVybiBzcHJpdGU7XHJcbn0pO1xyXG5cclxuLy8gIFdoZW4gcmVnaXN0ZXJpbmcgYSBmYWN0b3J5IGZ1bmN0aW9uICd0aGlzJyByZWZlcnMgdG8gdGhlIEdhbWVPYmplY3RGYWN0b3J5IGNvbnRleHQuXHJcbi8vXHJcbi8vICBUaGVyZSBhcmUgc2V2ZXJhbCBwcm9wZXJ0aWVzIGF2YWlsYWJsZSB0byB1c2U6XHJcbi8vXHJcbi8vICB0aGlzLnNjZW5lIC0gYSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lIHRoYXQgb3ducyB0aGUgR2FtZU9iamVjdEZhY3RvcnlcclxuLy8gIHRoaXMuZGlzcGxheUxpc3QgLSBhIHJlZmVyZW5jZSB0byB0aGUgRGlzcGxheSBMaXN0IHRoZSBTY2VuZSBvd25zXHJcbi8vICB0aGlzLnVwZGF0ZUxpc3QgLSBhIHJlZmVyZW5jZSB0byB0aGUgVXBkYXRlIExpc3QgdGhlIFNjZW5lIG93bnNcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgTWVzaCA9IHJlcXVpcmUoJy4uL21lc2gvTWVzaCcpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBRdWFkIEdhbWUgT2JqZWN0LlxyXG4gKlxyXG4gKiBBIFF1YWQgaXMgYSBNZXNoIEdhbWUgT2JqZWN0IHByZS1jb25maWd1cmVkIHdpdGggdHdvIHRyaWFuZ2xlcyBhcnJhbmdlZCBpbnRvIGEgcmVjdGFuZ2xlLCB3aXRoIGEgc2luZ2xlXHJcbiAqIHRleHR1cmUgc3ByZWFkIGFjcm9zcyB0aGVtLlxyXG4gKlxyXG4gKiBZb3UgY2FuIG1hbmlwdWxhdGUgdGhlIGNvcm5lciBwb2ludHMgb2YgdGhlIHF1YWQgdmlhIHRoZSBnZXR0ZXJzIGFuZCBzZXR0ZXJzIHN1Y2ggYXMgYHRvcExlZnRYYCwgYW5kIGFsc29cclxuICogY2hhbmdlIHRoZWlyIGFscGhhIGFuZCBjb2xvciB2YWx1ZXMuIFRoZSBxdWFkIGl0c2VsZiBjYW4gYmUgbW92ZWQgYnkgYWRqdXN0aW5nIHRoZSBgeGAgYW5kIGB5YCBwcm9wZXJ0aWVzLlxyXG4gKlxyXG4gKiBAY2xhc3MgUXVhZFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuTWVzaFxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkdhbWVPYmplY3RzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAd2ViZ2xPbmx5XHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBUaGUgU2NlbmUgdG8gd2hpY2ggdGhpcyBRdWFkIGJlbG9uZ3MuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gdGV4dHVyZSAtIFRoZSBrZXkgb2YgdGhlIFRleHR1cmUgdGhpcyBHYW1lIE9iamVjdCB3aWxsIHVzZSB0byByZW5kZXIgd2l0aCwgYXMgc3RvcmVkIGluIHRoZSBUZXh0dXJlIE1hbmFnZXIuXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW2ZyYW1lXSAtIEFuIG9wdGlvbmFsIGZyYW1lIGZyb20gdGhlIFRleHR1cmUgdGhpcyBHYW1lIE9iamVjdCBpcyByZW5kZXJpbmcgd2l0aC5cclxuICovXHJcbnZhciBRdWFkID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBFeHRlbmRzOiBNZXNoLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gUXVhZCAoc2NlbmUsIHgsIHksIHRleHR1cmUsIGZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIC8vICAwLS0tLTNcclxuICAgICAgICAvLyAgfFxcICBCfFxyXG4gICAgICAgIC8vICB8IFxcICB8XHJcbiAgICAgICAgLy8gIHwgIFxcIHxcclxuICAgICAgICAvLyAgfCBBIFxcfFxyXG4gICAgICAgIC8vICB8ICAgIFxcXHJcbiAgICAgICAgLy8gIDEtLS0tMlxyXG5cclxuICAgICAgICB2YXIgdmVydGljZXMgPSBbXHJcbiAgICAgICAgICAgIDAsIDAsIC8vIHRsXHJcbiAgICAgICAgICAgIDAsIDAsIC8vIGJsXHJcbiAgICAgICAgICAgIDAsIDAsIC8vIGJyXHJcbiAgICAgICAgICAgIDAsIDAsIC8vIHRsXHJcbiAgICAgICAgICAgIDAsIDAsIC8vIGJyXHJcbiAgICAgICAgICAgIDAsIDAgLy8gdHJcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICB2YXIgdXYgPSBbXHJcbiAgICAgICAgICAgIDAsIDAsIC8vIHRsXHJcbiAgICAgICAgICAgIDAsIDEsIC8vIGJsXHJcbiAgICAgICAgICAgIDEsIDEsIC8vIGJyXHJcbiAgICAgICAgICAgIDAsIDAsIC8vIHRsXHJcbiAgICAgICAgICAgIDEsIDEsIC8vIGJyXHJcbiAgICAgICAgICAgIDEsIDAgLy8gdHJcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICB2YXIgY29sb3JzID0gW1xyXG4gICAgICAgICAgICAweGZmZmZmZiwgLy8gdGxcclxuICAgICAgICAgICAgMHhmZmZmZmYsIC8vIGJsXHJcbiAgICAgICAgICAgIDB4ZmZmZmZmLCAvLyBiclxyXG4gICAgICAgICAgICAweGZmZmZmZiwgLy8gdGxcclxuICAgICAgICAgICAgMHhmZmZmZmYsIC8vIGJyXHJcbiAgICAgICAgICAgIDB4ZmZmZmZmIC8vIHRyXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdmFyIGFscGhhcyA9IFtcclxuICAgICAgICAgICAgMSwgLy8gdGxcclxuICAgICAgICAgICAgMSwgLy8gYmxcclxuICAgICAgICAgICAgMSwgLy8gYnJcclxuICAgICAgICAgICAgMSwgLy8gdGxcclxuICAgICAgICAgICAgMSwgLy8gYnJcclxuICAgICAgICAgICAgMSAvLyB0clxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIE1lc2guY2FsbCh0aGlzLCBzY2VuZSwgeCwgeSwgdmVydGljZXMsIHV2LCBjb2xvcnMsIGFscGhhcywgdGV4dHVyZSwgZnJhbWUpO1xyXG5cclxuICAgICAgICB0aGlzLnJlc2V0UG9zaXRpb24oKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBmcmFtZSB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIHJlbmRlciB3aXRoLlxyXG4gICAgICpcclxuICAgICAqIFRoZSBGcmFtZSBoYXMgdG8gYmVsb25nIHRvIHRoZSBjdXJyZW50IFRleHR1cmUgYmVpbmcgdXNlZC5cclxuICAgICAqXHJcbiAgICAgKiBJdCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIGluZGV4LlxyXG4gICAgICpcclxuICAgICAqIENhbGxpbmcgYHNldEZyYW1lYCB3aWxsIG1vZGlmeSB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgcHJvcGVydGllcyBvZiB5b3VyIEdhbWUgT2JqZWN0LlxyXG4gICAgICogSXQgd2lsbCBhbHNvIGNoYW5nZSB0aGUgYG9yaWdpbmAgaWYgdGhlIEZyYW1lIGhhcyBhIGN1c3RvbSBwaXZvdCBwb2ludCwgYXMgZXhwb3J0ZWQgZnJvbSBwYWNrYWdlcyBsaWtlIFRleHR1cmUgUGFja2VyLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlF1YWQjc2V0RnJhbWVcclxuICAgICAqIEBzaW5jZSAzLjExLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcil9IGZyYW1lIC0gVGhlIG5hbWUgb3IgaW5kZXggb2YgdGhlIGZyYW1lIHdpdGhpbiB0aGUgVGV4dHVyZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRGcmFtZTogZnVuY3Rpb24gKGZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZnJhbWUgPSB0aGlzLnRleHR1cmUuZ2V0KGZyYW1lKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmZyYW1lLmN1dFdpZHRoIHx8ICF0aGlzLmZyYW1lLmN1dEhlaWdodClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyRmxhZ3MgJj0gfjg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyRmxhZ3MgfD0gODtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZyYW1lID0gdGhpcy5mcmFtZTtcclxuXHJcbiAgICAgICAgLy8gICBUTFxyXG4gICAgICAgIHRoaXMudXZbMF0gPSBmcmFtZS51MDtcclxuICAgICAgICB0aGlzLnV2WzFdID0gZnJhbWUudjA7XHJcblxyXG4gICAgICAgIC8vICAgQkxcclxuICAgICAgICB0aGlzLnV2WzJdID0gZnJhbWUudTA7XHJcbiAgICAgICAgdGhpcy51dlszXSA9IGZyYW1lLnYxO1xyXG5cclxuICAgICAgICAvLyAgIEJSXHJcbiAgICAgICAgdGhpcy51dls0XSA9IGZyYW1lLnUxO1xyXG4gICAgICAgIHRoaXMudXZbNV0gPSBmcmFtZS52MTtcclxuXHJcbiAgICAgICAgLy8gICBUTFxyXG4gICAgICAgIHRoaXMudXZbNl0gPSBmcmFtZS51MDtcclxuICAgICAgICB0aGlzLnV2WzddID0gZnJhbWUudjA7XHJcblxyXG4gICAgICAgIC8vICAgQlJcclxuICAgICAgICB0aGlzLnV2WzhdID0gZnJhbWUudTE7XHJcbiAgICAgICAgdGhpcy51dls5XSA9IGZyYW1lLnYxO1xyXG5cclxuICAgICAgICAvLyAgIFRSXHJcbiAgICAgICAgdGhpcy51dlsxMF0gPSBmcmFtZS51MTtcclxuICAgICAgICB0aGlzLnV2WzExXSA9IGZyYW1lLnYwO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdG9wLWxlZnQgeCB2ZXJ0ZXggb2YgdGhpcyBRdWFkLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5RdWFkI3RvcExlZnRYXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHRvcExlZnRYOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnggKyB0aGlzLnZlcnRpY2VzWzBdO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy52ZXJ0aWNlc1swXSA9IHZhbHVlIC0gdGhpcy54O1xyXG4gICAgICAgICAgICB0aGlzLnZlcnRpY2VzWzZdID0gdmFsdWUgLSB0aGlzLng7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdG9wLWxlZnQgeSB2ZXJ0ZXggb2YgdGhpcyBRdWFkLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5RdWFkI3RvcExlZnRZXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHRvcExlZnRZOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnkgKyB0aGlzLnZlcnRpY2VzWzFdO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy52ZXJ0aWNlc1sxXSA9IHZhbHVlIC0gdGhpcy55O1xyXG4gICAgICAgICAgICB0aGlzLnZlcnRpY2VzWzddID0gdmFsdWUgLSB0aGlzLnk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdG9wLXJpZ2h0IHggdmVydGV4IG9mIHRoaXMgUXVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUXVhZCN0b3BSaWdodFhcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgdG9wUmlnaHRYOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnggKyB0aGlzLnZlcnRpY2VzWzEwXTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMudmVydGljZXNbMTBdID0gdmFsdWUgLSB0aGlzLng7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdG9wLXJpZ2h0IHkgdmVydGV4IG9mIHRoaXMgUXVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUXVhZCN0b3BSaWdodFlcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgdG9wUmlnaHRZOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnkgKyB0aGlzLnZlcnRpY2VzWzExXTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMudmVydGljZXNbMTFdID0gdmFsdWUgLSB0aGlzLnk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYm90dG9tLWxlZnQgeCB2ZXJ0ZXggb2YgdGhpcyBRdWFkLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5RdWFkI2JvdHRvbUxlZnRYXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGJvdHRvbUxlZnRYOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnggKyB0aGlzLnZlcnRpY2VzWzJdO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy52ZXJ0aWNlc1syXSA9IHZhbHVlIC0gdGhpcy54O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGJvdHRvbS1sZWZ0IHkgdmVydGV4IG9mIHRoaXMgUXVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUXVhZCNib3R0b21MZWZ0WVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBib3R0b21MZWZ0WToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy55ICsgdGhpcy52ZXJ0aWNlc1szXTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMudmVydGljZXNbM10gPSB2YWx1ZSAtIHRoaXMueTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBib3R0b20tcmlnaHQgeCB2ZXJ0ZXggb2YgdGhpcyBRdWFkLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5RdWFkI2JvdHRvbVJpZ2h0WFxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBib3R0b21SaWdodFg6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMueCArIHRoaXMudmVydGljZXNbNF07XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnZlcnRpY2VzWzRdID0gdmFsdWUgLSB0aGlzLng7XHJcbiAgICAgICAgICAgIHRoaXMudmVydGljZXNbOF0gPSB2YWx1ZSAtIHRoaXMueDtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBib3R0b20tcmlnaHQgeSB2ZXJ0ZXggb2YgdGhpcyBRdWFkLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5RdWFkI2JvdHRvbVJpZ2h0WVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBib3R0b21SaWdodFk6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMueSArIHRoaXMudmVydGljZXNbNV07XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnZlcnRpY2VzWzVdID0gdmFsdWUgLSB0aGlzLnk7XHJcbiAgICAgICAgICAgIHRoaXMudmVydGljZXNbOV0gPSB2YWx1ZSAtIHRoaXMueTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0b3AtbGVmdCBhbHBoYSB2YWx1ZSBvZiB0aGlzIFF1YWQuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlF1YWQjdG9wTGVmdEFscGhhXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHRvcExlZnRBbHBoYToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hbHBoYXNbMF07XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmFscGhhc1swXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmFscGhhc1szXSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRvcC1yaWdodCBhbHBoYSB2YWx1ZSBvZiB0aGlzIFF1YWQuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlF1YWQjdG9wUmlnaHRBbHBoYVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICB0b3BSaWdodEFscGhhOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFscGhhc1s1XTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxwaGFzWzVdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYm90dG9tLWxlZnQgYWxwaGEgdmFsdWUgb2YgdGhpcyBRdWFkLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5RdWFkI2JvdHRvbUxlZnRBbHBoYVxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBib3R0b21MZWZ0QWxwaGE6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWxwaGFzWzFdO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5hbHBoYXNbMV0gPSB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBib3R0b20tcmlnaHQgYWxwaGEgdmFsdWUgb2YgdGhpcyBRdWFkLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5RdWFkI2JvdHRvbVJpZ2h0QWxwaGFcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgYm90dG9tUmlnaHRBbHBoYToge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hbHBoYXNbMl07XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmFscGhhc1syXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmFscGhhc1s0XSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRvcC1sZWZ0IGNvbG9yIHZhbHVlIG9mIHRoaXMgUXVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUXVhZCN0b3BMZWZ0Q29sb3JcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqL1xyXG4gICAgdG9wTGVmdENvbG9yOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbG9yc1swXTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY29sb3JzWzBdID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29sb3JzWzNdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdG9wLXJpZ2h0IGNvbG9yIHZhbHVlIG9mIHRoaXMgUXVhZC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUXVhZCN0b3BSaWdodENvbG9yXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIHRvcFJpZ2h0Q29sb3I6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29sb3JzWzVdO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jb2xvcnNbNV0gPSB2YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBib3R0b20tbGVmdCBjb2xvciB2YWx1ZSBvZiB0aGlzIFF1YWQuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlF1YWQjYm90dG9tTGVmdENvbG9yXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKi9cclxuICAgIGJvdHRvbUxlZnRDb2xvcjoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb2xvcnNbMV07XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmNvbG9yc1sxXSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGJvdHRvbS1yaWdodCBjb2xvciB2YWx1ZSBvZiB0aGlzIFF1YWQuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlF1YWQjYm90dG9tUmlnaHRDb2xvclxyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICovXHJcbiAgICBib3R0b21SaWdodENvbG9yOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbG9yc1syXTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY29sb3JzWzJdID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuY29sb3JzWzRdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB0b3AtbGVmdCB2ZXJ0ZXggcG9zaXRpb24gb2YgdGhpcyBRdWFkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlF1YWQjc2V0VG9wTGVmdFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBjb29yZGluYXRlIG9mIHRoZSB2ZXJ0ZXguXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB2ZXJ0aWNhbCBjb29yZGluYXRlIG9mIHRoZSB2ZXJ0ZXguXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0VG9wTGVmdDogZnVuY3Rpb24gKHgsIHkpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy50b3BMZWZ0WCA9IHg7XHJcbiAgICAgICAgdGhpcy50b3BMZWZ0WSA9IHk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHRvcC1yaWdodCB2ZXJ0ZXggcG9zaXRpb24gb2YgdGhpcyBRdWFkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlF1YWQjc2V0VG9wUmlnaHRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGhvcml6b250YWwgY29vcmRpbmF0ZSBvZiB0aGUgdmVydGV4LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgY29vcmRpbmF0ZSBvZiB0aGUgdmVydGV4LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldFRvcFJpZ2h0OiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnRvcFJpZ2h0WCA9IHg7XHJcbiAgICAgICAgdGhpcy50b3BSaWdodFkgPSB5O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBib3R0b20tbGVmdCB2ZXJ0ZXggcG9zaXRpb24gb2YgdGhpcyBRdWFkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlF1YWQjc2V0Qm90dG9tTGVmdFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBjb29yZGluYXRlIG9mIHRoZSB2ZXJ0ZXguXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB2ZXJ0aWNhbCBjb29yZGluYXRlIG9mIHRoZSB2ZXJ0ZXguXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0Qm90dG9tTGVmdDogZnVuY3Rpb24gKHgsIHkpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5ib3R0b21MZWZ0WCA9IHg7XHJcbiAgICAgICAgdGhpcy5ib3R0b21MZWZ0WSA9IHk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGJvdHRvbS1yaWdodCB2ZXJ0ZXggcG9zaXRpb24gb2YgdGhpcyBRdWFkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlF1YWQjc2V0Qm90dG9tUmlnaHRcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGhvcml6b250YWwgY29vcmRpbmF0ZSBvZiB0aGUgdmVydGV4LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgY29vcmRpbmF0ZSBvZiB0aGUgdmVydGV4LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHNldEJvdHRvbVJpZ2h0OiBmdW5jdGlvbiAoeCwgeSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmJvdHRvbVJpZ2h0WCA9IHg7XHJcbiAgICAgICAgdGhpcy5ib3R0b21SaWdodFkgPSB5O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNldHMgdGhlIHBvc2l0aW9ucyBvZiB0aGUgZm91ciBjb3JuZXIgdmVydGljZXMgb2YgdGhpcyBRdWFkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlF1YWQjcmVzZXRQb3NpdGlvblxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcmVzZXRQb3NpdGlvbjogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgeCA9IHRoaXMueDtcclxuICAgICAgICB2YXIgeSA9IHRoaXMueTtcclxuICAgICAgICB2YXIgaGFsZldpZHRoID0gTWF0aC5mbG9vcih0aGlzLndpZHRoIC8gMik7XHJcbiAgICAgICAgdmFyIGhhbGZIZWlnaHQgPSBNYXRoLmZsb29yKHRoaXMuaGVpZ2h0IC8gMik7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0VG9wTGVmdCh4IC0gaGFsZldpZHRoLCB5IC0gaGFsZkhlaWdodCk7XHJcbiAgICAgICAgdGhpcy5zZXRUb3BSaWdodCh4ICsgaGFsZldpZHRoLCB5IC0gaGFsZkhlaWdodCk7XHJcbiAgICAgICAgdGhpcy5zZXRCb3R0b21MZWZ0KHggLSBoYWxmV2lkdGgsIHkgKyBoYWxmSGVpZ2h0KTtcclxuICAgICAgICB0aGlzLnNldEJvdHRvbVJpZ2h0KHggKyBoYWxmV2lkdGgsIHkgKyBoYWxmSGVpZ2h0KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzZXRzIHRoZSBhbHBoYSB2YWx1ZXMgdXNlZCBieSB0aGlzIFF1YWQgYmFjayB0byAxLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlF1YWQjcmVzZXRBbHBoYVxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcmVzZXRBbHBoYTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgYWxwaGFzID0gdGhpcy5hbHBoYXM7XHJcblxyXG4gICAgICAgIGFscGhhc1swXSA9IDE7XHJcbiAgICAgICAgYWxwaGFzWzFdID0gMTtcclxuICAgICAgICBhbHBoYXNbMl0gPSAxO1xyXG4gICAgICAgIGFscGhhc1szXSA9IDE7XHJcbiAgICAgICAgYWxwaGFzWzRdID0gMTtcclxuICAgICAgICBhbHBoYXNbNV0gPSAxO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNldHMgdGhlIGNvbG9yIHZhbHVlcyB1c2VkIGJ5IHRoaXMgUXVhZCBiYWNrIHRvIDB4ZmZmZmZmLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlF1YWQjcmVzZXRDb2xvcnNcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHJlc2V0Q29sb3JzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBjb2xvcnMgPSB0aGlzLmNvbG9ycztcclxuXHJcbiAgICAgICAgY29sb3JzWzBdID0gMHhmZmZmZmY7XHJcbiAgICAgICAgY29sb3JzWzFdID0gMHhmZmZmZmY7XHJcbiAgICAgICAgY29sb3JzWzJdID0gMHhmZmZmZmY7XHJcbiAgICAgICAgY29sb3JzWzNdID0gMHhmZmZmZmY7XHJcbiAgICAgICAgY29sb3JzWzRdID0gMHhmZmZmZmY7XHJcbiAgICAgICAgY29sb3JzWzVdID0gMHhmZmZmZmY7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc2V0cyB0aGUgcG9zaXRpb24sIGFscGhhIGFuZCBjb2xvciB2YWx1ZXMgdXNlZCBieSB0aGlzIFF1YWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUXVhZCNyZXNldFxyXG4gICAgICogQHNpbmNlIDMuMC4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcmVzZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5yZXNldFBvc2l0aW9uKCk7XHJcblxyXG4gICAgICAgIHRoaXMucmVzZXRBbHBoYSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5yZXNldENvbG9ycygpO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFF1YWQ7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEJ1aWxkR2FtZU9iamVjdCA9IHJlcXVpcmUoJy4uL0J1aWxkR2FtZU9iamVjdCcpO1xyXG52YXIgR2FtZU9iamVjdENyZWF0b3IgPSByZXF1aXJlKCcuLi9HYW1lT2JqZWN0Q3JlYXRvcicpO1xyXG52YXIgR2V0QWR2YW5jZWRWYWx1ZSA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9HZXRBZHZhbmNlZFZhbHVlJyk7XHJcbnZhciBRdWFkID0gcmVxdWlyZSgnLi9RdWFkJyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBRdWFkIEdhbWUgT2JqZWN0IGFuZCByZXR1cm5zIGl0LlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBRdWFkIEdhbWUgT2JqZWN0IGFuZCBXZWJHTCBzdXBwb3J0IGhhdmUgYmVlbiBidWlsdCBpbnRvIFBoYXNlci5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdENyZWF0b3IjcXVhZFxyXG4gKiBAc2luY2UgMy4wLjBcclxuICpcclxuICogQHBhcmFtIHtvYmplY3R9IGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIGNyZWF0ZSBpdHNlbGYuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FkZFRvU2NlbmVdIC0gQWRkIHRoaXMgR2FtZSBPYmplY3QgdG8gdGhlIFNjZW5lIGFmdGVyIGNyZWF0aW5nIGl0PyBJZiBzZXQgdGhpcyBhcmd1bWVudCBvdmVycmlkZXMgdGhlIGBhZGRgIHByb3BlcnR5IGluIHRoZSBjb25maWcgb2JqZWN0LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuUXVhZH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0Q3JlYXRvci5yZWdpc3RlcigncXVhZCcsIGZ1bmN0aW9uIChjb25maWcsIGFkZFRvU2NlbmUpXHJcbntcclxuICAgIGlmIChjb25maWcgPT09IHVuZGVmaW5lZCkgeyBjb25maWcgPSB7fTsgfVxyXG5cclxuICAgIHZhciB4ID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICd4JywgMCk7XHJcbiAgICB2YXIgeSA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAneScsIDApO1xyXG4gICAgdmFyIGtleSA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAna2V5JywgbnVsbCk7XHJcbiAgICB2YXIgZnJhbWUgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ2ZyYW1lJywgbnVsbCk7XHJcblxyXG4gICAgdmFyIHF1YWQgPSBuZXcgUXVhZCh0aGlzLnNjZW5lLCB4LCB5LCBrZXksIGZyYW1lKTtcclxuXHJcbiAgICBpZiAoYWRkVG9TY2VuZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAge1xyXG4gICAgICAgIGNvbmZpZy5hZGQgPSBhZGRUb1NjZW5lO1xyXG4gICAgfVxyXG5cclxuICAgIEJ1aWxkR2FtZU9iamVjdCh0aGlzLnNjZW5lLCBxdWFkLCBjb25maWcpO1xyXG5cclxuICAgIHJldHVybiBxdWFkO1xyXG59KTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgUXVhZCA9IHJlcXVpcmUoJy4vUXVhZCcpO1xyXG52YXIgR2FtZU9iamVjdEZhY3RvcnkgPSByZXF1aXJlKCcuLi9HYW1lT2JqZWN0RmFjdG9yeScpO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBuZXcgUXVhZCBHYW1lIE9iamVjdCBhbmQgYWRkcyBpdCB0byB0aGUgU2NlbmUuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIFF1YWQgR2FtZSBPYmplY3QgYW5kIFdlYkdMIHN1cHBvcnQgaGF2ZSBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0RmFjdG9yeSNxdWFkXHJcbiAqIEB3ZWJnbE9ubHlcclxuICogQHNpbmNlIDMuMC4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSB5IC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gdGV4dHVyZSAtIFRoZSBrZXkgb2YgdGhlIFRleHR1cmUgdGhpcyBHYW1lIE9iamVjdCB3aWxsIHVzZSB0byByZW5kZXIgd2l0aCwgYXMgc3RvcmVkIGluIHRoZSBUZXh0dXJlIE1hbmFnZXIuXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW2ZyYW1lXSAtIEFuIG9wdGlvbmFsIGZyYW1lIGZyb20gdGhlIFRleHR1cmUgdGhpcyBHYW1lIE9iamVjdCBpcyByZW5kZXJpbmcgd2l0aC5cclxuICogXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5RdWFkfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbmlmICh0eXBlb2YgV0VCR0xfUkVOREVSRVIpXHJcbntcclxuICAgIEdhbWVPYmplY3RGYWN0b3J5LnJlZ2lzdGVyKCdxdWFkJywgZnVuY3Rpb24gKHgsIHksIGtleSwgZnJhbWUpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGxheUxpc3QuYWRkKG5ldyBRdWFkKHRoaXMuc2NlbmUsIHgsIHksIGtleSwgZnJhbWUpKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG4vLyAgV2hlbiByZWdpc3RlcmluZyBhIGZhY3RvcnkgZnVuY3Rpb24gJ3RoaXMnIHJlZmVycyB0byB0aGUgR2FtZU9iamVjdEZhY3RvcnkgY29udGV4dC5cclxuLy8gIFxyXG4vLyAgVGhlcmUgYXJlIHNldmVyYWwgcHJvcGVydGllcyBhdmFpbGFibGUgdG8gdXNlOlxyXG4vLyAgXHJcbi8vICB0aGlzLnNjZW5lIC0gYSByZWZlcmVuY2UgdG8gdGhlIFNjZW5lIHRoYXQgb3ducyB0aGUgR2FtZU9iamVjdEZhY3RvcnlcclxuLy8gIHRoaXMuZGlzcGxheUxpc3QgLSBhIHJlZmVyZW5jZSB0byB0aGUgRGlzcGxheSBMaXN0IHRoZSBTY2VuZSBvd25zXHJcbi8vICB0aGlzLnVwZGF0ZUxpc3QgLSBhIHJlZmVyZW5jZSB0byB0aGUgVXBkYXRlIExpc3QgdGhlIFNjZW5lIG93bnNcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQmxlbmRNb2RlcyA9IHJlcXVpcmUoJy4uLy4uL3JlbmRlcmVyL0JsZW5kTW9kZXMnKTtcclxudmFyIENhbWVyYSA9IHJlcXVpcmUoJy4uLy4uL2NhbWVyYXMvMmQvQmFzZUNhbWVyYScpO1xyXG52YXIgQ2FudmFzUG9vbCA9IHJlcXVpcmUoJy4uLy4uL2Rpc3BsYXkvY2FudmFzL0NhbnZhc1Bvb2wnKTtcclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIENvbXBvbmVudHMgPSByZXF1aXJlKCcuLi9jb21wb25lbnRzJyk7XHJcbnZhciBDT05TVCA9IHJlcXVpcmUoJy4uLy4uL2NvbnN0Jyk7XHJcbnZhciBGcmFtZSA9IHJlcXVpcmUoJy4uLy4uL3RleHR1cmVzL0ZyYW1lJyk7XHJcbnZhciBHYW1lT2JqZWN0ID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdCcpO1xyXG52YXIgUmVuZGVyID0gcmVxdWlyZSgnLi9SZW5kZXJUZXh0dXJlUmVuZGVyJyk7XHJcbnZhciBVdGlscyA9IHJlcXVpcmUoJy4uLy4uL3JlbmRlcmVyL3dlYmdsL1V0aWxzJyk7XHJcbnZhciBVVUlEID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvc3RyaW5nL1VVSUQnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgUmVuZGVyIFRleHR1cmUuXHJcbiAqIFxyXG4gKiBBIFJlbmRlciBUZXh0dXJlIGlzIGEgc3BlY2lhbCB0ZXh0dXJlIHRoYXQgYWxsb3dzIGFueSBudW1iZXIgb2YgR2FtZSBPYmplY3RzIHRvIGJlIGRyYXduIHRvIGl0LiBZb3UgY2FuIHRha2UgbWFueSBjb21wbGV4IG9iamVjdHMgYW5kXHJcbiAqIGRyYXcgdGhlbSBhbGwgdG8gdGhpcyBvbmUgdGV4dHVyZSwgd2hpY2ggY2FuIHRoZXkgYmUgdXNlZCBhcyB0aGUgdGV4dHVyZSBmb3Igb3RoZXIgR2FtZSBPYmplY3Qncy4gSXQncyBhIHdheSB0byBnZW5lcmF0ZSBkeW5hbWljXHJcbiAqIHRleHR1cmVzIGF0IHJ1bi10aW1lIHRoYXQgYXJlIFdlYkdMIGZyaWVuZGx5IGFuZCBkb24ndCBpbnZva2UgZXhwZW5zaXZlIEdQVSB1cGxvYWRzLlxyXG4gKiBcclxuICogTm90ZSB0aGF0IHVuZGVyIFdlYkdMIGEgRnJhbWVCdWZmZXIsIHdoaWNoIGlzIHdoYXQgdGhlIFJlbmRlciBUZXh0dXJlIHVzZXMgaW50ZXJuYWxseSwgY2Fubm90IGJlIGFudGktYWxpYXNlZC4gVGhpcyBtZWFuc1xyXG4gKiB0aGF0IHdoZW4gZHJhd2luZyBvYmplY3RzIHN1Y2ggYXMgU2hhcGVzIHRvIGEgUmVuZGVyIFRleHR1cmUgdGhleSB3aWxsIGFwcGVhciB0byBiZSBkcmF3biB3aXRoIG5vIGFsaWFzaW5nLCBob3dldmVyIHRoaXNcclxuICogaXMgYSB0ZWNobmljYWwgbGltaXRhdGlvbiBvZiBXZWJHTC4gVG8gZ2V0IGFyb3VuZCBpdCwgY3JlYXRlIHlvdXIgc2hhcGUgYXMgYSB0ZXh0dXJlIGluIGFuIGFydCBwYWNrYWdlLCB0aGVuIGRyYXcgdGhhdFxyXG4gKiB0byB0aGUgUmVuZGVyIFRleHR1cmUuXHJcbiAqXHJcbiAqIEBjbGFzcyBSZW5kZXJUZXh0dXJlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0XHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjIuMFxyXG4gKlxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5CbGVuZE1vZGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQ29tcHV0ZWRTaXplXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkNyb3BcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuRGVwdGhcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuRmxpcFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5HZXRCb3VuZHNcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuTWFza1xyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5PcmlnaW5cclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuUGlwZWxpbmVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuU2Nyb2xsRmFjdG9yXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRpbnRcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlZpc2libGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gQSBHYW1lIE9iamVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIFNjZW5lIGF0IGEgdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbd2lkdGg9MzJdIC0gVGhlIHdpZHRoIG9mIHRoZSBSZW5kZXIgVGV4dHVyZS5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbaGVpZ2h0PTMyXSAtIFRoZSBoZWlnaHQgb2YgdGhlIFJlbmRlciBUZXh0dXJlLlxyXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2tleV0gLSBUaGUgdGV4dHVyZSBrZXkgdG8gbWFrZSB0aGUgUmVuZGVyVGV4dHVyZSBmcm9tLlxyXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2ZyYW1lXSAtIHRoZSBmcmFtZSB0byBtYWtlIHRoZSBSZW5kZXJUZXh0dXJlIGZyb20uXHJcbiAqL1xyXG52YXIgUmVuZGVyVGV4dHVyZSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogR2FtZU9iamVjdCxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBDb21wb25lbnRzLkFscGhhLFxyXG4gICAgICAgIENvbXBvbmVudHMuQmxlbmRNb2RlLFxyXG4gICAgICAgIENvbXBvbmVudHMuQ29tcHV0ZWRTaXplLFxyXG4gICAgICAgIENvbXBvbmVudHMuQ3JvcCxcclxuICAgICAgICBDb21wb25lbnRzLkRlcHRoLFxyXG4gICAgICAgIENvbXBvbmVudHMuRmxpcCxcclxuICAgICAgICBDb21wb25lbnRzLkdldEJvdW5kcyxcclxuICAgICAgICBDb21wb25lbnRzLk1hc2ssXHJcbiAgICAgICAgQ29tcG9uZW50cy5PcmlnaW4sXHJcbiAgICAgICAgQ29tcG9uZW50cy5QaXBlbGluZSxcclxuICAgICAgICBDb21wb25lbnRzLlNjcm9sbEZhY3RvcixcclxuICAgICAgICBDb21wb25lbnRzLlRpbnQsXHJcbiAgICAgICAgQ29tcG9uZW50cy5UcmFuc2Zvcm0sXHJcbiAgICAgICAgQ29tcG9uZW50cy5WaXNpYmxlLFxyXG4gICAgICAgIFJlbmRlclxyXG4gICAgXSxcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIFJlbmRlclRleHR1cmUgKHNjZW5lLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBrZXksIGZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHsgeCA9IDA7IH1cclxuICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSAwOyB9XHJcbiAgICAgICAgaWYgKHdpZHRoID09PSB1bmRlZmluZWQpIHsgd2lkdGggPSAzMjsgfVxyXG4gICAgICAgIGlmIChoZWlnaHQgPT09IHVuZGVmaW5lZCkgeyBoZWlnaHQgPSAzMjsgfVxyXG5cclxuICAgICAgICBHYW1lT2JqZWN0LmNhbGwodGhpcywgc2NlbmUsICdSZW5kZXJUZXh0dXJlJyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIGVpdGhlciB0aGUgQ2FudmFzIG9yIFdlYkdMIFJlbmRlcmVyIHRoYXQgdGhlIEdhbWUgaW5zdGFuY2UgaXMgdXNpbmcuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUmVuZGVyVGV4dHVyZSNyZW5kZXJlclxyXG4gICAgICAgICAqIEB0eXBlIHsoUGhhc2VyLlJlbmRlcmVyLkNhbnZhcy5DYW52YXNSZW5kZXJlcnxQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xSZW5kZXJlcil9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMi4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IHNjZW5lLnN5cy5nYW1lLnJlbmRlcmVyO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgVGV4dHVyZSBNYW5hZ2VyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjdGV4dHVyZU1hbmFnZXJcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlRleHR1cmVzLlRleHR1cmVNYW5hZ2VyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnRleHR1cmVNYW5hZ2VyID0gc2NlbmUuc3lzLnRleHR1cmVzO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdGludCBvZiB0aGUgUmVuZGVyIFRleHR1cmUgd2hlbiByZW5kZXJlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI2dsb2JhbFRpbnRcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDB4ZmZmZmZmXHJcbiAgICAgICAgICogQHNpbmNlIDMuMi4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5nbG9iYWxUaW50ID0gMHhmZmZmZmY7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBhbHBoYSBvZiB0aGUgUmVuZGVyIFRleHR1cmUgd2hlbiByZW5kZXJlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI2dsb2JhbEFscGhhXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCAxXHJcbiAgICAgICAgICogQHNpbmNlIDMuMi4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5nbG9iYWxBbHBoYSA9IDE7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBIVE1MIENhbnZhcyBFbGVtZW50IHRoYXQgdGhlIFJlbmRlciBUZXh0dXJlIGlzIGRyYXdpbmcgdG8gd2hlbiB1c2luZyB0aGUgQ2FudmFzIFJlbmRlcmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjY2FudmFzXHJcbiAgICAgICAgICogQHR5cGUge0hUTUxDYW52YXNFbGVtZW50fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY2FudmFzID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIEdMIEZyYW1lIEJ1ZmZlciB0aGlzIFJlbmRlciBUZXh0dXJlIGlzIGRyYXdpbmcgdG8uXHJcbiAgICAgICAgICogVGhpcyBpcyBvbmx5IHNldCBpZiBQaGFzZXIgaXMgcnVubmluZyB3aXRoIHRoZSBXZWJHTCBSZW5kZXJlci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI2ZyYW1lYnVmZmVyXHJcbiAgICAgICAgICogQHR5cGUgez9XZWJHTEZyYW1lYnVmZmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZnJhbWVidWZmZXIgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJcyB0aGlzIFJlbmRlciBUZXh0dXJlIGRpcnR5IG9yIG5vdD8gSWYgbm90IGl0IHdvbid0IHNwZW5kIHRpbWUgY2xlYXJpbmcgb3IgZmlsbGluZyBpdHNlbGYuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUmVuZGVyVGV4dHVyZSNkaXJ0eVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBpbnRlcm5hbCBjcm9wIGRhdGEgb2JqZWN0LCBhcyB1c2VkIGJ5IGBzZXRDcm9wYCBhbmQgcGFzc2VkIHRvIHRoZSBgRnJhbWUuc2V0Q3JvcFVWc2AgbWV0aG9kLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjX2Nyb3BcclxuICAgICAgICAgKiBAdHlwZSB7b2JqZWN0fVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTIuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2Nyb3AgPSB0aGlzLnJlc2V0Q3JvcE9iamVjdCgpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgVGV4dHVyZSBjb3JyZXNwb25kaW5nIHRvIHRoaXMgUmVuZGVyIFRleHR1cmUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUmVuZGVyVGV4dHVyZSN0ZXh0dXJlXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5UZXh0dXJlcy5UZXh0dXJlfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnRleHR1cmUgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgRnJhbWUgY29ycmVzcG9uZGluZyB0byB0aGlzIFJlbmRlciBUZXh0dXJlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjZnJhbWVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlRleHR1cmVzLkZyYW1lfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZyYW1lID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW50ZXJuYWwgc2F2ZWQgdGV4dHVyZSBmbGFnLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjX3NhdmVkXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fc2F2ZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKGtleSA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jYW52YXMgPSBDYW52YXNQb29sLmNyZWF0ZTJEKHRoaXMsIHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICAgICAgICAgICAgLy8gIENyZWF0ZSBhIG5ldyBUZXh0dXJlIGZvciB0aGlzIFRleHQgb2JqZWN0XHJcbiAgICAgICAgICAgIHRoaXMudGV4dHVyZSA9IHNjZW5lLnN5cy50ZXh0dXJlcy5hZGRDYW52YXMoVVVJRCgpLCB0aGlzLmNhbnZhcyk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyAgR2V0IHRoZSBmcmFtZVxyXG4gICAgICAgICAgICB0aGlzLmZyYW1lID0gdGhpcy50ZXh0dXJlLmdldCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnRleHR1cmUgPSBzY2VuZS5zeXMudGV4dHVyZXMuZ2V0KGtleSk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAvLyAgR2V0IHRoZSBmcmFtZVxyXG4gICAgICAgICAgICB0aGlzLmZyYW1lID0gdGhpcy50ZXh0dXJlLmdldChmcmFtZSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNhbnZhcyA9IHRoaXMuZnJhbWUuc291cmNlLmltYWdlO1xyXG4gICAgICAgICAgICB0aGlzLl9zYXZlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMud2lkdGggPSB0aGlzLmZyYW1lLmN1dFdpZHRoO1xyXG4gICAgICAgICAgICB0aGlzLmhlaWdodCA9IHRoaXMuZnJhbWUuY3V0SGVpZ2h0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFJlbmRlcmluZyBDb250ZXh0IGJlbG9uZ2luZyB0byB0aGUgQ2FudmFzIEVsZW1lbnQgdGhpcyBSZW5kZXIgVGV4dHVyZSBpcyBkcmF3aW5nIHRvLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjY29udGV4dFxyXG4gICAgICAgICAqIEB0eXBlIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMi4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW50ZXJuYWwgZXJhc2UgbW9kZSBmbGFnLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjX2VyYXNlTW9kZVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTYuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2VyYXNlTW9kZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbiBpbnRlcm5hbCBDYW1lcmEgdGhhdCBjYW4gYmUgdXNlZCB0byBtb3ZlIGFyb3VuZCB0aGUgUmVuZGVyIFRleHR1cmUuXHJcbiAgICAgICAgICogQ29udHJvbCBpdCBqdXN0IGxpa2UgeW91IHdvdWxkIGFueSBTY2VuZSBDYW1lcmEuIFRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgaXQgb25seSBpbXBhY3RzIHRoZSBwbGFjZW1lbnQgb2Ygd2hhdFxyXG4gICAgICAgICAqIGlzIGRyYXduIHRvIHRoZSBSZW5kZXIgVGV4dHVyZS4gWW91IGNhbiBzY3JvbGwsIHpvb20gYW5kIHJvdGF0ZSB0aGlzIENhbWVyYS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI2NhbWVyYVxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkJhc2VDYW1lcmF9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTIuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY2FtZXJhID0gbmV3IENhbWVyYSgwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFdlYkdMIFJlbmRlcmluZyBDb250ZXh0LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjZ2xcclxuICAgICAgICAgKiBAdHlwZSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fVxyXG4gICAgICAgICAqIEBkZWZhdWx0IG51bGxcclxuICAgICAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmdsID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFdlYkdMVGV4dHVyZSB0aGF0IGlzIGJlaW5nIHJlbmRlcmVkIHRvIGluIGEgV2ViR0wgQ29udGV4dC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI2dsVGV4dHVyZVxyXG4gICAgICAgICAqIEB0eXBlIHtXZWJHTFRleHR1cmV9XHJcbiAgICAgICAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE5LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmdsVGV4dHVyZSA9IG51bGw7XHJcblxyXG4gICAgICAgIHZhciByZW5kZXJlciA9IHRoaXMucmVuZGVyZXI7XHJcblxyXG4gICAgICAgIGlmIChyZW5kZXJlci50eXBlID09PSBDT05TVC5XRUJHTClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBnbCA9IHJlbmRlcmVyLmdsO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5nbCA9IGdsO1xyXG4gICAgICAgICAgICB0aGlzLmdsVGV4dHVyZSA9IHRoaXMuZnJhbWUuc291cmNlLmdsVGV4dHVyZTtcclxuICAgICAgICAgICAgdGhpcy5kcmF3R2FtZU9iamVjdCA9IHRoaXMuYmF0Y2hHYW1lT2JqZWN0V2ViR0w7XHJcbiAgICAgICAgICAgIHRoaXMuZnJhbWVidWZmZXIgPSByZW5kZXJlci5jcmVhdGVGcmFtZWJ1ZmZlcih3aWR0aCwgaGVpZ2h0LCB0aGlzLmdsVGV4dHVyZSwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChyZW5kZXJlci50eXBlID09PSBDT05TVC5DQU5WQVMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmRyYXdHYW1lT2JqZWN0ID0gdGhpcy5iYXRjaEdhbWVPYmplY3RDYW52YXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNhbWVyYS5zZXRTY2VuZShzY2VuZSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb24oeCwgeSk7XHJcblxyXG4gICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0T3JpZ2luKDAsIDApO1xyXG4gICAgICAgIHRoaXMuaW5pdFBpcGVsaW5lKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgc2l6ZSBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI3NldFNpemVcclxuICAgICAqIEBzaW5jZSAzLjAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGlzIEdhbWUgT2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0U2l6ZTogZnVuY3Rpb24gKHdpZHRoLCBoZWlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzaXplKHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc2l6ZXMgdGhlIFJlbmRlciBUZXh0dXJlIHRvIHRoZSBuZXcgZGltZW5zaW9ucyBnaXZlbi5cclxuICAgICAqIFxyXG4gICAgICogSWYgUmVuZGVyIFRleHR1cmUgd2FzIGNyZWF0ZWQgZnJvbSBzcGVjaWZpYyBmcmFtZSwgb25seSB0aGUgc2l6ZSBvZiB0aGUgZnJhbWUgd2lsbCBiZSBjaGFuZ2VkLiBUaGUgc2l6ZSBvZiB0aGUgc291cmNlXHJcbiAgICAgKiB0ZXh0dXJlIHdpbGwgbm90IGNoYW5nZS5cclxuICAgICAqXHJcbiAgICAgKiBJZiBSZW5kZXIgVGV4dHVyZSB3YXMgbm90IGNyZWF0ZWQgZnJvbSBzcGVjaWZpYyBmcmFtZSwgdGhlIGZvbGxvd2luZyB3aWxsIGhhcHBlbjpcclxuICAgICAqIEluIFdlYkdMIGl0IHdpbGwgZGVzdHJveSBhbmQgdGhlbiByZS1jcmVhdGUgdGhlIGZyYW1lIGJ1ZmZlciBiZWluZyB1c2VkIGJ5IHRoZSBSZW5kZXIgVGV4dHVyZS5cclxuICAgICAqIEluIENhbnZhcyBpdCB3aWxsIHJlc2l6ZSB0aGUgdW5kZXJseWluZyBjYW52YXMgZWxlbWVudC5cclxuICAgICAqIEJvdGggYXBwcm9hY2hlcyB3aWxsIGVyYXNlIGV2ZXJ5dGhpbmcgY3VycmVudGx5IGRyYXduIHRvIHRoZSBSZW5kZXIgVGV4dHVyZS5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGUgZGltZW5zaW9ucyBnaXZlbiBhcmUgdGhlIHNhbWUgYXMgdGhvc2UgYWxyZWFkeSBiZWluZyB1c2VkLCBjYWxsaW5nIHRoaXMgbWV0aG9kIHdpbGwgZG8gbm90aGluZy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI3Jlc2l6ZVxyXG4gICAgICogQHNpbmNlIDMuMTAuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3aWR0aCAtIFRoZSBuZXcgd2lkdGggb2YgdGhlIFJlbmRlciBUZXh0dXJlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtoZWlnaHQ9d2lkdGhdIC0gVGhlIG5ldyBoZWlnaHQgb2YgdGhlIFJlbmRlciBUZXh0dXJlLiBJZiBub3Qgc3BlY2lmaWVkLCB3aWxsIGJlIHNldCB0aGUgc2FtZSBhcyB0aGUgYHdpZHRoYC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFJlbmRlciBUZXh0dXJlLlxyXG4gICAgICovXHJcbiAgICByZXNpemU6IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChoZWlnaHQgPT09IHVuZGVmaW5lZCkgeyBoZWlnaHQgPSB3aWR0aDsgfVxyXG5cclxuICAgICAgICBpZiAod2lkdGggIT09IHRoaXMud2lkdGggfHwgaGVpZ2h0ICE9PSB0aGlzLmhlaWdodClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZyYW1lLm5hbWUgPT09ICdfX0JBU0UnKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAvLyAgUmVzaXplIHRoZSB0ZXh0dXJlXHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jYW52YXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzLmhlaWdodCA9IGhlaWdodDtcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgdGhpcy50ZXh0dXJlLndpZHRoID0gd2lkdGg7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRleHR1cmUuaGVpZ2h0ID0gaGVpZ2h0O1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5nbClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgZ2wgPSB0aGlzLmdsO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmRlbGV0ZVRleHR1cmUodGhpcy5mcmFtZS5zb3VyY2UuZ2xUZXh0dXJlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmRlbGV0ZUZyYW1lYnVmZmVyKHRoaXMuZnJhbWVidWZmZXIpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB2YXIgZ2xUZXh0dXJlID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0dXJlMkQoMCwgZ2wuTkVBUkVTVCwgZ2wuTkVBUkVTVCwgZ2wuQ0xBTVBfVE9fRURHRSwgZ2wuQ0xBTVBfVE9fRURHRSwgZ2wuUkdCQSwgbnVsbCwgd2lkdGgsIGhlaWdodCwgZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lYnVmZmVyID0gdGhpcy5yZW5kZXJlci5jcmVhdGVGcmFtZWJ1ZmZlcih3aWR0aCwgaGVpZ2h0LCBnbFRleHR1cmUsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmFtZS5zb3VyY2UuaXNSZW5kZXJUZXh0dXJlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mcmFtZS5nbFRleHR1cmUgPSBnbFRleHR1cmU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nbFRleHR1cmUgPSBnbFRleHR1cmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5mcmFtZS5zb3VyY2Uud2lkdGggPSB3aWR0aDtcclxuICAgICAgICAgICAgICAgIHRoaXMuZnJhbWUuc291cmNlLmhlaWdodCA9IGhlaWdodDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhbWVyYS5zZXRTaXplKHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZnJhbWUuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLndpZHRoID0gd2lkdGg7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgUmVzaXplIHRoZSBmcmFtZVxyXG5cclxuICAgICAgICAgICAgdmFyIGJhc2VGcmFtZSA9IHRoaXMudGV4dHVyZS5nZXRTb3VyY2VJbWFnZSgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZnJhbWUuY3V0WCArIHdpZHRoID4gYmFzZUZyYW1lLndpZHRoKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB3aWR0aCA9IGJhc2VGcmFtZS53aWR0aCAtIHRoaXMuZnJhbWUuY3V0WDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZnJhbWUuY3V0WSArIGhlaWdodCA+IGJhc2VGcmFtZS5oZWlnaHQpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IGJhc2VGcmFtZS5oZWlnaHQgLSB0aGlzLmZyYW1lLmN1dFk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZnJhbWUuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0LCB0aGlzLmZyYW1lLmN1dFgsIHRoaXMuZnJhbWUuY3V0WSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlPcmlnaW4oKTtcclxuXHJcbiAgICAgICAgdmFyIGlucHV0ID0gdGhpcy5pbnB1dDtcclxuXHJcbiAgICAgICAgaWYgKGlucHV0ICYmICFpbnB1dC5jdXN0b21IaXRBcmVhKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaW5wdXQuaGl0QXJlYS53aWR0aCA9IHdpZHRoO1xyXG4gICAgICAgICAgICBpbnB1dC5oaXRBcmVhLmhlaWdodCA9IGhlaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgdGludCB0byB1c2Ugd2hlbiByZW5kZXJpbmcgdGhpcyBSZW5kZXIgVGV4dHVyZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI3NldEdsb2JhbFRpbnRcclxuICAgICAqIEBzaW5jZSAzLjIuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gdGludCAtIFRoZSB0aW50IHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUmVuZGVyIFRleHR1cmUuXHJcbiAgICAgKi9cclxuICAgIHNldEdsb2JhbFRpbnQ6IGZ1bmN0aW9uICh0aW50KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZ2xvYmFsVGludCA9IHRpbnQ7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgYWxwaGEgdG8gdXNlIHdoZW4gcmVuZGVyaW5nIHRoaXMgUmVuZGVyIFRleHR1cmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUmVuZGVyVGV4dHVyZSNzZXRHbG9iYWxBbHBoYVxyXG4gICAgICogQHNpbmNlIDMuMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGFscGhhIC0gVGhlIGFscGhhIHZhbHVlLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUmVuZGVyIFRleHR1cmUuXHJcbiAgICAgKi9cclxuICAgIHNldEdsb2JhbEFscGhhOiBmdW5jdGlvbiAoYWxwaGEpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5nbG9iYWxBbHBoYSA9IGFscGhhO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9yZXMgYSBjb3B5IG9mIHRoaXMgUmVuZGVyIFRleHR1cmUgaW4gdGhlIFRleHR1cmUgTWFuYWdlciB1c2luZyB0aGUgZ2l2ZW4ga2V5LlxyXG4gICAgICogXHJcbiAgICAgKiBBZnRlciBkb2luZyB0aGlzLCBhbnkgdGV4dHVyZSBiYXNlZCBHYW1lIE9iamVjdCwgc3VjaCBhcyBhIFNwcml0ZSwgY2FuIHVzZSB0aGUgY29udGVudHMgb2YgdGhpc1xyXG4gICAgICogUmVuZGVyIFRleHR1cmUgYnkgdXNpbmcgdGhlIHRleHR1cmUga2V5OlxyXG4gICAgICogXHJcbiAgICAgKiBgYGBqYXZhc2NyaXB0XHJcbiAgICAgKiB2YXIgcnQgPSB0aGlzLmFkZC5yZW5kZXJUZXh0dXJlKDAsIDAsIDEyOCwgMTI4KTtcclxuICAgICAqIFxyXG4gICAgICogLy8gRHJhdyBzb21ldGhpbmcgdG8gdGhlIFJlbmRlciBUZXh0dXJlXHJcbiAgICAgKiBcclxuICAgICAqIHJ0LnNhdmVUZXh0dXJlKCdkb29kbGUnKTtcclxuICAgICAqIFxyXG4gICAgICogdGhpcy5hZGQuaW1hZ2UoNDAwLCAzMDAsICdkb29kbGUnKTtcclxuICAgICAqIGBgYFxyXG4gICAgICogXHJcbiAgICAgKiBVcGRhdGluZyB0aGUgY29udGVudHMgb2YgdGhpcyBSZW5kZXIgVGV4dHVyZSB3aWxsIGF1dG9tYXRpY2FsbHkgdXBkYXRlIF9hbnlfIEdhbWUgT2JqZWN0XHJcbiAgICAgKiB0aGF0IGlzIHVzaW5nIGl0IGFzIGEgdGV4dHVyZS4gQ2FsbGluZyBgc2F2ZVRleHR1cmVgIGFnYWluIHdpbGwgbm90IHNhdmUgYW5vdGhlciBjb3B5XHJcbiAgICAgKiBvZiB0aGUgc2FtZSB0ZXh0dXJlLCBpdCB3aWxsIGp1c3QgcmVuYW1lIHRoZSBrZXkgb2YgdGhlIGV4aXN0aW5nIGNvcHkuXHJcbiAgICAgKiBcclxuICAgICAqIEJ5IGRlZmF1bHQgaXQgd2lsbCBjcmVhdGUgYSBzaW5nbGUgYmFzZSB0ZXh0dXJlLiBZb3UgY2FuIGFkZCBmcmFtZXMgdG8gdGhlIHRleHR1cmVcclxuICAgICAqIGJ5IHVzaW5nIHRoZSBgVGV4dHVyZS5hZGRgIG1ldGhvZC4gQWZ0ZXIgZG9pbmcgdGhpcywgeW91IGNhbiB0aGVuIGFsbG93IEdhbWUgT2JqZWN0c1xyXG4gICAgICogdG8gdXNlIGEgc3BlY2lmaWMgZnJhbWUgZnJvbSBhIFJlbmRlciBUZXh0dXJlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjc2F2ZVRleHR1cmVcclxuICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHVuaXF1ZSBrZXkgdG8gc3RvcmUgdGhlIHRleHR1cmUgYXMgd2l0aGluIHRoZSBnbG9iYWwgVGV4dHVyZSBNYW5hZ2VyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge1BoYXNlci5UZXh0dXJlcy5UZXh0dXJlfSBUaGUgVGV4dHVyZSB0aGF0IHdhcyBzYXZlZC5cclxuICAgICAqL1xyXG4gICAgc2F2ZVRleHR1cmU6IGZ1bmN0aW9uIChrZXkpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy50ZXh0dXJlTWFuYWdlci5yZW5hbWVUZXh0dXJlKHRoaXMudGV4dHVyZS5rZXksIGtleSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5fc2F2ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy50ZXh0dXJlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbGxzIHRoZSBSZW5kZXIgVGV4dHVyZSB3aXRoIHRoZSBnaXZlbiBjb2xvci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI2ZpbGxcclxuICAgICAqIEBzaW5jZSAzLjIuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByZ2IgLSBUaGUgY29sb3IgdG8gZmlsbCB0aGUgUmVuZGVyIFRleHR1cmUgd2l0aC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYWxwaGE9MV0gLSBUaGUgYWxwaGEgdmFsdWUgdXNlZCBieSB0aGUgZmlsbC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeD0wXSAtIFRoZSBsZWZ0IGNvb3JkaW5hdGUgb2YgdGhlIGZpbGwgcmVjdGFuZ2xlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5PTBdIC0gVGhlIHRvcCBjb29yZGluYXRlIG9mIHRoZSBmaWxsIHJlY3RhbmdsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbd2lkdGg9dGhpcy5mcmFtZS5jdXRXaWR0aF0gLSBUaGUgd2lkdGggb2YgdGhlIGZpbGwgcmVjdGFuZ2xlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtoZWlnaHQ9dGhpcy5mcmFtZS5jdXRIZWlnaHRdIC0gVGhlIGhlaWdodCBvZiB0aGUgZmlsbCByZWN0YW5nbGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBSZW5kZXIgVGV4dHVyZSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgZmlsbDogZnVuY3Rpb24gKHJnYiwgYWxwaGEsIHgsIHksIHdpZHRoLCBoZWlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGFscGhhID09PSB1bmRlZmluZWQpIHsgYWxwaGEgPSAxOyB9XHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZCkgeyB4ID0gMDsgfVxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IDA7IH1cclxuICAgICAgICBpZiAod2lkdGggPT09IHVuZGVmaW5lZCkgeyB3aWR0aCA9IHRoaXMuZnJhbWUuY3V0V2lkdGg7IH1cclxuICAgICAgICBpZiAoaGVpZ2h0ID09PSB1bmRlZmluZWQpIHsgaGVpZ2h0ID0gdGhpcy5mcmFtZS5jdXRIZWlnaHQ7IH1cclxuXHJcbiAgICAgICAgdmFyIHIgPSAoKHJnYiA+PiAxNikgfCAwKSAmIDB4ZmY7XHJcbiAgICAgICAgdmFyIGcgPSAoKHJnYiA+PiA4KSB8IDApICYgMHhmZjtcclxuICAgICAgICB2YXIgYiA9IChyZ2IgfCAwKSAmIDB4ZmY7XHJcblxyXG4gICAgICAgIHZhciBnbCA9IHRoaXMuZ2w7XHJcbiAgICAgICAgdmFyIGZyYW1lID0gdGhpcy5mcmFtZTtcclxuXHJcbiAgICAgICAgdGhpcy5jYW1lcmEucHJlUmVuZGVyKDEsIDEpO1xyXG5cclxuICAgICAgICBpZiAoZ2wpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgY3ggPSB0aGlzLmNhbWVyYS5fY3g7XHJcbiAgICAgICAgICAgIHZhciBjeSA9IHRoaXMuY2FtZXJhLl9jeTtcclxuICAgICAgICAgICAgdmFyIGN3ID0gdGhpcy5jYW1lcmEuX2N3O1xyXG4gICAgICAgICAgICB2YXIgY2ggPSB0aGlzLmNhbWVyYS5fY2g7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEZyYW1lYnVmZmVyKHRoaXMuZnJhbWVidWZmZXIsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucHVzaFNjaXNzb3IoY3gsIGN5LCBjdywgY2gsIGNoKTtcclxuXHJcbiAgICAgICAgICAgIHZhciBwaXBlbGluZSA9IHRoaXMucGlwZWxpbmU7XHJcbiAgICBcclxuICAgICAgICAgICAgcGlwZWxpbmUucHJvak9ydGhvKDAsIHRoaXMudGV4dHVyZS53aWR0aCwgMCwgdGhpcy50ZXh0dXJlLmhlaWdodCwgLTEwMDAuMCwgMTAwMC4wKTtcclxuXHJcbiAgICAgICAgICAgIHBpcGVsaW5lLmRyYXdGaWxsUmVjdChcclxuICAgICAgICAgICAgICAgIHgsIHksIHdpZHRoLCBoZWlnaHQsXHJcbiAgICAgICAgICAgICAgICBVdGlscy5nZXRUaW50RnJvbUZsb2F0cyhyIC8gMjU1LCBnIC8gMjU1LCBiIC8gMjU1LCAxKSxcclxuICAgICAgICAgICAgICAgIGFscGhhXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEZyYW1lYnVmZmVyKG51bGwsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucG9wU2Npc3NvcigpO1xyXG5cclxuICAgICAgICAgICAgcGlwZWxpbmUucHJvak9ydGhvKDAsIHBpcGVsaW5lLndpZHRoLCBwaXBlbGluZS5oZWlnaHQsIDAsIC0xMDAwLjAsIDEwMDAuMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0Q29udGV4dCh0aGlzLmNvbnRleHQpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKCcgKyByICsgJywnICsgZyArICcsJyArIGIgKyAnLCcgKyBhbHBoYSArICcpJztcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpbGxSZWN0KHggKyBmcmFtZS5jdXRYLCB5ICsgZnJhbWUuY3V0WSwgd2lkdGgsIGhlaWdodCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldENvbnRleHQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbGVhcnMgdGhlIFJlbmRlciBUZXh0dXJlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjY2xlYXJcclxuICAgICAqIEBzaW5jZSAzLjIuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgUmVuZGVyIFRleHR1cmUgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIGNsZWFyOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLmRpcnR5KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGdsID0gdGhpcy5nbDtcclxuXHJcbiAgICAgICAgICAgIGlmIChnbClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFyIHJlbmRlcmVyID0gdGhpcy5yZW5kZXJlcjtcclxuXHJcbiAgICAgICAgICAgICAgICByZW5kZXJlci5zZXRGcmFtZWJ1ZmZlcih0aGlzLmZyYW1lYnVmZmVyLCB0cnVlKTtcclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZyYW1lLmN1dFdpZHRoICE9PSB0aGlzLmNhbnZhcy53aWR0aCB8fCB0aGlzLmZyYW1lLmN1dEhlaWdodCAhPT0gdGhpcy5jYW52YXMuaGVpZ2h0KVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGdsLnNjaXNzb3IodGhpcy5mcmFtZS5jdXRYLCB0aGlzLmZyYW1lLmN1dFksIHRoaXMuZnJhbWUuY3V0V2lkdGgsIHRoaXMuZnJhbWUuY3V0SGVpZ2h0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBnbC5jbGVhckNvbG9yKDAsIDAsIDAsIDApO1xyXG4gICAgICAgICAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0RnJhbWVidWZmZXIobnVsbCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YXIgY3R4ID0gdGhpcy5jb250ZXh0O1xyXG5cclxuICAgICAgICAgICAgICAgIGN0eC5zYXZlKCk7XHJcbiAgICAgICAgICAgICAgICBjdHguc2V0VHJhbnNmb3JtKDEsIDAsIDAsIDEsIDAsIDApO1xyXG4gICAgICAgICAgICAgICAgY3R4LmNsZWFyUmVjdCh0aGlzLmZyYW1lLmN1dFgsIHRoaXMuZnJhbWUuY3V0WSwgdGhpcy5mcmFtZS5jdXRXaWR0aCwgdGhpcy5mcmFtZS5jdXRIZWlnaHQpO1xyXG4gICAgICAgICAgICAgICAgY3R4LnJlc3RvcmUoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRHJhd3MgdGhlIGdpdmVuIG9iamVjdCwgb3IgYW4gYXJyYXkgb2Ygb2JqZWN0cywgdG8gdGhpcyBSZW5kZXIgVGV4dHVyZSB1c2luZyBhIGJsZW5kIG1vZGUgb2YgRVJBU0UuXHJcbiAgICAgKiBUaGlzIGhhcyB0aGUgZWZmZWN0IG9mIGVyYXNpbmcgYW55IGZpbGxlZCBwaXhlbHMgaW4gdGhlIG9iamVjdHMgZnJvbSB0aGlzIFJlbmRlciBUZXh0dXJlLlxyXG4gICAgICogXHJcbiAgICAgKiBJdCBjYW4gYWNjZXB0IGFueSBvZiB0aGUgZm9sbG93aW5nOlxyXG4gICAgICogXHJcbiAgICAgKiAqIEFueSByZW5kZXJhYmxlIEdhbWUgT2JqZWN0LCBzdWNoIGFzIGEgU3ByaXRlLCBUZXh0LCBHcmFwaGljcyBvciBUaWxlU3ByaXRlLlxyXG4gICAgICogKiBEeW5hbWljIGFuZCBTdGF0aWMgVGlsZW1hcCBMYXllcnMuXHJcbiAgICAgKiAqIEEgR3JvdXAuIFRoZSBjb250ZW50cyBvZiB3aGljaCB3aWxsIGJlIGl0ZXJhdGVkIGFuZCBkcmF3biBpbiB0dXJuLlxyXG4gICAgICogKiBBIENvbnRhaW5lci4gVGhlIGNvbnRlbnRzIG9mIHdoaWNoIHdpbGwgYmUgaXRlcmF0ZWQgZnVsbHksIGFuZCBkcmF3biBpbiB0dXJuLlxyXG4gICAgICogKiBBIFNjZW5lJ3MgRGlzcGxheSBMaXN0LiBQYXNzIGluIGBTY2VuZS5jaGlsZHJlbmAgdG8gZHJhdyB0aGUgd2hvbGUgbGlzdC5cclxuICAgICAqICogQW5vdGhlciBSZW5kZXIgVGV4dHVyZS5cclxuICAgICAqICogQSBUZXh0dXJlIEZyYW1lIGluc3RhbmNlLlxyXG4gICAgICogKiBBIHN0cmluZy4gVGhpcyBpcyB1c2VkIHRvIGxvb2stdXAgYSB0ZXh0dXJlIGZyb20gdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICAgICAqIFxyXG4gICAgICogTm90ZTogWW91IGNhbm5vdCBlcmFzZSBhIFJlbmRlciBUZXh0dXJlIGZyb20gaXRzZWxmLlxyXG4gICAgICogXHJcbiAgICAgKiBJZiBwYXNzaW5nIGluIGEgR3JvdXAgb3IgQ29udGFpbmVyIGl0IHdpbGwgb25seSBkcmF3IGNoaWxkcmVuIHRoYXQgcmV0dXJuIGB0cnVlYFxyXG4gICAgICogd2hlbiB0aGVpciBgd2lsbFJlbmRlcigpYCBtZXRob2QgaXMgY2FsbGVkLiBJLmUuIGEgQ29udGFpbmVyIHdpdGggMTAgY2hpbGRyZW4sXHJcbiAgICAgKiA1IG9mIHdoaWNoIGhhdmUgYHZpc2libGU9ZmFsc2VgIHdpbGwgb25seSBkcmF3IHRoZSA1IHZpc2libGUgb25lcy5cclxuICAgICAqIFxyXG4gICAgICogSWYgcGFzc2luZyBpbiBhbiBhcnJheSBvZiBHYW1lIE9iamVjdHMgaXQgd2lsbCBkcmF3IHRoZW0gYWxsLCByZWdhcmRsZXNzIGlmXHJcbiAgICAgKiB0aGV5IHBhc3MgYSBgd2lsbFJlbmRlcmAgY2hlY2sgb3Igbm90LlxyXG4gICAgICogXHJcbiAgICAgKiBZb3UgY2FuIHBhc3MgaW4gYSBzdHJpbmcgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIGxvb2sgZm9yIGEgdGV4dHVyZSBpbiB0aGUgVGV4dHVyZVxyXG4gICAgICogTWFuYWdlciBtYXRjaGluZyB0aGF0IHN0cmluZywgYW5kIGRyYXcgdGhlIGJhc2UgZnJhbWUuXHJcbiAgICAgKiBcclxuICAgICAqIFlvdSBjYW4gcGFzcyBpbiB0aGUgYHhgIGFuZCBgeWAgY29vcmRpbmF0ZXMgdG8gZHJhdyB0aGUgb2JqZWN0cyBhdC4gVGhlIHVzZSBvZlxyXG4gICAgICogdGhlIGNvb3JkaW5hdGVzIGRpZmZlciBiYXNlZCBvbiB3aGF0IG9iamVjdHMgYXJlIGJlaW5nIGRyYXduLiBJZiB0aGUgb2JqZWN0IGlzXHJcbiAgICAgKiBhIEdyb3VwLCBDb250YWluZXIgb3IgRGlzcGxheSBMaXN0LCB0aGUgY29vcmRpbmF0ZXMgYXJlIF9hZGRlZF8gdG8gdGhlIHBvc2l0aW9uc1xyXG4gICAgICogb2YgdGhlIGNoaWxkcmVuLiBGb3IgYWxsIG90aGVyIHR5cGVzIG9mIG9iamVjdCwgdGhlIGNvb3JkaW5hdGVzIGFyZSBleGFjdC5cclxuICAgICAqIFxyXG4gICAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCBjYXVzZXMgdGhlIFdlYkdMIGJhdGNoIHRvIGZsdXNoLCBzbyBpdCBjYW4gd3JpdGUgdGhlIHRleHR1cmVcclxuICAgICAqIGRhdGEgdG8gdGhlIGZyYW1lYnVmZmVyIGJlaW5nIHVzZWQgaW50ZXJuYWxseS4gVGhlIGJhdGNoIGlzIGZsdXNoZWQgYXQgdGhlIGVuZCxcclxuICAgICAqIGFmdGVyIHRoZSBlbnRyaWVzIGhhdmUgYmVlbiBpdGVyYXRlZC4gU28gaWYgeW91J3ZlIGEgYnVuY2ggb2Ygb2JqZWN0cyB0byBkcmF3LFxyXG4gICAgICogdHJ5IGFuZCBwYXNzIHRoZW0gaW4gYW4gYXJyYXkgaW4gb25lIHNpbmdsZSBjYWxsLCByYXRoZXIgdGhhbiBtYWtpbmcgbG90cyBvZlxyXG4gICAgICogc2VwYXJhdGUgY2FsbHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUmVuZGVyVGV4dHVyZSNlcmFzZVxyXG4gICAgICogQHNpbmNlIDMuMTYuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7YW55fSBlbnRyaWVzIC0gQW55IHJlbmRlcmFibGUgR2FtZSBPYmplY3QsIG9yIEdyb3VwLCBDb250YWluZXIsIERpc3BsYXkgTGlzdCwgb3RoZXIgUmVuZGVyIFRleHR1cmUsIFRleHR1cmUgRnJhbWUgb3IgYW4gYXJyYXkgb2YgYW55IG9mIHRoZXNlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4XSAtIFRoZSB4IHBvc2l0aW9uIHRvIGRyYXcgdGhlIEZyYW1lIGF0LCBvciB0aGUgb2Zmc2V0IGFwcGxpZWQgdG8gdGhlIG9iamVjdC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeV0gLSBUaGUgeSBwb3NpdGlvbiB0byBkcmF3IHRoZSBGcmFtZSBhdCwgb3IgdGhlIG9mZnNldCBhcHBsaWVkIHRvIHRoZSBvYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBSZW5kZXIgVGV4dHVyZSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgZXJhc2U6IGZ1bmN0aW9uIChlbnRyaWVzLCB4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2VyYXNlTW9kZSA9IHRydWU7XHJcblxyXG4gICAgICAgIHZhciBibGVuZE1vZGUgPSB0aGlzLnJlbmRlcmVyLmN1cnJlbnRCbGVuZE1vZGU7XHJcblxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QmxlbmRNb2RlKEJsZW5kTW9kZXMuRVJBU0UpO1xyXG5cclxuICAgICAgICB0aGlzLmRyYXcoZW50cmllcywgeCwgeSwgMSwgMTY3NzcyMTUpO1xyXG5cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEJsZW5kTW9kZShibGVuZE1vZGUpO1xyXG5cclxuICAgICAgICB0aGlzLl9lcmFzZU1vZGUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRHJhd3MgdGhlIGdpdmVuIG9iamVjdCwgb3IgYW4gYXJyYXkgb2Ygb2JqZWN0cywgdG8gdGhpcyBSZW5kZXIgVGV4dHVyZS5cclxuICAgICAqIFxyXG4gICAgICogSXQgY2FuIGFjY2VwdCBhbnkgb2YgdGhlIGZvbGxvd2luZzpcclxuICAgICAqIFxyXG4gICAgICogKiBBbnkgcmVuZGVyYWJsZSBHYW1lIE9iamVjdCwgc3VjaCBhcyBhIFNwcml0ZSwgVGV4dCwgR3JhcGhpY3Mgb3IgVGlsZVNwcml0ZS5cclxuICAgICAqICogRHluYW1pYyBhbmQgU3RhdGljIFRpbGVtYXAgTGF5ZXJzLlxyXG4gICAgICogKiBBIEdyb3VwLiBUaGUgY29udGVudHMgb2Ygd2hpY2ggd2lsbCBiZSBpdGVyYXRlZCBhbmQgZHJhd24gaW4gdHVybi5cclxuICAgICAqICogQSBDb250YWluZXIuIFRoZSBjb250ZW50cyBvZiB3aGljaCB3aWxsIGJlIGl0ZXJhdGVkIGZ1bGx5LCBhbmQgZHJhd24gaW4gdHVybi5cclxuICAgICAqICogQSBTY2VuZSdzIERpc3BsYXkgTGlzdC4gUGFzcyBpbiBgU2NlbmUuY2hpbGRyZW5gIHRvIGRyYXcgdGhlIHdob2xlIGxpc3QuXHJcbiAgICAgKiAqIEFub3RoZXIgUmVuZGVyIFRleHR1cmUuXHJcbiAgICAgKiAqIEEgVGV4dHVyZSBGcmFtZSBpbnN0YW5jZS5cclxuICAgICAqICogQSBzdHJpbmcuIFRoaXMgaXMgdXNlZCB0byBsb29rLXVwIGEgdGV4dHVyZSBmcm9tIHRoZSBUZXh0dXJlIE1hbmFnZXIuXHJcbiAgICAgKiBcclxuICAgICAqIE5vdGU6IFlvdSBjYW5ub3QgZHJhdyBhIFJlbmRlciBUZXh0dXJlIHRvIGl0c2VsZi5cclxuICAgICAqIFxyXG4gICAgICogSWYgcGFzc2luZyBpbiBhIEdyb3VwIG9yIENvbnRhaW5lciBpdCB3aWxsIG9ubHkgZHJhdyBjaGlsZHJlbiB0aGF0IHJldHVybiBgdHJ1ZWBcclxuICAgICAqIHdoZW4gdGhlaXIgYHdpbGxSZW5kZXIoKWAgbWV0aG9kIGlzIGNhbGxlZC4gSS5lLiBhIENvbnRhaW5lciB3aXRoIDEwIGNoaWxkcmVuLFxyXG4gICAgICogNSBvZiB3aGljaCBoYXZlIGB2aXNpYmxlPWZhbHNlYCB3aWxsIG9ubHkgZHJhdyB0aGUgNSB2aXNpYmxlIG9uZXMuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHBhc3NpbmcgaW4gYW4gYXJyYXkgb2YgR2FtZSBPYmplY3RzIGl0IHdpbGwgZHJhdyB0aGVtIGFsbCwgcmVnYXJkbGVzcyBpZlxyXG4gICAgICogdGhleSBwYXNzIGEgYHdpbGxSZW5kZXJgIGNoZWNrIG9yIG5vdC5cclxuICAgICAqIFxyXG4gICAgICogWW91IGNhbiBwYXNzIGluIGEgc3RyaW5nIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBsb29rIGZvciBhIHRleHR1cmUgaW4gdGhlIFRleHR1cmVcclxuICAgICAqIE1hbmFnZXIgbWF0Y2hpbmcgdGhhdCBzdHJpbmcsIGFuZCBkcmF3IHRoZSBiYXNlIGZyYW1lLiBJZiB5b3UgbmVlZCB0byBzcGVjaWZ5XHJcbiAgICAgKiBleGFjdGx5IHdoaWNoIGZyYW1lIHRvIGRyYXcgdGhlbiB1c2UgdGhlIG1ldGhvZCBgZHJhd0ZyYW1lYCBpbnN0ZWFkLlxyXG4gICAgICogXHJcbiAgICAgKiBZb3UgY2FuIHBhc3MgaW4gdGhlIGB4YCBhbmQgYHlgIGNvb3JkaW5hdGVzIHRvIGRyYXcgdGhlIG9iamVjdHMgYXQuIFRoZSB1c2Ugb2ZcclxuICAgICAqIHRoZSBjb29yZGluYXRlcyBkaWZmZXIgYmFzZWQgb24gd2hhdCBvYmplY3RzIGFyZSBiZWluZyBkcmF3bi4gSWYgdGhlIG9iamVjdCBpc1xyXG4gICAgICogYSBHcm91cCwgQ29udGFpbmVyIG9yIERpc3BsYXkgTGlzdCwgdGhlIGNvb3JkaW5hdGVzIGFyZSBfYWRkZWRfIHRvIHRoZSBwb3NpdGlvbnNcclxuICAgICAqIG9mIHRoZSBjaGlsZHJlbi4gRm9yIGFsbCBvdGhlciB0eXBlcyBvZiBvYmplY3QsIHRoZSBjb29yZGluYXRlcyBhcmUgZXhhY3QuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBgYWxwaGFgIGFuZCBgdGludGAgdmFsdWVzIGFyZSBvbmx5IHVzZWQgYnkgVGV4dHVyZSBGcmFtZXMuXHJcbiAgICAgKiBHYW1lIE9iamVjdHMgdXNlIHRoZWlyIG93biBhbHBoYSBhbmQgdGludCB2YWx1ZXMgd2hlbiBiZWluZyBkcmF3bi5cclxuICAgICAqIFxyXG4gICAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCBjYXVzZXMgdGhlIFdlYkdMIGJhdGNoIHRvIGZsdXNoLCBzbyBpdCBjYW4gd3JpdGUgdGhlIHRleHR1cmVcclxuICAgICAqIGRhdGEgdG8gdGhlIGZyYW1lYnVmZmVyIGJlaW5nIHVzZWQgaW50ZXJuYWxseS4gVGhlIGJhdGNoIGlzIGZsdXNoZWQgYXQgdGhlIGVuZCxcclxuICAgICAqIGFmdGVyIHRoZSBlbnRyaWVzIGhhdmUgYmVlbiBpdGVyYXRlZC4gU28gaWYgeW91J3ZlIGEgYnVuY2ggb2Ygb2JqZWN0cyB0byBkcmF3LFxyXG4gICAgICogdHJ5IGFuZCBwYXNzIHRoZW0gaW4gYW4gYXJyYXkgaW4gb25lIHNpbmdsZSBjYWxsLCByYXRoZXIgdGhhbiBtYWtpbmcgbG90cyBvZlxyXG4gICAgICogc2VwYXJhdGUgY2FsbHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUmVuZGVyVGV4dHVyZSNkcmF3XHJcbiAgICAgKiBAc2luY2UgMy4yLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gZW50cmllcyAtIEFueSByZW5kZXJhYmxlIEdhbWUgT2JqZWN0LCBvciBHcm91cCwgQ29udGFpbmVyLCBEaXNwbGF5IExpc3QsIG90aGVyIFJlbmRlciBUZXh0dXJlLCBUZXh0dXJlIEZyYW1lIG9yIGFuIGFycmF5IG9mIGFueSBvZiB0aGVzZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeF0gLSBUaGUgeCBwb3NpdGlvbiB0byBkcmF3IHRoZSBGcmFtZSBhdCwgb3IgdGhlIG9mZnNldCBhcHBsaWVkIHRvIHRoZSBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3ldIC0gVGhlIHkgcG9zaXRpb24gdG8gZHJhdyB0aGUgRnJhbWUgYXQsIG9yIHRoZSBvZmZzZXQgYXBwbGllZCB0byB0aGUgb2JqZWN0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthbHBoYV0gLSAgVGhlIGFscGhhIHZhbHVlLiBPbmx5IHVzZWQgZm9yIFRleHR1cmUgRnJhbWVzIGFuZCBpZiBub3Qgc3BlY2lmaWVkIGRlZmF1bHRzIHRvIHRoZSBgZ2xvYmFsQWxwaGFgIHByb3BlcnR5LiBHYW1lIE9iamVjdHMgdXNlIHRoZWlyIG93biBjdXJyZW50IGFscGhhIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt0aW50XSAtICBXZWJHTCBvbmx5LiBUaGUgdGludCBjb2xvciB2YWx1ZS4gT25seSB1c2VkIGZvciBUZXh0dXJlIEZyYW1lcyBhbmQgaWYgbm90IHNwZWNpZmllZCBkZWZhdWx0cyB0byB0aGUgYGdsb2JhbFRpbnRgIHByb3BlcnR5LiBHYW1lIE9iamVjdHMgdXNlIHRoZWlyIG93biBjdXJyZW50IHRpbnQgdmFsdWUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBSZW5kZXIgVGV4dHVyZSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgZHJhdzogZnVuY3Rpb24gKGVudHJpZXMsIHgsIHksIGFscGhhLCB0aW50KVxyXG4gICAge1xyXG4gICAgICAgIGlmIChhbHBoYSA9PT0gdW5kZWZpbmVkKSB7IGFscGhhID0gdGhpcy5nbG9iYWxBbHBoYTsgfVxyXG5cclxuICAgICAgICBpZiAodGludCA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGludCA9ICh0aGlzLmdsb2JhbFRpbnQgPj4gMTYpICsgKHRoaXMuZ2xvYmFsVGludCAmIDB4ZmYwMCkgKyAoKHRoaXMuZ2xvYmFsVGludCAmIDB4ZmYpIDw8IDE2KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGludCA9ICh0aW50ID4+IDE2KSArICh0aW50ICYgMHhmZjAwKSArICgodGludCAmIDB4ZmYpIDw8IDE2KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShlbnRyaWVzKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGVudHJpZXMgPSBbIGVudHJpZXMgXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBnbCA9IHRoaXMuZ2w7XHJcblxyXG4gICAgICAgIHRoaXMuY2FtZXJhLnByZVJlbmRlcigxLCAxKTtcclxuXHJcbiAgICAgICAgaWYgKGdsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGN4ID0gdGhpcy5jYW1lcmEuX2N4O1xyXG4gICAgICAgICAgICB2YXIgY3kgPSB0aGlzLmNhbWVyYS5fY3k7XHJcbiAgICAgICAgICAgIHZhciBjdyA9IHRoaXMuY2FtZXJhLl9jdztcclxuICAgICAgICAgICAgdmFyIGNoID0gdGhpcy5jYW1lcmEuX2NoO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRGcmFtZWJ1ZmZlcih0aGlzLmZyYW1lYnVmZmVyLCBmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnB1c2hTY2lzc29yKGN4LCBjeSwgY3csIGNoLCBjaCk7XHJcblxyXG4gICAgICAgICAgICB2YXIgcGlwZWxpbmUgPSB0aGlzLnBpcGVsaW5lO1xyXG4gICAgXHJcbiAgICAgICAgICAgIHBpcGVsaW5lLnByb2pPcnRobygwLCB0aGlzLnRleHR1cmUud2lkdGgsIDAsIHRoaXMudGV4dHVyZS5oZWlnaHQsIC0xMDAwLjAsIDEwMDAuMCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmJhdGNoTGlzdChlbnRyaWVzLCB4LCB5LCBhbHBoYSwgdGludCk7XHJcblxyXG4gICAgICAgICAgICBwaXBlbGluZS5mbHVzaCgpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRGcmFtZWJ1ZmZlcihudWxsLCBmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnBvcFNjaXNzb3IoKTtcclxuXHJcbiAgICAgICAgICAgIHBpcGVsaW5lLnByb2pPcnRobygwLCBwaXBlbGluZS53aWR0aCwgcGlwZWxpbmUuaGVpZ2h0LCAwLCAtMTAwMC4wLCAxMDAwLjApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldENvbnRleHQodGhpcy5jb250ZXh0KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuYmF0Y2hMaXN0KGVudHJpZXMsIHgsIHksIGFscGhhLCB0aW50KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0Q29udGV4dCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIERyYXdzIHRoZSBUZXh0dXJlIEZyYW1lIHRvIHRoZSBSZW5kZXIgVGV4dHVyZSBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24uXHJcbiAgICAgKiBcclxuICAgICAqIFRleHR1cmVzIGFyZSByZWZlcmVuY2VkIGJ5IHRoZWlyIHN0cmluZy1iYXNlZCBrZXlzLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogdmFyIHJ0ID0gdGhpcy5hZGQucmVuZGVyVGV4dHVyZSgwLCAwLCA4MDAsIDYwMCk7XHJcbiAgICAgKiBydC5kcmF3RnJhbWUoa2V5LCBmcmFtZSk7XHJcbiAgICAgKiBgYGBcclxuICAgICAqIFxyXG4gICAgICogWW91IGNhbiBvcHRpb25hbGx5IHByb3ZpZGUgYSBwb3NpdGlvbiwgYWxwaGEgYW5kIHRpbnQgdmFsdWUgdG8gYXBwbHkgdG8gdGhlIGZyYW1lXHJcbiAgICAgKiBiZWZvcmUgaXQgaXMgZHJhd24uXHJcbiAgICAgKiBcclxuICAgICAqIENhbGxpbmcgdGhpcyBtZXRob2Qgd2lsbCBjYXVzZSBhIGJhdGNoIGZsdXNoLCBzbyBpZiB5b3UndmUgZ290IGEgc3RhY2sgb2YgdGhpbmdzIHRvIGRyYXdcclxuICAgICAqIGluIGEgdGlnaHQgbG9vcCwgdHJ5IHVzaW5nIHRoZSBgZHJhd2AgbWV0aG9kIGluc3RlYWQuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHlvdSBuZWVkIHRvIGRyYXcgYSBTcHJpdGUgdG8gdGhpcyBSZW5kZXIgVGV4dHVyZSwgdXNlIHRoZSBgZHJhd2AgbWV0aG9kIGluc3RlYWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUmVuZGVyVGV4dHVyZSNkcmF3RnJhbWVcclxuICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSBvZiB0aGUgdGV4dHVyZSB0byBiZSB1c2VkLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICAgICAqIEBwYXJhbSB7KHN0cmluZ3xpbnRlZ2VyKX0gW2ZyYW1lXSAtIFRoZSBuYW1lIG9yIGluZGV4IG9mIHRoZSBmcmFtZSB3aXRoaW4gdGhlIFRleHR1cmUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3g9MF0gLSBUaGUgeCBwb3NpdGlvbiB0byBkcmF3IHRoZSBmcmFtZSBhdC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB5IHBvc2l0aW9uIHRvIGRyYXcgdGhlIGZyYW1lIGF0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthbHBoYV0gLSBUaGUgYWxwaGEgdG8gdXNlLiBJZiBub3Qgc3BlY2lmaWVkIGl0IHVzZXMgdGhlIGBnbG9iYWxBbHBoYWAgcHJvcGVydHkuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3RpbnRdIC0gV2ViR0wgb25seS4gVGhlIHRpbnQgY29sb3IgdG8gdXNlLiBJZiBub3Qgc3BlY2lmaWVkIGl0IHVzZXMgdGhlIGBnbG9iYWxUaW50YCBwcm9wZXJ0eS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFJlbmRlciBUZXh0dXJlIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBkcmF3RnJhbWU6IGZ1bmN0aW9uIChrZXksIGZyYW1lLCB4LCB5LCBhbHBoYSwgdGludClcclxuICAgIHtcclxuICAgICAgICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7IHggPSAwOyB9XHJcbiAgICAgICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgeyB5ID0gMDsgfVxyXG4gICAgICAgIGlmIChhbHBoYSA9PT0gdW5kZWZpbmVkKSB7IGFscGhhID0gdGhpcy5nbG9iYWxBbHBoYTsgfVxyXG5cclxuICAgICAgICBpZiAodGludCA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGludCA9ICh0aGlzLmdsb2JhbFRpbnQgPj4gMTYpICsgKHRoaXMuZ2xvYmFsVGludCAmIDB4ZmYwMCkgKyAoKHRoaXMuZ2xvYmFsVGludCAmIDB4ZmYpIDw8IDE2KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGludCA9ICh0aW50ID4+IDE2KSArICh0aW50ICYgMHhmZjAwKSArICgodGludCAmIDB4ZmYpIDw8IDE2KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBnbCA9IHRoaXMuZ2w7XHJcbiAgICAgICAgdmFyIHRleHR1cmVGcmFtZSA9IHRoaXMudGV4dHVyZU1hbmFnZXIuZ2V0RnJhbWUoa2V5LCBmcmFtZSk7XHJcblxyXG4gICAgICAgIGlmICh0ZXh0dXJlRnJhbWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmNhbWVyYS5wcmVSZW5kZXIoMSwgMSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoZ2wpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhciBjeCA9IHRoaXMuY2FtZXJhLl9jeDtcclxuICAgICAgICAgICAgICAgIHZhciBjeSA9IHRoaXMuY2FtZXJhLl9jeTtcclxuICAgICAgICAgICAgICAgIHZhciBjdyA9IHRoaXMuY2FtZXJhLl9jdztcclxuICAgICAgICAgICAgICAgIHZhciBjaCA9IHRoaXMuY2FtZXJhLl9jaDtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRGcmFtZWJ1ZmZlcih0aGlzLmZyYW1lYnVmZmVyLCBmYWxzZSk7XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucHVzaFNjaXNzb3IoY3gsIGN5LCBjdywgY2gsIGNoKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgdmFyIHBpcGVsaW5lID0gdGhpcy5waXBlbGluZTtcclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgIHBpcGVsaW5lLnByb2pPcnRobygwLCB0aGlzLnRleHR1cmUud2lkdGgsIDAsIHRoaXMudGV4dHVyZS5oZWlnaHQsIC0xMDAwLjAsIDEwMDAuMCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBwaXBlbGluZS5iYXRjaFRleHR1cmVGcmFtZSh0ZXh0dXJlRnJhbWUsIHggKyB0aGlzLmZyYW1lLmN1dFgsIHkgKyB0aGlzLmZyYW1lLmN1dFksIHRpbnQsIGFscGhhLCB0aGlzLmNhbWVyYS5tYXRyaXgsIG51bGwpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHBpcGVsaW5lLmZsdXNoKCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEZyYW1lYnVmZmVyKG51bGwsIGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnBvcFNjaXNzb3IoKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICBwaXBlbGluZS5wcm9qT3J0aG8oMCwgcGlwZWxpbmUud2lkdGgsIHBpcGVsaW5lLmhlaWdodCwgMCwgLTEwMDAuMCwgMTAwMC4wKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmF0Y2hUZXh0dXJlRnJhbWUodGV4dHVyZUZyYW1lLCB4ICsgdGhpcy5mcmFtZS5jdXRYLCB5ICsgdGhpcy5mcmFtZS5jdXRZLCBhbHBoYSwgdGludCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgbWV0aG9kIHRoYXQgaGFuZGxlcyB0aGUgZHJhd2luZyBvZiBhbiBhcnJheSBvZiBjaGlsZHJlbi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI2JhdGNoTGlzdFxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2FycmF5fSBjaGlsZHJlbiAtIFRoZSBhcnJheSBvZiBHYW1lIE9iamVjdHMgdG8gZHJhdy5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeF0gLSBUaGUgeCBwb3NpdGlvbiB0byBvZmZzZXQgdGhlIEdhbWUgT2JqZWN0IGJ5LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5XSAtIFRoZSB5IHBvc2l0aW9uIHRvIG9mZnNldCB0aGUgR2FtZSBPYmplY3QgYnkuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FscGhhXSAtIFRoZSBhbHBoYSB0byB1c2UuIElmIG5vdCBzcGVjaWZpZWQgaXQgdXNlcyB0aGUgYGdsb2JhbEFscGhhYCBwcm9wZXJ0eS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbdGludF0gLSBUaGUgdGludCBjb2xvciB0byB1c2UuIElmIG5vdCBzcGVjaWZpZWQgaXQgdXNlcyB0aGUgYGdsb2JhbFRpbnRgIHByb3BlcnR5LlxyXG4gICAgICovXHJcbiAgICBiYXRjaExpc3Q6IGZ1bmN0aW9uIChjaGlsZHJlbiwgeCwgeSwgYWxwaGEsIHRpbnQpXHJcbiAgICB7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBlbnRyeSA9IGNoaWxkcmVuW2ldO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFlbnRyeSB8fCBlbnRyeSA9PT0gdGhpcylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChlbnRyeS5yZW5kZXJXZWJHTCB8fCBlbnRyeS5yZW5kZXJDYW52YXMpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIC8vICBHYW1lIE9iamVjdHNcclxuICAgICAgICAgICAgICAgIHRoaXMuZHJhd0dhbWVPYmplY3QoZW50cnksIHgsIHkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGVudHJ5LmlzUGFyZW50IHx8IGVudHJ5Lmxpc3QpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIC8vICBHcm91cHMgLyBEaXNwbGF5IExpc3RzXHJcbiAgICAgICAgICAgICAgICB0aGlzLmJhdGNoR3JvdXAoZW50cnkuZ2V0Q2hpbGRyZW4oKSwgeCwgeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIGVudHJ5ID09PSAnc3RyaW5nJylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy8gIFRleHR1cmUga2V5XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJhdGNoVGV4dHVyZUZyYW1lS2V5KGVudHJ5LCBudWxsLCB4LCB5LCBhbHBoYSwgdGludCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoZW50cnkgaW5zdGFuY2VvZiBGcmFtZSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy8gIFRleHR1cmUgRnJhbWUgaW5zdGFuY2VcclxuICAgICAgICAgICAgICAgIHRoaXMuYmF0Y2hUZXh0dXJlRnJhbWUoZW50cnksIHgsIHksIGFscGhhLCB0aW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGVudHJ5KSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgLy8gIEFub3RoZXIgQXJyYXlcclxuICAgICAgICAgICAgICAgIHRoaXMuYmF0Y2hMaXN0KGVudHJ5LCB4LCB5LCBhbHBoYSwgdGludCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgbWV0aG9kIHRoYXQgaGFuZGxlcyB0aGUgZHJhd2luZyBhIFBoYXNlciBHcm91cCBjb250ZW50cy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI2JhdGNoR3JvdXBcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHthcnJheX0gY2hpbGRyZW4gLSBUaGUgYXJyYXkgb2YgR2FtZSBPYmplY3RzIHRvIGRyYXcuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3g9MF0gLSBUaGUgeCBwb3NpdGlvbiB0byBvZmZzZXQgdGhlIEdhbWUgT2JqZWN0IGJ5LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5PTBdIC0gVGhlIHkgcG9zaXRpb24gdG8gb2Zmc2V0IHRoZSBHYW1lIE9iamVjdCBieS5cclxuICAgICAqL1xyXG4gICAgYmF0Y2hHcm91cDogZnVuY3Rpb24gKGNoaWxkcmVuLCB4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHsgeCA9IDA7IH1cclxuICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSAwOyB9XHJcblxyXG4gICAgICAgIHggKz0gdGhpcy5mcmFtZS5jdXRYO1xyXG4gICAgICAgIHkgKz0gdGhpcy5mcmFtZS5jdXRZO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGVudHJ5ID0gY2hpbGRyZW5baV07XHJcblxyXG4gICAgICAgICAgICBpZiAoZW50cnkud2lsbFJlbmRlcigpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdHggPSBlbnRyeS54ICsgeDtcclxuICAgICAgICAgICAgICAgIHZhciB0eSA9IGVudHJ5LnkgKyB5O1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZHJhd0dhbWVPYmplY3QoZW50cnksIHR4LCB0eSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgbWV0aG9kIHRoYXQgaGFuZGxlcyBkcmF3aW5nIGEgc2luZ2xlIFBoYXNlciBHYW1lIE9iamVjdCB0byB0aGlzIFJlbmRlciBUZXh0dXJlIHVzaW5nIFdlYkdMLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjYmF0Y2hHYW1lT2JqZWN0V2ViR0xcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0byBkcmF3LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4XSAtIFRoZSB4IHBvc2l0aW9uIHRvIGRyYXcgdGhlIEdhbWUgT2JqZWN0IGF0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5XSAtIFRoZSB5IHBvc2l0aW9uIHRvIGRyYXcgdGhlIEdhbWUgT2JqZWN0IGF0LlxyXG4gICAgICovXHJcbiAgICBiYXRjaEdhbWVPYmplY3RXZWJHTDogZnVuY3Rpb24gKGdhbWVPYmplY3QsIHgsIHkpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZCkgeyB4ID0gZ2FtZU9iamVjdC54OyB9XHJcbiAgICAgICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgeyB5ID0gZ2FtZU9iamVjdC55OyB9XHJcblxyXG4gICAgICAgIHZhciBwcmV2WCA9IGdhbWVPYmplY3QueDtcclxuICAgICAgICB2YXIgcHJldlkgPSBnYW1lT2JqZWN0Lnk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fZXJhc2VNb2RlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRCbGVuZE1vZGUoZ2FtZU9iamVjdC5ibGVuZE1vZGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2FtZU9iamVjdC5zZXRQb3NpdGlvbih4ICsgdGhpcy5mcmFtZS5jdXRYLCB5ICsgdGhpcy5mcmFtZS5jdXRZKTtcclxuICAgICAgICBcclxuICAgICAgICBnYW1lT2JqZWN0LnJlbmRlcldlYkdMKHRoaXMucmVuZGVyZXIsIGdhbWVPYmplY3QsIDAsIHRoaXMuY2FtZXJhLCBudWxsKTtcclxuXHJcbiAgICAgICAgZ2FtZU9iamVjdC5zZXRQb3NpdGlvbihwcmV2WCwgcHJldlkpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIG1ldGhvZCB0aGF0IGhhbmRsZXMgZHJhd2luZyBhIHNpbmdsZSBQaGFzZXIgR2FtZSBPYmplY3QgdG8gdGhpcyBSZW5kZXIgVGV4dHVyZSB1c2luZyBDYW52YXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUmVuZGVyVGV4dHVyZSNiYXRjaEdhbWVPYmplY3RDYW52YXNcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4xMi4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdH0gZ2FtZU9iamVjdCAtIFRoZSBHYW1lIE9iamVjdCB0byBkcmF3LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4XSAtIFRoZSB4IHBvc2l0aW9uIHRvIGRyYXcgdGhlIEdhbWUgT2JqZWN0IGF0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5XSAtIFRoZSB5IHBvc2l0aW9uIHRvIGRyYXcgdGhlIEdhbWUgT2JqZWN0IGF0LlxyXG4gICAgICovXHJcbiAgICBiYXRjaEdhbWVPYmplY3RDYW52YXM6IGZ1bmN0aW9uIChnYW1lT2JqZWN0LCB4LCB5KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHsgeCA9IGdhbWVPYmplY3QueDsgfVxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IGdhbWVPYmplY3QueTsgfVxyXG5cclxuICAgICAgICB2YXIgcHJldlggPSBnYW1lT2JqZWN0Lng7XHJcbiAgICAgICAgdmFyIHByZXZZID0gZ2FtZU9iamVjdC55O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fZXJhc2VNb2RlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGJsZW5kTW9kZSA9IGdhbWVPYmplY3QuYmxlbmRNb2RlO1xyXG5cclxuICAgICAgICAgICAgZ2FtZU9iamVjdC5ibGVuZE1vZGUgPSBCbGVuZE1vZGVzLkVSQVNFO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2FtZU9iamVjdC5zZXRQb3NpdGlvbih4ICsgdGhpcy5mcmFtZS5jdXRYLCB5ICsgdGhpcy5mcmFtZS5jdXRZKTtcclxuXHJcbiAgICAgICAgZ2FtZU9iamVjdC5yZW5kZXJDYW52YXModGhpcy5yZW5kZXJlciwgZ2FtZU9iamVjdCwgMCwgdGhpcy5jYW1lcmEsIG51bGwpO1xyXG5cclxuICAgICAgICBnYW1lT2JqZWN0LnNldFBvc2l0aW9uKHByZXZYLCBwcmV2WSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9lcmFzZU1vZGUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBnYW1lT2JqZWN0LmJsZW5kTW9kZSA9IGJsZW5kTW9kZTtcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgbWV0aG9kIHRoYXQgaGFuZGxlcyB0aGUgZHJhd2luZyBvZiBhbiBhcnJheSBvZiBjaGlsZHJlbi5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI2JhdGNoVGV4dHVyZUZyYW1lS2V5XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTIuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSB0ZXh0dXJlIHRvIGJlIHVzZWQsIGFzIHN0b3JlZCBpbiB0aGUgVGV4dHVyZSBNYW5hZ2VyLlxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBbZnJhbWVdIC0gVGhlIG5hbWUgb3IgaW5kZXggb2YgdGhlIGZyYW1lIHdpdGhpbiB0aGUgVGV4dHVyZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeD0wXSAtIFRoZSB4IHBvc2l0aW9uIHRvIG9mZnNldCB0aGUgR2FtZSBPYmplY3QgYnkuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3k9MF0gLSBUaGUgeSBwb3NpdGlvbiB0byBvZmZzZXQgdGhlIEdhbWUgT2JqZWN0IGJ5LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFthbHBoYV0gLSBUaGUgYWxwaGEgdG8gdXNlLiBJZiBub3Qgc3BlY2lmaWVkIGl0IHVzZXMgdGhlIGBnbG9iYWxBbHBoYWAgcHJvcGVydHkuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3RpbnRdIC0gVGhlIHRpbnQgY29sb3IgdG8gdXNlLiBJZiBub3Qgc3BlY2lmaWVkIGl0IHVzZXMgdGhlIGBnbG9iYWxUaW50YCBwcm9wZXJ0eS5cclxuICAgICAqL1xyXG4gICAgYmF0Y2hUZXh0dXJlRnJhbWVLZXk6IGZ1bmN0aW9uIChrZXksIGZyYW1lLCB4LCB5LCBhbHBoYSwgdGludClcclxuICAgIHtcclxuICAgICAgICB2YXIgdGV4dHVyZUZyYW1lID0gdGhpcy50ZXh0dXJlTWFuYWdlci5nZXRGcmFtZShrZXksIGZyYW1lKTtcclxuXHJcbiAgICAgICAgaWYgKHRleHR1cmVGcmFtZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuYmF0Y2hUZXh0dXJlRnJhbWUodGV4dHVyZUZyYW1lLCB4LCB5LCBhbHBoYSwgdGludCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIG1ldGhvZCB0aGF0IGhhbmRsZXMgdGhlIGRyYXdpbmcgb2YgYSBUZXh0dXJlIEZyYW1lIHRvIHRoaXMgUmVuZGVyIFRleHR1cmUuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUmVuZGVyVGV4dHVyZSNiYXRjaFRleHR1cmVGcmFtZVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjEyLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5UZXh0dXJlcy5GcmFtZX0gdGV4dHVyZUZyYW1lIC0gVGhlIFRleHR1cmUgRnJhbWUgdG8gZHJhdy5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeD0wXSAtIFRoZSB4IHBvc2l0aW9uIHRvIGRyYXcgdGhlIEZyYW1lIGF0LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt5PTBdIC0gVGhlIHkgcG9zaXRpb24gdG8gZHJhdyB0aGUgRnJhbWUgYXQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3RpbnRdIC0gQSB0aW50IGNvbG9yIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGZyYW1lIGRyYXduIHRvIHRoZSBSZW5kZXIgVGV4dHVyZS5cclxuICAgICAqL1xyXG4gICAgYmF0Y2hUZXh0dXJlRnJhbWU6IGZ1bmN0aW9uICh0ZXh0dXJlRnJhbWUsIHgsIHksIGFscGhhLCB0aW50KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHsgeCA9IDA7IH1cclxuICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSAwOyB9XHJcblxyXG4gICAgICAgIHggKz0gdGhpcy5mcmFtZS5jdXRYO1xyXG4gICAgICAgIHkgKz0gdGhpcy5mcmFtZS5jdXRZO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5nbClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucGlwZWxpbmUuYmF0Y2hUZXh0dXJlRnJhbWUodGV4dHVyZUZyYW1lLCB4LCB5LCB0aW50LCBhbHBoYSwgdGhpcy5jYW1lcmEubWF0cml4LCBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIGN0eCA9IHRoaXMuY29udGV4dDtcclxuICAgICAgICAgICAgdmFyIGNkID0gdGV4dHVyZUZyYW1lLmNhbnZhc0RhdGE7XHJcbiAgICAgICAgICAgIHZhciBzb3VyY2UgPSB0ZXh0dXJlRnJhbWUuc291cmNlLmltYWdlO1xyXG4gICAgXHJcbiAgICAgICAgICAgIHZhciBtYXRyaXggPSB0aGlzLmNhbWVyYS5tYXRyaXg7XHJcbiAgICBcclxuICAgICAgICAgICAgY3R4Lmdsb2JhbEFscGhhID0gdGhpcy5nbG9iYWxBbHBoYTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5zZXRUcmFuc2Zvcm0obWF0cml4WzBdLCBtYXRyaXhbMV0sIG1hdHJpeFsyXSwgbWF0cml4WzNdLCBtYXRyaXhbNF0sIG1hdHJpeFs1XSk7XHJcblxyXG4gICAgICAgICAgICBjdHguZHJhd0ltYWdlKHNvdXJjZSwgY2QueCwgY2QueSwgY2Qud2lkdGgsIGNkLmhlaWdodCwgeCwgeSwgY2Qud2lkdGgsIGNkLmhlaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRha2VzIGEgc25hcHNob3Qgb2YgdGhlIGdpdmVuIGFyZWEgb2YgdGhpcyBSZW5kZXIgVGV4dHVyZS5cclxuICAgICAqIFxyXG4gICAgICogVGhlIHNuYXBzaG90IGlzIHRha2VuIGltbWVkaWF0ZWx5LlxyXG4gICAgICogXHJcbiAgICAgKiBUbyBjYXB0dXJlIHRoZSB3aG9sZSBSZW5kZXIgVGV4dHVyZSBzZWUgdGhlIGBzbmFwc2hvdGAgbWV0aG9kLiBUbyBjYXB0dXJlIGEgc3BlY2lmaWMgcGl4ZWwsIHNlZSBgc25hcHNob3RQaXhlbGAuXHJcbiAgICAgKiBcclxuICAgICAqIFNuYXBzaG90cyB3b3JrIGJ5IHVzaW5nIHRoZSBXZWJHTCBgcmVhZFBpeGVsc2AgZmVhdHVyZSB0byBncmFiIGV2ZXJ5IHBpeGVsIGZyb20gdGhlIGZyYW1lIGJ1ZmZlciBpbnRvIGFuIEFycmF5QnVmZmVyVmlldy5cclxuICAgICAqIEl0IHRoZW4gcGFyc2VzIHRoaXMsIGNvcHlpbmcgdGhlIGNvbnRlbnRzIHRvIGEgdGVtcG9yYXJ5IENhbnZhcyBhbmQgZmluYWxseSBjcmVhdGluZyBhbiBJbWFnZSBvYmplY3QgZnJvbSBpdCxcclxuICAgICAqIHdoaWNoIGlzIHRoZSBpbWFnZSByZXR1cm5lZCB0byB0aGUgY2FsbGJhY2sgcHJvdmlkZWQuIEFsbCBpbiBhbGwsIHRoaXMgaXMgYSBjb21wdXRhdGlvbmFsbHkgZXhwZW5zaXZlIGFuZCBibG9ja2luZyBwcm9jZXNzLFxyXG4gICAgICogd2hpY2ggZ2V0cyBtb3JlIGV4cGVuc2l2ZSB0aGUgbGFyZ2VyIHRoZSBjYW52YXMgc2l6ZSBnZXRzLCBzbyBwbGVhc2UgYmUgY2FyZWZ1bCBob3cgeW91IGVtcGxveSB0aGlzIGluIHlvdXIgZ2FtZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI3NuYXBzaG90QXJlYVxyXG4gICAgICogQHNpbmNlIDMuMTkuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0geCAtIFRoZSB4IGNvb3JkaW5hdGUgdG8gZ3JhYiBmcm9tLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSB5IC0gVGhlIHkgY29vcmRpbmF0ZSB0byBncmFiIGZyb20uXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHdpZHRoIC0gVGhlIHdpZHRoIG9mIHRoZSBhcmVhIHRvIGdyYWIuXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IGhlaWdodCAtIFRoZSBoZWlnaHQgb2YgdGhlIGFyZWEgdG8gZ3JhYi5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLlJlbmRlcmVyLlNuYXBzaG90LlNuYXBzaG90Q2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIEZ1bmN0aW9uIHRvIGludm9rZSBhZnRlciB0aGUgc25hcHNob3QgaW1hZ2UgaXMgY3JlYXRlZC5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdHlwZT0naW1hZ2UvcG5nJ10gLSBUaGUgZm9ybWF0IG9mIHRoZSBpbWFnZSB0byBjcmVhdGUsIHVzdWFsbHkgYGltYWdlL3BuZ2Agb3IgYGltYWdlL2pwZWdgLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtlbmNvZGVyT3B0aW9ucz0wLjkyXSAtIFRoZSBpbWFnZSBxdWFsaXR5LCBiZXR3ZWVuIDAgYW5kIDEuIFVzZWQgZm9yIGltYWdlIGZvcm1hdHMgd2l0aCBsb3NzeSBjb21wcmVzc2lvbiwgc3VjaCBhcyBgaW1hZ2UvanBlZ2AuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBSZW5kZXIgVGV4dHVyZSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc25hcHNob3RBcmVhOiBmdW5jdGlvbiAoeCwgeSwgd2lkdGgsIGhlaWdodCwgY2FsbGJhY2ssIHR5cGUsIGVuY29kZXJPcHRpb25zKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLmdsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zbmFwc2hvdEZyYW1lYnVmZmVyKHRoaXMuZnJhbWVidWZmZXIsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCBjYWxsYmFjaywgZmFsc2UsIHgsIHksIHdpZHRoLCBoZWlnaHQsIHR5cGUsIGVuY29kZXJPcHRpb25zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zbmFwc2hvdENhbnZhcyh0aGlzLmNhbnZhcywgY2FsbGJhY2ssIGZhbHNlLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB0eXBlLCBlbmNvZGVyT3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUYWtlcyBhIHNuYXBzaG90IG9mIHRoZSB3aG9sZSBvZiB0aGlzIFJlbmRlciBUZXh0dXJlLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgc25hcHNob3QgaXMgdGFrZW4gaW1tZWRpYXRlbHkuXHJcbiAgICAgKiBcclxuICAgICAqIFRvIGNhcHR1cmUganVzdCBhIHBvcnRpb24gb2YgdGhlIFJlbmRlciBUZXh0dXJlIHNlZSB0aGUgYHNuYXBzaG90QXJlYWAgbWV0aG9kLiBUbyBjYXB0dXJlIGEgc3BlY2lmaWMgcGl4ZWwsIHNlZSBgc25hcHNob3RQaXhlbGAuXHJcbiAgICAgKiBcclxuICAgICAqIFNuYXBzaG90cyB3b3JrIGJ5IHVzaW5nIHRoZSBXZWJHTCBgcmVhZFBpeGVsc2AgZmVhdHVyZSB0byBncmFiIGV2ZXJ5IHBpeGVsIGZyb20gdGhlIGZyYW1lIGJ1ZmZlciBpbnRvIGFuIEFycmF5QnVmZmVyVmlldy5cclxuICAgICAqIEl0IHRoZW4gcGFyc2VzIHRoaXMsIGNvcHlpbmcgdGhlIGNvbnRlbnRzIHRvIGEgdGVtcG9yYXJ5IENhbnZhcyBhbmQgZmluYWxseSBjcmVhdGluZyBhbiBJbWFnZSBvYmplY3QgZnJvbSBpdCxcclxuICAgICAqIHdoaWNoIGlzIHRoZSBpbWFnZSByZXR1cm5lZCB0byB0aGUgY2FsbGJhY2sgcHJvdmlkZWQuIEFsbCBpbiBhbGwsIHRoaXMgaXMgYSBjb21wdXRhdGlvbmFsbHkgZXhwZW5zaXZlIGFuZCBibG9ja2luZyBwcm9jZXNzLFxyXG4gICAgICogd2hpY2ggZ2V0cyBtb3JlIGV4cGVuc2l2ZSB0aGUgbGFyZ2VyIHRoZSBjYW52YXMgc2l6ZSBnZXRzLCBzbyBwbGVhc2UgYmUgY2FyZWZ1bCBob3cgeW91IGVtcGxveSB0aGlzIGluIHlvdXIgZ2FtZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI3NuYXBzaG90XHJcbiAgICAgKiBAc2luY2UgMy4xOS4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtQaGFzZXIuVHlwZXMuUmVuZGVyZXIuU25hcHNob3QuU25hcHNob3RDYWxsYmFja30gY2FsbGJhY2sgLSBUaGUgRnVuY3Rpb24gdG8gaW52b2tlIGFmdGVyIHRoZSBzbmFwc2hvdCBpbWFnZSBpcyBjcmVhdGVkLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFt0eXBlPSdpbWFnZS9wbmcnXSAtIFRoZSBmb3JtYXQgb2YgdGhlIGltYWdlIHRvIGNyZWF0ZSwgdXN1YWxseSBgaW1hZ2UvcG5nYCBvciBgaW1hZ2UvanBlZ2AuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuY29kZXJPcHRpb25zPTAuOTJdIC0gVGhlIGltYWdlIHF1YWxpdHksIGJldHdlZW4gMCBhbmQgMS4gVXNlZCBmb3IgaW1hZ2UgZm9ybWF0cyB3aXRoIGxvc3N5IGNvbXByZXNzaW9uLCBzdWNoIGFzIGBpbWFnZS9qcGVnYC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFJlbmRlciBUZXh0dXJlIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzbmFwc2hvdDogZnVuY3Rpb24gKGNhbGxiYWNrLCB0eXBlLCBlbmNvZGVyT3B0aW9ucylcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5nbClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc25hcHNob3RGcmFtZWJ1ZmZlcih0aGlzLmZyYW1lYnVmZmVyLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCwgY2FsbGJhY2ssIGZhbHNlLCAwLCAwLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCwgdHlwZSwgZW5jb2Rlck9wdGlvbnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNuYXBzaG90Q2FudmFzKHRoaXMuY2FudmFzLCBjYWxsYmFjaywgZmFsc2UsIDAsIDAsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCB0eXBlLCBlbmNvZGVyT3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUYWtlcyBhIHNuYXBzaG90IG9mIHRoZSBnaXZlbiBwaXhlbCBmcm9tIHRoaXMgUmVuZGVyIFRleHR1cmUuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBzbmFwc2hvdCBpcyB0YWtlbiBpbW1lZGlhdGVseS5cclxuICAgICAqIFxyXG4gICAgICogVG8gY2FwdHVyZSB0aGUgd2hvbGUgUmVuZGVyIFRleHR1cmUgc2VlIHRoZSBgc25hcHNob3RgIG1ldGhvZC4gVG8gY2FwdHVyZSBhIHNwZWNpZmljIHBvcnRpb24sIHNlZSBgc25hcHNob3RBcmVhYC5cclxuICAgICAqIFxyXG4gICAgICogVW5saWtlIHRoZSBvdGhlciB0d28gc25hcHNob3QgbWV0aG9kcywgdGhpcyBvbmUgd2lsbCBzZW5kIHlvdXIgY2FsbGJhY2sgYSBgQ29sb3JgIG9iamVjdCBjb250YWluaW5nIHRoZSBjb2xvciBkYXRhIGZvclxyXG4gICAgICogdGhlIHJlcXVlc3RlZCBwaXhlbC4gSXQgZG9lc24ndCBuZWVkIHRvIGNyZWF0ZSBhbiBpbnRlcm5hbCBDYW52YXMgb3IgSW1hZ2Ugb2JqZWN0LCBzbyBpcyBhIGxvdCBmYXN0ZXIgdG8gZXhlY3V0ZSxcclxuICAgICAqIHVzaW5nIGxlc3MgbWVtb3J5LCB0aGFuIHRoZSBvdGhlciBzbmFwc2hvdCBtZXRob2RzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjc25hcHNob3RQaXhlbFxyXG4gICAgICogQHNpbmNlIDMuMTkuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0geCAtIFRoZSB4IGNvb3JkaW5hdGUgb2YgdGhlIHBpeGVsIHRvIGdldC5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0geSAtIFRoZSB5IGNvb3JkaW5hdGUgb2YgdGhlIHBpeGVsIHRvIGdldC5cclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLlR5cGVzLlJlbmRlcmVyLlNuYXBzaG90LlNuYXBzaG90Q2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIEZ1bmN0aW9uIHRvIGludm9rZSBhZnRlciB0aGUgc25hcHNob3QgcGl4ZWwgZGF0YSBpcyBleHRyYWN0ZWQuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBSZW5kZXIgVGV4dHVyZSBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc25hcHNob3RQaXhlbDogZnVuY3Rpb24gKHgsIHksIGNhbGxiYWNrKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0aGlzLmdsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zbmFwc2hvdEZyYW1lYnVmZmVyKHRoaXMuZnJhbWVidWZmZXIsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCBjYWxsYmFjaywgdHJ1ZSwgeCwgeSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc25hcHNob3RDYW52YXModGhpcy5jYW52YXMsIGNhbGxiYWNrLCB0cnVlLCB4LCB5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIGRlc3Ryb3kgaGFuZGxlciwgY2FsbGVkIGFzIHBhcnQgb2YgdGhlIGRlc3Ryb3kgcHJvY2Vzcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlI3ByZURlc3Ryb3lcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqIEBzaW5jZSAzLjkuMFxyXG4gICAgICovXHJcbiAgICBwcmVEZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdGhpcy5fc2F2ZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBDYW52YXNQb29sLnJlbW92ZSh0aGlzLmNhbnZhcyk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5nbClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5kZWxldGVGcmFtZWJ1ZmZlcih0aGlzLmZyYW1lYnVmZmVyKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy50ZXh0dXJlLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgdGhpcy5jYW1lcmEuZGVzdHJveSgpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jYW52YXMgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmZyYW1lYnVmZmVyID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy50ZXh0dXJlID0gbnVsbDtcclxuICAgICAgICAgICAgdGhpcy5nbFRleHR1cmUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBSZW5kZXJUZXh0dXJlO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgQ2FudmFzIFJlbmRlcmVyIHRvIHRoZSBnaXZlbiBDYW1lcmEuXHJcbiAqIFRoZSBvYmplY3Qgd2lsbCBub3QgcmVuZGVyIGlmIGFueSBvZiBpdHMgcmVuZGVyRmxhZ3MgYXJlIHNldCBvciBpdCBpcyBiZWluZyBhY3RpdmVseSBmaWx0ZXJlZCBvdXQgYnkgdGhlIENhbWVyYS5cclxuICogVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuIEl0IGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBvZiB0aGUgUmVuZGVyIG1vZHVsZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUmVuZGVyVGV4dHVyZSNyZW5kZXJDYW52YXNcclxuICogQHNpbmNlIDMuMi4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLkNhbnZhcy5DYW52YXNSZW5kZXJlcn0gcmVuZGVyZXIgLSBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBhY3RpdmUgQ2FudmFzIHJlbmRlcmVyLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlfSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgUmVuZGVyVGV4dHVyZUNhbnZhc1JlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgcmVuZGVyZXIuYmF0Y2hTcHJpdGUoc3JjLCBzcmMuZnJhbWUsIGNhbWVyYSwgcGFyZW50TWF0cml4KTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUmVuZGVyVGV4dHVyZUNhbnZhc1JlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBCdWlsZEdhbWVPYmplY3QgPSByZXF1aXJlKCcuLi9CdWlsZEdhbWVPYmplY3QnKTtcclxudmFyIEdhbWVPYmplY3RDcmVhdG9yID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdENyZWF0b3InKTtcclxudmFyIEdldEFkdmFuY2VkVmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0QWR2YW5jZWRWYWx1ZScpO1xyXG52YXIgUmVuZGVyVGV4dHVyZSA9IHJlcXVpcmUoJy4vUmVuZGVyVGV4dHVyZScpO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBuZXcgUmVuZGVyIFRleHR1cmUgR2FtZSBPYmplY3QgYW5kIHJldHVybnMgaXQuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIFJlbmRlciBUZXh0dXJlIEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Q3JlYXRvciNyZW5kZXJUZXh0dXJlXHJcbiAqIEBzaW5jZSAzLjIuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5HYW1lT2JqZWN0cy5SZW5kZXJUZXh0dXJlLlJlbmRlclRleHR1cmVDb25maWd9IGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIGNyZWF0ZSBpdHNlbGYuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FkZFRvU2NlbmVdIC0gQWRkIHRoaXMgR2FtZSBPYmplY3QgdG8gdGhlIFNjZW5lIGFmdGVyIGNyZWF0aW5nIGl0PyBJZiBzZXQgdGhpcyBhcmd1bWVudCBvdmVycmlkZXMgdGhlIGBhZGRgIHByb3BlcnR5IGluIHRoZSBjb25maWcgb2JqZWN0LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuUmVuZGVyVGV4dHVyZX0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0Q3JlYXRvci5yZWdpc3RlcigncmVuZGVyVGV4dHVyZScsIGZ1bmN0aW9uIChjb25maWcsIGFkZFRvU2NlbmUpXHJcbntcclxuICAgIGlmIChjb25maWcgPT09IHVuZGVmaW5lZCkgeyBjb25maWcgPSB7fTsgfVxyXG5cclxuICAgIHZhciB4ID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICd4JywgMCk7XHJcbiAgICB2YXIgeSA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAneScsIDApO1xyXG4gICAgdmFyIHdpZHRoID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICd3aWR0aCcsIDMyKTtcclxuICAgIHZhciBoZWlnaHQgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ2hlaWdodCcsIDMyKTtcclxuICAgIHZhciBrZXkgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ2tleScsIHVuZGVmaW5lZCk7XHJcbiAgICB2YXIgZnJhbWUgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ2ZyYW1lJywgdW5kZWZpbmVkKTtcclxuXHJcbiAgICB2YXIgcmVuZGVyVGV4dHVyZSA9IG5ldyBSZW5kZXJUZXh0dXJlKHRoaXMuc2NlbmUsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGtleSwgZnJhbWUpO1xyXG5cclxuICAgIGlmIChhZGRUb1NjZW5lICE9PSB1bmRlZmluZWQpXHJcbiAgICB7XHJcbiAgICAgICAgY29uZmlnLmFkZCA9IGFkZFRvU2NlbmU7XHJcbiAgICB9XHJcblxyXG4gICAgQnVpbGRHYW1lT2JqZWN0KHRoaXMuc2NlbmUsIHJlbmRlclRleHR1cmUsIGNvbmZpZyk7XHJcblxyXG4gICAgcmV0dXJuIHJlbmRlclRleHR1cmU7XHJcbn0pO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcbnZhciBSZW5kZXJUZXh0dXJlID0gcmVxdWlyZSgnLi9SZW5kZXJUZXh0dXJlJyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBSZW5kZXIgVGV4dHVyZSBHYW1lIE9iamVjdCBhbmQgYWRkcyBpdCB0byB0aGUgU2NlbmUuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIFJlbmRlciBUZXh0dXJlIEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKiBcclxuICogQSBSZW5kZXIgVGV4dHVyZSBpcyBhIHNwZWNpYWwgdGV4dHVyZSB0aGF0IGFsbG93cyBhbnkgbnVtYmVyIG9mIEdhbWUgT2JqZWN0cyB0byBiZSBkcmF3biB0byBpdC4gWW91IGNhbiB0YWtlIG1hbnkgY29tcGxleCBvYmplY3RzIGFuZFxyXG4gKiBkcmF3IHRoZW0gYWxsIHRvIHRoaXMgb25lIHRleHR1cmUsIHdoaWNoIGNhbiB0aGV5IGJlIHVzZWQgYXMgdGhlIHRleHR1cmUgZm9yIG90aGVyIEdhbWUgT2JqZWN0J3MuIEl0J3MgYSB3YXkgdG8gZ2VuZXJhdGUgZHluYW1pY1xyXG4gKiB0ZXh0dXJlcyBhdCBydW4tdGltZSB0aGF0IGFyZSBXZWJHTCBmcmllbmRseSBhbmQgZG9uJ3QgaW52b2tlIGV4cGVuc2l2ZSBHUFUgdXBsb2Fkcy5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjcmVuZGVyVGV4dHVyZVxyXG4gKiBAc2luY2UgMy4yLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW3dpZHRoPTMyXSAtIFRoZSB3aWR0aCBvZiB0aGUgUmVuZGVyIFRleHR1cmUuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2hlaWdodD0zMl0gLSBUaGUgaGVpZ2h0IG9mIHRoZSBSZW5kZXIgVGV4dHVyZS5cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtrZXldIC0gVGhlIHRleHR1cmUga2V5IHRvIG1ha2UgdGhlIFJlbmRlclRleHR1cmUgZnJvbS5cclxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtmcmFtZV0gLSB0aGUgZnJhbWUgdG8gbWFrZSB0aGUgUmVuZGVyVGV4dHVyZSBmcm9tLlxyXG4gKiBcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmV9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuR2FtZU9iamVjdEZhY3RvcnkucmVnaXN0ZXIoJ3JlbmRlclRleHR1cmUnLCBmdW5jdGlvbiAoeCwgeSwgd2lkdGgsIGhlaWdodCwga2V5LCBmcmFtZSlcclxue1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUxpc3QuYWRkKG5ldyBSZW5kZXJUZXh0dXJlKHRoaXMuc2NlbmUsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGtleSwgZnJhbWUpKTtcclxufSk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvTk9PUCcpO1xyXG52YXIgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvTk9PUCcpO1xyXG5cclxuaWYgKHR5cGVvZiBXRUJHTF9SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuL1JlbmRlclRleHR1cmVXZWJHTFJlbmRlcmVyJyk7XHJcbn1cclxuXHJcbmlmICh0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL1JlbmRlclRleHR1cmVDYW52YXNSZW5kZXJlcicpO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICByZW5kZXJXZWJHTDogcmVuZGVyV2ViR0wsXHJcbiAgICByZW5kZXJDYW52YXM6IHJlbmRlckNhbnZhc1xyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgVXRpbHMgPSByZXF1aXJlKCcuLi8uLi9yZW5kZXJlci93ZWJnbC9VdGlscycpO1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlcnMgdGhpcyBHYW1lIE9iamVjdCB3aXRoIHRoZSBXZWJHTCBSZW5kZXJlciB0byB0aGUgZ2l2ZW4gQ2FtZXJhLlxyXG4gKiBUaGUgb2JqZWN0IHdpbGwgbm90IHJlbmRlciBpZiBhbnkgb2YgaXRzIHJlbmRlckZsYWdzIGFyZSBzZXQgb3IgaXQgaXMgYmVpbmcgYWN0aXZlbHkgZmlsdGVyZWQgb3V0IGJ5IHRoZSBDYW1lcmEuXHJcbiAqIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBJdCBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gb2YgdGhlIFJlbmRlciBtb2R1bGUuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlJlbmRlclRleHR1cmUjcmVuZGVyV2ViR0xcclxuICogQHNpbmNlIDMuMi4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLldlYkdMLldlYkdMUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIENhbnZhcyByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUmVuZGVyVGV4dHVyZX0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIFJlbmRlclRleHR1cmVXZWJHTFJlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgdmFyIGZyYW1lID0gc3JjLmZyYW1lO1xyXG4gICAgdmFyIHdpZHRoID0gZnJhbWUud2lkdGg7XHJcbiAgICB2YXIgaGVpZ2h0ID0gZnJhbWUuaGVpZ2h0O1xyXG4gICAgdmFyIGdldFRpbnQgPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYTtcclxuXHJcbiAgICB0aGlzLnBpcGVsaW5lLmJhdGNoVGV4dHVyZShcclxuICAgICAgICBzcmMsXHJcbiAgICAgICAgZnJhbWUuZ2xUZXh0dXJlLFxyXG4gICAgICAgIHdpZHRoLCBoZWlnaHQsXHJcbiAgICAgICAgc3JjLngsIHNyYy55LFxyXG4gICAgICAgIHdpZHRoLCBoZWlnaHQsXHJcbiAgICAgICAgc3JjLnNjYWxlWCwgc3JjLnNjYWxlWSxcclxuICAgICAgICBzcmMucm90YXRpb24sXHJcbiAgICAgICAgc3JjLmZsaXBYLCAhc3JjLmZsaXBZLFxyXG4gICAgICAgIHNyYy5zY3JvbGxGYWN0b3JYLCBzcmMuc2Nyb2xsRmFjdG9yWSxcclxuICAgICAgICBzcmMuZGlzcGxheU9yaWdpblgsIHNyYy5kaXNwbGF5T3JpZ2luWSxcclxuICAgICAgICAwLCAwLCB3aWR0aCwgaGVpZ2h0LFxyXG4gICAgICAgIGdldFRpbnQoc3JjLl90aW50VEwsIGNhbWVyYS5hbHBoYSAqIHNyYy5fYWxwaGFUTCksXHJcbiAgICAgICAgZ2V0VGludChzcmMuX3RpbnRUUiwgY2FtZXJhLmFscGhhICogc3JjLl9hbHBoYVRSKSxcclxuICAgICAgICBnZXRUaW50KHNyYy5fdGludEJMLCBjYW1lcmEuYWxwaGEgKiBzcmMuX2FscGhhQkwpLFxyXG4gICAgICAgIGdldFRpbnQoc3JjLl90aW50QlIsIGNhbWVyYS5hbHBoYSAqIHNyYy5fYWxwaGFCUiksXHJcbiAgICAgICAgKHNyYy5faXNUaW50ZWQgJiYgc3JjLnRpbnRGaWxsKSxcclxuICAgICAgICAwLCAwLFxyXG4gICAgICAgIGNhbWVyYSxcclxuICAgICAgICBwYXJlbnRNYXRyaXhcclxuICAgICk7XHJcblxyXG4gICAgLy8gIEZvcmNlIGNsZWFyIHRoZSBjdXJyZW50IHRleHR1cmUgc28gdGhhdCBpdGVtcyBuZXh0IGluIHRoZSBiYXRjaCAobGlrZSBHcmFwaGljcykgZG9uJ3QgdHJ5IGFuZCB1c2UgaXRcclxuICAgIHJlbmRlcmVyLnNldEJsYW5rVGV4dHVyZSh0cnVlKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUmVuZGVyVGV4dHVyZVdlYkdMUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIENvbXBvbmVudHMgPSByZXF1aXJlKCcuLi9jb21wb25lbnRzJyk7XHJcbnZhciBHYW1lT2JqZWN0ID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdCcpO1xyXG52YXIgUm9wZVJlbmRlciA9IHJlcXVpcmUoJy4vUm9wZVJlbmRlcicpO1xyXG52YXIgVmVjdG9yMiA9IHJlcXVpcmUoJy4uLy4uL21hdGgvVmVjdG9yMicpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogQSBSb3BlIEdhbWUgT2JqZWN0LlxyXG4gKlxyXG4gKiBUaGUgUm9wZSBvYmplY3QgaXMgV2ViR0wgb25seSBhbmQgZG9lcyBub3QgaGF2ZSBhIENhbnZhcyBjb3VudGVycGFydC5cclxuICpcclxuICogQSBSb3BlIGlzIGEgc3BlY2lhbCBraW5kIG9mIEdhbWUgT2JqZWN0IHRoYXQgaGFzIGEgdGV4dHVyZSB0aGF0IHJlcGVhdHMgYWxvbmcgaXRzIGVudGlyZSBsZW5ndGguXHJcbiAqIFVubGlrZSBhIFNwcml0ZSwgaXQgaXNuJ3QgcmVzdHJpY3RlZCB0byB1c2luZyBqdXN0IGEgcXVhZCBhbmQgY2FuIGhhdmUgYXMgbWFueSB2ZXJ0aWNlcyBhcyB5b3UgZGVmaW5lXHJcbiAqIHdoZW4gY3JlYXRpbmcgaXQuIFRoZSB2ZXJ0aWNlcyBjYW4gYmUgYXJyYW5nZWQgaW4gYSBob3Jpem9udGFsIG9yIHZlcnRpY2FsIHN0cmlwIGFuZCBoYXZlIHRoZWlyIG93blxyXG4gKiBjb2xvciBhbmQgYWxwaGEgdmFsdWVzIGFzIHdlbGwuXHJcbiAqIFxyXG4gKiBBIFJvcGVzIG9yaWdpbiBpcyBhbHdheXMgMC41IHggMC41IGFuZCBjYW5ub3QgYmUgY2hhbmdlZC5cclxuICpcclxuICogQGNsYXNzIFJvcGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHdlYmdsT25seVxyXG4gKiBAc2luY2UgMy4yMy4wXHJcbiAqXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkFscGhhU2luZ2xlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkJsZW5kTW9kZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5EZXB0aFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5GbGlwXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLk1hc2tcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuUGlwZWxpbmVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuU2l6ZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UZXh0dXJlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5WaXNpYmxlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlNjcm9sbEZhY3RvclxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBUaGUgU2NlbmUgdG8gd2hpY2ggdGhpcyBHYW1lIE9iamVjdCBiZWxvbmdzLiBBIEdhbWUgT2JqZWN0IGNhbiBvbmx5IGJlbG9uZyB0byBvbmUgU2NlbmUgYXQgYSB0aW1lLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3g9MF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt5PTBdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gW3RleHR1cmVdIC0gVGhlIGtleSBvZiB0aGUgVGV4dHVyZSB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIHJlbmRlciB3aXRoLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci4gSWYgbm90IGdpdmVuLCBgX19ERUZBVUxUYCBpcyB1c2VkLlxyXG4gKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcnxudWxsKX0gW2ZyYW1lXSAtIEFuIG9wdGlvbmFsIGZyYW1lIGZyb20gdGhlIFRleHR1cmUgdGhpcyBHYW1lIE9iamVjdCBpcyByZW5kZXJpbmcgd2l0aC5cclxuICogQHBhcmFtIHsoaW50ZWdlcnxQaGFzZXIuVHlwZXMuTWF0aC5WZWN0b3IyTGlrZVtdKX0gW3BvaW50cz0yXSAtIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHZlcnRpY2VzIGRhdGEgZm9yIHRoaXMgUm9wZSwgb3IgYSBudW1iZXIgdGhhdCBpbmRpY2F0ZXMgaG93IG1hbnkgc2VnbWVudHMgdG8gc3BsaXQgdGhlIHRleHR1cmUgZnJhbWUgaW50by4gSWYgbm9uZSBpcyBwcm92aWRlZCBhIHNpbXBsZSBxdWFkIGlzIGNyZWF0ZWQuIFNlZSBgc2V0UG9pbnRzYCB0byBzZXQgdGhpcyBwb3N0LWNyZWF0aW9uLlxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtob3Jpem9udGFsPXRydWVdIC0gU2hvdWxkIHRoZSB2ZXJ0aWNlcyBvZiB0aGlzIFJvcGUgYmUgYWxpZ25lZCBob3Jpem9udGFsbHkgKGB0cnVlYCksIG9yIHZlcnRpY2FsbHkgKGBmYWxzZWApP1xyXG4gKiBAcGFyYW0ge251bWJlcltdfSBbY29sb3JzXSAtIEFuIG9wdGlvbmFsIGFycmF5IGNvbnRhaW5pbmcgdGhlIGNvbG9yIGRhdGEgZm9yIHRoaXMgUm9wZS4gWW91IHNob3VsZCBwcm92aWRlIG9uZSBjb2xvciB2YWx1ZSBwZXIgcGFpciBvZiB2ZXJ0aWNlcy5cclxuICogQHBhcmFtIHtudW1iZXJbXX0gW2FscGhhc10gLSBBbiBvcHRpb25hbCBhcnJheSBjb250YWluaW5nIHRoZSBhbHBoYSBkYXRhIGZvciB0aGlzIFJvcGUuIFlvdSBzaG91bGQgcHJvdmlkZSBvbmUgYWxwaGEgdmFsdWUgcGVyIHBhaXIgb2YgdmVydGljZXMuXHJcbiAqL1xyXG52YXIgUm9wZSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogR2FtZU9iamVjdCxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBDb21wb25lbnRzLkFscGhhU2luZ2xlLFxyXG4gICAgICAgIENvbXBvbmVudHMuQmxlbmRNb2RlLFxyXG4gICAgICAgIENvbXBvbmVudHMuRGVwdGgsXHJcbiAgICAgICAgQ29tcG9uZW50cy5GbGlwLFxyXG4gICAgICAgIENvbXBvbmVudHMuTWFzayxcclxuICAgICAgICBDb21wb25lbnRzLlBpcGVsaW5lLFxyXG4gICAgICAgIENvbXBvbmVudHMuU2l6ZSxcclxuICAgICAgICBDb21wb25lbnRzLlRleHR1cmUsXHJcbiAgICAgICAgQ29tcG9uZW50cy5UcmFuc2Zvcm0sXHJcbiAgICAgICAgQ29tcG9uZW50cy5WaXNpYmxlLFxyXG4gICAgICAgIENvbXBvbmVudHMuU2Nyb2xsRmFjdG9yLFxyXG4gICAgICAgIFJvcGVSZW5kZXJcclxuICAgIF0sXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBSb3BlIChzY2VuZSwgeCwgeSwgdGV4dHVyZSwgZnJhbWUsIHBvaW50cywgaG9yaXpvbnRhbCwgY29sb3JzLCBhbHBoYXMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRleHR1cmUgPT09IHVuZGVmaW5lZCkgeyB0ZXh0dXJlID0gJ19fREVGQVVMVCc7IH1cclxuICAgICAgICBpZiAocG9pbnRzID09PSB1bmRlZmluZWQpIHsgcG9pbnRzID0gMjsgfVxyXG4gICAgICAgIGlmIChob3Jpem9udGFsID09PSB1bmRlZmluZWQpIHsgaG9yaXpvbnRhbCA9IHRydWU7IH1cclxuXHJcbiAgICAgICAgR2FtZU9iamVjdC5jYWxsKHRoaXMsIHNjZW5lLCAnUm9wZScpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgQW5pbWF0aW9uIENvbnRyb2xsZXIgb2YgdGhpcyBSb3BlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJvcGUjYW5pbXNcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQW5pbWF0aW9ufVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmFuaW1zID0gbmV3IENvbXBvbmVudHMuQW5pbWF0aW9uKHRoaXMpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBbiBhcnJheSBjb250YWluaW5nIHRoZSBwb2ludHMgZGF0YSBmb3IgdGhpcyBSb3BlLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEVhY2ggcG9pbnQgc2hvdWxkIGJlIGdpdmVuIGFzIGEgVmVjdG9yMkxpa2Ugb2JqZWN0IChpLmUuIGEgVmVjdG9yMiwgR2VvbS5Qb2ludCBvciBvYmplY3Qgd2l0aCBwdWJsaWMgeC95IHByb3BlcnRpZXMpLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIFRoZSBwb2ludCBjb29yZGluYXRlcyBhcmUgZ2l2ZW4gaW4gbG9jYWwgc3BhY2UsIHdoZXJlIDAgeCAwIGlzIHRoZSBzdGFydCBvZiB0aGUgUm9wZSBzdHJpcC5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBZb3UgY2FuIG1vZGlmeSB0aGUgY29udGVudHMgb2YgdGhpcyBhcnJheSBkaXJlY3RseSBpbiByZWFsLXRpbWUgdG8gY3JlYXRlIGludGVyZXN0aW5nIGVmZmVjdHMuXHJcbiAgICAgICAgICogSWYgeW91IGRvIHNvLCBiZSBzdXJlIHRvIGNhbGwgYHNldERpcnR5YCBfYWZ0ZXJfIG1vZGlmeWluZyB0aGlzIGFycmF5LCBzbyB0aGF0IHRoZSB2ZXJ0aWNlcyBkYXRhIGlzXHJcbiAgICAgICAgICogdXBkYXRlZCBiZWZvcmUgdGhlIG5leHQgcmVuZGVyLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSB0aGUgYHNldFBvaW50c2AgbWV0aG9kIGluc3RlYWQuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogU2hvdWxkIHlvdSBuZWVkIHRvIGNoYW5nZSB0aGUgX3NpemVfIG9mIHRoaXMgYXJyYXksIHRoZW4geW91IHNob3VsZCBhbHdheXMgdXNlIHRoZSBgc2V0UG9pbnRzYCBtZXRob2QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUm9wZSNwb2ludHNcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLlR5cGVzLk1hdGguVmVjdG9yMkxpa2VbXX1cclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wb2ludHMgPSBwb2ludHM7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHZlcnRpY2VzIGRhdGEgZm9yIHRoaXMgUm9wZS5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBUaGlzIGRhdGEgaXMgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5IGluIHRoZSBgdXBkYXRlVmVydGljZXNgIG1ldGhvZCwgYmFzZWQgb24gdGhlIHBvaW50cyBwcm92aWRlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Sb3BlI3ZlcnRpY2VzXHJcbiAgICAgICAgICogQHR5cGUge0Zsb2F0MzJBcnJheX1cclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy52ZXJ0aWNlcztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gYXJyYXkgY29udGFpbmluZyB0aGUgdXYgZGF0YSBmb3IgdGhpcyBSb3BlLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIFRoaXMgZGF0YSBpcyBjYWxjdWxhdGVkIGF1dG9tYXRpY2FsbHkgaW4gdGhlIGBzZXRQb2ludHNgIG1ldGhvZCwgYmFzZWQgb24gdGhlIHBvaW50cyBwcm92aWRlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Sb3BlI3V2XHJcbiAgICAgICAgICogQHR5cGUge0Zsb2F0MzJBcnJheX1cclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy51djtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gYXJyYXkgY29udGFpbmluZyB0aGUgY29sb3IgZGF0YSBmb3IgdGhpcyBSb3BlLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIENvbG9ycyBzaG91bGQgYmUgZ2l2ZW4gYXMgbnVtZXJpYyBSR0IgdmFsdWVzLCBzdWNoIGFzIDB4ZmYwMDAwLlxyXG4gICAgICAgICAqIFlvdSBzaG91bGQgcHJvdmlkZSBfdHdvXyBjb2xvciB2YWx1ZXMgZm9yIGV2ZXJ5IHBvaW50IGluIHRoZSBSb3BlLCBvbmUgZm9yIHRoZSB0b3AgYW5kIG9uZSBmb3IgdGhlIGJvdHRvbSBvZiBlYWNoIHF1YWQuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogWW91IGNhbiBtb2RpZnkgdGhlIGNvbnRlbnRzIG9mIHRoaXMgYXJyYXkgZGlyZWN0bHkgaW4gcmVhbC10aW1lLCBob3dldmVyLCBzaG91bGQgeW91IG5lZWQgdG8gY2hhbmdlIHRoZSBfc2l6ZV9cclxuICAgICAgICAgKiBvZiB0aGUgYXJyYXksIHRoZW4geW91IHNob3VsZCB1c2UgdGhlIGBzZXRDb2xvcnNgIG1ldGhvZCBpbnN0ZWFkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJvcGUjY29sb3JzXHJcbiAgICAgICAgICogQHR5cGUge1VpbnQzMkFycmF5fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNvbG9ycztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQW4gYXJyYXkgY29udGFpbmluZyB0aGUgYWxwaGEgZGF0YSBmb3IgdGhpcyBSb3BlLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEFscGhhcyBzaG91bGQgYmUgZ2l2ZW4gYXMgZmxvYXQgdmFsdWVzLCBzdWNoIGFzIDAuNS5cclxuICAgICAgICAgKiBZb3Ugc2hvdWxkIHByb3ZpZGUgX3R3b18gYWxwaGEgdmFsdWVzIGZvciBldmVyeSBwb2ludCBpbiB0aGUgUm9wZSwgb25lIGZvciB0aGUgdG9wIGFuZCBvbmUgZm9yIHRoZSBib3R0b20gb2YgZWFjaCBxdWFkLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIFlvdSBjYW4gbW9kaWZ5IHRoZSBjb250ZW50cyBvZiB0aGlzIGFycmF5IGRpcmVjdGx5IGluIHJlYWwtdGltZSwgaG93ZXZlciwgc2hvdWxkIHlvdSBuZWVkIHRvIGNoYW5nZSB0aGUgX3NpemVfXHJcbiAgICAgICAgICogb2YgdGhlIGFycmF5LCB0aGVuIHlvdSBzaG91bGQgdXNlIHRoZSBgc2V0QWxwaGFzYCBtZXRob2QgaW5zdGVhZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Sb3BlI2FscGhhc1xyXG4gICAgICAgICAqIEB0eXBlIHtGbG9hdDMyQXJyYXl9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWxwaGFzO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdGludCBmaWxsIG1vZGUuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogMCA9IEFuIGFkZGl0aXZlIHRpbnQgKHRoZSBkZWZhdWx0KSwgd2hlcmUgdmVydGljZXMgY29sb3JzIGFyZSBibGVuZGVkIHdpdGggdGhlIHRleHR1cmUuXHJcbiAgICAgICAgICogMSA9IEEgZmlsbCB0aW50LCB3aGVyZSB0aGUgdmVydGljZXMgY29sb3JzIHJlcGxhY2UgdGhlIHRleHR1cmUsIGJ1dCByZXNwZWN0cyB0ZXh0dXJlIGFscGhhLlxyXG4gICAgICAgICAqIDIgPSBBIGNvbXBsZXRlIHRpbnQsIHdoZXJlIHRoZSB2ZXJ0aWNlcyBjb2xvcnMgcmVwbGFjZSB0aGUgdGV4dHVyZSwgaW5jbHVkaW5nIGFscGhhLCBlbnRpcmVseS5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUm9wZSN0aW50RmlsbFxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnRpbnRGaWxsID0gKHRleHR1cmUgPT09ICdfX0RFRkFVTFQnKSA/IDIgOiAwO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGUgUm9wZSBpcyBtYXJrZWQgYXMgYGRpcnR5YCBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjYWxjdWxhdGUgaXRzIHZlcnRpY2VzXHJcbiAgICAgICAgICogdGhlIG5leHQgdGltZSBpdCByZW5kZXJzLiBZb3UgY2FuIGFsc28gZm9yY2UgdGhpcyBieSBjYWxsaW5nIGB1cGRhdGVWZXJ0aWNlc2AuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJvcGUjZGlydHlcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBcmUgdGhlIFJvcGUgdmVydGljZXMgYWxpZ25lZCBob3Jpem9udGFsbHksIGluIGEgc3RyaXAsIG9yIHZlcnRpY2FsbHksIGluIGEgY29sdW1uP1xyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIFRoaXMgcHJvcGVydHkgaXMgc2V0IGR1cmluZyBpbnN0YW50aWF0aW9uIGFuZCBjYW5ub3QgYmUgY2hhbmdlZCBkaXJlY3RseS5cclxuICAgICAgICAgKiBTZWUgdGhlIGBzZXRWZXJ0aWNhbGAgYW5kIGBzZXRIb3Jpem9udGFsYCBtZXRob2RzLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Sb3BlI2hvcml6b250YWxcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAcmVhZG9ubHlcclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ob3Jpem9udGFsID0gaG9yaXpvbnRhbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGhvcml6b250YWxseSBmbGlwcGVkIHN0YXRlIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBBIEdhbWUgT2JqZWN0IHRoYXQgaXMgZmxpcHBlZCBob3Jpem9udGFsbHkgd2lsbCByZW5kZXIgaW52ZXJzZWQgb24gdGhlIGhvcml6b250YWwgYXhpcy5cclxuICAgICAgICAgKiBGbGlwcGluZyBhbHdheXMgdGFrZXMgcGxhY2UgZnJvbSB0aGUgbWlkZGxlIG9mIHRoZSB0ZXh0dXJlIGFuZCBkb2VzIG5vdCBpbXBhY3QgdGhlIHNjYWxlIHZhbHVlLlxyXG4gICAgICAgICAqIElmIHRoaXMgR2FtZSBPYmplY3QgaGFzIGEgcGh5c2ljcyBib2R5LCBpdCB3aWxsIG5vdCBjaGFuZ2UgdGhlIGJvZHkuIFRoaXMgaXMgYSByZW5kZXJpbmcgdG9nZ2xlIG9ubHkuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJvcGUjX2ZsaXBYXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9mbGlwWCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdmVydGljYWxseSBmbGlwcGVkIHN0YXRlIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBBIEdhbWUgT2JqZWN0IHRoYXQgaXMgZmxpcHBlZCB2ZXJ0aWNhbGx5IHdpbGwgcmVuZGVyIGludmVyc2VkIG9uIHRoZSB2ZXJ0aWNhbCBheGlzIChpLmUuIHVwc2lkZSBkb3duKVxyXG4gICAgICAgICAqIEZsaXBwaW5nIGFsd2F5cyB0YWtlcyBwbGFjZSBmcm9tIHRoZSBtaWRkbGUgb2YgdGhlIHRleHR1cmUgYW5kIGRvZXMgbm90IGltcGFjdCB0aGUgc2NhbGUgdmFsdWUuXHJcbiAgICAgICAgICogSWYgdGhpcyBHYW1lIE9iamVjdCBoYXMgYSBwaHlzaWNzIGJvZHksIGl0IHdpbGwgbm90IGNoYW5nZSB0aGUgYm9keS4gVGhpcyBpcyBhIHJlbmRlcmluZyB0b2dnbGUgb25seS5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuUm9wZSNmbGlwWVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fZmxpcFkgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSW50ZXJuYWwgVmVjdG9yMiB1c2VkIGZvciB2ZXJ0aWNlcyB1cGRhdGVzLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Sb3BlI19wZXJwXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5NYXRoLlZlY3RvcjJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fcGVycCA9IG5ldyBWZWN0b3IyKCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFlvdSBjYW4gb3B0aW9uYWxseSBjaG9vc2UgdG8gcmVuZGVyIHRoZSB2ZXJ0aWNlcyBvZiB0aGlzIFJvcGUgdG8gYSBHcmFwaGljcyBpbnN0YW5jZS5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBBY2hpZXZlIHRoaXMgYnkgc2V0dGluZyB0aGUgYGRlYnVnQ2FsbGJhY2tgIGFuZCB0aGUgYGRlYnVnR3JhcGhpY2AgcHJvcGVydGllcy5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBZb3UgY2FuIGRvIHRoaXMgaW4gYSBzaW5nbGUgY2FsbCB2aWEgdGhlIGBSb3BlLnNldERlYnVnYCBtZXRob2QsIHdoaWNoIHdpbGwgdXNlIHRoZVxyXG4gICAgICAgICAqIGJ1aWx0LWluIGRlYnVnIGZ1bmN0aW9uLiBZb3UgY2FuIGFsc28gc2V0IGl0IHRvIHlvdXIgb3duIGNhbGxiYWNrLiBUaGUgY2FsbGJhY2tcclxuICAgICAgICAgKiB3aWxsIGJlIGludm9rZWQgX29uY2UgcGVyIHJlbmRlcl8gYW5kIHNlbnQgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIGBkZWJ1Z0NhbGxiYWNrKHNyYywgbWVzaExlbmd0aCwgdmVydHMpYFxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIGBzcmNgIGlzIHRoZSBSb3BlIGluc3RhbmNlIGJlaW5nIGRlYnVnZ2VkLlxyXG4gICAgICAgICAqIGBtZXNoTGVuZ3RoYCBpcyB0aGUgbnVtYmVyIG9mIG1lc2ggdmVydGljZXMgaW4gdG90YWwuXHJcbiAgICAgICAgICogYHZlcnRzYCBpcyBhbiBhcnJheSBvZiB0aGUgdHJhbnNsYXRlZCB2ZXJ0ZXggY29vcmRpbmF0ZXMuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogVG8gZGlzYWJsZSByZW5kZXJpbmcsIHNldCB0aGlzIHByb3BlcnR5IGJhY2sgdG8gYG51bGxgLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Sb3BlI2RlYnVnQ2FsbGJhY2tcclxuICAgICAgICAgKiBAdHlwZSB7ZnVuY3Rpb259XHJcbiAgICAgICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGVidWdDYWxsYmFjayA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBHcmFwaGljcyBpbnN0YW5jZSB0aGF0IHRoZSBkZWJ1ZyB2ZXJ0aWNlcyB3aWxsIGJlIGRyYXduIHRvLCBpZiBgc2V0RGVidWdgIGhhc1xyXG4gICAgICAgICAqIGJlZW4gY2FsbGVkLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Sb3BlI2RlYnVnR3JhcGhpY1xyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuR2FtZU9iamVjdHMuR3JhcGhpY3N9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZGVidWdHcmFwaGljID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRUZXh0dXJlKHRleHR1cmUsIGZyYW1lKTtcclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIHRoaXMuc2V0U2l6ZVRvRnJhbWUoKTtcclxuICAgICAgICB0aGlzLmluaXRQaXBlbGluZSgnVGV4dHVyZVRpbnRTdHJpcFBpcGVsaW5lJyk7XHJcblxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBvaW50cykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUFycmF5cyhwb2ludHMubGVuZ3RoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0UG9pbnRzKHBvaW50cywgY29sb3JzLCBhbHBoYXMpO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZVZlcnRpY2VzKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIFJvcGUgdXBkYXRlIGxvb3AuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUm9wZSNwcmVVcGRhdGVcclxuICAgICAqIEBwcm90ZWN0ZWRcclxuICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdGltZSAtIFRoZSBjdXJyZW50IHRpbWVzdGFtcC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWx0YSAtIFRoZSBkZWx0YSB0aW1lLCBpbiBtcywgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCBmcmFtZS5cclxuICAgICAqL1xyXG4gICAgcHJlVXBkYXRlOiBmdW5jdGlvbiAodGltZSwgZGVsdGEpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHByZXZGcmFtZSA9IHRoaXMuYW5pbXMuY3VycmVudEZyYW1lO1xyXG5cclxuICAgICAgICB0aGlzLmFuaW1zLnVwZGF0ZSh0aW1lLCBkZWx0YSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFuaW1zLmN1cnJlbnRGcmFtZSAhPT0gcHJldkZyYW1lKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVVVnMoKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVWZXJ0aWNlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdGFydCBwbGF5aW5nIHRoZSBnaXZlbiBhbmltYXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUm9wZSNwbGF5XHJcbiAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBzdHJpbmctYmFzZWQga2V5IG9mIHRoZSBhbmltYXRpb24gdG8gcGxheS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lnbm9yZUlmUGxheWluZz1mYWxzZV0gLSBJZiBhbiBhbmltYXRpb24gaXMgYWxyZWFkeSBwbGF5aW5nIHRoZW4gaWdub3JlIHRoaXMgY2FsbC5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3N0YXJ0RnJhbWU9MF0gLSBPcHRpb25hbGx5IHN0YXJ0IHRoZSBhbmltYXRpb24gcGxheWluZyBmcm9tIHRoaXMgZnJhbWUgaW5kZXguXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcGxheTogZnVuY3Rpb24gKGtleSwgaWdub3JlSWZQbGF5aW5nLCBzdGFydEZyYW1lKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuYW5pbXMucGxheShrZXksIGlnbm9yZUlmUGxheWluZywgc3RhcnRGcmFtZSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZsYWdzIHRoaXMgUm9wZSBhcyBiZWluZyBkaXJ0eS4gQSBkaXJ0eSByb3BlIHdpbGwgcmVjYWxjdWxhdGUgYWxsIG9mIGl0cyB2ZXJ0aWNlcyBkYXRhXHJcbiAgICAgKiB0aGUgX25leHRfIHRpbWUgaXQgcmVuZGVycy4gWW91IHNob3VsZCBzZXQgdGhpcyByb3BlIGFzIGRpcnR5IGlmIHlvdSB1cGRhdGUgdGhlIHBvaW50c1xyXG4gICAgICogYXJyYXkgZGlyZWN0bHkuXHJcbiAgICAgKiBcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlJvcGUjc2V0RGlydHlcclxuICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0RGlydHk6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5kaXJ0eSA9IHRydWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGFsaWdubWVudCBvZiB0aGUgcG9pbnRzIGluIHRoaXMgUm9wZSB0byBiZSBob3Jpem9udGFsLCBpbiBhIHN0cmlwIGZvcm1hdC5cclxuICAgICAqIFxyXG4gICAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCB3aWxsIHJlc2V0IHRoaXMgUm9wZS4gVGhlIGN1cnJlbnQgcG9pbnRzLCB2ZXJ0aWNlcywgY29sb3JzIGFuZCBhbHBoYVxyXG4gICAgICogdmFsdWVzIHdpbGwgYmUgcmVzZXQgdG8gdGhvZXMgdmFsdWVzIGdpdmVuIGFzIHBhcmFtZXRlcnMuXHJcbiAgICAgKiBcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlJvcGUjc2V0SG9yaXpvbnRhbFxyXG4gICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0geyhpbnRlZ2VyfFBoYXNlci5UeXBlcy5NYXRoLlZlY3RvcjJMaWtlW10pfSBbcG9pbnRzXSAtIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHZlcnRpY2VzIGRhdGEgZm9yIHRoaXMgUm9wZSwgb3IgYSBudW1iZXIgdGhhdCBpbmRpY2F0ZXMgaG93IG1hbnkgc2VnbWVudHMgdG8gc3BsaXQgdGhlIHRleHR1cmUgZnJhbWUgaW50by4gSWYgbm9uZSBpcyBwcm92aWRlZCB0aGUgY3VycmVudCBwb2ludHMgbGVuZ3RoIGlzIHVzZWQuXHJcbiAgICAgKiBAcGFyYW0geyhudW1iZXJ8bnVtYmVyW10pfSBbY29sb3JzXSAtIEVpdGhlciBhIHNpbmdsZSBjb2xvciB2YWx1ZSwgb3IgYW4gYXJyYXkgb2YgdmFsdWVzLlxyXG4gICAgICogQHBhcmFtIHsobnVtYmVyfG51bWJlcltdKX0gW2FscGhhc10gLSBFaXRoZXIgYSBzaW5nbGUgYWxwaGEgdmFsdWUsIG9yIGFuIGFycmF5IG9mIHZhbHVlcy5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0SG9yaXpvbnRhbDogZnVuY3Rpb24gKHBvaW50cywgY29sb3JzLCBhbHBoYXMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHBvaW50cyA9PT0gdW5kZWZpbmVkKSB7IHBvaW50cyA9IHRoaXMucG9pbnRzLmxlbmd0aDsgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5ob3Jpem9udGFsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmhvcml6b250YWwgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zZXRQb2ludHMocG9pbnRzLCBjb2xvcnMsIGFscGhhcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgYWxpZ25tZW50IG9mIHRoZSBwb2ludHMgaW4gdGhpcyBSb3BlIHRvIGJlIHZlcnRpY2FsLCBpbiBhIGNvbHVtbiBmb3JtYXQuXHJcbiAgICAgKiBcclxuICAgICAqIENhbGxpbmcgdGhpcyBtZXRob2Qgd2lsbCByZXNldCB0aGlzIFJvcGUuIFRoZSBjdXJyZW50IHBvaW50cywgdmVydGljZXMsIGNvbG9ycyBhbmQgYWxwaGFcclxuICAgICAqIHZhbHVlcyB3aWxsIGJlIHJlc2V0IHRvIHRob2VzIHZhbHVlcyBnaXZlbiBhcyBwYXJhbWV0ZXJzLlxyXG4gICAgICogXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Sb3BlI3NldFZlcnRpY2FsXHJcbiAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7KGludGVnZXJ8UGhhc2VyLlR5cGVzLk1hdGguVmVjdG9yMkxpa2VbXSl9IFtwb2ludHNdIC0gQW4gYXJyYXkgY29udGFpbmluZyB0aGUgdmVydGljZXMgZGF0YSBmb3IgdGhpcyBSb3BlLCBvciBhIG51bWJlciB0aGF0IGluZGljYXRlcyBob3cgbWFueSBzZWdtZW50cyB0byBzcGxpdCB0aGUgdGV4dHVyZSBmcmFtZSBpbnRvLiBJZiBub25lIGlzIHByb3ZpZGVkIHRoZSBjdXJyZW50IHBvaW50cyBsZW5ndGggaXMgdXNlZC5cclxuICAgICAqIEBwYXJhbSB7KG51bWJlcnxudW1iZXJbXSl9IFtjb2xvcnNdIC0gRWl0aGVyIGEgc2luZ2xlIGNvbG9yIHZhbHVlLCBvciBhbiBhcnJheSBvZiB2YWx1ZXMuXHJcbiAgICAgKiBAcGFyYW0geyhudW1iZXJ8bnVtYmVyW10pfSBbYWxwaGFzXSAtIEVpdGhlciBhIHNpbmdsZSBhbHBoYSB2YWx1ZSwgb3IgYW4gYXJyYXkgb2YgdmFsdWVzLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRWZXJ0aWNhbDogZnVuY3Rpb24gKHBvaW50cywgY29sb3JzLCBhbHBoYXMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHBvaW50cyA9PT0gdW5kZWZpbmVkKSB7IHBvaW50cyA9IHRoaXMucG9pbnRzLmxlbmd0aDsgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaG9yaXpvbnRhbClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5ob3Jpem9udGFsID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnNldFBvaW50cyhwb2ludHMsIGNvbG9ycywgYWxwaGFzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB0aW50IGZpbGwgbW9kZS5cclxuICAgICAqIFxyXG4gICAgICogTW9kZSAwIGlzIGFuIGFkZGl0aXZlIHRpbnQsIHRoZSBkZWZhdWx0LCB3aGljaCBibGVuZHMgdGhlIHZlcnRpY2VzIGNvbG9ycyB3aXRoIHRoZSB0ZXh0dXJlLlxyXG4gICAgICogVGhpcyBtb2RlIHJlc3BlY3RzIHRoZSB0ZXh0dXJlIGFscGhhLlxyXG4gICAgICogXHJcbiAgICAgKiBNb2RlIDEgaXMgYSBmaWxsIHRpbnQuIFVubGlrZSBhbiBhZGRpdGl2ZSB0aW50LCBhIGZpbGwtdGludCBsaXRlcmFsbHkgcmVwbGFjZXMgdGhlIHBpeGVsIGNvbG9yc1xyXG4gICAgICogZnJvbSB0aGUgdGV4dHVyZSB3aXRoIHRob3NlIGluIHRoZSB0aW50LiBZb3UgY2FuIHVzZSB0aGlzIGZvciBlZmZlY3RzIHN1Y2ggYXMgbWFraW5nIGEgcGxheWVyIGZsYXNoICd3aGl0ZSdcclxuICAgICAqIGlmIGhpdCBieSBzb21ldGhpbmcuIFRoaXMgbW9kZSByZXNwZWN0cyB0aGUgdGV4dHVyZSBhbHBoYS5cclxuICAgICAqIFxyXG4gICAgICogTW9kZSAyIGlzIGEgY29tcGxldGUgdGludC4gVGhlIHRleHR1cmUgY29sb3JzIGFuZCBhbHBoYSBhcmUgcmVwbGFjZWQgZW50aXJlbHkgYnkgdGhlIHZlcnRpY2VzIGNvbG9ycy5cclxuICAgICAqIFxyXG4gICAgICogU2VlIHRoZSBgc2V0Q29sb3JzYCBtZXRob2QgZm9yIGRldGFpbHMgb2YgaG93IHRvIGNvbG9yIGVhY2ggb2YgdGhlIHZlcnRpY2VzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlJvcGUjc2V0VGludEZpbGxcclxuICAgICAqIEB3ZWJnbE9ubHlcclxuICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IFt2YWx1ZT0wXSAtIFNldCB0byAwIGZvciBhbiBBZGRpdGl2ZSB0aW50LCAxIGZvciBhIGZpbGwgdGludCB3aXRoIGFscGhhLCBvciAyIGZvciBhIGZpbGwgdGludCB3aXRob3V0IGFscGhhLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRUaW50RmlsbDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7IHZhbHVlID0gMDsgfVxyXG5cclxuICAgICAgICB0aGlzLnRpbnRGaWxsID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgYWxwaGEgdmFsdWVzIHVzZWQgYnkgdGhlIFJvcGUgZHVyaW5nIHJlbmRlcmluZy5cclxuICAgICAqIFxyXG4gICAgICogWW91IGNhbiBwcm92aWRlIHRoZSB2YWx1ZXMgaW4gYSBudW1iZXIgb2Ygd2F5czpcclxuICAgICAqIFxyXG4gICAgICogMSkgT25lIHNpbmdsZSBudW1lcmljIHZhbHVlOiBgc2V0QWxwaGFzKDAuNSlgIC0gVGhpcyB3aWxsIHNldCBhIHNpbmdsZSBhbHBoYSBmb3IgdGhlIHdob2xlIFJvcGUuXHJcbiAgICAgKiAyKSBUd28gbnVtZXJpYyB2YWx1ZTogYHNldEFscGhhcygxLCAwLjUpYCAtIFRoaXMgd2lsbCBzZXQgYSAndG9wJyBhbmQgJ2JvdHRvbScgYWxwaGEgdmFsdWUgYWNyb3NzIHRoZSB3aG9sZSBSb3BlLlxyXG4gICAgICogMykgQW4gYXJyYXkgb2YgdmFsdWVzOiBgc2V0QWxwaGFzKFsgMSwgMC41LCAwLjIgXSlgXHJcbiAgICAgKiBcclxuICAgICAqIElmIHlvdSBwcm92aWRlIGFuIGFycmF5IG9mIHZhbHVlcyBhbmQgdGhlIGFycmF5IGhhcyBleGFjdGx5IHRoZSBzYW1lIG51bWJlciBvZiB2YWx1ZXMgYXMgYHBvaW50c2AgaW4gdGhlIFJvcGUsIGl0XHJcbiAgICAgKiB3aWxsIHVzZSBlYWNoIGFscGhhIHZhbHVlIHBlciByb3BlIHNlZ21lbnQuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZSBwcm92aWRlZCBhcnJheSBoYXMgYSBkaWZmZXJlbnQgbnVtYmVyIG9mIHZhbHVlcyB0aGFuIGBwb2ludHNgIHRoZW4gaXQgd2lsbCB1c2UgdGhlIHZhbHVlcyBpbiBvcmRlciwgZnJvbVxyXG4gICAgICogdGhlIGZpcnN0IFJvcGUgc2VnbWVudCBhbmQgb24sIHVudGlsIGl0IHJ1bnMgb3V0IG9mIHZhbHVlcy4gVGhpcyBhbGxvd3MgeW91IHRvIGNvbnRyb2wgdGhlIGFscGhhIHZhbHVlcyBhdCBhbGxcclxuICAgICAqIHZlcnRpY2VzIGluIHRoZSBSb3BlLlxyXG4gICAgICogXHJcbiAgICAgKiBOb3RlIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBgc2V0QWxwaGFzYCAocGx1cmFsKSBhbmQgbm90IGBzZXRBbHBoYWAuXHJcbiAgICAgKiBcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlJvcGUjc2V0QWxwaGFzXHJcbiAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7KG51bWJlcnxudW1iZXJbXSl9IFthbHBoYXNdIC0gRWl0aGVyIGEgc2luZ2xlIGFscGhhIHZhbHVlLCBvciBhbiBhcnJheSBvZiB2YWx1ZXMuIElmIG5vdGhpbmcgaXMgcHJvdmlkZWQgYWxwaGEgaXMgcmVzZXQgdG8gMS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYm90dG9tQWxwaGFdIC0gQW4gb3B0aW9uYWwgYm90dG9tIGFscGhhIHZhbHVlLiBTZWUgdGhlIG1ldGhvZCBkZXNjcmlwdGlvbiBmb3IgZGV0YWlscy5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0QWxwaGFzOiBmdW5jdGlvbiAoYWxwaGFzLCBib3R0b21BbHBoYSlcclxuICAgIHtcclxuICAgICAgICB2YXIgdG90YWwgPSB0aGlzLnBvaW50cy5sZW5ndGg7XHJcblxyXG4gICAgICAgIGlmICh0b3RhbCA8IDEpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBjdXJyZW50QWxwaGFzID0gdGhpcy5hbHBoYXM7XHJcblxyXG4gICAgICAgIGlmIChhbHBoYXMgPT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGFscGhhcyA9IFsgMSBdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICghQXJyYXkuaXNBcnJheShhbHBoYXMpICYmIGJvdHRvbUFscGhhID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBhbHBoYXMgPSBbIGFscGhhcyBdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGk7XHJcbiAgICAgICAgdmFyIGluZGV4ID0gMDtcclxuXHJcbiAgICAgICAgaWYgKGJvdHRvbUFscGhhICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgVG9wIC8gQm90dG9tIGFscGhhIHBhaXJcclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRvdGFsOyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGluZGV4ID0gaSAqIDI7XHJcblxyXG4gICAgICAgICAgICAgICAgY3VycmVudEFscGhhc1tpbmRleF0gPSBhbHBoYXM7XHJcbiAgICAgICAgICAgICAgICBjdXJyZW50QWxwaGFzW2luZGV4ICsgMV0gPSBib3R0b21BbHBoYTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChhbHBoYXMubGVuZ3RoID09PSB0b3RhbClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vICBJZiB0aGVyZSBhcmUgZXhhY3RseSB0aGUgc2FtZSBudW1iZXIgb2YgYWxwaGFzIGFzIHBvaW50cywgd2UnbGwgY29tYmluZSB0aGUgYWxwaGFzXHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0b3RhbDsgaSsrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpbmRleCA9IGkgKiAyO1xyXG5cclxuICAgICAgICAgICAgICAgIGN1cnJlbnRBbHBoYXNbaW5kZXhdID0gYWxwaGFzW2ldO1xyXG4gICAgICAgICAgICAgICAgY3VycmVudEFscGhhc1tpbmRleCArIDFdID0gYWxwaGFzW2ldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBwcmV2QWxwaGEgPSBhbHBoYXNbMF07XHJcblxyXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdG90YWw7IGkrKylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaW5kZXggPSBpICogMjtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgaWYgKGFscGhhcy5sZW5ndGggPiBpbmRleClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcmV2QWxwaGEgPSBhbHBoYXNbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGN1cnJlbnRBbHBoYXNbaW5kZXhdID0gcHJldkFscGhhO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChhbHBoYXMubGVuZ3RoID4gaW5kZXggKyAxKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByZXZBbHBoYSA9IGFscGhhc1tpbmRleCArIDFdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGN1cnJlbnRBbHBoYXNbaW5kZXggKyAxXSA9IHByZXZBbHBoYTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgY29sb3IgdmFsdWVzIHVzZWQgYnkgdGhlIFJvcGUgZHVyaW5nIHJlbmRlcmluZy5cclxuICAgICAqIFxyXG4gICAgICogQ29sb3JzIGFyZSB1c2VkIHRvIGNvbnRyb2wgdGhlIGxldmVsIG9mIHRpbnQgYXBwbGllZCBhY3Jvc3MgdGhlIFJvcGUgdGV4dHVyZS5cclxuICAgICAqIFxyXG4gICAgICogWW91IGNhbiBwcm92aWRlIHRoZSB2YWx1ZXMgaW4gYSBudW1iZXIgb2Ygd2F5czpcclxuICAgICAqIFxyXG4gICAgICogKiBPbmUgc2luZ2xlIG51bWVyaWMgdmFsdWU6IGBzZXRDb2xvcnMoMHhmZjAwMDApYCAtIFRoaXMgd2lsbCBzZXQgYSBzaW5nbGUgY29sb3IgdGludCBmb3IgdGhlIHdob2xlIFJvcGUuXHJcbiAgICAgKiAqIEFuIGFycmF5IG9mIHZhbHVlczogYHNldENvbG9ycyhbIDB4ZmYwMDAwLCAweDAwZmYwMCwgMHgwMDAwZmYgXSlgXHJcbiAgICAgKiBcclxuICAgICAqIElmIHlvdSBwcm92aWRlIGFuIGFycmF5IG9mIHZhbHVlcyBhbmQgdGhlIGFycmF5IGhhcyBleGFjdGx5IHRoZSBzYW1lIG51bWJlciBvZiB2YWx1ZXMgYXMgYHBvaW50c2AgaW4gdGhlIFJvcGUsIGl0XHJcbiAgICAgKiB3aWxsIHVzZSBlYWNoIGNvbG9yIHBlciByb3BlIHNlZ21lbnQuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoZSBwcm92aWRlZCBhcnJheSBoYXMgYSBkaWZmZXJlbnQgbnVtYmVyIG9mIHZhbHVlcyB0aGFuIGBwb2ludHNgIHRoZW4gaXQgd2lsbCB1c2UgdGhlIHZhbHVlcyBpbiBvcmRlciwgZnJvbVxyXG4gICAgICogdGhlIGZpcnN0IFJvcGUgc2VnbWVudCBhbmQgb24sIHVudGlsIGl0IHJ1bnMgb3V0IG9mIHZhbHVlcy4gVGhpcyBhbGxvd3MgeW91IHRvIGNvbnRyb2wgdGhlIGNvbG9yIHZhbHVlcyBhdCBhbGxcclxuICAgICAqIHZlcnRpY2VzIGluIHRoZSBSb3BlLlxyXG4gICAgICogXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Sb3BlI3NldENvbG9yc1xyXG4gICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0geyhudW1iZXJ8bnVtYmVyW10pfSBbY29sb3JzXSAtIEVpdGhlciBhIHNpbmdsZSBjb2xvciB2YWx1ZSwgb3IgYW4gYXJyYXkgb2YgdmFsdWVzLiBJZiBub3RoaW5nIGlzIHByb3ZpZGVkIGNvbG9yIGlzIHJlc2V0IHRvIDB4ZmZmZmZmLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRDb2xvcnM6IGZ1bmN0aW9uIChjb2xvcnMpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHRvdGFsID0gdGhpcy5wb2ludHMubGVuZ3RoO1xyXG5cclxuICAgICAgICBpZiAodG90YWwgPCAxKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgY3VycmVudENvbG9ycyA9IHRoaXMuY29sb3JzO1xyXG5cclxuICAgICAgICBpZiAoY29sb3JzID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2xvcnMgPSBbIDB4ZmZmZmZmIF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KGNvbG9ycykpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjb2xvcnMgPSBbIGNvbG9ycyBdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdmFyIGk7XHJcbiAgICAgICAgdmFyIGluZGV4ID0gMDtcclxuXHJcbiAgICAgICAgaWYgKGNvbG9ycy5sZW5ndGggPT09IHRvdGFsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIElmIHRoZXJlIGFyZSBleGFjdGx5IHRoZSBzYW1lIG51bWJlciBvZiBjb2xvcnMgYXMgcG9pbnRzLCB3ZSdsbCBjb21iaW5lIHRoZSBjb2xvcnNcclxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRvdGFsOyBpKyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGluZGV4ID0gaSAqIDI7XHJcblxyXG4gICAgICAgICAgICAgICAgY3VycmVudENvbG9yc1tpbmRleF0gPSBjb2xvcnNbaV07XHJcbiAgICAgICAgICAgICAgICBjdXJyZW50Q29sb3JzW2luZGV4ICsgMV0gPSBjb2xvcnNbaV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHByZXZDb2xvciA9IGNvbG9yc1swXTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0b3RhbDsgaSsrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpbmRleCA9IGkgKiAyO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICBpZiAoY29sb3JzLmxlbmd0aCA+IGluZGV4KVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByZXZDb2xvciA9IGNvbG9yc1tpbmRleF07XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY3VycmVudENvbG9yc1tpbmRleF0gPSBwcmV2Q29sb3I7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGNvbG9ycy5sZW5ndGggPiBpbmRleCArIDEpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJldkNvbG9yID0gY29sb3JzW2luZGV4ICsgMV07XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY3VycmVudENvbG9yc1tpbmRleCArIDFdID0gcHJldkNvbG9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBwb2ludHMgdXNlZCBieSB0aGlzIFJvcGUuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBwb2ludHMgc2hvdWxkIGJlIHByb3ZpZGVkIGFzIGFuIGFycmF5IG9mIFZlY3RvcjIsIG9yIHZlY3RvcjItbGlrZSBvYmplY3RzIChpLmUuIHRob3NlIHdpdGggcHVibGljIHgveSBwcm9wZXJ0aWVzKS5cclxuICAgICAqIFxyXG4gICAgICogRWFjaCBwb2ludCBjb3JyZXNwb25kcyB0byBvbmUgc2VnbWVudCBvZiB0aGUgUm9wZS4gVGhlIG1vcmUgcG9pbnRzIGluIHRoZSBhcnJheSwgdGhlIG1vcmUgc2VnbWVudHMgdGhlIHJvcGUgaGFzLlxyXG4gICAgICogXHJcbiAgICAgKiBQb2ludCBjb29yZGluYXRlcyBhcmUgZ2l2ZW4gaW4gbG9jYWwtc3BhY2UsIG5vdCB3b3JsZC1zcGFjZSwgYW5kIGFyZSBkaXJlY3RseSByZWxhdGVkIHRvIHRoZSBzaXplIG9mIHRoZSB0ZXh0dXJlXHJcbiAgICAgKiB0aGlzIFJvcGUgb2JqZWN0IGlzIHVzaW5nLlxyXG4gICAgICogXHJcbiAgICAgKiBGb3IgZXhhbXBsZSwgYSBSb3BlIHVzaW5nIGEgNTEyIHB4IHdpZGUgdGV4dHVyZSwgc3BsaXQgaW50byA0IHNlZ21lbnRzICgxMjhweCBlYWNoKSB3b3VsZCB1c2UgdGhlIGZvbGxvd2luZyBwb2ludHM6XHJcbiAgICAgKiBcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIHJvcGUuc2V0UG9pbnRzKFtcclxuICAgICAqICAgeyB4OiAwLCB5OiAwIH0sXHJcbiAgICAgKiAgIHsgeDogMTI4LCB5OiAwIH0sXHJcbiAgICAgKiAgIHsgeDogMjU2LCB5OiAwIH0sXHJcbiAgICAgKiAgIHsgeDogMzg0LCB5OiAwIH1cclxuICAgICAqIF0pO1xyXG4gICAgICogYGBgXHJcbiAgICAgKiBcclxuICAgICAqIE9yLCB5b3UgY2FuIHByb3ZpZGUgYW4gaW50ZWdlciB0byBkbyB0aGUgc2FtZSB0aGluZzpcclxuICAgICAqIFxyXG4gICAgICogYGBgamF2YXNjcmlwdFxyXG4gICAgICogcm9wZS5zZXRQb2ludHMoNCk7XHJcbiAgICAgKiBgYGBcclxuICAgICAqIFxyXG4gICAgICogV2hpY2ggd2lsbCBkaXZpZGUgdGhlIFJvcGUgaW50byA0IGVxdWFsbHkgc2l6ZWQgc2VnbWVudHMgYmFzZWQgb24gdGhlIGZyYW1lIHdpZHRoLlxyXG4gICAgICogXHJcbiAgICAgKiBOb3RlIHRoYXQgY2FsbGluZyB0aGlzIG1ldGhvZCB3aXRoIGEgZGlmZmVyZW50IG51bWJlciBvZiBwb2ludHMgdGhhbiB0aGUgUm9wZSBoYXMgY3VycmVudGx5IHdpbGxcclxuICAgICAqIF9yZXNldF8gdGhlIGNvbG9yIGFuZCBhbHBoYSB2YWx1ZXMsIHVubGVzcyB5b3UgcHJvdmlkZSB0aGVtIGFzIGFyZ3VtZW50cyB0byB0aGlzIG1ldGhvZC5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUm9wZSNzZXRQb2ludHNcclxuICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHsoaW50ZWdlcnxQaGFzZXIuVHlwZXMuTWF0aC5WZWN0b3IyTGlrZVtdKX0gW3BvaW50cz0yXSAtIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHZlcnRpY2VzIGRhdGEgZm9yIHRoaXMgUm9wZSwgb3IgYSBudW1iZXIgdGhhdCBpbmRpY2F0ZXMgaG93IG1hbnkgc2VnbWVudHMgdG8gc3BsaXQgdGhlIHRleHR1cmUgZnJhbWUgaW50by4gSWYgbm9uZSBpcyBwcm92aWRlZCBhIHNpbXBsZSBxdWFkIGlzIGNyZWF0ZWQuXHJcbiAgICAgKiBAcGFyYW0geyhudW1iZXJ8bnVtYmVyW10pfSBbY29sb3JzXSAtIEVpdGhlciBhIHNpbmdsZSBjb2xvciB2YWx1ZSwgb3IgYW4gYXJyYXkgb2YgdmFsdWVzLlxyXG4gICAgICogQHBhcmFtIHsobnVtYmVyfG51bWJlcltdKX0gW2FscGhhc10gLSBFaXRoZXIgYSBzaW5nbGUgYWxwaGEgdmFsdWUsIG9yIGFuIGFycmF5IG9mIHZhbHVlcy5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0UG9pbnRzOiBmdW5jdGlvbiAocG9pbnRzLCBjb2xvcnMsIGFscGhhcylcclxuICAgIHtcclxuICAgICAgICBpZiAocG9pbnRzID09PSB1bmRlZmluZWQpIHsgcG9pbnRzID0gMjsgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIHBvaW50cyA9PT0gJ251bWJlcicpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgR2VuZXJhdGUgYW4gYXJyYXkgYmFzZWQgb24gdGhlIHBvaW50c1xyXG4gICAgICAgICAgICB2YXIgc2VnbWVudHMgPSBwb2ludHM7XHJcblxyXG4gICAgICAgICAgICBpZiAoc2VnbWVudHMgPCAyKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBzZWdtZW50cyA9IDI7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHBvaW50cyA9IFtdO1xyXG5cclxuICAgICAgICAgICAgdmFyIHM7XHJcbiAgICAgICAgICAgIHZhciBmcmFtZVNlZ21lbnQ7XHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQ7XHJcbiAgICBcclxuICAgICAgICAgICAgaWYgKHRoaXMuaG9yaXpvbnRhbClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gLSh0aGlzLmZyYW1lLmhhbGZXaWR0aCk7XHJcbiAgICAgICAgICAgICAgICBmcmFtZVNlZ21lbnQgPSB0aGlzLmZyYW1lLndpZHRoIC8gKHNlZ21lbnRzIC0gMSk7XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChzID0gMDsgcyA8IHNlZ21lbnRzOyBzKyspXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9pbnRzLnB1c2goeyB4OiBvZmZzZXQgKyBzICogZnJhbWVTZWdtZW50LCB5OiAwIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gLSh0aGlzLmZyYW1lLmhhbGZIZWlnaHQpO1xyXG4gICAgICAgICAgICAgICAgZnJhbWVTZWdtZW50ID0gdGhpcy5mcmFtZS5oZWlnaHQgLyAoc2VnbWVudHMgLSAxKTtcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKHMgPSAwOyBzIDwgc2VnbWVudHM7IHMrKylcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwb2ludHMucHVzaCh7IHg6IDAsIHk6IG9mZnNldCArIHMgKiBmcmFtZVNlZ21lbnQgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciB0b3RhbCA9IHBvaW50cy5sZW5ndGg7XHJcbiAgICAgICAgdmFyIGN1cnJlbnRUb3RhbCA9IHRoaXMucG9pbnRzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgaWYgKHRvdGFsIDwgMSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignUm9wZTogTm90IGVub3VnaCBwb2ludHMgZ2l2ZW4nKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0b3RhbCA9PT0gMSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHBvaW50cy51bnNoaWZ0KHsgeDogMCwgeTogMCB9KTtcclxuICAgICAgICAgICAgdG90YWwrKztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjdXJyZW50VG90YWwgIT09IHRvdGFsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5yZXNpemVBcnJheXModG90YWwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wb2ludHMgPSBwb2ludHM7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlVVZzKCk7XHJcblxyXG4gICAgICAgIGlmIChjb2xvcnMgIT09IHVuZGVmaW5lZCAmJiBjb2xvcnMgIT09IG51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbG9ycyhjb2xvcnMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGFscGhhcyAhPT0gdW5kZWZpbmVkICYmIGFscGhhcyAhPT0gbnVsbClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0QWxwaGFzKGFscGhhcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIGFsbCBvZiB0aGUgVVZzIGJhc2VkIG9uIHRoZSBSb3BlLnBvaW50cyBhbmQgYGZsaXBYYCBhbmQgYGZsaXBZYCBzZXR0aW5ncy5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUm9wZSN1cGRhdGVVVnNcclxuICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlVVZzOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBjdXJyZW50VVZzID0gdGhpcy51djtcclxuICAgICAgICB2YXIgdG90YWwgPSB0aGlzLnBvaW50cy5sZW5ndGg7XHJcblxyXG4gICAgICAgIHZhciB1MCA9IHRoaXMuZnJhbWUudTA7XHJcbiAgICAgICAgdmFyIHYwID0gdGhpcy5mcmFtZS52MDtcclxuICAgICAgICB2YXIgdTEgPSB0aGlzLmZyYW1lLnUxO1xyXG4gICAgICAgIHZhciB2MSA9IHRoaXMuZnJhbWUudjE7XHJcblxyXG4gICAgICAgIHZhciBwYXJ0SCA9ICh1MSAtIHUwKSAvICh0b3RhbCAtIDEpO1xyXG4gICAgICAgIHZhciBwYXJ0ViA9ICh2MSAtIHYwKSAvICh0b3RhbCAtIDEpO1xyXG4gICBcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvdGFsOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgaW5kZXggPSBpICogNDtcclxuXHJcbiAgICAgICAgICAgIHZhciB1djA7XHJcbiAgICAgICAgICAgIHZhciB1djE7XHJcbiAgICAgICAgICAgIHZhciB1djI7XHJcbiAgICAgICAgICAgIHZhciB1djM7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5ob3Jpem9udGFsKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fZmxpcFgpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdXYwID0gdTEgLSAoaSAqIHBhcnRIKTtcclxuICAgICAgICAgICAgICAgICAgICB1djIgPSB1MSAtIChpICogcGFydEgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHV2MCA9IHUwICsgKGkgKiBwYXJ0SCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdXYyID0gdTAgKyAoaSAqIHBhcnRIKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fZmxpcFkpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdXYxID0gdjE7XHJcbiAgICAgICAgICAgICAgICAgICAgdXYzID0gdjA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdXYxID0gdjA7XHJcbiAgICAgICAgICAgICAgICAgICAgdXYzID0gdjE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fZmxpcFgpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdXYwID0gdTA7XHJcbiAgICAgICAgICAgICAgICAgICAgdXYyID0gdTE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdXYwID0gdTE7XHJcbiAgICAgICAgICAgICAgICAgICAgdXYyID0gdTA7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2ZsaXBZKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHV2MSA9IHYxIC0gKGkgKiBwYXJ0Vik7XHJcbiAgICAgICAgICAgICAgICAgICAgdXYzID0gdjEgLSAoaSAqIHBhcnRWKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICB1djEgPSB2MCArIChpICogcGFydFYpO1xyXG4gICAgICAgICAgICAgICAgICAgIHV2MyA9IHYwICsgKGkgKiBwYXJ0Vik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGN1cnJlbnRVVnNbaW5kZXggKyAwXSA9IHV2MDtcclxuICAgICAgICAgICAgY3VycmVudFVWc1tpbmRleCArIDFdID0gdXYxO1xyXG4gICAgICAgICAgICBjdXJyZW50VVZzW2luZGV4ICsgMl0gPSB1djI7XHJcbiAgICAgICAgICAgIGN1cnJlbnRVVnNbaW5kZXggKyAzXSA9IHV2MztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc2l6ZXMgYWxsIG9mIHRoZSBpbnRlcm5hbCBhcnJheXM6IGB2ZXJ0aWNlc2AsIGB1dmAsIGBjb2xvcnNgIGFuZCBgYWxwaGFzYCB0byB0aGUgbmV3XHJcbiAgICAgKiBnaXZlbiBSb3BlIHNlZ21lbnQgdG90YWwuXHJcbiAgICAgKiBcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlJvcGUjcmVzaXplQXJyYXlzXHJcbiAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gbmV3U2l6ZSAtIFRoZSBhbW91bnQgb2Ygc2VnbWVudHMgdG8gc3BsaXQgdGhlIFJvcGUgaW4gdG8uXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHJlc2l6ZUFycmF5czogZnVuY3Rpb24gKG5ld1NpemUpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGNvbG9ycyA9IHRoaXMuY29sb3JzO1xyXG4gICAgICAgIHZhciBhbHBoYXMgPSB0aGlzLmFscGhhcztcclxuXHJcbiAgICAgICAgdGhpcy52ZXJ0aWNlcyA9IG5ldyBGbG9hdDMyQXJyYXkobmV3U2l6ZSAqIDQpO1xyXG4gICAgICAgIHRoaXMudXYgPSBuZXcgRmxvYXQzMkFycmF5KG5ld1NpemUgKiA0KTtcclxuXHJcbiAgICAgICAgY29sb3JzID0gbmV3IFVpbnQzMkFycmF5KG5ld1NpemUgKiAyKTtcclxuICAgICAgICBhbHBoYXMgPSBuZXcgRmxvYXQzMkFycmF5KG5ld1NpemUgKiAyKTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXdTaXplICogMjsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY29sb3JzW2ldID0gMHhmZmZmZmY7XHJcbiAgICAgICAgICAgIGFscGhhc1tpXSA9IDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNvbG9ycyA9IGNvbG9ycztcclxuICAgICAgICB0aGlzLmFscGhhcyA9IGFscGhhcztcclxuXHJcbiAgICAgICAgLy8gIHVwZGF0ZVZlcnRpY2VzIGR1cmluZyBuZXh0IHJlbmRlclxyXG4gICAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHRoZSB2ZXJ0aWNlcyBiYXNlZCBvbiB0aGUgUm9wZSBwb2ludHMuXHJcbiAgICAgKiBcclxuICAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGR1cmluZyByZW5kZXJpbmcgaWYgYFJvcGUuZGlydHlgIGlzIGB0cnVlYCwgd2hpY2ggaXMgc2V0XHJcbiAgICAgKiBieSB0aGUgYHNldFBvaW50c2AgYW5kIGBzZXREaXJ0eWAgbWV0aG9kcy4gWW91IHNob3VsZCBmbGFnIHRoZSBSb3BlIGFzIGJlaW5nIGRpcnR5IGlmIHlvdSBtb2RpZnlcclxuICAgICAqIHRoZSBSb3BlIHBvaW50cyBkaXJlY3RseS5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUm9wZSN1cGRhdGVWZXJ0aWNlc1xyXG4gICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGVWZXJ0aWNlczogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgcGVycCA9IHRoaXMuX3BlcnA7XHJcbiAgICAgICAgdmFyIHBvaW50cyA9IHRoaXMucG9pbnRzO1xyXG4gICAgICAgIHZhciB2ZXJ0aWNlcyA9IHRoaXMudmVydGljZXM7XHJcblxyXG4gICAgICAgIHZhciB0b3RhbCA9IHBvaW50cy5sZW5ndGg7XHJcblxyXG4gICAgICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgaWYgKHRvdGFsIDwgMSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBuZXh0UG9pbnQ7XHJcbiAgICAgICAgdmFyIGxhc3RQb2ludCA9IHBvaW50c1swXTtcclxuXHJcbiAgICAgICAgdmFyIGZyYW1lU2l6ZSA9ICh0aGlzLmhvcml6b250YWwpID8gdGhpcy5mcmFtZS5oYWxmSGVpZ2h0IDogdGhpcy5mcmFtZS5oYWxmV2lkdGg7XHJcbiAgIFxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG90YWw7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBwb2ludCA9IHBvaW50c1tpXTtcclxuICAgICAgICAgICAgdmFyIGluZGV4ID0gaSAqIDQ7XHJcbiAgICBcclxuICAgICAgICAgICAgaWYgKGkgPCB0b3RhbCAtIDEpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG5leHRQb2ludCA9IHBvaW50c1tpICsgMV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuZXh0UG9pbnQgPSBwb2ludDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcGVycC54ID0gbmV4dFBvaW50LnkgLSBsYXN0UG9pbnQueTtcclxuICAgICAgICAgICAgcGVycC55ID0gLShuZXh0UG9pbnQueCAtIGxhc3RQb2ludC54KTtcclxuICAgIFxyXG4gICAgICAgICAgICB2YXIgcGVycExlbmd0aCA9IHBlcnAubGVuZ3RoKCk7XHJcblxyXG4gICAgICAgICAgICBwZXJwLnggLz0gcGVycExlbmd0aDtcclxuICAgICAgICAgICAgcGVycC55IC89IHBlcnBMZW5ndGg7XHJcbiAgICBcclxuICAgICAgICAgICAgcGVycC54ICo9IGZyYW1lU2l6ZTtcclxuICAgICAgICAgICAgcGVycC55ICo9IGZyYW1lU2l6ZTtcclxuXHJcbiAgICAgICAgICAgIHZlcnRpY2VzW2luZGV4XSA9IHBvaW50LnggKyBwZXJwLng7XHJcbiAgICAgICAgICAgIHZlcnRpY2VzW2luZGV4ICsgMV0gPSBwb2ludC55ICsgcGVycC55O1xyXG4gICAgICAgICAgICB2ZXJ0aWNlc1tpbmRleCArIDJdID0gcG9pbnQueCAtIHBlcnAueDtcclxuICAgICAgICAgICAgdmVydGljZXNbaW5kZXggKyAzXSA9IHBvaW50LnkgLSBwZXJwLnk7XHJcbiAgICBcclxuICAgICAgICAgICAgbGFzdFBvaW50ID0gcG9pbnQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIG1ldGhvZCBlbmFibGVzIHJlbmRlcmluZyBvZiB0aGUgUm9wZSB2ZXJ0aWNlcyB0byB0aGUgZ2l2ZW4gR3JhcGhpY3MgaW5zdGFuY2UuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHlvdSBlbmFibGUgdGhpcyBmZWF0dXJlLCB5b3UgbXVzdCBjYWxsIGBHcmFwaGljcy5jbGVhcigpYCBpbiB5b3VyIFNjZW5lIGB1cGRhdGVgLFxyXG4gICAgICogb3RoZXJ3aXNlIHRoZSBHcmFwaGljcyBpbnN0YW5jZSB3aWxsIGZpbGwtaW4gd2l0aCBkcmF3IGNhbGxzLiBUaGlzIGlzIG5vdCBkb25lIGF1dG9tYXRpY2FsbHlcclxuICAgICAqIHRvIGFsbG93IGZvciB5b3UgdG8gZGVidWcgcmVuZGVyIG11bHRpcGxlIFJvcGUgb2JqZWN0cyB0byBhIHNpbmdsZSBHcmFwaGljcyBpbnN0YW5jZS5cclxuICAgICAqIFxyXG4gICAgICogVGhlIFJvcGUgY2xhc3MgaGFzIGEgYnVpbHQtaW4gZGVidWcgcmVuZGVyaW5nIGNhbGxiYWNrIGBSb3BlLnJlbmRlckRlYnVnVmVydHNgLCBob3dldmVyXHJcbiAgICAgKiB5b3UgY2FuIGFsc28gcHJvdmlkZSB5b3VyIG93biBjYWxsYmFjayB0byBiZSB1c2VkIGluc3RlYWQuIERvIHRoaXMgYnkgc2V0dGluZyB0aGUgYGNhbGxiYWNrYCBwYXJhbWV0ZXIuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBjYWxsYmFjayBpcyBpbnZva2VkIF9vbmNlIHBlciByZW5kZXJfIGFuZCBzZW50IHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczpcclxuICAgICAqIFxyXG4gICAgICogYGNhbGxiYWNrKHNyYywgbWVzaExlbmd0aCwgdmVydHMpYFxyXG4gICAgICogXHJcbiAgICAgKiBgc3JjYCBpcyB0aGUgUm9wZSBpbnN0YW5jZSBiZWluZyBkZWJ1Z2dlZC5cclxuICAgICAqIGBtZXNoTGVuZ3RoYCBpcyB0aGUgbnVtYmVyIG9mIG1lc2ggdmVydGljZXMgaW4gdG90YWwuXHJcbiAgICAgKiBgdmVydHNgIGlzIGFuIGFycmF5IG9mIHRoZSB0cmFuc2xhdGVkIHZlcnRleCBjb29yZGluYXRlcy5cclxuICAgICAqIFxyXG4gICAgICogSWYgdXNpbmcgeW91ciBvd24gY2FsbGJhY2sgeW91IGRvIG5vdCBoYXZlIHRvIHByb3ZpZGUgYSBHcmFwaGljcyBpbnN0YW5jZSB0byB0aGlzIG1ldGhvZC5cclxuICAgICAqIFxyXG4gICAgICogVG8gZGlzYWJsZSBkZWJ1ZyByZW5kZXJpbmcsIHRvIGVpdGhlciB5b3VyIG93biBjYWxsYmFjayBvciB0aGUgYnVpbHQtaW4gb25lLCBjYWxsIHRoaXMgbWV0aG9kXHJcbiAgICAgKiB3aXRoIG5vIGFyZ3VtZW50cy5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUm9wZSNzZXREZWJ1Z1xyXG4gICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5HcmFwaGljc30gW2dyYXBoaWNdIC0gVGhlIEdyYXBoaWMgaW5zdGFuY2UgdG8gcmVuZGVyIHRvIGlmIHVzaW5nIHRoZSBidWlsdC1pbiBjYWxsYmFjay5cclxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtjYWxsYmFja10gLSBUaGUgY2FsbGJhY2sgdG8gaW52b2tlIGR1cmluZyBkZWJ1ZyByZW5kZXIuIExlYXZlIGFzIHVuZGVmaW5lZCB0byB1c2UgdGhlIGJ1aWx0LWluIGNhbGxiYWNrLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXREZWJ1ZzogZnVuY3Rpb24gKGdyYXBoaWMsIGNhbGxiYWNrKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZGVidWdHcmFwaGljID0gZ3JhcGhpYztcclxuXHJcbiAgICAgICAgaWYgKCFncmFwaGljICYmICFjYWxsYmFjaylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVidWdDYWxsYmFjayA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKCFjYWxsYmFjaylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVidWdDYWxsYmFjayA9IHRoaXMucmVuZGVyRGVidWdWZXJ0cztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5kZWJ1Z0NhbGxiYWNrID0gY2FsbGJhY2s7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYnVpbHQtaW4gUm9wZSB2ZXJ0aWNlcyBkZWJ1ZyByZW5kZXJpbmcgbWV0aG9kLlxyXG4gICAgICogXHJcbiAgICAgKiBTZWUgYFJvcGUuc2V0RGVidWdgIGZvciBtb3JlIGRldGFpbHMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUm9wZSNyZW5kZXJEZWJ1Z1ZlcnRzXHJcbiAgICAgKiBAc2luY2UgMy4yMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlJvcGV9IHNyYyAtIFRoZSBSb3BlIG9iamVjdCBiZWluZyByZW5kZXJlZC5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gbWVzaExlbmd0aCAtIFRoZSBudW1iZXIgb2YgdmVydGljZXMgaW4gdGhlIG1lc2guXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcltdfSB2ZXJ0cyAtIEFuIGFycmF5IG9mIHRyYW5zbGF0ZWQgdmVydGV4IGNvb3JkaW5hdGVzLlxyXG4gICAgICovXHJcbiAgICByZW5kZXJEZWJ1Z1ZlcnRzOiBmdW5jdGlvbiAoc3JjLCBtZXNoTGVuZ3RoLCB2ZXJ0cylcclxuICAgIHtcclxuICAgICAgICB2YXIgZ3JhcGhpYyA9IHNyYy5kZWJ1Z0dyYXBoaWM7XHJcblxyXG4gICAgICAgIHZhciBweDAgPSB2ZXJ0c1swXTtcclxuICAgICAgICB2YXIgcHkwID0gdmVydHNbMV07XHJcbiAgICAgICAgdmFyIHB4MSA9IHZlcnRzWzJdO1xyXG4gICAgICAgIHZhciBweTEgPSB2ZXJ0c1szXTtcclxuXHJcbiAgICAgICAgZ3JhcGhpYy5saW5lQmV0d2VlbihweDAsIHB5MCwgcHgxLCBweTEpO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gNDsgaSA8IG1lc2hMZW5ndGg7IGkgKz0gNClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciB4MCA9IHZlcnRzW2kgKyAwXTtcclxuICAgICAgICAgICAgdmFyIHkwID0gdmVydHNbaSArIDFdO1xyXG4gICAgICAgICAgICB2YXIgeDEgPSB2ZXJ0c1tpICsgMl07XHJcbiAgICAgICAgICAgIHZhciB5MSA9IHZlcnRzW2kgKyAzXTtcclxuXHJcbiAgICAgICAgICAgIGdyYXBoaWMubGluZUJldHdlZW4ocHgwLCBweTAsIHgwLCB5MCk7XHJcbiAgICAgICAgICAgIGdyYXBoaWMubGluZUJldHdlZW4ocHgxLCBweTEsIHgxLCB5MSk7XHJcbiAgICAgICAgICAgIGdyYXBoaWMubGluZUJldHdlZW4ocHgxLCBweTEsIHgwLCB5MCk7XHJcbiAgICAgICAgICAgIGdyYXBoaWMubGluZUJldHdlZW4oeDAsIHkwLCB4MSwgeTEpO1xyXG5cclxuICAgICAgICAgICAgcHgwID0geDA7XHJcbiAgICAgICAgICAgIHB5MCA9IHkwO1xyXG4gICAgICAgICAgICBweDEgPSB4MTtcclxuICAgICAgICAgICAgcHkxID0geTE7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgdGhlIHByZS1kZXN0cm95IHN0ZXAgZm9yIHRoZSBSb3BlLCB3aGljaCByZW1vdmVzIHRoZSBBbmltYXRpb24gY29tcG9uZW50IGFuZCB0eXBlZCBhcnJheXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUm9wZSNwcmVEZXN0cm95XHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMjMuMFxyXG4gICAgICovXHJcbiAgICBwcmVEZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuYW5pbXMuZGVzdHJveSgpO1xyXG5cclxuICAgICAgICB0aGlzLmFuaW1zID0gdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICB0aGlzLnBvaW50cyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy52ZXJ0aWNlcyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy51diA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jb2xvcnMgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuYWxwaGFzID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5kZWJ1Z0NhbGxiYWNrID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRlYnVnR3JhcGhpYyA9IG51bGw7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGhvcml6b250YWxseSBmbGlwcGVkIHN0YXRlIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICAgICAqIFxyXG4gICAgICogQSBHYW1lIE9iamVjdCB0aGF0IGlzIGZsaXBwZWQgaG9yaXpvbnRhbGx5IHdpbGwgcmVuZGVyIGludmVyc2VkIG9uIHRoZSBob3Jpem9udGFsIGF4aXMuXHJcbiAgICAgKiBGbGlwcGluZyBhbHdheXMgdGFrZXMgcGxhY2UgZnJvbSB0aGUgbWlkZGxlIG9mIHRoZSB0ZXh0dXJlIGFuZCBkb2VzIG5vdCBpbXBhY3QgdGhlIHNjYWxlIHZhbHVlLlxyXG4gICAgICogSWYgdGhpcyBHYW1lIE9iamVjdCBoYXMgYSBwaHlzaWNzIGJvZHksIGl0IHdpbGwgbm90IGNoYW5nZSB0aGUgYm9keS4gVGhpcyBpcyBhIHJlbmRlcmluZyB0b2dnbGUgb25seS5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJvcGUjZmxpcFhcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAqL1xyXG4gICAgZmxpcFg6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZsaXBYO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fZmxpcFggPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVVWcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHZlcnRpY2FsbHkgZmxpcHBlZCBzdGF0ZSBvZiB0aGUgR2FtZSBPYmplY3QuXHJcbiAgICAgKiBcclxuICAgICAqIEEgR2FtZSBPYmplY3QgdGhhdCBpcyBmbGlwcGVkIHZlcnRpY2FsbHkgd2lsbCByZW5kZXIgaW52ZXJzZWQgb24gdGhlIHZlcnRpY2FsIGF4aXMgKGkuZS4gdXBzaWRlIGRvd24pXHJcbiAgICAgKiBGbGlwcGluZyBhbHdheXMgdGFrZXMgcGxhY2UgZnJvbSB0aGUgbWlkZGxlIG9mIHRoZSB0ZXh0dXJlIGFuZCBkb2VzIG5vdCBpbXBhY3QgdGhlIHNjYWxlIHZhbHVlLlxyXG4gICAgICogSWYgdGhpcyBHYW1lIE9iamVjdCBoYXMgYSBwaHlzaWNzIGJvZHksIGl0IHdpbGwgbm90IGNoYW5nZSB0aGUgYm9keS4gVGhpcyBpcyBhIHJlbmRlcmluZyB0b2dnbGUgb25seS5cclxuICAgICAqIFxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlJvcGUjZmxpcFlcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgICAqIEBzaW5jZSAzLjIzLjBcclxuICAgICAqL1xyXG4gICAgZmxpcFk6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZsaXBZO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fZmxpcFkgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVVWcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUm9wZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhpcyBpcyBhIHN0dWIgZnVuY3Rpb24gZm9yIFJvcGUuUmVuZGVyLiBUaGVyZSBpcyBubyBDYW52YXMgcmVuZGVyZXIgZm9yIFJvcGUgb2JqZWN0cy5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUm9wZSNyZW5kZXJDYW52YXNcclxuICogQHNpbmNlIDMuMjMuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5DYW52YXMuQ2FudmFzUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIENhbnZhcyByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUm9wZX0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKi9cclxudmFyIFJvcGVDYW52YXNSZW5kZXJlciA9IGZ1bmN0aW9uICgpXHJcbntcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUm9wZUNhbnZhc1JlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBCdWlsZEdhbWVPYmplY3QgPSByZXF1aXJlKCcuLi9CdWlsZEdhbWVPYmplY3QnKTtcclxudmFyIEdhbWVPYmplY3RDcmVhdG9yID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdENyZWF0b3InKTtcclxudmFyIEdldEFkdmFuY2VkVmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0QWR2YW5jZWRWYWx1ZScpO1xyXG52YXIgR2V0VmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0VmFsdWUnKTtcclxudmFyIFJvcGUgPSByZXF1aXJlKCcuL1JvcGUnKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IFJvcGUgR2FtZSBPYmplY3QgYW5kIHJldHVybnMgaXQuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIFJvcGUgR2FtZSBPYmplY3QgYW5kIFdlYkdMIHN1cHBvcnQgaGF2ZSBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0Q3JlYXRvciNyb3BlXHJcbiAqIEBzaW5jZSAzLjIzLjBcclxuICpcclxuICogQHBhcmFtIHtvYmplY3R9IGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIGNyZWF0ZSBpdHNlbGYuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FkZFRvU2NlbmVdIC0gQWRkIHRoaXMgR2FtZSBPYmplY3QgdG8gdGhlIFNjZW5lIGFmdGVyIGNyZWF0aW5nIGl0PyBJZiBzZXQgdGhpcyBhcmd1bWVudCBvdmVycmlkZXMgdGhlIGBhZGRgIHByb3BlcnR5IGluIHRoZSBjb25maWcgb2JqZWN0LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuUm9wZX0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0Q3JlYXRvci5yZWdpc3Rlcigncm9wZScsIGZ1bmN0aW9uIChjb25maWcsIGFkZFRvU2NlbmUpXHJcbntcclxuICAgIGlmIChjb25maWcgPT09IHVuZGVmaW5lZCkgeyBjb25maWcgPSB7fTsgfVxyXG5cclxuICAgIHZhciBrZXkgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ2tleScsIG51bGwpO1xyXG4gICAgdmFyIGZyYW1lID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdmcmFtZScsIG51bGwpO1xyXG4gICAgdmFyIGhvcml6b250YWwgPSBHZXRBZHZhbmNlZFZhbHVlKGNvbmZpZywgJ2hvcml6b250YWwnLCB0cnVlKTtcclxuICAgIHZhciBwb2ludHMgPSBHZXRWYWx1ZShjb25maWcsICdwb2ludHMnLCB1bmRlZmluZWQpO1xyXG4gICAgdmFyIGNvbG9ycyA9IEdldFZhbHVlKGNvbmZpZywgJ2NvbG9ycycsIHVuZGVmaW5lZCk7XHJcbiAgICB2YXIgYWxwaGFzID0gR2V0VmFsdWUoY29uZmlnLCAnYWxwaGFzJywgdW5kZWZpbmVkKTtcclxuXHJcbiAgICB2YXIgcm9wZSA9IG5ldyBSb3BlKHRoaXMuc2NlbmUsIDAsIDAsIGtleSwgZnJhbWUsIHBvaW50cywgaG9yaXpvbnRhbCwgY29sb3JzLCBhbHBoYXMpO1xyXG5cclxuICAgIGlmIChhZGRUb1NjZW5lICE9PSB1bmRlZmluZWQpXHJcbiAgICB7XHJcbiAgICAgICAgY29uZmlnLmFkZCA9IGFkZFRvU2NlbmU7XHJcbiAgICB9XHJcblxyXG4gICAgQnVpbGRHYW1lT2JqZWN0KHRoaXMuc2NlbmUsIHJvcGUsIGNvbmZpZyk7XHJcblxyXG4gICAgcmV0dXJuIHJvcGU7XHJcbn0pO1xyXG5cclxuLy8gIFdoZW4gcmVnaXN0ZXJpbmcgYSBmYWN0b3J5IGZ1bmN0aW9uICd0aGlzJyByZWZlcnMgdG8gdGhlIEdhbWVPYmplY3RDcmVhdG9yIGNvbnRleHQuXHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFJvcGUgPSByZXF1aXJlKCcuL1JvcGUnKTtcclxudmFyIEdhbWVPYmplY3RGYWN0b3J5ID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdEZhY3RvcnknKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IFJvcGUgR2FtZSBPYmplY3QgYW5kIGFkZHMgaXQgdG8gdGhlIFNjZW5lLlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBSb3BlIEdhbWUgT2JqZWN0IGFuZCBXZWJHTCBzdXBwb3J0IGhhdmUgYmVlbiBidWlsdCBpbnRvIFBoYXNlci5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3Rvcnkjcm9wZVxyXG4gKiBAd2ViZ2xPbmx5XHJcbiAqIEBzaW5jZSAzLjIzLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0dXJlIC0gVGhlIGtleSBvZiB0aGUgVGV4dHVyZSB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIHJlbmRlciB3aXRoLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICogQHBhcmFtIHsoc3RyaW5nfGludGVnZXIpfSBbZnJhbWVdIC0gQW4gb3B0aW9uYWwgZnJhbWUgZnJvbSB0aGUgVGV4dHVyZSB0aGlzIEdhbWUgT2JqZWN0IGlzIHJlbmRlcmluZyB3aXRoLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5UeXBlcy5NYXRoLlZlY3RvcjJMaWtlW119IFtwb2ludHNdIC0gQW4gYXJyYXkgY29udGFpbmluZyB0aGUgdmVydGljZXMgZGF0YSBmb3IgdGhpcyBSb3BlLiBJZiBub25lIGlzIHByb3ZpZGVkIGEgc2ltcGxlIHF1YWQgaXMgY3JlYXRlZC4gU2VlIGBzZXRQb2ludHNgIHRvIHNldCB0aGlzIHBvc3QtY3JlYXRpb24uXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2hvcml6b250YWw9dHJ1ZV0gLSBTaG91bGQgdGhlIHZlcnRpY2VzIG9mIHRoaXMgUm9wZSBiZSBhbGlnbmVkIGhvcml6b250YWxseSAoYHRydWVgKSwgb3IgdmVydGljYWxseSAoYGZhbHNlYCk/XHJcbiAqIEBwYXJhbSB7bnVtYmVyW119IFtjb2xvcnNdIC0gQW4gb3B0aW9uYWwgYXJyYXkgY29udGFpbmluZyB0aGUgY29sb3IgZGF0YSBmb3IgdGhpcyBSb3BlLiBZb3Ugc2hvdWxkIHByb3ZpZGUgb25lIGNvbG9yIHZhbHVlIHBlciBwYWlyIG9mIHZlcnRpY2VzLlxyXG4gKiBAcGFyYW0ge251bWJlcltdfSBbYWxwaGFzXSAtIEFuIG9wdGlvbmFsIGFycmF5IGNvbnRhaW5pbmcgdGhlIGFscGhhIGRhdGEgZm9yIHRoaXMgUm9wZS4gWW91IHNob3VsZCBwcm92aWRlIG9uZSBhbHBoYSB2YWx1ZSBwZXIgcGFpciBvZiB2ZXJ0aWNlcy5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLlJvcGV9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuaWYgKHR5cGVvZiBXRUJHTF9SRU5ERVJFUilcclxue1xyXG4gICAgR2FtZU9iamVjdEZhY3RvcnkucmVnaXN0ZXIoJ3JvcGUnLCBmdW5jdGlvbiAoeCwgeSwgdGV4dHVyZSwgZnJhbWUsIHBvaW50cywgaG9yaXpvbnRhbCwgY29sb3JzLCBhbHBoYXMpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHJvcGUgPSBuZXcgUm9wZSh0aGlzLnNjZW5lLCB4LCB5LCB0ZXh0dXJlLCBmcmFtZSwgcG9pbnRzLCBob3Jpem9udGFsLCBjb2xvcnMsIGFscGhhcyk7XHJcblxyXG4gICAgICAgIHRoaXMuZGlzcGxheUxpc3QuYWRkKHJvcGUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVMaXN0LmFkZChyb3BlKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG4vLyAgV2hlbiByZWdpc3RlcmluZyBhIGZhY3RvcnkgZnVuY3Rpb24gJ3RoaXMnIHJlZmVycyB0byB0aGUgR2FtZU9iamVjdEZhY3RvcnkgY29udGV4dC5cclxuLy9cclxuLy8gIFRoZXJlIGFyZSBzZXZlcmFsIHByb3BlcnRpZXMgYXZhaWxhYmxlIHRvIHVzZTpcclxuLy9cclxuLy8gIHRoaXMuc2NlbmUgLSBhIHJlZmVyZW5jZSB0byB0aGUgU2NlbmUgdGhhdCBvd25zIHRoZSBHYW1lT2JqZWN0RmFjdG9yeVxyXG4vLyAgdGhpcy5kaXNwbGF5TGlzdCAtIGEgcmVmZXJlbmNlIHRvIHRoZSBEaXNwbGF5IExpc3QgdGhlIFNjZW5lIG93bnNcclxuLy8gIHRoaXMudXBkYXRlTGlzdCAtIGEgcmVmZXJlbmNlIHRvIHRoZSBVcGRhdGUgTGlzdCB0aGUgU2NlbmUgb3duc1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxudmFyIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxuXHJcbmlmICh0eXBlb2YgV0VCR0xfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi9Sb3BlV2ViR0xSZW5kZXJlcicpO1xyXG59XHJcblxyXG5pZiAodHlwZW9mIENBTlZBU19SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi9Sb3BlQ2FudmFzUmVuZGVyZXInKTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgcmVuZGVyV2ViR0w6IHJlbmRlcldlYkdMLFxyXG4gICAgcmVuZGVyQ2FudmFzOiByZW5kZXJDYW52YXNcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFV0aWxzID0gcmVxdWlyZSgnLi4vLi4vcmVuZGVyZXIvd2ViZ2wvVXRpbHMnKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Sb3BlI3JlbmRlcldlYkdMXHJcbiAqIEBzaW5jZSAzLjIzLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xSZW5kZXJlcn0gcmVuZGVyZXIgLSBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBhY3RpdmUgV2ViR0wgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlJvcGV9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICovXHJcbnZhciBSb3BlV2ViR0xSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBwaXBlbGluZSA9IHNyYy5waXBlbGluZTtcclxuXHJcbiAgICByZW5kZXJlci5zZXRQaXBlbGluZShwaXBlbGluZSwgc3JjKTtcclxuXHJcbiAgICB2YXIgY2FtTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgxO1xyXG4gICAgdmFyIHNwcml0ZU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MjtcclxuICAgIHZhciBjYWxjTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgzO1xyXG5cclxuICAgIHNwcml0ZU1hdHJpeC5hcHBseUlUUlMoc3JjLngsIHNyYy55LCBzcmMucm90YXRpb24sIHNyYy5zY2FsZVgsIHNyYy5zY2FsZVkpO1xyXG5cclxuICAgIGNhbU1hdHJpeC5jb3B5RnJvbShjYW1lcmEubWF0cml4KTtcclxuXHJcbiAgICBpZiAocGFyZW50TWF0cml4KVxyXG4gICAge1xyXG4gICAgICAgIC8vICBNdWx0aXBseSB0aGUgY2FtZXJhIGJ5IHRoZSBwYXJlbnQgbWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5V2l0aE9mZnNldChwYXJlbnRNYXRyaXgsIC1jYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYLCAtY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWSk7XHJcblxyXG4gICAgICAgIC8vICBVbmRvIHRoZSBjYW1lcmEgc2Nyb2xsXHJcbiAgICAgICAgc3ByaXRlTWF0cml4LmUgPSBzcmMueDtcclxuICAgICAgICBzcHJpdGVNYXRyaXguZiA9IHNyYy55O1xyXG5cclxuICAgICAgICAvLyAgTXVsdGlwbHkgYnkgdGhlIFNwcml0ZSBtYXRyaXgsIHN0b3JlIHJlc3VsdCBpbiBjYWxjTWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5KHNwcml0ZU1hdHJpeCwgY2FsY01hdHJpeCk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgc3ByaXRlTWF0cml4LmUgLT0gY2FtZXJhLnNjcm9sbFggKiBzcmMuc2Nyb2xsRmFjdG9yWDtcclxuICAgICAgICBzcHJpdGVNYXRyaXguZiAtPSBjYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZO1xyXG5cclxuICAgICAgICAvLyAgTXVsdGlwbHkgYnkgdGhlIFNwcml0ZSBtYXRyaXgsIHN0b3JlIHJlc3VsdCBpbiBjYWxjTWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5KHNwcml0ZU1hdHJpeCwgY2FsY01hdHJpeCk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGZyYW1lID0gc3JjLmZyYW1lO1xyXG4gICAgdmFyIHRleHR1cmUgPSBmcmFtZS5nbFRleHR1cmU7XHJcblxyXG4gICAgdmFyIHZlcnRpY2VzID0gc3JjLnZlcnRpY2VzO1xyXG4gICAgdmFyIHV2cyA9IHNyYy51djtcclxuICAgIHZhciBjb2xvcnMgPSBzcmMuY29sb3JzO1xyXG4gICAgdmFyIGFscGhhcyA9IHNyYy5hbHBoYXM7XHJcbiAgICB2YXIgYWxwaGEgPSBzcmMuYWxwaGE7XHJcbiAgICB2YXIgZ2V0VGludCA9IFV0aWxzLmdldFRpbnRBcHBlbmRGbG9hdEFscGhhQW5kU3dhcDtcclxuICAgIHZhciByb3VuZFBpeGVscyA9IGNhbWVyYS5yb3VuZFBpeGVscztcclxuXHJcbiAgICB2YXIgbWVzaFZlcnRpY2VzTGVuZ3RoID0gdmVydGljZXMubGVuZ3RoO1xyXG4gICAgdmFyIHZlcnRleENvdW50ID0gTWF0aC5mbG9vcihtZXNoVmVydGljZXNMZW5ndGggKiAwLjUpO1xyXG5cclxuICAgIC8vICBCZWNhdXNlIGl0J3MgYSB0cmlhbmdsZSBzdHJpcCBhbmQgd2UgZG9uJ3Qgd2FudCBsb3RzIG9mIGRlZ2VuZXJhdGUgdHJpYW5nbGVzIGpvaW5pbmcgdGhpbmdzIHVwXHJcbiAgICBwaXBlbGluZS5mbHVzaCgpO1xyXG5cclxuICAgIHBpcGVsaW5lLnNldFRleHR1cmUyRCh0ZXh0dXJlLCAwKTtcclxuXHJcbiAgICB2YXIgdmVydGV4Vmlld0YzMiA9IHBpcGVsaW5lLnZlcnRleFZpZXdGMzI7XHJcbiAgICB2YXIgdmVydGV4Vmlld1UzMiA9IHBpcGVsaW5lLnZlcnRleFZpZXdVMzI7XHJcblxyXG4gICAgdmFyIHZlcnRleE9mZnNldCA9IChwaXBlbGluZS52ZXJ0ZXhDb3VudCAqIHBpcGVsaW5lLnZlcnRleENvbXBvbmVudENvdW50KSAtIDE7XHJcblxyXG4gICAgdmFyIGNvbG9ySW5kZXggPSAwO1xyXG5cclxuICAgIHZhciB0aW50RWZmZWN0ID0gc3JjLnRpbnRGaWxsO1xyXG5cclxuICAgIGlmIChzcmMuZGlydHkpXHJcbiAgICB7XHJcbiAgICAgICAgc3JjLnVwZGF0ZVZlcnRpY2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIGRlYnVnQ2FsbGJhY2sgPSBzcmMuZGVidWdDYWxsYmFjaztcclxuICAgIHZhciBkZWJ1Z1ZlcnRzID0gW107XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNoVmVydGljZXNMZW5ndGg7IGkgKz0gMilcclxuICAgIHtcclxuICAgICAgICB2YXIgeCA9IHZlcnRpY2VzW2kgKyAwXTtcclxuICAgICAgICB2YXIgeSA9IHZlcnRpY2VzW2kgKyAxXTtcclxuXHJcbiAgICAgICAgdmFyIHR4ID0geCAqIGNhbGNNYXRyaXguYSArIHkgKiBjYWxjTWF0cml4LmMgKyBjYWxjTWF0cml4LmU7XHJcbiAgICAgICAgdmFyIHR5ID0geCAqIGNhbGNNYXRyaXguYiArIHkgKiBjYWxjTWF0cml4LmQgKyBjYWxjTWF0cml4LmY7XHJcblxyXG4gICAgICAgIGlmIChyb3VuZFBpeGVscylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHR4ID0gTWF0aC5yb3VuZCh0eCk7XHJcbiAgICAgICAgICAgIHR5ID0gTWF0aC5yb3VuZCh0eSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2ZXJ0ZXhWaWV3RjMyWysrdmVydGV4T2Zmc2V0XSA9IHR4O1xyXG4gICAgICAgIHZlcnRleFZpZXdGMzJbKyt2ZXJ0ZXhPZmZzZXRdID0gdHk7XHJcbiAgICAgICAgdmVydGV4Vmlld0YzMlsrK3ZlcnRleE9mZnNldF0gPSB1dnNbaSArIDBdO1xyXG4gICAgICAgIHZlcnRleFZpZXdGMzJbKyt2ZXJ0ZXhPZmZzZXRdID0gdXZzW2kgKyAxXTtcclxuICAgICAgICB2ZXJ0ZXhWaWV3RjMyWysrdmVydGV4T2Zmc2V0XSA9IHRpbnRFZmZlY3Q7XHJcbiAgICAgICAgdmVydGV4Vmlld1UzMlsrK3ZlcnRleE9mZnNldF0gPSBnZXRUaW50KGNvbG9yc1tjb2xvckluZGV4XSwgY2FtZXJhLmFscGhhICogKGFscGhhc1tjb2xvckluZGV4XSAqIGFscGhhKSk7XHJcblxyXG4gICAgICAgIGNvbG9ySW5kZXgrKztcclxuXHJcbiAgICAgICAgaWYgKGRlYnVnQ2FsbGJhY2spXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBkZWJ1Z1ZlcnRzW2kgKyAwXSA9IHR4O1xyXG4gICAgICAgICAgICBkZWJ1Z1ZlcnRzW2kgKyAxXSA9IHR5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGVidWdDYWxsYmFjaylcclxuICAgIHtcclxuICAgICAgICBkZWJ1Z0NhbGxiYWNrLmNhbGwoc3JjLCBzcmMsIG1lc2hWZXJ0aWNlc0xlbmd0aCwgZGVidWdWZXJ0cyk7XHJcbiAgICB9XHJcblxyXG4gICAgcGlwZWxpbmUudmVydGV4Q291bnQgKz0gdmVydGV4Q291bnQ7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFJvcGVXZWJHTFJlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBDb21wb25lbnRzID0gcmVxdWlyZSgnLi4vY29tcG9uZW50cycpO1xyXG52YXIgR2FtZU9iamVjdCA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3QnKTtcclxudmFyIEdldEZhc3RWYWx1ZSA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9HZXRGYXN0VmFsdWUnKTtcclxudmFyIEV4dGVuZCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL29iamVjdC9FeHRlbmQnKTtcclxudmFyIFNldFZhbHVlID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvb2JqZWN0L1NldFZhbHVlJyk7XHJcbnZhciBTaGFkZXJSZW5kZXIgPSByZXF1aXJlKCcuL1NoYWRlclJlbmRlcicpO1xyXG52YXIgVHJhbnNmb3JtTWF0cml4ID0gcmVxdWlyZSgnLi4vY29tcG9uZW50cy9UcmFuc2Zvcm1NYXRyaXgnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIEEgU2hhZGVyIEdhbWUgT2JqZWN0LlxyXG4gKiBcclxuICogVGhpcyBHYW1lIE9iamVjdCBhbGxvd3MgeW91IHRvIGVhc2lseSBhZGQgYSBxdWFkIHdpdGggaXRzIG93biBzaGFkZXIgaW50byB0aGUgZGlzcGxheSBsaXN0LCBhbmQgbWFuaXB1bGF0ZSBpdFxyXG4gKiBhcyB5b3Ugd291bGQgYW55IG90aGVyIEdhbWUgT2JqZWN0LCBpbmNsdWRpbmcgc2NhbGluZywgcm90YXRpbmcsIHBvc2l0aW9uaW5nIGFuZCBhZGRpbmcgdG8gQ29udGFpbmVycy4gU2hhZGVyc1xyXG4gKiBjYW4gYmUgbWFza2VkIHdpdGggZWl0aGVyIEJpdG1hcCBvciBHZW9tZXRyeSBtYXNrcyBhbmQgY2FuIGFsc28gYmUgdXNlZCBhcyBhIEJpdG1hcCBNYXNrIGZvciBhIENhbWVyYSBvciBvdGhlclxyXG4gKiBHYW1lIE9iamVjdC4gVGhleSBjYW4gYWxzbyBiZSBtYWRlIGludGVyYWN0aXZlIGFuZCB1c2VkIGZvciBpbnB1dCBldmVudHMuXHJcbiAqIFxyXG4gKiBJdCB3b3JrcyBieSB0YWtpbmcgYSByZWZlcmVuY2UgdG8gYSBgUGhhc2VyLkRpc3BsYXkuQmFzZVNoYWRlcmAgaW5zdGFuY2UsIGFzIGZvdW5kIGluIHRoZSBTaGFkZXIgQ2FjaGUuIFRoZXNlIGNhblxyXG4gKiBiZSBjcmVhdGVkIGR5bmFtaWNhbGx5IGF0IHJ1bnRpbWUsIG9yIGxvYWRlZCBpbiB2aWEgdGhlIEdMU0wgRmlsZSBMb2FkZXI6XHJcbiAqIFxyXG4gKiBgYGBqYXZhc2NyaXB0XHJcbiAqIGZ1bmN0aW9uIHByZWxvYWQgKClcclxuICoge1xyXG4gKiAgICAgdGhpcy5sb2FkLmdsc2woJ2ZpcmUnLCAnc2hhZGVycy9maXJlLmdsc2wuanMnKTtcclxuICogfVxyXG4gKiAgXHJcbiAqIGZ1bmN0aW9uIGNyZWF0ZSAoKVxyXG4gKiB7XHJcbiAqICAgICB0aGlzLmFkZC5zaGFkZXIoJ2ZpcmUnLCA0MDAsIDMwMCwgNTEyLCA1MTIpO1xyXG4gKiB9XHJcbiAqIGBgYFxyXG4gKiBcclxuICogUGxlYXNlIHNlZSB0aGUgUGhhc2VyIDMgRXhhbXBsZXMgR2l0SHViIHJlcG8gZm9yIGV4YW1wbGVzIG9mIGxvYWRpbmcgYW5kIGNyZWF0aW5nIHNoYWRlcnMgZHluYW1pY2FsbHkuXHJcbiAqIFxyXG4gKiBEdWUgdG8gdGhlIHdheSBpbiB3aGljaCB0aGV5IHdvcmssIHlvdSBjYW5ub3QgZGlyZWN0bHkgY2hhbmdlIHRoZSBhbHBoYSBvciBibGVuZCBtb2RlIG9mIGEgU2hhZGVyLiBUaGlzIHNob3VsZFxyXG4gKiBiZSBoYW5kbGVkIHZpYSBleHBvc2VkIHVuaWZvcm1zIGluIHRoZSBzaGFkZXIgY29kZSBpdHNlbGYuXHJcbiAqIFxyXG4gKiBCeSBkZWZhdWx0IGEgU2hhZGVyIHdpbGwgYmUgY3JlYXRlZCB3aXRoIGEgc3RhbmRhcmQgc2V0IG9mIHVuaWZvcm1zLiBUaGVzZSB3ZXJlIGFkZGVkIHRvIG1hdGNoIHRob3NlXHJcbiAqIGZvdW5kIG9uIHNpdGVzIHN1Y2ggYXMgU2hhZGVyVG95IG9yIEdMU0xTYW5kYm94LCBhbmQgcHJvdmlkZSBjb21tb24gZnVuY3Rpb25hbGl0eSBhIHNoYWRlciBtYXkgbmVlZCxcclxuICogc3VjaCBhcyB0aGUgdGltZXN0YW1wLCByZXNvbHV0aW9uIG9yIHBvaW50ZXIgcG9zaXRpb24uIFlvdSBjYW4gcmVwbGFjZSB0aGVtIGJ5IHNwZWNpZnlpbmcgeW91ciBvd24gdW5pZm9ybXNcclxuICogaW4gdGhlIEJhc2UgU2hhZGVyLlxyXG4gKiBcclxuICogVGhlc2UgU2hhZGVycyB3b3JrIGJ5IGhhbHRpbmcgdGhlIGN1cnJlbnQgcGlwZWxpbmUgZHVyaW5nIHJlbmRlcmluZywgY3JlYXRpbmcgYSB2aWV3cG9ydCBtYXRjaGVkIHRvIHRoZVxyXG4gKiBzaXplIG9mIHRoaXMgR2FtZSBPYmplY3QgYW5kIHRoZW4gcmVuZGVycyBhIHF1YWQgdXNpbmcgdGhlIGJvdW5kIHNoYWRlci4gQXQgdGhlIGVuZCwgdGhlIHBpcGVsaW5lIGlzIHJlc3RvcmVkLlxyXG4gKiBcclxuICogQmVjYXVzZSBpdCBibG9ja3MgdGhlIHBpcGVsaW5lIGl0IG1lYW5zIGl0IHdpbGwgaW50ZXJydXB0IGFueSBiYXRjaGluZyB0aGF0IGlzIGN1cnJlbnRseSBnb2luZyBvbiwgc28geW91IHNob3VsZFxyXG4gKiB1c2UgdGhlc2UgR2FtZSBPYmplY3RzIHNwYXJpbmdseS4gSWYgeW91IG5lZWQgdG8gaGF2ZSBhIGZ1bGx5IGJhdGNoZWQgY3VzdG9tIHNoYWRlciwgdGhlbiBwbGVhc2UgbG9vayBhdCB1c2luZ1xyXG4gKiBhIGN1c3RvbSBwaXBlbGluZSBpbnN0ZWFkLiBIb3dldmVyLCBmb3IgYmFja2dyb3VuZCBvciBzcGVjaWFsIG1hc2tpbmcgZWZmZWN0cywgdGhleSBhcmUgZXh0cmVtZWx5IGVmZmVjdGl2ZS5cclxuICogXHJcbiAqIEBjbGFzcyBTaGFkZXJcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHdlYmdsT25seVxyXG4gKiBAc2luY2UgMy4xNy4wXHJcbiAqXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkNvbXB1dGVkU2l6ZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5EZXB0aFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5HZXRCb3VuZHNcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuTWFza1xyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5PcmlnaW5cclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuU2Nyb2xsRmFjdG9yXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5WaXNpYmxlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSB0byB3aGljaCB0aGlzIEdhbWUgT2JqZWN0IGJlbG9uZ3MuIEEgR2FtZSBPYmplY3QgY2FuIG9ubHkgYmVsb25nIHRvIG9uZSBTY2VuZSBhdCBhIHRpbWUuXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xQaGFzZXIuRGlzcGxheS5CYXNlU2hhZGVyKX0ga2V5IC0gVGhlIGtleSBvZiB0aGUgc2hhZGVyIHRvIHVzZSBmcm9tIHRoZSBzaGFkZXIgY2FjaGUsIG9yIGEgQmFzZVNoYWRlciBpbnN0YW5jZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt3aWR0aD0xMjhdIC0gVGhlIHdpZHRoIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtoZWlnaHQ9MTI4XSAtIFRoZSBoZWlnaHQgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBbdGV4dHVyZXNdIC0gT3B0aW9uYWwgYXJyYXkgb2YgdGV4dHVyZSBrZXlzIHRvIGJpbmQgdG8gdGhlIGlDaGFubmVsMC4uLjMgdW5pZm9ybXMuIFRoZSB0ZXh0dXJlcyBtdXN0IGFscmVhZHkgZXhpc3QgaW4gdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICogQHBhcmFtIHthbnl9IFt0ZXh0dXJlRGF0YV0gLSBBZGRpdGlvbmFsIHRleHR1cmUgZGF0YSBpZiB5b3Ugd2FudCB0byBjcmVhdGUgc2hhZGVyIHdpdGggbm9uZSBOUE9UIHRleHR1cmVzLlxyXG4gKi9cclxudmFyIFNoYWRlciA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogR2FtZU9iamVjdCxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBDb21wb25lbnRzLkNvbXB1dGVkU2l6ZSxcclxuICAgICAgICBDb21wb25lbnRzLkRlcHRoLFxyXG4gICAgICAgIENvbXBvbmVudHMuR2V0Qm91bmRzLFxyXG4gICAgICAgIENvbXBvbmVudHMuTWFzayxcclxuICAgICAgICBDb21wb25lbnRzLk9yaWdpbixcclxuICAgICAgICBDb21wb25lbnRzLlNjcm9sbEZhY3RvcixcclxuICAgICAgICBDb21wb25lbnRzLlRyYW5zZm9ybSxcclxuICAgICAgICBDb21wb25lbnRzLlZpc2libGUsXHJcbiAgICAgICAgU2hhZGVyUmVuZGVyXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gU2hhZGVyIChzY2VuZSwga2V5LCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCB0ZXh0dXJlcywgdGV4dHVyZURhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZCkgeyB4ID0gMDsgfVxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IDA7IH1cclxuICAgICAgICBpZiAod2lkdGggPT09IHVuZGVmaW5lZCkgeyB3aWR0aCA9IDEyODsgfVxyXG4gICAgICAgIGlmIChoZWlnaHQgPT09IHVuZGVmaW5lZCkgeyBoZWlnaHQgPSAxMjg7IH1cclxuXHJcbiAgICAgICAgR2FtZU9iamVjdC5jYWxsKHRoaXMsIHNjZW5lLCAnU2hhZGVyJyk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoaXMgR2FtZSBPYmplY3QgY2Fubm90IGhhdmUgYSBibGVuZCBtb2RlLCBzbyBza2lwIGFsbCBjaGVja3MuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNibGVuZE1vZGVcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmJsZW5kTW9kZSA9IC0xO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgdW5kZXJseWluZyBzaGFkZXIgb2JqZWN0IGJlaW5nIHVzZWQuXHJcbiAgICAgICAgICogRW1wdHkgYnkgZGVmYXVsdCBhbmQgc2V0IGR1cmluZyBhIGNhbGwgdG8gdGhlIGBzZXRTaGFkZXJgIG1ldGhvZC5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI3NoYWRlclxyXG4gICAgICAgICAqIEB0eXBlIHtQaGFzZXIuRGlzcGxheS5CYXNlU2hhZGVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNoYWRlcjtcclxuXHJcbiAgICAgICAgdmFyIHJlbmRlcmVyID0gc2NlbmUuc3lzLnJlbmRlcmVyO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCByZW5kZXJlci5cclxuICAgICAgICAgKiBTaGFkZXJzIG9ubHkgd29yayB3aXRoIHRoZSBXZWJHTCBSZW5kZXJlci5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI3JlbmRlcmVyXHJcbiAgICAgICAgICogQHR5cGUgeyhQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfFBoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyKX1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgV2ViR0wgY29udGV4dCBiZWxvbmdpbmcgdG8gdGhlIHJlbmRlcmVyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNnbFxyXG4gICAgICAgICAqIEB0eXBlIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZ2wgPSByZW5kZXJlci5nbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUmF3IGJ5dGUgYnVmZmVyIG9mIHZlcnRpY2VzIHRoaXMgU2hhZGVyIHVzZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI3ZlcnRleERhdGFcclxuICAgICAgICAgKiBAdHlwZSB7QXJyYXlCdWZmZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudmVydGV4RGF0YSA9IG5ldyBBcnJheUJ1ZmZlcig2ICogKEZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDIpKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIFdlYkdMIHZlcnRleCBidWZmZXIgb2JqZWN0IHRoaXMgc2hhZGVyIHVzZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI3ZlcnRleEJ1ZmZlclxyXG4gICAgICAgICAqIEB0eXBlIHtXZWJHTEJ1ZmZlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy52ZXJ0ZXhCdWZmZXIgPSByZW5kZXJlci5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy52ZXJ0ZXhEYXRhLmJ5dGVMZW5ndGgsIHRoaXMuZ2wuU1RSRUFNX0RSQVcpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgV2ViR0wgc2hhZGVyIHByb2dyYW0gdGhpcyBzaGFkZXIgdXNlcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFkZXIjcHJvZ3JhbVxyXG4gICAgICAgICAqIEB0eXBlIHtXZWJHTFByb2dyYW19XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucHJvZ3JhbSA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFVpbnQ4IHZpZXcgdG8gdGhlIHZlcnRleCByYXcgYnVmZmVyLiBVc2VkIGZvciB1cGxvYWRpbmcgdmVydGV4IGJ1ZmZlciByZXNvdXJjZXMgdG8gdGhlIEdQVS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFkZXIjYnl0ZXNcclxuICAgICAgICAgKiBAdHlwZSB7VWludDhBcnJheX1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5ieXRlcyA9IG5ldyBVaW50OEFycmF5KHRoaXMudmVydGV4RGF0YSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEZsb2F0MzIgdmlldyBvZiB0aGUgYXJyYXkgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIHNoYWRlcnMgdmVydGljZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI3ZlcnRleFZpZXdGMzJcclxuICAgICAgICAgKiBAdHlwZSB7RmxvYXQzMkFycmF5fVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnZlcnRleFZpZXdGMzIgPSBuZXcgRmxvYXQzMkFycmF5KHRoaXMudmVydGV4RGF0YSk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgdGVtcG9yYXJ5IFRyYW5zZm9ybSBNYXRyaXgsIHJlLXVzZWQgaW50ZXJuYWxseSBkdXJpbmcgYmF0Y2hpbmcuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI190ZW1wTWF0cml4MVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fdGVtcE1hdHJpeDEgPSBuZXcgVHJhbnNmb3JtTWF0cml4KCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgdGVtcG9yYXJ5IFRyYW5zZm9ybSBNYXRyaXgsIHJlLXVzZWQgaW50ZXJuYWxseSBkdXJpbmcgYmF0Y2hpbmcuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI190ZW1wTWF0cml4MlxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fdGVtcE1hdHJpeDIgPSBuZXcgVHJhbnNmb3JtTWF0cml4KCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgdGVtcG9yYXJ5IFRyYW5zZm9ybSBNYXRyaXgsIHJlLXVzZWQgaW50ZXJuYWxseSBkdXJpbmcgYmF0Y2hpbmcuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI190ZW1wTWF0cml4M1xyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH1cclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fdGVtcE1hdHJpeDMgPSBuZXcgVHJhbnNmb3JtTWF0cml4KCk7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB2aWV3IG1hdHJpeCB0aGUgc2hhZGVyIHVzZXMgZHVyaW5nIHJlbmRlcmluZy5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI3ZpZXdNYXRyaXhcclxuICAgICAgICAgKiBAdHlwZSB7RmxvYXQzMkFycmF5fVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnZpZXdNYXRyaXggPSBuZXcgRmxvYXQzMkFycmF5KFsgMSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSwgMCwgMCwgMCwgMCwgMSBdKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHByb2plY3Rpb24gbWF0cml4IHRoZSBzaGFkZXIgdXNlcyBkdXJpbmcgcmVuZGVyaW5nLlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFkZXIjcHJvamVjdGlvbk1hdHJpeFxyXG4gICAgICAgICAqIEB0eXBlIHtGbG9hdDMyQXJyYXl9XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucHJvamVjdGlvbk1hdHJpeCA9IG5ldyBGbG9hdDMyQXJyYXkoWyAxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxIF0pO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgZGVmYXVsdCB1bmlmb3JtIG1hcHBpbmdzLiBUaGVzZSBjYW4gYmUgYWRkZWQgdG8gKG9yIHJlcGxhY2VkKSBieSBzcGVjaWZ5aW5nIHlvdXIgb3duIHVuaWZvcm1zIHdoZW5cclxuICAgICAgICAgKiBjcmVhdGluZyB0aGlzIHNoYWRlciBnYW1lIG9iamVjdC4gVGhlIHVuaWZvcm1zIGFyZSB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgZHVyaW5nIHRoZSByZW5kZXIgc3RlcC5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBUaGUgZGVmYXVsdHMgYXJlOlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIGByZXNvbHV0aW9uYCAoMmYpIC0gU2V0IHRvIHRoZSBzaXplIG9mIHRoaXMgc2hhZGVyLlxyXG4gICAgICAgICAqIGB0aW1lYCAoMWYpIC0gVGhlIGVsYXBzZWQgZ2FtZSB0aW1lLCBpbiBzZWNvbmRzLlxyXG4gICAgICAgICAqIGBtb3VzZWAgKDJmKSAtIElmIGEgcG9pbnRlciBoYXMgYmVlbiBib3VuZCAod2l0aCBgc2V0UG9pbnRlcmApLCB0aGlzIHVuaWZvcm0gY29udGFpbnMgaXRzIHBvc2l0aW9uIGVhY2ggZnJhbWUuXHJcbiAgICAgICAgICogYGRhdGVgICg0ZnYpIC0gQSB2ZWM0IGNvbnRhaW5pbmcgdGhlIHllYXIsIG1vbnRoLCBkYXkgYW5kIHRpbWUgaW4gc2Vjb25kcy5cclxuICAgICAgICAgKiBgc2FtcGxlUmF0ZWAgKDFmKSAtIFNvdW5kIHNhbXBsZSByYXRlLiA0NDEwMCBieSBkZWZhdWx0LlxyXG4gICAgICAgICAqIGBpQ2hhbm5lbDAuLi4zYCAoc2FtcGxlcjJEKSAtIElucHV0IGNoYW5uZWxzIDAgdG8gMy4gYG51bGxgIGJ5IGRlZmF1bHQuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciN1bmlmb3Jtc1xyXG4gICAgICAgICAqIEB0eXBlIHthbnl9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMudW5pZm9ybXMgPSB7fTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHBvaW50ZXIgYm91bmQgdG8gdGhpcyBzaGFkZXIsIGlmIGFueS5cclxuICAgICAgICAgKiBTZXQgdmlhIHRoZSBjaGFpbmFibGUgYHNldFBvaW50ZXJgIG1ldGhvZCwgb3IgYnkgbW9kaWZ5aW5nIHRoaXMgcHJvcGVydHkgZGlyZWN0bHkuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNwb2ludGVyXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5JbnB1dC5Qb2ludGVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnBvaW50ZXIgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgY2FjaGVkIHdpZHRoIG9mIHRoZSByZW5kZXJlci5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI19yZW5kZXJlcldpZHRoXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9yZW5kZXJlcldpZHRoID0gcmVuZGVyZXIud2lkdGg7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjYWNoZWQgaGVpZ2h0IG9mIHRoZSByZW5kZXJlci5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI19yZW5kZXJlckhlaWdodFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXJIZWlnaHQgPSByZW5kZXJlci5oZWlnaHQ7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEludGVybmFsIHRleHR1cmUgY291bnQgdHJhY2tlci5cclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI190ZXh0dXJlQ291bnRcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3RleHR1cmVDb3VudCA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBHTCBGcmFtZSBCdWZmZXIgdGhpcyBTaGFkZXIgaXMgZHJhd2luZyB0by5cclxuICAgICAgICAgKiBUaGlzIHByb3BlcnR5IGlzIG9ubHkgc2V0IGlmIHlvdSBoYXZlIGNhbGxlZCBgU2hhZGVyLnNldFJlbmRlclRvVGV4dHVyZWAuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI2ZyYW1lYnVmZmVyXHJcbiAgICAgICAgICogQHR5cGUgez9XZWJHTEZyYW1lYnVmZmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE5LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZyYW1lYnVmZmVyID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIFdlYkdMVGV4dHVyZSB0aGlzIFNoYWRlciBpcyByZW5kZXJpbmcgdG8uXHJcbiAgICAgICAgICogVGhpcyBwcm9wZXJ0eSBpcyBvbmx5IHNldCBpZiB5b3UgaGF2ZSBjYWxsZWQgYFNoYWRlci5zZXRSZW5kZXJUb1RleHR1cmVgLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNnbFRleHR1cmVcclxuICAgICAgICAgKiBAdHlwZSB7P1dlYkdMVGV4dHVyZX1cclxuICAgICAgICAgKiBAc2luY2UgMy4xOS4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5nbFRleHR1cmUgPSBudWxsO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIGZsYWcgdGhhdCBpbmRpY2F0ZXMgaWYgdGhpcyBTaGFkZXIgaGFzIGJlZW4gc2V0IHRvIHJlbmRlciB0byBhIHRleHR1cmUgaW5zdGVhZCBvZiB0aGUgZGlzcGxheSBsaXN0LlxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIFRoaXMgcHJvcGVydHkgaXMgYHRydWVgIGlmIHlvdSBoYXZlIGNhbGxlZCBgU2hhZGVyLnNldFJlbmRlclRvVGV4dHVyZWAsIG90aGVyd2lzZSBpdCdzIGBmYWxzZWAuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogQSBTaGFkZXIgdGhhdCBpcyByZW5kZXJpbmcgdG8gYSB0ZXh0dXJlIF9kb2VzIG5vdF8gYXBwZWFyIG9uIHRoZSBkaXNwbGF5IGxpc3QuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI3JlbmRlclRvVGV4dHVyZVxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE5LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJlbmRlclRvVGV4dHVyZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgUGhhc2VyLlRleHR1cmVzLlRleHR1cmUgdGhhdCBoYXMgYmVlbiBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlciBmb3IgdGhpcyBTaGFkZXIuXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICogVGhpcyBwcm9wZXJ0eSBpcyBvbmx5IHNldCBpZiB5b3UgaGF2ZSBjYWxsZWQgYFNoYWRlci5zZXRSZW5kZXJUb1RleHR1cmVgLCBvdGhlcndpc2UgaXQgaXMgYG51bGxgLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciN0ZXh0dXJlXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5UZXh0dXJlcy5UZXh0dXJlfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjE5LjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnRleHR1cmUgPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIHRoaXMuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuICAgICAgICB0aGlzLnNldE9yaWdpbigwLjUsIDAuNSk7XHJcbiAgICAgICAgdGhpcy5zZXRTaGFkZXIoa2V5LCB0ZXh0dXJlcywgdGV4dHVyZURhdGEpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbXBhcmVzIHRoZSByZW5kZXJNYXNrIHdpdGggdGhlIHJlbmRlckZsYWdzIHRvIHNlZSBpZiB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgcmVuZGVyIG9yIG5vdC5cclxuICAgICAqIEFsc28gY2hlY2tzIHRoZSBHYW1lIE9iamVjdCBhZ2FpbnN0IHRoZSBnaXZlbiBDYW1lcmFzIGV4Y2x1c2lvbiBsaXN0LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciN3aWxsUmVuZGVyXHJcbiAgICAgKiBAc2luY2UgMy4wLjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRvIGNoZWNrIGFnYWluc3QgdGhpcyBHYW1lIE9iamVjdC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBUcnVlIGlmIHRoZSBHYW1lIE9iamVjdCBzaG91bGQgYmUgcmVuZGVyZWQsIG90aGVyd2lzZSBmYWxzZS5cclxuICAgICAqL1xyXG4gICAgd2lsbFJlbmRlcjogZnVuY3Rpb24gKGNhbWVyYSlcclxuICAgIHtcclxuICAgICAgICBpZiAodGhpcy5yZW5kZXJUb1RleHR1cmUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuICEoR2FtZU9iamVjdC5SRU5ERVJfTUFTSyAhPT0gdGhpcy5yZW5kZXJGbGFncyB8fCAodGhpcy5jYW1lcmFGaWx0ZXIgIT09IDAgJiYgKHRoaXMuY2FtZXJhRmlsdGVyICYgY2FtZXJhLmlkKSkpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGFuZ2VzIHRoaXMgU2hhZGVyIHNvIGluc3RlYWQgb2YgcmVuZGVyaW5nIHRvIHRoZSBkaXNwbGF5IGxpc3QgaXQgcmVuZGVycyB0byBhXHJcbiAgICAgKiBXZWJHTCBGcmFtZWJ1ZmZlciBhbmQgV2ViR0wgVGV4dHVyZSBpbnN0ZWFkLiBUaGlzIGFsbG93cyB5b3UgdG8gdXNlIHRoZSBvdXRwdXRcclxuICAgICAqIG9mIHRoaXMgc2hhZGVyIGFzIGFuIGlucHV0IGZvciBhbm90aGVyIHNoYWRlciwgYnkgbWFwcGluZyBhIHNhbXBsZXIyRCB1bmlmb3JtXHJcbiAgICAgKiB0byBpdC5cclxuICAgICAqIFxyXG4gICAgICogQWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZCB0aGUgYFNoYWRlci5mcmFtZWJ1ZmZlcmAgYW5kIGBTaGFkZXIuZ2xUZXh0dXJlYCBwcm9wZXJ0aWVzXHJcbiAgICAgKiBhcmUgcG9wdWxhdGVkLlxyXG4gICAgICogXHJcbiAgICAgKiBBZGRpdGlvbmFsbHksIHlvdSBjYW4gcHJvdmlkZSBhIGtleSB0byB0aGlzIG1ldGhvZC4gRG9pbmcgc28gd2lsbCBjcmVhdGUgYSBQaGFzZXIgVGV4dHVyZVxyXG4gICAgICogZnJvbSB0aGlzIFNoYWRlciBhbmQgc2F2ZSBpdCBpbnRvIHRoZSBUZXh0dXJlIE1hbmFnZXIsIGFsbG93aW5nIHlvdSB0byB0aGVuIHVzZSBpdCBmb3JcclxuICAgICAqIGFueSB0ZXh0dXJlLWJhc2VkIEdhbWUgT2JqZWN0LCBzdWNoIGFzIGEgU3ByaXRlIG9yIEltYWdlOlxyXG4gICAgICogXHJcbiAgICAgKiBgYGBqYXZhc2NyaXB0XHJcbiAgICAgKiB2YXIgc2hhZGVyID0gdGhpcy5hZGQuc2hhZGVyKCdteVNoYWRlcicsIHgsIHksIHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgICogXHJcbiAgICAgKiBzaGFkZXIuc2V0UmVuZGVyVG9UZXh0dXJlKCdkb29kbGUnKTtcclxuICAgICAqIFxyXG4gICAgICogdGhpcy5hZGQuaW1hZ2UoNDAwLCAzMDAsICdkb29kbGUnKTtcclxuICAgICAqIGBgYFxyXG4gICAgICogXHJcbiAgICAgKiBOb3RlIHRoYXQgaXQgc3RvcmVzIGFuIGFjdGl2ZSByZWZlcmVuY2UgdG8gdGhpcyBTaGFkZXIuIFRoYXQgbWVhbnMgYXMgdGhpcyBzaGFkZXIgdXBkYXRlcyxcclxuICAgICAqIHNvIGRvZXMgdGhlIHRleHR1cmUgYW5kIGFueSBvYmplY3QgdXNpbmcgaXQgdG8gcmVuZGVyIHdpdGguIEFsc28sIGlmIHlvdSBkZXN0cm95IHRoaXNcclxuICAgICAqIHNoYWRlciwgYmUgc3VyZSB0byBjbGVhciBhbnkgb2JqZWN0cyB0aGF0IG1heSBoYXZlIGJlZW4gdXNpbmcgaXQgYXMgYSB0ZXh0dXJlIHRvby5cclxuICAgICAqIFxyXG4gICAgICogWW91IGNhbiBhY2Nlc3MgdGhlIFBoYXNlciBUZXh0dXJlIHRoYXQgaXMgY3JlYXRlZCB2aWEgdGhlIGBTaGFkZXIudGV4dHVyZWAgcHJvcGVydHkuXHJcbiAgICAgKiBcclxuICAgICAqIEJ5IGRlZmF1bHQgaXQgd2lsbCBjcmVhdGUgYSBzaW5nbGUgYmFzZSB0ZXh0dXJlLiBZb3UgY2FuIGFkZCBmcmFtZXMgdG8gdGhlIHRleHR1cmVcclxuICAgICAqIGJ5IHVzaW5nIHRoZSBgVGV4dHVyZS5hZGRgIG1ldGhvZC4gQWZ0ZXIgZG9pbmcgdGhpcywgeW91IGNhbiB0aGVuIGFsbG93IEdhbWUgT2JqZWN0c1xyXG4gICAgICogdG8gdXNlIGEgc3BlY2lmaWMgZnJhbWUgZnJvbSBhIFJlbmRlciBUZXh0dXJlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNzZXRSZW5kZXJUb1RleHR1cmVcclxuICAgICAqIEBzaW5jZSAzLjE5LjBcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2tleV0gLSBUaGUgdW5pcXVlIGtleSB0byBzdG9yZSB0aGUgdGV4dHVyZSBhcyB3aXRoaW4gdGhlIGdsb2JhbCBUZXh0dXJlIE1hbmFnZXIuXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtmbGlwWT1mYWxzZV0gLSBEb2VzIHRoaXMgdGV4dHVyZSBuZWVkIHZlcnRpY2FsbHkgZmxpcHBpbmcgYmVmb3JlIHJlbmRlcmluZz8gVGhpcyBzaG91bGQgdXN1YWxseSBiZSBzZXQgdG8gYHRydWVgIGlmIGJlaW5nIGZlZCBmcm9tIGEgYnVmZmVyLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgU2hhZGVyIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRSZW5kZXJUb1RleHR1cmU6IGZ1bmN0aW9uIChrZXksIGZsaXBZKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChmbGlwWSA9PT0gdW5kZWZpbmVkKSB7IGZsaXBZID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnJlbmRlclRvVGV4dHVyZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciB3aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICAgICAgICAgIHZhciBoZWlnaHQgPSB0aGlzLmhlaWdodDtcclxuICAgICAgICAgICAgdmFyIHJlbmRlcmVyID0gdGhpcy5yZW5kZXJlcjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZ2xUZXh0dXJlID0gcmVuZGVyZXIuY3JlYXRlVGV4dHVyZUZyb21Tb3VyY2UobnVsbCwgd2lkdGgsIGhlaWdodCwgMCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdsVGV4dHVyZS5mbGlwWSA9IGZsaXBZO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5mcmFtZWJ1ZmZlciA9IHJlbmRlcmVyLmNyZWF0ZUZyYW1lYnVmZmVyKHdpZHRoLCBoZWlnaHQsIHRoaXMuZ2xUZXh0dXJlLCBmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlcldpZHRoID0gd2lkdGg7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVySGVpZ2h0ID0gaGVpZ2h0O1xyXG5cclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJUb1RleHR1cmUgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5wcm9qT3J0aG8oMCwgdGhpcy53aWR0aCwgdGhpcy5oZWlnaHQsIDApO1xyXG5cclxuICAgICAgICAgICAgaWYgKGtleSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50ZXh0dXJlID0gdGhpcy5zY2VuZS5zeXMudGV4dHVyZXMuYWRkR0xUZXh0dXJlKGtleSwgdGhpcy5nbFRleHR1cmUsIHdpZHRoLCBoZWlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgQW5kIG5vdyByZW5kZXIgYXQgbGVhc3Qgb25jZSwgc28gb3VyIHRleHR1cmUgaXNuJ3QgYmxhbmsgb24gdGhlIGZpcnN0IHVwZGF0ZVxyXG5cclxuICAgICAgICBpZiAodGhpcy5zaGFkZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgcGlwZWxpbmUgPSByZW5kZXJlci5jdXJyZW50UGlwZWxpbmU7XHJcblxyXG4gICAgICAgICAgICByZW5kZXJlci5jbGVhclBpcGVsaW5lKCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgICAgICAgICB0aGlzLmZsdXNoKCk7XHJcbiAgICBcclxuICAgICAgICAgICAgcmVuZGVyZXIucmViaW5kUGlwZWxpbmUocGlwZWxpbmUpO1xyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGZyYWdtZW50IGFuZCwgb3B0aW9uYWxseSwgdGhlIHZlcnRleCBzaGFkZXIgc291cmNlIGNvZGUgdGhhdCB0aGlzIFNoYWRlciB3aWxsIHVzZS5cclxuICAgICAqIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBkZWxldGUgdGhlIGFjdGl2ZSBzaGFkZXIgcHJvZ3JhbSwgaWYgc2V0LCBhbmQgdGhlbiBjcmVhdGUgYSBuZXcgb25lXHJcbiAgICAgKiB3aXRoIHRoZSBnaXZlbiBzb3VyY2UuIEZpbmFsbHksIHRoZSBzaGFkZXIgdW5pZm9ybXMgYXJlIGluaXRpYWxpemVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNzZXRTaGFkZXJcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHsoc3RyaW5nfFBoYXNlci5EaXNwbGF5LkJhc2VTaGFkZXIpfSBrZXkgLSBUaGUga2V5IG9mIHRoZSBzaGFkZXIgdG8gdXNlIGZyb20gdGhlIHNoYWRlciBjYWNoZSwgb3IgYSBCYXNlU2hhZGVyIGluc3RhbmNlLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gW3RleHR1cmVzXSAtIE9wdGlvbmFsIGFycmF5IG9mIHRleHR1cmUga2V5cyB0byBiaW5kIHRvIHRoZSBpQ2hhbm5lbDAuLi4zIHVuaWZvcm1zLiBUaGUgdGV4dHVyZXMgbXVzdCBhbHJlYWR5IGV4aXN0IGluIHRoZSBUZXh0dXJlIE1hbmFnZXIuXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gW3RleHR1cmVEYXRhXSAtIEFkZGl0aW9uYWwgdGV4dHVyZSBkYXRhLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFNoYWRlciBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0U2hhZGVyOiBmdW5jdGlvbiAoa2V5LCB0ZXh0dXJlcywgdGV4dHVyZURhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRleHR1cmVzID09PSB1bmRlZmluZWQpIHsgdGV4dHVyZXMgPSBbXTsgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgY2FjaGUgPSB0aGlzLnNjZW5lLnN5cy5jYWNoZS5zaGFkZXI7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNhY2hlLmhhcyhrZXkpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1NoYWRlciBtaXNzaW5nOiAnICsga2V5KTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgdGhpcy5zaGFkZXIgPSBjYWNoZS5nZXQoa2V5KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zaGFkZXIgPSBrZXk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgZ2wgPSB0aGlzLmdsO1xyXG4gICAgICAgIHZhciByZW5kZXJlciA9IHRoaXMucmVuZGVyZXI7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnByb2dyYW0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBnbC5kZWxldGVQcm9ncmFtKHRoaXMucHJvZ3JhbSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgcHJvZ3JhbSA9IHJlbmRlcmVyLmNyZWF0ZVByb2dyYW0odGhpcy5zaGFkZXIudmVydGV4U3JjLCB0aGlzLnNoYWRlci5mcmFnbWVudFNyYyk7XHJcblxyXG4gICAgICAgIC8vICBUaGUgZGVmYXVsdCB1bmlmb3JtcyBhdmFpbGFibGUgd2l0aGluIHRoZSB2ZXJ0ZXggc2hhZGVyXHJcbiAgICAgICAgcmVuZGVyZXIuc2V0TWF0cml4NChwcm9ncmFtLCAndVZpZXdNYXRyaXgnLCBmYWxzZSwgdGhpcy52aWV3TWF0cml4KTtcclxuICAgICAgICByZW5kZXJlci5zZXRNYXRyaXg0KHByb2dyYW0sICd1UHJvamVjdGlvbk1hdHJpeCcsIGZhbHNlLCB0aGlzLnByb2plY3Rpb25NYXRyaXgpO1xyXG4gICAgICAgIHJlbmRlcmVyLnNldEZsb2F0Mihwcm9ncmFtLCAndVJlc29sdXRpb24nLCB0aGlzLndpZHRoLCB0aGlzLmhlaWdodCk7XHJcblxyXG4gICAgICAgIHRoaXMucHJvZ3JhbSA9IHByb2dyYW07XHJcblxyXG4gICAgICAgIHZhciBkID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICAgICAgLy8gIFRoZSBkZWZhdWx0IHVuaWZvcm1zIGF2YWlsYWJsZSB3aXRoaW4gdGhlIGZyYWdtZW50IHNoYWRlclxyXG4gICAgICAgIHZhciBkZWZhdWx0VW5pZm9ybXMgPSB7XHJcbiAgICAgICAgICAgIHJlc29sdXRpb246IHsgdHlwZTogJzJmJywgdmFsdWU6IHsgeDogdGhpcy53aWR0aCwgeTogdGhpcy5oZWlnaHQgfSB9LFxyXG4gICAgICAgICAgICB0aW1lOiB7IHR5cGU6ICcxZicsIHZhbHVlOiAwIH0sXHJcbiAgICAgICAgICAgIG1vdXNlOiB7IHR5cGU6ICcyZicsIHZhbHVlOiB7IHg6IHRoaXMud2lkdGggLyAyLCB5OiB0aGlzLmhlaWdodCAvIDIgfSB9LFxyXG4gICAgICAgICAgICBkYXRlOiB7IHR5cGU6ICc0ZnYnLCB2YWx1ZTogWyBkLmdldEZ1bGxZZWFyKCksIGQuZ2V0TW9udGgoKSwgZC5nZXREYXRlKCksIGQuZ2V0SG91cnMoKSAqIDYwICogNjAgKyBkLmdldE1pbnV0ZXMoKSAqIDYwICsgZC5nZXRTZWNvbmRzKCkgXSB9LFxyXG4gICAgICAgICAgICBzYW1wbGVSYXRlOiB7IHR5cGU6ICcxZicsIHZhbHVlOiA0NDEwMC4wIH0sXHJcbiAgICAgICAgICAgIGlDaGFubmVsMDogeyB0eXBlOiAnc2FtcGxlcjJEJywgdmFsdWU6IG51bGwsIHRleHR1cmVEYXRhOiB7IHJlcGVhdDogdHJ1ZSB9IH0sXHJcbiAgICAgICAgICAgIGlDaGFubmVsMTogeyB0eXBlOiAnc2FtcGxlcjJEJywgdmFsdWU6IG51bGwsIHRleHR1cmVEYXRhOiB7IHJlcGVhdDogdHJ1ZSB9IH0sXHJcbiAgICAgICAgICAgIGlDaGFubmVsMjogeyB0eXBlOiAnc2FtcGxlcjJEJywgdmFsdWU6IG51bGwsIHRleHR1cmVEYXRhOiB7IHJlcGVhdDogdHJ1ZSB9IH0sXHJcbiAgICAgICAgICAgIGlDaGFubmVsMzogeyB0eXBlOiAnc2FtcGxlcjJEJywgdmFsdWU6IG51bGwsIHRleHR1cmVEYXRhOiB7IHJlcGVhdDogdHJ1ZSB9IH1cclxuICAgICAgICB9O1xyXG4gXHJcbiAgICAgICAgaWYgKHRoaXMuc2hhZGVyLnVuaWZvcm1zKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy51bmlmb3JtcyA9IEV4dGVuZCh0cnVlLCB7fSwgdGhpcy5zaGFkZXIudW5pZm9ybXMsIGRlZmF1bHRVbmlmb3Jtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMudW5pZm9ybXMgPSBkZWZhdWx0VW5pZm9ybXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDQ7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmICh0ZXh0dXJlc1tpXSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTYW1wbGVyMkQoJ2lDaGFubmVsJyArIGksIHRleHR1cmVzW2ldLCBpLCB0ZXh0dXJlRGF0YSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdFVuaWZvcm1zKCk7XHJcblxyXG4gICAgICAgIHRoaXMucHJvak9ydGhvKDAsIHRoaXMuX3JlbmRlcmVyV2lkdGgsIHRoaXMuX3JlbmRlcmVySGVpZ2h0LCAwKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmluZHMgYSBQaGFzZXIgUG9pbnRlciBvYmplY3QgdG8gdGhpcyBTaGFkZXIuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBzY3JlZW4gcG9zaXRpb24gb2YgdGhlIHBvaW50ZXIgd2lsbCBiZSBzZXQgaW4gdG8gdGhlIHNoYWRlcnMgYG1vdXNlYCB1bmlmb3JtXHJcbiAgICAgKiBhdXRvbWF0aWNhbGx5IGV2ZXJ5IGZyYW1lLiBDYWxsIHRoaXMgbWV0aG9kIHdpdGggbm8gYXJndW1lbnRzIHRvIHVuYmluZCB0aGUgcG9pbnRlci5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFkZXIjc2V0UG9pbnRlclxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge1BoYXNlci5JbnB1dC5Qb2ludGVyfSBbcG9pbnRlcl0gLSBUaGUgUG9pbnRlciB0byBiaW5kIHRvIHRoaXMgc2hhZGVyLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFNoYWRlciBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0UG9pbnRlcjogZnVuY3Rpb24gKHBvaW50ZXIpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5wb2ludGVyID0gcG9pbnRlcjtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGlzIHNoYWRlciB0byB1c2UgYW4gb3J0aG9ncmFwaGljIHByb2plY3Rpb24gbWF0cml4LlxyXG4gICAgICogVGhpcyBtYXRyaXggaXMgc3RvcmVkIGxvY2FsbHkgaW4gdGhlIGBwcm9qZWN0aW9uTWF0cml4YCBwcm9wZXJ0eSxcclxuICAgICAqIGFzIHdlbGwgYXMgYmVpbmcgYm91bmQgdG8gdGhlIGB1UHJvamVjdGlvbk1hdHJpeGAgdW5pZm9ybS5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI3Byb2pPcnRob1xyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsZWZ0IC0gVGhlIGxlZnQgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcmlnaHQgLSBUaGUgcmlnaHQgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gYm90dG9tIC0gVGhlIGJvdHRvbSB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0b3AgLSBUaGUgdG9wIHZhbHVlLlxyXG4gICAgICovXHJcbiAgICBwcm9qT3J0aG86IGZ1bmN0aW9uIChsZWZ0LCByaWdodCwgYm90dG9tLCB0b3ApXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIG5lYXIgPSAtMTAwMDtcclxuICAgICAgICB2YXIgZmFyID0gMTAwMDtcclxuXHJcbiAgICAgICAgdmFyIGxlZnRSaWdodCA9IDEgLyAobGVmdCAtIHJpZ2h0KTtcclxuICAgICAgICB2YXIgYm90dG9tVG9wID0gMSAvIChib3R0b20gLSB0b3ApO1xyXG4gICAgICAgIHZhciBuZWFyRmFyID0gMSAvIChuZWFyIC0gZmFyKTtcclxuXHJcbiAgICAgICAgdmFyIHBtID0gdGhpcy5wcm9qZWN0aW9uTWF0cml4O1xyXG5cclxuICAgICAgICBwbVswXSA9IC0yICogbGVmdFJpZ2h0O1xyXG4gICAgICAgIHBtWzVdID0gLTIgKiBib3R0b21Ub3A7XHJcbiAgICAgICAgcG1bMTBdID0gMiAqIG5lYXJGYXI7XHJcbiAgICAgICAgcG1bMTJdID0gKGxlZnQgKyByaWdodCkgKiBsZWZ0UmlnaHQ7XHJcbiAgICAgICAgcG1bMTNdID0gKHRvcCArIGJvdHRvbSkgKiBib3R0b21Ub3A7XHJcbiAgICAgICAgcG1bMTRdID0gKGZhciArIG5lYXIpICogbmVhckZhcjtcclxuXHJcbiAgICAgICAgdmFyIHByb2dyYW0gPSB0aGlzLnByb2dyYW07XHJcblxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0TWF0cml4NChwcm9ncmFtLCAndVByb2plY3Rpb25NYXRyaXgnLCBmYWxzZSwgdGhpcy5wcm9qZWN0aW9uTWF0cml4KTtcclxuXHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXJXaWR0aCA9IHJpZ2h0O1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVySGVpZ2h0ID0gYm90dG9tO1xyXG4gICAgfSxcclxuXHJcbiAgICAvLyBVbmlmb3JtcyBhcmUgc3BlY2lmaWVkIGluIHRoZSBHTFNMX0VTIFNwZWNpZmljYXRpb246IGh0dHA6Ly93d3cua2hyb25vcy5vcmcvcmVnaXN0cnkvd2ViZ2wvc3BlY3MvbGF0ZXN0LzEuMC9cclxuICAgIC8vIGh0dHA6Ly93d3cua2hyb25vcy5vcmcvcmVnaXN0cnkvZ2xlcy9zcGVjcy8yLjAvR0xTTF9FU19TcGVjaWZpY2F0aW9uXzEuMC4xNy5wZGZcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGFsbCBvZiB0aGUgdW5pZm9ybXMgdGhpcyBzaGFkZXIgdXNlcy5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI2luaXRVbmlmb3Jtc1xyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqL1xyXG4gICAgaW5pdFVuaWZvcm1zOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBnbCA9IHRoaXMuZ2w7XHJcbiAgICAgICAgdmFyIG1hcCA9IHRoaXMucmVuZGVyZXIuZ2xGdW5jTWFwO1xyXG4gICAgICAgIHZhciBwcm9ncmFtID0gdGhpcy5wcm9ncmFtO1xyXG5cclxuICAgICAgICB0aGlzLl90ZXh0dXJlQ291bnQgPSAwO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy51bmlmb3JtcylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciB1bmlmb3JtID0gdGhpcy51bmlmb3Jtc1trZXldO1xyXG5cclxuICAgICAgICAgICAgdmFyIHR5cGUgPSB1bmlmb3JtLnR5cGU7XHJcbiAgICAgICAgICAgIHZhciBkYXRhID0gbWFwW3R5cGVdO1xyXG5cclxuICAgICAgICAgICAgdW5pZm9ybS51bmlmb3JtTG9jYXRpb24gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwga2V5KTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlICE9PSAnc2FtcGxlcjJEJylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdW5pZm9ybS5nbE1hdHJpeCA9IGRhdGEubWF0cml4O1xyXG4gICAgICAgICAgICAgICAgdW5pZm9ybS5nbFZhbHVlTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICB1bmlmb3JtLmdsRnVuYyA9IGRhdGEuZnVuYztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGEgc2FtcGxlcjJEIHVuaWZvcm0gb24gdGhpcyBzaGFkZXIgd2hlcmUgdGhlIHNvdXJjZSB0ZXh0dXJlIGlzIGEgV2ViR0xUZXh0dXJlLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gZmVlZCB0aGUgb3V0cHV0IGZyb20gb25lIFNoYWRlciBpbnRvIGFub3RoZXI6XHJcbiAgICAgKiBcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIGxldCBzaGFkZXIxID0gdGhpcy5hZGQuc2hhZGVyKGJhc2VTaGFkZXIxLCAwLCAwLCA1MTIsIDUxMikuc2V0UmVuZGVyVG9UZXh0dXJlKCk7XHJcbiAgICAgKiBsZXQgc2hhZGVyMiA9IHRoaXMuYWRkLnNoYWRlcihiYXNlU2hhZGVyMiwgMCwgMCwgNTEyLCA1MTIpLnNldFJlbmRlclRvVGV4dHVyZSgnb3V0cHV0Jyk7XHJcbiAgICAgKiBcclxuICAgICAqIHNoYWRlcjEuc2V0U2FtcGxlcjJEQnVmZmVyKCdpQ2hhbm5lbDAnLCBzaGFkZXIyLmdsVGV4dHVyZSwgNTEyLCA1MTIpO1xyXG4gICAgICogc2hhZGVyMi5zZXRTYW1wbGVyMkRCdWZmZXIoJ2lDaGFubmVsMCcsIHNoYWRlcjEuZ2xUZXh0dXJlLCA1MTIsIDUxMik7XHJcbiAgICAgKiBgYGBcclxuICAgICAqIFxyXG4gICAgICogSW4gdGhlIGFib3ZlIGNvZGUsIHRoZSByZXN1bHQgb2YgYmFzZVNoYWRlcjEgaXMgZmVkIGludG8gU2hhZGVyMiBhcyB0aGUgYGlDaGFubmVsMGAgc2FtcGxlcjJEIHVuaWZvcm0uXHJcbiAgICAgKiBUaGUgcmVzdWx0IG9mIGJhc2VTaGFkZXIyIGlzIHRoZW4gZmVkIGJhY2sgaW50byBzaGFkZXIxIGFnYWluLCBjcmVhdGluZyBhIGZlZWRiYWNrIGxvb3AuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHlvdSB3aXNoIHRvIHVzZSBhbiBpbWFnZSBmcm9tIHRoZSBUZXh0dXJlIE1hbmFnZXIgYXMgYSBzYW1wbGVyMkQgaW5wdXQgZm9yIHRoaXMgc2hhZGVyLFxyXG4gICAgICogc2VlIHRoZSBgU2hhZGVyLnNldFNhbXBsZXIyRGAgbWV0aG9kLlxyXG4gICAgICogXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFkZXIjc2V0U2FtcGxlcjJEQnVmZmVyXHJcbiAgICAgKiBAc2luY2UgMy4xOS4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1bmlmb3JtS2V5IC0gVGhlIGtleSBvZiB0aGUgc2FtcGxlcjJEIHVuaWZvcm0gdG8gYmUgdXBkYXRlZCwgaS5lLiBgaUNoYW5uZWwwYC5cclxuICAgICAqIEBwYXJhbSB7V2ViR0xUZXh0dXJlfSB0ZXh0dXJlIC0gQSBXZWJHTFRleHR1cmUgcmVmZXJlbmNlLlxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSB3aWR0aCAtIFRoZSB3aWR0aCBvZiB0aGUgdGV4dHVyZS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gaGVpZ2h0IC0gVGhlIGhlaWdodCBvZiB0aGUgdGV4dHVyZS5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3RleHR1cmVJbmRleD0wXSAtIFRoZSB0ZXh0dXJlIGluZGV4LlxyXG4gICAgICogQHBhcmFtIHthbnl9IFt0ZXh0dXJlRGF0YV0gLSBBZGRpdGlvbmFsIHRleHR1cmUgZGF0YS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBTaGFkZXIgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFNhbXBsZXIyREJ1ZmZlcjogZnVuY3Rpb24gKHVuaWZvcm1LZXksIHRleHR1cmUsIHdpZHRoLCBoZWlnaHQsIHRleHR1cmVJbmRleCwgdGV4dHVyZURhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRleHR1cmVJbmRleCA9PT0gdW5kZWZpbmVkKSB7IHRleHR1cmVJbmRleCA9IDA7IH1cclxuICAgICAgICBpZiAodGV4dHVyZURhdGEgPT09IHVuZGVmaW5lZCkgeyB0ZXh0dXJlRGF0YSA9IHt9OyB9XHJcblxyXG4gICAgICAgIHZhciB1bmlmb3JtID0gdGhpcy51bmlmb3Jtc1t1bmlmb3JtS2V5XTtcclxuXHJcbiAgICAgICAgdW5pZm9ybS52YWx1ZSA9IHRleHR1cmU7XHJcblxyXG4gICAgICAgIHRleHR1cmVEYXRhLndpZHRoID0gd2lkdGg7XHJcbiAgICAgICAgdGV4dHVyZURhdGEuaGVpZ2h0ID0gaGVpZ2h0O1xyXG5cclxuICAgICAgICB1bmlmb3JtLnRleHR1cmVEYXRhID0gdGV4dHVyZURhdGE7XHJcblxyXG4gICAgICAgIHRoaXMuX3RleHR1cmVDb3VudCA9IHRleHR1cmVJbmRleDtcclxuXHJcbiAgICAgICAgdGhpcy5pbml0U2FtcGxlcjJEKHVuaWZvcm0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGEgc2FtcGxlcjJEIHVuaWZvcm0gb24gdGhpcyBzaGFkZXIuXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSB0ZXh0dXJlS2V5IGdpdmVuIGlzIHRoZSBrZXkgZnJvbSB0aGUgVGV4dHVyZSBNYW5hZ2VyIGNhY2hlLiBZb3UgY2Fubm90IHVzZSBhIHNpbmdsZSBmcmFtZVxyXG4gICAgICogZnJvbSBhIHRleHR1cmUsIG9ubHkgdGhlIGZ1bGwgaW1hZ2UuIEFsc28sIGxvdHMgb2Ygc2hhZGVycyBleHBlY3QgdGV4dHVyZXMgdG8gYmUgcG93ZXItb2YtdHdvIHNpemVkLlxyXG4gICAgICogXHJcbiAgICAgKiBJZiB5b3Ugd2lzaCB0byB1c2UgYW5vdGhlciBTaGFkZXIgYXMgYSBzYW1wbGVyMkQgaW5wdXQgZm9yIHRoaXMgc2hhZGVyLCBzZWUgdGhlIGBTaGFkZXIuc2V0U2FtcGxlcjJEQnVmZmVyYCBtZXRob2QuXHJcbiAgICAgKiBcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNzZXRTYW1wbGVyMkRcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVuaWZvcm1LZXkgLSBUaGUga2V5IG9mIHRoZSBzYW1wbGVyMkQgdW5pZm9ybSB0byBiZSB1cGRhdGVkLCBpLmUuIGBpQ2hhbm5lbDBgLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHR1cmVLZXkgLSBUaGUga2V5IG9mIHRoZSB0ZXh0dXJlLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci4gTXVzdCBhbHJlYWR5IGJlIGxvYWRlZC5cclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gW3RleHR1cmVJbmRleD0wXSAtIFRoZSB0ZXh0dXJlIGluZGV4LlxyXG4gICAgICogQHBhcmFtIHthbnl9IFt0ZXh0dXJlRGF0YV0gLSBBZGRpdGlvbmFsIHRleHR1cmUgZGF0YS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBTaGFkZXIgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFNhbXBsZXIyRDogZnVuY3Rpb24gKHVuaWZvcm1LZXksIHRleHR1cmVLZXksIHRleHR1cmVJbmRleCwgdGV4dHVyZURhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRleHR1cmVJbmRleCA9PT0gdW5kZWZpbmVkKSB7IHRleHR1cmVJbmRleCA9IDA7IH1cclxuXHJcbiAgICAgICAgdmFyIHRleHR1cmVNYW5hZ2VyID0gdGhpcy5zY2VuZS5zeXMudGV4dHVyZXM7XHJcblxyXG4gICAgICAgIGlmICh0ZXh0dXJlTWFuYWdlci5leGlzdHModGV4dHVyZUtleSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgZnJhbWUgPSB0ZXh0dXJlTWFuYWdlci5nZXRGcmFtZSh0ZXh0dXJlS2V5KTtcclxuICAgICAgICAgICAgdmFyIHVuaWZvcm0gPSB0aGlzLnVuaWZvcm1zW3VuaWZvcm1LZXldO1xyXG4gICAgICAgICAgICB2YXIgc291cmNlID0gZnJhbWUuc291cmNlO1xyXG5cclxuICAgICAgICAgICAgdW5pZm9ybS50ZXh0dXJlS2V5ID0gdGV4dHVyZUtleTtcclxuICAgICAgICAgICAgdW5pZm9ybS5zb3VyY2UgPSBzb3VyY2UuaW1hZ2U7XHJcbiAgICAgICAgICAgIHVuaWZvcm0udmFsdWUgPSBmcmFtZS5nbFRleHR1cmU7XHJcblxyXG4gICAgICAgICAgICBpZiAoc291cmNlLmlzR0xUZXh0dXJlKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRleHR1cmVEYXRhKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHR1cmVEYXRhID0ge307XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGV4dHVyZURhdGEud2lkdGggPSBzb3VyY2Uud2lkdGg7XHJcbiAgICAgICAgICAgICAgICB0ZXh0dXJlRGF0YS5oZWlnaHQgPSBzb3VyY2UuaGVpZ2h0O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGV4dHVyZURhdGEpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHVuaWZvcm0udGV4dHVyZURhdGEgPSB0ZXh0dXJlRGF0YTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5fdGV4dHVyZUNvdW50ID0gdGV4dHVyZUluZGV4O1xyXG5cclxuICAgICAgICAgICAgdGhpcy5pbml0U2FtcGxlcjJEKHVuaWZvcm0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBhIHByb3BlcnR5IG9mIGEgdW5pZm9ybSBhbHJlYWR5IHByZXNlbnQgb24gdGhpcyBzaGFkZXIuXHJcbiAgICAgKiBcclxuICAgICAqIFRvIG1vZGlmeSB0aGUgdmFsdWUgb2YgYSB1bmlmb3JtIHN1Y2ggYXMgYSAxZiBvciAxaSB1c2UgdGhlIGB2YWx1ZWAgcHJvcGVydHkgZGlyZWN0bHk6XHJcbiAgICAgKiBcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIHNoYWRlci5zZXRVbmlmb3JtKCdzaXplLnZhbHVlJywgMTYpO1xyXG4gICAgICogYGBgXHJcbiAgICAgKiBcclxuICAgICAqIFlvdSBjYW4gdXNlIGRvdCBub3RhdGlvbiB0byBhY2Nlc3MgZGVlcGVyIHZhbHVlcywgZm9yIGV4YW1wbGU6XHJcbiAgICAgKiBcclxuICAgICAqIGBgYGphdmFzY3JpcHRcclxuICAgICAqIHNoYWRlci5zZXRVbmlmb3JtKCdyZXNvbHV0aW9uLnZhbHVlLngnLCA1MTIpO1xyXG4gICAgICogYGBgXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSBjaGFuZ2UgdG8gdGhlIHVuaWZvcm0gd2lsbCB0YWtlIGVmZmVjdCB0aGUgbmV4dCB0aW1lIHRoZSBzaGFkZXIgaXMgcmVuZGVyZWQuXHJcbiAgICAgKiBcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNzZXRVbmlmb3JtXHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IG9mIHRoZSB1bmlmb3JtIHRvIG1vZGlmeS4gVXNlIGRvdHMgZm9yIGRlZXAgcHJvcGVydGllcywgaS5lLiBgcmVzb2x1dGlvbi52YWx1ZS54YC5cclxuICAgICAqIEBwYXJhbSB7YW55fSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQgaW50byB0aGUgdW5pZm9ybS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBTaGFkZXIgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFVuaWZvcm06IGZ1bmN0aW9uIChrZXksIHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIFNldFZhbHVlKHRoaXMudW5pZm9ybXMsIGtleSwgdmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSB1bmlmb3JtIG9iamVjdCBmb3IgdGhlIGdpdmVuIGtleSwgb3IgYG51bGxgIGlmIHRoZSB1bmlmb3JtIGNvdWxkbid0IGJlIGZvdW5kLlxyXG4gICAgICogXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFkZXIjZ2V0VW5pZm9ybVxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSBvZiB0aGUgdW5pZm9ybSB0byByZXR1cm4gdGhlIHZhbHVlIGZvci5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7YW55fSBBIHJlZmVyZW5jZSB0byB0aGUgdW5pZm9ybSBvYmplY3QuIFRoaXMgaXMgbm90IGEgY29weSwgc28gbW9kaWZ5aW5nIGl0IHdpbGwgdXBkYXRlIHRoZSBvcmlnaW5hbCBvYmplY3QgYWxzby5cclxuICAgICAqL1xyXG4gICAgZ2V0VW5pZm9ybTogZnVuY3Rpb24gKGtleSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gR2V0RmFzdFZhbHVlKHRoaXMudW5pZm9ybXMsIGtleSwgbnVsbCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBzaG9ydC1jdXQgbWV0aG9kIHRoYXQgd2lsbCBkaXJlY3RseSBzZXQgdGhlIHRleHR1cmUgYmVpbmcgdXNlZCBieSB0aGUgYGlDaGFubmVsMGAgc2FtcGxlcjJEIHVuaWZvcm0uXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSB0ZXh0dXJlS2V5IGdpdmVuIGlzIHRoZSBrZXkgZnJvbSB0aGUgVGV4dHVyZSBNYW5hZ2VyIGNhY2hlLiBZb3UgY2Fubm90IHVzZSBhIHNpbmdsZSBmcmFtZVxyXG4gICAgICogZnJvbSBhIHRleHR1cmUsIG9ubHkgdGhlIGZ1bGwgaW1hZ2UuIEFsc28sIGxvdHMgb2Ygc2hhZGVycyBleHBlY3QgdGV4dHVyZXMgdG8gYmUgcG93ZXItb2YtdHdvIHNpemVkLlxyXG4gICAgICogXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFkZXIjc2V0Q2hhbm5lbDBcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHR1cmVLZXkgLSBUaGUga2V5IG9mIHRoZSB0ZXh0dXJlLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci4gTXVzdCBhbHJlYWR5IGJlIGxvYWRlZC5cclxuICAgICAqIEBwYXJhbSB7YW55fSBbdGV4dHVyZURhdGFdIC0gQWRkaXRpb25hbCB0ZXh0dXJlIGRhdGEuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgU2hhZGVyIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRDaGFubmVsMDogZnVuY3Rpb24gKHRleHR1cmVLZXksIHRleHR1cmVEYXRhKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldFNhbXBsZXIyRCgnaUNoYW5uZWwwJywgdGV4dHVyZUtleSwgMCwgdGV4dHVyZURhdGEpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEEgc2hvcnQtY3V0IG1ldGhvZCB0aGF0IHdpbGwgZGlyZWN0bHkgc2V0IHRoZSB0ZXh0dXJlIGJlaW5nIHVzZWQgYnkgdGhlIGBpQ2hhbm5lbDFgIHNhbXBsZXIyRCB1bmlmb3JtLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGUgdGV4dHVyZUtleSBnaXZlbiBpcyB0aGUga2V5IGZyb20gdGhlIFRleHR1cmUgTWFuYWdlciBjYWNoZS4gWW91IGNhbm5vdCB1c2UgYSBzaW5nbGUgZnJhbWVcclxuICAgICAqIGZyb20gYSB0ZXh0dXJlLCBvbmx5IHRoZSBmdWxsIGltYWdlLiBBbHNvLCBsb3RzIG9mIHNoYWRlcnMgZXhwZWN0IHRleHR1cmVzIHRvIGJlIHBvd2VyLW9mLXR3byBzaXplZC5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI3NldENoYW5uZWwxXHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0dXJlS2V5IC0gVGhlIGtleSBvZiB0aGUgdGV4dHVyZSwgYXMgc3RvcmVkIGluIHRoZSBUZXh0dXJlIE1hbmFnZXIuIE11c3QgYWxyZWFkeSBiZSBsb2FkZWQuXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gW3RleHR1cmVEYXRhXSAtIEFkZGl0aW9uYWwgdGV4dHVyZSBkYXRhLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIFNoYWRlciBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0Q2hhbm5lbDE6IGZ1bmN0aW9uICh0ZXh0dXJlS2V5LCB0ZXh0dXJlRGF0YSlcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXRTYW1wbGVyMkQoJ2lDaGFubmVsMScsIHRleHR1cmVLZXksIDEsIHRleHR1cmVEYXRhKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIHNob3J0LWN1dCBtZXRob2QgdGhhdCB3aWxsIGRpcmVjdGx5IHNldCB0aGUgdGV4dHVyZSBiZWluZyB1c2VkIGJ5IHRoZSBgaUNoYW5uZWwyYCBzYW1wbGVyMkQgdW5pZm9ybS5cclxuICAgICAqIFxyXG4gICAgICogVGhlIHRleHR1cmVLZXkgZ2l2ZW4gaXMgdGhlIGtleSBmcm9tIHRoZSBUZXh0dXJlIE1hbmFnZXIgY2FjaGUuIFlvdSBjYW5ub3QgdXNlIGEgc2luZ2xlIGZyYW1lXHJcbiAgICAgKiBmcm9tIGEgdGV4dHVyZSwgb25seSB0aGUgZnVsbCBpbWFnZS4gQWxzbywgbG90cyBvZiBzaGFkZXJzIGV4cGVjdCB0ZXh0dXJlcyB0byBiZSBwb3dlci1vZi10d28gc2l6ZWQuXHJcbiAgICAgKiBcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNzZXRDaGFubmVsMlxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dHVyZUtleSAtIFRoZSBrZXkgb2YgdGhlIHRleHR1cmUsIGFzIHN0b3JlZCBpbiB0aGUgVGV4dHVyZSBNYW5hZ2VyLiBNdXN0IGFscmVhZHkgYmUgbG9hZGVkLlxyXG4gICAgICogQHBhcmFtIHthbnl9IFt0ZXh0dXJlRGF0YV0gLSBBZGRpdGlvbmFsIHRleHR1cmUgZGF0YS5cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBTaGFkZXIgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldENoYW5uZWwyOiBmdW5jdGlvbiAodGV4dHVyZUtleSwgdGV4dHVyZURhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0U2FtcGxlcjJEKCdpQ2hhbm5lbDInLCB0ZXh0dXJlS2V5LCAyLCB0ZXh0dXJlRGF0YSk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBzaG9ydC1jdXQgbWV0aG9kIHRoYXQgd2lsbCBkaXJlY3RseSBzZXQgdGhlIHRleHR1cmUgYmVpbmcgdXNlZCBieSB0aGUgYGlDaGFubmVsM2Agc2FtcGxlcjJEIHVuaWZvcm0uXHJcbiAgICAgKiBcclxuICAgICAqIFRoZSB0ZXh0dXJlS2V5IGdpdmVuIGlzIHRoZSBrZXkgZnJvbSB0aGUgVGV4dHVyZSBNYW5hZ2VyIGNhY2hlLiBZb3UgY2Fubm90IHVzZSBhIHNpbmdsZSBmcmFtZVxyXG4gICAgICogZnJvbSBhIHRleHR1cmUsIG9ubHkgdGhlIGZ1bGwgaW1hZ2UuIEFsc28sIGxvdHMgb2Ygc2hhZGVycyBleHBlY3QgdGV4dHVyZXMgdG8gYmUgcG93ZXItb2YtdHdvIHNpemVkLlxyXG4gICAgICogXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFkZXIjc2V0Q2hhbm5lbDNcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHR1cmVLZXkgLSBUaGUga2V5IG9mIHRoZSB0ZXh0dXJlLCBhcyBzdG9yZWQgaW4gdGhlIFRleHR1cmUgTWFuYWdlci4gTXVzdCBhbHJlYWR5IGJlIGxvYWRlZC5cclxuICAgICAqIEBwYXJhbSB7YW55fSBbdGV4dHVyZURhdGFdIC0gQWRkaXRpb25hbCB0ZXh0dXJlIGRhdGEuXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgU2hhZGVyIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRDaGFubmVsMzogZnVuY3Rpb24gKHRleHR1cmVLZXksIHRleHR1cmVEYXRhKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNldFNhbXBsZXIyRCgnaUNoYW5uZWwzJywgdGV4dHVyZUtleSwgMywgdGV4dHVyZURhdGEpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIG1ldGhvZCB0aGF0IHRha2VzIGEgc2FtcGxlcjJEIHVuaWZvcm0gYW5kIHByZXBhcmVzIGl0IGZvciB1c2UgYnkgc2V0dGluZyB0aGVcclxuICAgICAqIGdsIHRleHR1cmUgcGFyYW1ldGVycy5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI2luaXRTYW1wbGVyMkRcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSB1bmlmb3JtIC0gVGhlIHNhbXBsZXIyRCB1bmlmb3JtIHRvIHByb2Nlc3MuXHJcbiAgICAgKi9cclxuICAgIGluaXRTYW1wbGVyMkQ6IGZ1bmN0aW9uICh1bmlmb3JtKVxyXG4gICAge1xyXG4gICAgICAgIGlmICghdW5pZm9ybS52YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBnbCA9IHRoaXMuZ2w7XHJcblxyXG4gICAgICAgIGdsLmFjdGl2ZVRleHR1cmUoZ2wuVEVYVFVSRTAgKyB0aGlzLl90ZXh0dXJlQ291bnQpO1xyXG4gICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHVuaWZvcm0udmFsdWUpO1xyXG4gICAgXHJcbiAgICAgICAgLy8gIEV4dGVuZGVkIHRleHR1cmUgZGF0YVxyXG5cclxuICAgICAgICB2YXIgZGF0YSA9IHVuaWZvcm0udGV4dHVyZURhdGE7XHJcblxyXG4gICAgICAgIGlmIChkYXRhKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1dlYkdMUmVuZGVyaW5nQ29udGV4dC90ZXhJbWFnZTJEXHJcbiAgICBcclxuICAgICAgICAgICAgLy8gIG1hZyAvIG1pbkZpbHRlciBjYW4gYmU6IGdsLkxJTkVBUiwgZ2wuTElORUFSX01JUE1BUF9MSU5FQVIgb3IgZ2wuTkVBUkVTVFxyXG4gICAgICAgICAgICAvLyAgd3JhcFMvVCBjYW4gYmU6IGdsLkNMQU1QX1RPX0VER0Ugb3IgZ2wuUkVQRUFUXHJcbiAgICAgICAgICAgIC8vICBmb3JtYXQgY2FuIGJlOiBnbC5MVU1JTkFOQ0Ugb3IgZ2wuUkdCQVxyXG4gICAgXHJcbiAgICAgICAgICAgIHZhciBtYWdGaWx0ZXIgPSBnbFtHZXRGYXN0VmFsdWUoZGF0YSwgJ21hZ0ZpbHRlcicsICdsaW5lYXInKS50b1VwcGVyQ2FzZSgpXTtcclxuICAgICAgICAgICAgdmFyIG1pbkZpbHRlciA9IGdsW0dldEZhc3RWYWx1ZShkYXRhLCAnbWluRmlsdGVyJywgJ2xpbmVhcicpLnRvVXBwZXJDYXNlKCldO1xyXG4gICAgICAgICAgICB2YXIgd3JhcFMgPSBnbFtHZXRGYXN0VmFsdWUoZGF0YSwgJ3dyYXBTJywgJ3JlcGVhdCcpLnRvVXBwZXJDYXNlKCldO1xyXG4gICAgICAgICAgICB2YXIgd3JhcFQgPSBnbFtHZXRGYXN0VmFsdWUoZGF0YSwgJ3dyYXBUJywgJ3JlcGVhdCcpLnRvVXBwZXJDYXNlKCldO1xyXG4gICAgICAgICAgICB2YXIgZm9ybWF0ID0gZ2xbR2V0RmFzdFZhbHVlKGRhdGEsICdmb3JtYXQnLCAncmdiYScpLnRvVXBwZXJDYXNlKCldO1xyXG5cclxuICAgICAgICAgICAgaWYgKGRhdGEucmVwZWF0KVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB3cmFwUyA9IGdsLlJFUEVBVDtcclxuICAgICAgICAgICAgICAgIHdyYXBUID0gZ2wuUkVQRUFUO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCAhIWRhdGEuZmxpcFkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGRhdGEud2lkdGgpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhciB3aWR0aCA9IEdldEZhc3RWYWx1ZShkYXRhLCAnd2lkdGgnLCA1MTIpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IEdldEZhc3RWYWx1ZShkYXRhLCAnaGVpZ2h0JywgMik7XHJcbiAgICAgICAgICAgICAgICB2YXIgYm9yZGVyID0gR2V0RmFzdFZhbHVlKGRhdGEsICdib3JkZXInLCAwKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgLy8gIHRleEltYWdlMkQoR0xlbnVtIHRhcmdldCwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0xzaXplaSB3aWR0aCwgR0xzaXplaSBoZWlnaHQsIEdMaW50IGJvcmRlciwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEFycmF5QnVmZmVyVmlldz8gcGl4ZWxzKVxyXG4gICAgICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBmb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGJvcmRlciwgZm9ybWF0LCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIC8vICB0ZXhJbWFnZTJEKEdMZW51bSB0YXJnZXQsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxmb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBJbWFnZURhdGE/IHBpeGVscylcclxuICAgICAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZm9ybWF0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCB1bmlmb3JtLnNvdXJjZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgbWFnRmlsdGVyKTtcclxuICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01JTl9GSUxURVIsIG1pbkZpbHRlcik7XHJcbiAgICAgICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIHdyYXBTKTtcclxuICAgICAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgd3JhcFQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9ncmFtKHRoaXMucHJvZ3JhbSk7XHJcbiAgICBcclxuICAgICAgICBnbC51bmlmb3JtMWkodW5pZm9ybS51bmlmb3JtTG9jYXRpb24sIHRoaXMuX3RleHR1cmVDb3VudCk7XHJcbiAgICBcclxuICAgICAgICB0aGlzLl90ZXh0dXJlQ291bnQrKztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTeW5jaHJvbml6ZXMgYWxsIG9mIHRoZSB1bmlmb3JtcyB0aGlzIHNoYWRlciB1c2VzLlxyXG4gICAgICogRWFjaCB1bmlmb3JtcyBnbCBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gdHVybi5cclxuICAgICAqIFxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI3N5bmNVbmlmb3Jtc1xyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqL1xyXG4gICAgc3luY1VuaWZvcm1zOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBnbCA9IHRoaXMuZ2w7XHJcblxyXG4gICAgICAgIHZhciB1bmlmb3JtcyA9IHRoaXMudW5pZm9ybXM7XHJcbiAgICAgICAgdmFyIHVuaWZvcm07XHJcbiAgICAgICAgdmFyIGxlbmd0aDtcclxuICAgICAgICB2YXIgZ2xGdW5jO1xyXG4gICAgICAgIHZhciBsb2NhdGlvbjtcclxuICAgICAgICB2YXIgdmFsdWU7XHJcbiAgICAgICAgdmFyIHRleHR1cmVDb3VudCA9IDA7XHJcbiAgICBcclxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gdW5pZm9ybXMpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB1bmlmb3JtID0gdW5pZm9ybXNba2V5XTtcclxuXHJcbiAgICAgICAgICAgIGdsRnVuYyA9IHVuaWZvcm0uZ2xGdW5jO1xyXG4gICAgICAgICAgICBsZW5ndGggPSB1bmlmb3JtLmdsVmFsdWVMZW5ndGg7XHJcbiAgICAgICAgICAgIGxvY2F0aW9uID0gdW5pZm9ybS51bmlmb3JtTG9jYXRpb247XHJcbiAgICAgICAgICAgIHZhbHVlID0gdW5pZm9ybS52YWx1ZTtcclxuXHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChsZW5ndGggPT09IDEpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlmICh1bmlmb3JtLmdsTWF0cml4KVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGdsRnVuYy5jYWxsKGdsLCBsb2NhdGlvbiwgdW5pZm9ybS50cmFuc3Bvc2UsIHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBnbEZ1bmMuY2FsbChnbCwgbG9jYXRpb24sIHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmIChsZW5ndGggPT09IDIpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGdsRnVuYy5jYWxsKGdsLCBsb2NhdGlvbiwgdmFsdWUueCwgdmFsdWUueSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAobGVuZ3RoID09PSAzKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBnbEZ1bmMuY2FsbChnbCwgbG9jYXRpb24sIHZhbHVlLngsIHZhbHVlLnksIHZhbHVlLnopO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGxlbmd0aCA9PT0gNClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZ2xGdW5jLmNhbGwoZ2wsIGxvY2F0aW9uLCB2YWx1ZS54LCB2YWx1ZS55LCB2YWx1ZS56LCB2YWx1ZS53KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh1bmlmb3JtLnR5cGUgPT09ICdzYW1wbGVyMkQnKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBnbC5hY3RpdmVUZXh0dXJlKGdsWydURVhUVVJFJyArIHRleHR1cmVDb3VudF0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgICAgICBnbC51bmlmb3JtMWkobG9jYXRpb24sIHRleHR1cmVDb3VudCk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGV4dHVyZUNvdW50Kys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGVkIGF1dG9tYXRpY2FsbHkgZHVyaW5nIHJlbmRlci5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyBtZXRob2QgcGVyZm9ybXMgbWF0cml4IElUUlMgYW5kIHRoZW4gc3RvcmVzIHRoZSByZXN1bHRpbmcgdmFsdWUgaW4gdGhlIGB1Vmlld01hdHJpeGAgdW5pZm9ybS5cclxuICAgICAqIEl0IHRoZW4gc2V0cyB1cCB0aGUgdmVydGV4IGJ1ZmZlciBhbmQgc2hhZGVyLCB1cGRhdGVzIGFuZCBzeW5jcyB0aGUgdW5pZm9ybXMgcmVhZHlcclxuICAgICAqIGZvciBmbHVzaCB0byBiZSBjYWxsZWQuXHJcbiAgICAgKiBcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNsb2FkXHJcbiAgICAgKiBAc2luY2UgMy4xNy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBbbWF0cml4MkRdIC0gVGhlIHRyYW5zZm9ybSBtYXRyaXggdG8gdXNlIGR1cmluZyByZW5kZXJpbmcuXHJcbiAgICAgKi9cclxuICAgIGxvYWQ6IGZ1bmN0aW9uIChtYXRyaXgyRClcclxuICAgIHtcclxuICAgICAgICAvLyAgSVRSU1xyXG5cclxuICAgICAgICB2YXIgZ2wgPSB0aGlzLmdsO1xyXG4gICAgICAgIHZhciB3aWR0aCA9IHRoaXMud2lkdGg7XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHRoaXMuaGVpZ2h0O1xyXG4gICAgICAgIHZhciByZW5kZXJlciA9IHRoaXMucmVuZGVyZXI7XHJcbiAgICAgICAgdmFyIHByb2dyYW0gPSB0aGlzLnByb2dyYW07XHJcbiAgICAgICAgdmFyIHZtID0gdGhpcy52aWV3TWF0cml4O1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMucmVuZGVyVG9UZXh0dXJlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHggPSAtdGhpcy5fZGlzcGxheU9yaWdpblg7XHJcbiAgICAgICAgICAgIHZhciB5ID0gLXRoaXMuX2Rpc3BsYXlPcmlnaW5ZO1xyXG4gICAgXHJcbiAgICAgICAgICAgIHZtWzBdID0gbWF0cml4MkRbMF07XHJcbiAgICAgICAgICAgIHZtWzFdID0gbWF0cml4MkRbMV07XHJcbiAgICAgICAgICAgIHZtWzRdID0gbWF0cml4MkRbMl07XHJcbiAgICAgICAgICAgIHZtWzVdID0gbWF0cml4MkRbM107XHJcbiAgICAgICAgICAgIHZtWzhdID0gbWF0cml4MkRbNF07XHJcbiAgICAgICAgICAgIHZtWzldID0gbWF0cml4MkRbNV07XHJcbiAgICAgICAgICAgIHZtWzEyXSA9IHZtWzBdICogeCArIHZtWzRdICogeTtcclxuICAgICAgICAgICAgdm1bMTNdID0gdm1bMV0gKiB4ICsgdm1bNV0gKiB5O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gIFVwZGF0ZSB2ZXJ0ZXggc2hhZGVyIHVuaWZvcm1zXHJcblxyXG4gICAgICAgIGdsLnVzZVByb2dyYW0ocHJvZ3JhbSk7XHJcblxyXG4gICAgICAgIGdsLnVuaWZvcm1NYXRyaXg0ZnYoZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICd1Vmlld01hdHJpeCcpLCBmYWxzZSwgdm0pO1xyXG4gICAgICAgIGdsLnVuaWZvcm0yZihnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgJ3VSZXNvbHV0aW9uJyksIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgLy8gIFVwZGF0ZSBmcmFnbWVudCBzaGFkZXIgdW5pZm9ybXNcclxuXHJcbiAgICAgICAgdmFyIHVuaWZvcm1zID0gdGhpcy51bmlmb3JtcztcclxuICAgICAgICB2YXIgcmVzID0gdW5pZm9ybXMucmVzb2x1dGlvbjtcclxuXHJcbiAgICAgICAgcmVzLnZhbHVlLnggPSB3aWR0aDtcclxuICAgICAgICByZXMudmFsdWUueSA9IGhlaWdodDtcclxuXHJcbiAgICAgICAgdW5pZm9ybXMudGltZS52YWx1ZSA9IHJlbmRlcmVyLmdhbWUubG9vcC5nZXREdXJhdGlvbigpO1xyXG5cclxuICAgICAgICB2YXIgcG9pbnRlciA9IHRoaXMucG9pbnRlcjtcclxuXHJcbiAgICAgICAgaWYgKHBvaW50ZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgbW91c2UgPSB1bmlmb3Jtcy5tb3VzZTtcclxuXHJcbiAgICAgICAgICAgIHZhciBweCA9IHBvaW50ZXIueCAvIHdpZHRoO1xyXG4gICAgICAgICAgICB2YXIgcHkgPSAxIC0gcG9pbnRlci55IC8gaGVpZ2h0O1xyXG4gICAgXHJcbiAgICAgICAgICAgIG1vdXNlLnZhbHVlLnggPSBweC50b0ZpeGVkKDIpO1xyXG4gICAgICAgICAgICBtb3VzZS52YWx1ZS55ID0gcHkudG9GaXhlZCgyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc3luY1VuaWZvcm1zKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGVkIGF1dG9tYXRpY2FsbHkgZHVyaW5nIHJlbmRlci5cclxuICAgICAqIFxyXG4gICAgICogU2V0cyB0aGUgYWN0aXZlIHNoYWRlciwgbG9hZHMgdGhlIHZlcnRleCBidWZmZXIgYW5kIHRoZW4gZHJhd3MuXHJcbiAgICAgKiBcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNmbHVzaFxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICovXHJcbiAgICBmbHVzaDogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICAvLyAgQmluZFxyXG5cclxuICAgICAgICB2YXIgd2lkdGggPSB0aGlzLndpZHRoO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSB0aGlzLmhlaWdodDtcclxuICAgICAgICB2YXIgcHJvZ3JhbSA9IHRoaXMucHJvZ3JhbTtcclxuXHJcbiAgICAgICAgdmFyIGdsID0gdGhpcy5nbDtcclxuICAgICAgICB2YXIgdmVydGV4QnVmZmVyID0gdGhpcy52ZXJ0ZXhCdWZmZXI7XHJcbiAgICAgICAgdmFyIHJlbmRlcmVyID0gdGhpcy5yZW5kZXJlcjtcclxuICAgICAgICB2YXIgdmVydGV4U2l6ZSA9IEZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCAqIDI7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnJlbmRlclRvVGV4dHVyZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJlbmRlcmVyLnNldEZyYW1lYnVmZmVyKHRoaXMuZnJhbWVidWZmZXIpO1xyXG5cclxuICAgICAgICAgICAgZ2wuY2xlYXJDb2xvcigwLCAwLCAwLCAwKTtcclxuXHJcbiAgICAgICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHZlcnRleEJ1ZmZlcik7XHJcblxyXG4gICAgICAgIHZhciBsb2NhdGlvbiA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sICdpblBvc2l0aW9uJyk7XHJcblxyXG4gICAgICAgIGlmIChsb2NhdGlvbiAhPT0gLTEpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShsb2NhdGlvbik7XHJcblxyXG4gICAgICAgICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGxvY2F0aW9uLCAyLCBnbC5GTE9BVCwgZmFsc2UsIHZlcnRleFNpemUsIDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gIERyYXdcclxuXHJcbiAgICAgICAgdmFyIHZmID0gdGhpcy52ZXJ0ZXhWaWV3RjMyO1xyXG5cclxuICAgICAgICB2ZlszXSA9IGhlaWdodDtcclxuICAgICAgICB2Zls0XSA9IHdpZHRoO1xyXG4gICAgICAgIHZmWzVdID0gaGVpZ2h0O1xyXG4gICAgICAgIHZmWzhdID0gd2lkdGg7XHJcbiAgICAgICAgdmZbOV0gPSBoZWlnaHQ7XHJcbiAgICAgICAgdmZbMTBdID0gd2lkdGg7XHJcblxyXG4gICAgICAgIC8vICBGbHVzaFxyXG5cclxuICAgICAgICB2YXIgdmVydGV4Q291bnQgPSA2O1xyXG5cclxuICAgICAgICBnbC5idWZmZXJTdWJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgMCwgdGhpcy5ieXRlcy5zdWJhcnJheSgwLCB2ZXJ0ZXhDb3VudCAqIHZlcnRleFNpemUpKTtcclxuXHJcbiAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRVMsIDAsIHZlcnRleENvdW50KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmVuZGVyVG9UZXh0dXJlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmVuZGVyZXIuc2V0RnJhbWVidWZmZXIobnVsbCwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIE5PT1AgbWV0aG9kIHNvIHlvdSBjYW4gcGFzcyBhIFNoYWRlciB0byBhIENvbnRhaW5lci5cclxuICAgICAqIENhbGxpbmcgdGhpcyBtZXRob2Qgd2lsbCBkbyBub3RoaW5nLiBJdCBpcyBpbnRlbnRpb25hbGx5IGVtcHR5LlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNzZXRBbHBoYVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqL1xyXG4gICAgc2V0QWxwaGE6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICB9LFxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEEgTk9PUCBtZXRob2Qgc28geW91IGNhbiBwYXNzIGEgU2hhZGVyIHRvIGEgQ29udGFpbmVyLlxyXG4gICAgICogQ2FsbGluZyB0aGlzIG1ldGhvZCB3aWxsIGRvIG5vdGhpbmcuIEl0IGlzIGludGVudGlvbmFsbHkgZW1wdHkuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyI3NldEJsZW5kTW9kZVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjE3LjBcclxuICAgICAqL1xyXG4gICAgc2V0QmxlbmRNb2RlOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIGRlc3Ryb3kgaGFuZGxlciwgY2FsbGVkIGFzIHBhcnQgb2YgdGhlIGRlc3Ryb3kgcHJvY2Vzcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFkZXIjcHJlRGVzdHJveVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHNpbmNlIDMuMTcuMFxyXG4gICAgICovXHJcbiAgICBwcmVEZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBnbCA9IHRoaXMuZ2w7XHJcblxyXG4gICAgICAgIGdsLmRlbGV0ZVByb2dyYW0odGhpcy5wcm9ncmFtKTtcclxuICAgICAgICBnbC5kZWxldGVCdWZmZXIodGhpcy52ZXJ0ZXhCdWZmZXIpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5yZW5kZXJUb1RleHR1cmUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmRlbGV0ZUZyYW1lYnVmZmVyKHRoaXMuZnJhbWVidWZmZXIpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy50ZXh0dXJlLmRlc3Ryb3koKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZnJhbWVidWZmZXIgPSBudWxsO1xyXG4gICAgICAgICAgICB0aGlzLmdsVGV4dHVyZSA9IG51bGw7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dHVyZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFNoYWRlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogVGhpcyBpcyBhIHN0dWIgZnVuY3Rpb24gZm9yIFNoYWRlci5SZW5kZXIuIFRoZXJlIGlzIG5vIENhbnZhcyByZW5kZXJlciBmb3IgU2hhZGVyIG9iamVjdHMuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlciNyZW5kZXJDYW52YXNcclxuICogQHNpbmNlIDMuMTcuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5DYW52YXMuQ2FudmFzUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIENhbnZhcyByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyfSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqL1xyXG52YXIgU2hhZGVyQ2FudmFzUmVuZGVyZXIgPSBmdW5jdGlvbiAoKVxyXG57XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFNoYWRlckNhbnZhc1JlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBCdWlsZEdhbWVPYmplY3QgPSByZXF1aXJlKCcuLi9CdWlsZEdhbWVPYmplY3QnKTtcclxudmFyIEdhbWVPYmplY3RDcmVhdG9yID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdENyZWF0b3InKTtcclxudmFyIEdldEFkdmFuY2VkVmFsdWUgPSByZXF1aXJlKCcuLi8uLi91dGlscy9vYmplY3QvR2V0QWR2YW5jZWRWYWx1ZScpO1xyXG52YXIgU2hhZGVyID0gcmVxdWlyZSgnLi9TaGFkZXInKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IFNoYWRlciBHYW1lIE9iamVjdCBhbmQgcmV0dXJucyBpdC5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgU2hhZGVyIEdhbWUgT2JqZWN0IGFuZCBXZWJHTCBzdXBwb3J0IGhhdmUgYmVlbiBidWlsdCBpbnRvIFBoYXNlci5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdENyZWF0b3Ijc2hhZGVyXHJcbiAqIEBzaW5jZSAzLjE3LjBcclxuICpcclxuICogQHBhcmFtIHtvYmplY3R9IGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIG9iamVjdCB0aGlzIEdhbWUgT2JqZWN0IHdpbGwgdXNlIHRvIGNyZWF0ZSBpdHNlbGYuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FkZFRvU2NlbmVdIC0gQWRkIHRoaXMgR2FtZSBPYmplY3QgdG8gdGhlIFNjZW5lIGFmdGVyIGNyZWF0aW5nIGl0PyBJZiBzZXQgdGhpcyBhcmd1bWVudCBvdmVycmlkZXMgdGhlIGBhZGRgIHByb3BlcnR5IGluIHRoZSBjb25maWcgb2JqZWN0LlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RDcmVhdG9yLnJlZ2lzdGVyKCdzaGFkZXInLCBmdW5jdGlvbiAoY29uZmlnLCBhZGRUb1NjZW5lKVxyXG57XHJcbiAgICBpZiAoY29uZmlnID09PSB1bmRlZmluZWQpIHsgY29uZmlnID0ge307IH1cclxuXHJcbiAgICB2YXIga2V5ID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdrZXknLCBudWxsKTtcclxuICAgIHZhciB4ID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICd4JywgMCk7XHJcbiAgICB2YXIgeSA9IEdldEFkdmFuY2VkVmFsdWUoY29uZmlnLCAneScsIDApO1xyXG4gICAgdmFyIHdpZHRoID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICd3aWR0aCcsIDEyOCk7XHJcbiAgICB2YXIgaGVpZ2h0ID0gR2V0QWR2YW5jZWRWYWx1ZShjb25maWcsICdoZWlnaHQnLCAxMjgpO1xyXG5cclxuICAgIHZhciBzaGFkZXIgPSBuZXcgU2hhZGVyKHRoaXMuc2NlbmUsIGtleSwgeCwgeSwgd2lkdGgsIGhlaWdodCk7XHJcblxyXG4gICAgaWYgKGFkZFRvU2NlbmUgIT09IHVuZGVmaW5lZClcclxuICAgIHtcclxuICAgICAgICBjb25maWcuYWRkID0gYWRkVG9TY2VuZTtcclxuICAgIH1cclxuXHJcbiAgICBCdWlsZEdhbWVPYmplY3QodGhpcy5zY2VuZSwgc2hhZGVyLCBjb25maWcpO1xyXG5cclxuICAgIHJldHVybiBzaGFkZXI7XHJcbn0pO1xyXG5cclxuLy8gIFdoZW4gcmVnaXN0ZXJpbmcgYSBmYWN0b3J5IGZ1bmN0aW9uICd0aGlzJyByZWZlcnMgdG8gdGhlIEdhbWVPYmplY3RDcmVhdG9yIGNvbnRleHQuXHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFNoYWRlciA9IHJlcXVpcmUoJy4vU2hhZGVyJyk7XHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBTaGFkZXIgR2FtZSBPYmplY3QgYW5kIGFkZHMgaXQgdG8gdGhlIFNjZW5lLlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBTaGFkZXIgR2FtZSBPYmplY3QgYW5kIFdlYkdMIHN1cHBvcnQgaGF2ZSBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0RmFjdG9yeSNzaGFkZXJcclxuICogQHdlYmdsT25seVxyXG4gKiBAc2luY2UgMy4xNy4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7KHN0cmluZ3xQaGFzZXIuRGlzcGxheS5CYXNlU2hhZGVyKX0ga2V5IC0gVGhlIGtleSBvZiB0aGUgc2hhZGVyIHRvIHVzZSBmcm9tIHRoZSBzaGFkZXIgY2FjaGUsIG9yIGEgQmFzZVNoYWRlciBpbnN0YW5jZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt3aWR0aD0xMjhdIC0gVGhlIHdpZHRoIG9mIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtoZWlnaHQ9MTI4XSAtIFRoZSBoZWlnaHQgb2YgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBbdGV4dHVyZXNdIC0gT3B0aW9uYWwgYXJyYXkgb2YgdGV4dHVyZSBrZXlzIHRvIGJpbmQgdG8gdGhlIGlDaGFubmVsMC4uLjMgdW5pZm9ybXMuIFRoZSB0ZXh0dXJlcyBtdXN0IGFscmVhZHkgZXhpc3QgaW4gdGhlIFRleHR1cmUgTWFuYWdlci5cclxuICogQHBhcmFtIHtvYmplY3R9IFt0ZXh0dXJlRGF0YV0gLSBPcHRpb25hbCBhZGRpdGlvbmFsIHRleHR1cmUgZGF0YS5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLlNoYWRlcn0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5pZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSKVxyXG57XHJcbiAgICBHYW1lT2JqZWN0RmFjdG9yeS5yZWdpc3Rlcignc2hhZGVyJywgZnVuY3Rpb24gKGtleSwgeCwgeSwgd2lkdGgsIGhlaWdodCwgdGV4dHVyZXMsIHRleHR1cmVEYXRhKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlMaXN0LmFkZChuZXcgU2hhZGVyKHRoaXMuc2NlbmUsIGtleSwgeCwgeSwgd2lkdGgsIGhlaWdodCwgdGV4dHVyZXMsIHRleHR1cmVEYXRhKSk7XHJcbiAgICB9KTtcclxufVxyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxudmFyIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL05PT1AnKTtcclxuXHJcbmlmICh0eXBlb2YgV0VCR0xfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi9TaGFkZXJXZWJHTFJlbmRlcmVyJyk7XHJcbn1cclxuXHJcbmlmICh0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL1NoYWRlckNhbnZhc1JlbmRlcmVyJyk7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIHJlbmRlcldlYkdMOiByZW5kZXJXZWJHTCxcclxuICAgIHJlbmRlckNhbnZhczogcmVuZGVyQ2FudmFzXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFkZXIjcmVuZGVyV2ViR0xcclxuICogQHNpbmNlIDMuMTcuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBXZWJHTCByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuU2hhZGVyfSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgU2hhZGVyV2ViR0xSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIGlmICghc3JjLnNoYWRlcilcclxuICAgIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHBpcGVsaW5lID0gcmVuZGVyZXIuY3VycmVudFBpcGVsaW5lO1xyXG5cclxuICAgIHJlbmRlcmVyLmNsZWFyUGlwZWxpbmUoKTtcclxuXHJcbiAgICBpZiAoc3JjLnJlbmRlclRvVGV4dHVyZSlcclxuICAgIHtcclxuICAgICAgICBzcmMubG9hZCgpO1xyXG4gICAgICAgIHNyYy5mbHVzaCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAgIHZhciBjYW1NYXRyaXggPSBzcmMuX3RlbXBNYXRyaXgxO1xyXG4gICAgICAgIHZhciBzaGFwZU1hdHJpeCA9IHNyYy5fdGVtcE1hdHJpeDI7XHJcbiAgICAgICAgdmFyIGNhbGNNYXRyaXggPSBzcmMuX3RlbXBNYXRyaXgzO1xyXG4gICAgXHJcbiAgICAgICAgc2hhcGVNYXRyaXguYXBwbHlJVFJTKHNyYy54LCBzcmMueSwgc3JjLnJvdGF0aW9uLCBzcmMuc2NhbGVYLCBzcmMuc2NhbGVZKTtcclxuICAgIFxyXG4gICAgICAgIGNhbU1hdHJpeC5jb3B5RnJvbShjYW1lcmEubWF0cml4KTtcclxuICAgIFxyXG4gICAgICAgIGlmIChwYXJlbnRNYXRyaXgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICAvLyAgTXVsdGlwbHkgdGhlIGNhbWVyYSBieSB0aGUgcGFyZW50IG1hdHJpeFxyXG4gICAgICAgICAgICBjYW1NYXRyaXgubXVsdGlwbHlXaXRoT2Zmc2V0KHBhcmVudE1hdHJpeCwgLWNhbWVyYS5zY3JvbGxYICogc3JjLnNjcm9sbEZhY3RvclgsIC1jYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZKTtcclxuICAgIFxyXG4gICAgICAgICAgICAvLyAgVW5kbyB0aGUgY2FtZXJhIHNjcm9sbFxyXG4gICAgICAgICAgICBzaGFwZU1hdHJpeC5lID0gc3JjLng7XHJcbiAgICAgICAgICAgIHNoYXBlTWF0cml4LmYgPSBzcmMueTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgc2hhcGVNYXRyaXguZSAtPSBjYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYO1xyXG4gICAgICAgICAgICBzaGFwZU1hdHJpeC5mIC09IGNhbWVyYS5zY3JvbGxZICogc3JjLnNjcm9sbEZhY3Rvclk7XHJcbiAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5KHNoYXBlTWF0cml4LCBjYWxjTWF0cml4KTtcclxuICAgIFxyXG4gICAgICAgIC8vICBSZW5kZXJlciBzaXplIGNoYW5nZWQ/XHJcbiAgICAgICAgaWYgKHJlbmRlcmVyLndpZHRoICE9PSBzcmMuX3JlbmRlcmVyV2lkdGggfHwgcmVuZGVyZXIuaGVpZ2h0ICE9PSBzcmMuX3JlbmRlcmVySGVpZ2h0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgc3JjLnByb2pPcnRobygwLCByZW5kZXJlci53aWR0aCwgcmVuZGVyZXIuaGVpZ2h0LCAwKTtcclxuICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICBzcmMubG9hZChjYWxjTWF0cml4Lm1hdHJpeCk7XHJcbiAgICAgICAgc3JjLmZsdXNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyZXIucmViaW5kUGlwZWxpbmUocGlwZWxpbmUpO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTaGFkZXJXZWJHTFJlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBVdGlscyA9IHJlcXVpcmUoJy4uLy4uL3JlbmRlcmVyL3dlYmdsL1V0aWxzJyk7XHJcblxyXG4vKipcclxuICogUmVuZGVycyBhIGZpbGxlZCBwYXRoIGZvciB0aGUgZ2l2ZW4gU2hhcGUuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlI0ZpbGxQYXRoV2ViR0xcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFBpcGVsaW5lfSBwaXBlbGluZSAtIFRoZSBXZWJHTCBQaXBlbGluZSB1c2VkIHRvIHJlbmRlciB0aGlzIFNoYXBlLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gY2FsY01hdHJpeCAtIFRoZSB0cmFuc2Zvcm0gbWF0cml4IHVzZWQgdG8gZ2V0IHRoZSBwb3NpdGlvbiB2YWx1ZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlfSBzcmMgLSBUaGUgR2FtZSBPYmplY3Qgc2hhcGUgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gYWxwaGEgLSBUaGUgYmFzZSBhbHBoYSB2YWx1ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IGR4IC0gVGhlIHNvdXJjZSBkaXNwbGF5T3JpZ2luWC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGR5IC0gVGhlIHNvdXJjZSBkaXNwbGF5T3JpZ2luWS5cclxuICovXHJcbnZhciBGaWxsUGF0aFdlYkdMID0gZnVuY3Rpb24gKHBpcGVsaW5lLCBjYWxjTWF0cml4LCBzcmMsIGFscGhhLCBkeCwgZHkpXHJcbntcclxuICAgIHZhciBmaWxsVGludENvbG9yID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGFBbmRTd2FwKHNyYy5maWxsQ29sb3IsIHNyYy5maWxsQWxwaGEgKiBhbHBoYSk7XHJcblxyXG4gICAgdmFyIHBhdGggPSBzcmMucGF0aERhdGE7XHJcbiAgICB2YXIgcGF0aEluZGV4ZXMgPSBzcmMucGF0aEluZGV4ZXM7XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRoSW5kZXhlcy5sZW5ndGg7IGkgKz0gMylcclxuICAgIHtcclxuICAgICAgICB2YXIgcDAgPSBwYXRoSW5kZXhlc1tpXSAqIDI7XHJcbiAgICAgICAgdmFyIHAxID0gcGF0aEluZGV4ZXNbaSArIDFdICogMjtcclxuICAgICAgICB2YXIgcDIgPSBwYXRoSW5kZXhlc1tpICsgMl0gKiAyO1xyXG5cclxuICAgICAgICB2YXIgeDAgPSBwYXRoW3AwICsgMF0gLSBkeDtcclxuICAgICAgICB2YXIgeTAgPSBwYXRoW3AwICsgMV0gLSBkeTtcclxuICAgICAgICB2YXIgeDEgPSBwYXRoW3AxICsgMF0gLSBkeDtcclxuICAgICAgICB2YXIgeTEgPSBwYXRoW3AxICsgMV0gLSBkeTtcclxuICAgICAgICB2YXIgeDIgPSBwYXRoW3AyICsgMF0gLSBkeDtcclxuICAgICAgICB2YXIgeTIgPSBwYXRoW3AyICsgMV0gLSBkeTtcclxuXHJcbiAgICAgICAgdmFyIHR4MCA9IGNhbGNNYXRyaXguZ2V0WCh4MCwgeTApO1xyXG4gICAgICAgIHZhciB0eTAgPSBjYWxjTWF0cml4LmdldFkoeDAsIHkwKTtcclxuXHJcbiAgICAgICAgdmFyIHR4MSA9IGNhbGNNYXRyaXguZ2V0WCh4MSwgeTEpO1xyXG4gICAgICAgIHZhciB0eTEgPSBjYWxjTWF0cml4LmdldFkoeDEsIHkxKTtcclxuXHJcbiAgICAgICAgdmFyIHR4MiA9IGNhbGNNYXRyaXguZ2V0WCh4MiwgeTIpO1xyXG4gICAgICAgIHZhciB0eTIgPSBjYWxjTWF0cml4LmdldFkoeDIsIHkyKTtcclxuICAgIFxyXG4gICAgICAgIHBpcGVsaW5lLnNldFRleHR1cmUyRCgpO1xyXG5cclxuICAgICAgICBwaXBlbGluZS5iYXRjaFRyaSh0eDAsIHR5MCwgdHgxLCB0eTEsIHR4MiwgdHkyLCAwLCAwLCAxLCAxLCBmaWxsVGludENvbG9yLCBmaWxsVGludENvbG9yLCBmaWxsVGludENvbG9yLCBwaXBlbGluZS50aW50RWZmZWN0KTtcclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRmlsbFBhdGhXZWJHTDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogU2V0cyB0aGUgZmlsbFN0eWxlIG9uIHRoZSB0YXJnZXQgY29udGV4dCBiYXNlZCBvbiB0aGUgZ2l2ZW4gU2hhcGUuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlI0ZpbGxTdHlsZUNhbnZhc1xyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBjdHggLSBUaGUgY29udGV4dCB0byBzZXQgdGhlIGZpbGwgc3R5bGUgb24uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlfSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgdG8gc2V0IHRoZSBmaWxsIHN0eWxlIGZyb20uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbYWx0Q29sb3JdIC0gQW4gYWx0ZXJuYXRpdmUgY29sb3IgdG8gcmVuZGVyIHdpdGguXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbYWx0QWxwaGFdIC0gQW4gYWx0ZXJuYXRpdmUgYWxwaGEgdG8gcmVuZGVyIHdpdGguXHJcbiAqL1xyXG52YXIgRmlsbFN0eWxlQ2FudmFzID0gZnVuY3Rpb24gKGN0eCwgc3JjLCBhbHRDb2xvciwgYWx0QWxwaGEpXHJcbntcclxuICAgIHZhciBmaWxsQ29sb3IgPSAoYWx0Q29sb3IpID8gYWx0Q29sb3IgOiBzcmMuZmlsbENvbG9yO1xyXG4gICAgdmFyIGZpbGxBbHBoYSA9IChhbHRBbHBoYSkgPyBhbHRBbHBoYSA6IHNyYy5maWxsQWxwaGE7XHJcblxyXG4gICAgdmFyIHJlZCA9ICgoZmlsbENvbG9yICYgMHhGRjAwMDApID4+PiAxNik7XHJcbiAgICB2YXIgZ3JlZW4gPSAoKGZpbGxDb2xvciAmIDB4RkYwMCkgPj4+IDgpO1xyXG4gICAgdmFyIGJsdWUgPSAoZmlsbENvbG9yICYgMHhGRik7XHJcblxyXG4gICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKCcgKyByZWQgKyAnLCcgKyBncmVlbiArICcsJyArIGJsdWUgKyAnLCcgKyBmaWxsQWxwaGEgKyAnKSc7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEZpbGxTdHlsZUNhbnZhcztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG4vKipcclxuICogU2V0cyB0aGUgc3Ryb2tlU3R5bGUgYW5kIGxpbmVXaWR0aCBvbiB0aGUgdGFyZ2V0IGNvbnRleHQgYmFzZWQgb24gdGhlIGdpdmVuIFNoYXBlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFwZSNMaW5lU3R5bGVDYW52YXNcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gY3R4IC0gVGhlIGNvbnRleHQgdG8gc2V0IHRoZSBzdHJva2Ugc3R5bGUgb24uXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlfSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgdG8gc2V0IHRoZSBzdHJva2Ugc3R5bGUgZnJvbS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFthbHRDb2xvcl0gLSBBbiBhbHRlcm5hdGl2ZSBjb2xvciB0byByZW5kZXIgd2l0aC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFthbHRBbHBoYV0gLSBBbiBhbHRlcm5hdGl2ZSBhbHBoYSB0byByZW5kZXIgd2l0aC5cclxuICovXHJcbnZhciBMaW5lU3R5bGVDYW52YXMgPSBmdW5jdGlvbiAoY3R4LCBzcmMsIGFsdENvbG9yLCBhbHRBbHBoYSlcclxue1xyXG4gICAgdmFyIHN0cm9rZUNvbG9yID0gKGFsdENvbG9yKSA/IGFsdENvbG9yIDogc3JjLnN0cm9rZUNvbG9yO1xyXG4gICAgdmFyIHN0cm9rZUFscGhhID0gKGFsdEFscGhhKSA/IGFsdEFscGhhIDogc3JjLnN0cm9rZUFscGhhO1xyXG5cclxuICAgIHZhciByZWQgPSAoKHN0cm9rZUNvbG9yICYgMHhGRjAwMDApID4+PiAxNik7XHJcbiAgICB2YXIgZ3JlZW4gPSAoKHN0cm9rZUNvbG9yICYgMHhGRjAwKSA+Pj4gOCk7XHJcbiAgICB2YXIgYmx1ZSA9IChzdHJva2VDb2xvciAmIDB4RkYpO1xyXG5cclxuICAgIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2JhKCcgKyByZWQgKyAnLCcgKyBncmVlbiArICcsJyArIGJsdWUgKyAnLCcgKyBzdHJva2VBbHBoYSArICcpJztcclxuICAgIGN0eC5saW5lV2lkdGggPSBzcmMubGluZVdpZHRoO1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBMaW5lU3R5bGVDYW52YXM7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIENvbXBvbmVudHMgPSByZXF1aXJlKCcuLi9jb21wb25lbnRzJyk7XHJcbnZhciBHYW1lT2JqZWN0ID0gcmVxdWlyZSgnLi4vR2FtZU9iamVjdCcpO1xyXG52YXIgTGluZSA9IHJlcXVpcmUoJy4uLy4uL2dlb20vbGluZS9MaW5lJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBUaGUgU2hhcGUgR2FtZSBPYmplY3QgaXMgYSBiYXNlIGNsYXNzIGZvciB0aGUgdmFyaW91cyBkaWZmZXJlbnQgc2hhcGVzLCBzdWNoIGFzIHRoZSBBcmMsIFN0YXIgb3IgUG9seWdvbi5cclxuICogWW91IGNhbm5vdCBhZGQgYSBTaGFwZSBkaXJlY3RseSB0byB5b3VyIFNjZW5lLCBpdCBpcyBtZWFudCBhcyBhIGJhc2UgZm9yIHlvdXIgb3duIGN1c3RvbSBTaGFwZSBjbGFzc2VzLlxyXG4gKlxyXG4gKiBAY2xhc3MgU2hhcGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKlxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYVNpbmdsZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5CbGVuZE1vZGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuQ29tcHV0ZWRTaXplXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkRlcHRoXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLkdldEJvdW5kc1xyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5NYXNrXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLk9yaWdpblxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5QaXBlbGluZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5TY3JvbGxGYWN0b3JcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlZpc2libGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gQSBHYW1lIE9iamVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIFNjZW5lIGF0IGEgdGltZS5cclxuICogQHBhcmFtIHtzdHJpbmd9IFt0eXBlXSAtIFRoZSBpbnRlcm5hbCB0eXBlIG9mIHRoZSBTaGFwZS5cclxuICogQHBhcmFtIHthbnl9IFtkYXRhXSAtIFRoZSBkYXRhIG9mIHRoZSBzb3VyY2Ugc2hhcGUgZ2VvbWV0cnksIGlmIGFueS5cclxuICovXHJcbnZhciBTaGFwZSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogR2FtZU9iamVjdCxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBDb21wb25lbnRzLkFscGhhU2luZ2xlLFxyXG4gICAgICAgIENvbXBvbmVudHMuQmxlbmRNb2RlLFxyXG4gICAgICAgIENvbXBvbmVudHMuQ29tcHV0ZWRTaXplLFxyXG4gICAgICAgIENvbXBvbmVudHMuRGVwdGgsXHJcbiAgICAgICAgQ29tcG9uZW50cy5HZXRCb3VuZHMsXHJcbiAgICAgICAgQ29tcG9uZW50cy5NYXNrLFxyXG4gICAgICAgIENvbXBvbmVudHMuT3JpZ2luLFxyXG4gICAgICAgIENvbXBvbmVudHMuUGlwZWxpbmUsXHJcbiAgICAgICAgQ29tcG9uZW50cy5TY3JvbGxGYWN0b3IsXHJcbiAgICAgICAgQ29tcG9uZW50cy5UcmFuc2Zvcm0sXHJcbiAgICAgICAgQ29tcG9uZW50cy5WaXNpYmxlXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gU2hhcGUgKHNjZW5lLCB0eXBlLCBkYXRhKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh0eXBlID09PSB1bmRlZmluZWQpIHsgdHlwZSA9ICdTaGFwZSc7IH1cclxuXHJcbiAgICAgICAgR2FtZU9iamVjdC5jYWxsKHRoaXMsIHNjZW5lLCB0eXBlKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHNvdXJjZSBTaGFwZSBkYXRhLiBUeXBpY2FsbHkgYSBnZW9tZXRyeSBvYmplY3QuXHJcbiAgICAgICAgICogWW91IHNob3VsZCBub3QgbWFuaXB1bGF0ZSB0aGlzIGRpcmVjdGx5LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlI2RhdGFcclxuICAgICAgICAgKiBAdHlwZSB7YW55fVxyXG4gICAgICAgICAqIEByZWFkb25seVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmdlb20gPSBkYXRhO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBIb2xkcyB0aGUgcG9seWdvbiBwYXRoIGRhdGEgZm9yIGZpbGxlZCByZW5kZXJpbmcuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhcGUjcGF0aERhdGFcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyW119XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucGF0aERhdGEgPSBbXTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogSG9sZHMgdGhlIGVhcmN1dCBwb2x5Z29uIHBhdGggaW5kZXggZGF0YSBmb3IgZmlsbGVkIHJlbmRlcmluZy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFwZSNwYXRoSW5kZXhlc1xyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyW119XHJcbiAgICAgICAgICogQHJlYWRvbmx5XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucGF0aEluZGV4ZXMgPSBbXTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGZpbGwgY29sb3IgdXNlZCBieSB0aGlzIFNoYXBlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlI2ZpbGxDb2xvclxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZmlsbENvbG9yID0gMHhmZmZmZmY7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBmaWxsIGFscGhhIHZhbHVlIHVzZWQgYnkgdGhpcyBTaGFwZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFwZSNmaWxsQWxwaGFcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZpbGxBbHBoYSA9IDE7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBzdHJva2UgY29sb3IgdXNlZCBieSB0aGlzIFNoYXBlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlI3N0cm9rZUNvbG9yXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zdHJva2VDb2xvciA9IDB4ZmZmZmZmO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgc3Ryb2tlIGFscGhhIHZhbHVlIHVzZWQgYnkgdGhpcyBTaGFwZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFwZSNzdHJva2VBbHBoYVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc3Ryb2tlQWxwaGEgPSAxO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgc3Ryb2tlIGxpbmUgd2lkdGggdXNlZCBieSB0aGlzIFNoYXBlLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlI2xpbmVXaWR0aFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubGluZVdpZHRoID0gMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ29udHJvbHMgaWYgdGhpcyBTaGFwZSBpcyBmaWxsZWQgb3Igbm90LlxyXG4gICAgICAgICAqIE5vdGUgdGhhdCBzb21lIFNoYXBlcyBkbyBub3Qgc3VwcG9ydCBiZWluZyBmaWxsZWQgKHN1Y2ggYXMgTGluZSBzaGFwZXMpXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhcGUjaXNGaWxsZWRcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5pc0ZpbGxlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBDb250cm9scyBpZiB0aGlzIFNoYXBlIGlzIHN0cm9rZWQgb3Igbm90LlxyXG4gICAgICAgICAqIE5vdGUgdGhhdCBzb21lIFNoYXBlcyBkbyBub3Qgc3VwcG9ydCBiZWluZyBzdHJva2VkIChzdWNoIGFzIElzbyBCb3ggc2hhcGVzKVxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlI2lzU3Ryb2tlZFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlzU3Ryb2tlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBDb250cm9scyBpZiB0aGlzIFNoYXBlIHBhdGggaXMgY2xvc2VkIGR1cmluZyByZW5kZXJpbmcgd2hlbiBzdHJva2VkLlxyXG4gICAgICAgICAqIE5vdGUgdGhhdCBzb21lIFNoYXBlcyBhcmUgYWx3YXlzIGNsb3NlZCB3aGVuIHN0cm9rZWQgKHN1Y2ggYXMgRWxsaXBzZSBzaGFwZXMpXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuU2hhcGUjY2xvc2VQYXRoXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY2xvc2VQYXRoID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS5cclxuICAgICAgICAgKiBBIExpbmUgdXNlZCB3aGVuIHBhcnNpbmcgaW50ZXJuYWwgcGF0aCBkYXRhIHRvIGF2b2lkIGNvbnN0YW50IG9iamVjdCByZS1jcmVhdGlvbi5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5DdXJ2ZSNfdGVtcExpbmVcclxuICAgICAgICAgKiBAdHlwZSB7UGhhc2VyLkdlb20uTGluZX1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl90ZW1wTGluZSA9IG5ldyBMaW5lKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdFBpcGVsaW5lKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgZmlsbCBjb2xvciBhbmQgYWxwaGEgZm9yIHRoaXMgU2hhcGUuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHlvdSB3aXNoIGZvciB0aGUgU2hhcGUgdG8gbm90IGJlIGZpbGxlZCB0aGVuIGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBubyBhcmd1bWVudHMsIG9yIGp1c3Qgc2V0IGBpc0ZpbGxlZGAgdG8gYGZhbHNlYC5cclxuICAgICAqIFxyXG4gICAgICogTm90ZSB0aGF0IHNvbWUgU2hhcGVzIGRvIG5vdCBzdXBwb3J0IGZpbGwgY29sb3JzLCBzdWNoIGFzIHRoZSBMaW5lIHNoYXBlLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGlzIGNhbGwgY2FuIGJlIGNoYWluZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU2hhcGUjc2V0RmlsbFN0eWxlXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbY29sb3JdIC0gVGhlIGNvbG9yIHVzZWQgdG8gZmlsbCB0aGlzIHNoYXBlLiBJZiBub3QgcHJvdmlkZWQgdGhlIFNoYXBlIHdpbGwgbm90IGJlIGZpbGxlZC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbYWxwaGE9MV0gLSBUaGUgYWxwaGEgdmFsdWUgdXNlZCB3aGVuIGZpbGxpbmcgdGhpcyBzaGFwZSwgaWYgYSBmaWxsIGNvbG9yIGlzIGdpdmVuLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldEZpbGxTdHlsZTogZnVuY3Rpb24gKGNvbG9yLCBhbHBoYSlcclxuICAgIHtcclxuICAgICAgICBpZiAoYWxwaGEgPT09IHVuZGVmaW5lZCkgeyBhbHBoYSA9IDE7IH1cclxuXHJcbiAgICAgICAgaWYgKGNvbG9yID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmlzRmlsbGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsbENvbG9yID0gY29sb3I7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsbEFscGhhID0gYWxwaGE7XHJcbiAgICAgICAgICAgIHRoaXMuaXNGaWxsZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgc3Ryb2tlIGNvbG9yIGFuZCBhbHBoYSBmb3IgdGhpcyBTaGFwZS5cclxuICAgICAqIFxyXG4gICAgICogSWYgeW91IHdpc2ggZm9yIHRoZSBTaGFwZSB0byBub3QgYmUgc3Ryb2tlZCB0aGVuIGNhbGwgdGhpcyBtZXRob2Qgd2l0aCBubyBhcmd1bWVudHMsIG9yIGp1c3Qgc2V0IGBpc1N0cm9rZWRgIHRvIGBmYWxzZWAuXHJcbiAgICAgKiBcclxuICAgICAqIE5vdGUgdGhhdCBzb21lIFNoYXBlcyBkbyBub3Qgc3VwcG9ydCBiZWluZyBzdHJva2VkLCBzdWNoIGFzIHRoZSBJc28gQm94IHNoYXBlLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGlzIGNhbGwgY2FuIGJlIGNoYWluZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU2hhcGUjc2V0U3Ryb2tlU3R5bGVcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsaW5lV2lkdGhdIC0gVGhlIHdpZHRoIG9mIGxpbmUgdG8gc3Ryb2tlIHdpdGguIElmIG5vdCBwcm92aWRlZCBvciB1bmRlZmluZWQgdGhlIFNoYXBlIHdpbGwgbm90IGJlIHN0cm9rZWQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2NvbG9yXSAtIFRoZSBjb2xvciB1c2VkIHRvIHN0cm9rZSB0aGlzIHNoYXBlLiBJZiBub3QgcHJvdmlkZWQgdGhlIFNoYXBlIHdpbGwgbm90IGJlIHN0cm9rZWQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2FscGhhPTFdIC0gVGhlIGFscGhhIHZhbHVlIHVzZWQgd2hlbiBzdHJva2luZyB0aGlzIHNoYXBlLCBpZiBhIHN0cm9rZSBjb2xvciBpcyBnaXZlbi5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRTdHJva2VTdHlsZTogZnVuY3Rpb24gKGxpbmVXaWR0aCwgY29sb3IsIGFscGhhKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChhbHBoYSA9PT0gdW5kZWZpbmVkKSB7IGFscGhhID0gMTsgfVxyXG5cclxuICAgICAgICBpZiAobGluZVdpZHRoID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmlzU3Ryb2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmxpbmVXaWR0aCA9IGxpbmVXaWR0aDtcclxuICAgICAgICAgICAgdGhpcy5zdHJva2VDb2xvciA9IGNvbG9yO1xyXG4gICAgICAgICAgICB0aGlzLnN0cm9rZUFscGhhID0gYWxwaGE7XHJcbiAgICAgICAgICAgIHRoaXMuaXNTdHJva2VkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgaWYgdGhpcyBTaGFwZSBwYXRoIGlzIGNsb3NlZCBkdXJpbmcgcmVuZGVyaW5nIHdoZW4gc3Ryb2tlZC5cclxuICAgICAqIE5vdGUgdGhhdCBzb21lIFNoYXBlcyBhcmUgYWx3YXlzIGNsb3NlZCB3aGVuIHN0cm9rZWQgKHN1Y2ggYXMgRWxsaXBzZSBzaGFwZXMpXHJcbiAgICAgKiBcclxuICAgICAqIFRoaXMgY2FsbCBjYW4gYmUgY2hhaW5lZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFwZSNzZXRDbG9zZVBhdGhcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSB2YWx1ZSAtIFNldCB0byBgdHJ1ZWAgaWYgdGhlIFNoYXBlIHNob3VsZCBiZSBjbG9zZWQgd2hlbiBzdHJva2VkLCBvdGhlcndpc2UgYGZhbHNlYC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRDbG9zZVBhdGg6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNsb3NlUGF0aCA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBkZXN0cm95IGhhbmRsZXIsIGNhbGxlZCBhcyBwYXJ0IG9mIHRoZSBkZXN0cm95IHByb2Nlc3MuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU2hhcGUjcHJlRGVzdHJveVxyXG4gICAgICogQHByb3RlY3RlZFxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICovXHJcbiAgICBwcmVEZXN0cm95OiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZ2VvbSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5fdGVtcExpbmUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMucGF0aERhdGEgPSBbXTtcclxuICAgICAgICB0aGlzLnBhdGhJbmRleGVzID0gW107XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gU2hhcGU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFV0aWxzID0gcmVxdWlyZSgnLi4vLi4vcmVuZGVyZXIvd2ViZ2wvVXRpbHMnKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIGEgc3Ryb2tlIG91dGxpbmUgYXJvdW5kIHRoZSBnaXZlbiBTaGFwZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU2hhcGUjU3Ryb2tlUGF0aFdlYkdMXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xQaXBlbGluZX0gcGlwZWxpbmUgLSBUaGUgV2ViR0wgUGlwZWxpbmUgdXNlZCB0byByZW5kZXIgdGhpcyBTaGFwZS5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuU2hhcGV9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBzaGFwZSBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBhbHBoYSAtIFRoZSBiYXNlIGFscGhhIHZhbHVlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gZHggLSBUaGUgc291cmNlIGRpc3BsYXlPcmlnaW5YLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gZHkgLSBUaGUgc291cmNlIGRpc3BsYXlPcmlnaW5ZLlxyXG4gKi9cclxudmFyIFN0cm9rZVBhdGhXZWJHTCA9IGZ1bmN0aW9uIChwaXBlbGluZSwgc3JjLCBhbHBoYSwgZHgsIGR5KVxyXG57XHJcbiAgICB2YXIgc3Ryb2tlVGludCA9IHBpcGVsaW5lLnN0cm9rZVRpbnQ7XHJcbiAgICB2YXIgc3Ryb2tlVGludENvbG9yID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGFBbmRTd2FwKHNyYy5zdHJva2VDb2xvciwgc3JjLnN0cm9rZUFscGhhICogYWxwaGEpO1xyXG5cclxuICAgIHN0cm9rZVRpbnQuVEwgPSBzdHJva2VUaW50Q29sb3I7XHJcbiAgICBzdHJva2VUaW50LlRSID0gc3Ryb2tlVGludENvbG9yO1xyXG4gICAgc3Ryb2tlVGludC5CTCA9IHN0cm9rZVRpbnRDb2xvcjtcclxuICAgIHN0cm9rZVRpbnQuQlIgPSBzdHJva2VUaW50Q29sb3I7XHJcblxyXG4gICAgdmFyIHBhdGggPSBzcmMucGF0aERhdGE7XHJcbiAgICB2YXIgcGF0aExlbmd0aCA9IHBhdGgubGVuZ3RoIC0gMTtcclxuICAgIHZhciBsaW5lV2lkdGggPSBzcmMubGluZVdpZHRoO1xyXG4gICAgdmFyIGhhbGZMaW5lV2lkdGggPSBsaW5lV2lkdGggLyAyO1xyXG5cclxuICAgIHZhciBweDEgPSBwYXRoWzBdIC0gZHg7XHJcbiAgICB2YXIgcHkxID0gcGF0aFsxXSAtIGR5O1xyXG5cclxuICAgIGlmICghc3JjLmNsb3NlUGF0aClcclxuICAgIHtcclxuICAgICAgICBwYXRoTGVuZ3RoIC09IDI7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yICh2YXIgaSA9IDI7IGkgPCBwYXRoTGVuZ3RoOyBpICs9IDIpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHB4MiA9IHBhdGhbaV0gLSBkeDtcclxuICAgICAgICB2YXIgcHkyID0gcGF0aFtpICsgMV0gLSBkeTtcclxuXHJcbiAgICAgICAgcGlwZWxpbmUuc2V0VGV4dHVyZTJEKCk7XHJcblxyXG4gICAgICAgIHBpcGVsaW5lLmJhdGNoTGluZShcclxuICAgICAgICAgICAgcHgxLFxyXG4gICAgICAgICAgICBweTEsXHJcbiAgICAgICAgICAgIHB4MixcclxuICAgICAgICAgICAgcHkyLFxyXG4gICAgICAgICAgICBoYWxmTGluZVdpZHRoLFxyXG4gICAgICAgICAgICBoYWxmTGluZVdpZHRoLFxyXG4gICAgICAgICAgICBsaW5lV2lkdGgsXHJcbiAgICAgICAgICAgIGkgLSAyLFxyXG4gICAgICAgICAgICAoc3JjLmNsb3NlUGF0aCkgPyAoaSA9PT0gcGF0aExlbmd0aCAtIDEpIDogZmFsc2VcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBweDEgPSBweDI7XHJcbiAgICAgICAgcHkxID0gcHkyO1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTdHJva2VQYXRoV2ViR0w7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEFyY1JlbmRlciA9IHJlcXVpcmUoJy4vQXJjUmVuZGVyJyk7XHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBEZWdUb1JhZCA9IHJlcXVpcmUoJy4uLy4uLy4uL21hdGgvRGVnVG9SYWQnKTtcclxudmFyIEVhcmN1dCA9IHJlcXVpcmUoJy4uLy4uLy4uL2dlb20vcG9seWdvbi9FYXJjdXQnKTtcclxudmFyIEdlb21DaXJjbGUgPSByZXF1aXJlKCcuLi8uLi8uLi9nZW9tL2NpcmNsZS9DaXJjbGUnKTtcclxudmFyIE1BVEhfQ09OU1QgPSByZXF1aXJlKCcuLi8uLi8uLi9tYXRoL2NvbnN0Jyk7XHJcbnZhciBTaGFwZSA9IHJlcXVpcmUoJy4uL1NoYXBlJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBUaGUgQXJjIFNoYXBlIGlzIGEgR2FtZSBPYmplY3QgdGhhdCBjYW4gYmUgYWRkZWQgdG8gYSBTY2VuZSwgR3JvdXAgb3IgQ29udGFpbmVyLiBZb3UgY2FuXHJcbiAqIHRyZWF0IGl0IGxpa2UgYW55IG90aGVyIEdhbWUgT2JqZWN0IGluIHlvdXIgZ2FtZSwgc3VjaCBhcyB0d2VlbmluZyBpdCwgc2NhbGluZyBpdCwgb3IgZW5hYmxpbmdcclxuICogaXQgZm9yIGlucHV0IG9yIHBoeXNpY3MuIEl0IHByb3ZpZGVzIGEgcXVpY2sgYW5kIGVhc3kgd2F5IGZvciB5b3UgdG8gcmVuZGVyIHRoaXMgc2hhcGUgaW4geW91clxyXG4gKiBnYW1lIHdpdGhvdXQgdXNpbmcgYSB0ZXh0dXJlLCB3aGlsZSBzdGlsbCB0YWtpbmcgYWR2YW50YWdlIG9mIGJlaW5nIGZ1bGx5IGJhdGNoZWQgaW4gV2ViR0wuXHJcbiAqIFxyXG4gKiBUaGlzIHNoYXBlIHN1cHBvcnRzIGJvdGggZmlsbCBhbmQgc3Ryb2tlIGNvbG9ycy5cclxuICogXHJcbiAqIFdoZW4gaXQgcmVuZGVycyBpdCBkaXNwbGF5cyBhbiBhcmMgc2hhcGUuIFlvdSBjYW4gY29udHJvbCB0aGUgc3RhcnQgYW5kIGVuZCBhbmdsZXMgb2YgdGhlIGFyYyxcclxuICogYXMgd2VsbCBhcyBpZiB0aGUgYW5nbGVzIGFyZSB3aW5kaW5nIGNsb2Nrd2lzZSBvciBhbnRpLWNsb2Nrd2lzZS4gV2l0aCB0aGUgZGVmYXVsdCBzZXR0aW5nc1xyXG4gKiBpdCByZW5kZXJzIGFzIGEgY29tcGxldGUgY2lyY2xlLiBCeSBjaGFuZ2luZyB0aGUgYW5nbGVzIHlvdSBjYW4gY3JlYXRlIG90aGVyIGFyYyBzaGFwZXMsXHJcbiAqIHN1Y2ggYXMgaGFsZi1jaXJjbGVzLlxyXG4gKiBcclxuICogQXJjcyBhbHNvIGhhdmUgYW4gYGl0ZXJhdGlvbnNgIHByb3BlcnR5IGFuZCBjb3JyZXNwb25kaW5nIGBzZXRJdGVyYXRpb25zYCBtZXRob2QuIFRoaXMgYWxsb3dzXHJcbiAqIHlvdSB0byBjb250cm9sIGhvdyBzbW9vdGggdGhlIHNoYXBlIHJlbmRlcnMgaW4gV2ViR0wsIGJ5IGNvbnRyb2xsaW5nIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9uc1xyXG4gKiB0aGF0IHRha2UgcGxhY2UgZHVyaW5nIGNvbnN0cnVjdGlvbi5cclxuICpcclxuICogQGNsYXNzIEFyY1xyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuU2hhcGVcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBUaGUgU2NlbmUgdG8gd2hpY2ggdGhpcyBHYW1lIE9iamVjdCBiZWxvbmdzLiBBIEdhbWUgT2JqZWN0IGNhbiBvbmx5IGJlbG9uZyB0byBvbmUgU2NlbmUgYXQgYSB0aW1lLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3g9MF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt5PTBdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3JhZGl1cz0xMjhdIC0gVGhlIHJhZGl1cyBvZiB0aGUgYXJjLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtzdGFydEFuZ2xlPTBdIC0gVGhlIHN0YXJ0IGFuZ2xlIG9mIHRoZSBhcmMsIGluIGRlZ3JlZXMuXHJcbiAqIEBwYXJhbSB7aW50ZWdlcn0gW2VuZEFuZ2xlPTM2MF0gLSBUaGUgZW5kIGFuZ2xlIG9mIHRoZSBhcmMsIGluIGRlZ3JlZXMuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FudGljbG9ja3dpc2U9ZmFsc2VdIC0gVGhlIHdpbmRpbmcgb3JkZXIgb2YgdGhlIHN0YXJ0IGFuZCBlbmQgYW5nbGVzLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxDb2xvcl0gLSBUaGUgY29sb3IgdGhlIGFyYyB3aWxsIGJlIGZpbGxlZCB3aXRoLCBpLmUuIDB4ZmYwMDAwIGZvciByZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbEFscGhhXSAtIFRoZSBhbHBoYSB0aGUgYXJjIHdpbGwgYmUgZmlsbGVkIHdpdGguIFlvdSBjYW4gYWxzbyBzZXQgdGhlIGFscGhhIG9mIHRoZSBvdmVyYWxsIFNoYXBlIHVzaW5nIGl0cyBgYWxwaGFgIHByb3BlcnR5LlxyXG4gKi9cclxudmFyIEFyYyA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogU2hhcGUsXHJcblxyXG4gICAgTWl4aW5zOiBbXHJcbiAgICAgICAgQXJjUmVuZGVyXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gQXJjIChzY2VuZSwgeCwgeSwgcmFkaXVzLCBzdGFydEFuZ2xlLCBlbmRBbmdsZSwgYW50aWNsb2Nrd2lzZSwgZmlsbENvbG9yLCBmaWxsQWxwaGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZCkgeyB4ID0gMDsgfVxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IDA7IH1cclxuICAgICAgICBpZiAocmFkaXVzID09PSB1bmRlZmluZWQpIHsgcmFkaXVzID0gMTI4OyB9XHJcbiAgICAgICAgaWYgKHN0YXJ0QW5nbGUgPT09IHVuZGVmaW5lZCkgeyBzdGFydEFuZ2xlID0gMDsgfVxyXG4gICAgICAgIGlmIChlbmRBbmdsZSA9PT0gdW5kZWZpbmVkKSB7IGVuZEFuZ2xlID0gMzYwOyB9XHJcbiAgICAgICAgaWYgKGFudGljbG9ja3dpc2UgPT09IHVuZGVmaW5lZCkgeyBhbnRpY2xvY2t3aXNlID0gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgU2hhcGUuY2FsbCh0aGlzLCBzY2VuZSwgJ0FyYycsIG5ldyBHZW9tQ2lyY2xlKDAsIDAsIHJhZGl1cykpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBQcml2YXRlIGludGVybmFsIHZhbHVlLiBIb2xkcyB0aGUgc3RhcnQgYW5nbGUgaW4gZGVncmVlcy5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5BcmMjX3N0YXJ0QW5nbGVcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9zdGFydEFuZ2xlID0gc3RhcnRBbmdsZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS4gSG9sZHMgdGhlIGVuZCBhbmdsZSBpbiBkZWdyZWVzLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkFyYyNfZW5kQW5nbGVcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9lbmRBbmdsZSA9IGVuZEFuZ2xlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBQcml2YXRlIGludGVybmFsIHZhbHVlLiBIb2xkcyB0aGUgd2luZGluZyBvcmRlciBvZiB0aGUgc3RhcnQgYW5kIGVuZCBhbmdsZXMuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQXJjI19hbnRpY2xvY2t3aXNlXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5fYW50aWNsb2Nrd2lzZSA9IGFudGljbG9ja3dpc2U7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFByaXZhdGUgaW50ZXJuYWwgdmFsdWUuIEhvbGRzIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyB1c2VkIHdoZW4gZHJhd2luZyB0aGUgYXJjLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkFyYyNfaXRlcmF0aW9uc1xyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQGRlZmF1bHQgMC4wMVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX2l0ZXJhdGlvbnMgPSAwLjAxO1xyXG5cclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHgsIHkpO1xyXG5cclxuICAgICAgICB2YXIgZGlhbWV0ZXIgPSB0aGlzLmdlb20ucmFkaXVzICogMjtcclxuICAgICAgICB0aGlzLnNldFNpemUoZGlhbWV0ZXIsIGRpYW1ldGVyKTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGxDb2xvciAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRGaWxsU3R5bGUoZmlsbENvbG9yLCBmaWxsQWxwaGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5T3JpZ2luKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG51bWJlciBvZiBpdGVyYXRpb25zIHVzZWQgd2hlbiBkcmF3aW5nIHRoZSBhcmMuXHJcbiAgICAgKiBJbmNyZWFzZSB0aGlzIHZhbHVlIGZvciBzbW9vdGhlciBhcmNzLCBhdCB0aGUgY29zdCBvZiBtb3JlIHBvbHlnb25zIGJlaW5nIHJlbmRlcmVkLlxyXG4gICAgICogTW9kaWZ5IHRoaXMgdmFsdWUgYnkgc21hbGwgYW1vdW50cywgc3VjaCBhcyAwLjAxLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5BcmMjaXRlcmF0aW9uc1xyXG4gICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAqIEBkZWZhdWx0IDAuMDFcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqL1xyXG4gICAgaXRlcmF0aW9uczoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXRlcmF0aW9ucztcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2l0ZXJhdGlvbnMgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHJhZGl1cyBvZiB0aGUgYXJjLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5BcmMjcmFkaXVzXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICovXHJcbiAgICByYWRpdXM6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2VvbS5yYWRpdXM7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLmdlb20ucmFkaXVzID0gdmFsdWU7XHJcblxyXG4gICAgICAgICAgICB2YXIgZGlhbWV0ZXIgPSB2YWx1ZSAqIDI7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U2l6ZShkaWFtZXRlciwgZGlhbWV0ZXIpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlPcmlnaW4oKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc3RhcnQgYW5nbGUgb2YgdGhlIGFyYywgaW4gZGVncmVlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQXJjI3N0YXJ0QW5nbGVcclxuICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICovXHJcbiAgICBzdGFydEFuZ2xlOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGFydEFuZ2xlO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fc3RhcnRBbmdsZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZW5kIGFuZ2xlIG9mIHRoZSBhcmMsIGluIGRlZ3JlZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkFyYyNlbmRBbmdsZVxyXG4gICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKi9cclxuICAgIGVuZEFuZ2xlOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbmRBbmdsZTtcclxuICAgICAgICB9LFxyXG5cclxuICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2VuZEFuZ2xlID0gdmFsdWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB3aW5kaW5nIG9yZGVyIG9mIHRoZSBzdGFydCBhbmQgZW5kIGFuZ2xlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQXJjI2FudGljbG9ja3dpc2VcclxuICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICovXHJcbiAgICBhbnRpY2xvY2t3aXNlOiB7XHJcblxyXG4gICAgICAgIGdldDogZnVuY3Rpb24gKClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hbnRpY2xvY2t3aXNlO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fYW50aWNsb2Nrd2lzZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSByYWRpdXMgb2YgdGhlIGFyYy5cclxuICAgICAqIFRoaXMgY2FsbCBjYW4gYmUgY2hhaW5lZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5BcmMjc2V0UmFkaXVzXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQgdGhlIHJhZGl1cyB0by5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRSYWRpdXM6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnJhZGl1cyA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyB1c2VkIHdoZW4gZHJhd2luZyB0aGUgYXJjLlxyXG4gICAgICogSW5jcmVhc2UgdGhpcyB2YWx1ZSBmb3Igc21vb3RoZXIgYXJjcywgYXQgdGhlIGNvc3Qgb2YgbW9yZSBwb2x5Z29ucyBiZWluZyByZW5kZXJlZC5cclxuICAgICAqIE1vZGlmeSB0aGlzIHZhbHVlIGJ5IHNtYWxsIGFtb3VudHMsIHN1Y2ggYXMgMC4wMS5cclxuICAgICAqIFRoaXMgY2FsbCBjYW4gYmUgY2hhaW5lZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5BcmMjc2V0SXRlcmF0aW9uc1xyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0IHRoZSBpdGVyYXRpb25zIHRvLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldEl0ZXJhdGlvbnM6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgeyB2YWx1ZSA9IDAuMDE7IH1cclxuXHJcbiAgICAgICAgdGhpcy5pdGVyYXRpb25zID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHN0YXJ0aW5nIGFuZ2xlIG9mIHRoZSBhcmMsIGluIGRlZ3JlZXMuXHJcbiAgICAgKiBUaGlzIGNhbGwgY2FuIGJlIGNoYWluZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQXJjI3NldFN0YXJ0QW5nbGVcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQgdGhlIHN0YXJ0aW5nIGFuZ2xlIHRvLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFN0YXJ0QW5nbGU6IGZ1bmN0aW9uIChhbmdsZSwgYW50aWNsb2Nrd2lzZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9zdGFydEFuZ2xlID0gYW5nbGU7XHJcblxyXG4gICAgICAgIGlmIChhbnRpY2xvY2t3aXNlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9hbnRpY2xvY2t3aXNlID0gYW50aWNsb2Nrd2lzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZURhdGEoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBlbmRpbmcgYW5nbGUgb2YgdGhlIGFyYywgaW4gZGVncmVlcy5cclxuICAgICAqIFRoaXMgY2FsbCBjYW4gYmUgY2hhaW5lZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5BcmMjc2V0RW5kQW5nbGVcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQgdGhlIGVuZGluZyBhbmdsZSB0by5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRFbmRBbmdsZTogZnVuY3Rpb24gKGFuZ2xlLCBhbnRpY2xvY2t3aXNlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2VuZEFuZ2xlID0gYW5nbGU7XHJcblxyXG4gICAgICAgIGlmIChhbnRpY2xvY2t3aXNlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9hbnRpY2xvY2t3aXNlID0gYW50aWNsb2Nrd2lzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZURhdGEoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBtZXRob2QgdGhhdCB1cGRhdGVzIHRoZSBkYXRhIGFuZCBwYXRoIHZhbHVlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5BcmMjdXBkYXRlRGF0YVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGVEYXRhOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBzdGVwID0gdGhpcy5faXRlcmF0aW9ucztcclxuICAgICAgICB2YXIgaXRlcmF0aW9uID0gc3RlcDtcclxuXHJcbiAgICAgICAgdmFyIHJhZGl1cyA9IHRoaXMuZ2VvbS5yYWRpdXM7XHJcbiAgICAgICAgdmFyIHN0YXJ0QW5nbGUgPSBEZWdUb1JhZCh0aGlzLl9zdGFydEFuZ2xlKTtcclxuICAgICAgICB2YXIgZW5kQW5nbGUgPSBEZWdUb1JhZCh0aGlzLl9lbmRBbmdsZSk7XHJcbiAgICAgICAgdmFyIGFudGljbG9ja3dpc2UgPSB0aGlzLl9hbnRpY2xvY2t3aXNlO1xyXG5cclxuICAgICAgICB2YXIgeCA9IHJhZGl1cztcclxuICAgICAgICB2YXIgeSA9IHJhZGl1cztcclxuXHJcbiAgICAgICAgZW5kQW5nbGUgLT0gc3RhcnRBbmdsZTtcclxuXHJcbiAgICAgICAgaWYgKGFudGljbG9ja3dpc2UpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoZW5kQW5nbGUgPCAtTUFUSF9DT05TVC5QSTIpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGVuZEFuZ2xlID0gLU1BVEhfQ09OU1QuUEkyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKGVuZEFuZ2xlID4gMClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZW5kQW5nbGUgPSAtTUFUSF9DT05TVC5QSTIgKyBlbmRBbmdsZSAlIE1BVEhfQ09OU1QuUEkyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGVuZEFuZ2xlID4gTUFUSF9DT05TVC5QSTIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBlbmRBbmdsZSA9IE1BVEhfQ09OU1QuUEkyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChlbmRBbmdsZSA8IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBlbmRBbmdsZSA9IE1BVEhfQ09OU1QuUEkyICsgZW5kQW5nbGUgJSBNQVRIX0NPTlNULlBJMjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHZhciBwYXRoID0gWyB4ICsgTWF0aC5jb3Moc3RhcnRBbmdsZSkgKiByYWRpdXMsIHkgKyBNYXRoLnNpbihzdGFydEFuZ2xlKSAqIHJhZGl1cyBdO1xyXG5cclxuICAgICAgICB2YXIgdGE7XHJcblxyXG4gICAgICAgIHdoaWxlIChpdGVyYXRpb24gPCAxKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGEgPSBlbmRBbmdsZSAqIGl0ZXJhdGlvbiArIHN0YXJ0QW5nbGU7XHJcblxyXG4gICAgICAgICAgICBwYXRoLnB1c2goeCArIE1hdGguY29zKHRhKSAqIHJhZGl1cywgeSArIE1hdGguc2luKHRhKSAqIHJhZGl1cyk7XHJcblxyXG4gICAgICAgICAgICBpdGVyYXRpb24gKz0gc3RlcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRhID0gZW5kQW5nbGUgKyBzdGFydEFuZ2xlO1xyXG5cclxuICAgICAgICBwYXRoLnB1c2goeCArIE1hdGguY29zKHRhKSAqIHJhZGl1cywgeSArIE1hdGguc2luKHRhKSAqIHJhZGl1cyk7XHJcblxyXG4gICAgICAgIHBhdGgucHVzaCh4ICsgTWF0aC5jb3Moc3RhcnRBbmdsZSkgKiByYWRpdXMsIHkgKyBNYXRoLnNpbihzdGFydEFuZ2xlKSAqIHJhZGl1cyk7XHJcblxyXG4gICAgICAgIHRoaXMucGF0aEluZGV4ZXMgPSBFYXJjdXQocGF0aCk7XHJcbiAgICAgICAgdGhpcy5wYXRoRGF0YSA9IHBhdGg7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEFyYztcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgRGVnVG9SYWQgPSByZXF1aXJlKCcuLi8uLi8uLi9tYXRoL0RlZ1RvUmFkJyk7XHJcbnZhciBGaWxsU3R5bGVDYW52YXMgPSByZXF1aXJlKCcuLi9GaWxsU3R5bGVDYW52YXMnKTtcclxudmFyIExpbmVTdHlsZUNhbnZhcyA9IHJlcXVpcmUoJy4uL0xpbmVTdHlsZUNhbnZhcycpO1xyXG52YXIgU2V0VHJhbnNmb3JtID0gcmVxdWlyZSgnLi4vLi4vLi4vcmVuZGVyZXIvY2FudmFzL3V0aWxzL1NldFRyYW5zZm9ybScpO1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlcnMgdGhpcyBHYW1lIE9iamVjdCB3aXRoIHRoZSBDYW52YXMgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5BcmMjcmVuZGVyQ2FudmFzXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBDYW52YXMgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkFyY30gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIEFyY0NhbnZhc1JlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgdmFyIGN0eCA9IHJlbmRlcmVyLmN1cnJlbnRDb250ZXh0O1xyXG5cclxuICAgIGlmIChTZXRUcmFuc2Zvcm0ocmVuZGVyZXIsIGN0eCwgc3JjLCBjYW1lcmEsIHBhcmVudE1hdHJpeCkpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHJhZGl1cyA9IHNyYy5yYWRpdXM7XHJcblxyXG4gICAgICAgIGN0eC5iZWdpblBhdGgoKTtcclxuXHJcbiAgICAgICAgY3R4LmFyYyhcclxuICAgICAgICAgICAgKHJhZGl1cykgLSBzcmMub3JpZ2luWCAqIChyYWRpdXMgKiAyKSxcclxuICAgICAgICAgICAgKHJhZGl1cykgLSBzcmMub3JpZ2luWSAqIChyYWRpdXMgKiAyKSxcclxuICAgICAgICAgICAgcmFkaXVzLFxyXG4gICAgICAgICAgICBEZWdUb1JhZChzcmMuX3N0YXJ0QW5nbGUpLFxyXG4gICAgICAgICAgICBEZWdUb1JhZChzcmMuX2VuZEFuZ2xlKSxcclxuICAgICAgICAgICAgc3JjLmFudGljbG9ja3dpc2VcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAoc3JjLmNsb3NlUGF0aClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGN0eC5jbG9zZVBhdGgoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzcmMuaXNGaWxsZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBGaWxsU3R5bGVDYW52YXMoY3R4LCBzcmMpO1xyXG5cclxuICAgICAgICAgICAgY3R4LmZpbGwoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzcmMuaXNTdHJva2VkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgTGluZVN0eWxlQ2FudmFzKGN0eCwgc3JjKTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBSZXN0b3JlIHRoZSBjb250ZXh0IHNhdmVkIGluIFNldFRyYW5zZm9ybVxyXG4gICAgICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEFyY0NhbnZhc1JlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBBcmMgPSByZXF1aXJlKCcuL0FyYycpO1xyXG52YXIgR2FtZU9iamVjdEZhY3RvcnkgPSByZXF1aXJlKCcuLi8uLi9HYW1lT2JqZWN0RmFjdG9yeScpO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBuZXcgQXJjIFNoYXBlIEdhbWUgT2JqZWN0IGFuZCBhZGRzIGl0IHRvIHRoZSBTY2VuZS5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgQXJjIEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKiBcclxuICogVGhlIEFyYyBTaGFwZSBpcyBhIEdhbWUgT2JqZWN0IHRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgU2NlbmUsIEdyb3VwIG9yIENvbnRhaW5lci4gWW91IGNhblxyXG4gKiB0cmVhdCBpdCBsaWtlIGFueSBvdGhlciBHYW1lIE9iamVjdCBpbiB5b3VyIGdhbWUsIHN1Y2ggYXMgdHdlZW5pbmcgaXQsIHNjYWxpbmcgaXQsIG9yIGVuYWJsaW5nXHJcbiAqIGl0IGZvciBpbnB1dCBvciBwaHlzaWNzLiBJdCBwcm92aWRlcyBhIHF1aWNrIGFuZCBlYXN5IHdheSBmb3IgeW91IHRvIHJlbmRlciB0aGlzIHNoYXBlIGluIHlvdXJcclxuICogZ2FtZSB3aXRob3V0IHVzaW5nIGEgdGV4dHVyZSwgd2hpbGUgc3RpbGwgdGFraW5nIGFkdmFudGFnZSBvZiBiZWluZyBmdWxseSBiYXRjaGVkIGluIFdlYkdMLlxyXG4gKiBcclxuICogVGhpcyBzaGFwZSBzdXBwb3J0cyBib3RoIGZpbGwgYW5kIHN0cm9rZSBjb2xvcnMuXHJcbiAqIFxyXG4gKiBXaGVuIGl0IHJlbmRlcnMgaXQgZGlzcGxheXMgYW4gYXJjIHNoYXBlLiBZb3UgY2FuIGNvbnRyb2wgdGhlIHN0YXJ0IGFuZCBlbmQgYW5nbGVzIG9mIHRoZSBhcmMsXHJcbiAqIGFzIHdlbGwgYXMgaWYgdGhlIGFuZ2xlcyBhcmUgd2luZGluZyBjbG9ja3dpc2Ugb3IgYW50aS1jbG9ja3dpc2UuIFdpdGggdGhlIGRlZmF1bHQgc2V0dGluZ3NcclxuICogaXQgcmVuZGVycyBhcyBhIGNvbXBsZXRlIGNpcmNsZS4gQnkgY2hhbmdpbmcgdGhlIGFuZ2xlcyB5b3UgY2FuIGNyZWF0ZSBvdGhlciBhcmMgc2hhcGVzLFxyXG4gKiBzdWNoIGFzIGhhbGYtY2lyY2xlcy5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjYXJjXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtyYWRpdXM9MTI4XSAtIFRoZSByYWRpdXMgb2YgdGhlIGFyYy5cclxuICogQHBhcmFtIHtpbnRlZ2VyfSBbc3RhcnRBbmdsZT0wXSAtIFRoZSBzdGFydCBhbmdsZSBvZiB0aGUgYXJjLCBpbiBkZWdyZWVzLlxyXG4gKiBAcGFyYW0ge2ludGVnZXJ9IFtlbmRBbmdsZT0zNjBdIC0gVGhlIGVuZCBhbmdsZSBvZiB0aGUgYXJjLCBpbiBkZWdyZWVzLlxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFthbnRpY2xvY2t3aXNlPWZhbHNlXSAtIFRoZSB3aW5kaW5nIG9yZGVyIG9mIHRoZSBzdGFydCBhbmQgZW5kIGFuZ2xlcy5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQ29sb3JdIC0gVGhlIGNvbG9yIHRoZSBhcmMgd2lsbCBiZSBmaWxsZWQgd2l0aCwgaS5lLiAweGZmMDAwMCBmb3IgcmVkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxBbHBoYV0gLSBUaGUgYWxwaGEgdGhlIGFyYyB3aWxsIGJlIGZpbGxlZCB3aXRoLiBZb3UgY2FuIGFsc28gc2V0IHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmFsbCBTaGFwZSB1c2luZyBpdHMgYGFscGhhYCBwcm9wZXJ0eS5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkFyY30gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0RmFjdG9yeS5yZWdpc3RlcignYXJjJywgZnVuY3Rpb24gKHgsIHksIHJhZGl1cywgc3RhcnRBbmdsZSwgZW5kQW5nbGUsIGFudGljbG9ja3dpc2UsIGZpbGxDb2xvciwgZmlsbEFscGhhKVxyXG57XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5TGlzdC5hZGQobmV3IEFyYyh0aGlzLnNjZW5lLCB4LCB5LCByYWRpdXMsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlLCBhbnRpY2xvY2t3aXNlLCBmaWxsQ29sb3IsIGZpbGxBbHBoYSkpO1xyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IENpcmNsZSBTaGFwZSBHYW1lIE9iamVjdCBhbmQgYWRkcyBpdCB0byB0aGUgU2NlbmUuXHJcbiAqIFxyXG4gKiBBIENpcmNsZSBpcyBhbiBBcmMgd2l0aCBubyBkZWZpbmVkIHN0YXJ0IGFuZCBlbmQgYW5nbGUsIG1ha2luZyBpdCByZW5kZXIgYXMgYSBjb21wbGV0ZSBjaXJjbGUuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIEFyYyBHYW1lIE9iamVjdCBoYXMgYmVlbiBidWlsdCBpbnRvIFBoYXNlci5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjY2lyY2xlXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtyYWRpdXM9MTI4XSAtIFRoZSByYWRpdXMgb2YgdGhlIGNpcmNsZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQ29sb3JdIC0gVGhlIGNvbG9yIHRoZSBjaXJjbGUgd2lsbCBiZSBmaWxsZWQgd2l0aCwgaS5lLiAweGZmMDAwMCBmb3IgcmVkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxBbHBoYV0gLSBUaGUgYWxwaGEgdGhlIGNpcmNsZSB3aWxsIGJlIGZpbGxlZCB3aXRoLiBZb3UgY2FuIGFsc28gc2V0IHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmFsbCBTaGFwZSB1c2luZyBpdHMgYGFscGhhYCBwcm9wZXJ0eS5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkFyY30gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0RmFjdG9yeS5yZWdpc3RlcignY2lyY2xlJywgZnVuY3Rpb24gKHgsIHksIHJhZGl1cywgZmlsbENvbG9yLCBmaWxsQWxwaGEpXHJcbntcclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXlMaXN0LmFkZChuZXcgQXJjKHRoaXMuc2NlbmUsIHgsIHksIHJhZGl1cywgMCwgMzYwLCBmYWxzZSwgZmlsbENvbG9yLCBmaWxsQWxwaGEpKTtcclxufSk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi4vLi4vLi4vdXRpbHMvTk9PUCcpO1xyXG52YXIgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi4vLi4vLi4vdXRpbHMvTk9PUCcpO1xyXG5cclxuaWYgKHR5cGVvZiBXRUJHTF9SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuL0FyY1dlYkdMUmVuZGVyZXInKTtcclxufVxyXG5cclxuaWYgKHR5cGVvZiBDQU5WQVNfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4vQXJjQ2FudmFzUmVuZGVyZXInKTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgcmVuZGVyV2ViR0w6IHJlbmRlcldlYkdMLFxyXG4gICAgcmVuZGVyQ2FudmFzOiByZW5kZXJDYW52YXNcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEZpbGxQYXRoV2ViR0wgPSByZXF1aXJlKCcuLi9GaWxsUGF0aFdlYkdMJyk7XHJcbnZhciBTdHJva2VQYXRoV2ViR0wgPSByZXF1aXJlKCcuLi9TdHJva2VQYXRoV2ViR0wnKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5BcmMjcmVuZGVyV2ViR0xcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBXZWJHTCByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQXJjfSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgQXJjV2ViR0xSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBwaXBlbGluZSA9IHRoaXMucGlwZWxpbmU7XHJcblxyXG4gICAgdmFyIGNhbU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MTtcclxuICAgIHZhciBzaGFwZU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MjtcclxuICAgIHZhciBjYWxjTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgzO1xyXG5cclxuICAgIHJlbmRlcmVyLnNldFBpcGVsaW5lKHBpcGVsaW5lKTtcclxuXHJcbiAgICBzaGFwZU1hdHJpeC5hcHBseUlUUlMoc3JjLngsIHNyYy55LCBzcmMucm90YXRpb24sIHNyYy5zY2FsZVgsIHNyYy5zY2FsZVkpO1xyXG5cclxuICAgIGNhbU1hdHJpeC5jb3B5RnJvbShjYW1lcmEubWF0cml4KTtcclxuXHJcbiAgICBpZiAocGFyZW50TWF0cml4KVxyXG4gICAge1xyXG4gICAgICAgIC8vICBNdWx0aXBseSB0aGUgY2FtZXJhIGJ5IHRoZSBwYXJlbnQgbWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5V2l0aE9mZnNldChwYXJlbnRNYXRyaXgsIC1jYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYLCAtY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWSk7XHJcblxyXG4gICAgICAgIC8vICBVbmRvIHRoZSBjYW1lcmEgc2Nyb2xsXHJcbiAgICAgICAgc2hhcGVNYXRyaXguZSA9IHNyYy54O1xyXG4gICAgICAgIHNoYXBlTWF0cml4LmYgPSBzcmMueTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgICBzaGFwZU1hdHJpeC5lIC09IGNhbWVyYS5zY3JvbGxYICogc3JjLnNjcm9sbEZhY3Rvclg7XHJcbiAgICAgICAgc2hhcGVNYXRyaXguZiAtPSBjYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbU1hdHJpeC5tdWx0aXBseShzaGFwZU1hdHJpeCwgY2FsY01hdHJpeCk7XHJcblxyXG4gICAgdmFyIGR4ID0gc3JjLl9kaXNwbGF5T3JpZ2luWDtcclxuICAgIHZhciBkeSA9IHNyYy5fZGlzcGxheU9yaWdpblk7XHJcblxyXG4gICAgdmFyIGFscGhhID0gY2FtZXJhLmFscGhhICogc3JjLmFscGhhO1xyXG5cclxuICAgIGlmIChzcmMuaXNGaWxsZWQpXHJcbiAgICB7XHJcbiAgICAgICAgRmlsbFBhdGhXZWJHTChwaXBlbGluZSwgY2FsY01hdHJpeCwgc3JjLCBhbHBoYSwgZHgsIGR5KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3JjLmlzU3Ryb2tlZClcclxuICAgIHtcclxuICAgICAgICBTdHJva2VQYXRoV2ViR0wocGlwZWxpbmUsIHNyYywgYWxwaGEsIGR4LCBkeSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEFyY1dlYkdMUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEN1cnZlUmVuZGVyID0gcmVxdWlyZSgnLi9DdXJ2ZVJlbmRlcicpO1xyXG52YXIgRWFyY3V0ID0gcmVxdWlyZSgnLi4vLi4vLi4vZ2VvbS9wb2x5Z29uL0VhcmN1dCcpO1xyXG52YXIgUmVjdGFuZ2xlID0gcmVxdWlyZSgnLi4vLi4vLi4vZ2VvbS9yZWN0YW5nbGUvUmVjdGFuZ2xlJyk7XHJcbnZhciBTaGFwZSA9IHJlcXVpcmUoJy4uL1NoYXBlJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBUaGUgQ3VydmUgU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgYm90aCBmaWxsIGFuZCBzdHJva2UgY29sb3JzLlxyXG4gKiBcclxuICogVG8gcmVuZGVyIGEgQ3VydmUgU2hhcGUgeW91IG11c3QgZmlyc3QgY3JlYXRlIGEgYFBoYXNlci5DdXJ2ZXMuQ3VydmVgIG9iamVjdCwgdGhlbiBwYXNzIGl0IHRvXHJcbiAqIHRoZSBDdXJ2ZSBTaGFwZSBpbiB0aGUgY29uc3RydWN0b3IuXHJcbiAqIFxyXG4gKiBUaGUgQ3VydmUgc2hhcGUgYWxzbyBoYXMgYSBgc21vb3RobmVzc2AgcHJvcGVydHkgYW5kIGNvcnJlc3BvbmRpbmcgYHNldFNtb290aG5lc3NgIG1ldGhvZC5cclxuICogVGhpcyBhbGxvd3MgeW91IHRvIGNvbnRyb2wgaG93IHNtb290aCB0aGUgc2hhcGUgcmVuZGVycyBpbiBXZWJHTCwgYnkgY29udHJvbGxpbmcgdGhlIG51bWJlciBvZiBpdGVyYXRpb25zXHJcbiAqIHRoYXQgdGFrZSBwbGFjZSBkdXJpbmcgY29uc3RydWN0aW9uLiBJbmNyZWFzZSBhbmQgZGVjcmVhc2UgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHNtb290aGVyLCBvciBtb3JlXHJcbiAqIGphZ2dlZCwgc2hhcGVzLlxyXG4gKlxyXG4gKiBAY2xhc3MgQ3VydmVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gQSBHYW1lIE9iamVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIFNjZW5lIGF0IGEgdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtQaGFzZXIuQ3VydmVzLkN1cnZlfSBbY3VydmVdIC0gVGhlIEN1cnZlIG9iamVjdCB0byB1c2UgdG8gY3JlYXRlIHRoZSBTaGFwZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQ29sb3JdIC0gVGhlIGNvbG9yIHRoZSBjdXJ2ZSB3aWxsIGJlIGZpbGxlZCB3aXRoLCBpLmUuIDB4ZmYwMDAwIGZvciByZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbEFscGhhXSAtIFRoZSBhbHBoYSB0aGUgY3VydmUgd2lsbCBiZSBmaWxsZWQgd2l0aC4gWW91IGNhbiBhbHNvIHNldCB0aGUgYWxwaGEgb2YgdGhlIG92ZXJhbGwgU2hhcGUgdXNpbmcgaXRzIGBhbHBoYWAgcHJvcGVydHkuXHJcbiAqL1xyXG52YXIgQ3VydmUgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IFNoYXBlLFxyXG5cclxuICAgIE1peGluczogW1xyXG4gICAgICAgIEN1cnZlUmVuZGVyXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gQ3VydmUgKHNjZW5lLCB4LCB5LCBjdXJ2ZSwgZmlsbENvbG9yLCBmaWxsQWxwaGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZCkgeyB4ID0gMDsgfVxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IDA7IH1cclxuXHJcbiAgICAgICAgU2hhcGUuY2FsbCh0aGlzLCBzY2VuZSwgJ0N1cnZlJywgY3VydmUpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBQcml2YXRlIGludGVybmFsIHZhbHVlLlxyXG4gICAgICAgICAqIFRoZSBudW1iZXIgb2YgcG9pbnRzIHVzZWQgdG8gZHJhdyB0aGUgY3VydmUuIEhpZ2hlciB2YWx1ZXMgY3JlYXRlIHNtb290aGVyIHJlbmRlcnMgYXQgdGhlIGNvc3Qgb2YgbW9yZSB0cmlhbmdsZXMgYmVpbmcgZHJhd24uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ3VydmUjX3Ntb290aG5lc3NcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9zbW9vdGhuZXNzID0gMzI7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFByaXZhdGUgaW50ZXJuYWwgdmFsdWUuXHJcbiAgICAgICAgICogVGhlIEN1cnZlIGJvdW5kcyByZWN0YW5nbGUuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuQ3VydmUjX2N1cnZlQm91bmRzXHJcbiAgICAgICAgICogQHR5cGUge1BoYXNlci5HZW9tLlJlY3RhbmdsZX1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9jdXJ2ZUJvdW5kcyA9IG5ldyBSZWN0YW5nbGUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jbG9zZVBhdGggPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvbih4LCB5KTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGxDb2xvciAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRGaWxsU3R5bGUoZmlsbENvbG9yLCBmaWxsQWxwaGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNtb290aG5lc3Mgb2YgdGhlIGN1cnZlLiBUaGUgbnVtYmVyIG9mIHBvaW50cyB1c2VkIHdoZW4gcmVuZGVyaW5nIGl0LlxyXG4gICAgICogSW5jcmVhc2UgdGhpcyB2YWx1ZSBmb3Igc21vb3RoZXIgY3VydmVzLCBhdCB0aGUgY29zdCBvZiBtb3JlIHBvbHlnb25zIGJlaW5nIHJlbmRlcmVkLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5DdXJ2ZSNzbW9vdGhuZXNzXHJcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAqIEBkZWZhdWx0IDMyXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKi9cclxuICAgIHNtb290aG5lc3M6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Ntb290aG5lc3M7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9zbW9vdGhuZXNzID0gdmFsdWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHNtb290aG5lc3Mgb2YgdGhlIGN1cnZlLiBUaGUgbnVtYmVyIG9mIHBvaW50cyB1c2VkIHdoZW4gcmVuZGVyaW5nIGl0LlxyXG4gICAgICogSW5jcmVhc2UgdGhpcyB2YWx1ZSBmb3Igc21vb3RoZXIgY3VydmVzLCBhdCB0aGUgY29zdCBvZiBtb3JlIHBvbHlnb25zIGJlaW5nIHJlbmRlcmVkLlxyXG4gICAgICogVGhpcyBjYWxsIGNhbiBiZSBjaGFpbmVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkN1cnZlI3NldFNtb290aG5lc3NcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQgdGhlIHNtb290aG5lc3MgdG8uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0U21vb3RobmVzczogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3Ntb290aG5lc3MgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlRGF0YSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIG1ldGhvZCB0aGF0IHVwZGF0ZXMgdGhlIGRhdGEgYW5kIHBhdGggdmFsdWVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkN1cnZlI3VwZGF0ZURhdGFcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlRGF0YTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgYm91bmRzID0gdGhpcy5fY3VydmVCb3VuZHM7XHJcbiAgICAgICAgdmFyIHNtb290aG5lc3MgPSB0aGlzLl9zbW9vdGhuZXNzO1xyXG5cclxuICAgICAgICAvLyAgVXBkYXRlIHRoZSBib3VuZHMgaW4gY2FzZSB0aGUgdW5kZXJseWluZyBkYXRhIGhhcyBjaGFuZ2VkXHJcbiAgICAgICAgdGhpcy5nZW9tLmdldEJvdW5kcyhib3VuZHMsIHNtb290aG5lc3MpO1xyXG5cclxuICAgICAgICB0aGlzLnNldFNpemUoYm91bmRzLndpZHRoLCBib3VuZHMuaGVpZ2h0KTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlPcmlnaW4oKTtcclxuXHJcbiAgICAgICAgdmFyIHBhdGggPSBbXTtcclxuICAgICAgICB2YXIgcG9pbnRzID0gdGhpcy5nZW9tLmdldFBvaW50cyhzbW9vdGhuZXNzKTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwYXRoLnB1c2gocG9pbnRzW2ldLngsIHBvaW50c1tpXS55KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBhdGgucHVzaChwb2ludHNbMF0ueCwgcG9pbnRzWzBdLnkpO1xyXG5cclxuICAgICAgICB0aGlzLnBhdGhJbmRleGVzID0gRWFyY3V0KHBhdGgpO1xyXG4gICAgICAgIHRoaXMucGF0aERhdGEgPSBwYXRoO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDdXJ2ZTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgRmlsbFN0eWxlQ2FudmFzID0gcmVxdWlyZSgnLi4vRmlsbFN0eWxlQ2FudmFzJyk7XHJcbnZhciBMaW5lU3R5bGVDYW52YXMgPSByZXF1aXJlKCcuLi9MaW5lU3R5bGVDYW52YXMnKTtcclxudmFyIFNldFRyYW5zZm9ybSA9IHJlcXVpcmUoJy4uLy4uLy4uL3JlbmRlcmVyL2NhbnZhcy91dGlscy9TZXRUcmFuc2Zvcm0nKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgQ2FudmFzIFJlbmRlcmVyIHRvIHRoZSBnaXZlbiBDYW1lcmEuXHJcbiAqIFRoZSBvYmplY3Qgd2lsbCBub3QgcmVuZGVyIGlmIGFueSBvZiBpdHMgcmVuZGVyRmxhZ3MgYXJlIHNldCBvciBpdCBpcyBiZWluZyBhY3RpdmVseSBmaWx0ZXJlZCBvdXQgYnkgdGhlIENhbWVyYS5cclxuICogVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuIEl0IGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBvZiB0aGUgUmVuZGVyIG1vZHVsZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuQ3VydmUjcmVuZGVyQ2FudmFzXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBDYW52YXMgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkN1cnZlfSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgQ3VydmVDYW52YXNSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBjdHggPSByZW5kZXJlci5jdXJyZW50Q29udGV4dDtcclxuXHJcbiAgICBpZiAoU2V0VHJhbnNmb3JtKHJlbmRlcmVyLCBjdHgsIHNyYywgY2FtZXJhLCBwYXJlbnRNYXRyaXgpKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBkeCA9IHNyYy5fZGlzcGxheU9yaWdpblggKyBzcmMuX2N1cnZlQm91bmRzLng7XHJcbiAgICAgICAgdmFyIGR5ID0gc3JjLl9kaXNwbGF5T3JpZ2luWSArIHNyYy5fY3VydmVCb3VuZHMueTtcclxuICAgIFxyXG4gICAgICAgIHZhciBwYXRoID0gc3JjLnBhdGhEYXRhO1xyXG4gICAgICAgIHZhciBwYXRoTGVuZ3RoID0gcGF0aC5sZW5ndGggLSAxO1xyXG4gICAgXHJcbiAgICAgICAgdmFyIHB4MSA9IHBhdGhbMF0gLSBkeDtcclxuICAgICAgICB2YXIgcHkxID0gcGF0aFsxXSAtIGR5O1xyXG5cclxuICAgICAgICBjdHguYmVnaW5QYXRoKCk7XHJcblxyXG4gICAgICAgIGN0eC5tb3ZlVG8ocHgxLCBweTEpO1xyXG4gICAgXHJcbiAgICAgICAgaWYgKCFzcmMuY2xvc2VQYXRoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcGF0aExlbmd0aCAtPSAyO1xyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgIGZvciAodmFyIGkgPSAyOyBpIDwgcGF0aExlbmd0aDsgaSArPSAyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHB4MiA9IHBhdGhbaV0gLSBkeDtcclxuICAgICAgICAgICAgdmFyIHB5MiA9IHBhdGhbaSArIDFdIC0gZHk7XHJcbiAgICBcclxuICAgICAgICAgICAgY3R4LmxpbmVUbyhweDIsIHB5Mik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoc3JjLmNsb3NlUGF0aClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGN0eC5jbG9zZVBhdGgoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzcmMuaXNGaWxsZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBGaWxsU3R5bGVDYW52YXMoY3R4LCBzcmMpO1xyXG5cclxuICAgICAgICAgICAgY3R4LmZpbGwoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzcmMuaXNTdHJva2VkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgTGluZVN0eWxlQ2FudmFzKGN0eCwgc3JjKTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBSZXN0b3JlIHRoZSBjb250ZXh0IHNhdmVkIGluIFNldFRyYW5zZm9ybVxyXG4gICAgICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEN1cnZlQ2FudmFzUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEdhbWVPYmplY3RGYWN0b3J5ID0gcmVxdWlyZSgnLi4vLi4vR2FtZU9iamVjdEZhY3RvcnknKTtcclxudmFyIEN1cnZlID0gcmVxdWlyZSgnLi9DdXJ2ZScpO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBuZXcgQ3VydmUgU2hhcGUgR2FtZSBPYmplY3QgYW5kIGFkZHMgaXQgdG8gdGhlIFNjZW5lLlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBDdXJ2ZSBHYW1lIE9iamVjdCBoYXMgYmVlbiBidWlsdCBpbnRvIFBoYXNlci5cclxuICogXHJcbiAqIFRoZSBDdXJ2ZSBTaGFwZSBpcyBhIEdhbWUgT2JqZWN0IHRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgU2NlbmUsIEdyb3VwIG9yIENvbnRhaW5lci4gWW91IGNhblxyXG4gKiB0cmVhdCBpdCBsaWtlIGFueSBvdGhlciBHYW1lIE9iamVjdCBpbiB5b3VyIGdhbWUsIHN1Y2ggYXMgdHdlZW5pbmcgaXQsIHNjYWxpbmcgaXQsIG9yIGVuYWJsaW5nXHJcbiAqIGl0IGZvciBpbnB1dCBvciBwaHlzaWNzLiBJdCBwcm92aWRlcyBhIHF1aWNrIGFuZCBlYXN5IHdheSBmb3IgeW91IHRvIHJlbmRlciB0aGlzIHNoYXBlIGluIHlvdXJcclxuICogZ2FtZSB3aXRob3V0IHVzaW5nIGEgdGV4dHVyZSwgd2hpbGUgc3RpbGwgdGFraW5nIGFkdmFudGFnZSBvZiBiZWluZyBmdWxseSBiYXRjaGVkIGluIFdlYkdMLlxyXG4gKiBcclxuICogVGhpcyBzaGFwZSBzdXBwb3J0cyBib3RoIGZpbGwgYW5kIHN0cm9rZSBjb2xvcnMuXHJcbiAqIFxyXG4gKiBUbyByZW5kZXIgYSBDdXJ2ZSBTaGFwZSB5b3UgbXVzdCBmaXJzdCBjcmVhdGUgYSBgUGhhc2VyLkN1cnZlcy5DdXJ2ZWAgb2JqZWN0LCB0aGVuIHBhc3MgaXQgdG9cclxuICogdGhlIEN1cnZlIFNoYXBlIGluIHRoZSBjb25zdHJ1Y3Rvci5cclxuICogXHJcbiAqIFRoZSBDdXJ2ZSBzaGFwZSBhbHNvIGhhcyBhIGBzbW9vdGhuZXNzYCBwcm9wZXJ0eSBhbmQgY29ycmVzcG9uZGluZyBgc2V0U21vb3RobmVzc2AgbWV0aG9kLlxyXG4gKiBUaGlzIGFsbG93cyB5b3UgdG8gY29udHJvbCBob3cgc21vb3RoIHRoZSBzaGFwZSByZW5kZXJzIGluIFdlYkdMLCBieSBjb250cm9sbGluZyB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnNcclxuICogdGhhdCB0YWtlIHBsYWNlIGR1cmluZyBjb25zdHJ1Y3Rpb24uIEluY3JlYXNlIGFuZCBkZWNyZWFzZSB0aGUgZGVmYXVsdCB2YWx1ZSBmb3Igc21vb3RoZXIsIG9yIG1vcmVcclxuICogamFnZ2VkLCBzaGFwZXMuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5I2N1cnZlXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtQaGFzZXIuQ3VydmVzLkN1cnZlfSBbY3VydmVdIC0gVGhlIEN1cnZlIG9iamVjdCB0byB1c2UgdG8gY3JlYXRlIHRoZSBTaGFwZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQ29sb3JdIC0gVGhlIGNvbG9yIHRoZSBjdXJ2ZSB3aWxsIGJlIGZpbGxlZCB3aXRoLCBpLmUuIDB4ZmYwMDAwIGZvciByZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbEFscGhhXSAtIFRoZSBhbHBoYSB0aGUgY3VydmUgd2lsbCBiZSBmaWxsZWQgd2l0aC4gWW91IGNhbiBhbHNvIHNldCB0aGUgYWxwaGEgb2YgdGhlIG92ZXJhbGwgU2hhcGUgdXNpbmcgaXRzIGBhbHBoYWAgcHJvcGVydHkuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5DdXJ2ZX0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0RmFjdG9yeS5yZWdpc3RlcignY3VydmUnLCBmdW5jdGlvbiAoeCwgeSwgY3VydmUsIGZpbGxDb2xvciwgZmlsbEFscGhhKVxyXG57XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5TGlzdC5hZGQobmV3IEN1cnZlKHRoaXMuc2NlbmUsIHgsIHksIGN1cnZlLCBmaWxsQ29sb3IsIGZpbGxBbHBoYSkpO1xyXG59KTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9OT09QJyk7XHJcbnZhciByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9OT09QJyk7XHJcblxyXG5pZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4vQ3VydmVXZWJHTFJlbmRlcmVyJyk7XHJcbn1cclxuXHJcbmlmICh0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL0N1cnZlQ2FudmFzUmVuZGVyZXInKTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgcmVuZGVyV2ViR0w6IHJlbmRlcldlYkdMLFxyXG4gICAgcmVuZGVyQ2FudmFzOiByZW5kZXJDYW52YXNcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEZpbGxQYXRoV2ViR0wgPSByZXF1aXJlKCcuLi9GaWxsUGF0aFdlYkdMJyk7XHJcbnZhciBTdHJva2VQYXRoV2ViR0wgPSByZXF1aXJlKCcuLi9TdHJva2VQYXRoV2ViR0wnKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5DdXJ2ZSNyZW5kZXJXZWJHTFxyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLldlYkdMLldlYkdMUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIFdlYkdMIHJlbmRlcmVyLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5DdXJ2ZX0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIEN1cnZlV2ViR0xSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBwaXBlbGluZSA9IHRoaXMucGlwZWxpbmU7XHJcblxyXG4gICAgdmFyIGNhbU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MTtcclxuICAgIHZhciBzaGFwZU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MjtcclxuICAgIHZhciBjYWxjTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgzO1xyXG5cclxuICAgIHJlbmRlcmVyLnNldFBpcGVsaW5lKHBpcGVsaW5lKTtcclxuXHJcbiAgICBzaGFwZU1hdHJpeC5hcHBseUlUUlMoc3JjLngsIHNyYy55LCBzcmMucm90YXRpb24sIHNyYy5zY2FsZVgsIHNyYy5zY2FsZVkpO1xyXG5cclxuICAgIGNhbU1hdHJpeC5jb3B5RnJvbShjYW1lcmEubWF0cml4KTtcclxuXHJcbiAgICBpZiAocGFyZW50TWF0cml4KVxyXG4gICAge1xyXG4gICAgICAgIC8vICBNdWx0aXBseSB0aGUgY2FtZXJhIGJ5IHRoZSBwYXJlbnQgbWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5V2l0aE9mZnNldChwYXJlbnRNYXRyaXgsIC1jYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYLCAtY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWSk7XHJcblxyXG4gICAgICAgIC8vICBVbmRvIHRoZSBjYW1lcmEgc2Nyb2xsXHJcbiAgICAgICAgc2hhcGVNYXRyaXguZSA9IHNyYy54O1xyXG4gICAgICAgIHNoYXBlTWF0cml4LmYgPSBzcmMueTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgICBzaGFwZU1hdHJpeC5lIC09IGNhbWVyYS5zY3JvbGxYICogc3JjLnNjcm9sbEZhY3Rvclg7XHJcbiAgICAgICAgc2hhcGVNYXRyaXguZiAtPSBjYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbU1hdHJpeC5tdWx0aXBseShzaGFwZU1hdHJpeCwgY2FsY01hdHJpeCk7XHJcblxyXG4gICAgdmFyIGR4ID0gc3JjLl9kaXNwbGF5T3JpZ2luWCArIHNyYy5fY3VydmVCb3VuZHMueDtcclxuICAgIHZhciBkeSA9IHNyYy5fZGlzcGxheU9yaWdpblkgKyBzcmMuX2N1cnZlQm91bmRzLnk7XHJcblxyXG4gICAgdmFyIGFscGhhID0gY2FtZXJhLmFscGhhICogc3JjLmFscGhhO1xyXG5cclxuICAgIGlmIChzcmMuaXNGaWxsZWQpXHJcbiAgICB7XHJcbiAgICAgICAgRmlsbFBhdGhXZWJHTChwaXBlbGluZSwgY2FsY01hdHJpeCwgc3JjLCBhbHBoYSwgZHgsIGR5KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3JjLmlzU3Ryb2tlZClcclxuICAgIHtcclxuICAgICAgICBTdHJva2VQYXRoV2ViR0wocGlwZWxpbmUsIHNyYywgYWxwaGEsIGR4LCBkeSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEN1cnZlV2ViR0xSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgRWFyY3V0ID0gcmVxdWlyZSgnLi4vLi4vLi4vZ2VvbS9wb2x5Z29uL0VhcmN1dCcpO1xyXG52YXIgRWxsaXBzZVJlbmRlciA9IHJlcXVpcmUoJy4vRWxsaXBzZVJlbmRlcicpO1xyXG52YXIgR2VvbUVsbGlwc2UgPSByZXF1aXJlKCcuLi8uLi8uLi9nZW9tL2VsbGlwc2UvRWxsaXBzZScpO1xyXG52YXIgU2hhcGUgPSByZXF1aXJlKCcuLi9TaGFwZScpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogVGhlIEVsbGlwc2UgU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgYm90aCBmaWxsIGFuZCBzdHJva2UgY29sb3JzLlxyXG4gKiBcclxuICogV2hlbiBpdCByZW5kZXJzIGl0IGRpc3BsYXlzIGFuIGVsbGlwc2Ugc2hhcGUuIFlvdSBjYW4gY29udHJvbCB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgZWxsaXBzZS5cclxuICogSWYgdGhlIHdpZHRoIGFuZCBoZWlnaHQgbWF0Y2ggaXQgd2lsbCByZW5kZXIgYXMgYSBjaXJjbGUuIElmIHRoZSB3aWR0aCBpcyBsZXNzIHRoYW4gdGhlIGhlaWdodCxcclxuICogaXQgd2lsbCBsb29rIG1vcmUgbGlrZSBhbiBlZ2cgc2hhcGUuXHJcbiAqIFxyXG4gKiBUaGUgRWxsaXBzZSBzaGFwZSBhbHNvIGhhcyBhIGBzbW9vdGhuZXNzYCBwcm9wZXJ0eSBhbmQgY29ycmVzcG9uZGluZyBgc2V0U21vb3RobmVzc2AgbWV0aG9kLlxyXG4gKiBUaGlzIGFsbG93cyB5b3UgdG8gY29udHJvbCBob3cgc21vb3RoIHRoZSBzaGFwZSByZW5kZXJzIGluIFdlYkdMLCBieSBjb250cm9sbGluZyB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnNcclxuICogdGhhdCB0YWtlIHBsYWNlIGR1cmluZyBjb25zdHJ1Y3Rpb24uIEluY3JlYXNlIGFuZCBkZWNyZWFzZSB0aGUgZGVmYXVsdCB2YWx1ZSBmb3Igc21vb3RoZXIsIG9yIG1vcmVcclxuICogamFnZ2VkLCBzaGFwZXMuXHJcbiAqXHJcbiAqIEBjbGFzcyBFbGxpcHNlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5TaGFwZVxyXG4gKiBAbWVtYmVyb2YgUGhhc2VyLkdhbWVPYmplY3RzXHJcbiAqIEBjb25zdHJ1Y3RvclxyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlNjZW5lfSBzY2VuZSAtIFRoZSBTY2VuZSB0byB3aGljaCB0aGlzIEdhbWUgT2JqZWN0IGJlbG9uZ3MuIEEgR2FtZSBPYmplY3QgY2FuIG9ubHkgYmVsb25nIHRvIG9uZSBTY2VuZSBhdCBhIHRpbWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeD0wXSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3k9MF0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2lkdGg9MTI4XSAtIFRoZSB3aWR0aCBvZiB0aGUgZWxsaXBzZS4gQW4gZWxsaXBzZSB3aXRoIGVxdWFsIHdpZHRoIGFuZCBoZWlnaHQgcmVuZGVycyBhcyBhIGNpcmNsZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtoZWlnaHQ9MTI4XSAtIFRoZSBoZWlnaHQgb2YgdGhlIGVsbGlwc2UuIEFuIGVsbGlwc2Ugd2l0aCBlcXVhbCB3aWR0aCBhbmQgaGVpZ2h0IHJlbmRlcnMgYXMgYSBjaXJjbGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbENvbG9yXSAtIFRoZSBjb2xvciB0aGUgZWxsaXBzZSB3aWxsIGJlIGZpbGxlZCB3aXRoLCBpLmUuIDB4ZmYwMDAwIGZvciByZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbEFscGhhXSAtIFRoZSBhbHBoYSB0aGUgZWxsaXBzZSB3aWxsIGJlIGZpbGxlZCB3aXRoLiBZb3UgY2FuIGFsc28gc2V0IHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmFsbCBTaGFwZSB1c2luZyBpdHMgYGFscGhhYCBwcm9wZXJ0eS5cclxuICovXHJcbnZhciBFbGxpcHNlID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBFeHRlbmRzOiBTaGFwZSxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBFbGxpcHNlUmVuZGVyXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gRWxsaXBzZSAoc2NlbmUsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGZpbGxDb2xvciwgZmlsbEFscGhhKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHsgeCA9IDA7IH1cclxuICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSAwOyB9XHJcbiAgICAgICAgaWYgKHdpZHRoID09PSB1bmRlZmluZWQpIHsgd2lkdGggPSAxMjg7IH1cclxuICAgICAgICBpZiAoaGVpZ2h0ID09PSB1bmRlZmluZWQpIHsgaGVpZ2h0ID0gMTI4OyB9XHJcblxyXG4gICAgICAgIFNoYXBlLmNhbGwodGhpcywgc2NlbmUsICdFbGxpcHNlJywgbmV3IEdlb21FbGxpcHNlKHdpZHRoIC8gMiwgaGVpZ2h0IC8gMiwgd2lkdGgsIGhlaWdodCkpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBQcml2YXRlIGludGVybmFsIHZhbHVlLlxyXG4gICAgICAgICAqIFRoZSBudW1iZXIgb2YgcG9pbnRzIHVzZWQgdG8gZHJhdyB0aGUgY3VydmUuIEhpZ2hlciB2YWx1ZXMgY3JlYXRlIHNtb290aGVyIHJlbmRlcnMgYXQgdGhlIGNvc3Qgb2YgbW9yZSB0cmlhbmdsZXMgYmVpbmcgZHJhd24uXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuRWxsaXBzZSNfc21vb3RobmVzc1xyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3Ntb290aG5lc3MgPSA2NDtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvbih4LCB5KTtcclxuXHJcbiAgICAgICAgdGhpcy53aWR0aCA9IHdpZHRoO1xyXG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0O1xyXG5cclxuICAgICAgICBpZiAoZmlsbENvbG9yICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNldEZpbGxTdHlsZShmaWxsQ29sb3IsIGZpbGxBbHBoYSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlPcmlnaW4oKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc21vb3RobmVzcyBvZiB0aGUgZWxsaXBzZS4gVGhlIG51bWJlciBvZiBwb2ludHMgdXNlZCB3aGVuIHJlbmRlcmluZyBpdC5cclxuICAgICAqIEluY3JlYXNlIHRoaXMgdmFsdWUgZm9yIGEgc21vb3RoZXIgZWxsaXBzZSwgYXQgdGhlIGNvc3Qgb2YgbW9yZSBwb2x5Z29ucyBiZWluZyByZW5kZXJlZC5cclxuICAgICAqXHJcbiAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuRWxsaXBzZSNzbW9vdGhuZXNzXHJcbiAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAqIEBkZWZhdWx0IDY0XHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKi9cclxuICAgIHNtb290aG5lc3M6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Ntb290aG5lc3M7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9zbW9vdGhuZXNzID0gdmFsdWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHNpemUgb2YgdGhlIGVsbGlwc2UgYnkgY2hhbmdpbmcgdGhlIHVuZGVybHlpbmcgZ2VvbWV0cnkgZGF0YSwgcmF0aGVyIHRoYW4gc2NhbGluZyB0aGUgb2JqZWN0LlxyXG4gICAgICogVGhpcyBjYWxsIGNhbiBiZSBjaGFpbmVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkVsbGlwc2Ujc2V0U2l6ZVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gd2lkdGggLSBUaGUgd2lkdGggb2YgdGhlIGVsbGlwc2UuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaGVpZ2h0IC0gVGhlIGhlaWdodCBvZiB0aGUgZWxsaXBzZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRTaXplOiBmdW5jdGlvbiAod2lkdGgsIGhlaWdodClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmdlb20uc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlRGF0YSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHNtb290aG5lc3Mgb2YgdGhlIGVsbGlwc2UuIFRoZSBudW1iZXIgb2YgcG9pbnRzIHVzZWQgd2hlbiByZW5kZXJpbmcgaXQuXHJcbiAgICAgKiBJbmNyZWFzZSB0aGlzIHZhbHVlIGZvciBhIHNtb290aGVyIGVsbGlwc2UsIGF0IHRoZSBjb3N0IG9mIG1vcmUgcG9seWdvbnMgYmVpbmcgcmVuZGVyZWQuXHJcbiAgICAgKiBUaGlzIGNhbGwgY2FuIGJlIGNoYWluZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuRWxsaXBzZSNzZXRTbW9vdGhuZXNzXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0IHRoZSBzbW9vdGhuZXNzIHRvLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFNtb290aG5lc3M6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9zbW9vdGhuZXNzID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZURhdGEoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnRlcm5hbCBtZXRob2QgdGhhdCB1cGRhdGVzIHRoZSBkYXRhIGFuZCBwYXRoIHZhbHVlcy5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5FbGxpcHNlI3VwZGF0ZURhdGFcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlRGF0YTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgcGF0aCA9IFtdO1xyXG4gICAgICAgIHZhciBwb2ludHMgPSB0aGlzLmdlb20uZ2V0UG9pbnRzKHRoaXMuX3Ntb290aG5lc3MpO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHBhdGgucHVzaChwb2ludHNbaV0ueCwgcG9pbnRzW2ldLnkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcGF0aC5wdXNoKHBvaW50c1swXS54LCBwb2ludHNbMF0ueSk7XHJcblxyXG4gICAgICAgIHRoaXMucGF0aEluZGV4ZXMgPSBFYXJjdXQocGF0aCk7XHJcbiAgICAgICAgdGhpcy5wYXRoRGF0YSA9IHBhdGg7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEVsbGlwc2U7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEZpbGxTdHlsZUNhbnZhcyA9IHJlcXVpcmUoJy4uL0ZpbGxTdHlsZUNhbnZhcycpO1xyXG52YXIgTGluZVN0eWxlQ2FudmFzID0gcmVxdWlyZSgnLi4vTGluZVN0eWxlQ2FudmFzJyk7XHJcbnZhciBTZXRUcmFuc2Zvcm0gPSByZXF1aXJlKCcuLi8uLi8uLi9yZW5kZXJlci9jYW52YXMvdXRpbHMvU2V0VHJhbnNmb3JtJyk7XHJcblxyXG4vKipcclxuICogUmVuZGVycyB0aGlzIEdhbWUgT2JqZWN0IHdpdGggdGhlIENhbnZhcyBSZW5kZXJlciB0byB0aGUgZ2l2ZW4gQ2FtZXJhLlxyXG4gKiBUaGUgb2JqZWN0IHdpbGwgbm90IHJlbmRlciBpZiBhbnkgb2YgaXRzIHJlbmRlckZsYWdzIGFyZSBzZXQgb3IgaXQgaXMgYmVpbmcgYWN0aXZlbHkgZmlsdGVyZWQgb3V0IGJ5IHRoZSBDYW1lcmEuXHJcbiAqIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBJdCBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gb2YgdGhlIFJlbmRlciBtb2R1bGUuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkVsbGlwc2UjcmVuZGVyQ2FudmFzXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBDYW52YXMgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkVsbGlwc2V9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICovXHJcbnZhciBFbGxpcHNlQ2FudmFzUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB2YXIgY3R4ID0gcmVuZGVyZXIuY3VycmVudENvbnRleHQ7XHJcblxyXG4gICAgaWYgKFNldFRyYW5zZm9ybShyZW5kZXJlciwgY3R4LCBzcmMsIGNhbWVyYSwgcGFyZW50TWF0cml4KSlcclxuICAgIHtcclxuICAgICAgICB2YXIgZHggPSBzcmMuX2Rpc3BsYXlPcmlnaW5YO1xyXG4gICAgICAgIHZhciBkeSA9IHNyYy5fZGlzcGxheU9yaWdpblk7XHJcblxyXG4gICAgICAgIHZhciBwYXRoID0gc3JjLnBhdGhEYXRhO1xyXG4gICAgICAgIHZhciBwYXRoTGVuZ3RoID0gcGF0aC5sZW5ndGggLSAxO1xyXG4gICAgXHJcbiAgICAgICAgdmFyIHB4MSA9IHBhdGhbMF0gLSBkeDtcclxuICAgICAgICB2YXIgcHkxID0gcGF0aFsxXSAtIGR5O1xyXG5cclxuICAgICAgICBjdHguYmVnaW5QYXRoKCk7XHJcblxyXG4gICAgICAgIGN0eC5tb3ZlVG8ocHgxLCBweTEpO1xyXG4gICAgXHJcbiAgICAgICAgaWYgKCFzcmMuY2xvc2VQYXRoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcGF0aExlbmd0aCAtPSAyO1xyXG4gICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgIGZvciAodmFyIGkgPSAyOyBpIDwgcGF0aExlbmd0aDsgaSArPSAyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdmFyIHB4MiA9IHBhdGhbaV0gLSBkeDtcclxuICAgICAgICAgICAgdmFyIHB5MiA9IHBhdGhbaSArIDFdIC0gZHk7XHJcbiAgICBcclxuICAgICAgICAgICAgY3R4LmxpbmVUbyhweDIsIHB5Mik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjdHguY2xvc2VQYXRoKCk7XHJcblxyXG4gICAgICAgIGlmIChzcmMuaXNGaWxsZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBGaWxsU3R5bGVDYW52YXMoY3R4LCBzcmMpO1xyXG5cclxuICAgICAgICAgICAgY3R4LmZpbGwoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzcmMuaXNTdHJva2VkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgTGluZVN0eWxlQ2FudmFzKGN0eCwgc3JjKTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBSZXN0b3JlIHRoZSBjb250ZXh0IHNhdmVkIGluIFNldFRyYW5zZm9ybVxyXG4gICAgICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEVsbGlwc2VDYW52YXNSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgRWxsaXBzZSA9IHJlcXVpcmUoJy4vRWxsaXBzZScpO1xyXG52YXIgR2FtZU9iamVjdEZhY3RvcnkgPSByZXF1aXJlKCcuLi8uLi9HYW1lT2JqZWN0RmFjdG9yeScpO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBuZXcgRWxsaXBzZSBTaGFwZSBHYW1lIE9iamVjdCBhbmQgYWRkcyBpdCB0byB0aGUgU2NlbmUuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIEVsbGlwc2UgR2FtZSBPYmplY3QgaGFzIGJlZW4gYnVpbHQgaW50byBQaGFzZXIuXHJcbiAqIFxyXG4gKiBUaGUgRWxsaXBzZSBTaGFwZSBpcyBhIEdhbWUgT2JqZWN0IHRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgU2NlbmUsIEdyb3VwIG9yIENvbnRhaW5lci4gWW91IGNhblxyXG4gKiB0cmVhdCBpdCBsaWtlIGFueSBvdGhlciBHYW1lIE9iamVjdCBpbiB5b3VyIGdhbWUsIHN1Y2ggYXMgdHdlZW5pbmcgaXQsIHNjYWxpbmcgaXQsIG9yIGVuYWJsaW5nXHJcbiAqIGl0IGZvciBpbnB1dCBvciBwaHlzaWNzLiBJdCBwcm92aWRlcyBhIHF1aWNrIGFuZCBlYXN5IHdheSBmb3IgeW91IHRvIHJlbmRlciB0aGlzIHNoYXBlIGluIHlvdXJcclxuICogZ2FtZSB3aXRob3V0IHVzaW5nIGEgdGV4dHVyZSwgd2hpbGUgc3RpbGwgdGFraW5nIGFkdmFudGFnZSBvZiBiZWluZyBmdWxseSBiYXRjaGVkIGluIFdlYkdMLlxyXG4gKiBcclxuICogVGhpcyBzaGFwZSBzdXBwb3J0cyBib3RoIGZpbGwgYW5kIHN0cm9rZSBjb2xvcnMuXHJcbiAqIFxyXG4gKiBXaGVuIGl0IHJlbmRlcnMgaXQgZGlzcGxheXMgYW4gZWxsaXBzZSBzaGFwZS4gWW91IGNhbiBjb250cm9sIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBlbGxpcHNlLlxyXG4gKiBJZiB0aGUgd2lkdGggYW5kIGhlaWdodCBtYXRjaCBpdCB3aWxsIHJlbmRlciBhcyBhIGNpcmNsZS4gSWYgdGhlIHdpZHRoIGlzIGxlc3MgdGhhbiB0aGUgaGVpZ2h0LFxyXG4gKiBpdCB3aWxsIGxvb2sgbW9yZSBsaWtlIGFuIGVnZyBzaGFwZS5cclxuICogXHJcbiAqIFRoZSBFbGxpcHNlIHNoYXBlIGFsc28gaGFzIGEgYHNtb290aG5lc3NgIHByb3BlcnR5IGFuZCBjb3JyZXNwb25kaW5nIGBzZXRTbW9vdGhuZXNzYCBtZXRob2QuXHJcbiAqIFRoaXMgYWxsb3dzIHlvdSB0byBjb250cm9sIGhvdyBzbW9vdGggdGhlIHNoYXBlIHJlbmRlcnMgaW4gV2ViR0wsIGJ5IGNvbnRyb2xsaW5nIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9uc1xyXG4gKiB0aGF0IHRha2UgcGxhY2UgZHVyaW5nIGNvbnN0cnVjdGlvbi4gSW5jcmVhc2UgYW5kIGRlY3JlYXNlIHRoZSBkZWZhdWx0IHZhbHVlIGZvciBzbW9vdGhlciwgb3IgbW9yZVxyXG4gKiBqYWdnZWQsIHNoYXBlcy5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjZWxsaXBzZVxyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeD0wXSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3k9MF0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2lkdGg9MTI4XSAtIFRoZSB3aWR0aCBvZiB0aGUgZWxsaXBzZS4gQW4gZWxsaXBzZSB3aXRoIGVxdWFsIHdpZHRoIGFuZCBoZWlnaHQgcmVuZGVycyBhcyBhIGNpcmNsZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtoZWlnaHQ9MTI4XSAtIFRoZSBoZWlnaHQgb2YgdGhlIGVsbGlwc2UuIEFuIGVsbGlwc2Ugd2l0aCBlcXVhbCB3aWR0aCBhbmQgaGVpZ2h0IHJlbmRlcnMgYXMgYSBjaXJjbGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbENvbG9yXSAtIFRoZSBjb2xvciB0aGUgZWxsaXBzZSB3aWxsIGJlIGZpbGxlZCB3aXRoLCBpLmUuIDB4ZmYwMDAwIGZvciByZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbEFscGhhXSAtIFRoZSBhbHBoYSB0aGUgZWxsaXBzZSB3aWxsIGJlIGZpbGxlZCB3aXRoLiBZb3UgY2FuIGFsc28gc2V0IHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmFsbCBTaGFwZSB1c2luZyBpdHMgYGFscGhhYCBwcm9wZXJ0eS5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkVsbGlwc2V9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuR2FtZU9iamVjdEZhY3RvcnkucmVnaXN0ZXIoJ2VsbGlwc2UnLCBmdW5jdGlvbiAoeCwgeSwgd2lkdGgsIGhlaWdodCwgZmlsbENvbG9yLCBmaWxsQWxwaGEpXHJcbntcclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXlMaXN0LmFkZChuZXcgRWxsaXBzZSh0aGlzLnNjZW5lLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmaWxsQ29sb3IsIGZpbGxBbHBoYSkpO1xyXG59KTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9OT09QJyk7XHJcbnZhciByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9OT09QJyk7XHJcblxyXG5pZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4vRWxsaXBzZVdlYkdMUmVuZGVyZXInKTtcclxufVxyXG5cclxuaWYgKHR5cGVvZiBDQU5WQVNfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4vRWxsaXBzZUNhbnZhc1JlbmRlcmVyJyk7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIHJlbmRlcldlYkdMOiByZW5kZXJXZWJHTCxcclxuICAgIHJlbmRlckNhbnZhczogcmVuZGVyQ2FudmFzXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBGaWxsUGF0aFdlYkdMID0gcmVxdWlyZSgnLi4vRmlsbFBhdGhXZWJHTCcpO1xyXG52YXIgU3Ryb2tlUGF0aFdlYkdMID0gcmVxdWlyZSgnLi4vU3Ryb2tlUGF0aFdlYkdMJyk7XHJcblxyXG4vKipcclxuICogUmVuZGVycyB0aGlzIEdhbWUgT2JqZWN0IHdpdGggdGhlIFdlYkdMIFJlbmRlcmVyIHRvIHRoZSBnaXZlbiBDYW1lcmEuXHJcbiAqIFRoZSBvYmplY3Qgd2lsbCBub3QgcmVuZGVyIGlmIGFueSBvZiBpdHMgcmVuZGVyRmxhZ3MgYXJlIHNldCBvciBpdCBpcyBiZWluZyBhY3RpdmVseSBmaWx0ZXJlZCBvdXQgYnkgdGhlIENhbWVyYS5cclxuICogVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuIEl0IGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBvZiB0aGUgUmVuZGVyIG1vZHVsZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuRWxsaXBzZSNyZW5kZXJXZWJHTFxyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLldlYkdMLldlYkdMUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIFdlYkdMIHJlbmRlcmVyLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5FbGxpcHNlfSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgRWxsaXBzZVdlYkdMUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB2YXIgcGlwZWxpbmUgPSB0aGlzLnBpcGVsaW5lO1xyXG5cclxuICAgIHZhciBjYW1NYXRyaXggPSBwaXBlbGluZS5fdGVtcE1hdHJpeDE7XHJcbiAgICB2YXIgc2hhcGVNYXRyaXggPSBwaXBlbGluZS5fdGVtcE1hdHJpeDI7XHJcbiAgICB2YXIgY2FsY01hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MztcclxuXHJcbiAgICByZW5kZXJlci5zZXRQaXBlbGluZShwaXBlbGluZSk7XHJcblxyXG4gICAgc2hhcGVNYXRyaXguYXBwbHlJVFJTKHNyYy54LCBzcmMueSwgc3JjLnJvdGF0aW9uLCBzcmMuc2NhbGVYLCBzcmMuc2NhbGVZKTtcclxuXHJcbiAgICBjYW1NYXRyaXguY29weUZyb20oY2FtZXJhLm1hdHJpeCk7XHJcblxyXG4gICAgaWYgKHBhcmVudE1hdHJpeClcclxuICAgIHtcclxuICAgICAgICAvLyAgTXVsdGlwbHkgdGhlIGNhbWVyYSBieSB0aGUgcGFyZW50IG1hdHJpeFxyXG4gICAgICAgIGNhbU1hdHJpeC5tdWx0aXBseVdpdGhPZmZzZXQocGFyZW50TWF0cml4LCAtY2FtZXJhLnNjcm9sbFggKiBzcmMuc2Nyb2xsRmFjdG9yWCwgLWNhbWVyYS5zY3JvbGxZICogc3JjLnNjcm9sbEZhY3RvclkpO1xyXG5cclxuICAgICAgICAvLyAgVW5kbyB0aGUgY2FtZXJhIHNjcm9sbFxyXG4gICAgICAgIHNoYXBlTWF0cml4LmUgPSBzcmMueDtcclxuICAgICAgICBzaGFwZU1hdHJpeC5mID0gc3JjLnk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgc2hhcGVNYXRyaXguZSAtPSBjYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYO1xyXG4gICAgICAgIHNoYXBlTWF0cml4LmYgLT0gY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWTtcclxuICAgIH1cclxuXHJcbiAgICBjYW1NYXRyaXgubXVsdGlwbHkoc2hhcGVNYXRyaXgsIGNhbGNNYXRyaXgpO1xyXG5cclxuICAgIHZhciBkeCA9IHNyYy5fZGlzcGxheU9yaWdpblg7XHJcbiAgICB2YXIgZHkgPSBzcmMuX2Rpc3BsYXlPcmlnaW5ZO1xyXG5cclxuICAgIHZhciBhbHBoYSA9IGNhbWVyYS5hbHBoYSAqIHNyYy5hbHBoYTtcclxuXHJcbiAgICBpZiAoc3JjLmlzRmlsbGVkKVxyXG4gICAge1xyXG4gICAgICAgIEZpbGxQYXRoV2ViR0wocGlwZWxpbmUsIGNhbGNNYXRyaXgsIHNyYywgYWxwaGEsIGR4LCBkeSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNyYy5pc1N0cm9rZWQpXHJcbiAgICB7XHJcbiAgICAgICAgU3Ryb2tlUGF0aFdlYkdMKHBpcGVsaW5lLCBzcmMsIGFscGhhLCBkeCwgZHkpO1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBFbGxpcHNlV2ViR0xSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgU2hhcGUgPSByZXF1aXJlKCcuLi9TaGFwZScpO1xyXG52YXIgR3JpZFJlbmRlciA9IHJlcXVpcmUoJy4vR3JpZFJlbmRlcicpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogVGhlIEdyaWQgU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgb25seSBmaWxsIGNvbG9ycyBhbmQgY2Fubm90IGJlIHN0cm9rZWQuXHJcbiAqIFxyXG4gKiBBIEdyaWQgU2hhcGUgYWxsb3dzIHlvdSB0byBkaXNwbGF5IGEgZ3JpZCBpbiB5b3VyIGdhbWUsIHdoZXJlIHlvdSBjYW4gY29udHJvbCB0aGUgc2l6ZSBvZiB0aGVcclxuICogZ3JpZCBhcyB3ZWxsIGFzIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBncmlkIGNlbGxzLiBZb3UgY2FuIHNldCBhIGZpbGwgY29sb3IgZm9yIGVhY2ggZ3JpZFxyXG4gKiBjZWxsIGFzIHdlbGwgYXMgYW4gYWx0ZXJuYXRlIGZpbGwgY29sb3IuIFdoZW4gdGhlIGFsdGVybmF0ZSBmaWxsIGNvbG9yIGlzIHNldCB0aGVuIHRoZSBncmlkXHJcbiAqIGNlbGxzIHdpbGwgYWx0ZXJuYXRlIHRoZSBmaWxsIGNvbG9ycyBhcyB0aGV5IHJlbmRlciwgY3JlYXRpbmcgYSBjaGVzcy1ib2FyZCBlZmZlY3QuIFlvdSBjYW5cclxuICogYWxzbyBvcHRpb25hbGx5IGhhdmUgYW4gb3V0bGluZSBmaWxsIGNvbG9yLiBJZiBzZXQsIHRoaXMgZHJhd3MgbGluZXMgYmV0d2VlbiB0aGUgZ3JpZCBjZWxsc1xyXG4gKiBpbiB0aGUgZ2l2ZW4gY29sb3IuIElmIHlvdSBzcGVjaWZ5IGFuIG91dGxpbmUgY29sb3Igd2l0aCBhbiBhbHBoYSBvZiB6ZXJvLCB0aGVuIGl0IHdpbGwgZHJhd1xyXG4gKiB0aGUgY2VsbHMgc3BhY2VkIG91dCwgYnV0IHdpdGhvdXQgdGhlIGxpbmVzIGJldHdlZW4gdGhlbS5cclxuICpcclxuICogQGNsYXNzIEdyaWRcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gQSBHYW1lIE9iamVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIFNjZW5lIGF0IGEgdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt3aWR0aD0xMjhdIC0gVGhlIHdpZHRoIG9mIHRoZSBncmlkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2hlaWdodD0xMjhdIC0gVGhlIGhlaWdodCBvZiB0aGUgZ3JpZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtjZWxsV2lkdGg9MzJdIC0gVGhlIHdpZHRoIG9mIG9uZSBjZWxsIGluIHRoZSBncmlkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2NlbGxIZWlnaHQ9MzJdIC0gVGhlIGhlaWdodCBvZiBvbmUgY2VsbCBpbiB0aGUgZ3JpZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQ29sb3JdIC0gVGhlIGNvbG9yIHRoZSBncmlkIGNlbGxzIHdpbGwgYmUgZmlsbGVkIHdpdGgsIGkuZS4gMHhmZjAwMDAgZm9yIHJlZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQWxwaGFdIC0gVGhlIGFscGhhIHRoZSBncmlkIGNlbGxzIHdpbGwgYmUgZmlsbGVkIHdpdGguIFlvdSBjYW4gYWxzbyBzZXQgdGhlIGFscGhhIG9mIHRoZSBvdmVyYWxsIFNoYXBlIHVzaW5nIGl0cyBgYWxwaGFgIHByb3BlcnR5LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW291dGxpbmVGaWxsQ29sb3JdIC0gVGhlIGNvbG9yIG9mIHRoZSBsaW5lcyBiZXR3ZWVuIHRoZSBncmlkIGNlbGxzLiBTZWUgdGhlIGBzZXRPdXRsaW5lYCBtZXRob2QuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbb3V0bGluZUZpbGxBbHBoYV0gLSBUaGUgYWxwaGEgb2YgdGhlIGxpbmVzIGJldHdlZW4gdGhlIGdyaWQgY2VsbHMuXHJcbiAqL1xyXG52YXIgR3JpZCA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogU2hhcGUsXHJcblxyXG4gICAgTWl4aW5zOiBbXHJcbiAgICAgICAgR3JpZFJlbmRlclxyXG4gICAgXSxcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIEdyaWQgKHNjZW5lLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjZWxsV2lkdGgsIGNlbGxIZWlnaHQsIGZpbGxDb2xvciwgZmlsbEFscGhhLCBvdXRsaW5lRmlsbENvbG9yLCBvdXRsaW5lRmlsbEFscGhhKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHsgeCA9IDA7IH1cclxuICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSAwOyB9XHJcbiAgICAgICAgaWYgKHdpZHRoID09PSB1bmRlZmluZWQpIHsgd2lkdGggPSAxMjg7IH1cclxuICAgICAgICBpZiAoaGVpZ2h0ID09PSB1bmRlZmluZWQpIHsgaGVpZ2h0ID0gMTI4OyB9XHJcbiAgICAgICAgaWYgKGNlbGxXaWR0aCA9PT0gdW5kZWZpbmVkKSB7IGNlbGxXaWR0aCA9IDMyOyB9XHJcbiAgICAgICAgaWYgKGNlbGxIZWlnaHQgPT09IHVuZGVmaW5lZCkgeyBjZWxsSGVpZ2h0ID0gMzI7IH1cclxuXHJcbiAgICAgICAgU2hhcGUuY2FsbCh0aGlzLCBzY2VuZSwgJ0dyaWQnLCBudWxsKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHdpZHRoIG9mIGVhY2ggZ3JpZCBjZWxsLlxyXG4gICAgICAgICAqIE11c3QgYmUgYSBwb3NpdGl2ZSB2YWx1ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HcmlkI2NlbGxXaWR0aFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuY2VsbFdpZHRoID0gY2VsbFdpZHRoO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgaGVpZ2h0IG9mIGVhY2ggZ3JpZCBjZWxsLlxyXG4gICAgICAgICAqIE11c3QgYmUgYSBwb3NpdGl2ZSB2YWx1ZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HcmlkI2NlbGxIZWlnaHRcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmNlbGxIZWlnaHQgPSBjZWxsSGVpZ2h0O1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBXaWxsIHRoZSBncmlkIHJlbmRlciBpdHMgY2VsbHMgaW4gdGhlIGBmaWxsQ29sb3JgP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyaWQjc2hvd0NlbGxzXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2hvd0NlbGxzID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGNvbG9yIG9mIHRoZSBsaW5lcyBiZXR3ZWVuIGVhY2ggZ3JpZCBjZWxsLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyaWQjb3V0bGluZUZpbGxDb2xvclxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMub3V0bGluZUZpbGxDb2xvciA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBhbHBoYSB2YWx1ZSBmb3IgdGhlIGNvbG9yIG9mIHRoZSBsaW5lcyBiZXR3ZWVuIGVhY2ggZ3JpZCBjZWxsLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyaWQjb3V0bGluZUZpbGxBbHBoYVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMub3V0bGluZUZpbGxBbHBoYSA9IDA7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFdpbGwgdGhlIGdyaWQgZGlzcGxheSB0aGUgbGluZXMgYmV0d2VlbiBlYWNoIGNlbGwgd2hlbiBpdCByZW5kZXJzP1xyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkdyaWQjc2hvd091dGxpbmVcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zaG93T3V0bGluZSA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFdpbGwgdGhlIGdyaWQgcmVuZGVyIHRoZSBhbHRlcm5hdGluZyBjZWxscyBpbiB0aGUgYGFsdEZpbGxDb2xvcmA/XHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuR3JpZCNzaG93QWx0Q2VsbHNcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zaG93QWx0Q2VsbHMgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGNvbG9yIHRoZSBhbHRlcm5hdGluZyBncmlkIGNlbGxzIHdpbGwgYmUgZmlsbGVkIHdpdGgsIGkuZS4gMHhmZjAwMDAgZm9yIHJlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HcmlkI2FsdEZpbGxDb2xvclxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWx0RmlsbENvbG9yO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgYWxwaGEgdGhlIGFsdGVybmF0aW5nIGdyaWQgY2VsbHMgd2lsbCBiZSBmaWxsZWQgd2l0aC5cclxuICAgICAgICAgKiBZb3UgY2FuIGFsc28gc2V0IHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmFsbCBTaGFwZSB1c2luZyBpdHMgYGFscGhhYCBwcm9wZXJ0eS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5HcmlkI2FsdEZpbGxBbHBoYVxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuYWx0RmlsbEFscGhhO1xyXG5cclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIHRoaXMuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGxDb2xvciAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRGaWxsU3R5bGUoZmlsbENvbG9yLCBmaWxsQWxwaGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG91dGxpbmVGaWxsQ29sb3IgIT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0T3V0bGluZVN0eWxlKG91dGxpbmVGaWxsQ29sb3IsIG91dGxpbmVGaWxsQWxwaGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5T3JpZ2luKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgZmlsbCBjb2xvciBhbmQgYWxwaGEgbGV2ZWwgdGhlIGdyaWQgY2VsbHMgd2lsbCB1c2Ugd2hlbiByZW5kZXJpbmcuXHJcbiAgICAgKiBcclxuICAgICAqIElmIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aXRoIG5vIHZhbHVlcyB0aGVuIHRoZSBncmlkIGNlbGxzIHdpbGwgbm90IGJlIHJlbmRlcmVkLCBcclxuICAgICAqIGhvd2V2ZXIgdGhlIGdyaWQgbGluZXMgYW5kIGFsdGVybmF0aW5nIGNlbGxzIG1heSBzdGlsbCBiZS5cclxuICAgICAqIFxyXG4gICAgICogQWxzbyBzZWUgdGhlIGBzZXRPdXRsaW5lU3R5bGVgIGFuZCBgc2V0QWx0RmlsbFN0eWxlYCBtZXRob2RzLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGlzIGNhbGwgY2FuIGJlIGNoYWluZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JpZCNzZXRGaWxsU3R5bGVcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQ29sb3JdIC0gVGhlIGNvbG9yIHRoZSBncmlkIGNlbGxzIHdpbGwgYmUgZmlsbGVkIHdpdGgsIGkuZS4gMHhmZjAwMDAgZm9yIHJlZC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbEFscGhhPTFdIC0gVGhlIGFscGhhIHRoZSBncmlkIGNlbGxzIHdpbGwgYmUgZmlsbGVkIHdpdGguIFlvdSBjYW4gYWxzbyBzZXQgdGhlIGFscGhhIG9mIHRoZSBvdmVyYWxsIFNoYXBlIHVzaW5nIGl0cyBgYWxwaGFgIHByb3BlcnR5LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldEZpbGxTdHlsZTogZnVuY3Rpb24gKGZpbGxDb2xvciwgZmlsbEFscGhhKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChmaWxsQWxwaGEgPT09IHVuZGVmaW5lZCkgeyBmaWxsQWxwaGEgPSAxOyB9XHJcblxyXG4gICAgICAgIGlmIChmaWxsQ29sb3IgPT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0NlbGxzID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsbENvbG9yID0gZmlsbENvbG9yO1xyXG4gICAgICAgICAgICB0aGlzLmZpbGxBbHBoYSA9IGZpbGxBbHBoYTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Q2VsbHMgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgZmlsbCBjb2xvciBhbmQgYWxwaGEgbGV2ZWwgdGhhdCB0aGUgYWx0ZXJuYXRpbmcgZ3JpZCBjZWxscyB3aWxsIHVzZS5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhpcyBtZXRob2QgaXMgY2FsbGVkIHdpdGggbm8gdmFsdWVzIHRoZW4gYWx0ZXJuYXRpbmcgZ3JpZCBjZWxscyB3aWxsIG5vdCBiZSByZW5kZXJlZCBpbiBhIGRpZmZlcmVudCBjb2xvci5cclxuICAgICAqIFxyXG4gICAgICogQWxzbyBzZWUgdGhlIGBzZXRPdXRsaW5lU3R5bGVgIGFuZCBgc2V0RmlsbFN0eWxlYCBtZXRob2RzLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGlzIGNhbGwgY2FuIGJlIGNoYWluZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR3JpZCNzZXRBbHRGaWxsU3R5bGVcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQ29sb3JdIC0gVGhlIGNvbG9yIHRoZSBhbHRlcm5hdGluZyBncmlkIGNlbGxzIHdpbGwgYmUgZmlsbGVkIHdpdGgsIGkuZS4gMHhmZjAwMDAgZm9yIHJlZC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbEFscGhhPTFdIC0gVGhlIGFscGhhIHRoZSBhbHRlcm5hdGluZyBncmlkIGNlbGxzIHdpbGwgYmUgZmlsbGVkIHdpdGguIFlvdSBjYW4gYWxzbyBzZXQgdGhlIGFscGhhIG9mIHRoZSBvdmVyYWxsIFNoYXBlIHVzaW5nIGl0cyBgYWxwaGFgIHByb3BlcnR5LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldEFsdEZpbGxTdHlsZTogZnVuY3Rpb24gKGZpbGxDb2xvciwgZmlsbEFscGhhKVxyXG4gICAge1xyXG4gICAgICAgIGlmIChmaWxsQWxwaGEgPT09IHVuZGVmaW5lZCkgeyBmaWxsQWxwaGEgPSAxOyB9XHJcblxyXG4gICAgICAgIGlmIChmaWxsQ29sb3IgPT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsdENlbGxzID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuYWx0RmlsbENvbG9yID0gZmlsbENvbG9yO1xyXG4gICAgICAgICAgICB0aGlzLmFsdEZpbGxBbHBoYSA9IGZpbGxBbHBoYTtcclxuICAgICAgICAgICAgdGhpcy5zaG93QWx0Q2VsbHMgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgZmlsbCBjb2xvciBhbmQgYWxwaGEgbGV2ZWwgdGhhdCB0aGUgbGluZXMgYmV0d2VlbiBlYWNoIGdyaWQgY2VsbCB3aWxsIHVzZS5cclxuICAgICAqIFxyXG4gICAgICogSWYgdGhpcyBtZXRob2QgaXMgY2FsbGVkIHdpdGggbm8gdmFsdWVzIHRoZW4gdGhlIGdyaWQgbGluZXMgd2lsbCBub3QgYmUgcmVuZGVyZWQgYXQgYWxsLCBob3dldmVyXHJcbiAgICAgKiB0aGUgY2VsbHMgdGhlbXNlbHZlcyBtYXkgc3RpbGwgYmUgaWYgdGhleSBoYXZlIGNvbG9ycyBzZXQuXHJcbiAgICAgKiBcclxuICAgICAqIEFsc28gc2VlIHRoZSBgc2V0RmlsbFN0eWxlYCBhbmQgYHNldEFsdEZpbGxTdHlsZWAgbWV0aG9kcy5cclxuICAgICAqIFxyXG4gICAgICogVGhpcyBjYWxsIGNhbiBiZSBjaGFpbmVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyaWQjc2V0T3V0bGluZVN0eWxlXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbENvbG9yXSAtIFRoZSBjb2xvciB0aGUgbGluZXMgYmV0d2VlbiB0aGUgZ3JpZCBjZWxscyB3aWxsIGJlIGZpbGxlZCB3aXRoLCBpLmUuIDB4ZmYwMDAwIGZvciByZWQuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxBbHBoYT0xXSAtIFRoZSBhbHBoYSB0aGUgbGluZXMgYmV0d2VlbiB0aGUgZ3JpZCBjZWxscyB3aWxsIGJlIGZpbGxlZCB3aXRoLiBZb3UgY2FuIGFsc28gc2V0IHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmFsbCBTaGFwZSB1c2luZyBpdHMgYGFscGhhYCBwcm9wZXJ0eS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRPdXRsaW5lU3R5bGU6IGZ1bmN0aW9uIChmaWxsQ29sb3IsIGZpbGxBbHBoYSlcclxuICAgIHtcclxuICAgICAgICBpZiAoZmlsbEFscGhhID09PSB1bmRlZmluZWQpIHsgZmlsbEFscGhhID0gMTsgfVxyXG5cclxuICAgICAgICBpZiAoZmlsbENvbG9yID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dPdXRsaW5lID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMub3V0bGluZUZpbGxDb2xvciA9IGZpbGxDb2xvcjtcclxuICAgICAgICAgICAgdGhpcy5vdXRsaW5lRmlsbEFscGhhID0gZmlsbEFscGhhO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dPdXRsaW5lID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEdyaWQ7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEZpbGxTdHlsZUNhbnZhcyA9IHJlcXVpcmUoJy4uL0ZpbGxTdHlsZUNhbnZhcycpO1xyXG52YXIgTGluZVN0eWxlQ2FudmFzID0gcmVxdWlyZSgnLi4vTGluZVN0eWxlQ2FudmFzJyk7XHJcbnZhciBTZXRUcmFuc2Zvcm0gPSByZXF1aXJlKCcuLi8uLi8uLi9yZW5kZXJlci9jYW52YXMvdXRpbHMvU2V0VHJhbnNmb3JtJyk7XHJcblxyXG4vKipcclxuICogUmVuZGVycyB0aGlzIEdhbWUgT2JqZWN0IHdpdGggdGhlIENhbnZhcyBSZW5kZXJlciB0byB0aGUgZ2l2ZW4gQ2FtZXJhLlxyXG4gKiBUaGUgb2JqZWN0IHdpbGwgbm90IHJlbmRlciBpZiBhbnkgb2YgaXRzIHJlbmRlckZsYWdzIGFyZSBzZXQgb3IgaXQgaXMgYmVpbmcgYWN0aXZlbHkgZmlsdGVyZWQgb3V0IGJ5IHRoZSBDYW1lcmEuXHJcbiAqIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBJdCBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gb2YgdGhlIFJlbmRlciBtb2R1bGUuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyaWQjcmVuZGVyQ2FudmFzXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuQ2FudmFzLkNhbnZhc1JlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBDYW52YXMgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkdyaWR9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICovXHJcbnZhciBHcmlkQ2FudmFzUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB2YXIgY3R4ID0gcmVuZGVyZXIuY3VycmVudENvbnRleHQ7XHJcblxyXG4gICAgaWYgKFNldFRyYW5zZm9ybShyZW5kZXJlciwgY3R4LCBzcmMsIGNhbWVyYSwgcGFyZW50TWF0cml4KSlcclxuICAgIHtcclxuICAgICAgICB2YXIgZHggPSAtc3JjLl9kaXNwbGF5T3JpZ2luWDtcclxuICAgICAgICB2YXIgZHkgPSAtc3JjLl9kaXNwbGF5T3JpZ2luWTtcclxuXHJcbiAgICAgICAgdmFyIGFscGhhID0gY2FtZXJhLmFscGhhICogc3JjLmFscGhhO1xyXG5cclxuICAgICAgICAvLyAgV29yayBvdXQgdGhlIGdyaWQgc2l6ZVxyXG5cclxuICAgICAgICB2YXIgd2lkdGggPSBzcmMud2lkdGg7XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHNyYy5oZWlnaHQ7XHJcblxyXG4gICAgICAgIHZhciBjZWxsV2lkdGggPSBzcmMuY2VsbFdpZHRoO1xyXG4gICAgICAgIHZhciBjZWxsSGVpZ2h0ID0gc3JjLmNlbGxIZWlnaHQ7XHJcblxyXG4gICAgICAgIHZhciBncmlkV2lkdGggPSBNYXRoLmNlaWwod2lkdGggLyBjZWxsV2lkdGgpO1xyXG4gICAgICAgIHZhciBncmlkSGVpZ2h0ID0gTWF0aC5jZWlsKGhlaWdodCAvIGNlbGxIZWlnaHQpO1xyXG5cclxuICAgICAgICB2YXIgY2VsbFdpZHRoQSA9IGNlbGxXaWR0aDtcclxuICAgICAgICB2YXIgY2VsbEhlaWdodEEgPSBjZWxsSGVpZ2h0O1xyXG5cclxuICAgICAgICB2YXIgY2VsbFdpZHRoQiA9IGNlbGxXaWR0aCAtICgoZ3JpZFdpZHRoICogY2VsbFdpZHRoKSAtIHdpZHRoKTtcclxuICAgICAgICB2YXIgY2VsbEhlaWdodEIgPSBjZWxsSGVpZ2h0IC0gKChncmlkSGVpZ2h0ICogY2VsbEhlaWdodCkgLSBoZWlnaHQpO1xyXG5cclxuICAgICAgICB2YXIgc2hvd0NlbGxzID0gc3JjLnNob3dDZWxscztcclxuICAgICAgICB2YXIgc2hvd0FsdENlbGxzID0gc3JjLnNob3dBbHRDZWxscztcclxuICAgICAgICB2YXIgc2hvd091dGxpbmUgPSBzcmMuc2hvd091dGxpbmU7XHJcblxyXG4gICAgICAgIHZhciB4ID0gMDtcclxuICAgICAgICB2YXIgeSA9IDA7XHJcbiAgICAgICAgdmFyIHIgPSAwO1xyXG4gICAgICAgIHZhciBjdyA9IDA7XHJcbiAgICAgICAgdmFyIGNoID0gMDtcclxuXHJcbiAgICAgICAgaWYgKHNob3dPdXRsaW5lKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgLy8gIFRvIG1ha2Ugcm9vbSBmb3IgdGhlIGdyaWQgbGluZXMgKGluIGNhc2UgYWxwaGEgPCAxKVxyXG4gICAgICAgICAgICBjZWxsV2lkdGhBLS07XHJcbiAgICAgICAgICAgIGNlbGxIZWlnaHRBLS07XHJcblxyXG4gICAgICAgICAgICBpZiAoY2VsbFdpZHRoQiA9PT0gY2VsbFdpZHRoKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjZWxsV2lkdGhCLS07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChjZWxsSGVpZ2h0QiA9PT0gY2VsbEhlaWdodClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgY2VsbEhlaWdodEItLTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHNob3dDZWxscyAmJiBzcmMuZmlsbEFscGhhID4gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIEZpbGxTdHlsZUNhbnZhcyhjdHgsIHNyYyk7XHJcblxyXG4gICAgICAgICAgICBmb3IgKHkgPSAwOyB5IDwgZ3JpZEhlaWdodDsgeSsrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2hvd0FsdENlbGxzKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHIgPSB5ICUgMjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKHggPSAwOyB4IDwgZ3JpZFdpZHRoOyB4KyspXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNob3dBbHRDZWxscyAmJiByKVxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgciA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcisrO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjdyA9ICh4IDwgZ3JpZFdpZHRoIC0gMSkgPyBjZWxsV2lkdGhBIDogY2VsbFdpZHRoQjtcclxuICAgICAgICAgICAgICAgICAgICBjaCA9ICh5IDwgZ3JpZEhlaWdodCAtIDEpID8gY2VsbEhlaWdodEEgOiBjZWxsSGVpZ2h0QjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY3R4LmZpbGxSZWN0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkeCArIHggKiBjZWxsV2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR5ICsgeSAqIGNlbGxIZWlnaHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN3LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzaG93QWx0Q2VsbHMgJiYgc3JjLmFsdEZpbGxBbHBoYSA+IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBGaWxsU3R5bGVDYW52YXMoY3R4LCBzcmMsIHNyYy5hbHRGaWxsQ29sb3IsIHNyYy5hbHRGaWxsQWxwaGEgKiBhbHBoYSk7XHJcblxyXG4gICAgICAgICAgICBmb3IgKHkgPSAwOyB5IDwgZ3JpZEhlaWdodDsgeSsrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2hvd0FsdENlbGxzKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHIgPSB5ICUgMjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKHggPSAwOyB4IDwgZ3JpZFdpZHRoOyB4KyspXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNob3dBbHRDZWxscyAmJiAhcilcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHIgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHIgPSAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjdyA9ICh4IDwgZ3JpZFdpZHRoIC0gMSkgPyBjZWxsV2lkdGhBIDogY2VsbFdpZHRoQjtcclxuICAgICAgICAgICAgICAgICAgICBjaCA9ICh5IDwgZ3JpZEhlaWdodCAtIDEpID8gY2VsbEhlaWdodEEgOiBjZWxsSGVpZ2h0QjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY3R4LmZpbGxSZWN0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkeCArIHggKiBjZWxsV2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR5ICsgeSAqIGNlbGxIZWlnaHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN3LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzaG93T3V0bGluZSAmJiBzcmMub3V0bGluZUZpbGxBbHBoYSA+IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBMaW5lU3R5bGVDYW52YXMoY3R4LCBzcmMsIHNyYy5vdXRsaW5lRmlsbENvbG9yLCBzcmMub3V0bGluZUZpbGxBbHBoYSAqIGFscGhhKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoeCA9IDE7IHggPCBncmlkV2lkdGg7IHgrKylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFyIHgxID0geCAqIGNlbGxXaWR0aDtcclxuXHJcbiAgICAgICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgY3R4Lm1vdmVUbyh4MSArIGR4LCBkeSk7XHJcbiAgICAgICAgICAgICAgICBjdHgubGluZVRvKHgxICsgZHgsIGhlaWdodCArIGR5KTtcclxuXHJcbiAgICAgICAgICAgICAgICBjdHguc3Ryb2tlKCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGZvciAoeSA9IDE7IHkgPCBncmlkSGVpZ2h0OyB5KyspXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhciB5MSA9IHkgKiBjZWxsSGVpZ2h0O1xyXG5cclxuICAgICAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjdHgubW92ZVRvKGR4LCB5MSArIGR5KTtcclxuICAgICAgICAgICAgICAgIGN0eC5saW5lVG8oZHggKyB3aWR0aCwgeTEgKyBkeSk7XHJcblxyXG4gICAgICAgICAgICAgICAgY3R4LnN0cm9rZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgUmVzdG9yZSB0aGUgY29udGV4dCBzYXZlZCBpbiBTZXRUcmFuc2Zvcm1cclxuICAgICAgICBjdHgucmVzdG9yZSgpO1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBHcmlkQ2FudmFzUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEdhbWVPYmplY3RGYWN0b3J5ID0gcmVxdWlyZSgnLi4vLi4vR2FtZU9iamVjdEZhY3RvcnknKTtcclxudmFyIEdyaWQgPSByZXF1aXJlKCcuL0dyaWQnKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IEdyaWQgU2hhcGUgR2FtZSBPYmplY3QgYW5kIGFkZHMgaXQgdG8gdGhlIFNjZW5lLlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBHcmlkIEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKiBcclxuICogVGhlIEdyaWQgU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgb25seSBmaWxsIGNvbG9ycyBhbmQgY2Fubm90IGJlIHN0cm9rZWQuXHJcbiAqIFxyXG4gKiBBIEdyaWQgU2hhcGUgYWxsb3dzIHlvdSB0byBkaXNwbGF5IGEgZ3JpZCBpbiB5b3VyIGdhbWUsIHdoZXJlIHlvdSBjYW4gY29udHJvbCB0aGUgc2l6ZSBvZiB0aGVcclxuICogZ3JpZCBhcyB3ZWxsIGFzIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBncmlkIGNlbGxzLiBZb3UgY2FuIHNldCBhIGZpbGwgY29sb3IgZm9yIGVhY2ggZ3JpZFxyXG4gKiBjZWxsIGFzIHdlbGwgYXMgYW4gYWx0ZXJuYXRlIGZpbGwgY29sb3IuIFdoZW4gdGhlIGFsdGVybmF0ZSBmaWxsIGNvbG9yIGlzIHNldCB0aGVuIHRoZSBncmlkXHJcbiAqIGNlbGxzIHdpbGwgYWx0ZXJuYXRlIHRoZSBmaWxsIGNvbG9ycyBhcyB0aGV5IHJlbmRlciwgY3JlYXRpbmcgYSBjaGVzcy1ib2FyZCBlZmZlY3QuIFlvdSBjYW5cclxuICogYWxzbyBvcHRpb25hbGx5IGhhdmUgYW4gb3V0bGluZSBmaWxsIGNvbG9yLiBJZiBzZXQsIHRoaXMgZHJhd3MgbGluZXMgYmV0d2VlbiB0aGUgZ3JpZCBjZWxsc1xyXG4gKiBpbiB0aGUgZ2l2ZW4gY29sb3IuIElmIHlvdSBzcGVjaWZ5IGFuIG91dGxpbmUgY29sb3Igd2l0aCBhbiBhbHBoYSBvZiB6ZXJvLCB0aGVuIGl0IHdpbGwgZHJhd1xyXG4gKiB0aGUgY2VsbHMgc3BhY2VkIG91dCwgYnV0IHdpdGhvdXQgdGhlIGxpbmVzIGJldHdlZW4gdGhlbS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjZ3JpZFxyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeD0wXSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3k9MF0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2lkdGg9MTI4XSAtIFRoZSB3aWR0aCBvZiB0aGUgZ3JpZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtoZWlnaHQ9MTI4XSAtIFRoZSBoZWlnaHQgb2YgdGhlIGdyaWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbY2VsbFdpZHRoPTMyXSAtIFRoZSB3aWR0aCBvZiBvbmUgY2VsbCBpbiB0aGUgZ3JpZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtjZWxsSGVpZ2h0PTMyXSAtIFRoZSBoZWlnaHQgb2Ygb25lIGNlbGwgaW4gdGhlIGdyaWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbENvbG9yXSAtIFRoZSBjb2xvciB0aGUgZ3JpZCBjZWxscyB3aWxsIGJlIGZpbGxlZCB3aXRoLCBpLmUuIDB4ZmYwMDAwIGZvciByZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbEFscGhhXSAtIFRoZSBhbHBoYSB0aGUgZ3JpZCBjZWxscyB3aWxsIGJlIGZpbGxlZCB3aXRoLiBZb3UgY2FuIGFsc28gc2V0IHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmFsbCBTaGFwZSB1c2luZyBpdHMgYGFscGhhYCBwcm9wZXJ0eS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvdXRsaW5lRmlsbENvbG9yXSAtIFRoZSBjb2xvciBvZiB0aGUgbGluZXMgYmV0d2VlbiB0aGUgZ3JpZCBjZWxscy5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvdXRsaW5lRmlsbEFscGhhXSAtIFRoZSBhbHBoYSBvZiB0aGUgbGluZXMgYmV0d2VlbiB0aGUgZ3JpZCBjZWxscy5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLkdyaWR9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuR2FtZU9iamVjdEZhY3RvcnkucmVnaXN0ZXIoJ2dyaWQnLCBmdW5jdGlvbiAoeCwgeSwgd2lkdGgsIGhlaWdodCwgY2VsbFdpZHRoLCBjZWxsSGVpZ2h0LCBmaWxsQ29sb3IsIGZpbGxBbHBoYSwgb3V0bGluZUZpbGxDb2xvciwgb3V0bGluZUZpbGxBbHBoYSlcclxue1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUxpc3QuYWRkKG5ldyBHcmlkKHRoaXMuc2NlbmUsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGNlbGxXaWR0aCwgY2VsbEhlaWdodCwgZmlsbENvbG9yLCBmaWxsQWxwaGEsIG91dGxpbmVGaWxsQ29sb3IsIG91dGxpbmVGaWxsQWxwaGEpKTtcclxufSk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi4vLi4vLi4vdXRpbHMvTk9PUCcpO1xyXG52YXIgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi4vLi4vLi4vdXRpbHMvTk9PUCcpO1xyXG5cclxuaWYgKHR5cGVvZiBXRUJHTF9SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuL0dyaWRXZWJHTFJlbmRlcmVyJyk7XHJcbn1cclxuXHJcbmlmICh0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL0dyaWRDYW52YXNSZW5kZXJlcicpO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICByZW5kZXJXZWJHTDogcmVuZGVyV2ViR0wsXHJcbiAgICByZW5kZXJDYW52YXM6IHJlbmRlckNhbnZhc1xyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgVXRpbHMgPSByZXF1aXJlKCcuLi8uLi8uLi9yZW5kZXJlci93ZWJnbC9VdGlscycpO1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlcnMgdGhpcyBHYW1lIE9iamVjdCB3aXRoIHRoZSBXZWJHTCBSZW5kZXJlciB0byB0aGUgZ2l2ZW4gQ2FtZXJhLlxyXG4gKiBUaGUgb2JqZWN0IHdpbGwgbm90IHJlbmRlciBpZiBhbnkgb2YgaXRzIHJlbmRlckZsYWdzIGFyZSBzZXQgb3IgaXQgaXMgYmVpbmcgYWN0aXZlbHkgZmlsdGVyZWQgb3V0IGJ5IHRoZSBDYW1lcmEuXHJcbiAqIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBJdCBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gb2YgdGhlIFJlbmRlciBtb2R1bGUuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdyaWQjcmVuZGVyV2ViR0xcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBXZWJHTCByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuR3JpZH0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIEdyaWRXZWJHTFJlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgdmFyIHBpcGVsaW5lID0gdGhpcy5waXBlbGluZTtcclxuXHJcbiAgICB2YXIgY2FtTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgxO1xyXG4gICAgdmFyIHNoYXBlTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgyO1xyXG4gICAgdmFyIGNhbGNNYXRyaXggPSBwaXBlbGluZS5fdGVtcE1hdHJpeDM7XHJcblxyXG4gICAgcmVuZGVyZXIuc2V0UGlwZWxpbmUocGlwZWxpbmUpO1xyXG5cclxuICAgIHNoYXBlTWF0cml4LmFwcGx5SVRSUyhzcmMueCwgc3JjLnksIHNyYy5yb3RhdGlvbiwgc3JjLnNjYWxlWCwgc3JjLnNjYWxlWSk7XHJcblxyXG4gICAgY2FtTWF0cml4LmNvcHlGcm9tKGNhbWVyYS5tYXRyaXgpO1xyXG5cclxuICAgIGlmIChwYXJlbnRNYXRyaXgpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIE11bHRpcGx5IHRoZSBjYW1lcmEgYnkgdGhlIHBhcmVudCBtYXRyaXhcclxuICAgICAgICBjYW1NYXRyaXgubXVsdGlwbHlXaXRoT2Zmc2V0KHBhcmVudE1hdHJpeCwgLWNhbWVyYS5zY3JvbGxYICogc3JjLnNjcm9sbEZhY3RvclgsIC1jYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZKTtcclxuXHJcbiAgICAgICAgLy8gIFVuZG8gdGhlIGNhbWVyYSBzY3JvbGxcclxuICAgICAgICBzaGFwZU1hdHJpeC5lID0gc3JjLng7XHJcbiAgICAgICAgc2hhcGVNYXRyaXguZiA9IHNyYy55O1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAgIHNoYXBlTWF0cml4LmUgLT0gY2FtZXJhLnNjcm9sbFggKiBzcmMuc2Nyb2xsRmFjdG9yWDtcclxuICAgICAgICBzaGFwZU1hdHJpeC5mIC09IGNhbWVyYS5zY3JvbGxZICogc3JjLnNjcm9sbEZhY3Rvclk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FtTWF0cml4Lm11bHRpcGx5KHNoYXBlTWF0cml4LCBjYWxjTWF0cml4KTtcclxuXHJcbiAgICBjYWxjTWF0cml4LnRyYW5zbGF0ZSgtc3JjLl9kaXNwbGF5T3JpZ2luWCwgLXNyYy5fZGlzcGxheU9yaWdpblkpO1xyXG5cclxuICAgIHZhciBhbHBoYSA9IGNhbWVyYS5hbHBoYSAqIHNyYy5hbHBoYTtcclxuXHJcbiAgICAvLyAgV29yayBvdXQgdGhlIGdyaWQgc2l6ZVxyXG5cclxuICAgIHZhciB3aWR0aCA9IHNyYy53aWR0aDtcclxuICAgIHZhciBoZWlnaHQgPSBzcmMuaGVpZ2h0O1xyXG5cclxuICAgIHZhciBjZWxsV2lkdGggPSBzcmMuY2VsbFdpZHRoO1xyXG4gICAgdmFyIGNlbGxIZWlnaHQgPSBzcmMuY2VsbEhlaWdodDtcclxuXHJcbiAgICB2YXIgZ3JpZFdpZHRoID0gTWF0aC5jZWlsKHdpZHRoIC8gY2VsbFdpZHRoKTtcclxuICAgIHZhciBncmlkSGVpZ2h0ID0gTWF0aC5jZWlsKGhlaWdodCAvIGNlbGxIZWlnaHQpO1xyXG5cclxuICAgIHZhciBjZWxsV2lkdGhBID0gY2VsbFdpZHRoO1xyXG4gICAgdmFyIGNlbGxIZWlnaHRBID0gY2VsbEhlaWdodDtcclxuXHJcbiAgICB2YXIgY2VsbFdpZHRoQiA9IGNlbGxXaWR0aCAtICgoZ3JpZFdpZHRoICogY2VsbFdpZHRoKSAtIHdpZHRoKTtcclxuICAgIHZhciBjZWxsSGVpZ2h0QiA9IGNlbGxIZWlnaHQgLSAoKGdyaWRIZWlnaHQgKiBjZWxsSGVpZ2h0KSAtIGhlaWdodCk7XHJcblxyXG4gICAgdmFyIGZpbGxUaW50O1xyXG4gICAgdmFyIGZpbGxUaW50Q29sb3I7XHJcblxyXG4gICAgdmFyIHNob3dDZWxscyA9IHNyYy5zaG93Q2VsbHM7XHJcbiAgICB2YXIgc2hvd0FsdENlbGxzID0gc3JjLnNob3dBbHRDZWxscztcclxuICAgIHZhciBzaG93T3V0bGluZSA9IHNyYy5zaG93T3V0bGluZTtcclxuXHJcbiAgICB2YXIgeCA9IDA7XHJcbiAgICB2YXIgeSA9IDA7XHJcbiAgICB2YXIgciA9IDA7XHJcbiAgICB2YXIgY3cgPSAwO1xyXG4gICAgdmFyIGNoID0gMDtcclxuXHJcbiAgICBpZiAoc2hvd091dGxpbmUpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIFRvIG1ha2Ugcm9vbSBmb3IgdGhlIGdyaWQgbGluZXMgKGluIGNhc2UgYWxwaGEgPCAxKVxyXG4gICAgICAgIGNlbGxXaWR0aEEtLTtcclxuICAgICAgICBjZWxsSGVpZ2h0QS0tO1xyXG5cclxuICAgICAgICBpZiAoY2VsbFdpZHRoQiA9PT0gY2VsbFdpZHRoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY2VsbFdpZHRoQi0tO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNlbGxIZWlnaHRCID09PSBjZWxsSGVpZ2h0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgY2VsbEhlaWdodEItLTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNob3dDZWxscyAmJiBzcmMuZmlsbEFscGhhID4gMClcclxuICAgIHtcclxuICAgICAgICBmaWxsVGludCA9IHBpcGVsaW5lLmZpbGxUaW50O1xyXG4gICAgICAgIGZpbGxUaW50Q29sb3IgPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYUFuZFN3YXAoc3JjLmZpbGxDb2xvciwgc3JjLmZpbGxBbHBoYSAqIGFscGhhKTtcclxuICAgIFxyXG4gICAgICAgIGZpbGxUaW50LlRMID0gZmlsbFRpbnRDb2xvcjtcclxuICAgICAgICBmaWxsVGludC5UUiA9IGZpbGxUaW50Q29sb3I7XHJcbiAgICAgICAgZmlsbFRpbnQuQkwgPSBmaWxsVGludENvbG9yO1xyXG4gICAgICAgIGZpbGxUaW50LkJSID0gZmlsbFRpbnRDb2xvcjtcclxuXHJcbiAgICAgICAgZm9yICh5ID0gMDsgeSA8IGdyaWRIZWlnaHQ7IHkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGlmIChzaG93QWx0Q2VsbHMpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHIgPSB5ICUgMjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZm9yICh4ID0gMDsgeCA8IGdyaWRXaWR0aDsgeCsrKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZiAoc2hvd0FsdENlbGxzICYmIHIpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgciA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcisrO1xyXG5cclxuICAgICAgICAgICAgICAgIGN3ID0gKHggPCBncmlkV2lkdGggLSAxKSA/IGNlbGxXaWR0aEEgOiBjZWxsV2lkdGhCO1xyXG4gICAgICAgICAgICAgICAgY2ggPSAoeSA8IGdyaWRIZWlnaHQgLSAxKSA/IGNlbGxIZWlnaHRBIDogY2VsbEhlaWdodEI7XHJcblxyXG4gICAgICAgICAgICAgICAgcGlwZWxpbmUuc2V0VGV4dHVyZTJEKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgcGlwZWxpbmUuYmF0Y2hGaWxsUmVjdChcclxuICAgICAgICAgICAgICAgICAgICB4ICogY2VsbFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgIHkgKiBjZWxsSGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgICAgIGN3LFxyXG4gICAgICAgICAgICAgICAgICAgIGNoXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaG93QWx0Q2VsbHMgJiYgc3JjLmFsdEZpbGxBbHBoYSA+IDApXHJcbiAgICB7XHJcbiAgICAgICAgZmlsbFRpbnQgPSBwaXBlbGluZS5maWxsVGludDtcclxuICAgICAgICBmaWxsVGludENvbG9yID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGFBbmRTd2FwKHNyYy5hbHRGaWxsQ29sb3IsIHNyYy5hbHRGaWxsQWxwaGEgKiBhbHBoYSk7XHJcbiAgICBcclxuICAgICAgICBmaWxsVGludC5UTCA9IGZpbGxUaW50Q29sb3I7XHJcbiAgICAgICAgZmlsbFRpbnQuVFIgPSBmaWxsVGludENvbG9yO1xyXG4gICAgICAgIGZpbGxUaW50LkJMID0gZmlsbFRpbnRDb2xvcjtcclxuICAgICAgICBmaWxsVGludC5CUiA9IGZpbGxUaW50Q29sb3I7XHJcblxyXG4gICAgICAgIGZvciAoeSA9IDA7IHkgPCBncmlkSGVpZ2h0OyB5KyspXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBpZiAoc2hvd0FsdENlbGxzKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByID0geSAlIDI7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGZvciAoeCA9IDA7IHggPCBncmlkV2lkdGg7IHgrKylcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWYgKHNob3dBbHRDZWxscyAmJiAhcilcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICByID0gMTtcclxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByID0gMDtcclxuXHJcbiAgICAgICAgICAgICAgICBjdyA9ICh4IDwgZ3JpZFdpZHRoIC0gMSkgPyBjZWxsV2lkdGhBIDogY2VsbFdpZHRoQjtcclxuICAgICAgICAgICAgICAgIGNoID0gKHkgPCBncmlkSGVpZ2h0IC0gMSkgPyBjZWxsSGVpZ2h0QSA6IGNlbGxIZWlnaHRCO1xyXG5cclxuICAgICAgICAgICAgICAgIHBpcGVsaW5lLnNldFRleHR1cmUyRCgpO1xyXG5cclxuICAgICAgICAgICAgICAgIHBpcGVsaW5lLmJhdGNoRmlsbFJlY3QoXHJcbiAgICAgICAgICAgICAgICAgICAgeCAqIGNlbGxXaWR0aCxcclxuICAgICAgICAgICAgICAgICAgICB5ICogY2VsbEhlaWdodCxcclxuICAgICAgICAgICAgICAgICAgICBjdyxcclxuICAgICAgICAgICAgICAgICAgICBjaFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2hvd091dGxpbmUgJiYgc3JjLm91dGxpbmVGaWxsQWxwaGEgPiAwKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBzdHJva2VUaW50ID0gcGlwZWxpbmUuc3Ryb2tlVGludDtcclxuICAgICAgICB2YXIgY29sb3IgPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYUFuZFN3YXAoc3JjLm91dGxpbmVGaWxsQ29sb3IsIHNyYy5vdXRsaW5lRmlsbEFscGhhICogYWxwaGEpO1xyXG5cclxuICAgICAgICBzdHJva2VUaW50LlRMID0gY29sb3I7XHJcbiAgICAgICAgc3Ryb2tlVGludC5UUiA9IGNvbG9yO1xyXG4gICAgICAgIHN0cm9rZVRpbnQuQkwgPSBjb2xvcjtcclxuICAgICAgICBzdHJva2VUaW50LkJSID0gY29sb3I7XHJcblxyXG4gICAgICAgIGZvciAoeCA9IDE7IHggPCBncmlkV2lkdGg7IHgrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciB4MSA9IHggKiBjZWxsV2lkdGg7XHJcblxyXG4gICAgICAgICAgICBwaXBlbGluZS5zZXRUZXh0dXJlMkQoKTtcclxuXHJcbiAgICAgICAgICAgIHBpcGVsaW5lLmJhdGNoTGluZSh4MSwgMCwgeDEsIGhlaWdodCwgMSwgMSwgMSwgMCwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yICh5ID0gMTsgeSA8IGdyaWRIZWlnaHQ7IHkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciB5MSA9IHkgKiBjZWxsSGVpZ2h0O1xyXG5cclxuICAgICAgICAgICAgcGlwZWxpbmUuc2V0VGV4dHVyZTJEKCk7XHJcblxyXG4gICAgICAgICAgICBwaXBlbGluZS5iYXRjaExpbmUoMCwgeTEsIHdpZHRoLCB5MSwgMSwgMSwgMSwgMCwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gR3JpZFdlYkdMUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIElzb0JveFJlbmRlciA9IHJlcXVpcmUoJy4vSXNvQm94UmVuZGVyJyk7XHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBTaGFwZSA9IHJlcXVpcmUoJy4uL1NoYXBlJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBUaGUgSXNvQm94IFNoYXBlIGlzIGEgR2FtZSBPYmplY3QgdGhhdCBjYW4gYmUgYWRkZWQgdG8gYSBTY2VuZSwgR3JvdXAgb3IgQ29udGFpbmVyLiBZb3UgY2FuXHJcbiAqIHRyZWF0IGl0IGxpa2UgYW55IG90aGVyIEdhbWUgT2JqZWN0IGluIHlvdXIgZ2FtZSwgc3VjaCBhcyB0d2VlbmluZyBpdCwgc2NhbGluZyBpdCwgb3IgZW5hYmxpbmdcclxuICogaXQgZm9yIGlucHV0IG9yIHBoeXNpY3MuIEl0IHByb3ZpZGVzIGEgcXVpY2sgYW5kIGVhc3kgd2F5IGZvciB5b3UgdG8gcmVuZGVyIHRoaXMgc2hhcGUgaW4geW91clxyXG4gKiBnYW1lIHdpdGhvdXQgdXNpbmcgYSB0ZXh0dXJlLCB3aGlsZSBzdGlsbCB0YWtpbmcgYWR2YW50YWdlIG9mIGJlaW5nIGZ1bGx5IGJhdGNoZWQgaW4gV2ViR0wuXHJcbiAqIFxyXG4gKiBUaGlzIHNoYXBlIHN1cHBvcnRzIG9ubHkgZmlsbCBjb2xvcnMgYW5kIGNhbm5vdCBiZSBzdHJva2VkLlxyXG4gKiBcclxuICogQW4gSXNvQm94IGlzIGFuICdpc29tZXRyaWMnIHJlY3RhbmdsZS4gRWFjaCBmYWNlIG9mIGl0IGhhcyBhIGRpZmZlcmVudCBmaWxsIGNvbG9yLiBZb3UgY2FuIHNldFxyXG4gKiB0aGUgY29sb3Igb2YgdGhlIHRvcCwgbGVmdCBhbmQgcmlnaHQgZmFjZXMgb2YgdGhlIHJlY3RhbmdsZSByZXNwZWN0aXZlbHkuIFlvdSBjYW4gYWxzbyBjaG9vc2VcclxuICogd2hpY2ggb2YgdGhlIGZhY2VzIGFyZSByZW5kZXJlZCB2aWEgdGhlIGBzaG93VG9wYCwgYHNob3dMZWZ0YCBhbmQgYHNob3dSaWdodGAgcHJvcGVydGllcy5cclxuICogXHJcbiAqIFlvdSBjYW5ub3QgdmlldyBhbiBJc29Cb3ggZnJvbSB1bmRlci1uZWF0aCwgaG93ZXZlciB5b3UgY2FuIGNoYW5nZSB0aGUgJ2FuZ2xlJyBieSBzZXR0aW5nXHJcbiAqIHRoZSBgcHJvamVjdGlvbmAgcHJvcGVydHkuXHJcbiAqXHJcbiAqIEBjbGFzcyBJc29Cb3hcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gQSBHYW1lIE9iamVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIFNjZW5lIGF0IGEgdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzaXplPTQ4XSAtIFRoZSB3aWR0aCBvZiB0aGUgaXNvIGJveCBpbiBwaXhlbHMuIFRoZSBsZWZ0IGFuZCByaWdodCBmYWNlcyB3aWxsIGJlIGV4YWN0bHkgaGFsZiB0aGlzIHZhbHVlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2hlaWdodD0zMl0gLSBUaGUgaGVpZ2h0IG9mIHRoZSBpc28gYm94LiBUaGUgbGVmdCBhbmQgcmlnaHQgZmFjZXMgd2lsbCBiZSB0aGlzIHRhbGwuIFRoZSBvdmVyYWxsIGhlaWdodCBvZiB0aGUgaXNvYm94IHdpbGwgYmUgdGhpcyB2YWx1ZSBwbHVzIGhhbGYgdGhlIGBzaXplYCB2YWx1ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsVG9wPTB4ZWVlZWVlXSAtIFRoZSBmaWxsIGNvbG9yIG9mIHRoZSB0b3AgZmFjZSBvZiB0aGUgaXNvIGJveC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsTGVmdD0weDk5OTk5OV0gLSBUaGUgZmlsbCBjb2xvciBvZiB0aGUgbGVmdCBmYWNlIG9mIHRoZSBpc28gYm94LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxSaWdodD0weGNjY2NjY10gLSBUaGUgZmlsbCBjb2xvciBvZiB0aGUgcmlnaHQgZmFjZSBvZiB0aGUgaXNvIGJveC5cclxuICovXHJcbnZhciBJc29Cb3ggPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IFNoYXBlLFxyXG5cclxuICAgIE1peGluczogW1xyXG4gICAgICAgIElzb0JveFJlbmRlclxyXG4gICAgXSxcclxuXHJcbiAgICBpbml0aWFsaXplOlxyXG5cclxuICAgIGZ1bmN0aW9uIElzb0JveCAoc2NlbmUsIHgsIHksIHNpemUsIGhlaWdodCwgZmlsbFRvcCwgZmlsbExlZnQsIGZpbGxSaWdodClcclxuICAgIHtcclxuICAgICAgICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7IHggPSAwOyB9XHJcbiAgICAgICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgeyB5ID0gMDsgfVxyXG4gICAgICAgIGlmIChzaXplID09PSB1bmRlZmluZWQpIHsgc2l6ZSA9IDQ4OyB9XHJcbiAgICAgICAgaWYgKGhlaWdodCA9PT0gdW5kZWZpbmVkKSB7IGhlaWdodCA9IDMyOyB9XHJcbiAgICAgICAgaWYgKGZpbGxUb3AgPT09IHVuZGVmaW5lZCkgeyBmaWxsVG9wID0gMHhlZWVlZWU7IH1cclxuICAgICAgICBpZiAoZmlsbExlZnQgPT09IHVuZGVmaW5lZCkgeyBmaWxsTGVmdCA9IDB4OTk5OTk5OyB9XHJcbiAgICAgICAgaWYgKGZpbGxSaWdodCA9PT0gdW5kZWZpbmVkKSB7IGZpbGxSaWdodCA9IDB4Y2NjY2NjOyB9XHJcblxyXG4gICAgICAgIFNoYXBlLmNhbGwodGhpcywgc2NlbmUsICdJc29Cb3gnLCBudWxsKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIHByb2plY3Rpb24gbGV2ZWwgb2YgdGhlIGlzbyBib3guIENoYW5nZSB0aGlzIHRvIGNoYW5nZSB0aGUgJ2FuZ2xlJyBhdCB3aGljaCB5b3UgYXJlIGxvb2tpbmcgYXQgdGhlIGJveC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Jc29Cb3gjcHJvamVjdGlvblxyXG4gICAgICAgICAqIEB0eXBlIHtpbnRlZ2VyfVxyXG4gICAgICAgICAqIEBkZWZhdWx0IDRcclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5wcm9qZWN0aW9uID0gNDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGNvbG9yIHVzZWQgdG8gZmlsbCBpbiB0aGUgdG9wIG9mIHRoZSBpc28gYm94LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLklzb0JveCNmaWxsVG9wXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5maWxsVG9wID0gZmlsbFRvcDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGNvbG9yIHVzZWQgdG8gZmlsbCBpbiB0aGUgbGVmdC1mYWNpbmcgc2lkZSBvZiB0aGUgaXNvIGJveC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Jc29Cb3gjZmlsbExlZnRcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZpbGxMZWZ0ID0gZmlsbExlZnQ7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjb2xvciB1c2VkIHRvIGZpbGwgaW4gdGhlIHJpZ2h0LWZhY2luZyBzaWRlIG9mIHRoZSBpc28gYm94LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLklzb0JveCNmaWxsUmlnaHRcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZpbGxSaWdodCA9IGZpbGxSaWdodDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ29udHJvbHMgaWYgdGhlIHRvcC1mYWNlIG9mIHRoZSBpc28gYm94IGJlIHJlbmRlcmVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLklzb0JveCNzaG93VG9wXHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNob3dUb3AgPSB0cnVlO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBDb250cm9scyBpZiB0aGUgbGVmdC1mYWNlIG9mIHRoZSBpc28gYm94IGJlIHJlbmRlcmVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLklzb0JveCNzaG93TGVmdFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zaG93TGVmdCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIENvbnRyb2xzIGlmIHRoZSByaWdodC1mYWNlIG9mIHRoZSBpc28gYm94IGJlIHJlbmRlcmVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLklzb0JveCNzaG93UmlnaHRcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2hvd1JpZ2h0ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5pc0ZpbGxlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb24oeCwgeSk7XHJcbiAgICAgICAgdGhpcy5zZXRTaXplKHNpemUsIGhlaWdodCk7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheU9yaWdpbigpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHByb2plY3Rpb24gbGV2ZWwgb2YgdGhlIGlzbyBib3guIENoYW5nZSB0aGlzIHRvIGNoYW5nZSB0aGUgJ2FuZ2xlJyBhdCB3aGljaCB5b3UgYXJlIGxvb2tpbmcgYXQgdGhlIGJveC5cclxuICAgICAqIFRoaXMgY2FsbCBjYW4gYmUgY2hhaW5lZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Jc29Cb3gjc2V0UHJvamVjdGlvblxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2ludGVnZXJ9IHZhbHVlIC0gVGhlIHZhbHVlIHRvIHNldCB0aGUgcHJvamVjdGlvbiB0by5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRQcm9qZWN0aW9uOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5wcm9qZWN0aW9uID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgd2hpY2ggZmFjZXMgb2YgdGhlIGlzbyBib3ggd2lsbCBiZSByZW5kZXJlZC5cclxuICAgICAqIFRoaXMgY2FsbCBjYW4gYmUgY2hhaW5lZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Jc29Cb3gjc2V0RmFjZXNcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbc2hvd1RvcD10cnVlXSAtIFNob3cgdGhlIHRvcC1mYWNlIG9mIHRoZSBpc28gYm94LlxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbc2hvd0xlZnQ9dHJ1ZV0gLSBTaG93IHRoZSBsZWZ0LWZhY2Ugb2YgdGhlIGlzbyBib3guXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtzaG93UmlnaHQ9dHJ1ZV0gLSBTaG93IHRoZSByaWdodC1mYWNlIG9mIHRoZSBpc28gYm94LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldEZhY2VzOiBmdW5jdGlvbiAoc2hvd1RvcCwgc2hvd0xlZnQsIHNob3dSaWdodClcclxuICAgIHtcclxuICAgICAgICBpZiAoc2hvd1RvcCA9PT0gdW5kZWZpbmVkKSB7IHNob3dUb3AgPSB0cnVlOyB9XHJcbiAgICAgICAgaWYgKHNob3dMZWZ0ID09PSB1bmRlZmluZWQpIHsgc2hvd0xlZnQgPSB0cnVlOyB9XHJcbiAgICAgICAgaWYgKHNob3dSaWdodCA9PT0gdW5kZWZpbmVkKSB7IHNob3dSaWdodCA9IHRydWU7IH1cclxuXHJcbiAgICAgICAgdGhpcy5zaG93VG9wID0gc2hvd1RvcDtcclxuICAgICAgICB0aGlzLnNob3dMZWZ0ID0gc2hvd0xlZnQ7XHJcbiAgICAgICAgdGhpcy5zaG93UmlnaHQgPSBzaG93UmlnaHQ7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGZpbGwgY29sb3JzIGZvciBlYWNoIGZhY2Ugb2YgdGhlIGlzbyBib3guXHJcbiAgICAgKiBUaGlzIGNhbGwgY2FuIGJlIGNoYWluZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuSXNvQm94I3NldEZpbGxTdHlsZVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxUb3BdIC0gVGhlIGNvbG9yIHVzZWQgdG8gZmlsbCB0aGUgdG9wIG9mIHRoZSBpc28gYm94LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsTGVmdF0gLSBUaGUgY29sb3IgdXNlZCB0byBmaWxsIGluIHRoZSBsZWZ0LWZhY2luZyBzaWRlIG9mIHRoZSBpc28gYm94LlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsUmlnaHRdIC0gVGhlIGNvbG9yIHVzZWQgdG8gZmlsbCBpbiB0aGUgcmlnaHQtZmFjaW5nIHNpZGUgb2YgdGhlIGlzbyBib3guXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0RmlsbFN0eWxlOiBmdW5jdGlvbiAoZmlsbFRvcCwgZmlsbExlZnQsIGZpbGxSaWdodClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmZpbGxUb3AgPSBmaWxsVG9wO1xyXG4gICAgICAgIHRoaXMuZmlsbExlZnQgPSBmaWxsTGVmdDtcclxuICAgICAgICB0aGlzLmZpbGxSaWdodCA9IGZpbGxSaWdodDtcclxuXHJcbiAgICAgICAgdGhpcy5pc0ZpbGxlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IElzb0JveDtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgRmlsbFN0eWxlQ2FudmFzID0gcmVxdWlyZSgnLi4vRmlsbFN0eWxlQ2FudmFzJyk7XHJcbnZhciBTZXRUcmFuc2Zvcm0gPSByZXF1aXJlKCcuLi8uLi8uLi9yZW5kZXJlci9jYW52YXMvdXRpbHMvU2V0VHJhbnNmb3JtJyk7XHJcblxyXG4vKipcclxuICogUmVuZGVycyB0aGlzIEdhbWUgT2JqZWN0IHdpdGggdGhlIENhbnZhcyBSZW5kZXJlciB0byB0aGUgZ2l2ZW4gQ2FtZXJhLlxyXG4gKiBUaGUgb2JqZWN0IHdpbGwgbm90IHJlbmRlciBpZiBhbnkgb2YgaXRzIHJlbmRlckZsYWdzIGFyZSBzZXQgb3IgaXQgaXMgYmVpbmcgYWN0aXZlbHkgZmlsdGVyZWQgb3V0IGJ5IHRoZSBDYW1lcmEuXHJcbiAqIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBJdCBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gb2YgdGhlIFJlbmRlciBtb2R1bGUuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLklzb0JveCNyZW5kZXJDYW52YXNcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5DYW52YXMuQ2FudmFzUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIENhbnZhcyByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuSXNvQm94fSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgSXNvQm94Q2FudmFzUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB2YXIgY3R4ID0gcmVuZGVyZXIuY3VycmVudENvbnRleHQ7XHJcblxyXG4gICAgaWYgKFNldFRyYW5zZm9ybShyZW5kZXJlciwgY3R4LCBzcmMsIGNhbWVyYSwgcGFyZW50TWF0cml4KSAmJiBzcmMuaXNGaWxsZWQpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHNpemUgPSBzcmMud2lkdGg7XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHNyYy5oZWlnaHQ7XHJcbiAgICBcclxuICAgICAgICB2YXIgc2l6ZUEgPSBzaXplIC8gMjtcclxuICAgICAgICB2YXIgc2l6ZUIgPSBzaXplIC8gc3JjLnByb2plY3Rpb247XHJcblxyXG4gICAgICAgIC8vICBUb3AgRmFjZVxyXG5cclxuICAgICAgICBpZiAoc3JjLnNob3dUb3ApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBGaWxsU3R5bGVDYW52YXMoY3R4LCBzcmMsIHNyYy5maWxsVG9wKTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5tb3ZlVG8oLXNpemVBLCAtaGVpZ2h0KTtcclxuICAgICAgICAgICAgY3R4LmxpbmVUbygwLCAtc2l6ZUIgLSBoZWlnaHQpO1xyXG4gICAgICAgICAgICBjdHgubGluZVRvKHNpemVBLCAtaGVpZ2h0KTtcclxuICAgICAgICAgICAgY3R4LmxpbmVUbyhzaXplQSwgLTEpO1xyXG4gICAgICAgICAgICBjdHgubGluZVRvKDAsIHNpemVCIC0gMSk7XHJcbiAgICAgICAgICAgIGN0eC5saW5lVG8oLXNpemVBLCAtMSk7XHJcbiAgICAgICAgICAgIGN0eC5saW5lVG8oLXNpemVBLCAtaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5maWxsKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgTGVmdCBGYWNlXHJcblxyXG4gICAgICAgIGlmIChzcmMuc2hvd0xlZnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBGaWxsU3R5bGVDYW52YXMoY3R4LCBzcmMsIHNyYy5maWxsTGVmdCk7XHJcblxyXG4gICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7XHJcbiAgICBcclxuICAgICAgICAgICAgY3R4Lm1vdmVUbygtc2l6ZUEsIDApO1xyXG4gICAgICAgICAgICBjdHgubGluZVRvKDAsIHNpemVCKTtcclxuICAgICAgICAgICAgY3R4LmxpbmVUbygwLCBzaXplQiAtIGhlaWdodCk7XHJcbiAgICAgICAgICAgIGN0eC5saW5lVG8oLXNpemVBLCAtaGVpZ2h0KTtcclxuICAgICAgICAgICAgY3R4LmxpbmVUbygtc2l6ZUEsIDApO1xyXG5cclxuICAgICAgICAgICAgY3R4LmZpbGwoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBSaWdodCBGYWNlXHJcblxyXG4gICAgICAgIGlmIChzcmMuc2hvd1JpZ2h0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgRmlsbFN0eWxlQ2FudmFzKGN0eCwgc3JjLCBzcmMuZmlsbFJpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5tb3ZlVG8oc2l6ZUEsIDApO1xyXG4gICAgICAgICAgICBjdHgubGluZVRvKDAsIHNpemVCKTtcclxuICAgICAgICAgICAgY3R4LmxpbmVUbygwLCBzaXplQiAtIGhlaWdodCk7XHJcbiAgICAgICAgICAgIGN0eC5saW5lVG8oc2l6ZUEsIC1oZWlnaHQpO1xyXG4gICAgICAgICAgICBjdHgubGluZVRvKHNpemVBLCAwKTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5maWxsKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgUmVzdG9yZSB0aGUgY29udGV4dCBzYXZlZCBpbiBTZXRUcmFuc2Zvcm1cclxuICAgICAgICBjdHgucmVzdG9yZSgpO1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBJc29Cb3hDYW52YXNSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgR2FtZU9iamVjdEZhY3RvcnkgPSByZXF1aXJlKCcuLi8uLi9HYW1lT2JqZWN0RmFjdG9yeScpO1xyXG52YXIgSXNvQm94ID0gcmVxdWlyZSgnLi9Jc29Cb3gnKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IElzb0JveCBTaGFwZSBHYW1lIE9iamVjdCBhbmQgYWRkcyBpdCB0byB0aGUgU2NlbmUuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIElzb0JveCBHYW1lIE9iamVjdCBoYXMgYmVlbiBidWlsdCBpbnRvIFBoYXNlci5cclxuICogXHJcbiAqIFRoZSBJc29Cb3ggU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgb25seSBmaWxsIGNvbG9ycyBhbmQgY2Fubm90IGJlIHN0cm9rZWQuXHJcbiAqIFxyXG4gKiBBbiBJc29Cb3ggaXMgYW4gJ2lzb21ldHJpYycgcmVjdGFuZ2xlLiBFYWNoIGZhY2Ugb2YgaXQgaGFzIGEgZGlmZmVyZW50IGZpbGwgY29sb3IuIFlvdSBjYW4gc2V0XHJcbiAqIHRoZSBjb2xvciBvZiB0aGUgdG9wLCBsZWZ0IGFuZCByaWdodCBmYWNlcyBvZiB0aGUgcmVjdGFuZ2xlIHJlc3BlY3RpdmVseS4gWW91IGNhbiBhbHNvIGNob29zZVxyXG4gKiB3aGljaCBvZiB0aGUgZmFjZXMgYXJlIHJlbmRlcmVkIHZpYSB0aGUgYHNob3dUb3BgLCBgc2hvd0xlZnRgIGFuZCBgc2hvd1JpZ2h0YCBwcm9wZXJ0aWVzLlxyXG4gKiBcclxuICogWW91IGNhbm5vdCB2aWV3IGFuIElzb0JveCBmcm9tIHVuZGVyLW5lYXRoLCBob3dldmVyIHlvdSBjYW4gY2hhbmdlIHRoZSAnYW5nbGUnIGJ5IHNldHRpbmdcclxuICogdGhlIGBwcm9qZWN0aW9uYCBwcm9wZXJ0eS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjaXNvYm94XHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzaXplPTQ4XSAtIFRoZSB3aWR0aCBvZiB0aGUgaXNvIGJveCBpbiBwaXhlbHMuIFRoZSBsZWZ0IGFuZCByaWdodCBmYWNlcyB3aWxsIGJlIGV4YWN0bHkgaGFsZiB0aGlzIHZhbHVlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2hlaWdodD0zMl0gLSBUaGUgaGVpZ2h0IG9mIHRoZSBpc28gYm94LiBUaGUgbGVmdCBhbmQgcmlnaHQgZmFjZXMgd2lsbCBiZSB0aGlzIHRhbGwuIFRoZSBvdmVyYWxsIGhlaWdodCBvZiB0aGUgaXNvYm94IHdpbGwgYmUgdGhpcyB2YWx1ZSBwbHVzIGhhbGYgdGhlIGBzaXplYCB2YWx1ZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsVG9wPTB4ZWVlZWVlXSAtIFRoZSBmaWxsIGNvbG9yIG9mIHRoZSB0b3AgZmFjZSBvZiB0aGUgaXNvIGJveC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsTGVmdD0weDk5OTk5OV0gLSBUaGUgZmlsbCBjb2xvciBvZiB0aGUgbGVmdCBmYWNlIG9mIHRoZSBpc28gYm94LlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxSaWdodD0weGNjY2NjY10gLSBUaGUgZmlsbCBjb2xvciBvZiB0aGUgcmlnaHQgZmFjZSBvZiB0aGUgaXNvIGJveC5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLklzb0JveH0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0RmFjdG9yeS5yZWdpc3RlcignaXNvYm94JywgZnVuY3Rpb24gKHgsIHksIHNpemUsIGhlaWdodCwgZmlsbFRvcCwgZmlsbExlZnQsIGZpbGxSaWdodClcclxue1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUxpc3QuYWRkKG5ldyBJc29Cb3godGhpcy5zY2VuZSwgeCwgeSwgc2l6ZSwgaGVpZ2h0LCBmaWxsVG9wLCBmaWxsTGVmdCwgZmlsbFJpZ2h0KSk7XHJcbn0pO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL05PT1AnKTtcclxudmFyIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL05PT1AnKTtcclxuXHJcbmlmICh0eXBlb2YgV0VCR0xfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi9Jc29Cb3hXZWJHTFJlbmRlcmVyJyk7XHJcbn1cclxuXHJcbmlmICh0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL0lzb0JveENhbnZhc1JlbmRlcmVyJyk7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIHJlbmRlcldlYkdMOiByZW5kZXJXZWJHTCxcclxuICAgIHJlbmRlckNhbnZhczogcmVuZGVyQ2FudmFzXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBVdGlscyA9IHJlcXVpcmUoJy4uLy4uLy4uL3JlbmRlcmVyL3dlYmdsL1V0aWxzJyk7XHJcblxyXG4vKipcclxuICogUmVuZGVycyB0aGlzIEdhbWUgT2JqZWN0IHdpdGggdGhlIFdlYkdMIFJlbmRlcmVyIHRvIHRoZSBnaXZlbiBDYW1lcmEuXHJcbiAqIFRoZSBvYmplY3Qgd2lsbCBub3QgcmVuZGVyIGlmIGFueSBvZiBpdHMgcmVuZGVyRmxhZ3MgYXJlIHNldCBvciBpdCBpcyBiZWluZyBhY3RpdmVseSBmaWx0ZXJlZCBvdXQgYnkgdGhlIENhbWVyYS5cclxuICogVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuIEl0IGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBvZiB0aGUgUmVuZGVyIG1vZHVsZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuSXNvQm94I3JlbmRlcldlYkdMXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xSZW5kZXJlcn0gcmVuZGVyZXIgLSBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBhY3RpdmUgV2ViR0wgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLklzb0JveH0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIElzb0JveFdlYkdMUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB2YXIgcGlwZWxpbmUgPSB0aGlzLnBpcGVsaW5lO1xyXG5cclxuICAgIHZhciBjYW1NYXRyaXggPSBwaXBlbGluZS5fdGVtcE1hdHJpeDE7XHJcbiAgICB2YXIgc2hhcGVNYXRyaXggPSBwaXBlbGluZS5fdGVtcE1hdHJpeDI7XHJcbiAgICB2YXIgY2FsY01hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MztcclxuXHJcbiAgICByZW5kZXJlci5zZXRQaXBlbGluZShwaXBlbGluZSk7XHJcblxyXG4gICAgc2hhcGVNYXRyaXguYXBwbHlJVFJTKHNyYy54LCBzcmMueSwgc3JjLnJvdGF0aW9uLCBzcmMuc2NhbGVYLCBzcmMuc2NhbGVZKTtcclxuXHJcbiAgICBjYW1NYXRyaXguY29weUZyb20oY2FtZXJhLm1hdHJpeCk7XHJcblxyXG4gICAgaWYgKHBhcmVudE1hdHJpeClcclxuICAgIHtcclxuICAgICAgICAvLyAgTXVsdGlwbHkgdGhlIGNhbWVyYSBieSB0aGUgcGFyZW50IG1hdHJpeFxyXG4gICAgICAgIGNhbU1hdHJpeC5tdWx0aXBseVdpdGhPZmZzZXQocGFyZW50TWF0cml4LCAtY2FtZXJhLnNjcm9sbFggKiBzcmMuc2Nyb2xsRmFjdG9yWCwgLWNhbWVyYS5zY3JvbGxZICogc3JjLnNjcm9sbEZhY3RvclkpO1xyXG5cclxuICAgICAgICAvLyAgVW5kbyB0aGUgY2FtZXJhIHNjcm9sbFxyXG4gICAgICAgIHNoYXBlTWF0cml4LmUgPSBzcmMueDtcclxuICAgICAgICBzaGFwZU1hdHJpeC5mID0gc3JjLnk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgc2hhcGVNYXRyaXguZSAtPSBjYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYO1xyXG4gICAgICAgIHNoYXBlTWF0cml4LmYgLT0gY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWTtcclxuICAgIH1cclxuXHJcbiAgICBjYW1NYXRyaXgubXVsdGlwbHkoc2hhcGVNYXRyaXgsIGNhbGNNYXRyaXgpO1xyXG5cclxuICAgIHZhciBzaXplID0gc3JjLndpZHRoO1xyXG4gICAgdmFyIGhlaWdodCA9IHNyYy5oZWlnaHQ7XHJcblxyXG4gICAgdmFyIHNpemVBID0gc2l6ZSAvIDI7XHJcbiAgICB2YXIgc2l6ZUIgPSBzaXplIC8gc3JjLnByb2plY3Rpb247XHJcblxyXG4gICAgdmFyIGFscGhhID0gY2FtZXJhLmFscGhhICogc3JjLmFscGhhO1xyXG5cclxuICAgIGlmICghc3JjLmlzRmlsbGVkKVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgdGludDtcclxuXHJcbiAgICB2YXIgeDA7XHJcbiAgICB2YXIgeTA7XHJcblxyXG4gICAgdmFyIHgxO1xyXG4gICAgdmFyIHkxO1xyXG5cclxuICAgIHZhciB4MjtcclxuICAgIHZhciB5MjtcclxuXHJcbiAgICB2YXIgeDM7XHJcbiAgICB2YXIgeTM7XHJcblxyXG4gICAgLy8gIFRvcCBGYWNlXHJcblxyXG4gICAgaWYgKHNyYy5zaG93VG9wKVxyXG4gICAge1xyXG4gICAgICAgIHRpbnQgPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYUFuZFN3YXAoc3JjLmZpbGxUb3AsIGFscGhhKTtcclxuXHJcbiAgICAgICAgeDAgPSBjYWxjTWF0cml4LmdldFgoLXNpemVBLCAtaGVpZ2h0KTtcclxuICAgICAgICB5MCA9IGNhbGNNYXRyaXguZ2V0WSgtc2l6ZUEsIC1oZWlnaHQpO1xyXG4gICAgXHJcbiAgICAgICAgeDEgPSBjYWxjTWF0cml4LmdldFgoMCwgLXNpemVCIC0gaGVpZ2h0KTtcclxuICAgICAgICB5MSA9IGNhbGNNYXRyaXguZ2V0WSgwLCAtc2l6ZUIgLSBoZWlnaHQpO1xyXG4gICAgXHJcbiAgICAgICAgeDIgPSBjYWxjTWF0cml4LmdldFgoc2l6ZUEsIC1oZWlnaHQpO1xyXG4gICAgICAgIHkyID0gY2FsY01hdHJpeC5nZXRZKHNpemVBLCAtaGVpZ2h0KTtcclxuICAgIFxyXG4gICAgICAgIHgzID0gY2FsY01hdHJpeC5nZXRYKDAsIHNpemVCIC0gaGVpZ2h0KTtcclxuICAgICAgICB5MyA9IGNhbGNNYXRyaXguZ2V0WSgwLCBzaXplQiAtIGhlaWdodCk7XHJcblxyXG4gICAgICAgIHBpcGVsaW5lLnNldFRleHR1cmUyRCgpO1xyXG4gICAgXHJcbiAgICAgICAgcGlwZWxpbmUuYmF0Y2hRdWFkKHgwLCB5MCwgeDEsIHkxLCB4MiwgeTIsIHgzLCB5MywgMCwgMCwgMSwgMSwgdGludCwgdGludCwgdGludCwgdGludCwgMik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIExlZnQgRmFjZVxyXG5cclxuICAgIGlmIChzcmMuc2hvd0xlZnQpXHJcbiAgICB7XHJcbiAgICAgICAgdGludCA9IFV0aWxzLmdldFRpbnRBcHBlbmRGbG9hdEFscGhhQW5kU3dhcChzcmMuZmlsbExlZnQsIGFscGhhKTtcclxuXHJcbiAgICAgICAgeDAgPSBjYWxjTWF0cml4LmdldFgoLXNpemVBLCAwKTtcclxuICAgICAgICB5MCA9IGNhbGNNYXRyaXguZ2V0WSgtc2l6ZUEsIDApO1xyXG4gICAgXHJcbiAgICAgICAgeDEgPSBjYWxjTWF0cml4LmdldFgoMCwgc2l6ZUIpO1xyXG4gICAgICAgIHkxID0gY2FsY01hdHJpeC5nZXRZKDAsIHNpemVCKTtcclxuICAgIFxyXG4gICAgICAgIHgyID0gY2FsY01hdHJpeC5nZXRYKDAsIHNpemVCIC0gaGVpZ2h0KTtcclxuICAgICAgICB5MiA9IGNhbGNNYXRyaXguZ2V0WSgwLCBzaXplQiAtIGhlaWdodCk7XHJcbiAgICBcclxuICAgICAgICB4MyA9IGNhbGNNYXRyaXguZ2V0WCgtc2l6ZUEsIC1oZWlnaHQpO1xyXG4gICAgICAgIHkzID0gY2FsY01hdHJpeC5nZXRZKC1zaXplQSwgLWhlaWdodCk7XHJcblxyXG4gICAgICAgIHBpcGVsaW5lLnNldFRleHR1cmUyRCgpO1xyXG4gICAgXHJcbiAgICAgICAgcGlwZWxpbmUuYmF0Y2hRdWFkKHgwLCB5MCwgeDEsIHkxLCB4MiwgeTIsIHgzLCB5MywgMCwgMCwgMSwgMSwgdGludCwgdGludCwgdGludCwgdGludCwgMik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIFJpZ2h0IEZhY2VcclxuXHJcbiAgICBpZiAoc3JjLnNob3dSaWdodClcclxuICAgIHtcclxuICAgICAgICB0aW50ID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGFBbmRTd2FwKHNyYy5maWxsUmlnaHQsIGFscGhhKTtcclxuXHJcbiAgICAgICAgeDAgPSBjYWxjTWF0cml4LmdldFgoc2l6ZUEsIDApO1xyXG4gICAgICAgIHkwID0gY2FsY01hdHJpeC5nZXRZKHNpemVBLCAwKTtcclxuICAgIFxyXG4gICAgICAgIHgxID0gY2FsY01hdHJpeC5nZXRYKDAsIHNpemVCKTtcclxuICAgICAgICB5MSA9IGNhbGNNYXRyaXguZ2V0WSgwLCBzaXplQik7XHJcbiAgICBcclxuICAgICAgICB4MiA9IGNhbGNNYXRyaXguZ2V0WCgwLCBzaXplQiAtIGhlaWdodCk7XHJcbiAgICAgICAgeTIgPSBjYWxjTWF0cml4LmdldFkoMCwgc2l6ZUIgLSBoZWlnaHQpO1xyXG4gICAgXHJcbiAgICAgICAgeDMgPSBjYWxjTWF0cml4LmdldFgoc2l6ZUEsIC1oZWlnaHQpO1xyXG4gICAgICAgIHkzID0gY2FsY01hdHJpeC5nZXRZKHNpemVBLCAtaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgcGlwZWxpbmUuc2V0VGV4dHVyZTJEKCk7XHJcbiAgICBcclxuICAgICAgICBwaXBlbGluZS5iYXRjaFF1YWQoeDAsIHkwLCB4MSwgeTEsIHgyLCB5MiwgeDMsIHkzLCAwLCAwLCAxLCAxLCB0aW50LCB0aW50LCB0aW50LCB0aW50LCAyKTtcclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gSXNvQm94V2ViR0xSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgSXNvVHJpYW5nbGVSZW5kZXIgPSByZXF1aXJlKCcuL0lzb1RyaWFuZ2xlUmVuZGVyJyk7XHJcbnZhciBTaGFwZSA9IHJlcXVpcmUoJy4uL1NoYXBlJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBUaGUgSXNvVHJpYW5nbGUgU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgb25seSBmaWxsIGNvbG9ycyBhbmQgY2Fubm90IGJlIHN0cm9rZWQuXHJcbiAqIFxyXG4gKiBBbiBJc29UcmlhbmdsZSBpcyBhbiAnaXNvbWV0cmljJyB0cmlhbmdsZS4gVGhpbmsgb2YgaXQgbGlrZSBhIHB5cmFtaWQuIEVhY2ggZmFjZSBoYXMgYSBkaWZmZXJlbnRcclxuICogZmlsbCBjb2xvci4gWW91IGNhbiBzZXQgdGhlIGNvbG9yIG9mIHRoZSB0b3AsIGxlZnQgYW5kIHJpZ2h0IGZhY2VzIG9mIHRoZSB0cmlhbmdsZSByZXNwZWN0aXZlbHlcclxuICogWW91IGNhbiBhbHNvIGNob29zZSB3aGljaCBvZiB0aGUgZmFjZXMgYXJlIHJlbmRlcmVkIHZpYSB0aGUgYHNob3dUb3BgLCBgc2hvd0xlZnRgIGFuZCBgc2hvd1JpZ2h0YCBwcm9wZXJ0aWVzLlxyXG4gKiBcclxuICogWW91IGNhbm5vdCB2aWV3IGFuIElzb1RyaWFuZ2xlIGZyb20gdW5kZXItbmVhdGgsIGhvd2V2ZXIgeW91IGNhbiBjaGFuZ2UgdGhlICdhbmdsZScgYnkgc2V0dGluZ1xyXG4gKiB0aGUgYHByb2plY3Rpb25gIHByb3BlcnR5LiBUaGUgYHJldmVyc2VkYCBwcm9wZXJ0eSBjb250cm9scyBpZiB0aGUgSXNvVHJpYW5nbGUgaXMgcmVuZGVyZWQgdXBzaWRlXHJcbiAqIGRvd24gb3Igbm90LlxyXG4gKlxyXG4gKiBAY2xhc3MgSXNvVHJpYW5nbGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gQSBHYW1lIE9iamVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIFNjZW5lIGF0IGEgdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzaXplPTQ4XSAtIFRoZSB3aWR0aCBvZiB0aGUgaXNvIHRyaWFuZ2xlIGluIHBpeGVscy4gVGhlIGxlZnQgYW5kIHJpZ2h0IGZhY2VzIHdpbGwgYmUgZXhhY3RseSBoYWxmIHRoaXMgdmFsdWUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbaGVpZ2h0PTMyXSAtIFRoZSBoZWlnaHQgb2YgdGhlIGlzbyB0cmlhbmdsZS4gVGhlIGxlZnQgYW5kIHJpZ2h0IGZhY2VzIHdpbGwgYmUgdGhpcyB0YWxsLiBUaGUgb3ZlcmFsbCBoZWlnaHQgb2YgdGhlIGlzbyB0cmlhbmdsZSB3aWxsIGJlIHRoaXMgdmFsdWUgcGx1cyBoYWxmIHRoZSBgc2l6ZWAgdmFsdWUuXHJcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JldmVyc2VkPWZhbHNlXSAtIElzIHRoZSBpc28gdHJpYW5nbGUgdXBzaWRlIGRvd24/XHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbFRvcD0weGVlZWVlZV0gLSBUaGUgZmlsbCBjb2xvciBvZiB0aGUgdG9wIGZhY2Ugb2YgdGhlIGlzbyB0cmlhbmdsZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsTGVmdD0weDk5OTk5OV0gLSBUaGUgZmlsbCBjb2xvciBvZiB0aGUgbGVmdCBmYWNlIG9mIHRoZSBpc28gdHJpYW5nbGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbFJpZ2h0PTB4Y2NjY2NjXSAtIFRoZSBmaWxsIGNvbG9yIG9mIHRoZSByaWdodCBmYWNlIG9mIHRoZSBpc28gdHJpYW5nbGUuXHJcbiAqL1xyXG52YXIgSXNvVHJpYW5nbGUgPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IFNoYXBlLFxyXG5cclxuICAgIE1peGluczogW1xyXG4gICAgICAgIElzb1RyaWFuZ2xlUmVuZGVyXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gSXNvVHJpYW5nbGUgKHNjZW5lLCB4LCB5LCBzaXplLCBoZWlnaHQsIHJldmVyc2VkLCBmaWxsVG9wLCBmaWxsTGVmdCwgZmlsbFJpZ2h0KVxyXG4gICAge1xyXG4gICAgICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHsgeCA9IDA7IH1cclxuICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSAwOyB9XHJcbiAgICAgICAgaWYgKHNpemUgPT09IHVuZGVmaW5lZCkgeyBzaXplID0gNDg7IH1cclxuICAgICAgICBpZiAoaGVpZ2h0ID09PSB1bmRlZmluZWQpIHsgaGVpZ2h0ID0gMzI7IH1cclxuICAgICAgICBpZiAocmV2ZXJzZWQgPT09IHVuZGVmaW5lZCkgeyByZXZlcnNlZCA9IGZhbHNlOyB9XHJcbiAgICAgICAgaWYgKGZpbGxUb3AgPT09IHVuZGVmaW5lZCkgeyBmaWxsVG9wID0gMHhlZWVlZWU7IH1cclxuICAgICAgICBpZiAoZmlsbExlZnQgPT09IHVuZGVmaW5lZCkgeyBmaWxsTGVmdCA9IDB4OTk5OTk5OyB9XHJcbiAgICAgICAgaWYgKGZpbGxSaWdodCA9PT0gdW5kZWZpbmVkKSB7IGZpbGxSaWdodCA9IDB4Y2NjY2NjOyB9XHJcblxyXG4gICAgICAgIFNoYXBlLmNhbGwodGhpcywgc2NlbmUsICdJc29UcmlhbmdsZScsIG51bGwpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUaGUgcHJvamVjdGlvbiBsZXZlbCBvZiB0aGUgaXNvIGJveC4gQ2hhbmdlIHRoaXMgdG8gY2hhbmdlIHRoZSAnYW5nbGUnIGF0IHdoaWNoIHlvdSBhcmUgbG9va2luZyBhdCB0aGUgYm94LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLklzb1RyaWFuZ2xlI3Byb2plY3Rpb25cclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAZGVmYXVsdCA0XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMucHJvamVjdGlvbiA9IDQ7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjb2xvciB1c2VkIHRvIGZpbGwgaW4gdGhlIHRvcCBvZiB0aGUgaXNvIHRyaWFuZ2xlLiBUaGlzIGlzIG9ubHkgdXNlZCBpZiB0aGUgdHJpYW5nbGUgaXMgcmV2ZXJzZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuSXNvVHJpYW5nbGUjZmlsbFRvcFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZmlsbFRvcCA9IGZpbGxUb3A7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSBjb2xvciB1c2VkIHRvIGZpbGwgaW4gdGhlIGxlZnQtZmFjaW5nIHNpZGUgb2YgdGhlIGlzbyB0cmlhbmdsZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Jc29UcmlhbmdsZSNmaWxsTGVmdFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuZmlsbExlZnQgPSBmaWxsTGVmdDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVGhlIGNvbG9yIHVzZWQgdG8gZmlsbCBpbiB0aGUgcmlnaHQtZmFjaW5nIHNpZGUgb2YgdGhlIGlzbyB0cmlhbmdsZS5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Jc29UcmlhbmdsZSNmaWxsUmlnaHRcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmZpbGxSaWdodCA9IGZpbGxSaWdodDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ29udHJvbHMgaWYgdGhlIHRvcC1mYWNlIG9mIHRoZSBpc28gdHJpYW5nbGUgYmUgcmVuZGVyZWQuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBAbmFtZSBQaGFzZXIuR2FtZU9iamVjdHMuSXNvVHJpYW5nbGUjc2hvd1RvcFxyXG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5zaG93VG9wID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ29udHJvbHMgaWYgdGhlIGxlZnQtZmFjZSBvZiB0aGUgaXNvIHRyaWFuZ2xlIGJlIHJlbmRlcmVkLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLklzb1RyaWFuZ2xlI3Nob3dMZWZ0XHJcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnNob3dMZWZ0ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ29udHJvbHMgaWYgdGhlIHJpZ2h0LWZhY2Ugb2YgdGhlIGlzbyB0cmlhbmdsZSBiZSByZW5kZXJlZC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5Jc29UcmlhbmdsZSNzaG93UmlnaHRcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuc2hvd1JpZ2h0ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogU2V0cyBpZiB0aGUgaXNvIHRyaWFuZ2xlIHdpbGwgYmUgcmVuZGVyZWQgdXBzaWRlIGRvd24gb3Igbm90LlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLklzb1RyaWFuZ2xlI2lzUmV2ZXJzZWRcclxuICAgICAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmlzUmV2ZXJzZWQgPSByZXZlcnNlZDtcclxuXHJcbiAgICAgICAgdGhpcy5pc0ZpbGxlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb24oeCwgeSk7XHJcbiAgICAgICAgdGhpcy5zZXRTaXplKHNpemUsIGhlaWdodCk7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheU9yaWdpbigpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHByb2plY3Rpb24gbGV2ZWwgb2YgdGhlIGlzbyB0cmlhbmdsZS4gQ2hhbmdlIHRoaXMgdG8gY2hhbmdlIHRoZSAnYW5nbGUnIGF0IHdoaWNoIHlvdSBhcmUgbG9va2luZyBhdCB0aGUgcHlyYW1pZC5cclxuICAgICAqIFRoaXMgY2FsbCBjYW4gYmUgY2hhaW5lZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Jc29UcmlhbmdsZSNzZXRQcm9qZWN0aW9uXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0IHRoZSBwcm9qZWN0aW9uIHRvLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldFByb2plY3Rpb246IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLnByb2plY3Rpb24gPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBpZiB0aGUgaXNvIHRyaWFuZ2xlIHdpbGwgYmUgcmVuZGVyZWQgdXBzaWRlIGRvd24gb3Igbm90LlxyXG4gICAgICogVGhpcyBjYWxsIGNhbiBiZSBjaGFpbmVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLklzb1RyaWFuZ2xlI3NldFJldmVyc2VkXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmV2ZXJzZWQgLSBTZXRzIGlmIHRoZSBpc28gdHJpYW5nbGUgd2lsbCBiZSByZW5kZXJlZCB1cHNpZGUgZG93biBvciBub3QuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0UmV2ZXJzZWQ6IGZ1bmN0aW9uIChyZXZlcnNlZClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmlzUmV2ZXJzZWQgPSByZXZlcnNlZDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB3aGljaCBmYWNlcyBvZiB0aGUgaXNvIHRyaWFuZ2xlIHdpbGwgYmUgcmVuZGVyZWQuXHJcbiAgICAgKiBUaGlzIGNhbGwgY2FuIGJlIGNoYWluZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuSXNvVHJpYW5nbGUjc2V0RmFjZXNcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbc2hvd1RvcD10cnVlXSAtIFNob3cgdGhlIHRvcC1mYWNlIG9mIHRoZSBpc28gdHJpYW5nbGUgKG9ubHkgaWYgYHJldmVyc2VkYCBpcyB0cnVlKVxyXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbc2hvd0xlZnQ9dHJ1ZV0gLSBTaG93IHRoZSBsZWZ0LWZhY2Ugb2YgdGhlIGlzbyB0cmlhbmdsZS5cclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW3Nob3dSaWdodD10cnVlXSAtIFNob3cgdGhlIHJpZ2h0LWZhY2Ugb2YgdGhlIGlzbyB0cmlhbmdsZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRGYWNlczogZnVuY3Rpb24gKHNob3dUb3AsIHNob3dMZWZ0LCBzaG93UmlnaHQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHNob3dUb3AgPT09IHVuZGVmaW5lZCkgeyBzaG93VG9wID0gdHJ1ZTsgfVxyXG4gICAgICAgIGlmIChzaG93TGVmdCA9PT0gdW5kZWZpbmVkKSB7IHNob3dMZWZ0ID0gdHJ1ZTsgfVxyXG4gICAgICAgIGlmIChzaG93UmlnaHQgPT09IHVuZGVmaW5lZCkgeyBzaG93UmlnaHQgPSB0cnVlOyB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1RvcCA9IHNob3dUb3A7XHJcbiAgICAgICAgdGhpcy5zaG93TGVmdCA9IHNob3dMZWZ0O1xyXG4gICAgICAgIHRoaXMuc2hvd1JpZ2h0ID0gc2hvd1JpZ2h0O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBmaWxsIGNvbG9ycyBmb3IgZWFjaCBmYWNlIG9mIHRoZSBpc28gdHJpYW5nbGUuXHJcbiAgICAgKiBUaGlzIGNhbGwgY2FuIGJlIGNoYWluZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuSXNvVHJpYW5nbGUjc2V0RmlsbFN0eWxlXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbFRvcF0gLSBUaGUgY29sb3IgdXNlZCB0byBmaWxsIHRoZSB0b3Agb2YgdGhlIGlzbyB0cmlhbmdsZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbExlZnRdIC0gVGhlIGNvbG9yIHVzZWQgdG8gZmlsbCBpbiB0aGUgbGVmdC1mYWNpbmcgc2lkZSBvZiB0aGUgaXNvIHRyaWFuZ2xlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsUmlnaHRdIC0gVGhlIGNvbG9yIHVzZWQgdG8gZmlsbCBpbiB0aGUgcmlnaHQtZmFjaW5nIHNpZGUgb2YgdGhlIGlzbyB0cmlhbmdsZS5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRGaWxsU3R5bGU6IGZ1bmN0aW9uIChmaWxsVG9wLCBmaWxsTGVmdCwgZmlsbFJpZ2h0KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZmlsbFRvcCA9IGZpbGxUb3A7XHJcbiAgICAgICAgdGhpcy5maWxsTGVmdCA9IGZpbGxMZWZ0O1xyXG4gICAgICAgIHRoaXMuZmlsbFJpZ2h0ID0gZmlsbFJpZ2h0O1xyXG5cclxuICAgICAgICB0aGlzLmlzRmlsbGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gSXNvVHJpYW5nbGU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEZpbGxTdHlsZUNhbnZhcyA9IHJlcXVpcmUoJy4uL0ZpbGxTdHlsZUNhbnZhcycpO1xyXG52YXIgU2V0VHJhbnNmb3JtID0gcmVxdWlyZSgnLi4vLi4vLi4vcmVuZGVyZXIvY2FudmFzL3V0aWxzL1NldFRyYW5zZm9ybScpO1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlcnMgdGhpcyBHYW1lIE9iamVjdCB3aXRoIHRoZSBDYW52YXMgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Jc29UcmlhbmdsZSNyZW5kZXJDYW52YXNcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5DYW52YXMuQ2FudmFzUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIENhbnZhcyByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuSXNvVHJpYW5nbGV9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICovXHJcbnZhciBJc29UcmlhbmdsZUNhbnZhc1JlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgdmFyIGN0eCA9IHJlbmRlcmVyLmN1cnJlbnRDb250ZXh0O1xyXG5cclxuICAgIGlmIChTZXRUcmFuc2Zvcm0ocmVuZGVyZXIsIGN0eCwgc3JjLCBjYW1lcmEsIHBhcmVudE1hdHJpeCkgJiYgc3JjLmlzRmlsbGVkKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBzaXplID0gc3JjLndpZHRoO1xyXG4gICAgICAgIHZhciBoZWlnaHQgPSBzcmMuaGVpZ2h0O1xyXG4gICAgXHJcbiAgICAgICAgdmFyIHNpemVBID0gc2l6ZSAvIDI7XHJcbiAgICAgICAgdmFyIHNpemVCID0gc2l6ZSAvIHNyYy5wcm9qZWN0aW9uO1xyXG5cclxuICAgICAgICB2YXIgcmV2ZXJzZWQgPSBzcmMuaXNSZXZlcnNlZDtcclxuXHJcbiAgICAgICAgLy8gIFRvcCBGYWNlXHJcblxyXG4gICAgICAgIGlmIChzcmMuc2hvd1RvcCAmJiByZXZlcnNlZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIEZpbGxTdHlsZUNhbnZhcyhjdHgsIHNyYywgc3JjLmZpbGxUb3ApO1xyXG5cclxuICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xyXG5cclxuICAgICAgICAgICAgY3R4Lm1vdmVUbygtc2l6ZUEsIC1oZWlnaHQpO1xyXG4gICAgICAgICAgICBjdHgubGluZVRvKDAsIC1zaXplQiAtIGhlaWdodCk7XHJcbiAgICAgICAgICAgIGN0eC5saW5lVG8oc2l6ZUEsIC1oZWlnaHQpO1xyXG4gICAgICAgICAgICBjdHgubGluZVRvKDAsIHNpemVCIC0gaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5maWxsKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgTGVmdCBGYWNlXHJcblxyXG4gICAgICAgIGlmIChzcmMuc2hvd0xlZnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBGaWxsU3R5bGVDYW52YXMoY3R4LCBzcmMsIHNyYy5maWxsTGVmdCk7XHJcblxyXG4gICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAocmV2ZXJzZWQpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGN0eC5tb3ZlVG8oLXNpemVBLCAtaGVpZ2h0KTtcclxuICAgICAgICAgICAgICAgIGN0eC5saW5lVG8oMCwgc2l6ZUIpO1xyXG4gICAgICAgICAgICAgICAgY3R4LmxpbmVUbygwLCBzaXplQiAtIGhlaWdodCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjdHgubW92ZVRvKC1zaXplQSwgMCk7XHJcbiAgICAgICAgICAgICAgICBjdHgubGluZVRvKDAsIHNpemVCKTtcclxuICAgICAgICAgICAgICAgIGN0eC5saW5lVG8oMCwgc2l6ZUIgLSBoZWlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjdHguZmlsbCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gIFJpZ2h0IEZhY2VcclxuXHJcbiAgICAgICAgaWYgKHNyYy5zaG93UmlnaHQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBGaWxsU3R5bGVDYW52YXMoY3R4LCBzcmMsIHNyYy5maWxsUmlnaHQpO1xyXG5cclxuICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJldmVyc2VkKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjdHgubW92ZVRvKHNpemVBLCAtaGVpZ2h0KTtcclxuICAgICAgICAgICAgICAgIGN0eC5saW5lVG8oMCwgc2l6ZUIpO1xyXG4gICAgICAgICAgICAgICAgY3R4LmxpbmVUbygwLCBzaXplQiAtIGhlaWdodCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjdHgubW92ZVRvKHNpemVBLCAwKTtcclxuICAgICAgICAgICAgICAgIGN0eC5saW5lVG8oMCwgc2l6ZUIpO1xyXG4gICAgICAgICAgICAgICAgY3R4LmxpbmVUbygwLCBzaXplQiAtIGhlaWdodCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGN0eC5maWxsKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgUmVzdG9yZSB0aGUgY29udGV4dCBzYXZlZCBpbiBTZXRUcmFuc2Zvcm1cclxuICAgICAgICBjdHgucmVzdG9yZSgpO1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBJc29UcmlhbmdsZUNhbnZhc1JlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uLy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcbnZhciBJc29UcmlhbmdsZSA9IHJlcXVpcmUoJy4vSXNvVHJpYW5nbGUnKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IElzb1RyaWFuZ2xlIFNoYXBlIEdhbWUgT2JqZWN0IGFuZCBhZGRzIGl0IHRvIHRoZSBTY2VuZS5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgSXNvVHJpYW5nbGUgR2FtZSBPYmplY3QgaGFzIGJlZW4gYnVpbHQgaW50byBQaGFzZXIuXHJcbiAqIFxyXG4gKiBUaGUgSXNvVHJpYW5nbGUgU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgb25seSBmaWxsIGNvbG9ycyBhbmQgY2Fubm90IGJlIHN0cm9rZWQuXHJcbiAqIFxyXG4gKiBBbiBJc29UcmlhbmdsZSBpcyBhbiAnaXNvbWV0cmljJyB0cmlhbmdsZS4gVGhpbmsgb2YgaXQgbGlrZSBhIHB5cmFtaWQuIEVhY2ggZmFjZSBoYXMgYSBkaWZmZXJlbnRcclxuICogZmlsbCBjb2xvci4gWW91IGNhbiBzZXQgdGhlIGNvbG9yIG9mIHRoZSB0b3AsIGxlZnQgYW5kIHJpZ2h0IGZhY2VzIG9mIHRoZSB0cmlhbmdsZSByZXNwZWN0aXZlbHlcclxuICogWW91IGNhbiBhbHNvIGNob29zZSB3aGljaCBvZiB0aGUgZmFjZXMgYXJlIHJlbmRlcmVkIHZpYSB0aGUgYHNob3dUb3BgLCBgc2hvd0xlZnRgIGFuZCBgc2hvd1JpZ2h0YCBwcm9wZXJ0aWVzLlxyXG4gKiBcclxuICogWW91IGNhbm5vdCB2aWV3IGFuIElzb1RyaWFuZ2xlIGZyb20gdW5kZXItbmVhdGgsIGhvd2V2ZXIgeW91IGNhbiBjaGFuZ2UgdGhlICdhbmdsZScgYnkgc2V0dGluZ1xyXG4gKiB0aGUgYHByb2plY3Rpb25gIHByb3BlcnR5LiBUaGUgYHJldmVyc2VkYCBwcm9wZXJ0eSBjb250cm9scyBpZiB0aGUgSXNvVHJpYW5nbGUgaXMgcmVuZGVyZWQgdXBzaWRlXHJcbiAqIGRvd24gb3Igbm90LlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0RmFjdG9yeSNpc290cmlhbmdsZVxyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeD0wXSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3k9MF0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc2l6ZT00OF0gLSBUaGUgd2lkdGggb2YgdGhlIGlzbyB0cmlhbmdsZSBpbiBwaXhlbHMuIFRoZSBsZWZ0IGFuZCByaWdodCBmYWNlcyB3aWxsIGJlIGV4YWN0bHkgaGFsZiB0aGlzIHZhbHVlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2hlaWdodD0zMl0gLSBUaGUgaGVpZ2h0IG9mIHRoZSBpc28gdHJpYW5nbGUuIFRoZSBsZWZ0IGFuZCByaWdodCBmYWNlcyB3aWxsIGJlIHRoaXMgdGFsbC4gVGhlIG92ZXJhbGwgaGVpZ2h0IG9mIHRoZSBpc28gdHJpYW5nbGUgd2lsbCBiZSB0aGlzIHZhbHVlIHBsdXMgaGFsZiB0aGUgYHNpemVgIHZhbHVlLlxyXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXZlcnNlZD1mYWxzZV0gLSBJcyB0aGUgaXNvIHRyaWFuZ2xlIHVwc2lkZSBkb3duP1xyXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxUb3A9MHhlZWVlZWVdIC0gVGhlIGZpbGwgY29sb3Igb2YgdGhlIHRvcCBmYWNlIG9mIHRoZSBpc28gdHJpYW5nbGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbExlZnQ9MHg5OTk5OTldIC0gVGhlIGZpbGwgY29sb3Igb2YgdGhlIGxlZnQgZmFjZSBvZiB0aGUgaXNvIHRyaWFuZ2xlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxSaWdodD0weGNjY2NjY10gLSBUaGUgZmlsbCBjb2xvciBvZiB0aGUgcmlnaHQgZmFjZSBvZiB0aGUgaXNvIHRyaWFuZ2xlLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtQaGFzZXIuR2FtZU9iamVjdHMuSXNvVHJpYW5nbGV9IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuR2FtZU9iamVjdEZhY3RvcnkucmVnaXN0ZXIoJ2lzb3RyaWFuZ2xlJywgZnVuY3Rpb24gKHgsIHksIHNpemUsIGhlaWdodCwgcmV2ZXJzZWQsIGZpbGxUb3AsIGZpbGxMZWZ0LCBmaWxsUmlnaHQpXHJcbntcclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXlMaXN0LmFkZChuZXcgSXNvVHJpYW5nbGUodGhpcy5zY2VuZSwgeCwgeSwgc2l6ZSwgaGVpZ2h0LCByZXZlcnNlZCwgZmlsbFRvcCwgZmlsbExlZnQsIGZpbGxSaWdodCkpO1xyXG59KTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9OT09QJyk7XHJcbnZhciByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9OT09QJyk7XHJcblxyXG5pZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4vSXNvVHJpYW5nbGVXZWJHTFJlbmRlcmVyJyk7XHJcbn1cclxuXHJcbmlmICh0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL0lzb1RyaWFuZ2xlQ2FudmFzUmVuZGVyZXInKTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgcmVuZGVyV2ViR0w6IHJlbmRlcldlYkdMLFxyXG4gICAgcmVuZGVyQ2FudmFzOiByZW5kZXJDYW52YXNcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFV0aWxzID0gcmVxdWlyZSgnLi4vLi4vLi4vcmVuZGVyZXIvd2ViZ2wvVXRpbHMnKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5Jc29UcmlhbmdsZSNyZW5kZXJXZWJHTFxyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLldlYkdMLldlYkdMUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIFdlYkdMIHJlbmRlcmVyLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Jc29UcmlhbmdsZX0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIElzb1RyaWFuZ2xlV2ViR0xSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBwaXBlbGluZSA9IHRoaXMucGlwZWxpbmU7XHJcblxyXG4gICAgdmFyIGNhbU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MTtcclxuICAgIHZhciBzaGFwZU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MjtcclxuICAgIHZhciBjYWxjTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgzO1xyXG5cclxuICAgIHJlbmRlcmVyLnNldFBpcGVsaW5lKHBpcGVsaW5lKTtcclxuXHJcbiAgICBzaGFwZU1hdHJpeC5hcHBseUlUUlMoc3JjLngsIHNyYy55LCBzcmMucm90YXRpb24sIHNyYy5zY2FsZVgsIHNyYy5zY2FsZVkpO1xyXG5cclxuICAgIGNhbU1hdHJpeC5jb3B5RnJvbShjYW1lcmEubWF0cml4KTtcclxuXHJcbiAgICBpZiAocGFyZW50TWF0cml4KVxyXG4gICAge1xyXG4gICAgICAgIC8vICBNdWx0aXBseSB0aGUgY2FtZXJhIGJ5IHRoZSBwYXJlbnQgbWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5V2l0aE9mZnNldChwYXJlbnRNYXRyaXgsIC1jYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYLCAtY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWSk7XHJcblxyXG4gICAgICAgIC8vICBVbmRvIHRoZSBjYW1lcmEgc2Nyb2xsXHJcbiAgICAgICAgc2hhcGVNYXRyaXguZSA9IHNyYy54O1xyXG4gICAgICAgIHNoYXBlTWF0cml4LmYgPSBzcmMueTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgICBzaGFwZU1hdHJpeC5lIC09IGNhbWVyYS5zY3JvbGxYICogc3JjLnNjcm9sbEZhY3Rvclg7XHJcbiAgICAgICAgc2hhcGVNYXRyaXguZiAtPSBjYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbU1hdHJpeC5tdWx0aXBseShzaGFwZU1hdHJpeCwgY2FsY01hdHJpeCk7XHJcblxyXG4gICAgdmFyIHNpemUgPSBzcmMud2lkdGg7XHJcbiAgICB2YXIgaGVpZ2h0ID0gc3JjLmhlaWdodDtcclxuXHJcbiAgICB2YXIgc2l6ZUEgPSBzaXplIC8gMjtcclxuICAgIHZhciBzaXplQiA9IHNpemUgLyBzcmMucHJvamVjdGlvbjtcclxuXHJcbiAgICB2YXIgcmV2ZXJzZWQgPSBzcmMuaXNSZXZlcnNlZDtcclxuXHJcbiAgICB2YXIgYWxwaGEgPSBjYW1lcmEuYWxwaGEgKiBzcmMuYWxwaGE7XHJcblxyXG4gICAgaWYgKCFzcmMuaXNGaWxsZWQpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciB0aW50O1xyXG5cclxuICAgIHZhciB4MDtcclxuICAgIHZhciB5MDtcclxuXHJcbiAgICB2YXIgeDE7XHJcbiAgICB2YXIgeTE7XHJcblxyXG4gICAgdmFyIHgyO1xyXG4gICAgdmFyIHkyO1xyXG5cclxuICAgIC8vICBUb3AgRmFjZVxyXG5cclxuICAgIGlmIChzcmMuc2hvd1RvcCAmJiByZXZlcnNlZClcclxuICAgIHtcclxuICAgICAgICB0aW50ID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGFBbmRTd2FwKHNyYy5maWxsVG9wLCBhbHBoYSk7XHJcblxyXG4gICAgICAgIHgwID0gY2FsY01hdHJpeC5nZXRYKC1zaXplQSwgLWhlaWdodCk7XHJcbiAgICAgICAgeTAgPSBjYWxjTWF0cml4LmdldFkoLXNpemVBLCAtaGVpZ2h0KTtcclxuICAgIFxyXG4gICAgICAgIHgxID0gY2FsY01hdHJpeC5nZXRYKDAsIC1zaXplQiAtIGhlaWdodCk7XHJcbiAgICAgICAgeTEgPSBjYWxjTWF0cml4LmdldFkoMCwgLXNpemVCIC0gaGVpZ2h0KTtcclxuICAgIFxyXG4gICAgICAgIHgyID0gY2FsY01hdHJpeC5nZXRYKHNpemVBLCAtaGVpZ2h0KTtcclxuICAgICAgICB5MiA9IGNhbGNNYXRyaXguZ2V0WShzaXplQSwgLWhlaWdodCk7XHJcbiAgICBcclxuICAgICAgICB2YXIgeDMgPSBjYWxjTWF0cml4LmdldFgoMCwgc2l6ZUIgLSBoZWlnaHQpO1xyXG4gICAgICAgIHZhciB5MyA9IGNhbGNNYXRyaXguZ2V0WSgwLCBzaXplQiAtIGhlaWdodCk7XHJcblxyXG4gICAgICAgIHBpcGVsaW5lLnNldFRleHR1cmUyRCgpO1xyXG4gICAgXHJcbiAgICAgICAgcGlwZWxpbmUuYmF0Y2hRdWFkKHgwLCB5MCwgeDEsIHkxLCB4MiwgeTIsIHgzLCB5MywgMCwgMCwgMSwgMSwgdGludCwgdGludCwgdGludCwgdGludCwgMik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIExlZnQgRmFjZVxyXG5cclxuICAgIGlmIChzcmMuc2hvd0xlZnQpXHJcbiAgICB7XHJcbiAgICAgICAgdGludCA9IFV0aWxzLmdldFRpbnRBcHBlbmRGbG9hdEFscGhhQW5kU3dhcChzcmMuZmlsbExlZnQsIGFscGhhKTtcclxuXHJcbiAgICAgICAgaWYgKHJldmVyc2VkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgeDAgPSBjYWxjTWF0cml4LmdldFgoLXNpemVBLCAtaGVpZ2h0KTtcclxuICAgICAgICAgICAgeTAgPSBjYWxjTWF0cml4LmdldFkoLXNpemVBLCAtaGVpZ2h0KTtcclxuICAgICAgICBcclxuICAgICAgICAgICAgeDEgPSBjYWxjTWF0cml4LmdldFgoMCwgc2l6ZUIpO1xyXG4gICAgICAgICAgICB5MSA9IGNhbGNNYXRyaXguZ2V0WSgwLCBzaXplQik7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIHgyID0gY2FsY01hdHJpeC5nZXRYKDAsIHNpemVCIC0gaGVpZ2h0KTtcclxuICAgICAgICAgICAgeTIgPSBjYWxjTWF0cml4LmdldFkoMCwgc2l6ZUIgLSBoZWlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB4MCA9IGNhbGNNYXRyaXguZ2V0WCgtc2l6ZUEsIDApO1xyXG4gICAgICAgICAgICB5MCA9IGNhbGNNYXRyaXguZ2V0WSgtc2l6ZUEsIDApO1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICB4MSA9IGNhbGNNYXRyaXguZ2V0WCgwLCBzaXplQik7XHJcbiAgICAgICAgICAgIHkxID0gY2FsY01hdHJpeC5nZXRZKDAsIHNpemVCKTtcclxuICAgICAgICBcclxuICAgICAgICAgICAgeDIgPSBjYWxjTWF0cml4LmdldFgoMCwgc2l6ZUIgLSBoZWlnaHQpO1xyXG4gICAgICAgICAgICB5MiA9IGNhbGNNYXRyaXguZ2V0WSgwLCBzaXplQiAtIGhlaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgcGlwZWxpbmUuYmF0Y2hUcmkoeDAsIHkwLCB4MSwgeTEsIHgyLCB5MiwgMCwgMCwgMSwgMSwgdGludCwgdGludCwgdGludCwgMik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gIFJpZ2h0IEZhY2VcclxuXHJcbiAgICBpZiAoc3JjLnNob3dSaWdodClcclxuICAgIHtcclxuICAgICAgICB0aW50ID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGFBbmRTd2FwKHNyYy5maWxsUmlnaHQsIGFscGhhKTtcclxuXHJcbiAgICAgICAgaWYgKHJldmVyc2VkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgeDAgPSBjYWxjTWF0cml4LmdldFgoc2l6ZUEsIC1oZWlnaHQpO1xyXG4gICAgICAgICAgICB5MCA9IGNhbGNNYXRyaXguZ2V0WShzaXplQSwgLWhlaWdodCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIHgxID0gY2FsY01hdHJpeC5nZXRYKDAsIHNpemVCKTtcclxuICAgICAgICAgICAgeTEgPSBjYWxjTWF0cml4LmdldFkoMCwgc2l6ZUIpO1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICB4MiA9IGNhbGNNYXRyaXguZ2V0WCgwLCBzaXplQiAtIGhlaWdodCk7XHJcbiAgICAgICAgICAgIHkyID0gY2FsY01hdHJpeC5nZXRZKDAsIHNpemVCIC0gaGVpZ2h0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgeDAgPSBjYWxjTWF0cml4LmdldFgoc2l6ZUEsIDApO1xyXG4gICAgICAgICAgICB5MCA9IGNhbGNNYXRyaXguZ2V0WShzaXplQSwgMCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIHgxID0gY2FsY01hdHJpeC5nZXRYKDAsIHNpemVCKTtcclxuICAgICAgICAgICAgeTEgPSBjYWxjTWF0cml4LmdldFkoMCwgc2l6ZUIpO1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICB4MiA9IGNhbGNNYXRyaXguZ2V0WCgwLCBzaXplQiAtIGhlaWdodCk7XHJcbiAgICAgICAgICAgIHkyID0gY2FsY01hdHJpeC5nZXRZKDAsIHNpemVCIC0gaGVpZ2h0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHBpcGVsaW5lLnNldFRleHR1cmUyRCgpO1xyXG4gICAgXHJcbiAgICAgICAgcGlwZWxpbmUuYmF0Y2hUcmkoeDAsIHkwLCB4MSwgeTEsIHgyLCB5MiwgMCwgMCwgMSwgMSwgdGludCwgdGludCwgdGludCwgMik7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IElzb1RyaWFuZ2xlV2ViR0xSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgU2hhcGUgPSByZXF1aXJlKCcuLi9TaGFwZScpO1xyXG52YXIgR2VvbUxpbmUgPSByZXF1aXJlKCcuLi8uLi8uLi9nZW9tL2xpbmUvTGluZScpO1xyXG52YXIgTGluZVJlbmRlciA9IHJlcXVpcmUoJy4vTGluZVJlbmRlcicpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogVGhlIExpbmUgU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgb25seSBzdHJva2UgY29sb3JzIGFuZCBjYW5ub3QgYmUgZmlsbGVkLlxyXG4gKiBcclxuICogQSBMaW5lIFNoYXBlIGFsbG93cyB5b3UgdG8gZHJhdyBhIGxpbmUgYmV0d2VlbiB0d28gcG9pbnRzIGluIHlvdXIgZ2FtZS4gWW91IGNhbiBjb250cm9sIHRoZVxyXG4gKiBzdHJva2UgY29sb3IgYW5kIHRoaWNrbmVzcyBvZiB0aGUgbGluZS4gSW4gV2ViR0wgb25seSB5b3UgY2FuIGFsc28gc3BlY2lmeSBhIGRpZmZlcmVudFxyXG4gKiB0aGlja25lc3MgZm9yIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSBsaW5lLCBhbGxvd2luZyB5b3UgdG8gcmVuZGVyIGxpbmVzIHRoYXQgdGFwZXItb2ZmLlxyXG4gKiBcclxuICogSWYgeW91IG5lZWQgdG8gZHJhdyBtdWx0aXBsZSBsaW5lcyBpbiBhIHNlcXVlbmNlIHlvdSBtYXkgd2lzaCB0byB1c2UgdGhlIFBvbHlnb24gU2hhcGUgaW5zdGVhZC5cclxuICpcclxuICogQmUgYXdhcmUgdGhhdCBhcyB3aXRoIGFsbCBHYW1lIE9iamVjdHMgdGhlIGRlZmF1bHQgb3JpZ2luIGlzIDAuNS4gSWYgeW91IG5lZWQgdG8gZHJhdyBhIExpbmVcclxuICogYmV0d2VlbiB0d28gcG9pbnRzIGFuZCB3YW50IHRoZSB4MS95MSB2YWx1ZXMgdG8gbWF0Y2ggdGhlIHgveSB2YWx1ZXMsIHRoZW4gc2V0IHRoZSBvcmlnaW4gdG8gMC5cclxuICpcclxuICogQGNsYXNzIExpbmVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gQSBHYW1lIE9iamVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIFNjZW5lIGF0IGEgdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4MT0wXSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBzdGFydCBvZiB0aGUgbGluZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt5MT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgc3RhcnQgb2YgdGhlIGxpbmUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeDI9MTI4XSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBlbmQgb2YgdGhlIGxpbmUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeTI9MF0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhlIGVuZCBvZiB0aGUgbGluZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzdHJva2VDb2xvcl0gLSBUaGUgY29sb3IgdGhlIGxpbmUgd2lsbCBiZSBkcmF3biBpbiwgaS5lLiAweGZmMDAwMCBmb3IgcmVkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0cm9rZUFscGhhXSAtIFRoZSBhbHBoYSB0aGUgbGluZSB3aWxsIGJlIGRyYXduIGluLiBZb3UgY2FuIGFsc28gc2V0IHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmFsbCBTaGFwZSB1c2luZyBpdHMgYGFscGhhYCBwcm9wZXJ0eS5cclxuICovXHJcbnZhciBMaW5lID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBFeHRlbmRzOiBTaGFwZSxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBMaW5lUmVuZGVyXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gTGluZSAoc2NlbmUsIHgsIHksIHgxLCB5MSwgeDIsIHkyLCBzdHJva2VDb2xvciwgc3Ryb2tlQWxwaGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZCkgeyB4ID0gMDsgfVxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IDA7IH1cclxuICAgICAgICBpZiAoeDEgPT09IHVuZGVmaW5lZCkgeyB4MSA9IDA7IH1cclxuICAgICAgICBpZiAoeTEgPT09IHVuZGVmaW5lZCkgeyB5MSA9IDA7IH1cclxuICAgICAgICBpZiAoeDIgPT09IHVuZGVmaW5lZCkgeyB4MiA9IDEyODsgfVxyXG4gICAgICAgIGlmICh5MiA9PT0gdW5kZWZpbmVkKSB7IHkyID0gMDsgfVxyXG5cclxuICAgICAgICBTaGFwZS5jYWxsKHRoaXMsIHNjZW5lLCAnTGluZScsIG5ldyBHZW9tTGluZSh4MSwgeTEsIHgyLCB5MikpO1xyXG5cclxuICAgICAgICB2YXIgd2lkdGggPSB0aGlzLmdlb20ucmlnaHQgLSB0aGlzLmdlb20ubGVmdDtcclxuICAgICAgICB2YXIgaGVpZ2h0ID0gdGhpcy5nZW9tLmJvdHRvbSAtIHRoaXMuZ2VvbS50b3A7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFRoZSB3aWR0aCAob3IgdGhpY2tuZXNzKSBvZiB0aGUgbGluZS5cclxuICAgICAgICAgKiBTZWUgdGhlIHNldExpbmVXaWR0aCBtZXRob2QgZm9yIGV4dHJhIGRldGFpbHMgb24gY2hhbmdpbmcgdGhpcyBvbiBXZWJHTC5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5MaW5lI2xpbmVXaWR0aFxyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMubGluZVdpZHRoID0gMTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS4gSG9sZHMgdGhlIHN0YXJ0IHdpZHRoIG9mIHRoZSBsaW5lLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkxpbmUjX3N0YXJ0V2lkdGhcclxuICAgICAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICAgICAqIEBwcml2YXRlXHJcbiAgICAgICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHRoaXMuX3N0YXJ0V2lkdGggPSAxO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBQcml2YXRlIGludGVybmFsIHZhbHVlLiBIb2xkcyB0aGUgZW5kIHdpZHRoIG9mIHRoZSBsaW5lLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLkxpbmUjX2VuZFdpZHRoXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9lbmRXaWR0aCA9IDE7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0UG9zaXRpb24oeCwgeSk7XHJcbiAgICAgICAgdGhpcy5zZXRTaXplKHdpZHRoLCBoZWlnaHQpO1xyXG5cclxuICAgICAgICBpZiAoc3Ryb2tlQ29sb3IgIT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3Ryb2tlU3R5bGUoMSwgc3Ryb2tlQ29sb3IsIHN0cm9rZUFscGhhKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheU9yaWdpbigpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHdpZHRoIG9mIHRoZSBsaW5lLlxyXG4gICAgICogXHJcbiAgICAgKiBXaGVuIHVzaW5nIHRoZSBXZWJHTCByZW5kZXJlciB5b3UgY2FuIGhhdmUgZGlmZmVyZW50IHN0YXJ0IGFuZCBlbmQgd2lkdGhzLlxyXG4gICAgICogV2hlbiB1c2luZyB0aGUgQ2FudmFzIHJlbmRlcmVyIG9ubHkgdGhlIGBzdGFydFdpZHRoYCB2YWx1ZSBpcyB1c2VkLiBUaGUgYGVuZFdpZHRoYCBpcyBpZ25vcmVkLlxyXG4gICAgICogXHJcbiAgICAgKiBUaGlzIGNhbGwgY2FuIGJlIGNoYWluZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuTGluZSNzZXRMaW5lV2lkdGhcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0V2lkdGggLSBUaGUgc3RhcnQgd2lkdGggb2YgdGhlIGxpbmUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2VuZFdpZHRoXSAtIFRoZSBlbmQgd2lkdGggb2YgdGhlIGxpbmUuIE9ubHkgdXNlZCBpbiBXZWJHTC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBzZXRMaW5lV2lkdGg6IGZ1bmN0aW9uIChzdGFydFdpZHRoLCBlbmRXaWR0aClcclxuICAgIHtcclxuICAgICAgICBpZiAoZW5kV2lkdGggPT09IHVuZGVmaW5lZCkgeyBlbmRXaWR0aCA9IHN0YXJ0V2lkdGg7IH1cclxuXHJcbiAgICAgICAgdGhpcy5fc3RhcnRXaWR0aCA9IHN0YXJ0V2lkdGg7XHJcbiAgICAgICAgdGhpcy5fZW5kV2lkdGggPSBlbmRXaWR0aDtcclxuXHJcbiAgICAgICAgdGhpcy5saW5lV2lkdGggPSBzdGFydFdpZHRoO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBzdGFydCBhbmQgZW5kIGNvb3JkaW5hdGVzIG9mIHRoaXMgTGluZS5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5MaW5lI3NldFRvXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4MT0wXSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBzdGFydCBvZiB0aGUgbGluZS5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbeTE9MF0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4Mj0wXSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBlbmQgb2YgdGhlIGxpbmUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3kyPTBdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBlbmQgb2YgdGhlIGxpbmUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBMaW5lIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgc2V0VG86IGZ1bmN0aW9uICh4MSwgeTEsIHgyLCB5MilcclxuICAgIHtcclxuICAgICAgICB0aGlzLmdlb20uc2V0VG8oeDEsIHkxLCB4MiwgeTIpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBMaW5lO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBMaW5lU3R5bGVDYW52YXMgPSByZXF1aXJlKCcuLi9MaW5lU3R5bGVDYW52YXMnKTtcclxudmFyIFNldFRyYW5zZm9ybSA9IHJlcXVpcmUoJy4uLy4uLy4uL3JlbmRlcmVyL2NhbnZhcy91dGlscy9TZXRUcmFuc2Zvcm0nKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgQ2FudmFzIFJlbmRlcmVyIHRvIHRoZSBnaXZlbiBDYW1lcmEuXHJcbiAqIFRoZSBvYmplY3Qgd2lsbCBub3QgcmVuZGVyIGlmIGFueSBvZiBpdHMgcmVuZGVyRmxhZ3MgYXJlIHNldCBvciBpdCBpcyBiZWluZyBhY3RpdmVseSBmaWx0ZXJlZCBvdXQgYnkgdGhlIENhbWVyYS5cclxuICogVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuIEl0IGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBvZiB0aGUgUmVuZGVyIG1vZHVsZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuTGluZSNyZW5kZXJDYW52YXNcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5DYW52YXMuQ2FudmFzUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIENhbnZhcyByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuTGluZX0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIExpbmVDYW52YXNSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBjdHggPSByZW5kZXJlci5jdXJyZW50Q29udGV4dDtcclxuXHJcbiAgICBpZiAoU2V0VHJhbnNmb3JtKHJlbmRlcmVyLCBjdHgsIHNyYywgY2FtZXJhLCBwYXJlbnRNYXRyaXgpKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBkeCA9IHNyYy5fZGlzcGxheU9yaWdpblg7XHJcbiAgICAgICAgdmFyIGR5ID0gc3JjLl9kaXNwbGF5T3JpZ2luWTtcclxuXHJcbiAgICAgICAgaWYgKHNyYy5pc1N0cm9rZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBMaW5lU3R5bGVDYW52YXMoY3R4LCBzcmMpO1xyXG5cclxuICAgICAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xyXG5cclxuICAgICAgICAgICAgY3R4Lm1vdmVUbyhzcmMuZ2VvbS54MSAtIGR4LCBzcmMuZ2VvbS55MSAtIGR5KTtcclxuICAgICAgICAgICAgY3R4LmxpbmVUbyhzcmMuZ2VvbS54MiAtIGR4LCBzcmMuZ2VvbS55MiAtIGR5KTtcclxuICAgIFxyXG4gICAgICAgICAgICBjdHguc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgUmVzdG9yZSB0aGUgY29udGV4dCBzYXZlZCBpbiBTZXRUcmFuc2Zvcm1cclxuICAgICAgICBjdHgucmVzdG9yZSgpO1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBMaW5lQ2FudmFzUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEdhbWVPYmplY3RGYWN0b3J5ID0gcmVxdWlyZSgnLi4vLi4vR2FtZU9iamVjdEZhY3RvcnknKTtcclxudmFyIExpbmUgPSByZXF1aXJlKCcuL0xpbmUnKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IExpbmUgU2hhcGUgR2FtZSBPYmplY3QgYW5kIGFkZHMgaXQgdG8gdGhlIFNjZW5lLlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBMaW5lIEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKiBcclxuICogVGhlIExpbmUgU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgb25seSBzdHJva2UgY29sb3JzIGFuZCBjYW5ub3QgYmUgZmlsbGVkLlxyXG4gKiBcclxuICogQSBMaW5lIFNoYXBlIGFsbG93cyB5b3UgdG8gZHJhdyBhIGxpbmUgYmV0d2VlbiB0d28gcG9pbnRzIGluIHlvdXIgZ2FtZS4gWW91IGNhbiBjb250cm9sIHRoZVxyXG4gKiBzdHJva2UgY29sb3IgYW5kIHRoaWNrbmVzcyBvZiB0aGUgbGluZS4gSW4gV2ViR0wgb25seSB5b3UgY2FuIGFsc28gc3BlY2lmeSBhIGRpZmZlcmVudFxyXG4gKiB0aGlja25lc3MgZm9yIHRoZSBzdGFydCBhbmQgZW5kIG9mIHRoZSBsaW5lLCBhbGxvd2luZyB5b3UgdG8gcmVuZGVyIGxpbmVzIHRoYXQgdGFwZXItb2ZmLlxyXG4gKiBcclxuICogSWYgeW91IG5lZWQgdG8gZHJhdyBtdWx0aXBsZSBsaW5lcyBpbiBhIHNlcXVlbmNlIHlvdSBtYXkgd2lzaCB0byB1c2UgdGhlIFBvbHlnb24gU2hhcGUgaW5zdGVhZC5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3RvcnkjbGluZVxyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeD0wXSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3k9MF0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeDE9MF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgc3RhcnQgb2YgdGhlIGxpbmUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeTE9MF0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3gyPTEyOF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgZW5kIG9mIHRoZSBsaW5lLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3kyPTBdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBlbmQgb2YgdGhlIGxpbmUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3Ryb2tlQ29sb3JdIC0gVGhlIGNvbG9yIHRoZSBsaW5lIHdpbGwgYmUgZHJhd24gaW4sIGkuZS4gMHhmZjAwMDAgZm9yIHJlZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtzdHJva2VBbHBoYV0gLSBUaGUgYWxwaGEgdGhlIGxpbmUgd2lsbCBiZSBkcmF3biBpbi4gWW91IGNhbiBhbHNvIHNldCB0aGUgYWxwaGEgb2YgdGhlIG92ZXJhbGwgU2hhcGUgdXNpbmcgaXRzIGBhbHBoYWAgcHJvcGVydHkuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5MaW5lfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RGYWN0b3J5LnJlZ2lzdGVyKCdsaW5lJywgZnVuY3Rpb24gKHgsIHksIHgxLCB5MSwgeDIsIHkyLCBzdHJva2VDb2xvciwgc3Ryb2tlQWxwaGEpXHJcbntcclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXlMaXN0LmFkZChuZXcgTGluZSh0aGlzLnNjZW5lLCB4LCB5LCB4MSwgeTEsIHgyLCB5Miwgc3Ryb2tlQ29sb3IsIHN0cm9rZUFscGhhKSk7XHJcbn0pO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL05PT1AnKTtcclxudmFyIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL05PT1AnKTtcclxuXHJcbmlmICh0eXBlb2YgV0VCR0xfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi9MaW5lV2ViR0xSZW5kZXJlcicpO1xyXG59XHJcblxyXG5pZiAodHlwZW9mIENBTlZBU19SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi9MaW5lQ2FudmFzUmVuZGVyZXInKTtcclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSB7XHJcblxyXG4gICAgcmVuZGVyV2ViR0w6IHJlbmRlcldlYkdMLFxyXG4gICAgcmVuZGVyQ2FudmFzOiByZW5kZXJDYW52YXNcclxuXHJcbn07XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFV0aWxzID0gcmVxdWlyZSgnLi4vLi4vLi4vcmVuZGVyZXIvd2ViZ2wvVXRpbHMnKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5MaW5lI3JlbmRlcldlYkdMXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xSZW5kZXJlcn0gcmVuZGVyZXIgLSBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBhY3RpdmUgV2ViR0wgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkxpbmV9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICovXHJcbnZhciBMaW5lV2ViR0xSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBwaXBlbGluZSA9IHRoaXMucGlwZWxpbmU7XHJcblxyXG4gICAgdmFyIGNhbU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MTtcclxuICAgIHZhciBzaGFwZU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MjtcclxuXHJcbiAgICByZW5kZXJlci5zZXRQaXBlbGluZShwaXBlbGluZSk7XHJcblxyXG4gICAgc2hhcGVNYXRyaXguYXBwbHlJVFJTKHNyYy54LCBzcmMueSwgc3JjLnJvdGF0aW9uLCBzcmMuc2NhbGVYLCBzcmMuc2NhbGVZKTtcclxuXHJcbiAgICBjYW1NYXRyaXguY29weUZyb20oY2FtZXJhLm1hdHJpeCk7XHJcblxyXG4gICAgaWYgKHBhcmVudE1hdHJpeClcclxuICAgIHtcclxuICAgICAgICAvLyAgTXVsdGlwbHkgdGhlIGNhbWVyYSBieSB0aGUgcGFyZW50IG1hdHJpeFxyXG4gICAgICAgIGNhbU1hdHJpeC5tdWx0aXBseVdpdGhPZmZzZXQocGFyZW50TWF0cml4LCAtY2FtZXJhLnNjcm9sbFggKiBzcmMuc2Nyb2xsRmFjdG9yWCwgLWNhbWVyYS5zY3JvbGxZICogc3JjLnNjcm9sbEZhY3RvclkpO1xyXG5cclxuICAgICAgICAvLyAgVW5kbyB0aGUgY2FtZXJhIHNjcm9sbFxyXG4gICAgICAgIHNoYXBlTWF0cml4LmUgPSBzcmMueDtcclxuICAgICAgICBzaGFwZU1hdHJpeC5mID0gc3JjLnk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgc2hhcGVNYXRyaXguZSAtPSBjYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYO1xyXG4gICAgICAgIHNoYXBlTWF0cml4LmYgLT0gY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgZHggPSBzcmMuX2Rpc3BsYXlPcmlnaW5YO1xyXG4gICAgdmFyIGR5ID0gc3JjLl9kaXNwbGF5T3JpZ2luWTtcclxuICAgIHZhciBhbHBoYSA9IGNhbWVyYS5hbHBoYSAqIHNyYy5hbHBoYTtcclxuXHJcbiAgICBpZiAoc3JjLmlzU3Ryb2tlZClcclxuICAgIHtcclxuICAgICAgICB2YXIgc3Ryb2tlVGludCA9IHBpcGVsaW5lLnN0cm9rZVRpbnQ7XHJcbiAgICAgICAgdmFyIGNvbG9yID0gVXRpbHMuZ2V0VGludEFwcGVuZEZsb2F0QWxwaGFBbmRTd2FwKHNyYy5zdHJva2VDb2xvciwgc3JjLnN0cm9rZUFscGhhICogYWxwaGEpO1xyXG5cclxuICAgICAgICBzdHJva2VUaW50LlRMID0gY29sb3I7XHJcbiAgICAgICAgc3Ryb2tlVGludC5UUiA9IGNvbG9yO1xyXG4gICAgICAgIHN0cm9rZVRpbnQuQkwgPSBjb2xvcjtcclxuICAgICAgICBzdHJva2VUaW50LkJSID0gY29sb3I7XHJcblxyXG4gICAgICAgIHZhciBzdGFydFdpZHRoID0gc3JjLl9zdGFydFdpZHRoO1xyXG4gICAgICAgIHZhciBlbmRXaWR0aCA9IHNyYy5fZW5kV2lkdGg7XHJcblxyXG4gICAgICAgIHBpcGVsaW5lLnNldFRleHR1cmUyRCgpO1xyXG5cclxuICAgICAgICBwaXBlbGluZS5iYXRjaExpbmUoXHJcbiAgICAgICAgICAgIHNyYy5nZW9tLngxIC0gZHgsXHJcbiAgICAgICAgICAgIHNyYy5nZW9tLnkxIC0gZHksXHJcbiAgICAgICAgICAgIHNyYy5nZW9tLngyIC0gZHgsXHJcbiAgICAgICAgICAgIHNyYy5nZW9tLnkyIC0gZHksXHJcbiAgICAgICAgICAgIHN0YXJ0V2lkdGgsXHJcbiAgICAgICAgICAgIGVuZFdpZHRoLFxyXG4gICAgICAgICAgICAxLFxyXG4gICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICBmYWxzZSxcclxuICAgICAgICAgICAgc2hhcGVNYXRyaXgsXHJcbiAgICAgICAgICAgIGNhbU1hdHJpeFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IExpbmVXZWJHTFJlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBQb2x5Z29uUmVuZGVyID0gcmVxdWlyZSgnLi9Qb2x5Z29uUmVuZGVyJyk7XHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBFYXJjdXQgPSByZXF1aXJlKCcuLi8uLi8uLi9nZW9tL3BvbHlnb24vRWFyY3V0Jyk7XHJcbnZhciBHZXRBQUJCID0gcmVxdWlyZSgnLi4vLi4vLi4vZ2VvbS9wb2x5Z29uL0dldEFBQkInKTtcclxudmFyIEdlb21Qb2x5Z29uID0gcmVxdWlyZSgnLi4vLi4vLi4vZ2VvbS9wb2x5Z29uL1BvbHlnb24nKTtcclxudmFyIFNoYXBlID0gcmVxdWlyZSgnLi4vU2hhcGUnKTtcclxudmFyIFNtb290aCA9IHJlcXVpcmUoJy4uLy4uLy4uL2dlb20vcG9seWdvbi9TbW9vdGgnKTtcclxuXHJcbi8qKlxyXG4gKiBAY2xhc3NkZXNjXHJcbiAqIFRoZSBQb2x5Z29uIFNoYXBlIGlzIGEgR2FtZSBPYmplY3QgdGhhdCBjYW4gYmUgYWRkZWQgdG8gYSBTY2VuZSwgR3JvdXAgb3IgQ29udGFpbmVyLiBZb3UgY2FuXHJcbiAqIHRyZWF0IGl0IGxpa2UgYW55IG90aGVyIEdhbWUgT2JqZWN0IGluIHlvdXIgZ2FtZSwgc3VjaCBhcyB0d2VlbmluZyBpdCwgc2NhbGluZyBpdCwgb3IgZW5hYmxpbmdcclxuICogaXQgZm9yIGlucHV0IG9yIHBoeXNpY3MuIEl0IHByb3ZpZGVzIGEgcXVpY2sgYW5kIGVhc3kgd2F5IGZvciB5b3UgdG8gcmVuZGVyIHRoaXMgc2hhcGUgaW4geW91clxyXG4gKiBnYW1lIHdpdGhvdXQgdXNpbmcgYSB0ZXh0dXJlLCB3aGlsZSBzdGlsbCB0YWtpbmcgYWR2YW50YWdlIG9mIGJlaW5nIGZ1bGx5IGJhdGNoZWQgaW4gV2ViR0wuXHJcbiAqIFxyXG4gKiBUaGlzIHNoYXBlIHN1cHBvcnRzIGJvdGggZmlsbCBhbmQgc3Ryb2tlIGNvbG9ycy5cclxuICogXHJcbiAqIFRoZSBQb2x5Z29uIFNoYXBlIGlzIGNyZWF0ZWQgYnkgcHJvdmlkaW5nIGEgbGlzdCBvZiBwb2ludHMsIHdoaWNoIGFyZSB0aGVuIHVzZWQgdG8gY3JlYXRlIGFuXHJcbiAqIGludGVybmFsIFBvbHlnb24gZ2VvbWV0cnkgb2JqZWN0LiBUaGUgcG9pbnRzIGNhbiBiZSBzZXQgZnJvbSBhIHZhcmlldHkgb2YgZm9ybWF0czpcclxuICpcclxuICogLSBBIHN0cmluZyBjb250YWluaW5nIHBhaXJlZCB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGEgc2luZ2xlIHNwYWNlOiBgJzQwIDAgNDAgMjAgMTAwIDIwIDEwMCA4MCA0MCA4MCA0MCAxMDAgMCA1MCdgXHJcbiAqIC0gQW4gYXJyYXkgb2YgUG9pbnQgb3IgVmVjdG9yMiBvYmplY3RzOiBgW25ldyBQaGFzZXIuTWF0aC5WZWN0b3IyKHgxLCB5MSksIC4uLl1gXHJcbiAqIC0gQW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoIHB1YmxpYyB4L3kgcHJvcGVydGllczogYFtvYmoxLCBvYmoyLCAuLi5dYFxyXG4gKiAtIEFuIGFycmF5IG9mIHBhaXJlZCBudW1iZXJzIHRoYXQgcmVwcmVzZW50IHBvaW50IGNvb3JkaW5hdGVzOiBgW3gxLHkxLCB4Mix5MiwgLi4uXWBcclxuICogLSBBbiBhcnJheSBvZiBhcnJheXMgd2l0aCB0d28gZWxlbWVudHMgcmVwcmVzZW50aW5nIHgveSBjb29yZGluYXRlczogYFtbeDEsIHkxXSwgW3gyLCB5Ml0sIC4uLl1gXHJcbiAqIFxyXG4gKiBCeSBkZWZhdWx0IHRoZSBgeGAgYW5kIGB5YCBjb29yZGluYXRlcyBvZiB0aGlzIFNoYXBlIHJlZmVyIHRvIHRoZSBjZW50ZXIgb2YgaXQuIEhvd2V2ZXIsIGRlcGVuZGluZ1xyXG4gKiBvbiB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHBvaW50cyBwcm92aWRlZCwgdGhlIGZpbmFsIHNoYXBlIG1heSBiZSByZW5kZXJlZCBvZmZzZXQgZnJvbSBpdHMgb3JpZ2luLlxyXG4gKlxyXG4gKiBAY2xhc3MgUG9seWdvblxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuU2hhcGVcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBUaGUgU2NlbmUgdG8gd2hpY2ggdGhpcyBHYW1lIE9iamVjdCBiZWxvbmdzLiBBIEdhbWUgT2JqZWN0IGNhbiBvbmx5IGJlbG9uZyB0byBvbmUgU2NlbmUgYXQgYSB0aW1lLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3g9MF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt5PTBdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge2FueX0gW3BvaW50c10gLSBUaGUgcG9pbnRzIHRoYXQgbWFrZSB1cCB0aGUgcG9seWdvbi5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQ29sb3JdIC0gVGhlIGNvbG9yIHRoZSBwb2x5Z29uIHdpbGwgYmUgZmlsbGVkIHdpdGgsIGkuZS4gMHhmZjAwMDAgZm9yIHJlZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQWxwaGFdIC0gVGhlIGFscGhhIHRoZSBwb2x5Z29uIHdpbGwgYmUgZmlsbGVkIHdpdGguIFlvdSBjYW4gYWxzbyBzZXQgdGhlIGFscGhhIG9mIHRoZSBvdmVyYWxsIFNoYXBlIHVzaW5nIGl0cyBgYWxwaGFgIHByb3BlcnR5LlxyXG4gKi9cclxudmFyIFBvbHlnb24gPSBuZXcgQ2xhc3Moe1xyXG5cclxuICAgIEV4dGVuZHM6IFNoYXBlLFxyXG5cclxuICAgIE1peGluczogW1xyXG4gICAgICAgIFBvbHlnb25SZW5kZXJcclxuICAgIF0sXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBQb2x5Z29uIChzY2VuZSwgeCwgeSwgcG9pbnRzLCBmaWxsQ29sb3IsIGZpbGxBbHBoYSlcclxuICAgIHtcclxuICAgICAgICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7IHggPSAwOyB9XHJcbiAgICAgICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgeyB5ID0gMDsgfVxyXG5cclxuICAgICAgICBTaGFwZS5jYWxsKHRoaXMsIHNjZW5lLCAnUG9seWdvbicsIG5ldyBHZW9tUG9seWdvbihwb2ludHMpKTtcclxuXHJcbiAgICAgICAgdmFyIGJvdW5kcyA9IEdldEFBQkIodGhpcy5nZW9tKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvbih4LCB5KTtcclxuICAgICAgICB0aGlzLnNldFNpemUoYm91bmRzLndpZHRoLCBib3VuZHMuaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGxDb2xvciAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRGaWxsU3R5bGUoZmlsbENvbG9yLCBmaWxsQWxwaGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5T3JpZ2luKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU21vb3RocyB0aGUgcG9seWdvbiBvdmVyIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBzcGVjaWZpZWQuXHJcbiAgICAgKiBUaGUgYmFzZSBwb2x5Z29uIGRhdGEgd2lsbCBiZSB1cGRhdGVkIGFuZCByZXBsYWNlZCB3aXRoIHRoZSBzbW9vdGhlZCB2YWx1ZXMuXHJcbiAgICAgKiBUaGlzIGNhbGwgY2FuIGJlIGNoYWluZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUG9seWdvbiNzbW9vdGhcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtpbnRlZ2VyfSBbaXRlcmF0aW9ucz0xXSAtIFRoZSBudW1iZXIgb2YgdGltZXMgdG8gYXBwbHkgdGhlIHBvbHlnb24gc21vb3RoaW5nLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNtb290aDogZnVuY3Rpb24gKGl0ZXJhdGlvbnMpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKGl0ZXJhdGlvbnMgPT09IHVuZGVmaW5lZCkgeyBpdGVyYXRpb25zID0gMTsgfVxyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIFNtb290aCh0aGlzLmdlb20pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlRGF0YSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIG1ldGhvZCB0aGF0IHVwZGF0ZXMgdGhlIGRhdGEgYW5kIHBhdGggdmFsdWVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBvbHlnb24jdXBkYXRlRGF0YVxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJuIHt0aGlzfSBUaGlzIEdhbWUgT2JqZWN0IGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGVEYXRhOiBmdW5jdGlvbiAoKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBwYXRoID0gW107XHJcbiAgICAgICAgdmFyIHBvaW50cyA9IHRoaXMuZ2VvbS5wb2ludHM7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcGF0aC5wdXNoKHBvaW50c1tpXS54LCBwb2ludHNbaV0ueSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwYXRoLnB1c2gocG9pbnRzWzBdLngsIHBvaW50c1swXS55KTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXRoSW5kZXhlcyA9IEVhcmN1dChwYXRoKTtcclxuICAgICAgICB0aGlzLnBhdGhEYXRhID0gcGF0aDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG59KTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUG9seWdvbjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgRmlsbFN0eWxlQ2FudmFzID0gcmVxdWlyZSgnLi4vRmlsbFN0eWxlQ2FudmFzJyk7XHJcbnZhciBMaW5lU3R5bGVDYW52YXMgPSByZXF1aXJlKCcuLi9MaW5lU3R5bGVDYW52YXMnKTtcclxudmFyIFNldFRyYW5zZm9ybSA9IHJlcXVpcmUoJy4uLy4uLy4uL3JlbmRlcmVyL2NhbnZhcy91dGlscy9TZXRUcmFuc2Zvcm0nKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgQ2FudmFzIFJlbmRlcmVyIHRvIHRoZSBnaXZlbiBDYW1lcmEuXHJcbiAqIFRoZSBvYmplY3Qgd2lsbCBub3QgcmVuZGVyIGlmIGFueSBvZiBpdHMgcmVuZGVyRmxhZ3MgYXJlIHNldCBvciBpdCBpcyBiZWluZyBhY3RpdmVseSBmaWx0ZXJlZCBvdXQgYnkgdGhlIENhbWVyYS5cclxuICogVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuIEl0IGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBvZiB0aGUgUmVuZGVyIG1vZHVsZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUG9seWdvbiNyZW5kZXJDYW52YXNcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5DYW52YXMuQ2FudmFzUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIENhbnZhcyByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUG9seWdvbn0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIFBvbHlnb25DYW52YXNSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBjdHggPSByZW5kZXJlci5jdXJyZW50Q29udGV4dDtcclxuXHJcbiAgICBpZiAoU2V0VHJhbnNmb3JtKHJlbmRlcmVyLCBjdHgsIHNyYywgY2FtZXJhLCBwYXJlbnRNYXRyaXgpKVxyXG4gICAge1xyXG4gICAgICAgIHZhciBkeCA9IHNyYy5fZGlzcGxheU9yaWdpblg7XHJcbiAgICAgICAgdmFyIGR5ID0gc3JjLl9kaXNwbGF5T3JpZ2luWTtcclxuXHJcbiAgICAgICAgdmFyIHBhdGggPSBzcmMucGF0aERhdGE7XHJcbiAgICAgICAgdmFyIHBhdGhMZW5ndGggPSBwYXRoLmxlbmd0aCAtIDE7XHJcbiAgICBcclxuICAgICAgICB2YXIgcHgxID0gcGF0aFswXSAtIGR4O1xyXG4gICAgICAgIHZhciBweTEgPSBwYXRoWzFdIC0gZHk7XHJcblxyXG4gICAgICAgIGN0eC5iZWdpblBhdGgoKTtcclxuXHJcbiAgICAgICAgY3R4Lm1vdmVUbyhweDEsIHB5MSk7XHJcbiAgICBcclxuICAgICAgICBpZiAoIXNyYy5jbG9zZVBhdGgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwYXRoTGVuZ3RoIC09IDI7XHJcbiAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDI7IGkgPCBwYXRoTGVuZ3RoOyBpICs9IDIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB2YXIgcHgyID0gcGF0aFtpXSAtIGR4O1xyXG4gICAgICAgICAgICB2YXIgcHkyID0gcGF0aFtpICsgMV0gLSBkeTtcclxuICAgIFxyXG4gICAgICAgICAgICBjdHgubGluZVRvKHB4MiwgcHkyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGN0eC5jbG9zZVBhdGgoKTtcclxuXHJcbiAgICAgICAgaWYgKHNyYy5pc0ZpbGxlZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIEZpbGxTdHlsZUNhbnZhcyhjdHgsIHNyYyk7XHJcblxyXG4gICAgICAgICAgICBjdHguZmlsbCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHNyYy5pc1N0cm9rZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBMaW5lU3R5bGVDYW52YXMoY3R4LCBzcmMpO1xyXG5cclxuICAgICAgICAgICAgY3R4LnN0cm9rZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gIFJlc3RvcmUgdGhlIGNvbnRleHQgc2F2ZWQgaW4gU2V0VHJhbnNmb3JtXHJcbiAgICAgICAgY3R4LnJlc3RvcmUoKTtcclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUG9seWdvbkNhbnZhc1JlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uLy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcbnZhciBQb2x5Z29uID0gcmVxdWlyZSgnLi9Qb2x5Z29uJyk7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG5ldyBQb2x5Z29uIFNoYXBlIEdhbWUgT2JqZWN0IGFuZCBhZGRzIGl0IHRvIHRoZSBTY2VuZS5cclxuICogXHJcbiAqIE5vdGU6IFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBhdmFpbGFibGUgaWYgdGhlIFBvbHlnb24gR2FtZSBPYmplY3QgaGFzIGJlZW4gYnVpbHQgaW50byBQaGFzZXIuXHJcbiAqIFxyXG4gKiBUaGUgUG9seWdvbiBTaGFwZSBpcyBhIEdhbWUgT2JqZWN0IHRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgU2NlbmUsIEdyb3VwIG9yIENvbnRhaW5lci4gWW91IGNhblxyXG4gKiB0cmVhdCBpdCBsaWtlIGFueSBvdGhlciBHYW1lIE9iamVjdCBpbiB5b3VyIGdhbWUsIHN1Y2ggYXMgdHdlZW5pbmcgaXQsIHNjYWxpbmcgaXQsIG9yIGVuYWJsaW5nXHJcbiAqIGl0IGZvciBpbnB1dCBvciBwaHlzaWNzLiBJdCBwcm92aWRlcyBhIHF1aWNrIGFuZCBlYXN5IHdheSBmb3IgeW91IHRvIHJlbmRlciB0aGlzIHNoYXBlIGluIHlvdXJcclxuICogZ2FtZSB3aXRob3V0IHVzaW5nIGEgdGV4dHVyZSwgd2hpbGUgc3RpbGwgdGFraW5nIGFkdmFudGFnZSBvZiBiZWluZyBmdWxseSBiYXRjaGVkIGluIFdlYkdMLlxyXG4gKiBcclxuICogVGhpcyBzaGFwZSBzdXBwb3J0cyBib3RoIGZpbGwgYW5kIHN0cm9rZSBjb2xvcnMuXHJcbiAqIFxyXG4gKiBUaGUgUG9seWdvbiBTaGFwZSBpcyBjcmVhdGVkIGJ5IHByb3ZpZGluZyBhIGxpc3Qgb2YgcG9pbnRzLCB3aGljaCBhcmUgdGhlbiB1c2VkIHRvIGNyZWF0ZSBhblxyXG4gKiBpbnRlcm5hbCBQb2x5Z29uIGdlb21ldHJ5IG9iamVjdC4gVGhlIHBvaW50cyBjYW4gYmUgc2V0IGZyb20gYSB2YXJpZXR5IG9mIGZvcm1hdHM6XHJcbiAqXHJcbiAqIC0gQW4gYXJyYXkgb2YgUG9pbnQgb3IgVmVjdG9yMiBvYmplY3RzOiBgW25ldyBQaGFzZXIuTWF0aC5WZWN0b3IyKHgxLCB5MSksIC4uLl1gXHJcbiAqIC0gQW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoIHB1YmxpYyB4L3kgcHJvcGVydGllczogYFtvYmoxLCBvYmoyLCAuLi5dYFxyXG4gKiAtIEFuIGFycmF5IG9mIHBhaXJlZCBudW1iZXJzIHRoYXQgcmVwcmVzZW50IHBvaW50IGNvb3JkaW5hdGVzOiBgW3gxLHkxLCB4Mix5MiwgLi4uXWBcclxuICogLSBBbiBhcnJheSBvZiBhcnJheXMgd2l0aCB0d28gZWxlbWVudHMgcmVwcmVzZW50aW5nIHgveSBjb29yZGluYXRlczogYFtbeDEsIHkxXSwgW3gyLCB5Ml0sIC4uLl1gXHJcbiAqIFxyXG4gKiBCeSBkZWZhdWx0IHRoZSBgeGAgYW5kIGB5YCBjb29yZGluYXRlcyBvZiB0aGlzIFNoYXBlIHJlZmVyIHRvIHRoZSBjZW50ZXIgb2YgaXQuIEhvd2V2ZXIsIGRlcGVuZGluZ1xyXG4gKiBvbiB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHBvaW50cyBwcm92aWRlZCwgdGhlIGZpbmFsIHNoYXBlIG1heSBiZSByZW5kZXJlZCBvZmZzZXQgZnJvbSBpdHMgb3JpZ2luLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0RmFjdG9yeSNwb2x5Z29uXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHthbnl9IFtwb2ludHNdIC0gVGhlIHBvaW50cyB0aGF0IG1ha2UgdXAgdGhlIHBvbHlnb24uXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbENvbG9yXSAtIFRoZSBjb2xvciB0aGUgcG9seWdvbiB3aWxsIGJlIGZpbGxlZCB3aXRoLCBpLmUuIDB4ZmYwMDAwIGZvciByZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbEFscGhhXSAtIFRoZSBhbHBoYSB0aGUgcG9seWdvbiB3aWxsIGJlIGZpbGxlZCB3aXRoLiBZb3UgY2FuIGFsc28gc2V0IHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmFsbCBTaGFwZSB1c2luZyBpdHMgYGFscGhhYCBwcm9wZXJ0eS5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLlBvbHlnb259IFRoZSBHYW1lIE9iamVjdCB0aGF0IHdhcyBjcmVhdGVkLlxyXG4gKi9cclxuR2FtZU9iamVjdEZhY3RvcnkucmVnaXN0ZXIoJ3BvbHlnb24nLCBmdW5jdGlvbiAoeCwgeSwgcG9pbnRzLCBmaWxsQ29sb3IsIGZpbGxBbHBoYSlcclxue1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUxpc3QuYWRkKG5ldyBQb2x5Z29uKHRoaXMuc2NlbmUsIHgsIHksIHBvaW50cywgZmlsbENvbG9yLCBmaWxsQWxwaGEpKTtcclxufSk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi4vLi4vLi4vdXRpbHMvTk9PUCcpO1xyXG52YXIgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi4vLi4vLi4vdXRpbHMvTk9PUCcpO1xyXG5cclxuaWYgKHR5cGVvZiBXRUJHTF9SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuL1BvbHlnb25XZWJHTFJlbmRlcmVyJyk7XHJcbn1cclxuXHJcbmlmICh0eXBlb2YgQ0FOVkFTX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuL1BvbHlnb25DYW52YXNSZW5kZXJlcicpO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICByZW5kZXJXZWJHTDogcmVuZGVyV2ViR0wsXHJcbiAgICByZW5kZXJDYW52YXM6IHJlbmRlckNhbnZhc1xyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgRmlsbFBhdGhXZWJHTCA9IHJlcXVpcmUoJy4uL0ZpbGxQYXRoV2ViR0wnKTtcclxudmFyIFN0cm9rZVBhdGhXZWJHTCA9IHJlcXVpcmUoJy4uL1N0cm9rZVBhdGhXZWJHTCcpO1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlcnMgdGhpcyBHYW1lIE9iamVjdCB3aXRoIHRoZSBXZWJHTCBSZW5kZXJlciB0byB0aGUgZ2l2ZW4gQ2FtZXJhLlxyXG4gKiBUaGUgb2JqZWN0IHdpbGwgbm90IHJlbmRlciBpZiBhbnkgb2YgaXRzIHJlbmRlckZsYWdzIGFyZSBzZXQgb3IgaXQgaXMgYmVpbmcgYWN0aXZlbHkgZmlsdGVyZWQgb3V0IGJ5IHRoZSBDYW1lcmEuXHJcbiAqIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBJdCBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gb2YgdGhlIFJlbmRlciBtb2R1bGUuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlBvbHlnb24jcmVuZGVyV2ViR0xcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5XZWJHTC5XZWJHTFJlbmRlcmVyfSByZW5kZXJlciAtIEEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGFjdGl2ZSBXZWJHTCByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUG9seWdvbn0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIFBvbHlnb25XZWJHTFJlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgdmFyIHBpcGVsaW5lID0gdGhpcy5waXBlbGluZTtcclxuXHJcbiAgICB2YXIgY2FtTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgxO1xyXG4gICAgdmFyIHNoYXBlTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgyO1xyXG4gICAgdmFyIGNhbGNNYXRyaXggPSBwaXBlbGluZS5fdGVtcE1hdHJpeDM7XHJcblxyXG4gICAgcmVuZGVyZXIuc2V0UGlwZWxpbmUocGlwZWxpbmUpO1xyXG5cclxuICAgIHNoYXBlTWF0cml4LmFwcGx5SVRSUyhzcmMueCwgc3JjLnksIHNyYy5yb3RhdGlvbiwgc3JjLnNjYWxlWCwgc3JjLnNjYWxlWSk7XHJcblxyXG4gICAgY2FtTWF0cml4LmNvcHlGcm9tKGNhbWVyYS5tYXRyaXgpO1xyXG5cclxuICAgIGlmIChwYXJlbnRNYXRyaXgpXHJcbiAgICB7XHJcbiAgICAgICAgLy8gIE11bHRpcGx5IHRoZSBjYW1lcmEgYnkgdGhlIHBhcmVudCBtYXRyaXhcclxuICAgICAgICBjYW1NYXRyaXgubXVsdGlwbHlXaXRoT2Zmc2V0KHBhcmVudE1hdHJpeCwgLWNhbWVyYS5zY3JvbGxYICogc3JjLnNjcm9sbEZhY3RvclgsIC1jYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZKTtcclxuXHJcbiAgICAgICAgLy8gIFVuZG8gdGhlIGNhbWVyYSBzY3JvbGxcclxuICAgICAgICBzaGFwZU1hdHJpeC5lID0gc3JjLng7XHJcbiAgICAgICAgc2hhcGVNYXRyaXguZiA9IHNyYy55O1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAgIHNoYXBlTWF0cml4LmUgLT0gY2FtZXJhLnNjcm9sbFggKiBzcmMuc2Nyb2xsRmFjdG9yWDtcclxuICAgICAgICBzaGFwZU1hdHJpeC5mIC09IGNhbWVyYS5zY3JvbGxZICogc3JjLnNjcm9sbEZhY3Rvclk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FtTWF0cml4Lm11bHRpcGx5KHNoYXBlTWF0cml4LCBjYWxjTWF0cml4KTtcclxuXHJcbiAgICB2YXIgZHggPSBzcmMuX2Rpc3BsYXlPcmlnaW5YO1xyXG4gICAgdmFyIGR5ID0gc3JjLl9kaXNwbGF5T3JpZ2luWTtcclxuXHJcbiAgICB2YXIgYWxwaGEgPSBjYW1lcmEuYWxwaGEgKiBzcmMuYWxwaGE7XHJcblxyXG4gICAgaWYgKHNyYy5pc0ZpbGxlZClcclxuICAgIHtcclxuICAgICAgICBGaWxsUGF0aFdlYkdMKHBpcGVsaW5lLCBjYWxjTWF0cml4LCBzcmMsIGFscGhhLCBkeCwgZHkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzcmMuaXNTdHJva2VkKVxyXG4gICAge1xyXG4gICAgICAgIFN0cm9rZVBhdGhXZWJHTChwaXBlbGluZSwgc3JjLCBhbHBoYSwgZHgsIGR5KTtcclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUG9seWdvbldlYkdMUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIENsYXNzID0gcmVxdWlyZSgnLi4vLi4vLi4vdXRpbHMvQ2xhc3MnKTtcclxudmFyIEdlb21SZWN0YW5nbGUgPSByZXF1aXJlKCcuLi8uLi8uLi9nZW9tL3JlY3RhbmdsZS9SZWN0YW5nbGUnKTtcclxudmFyIFNoYXBlID0gcmVxdWlyZSgnLi4vU2hhcGUnKTtcclxudmFyIFJlY3RhbmdsZVJlbmRlciA9IHJlcXVpcmUoJy4vUmVjdGFuZ2xlUmVuZGVyJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBUaGUgUmVjdGFuZ2xlIFNoYXBlIGlzIGEgR2FtZSBPYmplY3QgdGhhdCBjYW4gYmUgYWRkZWQgdG8gYSBTY2VuZSwgR3JvdXAgb3IgQ29udGFpbmVyLiBZb3UgY2FuXHJcbiAqIHRyZWF0IGl0IGxpa2UgYW55IG90aGVyIEdhbWUgT2JqZWN0IGluIHlvdXIgZ2FtZSwgc3VjaCBhcyB0d2VlbmluZyBpdCwgc2NhbGluZyBpdCwgb3IgZW5hYmxpbmdcclxuICogaXQgZm9yIGlucHV0IG9yIHBoeXNpY3MuIEl0IHByb3ZpZGVzIGEgcXVpY2sgYW5kIGVhc3kgd2F5IGZvciB5b3UgdG8gcmVuZGVyIHRoaXMgc2hhcGUgaW4geW91clxyXG4gKiBnYW1lIHdpdGhvdXQgdXNpbmcgYSB0ZXh0dXJlLCB3aGlsZSBzdGlsbCB0YWtpbmcgYWR2YW50YWdlIG9mIGJlaW5nIGZ1bGx5IGJhdGNoZWQgaW4gV2ViR0wuXHJcbiAqIFxyXG4gKiBUaGlzIHNoYXBlIHN1cHBvcnRzIGJvdGggZmlsbCBhbmQgc3Ryb2tlIGNvbG9ycy5cclxuICogXHJcbiAqIFlvdSBjYW4gY2hhbmdlIHRoZSBzaXplIG9mIHRoZSByZWN0YW5nbGUgYnkgY2hhbmdpbmcgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIHByb3BlcnRpZXMuXHJcbiAqXHJcbiAqIEBjbGFzcyBSZWN0YW5nbGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gQSBHYW1lIE9iamVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIFNjZW5lIGF0IGEgdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IHggLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IHkgLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbd2lkdGg9MTI4XSAtIFRoZSB3aWR0aCBvZiB0aGUgcmVjdGFuZ2xlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2hlaWdodD0xMjhdIC0gVGhlIGhlaWdodCBvZiB0aGUgcmVjdGFuZ2xlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxDb2xvcl0gLSBUaGUgY29sb3IgdGhlIHJlY3RhbmdsZSB3aWxsIGJlIGZpbGxlZCB3aXRoLCBpLmUuIDB4ZmYwMDAwIGZvciByZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbEFscGhhXSAtIFRoZSBhbHBoYSB0aGUgcmVjdGFuZ2xlIHdpbGwgYmUgZmlsbGVkIHdpdGguIFlvdSBjYW4gYWxzbyBzZXQgdGhlIGFscGhhIG9mIHRoZSBvdmVyYWxsIFNoYXBlIHVzaW5nIGl0cyBgYWxwaGFgIHByb3BlcnR5LlxyXG4gKi9cclxudmFyIFJlY3RhbmdsZSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogU2hhcGUsXHJcblxyXG4gICAgTWl4aW5zOiBbXHJcbiAgICAgICAgUmVjdGFuZ2xlUmVuZGVyXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gUmVjdGFuZ2xlIChzY2VuZSwgeCwgeSwgd2lkdGgsIGhlaWdodCwgZmlsbENvbG9yLCBmaWxsQWxwaGEpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHggPT09IHVuZGVmaW5lZCkgeyB4ID0gMDsgfVxyXG4gICAgICAgIGlmICh5ID09PSB1bmRlZmluZWQpIHsgeSA9IDA7IH1cclxuICAgICAgICBpZiAod2lkdGggPT09IHVuZGVmaW5lZCkgeyB3aWR0aCA9IDEyODsgfVxyXG4gICAgICAgIGlmIChoZWlnaHQgPT09IHVuZGVmaW5lZCkgeyBoZWlnaHQgPSAxMjg7IH1cclxuXHJcbiAgICAgICAgU2hhcGUuY2FsbCh0aGlzLCBzY2VuZSwgJ1JlY3RhbmdsZScsIG5ldyBHZW9tUmVjdGFuZ2xlKDAsIDAsIHdpZHRoLCBoZWlnaHQpKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvbih4LCB5KTtcclxuICAgICAgICB0aGlzLnNldFNpemUod2lkdGgsIGhlaWdodCk7XHJcblxyXG4gICAgICAgIGlmIChmaWxsQ29sb3IgIT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RmlsbFN0eWxlKGZpbGxDb2xvciwgZmlsbEFscGhhKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheU9yaWdpbigpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIG1ldGhvZCB0aGF0IHVwZGF0ZXMgdGhlIGRhdGEgYW5kIHBhdGggdmFsdWVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlJlY3RhbmdsZSN1cGRhdGVEYXRhXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZURhdGE6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHBhdGggPSBbXTtcclxuICAgICAgICB2YXIgcmVjdCA9IHRoaXMuZ2VvbTtcclxuICAgICAgICB2YXIgbGluZSA9IHRoaXMuX3RlbXBMaW5lO1xyXG5cclxuICAgICAgICByZWN0LmdldExpbmVBKGxpbmUpO1xyXG5cclxuICAgICAgICBwYXRoLnB1c2gobGluZS54MSwgbGluZS55MSwgbGluZS54MiwgbGluZS55Mik7XHJcblxyXG4gICAgICAgIHJlY3QuZ2V0TGluZUIobGluZSk7XHJcblxyXG4gICAgICAgIHBhdGgucHVzaChsaW5lLngyLCBsaW5lLnkyKTtcclxuXHJcbiAgICAgICAgcmVjdC5nZXRMaW5lQyhsaW5lKTtcclxuXHJcbiAgICAgICAgcGF0aC5wdXNoKGxpbmUueDIsIGxpbmUueTIpO1xyXG5cclxuICAgICAgICByZWN0LmdldExpbmVEKGxpbmUpO1xyXG5cclxuICAgICAgICBwYXRoLnB1c2gobGluZS54MiwgbGluZS55Mik7XHJcblxyXG4gICAgICAgIHRoaXMucGF0aERhdGEgPSBwYXRoO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBSZWN0YW5nbGU7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIEZpbGxTdHlsZUNhbnZhcyA9IHJlcXVpcmUoJy4uL0ZpbGxTdHlsZUNhbnZhcycpO1xyXG52YXIgTGluZVN0eWxlQ2FudmFzID0gcmVxdWlyZSgnLi4vTGluZVN0eWxlQ2FudmFzJyk7XHJcbnZhciBTZXRUcmFuc2Zvcm0gPSByZXF1aXJlKCcuLi8uLi8uLi9yZW5kZXJlci9jYW52YXMvdXRpbHMvU2V0VHJhbnNmb3JtJyk7XHJcblxyXG4vKipcclxuICogUmVuZGVycyB0aGlzIEdhbWUgT2JqZWN0IHdpdGggdGhlIENhbnZhcyBSZW5kZXJlciB0byB0aGUgZ2l2ZW4gQ2FtZXJhLlxyXG4gKiBUaGUgb2JqZWN0IHdpbGwgbm90IHJlbmRlciBpZiBhbnkgb2YgaXRzIHJlbmRlckZsYWdzIGFyZSBzZXQgb3IgaXQgaXMgYmVpbmcgYWN0aXZlbHkgZmlsdGVyZWQgb3V0IGJ5IHRoZSBDYW1lcmEuXHJcbiAqIFRoaXMgbWV0aG9kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LiBJdCBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gb2YgdGhlIFJlbmRlciBtb2R1bGUuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlJlY3RhbmdsZSNyZW5kZXJDYW52YXNcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5DYW52YXMuQ2FudmFzUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIENhbnZhcyByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuUmVjdGFuZ2xlfSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgUmVjdGFuZ2xlQ2FudmFzUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB2YXIgY3R4ID0gcmVuZGVyZXIuY3VycmVudENvbnRleHQ7XHJcblxyXG4gICAgaWYgKFNldFRyYW5zZm9ybShyZW5kZXJlciwgY3R4LCBzcmMsIGNhbWVyYSwgcGFyZW50TWF0cml4KSlcclxuICAgIHtcclxuICAgICAgICB2YXIgZHggPSBzcmMuX2Rpc3BsYXlPcmlnaW5YO1xyXG4gICAgICAgIHZhciBkeSA9IHNyYy5fZGlzcGxheU9yaWdpblk7XHJcblxyXG4gICAgICAgIGlmIChzcmMuaXNGaWxsZWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBGaWxsU3R5bGVDYW52YXMoY3R4LCBzcmMpO1xyXG4gICAgICAgIFxyXG4gICAgICAgICAgICBjdHguZmlsbFJlY3QoXHJcbiAgICAgICAgICAgICAgICAtZHgsXHJcbiAgICAgICAgICAgICAgICAtZHksXHJcbiAgICAgICAgICAgICAgICBzcmMud2lkdGgsXHJcbiAgICAgICAgICAgICAgICBzcmMuaGVpZ2h0XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoc3JjLmlzU3Ryb2tlZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIExpbmVTdHlsZUNhbnZhcyhjdHgsIHNyYyk7XHJcblxyXG4gICAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7XHJcblxyXG4gICAgICAgICAgICBjdHgucmVjdChcclxuICAgICAgICAgICAgICAgIC1keCxcclxuICAgICAgICAgICAgICAgIC1keSxcclxuICAgICAgICAgICAgICAgIHNyYy53aWR0aCxcclxuICAgICAgICAgICAgICAgIHNyYy5oZWlnaHRcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5zdHJva2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vICBSZXN0b3JlIHRoZSBjb250ZXh0IHNhdmVkIGluIFNldFRyYW5zZm9ybVxyXG4gICAgICAgIGN0eC5yZXN0b3JlKCk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFJlY3RhbmdsZUNhbnZhc1JlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uLy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcbnZhciBSZWN0YW5nbGUgPSByZXF1aXJlKCcuL1JlY3RhbmdsZScpO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBuZXcgUmVjdGFuZ2xlIFNoYXBlIEdhbWUgT2JqZWN0IGFuZCBhZGRzIGl0IHRvIHRoZSBTY2VuZS5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgUmVjdGFuZ2xlIEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKiBcclxuICogVGhlIFJlY3RhbmdsZSBTaGFwZSBpcyBhIEdhbWUgT2JqZWN0IHRoYXQgY2FuIGJlIGFkZGVkIHRvIGEgU2NlbmUsIEdyb3VwIG9yIENvbnRhaW5lci4gWW91IGNhblxyXG4gKiB0cmVhdCBpdCBsaWtlIGFueSBvdGhlciBHYW1lIE9iamVjdCBpbiB5b3VyIGdhbWUsIHN1Y2ggYXMgdHdlZW5pbmcgaXQsIHNjYWxpbmcgaXQsIG9yIGVuYWJsaW5nXHJcbiAqIGl0IGZvciBpbnB1dCBvciBwaHlzaWNzLiBJdCBwcm92aWRlcyBhIHF1aWNrIGFuZCBlYXN5IHdheSBmb3IgeW91IHRvIHJlbmRlciB0aGlzIHNoYXBlIGluIHlvdXJcclxuICogZ2FtZSB3aXRob3V0IHVzaW5nIGEgdGV4dHVyZSwgd2hpbGUgc3RpbGwgdGFraW5nIGFkdmFudGFnZSBvZiBiZWluZyBmdWxseSBiYXRjaGVkIGluIFdlYkdMLlxyXG4gKiBcclxuICogVGhpcyBzaGFwZSBzdXBwb3J0cyBib3RoIGZpbGwgYW5kIHN0cm9rZSBjb2xvcnMuXHJcbiAqIFxyXG4gKiBZb3UgY2FuIGNoYW5nZSB0aGUgc2l6ZSBvZiB0aGUgcmVjdGFuZ2xlIGJ5IGNoYW5naW5nIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBwcm9wZXJ0aWVzLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0RmFjdG9yeSNyZWN0YW5nbGVcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3g9MF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt5PTBdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3dpZHRoPTEyOF0gLSBUaGUgd2lkdGggb2YgdGhlIHJlY3RhbmdsZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtoZWlnaHQ9MTI4XSAtIFRoZSBoZWlnaHQgb2YgdGhlIHJlY3RhbmdsZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQ29sb3JdIC0gVGhlIGNvbG9yIHRoZSByZWN0YW5nbGUgd2lsbCBiZSBmaWxsZWQgd2l0aCwgaS5lLiAweGZmMDAwMCBmb3IgcmVkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxBbHBoYV0gLSBUaGUgYWxwaGEgdGhlIHJlY3RhbmdsZSB3aWxsIGJlIGZpbGxlZCB3aXRoLiBZb3UgY2FuIGFsc28gc2V0IHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmFsbCBTaGFwZSB1c2luZyBpdHMgYGFscGhhYCBwcm9wZXJ0eS5cclxuICpcclxuICogQHJldHVybiB7UGhhc2VyLkdhbWVPYmplY3RzLlJlY3RhbmdsZX0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0RmFjdG9yeS5yZWdpc3RlcigncmVjdGFuZ2xlJywgZnVuY3Rpb24gKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZpbGxDb2xvciwgZmlsbEFscGhhKVxyXG57XHJcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5TGlzdC5hZGQobmV3IFJlY3RhbmdsZSh0aGlzLnNjZW5lLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmaWxsQ29sb3IsIGZpbGxBbHBoYSkpO1xyXG59KTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9OT09QJyk7XHJcbnZhciByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9OT09QJyk7XHJcblxyXG5pZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4vUmVjdGFuZ2xlV2ViR0xSZW5kZXJlcicpO1xyXG59XHJcblxyXG5pZiAodHlwZW9mIENBTlZBU19SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi9SZWN0YW5nbGVDYW52YXNSZW5kZXJlcicpO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IHtcclxuXHJcbiAgICByZW5kZXJXZWJHTDogcmVuZGVyV2ViR0wsXHJcbiAgICByZW5kZXJDYW52YXM6IHJlbmRlckNhbnZhc1xyXG5cclxufTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgU3Ryb2tlUGF0aFdlYkdMID0gcmVxdWlyZSgnLi4vU3Ryb2tlUGF0aFdlYkdMJyk7XHJcbnZhciBVdGlscyA9IHJlcXVpcmUoJy4uLy4uLy4uL3JlbmRlcmVyL3dlYmdsL1V0aWxzJyk7XHJcblxyXG4vKipcclxuICogUmVuZGVycyB0aGlzIEdhbWUgT2JqZWN0IHdpdGggdGhlIFdlYkdMIFJlbmRlcmVyIHRvIHRoZSBnaXZlbiBDYW1lcmEuXHJcbiAqIFRoZSBvYmplY3Qgd2lsbCBub3QgcmVuZGVyIGlmIGFueSBvZiBpdHMgcmVuZGVyRmxhZ3MgYXJlIHNldCBvciBpdCBpcyBiZWluZyBhY3RpdmVseSBmaWx0ZXJlZCBvdXQgYnkgdGhlIENhbWVyYS5cclxuICogVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuIEl0IGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBvZiB0aGUgUmVuZGVyIG1vZHVsZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuUmVjdGFuZ2xlI3JlbmRlcldlYkdMXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICogQHByaXZhdGVcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuUmVuZGVyZXIuV2ViR0wuV2ViR0xSZW5kZXJlcn0gcmVuZGVyZXIgLSBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBhY3RpdmUgV2ViR0wgcmVuZGVyZXIuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLlJlY3RhbmdsZX0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIFJlY3RhbmdsZVdlYkdMUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB2YXIgcGlwZWxpbmUgPSB0aGlzLnBpcGVsaW5lO1xyXG5cclxuICAgIHZhciBjYW1NYXRyaXggPSBwaXBlbGluZS5fdGVtcE1hdHJpeDE7XHJcbiAgICB2YXIgc2hhcGVNYXRyaXggPSBwaXBlbGluZS5fdGVtcE1hdHJpeDI7XHJcbiAgICB2YXIgY2FsY01hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MztcclxuXHJcbiAgICByZW5kZXJlci5zZXRQaXBlbGluZShwaXBlbGluZSk7XHJcblxyXG4gICAgc2hhcGVNYXRyaXguYXBwbHlJVFJTKHNyYy54LCBzcmMueSwgc3JjLnJvdGF0aW9uLCBzcmMuc2NhbGVYLCBzcmMuc2NhbGVZKTtcclxuXHJcbiAgICBjYW1NYXRyaXguY29weUZyb20oY2FtZXJhLm1hdHJpeCk7XHJcblxyXG4gICAgaWYgKHBhcmVudE1hdHJpeClcclxuICAgIHtcclxuICAgICAgICAvLyAgTXVsdGlwbHkgdGhlIGNhbWVyYSBieSB0aGUgcGFyZW50IG1hdHJpeFxyXG4gICAgICAgIGNhbU1hdHJpeC5tdWx0aXBseVdpdGhPZmZzZXQocGFyZW50TWF0cml4LCAtY2FtZXJhLnNjcm9sbFggKiBzcmMuc2Nyb2xsRmFjdG9yWCwgLWNhbWVyYS5zY3JvbGxZICogc3JjLnNjcm9sbEZhY3RvclkpO1xyXG5cclxuICAgICAgICAvLyAgVW5kbyB0aGUgY2FtZXJhIHNjcm9sbFxyXG4gICAgICAgIHNoYXBlTWF0cml4LmUgPSBzcmMueDtcclxuICAgICAgICBzaGFwZU1hdHJpeC5mID0gc3JjLnk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgc2hhcGVNYXRyaXguZSAtPSBjYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYO1xyXG4gICAgICAgIHNoYXBlTWF0cml4LmYgLT0gY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWTtcclxuICAgIH1cclxuXHJcbiAgICBjYW1NYXRyaXgubXVsdGlwbHkoc2hhcGVNYXRyaXgsIGNhbGNNYXRyaXgpO1xyXG5cclxuICAgIHZhciBkeCA9IHNyYy5fZGlzcGxheU9yaWdpblg7XHJcbiAgICB2YXIgZHkgPSBzcmMuX2Rpc3BsYXlPcmlnaW5ZO1xyXG4gICAgdmFyIGFscGhhID0gY2FtZXJhLmFscGhhICogc3JjLmFscGhhO1xyXG5cclxuICAgIGlmIChzcmMuaXNGaWxsZWQpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGZpbGxUaW50ID0gcGlwZWxpbmUuZmlsbFRpbnQ7XHJcbiAgICAgICAgdmFyIGZpbGxUaW50Q29sb3IgPSBVdGlscy5nZXRUaW50QXBwZW5kRmxvYXRBbHBoYUFuZFN3YXAoc3JjLmZpbGxDb2xvciwgc3JjLmZpbGxBbHBoYSAqIGFscGhhKTtcclxuICAgIFxyXG4gICAgICAgIGZpbGxUaW50LlRMID0gZmlsbFRpbnRDb2xvcjtcclxuICAgICAgICBmaWxsVGludC5UUiA9IGZpbGxUaW50Q29sb3I7XHJcbiAgICAgICAgZmlsbFRpbnQuQkwgPSBmaWxsVGludENvbG9yO1xyXG4gICAgICAgIGZpbGxUaW50LkJSID0gZmlsbFRpbnRDb2xvcjtcclxuXHJcbiAgICAgICAgcGlwZWxpbmUuc2V0VGV4dHVyZTJEKCk7XHJcblxyXG4gICAgICAgIHBpcGVsaW5lLmJhdGNoRmlsbFJlY3QoXHJcbiAgICAgICAgICAgIC1keCxcclxuICAgICAgICAgICAgLWR5LFxyXG4gICAgICAgICAgICBzcmMud2lkdGgsXHJcbiAgICAgICAgICAgIHNyYy5oZWlnaHRcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzcmMuaXNTdHJva2VkKVxyXG4gICAge1xyXG4gICAgICAgIFN0cm9rZVBhdGhXZWJHTChwaXBlbGluZSwgc3JjLCBhbHBoYSwgZHgsIGR5KTtcclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUmVjdGFuZ2xlV2ViR0xSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgU3RhclJlbmRlciA9IHJlcXVpcmUoJy4vU3RhclJlbmRlcicpO1xyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgRWFyY3V0ID0gcmVxdWlyZSgnLi4vLi4vLi4vZ2VvbS9wb2x5Z29uL0VhcmN1dCcpO1xyXG52YXIgU2hhcGUgPSByZXF1aXJlKCcuLi9TaGFwZScpO1xyXG5cclxuLyoqXHJcbiAqIEBjbGFzc2Rlc2NcclxuICogVGhlIFN0YXIgU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgYm90aCBmaWxsIGFuZCBzdHJva2UgY29sb3JzLlxyXG4gKiBcclxuICogQXMgdGhlIG5hbWUgaW1wbGllcywgdGhlIFN0YXIgc2hhcGUgd2lsbCBkaXNwbGF5IGEgc3RhciBpbiB5b3VyIGdhbWUuIFlvdSBjYW4gY29udHJvbCBzZXZlcmFsXHJcbiAqIGFzcGVjdHMgb2YgaXQgaW5jbHVkaW5nIHRoZSBudW1iZXIgb2YgcG9pbnRzIHRoYXQgY29uc3RpdHV0ZSB0aGUgc3Rhci4gVGhlIGRlZmF1bHQgaXMgNS4gSWZcclxuICogeW91IGNoYW5nZSBpdCB0byA0IGl0IHdpbGwgcmVuZGVyIGFzIGEgZGlhbW9uZC4gSWYgeW91IGluY3JlYXNlIHRoZW0sIHlvdSdsbCBnZXQgYSBtb3JlIHNwaWt5XHJcbiAqIHN0YXIgc2hhcGUuXHJcbiAqIFxyXG4gKiBZb3UgY2FuIGFsc28gY29udHJvbCB0aGUgaW5uZXIgYW5kIG91dGVyIHJhZGl1cywgd2hpY2ggaXMgaG93ICdsb25nJyBlYWNoIHBvaW50IG9mIHRoZSBzdGFyIGlzLlxyXG4gKiBNb2RpZnkgdGhlc2UgdmFsdWVzIHRvIGNyZWF0ZSBtb3JlIGludGVyZXN0aW5nIHNoYXBlcy5cclxuICpcclxuICogQGNsYXNzIFN0YXJcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLlNoYXBlXHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtQaGFzZXIuU2NlbmV9IHNjZW5lIC0gVGhlIFNjZW5lIHRvIHdoaWNoIHRoaXMgR2FtZSBPYmplY3QgYmVsb25ncy4gQSBHYW1lIE9iamVjdCBjYW4gb25seSBiZWxvbmcgdG8gb25lIFNjZW5lIGF0IGEgdGltZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtwb2ludHM9NV0gLSBUaGUgbnVtYmVyIG9mIHBvaW50cyBvbiB0aGUgc3Rhci5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtpbm5lclJhZGl1cz0zMl0gLSBUaGUgaW5uZXIgcmFkaXVzIG9mIHRoZSBzdGFyLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW291dGVyUmFkaXVzPTY0XSAtIFRoZSBvdXRlciByYWRpdXMgb2YgdGhlIHN0YXIuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbENvbG9yXSAtIFRoZSBjb2xvciB0aGUgc3RhciB3aWxsIGJlIGZpbGxlZCB3aXRoLCBpLmUuIDB4ZmYwMDAwIGZvciByZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbEFscGhhXSAtIFRoZSBhbHBoYSB0aGUgc3RhciB3aWxsIGJlIGZpbGxlZCB3aXRoLiBZb3UgY2FuIGFsc28gc2V0IHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmFsbCBTaGFwZSB1c2luZyBpdHMgYGFscGhhYCBwcm9wZXJ0eS5cclxuICovXHJcbnZhciBTdGFyID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBFeHRlbmRzOiBTaGFwZSxcclxuXHJcbiAgICBNaXhpbnM6IFtcclxuICAgICAgICBTdGFyUmVuZGVyXHJcbiAgICBdLFxyXG5cclxuICAgIGluaXRpYWxpemU6XHJcblxyXG4gICAgZnVuY3Rpb24gU3RhciAoc2NlbmUsIHgsIHksIHBvaW50cywgaW5uZXJSYWRpdXMsIG91dGVyUmFkaXVzLCBmaWxsQ29sb3IsIGZpbGxBbHBoYSlcclxuICAgIHtcclxuICAgICAgICBpZiAoeCA9PT0gdW5kZWZpbmVkKSB7IHggPSAwOyB9XHJcbiAgICAgICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgeyB5ID0gMDsgfVxyXG4gICAgICAgIGlmIChwb2ludHMgPT09IHVuZGVmaW5lZCkgeyBwb2ludHMgPSA1OyB9XHJcbiAgICAgICAgaWYgKGlubmVyUmFkaXVzID09PSB1bmRlZmluZWQpIHsgaW5uZXJSYWRpdXMgPSAzMjsgfVxyXG4gICAgICAgIGlmIChvdXRlclJhZGl1cyA9PT0gdW5kZWZpbmVkKSB7IG91dGVyUmFkaXVzID0gNjQ7IH1cclxuXHJcbiAgICAgICAgU2hhcGUuY2FsbCh0aGlzLCBzY2VuZSwgJ1N0YXInLCBudWxsKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS5cclxuICAgICAgICAgKiBUaGUgbnVtYmVyIG9mIHBvaW50cyBpbiB0aGUgc3Rhci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TdGFyI19wb2ludHNcclxuICAgICAgICAgKiBAdHlwZSB7aW50ZWdlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9wb2ludHMgPSBwb2ludHM7XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFByaXZhdGUgaW50ZXJuYWwgdmFsdWUuXHJcbiAgICAgICAgICogVGhlIGlubmVyIHJhZGl1cyBvZiB0aGUgc3Rhci5cclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TdGFyI19pbm5lclJhZGl1c1xyXG4gICAgICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgICAgICogQHByaXZhdGVcclxuICAgICAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5faW5uZXJSYWRpdXMgPSBpbm5lclJhZGl1cztcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUHJpdmF0ZSBpbnRlcm5hbCB2YWx1ZS5cclxuICAgICAgICAgKiBUaGUgb3V0ZXIgcmFkaXVzIG9mIHRoZSBzdGFyLlxyXG4gICAgICAgICAqXHJcbiAgICAgICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlN0YXIjX291dGVyUmFkaXVzXHJcbiAgICAgICAgICogQHR5cGUge251bWJlcn1cclxuICAgICAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLl9vdXRlclJhZGl1cyA9IG91dGVyUmFkaXVzO1xyXG5cclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIHRoaXMuc2V0U2l6ZShvdXRlclJhZGl1cyAqIDIsIG91dGVyUmFkaXVzICogMik7XHJcblxyXG4gICAgICAgIGlmIChmaWxsQ29sb3IgIT09IHVuZGVmaW5lZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RmlsbFN0eWxlKGZpbGxDb2xvciwgZmlsbEFscGhhKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlRGlzcGxheU9yaWdpbigpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIG51bWJlciBvZiBwb2ludHMgdGhhdCBtYWtlIHVwIHRoZSBTdGFyIHNoYXBlLlxyXG4gICAgICogVGhpcyBjYWxsIGNhbiBiZSBjaGFpbmVkLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlN0YXIjc2V0UG9pbnRzXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gdmFsdWUgLSBUaGUgYW1vdW50IG9mIHBvaW50cyB0aGUgU3RhciB3aWxsIGhhdmUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0UG9pbnRzOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fcG9pbnRzID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZURhdGEoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBpbm5lciByYWRpdXMgb2YgdGhlIFN0YXIgc2hhcGUuXHJcbiAgICAgKiBUaGlzIGNhbGwgY2FuIGJlIGNoYWluZWQuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU3RhciNzZXRJbm5lclJhZGl1c1xyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgLSBUaGUgYW1vdW50IHRvIHNldCB0aGUgaW5uZXIgcmFkaXVzIHRvLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHNldElubmVyUmFkaXVzOiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5faW5uZXJSYWRpdXMgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlRGF0YSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIG91dGVyIHJhZGl1cyBvZiB0aGUgU3RhciBzaGFwZS5cclxuICAgICAqIFRoaXMgY2FsbCBjYW4gYmUgY2hhaW5lZC5cclxuICAgICAqXHJcbiAgICAgKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5TdGFyI3NldE91dGVyUmFkaXVzXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSBhbW91bnQgdG8gc2V0IHRoZSBvdXRlciByYWRpdXMgdG8uXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0T3V0ZXJSYWRpdXM6IGZ1bmN0aW9uICh2YWx1ZSlcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vdXRlclJhZGl1cyA9IHZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVEYXRhKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG51bWJlciBvZiBwb2ludHMgdGhhdCBtYWtlIHVwIHRoZSBTdGFyIHNoYXBlLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TdGFyI3BvaW50c1xyXG4gICAgICogQHR5cGUge2ludGVnZXJ9XHJcbiAgICAgKiBAZGVmYXVsdCA1XHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKi9cclxuICAgIHBvaW50czoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcG9pbnRzO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fcG9pbnRzID0gdmFsdWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBpbm5lciByYWRpdXMgb2YgdGhlIFN0YXIgc2hhcGUuXHJcbiAgICAgKlxyXG4gICAgICogQG5hbWUgUGhhc2VyLkdhbWVPYmplY3RzLlN0YXIjaW5uZXJSYWRpdXNcclxuICAgICAqIEB0eXBlIHtudW1iZXJ9XHJcbiAgICAgKiBAZGVmYXVsdCAzMlxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICovXHJcbiAgICBpbm5lclJhZGl1czoge1xyXG5cclxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faW5uZXJSYWRpdXM7XHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9pbm5lclJhZGl1cyA9IHZhbHVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgb3V0ZXIgcmFkaXVzIG9mIHRoZSBTdGFyIHNoYXBlLlxyXG4gICAgICpcclxuICAgICAqIEBuYW1lIFBoYXNlci5HYW1lT2JqZWN0cy5TdGFyI291dGVyUmFkaXVzXHJcbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxyXG4gICAgICogQGRlZmF1bHQgNjRcclxuICAgICAqIEBzaW5jZSAzLjEzLjBcclxuICAgICAqL1xyXG4gICAgb3V0ZXJSYWRpdXM6IHtcclxuXHJcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX291dGVyUmFkaXVzO1xyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fb3V0ZXJSYWRpdXMgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgbWV0aG9kIHRoYXQgdXBkYXRlcyB0aGUgZGF0YSBhbmQgcGF0aCB2YWx1ZXMuXHJcbiAgICAgKlxyXG4gICAgICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU3RhciN1cGRhdGVEYXRhXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogQHNpbmNlIDMuMTMuMFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm4ge3RoaXN9IFRoaXMgR2FtZSBPYmplY3QgaW5zdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHVwZGF0ZURhdGE6IGZ1bmN0aW9uICgpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIHBhdGggPSBbXTtcclxuXHJcbiAgICAgICAgdmFyIHBvaW50cyA9IHRoaXMuX3BvaW50cztcclxuICAgICAgICB2YXIgaW5uZXJSYWRpdXMgPSB0aGlzLl9pbm5lclJhZGl1cztcclxuICAgICAgICB2YXIgb3V0ZXJSYWRpdXMgPSB0aGlzLl9vdXRlclJhZGl1cztcclxuXHJcbiAgICAgICAgdmFyIHJvdCA9IE1hdGguUEkgLyAyICogMztcclxuICAgICAgICB2YXIgc3RlcCA9IE1hdGguUEkgLyBwb2ludHM7XHJcblxyXG4gICAgICAgIC8vICBTbyBvcmlnaW4gMC41ID0gdGhlIGNlbnRlciBvZiB0aGUgc3RhclxyXG4gICAgICAgIHZhciB4ID0gb3V0ZXJSYWRpdXM7XHJcbiAgICAgICAgdmFyIHkgPSBvdXRlclJhZGl1cztcclxuICAgIFxyXG4gICAgICAgIHBhdGgucHVzaCh4LCB5ICsgLW91dGVyUmFkaXVzKTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb2ludHM7IGkrKylcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHBhdGgucHVzaCh4ICsgTWF0aC5jb3Mocm90KSAqIG91dGVyUmFkaXVzLCB5ICsgTWF0aC5zaW4ocm90KSAqIG91dGVyUmFkaXVzKTtcclxuXHJcbiAgICAgICAgICAgIHJvdCArPSBzdGVwO1xyXG5cclxuICAgICAgICAgICAgcGF0aC5wdXNoKHggKyBNYXRoLmNvcyhyb3QpICogaW5uZXJSYWRpdXMsIHkgKyBNYXRoLnNpbihyb3QpICogaW5uZXJSYWRpdXMpO1xyXG4gICAgXHJcbiAgICAgICAgICAgIHJvdCArPSBzdGVwO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcGF0aC5wdXNoKHgsIHkgKyAtb3V0ZXJSYWRpdXMpO1xyXG5cclxuICAgICAgICB0aGlzLnBhdGhJbmRleGVzID0gRWFyY3V0KHBhdGgpO1xyXG4gICAgICAgIHRoaXMucGF0aERhdGEgPSBwYXRoO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbn0pO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTdGFyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBGaWxsU3R5bGVDYW52YXMgPSByZXF1aXJlKCcuLi9GaWxsU3R5bGVDYW52YXMnKTtcclxudmFyIExpbmVTdHlsZUNhbnZhcyA9IHJlcXVpcmUoJy4uL0xpbmVTdHlsZUNhbnZhcycpO1xyXG52YXIgU2V0VHJhbnNmb3JtID0gcmVxdWlyZSgnLi4vLi4vLi4vcmVuZGVyZXIvY2FudmFzL3V0aWxzL1NldFRyYW5zZm9ybScpO1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlcnMgdGhpcyBHYW1lIE9iamVjdCB3aXRoIHRoZSBDYW52YXMgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5TdGFyI3JlbmRlckNhbnZhc1xyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLkNhbnZhcy5DYW52YXNSZW5kZXJlcn0gcmVuZGVyZXIgLSBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBhY3RpdmUgQ2FudmFzIHJlbmRlcmVyLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5TdGFyfSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgU3RhckNhbnZhc1JlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgdmFyIGN0eCA9IHJlbmRlcmVyLmN1cnJlbnRDb250ZXh0O1xyXG5cclxuICAgIGlmIChTZXRUcmFuc2Zvcm0ocmVuZGVyZXIsIGN0eCwgc3JjLCBjYW1lcmEsIHBhcmVudE1hdHJpeCkpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGR4ID0gc3JjLl9kaXNwbGF5T3JpZ2luWDtcclxuICAgICAgICB2YXIgZHkgPSBzcmMuX2Rpc3BsYXlPcmlnaW5ZO1xyXG5cclxuICAgICAgICB2YXIgcGF0aCA9IHNyYy5wYXRoRGF0YTtcclxuICAgICAgICB2YXIgcGF0aExlbmd0aCA9IHBhdGgubGVuZ3RoIC0gMTtcclxuICAgIFxyXG4gICAgICAgIHZhciBweDEgPSBwYXRoWzBdIC0gZHg7XHJcbiAgICAgICAgdmFyIHB5MSA9IHBhdGhbMV0gLSBkeTtcclxuXHJcbiAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xyXG5cclxuICAgICAgICBjdHgubW92ZVRvKHB4MSwgcHkxKTtcclxuICAgIFxyXG4gICAgICAgIGlmICghc3JjLmNsb3NlUGF0aClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHBhdGhMZW5ndGggLT0gMjtcclxuICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICBmb3IgKHZhciBpID0gMjsgaSA8IHBhdGhMZW5ndGg7IGkgKz0gMilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhciBweDIgPSBwYXRoW2ldIC0gZHg7XHJcbiAgICAgICAgICAgIHZhciBweTIgPSBwYXRoW2kgKyAxXSAtIGR5O1xyXG4gICAgXHJcbiAgICAgICAgICAgIGN0eC5saW5lVG8ocHgyLCBweTIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY3R4LmNsb3NlUGF0aCgpO1xyXG5cclxuICAgICAgICBpZiAoc3JjLmlzRmlsbGVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgRmlsbFN0eWxlQ2FudmFzKGN0eCwgc3JjKTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5maWxsKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoc3JjLmlzU3Ryb2tlZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIExpbmVTdHlsZUNhbnZhcyhjdHgsIHNyYyk7XHJcblxyXG4gICAgICAgICAgICBjdHguc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgUmVzdG9yZSB0aGUgY29udGV4dCBzYXZlZCBpbiBTZXRUcmFuc2Zvcm1cclxuICAgICAgICBjdHgucmVzdG9yZSgpO1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTdGFyQ2FudmFzUmVuZGVyZXI7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIFN0YXIgPSByZXF1aXJlKCcuL1N0YXInKTtcclxudmFyIEdhbWVPYmplY3RGYWN0b3J5ID0gcmVxdWlyZSgnLi4vLi4vR2FtZU9iamVjdEZhY3RvcnknKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IFN0YXIgU2hhcGUgR2FtZSBPYmplY3QgYW5kIGFkZHMgaXQgdG8gdGhlIFNjZW5lLlxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlIGlmIHRoZSBTdGFyIEdhbWUgT2JqZWN0IGhhcyBiZWVuIGJ1aWx0IGludG8gUGhhc2VyLlxyXG4gKiBcclxuICogVGhlIFN0YXIgU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgYm90aCBmaWxsIGFuZCBzdHJva2UgY29sb3JzLlxyXG4gKiBcclxuICogQXMgdGhlIG5hbWUgaW1wbGllcywgdGhlIFN0YXIgc2hhcGUgd2lsbCBkaXNwbGF5IGEgc3RhciBpbiB5b3VyIGdhbWUuIFlvdSBjYW4gY29udHJvbCBzZXZlcmFsXHJcbiAqIGFzcGVjdHMgb2YgaXQgaW5jbHVkaW5nIHRoZSBudW1iZXIgb2YgcG9pbnRzIHRoYXQgY29uc3RpdHV0ZSB0aGUgc3Rhci4gVGhlIGRlZmF1bHQgaXMgNS4gSWZcclxuICogeW91IGNoYW5nZSBpdCB0byA0IGl0IHdpbGwgcmVuZGVyIGFzIGEgZGlhbW9uZC4gSWYgeW91IGluY3JlYXNlIHRoZW0sIHlvdSdsbCBnZXQgYSBtb3JlIHNwaWt5XHJcbiAqIHN0YXIgc2hhcGUuXHJcbiAqIFxyXG4gKiBZb3UgY2FuIGFsc28gY29udHJvbCB0aGUgaW5uZXIgYW5kIG91dGVyIHJhZGl1cywgd2hpY2ggaXMgaG93ICdsb25nJyBlYWNoIHBvaW50IG9mIHRoZSBzdGFyIGlzLlxyXG4gKiBNb2RpZnkgdGhlc2UgdmFsdWVzIHRvIGNyZWF0ZSBtb3JlIGludGVyZXN0aW5nIHNoYXBlcy5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuR2FtZU9iamVjdEZhY3Rvcnkjc3RhclxyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeD0wXSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3k9MF0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbcG9pbnRzPTVdIC0gVGhlIG51bWJlciBvZiBwb2ludHMgb24gdGhlIHN0YXIuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbaW5uZXJSYWRpdXM9MzJdIC0gVGhlIGlubmVyIHJhZGl1cyBvZiB0aGUgc3Rhci5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtvdXRlclJhZGl1cz02NF0gLSBUaGUgb3V0ZXIgcmFkaXVzIG9mIHRoZSBzdGFyLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxDb2xvcl0gLSBUaGUgY29sb3IgdGhlIHN0YXIgd2lsbCBiZSBmaWxsZWQgd2l0aCwgaS5lLiAweGZmMDAwMCBmb3IgcmVkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxBbHBoYV0gLSBUaGUgYWxwaGEgdGhlIHN0YXIgd2lsbCBiZSBmaWxsZWQgd2l0aC4gWW91IGNhbiBhbHNvIHNldCB0aGUgYWxwaGEgb2YgdGhlIG92ZXJhbGwgU2hhcGUgdXNpbmcgaXRzIGBhbHBoYWAgcHJvcGVydHkuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5TdGFyfSBUaGUgR2FtZSBPYmplY3QgdGhhdCB3YXMgY3JlYXRlZC5cclxuICovXHJcbkdhbWVPYmplY3RGYWN0b3J5LnJlZ2lzdGVyKCdzdGFyJywgZnVuY3Rpb24gKHgsIHksIHBvaW50cywgaW5uZXJSYWRpdXMsIG91dGVyUmFkaXVzLCBmaWxsQ29sb3IsIGZpbGxBbHBoYSlcclxue1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUxpc3QuYWRkKG5ldyBTdGFyKHRoaXMuc2NlbmUsIHgsIHksIHBvaW50cywgaW5uZXJSYWRpdXMsIG91dGVyUmFkaXVzLCBmaWxsQ29sb3IsIGZpbGxBbHBoYSkpO1xyXG59KTtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9OT09QJyk7XHJcbnZhciByZW5kZXJDYW52YXMgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9OT09QJyk7XHJcblxyXG5pZiAodHlwZW9mIFdFQkdMX1JFTkRFUkVSKVxyXG57XHJcbiAgICByZW5kZXJXZWJHTCA9IHJlcXVpcmUoJy4vU3RhcldlYkdMUmVuZGVyZXInKTtcclxufVxyXG5cclxuaWYgKHR5cGVvZiBDQU5WQVNfUkVOREVSRVIpXHJcbntcclxuICAgIHJlbmRlckNhbnZhcyA9IHJlcXVpcmUoJy4vU3RhckNhbnZhc1JlbmRlcmVyJyk7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIHJlbmRlcldlYkdMOiByZW5kZXJXZWJHTCxcclxuICAgIHJlbmRlckNhbnZhczogcmVuZGVyQ2FudmFzXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBGaWxsUGF0aFdlYkdMID0gcmVxdWlyZSgnLi4vRmlsbFBhdGhXZWJHTCcpO1xyXG52YXIgU3Ryb2tlUGF0aFdlYkdMID0gcmVxdWlyZSgnLi4vU3Ryb2tlUGF0aFdlYkdMJyk7XHJcblxyXG4vKipcclxuICogUmVuZGVycyB0aGlzIEdhbWUgT2JqZWN0IHdpdGggdGhlIFdlYkdMIFJlbmRlcmVyIHRvIHRoZSBnaXZlbiBDYW1lcmEuXHJcbiAqIFRoZSBvYmplY3Qgd2lsbCBub3QgcmVuZGVyIGlmIGFueSBvZiBpdHMgcmVuZGVyRmxhZ3MgYXJlIHNldCBvciBpdCBpcyBiZWluZyBhY3RpdmVseSBmaWx0ZXJlZCBvdXQgYnkgdGhlIENhbWVyYS5cclxuICogVGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuIEl0IGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBvZiB0aGUgUmVuZGVyIG1vZHVsZS5cclxuICpcclxuICogQG1ldGhvZCBQaGFzZXIuR2FtZU9iamVjdHMuU3RhciNyZW5kZXJXZWJHTFxyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLldlYkdMLldlYkdMUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIFdlYkdMIHJlbmRlcmVyLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5TdGFyfSBzcmMgLSBUaGUgR2FtZSBPYmplY3QgYmVpbmcgcmVuZGVyZWQgaW4gdGhpcyBjYWxsLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UgLSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSBhbmQgY3VzdG9tIHBpcGVsaW5lcy5cclxuICogQHBhcmFtIHtQaGFzZXIuQ2FtZXJhcy5TY2VuZTJELkNhbWVyYX0gY2FtZXJhIC0gVGhlIENhbWVyYSB0aGF0IGlzIHJlbmRlcmluZyB0aGUgR2FtZSBPYmplY3QuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVHJhbnNmb3JtTWF0cml4fSBwYXJlbnRNYXRyaXggLSBUaGlzIHRyYW5zZm9ybSBtYXRyaXggaXMgZGVmaW5lZCBpZiB0aGUgZ2FtZSBvYmplY3QgaXMgbmVzdGVkXHJcbiAqL1xyXG52YXIgU3RhcldlYkdMUmVuZGVyZXIgPSBmdW5jdGlvbiAocmVuZGVyZXIsIHNyYywgaW50ZXJwb2xhdGlvblBlcmNlbnRhZ2UsIGNhbWVyYSwgcGFyZW50TWF0cml4KVxyXG57XHJcbiAgICB2YXIgcGlwZWxpbmUgPSB0aGlzLnBpcGVsaW5lO1xyXG5cclxuICAgIHZhciBjYW1NYXRyaXggPSBwaXBlbGluZS5fdGVtcE1hdHJpeDE7XHJcbiAgICB2YXIgc2hhcGVNYXRyaXggPSBwaXBlbGluZS5fdGVtcE1hdHJpeDI7XHJcbiAgICB2YXIgY2FsY01hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MztcclxuXHJcbiAgICByZW5kZXJlci5zZXRQaXBlbGluZShwaXBlbGluZSk7XHJcblxyXG4gICAgc2hhcGVNYXRyaXguYXBwbHlJVFJTKHNyYy54LCBzcmMueSwgc3JjLnJvdGF0aW9uLCBzcmMuc2NhbGVYLCBzcmMuc2NhbGVZKTtcclxuXHJcbiAgICBjYW1NYXRyaXguY29weUZyb20oY2FtZXJhLm1hdHJpeCk7XHJcblxyXG4gICAgaWYgKHBhcmVudE1hdHJpeClcclxuICAgIHtcclxuICAgICAgICAvLyAgTXVsdGlwbHkgdGhlIGNhbWVyYSBieSB0aGUgcGFyZW50IG1hdHJpeFxyXG4gICAgICAgIGNhbU1hdHJpeC5tdWx0aXBseVdpdGhPZmZzZXQocGFyZW50TWF0cml4LCAtY2FtZXJhLnNjcm9sbFggKiBzcmMuc2Nyb2xsRmFjdG9yWCwgLWNhbWVyYS5zY3JvbGxZICogc3JjLnNjcm9sbEZhY3RvclkpO1xyXG5cclxuICAgICAgICAvLyAgVW5kbyB0aGUgY2FtZXJhIHNjcm9sbFxyXG4gICAgICAgIHNoYXBlTWF0cml4LmUgPSBzcmMueDtcclxuICAgICAgICBzaGFwZU1hdHJpeC5mID0gc3JjLnk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICAgc2hhcGVNYXRyaXguZSAtPSBjYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYO1xyXG4gICAgICAgIHNoYXBlTWF0cml4LmYgLT0gY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWTtcclxuICAgIH1cclxuXHJcbiAgICBjYW1NYXRyaXgubXVsdGlwbHkoc2hhcGVNYXRyaXgsIGNhbGNNYXRyaXgpO1xyXG5cclxuICAgIHZhciBkeCA9IHNyYy5fZGlzcGxheU9yaWdpblg7XHJcbiAgICB2YXIgZHkgPSBzcmMuX2Rpc3BsYXlPcmlnaW5ZO1xyXG5cclxuICAgIHZhciBhbHBoYSA9IGNhbWVyYS5hbHBoYSAqIHNyYy5hbHBoYTtcclxuXHJcbiAgICBpZiAoc3JjLmlzRmlsbGVkKVxyXG4gICAge1xyXG4gICAgICAgIEZpbGxQYXRoV2ViR0wocGlwZWxpbmUsIGNhbGNNYXRyaXgsIHNyYywgYWxwaGEsIGR4LCBkeSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNyYy5pc1N0cm9rZWQpXHJcbiAgICB7XHJcbiAgICAgICAgU3Ryb2tlUGF0aFdlYkdMKHBpcGVsaW5lLCBzcmMsIGFscGhhLCBkeCwgZHkpO1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTdGFyV2ViR0xSZW5kZXJlcjtcclxuIiwiLyoqXHJcbiAqIEBhdXRob3IgICAgICAgUmljaGFyZCBEYXZleSA8cmljaEBwaG90b25zdG9ybS5jb20+XHJcbiAqIEBjb3B5cmlnaHQgICAgMjAyMCBQaG90b24gU3Rvcm0gTHRkLlxyXG4gKiBAbGljZW5zZSAgICAgIHtAbGluayBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVHxNSVQgTGljZW5zZX1cclxuICovXHJcblxyXG52YXIgQ2xhc3MgPSByZXF1aXJlKCcuLi8uLi8uLi91dGlscy9DbGFzcycpO1xyXG52YXIgU2hhcGUgPSByZXF1aXJlKCcuLi9TaGFwZScpO1xyXG52YXIgR2VvbVRyaWFuZ2xlID0gcmVxdWlyZSgnLi4vLi4vLi4vZ2VvbS90cmlhbmdsZS9UcmlhbmdsZScpO1xyXG52YXIgVHJpYW5nbGVSZW5kZXIgPSByZXF1aXJlKCcuL1RyaWFuZ2xlUmVuZGVyJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBUaGUgVHJpYW5nbGUgU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgYm90aCBmaWxsIGFuZCBzdHJva2UgY29sb3JzLlxyXG4gKiBcclxuICogVGhlIFRyaWFuZ2xlIGNvbnNpc3RzIG9mIDMgbGluZXMsIGpvaW5pbmcgdXAgdG8gZm9ybSBhIHRyaWFuZ3VsYXIgc2hhcGUuIFlvdSBjYW4gY29udHJvbCB0aGVcclxuICogcG9zaXRpb24gb2YgZWFjaCBwb2ludCBvZiB0aGVzZSBsaW5lcy4gVGhlIHRyaWFuZ2xlIGlzIGFsd2F5cyBjbG9zZWQgYW5kIGNhbm5vdCBoYXZlIGFuIG9wZW5cclxuICogZmFjZS4gSWYgeW91IHJlcXVpcmUgdGhhdCwgY29uc2lkZXIgdXNpbmcgYSBQb2x5Z29uIGluc3RlYWQuXHJcbiAqXHJcbiAqIEBjbGFzcyBUcmlhbmdsZVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuU2hhcGVcclxuICogQG1lbWJlcm9mIFBoYXNlci5HYW1lT2JqZWN0c1xyXG4gKiBAY29uc3RydWN0b3JcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBUaGUgU2NlbmUgdG8gd2hpY2ggdGhpcyBHYW1lIE9iamVjdCBiZWxvbmdzLiBBIEdhbWUgT2JqZWN0IGNhbiBvbmx5IGJlbG9uZyB0byBvbmUgU2NlbmUgYXQgYSB0aW1lLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3g9MF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt5PTBdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3gxPTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIGZpcnN0IHBvaW50IGluIHRoZSB0cmlhbmdsZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt5MT0xMjhdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBwb2ludCBpbiB0aGUgdHJpYW5nbGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeDI9NjRdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIHNlY29uZCBwb2ludCBpbiB0aGUgdHJpYW5nbGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeTI9MF0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhlIHNlY29uZCBwb2ludCBpbiB0aGUgdHJpYW5nbGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeDM9MTI4XSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSB0aGlyZCBwb2ludCBpbiB0aGUgdHJpYW5nbGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeTM9MTI4XSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgdGhpcmQgcG9pbnQgaW4gdGhlIHRyaWFuZ2xlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGxDb2xvcl0gLSBUaGUgY29sb3IgdGhlIHRyaWFuZ2xlIHdpbGwgYmUgZmlsbGVkIHdpdGgsIGkuZS4gMHhmZjAwMDAgZm9yIHJlZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQWxwaGFdIC0gVGhlIGFscGhhIHRoZSB0cmlhbmdsZSB3aWxsIGJlIGZpbGxlZCB3aXRoLiBZb3UgY2FuIGFsc28gc2V0IHRoZSBhbHBoYSBvZiB0aGUgb3ZlcmFsbCBTaGFwZSB1c2luZyBpdHMgYGFscGhhYCBwcm9wZXJ0eS5cclxuICovXHJcbnZhciBUcmlhbmdsZSA9IG5ldyBDbGFzcyh7XHJcblxyXG4gICAgRXh0ZW5kczogU2hhcGUsXHJcblxyXG4gICAgTWl4aW5zOiBbXHJcbiAgICAgICAgVHJpYW5nbGVSZW5kZXJcclxuICAgIF0sXHJcblxyXG4gICAgaW5pdGlhbGl6ZTpcclxuXHJcbiAgICBmdW5jdGlvbiBUcmlhbmdsZSAoc2NlbmUsIHgsIHksIHgxLCB5MSwgeDIsIHkyLCB4MywgeTMsIGZpbGxDb2xvciwgZmlsbEFscGhhKVxyXG4gICAge1xyXG4gICAgICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHsgeCA9IDA7IH1cclxuICAgICAgICBpZiAoeSA9PT0gdW5kZWZpbmVkKSB7IHkgPSAwOyB9XHJcbiAgICAgICAgaWYgKHgxID09PSB1bmRlZmluZWQpIHsgeDEgPSAwOyB9XHJcbiAgICAgICAgaWYgKHkxID09PSB1bmRlZmluZWQpIHsgeTEgPSAxMjg7IH1cclxuICAgICAgICBpZiAoeDIgPT09IHVuZGVmaW5lZCkgeyB4MiA9IDY0OyB9XHJcbiAgICAgICAgaWYgKHkyID09PSB1bmRlZmluZWQpIHsgeTIgPSAwOyB9XHJcbiAgICAgICAgaWYgKHgzID09PSB1bmRlZmluZWQpIHsgeDMgPSAxMjg7IH1cclxuICAgICAgICBpZiAoeTMgPT09IHVuZGVmaW5lZCkgeyB5MyA9IDEyODsgfVxyXG5cclxuICAgICAgICBTaGFwZS5jYWxsKHRoaXMsIHNjZW5lLCAnVHJpYW5nbGUnLCBuZXcgR2VvbVRyaWFuZ2xlKHgxLCB5MSwgeDIsIHkyLCB4MywgeTMpKTtcclxuXHJcbiAgICAgICAgdmFyIHdpZHRoID0gdGhpcy5nZW9tLnJpZ2h0IC0gdGhpcy5nZW9tLmxlZnQ7XHJcbiAgICAgICAgdmFyIGhlaWdodCA9IHRoaXMuZ2VvbS5ib3R0b20gLSB0aGlzLmdlb20udG9wO1xyXG5cclxuICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHgsIHkpO1xyXG4gICAgICAgIHRoaXMuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGxDb2xvciAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRGaWxsU3R5bGUoZmlsbENvbG9yLCBmaWxsQWxwaGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5T3JpZ2luKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgZGF0YSBmb3IgdGhlIGxpbmVzIHRoYXQgbWFrZSB1cCB0aGlzIFRyaWFuZ2xlIHNoYXBlLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlRyaWFuZ2xlI3NldFRvXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4MT0wXSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBwb2ludCBpbiB0aGUgdHJpYW5nbGUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3kxPTBdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBwb2ludCBpbiB0aGUgdHJpYW5nbGUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3gyPTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIHNlY29uZCBwb2ludCBpbiB0aGUgdHJpYW5nbGUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3kyPTBdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBzZWNvbmQgcG9pbnQgaW4gdGhlIHRyaWFuZ2xlLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFt4Mz0wXSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSB0aGlyZCBwb2ludCBpbiB0aGUgdHJpYW5nbGUuXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3kzPTBdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSB0aGlyZCBwb2ludCBpbiB0aGUgdHJpYW5nbGUuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgc2V0VG86IGZ1bmN0aW9uICh4MSwgeTEsIHgyLCB5MiwgeDMsIHkzKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZ2VvbS5zZXRUbyh4MSwgeTEsIHgyLCB5MiwgeDMsIHkzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlRGF0YSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEludGVybmFsIG1ldGhvZCB0aGF0IHVwZGF0ZXMgdGhlIGRhdGEgYW5kIHBhdGggdmFsdWVzLlxyXG4gICAgICpcclxuICAgICAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLlRyaWFuZ2xlI3VwZGF0ZURhdGFcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBAc2luY2UgMy4xMy4wXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybiB7dGhpc30gVGhpcyBHYW1lIE9iamVjdCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgdXBkYXRlRGF0YTogZnVuY3Rpb24gKClcclxuICAgIHtcclxuICAgICAgICB2YXIgcGF0aCA9IFtdO1xyXG4gICAgICAgIHZhciB0cmkgPSB0aGlzLmdlb207XHJcbiAgICAgICAgdmFyIGxpbmUgPSB0aGlzLl90ZW1wTGluZTtcclxuXHJcbiAgICAgICAgdHJpLmdldExpbmVBKGxpbmUpO1xyXG5cclxuICAgICAgICBwYXRoLnB1c2gobGluZS54MSwgbGluZS55MSwgbGluZS54MiwgbGluZS55Mik7XHJcblxyXG4gICAgICAgIHRyaS5nZXRMaW5lQihsaW5lKTtcclxuXHJcbiAgICAgICAgcGF0aC5wdXNoKGxpbmUueDIsIGxpbmUueTIpO1xyXG5cclxuICAgICAgICB0cmkuZ2V0TGluZUMobGluZSk7XHJcblxyXG4gICAgICAgIHBhdGgucHVzaChsaW5lLngyLCBsaW5lLnkyKTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXRoRGF0YSA9IHBhdGg7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxufSk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFRyaWFuZ2xlO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBGaWxsU3R5bGVDYW52YXMgPSByZXF1aXJlKCcuLi9GaWxsU3R5bGVDYW52YXMnKTtcclxudmFyIExpbmVTdHlsZUNhbnZhcyA9IHJlcXVpcmUoJy4uL0xpbmVTdHlsZUNhbnZhcycpO1xyXG52YXIgU2V0VHJhbnNmb3JtID0gcmVxdWlyZSgnLi4vLi4vLi4vcmVuZGVyZXIvY2FudmFzL3V0aWxzL1NldFRyYW5zZm9ybScpO1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlcnMgdGhpcyBHYW1lIE9iamVjdCB3aXRoIHRoZSBDYW52YXMgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5UcmlhbmdsZSNyZW5kZXJDYW52YXNcclxuICogQHNpbmNlIDMuMTMuMFxyXG4gKiBAcHJpdmF0ZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5SZW5kZXJlci5DYW52YXMuQ2FudmFzUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIENhbnZhcyByZW5kZXJlci5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuVHJpYW5nbGV9IHNyYyAtIFRoZSBHYW1lIE9iamVjdCBiZWluZyByZW5kZXJlZCBpbiB0aGlzIGNhbGwuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSAtIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIGFuZCBjdXN0b20gcGlwZWxpbmVzLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5DYW1lcmFzLlNjZW5lMkQuQ2FtZXJhfSBjYW1lcmEgLSBUaGUgQ2FtZXJhIHRoYXQgaXMgcmVuZGVyaW5nIHRoZSBHYW1lIE9iamVjdC5cclxuICogQHBhcmFtIHtQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1NYXRyaXh9IHBhcmVudE1hdHJpeCAtIFRoaXMgdHJhbnNmb3JtIG1hdHJpeCBpcyBkZWZpbmVkIGlmIHRoZSBnYW1lIG9iamVjdCBpcyBuZXN0ZWRcclxuICovXHJcbnZhciBUcmlhbmdsZUNhbnZhc1JlbmRlcmVyID0gZnVuY3Rpb24gKHJlbmRlcmVyLCBzcmMsIGludGVycG9sYXRpb25QZXJjZW50YWdlLCBjYW1lcmEsIHBhcmVudE1hdHJpeClcclxue1xyXG4gICAgdmFyIGN0eCA9IHJlbmRlcmVyLmN1cnJlbnRDb250ZXh0O1xyXG5cclxuICAgIGlmIChTZXRUcmFuc2Zvcm0ocmVuZGVyZXIsIGN0eCwgc3JjLCBjYW1lcmEsIHBhcmVudE1hdHJpeCkpXHJcbiAgICB7XHJcbiAgICAgICAgdmFyIGR4ID0gc3JjLl9kaXNwbGF5T3JpZ2luWDtcclxuICAgICAgICB2YXIgZHkgPSBzcmMuX2Rpc3BsYXlPcmlnaW5ZO1xyXG5cclxuICAgICAgICB2YXIgeDEgPSBzcmMuZ2VvbS54MSAtIGR4O1xyXG4gICAgICAgIHZhciB5MSA9IHNyYy5nZW9tLnkxIC0gZHk7XHJcbiAgICAgICAgdmFyIHgyID0gc3JjLmdlb20ueDIgLSBkeDtcclxuICAgICAgICB2YXIgeTIgPSBzcmMuZ2VvbS55MiAtIGR5O1xyXG4gICAgICAgIHZhciB4MyA9IHNyYy5nZW9tLngzIC0gZHg7XHJcbiAgICAgICAgdmFyIHkzID0gc3JjLmdlb20ueTMgLSBkeTtcclxuXHJcbiAgICAgICAgY3R4LmJlZ2luUGF0aCgpO1xyXG5cclxuICAgICAgICBjdHgubW92ZVRvKHgxLCB5MSk7XHJcbiAgICAgICAgY3R4LmxpbmVUbyh4MiwgeTIpO1xyXG4gICAgICAgIGN0eC5saW5lVG8oeDMsIHkzKTtcclxuXHJcbiAgICAgICAgY3R4LmNsb3NlUGF0aCgpO1xyXG5cclxuICAgICAgICBpZiAoc3JjLmlzRmlsbGVkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgRmlsbFN0eWxlQ2FudmFzKGN0eCwgc3JjKTtcclxuXHJcbiAgICAgICAgICAgIGN0eC5maWxsKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoc3JjLmlzU3Ryb2tlZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIExpbmVTdHlsZUNhbnZhcyhjdHgsIHNyYyk7XHJcblxyXG4gICAgICAgICAgICBjdHguc3Ryb2tlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyAgUmVzdG9yZSB0aGUgY29udGV4dCBzYXZlZCBpbiBTZXRUcmFuc2Zvcm1cclxuICAgICAgICBjdHgucmVzdG9yZSgpO1xyXG4gICAgfVxyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBUcmlhbmdsZUNhbnZhc1JlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBHYW1lT2JqZWN0RmFjdG9yeSA9IHJlcXVpcmUoJy4uLy4uL0dhbWVPYmplY3RGYWN0b3J5Jyk7XHJcbnZhciBUcmlhbmdsZSA9IHJlcXVpcmUoJy4vVHJpYW5nbGUnKTtcclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGEgbmV3IFRyaWFuZ2xlIFNoYXBlIEdhbWUgT2JqZWN0IGFuZCBhZGRzIGl0IHRvIHRoZSBTY2VuZS5cclxuICpcclxuICogTm90ZTogVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBpZiB0aGUgVHJpYW5nbGUgR2FtZSBPYmplY3QgaGFzIGJlZW4gYnVpbHQgaW50byBQaGFzZXIuXHJcbiAqIFxyXG4gKiBUaGUgVHJpYW5nbGUgU2hhcGUgaXMgYSBHYW1lIE9iamVjdCB0aGF0IGNhbiBiZSBhZGRlZCB0byBhIFNjZW5lLCBHcm91cCBvciBDb250YWluZXIuIFlvdSBjYW5cclxuICogdHJlYXQgaXQgbGlrZSBhbnkgb3RoZXIgR2FtZSBPYmplY3QgaW4geW91ciBnYW1lLCBzdWNoIGFzIHR3ZWVuaW5nIGl0LCBzY2FsaW5nIGl0LCBvciBlbmFibGluZ1xyXG4gKiBpdCBmb3IgaW5wdXQgb3IgcGh5c2ljcy4gSXQgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSB3YXkgZm9yIHlvdSB0byByZW5kZXIgdGhpcyBzaGFwZSBpbiB5b3VyXHJcbiAqIGdhbWUgd2l0aG91dCB1c2luZyBhIHRleHR1cmUsIHdoaWxlIHN0aWxsIHRha2luZyBhZHZhbnRhZ2Ugb2YgYmVpbmcgZnVsbHkgYmF0Y2hlZCBpbiBXZWJHTC5cclxuICogXHJcbiAqIFRoaXMgc2hhcGUgc3VwcG9ydHMgYm90aCBmaWxsIGFuZCBzdHJva2UgY29sb3JzLlxyXG4gKiBcclxuICogVGhlIFRyaWFuZ2xlIGNvbnNpc3RzIG9mIDMgbGluZXMsIGpvaW5pbmcgdXAgdG8gZm9ybSBhIHRyaWFuZ3VsYXIgc2hhcGUuIFlvdSBjYW4gY29udHJvbCB0aGVcclxuICogcG9zaXRpb24gb2YgZWFjaCBwb2ludCBvZiB0aGVzZSBsaW5lcy4gVGhlIHRyaWFuZ2xlIGlzIGFsd2F5cyBjbG9zZWQgYW5kIGNhbm5vdCBoYXZlIGFuIG9wZW5cclxuICogZmFjZS4gSWYgeW91IHJlcXVpcmUgdGhhdCwgY29uc2lkZXIgdXNpbmcgYSBQb2x5Z29uIGluc3RlYWQuXHJcbiAqXHJcbiAqIEBtZXRob2QgUGhhc2VyLkdhbWVPYmplY3RzLkdhbWVPYmplY3RGYWN0b3J5I3RyaWFuZ2xlXHJcbiAqIEBzaW5jZSAzLjEzLjBcclxuICpcclxuICogQHBhcmFtIHtudW1iZXJ9IFt4PTBdIC0gVGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhpcyBHYW1lIE9iamVjdCBpbiB0aGUgd29ybGQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeT0wXSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtudW1iZXJ9IFt4MT0wXSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBwb2ludCBpbiB0aGUgdHJpYW5nbGUuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbeTE9MTI4XSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgZmlyc3QgcG9pbnQgaW4gdGhlIHRyaWFuZ2xlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3gyPTY0XSAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSBzZWNvbmQgcG9pbnQgaW4gdGhlIHRyaWFuZ2xlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3kyPTBdIC0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSBzZWNvbmQgcG9pbnQgaW4gdGhlIHRyaWFuZ2xlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3gzPTEyOF0gLSBUaGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgdGhpcmQgcG9pbnQgaW4gdGhlIHRyaWFuZ2xlLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gW3kzPTEyOF0gLSBUaGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhlIHRoaXJkIHBvaW50IGluIHRoZSB0cmlhbmdsZS5cclxuICogQHBhcmFtIHtudW1iZXJ9IFtmaWxsQ29sb3JdIC0gVGhlIGNvbG9yIHRoZSB0cmlhbmdsZSB3aWxsIGJlIGZpbGxlZCB3aXRoLCBpLmUuIDB4ZmYwMDAwIGZvciByZWQuXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbEFscGhhXSAtIFRoZSBhbHBoYSB0aGUgdHJpYW5nbGUgd2lsbCBiZSBmaWxsZWQgd2l0aC4gWW91IGNhbiBhbHNvIHNldCB0aGUgYWxwaGEgb2YgdGhlIG92ZXJhbGwgU2hhcGUgdXNpbmcgaXRzIGBhbHBoYWAgcHJvcGVydHkuXHJcbiAqXHJcbiAqIEByZXR1cm4ge1BoYXNlci5HYW1lT2JqZWN0cy5UcmlhbmdsZX0gVGhlIEdhbWUgT2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuXHJcbiAqL1xyXG5HYW1lT2JqZWN0RmFjdG9yeS5yZWdpc3RlcigndHJpYW5nbGUnLCBmdW5jdGlvbiAoeCwgeSwgeDEsIHkxLCB4MiwgeTIsIHgzLCB5MywgZmlsbENvbG9yLCBmaWxsQWxwaGEpXHJcbntcclxuICAgIHJldHVybiB0aGlzLmRpc3BsYXlMaXN0LmFkZChuZXcgVHJpYW5nbGUodGhpcy5zY2VuZSwgeCwgeSwgeDEsIHkxLCB4MiwgeTIsIHgzLCB5MywgZmlsbENvbG9yLCBmaWxsQWxwaGEpKTtcclxufSk7XHJcbiIsIi8qKlxyXG4gKiBAYXV0aG9yICAgICAgIFJpY2hhcmQgRGF2ZXkgPHJpY2hAcGhvdG9uc3Rvcm0uY29tPlxyXG4gKiBAY29weXJpZ2h0ICAgIDIwMjAgUGhvdG9uIFN0b3JtIEx0ZC5cclxuICogQGxpY2Vuc2UgICAgICB7QGxpbmsgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVR8TUlUIExpY2Vuc2V9XHJcbiAqL1xyXG5cclxudmFyIHJlbmRlcldlYkdMID0gcmVxdWlyZSgnLi4vLi4vLi4vdXRpbHMvTk9PUCcpO1xyXG52YXIgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi4vLi4vLi4vdXRpbHMvTk9PUCcpO1xyXG5cclxuaWYgKHR5cGVvZiBXRUJHTF9SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyV2ViR0wgPSByZXF1aXJlKCcuL1RyaWFuZ2xlV2ViR0xSZW5kZXJlcicpO1xyXG59XHJcblxyXG5pZiAodHlwZW9mIENBTlZBU19SRU5ERVJFUilcclxue1xyXG4gICAgcmVuZGVyQ2FudmFzID0gcmVxdWlyZSgnLi9UcmlhbmdsZUNhbnZhc1JlbmRlcmVyJyk7XHJcbn1cclxuXHJcbm1vZHVsZS5leHBvcnRzID0ge1xyXG5cclxuICAgIHJlbmRlcldlYkdMOiByZW5kZXJXZWJHTCxcclxuICAgIHJlbmRlckNhbnZhczogcmVuZGVyQ2FudmFzXHJcblxyXG59O1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBTdHJva2VQYXRoV2ViR0wgPSByZXF1aXJlKCcuLi9TdHJva2VQYXRoV2ViR0wnKTtcclxudmFyIFV0aWxzID0gcmVxdWlyZSgnLi4vLi4vLi4vcmVuZGVyZXIvd2ViZ2wvVXRpbHMnKTtcclxuXHJcbi8qKlxyXG4gKiBSZW5kZXJzIHRoaXMgR2FtZSBPYmplY3Qgd2l0aCB0aGUgV2ViR0wgUmVuZGVyZXIgdG8gdGhlIGdpdmVuIENhbWVyYS5cclxuICogVGhlIG9iamVjdCB3aWxsIG5vdCByZW5kZXIgaWYgYW55IG9mIGl0cyByZW5kZXJGbGFncyBhcmUgc2V0IG9yIGl0IGlzIGJlaW5nIGFjdGl2ZWx5IGZpbHRlcmVkIG91dCBieSB0aGUgQ2FtZXJhLlxyXG4gKiBUaGlzIG1ldGhvZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4gSXQgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIG9mIHRoZSBSZW5kZXIgbW9kdWxlLlxyXG4gKlxyXG4gKiBAbWV0aG9kIFBoYXNlci5HYW1lT2JqZWN0cy5UcmlhbmdsZSNyZW5kZXJXZWJHTFxyXG4gKiBAc2luY2UgMy4xMy4wXHJcbiAqIEBwcml2YXRlXHJcbiAqXHJcbiAqIEBwYXJhbSB7UGhhc2VyLlJlbmRlcmVyLldlYkdMLldlYkdMUmVuZGVyZXJ9IHJlbmRlcmVyIC0gQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgYWN0aXZlIFdlYkdMIHJlbmRlcmVyLlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5UcmlhbmdsZX0gc3JjIC0gVGhlIEdhbWUgT2JqZWN0IGJlaW5nIHJlbmRlcmVkIGluIHRoaXMgY2FsbC5cclxuICogQHBhcmFtIHtudW1iZXJ9IGludGVycG9sYXRpb25QZXJjZW50YWdlIC0gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIGN1c3RvbSBwaXBlbGluZXMuXHJcbiAqIEBwYXJhbSB7UGhhc2VyLkNhbWVyYXMuU2NlbmUyRC5DYW1lcmF9IGNhbWVyYSAtIFRoZSBDYW1lcmEgdGhhdCBpcyByZW5kZXJpbmcgdGhlIEdhbWUgT2JqZWN0LlxyXG4gKiBAcGFyYW0ge1BoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlRyYW5zZm9ybU1hdHJpeH0gcGFyZW50TWF0cml4IC0gVGhpcyB0cmFuc2Zvcm0gbWF0cml4IGlzIGRlZmluZWQgaWYgdGhlIGdhbWUgb2JqZWN0IGlzIG5lc3RlZFxyXG4gKi9cclxudmFyIFRyaWFuZ2xlV2ViR0xSZW5kZXJlciA9IGZ1bmN0aW9uIChyZW5kZXJlciwgc3JjLCBpbnRlcnBvbGF0aW9uUGVyY2VudGFnZSwgY2FtZXJhLCBwYXJlbnRNYXRyaXgpXHJcbntcclxuICAgIHZhciBwaXBlbGluZSA9IHRoaXMucGlwZWxpbmU7XHJcblxyXG4gICAgdmFyIGNhbU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MTtcclxuICAgIHZhciBzaGFwZU1hdHJpeCA9IHBpcGVsaW5lLl90ZW1wTWF0cml4MjtcclxuICAgIHZhciBjYWxjTWF0cml4ID0gcGlwZWxpbmUuX3RlbXBNYXRyaXgzO1xyXG5cclxuICAgIHJlbmRlcmVyLnNldFBpcGVsaW5lKHBpcGVsaW5lKTtcclxuXHJcbiAgICBzaGFwZU1hdHJpeC5hcHBseUlUUlMoc3JjLngsIHNyYy55LCBzcmMucm90YXRpb24sIHNyYy5zY2FsZVgsIHNyYy5zY2FsZVkpO1xyXG5cclxuICAgIGNhbU1hdHJpeC5jb3B5RnJvbShjYW1lcmEubWF0cml4KTtcclxuXHJcbiAgICBpZiAocGFyZW50TWF0cml4KVxyXG4gICAge1xyXG4gICAgICAgIC8vICBNdWx0aXBseSB0aGUgY2FtZXJhIGJ5IHRoZSBwYXJlbnQgbWF0cml4XHJcbiAgICAgICAgY2FtTWF0cml4Lm11bHRpcGx5V2l0aE9mZnNldChwYXJlbnRNYXRyaXgsIC1jYW1lcmEuc2Nyb2xsWCAqIHNyYy5zY3JvbGxGYWN0b3JYLCAtY2FtZXJhLnNjcm9sbFkgKiBzcmMuc2Nyb2xsRmFjdG9yWSk7XHJcblxyXG4gICAgICAgIC8vICBVbmRvIHRoZSBjYW1lcmEgc2Nyb2xsXHJcbiAgICAgICAgc2hhcGVNYXRyaXguZSA9IHNyYy54O1xyXG4gICAgICAgIHNoYXBlTWF0cml4LmYgPSBzcmMueTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgICBzaGFwZU1hdHJpeC5lIC09IGNhbWVyYS5zY3JvbGxYICogc3JjLnNjcm9sbEZhY3Rvclg7XHJcbiAgICAgICAgc2hhcGVNYXRyaXguZiAtPSBjYW1lcmEuc2Nyb2xsWSAqIHNyYy5zY3JvbGxGYWN0b3JZO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbU1hdHJpeC5tdWx0aXBseShzaGFwZU1hdHJpeCwgY2FsY01hdHJpeCk7XHJcblxyXG4gICAgdmFyIGR4ID0gc3JjLl9kaXNwbGF5T3JpZ2luWDtcclxuICAgIHZhciBkeSA9IHNyYy5fZGlzcGxheU9yaWdpblk7XHJcbiAgICB2YXIgYWxwaGEgPSBjYW1lcmEuYWxwaGEgKiBzcmMuYWxwaGE7XHJcblxyXG4gICAgaWYgKHNyYy5pc0ZpbGxlZClcclxuICAgIHtcclxuICAgICAgICB2YXIgZmlsbFRpbnQgPSBwaXBlbGluZS5maWxsVGludDtcclxuICAgICAgICB2YXIgZmlsbFRpbnRDb2xvciA9IFV0aWxzLmdldFRpbnRBcHBlbmRGbG9hdEFscGhhQW5kU3dhcChzcmMuZmlsbENvbG9yLCBzcmMuZmlsbEFscGhhICogYWxwaGEpO1xyXG5cclxuICAgICAgICBmaWxsVGludC5UTCA9IGZpbGxUaW50Q29sb3I7XHJcbiAgICAgICAgZmlsbFRpbnQuVFIgPSBmaWxsVGludENvbG9yO1xyXG4gICAgICAgIGZpbGxUaW50LkJMID0gZmlsbFRpbnRDb2xvcjtcclxuICAgICAgICBmaWxsVGludC5CUiA9IGZpbGxUaW50Q29sb3I7XHJcblxyXG4gICAgICAgIHZhciB4MSA9IHNyYy5nZW9tLngxIC0gZHg7XHJcbiAgICAgICAgdmFyIHkxID0gc3JjLmdlb20ueTEgLSBkeTtcclxuICAgICAgICB2YXIgeDIgPSBzcmMuZ2VvbS54MiAtIGR4O1xyXG4gICAgICAgIHZhciB5MiA9IHNyYy5nZW9tLnkyIC0gZHk7XHJcbiAgICAgICAgdmFyIHgzID0gc3JjLmdlb20ueDMgLSBkeDtcclxuICAgICAgICB2YXIgeTMgPSBzcmMuZ2VvbS55MyAtIGR5O1xyXG5cclxuICAgICAgICBwaXBlbGluZS5zZXRUZXh0dXJlMkQoKTtcclxuXHJcbiAgICAgICAgcGlwZWxpbmUuYmF0Y2hGaWxsVHJpYW5nbGUoXHJcbiAgICAgICAgICAgIHgxLFxyXG4gICAgICAgICAgICB5MSxcclxuICAgICAgICAgICAgeDIsXHJcbiAgICAgICAgICAgIHkyLFxyXG4gICAgICAgICAgICB4MyxcclxuICAgICAgICAgICAgeTMsXHJcbiAgICAgICAgICAgIHNoYXBlTWF0cml4LFxyXG4gICAgICAgICAgICBjYW1NYXRyaXhcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzcmMuaXNTdHJva2VkKVxyXG4gICAge1xyXG4gICAgICAgIFN0cm9rZVBhdGhXZWJHTChwaXBlbGluZSwgc3JjLCBhbHBoYSwgZHgsIGR5KTtcclxuICAgIH1cclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gVHJpYW5nbGVXZWJHTFJlbmRlcmVyO1xyXG4iLCIvKipcclxuICogQGF1dGhvciAgICAgICBSaWNoYXJkIERhdmV5IDxyaWNoQHBob3RvbnN0b3JtLmNvbT5cclxuICogQGNvcHlyaWdodCAgICAyMDIwIFBob3RvbiBTdG9ybSBMdGQuXHJcbiAqIEBsaWNlbnNlICAgICAge0BsaW5rIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUfE1JVCBMaWNlbnNlfVxyXG4gKi9cclxuXHJcbnZhciBDbGFzcyA9IHJlcXVpcmUoJy4uLy4uL3V0aWxzL0NsYXNzJyk7XHJcbnZhciBDb21wb25lbnRzID0gcmVxdWlyZSgnLi4vY29tcG9uZW50cycpO1xyXG52YXIgR2FtZU9iamVjdCA9IHJlcXVpcmUoJy4uL0dhbWVPYmplY3QnKTtcclxudmFyIFNwcml0ZVJlbmRlciA9IHJlcXVpcmUoJy4vU3ByaXRlUmVuZGVyJyk7XHJcblxyXG4vKipcclxuICogQGNsYXNzZGVzY1xyXG4gKiBBIFNwcml0ZSBHYW1lIE9iamVjdC5cclxuICpcclxuICogQSBTcHJpdGUgR2FtZSBPYmplY3QgaXMgdXNlZCBmb3IgdGhlIGRpc3BsYXkgb2YgYm90aCBzdGF0aWMgYW5kIGFuaW1hdGVkIGltYWdlcyBpbiB5b3VyIGdhbWUuXHJcbiAqIFNwcml0ZXMgY2FuIGhhdmUgaW5wdXQgZXZlbnRzIGFuZCBwaHlzaWNzIGJvZGllcy4gVGhleSBjYW4gYWxzbyBiZSB0d2VlbmVkLCB0aW50ZWQsIHNjcm9sbGVkXHJcbiAqIGFuZCBhbmltYXRlZC5cclxuICpcclxuICogVGhlIG1haW4gZGlmZmVyZW5jZSBiZXR3ZWVuIGEgU3ByaXRlIGFuZCBhbiBJbWFnZSBHYW1lIE9iamVjdCBpcyB0aGF0IHlvdSBjYW5ub3QgYW5pbWF0ZSBJbWFnZXMuXHJcbiAqIEFzIHN1Y2gsIFNwcml0ZXMgdGFrZSBhIGZyYWN0aW9uIGxvbmdlciB0byBwcm9jZXNzIGFuZCBoYXZlIGEgbGFyZ2VyIEFQSSBmb290cHJpbnQgZHVlIHRvIHRoZSBBbmltYXRpb25cclxuICogQ29tcG9uZW50LiBJZiB5b3UgZG8gbm90IHJlcXVpcmUgYW5pbWF0aW9uIHRoZW4geW91IGNhbiBzYWZlbHkgdXNlIEltYWdlcyB0byByZXBsYWNlIFNwcml0ZXMgaW4gYWxsIGNhc2VzLlxyXG4gKlxyXG4gKiBAY2xhc3MgU3ByaXRlXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5HYW1lT2JqZWN0XHJcbiAqIEBtZW1iZXJvZiBQaGFzZXIuR2FtZU9iamVjdHNcclxuICogQGNvbnN0cnVjdG9yXHJcbiAqIEBzaW5jZSAzLjAuMFxyXG4gKlxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5BbHBoYVxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5CbGVuZE1vZGVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuRGVwdGhcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuRmxpcFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5HZXRCb3VuZHNcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuTWFza1xyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5PcmlnaW5cclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuUGlwZWxpbmVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuU2Nyb2xsRmFjdG9yXHJcbiAqIEBleHRlbmRzIFBoYXNlci5HYW1lT2JqZWN0cy5Db21wb25lbnRzLlNpemVcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGV4dHVyZUNyb3BcclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVGludFxyXG4gKiBAZXh0ZW5kcyBQaGFzZXIuR2FtZU9iamVjdHMuQ29tcG9uZW50cy5UcmFuc2Zvcm1cclxuICogQGV4dGVuZHMgUGhhc2VyLkdhbWVPYmplY3RzLkNvbXBvbmVudHMuVmlzaWJsZVxyXG4gKlxyXG4gKiBAcGFyYW0ge1BoYXNlci5TY2VuZX0gc2NlbmUgLSBUaGUgU2NlbmUgdG8gd2hpY2ggdGhpcyBHYW1lIE9iamVjdCBiZWxvbmdzLiBBIEdhbWUgT2JqZWN0IGNhbiBvbmx5IGJlbG9uZyB0byBvbmUgU2NlbmUgYXQgYSB0aW1lLlxyXG4gKiBAcGFyYW0ge251bWJlcn0geCAtIFRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoaXMgR2FtZSBPYmplY3QgaW4gdGhlIHdvcmxkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0geSAtIFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGlzIEdhbWUgT2JqZWN0IGluIHRoZSB3b3JsZC5cclxuICogQHBhcmFtIHtzdHJpbmd9IHRleHR1cmUgLSBUaGUga2V5IG9mIHRoZSBUZXh0dXJlIHRoaXMgR2FtZSBPYmplY3Qgd2lsbCB1c2UgdG8gcmVuZGVyIHdpdGgsIGFzIHN0b3JlZCBpbiB0aGUgVGV4dHVyZSBNYW5hZ2VyLlxyXG4gKiBAcGFyYW0geyhzdHJpbmd8aW50ZWdlcil9IFtmcmFtZV0gLSBBbiBvcHRpb25hbCBmcmFtZSBmcm9tIHRoZSBUZXh0dXJlIHRoaXMgR2FtZSBPYmplY3QgaXMgcmVuZGVyaW5nIHdpdGguXHJcbiAqL1xyXG52YXIgU3ByaXRlID0gbmV3IENsYXNzKHtcclxuXHJcbiAgICBFeHRlbmRzOiBHYW1lT2JqZWN0LFxyXG5cclxuICAgIE1peGluczogW1xyXG4gICAgICAgIENvbXBvbmVudHMuQWxwaGEsXHJcbiAgICAgICAgQ29tcG9uZW50cy5CbGVuZE1vZGUsXHJcbiAgICAgICAgQ29tcG9uZW50cy5EZXB0aCxcclxuICAgICAgICBDb21wb25lbnRzLkZsaXAsXHJcbiAgICAgICAgQ29tcG9uZW50cy5HZXRCb3VuZHMsXHJcbiAgICAgICAgQ29tcG9uZW50cy5NYXNrLFxyXG4gICAgICAgIENvbXBvbmVudHMuT3JpZ2luLFxyXG4gICAgICAgIENvbXBvbmVudHMuUGlwZWxpbmUsXHJcbiAgICAgICAgQ29tcG9uZW50cy5TY3JvbGxGYWN0b3IsXHJcbiAgICAgICAgQ29tcG9uZW50cy5TaXplLFxyXG4gICAgICAgIENvbXBvbmVudHMuVGV4dHVyZUNyb3AsXHJcbiAgICAgICAgQ29tcG9uZW50cy5UaW50LFxyXG4gICAgICAgIENvbXBvbmVudHMuVHJhbnNmb3Jt |